mysql++-3.2.2+pristine.orig/0000755000372000001440000000000012607360632015200 5ustar robertousersmysql++-3.2.2+pristine.orig/configure.ac0000644000372000001440000000633012502417162017463 0ustar robertousers# This file is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2.1 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with MySQL++; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 # USA # Standard autotools stuff AC_INIT(mysql++, 3.2.2, plusplus@lists.mysql.com, mysql++) AC_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([config]) AC_CANONICAL_SYSTEM # Enable libtool to decide shared library compile flags (ie -fPIC) AC_PROG_LIBTOOL AC_SUBST([LIBTOOL_DEPS]) # Break package version up into major, minor and bugfix components. MYSQLPP_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -f1 -d.` AC_SUBST(MYSQLPP_VERSION_MAJOR) MYSQLPP_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -f2 -d.` AC_SUBST(MYSQLPP_VERSION_MINOR) MYSQLPP_VERSION_BUGFIX=`echo $PACKAGE_VERSION | cut -f3 -d.` AC_SUBST(MYSQLPP_VERSION_BUGFIX) # Check for Standard C support AC_PROG_CC AC_HEADER_STDC # Figure out whether/how to handle threading support, if available. AC_ARG_ENABLE(thread-check, [ --enable-thread-check Check for threads, and use if available. ], [ thread_check=yes ]) if test "x$thread_check" = "xyes" then ACX_PTHREAD LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" AC_CHECK_HEADERS(synch.h) AC_CHECK_HEADERS(unistd.h) fi # Let caller provide -f to lib/*.pl scripts in a uniform way AC_ARG_WITH([field-limit], AS_HELP_STRING([--with-field-limit=], [set max template query and SSQLS field count]), [], []) if test -n "$with_field_limit" then ( cd lib ; ./querydef.pl -f $with_field_limit ; ./ssqls.pl -f $with_field_limit ) fi # Try to find local getopt(); if we fail, we'll use the one in lib/cmdline.* AC_CHECK_FUNC(getopt, [AC_DEFINE(HAVE_POSIX_GETOPT, [], Define if getopt() is available in unistd.h)], [AC_CHECK_LIB(iberty, getopt, [AC_DEFINE(HAVE_LIBIBERTY_GETOPT, [], Define if getopt() is available in libiberty.h)], [])]) # Checks for libraries and local system features LIB_MATH LIB_SOCKET_NSL MYSQL_C_API_LOCATION MYSQL_WITH_SSL AX_C_LOCALTIME_R AC_CHECK_LIB(intl, main) # If this is Cygwin, add a linker flag to suppress a silly link message. case "${host}" in *cygwin*) LDFLAGS="$LDFLAGS -Wl,--enable-auto-import" ;; esac # Check for Standard C++ support, and extensions. This must be near # the end, because the CPLUSPLUS directive makes autoconf use C++ # compiler for all subsequent tests! AC_PROG_CXX AC_LANG_CPLUSPLUS STL_SLIST_EXTENSION # Include Bakefile macros AC_BAKEFILE([m4_include(config/autoconf_inc.m4)]) # # Configure process complete; write out files generated from *.in. # AC_OUTPUT([\ doc/userman/userman.dbx \ install.hta \ lib/Doxyfile \ lib/mysql++.h \ ssx/Doxyfile \ abi.xml \ mysql++.spec \ Makefile \ version ]) chmod +x version mysql++-3.2.2+pristine.orig/CREDITS.txt0000644000372000001440000001004712502417162017033 0ustar robertousersMySQL++ was created by Kevin Atkinson during 1998. From version 1.0 (released in June 1999) through 1.7.9 (May 2001), the primary maintainer was Sinisa Milivojevic . Neither Kevin nor Sinisa are currently involved in MySQL++ development. The current maintainer is Warren Young , starting with version 1.7.10 in August of 2004. For a fuller account of the library's history, see the first chapter of the user manual. For the nitty-gritty details, see the ChangeLog in the root package directory. ChangeLog items since 1.7.9 that aren't attributed to anyone else were done by Warren Young. Other contributors of note since 1.7.10: Chris Frey : Lots of GCC warning fixes for the bleeding-edge compiler versions, Gentoo ebuild support, and misc other fixes. Mark Meredino : Several fixes and additions, including a lot of work on Microsoft Visual C++ compatibility, and discoveries made while spelunking in the library. Evan Wies : Contributed several C++ code style cleanups. Arnon Jalon : Added the multi-query result set handling features, and examples/multiquery.cpp to demonstrate it. Korolyov Ilya has submitted several patches in many different areas of the library. Remi Collet is maintaining offical RPMs for Fedora, with other systems on the way. His work has improved the RPM spec file we distribute greatly. Joel Fielder of Switchplane, Ltd. created the ScopedConnection class, came up with the original idea for Query's for_each() and store_in() methods, provided the basis for examples/for_each.cpp, and provided a fix for exception flag propagation in Query. Jim Wallace demonstrated the need for BadQuery::errnum(), and contributed the patches and also examples/deadlock.cpp to test that this feature does what it is supposed to. Jonathan Wakely rebuilt my original versions of ConnectionPool, RefCountedPointer, and RefCountedBuffer. They're now simpler and safer. He also created the numeric conversion logic in lib/mystring.h introduced in v3.0. Adrian Cornish Several fixes and additions. Rick Gutleber contributed the Query::insertfrom() method and associated InsertPolicy object, as well as the SQLStream class. Here are the personal credits from the old 1.7.9 documentation, apparently written by Kevin Atkinson: Chris Halverson - For helping me get it to compile under Solaris. Fredric Fredricson - For a long talk about automatic conversions. Michael Widenius - MySQL developer who has been very supportive of my efforts. Paul J. Lucas - For the original idea of treating the query object like a stream. Scott Barron - For helping me with the shared libraries. Jools Enticknap - For giving me the Template Queries idea. M. S. Sriram - For a detailed dission of how the Template Queries should be implemented, the suggestion to throw exceptions on bad queries, and the idea of having a back-end independent query object (ie SQLQuery). Sinisa Milivojevic - For becoming the new offical maintainer. D. Hawkins and E. Loic for their autoconf + automake contribution. See the ChangeLog for further credits, and details about the differences between the many versions of this library. Please do not email any of these people with general questions about MySQL++. All of us who are still active in MySQL++ development read the mailing list, so questions sent there do get to us: http://lists.mysql.com/plusplus The mailing list is superior to private email because the answers are archived for future questioners to find, and because you are likely to get answers from more people. mysql++-3.2.2+pristine.orig/README-Linux.txt0000644000372000001440000000700612502417162017771 0ustar robertousersLinux is basically Unix, so README-Unix.txt covers the generic bits. I'll just cover a few of the issues specific to Linux here. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so it needs the C API development files to build against. Most distributions of the MySQL server for Linux don't come with these development files; they're packaged separately. This is because you don't actually need the server on your development machine, though it's often more convenient to use a local server than a remote one, for testing. There are about as many different ways to get the C API development files on your system as there are major Linux distributions. More actually, because you also have the option of the official MySQL binaries from mysql.com: http://dev.mysql.com/downloads/mysql/5.0.html#linux For RPM-based distributions, MySQL comes in several different packages. You need at least the -devel and the -shared packages to build MySQL++. The other binary distributions seem to come in just a single file, presumably with everything included. You can also build from source, in which case you will also get the entire kit and kaboodle. MySQL frequently comes with Linux distributions as well. If your distribution doesn't come with at least MySQL v4.1, I recommend using the official MySQL.com packages instead. MySQL++ can be made to run with 4.0 and older, but it takes some work. On Red Hat type systems with yum, say: # yum install mysql-devel If you want to use rpm directly, you need that package and probably the base mysql package as well. On Debian/Ubuntu type systems, say: $ sudo apt-get install libmysqlclient15-dev The version number is the ABI version of the MySQL C API library. ABI version 15 corresponds to MySQL version 5.0, the recommended stable version as of this writing. Dealing with the Dynamic Linker, ld.so ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ld.so is a system-level program on Linux which is used to run any program that uses shared libraries (lib*.so). Its job is to find the libraries and link them to the base executable so it will run. Because ld.so only looks in a few places for libraries on most systems, a common problem is a program that builds without error but won't run, complaining about libmysqlpp.SOMETHING. There are a number of ways to deal with this. First, you could just configure MySQL++ to install under /usr instead of /usr/local, like system-provided packages: $ ./configure --prefix=/usr This isn't recommended practice when building packages from source, but it does work. Second, you can add the MySQL++ library directory to the LD_LIBRARY_PATH environment variable. This works like the shell's PATH variable: a colon-separated list of directories to search. This is best when the installation directory is something totally uncommon, or you don't have root permissions on the box so you can't do the next option. Finally, the most robust way to tell ld.so about a nonstandard library directory is to put it in /etc/ld.so.conf or in one of the files included from there. Then, run ldconfig as root to rebuild the cache file ld.so uses to find libraries in these nonstandard directories. Running ldconfig isn't necessary for the previous two methods. mysql++-3.2.2+pristine.orig/mysql++.spec.in0000644000372000001440000001251212502417162017750 0ustar robertousersSummary: C++ wrapper for the MySQL C API Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 1%{?dist} License: LGPL Group: Development/Libraries URL: http://tangentsoft.net/mysql++/ Source0: http://tangentsoft.net/mysql++/releases/mysql++-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: mysql-devel %description MySQL++ makes working with MySQL server queries as easy as working with STL containers. This package contains only the libraries needed to run MySQL++-based programs. If you are building your own MySQL++-based programs, you also need to install the -devel package. %package devel Summary: MySQL++ developer files (headers, examples, etc.) Group: Development/Libraries Requires: mysql++ = %{version}-%{release}, mysql-devel %description devel These are the files needed to compile MySQL++ based programs, plus some sample code to get you started. If you aren't building your own programs, you probably don't need to install this package. %package manuals Summary: MySQL++ user and reference manuals Group: Development/Libraries %description manuals This is the MySQL++ documentation. It's a separate RPM just because it's so large, and it doesn't change with every release. %prep %setup -q # Fakery for nodoc case if [ ! -e doc/README-devel-RPM.txt ] then touch doc/README-devel-RPM.txt touch doc/README-doc-RPM.txt touch doc/README-manuals-RPM.txt %{__mkdir_p} doc/html doc/pdf fi %build %configure --disable-dependency-tracking %{__make} %{?_smp_mflags} %install rm -rf %{buildroot} doc/examples %{__mkdir_p} %{buildroot}{%{_libdir},%{_includedir}} %{__make} DESTDIR=%{buildroot} install # Copy example programs to doc directory %{__mkdir_p} doc/examples %{__install} -m644 examples/*.{cpp,h} doc/examples/ %{__install} -m644 config.h doc/examples/ sed -i -e s@../config.h@config.h@ doc/examples/threads.h # Fix up simple example Makefile to allow it to build on the install # system, as opposed to the system where the Makefile was created. %{__sed} -e 's@./examples/@@' \ -e 's@^CPPFLAGS.*$@CPPFLAGS := $(shell mysql_config --cflags)@' \ -e 's@^LDFLAGS.*$@LDFLAGS := $(shell mysql_config --libs)@' \ -e 's@ -Ilib@@' \ -e '/^all:/s/test_[a-z,_]* //g' \ Makefile.simple > doc/examples/Makefile %clean rm -rf %{buildroot} doc/examples %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc ChangeLog COPYING.txt CREDITS.txt LICENSE.txt README.txt %{_libdir}/libmysqlpp.so.* %files devel %defattr(-,root,root,-) %doc doc/examples doc/README-devel-RPM.txt README-examples.txt Wishlist %{_includedir}/mysql++ %{_libdir}/libmysqlpp.so %files manuals %defattr(-,root,root,-) %doc doc/html doc/pdf doc/README-manuals-RPM.txt %changelog * Mon Jul 2 2007 Warren Young 2.3.0-1 - Reflected changes to doc dir layout in manuals sub-package * Mon Mar 19 2007 Warren Young 2.2.1-4 - Reorganized locations of generated documentation * Mon Mar 19 2007 Warren Young 2.2.1-3 - Merge of Remi Collet's spec file with official one * Sun Mar 18 2007 Remi Collet 2.2.1-2 - find perm on common.h - soname mysql++-2.2.1-bkl.patch * Wed Feb 28 2007 Remi Collet 2.2.1-1 - Initial spec for Extras * Wed Feb 28 2007 Remi Collet 2.2.1-1.fc{3-6}.remi - update to version 2.2.1 * Thu Jan 25 2007 Remi Collet 2.2.0-1.fc{3-6}.remi - update to version 2.2.0 * Mon Nov 13 2006 Remi Collet 2.1.1.fc6.remi - FC6.x86_64 build - dynamic (sed) patch for Makefile (use mysql_config) * Thu Nov 02 2006 Remi Collet 2.1.1.fc6.remi - FC6 build * Sat Apr 8 2006 Remi Collet 2.1.1.fc{3,4,5}.remi - update to version 2.1.1 * Sat Nov 26 2005 Remi Collet 2.0.7-1.fc3.remi - 2.0.7-1.fc4.remi - update to version 2.0.4 - build with mysql-5.0.15 (requires libmysqlclient.so.15) * Sun Sep 4 2005 Remi Collet 2.0.4-1.FC4.remi - version 2.0.4 * Sat Aug 20 2005 Remi Collet 2.0.2-1.FC4.remi - built for FC4 - spec cleanning... * Thu Jun 16 2005 Remi Collet 1.7.40-1.FC3.remi - built for FC3 and MySQL 4.1.11 - examples in /usr/share/doc/mysql++-%%{version}/examples * Sat Apr 30 2005 Warren Young 1.7.34-1 - Split manuals out into their own sub-package. * Thu Mar 10 2005 Warren Young 1.7.32-1 - Disabled building of examples, to speed RPM build. * Fri Nov 05 2004 Warren Young 1.7.21-1 - Split out -devel subpackage, which now includes the examples * Wed Aug 18 2004 Warren Young 1.7.11-1 - Removed examples from documentation. - Limited documentation to just the generated files, not the sources. * Wed Apr 16 2003 Tuan Hoang 1.7.9-4 - Added gcc 3.2.2 patch. - Packaged using Red Hat Linux 8.0 and 9. * Thu Nov 14 2002 Tuan Hoang 1.7.9-3 - Changed the version passed to libtool. * Mon Oct 28 2002 Tuan Hoang 1.7.9-2 - Updated the version numbering of the library to be 1.7.9. - Packaged using Red Hat Linux 8.0. * Thu Oct 17 2002 Philipp Berndt - packaged mysql++-3.2.2+pristine.orig/exrun0000755000372000001440000000256212502417162016267 0ustar robertousers#!/bin/sh if [ -z "$1" ] then echo "usage: $0 [TOOL] [args...]" echo echo " Runs the given example, using the library in the current directory" echo " instead of using the system library search mechanism. Accepts an " echo " arbitrary number of arguments." echo echo " TOOL can be 'valgrind', 'gdb', or 'ldd', which causes exrun to" echo " run the example program under the given tool." echo exit 1 fi TOOL= PROG=$1 if [ "$PROG" = 'valgrind' ] then TOOL='valgrind' shift PROG=$1 elif [ "$PROG" = 'gdb' ] then TOOL='gdb --args' shift PROG=$1 elif [ "$PROG" = 'ldd' ] then TOOL='ldd' shift PROG=$1 fi shift if [ -e "$PROG" ] then if [ `uname -s` = 'Darwin' ] then DYLD_LIBRARY_PATH=. $TOOL ./$PROG $* elif [ `uname -o` = 'Cygwin' ] then # Cygwin build case; see below for bash-as-DOS-shell case PATH=. $TOOL ./$PROG $* elif [ -e /usr/bin/ldd ] then if [ `uname -s` = 'SunOS' ] then LD_LIBRARY_PATH=.:/usr/mysql/lib/mysql $TOOL ./$PROG $* else LD_LIBRARY_PATH=. $TOOL ./$PROG $* fi else echo "ERROR: I don't grok this system's dynamic linkage system." fi elif [ `uname -o` = 'Cygwin' ] then # VC++ build, but using Cygwin's bash as shell to run programs cmd.exe /c exrun.bat $PROG $* else echo "usage: $0 [TOOL] [args...]" echo echo " Run $0 without arguments for more detailed usage info." echo exit 1 fi mysql++-3.2.2+pristine.orig/aclocal.m40000644000372000001440000016511412502417171017043 0ustar robertousers# generated automatically by aclocal 1.13.4 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) AC_DEFUN([AC_BAKEFILE_CREATE_FILE_DLLAR_SH], [ dnl ===================== dllar.sh begins here ===================== dnl (Created by merge-scripts.py from dllar.sh dnl file do not edit here!) D='$' cat <dllar.sh #!/bin/sh # # dllar - a tool to build both a .dll and an .a file # from a set of object (.o) files for EMX/OS2. # # Written by Andrew Zabolotny, bit@freya.etu.ru # Ported to Unix like shell by Stefan Neis, Stefan.Neis@t-online.de # # This script will accept a set of files on the command line. # All the public symbols from the .o files will be exported into # a .DEF file, then linker will be run (through gcc) against them to # build a shared library consisting of all given .o files. All libraries # (.a) will be first decompressed into component .o files then act as # described above. You can optionally give a description (-d "description") # which will be put into .DLL. To see the list of accepted options (as well # as command-line format) simply run this program without options. The .DLL # is built to be imported by name (there is no guarantee that new versions # of the library you build will have same ordinals for same symbols). # # dllar 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. # # dllar 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 dllar; see the file COPYING. If not, write to the Free # Software Foundation, 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # To successfuly run this program you will need: # - Current drive should have LFN support (HPFS, ext2, network, etc) # (Sometimes dllar generates filenames which won't fit 8.3 scheme) # - gcc # (used to build the .dll) # - emxexp # (used to create .def file from .o files) # - emximp # (used to create .a file from .def file) # - GNU text utilites (cat, sort, uniq) # used to process emxexp output # - GNU file utilities (mv, rm) # - GNU sed # - lxlite (optional, see flag below) # (used for general .dll cleanup) # flag_USE_LXLITE=1; # # helper functions # basnam, variant of basename, which does _not_ remove the path, _iff_ # second argument (suffix to remove) is given basnam(){ case ${D}# in 1) echo ${D}1 | sed 's/.*\\///' | sed 's/.*\\\\//' ;; 2) echo ${D}1 | sed 's/'${D}2'${D}//' ;; *) echo "error in basnam ${D}*" exit 8 ;; esac } # Cleanup temporary files and output CleanUp() { cd ${D}curDir for i in ${D}inputFiles ; do case ${D}i in *!) rm -rf \`basnam ${D}i !\` ;; *) ;; esac done # Kill result in case of failure as there is just to many stupid make/nmake # things out there which doesn't do this. if @<:@ ${D}# -eq 0 @:>@; then rm -f ${D}arcFile ${D}arcFile2 ${D}defFile ${D}dllFile fi } # Print usage and exit script with rc=1. PrintHelp() { echo 'Usage: dllar.sh @<:@-o@<:@utput@:>@ output_file@:>@ @<:@-i@<:@mport@:>@ importlib_name@:>@' echo ' @<:@-name-mangler-script script.sh@:>@' echo ' @<:@-d@<:@escription@:>@ "dll descrption"@:>@ @<:@-cc "CC"@:>@ @<:@-f@<:@lags@:>@ "CFLAGS"@:>@' echo ' @<:@-ord@<:@inals@:>@@:>@ -ex@<:@clude@:>@ "symbol(s)"' echo ' @<:@-libf@<:@lags@:>@ "{INIT|TERM}{GLOBAL|INSTANCE}"@:>@ @<:@-nocrt@<:@dll@:>@@:>@ @<:@-nolxl@<:@ite@:>@@:>@' echo ' @<:@*.o@:>@ @<:@*.a@:>@' echo '*> "output_file" should have no extension.' echo ' If it has the .o, .a or .dll extension, it is automatically removed.' echo ' The import library name is derived from this and is set to "name".a,' echo ' unless overridden by -import' echo '*> "importlib_name" should have no extension.' echo ' If it has the .o, or .a extension, it is automatically removed.' echo ' This name is used as the import library name and may be longer and' echo ' more descriptive than the DLL name which has to follow the old ' echo ' 8.3 convention of FAT.' echo '*> "script.sh may be given to override the output_file name by a' echo ' different name. It is mainly useful if the regular make process' echo ' of some package does not take into account OS/2 restriction of' echo ' DLL name lengths. It takes the importlib name as input and is' echo ' supposed to procude a shorter name as output. The script should' echo ' expect to get importlib_name without extension and should produce' echo ' a (max.) 8 letter name without extension.' echo '*> "cc" is used to use another GCC executable. (default: gcc.exe)' echo '*> "flags" should be any set of valid GCC flags. (default: -s -Zcrtdll)' echo ' These flags will be put at the start of GCC command line.' echo '*> -ord@<:@inals@:>@ tells dllar to export entries by ordinals. Be careful.' echo '*> -ex@<:@clude@:>@ defines symbols which will not be exported. You can define' echo ' multiple symbols, for example -ex "myfunc yourfunc _GLOBAL*".' echo ' If the last character of a symbol is "*", all symbols beginning' echo ' with the prefix before "*" will be exclude, (see _GLOBAL* above).' echo '*> -libf@<:@lags@:>@ can be used to add INITGLOBAL/INITINSTANCE and/or' echo ' TERMGLOBAL/TERMINSTANCE flags to the dynamically-linked library.' echo '*> -nocrt@<:@dll@:>@ switch will disable linking the library against emx''s' echo ' C runtime DLLs.' echo '*> -nolxl@<:@ite@:>@ switch will disable running lxlite on the resulting DLL.' echo '*> All other switches (for example -L./ or -lmylib) will be passed' echo ' unchanged to GCC at the end of command line.' echo '*> If you create a DLL from a library and you do not specify -o,' echo ' the basename for DLL and import library will be set to library name,' echo ' the initial library will be renamed to 'name'_s.a (_s for static)' echo ' i.e. "dllar gcc.a" will create gcc.dll and gcc.a, and the initial' echo ' library will be renamed into gcc_s.a.' echo '--------' echo 'Example:' echo ' dllar -o gcc290.dll libgcc.a -d "GNU C runtime library" -ord' echo ' -ex "__main __ctordtor*" -libf "INITINSTANCE TERMINSTANCE"' CleanUp exit 1 } # Execute a command. # If exit code of the commnad <> 0 CleanUp() is called and we'll exit the script. # @Uses Whatever CleanUp() uses. doCommand() { echo "${D}*" eval ${D}* rcCmd=${D}? if @<:@ ${D}rcCmd -ne 0 @:>@; then echo "command failed, exit code="${D}rcCmd CleanUp exit ${D}rcCmd fi } # main routine # setup globals cmdLine=${D}* outFile="" outimpFile="" inputFiles="" renameScript="" description="" CC=gcc.exe CFLAGS="-s -Zcrtdll" EXTRA_CFLAGS="" EXPORT_BY_ORDINALS=0 exclude_symbols="" library_flags="" curDir=\`pwd\` curDirS=curDir case ${D}curDirS in */) ;; *) curDirS=${D}{curDirS}"/" ;; esac # Parse commandline libsToLink=0 omfLinking=0 while @<:@ ${D}1 @:>@; do case ${D}1 in -ord*) EXPORT_BY_ORDINALS=1; ;; -o*) shift outFile=${D}1 ;; -i*) shift outimpFile=${D}1 ;; -name-mangler-script) shift renameScript=${D}1 ;; -d*) shift description=${D}1 ;; -f*) shift CFLAGS=${D}1 ;; -c*) shift CC=${D}1 ;; -h*) PrintHelp ;; -ex*) shift exclude_symbols=${D}{exclude_symbols}${D}1" " ;; -libf*) shift library_flags=${D}{library_flags}${D}1" " ;; -nocrt*) CFLAGS="-s" ;; -nolxl*) flag_USE_LXLITE=0 ;; -* | /*) case ${D}1 in -L* | -l*) libsToLink=1 ;; -Zomf) omfLinking=1 ;; *) ;; esac EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1 ;; *.dll) EXTRA_CFLAGS="${D}{EXTRA_CFLAGS} \`basnam ${D}1 .dll\`" if @<:@ ${D}omfLinking -eq 1 @:>@; then EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.lib" else EXTRA_CFLAGS="${D}{EXTRA_CFLAGS}.a" fi ;; *) found=0; if @<:@ ${D}libsToLink -ne 0 @:>@; then EXTRA_CFLAGS=${D}{EXTRA_CFLAGS}" "${D}1 else for file in ${D}1 ; do if @<:@ -f ${D}file @:>@; then inputFiles="${D}{inputFiles} ${D}file" found=1 fi done if @<:@ ${D}found -eq 0 @:>@; then echo "ERROR: No file(s) found: "${D}1 exit 8 fi fi ;; esac shift done # iterate cmdline words # if @<:@ -z "${D}inputFiles" @:>@; then echo "dllar: no input files" PrintHelp fi # Now extract all .o files from .a files newInputFiles="" for file in ${D}inputFiles ; do case ${D}file in *.a | *.lib) case ${D}file in *.a) suffix=".a" AR="ar" ;; *.lib) suffix=".lib" AR="emxomfar" EXTRA_CFLAGS="${D}EXTRA_CFLAGS -Zomf" ;; *) ;; esac dirname=\`basnam ${D}file ${D}suffix\`"_%" mkdir ${D}dirname if @<:@ ${D}? -ne 0 @:>@; then echo "Failed to create subdirectory ./${D}dirname" CleanUp exit 8; fi # Append '!' to indicate archive newInputFiles="${D}newInputFiles ${D}{dirname}!" doCommand "cd ${D}dirname; ${D}AR x ../${D}file" cd ${D}curDir found=0; for subfile in ${D}dirname/*.o* ; do if @<:@ -f ${D}subfile @:>@; then found=1 if @<:@ -s ${D}subfile @:>@; then # FIXME: This should be: is file size > 32 byte, _not_ > 0! newInputFiles="${D}newInputFiles ${D}subfile" fi fi done if @<:@ ${D}found -eq 0 @:>@; then echo "WARNING: there are no files in archive \\'${D}file\\'" fi ;; *) newInputFiles="${D}{newInputFiles} ${D}file" ;; esac done inputFiles="${D}newInputFiles" # Output filename(s). do_backup=0; if @<:@ -z ${D}outFile @:>@; then do_backup=1; set outFile ${D}inputFiles; outFile=${D}2 fi # If it is an archive, remove the '!' and the '_%' suffixes case ${D}outFile in *_%!) outFile=\`basnam ${D}outFile _%!\` ;; *) ;; esac case ${D}outFile in *.dll) outFile=\`basnam ${D}outFile .dll\` ;; *.DLL) outFile=\`basnam ${D}outFile .DLL\` ;; *.o) outFile=\`basnam ${D}outFile .o\` ;; *.obj) outFile=\`basnam ${D}outFile .obj\` ;; *.a) outFile=\`basnam ${D}outFile .a\` ;; *.lib) outFile=\`basnam ${D}outFile .lib\` ;; *) ;; esac case ${D}outimpFile in *.a) outimpFile=\`basnam ${D}outimpFile .a\` ;; *.lib) outimpFile=\`basnam ${D}outimpFile .lib\` ;; *) ;; esac if @<:@ -z ${D}outimpFile @:>@; then outimpFile=${D}outFile fi defFile="${D}{outFile}.def" arcFile="${D}{outimpFile}.a" arcFile2="${D}{outimpFile}.lib" #create ${D}dllFile as something matching 8.3 restrictions, if @<:@ -z ${D}renameScript @:>@ ; then dllFile="${D}outFile" else dllFile=\`${D}renameScript ${D}outimpFile\` fi if @<:@ ${D}do_backup -ne 0 @:>@ ; then if @<:@ -f ${D}arcFile @:>@ ; then doCommand "mv ${D}arcFile ${D}{outFile}_s.a" fi if @<:@ -f ${D}arcFile2 @:>@ ; then doCommand "mv ${D}arcFile2 ${D}{outFile}_s.lib" fi fi # Extract public symbols from all the object files. tmpdefFile=${D}{defFile}_% rm -f ${D}tmpdefFile for file in ${D}inputFiles ; do case ${D}file in *!) ;; *) doCommand "emxexp -u ${D}file >> ${D}tmpdefFile" ;; esac done # Create the def file. rm -f ${D}defFile echo "LIBRARY \`basnam ${D}dllFile\` ${D}library_flags" >> ${D}defFile dllFile="${D}{dllFile}.dll" if @<:@ ! -z ${D}description @:>@; then echo "DESCRIPTION \\"${D}{description}\\"" >> ${D}defFile fi echo "EXPORTS" >> ${D}defFile doCommand "cat ${D}tmpdefFile | sort.exe | uniq.exe > ${D}{tmpdefFile}%" grep -v "^ *;" < ${D}{tmpdefFile}% | grep -v "^ *${D}" >${D}tmpdefFile # Checks if the export is ok or not. for word in ${D}exclude_symbols; do grep -v ${D}word < ${D}tmpdefFile >${D}{tmpdefFile}% mv ${D}{tmpdefFile}% ${D}tmpdefFile done if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then sed "=" < ${D}tmpdefFile | \\ sed ' N : loop s/^\\(@<:@0-9@:>@\\+\\)\\(@<:@^;@:>@*\\)\\(;.*\\)\\?/\\2 @\\1 NONAME/ t loop ' > ${D}{tmpdefFile}% grep -v "^ *${D}" < ${D}{tmpdefFile}% > ${D}tmpdefFile else rm -f ${D}{tmpdefFile}% fi cat ${D}tmpdefFile >> ${D}defFile rm -f ${D}tmpdefFile # Do linking, create implib, and apply lxlite. gccCmdl=""; for file in ${D}inputFiles ; do case ${D}file in *!) ;; *) gccCmdl="${D}gccCmdl ${D}file" ;; esac done doCommand "${D}CC ${D}CFLAGS -Zdll -o ${D}dllFile ${D}defFile ${D}gccCmdl ${D}EXTRA_CFLAGS" touch "${D}{outFile}.dll" doCommand "emximp -o ${D}arcFile ${D}defFile" if @<:@ ${D}flag_USE_LXLITE -ne 0 @:>@; then add_flags=""; if @<:@ ${D}EXPORT_BY_ORDINALS -ne 0 @:>@; then add_flags="-ynd" fi doCommand "lxlite -cs -t: -mrn -mln ${D}add_flags ${D}dllFile" fi doCommand "emxomf -s -l ${D}arcFile" # Successful exit. CleanUp 1 exit 0 EOF dnl ===================== dllar.sh ends here ===================== ]) dnl dnl This file is part of Bakefile (http://www.bakefile.org) dnl dnl Copyright (C) 2003-2007 Vaclav Slavik, David Elliott and others dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), dnl to deal in the Software without restriction, including without limitation dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, dnl and/or sell copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following conditions: dnl dnl The above copyright notice and this permission notice shall be included in dnl all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER dnl DEALINGS IN THE SOFTWARE. dnl dnl $Id: bakefile-lang.m4 1337 2010-02-09 20:22:43Z vaclavslavik $ dnl dnl Compiler detection macros by David Elliott and Vadim Zeitlin dnl dnl =========================================================================== dnl Macros to detect different C/C++ compilers dnl =========================================================================== dnl Based on autoconf _AC_LANG_COMPILER_GNU dnl _AC_BAKEFILE_LANG_COMPILER(NAME, LANG, SYMBOL, IF-YES, IF-NO) AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER], [ AC_LANG_PUSH($2) AC_CACHE_CHECK( [whether we are using the $1 $2 compiler], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3], [AC_TRY_COMPILE( [], [ #ifndef $3 choke me #endif ], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=yes], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=no] ) ] ) if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3" = "xyes"; then :; $4 else :; $5 fi AC_LANG_POP($2) ]) dnl More specific version of the above macro checking whether the compiler dnl version is at least the given one (assumes that we do use this compiler) dnl dnl _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(NAME, LANG, SYMBOL, VER, VERMSG, IF-YES, IF-NO) AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_LATER_THAN], [ AC_LANG_PUSH($2) AC_CACHE_CHECK( [whether we are using $1 $2 compiler v$5 or later], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4], [AC_TRY_COMPILE( [], [ #ifndef $3 || $3 < $4 choke me #endif ], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=yes], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=no] ) ] ) if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4" = "xyes"; then :; $6 else :; $7 fi AC_LANG_POP($2) ]) dnl CodeWarrior Metrowerks compiler defines __MWERKS__ for both C and C++ AC_DEFUN([AC_BAKEFILE_PROG_MWCC], [ _AC_BAKEFILE_LANG_COMPILER(Metrowerks, C, __MWERKS__, MWCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_MWCXX], [ _AC_BAKEFILE_LANG_COMPILER(Metrowerks, C++, __MWERKS__, MWCXX=yes) ]) dnl IBM xlC compiler defines __xlC__ for both C and C++ AC_DEFUN([AC_BAKEFILE_PROG_XLCC], [ _AC_BAKEFILE_LANG_COMPILER([IBM xlC], C, __xlC__, XLCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_XLCXX], [ _AC_BAKEFILE_LANG_COMPILER([IBM xlC], C++, __xlC__, XLCXX=yes) ]) dnl recent versions of SGI mipsPro compiler define _SGI_COMPILER_VERSION dnl dnl NB: old versions define _COMPILER_VERSION but this could probably be dnl defined by other compilers too so don't test for it to be safe AC_DEFUN([AC_BAKEFILE_PROG_SGICC], [ _AC_BAKEFILE_LANG_COMPILER(SGI, C, _SGI_COMPILER_VERSION, SGICC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_SGICXX], [ _AC_BAKEFILE_LANG_COMPILER(SGI, C++, _SGI_COMPILER_VERSION, SGICXX=yes) ]) dnl Sun compiler defines __SUNPRO_C/__SUNPRO_CC AC_DEFUN([AC_BAKEFILE_PROG_SUNCC], [ _AC_BAKEFILE_LANG_COMPILER(Sun, C, __SUNPRO_C, SUNCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_SUNCXX], [ _AC_BAKEFILE_LANG_COMPILER(Sun, C++, __SUNPRO_CC, SUNCXX=yes) ]) dnl Intel icc compiler defines __INTEL_COMPILER for both C and C++ AC_DEFUN([AC_BAKEFILE_PROG_INTELCC], [ _AC_BAKEFILE_LANG_COMPILER(Intel, C, __INTEL_COMPILER, INTELCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX], [ _AC_BAKEFILE_LANG_COMPILER(Intel, C++, __INTEL_COMPILER, INTELCXX=yes) ]) dnl Intel compiler command line options changed in incompatible ways sometimes dnl before v8 (-KPIC was replaced with gcc-compatible -fPIC) and again in v10 dnl (-create-pch deprecated in favour of -pch-create) so we need to test for dnl its exact version too AC_DEFUN([AC_BAKEFILE_PROG_INTELCC_8], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C, __INTEL_COMPILER, 800, 8, INTELCC8=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX_8], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C++, __INTEL_COMPILER, 800, 8, INTELCXX8=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCC_10], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C, __INTEL_COMPILER, 1000, 10, INTELCC10=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX_10], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C++, __INTEL_COMPILER, 1000, 10, INTELCXX10=yes) ]) dnl HP-UX aCC: see http://docs.hp.com/en/6162/preprocess.htm#macropredef AC_DEFUN([AC_BAKEFILE_PROG_HPCC], [ _AC_BAKEFILE_LANG_COMPILER(HP, C, __HP_cc, HPCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_HPCXX], [ _AC_BAKEFILE_LANG_COMPILER(HP, C++, __HP_aCC, HPCXX=yes) ]) dnl Tru64 cc and cxx AC_DEFUN([AC_BAKEFILE_PROG_COMPAQCC], [ _AC_BAKEFILE_LANG_COMPILER(Compaq, C, __DECC, COMPAQCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_COMPAQCXX], [ _AC_BAKEFILE_LANG_COMPILER(Compaq, C++, __DECCXX, COMPAQCXX=yes) ]) dnl =========================================================================== dnl macros to detect specialty compiler options dnl =========================================================================== dnl Figure out if we need to pass -ext o to compiler (MetroWerks) AC_DEFUN([AC_BAKEFILE_METROWERKS_EXTO], [AC_CACHE_CHECK([if the _AC_LANG compiler requires -ext o], bakefile_cv_[]_AC_LANG_ABBREV[]_exto, dnl First create an empty conf test [AC_LANG_CONFTEST([AC_LANG_PROGRAM()]) dnl Now remove .o and .c.o or .cc.o rm -f conftest.$ac_objext conftest.$ac_ext.o dnl Now compile the test AS_IF([AC_TRY_EVAL(ac_compile)], dnl If the test succeeded look for conftest.c.o or conftest.cc.o [for ac_file in `(ls conftest.* 2>/dev/null)`; do case $ac_file in conftest.$ac_ext.o) bakefile_cv_[]_AC_LANG_ABBREV[]_exto="-ext o" ;; *) ;; esac done], [AC_MSG_FAILURE([cannot figure out if compiler needs -ext o: cannot compile]) ]) dnl AS_IF rm -f conftest.$ac_ext.o conftest.$ac_objext conftest.$ac_ext ]) dnl AC_CACHE_CHECK if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_exto" '!=' "x"; then if test "[]_AC_LANG_ABBREV[]" = "c"; then CFLAGS="$bakefile_cv_[]_AC_LANG_ABBREV[]_exto $CFLAGS" fi if test "[]_AC_LANG_ABBREV[]" = "cxx"; then CXXFLAGS="$bakefile_cv_[]_AC_LANG_ABBREV[]_exto $CXXFLAGS" fi fi ]) dnl AC_DEFUN dnl =========================================================================== dnl Macros to do all of the compiler detections as one macro dnl =========================================================================== dnl check for different proprietary compilers depending on target platform dnl _AC_BAKEFILE_PROG_COMPILER(LANG) AC_DEFUN([_AC_BAKEFILE_PROG_COMPILER], [ AC_REQUIRE([AC_PROG_$1]) dnl Intel compiler can be used under several different OS and even dnl different architectures (x86, amd64 and Itanium) so it's easier to just dnl always test for it AC_BAKEFILE_PROG_INTEL$1 dnl If we use Intel compiler we also need to know its version if test "$INTEL$1" = "yes"; then AC_BAKEFILE_PROG_INTEL$1_8 AC_BAKEFILE_PROG_INTEL$1_10 fi dnl if we're using gcc, we can't be using any of incompatible compilers if test "x$G$1" != "xyes"; then if test "x$1" = "xC"; then AC_BAKEFILE_METROWERKS_EXTO if test "x$bakefile_cv_c_exto" '!=' "x"; then unset ac_cv_prog_cc_g _AC_PROG_CC_G fi fi dnl most of these compilers are only used under well-defined OS so dnl don't waste time checking for them on other ones case `uname -s` in AIX*) AC_BAKEFILE_PROG_XL$1 ;; Darwin) AC_BAKEFILE_PROG_MW$1 if test "$MW$1" != "yes"; then AC_BAKEFILE_PROG_XL$1 fi ;; IRIX*) AC_BAKEFILE_PROG_SGI$1 ;; Linux*) dnl Sun CC is now available under Linux too, test for it unless dnl we already found that we were using a different compiler if test "$INTEL$1" != "yes"; then AC_BAKEFILE_PROG_SUN$1 fi ;; HP-UX*) AC_BAKEFILE_PROG_HP$1 ;; OSF1) AC_BAKEFILE_PROG_COMPAQ$1 ;; SunOS) AC_BAKEFILE_PROG_SUN$1 ;; esac fi ]) AC_DEFUN([AC_BAKEFILE_PROG_CC], [ _AC_BAKEFILE_PROG_COMPILER(CC) ]) AC_DEFUN([AC_BAKEFILE_PROG_CXX], [ _AC_BAKEFILE_PROG_COMPILER(CXX) ]) dnl dnl This file is part of Bakefile (http://www.bakefile.org) dnl dnl Copyright (C) 2003-2007 Vaclav Slavik and others dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), dnl to deal in the Software without restriction, including without limitation dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, dnl and/or sell copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following conditions: dnl dnl The above copyright notice and this permission notice shall be included in dnl all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER dnl DEALINGS IN THE SOFTWARE. dnl dnl $Id: bakefile.m4 1351 2013-09-10 12:04:45Z vadz $ dnl dnl Support macros for makefiles generated by BAKEFILE. dnl dnl --------------------------------------------------------------------------- dnl Lots of compiler & linker detection code contained here was taken from dnl wxWidgets configure.in script (see http://www.wxwidgets.org) dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_GNUMAKE dnl dnl Detects GNU make dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_GNUMAKE], [ dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu, [ if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | egrep -s GNU > /dev/null); then bakefile_cv_prog_makeisgnu="yes" else bakefile_cv_prog_makeisgnu="no" fi ]) if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then IF_GNU_MAKE="" else IF_GNU_MAKE="#" fi AC_SUBST(IF_GNU_MAKE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PLATFORM dnl dnl Detects platform and sets PLATFORM_XXX variables accordingly dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PLATFORM], [ PLATFORM_UNIX=0 PLATFORM_WIN32=0 PLATFORM_MSDOS=0 PLATFORM_MAC=0 PLATFORM_MACOS=0 PLATFORM_MACOSX=0 PLATFORM_OS2=0 PLATFORM_BEOS=0 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then case "${BAKEFILE_HOST}" in *-*-mingw32* ) PLATFORM_WIN32=1 ;; *-pc-msdosdjgpp ) PLATFORM_MSDOS=1 ;; *-pc-os2_emx | *-pc-os2-emx ) PLATFORM_OS2=1 ;; *-*-darwin* ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; *-*-beos* ) PLATFORM_BEOS=1 ;; powerpc-apple-macos* ) PLATFORM_MAC=1 PLATFORM_MACOS=1 ;; * ) PLATFORM_UNIX=1 ;; esac else case "$BAKEFILE_FORCE_PLATFORM" in win32 ) PLATFORM_WIN32=1 ;; msdos ) PLATFORM_MSDOS=1 ;; os2 ) PLATFORM_OS2=1 ;; darwin ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; unix ) PLATFORM_UNIX=1 ;; beos ) PLATFORM_BEOS=1 ;; * ) AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM]) ;; esac fi AC_SUBST(PLATFORM_UNIX) AC_SUBST(PLATFORM_WIN32) AC_SUBST(PLATFORM_MSDOS) AC_SUBST(PLATFORM_MAC) AC_SUBST(PLATFORM_MACOS) AC_SUBST(PLATFORM_MACOSX) AC_SUBST(PLATFORM_OS2) AC_SUBST(PLATFORM_BEOS) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PLATFORM_SPECIFICS dnl dnl Sets misc platform-specific settings dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS], [ AC_ARG_ENABLE([omf], AS_HELP_STRING([--enable-omf], [use OMF object format (OS/2)]), [bk_os2_use_omf="$enableval"]) case "${BAKEFILE_HOST}" in *-*-darwin* ) dnl For Unix to MacOS X porting instructions, see: dnl http://fink.sourceforge.net/doc/porting/porting.html if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" fi if test "x$XLCC" = "xyes"; then CFLAGS="$CFLAGS -qnocommon" CXXFLAGS="$CXXFLAGS -qnocommon" fi ;; *-pc-os2_emx | *-pc-os2-emx ) if test "x$bk_os2_use_omf" = "xyes" ; then AR=emxomfar RANLIB=: LDFLAGS="-Zomf $LDFLAGS" CFLAGS="-Zomf $CFLAGS" CXXFLAGS="-Zomf $CXXFLAGS" OS2_LIBEXT="lib" else OS2_LIBEXT="a" fi ;; i*86-*-beos* ) LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS" ;; esac ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SUFFIXES dnl dnl Detects shared various suffixes for shared libraries, libraries, programs, dnl plugins etc. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SUFFIXES], [ SO_SUFFIX="so" SO_SUFFIX_MODULE="so" EXEEXT="" LIBPREFIX="lib" LIBEXT=".a" DLLPREFIX="lib" DLLPREFIX_MODULE="" DLLIMP_SUFFIX="" dlldir="$libdir" case "${BAKEFILE_HOST}" in dnl PA-RISC HP systems used .sl but IA64 use ELF-64 and so use the dnl standard .so extension ia64-hp-hpux* ) ;; *-hp-hpux* ) SO_SUFFIX="sl" SO_SUFFIX_MODULE="sl" ;; *-*-aix* ) dnl quoting from dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html: dnl Both archive libraries and shared libraries on AIX have an dnl .a extension. This will explain why you can't link with an dnl .so and why it works with the name changed to .a. SO_SUFFIX="a" SO_SUFFIX_MODULE="a" ;; *-*-cygwin* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="cyg" dlldir="$bindir" ;; *-*-mingw32* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="" dlldir="$bindir" ;; *-pc-msdosdjgpp ) EXEEXT=".exe" DLLPREFIX="" dlldir="$bindir" ;; *-pc-os2_emx | *-pc-os2-emx ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX=$OS2_LIBEXT EXEEXT=".exe" DLLPREFIX="" LIBPREFIX="" LIBEXT=".$OS2_LIBEXT" dlldir="$bindir" ;; *-*-darwin* ) SO_SUFFIX="dylib" SO_SUFFIX_MODULE="bundle" ;; esac if test "x$DLLIMP_SUFFIX" = "x" ; then DLLIMP_SUFFIX="$SO_SUFFIX" fi AC_SUBST(SO_SUFFIX) AC_SUBST(SO_SUFFIX_MODULE) AC_SUBST(DLLIMP_SUFFIX) AC_SUBST(EXEEXT) AC_SUBST(LIBPREFIX) AC_SUBST(LIBEXT) AC_SUBST(DLLPREFIX) AC_SUBST(DLLPREFIX_MODULE) AC_SUBST(dlldir) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_LD dnl dnl Detects command for making shared libraries, substitutes SHARED_LD_CC dnl and SHARED_LD_CXX. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SHARED_LD], [ dnl the extra compiler flags needed for compilation of shared library PIC_FLAG="" if test "x$GCC" = "xyes"; then dnl the switch for gcc is the same under all platforms PIC_FLAG="-fPIC" fi dnl Defaults for GCC and ELF .so shared libs: SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o" SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o" WINDOWS_IMPLIB=0 case "${BAKEFILE_HOST}" in *-hp-hpux* ) dnl default settings are good for gcc but not for the native HP-UX if test "x$GCC" != "xyes"; then dnl no idea why it wants it, but it does LDFLAGS="$LDFLAGS -L/usr/lib" SHARED_LD_CC="${CC} -b -o" SHARED_LD_CXX="${CXX} -b -o" PIC_FLAG="+Z" fi ;; *-*-linux* ) dnl newer icc versions use -fPIC just as gcc does and, in fact, the dnl newest (v10+) ones don't even understand -KPIC any longer if test "$INTELCC" = "yes" -a "$INTELCC8" != "yes"; then PIC_FLAG="-KPIC" elif test "x$SUNCXX" = "xyes"; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-solaris2* ) if test "x$SUNCXX" = xyes ; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-darwin* ) AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH chmod +x shared-ld-sh SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o" SHARED_LD_MODULE_CXX="CXX=\"\$(CXX)\" $SHARED_LD_MODULE_CC" dnl Most apps benefit from being fully binded (its faster and static dnl variables initialized at startup work). dnl This can be done either with the exe linker flag -Wl,-bind_at_load dnl or with a double stage link in order to create a single module dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved dnl If using newer dev tools then there is a -single_module flag that dnl we can use to do this for dylibs, otherwise we'll need to use a helper dnl script. Check the version of gcc to see which way we can go: AC_CACHE_CHECK([for gcc 3.1 or later], bakefile_cv_gcc31, [ AC_TRY_COMPILE([], [ #if (__GNUC__ < 3) || \ ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1)) This is old gcc #endif ], [ bakefile_cv_gcc31=yes ], [ bakefile_cv_gcc31=no ] ) ]) if test "$bakefile_cv_gcc31" = "no"; then dnl Use the shared-ld-sh helper script SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o" SHARED_LD_CXX="$SHARED_LD_CC" else dnl Use the -single_module flag and let the linker do it for us SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o" SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o" fi if test "x$GCC" == "xyes"; then PIC_FLAG="-dynamic -fPIC" fi if test "x$XLCC" = "xyes"; then PIC_FLAG="-dynamic -DPIC" fi ;; *-*-aix* ) if test "x$GCC" = "xyes"; then dnl at least gcc 2.95 warns that -fPIC is ignored when dnl compiling each and every file under AIX which is annoying, dnl so don't use it there (it's useless as AIX runs on dnl position-independent architectures only anyhow) PIC_FLAG="" dnl -bexpfull is needed by AIX linker to export all symbols (by dnl default it doesn't export any and even with -bexpall it dnl doesn't export all C++ support symbols, e.g. vtable dnl pointers) but it's only available starting from 5.1 (with dnl maintenance pack 2, whatever this is), see dnl http://www-128.ibm.com/developerworks/eserver/articles/gnu.html case "${BAKEFILE_HOST}" in *-*-aix5* ) LD_EXPFULL="-Wl,-bexpfull" ;; esac SHARED_LD_CC="\$(CC) -shared $LD_EXPFULL -o" SHARED_LD_CXX="\$(CXX) -shared $LD_EXPFULL -o" else dnl FIXME: makeC++SharedLib is obsolete, what should we do for dnl recent AIX versions? AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib, makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib) SHARED_LD_CC="$AIX_CC_LD -p 0 -o" SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o" fi ;; *-*-beos* ) dnl can't use gcc under BeOS for shared library creation because it dnl complains about missing 'main' SHARED_LD_CC="${LD} -nostart -o" SHARED_LD_CXX="${LD} -nostart -o" ;; *-*-irix* ) dnl default settings are ok for gcc if test "x$GCC" != "xyes"; then PIC_FLAG="-KPIC" fi ;; *-*-cygwin* | *-*-mingw32* ) PIC_FLAG="" SHARED_LD_CC="\$(CC) -shared -o" SHARED_LD_CXX="\$(CXX) -shared -o" WINDOWS_IMPLIB=1 ;; *-pc-os2_emx | *-pc-os2-emx ) SHARED_LD_CC="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o" SHARED_LD_CXX="`pwd`/dllar.sh -libf INITINSTANCE -libf TERMINSTANCE -o" PIC_FLAG="" AC_BAKEFILE_CREATE_FILE_DLLAR_SH chmod +x dllar.sh ;; powerpc-apple-macos* | \ *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \ *-*-mirbsd* | \ *-*-sunos4* | \ *-*-osf* | \ *-*-dgux5* | \ *-*-sysv5* | \ *-pc-msdosdjgpp ) dnl defaults are ok ;; *) AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.) esac if test "x$PIC_FLAG" != "x" ; then PIC_FLAG="$PIC_FLAG -DPIC" fi if test "x$SHARED_LD_MODULE_CC" = "x" ; then SHARED_LD_MODULE_CC="$SHARED_LD_CC" fi if test "x$SHARED_LD_MODULE_CXX" = "x" ; then SHARED_LD_MODULE_CXX="$SHARED_LD_CXX" fi AC_SUBST(SHARED_LD_CC) AC_SUBST(SHARED_LD_CXX) AC_SUBST(SHARED_LD_MODULE_CC) AC_SUBST(SHARED_LD_MODULE_CXX) AC_SUBST(PIC_FLAG) AC_SUBST(WINDOWS_IMPLIB) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_VERSIONS dnl dnl Detects linker options for attaching versions (sonames) to shared libs. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS], [ USE_SOVERSION=0 USE_SOVERLINUX=0 USE_SOVERSOLARIS=0 USE_SOVERCYGWIN=0 USE_SOTWOSYMLINKS=0 USE_MACVERSION=0 SONAME_FLAG= case "${BAKEFILE_HOST}" in *-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \ *-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* ) if test "x$SUNCXX" = "xyes"; then SONAME_FLAG="-h " else SONAME_FLAG="-Wl,-soname," fi USE_SOVERSION=1 USE_SOVERLINUX=1 USE_SOTWOSYMLINKS=1 ;; *-*-solaris2* ) SONAME_FLAG="-h " USE_SOVERSION=1 USE_SOVERSOLARIS=1 ;; *-*-darwin* ) USE_MACVERSION=1 USE_SOVERSION=1 USE_SOTWOSYMLINKS=1 ;; *-*-cygwin* ) USE_SOVERSION=1 USE_SOVERCYGWIN=1 ;; esac AC_SUBST(USE_SOVERSION) AC_SUBST(USE_SOVERLINUX) AC_SUBST(USE_SOVERSOLARIS) AC_SUBST(USE_SOVERCYGWIN) AC_SUBST(USE_MACVERSION) AC_SUBST(USE_SOTWOSYMLINKS) AC_SUBST(SONAME_FLAG) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_DEPS dnl dnl Detects available C/C++ dependency tracking options dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_DEPS], [ AC_ARG_ENABLE([dependency-tracking], AS_HELP_STRING([--disable-dependency-tracking], [don't use dependency tracking even if the compiler can]), [bk_use_trackdeps="$enableval"]) AC_MSG_CHECKING([for dependency tracking method]) BK_DEPS="" if test "x$bk_use_trackdeps" = "xno" ; then DEPS_TRACKING=0 AC_MSG_RESULT([disabled]) else DEPS_TRACKING=1 if test "x$GCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MMD" AC_MSG_RESULT([gcc]) elif test "x$MWCC" = "xyes"; then DEPSMODE=mwcc DEPSFLAG="-MM" AC_MSG_RESULT([mwcc]) elif test "x$SUNCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-xM1" AC_MSG_RESULT([Sun cc]) elif test "x$SGICC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-M" AC_MSG_RESULT([SGI cc]) elif test "x$HPCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="+make" AC_MSG_RESULT([HP cc]) elif test "x$COMPAQCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MD" AC_MSG_RESULT([Compaq cc]) else DEPS_TRACKING=0 AC_MSG_RESULT([none]) fi if test $DEPS_TRACKING = 1 ; then AC_BAKEFILE_CREATE_FILE_BK_DEPS chmod +x bk-deps dnl FIXME: make this $(top_builddir)/bk-deps once autoconf-2.60 dnl is required (and so top_builddir is never empty): BK_DEPS="`pwd`/bk-deps" fi fi AC_SUBST(DEPS_TRACKING) AC_SUBST(BK_DEPS) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_CHECK_BASIC_STUFF dnl dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib" dnl or "install" dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF], [ AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_SUBST(MAKE_SET) if test "x$SUNCXX" = "xyes"; then dnl Sun C++ compiler requires special way of creating static libs; dnl see here for more details: dnl https://sourceforge.net/tracker/?func=detail&atid=109863&aid=1229751&group_id=9863 AR=$CXX AROPTIONS="-xar -o" AC_SUBST(AR) elif test "x$SGICC" = "xyes"; then dnl Almost the same as above for SGI mipsPro compiler AR=$CXX AROPTIONS="-ar -o" AC_SUBST(AR) else AC_CHECK_TOOL(AR, ar, ar) AROPTIONS=rcu fi AC_SUBST(AROPTIONS) AC_CHECK_TOOL(STRIP, strip, :) AC_CHECK_TOOL(NM, nm, :) dnl Don't use `install -d`, see http://trac.wxwidgets.org/ticket/13452 INSTALL_DIR="mkdir -p" AC_SUBST(INSTALL_DIR) LDFLAGS_GUI= case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* ) LDFLAGS_GUI="-mwindows" esac AC_SUBST(LDFLAGS_GUI) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_RES_COMPILERS dnl dnl Checks for presence of resource compilers for win32 or mac dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_RES_COMPILERS], [ case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* ) dnl Check for win32 resources compiler: AC_CHECK_TOOL(WINDRES, windres) ;; *-*-darwin* | powerpc-apple-macos* ) AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez) AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile) ;; esac AC_SUBST(WINDRES) AC_SUBST(REZ) AC_SUBST(SETFILE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PRECOMP_HEADERS dnl dnl Check for precompiled headers support (GCC >= 3.4) dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS], [ AC_ARG_ENABLE([precomp-headers], AS_HELP_STRING([--disable-precomp-headers], [don't use precompiled headers even if compiler can]), [bk_use_pch="$enableval"]) GCC_PCH=0 ICC_PCH=0 USE_PCH=0 BK_MAKE_PCH="" case ${BAKEFILE_HOST} in *-*-cygwin* ) dnl PCH support is broken in cygwin gcc because of unportable dnl assumptions about mmap() in gcc code which make PCH generation dnl fail erratically; disable PCH completely until this is fixed bk_use_pch="no" ;; esac if test "x$bk_use_pch" = "x" -o "x$bk_use_pch" = "xyes" ; then if test "x$GCC" = "xyes"; then dnl test if we have gcc-3.4: AC_MSG_CHECKING([if the compiler supports precompiled headers]) AC_TRY_COMPILE([], [ #if !defined(__GNUC__) || !defined(__GNUC_MINOR__) There is no PCH support #endif #if (__GNUC__ < 3) There is no PCH support #endif #if (__GNUC__ == 3) && \ ((!defined(__APPLE_CC__) && (__GNUC_MINOR__ < 4)) || \ ( defined(__APPLE_CC__) && (__GNUC_MINOR__ < 3))) || \ ( defined(__INTEL_COMPILER) ) There is no PCH support #endif ], [ AC_MSG_RESULT([yes]) GCC_PCH=1 ], [ if test "$INTELCXX8" = "yes"; then AC_MSG_RESULT([yes]) ICC_PCH=1 if test "$INTELCXX10" = "yes"; then ICC_PCH_CREATE_SWITCH="-pch-create" ICC_PCH_USE_SWITCH="-pch-use" else ICC_PCH_CREATE_SWITCH="-create-pch" ICC_PCH_USE_SWITCH="-use-pch" fi else AC_MSG_RESULT([no]) fi ]) if test $GCC_PCH = 1 -o $ICC_PCH = 1 ; then USE_PCH=1 AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH chmod +x bk-make-pch dnl FIXME: make this $(top_builddir)/bk-make-pch once dnl autoconf-2.60 is required (and so top_builddir is dnl never empty): BK_MAKE_PCH="`pwd`/bk-make-pch" fi fi fi AC_SUBST(GCC_PCH) AC_SUBST(ICC_PCH) AC_SUBST(ICC_PCH_CREATE_SWITCH) AC_SUBST(ICC_PCH_USE_SWITCH) AC_SUBST(BK_MAKE_PCH) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE([autoconf_inc.m4 inclusion]) dnl dnl To be used in configure.in of any project using Bakefile-generated mks dnl dnl Behaviour can be modified by setting following variables: dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to dnl to perform check for basic tools like ranlib dnl BAKEFILE_HOST set this to override host detection, defaults dnl to ${host} dnl BAKEFILE_FORCE_PLATFORM set to override platform detection dnl dnl Example usage: dnl dnl AC_BAKEFILE([FOO(autoconf_inc.m4)]) dnl dnl (replace FOO with m4_include above, aclocal would die otherwise) dnl (yes, it's ugly, but thanks to a bug in aclocal, it's the only thing dnl we can do...) dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE], [ AC_PREREQ([2.58]) dnl We need to always run C/C++ compiler tests, but it's also possible dnl for the user to call these macros manually, hence this instead of dnl simply calling these macros. See http://www.bakefile.org/ticket/64 AC_REQUIRE([AC_BAKEFILE_PROG_CC]) AC_REQUIRE([AC_BAKEFILE_PROG_CXX]) if test "x$BAKEFILE_HOST" = "x"; then if test "x${host}" = "x" ; then AC_MSG_ERROR([You must call the autoconf "CANONICAL_HOST" macro in your configure.ac (or .in) file.]) fi BAKEFILE_HOST="${host}" fi if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then AC_BAKEFILE_CHECK_BASIC_STUFF fi AC_BAKEFILE_GNUMAKE AC_BAKEFILE_PLATFORM AC_BAKEFILE_PLATFORM_SPECIFICS AC_BAKEFILE_SUFFIXES AC_BAKEFILE_SHARED_LD AC_BAKEFILE_SHARED_VERSIONS AC_BAKEFILE_DEPS AC_BAKEFILE_RES_COMPILERS dnl OBJCFLAGS is set by Autoconf, but OBJCXXFLAGS is not: AC_SUBST(OBJCXXFLAGS) BAKEFILE_BAKEFILE_M4_VERSION="0.2.9" dnl includes autoconf_inc.m4: $1 if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?]) fi if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.]) fi ]) dnl --------------------------------------------------------------------------- dnl Embedded copies of helper scripts follow: dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS], [ dnl ===================== bk-deps begins here ===================== dnl (Created by merge-scripts.py from bk-deps dnl file do not edit here!) D='$' cat <bk-deps #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to track C/C++ files dependencies in portable way. # # Permission is given to use this file in any way. DEPSMODE=${DEPSMODE} DEPSFLAG="${DEPSFLAG}" DEPSDIRBASE=.deps if test ${D}DEPSMODE = gcc ; then ${D}* ${D}{DEPSFLAG} status=${D}? # determine location of created files: while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; -* ) ;; * ) srcfile=${D}1 ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\` depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir # if the compiler failed, we're done: if test ${D}{status} != 0 ; then rm -f ${D}depfile exit ${D}{status} fi # move created file to the location we want it in: if test -f ${D}depfile ; then sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile else # "g++ -MMD -o fooobj.o foosrc.cpp" produces fooobj.d depfile=\`echo "${D}objfile" | sed -e 's/\\..*${D}/.d/g'\` if test ! -f ${D}depfile ; then # "cxx -MD -o fooobj.o foosrc.cpp" creates fooobj.o.d (Compaq C++) depfile="${D}objfile.d" fi if test -f ${D}depfile ; then sed -e "\\,^${D}objfile,!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile fi fi exit 0 elif test ${D}DEPSMODE = mwcc ; then ${D}* || exit ${D}? # Run mwcc again with -MM and redirect into the dep file we want # NOTE: We can't use shift here because we need ${D}* to be valid prevarg= for arg in ${D}* ; do if test "${D}prevarg" = "-o"; then objfile=${D}arg else case "${D}arg" in -* ) ;; * ) srcfile=${D}arg ;; esac fi prevarg="${D}arg" done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir ${D}* ${D}DEPSFLAG >${D}{depsdir}/${D}{objfilebase}.d exit 0 elif test ${D}DEPSMODE = unixcc; then ${D}* || exit ${D}? # Run compiler again with deps flag and redirect into the dep file. # It doesn't work if the '-o FILE' option is used, but without it the # dependency file will contain the wrong name for the object. So it is # removed from the command line, and the dep file is fixed with sed. cmd="" while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; * ) eval arg${D}#=\\${D}1 cmd="${D}cmd \\${D}arg${D}#" ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir eval "${D}cmd ${D}DEPSFLAG" | sed "s|.*:|${D}objfile:|" >${D}{depsdir}/${D}{objfilebase}.d exit 0 else ${D}* exit ${D}? fi EOF dnl ===================== bk-deps ends here ===================== ]) AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH], [ dnl ===================== shared-ld-sh begins here ===================== dnl (Created by merge-scripts.py from shared-ld-sh dnl file do not edit here!) D='$' cat <shared-ld-sh #!/bin/sh #----------------------------------------------------------------------------- #-- Name: distrib/mac/shared-ld-sh #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X #-- Author: Gilles Depeyrot #-- Copyright: (c) 2002 Gilles Depeyrot #-- Licence: any use permitted #----------------------------------------------------------------------------- verbose=0 args="" objects="" linking_flag="-dynamiclib" ldargs="-r -keep_private_externs -nostdlib" if test "x${D}CXX" = "x"; then CXX="c++" fi while test ${D}# -gt 0; do case ${D}1 in -v) verbose=1 ;; -o|-compatibility_version|-current_version|-framework|-undefined|-install_name) # collect these options and values args="${D}{args} ${D}1 ${D}2" shift ;; -arch|-isysroot) # collect these options and values ldargs="${D}{ldargs} ${D}1 ${D}2" shift ;; -s|-Wl,*) # collect these load args ldargs="${D}{ldargs} ${D}1" ;; -l*|-L*|-flat_namespace|-headerpad_max_install_names) # collect these options args="${D}{args} ${D}1" ;; -dynamiclib|-bundle) linking_flag="${D}1" ;; -*) echo "shared-ld: unhandled option '${D}1'" exit 1 ;; *.o | *.a | *.dylib) # collect object files objects="${D}{objects} ${D}1" ;; *) echo "shared-ld: unhandled argument '${D}1'" exit 1 ;; esac shift done status=0 # # Link one module containing all the others # if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o" fi ${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o status=${D}? # # Link the shared library from the single module created, but only if the # previous command didn't fail: # if test ${D}{status} = 0; then if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args}" fi ${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args} status=${D}? fi # # Remove intermediate module # rm -f master.${D}${D}.o exit ${D}status EOF dnl ===================== shared-ld-sh ends here ===================== ]) AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH], [ dnl ===================== bk-make-pch begins here ===================== dnl (Created by merge-scripts.py from bk-make-pch dnl file do not edit here!) D='$' cat <bk-make-pch #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to generated precompiled headers. # # Permission is given to use this file in any way. outfile="${D}{1}" header="${D}{2}" shift shift builddir=\`echo ${D}outfile | sed -e 's,/\\.pch/.*${D},,g'\` compiler="" headerfile="" while test ${D}{#} -gt 0; do add_to_cmdline=1 case "${D}{1}" in -I* ) incdir=\`echo ${D}{1} | sed -e 's/-I\\(.*\\)/\\1/g'\` if test "x${D}{headerfile}" = "x" -a -f "${D}{incdir}/${D}{header}" ; then headerfile="${D}{incdir}/${D}{header}" fi ;; -use-pch|-use_pch|-pch-use ) shift add_to_cmdline=0 ;; esac if test ${D}add_to_cmdline = 1 ; then compiler="${D}{compiler} ${D}{1}" fi shift done if test "x${D}{headerfile}" = "x" ; then echo "error: can't find header ${D}{header} in include paths" >&2 else if test -f ${D}{outfile} ; then rm -f ${D}{outfile} else mkdir -p \`dirname ${D}{outfile}\` fi depsfile="${D}{builddir}/.deps/\`echo ${D}{outfile} | tr '/.' '__'\`.d" mkdir -p ${D}{builddir}/.deps if test "x${GCC_PCH}" = "x1" ; then # can do this because gcc is >= 3.4: ${D}{compiler} -o ${D}{outfile} -MMD -MF "${D}{depsfile}" "${D}{headerfile}" elif test "x${ICC_PCH}" = "x1" ; then filename=pch_gen-${D}${D} file=${D}{filename}.c dfile=${D}{filename}.d cat > ${D}file < ${D}depsfile && \\ rm -f ${D}file ${D}dfile ${D}{filename}.o fi exit ${D}{?} fi EOF dnl ===================== bk-make-pch ends here ===================== ]) m4_include([config/acx_pthread.m4]) m4_include([config/libm.m4]) m4_include([config/libtool.m4]) m4_include([config/localtime_r.m4]) m4_include([config/ltoptions.m4]) m4_include([config/ltsugar.m4]) m4_include([config/ltversion.m4]) m4_include([config/lt~obsolete.m4]) m4_include([config/mysql_loc.m4]) m4_include([config/mysql_ssl.m4]) m4_include([config/socket_nsl.m4]) m4_include([config/stl_slist.m4]) mysql++-3.2.2+pristine.orig/Makefile.mingw0000644000372000001440000010675312502417162017767 0ustar robertousers# ========================================================================= # This makefile was generated by # Bakefile 0.2.9 (http://www.bakefile.org) # Do not modify, all changes will be overwritten! # ========================================================================= # ------------------------------------------------------------------------- # These are configurable options: # ------------------------------------------------------------------------- # Compiler flags to link shared library LINK_DLL_FLAGS ?= -shared # C++ compiler CXX = g++ # Standard flags for C++ CXXFLAGS ?= # Standard preprocessor flags (common for CC and CXX) CPPFLAGS ?= # Standard linker flags LDFLAGS ?= # Type of compiled binaries [debug,release] BUILD ?= debug # ------------------------------------------------------------------------- # Do not modify the rest of this file! # ------------------------------------------------------------------------- ### Variables: ### CPPDEPS = -MT$@ -MF$@.d -MD -MP MYSQLPP_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -mthreads -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -DHAVE_MYSQL_SSL_SET -I"C:\Program \ Files\MySQL\MySQL Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) MYSQLPP_OBJECTS = \ mysqlpp_beemutex.o \ mysqlpp_cmdline.o \ mysqlpp_connection.o \ mysqlpp_cpool.o \ mysqlpp_datetime.o \ mysqlpp_dbdriver.o \ mysqlpp_field_names.o \ mysqlpp_field_types.o \ mysqlpp_manip.o \ mysqlpp_myset.o \ mysqlpp_mysql++.o \ mysqlpp_mystring.o \ mysqlpp_null.o \ mysqlpp_options.o \ mysqlpp_qparms.o \ mysqlpp_query.o \ mysqlpp_result.o \ mysqlpp_row.o \ mysqlpp_scopedconnection.o \ mysqlpp_sql_buffer.o \ mysqlpp_sqlstream.o \ mysqlpp_ssqls2.o \ mysqlpp_stadapter.o \ mysqlpp_tcp_connection.o \ mysqlpp_transaction.o \ mysqlpp_type_info.o \ mysqlpp_uds_connection.o \ mysqlpp_utility.o \ mysqlpp_vallist.o \ mysqlpp_wnp_connection.o SSQLS2PARSE_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" -I. $(CPPFLAGS) $(CXXFLAGS) SSQLS2PARSE_OBJECTS = \ ssqls2parse_parsev2.o SSQLSXLAT_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLSXLAT_OBJECTS = \ ssqlsxlat_genv2.o \ ssqlsxlat_main.o TEST_ARRAY_INDEX_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_ARRAY_INDEX_OBJECTS = \ test_array_index_array_index.o TEST_CPOOL_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_CPOOL_OBJECTS = \ test_cpool_cpool.o TEST_DATETIME_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_DATETIME_OBJECTS = \ test_datetime_datetime.o TEST_INTTYPES_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_INTTYPES_OBJECTS = \ test_inttypes_inttypes.o TEST_INSERTPOLICY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_INSERTPOLICY_OBJECTS = \ test_insertpolicy_insertpolicy.o TEST_MANIP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_MANIP_OBJECTS = \ test_manip_manip.o TEST_NULL_COMPARISON_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) \ -Ilib -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_NULL_COMPARISON_OBJECTS = \ test_null_comparison_null_comparison.o TEST_QUERY_COPY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QUERY_COPY_OBJECTS = \ test_query_copy_query_copy.o TEST_QSSQLS_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QSSQLS_OBJECTS = \ test_qssqls_qssqls.o TEST_QSTREAM_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QSTREAM_OBJECTS = \ test_qstream_qstream.o TEST_SQLSTREAM_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_SQLSTREAM_OBJECTS = \ test_sqlstream_sqlstream.o TEST_SSQLS2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_SSQLS2_OBJECTS = \ test_ssqls2_ssqls2.o TEST_STRING_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_STRING_OBJECTS = \ test_string_string.o TEST_TCP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_TCP_OBJECTS = \ test_tcp_tcp.o TEST_UDS_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_UDS_OBJECTS = \ test_uds_uds.o TEST_WNP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_WNP_OBJECTS = \ test_wnp_wnp.o EXCOMMON_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) EXCOMMON_OBJECTS = \ excommon_printdata.o CGI_JPEG_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) CGI_JPEG_OBJECTS = \ cgi_jpeg_cgi_jpeg.o CPOOL_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) CPOOL_OBJECTS = \ cpool_cpool.o DBINFO_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) DBINFO_OBJECTS = \ dbinfo_dbinfo.o DEADLOCK_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) DEADLOCK_OBJECTS = \ deadlock_deadlock.o FIELDINF_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) FIELDINF_OBJECTS = \ fieldinf_fieldinf.o FOR_EACH_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) FOR_EACH_OBJECTS = \ for_each_for_each.o LOAD_JPEG_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) LOAD_JPEG_OBJECTS = \ load_jpeg_load_jpeg.o MULTIQUERY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) MULTIQUERY_OBJECTS = \ multiquery_multiquery.o RESETDB_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) RESETDB_OBJECTS = \ resetdb_resetdb.o SIMPLE1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE1_OBJECTS = \ simple1_simple1.o SIMPLE2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE2_OBJECTS = \ simple2_simple2.o SIMPLE3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE3_OBJECTS = \ simple3_simple3.o SSQLS1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS1_OBJECTS = \ ssqls1_ssqls1.o SSQLS2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS2_OBJECTS = \ ssqls2_ssqls2.o SSQLS3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS3_OBJECTS = \ ssqls3_ssqls3.o SSQLS4_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS4_OBJECTS = \ ssqls4_ssqls4.o SSQLS5_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS5_OBJECTS = \ ssqls5_ssqls5.o SSQLS6_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS6_OBJECTS = \ ssqls6_ssqls6.o STORE_IF_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) STORE_IF_OBJECTS = \ store_if_store_if.o TQUERY1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY1_OBJECTS = \ tquery1_tquery1.o TQUERY2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY2_OBJECTS = \ tquery2_tquery2.o TQUERY3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY3_OBJECTS = \ tquery3_tquery3.o TQUERY4_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY4_OBJECTS = \ tquery4_tquery4.o TRANSACTION_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TRANSACTION_OBJECTS = \ transaction_transaction.o ### Conditionally set variables: ### ifeq ($(BUILD),debug) __OPTIMIZE_FLAG = -O0 endif ifeq ($(BUILD),release) __OPTIMIZE_FLAG = -O2 endif ifeq ($(BUILD),debug) __DEBUGINFO = -g endif ifeq ($(BUILD),release) __DEBUGINFO = endif ### Targets: ### all: mysqlpp.dll libmysqlpp_ssqls2parse.a ssqlsxlat.exe test_array_index.exe test_cpool.exe test_datetime.exe test_inttypes.exe test_insertpolicy.exe test_manip.exe test_null_comparison.exe test_query_copy.exe test_qssqls.exe test_qstream.exe test_sqlstream.exe test_ssqls2.exe test_string.exe test_tcp.exe test_uds.exe test_wnp.exe libmysqlpp_excommon.a cgi_jpeg.exe cpool.exe dbinfo.exe deadlock.exe fieldinf.exe for_each.exe load_jpeg.exe multiquery.exe resetdb.exe simple1.exe simple2.exe simple3.exe ssqls1.exe ssqls2.exe ssqls3.exe ssqls4.exe ssqls5.exe ssqls6.exe store_if.exe tquery1.exe tquery2.exe tquery3.exe tquery4.exe transaction.exe clean: -if exist .\*.o del .\*.o -if exist .\*.d del .\*.d -if exist mysqlpp.dll del mysqlpp.dll -if exist libmysqlpp.a del libmysqlpp.a -if exist libmysqlpp_ssqls2parse.a del libmysqlpp_ssqls2parse.a -if exist ssqlsxlat.exe del ssqlsxlat.exe -if exist test_array_index.exe del test_array_index.exe -if exist test_cpool.exe del test_cpool.exe -if exist test_datetime.exe del test_datetime.exe -if exist test_inttypes.exe del test_inttypes.exe -if exist test_insertpolicy.exe del test_insertpolicy.exe -if exist test_manip.exe del test_manip.exe -if exist test_null_comparison.exe del test_null_comparison.exe -if exist test_query_copy.exe del test_query_copy.exe -if exist test_qssqls.exe del test_qssqls.exe -if exist test_qstream.exe del test_qstream.exe -if exist test_sqlstream.exe del test_sqlstream.exe -if exist test_ssqls2.exe del test_ssqls2.exe -if exist test_string.exe del test_string.exe -if exist test_tcp.exe del test_tcp.exe -if exist test_uds.exe del test_uds.exe -if exist test_wnp.exe del test_wnp.exe -if exist libmysqlpp_excommon.a del libmysqlpp_excommon.a -if exist cgi_jpeg.exe del cgi_jpeg.exe -if exist cpool.exe del cpool.exe -if exist dbinfo.exe del dbinfo.exe -if exist deadlock.exe del deadlock.exe -if exist fieldinf.exe del fieldinf.exe -if exist for_each.exe del for_each.exe -if exist load_jpeg.exe del load_jpeg.exe -if exist multiquery.exe del multiquery.exe -if exist resetdb.exe del resetdb.exe -if exist simple1.exe del simple1.exe -if exist simple2.exe del simple2.exe -if exist simple3.exe del simple3.exe -if exist ssqls1.exe del ssqls1.exe -if exist ssqls2.exe del ssqls2.exe -if exist ssqls3.exe del ssqls3.exe -if exist ssqls4.exe del ssqls4.exe -if exist ssqls5.exe del ssqls5.exe -if exist ssqls6.exe del ssqls6.exe -if exist store_if.exe del store_if.exe -if exist tquery1.exe del tquery1.exe -if exist tquery2.exe del tquery2.exe -if exist tquery3.exe del tquery3.exe -if exist tquery4.exe del tquery4.exe -if exist transaction.exe del transaction.exe mysqlpp.dll: $(MYSQLPP_OBJECTS) $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MYSQLPP_OBJECTS) -Wl,--out-implib=libmysqlpp.a $(__DEBUGINFO) -mthreads -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lwsock32 -lmysql libmysqlpp_ssqls2parse.a: $(SSQLS2PARSE_OBJECTS) mysqlpp.dll mysqlpp.dll if exist $@ del $@ ar rcu $@ $(SSQLS2PARSE_OBJECTS) ranlib $@ ssqlsxlat.exe: $(SSQLSXLAT_OBJECTS) mysqlpp.dll libmysqlpp_ssqls2parse.a $(CXX) -o $@ $(SSQLSXLAT_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp test_array_index.exe: $(TEST_ARRAY_INDEX_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_ARRAY_INDEX_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_cpool.exe: $(TEST_CPOOL_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_CPOOL_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_datetime.exe: $(TEST_DATETIME_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_DATETIME_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_inttypes.exe: $(TEST_INTTYPES_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_INTTYPES_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_insertpolicy.exe: $(TEST_INSERTPOLICY_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_INSERTPOLICY_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_manip.exe: $(TEST_MANIP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_MANIP_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_null_comparison.exe: $(TEST_NULL_COMPARISON_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_NULL_COMPARISON_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_query_copy.exe: $(TEST_QUERY_COPY_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QUERY_COPY_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_qssqls.exe: $(TEST_QSSQLS_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QSSQLS_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_qstream.exe: $(TEST_QSTREAM_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QSTREAM_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_sqlstream.exe: $(TEST_SQLSTREAM_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_SQLSTREAM_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_ssqls2.exe: $(TEST_SSQLS2_OBJECTS) mysqlpp.dll libmysqlpp_ssqls2parse.a $(CXX) -o $@ $(TEST_SSQLS2_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp test_string.exe: $(TEST_STRING_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_STRING_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_tcp.exe: $(TEST_TCP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_TCP_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_uds.exe: $(TEST_UDS_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_UDS_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp test_wnp.exe: $(TEST_WNP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_WNP_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysql -lmysqlpp libmysqlpp_excommon.a: $(EXCOMMON_OBJECTS) mysqlpp.dll if exist $@ del $@ ar rcu $@ $(EXCOMMON_OBJECTS) ranlib $@ cgi_jpeg.exe: $(CGI_JPEG_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(CGI_JPEG_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp cpool.exe: $(CPOOL_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(CPOOL_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp dbinfo.exe: $(DBINFO_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(DBINFO_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp deadlock.exe: $(DEADLOCK_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(DEADLOCK_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp fieldinf.exe: $(FIELDINF_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(FIELDINF_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp for_each.exe: $(FOR_EACH_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(FOR_EACH_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp load_jpeg.exe: $(LOAD_JPEG_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(LOAD_JPEG_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp multiquery.exe: $(MULTIQUERY_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(MULTIQUERY_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp resetdb.exe: $(RESETDB_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(RESETDB_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple1.exe: $(SIMPLE1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE1_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple2.exe: $(SIMPLE2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE2_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple3.exe: $(SIMPLE3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE3_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls1.exe: $(SSQLS1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS1_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls2.exe: $(SSQLS2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS2_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls3.exe: $(SSQLS3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS3_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls4.exe: $(SSQLS4_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS4_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls5.exe: $(SSQLS5_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS5_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls6.exe: $(SSQLS6_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS6_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp store_if.exe: $(STORE_IF_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(STORE_IF_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery1.exe: $(TQUERY1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY1_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery2.exe: $(TQUERY2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY2_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery3.exe: $(TQUERY3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY3_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery4.exe: $(TQUERY4_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY4_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp transaction.exe: $(TRANSACTION_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TRANSACTION_OBJECTS) -mthreads $(__DEBUGINFO) -L. -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp mysqlpp_beemutex.o: ./lib/beemutex.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_cmdline.o: ./lib/cmdline.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_connection.o: ./lib/connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_cpool.o: ./lib/cpool.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_datetime.o: ./lib/datetime.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_dbdriver.o: ./lib/dbdriver.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_field_names.o: ./lib/field_names.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_field_types.o: ./lib/field_types.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_manip.o: ./lib/manip.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_myset.o: ./lib/myset.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_mysql++.o: ./lib/mysql++.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_mystring.o: ./lib/mystring.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_null.o: ./lib/null.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_options.o: ./lib/options.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_qparms.o: ./lib/qparms.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_query.o: ./lib/query.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_result.o: ./lib/result.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_row.o: ./lib/row.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_scopedconnection.o: ./lib/scopedconnection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_sql_buffer.o: ./lib/sql_buffer.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_sqlstream.o: ./lib/sqlstream.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_ssqls2.o: ./lib/ssqls2.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_stadapter.o: ./lib/stadapter.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_tcp_connection.o: ./lib/tcp_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_transaction.o: ./lib/transaction.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_type_info.o: ./lib/type_info.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_uds_connection.o: ./lib/uds_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_utility.o: ./lib/utility.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_vallist.o: ./lib/vallist.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_wnp_connection.o: ./lib/wnp_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< ssqls2parse_parsev2.o: ./ssx/parsev2.cpp $(CXX) -c -o $@ $(SSQLS2PARSE_CXXFLAGS) $(CPPDEPS) $< ssqlsxlat_genv2.o: ./ssx/genv2.cpp $(CXX) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(CPPDEPS) $< ssqlsxlat_main.o: ./ssx/main.cpp $(CXX) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(CPPDEPS) $< test_array_index_array_index.o: ./test/array_index.cpp $(CXX) -c -o $@ $(TEST_ARRAY_INDEX_CXXFLAGS) $(CPPDEPS) $< test_cpool_cpool.o: ./test/cpool.cpp $(CXX) -c -o $@ $(TEST_CPOOL_CXXFLAGS) $(CPPDEPS) $< test_datetime_datetime.o: ./test/datetime.cpp $(CXX) -c -o $@ $(TEST_DATETIME_CXXFLAGS) $(CPPDEPS) $< test_inttypes_inttypes.o: ./test/inttypes.cpp $(CXX) -c -o $@ $(TEST_INTTYPES_CXXFLAGS) $(CPPDEPS) $< test_insertpolicy_insertpolicy.o: ./test/insertpolicy.cpp $(CXX) -c -o $@ $(TEST_INSERTPOLICY_CXXFLAGS) $(CPPDEPS) $< test_manip_manip.o: ./test/manip.cpp $(CXX) -c -o $@ $(TEST_MANIP_CXXFLAGS) $(CPPDEPS) $< test_null_comparison_null_comparison.o: ./test/null_comparison.cpp $(CXX) -c -o $@ $(TEST_NULL_COMPARISON_CXXFLAGS) $(CPPDEPS) $< test_query_copy_query_copy.o: ./test/query_copy.cpp $(CXX) -c -o $@ $(TEST_QUERY_COPY_CXXFLAGS) $(CPPDEPS) $< test_qssqls_qssqls.o: ./test/qssqls.cpp $(CXX) -c -o $@ $(TEST_QSSQLS_CXXFLAGS) $(CPPDEPS) $< test_qstream_qstream.o: ./test/qstream.cpp $(CXX) -c -o $@ $(TEST_QSTREAM_CXXFLAGS) $(CPPDEPS) $< test_sqlstream_sqlstream.o: ./test/sqlstream.cpp $(CXX) -c -o $@ $(TEST_SQLSTREAM_CXXFLAGS) $(CPPDEPS) $< test_ssqls2_ssqls2.o: ./test/ssqls2.cpp $(CXX) -c -o $@ $(TEST_SSQLS2_CXXFLAGS) $(CPPDEPS) $< test_string_string.o: ./test/string.cpp $(CXX) -c -o $@ $(TEST_STRING_CXXFLAGS) $(CPPDEPS) $< test_tcp_tcp.o: ./test/tcp.cpp $(CXX) -c -o $@ $(TEST_TCP_CXXFLAGS) $(CPPDEPS) $< test_uds_uds.o: ./test/uds.cpp $(CXX) -c -o $@ $(TEST_UDS_CXXFLAGS) $(CPPDEPS) $< test_wnp_wnp.o: ./test/wnp.cpp $(CXX) -c -o $@ $(TEST_WNP_CXXFLAGS) $(CPPDEPS) $< excommon_printdata.o: ./examples/printdata.cpp $(CXX) -c -o $@ $(EXCOMMON_CXXFLAGS) $(CPPDEPS) $< cgi_jpeg_cgi_jpeg.o: ./examples/cgi_jpeg.cpp $(CXX) -c -o $@ $(CGI_JPEG_CXXFLAGS) $(CPPDEPS) $< cpool_cpool.o: ./examples/cpool.cpp $(CXX) -c -o $@ $(CPOOL_CXXFLAGS) $(CPPDEPS) $< dbinfo_dbinfo.o: ./examples/dbinfo.cpp $(CXX) -c -o $@ $(DBINFO_CXXFLAGS) $(CPPDEPS) $< deadlock_deadlock.o: ./examples/deadlock.cpp $(CXX) -c -o $@ $(DEADLOCK_CXXFLAGS) $(CPPDEPS) $< fieldinf_fieldinf.o: ./examples/fieldinf.cpp $(CXX) -c -o $@ $(FIELDINF_CXXFLAGS) $(CPPDEPS) $< for_each_for_each.o: ./examples/for_each.cpp $(CXX) -c -o $@ $(FOR_EACH_CXXFLAGS) $(CPPDEPS) $< load_jpeg_load_jpeg.o: ./examples/load_jpeg.cpp $(CXX) -c -o $@ $(LOAD_JPEG_CXXFLAGS) $(CPPDEPS) $< multiquery_multiquery.o: ./examples/multiquery.cpp $(CXX) -c -o $@ $(MULTIQUERY_CXXFLAGS) $(CPPDEPS) $< resetdb_resetdb.o: ./examples/resetdb.cpp $(CXX) -c -o $@ $(RESETDB_CXXFLAGS) $(CPPDEPS) $< simple1_simple1.o: ./examples/simple1.cpp $(CXX) -c -o $@ $(SIMPLE1_CXXFLAGS) $(CPPDEPS) $< simple2_simple2.o: ./examples/simple2.cpp $(CXX) -c -o $@ $(SIMPLE2_CXXFLAGS) $(CPPDEPS) $< simple3_simple3.o: ./examples/simple3.cpp $(CXX) -c -o $@ $(SIMPLE3_CXXFLAGS) $(CPPDEPS) $< ssqls1_ssqls1.o: ./examples/ssqls1.cpp $(CXX) -c -o $@ $(SSQLS1_CXXFLAGS) $(CPPDEPS) $< ssqls2_ssqls2.o: ./examples/ssqls2.cpp $(CXX) -c -o $@ $(SSQLS2_CXXFLAGS) $(CPPDEPS) $< ssqls3_ssqls3.o: ./examples/ssqls3.cpp $(CXX) -c -o $@ $(SSQLS3_CXXFLAGS) $(CPPDEPS) $< ssqls4_ssqls4.o: ./examples/ssqls4.cpp $(CXX) -c -o $@ $(SSQLS4_CXXFLAGS) $(CPPDEPS) $< ssqls5_ssqls5.o: ./examples/ssqls5.cpp $(CXX) -c -o $@ $(SSQLS5_CXXFLAGS) $(CPPDEPS) $< ssqls6_ssqls6.o: ./examples/ssqls6.cpp $(CXX) -c -o $@ $(SSQLS6_CXXFLAGS) $(CPPDEPS) $< store_if_store_if.o: ./examples/store_if.cpp $(CXX) -c -o $@ $(STORE_IF_CXXFLAGS) $(CPPDEPS) $< tquery1_tquery1.o: ./examples/tquery1.cpp $(CXX) -c -o $@ $(TQUERY1_CXXFLAGS) $(CPPDEPS) $< tquery2_tquery2.o: ./examples/tquery2.cpp $(CXX) -c -o $@ $(TQUERY2_CXXFLAGS) $(CPPDEPS) $< tquery3_tquery3.o: ./examples/tquery3.cpp $(CXX) -c -o $@ $(TQUERY3_CXXFLAGS) $(CPPDEPS) $< tquery4_tquery4.o: ./examples/tquery4.cpp $(CXX) -c -o $@ $(TQUERY4_CXXFLAGS) $(CPPDEPS) $< transaction_transaction.o: ./examples/transaction.cpp $(CXX) -c -o $@ $(TRANSACTION_CXXFLAGS) $(CPPDEPS) $< .PHONY: all clean SHELL := $(COMSPEC) # Dependencies tracking: -include ./*.d mysql++-3.2.2+pristine.orig/config/0000755000372000001440000000000012502417167016445 5ustar robertousersmysql++-3.2.2+pristine.orig/config/libm.m40000644000372000001440000000144212502417162017626 0ustar robertousersdnl @synopsis LIB_MATH dnl dnl This macro figures out how whether programs using C's math routines dnl need to link to libm or not. This is common on SysV Unices. dnl dnl @category C dnl @author Warren Young dnl @version 1.2, 2006-03-06 AC_DEFUN([LIB_MATH], [ AC_MSG_CHECKING([whether -lm is needed to use C math functions]) MYSQLPP_EXTRA_LIBS= TRY_LIBM=no AC_TRY_LINK( [ #include ], [ floor(0); ], AC_MSG_RESULT(no), TRY_LIBM=yes) if test "x$TRY_LIBM" = "xyes" then save_LIBS=$LIBS LIBS="$LIBS -lm" AC_TRY_LINK( [ #include ], [ floor(0); ], [ MYSQLPP_EXTRA_LIBS=-lm AC_MSG_RESULT(yes) ], AC_MSG_ERROR([Failed to build program containing math functions!])) LIBS="$save_LIBS" fi AC_SUBST(MYSQLPP_EXTRA_LIBS) ]) mysql++-3.2.2+pristine.orig/config/ltversion.m40000644000372000001440000000126212502417162020730 0ustar robertousers# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) mysql++-3.2.2+pristine.orig/config/ltsugar.m40000644000372000001440000001042412502417162020364 0ustar robertousers# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) mysql++-3.2.2+pristine.orig/config/mysql_ssl.m40000644000372000001440000000101712502417162020727 0ustar robertousersdnl @synopsis MYSQL_WITH_SSL dnl dnl This macro determines whether mysql_ssl_set() API call exists. dnl Requires at least MySQL 4.0.1. dnl dnl @version $Id$, $Date$ dnl @author Ovidiu Bivolaru AC_DEFUN([MYSQL_WITH_SSL], [ # # Check for mysql_ssl_set() in libmysqlclient(_r) # AC_CHECK_LIB($MYSQL_C_LIB_NAME, mysql_ssl_set, [ AC_DEFINE(HAVE_MYSQL_SSL_SET,, Define if your MySQL library has SSL functions) ]) dnl AC_CHECK_LIB(mysqlclient, mysql_ssl_set) ]) dnl MYSQL_WITH_SSL mysql++-3.2.2+pristine.orig/config/localtime_r.m40000644000372000001440000000131512502417162021174 0ustar robertousersdnl @synopsis AX_C_LOCALTIME_R dnl dnl This macro determines whether the C runtime library contains dnl localtime_r(), a thread-safe replacement for localtime(). dnl dnl @version 1.0, 2007/02/20 dnl @author Warren Young AC_DEFUN([AX_C_LOCALTIME_R], [ AC_MSG_CHECKING([for localtime_r()]) AC_TRY_RUN([ #include int main(void) { time_t tt; struct tm stm; localtime_r(&tt, &stm); return 0; } ], [localtime_r_found=yes], [localtime_r_found=no], [localtime_r_found=no]) AC_MSG_RESULT([$localtime_r_found]) if test x"$localtime_r_found" = xyes then AC_DEFINE(HAVE_LOCALTIME_R, 1, [Define if you have the localtime_r() facility]) fi ]) dnl AX_C_LOCALTIME_R mysql++-3.2.2+pristine.orig/config/mysql++.m40000644000372000001440000001136412502417162020202 0ustar robertousers#-###################################################################### # mysql++.m4 - Example autoconf macro showing how to find MySQL++ # library and header files. # # Copyright (c) 2004-2009 by Educational Technology Resources, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2.1 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 # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with MySQL++; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 # USA #-###################################################################### dnl @synopsis MYSQLPP_DEVEL dnl dnl This macro tries to find the MySQL++ library and header files. dnl dnl We define the following configure script flags: dnl dnl --with-mysqlpp: Give prefix for both library and headers, and try dnl to guess subdirectory names for each. (e.g. tack /lib and dnl /include onto given dir name, and other common schemes.) dnl --with-mysqlpp-lib: Similar to --with-mysqlpp, but for library only. dnl --with-mysqlpp-include: Similar to --with-mysqlpp, but for headers dnl only. dnl dnl This macro depends on having the default compiler and linker flags dnl set up for building programs against the MySQL C API. The mysql.m4 dnl macro in this directory fits this bill; run it first. dnl dnl @version 1.3, 2009/11/22 dnl @author Warren Young AC_DEFUN([MYSQLPP_DEVEL], [ dnl dnl Set up configure script macros dnl AC_ARG_WITH(mysqlpp, [ --with-mysqlpp= path containing MySQL++ header and library subdirs], [MYSQLPP_lib_check="$with_mysqlpp/lib64 $with_mysqlpp/lib $with_mysqlpp/lib64/mysql++ $with_mysqlpp/lib/mysql++" MYSQLPP_inc_check="$with_mysqlpp/include $with_mysqlpp/include/mysql++"], [MYSQLPP_lib_check="/usr/local/mysql++/lib64 /usr/local/mysql++/lib /usr/local/lib64/mysql++ /usr/local/lib/mysql++ /opt/mysql++/lib64 /opt/mysql++/lib /usr/lib64/mysql++ /usr/lib/mysql++ /usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib" MYSQLPP_inc_check="/usr/local/mysql++/include /usr/local/include/mysql++ /opt/mysql++/include /usr/local/include/mysql++ /usr/local/include /usr/include/mysql++ /usr/include"]) AC_ARG_WITH(mysqlpp-lib, [ --with-mysqlpp-lib= directory path of MySQL++ library], [MYSQLPP_lib_check="$with_mysqlpp_lib $with_mysqlpp_lib/lib64 $with_mysqlpp_lib/lib $with_mysqlpp_lib/lib64/mysql $with_mysqlpp_lib/lib/mysql"]) AC_ARG_WITH(mysqlpp-include, [ --with-mysqlpp-include= directory path of MySQL++ headers], [MYSQLPP_inc_check="$with_mysqlpp_include $with_mysqlpp_include/include $with_mysqlpp_include/include/mysql"]) dnl dnl Look for MySQL++ library dnl AC_CACHE_CHECK([for MySQL++ library location], [ac_cv_mysqlpp_lib], [ for dir in $MYSQLPP_lib_check do if test -d "$dir" && \ ( test -f "$dir/libmysqlpp.so" || test -f "$dir/libmysqlpp.a" ) then ac_cv_mysqlpp_lib=$dir break fi done if test -z "$ac_cv_mysqlpp_lib" then AC_MSG_ERROR([Didn't find the MySQL++ library dir in '$MYSQLPP_lib_check']) fi case "$ac_cv_mysqlpp_lib" in /* ) ;; * ) AC_MSG_ERROR([The MySQL++ library directory ($ac_cv_mysqlpp_lib) must be an absolute path.]) ;; esac ]) AC_SUBST([MYSQLPP_LIB_DIR],[$ac_cv_mysqlpp_lib]) dnl dnl Look for MySQL++ header file directory dnl AC_CACHE_CHECK([for MySQL++ include path], [ac_cv_mysqlpp_inc], [ for dir in $MYSQLPP_inc_check do if test -d "$dir" && test -f "$dir/mysql++.h" then ac_cv_mysqlpp_inc=$dir break fi done if test -z "$ac_cv_mysqlpp_inc" then AC_MSG_ERROR([Didn't find the MySQL++ header dir in '$MYSQLPP_inc_check']) fi case "$ac_cv_mysqlpp_inc" in /* ) ;; * ) AC_MSG_ERROR([The MySQL++ header directory ($ac_cv_mysqlpp_inc) must be an absolute path.]) ;; esac ]) AC_SUBST([MYSQLPP_INC_DIR],[$ac_cv_mysqlpp_inc]) dnl dnl Now check that the above checks resulted in -I and -L flags that dnl let us build actual programs against MySQL++. dnl case "$ac_cv_mysqlpp_lib" in /usr/lib) ;; *) LDFLAGS="$LDFLAGS -L${ac_cv_mysqlpp_lib}" ;; esac CPPFLAGS="$CPPFLAGS -I${ac_cv_mysqlpp_inc} -I${MYSQL_C_INC_DIR}" AC_MSG_CHECKING([that we can build MySQL++ programs]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([#include ], [mysqlpp::Connection c(false)])], AC_MSG_RESULT([yes]), AC_MSG_ERROR([no])) ]) dnl End MYSQLPP_DEVEL mysql++-3.2.2+pristine.orig/config/autoconf_inc.m40000644000372000001440000001103012502417166021350 0ustar robertousersdnl ### begin block 00_header[./mysql++.bkl] ### dnl dnl This macro was generated by dnl Bakefile 0.2.9 (http://www.bakefile.org) dnl Do not modify, all changes will be overwritten! BAKEFILE_AUTOCONF_INC_M4_VERSION="0.2.9" dnl ### begin block 20_COND_BUILD_debug[./mysql++.bkl] ### COND_BUILD_debug="#" if test "x$BUILD" = "xdebug" ; then COND_BUILD_debug="" fi AC_SUBST(COND_BUILD_debug) dnl ### begin block 20_COND_BUILD_release[./mysql++.bkl] ### COND_BUILD_release="#" if test "x$BUILD" = "xrelease" ; then COND_BUILD_release="" fi AC_SUBST(COND_BUILD_release) dnl ### begin block 20_COND_DEPS_TRACKING_0[./mysql++.bkl] ### COND_DEPS_TRACKING_0="#" if test "x$DEPS_TRACKING" = "x0" ; then COND_DEPS_TRACKING_0="" fi AC_SUBST(COND_DEPS_TRACKING_0) dnl ### begin block 20_COND_DEPS_TRACKING_1[./mysql++.bkl] ### COND_DEPS_TRACKING_1="#" if test "x$DEPS_TRACKING" = "x1" ; then COND_DEPS_TRACKING_1="" fi AC_SUBST(COND_DEPS_TRACKING_1) dnl ### begin block 20_COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1[./mysql++.bkl] ### COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x0" -a "x$USE_SOVERCYGWIN" = "x0" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1="" fi AC_SUBST(COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1) dnl ### begin block 20_COND_PLATFORM_MACOSX_0_USE_SOVERSION_1[./mysql++.bkl] ### COND_PLATFORM_MACOSX_0_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x0" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_0_USE_SOVERSION_1="" fi AC_SUBST(COND_PLATFORM_MACOSX_0_USE_SOVERSION_1) dnl ### begin block 20_COND_PLATFORM_MACOSX_1[./mysql++.bkl] ### COND_PLATFORM_MACOSX_1="#" if test "x$PLATFORM_MACOSX" = "x1" ; then COND_PLATFORM_MACOSX_1="" fi AC_SUBST(COND_PLATFORM_MACOSX_1) dnl ### begin block 20_COND_PLATFORM_MACOSX_1_USE_SOVERSION_1[./mysql++.bkl] ### COND_PLATFORM_MACOSX_1_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x1" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_1_USE_SOVERSION_1="" fi AC_SUBST(COND_PLATFORM_MACOSX_1_USE_SOVERSION_1) dnl ### begin block 20_COND_PLATFORM_MAC_0[./mysql++.bkl] ### COND_PLATFORM_MAC_0="#" if test "x$PLATFORM_MAC" = "x0" ; then COND_PLATFORM_MAC_0="" fi AC_SUBST(COND_PLATFORM_MAC_0) dnl ### begin block 20_COND_PLATFORM_MAC_1[./mysql++.bkl] ### COND_PLATFORM_MAC_1="#" if test "x$PLATFORM_MAC" = "x1" ; then COND_PLATFORM_MAC_1="" fi AC_SUBST(COND_PLATFORM_MAC_1) dnl ### begin block 20_COND_PLATFORM_OS2_1[./mysql++.bkl] ### COND_PLATFORM_OS2_1="#" if test "x$PLATFORM_OS2" = "x1" ; then COND_PLATFORM_OS2_1="" fi AC_SUBST(COND_PLATFORM_OS2_1) dnl ### begin block 20_COND_USE_SOTWOSYMLINKS_1[./mysql++.bkl] ### COND_USE_SOTWOSYMLINKS_1="#" if test "x$USE_SOTWOSYMLINKS" = "x1" ; then COND_USE_SOTWOSYMLINKS_1="" fi AC_SUBST(COND_USE_SOTWOSYMLINKS_1) dnl ### begin block 20_COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1[./mysql++.bkl] ### COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1="#" if test "x$USE_SOVERCYGWIN" = "x1" -a "x$USE_SOVERSION" = "x1" ; then COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1="" fi AC_SUBST(COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1) dnl ### begin block 20_COND_USE_SOVERLINUX_1[./mysql++.bkl] ### COND_USE_SOVERLINUX_1="#" if test "x$USE_SOVERLINUX" = "x1" ; then COND_USE_SOVERLINUX_1="" fi AC_SUBST(COND_USE_SOVERLINUX_1) dnl ### begin block 20_COND_USE_SOVERSION_0[./mysql++.bkl] ### COND_USE_SOVERSION_0="#" if test "x$USE_SOVERSION" = "x0" ; then COND_USE_SOVERSION_0="" fi AC_SUBST(COND_USE_SOVERSION_0) dnl ### begin block 20_COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1[./mysql++.bkl] ### COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1="#" if test "x$USE_SOVERSION" = "x1" -a "x$USE_SOVERSOLARIS" = "x1" ; then COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1="" fi AC_SUBST(COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1) dnl ### begin block 20_COND_USE_SOVERSOLARIS_1[./mysql++.bkl] ### COND_USE_SOVERSOLARIS_1="#" if test "x$USE_SOVERSOLARIS" = "x1" ; then COND_USE_SOVERSOLARIS_1="" fi AC_SUBST(COND_USE_SOVERSOLARIS_1) dnl ### begin block 20_COND_WINDOWS_IMPLIB_1[./mysql++.bkl] ### COND_WINDOWS_IMPLIB_1="#" if test "x$WINDOWS_IMPLIB" = "x1" ; then COND_WINDOWS_IMPLIB_1="" fi AC_SUBST(COND_WINDOWS_IMPLIB_1) mysql++-3.2.2+pristine.orig/config/libtool.m40000644000372000001440000105743212502417162020362 0ustar robertousers# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS mysql++-3.2.2+pristine.orig/config/socket_nsl.m40000644000372000001440000000333112502417162021046 0ustar robertousersdnl @synopsis LIB_SOCKET_NSL dnl dnl This macro figures out what libraries are required on this platform dnl to link sockets programs. dnl dnl The common cases are not to need any extra libraries, or to need dnl -lsocket and -lnsl. We need to avoid linking with libnsl unless dnl we need it, though, since on some OSes where it isn't necessary it dnl will totally break networking. Unisys also includes gethostbyname() dnl in libsocket but needs libnsl for socket(). dnl dnl @category Misc dnl @author Warren Young dnl @version 1.5, 2006-03-06 AC_DEFUN([LIB_SOCKET_NSL], [ save_LIBS="$LIBS" AC_MSG_CHECKING([whether -lsocket is needed]) TRY_LSOCKET=no AC_TRY_LINK( [ #include #include #include #include ], [ socket(AF_INET, SOCK_STREAM, 0); ], AC_MSG_RESULT(no), TRY_LSOCKET=yes) if test "x$TRY_LSOCKET" = "xyes" then LIBS="-lsocket $LIBS" AC_TRY_LINK( [ #include #include #include #include ], [ socket(AF_INET, SOCK_STREAM, 0); ], [ MYSQLPP_EXTRA_LIBS="-lsocket $MYSQLPP_EXTRA_LIBS" AC_MSG_RESULT(yes) ], AC_MSG_ERROR([failed to link using -lsocket!])) fi AC_MSG_CHECKING([whether -lnsl is needed]) TRY_LNSL=no AC_TRY_LINK( [ #include ], [ gethostbyname("gna.org"); ], AC_MSG_RESULT(no), TRY_LNSL=yes) if test "x$TRY_LNSL" = "xyes" then LIBS="-lnsl $LIBS" AC_TRY_LINK( [ #include ], [ gethostbyname("gna.org"); ], [ MYSQLPP_EXTRA_LIBS="-lnsl $MYSQLPP_EXTRA_LIBS" AC_MSG_RESULT(yes) ], AC_MSG_ERROR([failed to link using -lnsl!])) fi AC_SUBST(MYSQLPP_EXTRA_LIBS) ]) mysql++-3.2.2+pristine.orig/config/mysql_loc.m40000644000372000001440000001026312502417162020706 0ustar robertousersdnl @synopsis MYSQL_C_API_LOCATION dnl dnl This macro tries to find MySQL C API header and library locations. dnl dnl We define the following configure script flags: dnl dnl --with-mysql: Give prefix for both library and headers, and try dnl to guess subdirectory names for each by tacking common dnl suffixes on like /lib and /include. dnl --with-mysql-lib: Same as --with-mysql, but for library only. dnl --with-mysql-include: Same as --with-mysql, but for headers only. dnl dnl @version 1.4, 2009/05/28 dnl @author Warren Young AC_DEFUN([MYSQL_C_API_LOCATION], [ # # Set up configure script macros # AC_ARG_WITH(mysql, [ --with-mysql= root directory path of MySQL installation], [MYSQL_lib_check="$with_mysql/lib/mysql $with_mysql/lib" MYSQL_inc_check="$with_mysql/include $with_mysql/include/mysql"], [MYSQL_lib_check="/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/local/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/lib/mysql /sw/lib /sw/lib/mysql" MYSQL_inc_check="/usr/include/mysql /usr/local/include/mysql /usr/local/mysql/include /usr/local/mysql/include/mysql /usr/mysql/include/mysql /opt/mysql/include/mysql /sw/include/mysql"]) AC_ARG_WITH(mysql-lib, [ --with-mysql-lib= directory path of MySQL library installation], [MYSQL_lib_check="$with_mysql_lib $with_mysql_lib/lib64 $with_mysql_lib/lib $with_mysql_lib/lib64/mysql $with_mysql_lib/lib/mysql"]) AC_ARG_WITH(mysql-include, [ --with-mysql-include= directory path of MySQL header installation], [MYSQL_inc_check="$with_mysql_include $with_mysql_include/include $with_mysql_include/include/mysql"]) # # Decide which C API library to use, based on thread support # if test "x$acx_pthread_ok" = xyes then MYSQL_C_LIB_NAME=mysqlclient_r else MYSQL_C_LIB_NAME=mysqlclient fi # # Look for MySQL C API library # AC_MSG_CHECKING([for MySQL library directory]) MYSQL_C_LIB_DIR= for m in $MYSQL_lib_check do if test -d "$m" && \ (test -f "$m/lib$MYSQL_C_LIB_NAME.so" || \ test -f "$m/lib$MYSQL_C_LIB_NAME.a") then MYSQL_C_LIB_DIR=$m break fi done if test -z "$MYSQL_C_LIB_DIR" then AC_MSG_ERROR([Didn't find $MYSQL_C_LIB_NAME library in '$MYSQL_lib_check']) fi case "$MYSQL_C_LIB_DIR" in /* ) ;; * ) AC_MSG_ERROR([The MySQL library directory ($MYSQL_C_LIB_DIR) must be an absolute path.]) ;; esac AC_MSG_RESULT([$MYSQL_C_LIB_DIR]) case "$MYSQL_C_LIB_DIR" in /usr/lib) MYSQL_C_LIB_DIR= ;; *) LDFLAGS="$LDFLAGS -L${MYSQL_C_LIB_DIR}" ;; esac # # Look for MySQL C API headers # AC_MSG_CHECKING([for MySQL include directory]) MYSQL_C_INC_DIR= for m in $MYSQL_inc_check do if test -d "$m" && test -f "$m/mysql.h" then MYSQL_C_INC_DIR=$m break fi done if test -z "$MYSQL_C_INC_DIR" then AC_MSG_ERROR([Didn't find the MySQL include dir in '$MYSQL_inc_check']) fi case "$MYSQL_C_INC_DIR" in /* ) ;; * ) AC_MSG_ERROR([The MySQL include directory ($MYSQL_C_INC_DIR) must be an absolute path.]) ;; esac AC_MSG_RESULT([$MYSQL_C_INC_DIR]) CPPFLAGS="$CPPFLAGS -I${MYSQL_C_INC_DIR}" AC_MSG_CHECKING([if we can link to MySQL C API library directly]) save_LIBS=$LIBS LIBS="$LIBS -l$MYSQL_C_LIB_NAME $MYSQLPP_EXTRA_LIBS" AC_TRY_LINK( [ #include ], [ mysql_store_result(0); ], AC_MSG_RESULT([yes]), [ AC_MSG_RESULT([no]) LIBS="$save_LIBS" AC_CHECK_HEADERS(zlib.h, AC_CHECK_LIB(z, gzread, [], [ AC_MSG_ERROR([zlib not found]) ])) AC_MSG_CHECKING([whether adding -lz will let MySQL C API link succeed]) MYSQLPP_EXTRA_LIBS="$MYSQLPP_EXTRA_LIBS -lz" LIBS="$save_LIBS -l$MYSQL_C_LIB_NAME $MYSQLPP_EXTRA_LIBS" AC_TRY_LINK( [ #include ], [ mysql_store_result(0); ], AC_MSG_RESULT([yes]), [ AC_MSG_RESULT([no]) AC_MSG_ERROR([Unable to link to MySQL client library!]) ] ) ]) LIBS=$save_LIBS AC_SUBST(MYSQL_C_INC_DIR) AC_SUBST(MYSQL_C_LIB_DIR) AC_SUBST(MYSQL_C_LIB_NAME) ]) dnl MYSQL_C_API_LOCATION mysql++-3.2.2+pristine.orig/config/lt~obsolete.m40000644000372000001440000001375612502417162021270 0ustar robertousers# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) mysql++-3.2.2+pristine.orig/config/ltoptions.m40000644000372000001440000003007312502417162020740 0ustar robertousers# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) mysql++-3.2.2+pristine.orig/config/stl_slist.m40000644000372000001440000000243212502417162020723 0ustar robertousersdnl @synopsis STL_SLIST_EXTENSION dnl dnl This macro determines whether the local STL implementation includes dnl a singly-linked list template, slist, and if so, where it is. dnl dnl @version 1.2, 2005/07/22 dnl @author Warren Young AC_DEFUN([STL_SLIST_EXTENSION], [ AC_MSG_CHECKING([for STL slist extension]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [#include ], [slist l])], AC_DEFINE(HAVE_GLOBAL_SLIST, 1, [ Define if you have ::slist container in ]), TRY_NEXT=yes) if test -z "$TRY_NEXT" then SLIST_LOC=", global scope" else TRY_NEXT="" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [#include ], [std::slist l])], AC_DEFINE(HAVE_STD_SLIST, 1, [ Define if you have std::slist container in ]), TRY_NEXT=yes) if test -z "$TRY_NEXT" then SLIST_LOC=", namespace std" else TRY_NEXT="" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [#include ], [__gnu_cxx::slist l])], AC_DEFINE(HAVE_EXT_SLIST, 1, [ Define if you have __gnu_cxx:slist container in ]), SLIST_LOC="not found") if test -z "$SLIST_LOC" then SLIST_LOC=", namespace __gnu_cxx" fi fi fi AC_MSG_RESULT([$SLIST_LOC]) ]) dnl STL_SLIST_EXTENSION mysql++-3.2.2+pristine.orig/config/acx_pthread.m40000644000372000001440000002547512502417162021201 0ustar robertousers# =========================================================================== # http://autoconf-archive.cryp.to/acx_pthread.html # =========================================================================== # # SYNOPSIS # # ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro figures out how to build C programs using POSIX threads. It # sets the PTHREAD_LIBS output variable to the threads library and linker # flags, and the PTHREAD_CFLAGS output variable to any special C compiler # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # # Also sets PTHREAD_CC to any special C compiler that is needed for # multi-threaded programs (defaults to the value of CC otherwise). (This # is necessary on AIX to use the special cc_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, # but also link it with them as well. e.g. you should link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # # If you are only building threads programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant # has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name # (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # ACTION-IF-FOUND is a list of shell commands to run if a threads library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action # will define HAVE_PTHREAD. # # Please let the authors know if this macro fails on any platform, or if # you have any other suggestions or comments. This macro was based on work # by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help # from M. Frigo), as well as ac_pthread and hb_pthread macros posted by # Alejandro Forero Cuervo to the autoconf macro repository. We are also # grateful for the helpful feedback of numerous users. # # LAST MODIFICATION # # 2008-04-12 # # COPYLEFT # # Copyright (c) 2008 Steven G. Johnson # # 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 3 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, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Macro Archive. When you make and # distribute a modified version of the Autoconf Macro, you may extend this # special exception to the GPL to apply to your modified version as well. AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD mysql++-3.2.2+pristine.orig/install.hta0000644000372000001440000002510612502417174017346 0ustar robertousers Install MySQL++ Development Files

Where would you like to install the MySQL++ development files?
Drives:
Folders:
  Install in versioned folder?
  Segregate native C++ library builds from C++/CLI (CLR) builds?
  Segregate libraries by platform?
Target:
 

mysql++-3.2.2+pristine.orig/install.hta.in0000644000372000001440000002512212502417162017746 0ustar robertousers Install MySQL++ Development Files

Where would you like to install the MySQL++ development files?
Drives:
Folders:
  Install in versioned folder?
  Segregate native C++ library builds from C++/CLI (CLR) builds?
  Segregate libraries by platform?
Target:
 

mysql++-3.2.2+pristine.orig/bk-deps0000755000372000001440000000620612502417173016454 0ustar robertousers#!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to track C/C++ files dependencies in portable way. # # Permission is given to use this file in any way. DEPSMODE=gcc DEPSFLAG="-MMD" DEPSDIRBASE=.deps if test $DEPSMODE = gcc ; then $* ${DEPSFLAG} status=$? # determine location of created files: while test $# -gt 0; do case "$1" in -o ) shift objfile=$1 ;; -* ) ;; * ) srcfile=$1 ;; esac shift done objfilebase=`basename $objfile` builddir=`dirname $objfile` depfile=`basename $srcfile | sed -e 's/\..*$/.d/g'` depobjname=`echo $depfile |sed -e 's/\.d/.o/g'` depsdir=$builddir/$DEPSDIRBASE mkdir -p $depsdir # if the compiler failed, we're done: if test ${status} != 0 ; then rm -f $depfile exit ${status} fi # move created file to the location we want it in: if test -f $depfile ; then sed -e "s,$depobjname:,$objfile:,g" $depfile >${depsdir}/${objfilebase}.d rm -f $depfile else # "g++ -MMD -o fooobj.o foosrc.cpp" produces fooobj.d depfile=`echo "$objfile" | sed -e 's/\..*$/.d/g'` if test ! -f $depfile ; then # "cxx -MD -o fooobj.o foosrc.cpp" creates fooobj.o.d (Compaq C++) depfile="$objfile.d" fi if test -f $depfile ; then sed -e "\,^$objfile,!s,$depobjname:,$objfile:,g" $depfile >${depsdir}/${objfilebase}.d rm -f $depfile fi fi exit 0 elif test $DEPSMODE = mwcc ; then $* || exit $? # Run mwcc again with -MM and redirect into the dep file we want # NOTE: We can't use shift here because we need $* to be valid prevarg= for arg in $* ; do if test "$prevarg" = "-o"; then objfile=$arg else case "$arg" in -* ) ;; * ) srcfile=$arg ;; esac fi prevarg="$arg" done objfilebase=`basename $objfile` builddir=`dirname $objfile` depsdir=$builddir/$DEPSDIRBASE mkdir -p $depsdir $* $DEPSFLAG >${depsdir}/${objfilebase}.d exit 0 elif test $DEPSMODE = unixcc; then $* || exit $? # Run compiler again with deps flag and redirect into the dep file. # It doesn't work if the '-o FILE' option is used, but without it the # dependency file will contain the wrong name for the object. So it is # removed from the command line, and the dep file is fixed with sed. cmd="" while test $# -gt 0; do case "$1" in -o ) shift objfile=$1 ;; * ) eval arg$#=\$1 cmd="$cmd \$arg$#" ;; esac shift done objfilebase=`basename $objfile` builddir=`dirname $objfile` depsdir=$builddir/$DEPSDIRBASE mkdir -p $depsdir eval "$cmd $DEPSFLAG" | sed "s|.*:|$objfile:|" >${depsdir}/${objfilebase}.d exit 0 else $* exit $? fi mysql++-3.2.2+pristine.orig/README-Visual-C++.txt0000644000372000001440000001734112502417162020446 0ustar robertousersPrerequisites ~~~~~~~~~~~~~ You need to have the MySQL C API development files on your system, since MySQL++ is built on top of it. The easiest way to get it is to download Connector/C from mysql.com. If you need the MySQL server on your development system anyway, you you can choose to install the development files along with the server. Some versions of the MySQL Server installer for Windows have installed the development files by default, while others have made it an optional install. Project Files ~~~~~~~~~~~~~ The distribution comes with three sets of .sln and .vcproj files in the vc2003, vc2005 and vc2008 subdirectories. We do this for several reasons: 1. It lets you build MySQL++ with multiple versions of Visual C++ without the build products conflicting. 2. For Visual C++ 2003, we had to disable the SSQLS feature because changes made in MySQL++ 3.0 now cause the compiler to crash while building. See the Breakages chapter in the user manual for workarounds if you must still use VC++ 2003. 3. The VC++ 2008 project files get built for 64-bit output, while the other two build 32-bit executables. With VC++ 2003, we have no choice about this, since it only supports 32-bit targets. VC++ 2005 did have experimental 64-bit compilers available, but their beta nature was only one reason we chose not to use them. The real reason is that the current MySQL++ build system isn't currently set up to make it easy to build both 32- and 64-bit libraries and executables at the same time within the same solution. Bakefile allows it, but it would require forking many of the build rules in mysql++.bkl so we can do things like have separate MYSQL_WIN_DIR values for each bitness. (See below for more on this variable.) For that same reason, the VC++ 2008 project files are set up to build 64-bit libraries and executables *only*. It is possible to upgrade these project files to work with newer versions of Visual C++, but beware that the upgrade feature tends to be problematic. If you want to do a 32-bit build on VC++ 2008 or newer, it is easiest to open the vc2005\* project files and let Visual Studio upgrade them for you. The alternative, starting with the vc2008 files, requires that you add a 32-bit build option to all of the many targets in MySQL++, then optionally delete the 64-bit targets. This is a lot more work. Plus, it only works if you have the 64-bit compilers installed, since Visual Studio will refuse to open project files where all targets must be built with compilers that aren't installed, even if your goal is to immediately adjust them to use compilers that *are* installed. When converting the VC++ 2008 project files to VC++ 2012, Visual Studio will change the output directories from Debug to Debug\x64 (and similar for Release), but it won't also change the link paths from Debug to Debug\x64, so that the library and examples will compile but not link. The migration tool detects that there is a problem, but it can't fix its own mess. You have to manually fix it. There were also problems in VC++ 2010 when you had converted 32-bit VC++ 2008 projects and then were trying to switch them to 64-bit. It ended up being simpler in this case to just start over from scratch and build your own project files. Using Nonstandard MySQL Installations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Visual Studio project files that come with MySQL++ have everything set up correctly for the common case. The biggest assumption in the settings is that you're building against the current stable version of Connector/C, which gets installed here at the time of this writing: C:\Program Files\MySQL\MySQL Connector C 6.1\ If you installed a different version, or it's in a different directory, or you've installed the development files as part of MySQL Server on the same machine, you need to change the project files to reference the C API development files in that other location. There are two ways to do this. The hard way is to make 16 different changes each to 44 separate project files. If you're a talented Visual Studio driver, you can do this in as little as about 5 or 6 steps. You might even get it right the first time. If you are not so talented, you have to make all ~700 changes one at a time, and you almost certainly will *not* get it right the first time. The somewhat easier way is to open all these files in a text editor that lets you make a global search and replace on all open files. The easy way is to install Bakefile (http://bakefile.org/), change the value of the MYSQL_WIN_DIR variable near the top of mysql++.bkl in the top level of the MySQL++ source tree, and run rebake.bat. This will rebuild all of the project files for you, using the new MySQL path in all the many places it's needed. Building the Library and Example Programs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You must build both the Debug and Release versions of the library, because a release build of your program won't work with a Debug version of the MySQL++ DLL. These DLLs get different names, so you can install them in the same directory if needed: mysqlpp_d.dll for the Debug version, and mysqlpp.dll for the Release version. With the library built, run at least the resetdb and simple1 examples to ensure that the library is working correctly. In addition to the other generic examples, there are a few Visual C++ specific examples that you might want to look at in examples\vstudio. See README-examples.txt for further details. Once you're sure the library is working correctly, you can run the install.hta file at the project root to install the library files and headers in a directory of your choosing. (Aside: You may not have come across the .hta extension before. It's for a rarely-used feature of Microsoft's Internet Explorer, called HTML Applications. Know what Adobe AIR is? Kinda like that, only without the compilation into a single binary blob which you must install before you can run it. Just open install.hta in a text editor to see how it works.) Using MySQL++ in Your Own Projects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is covered in the user manual, chapter 9. Working With Bakefile ~~~~~~~~~~~~~~~~~~~~~ MySQL++'s top-level Visual Studio project files aren't maintained directly. Instead, we use a tool called Bakefile (http://bakefile.org/) to generate them from mysql++.bkl. Since there are so many project files in MySQL++, it's often simpler to edit this source file and "re-bake" the project files from it than to make your changes in Visual Studio. To do this, download the native Windows version of Bakefile from the web site given above. Install it, and then put the installation directory in your Windows PATH. Then, open up a command window, cd into the MySQL++ directory, and type "rebake". This will run rebake.bat, which rebuilds the Visual Studio project files from mysql++.bkl. There's more information about using Bakefile in HACKERS.txt. If You Run Into Problems... ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Especially if you have linking problems, make sure your project settings match the above. Visual C++ is very picky about things like run time library settings. When in doubt, try running one of the example programs. If it works, the problem is likely in your project settings, not in MySQL++. mysql++-3.2.2+pristine.orig/doc/0000755000372000001440000000000012502417162015740 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/README-devel-RPM.txt0000644000372000001440000000071612502417162021173 0ustar robertousersmysql++-devel RPM installs the files you need when building your own MySQL++ based programs, as well as documentation and examples that can help you learn how to use the library. The MySQL++ header files are in /usr/include/mysql++, the library is in /usr/lib, and the example programs' source code is in /usr/share/doc/mysql++-devel-*/examples. For more information on the examples, see the README-examples.txt file in the directory containing the examples. mysql++-3.2.2+pristine.orig/doc/ssqls-pretty0000755000372000001440000000237012502417162020362 0ustar robertousers#!/usr/bin/perl use FileHandle; use IPC::Open2; if ($ARGV[0] =~ /^--command\=(.+)/) { $command = $1; } else { $command = "g++ -E -I /usr/include/mysql"; } if (-e 'lib/mysql++.h') { $command .= " -I lib"; } else { $command .= " -I /usr/include/mysql++/"; } $/ = undef; $orgcode = ; ($macro) = $orgcode =~ /(sql_create_.+? *\(.+?\))/s; $out = << "---"; #include $macro --- $/ = "\n"; $temp_dir = -d '/tmp' ? '/tmp' : $ENV{TMP} || $ENV{TEMP}; #print $out; open OUT, ">$temp_dir/${$}.cc"; print OUT $out; close OUT; system "$command $temp_dir/${$}.cc > $temp_dir/${$}.ii"; open IN, "$temp_dir/${$}.ii"; while () { next if /^\#/; $code .= $_; } close IN; unlink "$temp_dir/${$}.cc","$temp_dir/${$}.ii"; $_ = $code; s/\s+/ /g; s/ *public: */public:\n/g; s/ *private: */public:\n/g; s/ *\; */\;\n/g; s/ *\{ */ \{\n/g; s/ *\} */ \}\n\n/g; s/ *\n */\n/g; s/\{\s+}/\{\}/g; s/\}\s+\;/\}\;\n/g; $code = ""; foreach (split /\n/) { if (/\}/ && !/\{\}/ ) { $indent -= 2; $ind = ' 'x$indent; } $code .= "$ind$_\n" unless /\:$/; $code .= "$_\n" if /\:$/; if (/\{/ && !/\{\}/ ) { $indent += 2; $ind = ' 'x$indent; } } $orgcode =~ s/(sql_create_.+? *\(.+?\))/\n$code\n/s; print $orgcode; mysql++-3.2.2+pristine.orig/doc/userman/0000755000372000001440000000000012502417174017415 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/userman/userman.dbx0000644000372000001440000000346312502417174021574 0ustar robertousers %xinclude; ]>

MySQL++ v3.2.2 User Manual Kevin Atkinson Sinisa Milivojevic Monty Widenius Warren Young 1998-2001, 2005-2015 Kevin Atkinson (original author) MySQL AB Educational Technology Resources
mysql++-3.2.2+pristine.orig/doc/userman/multiquery.txt0000644000372000001440000001201112502417162022366 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include #include #include #include using namespace std; using namespace mysqlpp; typedef vector IntVectorType; static void print_header(IntVectorType& widths, StoreQueryResult& res) { cout << " |" << setfill(' '); for (size_t i = 0; i < res.field_names()->size(); i++) { cout << " " << setw(widths.at(i)) << res.field_name(int(i)) << " |"; } cout << endl; } static void print_row(IntVectorType& widths, Row& row) { cout << " |" << setfill(' '); for (size_t i = 0; i < row.size(); ++i) { cout << " " << setw(widths.at(i)) << row[int(i)] << " |"; } cout << endl; } static void print_row_separator(IntVectorType& widths) { cout << " +" << setfill('-'); for (size_t i = 0; i < widths.size(); i++) { cout << "-" << setw(widths.at(i)) << '-' << "-+"; } cout << endl; } static void print_result(StoreQueryResult& res, int index) { // Show how many rows are in result, if any StoreQueryResult::size_type num_results = res.size(); if (res && (num_results > 0)) { cout << "Result set " << index << " has " << num_results << " row" << (num_results == 1 ? "" : "s") << ':' << endl; } else { cout << "Result set " << index << " is empty." << endl; return; } // Figure out the widths of the result set's columns IntVectorType widths; size_t size = res.num_fields(); for (size_t i = 0; i < size; i++) { widths.push_back(max( res.field(i).max_length(), res.field_name(i).size())); } // Print result set header print_row_separator(widths); print_header(widths, res); print_row_separator(widths); // Display the result set contents for (StoreQueryResult::size_type i = 0; i < num_results; ++i) { print_row(widths, res[i]); } // Print result set footer print_row_separator(widths); } static void print_multiple_results(Query& query) { // Execute query and print all result sets StoreQueryResult res = query.store(); print_result(res, 0); for (int i = 1; query.more_results(); ++i) { res = query.store_next(); print_result(res, i); } } int main(int argc, char *argv[]) { // Get connection parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Enable multi-queries. Notice that you almost always set // MySQL++ connection options before establishing the server // connection, and options are always set using this one // interface. If you're familiar with the underlying C API, // you know that there is poor consistency on these matters; // MySQL++ abstracts these differences away. Connection con; con.set_option(new MultiStatementsOption(true)); // Connect to the database if (!con.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { return 1; } // Set up query with multiple queries. Query query = con.query(); query << "DROP TABLE IF EXISTS test_table; " << "CREATE TABLE test_table(id INT); " << "INSERT INTO test_table VALUES(10); " << "UPDATE test_table SET id=20 WHERE id=10; " << "SELECT * FROM test_table; " << "DROP TABLE test_table"; cout << "Multi-query: " << endl << query << endl; // Execute statement and display all result sets. print_multiple_results(query); #if MYSQL_VERSION_ID >= 50000 // If it's MySQL v5.0 or higher, also test stored procedures, which // return their results the same way multi-queries do. query << "DROP PROCEDURE IF EXISTS get_stock; " << "CREATE PROCEDURE get_stock" << "( i_item varchar(20) ) " << "BEGIN " << "SET i_item = concat('%', i_item, '%'); " << "SELECT * FROM stock WHERE lower(item) like lower(i_item); " << "END;"; cout << "Stored procedure query: " << endl << query << endl; // Create the stored procedure. print_multiple_results(query); // Call the stored procedure and display its results. query << "CALL get_stock('relish')"; cout << "Query: " << query << endl; print_multiple_results(query); #endif return 0; } catch (const BadOption& err) { cerr << err.what() << endl; cerr << "This example requires MySQL 4.1.1 or later." << endl; return 1; } catch (const ConnectionFailed& err) { cerr << "Failed to connect to database server: " << err.what() << endl; return 1; } catch (const Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return 1; } } mysql++-3.2.2+pristine.orig/doc/userman/userman.dbx.in0000644000372000001440000000356612502417162022202 0ustar robertousers %xinclude; ]>
MySQL++ v@MYSQLPP_VERSION_MAJOR@.@MYSQLPP_VERSION_MINOR@.@MYSQLPP_VERSION_BUGFIX@ User Manual Kevin Atkinson Sinisa Milivojevic Monty Widenius Warren Young 1998-2001, 2005-2015 Kevin Atkinson (original author) MySQL AB Educational Technology Resources
mysql++-3.2.2+pristine.orig/doc/userman/breakages.dbx0000644000372000001440000015315412502417162022046 0ustar robertousers Incompatible Library Changes This chapter documents those library changes since the epochal 1.7.9 release that break end-user programs. You can dig this stuff out of the ChangeLog, but the ChangeLog focuses more on explaining and justifying the facets of each change, while this section focuses on how to migrate your code between these library versions. Since pure additions do not break programs, those changes are still documented only in the ChangeLog. API Changes This section documents files, functions, methods and classes that were removed or changed in an incompatible way. If your program uses the changed item, you will have to change something in your program to get it to compile after upgrading to each of these versions. v1.7.10 Removed Row::operator[]() overloads except the one for size_type, and added Row::lookup_by_name() to provide the “subscript by string” functionality. In practical terms, this change means that the row["field"] syntax no longer works; you must use the new lookup_by_name method instead. Renamed the generated library on POSIX systems from libsqlplus to libmysqlpp. v1.7.19 Removed SQLQuery::operator=(), and the same for its Query subclass. Use the copy constructor instead, if you need to copy one query to another query object. v1.7.20 The library used to have two names for many core classes: a short one, such as Row and a longer one, MysqlRow. The library now uses the shorter names exclusively. All symbols within MySQL++ are in the mysqlpp namespace now if you use the new mysql++.h header. If you use the older sqlplus.hh or mysql++.hh headers, these symbols are hoist up into the global namespace. The older headers cause the compiler to emit warnings if you use them, and they will go away someday. v2.0.0 Connection class changes Connection::create_db() and drop_db() return true on success. They returned false in v1.7.x! This change will only affect your code if you have exceptions disabled. Renamed Connection::real_connect() to connect(), made several more of its parameters default, and removed the old connect() method, as it’s now a strict subset of the new one. The only practical consequence is that if your program was using real_connect(), you will have to change it to connect(). Replaced Connection::read_option() with new set_option() mechanism. In addition to changing the name, programs using this function will have to use the new Connection::Option enumerated values, accept a true return value as meaning success instead of 0, and use the proper argument type. Regarding the latter, read_option() took a const char* argument, but because it was just a thin wrapper over the MySQL C API function , the actual value being pointed to could be any of several types. This new mechanism is properly type-safe. Exception-related changes Classes Connection, Query, Result, ResUse, and Row now derive from which gives these classes a common interface for disabling exceptions. In addition, almost all of the per-method exception-disabling flags were removed. The preferred method for disabling exceptions on these objects is to create an instance of the new class on the stack, which disables exceptions on an OptionalExceptions subclass as long as the NoExceptions instance is in scope. You can instead call disable_exceptions() on any of these objects, but if you only want them disabled temporarily, it’s easy to forget to re-enable them later. In the previous version of MySQL++, those classes that supported optional exceptions that could create instances of other such classes were supposed to pass this flag on to their children. That is, if you created a Connection object with exceptions enabled, and then asked it to create a Query object, the Query object also had exceptions disabled. The problem is, this didn’t happen in all cases where it should have in v1.7. This bug is fixed in v2.0. If your program begins crashing due to uncaught exceptions after upgrading to v2.0, this is the most likely cause. The most expeditious fix in this situation is to use the new NoExceptions feature to return these code paths to the v1.7 behavior. A better fix is to rework your program to avoid or deal with the new exceptions. All custom MySQL++ exceptions now derive from the new interface. The practical upshot of this is that the variability between the various exception types has been eliminated. For instance, to get the error string, the BadQuery exception had a string member called error plus a method called what(). Both did the same thing, and the what() method is more common, so the error string was dropped from the interface. None of the example programs had to be changed to work with the new exceptions, so if your program handles MySQL++ exceptions the same way they do, your program won’t need to change, either. Renamed SQLQueryNEParams exception to BadParamCount to match style of other exception names. Added , , , , , , and exception types, to fix overuse of BadQuery. Now the latter is used only for errors on query execution. If your program has a “catch-all” block taking a std::exception for each try block containing MySQL++ statements, you probably won’t need to change your program. Otherwise, the new exceptions will likely show up as program crashes due to unhandled exceptions. Query class changes In previous versions, Connection had a querying interface similar to class Query’s. These methods were intended only for Query’s use; no example ever used this interface directly, so no end-user code is likely to be affected by this change. A more likely problem arising from the above change is code that tests for query success by calling the Connection object’s success() method or by casting it to bool. This will now give misleading results, because queries no longer go through the Connection object. Class Query has the same success-testing interface, so use it instead. Query now derives from std::ostream instead of std::stringstream. Result/ResUse class changes Renamed ResUse::mysql_result() to raw_result() so it’s database server neutral. Removed ResUse::eof(), as it wrapped the deprecated and unnecessary MySQL C API function . See the simple3 and usequery examples to see the proper way to test for the end of a result set. Row class changes Removed “field name” form of Row::field_list(). It was pointless. Row subscripting works more like v1.7.9: one can subscript a Row with a string (e.g. row["myfield"]), or with an integer (e.g. row[5]). lookup_by_name() was removed. Because row[0] is ambiguous (0 could mean the first field, or be a null pointer to const char*), there is now Row::at(), which can look up any field by index. Miscellaneous changes Where possible, all distributed Makefiles only build dynamic libraries. (Shared objects on most Unices, DLLs on Windows, etc.) Unless your program is licensed under the GPL or LGPL, you shouldn’t have been using the static libraries from previous versions anyway. Removed the backwards-compatibility headers sqlplus.hh and mysql++.hh. If you were still using these, you will have to change to mysql++.h, which will put all symbols in namespace mysqlpp. Can no longer use arrow operator (->) on the iterators into the Fields, Result and Row containers. v2.2.0 Code like this will have to change: query << "delete from mytable where myfield=%0:myvalue"; query.parse(); query.def["myvalue"] = some_value; query.execute(); ...to something more like this: query << "delete from mytable where myfield=%0"; query.parse(); query.execute(some_value); The first code snippet abuses the default template query parameter mechanism (Query::def) to fill out the template instead of using one of the overloaded forms of execute(), store() or use() taking one or more SQLString parameters. The purpose of Query::def is to allow for default template parameters over multiple queries. In the first snippet above, there is only one parameter, so in order to justify the use of template queries in the first place, it must be changing with each query. Therefore, it isn’t really a “default” parameter at all. We did not make this change maliciously, but you can understand why we are not in any hurry to restore this “feature”. (Incidentally, this change was made to allow better support for BLOB columns.) v2.3.0 Connection::set_option() calls now set the connection option immediately, instead of waiting until just before the connnection is actually established. Code that relied on the old behavior could see unhandled exceptions, since option setting errors are now thrown from a different part of the code. You want to wrap the actual set_option() call now, not Connection::connect() FieldNames and FieldTypes are no longer exported from the library. If you are using these classes directly from Visual C++ or MinGW, your code won’t be able to dynamically link to a DLL version of the library any more. These are internal classes, however, so no one should be using them directly. v3.0.0 Class name changes Several classes changed names in this release: ColData is now String. NullisBlank is now NullIsBlank. (Note the capital I.) Similar changes for NullisNull and NullisZero. ResNSel is now SimpleResult. Result is now StoreQueryResult. ResUse is now UseQueryResult. SQLString is now SQLTypeAdapter. When first building existing code against this version, you may find it helpful to define the macro MYSQLPP_OLD_CLASS_NAMES in your program’s build options. This will turn on some macros that set up aliases for the new class names matching their corresponding old names. Then, when you’ve fixed up any other issues that may prevent your program from building with the new MySQL++, you can turn it back off and fix up any class name differences. If you were only using ColData in a BLOB context, you should use sql_blob or one of the related typedefs defined in lib/sql_types.h instead, to insulate your code from changes like these. The SQLString change shouldn’t affect you, as this class was not designed to be used by end user code. But, due to the old name and the fact that it used to derive from std::string, some might have been tempted to use it as an enhanced std::string. Such code will undoubtedly break, but can probably be fixed by just changing it to use std::string instead. Connection class changes The option setting mechanism has been redesigned. (Yes, again.) There used to be an enum in Connection with a value for each option we understood, and an overload of Connection::set_option() for each argument type we understood. It was possible to pass any option value to any set_option() overload, and the problem would only be detected at run time. Now each option is represented by a class derived from the new Option abstract base class, and set_option() simply takes a pointer to one of these objects. See examples/multiquery.cpp for the syntax. Since each Option subclass takes only the parameter types it actually understands, it’s now completely type-safe at compile time. The new option setting mechanism also has the virtue of being more powerful so it let us replace several existing things within Connection with new options: Replaced enable_ssl() with SslOption. Replaced the compress parameter to the Connection create-and-connect constructor and Connection::connect() method with CompressOption. Replaced the connect_timeout parameter with ConnectTimeoutOption. Defined Option subclasses for each of the flags you would previously set using the client_flag parameter. There are about a dozen of these, so instead of listing them, look in lib/options.h for something with a similar name. Collapsed Connection’s host, port, and socket_name parameters down into a new combined server parameter which is parsed to determine what kind of connection you mean. These interfaces are still compatible with v2.3 and earlier up through the port parameter. Moved Connection::affected_rows(), info() and insert_id() methods to class Query, as they relate to the most recently-executed query. Changed the return type of Connection::ping() from int to bool. If you were calling ping() in bool context or using its return value in bool context, you will need to reverse the sense of the test because the previous return code used zero to mean success. Now it returns true to indicate success. Renamed several methods: Use client_version() instead of api_version() or client_info(). Use ipc_version() instead of host_info(). Use protocol_version() instead of proto_info(). Use server_version() instead of server_info(). Use status() instead of stat(). Also, removed close() in favor of disconnect(), which has always done the same thing. Date and Time class changes The sql_timestamp typedef is now an alias for DateTime, not Time. There used to be implicit conversion constructors from ColData (now String), std::string and const char* for the Date, DateTime, and Time classes. It’s still possible to do these conversions, but only explicitly. (This had to be done to make Null<T> work in SSQLSes.) The most likely place to run into problems as a result of this change is in code like this: void some_function(const mysqlpp::DateTime& dt); some_function("2007-12-22"); The function call needs to be changed to: some_function(mysqlpp::DateTime("2007-12-22")); Exception changes If an error occurs during the processing of a “use” query (as opposed to the initial execution) we throw the new UseQueryError exception instead of BadQuery. If you pass bad values to the Row ctor so that it can’t initialize itself properly, it throws the ObjectNotInitialized exception instead of BadQuery. Together, these two changes mean that BadQuery is now used solely to indicate a problem executing the actual SQL query statement. Field and Fields class changes Field is now a real C++ class, not just a typedef for the corresponding C API class. Major portability impacts are: It has no public data members. Where sensible, there is a public accessor function of the same name as the corresponding field in the C API structure. The main exception to this is the flags data member. This is a bitfield in the C API data structure and you had to use MySQL-specific constants to break values out of it. MySQL++’s new Field class provides a public member function returning bool for each of these flags. The new class doesn’t include all of the data members from the C API version. We left out those that aren’t used within MySQL++ or its examples, or whose function we couldn’t understand. Basically, if we couldn’t document a reason to use it, we left it out. Fields used to be a std::vector work-alike which worked with the C API to access fields and return them as though they were simply contained directly within the Fields object. Now that we have a real MySQL++ class to hold information about each field without reference to the C API, we were able to replace the Fields class with: typedef std::vector<Field> Fields; If anything, this should give a pure superset of the old functionality, but it’s possible it could break end user code. Query class changes If you were using char as an 8-bit integer in query building, there are several places in MySQL++ v3 where it will now be treated as a single-character string. MySQL++ has had the tiny_int class for many years now specifically to provide a true 8-bit integer without the semantic confusion surrounding the old C char type. Either use tiny_int, or use the SQL type aliases sql_tinyint and sql_tinyint_unsigned instead. The ‘r’ and ‘R’ template query parameter modifiers were removed. They made the library do quoting and both quoting and escaping (respectively) regardless of the data type of the parameter. There are no corresponding Query stream manipulators, so for symmetery we had to decide whether to add such manipulators or remove the tquery modifiers. There should never be a reason to force quoting or escaping other than to work around a MySQL++ bug, and it’s better to just fix the bug than work around it, so removed the tquery modifiers. Query::store_next() and Result::fetch_row() no longer throw the EndOfResults and EndOfResultSets exceptions; these are not exceptional conditions! These methods simply return false when you hit the end of the result set now. Renamed Query::def to Query::template_defaults to make its purpose clearer. Removed Query::preview(). The most direct replacement for this set of overloaded methods is the parallel set of str() methods, which were just aliases before. (Chose str() over preview() because it’s standard C++ nomenclature.) But if you’re just looking to get a copy of a built query string and you aren’t using template queries, you can now insert the Query into a stream and get the same result. For example, a lot of code in the examples that used to say things like: cout << query.preview() << endl; now looks like this: cout << query << endl; Result, ResUse, and ResNSel class changes In addition to the class name changes described above, UseQueryResult is no longer StoreQueryResult’s base class. There is a new abstract class called ResultBase containing much of what used to be in ResUse, and it is the base of both of these concrete result set types. This should only affect your code if you were using ResUse references to refer to Result objects. Removed a bunch of duplicate methods: Use num_fields() instead of columns(). Use field_names() instead of names(). Use num_rows() instead of rows(). Use field_types() instead of types(). Renamed several methods for “grammar” reasons. For example, some methods returned a single object but had a “plural” name, implying that it returned a container of objects. In cases like this, we changed the name to agree with the return value. Some of these also fall into the duplicate method category above: Use field(unsigned int) instead of fields(unsigned int). Use field_num(const std::string&) instead of names(const std::string&). Use field_name(int) instead of names(int). Use field_type(int) instead of types(int). Removed several “smelly” methods: purge(): was an internal implementation detail, not something for end user code to call raw_result(): end user code shouldn’t be digging down to the C API data structures, but if you really need something like this, look at the implementation of Query::storein(). Its workings will probably be educational. reset_names(): no reason to call this, especially now that the field name list is initialized once at startup and then never changed reset_field_names(): just an alias for previous reset_types(): same argument as for reset_names() reset_field_types(): just an alias for previous ResUse::field_num() would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the object, it just returns -1. SimpleResult’s member variables are all now private, and have read-only accessor functions of the same name. Code like this used to work: mysqlpp::Row row; mysqlpp::Result::size_type i; for (i = 0; row = res[i]; ++i) { // Do something with row here } That is, indexing past the end of a “store” result set would just return an empty row object, which tests as false in bool context, so it ends the loop. Now that StoreQueryResult is a std::vector derivative, this either crashes your program or causes the standard library to throw an exception, depending on what debugging features your version of STL has. The proper technique is: mysqlpp::Row row; mysqlpp::StoreQueryResult::size_type i; for (i = 0; i < res.num_rows(); ++i) { row = res[i]; // Do something with row here } ...or, in a more C++ish idiom: mysqlpp::Row row; mysqlpp::StoreQueryResult::const_iterator it; for (it = res.begin(); it != res.end(); ++it) { row = *it; // Do something with row here } Row class changes Removed Row::raw_data(), raw_size() and raw_string(). These were useful with BLOB data back when MySQL++ didn’t handle embedded null characters very well, and when copies of ColData objects were expensive. Neither is true now, so they have no value any more. Equivalent calls are: mysqlpp::String s = row[0]; s.data(); // raw_data() equivalent s.length(); // raw_size() equivalent std::string(s.data(), s.length()); // raw_string() equivalent Row::operator[](const char*) would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the Row object, it just returns a reference to an empty String object. You can tell when this happens because such an object tests as false in bool context. Specialized SQL Structure (SSQLS) changes Renamed custom* to ssqls*. There is a backwards-compatibility header custom.h which includes ssqls.h for you, but it will go away in a future version of MySQL++. SSQLSes get populated by field name now, not by field order. In v2, it was absolutely required that your SSQLS had its fields declared in exactly the same order as the fields in the database server, and there could be no gaps. An ALTER TABLE command would almost always necessitate redefining the corresponding SSQLS and rebuilding your program. Some alterations actually made using SSQLS impossible. For the most part, this change just gives your program additional flexibility in the face of future changes. However, code that was taking advantage of this low-level fact will break when moving to v3. Before I explain how, let’s go over the high-level functional changes you’ll find in v3’s SSQLS mechanism. Because MySQL++ no longer needs the SSQLS field order to match the SQL field order, the sql_create_c_order_* SSQLS creation macro was dropped in v3. We were also able to drop the ordering parameters from sql_create_complete_*. That in turn means there is no longer a difference between the way it and sql_create_c_names_* work, so the latter was also dropped. Thus, there are now only two groups of SSQLS creation macros left: sql_create_*, which works pretty much as it always has, and sql_create_complete_*, which is the same except for the lack of ordering parameters. In general, you should be using sql_create_* for all SSQLSes unless you need to use different names for data members in C++ than you use for the corresponding columns in SQL. In that case, use sql_create_complete_* instead. In v2, it was possible to have different SQL column names than SSQLS data member names while still using sql_create_* if you only used SSQLS for data retrieval.In MySQL++ v2, data retreival (Query::storein(), SSQLS(const Row& other), etc.) worked fine regardless of whether your SSQLS field names matched those in the corresponding SQL table, because the SSQLS was populated by position, not by field name. Thus, if all you used SSQLS for was data retrieval, you could define your structures with sql_create_* in v2. This was never recommended, because such an SSQLS wouldn’t work with other features of MySQL++ like Query::insert() because they depend on being able to map names from C++ to SQL and back. You needed to use sql_create_c_names_* to make these features work in v2 in the face of a naming scheme difference between C++ and SQL. In v3, you must use sql_create_complete_* for absolutely all uses of SSQLS when you want the C++ field names to differ from the SQL column names. The new Null<T> support in SSQLSes causes an internal compiler error in Visual C++ 2003. (VC++ 2005 and newer have no trobule with it.) A poll on the mailing list says there aren’t many people still stuck on this version, so we just ifdef’d out the SSQLS mechanism and all the examples that use it when built with VC++ 2003. If this affects you, see for suggestions on ways to cope. If you are using types other than MySQL++’s sql_* ones These typedefs have been available since MySQL++ v2.1. in your SSQLSes, code that previously worked may now see TypeLookupFailed exceptions. (This can be thrown even if exceptions are otherwise disabled in MySQL++.) This version of MySQL++ is stricter about mapping SQL to C++ type information, and vice versa. If the library can’t find a suitable mapping from one type system to the other, it throws this exception, because its only other option would be to crash or raise an assertion. This typically happens when building SQL queries, so you can probably handle it the same way as if the subsequent query excecution failed. If you’re catching the generic mysqlpp::Exception, your error handling code might not need to change. If you see this exception, it does mean you need to look into your use of data types, though. The table that controls this is mysql_type_info::types, defined at the top of lib/type_info.cpp. Every data type in lib/sql_types.h has a corresponding record in this table, so if you stick to those types, you’ll be fine. It’s also okay to use types your C++ compiler can convert directly to these predefined types. The _table static member variable for each SSQLS is now private. The recommended way to access this remains unchanged: the table() static member function. table() used to return a modifiable reference to the table name. Now there are two overloads, one which returns an unmodifiable pointer to the table name, and the other which takes const char* so you can override the default table name. So, the code we used to recommend for changing the SSQLS’s table name: my_ssqls_type::table() = "MyTableName"; now needs to be: my_ssqls_type::table("MyTableName"); Miscellaneous changes MySQL++ does quoting and escaping much more selectively now. Basically, if the library can tell you’re not building a SQL query using one of the standard methods, it assumes you’re outputting values for human consumption, so it disables quoting and SQL escaping. If you need to build your own mechanism to replace this, quoting is easy to do, and Query::escape_string() can do SQL escaping for you. Removed success() in Connection, Query and SimpleResult (neé ResNSel) and simply made these classes testable in bool context to get the same information. An additional change in Connection is that it used to be considered “unsuccessful” when the connection was down. Since the sense of this test is now whether the object is in a good state, it only returns false when the connection attempt fails. Call Connection::is_connected() if you just want to test whether the connection is up. The debug mode build of the library now has a "_d" suffix for Visual C++, and Xcode. This lets you have both versions installed without conflict. The release build uses the current naming scheme. If you have an existing program building against MySQL++ on these platforms, you’ll need to change your build options to use the new name in debug mode. Renamed NO_LONG_LONGS to MYSQLPP_NO_LONG_LONGS to avoid a risk of collision in the global macro namespace. v3.0.7 Most MySQL++ classes with at() or operator []() methods now throw the new exception when you pass an out-of-range index. These methods variously either did not check their indices, or threw std::out_of_range when passed a bad index. I say “most” because there is at least one MySQL++ class that doesn’t follow this rule. Fields is just a typedef for a specialization of std::vector, and the Standard has its own rules for index checking. ABI Changes This section documents those library changes that require you to rebuild your program so that it will link with the new library. Most of the items in the previous section are also ABI changes, but this section is only for those items that shouldn’t require any code changes in your program. If you were going to rebuild your program after installing the new library anyway, you can probably ignore this section. v1.7.18 The Query classes now subclass from stringstream instead of the deprecated strstream. v1.7.19 Fixed several const-incorrectnesses in the Query classes. v1.7.22 Removed “reset query” parameters from several Query class members. This is not an API change, because the parameters were given default values, and the library would ignore any value other than the default. So, any program that tried to make them take another value wouldn’t have worked anyway. v1.7.24 Some freestanding functions didn’t get moved into namespace mysqlpp when that namespace was created. This release fixed that. It doesn’t affect the API if your program’s C++ source files say using namespace mysqlpp within them. v2.0.0 Removed Connection::infoo(). (I’d call this an API change if I thought there were any programs out there actually using this...) Collapsed the Connection constructor taking a bool (for setting the throw_exceptions flag) and the default constructor into a single constructor using a default for the parameter. Classes Connection and Query are now derived from the Lockable interface, instead of implementing their own lock/unlock functions. In several instances, functions that took objects by value now take them by const reference, for efficiency. Merged SQLQuery class’s members into class Query. Merged RowTemplate class’s members into class Row. Reordered member variable declarations in some classes. The most common instance is when the private section was declared before the public section; it is now the opposite way. This can change the object’s layout in memory, so a program linking to the library must be rebuilt. Simplified the date and time class hierarchy. used to derive from mysql_date, used to derive from mysql_time, and used to derive from both of those. All three of these classes used to derive from mysql_dt_base. All of the mysql_* classes’ functionality and data has been folded into the leaf classes, and now the only thing shared between them is their dependence on the template. Since the leaf classes’ interface has not changed and end-user code shouldn’t have been using the other classes, this shouldn’t affect the API in any practical way. mysql_type_info now always initializes its private num member. Previously, this would go uninitialized if you used the default constructor. Now there is no default ctor, but the ctor taking one argument (which sets num) has a default. v3.0.0 Removed reset_query parameters from Query member functions. None of these have been honored at least going back to v1.7.9, so this is not an API change. As of this version, Query now automatically detects when it can safely reset itself after executing a query, so it’s not necessary to ask for a reset except when using template queries. Removed overloads of Query::execute(), store(), and use() that take only a const char*. This is not an API change because there was an equivalent call chain for this already. This change just snaps a layer of indirection. Query::error() is now const and returns const char* instead of a std::string by value. Removed Lockable mechanism as it was conceptually flawed. Connection and Query consequently no longer derive from Lockable. Since it was basically useless in prior versions, it can’t be construed as an API change. v3.0.1 Connection::thread_aware(), thread_start() and thread_end() are now static methods, so a program can call them before creating a connection. Ditto for DBDriver methods of the same name. ConnectionPool::release() is now virtual, so a subclass can override it. v3.0.2 ConnectionPool::grab() is now virtual; same reason as above. Query can now be tested in bool context, as was intended for v3.0.0. Had to change the “safe bool” method signature to make it happen, so technically it’s an API change, but it’s still used the same way. v3.1.0 The addition of a few new virtual methods to ConnectionPool inadvertently changed the library ABI. I knew adding fields changed the ABI, but erroneously assumed that the inverse of that truth — that adding methods was always safe — was also true. Adding normal methods is safe, but adding virtual methods breaks the ABI because it changes the class’s vtable size. That left us with two bad choices: either we could come out with a 3.1.1 that removed these methods to restore the prior ABI, or we could just declare this the “new ABI” and move on, resolving not to fall into this trap again. We’ve chosen the latter path. mysql++-3.2.2+pristine.orig/doc/userman/threads.dbx0000644000372000001440000004207412502417162021552 0ustar robertousers Using MySQL++ in a Multithreaded Program MySQL++ is not “thread safe” in any meaningful sense. MySQL++ contains very little code that actively prevents trouble with threads, and all of it is optional. We have done some work in MySQL++ to make thread safety achievable, but it doesn’t come for free. The main reason for this is that MySQL++ is generally I/O-bound, not processor-bound. That is, if your program’s bottleneck is MySQL++, the ultimate cause is usually the I/O overhead of using a client-server database. Doubling the number of threads will just let your program get back to waiting for I/O twice as fast. Since threads are evil and generally can’t help MySQL++, the only optional thread awareness features we turn on in the shipping version of MySQL++ are those few that have no practical negative consequences. Everything else is up to you, the programmer, to evaluate and enable as and when you need it. We’re going to assume that you are reading this chapter because you find yourself needing to use threads for some other reason than to speed up MySQL access. Our purpose here is limited to setting down the rules for avoiding problems with MySQL++ in a multi-threaded program. We won’t go into the broader issues of thread safety outside the scope of MySQL++. You will need a grounding in threads in general to get the full value of this advice. Build Issues Before you can safely use MySQL++ with threads, there are several things you must do to get a thread-aware build: Build MySQL++ itself with thread awareness turned on. On Linux, Cygwin and Unix (OS X, *BSD, Solaris...), pass the --enable-thread-check flag to the configure script. Beware, this is only a request to the configure script to look for thread support on your system, not a requirement to do or die: if the script doesn’t find what it needs to do threading, MySQL++ will just get built without thread support. See README-Unix.txt for more details. On Windows, if you use the Visual C++ project files or the MinGW Makefile that comes with the MySQL++ distribution, threading is always turned on, due to the nature of Windows. If you build MySQL++ in some other way, such as with Dev-Cpp (based on MinGW) you’re on your own to enable thread awareness. Link your program to a thread-aware build of the MySQL C API library. If you use a binary distribution of MySQL on Unixy systems (including Cygwin) you usually get two different versions of the MySQL C API library, one with thread support and one without. These are typically called libmysqlclient and libmysqlclient_r, the latter being the thread-safe one. (The “_r” means reentrant.) If you’re using the Windows binary distribution of MySQL, you should have only one version of the C API library, which should be thread-aware. If you have two, you probably just have separate debug and optimized builds. See README-Visual-C++.txt or README-MinGW.txt for details. If you build MySQL from source, you might only get one version of the MySQL C API library, and it can have thread awareness or not, depending on your configuration choices. Enable threading in your program’s build options. This is different for every platform, but it’s usually the case that you don’t get thread-aware builds by default. Depending on the platform, you might need to change compiler options, linker options, or both. See your development environment’s documentation, or study how MySQL++ itself turns on thread-aware build options when requested. Connection Management The MySQL C API underpinning MySQL++ does not allow multiple concurrent queries on a single connection. You can run into this problem in a single-threaded program, too, which is why we cover the details elsewhere, in . It’s a thornier problem when using threads, though. The simple fix is to just create a separarate object for each thread that needs to make database queries. This works well if you have a small number of threads that need to make queries, and each thread uses its connection often enough that the server doesn’t time out waiting for queries. If you have lots of threads or the frequency of queries is low, the connection management overhead will be excessive. To avoid that, we created the class. It manages a pool of Connection objects like library books: a thread checks one out, uses it, and then returns it to the pool as soon as it’s done with it. This keeps the number of active connections low. We suggest that you keep each connection’s use limited to a single variable scope for RAII reasons; we created a little helper called to make that easy. ConnectionPool has three methods that you need to override in a subclass to make it concrete: create(), destroy(), and max_idle_time(). These overrides let the base class delegate operations it can’t successfully do itself to its subclass. The ConnectionPool can’t know how to create() the Connection objects, because that depends on how your program gets login parameters, server information, etc. ConnectionPool also makes the subclass destroy() the Connection objects it created; it could assume that they’re simply allocated on the heap with new, but it can’t be sure, so the base class delegates destruction, too. Finally, the base class can’t know which connection idle timeout policy would make the most sense to the client, so it asks its subclass via the max_idle_time() method. ConnectionPool also allows you to override release(), if needed. For simple uses, it’s not necessary to override this. In designing your ConnectionPool derivative, you might consider making it a Singleton, since there should only be one pool in a program. Another thing you might consider doing is passing a object to Connection::set_option() in your create() override before returning the new Connection pointer. This will cause the underlying MySQL C API to try to reconnect to the database server if a query fails because the connection was dropped by the server. This can happen if the DB server is allowed to restart out from under your application. In many applications, this isn’t allowed, or if it does happen, you might want your code to be able to detect it, so MySQL++ doesn’t set this option for you automatically. Here is an example showing how to use connection pools with threads: The example works with both Windows native threads and with POSIX threads.The file examples/threads.h contains a few macros and such to abstract away the differences between the two threading models. Because thread-enabled builds are only the default on Windows, it’s quite possible for this program to do nothing on other platforms. See above for instructions on enabling a thread-aware build. If you write your code without checks for thread support like you see in the code above and link it to a build of MySQL++ that isn’t thread-aware, it will still try to run. The threading mechanisms fall back to a single-threaded mode when threads aren’t available. A particular danger is that the mutex lock mechanism used to keep the pool’s internal data consistent while multiple threads access it will just quietly become a no-op if MySQL++ is built without thread support. We do it this way because we don’t want to make thread support a MySQL++ prerequisite. And, although it would be of limited value, this lets you use ConnectionPool in single-threaded programs. You might wonder why we don’t just work around this weakness in the C API transparently in MySQL++ instead of suggesting design guidelines to avoid it. We’d like to do just that, but how? If you consider just the threaded case, you could argue for the use of mutexes to protect a connection from trying to execute two queries at once. The cure is worse than the disease: it turns a design error into a performance sap, as the second thread is blocked indefinitely waiting for the connection to free up. Much better to let the program get the “Commands out of sync” error, which will guide you to this section of the manual, which tells you how to avoid the error with a better design. Another option would be to bury ConnectionPool functionality within MySQL++ itself, so the library could create new connections at need. That’s no good because the above example is the most complex in MySQL++, so if it were mandatory to use connection pools, the whole library would be that much more complex to use. The whole point of MySQL++ is to make using the database easier. MySQL++ offers the connection pool mechanism for those that really need it, but an option it must remain. Helper Functions Connection has several thread-related static methods you might care about when using MySQL++ with threads. You can call Connection::thread_aware() to determine whether MySQL++ and the underlying C API library were both built to be thread-aware. I want to stress that thread awareness is not the same thing as thread safety: it’s still up to you to make your code thread-safe. If this method returns true, it just means it’s possible to achieve thread-safety, not that you actually have it. If your program’s connection-management strategy allows a thread to use a Connection object that another thread created, you need to know about Connection::thread_start(). This function sets up per-thread resources needed to make MySQL server calls. You don’t need to call it when you use the simple Connection-per-thread strategy, because this function is implicitly called the first time you create a Connection in a thread. It’s not harmful to call this function from a thread that previously created a Connection, just unnecessary. The only time it’s necessary is when a thread can make calls to the database server on a Connection that another thread created and that thread hasn’t already created a Connection itself. If you use ConnectionPool, you should call thread_start() at the start of each worker thread because you probably can’t reliably predict whether your grab() call will create a new Connection or will return one previously returned to the pool from another thread. It’s possible to conceive of situations where you can guarantee that each pool user always creates a fresh Connection the first time it calls grab(), but thread programming is complex enough that it’s best to take the safe path and always call thread_start() early in each worker thread. Finally, there’s the complementary method, Connection::thread_end(). Strictly speaking, it’s not necessary to call this. The per-thread memory allocated by the C API is small, it doesn’t grow over time, and a typical thread is going to need this memory for its entire run time. Memory debuggers aren’t smart enough to know all this, though, so they will gripe about a memory leak unless you call this from each thread that uses MySQL++ before that thread exits. Although its name suggests otherwise, Connection::thread_id() has nothing to do with anything in this chapter. Sharing MySQL++ Data Structures We’re in the process of making it safer to share MySQL++’s data structures across threads. Although things are getting better, it’s highly doubtful that all problems with this are now fixed. By way of illustration, allow me explain one aspect of this problem and how we solved it in MySQL++ 3.0.0. When you issue a database query that returns rows, you also get information about the columns in each row. Since the column information is the same for each row in the result set, older versions of MySQL++ kept this information in the result set object, and each kept a pointer back to the result set object that created it so it could access this common data at need. This was fine as long as each result set object outlived the Row objects it returned. It required uncommon usage patterns to run into trouble in this area in a single-threaded program, but in a multi-threaded program it was easy. For example, there’s frequently a desire to let one connection do the queries, and other threads process the results. You can see how avoiding lifetime problems here would require a careful locking strategy. We got around this in MySQL++ v3.0 by giving these shared data structures a lifetime independent of the result set object that intitially creates it. These shared data structures stick around until the last object needing them gets destroyed. Although this is now a solved problem, I bring it up because there are likely other similar lifetime and sequencing problems waiting to be discovered inside MySQL++. If you would like to help us find these, by all means, share data between threads willy-nilly. We welcome your crash reports on the MySQL++ mailing list. But if you’d prefer to avoid problems, it’s better to keep all data about a query within a single thread. Between this and the advice in prior sections, you should be able to use threads with MySQL++ without trouble. mysql++-3.2.2+pristine.orig/doc/userman/Makefile0000644000372000001440000000334412502417162021056 0ustar robertousers## ------------------------ ## Input files ## ------------------------ HTML_DIR=../html/userman BASENAME=userman DOCFILE=$(BASENAME).dbx PDFFILE=../pdf/$(BASENAME).pdf FOFILE=$(BASENAME).fo COMMON_SS=common.xsl FO_SS=fo.xsl HTML_SS=html.xsl EX_TXT=cgi_jpeg.txt cpool.txt deadlock.txt fieldinf.txt for_each.txt \ load_jpeg.txt multiquery.txt resetdb.txt simple1.txt \ simple2.txt simple3.txt ssqls1.txt ssqls2.txt ssqls3.txt \ ssqls4.txt ssqls5.txt ssqls6.txt stock.txt store_if.txt \ tquery1.txt transaction.txt ## ------------------------ ## Major output rules ## ------------------------ html: $(EX_TXT) $(HTML_DIR)/index.html pdf: $(EX_TXT) $(PDFFILE) ## ------------------------ ## Standard Makefile targets ## ------------------------ # Notice that this is not the first target in the file, as is standard. # PDF generation takes longer than HTML generation, so to keep the code- # test-debug-rebuild cycle short, we generate only the HTML manual by # default. You can explicitly say "make pdf" or "make all" when you're # sure the DocBook file's contents are correct. all: html pdf clean: @rm -f tags *.fo $(HTML_DIR)/*.html *.log *.out *.pdf $(EX_TXT) ## ------------------------ ## How to make output files ## ------------------------ $(PDFFILE): *.dbx *.in $(FO_SS) $(COMMON_SS) xsltproc --xinclude $(FO_SS) $(DOCFILE) > $(FOFILE) mkdir -p ../pdf ./fo2pdf $(FOFILE) $(PDFFILE) $(HTML_DIR)/index.html: *.dbx *.in *.mod *.txt *.xsl @xmllint --xinclude --nonet --postvalid --noent --noout $(DOCFILE) xsltproc --xinclude --nonet -o $(HTML_DIR)/ $(HTML_SS) $(DOCFILE) ## ------------------------ ## Dependency rules ## ------------------------ $(EX_TXT): @./mktxt $@ userman.dbx: userman.dbx.in ( cd ../.. ; ./config.status ) mysql++-3.2.2+pristine.orig/doc/userman/unicode.dbx0000644000372000001440000002324512502417162021545 0ustar robertousers Using Unicode with MySQL++ A Short History of Unicode ...with a focus on relevance to MySQL++ In the old days, computer operating systems only dealt with 8-bit character sets. That only allows for 256 possible characters, but the modern Western languages have more characters combined than that alone. Add in all the other languages of the world plus the various symbols people use in writing, and you have a real mess! Since no standards body held sway over things like international character encoding in the early days of computing, many different character sets were invented. These character sets weren’t even standardized between operating systems, so heaven help you if you needed to move localized Greek text on a DOS box to a Russian Macintosh! The only way we got any international communication done at all was to build standards on top of the common 7-bit ASCII subset. Either people used approximations like a plain “c” instead of the French “ç”, or they invented things like HTML entities (“&ccedil;” in this case) to encode these additional characters using only 7-bit ASCII. Unicode solves this problem. It encodes every character used for writing in the world, using up to 4 bytes per character. The subset covering the most economically valuable cases takes two bytes per character, so many Unicode-aware programs only support this subset, storing characters as 2-byte values, rather than use 4-byte characters so as to cover all possible cases, however rare. This subset of Unicode is called the Basic Multilingual Plane, or BMP. Unfortunately, Unicode was invented about two decades too late for Unix and C. Those decades of legacy created an immense inertia preventing a widespread move away from 8-bit characters. MySQL and C++ come out of these older traditions, and so they share the same practical limitations. MySQL++ currently doesn't have any code in it for Unicode conversions; it just passes data along unchanged from the underlying MySQL C API, so you still need to be aware of these underlying issues. During the development of the Plan 9 operating system (a kind of successor to Unix) Ken Thompson invented the UTF-8 encoding. UTF-8 is a superset of 7-bit ASCII and is compatible with C strings, since it doesn’t use 0 bytes anywhere as multi-byte Unicode encodings do. As a result, many programs that deal in text will cope with UTF-8 data even though they have no explicit support for UTF-8. (Follow the last link above to see how the design of UTF-8 allows this.) Thus, when explicit support for Unicode was added in MySQL v4.1, they chose to make UTF-8 the native encoding, to preserve backward compatibility with programs that had no Unicode support. Unicode on Unixy Systems Linux and Unix have system-wide UTF-8 support these days. If your operating system is of 2001 or newer vintage, it probably has such support. On such a system, the terminal I/O code understands UTF-8 encoded data, so your program doesn’t require any special code to correctly display a UTF-8 string. If you aren’t sure whether your system supports UTF-8 natively, just run the simple1 example: if the first item has two high-ASCII characters in place of the “ü” in “Nürnberger Brats”, you know it’s not handling UTF-8. If your Unix doesn’t support UTF-8 natively, it likely doesn’t support any form of Unicode at all, for the historical reasons I gave above. Therefore, you will have to convert the UTF-8 data to the local 8-bit character set. The standard Unix function iconv() can help here. If your system doesn’t have the iconv() facility, there is a free implementation available from the GNU Project. Another library you might check out is IBM’s ICU. This is rather heavy-weight, so if you just need basic conversions, iconv() should suffice. Unicode on Windows Each Windows API function that takes a string actually comes in two versions. One version supports only 1-byte “ANSI” characters (a superset of ASCII), so they end in 'A'. Windows also supports the 2-byte subset of Unicode called UCS-2Since Windows XP, Windows actually uses the UTF-16 encoding, not UCS-2. This means that if you use characters beyond the 16-bit “BMP” range, they get encoded as 4-byte characters. But again, since the most economically valuable subset of Unicode is the BMP, many programs ignore this distinction and treat modern Windows as supporting 2-byte characters.. Some call these “wide” characters, so the other set of functions end in 'W'. The MessageBox() API, for instance, is actually a macro, not a real function. If you define the UNICODE macro when building your program, the MessageBox() macro evaluates to MessageBoxW(); otherwise, to MessageBoxA(). Since MySQL uses the UTF-8 Unicode encoding and Windows uses UCS-2, you must convert data when passing text between MySQL++ and the Windows API. Since there’s no point in trying for portability — no other OS I’m aware of uses UCS-2 — you might as well use platform-specific functions to do this translation. Since version 2.2.2, MySQL++ ships with two Visual C++ specific examples showing how to do this in a GUI program. (In earlier versions of MySQL++, we did Unicode conversion in the console mode programs, but this was unrealistic.) How you handle Unicode data depends on whether you’re using the native Windows API, or the newer .NET API. First, the native case: // Convert a C string in UTF-8 format to UCS-2 format. void ToUCS2(LPTSTR pcOut, int nOutLen, const char* kpcIn) { MultiByteToWideChar(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen); } // Convert a UCS-2 string to C string in UTF-8 format. void ToUTF8(char* pcOut, int nOutLen, LPCWSTR kpcIn) { WideCharToMultiByte(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen, 0, 0); } These functions leave out some important error checking, so see examples/vstudio/mfc/mfc_dlg.cpp for the complete version. If you’re building a .NET application (such as, perhaps, because you’re using Windows Forms), it’s better to use the .NET libraries for this: // Convert a C string in UTF-8 format to a .NET String in UCS-2 format. String^ ToUCS2(const char* utf8) { return gcnew String(utf8, 0, strlen(utf8), System::Text::Encoding::UTF8); } // Convert a .NET String in UCS-2 format to a C string in UTF-8 format. System::Void ToUTF8(char* pcOut, int nOutLen, String^ sIn) { array<Byte>^ bytes = System::Text::Encoding::UTF8->GetBytes(sIn); nOutLen = Math::Min(nOutLen - 1, bytes->Length); System::Runtime::InteropServices::Marshal::Copy(bytes, 0, IntPtr(pcOut), nOutLen); pcOut[nOutLen] = '\0'; } Unlike the native API versions, these examples are complete, since the .NET platform handles a lot of things behind the scenes for us. We don’t need any error-checking code for such simple routines. All of this assumes you’re using Windows NT or one of its direct descendants: Windows 2000, Windows XP, Windows Vista, Windows 7, or any “Server” variant of Windows. Windows 95 and its descendants (98, ME, and CE) do not support Unicode. They still have the 'W' APIs for compatibility, but they just smash the data down to 8-bit and call the 'A' version for you. For More Information The Unicode FAQs page has copious information on this complex topic. When it comes to Unix and UTF-8 specific items, the UTF-8 and Unicode FAQ for Unix/Linux is a quicker way to find basic information. mysql++-3.2.2+pristine.orig/doc/userman/ssqls6.txt0000644000372000001440000000663212502417162021415 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; // Breaks a given text line of tab-separated fields up into a list of // strings. static size_t tokenize_line(const string& line, vector& strings) { string field; strings.clear(); istringstream iss(line); while (getline(iss, field, '\t')) { strings.push_back(mysqlpp::String(field)); } return strings.size(); } // Reads a tab-delimited text file, returning the data found therein // as a vector of stock SSQLS objects. static bool read_stock_items(const char* filename, vector& stock_vector) { ifstream input(filename); if (!input) { cerr << "Error opening input file '" << filename << "'" << endl; return false; } string line; vector strings; while (getline(input, line)) { if (tokenize_line(line, strings) == 6) { stock_vector.push_back(stock(string(strings[0]), strings[1], strings[2], strings[3], strings[4], strings[5])); } else { cerr << "Error parsing input line (doesn't have 6 fields) " << "in file '" << filename << "'" << endl; cerr << "invalid line: '" << line << "'" << endl; } } return true; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Read in a tab-delimited file of stock data vector stock_vector; if (!read_stock_items("examples/stock.txt", stock_vector)) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Clear all existing rows from stock table, as we're about to // insert a bunch of new ones, and we want a clean slate. mysqlpp::Query query = con.query(); query.exec("DELETE FROM stock"); // Insert data read from the CSV file, allowing up to 1000 // characters per packet. We're using a small size in this // example just to force multiple inserts. In a real program, // you'd want to use larger packets, for greater efficiency. mysqlpp::Query::MaxPacketInsertPolicy<> insert_policy(1000); query.insertfrom(stock_vector.begin(), stock_vector.end(), insert_policy); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::BadInsertPolicy& er) { // Handle bad conversions cerr << "InsertPolicy error: " << er.what() << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/cgi_jpeg.txt0000644000372000001440000000613212502417162021724 0ustar robertousers#include "cmdline.h" #include "images.h" #define CRLF "\r\n" #define CRLF2 "\r\n\r\n" int main(int argc, char* argv[]) { // Get database access parameters from command line if present, else // use hard-coded values for true CGI case. mysqlpp::examples::CommandLine cmdline(argc, argv, "root", "nunyabinness"); if (!cmdline) { return 1; } // Parse CGI query string environment variable to get image ID unsigned int img_id = 0; char* cgi_query = getenv("QUERY_STRING"); if (cgi_query) { if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) { std::cout << "Content-type: text/plain" << std::endl << std::endl; std::cout << "ERROR: Bad query string" << std::endl; return 1; } else { img_id = atoi(cgi_query + 3); } } else { std::cerr << "Put this program into a web server's cgi-bin " "directory, then" << std::endl; std::cerr << "invoke it with a URL like this:" << std::endl; std::cerr << std::endl; std::cerr << " http://server.name.com/cgi-bin/cgi_jpeg?id=2" << std::endl; std::cerr << std::endl; std::cerr << "This will retrieve the image with ID 2." << std::endl; std::cerr << std::endl; std::cerr << "You will probably have to change some of the #defines " "at the top of" << std::endl; std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." << std::endl; return 1; } // Retrieve image from DB by ID try { mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); mysqlpp::Query query = con.query(); query << "SELECT * FROM images WHERE id = " << img_id; mysqlpp::StoreQueryResult res = query.store(); if (res && res.num_rows()) { images img = res[0]; if (img.data.is_null) { std::cout << "Content-type: text/plain" << CRLF2; std::cout << "No image content!" << CRLF; } else { std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging std::cout << "Content-type: image/jpeg" << CRLF; std::cout << "Content-length: " << img.data.data.length() << CRLF2; std::cout << img.data; } } else { std::cout << "Content-type: text/plain" << CRLF2; std::cout << "ERROR: No image with ID " << img_id << CRLF; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors std::cout << "Content-type: text/plain" << CRLF2; std::cout << "QUERY ERROR: " << er.what() << CRLF; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cout << "Content-type: text/plain" << CRLF2; std::cout << "GENERAL ERROR: " << er.what() << CRLF; return 1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/ssqls1.txt0000644000372000001440000000367512502417162021414 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Retrieve a subset of the stock table's columns, and store // the data in a vector of 'stock' SSQLS structures. See the // user manual for the consequences arising from this quiet // ability to store a subset of the table in the stock SSQLS. mysqlpp::Query query = con.query("select item,description from stock"); vector res; query.storein(res); // Display the items cout << "We have:" << endl; vector::iterator it; for (it = res.begin(); it != res.end(); ++it) { cout << '\t' << it->item; if (it->description != mysqlpp::null) { cout << " (" << it->description << ")"; } cout << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions; e.g. type mismatch populating 'stock' cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/intro.dbx0000644000372000001440000001427612502417162021256 0ustar robertousers Introduction MySQL++ is a powerful C++ wrapper for MySQL’s C APIThe MySQL C API is also known as Connector/C.. Its purpose is to make working with queries as easy as working with STL containers. The latest version of MySQL++ can be found at the official web site. Support for MySQL++ can be had on the mailing list. That page hosts the mailing list archives, and tells you how you can subscribe. A Brief History of MySQL++ MySQL++ was created in 1998 by Kevin Atkinson. It started out MySQL-specific, but there were early efforts to try and make it database-independent, and call it SQL++. This is where the old library name “sqlplus” came from. This is also why the old versions prefixed some class names with “Mysql” but not others: the others were supposed to be the database-independent parts. All of Kevin’s releases had pre-1.0 version numbers. Then in 1999, MySQL AB took over development of the library. In the beginning, Monty Widenius himself did some of the work, but later gave it over to another MySQL employee, Sinisa Milivojevic. MySQL released versions 1.0 and 1.1, and then Kevin gave over maintenance to Sinisa officially with 1.2, and ceased to have any involvement with the library’s maintenance. Sinisa went on to maintain the library through 1.7.9, released in mid-2001. It seems to be during this time that the dream of multiple-database compatibility died, for obvious reasons. With version 1.7.9, MySQL++ went into a period of stasis, lasting over three years. (Perhaps it was the ennui and retrenchment following the collapse of the bubble that caused them to lose interest.) During this time, Sinisa ran the MySQL++ mailing list and supported its users, but made no new releases. Contributed patches were either ignored or put up on the MySQL++ web site for users to try, without any official blessing. The biggest barrier to using MySQL++ during this period is that the popular C++ compilers of 2001 weren’t all that compatible with the C++ Standard. As a result, MySQL++ used many nonstandard constructs, to allow for compatibility with older compilers. Each new compiler released in the following years increased compliance, either warning about or rejecting code using pre-Standard constructs. In particular, GCC was emerging from the mess following the EGCS fork during this time. The fork was healed officially in 1999, but there’s always a delay of a few years between the release of a new GCC and widespread adoption. The post-EGCS versions of GCC were only beginning to become popular by 2001, when development on MySQL++ halted. As a result, it became increasingly difficult to get MySQL++ to build cleanly as newer compilers came out. Since MySQL++ uses templates heavily, this affected end user programs as well: MySQL++ code got included directly in your program, so any warnings or errors it caused became your program’s problem. As a result, most of the patches contributed to the MySQL++ project during this period were to fix up standards compliance issues. Because no one was bothering to officially test and bless these patches, you ended up with the worst aspects of a bazaar development model: complete freedom of development, but no guiding hand to select from the good stuff and reject the rest. Many of the patches were mutually incompatible. Some would build upon other patches, so you had to apply them in the proper sequence. Others did useful things, but didn’t give a fully functional copy of MySQL++. Figuring out which patch(es) to use was an increasingly frustrating exercise as the years wore on, and newer GCCs became popular. In early August of 2004, Warren Young got fed up with this situation and took over. He released 1.7.10 later that month, which did little more than make the code build with GCC 3.3 without warnings. Since then, with a little help from his friends on the Net, MySQL++ has lost a lot of bugs, gained a lot of features, gained a few more bugs, lost them again... MySQL++ is alive and healthy now. If You Have Questions... If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list. The mailing list is archived, so if you have questions, do a search to see if the question has been asked before. You may find people’s individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Not all of the principal developers of MySQL++ are still active in its development; those who have dropped out have no wish to be bugged about MySQL++. Those of us still active in MySQL++ development monitor the mailing list, so you aren’t getting any extra “coverage” by sending messages to additional email addresses. mysql++-3.2.2+pristine.orig/doc/userman/transaction.txt0000644000372000001440000000602412502417162022502 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Show initial state mysqlpp::Query query = con.query(); cout << "Initial state of stock table:" << endl; print_stock_table(query); // Insert a few rows in a single transaction set { // Use a higher level of transaction isolation than MySQL // offers by default. This trades some speed for more // predictable behavior. We've set it to affect all // transactions started through this DB server connection, // so it affects the next block, too, even if we don't // commit this one. mysqlpp::Transaction trans(con, mysqlpp::Transaction::serializable, mysqlpp::Transaction::session); stock row("Sauerkraut", 42, 1.2, 0.75, mysqlpp::sql_date("2006-03-06"), mysqlpp::null); query.insert(row); query.execute(); cout << "\nRow inserted, but not committed." << endl; cout << "Verify this with another program (e.g. simple1), " "then hit Enter." << endl; getchar(); cout << "\nCommitting transaction gives us:" << endl; trans.commit(); print_stock_table(query); } // Now let's test auto-rollback { // Start a new transaction, keeping the same isolation level // we set above, since it was set to affect the session. mysqlpp::Transaction trans(con); cout << "\nNow adding catsup to the database..." << endl; stock row("Catsup", 3, 3.9, 2.99, mysqlpp::sql_date("2006-03-06"), mysqlpp::null); query.insert(row); query.execute(); } cout << "\nNo, yuck! We don't like catsup. Rolling it back:" << endl; print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/overview.dbx0000644000372000001440000002256012502417162021764 0ustar robertousers Overview MySQL++ has a lot of complexity and power to cope with the variety of ways people use databases, but at bottom it doesn’t work all that differently than other database access APIs. The usage pattern looks like this: Open the connection Form and execute the query If successful, iterate through the result set Else, deal with errors Each of these steps corresponds to a MySQL++ class or class hierarchy. An overview of each follows. The Connection Object A object manages the connection to the MySQL server. You need at least one of these objects to do anything. Because the other MySQL++ objects your program will use often depend (at least indirectly) on the Connection instance, the Connection object needs to live at least as long as all other MySQL++ objects in your program. MySQL supports many different types of data connection between the client and the server: TCP/IP, Unix domain sockets, and Windows named pipes. The generic Connection class supports all of these, figuring out which one you mean based on the parameters you pass to Connection::connect(). But if you know in advance that your program only needs one particular connection type, there are subclasses with simpler interfaces. For example, there’s if you know your program will always use a networked database server. The Query Object Most often, you create SQL queries using a object created by the Connection object. Query acts as a standard C++ output stream, so you can write data to it like you would to std::cout or std::ostringstream. This is the most C++ish way MySQL++ provides for building up a query string. The library includes stream manipulators that are type-aware so it’s easy to build up syntactically-correct SQL. Query also has a feature called which work something like C’s printf() function: you set up a fixed query string with tags inside that indicate where to insert the variable parts. If you have multiple queries that are structurally similar, you simply set up one template query, and use that in the various locations of your program. A third method for building queries is to use Query with SSQLS. This feature lets you create C++ structures that mirror your database schemas. These in turn give Query the information it needs to build many common SQL queries for you. It can INSERT, REPLACE and UPDATE rows in a table given the data in SSQLS form. It can also generate SELECT * FROM SomeTable queries and store the results as an STL collection of SSQLSes. Result Sets The field data in a result set are stored in a special std::string-like class called . This class has conversion operators that let you automatically convert these objects to any of the basic C data types. Additionally, MySQL++ defines classes like , which you can initialize from a MySQL DATETIME string. These automatic conversions are protected against bad conversions, and can either set a warning flag or throw an exception, depending on how you set the library up. As for the result sets as a whole, MySQL++ has a number of different ways of representing them: Queries That Do Not Return Data Not all SQL queries return data. An example is CREATE TABLE. For these types of queries, there is a special result type () that simply reports the state resulting from the query: whether the query was successful, how many rows it impacted (if any), etc. Queries That Return Data: MySQL++ Data Structures The most direct way to retrieve a result set is to use Query::store(). This returns a object, which derives from std::vector<mysqlpp::Row>, making it a random-access container of s. In turn, each Row object is like a std::vector of String objects, one for each field in the result set. Therefore, you can treat StoreQueryResult as a two-dimensional array: you can get the 5th field on the 2nd row by simply saying result[1][4]. You can also access row elements by field name, like this: result[2]["price"]. A less direct way of working with query results is to use Query::use(), which returns a object. This class acts like an STL input iterator rather than a std::vector: you walk through your result set processing one row at a time, always going forward. You can’t seek around in the result set, and you can’t know how many results are in the set until you find the end. In payment for that inconvenience, you get better memory efficiency, because the entire result set doesn’t need to be stored in RAM. This is very useful when you need large result sets. Queries That Return Data: Specialized SQL Structures Accessing results through MySQL++’s data structures is a pretty low level of abstraction. It’s better than using the MySQL C API, but not by much. You can elevate things a little closer to the level of the problem space by using the SSQLS feature. This lets you define C++ structures that match the table structures in your database schema. In addition, it’s easy to use SSQLSes with regular STL containers (and thus, algorithms) so you don’t have to deal with the quirks of MySQL++’s data structures. The advantage of this method is that your program will require very little embedded SQL code. You can simply execute a query, and receive your results as C++ data structures, which can be accessed just as you would any other structure. The results can be accessed through the Row object, or you can ask the library to dump the results into an STL container — sequential or set-associative, it doesn’t matter — for you. Consider this: vector<stock> v; query << "SELECT * FROM stock"; query.storein(v); for (vector<stock>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->price << endl; } Isn’t that slick? If you don’t want to create SSQLSes to match your table structures, as of MySQL++ v3 you can now use Row here instead: vector<mysqlpp::Row> v; query << "SELECT * FROM stock"; query.storein(v); for (vector<mysqlpp::Row>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->at("price") << endl; } It lacks a certain syntactic elegance, but it has its uses. Exceptions By default, the library throws whenever it encounters an error. You can ask the library to set an error flag instead, if you like, but the exceptions carry more information. Not only do they include a string member telling you why the exception was thrown, there are several exception types, so you can distinguish between different error types within a single try block. mysql++-3.2.2+pristine.orig/doc/userman/simple2.txt0000644000372000001440000000332112502417162021525 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Retrieve the sample stock table set up by resetdb mysqlpp::Query query = conn.query("select * from stock"); mysqlpp::StoreQueryResult res = query.store(); // Display results if (res) { // Display header cout.setf(ios::left); cout << setw(31) << "Item" << setw(10) << "Num" << setw(10) << "Weight" << setw(10) << "Price" << "Date" << endl << endl; // Get each row in result set, and print its contents for (size_t i = 0; i < res.num_rows(); ++i) { cout << setw(30) << res[i]["item"] << ' ' << setw(9) << res[i]["num"] << ' ' << setw(9) << res[i]["weight"] << ' ' << setw(9) << res[i]["price"] << ' ' << setw(9) << res[i]["sdate"] << endl; } } else { cerr << "Failed to get stock table: " << query.error() << endl; return 1; } return 0; } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.2+pristine.orig/doc/userman/cpool.txt0000644000372000001440000001705012502417162021272 0ustar robertousers#include "cmdline.h" #include "threads.h" #include using namespace std; #if defined(HAVE_THREADS) // Define a concrete ConnectionPool derivative. Takes connection // parameters as inputs to its ctor, which it uses to create the // connections we're called upon to make. Note that we also declare // a global pointer to an object of this type, which we create soon // after startup; this should be a common usage pattern, as what use // are multiple pools? class SimpleConnectionPool : public mysqlpp::ConnectionPool { public: // The object's only constructor SimpleConnectionPool(mysqlpp::examples::CommandLine& cl) : conns_in_use_(0), db_(mysqlpp::examples::db_name), server_(cl.server()), user_(cl.user()), password_(cl.pass()) { } // The destructor. We _must_ call ConnectionPool::clear() here, // because our superclass can't do it for us. ~SimpleConnectionPool() { clear(); } // Do a simple form of in-use connection limiting: wait to return // a connection until there are a reasonably low number in use // already. Can't do this in create() because we're interested in // connections actually in use, not those created. Also note that // we keep our own count; ConnectionPool::size() isn't the same! mysqlpp::Connection* grab() { while (conns_in_use_ > 8) { cout.put('R'); cout.flush(); // indicate waiting for release sleep(1); } ++conns_in_use_; return mysqlpp::ConnectionPool::grab(); } // Other half of in-use conn count limit void release(const mysqlpp::Connection* pc) { mysqlpp::ConnectionPool::release(pc); --conns_in_use_; } protected: // Superclass overrides mysqlpp::Connection* create() { // Create connection using the parameters we were passed upon // creation. This could be something much more complex, but for // the purposes of the example, this suffices. cout.put('C'); cout.flush(); // indicate connection creation return new mysqlpp::Connection( db_.empty() ? 0 : db_.c_str(), server_.empty() ? 0 : server_.c_str(), user_.empty() ? 0 : user_.c_str(), password_.empty() ? "" : password_.c_str()); } void destroy(mysqlpp::Connection* cp) { // Our superclass can't know how we created the Connection, so // it delegates destruction to us, to be safe. cout.put('D'); cout.flush(); // indicate connection destruction delete cp; } unsigned int max_idle_time() { // Set our idle time at an example-friendly 3 seconds. A real // pool would return some fraction of the server's connection // idle timeout instead. return 3; } private: // Number of connections currently in use unsigned int conns_in_use_; // Our connection parameters std::string db_, server_, user_, password_; }; SimpleConnectionPool* poolptr = 0; static thread_return_t CALLBACK_SPECIFIER worker_thread(thread_arg_t running_flag) { // Ask the underlying C API to allocate any per-thread resources it // needs, in case it hasn't happened already. In this particular // program, it's almost guaranteed that the safe_grab() call below // will create a new connection the first time through, and thus // allocate these resources implicitly, but there's a nonzero chance // that this won't happen. Anyway, this is an example program, // meant to show good style, so we take the high road and ensure the // resources are allocated before we do any queries. mysqlpp::Connection::thread_start(); cout.put('S'); cout.flush(); // indicate thread started // Pull data from the sample table a bunch of times, releasing the // connection we use each time. for (size_t i = 0; i < 6; ++i) { // Go get a free connection from the pool, or create a new one // if there are no free conns yet. Uses safe_grab() to get a // connection from the pool that will be automatically returned // to the pool when this loop iteration finishes. mysqlpp::ScopedConnection cp(*poolptr, true); if (!cp) { cerr << "Failed to get a connection from the pool!" << endl; break; } // Pull a copy of the sample stock table and print a dot for // each row in the result set. mysqlpp::Query query(cp->query("select * from stock")); mysqlpp::StoreQueryResult res = query.store(); for (size_t j = 0; j < res.num_rows(); ++j) { cout.put('.'); } // Delay 1-4 seconds before doing it again. Because this can // delay longer than the idle timeout, we'll occasionally force // the creation of a new connection on the next loop. sleep(rand() % 4 + 1); } // Tell main() that this thread is no longer running *reinterpret_cast(running_flag) = false; cout.put('E'); cout.flush(); // indicate thread ended // Release the per-thread resources before we exit mysqlpp::Connection::thread_end(); return 0; } #endif int main(int argc, char *argv[]) { #if defined(HAVE_THREADS) // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Create the pool and grab a connection. We do it partly to test // that the parameters are good before we start doing real work, and // partly because we need a Connection object to call thread_aware() // on to check that it's okay to start doing that real work. This // latter check should never fail on Windows, but will fail on most // other systems unless you take positive steps to build with thread // awareness turned on. See README-*.txt for your platform. poolptr = new SimpleConnectionPool(cmdline); try { mysqlpp::ScopedConnection cp(*poolptr, true); if (!cp->thread_aware()) { cerr << "MySQL++ wasn't built with thread awareness! " << argv[0] << " can't run without it." << endl; return 1; } } catch (mysqlpp::Exception& e) { cerr << "Failed to set up initial pooled connection: " << e.what() << endl; return 1; } // Setup complete. Now let's spin some threads... cout << endl << "Pool created and working correctly. Now to do " "some real work..." << endl; srand((unsigned int)time(0)); bool running[] = { true, true, true, true, true, true, true, true, true, true, true, true, true, true }; const size_t num_threads = sizeof(running) / sizeof(running[0]); size_t i; for (i = 0; i < num_threads; ++i) { if (int err = create_thread(worker_thread, running + i)) { cerr << "Failed to create thread " << i << ": error code " << err << endl; return 1; } } // Test the 'running' flags every second until we find that they're // all turned off, indicating that all threads are stopped. cout.put('W'); cout.flush(); // indicate waiting for completion do { sleep(1); i = 0; while (i < num_threads && !running[i]) ++i; } while (i < num_threads); cout << endl << "All threads stopped!" << endl; // Shut it all down... delete poolptr; cout << endl; #else (void)argc; // warning squisher cout << argv[0] << " requires that threads be enabled!" << endl; #endif return 0; } mysql++-3.2.2+pristine.orig/doc/userman/ssqls2.txt0000644000372000001440000000363612502417162021412 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Create and populate a stock object. We could also have used // the set() member, which takes the same parameters as this // constructor. stock row("Hot Dogs", 100, 1.5, numeric_limits::infinity(), // "priceless," ha! mysqlpp::sql_date("1998-09-25"), mysqlpp::null); // Form the query to insert the row into the stock table. mysqlpp::Query query = con.query(); query.insert(row); // Show the query about to be executed. cout << "Query: " << query << endl; // Execute the query. We use execute() because INSERT doesn't // return a result set. query.execute(); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/stock.txt0000644000372000001440000000127312502417162021301 0ustar robertousers#include #include // The following is calling a very complex macro which will create // "struct stock", which has the member variables: // // sql_char item; // ... // sql_mediumtext_null description; // // plus methods to help populate the class from a MySQL row. See the // SSQLS sections in the user manual for further details. sql_create_6(stock, 1, 6, // The meaning of these values is covered in the user manual mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_double_null, price, mysqlpp::sql_date, sDate, // SSQLS isn't case-sensitive! mysqlpp::sql_mediumtext_null, description) mysql++-3.2.2+pristine.orig/doc/userman/ssqls5.txt0000644000372000001440000000325312502417162021410 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Get all the rows in the stock table. mysqlpp::Query query = con.query("select * from stock"); vector res; query.storein(res); if (res.size() > 0) { // Build a select query using the data from the first row // returned by our previous query. query << "select * from stock where " << res[0].equal_list(" and ", stock_weight, stock_price); // Display the finished query. cout << "Custom query:\n" << query << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/store_if.txt0000644000372000001440000000407312502417162021771 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include #include // Define a functor for testing primality. struct is_prime { bool operator()(const stock& s) { if ((s.num == 2) || (s.num == 3)) { return true; // 2 and 3 are trivial cases } else if ((s.num < 2) || ((s.num % 2) == 0)) { return false; // can't be prime if < 2 or even } else { // The only possibility left is that it's divisible by an // odd number that's less than or equal to its square root. for (int i = 3; i <= sqrt(double(s.num)); i += 2) { if ((s.num % i) == 0) { return false; } } return true; } } }; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Collect the stock items with prime quantities std::vector results; mysqlpp::Query query = con.query(); query.store_if(results, stock(), is_prime()); // Show the results print_stock_header(results.size()); std::vector::const_iterator it; for (it = results.begin(); it != results.end(); ++it) { print_stock_row(it->item.c_str(), it->num, it->weight, it->price, it->sDate); } } catch (const mysqlpp::BadQuery& e) { // Something went wrong with the SQL query. std::cerr << "Query failed: " << e.what() << std::endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cerr << "Error: " << er.what() << std::endl; return 1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/licenses.dbx0000644000372000001440000010473212502417162021725 0ustar robertousers Licensing The primary copyright holders on the MySQL++ library and its documentation are Kevin Atkinson (1998), MySQL AB (1999 through 2001) and Educational Technology Resources, Inc. (2004 through the date of this writing). There are other contributors, who also retain copyrights on their additions; see the ChangeLog file in the MySQL++ distribution tarball for details. The MySQL++ library and its Reference Manual are released under the GNU Lesser General Public License (LGPL), reproduced below. The MySQL++ User Manual — excepting some example code from the library reproduced within it — is offered under a license closely based on the Linux Documentation Project License (LDPL) v2.0, included below. (The MySQL++ documentation isn’t actually part of the Linux Documentation Project, so the main changes are to LDP-related language. Also, generic language such as “author’s (or authors’)” has been replaced with specific language, because the license applies to only this one document.) These licenses basically state that you are free to use, distribute and modify these works, whether for personal or commercial purposes, as long as you grant the same rights to those you distribute the works to, whether you changed them or not. See the licenses below for full details. GNU Lesser General Public License Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author’s reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the “Lesser” General Public License because it does Less to protect the user’s freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users’ freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a “work based on the library” and a “work that uses the library”. The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called “this License”). Each licensee is addressed as “you”. A “library” means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The “Library”, below, refers to any such software library or work which has been distributed under these terms. A “work based on the Library” means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term “modification”.) “Source code” for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library’s complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a “work that uses the Library”. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a “work that uses the Library” with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a “work that uses the library”. The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a “work that uses the Library” uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a “work that uses the Library” with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer’s own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable “work that uses the Library”, as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user’s computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
For an executable, the required form of the “work that uses the Library” must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
<one line to give the library’s name and a brief idea of what it does.> Copyright © <year> <name of author> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the library, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. <signature of Ty Coon>, 1 April 1990 Ty Coon, President of Vice
That’s all there is to it!
MySQL++ User Manual License I. COPYRIGHT The copyright to the MySQL++ User Manual is owned by its authors. II. LICENSE The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents. A. REQUIREMENTS OF MODIFIED WORKS All modified documents, including translations, anthologies, and partial documents, must meet the following requirements: The modified version must be labeled as such. The person making the modifications must be identified. Acknowledgement of the original author must be retained. The location of the original unmodified document be identified. The original authors’ names may not be used to assert or imply endorsement of the resulting document without the original authors’ permission. In addition it is requested that: The modifications (including deletions) be noted. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document. Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works. All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format.
mysql++-3.2.2+pristine.orig/doc/userman/configuration.dbx0000644000372000001440000002222512502417162022763 0ustar robertousers Configuring MySQL++ The default configuration of MySQL++ is suitable for most purposes, but there are a few things you can change to make it meet special needs. The Location of the MySQL Development Files MySQL++ is built on top of the MySQL C API. (Now called Connector/C.) MySQL++ relies on this low-level library for all communication with the database server. Consequently, the build process for MySQL++ may fail if it can’t find the C API headers and library. On platforms that use AutoconfLinux, Solaris, the BSDs, Mac OS X command line (as opposed to the Xcode IDE), Cygwin... Basically, Unix or anything that works like it., the configure script can usually figure out the location of the C API development files by itselfI don’t say “Connector/C” here because the name change generally hasn’t percolated out to Unixy systems. It’s more commonly used on Windows systems, since the separate Connector/C download lets them avoid installing a MySQL server just to get development headers and libraries. It simply tries a bunch of common installation locations until it finds one that works. If your MySQL server was installed in a nonstandard location, you will have to tell the configure script where these files are with some combination of the --with-mysql, --with-mysql-include, and --with-mysql-lib flags. See README-Unix.txt for details. No other platform allows this sort of auto-discovery, so the build files for these platforms simply hard-code the default installation location for the current GA version of Connector/C at the time that version of MySQL++ was released. For example, the Visual C++ project files currently assume MySQL is in c:\Program Files\MySQL\MySQL Server 5.1. If you’re using some other release of MySQL or you installed it somewhere else, you will have to modify the build files. How you do this, exactly, varies based on platform and what tools you have on hand. See README-Visual-C++.txt, README-MinGW.txt, or README-Mac-OS-X.txt, as appropriate. The Maximum Number of Fields Allowed MySQL++ offers two ways to automatically build SQL queries at run time: and SSQLS. There’s a limit on the number of fields these mechanisms support, defaulting to 25 fields in the official MySQL++ packages.If you’re using a third-party MySQL++ package, its maintainer may have increased these field counts so the resulting headers more closely approach the size limit of the compiler the package was built with. In that case, you can look at the top of each generated header file to find out how many fields each supports. The files embodying these limits are lib/querydef.h and lib/ssqls.h, each generated by Perl scripts of the same name but with a .pl extension. The default querydef.h is small and its size only increases linearly with respect to maximum field count. ssqls.h is a totally different story. The default 25 field limit makes ssqls.pl generate an ssqls.h over 1 MB. Worse, the field limit to file size relation is quadratic.The file size equation, for you amateur mathematicians out there, is Nlines = 18.5f2 + 454.5f + 196.4, where f is the field count. This has a number of bad effects: Generating header files to support more fields than you actually require is a waste of space and bandwidth. Some compilers have arbitrary limits on the size of macros they’re able to parse. Exceeding these limits usually causes the compiler to misbehave badly, rather than fail gracefully. Because it increases the size of two key files used in building MySQL++ itself and programs built on it, it increases compile times significantly. One test I did here showed a tripling of compile time from quadrupling the field limit. More than 25 fields in a table is a good sign of a bad database design, most likely a denormalization problem. The default limits try to mitigate against all of these factors while still being high enough to be useful with most DB designs. If you’re building MySQL++ from source on a platform that uses Autoconf, the easiest way to change these limits is at configuration time: ./configure --with-field-limit=50 That causes the configuration script to pass the -f flag to the two Perl scripts named above, overriding the default of 25 fields. Obviously you need a Perl interpreter on the system for this to work, but Perl is usually installed by default on systems MySQL++ supports via Autoconf. On all other platforms, you’ll have to give the -f flag to these scripts yourself. This may require installing Perl and putting it in the command path first. Having done that, you can do something like this to raise the limits: cd lib perl ssqls.pl -f 50 perl querydef.pl -f 50 Note the need to run these commands within the lib subdirectory of the MySQL++ source tree. (This is done for you automatically on systems where you are able to use the Autoconf method.) Buried MySQL C API Headers It’s common these days on Unixy systems to install the MySQL C API headers in a mysql directory under some common include directory. If the C API headers are in /usr/include/mysql, we say they are “buried” underneath the system’s main include directory, /usr/include. Since the MySQL++ headers depend on these C API headers, it can be useful for MySQL++ to know this fact. When MySQL++ includes one of the C API headers, it normally does so in the obvious way: #include <mysql.h> But, if you define the MYSQLPP_MYSQL_HEADERS_BURIED macro, it switches to this style: #include <mysql/mysql.h> In common situations like the /usr/include/mysql one, this simplifies the include path options you pass to your compiler. Building MySQL++ on Systems Without Complete C99 Support MySQL++ uses the C99 header stdint.h for portable fixed-size integer typedefs where possible. The C99 extensions aren’t yet officially part of the C++ Standard, so there are still some C++ compilers that don’t offer this header. MySQL++ works around the lack of this header where it knows it needs to, but your platform might not be recognized, causing the build to break. If this happens, you can define the MYSQLPP_NO_STDINT_H macro to make MySQL++ use its best guess for suitable integer types instead of relying on stdint.h. MySQL++ also uses C99’s long long data type where available. MySQL++ has workarounds for platforms where this is known not to be available, but if you get errors in common.h about this type, you can define the macro MYSQLPP_NO_LONG_LONGS to make MySQL++ fall back to portable constructs. mysql++-3.2.2+pristine.orig/doc/userman/common.xsl0000644000372000001440000000117712502417162021440 0ustar robertousers mysql++-3.2.2+pristine.orig/doc/userman/Makefile.hello.posix0000644000372000001440000000031112502417162023310 0ustar robertousersCXXFLAGS := -I/usr/include/mysql -I/usr/local/include/mysql++ LDFLAGS := -L/usr/local/lib LDLIBS := -lmysqlpp -lmysqlclient EXECUTABLE := hello all: $(EXECUTABLE) clean: rm -f $(EXECUTABLE) *.o mysql++-3.2.2+pristine.orig/doc/userman/ssqls3.txt0000644000372000001440000000525212502417162021407 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Build a query to retrieve the stock item that has Unicode // characters encoded in UTF-8 form. mysqlpp::Query query = con.query("select * from stock "); query << "where item = " << mysqlpp::quote << "Nürnberger Brats"; // Retrieve the row, throwing an exception if it fails. mysqlpp::StoreQueryResult res = query.store(); if (res.empty()) { throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in " "table, run resetdb"); } // Because there should only be one row in the result set, // there's no point in storing the result in an STL container. // We can store the first row directly into a stock structure // because one of an SSQLS's constructors takes a Row object. stock row = res[0]; // Create a copy so that the replace query knows what the // original values are. stock orig_row = row; // Change the stock object's item to use only 7-bit ASCII, and // to deliberately be wider than normal column widths printed // by print_stock_table(). row.item = "Nuerenberger Bratwurst"; // Form the query to replace the row in the stock table. query.update(orig_row, row); // Show the query about to be executed. cout << "Query: " << query << endl; // Run the query with execute(), since UPDATE doesn't return a // result set. query.execute(); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/simple3.txt0000644000372000001440000000421712502417162021533 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Ask for all rows from the sample stock table and display // them. Unlike simple2 example, we retreive each row one at // a time instead of storing the entire result set in memory // and then iterating over it. mysqlpp::Query query = conn.query("select * from stock"); if (mysqlpp::UseQueryResult res = query.use()) { // Display header cout.setf(ios::left); cout << setw(31) << "Item" << setw(10) << "Num" << setw(10) << "Weight" << setw(10) << "Price" << "Date" << endl << endl; // Get each row in result set, and print its contents while (mysqlpp::Row row = res.fetch_row()) { cout << setw(30) << row["item"] << ' ' << setw(9) << row["num"] << ' ' << setw(9) << row["weight"] << ' ' << setw(9) << row["price"] << ' ' << setw(9) << row["sdate"] << endl; } // Check for error: can't distinguish "end of results" and // error cases in return from fetch_row() otherwise. if (conn.errnum()) { cerr << "Error received in fetching a row: " << conn.error() << endl; return 1; } return 0; } else { cerr << "Failed to get stock item: " << query.error() << endl; return 1; } } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.2+pristine.orig/doc/userman/xinclude.mod0000644000372000001440000000114112502417162021723 0ustar robertousers mysql++-3.2.2+pristine.orig/doc/userman/section-template.dbx0000644000372000001440000000040412502417162023364 0ustar robertousers SECTION TITLE FIRST PARAGRAPH mysql++-3.2.2+pristine.orig/doc/userman/README.txt0000644000372000001440000001413612502417162021115 0ustar robertousersThe user manual is written in XML DocBook format, version 4.2. It uses the official DocBook XSL stylesheets, and will build with versions as old as 1.61.2. (Why these versions? They're what comes with CentOS 3, the oldest system I still use.) To make the HTML version of the user manual, just type 'make' in this directory. (Or 'make html' if you want to be pedantic.) To make the PDF version of the manual, say 'make pdf'. To make both versions, say 'make all'. The most likely cause of build failures is not having the right processing programs installed. The DocBook processing model looks like this: DocBook --[XSLT proc.]-+-> HTML ^ | | +-> XSL-FO --[XSL-FO proc.]--> PDF | {XSL stylesheets} "DocBook" above is a file in DocBook XML format. In this case, it's in userman.dbx. There are many alternatives for the tools in the square brackets: The first replaceable piece is an XSLT processor, which translates XML into other text formats, such as HTML or other varieties of XML. We use xsltproc from the Gnome project. (http://xmlsoft.org/XSLT/) There are numerous alternatives, but each supports different extensions to the standard, so it's simplest if everyone uses the same processor for a given document. We use the XSLT processor to do two transforms. One is directly to HTML. The other is to XSL-FO, an XML-based page layout language. We do this intermediary transform because XSLT is not good at creating binary formats like PDF. The second replaceable piece in the diagram above is an XSL-FO processor, which converts XSL-FO to a more directly useful page layout format, like PDF. The user manual's build system supports several alternatives. The build system relies on a simple script in this directory -- fo2pdf -- to find an XSL-FO formatter and run it. It looks first for RenderX's XEP, which comes in a free-as-in-beer version for personal use. (http://renderx.com/download/personal.html) If you're in a commercial environment, RenderX wants you to use their commercial trial version which will format this manual without complaint, but it puts watermarks and blank pages into the output. They want $300 for the single-user to get clean output. It's the same as the free personal version, just with a different license. You don't need the higher-end versions of XEP; they don't do anything we need here. If fo2pdf can't find XEP, it then looks for Antenna House's XSL Formatter (http://antennahouse.com/). It's pretty much the same deal as XEP: crippled demo version for testing, and a single-user version for $300. There is no free version for personal use, however. Failing all that, fo2pdf falls back to the only free-as-in-speech XSL-FO formmatter, Apache FOP (http://xmlgraphics.apache.org/fop/). FOP isn't yet available through most Unixy package download systems, so you'll have to download it directly from the source. The Debian repositories do have it, so on any Debian based distro (e.g. Ubuntu) you can just say "sudo apt-get install fop". You might be wondering why fo2pdf looks for FOP last, given that MySQL++ is itself free software and relies on a lot of other free software. It's just that it's a good bet that if there's a commercial processor on the system, it was put there quite purposefully by someone who paid (or caused money to be paid) for it, and so wants it to be used. The commercial vendors can still get money for their products because FOP hasn't caught up with them in several important areas. That said, don't feel that you need to go and buy an XSL-FO processor just to build the manuals. We try to always keep the manual in a state where FOP can generate adequate output. The third replaceable piece above is the DocBook XSL stylesheet set. The stylesheets are the XSLT processor's rules, controlling how the input XML gets transformed to the output format. The standard DocBook stylesheet set (link below) includes stylesheets for HTML and XSL-FO output. By default, xsltproc looks for these first on your local system, and failing to find them, tries to download them on the fly from the Internet. Because this slows processing quite a bit even if you have a fast Internet connection, and it obviously doesn't work when your net connection is down, we've disabled this option. Therefore, you must have the DocBook XSL stylesheets installed to build the user manual. Most Unixy type systems have pre-built DocBook XSL stylesheet packages available: Red Hat/Fedora: docbook-style-xsl RPM package Mac OS X: docbook-xsl Fink package (http://fink.sf.net) Cygwin: docbook-xml?? package (?? = DocBook version) Ubuntu/Debian: docbook-xsl, from the standard APT repository (Please send the name of the package for your system to the mailing list if it isn't listed above, and I'll add it to the list.) If you can't find a package for your system, you can get the DocBook stylesheets from the source: http://docbook.sourceforge.net/ They're a bit tricky to set up correctly, so it's better to use a pre-built package if you can. If you are still having problems, post the details about it to the MySQL++ mailing list, and I'll try to help you debug the problem. You might also find the FOP and/or DocBook mailing lists helpful. If you're looking to hack on the manual, here are some helpful resources for getting up to speed on DocBook: Mills' "Installing And Using An XML/SGML DocBook Editing Suite" article: http://tinyurl.com/8alb2 This is the best tutorial I've found. Walsh and Muellner's _DocBook: The Definitive Guide_ book, second edition, online version: http://www.docbook.org/tdg/en/html/docbook.html This is the official DocBook referece. DocBook FAQ: http://www.dpawson.co.uk/docbook/ Go here when you have a question that the tutorials and references do not answer. The official DocBook site: http://docbook.org/ mysql++-3.2.2+pristine.orig/doc/userman/html.xsl0000644000372000001440000000632312502417162021112 0ustar robertousers http://dev.mysql.com/doc/mysql/en/ .html () ../refman/classmysqlpp_1_1 .html ../refman/structmysqlpp_1_1 .html mysql++-3.2.2+pristine.orig/doc/userman/tquery.dbx0000644000372000001440000002124312502417162021444 0ustar robertousers Template Queries Another powerful feature of MySQL++ is being able to set up template queries. These are kind of like C’s printf() facility: you give MySQL++ a string containing the fixed parts of the query and placeholders for the variable parts, and you can later substitute in values into those placeholders. The following program demonstrates how to use this feature. This is examples/tquery1.cpp: The line just before the call to query.parse() sets the template, and the parse call puts it into effect. From that point on, you can re-use this query by calling any of several Query member functions that accept query template parameters. In this example, we’re using Query::execute(). Let’s dig into this feature a little deeper. Setting up Template Queries To set up a template query, you simply insert it into the Query object, using numbered placeholders wherever you want to be able to change the query. Then, you call the parse() function to tell the Query object that the query string is a template query, and it needs to parse it: query << "select (%2:field1, %3:field2) from stock where %1:wheref = %0q:what"; query.parse(); The format of the placeholder is: %###(modifier)(:name)(:) Where “###” is a number up to three digits. It is the order of parameters given to a object, starting from 0. “modifier” can be any one of the following:
% Print an actual “%” "" Don’t quote or escape no matter what. q This will escape the item using the MySQL C API function and add single quotes around it as necessary, depending on the type of the value you use. Q Quote but don’t escape based on the same rules as for “q”. This can save a bit of processing time if you know the strings will never need quoting
“:name” is for an optional name which aids in filling SQLQueryParms. Name can contain any alpha-numeric characters or the underscore. You can have a trailing colon, which will be ignored. If you need to represent an actual colon after the name, follow the name with two colons. The first one will end the name and the second one won’t be processed.
Setting the Parameters at Execution Time To specify the parameters when you want to execute a query simply use Query::store(const SQLString &parm0, [..., const SQLString &parm11]). This type of multiple overload also exists for Query::storein(), Query::use() and Query::execute(). “parm0” corresponds to the first parameter, etc. You may specify up to 25 parameters. For example: StoreQueryResult res = query.store("Dinner Rolls", "item", "item", "price") with the template query provided above would produce: select (item, price) from stock where item = "Dinner Rolls" The reason we didn’t put the template parameters in numeric order... select (%0:field1, %1:field2) from stock where %2:wheref = %3q:what ...will become apparent shortly. Default Parameters The template query mechanism allows you to set default parameter values. You simply assign a value for the parameter to the appropriate position in the Query::template_defaults array. You can refer to the parameters either by position or by name: query.template_defaults[1] = "item"; query.template_defaults["wheref"] = "item"; Both do the same thing. This mechanism works much like C++’s default function parameter mechanism: if you set defaults for the parameters at the end of the list, you can call one of Query’s query execution methods without passing all of the values. If the query takes four parameters and you’ve set defaults for the last three, you can execute the query using as little as just one explicit parameter. Now you can see why we numbered the template query parameters the way we did a few sections earlier. We ordered them so that the ones less likely to change have higher numbers, so we don’t always have to pass them. We can just give them defaults and take those defaults when applicable. This is most useful when some parameters in a template query vary less often than other parameters. For example: query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res1 = query.store("Hamburger Buns", "item"); StoreQueryResult res2 = query.store(1.25, "price"); This stores the result of the following queries in res1 and res2, respectively: select (item, price) from stock where item = "Hamburger Buns" select (item, price) from stock where price = 1.25 Default parameters are useful in this example because we have two queries to issue, and parameters 2 and 3 remain the same for both, while parameters 0 and 1 vary. Some have been tempted into using this mechanism as a way to set all of the template parameters in a query: query.template_defaults["what"] = "Hamburger Buns"; query.template_defaults["wheref"] = "item"; query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res1 = query.store(); This can work, but it is not designed to. In fact, it’s known to fail horribly in one common case. You will not get sympathy if you complain on the mailing list about it not working. If your code doesn’t actively reuse at least one of the parameters in subsequent queries, you’re abusing MySQL++, and it is likely to take its revenge on you. Error Handling If for some reason you did not specify all the parameters when executing the query and the remaining parameters do not have their values set via Query::template_defaults, the query object will throw a object. If this happens, you can get an explanation of what happened by calling BadParamCount::what(), like so: query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res = query.store(1.25); This would throw BadParamCount because the wheref is not specified. In theory, this exception should never be thrown. If the exception is thrown it probably a logic error in your program.
mysql++-3.2.2+pristine.orig/doc/userman/fieldinf.txt0000644000372000001440000000604312502417162021736 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Get contents of main example table mysqlpp::Query query = con.query("select * from stock"); mysqlpp::StoreQueryResult res = query.store(); // Show info about each field in that table char widths[] = { 12, 22, 46 }; cout.setf(ios::left); cout << setw(widths[0]) << "Field" << setw(widths[1]) << "SQL Type" << setw(widths[2]) << "Equivalent C++ Type" << endl; for (size_t i = 0; i < sizeof(widths) / sizeof(widths[0]); ++i) { cout << string(widths[i] - 1, '=') << ' '; } cout << endl; for (size_t i = 0; i < res.field_names()->size(); i++) { // Suppress C++ type name outputs when run under dtest, // as they're system-specific. const char* cname = res.field_type(int(i)).name(); mysqlpp::FieldTypes::value_type ft = res.field_type(int(i)); ostringstream os; os << ft.sql_name() << " (" << ft.id() << ')'; cout << setw(widths[0]) << res.field_name(int(i)).c_str() << setw(widths[1]) << os.str() << setw(widths[2]) << cname << endl; } cout << endl; // Simple type check if (res.field_type(0) == typeid(string)) { cout << "SQL type of 'item' field most closely resembles " "the C++ string type." << endl; } // Tricky type check: the 'if' path shouldn't happen because the // description field has the NULL attribute. We need to dig a // little deeper if we want to ignore this in our type checks. if (res.field_type(5) == typeid(string)) { cout << "Should not happen! Type check failure." << endl; } else if (res.field_type(5) == typeid(mysqlpp::sql_blob_null)) { cout << "SQL type of 'description' field resembles " "a nullable variant of the C++ string type." << endl; } else { cout << "Weird: fifth field's type is now " << res.field_type(5).name() << endl; cout << "Did something recently change in resetdb?" << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/tquery1.txt0000644000372000001440000000413612502417162021571 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Build a template query to retrieve a stock item given by // item name. mysqlpp::Query query = con.query( "select * from stock where item = %0q"); query.parse(); // Retrieve an item added by resetdb; it won't be there if // tquery* or ssqls3 is run since resetdb. mysqlpp::StoreQueryResult res1 = query.store("Nürnberger Brats"); if (res1.empty()) { throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in " "table, run resetdb"); } // Replace the proper German name with a 7-bit ASCII // approximation using a different template query. query.reset(); // forget previous template query data query << "update stock set item = %0q where item = %1q"; query.parse(); mysqlpp::SimpleResult res2 = query.execute("Nuerenberger Bratwurst", res1[0][0].c_str()); // Print the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/for_each.txt0000644000372000001440000000370112502417162021722 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include #include // Define a functor to collect statistics about the stock table class gather_stock_stats { public: gather_stock_stats() : items_(0), weight_(0), cost_(0) { } void operator()(const stock& s) { items_ += s.num; weight_ += (s.num * s.weight); cost_ += (s.num * s.price.data); } private: mysqlpp::sql_bigint items_; mysqlpp::sql_double weight_, cost_; friend std::ostream& operator<<(std::ostream& os, const gather_stock_stats& ss); }; // Dump the contents of gather_stock_stats to a stream in human-readable // form. std::ostream& operator<<(std::ostream& os, const gather_stock_stats& ss) { os << ss.items_ << " items " << "weighing " << ss.weight_ << " stone and " << "costing " << ss.cost_ << " cowrie shells"; return os; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Gather and display the stats for the entire stock table mysqlpp::Query query = con.query(); std::cout << "There are " << query.for_each(stock(), gather_stock_stats()) << '.' << std::endl; } catch (const mysqlpp::BadQuery& e) { // Something went wrong with the SQL query. std::cerr << "Query failed: " << e.what() << std::endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cerr << "Error: " << er.what() << std::endl; return 1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/load_jpeg.txt0000644000372000001440000001071712502417162022105 0ustar robertousers#include "cmdline.h" #include "images.h" #include "printdata.h" #include using namespace std; using namespace mysqlpp; // This is just an implementation detail for the example. Skip down to // main() for the concept this example is trying to demonstrate. You // can simply assume that, given a BLOB containing a valid JPEG, it // returns true. static bool is_jpeg(const mysqlpp::sql_blob& img, const char** whynot) { // See http://stackoverflow.com/questions/2253404/ for // justification for the various tests. const unsigned char* idp = reinterpret_cast(img.data()); if (img.size() < 125) { *whynot = "a valid JPEG must be at least 125 bytes"; } else if ((idp[0] != 0xFF) || (idp[1] != 0xD8)) { *whynot = "file does not begin with JPEG sigil bytes"; } else if ((memcmp(idp + 6, "JFIF", 4) != 0) && (memcmp(idp + 6, "Exif", 4) != 0)) { *whynot = "file does not contain JPEG type word"; } else { *whynot = 0; return true; } return false; } // Skip to main() before studying this. This is a little too // low-level to bother with on your first pass thru the code. static bool load_jpeg_file(const mysqlpp::examples::CommandLine& cmdline, images& img, string& img_name) { if (cmdline.extra_args().size() == 0) { // Nothing for us to do here. Caller will insert NULL BLOB. return true; } // Got a file's name on the command line, so open it. img_name = cmdline.extra_args()[0]; ifstream img_file(img_name.c_str(), ios::binary); if (img_file) { // Slurp file contents into RAM with minimum copying. (Idiom // explained here: http://stackoverflow.com/questions/116038/) // // By loading the file into a C++ string (stringstream::str()) // and assigning that directly to a mysqlpp::sql_blob, we avoid // truncating the binary data at the first null character. img.data.data = static_cast( &(stringstream() << img_file.rdbuf()))->str(); // Check JPEG data for sanity. const char* error; if (is_jpeg(img.data.data, &error)) { return true; } else { cerr << '"' << img_name << "\" isn't a JPEG: " << error << '!' << endl; } } cmdline.print_usage("[jpeg_file]"); return false; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Load the file named on the command line images img(mysqlpp::null, mysqlpp::null); string img_name("NULL"); if (load_jpeg_file(cmdline, img, img_name)) { // Insert image data or SQL NULL into the images.data BLOB // column. The key here is that we're holding the raw // binary data in a mysqlpp::sql_blob, which avoids data // conversion problems that can lead to treating BLOB data // as C strings, thus causing null-truncation. The fact // that we're using SSQLS here is a side issue, simply // demonstrating that mysqlpp::Null is // now legal in SSQLS, as of MySQL++ 3.0.7. Query query = con.query(); query.insert(img); SimpleResult res = query.execute(); // Report successful insertion cout << "Inserted \"" << img_name << "\" into images table, " << img.data.data.size() << " bytes, ID " << res.insert_id() << endl; } } catch (const BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/ssqls4.txt0000644000372000001440000000452012502417162021405 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Retrieve all rows from the stock table and put them in an // STL set. Notice that this works just as well as storing them // in a vector, which we did in ssqls1.cpp. It works because // SSQLS objects are less-than comparable. mysqlpp::Query query = con.query("select * from stock"); set res; query.storein(res); // Display the result set. Since it is an STL set and we set up // the SSQLS to compare based on the item column, the rows will // be sorted by item. print_stock_header(res.size()); set::iterator it; cout.precision(3); for (it = res.begin(); it != res.end(); ++it) { print_stock_row(it->item.c_str(), it->num, it->weight, it->price, it->sDate); } // Use set's find method to look up a stock item by item name. // This also uses the SSQLS comparison setup. it = res.find(stock("Hotdog Buns")); if (it != res.end()) { cout << endl << "Currently " << it->num << " hotdog buns in stock." << endl; } else { cout << endl << "Sorry, no hotdog buns in stock." << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/fo2pdf0000755000372000001440000000173712502417162020530 0ustar robertousers#!/bin/sh AHCMD=/usr/XSLFormatterV42/run.sh FOPCMD=`which /usr/local/fop/fop /usr/bin/fop | head -1 2> /dev/null` XEPCMD=/usr/local/xep/xep FOFILE=$1 PDFFILE=$2 if [ -n "$FOFILE" -a -r "$FOFILE" -a -n "$PDFFILE" ] then if [ -x "$XEPCMD" ] then echo Rendering $FOFILE to $PDFFILE with RenderX XEP... $XEPCMD -quiet -fo $FOFILE -pdf $PDFFILE elif [ -x "$AHCMD" ] then echo Rendering $FOFILE to $PDFFILE with Antenna House XSL Formatter... $AHCMD -silent -d $FOFILE -o $PDFFILE elif [ -x "$FOPCMD" ] then echo "Rendering $FOFILE to $PDFFILE with Apache FOP ($FOPCMD)..." $FOPCMD -q -fo $FOFILE $PDFFILE else echo 'Cannot find a working XSL-FO processor on your system! See' echo 'doc/usrman/README.txt for instructions on installing one.' echo exit 1 fi else if [ -n "$FOFILE" ] then echo "XSL-FO file $FOFILE does not exist." echo fi echo "usage: $0 fofile pdffile" echo echo ' Translates XSL-FO in fofile to PDF output in pdffile.' echo exit 1 fi mysql++-3.2.2+pristine.orig/doc/userman/resetdb.txt0000644000372000001440000001552012502417162021606 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; // Pull in the sample database name from the cmdline module. extern const char* kpcSampleDatabase; // Convert a packed version number in the format used within MySQL++ // to a printable string. static string version_str(int packed) { char buf[9]; snprintf(buf, sizeof(buf), "%d.%d.%d", (packed & 0xFF0000) >> 16, (packed & 0x00FF00) >> 8, (packed & 0x0000FF)); return buf; } int main(int argc, char *argv[]) { // Ensure that we're not mixing library and header file versions. // This is really easy to do if you have MySQL++ on your system and // are trying to build a new version, and run the examples directly // instead of through exrun. if (mysqlpp::get_library_version() != MYSQLPP_HEADER_VERSION) { cerr << "Version mismatch: library is v" << version_str(mysqlpp::get_library_version()) << ", headers are v" << version_str(MYSQLPP_HEADER_VERSION) << ". Are you running this" << endl << "with exrun? See README.examples." << endl; return 1; } // Get connection parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to database server mysqlpp::Connection con; try { if (cmdline.dtest_mode()) { cout << "Connecting to database server..." << endl; } else { const char* u = cmdline.user() ? cmdline.user() : ""; const char* s = cmdline.server() ? cmdline.server() : "localhost"; cout << "Connecting to '" << u << "'@'" << s << "', with" << (cmdline.pass() && cmdline.pass()[0] ? "" : "out") << " password..." << endl; } con.connect(0, cmdline.server(), cmdline.user(), cmdline.pass()); } catch (exception& er) { cerr << "Connection failed: " << er.what() << endl; return 1; } // Create new sample database, or re-create it. We suppress // exceptions, because it's not an error if DB doesn't yet exist. bool new_db = false; { mysqlpp::NoExceptions ne(con); mysqlpp::Query query = con.query(); if (con.select_db(mysqlpp::examples::db_name)) { // Toss old tables, ignoring errors because it would just // mean the table doesn't exist, which doesn't matter. cout << "Dropping existing sample data tables..." << endl; query.exec("drop table stock"); query.exec("drop table images"); query.exec("drop table deadlock_test1"); query.exec("drop table deadlock_test2"); } else { // Database doesn't exist yet, so create and select it. if (con.create_db(mysqlpp::examples::db_name) && con.select_db(mysqlpp::examples::db_name)) { new_db = true; } else { cerr << "Error creating DB: " << con.error() << endl; return 1; } } } // Create sample data table within sample database. try { // Send the query to create the stock table and execute it. cout << "Creating stock table..." << endl; mysqlpp::Query query = con.query(); query << "CREATE TABLE stock (" << " item CHAR(30) NOT NULL, " << " num BIGINT NOT NULL, " << " weight DOUBLE NOT NULL, " << " price DECIMAL(6,2) NULL, " << // NaN & inf. == NULL " sdate DATE NOT NULL, " << " description MEDIUMTEXT NULL) " << "ENGINE = InnoDB " << "CHARACTER SET utf8 COLLATE utf8_general_ci"; query.execute(); // Set up the template query to insert the data. The parse() // call tells the query object that this is a template and // not a literal query string. query << "insert into %6:table values " << "(%0q, %1q, %2, %3, %4q, %5q:desc)"; query.parse(); // Set a default for template query parameters "table" and "desc". query.template_defaults["table"] = "stock"; query.template_defaults["desc"] = mysqlpp::null; // Notice that we don't give a sixth parameter in these calls, // so the default value of "stock" is used. Also notice that // the first row is a UTF-8 encoded Unicode string! All you // have to do to store Unicode data in recent versions of MySQL // is use UTF-8 encoding. cout << "Populating stock table..." << flush; query.execute("Nürnberger Brats", 97, 1.5, 8.79, "2005-03-10"); query.execute("Pickle Relish", 87, 1.5, 1.75, "1998-09-04"); query.execute("Hot Mustard", 73, .95, .97, "1998-05-25", "good American yellow mustard, not that European stuff"); query.execute("Hotdog Buns", 65, 1.1, 1.1, "1998-04-23"); // Test that above did what we wanted. cout << "inserted " << con.count_rows("stock") << " rows." << endl; // Now create empty images table, for testing BLOB and auto- // increment column features. cout << "Creating empty images table..." << endl; query.reset(); // forget template query info query << "CREATE TABLE images (" << " id INT UNSIGNED AUTO_INCREMENT, " << " data BLOB, " << " PRIMARY KEY (id)" << ")"; query.execute(); // Create the tables used by examples/deadlock.cpp cout << "Creating deadlock testing tables..." << endl; query.execute("CREATE TABLE deadlock_test1 (x INT) ENGINE=innodb"); query.execute("CREATE TABLE deadlock_test2 (x INT) ENGINE=innodb"); query.execute("INSERT INTO deadlock_test1 VALUES (1);"); query.execute("INSERT INTO deadlock_test2 VALUES (2);"); // Report success cout << (new_db ? "Created" : "Reinitialized") << " sample database successfully." << endl; } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << endl << "Query error: " << er.what() << endl; return 1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << endl << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << endl << "Error: " << er.what() << endl; return 1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/LICENSE.txt0000644000372000001440000000406212502417162021237 0ustar robertousersMySQL++ User Manual License ~~~~~~~~~~~~~~~~~~~~~~~~~~~ I. COPYRIGHT The copyright to the MySQL++ User Manual is owned by its authors. II. LICENSE The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents. A. REQUIREMENTS OF MODIFIED WORKS All modified documents, including translations, anthologies, and partial documents, must meet the following requirements: 1. The modified version must be labeled as such. 2. The person making the modifications must be identified. 3. Acknowledgement of the original author must be retained. 4. The location of the original unmodified document be identified. 5. The original authors' names may not be used to assert or imply endorsement of the resulting document without the original authors' permission. In addition it is requested that: 1. The modifications (including deletions) be noted. 2. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document. Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works. All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format. mysql++-3.2.2+pristine.orig/doc/userman/ssqls.dbx0000644000372000001440000013607112502417162021266 0ustar robertousers Specialized SQL Structures The Specialized SQL Structure (SSQLS) feature lets you easily define C++ structures that match the form of your SQL tables. At the most superficial level, an SSQLS has a member variable corresponding to each field in the SQL table. But, an SSQLS also has several methods, operators, and data members used by MySQL++’s internals to provide neat functionality, which we cover in this chapter. You define SSQLSes using the macros defined in ssqls.h. This is the only MySQL++ header not automatically included for you by mysql++.h. You have to include it in code modules that use the SSQLS feature. sql_create Let’s say you have the following SQL table: CREATE TABLE stock ( item CHAR(30) NOT NULL, num BIGINT NOT NULL, weight DOUBLE NOT NULL, price DECIMAL(6,2) NOT NULL, sdate DATE NOT NULL, description MEDIUMTEXT NULL) You can create a C++ structure corresponding to this table like so: sql_create_6(stock, 1, 6, mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_decimal, price, mysqlpp::sql_date, sdate, mysqlpp::Null<mysqlpp::sql_mediumtext>, description) This declares the stock structure, which has a data member for each SQL column, using the same names. The structure also has a number of member functions, operators and hidden data members, but we won’t go into that just now. The parameter before each field name in the sql_create_# call is the C++ data type that will be used to hold that value in the SSQLS. While you could use plain old C++ data types for most of these columns (long int instead of mysqlpp::sql_bigint, for example) it’s best to use the MySQL++ typedefs. Sometimes you have no choice but to use special MySQL++ data types to fully express the database schema. Consider the description field. MySQL++’s sql_mediumtext type is just an alias for std::string, since we don’t need anything fancier to hold a SQL MEDIUMTEXT value. It’s the SQL NULL attribute that causes trouble: it has no equivalent in the C++ type system. MySQL++ offers the template, which bridges this difference between the two type systems. The general format of this macro is: sql_create_#(NAME, COMPCOUNT, SETCOUNT, TYPE1, ITEM1, ... TYPE#, ITEM#) where # is the number of member variables, NAME is the name of the structure you wish to create, TYPEx is the type of a member variable, and ITEMx is that variable’s name. The COMPCOUNT and SETCOUNT arguments are described in the next section. SSQLS Comparison and Initialization The sql_create_# macro adds member functions and operators to each SSQLS that allow you to compare one SSQLS instance to another. These functions compare the first COMPCOUNT fields in the structure. In the example above, COMPCOUNT is 1, so only the item field will be checked when comparing two stock structures. This feature works best when your table’s “key” fields are the first ones in the SSQLS and you set COMPCOUNT equal to the number of key fields. That way, a check for equality between two SSQLS structures in your C++ code will give the same results as a check for equality in SQL. COMPCOUNT must be at least 1. The current implementation of sql_create_# cannot create an SSQLS without comparison member functions. Because our stock structure is less-than-comparable, you can use it in STL algorithms and containers that require this, such as STL’s associative containers: std::set<stock> result; query.storein(result); cout << result.lower_bound(stock("Hamburger"))->item << endl; This will print the first item in the result set that begins with “Hamburger.” The third parameter to sql_create_# is SETCOUNT. If this is nonzero, it adds an initialization constructor and a set() member function taking the given number of arguments, for setting the first N fields of the structure. For example, you could change the above example like so: sql_create_6(stock, 1, 2, mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_decimal, price, mysqlpp::sql_date, sdate, mysqlpp::Null<mysqlpp::sql_mediumtext>, description) stock foo("Hotdog", 52); In addition to this 2-parameter constructor, this version of the stock SSQLS will have a similar 2-parameter set() member function. The COMPCOUNT and SETCOUNT values cannot be equal. If they are, the macro will generate two initialization constructors with identical parameter lists, which is illegal in C++. You might be asking, why does there need to be a constructor for comparison to begin with? It’s often convenient to be able to say something like x == stock("Hotdog"). This requires that there be a constructor taking COMPCOUNT arguments to create the temporary stock instance used in the comparison. This limitation is not a problem in practice. If you want the same number of parameters in the initialization constructor as the number of fields used in comparisons, pass 0 for SETCOUNT. This suppresses the duplicate constructor you’d get if you used the COMPCOUNT value instead. This is most useful in very small SSQLSes, since it’s easier for the number of key fields to equal the number of fields you want to compare on: sql_create_1(stock_item, 1, 0, mysqlpp::sql_char, item) Retrieving data Let’s put SSQLS to use. This is examples/ssqls1.cpp: Here is the stock.h header used by that example, and by several others below: This example produces the same output as simple1.cpp (see ), but it uses higher-level data structures paralleling the database schema instead of MySQL++’s lower-level generic data structures. It also uses MySQL++’s for error handling instead of doing everything inline. For small example programs like these, the overhead of SSQLS and exceptions doesn’t pay off very well, but in a real program, they end up working much better than hand-rolled code. Notice that we are only pulling a single column from the stock table, but we are storing the rows in a std::vector<stock>. It may strike you as inefficient to have five unused fields per record. It’s easily remedied by defining a subset SSQLS: sql_create_1(stock_subset, 1, 0, string, item) vector<stock_subset> res; query.storein(res); // ...etc... MySQL++ is flexible about populating SSQLSes.Programs built against versions of MySQL++ prior to 3.0 would crash at almost any mismatch between the database schema and the SSQLS definition. It’s no longer necessary to keep the data design in lock-step between the client and database server. A mismatch can result in data loss, but not a crash. It works much like the Web, a design that’s enabled the development of the largest distributed system in the world. Just as a browser ignores tags and attributes it doesn’t understand, you can populate an SSQLS from a query result set containing columns that don’t exist in the SSQLS. And as a browser uses sensible defaults when the page doesn’t give explicit values, you can have an SSQLS with more fields defined than are in the query result set, and these SSQLS fields will get default values. (Zero for numeric types, false for bool, and a type-specific default for anything more complex, like mysqlpp::DateTime.) In more concrete terms, the example above is able to populate the stock objects using as much information as it has, and leave the remaining fields at their defaults. Conversely, you could also stuff the results of SELECT * FROM stock into the stock_subset SSQLS declared above; the extra fields would just be ignored. We’re trading run-time efficiency for flexibility here, usually the right thing in a distributed system. Since MySQL is a networked database server, many uses of it will qualify as distributed systems. You can’t count on being able to update both the server(s) and all the clients at the same time, so you have to make them flexible enough to cope with differences while the changes propagate. As long as the new database schema isn’t too grossly different from the old, your programs should continue to run until you get around to updating them to use the new schema. There’s a danger that this quiet coping behavior may mask problems, but considering that the previous behavior was for the program to crash when the database schema got out of synch with the SSQLS definition, it’s likely to be taken as an improvement. Adding data MySQL++ offers several ways to insert data in SSQLS form into a database table. Inserting a Single Row The simplest option is to insert a single row at a time. This is examples/ssqls2.cpp: That’s all there is to it! MySQL++ even takes care of quoting and escaping the data when building queries from SSQLS structures. It’s efficient, too: MySQL++ is smart enough to quote and escape data only for those data types that actually require it. Inserting Many Rows Inserting a single row is useful, to be sure, but you might want to be able to insert many SSQLSes or Row objects at once. MySQL++ knows how to do that, too, sparing you the necessity of writing the loop. Plus, MySQL++ uses an optimized implementation of this algorithm, packing everything into a single SQL query, eliminating the overhead of multiple calls between the client and server. It’s just a different overload of insert(), which accepts a pair of iterators into an STL container, inserting every row in that range: vector<stock> lots_of_stuff; ...populate the vector somehow... query.insert(lots_of_stuff.begin(), lots_of_stuff.end()).execute(); By the way, notice that you can chain Query operations like in the last line above, because its methods return *this where that makes sense. Working Around MySQL’s Packet Size Limit The two-iterator form of insert() has an associated risk: MySQL has a limit on the size of the SQL query it will process. The default limit is 1 MB. You can raise the limit, but the reason the limit is configurable is not to allow huge numbers of inserts in a single query. They made the limit configurable because a single row might be bigger than 1 MB, so the default would prevent you from inserting anything at all. If you raise the limit simply to be able to insert more rows at once, you’re courting disaster with no compensating benefit: the more data you send at a time, the greater the chance and cost of something going wrong. Worse, this is pure risk, because by the time you hit 1 MB, the per-packet overhead is such a small fraction of the data being transferred that increasing the packet size buys you essentially nothing. Let’s say you have a vector containing several megabytes of data; it will get even bigger when expressed in SQL form, so there’s no way you can insert it all in a single query without raising the MySQL packet limit. One way to cope would be to write your own naïve loop, inserting just one row at a time. This is slow, because you’re paying the per-query cost for every row in the container. Then you might realize that you could use the two iterator form of insert(), passing iterators expressing sub-ranges of the container instead of trying to insert the whole container in one go. Now you’ve just got to figure out how to calculate those sub-ranges to get efficient operation without exceeding the packet size limit. MySQL++ already knows how to do that, too, with Query::insertfrom(). We gave it a different name instead of adding yet another insert() overload because it doesn’t merely build the INSERT query, which you then execute(). It’s more like storein(), in that it wraps the entire operation up in a single call. This feature is demonstrated in examples/ssqls6.cpp: Most of the complexity in this example goes to just reading in the data from a file; we have to get our test data from somewhere. There are only two key lines of code: create an insertion policy object, and pass it along with an STL container full of row data to Query::insertfrom(). This policy object is the main thing that differentiates insertfrom() from the two-iterator form of insert(). It controls how insertfrom() builds the query strings, primarily controlling how large each query gets before insertfrom() executes it and starts building a new query. We designed it to use policy objects because there is no single “right” choice for the decisions it makes. MySQL++ ships with three different insertion policy classes, which should cover most situations. MaxPacketInsertPolicy, demonstrated in the example above, does things the most obvious way: when you create it, you pass the maximum packet size, which it uses to prevent queries from going over the size limit. It builds up a query string row by row, checking each time through the loop whether adding another insert statement to the query string would make the packet size go over the limit. When that happens, or it gets to the end of the iteration range, it executes the query and starts over if it’s not yet at the end. This is robust, but it has a downside: it has to build each insert query in advance of knowing that it can append it to the larger query. Any time an insert query would push the packet over the limit, it has to throw it away, causing the library to do more work than is strictly necessary. Imagine you’ve done some benchmarking and have found that the point of diminishing returns is at about 20 KB per query in your environment; beyond that point, the per-query overhead ceases to be an issue. Let’s also say you know for a fact that your largest row will always be less than 1 MB — less 20 KB — when expressed as a SQL insert statement. In that case, you can use the more efficient SizeThresholdInsertPolicy. It differs from MaxPacketInsertPolicy in that it allows insertfrom() to insert rows blindly into the query string until the built query exceeds the threshold, 20 KB in this example. Then it ships the packet off, and if successful, starts a new query. Thus, each query (except possibly the last) will be at least 20 KB, exceeding that only by as much as one row’s worth of data, minus one byte. This is quite appropriate behavior when your rows are relatively small, as is typical for tables not containing BLOB data. It is more efficient than MaxPacketInsertPolicy because it never has to throw away any SQL fragments. The simplest policy object type is RowCountInsertPolicy. This lets you simply say how many rows at a time to insert into the database. This works well when you have a good handle on how big each row will be, so you can calculate in advance how many rows you can insert at once without exceeding some given limit. Say you know your rows can’t be any bigger than about 1 KB. If we stick with that 20 KB target, passing RowCountInsertPolicy<>(20) for the policy object would ensure we never exceed the size threshold. Or, say that maximum size value above is still true, but we also know the average row size is only 200 bytes. You could pass RowCountInsertPolicy<>(100) for the policy, knowing that the average packet size will be around 20 KB, and the worst case packet size 100 KB, still nowhere near the default 1 MB packet size limit. The code for this policy is very simple, so it makes your program a little smaller than if you used either of the above policies. Obviously it’s a bad choice if you aren’t able to predict the size of your rows accurately. If one of the provided insert policy classes doesn’t suit your needs, you can easily create a custom one. Just study the implementation in lib/insertpolicy.*. Interaction with Transactions These policy classes are all templates, taking a parameter that defaults to . This means that, by default, insertfrom() wraps the entire operation in a SQL transaction, so that if any of the insertions fail, the database server rolls them all back. This prevents an error in the middle of the operation from leaving just part of the container’s data inserted in the database, which you usually don’t want any more than you’d want half a single row to be inserted. There are good reasons why you might not want this. Perhaps the best reason is if the insertfrom() call is to be part of a larger transaction. MySQL doesn’t support nested transactions, so the insertfrom() call will fail if it tries to start one of its own. You can pass NoTransactions for the insert policy’s template parameter to make it suppress the transaction code. Modifying data It almost as easy to modify data with SSQLS as to add it. This is examples/ssqls3.cpp: Don’t forget to run resetdb after running the example. Storing SSQLSes in Associative Containers One of the requirements of STL’s associative containers on data stored in them is that the data type has to be less-than comparable. That is, it has to have an operator < defined. SSQLS does optionally give you this, as demonstrated in examples/ssqls4.cpp: The find() call works because of the way the SSQLS was declared. It’s properly covered elsewhere, but suffice it to say, the “1” in the declaration of stock above tells it that only the first field needs to be checked in comparing two SSQLSes. In database terms, this makes it the primary key. Therefore, when searching for a match, our exemplar only had to have its first field populated. Changing the Table Name Another feature you might find a use for is changing the table name MySQL++ uses to build queries involving SSQLSes. By default, the database server table is assumed to have the same name as the SSQLS structure type. But if this is inconvenient, you can globally change the table name used in queries like this: stock::table("MyStockData"); It’s also possible to change the name of a table on a per-instance basis: stock s; s.instance_table("AlternateTable"); This is useful when you have an SSQLS definition that is compatible with multiple tables, so the table name to use for each instance is different. This feature saves you from having to define a separate SSQLS for each table. It is also useful for mapping a class hierarchy onto a set of table definitions. The common SSQLS definition is the “superclass” for a given set of tables. Strictly speaking, you only need to use this feature in multithreaded programs. Changing the static table name before using each instance is safe if all changes happen within a single thread. That said, it may still be convenient to change the name of the table for an SSQLS instance in a single-threaded program if it gets used for many operations over an extended span of code. Using an SSQLS in Multiple Modules It’s convenient to define an SSQLS in a header file so you can use it in multiple modules. You run into a bit of a problem, though, because each SSQLS includes a few static data members to hold information common to all structures of that type. (The table name and the list of field names.) When you #include that header in more than one module, you get a multiply-defined symbol error at link time. The way around this is to define the preprocessor macro MYSQLPP_SSQLS_NO_STATICS in all but one of the modules that use the header definining the SSQLS. When this macro is defined, it suppresses the static data members in any SSQLS defined thereafter. Imagine we have a file my_ssqls.h which includes a sql_create_N macro call to define an SSQLS, and that that SSQLS is used in at least two modules. One we’ll call foo.cpp, and we’ll say it’s just a user of the SSQLS; it doesn’t “own” it. Another of the modules, my_ssqls.cpp uses the SSQLS more heavily, so we’ve called it the owner of the SSQLS. If there aren’t very many modules, this works nicely: // File foo.cpp, which just uses the SSQLS, but doesn’t "own" it: #define MYSQLPP_SSQLS_NO_STATICS #include "my_ssqls.h" // File my_ssqls.cpp, which owns the SSQLS, so we just #include it directly #include "my_ssqls.h" If there are many modules that need the SSQLS, adding all those #defines can be a pain. In that case, it’s easier if you flip the above pattern on its head: // File my_ssqls.h: #if !defined(EXPAND_MY_SSQLS_STATICS) # define MYSQLPP_SSQLS_NO_STATICS #endif sql_create_X(Y, Z....) // the SSQLS definition // File foo.cpp, a mere user of the SSQLS: #include "my_ssqls.h" // File my_ssqls.cpp, which owns the SSQLS: #define EXPAND_MY_SSQLS_STATICS #include "my_ssqls.h" Harnessing SSQLS Internals The sql_create macros define several methods for each SSQLS. These methods are mostly for use within the library, but some of them are useful enough that you might want to harness them for your own ends. Here is some pseudocode showing how the most useful of these methods would be defined for the stock structure used in all the ssqls*.cpp examples: // Basic form template <class Manip> stock_value_list<Manip> value_list(cchar *d = ",", Manip m = mysqlpp::quote) const; template <class Manip> stock_field_list<Manip> field_list(cchar *d = ",", Manip m = mysqlpp::do_nothing) const; template <class Manip> stock_equal_list<Manip> equal_list(cchar *d = ",", cchar *e = " = ", Manip m = mysqlpp::quote) const; // Boolean argument form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] bool i1, bool i2 = false, ... , bool i5 = false) const; // List form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] stock_enum i1, stock_enum i2 = stock_NULL, ..., stock_enum i5 = stock_NULL) const; // Vector form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] vector<bool> *i) const; ...Plus the obvious equivalents for field_list() and equal_list() Rather than try to learn what all of these methods do at once, let’s ease into the subject. Consider this code: stock s("Dinner Rolls", 75, 0.95, 0.97, sql_date("1998-05-25")); cout << "Value list: " << s.value_list() << endl; cout << "Field list: " << s.field_list() << endl; cout << "Equal list: " << s.equal_list() << endl; That would produce something like: Value list: 'Dinner Rolls’,75,0.95,0.97,'1998-05-25' Field list: item,num,weight,price,sdate Equal list: item = 'Dinner Rolls’,num = 75,weight = 0.95, price = 0.97,sdate = '1998-05-25' That is, a “value list” is a list of data member values within a particular SSQLS instance, a “field list” is a list of the fields (columns) within that SSQLS, and an “equal list” is a list in the form of an SQL equals clause. Just knowing that much, it shouldn’t surprise you to learn that Query::insert() is implemented more or less like this: *this << "INSERT INTO " << v.table() << " (" << v.field_list() << ") VALUES (" << v.value_list() << ")"; where ‘v’ is the SSQLS you’re asking the Query object to insert into the database. Now let’s look at a complete example, which uses one of the more complicated forms of equal_list(). This example builds a query with fewer hard-coded strings than the most obvious technique requires, which makes it more robust in the face of change. Here is examples/ssqls5.cpp: This example uses the list form of equal_list(). The arguments stock_weight and stock_price are enum values equal to the position of these columns within the stock table. sql_create_# generates this enum for you automatically. The boolean argument form of that equal_list() call would look like this: query << "select * from stock where " << res[0].equal_list(" and ", false, false, true, true, false); It’s a little more verbose, as you can see. And if you want to get really complicated, use the vector form: vector<bool> v(5, false); v[stock_weight] = true; v[stock_price] = true; query << "select * from stock where " << res[0].equal_list(" and ", v); This form makes the most sense if you are building many other queries, and so can re-use that vector object. Many of these methods accept manipulators and custom delimiters. The defaults are suitable for building SQL queries, but if you’re using these methods in a different context, you may need to override these defaults. For instance, you could use these methods to dump data to a text file using different delimiters and quoting rules than SQL. At this point, we’ve seen all the major aspects of the SSQLS feature. The final sections of this chapter look at some of the peripheral aspects. Having Different Field Names in C++ and SQL There’s a more advanced SSQLS creation macro, which all the others are built on top of. Currently, the only feature it adds over what’s described above is that it lets you name your SSQLS fields differently from the names used by the database server. Perhaps you want to use Hungarian notation in your C++ program without changing the SQL database schema: sql_create_complete_5(stock, 1, 5, mysqlpp::sql_char, m_sItem, "item", mysqlpp::sql_bigint, m_nNum, "num", mysqlpp::sql_double, m_fWeight, "weight", mysqlpp::sql_decimal, m_fPrice, "price", mysqlpp::sql_date, m_Date, "sdate") Note that you don’t have to use this mechanism if the only difference in your SQL and C++ field names is case. SSQLS field name lookups are case-insensitive as of MySQL++ 3.1. You can see this in the examples: some parts of the code deliberately refer to the stock.sdate sample table field as stock.sDate to exercise this feature. Expanding SSQLS Macros If you ever need to see the code that a given SSQLS declaration expands out to, use the utility doc/ssqls-pretty, like so: doc/ssqls-pretty < myprog.cpp | less This Perl script locates the first SSQLS declaration in that file, then uses the C++ preprocessor to expand that macro. (The script assumes that your system’s preprocessor is called cpp, and that its command line interface follows Unix conventions.) If you run it from the top MySQL++ directory, as shown above, it will use the header files in the distribution’s lib subdirectory. Otherwise, it assumes the MySQL++ headers are in their default location, /usr/include/mysql++. If you want to use headers in some other location, you’ll need to change the directory name in the -I flag at the top of the script. Customizing the SSQLS Mechanism The SSQLS header ssqls.h is automatically generated by the Perl script ssqls.pl. Although it is possible to change this script to get additional functionality, most of the time it’s better to just derive a custom class from the generated SSQLS to add functionality to it. (See the next section to see how to do this correctly.) That said, ssqls.pl does have a few configurables you might want to tweak. The first configurable value sets the maximum number of data members allowed in an SSQLS. This is discussed elsewhere, in . Beware the warnings there about increasing this value too much. The second configurable is the default floating point precision used for comparison. As described above () SSQLSes can be compared for equality. The only place this is tricky is with floating-point numbers, since rounding errors can make two “equal” values compare as distinct. This property of floating-point numbers means we almost never want to do exact comparison. MySQL++ lets you specify the precision you want it to use. If the difference between two values is under a given threshold, MySQL++ considers the values equal. The default threshold is 0.00001. This threshold works well for “human” scale values, but because of the way floating-point numbers work, it can be wildly inappropriate for very large or very small quantities like those used in scientific applications. There are actually two ways to change this threshold. If you need a different system-wide default, edit ssqls.pl and change the $fp_min_delta variable at the top of the file, then rebuild ssqls.h as described below. If you need different thresholds per file or per project, it’s better to set the C macro MYSQLPP_FP_MIN_DELTA instead. The Perl variable sets this macro’s default; if you give a different value before #including ssqls.h, it will use that instead. To rebuild ssqls.h after changing ssqls.pl, you’ll need a Perl interpreter. The only modern Unixy system I’m aware of where Perl isn’t installed by default is Cygwin, and it’s just a setup.exe choice away there. You’ll probably only have to download and install a Perl interpreter if you’re on Windows and don’t want to use Cygwin. If you’re on a system that uses autoconf, building MySQL++ automatically updates ssqls.h any time ssqls.pl changes. Otherwise, you’ll need to run the Perl interpreter by hand: c:\mysql++> cd lib c:\lib> perl ssqls.pl Deriving from an SSQLS Specialized SQL Structures make good base classes. They’re simple, and have few requirements on any class that derives from them. There are some gotchas to look out for, however. Consider this: sql_create_2( Base, 1, 2, mysqlpp::sql_varchar, a, mysqlpp::sql_int, b ); class Derived : public Base { public: // constructor Derived(mysqlpp::sql_varchar _a, mysqlpp::sql_int _b) : Base(_a, _b) { } // functionality added to the SSQLS through inheritance bool do_something_interesting(int data); }; We’ve derived a class from an SSQLS in order to add a method to it. Easy, right? Sadly, too easy. The code has a rather large flaw which makes our derived class unusable as an SSQLS. In C++, if a derived class has a function of the same name as one in the base class, the base class versions of that function are all hidden by those in the derived class. This applies to constructors, too: an SSQLS defines several constructors, but our derived class defines only one, causing that one to hide all of the ones in the base class. Many of the MySQL++ mechanisms that use SSQLSes rely on having these contructors, so our Derived above is-not-a Base, and so it isn’t an SSQLS. If you try to use Derived as an SSQLS, you’ll get compiler errors wherever MySQL++ tries to access one of these other constructors. There’s another minor flaw, as well. Our lone constructor above takes its parameters by value, but the corresponding constructor in the SSQLS takes them by const reference. Our derived class has technically hidden a fourth base class constructor this way, but this particular case is more a matter of efficiency than correctness. Code that needs the full-creation constructor will still work with our code above, but passing stringish types like sql_varchar by value instead of by const reference is inefficient. This is the corrected version of the above code: sql_create_2( Base, 1, 2, mysqlpp::sql_varchar, a, mysqlpp::sql_int, b ); class Derived : public Base { public: // default constructorneeded by mechanisms like Query::storein(); anything using an STL container, which usually require default ctors for contained data structures Derived() : Base() { } // for-comparison constructortakes the COMPCOUNT subset of the SSQLS’s data members, used for making comparison exemplars, used with Query::update() and similar mechanisms; see for more on COMPCOUNT Derived(const mysqlpp::sql_varchar& _a) : Base(_a) { } // full creation constructor Derived(const mysqlpp::sql_varchar& _a, const mysqlpp::sql_int& _b) : Base(_a, _b) { } // population constructorused in taking raw row data from a SQL result set and converting it to SSQLS form Derived(const mysqlpp::Row& row) : Base(row) { } // functionality added to the SSQLS through inheritance bool do_something_interesting(int data); }; Now Derived is-an SSQLS. You might wonder if you can use protected inheritance above to redefine the SSQLS’s public interface. For instance, OO purists might object to the public data members in an SSQLS. You could encapsulate these public data members in the derived class by using protected inheritance, exposing access to the base class’s data members with public accessor methods. The problem with this is that each SSQLS has dozens of public member functions. These are needed by MySQL++ internals, so unless you re-exposed all of them as we did with the constructors above, you’d again have an SSQLS derivative that is-not-an SSQLS. Simply put, only public inheritance is practical with SSQLSes. SSQLS and BLOB Columns It takes special care to use SSQLS with BLOB columns. It’s safest to declare the SSQLS field as of type mysqlpp::sql_blob. This is currently a typedef alias for String, which is the form the data is in just before the SSQLS mechanism populates the structure. Thus, when the data is copied from the internal MySQL++ data structures into your SSQLS, you get a direct copy of the String object’s contents, without interference. Because C++ strings handle binary data just fine, you might think you can use std::string instead of sql_blob, but the current design of String converts to std::string via a C string. As a result, the BLOB data is truncated at the first embedded null character during population of the SSQLS. There’s no way to fix that without completely redesigning either String or the SSQLS mechanism. The sql_blob typedef may be changed to alias a different type in the future, so using it instead of String ensures that your code tracks these library changes automatically. Besides, String is only intended to be an internal mechanism within MySQL++. The only reason the layering is so thin here is because it’s the only way to prevent BLOB data from being corrupted while avoiding that looming redesign effort. You can see this technique in action in the cgi_jpeg example: SSQLS and Visual C++ 2003 SSQLS works on all platforms supported by MySQL++ except for Visual C++ 2003. (Because the rest of MySQL++ works just fine with Visual C++ 2003, we haven’t removed this platform from the supported list entirely.) If you do need SSQLS and are currently on Visual C++ 2003, you have these options: The simplest option is to upgrade to a newer version of Visual C++. The compiler limitations that break SSQLS are all fixed in Visual C++ 2005 and newer. Visual C++ Express is free and is apparently here to stay; coupled with the free wxWidgets library, it lacks little compared to Visual C++ Professional. A bonus of using wxWidgets is that it’s cross-platform and better-supported than MFC. If you can’t upgrade your compiler, you may be able to downgrade to MySQL++ v2.x. The SSQLS feature in these older versions worked with Visual C++ 2003, but didn’t let you use a given SSQLS in more than one module in a program. If you can live with that limitation and have a Perl interpreter on your system, you can re-generate lib/ssqls.h to remove the multiple-module SSQLS support. To do this, you run the command perl ssqls.pl -v from within MySQL++’s lib subdirectory before you build and install the library. There’s a plan to replace the current SSQLS mechanism with an entirely new code base. Although this is being done primarily to get new features that are too difficult to add within the current design, it also means we’ll have the chance to test step-by-step along the way that we don’t reintroduce code that Visual C++ 2003 doesn’t support. This may happen without you doing anything, but if there’s someone on the team who cares about this, that will naturally increase the chances that it does happen. mysql++-3.2.2+pristine.orig/doc/userman/Makefile.hello.mingw0000755000372000001440000000043512502417162023301 0ustar robertousersSHELL := $(COMSPEC) MYSQL_DIR := "c:/Program Files/MySQL/MySQL Connector C 6.1" CXXFLAGS := -I$(MYSQL_DIR)/include -Ic:/MySQL++/include LDFLAGS := -L$(MYSQL_DIR)/lib -Lc:/MySQL++/lib/MinGW LDLIBS := -lmysql -lmysqlpp EXECUTABLE := hello all: $(EXECUTABLE) clean: del $(EXECUTABLE) mysql++-3.2.2+pristine.orig/doc/userman/hello.txt0000644000372000001440000000021212502417162021251 0ustar robertousers#include int main() { mysqlpp::String greeting("Hello, world!"); std::cout << greeting << std::endl; return 0; } mysql++-3.2.2+pristine.orig/doc/userman/deadlock.txt0000644000372000001440000000613712502417162021730 0ustar robertousers#include "cmdline.h" #include #include #include using namespace std; // Bring in global holding the value given to the -m switch extern int run_mode; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Check that the mode parameter was also given and it makes sense const int run_mode = cmdline.run_mode(); if ((run_mode != 1) && (run_mode != 2)) { cerr << argv[0] << " must be run with -m1 or -m2 as one of " "its command-line arguments." << endl; return 1; } mysqlpp::Connection con; try { // Establish the connection to the database server mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Start a transaction set. Transactions create mutex locks on // modified rows, so if two programs both touch the same pair of // rows but in opposite orders at the wrong time, one of the two // programs will deadlock. The MySQL server knows how to detect // this situation, and its error return causes MySQL++ to throw // a BadQuery exception. The point of this example is that if // you want to detect this problem, you would check the value of // BadQuery::errnum(), not Connection::errnum(), because the // transaction rollback process executes a query which succeeds, // setting the MySQL C API's "last error number" value to 0. // The exception object carries its own copy of the error number // at the point the exception was thrown for this very reason. mysqlpp::Query query = con.query(); mysqlpp::Transaction trans(con); // Build and run the queries, with the order depending on the -m // flag, so that a second copy of the program will deadlock if // run while the first is waiting for Enter. char dummy[100]; for (int i = 0; i < 2; ++i) { int lock = run_mode + (run_mode == 1 ? i : -i); cout << "Trying lock " << lock << "..." << endl; query << "select * from deadlock_test" << lock << " where x = " << lock << " for update"; query.store(); cout << "Acquired lock " << lock << ". Press Enter to "; cout << (i == 0 ? "try next lock" : "exit"); cout << ": " << flush; cin.getline(dummy, sizeof(dummy)); } } catch (mysqlpp::BadQuery e) { if (e.errnum() == ER_LOCK_DEADLOCK) { cerr << "Transaction deadlock detected!" << endl; cerr << "Connection::errnum = " << con.errnum() << ", BadQuery::errnum = " << e.errnum() << endl; } else { cerr << "Unexpected query error: " << e.what() << endl; } return 1; } catch (mysqlpp::Exception e) { cerr << "General error: " << e.what() << endl; return 1; } return 0; } mysql++-3.2.2+pristine.orig/doc/userman/fo.xsl0000644000372000001440000000531012502417162020545 0ustar robertousers page false left 85% mysql++-3.2.2+pristine.orig/doc/userman/mktxt0000755000372000001440000000115112502417162020505 0ustar robertousers#!/bin/sh # Script to convert C++ source files to a text format, with 4 spaces for # every tab, and with the leading block comment removed. Used to # reformat the example programs so they can be xincluded directly into # the DocBook during XSLT processing. TXTFILE=$1 SRCFILE=`echo ../../examples/$TXTFILE | sed -e s/\\\\.txt/.cpp/` if [ ! -e $SRCFILE ] then SRCFILE=`echo ../../examples/$TXTFILE | sed -e s/\\\\.txt/.h/` fi CLINE=`grep -n '\*\*/' $SRCFILE |cut -f1 -d:` LINE=`echo $CLINE + 2 |bc` #echo Converting $SRCFILE to $TXTFILE, starting at line $LINE... expand -t4 $SRCFILE | tail -n +$LINE > $TXTFILE mysql++-3.2.2+pristine.orig/doc/userman/simple1.txt0000644000372000001440000000235412502417162021531 0ustar robertousers#include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Retrieve a subset of the sample stock table set up by resetdb // and display it. mysqlpp::Query query = conn.query("select item from stock"); if (mysqlpp::StoreQueryResult res = query.store()) { cout << "We have:" << endl; mysqlpp::StoreQueryResult::const_iterator it; for (it = res.begin(); it != res.end(); ++it) { mysqlpp::Row row = *it; cout << '\t' << row[0] << endl; } } else { cerr << "Failed to get item list: " << query.error() << endl; return 1; } return 0; } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.2+pristine.orig/doc/userman/incorporating.dbx0000644000372000001440000003632112502417162022774 0ustar robertousers Using MySQL++ in Your Own Project Up to now, this manual has only discussed MySQL++ in conjunction with the example programs that come with the library. This chapter covers the steps you need to take to incorporate MySQL++ into your own projects. The first thing you have to do is include mysql++.h in each module that uses MySQL++. In modules that use SSQLS v1, you also need to include ssqls.h.MySQL++ has many header files, but the only one that isn’t intertwined with the rest is ssqls.h. mysql++.h brings in all of the others in the correct order. Some have tried to speed their build times by finding a subset of MySQL++ headers to include, but mysql++.h already does as much of this as is practical. MySQL++’s monolithic nature rules out finding a true subset of the library headers. At this point, your project probably still won’t compile, and it certainly won’t link. The remaining steps are dependent on the operating system and tools you are using. The rest of this chapter is broken up into several sections, one for each major platform type. You can skip over the sections for platforms you don’t use. Visual C++ Using MySQL++ in an MFC Project If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | MFC | MFC Application. Go through the wizard setting up the project as you see fit. Once you have your project open, right click on your top-level executable in the Solution Explorer, choose Properties, and make the following changes. (Where it doesn’t specify Debug or Release, make the same change to both configurations.) Append the following to C/C++ | General | Additional Include Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\include, C:\mysql++\include Under C/C++ | Code Generation change “Runtime Library” to “Multi-threaded Debug DLL (/MDd)” for the Debug configuration. For the Release configuration, make it “Multi-threaded DLL (/MD)”. For both Release and Debug builds, append the following to Linker | General | Additional Library Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\lib, C:\mysql++\lib Connector/C does include debug libraries, but you will probably not need to use them. Under Linker | Input add the following to “Additional Dependencies” for the Debug configuration: libmysql.lib wsock32.lib mysqlpp_d.lib ...and then for the Release configuration: libmysql.lib wsock32.lib mysqlpp.lib This difference is because MySQL++’s Debug DLL and import library have a _d suffix so you can have both in the same directory without conflicts. You may want to study examples\vstudio\mfc\mfc.vcproj to see this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp.dll. Using MySQL++ in a Windows Forms C++/CLI Project Before you start work on getting MySQL++ working with your own program, you need to make some changes to the MySQL++ build settings. Open mysqlpp.sln, then right-click on the mysqlpp target and select Properties. Make the following changes for both the Debug and Release configurations: Under Configuration Properties | General, change “Common Language Runtime support” to the /clr setting. Under C/C++ | Code Generation, change “Enable C++ Exceptions” from “Yes (/EHsc)” to “Yes With SEH Exceptions (/EHa)” If you have already built MySQL++, be sure to perform a complete rebuild after changing these options. The compiler will emit several C4835 warnings after making those changes, which are harmless when using the DLL with a C++/CLI program, but which warn of real problems when using it with unmanaged C++. This is why MySQL++’s Windows installer (install.hta) offers the option to install the CLR version into a separate directory; use it if you need both managed and unmanaged versions installed! For the same reason, you might give some thought about where you install mysqlpp.dll on your end user’s machines when distributing your program. My recommendation is to install it in the same directory as the .exe file that uses it, rather than installing into a system directory where it could conflict with a mysqlpp.dll built with different settings. Once you have MySQL++ built with CLR support, open your program’s project. If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | CLR | Windows Forms Application. Go through the wizard setting up the project as you see fit. The configuration process isn’t much different from that for an MFC project, so go through the list above first. Then, make the following changes particular to .NET and C++/CLI: Under Configuration Properties | General change the setting from /clr:pure to /clr. (You need mixed assembly support to allow a C++/CLI program to use a plain C++ library like MySQL++.) For the Linker | Input settings, you don’t need wsock32.lib. The mere fact that you’re using .NET takes care of that dependency for you. In the MFC instructions above, it said that you need to build it using the Multi-threaded DLL version of the C++ Runtime Library. That’s not strictly true for MFC, but it’s an absolute requirement for C++/CLI. See the Remarks in the MSDN article on the /clr switch for details. You may want to study examples\vstudio\wforms\wforms.vcproj to see all this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp_d.dll and mysqlpp.dll. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris... There are lots of ways to build programs on Unixy platforms. We’ll cover just the most generic way here, Makefiles. We’ll use a very simple example so it’s clear how to translate this to more sophisticated build systems such as GNU Autotools or Bakefile. “Hello, world!” for MySQL++ might look something like this: Here’s a Makefile for building that program: The *FLAGS lines are where all of the assumptions about file and path names are laid out. Probably at least one of these assumptions isn’t true for your system, and so will require changing. The trickiest line is the LDLIBS one. MySQL++ programs need to get built against both the MySQL and MySQL++ libraries, because MySQL++ is built on top of the MySQL C API libraryThe MySQL C API library is most commonly called libmysqlclient on Unixy systems, though it is also known as Connector/C. If you’re building a threaded program, use -lmysqlclient_r instead of -lmysqlclient here. (See for more details on building thread-aware programs.) On some systems, the order of libraries in the LDLIBS line is important: these linkers collect symbols from right to left, so the rightmost library needs to be the most generic. In this example, MySQL++ depends on MySQL, so the MySQL C API library is rightmost. You might need to add more libraries to the LDLIBS line. -lnsl, -lz and -lm are common. If you study how MySQL++ itself gets built on your system, you can see what it uses, and emulate that. You may be wondering why we have used both LDLIBS and LDFLAGS here. Some Makefiles you have seen collect both types of flags in a single variable. That can work if the variable is used in the right place in the link command. However, this particular Makefile is made with GNU make in mind, and uses its standard rules implicitly. Those rules are designed to use these two variables separately like this. If you were writing your own compilation rules, you could write them in such a way that you didn’t have to do this. Beyond that, we have a pretty vanilla Makefile, thanks in large part to the fact that the default make rules are fine for such a simple program. OS X Makefiles The generic Makefile instructions above cover most of what you need to know about using Makefiles on OS X. One thing that may trip you up on OS X is that it uses an uncommon dynamic linkage system. The easiest way to cope with this is to link your executables with the compiler, rather than call ld directly. Another tricky bit on OS X is the concept of Universal binaries. See README-Mac-OS-X.txt for details on building a Universal version of the MySQL++ library, if you need one. By default, you only get a version tuned for the system type you build it on. Xcode I have no information on how to incorporate MySQL++ in an Xcode project. Send a message to the MySQL++ mailing list if you can help out here. MinGW Makefiles The generic Makefile instructions above apply to MinGW’s version of GNU make as well. You will have some differences due to the platform, so here’s the adjusted Makefile: Note that I’ve used del instead of rm in the clean target. In the past, at least, MinGW make had some funny rules about whether commands in target rules would get run with sh.exe or with cmd.exe. I can’t currently get my installation of MinGW to do anything but use sh.exe by default, but that may be because I have Cygwin installed, which provides sh.exe. This explains the first line in the file, which overrides the default shell with cmd.exe, purely to get consistent behavior across platforms. If you knew all your platforms would have a better shell, you’d probably want to use that instead. Note the use of forward slashes in the path to the MySQL Connector/C development files. GNU make uses the backslash as an escape character, so you’d have to double them if you’re unwilling to use forward slashes. Third-Party MinGW IDEs (Dev-C++, Code::Blocks...) I have no information on how to do this. We’ve received reports on the mailing list from people that have made it work, but no specifics on what all needs to be done. The Makefile discussion above should give you some hints. Eclipse As far as I can tell, the simplest way to build a C++ project with Eclipse is to set up a Makefile for it as described above, then add an external run configuration for your local make tool. Get the project building from the command line with make, then go to Run | External Tools | Open External Tools Dialog and add a new launch configuration. For example, on my OS X system I use /usr/bin/gnumake for the program location and pick the project root with the Browse Workspace button to set the working directory. mysql++-3.2.2+pristine.orig/doc/userman/tutorial.dbx0000644000372000001440000021467712502417162021775 0ustar robertousers Tutorial The previous chapter introduced the major top-level mechanisms in MySQL++. Now we’ll dig down a little deeper and get into real examples. We start off with the basics that every MySQL++ program will have to deal with, then work up to more complex topics that are still widely interesting. You can stop reading the manual after this chapter and still get a lot out of MySQL++, ignoring the more advanced parts we present in later chapters. Running the Examples All of the examples are complete running programs. If you built the library from source, the examples should have been built as well. If you use RPMs instead, the example programs’ source code and a simplified Makefile are in the mysql++-devel package. They are typically installed in /usr/share/doc/mysql++-devel-*/examples, but it can vary on different Linuxes. Before you get started, please read through any of the README*.txt files included with the MySQL++ distribution that are relevant to your platform. We won’t repeat all of that here. Most of the examples require a test database, created by resetdb. You can run it like so: resetdb [-s server_addr] [-u user] [-p password] Actually, there’s a problem with that. It assumes that the MySQL++ library is already installed in a directory that the operating system’s dynamic linker can find. (MySQL++ is almost never built statically.) Unless you’re installing from RPMs, you’ve had to build the library from source, and you should run at least a few of the examples before installing the library to be sure it’s working correctly. Since your operating system’s dynamic linkage system can’t find the MySQL++ libraries without help until they’re installed, we’ve created a few helper scripts to help run the examples. MySQL++ comes with the exrun shell script for Unixy systems, and the exrun.bat batch file for Windows. You pass the example program and its arguments to the exrun helper, which sets up the library search path so that it will use the as-yet uninstalled version of the MySQL++ library in preference to any other on your system: ./exrun resetdb [-s server_addr] [-u user] [-p password] That’s the typical form for a Unixy system. You leave off the ./ bit on Windows. You can leave it off on a Unixy system, too, if you have . in your PATH. (Not a recommendation, just an observation.) All of the program arguments are optional. If you don’t give , the underlying MySQL C API (a.k.a. Connector/C) assumes the server is on the local machine. It chooses one of several different IPC options based on the platform configuration. There are many different forms you can give as server_addr with to override this default behavior: localhost — this is the default; it doesn’t buy you anything On Windows, a simple period tells the underlying MySQL C API to use named pipes, if it’s available. 172.20.0.252:12345 — this would connect to IP address 172.20.0.252 on TCP port 12345. my.server.name:svc_name — this would first look up TCP service name svc_name in your system’s network services database (/etc/services on Unixy systems, and something like c:\windows\system32\drivers\etc\services on modern Windows variants). If it finds an entry for the service, it then tries to connect to that port on the domain name given. For the TCP forms, you can mix names and numbers for the host and port/service parts in any combination. If the server name doesn’t contain a colon, it uses the default port, 3306. If you don’t give , it assumes your user name on the database server is the same as your login name on the local machine. If you don’t give , it will assume the MySQL user doesn’t have a password. (One hopes this isn’t the case...) When running resetdb, the user name needs to be for an account with permission to create the test database. Once the database is created, you can use any account when running the other examples that has DELETE, INSERT, SELECT and UPDATE permissions for the test database. The MySQL root user can do all this, of course, but you might want to set up a separate user, having only the permissions necessary to work with the test database: CREATE USER mysqlpp_test@'%' IDENTIFIED BY ’nunyabinness'; GRANT ALL PRIVILEGES ON mysql_cpp_data.* TO mysqlpp_test@'%'; You could then create the sample database with the following command: ./exrun resetdb -u mysqlpp_test -p nunyabinness (Again, leave off the ./ bit on Windows.) You may have to re-run resetdb after running some of the other examples, as they change the database. See README-examples.txt for more details on running the examples. A Simple Example The following example demonstrates how to open a connection, execute a simple query, and display the results. This is examples/simple1.cpp: This example simply gets the entire "item" column from the example table, and prints those values out. Notice that MySQL++’s derives from std::vector, and provides an interface that makes it a vector work-alike. This means you can access elements with subscript notation, walk through them with iterators, run STL algorithms on them, etc. Row provides a little more in this area than a plain old vector: you can also access fields by name using subscript notation. The only thing that isn’t explicit in the code above is that we delegate command line argument parsing to parse_command_line() in the excommon module. This function exists to give the examples a consistent interface, not to hide important details. You can treat it like a black box: it takes argc and argv as inputs and sends back database connection parameters. A More Complicated Example The simple1 example above was pretty trivial. Let’s get a little deeper. Here is examples/simple2.cpp: The main point of this example is that we’re accessing fields in the row objects by name, instead of index. This is slower, but obviously clearer. We’re also printing out the entire table, not just one column. Exceptions By default, MySQL++ uses exceptions to signal errors. We’ve been suppressing this in all the examples so far by passing false to Connection’s constructor. This kept these early examples simple at the cost of some flexibility and power in error handling. In a real program, we recommend that you leave exceptions enabled. You do this by either using the default Connection constructor, or by using the create-and-connect constructor. All of MySQL++’s custom exceptions derive from a common base class, . That in turn derives from Standard C++’s std::exception class. Since the library can indirectly cause exceptions to come from the Standard C++ Library, it’s possible to catch all exceptions from MySQL++ by just catching std::exception. However, it’s better to have individual catch blocks for each of the concrete exception types that you expect, and add a handler for either Exception or std::exception to act as a “catch-all” for unexpected exceptions. When exceptions are suppressed, MySQL++ signals errors by returning either an error code or an object that tests as false, or by setting an error flag on the object. Classes that allow you to suppress exceptions derive from the interface. When an OptionalExceptions derivative creates another object that also derives from this interface, it passes on its exception flag. Since everything flows from the object, disabling exceptions on it at the start of the program disables all optional exceptions. This is why passing false for the Connection constructor’s “throw exceptions” parameter suppresses all optional exceptions in the simple[1-3] examples. It keeps them, well, simple. This exception suppression mechanism is quite granular. It’s possible to leave exceptions enabled most of the time, but suppress them in sections of the code where they aren’t helpful. To do this, put the section of code that you want to not throw exceptions inside a block, and create a object at the top of that block. When created, it saves the exception flag of the OptionalExceptions derivative you pass to it, and then disables exceptions on it. When the NoExceptions object goes out of scope at the end of the block, it restores the exceptions flag to its previous state: mysqlpp::Connection con; // default ctor, so exceptions enabled { mysqlpp::NoExceptions ne(con); if (!con.select_db("a_db_that_might_not_exist_yet")) { // Our DB doesn’t exist yet, so create and select it here; no need // to push handling of this case way off in an exception handler. } } When one OptionalExceptions derivative passes its exceptions flag to another such object, it is only passing a copy; the two objects’ flags operate independently. There’s no way to globally enable or disable this flag on existing objects in a single call. If you’re using the NoExceptions feature and you’re still seeing optional exceptions thrown, you disabled exceptions on the wrong object. The exception thrower could be unrelated to the object you disabled exceptions on, it could be its parent, or it could be a child created before you disabled optional exceptions. MySQL++ throws some exceptions unconditionally: MySQL++ checks array indices, always. For instance, if your code said “row[21]” on a row containing only 5 fields, you’d get a BadIndex exception. If you say “row["fred"]” on a row without a “fred” field, you get a BadFieldName exception. In the past, MySQL++ delegated some of its index checking to the STL containers underpinning it, so you could get std::range_error instead. As of MySQL++ v3.0.7, this should no longer happen, but there may be instances where it still does. will always throw when you ask it to do an improper type conversion. For example, you’ll get an exception if you try to convert “1.25” to int, but not when you convert “1.00” to int. In the latter case, MySQL++ knows that it can safely throw away the fractional part. If you use template queries and don’t pass enough parameters when instantiating the template, Query will throw a exception. If you use a C++ data type in a query that MySQL++ doesn’t know to convert to SQL, MySQL++ will throw a exception. It typically happens with , especially when using data types other than the ones defined in lib/sql_types.h. It’s educational to modify the examples to force exceptions. For instance, misspell a field name, use an out-of-range index, or change a type to force a String conversion error. Quoting and Escaping SQL syntax often requires certain data to be quoted. Consider this query: SELECT * FROM stock WHERE item = 'Hotdog Buns' Because the string “Hotdog Buns” contains a space, it must be quoted. With MySQL++, you don’t have to add these quote marks manually: string s = "Hotdog Buns"; query << "SELECT * FROM stock WHERE item = " << quote_only << s; That code produces the same query string as in the previous example. We used the MySQL++ quote_only manipulator, which causes single quotes to be added around the next item inserted into the stream. This works for any type of data that can be converted to MySQL++’s SQLTypeAdapter type, plus the template. SSQLS also uses these manipulators internally. Quoting is pretty simple, but SQL syntax also often requires that certain characters be “escaped”. Imagine if the string in the previous example was “Frank’s Brand Hotdog Buns” instead. The resulting query would be: SELECT * FROM stock WHERE item = 'Frank's Brand Hotdog Buns' That’s not valid SQL syntax. The correct syntax is: SELECT * FROM stock WHERE item = 'Frank''s Brand Hotdog Buns' As you might expect, MySQL++ provides that feature, too, through its escape manipulator. But here, we want both quoting and escaping. That brings us to the most widely useful manipulator: string s = "Frank’s Brand Hotdog Buns"; query << "SELECT * FROM stock WHERE item = " << quote << s; The quote manipulator both quotes strings and escapes any characters that are special in SQL. MySQL++ provides other manipulators as well. See the manip.h page in the reference manual. It’s important to realize that MySQL++’s quoting and escaping mechanism is type-aware. Manipulators have no effect unless you insert the manipulator into a Query or SQLQueryParms stream. SQLQueryParms is used as a stream only as an implementation detail within the library. End user code simply sees it as a std::vector derivative. Also, values are only quoted and/or escaped if they are of a data type that may need it. For example, Date must be quoted but never needs to be escaped, and integer types need neither quoting nor escaping. Manipulators are suggestions to the library, not commands: MySQL++ will ignore these suggestions if it knows it won’t result in syntactically-incorrect SQL. It’s also important to realize that quoting and escaping in Query streams and template queries is never implicit.By contrast, the Query methods that take an SSQLS do add quotes and escape strings implicitly. It can do this because SSQLS knows all the SQL code and data types, so it never has to guess whether quoting or escaping is appropriate. You must use manipulators and template query flags as necessary to tell MySQL++ where quoting and escaping is necessary. It would be nice if MySQL++ could do quoting and escaping implicitly based on data type, but this isn’t possible in all cases.Unless you’re smarter than I am, you don’t immediately see why explicit manipulators are necessary. We can tell when quoting and escaping is not appropriate based on type, so doesn’t that mean we know when it is appropriate? Alas, no. For most data types, it is possible to know, or at least make an awfully good guess, but it’s a complete toss-up for C strings, const char*. A C string could be either a literal string of SQL code, or it can be a value used in a query. Since there’s no easy way to know and it would damage the library’s usability to mandate that C strings only be used for one purpose or the other, the library requires you to be explicit. Since MySQL++ can’t reliably guess when quoting and escaping is appropriate, and the programmer doesn’t need toOne hopes the programmer knows., MySQL++ makes you tell it. C++ vs. SQL Data Types The C++ and SQL data type systems have several differences that can cause problems when using MySQL++, or any other SQL based system, for that matter. Most of the data types you can store in a SQL database are either numbers or text strings. If you’re only looking at the data going between the database server and your application, there aren’t even numbers: SQL is a textual language, so numbers and everything else gets transferred between the client and the database server in text string form.Yes, we’re aware that there is a feature in MySQL that lets you transfer row data in a binary form, but we don’t support this yet. We may, someday, probably as an extension to SSQLS. The only real reason to do so is to shave off some of the data translation overhead, which is typically neglibible in practice, swamped by the far greater disk and network I/O overheads inherent in use of a client-server database system like MySQL. Consequently, MySQL++ has a lot of special support for text strings, and can translate to several C++ numeric data types transparently. Some people worry that this translation via an intermediate string form will cause data loss. Obviously the text string data types are immune from problems in this regard. We’re also confident that MySQL++ translates BLOB and integer data types losslessly. The biggest worry is with floating-point numbers. (The FLOAT and DOUBLE SQL data types.) We did have a problem with this in older versions of MySQL++, but we believe we fixed it completely in v3.0.2. No one has since proven data loss via this path. There is still a known problem SQL’s DECIMAL data type is a configurable-precision fixed-point number format. MySQL++ currently translates these to double, a floating-point data format, the closest thing available in the C++ type system. Since the main reason to use DECIMAL is to get away from the weird roundoff behavior of floating-point numbers, this could be viewed as a serious problem. The thing is, though, in all the years MySQL++ has been around, I don’t remember anyone actually complaining about it. Apparently there’s either no one using DECIMAL with MySQL++, or they’re ignoring any roundoff errors they get as a result. Until this wheel squeaks, it’s not likely to be greased. To fix this, we’ll have to create a new custom data type to hold such column values, which will be a lot of work for apparently little return. with the SQL DECIMAL type, which is somewhat related to the floating-point issue, but it’s apparently rarely encountered, which is why it hasn’t been fixed yet. The best way to avoid problems with data translation is to always use the special MySQL++ data types defined in lib/sql_types.h corresponding to your SQL schema. These typedefs begin with sql_ and end with a lowercase version of the standard SQL type name, with spaces replaced by underscores. There are variants ending in _null that wrap these base types so they’re compatible with SQL null. For instance, the SQL type TINYINT UNSIGNED NOT NULL is represented in MySQL++ by mysqlpp::sql_tinyint_unsigned. If you drop the NOT NULL part, the corresponding C++ type is mysqlpp::sql_tinyint_unsigned_null. MySQL++ doesn’t force you to use these typedefs. It tries to be flexible with regard to data conversions, so you could probably use int anywhere you use mysqlpp::sql_tinyint_unsigned, for example. That said, the MySQL++ typedefs give several advantages: Space efficiency: the MySQL++ types are no larger than necessary to hold the MySQL data. Portability: if your program has to run on multiple different system types (even just 32- and 64-bit versions of the same operating system and processor type) using the MySQL++ typedefs insulates your code from platform changes. Clarity: using C++ types named similarly to the SQL types reduces the risk of confusion when working with code in both languages at the same time. Compatibility: using the MySQL++ types ensures that data conversions between SQL and C++ forms are compatible. Naïve use of plain old C++ types can result in data truncation, exceptions, and worse. Type compatibility is important not just at the time you write your program, it also helps forward compatibility: we occasionally change the definitions of the MySQL++ typedefs to reduce the differences between the C++ and SQL type systems. We’ll be fixing the DECIMAL issue brought up above this way, for instance; if your program uses sql_decimal instead of the current underlying type, double, your program will pick up this improvement automatically with just a recompile. Most of these typedefs use standard C++ data types, but a few are aliases for a MySQL++ specific type. For instance, the SQL type DATETIME is mirrored in MySQL++ by mysqlpp::DateTime. For consistency, sql_types.h includes a typedef alias for DateTime called mysqlpp::sql_datetime. MySQL++ doesn’t have typedefs for the most exotic data types, like those for the geospatial types. Patches to correct this will be thoughtfully considered. Handling SQL Nulls Both C++ and SQL have things in them called NULL, but they differ in several ways. Consequently, MySQL++ has to provide special support for this, rather than just wrap native C++ facilities as it can with most data type issues. SQL NULL is a type modifier The primary distinction is one of type. In SQL, “NULL” is a type modifier, which affects whether you can legally store a null value in that column. There’s simply nothing like it in C++. To emulate SQL NULL, MySQL++ provides the Null template to allow the creation of distinct “nullable” versions of existing C++ types. So for example, if you have a TINYINT UNSIGNED column that can have nulls, the proper declaration for MySQL++ would be: mysqlpp::Null<mysqlpp::sql_tinyint_unsigned> myfield; As of MySQL++ 3.1, we also provide shorter aliases for such types: mysqlpp::sql_tinyint_unsigned_null myfield; These types are declared in lib/sql_types.h. You might want to scan through that to see what all is available. Template instantiations are first-class types in the C++ language, so there’s no possible confusion between this feature of MySQL++ and C++’s native NULL concept. SQL NULL is a unique value There’s a secondary distinction between SQL null and anything available in the standard C++ type system: SQL null is a distinct value, equal to nothing else. We can’t use C++’s NULL for this because it is ambiguous, being equal to 0 in integer context. MySQL++ provides the global null object, which you can assign to a Null template instance to make it equal to SQL null: myfield = mysqlpp::null; If you insert a MySQL++ field holding a SQL null into a C++ IOstream, you get “(NULL)”, something fairly unlikely to be in a normal output string, thus reasonably preserving the uniqueness of the SQL null value. MySQL++ also tries to enforce the uniqueness of the SQL null value at compile time in assignments and data conversions. If you try to store a SQL null in a field type that isn’t wrapped by Null or try to assign a Null-wrapped field value to a variable of the inner non-wrapped type, the compiler will emit some ugly error message, yelling about CannotConvertNullToAnyOtherDataType. (The exact message is compiler-dependent.) If you don’t like these behaviors, you can change them by passing a different value for the second parameter to template Null. By default, this parameter is , meaning that we should enforce the uniqueness of SQL null. To relax the distinctions, you can instantiate the Null template with a different behavior type: or . Consider this code: mysqlpp::Null<unsigned char, mysqlpp::NullIsZero> myfield(mysqlpp::null); cout << myfield << endl; cout << int(myfield) << endl; This will print “0” twice. If you had used the default for the second Null template parameter, the first output statement would have printed “(NULL)”, and the second wouldn’t even compile. MySQL++’s Special String Types MySQL++ has two classes that work like std::string to some degree: and . These classes exist to provide functionality that std::string doesn’t provide, but they are neither derivatives of nor complete supersets of std::string. As a result, end-user code generally doesn’t deal with these classes directly, because std::string is a better general-purpose string type. In fact, MySQL++ itself uses std::string most of the time, too. But, the places these specialized stringish types do get used are so important to the way MySQL++ works that it’s well worth taking the time to understand them. SQLTypeAdapter The simpler of the two is SQLTypeAdapter, or STA for short.In version 2 of MySQL++ and earlier, SQLTypeAdapter was called SQLString, but it was confusing because its name and the fact that it derived from std::string suggested that it was a general-purpose string type. MySQL++ even used it this way in a few places internally. In v3, we made it a simple base class and renamed it to reflect its proper limited function. As its name suggests, its only purpose is to adapt other data types to be used with SQL. It has a whole bunch of conversion constructors, one for all data types we expect to be used with MySQL++ for values in queries. SQL queries are strings, so constructors that take stringish types just make a copy of that string, and all the others “stringize” the value in the format needed by SQL.SQLTypeAdapter doesn’t do itself. That happens elsewhere, right at the point that the STA gets used to build a query. The conversion constructors preserve type information, so this stringization process doesn’t throw away any essential information. STA is used anywhere MySQL++ needs to be able to accept any of several data types for use in a SQL query. Major users are Query’s template query mechanism and the Query stream quoting and escaping mechanism. You care about STA because any time you pass a data value to MySQL++ to be used in building a SQL query, it goes through STA. STA is one of the key pieces in MySQL++ that makes it easy to generate syntactically-correct SQL queries. String If MySQL++ can be said to have its own generic string type, it’s String, but it’s not really functional enough for general use. It’s possible that in future versions of MySQL++ we’ll expand its interface to include everything std::string does, so that’s why it’s called that.If you used MySQL++ before v3, String used to be called ColData. It was renamed because starting in v2.3, we began using it for holding more than just column data. I considered renaming it SQLString instead, but that would have confused old MySQL++ users to no end. Instead, I followed the example of Set, MySQL++’s specialized std::set variant. The key thing String provides over std::string is conversion of strings in SQL value formats to their plain old C++ data types. For example, if you initialize it with the string “2007-11-19”, you can assign the String to a Date, not because Date knows how to initialize itself from String, but the reverse: String has a bunch of implicit conversion operators defined for it, so you can use it in any type context that makes sense in your application. Because Row::operator[] returns String, you can say things like this: int x = row["x"]; In a very real sense, String is the inverse of STA: String converts SQL value strings to C++ data types, and STA converts C++ data types to SQL value strings.During the development of MySQL++ v3.0, I tried merging SQLTypeAdapter and String into a single class to take advantage of this. The resulting class gave the C++ compiler the freedom to tie itself up in knots, because it was then allowed to convert almost any data type to almost any other. You’d get a tangle of ambiguous data type conversion errors from the most innocent code. String has two main uses. By far the most common use is as the field value type of Row, as exemplified above. It’s not just the return type of Row::operator[], though: it’s actually the value type used within Row’s internal array. As a result, any time MySQL++ pulls data from the database, it goes through String when converting it from the string form used in SQL result sets to the C++ data type you actually want the data in. It’s the core of the structure population mechanism in the SSQLS feature, for example. Because String is the last pristine form of data in a result set before it gets out of MySQL++’s internals where end-user code can see it, MySQL++’s sql_blob and related typedefs are aliases for String. Using anything else would require copies; while the whole “networked database server” thing means most of MySQL++ can be quite inefficient and still not affect benchmark results meaningfully, BLOBs tend to be big, so making unnecessary copies can really make a difference. Which brings us to... Reference Counting To avoid unnecessary buffer copies, both STA and String are implemented in terms of a reference-counted copy-on-write buffer scheme. Both classes share the same underlying mechanism, and so are interoperable. This means that if you construct one of these objects from another, it doesn’t actually copy the string data, it only copies a pointer to the data buffer, and increments its reference count. If the object has new data assigned to it or it’s otherwise modified, it decrements its reference count and creates its own copy of the buffer. This has a lot of practical import, such as the fact that even though Row::operator[] returns Strings by value, it’s still efficient. Dealing with Binary Data Historically, there was no way to hold arbitrary-sized blocks of raw binary data in an SQL database. There was resistance to adding such a feature to SQL for a long time because it’s better, where possible, to decompose blocks of raw binary data into a series of numbers and text strings that can be stored in the database. This lets you query, address and manipulate elements of the data block individually. A classic SQL newbie mistake is trying to treat the database server as a file system. Some embedded platforms use a database engine as a file system, but MySQL doesn’t typically live in that world. When your platform already has a perfectly good file system, you should use it for big, nondecomposable blocks of binary data in most cases. A common example people use when discussing this is images in database-backed web applications. If you store the image in the database, you have to write code to retrieve the image from the database and send it to the client; there’s more overhead, and less efficient use of the system’s I/O caching system. If you store the image in the filesystem, all you have to do is point the web server to the directory where the images live, and put a URL for that image in your generated HTML. Because you’re giving the web server a direct path to a file on disk, operation is far more efficient. Web servers are very good at slurping whole files off of disk and sending them out to the network, and operating systems are very good at caching file accesses. Plus, you avoid the overhead of pushing the data through the high-level language your web app is written in, which is typically an interpreted language, not C++. Some people still hold out on this, claiming that database engines have superior security features, but I call bunk on that, too. Operating systems and web servers are capable of building access control systems every bit as granular and secure as a database system. Occasionally you really do need to store a nondecomposable block of binary data in the database. For such cases, modern SQL database servers support BLOB data types, for Binary Large OBject. This is often just called binary data, though of course all data in a modern computer is binary at some level. The tricky part about dealing with binary data in MySQL++ is to ensure that you don’t ever treat the data as a C string, which is really easy to do accidentally. C strings treat zero bytes as special end-of-string characters, but they’re not special at all in binary data. We’ve made a lot of improvements to the way MySQL++ handles string data to avoid this problem, but it’s still possible to bypass these features, wrecking your BLOBs. These examples demonstrate correct techniques. Loading a binary file into a BLOB column Above, I opined that it’s usually incorrect to store image data in a database, particularly with web apps, of which CGI is a primitive form. Still, it makes a nice, simple example. Instead of a single example program, we have here a matched pair. The first example takes the name of a JPEG file on the command line along with all the other common example program parameters, loads that file into memory, and stores it in a BLOB column in the database. This example also demonstrates how to retrieve the value assigned to an auto-increment column in the previous insertion. This example uses that feature in the typical way, to create unique IDs for rows as they’re inserted. Here is examples/load_jpeg.cpp: Notice that we used the escape manipulator when building the INSERT query above. This is because mysqlpp::sql_blob is just an alias for one of the special MySQL++ string types, which don’t do automatic quoting and escaping. They can’t, because MySQL++ also uses these data types to hold raw SQL query strings, which would break due to doubled quoting and/or escaping if it were automatic. Serving images from BLOB column via CGI The other example in this pair is rather short, considering how much it does. It parses a CGI query string giving the image ID, uses that to retreive data loaded into the database by load_jpeg, and writes it out in the form a web server wants when processing a CGI call, all with adequate real-world error handling. This is examples/cgi_jpeg.cpp: While you can run it by hand, it’s best to install this in a web server’s CGI program directory, then call it with a URL like http://my.server.com/cgi-bin/cgi_jpeg?id=1. That retrieves the JPEG with ID 1 from the database and returns it to the web server, which will send it on to the browser. We’ve included an image with MySQL++ that you can use with this example pair, examples/logo.jpg. Using Transactions The class makes it easier to use SQL transactions in an exception-safe manner. Normally you create the Transaction object on the stack before you issue the queries in your transaction set. Then, when all the queries in the transaction set have been issued, you call Transaction::commit(), which commits the transaction set. If the Transaction object goes out of scope before you call commit(), the transaction set is rolled back. This ensures that if some code throws an exception after the transaction is started but before it is committed, the transaction isn’t left unresolved. examples/transaction.cpp illustrates this: One of the downsides of transactions is that the locking it requires in the database server is prone to deadlocks. The classic case where this happens is when two programs both want access to the same two rows within a single transaction each, but they modify them in opposite orders. If the timing is such that the programs interleave their lock acquisitions, the two come to an impasse: neither can get access to the other row they want to modify until the other program commits its transaction and thus release the row locks, but neither can finish the transaction because they’re waiting on row locks the database server is holding on behalf of the other program. The MySQL server is smart enough to detect this condition, but the best it can do is abort the second transaction. This breaks the impasse, allowing the first program to complete its transaction. The second program now has to deal with the fact that its transaction just got aborted. There’s a subtlety in detecting this situation when using MySQL++. By default, MySQL++ signals errors like these with exceptions. In the exception handler, you might expect to get ER_LOCK_DEADLOCK from Query::errnum() (or Connection::errnum(), same thing), but what you’ll almost certainly get instead is 0, meaning “no error.” Why? It’s because you’re probably using a Transaction object to get automatic roll-backs in the face of exceptions. In this case, the roll-back happens before your exception handler is called by issuing a ROLLBACK query to the database server. Thus, Query::errnum() returns the error code associated with this roll-back query, not the deadlocked transaction that caused the exception. To avoid this problem, a few of the exception objects as of MySQL++ v3.0 include this last error number in the exception object itself. It’s populated at the point of the exception, so it can differ from the value you would get from Query::errnum() later on when the exception handler runs. The example examples/deadlock.cpp demonstrates the problem: This example works a little differently than the others. You run one copy of the example, then when it pauses waiting for you to press Enter, you run another copy. Then, depending on which one you press Enter in, one of the two will abort with the deadlock exception. You can see from the error message you get that it matters which method you call to get the error number. What you do about it is up to you as it depends on your program’s design and system architecture. Which Query Type to Use? There are three major ways to execute a query in MySQL++: Query::execute(), Query::store(), and Query::use(). Which should you use, and why? execute() is for queries that do not return data per se. For instance, CREATE INDEX. You do get back some information from the MySQL server, which execute() returns to its caller in a object. In addition to the obvious — a flag stating whether the query succeeded or not — this object also contains things like the number of rows that the query affected. If you only need the success status, it’s a little more efficient to call Query::exec() instead, as it simply returns bool. If your query does pull data from the database, the simplest option is store(). (All of the examples up to this point have used this method.) This returns a object, which contains the entire result set. It’s especially convenient because StoreQueryResult derives from std::vector<mysqlpp::Row>, so it opens the whole panoply of STL operations for accessing the rows in the result set. Access rows randomly with subscript notation, iterate forwards and backwards over the result set, run STL algorithms on the set...it all works naturally. If you like the idea of storing your results in an STL container but don’t want to use std::vector, you can call Query::storein() instead. It lets you store the results in any standard STL container (yes, both sequential and set-associative types) instead of using StoreQueryResult. You do miss out on some of the additional database information held by StoreQueryResult’s other base class, , however. store*() queries are convenient, but the cost of keeping the entire result set in main memory can sometimes be too high. It can be surprisingly costly, in fact. A MySQL database server stores data compactly on disk, but it returns query data to the client in a textual form. This results in a kind of data bloat that affects numeric and BLOB types the most. MySQL++ and the underlying C API library also have their own memory overheads in addition to this. So, if you happen to know that the database server stores every record of a particular table in 1 KB, pulling a million records from that table could easily take several GB of memory with a store() query, depending on what’s actually stored in that table. For these large result sets, the superior option is a use() query. This returns a object, which is similar to StoreQueryResult, but without all of the random-access features. This is because a “use” query tells the database server to send the results back one row at a time, to be processed linearly. It’s analogous to a C++ stream’s input iterator, as opposed to a random-access iterator that a container like vector offers. By accepting this limitation, you can process arbitrarily large result sets. This technique is demonstrated in examples/simple3.cpp: This example does the same thing as simple2, only with a “use” query instead of a “store” query. Valuable as use() queries are, they should not be the first resort in solving problems of excessive memory use. It’s better if you can find a way to simply not pull as much data from the database in the first place. Maybe you’re saying SELECT * even though you don’t immedidately need all the columns from the table. Or, maybe you’re filtering the result set with C++ code after you get it from the database server. If you can do that filtering with a more restrictive WHERE clause on the SELECT, it’ll not only save memory, it’ll save bandwidth between the database server and client, and can even save CPU time. If the filtering criteria can’t be expressed in a WHERE clause, however, read on to the next section. Conditional Result Row Handling Sometimes you must pull more data from the database server than you actually need and filter it in memory. SQL’s WHERE clause is powerful, but not as powerful as C++. Instead of storing the full result set and then picking over it to find the rows you want to keep, use Query::store_if(). This is examples/store_if.cpp: I doubt anyone really needs to select rows from a table that have a prime number in a given field. This example is meant to be just barely more complex than SQL can manage, to avoid obscuring the point. That point being, the Query::store_if() call here gives you a container full of results meeting a criterion that you probably can’t express in SQL. You will no doubt have much more useful criteria in your own programs. If you need a more complex query than the one store_if() knows how to build when given an SSQLS examplar, there are two overloads that let you use your own query string. One overload takes the query string directly, and the other uses the query string built with Query’s stream interface. Executing Code for Each Row In a Result Set SQL is more than just a database query language. Modern database engines can actually do some calculations on the data on the server side. But, this isn’t always the best way to get something done. When you need to mix code and a query, MySQL++’s Query::for_each() facility might be just what you need. This is examples/for_each.cpp: You only need to read the main() function to get a good idea of what the program does. The key line of code passes an SSQLS examplar and a functor to Query::for_each(). for_each() uses the SSQLS instance to build a select * from TABLE query, stock in this case. It runs that query internally, calling gather_stock_stats on each row. This is a pretty contrived example; you could actually do this in SQL, but we’re trying to prevent the complexity of the code from getting in the way of the demonstration here. Just as with store_if(), described above, there are two other overloads for for_each() that let you use your own query string. Connection Options MySQL has a large number of options that control how it makes the connection to the database server, and how that connection behaves. The defaults are sufficient for most programs, so only one of the MySQL++ example programs make any connection option changes. Here is examples/multiquery.cpp: This is a fairly complex example demonstrating the multi-query and stored procedure features in newer versions of MySQL. Because these are new features, and they change the communication between the client and server, you have to enable these features in a connection option. The key line is right up at the top of main(), where it creates a object and passes it to Connection::set_option(). That method will take a pointer to any derivative of : you just create such an object on the heap and pass it in, which gives Connection the data values it needs to set the option. You don’t need to worry about releasing the memory used by the Option objects; it’s done automatically. The only tricky thing about setting options is that only a few of them can be set after the connection is up. Most need to be set just as shown in the example above: create an unconnected Connection object, set your connection options, and only then establish the connection. The option setting mechanism takes care of applying the options at the correct time in the connection establishment sequence. If you’re familiar with setting connection options in the MySQL C API, you’ll have to get your head around the fact that MySQL++’s connection option mechanism is a much simpler, higher-level design that doesn’t resemble the C API in any way. The C API has something like half a dozen different mechanisms for setting options that control the connection. The flexibility of the C++ type system allows us to wrap all of these up into a single high-level mechanism while actually getting greater type safety than the C API allows. Dealing with Connection Timeouts By default, current MySQL servers have an 8 hour idle timeout on connections. This is not a problem if your program never has to run for more than 8 hours or reliably queries the database more often than that. And, it’s a good thing for the database server, because even an idle connection takes up server resources. Many programs must run continually, however, and may experience long idle periods, such as nights and weekends when no one is around to make the program issue database queries. It’s therefore common for people writing such programs to get a bug report from the field complaining that the program died overnight or over a long weekend, usually with some error message about the database server going away. They then check the DB server, find that it’s still running and never did restart and scratch their heads wondering what happened. What happened is that the server’s connection idle timeout expired, so it closed the connection to the client. You cannot detect this condition by calling Connection::connected(). When that returns true, it just means that either the connect-on-create constructor or the connect() call succeeded and that we haven’t observed the connection to be down since then. When the database server closes an idle connection, you won’t know it until after you try to issue a query. This is simply due to the nature of network programming. One way around this problem is to configure MySQL to have a longer idle timeout. This timeout is in seconds, so the default of 8 hours is 28,800 seconds. You would want to figure out the longest possible time that your program could be left idle, then pick a value somewhat longer than that. For instance, you might decide that the longest reasonable idle time is a long 4-day weekend — 345,600 seconds — which you could round up to 350,000 or 400,000 to allow for a little bit of additional idle time on either end of that period. Another way around this, on a per-connection basis from the client side, would be to set the connection option. This will cause MySQL++ to reconnect to the server automatically if it drops the connection. Beware that unless you’re using MySQL 5.1.6 or higher, you have to set this only after the connection is established, or it won’t take effect. This means there’s a potential race condition: it’s possible the connection could drop shortly enough after being established that you don’t have time to apply the option, so it won’t come back up automatically. MySQL 5.1.6+ fixes this by allowing this option to be set before the connection is established. A completely different way to tackle this, if your program doesn’t block forever waiting on I/O while idle, is to periodically call Connection::ping(). Don’t ping the server too often! It takes a tiny amount of processing capability to handle a ping, which can add up to a significant amount if done often enough by a client, or even just rarely by enough clients. Also, a lower ping frequency can let your program ride through some types of network faults — a switch reboot, for instance — without needing a reconnect. I like to ping the DB server no more often than half the connection timeout. With the default of 8 hours, then, I’d ping between every 4 and 7 hours. This sends the smallest possible amount of data to the database server, which will reset its idle timer and cause it to respond, so ping() returns true. If it returns false instead, you know you need to reconnect to the server. Periodic pinging is easiest to do if your program uses asynchronous I/O, threads, or some kind of event loop to ensure that you can call something periodically even while the rest of the program has nothing to do. An interesting variant on this strategy is to ping the server before each query, or, better, before each group of queries within a larger operation. It has an advantage over pinging during idle time in that the client is about to use far more server resources to handle the query than it will take to handle the ping, so the ping time gets lost in the overhead. On the other hand, if the client issues queries frequently when not idle, it can result in a lot more pings than would happen if you just pinged every N hours while idle. Finally, some programmers prefer to wrap the querying mechanism in an error handler that catches the “server has gone away” error and tries to reestablish the connection and reissue the query. This adds some complexity, but it makes your program more robust without taking up unnecessary resources. If you did this, you could even change the server to drop idle connections more often, thus tying up fewer TCP/IP stack resources. Concurrent Queries on a Connection An important limitation of the MySQL C API library — which MySQL++ is built atop, so it shares this limitation — is that you can only have one query in progress on each connection to the database server. If you try to issue a second query while one is still in progress, you get an obscure error message about “Commands out of sync” from the underlying C API library. (You normally get this message in a MySQL++ exception unless you have exceptions disabled, in which case you get a failure code and Connection::error() returns this message.) There are lots of ways to run into this limitation: The easiest way is to try to use a single object in a multithreaded program, with more than one thread attempting to use it to issue queries. Unless you put in a lot of work to synchronize access, this is almost guaranteed to fail at some point, giving the dread “Commands out of sync” error. You might then think to give each thread that issues queries its own Connection object. You can still run into trouble if you pass the data you get from queries around to other threads. What can happen is that one of these child objects indirectly calls back to the Connection at a time where it’s involved with another query. This is properly covered elsewhere, in .) One way to run into this problem without using threads is with “use” queries, discussed above. If you don’t consume all rows from a query before you issue another on that connection, you are effectively trying to have multiple concurrent queries on a single connection. Here’s a recipie for this particular disaster: UseQueryResult r1 = query.use("select garbage from plink where foobie='tamagotchi'"); UseQueryResult r2 = query.use("select blah from bonk where bletch='smurf'"); The second use() call fails because the first result set hasn’t been consumed yet. Still another way to run into this limitation is if you use MySQL’s multi-query feature. This lets you give multiple queries in a single call, separated by semicolons, and get back the results for each query separately. If you issue three queries using Query::store(), you only get back the first query’s results with that call, and then have to call store_next() to get the subsequent query results. MySQL++ provides Query::more_results() so you know whether you’re done, or need to call store_next() again. Until you reach the last result set, you can’t issue another query on that connection. Finally, there’s a way to run into this that surprises almost everyone sooner or later: stored procedures. MySQL normally returns at least two result sets for a stored procedure call. The simple case is that the stored procedure contains a single SQL query, and it succeeds: you get two results, first the results of the embedded SQL query, and then the result of the call itself. If there are multiple SQL queries within the stored procedure, you get more than two result sets. Until you consume them all, you can’t start a new query on the connection. As above, you want to have a loop calling more_results() and store_next() to work your way through all of the result sets produced by the stored procedure call. Getting Field Meta-Information The following example demonstrates how to get information about the fields in a result set, such as the name of the field and the SQL type. This is examples/fieldinf.cpp: mysql++-3.2.2+pristine.orig/doc/pdf/0000755000372000001440000000000012502417162016511 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/pdf/userman.pdf0000644000372000001440000127624612502417162020700 0ustar robertousers%PDF-1.4 %ª«¬­ 4 0 obj << /Title (MySQL++ v3.2.2 User Manual) /Author (Kevin Atkinson, Sinisa Milivojevic, Monty Widenius, and Warren Young) /Creator (DocBook XSL Stylesheets with Apache FOP) /Producer (Apache FOP Version SVN tags/fop-1_1) /CreationDate (D:20150318185508-06'00') >> endobj 5 0 obj << /N 3 /Length 11 0 R /Filter /FlateDecode >> stream xœí™gPTY€ï{ ÝM“¡ÉI¢„$ç$A²¨@w“i¡ÉAQdpFIŠ ¢€ŽAFQÅ€(( ¢N#ƒ€2Ž"**KãÙ­ù±µU[ûgûüxï«sO½sî«[õ¾ª€ 1ž• ëÀMáù:Û1‚‚C˜ H€(ÎJN´õöö«!¨‹÷cÜïëÖsÏ‘¢‹>è›qyüv¢yËßëÿ%ˆì.ˆ¶Ê±lN2k•w­r4;-ÈÏ 8=%1Ø{•i¼ÕW™-àˆoœ!à¨o\¼Vãçk¿ÊÇÀ£ÖZÀkLé0+š—€tÿj½ +‘·ú|iA/Åo3¬…¨`?Œ(—à Oá°ÿf+ÿyüS/TòêËÿ¯7ø÷œoôÖríL@ôÊ¿rÛË`¾QúWNåä=töþ•‹8@W)’ÏX©¼´o9äÚìÈ€¤€r¹€üŠ"¡dQÚ(s”+*…JG *PM¨Ô5Ô(jõFÓÑêhS´ :‹ÎF£ ÛÑ—ÑÃè)ô"ƒ‘Âhc,1^˜pL ¦S…9¹„ÁLc>` X¬!Ö ‚åbó°Øl/v;ƒ]ƉâTqæ8/—‰+Á5âzpwqÓ¸e¼^o‰÷ÃÇâwã+ñmøkø'ø·A‰`Fð!Äv* g7“„D Q‹hO %¦÷O/ß’H$5’ )„”BÚOj&]%=#}¡ŠèЏаErEjD:EFD^“qdU²-y+9‹\A>G¾Kžʼnª‰Ú‹†‹î­=/:.º(F3óK+k»)6KÁPÔ(Ž6%Ÿrœr•2EEP•©öTuµ‘z:MCÓÔi®´XZíGÚmAœ"n$ ž!^#~QœOGÐÕè®ôxz ý,}ŒþIBNÂV‚#±O¢MbDbIRFÒF’#Y(Ù.9*ùIŠ!å('u@ªKê©4RZKÚG:]ú¨ô5éyšŒ… K¦Pæ¬ÌcYXVKÖW6[ö¸ì ì¢œ¼œ³\¢\•ÜU¹yyº¼|¬|¹|¯üœUÁJ!F¡\á’ÂK†8ÖϨdô3e]S뇗•Ô•ü•ò”Ú•ž*㕙ʑÊåÊ}Ê * *ž*9*­*UqªLÕhÕêªKjêjj{ÕºÔfÕ%Õ]Õ³Ô[ÕŸh4¬5’44h¢5™šqšG4ïiÁZÆZÑZ5Zwµamíí#ÚÃëPëÌÖq×5¬×!êØê¤é´êLêÒu=tót»t_ë©è…èÐÐûªo¬¯ß¨?a@1p3È3è1øÓPËeXcø`=i½ÓúÜõÝëßiqŒŽ=4¦{ï5î3þbbjÂ3i3™3U1 3­5gÒ˜ÞÌbæ 3”™Y®Ù³æ&æ)ægÍÿ°Ð±ˆ³h±˜Ý ¾³¡qÔ¥’e¸e½%ߊafuÌŠo­hnÝ`ýÜFÙ†mÓd3c«ik{Úöµ¾Ï®ÃnÉÞÜ~‡ýe„ƒ³C¡Ã#ÅÑß±Úñ™“’S”S«Ó‚³±s¶óe”‹»Ë—qW9W–k³ë‚›©Û·~w¢û&÷j÷çZ<OØÓÍó ç“ª¹»¼€—«×A¯§ÞêÞIÞ¿ø }¼}j|^øøæøl¢nÚ¶©eÓ{?;¿¿  ÿTÿ¾r@h@sÀR C`Y ?H/hGÐí`éà˜àîLH@HSÈâfÇ͇6O‡‡„ŽmQß’±åæVé­ñ[/n#o ßv. Öö9Ü+¼!|1Â5¢6beÏ:ÌzŶa—³ç8–œ2ÎL¤edYäl”eÔÁ¨¹hëèŠèùû˜ê˜7±.±u±Kq^q'ãVâãÛ° a ç¹n·»üöŒíÉډ‰ü$ó¤CI > stream en application/pdf MySQL++ v3.2.2 User Manual Kevin Atkinson, Sinisa Milivojevic, Monty Widenius, and Warren Young 2015-03-18T18:55:08-06:00 1.4 Apache FOP Version SVN tags/fop-1_1 2015-03-18T18:55:08-06:00 DocBook XSL Stylesheets with Apache FOP 2015-03-18T18:55:08-06:00 endstream endobj 10 0 obj << /Length 13 0 R /Filter /FlateDecode >> stream xœÅXM“Û6½Ï¯ÀÑ©h~I”r³g'»q6®™-W*Î$! 1Hprí¯ß×IQ¤œ£×žq(|¼î~¯»ç»ˆ…øOÙ.fEu÷Ü¿‹X³dÓ¿ZoX”ñšU¬^3E£&ñð„?Göñ®¾ Ù»»ßÿÀ—% 1átΗs“ï>Lö§o¯¾Èwožî¾ûaÍ¢=í/.ŠÖA®Ã0Œ"¶ ’xGÿböT±ß_½??~øùÛoÙKÄAÌþc…aïyÝqõÍìéŸwoŸ®LK¢øÿ`Ú‡ÁÛBñ“.êW_¬Óðú› #Æ÷—·nÃĿÿ7}¥úöŸˆôöøÏ/Ú^̧V\Sä«nþevdë€ÞÛ+^$_ ÿWöÙ"Œ´÷hMÂâ0È ö©EšáåŒOzs¢€ýT·F—]ÑJ]{ãn8#di¤»ˆ´’\+DZÆY£OÂì;ÅðædxÓ@/{ ÍШOq[öÀ^ÿúÓe‡ N·ˆ“m°‹àém”±dì®v‹¾-Nã`³éç-P¾ֲ¦3¶‚°¶šUü³`'m>ËúÀN²=²çN)`ˆe‚Û3>ývû×›ÙÊW <>ýÌ ]·\ÖÂØ`1;ÛÙf»ÛeÑÎÏ~: ¦x+lË^0¾gzÏŸ¼f¹€»ºd¼e-Fëý^’+v9³²Ë]¢0 ¾ÈÂÌoóØ56í%—żdØ•–®¸TdŠ’¶ ØÓ;6ü€!ÚÂyóŒ›â(_„]1x­Pʲ³î0ü´„DIö $¶Ëmad>ØA¤?ã-%ä9o×,Ë(ÈÛ¸ îköaÛ³J›óăCä( ƒ„D®g¹þ„ðF *%“5·,?³‰üõºE´­®‰P̶ÜÐ(ݵ~Ç{ÛˆB"@+–w.^£_‚ufb´Ž}­9/½´g˜È³Ž§²e%oyέ¸—u)_uë}_p¥h„ÃO‘ÁñsrÛ;Ò¨1Ë ‡wj^ )&öY5ª³xL±^î®üì%²]:CFzWVc“ó¸EOa͈½ü ž±ëŠ[ëöµ^&´ûû3öw{“§jÝ2Mî²ßûÕܳw%òZ,¯åb-73h´À-gÍp>øo#. >'¡ xÀ#5ü}„£ ë®Êoª9ŽwÁ< Óä"çºçÌnå)Á^¿pý™i¬ÇJñ"”n*B„´ e`÷w.²®¡2,€Trf%ÀËàde…Ú³R–K,i4Ãâ\ßïAIÊS’’aþâ(å0Á­¼vQú,ÄŠ=ÊZZÎÞCõ/úOø«ú1½Ç.1_"Z'3DäT¢+DÛç r—וCäà ÇÔ­¨y]‚ÖCÒDä(qÏ}#´¯ÏÀ‹V/‚œ¼DµYÏP¹å&ðŒ˜  'µÚ×é²üt"žî„- þÑEVÉò>FBóiCˆê†¿²l†Ìñ•¡”Û’¨[Y‘ ûRP"IUâªS­l”¸X"T5¼•9•R”+—üuþ"uG„çHb78„huvén»£ìK(>’-ô¦©’<Ohªý¨º$8H‹V¢,@ö-A÷,;!Øy üôêWa޼±DBÊ·dލëNRL— ¢xʈֈº8:!íµRúäD¦+…•Gîç]ž«ÞkïYŽ¢¢(*× Î8øô ûÇÌ×£ w¡^"‹Ó²Á5×¥Dµ¾P€ÃX/ÉŠ— Õâ4&¢€=@û(‹M@(‹£èÓ¡NªòPk#nø*ÙÌ!ì ¶éš¡Î_¢ç;Ç ¨/L+§1ªj$§±ã€­…M7X³ ƒ(wÒh}ilry8Pg“sƒúìMGóGSj÷ô!ÇüntÓ)n\3I„–Š "¬¤$ç —¾R©%¤,žAò è…FŒÂ§õ[Ĉ›ÕYšºÝѦ"oÔM?–Z=Ûô̈$i€hHÎ\‚Ù¦30×uPPAá¤ÑЀ½åÅѱbxw•Rù…ùNXxM  )JRúZõŒY‚Úmf NÜPáa<§ØkÚïOQ8 $õÑ£úø¸t+`TaeAQ[±wNÛHÄæ@©¿ðm$x´€“†Ûœk]¿}÷ðHÎý¼ÈˆÔ³ÿíw\QSv©cE›2Ÿä¹:ñ3…»Š»¾‘/aÅsjïïî\´'!|(úиE\ÐÈ|Òý åÛÂgè,x©:_yÀhjÚ{gÕØ7a²óé\×jÙ!¦ÉœÕc»àÛ£‚ªþ t­$•u‚õuïQÔ>r…3ã=Ò2Ö¢¦°§6¸'óº”äv¬Ap¢·!tD“XÀO0YpÓ”ñ¾ õ\Å-ÄT}ˆ4µ%tT¢¿Hu^-á¬çŒváû=X J  tyÖÃ+wÒ;áàòýåTDHêÓ`Å}W»+'¾¬àëõœæ…n¦§û€ý žµT¯NG‰zéðz%,Ú9×px¦ñú*“!>êwµMü%L!1°oD}r[nj3'º®ý9Äç2do;(ºÏÂKý®·› ‹qbMv}‹†Êé/^w‡Î«‰;]±hºÓpRZÚ_±RE×qò ?Q 'Í€ý(.íµíQØþ¨ZbÚmg˜*¤Œãª÷*J‹¶©ÒîRu¾å.EÏ5ŒjX$c9dÈ!¯Ó¹Ï÷˜àA¿ìQ¨fj…3T®‡ »÷h)ëÒ=í/bÒ­HEY«kçͼ#è^®¼¼Ý ÞvFL¿¡âî,ô3h•%ª8ž¡rºà´Hlz%ªÙêJÚ#õ§`¼<~ž^õFî¢w“¤AÓSE·¹—?ýoI=¿ÑÝàøŸntýñfqSº½œ`ð:7i¯‡k´§¡øÛY6\î|ÚšdÓH¬¤Íwôtûü?ƲW endstream endobj 8 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 10 0 R >> endobj 11 0 obj 2472 endobj 12 0 obj 1030 endobj 13 0 obj 2589 endobj 15 0 obj << /Length 16 0 R /Filter /FlateDecode >> stream xœÅTMÚ0½çW̱U·®“>Ô[¥~ª[-UUµ{0d«‰ÍÚÊ¿ïŒ „îu H6ãñÌ{ó^ò¤ éû’—Ñ$ƒE<´±FäÃ6T !ˆ¬€Ú}gu6ÙqGK“D›5|OL"á}òóžKtaŸÈ~¹xù.™vúó‰|òþVÉ›Yòê]©„Ùò<¢´RRÊ4…±È³ 2˜ÕðóÙíánúùÅ Øå"|óèàV™­ªžßÃìSòvvA-O³ÿ@m14\XðŒ~#U¿8(òò¤ãˆSü ó&F‘¦7U­„íÚi¶ Ÿf}”‡<Ó]—yÒæ»cTމñ…/ÊÿÄ3»’‘{ŸØä’¬cöö©(í¨¥Ô0JÉàðq ?ì>¨Ât‹>hk¼¢aûéHÈ'B‡Ô`Ü¢ª±W&@°€µÒx[£5ÈåÃñ6¨¹ÝRÞZ{¨ôÜ)w¸=ÂÊ¡ Õ6—ôÈ…µ ±ªGSB¬H•Â!>  ¼¨"í¢G˜oi³¢6>˜ÑÝn€r‹µÞayCpA74Ö<ŠÜ(‰¡àT†à9“‘“芇9¢¹B5Ì{¨hXRîÒ:Wé㢗ÎÒÔêKMCØ ÝTø+Ë2ô_ïtIo¥vܪ,z|;å´ÝzºVQ`¯iØæ<;šLIüžo½€¯*LÔØpj2êê+RÃÖP§§FÉxÊln½jÔÔŒmMÔ·FU¾ØªªÀ6SÝ8mzCÌJÜae9ñ T*û&¤ÛGvCÐTR-ÉË#ÑÁëÕà5µ²Äy¿¶à¥³› IÃÞŒcip>J>G˜oW+:Þ½“õÍ×"aÓqÂFjô!Ä8ÂÚ¬‹ƒèš5´¯a Xa|¬ÌáQÎÆ+&“A6láŸàÐÍ|awèÔŠ4€ùá¤VMRØÇ'¶,5{ãÚ^¢óœ&#²0 endstream endobj 14 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 15 0 R >> endobj 16 0 obj 757 endobj 19 0 obj << /Type /Annot /Subtype /Link /Rect [ 90.05 674.917 156.42 683.917 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 18 0 R /H /I >> endobj 21 0 obj << /Length 22 0 R /Filter /FlateDecode >> stream xœÅYÛrÜ6}×WàqKïäxŸ¯³ëTœõE)×–åJaHŒ1IŒy‘4¿§p43¼8[Ù8Ub‘@£/§Owc¾]øÌÿ+ú“®–WßÜ;Ÿ¥ ÷*N˜ñ fsÏ1+iÕÑC0<á]„‡-ûtQ_x쟟¿àcÁvf~:ÚÊTÝ5ºèsY°§VâݰNï®Jy/KVIȬU[µXÉ\Òrö«~`ò6‚²d…ºc…~¨™`¥êºR²BÊÝH J“ÓÃE]°;Ù‘š5R”L>ŠjWÊ–³O’µh:¦7ö º­Qo-Z•·xƒ~Í~P‰í}׈ K¡ÑVÜK= “6_Òîz¤P’@¡ÐóÏ·=èæ+ëw´·Òd¹&uÉ!‡sECªÑ1ªåžÔ—Ä«ú޳ÿèžå¢Æ ½#› ¼už%rcbƒÅx¡æ¢&Éδ"?ÙÉ[ð²†[zrÍ`þ%Sw5P6œEº‹â^Ô×ÜØ"\ð‘leMþf¥ 5œ-°‚ƒŒ(ûÙ^ʽ$Á‡l5@ÛçìC_×é¯]ð€î‡>`œ­Vñ*µR^Â*ØAû‡à[Ïw’5î`@ã͆íáåu¯ÊÎl,ÕºÀ¦ÑkußäòòTb»Õ}Y\ŒÜíGá™Nk)k'^ãÊòphßJöáÝ[ʆ¶CtOÎ9èH‰á!b Ö*¬R…˜ >ZûìÁƒ€ª½_åF•rÖÇQ˜-í'ߎ=ÇgË€îÀAZ‚'Ç›ª}û­|þüª æ˜UÐ÷‰½iþUÜIÐåVî º=rN”&Á@e ·A¯y’˜ûĽAMœpÝ·Íu»…äëBç×'Ê^ýp=vJ’žIßÃw”M캒ra…{‚©®A™› 8¹ø‹ªûG9dàñùYÆS’ ¥ñG¹¡¼&z”@ t€%‘ ¢Öèþn À퇴šw˜Ÿð,£š®&Žûðúå?Þ¾þwݬÅAð >÷£$žÁª”+yÙßÇmŒpÏDªí*]?ño#QžÜ¢†?ø@tðNe ǃ®);,ÛIÚ1p ž·pûØÙXÍ£†Ä~èM·Ýˆ˜ù­WD­¬ß³Bt d“Ãùˆ[ïÜ$< )3³pâ@âæ®XÏ»:±-t–ÄéÄö§ÊÂ$¸•ê+ê”~ñ¤O†Žç”ŽƒÈçQêÈâX öù ¤)”ØßEQ4_ðŸyÚ![Ûµ²ø²ÀõAðÐZEh¾-×ç]O mH³1íÈžXs]Êj@‡èÀ¶Ä¼m_IWs0s`{TPQèÏB »™£éÚ›Íã`§Ñ™b$^£cTÃY»µWV»b_‹Jå8´þJþݨºàìö0Á=*‚KM-‰+P¨³ôÅoŸ±ßjÀ§%¨’X ÈiŒãÆêeÉ™z¦®QÕ¹$ ½ÙR¶ksZ1_©ða¸HØ€;‰0¨‘ØÈ‡Æ×†eÆZ­²3­žL89žtðz2²³N¤®Š–庡ÀÀ%ì#8AÚÔý¾ãQÜ7 €Ií‘~!&‰3¯!NÀQ°‘F ÔV–;Ö×h­háþ46D­¶Ç…·‡·>£}ˆt›7j‡Ö &Iä]Èëœg¡Ï¯0®"ÏKÂøtRFGäT_¦uß[ñÄGR{‰?!N>BÍùê.nŽÐ 9Àd«Ç½‹Nkñ¶\t€£ÀCÍAɘӎ¯Å|É ã`IF„.ßšÂcôûè‡)GÇÉÙV"P"¶©–Φ:êMï@Kµú²¥Æ\ǧ-Ç!ˆ7; [kÁÙ­[Žò°•¢Á§^Z=Í„!jÊ©`3AQŸKÒD{µG¯Ñ×O Žk©;âÑrMs†énr3„™V„Ÿ“ñ-‹•)ÌRú±mæl»6cÿà yG¿Œfy;x ÇYdšë@ G•“8»-¹àRðM©ÇhHG0Àl£ØŸ8˜_/@!ÄHF]Z°šØÉÖˆ<;ýÐXÅ” u=(?Axg"­y¨ÒZc°´ƒ©g±Ž¤6}¡OÈãótãEK L1ód¦œ¦R/L’ ï^ÞükþðÄ_ÚK5þWMeEKWHzô{þ%û£§ê‰ XÍKù±c£€ût”Æãa÷À+>¡¾VïH˜(Çt%!Ï _¶ œ~n"-†f÷N-E(Yñ(Í’ YWóCMæ/m´óo_²)÷Tà °Wìå»7ðŸà_¹àì•®kÓ‘]¿B3ôÔÙI—ÁÔCi;r–š2®ùVÕz”ÆçnÀdµÕº•$‚2!R”GCÖ›w¯œk[ºB‰¹Ó†±ŵި»¾±Á¤!”ÚüÆ\Ûì$Ñâv¬ØêT«½KBÑ.Ä%ì¨Þ†þ„˜#‚[(Ù@.Ý¡bB˜a;†ù"v¡‚Ÿ¤S ,ÃǼ½°“¨_CùFÒÞwr#z´Æk 2Qºy1¾ Dë‡vž´RíxÐ ³ÇÄ -Úñù1=AÚ»ûÐñ~†#S«°²uzÿ¸´Ð²uù¶î÷&¬žhäãÐçdûa’ž[sbÃhÝ¿t~9\«²Qݰv)ëàwªÞhŸéîOídkH|hÆÅ½P¥ÀÀ5N®­ÚT/ˆ³ìOº´ÃO©=ãt•¼ðƒ0Šgã°ò7ÅáÁÌ.¹%²ïÍ;F)A#Õ|û¢&…®l.ë9ßkb¨ðÐyYM©¹yõŽítÓ-ÜèQŠƒzÁ”Ë> W‹›'bˆá6A"¦©ÿÉŽvT{n‰‡ˆ^´÷ùïô0Ï~Â=ʨU²š7ŠäF5( ¥Öæ®ãh5!„ð91Ÿµ$ cÙ;¢ywcìð|ð$¨iBzþâööÁ²Ô„— Ù o­ap{[4ЦˆÛ[X‰÷ß7sJ YWiPà,ézU ôR·ÏÌ…=øš.ZêÕP¼én„~Ürm‡¢ûu>áhÌ¿gGÑG¬3W`Ÿ#"2—S&ý]CQèJFÇTûëq†&aÀÓRù“ÓŠ2Á4æžÇô•z4ÂZ¹º¯ÖðÛÁ *sæ©0ÀÅýÞC7ah]й®UíÚš7›Éû‰St8ÑwX3ŽJ,bËuI0<Ü·ò¤L].Yz ?ú-÷ýÅs΂ endstream endobj 20 0 obj [ 19 0 R ] endobj 17 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 20 0 R /Contents 21 0 R >> endobj 22 0 obj 2750 endobj 24 0 obj << /Length 25 0 R /Filter /FlateDecode >> stream xœÅXmoÛF þî_Áe’4ÎE:½gݰ,q‹ i»$. Y:ÛÂôâꤦưÿ>R'¿È’¼:§­•“H>|È{xê§þœÓ—ãq’Á§zM‡ƒa×K– ºÉ¸ Ô×ÄôÔÎ__á—z/ðn4x9xÿo† ¡ÁÓ@ÛwW?îwâÓí«Ç×`>øy<¸xa®Áx¶¥H·˜¦Yš¦é:¸Ìà}8ŒxòjõxwvŸ Ƈ·RäðÊOK?>ýã_£q#5CçÿCj÷• œã‡UUoܰL­yg§#6ëÛÕ* ¡ÖpEŦ[q]Âú[Q—*õÝ›‡¶MCÛÍ¢Ù"_5xw8£5æ6úÂë-ÿWæ¬UFŠÝŸÖêðÛ¬²Â,pÎ ˜GŸ¨ì.^xûö¶Ç<×ny:/×f­°®Þo6„¨_Ê2’ äPÒ.KýD@–B±ú…?õ¥¼ñïE²Z–ôˆ_ÅÙä0Z?JNä—169mñ`s¦s ™–ñn!RÈË4Òyþæï‘ªÚnÛE.¤(Âi/ º¶ÃBËzX!Þ¶I*Dˆ9e00ËrðSðƒ +SâªXÀRäI$eD‘A ¿PÌB›îbð& D+}ÇÜ‹ÞèH¤Qù ‡Us!„ÕÃ._dá?9ˆ/~²Œ«bøT. 7£»Ñx4„Û×£‡ñ°ŵ÷ <¢Áõƒ…ðö×›«ñh'UYQÑ‘åxÓ2y–ŠF‚fàccQk !›‚Ï¥´,(µÏÝC“DófëcÊH3Ê%v K?'Æ)Òú’xÈÒxU¡ÛEœŠ@Héç+r€]û‡ª_+‰Ëm×¹(M…Ó¹Íl›úz‹_?Œˆ›·È*$+ù)^.?’¿ŸŽ¿;†Û›Ñëñí‹ÛÑ üü;ІHËtåO£4E,Çß·òÖ ›¹äß2=åÿåÃÕë1\ÝÝÁ¯·¿ÝÞ^ŽáÍkëc€Ñ8{ã7­øß÷îŒd9LwmϳM[EúZ,+ã8Iw[YVÍ´mÌ q³,޳'¢<È’[å0y4ï¸Mä¹*$»_°y¡Þ²p^6r€ó%ìv(Ïb®‰ræÔu™œ\Íý(B,H¬²Ù¬B¼vᴤѢÑ×rÃ.zƒz8?Ií]ÇmÛÁÅ5á]”†Ù“ìÒ>®ÛÌ1‘ηHü•RWlÒ\œ9½*ˆ›D[h9ûG4µÖàÏ Üºka‘¾Y‡À iHâÊ ‚…ŸÎEc¦¶ç7f›j¯^÷÷£80ç–gb¿h–ÑaŠ;ïæÕè| …_Šþt M¹â¦ÙáªÒ³$Ë»(ü(–T»]YÝYG0°Y5?õ½V䶉ÓÉô\ÁcTm£‘ru ™¹‹òç ü™®£<Œ›­ƒXT¶‚Pâð}¢¦ÁŒ ÷#@åâã"( ØR!øTŠ|5¬¤=Œä2ö•ZbË”q!IÅ#Ù*¡i{ p>õ÷&>K…ÓÜÃ5™ ÎPÆú+ÇÑ—Mª;¾*Ž¡ãšniºi×säÛ( â2p$aLg³ÅQ;Uî2GÇ Ú†¹o¶Ì£´¨$·ËÐD¬d¨qcÏðy%lgglñcÛ Ïs=0ŸGXøI‡•ãõ¡D+TãhÙ62‰ÀÂRRKÑYG.ýžÛsÉÄ£m!²Ð~ 7YQ‚<¡gÁÏçÁD"‡gxýùý‡I4Q”< £¹VíàÏö3–¾—àçâ^Ší§ó  ÓA"PÊðÄ’gÉzLU¾íÙÖ™AÑI#6žëty¹îÚËËkåå@ÝF“• ¥69í ÐÑ÷$ßÑ OÎ߬]œBG¶xdoR õ'E™§ wÄòô=éù¿ZÏ¡>uä‹L^+ñ 9éÿmU·8ïHnCÜõF‹*YšœÌüXŠ.–,ƒc¶–Æm×Þc‰,Y­j““Ž¢„ÓÔÄÃuE˜z¡›œLNÛ§]ËäH‘‰¯šÑ¤•>kt¨¬ì7+ôÆC+ôÓQ-Ë2:z³fõAy$ª'YNé[OÔš_YdÁ€Óµ:àNWИ㻡l££xu¨]eŠŽ‚9FGÁE»§¡&üPÕU¿LNޤˆ©;¢B$jWUÈ: êÝuí±ÀÙ[…|¨†¥a«ˆLÒMÅzçžq¨”¾a<GïDu®º<¢ßDÆm°¶föT¯ÁÌ>ÖËË€¦ðGä'1ž#¢¢Ã7ýßMg¹èC§”ÉSÆÄÙTÌI6‘Pz%ÿF-"fµtvLØÜì©j+‡<,äø÷xÖ‰Ö0{ʶÏëñdRÓz{¯}8@®i(Ó_;ÿçu?øìMµÆ endstream endobj 23 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 24 0 R >> endobj 25 0 obj 1877 endobj 27 0 obj << /Length 28 0 R /Filter /FlateDecode >> stream xœÅXYoÜ6~ß_1u_œÆeDJÔ±M ´é…")àÄEQdƒ€–h¯`]);FÑÿÞI{ŠÚô)]X…âÌp¾ùæà~XpððïkúŠi¹ø0®qˆøá¸$CàJŸ%´kïAlžðkØ„køsQ-<øeñö¾ÌÀC‡…w¬®~³¸Ü³Oo¼Ïn߃ÛÅW‹g?Kà\Ýì â’yžô…{Ÿ &à£[x¥ªNOÞÁÕo‹Ÿ®\ó¹ø\»ìÏ0øBø/b}Ô^ÈÀ;|³Çˆíúnµ7èk¸2ئWÅÂñ{8Èð8ø3|ÏúáíÜðö½8¤Èg5>ÏŽÈǰ‚{³ÑÿÌM¢H¶·Î$Ègyà €qO’/rðÆÏ?ƒK{;yÄü~knÕ…Ñð÷d?2Hz!摇ûé“ê¶…çÏáìg•:[í¶[]B‘»„3zý¡Óí#ýu»:_=¡%]eÅ7c~Ä"2ÆE<5ÖjÛµð©X±„|Š…ÿ)÷ÃxÆýQ»7Õ!Ü$F;‰©â8v}Ó$ž9ïÏ€´®*Ú¼®à¦Gw“Öÿ –ÜKx"s§« 9Oð8H$’CLÆ-ŽLÃÍÒca"?v_­sú£*›BƒÉñë‘xcÀ®5zcóVÃ‘è ½-ºhërx;JYu]è PUM›W½l`ß«¢ÓêÎ2õ ¤Ÿ$A4¦ÉïµÍST¶VƦ°BxcëV_m_kÓ2Ýæ÷¨¸?ÈÆÙäØYÙ’p„/æ‘ܱÙryA­ÛY¼Dâ³,ß¡bpùuý€n×÷y†GR º½QWJu§ÍÔý88R–[PóÎpéùÄé%wÈÀCÝÞ}­ŠüN3èc_jUx¬;Hñô*MµABºÔɇܮÁt×&móÆBU[Eipª¸CÛº»]Ê~ëÔÑ$œ8ª[…ç6Ðv¼¹z ª¸­[”.‘,U¯ì´MÙ,X yÌÇŒòƒ±bf¡à±C`/jX ­E&—È4 Q­VCšBár]d'ø†ùêÅÈ·SkjíST“ò”ôr ÂÔ›(ÝäºÈ \?B¥J É«Û]°¦íÃ÷ŽÔnÂ9ÍO!9K¢Ïû›B¡1:X4Ó“;7å¨ÅRÐyŠîÁÓX*2 꺾G8Ͱ÷AcâúVYz]–”;E^á¶ö¶#²A£ÚÞ[Ÿ |èŒÄôûQå{RIÅxž Â¥dsðù ÄÆ&‚ú#Y®«y{‰t "Ù²®ØdáMW ýEÄ^múîEn¿ÎO±á|h9†yda[‰.(oIåéXãëÖªŠ ©Ånfü5’Ë"åidªhîºPé\×—´h©”Í#ä ÁxD3\;NƒaNgAòƒð”l_hç ‡’…Té%އNÃ÷ó†ãä”,(ƒÌh:K¥=›bGGÌH‚-SØ•ÑûÓr3Ãb¶Å: 1ÝŽŽ¨îs%Á¹í>ó|¯¨L½¨KÊ9L§ ~r¢ñûæ¾VB™ìòyží1ó‚~¢ý˜ ù¬¹Ð;%½†úð€78Y¬,Ø×sU0x©íÐûi‚ÝVçLëF· ~Õm_VN01ddÒ âØq€M>=ü,mšY_‚मåîÓ›€/q„ãeÃqÚú2¯Ò¢Ã$nM³\nX»\¾´¼¤æ9Òhu>8H®­žLÄê†zIð½«c~«ó/6*ž8nGkú!¤Ÿ¾¸H_¡è¾¸H飿Übÿ¦ŒH¾ê%5,jf¨l§³ŠÄÞ:un Ü‹]ù¥J¼:¿ÁJ;QŠ|‡·=JýMo,ä«sGP²ë÷Dâ‹MD˜Ñí½îï…SC±ï€h{ó5tf”ß®4ÊZ¡?W´è¾2áæˆêkåU#ň©±56ªþþùÛ54L¶Ÿ³ëé}Ý ;Àº¿¦ ¿1À·Ãõ¸ÿÏêüÌàð‡AýjÈ„Þò™+!ýÀ3‰æ•ÉOŒæ†Ÿ6 ½$ªý`vÄçÇÜà”ß{*§W¶0fÀí ‚b»˜ô?[].þÍ’‚* endstream endobj 26 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 27 0 R >> endobj 28 0 obj 1788 endobj 30 0 obj << /Length 31 0 R /Filter /FlateDecode >> stream xœÅYÛ’Û¸}×Wtù%㲆Áû¬ó_ö’ÚÝÄåI¹R3S[¸K‘2ŽFIåßÓ Å‹VÙGã*R Ñè>}ú !™¹Àðïš.QÂ!Ý̾4c.D¼° Bp}‡°æ>€œÞêÜðö/ö%¼YÃçY1cðÝìî.á„ÝŒõ͙ɟf;ëÓöÕ×gð8{{;{ým.ƒÛÕ"7p c® ±ãñ„>n7pwõÓþÓÇ_½‚'Ïá‡(YÁO¢¨Eþònÿ:ûp{šçòÿCh6J8Ç‘c²~ò ðÙé“#ãÇQ³ gÇpÄ®Mò&…ÍÕ:bom<ö:;†ÁºQœRä«.>ÍŽÈÃ'>a…ëNfÿ+C6È"­}&A>'Ñ —K`cÎçõkxŸ©m.ö°–b)+fg¶9ž™…ÃéiYkGI½º¿ÊJus“Ë•¾ùÍÀR-`!\ÀÇÀ›7€vv÷Wž{ÿ’¾½øAËÍ ¼ó"'"c.‡ÆÚ5æ²ÆØÏõ¸-?rŠ.æÞŶ>Ëìq­GͱÅ:N’‹Íý½ÊR9j-ŒÏ@ß~^¼ÚLY,óö:LAŸA iðÔ Eº†ªÜAV@%Ukrv¢XÂ¶Ê ™V˜¯BËB«ÁI|ÌUYÁý•Êþ%A3ðg`ßàå ­ãõæ\VÝ_!yàÕ« ¡ù÷‰,At1»ãxô˜Ô Œ+Üew/2"Ôü ÿFðvÝäÀ)LNícçÍó«Í‡Ñ°¾³¬;»€—`Žq/)õß]akˆxv?Á c‚ø¤–DÕ‡QË!ûܶŸqv»;“ºÿ ßÙx.F^Mت2Wr„§œ±3(¥²ªLÝ+²\.A—ðˆ¥§t™þZ,ry¦œ¿Ô²Ú;øvYQ]LW6wÝ3ØUR×UîÈ<îN`6ûî}6b?pGp±r£šqtlOñ §À¾KUÈTge+sƒ)_iÌ͆…Šކ;gÂG †ë1Þƒ¥yg¤Á·¹çÄ‘‡HÛŠÜ®%l*ô¶$E.W ×™ù,6Û\ÞêµÐ°“÷œóJ‚HS©TV<Â*“ùR‘¸k´A:_.~E˜,öPˆœã3¥± «Y±”ÏÜ’ñl(öžôSy¹“Õ(Âåâ)+k•ï!Í¥¨dåÀçƒC¹*ívBN‘d“;¸£døÐTÀŠRïµBC…Ĭåõ¦pZ”<êIxLí{¬Àr±—<ÇwàÃs*·Äuç8rÂ$ÂÍ‹5Ù{»‡¥\ ÜçÐ j% éÖ¯Ê ‘ƒ!•j£|’°²Uo·Uƒ¾Éb/òÜl¦ÑX‰ s0Ä8IzNmE“JAåË·!%ýBßq©ãòÂpÄλCLbâò³(LÓ (]Õ©.«†*¿!6º‡‰GãÌ A…ÍwZ*C^Un$¬rùœ-²<ÓC|”·Ó¥M;B\#8 ð°Æ±qàD«S²­ÊÇJlæX 8–› »-Ž}YòòIv“) âÞÒâÓei6’KòÔ!™aD²ÃæY¶Ä™ÎNâ;¾Ç\wÄÞ%Ù ÐQxXè&f%±«ã^Šøhy˜]7Jy’ÈaÄ~àp÷5ßkúÚ¿ ‰1yM]4\Àz-7]Dñ<‘!Æ« ‡PP©‘æHäù±4‰<˜’&’W;Q™™Co‚¨çÍ'¡ˆj ïZ_¦Ë"p"NÒ14¤ôòææÀ4øØ±b£sàSV¤Òžg‹JT(†¢ ]E¡K5i£¨•ìéIjêÃ‰ÃØÃäLìð£]u\[¶%ê²ÚXÛ{’ŸÎŠf¥VÞ$FtÍ›D–I=ì·Ñ/Žâ§.ÄÑGŸ±2BÄØí½ó=êÀí:mÄ ©5Ö"Æ»¦ú&´Ÿ²ez`ã_äØh)s1dz’Xº“ Ðû­TG½Ï[Ìš9 ýJ¼ž_b¹DÊYBoÌjV$¦%÷S£XÃC{."å$“k»¸qº¤G~̽0OÓg¬PNJPˆ &Ë3 ¹FBâß`Teì‹Ò p}'б=c‘om^ãnÛ¡5¶‡ÍW.¸Ý­U³]ámCGdo$Ú=%-—’PÃÛ'Y.h©Fξ{.a˜f—nåD¦á9Ø_åÛÛŒÙxGÊѲ‘Á¸G}FÍ”¾Ž©EàÅ=§þffŠüØa…`½¬D*±y!Ñ¿3Í•0v8v ãÞˆ%šÐžÝ­0§ØR‚ºÉ ^rvÀzæºûIÛˆ5Q“rÀÖ¢ŽÉ 8Ž@)juœdf¯,®0/cŽÛuãÛ|èžqz.e Û Ã»c.Œm‡¤´¨t«OM3v¡A;pƒw·XÚ†vë=œ´‹C§¢~Q Òj“à16Øô[¢ŽL¿ o‰F tÛ+ç¤zMg•cŒF.¶á$õ‡:Ÿ¥9òLFE?ÜõË×v«wîµ÷0 6ÆÃ‰‡†{Qí°ÜR9KÓ‡æù¼iƒ‡¢²ØñP=݈%íI/ë’ñp˜ÀûLqoÉÔ†2ý¥ÎpãBzu.*Zv¸ùOu»°iúpJ»Îð 8tŒ³žctÂ;èÅF+›yuÜQQ>wX°¦Ú“$ä—†µÌ·«:Gª–mŸ=‡msTm%­¬…Ãþ»…úæñžo+ûœ¡“m†æ„mìošVYpìç²#ˆ¾4U¨Ë­¿›©LÚ¹K’¡W¾ßóJ‰'£ê²'.-XÓŠKç:…±Ð±û¿(®çž³ÔU\‚›¤ƒˆ“5¿ÿj ú >'šÕù¯‘³ÿœjç endstream endobj 29 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 30 0 R >> endobj 31 0 obj 2210 endobj 33 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 72.0 380.456 null] >> endobj 34 0 obj << /Type /Annot /Subtype /Link /Rect [ 192.54 678.764 235.31 687.764 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 33 0 R /H /I >> endobj 36 0 obj << /Length 37 0 R /Filter /FlateDecode >> stream xœÅSQo›0~çW|›šyBH^+u“¦uRÔLÕTõÁIL‚jì›2þýÎÀH–׌ù¸óÝ}ßwö[‚Óï“_ÒE„M¼õ¾i„xÖ»’Â)‹èíÊïÑ_‹–n{<:àø<=Sp N uÀO˵ÉÁrÐßGøÕûsì‚ÛUðùK‚c•% ÆyÂ9CÌY-üaUàéÃ}ó°ü~sƒ÷˜E,ÂO+KÜ ] õñ«oÁÝjD-£ÿ@mÙbè¸øGô¦¬ú(Lù828ÿÑÛ6Œ;yºÞ>¤úök¤3;>Ýz‘?ÒàCã#rÕæ—OGš0ïcóѹH/ŽÿÊšÑ÷>°‰ÒXçþlHµ£M{J£ˆMî~oä«Ë¶¿èÁ/ŸÍ¨ä¼O½m°•™¨”›Àí%T¾.EÙ]šÚ¢+u¼nqš$NbžÕ’'Ži³˜Åœà¦$ÁYê½Ôòngî õÆTÚÉÒBhȲ4%Ã/SaCŸÂ¾ŒAXéOºÒ¥ OZeJìkë¤ØNgh¨²Ê_äëʵµ$¨eIM SJÊÉLYïgøaŒV¤œñ) E7ªÚJXWæz‡Bkâã¤Rôy†‹äãò0ê}3€ZØnº Áô·^*¡û\ó*íÖ´t¼PÛÜ:j\åvµtµ”Þ—eTC» bÑeƒjË¢ÎÝ>מTŽ$Y+³yaƒk´ þ:|›¢ endstream endobj 35 0 obj [ 34 0 R ] endobj 32 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 35 0 R /Contents 36 0 R >> endobj 37 0 obj 567 endobj 39 0 obj << /Length 40 0 R /Filter /FlateDecode >> stream xœÅYÛŽÛF}×Wô£Ö0¼_&Þl'Ì™ÀA6”Ø’zÍ‹†ÝY¿§ºI]HŠðîƒ×6, É®ë©SUœç™Ãlü½¥(qÙª˜=·×¹Ì ÛKAÈßrV°ö{Àrzêì‹Û}Çy_¶ì÷Y9³Ù/³?ÿÂÍŒÙ8°ŸÙ}qúðãìã™~ºcwý6ÛÌÞ-f?ü#`ŽÍëSˆœÀ²íÀ¶mÇa±å¹ ýqÙ¢`¾úõðøñÃë×ìų\ËeŸ$¯Ù¯iÙ¤ùÍ_lñÏÙÏ‹ ×<Çý?¸öQÛ`|¡„»øY:ë7ß¾¼s†ˆãõÓU­Ð3×pÅè¦[y›ÂöÓb¾ÌçU?ì“ö¹—ù®Ê¯£#òpÅŠ/PáW³ÿC6È"é>:ã‘9þ…;xе<'Ü]ßx„³‡O>0!YÊÔaÇYQeb-xm܉ŠÍ<8ê¸$&2b[Îvµ(ÒúÀ2!•(WJT%I­JΪµm±û’Aãœ=¹®Gjñ騞³ýV¬¶,]¯ùJIüÄÕÕw¨¶JK–óMšçcá™]~سKªªæ^6yÎ^Ò¼áL”LmSÅVUÞ¥Å`zÍa‡+™Å.?°²R[QnX.¾àqE'Þ¿~m ´…‘e;A£ æ¢b¼hòTqÖÅuÎ:ÙÕՋȸ„vÎÈÅ¡ŽVƒ;Õ^ßZÕ<Õ±CкPêx‘é2ç:f/¼–xHŒŠ’žQÿj9rCZZì±bëªÆ­Fð9kÝmúBñZÜ?üqÿ°`Ÿïyøù§6ZmäýY$çÚjx·ë sfMâô¬Éø*Okã é¯š7¥›’ggÅØÊ³'€ [­Àñ€ ?1ÞJJDg¦g9À&"”˪Ë(“ÛªV@gš‹T"Áä—l_êi€¡8áQô<óá³Æñ·øÇ¼“$žï+TrcKQ&<#tŸ,ìwGDZ<Ù‹ýhDf.–?h35¤¶Wíqmˆ¡&:#R,ö€WˆÍV±}Z**ISÛºj6[:ºÈ9˜ßQ,š4^R¡+bXš®[‘ã#AKÛ‹®ØD)´A‹µ¨¥ºE<¤l#¤I‚ëzÉÓrÓ¤”R®NdQ•”úQ庡z‚Õžs:-†µéºvϪ5j½©ù9ÄÒ2#½­X‰BÓ %+¾SVæQ‚wýÀòÞ$Žâ1†oJñ ÔT8¸ô’…†~Óá§ó¶‘næ^Ϩ#Ot+¡a?½‘ó“H í©£{‡Qƒ¯Ó&WsÓ¥OÆã}/éÿ9Ÿ–†¢P‘{=ÓjqSPÓ#‹dÐ3ªËbBÌÓ¯ZÌÙìs–Ó|i”]oéߢ®-N†Ëõ⩳§Þ¹j{„?ºzîÚÈý‹×Hc†(±ê^¾ÃPüÅb( ‰ ¦›VU6½¾v`…‘éßõÆÖ·nË!@×svqÓØxÜáž^]4å§›¶N`ÅÐæz¾ßñ;ÊùÍ›N}EQæ#GÝв#/‰üй<ŠöüÔMO7= £3Aàƒ"éý¢ë71KÕ}Ötu[/õj/VüØz¶iFcjf°fÀß/áëàŠÀ)TP¡çØ0 ®$˜:{×± ë5ª"†1 âž” $&Íò¯_)èÀçá¨CüÌs}¦¥Gþ‚­£åÚóõ(²Ü˜TöSÿÀÇà跨ƌtœËÍJð¸ã+‘èQÏBŒX^Nd9D_CS¶Ý0/'›mŠ‘f_1½]êaŸh©ª¿R¿¾z‡gÿP¼TÙÝÔ&HŸ¡çê’ßÔ\ÐúJ†íäòÛ,Ý!½ú%™Îß!Zç¥ÌÎKýƉtïHÖ!Ê4ê`‚0ázh‘Ùôº`¨âÛŠ´lÐkz•z“Œøºq˜‘£Kj&jì‰ùa8C…¾ßÓÚ-Ñ×gÿÌíÁñorÛ¶§D˜÷K®hFhý¼Ý5õ®’¼]qN/¥×)-À]Í %y¾&ò•D±e^´DÉÿèS"XQIuöˆ³ÿ<„„ endstream endobj 38 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 39 0 R >> endobj 40 0 obj 2378 endobj 42 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 72.0 158.13 null] >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Rect [ 498.21 202.244 520.99 211.244 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 45 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 190.244 88.66 199.244 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 46 0 obj << /Type /Action /S /GoTo /D [17 0 R /XYZ 72.0 637.417 null] >> endobj 47 0 obj << /Type /Annot /Subtype /Link /Rect [ 253.93 85.499 408.06 94.499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 48 0 obj << /Length 49 0 R /Filter /FlateDecode >> stream xœÅYË’Û¶ÝÏW`yoy†æCÏd•qbgRv9¶'å…¯ ‰È„ £(_ŸÓ PR3Ùù&®’,ÀéîÓ§»áoW‰ˆñÿ }Ì—©Èë«oá·DÌS‘ÍÂOÓ™H&Q:µß§¢¢·N¾¤ý7|ø—𥟯š«X¼¹úò cÁî*nÇ‹?]}89ŸžÄßýüXl®nï¯^¾žŠ$÷룋’iÇÓ8Ž“D,¢,]Ò©¸¯Å—ÿ¼ÛúðöÅ ñ˜Ei”Š?œ²âl:Yý÷«¸ÿíê—û3Ó²$ý?˜ö1x[(à)þÌ#ŽúÙƒé$>rˆÃïÇ_ùÀÌÿ†_üÙô¨ ! ŸˆÿêíñŸOÚ͈O­8§Èw=üivÌ3ü-ÎX‘ÌŸŒþwvÙ(ŠtöÓÆÄ#‚ïLWªo¶Jäf«•ûQìJ])Ñ– ß ¾ý/M³Fµ;cT! ÙÊ•tJ •Åà ÞÕÍFÔJ6NÔÆµÂ¬EŸ<¹lÄJ Ñ*ï¸@i<@¤µ^ë\«¦²)„kuU‰ÆàoëµÊ[lÕäe-í`»®j‹ã×]Uí¯ÅíÛ÷·N´ k[C¯ôæZ8#jù@ »¦Q¹rNÚ}0x*K£,#EXd™`•Äþ´‹Rh, ¨H|.u^Š•ÅîNt8ÛDQä7}ù:#NLa˜Î£É<ƒÑq°ú£ »‰W¦kZìÔ¯¿Äù2Z&X¼Hæ~õ½òÑèâ̶UGƒ‰×beÚRô›.G"8¢LžÍ“ñþŸîzN²˜>³’Cøä©i<‰ûlyáÐÖ>ç†t?½VH°Y×ÛJÕà8«0ÂÖŽx)Êà훜¼­Š–É`G¸qcš›‹{ߺ¼Ä‘¸%ßæ•tN9áJ:œ’ÇÉZ!$…²ÕÞ§G^‚©®¾öÌ6&X³UV®*ìu_ê1!“8àñ©Ö–²z-ö¦C ×ÚbEv’Ô¬þDÖ8±¶¦Æ±@ªìµÐ­(Œr ’7EfåmÇä&+=tv>§:¿lšj?F…Ò9òÈo ›EHÛÑ>ÁiÞvÝä–cã°»;Dp@"qÇðxQJ'µóÛÀËzÓ(ÎnBfǸPÌÎqé– EôÉú†[jƒ Öªð®PÏ¡aÀxA¶Ê?7»Æ{Ê;9æCÇX¥¨L;†• iŠõ[ çë\VDWc[(U1‘Žw^㡲zT piºÍ3Yœ&é1ÇÇ}4»~`¦µÆ~ùúdje1¶™be2™]Øþi; ö=‰#˦Q MâåòÂÿ’ÙÙ®\$ÆŸ³øPZNåÏ‚Ä~ ² TešÎiù¯FFâg”JFÎßꆤögðò½NáÏå qÉ&AîÕ! °SÅ"R¢ÔÉ >öÄlÔÝò°Ò­Å 7Nÿ Ư*“?°†Y¹C]ãÃ9) o(Q¨·‡êLt ÛŽ‹.JÒ9 ”R@’Äy.‹‚LôLk0¿³ü€XËÇ ­†À­T.;dT‹•j[Jó¿5HWÛ5-Gž°/{KÆÀÒÙØE[ "u¤5x¡éꕲŽó´UµA½‚<ö™²e:‰fßt¶¸p2jþÓÅg¶ŒbÖ=ßx)uàPx‚öQHT 2B¢ý­Sv=öC¶l‰ FÞÆEdÛUÐ#¡ª [AŠ¼Ð’sqr¡uÁÂO˜ÅQ’&qœ†~òLçd¨íJC%‰èw¹µ\ÃHÐI Ϭ  `é[Sïèö®Uu$>0D!·D¥• £­ j× ¥p¾=ಂMÅÞ‹÷Öbr J­(ößSœ¢¨º’ÛjŸœ0܃6¦é3€jýI:R™;èv»qà²Ú:'‘_.‘3um¡þ’Ôòˆ­2ôAÇïÈÖB»¼Ch)|Ä>úSË U³æÛ•Ì©»ß©•Ûm¶-×b6Š=†Còy‡ˆÁÛ¹ï}SÊG–ßHå¦à¿¡¤ ›}ßäWsÃrÆ2nš¨¯‡SCc‘W¤æ?^èà—cXVy…ªaˆ0 l‰ û~¤¢Ü:äºQ>®~áÝË÷KγNÏðSíc\“d€‹ÈÓs”=óQa(VÜKùi ± ©Ö7VÛr½r{à˜úÞ¸-rDŠ?>zí¦Tãšf\38S6ª¡¶üøõþÝ[t¼Aôñ\ƒ“7&ØLŠ­D¹dÝæl1ÌʇkáÛ,]Ëq3—͆|çð+¹ø|8ÎqC/!1‘ó®êì–ë5O²ìm„vMá%Rðµ0Ý]aæës6²ž¶ ¶ÈqNÏv‚ÌiVC’‹ß«Îùôðs÷¾ „tÛ¹²÷nqh6N-Æ|·Ü,Ò’RoÊ› éU‰J6›Ž"Ëa ÉN¾§|ÄÐŒˆS首Dÿ ¤²ñƒÊ™ ôÛ\ódþêÅ‹±PMâ!Õ¹qòc=w9äpÓ°4]SÒµ7îè¿ó™á:8ZƒÊNå`ïûÅùzp'3¾6Øx ,r΢ÅDâý8†MqÂhÓ\nYÁIº;]1y|4i k­©ËÇ}¯• ·¥MǸÒ!ÓÙ¾PõŽµÖ ÏxùdM2ôÌËùÌ/Ÿ£† µ8€D®p…Yi” ¼lÉË¥éBe:ïe^S ¨IäZ5N“Ét1€„±KÙóFõàX„•& ¾Àñ‚~SR­Ði¿•Ü}Kcaè¥4å31÷ÏŽ«fUQ§Ì¯Íã ?á†Á öbâ³TjÀŸCc-jòOGS-Ž ~!…!Vsr]ˆÉ2‰¦ ŒR‹é$\ÕÀ(uùÃ’cåŠè_œ—÷×h”Ž‰à¸§ì &ô<Š«ÂYkæ‰ój„jgT¾a>IüÀ%Ý>"Ð[Ð[n'Å«cÍGþ­¬Á\F2u[•kŒ´Õ³¾ — y)iØE¨9Mǰ’é Ù‡òB2Óo‹ó(>ð͉«¨лЇZÊÏàQÌÕZêÛä ì4dõ~-‘‹Tx&èêÓ8 Áchîd†=µ!^¼ ×É,šÑx—.,à*ªUk¡Ó=›w³ßsî·èÞÃÏQw(¾|ëÉrÏW£<’¤únq<„M1rlP5_.IîØ,ôVåe£1¿¸¹êœM¢yŠÍâIÂßé³Ã0Õqòç¦êê§§/lº˜G ¤2ÖЯ µ;w(š/‡øf,¸«sþzK7ô½ôù6ç˜êÇf•ÒSç¤ÖXɉª%Ü ZqªŒ}·\€½zsG %H¶–æ90Q ùú‰®”éFç8×ñ½ež±¦ÌèÊœ4 ‘?â± Æb¸ö¸œèƒ¢úì”/žÜ&BÒd›—4’IÍ7WÔYèg¿®eLÜÑ-&oýÛá`1ùóLÆ× šL¸¿æé/ Ø•”¿ÜäP[>L½d‘DË4 æã­‡ÓŽ·â¤$/ƒí²lÅ”oóéìÂv× Y„Ë‚#kpþÒh>›Lø¥™èvгè„Å£ªyòoG®þ3D–Ò endstream endobj 44 0 obj [ 43 0 R 45 0 R 47 0 R ] endobj 41 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 44 0 R /Contents 48 0 R >> endobj 49 0 obj 2765 endobj 51 0 obj << /Type /Action /S /GoTo /D [50 0 R /XYZ 72.0 205.76 null] >> endobj 52 0 obj << /Type /Action /S /GoTo /D [41 0 R /XYZ 72.0 564.41 null] >> endobj 53 0 obj << /Type /Annot /Subtype /Link /Rect [ 500.16 697.5 526.83 706.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 52 0 R /H /I >> endobj 55 0 obj << /Type /Annot /Subtype /Link /Rect [ 203.63 570.652 307.8 579.652 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 56 0 obj << /Length 57 0 R /Filter /FlateDecode >> stream xœÅZY“Û6~Ÿ_G§2Ãð¦ä}²ÇãìlÇIY®ÔVœrA$a‡‡Ìcdýû| "xh6µÙ$Žhôùu7èoWsñï ý$KŸ¥ùÕ·nÎc‰Ï‚¸›Šbæ…Ž±œuÏËh•õà›'üèExس߮Š+—ý|õûx¹a.6¯Ü19µùÓÕ¯ÖùôÆýÛÏwÙîêíêê§÷ó\¶Úö*ò"Çu#×u=-œÀ_Ò?>[åì÷WNŸ~}øñGö8¾ã³Ïµ¨Ø^´<ûá¶ú×ÕÝj ZàùÿÑ~UþKeõÁ‹(t‡o,8Ï÷³êÀ@ÏaFŸM¯²Î„ݯfD?jyôïE9Ü^ ×–bè"ëá—½# 0ã,^á…­ÿ7«lbE:û²0îÄÁ?•¹`Q2ÁŽeUX³ç þ'kÖT¼¨3ÞȲ`Ï’3^0Y4¢ÊÅFòF°º©d±cÛ²ÊÙQfKy[ ¶á gYY×û¸~–e[gDU°F|o´â,†|wÄQGUQiNQ3^ &ó¼-ÛVeÎU¹ÎD^ƒÍh%v¼Ú8ì7ñÅ÷}¬æY]²´,¶r#ŠF‹dBÙHÂ#fBáx1€ ˆã)_o>¾pøNt,½Š¥¤€ÂÔ‘ ü99Qà$M׋»“VÐÕZîv¢n:›@Æ£löl›•0G±»9”8„m¾ôüEíyÿðñÍŠï>~~ûpÇ °Å„óåhˆmä†íù3”4á$ŽÀI°\& ÍH§h}¶Ò44^fÈöŒsá5+·F³×lÝ‚að.2)p·ò»€B#‡‹5®€S¸±ÃKVª{^³Z©˜p”$ŽžEÑ»˜òKÅÙ7{‡A ä, ×CröT”ÇÂxLgp ŒeG†ÆNÃÚ‚8ÚÛ§&ý¾Q@ù‘ëxžÙ6bÖèM(C¼»»½ÿðæAÙâš÷2Ý+F€GøçDôÅrH­ä´Ö”ŠäÈd]·B[@6›Ã‘S4Py…üˆ"-[Š`±±88îOd!¡  ìkËD3uXÏó/YÀcCËa•·òñÇŸK8Ù9L•´ZˆBƒ¥öÔŒpƒ¤ª"•<;«B±•9Sa¬±œÂ›çCÖ2¹þ©þ–}Õ°¿hÈåÌ^8mU‰úPB$p{*ÛJ³N÷"çÊ߈s{5”°ƒw+yéP‹Ô yìQT)¯§~îÎN–Ë Iôá]€Q|)Å4 S§Óy¬à9ù‘:ëÀSA0xÈð°aëk Di  u£Ï¼’¼hjâŠd·_‹‘Ò̹ &#®Ž??zÍ;ÉɇiîÔxNL.3 àkÊ?$ ÉG¨øPLlv£*{_V†Ô”B-&蔦V÷ÿ¾\±ÏŸî~¼{Ç?®¦²FËÍÇÏLe—´ˆ@RÎwvM(ù¢#"OA aäÍPÎOðŽÃáõk噲8!‚¿¶E-wpð‹.ŠDãø”ž– 3%ê°û-9(ÛT¥²‰É”Àæz*qâHЦ¡ÏßRÂ$Êúi8 ag‡3T_”ökoë9‘Q•åÅÒõf(Ï@ÓÒwb×G=?¬ß7¥0è†r%JQèw¬†Q0TR(xZЊï½{êRƒ^)hBa2á5…ÈÎT8á€'`p¦Ñ‘¯ÊÄ!8/NG§ÄM^ÖwL¹Š‚!ö&ÔÿGß QîÀaQMH^“ΘøÎ)…š šª¹Ü¨0›Šëų&8ƒäN¢6¨Q Tz¾yqÔ:¯§”‚…ãjïr ,áenÝ'D&¶[™J$½Ók6'ºª,J–ñŠj5à_Á ­y¥’Ø…N¿M™{êor'Dïèù¾÷"‹“u¿”UÃ×2“ ¸“[Zà»Šçª  U ü/XÞf¤}#·[A)Õ§ºA=£%ùòJPQôŸ8ðoT։Û5’ºU¦Í0…€2¥2 ò +°•æ$¢ îH?ð:Õd[«¼8R­22 ¸ÕE¶,-7¦xÇ,u 3ì,‚;)ŒϘª=€‡.G¾©ÎçÕ>]w {+•kÞoÏî@étƒ*4—X‘L™e’¥MKY–f+Y?Qf¦£Ui¡[P±þDTRÈ3!:†!¥¬K¬Ï kKÀTÿÕ¢‘¹˜‘ï/‘C/zQþɺÛ.ÝvŽ7oA*ê¶R‚™1Ò›#Õˆ¤r Ò"ÙTÕ (’‡\ôI=ÿD 0:…ƒè.Ã2NŠà;ˆÊÀ])Ù©ª$¯Ù ‹Êò©=¼ç2ƒÅ÷TÊ`p†¥Ø±ÛÕMÓJxeâ{ËE¸ˆ»j—òaj둲£ÌÑÔ••ŽÅÎŽdBêGxžú5ÞªYÝ‹ìP“”^ÔÇÀHL-£SèµÊ¥%dæÜW‡Ž:_β1ÝÚl¸Ø(ÿÖ;:œ!w7¶¦y2Ȭ:C7ñs.¾4~Ô¦9G©¹Vm¡ñ;Ó©†­«²ÝíÖ_£ÕÓ½ZƒL÷1bΰä-G,Á¿^(b|,§Fnx3{)™nКäür±¢lâ*üš¡ x|cL¶•BrU¨g'¥ÕnÊqq=Lêzå Ó'ÒŒîÄsÕ ç 1#ÍÌ~ ‡ú a‘V†±O¾ŸšÈœ‚Ì â„7e—?¤ŽöÅ\tP¼8Ñ7¨ó0mZU#› õå ­µÒ-Z—mORjtQÏoú.fŠ^œ!PM ©Pß ‹òüh³¢›s3²€SU0ƒó'¸3Ê>ÿ|5o8Þe5¨8M•D#Ü7¡A6Ðá• Š·¶&T6í‡]pv#n¯äÖ³nîkæsÑÈl@WÚ›{!ì×5r4Ò®ÚM™ï`ý uæýˆj¤ÌæUÃJ7Ðg¤ C]cM­ìÅHA#VmFަóí§Taráä‡5â‚¢ ´QÖRT ݺ “S ]`ùÔ®a4JÑæ¶³nSº·ÊÚ¼`Ï> endobj 57 0 obj 3203 endobj 59 0 obj << /Length 60 0 R /Filter /FlateDecode >> stream xœÅX[oÛ6~÷¯8Ë€,iS™ºKYS`½¤k‘vË’bš" %Úf«[$*Ž·î¿ïP”c[¤»î¥SH¥tnßwnÉÍÈ‚ÿÉ[;䣛þ̆Ð7èülÏr|È¡ö!“_m<8«'¼©ða¿Š—£÷ðe #2T× _ŒÎ7ìË7ä›Û'0=½O}° \N×Ù¾EˆO±mˆ,׉ååÀeïÞ,/ÎÏ>„[×r,Þ5¬†7´hivø._^\n…æÚÎÿÚy烊EîàOhu¬o½ð=²ýf##îÏ×§AWቲ-_e=…ý]9¢U<ê¾3²ƒlF±"ßÔøîì]<±¢­¬°£ìcÈ4¥íÝÁ-Á/ç¼vGó*c@³¦„”åeшš ÖÀ¼\€(¡f¢æì–˜3¸¥Y‹ß6 Ÿ,•¯i´å#^$5ËY! )³6/€DU³[^¶BmÇ ÜáV˜àeaÁ–gmƒÎˆ90eT´5[©ËŠ'4ƒ]IWÐtÚ‚ß “¯ž70-k¨ËEƒK‰å•ã8¼´ÄRKsÊs-×â8ò<åÔÏL~߀úr|aumË&òr#]º¡g%M¯?Vlf%UµÒ¥w£ÀUÊ[×u¼v!ÂÌØ¦}ÙÇlª¯¿G>²6e°—äiÆ fÍ÷´hC× ;©ÈJñœÎXcŠ\+&:FC¡ªæ…H© &9›`yt½Öµ‚§˜sŒæOt!ǸØ6¼˜AAsÖT4aЈôG]ÌõNÅòes“U•A4ð”^Ô‹ŽÇ*ñçcÛ™ñ\²*“Ê|Ų”g]¶É¼ìY·.>ñ ÒrùZê–BZÊ)/®®ï•%e‘°JàóFIࣨ—2"±U´hò²Õ-Eþ´”` d)ë¹ÍYWcG0ã· kžžýòTZÇÐ i‰Êâç)¼þõÅË#àB·˜½hÅ×ñ`÷hëBºÛ2½Ü`N ˆôŽ5Ò&e™é_ÛÁ€ÞtEuuHV¤ãíz’•“}djvêm2§õƒ°˜/‹R\êê`ÀÇ_ú7n0@ðÂ8/ƒ¹ÕñxŒ!$ŸÊ[VO³ra%e>ÆvÔÈDiÆŽã»ñÆ’^]¹ì•Ë´ãSìu]¶­2ã–Ö²±öjѰõöR›‚¢-úÞa<­àDW„¸aãªÖ:«±½‹ë„6â±Ió“«$À’-A&õÕ¡^oN"ê^~¸¶Â§ Dþ'ëêá1öïN¢ÐÀ‰¼(®áö6³rYÆœc2†¾KÕ0Y"{ãYñ±µÆñZýßÚw.‰ x³¬a*Œ'­Þ“ðÝ »ÓSŒåógP§vú<’ btíh1N9¶†´Äi)&l†srÁÅ\¼`Ú¥ëD Qº‘ìÍ(s–'yÕÅ!8‚½×§¯N÷ŽÀÃÈd”xÛß×{±æûˤ÷ÅŸné5CçÇ^¾]ßõn¸e0X”ujB-ˆ ´P cºj‡£ø_ó™è¾x„ìPõà®ÄpÃÕáÑCð\b¡W=ÅíѤÛ#ƒH zC[Ÿ·ÝÜÄÑv? ' »žömªÆNCv«¹L!ãB …¢Ôç¬ÙÏѶæGnµ™43)±ŸÖªV°Á.˶†)¯±1T8ÑXÝö³85 1/¶Q~iˆùÄÐt¿^Ë,ÔfÙj‡<>~Væ9-Ò3Üæö¡_ëŽt¶³#ßÕN×ÏD\Èî?×r-2 DßqÔèÉê»N74íăö½Z<Ùî&×´ž5’ÊuG?Q½À ÓsP*v·@ÞÞ"U2䔳ן<¹ú<£YÖјeýŠoßu›ŒN›ï»Ý´ˆþ‡zñqÕþšzñ#× F𠘂¤ú‡¦[HeÊ©ìêè…ŽVÀßÆÊ 1. ®Ç®ЊHìfäqöèḕë(ð~!¬\©·’k|'õáXbVNxAë¥i´òb ªÕhWzMü¸ô›‡l Y[W|]›Æ;@yðÛOoT縯æmޝ+Ù+,9<^¥¼ÌuC®gà¨7Äîª Û®22½Ž¿f»³í J)ð¼])½ñç„óÑ?o÷ª endstream endobj 58 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 59 0 R >> endobj 60 0 obj 1659 endobj 62 0 obj << /Length 63 0 R /Filter /FlateDecode >> stream xœÅXYsÛ6~ׯØè!–™á}¸Nì¤i2NZÇÎôÁòx ’Øð ÒŽÚéï uTÞRÙ# ¹ßî·'ü0°ÀÄŸ~ "â|ðÐîYØàøí–çƒå¶9´k2þÔÖÂîVx‘ábŠ ï·wx3_x˜ûâÄË׃«-|~Çüéø&Ìç7ƒW¿z`™p3ÛPdy†iz¦iZ„†cGücÃM·£O«ë«Ë—/áÑ1lƯŒVð‰ ÉŽïàæãàÝÍŽiŽeÿ¦] ¤-Üá6þ†ðúÎ Ï5wïlEÄz³+¹‡;›ßÊZ¶W©ˆ\J{äµ×sc†¹mÅnˆüTðþèÜ1¨°¢^ïÿdÊ/rìµ1Ƴ·c €a™·Å“¶@ûyõ ÎW•$I‹9Ô ³4£u .0X]ñ[“‘\à7%ùé)^'£ÉñäXr²e†#°_Á"E„±t^H8RC’V4®³Ä|Ųåå?d÷Ó¬œŽá‰y,ÓDÂØõL3س ºjŠ˜ÔQÓ´ Õ R@LigÅj(š,ƒxA*×´2 '0ŽaÙá.FšÏ .N|Ák¤ Ñâû˜°ú,. ½Í׋7“‘"Û ŒˆÚήìîó|—tÎ7œqè{î%£J¦ÍLzar|ò¦uÉ/ ö{äbAãoðñwï%;³²FŠ´^©dW\Ž슑ör_­ª²RUÃ>gZ)»ÿkIç¸Øfu Ï…4nü£ˆŒÂôU´nª‚‡U•±ÌÓµ±Ck÷ÕÕg­¨‡<š1ªQ˲#=K‚)4ˆ»ðhxÔy² 9åëád2„”G5¦÷Ç) q_•ïDH%Êw|O6B9Nœ@z&h‘d"Ü9D"¼Ðÿ!¾©!Mó\hªöÇy’¥5–Íõ}ÃÈœNFÃ[îtÊwC]ÜZ‘©1µuíŒ ÿê;¶iªh;֮Ѝ”úkíç$-&üY Õ<‹€‡¸~¼½ÓÔAÛ³ö4QƒÅömQ˜ÃÀÛ²Óò=­E>N ‰cÊ,±Jå˃YUæ˜vyÎ *gVSmMÜ®Ë+ýNòeFÙéé…”r‰B:7MFÒ@nšÎ/vh‹Ê‹¹±%[dò³N„.cíÈî ÝÖ§–Šå˜¶&DUŸ:¶£±·Æ¢¯êá8ŽFÿ–ùwXɧYÊ¢K`i+°=¥eÁûßY{‡ÂGmËp+×ì_l¤"Àd¤qK2•a¬Š÷œžœ]™6Ù¤‚¼%Œ×{ ÛßYb?–=DC~àöwŽK6W6N“`í@d:¡ÛÃ~šc]`¼*nQÂ;ôvþÔª¹=¬·LWk±î|þzy©-8®éöp+‚›I÷ëš5µ޹ìñ@ß®\> endobj 63 0 obj 1603 endobj 65 0 obj << /Type /Annot /Subtype /Link /Rect [ 341.33 532.781 387.72 541.781 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 68 0 obj << /Type /Annot /Subtype /Link /Rect [ 497.71 532.781 528.27 541.781 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 69 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 520.781 123.93 529.781 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 70 0 obj << /Length 71 0 R /Filter /FlateDecode >> stream xœÅXÛrÛ6}×WlÕ™Önlšïjò×qÝÉÍ—L§e< KHy‘ARŠÛôß»KR–(IŸRÙcÒ °Ø=ç`w©û‘&þÓÅDéè¾³Àg`{íëåÌ…Ú{šµsÃ6wxi&áÍ~e#ÎGï?àÃL\°™ûæêÅ×£Ëýé‰ùÍ÷7a>z~3:yá‚eÂÍÝ"Ë5LÓ5MÓ² 0lÒ‡ÁM ï^=\_¾|òV¶Á ï ¡àÏ*ž~€›ßFg7Ðl‹ý¡]Ö>4±á }£f½óÀuÌî“E<ŽoGë íf Gš½éQÒRØ^GšÛ&žæ:‡¹ ÃÜ¢+‘oºù°:|GŒ £ f²ÿ!ÓX¤½ƒ QÏn'€a™.Åâ6±~"^F ˜DyV”ðœÇ§y¶ªyö5=„¿›€wìX¾a׆|okˆ>''ð+ÏâDÀŒÇ=Z*4(9×ôð๬k"JÁÓ§0Þún¨\M`LãBë/§èý‹»áU³oû†Oö-tío>ãé´T¢TR¬D 1/9ò/±Ýeû°Ç¼ã!!0{Àüð¨Ä\±gµ¼¥Áû?kÖÝ !*îuô©RNÒ×xA'ÿhÓ|TMóü! œ}ŠÄ²üýA0€-ÒJ¶Žy’À]®€g— Jœm2ëº$Â`ÓGIœ}Y:(–"’è* ¬ÿŒ¤e…ÿ JËœg{;ç©5löØuB qƒÖnk³'óг ÓA¸aKÕë¼”‘€£†µ€ª@i"¶ Šˆ/¤<“Ë*á%â¾^ˆ f•Lb™ÍëI¯¯Ï®nà¾êø,_ n²ü‰ˆ£5ÝáÀÝs!}(î“år2ÁËí,Ég´üc…ªáðDò¢¦=Ïäwõ¾ÅRDOÁ†ÿ½M˜ÖU7ð\¿g¿ ð°ûz±±tûŒ*7c=+‰ªŽólÊ+ñxUæ)G÷½pÚ2‘pËñzlÝWˆ|6×ñ ý½™˜û:ôé®e„6ºkÚVÏB"C<àIl¼=ÚpòˆOŠœ(/U¯V ”9,ò$Å×€“[ŽèŠ=ÿâÉ躰Î+42S‚ÿ q%ÈlœW³UÖ€$Ç'Hï&Bw I‹Jl±56š¶©:{ªf¶gø®(ømî¸jUÛJùƒ¹Sy Ï_¾yŽÕ#©Ò V’ÃéùÅN ó,Ã÷ñt‰åHfˆjuÉ¥"Í*^?.¹B°)ñÉXÔZ[äkH+TŽ$͈€‹—)‚¾ö¤ƒ/ÌåªO Oo×': uŒpñËцI<É3U!W-©IÎcÄ\fø„ÑàŒ#峨 î£À0ý3 ®úædóöãRÌa´û’#âÖJ–è7"“Weƒ© Ÿ×ÀcÔµ±3À‹:¬yVM–Zª<EQË«†7ÂâÛaYËrÆ}ÅK(ñäx+iÝÀ‚: \·MdƒðØ!Tç‡=žµ*)Nô(ð¤vçFsY#iDËå šØ‹é+'[÷ôÖ̶¨0ÛXsÚsñ½Ì¢¤ŠŒ£”ÂÆb¬w9ŒJ±cZ˜÷—5ªw•CUÑÁCnVÅâ·€Ó«—/öš$5f=&\ª‘v¸žnéíøá^¨{}V@•Á±6uˆËlJS«y„xÁÕOt¿zÿaz¨wk¦¹°ÞÔ8Øéw"jšsQn H«”x*JìN›|åiJçƒh¢¤¸T˜¢3L,"é)«3»T·;QºÇ8âã(§°âI%šzZ*ÌÇÍÙ(„¡´Í=Éâc­Þ¨{29mü|In¶ªš4vG0Vy^Žô³K@G$Y•=ð™Ì2Äf<=Ô;‹_Z‡@M¾ÛøÑ×h:˜Ù5Nvš¬žæÍñ-\½wsBK9xK‰^Ïò"[I•g)’м(ɱ,R枣86I]ïâMÖu…¥fž5 ×Îoe ÏúÚE×b<²êY;Ë¥Sj|F> {Óƒñ廳«?n¯o®.^Ÿ÷ÒàbŽwÑ" l¶GãÁ^\›¡Àìн’zñ”ú´Dd]3OÁÁ¿Ÿ?C*Ò(]¾†¡Ð±AÊz¥Q}t9ú?4`! endstream endobj 66 0 obj [ 65 0 R 68 0 R 69 0 R ] endobj 64 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 66 0 R /Contents 70 0 R >> endobj 71 0 obj 1827 endobj 73 0 obj << /Length 74 0 R /Filter /FlateDecode >> stream xœÅXûoÛ6þÝÅ-ŠtMdŠz{-†5uÓi»8.º¢)YblµzE’ãÃþ÷)Y±#R}è” RHê^ßÇã®:ü9ä7Ç£$ƒëfL‡‚a7C– º©Q hž-ˆùª­ºyÂ[½ðn>|Äɾ°»âÄË烳-ý|†ütý惧ÓÁð¹:éÕmˆtK#Ä"„è:¸šA=~Q˜&ðaÿÕúüìôÑ#¸14ªQx[²^ùéÒ~„éËÁxºãš¡ÓÿÁµ3aCí œâ¯£ Ôw&,“ìÎl1¢¿ z GjÝ|*n lîµ!õcíO}WúAnÝ Û^ìRä§*W³Ã1pDswXAu%ú?9d¹îÖùlíxƒÐtbq_¬Úh®² G£€<~ {Qz“}fU°Šªøðvr q„CÕ"*G{|‘xƒ¥aü{-%º£B‹c÷hé€l´ˆ{Ò¢}fò‘EUå£áwæ +´ÔO˜dÉ0˜G‡³(å÷ËO9›ÿ…O(·»£Ëp4‡ëÒ©»«kG§ÜNÓÑ<î¨KsÔrk<\ÏëstŠQG(â V»á@ >‰?g5D'Ï€j_ÃÅvƒ„âl§ÏÚ÷Ù²66/²™?‹×°ð¹Å ?E‹Ë,a] ~ ÙU”²ö:Ú\÷+Èìù•Qe9Šûš÷žû-`í±/~’Ǭl©£yÎ÷ã8[ }q–}^бUV|Ö¤´Ò‰‡Ð¢õÔÕ¿›Wºî)Bü—E ºäêuÁù·»Ìô0 h—ån‰a²aVͪ«"KàÙS˜­‘[])6‘xWkøG’ ˆÂ™d]^Çy>eiÊ‚*ÊR²ôb¿Ø€1…³K¾¹ºâ]"'åæ ’0F†iuŠ¸Ø¿xxÐŽ-Ë»#¹_–|äâ¡$ÄAF¢*öžœ-áZü}ÂÑÄ3—(Is„H°àW-€Óñ||:>šÂoð|òæUM ï^Œ'cˆBT!X%óË(”(Ðu [ƒÏ«¬`Âê +—q… +Q¬0@+ù¤Âvª+P®àbŸKyð€ ÓÒerYd«&ª‚PCW#ØxŒ¢U(îù(1ÆÔÀ´¡-ô+_‹ÊËtÇrK,]Èn®È–•y[±´:¬Ö9AžTÃ<ö£T€r49}N%¶ÚTä|×±$¶vu¼ÎšÔÊ~i…ËÎMªEž ¨KÅA‹ùF²žÅ%“É£=Áî:ð÷á ·ÿð$m³µõ‚'Ÿ«¬€Í–óy”λG4¡÷€EDoÈ3yOä Ýø.T6*b–ΫEíXW(5zàØeyÃNñ§Ê÷K ÃèÁ®cñFƒDiôàÙ%a 4$kmSV¹ Çì ÙýwŸáš=QÛ•?žLÞLFÐnÀM¡%#qW‘g*¢Ú’ILID%ë°WíF3ð«`óCYÝ&ö§~(ÒúÀ#N–ìLj)Bò…… ?ÝfXeEÙbXŠxÞ+Ó´!Ü•}öv> endobj 74 0 obj 1564 endobj 76 0 obj << /Length 77 0 R /Filter /FlateDecode >> stream xœÅXÛrÛ6}×WlÕ‡ÈLà]uû4ͤ“tƵӌò‘ ¯G?áÍظáqdwáôæëÑU˾ºcuû6¬F/nF?{@l¸Y$"žeÛžmÛ„@h94R 7|œ¼Û^_½}þ‹ZÞ ^Â;–W,=û7¿Œ^ݹæú?¸v¥9Ô¾¨€Sü ,õ£žkßieÄ~ý°ª :õ®Ô¶Õ­´ aó]©/kêïA?ìƒvÛ‹ãùªÆ‡³#ppÅ ²‚ÒÁèeÉŒ(*Û{g:F5T©}䓎lÐøT»äXè%æw’¯à¦d¹`±LŠ\ÔŽöèbƒk[ã#‚GjŒ›5oï…8eB@Æ>s‰ÎD‚å# ¨¬+-CäÀràO1ߨ…sÁ–7ç9/-øµ(3–¦[ØÄ%g’ƒ\ó»ÈdçÑ.»ƒ±A§|ßÜÅÝ<–€¡E’ÅŸáŽ/‹’k6‰•&÷/®=ÁeÛ=\Z€åSxÄ¿€Î´÷ÔŒZô}·C#©Íw0aÍ8²ADÍc1­RðƒâˆZ$¬ ®kjé4›ÅE–%r>™Ÿ jæðšr7‰×P‰®†ßßнYêƒ9‘) ÄM„/ <±=+ qSú&Â.VF·¨0– âbÃÛypZsØ!“š¾TæA€ior$Ê"Mùî0i-Cì04*·ð\T%W¡bžÇø-T’—Å£8*S`K©Šºca°PJ©L£^L‰¦T;+U®îK¸Ýšìn_9Îç”R )_J¨r$Z¤|ah„º–k\âÔˆü‰e›”‹‹´o6Ãù¹mÂ@’¦•@ ©åJÄìÀ"ÄÎÝí¹6Y×¶¨qìÛ$Ó …ÇÙ"Mrn­Ç¦žg9j›zÝm›2Éå‚IÖ»Ñ÷,aNw÷ Y`>ôí ±”1?ò;›.“]å,ûÑÜùCž]ÆB.’ÂÜC‰Ì®ÒgOÎ2.6,Vvñ½¹Ëñ;üPó)7èðÉX’ÏÕ³ÀÊU<…xÍJø¯>~Ú]À Ps' ½ÆÊ_æ#~pÌðsq¯±îTDîr,Ž9V¢[X'–e‘é `ùTÈMà °$Oô©½Cζâ>Ýlf³]êÎf/k”·MþÌ'µ{ʱùY|a€ò!i ±Äç“ovgÐãkvô„æSrY•9Ó”c‡ÇªÇÿ6£a·²ÜöÐpœÐdßÈþ ÛÍ]šˆµnEqcCÝ0pÜP+ûàÿ€… îF>î¥y@EóIOLw·*ƒ§&¼™r´?»PóSGÁt¿†óRgeƒ“•Zé ²D=’6:]¯‹GP™°Tµhi& Fý2ïý½Â¡e«G—-ü ´°ôµ"dÒAI„ÕQzy ã7m>úpUý TDùl¬áù"íÆ™µWTÝo5Ê­F™Oj†}ü{X®79JM–üôá§ÆTP­*5Î[Gä^%ÍÜv=2 RÃä½j'°NVkÏÓ'ˆb£Fx5Þç…> endobj 77 0 obj 1705 endobj 79 0 obj << /Length 80 0 R /Filter /FlateDecode >> stream xœÅX[sÛÆ}ç¯Øê¡±' ,îjf:±¢´nzd«ã‡0£YK€¥pÍdúß{v$A.@)}peiH/v¿ËùÎwYOʉMþ6ùùÚ-"uîµe“åò‰iV잘¥%uŽ}ÕøëÈym ÁëZy­Ô+–h€û/²2«WÚÁž˜9OX[›f¡õŸÆnÍ(¥ Ò†eêf‡ó{c ^‰<íöÎùŠå‹]º¹i²ÚÇ=Îqqó¢«UÉêI¯ yoá¥h—+&¾;àŠhšé[LÇ6X€²ŠÌ“€¤B À=¤ÚÝ5ä>8FaÚ>5 Bæg[Ðwò\lv7§EVAñ.¤â××<~Ö•˜™]¨ÄèpèŒÝI,…«»B‘« ÕŠ™Bƒ5~maÑR4žZäN áZ¦v;o`àyeš$'Ÿ#“4ìÚ[• íUiQ%¦•ub×m,òv #¬Í›é¾ÕÙ²dyÝ~z‡ý²tIWj ´“ckÞérº?hä@TaÔ-)²å ”ù²VD*•w%?6^îá¢É— và hºùxÿþÃõ?ï¸ùþùe´uP´¯HÞW}×C•(Æ­pØ’¹…a> endobj 80 0 obj 2060 endobj 82 0 obj << /Length 83 0 R /Filter /FlateDecode >> stream xœÅXmoܸþ¾¿bήvmËÔ»äØ-š w¸â¨ýà5®Äõ²‘Ä(ycýï!µ¯”®ßÒM çí™g†CùÀðß5=Ò<€¢ž}Ö|H“a)NÀ¼ ††÷*Úuðlßða7áË þ9kf ~ž==ãÇ lfìTþ4{8°O_Øw·ÏàeöþqvóS >ƒÇå"?ö‹c¾™9ýx¬áéü··O¿^^Âkè^ÿТ…ßxÓóêâÿ6ûøxZèÿ‡ÐŒ6Jx€ÿSÏdýèC±ã/ŒØ­ïWÁЮኵMŸª!…ÃÓ:b_m<ö9Û‡Á£8¦Èw5>ÍŽ4Ä/;bEMfÿ;Cæd‘lOÂ?*à¯J–Э¤†u«•¨¯€ÃRl@-qY€øVˆu'Ujñ/Qt¸¦oÅÁ@6EÕ—Â꩸î@´­j¡éëlH•…íÀ€øsj d§Eµôà—nº¨Ö}Å;QïŒwk%›Îqõ ´BY(x¥\.Ñ…e«j³é•W½€7ÕÃFõU /¢s / ©'d¡uÌHÛm7?å§À¾—G¸Å¡+úЋöíöñ@0æçó‹­·ùƒž Š\=@q·€ØlV¢9IÍŠ7e…_۾ўNŒ´ÌÂ<ϲtÈ»æõºÓQ¡TD°Ðw5 Òú¦¼¬TñÅ+ÖëéÈ2æE”é É\]PŠZ5ºk1@m³j™x»÷-ÃR8ærz)5î@Ø’ð¬¨ËJ6Â[9Pä‘ç“Tˆ‡à±Ô]ý¦¿V——ÞêÏŽ”ÏÐgsJ cbågÃ÷QÙ šrôN*ŒZðzD*ŠÑÑ(Ïãtêµl^ áµÐk^Ð]ùÎKb/&cQ–Y±›xß’$ÖàK¥ûŒªJZÙWË|%J)³t]ƒÞÈ®X¹ÚÓø$ñ 9ÙÕ Rïs­Já:°Ñ‹löîwwùɉë5—Íœöo_Š+(V¼…?áûëÓó¶Œɉwÿv÷„‰—“+Y:ü!F?‹JÞñ×xQ͆·ˆ6¨m÷(T]cqËÕ¥' #͆ë5–ÿP/··¬–_Q DŸÛ)´ùÅ€qz é–K˜Ÿÿ°Uq#Ñ&é ¤0üZÑõ˜7ÄVš"ŠQž%qº—ù»/ÏL%ù,Ïü°Å$ÒР‰{$aƒ‡¯°;[ʜاkþ+_‹F»À†, ¾ †qÄ;¸ßÂém—¨Ûº†~6‚ŠAs~¾ÓöÃ=øê?Âñb0¿Å: ²ÜŒ«ØàîÎd÷‰=ÓëÔ=º¿ä=`±­°ê|ÀóºÌùŠäÀCÍí_a˜øðw†gæ–ª×îkÑtÚ;#ãŠT¢|$Ÿ¿Ï•0ÎGRãr%LólvµñA5 ötŽaZGÌdùHÌ]û6’<>'Â@j~ÔXà•Ô+ÃÌbovè|»€ƒþ«h]å8 ºñþN,óó‘P.>S¿rÕã<4^®;* ·þ½¯vk½>]Ys­ie¬¢ˆMðqúÔñ›.BÌÍm4ZtÀã~I†GW‡ÞwâÐ @¼u-ÅþtF°ªäRâ8ת¶SŽrEÀ ö …ÅÑ©¾°IÓˆ¶‰ƒÐÒ5•øùASd=5 PëµÒ}WmIí}èU›Vѱ(19Û ¤eôÇ5•ú¹BS;ç7²ª`7!!|¨ÍÌÍÃàKC^­Ô†(Xb‡,܃1Êü‰Î‚¦ÌÀ¡ôÜν¶¡êaüJ·àH½›Ø Û×RîO“‚Ã{^šav?w! áèÍv°”ÚžÒMTÌ‚iN˜Ñœ£Â$'דýì^ gÍvŽáDìÓœØFt8ž_A£:Ø×ññ·…0`Ž^gâ ˜æÄa-µªª=Ç̤!¾‰¢§á—ÃWƒðf%‘ðºÇAD”Úm1^hÖñS戥Úmç;˶ð׿ÿòG gÎÕìl@±fc‡ ÙÊCÇÊãÈݙֶ㠪 õÀõÛîvv`Öµ‡f|ÊXä’üè®w|ñ¡y¹%j7Dy%±7i$¨k( ÿW·$·‰¸§6î™÷ñiǽ‰¤ïô4MKƒù9 cÊòpï÷½DÆS}ÓÌ@(Wö• hÅ´3,š5žñÄÕ ½c)aÑ4ÞËŠ¿˜flê—#¡Ðßò(™C‹;îpc¥žÐßD&{2M?+Y™z‚¥li¦Ã¶É¥!0eôcƒc£›ÆoUã°›[BÙ×õÛ“ÏØ³ rFµCöì…CbâÙ;|ÜAð./åèÌ—DÑxºèGj (÷ûõòp˜¼Ç þ‚6náZîØ`þªô0û/Uœ÷ endstream endobj 81 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 82 0 R >> endobj 83 0 obj 1806 endobj 85 0 obj << /Length 86 0 R /Filter /FlateDecode >> stream xœÅYkwÛÆý®_±Õ'»aP¼ª];Vr’:mm3'͉r|–àRD biìBÛÓÿÞ;» Eâeõ‹+Û`gî¼îÌÈŸ.<æâÏ×ô#É|–o.>µ÷<–ø,ˆÛ[Q̼Ðñ#¶aíuÄJzëäÂ?\á‡} köóEuá²ï.~ý —ÌÅÝ…Ûg¿¿x{¢Ÿž¸_\¿Ën/^Í/þômÄ<—ÍW.ò"Çu#×u=¥Nàgôå³ù†ýúäÇýû·o¾úŠÝŽïøì'%jö#¯^>ý͸¸žŸ™xþÿÁ´·ƒµ…îão☨Ÿ=ˆB÷üÉIFï?Ü5 {w¬nzT¶!lZ öÒÚcŽÚá>˜ážZqž"_Tùxv$î8éYVøÑhô¿°ËzQ$ÝGc2ästf Àñ܈l‰¬-ìä+—fÏž±Ëy½/ª[VÊü#»¤;択8ŽcnˆjYþÙzáD8’(rc”Rä÷¥jD½7B”(E®ÙÙª–¶|Iò?h¡ô™¶žü q’ïùi_þáë’íÖ¢ìž=ï€g+Y³f»äZ\öÁ‡‰“‘kR?ï(-kqóäæiÿt ê0ŽMâ ǾÌ?5E-–ƒ®eìµPŠ]W4£%™ ¢¤&NƵÜ<)Øóçxù»Ôpy%îµQsɮإ¸/ôåi:áÜ£WõªlÔº/#K'|˜•s+tYTðá²Ùlö3¦Š ¹j?Þ<Âå¹rÀüÔ;úŸþ»^6†÷ü¬ïÇœë| ïmöêS¹Ý^]½âË·&iÅÍSöï¾ ƒÇ $ˆ;ÅT¬ F8¢®«fCùBñ¸~÷áÍß¿ùë‡××/_ÓŰÌ0ƒal”å$¶Ê+Ås]ÈêX?¸Ð(+±üÃD…z±;âÌ3ùßȪFüÕ•µâPL¹¬Nízö¬¯"q'JáX¥3vpoW…8W0fIê—Â@´3w$P¢Tb ¾ë>& ?¡²¶Æå-¹á¬¯VìÖ\OÛà{Þ£SÛ÷½·ÖB7użù×÷Ñ€èÐðO¯®ïs±5)7\~äxíè±ïD%j^~ÎQöT_Aì›î•&Qôh$þ£ÁÏü´rݾÜÀõ;ƶ2f¼íNš˜ 3Ä|](&îùf[ ¶“õGÅ8+ ­ñqY¬Vè`•.÷L¯y…o‚I|«•Ã~‘ «›ŠÉJ ·{&Wæy+kF*j+4ÛòF ÕGD<;^hêùÔ"÷Pö³5Ýè`UÒµ*Kœ0%¿Â}y¦‰zÄC2g7ðÏ ²’WÆnc©Ãæ°jžÛ"K¬$C d)9ƒŽ|rf”Kã(ùŸ1‡nêø1gîfV᫾»1[œ¿MÓ;ÉvEY2¾µÆ¥^›H ] ÎF=G&(!ìÔdBNUÄ60™ßZûÑ^)c4…~Ã5ÌQÖC}HQÖ´z-—FLÎ `Å’¢vØÏ¤€^[J‚ÞmÈæfKgèWtËÆIQ”p³FpämÍ77¾ï+ßoÆb÷b¢|C”oœ%ˆ½Ê—FLŽz]#&þ;<´ã{EâĽÈçm_(*Ön’WÇä̺j|$‰ÙCAW­ÒŠ&º„ã†8›$Ù€¤Ù8† L§N¶Žcðx­þ4DuüêÔ 2›Ô‹¨örµ–Mir ÇþŹbƒÌ {Œÿ£pà U‘+eD!”-STîÐf°˜ðclâ^~ ã¸´‡¦I:  –Tb“ïÇæ C8„Îaß[Q)Í«\ÌÆ)ÔO#' ,½1ß¼»~9¿fßÿíõõ?ÇÓ3ƸâÌ\l CP~±ÜBì³àùÇþ¦g3JnÐÿ`=šPŽiꎩïD=k»Åx ºž² ‚ûZ{?ЦD´¡6,Qhe˜VãÁï jàï„jJÍäâwþïsd˜z©|¹,ŒÙjf…Å]!Å@µ ¯J~ËYÓà1˜ŽJïYvRMž ±ÄK$t4Ç4 (㥒4ùk^ô5ä( +E[t°‘Û9hR©å®MýýÓ Ñ0veªSV%m­D/xèêd@£fp›í Çqi6bbµ*ò3ù€¼:QÕ‰; OÈuš_ÒælгgmßSÇý1Ò )K§ç¨õˆÉÉõÜ$´b¬ñu딥Glôaà Ç|¦O ®ìœgU …t±ƒy¡&’;I ¯þó¤`¹žà`Wx ¼çóèa, tê;!H;B¶²@×üNG/mÚÉÄÁ‚`¦æƒcQ1„ÙÄî¬ju~’±ÀSéyRÛ• Ú²™Ô‡¹XBaÏ+U{z'*“i ‘Óx=îrÏõÀqHíÂ'xÞEʹ! ³/ÃT]ÜÁÕ&K& tR¢¦8B£ôòêêî“õ³ãÎ÷Nîþ2ÞåýI3¦ˆäúîÅwþ¦Ä h£´[KTôc?•Réýü ’K#å·í Üðq0ŒRØé4¸/-k˜Ç5Z½Ü@ ÍØ}<ðKÇÍBåu±ÕD‡F3Ñ„`ÇkŒµ4>P{²Ÿä]Ë©ffƒ!xy+k¨Þ˜aØ. :NAÔZÚõ¯+íVX¬) ûtc9 °Py‰›Ò‰ai£±ÀZA¥:'ß®±`ÿ¸…ÚÖ ŒY44ŸTT"XN¸eÖÉtè÷³‡ÆÞGt’`KV0%bÖ®'Õç(>öÝÎÑÓÙµ¨&‰.‹ÎXžhƒ•N#(FÜIÜ[Wî©[UKdFÇ©7Oö=l­9ª+ñòa>53tÇBÍ•’`"zgÛ‹+¶È(º©‹qBŠ'JÛŠí+x> endobj 86 0 obj 2349 endobj 88 0 obj << /Length 89 0 R /Filter /FlateDecode >> stream xœÅXÛrÛF}çWÌ*+Û Œ;A­½U–“¸œ8›(V*¦*5†""ÜŒHQ¥òï{z¤( ÀÕ“—R à`º§ûôé ôyæ1?_Óe±ôYZÎ>÷k[ø,ˆû¥(f^èø+Y±‚vÜø»;\Ì&ÜlÙo³jæ²w³OWx˜1w3w¨N œ]œOOÜ/~¾Ë®gç—³—ßEÌsÙåæ"/r\7r]×óXâþ’>>»,Ù§Óï?^|xñ‚ÝŽïøìW)Zö#¯:^<»b—ßϾ½|äZàùÿ×.´ Æ ¸ß…££þèAºŸ0b¿þ°ª ÌVÌÙô¨èCØ_!æÖøc®“~¸n¸‡^<¦È=|š‹+Nòˆ~<ý/ ™E:{ïÌrèŒk\ªºÏW§«gÆ¥ÂÄ’bŸ;ÑæB2Þ –ÖÕ­¨rQ©9[wŠ©-­IÅê »¢É«k½† 9¶·Bv…bR(–W¬äôG”u{ÏR^1Y—B奯œË}w`ÄZ0U×l›_oö^iq¬É®mÚ\âÔâ^ÛQÜÏé¤ O•ÃÞ0Ò,㊯¹ÄvÑÞ"©5R/C¨l°âuŲ\Þ¿reÙøNPåHcS+T×VRãso´©Ú RBd–ÄŸ %„mê¶tØå6—=*Ò<¿É«ŒÐÓòë¢æ*þðÍF¤ØTu%àOǶó?[v…áÀ.ußÀ;²£"ÛÕ5Ò@«]•‰¶¸§P½eo~~ÏŠ|Ýr¸À ˆù­ myËê»}¸jà¶<3FgY®rà¥jËš(Zö±F\6ì¾îp@Ó’e7U}gœ%³&¢$n ÝV¤u«qâ¬á­ÊÓ®à-ƒD!È$ýp>gMWpË2*NFqVæØ ŒbÉ6m]ö¶hiÝ\æ †â7d,A ß“=.w¹Ú¤]>YIø¾¢ßx¾ïÙfhæc‡Gä õæ,@4£€Ö•å|â¤îàåÊ÷}dtJÔ„ƒÚŒ€|€À±4yîjßÕ-ÅAC4®ó]ÎuPe×€½ØU7š1`ÿ´|Õ×EÖ/¨'X§uò8X~pTÜ µÏA“¼œúü=øÅØ^¯ÿ@ÞÍÙÝ6O·°×FÁR\æ`±±žv-DuI(XŒhøHøX1é¢ÄNí\´ô˜âE¤¬qEh‰ª‡É_—_ó4dÞ ÙcßµH9à`F@@û~h³ð‡g\‚™MMÇi•qÚíë+2u?…¿ŠáD!j£R·Àòr úH ò¢aû Â=e®8¥Æ\Gêk=è·ë\¡0S²Ò«é¶Ê' b†šTÁ[®L.OW¥ªŠc‚8±LüÉ˦ò¥íE^ –.Ò3J†Ç½*ïåçâÅ gûo[ É8a嫼6´‘ ã #!Tò*oFdâx``GC«8¦'Ì/È7•ýËK‚½k¹€A1^‰–ý.ÔV´¼Nç,Ý¢º=Çýí§«]ý=œŒÜ…³ c‚82 þ²÷x‹ Ÿ—/Ù;̆ûªÑç:<Còõ}CZIÓ Å}d.K§'‹(zЬÃÖ4gg;2Ÿ½5Z>@ ëI´:5’k«g6€A $ÝdV§ÿØ©xÆF¼ “¤¬ÿ˜¾Ã¼‘³¢d€"íÿÛÞ·XŽø $ßÖU…Š´B¥ö{­Ý΃d9âܸ^umÔ=ðaƒùPŒ¢´\Žx«Q"I'5šV§#AÉÖ¿‰ç»ˆ8¦qPŸŸÛ£®»h÷Ùi@÷2òû•†KI+ô3­Ð[Žp³Gõ¼¡Ù]7S4¬ý¤¸³ú™™‰¤x‰h n·ÍÓ‰·þèÃÛûµÒÅUŸõ0a¡Úz’c6s µNj¡ÜNçz ÖþÓkѤÂ4OÓ~ÇßÚô¤k¹§cL˯úª'SreÓ0ŒÝ‰ îé¢'£þ=ëµf££¿¬NO¤(ˆóÏMXt,NÆ8.܉kžîLƒôòºûñsœB‰7Ü‘o +½D‰Ö–_zAÓÌÆ4‡ÄPåISˆs2r½‰˜ì´°W¯(®w«ÓÀƒ#øvò^‰òw¶6Ï;’m»Ñæ¹½¶ÿtÊ|oÿ#Ê~xßWãúð:î‘«‰»x²¾Ÿñ"-ÆÕ…‚ .pý#êN¾ÁhEòÈ”¬Ø]GâûGë›Þ>óê ãæ:wô´‚l‘zäDZÚ¯!ÑÂ?(Þ^PŽxý ¢Ã^ÓYÎF¨tû;¾O:J‚ÿï€N=ÆÐùé$'J]Ñ×âg îeð¸"¸> endobj 89 0 obj 1989 endobj 91 0 obj << /Length 92 0 R /Filter /FlateDecode >> stream xœÅXYsãÆ~ç¯èR*É:V°ƒœZ9–åØ)»íÊñƒåÚ‚Àáµ8¸@\Vìÿx @ûiCIEh0}}}L÷|˜ù$ðówþŠSIy5û°]ó)–¤¢íR‘x2¤Š¶Ï!•¼ëàAîžð5lÂÃ’~œÕ3Aÿœýô3^ÎI€`=§ì,ñ›ÙÝ|~#>¹|Aïf_ÞÏ^~’/è~±‡È=!B!„ïSâ)™òGÒ}E?½ø~óæî»Ï?§'åIOÒF·ô}V÷YùÙÏtÿ¯Ùíý‘iÊ—ÿÓ-ìp‰ßس^?zâøÍAD<¯ïW­@5¬aeͯʭ ·ßƒ"Ãã`Ïð=i‡Ø›!­8‘O*|::b…/9Š OzÿCæx‘e?“"žÃ#k°/ö”aK ÆÐÁçåKºYêü=-š–tÛ6íåYý׎æ…éŠú]_˜%]èzNÍ‚Zmú²3”Õó9ˆ§PDȪPŽÊ±ÜÁÜhCE ^]ßÖ´h›ŠºË—oÛfýðâá3jº¥n×…Ñž#CÅ^Ì2|™¸2Š=¼È›ºö ªî+fvÿs¸±—2"‰T.þä`@××tqkunu®‹'=gµ­ªÀ…2‚¾Wt}Ž€0ñ|+ MÇ< ÚjÛ´ÖrˆÒå+‡a”œñ!¶hú.iŒˆ`Ò(v)uv'É€·B„+$M&u%ø"8!ÿx¯.ñ–ï§gŒvÕ×YQÂE]CïtG¦kÔE§«ÁEô¡×íæ@íËt°i˜}•9©(ü]‚p‚09°hd_$F š‚)0=CôÕ—6àtÞ "Ù¶…碟ˆqtÎ “Šd\k¥'¨l÷ŒÔhì–'|…rlsì~YÒ³jUjš7¨2¨#d²JãÁf¬¡ÃÔi àüAÉt„µ)˜©œTÇOý3Ô—ÔÔå†ÖE·DÕxRõFã+‚UÅt:³vxàm6¸eP¢‚E)ûÚßBú߬ì³G~ÎHذbBù#,X)ø~ÒÈø,µUµèY«/ù ™eÓ—sª›ŽµuÆ¢hMǧHÓv\LMS>±gVmÝ+Ãè¹6å–*]5€§;d˜BHøA0Èÿ¶`Ò@RסeÃY°iz>Ê ‡WFëlÃÅÁºrc•ZõeÉxU}¾¤yÖeÃaÄŠò8©Xɽâ«2˵‡vp{Àž%¶zä ôu3Ù†­Ü!Ÿ"+/òÙÈw‰ßÜ~w{sO›öKè…÷*QêR“~ÒlBÓ¿[ZDæMÍjþªÒó†j†C£tf€ƒÍ›²¯j³G£ãÈòèßí%U¿g{¢ŽX%üÁæ3§¡ ƒ mÓávÞ̶ ö+ÈÕ»èF\NüI·}»wí¼Á– ›Ÿ… I檕†Çj!²¬6][ "Ø&Þ€ƒ^Ðaóã7·¯o§Ë‚P^sEFçÐR^fˆmkç¤~ä{"aÿªÀå2„Ǥ \TCup4¸Ä—@š ÇsBØ2e²çÔ;xmWÑö­‹9F–­µ ,7”ˆ¥œx›GØ^躻žáI¦VÈÍ~ ®¨´uô{;çæmÁOS AŒXÔW𣺳lÆM},yè“ÒÕñ¼#a”Roç]Ò²YCwdFkKxÍ5†µ®õGŽs{Ôz;ÆŠ›q™°§üQ›ÅêÅÛJy¾ô覩çóÈJz=$ÏëfMß·œÓu!N!+Ø•è7M¥Ycó§êͶÚ\˜¨[—!ËjK•åFáçŠï îá”þCÜx„Ú–ãIo@¿$>Ñï¼Z`›‡ØîÒî’ -À i}yI}gã:Û/ò3Š‚kèòq»+P ä J±…X¯iUäïyS8ÜOÓ}Á=¶î5ëõuVÛ7ïµ^]òÑv¦%‰”'72‘pÇ­ÁÕ•íÞ‹³G·D ^#¬<²½Sq¦uÀ4ì\„:|—öí2/wêxùj5©N ÃsÌ®öZ¸Ól ¹Q¼PþTÔyÙã¹È+Î í-/܉OqßfÞ1Ù Îï8àG nJ!ÎOéìˆ1Jƒ‚­@“„Ñ Íuµ1J„ßò.UâO©x]48¨tV¹T¡àZ•:TUÖ-Ç$…JB’Jãtסb:ÿJ#Xq#êN´¶wèÏŠ*+‹n¤ y 4ísó–©Üã! Õ‰Æî,"ôcùƒÏcÓ”Ô¬t›uØb§}³öþBf—‡œb…p 0A©ƒ[‰‰è[Ž1Ù 6öVáá…ñê¾¢/¾ ‰ñè—_è`EM\3„©:†fd’XúÿH[mwÐX/ž Ô|{]â^ˆàÃéa3â *ËçAòȼë½u»¥?Û%X)&¬Œ0︟˜¹È ëÕ`æp½„“ÛÆ+±Ä×Oè\ö*˜p̈©A0øáÈl¯ðîf¿3O´ã endstream endobj 90 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 91 0 R >> endobj 92 0 obj 1902 endobj 94 0 obj << /Length 95 0 R /Filter /FlateDecode >> stream xœÅXmoÛFþ®_1-p­}vrù"Rû¡iZôÐâ`ćÃ! Œ¹²ØðEÞ]YÑýï}vIÙ’–LÝ/)˜ô¾<3óÌì̬ï'ùø÷¼¦£¼žÜ÷cM…I?'D‹©¦þ;¦Ê¬:ø`û/¼ºEøXÑ'Íħ'ïÞc² ¶ÿÎn~;¹>ofüÏ.ß§»Éw7“—?Äøt³|¢(ˆ=ß}ßJ½eæatSÓ»³_vo¯¾¸ ‡Ðc£ÿ(!éÞlxuþžnþ5yssdZ°¿Á´k«Cg‹q8Ãÿ©g½~4GþñÌAD<Ž?Za7†‘N¶™ªzöïN‘î³³§{Úá?™áZq"ŸUøxtLCŒxéQT°tÔûŸ™2Ç‹Fö£1â9>²à~ll‰;[èàyù’nV‚Ú¦ÚѺUª\”U©wT‰¥¦R‘^q¼õ׊Šò¡Ät%h±#ÞttH ¦^hÅL“A1mQP³©8Nˆ•PV@C­$qFº…0E ¿HA²mµçBØÆ~‚Ã3WÐPó³²ÒtEá7x½ºžÔó³¢Ý@ýù™ò Çü|~nf/®ˆÍÏé7GL8õ¦FLÀRWŒyÊ%$õhô*ruEþ X4õ2CNÊÂa0óH¡7²¡%¯”øÆˆÓÎi– CüîlIÒO¸Ä]>Eè˜åÉÔ]Ýë¦åf@µ4¡Ê•‘¥D¸Ë?ƒµ€diЭûÝ„ä,LúȆßÝUQ‘€ŠÓž…š—M#\Þå—”¯¸¤âûáÝûù¹ ø'º¸þ ¦þÕˆú…¦‚k¾àJÏsòk.y-´Š–²­)oëš7Ue#\äÔw½RïÔ}µ^Ïfâ#¯×8G³Ùëäg` !k~ÖÙg,C°»Ð™ÂßcX±‡ fæû'ŒžDIàÊbApBâ°ãY¸æj¹R# Ôïy£ÀyUª i›Fäºl“aÌÈ£OPÞ„È2q0bä#ù¯ŸP!`~6à•bqÛÀ×—.|ÂìqN§ñ@V6Oï¯S™æüòql£NGÖ\)32äg–2›1ƒ K¢^·U#,)J·ù$`Q+Ú–zEkYÖ‚Œ]êR(:c#>Pº˜Í€ÜÊW÷[D‡ÚTZ¹ †>û3®¯7Apo^º=ûmLÀ Ârí&úHq[.çg½J—饥ºµvцá8oWíÖrÙ#»»£p„1mô­Uäv%xa\Ü£xªüÿ¸>q8žëƒÙ Ô)} KŽa8{0‰Fèë««† öš-Äɦ¶˜júâiB4E7|qQê‘ }¢>Ò!Û­ûâ[›^ŽÑ>üÍÊo÷±åÝJ»g-L£‡>2sѩ﹃tgшÝlùÑ€kÖáBâ2žs¯À·uÙÓQøŽö4|EÃé9bñ­&>[TžUÙÜÑV nek>ÍY7A‹›OD\Ô0!ÑFY.¤¤W¯èËî .yY‰bF_š1ámÑð‡™ßìrGåREñµã…%ŠãçQœ$ϧøÍÇ\¬MbÇr¤¡KÆI~mP_𪲆7;jÁ.®‘ýÕRìáÝô¥É³h~#e+÷üÊgœ%™`hó,‚cf.‰d~Pº{\7œÚJŸQ¯K9p#Ãj4aIˆ¦?Jûó'2ý¼6ô¶É·à{G…2E^ [Ö9ú.‹“éDw£Yñ´c}}ëo%eƒ‘»òA /EUx¸áÔs”ׄ);Qª(•FüBЯ„Ô÷¨U£à˜>@»+9j9ÞhÚøröð‡¶,¨]¨|#Í 5'rÝ" M ´ý2æ.Íäž®l€.¤¼cÍ친͞Jß¾ÓúóˆÏ ."q,,KŠvíŒáèh4Ô p¹Á|»ÜWª…ÐÆ¬‘¦àØöËb6®e»€?v†„9cÌmÜcë±âãZšº´ôyô?àlKmÚ>¬_ë δe}”Ú‹çf#dKj·Qà}¸rS]ÂÐÌC0šúþªõÓÒêl‚ Ö9³kI¬Kµ½H õK^˜‹xÀ¤<Ë7¦/ý}hLÄÛ.Q¸)«‚¶+„tØ&ð@Ý[׿ uqÏ¥ 5l.äzÛR‹n´jyÑÿm ?Aõ·)¨Òp¿Gÿ'û]8„„²T.rõ‰¢}ŠRâ@W;ÜgpW²\Û¤ Á.žµ\w…mÔ,@OöT:í‰÷CôÉÍ&¤•QFða‡ð[ò\xDºžücp endstream endobj 93 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 94 0 R >> endobj 95 0 obj 1753 endobj 97 0 obj << /Length 98 0 R /Filter /FlateDecode >> stream xœÅW[oÛ6~÷¯8È€"iR…¢îž·‡vi±¡yH“¡q0miÓÅ©$ÆÐÿ¾CQvl‘^ß2'€dòܾï\H?L\ ø÷N=¢„BZM†5" ^8,!¸¾C¨`x TR;/tó†-„/9|ÔŸ&·ßp3‚ O26×+_O®vü«òêþ ,'ïo&çp Ü,^(r‡€âº;MÔ‡ÂM·Ç—ëë«Ï§§ðè9Ô¡ð§à-\²ºcåÉ7¸ùcrq³ÍséÿíªAcQ §ø9}Ö÷6ŸìïìTÄvýeµwèé5\ѾÕV9¤pxê@ô«Æ£ŸqdÅ~‰¼ªóÃÕy¸âÄ{UA“ƒÙeÊŒ,*ß[0:f5V¥½‡©Ïl4`Ò<Çõ¸xæi'‹z šŒÃ¢iá‚¥9|ižà÷|á¢+%\s©°FÀ‹Ä‹Ñ´kãØCP¨š–ƒÌY uB¢µŒIvχ‡Ž·k(Y½ìØ’;p‰ÞÛúeŸ×Ë¢æRÔe©Äö+×5 šŠãb™v%“ES hjØN8…#sÞ›FaPïØÔØ×¢ÈÐõûNžá*†[ˆzN)Å@Ë'¶½è=ÇÀñÈ–\ö 0–55jÍy 릃šóL UÅ3¤ˆÆˆ*¤£¨X!%=g0Ìå_À†êĘ\$p|ÓK<×4x¥LM§˜Ä;ŽIœÏO&’ÈñU=Ð06-Á‚¥EYÈ5ÂYæYÐ|ʙܢuàF³v8^/Žb¸I™^ø3«V%çW‘¢ !tS­LNºZĤúa¬8}‰-ÆÖÚ¯ÛÄw\¡4 µôOE–6ÂQZe%V “Á¹[ž„Š;w¬¶j‹ZªR³*ª“@ùó¢x¬(d“þmUò’ò…c¥Yµåé©“ÿjª‰¾ÂØ«-g•E+ œHiœ‚cgLæ6O”„#Oççð_ {XÞ‹®N%N쌴)Kžb Il]!‹T»o:©[RáìþÒìê†#ÞÒ’ KŒˆ·w½ê²*LUŽýcÊxáˆáUw_éÔ”ô#,”ôÃÁàÇ CuXÔƒhÄ”R/$¯ÄÝü˜ÌOÎL•0BèaÇÁŽÇ'®ºò N0+“®5L…8B"âÒd'. QIlÿÝóÜØôcSdЬx˰Cóã¸Ô©Â™Gc 32O@‚vNáÔ]õ³©ë'T;4+Ýùq¯ oÑŠ^žŸXL‰%Á[öƦp\¤ÜQóÂj.L,:~ÐV>«;Ìpœk€ Ú¶ÿû߃W“­ËG} endstream endobj 96 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 97 0 R >> endobj 98 0 obj 1399 endobj 100 0 obj << /Length 101 0 R /Filter /FlateDecode >> stream xœÅX[oÛ6~÷¯8Ë€-YR…¢înV`-²®E‹!H¶ahŠ€‘h[¨$:ºØõ†ý÷CÊñE’›½tnR)$Ïí;WúadÃÏèDâ|ôЮÙppüvÉóÁv-îAí»Úzáë7|˜Cø2ƒ?FňÁëч¸™C‚åˆí³ÓÄ×£«-ù´Ã¾º|ÓÑË›ÑùÏØ n&ˆlÏbÌcŒÙ6„–Ã#úp¸ÉáÃñûÕõÕ»ÓSX8·8üVÉÞ‹¢ÙÉG¸y;º¼Ù1ͱùÿ`Ú•ÖÁØBçøXÚë;žËvw¶"âq}³ª:f WŒlÚÊZ¶O£ˆy5ö˜ç lcÛ¶b7D¾ªðáè\±Â¨pØ ÷¿2d/’ìGc"ŒgoÇ ËfÙâ[?én¿‰ó$K y{ó¶¨ìÀr4YàoÈèSʺ) °ŸwH0 <æcZy|CòOç˜Xq¹³9V—«%¼ÐèFÑ®ççpYÕâ>K«Ô3 ±* ש* Vz%¸/* ˜Á YZæ~8`a¾ª²ù|<~µaŠüo7äg‘Ï3YÇÉý]!ryÖá #ˆ»ì2_Zì-£ÝíñíÉÙãZSí¯ÌEUÑÊíIö(ìÁ³éµ@(JEIZÍ3±ÒØ tuUê¿dQ§%-ªø¨² ,BO oyh€uÕHôáƒþÿGÂËÒï¤uWgÛŽÀ¯êd<ŽUSÃÅÝ öþÑßš£…zßIÏnµÊ©®vÀTCs§YÜi@ À$ç{ë{zh]d‘d=8‘{Ç÷»íFèÎ · EÏ0¥ªÞ@øR$Åï` '}6àtõµÊe=K‹),Ñ¡°,½¦µÉlj-z=™ÎúB–¥ö…qðD¤™LÆÆÒZÎDM¸} ®õ{c¸šØ{œ±§#|ù9–sJh„¸ìŘÛö0Ưˆë3‘e:wD±¥ók=4È5ûªË—ÛOBù²,U¹†·|*¾Ü±ÿ+¾ÜµŸ†¯Ïuoë\Ë—õu¾gh˳§Õâéȱü}臮9ý§j@Ù )*楉Žá5›¨3Ï1ßbØ#"ßq{8æ"-ÃA5l—¢‡IS<¶–©¬AÀT©ÒD P i祚–"‡DÉʬ]ðI®€ 8ë… í ŠU‚L°ÔË ƒ ®1¨®ÁôaЏ0ºPáVðˆ°Z;؈Ý0ì£y<Þ”ÑÐ8Ì>ÄÊVÂA§ |štÿ h)]Þª.Â8ÄìR¤X DK‚ï¾I3BtЂÀ³<º% àV•Ìp6€`Rªn~zùîr8ÀÂè+S™Ï†5áØ.‰‚ïS…zØ pî$†ãz–VX2+iÁ›ʦ T1¨M7O‹Z–V=T1Æö˜AMtl¼»ºv(ö0Àz+Pª%å*‹?óMÖõŠfºLX-Ú¹ì9¬°ˆàAþë†TǤ4f¢¹,gèþº0XwE/å-ççP©·bÜ ÔuX3v’¼Ï)j…À¬`ëÀJQ‰ÆWÂR<žIdNm©º¨ÐˆÓíÊŽeÈq±ùíìû¶ÁN&*ÓӀζ},e¡ôð@”ò..‡ì 3Ô¿ŠËô÷j!ÏȨvL«—ªí‰¸QfJ$fÎ.6]0×{„=­Ly˜XΰpSX`Í gÙEó}—P-‹6ÐYèJk­C×#Ò7{Ñï2×bN„nÛý oˆ°u•øu{BèmŠ.-8Qˆ±¸õ­ÌE=ö‚©„¢Éï å (ÃÏX©sAá½R-!ÅÁG|j+ä/HgºÁ1êÞÚ\¶§ÓÇ{9‹uÏKäD4Þ/(ªf2Iã”ò… WÃm›¬Î R¦Õ+Ý!µV›QJ§òãá®BßSˆŒÕCÙ–fˆg¢˜’‚¿P bî¡c…Tª}»GÄúâwž£…©¨ãù|82qêæ6Þhѽ¶»tÑV8~›qÖ`y9Z_ gG]XBë"Œ¿°C6Ç ®Éí}„£9å…Á>á…žŸOO­Ù‹.ç¨fÜöÉD6U%V«¼‡Ìá¨f…®î“¥$8ôõQá Ѥæ{=T¹(Òy‘ç ¶4LõÐΞUMEµœîúÕ\Ät[Nº³¯‡Á³kÕ>Y{é’úô=jÉÛ[G½šKÌ$0^Té_ò®~oŠúw½rƒû=\\w ê·i •&[_a]þYº‹Š endstream endobj 99 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 100 0 R >> endobj 101 0 obj 1745 endobj 103 0 obj << /Length 104 0 R /Filter /FlateDecode >> stream xœÅ—[oÛ6€ßý+üØp¢ð"ê’:0l-6¬ÀÒxÛCZ,ÇÂdÙ•äºÞå¿ïP”mI¤œ2;’:ׇԧ‚ßKÙ¸>ƒÇeïS5FÁeÀjH8@m‹ XBÕÈUµÛ÷°Q‹°³€ßziÀûÞýN΀àÛi‹+¾ëÝÖôËòêú <õ¾ô®Þ  &ócˆ¨°„JÁ³8óå‡Ád ÷ƒ»»ÛŸF#øÌ-f1ø%2ø¦›0>ÀäÇÞ÷“†kœ²ÿÁµÛÒå‹L8Ã?×*³Þ˜6iÎÔˆ8ŒGK…\áˆÒ-§’*…U« Q]åj;ý G7HÝ‹&"¯ª¼›—ãˆå5¨à´3û¯2-‹R÷Áy o‹!}Ê—u§Åt…³( ?¤Å¯Ñc±Ê&»utÛxV,ò ¸Ã‘ève»Q¾IŠ3È¢<ª(Ô„S×â¥t×QÒÿÒ– g‚8¸ÛDLÀÏãjSÀx }€¿û²“GÅô\!žg¤Jçó5…¹Ì¼†…—Ï`‚«u#ÌceyŽyæ³;ÉL'¬Y].ç¼¥ÿÜæ-+*<ÊC& À%ø›E_ ˆpÁ[FêIàŽmÈíÕÜ-V[¿e˜îä~Ì!Ì"ÔÊ"T=œ2G¶!­mó¯¯99¤›eåfŽɃâ.ݳ IES‚>ggØ©Ë{ ¤„Åà¹oÒÞÀO™*ùSõª ´Ú:‹0Wcueã±~pÛ°럾 n)ªiùÍ Þc¾~®¡Ÿ÷+à¯Ï»¡´ñö®çRÓf¡(É#ÓÉÏ…!à_¦8‡h¹.vVÿ„Ù¶èHD›,5þ –á—` K`òÂë,®™ôð¬àŠ™&QúT,¤{º@î–ç¥GmñŒÀý¥îK‡üBf»†ÐëäÇ3„ÉùYå" Þt®gˆ†ñÄßñ¦û¯gˆ@ó-e›,_B "|Ïàð íp¨oŽÆwq¾NÂ]kÛà¦I‹(-ô]ã0ßEì©¢†q­Dvß@îw S»–×"w?ü._do{ÿ$da endstream endobj 102 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 103 0 R >> endobj 104 0 obj 1210 endobj 106 0 obj << /Length 107 0 R /Filter /FlateDecode >> stream xœÅXYoÛF~ׯ˜º@#dz¼I'.àØLªÂ§$'-¢@ ©•E„‡Ì¥¬Eÿ{g¹”D‰»É[* ±Ç73ßœÌSG‚¯øÃõ ˆÒÎS½¦ƒk€éÔK¶º¥6¤P¿ÛðScý†q_fð©“u|è|þ‚› xaÙ!ûpÕåAç®!ŸïŸ.ŸÀcçݰóú½ :átK‘nk„Ø„]O3 Ÿÿ ¦ð¹{µÜ]Á³©š÷Œpf‹09üÃ?;ÁpÇ4S7þÓî*„-ÜáþsµÊë;¶Evw±Yß®VM±†+B6ßJjÖO¡ˆxöˆ§Ò²5ƒ4­Ø ‘Ÿ*\®‰+𷦡ôþO¦¬åE.{cŒñlïXƒ éÄæ¶ØÂÀ߿œÆ)Œ›8˜¶±=öú5ÜqVBAÙ")Ѧy^Ò¢ußt5—ß× o{Î/‹|9fta™£î2ž”36:|Ó°\Íçªz†)0Újºh?â¸â+Ã2Žà9'­³ž·§’P'EKâyBÇÂ(6êÞ-h±ú žøctØÂñ½=µþiщ,£,ÃÓwè ¾ÑhQR a6œ@˜$ RYP÷5³r›ëlH ­´í‹»§\c|sÔ•«þ.m çT@£.>H/›>òˆ—M§AÓ¼€Q—›£ú›Z‰uØ‹pptAB™å#­H™í5,ä¿–QãŒ~+–9DB¼Â¼XŠà ÓíÈÓ=²Ë¡$‡t}OT¡}ÊÐ÷¦aœ .Ãâ1:†hðߟ?‘Ä£a껚´É5,]â3ŒÇ˜ÁQže4*ã<ž”)Å|f0-ò·Ò”ig´ jë¥+ö”Ìç''ô[˜bZ±““sr‰ X&lÔ¦q£d^0£*Sžk7ާc¿¬!dQd¸†Ä{"ŠÊE‘ad¶ïxFUë0Ǿëq“{KÌ㶦nJô_,|H(T…çë˜2 à:ÇÒE¡œ…%¬òÖ„4g¼4,Ããe¡-Å0Ö¢”õäÒpo>çÓ•ÅjùÄlg(–¢ŒâYVËMSBP-f \Õ³µŒlU‡Bb¹$–LË”h-3Ó0¢HRoʹyàÓ0“3c—³JýE6¡E²â‚Îáì¶wÜc›Š"ƒb8ç_³|)<€€(ÕçXÚÐJ³’fÑ õç› –FM% y–ƒx\CÿŒ…ÛFÝŒ.áŠæ;)MiV²›z«,˜tÒFM,5­µnPæ•“&!]ÈÚ!`á.'­N{Ô´¶QWRe&ã ‹×ñºÄh"šyŸh‚eØ *7ÄÔ( VclVæ!«zÿ“¤¾eÚ ®¿_†,ËV¤@»YŽ£°O·y=bTɱq`]l$£–£à£/j°Ó*\Ä\$m¿–ç(loßÂÁEÿæ†gï.轇à¯Þ`8€kјW#úðXÙwì¬çýàlÔÐ[@ì¤è]ùð!…F…Ñ»î]‚þ£Ü4áãÙå}0uu¢×ÝjÀqÁU€ßß^p½¸ƒ`ñäÔ ðé ðw¨à¤n¢ìN*ƒà28ÂKxß¿¹ú1Õ¶éVó„§[*ª>Ü´ãÁ¶\…×¢|QVápµé‚«“J Ù$áÏMÈð ¶ã)˜mÌÙl]ŪÞ4‰Ù< WûÓv;lü®“ªúf¨?$júÞ¿b=»ú›ÀøcÐôn®Ç½ øýøÿ@Ö}‡xêÚŠÝ0._0ÑSàÙÖ`³šÅؼ°',¯üÕØÌ¿5òˆNÕð»œÅѬ-M÷Õ¤Öµ «x\Ôü117`ÝlY»# Lò6³Žá+˜Ý«·ý›óàâ¾ß¬بДè«"rÓÿQäÖEb‹¾ÁÜ"V_õwÿä­µ” endstream endobj 105 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 106 0 R >> endobj 107 0 obj 1530 endobj 109 0 obj << /Length 110 0 R /Filter /FlateDecode >> stream xœÅXmsÛÆþÎ_±£N¹‘`¼ (§,ENݱ’*f'Ó‰2šy$ã…¾D³™ü÷>{ð de:ãÊ“:àövŸ}öÙ>M2úùôfóþöÝ×_ÓcàøŽOÿÒRÑÈ+‘¾ø…&ÿ\OB <ÿÿÚ­ñÁÆÂ ÷ñ;rLÖ.„C÷ðÊ#¶ë»Us``×°bÏæKiÂúÓ:b¿Úxìgoî. w?ŠCŠ|ÑÃûÙ1 °âĬ‚ÞìaÈ:Yä³·ÁŒÁçð ÀñÜc m,Ôú9¹;¥ä>)eFBM—BÝúîÝ Âï }ó|Ï 7rcqõX¼¼þîí÷Ç7ƒu¡¡öB¿góûëIãÏßhZäSQÞ~õç¯ÎêÕ3Âw/^·ŒœÛ÷ü¸×þ»ë« ý•ÞüøÃ 鲘~ Ÿþ~ýã5¥ÅZ"x>±§É¹]º·‹=‡GΘ‰ý çÐëï¿}uòª³1Œmrâñøpã´¨JœoËBÉ­T1•³JIúXIµ¹0~Ìg)šµf¡{ʤàS¢Ñá!/_Ò•’¢”T.%#qp’Ó±Ç=Ø®T’—÷Y•–É*•÷Jj|Õw§Æ/ Ö¥;Fà0åÇ^×'‘¦G="‘Ïh–èU*6””šêƒºžzÞ¸‡£[¨N®^¿{G YÞ €bJ¦‰^‚ZGåùããnu»——Ïäà ÆÆ‚(ü_ŽA=Æu ™ÉüHѺ=ˆ(YV*'÷ˆñØíý{÷¶±{$”ítIw§¨`]Ò¥˜ý°*“"ÿ I¥P]¿u•Áu[¡l1ƃ¦RÎzÉr½èúž×íÆÎÉd™h’ŸDÿÇ*ÒdZ? l§BQŠÂPÎÉùÞÓzGöÞs õ‡Þg!½*ò\NÓ7"Iåì dCï3ÈžXT¬¸l–¿ÎD)„F!Jõ(ÕE¢G¾±xöt˜gæmäÿq8cß´Ô{ô$žcÿ³x^šÊ-Eâ¸~ŽFµ`윥kòˆ|C4LQ3PÊÆ¼îÚõ‚·ù¹VªPê?ÍÀþ0šA< Í`´Ð¬ï92Máî(t"Õ=nÚ†)?ü š‹D¥pŽ+ñÓ¶$g2ã”(Q&ù´#‰çVW¹ tZÃ}¬â*NrÊ%š6±ú8Ü£QË¡bnÓäÐ¥œŠJ›†ˆÿ ÃØÖø™9×àòRä Û8á}Vå Ø„ãèA–k)s{%Md^Z‡M u‰Ç-g6EEKñ(¹e.ÒÆ›ýES§|daxåÐG~€oi’KÆW%‹eIÕŠDiÜ)‹!Ô&Wãv®‚Qè°+hðþÇ2‘äLºÞ\¡¼Oì?£5 ž•ÝÊõZ7OÍ`¹áÔ¿/ñW0µm#T<üÊ*ÅЮ„ÖŒŠÑ¬Þà|DñŒ¡½{ÞNM/.4†‹é“áÑè)‹œŸÉrYÌh¤i7lþá¦R`è´*0€Ãˆ•d&UòzÈŸEà‚˜(¿VP.‹é j&¶Ð–ƒK)V[˜¤$çD$¸wƒº0¸ç·+w‡R/*ѱ}Æn'xÄH+›¬\ʙ淹ÞÐøßˆkì}ß·wñMëBqé?ð¸…AM ½•ˆ.¡jg]€ƒv©?l̦~šà©Øã§¥À;²ÛBß{°ãwsý Ñspš£D¶«²ÈÜ)zǦ;Ê#×ñ<Ð+hF.ó"‡l–*™~àx °4ši±4*[2 ÍýÐ[ˆ2t?+ƒ¾˜²-Ûª ¶V+‡n }¤^Ñ«jòT[4¼šô²Xç,Xl¼‘w¸ú(/ÚÂ*¯Ï…þÌŒCgˆ¥±‹§¬®Ï f>i¡ÎÏ™ Å¥öÐè"[ÛkÈm°ùY¢H!Š,ZøZ¹¶›¶iË$÷•DgÄB ‘#eJ^¬Vé¦!|“[q$/ã¨å•=T)3Ò%™lr±—è­‡¬¯p]6Ÿyü ½Ø‰x<ˆÝÚøÛ9ãÄ\æ,²$M„‚Ô•ËmD6¥ì¸}E¯ÿùö¬1ƒé©i}‹& °:qQÙÖÛu+p[nÍË´¯‡/[mWöà6ÓHƪæ¨:£%º§Tç©|”)X'‹ÜR×ê„n,3tè®SC¿å‡l‚5í¢¾Ë»ºäj)¸[0læåÃR¤H=Îûx„‡º9ºg^î¼ÖfÔl—<ûØõ'¶ü¥*Ò£¬œcKÍrSË]a„-7+T÷Fó«ˆU±†B_+î1Hž½³ †t0t/bFÍ3šç]·¢¨å–…{—t*VŒiY±<2+L° £ªvIÌeÉå&,³, ÖC§Qƒ€ß[ù1«s«Í…–0ô\? ê·0ÇC‡¾•"å³ ŸwòB”´V?1óF>ž¶}Lôñ¨Žë’»ø\`–9£i¥L"mØÉP[â#‚˜–LûdƃŸ=Š{ù.Gš“d'è¼(yZP8›rT”£Àoyƒ %2tWm¨‡\©*7„B;•LëŠæ§a~9•ؘw‰ÔÛŽnÍ–]$o² J‡^ç³³m¯]·†Ã–[‹¢˜ÕíŒ98¢ Ñ`ì„ϹŽ,N{¥m…ü³¸DÃT6L0¯poÿ1¢«: endstream endobj 108 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 109 0 R >> endobj 110 0 obj 2117 endobj 112 0 obj << /Length 113 0 R /Filter /FlateDecode >> stream xœÅX]SÛF}÷¯¸õC ÄjõMB;“”¤ÓI:C!“‡˜a„´ÂšÈ’Ñ®pÜLþ{ï®,c£]A^RAle%ÝsÏ=ºËÝÈ‚?Gò+ˆ($óÑÝz͆€‚㯗<l×¢Ìa}îA!ïÚ:¡Ý~µ7áÉ >Êw£ÏWx1‚,Gä±9õðÅè|Ë¿¼B~º·£×—£ã·Ø.³ˆlÏ"Ä#„Ø6„–C#yP¸œÃ罫‹ó÷pïXÔ¢ð‘³>ÄeûWpù×èìr'5ǦÿCjç*†6YpŠ¿¥ª¾sÁsÉî•-FlÖV•C§]Õַ¼T¬K¸þniOÛ|Úocä! ²Å.E~ªs3;W¬p‡Žo¬þO†¬WEé{“L„|öv²AX6ñd.^› ¬ùŠß‹ÅÉÉ›ª,Y"òª„¤*§{› ìk<_ŒŸœ¤7×eu u–Çu 9Ë6ÏÛF’7™±äKÿqÏ1¤—gÈ¢Çd'ˆÖé©2(‰µÖä}­9¾;@Þ.+õŽTâà5ÉQ$&ëqc^Éž/*—V’klŽc‡±f´sŸx;ËcŒR¤ä® Zù´ÆÀ†®¥ýâ¹Ä5 ˆE¸¬óäËj«'R1×l‹X̀Ϫ¦Hˉ€Y¼X òÞ°$ÆéVÞÖw…ÛO=ªè*e<©ó…Æ[g­Ãßß¿‡X`ê7`À'”|ÆR¤ù-Ä}GÔ3 ŠŽŠ\$VÊØßH•%ƒeŒ# šËoK<ÑkÎåÈX5õVü®ã€ÖRÐû º®7 T€²ê*ð‹«Úˆ!‹ó¢©¹âzž¡þ®ø¾¡€¬Àš?'çÍ{J ÿMQáöª) ÿ ßmÃ-uÝ8Ô€nè?CÐÇ1È0åæîã:—tAg?Ø–näJÚ‡c2”EAÝÇʳ57á(¨BÖX}byž 0™Xï&¼)_âþI;{Tîv}‚oÃÀ/Mé­íw»··rz mwˆèä)ðjΰ7êš%¸‹@qÅÁª¼e²Ye•Ezóû@<7x~¼@SÍ}~¨Á=‰î=§{íô·!ýë8U[Þ_÷ÿ:Æ{¸½ÕÊõgŒY1ˆËnoÎ꺪¹fóMð …æùÃó'Ð"V[KÜ!?Q«(4X3ÑÔ%ÞÕÈ'á³ôíèùHž}M˜jr#”>ÌP¾‘Vâ¢PÛ‰h…Í\C÷GPÖ™ï£ë;ÑSèž= Wõ'µóÑÏ¿ƒ„ endstream endobj 111 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 112 0 R >> endobj 113 0 obj 1637 endobj 115 0 obj << /Length 116 0 R /Filter /FlateDecode >> stream xœÅSMOÃ0 ½çWøš޳4­¸!b‡jE¦&ph+­0‡ýwœ&¬éª^KZÉÖóWžíì„äï ›> endobj 116 0 obj 328 endobj 118 0 obj << /Length 119 0 R /Filter /FlateDecode >> stream xœÅX[oÛ6~÷¯8ó°ÍiS…ºKi7  Ú®C;Ì‹=ÄA Kt,T–QŠc ûï;‡”¯”ší¥S ˆ&ynß¹:÷þ½ —Z/÷íž ¾¶×n¹˜Ža¹°„víBF·öÖf…/u  øs¼\ßàa VvÌN_ Æ{òé„}sù î“ÁÙ[L“ù"Ó5sc¦ a[!=L–p=ú¸¾xþlÃ2,ø,x£¼‰²“˜ü6x390Í6­ÿÁ´±ÔAÙB·ðãÒë®ÃOö"b»¿Û•mµ‡;J6e­ Û·RD-•=êÝkÛ™Áö­8 ‘o*¼?:|wŒà *ì ×ûß2Í‹${kŒ 3|Lö}ƒðª›!¼ÝÚã0áË2‹jã†W)ÊÀ<8¦á;nv È_çE½ÀÄ(‹¯æMsÕMÅ¡˜Ã&R3žæwÍ2u‚×ДPoäÞ+¹¨É‚ ’Ió„xdé—S˲¶j…ºZ®}¤VY¥y=ŸŽ¦'½Æ8Nó(N³´^ŸÃºhà.}à[+"uEVÄE^GiNK4æé#O ŒªZ´Eö¬!B о˜/Š,á•€yQѱÒhO{ÏE5<ƬÖ%Q•J¨$ÓSɈԉ£¯ D3uZ7ˆ]šÃC”5\à ¡­"¸/ÖÐäžaù†´m+2£È²bEF•UqWEKHø²ÈÑf”(`Q¬Ès 2¯èÐÖÍä2ü†Ÿ^ïX¾g0Aö\_Í# .Îj šiÄeÙë2;ü«ó ¦ÎQÜ3LNEë©ëß§yœ5 ‡a¼L²4çÆb¨AeRÅf¥‹}L&c,‰ê¨“ÐvŒÿXÞ«´@Ty´üE§rÝ#-A.É£%%úc0y©“ùADf¹®"CÍô[{¤ÒÃxJw1åîâSˆQÏpýp}³Éœ}¿I LßT þÒîXÌ;²ð9;ƒw˜óÖ,¢ c.Å7VËܨŠ%fÖrIÁNÞÐ9›º9»ž¹ã¼\‹û¬,ÏÏ7t~~©¸|@&кv:R’iÓ@ËòŽ$Þ馣ï6,N ÃZÛ;‚Ú§â˜9˜²ÿEºÿ·~Ïó;ì­±°tèácY'ž~`êÈ¿ˆz–Š…¬MX½r×i‘ƒ,|çpx¥× +ðÑJ? B÷ùüËSä?ux%™ÝRŸêÜàýg“ŸJ?*ê§Û=,HG;e$ítùÙ6ƒL[œ.š4K°Ì´¥5¡„ÎÄþ„½€z@ïÈîÃl­K±‚~oHRBBÇÙ¶ƒ'pK”^?Ô†\OG:/'|Õ¡àú ž©ÜS†­°—s¥ãÏð»v¢è†˜ã3íÍP´á)µAT‚“ :Hý°šO[˜s¥B”$ØZgktŽ Éì%nêȪq  Ø%]çº ìÆe¨6ó ° UØÔ»ª&¬³X^[AºoÆzðÜ:çª.*.=ô‰‹&«‰™‰0*PNGÃß§¶ïTùŒWwØÈ/°»ŠNœ<»A–e‰x¨õZÅzGQppìvYH¶ô­òQ2V¡4ü> endobj 119 0 obj 1673 endobj 121 0 obj << /Length 122 0 R /Filter /FlateDecode >> stream xœÅYmoãÆþ®_1ðÁ…ƒØ{Ëå»rýЦ—"ERœq.‚ й²˜P¤L®¬s‹þ÷ÎìòE$%Å1ßݦ—Ëy}žÙ™½‡™ÿÞÐ0lfÍš¡7h–ü 6Ð<ûÓ®ƒÑ>á» Öðì˜qøûì§Ÿñe ?ØÏøXœùøãìö@?½á¯®ŸÃýì¯w³·ßøàp¸[õ!r|ƹÏ9wˆ˜+bú#àn?]}ÿôñö»/¿„G— &à_µªà{YìdþÅÏp÷Ùû»k®#>ƒk·Æë %\à¿™¬^ø¾9@D·Þ¯…®]ë›^åM ›ŸÖûhý±?OúÁ{7ø¡Cˆ¼ªòÓè]\aÑn|2û¯²IIwçLŒxöÞ ˜Ã}òÅ·¾ÀèÏÅb¡+¥«L=ªR©%ÔÙÔ.àÝ;Pë_¾{gÃp Ý ™kćÁ ñ× üIµ‹ÿ¦E³R¤ùWéˆQŸÈT_ ¥£M»ªÀMÓoÜ…ô#¢þ›ÿM¶y!‹ÉðH¸ý¶Dêd ‹«¤,j ›§ú!ßnçó÷ŸµÕYYü -_|ÿHó#å(އ†¾} _“Йç°*+Å”zMe¥)5ª•^OÄщè&ªª(l﫪¬ú¨î×R/®ÐÄ“! !$2ŸÑ(zVDcpŸˆœ~_#—OÅ:N<ò®‘y„”TšÚ…P°{ïÖ ò¬PðËSµT[WÌ!FZ—ÐÊŠ'å_æE*× &bvªzb[YÕŠâxÒ Á9óBbÕ‹‘¨•®1Zm¶¹Ô IP¤fň¶Fnw¸+Óh®Z­T¢|S•Ü(õ4^¾7в-ñC(‹kx*w(±ÀXßìjŠBVƒq–OFUVÜ[à­Ð´GU!oÍûÚ,Š«]‘ÍHXBd#¢uajO í‘•Ü(­ªšÁ·…µB}’ø5º¿W !¦hW“1§“x,&Æ¡3Ñ`lžÏÕ'•ìôoä'à,&l9^0‘æ¾Äw¸¸Ÿ7•æ;¥ÉâÒìÞfÈ8´Rñ¬@"ø´Î¤Jm‘x­!.UDAèrFÂaNˆ*ü¸¡žÇ•Ö‘ÝîšH›Üdª>ÃåËóQ˜¶|( u$Fv)³´ø¨3\{BO°£Ñê‘ åòÄßu“ŸbG¸À’rµ.óÓ {,[8­Õ~Œ&yÜ1®“I{‰øD%K ×C…ÉZ÷–§–i€<îLÄm)bªX‹KúT«æõ¡½¯8¨ñ¨*îœ#ÎÈ6Lå4NÄQŒL¡TZ“JËÕLÏ{¸NÏW—  ¸Ï jˆ©ÎµÊÉÈÅÕ¥˜¯2•§Î5\ºöQDöZ—ɯ6¶péÌÍà þ —üaNõüâÈçìPÄRt¼n}u;Xöâ'ŽüÈëk)ÖÏ †+„IAŸvÈêóþEÁéèkξË7oÞ,®6eš¡£x^.®æVóp†²( Y¡,§%ê&(ÈC—D áÉ›E'aÝ@¸RŠXši*<š¶ eEÆ£?}]‚ûìQ0IÀ³×郬6u‡þZËJC‡Y˜fRǧ•Ä‹ÜÃ!8ù]0È*ÕÄ *Èx€5!_•y^îQ÷¼ë5:Í<Oœ¸ãbj.±?Œ©º5Ýeì3¬ˆÂn1Ihƶne7¢{iGjNÈŠ7mjxäxç£AìòhÇ-\#k‹Æ Ödúù"«û70Ú†f¸ÅþÆ­~ ì¬>±±‹Ë±¶g—úˆ ¦«&t]¬ŽO(ˆ<üºX‘¡}bø8v"1;ÎŒ&G%ôÀჴ‡\²‰²sØœ À3ìáv‰fS}g!Sq¢Ã©ðââ,F‡q7©@ëeÑ?)§Në|8 ÃËbÔ|Hˆð!´ñŽyOÏÑÃGô ŸAa>þVÔ²QãZj:@Õ‰Ü*(JÀ³ O ó”dJ$Xü9˜â‹Sð×2¥Ôk±+†)íKû8ÕwÚVÈXų™òp–(ð¿.QúøÐˇ¨ÿxÉC¢ µ!Êsô ˆ2IÇsˆrG“Ì>Ã~º!õvÃM÷O¿šÛ‰i#-F¢¾†¿|ø¶ïÓ͕ɕzc›qÓUË46±6J4(EÍ éΕe/¶yU¹³ý¸¬±%OT]KjÒSœ·ŠôhŒÒà@CøÓ¶ë²e¾SfÜÀIùd%ð]ÿóœ™GQ÷²Bð»Iz{ޤ£ˆ¼I;Œÿá¤ùÝœ¹5gÊr§!m™†> endobj 122 0 obj 2047 endobj 124 0 obj << /Length 125 0 R /Filter /FlateDecode >> stream xœÅXkoã6ýî_q`3/KQïý2vÛ¢-6MÅb2(›Šµ#‹QŠÇÿ¾‡¤â—,õña6 bš4ïóÜs¯üqÇï?íKš Z¬gû½€RAaÒoÅ 1­©_ÇTÙO-Äó /þCX¬è×Y=ãô¯Ù»÷8\Dž팟‹s—og7Gúí ÿìú9=ÎÞÜ;ø6¦€Ó]qQ3ÎcÎyPÆB‘ÛAwkz÷ò§Ýíͯ_ÓSÈô£úIÖ¬^½§»fßܸâÿàÚ³Áûb.ð—2—õ“ƒ8â§'GˆØïvÂÐïaÇë¶GUŸÂþÕâ—Þÿ:ê?¸Á½8…ÈgU>ŽŽ4ÄËNPñÑìæ ²huïéÈjf¡}â“ËlÚûÔ»|Ó­jÛ²~¤v¥èß²‘kÕªÆlé›Ojѵ¥®é®\+ïý…`q s'VlÒ ¾Ód6jQ;'vs»]©švº£­¬[j5)§D‘¤jvdÊõ¦ÚQg=kÌÏ5Šœ³ ³>”ßX9×צպ¹Ðµi }Û6pÓË<²=ήÿÖ®ùœÞ1ÆætvÜi¼¿5FC©ŒîV¥¡v·Q¤ ZwU[n*¬ŸTSi¹$YŒÒ´† ÝŒúÎ) '.ëû—¶åÉðú|<Ðâ;¦šT ˆwIÖË u¹`QäŠ(ÕÛfR·È² AŒî…]š±ˆã¦Qf£ë¥±ˆ´ˆ-Êißãv>€MŸ Uí‚ÑìµÜíÁßm¬@”î¡}«$ZæêúŠ EV® ûoÞžO£`ÈëyÄ͉@N_Ùvô–ö›ŒmOíVï!þ+éЄl"ä ·"ÎkYÖC§£è̦ýxc;ܸf/Ëê„̸8zbG_dÝÌ~hüÝ endstream endobj 123 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 124 0 R >> endobj 125 0 obj 1820 endobj 127 0 obj << /Length 128 0 R /Filter /FlateDecode >> stream xœÅVÛnÛF}×W ü” ê†\^å /)’&EÔµ‹¢H‚bEŽ$ÖÔ®²KZÑßwf—®%Qrú¤¶Ò{9særføyCD¿?ð£˜I¨Ö“ÏÃZ …„$–²âTÈ Ö0¼gÐò©½yÿFpˆ^VðÇDO"øyòámÖÑ…í$:†ó—¯'W{öy'úîö#XN^ÞLž¿Î Žàfñ¢8Q”EQÇPŠDÎøGÂÍ>ùøôÅ}NNTJE"âZ)‹Á㮄JiØ{;…yßACîQòc”Y* ÉUÊxÚtP£k–š*®3g¹ÄY&Ê„aÊ䌀·ªê¦D磔ÒÁ­6[ͺP ©ÊXÛÌۣѕY¯&O øÓô°m¨ˆ™Í»QlãXt»õFu+Â[ÀŽ®e̓{¬É(+§mécnBœŸG;ÄØß´tµF¨ :ÍÄétÕ5wHT-öAuТ"¦mcn2=âÆöåçú¹CÊ»î|ötS¶Íö,Y˜•ƒn J×CVÛæ–™P;u‹´èˆÕê%²£!î3FY¡éQr†Ž‹(“"åÜÅÅP™©H¼²ÖXxC¶8Pa‘‹"§ÊÎÓ"ܧÈ-è®ã¾e)6 ÔMí#ì6X5‹oKG± ‘kÀ/Xõ]èkäà]æÿ,Ræ4ï=܇¼,ÕÆ[öM”` wªíÑùöx×(xh|Ç…-s‘6Yd'€½~//GMál¼d‰$§rÈxð¦{>›ùßXu¡ò»•5[jÓ/Uý+;þ“éõX¤ã#¼€á‹Ù‰•ÚlP‡òò}bÉócNüµêÊ îàÃYÒý|GG[¯—³qJâÒOà2ÏŠ<x_^2>7·³aJÓô1¸©¯ü±ÿÔ:óèL“)}2¦„Ÿ&³o02$K‰áâ$ý3CæRäiÌ3hv~hÏŒ˜¾>hnÀ#š•%5%Ôì~îúÁ±5}[µv6ÓE"rêðäøΉ=9.âÇ@èC§RÜ\Y g‰ÈHŠYÁR¢À1Hø`8/Ĥ|ì6wׇfÕ`-FÙI¢üèÒ[?\ŒÝMƒÚðK…¯)·ò¡ÕÔœ-yb¬]âÞAºö¸Ão¬™+žŠ Z³l*@ß”ßOí˜ið,)bï[øjòãm¾# endstream endobj 126 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 127 0 R >> endobj 128 0 obj 1217 endobj 131 0 obj << /Type /Annot /Subtype /Link /Rect [ 226.17 253.01 366.05 262.01 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 130 0 R /H /I >> endobj 133 0 obj << /Type /Annot /Subtype /Link /Rect [ 521.1 206.473 534.43 215.473 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 134 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 194.473 221.61 203.473 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 135 0 obj << /Length 136 0 R /Filter /FlateDecode >> stream xœÅXkoÛVý®_1@¾8ˆ–Ë÷#XpµëÂvšZF·¨‹‚"¯,nùPxI+Ú_¿g.zb¿¥IZ$ggÎÌå—™A:þþƒ¼À¤(›}iïä™d¹í-Ç%ÃÖL‡2j¯Jù­£ ³»ÂOó.6ôË,ŸéôÃì·ßñ0&»™~îN?Î>­ÏOôo¾¾N/³ËÙ?¿wÈÐi¹>¤Èp4]wt]7 ò5Ë øIËŒ~»ºß?~¾{÷Ž^-ÍÔLz’¢¤û0¯Ãôíï´üq¶Xž„fæßÚg…¡‰…7ÜÄ?OS»~òÀ±õÓ'GŒèïæî4kó£´ÝÂö·Ò\6ñ4¿ãÐaèÇQœRä›.~™ž…;š ۼ¸ûß8eƒ]äµû`,2uÍC±„W=Ü @x«ÇÑèq+¢$L“ÿ‰˜@yz¬Ê:ªêRÈ&Ô‘Ìèd[šç4.–qÙ=_=âÆãó[Z‹PÝIE%i_Ô$B™¤{ŠÅ:ÉÝ Öd¿4U›°¢,¬¢ .­‹2£bÍveëŒãô`xñ*\¥Bjt])Ó¬Éz+Êu àU¤s sRÐhJ )Ù %þ– ÛST”À±-ò8É_¨*XÖ‰HcJråÖ,®×cQ84úPWG‹…©,ÔŠ(J ÉDµ)b9§ê(%¿SV(IµDbW{jEéÙ4M •(s8º/èqlËâ5‰åØZ×yT%Ì’j?§Ý&AT;pšÀIÑ&ܹ6pkèCßÓu|TÞÅN¶[¨"ŒV¥ŒsFe!Ûç*o§‚sN™º¡é>*͵ì‘e¤ü’Jms‘’&9a®Ñ’ãJ¤‚UäiŸKÚˆ0FèyQQXW8—Dašî‡±³òžxMò(­cz*Jc‹.è#>VßöF\e{øîÝD„†åhJWw{x#6á«`®¶À(©8çQsÄuÚøÔ0Xq²­L­[Úb0}î‹çú,›ž 9ô;ý04ò?¢NÄ„b®ø=vÚjϨ"Ëp¯²× WÕž¦ÅŽIÔ×óûC^}(ã™ï¾Mèš´é¸ùyq½\ÐòúÃݲRDB‰;jê¾f²áOR‰Œnþ}ýóó•¥C¸>-éáéîn>´7|Íf{ÝwöyчÛn–S¦¦¯¹&ëùËH^6}üôİ'Œ-} ƶw´î¶L"A7·÷×wÏWîÜœogIc'º'œ¼ S'É[,dT&[Vº_|¼}º_.þÓ¸x~;Á •apMÛ>hJÉlHq>iCiVš¥hBiò§ YLÒÅ2° iêzOãƒÿpŸ¯_ædÌÉÆn™&E#@æCìª|·Û÷ï•§MXÎFÌ-Csxm˸d¾J^ ísæÑˆ½mh–÷mß½`521oÙ4âÂ1´€#ðôKb´ó,D“Tœqášgº@2ç Fì=s*‰ušþëÄ[&â¤Î*ñµún~L´IbY«¤øA?ª$ÜŒ¢4lF qY­= [.sƒùÀ"Èe¡Ö§l<îºo3õ{ÕNÔ¸Áòiåó£®*à Ýÿ“ÜÖÄ »¶îžãíJ§?B¦¯…¡ª[µ Žg5Šl’8ùÉD2§U]ñܰÃ@Ä+zᮣjý念¬†° –'°òb7œ0l›gndÏëfT0·a‰x1’ÐJ ;âxãLt#ÙÅý40YÜÒlßYãHÞ\ž1P8>ˆÇ†nÄ`ÅR «ö[Ñ$e—àñJ4Ã2µ)žŸ sà˜g¾_ôîƒT][£_6 gTÔpÅM}›†x‰ŸŠRjÆ~Ç-¯$úbZ€XØ<ü'+LCxgÉµÏ j–bî×0Û¦Í'iü™7ñ5ÃåQ8t¼€‰ütCJ7¨q ˜$å™7¦ÛpæyÁˆ·†ùžf9Xßv­öÔP€[ êé0†ä†à‚*½E#›cNè(¿xc ÕÚ#ú-Ä¥!?_…lmDŽ@ ‚3(7¨¿„çÑI6;–fYààH6D“U ZT% -è`©ˆ[©žßÐO—ÏJ$Ì÷hì æ:Ì£„SÒÖL¨tñhÄPÕ¡ÑmK·öl¦& +àÀ¶E…ØH¼Rª&ùž'ä3<6æ¢nÎ"ƒvñ›Ö9~¿Ô p UV½$¨œÉ=Ê,;/ ,ëöë<ö[â\ó‘=rŸ$¸BÕW};Y•Iü¢Ú7»„ß¼+Qí„ȇèq®8]‹]W»â¬r×q<Í,q`„úEäêXËö°UàPAer.sP˜>fK¥<”å竇ëûÅœn>Ýÿtóééa9§ÇŲ½ZþúÓóÚírqMÓÔ7Í7“S‚«ã¨ì»Ð6ŒÝ£7’úd÷‰M°skèÃ~ƒø¼VˆKp$—Û N¯—M{XÜõ1?Y¿v‰Üp­4‰›©†u"3áJœÁ¯QÚæ”m‡’)4üF‚úäm„1øÓ|™H°îN ¼í—±Ö”mƒäí 4ªÂ VkÛ˜d­À³]ãP°}Õ¬p‚¶Gl{n_„ŽÁY}±¶tgÄþ/ršÍßHîˆqWMi 4›ÓæØÁèâåKAð05‚ŠMZ‰þsYÎMC 5cjGŸQ?ÏþðGa1 endstream endobj 132 0 obj [ 131 0 R 133 0 R 134 0 R ] endobj 129 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 132 0 R /Contents 135 0 R >> endobj 136 0 obj 2105 endobj 18 0 obj << /Type /Action /S /GoTo /D [137 0 R /XYZ 72.0 720.0 null] >> endobj 138 0 obj << /Type /Action /S /GoTo /D [117 0 R /XYZ 72.0 720.0 null] >> endobj 139 0 obj << /Type /Annot /Subtype /Link /Rect [ 202.52 259.417 273.89 268.417 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 138 0 R /H /I >> endobj 141 0 obj << /Type /Action /S /GoTo /D [129 0 R /XYZ 72.0 720.0 null] >> endobj 142 0 obj << /Type /Annot /Subtype /Link /Rect [ 305.05 212.361 335.06 221.361 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 143 0 obj << /Length 144 0 R /Filter /FlateDecode >> stream xœÅYÛrÛ8}÷Wà1Ùq8$xÏ›Çãly+ÙıRS[“y€IH†$^¬h¿~O¤.$¥¤ö!›Ä%™зӧ»‘¯Wsñ÷}Ä)gYyõµ汘3?ê…󇇬dý÷´êè ¾áÃ.—5û㪺rÙ߯þü /sæbÃöÊg6?^=ɧ7îO—ï²ÕÕo‹«_ß„ÌsÙbyp‘:®º®ëy,q|žÒÎ%ûóÅ»ÝãÃÛ_~aϾÃÎ>5²fïDÕ‰âå_lñ«»Å‰i¾Çÿ¦=¬-pޱc¢~ò" ÜÓ7GˆØ??<5}û O¬lzUô!ì?­"ö«µÇ~žµÃ=˜á[q ‘Ÿ*ü<:âСgNr‚‹ðlø²Ï&a$Ù{k|Æ]'F¶[„¥1¦@¼ß›ÃöþYÖÏJn­a3ŽpYÌEØæ¹Þiv¬EÃ+tËô’eºÜò›jwLT9Ûè-r¦Õx¾‘l«Ú5k×’=‹ZI,Á†­Ø5l#5v±®‘,­xl®ÙS×2Ѳ'ݶºdªµÊ©F#•r-›ê3ç¼e[]a¢( gäj¹”µ¬ÚbG*¦¡F½ÆD–ɦa7î‡-Ö¤ŠXI¶m+ë Æé/ +ԉݪy=Ñ$NAAšFih5ñœÑ€c²èýFVÆ™®*™µJW““=—;~âbWWè4I§.uQèmã ÉãSŠñ„jÊ(‡¸ë9n§iEC4= ¸Û=Øû§ãÛ…TäUPÐM ª6y‡_ƒ¡óÖ'‰ãrXðxFÈÁúׯû˜~~ñùåYWøÈ×ý¥ Æéq  X©–F·/•Þ©LäÏ”w¦ŽOíæÞÔîè õÞf ñ¬oUÖ¢>!D@Ódu<ÂOÓ=™¯¦Ä4ŠZšºÀoK‘tP_QZ½¸ž*åû#¥ÌáÔ—4æ#ª>¶uJ„¢0Ýñ¡€-õ4ˆå¾kéÙûûuÇGv£†‚S¢}ÏÇm8T}ƒQÖºbE­VXZ¨Pïš‘ó¶¦ÖPjW ðv?‹§Â)T˜{[ÖÝ]‰)JÑ€<ël- >ÖÙÖ]†€樔)T?Kئ®ízKM}l‡èclçd›w£ý^OÝQ— Sà.ÓÔ]îC½bX^0Œ+=h  óÓœlT¦3!ñº×áqÖ©”ˉ½‹›m ÇøFe7—…¾ÎìyD.?Ž·D´…‚0šÙÒ³Û”…´ÑPM©N <÷ûäÐRÑTl£rh²µ,…m{ñ+…³«+¶¢ñáB÷›:QL7_Q2#è;æ78© Á/…m†Ž¦KšfˆÈtYâ-|;5Nг´ö#ZSR%ã±’)ñtLâdæ¸û>Þ}\œ¯X#€Yê0 Þ˜4¡•Cx¦…ÓsM3ÓåÅYÛÂÀš–†ÁÌ!woïnìoìÍÇ÷ïØ#JЂt¼àæðˆ#&Çí¹ŠÜÝ 'G×^¶åƒµ‹·€0jm9³´ö˹/ QnÒ8qyìCßî;죽W{Y\hÙÃ4r0Í»Þp×DíþRÉ"ßGB]ÑÙÙ‡ŒÈí«f#3%Š º óGci¦ñ³õð<–¢Ä‰}ºÀMÓé ¯Lg`Çã¾[yÜwq ÍþrNL¯ÿ"79= ã&¥Æ`CÚ÷o`\C¸¢k5ñiΘ]ßN¯¿ˆìtNƒµÊØmß§ïÌ•ÂMž+ 32 1ª5t¯¹\ªJöÉþ¦ùw}¡J̦¶m¦UA„(ÔÍZ—õåùœ yÔxx¢%ûâþÝù„÷“؉ü~Œšl?n¬›ikçNÖïýÌ1i öÐ?´p3]B®]·ÁÃùñ*Û ¤2÷ZµêЇe!VtgK7Ð[6C*Qœê"¿erCáºîoÍEKÅÖv7çS¤‡i Û8Gÿóópõ_Í•Ì endstream endobj 140 0 obj [ 139 0 R 142 0 R ] endobj 137 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 140 0 R /Contents 143 0 R >> endobj 144 0 obj 2505 endobj 146 0 obj << /Type /Annot /Subtype /Link /Rect [ 86.72 394.365 146.99 403.365 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 148 0 obj << /Length 149 0 R /Filter /FlateDecode >> stream xœÅYiÛÈý®_Qñ';syŠã`Ö;^8°“Aàñ‡ÙÒp‡‡ÌCZ%ÈÏ«nR)Ùg=ÀhZì:_½ªâ~™Xdâß+þD6ÅùäKwfQ`“ãwGžO–kØåÔ}ö(ã§>Øý'üÒáÃ#ý}RLLúyòé3¾LÈÄ…ÍÄ<§.ßOnôó7æw×oÒròãlòÃ;,“f‹}ˆ,Ï0MÏ4MË¢Ðpìˆÿ³i–Ó§ç·÷·^¾¤µc؆M«eEEÑŠìÅgšýyr3;rͱìÿƒk·Êí 'ÜÆO`¨¬}á¹æñ7ˆØïO•BGŸáDëæ¯².…Ýomˆþ¨ýÑ¿ÏúaîÝ0½8†ÈwU~gð™áÂ?›þï³AY÷yo̯kZ”5’*Y·YCµljø¡Íc™É+ê‹àQm>G” JÒÅBV²hh#¶5ŸTr!8I‹%‹Ì§:N?¼s80î‰-JÁtQx~gÌm+«TÖ4{ ýTÒ_ʆîdÓVý$Ñ qË Œ(`·1ºÎš`™–êÀ‘tê³¶X~`„>³w®cÔ£À;?ÆÔ£Ú–óiµ‚K·»0€ËBª¥Ò±He–PZœ´+Æ:x¡[mË–bQ 3 _•4•a\J±Íá5]äòi9±å£"ØSß‘£;m³)_%i.‹:- ‘‘¨*Öí|¡%¨…]öš>¥Ž]$L§4ßö¤^‹íAÜN!Atb‚ä'ëó'÷óY70Y oôÎB‘Õ%uuÇÉLÂ4X¦-.DŽì(P7`¦éùÀ;–c˜ùÀSÚ™kþôlU¥±|vÞh×¶.I2 ±¹¦,,¶ÛõçkÊØ§òGQlÊJ‘Î&EBt;ÔVÕßÔ0k£d‡º:îÇå¯04~ÿŠ4SïI ËòGÜFÄE©æg®£G÷dTÐýìêoÕ‚¡Y H·› ¼FD÷=ßQø-te‡ö%º^6"{‚1UÙ.ù :ìÏ«ªdˆî*ä0¶w"©‡±,¸µ4)ÃWdjÔ]–jF*«¨’]<ضÍjäê·l‹¦‚oŸ* ¢Ÿ†V9Á‰U=ІZ>{ÖbèΔäE |,‹Du¼•Ør-vs>¼I ´Æµ,RYÄc2ÃÌeƒœR.ó€–‹EóÛa·´ÝèιŒƒ^ëmP-‡aOJYwî*dÎ3'(Téîúc7¯àgÍåY˜*yì,”}êZ&ªåÑšryRD_Ä™–ã_›ïõtþjxeø¦a‘ Ñõ1ÙûNÏq¯ôHìFQB­6¸ß«Ð>V§¦ÙR(d,3&1ÇS(@t¤²Ñ·»<©‚kënÕäȱ¬ã” ô–®yEs”p üœ·ñãžÉÁÜkÞ@ÒÅ’íÊÒ¦Á’g%¿ý@ê8Ç; ùTÕ|EÄ’%¶£æØÎ‰E|ùä1ä1°M5ÕŒ\¸‡÷´@ßFÜNn.g;Š‚Ð¹Ùá+ãå–•HÔ‰¤·Ø¡Ê# H”mkü:JT¡)…8À{cË\fCwïÄ‘$)§ò ä©S)E½íû…ò :TS©ä²ÜßîæØ›’PÅÝÖÌE˲³y½ÝWyUveö(°š@p"1M°Ä¡yn0’/mZ=©ô`‡ÄÁêw;înmÉZÀtÔ¬ Ÿc‹,Õ$9Ò*–@ϲ9¬Äº^I¶@jè'ó¹L’®0ã2‘{°ê¡gh fÓ#käo2n§U·Ö4ŒŽ.±Ñ6 õâƒ1qâpßYY'˜K:°è׋¡ÐˆÚ”-Æ^pKnˆC£"çØ¨x5¿î,8ÕÑ3§‹E¿·ؼŸEý¤«2W¢RˆJÚ|uÐ|º8™‹]Ó;6ër„üàZ„ ¬,A+˜÷ƒ„Ù ~ŒæC†Gù4ýÅ…6Ò ·%FÛD±f¿ýÞ ©º(4z”²§íéÖEt‹øé ­ÿ0ôÀE¡…˜ì¬ÀÒWôHöú5=»¿ùpóvF¿§wwýHJƳ ¼€@‚åô¯Å”Cu¨´xx¾~x1rËÇÄÀï=¿ÓËî><î%„é´6ærÉ"!‘O~ÇGèÔúàåË”ßÒük¨+ð “} ÂN!Iàpvòƒ§ôŒÿH›WoÔXÌ@n6bwèGøß—^¬™@"¬j¸ Ÿ~ß'Z¿KÊÒøéOÖv3LÛwºÞû~qÌPP5æ-lÏ~8Ñü«ªò”€¯¸ØöäDkgW> endobj 149 0 obj 2398 endobj 67 0 obj << /Type /Action /S /GoTo /D [150 0 R /XYZ 72.0 280.09 null] >> endobj 151 0 obj << /Type /Annot /Subtype /Link /Rect [ 306.7 326.776 468.62 335.776 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 153 0 obj << /Type /Annot /Subtype /Link /Rect [ 475.44 85.494 505.45 94.494 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 154 0 obj << /Length 155 0 R /Filter /FlateDecode >> stream xœÅY]wÛÆ}ׯ˜ê%vCÃø(¥±+%é±ã*R,°Q…D±=ùï½³ A2yrewçóÎÙÕÓ‰C6þ¼áhêR²8yjß9¹ä…í« $Ç·Ü€Ô>”óªÞƒÛ=áÃ,ÂÜ>Ÿ'6ýtòå+¾LÉÆ†Õ‰½+No¾>¹êéçoìo®ß¦‡“w7'o/rlº™mCä–m¶m;Å–çNùÇ¥›}yõq}}õáûïéÙ³\Ë¥)YÑGQ4"ý•nþqrq3pÍsÜÿƒkWÚã 'ÜÅßÈÒY|øöð›"6ï·oµBϼ㛿ÊÛ¶ŸÆóhü1Ÿý°·nØ}/†ù¦Ê£#òðÆŠ¨p܃ÙÿÆ!e‘uvÆ<«-ú<—ÕsIÆ«·—ÓÝ}c…‘„_Ë‹—D.ë¬,T'`\c®g…!jÌ Ã‘*ïÿ-“šJ©¨lj*g¤’r)IÔÚ.Y¤üŽïó2yœPVS%U]â³bcÍrñ@u‰%­9=ï]{Gõ²’ÏYÙ(Rµ¨åÙ61?Œœ[SÇKø¡Ù»X«§|¹<;{_ì‡vJÊâœÞ¾¥TÎD“×”ÀÄ ©²o ,Ä}.Ó‘qÁÔò¶9±QðßÑ’pjzÉÔoCG+úy BÞ¾‚-·¯ÏG2¢©±Œ0žv2²ݾú Ö[Jæðä.½¿}u*ðqWÏE}·Èæõ]QÖwò%SõÝZÖ§·¯o_ÓØÂxº%Âò©©èïï(EŠ‹[×ukÒ¢¢t|’J"$ic§x.+yNE wöÄ˱mËaObßèBò—šÓÒò¬x0ØÉ%BIZ‰5^Ì(+ m›³ZVÖXêßcŸ€œNÏïãUÀÖ07¿¬fVÇBM‡u–Å‘"ô=˜ÁòÃéžýŸ´"ÿ3ňrö\cä¹{$¼Uö,êìYÒR(…C-í+1H G¤šdÞ±.M„º,òµÞÍñãhÞŽVÔûú\×r½*[aŠ‘¢µAàRVŒ¬Hå„ ‹:_[tÃáeŠq¹…]yy/r`JÊŠÒLéGmYÂÀ±ya°c^kF ±S•@‡E¿Ìh]6lB%©ÑþåR'P˜„â(Þ£èOÑ©ë»ÇdÐ ÅÔT¦œ¶ÆÁ×KôËŸ¢iº­«Hc°³ÊÙ³¬Ó›Ìeò¨HTªe“%RMHä(eÑ%¢@Û+9á—9))p"²” Ì;ˆaÏö,Œh»¾?6î~q¯ÑëùÁ‘ÝPì3ŽA7ÔZd…F,Sʾ€f™ÌS5éŸÒƒ¬!î 7±oEœ¹©…½é/`›—Ãlê¹h¨ð&ŒœñömÆ;¦@x×ǣ뺡e3?ûn4–ÈÑ=U2==aT‡e£WÄS{Mï²zÎC—ÐF±`ý½¢)t¾Ã|† Á(h—¼ÿW±ŒÝñÆA¸ — ‰ l;P§t¥êzBgÏ4+#Cðš \ß|èð#«]vc³Ãh¨½˜j™n™L8†-8 ‡£àDœ3ÂF‚UžU¢xw²ªÊê±ÛGÄè‚•"µèGÅ®÷N§Ø61ÍM͵µè†9HXV{üÆ8;K´Ô Ý7zÞÿ-€Q&Ζ ­ôk0§i"<Ç9ÐÃDÆ0?Œýc”5^w]WóË6 eh“€$Œ×ÏÈ÷ŽIœ¡Ù$:å1„²Å²â ê5Ž Éf‡á9ù"Ë\n!Ï÷Øä¸;6iØ÷'DC’TWzÈ0Jj]5ÎdºjøÜÁ]†#‰áhkðpµm÷VoŽ&XscÄ”:Ùc ëïØ¥ÿ±àþ“ºnm°Y‰™Yš =Aþ¬IÛÉÐ ë=ù1Çal;ŽÍßh]Km æëZ"Ö<©=5˜#BÒ²úy$ÄXV6s6ü—•‰“A[‰º¢:Y“Ã…ça"Øœ,dž]ÁˆõÁró£› u÷!ˆv– Fë?Ù©÷eSÔ=.G%hÎÓáÑ@ï.ëÅYÐ{æCQ z=™rÌ× ÆÜ¹(}èâk¶äºuw4²³1SghÌ Ô~(ËÇfy)²ÁH×lU–è1Üð‹Ò­†v»`mN5ÁXÅu{®&ºr®—2ÉDžýÊ`26š„']>)ø;’½ih…|` w,yBRi0á7vØÇ”3Øc¦ûMÈÁÁúøƒp›ÆñMñÑý&å|îÓØ²»ù}¤&ÏîßâP§uXóÃÍ">&e : ³óÔv½Nµ9:É´IDK Å¢L³Ùº½XÑÔ©ø5&ã¤?Âî‘‹L!¤Ìàfz å=1`-øbçM9{£»àØ4/Ü1M·t=®'sÞB-Ì7vè/°¢Ò5߉%(oŒ=-VKîåOÐ&1: ª,Õ°Å´  ãè½Wà„f\Œ“v§öâÃÅûú+]þöé#‚2y¤Ï?_üvö#ô7úîç²NËz×ê;:âR€èF>zšïµW+ïd"t™óyU\ø=ºs¶câÃøRèLM‹FÕ}O?3Ý´ÜÖY»64ÏJ"MY•#2ðãÓ´XLFU ý;€ü"‡ãsàr{™ÆÝ¨=RˆÑiÏ¥Óñ-]€dGØëxÝm ¡ö~ Ó?Œÿ)/ÓæÞéCþ§Îå!´cËó¾ßms|Ã-DŸ1XÚ{V…Šn›Lë‹Ðw"zPïîR[Î@øBDêozÌÖ¬ñí&_Ϭ@˜³eƒ €oQWó,™“†‡ê®`´4Õ"É„2Q¡ù…|©MLT„fåöpó¥Xðåª`UrRgåî° ›pºÚ$еa" ়t¨Àp÷ÝäÙÞe´.ŠÅ#÷ËS±¬Û9uB˼1q½Æ¬Ù ;Ön‹ôû§í±A×}½»ÅÖ@#œ=[0c«rì+Î0Ãu:Ôº>¨— Î8|Ð×Vï7!W'ÿ#Z¡; endstream endobj 152 0 obj [ 151 0 R 153 0 R ] endobj 150 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 152 0 R /Contents 154 0 R >> endobj 155 0 obj 2509 endobj 130 0 obj << /Type /Action /S /GoTo /D [156 0 R /XYZ 72.0 347.583 null] >> endobj 157 0 obj << /Type /Annot /Subtype /Link /Rect [ 253.41 222.306 313.68 231.306 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 159 0 obj << /Type /Annot /Subtype /Link /Rect [ 219.557 169.2 243.565 176.4 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 160 0 obj << /Type /Annot /Subtype /Link /Rect [ 160.358 82.8 184.366 90.0 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 161 0 obj << /Length 162 0 R /Filter /FlateDecode >> stream xœÅZë³Û4ÿ~ÿ M¿tÔõûQØÙiK»t†-½L‡aù ÄJâ¹¶œZòM³ýž#ɶdǾ°ÀPÙ’~çýH?ÝćŸáY’]s÷ɬ$ I”š¥$%Aì… iˆyNH_YáðèàáH>Þñ;Ÿüóî×ßàeI|Øp¾óçÇ©ÍîÞ[÷ãÿ/¿ß'‡»W÷wÏß&$ðÉý~Qx¾Ÿø¾$÷¢°ÀBrß_ÿöÃåÃûï¿úŠS„GÎT¨;Þv”?ÀC(È+x,Éw­,ÛyÕsÃB2ZzäŽÐ}­øýÔ³îBÎm_—÷…ÆóümJf"K|¯Hˆa ¡}xóý›×÷äKòö§ B¶»òñ»7?½!•d ù;yªP=½é)nº¢›,ò²0Ä@ddpòÕ¼ñV’GZW¥¥ÍÒ®í:¶“ƒš*q“—ÀûŒ#à% ÿ3š›"JDE‘ÇFn/¹´=iªÃQ‚"O{C†{êÚǪŒjϨì;°BÙ¶ð¿c×ö‡# PFEÊ«S_SÙv`‘äÈðó3Z—dÛÊãÂÆÌ Ñ'cýÈ—:+ Ø¢ù &'[e‚M+$9Äú«lß×6ˆÛRO /‹0ŤcÝäûä– ?ùzÉEVxEEÁÀp¶üÍ7äÉï*ó ~†\3|_ßR`è‡^æ'E¥É`Ìl¶8W²ÖË‚h¾Ä$P†Ï;8(ýÒŽPÑ]LÀ[†„0õü‚B”en6mn†„lÛA]{äcZoøÖ;’=°!œtlæÂwê-$ó+—Ç…a8Š }÷;ã‰[x`c`Ÿü/Ó<tú³k–Erà•h0ÜÊˉ=£g„‡%ÅÄÁ‘>2pø%¤4p!±ý=¿ç5Úµ ØA4žØ6ª8`¥d2Ñy”' ºÈ³|yÍ{4¯U; ƒ[{ ÜRQGü›v²FÏ2¼læ/Qx¹9$LÒñY®‰¢ÄKc³mã%¤¯ †Ð-¬¯åàÇÊjË¥¤!;ÛA‹Ï“ÐL»èsö Ù’Jªª-¡¡Â~(=ò7ꬵ!ßRtž"ÉÖ¸R©-g`ȸãÍ(È» ˜21Ð0;À ˆAè»9«”w –ÈTŒs,Nyc80!«–¯®¶í.Ì>KHEæBÚµ Ø\)^Œ!ý\ÕàݸXy¢p/!V’<ðö,ðáÜrôir4zªJi;Yíh]_žU|HuW£EDg¾_„¹ë±ªrYwÛ«ž ·¯zKù“Å/¯ýwIon6î¡(„ìSƒ¾½V –hÕ¬kÝ‹â8÷rTPÅP™¦^è\ÝüQÎ`ý‚i­ß,ÜÎq^Ⱦ¦‡9ÛA` RAy² ÌÖW%¿ÔkÏÀTÖÉPWʱŠ#¼Ú©s¸f§^”튎!l©iùäȺþ•ÇJ,ALš#2¶{j…¨¶µÊ3`´dçŠJ üÀ+b,-cPRΔ¯*)ð!ØãÆ9 ò¡Âä6ÊŽ¾UWt zL ¾"Pà Òì©«@±:Æ\+Û£4Ÿ] ›m°Ò²eƒ`TDÛUI‘ç~‘Æ3I$ë’ÓβqãÎT`6ôé,©LÑrèð ùͱðž{BÅ\œB­å›$òR¼Æ‰€ðT-þ-ZÌ=†ÝCd€+(¬R AÁâ1ShXStw¨‘Êjo*–¡ë¢ÐqQtG8X\c´Ù TŸáyéw¡²8JgX°@Ó•"Ѿ QlȲ†ÉiÊ·eÜ“*͇™ Ê­J‘[ZòˆªÒN;ÈÈ8^©’IY¼o¶X*âÝ쳪Jpö=ƒ&5dðºm®…8 f°¨œZ”Ò–É3c|\V0 €Â‹z«:tˆs6"·©1kÐоPì ã(ÐãˆÈ•G3P5å‡ Ó 5°­<@\ üLV¬ƒÞGB{ À:¬,ð»ºbÙŒ“.xÁ¢wãU‘ÌPÒ›Q+4AËO"Ø€ßÚ›ÓõÜgb–Þ7¿”¼†ª€A á‘'·=R”hÝ*“šaòÀ‹±3ÒôʉCƒ!ú&ÿÙæ0¼G˜æ×àìgÖ§ƒ Z°RƒJx×g^H6ñ³Ù© bHå;Û/Ôi'´)àÛKŸì1P †@IPx>öîipÔcÑzd†>é|€T˜F8}2«¢¡[u‹hø¸ðò4öƒ(5!Ï©ß'åºÓÄS&$׎ _gäñ„`öžˆCÍDRûµžuUd-(ß_ÛÈíë°în@¶Êƒ­%“´ª­…s…îf- +M”)†=ké /]^:‹Üµ¥½]MÕlÈ‚14TÀ@kj‹¡ ð­$¸&~!Ë/¡tÒÁR`%QáÅ`%98„ÞV‚©>‚Ü™ Æ'³mÑÚ ºj …Inòó+” •È88ƒ›iIëÀkÜ' œ’t‘Wn˜ÕãîÖ,¿µuººaòØ–ÂF¥EAm1QÊÌSÄŠ!"$|Ó<¾ráðµó-˜ÉÒD—z·0<¦3ìf#_Ïq–”íšp0¼ÞØh1\–a&A–4¬—fz7Òüh\˜ŠroZ|g‰zgKJ{K#•uΖéêh\P¢HÝwN ëzÅè`Û2®'¹—‚,ü N‡æ¼9»JéÕÐÚcƒl1ÖÝNknuæ³Êû–ãA‘삈o8Æn øYO ¶D e .See-ІvR¶a LŸÛô;› Ífv¦M–C“o­UÐ+”È«ãÅÌÁq>:oÙgm&öšÓ—Ú\ެÞÑZýè|³s9T ƒ†9ï=Ú—êÜ0âÔk3.Ö<”›e³>Î`®ø©ï…¡šÅäW6â• ”:ÊÌ'˲—uÉo-èL9Pº¶DkSV›goÒr¤FCÏtGç­‘ð@WÎYkr ÃÜË‹ ÌìŠ$ªÕê%Œ á !FEðÇEø{ýeM…#$Þz6‰c@[Ø$ÙBĸ1“¹{ž+]F Ô8w°OhçvŽsáÐå€/ɳYb¯Õ ÁàÅ„N{#­5Ö&v-ÖwÒA!AÏú“½´×Üäk›Ë{çXîrŠ¿_|éÙ+/ç@÷8œCÙ\:€M×»Æc]IÕaܼ›£‰ÂNÔ¹¿dWÆI‘Íò»6¸ ÒbBâ@ EmB Ùí…¡Ê芯îUDÏ^Ñ“,kAõà“UDƒ·ÙêŦÏÔ!¥óñ{F@ÜEëˆá<ª2·Á–\€6i‡â^Ðmº½ çé&TO‡SÏk›˜ª©qih”&½-4Ÿúé¬P CŸi9#§¾ƒðÂÔ08Sƒ¢ýûÀô÷Ôp­ÅIìŸoÔ/iήMÖë—4˜·°?´c«hõ÷Æ©ãZr(B/  IJáºåqª\M°Áͽ·˜ ÃÙÇé &Ãd–x~Ñ9 Êt‡ÊÆú̬¨Ÿ'ÒÇH1û¥ÊþéÑüÒn}ǧg5„Y;¿Æ‘ÔHéJoøÐ ª¦•Nù˜!L²»r¡µ¼­8×´íK:QŒ’±ŸjL³bæ?6¶0.LzõÑ:ª¡ëFÑB¡ +KŠæ-0ÎdÕœ]µ:ª›àÁ>KÆ…žN k²µˆÙ…yîEI~“W®¾ÚB¢ý¦IQdѵ-žu×ýÐûØÑc ñw3—ë¨K›6Q‰µ=B ½­û÷{çÆ}iãà66¾4;WÆ-ôeGF˵v>V»ã*ÔËIÿi­qv€0ˆµ×Ò,âdžQ9*õ‹&|Ï´Á“·Áö´#(6[e%T7É™<·Ýy÷üG2À¤âèÙ\ýFŠ=®ú ZÏ€Ÿ™‘ï4Vs|Õæç iˆ{ìcÃJ endstream endobj 158 0 obj [ 157 0 R 159 0 R 160 0 R ] endobj 156 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 158 0 R /Contents 161 0 R >> endobj 162 0 obj 3282 endobj 164 0 obj << /Type /Annot /Subtype /Link /Rect [ 130.33 215.086 205.32 224.086 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 166 0 obj << /Type /Annot /Subtype /Link /Rect [ 179.752 130.8 247.744 138.0 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 167 0 obj << /Length 168 0 R /Filter /FlateDecode >> stream xœÅZK“ܶ¾ï¯@ùd—gi’àS©$;Nm*>(ZW*¥¨RØÌ -9âcGã_Ÿ¯>WÊÁ±\µ†Ýh4º¿~€Ÿî<æâß=ý‰SŸmOwŸÌœÇbŸñÈL…óÇÙ‰™çåô–õàwOø£_ÂÑýó®¸sÙ_ïÞÀ;æ‚àrçŽÙ)âwwo­õé÷_ße‡»7w?ü2Ïeû›Š¼ÐqÝÐu]Ïc‰Ãý”þóÙ㉽ÿö—ë»·ÿþ{öÌßñÙ¯µ¬Ø/¢hEþÝöø·»¿<¶Æ=ÿÿ°µ·J½:pÿÇŽ:õÁaà±,¢Ÿ¿Íª¹žÃŒ^›~ÊÍš¿Zý¨÷£ÿ.îýmõw14‘?tñeëˆ9fœd`^´xú°Ê&§Hk/oÆx¹gÍQ²&;É kÊÒaoÚf£æÎ¹ØÊškÉê³Üf"Ï~—;V7UV²úÈšëoìJv kkü&*¼[²ìt.«F x*fqeÆ™´î,™|w$Ô¥¬>Ò¢aYóoß÷kv‘yÎ0ß`QñË÷bÓ m±“Uõv4}rô?üÌé<‚‘ ‚ÐI]Z- õrêy½çFVíŒò¢Ä‰S( ¡Æ^sÀB§É v_³ŽK:A×wâ<¢(˜2üBQ¼$râøñ”Ɇ•Õ²>ˆ@êFÞÌú¯õqN‹„l5ë#ȹ1ˆa½aнƒCCl Ø€E²¢ù&’p×å>×/¿®a5+  nY7õFM•E~eç¶:—0[œÌC:Y‰ã©ØN4ÂØ-~y’Úl/ ÊwØCÃŽ¢f‚]Že.ÙS[l8Û‰ÑÒ9EÚ–Å3¬0+ †G8I»mÊ R•…Tê0akù‹dò3ܪ™ÒE"zy‹—³‚}je•ÉÚ!9§âð Ä1¯kT Qàš¶lÚÇàPrâÔ¿µuÃNô‹Éùªíoë7ŒœvDF¯T[O…ò£‘PpfnVú]b(rµGÚ" °é–)¤ÜAOWu,+6år'$Wˆ9Ð×÷œd°`ºlÎn Øé Ç’2òí…#eç ˜X=K¥+®eÆkJÃÍ1›ÑôR á>j…NŠ,K -©¬ Â<œË±*/LtŠâÊð«,€°½ ³èçXî–Æ.æ~{{É 9ÆõâzÁËÞ6é|:O¹‚a±ÝJ8 k©%t'&OÝÖꨫ²é«ƒ”ê·²šª,öF‶Ò½¸m;qH¨B§:að–Ö[TAkxò‘‡Miu j$à^4R‹ÎNr{EVŸ˜ >+Àë¥ñKyúÕ’ùÁ-ù¤'ˆT6IYoÅ™½„ûWÙ²-´7ÕtÂG,ÅSÙ6+{ œØSòx3Äkf ü‘×y¾?C kÚ ²²!ݯù,jBdeH+`l!Zà ³zj³|§tp³/Š ìPª\¦*ÛÃqÍgÒð+}fBନå7C@NI1Åd%â]&·:Jôj!¬&ü¦@ɤ¨¯¤©ƒ,à“°ÞúZ4bÛd[@øõ~[V¢NefVs(@¢žpÝ>‰Rh¶Âýl8Ü+@â£Hö½´[QÐ)Ö"Û‘˜GlUÁüRh™³­ < I6}^¸¬êÙJJÎ3k¿ ®ŸFkÔØÙ-7-ʆÁÿ H¶Gº@° Ø“ÅÍÔl5„ш¢>—œÌ˜RÍL)hU™pîM ì3!©&èx¡hê##¥ ÷'åerÈ=’xRiVlóv‡”ÔWD¨Ûæg¼ÀG~7²nv¯^ÕëJ‹¢BÐLX]2¼öÊ#”;õãj”Pƒ™`íG€Á"ž»fxH])BâF·´¼F©aÙ„ÂÄqU–3L^° 4pTS»á 1…ûçlç,q+ÕBÈu8 Bo†Í—œ …&VšCq['‹dp„puÂQ›r.«¨:ÌŠ‰usdÅCþe¾c?Â@oY€Ã~†ÅËÏ‚ê&xò^a|Vd.0 ¯TLàfœžòF|ïy÷^J‰ãFQn 8d‡b=önà$!•|<œòEðâÀÀ! ¥;ì'@éFù·%€âC*r“8™áFŒ–£ µŒ–iÙÇ¢¼Ôìˆ\Qù¹¥ÇZæ{¶¯ÊÓ N†ðµ¼£0žaþ"Nò5j“t2áN-_­$n2dàj󯄧ɵ©éT575Z$ÿ#£ÝS#϶0EÛ9Î<©ØÉ}V¶»³FÁ[gŽ*¿Up­r*À¢‘Ÿ;&#•×y0Ȧ™/G±0”HœI;å·_GÞy‰ C‰õëo^2G:‰Jà¢t†üååÕ«n·ï?,[¦¿Ê§Ž€U¬uC€±aBô<˜að¡{ÙêDÔ€}Íòì£TÚ«›PÉ(Ú@£1æ‚(Mc×0C0eŸÙŸJ²÷ß|þæÃŸÖÐ"M0ò!JlR¶*x(òªDAŸþfY-‰ïx]ö1eö’V¼dZõDŽd{Ê# ñ—‡úL¤`î§s‚¬u‹€¸+¤+@à{ˆQ]EÿÕ»÷ƒhÚ¸3"Ù-¶uè9ŒTªÉ±’&ž÷A±0%¸É3\š„™H¸š …Žgšs;î`Ï[Ûçò × ½/KŽy4C£–šŸ'ä‚õ§‚6ª×P½AÊ,*e§²&°=Jƒ¡lm©ûL"‰0…áéšÉú>A§ –Ól릳Lº!yägªÿ3ˆ´c¨‘Ÿ­tÒÕ5ÓñŽO‰;UCX¯ú uû0¥üb¤vÁ†SÝð6Ôñ§råUŸ—£8lUIskÐ)Ý÷]Jœòò! fíÓõY¡—Ëãk¤Z8UÙP‘%ªJ\öš‚{%ë6oÈg¯S•χŒTs¡«žÎmž×ÚûT¶D{¦Ñ“¨å¤{°Ö‰œÌ›.ùrõMIÌP£j’E”C¬^X“&S–>Ý;RÏ!«®YB£µ†ˆÔ'÷C$R1´7†‹ºÒ1Ú‹›õ7ª]Zõ] Ý,¥rõ\B½*s™ˆÒeÈ@´[?­·/»ã O)iÑwØÑ;¶—‚Q{€¬¾ß;%ߨ\ÎT%Sè ý‹ƒÌKÿ—kJþ‚1ÄÞqÃs¸9WY ƒÐ5©ßœMït¸(Pöt:dËtÔÔÝ»µ†^Eºœé†<É!‹Ý=õdqò;©3-)UB<`\Êÿó”—Oª1YIjŸî”q!Öí\,p5Ý ^V(÷N7wqÍóbÔJÖ¨ök­{§º;Âd^Ëþš÷“})ë©+Ù0ˆ¢z1;ÑÅ«5Ö·³æ 6…Û0 דdrñ• EÆË‰áe× ¢>“üŽÝc-äÞìÛ®2±¦|{@å6êàΚ¢±†RTy&«=gåÉ£äŸ €;DË©œK7™#iä¤Ä#ˆÃ&¶D_khúF_ §GŒ7‚dAбåŒèÅU;¥èŠÊ]k˜5k;(‹}«lÎfСŠÍd@¦®<—OPµAnÃ= {ø³I8us8Šñ4Ž]ÓÛÝÉ*{ÖÊæ xª†‚~^Rz ?$´ ø ÃÙ¾Õ2 0àA2à[Þ\ýÞdëöGÏYÿd4O¢{0-×ûã¨#iÇ&ìtË}h(ŸeÑ=«ˆ:Y–ÊÌ›×þ…b"Ì^^ºGóÙEÿ®ÆäüÚ‹ñ0Gc`¬Ò㑳g¾¡ æ“Ø)Ìæ3F ÛæêBE1™µ‹)øWrŸÓ5Yܹ¢¬åò)#õvm«™[ÂGB¤KÖ›Hb'À‘&©ÿU€»Ž ‹á ûötWŽóÏ¥»A'é íÜåÙ˜A"k€óó¹ ˜~›ÃÉâ|F•¯Âˆ §Ve‡#ŽB'Pç2+LGhعi*L PÌûs:³ËÍaŒÓHChÊۭΔÙÒÝšÁHôuìʧ|ÄÇî¼@MãQ¤{Pሾ#!ì¡ÌÒv>Ô-wë¦LcÍ[ÃÅXåE€mêÇ£ŠšÊµ¼ Ä®Ýfš¯íºˆonì%é釄ǮFsÒÿXæ?!å[Œ_<¦;ˆ̉cKðÐØ#›Ý°‹ÁŽúpÕMÕÐõ‰5§¯?3¤qƒS»È!σ(†J³H©rÆÛðXª à FFn4ŠÜ'cKžgë¨×íÆª˜·ÆÛ2oOƒ7(Óv쉇áûE!vj•u³J‹fCÝ\6XgшéâßõÒt;/'2^¨‚þ”t Kx*v{Τ5–¢ãKÙæƒ=ªûÛ¡&öktsåÄòönJía¯[Ú£b0B)2< ³© †ÉÄÊŽ> endobj 168 0 obj 3725 endobj 170 0 obj << /Length 171 0 R /Filter /FlateDecode >> stream xœÅYÛŽÛF}×W4&/6"3$›WÛñ1’Ý,lg½3Áb‘ Õ#5†™—‘•¯ßSÝ­›äøÉ;6,YbU×õÔ©žÏ ¹øó‚^âÔgy¹øl>óXì3™Âˆy㇬dæ}È zêìx‡ýÞlØÕÂe_üñ'¾\1»…;T§„¯ÏΧoÜo~¾ËÖ‹Ÿn?ü2Ïe7÷§y¡ãº¡ëºžÇ‡û)ýøì¦d<{¿¿þøîûïÙ#w|Çg¿·¢aﳪϊç²›.~¾¹p{þÿÁµÊí %ÜÇߨQY¿ø" ÜËoÎ*âøùéSu ןá}6}U˜šWmˆ~«ýѯ“~¸'7Üs/.Kä›>]1Ç'NrQŸÌþ7™•E:ûè LGV*í ŸTfcã“v)D}³kû5{[—Û¬‘m]±¬Z±_+Ùɬe¬+íøHœ\Æc'ˆé°(Ð:o6‚žO­®K7P1 lÉösñ)oDÖ‰OßMž˜ºŽj[VfyS³lµjY)Ê;ôí}_åäB«Üª·¢ÉººiYW3‘åã}·É:–E½cûº§/sÁêJh[Î|ÒÁ¹Z‰¬Ú.«rAâYUwÑ8 áhÅ™½ø–Ý˦íŽÁ‚£_}:È#g£È>ôíoïÿõö·ß?ÜLÆŠ»|FÇ‹’•2¦íš>ïúF8H¾úD|ÉÊma»yMÙ]ý(–sŽ$NSڽȖ~ÚÄ×â1zÀg²eÞ’µ5RUì•áÓåºN@Ø[“ìD9iƒ3¢:–l'‹‚Ý –oDþ ðÿ¨LÆeµfÝ®ž¶Ã¶ ¤#Aj»:˜Nt2'{JmëXÉL<'I(5<=ô/z.ÄólW7- ÒCQô{ýÚœç€"ˆæÓ]ÝW«[®ÛgWÿÈÊ»¾Y‹æêöùíóoh’Œ¨VÅ«Œò9 #DÐågè«pa‹‘Ñ!©ÒiTÛ¢ TeèN¬A>T¥+H>Úã2ÛN†à FD¦'Ò†ä5+F¥RеßÍ «Ôw¨™Ó­ckûªnö¢`NÕð4Êy1°4‚pöm _ÿ|3wˆÑœ<(Ð=Å£%+ªºúK4õ’F1Kô¼ ÇTÔºùÕè ;à±78!›Žm¤y‘CÊoŸÝ>ŸÆHHSå'‘ÂFùƒ"&H?Í¡êl.fͺ'lGCÓÂÁÝáÑKÞY6_ó£dĈÓÆ9\äoF}?ä«¿Ôò„ä 5 X÷àk9ðq­§¯â°ÊË ù€êYˆâàðçñ(¶ê>2à°$nê/-ó¸Nã!S!Œ{ø)÷P±ÝçHÓ&k–ªíGĹ︽qOˆßI`B·¤Œ.ÙáÇVøŽ;$kBѪîÕìØ ¹Þ@ሒÐÇžkˆ¬M(¹,³bI°–‹Q%‘?§­‘ÅxQ/¶|ìÏEôC_¯/´•b%û²_º7K¶mÞÈ-5Å¡»Îu£˜ìpÛs^SÕú§¦!Qw«z}µd¡œ<£S!ð¸Ú’“86¥‹… È#uËÖ™ü'¨>ߥþöÖp²ÙÈPØê® á#Ïó?†pL`ƒ°ØÂGþ…i¶ÉÐ]ke)‹¬97~Ò4‡ö<cBCÔ³¹\„N †‘oßbŒŒŸ³k [öiºR=^bØòŠ„Mž0Ò6œD#ÂOŽ>Ô§¤†áŒþ˜=ÖC¦ÁþÕîa&"v%ìwKUSú®Eï0¢¢{¡6#9rutë0yV½†ÃÈ̱®j¼-Í¢ÝF‚]Òd. ±Æ DX¹ö_ zI¥6––æ=½g«Z‘àÅ•öp¢t`ZŒt\Œušgûz«ìýûµÓL·¾ïÔÆ_a–JZ‘Œ*(½m³=¦ üÙÐ(UCæ˜go˜( ªãaNBŽù…ýø£í V„ËÇŽU£ÏLï¤câ´ð!Øf0 ¦"C&æ®ÀºÌ|·úŠû,ÏÈŸ‹º¿Ó[ L¹¾ãÄ‹r[7Y³ŸÊ€;tÁ’&A<¢`'ãYÙÓ½!¶²ÕâŸj͆«P›Äëƒi­ Àլ⊶‚®bÜÖ¨=µ8l› ð— ÕÊÄv™Y0ÔÍÉù{îxsóDK‡€ÜK{.q;¸q1<îàíÉS´÷»"4R·ÍÔšáH0íß„@îÅsò¦æÛ~»EÉ·=ت߀¤Î®§ÊrÒ}Dš°aħ#¯\ïæGLë‘}ÂÓÍâ»|NÆyU{"[—ñ·¬Aíaß}¯ <æVèi.h¿—(V; 0øòi@Qd­A§®ÞÔu¼¾Ÿ+•Sµž_Ìϲó0N,RîRþI‘jbæîrŠsŸ€rú÷)‘à‹ôŒ÷†wØ¿E×HñHXªšÍ0½ÈǺ–€W&®òN˜ mûî𻉚òqÊÐôí6]³›ûE[³YmÚZ8ÚzN¾ÝN×¶‚iM³q°ü¥˜Z1÷L|‡r)ú•`Wy¹*d%œÍÕÙoÒ>.þjè( endstream endobj 169 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 170 0 R >> endobj 171 0 obj 2388 endobj 173 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 72.0 720.0 null] >> endobj 174 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 481.5 132.554 490.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 173 0 R /H /I >> endobj 176 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.226 481.5 542.226 490.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 173 0 R /H /I >> endobj 177 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 72.0 601.283 null] >> endobj 178 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 469.5 237.949 478.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 177 0 R /H /I >> endobj 179 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.711 469.5 541.711 478.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 177 0 R /H /I >> endobj 180 0 obj << /Type /Action /S /GoTo /D [14 0 R /XYZ 72.0 720.0 null] >> endobj 181 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 457.5 217.166 466.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 180 0 R /H /I >> endobj 182 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.84 457.5 541.84 466.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 180 0 R /H /I >> endobj 183 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 445.5 122.573 454.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 18 0 R /H /I >> endobj 184 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.284 445.5 542.284 454.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 18 0 R /H /I >> endobj 185 0 obj << /Type /Action /S /GoTo /D [137 0 R /XYZ 72.0 544.781 null] >> endobj 186 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 433.5 209.653 442.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 185 0 R /H /I >> endobj 187 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.884 433.5 541.884 442.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 185 0 R /H /I >> endobj 188 0 obj << /Type /Action /S /GoTo /D [137 0 R /XYZ 72.0 382.877 null] >> endobj 189 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 421.5 188.726 430.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 188 0 R /H /I >> endobj 190 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.014 421.5 542.014 430.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 188 0 R /H /I >> endobj 191 0 obj << /Type /Action /S /GoTo /D [137 0 R /XYZ 72.0 174.861 null] >> endobj 192 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 409.5 160.42 418.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 191 0 R /H /I >> endobj 193 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.185 409.5 542.185 418.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 191 0 R /H /I >> endobj 194 0 obj << /Type /Action /S /GoTo /D [32 0 R /XYZ 72.0 720.0 null] >> endobj 195 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 397.5 159.039 406.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 194 0 R /H /I >> endobj 196 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.196 397.5 542.196 406.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 194 0 R /H /I >> endobj 197 0 obj << /Type /Action /S /GoTo /D [17 0 R /XYZ 72.0 720.0 null] >> endobj 198 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 385.5 115.384 394.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 197 0 R /H /I >> endobj 199 0 obj << /Type /Annot /Subtype /Link /Rect [ 537.326 385.5 542.326 394.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 197 0 R /H /I >> endobj 200 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 373.5 207.463 382.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 201 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.898 373.5 541.898 382.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 202 0 obj << /Type /Action /S /GoTo /D [23 0 R /XYZ 72.0 478.686 null] >> endobj 203 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 361.5 192.6 370.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 202 0 R /H /I >> endobj 204 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.99 361.5 541.99 370.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 202 0 R /H /I >> endobj 205 0 obj << /Type /Action /S /GoTo /D [26 0 R /XYZ 72.0 428.352 null] >> endobj 206 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 349.5 239.886 358.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 205 0 R /H /I >> endobj 207 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.67 349.5 541.67 358.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 205 0 R /H /I >> endobj 208 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 337.5 159.023 346.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 33 0 R /H /I >> endobj 209 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.164 337.5 542.164 346.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 33 0 R /H /I >> endobj 210 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 325.5 205.208 334.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 211 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.882 325.5 541.882 334.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 212 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 313.5 219.544 322.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 130 0 R /H /I >> endobj 213 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.794 313.5 541.794 322.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 130 0 R /H /I >> endobj 214 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 301.5 199.163 310.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 215 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.918 301.5 541.918 310.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 51 0 R /H /I >> endobj 216 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 289.5 253.785 298.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 217 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.584 289.5 541.584 298.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 218 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 277.5 220.128 286.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 52 0 R /H /I >> endobj 219 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.79 277.5 541.79 286.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 52 0 R /H /I >> endobj 220 0 obj << /Type /Action /S /GoTo /D [75 0 R /XYZ 72.0 720.0 null] >> endobj 221 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 265.5 197.92 274.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 220 0 R /H /I >> endobj 222 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.926 265.5 541.926 274.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 220 0 R /H /I >> endobj 223 0 obj << /Type /Action /S /GoTo /D [84 0 R /XYZ 72.0 344.456 null] >> endobj 224 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 253.5 232.762 262.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 223 0 R /H /I >> endobj 225 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.714 253.5 541.714 262.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 223 0 R /H /I >> endobj 226 0 obj << /Type /Action /S /GoTo /D [90 0 R /XYZ 72.0 396.634 null] >> endobj 227 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 241.5 258.023 250.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 226 0 R /H /I >> endobj 228 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.558 241.5 541.558 250.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 226 0 R /H /I >> endobj 229 0 obj << /Type /Action /S /GoTo /D [96 0 R /XYZ 72.0 720.0 null] >> endobj 230 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 229.5 307.476 238.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 229 0 R /H /I >> endobj 231 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.254 229.5 541.254 238.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 229 0 R /H /I >> endobj 232 0 obj << /Type /Action /S /GoTo /D [99 0 R /XYZ 72.0 340.696 null] >> endobj 233 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 217.5 200.693 226.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 232 0 R /H /I >> endobj 234 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.91 217.5 541.91 226.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 232 0 R /H /I >> endobj 235 0 obj << /Type /Action /S /GoTo /D [108 0 R /XYZ 72.0 149.724 null] >> endobj 236 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 205.5 262.4 214.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 235 0 R /H /I >> endobj 237 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.532 205.5 541.532 214.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 235 0 R /H /I >> endobj 239 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 193.5 268.879 202.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 238 0 R /H /I >> endobj 240 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.492 193.5 541.492 202.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 238 0 R /H /I >> endobj 242 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 181.5 248.143 190.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 241 0 R /H /I >> endobj 243 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.618 181.5 541.618 190.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 241 0 R /H /I >> endobj 244 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 169.5 155.438 178.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 138 0 R /H /I >> endobj 245 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.064 169.5 542.064 178.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 138 0 R /H /I >> endobj 246 0 obj << /Type /Action /S /GoTo /D [120 0 R /XYZ 72.0 525.606 null] >> endobj 247 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 157.5 231.657 166.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 246 0 R /H /I >> endobj 248 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.72 157.5 541.72 166.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 246 0 R /H /I >> endobj 249 0 obj << /Type /Action /S /GoTo /D [123 0 R /XYZ 72.0 720.0 null] >> endobj 250 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 145.5 284.077 154.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 249 0 R /H /I >> endobj 251 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.4 145.5 541.4 154.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 249 0 R /H /I >> endobj 252 0 obj << /Type /Action /S /GoTo /D [123 0 R /XYZ 72.0 485.261 null] >> endobj 253 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 133.5 192.384 142.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 252 0 R /H /I >> endobj 254 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.96 133.5 541.96 142.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 252 0 R /H /I >> endobj 255 0 obj << /Type /Action /S /GoTo /D [126 0 R /XYZ 72.0 592.3 null] >> endobj 256 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 121.5 176.382 130.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 255 0 R /H /I >> endobj 257 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.058 121.5 542.058 130.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 255 0 R /H /I >> endobj 258 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 109.5 195.297 118.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 259 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.834 109.5 541.834 118.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 260 0 obj << /Type /Action /S /GoTo /D [129 0 R /XYZ 72.0 602.043 null] >> endobj 261 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 97.5 155.135 106.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 260 0 R /H /I >> endobj 262 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.188 97.5 542.188 106.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 260 0 R /H /I >> endobj 263 0 obj << /Type /Action /S /GoTo /D [169 0 R /XYZ 72.0 720.0 null] >> endobj 264 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 85.5 268.446 94.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 265 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.494 85.5 541.494 94.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 266 0 obj << /Type /Action /S /GoTo /D [169 0 R /XYZ 72.0 138.906 null] >> endobj 267 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 73.5 176.938 82.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 266 0 R /H /I >> endobj 268 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.054 73.5 542.054 82.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 266 0 R /H /I >> endobj 269 0 obj << /Length 270 0 R /Filter /FlateDecode >> stream xœÅÝÑr\Ç‘ á{=E_Ò!OOUefUæÕ†­‘ÇÞµÆ+“ÇÄxbC¶,ÌR ‚²µO¿•Õì>ÜÁãµüO7€„ºuêü勺+ó¿ÿÿÑv¯øâ/ï«»ÑvÒÞe}Wußl÷ÃîámÛ½ÍêÉíñ­ùc4ßø~÷Ç/n¾(»þâßþ}þá›]™üõ‹r~wëà—_|ûäñóOÊßýñŸ~RÛÿ— ?†¥²\Úüߨ/œOþÀ´|ú'Oà>¾ÿôÞõ€r|ß|Ïñ±óÞ>|¥þyü@Žo?Ÿã??ûy”Ó§Q¶¿ŽŸáßïÁËîÏ_üòÕÿø+ÛÕ²{õÝéû|Ø>ß·÷ùŸ¶{õÃîß^ÔŸýûîÕÿâëWüç¯Ùc>öÇÏFvM÷¾>ôO>©^÷U$Â}ìZÝ7¥”ÞŸÛ7?½üö·_~¹ûQöm~Oüáýán÷ÍÕ͇«·ÇOúUó³ÔOî±zß‹·Rdø®÷}·1ªïò~¼¾Ùýâþ_ß¼¿½9ÞÍéÐû^ÊÌçW×eâónL‡¾¼¾¹~µûæúíõ·ÿ9ïçõùáÞö㔪ó›¦ÌϦÎã›õO¿?ò½Øüúɼ!c??ŽR†ã}|uûî§»ë?¿{¼‡‹ï°ªc/Ã6þS³úù6ÝǘÜ·wW§î?LúóÝü›oVÛ}ê°ûÓ‹Ûù±]ß<Ê>ù¤bߚλÐ1?¾Ø×šß-úð…¹úpÿýíÝŸ~öóÝú^Ùýâ—?ß}ýæÃë«ûëÛyg»W‡×ßßܾ½ýóO»ßÞß~¸{}¸øÊÇ|›_xµyc~Ã|úß\ݽþ~òä_íñk0æO©)Tê'_Š2¿‰e¯¥Ïï¡îÇ{xuõo»Ûïv_Ío€ÃÍýûÏ~ýçÑ2¿y%ïÖ¾aë~÷³ùgµÎoó¿¹¹¿»Ÿ^~vgŸFŸ?çÕRÜ6îåÉ}œ§ûÚGþ<ÇíÏëAêQP-¨î¨RϿǤ6T;©£¢Y²¬aÖ‚4kAœùSäÖŠDó§5É2­ ¡ÖÆT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ª­ ÕVj+HµU¤Ú*Rm©¶†T[Cª­!ÕÖ˜ª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©R•‚T¥ U)HU*R•ŠT¥"U©HUR•†T¥1UaªÂT…©*SU¦ªLU™ª1UcªÆT;Se%a%a#%a3%aC%aS%ac%as%aƒ%a“%a£%a³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%ÿ:èu¾ü«ùçÑ óuÂ|9ZªTß8P.^pÍÿùY4¿ë×!óGãØ½øÅéÍ_Þ]¾;ÝüõõûûÛ»ŸNï¸}ò‡¿U¼SÙ>4J±*|:|c¼%%4úÆq[ã-”Ëå^Y®,(Ârayg9RÍñÊ‘jŽ·H^‘jŽ·PŽTs¼…r¤šã-”3UaªÂT…©*SU¦ªLÕ˜ª1UcªÆT;SíLµ3ÕÁTSLÕ™ª3UgªÎTƒ©S ¤šã-”#Õo‘¼"Õo¡©æx‹ä ©æx åLU˜ª0UaªÊT•©*SU¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSLÕ™ª3UgªÁTƒ©RÍñÊ‘jŽ·PŽTs¼…r¤šã-’7¤šã-”3UaªÂT…© SU¦ªLU™ª1UcªÆTó_¹Žvþ!c ÿ^µD¸m ®¶¦[}~ÿ´y@\)]÷mM·ò7µ»¿ùîôö¿Þ~8ÝøõÕ‡Ó­o?Þçrà÷ûýÅcM%{É¥ðwº‹ã|o¹ßzÛ8îâa¦Ê•å幚äÂòÎò@ùh,7–3UgªÎT©S ¦L5jÎQŽTs6HòŠTs6ˆr¤š³A”#Õœ ¢œ© S¦*LU™ª2UeªÆT©S5¦Ú™jgª©¦:˜ê`ªÎT©:Su¦L5˜j Õœ ¢©æl䩿låH5gƒ$oH5gƒ(gªÂT…© SU¦ªLU™ª2UcªÆT©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5jÎQŽTs6ˆr¤š³A”#Õœ ’¼!Õœ ¢œ© S¦*LU˜ª2Ueªl¶¤l¶¤l¶¤l¶”³A­QJ#ó´œ >lí°5öÓ³¼Ìçæí¬i»ä–/~÷ãáîÇëÃ_ÏŽË×]CrèØ7îáÉñçÇé¾Õnvþ5˜_±çÇóS±¸Ï¸—"ÚžS©g@jCµ“Ú+ªÕƒÔQP-¨F–,kA˜µ ÍZg®‹E9­‰Ö†HkC¦µ!ÔÚ˜ª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©Rm©¶‚T[Aª­"ÕÜX åHµU¤ÚRm ©¶ÆT…© S¦ªLU™ª2UeªÆT©SíLµ3ÕÎTSLu0ÕÁT©:Su¦L5˜j Õùb™åHU R•‚T¥"U©HU*R•†T¥!UiLU˜ª0UaªÂT•©*SU¦jLÕ˜ª1ÕÎT;Se%a%a#%a3%aC%aS%ac%as%aƒ%a“%a£%a³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³%e³¥µ –ˆÚêFþùßv¬mò·1Ý|ã@»x5ŸáêYÔ¶!ˆõ¯¾?œn|u{ssXû3ŸÞ÷»ÿøÏù®‹)ãØw›wîq:zcÜXÂ"¤l}h[ãF””Ïo ” Ë;Ëå½±ÜXî(Lu0ÕÁT©:Su¦êL5˜j0Õ@ª9nD9RÍq#É+RÍq#Ê‘jŽIÞjŽQÎT…© S¦ªLU™ª2UeªÆT©ZªÎ'.Ï©{Eµ¢zzT ª;ªƒÔÞPm¨F–,Y±Ì#©‰eŽIM,s¸Hjb™£EP7b™ƒER#KA–‚,Y ²Td©ÈR‘¥!KC–†,;²ìȲ#ËŽ,²Èr KG–Ž,Y² dÈ2ˆeŽIM,sxêJ,stHjb™ƒCRË’Y ²d)ÈR‘¥"KE–†, Y²ÌuÛZË|ñÐȨm­Ûv-¥õØ8nkT˜»Lž –nÏg‚þqVøpëÛ‡ã&¥··…ó•õÈ ÔåE /àÉáçæ^æ‡?ïaãÀ‹ÙFNáIÞY3Ÿ?!Åä9yNáIn,w”çžäÊòòœÂ“\XÞYÎT;SíLµ3ÕÁTSLÕ™ª3UgªÎTƒ©S ¤ºVx’©®ž ¯Hu­ð$9R]+P> Ë…ååò\áIrc9S ¦L5êZáIr¤ºVx’©®ž$Gªk…'ÈR]+/û>ª—¢±qÜÅ]PÝQ¤ÎŒQn,w”ÏçÓ(W–”7DšëÜQŽPs;É…© S¦ªLU™ª2UcªÆT©SíLµ3ÕÎTSLu0UgªÎT©:S ¦L5j®sG9RÍuî$¯H5×¹£©æ:w’7¤šëÜQÎT…© S¦ªLU™ª2UeªÆT©SíLµ3ÕÎTSLu0ÕÁT©:Su¦L5˜j Õ\çŽr¤šëÜQŽTs;Ê‘j®s'yCª¹ÎåLU˜ª0UaªÂT•©*SU¦jLÕ˜ª1ÕÎT;SíLµ3ÕÁTSLÕ™ª3Ugªl°$l²$l´$l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶tœ¶÷pu6É^Óöè¥êÖ}œÕeýîþÓæaû|}­»¯>ÜßÞ]_½½pÞKn—ì>6îáÉñçÇ}Ñü"ˆnwþEÈ_žƒZPÝQ¤Î_œƒÚf=rëéöœÚI¿5µ¢z:ejAuGu:]jdÈrˆAr¤¹NÄyEžëD ’#Ñu"È2]'bÜûµÚsòüe9É•ååZX.,ï,”[c¹±œ©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5ê:ƒäHuˆAr¤ºNÄ 9R]'b€¼!Õu"É™ª0UaªÂT…©*SU¦ªLÕ˜ª1Ucª©v¦Ú™jgªƒ©¦:˜ª3UgªÎTƒ©S ¦HuˆAr¤ºNÄyEªëD ’#Õu"É‘ê:ƒäLU˜ª0UaªÊT•©*S5¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSu¦êLÕ™ª3Õ`ªÁT©®1HŽT׉ ¯HuˆAr¤ºNÄyCªëD ’3U6[R6[R6[R6[R6[R6[R6[R6[R6[R6[Z¹ì5|ÈFýÿøÝËü÷‚4ËßÙlýÒÆ/^o­%Éã5.m÷â÷nn®oþüxóþá‚—–§g\ýðîíáüäŒ\§®}ÞßЭû~<úâ(ßG¥Šou95¬,W–”Ïg(–w–Ê糔˙ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©RÍåê(Gª¹\䩿ru”#Õ\®Nò†Ts¹:Ê™ª0UaªÂT•©*SU¦ªLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦:˜ª3UgªÎTƒ©S ¤šËÕQŽTs¹:Ê‘j.WG9RÍåê$oH5—«£œ© S¦*LU˜ª2UeªÊT©S5¦Ú™jgª©v¦:˜ê`ªƒ©:Su¦êL5˜j0Õ`ªTs¹:Ê‘j.W'yEª¹\åH5—«£©æru”3UaªÂTÙlIÙlIÙlIÙlIÙlIÙlIÙléx1Í1“bÏí­KiÎCji[GmM$í|ãvy¸”fžÛ²{ñ‹Ó›/¯syºý0”<ŸXÌ¿–{l»Ž{?~qÜÃ5RKß:îb0òxQñgæëªâóã’²õ9_æÂòÎò@ùº²8ÈåŽòuqq+ËÊ;SíLµ3ÕÎTSLu0UgªÎT©S ¦L5j+Hµ¤Ú Rm©¶ŠT[Eª­!ÕÖjkHµ5¦*LU˜ª0UeªÊT•©S5¦úäúãÏ©ƒÔ½¡ÚPí¤ÕŠêAj/¨T#KG–,Y±”B,¥K)ÄR*±”J,¥K©ÄR±”F,¥!KA–‚,Y*²Td©ÈR‘¥!KC–†,;²ìȲ#Ë,²Èr KG–Ž,Y² dÄR ±ÔB,µK-ÄR+±ÔJ,µKmÄR±Ô†,Y ²d)ÈR‘¥"KE–†, Y²ÌáiH¸o¾Ìøì 2ǧáQÚÖÃÄÆø´Ÿï¾-—´Ì-UƧÇ7¿¹½;œn}uûû·×¯¯îoNïüÌDuþûÅ}~îÕbãO‡_Ì€ê¾Í—ÝóÀ¶qÜåÈHY>P>_Z \XÞY(Ÿ//Pn,w’ç?”#Õ\âGòŠTs‰Ê‘j.ñ#yCª¹ÄåLU˜ª0UaªÊT•©*SU¦jLÕ˜ª¥j}ØDê¿Î{e¹²| |– Ë;ËåÞXn,gªÁTƒ©RÍ%~(Gª¹ÄåH5—ø¡©æ?’7¤šKüPÎT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ª¹ÄåH5—ø‘¼"Õ\â‡r¤šKüPŽTs‰Ê™ª0UaªÂT•©*SU¦jLÕ˜jNŒDKUGƒÍËùDT6Ž«ecîäçÑÊÇ ºÍãÿ‹ ºµù¬±õ¶q/Oîáì¸Üw»ôyœ×ãο¹í6¨;ªƒÔë‚n$7–;ÊsÓm’+ËÊ"]t#9B]t¹0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©R]t#9R]tyEªë‚n$Gªë‚n oHu]ÐäLU˜ª0UaªÊT•©*SU¦jLÕ˜j^ЭXø0{Nžûò\Y>Pžt#¹°¼³9 ·ZÉô"g2æWC¹<®ÚÆLF/¯j§iöÝ‹:\=.;¾ã¯×÷ߟnýòúæêî§'ùÕýÕùXb¾îªm~î¾ñp§cÏ›/À¬i.;Û:îbú1_€¡| |¾C¹°¼³

_€¡ÜXî(w¦êLÕ™j0Õ`ªÁT©æz(”#Õ\EòŠTsMÊ‘j®ŠB9RÍuQ(gªÂT…© SU¦ªLU™ª1Ucª¹oj›Oz»·gåòÞXn,w”Êreù@¹– Ë™ª3Õ`ªÁT©æ )”#Õ\!EòŠTs…Ê‘j®"yCª¹B åLU˜ª0UaªÊT•©*SU¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSLÕ™ª3UgªÁTƒ©RÍR(Gª¹B åH5WH¡©æ )’7¤š+¤PÎT…© S¦*LU™ª2UeªÆT×™›ZjS##¬ã™›¥·­I[ó8»¼¨Â|6u\„µ×Ý‹?¼ÿxæfÞ|uwuóþêõÖe‡kî1TcÞW÷{º‹ãb/ž/zlw1·˜/YQn,w”Ï—¬(W–”Ï—¬(–w–3ÕÎT;SíLu0ÕÁTSu¦êLÕ™ª3Õ`ªÁT©æÞs(Gª¹÷É+RͽçPŽTsï9’7¤š{Ï¡œ© S¦*LU™ª2UeªÊT©S5¦Ú™jgª©¦:˜ê`ªƒ©:Su¦êL5˜j0Õ@ª¹÷Ê‘jî=‡r¤š{Ï¡©æÞs$oH5÷žC9S¦*LU˜ª0UeªÊT•©S5¦jLµ3ÕÎT;SíLu0ÕÁTSu¦êLÕ™j0Õ`ªÁT©æÞs(Gª¹÷É+RͽçPŽTsï9”#ÕÜ{åL•Í–”Í–”Í–”Í–”Í–”Í–”Í–”Í–Ö)¡½•b½‘Ñá:)´Y„úÖȱm]A¢_^AbþõY3UËÝðþøýõëïO7¿ýpxXph׊8ݺ¿=½ý‡÷‡ÿv1v*ûÑk„hÝxàÓ±Çéü˜"ÂjÛ8îrº5P>_Π\XÞY(Ÿ/gPn,w”Ï—3(gªTóôZ”#Õ<½åH5O¯E9RÍÓkIÞjž^‹r¦*LU˜ª0UaªÊT•©*S5¦jLÕ˜jgª©v¦Ú™ê`ªƒ©¦êLÕ™ª3Õ`ªÁTƒ©RÍÓkQŽTóôZ’W¤š§×¢©æéµ(Gªyz-Ê™ª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©RÍÓkQŽTóôZ’W¤š§×¢©æéµ$oH5O¯E9S¦*LU˜ª2UeªÊT•©SÍ•SfáÃŒŒÖr¾:ÿêFëǵ­ÓkÇå…æ‹ëuo^õöæÍu®Ý{Øßl¾ë÷‡÷ÞÞ¼uû×Ç7¯Úp1#éûÒæCØÆƒ={qLìç3̈ùó|ã¨ËÉGc¹±ÜI¾V ‘\Y>Pž«†H.,ï,GªkÕÉ‘êZ5raªÂT…©*SU¦ªLU™ª1Ucª¹j¨H)Qä9y®"¹²| ßõÕí›ÃéÖw·wOê«ãŠ¡ã­‡ÊñÆonNo_=i>N]Ž·_î/^CÚ^‡EŒü¬.>ÞÓ¡Çù¾-E¢nwùr¯²\Y>Pž×$#¹°¼³PžË¸H.,gªÎTƒ©S ¤º–q‘©®e\ ¯Hu-ã"9R]˸@ÞêZÆEr¦*LU˜ª0UeªÊT•©*S5¦jLÕ˜jgª©v¦:˜ê`ªƒ©¦êLÕ™ª3Õ`ªÁT©®e\$GªkÉ‘êZÆEr¤º–q¼!ÕµŒ‹äLU˜ª0UaªÂT•©*SU¦jL5O!êVªö­Ÿ¬“ˆ¤•Úbs¾!S<%ù| ÒS}s¼þpww¸¹?½/·¾>¼?½ãa²Þ¾ú䨇ÉÆ¨Â‡¯õf—Áé.¦å´¼íò¸Ë¡‚°¼³ÿ&¢œ©*S5¦jLÕRÕKµºõWëò•ta¹°¼³

ËåŽr¯,W–3Õ`ªÁTƒ©R͵'(Gª¹ú„䩿ú”#Õ\‚r¤škPPÎT…© S¦ªLU™ª2UcªÆT©SíLµ3ÕÎTSLu0UgªÎT©:S ¦L5j.NA9RÍå)$¯H5¨ ©æ’7¤š‹TPÎT…© S¦ªLU™ª2UeªÆTsKǘ/ë­ y›/ë?^ÞìòõúÖµ×ü|£¯y{½ªÏ=üòÒkß]}x{zÇé…üÙÕù´G\K™/6îötÇÉÞ»æä}ã¸ó/MÏP3·ù•Ô­ê"ŸÏPn,w”Ïç?(W–”Ïç?(–w–3ÕÎT;SíLu0ÕÁTSu¦êLÕ™ª3Õ`ªÁT©¶‚T[Aª­ ÕV‘j«HµU¤Ú*Rm ©¶†T[cªÂT…© SU¦ªLU™ª2UcªÆTÍÏ J“çä½²\Y>P> Ë…ååro,7–3Õ`ªÁT©Î?d9R•‚T¥ U©HU*R•ŠT¥!UiHUS¦*LU˜ª0UeªÊT•©S5¦jLµ3ÕÎT;SíLu0ÕÁTSu¦êLÕ™j0Õ`ªÁT©jAªZª¤ª©jEªZ‘ª6¤ª ©jCªÚ˜ª0UaªÂT•©*SU¦jL5wDQŠD%“ÆœŽ†EDÕ­Ñáæx4ηÊÓýÇ}ðv/¾¾»»½ûxë×W7oÞ^ßüù|’0_ë‹·ùáæ5/îðãá‡}ÔyX³¾qØÅ¼"ÏÉ%¹°¼³ä9unÞjAuGu:7oµ¡ÚI›·ZQ,Y² dÄrmÞjb¹6o{~]‰åÚ¼ ÔÄrmÞjb¹6o5²d)ÈR¥"KE–Š, Y²4diȲ#ËŽ,;²Èr Ë,Y:²tdéÈ2e Ë –kó6P˵yÛóëJ,׿m &–kó¶ç×X®ÍÛ@,Y ²d©ÈR‘¥"KE–†,só¶ö¸xöÙÔµu›=^)år[Ïú²ëå|7;.…­{ß½xùîðúúêíõÿ9¼yòÎoûäÆý݇×÷î.wkËs|"wk+cãQN÷pq\ߪ]tã¸ËIg |>kA¹±ÜQ>Ÿ¸ \Y>P>Ÿ» \XÎT©v¦Ú™jgªƒ©¦:˜ª3UgªÎT©S ¦H5»¢©æbW’W¤š‹]QŽTs±+ÉRÍÅ®(gªÂT…© SU¦ªLU™ª2UcªÆT©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5êüC–#Õ\ìŠr¤š‹]QŽTs±+ÉRÍÅ®(gªÂT…© S¦ªLU™ª2UcªÆT©v¦Ú™jgª©¦:˜ê`ªÎT©:S ¦L5˜j Õ\ìŠr¤š‹]I^‘j.vE9RÍÅ®(GªÊfKÊfKÊfKÊfKÊfKÊfKÊfKÊfKÊfKk±kµp«•Œs±«‹–ªÇi»x³ëí|@{¸pEOªl÷âý_Þþ¯×w‡«ûó}ù\öU¬”V·îåÉ=œ7¿gZæ³ãο91y~PªÔy‘g”+ËÊs\Bra9ÍuÂ$oÈ4× £|ª¶ˆ°!ÏÉs\Breù@yŽKH.,ï,”縄äÆr¦Ú™jgª©¦:˜ê`ªƒ©:Su¦êL5˜j0Õ@ª¹NåH5× £©æ:a”#Õ\'Lò†Ts0Ê™ª0UaªÂT…©*SU¦ªLÕ˜ª1U;>[šÏGã9y/,–w–ÊGc¹±ÜQî•åÊr¦L5˜j0Õ@ª¹låH5“¼"Õ\:Œr¤š‹‡QŽTsù0Ê™ª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©RÕ‚Tµ U-HU+RÕŠTµ"U­HURÕ†Ts1É…© S¦ªLU™ª2UeªÆTs¥q´ðQ¶&†ŸdçZãê#Ü›o¸9m—óýyíñz:º¿üö·/O7¿ºýáÝÕÝõû‡+ä¬÷]ݼ9ÝøÍÍõýZž|•—ѹQô½êÚûÂ6ùt/Çž‡–R6?âËiBc¹±ÜQ>Ÿœ¢\Y>P>¿'P.,ï,gªÂT…© SU¦ªLU™ª1UcªÆT©v¦Ú™jgªƒ©¦:˜ª3UgªÎT©S ¦H5/ý‹r¤š—þ%yEªyé_”#Õ¼ô/ÉRÍKÿ¢œ© S¦*LU™ª2UeªÊT©S5¦Ú™jgª©¦:˜ê`ªƒ©:Su¦êL5˜j0Õ@ªyé_”#Õ¼ô/Ê‘j^úåH5/ýKò†TóÒ¿(gªÂT…© S¦ªLU™ª2UcªyÉ8í³nä}® Ôp/[¢²1©Ðó­2íáA57ªÝ½øýáþîúðãÃÕÞùæêþê|šÛˆ—"¶u¯O¾8Ð÷Úçç*Ú6<ÿÒÔùÊåÊòòùÊåÂòÎò@ùüþ@¹±œ©*SU¦ªLÕ˜ª1UcªÆT;SíLµ3ÕÁTSLÕ™ª3UgªÎTƒ©S ¤šgˆ£©æâ$¯H5ÏG9RÍ3ÄIÞjž!Žr¦*LU˜ª0UeªÊT•©*S5¦jLÕ˜jgª©v¦:˜ê`ªƒ©¦êLÕ™ª3Õ`ªÁT©Î?d9RÍ3ÄQŽTó q”#Õ> endobj 270 0 obj 12869 endobj 272 0 obj << /Length 273 0 R /Filter /FlateDecode >> stream xœÅX[SÜ6~ß_q²)PÀÈù²¡<„Ðd:É…N²™ŒÖ¬§¾,– ¡™þ÷ÉÞ«dBú:L,$Ûw>s7rà¿cõŠÒrt×Ϲyà‡ý Á B ý˜B¡vm ¼å_Ý&Ìáèx3úø 3 (ð0"»ê´ðÕèrþZ!?Ü>ÛÑ«ëÑÉo\×7kˆ\êB !® ±ã{‰z<¸.áãþûÇ«Ëw‡‡pï;žãÁŸ‚7ðžU-+>Áõë­Ð|×ûB»Ô>t±¨„{ø9:ë[ 4 Û+ŒXͯgµA¿›Ã™Î¶Z*úöïΑnØÅÓ½ã ë0ÈfÛù¡Æ‡Ùù8ãÄ[¬‚Áìÿ`ÈŒ,*Û«`ä3ÝŠ คªXhËOy•mÆa¼hòJfL2g>îâÛs#Ç×rQ¸+'dþe“ñ#'"!ž+/Þ‘9Ík!ÎÊ3C(ˆœDŠ=Wèž§²nL‘0Þñ­yu +¹X°”ƒÙKC*Žw¼ÃèMI¼ãMÉòjª¶knÓ#Hç¬_p|ÿñÓôÀ„$ˆ7Zñb·SðÕÜã&;þ>''ð†KPù˜1Á¥)¬Á°$oÜ4u i]–¬Ê È+njö‡*Ía´V\>Š»b±˜LøV. .&“óNÉ;ÔüÉ”®é~ŸŠlz`¢çú ‡ªý®uç70ݱTq–`ƒE@h¼¬z.Û¦×b+$; ªýÿ˜ûbb†+›Gø öÇÔKT}:.¦¢ÈÅäqª« ù˜×ÈZϬR…—Ä=oC»GÈ@쫜œ¯µ¢é¾%YÙì³bö‘©Þu-0m>}bœÎÁéþôàh5׊ݙBÍØÒïù® uÓ\69¿GÊ‚hgI\ßh€t¡"ß_Ñ–•@Š!}q©1ùëîp:–C^¡¥®6(K{ÚÌ\áÍ}…Š›6Ebqá\q®ÄL;ÔH ÚQÀ@©ï|¸A}ò¿ky…gH®ë>rž ¸ksnÖ/ôtí#jFÃfy‘ËGÅ%…ž†MźFRGh¡YäYêÉÍ.[ŽÇâNÿÿ«ŠÆÑãéþXð‘„\òò(ã"mò…f£N›[ù{ȇ[¨dÇf—˜S-z†‡\X„o ÍÚ+G¢Ê.JÛŒû®? ìë\, ö¨aSQ SÜóðJëVÂé)Œ?p˜³{>«ßx•'|ÿ9L&èDÃWsiÑøP(êáÅ#1_ŠÌ3~«A8P¼è&ѳnêð0—ÖòëS€é›ñîM§rO ry|¦@³8˜«GßJx“Bè䊀U[v£` FRÐÄxé䦵6=[|Žƒ©Ç¼Oü$HƦv:$Ú´àˆ‰¥eŸG-ؤL¦sÄBÕ$¹FøËô)ÿ°®Û|:€žš·X”±Ü°jY%xÓÔyv‚€@”¢„NÅåZ~Ýjœ‡9“ŠªOHéÓ±¥SÂðyHFáw!‰×2^˜Ù5 g~ÎËT±íU‰—À[äã‚C™‹R›_Ô‹¶`R](ýMfšJÂo¾vø[ÈãÛ0€q> endobj 273 0 obj 1441 endobj 275 0 obj << /Type /Annot /Subtype /Link /Rect [ 331.02 487.197 466.01 496.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 202 0 R /H /I >> endobj 277 0 obj << /Type /Annot /Subtype /Link /Rect [ 216.6 463.197 259.37 472.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 33 0 R /H /I >> endobj 278 0 obj << /Length 279 0 R /Filter /FlateDecode >> stream xœÅYÛrÜÆ}çWLœ‡ˆÑÂe]Ð.U)Ž”²ËJ¢)WbºTX`v 7b¤öïszf€Åb°ò›B»D`€ééËéÓÝàã•Ç\üwC¿6±ÏÒêêѬylã³ 2Kaļµã‡¬bæ:d%½5¹ð‡+üÒ/á"g?_ÕW.ûÛÕ/¿âaÆ\lx¾rçâÔæ»«“óé‰ûÕÏwÙáê/÷W¯Þ…ÌsÙýþä"/t\7t]×óØÖ ü˜~|v_±_^¼?Þ}øéåKö8¾ã³ Þ±÷IÝ'åõ¯ìþÇ«·÷g¦žÿ0íƒÒAÛB÷ñÿÆQQ?{®Ýó'DŒë§Uu` ×°¢Ï¦G¥ ¡ù­Ñ—Úýû¢îÉ wjÅ9D¾êá—ѱ °âlÏP±/Fÿ+»ÌŠ"=Ïá™5€ã¹!Ùj[þXÔiÙgœ}WÅcùò¥“¿ÖÖM6y'P»6Ñ|—À&±´'Ø87BVù[½çÕ+vŸs¶oʲy.ê+K“²¤Ë„=ñîÈÒ¦jKþ™UIÚ5ì9/Òœ=eÉÒŽ'’[g¬7NLzmý`<ã!»>•LÈ&ýôÍÊHÉÁ$N¯xµC?%]‘ìJ.n-™áV{hǃLëh;óÎe žø˜æIÇ É«o­Mƒ6E›ÉÇq¬·[ÛsZzų¢¯$ÿ,?Ö=Ü’q‘vE+‹¦¶Ï‹·–sìÀº1¬ÅYþÖÏjË^ÀQ2o28­a9/[Ö6m_"Ê‹i™Áö]S!rŠ#Y×<;ŒÝqõ‚}ŽÛ»Ã¾;&xJú VÔJvO[)ŽV:¶ï;,w°U& fËöãsǪ8(À|Œ^(¬ì]A /cW™L€™·bÑŠ¤V<© œÍž¨){.nà•g :Û­cÄ.·Ñé •lm{{;€f¥P³ gäÎ"dm߇¢–+V÷Kû7îÌóÖþ¬é‘ È^r¹ bëž;ø‚…Ék»"å RbwÁáçb²U¿N?#T QÿI‚3¿¼…,žø¬ƒ|×ý=‡Ïòh5M¤‡k-q¡@và:µad¢qŸüsBÄÓ›¬O¹¦‘Tœ5½l{ÉÀ>ƒÔØê?6ž{ÐÖÛ, í9iÛ^TÌÙ~AC 1gžòÃØq=":×[Øt§ó’¡óY±ßÞ°;¥ {«­ÅÚz&2ˆ×‰V*Þ,éñp½b;x£”1ÂŽÜÚŸíÈHÞÝ”ü‰ƒí™0Íî}'·I‡òÁU!‡ÓóÀÁDšó*Ar É“Œò×ôqPÙ åg”yà5^Õ^[Ÿp=ÆxºÃ~@XKÑ(SΘ òÖ§¸‘· ’N¹ÞÜÞU7¢J¾ÂÞ§È‘wþÍ“:S^˜Xœ5´À©¬Ê\?Ã+Üaï°ATpœmnYº¸>tIן¸&Õr9Ñ`nNÔ9 UØÉ$¨ÁEM^‘ׯíu¥æ”v 5jØzATÌs}Œêì#ã8ªoÙsÓ}"«u~Ç¥K¸D¹å¦C»¢N›ŒÛ¥ÃGÜà$mjäß ö¢ý:²¤ƒuyd(~¦Qø—¤MÙWµ®ä‰‹éí£<¡Øà'ˆTåérb#G½5Z5HÓÞÌd¢˜›üh´…¼nHÔdUVmdèiçzd··OÈù¦ûNéôZ!¼BÐz û±é‰Ç¢ý¾H ^KÕ$Oèé@Ĭ¯‘ ®y‰¾¡E:ž6]Frt^ðDðeljñêîh+æû3Å2¾/jãú~'¸Ô@»=9ÜnrƒÐ3nÞx¦%ø¨¥Ù…*@ÅÝ—n6ñP?и onÆ’L>ªºˆdúæÖs|1}Üb¿{ÎõÎ4FÝ×ðž°{½µëüØ#Ë/ê‡Øôp½°Íóf¦¢Ö¢%å2ÓÅ:¸ ªr ·áù¤Œj¸G _—,Ù¡ü #…PEŽ‹‰äÍ,v¨GNäÒ[û&¯é)^p9U\Œ6ãNK?31…Ð<1û™ïV€€âP«¼7X­)µ²Ånv½fÒ3*&M[QRèv‘•IwàB²¬ l C!LÁÏÕÐ5BÙñc/Tƒ°%,òš4TàdrŠPiDª'Nµ5 Ùf}ñNHHY© NAŒc/kÍÚ¦•W¨!„õ%(¤ZÚÔèºUúiš³Æ:"-ä`’e³ì:ÚÌ”zC6M-V5Tõt„¤| f7®%·ÉOkɇnK‘4}ùÉ>ÅI£mÏ…Ì&Çx¦S—ä¥8GRˆUsÿ¬Ttôp`©¨¡õSŒŠ:±ÿrŒ¶¨Ý¶Jñ³hèUs"-™·G»ÁUÙß5M©ÏNÔÃÑò´ØScΣ·’Ú”~eš™­Wúc;LÍö}QqgµBÐÚ¾|ø‘™D¨a5蔦AÞUB÷C³€¬‡ûÁ”@T"ÎFÇËu2 ßpäÂÉ¿S'ã/nfÍî7p©ÎT%1$PÔpS•¨67±ÛÑÐfr€µ<Úó%'”©2‹fS爉>ëE7Ùaß75úÁË£iÓ—™î…ì÷{#H(؃A.ºií ŠÝ½ýéí÷÷ì϶ A8{õÝ¿þñž}Ù›ÑÒ>x ±üb)ºœlLËØÅ£=pÅd˜,Ëx zE‚*¬}kà'»dÌ?åÞ߈YwÜðif3Sº ƒÀŗ½Ÿi¬ñpË(¤]_ßH亞ô¨?K¨"W”…<2Œ(hÂzñíŠ$MÒlh¼©¾XUÀÁ8U£ÕT…ÓÖ ~8׌ŠÕ\RƒÓ°Ã; kEŸŽšGUQÐ#T*öGB¼­`ù͘šTI*_5\¦²ékëÞ<×  è[šÜÁJ2ד¯R }Öõ&)h¢?Q×8ä‡É·˜ù•Џ!°Jtu®N½¯›þÓôiôyžëE´£÷{§¦™ü9/Jóù ´~ ²kPX ºÃÞÐX¨©Þ¨ù³=NÅG6 ;töp€T%ÔþPèswÑÔTêbÜ+‘+ÄR½-ê^9ÈCO-‹R¹†ŠIÒ!B*®õuÆoÔÓ/ÊžúžÑ=(³Š¾Oîõ§eó1<šõ}Ús? 0Þ» ÙöœEðvèl#ô¦Áðå蟃½×ì&’Ø‹]_ \· ±§bM5IŽ+ÄŽÃõÐuŽ mW 9Ç[xf¼÷t£ b¼M»Dä-¦•U3UˆÒl¼© ŒÒ2lÅúÌѵœT ÆnFL+\ñÙ…½Šúl„G""[ät`¢¢æ¨Íô÷‚Ã6.ÔÍéšÏ»É3Ž|Iw<-ÉÉëŸ8o'OŒŽêF}¢9Ýé¦z¼/êé™é§°ÐDÒÔu¶hM§ûÁQã¹£_ÕŠæ ‰Þœ.Ï¢¦…'“cM·¨ö¹%HÀ £5’ °÷í)[4Ÿ× ˜) R“þ‚ó?Ó¶úW endstream endobj 276 0 obj [ 275 0 R 277 0 R ] endobj 274 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 276 0 R /Contents 278 0 R >> endobj 279 0 obj 2667 endobj 281 0 obj << /Length 282 0 R /Filter /FlateDecode >> stream xœÅWYÛ6~÷¯˜º@ëm¼Zê–Üm€&ÍU$6v‘‡8XÐm««Ã+RëEÿ{‡¤|Šêcª=D“œ™of>Çþ\ËW;ƒÇvΆÐ7h§ülÏr|( ûË]'g?—ބƒ5|”oŸ¿àb ¶r©N Ow'öå ùæö ¬/fƒ›×>ØfËcˆlß"Ä'„Ø6D–ëÄòq`VÀçчÝôîý³gðäZŽåÀŸœÕð– ͯ¾Àì÷Á«Ù™k®íü®Ý) Ú™pCKeýlÁ÷ÈùÊ #óÇYeÐÕs8£mË¥¼MaûÖ@ôPû£ß½~£äÔ‹sŠ|Sãýì]œ±¢3VxAoö¿qÈ:Y”¶û!‚ÏÖ¬fsÇq8PHi¹B‚‹5ø/ãðØdL@Rm²r ¶¦OYUCAwøÇ`SW‹œ| ‹Fn+y–²ZîmU0ÜÂP¦ái¹D¹€´¥–UÝŠW«š *HjÊ×°]³R­¤TÐå x²f…U% BÕø®Lpg&ÖjçðR¶ÌÊLdU9†Lhóìå;©|Á:¸\Çr]Y"Wãôm#8ZBV ²'V°RXZòæ5ÏP$E.‚Ø–­T‘P«ò-Ï‚_ÓT†J:²WaJ˜o…Ê:XÎJRµ\²šgO¬¦9léŽKO²k”PZqÜ:á,ð.Ócàð•³Sôžå]·mÇ"±4´Èß)õ7…)¾r«íà·]tÀuãØõÝå€csÆ1]™ÈN±S\Všëj T~YÁ,˜IJâïÞZ|iÍñË$•ÜØ`˜}¥Êê ç9w¬d³éîHËSæ¾AÕäˆ!Â#zá²ï[.ñÐA¤·Ÿ•IÞ¤ †I‘æYɬõ°C8;ð-_^D^ÔÛà©2sFÁáIÁU‚\TɃQ(,[‚ôÃK¡Û¬â¢f´xn8¬AŸk·yVd‚dœà^#ó %-ßÐÙ ÒŸ»b^xCÐÝ净 š•s¹h½JƬi ?áøéó—ùUWA^Dýïîž0D¼8 üö>77ð†‰ãy¢IÂ8‡ łń<›Ëº*°,-SiïjŽB+–ð£0:j.vHÐÍf2Ù3v2y©µ¼G%Ðrh>ÒJ׿W†ÆÐǪÇGÝÙæ£ïö*® ë­K¢‹BûÔL4u v×–kGQ”ûÿéîs#ƒ¿¢Þ™px±ùW\–¯ŒëWOÉUI°Œœ_¬Æiuµûq—‡è¿ûJ ÎGó«ña®á—3ʹœ1%Kž!¨m ^âAHNdà¦Ú4¹úª,@µø ý³>É6y 4çàEÍ!¤K!ý)‘açLH”P°bÁê1^×^ÅòæäzƒuzB(WF×ö\æì !ÙhˆºIDeÈ«‡ý„9ðÚg¼Sæ£á[ì~«V|8ÆÂOðŸåwsè¹ÄpìOŸ²)°ßIîué»M«¯Ôç“IVªfc§sˆeOR†‡ßﺶ<Ò“Ã-ñuôÆó?´qÿ5‰¯( ¶”Mž›˜âa'ÒÖײIIzlX½;¹åœ¼ŠU¡²¨"yÚ?œÚížàÝ)ÚÌ/2–Ëh0GvO”¥AÎG2±qŸ8ý”®Ñ­£Ët!;HÕûÊ’F°´ë M‘9ˆ‰¿½…¡rpCùA«Æ+ÓÜ€ûLy;Ú!1T9 âQŸU<›{|ê´-XBåÜ»?¦¯>Î ­/ìÞ•¾ç Ç0 ±Û±Ô–vŠÞäBdƒç¾«®äˆxÆTœ`28º=¼@ó™¨3ìdu’ÍŽjæ¥ß%ÛjªI¢l¸¹XäöQéºW„½WZæ#Í5ÂØíÆ§{‡Ä3D!¡+Ý|¤ŠÓ‘ê/hªÈð`E7ݶüÆØw$ßb8r”ýiau]ÕÝr8^Ol”8RRË·ÄÄ[q‹_Óƒzé¸^Od[Æ\ºÀóz©¾3ß þ6W¨Ò endstream endobj 280 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 281 0 R >> endobj 282 0 obj 1571 endobj 284 0 obj << /Type /Annot /Subtype /Link /Rect [ 286.85 544.541 371.84 553.541 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 67 0 R /H /I >> endobj 286 0 obj << /Length 287 0 R /Filter /FlateDecode >> stream xœÅYkÛÆý®_1õ‡ÂidšïÇÚ(PNëÂNãìA‘ Œ9’˜¥8ZÎpeµèï¹3¤(‘’âO®v±’ø¸sçœ{‡û8󘋟ô–d>Ë7³Çî˜ÇŸqw(Š™:~Ä6¬û±Š®:úà÷Ÿðf/‡5ûyVÏ\ö×Ù/¿âdÁ\ܰ›¹csææÛÙÇ£õéŒûÕ×wÙjöænöòûˆy.»[)ò"Çu#×u=¥NàgôòÙ݆ýòüÃþöãûo¿eOã;>û§ ûÀë–WßüÊîþ>{{wZàùÿ‡Ð>l,Tp¿‰cª~r" ÝÓ3Gˆ8Žš{ GìÚtªêJؽ[GìG}¿‡;„áGq ‘¯ºøet$Ž8é *Âäbõ¿rÊ&U¤µÁdÀst àxnD±D6†WÎu¾f÷ÏsY+Í6{õXm·77oxñ¬ŸD£JYÿ‘‰æþöÆlìG&½Ä ŒÍ$lÒëåKö7^•` ^°ü`KML}‘ƒƒ‘j"MÃ^¿fÏOàH#›öŒŽ‹ÆÙ­¹¾ßè+VÃûÄ~8 Ù÷üôÔ~ÿzv¯¡›R<‰‚\s¦Ê‹a•áäóaâd”Ô.˜Ÿ3žkÈÆÈª=ø‰öXR[³4ËN­Ã§¶©qÑôž8=S“ÿN.Kº,N~ o?çb«01–¦’ |GF_ðªbKÙ0^ï™ÔkÓN`Eo}Š,½Ü6Þ^Ä4;ž›!¥pÕO½/N©çe_”S/È\ÄGë »g솄3QÚÙílžQ#"ZQš!Ëawõ…ëû¾b”^ʪ`¥bZ²RÿaH𓨙æB¡À¸B.ÇDö¡])õÁØ;³Êc+uY¯Pº‚ •ó-¾Œ d™“ÈO„g,k–Y»5|Y´eUÅÇV€YŠ-¹™&'FfnÏ-SºiÁF(‡½ëÂËe™—¢Ös/o¡#jà 0Èvµ¦ÌP4bˆ¥óKÖÕÞàS¯¥êŽéýVL1éeÉÈ-*t‡‘F<¶%ÕA;}-ê ᨚ¾ð‚˜ä¸â»3†ÉôbÉOr§® Á\'LÏßO V¯ ¾ÜQZ%–mE¹a Ár7G4ÛË–mÊÕZ³¯uwš/p#AȘcòÅd…B‚z—²±K¡Qšú…@.ÆúÁù›˜\ü&r dëiˈýÑղ΅s¨úCÔ±5bG…dT Œ9S[ÞP†(re-r¡T©÷ÄŠ]SšôщJÊ­Ã~¬Z5?ØEáO}¦……c h({ÁÊͶ ““ÄÑ*z]_W«­7s¶åù­ š6{œÄDz†ã‡"bqÔýœ‰ fk~ðRâžµàÅÔ¥4»´d›¶Ò%Ü T•B­õN4ÀP^{ -PuX¸õ[‹^ÀYQ.—Ð\D‹Vmý $gÐòžk%eêŒÅ)õEd(òes(I‰^ÅsjÈ'ÒX6ðhš 4‘ÑâZ4\ËFuy®ÙíÝ{šQ4/kÑÌ;äjbYT±†×+q3„=³4‹ÐO]7s»®õ ËæµÒ2ø3¥Õ'¹ü¤t»\N{v!Nì'Yæ&Ý@ä8ÎVnÛŠC·¨VÖSr#€qœÚ@JÉ? z G NŸöœ…X•5Õb~ꛃJ‡ï¿qÄg‘·ZзWW4)ˆÁftØ,B»î›½qyÇÞm$6Ä¿™Ï×ÈùeyQà¸4€§IzÆúGŠê¢?^zõf&·„[b0Ÿï%Ô¡”"ç >]±@ƒ(TßÓÿDd>3rF£µv¦5›È7¦+R\o¡8^„É/Žº¡êgÙ¥øK#[ÕÈ’åèСÙ- “ï!úJ‘€M'tíÞ!j½“/zbP#Ü\e7ˆéD}j§¿€Þ^˜^³ÀÖœ¤–q¥d^ùkJõÐuv{–‘BŽlÙÌ mäõH1Q3¶+«j:¶‡îhÅm#©8Œ²Qˆ%‡Xv+@¯=öáÃþÕ¡¶á¥²\4ØfJ_ÁUçÏáV˲\µé«øP_‚÷}ñدÈùµnWhSíf-ÅgsKÚ5tËnò||G®®Þ#ùd>°ÿ¢\­D3u)G.ǵÉú©´³]—¯l«‚m9-Éi´;T ¶ÅÑÈTUè2KsÙ(£ð}s4‘œÙxÅc·†™E6&6šÍsZ„¨‚ã¹l­/E©@uìDvhÄ( Îl¶à¥m¯ Q‹e©oŒSÆ  ÉY·0LJÇ@Æ€ÕÉÆ à ÕL»Es;…ærƒº’œÛÔ¬$ýÝ5²^9 œWƃßmK‘ ƒ,-¬ÄÒBÆ»u9˜0Ûü²å£¡‚/¶V?úqÂÌÍ-µWŸiçÖ`¾=Ì/]*ÂŒ!èˆ “AŠ+ëœhÐ(i¢çÔ-oŒöE»W& P*ÍH ÆPb¦}. b'ˆ“,u³n/º©Eñ½Í"¼_T²4th6Èâ,:cζÚË"æ»×îîg J…¢Q‚Wh +¾Øka¸Li|Õk[!Mf¯f‰h÷Jâ3Ø„\DxèÚ4ÒÓeI½{f6¦èÞu!ëxRN¥Ä0B¶Úв/¤UÞ®œ†¥ûGmz;x:õ+vG~åh¸B,̃æmƒY n»šÕü>ˆ’';{Oaf•µ•+â;é%…‚’|˜¾åûéVž%þȳž6xÃHÚ Ž¦?1̈Fkë£ý_Q†gÛ‰º+w׋¤Ç>áÈÃ/è¨azæ>Ú^(SÂaêí ePÙ.^˜‰VõÌ>„Hù×ÂNùºÙÖÌtkY]?Ms6æ²HU\I‡ý€¤v…BÁMW¶/šn…Nôu;8ìVò~ú¥Íù‘Ó8kXÓoÿ‡™®‡ðôñ˜;æ =€Å½êP>5@~âúqœþ³€WB±¿¶5Íæbí}7qbzÄñ™uÌÀ{sc«@­õúÊ÷®CsA1HËÓ ^Í7S­ŽÃptÿ@xaò·´…´÷.ÏŽ&¿´{VtÖêïÎŽq|ͰA&wA¨šà†éQ¢«˜§P¦äýBÉ$ÐÖ$é†ÔéBï~¸}ûÓÝåôc×êÒ6K’snv{z»‘Žþ³ðqö?°dï endstream endobj 285 0 obj [ 284 0 R ] endobj 283 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 285 0 R /Contents 286 0 R >> endobj 287 0 obj 2437 endobj 289 0 obj << /Length 290 0 R /Filter /FlateDecode >> stream xœÅWKoÜ6¾ï¯˜º@¼N62Eêé:9´H‚ÉÁµ‹,à%®Wµ¤U$®“´èïÔ¾D®ôÊÄ¥æõÍ|3¢>N| ø÷RÝâ”B^O>{>ÄX4l…øGC¨aX‡P)©]¯ðf„p±€ß'Í„À»Éõ >,€ Â§ ›ÓÊ—“‹ÿê ùæþ ÜO~¼šœ¾ Á'p5ߦÈ=BBBˆïCâ1šª‹ÂU ×Ó_./Þ¿xÌ£…ßzÑÁÞ¬xurW¿LÞ\íAc>ý ]è UpŠÿ±§«¾÷ Èþ“Flö·»Ú!3{¸c|«GÕPÂán1KƒÇÜâ [dÅ>E¾©óÃìˆîxÉ+‚ä`õ¿qʬ**߇Á‹àr!0hNߦVk¤^ì+if·†ø,ò•Ù4;Yë;’çÅTu¥–¾?ËŒRÚC½ìTåƒx"z>"‘H/Q¿lž ÄOÒƒú3( .¡”ð©ãm¿ˆF–ײ—å²U«9ôes_ ÈyUypµ({˜ .W0Þw’MÉÈÊ¢^6½D›¢PöBŽC/a*w ³ ‰Ï¼n+ÑŸöýǪ¼¼mŸÄ~ØÒÙ6€ɶϖÀ÷ Q8ŽŒô÷e“W«BÀQ^UÙoqdÁ}/$: éX«íÊF\r—^ä{±Òói2ÖÃç.„b]Q‡&þHç|ŽY¼~méø„b€+ŠÎJ•^‹¾å¹€^?ØZŒ\žÂèá¡GRÜ—ØHR|– ÒË9H~÷²-7¥ž—¢*zC"¹Dªì%ŠÙ~6J:úA(bïÙÒ!ÛÇÒKdkŽ$ýSÜJ[<ÂŽTâ, ‡°|VagÓ\‘sp÷LC™Á£È±ÅÎë/ȵ¶=;»ÔO_?[Gµî»]?Øù©JV˜ þ²e’`”PÀËØ4ér! FÉÙêô^^ Þ©9`+RÌûÀ•b9hj¢à¯>›ê4¸ Ð`„Hø´(qdÓ{!MþÐÆÌ?ƒã,“ÇÙIv6xªÚü.˜vÕ/nïxþMG™Ï¦Ú²ìˆ3úÛ–‹BGB:ƒ¬ÙÄ Xt Ÿ8žöÓa»`$ÒƒÀ÷Ó-“¼P £º£UY—ª;tãÌ1—³!Å5…Õ¬€ùrÕê§šó¶?!A7\ù0ÄU½¨ç\âaî–wྣ—F˜†fº[.+[šÅXÁ0Mâpp‹$*nµ§[U÷ënʼ{®Ñ©³é'-©»Hi˜MG+± Ôf ãQ¦5»çkb7íJ*Ö˜\õdQìê9rû;£îb1‹cGS¨+]ççpô¦ëT Z¡KªMéTÀñ‘z¾ŽIËš-Ñ•#À$¥{íjàìœW½pè¥ÉWõCà'Ž ÓHõ¶m: ‰ýi¹î)‡–:Ù“E¥nf>9«©ꦎ£Iofûf„ëW¹Í†©ƒ\ÛqµeïîÌÒûêf&ÖàçšÜd'¯×þÍÌv¥ŽBŒ¯µz³µÆvÖÁÎ:¼qÊ N°×A” Ÿ@Ú9²†”Šáh<$ôÛöЈlZ,EßKXðGÑp€À é&qºÈUZ_Gxâü/Ýâ¹ñpQ6hÊæ‘We¡œ >4šµÏÈW—"ÄS©zuú ‰Ÿêè0òõÑ(ñû '»•££ÃØÁ´ÍFxzÄ7a„îñ@ç8ËÒ‘óš«o”ÞÝç3ýV€ç¸~¼¾qŒýˆÒQ(6Ç"FY÷ß;!õ›óŽ#7yž‹¾WÃJKÑá÷J·¬!_Ö5oL­lËsäx3ÓÖŸgg?+ïU‘‡O‚lj*h›¶ÓŸÊ“œéŠÑ endstream endobj 288 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 289 0 R >> endobj 290 0 obj 1411 endobj 292 0 obj << /Length 293 0 R /Filter /FlateDecode >> stream xœÅXYsÛ6~ׯØú¡‘'6Mð¦ãæ!©Ó¦OãXmÂŒ¢ ‰ EÊ$dYíô¿w .´>¤ôAj ìñí ÝôØøsL·0v õnƒÐ7hH~̳fÐ<ûÓªgý„7½¦ð±Wôlø¥÷é3¾–=û>;µùªw¹#ŸÞØß]¾ “Þ«Aïä̆Áx ó-ÛömÛf "ËubºÌàSÿbuuùîùs¸u-ÇràZTpÁ‹Ï?Ãà·Þù`Ï4—9ÿƒi—Jm 9ÜÁßÐR^ß{á{öþ›ˆØÐ·T%ÐÕ4¤hÙô*o\ØÜµ"úQÛ£ïvØ[3ì]+öCä» ïŽŽÐEŠíE…wzÿ;CÖò"ÉÞc<û{Ö`XÌöÉ_ÛxecHú?¤³Qž"9„¿µy;»Xh¹j[l·ÑU ¹¨ `/Z[0 |;À´òí–Z˼Њ‰sä¸Ûe''ðAðdp|x<y6ˤÁ8Ë”c¨e™~…—¼ÅÒ´QoYÞŠT–Õ™ÚöRï¾Ö´¶êAd°VƒT¡Z×z7ª3«“þ¸ã³y.êE¶ä<8Ú1 Ñ9$%Ÿ iY!AÊœè!H™#¸Î‰Øv¬V&Dz¸Ã³èƒó±Ï³z r* -‹íÉÊd©(„þ×°,ÞŠÊjswb³³U}“Ïç§§¯·L‘Òß¼X£zz:^|&ŽÚÜÝñ@înàï³__MH[Z¿¤Ÿmh‹ú>eÎëš(ÉazØLœ^ç‚WÀóÄ]Vˬ˜@U.kWå¬ TR¯a)žUø°\HÄÑiv·C²•–˜ÃE‘N) ±„²5².FÈ–¼ )ªT@s) n‰ìGÜr¹.7êÿOäK=:lb»Ãj“%îDŠyòóù»óÁ9¼ùðû…åÀÄÌa¬è·Ú~Š; LÔS(¾¾úS•†#rC¹$,æ§ +P[ˆÃºAN§¼â©U sl÷sž~Òø¨·¨‰7‡zFþ®³¿U)9Íê¶—™aF!Mx×EMaã²J̹̈¬]£Ô·TÑÖæU9©ø¬ŽÇ:ðGA«rñl¤£Å`ÐCÎ«ÉÆ.  ”€ƒ³4EºjGã3,Õè?  ›ÓÓ ~÷^q×þz_æYº:{ÙXu=WŸ“>¹Æ£ xúÆxÒlÈõI·ÎZC1É Ó{tQŒÕУœŽ8X_û*›”nð?YeâV¨äœW:A¥=,%®* ”]Rèìo×v:W¼š>¤¸$}  ]æàl· ×q `¤\b¥Iú¨%FêÆÓ¯øH9ûGÀ*jên®ëªþ ¦b¿"9¡²®1¢ªÊªA®çv€›â8;ƒƒËíþS8 6¢å”Kò¸úˆ¢  øn´Mû=6ô_7ðž†dè}’ر=ÕØ»áŒ¼GábAL7¬ hÆÞchn5y R¼·g9Ûëu}$‰¬š¤é:N%t+fûÒÄjæÂ°áõ?•x<»ÇV¯U¹îŒ ÏñžrM1á¹¾Á1†9×ó àwÇÄnéìŒ Ï÷;zTxAÐê&*vuùöTóÂà?ÀOƒ5žëù]*æò¡4C‘Ý€¾&®ÇÔö©eRñ*±’W°þ’@¬Ù·AöY¨¦œ¼ÂÏ¿Wß¡CY`c—0Ÿ L¸ún¨f’ˆy–0ß @4Œmß ºg`ÃÓp¤Æ– ©#ÛkV_”è(œgõAƒF£»L®Ö£Õf\𔢦9FM4Ò0¦éÓˆ¹_Ð8<åØ}qÃDPë­@ŠZnW¶O~Ø+÷«Ë™X¢—…ºÇ¿²ÈW —%|+ ³CMº§åKNªF) fv ZªÇ(‡_p Ñ£:6 ÃQ=/Ñ„e&§´åjð®­–¥}hbà(µ‚ñ£EãqC[…¦®q[_t1ÏòæaÄB×fxÛ®’ÃN':Nô3kç’ËÞ¿d²" endstream endobj 291 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 292 0 R >> endobj 293 0 obj 1561 endobj 295 0 obj << /Length 296 0 R /Filter /FlateDecode >> stream xœÅYÙ’ÛÆ}Ÿ¯èG9¦ ¬\œTª¢Tœ’-ÅR4)WÊòCl’íÁB¡¤˜¯Ï¹·\¿(’Jƒ{9w;wáç‡H„øû’~Ì±ÈˇÏþ]$f±H¦þU6QÄ™(…ÎDA«.âî ?Ü"c qÍ⮫òqÛ"¯]T¼Ÿ^ÎÅ»1z -87öÓ7.à(À- ¯ø‰í” ê Ûö]e‹“å¬yÚƒELí;º£.$¢“VNÈ…­X­:§¼Ï-’.圦FQOUÑR75ˆ£+¨gR‰`lTü¼WgJ8ÞdØbÚFÍâq§sY¸ÂW.A*œ‰©}@ Ir¿~ûÓkËá…-½ðgZºÍóiÎü¥C¿/èR°üÃN퀶á“pÞ[])J°W)•ò)ðH¼ ‘bÑÊ?Iúž÷ȵ%ù·±½Ž¦Öä$³ ŽCŽá‘£ÿYþŠ\ù< ÅÙݳ¼Tæ«3ä#g/jK’Ý9ÕˆÓ¾_K_êž(æÄ*ä.Kä• ø_!Ä:çuE€DuZSARBáU1Š¥ö…ô).Õd'ë›i¸ËTðè¼-¸—8×u×vK=tŽm,¢®ÊŒsÜs ³ApU¾|B™ö}ë£+¸Ž¼UÜG$`]%q$I7\äQyÉÕMÒAœ­¡,ОΟº6RzFB¢J@µBÍàÝëÝç}Þs¥?ýùÓ‹8¼7ŒÈ¦#G:åkgw¥,:Š–*O%\9ež°SŽÄO͈i}¿%et ³—EëQWÛ’¯Ø¦U®SÀõ\›±ènxb𹨠#t Ó¯ Ä¿É-Hˆá(!ìû?÷§wò{0‹¸ø‰FöÞ2EÞµÅ< f]xíerÝÇ\ªà²A<¥¾†Jò¡ÜQ?Ð|j”•3)¢Û¸RñêXHÂËœY„g4•’Ý„e-Ûº‚örŸïQ‰QózÅ#™!¦¸qöbЧ=W5LÈ@PŸ¦8.‘T7,A?…¶ÌÃI³‹DT»-UÑJs—îû`çj|‹›¥i?L~r“ª¸ºvA,©©pã&R¸'ÊÀ~–±Ò¹=‡L½¾LùyÞÒP¦éÍÒiß+À&T_x û]óª#¾ë9Ïs<ƒÄ]ZQuwîPñˆÑMk¤ÈÑœ×%]ˆZšYÙvuc¤³A B6¢<Ëâë›5Ë‚,C@ÍÀHÃÐú¾r29‘‚?Ü £äÞI§A[Bߤ=ZÍ(ì"t!aœzW4É?Óõc#+ã^˜› pR¼¦!nÎ’ìTFœ‡œI¨À“Äl ª¢ñ=ZUéšiüXY纶 *.i.@ø4\*¼á…ªaýâÉ’¡ƒ»Føüùïp¯84ÒWüôMĪw~°ÄyšË.{†Í‘ëÚ©5çËnÕ QÑåI]L®JŽËeYÒÃÝ”•h<ÎhJVïäå'‰†Ú}Õ44sÃÏR¯¸Pq8ÎèyÔˆ¾aOVùB†±~ÝÑ4ë!òå¶jG,^Êó൰›|:ŽjýHóYYVéLg~$³rŸme]v3p°ÉÝlÖCçFž‘AxØ·ô#s=9.×w CÖ:l]YTÒØû ÆD܈÷ªÙvî±ä9ï"6×Nß75I“`žP+¤#hžé³i”Ý;…ŠÊ‚¿_#u •õݬsÙM íeDò—×t»Û¡7Ù²úÅbãអYÍP@#Pž©d¾¸wŠÓ— wnz;TDÜ÷nËãx¨ù.i*_rÁQÿG95)z¿E6KFîøGý,Ò³èÞ)§ê*9º ìè÷’sk7rÓBÒ"²o£ü7Öå*'¸øNúÃÃó†¢h endstream endobj 294 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 295 0 R >> endobj 296 0 obj 2849 endobj 298 0 obj << /Length 299 0 R /Filter /FlateDecode >> stream xœÅWmoÛ6þî_qó>4iSEï’ÓvÀ’µE‡¶Xbý-1±V‰tD)®1ì¿ïŽ”_%åc§B‘w÷<ÏñŽz8`ãßkºE#’bðØŒ9¹à…ÍP‚ã[n4Ïä4kçÁ]?áÍL‡9|ˆ 7·ø2,ö¡9½x<¸ÜñOoìŸî߆‡Áùdpú!džÉý–"'°l;°mÛq ¶ Ínvƒà××zO›§GÓã“ÍX­GL)éÚC$ÕÅ¡·ˆ:¯³<5/uÅDËŒ?qM“ÞêX#yÿ² æX8¯E–È´«î(ì׃vKtÖsA˱ò ¸ž|xý,‹¶žêbâØAÿ—:dø;’ÀÒÏÓ£¡â9 /Í3 †]ÔxØœºe0fß¾…árÎKn8xCÚDðXËŠëI_§XÙK1ãåÏÎKV©a‡;/êWâj—øR.OðoT ™þ#á k¸C³ îY–«Öü¨G„MÐãJ–\swÅUW¨¸Bd°¥è%%RGðAÔ-ˆ.hÄâÅ¢Z™,ìØ¯^?“òë6Ès–^6bš$™!¥ËºÄ)µÐiÔîD^wTäÃkH5‚Ÿ@Y "Wé¬;Kâ¸G¶vóí¸›%Úk> endobj 299 0 obj 1614 endobj 301 0 obj << /Length 302 0 R /Filter /FlateDecode >> stream xœÅXÛnÛF}×WLU °‡Þ ¯® qÜ´EÒµ‹>D±"ב”¹”·è¿w†¤.Ô’Nò’ÒÉ,¹gfÎ\×w# žÑ-ˆÄÙè®]ã~»äùÀ]GxAûìÁœ¾Úyë'¼5áà þå#¯FoßáËnXØ>\½ùrt±#ŸÞ°¯.ŸÁíèÅÕèø'8ƒ«›-EÜsócœCèHÑ%à*ƒ·o./^?} ÷ÒŽ€?.áÊ—j~ø®~_uL“\ü¦]Ô:4¶Ãþ œÚëžËºov"b³¾]­Êf WÙôjÞº°½7Š4=Í}ж5ƒíZÑ ‘¯*|8:‰+N؉ O zÿ+Sfy‘doŒ‰0ž½Ž5ø]àHæ¡-ßíu| èªLõ½•'°(Ó¼‚bYA5ÓëTj:×y¥óÊ8 ;ÐBó1‘<Ñ…®¡®MUÄ®kÉÁÝR—“Ãï-8pnAþµ>s'"3B!·ŸÅªŠg09@MÙƒ¹›/''/TrAâ¾]Ná Ì ^ƒE‘ÅÉÏÈÅœy€ZgÄ(‹ÒX~8ÀkŒàôÆÛí'0¦%]:«™ª&¨ý%Ù„èCöƒ.n©«e™ã7ö–0ü,£ð‹8<+ò{]š´È‰ä,B&Q²ù“S•P µP6‘œGŸbr«É§èÄ»-@DýŒ®¯ñdR•m*$¨JIÿÖ[)Û—}ð2Bö^úÞþ¨¸Â²Û,^Óâp8p7B¯!Å^èv@pŸõøÅްîBâüc¬Õ£á²~¦1Îô™šÏá¦(ëô*°Î`wm;®^£÷DHÄÞDÈù—f™`ìËiœ­Br›‡—õÀº|Ͼ²§=á×¾txÀÑe¬EYä!DEÌÞj¬ß”ËÖ‘Õâ°tqjo~ÔƒVj£«d:¨ì±í n*t+*§ùmÝKôG•-æÚYCJjJ"¤ lß¶ˆ;¾ïcãåmeöß˪( ìCåRHsøÑ˜"NU•b÷ÂòP©4×ë*ÝK›Ä±qse ý{®¡¸©5,õÝ2-uF}ŽÖ.¯^£ÔŽ˜x#°5eê€ú J©Á»jhý¾zXh˜)C.™j»÷aíê4ׯæq¢>´yR ¹2 "wgP®pªíÑöú-ïç†N©™Õ•ëh®cªTÈÖµ²ö ·qгOž'ŒÜp¶EE“ƒ§$ÓkŠà#»˜ÍÇîµNçFA-Ž6kK³¿²À¶A+}nöBÙÃiKÔö@†sRY¬Ú˜$Žê odõq­9¨eT&Un‹‰ä ;°»!Ó•ð[Q¥˜ÍmÓÂöµ*ÊÞ/qîÃ>³Ò¨ÞMÛIž}bî€oP)÷è—¢<‚Õ,Źr…þNëê^WgNÕUù¥j…Ou¬R[µ{D&Õ-¨˜¾GQصK ½Ô.V :)«9Æ5gÁ(¶œæ,{06zŽâàIã¤ÚAã>—ûÒp9zá´Þ÷³ÕôìtÝ~/Ö*8õøAÅ7oפ¸ýïÜð endstream endobj 300 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 301 0 R >> endobj 302 0 obj 1579 endobj 304 0 obj << /Type /Annot /Subtype /Link /Rect [ 441.8 261.801 481.78 270.801 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 306 0 obj << /Type /Annot /Subtype /Link /Rect [ 255.03 249.801 278.91 258.801 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 266 0 R /H /I >> endobj 307 0 obj << /Length 308 0 R /Filter /FlateDecode >> stream xœÅXÛŽÛ6}÷WL÷¡ÝE6ŠDêºI 4—ÞX¬‹>ÔE@ËôZXYrDi·è¿÷”×–%mš—Ô b…"çræÌpÆ&¹øóTE £t=ùЮy1âa»„äù hMís@¹ÞuôÀöOø²›ð°¢ß'ÅÄ¥'ü‰— rq`;qOÅ™Ã7“ë#ýúûÅõ»t;y9<û! Ï¥éò‘8®¸®ëy;œ%úÃhº¦?Îßín®ß>yB÷Üa£ß”¬è(‘_üIÓ_&o¦׸Çþ×® Öp†¿‘c¢Þyøn÷Í#Ö«F!·kX±ºõ«¼ aûm ±Öû=ê‡{pÃ=ö¢K‘/ª|œÇŠwXðÑèaÈzQÔºœIÀç ã öEwø…Öj?ÏžÑëLmr±£z%©’ªÉkR²vˆn²"•”Õ”)ÝLßêx\ÐVšÇfc!9ÒFnˆ¼ XO“ÖpƒÔº¡º¤´\oD%i.”\PY˜·Y-×x“7ëâÒTnm³<ï)â‘iE‹{Šæ0¯¬jÈïŒL§wÜœD#3Þ=¾©²¢~¯ê2½{¿’b!«Ù9`qTö—œÏ.fÏ{‚ØñŒ°$é H/Œ¨ï®®`G%겂A} a< ´ljgSÉ4SYYÌÎùþקè{x m³sDð[Yg.o³Bûð\Gõ+»(‹…]zò$«gôwOz } ‚¥µ=ýÎ@žbµÒ¢/I¯ÍÚ>lev»ª/{j’x$"Ç-*Sie©×¢–Cˆxn‚Àh{]iÿô÷²d>0 µ_ñEË ¼_ËzU.4}ó²¼ÿIñÝ2·eb-û”óx ¡‡‡AOÑt¥³,W%5Jª£T±y’)d i6rýÈÁ× >!ÏCäµñ³scéìüì§²^”·ô²)ÔÙ0¡½Ð/[ZFuÙ3È/rGH½'6½xAëï³WMUÉ¢Îwt¦ÿßr}Á±;°ãÏ­¬›s¸IYaãäœíu8¸#ñés†¹îæ2eú`0ÏAtŒ›²ªv—T”ŸícÞê^p¯äÀ6ß&uºÒ²P5­wêC¾Ù\]½‹ëFV»¯ •sˆ,ðF Cü„Û%—¸cvôAKª¬T_HÈLÉ£à$V)N¯ç¯,¥dålW¢Ö„}¿ˆàW!ýª»ÅÌ\{ž—„"™°ÏBòUYÜËJWþQ8¹Ë> ç\,@±½¨>šÜãŸBó`ɧ ÊXÎø#¥À¤ëlVà*“÷¸¶¢FaÅ{Psx9$Ÿóü;ò/I¤5Zø±vñ½^ç÷ùHex„<àés‚‡þø#œxó1•›úQ>Dþx¯÷JK}*òÜ´:ËJÜ4˜nÚ‰GîÅp$öG ~àÈ›ÏÍ5žøŸ«ïúÿ WŸ@´‚ݹ<8q°•90`w:¨åIâµ¥sŠ{¿?éM›±ãúf–ðû'íå<»ÕøœSÎmYÝ)ô½©@û@åÒ4Û¶«·ÄV(ZÈ4GÓ½pèçzÆSèßʬpé¦%òÙu‚ Ñ´@uEI_¹¾ì¶ <9å£ýŠì±¸ê·†Œf¹D#×záÎvth¸”ØÙ‘vsÿøú:Ô Ö)¡i«=B€¶í:Õb.Öј–côì)h^̱al·˜ê“Ì ÄÃØÄÃp@~-ó\év®FNaXÊm`—Y…â°Ìd¾ BÊ…Ò@aøIW2½C,PÛ>·}œáRGK½--UÐ×ÑÏ…)Âz:ƒöj­4øhQ×âN¶–HÝü¯.Ù;¹sÐÁ‚(+hÍA Ý­Š*]A³­58‰ÚsIeSõMÁµØåÕG¹ÆPZYWW´Ü+q¯'DÕq{SnšCÀÂÙÇŽëi—Åú§“œ <4ú±{Tn'rèÕJ·ÚNíÒTÌqaþŠþ‘ä|ܹ!ÇDÔÚû}aëèR ”I»²¡µsìØ tSo`‚鱺ڨÓóÂC ¶ý?âØdðOwA™F¼¸/óû¡8(cbør‡ÜX Lô6sªd…do•ë¹C©f- ëÍJÛd Çãfº&5>Ö»„ަî[†]‹²¥%þ[˜F¤ÈÐê_œRQÐm^ÎQÆvy M£,™÷`äÙ4¯ÉÞÿÑ#H'Œ|ôýDirüêÊHÆÄõfHqö0 <ôBÇK"—y~;ïë§Ù6¥R™¶Vÿ®qðÀØŽŠ$Z_PŸ¡Ú>Íp§ ýã ¢ñ 'B_ßv±‹ƒ9AêùѯQד’_rà endstream endobj 305 0 obj [ 304 0 R 306 0 R ] endobj 303 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 305 0 R /Contents 307 0 R >> endobj 308 0 obj 1780 endobj 310 0 obj << /Length 311 0 R /Filter /FlateDecode >> stream xœÅXÛrÛF}çWÌ*/r…ã~Iž¼Ùx£TäØ%¦'J©†àPÀJË¿ßÓ3‚ H&~ñÊ®" `ºOwŸ¾áÓÌeþ½¤8õXVÍ>Ùk.‹=æGöR17à^È*f¿‡¬¤§¾xý7|˜‡ð%g¿Îê™Ãþ=ûãOÜ\1žgα8}ønöþ@?Ýq¾¸~‡=Îþ¹˜½z2×a‹õà"7äŽ:Žãº,á¾—ÒŸÇûãúvw÷þ§¯¿fO>÷¸Ç~Q²e·¢ÞŠòÅŸlñãìûÅÈ4ßõþ¦½×Œ-pÿc®£>ºÎøÎ#öׇ«Z¡o®áŠÑM·JBûi€˜¯ÆóyÖg0Ã9´bL‘/ªü<;bWx2bEœþvÙ$Ф{oL >‡#k@î:!Ù[/jÕ‰:“X–òþúêuÙɶ\Ð…«ûßsOxÇaàï¼ 6y¡þo•\oKöœËšíš-ËÅ“d¢fwȨ;¶’ë¢.º¢©Y—‹ŽdMµ]•ì¹èrVmË®Øà—Æ¥æL5xÖþdµ¨ðµ1Èðø)÷]Jfßâ¶nZ&E–³ÞVÒ·*ÖkÙʺãLc^KÑm[É€* yÝ6á.êG¨2˜aSr#ZøÇÚ²—®‘ñ ¤Ð=‚t£í% ²^"•ØlH“`Y)”by![ÑfùŽ55´“ÚŽ5kkÿà@Eø%¹¯jN¸šàµ ¨È?uïy¾Únd«µãW Q öXm•(VsVt,í _R(j¸¬µN1Ôu’#PF£¶LC~Þ]¡ë€y@ôòØ[d =ÊNgáʲ«‘^¡93Eå9G¨š'©5Ëÿv²&ñjƒ_À–5«žå¯Þ <¢s$Ĥ£Êà(  gâØZò„£‡j’±Û>Ño›ÕìºPmÜØá~AY˜ö¹ªzjìó}ªh,'/µl]@Rè˜á b!ÜÕs€TgðL»E™ \”Sß%Þ*A±@ôª9"Ùló9x‘ R¥¹×£ÊÊí TÈ€çžÕ+Ñ VÉj)[E¶äM¹Â£b¥c×g:!*Ë)˜48£ºv›Q~)Ã,ð¶Ûm$g÷׋q=õJ3¯,”Îöu!¡›n)~ÿ‚ýÚ×ò>Bñq„| SžGdð¼H¾²Ÿ°OµÒ·,œž7àm)`ÈyºZÖÓä÷œè載«©DHøÝ†|÷Ò0$ßU˦d²m)ï:¸¢þȺ¢:Q×=ô>7‚|Çß÷>ô.TÑ6[íJÓ B’s7­92©”NˬmöþLýaTÀ‰ŸÐwû˜6"{^˜ÞW÷½Bû†îꀗÓ`B®ë7:⢔–)SqŠ#ê“•ª ªìA –:ŸPž×©N0áHƒÈq[so*ñH°?MÅC/tòáíY,^ó8–$ N`1aˈfÓ?·¥KtSm%iÎØl$©.Ê^÷Ü õÿg ê04îóð©Ú~$S¥ë¦áÙfsÞø8¹pÚ˜·¢Pb Û÷þ³UTǶ´™Ú¹AÛöíÔi8– Ú¯©jÔ1šÿšçZ~fâ×uCÔí…Z—ÌÏ;À… Õª{ÐDÙžŒ½:D‘j°ÐT$ýSQîôv`„´¡HQX»“£¯ïÄcÁ0ûÈ{œÝ¬M梖Kë!ÌC;3Gí¡ ÊsÓ~T¬.2Yî¾Ü3ݽ|M”Ð4¶•ãÕ+ö¦ÐCž¦ÇÜfœêØÚ¹.®ñºê+˜øÍÔ¾ BRiê‘í»6].÷‹C! 5!õ£hܺÙÕPV®¦ç°DA‚ï…c ãß› Fêã÷ꈤE+i•8±ë< bš‰òä<ÐËŸ‹ÛïÇqÛô³º Åj¥ÇYªJy£äùÑÈ‹PÑhã"—NõÚ~=ì2ÎëQvIc#Šüµ‹u&”œï«*\A£Ó´ÏèÆc‰z.‹6W,±@tG¯­•X.¨á^$|†7‚[$áñƒ¢S>Dˆ<¨KB×4¾ßî¯?ÌÙï¥á‡¡ ÛúôÝp4iXp®bЮªNÀÔ¯¡y: `Gê~NR‡‘Ç=L¡H´äs“úŠØãÍ´ž›Ž«Ó™¸N%`ÝŠhŠ üôo¤ýù 5rRîÅ~šDIÿf§œý Z$¢^SM|njýB¬¼´™F>v@N ÝaÂoÆ—~ædJ¢™ˆ¡CÕX©á’í>8ŒZÒßÕ¥¨Qô6…¤y×¾•8ùf'ÆHÊbÙŠvg:ˆjö/*-ؾ’5­©¦fPæWÅcÞa™1ûtn\bN<ÒR¨qn…9é¢ ½Gôƒw£ïgÿ?5•Ý endstream endobj 309 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 310 0 R >> endobj 311 0 obj 2121 endobj 313 0 obj << /Length 314 0 R /Filter /FlateDecode >> stream xœÅX[SÛ8~ϯ8ÃKK›I¾SÚ™½Ðvhw)i÷ÆØ‚xqìÙ°üûý$9‰‡ô2né`[Ò¹}çÓ9·N ?/ô#Œ¥“Ám;Æ)äí÷áÓ„ÚwŸ ½ªó"æoxØExÓ߃rÀèÁé9&3b¸°uuFødpܱ¯gØO·Ïèzðëh°÷Æ'Îhtµ„ˆûc>cŒsŠWÄúŸ Ñ„NŸ¾89>zþœî\G8‚>)9£÷IÙ$Åî9Þ G+¡¹\ü¡l,:áÿCÇd}eÂ÷ØêL‡‹ñå¨1èÚ1ŒXÛzªhSØ>­#öÕÆcŸÆÁ–a°n«ù©ÆgGèbĉVXáûfÿ'CÖË¢¶ýx0¬Gð©’MV¥U&I«û¼¼&<¨KšTª¦FÉ«¦ êJ) Êz\eŠî«¦ÈèRR&¯òRftUÍŒ”ª«ô¿gMZ73©d”—”…ž·Àí½‰û® ¶æ›R·…zæ¤Óé\ªP°AŒä¿ÉdZHµ¿4ÇUk> u=ìzÏJííѯ‰ÊSÈÄ vVÌ õjλ¼–0‘Ô’Ò"QJ…|úšˆz¢!sb×ãåņ¥º¸KŠF^¹ªZÙåÈÙÓ4'3z–Ñ+Úî {J#îpíâ6hë8òŠ&n:Ýß¿mªZžíRZ•ª~¹Á7Î8P€s}k\œó5Ll`W¹,²•À–#½À6*| ±ÁeÕEYÕc0vk„žp\­,ÜoŽÐkèØå-êÿJ„Ë‘/§Ž¸A«ë»óðZ©eŒÜ÷e3v×bÕ¤®ªB&سëf"Ëz3¿s¿Š}Aî®Ec1JõŠŸÎÒiíðœÎ7%BŒÕüЛCv‰¸(çÃöE©«¤PrHŽãÐ|ØŸoÃMx^·#8i°Ú$à{߉VàÙ=…ñB«o#ôìöa^4«åmÙL dÝO œýþðéèÈ ×笈ü^½é*ñW”lÃÚeþtÀú³Lk´GÐvq@[í+Ñv…¿†ÄGÛuƒ2w&œÍÀ×ô,ß ‡¬Áüÿ*eziuy—WxGyÉáv¯2}¶[P¡=)³• t¶ûh¿„Å0r"Žã.Xo-~L`K7oT‰zö@uE¨³’îÇImúv¯ûgaª*Sl·BÖgBx™`E^BÜœšË€ƒC¿!ö<3rEú¤±µ/{,vžßI©³§;¿çe E«¢P¨‘¡?Äi(¶¿CÐú¶¸È@ ¬äè/˜ÿBø;g»g»/7UÇŽàQ{¼E"­ššhç³æi4÷Q1¢œ.=€9Æd™›rê‰ØnÆ×_ÓûF'nUïZ.·éuc'€¿QÄÖý=ÔÙ_Õ»Jˆ…Þ-ÌðîDúå¶LéüÛƒÞtVeMЬVšú”Xä7_Hd,ΰ3ܸmã]TŸts©ù3D6M2M.Ÿ,ødSî|†¶͑ߞ=ºÈæ¨CÔ¥á½Ì¯Çõp:ËAT¥©±IG—‡Ÿ"rÛdM­ Å­ï®®{¯4­¼[*cö+lmB¼Ζ à@ê„‘‡îœ‘&¹RB°êÞ-Ä—‡ Œë/½Ca*Á\ÂM³‡ô\ç k¦É¬ÎÓ¦@M;Á…öÛTÕ‰Ù¾VñÕ¾¾âÅ©½ë©¬yj4(Âù§*šI©À¹Ö|­c0f‡¦T¡Ìh“ròšI#"m7€y,‡¬-p¨E‚…Ów(Àæð²µl{×@×Miï4ƇI“Ž‡È¨¾é€Ô¥Î#>šr†ÒõP5ËÚg½¬}{Ð2@;Û`ú¸‘³‡ý}€,gÛë1:‡ã{ GˆÞÖW¤QÉõ]FŸÜpšT¸Q¡àr£úàR°*®÷¨)»[7j€ƒ|äè¯íé癩Ժ®¼ýprøqDo?Œþ´uåΩ“ËBÎKÊòÝŽ÷êXÿ%„Ã`G0q®'B}¦Ï¿}:> endobj 314 0 obj 1585 endobj 316 0 obj << /Length 317 0 R /Filter /FlateDecode >> stream xœÅX[oÛ6~÷¯8ó€Ái…¢D]¼¬ÍÒC; h†=DA Kt,T‡”ãfCÿûE)¶%*m_:9€’çö«}?±àçD½üBRLîÛ=| Ž×n1l×¢ h× rukoA»¾ô%\¬àïI9!ðvr}ƒ‡)$ØNHŸ]Cüqr¹'_.ŸÀÝäõÕäô ›ÀÕr‘Í,B!Ķ!°ª‡ÂU׳/ß¿| ŽE- I.àC\nâüè®þ˜\\˜æØô0í²ÑAÛ¢NñÏ·¯0—žìEÄÓþn·èè=ÜѲÕQÞº°}kEôRۣߣvdߊÃù¡ÂÇ£ÃwpÇ ¢‚y£ÞÿÁ ¼¨dCþgµ…œ×¥TB^UŸ ®!†¤*ָ͎Õê¶«,YÁFr UÉ¡ZB½âPT‚ëËY×<…e% ©N5B§o¾ó¬ Àtsƒ` ¿ÇÔºÍ3YG³è¨ã1°Ã¥Á8 ®V™Ô´{–SÒ—¥MƒÅ&ËS‰Fßo¸x„mV¯`É·˜é«X¤'I•¢]²Yy'Ñè¸l-—5T‹‡¬Úà.OVe†ô ЂLpÙVÄŸ±¬¨ãPËqTÑ ­N¥¨ä›iË8iNPè·àÇ+™ÇÖöB+tÑD/dC ­ÁòTÊû\2+Y¯G¦c…XmJí!§ùNƒ#ô0Ęc9„¡¾§oÿœ•I¾I9L“"ͳ’[«éϱñP£}ª5B_§q›è|ÇòMƒ>¬«ä“‰&t-[ÑÐÀîÑœeèVÁãâÕ€È&î˜]g<©+a ¡nO»Ä0‚2.¸\+ïÊ:ýuH沞‚Àðc=…Š8+#ubq—«¸ð××7]6í3ðbŽ <_Óÿ;¼â34¯8ÓwŸÓSxËkP.YÄ’Cœ$\JXÇíª¹°U¡êB—)(—9Ì •,ðvœ‹G Íõz>ïbu>?×\Þ#hã'šiû”eÑ‘¿Ðëá§xgKˆf?u,Ž`h-%^QhÁë(ÁÊ¢¶w¢ºþexÍñ æÖXo j¸¾Aýø ‰ c\5"©Êc/«°`TÍΓSpTyàÂrgþˆ‘OàŸï¸¢€hfðJº¸UA|'|]?¾35ÆÃ¹âz¢:4~gl²¬Âz% ûÉ…wì 18#?ÅÈÅ÷æ ïÇÕ#î7áêá÷€!-cbàë¸=¿ìýâp9ùš¹Ú8 endstream endobj 315 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 316 0 R >> endobj 317 0 obj 1486 endobj 319 0 obj << /Length 320 0 R /Filter /FlateDecode >> stream xœÅXmÛ¸þ¾¿b°ý’ôE¯–œ¦®—Ë]Š&¸ {8Ù`AK´­‹$jEjw ôÇ÷Š~•íP Ý+­DÎ<óÌP÷Wùø÷‚/é,¤¼¾ºwÏJCЦîQ2¥ ö„jr÷ UÝ,v. Ï÷ß÷ƒ€2/ güÒMMŸŸ½_úøÏï¾£‡È ½~Õ²£÷¢éEõü ÝüãêÇ›ƒ­EAøØÚG‹aØ <ÄÿÔ³Q?x‘Äþá›=FlŸïžÚ£áž kó«Ê…Ð] Ãí°Ÿázvþnþþ.)òM?ÏŽ4Â/;`E’žþ7vÙ(мöùÍø#‚߬JMòIÔm%©×R“YIªJmh¡ºšÔ‚†½¾|;%N”ySä?'޼GŽÜ±Ûg·Ï7&F€Bøöœ nEt˾–Ñçq„iêe>&¦pϱmTþõîQ–Ë•9 #Šgç-hŠó‹GÓäô²mWæòìªq”œšŠ-»9{q ýc7}M¢ê2ël2ÊÆ®Uº4¥j8tø[KÊUÕצÇÒ¬ÊÆ²ðȈy%=Ò÷Õ]ÞIaäÝŸh)Ùá–‰ÀÔàeÀZ«~* ½(báÌ¢”誅)sQUko4>‰¼”ƒí§Ó û$Í•ª¤h¶Þòά„¹@¾8ôÒdlò/>9:=ª¾*¨Rê+Rá«´®xµƒ’!+Ò*ô¦1”eñ`ç¾—Ýš^¿¦k-+™ú3-:U;Ç?®d'éïG>š…^¾Å:à§“ú³ÿÅÛßÛµ¥åõ„¢Òr{1]¿ýmÝ>ÿËY'@5‚È›F(~ðǰÜ;s†¡&Q¨ >Èn®Ø¾ÐÌx©!-Áï¢\ØgÁ —Ò03̃®€ FV˽¸„â0_ô)G8I¡±ïè5Ì|ÍŒù=Ü>KŽ÷¸?;?x¶?ËÜìÏûZð…þjÝtbæ4ô ƒM®mfÚt¾01¼€'ÆYú?²åEŒ>õ³?Fƒ‡ËýØ ¦,H÷”ßæZ-¾:ݯt_Ë‘rA…Ѽ/«¢l–جIa`G¼³Rê‰]^+KˆN¾bŒ¼uAVóßq3V‚0L¼$ˆšë´¬ídÕÒ¬Tæ¹l /\¶}%`RÛó.¬©UY—Fvz(…\ˆ¾B­`غ/­ÀYùÚîýÜM”¡ÙnoÞç N‹Žk$[9D QT”‹â‰ÈUcä“™XÖbM”g†Bue!Ýô ZÞªn 5éTÙh#š\†s«Q.©öÀ`¢¯[*„ü~ -Êj~‡tç?ëÕû^Ðõ•%„hƨ¦‡>Ò÷³Ä z"¾ÄȚNX¿7CAiUÙÀ5’ýù YEà=h®åŸø±ºi´c} ŸhúÔwrˆó¢lPð4F¡Ð¹°¯D‹Í  jUŸ¨¤³øš[§EÈ[p–o“PèÑg\êŽò* !3\ƒ4pÍ¡‡ž†~ìÉ7[W¿-%ÂõAÔÒòå*Øå[:žÌÚ(žzQ–̲im+f'7 m¥YLŠÂùÉr.ÿµÈ;G¯Ê|µu°M^½ÍjChT zôCß1Òj=†6pçõqåO²#`¥Ð9ŽE…+#…ÔyWÎOÌñŠJ=è†WÒ Å¤Sø¦Û„š]¥w4e¬šŒª±ë š¯Ç°RÿÏáL˜ Í\ë€Î£_d¦èƒªÅ‰ôsß,EWBÊe/"TÇ«íÔ²µí£ttk–N NêJ„,8„³ƒ’¯d-.Ö¿8ÐóA³“,qMå®Q³•Uâ&¹zÍ BA$ÁˆCälˆ>'ó§»bR¯a®m_½²VW¢›P}§ßYOèšP_OÆ–¢ÀK)C}’`wýk×à݉Ã1õ+«ÊÔŠÎèñÁOá8iÎU!m±šÛ³ 6ßIì}sä¹pHˆ<ŸÏuqŒÛ¼ñlàΟüÙ ¤‡ƒ³ë3¬×Ä¥“*Ü=ãêÆñYÓ¶C×?öºM\1t޶%hvˆ†r()Õ Äã( sló1–›©ýb°ìÖ~p¨„Ö}-õV;ÒkJ4´ëYE«*yáËLˆæ)ã/&ÑìÄÂðäù¤ŸÆfg×Åh>ãÖü *bôŸ ‘󡣪ԣ¦_›òiì‡8>†£pß¶³Þ¦ˆØÏ‹¯þ(d· endstream endobj 318 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 319 0 R >> endobj 320 0 obj 2135 endobj 322 0 obj << /Type /Annot /Subtype /Link /Rect [ 129.992 73.2 209.528 80.4 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 260 0 R /H /I >> endobj 324 0 obj << /Length 325 0 R /Filter /FlateDecode >> stream xœÅXKoÛH¾ëWÔi`Ã2C6ßÎaÉÎ.v1Ù¬aæ0-ªe¡H™{„Eþû~Å&%’Mi°—lDd³ººž_UõëÂ!où'Œ%»Åk·æP(È º%? dz„O;êž}ʘjð ú'üh"96=nN&r|˶}Û¶‡"Ë1ÿô¸£ß®>î¾¹¡7×– _*UÒg™72»þÿ¹øéq¤šëˆÿƒj÷­ Zv¸À¿Ðj½>úà{öøË "Žë§Õö@W¯aEŸÍŸ²Î…ݯD?j}ôïY=ì“öP‹qˆ|×ÃÏGGèbÅŠFQáÇg½ÿMfx‘Ï>*#žý‘6˱}ÖÅ׺ì›U–&wZ¡ZnKšèÃJмªË&©‹ÒØòíyä‹~Ç_U™¾©õÓÕîP½fûýÝ~žßd™leIÏrI£i^ÓóêéšLqÜÐ ™¹#¢žù²ROWÌ„÷;¼ÐŠYH¸ýŽÿD~¤ÍÅqOôÍ aE& Â%6MžÔi‘Ë,­$×kµ¦º z«è˜ñ€§²h^¶”æ[X¡–y¢ ÎQdhµ*ŠŒÖÅsUìT½Mó¶Š*UUãùéŠM´–µ|ºþhp‹£‰Æß:š™°†ƒGìà¨óð¯êIñ¦h­ÝF’’LVmÊbG2ïKs*J°ºÐT,iѪŸÖý$«Ã’Êôe[ÿÅ +7¶§ºÁä:y]¤°Ñ¢GX0)ÖŠ¶²ïR¤%e²|Q´Éä;½oÓdK;ùUUT4åQZ-k“7•\eŠxw'²EÿÈéÓÍÍ’Ò)‘ïŒ%’ŽZŽÞßTlZ'Wr§(çÿð¹È›…×WˆJ½q9y§7UVàPi²>ñ”¥NàNäÊ)-§Õ ŠêxèH`6a ‘÷û,…‰à•AÖV­©ïNÞ\«Mšƒ¬ROfÚUSÏ ƒ?ÌtBϴȳgI‰l*°Ö›Í±  ¬­:“¼Å0£Å÷ÐÓè‚lÊ…c™n”™<­v•>´©ºÌÄ!¥jå‚kß´PŠO+ò“âUÑÆVŸ?ñ4DìYaˆ£02Oïpïlö¹npa7ÉU,L«Û¼¨oåy!ܘñ;/0Ù0>ž•ÀâÂÖ%âcÍ6HgÜO28­rÆz˜n: ÕåýÌ–?«ƒã"ÌT ;pLÞfÈ6ÏîbÀ’%b9o/ª†·wû4²¨²„Ç*Ù7nﺖ¯.uö˜uΙF’¨Jƒ€ŽRè[´¨5L&Ëdä ÔXF`¿CàG‚…d¹5‹]še |KVç]e™E_šŸ78 ‹šºÅÅ´®h/KÀjGÅxñ&³Fµ ÝæQR”¨)û"_#LÉq!já#WjÝê Ôβ[S¶ šÊV*Ù¢ûPÈ÷ñ‡ZŽÿß‹ò+Þ¡2#M[òZjù÷0cvâ'­¶Tö°t–~½M®ïZ¶è€ÅiÐ}G'¾ÄâK¦"{B›Bo%×le36Ø(õk3=\Û¶âç2!úôà=Õ)€“aÕ•Õ¾Bè4`sÞÌdöÁ˜ó -Ø‘w2Në3õ,ž®Lqй ¿£Èw‡-è’œ%‰¥IïÅ@X–?<ÒϵÁHë™Í~Œ^.„ê±7»} âd¦M¶ÑÐqìÝ¡s¢ÛUtjvhKw¤§:•ac ¿Œ3ûj3ÓXþss†'œ‰Äm{B6Ym±@pìO„ˆåqp ‘‡ÙŋР¯céx—BÁsI( &—ÙiÄóœÙX`r“ æ4f,8†ÇÍQÄ‹„!*#EyËM–i5œ‹Fk§];= 9A„QÄ :ÆŽÑf±0,p´™Îô¹`ÿC߬E}[Fê¼›úŽ€µp¼ðÄy›úÂ5bË´©ï¹P–í‘Mó4‡á&€.Æ8`•pþG[,iæ;rû‡ss°©`ªøŸ Â~èV˜›„=#²¾¯9^‡—N{%ؾåqpiǃw};Ñݧ“È àº @²rç9ÉNŸ¢uêÀ‡¡Ý]Xp!F]Ómä>]¡¶ Þ}ÿ`U—ÍÓû ¶G'¢£ŽÚË@×™9û¾QåNB¨4?e»)yÛ˜Úè}ijÉèãPŒ7í¤?\ÓÓÒˆhøöðøóð•G‰bŠb2XÕƒòˆiÓ¶\ƒ¥R½6i92M½CþÜÀ8sçÜÂ×F˜·"xßq·):¯´£°š z¼íO3Aã"aï(]ˆé.õ_€dWÜ&ôÏ=tAѤ•²0P L9 †Ÿ¾|þ÷§/¿üëñœÀS—· ;šÙ~<¾jV•ª¯èaæ„l[m=ôKlÝãËNíVŠÇÖ~#×úø¢ÕQʯ:°ôë hôKêµÛ£c>Ç­íX§Ö›¦÷/¨¾¶ãxáŒú]5{h¡.¥—æ |Žrð¸z4iºK3iÂtàù–~Ôß¶°â#Uªï«{üÐBÁ7šÑÌî¥/o'K‚sÜS‰7oÂËqCËíÌ?ÇŒK¸žMØçbÒ aÖ8à+V†É$(ÛëéûÅ–z endstream endobj 323 0 obj [ 322 0 R ] endobj 321 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 323 0 R /Contents 324 0 R >> endobj 325 0 obj 2114 endobj 327 0 obj << /Length 328 0 R /Filter /FlateDecode >> stream xœÅXYÛÈ~Ÿ_Q™Á8+Ó¼I‘‡Œwm8ðÆñÎÁÂ2ŒÙ’h“l™‡f•`ÿ{¾ê&u‘ÒäÉ%vÝõÕÑß®²ñï9DS—’âê[÷›C‘K^Øý„äø–PAÝs@9Ÿ:xpû'|˜CxXÑ¿®Ê+›Þ\}ü„—)Ù x¼²OÙiâû«òùýÝåÛ´¼º{¸zñ: Ǧ‡ÅÞEN`Ùv`Û¶ãPlyî”ÿ\z(èãÍÏÛûï~ø6žåZ.ý³–ý,ÊVäÏ>ÑÃß®~z82ÍsÜÿƒi´Æ¸‹ÿ‘¥£~ô"ðíã7±û}ÿ«è™ßð‹‘ͯò.„ݧQÄ<{ÌçY;ì½ö¡Ç)ò]…ŸÏŽÈÃ/V|”¡}6úßÙeƒ(²ì1Säspd Àrì€m Œ-D/^ÐZ­Û\4™*)QeÝTmÒ¨ÊÉ> -/:fäx‘2›Œ<Ë}þbX:aO9¦€YžÖ { ~”U¶‘éìF §b[Ë×ëÛÛ_Ô㟨R³gtkXðAÂvØnÏçNÔrv£ Ç¡oÄÇ7îÿgpȬ)ë»^è÷Á¡0.Ú2aŠ Æê]0ú×Cp;QtÂDT’J)¹T ý¬¡su¤žP­¨-sv;§t%Ÿëhà¸ÈsÖ‘(>xDT³´÷•<,âµÉõÉPøJÁÁ÷¥@®¬ Òç£É´† G0-U³‡*ÝgÅ:ßÂ)Í„T©Ÿ:ía‡®+7%"Ï×>E”f/k«”ÇÄùÄI s]”Ï)ʧgû†6°Ð;D™ÒÝ»÷wôJåmq!ò`8VÀ!ê¼aô¸_eMõZ&”O8vÀ—Ã_;_ HŒ‹Þ6µX `óñT3ÕAµ¡E&qÄù]˳%j¡pè³quv×)ññyž«ùY£Û¡çT5ÈJÚª’eƒ° ­ª"’,ƒ^ ó¾©P&ô¸Ê€= DÉ/ SPû™®/_ZØ9—x5Ì7 NÄï½PÈd%ʬ.úQD&‹ÛJ²¦mÍÈòHh¢Ö±¨”Q¦GÏN£EÒ£]v’ØD `¨Œr ¾¥làš4«¸†Cè¶Ãß…‰ ÅéG¤¡@ãÓ³ã`¹}õRwÝÄäàÞ xì$¡j›®oaNê†]ÔCÓ[ÛŽ»1çN&‚3ùüUk½jÀ¿Lsú¬ÕÖ¸[G—»¥q‰ik<•|=j¹g=âaÕòûš:P¢nR$òe¯x±sq÷•"Eh.ÀÈsíÁOLJDš·)¶:Àv-KN‹³Â¹7»<:ú3dùDFpÁ>OÌI°‘U£;ôùœôbË礌hÄÿKlÿ -6™L^uYdÑ_Ñи0½ -°·¸BÒsùôè(1üðP"Œ³Y…䎫'ì²E#Déংœ¶•eöëLÒ®G¡1WÒ`¦Tô(¶ì¬Eö›niC­|ÿX«]‰B«“Dµäù‘ÃÎb%^C‰ Ñg×ñÆCæOEj_ &é‘j:ýзâ©Ã+NWI.Õ0'¶l½Ù¹þé“À CËîûè|×h b.9ŽåÒ¬M¦õp½]è*Öè³ý»h¹P›ñHϦYsýóÖø¶ky<9øq<¢Ïà2ÏÃ-Â^ݗ硌d™}þ²–†gz‰ËœàÊu{é~Æ÷xmšÚŽwýcV&y‹´¾NŠ4Gû·V×Cømǘv‚ø”,+”*²-©ÉŽªÛÇ_ýòî5ü]ÏfÕlVްˆm+€¾¶N‡,Ü!‹sŒP¨N,@zO9Žå°¸x7„cY271¢Z&ÝŽþÌÏ›ŸF.¢„ÅŒuš|x x‰\gw¤ï˜ÞHsÛ£—ïn_£÷aqæµ[§9zSÁ«ljïB€†hÀ"Ÿì¤ï Øñ4ö½øHCv¤Ï¹ž¥´y+Í.€– ×¾y‹l¯Gf˻ӱ™ãnQé2°¾½}e}Çzvy5»1dßMèºRª¹.®Èé“åIÙ–[©µ„w®ÇîÅ‚È= SÁQ³›?ôj<¹ bw$(üWIt£’œISwÄ»#7ŠŽ7b¢ðQÕÆÙ¨#h!fª"Yn²J•W¹¨21Ïõ2Ê;ŠÆ½ýq(Äõf·%W9}åÔËÏYJ!ûåîzûÛáe´£¯¢Cg”*ø¾yÿÕÜIw·èáIU ù¦,ô¦1æ—Ó[â€âã©§ËÑ®ƒ¸s\[k-y ×Z<òÅðAy„†ÓMš(ÂÞ÷»™¸à¡nçÆæzpƒÿáê¿PWq endstream endobj 326 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 327 0 R >> endobj 328 0 obj 2388 endobj 330 0 obj << /Length 331 0 R /Filter /FlateDecode >> stream xœÅXkoÛ6ýî_qç]Ò&2I½½šºm†´]]цl3¶V½"Éqƒuÿ}—”_ªHÛE‡N "‡¤îãœCÞ+ß¶(ü97×g0Ž[·Ë1 .ÓYÙPË`6İülC$Vm}`«Ox«á‡¼k%-/Z>âä>°h‘¯Íɇ¯Z—[þÅ ùáþ L[O­Îs(ÁÍ"j„Ø„JÁ3Læ‹‹Á †G¯î¯./=‚;Ó`ƒ·ÏáŨèø# ~oõµÔLÊþ‡Ô.e U.‚p†¿®!Y¯MØ©Ïl)b=¾•Íj G*ßb*ZR¸¼WT«|ª»6²IƒlgQ—Èu®W‡kâˆáÕTáP-û?²‹Â÷:õlײA”Ø"»ÊðÏ‚ü!Œ§áðvÎó{xS^òäîú¨}ù¶×?¼ôÏ_¿h_ÿZ%¾eº†) ºÎÆ`x×Gk{×Çðwã9Ô›MÜu6Û<·~öú¨(óˆ'u+Á¿_¾@ÌãqœmMž@;œb†^LÇnb&®ö$Ìù¸L…ÄËOö©‚Z>‡`Øž³+ð0¹K?qKX„å #~Û¿€(Ä!‘Nw¯‡(0o¸ÙeÁ%!Ö#³²ÌºN¨‘17ÆiÜYâ*îÿ2>ý &"o:óˆšÍšOM >ÑpthªŒƒ8!-Â(Û7ù 9Šƒ)¯h:ÌØÇ £ô;¹aŒÄÍût^Å‹ê£èf:%Á ‹4æÞÈ4~žð›0á…b0“”ÒF™fhn/=„±6ÿÄYÄ‹µ€Œq–‰èƒ(JÒa”¦Ÿærl‘æŸ ¥¸˜M5ô .æ0yŒ{®ýU¬ú#œ¹LAOóÀc>SàÐé@%¯JZ7yó§0ºG5+'aŠôJ<ºU–ššlâûâ6ʲn«k‚Z˜&0N±¾¯'Vlt»“ÑPìñ“¦yfjt¹ºÆñ$B‘ÕQ}ÄñÉzl^|=’E!FTÈ4MÙ `Õp4©\ʶj™0£jTŽ”ö,S#ÊÊ€äUï¢w6€‡ð¼ÿæUENï^öú=µS ¿ª¤ ¶©‘á:à+¬#\FÝçÅ<*Qcš•…˜ÔÄîXZe³&¬,fï€^ÓY¦½ìfžž‹øOÏ'Ým¹®³ÇÏMšÃ„æÓ)¶¹M–ý´Hô:â0ß…œm++øB2-gUbM£Ž³ƒŽºÊ—ê”*£bÃìÒ‘ëì9ùj¯<( yÎ>¢ñ ͵hW«F\6ue§‚홢ðÿî³™x9u–°½ö—oaë ¸ê·T"n:2]ÙÀxÔÚ’å*U¬³]šã ÏÄËušåædÇ—Gy®?¬qªÃÎv< Ô¸!_Ø›p’U5Ã)Í‹¦×Óàùpåyë¶å°dKÄW‚Å,(·w¼ïit¼ãU™x šL9ÔW`«aª÷yÌ3Ñþh©r˜¯A©:VO±A•§¨`,Å>5‡Õ•|e¾Éžcú!|0{òë¯ËÖ¿!`RN endstream endobj 329 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 330 0 R >> endobj 331 0 obj 1496 endobj 333 0 obj << /Length 334 0 R /Filter /FlateDecode >> stream xœÅWMsÛ6½ëWìä”L"šERtsI2v¦§mµ9Ä9@$$¡áWвýïݨ“T©ã X¼}ûöù1 ÀÇ?Sz$)ƒ¬œüèÆH„q7ÅÌ<A Ý{Í:yaû7|¸Iø²/“jâÃÇÉ×oø1l'~?œ]|?¹=ÙŸ¾ø?}Ö“÷‹ÉÅu‹Õ‘¢ ò|?ò}?`î…,¥‹¾¾ü´»¿½yýCy þÔBÁ'^µ¼xõ ¿M®ÏR ö?¤vk1¸\¨à ÏVýÙ‡hæ?ÿr¢ˆÃøqÔnº1q{Ó§¢+a÷t@Ü«ËÇ=ÏæáÓðO³x.‘Ÿºùyu$!ŽxógªˆÙÙêÿdÊU¤½ɤ¨çèY6(/ð#Ê%r¹@÷£M~y™Õ­·oáÅǫ߯îÞÝÀÕÝÝw—ð‚…ò¶n^>¼¢~¸»¹þÅñp>H¼ÐÆOâçñ•0­ª .AåE~Œý±ã’Óf‰—Rä9 Óº¨þ0j4w‰ÎÓÔMï"^\‡’Í©á{ÜÌ#/‡8žnMä¡9À=zÀ=ð*‡¿¤ÆÖ‡èÌ÷Ã}Äh ‹iÿùÌÅrQ¶µú®¡®€47«Z•tÛ4µ2"‡åö¦#ž2ÑÀý=xxù^d¼ÕÌF Ú@½êV‹ÂXÌëÈß-.\ÉJÀVšM›7°°á¢z`Œܦ¬£ÙH}+U—Å1‰BbXQ©D±ó^ Íпb,z}‘ùZ™.W»7 <ûN#ÆŽ Ü5§ÝN ~Võ !"3¼ðà,ëªÕÄe«eµ"b>ë!:î-;r¥!õjÈT­õô [Ê~)Œjz..¨àÓõ‡¾.Ð¥X_±lD<ÃY®3ÞõÐ^28¨Šp.ù_¶y½­ò:\Dö»^\Ç}× #†ž‡]…Ñ’§³vF±Ípa’¤# zôV‚£ã ÝHòa¿sº†,òcchë<{É zy‰P.óެBË ù‡µD'êp èËšÄJ«+1‚fÖož²ÎÛ‚ c¬FÕÈméÁ±>(ÍG±W2êæØ¥V+Öa8|ªÀ(l&ü›ÉÖRï´å›C4%¦# âîXXwĬE%7öÕIûÕÁ<Â8¥“,Yv¡õB{›³õ èV’àÇ’h$éËY»má²-ŒÄ®žv|9»A-2íàrUme—¡–Kâi"ä1C•áqœÆálEƒÄŽ–°Þ<—lSÀôñlÂQèÅtÀûa0ÁXTh”B×XÎ"ÎÖ ˆR/¥;JœŒEÄ"œ'?Iþk)»ÌñœÌL­¨ýW¤jâuÙÊ"w]¡£ÝË¡ŽøS:ëEÇüi0kAžï²çt¦WN ø–99tgo'ƒRdØqR;þÞᘧE€vµäZ yfS·ë»-àïRŒZxèÇ=H9ö36¨,¹’ñ ŸÛðûtÆÎía…r”«•ÌPµöÎó}iOÑçBËueÏ!^èóàdE6óbDwa0ï¡Úß0€Ȭ)º`×7ÓånJOŒ]Wk;k‹fnQâ Ú_ Ð9¶U&UvFÏqºÐnÁ®°ß7ÇÆ$žé Ùà‰ŽFI,Ð}Þ]«{¬ÖŽˆY;›•+º/¾®KA¼×Ž7#8–xS£•ß|I‘lÓ`šõEí—¨ÙŠ †âÝ¡Š3¼åèS´M¹Ãíüßêvò/lF endstream endobj 332 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 333 0 R >> endobj 334 0 obj 1523 endobj 336 0 obj << /Length 337 0 R /Filter /FlateDecode >> stream xœÅXMsÛF½óWL.»q…BðE‚Üœl'N´kÅöJªâ†ÀœÀЀ4÷×ïë€ʩڃ×V‰€™yÝýúu7>Máãÿ }$ËP¤ÅäS{-I(¢y{i6Aì…3QˆöûLäôTïKØ}Ç{_¶â·I9ñÅÏ“ßÿÀÍLøXp˜øÃíxñýäCï|ºãõó}±™¼z˜|ÿf&_<¬Ï. fžïÏ|ß±ð¢pIÿBñPˆß¿½;ÞxûÝwby¡ŠG«*q'ËFæ/þÿœüôpaZ„ÿÓ>0g <ÄOâqÔ/nÌbÿòN§ëç«|`ä®áŠ;›nåmÛOÄ}uö¸ÏgíðÏfø}+.)òUžI„+Þâ‚óèÙèe—¢HgŸŒ‰Dè{ ’½oMpq ÂG=˜­Ëx,uj2%ºÞŠ–ûÎTÚ ëÂåÉ`¿YàÍçsÚ/éö <ñRÜoMU‹_´­MufÝmßí }í‹9–&1vš»<Ïc,R¬MÚXaJQ©\íe™*Q›!ÆQô|±XzËx±\&3·ãm)ê­&ÏD&v*RSìšymvª’5¹Ám­ :-?ŠLɼvYܬt-Ò­¬dJ+¬ª­'¶²vÊ<7 ¨•©±V¯òÖÞ~üàÔiKàY55#,੪¿)`Ág.ËM#7ÊŠ­ÜÓÝJ‘X²b¥K•a©$ Iæ¦TˆC– ]6g8~UcDAt‰è|âF릂Ëv9‚@îe¥ ¾Ûc±2¹;ev¹UtØ¡ÒäÈ©e&ަq˜%b'sQ(k¿#ˆ +gAä Ük ri„­±¬2+V&;Š­{ ÔA¨·8ÉŠ\?ÑÑä+Ñ”8è(U‚wYí¢¯dE‘EüÉ<ÇÂ;F/¨ Yb¥^¯U¥Ê!ÄWqÈ·TFÔPV]{¦ü†a-<™§ÿƒð­T}P¸x"ãÒ<@jé:ÖÀ9’ö„vìx½æR©ŒÈa@D"7©Ìù¼Ÿ+¥žD­>…¡ßÝÃËŸéI)þÝ€À ÓLáYc·ßEcDI4@ÄÙ@:(±1 "|6ˆ)ŠrÀ‹ LLÙË,¾j4…ùz¾ O1¹ ®É,ÓCú[ØHä稰Ë;Ä Ã!·ºŠ`M¾WÖ WAÕ OÜÖíá–˜ ?3½JBØJA—y,#ÓP³#ü±XkE2Ö¥0RëtgWSðçÓ–N9-€¥¦4–Ãè½Ì Ìì5X!Ÿè÷ÁœO>Cç4¢,ƒ‰‡¼j½s#y¿l*ÙÕ ÛìvTÿØe&¶F)$˜½Ø€îá á`” iŒÄß²°!õHPc¾=†32¨·+lpyÄžáÄêÊ‘sÂTlÍ¢†ã*EÎ<Áì•jÁLËs汯¤Õ©¸kòZçš D>F5*æ{ÔʼnñêîýÎ-‡!~,AœºV¨ü8=7%0è”Ure¨N"„™J%1°6En$ÖaÍg.>¯É2'vÁ¶\md ²¢a« È†qÐE¡J.nªª5¤¡"íffK4ØW ,¯’¤o]™bØ1 [àŽÅAÃ\CInêVRì8ÊQ0Œ2ZbG%]¦[WepÖ»%*R°¬,ˆ“8˜²šVèÚé›×õM"m**cT ²åßë¶RC¯]øayMã ‡qîâ„Ä­,ô­þ³A:ÌËd-¹1AòC;ÑdL§qS²üHNunz-^¾¿å„¤"fÁºœKˆ+¾Š‡òå³snÿm-’mLÇh>ŒþÍIY2=7»‚*[ˆÝb9j!ÝR<é’‹…m àÖRi0LM÷¿P¥ÁÌbgQÇzÅâŠUÉon§¦Í;ÿT•¤:ð½ËážÔ3E4·‰;À$àŽö5œJÖQóÀí0\Bêã;‘ÃZ Ö¶Ô!Q Ò'k/:¼`A[j¹´xnÊr{–Oî^©íæ¢A­ÉŸÂÇ5Û;ûÃè3۸Ǫ·¦Ùl]†0ÃÑVªÏ»\§0¸SjÚÚCôÞjæ9Ĺ¡wO¤:{ž;¬R¤Ÿ-)¬Þ c[#iãHµsUTxØ6ð?\W>ƒ©'€¨ïŠûy— ûØ ¦Î¬”eŽ:º8\Fl ù+Í mk÷×óc<›{±úþŸwdè6B~PÎŽës¿0ìŋЛ/bcÚÞê²q•€KÇÞeè ©v›:çZM*AsšîœÇc!¥’+$;œR¡Ÿ{t·˜–ÆD¼Œˆ\j ÐŽ©æ¢‡¼tÖÅl½¬Wº%²ÅÃáGšT…¦®ïöûwNºY븶¢'*cîDµê‚ØOûJ}jtÅe` (ò€ìN¥š[úL¹Ž5%嚢-ZhÌÅ›Yk:× yšƒlƒÓÜ÷0ªÖ×­_: SÑŒaÅÃÈsÙ©×vvœY9'ÞìÊb« ÌÁ³Tƒö][†ü•´ð4wѹk@Ta Åšú•­Þloœ(÷ú5d4\•vµª*’¸ëùéï_éBU®Tµ¹Ò*ÏfC¦½o­›JÈÝO%K×äq‹D¥„-³œ_û°èwL†Üër‚s©G˜.Q¢jBSM×^\>Lšy+úí¦›§,{ä†-¿<¢þeŒn9$"0KÓÛ­ØpCbÍSB¥°Ÿr^àRÂ2ÀT¥VŽoqعdÔÆé>MÉ×^úxWÇà¹?bQ;½:­Ññð´û,¡‰OïýÅ•Ý4¡ÅDøâYVÑÜK(ì< ®l€N¾}3@.9+\›k½9ÿ|)o"Tz)º˜Ï’ÿ k4O¾´XË”+ Ë[¥\w³®Ô¿#‰¥¤&ͽ]{©sÿNæÏ¿>Š÷•ù:…V¤ä—b ê ³Ð‘iR K)ê*}âþÇß¾ºs¹sûú±—ðㆵ1¨p>EofŽ7E³ú¶¯fX§¸©]ñtÕkŸ§Ïû? Ïçbºˆ®ö×þgÑ—6ÀazÓ¬×:U^ï…÷‡É;îx endstream endobj 335 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 336 0 R >> endobj 337 0 obj 2497 endobj 339 0 obj << /Length 340 0 R /Filter /FlateDecode >> stream xœÅXïsÛ¸ýî¿b¿ÅéÉ “Òµ™IÜ$u'Nœ“|îL”»)Hâ„"‚²¢éôï[” QRó)Í%Govøváÿ®øõ]Jßš6‡"—¼°i Br|Ë hAÍï€2îeüpÛ_xÔðcNù…Mï.>ÁÇ Ù°¾°ÍéÁËOÆüüÅþéóÛ4»x=ºxñ6 ǦÑtG‘X¶ضí8[žÛç?.ôùòv3üôþ—_èɳ\Ë¥{%KºùJdÏ¿ÐèŸoF{®yŽûpí“ÆPû îâodéUßûøöþ#"¶í»V=¡W·¡¥ž›?eÍ6ÏHý³ö§~žôÃÞ¹a›^ì‡ÈOüttDZ¬x/*BÿäêÿdÊ:«Èsot¬jÌ¡½ç“^Ù¨ñ©qÉò,ºÏÓ¤˜H*rzHóI±VµŸGh±É·-;Ž`:®-¼ɼF¯înhºÊ“*…­j.*ªÄW©HªÊ4Ÿ‘H*$Q¶¡¤X =E¯uAO²T¡,ú˜ËöÔj¹,ÊJ8W›JÖÀ 8»gìºÞ«Ã<}Jæ¢ÄŒ°GãKÁñSVTLéÕðúæfü¼GªP¹!™OγWϬ­;"Ã×- t#W£@Ûcc§á®ƒ+ô+ì÷£–énË Ý_¯Ü½Úä7ð-'àå‰ úV`ºæD'—%t¬°Ö™Ù¢!È&À>(ILÒ:È’Z2¨ÀÿJj’~¾Z!Œ8^{ „VÌ'Ì tÚô+eµ*sš%Ø4ÄãKžCg|Ì b—õ¤=nT%ƒÁuÐ`𦩹-GÑ#”{¼KÄÎ)©óãèÀý=¢ÏPYsýãÚç÷£ŽZ~ÿ1 l×EUÀÀŽèí.AàÄ„‰²›¿²ð½üƒø«èog™¾zùNVÜ_!¡nŽî1#x=Ûµm·§qÆoE5 nS¬lÛxEÐW=ùÕK¼ÏªùQ³^Œµrû‘ã´‡›-ÒßVy•.ä`p“#?‹åP–Oi"&¥š‹l0¸.–›ñ¥ž…ëkÊrÊy~kæî*ì·zA8Ïl­Aw"\ûÜ úïŸÇö³#cÃþñX=ºi}Çɶ8 ÖûðC¶ò‹ ž“îņí b“*‘y£z+eÑ Í"g1EhK9ÁfSïdWíNFºåZ°UÊ8©Äˆã¹²¶7mßÌ{1Gߊ…|u Ý>-øîËx¯/Èš+½ð€ÐÐʼn"ôúQÔÖæ•J¼£‚Þ(cB©Fæñ9]y¶…¯tÙn FÓ¿îzÿ£ÇöºÂhÓg*ã]_'ì^YsœÐliÏ¢{“ñµ‡9ŠuÌ2[F|˜0Þ§¯ýyÅž‰tj¾ñqb´ùj\¶­rSàðzÚ7'¼zL÷&åÛ©×·w|9Õ>œK},aÜw›½È™d¼Èò¢ÚþÆxÉÊxӼɉÑ"”ñâ××{»†S–ÑúzeÚ3‘æ&ÕĉÈx[jvÞb‘&MH´Íú&ç136—Ž»†bj¼´¼]KªNb½&à§çîµ=š¶fyQ»åDæ!GÜ Ž[1À´>¦6·ÀúêG×JŸnË|w¹ªÚ«UVƒæbÕàÛ¸kÿtñ_"úž endstream endobj 338 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 339 0 R >> endobj 340 0 obj 2371 endobj 342 0 obj << /Length 343 0 R /Filter /FlateDecode >> stream xœÅTMsÚ0½ûWì-É„(²Œ1îvB' §t&ÉAØ"¨Å±lÿ¾+ 0åš3ûõÞ¾]ûÝóâ÷ÊQÌ Í½÷µÍ‡ˆAÐY›ÂømÂBÈa}af£v.lsÃÃáe #Oy¾{ϯèÌ€bÂÒ£‡åêäGo¸ƒo=ôÓñ)¼y_ﺂO!™4ù!¡4¤”ú>tIÀbûaäð|>X=ï./aF<QÀ€«ŠÏ.^!ùáÝ${­>û­ k®;p†¿ˆÔSßs„mºïÙÙˆ­½±Ö€³¡Åa[×l=Âõ鈸«ëÇ'û Mt·‹ýùTðÓÛh!ݽ­è„'§ÿÉ’MÑbŸn†-xo6=r* pcª\Xéê…1V¨ŒTo0’*ÓK÷ è´6C–2Yˆ´„L˜T¨Œ«Ò|Ù3| ZÛ¿ZN²*ŒpÙÿ”¦äMnÔ²°\­Y¢XˆomXðB"¨e³Ž%Û¤8Č̱lèÁËyÜmÁà¦e½GŒF‚À¾ºcôíæå2 J—`ªù\%<)™êLH¦b¦”¨à”/j(àlt½‡[¤œê|ÎK9–3Y®Z0®J³‚ß•Ár97Ó:'ã%G¥‚RC÷êˆU»}Àj,˺¹”#tÚ;ÅH­j` qe®û¸¾ødwmþÁ*DŒDv¯#]·CÚú˜?Ð8û[…¥rä¯Õ¦Ö?ö)Žít,¹ØAU6A¿740ço2(Ç\êÊ€l ã2¹Õ³RÍÄ*0—)9’À÷ã˜ÑT(œ®MÄEáó£Vå)é_uÁÌE*'2Å‘›V-“óÔ1 ÁZ0›|}'Uõö9€÷J¦ðU¿ä+¬}L'ð‘NÇmÖqt&¸v0æÆ6í‘×ÄÐû ŽÛÿ endstream endobj 341 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 342 0 R >> endobj 343 0 obj 702 endobj 345 0 obj << /Length 346 0 R /Filter /FlateDecode >> stream xœÅYÛ’Û6}Ÿ¯èÇx#1¼_ò_6å­¸ïLÖIÅ©-H„$fx‘ pdí×ïi€ÔP¤¤Tíƒ×v•$@Ÿî>}ƒ?ßyäâï’?’̧uu÷¹æQâS÷¢˜¼Ðñ#ª¨ÿQÉ«F_üá>ì"|ÙÑÇ»úÎ¥ï~ÿ/sr±ápçN3›ïï>Œäó÷«Ëwi{÷òáGä¹ô°y6‘9®¹®ëy”:ŸñŸ*úý›wÇû?}û-=Žïøô‹’-½u'ÊÐÃ?îÞ<œ©xþÿAµƒÕ…îã_⯟½ˆB÷ü͈§çÏOÀÀ>Ã+›_•½ ûO Ä~µúØÏ«z¸Ïj¸c-Î)òU…_gGà‰“ž±"ޝzÿ+›læE–}R& ßuûX!,Mð0áƒ^ŸÄ³‹zKÝ‹š½ëJ]è]+E.sú¹m¶­¨¬âìäRè;Iì!Œ¢ìJÚ‰'IySKRM…­MûÈк¡JKíY¯®çr(‡¬Cï™±]»ga—±rYT…ÆbÞ%µ!nÞ,Ú®”ŒxjŠü"1²`^€¥+eÓïY½©8 —§‚ÓûËäßCÓÓyÛ`-À°üUÛ`a ˜ªS(öù—šN«"Ÿ[Éw£ (Cîu³—#¾:ôüa‚ÚÐ@Ð¶å”Æ&0ñ`}¯}Ô±8Ðù0²’˜`Ò‚%Eþ„@w†üpöSî:'ÅÁØfxã%ÞPž=‡^vE™Ó[£ë"ìG‰§H —}ÞýRÂE–]È Æ8ḨÁúç•Pß3[JªQŒO™*Îoy3è*úmK“?P„€ñû¹Á“Ìñ<‹z<çjuD5_o•?±E›èÁå/ÎYpWS;W­ M’¢éâÞLïkú©¨»/ zuÜL_’Ó/uñ…>}óþž~]Ðß^Þ¿^Ð}SжPŽã|z± ½`‘ðø ,› óãĉB$ê$É.ˆ].mîéy¿\ïPê®"O7£M)L¶8eÄ €X{”´óH·›b‹¼U4Vη!jÚb²õR²§†ÁăÆô{ÝH¡ëd ;íöÿ‚ÎÏB'ã˜q³ì:NÆQ6ÍcßÛØdÑí÷M«¹ÌqÞ—…R{~š:*-+ÛðX‹VVè*ø|Ï ù=·<6³Ù£ÖÌdùƒéŒ´É.ªßi1!Ú£àìÛŠ ÈPvÏ‘™F±¢Mp N´D!o¸Á‹]ÇLÂ]8ýŸo~xýîÍ’ƒÂÑ_ôugD71Ö¯8'å½}©¦õ•U‹P¾0žwë;•BÛÎÛ6㧗ܱá8•ça¾²¸Š8H#s/”ÆQrAÒ ŒA–ÜÚinFøJd: ³KR²Ó}­[Qk4$óõ‘:‘–!ÈÆDïs€ŠÙ}NºIý…aµ£yfv³³$ˆ6š÷ø4CÓ `¼`"vwr«eòaW õg¯äY¬;ÔG§‘‰H²@x”@B:Ú¡Û¼Sr/Zêr¹ê¶6 0éVÅ¢ŸÁñÓ “TÔ_TI.M)ßÄÀ¤ó#ú"ikÒ5éf©ôÒðÖa\Á®G X”øa2»Ñµ’E›¶©P²ºv-­ïªb»Ó–>œ/Pèb¾c‡¢eâ9†ý}MìOÐÌhƒÆ ¥Yî¥ç†J8´™Â°~½k ¾|˜ß(¦ûn–xqje7ËÛ|ý›q!íÊÙåØPáÌMºYÎbL´^œ¹nDÃežíÃO%ÇxQšKÔ=²~UÃ¥¡•6¾;[ 5º¸ÈO÷Ôj0€"_ÈÀø~1æÜsl¯Ç†gqÏ€ž©afnTýõNÔ[¾ªöèÝÚÁ p¢~ÿ†z+ôC6v/wò±ŸM ä°HÙìMï.ë§¢mjþn-’7ëŽ Ûéñ¥‹îò#íšÃtåŽOYuæ-ŠExNèMà˜‹§~f’¹3úO†wÿl/¶… endstream endobj 344 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 345 0 R >> endobj 346 0 obj 2474 endobj 238 0 obj << /Type /Action /S /GoTo /D [347 0 R /XYZ 72.0 239.424 null] >> endobj 348 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 493.212 143.94 502.212 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 232 0 R /H /I >> endobj 350 0 obj << /Type /Action /S /GoTo /D [344 0 R /XYZ 72.0 720.0 null] >> endobj 351 0 obj << /Type /Annot /Subtype /Link /Rect [ 84.22 377.116 113.1 386.116 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 350 0 R /H /I >> endobj 352 0 obj << /Length 353 0 R /Filter /FlateDecode >> stream xœÅZÉ’ÛF½÷WÔܬ0a'¨›%&zblIãžp8,Š@‘Ä4€¢°4Å¿Ÿ—Y…ݾylG4±TÖËíefÁ_ï<áâß×ôg»óEZÞ}µ÷<±õEÛ[Q,¼Ðñ#Q û;½5ùá÷¿ðǼ„'ñë]uçŠÜýþfÂł˻Ç‹¹û<ÙŸž¸ùþ®8Þ½{¸{ó!ž+£‰¼ÈqÝÈu]ωø;úÇ¥øý»Ÿ®¿|þ×÷ß‹§Àñ_ü§QµøIV,^ý!þy÷÷‡™jçÿTûÌŒ.äpÿmöúìAºó'“ˆîwyÃÀÜó7=*¬ í_Äü4ú˜¿ÏêáŽj¸S-æ!ò—nþ|tlÜq’YTá³Þÿ‹M¶ò"íý¼2î:ÀeuçZkY6¢ìšVÔ]%R]µ9…yq݈“¾¨'Uo„¬2QÊ«PßΪÎU•*Qèê(ò¬P‚né¬Ùˆ¦KOB6¢Ê§¶áE¥U•5Æl8¾»Às9©JTZèJ‰‹kÝa}«±ï£íIõ`ñ´é”Èd+÷²QâkGGÜ·_|ßoèÝZt­ LYêJà7@ê3°^êêê Sà;A@tÓ`À8ªVH±ïŽ¢Vg]·âPë’qrUd´×¹yEÒÛ“lg³\eBÔl¬ímͦAã ›Çi'ˆØªäTÖ¤ä!?Ò.ÜkÑ-2½%Eeš­kŸ»¦U”XTxô¸jŽˆí®²+ZÒ+AuëjVßO6‰ëöâñ›¼©_dÕ0 ´'WˆÜ8ë¦É÷¥ »îmµ¢šƒJyÄJ¡-k¼1Ì|ÎAÌR<ÉN!¦gr´–ÁN&gñ©”#±$¢ÌKÉ%&Siž©±YÈkH‰»€„lmt%I­Á\‘M± _gp«-Ya¹AmâÑ€ææå”ƒè ÑÑÄAw&s‘»Aj‚ÖxvþOèš—±I‹ø§r0yÛÝ>goÊ̬,& ‘ˆ–‘*Þbk˜veÃ>ò9ö¶»]ìÛ–äð8­^Äñ†K’óz’òHgih LÅ@fepË¥÷2th”qÈ¿•]üñLë×pÆs8“Íô­5[ÏÙÁX®†7VÛ ºP¡Neר´ÃˆPu¦ÏËK²ku)Û<å®#?÷dµ>7‹:yÚA¼ðN]dm#²« t,Äk¸Û5T DŽçÄT"NˆdjH(ˆ˜óA]3à²fã!µû"oNêFWå‡ÉåP;²lK§: ÏZ‹ i,MS÷ëÎpµLÕXâߊ¾)ÙaŽÏä™Q4't’Åu 1v1Á`Ú,P•îŽ'«ð^‘µ&J܃šc•0c^Bâœ‰ß ‡‰œ¾éTN©—ÜKp2tæõ®Ýú p¿}®ü¦ã#t;œ²¦'&§'å‘\¹7ú‹¼$±õ‚]²óc›ª¦ÿFÏEu,‡ïjJ?Ê\Šh(Æ~ äEOISµÂ¾Ð°!zâ´7³Ý¿ùH„f)qc*Øz~pÃ,Ã56}¸çx¶å‰1†S—¶s“‚¦mß ^ì}¼mäø}¹–åˆqåcæl)ÊÁd)]L—zþó›&Û±k]ojò¨¡YÐL kÌj¨,Á°LæÔõDÔwJkc{ñb‹~~1•‡‰³‚,Ç0:T…š›=Àykȯ9#{9'žïHÑOì<ÛO®÷þSŸPȾ°~Ö|c”e¦íïdA`Qå101Þ]“…Dn‰*¥²8ÞŸl R‚žÒÕŒ¼ƒW3½J™Ž›ÕæZ¥§Zƒ˜$ÈRè. }܈Å[(¹TëQ³¶7ÞoO5Mˆ‹5¡çpž$á­5*<?æ¦è#—+êœ4·ªjºzìÕhZ³ÃÖ€  þ,iiµM}² ³¦“¸‘Ñ’•z{èPDélÑ5¥ Õ„ôÚF=¥+°=v¤uO²Î©%úäTj1J«ãÕvÓgñCå¶Äª$R»}2Ì·ÛVñßññ­Í™”²')klI¸ÀFç95A…¬©!Õ°™äF@Ü·¬.Ì*³'¦c >ìè£+ëxØŸô–ÕØ¦Ú¶‰ÚMs”¡)ص(x m/ Yýa6Dlª3WT™u ÛÂ4ÐTÿˆ$¸ÜÏß"¬Ìý…AzT`Œj­Ál£SŒµ?C7Yûh—pKI{q)š)á¬é½€VRágÕÒq9ë:­~¨H³Œñ’lcôã®s ÌwÀÌ‹Mr3ô“°•Á«øÙNJc¼¡.qçbˆ+õC^™CDNÆ~zT5ê@]›—ZžG¯™K•zÞ”¬Ve·Œgj&) )SEP¶ëpÝ2rŽêHÇ‹t †•¡•ÎÃ?›œYrè<–] ½W+3B mƒˆù£1šš>ä[ÞBõ=ªë™+ŒÃ,:ãlæËÞÄÀLî tãld$dkG¨èÐþBë7y?©Œó÷¸Î¢p/M˜„‹zÕÅÉDcj4¤ͬ(íÕ¢;¨ >¼ÿôæþˆŠÚÊd_"ô)ŽŸÐ±Ýâ¨:r'ŒÂ]G¶Á TL&(íjnì>Û$áIllŽž-¿êGN€Ã  ¶¤£\¢Õ"/óVšáÊd¥ijß‹>Ýãé¾&SO&Û~z¢6·Ë‘‡²Õ羯nNulÐ\,h¸GjÈ Xæ71z™ o‡Ïh_§½<þ仑Ò(éÃÖäÚ|ý²Ÿ¸âE†Çt€‡à“ðÆ¸’Ì§-¼;~ì¶[מ“þØïÄë-úÊHp[?¹ä3ëáÊòãä±Ö“+fÆ¿MnÜO%·Ìøãµœ>Ë«ëô‘Œ¦’§kM…`4•g¹Ï ¡¼É…mvn0íÏxmÂx*¾š®Ì²Éèÿ™-§;4ù±Êè±gŠ­4Íëo=Äãð²Ķ8dÄD¯zÔÁìã¥=7®÷×ñ·šl3SOd> endobj 353 0 obj 3245 endobj 355 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 656.462 282.52 665.462 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 238 0 R /H /I >> endobj 357 0 obj << /Type /Annot /Subtype /Link /Rect [ 264.46 612.16 297.52 621.16 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 235 0 R /H /I >> endobj 358 0 obj << /Length 359 0 R /Filter /FlateDecode >> stream xœÅY[ÛÆ~ß_1Hâ Íûe]´p§vÑ´±wÛ ˆcDŽ$fy‘9Õ…þù~g†”(’"¶/î®mÑ$çÜ/ß9útã0¿ßÑG”¸,-o>u÷¹Ì »[AÈßrV²î:`½5¸pû+|˜—p±c¿ÜT76ûËͯ¿áaÆl8ÜØcrúðÝÍ»zbqþ6ÛÞ|óüÇ€96»ßœMä–m¶m;‹-ÏMèÇe÷%ûõÙOÇ»wûö[öèY®å²JѰŸxÕòâ›ßØý_o^ß_¨æ9îÿAµwZ£ 9ÜÅŸÈÒ^¿xøöå“ADœîŸïj†ž¹‡;†7=*:vŸFsiô1ŸWõ°ÏjØC-.Cä‹2¿‘‡;V|atÕû_Ød/ï“2^)´/tÒž:ŒJxÏb¯êª©Ê늂œoE)*eT±ŒÍ¼ÈòB"o{†ÊýN02ì{ùó[ÖV™höyUåÕ–õ¹”ÕB²ªVŒE}`e[¨|_–ÖUÚ6 X²O­hr¼A8“8lwÂYF¤ ~2äßuËR^±¦­X^©š©].Ù¾©×…(qçDö;µkÏDF· /WLÕõŠvyºc8sØÙ¸?"õôË„ây!™(¤8ìD#V 7‘(tFÝu†õ,'\±®ë½:ëûn¨ïÙ xËQvŒ ²¾M™Xì­Â!W‚ŒÚÕM•Cè^k[±–ÔfFi¹¢—ÚínjÐØ±ÂÁ;ÑÙ³2/ÉO›ü3Fý½•Š¥ ¥Tìyƒ_ügHõúw\±MÝ0ÁaRÃ\±JˆL*ù Ë_s)&Â$ÞH˜.<,vO^=ÔÍþEÁò ;Âó;þ¨*a¬jË5¬Poz­Ï¼O¬;‚+Æ«ìBÌVÂ+¹’™; •tÞ(˜ZTd[ýƒbˆÂŸ<ë*6¢ê$®å‡ðf93 T^ V·jnpŽˆé)và¹"Ÿ“zÃMÕ‘$"*NWãÞLYÔJ X›LØ4«ôHÏú”…CÕ+ýÂÀ$婞0ʤ÷Ã=ë©¿Ô•KaÄçTH™? ¸¼fü±ÎM­tjêÌ4Çsàý\×K .%%EÇŸòbO p_×’q]óÀÞ÷ÁÝõýYÎ,®VF/Y¤Ðå •?Ìhbvù~‘¯‘WG¶®ëy«S[gºé «>XM+ÊöF¨¶©è&Ó5Pí¹d²¦ZCOL½ÈˆÊ!W¨yªË«!ö3¢s)‘='‡i‡®×ñ`±_í.P&#(¸ˆƒI·tXó TuÊ\™$=5GÞäÕl*VäÄ’i½:êß¿|û¦à¼F ¥@v'Š=ÄOQ/pûŽNfƒÖ— -8è­«ÁI@³Þwíx1”W£&ögÎ"¥ö·`¥@µîË™¯/a”PMž‰®¯µkö'©á|j­ˆq»õ °oóùa0#‡1Ù‡g¾¹*¿ï‡KV 6sípôv†@iêã"ÃÀŸ9h¢ÿ*¯u®ÏÌéá’þ˜g…øHµv‘·.¢ˆáÞ5Haºu8S—€$ ±¥v‰pCÛÔ¹BÎâ]{mJeoÓÅqð®MVS§ņ<«S$ha®›ÄqÐ_B¡3Cö‰Ñë æ-P9kõPôíðR^•É-)›#Ï¡ö„hôÐÑ(h_\OßµònL1¶`’ëÉ`/Rè[ÀjêWϽ»)§z¨ó>{Qe)’ Qš¹²­ žRoQ‰¡^ˆ˜¦Ãy…ZXê0[1¡RkAýе"]J]gF 'FÕƒ*€ÿ²žªËsòAH úÊv=»c+ ™&ö£JO©)ŽçZaÅ ËQC;>…Üäð¢Æµ)œ€CÞÃîì…)ïmn&e[ŠÞh?tP »Ø‘¢¢Ü5B§E¬u€n\>È‹BÍswb©SFñH¼§÷¬dîx+– hDAÇQô¿"šéY÷fö—Æ ÌõÜJ† aB´AÀ¹‹ê»³DbEÓ#A*‘!l»q—Põê„“ioÕÑ– ‘«ióh@¿ |RŽvÓÑËCeÄ»IbGýèUQ ç[½5ÑþzÁó,½ºôì`†ÐS[w-Q0MþÈ Ö¯´ÃÊ|»Ó˜RB«†â¥€fw¦+J? öTçÕ ÎŒºš2Ôk/"ÕiÑ£Š†´]ƒ›±]èYU7ì ÇK8h§75ñÆÒfµV¢EJ½ áì½èòúûáÊb Ÿx®c…>{ÉŒg»ßÞJ¡>ÖšîbpÒ2-‘îËÞ÷Ëé!×ôø@R”,8§åZ;ˆnœ4 $Ì|â°àyÔü`ŽôSz!5s.A"Í·‡#pú%ízœ$Ìâ±8BÔiÌÄшÔpcI…Z'6”í¢¢/Þý~ê¨0ìêµÇ‘môFð Ô.VLpYSï1S²õñ\߇2%ÉH&ãSŽ6™;1%ò?|’BšZjFÁ 7ŠölÓÔ¥1„ #@—ÒÐboõJæ8¼9F}ÇÉ¥÷¨y¿Àê8¯h#ÉPôr×È:,^)#EZgº"Éi§Ë @5UzsÎ0\÷ƒ˜öißgͤšû‰;oUM˜—&ûãÌÞØ÷,?v¥a·A}CåŠlZ1ñ™ë€âu ˜ïfòðÀ»T¥¤AIÝzìöœˆàQ–û´³uàïÀ Ç? N-ŒòUZfE^ k÷ÕTÐÈA2!EA4>Ö±=–8VBÇ0“Žý1:ÁÁòO“SãBFL0AÜ™Öl+ŒrÏQÕ¥Ê^L¡™màÜ tÊ><{óò_¯?Þ¿yÿúåw}IžàOœv¼°Óðùsöƒ>Œ4ëãß¹5YŒÝëI!•–!TêKÅÀã<*é}Xµo•ì'èTÕÍé»elxÔ­¼ç29@Gàß(B/íY —añ5"¬Û4µûóv ü½V~?“2`ØÌ°‰=+›ábÃÙ¶¨×¼èK£ÞœÚ™ÞßÒÞþ¸½N§]˜ÞN¹$ÞÈ£ÄeC¤u™i÷/ Í®¿¯«Ê²¦/ø=œ+¼RÀé›®M8ý®Äö§®‡Ö篆t’ýyæKäO£ï4r…Ê-Û·kÔ:Vå§b¿¿½ƒGCê®?rå¦ïxþȆÉíôMßÙ’áŠÒnƸèk©’Æ*zŒ©›Á÷Œïnþ ïË’å endstream endobj 356 0 obj [ 355 0 R 357 0 R ] endobj 354 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 356 0 R /Contents 358 0 R >> endobj 359 0 obj 2609 endobj 361 0 obj << /Length 362 0 R /Filter /FlateDecode >> stream xœÅX[oÛ6~÷¯8ëÃâ,‰JJ¢..°aK·C‹-‹‡>Ô…¡Ht,TUQª› Ûoß!e[rI¥ÝKçÄBŠçòï\”w3 ®Ô%Œ]HËÙ»ý…Ð/Ø/±¨ï¸ JØß3(ÔS£÷p‡—þ!¼Ù«Y5#ðóìõÜÌ€àÝŒ|,N¾ÝŒô«òÅõ¸Ÿý°œ=ý‰%°Ü QæÂ!”Bäxn¬>.,Kx=ùp{óââÞ{Žë¸ð‡ä ¼Lª.)ÎßÀò—ÙË×<êþ®Ýhz_TÀ]ü õ“ æ“Ó#ŽëêVèõk¸ÒëV[Å>„ûkoHÛûÓ_'ý ƒdìÅ)E¾¨òiv„®8Ñ +‚h2ú_2#ŠJ÷Ñ™ùÌN¼A8”0å ë}üÜæe]ðkQU·R ÕÕ”â1‹cf4|ŸMäÚ{­åŸ´©ÒX•¹:i°Ða—ªVîTOQC Öó®fE÷›HUÕ•õz©R·È°a€¨b«T–]º…R4ÊÕ4?\Â]§gSUL UiÓ»¦Æ.!Uƨ¿÷ãäeßµd·Ùä)· $~LðlT ¯?Y Gp7UE%|£ZSñ«¹)*&"|øàíð²nt'ûÏ,ôZºÆQ­YF\<ÒtÁî'mCðaý1á4ÔM‡šÐ.\Ïá†è~õ1Á®z) Vò ÁÇ)ýDø“'(}Ø:j°#æ…ºIGÔ´¢3ZÔ%XæâaôÂs’ôµ%ÝYY 3ӅѪ—Øfô·†[üîŽc•NšÁ¤KLSË;Pda¯GÙ Kú= “Çו8àvòR]Tò'n&!Šœׇ$|þ_’pd€ù2F¢ ž+”œÚ¤@@cK0L ^lÁ¨«d~_é¹Ûoòag_·y9*ôú?7³Ôððú endstream endobj 360 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 361 0 R >> endobj 362 0 obj 1469 endobj 364 0 obj << /Length 365 0 R /Filter /FlateDecode >> stream xœÅXkoÛFý®_q °Û ß"ÝlÇ›ÙM·qìÅ~¨ aDŽ$ÆGá £¨‹þ÷=3¤^žÚOYÅ rxçž{æN>|òðïJ_FY@ùrð¹æÓ( 0éÅ ùÑ0ˆiIý}L•^uplïpéáfAÿÔ~üú^äáƒõÀ{jÎ||?¸;ð¯ßxßÜ¿GóÁë‡ÁË·1ù=ÌöùñÐóbÏó|ŸÒadúÐÃ’~=ÿys÷þ₾„Ã`п%oègV·¬zþ=ücðæá(µÐþ©Ý™º\tÁü†¦êG/âÈ;~sÀˆÝóýSã0ìžáIç[¿ªúö×.î¶Ë§»žÌÃÛ§áfqL‘oêü4;F!ž Ó#V$ÙÉêcȬ*jß»d2ð9>Êú^¬s‰»\¿ÿvé¬òGÃÐ,%ûeú÷ò%ÝsE¢m¨,*Nª\rbŠXMü+[®*~5kJ^Õ†B’<u!‡D7ÔðmÓøëb/AïÅåg%DEkÑV¾UmS“p6kX®JQ“˜‘Zpøh¾ðæL\Õܼ²Ü„£áH»ñƒÔr³KC´ŠÊZ*Ί¡e! 3 H„ÇúЬOâ´ƒ:Ͳý'XËF¨‘^–ŒºU«¦ü¿¶¦©# $ð¯v9…,Ž=@£m^+”¡¬©•Ü2—¥ŽŒÚZ–óšøHsrRÖ|>±óóýÌAô ȱ…V¬aK®x#mAvœ¼¶ Uq}-USÖs*¦“˾¸Aú²bR®ES¸b 3€ƒaÒóûÇ¢(Cê@2NûÀïKÍÜÛ]Ì@½†€+ÕÐßÈsI½ãÐ¥bªÌAI½˜t´˜(º½yÿþõÍí?'÷Þܾ{ûîÍGÛTæ= Ù="ÕÎÖø¼·Éš9 6m]šÉ¬bóñs»£<ïIrvw¾jbMúG•»‘¦§ÚºàMµÑ¸¥›ïH bU%r­¾¡o®º¨ÐjsI¥²=¾›#5ç…¼ÔÜÌ™äø”LÖgú²ZqÍ@VióhÇ»A•R ·kl?¡oIkH#æ`)(«–B*š·`d­ìB»ŒŠ°Ÿ`ét|>~Ž˜ªŠ¦¼kÛSä?)Vïj]â›1kˆßú°´‹YÙÀ¹L@'ÚùâXêZ»3‚ØRÆÞÍ® 0 àÐ…˼DÇ_Ò´5Y5\'Mµ¨ç |ÁêÜ‚ ŒP¥£ø8£ ¿ûÒh1¯7k7æþöâ¿Ü¡ô› KŽZh‚É…XÓ\ˆ °©8ú^Ðy²G“,-Êù‚ÊiÔx-ÛÆ¼°]¥ÙU PÇ®ö`1|ºE²@¥gଆޟ[ŽMLÚÛ@Žê/7òsµZ]_ïäúºoZÈB£4©l ½ÀQãûÐpÕ⛳û3|Ö=˜U­\3fϪ‹²'éAã„¶‡ tƒþ¡Y ¦¶S±ì;ÀP±i¥ ÂqB>QÕça¢Ó#Ù©$º6Ê4E­K½Iù›~pq‘&µÜj‚Ø_/x¯Ì•+H,oXCY—ráêŸ0‹>ê¡û\¬x±ï$ÊWãóý^ ÍiZîj¦È‹N”eŸ+.¦D8ý¹ hz‘7 ½zEÏÞ²²ÒÛÅ–:§ÿî™^®Ç_G„A|¢‚ú7Õ…ñ‰bØ“dǧYo:^¾Úì&ç®ã¥ùã¶ï¡¬@kc!”î=ÛM’œæ¼éîB^v›$·­F8åš©“€ìÈp!îäx3>ÏWW?ö·Ï$ä(Wô¢ƒß¤ðlüÜIŒ49àžr òo\}ìÂEÔÐãk(õK·€GYr‚ÍGšõ©Ó¬OÐ,Öír„d§æŸœÄDÈ'Šùd“ž¹B‹ý‘ñ0¦ŽþŒ7q82ÃSêGvAÿÎ+¶!ÿ*Úæ¶»e!ôf€ÁÍY©§‚×…ÅÑè\ðS?•¨ç8Ë@¶:úÎ.±ƒœÄ"ÇȈÎ3*†P#MNw‚¶k„½?DZÃZ?¯Õü«2Êf37NÒèÊŠsèæËÂèù÷ÑùºÒd›ÁÙ/„ fÊR÷ÌùÀÇðw{Çn^ëÇÜaÛé1íÏ –ñÄKX½h8T€7+là­^Mõ™èG¤vtþµg¬’Üf`‚ã¡ÑqßüÕérêØ¦’ s€g/ 3¹áå£hºÑÒyœÙO…üëöhcþÇçnð?"ó€ endstream endobj 363 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 364 0 R >> endobj 365 0 obj 1829 endobj 367 0 obj << /Length 368 0 R /Filter /FlateDecode >> stream xœÅXÛrÛ6}×WlÜ™X޼“vÒ™6u’é$ºV›‡ÈãHÈBÍ[ЊÚÉ¿wR7tÓ—”ñD4íbÏž=»ô§‘ ÿ=Waì@’>uk6„¸A·ä`{–ãCݽ™Úµsã¬ïð£Ý„7 ø0*FÞŒ>^ãÃ~a9"Íé/_.wü«'ä›û'p;úq2:}íƒM`2ßBdû!>!Ķ!²\'V—“>Žß¯®.ßýk9–¿ VÃ{Z44;º†ÉÏ£‹É^h®íü¡]ê3´±¨„;øZ:ë{|ì?ÙaÄf}»ªºí®´¾Õ£¬Ka÷Ù¤½mãi?ã Û0Ènûù¦Î‡Ùº¸bE{¬É`ö¿1d½,*ß›`b䳿 À²‰¯bñÛX¯|%>eUuvöª, –H^ggrQ3šÞ°"ާGçmÄ;†0> °l|gk©f²© ýính…j»íDíö/½-^hÅêl‘ã¶[¾Cç|ÞÛbTj_¶Ûx!{{¢è»œòbª¶­o“H´†gxÿñzzÔû~=8Ëß½-6‰KôáDvw^>‡”ÍyÁ³·?üqq3yûÛÅ?]Øvl¹:a°ÅïôÞ0 )•tFš$L¨hMs&Y-`^—9$ežÓ"… ]õ-;ñ>>{)fŸi^eL¨dk#ïв&U¶¦ã‹)ç¶#¬hÚ vèƒQOÇOÖ&ŽÀ•#œ•í»CÛà+ àUûû¬±#Òq|…ô• ä‚AU–(¼nk:Šð­in|`–À¥Yf+%H&úŒ²cbˆÉ•­›m–hÍà¶,S˜±y‰÷KB¢}tÅ‹[Œšf°,ë»u¬~ib€ ]uGœ±„6B[-K1¢máB9ûïT Í2èʘ.ñHªûÎlÛ€3:C[ÊÈ‚%wmŒ\ (ï¨Æh7ýtb:YpÑwäØfÆgT"h'±(›,ŸîqiNy¦Îñi¹'0k$,9†µ~’—†T9®m¤D‰YªA¬„d¹€¦ÈTm­Ê$½S,\ò{•)V ã¬áx”%—‹ƾ'Ï6“Bã](ûŠß˜#͵+Æ@ Âû‹çÏ,ùY’C † AÀ_r«ï· dP”®d /©%\qUÓ[üŠO§ãMEÄ;ptˆBçܲ^Š× CÞöDå*)+–î0©¦ãgÝOÐnc>Eäè‚ZøÀr')Õóïòר/NìÒ°¾V×ð⬧¹%Å¡Ôé•»éÝfí À~¥ßň3 d»—î*äZûÄ*T¾ê¦ÐžÊFÕ‘¥Œv·ÌÐ(mך×K×qÒÔ×L×u Àöy®ׄÊdùÙ¤ÿâsÂ*•÷§`Ö×w`Ûäæ54–‰Rl€M¼ÀjDIQ,Â[Í>HMà=‚›º˜µD¡R$zýÐ@ñä#ï«Ðôˆg–õ+4]©¦ŽE,êÄ/åðåVT¼Q欣¨°¬¾Dxø Ó=Q\ëÕ+U€D·ÅT·C¥ÖJ¿“²®ÛlÕ¹Æ$`K<èûqüpÔu ¹mÖc,÷\߀™¨©7ÇM!ø­’MئG’çXûD¿Á’ç8:S±bÑÎÒ/ ¤ô|ÿ‘ZVšuò5ÿ÷íÁ#DüZ»ðÅjðÇÊÿ‹ÝH(šü¦c ­ËùtÜÄ?}¸†:eD5 LùipÃþ80dAµ7ºñ$ä8¼Ø=Þ9s£Z ßÄè¶ fx¥/;.w§cÅ:Vw¿ž¬³ÇÀÚ†o‡zôÁ2|¤ml¥)YÏ”º[hzs“ùørä¢alÛ‚9Sq DI™²ÖZçÒ\3¾ê±&²½ÿÔ|/èŽ}òýЀ½a¾„õ#D-›à쬧áÃÿC˜gôV€èV(îH×g/‰óίø²”n&èÕaÝñ£Èµ±ÔtÛ Wóù JEʱ5mÒíôÛÎãB–N)}ùDÛ¦.‡òiU ö‹Ã‡X"íÂßù{Èåè¸ endstream endobj 366 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 367 0 R >> endobj 368 0 obj 1651 endobj 370 0 obj << /Length 371 0 R /Filter /FlateDecode >> stream xœÅYÛŽÛÈ}×Wt6/6v†æýâ5xÙƒ±á œÀc,ZdKê^änräyÈ¿çT7II$%øÉ#Ù]]—S§ª¨/+¹øwKIæ³¼Z}éïy,ñY÷·¢˜y¡ãG¬býuÄJZuráWø°‹p±cWõÊe¿­>}ÆÃ‚¹ØpX¹Sqfó‡Õû“óé‰ûÝÏwÙvõóÝêůó\v·9ºÈ‹×\×õ<–:ŸÑÏî*öéÙÛ§ïÿñãì1p|ÇgÿÒB±·¼îxùü3»ûûê¯wg¦žÿ0í½ÑÁÚB÷ñ?qLÔÏD¡{þäãýã]s``ïáŽ=›•}ûO«ˆ½´öØÏ‹v¸G3ÜS+Î!ò]¿ŒŽ$À'=CEâ]ŒþwvÙ,ŠtöhLì W¶ŒC\ÑjÇqf{£ÔÚfÙqo!JÑ ¶ošrߪùqºà…S+æ[xœ¶Ä‰ÝñgQj1[•¦NBîñüô(øþÙc#‹ûç\móŸXoÛ«ZÖ[¦¿tR‰ÊÒ§ :BÔã'÷³q6S2”Ðp9oG¿¯,áëòºë=7ƒÿ ±Ÿzƒau!7ó…~vîRG‰¶S5sä<åAÜã±ÇâB&buì9¾Õɉw;¨ÿ•W{óШͲݱuƒ_e 4hVóV>ŠÑ`^vÑ»~xóïá¶s<6™äLà{Ž›ËIàS:É™ ^zQãÀÆ3åÙÏ"çT»íãÀÖ, ½“ÁDW‚5uù`Þð®lqc°üIqïû¾f¼Á¹Ö'°M£°Ej¶WÍVñе ‡Õða p…J·/y‹µ•vØ!_7fó\µ4š¨&kݪ.oeSkhl#á|°–H}cë<]}äû®°~³aOMÇŠ,Á•È a"I`Ïw"Gô­e$Ÿén¿oTËJù`60 dm|e¶ZsPìnàV#ÖÌ¡í{ÙD§¡;0 %uMÎnÏì£@G“néw«žèÕÕ#ìÚµä—Jä;^K]Á"²5ϬBKqk—Šb®WàMôªŒgv¢>‚^‰^;þÈeI8sØk¶çª•yWrÅ ^or9Òƒ`U׊¯¬l È¨^ ÒëAˆ½YEìiP6W, &ŠÉºªæ iÞrD¡ÖR·¢nûÒR¿’RyT;Ï…Ö£ÿètKX-0¿yS!~€ím³grÆpÀ b;W(Š& ð9ÇŒÃ> J‚¥É›ãL®èIï˯ h*þ ¦°ã£:{% õj wé1!ÝË27ëóu]Ü –‘bÛ±½é€Hu³T+ˆ)Ø#/; Ë¨‡"¦ ÂI¿Œ²)ù!:XŸÚ\ß_8õ—¦®…É×wèJ‹¯I¡›àu ½`{š9¡—PcÕïÿ¬¨ävGF×ðxØ=¹Ü@€˜n:ä® àµAŠÍï_Øëwol¼Ö{‚>áF€€œ(V I¸ÞD%Ým·Ù‹-„–Ûšm;‰ÎAÖTJ‘ Tµ& éXXƱ”jÔ¥„º$[¶k™éNä…¨QrÆu&?È ½”cðiÎ5¢o8Pè»×…Á°bò×*‰´ˆ.3I×Ç™mTS#‘im3×+ˆ&zAZ™¬=4HC¡$„sª8¹°t–w tŠG£LYã6…Ô ¿4 …N»_ ¥ 4x˜n/•yLó=²€ØhÞ>èÏ5Ó “ƒDD[p*¡ØÈ9¸4qütâ œ¿Q(ÝÞao»-„hÁUtée‰®/–[û÷\«(›h8¿4 —Í (ú©Îq?´–ßóá4CoW&¨8ÕàZ÷ÚaŸ!d3y{`Rió°:"qQµÄ›†ÒøÝôA|°Õ†dž¦A8±‹3 ¢¢lƒÐìz#AA‰u‡w‘„¼ pÒô¦é‚Üo$!ãÉ)lÓÕF/eûdŒLÔ·J {‡©ºÅü“ÃqpVaùÂVØœúo²km¯h3ÄÀPÃùpt:N{±A– •;‡;sj^/Ž r]Ì sGó_¾´Gÿnºèûg÷Ï/“FS7@ÁülA¦)ĘòU…‚M†â¬ä¦h”Ôl”¦šÞan0F¹sÁcþPæ™Ó4†ǑΨï°7c«ˆ©ˆú”“|tV<³,ÁÀ1ÐÜ\#›ºž+Í%~boa?%%xÜØ¯yE:›M÷Š]Ô˼IœÓ|#Ú§ËA Ž/Vç›_Žƒª’º=¹ª/„†4Ž_ïX:~ÝØ:iÁÝ¿g€þª³“—iœ*6p<á¢UDõ‘Goˆês‡áù¢‰HF‡LL“$[Ø¿ÔaE‘?i¾“âñÌÊöé¦ C>áyÛ&Ûq¬Dã9—›„N]R7<ë(ÕÐÃXW¹õ•ƒoEE£ ÞØ>Ñë4z}2 ìCMá—³;pC')³¾Ü‚øšÖ¬ÿ &Öx‚ÛdáE_<ÙÖ«o wa»fShŠ­Ñ:Y¼Ü³ ¯Ë(âÄ[¿@Z \Õ^%­À‹œŒÞ,za¼ “ª-`=ô1 vLxÈ T–ÛÓä<µ;K'B@49hc­µ×$“!?ÈT¨†¯µÃˆ¾Ç!kðŽárÙ—‡aÀ4t!Mÿr™ï„” ~œ.hö H£«nçïj=w²æè¬Ó7'ÍØ©qMÉ\Ò¤Hf [6RÑè%+Û—÷ÍßµS' {˜ëô-–»W%Pƒ8¤ä<ócߟfþØbüäªÚtåÚs'˜qð˜í”d{%eÓirŠMŸëéï;^‚N)ƒM¾)ÿ¯J¸±„Þ‘Ô=T_Ó–Ž_Æ|9ýêÄ3_œÄAèø$„UôíÈñOû JÿO<©o1:È0P üxþ–7=oȰ:rÜ8tý(M¯¥7ò,CÎ7a òúFha{?èCÿµ»t¸çÑëvt?Iº ‡¾E7K$¾ÁÀRñ\5ö ¸¦>ŸfÆ5å½ —\vX§î[ÔD BØ!ž†þ“ו¨ÅåКïÁÞ¯þ2S  endstream endobj 369 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 370 0 R >> endobj 371 0 obj 2703 endobj 373 0 obj << /Length 374 0 R /Filter /FlateDecode >> stream xœÅX]Û6}÷¯àc‹:ª¾,[}kº›E ifM± %ÚæŽ$:¤dÇÿ~Ï%)Û#Únž²™`ì‘ÄËûqι—úïÆ_ˆ¯£x ‘oºù}t,3\‰V/P±LïVÿ§,¨"í}?˜8¸êšëe+˜ì?¥ijX'*a ×'& ;îDÇ8ëwZðšU¼c-øÒ4†õ 7«yÏ×ÜrÀE+\‚~|SN]Ȳ<*r-/7¿¨Û÷Ruãú „¬|°þðžñNÁ/íL\ŞƓÇǰð»5ÖÕ΀¿¾ã¦£œÀbCN—'ïÇ—&˨\’š¤i¸ãW˜.@™Œh6Q\žFYF«V™{òí†ÔÀ殳X”—´¨X….¾þªTs×ß$-¢|—«"42·N˜šÚÂæ¾3I¹ˆ¬‹$´ãJòÓsÝúîÓ÷ÒWÞ·ÂlqT2ÃÔ† ^íØQégàÖW}-*ޤ ^äcØ^«5_ƒB †ƒŠ´WöZÔ²ê‰B„Fʃ~|Qˬ wÚj¾~t–Þ_íÒ~”øåð øvâø€¢)¬°¶€ 澆£«G˜ÒÎ-úAwЋ0ÙE1Y„l¤ ë–…^ö@'ÛhÕŽÄ÷•ŒØ[/i{eŒ\7‚VTª«„<ª¾‘ýÀ)+tZX¬’Èm®y׋бå*&0eadýhBàÍ‘ŸŒÏ¶Aº7Z˜ÝƒâËh™zÊ;|f¤ Ø,m¤6ý¨ô^Àï# IØûK8fùêÁò9[g`®me·E¿ Ò]Ɠŕj÷øÂD§†íÎÉõعւ"(¨EYšó àÁû•ö±*E(-.< 6ÿjÊñ}+@‹ŒewC}B]O’©ˆ½‘B8Í)D-\è­KM+ºžšw ÕQõüèÐgò%‘”Fœ`— ê~úÉÇ-ºúqÔi‚NqYÞ°±½†""v³ü%Ÿ_¦Õv‹pjIÒ©ˆœ§”ƒB”Ó’8Kn¬·R@HèwÒDì‰tDèW•­hrˆûª² }²)þ…ýüë[š‹L‹{ä=«•§„­VG¦h"šÍè‚fSmëO{ _FJÀüVàb'HçàâèÒâ‰øï%KÝ,bïÜýZ¬‡íVh¨ŽÞ/8‹n72F±çNC·ò)OÇìÐhéœ+¸'§Þ[-÷h%k2óѽueC× 6^L½'Ðð>LK]È¥aþºTL©³ˆ_¼ÒĤãmVSøýܸ0lú:4”)ƒ¿l×8J#ÑeQDEAp*ŠÖoÐE>fKJƒì}ƒ4}+v µBÚ­’Ü5è%6Œ¼œb½Úñ}/t4ººã°·¢G&<\¢å ‹óeá:QÞ-ÇÓðß0ñ™‡ X˜»!Â`¾ŒâbQ–yê ~´Š…"Zÿ5b2µãÖj‘Š„[SÔ;‹q_§tÜÀ7nÎx¥ÑÞ=@åsmš,“À¢„[H~¹ðsõVô=m¾Æ§Ð]ÚÉí‚U«aÝo†Æ0jšü ¶ÆUÅBœ\µÐj¿L¯A~¢À@—ÛQcnUåºû†Ë.ôn™L¼ÃˆÄ8D³²C«ÝÌïoEf{GàY5Èò‡ÜŽµÊ¢?áe6Ùã#õˆ³Ò˜fÄó¹îó ôÉEîf/àtÆö¼* {ØÜlmŒ^\Sj† Æn‡…À“Ä ¸”Å‹‰K/¬Kã»;rHz8!T @$ú9SM $A“ó½11Ïbß»T^ÙJ–§‚M˜Zÿ•qzo}ù ¾XóC¡Ä©ÙšWÏãÀ,u¹—„e‡4{hâ•åÇM®ãl8ñC@‹Y’À&õênt”‡žl¤k ŽO—¹À¯‘Ûy34ÕÕ$˳žü66™›búh©÷ÃPÆiŸ¦yüñy@Û«ÃDäSÊ OÅ`øÖN(Cg_ZPÓDUP Z7b”R"0§? /ЂFøq@œÇT7ºÚ'ZäLžZLùåMPLG›zsŠØ‚ïNƒÛ‹ynC‘¢ÇCz@Da¨×Ãá†jÔ)ÆnC}ªD•Â8^Ÿ‚n€¦˜òlÔà 8¡£¿û³ ?(Y“D6r#ì9â,öìt´hõ‚ײIЉÊʺ@±=…Z”­¦û(0>¨OW$eW/ccšÈ¶ò`›ãNÐË'êuØ.îÊ®{̰H«SÑ1ØÐ¡rŠÈ)WÙKÃϧ<ÙÛ1ò¾+¦—ÐÓõ¡áæl›èêCjITÃâåÉè@p|7Îy6áus4$¤Ô¯øØ9|Açì-[kߊ‡ýøFÄáÓv¹F> „îpfd+®/‰&‹ß FB¯òøó½”ËÞÏ;kÁji*§I;#ëó -p/·æÈZ²Ít'•«*æêÖ­àÈa+:´˜âÏ–£ÀQˆnä‘zO¯:ú1 ô(HŒp/v*Í Ié^i(]ÛrÙ8æ€ä5IˆõŸ¸NY›o+ób B„hIx&ÞüêèKòf‡{!ö6d×üxîZ8*Wòv~Oòú)‰ KãõAVĚгÕƒ{-!dÆI’yñÎoMg÷êÅahL&¦¦1?ô‡œGWo×ßÏþÇÞk• endstream endobj 372 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 373 0 R >> endobj 374 0 obj 2262 endobj 241 0 obj << /Type /Action /S /GoTo /D [375 0 R /XYZ 72.0 348.306 null] >> endobj 376 0 obj << /Type /Action /S /GoTo /D [372 0 R /XYZ 72.0 522.0 null] >> endobj 377 0 obj << /Type /Annot /Subtype /Link /Rect [ 207.79 628.424 408.77 637.424 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 376 0 R /H /I >> endobj 379 0 obj << /Type /Annot /Subtype /Link /Rect [ 434.75 607.348 458.63 616.348 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 223 0 R /H /I >> endobj 380 0 obj << /Length 381 0 R /Filter /FlateDecode >> stream xœÅYk“Û¶ý®_ºl72M‚ïmÝ™6‰Ótâ鸻™LÇëÉ@$$±áC&ÀUÔNÿ{ÏH=HJõ'wí±h ¸ÏsϽÀ~ZxÌÅŸWô§œeÕâSÿÎc1g~Ô¿ #æYÅúç•´êìOø°‹ð°e?-ê…˾[|øˆ/sæbÃ~áŽÅ™Í÷‹÷gúé÷‹ëwÙfñç‡Åë·!ó\ö°>…È × ]×õ<–8>O釳‡Š}xñîpÿþ‡¯¾bO¾ÃÎ~T²eïD݉òåGöð×Å·®ùÿ?¸öÞØ`}¡„sü“õ‹/ÂÀ½üæ Ç÷§·F¡oßáÕM_•} ûOkˆ}´þØÏ«~¸'7Üs/.!òE•_GGìã“\ Â¯fÿ ‡l’EÒ}ÝwðGÎ{gNõ0]õ°•L UH¥Ù^X¡˜n˜nôÑ)ÉSE½)%ûº©k™é¢©Y³ú'žXQãÛª+u¡·­¹ÌÙ®m6­¨–lw¬jZÉôV`G-§¶pwdŒÄֲÚi¨Œ(4=Ju’}êd söc]J¥Ø¡éØ®ë­)Íš5Û7í/´CêlÛ6uñ/8’eX¾„=ðEY5JO­ò¹ãûĉo­Út¢µ–p"×¢(a!SM%Ù®)j½d›âÉ‹XæÆÄÞÿº©*QçŠ5±‰lÁû€É¶mZg¤5ì;¦iÂý[ œ,ûü¯ŠÍV“þšÜ«ï0ŠR›mYV$BÛª!ˆ,ìÛ×Ìêyý6ãŠ'¾&HQäSÝ'L &Àôƒ[z(9Œ¼È¥‹²dmW#Ÿº™º…# ºmºàY¬- a!´0o6R³uÛTGŸvÔ&— ¶}x¨Ÿ(@dÄVìv%Õ½x)X¬fPÇ#‹²mQæ½cˆp-žÊD—¥b+‘™ü‘WÃîÅžãGˆZæ™høŒ°sÿ–°`º„÷ÐÆÉÚ§¦|ÒMýŠÚFˆ"wp؃­œRIGòA;Ù’ËÍÄçL–JMKªÓ±?tb‚Ø`*ë¾'ø°4…u¿-•ÛÐÁ¿¡Lßë¶Ët×JE56Ràû‘#IêzSÎãËI1zè AÂ]—óèV5N×ý `!"E†[ÊAL€ÓÊD–(¡S–3 øk&ää ÏEØ%Ë •uJ!ŽcÇ"îÄáŒb…À'‘³I2³ÅaßÛÊ›šÀ0Cç£MYS«(T´Í^ÙJ1l%×ÔH¨åîPMm++;yiV ¬–ë5½z’€úPß¶bâä0ÈKÓ ê“iÚÑ|ÑY×¶²ÖÇÂoêS7;ivØ_€K ÁPªÅ® †÷i­.²®-¥A(-Û»SÙ&èâu ›"ßAù¦iìÆÖ&Ì–ï)— Ö±Öcoú’¢L¿x¦dIít#Ú•ØHÂ]I4n‹sÝ4«B¾y®E%6¿<öøò÷3áˆ}Ç'ÕËçUóyÕ«Rl­ÞUsT ´B×›çªêÚõ™Æ¹AºSßI.tÓh¡$_ç¹óˆG@”ÎH06Õ9£6¹¹Ûð­é× ]™ $ˆt×E‹a§µQè[¡,â± ´ßc:g©§mšcLƒüᆷ˜aºîÞ´¶¡f9¢,ªB CwDµ¶ÉnÃu£á¯l­¥ Îë©ù²ãiýC%̘ƣ‘iÇqà¼B½%âƒÑXðŸªÈšñYÂÜ´VÛÎVPe*ÇŒÖÄA@y8Œá‚³üdd‘ãqàë ó*”7»¹˜&§¢LÜÝ) Bº‰)/æŽë÷Íh*ÇòTSƒœ.¼· 2.Û4 á0¬nÉΔâfµyFã¡;Bc|Õqç;N+ç3ÛÇ?×òW}Ûm7½%Å ”ÒŒ˜Lu+%áiϬ‡ÁUçØ‘Ñ꞊)»n3Ë#JVϨë³E營{éÿÃzÆÑ Gž7&W¿ÔÍžÍT^PzÀnèrF€Õºìo™£_g”]Ÿež _§p; ƒ)LlDQÓÉTaŒoû^²R\–Áá |â1ë`žµÜvÙmæ¦}x†ðÒÈq¹Ÿ&Qród9]÷¶¨Ó¹Î:ì,ñ+T×îÚBÉálÆ$†ÇMߪÁ¿-e«Ô€™‰·9nf2§©¯ßÌqÎMFfÕM[‘]ˆ&ȳ>¡4šÜ$h)ÈyŒsùT,.%eEï›ëÈœÝz–HK˜bâ‘Á#;¼/*3Ñ: ÷±2…8Ú2w–uGš‘i Œ©Ï#j –› ÊŽÊ2WwÇó<ª|ÙSÝ9åÛÓÕJæt p9cÎ×£8Œx9H45‰3ª,צ{ ™)ñ8ç º¨C×õll–G_ˆTfÌ ‚‘YæÞâä¸ÉÕyi£/´UÌPûÁžam¹)ÁQ®åþ¼Ø.'Ï?!4©_©f?—Ô^Ôz‡ÍuG³3AºÙ=  ZãTæg³,w'ZãTŽÏu従R1…±?³ùs 4 p›‹v5kBcî~Î~ÄÚâ´¿ÙšJ*ëêL´£q™šò„ò.³Ð²l¡û žP#ÝÏù0= qþJÝþ¬Bç‡}'µ¹êz[È2g勞¾¯×ÄQ7ø. < 'ž—&±¸×MY6{’'†6rY©šf0Ŷè…}+/NJ„îçXÑ‚çÝœ€ Ú«•ZTÅȤ[¾{i”8L=¦Zõa'— ·PKñB }´²‰ØÞ;õÚȇ/N¶Û]‡MèÝuã<‡º/Àd”¸ý™÷·E•].Ù³¬ÊQyÒÙ>›Æ!LÈ…’4ÇÛÐäjM÷S³P6ôy7Ö÷‡MAõÇé®Ôu°Õ•ŒÕaW%êb7Ýb¦¹´ÑŽØ”_µa=3é— táOä÷\¸3]…Çu,Ï ï<ÒZø&[²l‹3õïðüôáãÌLy#ëþ=]{NBÉñÒa„ÂÏë×TTæpE=ÓÞüÒIŽa|èo)2{AË(…SɘÔ.Ó@’«ƒúTîvwwüîîúkÞ „õxx|a$צçtÈNù(€$§½Ç¿D¼dSo#—BÊú;É0oª+òø(Š´þ?Óu¾?ã/ý`ÆŽÀŸ±¿ü·h|«²PÛQ³®> endobj 381 0 obj 2443 endobj 383 0 obj << /Type /Annot /Subtype /Link /Rect [ 376.59 374.446 447.96 383.446 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 138 0 R /H /I >> endobj 385 0 obj << /Type /Annot /Subtype /Link /Rect [ 467.4 374.446 497.41 383.446 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 386 0 obj << /Length 387 0 R /Filter /FlateDecode >> stream xœÅZÉ’Ü6½÷Wà(…»iÜ1íÓ–dMË#G¸}@Q]´¸”R¥ò×ÏK,nU´cmM‚@"3‘ùr¾\yÌÅïú§œmÊ«/vÌc1g~d‡ÂˆyÃCV2û²‚fxÿ„fvìÓUuå²7W¿þ†s±àpåÎÉéÅwWFûÓ÷oßßeWÏ?^}ÿ:džË>ny¡ãº¡ëºžÇÇç)ýâìcÉ~}òöx÷áÇï¾c_}‡;œý¬dÃÞŠªÅÓߨÇ]½ú8Í÷øÿA´š# 8ÇŸØÑ§>ùîôËÈ"NãèÞÐ7c1{ӧ¡ýi1Fóó¢î †;–bj"ëæ—­#ö1â$«ˆý‹§ÿ7«lqŠ´÷IŸq׉áìc05Æ` ƒ÷­<‰Ã^ÔÕ6ìš¼zdÖèŒgTâ² p¼úH¼ØPø¸“,“[Ñ-ÛXR¢ÍëŠÕÛžËS]ÞŠ‡B²mݰ²V-Ûw;VR]³‡®eíN6’ ú˶ò€w0¤Ø±îØFTl³Õ£dmmxqF3ŽJñY²¼e¥”-S{¹ÉEÁ*)3åô‚ù¤ žçÏäKB'Ôã‰ßkÈs ùc½9Éflì¥ü*‹z_ʪe¯óBªÝydNYS”NAúyèrhäÛz?Ýâ{öÓ­Ã«ÐEQÈŒ­’›¶n¾áÜ?=鹑E.•¦²Í¢>ÜÄàBiç3VŠü¡ÍQöÀY–eWåVæCÞî4K™À) %ðð«l´ù(ù¥ƒüÅñZO!I2¶oêTJÓëÙ+苼`ù´dÊànP~Ü›'NþžsÞ²m^eš¸VÛI‘ÉF1Q˸³$ÂÚc˜O µ÷Û¢G¥1Ѳ‚<ëÚš w8¸®7 ÂÝp:Ñp ¤¼Èe,W±m!•ÃîäÊ)¥ñà€ ÿ~õìåÛW7?Wù7§ýÖ^vãT(ìIrŽÄL¶ˆg|óI mÈ~W³šÒ‰ÚS@«ÊEU7-Ùžîßd¹ÚÔðM„.U¢—±]Úרò7,žìà±7›:#\XzÜO}ŠtoúئkÎ7ϘRÖKFÁž Îm^ZDÍëÃ,pfÉQÈg!Wä™Ã^cwùM@.i‚Òr ìh!Œÿ޽­B,_(Õ•}†’®­±Ï7¶q}ÉÈæ‡ûûŸšú±¥I¡îï5Ù¥ Q€¥ëÂàÌR;ª6t¼Ë&æò3fš² U§( ÖHe,È*é¤]U:`¼Õó522Y(9À÷R@ÁtÿàË:˷ǹ:ìŸHùˆ\Vk㽦sÚèLë«Ðr±Œ¾ÁÖ'²Œ¶® “@ë]09tvÆ’dÆÕªÃ{‘“b2 gÿÌRëñÆ‚n`Aë~pCŒÁb+íñÚJËÆÛ¼zói•øëàÀW¢U’¢Ž¸Ì„ØÜ¼¿»ùe•?ö×H!L ”îáû&­ü •Œï¡t ×ãAØ—2Ü”2oÅ·¼ìJö®+`ä0î×¹,ç<#œ”ÙJ ƒ æø Xãó¦Þn)%o5è¨Èª bK ÜFç—Æ°É‰P.˜t¬eMWi0ûÍìÒwTbT øÁ™]?Ê’,^²†Ö|u:)âfêљգ ; µ¡ã§&Y_®¸ßw³‘]P5ÛD뺑-uáv~Îy™›gTÎfkÎÆ¢RR%œ+ŠDÝ~XvÝ—ß]P:â°]‘J8˜\×ÀýIíÅæ³x”C9¼LÈXvB%OÅ„(['ŒòË0 ¹¢x~V»>”åC5£Z-±ÉWCÀ.P—<ÊJ6°êŒŠ¦ŸdSØÄ[ÙdyiDÈ‘§””@ðªèêªèÌ[\–,€¹dônr†–³¿œZ{¨/W–"Pµ²¢ÌdpgAŽã|ÙDºÈ+ÙAß²X’ø 6๫t—ª¤ÞÙ¥Êÿ ¸ ìB’ßP" `²• †´jI ¦V‡p ªÚùPè „t.Êâjðà)€;ð,<ÿ™ Ïå"bZ`ûVC,’€0e éâÑ }¯ØŒ×1j“©›§ çÞEfWìÃçéÚú“©CÙ+™câ:¡g½æÑ_[Î(ó_Z§Ïæyìís‡}ªeóã±qò„mÆV.š„>4-;3Ü ¨ é™Ý¾t"£êf%gñàm¶ZZXuÊv’a%2ñÉJÎW+é•=ahyGIÊ(r=ˆŒIXä¦U?,õQ?;4M6Ïy8›æ›÷Ƙ…Ó´ÑGac"òéF&Fi02gÓéjä—.Çí;¨–Zà+ÄE©}ÿÿò¬ÝÁ®Äw¸‡@F|•ëż;Ûÿ؃×F™œ\4y«Û®6Úào€g Ý4µýG[¡è:Ý X£Ã^}ÛH™-ªméa IΔ­èÖtõi™Óh–«©yÄ!R½…SA¤•©{¸¨×6rÛa›¥–BÊ=#Øxä‡kZZÎ{.5CTV ˜;V å—ŸåÑy§L'Mç–£ ÛqÔ§¹7µå¨Åž#iZôŸ‰ß±3ð`•£“UŠ UŽ´JP1ì°÷Ô”ªe·€àŒéZPí(•&pF/ˆ7Óu,»p‘ CÆq¸T–šÆ0s §ª6Ò ¸Sf4îû\UÔp·B¶K&¾ÖyÖw¢ÈŽÄôºá÷NéôäQ¶l|+³¼<Ë'µàÜâ"Ϙ×s‹‹¼Èá°Ï8vÃÓ]ÈSv“¦N\y24ÛFƒ¦ï6ãxI“Ý@)íq<ÜCýhÈV¶×ã1Ї£×RäU‹¿PÐdtBZ¾1 ²)[RMf\ è"`²»ªgƯ(&l?fÅžÖ˜Ùzª½MZD{2Þ)êšX'èQÇWûl2[ûRoÏÌ>¥ ËOö úWºô²&þöã(Ÿœþ嶉ӔPæ(é…¸ÓøizQןûçaሺM_"G*Jn;`SJû¦sû­a´:Íò,5ï‡3F2€l®:öU³`³ÕUçC®?ƒ{¾â|A8ƒû¾÷bò'ä½öŠqkÙ¢„ì]ÞS¨ìÈE¥úKàúŸ”2Ó œ”šQìÙûݰ.š­KQ?`aó‚•Eìr?õû~J5ü?ŠÅžkr*–{²0ä”áöâÖà)ôÓ4N´nC?r=7¬n/e‹M¿cA`W\ýØ•\ endstream endobj 384 0 obj [ 383 0 R 385 0 R ] endobj 382 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 384 0 R /Contents 386 0 R >> endobj 387 0 obj 3311 endobj 389 0 obj << /Type /Action /S /GoTo /D [388 0 R /XYZ 72.0 253.975 null] >> endobj 390 0 obj << /Type /Annot /Subtype /Link /Rect [ 282.54 599.388 330.59 608.388 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 389 0 R /H /I >> endobj 392 0 obj << /Type /Action /S /GoTo /D [382 0 R /XYZ 72.0 427.596 null] >> endobj 393 0 obj << /Type /Annot /Subtype /Link /Rect [ 127.26 546.012 355.85 555.012 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 392 0 R /H /I >> endobj 394 0 obj << /Type /Annot /Subtype /Link /Rect [ 75.33 501.324 286.16 510.324 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 395 0 obj << /Length 396 0 R /Filter /FlateDecode >> stream xœÅYÛŽÛF}Ÿ¯h`÷ÁÆÈ4ï8ñ OÖÆLq0h‘-©c^d6iYÙŸßSÝ$ui‰óæµÇ‡du×åTÕ©Öç¹øû‚>’Ìgyuóy¸ç±ÄgA<ÜŠbæ…Ž±Š ×+é­£ ¼Â‡y öÛM}ã²Ýüñ'Ì…ÀîÆ=_N ßß|8ÚŸž¸ß|—­o~|¸yù&bžËVy‘㺑뺞ÇR'ð3ú㳇ŠýñìnÿáÝí-û8¾ã³_•hÙ¯{^>ÿ“=üûæç‡ÓÏÿ?˜öAë`l¡€ûøIõ“Qèž>9BÄtÿpWo˜{¸cö¦GåÂáÓ(b.=æóªîÁ ÷ØŠSˆ|Óͯ£# pÇIOP¥W£ÿ]fE‘ö¾nŒküíŠí›žµ}ÍdÇVmS±n#X×lÙˆýB¶"ïšv¿`\1µiv5ãËæ‹XÈN–%ë•ÐbÁ dÈJ–B1Yë{…T]+—}'›ú£ïûŠç½|“«†¡“R&Æv&–r9Ê]0ËwÏ^WýrÒÛaÿ"íN*£2Wª¯  i7i4WŒ·bP\¶¬+Þ—+›œ“ú‹ëª‘ïÄn–¥QÙÚ¼ìUûRÖyÙâeµWŸ‡òqdAà;A@E( ŒÌííU{3ëu‡ ¡ÜñºCütLF«`‘j*ÁòÑ9xŸB‚ÖB$•ox½Càÿ±šW£W&$Vð&~ •²$±Õ{ñöª5¡—8aŠwá>[­J¾f¼£Í-§/§on›•VTå­Üvθ-Ò.¥—ϰ“xN˜x„ºdHoÇóöºW]SÉ¿e½ÖëÝ(÷ìN‡¤ªfÀ˜…NúØ(Í‚“ø Wa”dNâpÜÔ^F7ÊÙÌÀ›‘fèîabŸó²Ü³µ¨EË;~¹×&¾m9ømé.:a@›øÁ5·åU%ƒÈwØe·iúõ†o¥ä²¤ŠdEßsã3ñ ½ì¦×9_’0ÏK¶êëÜ\Ê5­jT7b¦“ôΔ©¥è:Ä ü( ´ò‹`œå,/QG¦Ši+ç¥gÊÜm°€…¡Õ©:tSvûøì^ˆ£|›ö‘e¹æÂµøÚ1%ô‚ç’QêD)$c¼lKÒÎ {¢¼ÓeÑ/æMKU Ü;ŸÛ6™ãQþ…i:"™ª¸,fJeè9YÆÁ…žPš9Y ? /ˆCqTö בZ‰ ¨WrÝ·|I=‰ d%×›n*“ÝNðOŽmZ”9©—ÀÏ^|Hâ•l„ã%Ù^ö(6¢3ý¤â_eÕW¬î«%À\¼ã¬ô+°,›€bÊkƒ‡=£ñƒN l)QØÚ Fj#J%v(æÔÑêsD8y8ð/ˆÞx Ãú ¨dÙÝ ÷/“Þo¤( …|Ôã½ðPi0uk{‡ý(vÔMÉ+¸¨QGµ‹p ì¡Gv×y+¸Â}Û^Zúd9 Fãë®iXÕç;h¾ níÂò±’“eȆ¦.Nƒ&M°Æþ¾*EÔùm#Š-/¹= Ú´®¶¼•ª©Q¡)AÕe‰‡šÙŠxñ©"Ÿ½‚õò h ©¯'€‚½­QÐP4þæ³²â.êQCâø‚FÏ ü9 ¸ƒƒÁâs¯ ¡¼¡F»Ø–<7µÕ¶×OOW'·2ÿ´'Wïd·™|üÂøØä‡Z0Ä«¶M_ѶMkTªø'l·k´ ´>d¤µ%JJ «tºç€ žÒ6[Ñ¢Øå—ÕB¾òŠcùR÷‡Z|AVŒ5ÅQ|åyw‹‘I–T Pgle@O”Q[àleZïs‡“#ÓÔÎ0²Õ ùCCsÚ Qkÿ ep"ÔälNEt­ ë%бQÎV)¦„‰1ùfCžÝR¢(©Y#m9¬­Ýo°0&Í´:mìb„F3jÙáÑ®i?‘Á0 UÉM_q Wth>Pµ°uKâ3Ý0CÀöŽï¯…¶Öt€7•(–5ßZ‰V¬•Bd÷¬ä-ˆÃø›ªP¨mÒôL#x¥î†ðP) ­›ºéªA”;—W2gس”†u+¦‹664µ©p¶é_Þõš­Q¤a®:aéÇΞ&Íåù„4ä½êDõb‡°Žá[0B4פ]'iš­ß“]šïLˆªÖÑ|quïØ!§Ú…VùçjûXÉú±eǯsad¾^$Âo/ÔÔ ÌdÁŽš^tU³V,{Àf† {è{Á@ªìmžbìẢëâ6µš¥@'ƒlc(Τ5  ˜p‚8Ìè„wºF>ü…ž³¸@}Al´S^£çm37$føðÂø‚2w¿£½ÿøæýãÝÛ_úùÝÃ×'Bv-äðÌ‹ ‰Fv"™±f ø@Õ9Ú"cðß1iRhm¨þÁ{†z, †`ÿ0£<õ«ëþˆ‘@Ó8léõ2BLY3âçG/¼³}%gB×Ý–$NšzYšFÃýÐ<} ßáÈãíž20¥Ùm ñ¶4ã+ ®³nöÂÔÉ<ÒÂK®j1S§PÊçä­#nЄF#ZôlüĪ}³f¿Öòë~(º¶¯1¿œîñ–Ö¯×l5HÓúa¥Ì:xt3ª~½_ïd½Ð„pL^=­ò¹Lõ7댶:È~눯b¦jEs jEáÔœ5áwØï£í#hs*j´D¦îOõ(§9×®F£/Œ©Æ¢1$0mFÞ¬Ùo²†¨ÒbE3¸óøŒÌ¸ÐNŠÐ]­<:+=,͇ëü£µÌ M ¦“‡ ;òÂÓ³—~‹¹PÌœ…A'SvEÉ]žì,I6'wìÍiÇ Hj i’dW˜eaž ™î¯Ndí3H:ŒžŽ£Žc»$8ÔÅ«ƒÎ d盂e' ,iEæ¯>~Ôg®··ß³¼`ÓIò±8GPËIâƒÞüždÉέ½~š" •Û¿,p¼Àa?ÑéÁA³ÿŒó",(Ž3Šá0Ò¸@ }xÇî»¶9DW7£ÒºiP8 ­¦ÈͨLû¯JV[â5”:§èp¤¯—­¨Ðá”F4Paε.¶”ÈÏt2‡b‡c°Jï9PW}ä¼n:D]³Ö²i>1šüÑDtÐDC•xu»(rýl(¯‡‰DwíÙàƒì9‘‡Ë󽦟ËG:fèÄ£o áH'¡!9ÇÌ`?r‚¥·`¾=”DY€v ŠÇjÇ4¶¶ÛW¯h/Ð ˜ ó¸-»È!ì'éea`…Ö£/•`òpÝ¿³ßA®bâ¨qÀ¼bÛ~‰D[gK£—Ÿšõߣo¸>Üü·9V endstream endobj 391 0 obj [ 390 0 R 393 0 R 394 0 R ] endobj 388 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 391 0 R /Contents 395 0 R >> endobj 396 0 obj 2590 endobj 398 0 obj << /Length 399 0 R /Filter /FlateDecode >> stream xœÅXYÛ8~÷¯ °/37[¢îÅîé$3éÁä;“Aƒ¶(›hn‘jÇûë·Š”|éÈìK6 ,E‹u|õUŸf.qàï ^¢„‘u1{jŸ¹$bÄ ÛGAH\Ÿ²€¤½HŽ_ݰî.ö#¸Ù’ϳræ_fü /SâÀ‚ý̹g/fÏöÇ7Îwßß!›ÙÝrvûs@\‡,³“‹Ü€:Nà8Žë’˜z,Á?Œ, òÇo‹¿ýôyö(£Œ|R¢&oyÙðüÇ?Éò×Ùëå…ižËþ¦}4:X[0à þEÔDýâEà;—oÎq|~zj6ôì3xb÷ÆWyÂöj±·Ö{µÃ9™áœ[q ‘ïºù8:"žÐø‘?ýïì²^qïqcœÀ—[AR‘ñ&×$—…ÔŠèú@tEà^n¸„o¸,•&<ÏI•½JŒ¯uU+²ßÊ\¥%¼\ YnÈVn¶D”U³¤Q"kr²—zKŠ $½º³þ;Ó‹9WŠ¥BÉM©hïKŸQÏÃl=ûå}FUó…1V ²jdž¢]æfuUU5õZª$œìr®³ª.À®Q7E^4ºZWe6GãˆàJ ÐrÏÖ[^nDkvë"©zjþ•Z eÊMSs-ak- ñw»îöç"\ÇÆ£±€ ¢ÐŠ ·AnnÐ7™yzcÔøgàtÒí:e¨ç…]¨Q%n,F;/µSëZî4¼ãÊ~ÐIzŒ'4‰ÐXÆ6ºÉFõr“†ø±Ç+I–ó ê€Ûë}E>ˆ:oUS¤ä…H _UÏbNà§®¥ µ>a¸×®öC?*JÞ¯žeÕ¨ü€"¥À 쮲ԢÞÕ~8¸‰:(- èÿJ…Šî«úq¨Óí"ˆ‚êò0gà®}µXBâ=ˆ¼ï6 1fu„°jv»ª»Fk\"5h¡_° ””ÉZiJÞðgü(­Ja¨Á¸ ò¥„G@ …€Ãû\>Šcôk.•õ›%†Éô6~ÀüöÂÀ*¶NaÝj€ Mœš’¸ÅìΤzÊÝåä&#]꟯r=êâ*»g«žQ\W 9ƒyЛ ëâ(¶"ÞUÚÚg2-nÊ6\­•áõÖ¯'ó{€ÛÚ ‚õ·9za@-´kb)dÇ*l`9:´õé”9–÷u-%_~0x‚&Æ }úá•xć”+€%×&¯Ïty% L8\ù*7¹Ô´è2• tª”~ù±³Z `¥ ô:‘O“øÊÚ BÁ¦ä®©%øß˜E^’îÉÁSQ«©h&À1!àÍe­¬{i¯Lèª.Ž)?(4êS)¿ަm²Úî¼µ;c.ññˆßÒÐWzÉ€&ÅÀ<ª»N­%§p7%hb’³JÏu¯ÖµVkAÊö—Ér7©U6J—´¤äÞ¢òÒ}ÜðÙ¸:̺@Â…¾h@þm£êÛV·Ûo¸Ówh”ÚâÀ4'{ _lv¶â`Ô”x+9¸óû®eÞ•‡R ›žê¤ÅZÍ#iõ<ùd>E> Q[æû[Û=Πq”,@‚¸ Š.,©Ø ¨ ÇôxÙ7ß ®ä…uŽU‹Æ©ïÅv¡ÛÒ걬ö¶€`Ý/ã^]‰ÿ¼åQBk:¦¬èèîXFƒ ½a«´‚OUվʶ;ØÛNÖ*ª}ä3èÓ ëbø6ºý×õøNL]°!ÜÖ†» ª4:öj²Ó#Žhb·úÒÞþœñáù>¼yýâÕëßwŸ~¿ýjA@#ìZ} Ȥ®ëÊxOAI[o…²½ DJéC>Ý»ûÀ¡ïBå`ûý+n ê„P“ ‚îËŽ¬•ÔéÔUׂL•[æR¹´/õà褦$! ç­d±Ë%ôÕvxè¬7-Vµ³šcôíxQõçºÈ½Ž š¿ƒ³¦ß.žP1hà&0•øAW<},žW#!xsÑ–¹ÏлTм¿„]rhõûcÃy;°‹‘ù2IÈÂvä¡ |hT¼(¹ìäj×çì*¥$|Š}¹Q¿ï¬ ¼ÜB|Õ¢T&ôPWJ¬šL9Y&×Ò0ÔŽ×úHdà …†®’×éiK›±&Ù#,õæ«ÊŽñÐÑYá XØé¬¯]_jg½O¸ÀY­ œÙ¦ž¯­j€ï6VÖ@ÈãÊp-´Æˆh;ÐÏ ¹Ù"k¨}…bçR!(ŽÕ¦„€ñ8¨wí9Ô0‡)µàm?*ñ+u6©üfeİqöUè˜õÝû‡ÅòÕý»åÛQxùÐJŒK²|:”é BŸüñTˆ±}Æ3–žÁll@U´@=G§2M*£T‹ü€›ìñPBwrÑÓã› åEáÄò~-Ý๪,@ÙF)¯pºÄŸ”knÌkÁÆŸ¹Ì¹É¼c·Â•««õÐqÀ·Ëúʰ«ìÔí8„H. HíyÝq?‹è¶jo mE]W¶ó‡;õî½m-›p0Î?£«ñèô±Ã7¸g÷u£Ú¼xñ¿½÷‹ùYŒS* û"Ìqé9†3œ›VÈxžÖQ, ƒJ×ÍZw§šæüøãì¿W†ÅW endstream endobj 397 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 398 0 R >> endobj 399 0 obj 2169 endobj 401 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 630.347 114.51 639.347 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 403 0 obj << /Length 404 0 R /Filter /FlateDecode >> stream xœÅYÛrÛF}×WÌ£]¢G¸_üæÈ±Ë[RGòº¶¢T †""cÑÜòÇïé ò“7N™À`.}9Ý}züõÌfþ¼¢Ÿ0vXº>ûÚÙ,t˜tC~Àl;>[³îÙgÍ=8ý~Ì$<¬Ø—³òÌbïÏþü 3faÁæÌ:ÜN/¾9û4:Ÿ¾X?ý|‹=œýr{vñÎg¶Ån—;Ù>·,ß²,Ûfw˜þsØíšýùâz{óéêüœ=¹Üáû¬DÍ®“²MŠ—±Ûýz»§šk;ÿÕ>iŒ.äpÿ‡\{}ïƒïYû_FˆÆw£ú@׌aÄœMŸŠÎ…ݯÄ<}ÌïQ=¬ÖX‹}ˆüÔã#t1£=T„þQïÿd“M¼Hgʸ̱xˆ`+„©!cÞíô‰9—¬‡{^²ÿȶf7%û½–ÿˆ´1ÏÈbžÃ]/„yüÐì÷¹bd¥Ü,X³Ê[ëˆa«D1Y[–å*m•ÙøÀT–ÿ´eÚä²d›¼Ya©`â[²® ÁªZ>ÔÉZa0i0u-†9F°‘8¾w N‘ß×I½åì–„IWIÕ ŒSù$j¥OQ¨ÛÊ–•BAö&yô›—©¬+Y'ÉŠ[2„y*cÅ'r„>÷"i%´·8j™×ª!«ÀÚtà*yÒe8KÑqE› Ö;žäªÀá¹Î÷âéë­úZœŸóÕQg9vpb=¹A$銭eÖÂêÚØ­ª×³e÷Q _'ŠGáÁ¾7X|Þ샙ÀoÁOp8Y³ÐæI %§ÚÂãÞáj@-°˜À»ôy˜‹!ûõ»ËÈÄJ•E©Ýö³×‡å¾FIQ‹$Ûš¼“ ÈRÊV òjÙ ~Ó´Y.L%[öðbßÙobƒ¿;9(¹cvº’R‰‘¶ìûÄ8ú@.Òç»ÖêMUyš/8{Ô»ªeû`Òÿ&ÿoRg$F`B£½Ð‰ñ–”V›iv<—Û¨t±w•àc™Š]ÚÝ‹-Ò|Áêüa…ø@t=£‘Õ«À,PDÚ6ˆ@A^!QndÑêŠõë·ªµ¨=¦Âøþ00#b¨É…2»Ö5‡j„, ¹!…)åƒPœÝ½ø²)w&…ꜩ*‘æË-{+îÛÿ! ‘($‚a/• Tšm ÈTª „T¨¯ã©î%Ê*jñ2hkíÅï^NF ÊVÇ–™…É?˜fÏ̓¿¥Š=Eû—;ì½()àéM–å$^>t©ÿm^ÃY²†Ñ^¯®ms Ù" @¦\¾¾»ûÝ luw§ƒm*=¢òPK3•]ʲԒ°Kpûî®+N F»w…x=²®csÏóVï”!§ó>#׃Ù.%Ìcl§Ùù›¹´e“W†aÈ#ƒÓ§ë¶hòW9$Y¤·WWÜÅõÛìLrÊ´H(×=Êì°‡ÎÞ™õ=<÷?w`²çêE1’LcÜÛóÃØ²uZ>a¾É<Jƒ½—ŠbЈßæEFQyªW(¦0ý¬vfþA¬z¾Ë]ª*^ÍHyùzF— 8ÔyÏG± B|€SŒçE85*´Ý8Š.{^\êŒ4³L[ÐPnÚîÛF§Ü Q–Á”²xª,Ùx=õ®zyˆ¿ØrNyw:ÏÇà¨e1’lÆ™„º‘÷ÞvD'…ðcð³d¿>ÎD©+²d‚Q´Á9ØFÉô´†žõhUýñgüày6Ø%â- ;®À9O DËAÒÙ0;A!Ðr-æˆçÄ~Vèeä:Š,¯o„@ý²|¹DI£ŠLDP¤ á c=TßÔ(ib»F#ÖtÐÌñ"à à’V=#ÂßÙQ‘]7<±©v¹Ì¿1¥{@Í+µ$:•äå 6aÝý-†ºœub«›YÙ6Úe sí¤èüA ®­]ƒ›m°r"ÏàkÛãöˆád—ØkäN÷êúldŽ'¥irÃ2Õñ§”8Òñ–2²õõˆ.¶“µ`BâOT65%á7Ùtý¥¢f^·3­<âzo»*iVʤ’{1@T´Çu?p =Ö¤>‡kÌ"ŠŽ£Æqàó¡…›œÚ=+Šã¨±Ü;Œ»ˆi ࣌º!‹öékÒ°/y™É¢bŠ6EÿâòêÃô¾OÑ ŠØ]µøEÀ†«&AHmd­éîCdzûsiœÞõUËøÆƒJÍbïÂD×píÊŽ³Î±Mls_ …þ4]u{®Îû‘z‘½¾Ç©çŠC?˜Ù¸w™*Ê—!Ö©-ºþF·¯†–€$î6g0L¦““BÎE±ãôÓFÉ>8áú(ã×hÕ)eWzè˜ÙÔ®9‚Å× —ãG'éùt^Ç*Çû´ÚqžÅ˜a^Êõó®0Ð&ë§j+ÊÙ=ã$].Ò¢î̇kÔ¯ãKO[_yt/„åÄlM›£wsûÙÝ×Þnè5ÀÃÐò§70ÑÞ쳜âáþ•ÿKöÊóÙ º´ì×I¹†‰ŸÖýÛ’X×¢#ÆÓ=’ÆÝ£¾ùžÅnF2ÌÎûÆ®/˜¸@ŒuC:§›ëû•a—þi<ûj;±Ë#ØÇöì9 L.Ê¢ƒÂr/ @Cf5ît×EÁpCËògfýÌ%æÁú€€óCwfùà„š²ÈÎ’ýS‚ÒÑ{a9ç&<×£uÓÐr}Z0âÂf5ò:¤a/RYSUÈPá£Ê“»WÍv¯ xs6~—£´üûW"¯Gï&‰Ž¾# Õøûvô²DI¡¤³IÆGµ÷t-4Òc9zÙ…É † uLò¡A ;Þþ(^Bƒd/Q0cýgñâÙt—k/¾?³~¬}w9¶Ñ­Íh‚šÂÁÀ]]·éj¸ëDö ËÜšxOš|Ÿà"iʧ¬LšE¹ÖWëD{ç$¬©[J¥Ú†(íH°±ù.‘Ò? ý ¯ëí endstream endobj 402 0 obj [ 401 0 R ] endobj 400 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 402 0 R /Contents 403 0 R >> endobj 404 0 obj 2539 endobj 406 0 obj << /Length 407 0 R /Filter /FlateDecode >> stream xœÅXÛrÛF}×Wt²/vBC¸P¼[eË’­-Ù‰-yíT˜Ú#.4Å]ï¿ï陡xÉì“Wv‰f¦§»çôé3ürä‘‹Ïøc˜ú”•G_ì;†>±}Åä…ŽQIö9¢‚g­=øË'|˜Ix˜Ò§£êÈ¥×G¿ýŽÁ1¹X0?r·ÍéÅWGï×öç÷›ïïÒäèåõÑñyDžK×·«y‘㺑뺞G‰ø)ÿøt]ÒoOÞ.®Þ_þø#ÝŽïøôQɆފªÅÓßéúïGgסžÿí½öÁÄÂîãÿÐѧ¾1…îæÈ"߯Þê óoÌÞVcÿôø¥ð•N뱤ײ’hóºP6ÕDlg•¸)$ñij‡LÎx‚Â@H·M]ê)¿JE£'ÇgoT6zª‡ÚúqàSÞNéêìMß'ßÝrjeߘÆÚÖJ—BÏ R7M“$4 /niQw4÷’DÑH1^ÐM—-ÙrÐ$Õ5’=›Éæ¶nJ”Õ嬭¤Fòô1‰ÛiÑÑçÕ„Ú©T’jã“C×SÙó% ¶|a›y+ó¼(H–yKJÞ#³†I€ÓMãÊnVŠ;³U­LÞÕ€æÓ<›’€ÃSÑ”…T ¯dE²~Ñ«ËËž3q´åÌœ“/øðŽO//hÖÔ“F”ÈF×Ú-تo‘8ˆqœu¹±ü×Vºª•˜È1[ã\äŠrž¹è¹1n¹aO‡é3 ªq=ÇâJµ¢àLžÇçiÊ߉cPyÇ}»Ö„3mÅÒB¿¤É £§þV6JçÔœ4cÄZÖoO/?PñP^aPàDgµÒ‡C’nm0Ιµu³ø ù”œÍÜ€µ’HåMÌ.ó*ªñZ–펫<¿ëíæÈÂÈGlab¶;¯í³%£Z(®fÞ®Ì'Ó–&9*DÕÞ:~#nj ¨ñ¼eà{O$p=ÇMP´qîp \¨/Ål挋bï‘ñð BžáJC’‚­qÓÞ÷·÷Ù4¯¤…ï8Wm“éŒbmÏÂß+ 7(Ô;hÆc$¯:ŸRµÊãã’08Ù›œÐœÈÃñ§®·ÃAG>ȽY ÃôÐZº«ô“„˜‡UQ™yíT´œ5§@Š£…Ó¢ZF§‹ÚÂx¡ZY®Ågp€ð³ºfuu[ä™eqa줞-²¾Oÿ (BÏ?dÂò9;ÒOvßœ=ι¨eÅÜÛ2”Ó_F^€ÃÔ¬ú¹Ê䪑,•âjcͪ›Íê©­g²ÚÀ•¡7üñ²émJãºâö±1™.µœ×wk˜n¹…¨›Ù ÿ‘+hUºj»q^€Ïhâïä¿1fŒÓ ý¤æ¶bÙf ¾>²0|ÿb6Ã9ëRØ‘¨ÔÛòèu ó ˆ.‡yþ/ÑŒ—©†¯ú­ k†ó ¤„Û¾y C(v/0æÑg5ôòIg ÛʸæÊ&³ìлV§¬¥ˆF>:;ˆ”ÞžŸ.@’jšlz\€˜úîÙ§FíòÊû^KÑ®¥6q[E=çxmÓ&´„6ϺB4Ì%λ³kMé¶ùžô·# ˜¦Àî!íÖŸgÕÛFŠpð6mG¾Z-W,uœf2{::UÇYќ̬â?4á_—]©Ì¸)%Ë›b»½³CÑá‚•‡¢¦(Øšà´ô5qð re,ùM#À:E~÷XnÎèi?QC´ð4v½0<˜§íiËfx™WwÈ×Wº¨fÝŠ›õ©Cß/DRp «U?Nú;ÍUÝAª ¢½çÇþ Z]RÉô{+P5Ìð}Ã;£Å4¦Z PQm¸#©»iÊN[KÇXVÙBW ÷!xž3Œbh—ÈBþÂ4A.&nM—u®+gÀ}B‰|üè«I!Úˆé¼]“«o»¢ÍŸ¡Á˜õú¨©´ú†Ñwɶ\úÐUm^ò™jìpÚDk˜·ªáZ~Ö ‚³R‡ çÞÍí4°ƒ¸QuÑiÝÿ¥Có+5‡`²­CWÒTÍYŠæŽEXß· ÚòMÇyõêi")×&\`¤ÐAÀY¼ËX¶"/v´¤ Š ¼Ø˜äš,ÁñsQéêRàýÅ~”¦‘“0Q{I°Ã˜||ßQ£Ñ½Òýc4šóMH-?ûŒIs¿pó†úâœÄÑp‡}í ä+ g¾ Õ2½«[©Ò:N¶ìhjQ1ƒ€Qæ.u#WŒÏºLXE‰JsK# páýr§zo¦üÞ'ÜÓ’d‡ V±üsü'B6VùÂ~A:5.N˜B»‡ýðòêÕ€~¾¢Ï:]LÐþ;nçP÷ñºW5zb®ÇÙ –…¸x¸­ WýÄÇWà¢nãa.jE/¶±(®2ãïlé¯CŸ$;@“©ú£S­†SYãaÂÝ1ÏØñ&ƒ½g·"Ó­· ß•ßu(IѺG¦ «©œë‘l]²NY’Ø2bŠNŠxÛFT ±ISUxSÖ OŸáÏ–u_%uRŒ¢ï_–B uÓ#Pf¯ß}¤][·u] • ½´ñõÙ)L"'¢ü½tÕ‡ƒ7 @óº)Æß™ï…˜u­x6×΢®ïôµþ£è~Ï¡œ¬Ÿ8ÑVæ#7pÒÈ¿.UÆ_ò*+º±¤çº8 ¦ë!áDžë^²ü–zšcôd‡¶ˆpÓˆ0Ý+nÿÝŸ†`z¨8ZV6~lžœ\¡ç ªI#%ëŠÑ“ï7ròýèéO}“Q¸›Tíøä$ã ùóçöøY ;,Å‘ãE|qJ“•¥F¶]S‘»cþ0ÚÊÏTe¤;JÊ왿AÁØFz€ÛbÇM]æ›h‡‰?-!0ãã÷ýå`îF\@|X.8ˆ§˜¿ÉõBœtb?ýüùüòÅë+:ù+=»8îTslv¬wù²¨3QlíÐ*1߼𨵷ÐËW+ó—k–UâújàpˆÕ äárõåÅK³¸°X[>eEŽØ·œ¦ˆòÏÚ8û|vúñúÅËË3¶3eX®}Ñýþè¿×E Ð endstream endobj 405 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 406 0 R >> endobj 407 0 obj 2432 endobj 409 0 obj << /Type /Annot /Subtype /Link /Rect [ 344.97 592.238 538.74 601.238 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 350 0 R /H /I >> endobj 411 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 580.238 110.88 589.238 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 350 0 R /H /I >> endobj 412 0 obj << /Type /Action /S /GoTo /D [405 0 R /XYZ 72.0 347.512 null] >> endobj 413 0 obj << /Type /Annot /Subtype /Link /Rect [ 90.05 322.305 245.53 331.305 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 412 0 R /H /I >> endobj 414 0 obj << /Type /Annot /Subtype /Link /Rect [ 90.05 107.092 245.53 116.092 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 412 0 R /H /I >> endobj 415 0 obj << /Length 416 0 R /Filter /FlateDecode >> stream xœÅYYsÔH~÷¯¨‡}`»¦TºyÆÃ²X›6†‰r«º[cšÞ_¿_VI}é0¼°ÆA·%åùeféó…Ãþ]ÑGK¶È/>w×JæÝ%?`ŽÇ¥ÏrÖ}÷YFO}‘ý7|؇ðeÍ~¿(.{uñÇŸ¸™0‚í…8ggˆo/Þɧ;â‡Ëluñâîâ—ß|æv·<¸Èñ¹¾ÂqXÄ]Ódw9ûãÉÍîöý›§OÙ—K.Ù‡ZWìF­Ê~ú“ÝýãâúîÄ4בÿÓÞ¬-p‰ß›¨ŸÜð=qzç(#ö×W@×^Ã+›ne]»O«ˆýjí±Ÿ“vˆƒâØŠÓù¡Â§³#tq…G'Y†“ÑÿÁ.D‘dÏþ‰5x.ä®ðaKXcT–=cûôäúãõËwÏ_¼¹þô“5ïˆÊ y(”ˆŒ,Õ"ÓªxÆz!‰}$]û ÃO•³«å¹ ö3/-ùˆ× "îŒ|Ï2º[kÖ?j8âÂ3ò†”?ÿöæù«ÛIY¾7C˲´Ð5S•fÛµÆÿp+—¬6ª®Û|Ó¤eî˶aË4Ãå"aÕ¬Y¡òŽ4SiÂðgïªò^Ýg;¦Ö + †GFâLH¬Oe¦uñIJÙ°¦j5[–Û•mÅê]ÝèüÒèQ—l›BãJnS(²X«b•+>ç‡û±BFáÁáM•.R 5Éh Ÿ CìqY"Ü aøæ×7¯_LÇÁqÅ59г7U¹ªT^³Bë„5%[é†Ý·iÖ0µRiïKÄ€Ô54Æ–zh»ãž { {ï+UÁôKv¯ª­õ^6¼`%•$oút°b^²çï^wÔ»ƒ­áY!OxRÒŒ¹8‘/½I7¹"äΞr 9{½¤4 Ä@¼IÏñf *VZ%pVçºË¡¤ÆŒ¬ž®9ÿ‹CÒ«,ßÕŸ³E–ê¢ùO5u6.ußÈaÃ(”Лœ<­‰ó8ß‹SeR‰8ÄQõsöéÉ­Öç°'CÉãlc®¸Õ *X^2„ÅýPS@öÉT 67mÖ¤}€†qúú±Ǿì°à !¸ygO»"ÒD„#t$ò‰‘èF¥YM)¼Ï«À•ÚdõÆGºãG<”ZØ5Ä·&×ô d¨Ê*Á´„¸íK‰ŒÅ'ò¸…ãÈ ‡RÁ)Å ñÀÒ|SV*šgÌB*n<èªf‹2Ë)‘ß—pͲ*sV¥«5¶ú §2½l. pÉBC–—7 œª ¨îµyÂÜ\éBa9{MŽrú«Ê7™¾Ü§G¢7ºHLœÌ¥^ÂPŸHžê3Gdþ^³a Âåh7àØ±<þ]¶,7èaV%‰M CP›ò‘ †!÷°|ÌRCE7CmÂʧ…K×GiN’_eEMË@Q1ÅññåŒXdÇ åUößi¡Q4Gjúؤ\W`€ö8®7nn>ÝWd0Gjæ˜E™çeÁ»Ãê¦Mvl]n‡©DÍá„~wM­³%µë£.z2·ç…¢hš¹0'¥ C#ªíD£ó6S ÕKa7€óh™ ŽSXí¨ì¶eD"¤Û®wl«ÙZ}ÑÄ:±³ÂtÇ.pðd8"âQ\Šç¨ç*=3‘âñÐ=?ÛʘHÓ¾ãc²mS»%ìžÎ)x˜æ6¦ÂzÐ4÷ÖÓ™…±p† ¸ "^ CêEg=PÛo·¡Ë,3µªm;¥‹Aü ð ³6 ¼£4¢œÚ–ÕKí¼Öß&T4IÐu' ù›L-t‰ZÄP±€j܃n®ß+–çˆ&g/·ú‹®.-¨oTÕ¤ ¤m57 à(Îdåsïäé1*væèÉÆÃ¶øìÕ??à¯c^ž‰­,ª1*O”5þTUªvÖc»iÚ9áŽ–š¥‹´Éväê=ÕPÈHt® Û;pp=Ÿw3|Ç-æ.gooÙÇ#b Ù9]èrG` "÷[T1¶é™oŒj žïFÇéÀÐNDƒOìP?šBqh†áºÁÚ,eU»Ø}|9ާø´Fa4B¿EeG` ÷¶¯¹~È|(Êmw¢ÒÚe©÷( ‘azNÀèGA¿”$1‹ ÐÐTéÆHj7='{¦q˜2…¬-ì Ã’]¡r8™ð_­úý†@N3­js0bPc¸x2:ÓgQn:ü5]!5“3q¶¨¦¿êEÛX@ìž2@Œ: ðÍÚT.:Y–ÍÍ€wh£ö¢hD,™nÔðá %0±BßÊ­E¶…Q€pw5ð¼(­¾t€„é+mNN¦ ½1 ð¡H‘µÊð\a– Ì$zf$‘!оk²ÿuýüכ뫵¸z{{õ‘7_§·~—¦íINf_>¬ÊC³ç”àè¼å`}P:>'zÚŸ0í.iÙg¿9äz±ëq×ö¬²@g¤.µçÕ´ÔS¡ÞÈ ¬{ªÉ´‰k†%ÃÑèÉLPø,º¡£òX„@Ÿ;Cø¸(“iÜÌ—weìñºrmû_Q7 qn{2~±9P ¤(· K9õÇÇ"3²ÃÿBÞQN ©*–뺦jìVG2p„ïºgŠäˆ#'KQ·×i*\ëlCdzv~¼Uø4_¡PdÏ8æg7iñê÷YgúH6 +Œ¿½QŽà¡Æa ÂoêC‚ïjCòïêCòïl# Ôf“ÆZÓPV×M³Ó`ˆlÄ*-D†#¼gÇšfh™Pë,ãŒvLsÌn·lSƒd ¤<#OÒåé¬YÒî³{GCEbz(­½æ}CòW‹2žÛ‘±NÐ E>I:ðpÂî `HÿlÿÚëóñK*Ǽ¢ \cÕ#–Ó{¨ÃŸö]U÷v-8OoÏÁ~ëÆQ,ƒáÑwtò4²‹"xB¢’Å0qÒeÆ ÛÈ‘>Ô3O\wÊÛ îyˆµô¼1`;z†|ÊDb‰ÛÏÝC&yè _wÇç¤e»ZCa•Õvö)(µ^–EÔ+«_^ò£×ï/þû-¹ endstream endobj 410 0 obj [ 409 0 R 411 0 R 413 0 R 414 0 R ] endobj 408 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 410 0 R /Contents 415 0 R >> endobj 416 0 obj 2551 endobj 418 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 367.284 95.88 376.284 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 412 0 R /H /I >> endobj 420 0 obj << /Length 421 0 R /Filter /FlateDecode >> stream xœÅXÛnÛF}×W Š>$ˆ³âýb ±¬¤.ì\jIQÅŠ\I¬I.³KZÐïÌ’²-R¢ßÒİèåÎýÌ™±¿Ml°ðÿkúc’bò­;³!tÀ º#?ÛcŽtÏ>ätëɃ³{Âö>¬áˤœXðnòç_ø2 6«¯Î_O>=±Oo¬nß‚Õäìf2}ëƒmÁÍò1E¶Ï,Ë·,˶!b®Ó?n øóÅÕöúÓå«Wpï2‡9ðY W¼lxþò/¸ùm2¿Ù ͵ÿ!´OƇ6*¸ƒ_!3Uß{á{Öþ›'ˆx8<5Ýö OZÛô*ïJØ}¶Ž´m<íçÑ8¬Ç0¬§QìCä‡?ŽŽÐÅí¡"ŒŽVÿ§lPE²ýLŒxö÷¢A0Ûò)¿åú×ùå%œþ?ß¾˜}¸ºþ8ŸÝ¾lÃ{"e‡Ì5baÐ5ÆØŸ_üN¢?%§ÓJ®/àm– =5}Ó~‡™,K‘ÔRÁ fÿ4PŽÐó­Ðïò;ûúõíå›wפûõ:ö`íöå4+“¼I¾@«]îªÝ…¤Úv¢Võåù£æËžæ<[àá­x0½ÊÊw_z½Å”Èqwz//ÎZµy±ÕßòÝgU „ý¨­AÇ­ðüë|öùæÍÙ圬EžËPˆ¥$¡ lexžŸRÍe”-Žzn&¹àå) ëkÅè&ʉìö&¤"?¬ÿ@“ ¡JM…]¦ßËZ@½æ5\Ü:Žs/ Ñ"…ŽpÐh‹Bú´¡7G­Ç6 ûîIÈJ] ž‚\7n»>‹,Â71Ï@‡*Ž·=,LDÖ£#Ö1 Lâ¡æj%jíaÅu}˜!|IOkNÆ}S®ç0Ml9‡LüNuÓ ‚1YXc‚´,,›²Ü‚j°‹‡(AöåøB65lÖÃQÈ¢àeªMÐ&ÔVld“§Ðþ\Â&«×Ç£t<›Y XÔk&¾Ó Cf…x?ðÃÒ€,4nÞE¶b¡çPé¨}×wÆÄ±ô𒢆¤QJ”u¾5™)¶Ã|û^Ož°ŒÏëL–è1µ„T/·õ:+W°À’`¯ÑŽüºŸË¬c‚Å™bÉ›ñK†MÇ| _ 'G.^Øÿ³íjƒÈèbéÉ0`Dé¾þÍ:KÖP)yŸ¥¤£!.‹ h¬ð€–gB‹c¤j~œ¬Ca7ëLƒø^å}7»Ì”ƶÍJ±kð%νhÝ•÷B)ã/½éÒšˆýôyVÄ<š³¶på9ôy¾5&~ á4VöîTˆH„2‘¥Î>Ë‹‰Ḛx¢¤Ö€Ù¨—R1½„­là®ÀÊÒêñ}×ýÕÔ5R…IÆ Ý¤^H‡ŽÅ}ŠB ,ø]Ûpôý#d´uφ‹…Ýï¿n(™YDýƒn¸BêË9z¤wŬ8 MÐso‰™Î° ÷"—UAY¡²cÞ½ÿ\ÃWÐ[­öÓø>éÇ,Ž;Æ*Ÿ6ZMY9]•Íxá}L_Wró· A%%¡Ê’»=@()‡ìÆAO«);É)¹Á(¿ !ëŠ'‚H¹&Êo‰€®YÄÒL™e`Ëžü!èÓä?yþl endstream endobj 419 0 obj [ 418 0 R ] endobj 417 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 419 0 R /Contents 420 0 R >> endobj 421 0 obj 1838 endobj 423 0 obj << /Length 424 0 R /Filter /FlateDecode >> stream xœÅY[ÛÆ~ׯ˜æ)©v8¼»èCj´… ‰í ÚÂ6#q$1&94/+«¿>ß™!µ’xñ¢®mxµCžûwn£Ï+—qüý‘~D‰`Ûbõ¹?sY$˜öGAÈ\ß+Xÿ9`9½uñA Ÿðþ„ö¯U¹âì«÷ñ0eÇ¿egˆß­Þ\ȧ'ü›Ëçl¿úëÝêO˜ËÙÝîÑEnàppÎ]—ÅŽ'ú#Ø]ÁÞÿúôîÍ«gÏØƒçG°_U³×²ìdþÃGv÷ÏÕßî®Ló\ñ0íÑÁÚBø9&êWŸ_?¹@ÄùüñÔôìN¬lz”÷!ìZEìGký9k4ƒ_Zq ‘o*|‘‡'¾BE”ÌFÿ»lE’}6Æc‚;’ýÒ ¼á0à½ÞÈ^–[]T²Í6¹b¯²M-ë{qå^5ÖÚ çpæ{N‚—E–×Ý!kØö «©’êmW¨²mX{ÐbyÏwkù²&+· ÏS•Æ!|âDNÂj•+ÙÐÙ²M­ä'¦ÊôÇŽÒ¯ªõ¾–Eã°ÿèŽmeiµ»Ð)ntJ³=XA¯¦ív;¦»–ék |¥÷k¶ÁéÕÛAûZºVL—L}©r™•Y¹g²LÙo]Óf»ýJt;¹U0Œ•ÜFJ…ÑRÖkvô‘µšln;é®f[*¶QíQ©’D_8öAÕ 84ÎH~$?Ib¿—ÿÎø¾ê`›LÓŒ7+õàòÁÓë>zCÔ$H`zžŸã«R蚟XV^»ÐãèDLEöŒnâ$žÅP~4ºûé——O€ŸëûNyœGâ~ƒá·ƒaÇ®+Í|,ŒJÉm.ò·ÛQÁ¼Zú¬ª{«S²M–øÿ"MŽò4v4rôZ¥—;¶Þ¬³¢Ô#çVkz‡É©ù (æö1k4©J(ƒWŒðÎ^µ 7oC-’Ü!ñÆJ…ñµR]©Á®6€í3a¾Á žïø·žO'rQ1T‘Ê]—/DK ÖQ&^biÞö~ˆ’["µ×#ØÄÞ¹>>®+…ÜÐõû¾ÿðìx×K¬ô¨s- õe«*[ t‰Äšì¿ê¾=UÈW F¥³:ÃPÏÒ4×úSWÝoN÷¥,Ô²¶"œàBÁBô²ÔVÍBxM·i¶u…7'¤e˜âØ?c]æY{¢úJ‰“-ª, bÓÚÖjÀl„Ê~-¼P²ìs„dÏš¢CEð3÷à .µ>¾ÿn—©<ýîã¼õž°<|Mð`Í©lå”*–k(_³£®?569T ,SŽ%KuœWÔ@ß(˜Òô:Z³ºú<\âÒš±Ñ¥®ßÌʦU2WÅN "äç´!•Rcâ^•„ü64T¾_~~÷òßp8¨~µ.æÝ D@ì{gdkó9¯òn¾‹\”ðå}ÌP;/=‰®â(J¦¥'’_ÍJ÷‚EËeÌã# I\á^–±d¡ŒaEp0ë%q,âÿ¡ŒÉ±c¼éT}z¬eY.a¸ÄÎÖ(ÂF”˜ú•¡· ΀Ä17£ÙBè—hŠ“i®­N¶éé óÚK[wÛ–T³°_³l7B¾ç»7)ÃKEÐ×–UèϤ"H /”{ 7¿aøJüÑys×K.Û˜Xjcx}.à.`6L#JÑζñ#*¡1Q(dI¶c¾è'ŽçL²æ ë–ÌXÃ[èÃr!R¦(Ÿ°.ÂxB 4™ù,ñ‚%RÛÖ†rj´Ysò˜pcV¯)_—Tñƒh‰~\}î/8¼Äˆ|ž©Œ7au::9êVö ò‰AÍÈ"”‰EÛrý ÓWs*6:o0ŠÑÐņ šyûévÖ/nS.„I0ÁýkuLðh‰ÜšTaË0gfª|b£ \'F‹oV±gÏœÃB –°XÕ2ŒRcO{ñ Å ¶ÎA7¯xà9íÝ´´Œ™ômÉ9Ì+h¾Ÿ'ìL¨ÊrÏ ={mAz CÎMH·n3ƒ ÞôkÑSt¨%¦ÏçzƒÑ팇! Æ®øëâ^öåî\ˆÍÂP› Àq”5í¶Í ´Šs;9Ùýd:‹ÍÇ,&éyš©¯~9!ëAÐ×Wáp‡_‰’€#fqŒi3°!y¡Ë²_éLá6Ñ…3•ñ¡«c$æ#=~ÿQäóç[líºO7_Ù/âã¹…zA | ß‘¦µ®¾&Rwžvض«Q²êÎÜ^ ¹luâ;Ф}ˆNµ“ycJ›é{ƒ¨pTÀîŒ\? F¢¾ÌÏÞÅaÈþÀh[¿0Å‚2åâ½~6à3× r·Cl..CzÄš–k·7{›‘5{úÄH„®„õÜ @®T½7ŒÞó5ëbý“_â °Êï·ö`9ÎX1ÎëИçò|M×ÜncÒ }’øÈs¸ß÷ë1‹5æÄ QX Q ìmÙÎŒœ•¬á¬– Oªv²ËÛõ„Áþš#eÍpÓw‰y¡JY=Å>dîãh4fÑopkšÌ²8éÀÒlÛÀ!màê|¥Hó“É3 ×óÞ=a;mN· 7 ó+]ÎeýºÝÜ ¡ Æšr¿P[°VY¯PØGRž=Ì÷çYmÌgþÚÊÞJ-ÌžFƒÏ§¼ðUÕhŒ\`1NúÓ×;<‰½8YJúñ{oU•£å.-x‰Ñ%@Âã ú›¬OﵩP˨LÀÒEÃÈ`iÔå±O`{v³1@ö)jx˜ æ™ 7(ÞYS˜¦á"ùŒ`t¿‚ß°1yƒJ±>ß9÷ø67TÃMÖ5Ξ4ù Zï,~ã ¹—qùÙøbÞQ¸Ä‰©²+ú{˜™wª™¨t¡'nÈäÖ\5JÛ¥ûŽmè©ÚÐy¡oÝêL•†Û©lpÜVa”“õÞ\x3ºªtØ[µ—u:|A‘Ë•x½4…¾£àSÑÇÄ“þã̺O€¨ÿxVÑ~á²Qv 5ãgc¾R!gÐæu¬eE6ѽ¬Ñ߬bì}3pñõÛ›Õï&Ñç“ endstream endobj 422 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 423 0 R >> endobj 424 0 obj 2357 endobj 426 0 obj << /Length 427 0 R /Filter /FlateDecode >> stream xœÅZ[“Û¶~ß_Çd¢¥Iðî>Ù®Ýq'±c{;NœÉ@"´bM‘2A­¬üú~ u!Aìú%3#‰Â¹à\¿s´_oæãß-½¤9g«íÍ×þYÀRΤ',ˆ<³-ëßǬ¢Soøð/æÞlØ¿oêŸýãæ·ßñeÁ|nü1;MüéæÃ…|úÆÿËåûìþæåÝͳ71 |v·>›(ˆ=ß}ß–y!Ïé?Îî¶ì·~9~úðóO?±‡ÐãgÿR²e¿ˆz/ªgwÿ¼y}wuµ0àÿ‡«}Ð:˜»Ã9þO=íõ«/âÈ¿þæ""NÏÏOµÀÐ<Ã#›¾ªzö¯FóÖÜǼÎÞÃ?_ÿ¼Åuˆü¥Âç£# ñÄË®¢"óg½ÿ›lâE’íuáë}½êʦfÛ£úZÝ6;ú ¬ÛH&V"=ˆj/ÙR–õ=Û5eÝÉ‚u [5ûªÀc&ê#kÖLÉÙâxwÜIå±»M©X-l+WQ—jËJeìv©÷G íÚf'Ûê¨ùÜ*±–ž¡zö®àW÷ñY{iÀ‘»™¡~ým%õn[Y Ò”„ßK5ð˜ØÄgIî%œx$±aò™óxªé䨫J(%XçcÖ‡û¦dM]KmóYßJ¹˜ø©âÃ^¶Çy1¡•È%Æ~¥Rí«n^Nš}¯œ,œ‘ƒ<+‡¹]ލ‹yY< ¼(BýçQdÙæåŹƒ’ÕͲ-$[·Í–½×)ªSŒ*vØ”« »ÇKjdÁˆ#rRI¶êÃN ·[d.ed»+ˆiZV”J,+ÊUy’ã±·5EQÒ'˜£Ú6ªÃKEyK™ŽŒ»ÝÊnÓgªÛ©Fy8Òè,l]‰{ÜG¶’µrÛ<È‚J8·r-Û‰ØóŸÓ‘á&æ‚Íò¿È…r¡ËL+‘ÇpáTÀGú”µêD Kô÷¢úó®¹0¸6^/ŠáìêË¢w‚Ñ v½VIÔó‘ƱGâý€s‹2S;žA:¢Wû¥QW(V50^ImGà^”¡”¦YbáwiG®F^”ãNq”[x°“…á²fj…jí±ÿ4{¶µþV ]Š­y»E¡âJ‹ˆÞœýðù‡Ï?:MÇ)÷‚<ü¾‰hÇû(8‡Ô‚-÷+×ì}›Mæ êŽÎlÿ£µÉí®iE[VÇ+;4Ž êHш轗½kå­¬‰ÂS³i½QŒBµ8ôü$Íó0H\Íezî­‰QäÏCÙìCsUÔ§q§•R“n. B·Sû´§Æ×ôáwÐúˆiÜ}^ þ´Ôxd¤d7Pª…dÌ W'½–« 2ØQÐvÔÿ©*èlkè2e‹n\VE+k*P¥„Kzw} ”µù¸És/'°À“̢ݓ+<ßJ;”ÝæÒVÆ»…éÐ!¥¾@Á²»,K޾s/H m¤©îÖÌ3§È 䊅¸è…»„<ÓÈ5Kâï× ŒÄ½h"ªaqÑ7l‘”å#ò!Û†&ÑàÃV‡ƒŽ›¢,jJ¼¬w;I…E·«•з¡ˆƒÔF‡òF

±ÇÔ/0WL…>©_„¨ßl4Ù·ÒTL¼šüª)àwÑmH]‹ ø8»é6ä`xþ.›Öc/ð¾#›kK(#ãд_®]ˆÇâ¡)Q<$ ¢ÎôÁ:(iR½yàá¥ÈGõžž{AÁºW`ß°C¸ˆ”12t9ÙûŒé†Á,V¢«"¼ôél:ª,Ú$þH]öµÑÖIJ¬ÊîH¶;HYŸžSHt4S2 ©D‡dUnËš ´ÇÞÀŽCÛXuuGà<|¥ºÑ¿°è•ò‰^ŽêÅ#Œv4†…ô¥(Üõ é€Í¦ä7¥â%z­R·KáéšxêE¸‡Ibá® áœÄlWí Ý÷xù1UÂ(ò2m¦ÜÂìÏ;áS˜ùr½Dçrl³ØJ‹_³hâWŠ€¡qÎ랤gü<åò¨îºè "M¶M+ûqiÁT3‰Và@4¶A¯)Î)y‘„ïšz*,È“q|Û]%‡¤t!S–²ßGèOºTÍ#­f9jF -hDéKÊT“Т+ðg<ˆËéÑÍâZÀ¡éÛn-û%ÖvÁdI¸oZ!Ã0ðr*ÿAäÄ·Ós¯¶®ÀŽ}ù>(¦ä0€Îÿw¯dáù ‰Ã'â©…ÏeÉk ïû^4@Ï)T#­Æ«f_ÏïAxš¹˜[ÑY«îXép3hû¬"™ÌÒ§hüC[æöÂäÜ‹¢€ ¾Vì ¢ßˆRÃß¿¿ü$«ëG¯ëâýÚ,}ÔÕ§O’üܬ¾ G±=ø×z¼×hò]Ó½­nDUþ)‹q7Ò½†Z}ƒYˆ 4ï°MnŸÈ{´}¯b´Ÿ,÷ =U„ƒÎ( ~APdö4þè©’vº¼Xºs˜æ#^¸ßWÒ÷•«=Ý×ccJX0x5\Q„Ü¢)àCÄ–lÍ:ñ…Š˜kÉb/…P?OS‹ ª+ž??™{¾Y$¹‹‹¹·@w¸VÍrÿ<‘­šºeM7°ÀÆpYS4ÑpHæ…ã\º2–ÇÞSÚJ%Ceê¡y\ëqQ*%ð[Ò·€]´}¼¡§ÔáÓ0` s1“ö¥5æ²4¸Âìbë—S/¬#L–IúÌwn¬§çÞÖ“…‚r¬aÑ×|ÂY”Z˜=eÞŽmz¦ z襃Ÿ¼^d* ÍJ´ÚÁÚ(Ž—Àn’S͸Nb½úÑÅÆ€ ³í°˜:‰FÄt™º¸¬³wÈÉ„ŠÇFìð'±Ù^¡2ý C` ýRcÊ•"Nv/Ê¥ÅÐÔÅíž~ôÔãŽö9¡¡ŒÅ i2’/Ök0„ åÑÈ2Ñ=ma1lE€r‘3¦§ç^t×k6¬0Ð(½—ÀœX¢m å‚¡™ÁHªNi™2¬ö«•DÌ-|ëQ~#g½GJJ…yäá“s#µÑõkã6‡HØ9é'ˆ)“þnìŒ!ÑÁbÀÎ0Š6ƒêt‚êÕײiª~Í¢ë$M³ôÛ–ª’f÷ÑöàÀâ@Ìuײ–R/B´õKIÓ±^w#êî ©·Íþ~óÈâq—ÕTÀœÁC'‡Þ-{å®F<=@ S6T#î$Öà„á{ßRðÂà;ãF× Ni®³›,ö{KBƹ羬:Á”3Y0¡pß7²‘\ìF”IÞy‘AìÅôó›Ÿs 'iÌwRlçÓ K½8¤ñ—ç6m†4ÜP3ðhÏ›'y<§‡3Q& C/5ãl`aä‚1¦ß< Щ³Ó|EøÌüdúdh‘`€Ì2Ž0ô#çá“sß5ÏÙÈIÏçÏõŸ!üaʇ»€eü<×Mù9§¹ =ý'?!úÔ”¶‡§hÀ1øò5Ms›4À÷•¼X ø½”zo-÷]+ªiÖ%!÷BžÁíCÖÎØrî£ùÕÕiÿ,¤èÊB+¹±¿lÖn³Óo ól“QV­Ð»ªW…æ\™wêhÅ¥K Õj¼Ï^±¿¾e£¿D"–ÕxE#‰Ÿ¤t7‡Ùk[È4ˆÂÙûfá¹MN©ÝY@û©~ž£uc»88¡g‹ìÍé½·ê­`þzÆlxl4°Ñû®Z—1Ñ÷ftÞÅß1}¸ù»Ìz endstream endobj 425 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 426 0 R >> endobj 427 0 obj 2946 endobj 429 0 obj << /Length 430 0 R /Filter /FlateDecode >> stream xœÅY[ÔÈ~ï_QBŠ™¦b—ï“Ý<°É"¢!ÉÀlPÄ ävWO׎o¸ìiüïó²ûê (Ýc×¹çVóea3 _ÒG –d‹/ý3›‚9~ÿÈó™ír᱌õß=–Ò©“/bÿ Ý!|Ù²‹|a±×‹ŸðrÍ,ìÖ%;Cü~q{"ŸÞX?\¾Å¯îúÕc¶Åî6GÙ·,ϲ,Ûf!wDD»ËØÇçoÛ÷·7WWìÉá‚ ö›–{çMœ¾øÄîþ¾øÛÝ™iŽ-þ¦Ý:[(àÿn¢~öÂs­ó7'ˆ85îžt²éUÚ‡°ÿìé¾vötŸ“vXG3¬S+Î!òC…O£#pð„‡g¨íÉèÿ`— ¢H²Æ@uqfŒE¶߃)AÔÙò®Ø±$µfÉ6ΤîLñ„Ň»¡K‰âwÄ÷BxÝùc6{'³âI®Ž;%Ó5ËãLâ'—mŠ*cņí¥Fƒìtî”BŒp.v×׆åçTéúþùý‹Iý…ÍpâìMÍv±fe¡ò:•Zó Ë@>NEa4°Lóè;­_8<Ït³ÒI¥ÊZålWTšeE%Yª%{²yÀ£kVä’%q~<Ìâi‡ /äÁ9 FÎ*ø3”l§ê-ëº"]ïŸKþÀ§Õp<(ox‰fU±ûø,kMdŸ}šÔÈu¼&÷/–¬¨†øô˃æ9Càå*ü·t|I ^˜‘ê޴ʶy@ èzöøþÅŒXJ+©ïŒÈM‹â±)?¯ÚÏ&¹æ3Á™ad² êR–³W2‰-g)VžÉªƒÈÖ´7ß›!fJ³8[©‡¦h4¢‚ÖZ4ézÑк Ì$ÂYo%Û¨J×ÌàˆÀÀVÍ›4íòÁ® pÍqõ¯ú#atÈ0ÈÎQ§ó(ô ª[Q4TÀ¦x¾ 9(HÓ–l·UÉÖ$6Å–5%0Úv¶ ]LžÓ¯Zày-¿ò½ü±n`û<!TpûyGéD¦iœKòø·;‚íZÜvgߊæZÂðÜãä²ÐZ­R¹d1B²VT¡Aqk¦—ÀÓuKß {Të~Ò­·¨»#ùr}ô¦ÚËuÅÜórËí~idÕ²Ÿ~bÏÖ2•µì*jÖÖ1zðOéÜO?ÿÁºÎÚ§8mä³?ŽU¦8Œ€~tš—q¥Íì5B"•´ÚðŒd-74êv’>±Ÿ™.2ùÙü8“›M&ùÞ©I\~• Úæ‰äñÎó8eYžß¯²œs8“DÂÅ(`Çå‚\>ïÞf7ã ôÿàÞ1·Fç ìßéU×òxHu"{Ô!GoλÆÅ\n¡:Ú"êg¡»Ãø˜u®ÊR¢,®Pž´©9]Œ$fµÌÊ4†½ .j%Í–™$˜*¡~Mg«qßí*ñP‹[by} Q39;ÇUÞPî¨êÐ{èDLgçD‹&c´zZÑ»G»&~ ó1$Ti9`mÖx=»Ç (Ò-›oÈ;ÁïÌ~,f8ÌTb3„}d^0m8Óô4÷MÇÖE¾Ò†*üp„¶ÑßÌ’³:~<Ĥ2¹;© ¢Œy÷œþýíÍ{³­O*à¹#dG€cþ¦,)› ƒ¼œ¿ÇÁvç¢TXŽïðü˜‚f8Ðd cjÁÜ<³ó¨¶.ËðV•éH>`?gN‰mÖ7§kå±$€ßÉÞh6 ÊAâ%–†¨¢Zw+çï ÆÆMk˜5ëΪûêrif™©m@œ@ UÃ0üˆM×ôHsqD2Æt×UGŠZ%á¤î¼Òý¢RI¸¯Å†L7u½ÿÌ5ݱ¤Åf0äìÊŸZch«‡J†—5(‹÷=¼s³Km1i»ÄnW›iš6]³Ra7Âx³Û¶°1J’BÞ£õwÛT(±ð`%MævlÍÍ¢Œë¦2׊#Ww¶ÅL¶ìëâó7y¢ÖóLJZœªG7  ÛP+Y“õº)Ë¢ª ¾^ÝüóZCÚd¹æÇ$‡<Œsž Ósœ†F²Õómî¡\ßÞOCyŽ +ßõµ–õ碤ï³õÃvÝFptšv·àc ˜x³Ž-SY&× p$ßœt]¬Ì]d“cíºë\Øï7]¨:I{Qt½“ÔÁ¢‰)Aé-]:™Á¯ÞÆ„ÈTÑrߥ]‘®Á # ‚ÿÍ],@åÛ:•—×"Ð3ʹ>òk"…XóÑаÎôÃÆ0‰Å¢ƒÝb±‡äÝ$ò› 2'¯)#ê}#¤ù€³ÿÐJã@³«âÒ¼ê웋s\hø± Ä­ -é½493]QK#—®0 !6§Pë¡qÔåDy_XØ(C°‰œ“uê´*N*îÑÍ/4pܽ¶2ïÚrF¦íÌr製ß?åWJrk(êÆî¦=,þtþdãï~ƒ‚’½V|•¶CO9âB¦áýo¥öËÕ5ð·*ýaÙÝ7™™sWô…™®-i†´ú;0“4©ÊM¢[®ý…Е½Î¦jÒh0,оë^(ug¬!ëÌåhÝzÓ–l[ìäSßÊà+êoÝ-iwpFvð?ù%Ùíâ¿GÅ×Ç endstream endobj 428 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 429 0 R >> endobj 430 0 obj 2462 endobj 432 0 obj << /Length 433 0 R /Filter /FlateDecode >> stream xœÅZYsÛF~ׯ˜Ç¸"ØÁí7Ù-oùˆCm¥²qJ5$‡" 1Éʯ߯g@ñdöÁkÙ& @÷ôñõI}½à,ÄÏsúÈ Á닯ý=Î2Á¢´¿•¤ŒÇHØšõ× «è­½ ±½Â‡{ ·ì׋ú"dÿ¼øý<\²á1;K<»ø¼w>= ¿ûù!»¹x}uñâ ã!»ZíLÄ“ “0 9gy‰‚þvµf¿ÿðáqöùý?²û(`ÿÖªedÝÉêÙìê_?]¨qñPí³•ÁéBø›Öë’8<|²‡ˆ§û»»öÀÈÝÃw6=ªzöŸNwéôqŸ£z„;5Â}-!ò]GGáN "£ÞÿÎ&ó¼Hg?)‘8ñ:xQ/w;m€í0F–FQDY&qä(ÞTRkV˵b‹[Yß(½¥ö̲ ¢æ½õfê^µ²b â¢tÏbiùiVÖÌÜ–šµªRR«—Žó¿ò‹â½4_„H¶ç^p¼iª·ÒÈQ™áÓ0ˆT7lô < ¢œ0>õÌ´e}3z çÅqà™€‡pkEŽ”u– |Š]U•úu%ë»Q¹²t€ð¤%x˜í´>øÝ‰ƒyM±Ø—>6F)@ Ü”pÚ2K™‰8 ’ˆx‰!fïF¥ ?aBíKñ囕벒í6 تiÇ ň3EÈG=BÿJ‡“˜¬—“(àéà™ÿQm3‚!ºLFùÎÊçaÒ£øEé35®>Ó'ú[‘é“ÛJáä®2ãxL’)Ö@ÖKã¤(Òð\kx'dŠÓš“ÆÈöcÓ#Ÿ™¦UŸ;Õ>ž2ÈA€z| ‚´–%ºgÚ㘡ýš4Ç1Éß³Æ15N;Ë)Ÿ`â[B ló žgg&oŸM鉒’Æd'íQìÁ|ðÔ«Çzµ”£Ú lS\,"Ò H‘Ûâ¤o~½U5[•­6lÞ•Õš2õ­Ô†.ÍR1y#Ëm¯€~B—M}ɛޭå#Hë%+ »UÕfÕUÌ4l©pÓUŒµ\ìògȃ?”çÃoÐý矯?½{ýæý«Ùìúã«?ÍÆMå\¨·„-Û´ÍM+×ð»ÐNAÖl 4л"…Ê BwmÍššéfÝˬ!¾4L+ú “U‰IûæDÙ:<˜ª)^«×uõ½ÖZšÅ-™K±¦m•Þ4µµwSõ-ɤ`Ür ä'±ïlü MÉQ?²ZÀKwÊ éK• H!0Dê¤"GmZ4ƒµ90 [µÍzç÷‡ÒÜ>IßÏcÎÓ Y;#ÁÓs¹¸cÍjE%DÛ fÕõ…Éâ#al3»,W+Õªz¥}š"  }lõf}·²b<€~ªY§IàñèB£ ·„!æŸÛ©®”G˜S·eÇ''pIöúý§×ðcmÔ7㌤o›žì´ íæ®ÑñYë¯Õõ¼j棢¡_¢g€_ƒØkVÖèì¥t r ¢Ò÷NG\ð.IÇQ%bd^" Q |U9AzС:¸°rÏ&ÙFIGÉå%¥\w¤ŠC¯MKºÛf°*ïlÂÑÊGSñ€g¨™qž9Ö²‰ž:tìž.™ìŠ# “ú^â+5¸a±°°‘yɤv‰Ö%IeÄ ¥êò†Ü[ÌAlÉæLÕnÎ"{݉ËNù&ˆ£#9À‡²Í<6–éÆJ.ŒK}ˆt{ŒMèmyß[|Ù˜¬R7ìÆj³|ùRO›NäÉ‹Ë>?—7·¨7Íò¤Qëq‚RèAn9t´•‡ÜÑT g,@:ªT"š§Ët€Å9:qà‰œÒ"`°Y·¸uˆ¶¥¨«—M7‡>HróVÉ»Kägc0’ö\Îéþ¶$v(ÍT”¡¼i|åÓìèØÉÅ“ÝÆ'=GéœyD{ˆ<à°ì`jRð@ ½É³0Ý&íºF” t÷±qzó(Èò G£IxŠ|Wÿ©´Ûg­ˆQ©×€”vˆjÕ6ÞhüýMéK×Ñ ­zŠŒ9EpÔ­'f”aŽ¡z”'ñ€T;ÕÆ{îh’ƒ+ÝÒó|,’£7ïeÕ);<+ àõÆxP<ôv¦iq)@¯Ý^ÕÈ%•“ñ¸ùÀ1;•e®Ý9_~øòl¼´eb€ÑNTÙÞtkê`¨°øšFÙåN{gl6Ý4Z—óJ‘÷6#ÛS9+8ÛàÝW8áAA!ólàØsµQP ·pä¹.O¶¿|JÍþ•Z³ª¾þqqÄÂöIèRxxERo;äËrZñÃÉ>ì=¢†…]f‘}œ¹ì¿téÛN@=¨#æqš õi3 sNQ39Gæ¡5—z˜ ¬΄ãÝ •”¬Âl€Ã™îäÉtE&’.LÓîã‘y‡nE…%ÌÜÖvírr3ÿ¾Â0S :†0ËŠÃÔ7I‹ýbaºüJƒu°Øl¦evœP¶sŒ~¬üyJJ˜‰ù9 aåÊXžp=‡&¨™îæΆÝ6,$eI §­ÿ ÓÉŠ¦ÿp?@P7b,÷‘“çEC64ŠNßçZ®EÝ/)}Py|’0 ò"¹ˆ“]Å¡€­:²Ò-=¤Ì}ÙšÎâa®ìk ŠÍ¦ÁÜC³5^„vͤ6Z+ Ÿè~Ç¿Ú}™Ð˜å&0¾]sšDµ­SU+¡oëÈ!hÉ}&g-Nß÷qêçx<ÀÁ­q´ÿ D‹ãÅÍþºæéñ/ÎSQŽ\BÊa¾#S5ú)u­u5Ü‚;ñÇ£!Žƒ˜šÙ$.vD3]Šƒ" €Z íW¨ÑJÒÃU‰öšÎ™h2ó);d{„L‰£×Ý@(éß@s·lþ¹íé.mÙv/ݬúÝ:®/YÕ4w“££À,ý´óO§eÛv¡=¾j‹’bЉuíVlc0> endobj 433 0 obj 2579 endobj 435 0 obj << /Length 436 0 R /Filter /FlateDecode >> stream xœÅZ[oÛÈ~ׯìC‘4—œáÕ- ì¦Iáb“Ök}X/Œ15Š˜P†+Ú_ßïðbÉr¬¼¤ÙbÄ9—9×ïí—…Ç\ü÷š>¢„³t»ø2|籈3_!ó|‡lˆç€åtêèOøèáaÃþ»(.ûÇâ·ßñrÅ\ìî)»Žøfq}$ŸÞ¸ß]¾Ë>.~^.~|0ÏeËõÁD^à¸nàº®ç±Ø<¡?œ-·ì·ï÷7׿¼zÅ„ÃÎþS«Š½—E+ó—¿³å?o—O®&<þ¸Úu§Cr8ÇßÈé¼þäEà»OßEÄã÷‡o;¢ÿßô²éU>¸pøìéûûôŸ³÷p×poñ4D¾«ðù舾qâ'Q‹Yïg“^$Ùó—q£ó\–µZ±þJ?¾KN‰|%Lº¢Pi“éb¤3óÊ"¼åœ×óÂ<yÆ)97h7ºnæÅ‰pžòÂ"Ñ÷æéJ]Y$†M¢,,FõâÈñBЊ04hk~VÍ]!·jV8Ä<VÊ Äªj¶Ò»‚eE£™d…Ú±Toï³Âêpø ¦‚šðAU³Z¹Œ»§&Ua»M–nXV“vqPiE/¶P/eÃ>g°™^CÇ1ºØ^·l«dá°åFÕŠn¢ªµLUÍd¥XÝdyNw*e“Ý烽ŽôÜ‚|‹^Ÿ]Ölؾí¤d•gЭ-Y³©tûqƒOÅÈï#:W?NB\´oúÁfRqTB ÚC.]^ÊõjuWé]}ûâöå|ô%ðÒx3ƒ§-à“ÈB˜km•Ë…°Û£ž‚–G õy4%ÑÕÜe+«|á%Yœ¸Þ„|8l£W5WšËÚRjD‚PI™86]·ªÚÏ*ás-r¿¦0ÚqƒŠ'0€ð¢þh¥rÙ(Ò–Ân‹Ç*•ª¢É÷¯ÕW•¶ˆö…t1ƒ%ÄE’„q2ÒF)±ÀªRM[¬Ù—Š2j>ÜÄ!Ýq`‚ãQh–YñÑ^daÅÖ•ÞRúÒeïµÎvµîÒ{§È©Ìs°¸+ €b'Üäþ¬r>u£YrèÕéD•§Q_ÃÖIrB¡Q3jR8kêÑØ2oÕ)«‹þŽT¦ ÕW½J¡†¢–‘Ÿj…¨'Ñ?ÿß«T¶ÃÛG3ÝŽ µ<Ï;Ñ+Õ+Í èUi’FÕ“ÕmŠ’Y;ìƒÞA墴j»èCáÍRŠÄñ ) y¸Tއ0ÿUQ‡Zá ¸ŽÌÇÔ»4I`Þé@@prÊ›8¸m©%±ãú]EõMÊE½hîÈ̈]{å¾ÓÁá&#¦n”\Ùs(ŒîQÃŒ<“…,³³á~háÂp–ºš8@÷®óÆx¶² Y¸LDD‚ÀhøV¿çÎw¬Aš•éynuÃ#·lÎókàyÄàApôy«r/´1™0+ús„.— ±­f5ÎoVƒ´¬t£SŸg[ql[ƒ×y¶m;­ÏÆ ¸‹i\NèØ! ’Èf\óÜÙÆ5I{ÐüíÕÈäôíåhV›çm{\L6¶õrà Ià«msçÛÖ ­Ù´v¤E«Éà<“ïq—”pã%ìn ŽmiÐOØ2äŽÁÅãõS^ë ôí­}Ò½˜zn4Á$Íu­ž©›Â.ñ`‚¡›µ|@3z®p1!AáO0Yeõ0áÙs—‹a ÜlË|'÷4ëª0Áð™3²pâé¬@;P|è÷<ÿNˆF˜eý‘v¨º¶Ì¼Âœ$Œ`ó g³$¾äw ¸ 6¶e‡ÃWjMÓoD&ó Š¯mm½[Œ€ÚBº’š–I-°_@‘Æ)ǧ8"1qA«Ü`9¦L“ÔŒuôB'bƒøÑ~Õ€biX¦Þ–y–·"n†2J5àkÚèªî‡‹ùË ’¼YÁ}BÜØrþB¡o#g·/ȧ–– /Qíàb‚ü¦©§ó¨Œ6êÛ—–Q_t“qè1iëfuyYÛÅÚXtÉÒy‚ò¤ú³é\ß;!¡§µü˜"/ñ r ûYmâ±ú™¤K‘ðÙTCt÷:SÕœl_rH2u‚Ú.9ðœ˜þ1hû¦0ø]5ýêµß˜•º®i_Ö-áºåZð!¹ê vß6Lùž©¯}îå{‘¾Üdµéä@œÈÝÈ1uûšŒ1T~¶ø< úÑÃEu7¹}hóü¯Ë¿Y)&Ê‚Õ&9Ûéê3u®››ë_n`Œ±é_!B±„û=áŠP¿É³Ï v(s™v7©Úa¡ nkZ÷H´æºÍ›~”ÏÆ¶A?£Z…©œøtï.fˆà¤™ø®OPÃõüq¤Ð†l½Uwë¶è–1·/ú”ÛîÑeÊòòr Ð?±Usûò/Æí|ÀÊL]é¸c~Âï„PôÚã¯9ÿá‘Ád³óýÀ¡½3m‡í42êÖ8Ýž£ÜŸŽ;)m¿uä;‘KãfìM*h\õTç#­'Z½Ù @I4à×·_SUö:?Ûà ß0 ]À¸a²¸ZSWUEH(M[Z´·TH‡µ¦% ýá 2O ›áÃï—yH$ÄŒ.‘†}#ª¬ÈšLæ¬ßûÑ­_²êöÒ»î@¡v³ D;iïDIÀênù–Ôœ‡Çñ)”ÍsÞÈ! hrûY®ìûTîy6ú‰b5c§Hç!tOT¾7¯^õòûáäS‹'g§8¦ºB¯-5Œs½a?ýûª§rØ{ù ‡è×;yŸåY³§ÉÆì~,¼<úÕþzñ?CP‚² endstream endobj 434 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 435 0 R >> endobj 436 0 obj 2385 endobj 438 0 obj << /Length 439 0 R /Filter /FlateDecode >> stream xœÅY]Û6}Ÿ_Á}K‰ªïi°À&H-¶ÝM3A:Å€–h[,:"5ŽÿýžKJ¶,YJ°Ù¶èxdñò~œ{î!çóÇ\üû’~$™ÏòÝÍçî™ÇŸq÷(Š™:~Äv¬û±ŠÞ|ðûOøa_‡-ûý¦¾qÙ?oþø_ÌÅ‚Ã;6g¸y?ØŸ¾q¿ûþ.Ûܼ¾¿ùá]Ä<—ݯÏ)ò"Çu#×u=¥NàgôÏîwìg¿?¼ÿ׋ì)p|Çg•hØ/¼nyõüOvÿóÍÛû‹ÐÏÿ?„öÞø`c¡‚ûø/qLÕ/¾ˆB÷ò›"NÏÏO͆}†'voúªêJØý´ŽØ6ûs6÷†;Œâ"ßuóyt$ž8é*Òp¶úß9e“*ÒÞóÁ¸€?ø~dƒ9÷Ãô­Ÿ4ÛrÅjÉöíª*sVpÍÙNìV¢Qû}+Á”¨U¹ªÄ-Óæ÷R1Þ¿Ïó\(%¶në\—²frM¯1Åw‚Õô?ØÇƒ©/¾;r&—M#Ô^ÖEYoغUÁÊÚX{ÃþñŸŸ˜ÒM›ë¶ÎÈšËBßñ¼¶Ât)þÉk÷0¾ãØE|ÉÅÞ %¶DŒ¥ñ›Y#?¼Ë&ôŽ¡—À¦†×ߨ~픚’¥µÃ*8ì¾s†³U©¯dż|J ãuÁ޲Æ…£m¶¼ `[%˜¡Ã—j/òrªæ²Vš×ZÑ÷«FðOì‰W­PL¶š*\j‡uŠDû@8Ìg*"Ç m˜¦S7ÞQH³™ ⥵,¯¸Rlßȧ²g\N£c,ÍðÀ®´Ù=öÈ^MÀ[IY±5 -x¾íàŒ™‚N—&Næ&Y–xÁbã_#àQÒl…ª¦LjÔ6¯Úu¬ª¾—†MÉÖÜ ªÿ„gð½*X%ÖÚTHo%<Ö[®oDgu.¦ŽeÙȱC ô×}uòPâ ßí+¡néÁÁ˜?¥î ˜¶*ú}ê>>…Ã^sUæˆäxËÊõøÅBæíNÔzê”çy#¯8 Ä•íNl©oÉœ‰¸4A;³ðƒ½ pâ,qÝØ ›ïOè¨é“AÓ¨Î<ÚÓÔ £Iz͈ÒÅÝݓȵlæÙ8U7 ³k~dóé%¯ÊO¥(RzרthÀSKÏ–K•¡‹szkfžÀÙ £ÑnÀR»1fÈ8ƒH8Gh'¶-ÊñàQEÖô½ÔIc¤'2Cu¼ÛWêâ#3 «™\ýWö«ß&¨»ã£%}þs<'>0oýúo¡!·J½ÓØX_óJ™¦¬§÷n4Ú›”ƶ´S‹4OÇL …‘ŽÂ¨¼v’8QÕãeQº¾YTè:>©9d5]ÞjqÅ.,šãðŠêÄy4{7(3»÷SånðEüøÉÈa–&I6ãËŽæ0 Yº§p^Az€ë§É 3'^ú}2-Q,%ó4§§Ë»pöx*ÅrgzA¼dÉ0/H gÏmýq„Nâf.Xnõ6|n*‰![œ Ù]‹Ñ¤«*QÑ›Óøco´-lÍ—rp ;]‰¶ïEâ&«{·oû“2MCï½ÈY  µöðì¹Ö˜—µHöôò¿øéÇ‹ËMª6ϰ€W„WV 0—L 9·W+vš+öæÅ‹i…“`´¾–@¤¹¹Ÿ…ZzMg2sð!s}Ö+)?Á,ÙãàÀý‘ÆÍ‰GwòÏž;ú»Ì‹K,³z(K¡¦“>¤3È…d'ǧs4«hôòPʺyâ*'Ö–¥˜ç/.¦†dæÒ–ÔEIÉ8]›[®žÒJä&ç»P{ @²È^ÍÝÂ`%M×Ò ·¿#î/îìuHƒ¥ø‘™c·bt´x PB"úæt*zõÊÖÊ`bæTK·ÝF„Ýé®CÎÁàÂúbøgÙ!º•×óÿŠC'®œñcp”è> ‡òç–áçGEÉDQðù× ¸o=ùÇK³4óû“Mº<ÿ]AtÆÌ_F:‹PÝ*oÊÂW Ûð='öºû¯évðÜÓ3Ï VˆâÏúm^µ¡iÏ'S+HÉ~‹7a,Ù1d4i…8 Gï­¸ê’Û.ÌßL莯Ði£®+$ ®%¡œ&NâÓHÁ¹tº‘ ç5¶[TÇ ú»S¢²]kÿÈp¶çÊ´ï‚V ÑGì’$×ü¸à\zK«oÏRÙüôýÍl_v endstream endobj 437 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 438 0 R >> endobj 439 0 obj 2598 endobj 441 0 obj << /Length 442 0 R /Filter /FlateDecode >> stream xœÅYßoÛÈ~×_1O…ƒø˜åoRAzצ¸CïPÇ.ú%®$^(Rá’RÔ¢ÿ{¿YR­¥h¦i@4µ3;óÍì|3ë/3›~~à0vh¹}éÞÙ:äÝ+? Û³Ÿ¶Ô=û”óªÞƒszÂG»ú笘 úëìÃG|™’€Àa&.ÕiáûÙ]oþF|÷ý­g?>ÌÞ¼óÉô°:Cdû–¾¶)²\'æ=léÃͯÇû»¿½~M{×r,‡þ¡dE¿&E“ä¯>ÒÃ/³¿<Õi,©›ªÐÕœ™/— ¶×´‰iS\ØÄûîòæèmÙÀ[ʰۑɴÞ$`ﺿèºN²l°OÌC?´»+ʳÏb™º)Ór“kˆ1û³jfÈd]II‡¬Þ˜æ…Ñ…y,ØnNû$o¤E÷ ÁSó䪤U’çHèæå—„Fü¼.+t ŸIoX$Ž\tçáhÚ›ë&ç½)ªÿñ¦)T¶f`aþXîÉŸÒßT6-ÿ£àœ¿W R“-rq ïl/Ðfä™å6$üq”uÓQ6D;æk¶ r`DªNçsUWHî?Œxçˆ>Þ†ÚIx;^oCGÇ…ßd–÷A7T€îùVèA"tÇA7ÖMÝ=·7/¤µÝ#ISÑ´´zeÙÔÑÁ—•ÌŠQ¼0™ëé< üp@¥ZÑ¡¬>Ãpl²å†j©ÐTp)Jr5àˆç]˜–´(Ë\_åȯ5_+ñYíßiÐEíô kYz¤¶ó%·MŽ3°Í={¦{§ÎFcz¸%«eŠ£SËeJëÑz¸Êêz)ì3¢ »>¡ÙgTŸ‰Ô‘UïOtw³ÿIBž endstream endobj 440 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 441 0 R >> endobj 442 0 obj 2119 endobj 444 0 obj << /Length 445 0 R /Filter /FlateDecode >> stream xœÅYÛŽÛÈ}Ÿ¯¨¼ù2¦y¿Œ“Ï®½ÙÀ»=,1h‘-‰k’-³É‘• ÿžSMrt¡È àØ$4Õu¯sªè/Ùøû‚?¢Ä¥´¼øÒŸ9¹ä…ýQ’ã[n@%õß*øW_Üá>ºáËš~»¨.lúéâã'<ÌÈÆ…í…}*Î\¾¹x ŸŸØß]¿M«‹ëÛ‹—orlº]îCä–m¶m;Å–ç&üÇ¥Û’>>ùewóþÝóçôàY®åÒß´¬éQµ¢xú‰nÿrñæöÈ5Ïqÿ®½76t¾pÂ]ü‹,“õ£o?9¨ˆÇóý©Qèug8étó£¢OaÿÙÒ}íüé>'ý°÷n؇^—ÈwU>]‘‡+>ªŠ8œÌþwÙ(‹¬{Ú{Tài-ôZjÚ©¶¦M­Vµ(IÕ”ŠVã¸YKÒ¨2QgTä‹ZÔ;jÎkµ%Q‘üšÊM“«ê’2¹‘U–W+Rm×¢ÁÉ¢]­ød)EÓÖRwq;°ÇµO 2†<ÈZC&©%Ýܾ£µÐݸA62]Wù—VR®¯:‘/ß&ð-8ñÖ­(LÐÙ¶ÓI/wúK±Ù\]}€ùpáÕÈ  ¶s%ŠN®Ü4ª–ï[Yï>HÝÍÕ•Îÿ!ï›ÝvŒ…‰å„q’ÄQïÙa½{’ÓŸÈ~E9ý‘«jË{Ø¡ïžÜ=}EÏŸçwOéŸ#YQbyl”çu¢ˆm‡ Hø˜ëŽ+àßÛ®?\xù’~T¤U)›5gd›7k#e-k9$Œœ¤ð¯!ÌgjÊq+‰8‹A3˲T}IyE‚JD~€gzMy–«r6cRæ;.,G©cÊä,„КæqÎRUéæ>od-ðŒò挼0¶b–úáQêš.äÖB¢¨»ŒáìÝ!jÿ1‰ÍÙ,:H£Ír=ß9Îã³³f ‹.‡"Ýÿ.‹PuÌÇ4Õܓл®c~í$A÷kŽxZ­)]‹j5´ïÙ"p}׊’ÖºÃmYª™Ñ>Ý'—|àªÇ¼{箫íÕU-¶÷™hGvR¹ãÍ ºœ¶Àñ‚¹›¬{|^{2+ 9Çá²ïFS452=k‚ƒ¼C@MœK1Ø©%mQ#X_¶EW8×ïþzM^Zˆôó›ÿDÒv-+f¢,Ϫ;×uàs•’d¹Y†ŒWmQpÉÔ"EŸi†ó´Å¥‰†‘’ªM‚ÂOÇ <ËgXqÃøŒ1?¨âGØ>‰™¹Njñ»LmÂ2ö= ñû!Mz”_Ao:ý*=ðP‚¬ÁB•Ú^¢)™-wƟЃ(ðHT;ƒ€½ùÒæ8“Ur- M¢–³PèÂ~×ó“8ð‚¬qMf~º{bÄT÷³9T@Í…ÑVµEFm!YÎc*a7LS30‘@’ϳD”œ{-²·¹,²_E)§Û¬6#c?Éuý‰9lœíñ-¡?£ß™-ÙøÂƒŸ’ºÇù5× Z†[$_ú†h±( jyÖœ@h']3Œí@–¦ÇL>sµÇK¦òß[¤¶–UÙ>|[ªTbä#²Oƒq¸Ü4»D{@”8ôÎÜïºzÒ í›™Î?s¹wâ¿«ƒpo»TbTЀ¥ ã-¤íI·éšøî~­…BÓRxŠÉm¡@\UüÚX3cƒ—€oÀ€ǽ™æ¢@ƒgª øÕ¦<þc†ºÁÁ ºñ?¾ãYLi‰;¬d…Ÿ( ™ÚÊøzŠäªòÙ¤ÊØ5$š„¡æ6o=“ŠÔæ @÷ÌU ÔÖÓzÏ™»mØ»æU‡:žÞbÓ/RUnD“/ò"GÅ­¥È@HÓ…gcô ’Ž ¦Bc­§{(ˆæî£Îr”S^¥E›Õ§3äºfß‹C¬ ‘š1UJ8¾Ãà°º¤EÛposÔýJ‘ØŠ]·,[S|Ke?ÂX£¦ö‹QñNOi¦^áÑJ6´Q›¶ *p±ëÑŽ ²£ÿJ5ûcU#ý\уk€e‹Î ­Šm¹°€ŒjÙ£¥Yy¢±=€«#{Ö"ƒ<ÝéÑØ°1Ÿ³ œWqŒ[†MÐÝl—±‚{šOú y‡³Lœ Á0 kÄ¥›ËSg©¡¨…™aVbƒÍûu5$$:“ Ñ‘…¯ßݾù@·¯¯ß½™†2 ì>ã À‚²4s¢±D¥*‹ùÔTÉTj7H¢˜Ée^ñ$Ä>¥ªÆ¶QÝ;OãV-m^dÐzô~À=Ö}øÄ¢ìYPlvÅŽ²c†±K´Fé½¢¼Ü(Ø.³è-*’ 2voD n1Üa^G2+ ’ã·!~âOÛC"fZàÕ¾÷û”.x µÝW{°ýYm¥Iqª`³)8®ÆF|fëEö ªF¬ÌU¶rüBÄ>i‰Bm_Y°Ê¾ßµŸ;¶ÁÒg2¢ø¥)]Ë%ïÿ?£:7…€©kn–B6<hîSìˆ]¸Öùj=Æ„Ô{zD‡f9ñ(T,Æ &LC¡#èr˜ò²ÙJYÅèu(œ#cØ¥™ßîÞqÌoìh$ã(ÃL#zÎÕ¨—Ä3Ö©$àdýyØ? …,t„Ã)íÓÍñhõe½ÁZ˜º‹Ý™7 Ñ±·[A­ÚÙÖÏÕ•FC/›«™÷,0ÙåñÁœ‘üƒHLGÀõ£i —ýüÁЀKÙK3àj“¤Ž;ÖB¢›ëÃ$ù_*Ò GÛr½'æn 2kS—²ô3‡vh6Ú7Ó«B~cîÅÜ~òÇ”±’8ª¸äQ‚ôz`ðŽ ¦³âš](I0‘‘ûmy±í9ÝjL樶*À߯NÆRFÚ¡ ÇïBÏ=‘išÅ6¯®J~íT›Éæ`5Î,¯FìáãÑ ÅVVæ¬2cš¡ÅÑ%ß›)Ð÷§Ãô%2–StƒÞ:ø¥÷ÿwJÎu endstream endobj 443 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 444 0 R >> endobj 445 0 obj 2525 endobj 447 0 obj << /Type /Action /S /GoTo /D [332 0 R /XYZ 72.0 658.8 null] >> endobj 448 0 obj << /Type /Annot /Subtype /Link /Rect [ 107.27 628.752 289.66 637.752 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 447 0 R /H /I >> endobj 450 0 obj << /Length 451 0 R /Filter /FlateDecode >> stream xœÅZYÜ6~Ÿ_Aøa1N&Šîcö’ÀYdpf6»‹L0P«ÙÓÊè²(u»ÿý~ERjÝ›§¬c§›”X,ÖñÕÁþtc1ÿ}EAd³$¿ù¤ç,ØÌñõ”ç3Ë5låL÷XFo ¾ØÝ7|¨—ðåÈþuSܘìï7¿üЇ{fbÁùÆœ’“‹n>ö§'澿É^n¾}¼ùú{Y&{<\Edy†iz¦iZ ÇŽèÍsöËíûËÃÇ¿ü’Ã6löOÁkö>.Ú8{û+{üÇÍ»ÇÑÑËþ?í£äA…não`H­x®9~2°ˆ~þ:+7tÔfÔÞô(Ó*ÔŸŠõUG}®žÃ¼Ãžbl"èæëÖ8˜1‘U„Áªöÿ`‘Í´H{¯Æœø;Ùw,mØ9¬*…HwgMÉŽñ‰³}z8ðš ƒ°¤ÌÚ¼`EœsÁšc\°L?°}ÜÄ,çùÞ¡ž)¨ˆ&Í2ÖŠ´xQûúûhÎ’mNxŸ²ç¤æqß¿èÖÍõbϲôÀ.eËÊ"»`[¾×üÊZñXó¦Nù)ÎŒ+Ý"¶]Çp|õHÞDõ¶·Ê‘íÁNº…sÞHÒÎä/oECü±U©8Žk¸! ÉŒ¢M%e^e|SR&slÃqàBG Ä;u6¢Š¥– ¶ò %v>òB²zŽ¡ûæÈÙw@ÁCʳ}§þR;Ôe._™šˆò€Ï1Ì ÀAµ’‘G,+øyC€%“Žn†óÕÚ,ûËãßÖm$ÚXÌD[UeݰT›1•ÄR 0ì´hx]Ä#ÖkÆëRÃË?§ø/b›¦c°§ÛŸõÀÃÒýìÔ>LeÚ‘?N ‚ÒÁŠ’5u¹ká-ç´9§·ìx"tRR®yœfp!–¥0_È÷à”,†c>Ù¶ÝàâÂ*^V½Ó‰¦M^T°¯EZwL”3î‚`ÂÝ™³ßÈ@ÓÞˆþž•­2e9Oàû©Èé´Òxèÿ“)J`PÖM Bv´kÓ¬QÇûù*µŠ·F”4bÆWMø‚9â¼óš«‰x†ÀºMן/zmœœy†åÝ1œÆQg Î'ŠÄCwBÚ¶Ã÷AÚñhK\íË ´‡ qŸ¥zJ˜MÅçöwžxQä»~`A“ &Ys©ÈIÁ auBzŒÿ lƒW6Ì1 ‚¡ÈÈ#<€Ç`GÛ_0'4¬ë «dúàµîœågÜs¥íªæ§´l°ä\Ö¯|î–mÉåñÆ(tÁû=×:žQx„¨~,Ë×¶úÒí¹˜à™F`A‹~`ÍÉÀp^I’+?’M&üŽÎV—ç‚ñŒ¡åú¢T˜TÒ9%E¼Ë–Ní8Ø äšÚfÒ^£äçç$ðíÒMÌ Dªœ&ïËãª"û Œ…y‘Í’©@)0ÂãêÄbù?8!k‘SíNp@ %B)¤•§9H£•*a{½ ¸Ðš0”ÄMr”Hú/¼{ɺ…ˆz”:„A¸@+¿Pªêþþ]§¤uЬ-Jw TŒ”b!%@äé˱«ãGFFºÃ /¼;9!ÀüÜÑÔq&ÆDBß—ÀÁœÇ*Sé¨g€ ߥb‰Ì ž%Ó? ®w\Ù¾ÉL`JÒ¼%ˆ%ePœ)»qd›SJźÜ#Ã’! ¸5_(ÅþLÌ<“ûÞßK¾ÖEïZ†E€ZÁµ;†08|¬ì°)+:ñ*o¶´¨ƒÃ9=`Á×=oFRU«Œ9Ž¥ò+ ‘wNÈ`ïNdó½è)‚¬råZ–x+ü̵aM¡£©0Ž« #ˆÏÂ\çÐ~]sQ•…‡šc¼'†¥ÝI+‘ + |¤WøJÁ;ÃÒ~Œ„ E:7*rÇ—¯ñe~{Š9 ÛvD•Ü÷‰(Al²… ¤à´) Æ*„âΔ8æ"z‹lÕr®Yøªb¬Ð0]Y|¸ KŸ¥hV%޾±bDäJºÒñשtGÊ«xœu¾ P¦PÕé %ò[RPžóbsæâüq’p¡£NÍ‘4 ^ìÛÚBÁÑþ^:Ϫ|T…:9Z "¥ðtûôvÝ‹)['0ÅlÉX¶U7Ü$Í(ø½\¸öÂ2U*C‚(Û‘”å%j;¥‹šË@»0¯“ <ƒ}€ZúZ„5g˜8Ì2+ã=¼Ò„ó1…ÝmDÞ„˜v[ v¯JYˆÍ÷VÉNŸvèšø•ª8dh E™ú‹aØ&ÖêT¦¬œ03n³fÆ’cKBÕç}(ïäjØÎ| 8mÒt¥Au!Zš°Â€+¥û«ZÃIöPÐŒ# ¢.`< à›‡pÑ©™ý•½yy¤áP}óç­€ç‘ ˜ñB_W¡PMY¯ìþO¡ ëEùìXþO#vžÞö 9È»'$]Ó7\JÄÝPKú}*žeqÁQJè,a=,‚‚êÌ ©ò‹ÆíZ™|jˆ´@†ÂEË6oa&y k<£ÚðD ˆÂ`߯B%Œw]ú6H‹YÎ65׉&¼PÆÓ'›±LÜU¨ =òŽRg‰ XŒnrŽpB®ƒäél›+üW[R^µ<Ò)ÎZ<#c;¶(þçìxÖ„rŠ6×ɲ¦+[Æ’">;iõ)Z—[Éó¨D…ѵ } Êb‚ àï<×wŸc†ºM)­‹…Dð}©Üz=™(mêdÙöÉ$ßû{É>¦ ªxÙ„CÛñ·èIÅïË‘L¤Ð!y\uÉGB/ }GƒúO<èlœÇ5°kÌÍ—‹VF´ÍDî…ÍŒËÔù”š¾µ°ö»²(Tód=¦ù›î6öì­•R‘ëZ37o›|É·=Žé-,~H©‰õ}pXb RiM¡xº-ø“ãYmMË7(çC”  G|xàÙzæí…[ËH‚ÎrAí®bžX@­ÈŸ,M2ª£¸Pá ´+ËLVGüsCnúÂï a°o<ì÷) ¨u*|ÓÀ¦Eöë†á7¿Ãh“Á‹¬îÒ¦‹Öó®´NVí¸L", ›–]öÐÞxh3jªf‚Ê:åÊÀˆD!• ‰B#}ªÄÚå³  Û|x¾û 4æœQëÄÖ¦”¡½”å^æŒ\F Ù,Ñi; Øà‹ ÆMÃdïAì;êÝnبe8ˆÏ¡çx œ\usŸŠg½ ßoÂ]ØÓ#©#{Î꺡Tr hpˆ ­î<†àDJ¼kY³ç»ö…òY®ƒW9í¤U¾yÞ¿a¢=ÒÏã¯Ýa”þMIŸî-e¼‘‘YõðwHAçìøÞ„Ýç#BqYF•KJ½Ùz8diÒtµM†ˆØ1,o$¤ÚZÞÄ!¤8$’#ϯ]É ÂÿœŠ¦¿p{÷(o"ûûDKÞ&zHgÒ}ENiƒ±ºXÔ·‡þTw(Bß5-Çæ×aá¸^ÂÛ˜…‘í÷—o‘J²>OS#º€Tßd«@}¥«:Ž‚/Óã§ÛA~:‰cИÂAd/lª“Ñ éK‹±uN…‚)UhŽ»@¨cr•02˜Ù³žëÂƦnt²×ŸéØÒ§É`¬¥ÓÊHæ*Ę̈„o8Óý:káÆ×w¼Iz°ãÍ™£$ »Ýèü jšêù®5Y?üáÀ4Õó]o’> endobj 451 0 obj 3537 endobj 453 0 obj << /Length 454 0 R /Filter /FlateDecode >> stream xœÅXÛnÛH}×Wôc‚q:¼_ò6 6/’™xíÁ`F‹lJ\“l™MJÑ|ýžj’¶(ŠÌ>eã@"HVu]NªÒÓÊfþÞÐW;,)WOý=›…sƒþ–0ÛãŽÏJÖ_û¬ ·N.œá _ÝK¸Ø²¿VÕÊb¿­¾~ÃÔY8¬¬suFøvusr>=±~úùÛ¬Þß­Þ~ô™m±»ì%D¶Ï-Ë·,˶YÄ]'¦»+Ù×WŸ·7Ÿ~ù…í]îp‡ý©eÍ>‹ªÅëoìÜ\smçÿàÚ±¡ó…îàÈMÖG|Ï?9AÄóý—»æ@·»‡;ÝÙô¨èSØw†t—?Ý÷¬Ö‹Ö©cˆüÔÃçѺ¸Ã£*¢h6û?9d“,ÒÙóÎX€ïjµ©EÉÖm^¤yµab#òJ7l@¾ªX³•Z²]!šLÕ¥¾bGÕÞ;ŽS¬’2ebÉVTIêNS»&W•¦‡-¤¡/º¸ØãXgU¢”,¯X*×톕*•|"ä¡-’BÅ¡IKY÷æÛñ¹ã¢¢Ä-/˜JÿþÇç?~ÿÍ|Ü*¦4aGÜ ÞTù9{ºíÚÜ0ŒkùSÑÏÿF¤¿|yøßÌpü[^Ga_6CìUž2Áê\?2•±DE®‘ +åaS¨µ(X)’ZMbë{g*)²z'’!o?º„rïX·øèx^'Ê´x8ëkTu¢>êxI!´–šòf»ZȦ¬DvxA£hî_Ý¿žÏ©ç-I3U/œŒDø„ÔNÖ¢ä×o‹g;®Qž•²ÙªT³J®Ú|šâaïEz]¥ò;“ßiêk’>Ýl¬ï°•&Û!žLTLµÍ•½©MÅæ¤³;SâÃÉ{QçªÕÅ‘I-/ *Õ ÌeòHæä5Iæ‰ÀU˜9Ôö…HÁ*ê.#«t“¾{KTö`,™Ï‘å\gÆ-rIÖ×"í]™FÄ‹9t Åw’×L‹#¹%à†o­e"z’ªD©a…£ªäxS%uEذ ÕeR±º-$ŸGŒ K"—Äõ&f}Ìe‘êÙ(¸‘?/K&ÿ§…¹‚5ÇLe³êi${$&˜ÞÉ$Eþ· 0YÌW(ÌÁŒr®È$s/“f8ôb©Ùh\pÀó퉂+à250¿mp%ê”m…fy£™:T&®š\êrÜÁÍꔑˆf¸säE1÷œ0ŽÝ0ìÎB7w8ûõý5û`šÖ|ÌÑl—û}Ø;é;ʳ†«¯T%m)«†P¡€Ÿ"_×¢>öݰÇJ-ŸÚ¼6½‘ع–]4­rè¾Zuïæ èmµÈ«ÇŽø“iÏtü3«ˆúÃ93,ŠTR8óF–zàý]-÷T×Ïö ˜% NÑè¾Bÿn:8¯áRU ƒÌT:9jÔNírÃ3»ŒSz«Ú"íËeˆ†¨&4÷çXåÕ($Ó:x¸çS{í×™ êŠv£hx™‹¯ÈIàÑ@/¤{F2sâh&–€#!¸køœo*UK©E¡}fQ±åNéÄ!wí˜jih•6¹-ÑE›ó"øíˆr¡7EfFÀPå]½ie}œ=Ì[”}nËÔt»îH1«U¹Ô)1uZÐb|ªÔM”àSŠr¡[ZK:Ln%š@ûTì‰h–fB×õ/[óSÜ(¾ ·œs× ¸ëa<²ç4çñR΃˜ûp‚©sèßá–{LÊ>¿É«DÕ𵩤ÉK_ëóÉ€VÛ¥I8Š.±Œ ;^ÀñƒXÄ>wCr§¡pœ…Px´ï"|n ©öõñ³KÞÈrÓÎw5/Qñ=0‡€ÍÇyT¾_8k9&ÄÆ ÂýØPÊr ƒhÒæÚŒS š_¿ Ì{u:†LWà¬øÄËŽ󽤵)mÑ`„+Z"ó¡¯Dw .XHؼȔó@×U_>F g·êʼÕéÔ,l c³ 壢»½°ÆŸ’5t%ªî îÐÃI_ØŠ=ݨiœ3d¼ "/§Äà^×OQä-¡(¶¹Ø´öÄ{«°lfµ”šÆj Y[%Ý⊙··mtuhË+øô¼±ò¨ŸŠÝ®›Eã/Ϙ_ð(¨KútÓÂè?6§–4uÂ"S礳ëÑ´)² ¥nrDÈɳQŸ£w4û€YUãnBŠhp¢y·ÕäÝÓ1däÓ5ÂÇáVz¶3äU–Ë)ñ1áyº›;´ÿ½ƒÐZȈx˜º=.ë¥Ežhײ#w*ýAUU×߽˫L©åå«î¼.Îî_]S@S ÉÌD4*XŠþ5 DífÛô»ƒ©Ä“‚Ñ´muϦ1ƒñ‘"iZ5$‹N䜜JÆ÷šÅãpð¼(ÄNËt™ü}âY«ëB—” á[ødQCדê–6ªxóƒ[+U š4>‚¨›aþ2»íÃó* ².Äæþõ3eõ$4ñ%svì驦D±Ùà”BŽìé¢*ž)²gåK»˜Îœëp×FÂh€X?þÌO ÄKr?Žm|YÒÄc¾uÙ6=«ûÝe*üƒvî- ›ý€æ¼TÖ9U¥é¦‹shz$|`纠ñ“J1VÏ/ûNp SFc“»`²+ë vu:ñåå®´ˆõÐʧ»oàygºh±,`ÏÛ¶¢¯æç'?îÞ¬þ ˜Ñ endstream endobj 452 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 453 0 R >> endobj 454 0 obj 2064 endobj 456 0 obj << /Length 457 0 R /Filter /FlateDecode >> stream xœÅYY“ܶ~ß_Gkš÷±~’£8‘ËNYѦò`¹T³/I¬rÇã_Ÿ¯r.’XÛŠåÚáì»ûënÌÇ›€ùø÷}dEÈÊææãx/`YÈ¢t¼•¤,ˆ½0a ¯VÓ[gát…û.vì¿7íÏþqóó/xX1ûÿš!~wóöL>=ñ?¹|Ÿ=Ü|{óõw |v¿=¹(H<ßO|ß–{QXÐ!»oØÏŸýxx÷ö‡/¿dÏ‘z!ûû‘·¯?ÿ…Ýó÷û Ó¢ ü?˜öÖè`m¡€‡ø?óLÔ/$±ùä,#Ž÷OwÀÈÞÃ+›ÕcÇO«ˆ½´öØÏU;ü“þ¹—)òI…¯gG᎗_dE^¬Fÿ»lE’½nŒ?Kð7-ÓâYt¼f²Õ=oK¡oÙvhË^ªV³~Ç{Ö+õÈÔæWQöšmì™×ƒ`­Ú³ž? ¼#º]‚ gØŠN€Ø¨Ž‰íV–ßžuÚ™2‘ïÅ9)“ec¹‰îAT̾øõwŵþQä%ô~gsbTêÛAt‡‰zf}8¨YYs­ß‡a¨Y#šè4<Ò+{]¥ ½8 ®ÁW·Bæ û+ ½ÔUýy͈ÿ­ö÷¢yªy/V5, ƒ¿ê²u4{I-‡ÃråÜaYìå>¹uc™ ÕUHÏjT©ÜI¾©«´î¸Íz‰ªP°†í±û`Bv—ªiT{¬&5ÛïDK5Àž:ù g¢ LñÌ´ÉÓ+mö\r¡ÐF \„e4ljYN|¾a²'9¦ÞðT==)-!gϤ•¼e厷–Þ–ª LÍjèÉ"X¬ºÃíL­"¿RK+ÆaŒzèxÃjÙ>Êö`X×rÓñîÀšÎØTûfu?w}ú^‘QxÂjÞI$›ÜJØJœ*roñENžf; $êÊìzMM/+8 ®lÛ©Æ‘V9ª)1ƒñÍA¬?T®lb'‡[vOª.(µªü…‹ŠÕ«Š¤Kt·Æ[ä—55ØFõ;¦¶ð¯ÒÂc¯ê—öžÐÇŒþ³FÄñ²7û®×íÈòR«—ÕÈ«aäåÑåѪü/V%iâ"Ÿü@5rìv¼–ýÁ8YÂÙÕ¹¨í­ª+xË@›©Á·ƒy9¡G_ #ŽÇâmë.¨¢ôn¬û~/,‚4Tæø”âò$ÚŠÚ(H åë{r5ëGÈöØ;IO¯"‹æ:¥ù•N0Ft[df«ú?*c?D5Ь[ª x¶SC]µÄ¹ÇëHã–A\ £ð§;z„ÌÓ—D|» Ñ»sÕòë2{õÓ‚+ÞB‘)1œÖ94ô#/ pÇy~Qe‡'ñA¶[µÞá–ˆM¸x ¡Ô d/‘¿£j$æŸ å×q(L½Üü4X`ÝÍz{Cž®SŽ-Ëc?uâYªAׇÑ×{r5{PlhOÚ"a· Ø?óxˆ…ç’³Âd±åCÝÛI®Ê^AÜ¿lêvÂ6¡ÓKxzË6ƒ‰«ùFã å„jìÝÃЈ¶gï?Ûïd¹C7ë3A`ÃJ¡?s ]^‹£ÀEúþs“â|î¬<—¯Ž–˯S-¦Y c¿Ärè{þª~ ÉR/ƒ¤mvšCõìšÜbÿ_sòPÞøè.?u±`O˜vÑÓÐæî«A–yiDS`T,0zaÄõÄÓv\8(ÝÚ³~u‚›já%öàîçñÌó+îвqÃËGjuÏ—yÅ-&;[5ÒâF'B èMÚ ÇS¬E:Ý:J=+¼˜ö©0Íä»]ùNb‹AC¯n }£B¸h3'†BŒ} ;•ÅHó­±ÉB0QoÈ<¿‰rèÉGœ™d2ΑãäHÎiöAMÈõ£YéøÈKüVЧÞj36ƒ±9nƒó\=¬<9Š'ˆÓä²ð§«¯ŒÿW=^ Öb‚H,°s^ÆáwwÖ.ñµ¿^yáù”˜Ø‡89‚±‹RÝ¢Ã(u‹¦¼žs ²8<§–»…çNòqá§µÞŒ*|ÜêQÝã¶q,œyt£øŠß©´PÅ%´{ í>(=ñq@;­©QPŽÓ»²5YfJ×àÕqͱŒ~¥ÝC·ü Ïi¿A&#ed[ÉÎnL®I!‚ûüd–—IÓuªsº.¨§Í̺‰"׉~è°Dž9Îì‹0„ôä® æ¬çÏE龺»C_F¥9V˜ÂÅâxz³P™À²ö@ï/4©9ùª|¤ÕzÝŸ¹‹­â-uà!´£ŒO s‡ÛšïEå9ü™†gΘIø›jÛóU}É¡“ƒ»R£8ðm³(\ ~¡;dNb“](<©¬V(nÕ"¸¢üC»4²(&³ý(X`ñbd‹ÌE>­.cL±ÖŒý èP£ÝÐô)0v`ì¶ÛÙmb#¦•Æ}ÕÁÃ[d^”¡ò©"Ìð8#¦,¿89åÍÝ­×¼úÀ÷üЧ£Û9+W›Á0'åéžw½çãdü…Ö’ÂcÔ]±ˆ¬ËÆr蔡½9¸`3°gǰƒ ʼߩJ›Ñc>¤ÇIxE?L™3/nN8èøÙžž•ÐphÊc”<öZö˜_¨«¬Û£/"1ü$.¤¾þö5•M·îï"A_‰F ô“™Ó¹‡ÆìÍZüqõª8»>·8¥ÞOJÕww Yø¥Ì[â4õ­gÙœZ÷3=lìIy—&²NVT¨îªJüÀ 0P幟UUè0- ã¼-š† oÜvrÎæÊ®o¬§‘Zµ,60Ëåô$Æ’‚±¶ü¡Cüh‰ÄøÔØÐ‰ z?± £¼ìÅoý-)CðG'1-/QzÚUÒcÿäætîìLÐÑ$o˜àKëaB¥Q-¨7:ÞqH“xÉ•ÀÜú(¼¶ÞžÅ™0:›õ¡¦äÅ€­Ýjߪ®9Ë‚UcÂñ2ó‰Ÿ,H“ëv ðN@:§4Úh¼äÐ«ìºæœÆŒvL¦Øhì7 ŠL>Øúõ”(Ç%LÎÏOÒ8¾bb³ÌŸýÖ÷Ü›_Ì´ü}RóCøÛ›ÿpMÙË endstream endobj 455 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 456 0 R >> endobj 457 0 obj 2550 endobj 459 0 obj << /Length 460 0 R /Filter /FlateDecode >> stream xœÅT]oÓ0}÷¯8  ãØÍÚòÆ$@ öP-hc&q› Çî§ÿ;Îh²ª¯¥©toαï¹_Ê3IÀüó.˜åš#¯Éóˆ%Xrˆ›Jo,(OQcôSèpjâðÏ›xÈ;%ˆ! _Èã“' 0¡'ìu¸áò=ÙLôÃ.®Ï°#·yÿ9EÂm-JRÊXÊK¬¨àëðãÈj<¾¹ûs¿ù~u…ƒ œrühUƒ;i:©ß>!ûF>e³ÒDÂÿCi›!‡XK8÷ÿ%¦>#Ò›3“ø‡ÑAPDÌ#Q;Pzáhc"ÑõD{¶v,ƒM«˜¯ÈEÅÏoÇRx„®f[±fg§á–L1hŸ/†,xVJ­¶]‹¾r%\oñKÈK[åªýåQ¿ö½Bn;í [+ØÎÅã‚&4 UÛƒ*ü‹jjåJ[´pÖ­³ DlÝ$%Î^å´o*Ûàãí×k؉îï®u(T®å¨jC4üä\Õ‡ãÞ]@š! Xsd­>Tfc]Èc+µFe¼4r¹“•¡xPþ>?œæ'8"|V"æç;Ó*3¨kéœïÍ^º’NvbCþæBo endstream endobj 458 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 459 0 R >> endobj 460 0 obj 455 endobj 462 0 obj << /Length 463 0 R /Filter /FlateDecode >> stream xœÅUMsÛ6½óWìÑž(,?DËšžœ&õ´U:v¬LQ¸Ñ€€Vôï»)Yí]Û#R‹ðÞÛ·ëïQ ý¾õÙ<ÞD߇X ³ ò«!T\A:³Þ >ëè%Û¿Ñ£O¢—þ‰T”Àmôå+-–Іm”œ6?D÷G÷û•äÕïO`½[F¿ü^@šÀ²z’(-â$)’$IS¸Žólî2X6ðåâãîá~ñæ <æqgðÙ¢LuL^~…åŸÑ‡å µ<Íþj÷CÏÅ<£¿Yª~²PL“Ó•#GâOÑpaÞÇ(Òßí—äPÂáÙé_{>ýóEÉä˜Å©E^õò—Ý1Ë)_Ÿ¸bž¾XýW–lTE÷LYϨ٠Qꌂs2|>ðIÓ‚£²BmzjÏ(‘À”º Í©QAظ¬Z#fvÀu»3bS;¨µ,ÑXÐ %ì{Hеñ‰L• œ…Ró®Aå˜”É Â_ø(ܸoBY ­.Òùüzu9éèÁ)Š387ïú=sº×ènSÿ$]]†+?”W1 KäµÒRovð ­î G;?éÚ3=à ”Ì!èŠÞ……­ŽTZ]Æ#ÆSœ[e/Îi£ «ˆZæ€qGr¾–×÷ÇOáMHÊÓ·Û`§¿Cš;ŒDÍX‚¤ÍÛ` 7ÔAØx ‘wöq°¯Y_…œu®Öƃ¦ïdõ>`}duIŸS¨)u¨|)%Ûl‹\TGçNƯÏ]¹FÎ:‹ƒCúа¶•‚ØS­H²0J´Âƒ¶ñêrtt–> endobj 463 0 obj 1051 endobj 465 0 obj << /Length 466 0 R /Filter /FlateDecode >> stream xœÅXË’Û8¼ë+p´cÔ4Ÿ¢4s²'¦³aÏÚÑíul¸} (HÂ6EÈ Ù²þ~³ Ňz¼'¯!‰¬ª¬¬*~›ÂÇßúHW¡È³oîZ ÒPD w)Yˆ öÂD„ûžˆ‚Võ¾„í7|ØEø²ŸgåÌog_¾âæFøxà4óÇÛñÃw³½óéŽÿÓÏ÷Ånöæ~öê6/î·‰çû‰ïûA –^®èO(îâË‹÷ç»ï~ùE2k <Ä¿Ôã¨n$±?¼ÓcDwýr•Œì5\±gÓ­Â…Ð}Z ö«µÇ~>k‡1Ãï[1¤ÈO=üyv¤®xË+Vá³ÑÿÉ.›D‘ÎîŒtDuIÔØä‹0öüÝHWÖ¤ ðO¼ýë“x'+bù[YJ“âC³.T.Þ©\–•´v¿º ÆnòE´ô’t-ÃÀnù/i*¥KzÁ\Üʵi2sÜØî2q68ºòv ìw}<µÛ×âáÅï/éylG»ˆ[#¥¸ÓÛú”)nuSn²'ÎÅŸeî ÚAŽ…Š,—sqרZŠ(òçâ®jZøþµÞ ¸ "?µ°úÒŒÀ|º{-þx’æ¬K)T%ŽÒT]˨µÈTdåFlTUµnpÖ®é@7•¬„ÞŠz ëN±Ñyse=X.ò}VîT¹ª¦ÝK]O -£¤¬(ôIn¼ÉÊÀ½Uè¯VéÂÑöË=õ^Š­2U-Œ,dVÿ“ ” >¼óÄŸµÈŠŠìkʺ™}¾jò‹´ia¡ [ÒL!‹$G«yw~8{Yæ’·l/–Ía 4 ’÷µåND©ØÄX³‚–§‘;àƒ‘Ùa]È¿¡\°ˆ½4ª…ï|z³]„*±…‰ÐET-ÓèÿFVjWÚÀ×Ù#.ž²³8ëÆˆ-h¹ÑºSíy=8Á¡gjO¼9Õem² awž›º*]Œ@]OȊѨ²–寢Ù!Í2ü–?FC÷:³nn°ä@¦TaÿOA-—#POÀ*Þ¼JÂÐJ4 P5%f=õ“dE4hý}I‰ù€Wmž‹ìx,(È(}â£ÌŽ=»¸d”’¶c–?f;YÁÂóQå´n * G  æ²¢ÇßÓv©Æ ˜ÞÔ{m*qÚk@ÉÕFF8‚#ÿo݈<+ÝoÜÑ6ïOäóNó=Œâ.DÕ%/”¤|ĆFn²=[kÚl/Ê@g´a ´Ù¨’ôºc[mXKhšP18rwÐ)®x1ÂÅF‘/Îp¸©UÞ™:Š×š5ž¢Ýå÷c‘•ì¹ GA¾®pd‘zQø~»Dþ Y`GeöHš3 ïœnQTà i i(üÞr«‚AG[=ñÏæ9vqFM¥« ¾ôÓ&«)ñÄ>{²"ÖKÀ^a¸Ôƒ(r.?ÍÎ&‡¹ðtBm§ÀVÁ~RÕþáåo8FæR=ÑAÉéø “‚ظ“5œ-/¾Xy« ð?íã·xN~ϨùšÿpgÍ;å%jÅåj"¶»0†ª·S.±@i…}¸'AŹjØ2!sÑâø‚;ÊRlmµ™÷å2¶4–ê6‡zyc¢K)4KÖØ‚”™KÂÓ*aâd<©z?tGg1èûD•$×äPøO¯ÿCtÞªÂÖÀ¡7æ@tÁÎPÑæ ü>tM€Å~2Ö² ÛR9€cHW­tçvkÀÀˆ`#·°žxkÕ^Ÿ,—Áè+ (K}š"Âø2D„µªMá)ãh…öoá±[þY^Ë}ë‚LÔ'}SÕò(àÞü ñ 0aœ˜ nèD„l|xÚ5z‹Jãt ß¾œö*ßO¡%ÁѸ²\‘;!%*nwÝ,1ï§ Ž~Å(gaÕ/¤¡/ýÕ2M’‰Ê,ß÷u5¿ÕAH4M8"Çd`:Ù¯ÔXk¨½<»âäšÈŒxISþ*ÖñYËìͦ)òúÌMX²¨l9f•í æãÔ­šbÃüqYÝ1ŸK°£\÷£0]µ¯nú¸V‹.7y R©{Þuyè+@96µmO 2D‡­ìÈkk | äàTçÀ¼ZsÓnô¦Éí"‹+œNéVÐÎÕ·„¡8Ïû n;8jrMUÍ!Ýcú©ÛL•ßvž­ ¼Ô¦õK°'>Kî¦íÌR¸AÊX›hO¨ y@²ù 8ÚÒ¶1ž ÀàxöÀšªiGv)~OÝ$†õè¢2gìTŒ@íuÚÊå]¡vM¢BÁäÞޱ½*mwi”BbKÏh,néÊ‚¶–ìivjý¼¬&I4FÝú¨7µ Ó_•A¹Âˆ4Aëøa¹)ì=§4_ÚaUæE³!gò€Ô 3sJˆ\Ã.K»áT€-®7ÅäE5íñ’e:‚2˜â~ø:i0ɵmMo„ëÁ&ôoüJñ%·)¦°V«¬ÿaøá hlkyœˆ-° Å»Inùì; ®ø> endobj 466 0 obj 2268 endobj 468 0 obj << /Length 469 0 R /Filter /FlateDecode >> stream xœÅXÛrÛF}çWÌ£]¡a\^6O²-;Ú’å‹är¥¢< ¡8k\hÌ@4÷ë÷t‚UΓ7‰C¦OwŸ>Ýï“@øø÷},V¡HòÉ÷æZ ¡ˆæÍ¥x.‚™Æ"Í÷XdtWïKØ~Ç» _¶â뤘øâÝ䯿ñc*|<°ŸøÃãøáÛɧž}úÅÿåö}ñ0yu7yù6/î6DZçû±ïûA –^®èŸPÜåâ¯gï·Ÿ®ûM #‡ßfD q­YãS[‘–ʰÇ–bW•V%–OªÝ¡iƒƒ«²A‹£4z¶¬R„»:B¥“¬$ž[K㎣.Åsš­–óxáἠ⃶©´{¥`ˆGˆ}Y}kIªEçE“§ Ó»Фšánœ‚S9:µÃ3ÏÛ|9Ć‘éö7ÝÁS—Ó&ßy]ujï½>Az2ƒö[ št½|Ñø;Lœá »Ó|åá,vh¨&¯/oo/?‹w—7—Ÿ/®ÅÇ/¯®¯ W¯/on/Ûó‚ñüùso±¢yÓTî.?¿¿7oÄë7o®î®>ÜÜŠ·>ã¯ÿ¼ºy7o®nï>_½úB?ñï?¼¹z{õú‚.´¶ÎÌÊv¢ˆl­M}ÊÕmSÂPT•S3“»]¦~¤I]whC2:Ao‹e¿Õ˜³»DJè ÔœÎd‚˜££]­ˆâ•~ØZ½£œt–d )ªôqµ €’T $%Í8ÒUn© Nè¶­&®ÈF¢~>ÀGq0ÀÕ†èþ§4aà ñÜö"H̾î‰KÉK_ce”iZ‘å”4šž:”5—ÁØô›¹vÌF\ðý"Ë•ä'(t’Z§8]’6u‘8Ñ@5¾DSiI.â€/9³\Å£*4Ržú:†µœ `1EÅézÝý3GêZCš‹;IÐ (Ftÿœ§Hš¬JjËmò̆ãÇžÔH»Íc2…7½)Fó m-qiû;Ç^V'‡•úÚôí,Z=>·y-¸.žÈëQî”fN÷Û@bÖ6Éí“r@Že‘Éý¿Ú–7†®h6–FéNk ´û¶1¦W-•4†‡"ZÚpr)g¿Õt ³¼‚àžé’3l¨§˜eI¾ õHKJ+yÁùr…žÉâ¡Æ áM@αWm,oA©iÛI²:m[ÖÖM¹ÍÏEWûc@ØKOQÖúnqeÞ??¹ˆ¼eŒ…-Žâã“·ØxŽ‹3¼áhr¸]²­ëíà%•¾ø&º?—¼ùŸÆ1ÑÖM¡òéUi¶Œ h­Í”¥ 쵚Á/Na¼¸ã5 ÖÔVÇ1õfµa^JcJ¬zTÈ–ª°wѾ™íVËSX©öDÆTz‡q• øJF«2£F½ÓMšI+€ÃŸ´½ÉêÉ×!q°ôæK Õ‹¸-JšE±{“@ï*þé(EªZâvÔAÛÇŽzÿ;9ð]  ÁBGø™!þ”}åf ì¯äÂÍ›§óg¿La˜À “r‚TL1Lï@ž†XðŽgÐúè Aͨöí¿C2Ðø‹±ÚB[RŸ“6”ª†PíþWØÞà?…©0%’4íö¯¥clØ O±iK}õëVµ)ä‘ßV5‘ÌB´o÷ˆëþâM1ê~9ٺɴÿR-b/üÞ8xâϲæÁƒ˜äzZ×>Ž¢‰™x›A8[¥hE˜ áDQ ¦ˆ‡1¦åb€)W©®±[5o†Rç"G9Üa·.k“9¬hÞU¹«¨žqeGSÙR•ä1Ž]êßÕë@n²Âòx ¨ J’I»ýr ·‡ßÅ7¥v$$ÄþV”ÜÁÍÖK·®ô&TÞÝx…rmx;áW‡ãÑã×~ØÏk³%Ã݈ØÚÊJÔßp³c…^„~«æüŽ[~» ÅF9™enò’µ…Ï]zƒ«~‚âÊúМ⒈øí¤À´îŽÑ`µ> endobj 469 0 obj 2551 endobj 471 0 obj << /Length 472 0 R /Filter /FlateDecode >> stream xœÅXÛ²Û¶}×WàÑž(,¯™¾eÚxÒIÚz|2Nœˆ„$Ô$!¤dý}×@‰·Ó¦/®çHµ×^û|ÞD,ÄÏ·ô±/bV6›Ï~,bû˜%;?”íX”qÆæ¿g¬¦Y£/ñð n¾œÙ?6í&dï6¿þ†‡ ñÂmΗ³/ؼíOO¯¾ÈN›ï_6ø!cQÈ^ŽOŠ¢,Ã, Ã(byÄý‹ÙKÃ~}óóýÃûŸ¾ù†]“ bö‹šýÌÛž×oc/ÙüùebZÅÿÓÞ[ ÎrxŒÿûÀz}ò KÃé“‘"ãÏQ»aâÆ0âö¦Gµw¡ÿt@ÜWgû|ÕŽðiF8¶b*‘¯ºùëêØ' ò‰*ŠôUïeÊ^¤½_7&\<Ø?UÏ~gªäñÎîª×¬T—;SöS ÃÔ‘ugÁ~’͵}ÀÛ;»(ÝIÕÒSÙm1£7ì¨t#Ûãì¦ô'vàFT sðºãl„%g`üú[¬^9ô¥’¦ÓòÐw‚™¾<;œ²ä´·!,v§¾­›„²º±?ˆÒâ‹?¨«Ø²‹VWYPw満”ÄA’P*ȉ×F±FˆŽñºö<pm%-€ïfk µfiæX%ÚG~‘oÙ 9äØß"nzÓ8#ê#;0fÔ±»q-Xíx–KïwÁ.Ùaé¬pK°´u -Vò؈ƒ£¬á¶Ç~Â3 ϸG´kU'KÌ1ˆ„ÃJXyæíÉrä—Y¢Èó rͯ8œ’Hn"ÄÓ>/ðzºs¯—ëFÜΪƒö,e°ã@ô”¢%]q2ƒ6Ò'AÏÈEÝYêŠ]8¤ ëªXÇ3á` ±Û]Ö HÓ Hc¼™¤îÍ ü³Ù‘—²–ÝI+ù§†ÐÑâ(´±`Ù±o@)žXÇÎZȽ¥¦¿\jzý@¡°‚$ÛÍpzÁÅ9û¤yã\ R󩇸e 9¼eÜ0ú­O}Câ¸pCüÞ΢¼Ã䊢]>!Û«ú$*J Xà>x¶áŸHæ'¥*¬(»3G䋎ŒÕ½êv O\ áU©5EFy8Ã};úî.kŒÉ¶To§–™NR€_„††KAøƒò™¼‚,Ò•Ëwk ŠxâÒë‹‚šµh¸D²jolǾ^‘ULHFÊt¯|óЊ/¼¹Þ‘bÀÒ„nÕ\l‚üÜSÑJu†É«lÀ`U]ƒS©h¹‰ºþv:)ŒJ‘3*lZ‰‹À¯¶¢r䙀Rä­4 ~èÆg߸‚ùŸ{ìiJ£÷Ö $Å Â#n$aÛø°Aûxl‡Rú“×ß1¹@lµD‰pA­!¸ûB7!z¶©ÒšC‚o—5pÎ2Ýy–{ͼØã)£h4³us·("ÖÅ6Q”$9-3Þ>¥y÷àPp 1Ê+1Š’°„•g3X£úïë3ó@@¹ÁDQ4 gR¡ÉF r¨8ã¼Aé»R¬u.Ï<“®Ýa ªØÏ@! ]¹ß—֪U$ú·!º ‚@NÁìû¾{mþ²a‹&ÛѾX~ÈÞOø-‘¤Y둞Ûr:ìí»¬gQ|È{½³Jâhî¾µÚ¶¥ÕÀò\#±€¿¾0ø2‹_:ÑVƒ]q@œlçGIœÃ0 \y_¢JæZ·ÔhqâºB£añaYvÓ tËnž$±D–i¡C+ò!\zx_ÚÔF „²í9JšÁ6OÖ\6LËÓ¹3®¿ÅTÓ¹¦×cšõËMËë<æÁ6ÇdÐ øÙ.Áíö3p#0Ò1ôEèRúþÆîç²wÛiU¯ú܆)ÒÕU8¼uMÖ\‡HZÏ mydYæ}«ó#êGå:Ø-ªÜÉO'rİ-o,ÄëÚFìFE|<ðñ õã4:÷ˆšB-ƒnJQ»ªýˆ‹Ó)ÍO–„ E¨dß> endobj 472 0 obj 2196 endobj 474 0 obj << /Length 475 0 R /Filter /FlateDecode >> stream xœÅXÛ’Û¸}×Wàq\+sy)2yrª6‰SÞÚrÍl¶R«}€HHb– GÑßçtƒ¤(Pã$/Ž=5ÃЧ»O4ðeÿßÓŸmм^}žbŠ(ʼn6^‹Z ×±¨è«ÙE8^áý'ñ˪Yùâ/«_ÃËBøpYùît<øyõyfŸÞøßܾ/Ž«?½¬¾ÿs,_¼n! bÏ÷cß÷ƒ@¤^fô//µøõéÇëóçOß}'^#/ôBñ³QZü(›^Vï~/[ýðrçZ„ÿ×>3ë %<ÄÏÖã¬ß½ˆ7þý›#¦ç·§l0²ÏðÄÚ¦WÕÂá¯b/­?öï›~ø77ü¹÷ù¦ÆßfÇ6Â/½cE¿™ýo²EÉöÛÎø ‚Çžø κ=jY‹î$;‘·M'ËÆˆ¦…Òå«ìÊW%ÚƒÍUœ[Ý•mC·ÝI‰Oå^K}]‹}߉Ò`€)*D׊K«—²;Í¿´› }Ñþ*öªlŽRŸË sµZTeó;®x¶²[“©\VôRŠ]Fl‹á÷F™¹A¼Ýxâ¹ÏOø”>ÃàãÛJ’#y¤·Q8˜À^™¯5)pӟϬz7„óï>Î =GÖ-e $9c­XÖ~´‰P4».§14f¨‚P6yÕý¬ûÝ”ý)uË ¡jÕˆ‹‚6H’6´epµÁ[ú€ºÄÇ®a}ÑcÙ>ŽÂí pÑb1Ôp3pÌE‰ˆ¶[ÏOBØ ‡þQîÞ‰9mChç3…v’ zSaUÆ…ÆÚvn›‚bŽ6Ô{´Û÷ªó>iÑóiæ˜ŸÈÆ!§™/ • Y6GEÕjbâp÷t9•T!äÿ^Íô¡°²°´¾ñÇú¤‰ó;´Ú¸{÷Gº]®Vw{ŠùníN­ÞED€)º‹xþgýeºÍWC`þ‘Ÿeb›0ÂØ163:Pž«[ì¶Ҋ׈;-·B…xÌ"t“ö"—ˆdjšåÓØÆîž>v¶±BJ!·íL…ìåÔNL±|mÐÆu¼p»Zr† ظ\¤&ÎŒ$»ë‘h=oõR—•ÝHð¾²E0†-<’ЮqÉÀËÞØÇ£_P$.'g —íHC/MŒˆ‡-û%ü3é+´³´¡7'I*;ìD­(D¥©¹4ǶK]:%™f¸ YllD¶q@þpfvOð0aq§{¢¬ÕžO»^4Dø+m1 -SíÔ`«*5 V_M‰]B‰ýÄ2ßw“Qòu4xk÷ËfPØcm§±{ áç½E+5"žãªºÚ¹§("H"ôƒlÔñ‰ÊÔ Ì:ˆj”‰A\˜Äeƒ9Ÿ¤4ŠËº¢5Eš;òL3• ^éƒÌÕûX"ßÁÂêÞ•”Ö)çãdS5YÙ—´C/ìwn¿AsÇ¡‡ý‚½Ýseý@‹§ËŽvUíá@g;¯²* æ ŒVJšŽ÷¨J\•¤ 2Â} o¼±äè<@‘l§ádÁÞdsÈPÌÏýÞŒMº\Ý/c áÐGE‡€5 0c¬ˆ>€@ÒñaýPÁâm²A‡ƒ³•GÌR/}$gdk¢©qObæ gdµQä³1ÞS¸¸¨†£{.)iD„ØX‚Hß¡¾ô؆UT‚Îܬj³YTo‘fËS¶Øê§>eL³4Oû°ÆŠ¿c^bær~¢ÖiH«Š{í0óLs£ñÔ $@ŽcIMÙl œ3¶lx³CïÏ«Tâè1 endstream endobj 473 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 474 0 R >> endobj 475 0 obj 2256 endobj 477 0 obj << /Length 478 0 R /Filter /FlateDecode >> stream xœÅYÛŽÜ6}ï¯àã+ºôuó”’l΃áY,‚LØ»›¶$Ê¢4íþûœ*R÷#À^Ûp÷H"yªêÔ©*ÍçU$Bü}K»C,ÒbõÙ_‹Ä.ÉÖ_ÚlE´â(„ÿ¾9=5úwßðá—‹øïª\…â—Õâf&B,¸®Âùv¼øÃêýè|º~óóCq^ýóiõýÏ…âé4¸(Úa¸ Ã0ŠÄ>Hâý‰ÅS!þxøíöáý»ï¾/I±øUµøM–­Ìßü)žþ½úéibZÅÿÓÞ3g <Æ¿]ÀQŸÜجÃé#úëÃU>0q×pÅM·rBÿ逸¯Î÷ùªá`F8¶bJ‘ozøëìØ%¸ì'¬8l_þ7vÙ"ŠtöëÆ„ ‚ÿlj!K¡¾¨´mä1W¢¹(Q«Ï­®U&N¦.„9ñÅç8N®¦þ„d#Z«,_~§µ¬o¸»Ek¡Ë4o3…}o"“Ä—L´ÎusUmε,¬óàYΠ•Jeà`YÖ¦º<ó‘\qªM!tˆ™«zQõ£VHa+•j™ãÉTU6¥³«ªqÈ8*‘iÛÔúØ6*[Jâ IHöÉH”fb`sq˜àmq³.džßÆûŠç k_ kÚ:U&u §±Ÿßˆ+n{€q35EeJU6K7­×3TÏô´ÎÉôOª.UþÈ·F˜[ûà™JÕ²!°öf… –âzÑéeîк-í£hË\Yë ëÑÀÏV姦Ív†I¦´F–ÚSdØ>X,Þ‚ˆâ¾­yñ¯ ¼pYUªtàeÛq² ©)›Zf:mܹNUi‰·ä÷”nÉrÃ^yªZ«†ž3[0윊èÔ!šê#Û™v»ëÕ@|háR9(¢Pxn¦©,‰AHq4.æ‡k”I 4Q˜Ìà4æ¬Ø4Pk’¾Î*:i àÒçQ¼ ±0‰Ü†»@üŽEäø*—©ò~AeJ‰Û;LÖà½`8J z›rŒ]X©·ÇÛ[údt¸RžóaÃ:q~‰,Ù25Þî2Â;pÈ©AÊÄñæ8òÎñÀeÀàa»¨È;<ï·{$j¼h’Ï3<ª*‰˜ª%´õa­?€bìóìuϤ._³ &ð½«AÀ­B7gNu lÍ€ $0töj®ô ‘°ÿ˜­G/í×ÁŽ6Øìº†pü8aúÜuN²È¥Õ­3ËÊâ+x¼sða;;¸-ûƒÜ8þ5oâ‰bÎ5gªå¯ Kèpè}a=À%€8ÜÏ|P^=äÜš§-I¢`CKö;ïí#œõ‹~Q¡B³P‚›`â ë ïyÁ˜ÆQ¤kèªæB2˰;(ÖÉ ÅØÓÌõ™¬K§+¨¨ä´—š^ÆèöÈéãz߇s) ñvËÕz¿ÝìÜñûA@\bV€Q˜LŸðiÛcÞef®ËOì˜G*ƒ£çŠ+ÛTÊaDÝæ·!U9¸KH»ý ÒXñ#˜$‘Mör >ù¡âŒ£}Ž^už/‘Â2Ù6­ˆN¹¤EÑ `_¤,š}¾ ¬uÛÐ÷8ÄÒ‹ëÅ P¾PáK(˜‘5¸Á€ÝFÜ"-»›0ž"½XÊ&qHùX®ë®ÜÚ:÷¹™3VÛ"*6XH¥àÔb'¢]®e™Þ)K ÊRDei½÷¤>8VQÑ!}[аÁD‘©ì£Ö¤ìF‡–ÖX}&bOZD\ç¾Må0í(-Z´„j4Äšl- >08Ò|…¸ƒžIÀ©úñ~qùÄÊEª,;­©Y<.ú¨WÍryútêДkbîy„ª²ÎÁ¶0™>ÆÜµÕêçž n¯kù󛹚ÊÐÅ‚šwÜv)úNdF<ƒ;a‡5.‘ì9'ßtU¦»NÜ"WdÇãÔ ³Ô…d—Ì` N˜…Šc3Ø Ê,w;lfµÓ¡øIR­ G=ô>þ–_ýü•jä1*ÉT*|šß Âyß$û¦˜G$n; ÈÖÜߘ^þÄ#Ù#ŸxŠOZ¼öøQQÝꛋ.HKXѼgÂ8-3†u3ã©­¹âO›ùrê‹y3¦Æ·NIÇ}ÉòÚÉ) ç÷uÉ-¡%ó®iP‹yÇj/áUâž=ñòg Rìjý(÷–GnÐgŠQx8xòDøõägV¸ÆBà”ϺOˆmv桇ȓçê,»~³B^ÑTVžj SÝC'Ï2ã½(-~ Ór]è{³îõ|Š Áí¶·¶U–˜9JAò• S˜hÿü€6ƒ„otSg<‘ŸkÕ£ëk/º&?^v£Òjú 7S=Œ™ˆpòÜüPGMÍY„­O××R Æ#ÚKX(èSX(~’ß)XÇžh *ÚB§LK½ ‹ŸAgá‚w¯º;ÙëÆBÓ¸^r´Œí+™-Ë!} j̧Û(Õ^Q'îò<ôJH}‘`:ü©‰‡žž\M›»!nBµ¹É¼¹½=!ÌK\‘.öáÚ7#} N ‡Ä¿¹Pã5Ïw6@ MîjkÙÿÔ\jÓž/d¨÷+^‰[W¹©7ñv†ŠCÏ–u1äæ¹ñ|ÜñcG®Y(®5õ7p à4¦ÚW \ÊÂ}ƒÈÅ?ƒ€ˆD„ÊÔÃzoÝhBçE€._d®3rD[:‘RüÀ‘‹· qJÛ\¢`ê:m ËÅ×™£Ì‡J|'p¨çX£ó5äµÌ|#VU¹9ÜüìžbICü€çÞjÓÇÀìïìݯhúDÚÿt^ÕÖ\9æ^ÂA Gë¹Ï?9™ôŽ!JÛ^øRîæJˆH1:|»1KH‡í iª•à€ÐkNãBȰÛë‡)¼‹to®,9hdp4ôˆïNÈoçÚïÈã½ÛbŒ²æÔ\I¤'Lô¯þÜ{?Š %9 ³k:+ž}ú<¯jêO)(ô;ÜV»Îº:gU*dݲÙÒËÜ…ƒ:Öw(™Ø¥úÌ–/!ók—Ö\)<|0™æÊ0Œ"™Ã n–À,ê6õbd&ÿ>wÀÄí·ýÁÞmÕÁCëu1õ÷™)]§”¡÷ —Z'Á½”°¦6 H.3yãÔYÓYÐKûÙzÎpo(W„.ª+L¾Srµóbt?Iñ¯#Þ¯þý›C endstream endobj 476 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 477 0 R >> endobj 478 0 obj 2433 endobj 480 0 obj << /Length 481 0 R /Filter /FlateDecode >> stream xœÅX]s«F}÷¯èǤ¢ÕEHVek«°„lÉ€®ãÊÍF#‹ btYÑ¿ßÓ3 °wk_²×· 3ÓgNŸîéæûM‡ üýƒ/ÃQ—¢íÍ÷òY‡†]ê ÊGæ€:ývפ-•÷&%<êâ¦[Ýá¢áfCÏ7éA÷7¿ÿ—+20ápcÔ—S“ý›§ ûüÆøÛíôvsÜ|™šÔ1(XŸ)ê˜mÃ0 Ãètè¶ÝëŽø_—‚-ýþÃãÑšýô½÷ÚÝv—–¹Èè1L÷aòãürcW[ëuºÿ‡­=) z/ìð.þÛÊëW/̾qýæB§çç§Ê`O?Ãm›_%¥ Ë«¢oõ~ôõÓ}çm—»¸–Èßjüsu {xÒ¾½RÅhø©÷ÿfÊ^dÛŸoÆh<ØÄ9å"*b™nã´éJ¬¨´ ÿTld&÷o›äHQ"ÂŒ›°à‘¯"‰Å»ù*(¤H¦¹ø¾i$H®1QP&òBßcÂ,ŽF´5w˜zà÷–1õFT§Û&G¯°Šó"‹_÷ _˜®¾ÈŒöùÉÀ,~ÍÂìÈxØVGÅ)E"+B¾Ê}ŠÇ"'cBF¯GÚ…Øc‘“T¿"¹;fñÛÈúÝ2¦'[‡‘È[ʾÄÌ8 “ó*´‘ÉJ0M’v ¼ºOùå% ùHáj…Ý‘øk—ÄQ\ЛoY¸ÛÄQ•i.P™ýª+’’x¡ºEÉ~§oìEX:‘Ñ¢\ây5 v"Ãt&Q¦p9KáVb3•©,0{Ÿ7 5dXÁŸ)åûhCQ˜‹Ö5qÉl'3¸E“u±…’\Ó!cL)Ãá÷¯ruüﲺµû}`ŒÌRV½6˜>Í„ _®‹C˜á¶µÒÆØ»ýkçÈé=ÎŪÒ\*ô.²Ãò“øDÎçÁ½HE ,xfTáiÀéžu&·TÄ[Á!Ä×6ùLÑ•­Cœ$_98I~  ßÅàCMŠ„9W3Zgª¬âõZ¨ +XH0¡ œ\ƒ‚±`®@ì2ùšˆ­ŠD7b*Í›+SBMt£†®ÚžT“x*QBŽHXÅpƒÄ•,ãU³‰Lƒèú„´a÷XšuÍ++ÚHN'Œ³‚“ û`6P Q„ {åÉ„“”7Ã6ì³s¢@ÏŠ¼q ¤%ùk6 #ÂA•ÿ®’Ý…¿®¨k j€ØúgGŒ˜¤bæ9™qvU8†{>1ùW˜ÿ ±d:¥æ¹òοóŠ­IÈøâºd®‰©s[Ãô·5<Ÿ¹àg: ©È­àÄ“ë³ÙZì4% œC¬Mó}†ż&"œÝ׈ª|…(_·S$½É0QS+{¯BHy*G¾ß«·!æãŒŒßó]¨Gr_úóDœZIn%§”&0Ý×ÀØT¾ 36ËÓ3QÖ§Eßt"OŽMyvf»ÓÃrýÛ[½œ;§gËó,7xi޾¶#Œîöû¥˜Í6ÝÙckéÛ<Ø4sî<Ë{!ÇÇíØv}{BS϶i>¥ñƒåÝÛ-çÙ<âÂMç¿hšj&KXg®LÚ¿¶ÐÂö €½»² ˜·îf@d=·1fl/z~°]š³ýg€ýÀÂøfÙÖéÔL:.={Nà¸÷Êâx¾xñœû‡€泉íùd¹“/Ø€Zš–8¶O oþÕ™\óÂiÙò›&»½ºIŸ“5=;ÁÃ|œy–ûB¿:î¤E¶£ Ú¿-<ÛgªÁyÄÖm¼tÜñl9æÝ-ƒ¦ÉžY3éÎà‰X(˜+?U«Uöy[@ðh{p¦XwÎÌ(lŸ¦Nà„r¤Õ´Ö¯+G±4^Î,¶ôsßnkw äá9þ¯dù•“Ÿ–ÖÉ< #–;V²úH5=óÕ°ì˜Sz™/Q•€ÛÙäÊAì4›&öÔÎW¨Ã_>Ú¥ïýV›‡uÑX³¹öœðº¾í}uÆÊž½°}5ž{Û™»4#Õ ë(àÈp9^쯬õ¥;cª=ûi ®>Pª5ÌA¯† ¦®ëÕks|”)úp´ú™8U£ºœ‰6aú†„¨+ÉM:®Ð-9×-“¸„­>&ˆªyshÖ@éVåÛ•|˜àWª*¬<*û™’!™­â”ëê[Üo?~ £Ñ°=DÝÕ™½2ƒIÕv5NmŠ‚›DUÿ*ô)q¤Û3ý@¹9]}pÊÃ5{‹+ëÓäm5õc¦>5 ~“CTQ““1ª[ljrùVbe~9Ò”pwð.tíª¾aäe÷ofÓñgå3eL­‘oä>Yé~®NDÈP1›+™S}¯j•$N•Ç›ðº¼ÚTŸœãmnF×{ÔÈš,&fÍE}ݽ úývEkgh”øOVŸ²õ¸+¿äàºèíÖcH¯ˆÆ5¡ŒÕÎÕw¿Bu”í]|}ºù7ƒ;Ö3 endstream endobj 479 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 480 0 R >> endobj 481 0 obj 2455 endobj 483 0 obj << /Length 484 0 R /Filter /FlateDecode >> stream xœÅUmoâ8þž_1÷évµlÖIHkU‰V¥eÕ áªj»Ò™Ä«‰ÍÚ¦(ÿþÆIh!нo½)ÎØžgfžg&¿þµNχ8w~Õ6:>Gµ)<¯íú!äP¯CÈì©­…¿Yá£:„‹á¸t~üÄÍ^X;¤é®¼D9üøtSL|—Àõ]¦š)¸¡bE³Ï?!úî\D;©žÿ?¤v_ÆPåb ÷ñ×qKÖw6Â6ÙÝÙRÄ«ýÍZ• -¶ÝÊj ëgHµ¬ò©žïæAÞÒ ÛYìJäCÁßWG'@‹ÛÝQE¯û.û\²=-öûÉ`ß7~.—…â‹ÔÀ“zpR0ªNáDМœ]™TªÓ*ßm?i8ŠR®!ã3EU¸œ+Æ@˹YSÅŽ¡+ˆ©Å®â³•aÀ P‘|“ r™ðya +‘`“™”a*×6ûry;Ý¢í»A`;·TA\3m[ô’ ¦h£Õ,ã1\ó˜ Í€jXZ‹NY³¢ô;°aNê0a ž.Å10Žû ^˜Òø¾ëa,û1„íF ÖkØLíé56}ri=?}Ƥ Ȩyóîîûí5ü6 üVǸ(“IåË–"rͳ f VšÍWY ð$< £«»iýÛGxèÇýÛèñx»Ûm`¯±ï³V!ñ|™qƪ)*Laiº¹Ÿ_¡ÇþÙðz=ÚÜÃèöb2ÁÝúû8!  Q ϧ×ý1Œ¦ãÑÝäÂ… c Àï ž—JBf(Ïô²z~S3¨LÙe ¤ô…¡BcÆ_07 16Ç–ÿfR,À– /p};hj¥¦óø„4-X+Ž}aäoµÙ‚¡ˆÝ„=ˆÁ`”ÑÕ6YÙÛÑ‚3© ž<D»)¬›>ßó¼¯^@:04‰ÂárÔD?Óhb•‡EÏ˰©\Ûèc) KÙÛFc‹’‹…ýKºÄ*æÈP“ „ê5%±Åµ¨ V·“M]Ìv–ÏB­¥z¶]Na©äBÑ> endobj 484 0 obj 1086 endobj 486 0 obj << /Length 487 0 R /Filter /FlateDecode >> stream xœÅVÛrÛ6}×Wìc2qYÞ%õÍMäT­×63™Nœ˜„%ŒI‚@)úû.êB‚vß\Ë3qÙ=»{p–Ï“|üý¢Óyy5yîæ˜†¥ÝT’B{atãJ½ëdîGø°›p°†o“zâÃçÉ÷¸X€¶hξ›Üœø×+þ›û÷a5ù=›üz‘@àCöxLQx¾Ÿø¾0ó¢p®ÿBÈ*øþîjwwsùál"/ôBø*©€+R·¤|ÿ²?'‹¬Z„ÿCh7ƒE<Äÿ©gªÞ[Hb¿¿rˆÃüqÖ8ŒìÎXßz©ìJØ=-;´ñØç‹qøÇ0üÓ(úySç/³cáŒ7ë±b>±úoœ2§ŠÚ÷!„ŽUij÷bò!Œ½é,Â…ybC $8ìé~Âs¸d9­%µ›±Ì%‘ç'ú E5·ôàãõßÿÜ.?ÿ‘íO:©E6¦^§x.ÚsÙšBΛ`«µÅAáÄ*&okZÀØ’@ZµæBz¯Â üЋ¢ éÏ:œôrùqñånñ Ì L¼4Lð\œqŽÁªÈ(Ú^´9â#u“J°‡Vá;«a»æ%.ô¸!Bé©wPÑ‚µ4ëd9Zã‚:…M ¦lº–4W‚×,?ôºazQk‚é[c–J[>¨¹Â‘΢iJ²³Xt~÷hã5ÖW9Cÿ‚ã’>ÛPQ1…q¸Àâù˜ŽœÖ9oYуlÍ„ÚAAvX®bCêü€jÃЊ°r_ò®œÀG@¦"Œ3}`Å6TŸr1¥ÁSgW±Šê£] m m ž·­UHá³ÄKÒ`>OãÔš=÷àvqóuy»¸Z|Éîàú®®?-/–‹Oðíúö¯»WÈú3Ï× ýyò¼D"ñ‚=²SDš%yÙ¬^¤–%Ñ ÁyRcP%_1j^ C*]¿“³U+ò‹*“ÞG^–|‹–œ”…¡?@#èsË5v~s÷Çá`à 6aþÜ]úbÜP!um H¼>%y@VãÝ‘ Û|=4ˆ^Óx`/óêìÒ^‘ÂRû"O&“¹MçÒ¢V߈ÿY:°ùwvçO5ßbh+“OMo €£Ü± féy€ ¨"¬9¤‰G¸»tJnCu¼·µÃºÿJD é’ŒápvenÔò> C¨IE¥‘Q”í½•ZÎ8reVÕ¬šr‡ÊRà™^•m©tUð· M·j’ÃÈ‘BXHFó¤&èHüÅ–(åEÁ¬V)-WúQ©:Uv¯PäÐdì ¹»2‡º÷ïŽQà 2³÷ïu1›cõ‹†Œ]$wWv¢ÑÖºå vc«ã]INñ™.×é¾£ë¨n¨]ÝiÌ SšŽÓµ´TŽTuýl_ý‘pª_Q‘¬V‚®z—b¬¹k2ÇUqTVMH„¸¤Â±õ/‘æ—k‚bŽéq¡$Cæä¹ÞoÚš÷f»i‹g¬û-Or$¼©#8è½ß, *Ø_6ô´=hÑq:ŽýŠ@JqÑpýñÅÌà}uÁ̆¤Ñ7zM6šÂÜV¬~nâÅ«fÜšDJzôgNe‘ìxk”¡ëHÇÏ*Óѹ–tÚ~£@¤‚lyä¿ÌF¿ZrÝ'EEö<2_û7“u"Z endstream endobj 485 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Contents 486 0 R >> endobj 487 0 obj 1280 endobj 489 0 obj << /Type /Action /S /GoTo /D [280 0 R /XYZ 72.0 684.0 null] >> endobj 490 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 709.5 164.793 718.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 489 0 R /H /I >> endobj 492 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.13 709.5 542.13 718.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 489 0 R /H /I >> endobj 493 0 obj << /Type /Action /S /GoTo /D [297 0 R /XYZ 72.0 720.0 null] >> endobj 494 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 697.5 177.495 706.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 493 0 R /H /I >> endobj 495 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.052 697.5 542.052 706.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 493 0 R /H /I >> endobj 496 0 obj << /Type /Action /S /GoTo /D [300 0 R /XYZ 72.0 453.158 null] >> endobj 497 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 685.5 292.438 694.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 496 0 R /H /I >> endobj 498 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.348 685.5 541.348 694.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 496 0 R /H /I >> endobj 499 0 obj << /Type /Action /S /GoTo /D [303 0 R /XYZ 72.0 224.301 null] >> endobj 500 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 673.5 222.321 682.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 499 0 R /H /I >> endobj 501 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.778 673.5 541.778 682.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 499 0 R /H /I >> endobj 502 0 obj << /Type /Action /S /GoTo /D [309 0 R /XYZ 72.0 596.24 null] >> endobj 503 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 661.5 271.017 670.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 502 0 R /H /I >> endobj 504 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.48 661.5 541.48 670.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 502 0 R /H /I >> endobj 505 0 obj << /Type /Action /S /GoTo /D [309 0 R /XYZ 72.0 134.289 null] >> endobj 506 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 649.5 231.08 658.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 505 0 R /H /I >> endobj 507 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.724 649.5 541.724 658.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 505 0 R /H /I >> endobj 508 0 obj << /Type /Action /S /GoTo /D [318 0 R /XYZ 72.0 421.42 null] >> endobj 509 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 637.5 314.348 646.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 508 0 R /H /I >> endobj 510 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.212 637.5 541.212 646.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 508 0 R /H /I >> endobj 511 0 obj << /Type /Action /S /GoTo /D [318 0 R /XYZ 72.0 209.209 null] >> endobj 512 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 625.5 229.435 634.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 511 0 R /H /I >> endobj 513 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.734 625.5 541.734 634.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 511 0 R /H /I >> endobj 514 0 obj << /Type /Action /S /GoTo /D [388 0 R /XYZ 72.0 672.0 null] >> endobj 515 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 613.5 268.999 622.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 514 0 R /H /I >> endobj 516 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.492 613.5 541.492 622.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 514 0 R /H /I >> endobj 517 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 601.5 223.981 610.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 389 0 R /H /I >> endobj 518 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.768 601.5 541.768 610.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 389 0 R /H /I >> endobj 519 0 obj << /Type /Action /S /GoTo /D [326 0 R /XYZ 72.0 514.858 null] >> endobj 520 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 589.5 236.626 598.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 519 0 R /H /I >> endobj 521 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.69 589.5 541.69 598.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 519 0 R /H /I >> endobj 522 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 577.5 241.173 586.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 447 0 R /H /I >> endobj 523 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.662 577.5 541.662 586.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 447 0 R /H /I >> endobj 524 0 obj << /Type /Action /S /GoTo /D [335 0 R /XYZ 72.0 720.0 null] >> endobj 525 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 565.5 212.586 574.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 524 0 R /H /I >> endobj 526 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.734 565.5 541.734 574.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 524 0 R /H /I >> endobj 527 0 obj << /Type /Action /S /GoTo /D [335 0 R /XYZ 72.0 695.117 null] >> endobj 528 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 553.5 228.95 562.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 527 0 R /H /I >> endobj 529 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.736 553.5 541.736 562.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 527 0 R /H /I >> endobj 530 0 obj << /Type /Action /S /GoTo /D [335 0 R /XYZ 72.0 290.381 null] >> endobj 531 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 541.5 226.727 550.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 530 0 R /H /I >> endobj 532 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.75 541.5 541.75 550.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 530 0 R /H /I >> endobj 533 0 obj << /Type /Action /S /GoTo /D [338 0 R /XYZ 72.0 720.0 null] >> endobj 534 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 529.5 203.553 538.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 533 0 R /H /I >> endobj 535 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.892 529.5 541.892 538.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 533 0 R /H /I >> endobj 536 0 obj << /Type /Action /S /GoTo /D [341 0 R /XYZ 72.0 672.0 null] >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 517.5 204.653 526.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 536 0 R /H /I >> endobj 538 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.886 517.5 541.886 526.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 536 0 R /H /I >> endobj 539 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 505.5 269.988 514.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 350 0 R /H /I >> endobj 540 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.402 505.5 541.402 514.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 350 0 R /H /I >> endobj 541 0 obj << /Type /Action /S /GoTo /D [344 0 R /XYZ 72.0 510.473 null] >> endobj 542 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 493.5 164.803 502.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 543 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.13 493.5 542.13 502.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 544 0 obj << /Type /Action /S /GoTo /D [354 0 R /XYZ 72.0 720.0 null] >> endobj 545 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 481.5 216.138 490.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 544 0 R /H /I >> endobj 546 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.814 481.5 541.814 490.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 544 0 R /H /I >> endobj 547 0 obj << /Type /Action /S /GoTo /D [369 0 R /XYZ 72.0 274.72 null] >> endobj 548 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 469.5 184.671 478.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 547 0 R /H /I >> endobj 549 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.008 469.5 542.008 478.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 547 0 R /H /I >> endobj 550 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 457.5 258.715 466.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 376 0 R /H /I >> endobj 551 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.554 457.5 541.554 466.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 376 0 R /H /I >> endobj 552 0 obj << /Type /Action /S /GoTo /D [382 0 R /XYZ 72.0 720.0 null] >> endobj 553 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 445.5 179.379 454.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 552 0 R /H /I >> endobj 554 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.926 445.5 541.926 454.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 552 0 R /H /I >> endobj 555 0 obj << /Type /Action /S /GoTo /D [382 0 R /XYZ 72.0 660.16 null] >> endobj 556 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 433.5 310.599 442.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 555 0 R /H /I >> endobj 557 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.235 433.5 541.235 442.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 555 0 R /H /I >> endobj 558 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 421.5 287.356 430.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 392 0 R /H /I >> endobj 559 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.38 421.5 541.38 430.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 392 0 R /H /I >> endobj 560 0 obj << /Type /Action /S /GoTo /D [397 0 R /XYZ 72.0 469.8 null] >> endobj 561 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 409.5 243.172 418.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 560 0 R /H /I >> endobj 562 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.65 409.5 541.65 418.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 560 0 R /H /I >> endobj 563 0 obj << /Type /Action /S /GoTo /D [397 0 R /XYZ 72.0 245.264 null] >> endobj 564 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 397.5 376.758 406.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 563 0 R /H /I >> endobj 565 0 obj << /Type /Annot /Subtype /Link /Rect [ 530.83 397.5 540.83 406.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 563 0 R /H /I >> endobj 566 0 obj << /Type /Action /S /GoTo /D [400 0 R /XYZ 72.0 720.0 null] >> endobj 567 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 385.5 243.232 394.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 566 0 R /H /I >> endobj 568 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.558 385.5 541.558 394.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 566 0 R /H /I >> endobj 569 0 obj << /Type /Action /S /GoTo /D [400 0 R /XYZ 72.0 583.712 null] >> endobj 570 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 373.5 162.208 382.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 569 0 R /H /I >> endobj 571 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.144 373.5 542.144 382.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 569 0 R /H /I >> endobj 572 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 361.5 347.027 370.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 412 0 R /H /I >> endobj 573 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.012 361.5 541.012 370.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 412 0 R /H /I >> endobj 574 0 obj << /Type /Action /S /GoTo /D [408 0 R /XYZ 72.0 398.214 null] >> endobj 575 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 349.5 138.295 358.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 574 0 R /H /I >> endobj 576 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.292 349.5 542.292 358.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 574 0 R /H /I >> endobj 577 0 obj << /Type /Action /S /GoTo /D [408 0 R /XYZ 72.0 183.001 null] >> endobj 578 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 337.5 147.947 346.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 577 0 R /H /I >> endobj 579 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.232 337.5 542.232 346.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 577 0 R /H /I >> endobj 580 0 obj << /Type /Action /S /GoTo /D [417 0 R /XYZ 72.0 430.52 null] >> endobj 581 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 325.5 144.069 334.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 580 0 R /H /I >> endobj 582 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.256 325.5 542.256 334.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 580 0 R /H /I >> endobj 583 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 720.0 null] >> endobj 584 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 313.5 211.813 322.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 583 0 R /H /I >> endobj 585 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.738 313.5 541.738 322.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 583 0 R /H /I >> endobj 586 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 625.605 null] >> endobj 587 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 301.5 173.628 310.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 586 0 R /H /I >> endobj 588 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.074 301.5 542.074 310.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 586 0 R /H /I >> endobj 589 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 555.228 null] >> endobj 590 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 289.5 174.732 298.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 589 0 R /H /I >> endobj 591 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.068 289.5 542.068 298.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 589 0 R /H /I >> endobj 592 0 obj << /Type /Action /S /GoTo /D [461 0 R /XYZ 72.0 720.0 null] >> endobj 593 0 obj << /Type /Annot /Subtype /Link /Rect [ 72.0 277.5 127.555 286.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 592 0 R /H /I >> endobj 594 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.228 277.5 542.228 286.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 592 0 R /H /I >> endobj 595 0 obj << /Type /Action /S /GoTo /D [464 0 R /XYZ 72.0 720.0 null] >> endobj 596 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 265.5 268.317 274.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 595 0 R /H /I >> endobj 597 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.496 265.5 541.496 274.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 595 0 R /H /I >> endobj 598 0 obj << /Type /Action /S /GoTo /D [485 0 R /XYZ 72.0 720.0 null] >> endobj 599 0 obj << /Type /Annot /Subtype /Link /Rect [ 96.0 253.5 253.766 262.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 598 0 R /H /I >> endobj 600 0 obj << /Type /Annot /Subtype /Link /Rect [ 531.584 253.5 541.584 262.5 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 598 0 R /H /I >> endobj 601 0 obj << /Length 602 0 R /Filter /FlateDecode >> stream xœÅÝßsÇ‘àñwýóˆ=ÝÍUUfVeÞ›$[¶.$[ Jë½ØØ˜‰¸-~Xæþõ×ÙpÀéf¸¿/¾Û‹0føm€ìN'ªkþó³º+ÓÿýüŸm÷úÝgÿùô\ݶ“þô”õ]Õ}³Ý»ÝÓǶ»ÎêÅíù£éŽÑôÁÛÝ_>»ù¬ìþðÙ¿ÿÇô‹ove:à·ÏÊù§›~õÙ/¾~þJù§ý²ûå³/üì~m»Zv?þ|:EÕö¥X)¥Öï¥Eþ¿¶ûñÝîß/¾{ÿê‡o?ÿ|÷7Ù·}Ûýt¸Û}wyóxyý/ÿ±ûñöû?ú£Imÿþh?Ì¿‡ãŸ%ÁÛôÿÇ~VÿèLËÇ¿òâoćçOÏÎ_PŽÏMÏ¿vþÒõáÓÿ#Çžãÿ~òÏQNŒòòOññ_‘êÿôߎaû|nïý½hŸäÿ'Ÿ³c~íOÿiš.þŠÛ^÷»™~±ô}ß]|ñæÍÕÍ//žxsùpyüÓ~ø,ÑöÓw•ücñé^y~Tß‹EþgÖGíÏÛØÞÖÒHl$v×Jb%ñq+$ÀÚRÐ#ÄäÇÒHl$vk%±’x€Ø ‰…ÄÄD°ÁN;DpÁA:t"èD0ˆ`Á‚­ÁV€`+@°U Ø*l¶ [‚­ÁÖˆ A!‚B•*T"¨DЈ A{z%ã#þqÜ+‰•ÄÄ£XHÜI öFb#1 "D0€  (J‚R€àt Gb (J‚Ò€ 4"(DPˆ A!‚J•*4"hDЈ`'‚v"Ø‰à ‚ƒ"èDЉ Á ‚AƒÔµA-@P+Ô µAm@PÔµA!‚B…*T"¨DЈ Aë{ëÓ\&˩ڧ‡©:}[¯Óë«¢î‹Ã´/®BvùWðlîkOsß¶»‹ïnß\ýüþÃèw~neô›óS +¥ [~ÎÇ.Ž‹}i­©cyÜrâÙPm¨vRO¯ÃH­¨¤ž^Š‘ZPÝQ,Y*²TdiÈÒ¥!ËŽ,;²ìȲ#Ë,²ÈÒ‘¥#KG–,Y² bÙ ±l…X¶B,[%–­ËV‰å¢šX¶F,[C–‚,Y ²Td©ÈR‘¥!KC–†, YvdÙ‘eG–Yd9¥#KG–Ž,Y² dÄR ±”B,¥K©ÄR*±”J,¥KiÄR±”†,Y ²d©ÈR‘¥"KE–†, Y²ìȲ#ËŽ,²Èr Ë,Y:²tdÈ2eK-ÄR ±ÔB,Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}Í}ælÓ 2àÌl±é‹ÔXŒZ]NdsÀžÜêò<‘íóDvú¶m»‹W·wOãØ§'^ýðí«Ãý鉫›ÓÇ_Üßß¾¾º|¸úÛáôäW·7—W7‡»û•ë\ŸÎˆ­ü>NŸ`å‚·çÔ¹[,[»à%uz*Hm¨vRO¼¤VTRO¼¤F–†, YvdÙ‘eG–Yd9¥#KG–Ž,Y² dÄ2/xIM,ó‚Ô•Xæ/©‰e^ð‚º˼à%5²d)ÈR¥"KE–Š,Y²4diȲ#ËŽ,;²Èr Ë,²tdéÈÒ‘e Ë@–A,ó‚—ÔÄ2/xIM,ó‚—ÔÄ2/xA݈e^ð’Y ²d)ÈR¥"KE–Š, YN¯í똒鯸Լ?LGDµkÙ¶¼àÍÕYGû1_ðzLתo/o~yºÞÍÇoÏþxù×ëþtùîpö©çæZ™®¶§?Àâ‹<¸8Hö£N¹­üÎÎÏQÞ9Gê õtýCjCµ“zºþ!µ¢zzºþ!5²tdéÈ2e Ë –y#©‰eÞJêJ,óf:R˼ÔXæ u¤F–‚,Y ²Td©ÈR‘¥"KC–†, YvdÙ‘eG–Yd9å@–Ž,Y:² dÈ2ˆåô‹¨&–y¯©‰eÞmGjb™÷Ûº˼ãŽÔÈR¥ KA–‚,Y*²TdiÈÒ¥!ËŽ,;²ìȲ#Ë,²ÈÒ‘¥#KG–,Y² b™÷⑚XæÝx ®Ä2ïÇ#5±Ì;òHM,óž%›‡E9ëÃKµº6Æ’å¬+¿ÊÙ¬ËçY×Ð}Ý]ütÿ4ê:>¼¼9}ü*—yœ^½ø¥ï¯®~=Ξž¹}óx}8_Þ1ßRûtFZ,'§£—õmßlDX¯ËÖCCµ“zúFAjEõ u+¨TwT©Y ²d©ÈR‘¥"KC–†, Y²ìȲ#ËŽ,²Èr KG–Ž,Y:² dÈ2ˆe.!5±Ì2 ®Ä2ÈšXæP7b™ dH,Y ²d©ÈR‘¥"KE–†, Y²ìȲ#ËŽ,²Èr Ë,Y:²tdÈ2eË\ Cjb™ dHM,s ©‰e.u#–¹@†ÔÈR¥ KA–‚,Y*²TdiÈ2_ÛK”:}û—Ó94PŸÊ+Wá¦Ë¡Anu|64ˆã™éèÝÅ/ïn÷Ï“ƒãs¦LJßÜ<în.¯¼ÝŸ>õâËœŽ??lºò˜Ô"¦—QËÃÎÏS.M!µ“zºò µ¢zzºò µ º£:HÈ2eË\šBjb™KS@]‰e.M!5±Ì¥) nÄ2—¦Y ²d)ÈR‘¥"KE–Š, Y²4dÙ‘eG–Yd9å@–Y:²tdéÈ2e Ë –Ó/¢šXæÒRË\šBjb™KS@݈e.M!5²d)ÈR¥ KE–Š,Y²4diȲ#ËŽ,;²ìÈr Ë,²tdéÈÒ‘e Ë@–,ƒXæÒRË\šêJ,si ©‰e.M!5±Ì¥)¤F–‚,Y ²Td©ÈR‘¥!Ëõ1]œ€!ͼ8¥MÿáEi+#¤•9S¾=ÕÙœiºžïô*¹µÉ/ÿö¼óÈüøwW?ÿ|¸;Ü<œžúúêpýæô0ïʺ?=|Ú™dþø«Ï??=¸¼yqЫ¾]üÞÚ^rf6Úò7y:pqÔôwÉì˜.[^9©óßkP+ª§¿K¦áÝÆ†:ÿ½µ º£:Hÿ^ƒÚPí¤Î¯A­¨F–,Y² b)…XJ!–Rˆ¥Tb)•XJ%–Òˆ¥4b)XJC–‚,Y ²Td©ÈR‘¥!KC–†, YvdÙ‘eG–Yd9¥#KG–Ž,Y² dÄR ±ÔB,µK­ÄR+±ÔJ,µKmÄR±Ô†,Y ²d©ÈR‘¥"KE–†,sSbÇþo¿”Ék¹V[)ÖW®€l,¯åb¹‹äôÒèébÑw¿ÿû¯ÓE×iÍ€¼f`zøÝåë»Ûå‚ÉT4bX_~ÓÁç‡M*/yÁ;Æò°ó“”olBêŽê õt‘BjCµ“zºH!µ¢z:e Ë@–A,ó6R˼Ô•Xæm,¤&–y ©‰eÞÆBjd)ÈR¥ KE–Š,Y²4dii9%QdK¤î Õ†j'õ¨¨VTR{Aµ Y:² dÈ2ˆeÞÆBjb™·±€º˼…ÔÄ2ocu#–y ©‘¥ KA–‚,Y*²Td©ÈÒ¥!KC–YvdÙ‘å@–Yd9¥#KG–Ž,Y² b™·±šXæm,¤&–y ©‰eÞÆêF,ó6R#KA–‚,Y ²Td©ÈR‘¥!ËyyE ©`¤3//˜þ=œßÍz9mZIÕ²Üèuúûÿt£L. x¼¸}wõ_§=0Ƈ _^½Ø#ßœúðúíåÍÕý»•1B„GL¯GW¾ìé,.ã˾i/¥­¶¼èTwT©ón8PªÔy7¨ÕƒÔ‚,Y ²d©ÈR‘¥"KC–†, YvdÙ‘eG–Yd9å@–Ž,Y:² dÈ2eË\ãBjb™k\@]‰e®q!5±Ì5.¤&–¹Æ…ÔÈR¥ KA–Š,Y*²4diÈÒ¥!ËŽ,;²ìÈr Ë,²tdéÈÒ‘¥#Ë@–,ƒXæRË\ãêJ,s ©‰e®qu#–¹Æ…ÔÈR¥ KA–Š,Y*²TdiÈrþn¯VÑÕ÷¼1FL×à*±6,ð•‘B]î§9ý0-<ßœæw‡»«ç›ŽÏü|wûîôè¸Ãæñãy¸p>I˜®Âëô'÷ºòÕN/޳ÓPeyÜù)«æ(ï•åÊòòQX.,ï,”{c9Su¦L5˜j Õ…¡©æ0 åH5Ça(Gª9#yCª9C9S¦*LU˜ª0UeªÊT•©S5¦jLµ3ÕÎT;SíLu0ÕÁTSu¦êLÕ™j0Õ`ªÁT©æ° åH5Çe$¯H5f(Gª92C9R͡ʙª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©RÍiÊ‘jÎÓH^‘jNÔPŽTs¦Fò†Tsª†r¦*LU˜ª0UeªÊT•©*S5¦:¿UM;îR fRóŠî¥˜ŒµÉÙÚ|­-·ž^Í_B÷ýå=cóç}<޾üöÏ_ž}u{ýøîfq?YŸ~qº~)£øÊW;¾2£ŠÑ²m+ǭͨP.,ï,”{c¹±ÜQ•åÊr¤š3*”#ÕœQ¡©æŒ åH5gT$oH5gT(gªÂT…© S¦ªLU™ª2UcªÆT-Uk¸zß’÷Âraygy |4–Ëå^Y®,gªÁTƒ©S ¤š3*”#ÕœQ‘¼"ÕœQ¡©æŒ åH5gT(gªÂT…© SU¦ªLU™ª1UcªÆT©v¦Ú™jgªƒ©¦:˜ª3UgªÎT©S ¦H5gT(Gª9£"yEª9£B9RÍÉRÍÊ™ª0UaªÂT•©*SU¦ªLÕ˜jΨT"´®M‘>9×ÉU)mºv\/+3*]Ù¶ÖŽ3*Ù·—3ªùáóŒj~ð¯W÷—×§ÇO»ÒL×BçoáœÛÕ1}5­¶ò•OÇ.f>moŦãÜWŽ[ŽˆŒåŽòéåÊòòéåÂòÎò yn)„r¤š› ‘¼"ÕÜVåH57B9RÍ­…PÎT…© S¦ªLU™ª2UcªÆT©SíLµ3ÕÎTSLu0UgªÎT©:S ¦L5jî9„r¤š»‘¼"ÕÜwåH5w"yCª¹÷Ê™ª0UaªÂT•©*SU¦ªLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦:˜ª3UgªÎTƒ©S ¤š›¡©æ¶D(Gª¹1Ê‘jnMDò†Tss"”3UaªÂT…© SU¦ªLU™ª1Õœ(µ8î³ &/óD©×ð!+‡õv–—]µóÍŒú‹}³ºÿhÏìŸn®^ß¾9œžøíêáí‹=´ß¿úáÛÏ??Ÿ2ä?ânÓŸÅtåË}zíZÕ†­·fä@äò’ÜXî(Ÿþ5G¹²| <›‘œ©¦:˜ª3UgªÎTƒ©S ¤:/6#9R›‘©Î‹ÍHŽTçÅf oHu^lFr¦*LU˜ª0UaªÊT•©*S5¦jL5›™–:5[ò\lFraygy <›‘ÜXî(ÏÅf$W–3Õ`ªÁTƒ©R›‘©Î‹Í@^‘ê¼ØŒäHu^lFr¤:/6#9S¦*LU˜ª2UeªÊT©S5¦jLµ3ÕÎT;SLu0ÕÁT©:Su¦êL5˜j0Õ@ªób3’#Õy±È+R›‘©Î‹Í@Þê¼ØŒäLU˜ª0UaªÊT•©*SU¦jLõ£ûã·ÏÓ>ÚÂ|eìw¾ø+›õómÉúþÃÛêÅîâ‹Ó‡¯ÞÞÞ=œþñêþáöîýé‰ÛŸO?C°é5"zØÊW>¾˜W•½Ôã*º•ã–ã-aygy <÷ƒ!¹±ÜQžûÁ\Y>PL5˜j0Õ@ª¹PåH5Ê‘¼"Õ\(‡r¤š åPŽTs¡Ê™ª0UaªÂT•©*SU¦jLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦êLÕ™ª3UgªÁTƒ©RÍ…r(Gª¹PŽä©æB9”#Õ\(Gò†Ts¡Ê™ª0UaªÂT•©*SU¦ªLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦:˜ª3UgªÎTƒ©S ¤š åPŽTs¡Ê‘j.”C9RÍ…r$oH5Ê¡œ© S¦*LU˜ª2UeªÊT©ÎÓ°ñ´þö©ÑqfMemε6 盈õýñ ý|äÍ/WÇÍOÜÞ|ô‹zøêýýÃáÝb0ÓýhÓÆV¾ØéàÅQ¾¯ùææ}J—Ç-GT•åÊòòéŸ8” Ë;ËåÓ?q(7–3Õ`ªÁT©æê1”#Õ\=†r¤š«ÇPŽTsõÉRÍÕc(gªÂT…© S¦ªLU™ª2UcªÆT©v¦Ú™jgª©¦:˜ê`ªÎT©:S ¦L5˜j Õ\=†r¤š«ÇH^‘j®C9RÍÕc(Gª¹z åLU˜ª0UaªÊT•©*S5¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSu¦êLÕ™ª3Õ`ªÁT©æê1”#Õ\=FòŠTsõÊ‘j®#yCª¹z åLU˜ª0UaªÊT•©*SU¦jL5çeC"Z42dšçekc©ÕI™/¶2Ûß§2æ·Â|1);>qœ”?þËÕÍ›Ûߣ±Ü—¦?æômxåóŸ_g+ùb¾!¾¥Òº©Z;Ëjí±¨¬lªdSÕ7U±¥êmSµéÜ÷Mç~l:÷cÓ¹_ý+´Àm:÷¾éÜû¦sï›Î}l:÷±éÜÇ–sßÊ–sßÊ–sßÊ–sßê–sßê–sßê–sßê–sßÚ–sßÚ–sßÚ¦s/›Î½l:÷²éÜë¦s¯›Î½n:÷ºéÜÛ¦so›Î½m:÷}Ó¹ï›Î}ßtîǦs?6û±éÜMçÞ7{ßtî}Ó¹Mç>6ûØrî§_ÜTm9÷R¶œ{)[νÔ-ç^ê–s/u˹—¶åÜËê ½eµéÜ˦s/›Î½l:÷²éÜë¦s¯›Î½n:÷¶éÜÛ¦so›Î}ßtîû¦sß7û¾éÜMç~l:÷cÓ¹÷MçÞ7{ßtîcÓ¹Mç>6ûØrîµl9÷Z¶œ{-[νÖ-ç~Þ_{CµåÜkÛrîµm9÷Ú¶œ{m›Î½l:÷›®kuÓu­nº®ÕM×µºéºV7]×ê¦ëÚœhèô ËX=qŸœ äDãFø*K×å\#×5œÏ5ôy®¡»‹¯oïN¾»½;œ}sóóíݻˇ«Û›Åì¡í{N6bza´ü §O±8®ïKŒlÛÊqËG \ËåŽr«,W–”÷Âra9SíLu0ÕÁTSu¦êLÕ™j0Õ`ªÁT©æý†(Gªy¿!É+RÍû QŽTó~C”#Õ¼ßåLU˜ª0UaªÊT•©*S5¦jLÕRµßûeK(ïåÆrGù¨,W–”{a¹°œ©:S ¦L5jÞoˆr¤š÷’¼"Õ¼ßåH5ï7$yCªy¿!Ê™ª0UaªÂT•©*SU¦ªLÕ˜ª1Ucª©v¦Ú™ê`ªƒ©¦:˜ª3UgªÎTƒ©S ¤š÷¢©æý†(Gªy¿!Ê‘jÞoHò†Tó~C”3UaªÂT…© SU¦ªLU™ª1ÕyÚXÃ{AÓºyÚè6'²6G´³¾Ì7"}yÔ8}“n/væ?>|ÚzÿôÄÕÍéãËÝãõÃÕÃÛ»Ãå›Ã›ÓÓßßÝþrwùn1†ûp/¥[¬üvN‡/&u_ŸßÖryÜrÀ ,(Ï›$–w–ÊsÅ&ÉåŽraªÂT…©*SU¦ªLU™ª1UcªÆT;SíLµ3ÕÁTSLu0UgªÎT©S ¦HU R•‚T¥ U)HU*R•ŠT¥"UiHUR•ÆT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ªZª¤ª©jEªZ‘ªV¤ª ©jCªÚª6¦*LU˜ª0UeªÊT•©S5¦j}ß2h­’Kú_Lÿ%–⥯×ûâ’hÞŒä|~qÜ<¼N/ÙúîâËÇ«ë7/sÿx8¿ï+ÚÞËôYêÚ'|qðùa¹+ÔtZrز8ìü¤äîΛ㚛;ƒÚPí¤ÎA­¨¤ÎmA-¨&”µ!KA–‚,Y*²Td©ÈÒ¥!KC–†,;²ìȲ#Ë,²ÈÒ‘¥#KG–Ž,Y² b™£lRËdƒºËc“šXæÔXæ›ÔÈR¥ KA–Š,Y*²TdiÈÒenÔÜ=Þ´öRomnreù@ynÔLraygy <7j&¹±œ©S ¦H5çÖ(Gª9·F9R͹5Ê‘jέIÞjέQÎT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ªZª¤ª©jEªZ‘ªV¤ª ©jCªÚª6¦*LU˜ª0UeªÊT•©S5¦j}o}úOФ£A°æ4³Õ¼»vqàêàZÎ÷8OûüOߎ|wñÕíÍÍáuÞÉ{zî»Ë›Ë_ï7+£º*ž¿Xù̧ϰ2´³é7_¬ÙÊqkS;” Ë;Ëå½±ÜXî(•åÊr¦êLÕ™ª3UgªÁTƒ©RÍ1Ê‘jòH^‘jŽòPŽTs˜Gò†Tsœ‡r¦*LU˜ª0UeªÊT•©*S5¦jLÕRÕÂ#Öþ \›ì¡\Y>P> Ë…ååro,7–3Õ`ªÁT©ædåH5'{(Gª9ÙC9RÍÉÉRÍÉÊ™ª0UaªÂT…©*SU¦ªLÕ˜ª1Ucª©v¦Ú™jgªƒ©¦:˜ª3UgªÎTƒ©S ¦H5'{(Gª9Ù#yEª9ÙC9RÍÉÊ‘jNöPÎT…© S¦ªLU™ª2Ucªy‡lÉ«ƒ¼¡vûÄk¾C¶>øÇõ±2©Óó]ûÆÓû Ô|…·»øãáú×ÃÝ‹'¾~¼™'w‹·˜^UõQ"Fo+ŸöÅgXØ÷uLÚ¼Z·[äýŸÛë¼ýÔ†jŸj‹P[ò¼ù“äÊòò¼ù“äÂòÎò@yÞüIrc9SíLµ3ÕÎTSLu0ÕÁT©:Su¦L5˜j Õù­`IŽTç·‚%9Rß –äHu~+X7¤:¿,É™ª0UaªÂT…©*SU¦ªLÕ˜ª1Ucª©v¦Ú™jgªƒ©¦:˜ª3UgªÎTƒ©S ¦Hu~+X’#Õù­`A^‘êüV°$Gªó[Á’©ÎoKr¦*LU˜ª0UeªÊT•©S5¦jLÕ˜jgª©v¦:˜ê`ªƒ©:Su¦êLÕ™j0Õ`ªTç·‚%9Rß ä©ÎoKr¤:¿,ÈRß –äL•Í–”Í–”Í–”Í–”Í–”Í–”Í–”Í–æ5•ùαe°™g®©,eDX¯k3غ2©ÍõùÓ—ònãyR{|ç”é[©ï.^½½¼{ÞÐp~â円ó¿»|¸|Ñ?Ü=¾~x¼[ì‹ÚFÕˆ.k_õôÇÅ>ß7zk+Ç-§ åÆr'y®nC¹²| |ú¶ˆrayg9RÍÕm(Gª¹ºäÂT…© SU¦ªLU™ª2UcªÆT-U¥Ô|Gç y¯,W–”Âraygy ÜËåL5˜j0Õ@ªÓ?Æ,Gª¹º åH5W·¡©æê6’7¤š«ÛPÎT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ª¹º åH5W·‘¼"Õ\݆r¤š«ÛPŽTsuÊ™ª0UaªÂT•©*SU¦jL57PÌUV%œÌru›™„[_†´³¼Ì?Ðü8òã=¨=ß]â«Û›Ÿ¯~y|ž™Ÿ|š™œr›©áÃW>ééèóæëx×éµd“¶rÜbd1]Ç£¼³

]Ç£ÜXî(Ÿ®ãQ®,(W¦ªLU™ª2UcªÆT©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5j.C9RÍ¥s(Gª¹tåH5—Α¼!Õ\:‡r¦*LU˜ª0UaªÊT•©*S5¦jLÕRµ…Üðúç½°\XÞY(åÆrG¹W–+Ë™j0Õ`ªÁT©æÒ9”#Õ\:GòŠTséÊ‘j.C9RÍ¥s(gªÂT…© SU¦ªLU™ª1UcªÆT©v¦Ú™jgªƒ©¦:˜ª3UgªÎT©S ¦H5—Ρ©æÒ9’W¤ª©jEªZ‘ª6¤ª ©jcªÂT…© SU¦ªLU™ª2UcªysŸ.Э¯]L|r¨šSàhÏ+ôÇ Y\ͯpÏçÀÇ·ÑÉ•$»‹ßN¾½}}ù¼1áñ™ÛŸO?¼Lçañéáï;\ßþš;žžüúêz±À®åìó½à¥­üæN/þ(u?ª?]-Ž[^ *Ëʧ (–çÄñô—iC(Ÿ^, ÜXî(•åÊòr/,–3UgªÁTƒ©R•‚T¥ U)HU*R•ŠT¥"U©HUR•†T¥1UaªÂT…©*SU¦ªLU™ª1UcªÆT;SíLµ3ÕÁTSLu0UgªÎT©S ¦HU RÕ‚Tµ U-HU+RÕŠTµ"UmHURÕÆT…© S¦*LU™ª2UeªÆTó.Ü:]©ä*¯Ûô/•›ØÊq«×Žùg׎Çìss…Óµãüà»Ë¿_½{|wzâOïþzÜ<ëøøéRrþøë«Ãõ›ûÓã/®¯o;¼9ÿ-äÛ YnIåuå7s:|qܼôtŠÊX9nñêvÞ…äÊòòyR Ë;Ëåó.¤ 7–3UcªÆT©v¦Ú™jgª©¦:˜ê`ªÎT©:S ¦L5˜j U)HU R•‚T¥"U©HU*R•†T¥!UiHUS¦*LU˜ª2UeªÊT©S5¦jLµ3ÕÎT;SLu0ÕÁT©:Su¦êL5˜j0Õ@ªZª¤ª©jEªZ‘ªV¤ª©jCªÚª6¦*LU˜ª0UeªÊT•©*S5¦š×èîO{Qo¿pÍkô㛽å»Í-Ž[»FÏWZç×èÇ=¬½åûÙ}ùxwuxszüáç¶Ç‡_>üâûoNþx¸|s¸[ìŽ2o‹U§aù•O‡/ŽÓ½Æô«uå°ó³—ïrêéŸR ª;ªƒÔÓ·RªÔ¹ÿ ©‰eîþêJ,sïRËÜùÔXæ¾/¤F–‚,Y ²Td©ÈR‘¥"KC–†,--G¸ùÚwîå ¦²\Y>P> Ë…ååro,7–3Õ`ªÁT©æf/(Gª¹Ù Ê‘jnö‚r¤š›½¼!ÕÜìåLU˜ª0UaªÂT•©*SU¦jLÕ˜ª1ÕÎT;SíLµ3ÕÁTSLÕ™ª3UgªÁTƒ©S ¤š›½ ©æf/$¯H57{A9RÍÍ^PŽTs³”3UaªÂT…©*SU¦ªLÕ˜ªåGK±*d\’c ®!±rØÐ•)P;߯ŸöÇNß<ºº~ó´ÙËñ™äŸ8®ú?~üêýýÃáÝý鉿\=¼½}|8=ñÕí»_¯‡ÏD¼ø¿þz{÷°x}§ûaOÿ.˧ÃÇ}:]c5Y9nùÊ­°\XÞY(oåÆrG¹T–+Ë™ª2UeªÊT•©S5¦jLµ3ÕÎT;SLu0ÕÁTSu¦êLÕ™j0Õ`ªTsÅ/Ê‘j®øE9RÕŠTsÅ/Ê‘j®øE9RÍ¿$¦*LU˜ª0UeªÊT•©SÍÅëôßTÕN^6inIöœ.[¼Ž,óò¡£8¾É‚ï.~º~ƒ…³·W˜^Ý<ônïž?þóožþþîöÿ^Ÿ¿Ì'¶éRh—•¯ý|ðâ(Ý[Ž­+GŸ½üi"ÉsE É…ååò\QBrc¹“<ªˆr¤š?W$yEªù“E”#ÕüÙ"ÉRÍŸ.¢œ© S¦*LU™ª2UeªÊT©S5¦Ú™jgª©¦:˜ê`ªƒ©:Su¦êL5˜j0Õ@ªùƒF”#ÕüA#Ê‘jþ åH5ÐHò†Tó(gªÂT…© S¦ªLU™ª2UcªÆT©v¦Ú™jgª©¦:˜ê`ªÎT©:S ¦L5˜j ÕüA#Ê‘jþ ‘䩿QŽTó(GªùƒF”3UaªÂT…©*SU¦ªLÕ˜êü®^ªUÝ>H9¾§Ät”D[9jØâ g¾Gë|@tÜMl~›ˆÝÅ¿^Ý?^^¿xâ«ÅJL߆Zñù?W>ß‹CÏ“ýôGœÚš-Ž;?%Ó·#R©ëôÝåÆrGùôÝåÊòòé»Ê‘imµ¶T­¥˜÷-¹4–Ëå¹ÝÉ•åå¹ÝÉ…ååLµ3ÕÎT;SLu0ÕÁT©:Su¦êL5˜j0Õ@ª9éF9RÍI7É+RÍI7Ê‘jNºIÞjNºQÎT…© S¦ªLU™ª2UeªÆT©SíLµ3ÕÎTSLu0ÕÁT©:Su¦L5˜j Õœt£©æ¤åH5'Ý(Gª9é&yCª9éF9S¦*LU˜ª0UeªÊT•©S5¦jLµ3ÕÎT;SíLu0ÕÁTSu¦êLÕ™j0Õ`ªÁT©jAªZª¤ª©jEªZ‘ª6¤ª ©jCªÊfKÊfKÊfKÊfKÊfKÊfKÊfKÊfK9é¶QKÕµaô§‡Ç:}£ŸŽ)µ©­¸:ë¶óýWâi÷Óü-ï.~º¹úûûÓÃï¯/~¾½{wÿ¿NÏ}{uóø÷ÿ~züß¾|õ»ÿüêôñ¿½xþ«÷¿üvuóâ‰W·×—wW÷ûýòE»íËtQ¼ô•ßðé3,Žó}™^ED7_9nùr¼²\Y>P>}wG¹°¼³Aïû:]ÇÊgzqàùq±é*¸TYûœŸŽÑPm¨vROW¤VTRO—¤TwT#Ë\q„r¤™+ŽH^‘gþ]F9ÍG(G¦¹âåLU˜ª0UaªÊT•©*S5¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSu¦êLÕ™ª3Õ`ªÁT©æŠ#”#Õ\qDòŠTsÅÊ‘j®8"yCª¹âåLU˜ª0UaªÊT•©*SU¦jLÕ˜ª¥êô_l/¾%Ïwc#¹²| |– Ë;ËåÞXn,gªÁTƒ©RÍG(Gª¹âåH5W¡©æŠ#’7¤š+ŽPÎT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ªZª¤ª©jEªZ‘ªV¤ª ©jCªÚª6¦*LU˜ª0UeªÊT•©Sµ¾ïªáQêJþéi}.9š^&FLפ+ޱ¸È™°úqOÛøÎwyî.¾»ºùÃ_Îgñ)×ó •ã_{~Xì­k)S¾rÜbÌÞPm¨vRç¦6 VTR×ÜÒ†äÂòÎräY+­‰ÖŠHkC¦µ!ÔÚ˜jniÓåøÞm[raygy <·´!¹±ÜQž[Ú\Y>PÞ™jgª©v¦:˜ê`ªƒ©:Su¦êL5˜j0Õ`ªT[Aª­ ÕVj«HµU¤Ú*Rm ©¶†T[Cª­1UaªÂT…©*SU¦ªLÕ˜ª1UcªÆT;SíLµ3ÕÁTSLÕ™ª3UgªÎTƒ©S ¤*©æ[© ©æ;¨ ©æ;¨ ©æ;¨ ©æ;¨\˜ª0UaªÊT•©*SU¦jLÕ˜ª1ÕÎT;SíLu0ÕÁTSLÕ™ª3UgªÁTƒ©RÕ‚Tµ U-HU RÕŠTµ"U­HURÕ†Tµ1U6[R6[R6[R6[R6[R6[R6[R6[šgøU#Jn†äó ÿÃ;”,\áÇò=Tìi†ßö±»øýëë«_ïçãø¶/=J)«ŸâÅáçÇپǘÚb+ÇŸˆá¤öŠjEõ uT ª;ªƒÔ¹nåH3×퓼"Ïü©Ê‘h®ÛG92Íuû(gªÂT…© SU¦ªLU™ª1UcªÆT©v¦Ú™jgªƒ©¦:˜ª3UgªÎT©S ¦H5×í£©æº}’W¤šëöQŽTsÝ>ÉRÍuû(gªÂT…© SU¦ªLU™ª2UcªÆT©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5j®ÛG9RÍuû(Gª¹nåH5×퓼!Õ\·r¦*LU˜ª0UaªÊT•©*S5¦jLÕ˜jgª©v¦Ú™ê`ªl¦$l¨$lª$l¬$l®$l°$l²$l´$l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶¤l¶4Ïü§×ÍUk_É?=QŸgþÖsG µ‡ŸõeÞ—ëãhº´Î/àcwñÍÍëÛw¿^>\ýõúðüÜ·W½»¼{ÿüð«·—7¿îsÀØ{^#Nÿ°­|‰çƒ;Ù×㻾÷•£–ó½Îò@ùtA‡rc¹£|º C¹²| |º C9SLu0UgªÎT©S ¦Hµ¤Ú Rm©¶‚T[Eª­"ÕV‘jkHµ5¤ÚS¦*LU˜ª0UeªÊT•©S5¦j©*Ç·³ÜçŽà$–w–ÊGc¹±ÜQî•åÊr¦L5˜j0Õ@ª¹98Ê‘jnNòŠTssp”#ÕÜåH57G9S¦*LU˜ª2UeªÊT©S5¦jLµ3ÕÎT;SLu0ÕÁT©:Su¦êL5˜j0Õ@ª¹98Ê‘jnNòŠTssp”#ÕÜœä ©ææà(gªÂT…© SU¦ªLU™ª2Ucª¹¯w÷R«ŽíÓ´Ü|LßÑJ·X9jÄâ‚hþ»¼Öãàézßw_|ÿÍ‹GŸþåJ¡–ÃN±•OùâøÅÓßÞÞK)2V\ 8òU!ÈóU!É•ååùªäÂòÎò@y¾*$9S¦ªLU™ª2UcªÆT©SíLµ3ÕÎTSLu0UgªÎT©:S ¦L5j.!E9RÍ%¤$¯H5—¢©æR’7¤šKHQÎT…© S¦ªLU™ª2UeªÆT©æO§—‚nµnÉó'Ž$W–”çOI.,ï,”çOIn,gªÁTƒ©RÍ%¤(Gª¹„åH5—¢©æR’7¤šKHQÎT…© S¦*LU™ª2UeªÆT©SíLµ3ÕÎT;SLu0ÕÁT©:Su¦L5˜j0Õ@ª¹„åHU RÕŠTµ"U­HURÕ†Tµ!UmLU˜ª0UaªÊT•©*S5¦jL5÷ ›¾É×2ÖÆÀŸžÙæŠÓé˜R¬ÊÊ«Sæv¾Ÿôt)Þ>L™mwñÅ—ß¼xô©)sÛi¥´ÖW>å‹ãö}ë¹ét‹•—Sæ@ùôÂåÆrGùôÂåÊòòé…!Ê…åLU˜ª2UeªÊT©S5¦Ú™jgª©v¦:˜ê`ªƒ©:Su¦êL5˜j0Õ`ªTssb”#ÕÜœ˜ä©ææÄ(Gª¹91Ê‘jnNŒr¦*LU˜ª0UeªÊT•©S5¦jLÕ˜jgª©v¦:˜ê`ªƒ©:Su¦êLÕ™j0Õ`ªTssb”#ÕÜœ˜ä©ææÄ(Gª¹91ÉRÍ͉QÎT…© S¦ªLU™ª2UeªÆT©SíLµ3ÕÎTSLu0ÕÁT©:Su¦L5˜j ÕÜœåHUÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlIÙlé86ž^‘…¡ì<5î#bzɲr ¯ìS ç×úáÝ-·%x}¸¹¿ºùåìÈÜLß,ÉÔ•Ïñ✗?¶ˆ©­cå¸óó0¯Ü^ªÔóÂÉíµ¢zz^5¹½TwT#Ë@–,YÖ‚0kAšµ ÎZ‘g­´V$Z+"­ ™Ö†PkcªÂT…© SU¦ªLU™ª2UcªÆT©v¦Ú™jgªƒ©¦:˜ê`ªÎT©:S ¦L5ê¼C É‘ê¼C É‘ê¼C É‘ê¼C ÈRwh!9S¦*LU˜ª0UeªÊT•©S5¦šë%G)Ó?Dz%Ïõ’$–w–Ês½$ÉåŽò\/Ire9S ¦L5˜j Õy‡’#Õy‡W¤:ïÐBr¤:ïÐBr¤:ïÐBr¦*LU˜ª0UeªÊT•©S5¦jLÕ˜jgª©v¦:˜ê`ªƒ©:Su¦êLÕ™j0Õ`ªTçZHŽTçZ@^‘ê¼C É‘ê¼C ÈRwh!9S¦*LU˜ª2UeªÊT•©SߤQžöZYäŸþ1üasî•Ò}íëD]\Í¿µ«|15ÿ,dúÖ»‹?üé§Óƒo÷÷‡»¿x¸9Ü]^Ÿžøþñ¯×W¯_0ÿ åü-sɦ<•ßÁéðÅqùF¡¹JqÜrªÐXn,w”§É•åå­°\XÞYÎT…© S¦ªLU™ª2UcªÆTó§³¹C@XÛ”Ê{c¹±ÜQ>*Ë•åå^X.,gªÎTƒ©S ¤šk7QŽTsí&É+R͵›(Gª¹v“ä ©æÚM”3UaªÂT…©*SU¦ªLU™ª1UcªÆT;SíLµ3ÕÁTSLu0UgªÎT©S ¦H5×n¢©æÚM”#Õ\»‰r¤šk7IÞj®ÝD9S¦*LU˜ª0UeªÊT•©SÍ;»tº¤æä’>÷•ÕèyãýÊaÑV&}ñSõé†ÿé[£ì.¾{ÿê‡o?ÿüôÄOÏ3‹ã/_Þ<>,æÇŸQxÝüã÷Ü%wñ%O‡/޳}±(ÅÆÚoõü´å ’Oß@Q®,$Ï$(–w–ʧo (Gª¹‚„ä ©æ ”3UaªÂT…© SU¦ªLU™ª1Ucª–ªQÔ·ä¹DžäÂòÎò@ùh,7–;ʽ²\YÎTƒ©S ¦H5W ©æ ’W¤š+HPŽTs Ê‘j® A9S¦*LU˜ª2UeªÊT©S5¦jLµ3ÕÎT;SLu0ÕÁT©:Su¦êL5˜j0Õ@ª¹‚åH5W¼"Õ\A‚r¤š+HHÞj® A9S¦*LU˜ª2UeªÊT•©SÍiL”§ý·O/rc>ý·¨+ÇÅÓþ‹¿ÿñ³¦ÿû½ôQ{ endstream endobj 491 0 obj [ 490 0 R 492 0 R 494 0 R 495 0 R 497 0 R 498 0 R 500 0 R 501 0 R 503 0 R 504 0 R 506 0 R 507 0 R 509 0 R 510 0 R 512 0 R 513 0 R 515 0 R 516 0 R 517 0 R 518 0 R 520 0 R 521 0 R 522 0 R 523 0 R 525 0 R 526 0 R 528 0 R 529 0 R 531 0 R 532 0 R 534 0 R 535 0 R 537 0 R 538 0 R 539 0 R 540 0 R 542 0 R 543 0 R 545 0 R 546 0 R 548 0 R 549 0 R 550 0 R 551 0 R 553 0 R 554 0 R 556 0 R 557 0 R 558 0 R 559 0 R 561 0 R 562 0 R 564 0 R 565 0 R 567 0 R 568 0 R 570 0 R 571 0 R 572 0 R 573 0 R 575 0 R 576 0 R 578 0 R 579 0 R 581 0 R 582 0 R 584 0 R 585 0 R 587 0 R 588 0 R 590 0 R 591 0 R 593 0 R 594 0 R 596 0 R 597 0 R 599 0 R 600 0 R ] endobj 488 0 obj << /Resources 3 0 R /Type /Page /MediaBox [0 0 612 792] /CropBox [0 0 612 792] /BleedBox [0 0 612 792] /TrimBox [0 0 612 792] /Parent 1 0 R /Annots 491 0 R /Contents 601 0 R >> endobj 602 0 obj 13341 endobj 603 0 obj << /Type /Action /S /GoTo /D [172 0 R /XYZ 72.0 720.0 null] >> endobj 604 0 obj << /Type /Action /S /GoTo /D [145 0 R /XYZ 72.0 708.0 null] >> endobj 605 0 obj << /Type /Action /S /GoTo /D [145 0 R /XYZ 72.0 634.35 null] >> endobj 606 0 obj << /Type /Action /S /GoTo /D [145 0 R /XYZ 72.0 466.515 null] >> endobj 607 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 72.0 720.0 null] >> endobj 608 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 72.0 495.616 null] >> endobj 609 0 obj << /Type /Action /S /GoTo /D [163 0 R /XYZ 72.0 696.0 null] >> endobj 610 0 obj << /Type /Action /S /GoTo /D [163 0 R /XYZ 72.0 520.356 null] >> endobj 611 0 obj << /Type /Action /S /GoTo /D [41 0 R /XYZ 72.0 684.0 null] >> endobj 612 0 obj << /Type /Action /S /GoTo /D [41 0 R /XYZ 72.0 176.744 null] >> endobj 613 0 obj << /Type /Action /S /GoTo /D [64 0 R /XYZ 72.0 507.281 null] >> endobj 614 0 obj << /Type /Action /S /GoTo /D [280 0 R /XYZ 72.0 630.57 null] >> endobj 615 0 obj << /Type /Action /S /GoTo /D [283 0 R /XYZ 72.0 519.041 null] >> endobj 616 0 obj << /Type /Action /S /GoTo /D [283 0 R /XYZ 72.0 341.119 null] >> endobj 617 0 obj << /Type /Action /S /GoTo /D [294 0 R /XYZ 72.0 240.0 null] >> endobj 618 0 obj << /Type /Action /S /GoTo /D [400 0 R /XYZ 72.0 553.841 null] >> endobj 619 0 obj << /Type /Action /S /GoTo /D [400 0 R /XYZ 72.0 208.076 null] >> endobj 620 0 obj << /Type /Action /S /GoTo /D [408 0 R /XYZ 72.0 368.347 null] >> endobj 621 0 obj << /Type /Action /S /GoTo /D [408 0 R /XYZ 72.0 242.543 null] >> endobj 622 0 obj << /Type /Action /S /GoTo /D [408 0 R /XYZ 72.0 153.134 null] >> endobj 623 0 obj << /Type /Action /S /GoTo /D [417 0 R /XYZ 72.0 491.8 null] >> endobj 624 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 547.357 null] >> endobj 625 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 437.809 null] >> endobj 626 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 375.017 null] >> endobj 627 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 265.469 null] >> endobj 628 0 obj << /Type /Action /S /GoTo /D [422 0 R /XYZ 72.0 237.433 null] >> endobj 629 0 obj << /Type /Action /S /GoTo /D [425 0 R /XYZ 72.0 696.0 null] >> endobj 630 0 obj << /Type /Action /S /GoTo /D [425 0 R /XYZ 72.0 312.924 null] >> endobj 631 0 obj << /Type /Action /S /GoTo /D [425 0 R /XYZ 72.0 156.74 null] >> endobj 632 0 obj << /Type /Action /S /GoTo /D [428 0 R /XYZ 72.0 720.0 null] >> endobj 633 0 obj << /Type /Action /S /GoTo /D [428 0 R /XYZ 72.0 624.092 null] >> endobj 634 0 obj << /Type /Action /S /GoTo /D [428 0 R /XYZ 72.0 494.676 null] >> endobj 635 0 obj << /Type /Action /S /GoTo /D [428 0 R /XYZ 72.0 205.544 null] >> endobj 636 0 obj << /Type /Action /S /GoTo /D [431 0 R /XYZ 72.0 720.0 null] >> endobj 637 0 obj << /Type /Action /S /GoTo /D [431 0 R /XYZ 72.0 702.72 null] >> endobj 638 0 obj << /Type /Action /S /GoTo /D [431 0 R /XYZ 72.0 349.154 null] >> endobj 639 0 obj << /Type /Action /S /GoTo /D [434 0 R /XYZ 72.0 453.897 null] >> endobj 640 0 obj << /Type /Action /S /GoTo /D [434 0 R /XYZ 72.0 242.198 null] >> endobj 641 0 obj << /Type /Action /S /GoTo /D [434 0 R /XYZ 72.0 117.53 null] >> endobj 642 0 obj << /Type /Action /S /GoTo /D [437 0 R /XYZ 72.0 508.123 null] >> endobj 643 0 obj << /Type /Action /S /GoTo /D [437 0 R /XYZ 72.0 129.969 null] >> endobj 644 0 obj << /Type /Action /S /GoTo /D [443 0 R /XYZ 72.0 517.494 null] >> endobj 645 0 obj << /Type /Action /S /GoTo /D [443 0 R /XYZ 72.0 346.291 null] >> endobj 646 0 obj << /Type /Action /S /GoTo /D [446 0 R /XYZ 72.0 332.588 null] >> endobj 647 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 662.127 null] >> endobj 648 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 444.873 null] >> endobj 649 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 395.847 null] >> endobj 650 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 346.821 null] >> endobj 651 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 273.795 null] >> endobj 652 0 obj << /Type /Action /S /GoTo /D [452 0 R /XYZ 72.0 200.769 null] >> endobj 653 0 obj << /Type /Action /S /GoTo /D [455 0 R /XYZ 72.0 489.2 null] >> endobj 654 0 obj << /Type /Action /S /GoTo /D [455 0 R /XYZ 72.0 325.12 null] >> endobj 655 0 obj << /Type /Action /S /GoTo /D [455 0 R /XYZ 72.0 241.36 null] >> endobj 656 0 obj << /Type /Action /S /GoTo /D [455 0 R /XYZ 72.0 157.6 null] >> endobj 657 0 obj << /Type /Action /S /GoTo /D [464 0 R /XYZ 72.0 599.409 null] >> endobj 658 0 obj << /Type /Action /S /GoTo /D [467 0 R /XYZ 72.0 447.875 null] >> endobj 659 0 obj << /Type /Action /S /GoTo /D [479 0 R /XYZ 72.0 215.52 null] >> endobj 660 0 obj << /Type /Action /S /GoTo /D [485 0 R /XYZ 72.0 689.264 null] >> endobj 661 0 obj << /Type /Action /S /GoTo /D [485 0 R /XYZ 72.0 639.984 null] >> endobj 662 0 obj << /Type /Action /S /GoTo /D [485 0 R /XYZ 72.0 554.704 null] >> endobj 664 0 obj << /Title (MySQL++ v3.2.2 User Manual) /Parent 663 0 R /Next 666 0 R /A 603 0 R >> endobj 665 0 obj << /Type /Action /S /GoTo /D [172 0 R /XYZ 72.0 550.441 null] >> endobj 666 0 obj << /Title (Table of Contents) /Parent 663 0 R /Prev 664 0 R /Next 667 0 R /A 665 0 R >> endobj 667 0 obj << /Title /Parent 663 0 R /Prev 666 0 R /Next 670 0 R /First 668 0 R /Last 669 0 R /Count -2 /A 173 0 R >> endobj 668 0 obj << /Title /Parent 667 0 R /Next 669 0 R /A 177 0 R >> endobj 669 0 obj << /Title /Parent 667 0 R /Prev 668 0 R /A 180 0 R >> endobj 670 0 obj << /Title /Parent 663 0 R /Prev 667 0 R /Next 678 0 R /First 671 0 R /Last 677 0 R /Count -7 /A 18 0 R >> endobj 671 0 obj << /Title /Parent 670 0 R /Next 672 0 R /A 185 0 R >> endobj 672 0 obj << /Title /Parent 670 0 R /Prev 671 0 R /Next 673 0 R /A 188 0 R >> endobj 673 0 obj << /Title /Parent 670 0 R /Prev 672 0 R /Next 677 0 R /First 674 0 R /Last 676 0 R /Count -3 /A 191 0 R >> endobj 674 0 obj << /Title (Queries That Do Not Return Data) /Parent 673 0 R /Next 675 0 R /A 604 0 R >> endobj 675 0 obj << /Title (Queries That Return Data: MySQL++ Data Structures) /Parent 673 0 R /Prev 674 0 R /Next 676 0 R /A 605 0 R >> endobj 676 0 obj << /Title (Queries That Return Data: Specialized SQL Structures) /Parent 673 0 R /Prev 675 0 R /A 606 0 R >> endobj 677 0 obj << /Title /Parent 670 0 R /Prev 673 0 R /A 194 0 R >> endobj 678 0 obj << /Title /Parent 663 0 R /Prev 670 0 R /Next 703 0 R /First 679 0 R /Last 702 0 R /Count -24 /A 197 0 R >> endobj 679 0 obj << /Title /Parent 678 0 R /Next 680 0 R /A 46 0 R >> endobj 680 0 obj << /Title /Parent 678 0 R /Prev 679 0 R /Next 681 0 R /A 202 0 R >> endobj 681 0 obj << /Title /Parent 678 0 R /Prev 680 0 R /Next 682 0 R /A 205 0 R >> endobj 682 0 obj << /Title /Parent 678 0 R /Prev 681 0 R /Next 683 0 R /A 33 0 R >> endobj 683 0 obj << /Title /Parent 678 0 R /Prev 682 0 R /Next 684 0 R /A 67 0 R >> endobj 684 0 obj << /Title /Parent 678 0 R /Prev 683 0 R /Next 685 0 R /A 130 0 R >> endobj 685 0 obj << /Title /Parent 678 0 R /Prev 684 0 R /Next 688 0 R /First 686 0 R /Last 687 0 R /Count -2 /A 51 0 R >> endobj 686 0 obj << /Title (SQL NULL is a type modifier) /Parent 685 0 R /Next 687 0 R /A 607 0 R >> endobj 687 0 obj << /Title (SQL NULL is a unique value) /Parent 685 0 R /Prev 686 0 R /A 608 0 R >> endobj 688 0 obj << /Title /Parent 678 0 R /Prev 685 0 R /Next 692 0 R /First 689 0 R /Last 691 0 R /Count -3 /A 42 0 R >> endobj 689 0 obj << /Title (SQLTypeAdapter) /Parent 688 0 R /Next 690 0 R /A 609 0 R >> endobj 690 0 obj << /Title (String) /Parent 688 0 R /Prev 689 0 R /Next 691 0 R /A 610 0 R >> endobj 691 0 obj << /Title (Reference Counting) /Parent 688 0 R /Prev 690 0 R /A 611 0 R >> endobj 692 0 obj << /Title /Parent 678 0 R /Prev 688 0 R /Next 695 0 R /First 693 0 R /Last 694 0 R /Count -2 /A 52 0 R >> endobj 693 0 obj << /Title (Loading a binary file into a BLOB column) /Parent 692 0 R /Next 694 0 R /A 612 0 R >> endobj 694 0 obj << /Title (Serving images from BLOB column via CGI) /Parent 692 0 R /Prev 693 0 R /A 613 0 R >> endobj 695 0 obj << /Title /Parent 678 0 R /Prev 692 0 R /Next 696 0 R /A 220 0 R >> endobj 696 0 obj << /Title /Parent 678 0 R /Prev 695 0 R /Next 697 0 R /A 223 0 R >> endobj 697 0 obj << /Title /Parent 678 0 R /Prev 696 0 R /Next 698 0 R /A 226 0 R >> endobj 698 0 obj << /Title /Parent 678 0 R /Prev 697 0 R /Next 699 0 R /A 229 0 R >> endobj 699 0 obj << /Title /Parent 678 0 R /Prev 698 0 R /Next 700 0 R /A 232 0 R >> endobj 700 0 obj << /Title /Parent 678 0 R /Prev 699 0 R /Next 701 0 R /A 235 0 R >> endobj 701 0 obj << /Title /Parent 678 0 R /Prev 700 0 R /Next 702 0 R /A 238 0 R >> endobj 702 0 obj << /Title /Parent 678 0 R /Prev 701 0 R /A 241 0 R >> endobj 703 0 obj << /Title /Parent 663 0 R /Prev 678 0 R /Next 708 0 R /First 704 0 R /Last 707 0 R /Count -4 /A 138 0 R >> endobj 704 0 obj << /Title /Parent 703 0 R /Next 705 0 R /A 246 0 R >> endobj 705 0 obj << /Title /Parent 703 0 R /Prev 704 0 R /Next 706 0 R /A 249 0 R >> endobj 706 0 obj << /Title /Parent 703 0 R /Prev 705 0 R /Next 707 0 R /A 252 0 R >> endobj 707 0 obj << /Title /Parent 703 0 R /Prev 706 0 R /A 255 0 R >> endobj 708 0 obj << /Title /Parent 663 0 R /Prev 703 0 R /Next 728 0 R /First 709 0 R /Last 727 0 R /Count -19 /A 141 0 R >> endobj 709 0 obj << /Title /Parent 708 0 R /Next 710 0 R /A 260 0 R >> endobj 710 0 obj << /Title /Parent 708 0 R /Prev 709 0 R /Next 711 0 R /A 263 0 R >> endobj 711 0 obj << /Title /Parent 708 0 R /Prev 710 0 R /Next 712 0 R /A 266 0 R >> endobj 712 0 obj << /Title /Parent 708 0 R /Prev 711 0 R /Next 717 0 R /First 713 0 R /Last 716 0 R /Count -4 /A 489 0 R >> endobj 713 0 obj << /Title (Inserting a Single Row) /Parent 712 0 R /Next 714 0 R /A 614 0 R >> endobj 714 0 obj << /Title (Inserting Many Rows) /Parent 712 0 R /Prev 713 0 R /Next 715 0 R /A 615 0 R >> endobj 715 0 obj << /Title /Parent 712 0 R /Prev 714 0 R /Next 716 0 R /A 616 0 R >> endobj 716 0 obj << /Title (Interaction with Transactions) /Parent 712 0 R /Prev 715 0 R /A 617 0 R >> endobj 717 0 obj << /Title /Parent 708 0 R /Prev 712 0 R /Next 718 0 R /A 493 0 R >> endobj 718 0 obj << /Title /Parent 708 0 R /Prev 717 0 R /Next 719 0 R /A 496 0 R >> endobj 719 0 obj << /Title /Parent 708 0 R /Prev 718 0 R /Next 720 0 R /A 499 0 R >> endobj 720 0 obj << /Title /Parent 708 0 R /Prev 719 0 R /Next 721 0 R /A 502 0 R >> endobj 721 0 obj << /Title /Parent 708 0 R /Prev 720 0 R /Next 722 0 R /A 505 0 R >> endobj 722 0 obj << /Title /Parent 708 0 R /Prev 721 0 R /Next 723 0 R /A 508 0 R >> endobj 723 0 obj << /Title /Parent 708 0 R /Prev 722 0 R /Next 724 0 R /A 511 0 R >> endobj 724 0 obj << /Title /Parent 708 0 R /Prev 723 0 R /Next 725 0 R /A 514 0 R >> endobj 725 0 obj << /Title /Parent 708 0 R /Prev 724 0 R /Next 726 0 R /A 389 0 R >> endobj 726 0 obj << /Title /Parent 708 0 R /Prev 725 0 R /Next 727 0 R /A 519 0 R >> endobj 727 0 obj << /Title /Parent 708 0 R /Prev 726 0 R /A 447 0 R >> endobj 728 0 obj << /Title /Parent 663 0 R /Prev 708 0 R /Next 733 0 R /First 729 0 R /Last 732 0 R /Count -4 /A 524 0 R >> endobj 729 0 obj << /Title /Parent 728 0 R /Next 730 0 R /A 527 0 R >> endobj 730 0 obj << /Title /Parent 728 0 R /Prev 729 0 R /Next 731 0 R /A 530 0 R >> endobj 731 0 obj << /Title /Parent 728 0 R /Prev 730 0 R /Next 732 0 R /A 533 0 R >> endobj 732 0 obj << /Title /Parent 728 0 R /Prev 731 0 R /A 536 0 R >> endobj 733 0 obj << /Title /Parent 663 0 R /Prev 728 0 R /Next 738 0 R /First 734 0 R /Last 737 0 R /Count -4 /A 350 0 R >> endobj 734 0 obj << /Title /Parent 733 0 R /Next 735 0 R /A 541 0 R >> endobj 735 0 obj << /Title /Parent 733 0 R /Prev 734 0 R /Next 736 0 R /A 544 0 R >> endobj 736 0 obj << /Title /Parent 733 0 R /Prev 735 0 R /Next 737 0 R /A 547 0 R >> endobj 737 0 obj << /Title /Parent 733 0 R /Prev 736 0 R /A 376 0 R >> endobj 738 0 obj << /Title /Parent 663 0 R /Prev 733 0 R /Next 743 0 R /First 739 0 R /Last 742 0 R /Count -4 /A 552 0 R >> endobj 739 0 obj << /Title /Parent 738 0 R /Next 740 0 R /A 555 0 R >> endobj 740 0 obj << /Title /Parent 738 0 R /Prev 739 0 R /Next 741 0 R /A 392 0 R >> endobj 741 0 obj << /Title /Parent 738 0 R /Prev 740 0 R /Next 742 0 R /A 560 0 R >> endobj 742 0 obj << /Title /Parent 738 0 R /Prev 741 0 R /A 563 0 R >> endobj 743 0 obj << /Title /Parent 663 0 R /Prev 738 0 R /Next 755 0 R /First 744 0 R /Last 754 0 R /Count -11 /A 566 0 R >> endobj 744 0 obj << /Title /Parent 743 0 R /Next 747 0 R /First 745 0 R /Last 746 0 R /Count -2 /A 569 0 R >> endobj 745 0 obj << /Title (Using MySQL++ in an MFC Project) /Parent 744 0 R /Next 746 0 R /A 618 0 R >> endobj 746 0 obj << /Title (Using MySQL++ in a Windows Forms C++/CLI Project) /Parent 744 0 R /Prev 745 0 R /A 619 0 R >> endobj 747 0 obj << /Title /Parent 743 0 R /Prev 744 0 R /Next 748 0 R /A 412 0 R >> endobj 748 0 obj << /Title /Parent 743 0 R /Prev 747 0 R /Next 751 0 R /First 749 0 R /Last 750 0 R /Count -2 /A 574 0 R >> endobj 749 0 obj << /Title (Makefiles) /Parent 748 0 R /Next 750 0 R /A 620 0 R >> endobj 750 0 obj << /Title (Xcode) /Parent 748 0 R /Prev 749 0 R /A 621 0 R >> endobj 751 0 obj << /Title /Parent 743 0 R /Prev 748 0 R /Next 754 0 R /First 752 0 R /Last 753 0 R /Count -2 /A 577 0 R >> endobj 752 0 obj << /Title (Makefiles) /Parent 751 0 R /Next 753 0 R /A 622 0 R >> endobj 753 0 obj << /Title (Third-Party MinGW IDEs \(Dev-C++, Code::Blocks...\)) /Parent 751 0 R /Prev 752 0 R /A 623 0 R >> endobj 754 0 obj << /Title /Parent 743 0 R /Prev 751 0 R /A 580 0 R >> endobj 755 0 obj << /Title /Parent 663 0 R /Prev 743 0 R /Next 791 0 R /First 756 0 R /Last 781 0 R /Count -35 /A 583 0 R >> endobj 756 0 obj << /Title /Parent 755 0 R /Next 781 0 R /First 757 0 R /Last 780 0 R /Count -24 /A 586 0 R >> endobj 757 0 obj << /Title (v1.7.10) /Parent 756 0 R /Next 758 0 R /A 624 0 R >> endobj 758 0 obj << /Title (v1.7.19) /Parent 756 0 R /Prev 757 0 R /Next 759 0 R /A 625 0 R >> endobj 759 0 obj << /Title (v1.7.20) /Parent 756 0 R /Prev 758 0 R /Next 760 0 R /A 626 0 R >> endobj 760 0 obj << /Title (v2.0.0) /Parent 756 0 R /Prev 759 0 R /Next 767 0 R /First 761 0 R /Last 766 0 R /Count -6 /A 627 0 R >> endobj 761 0 obj << /Title (Connection class changes) /Parent 760 0 R /Next 762 0 R /A 628 0 R >> endobj 762 0 obj << /Title (Exception-related changes) /Parent 760 0 R /Prev 761 0 R /Next 763 0 R /A 629 0 R >> endobj 763 0 obj << /Title (Query class changes) /Parent 760 0 R /Prev 762 0 R /Next 764 0 R /A 630 0 R >> endobj 764 0 obj << /Title (Result/ResUse class changes) /Parent 760 0 R /Prev 763 0 R /Next 765 0 R /A 631 0 R >> endobj 765 0 obj << /Title (Row class changes) /Parent 760 0 R /Prev 764 0 R /Next 766 0 R /A 632 0 R >> endobj 766 0 obj << /Title (Miscellaneous changes) /Parent 760 0 R /Prev 765 0 R /A 633 0 R >> endobj 767 0 obj << /Title (v2.2.0) /Parent 756 0 R /Prev 760 0 R /Next 768 0 R /A 634 0 R >> endobj 768 0 obj << /Title (v2.3.0) /Parent 756 0 R /Prev 767 0 R /Next 769 0 R /A 635 0 R >> endobj 769 0 obj << /Title (v3.0.0) /Parent 756 0 R /Prev 768 0 R /Next 780 0 R /First 770 0 R /Last 779 0 R /Count -10 /A 636 0 R >> endobj 770 0 obj << /Title (Class name changes) /Parent 769 0 R /Next 771 0 R /A 637 0 R >> endobj 771 0 obj << /Title (Connection class changes) /Parent 769 0 R /Prev 770 0 R /Next 772 0 R /A 638 0 R >> endobj 772 0 obj << /Title (Date and Time class changes) /Parent 769 0 R /Prev 771 0 R /Next 773 0 R /A 639 0 R >> endobj 773 0 obj << /Title (Exception changes) /Parent 769 0 R /Prev 772 0 R /Next 774 0 R /A 640 0 R >> endobj 774 0 obj << /Title (Field and Fields class changes) /Parent 769 0 R /Prev 773 0 R /Next 775 0 R /A 641 0 R >> endobj 775 0 obj << /Title (Query class changes) /Parent 769 0 R /Prev 774 0 R /Next 776 0 R /A 642 0 R >> endobj 776 0 obj << /Title (Result, ResUse, and ResNSel class changes) /Parent 769 0 R /Prev 775 0 R /Next 777 0 R /A 643 0 R >> endobj 777 0 obj << /Title (Row class changes) /Parent 769 0 R /Prev 776 0 R /Next 778 0 R /A 644 0 R >> endobj 778 0 obj << /Title (Specialized SQL Structure \(SSQLS\) changes) /Parent 769 0 R /Prev 777 0 R /Next 779 0 R /A 645 0 R >> endobj 779 0 obj << /Title (Miscellaneous changes) /Parent 769 0 R /Prev 778 0 R /A 646 0 R >> endobj 780 0 obj << /Title (v3.0.7) /Parent 756 0 R /Prev 769 0 R /A 647 0 R >> endobj 781 0 obj << /Title /Parent 755 0 R /Prev 756 0 R /First 782 0 R /Last 790 0 R /Count -9 /A 589 0 R >> endobj 782 0 obj << /Title (v1.7.18) /Parent 781 0 R /Next 783 0 R /A 648 0 R >> endobj 783 0 obj << /Title (v1.7.19) /Parent 781 0 R /Prev 782 0 R /Next 784 0 R /A 649 0 R >> endobj 784 0 obj << /Title (v1.7.22) /Parent 781 0 R /Prev 783 0 R /Next 785 0 R /A 650 0 R >> endobj 785 0 obj << /Title (v1.7.24) /Parent 781 0 R /Prev 784 0 R /Next 786 0 R /A 651 0 R >> endobj 786 0 obj << /Title (v2.0.0) /Parent 781 0 R /Prev 785 0 R /Next 787 0 R /A 652 0 R >> endobj 787 0 obj << /Title (v3.0.0) /Parent 781 0 R /Prev 786 0 R /Next 788 0 R /A 653 0 R >> endobj 788 0 obj << /Title (v3.0.1) /Parent 781 0 R /Prev 787 0 R /Next 789 0 R /A 654 0 R >> endobj 789 0 obj << /Title (v3.0.2) /Parent 781 0 R /Prev 788 0 R /Next 790 0 R /A 655 0 R >> endobj 790 0 obj << /Title (v3.1.0) /Parent 781 0 R /Prev 789 0 R /A 656 0 R >> endobj 791 0 obj << /Title /Parent 663 0 R /Prev 755 0 R /First 792 0 R /Last 796 0 R /Count -8 /A 592 0 R >> endobj 792 0 obj << /Title /Parent 791 0 R /Next 796 0 R /First 793 0 R /Last 795 0 R /Count -3 /A 595 0 R >> endobj 793 0 obj << /Title (Preamble) /Parent 792 0 R /Next 794 0 R /A 657 0 R >> endobj 794 0 obj << /Title (GNU LESSER GENERAL PUBLIC LICENSE) /Parent 792 0 R /Prev 793 0 R /Next 795 0 R /A 658 0 R >> endobj 795 0 obj << /Title (How to Apply These Terms to Your New Libraries) /Parent 792 0 R /Prev 794 0 R /A 659 0 R >> endobj 796 0 obj << /Title /Parent 791 0 R /Prev 792 0 R /First 797 0 R /Last 798 0 R /Count -3 /A 598 0 R >> endobj 797 0 obj << /Title (I. COPYRIGHT) /Parent 796 0 R /Next 798 0 R /A 660 0 R >> endobj 798 0 obj << /Title (II. LICENSE) /Parent 796 0 R /Prev 797 0 R /First 799 0 R /Last 799 0 R /Count -1 /A 661 0 R >> endobj 799 0 obj << /Title (A. REQUIREMENTS OF MODIFIED WORKS) /Parent 798 0 R /A 662 0 R >> endobj 800 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding >> endobj 801 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 802 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding >> endobj 803 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /Encoding /WinAnsiEncoding >> endobj 804 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 805 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 806 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Italic /Encoding /WinAnsiEncoding >> endobj 807 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Bold /Encoding /WinAnsiEncoding >> endobj 808 0 obj << /Limits [(Connection) (Connection)] /Names [(Connection) 185 0 R] >> endobj 809 0 obj << /Limits [(Query) (Query)] /Names [(Query) 188 0 R] >> endobj 810 0 obj << /Limits [(Result) (Result)] /Names [(Result) 191 0 R] >> endobj 811 0 obj << /Limits [(SQLTypeAdapter) (SQLTypeAdapter)] /Names [(SQLTypeAdapter) 609 0 R] >> endobj 812 0 obj << /Limits [(SimpleResult) (SimpleResult)] /Names [(SimpleResult) 604 0 R] >> endobj 813 0 obj << /Limits [(StoreQueryResult) (StoreQueryResult)] /Names [(StoreQueryResult) 605 0 R] >> endobj 814 0 obj << /Limits [(String) (String)] /Names [(String) 610 0 R] >> endobj 815 0 obj << /Limits [(Transaction) (Transaction)] /Names [(Transaction) 220 0 R] >> endobj 816 0 obj << /Limits [(abi-1.7.18) (abi-1.7.18)] /Names [(abi-1.7.18) 648 0 R] >> endobj 817 0 obj << /Limits [(abi-1.7.19) (abi-1.7.19)] /Names [(abi-1.7.19) 649 0 R] >> endobj 818 0 obj << /Limits [(abi-1.7.22) (abi-1.7.22)] /Names [(abi-1.7.22) 650 0 R] >> endobj 819 0 obj << /Limits [(abi-1.7.24) (abi-1.7.24)] /Names [(abi-1.7.24) 651 0 R] >> endobj 820 0 obj << /Limits [(abi-2.0.0) (abi-2.0.0)] /Names [(abi-2.0.0) 652 0 R] >> endobj 821 0 obj << /Limits [(abi-3.0.0) (abi-3.0.0)] /Names [(abi-3.0.0) 653 0 R] >> endobj 822 0 obj << /Limits [(abi-3.0.1) (abi-3.0.1)] /Names [(abi-3.0.1) 654 0 R] >> endobj 823 0 obj << /Limits [(abi-3.0.2) (abi-3.0.2)] /Names [(abi-3.0.2) 655 0 R] >> endobj 824 0 obj << /Limits [(abi-3.1.0) (abi-3.1.0)] /Names [(abi-3.1.0) 656 0 R] >> endobj 825 0 obj << /Limits [(abi-changes) (abi-changes)] /Names [(abi-changes) 589 0 R] >> endobj 826 0 obj << /Limits [(api-1.7.10) (api-1.7.10)] /Names [(api-1.7.10) 624 0 R] >> endobj 827 0 obj << /Limits [(api-1.7.19) (api-1.7.19)] /Names [(api-1.7.19) 625 0 R] >> endobj 828 0 obj << /Limits [(api-1.7.20) (api-1.7.20)] /Names [(api-1.7.20) 626 0 R] >> endobj 829 0 obj << /Limits [(api-2.0.0) (api-2.0.0)] /Names [(api-2.0.0) 627 0 R] >> endobj 830 0 obj << /Limits [(api-2.0.0-Connection) (api-2.0.0-Connection)] /Names [(api-2.0.0-Connection) 628 0 R] >> endobj 831 0 obj << /Limits [(api-2.0.0-Exception) (api-2.0.0-Exception)] /Names [(api-2.0.0-Exception) 629 0 R] >> endobj 832 0 obj << /Limits [(api-2.0.0-Query) (api-2.0.0-Query)] /Names [(api-2.0.0-Query) 630 0 R] >> endobj 833 0 obj << /Limits [(api-2.0.0-Result) (api-2.0.0-Result)] /Names [(api-2.0.0-Result) 631 0 R] >> endobj 834 0 obj << /Limits [(api-2.0.0-Row) (api-2.0.0-Row)] /Names [(api-2.0.0-Row) 632 0 R] >> endobj 835 0 obj << /Limits [(api-2.0.0-misc) (api-2.0.0-misc)] /Names [(api-2.0.0-misc) 633 0 R] >> endobj 836 0 obj << /Limits [(api-2.2.0) (api-2.2.0)] /Names [(api-2.2.0) 634 0 R] >> endobj 837 0 obj << /Limits [(api-2.3.0) (api-2.3.0)] /Names [(api-2.3.0) 635 0 R] >> endobj 838 0 obj << /Limits [(api-3.0.0) (api-3.0.0)] /Names [(api-3.0.0) 636 0 R] >> endobj 839 0 obj << /Limits [(api-3.0.0-Connection) (api-3.0.0-Connection)] /Names [(api-3.0.0-Connection) 638 0 R] >> endobj 840 0 obj << /Limits [(api-3.0.0-DateTime) (api-3.0.0-DateTime)] /Names [(api-3.0.0-DateTime) 639 0 R] >> endobj 841 0 obj << /Limits [(api-3.0.0-Exception) (api-3.0.0-Exception)] /Names [(api-3.0.0-Exception) 640 0 R] >> endobj 842 0 obj << /Limits [(api-3.0.0-Field) (api-3.0.0-Field)] /Names [(api-3.0.0-Field) 641 0 R] >> endobj 843 0 obj << /Limits [(api-3.0.0-Query) (api-3.0.0-Query)] /Names [(api-3.0.0-Query) 642 0 R] >> endobj 844 0 obj << /Limits [(api-3.0.0-Result) (api-3.0.0-Result)] /Names [(api-3.0.0-Result) 643 0 R] >> endobj 845 0 obj << /Limits [(api-3.0.0-Row) (api-3.0.0-Row)] /Names [(api-3.0.0-Row) 644 0 R] >> endobj 846 0 obj << /Limits [(api-3.0.0-SSQLS) (api-3.0.0-SSQLS)] /Names [(api-3.0.0-SSQLS) 645 0 R] >> endobj 847 0 obj << /Limits [(api-3.0.0-misc) (api-3.0.0-misc)] /Names [(api-3.0.0-misc) 646 0 R] >> endobj 848 0 obj << /Limits [(api-3.0.0-names) (api-3.0.0-names)] /Names [(api-3.0.0-names) 637 0 R] >> endobj 849 0 obj << /Limits [(api-3.0.7) (api-3.0.7)] /Names [(api-3.0.7) 647 0 R] >> endobj 850 0 obj << /Limits [(api-changes) (api-changes)] /Names [(api-changes) 586 0 R] >> endobj 851 0 obj << /Limits [(asking-questions) (asking-questions)] /Names [(asking-questions) 180 0 R] >> endobj 852 0 obj << /Limits [(blob) (blob)] /Names [(blob) 52 0 R] >> endobj 853 0 obj << /Limits [(blob-retreive) (blob-retreive)] /Names [(blob-retreive) 613 0 R] >> endobj 854 0 obj << /Limits [(blob-save) (blob-save)] /Names [(blob-save) 612 0 R] >> endobj 855 0 obj << /Limits [(breakages) (breakages)] /Names [(breakages) 583 0 R] >> endobj 856 0 obj << /Limits [(buried-headers) (buried-headers)] /Names [(buried-headers) 560 0 R] >> endobj 857 0 obj << /Limits [(c99) (c99)] /Names [(c99) 563 0 R] >> endobj 858 0 obj << /Limits [(concurrentqueries) (concurrentqueries)] /Names [(concurrentqueries) 238 0 R] >> endobj 859 0 obj << /Limits [(configuration) (configuration)] /Names [(configuration) 552 0 R] >> endobj 860 0 obj << /Limits [(conn-timeout) (conn-timeout)] /Names [(conn-timeout) 235 0 R] >> endobj 861 0 obj << /Limits [(connopts) (connopts)] /Names [(connopts) 232 0 R] >> endobj 862 0 obj << /Limits [(examples) (examples)] /Names [(examples) 46 0 R] >> endobj 863 0 obj << /Limits [(exceptions) (exceptions)] /Names [(exceptions) 33 0 R] >> endobj 864 0 obj << /Limits [(exceptions-intro) (exceptions-intro)] /Names [(exceptions-intro) 194 0 R] >> endobj 865 0 obj << /Limits [(fieldinf) (fieldinf)] /Names [(fieldinf) 241 0 R] >> endobj 866 0 obj << /Limits [(for_each) (for_each)] /Names [(for_each) 229 0 R] >> endobj 867 0 obj << /Limits [(history) (history)] /Names [(history) 177 0 R] >> endobj 868 0 obj << /Limits [(idm47113751626672) (idm47113751626672)] /Names [(idm47113751626672) 603 0 R] >> endobj 869 0 obj << /Limits [(inc-eclipse) (inc-eclipse)] /Names [(inc-eclipse) 580 0 R] >> endobj 870 0 obj << /Limits [(inc-mingw) (inc-mingw)] /Names [(inc-mingw) 577 0 R] >> endobj 871 0 obj << /Limits [(inc-mingw-ide) (inc-mingw-ide)] /Names [(inc-mingw-ide) 623 0 R] >> endobj 872 0 obj << /Limits [(inc-mingw-makefile) (inc-mingw-makefile)] /Names [(inc-mingw-makefile) 622 0 R] >> endobj 873 0 obj << /Limits [(inc-osx) (inc-osx)] /Names [(inc-osx) 574 0 R] >> endobj 874 0 obj << /Limits [(inc-osx-makefile) (inc-osx-makefile)] /Names [(inc-osx-makefile) 620 0 R] >> endobj 875 0 obj << /Limits [(inc-osx-xcode) (inc-osx-xcode)] /Names [(inc-osx-xcode) 621 0 R] >> endobj 876 0 obj << /Limits [(inc-unix) (inc-unix)] /Names [(inc-unix) 412 0 R] >> endobj 877 0 obj << /Limits [(inc-vstudio) (inc-vstudio)] /Names [(inc-vstudio) 569 0 R] >> endobj 878 0 obj << /Limits [(inc-vstudio-mfc) (inc-vstudio-mfc)] /Names [(inc-vstudio-mfc) 618 0 R] >> endobj 879 0 obj << /Limits [(inc-vstudio-wforms) (inc-vstudio-wforms)] /Names [(inc-vstudio-wforms) 619 0 R] >> endobj 880 0 obj << /Limits [(incorporating) (incorporating)] /Names [(incorporating) 566 0 R] >> endobj 881 0 obj << /Limits [(intro) (intro)] /Names [(intro) 173 0 R] >> endobj 882 0 obj << /Limits [(lgpl) (lgpl)] /Names [(lgpl) 595 0 R] >> endobj 883 0 obj << /Limits [(lgpl-howto) (lgpl-howto)] /Names [(lgpl-howto) 659 0 R] >> endobj 884 0 obj << /Limits [(lgpl-preamble) (lgpl-preamble)] /Names [(lgpl-preamble) 657 0 R] >> endobj 885 0 obj << /Limits [(lgpl-terms) (lgpl-terms)] /Names [(lgpl-terms) 658 0 R] >> endobj 886 0 obj << /Limits [(licenses) (licenses)] /Names [(licenses) 592 0 R] >> endobj 887 0 obj << /Limits [(max-fields) (max-fields)] /Names [(max-fields) 392 0 R] >> endobj 888 0 obj << /Limits [(mysql-loc) (mysql-loc)] /Names [(mysql-loc) 555 0 R] >> endobj 889 0 obj << /Limits [(overview) (overview)] /Names [(overview) 18 0 R] >> endobj 890 0 obj << /Limits [(qescape) (qescape)] /Names [(qescape) 67 0 R] >> endobj 891 0 obj << /Limits [(querytypes) (querytypes)] /Names [(querytypes) 223 0 R] >> endobj 892 0 obj << /Limits [(simple) (simple)] /Names [(simple) 202 0 R] >> endobj 893 0 obj << /Limits [(simple2) (simple2)] /Names [(simple2) 205 0 R] >> endobj 894 0 obj << /Limits [(sql-null) (sql-null)] /Names [(sql-null) 51 0 R] >> endobj 895 0 obj << /Limits [(sql-null-type) (sql-null-type)] /Names [(sql-null-type) 607 0 R] >> endobj 896 0 obj << /Limits [(sql-null-value) (sql-null-value)] /Names [(sql-null-value) 608 0 R] >> endobj 897 0 obj << /Limits [(sql-types) (sql-types)] /Names [(sql-types) 130 0 R] >> endobj 898 0 obj << /Limits [(sql_create) (sql_create)] /Names [(sql_create) 260 0 R] >> endobj 899 0 obj << /Limits [(ssqls) (ssqls)] /Names [(ssqls) 141 0 R] >> endobj 900 0 obj << /Limits [(ssqls-add-one) (ssqls-add-one)] /Names [(ssqls-add-one) 614 0 R] >> endobj 901 0 obj << /Limits [(ssqls-add-range) (ssqls-add-range)] /Names [(ssqls-add-range) 615 0 R] >> endobj 902 0 obj << /Limits [(ssqls-adding) (ssqls-adding)] /Names [(ssqls-adding) 489 0 R] >> endobj 903 0 obj << /Limits [(ssqls-blob) (ssqls-blob)] /Names [(ssqls-blob) 519 0 R] >> endobj 904 0 obj << /Limits [(ssqls-compare-init) (ssqls-compare-init)] /Names [(ssqls-compare-init) 263 0 R] >> endobj 905 0 obj << /Limits [(ssqls-comparing) (ssqls-comparing)] /Names [(ssqls-comparing) 496 0 R] >> endobj 906 0 obj << /Limits [(ssqls-customization) (ssqls-customization)] /Names [(ssqls-customization) 514 0 R] >> endobj 907 0 obj << /Limits [(ssqls-derivation) (ssqls-derivation)] /Names [(ssqls-derivation) 389 0 R] >> endobj 908 0 obj << /Limits [(ssqls-field-names) (ssqls-field-names)] /Names [(ssqls-field-names) 508 0 R] >> endobj 909 0 obj << /Limits [(ssqls-in-header) (ssqls-in-header)] /Names [(ssqls-in-header) 502 0 R] >> endobj 910 0 obj << /Limits [(ssqls-insertfrom) (ssqls-insertfrom)] /Names [(ssqls-insertfrom) 616 0 R] >> endobj 911 0 obj << /Limits [(ssqls-insertfrom-transactions) (ssqls-insertfrom-transactions)] /Names [(ssqls-insertfrom-transactions) 617 0 R] >> endobj 912 0 obj << /Limits [(ssqls-internals) (ssqls-internals)] /Names [(ssqls-internals) 505 0 R] >> endobj 913 0 obj << /Limits [(ssqls-modifying) (ssqls-modifying)] /Names [(ssqls-modifying) 493 0 R] >> endobj 914 0 obj << /Limits [(ssqls-pretty) (ssqls-pretty)] /Names [(ssqls-pretty) 511 0 R] >> endobj 915 0 obj << /Limits [(ssqls-retrieving) (ssqls-retrieving)] /Names [(ssqls-retrieving) 266 0 R] >> endobj 916 0 obj << /Limits [(ssqls-table-name) (ssqls-table-name)] /Names [(ssqls-table-name) 499 0 R] >> endobj 917 0 obj << /Limits [(ssqls-vc2003) (ssqls-vc2003)] /Names [(ssqls-vc2003) 447 0 R] >> endobj 918 0 obj << /Limits [(store_if) (store_if)] /Names [(store_if) 226 0 R] >> endobj 919 0 obj << /Limits [(storein) (storein)] /Names [(storein) 606 0 R] >> endobj 920 0 obj << /Limits [(string-refcount) (string-refcount)] /Names [(string-refcount) 611 0 R] >> endobj 921 0 obj << /Limits [(string-types) (string-types)] /Names [(string-types) 42 0 R] >> endobj 922 0 obj << /Limits [(thread-build) (thread-build)] /Names [(thread-build) 541 0 R] >> endobj 923 0 obj << /Limits [(thread-conn-mgmt) (thread-conn-mgmt)] /Names [(thread-conn-mgmt) 544 0 R] >> endobj 924 0 obj << /Limits [(thread-data-sharing) (thread-data-sharing)] /Names [(thread-data-sharing) 376 0 R] >> endobj 925 0 obj << /Limits [(thread-helpers) (thread-helpers)] /Names [(thread-helpers) 547 0 R] >> endobj 926 0 obj << /Limits [(threads) (threads)] /Names [(threads) 350 0 R] >> endobj 927 0 obj << /Limits [(tquery) (tquery)] /Names [(tquery) 138 0 R] >> endobj 928 0 obj << /Limits [(tquery-defaults) (tquery-defaults)] /Names [(tquery-defaults) 252 0 R] >> endobj 929 0 obj << /Limits [(tquery-errors) (tquery-errors)] /Names [(tquery-errors) 255 0 R] >> endobj 930 0 obj << /Limits [(tquery-parms) (tquery-parms)] /Names [(tquery-parms) 249 0 R] >> endobj 931 0 obj << /Limits [(tquery-setup) (tquery-setup)] /Names [(tquery-setup) 246 0 R] >> endobj 932 0 obj << /Limits [(tutorial) (tutorial)] /Names [(tutorial) 197 0 R] >> endobj 933 0 obj << /Limits [(unicode) (unicode)] /Names [(unicode) 524 0 R] >> endobj 934 0 obj << /Limits [(unicode-history) (unicode-history)] /Names [(unicode-history) 527 0 R] >> endobj 935 0 obj << /Limits [(unicode-refs) (unicode-refs)] /Names [(unicode-refs) 536 0 R] >> endobj 936 0 obj << /Limits [(unicode-unix) (unicode-unix)] /Names [(unicode-unix) 530 0 R] >> endobj 937 0 obj << /Limits [(unicode-windows) (unicode-windows)] /Names [(unicode-windows) 533 0 R] >> endobj 938 0 obj << /Limits [(userman-license) (userman-license)] /Names [(userman-license) 598 0 R] >> endobj 939 0 obj << /Limits [(userman-license-copyright) (userman-license-copyright)] /Names [(userman-license-copyright) 660 0 R] >> endobj 940 0 obj << /Limits [(userman-license-main) (userman-license-main)] /Names [(userman-license-main) 661 0 R] >> endobj 941 0 obj << /Limits [(userman-license-req) (userman-license-req)] /Names [(userman-license-req) 662 0 R] >> endobj 942 0 obj << /Limits [(Connection) (userman-license-req)] /Kids [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 834 0 R 835 0 R 836 0 R 837 0 R 838 0 R 839 0 R 840 0 R 841 0 R 842 0 R 843 0 R 844 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 886 0 R 887 0 R 888 0 R 889 0 R 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 901 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R 930 0 R 931 0 R 932 0 R 933 0 R 934 0 R 935 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R] >> endobj 1 0 obj << /Type /Pages /Count 99 /Kids [172 0 R 488 0 R 8 0 R 14 0 R 137 0 R 145 0 R 32 0 R 17 0 R 23 0 R 26 0 R 29 0 R 150 0 R 156 0 R 50 0 R 38 0 R 163 0 R 41 0 R 58 0 R 61 0 R 64 0 R 72 0 R 75 0 R 78 0 R 81 0 R 84 0 R 87 0 R 90 0 R 93 0 R 96 0 R 99 0 R 102 0 R 105 0 R 108 0 R 347 0 R 375 0 R 111 0 R 114 0 R 117 0 R 120 0 R 123 0 R 126 0 R 129 0 R 169 0 R 271 0 R 274 0 R 280 0 R 283 0 R 288 0 R 291 0 R 294 0 R 297 0 R 300 0 R 303 0 R 309 0 R 312 0 R 315 0 R 318 0 R 388 0 R 321 0 R 326 0 R 329 0 R 332 0 R 335 0 R 338 0 R 341 0 R 344 0 R 354 0 R 360 0 R 363 0 R 366 0 R 369 0 R 372 0 R 382 0 R 397 0 R 400 0 R 405 0 R 408 0 R 417 0 R 422 0 R 425 0 R 428 0 R 431 0 R 434 0 R 437 0 R 440 0 R 443 0 R 446 0 R 452 0 R 455 0 R 458 0 R 461 0 R 464 0 R 467 0 R 470 0 R 473 0 R 476 0 R 479 0 R 482 0 R 485 0 R ] >> endobj 2 0 obj << /Type /Catalog /Pages 1 0 R /Lang (en) /Metadata 7 0 R /PageLabels 9 0 R /Outlines 663 0 R /PageMode /UseOutlines /Names 943 0 R >> endobj 3 0 obj << /Font << /F11 800 0 R /F1 801 0 R /F10 802 0 R /F5 803 0 R /F3 804 0 R /F9 805 0 R /F6 806 0 R /F7 807 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ColorSpace << /DefaultRGB 6 0 R >> >> endobj 9 0 obj << /Nums [0 << /P (1) >> 1 << /P (2) >> 2 << /P (3) >> 3 << /P (4) >> 4 << /P (5) >> 5 << /P (6) >> 6 << /P (7) >> 7 << /P (8) >> 8 << /P (9) >> 9 << /P (10) >> 10 << /P (11) >> 11 << /P (12) >> 12 << /P (13) >> 13 << /P (14) >> 14 << /P (15) >> 15 << /P (16) >> 16 << /P (17) >> 17 << /P (18) >> 18 << /P (19) >> 19 << /P (20) >> 20 << /P (21) >> 21 << /P (22) >> 22 << /P (23) >> 23 << /P (24) >> 24 << /P (25) >> 25 << /P (26) >> 26 << /P (27) >> 27 << /P (28) >> 28 << /P (29) >> 29 << /P (30) >> 30 << /P (31) >> 31 << /P (32) >> 32 << /P (33) >> 33 << /P (34) >> 34 << /P (35) >> 35 << /P (36) >> 36 << /P (37) >> 37 << /P (38) >> 38 << /P (39) >> 39 << /P (40) >> 40 << /P (41) >> 41 << /P (42) >> 42 << /P (43) >> 43 << /P (44) >> 44 << /P (45) >> 45 << /P (46) >> 46 << /P (47) >> 47 << /P (48) >> 48 << /P (49) >> 49 << /P (50) >> 50 << /P (51) >> 51 << /P (52) >> 52 << /P (53) >> 53 << /P (54) >> 54 << /P (55) >> 55 << /P (56) >> 56 << /P (57) >> 57 << /P (58) >> 58 << /P (59) >> 59 << /P (60) >> 60 << /P (61) >> 61 << /P (62) >> 62 << /P (63) >> 63 << /P (64) >> 64 << /P (65) >> 65 << /P (66) >> 66 << /P (67) >> 67 << /P (68) >> 68 << /P (69) >> 69 << /P (70) >> 70 << /P (71) >> 71 << /P (72) >> 72 << /P (73) >> 73 << /P (74) >> 74 << /P (75) >> 75 << /P (76) >> 76 << /P (77) >> 77 << /P (78) >> 78 << /P (79) >> 79 << /P (80) >> 80 << /P (81) >> 81 << /P (82) >> 82 << /P (83) >> 83 << /P (84) >> 84 << /P (85) >> 85 << /P (86) >> 86 << /P (87) >> 87 << /P (88) >> 88 << /P (89) >> 89 << /P (90) >> 90 << /P (91) >> 91 << /P (92) >> 92 << /P (93) >> 93 << /P (94) >> 94 << /P (95) >> 95 << /P (96) >> 96 << /P (97) >> 97 << /P (98) >> 98 << /P (99) >> ] >> endobj 663 0 obj << /First 664 0 R /Last 791 0 R >> endobj 943 0 obj << /Dests 942 0 R >> endobj xref 0 944 0000000000 65535 f 0000337441 00000 n 0000338262 00000 n 0000338429 00000 n 0000000015 00000 n 0000000290 00000 n 0000002848 00000 n 0000002881 00000 n 0000006666 00000 n 0000338659 00000 n 0000004001 00000 n 0000006858 00000 n 0000006879 00000 n 0000006900 00000 n 0000007754 00000 n 0000006921 00000 n 0000007947 00000 n 0000010957 00000 n 0000076087 00000 n 0000007967 00000 n 0000010930 00000 n 0000008104 00000 n 0000011167 00000 n 0000013141 00000 n 0000011188 00000 n 0000013334 00000 n 0000015219 00000 n 0000013355 00000 n 0000015412 00000 n 0000017719 00000 n 0000015433 00000 n 0000017912 00000 n 0000018821 00000 n 0000017933 00000 n 0000018013 00000 n 0000018794 00000 n 0000018151 00000 n 0000019031 00000 n 0000021505 00000 n 0000019051 00000 n 0000021698 00000 n 0000025169 00000 n 0000021719 00000 n 0000021798 00000 n 0000025128 00000 n 0000021936 00000 n 0000022071 00000 n 0000022151 00000 n 0000022287 00000 n 0000025379 00000 n 0000029142 00000 n 0000025400 00000 n 0000025479 00000 n 0000025558 00000 n 0000029108 00000 n 0000025692 00000 n 0000025829 00000 n 0000029352 00000 n 0000031108 00000 n 0000029373 00000 n 0000031301 00000 n 0000033001 00000 n 0000031322 00000 n 0000033194 00000 n 0000035571 00000 n 0000033215 00000 n 0000035530 00000 n 0000082340 00000 n 0000033353 00000 n 0000033491 00000 n 0000033627 00000 n 0000035781 00000 n 0000037442 00000 n 0000035802 00000 n 0000037635 00000 n 0000039437 00000 n 0000037656 00000 n 0000039630 00000 n 0000041787 00000 n 0000039651 00000 n 0000041980 00000 n 0000043883 00000 n 0000042001 00000 n 0000044076 00000 n 0000046522 00000 n 0000044097 00000 n 0000046715 00000 n 0000048801 00000 n 0000046736 00000 n 0000048994 00000 n 0000050993 00000 n 0000049015 00000 n 0000051186 00000 n 0000053036 00000 n 0000051207 00000 n 0000053229 00000 n 0000054725 00000 n 0000053250 00000 n 0000054918 00000 n 0000056762 00000 n 0000054939 00000 n 0000056956 00000 n 0000058266 00000 n 0000056978 00000 n 0000058461 00000 n 0000060091 00000 n 0000058483 00000 n 0000060286 00000 n 0000062503 00000 n 0000060308 00000 n 0000062698 00000 n 0000064435 00000 n 0000062720 00000 n 0000064630 00000 n 0000065058 00000 n 0000064652 00000 n 0000065253 00000 n 0000067025 00000 n 0000065274 00000 n 0000067220 00000 n 0000069367 00000 n 0000067242 00000 n 0000069562 00000 n 0000071482 00000 n 0000069584 00000 n 0000071677 00000 n 0000072994 00000 n 0000071699 00000 n 0000073189 00000 n 0000075852 00000 n 0000085556 00000 n 0000073211 00000 n 0000075807 00000 n 0000073349 00000 n 0000073487 00000 n 0000073624 00000 n 0000076065 00000 n 0000079226 00000 n 0000076166 00000 n 0000076246 00000 n 0000079189 00000 n 0000076386 00000 n 0000076466 00000 n 0000076606 00000 n 0000079439 00000 n 0000082105 00000 n 0000079461 00000 n 0000082076 00000 n 0000079600 00000 n 0000082318 00000 n 0000085321 00000 n 0000082420 00000 n 0000085284 00000 n 0000082559 00000 n 0000082697 00000 n 0000085534 00000 n 0000089456 00000 n 0000085638 00000 n 0000089411 00000 n 0000085777 00000 n 0000085915 00000 n 0000086051 00000 n 0000089669 00000 n 0000093808 00000 n 0000089691 00000 n 0000093771 00000 n 0000089831 00000 n 0000089968 00000 n 0000094021 00000 n 0000096509 00000 n 0000094043 00000 n 0000096704 00000 n 0000121615 00000 n 0000096726 00000 n 0000096804 00000 n 0000121034 00000 n 0000096939 00000 n 0000097077 00000 n 0000097157 00000 n 0000097292 00000 n 0000097430 00000 n 0000097509 00000 n 0000097644 00000 n 0000097780 00000 n 0000097914 00000 n 0000098051 00000 n 0000098133 00000 n 0000098268 00000 n 0000098406 00000 n 0000098488 00000 n 0000098623 00000 n 0000098761 00000 n 0000098843 00000 n 0000098977 00000 n 0000099115 00000 n 0000099194 00000 n 0000099329 00000 n 0000099467 00000 n 0000099546 00000 n 0000099681 00000 n 0000099819 00000 n 0000099953 00000 n 0000100090 00000 n 0000100171 00000 n 0000100304 00000 n 0000100440 00000 n 0000100521 00000 n 0000100656 00000 n 0000100792 00000 n 0000100926 00000 n 0000101063 00000 n 0000101197 00000 n 0000101334 00000 n 0000101469 00000 n 0000101607 00000 n 0000101741 00000 n 0000101878 00000 n 0000102012 00000 n 0000102149 00000 n 0000102283 00000 n 0000102418 00000 n 0000102497 00000 n 0000102631 00000 n 0000102769 00000 n 0000102850 00000 n 0000102985 00000 n 0000103123 00000 n 0000103204 00000 n 0000103339 00000 n 0000103477 00000 n 0000103556 00000 n 0000103691 00000 n 0000103829 00000 n 0000103910 00000 n 0000104045 00000 n 0000104181 00000 n 0000104263 00000 n 0000104396 00000 n 0000171178 00000 n 0000104534 00000 n 0000104669 00000 n 0000189835 00000 n 0000104807 00000 n 0000104942 00000 n 0000105080 00000 n 0000105215 00000 n 0000105353 00000 n 0000105435 00000 n 0000105570 00000 n 0000105706 00000 n 0000105786 00000 n 0000105921 00000 n 0000106055 00000 n 0000106137 00000 n 0000106272 00000 n 0000106408 00000 n 0000106488 00000 n 0000106623 00000 n 0000106761 00000 n 0000106896 00000 n 0000107034 00000 n 0000107116 00000 n 0000107250 00000 n 0000107387 00000 n 0000107467 00000 n 0000107600 00000 n 0000107736 00000 n 0000107818 00000 n 0000107951 00000 n 0000108087 00000 n 0000121828 00000 n 0000123370 00000 n 0000121851 00000 n 0000123565 00000 n 0000126647 00000 n 0000123587 00000 n 0000126610 00000 n 0000123727 00000 n 0000123865 00000 n 0000126860 00000 n 0000128531 00000 n 0000126882 00000 n 0000128726 00000 n 0000131431 00000 n 0000128748 00000 n 0000131402 00000 n 0000128887 00000 n 0000131644 00000 n 0000133155 00000 n 0000131666 00000 n 0000133350 00000 n 0000135011 00000 n 0000133372 00000 n 0000135206 00000 n 0000138155 00000 n 0000135228 00000 n 0000138350 00000 n 0000140064 00000 n 0000138372 00000 n 0000140259 00000 n 0000141938 00000 n 0000140281 00000 n 0000142133 00000 n 0000144329 00000 n 0000142155 00000 n 0000144292 00000 n 0000142294 00000 n 0000142434 00000 n 0000144542 00000 n 0000146763 00000 n 0000144564 00000 n 0000146958 00000 n 0000148643 00000 n 0000146980 00000 n 0000148838 00000 n 0000150424 00000 n 0000148860 00000 n 0000150619 00000 n 0000152854 00000 n 0000150641 00000 n 0000153049 00000 n 0000155428 00000 n 0000153071 00000 n 0000155399 00000 n 0000153207 00000 n 0000155641 00000 n 0000158129 00000 n 0000155663 00000 n 0000158324 00000 n 0000159920 00000 n 0000158346 00000 n 0000160115 00000 n 0000161738 00000 n 0000160137 00000 n 0000161933 00000 n 0000164530 00000 n 0000161955 00000 n 0000164725 00000 n 0000167196 00000 n 0000164747 00000 n 0000167391 00000 n 0000168193 00000 n 0000167413 00000 n 0000168388 00000 n 0000170961 00000 n 0000168409 00000 n 0000171156 00000 n 0000174976 00000 n 0000171260 00000 n 0000174939 00000 n 0000171398 00000 n 0000171478 00000 n 0000171616 00000 n 0000175189 00000 n 0000178211 00000 n 0000175211 00000 n 0000178174 00000 n 0000175349 00000 n 0000175487 00000 n 0000178424 00000 n 0000179993 00000 n 0000178446 00000 n 0000180188 00000 n 0000182117 00000 n 0000180210 00000 n 0000182312 00000 n 0000184063 00000 n 0000182334 00000 n 0000184258 00000 n 0000187061 00000 n 0000184280 00000 n 0000187256 00000 n 0000189618 00000 n 0000187278 00000 n 0000189813 00000 n 0000192835 00000 n 0000189917 00000 n 0000189997 00000 n 0000192798 00000 n 0000190137 00000 n 0000190277 00000 n 0000193048 00000 n 0000196775 00000 n 0000193070 00000 n 0000196738 00000 n 0000193210 00000 n 0000193349 00000 n 0000196988 00000 n 0000200306 00000 n 0000197010 00000 n 0000197092 00000 n 0000200261 00000 n 0000197232 00000 n 0000197314 00000 n 0000197454 00000 n 0000197593 00000 n 0000200519 00000 n 0000202788 00000 n 0000200541 00000 n 0000202983 00000 n 0000205789 00000 n 0000203005 00000 n 0000205760 00000 n 0000203143 00000 n 0000206002 00000 n 0000208534 00000 n 0000206024 00000 n 0000208729 00000 n 0000212071 00000 n 0000208751 00000 n 0000212018 00000 n 0000208891 00000 n 0000209029 00000 n 0000209111 00000 n 0000209250 00000 n 0000209389 00000 n 0000212284 00000 n 0000214388 00000 n 0000212306 00000 n 0000214359 00000 n 0000212443 00000 n 0000214601 00000 n 0000217058 00000 n 0000214623 00000 n 0000217253 00000 n 0000220299 00000 n 0000217275 00000 n 0000220494 00000 n 0000223056 00000 n 0000220516 00000 n 0000223251 00000 n 0000225930 00000 n 0000223273 00000 n 0000226125 00000 n 0000228610 00000 n 0000226147 00000 n 0000228805 00000 n 0000231503 00000 n 0000228827 00000 n 0000231698 00000 n 0000233917 00000 n 0000231720 00000 n 0000234112 00000 n 0000236737 00000 n 0000234134 00000 n 0000236932 00000 n 0000240818 00000 n 0000236954 00000 n 0000237034 00000 n 0000240789 00000 n 0000237174 00000 n 0000241031 00000 n 0000243195 00000 n 0000241053 00000 n 0000243390 00000 n 0000246040 00000 n 0000243412 00000 n 0000246235 00000 n 0000246790 00000 n 0000246257 00000 n 0000246985 00000 n 0000248135 00000 n 0000247006 00000 n 0000248330 00000 n 0000250698 00000 n 0000248352 00000 n 0000250893 00000 n 0000253544 00000 n 0000250915 00000 n 0000253739 00000 n 0000256035 00000 n 0000253761 00000 n 0000256230 00000 n 0000258586 00000 n 0000256252 00000 n 0000258781 00000 n 0000261314 00000 n 0000258803 00000 n 0000261509 00000 n 0000264064 00000 n 0000261531 00000 n 0000264259 00000 n 0000265445 00000 n 0000264281 00000 n 0000265640 00000 n 0000267020 00000 n 0000265662 00000 n 0000267215 00000 n 0000294603 00000 n 0000267237 00000 n 0000267317 00000 n 0000293958 00000 n 0000267452 00000 n 0000267588 00000 n 0000267668 00000 n 0000267803 00000 n 0000267941 00000 n 0000268023 00000 n 0000268158 00000 n 0000268296 00000 n 0000268378 00000 n 0000268513 00000 n 0000268651 00000 n 0000268732 00000 n 0000268867 00000 n 0000269003 00000 n 0000269085 00000 n 0000269219 00000 n 0000269357 00000 n 0000269438 00000 n 0000269573 00000 n 0000269711 00000 n 0000269793 00000 n 0000269928 00000 n 0000270066 00000 n 0000270146 00000 n 0000270281 00000 n 0000270419 00000 n 0000270554 00000 n 0000270692 00000 n 0000270774 00000 n 0000270909 00000 n 0000271045 00000 n 0000271180 00000 n 0000271318 00000 n 0000271398 00000 n 0000271533 00000 n 0000271671 00000 n 0000271753 00000 n 0000271887 00000 n 0000272025 00000 n 0000272107 00000 n 0000272242 00000 n 0000272378 00000 n 0000272458 00000 n 0000272593 00000 n 0000272731 00000 n 0000272811 00000 n 0000272946 00000 n 0000273084 00000 n 0000273219 00000 n 0000273357 00000 n 0000273439 00000 n 0000273574 00000 n 0000273710 00000 n 0000273790 00000 n 0000273925 00000 n 0000274063 00000 n 0000274144 00000 n 0000274279 00000 n 0000274417 00000 n 0000274552 00000 n 0000274690 00000 n 0000274770 00000 n 0000274905 00000 n 0000275043 00000 n 0000275124 00000 n 0000275259 00000 n 0000275397 00000 n 0000275532 00000 n 0000275668 00000 n 0000275748 00000 n 0000275883 00000 n 0000276019 00000 n 0000276101 00000 n 0000276236 00000 n 0000276372 00000 n 0000276452 00000 n 0000276587 00000 n 0000276725 00000 n 0000276807 00000 n 0000276942 00000 n 0000277080 00000 n 0000277215 00000 n 0000277353 00000 n 0000277435 00000 n 0000277570 00000 n 0000277708 00000 n 0000277790 00000 n 0000277925 00000 n 0000278063 00000 n 0000278144 00000 n 0000278279 00000 n 0000278417 00000 n 0000278497 00000 n 0000278632 00000 n 0000278770 00000 n 0000278852 00000 n 0000278987 00000 n 0000279125 00000 n 0000279207 00000 n 0000279342 00000 n 0000279480 00000 n 0000279560 00000 n 0000279695 00000 n 0000279833 00000 n 0000279913 00000 n 0000280048 00000 n 0000280186 00000 n 0000280266 00000 n 0000280401 00000 n 0000280539 00000 n 0000294816 00000 n 0000294839 00000 n 0000294919 00000 n 0000294999 00000 n 0000295080 00000 n 0000295162 00000 n 0000295241 00000 n 0000295322 00000 n 0000295402 00000 n 0000295484 00000 n 0000295563 00000 n 0000295644 00000 n 0000295725 00000 n 0000295806 00000 n 0000295888 00000 n 0000295970 00000 n 0000296050 00000 n 0000296132 00000 n 0000296214 00000 n 0000296296 00000 n 0000296378 00000 n 0000296460 00000 n 0000296540 00000 n 0000296622 00000 n 0000296704 00000 n 0000296786 00000 n 0000296868 00000 n 0000296950 00000 n 0000297030 00000 n 0000297112 00000 n 0000297193 00000 n 0000297273 00000 n 0000297355 00000 n 0000297437 00000 n 0000297519 00000 n 0000297599 00000 n 0000297680 00000 n 0000297762 00000 n 0000297844 00000 n 0000297926 00000 n 0000298007 00000 n 0000298089 00000 n 0000298171 00000 n 0000298253 00000 n 0000298335 00000 n 0000298417 00000 n 0000298499 00000 n 0000298581 00000 n 0000298663 00000 n 0000298745 00000 n 0000298827 00000 n 0000298909 00000 n 0000298989 00000 n 0000299070 00000 n 0000299151 00000 n 0000299231 00000 n 0000299313 00000 n 0000299395 00000 n 0000299476 00000 n 0000299558 00000 n 0000299640 00000 n 0000340452 00000 n 0000299722 00000 n 0000299825 00000 n 0000299907 00000 n 0000300016 00000 n 0000300214 00000 n 0000300419 00000 n 0000300616 00000 n 0000300797 00000 n 0000300982 00000 n 0000301162 00000 n 0000301364 00000 n 0000301472 00000 n 0000301613 00000 n 0000301742 00000 n 0000301883 00000 n 0000302066 00000 n 0000302246 00000 n 0000302426 00000 n 0000302646 00000 n 0000302801 00000 n 0000302996 00000 n 0000303200 00000 n 0000303429 00000 n 0000303533 00000 n 0000303636 00000 n 0000303913 00000 n 0000304004 00000 n 0000304102 00000 n 0000304197 00000 n 0000304450 00000 n 0000304567 00000 n 0000304683 00000 n 0000304875 00000 n 0000305091 00000 n 0000305335 00000 n 0000305627 00000 n 0000305819 00000 n 0000306067 00000 n 0000306323 00000 n 0000306548 00000 n 0000306762 00000 n 0000306971 00000 n 0000307247 00000 n 0000307435 00000 n 0000307592 00000 n 0000307847 00000 n 0000307988 00000 n 0000308244 00000 n 0000308420 00000 n 0000308622 00000 n 0000308721 00000 n 0000308832 00000 n 0000309088 00000 n 0000309194 00000 n 0000309366 00000 n 0000309646 00000 n 0000309854 00000 n 0000310106 00000 n 0000310326 00000 n 0000310618 00000 n 0000310826 00000 n 0000311070 00000 n 0000311278 00000 n 0000311486 00000 n 0000311691 00000 n 0000311945 00000 n 0000312150 00000 n 0000312362 00000 n 0000312550 00000 n 0000312731 00000 n 0000313041 00000 n 0000313190 00000 n 0000313390 00000 n 0000313570 00000 n 0000313795 00000 n 0000314021 00000 n 0000314294 00000 n 0000314554 00000 n 0000314774 00000 n 0000315099 00000 n 0000315382 00000 n 0000315565 00000 n 0000315673 00000 n 0000315798 00000 n 0000316130 00000 n 0000316304 00000 n 0000316390 00000 n 0000316472 00000 n 0000316650 00000 n 0000316736 00000 n 0000316864 00000 n 0000316993 00000 n 0000317260 00000 n 0000317452 00000 n 0000317536 00000 n 0000317635 00000 n 0000317734 00000 n 0000317874 00000 n 0000317975 00000 n 0000318092 00000 n 0000318203 00000 n 0000318322 00000 n 0000318431 00000 n 0000318529 00000 n 0000318627 00000 n 0000318725 00000 n 0000318866 00000 n 0000318961 00000 n 0000319077 00000 n 0000319196 00000 n 0000319305 00000 n 0000319427 00000 n 0000319538 00000 n 0000319671 00000 n 0000319780 00000 n 0000319915 00000 n 0000320013 00000 n 0000320096 00000 n 0000320287 00000 n 0000320371 00000 n 0000320470 00000 n 0000320569 00000 n 0000320668 00000 n 0000320766 00000 n 0000320864 00000 n 0000320962 00000 n 0000321060 00000 n 0000321143 00000 n 0000321318 00000 n 0000321597 00000 n 0000321682 00000 n 0000321807 00000 n 0000321930 00000 n 0000322185 00000 n 0000322274 00000 n 0000322404 00000 n 0000322499 00000 n 0000322610 00000 n 0000322718 00000 n 0000322832 00000 n 0000322942 00000 n 0000323055 00000 n 0000323161 00000 n 0000323272 00000 n 0000323381 00000 n 0000323471 00000 n 0000323546 00000 n 0000323624 00000 n 0000323726 00000 n 0000323822 00000 n 0000323930 00000 n 0000324008 00000 n 0000324101 00000 n 0000324191 00000 n 0000324281 00000 n 0000324371 00000 n 0000324461 00000 n 0000324548 00000 n 0000324635 00000 n 0000324722 00000 n 0000324809 00000 n 0000324896 00000 n 0000324989 00000 n 0000325079 00000 n 0000325169 00000 n 0000325259 00000 n 0000325346 00000 n 0000325466 00000 n 0000325583 00000 n 0000325688 00000 n 0000325796 00000 n 0000325895 00000 n 0000325997 00000 n 0000326084 00000 n 0000326171 00000 n 0000326258 00000 n 0000326378 00000 n 0000326492 00000 n 0000326609 00000 n 0000326714 00000 n 0000326819 00000 n 0000326927 00000 n 0000327026 00000 n 0000327131 00000 n 0000327233 00000 n 0000327338 00000 n 0000327425 00000 n 0000327518 00000 n 0000327626 00000 n 0000327697 00000 n 0000327796 00000 n 0000327883 00000 n 0000327970 00000 n 0000328072 00000 n 0000328141 00000 n 0000328252 00000 n 0000328351 00000 n 0000328447 00000 n 0000328531 00000 n 0000328614 00000 n 0000328703 00000 n 0000328811 00000 n 0000328895 00000 n 0000328979 00000 n 0000329060 00000 n 0000329171 00000 n 0000329264 00000 n 0000329351 00000 n 0000329450 00000 n 0000329564 00000 n 0000329645 00000 n 0000329753 00000 n 0000329852 00000 n 0000329936 00000 n 0000330029 00000 n 0000330134 00000 n 0000330248 00000 n 0000330347 00000 n 0000330422 00000 n 0000330494 00000 n 0000330584 00000 n 0000330683 00000 n 0000330773 00000 n 0000330857 00000 n 0000330947 00000 n 0000331034 00000 n 0000331117 00000 n 0000331197 00000 n 0000331287 00000 n 0000331365 00000 n 0000331446 00000 n 0000331529 00000 n 0000331628 00000 n 0000331730 00000 n 0000331817 00000 n 0000331907 00000 n 0000331982 00000 n 0000332081 00000 n 0000332186 00000 n 0000332282 00000 n 0000332372 00000 n 0000332486 00000 n 0000332591 00000 n 0000332708 00000 n 0000332816 00000 n 0000332927 00000 n 0000333032 00000 n 0000333140 00000 n 0000333287 00000 n 0000333392 00000 n 0000333497 00000 n 0000333593 00000 n 0000333701 00000 n 0000333809 00000 n 0000333905 00000 n 0000333989 00000 n 0000334070 00000 n 0000334175 00000 n 0000334270 00000 n 0000334366 00000 n 0000334474 00000 n 0000334591 00000 n 0000334693 00000 n 0000334774 00000 n 0000334852 00000 n 0000334957 00000 n 0000335056 00000 n 0000335152 00000 n 0000335248 00000 n 0000335332 00000 n 0000335413 00000 n 0000335518 00000 n 0000335614 00000 n 0000335710 00000 n 0000335815 00000 n 0000335920 00000 n 0000336055 00000 n 0000336175 00000 n 0000336292 00000 n 0000340505 00000 n trailer << /Root 2 0 R /Info 4 0 R /ID [<254B1F6EFE4CBF4CA9FD6E9C09694483> <254B1F6EFE4CBF4CA9FD6E9C09694483>] /Size 944 >> startxref 340544 %%EOF mysql++-3.2.2+pristine.orig/doc/html/0000755000372000001440000000000012502417162016704 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/html/userman/0000755000372000001440000000000012502417165020361 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/html/userman/ssqls.html0000755000372000001440000021357212502417165022431 0ustar robertousers5. Specialized SQL Structures

5. Specialized SQL Structures

The Specialized SQL Structure (SSQLS) feature lets you easily define C++ structures that match the form of your SQL tables. At the most superficial level, an SSQLS has a member variable corresponding to each field in the SQL table. But, an SSQLS also has several methods, operators, and data members used by MySQL++’s internals to provide neat functionality, which we cover in this chapter.

You define SSQLSes using the macros defined in ssqls.h. This is the only MySQL++ header not automatically included for you by mysql++.h. You have to include it in code modules that use the SSQLS feature.

5.1. sql_create

Let’s say you have the following SQL table:

CREATE TABLE stock (
    item CHAR(30) NOT NULL,
    num BIGINT NOT NULL,
    weight DOUBLE NOT NULL,
    price DECIMAL(6,2) NOT NULL,
    sdate DATE NOT NULL,
    description MEDIUMTEXT NULL)

You can create a C++ structure corresponding to this table like so:

sql_create_6(stock, 1, 6,
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,
    mysqlpp::sql_double, weight,
    mysqlpp::sql_decimal, price,
    mysqlpp::sql_date, sdate,
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)

This declares the stock structure, which has a data member for each SQL column, using the same names. The structure also has a number of member functions, operators and hidden data members, but we won’t go into that just now.

The parameter before each field name in the sql_create_# call is the C++ data type that will be used to hold that value in the SSQLS. While you could use plain old C++ data types for most of these columns (long int instead of mysqlpp::sql_bigint, for example) it’s best to use the MySQL++ typedefs.

Sometimes you have no choice but to use special MySQL++ data types to fully express the database schema. Consider the description field. MySQL++’s sql_mediumtext type is just an alias for std::string, since we don’t need anything fancier to hold a SQL MEDIUMTEXT value. It’s the SQL NULL attribute that causes trouble: it has no equivalent in the C++ type system. MySQL++ offers the Null template, which bridges this difference between the two type systems.

The general format of this macro is:

sql_create_#(NAME, COMPCOUNT, SETCOUNT, TYPE1, ITEM1, ... TYPE#, ITEM#)

where # is the number of member variables, NAME is the name of the structure you wish to create, TYPEx is the type of a member variable, and ITEMx is that variable’s name.

The COMPCOUNT and SETCOUNT arguments are described in the next section.

5.2. SSQLS Comparison and Initialization

The sql_create_# macro adds member functions and operators to each SSQLS that allow you to compare one SSQLS instance to another. These functions compare the first COMPCOUNT fields in the structure. In the example above, COMPCOUNT is 1, so only the item field will be checked when comparing two stock structures.

This feature works best when your table’s “key” fields are the first ones in the SSQLS and you set COMPCOUNT equal to the number of key fields. That way, a check for equality between two SSQLS structures in your C++ code will give the same results as a check for equality in SQL.

COMPCOUNT must be at least 1. The current implementation of sql_create_# cannot create an SSQLS without comparison member functions.

Because our stock structure is less-than-comparable, you can use it in STL algorithms and containers that require this, such as STL’s associative containers:

std::set<stock> result;   
query.storein(result);
cout << result.lower_bound(stock("Hamburger"))->item << endl;

This will print the first item in the result set that begins with “Hamburger.”

The third parameter to sql_create_# is SETCOUNT. If this is nonzero, it adds an initialization constructor and a set() member function taking the given number of arguments, for setting the first N fields of the structure. For example, you could change the above example like so:

sql_create_6(stock, 1, 2,
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,         
    mysqlpp::sql_double, weight,  
    mysqlpp::sql_decimal, price,  
    mysqlpp::sql_date, sdate,
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)
    
stock foo("Hotdog", 52);

In addition to this 2-parameter constructor, this version of the stock SSQLS will have a similar 2-parameter set() member function.

The COMPCOUNT and SETCOUNT values cannot be equal. If they are, the macro will generate two initialization constructors with identical parameter lists, which is illegal in C++. You might be asking, why does there need to be a constructor for comparison to begin with? It’s often convenient to be able to say something like x == stock("Hotdog"). This requires that there be a constructor taking COMPCOUNT arguments to create the temporary stock instance used in the comparison.

This limitation is not a problem in practice. If you want the same number of parameters in the initialization constructor as the number of fields used in comparisons, pass 0 for SETCOUNT. This suppresses the duplicate constructor you’d get if you used the COMPCOUNT value instead. This is most useful in very small SSQLSes, since it’s easier for the number of key fields to equal the number of fields you want to compare on:

sql_create_1(stock_item, 1, 0, mysqlpp::sql_char, item)

5.3. Retrieving data

Let’s put SSQLS to use. This is examples/ssqls1.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <vector>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {                       
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Retrieve a subset of the stock table's columns, and store
        // the data in a vector of 'stock' SSQLS structures.  See the
        // user manual for the consequences arising from this quiet
        // ability to store a subset of the table in the stock SSQLS.
        mysqlpp::Query query = con.query("select item,description from stock");
        vector<stock> res;
        query.storein(res);

        // Display the items
        cout << "We have:" << endl;
        vector<stock>::iterator it;
        for (it = res.begin(); it != res.end(); ++it) {
            cout << '\t' << it->item;
            if (it->description != mysqlpp::null) {
                cout << " (" << it->description << ")";
            }
            cout << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions; e.g. type mismatch populating 'stock'
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Here is the stock.h header used by that example, and by several others below:

#include <mysql++.h>
#include <ssqls.h>

// The following is calling a very complex macro which will create
// "struct stock", which has the member variables:
//
//   sql_char item;
//   ...
//   sql_mediumtext_null description;
//
// plus methods to help populate the class from a MySQL row.  See the
// SSQLS sections in the user manual for further details.
sql_create_6(stock,
    1, 6, // The meaning of these values is covered in the user manual
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,
    mysqlpp::sql_double, weight,
    mysqlpp::sql_double_null, price,
    mysqlpp::sql_date, sDate,           // SSQLS isn't case-sensitive!
    mysqlpp::sql_mediumtext_null, description)

This example produces the same output as simple1.cpp (see Section 3.2, “A Simple Example”), but it uses higher-level data structures paralleling the database schema instead of MySQL++’s lower-level generic data structures. It also uses MySQL++’s exceptions for error handling instead of doing everything inline. For small example programs like these, the overhead of SSQLS and exceptions doesn’t pay off very well, but in a real program, they end up working much better than hand-rolled code.

Notice that we are only pulling a single column from the stock table, but we are storing the rows in a std::vector<stock>. It may strike you as inefficient to have five unused fields per record. It’s easily remedied by defining a subset SSQLS:

sql_create_1(stock_subset,
  1, 0,
  string, item)
  
vector<stock_subset> res;
query.storein(res);
// ...etc...

MySQL++ is flexible about populating SSQLSes.[13] It works much like the Web, a design that’s enabled the development of the largest distributed system in the world. Just as a browser ignores tags and attributes it doesn’t understand, you can populate an SSQLS from a query result set containing columns that don’t exist in the SSQLS. And as a browser uses sensible defaults when the page doesn’t give explicit values, you can have an SSQLS with more fields defined than are in the query result set, and these SSQLS fields will get default values. (Zero for numeric types, false for bool, and a type-specific default for anything more complex, like mysqlpp::DateTime.)

In more concrete terms, the example above is able to populate the stock objects using as much information as it has, and leave the remaining fields at their defaults. Conversely, you could also stuff the results of SELECT * FROM stock into the stock_subset SSQLS declared above; the extra fields would just be ignored.

We’re trading run-time efficiency for flexibility here, usually the right thing in a distributed system. Since MySQL is a networked database server, many uses of it will qualify as distributed systems. You can’t count on being able to update both the server(s) and all the clients at the same time, so you have to make them flexible enough to cope with differences while the changes propagate. As long as the new database schema isn’t too grossly different from the old, your programs should continue to run until you get around to updating them to use the new schema.

There’s a danger that this quiet coping behavior may mask problems, but considering that the previous behavior was for the program to crash when the database schema got out of synch with the SSQLS definition, it’s likely to be taken as an improvement.

5.4. Adding data

MySQL++ offers several ways to insert data in SSQLS form into a database table.

Inserting a Single Row

The simplest option is to insert a single row at a time. This is examples/ssqls2.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <limits>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Create and populate a stock object.  We could also have used
        // the set() member, which takes the same parameters as this
        // constructor.
        stock row("Hot Dogs", 100, 1.5,
                numeric_limits<double>::infinity(), // "priceless," ha!
                mysqlpp::sql_date("1998-09-25"), mysqlpp::null);

        // Form the query to insert the row into the stock table.
        mysqlpp::Query query = con.query();
        query.insert(row);

        // Show the query about to be executed.
        cout << "Query: " << query << endl;

        // Execute the query.  We use execute() because INSERT doesn't
        // return a result set.
        query.execute();

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {  
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

That’s all there is to it! MySQL++ even takes care of quoting and escaping the data when building queries from SSQLS structures. It’s efficient, too: MySQL++ is smart enough to quote and escape data only for those data types that actually require it.

Inserting Many Rows

Inserting a single row is useful, to be sure, but you might want to be able to insert many SSQLSes or Row objects at once. MySQL++ knows how to do that, too, sparing you the necessity of writing the loop. Plus, MySQL++ uses an optimized implementation of this algorithm, packing everything into a single SQL query, eliminating the overhead of multiple calls between the client and server. It’s just a different overload of insert(), which accepts a pair of iterators into an STL container, inserting every row in that range:

vector<stock> lots_of_stuff;
...populate the vector somehow...
query.insert(lots_of_stuff.begin(), lots_of_stuff.end()).execute();

By the way, notice that you can chain Query operations like in the last line above, because its methods return *this where that makes sense.

Working Around MySQL’s Packet Size Limit

The two-iterator form of insert() has an associated risk: MySQL has a limit on the size of the SQL query it will process. The default limit is 1 MB. You can raise the limit, but the reason the limit is configurable is not to allow huge numbers of inserts in a single query. They made the limit configurable because a single row might be bigger than 1 MB, so the default would prevent you from inserting anything at all. If you raise the limit simply to be able to insert more rows at once, you’re courting disaster with no compensating benefit: the more data you send at a time, the greater the chance and cost of something going wrong. Worse, this is pure risk, because by the time you hit 1 MB, the per-packet overhead is such a small fraction of the data being transferred that increasing the packet size buys you essentially nothing.

Let’s say you have a vector containing several megabytes of data; it will get even bigger when expressed in SQL form, so there’s no way you can insert it all in a single query without raising the MySQL packet limit. One way to cope would be to write your own naïve loop, inserting just one row at a time. This is slow, because you’re paying the per-query cost for every row in the container. Then you might realize that you could use the two iterator form of insert(), passing iterators expressing sub-ranges of the container instead of trying to insert the whole container in one go. Now you’ve just got to figure out how to calculate those sub-ranges to get efficient operation without exceeding the packet size limit.

MySQL++ already knows how to do that, too, with Query::insertfrom(). We gave it a different name instead of adding yet another insert() overload because it doesn’t merely build the INSERT query, which you then execute(). It’s more like storein(), in that it wraps the entire operation up in a single call. This feature is demonstrated in examples/ssqls6.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <fstream>

using namespace std;


// Breaks a given text line of tab-separated fields up into a list of
// strings.
static size_t
tokenize_line(const string& line, vector<mysqlpp::String>& strings)
{
    string field;
    strings.clear();

    istringstream iss(line);
    while (getline(iss, field, '\t')) {
        strings.push_back(mysqlpp::String(field));
    }

    return strings.size();
}


// Reads a tab-delimited text file, returning the data found therein
// as a vector of stock SSQLS objects.
static bool
read_stock_items(const char* filename, vector<stock>& stock_vector)
{
    ifstream input(filename);
    if (!input) {
        cerr << "Error opening input file '" << filename << "'" << endl;
        return false;
    }

    string line;
    vector<mysqlpp::String> strings;
    while (getline(input, line)) {
        if (tokenize_line(line, strings) == 6) {
            stock_vector.push_back(stock(string(strings[0]), strings[1],
                    strings[2], strings[3], strings[4], strings[5]));
        }
        else {
            cerr << "Error parsing input line (doesn't have 6 fields) " << 
                    "in file '" << filename << "'" << endl;
            cerr << "invalid line: '" << line << "'" << endl;
        }
    }

    return true;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Read in a tab-delimited file of stock data
    vector<stock> stock_vector;
    if (!read_stock_items("examples/stock.txt", stock_vector)) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Clear all existing rows from stock table, as we're about to
        // insert a bunch of new ones, and we want a clean slate.
        mysqlpp::Query query = con.query();
        query.exec("DELETE FROM stock");

        // Insert data read from the CSV file, allowing up to 1000
        // characters per packet.  We're using a small size in this
        // example just to force multiple inserts.  In a real program,
        // you'd want to use larger packets, for greater efficiency.
        mysqlpp::Query::MaxPacketInsertPolicy<> insert_policy(1000);
        query.insertfrom(stock_vector.begin(), stock_vector.end(),
                insert_policy);

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::BadInsertPolicy& er) {
        // Handle bad conversions
        cerr << "InsertPolicy error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Most of the complexity in this example goes to just reading in the data from a file; we have to get our test data from somewhere. There are only two key lines of code: create an insertion policy object, and pass it along with an STL container full of row data to Query::insertfrom().

This policy object is the main thing that differentiates insertfrom() from the two-iterator form of insert(). It controls how insertfrom() builds the query strings, primarily controlling how large each query gets before insertfrom() executes it and starts building a new query. We designed it to use policy objects because there is no single “right” choice for the decisions it makes.

MySQL++ ships with three different insertion policy classes, which should cover most situations.

MaxPacketInsertPolicy, demonstrated in the example above, does things the most obvious way: when you create it, you pass the maximum packet size, which it uses to prevent queries from going over the size limit. It builds up a query string row by row, checking each time through the loop whether adding another insert statement to the query string would make the packet size go over the limit. When that happens, or it gets to the end of the iteration range, it executes the query and starts over if it’s not yet at the end. This is robust, but it has a downside: it has to build each insert query in advance of knowing that it can append it to the larger query. Any time an insert query would push the packet over the limit, it has to throw it away, causing the library to do more work than is strictly necessary.

Imagine you’ve done some benchmarking and have found that the point of diminishing returns is at about 20 KB per query in your environment; beyond that point, the per-query overhead ceases to be an issue. Let’s also say you know for a fact that your largest row will always be less than 1 MB — less 20 KB — when expressed as a SQL insert statement. In that case, you can use the more efficient SizeThresholdInsertPolicy. It differs from MaxPacketInsertPolicy in that it allows insertfrom() to insert rows blindly into the query string until the built query exceeds the threshold, 20 KB in this example. Then it ships the packet off, and if successful, starts a new query. Thus, each query (except possibly the last) will be at least 20 KB, exceeding that only by as much as one row’s worth of data, minus one byte. This is quite appropriate behavior when your rows are relatively small, as is typical for tables not containing BLOB data. It is more efficient than MaxPacketInsertPolicy because it never has to throw away any SQL fragments.

The simplest policy object type is RowCountInsertPolicy. This lets you simply say how many rows at a time to insert into the database. This works well when you have a good handle on how big each row will be, so you can calculate in advance how many rows you can insert at once without exceeding some given limit. Say you know your rows can’t be any bigger than about 1 KB. If we stick with that 20 KB target, passing RowCountInsertPolicy<>(20) for the policy object would ensure we never exceed the size threshold. Or, say that maximum size value above is still true, but we also know the average row size is only 200 bytes. You could pass RowCountInsertPolicy<>(100) for the policy, knowing that the average packet size will be around 20 KB, and the worst case packet size 100 KB, still nowhere near the default 1 MB packet size limit. The code for this policy is very simple, so it makes your program a little smaller than if you used either of the above policies. Obviously it’s a bad choice if you aren’t able to predict the size of your rows accurately.

If one of the provided insert policy classes doesn’t suit your needs, you can easily create a custom one. Just study the implementation in lib/insertpolicy.*.

Interaction with Transactions

These policy classes are all templates, taking a parameter that defaults to Transaction. This means that, by default, insertfrom() wraps the entire operation in a SQL transaction, so that if any of the insertions fail, the database server rolls them all back. This prevents an error in the middle of the operation from leaving just part of the container’s data inserted in the database, which you usually don’t want any more than you’d want half a single row to be inserted.

There are good reasons why you might not want this. Perhaps the best reason is if the insertfrom() call is to be part of a larger transaction. MySQL doesn’t support nested transactions, so the insertfrom() call will fail if it tries to start one of its own. You can pass NoTransactions for the insert policy’s template parameter to make it suppress the transaction code.

5.5. Modifying data

It almost as easy to modify data with SSQLS as to add it. This is examples/ssqls3.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Build a query to retrieve the stock item that has Unicode
        // characters encoded in UTF-8 form.
        mysqlpp::Query query = con.query("select * from stock ");
        query << "where item = " << mysqlpp::quote << "Nürnberger Brats";

        // Retrieve the row, throwing an exception if it fails.
        mysqlpp::StoreQueryResult res = query.store();
        if (res.empty()) {
            throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in "
                    "table, run resetdb");
        }

        // Because there should only be one row in the result set,
        // there's no point in storing the result in an STL container.
        // We can store the first row directly into a stock structure
        // because one of an SSQLS's constructors takes a Row object.
        stock row = res[0];

        // Create a copy so that the replace query knows what the
        // original values are.
        stock orig_row = row;

        // Change the stock object's item to use only 7-bit ASCII, and
        // to deliberately be wider than normal column widths printed
        // by print_stock_table().
        row.item = "Nuerenberger Bratwurst";

        // Form the query to replace the row in the stock table.
        query.update(orig_row, row);

        // Show the query about to be executed.
        cout << "Query: " << query << endl;

        // Run the query with execute(), since UPDATE doesn't return a
        // result set.
        query.execute();

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Don’t forget to run resetdb after running the example.

5.6. Storing SSQLSes in Associative Containers

One of the requirements of STL’s associative containers on data stored in them is that the data type has to be less-than comparable. That is, it has to have an operator < defined. SSQLS does optionally give you this, as demonstrated in examples/ssqls4.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Retrieve all rows from the stock table and put them in an
        // STL set.  Notice that this works just as well as storing them
        // in a vector, which we did in ssqls1.cpp.  It works because
        // SSQLS objects are less-than comparable.
        mysqlpp::Query query = con.query("select * from stock");
        set<stock> res;
        query.storein(res);

        // Display the result set.  Since it is an STL set and we set up
        // the SSQLS to compare based on the item column, the rows will
        // be sorted by item.
        print_stock_header(res.size());
        set<stock>::iterator it;
        cout.precision(3);
        for (it = res.begin(); it != res.end(); ++it) {
            print_stock_row(it->item.c_str(), it->num, it->weight,
                    it->price, it->sDate);
        }

        // Use set's find method to look up a stock item by item name.
        // This also uses the SSQLS comparison setup.
        it = res.find(stock("Hotdog Buns"));
        if (it != res.end()) {
            cout << endl << "Currently " << it->num <<
                    " hotdog buns in stock." << endl;
        }
        else {
            cout << endl << "Sorry, no hotdog buns in stock." << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

The find() call works because of the way the SSQLS was declared. It’s properly covered elsewhere, but suffice it to say, the “1” in the declaration of stock above tells it that only the first field needs to be checked in comparing two SSQLSes. In database terms, this makes it the primary key. Therefore, when searching for a match, our exemplar only had to have its first field populated.

5.7. Changing the Table Name

Another feature you might find a use for is changing the table name MySQL++ uses to build queries involving SSQLSes. By default, the database server table is assumed to have the same name as the SSQLS structure type. But if this is inconvenient, you can globally change the table name used in queries like this:

stock::table("MyStockData");

It’s also possible to change the name of a table on a per-instance basis:

stock s;
s.instance_table("AlternateTable");

This is useful when you have an SSQLS definition that is compatible with multiple tables, so the table name to use for each instance is different. This feature saves you from having to define a separate SSQLS for each table. It is also useful for mapping a class hierarchy onto a set of table definitions. The common SSQLS definition is the “superclass” for a given set of tables.

Strictly speaking, you only need to use this feature in multithreaded programs. Changing the static table name before using each instance is safe if all changes happen within a single thread. That said, it may still be convenient to change the name of the table for an SSQLS instance in a single-threaded program if it gets used for many operations over an extended span of code.

5.8. Using an SSQLS in Multiple Modules

It’s convenient to define an SSQLS in a header file so you can use it in multiple modules. You run into a bit of a problem, though, because each SSQLS includes a few static data members to hold information common to all structures of that type. (The table name and the list of field names.) When you #include that header in more than one module, you get a multiply-defined symbol error at link time.

The way around this is to define the preprocessor macro MYSQLPP_SSQLS_NO_STATICS in all but one of the modules that use the header definining the SSQLS. When this macro is defined, it suppresses the static data members in any SSQLS defined thereafter.

Imagine we have a file my_ssqls.h which includes a sql_create_N macro call to define an SSQLS, and that that SSQLS is used in at least two modules. One we’ll call foo.cpp, and we’ll say it’s just a user of the SSQLS; it doesn’t “own” it. Another of the modules, my_ssqls.cpp uses the SSQLS more heavily, so we’ve called it the owner of the SSQLS. If there aren’t very many modules, this works nicely:

// File foo.cpp, which just uses the SSQLS, but doesn’t "own" it:
#define MYSQLPP_SSQLS_NO_STATICS
#include "my_ssqls.h"
// File my_ssqls.cpp, which owns the SSQLS, so we just #include it directly
#include "my_ssqls.h"

If there are many modules that need the SSQLS, adding all those #defines can be a pain. In that case, it’s easier if you flip the above pattern on its head:

// File my_ssqls.h:
#if !defined(EXPAND_MY_SSQLS_STATICS)
#   define MYSQLPP_SSQLS_NO_STATICS
#endif
sql_create_X(Y, Z....) // the SSQLS definition
// File foo.cpp, a mere user of the SSQLS:
#include "my_ssqls.h"
// File my_ssqls.cpp, which owns the SSQLS:
#define EXPAND_MY_SSQLS_STATICS
#include "my_ssqls.h"

5.9. Harnessing SSQLS Internals

The sql_create macros define several methods for each SSQLS. These methods are mostly for use within the library, but some of them are useful enough that you might want to harness them for your own ends. Here is some pseudocode showing how the most useful of these methods would be defined for the stock structure used in all the ssqls*.cpp examples:

// Basic form
template <class Manip>   
stock_value_list<Manip> value_list(cchar *d = ",",
  Manip m = mysqlpp::quote) const;  

template <class Manip>   
stock_field_list<Manip> field_list(cchar *d = ",",   
  Manip m = mysqlpp::do_nothing) const;  

template <class Manip>   
stock_equal_list<Manip> equal_list(cchar *d = ",",
  cchar *e = " = ", Manip m = mysqlpp::quote) const;  


// Boolean argument form
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]   
  bool i1, bool i2 = false, ... , bool i5 = false) const;  

// List form  
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]  
  stock_enum i1, stock_enum i2 = stock_NULL, ...,
  stock_enum i5 = stock_NULL) const;  

// Vector form  
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]  
  vector<bool> *i) const;  

...Plus the obvious equivalents for field_list() and equal_list()

Rather than try to learn what all of these methods do at once, let’s ease into the subject. Consider this code:

stock s("Dinner Rolls", 75, 0.95, 0.97, sql_date("1998-05-25"));   
cout << "Value list: " << s.value_list() << endl;  
cout << "Field list: " << s.field_list() << endl;  
cout << "Equal list: " << s.equal_list() << endl;

That would produce something like:

Value list: 'Dinner Rolls’,75,0.95,0.97,'1998-05-25'   
Field list: item,num,weight,price,sdate  
Equal list: item = 'Dinner Rolls’,num = 75,weight = 0.95, price = 0.97,sdate = '1998-05-25'

That is, a “value list” is a list of data member values within a particular SSQLS instance, a “field list” is a list of the fields (columns) within that SSQLS, and an “equal list” is a list in the form of an SQL equals clause.

Just knowing that much, it shouldn’t surprise you to learn that Query::insert() is implemented more or less like this:

*this << "INSERT INTO " << v.table() << " (" << v.field_list() <<
    ") VALUES (" << v.value_list() << ")";

where ‘v’ is the SSQLS you’re asking the Query object to insert into the database.

Now let’s look at a complete example, which uses one of the more complicated forms of equal_list(). This example builds a query with fewer hard-coded strings than the most obvious technique requires, which makes it more robust in the face of change. Here is examples/ssqls5.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <vector>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Get all the rows in the stock table.
        mysqlpp::Query query = con.query("select * from stock");
        vector<stock> res;
        query.storein(res);

        if (res.size() > 0) {
            // Build a select query using the data from the first row
            // returned by our previous query.
            query << "select * from stock where " <<
                    res[0].equal_list(" and ", stock_weight, stock_price);

            // Display the finished query.
            cout << "Custom query:\n" << query << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

This example uses the list form of equal_list(). The arguments stock_weight and stock_price are enum values equal to the position of these columns within the stock table. sql_create_# generates this enum for you automatically.

The boolean argument form of that equal_list() call would look like this:

query << "select * from stock where " <<
    res[0].equal_list(" and ", false, false, true, true, false);

It’s a little more verbose, as you can see. And if you want to get really complicated, use the vector form:

vector<bool> v(5, false);
v[stock_weight] = true;
v[stock_price] = true;
query << "select * from stock where " <<
    res[0].equal_list(" and ", v);

This form makes the most sense if you are building many other queries, and so can re-use that vector object.

Many of these methods accept manipulators and custom delimiters. The defaults are suitable for building SQL queries, but if you’re using these methods in a different context, you may need to override these defaults. For instance, you could use these methods to dump data to a text file using different delimiters and quoting rules than SQL.

At this point, we’ve seen all the major aspects of the SSQLS feature. The final sections of this chapter look at some of the peripheral aspects.

5.10. Having Different Field Names in C++ and SQL

There’s a more advanced SSQLS creation macro, which all the others are built on top of. Currently, the only feature it adds over what’s described above is that it lets you name your SSQLS fields differently from the names used by the database server. Perhaps you want to use Hungarian notation in your C++ program without changing the SQL database schema:

sql_create_complete_5(stock, 1, 5,   
    mysqlpp::sql_char, m_sItem, "item",
    mysqlpp::sql_bigint, m_nNum, "num",
    mysqlpp::sql_double, m_fWeight, "weight",
    mysqlpp::sql_decimal, m_fPrice, "price",
    mysqlpp::sql_date, m_Date, "sdate")

Note that you don’t have to use this mechanism if the only difference in your SQL and C++ field names is case. SSQLS field name lookups are case-insensitive as of MySQL++ 3.1. You can see this in the examples: some parts of the code deliberately refer to the stock.sdate sample table field as stock.sDate to exercise this feature.

5.11. Expanding SSQLS Macros

If you ever need to see the code that a given SSQLS declaration expands out to, use the utility doc/ssqls-pretty, like so:

doc/ssqls-pretty < myprog.cpp | less

This Perl script locates the first SSQLS declaration in that file, then uses the C++ preprocessor to expand that macro. (The script assumes that your system’s preprocessor is called cpp, and that its command line interface follows Unix conventions.)

If you run it from the top MySQL++ directory, as shown above, it will use the header files in the distribution’s lib subdirectory. Otherwise, it assumes the MySQL++ headers are in their default location, /usr/include/mysql++. If you want to use headers in some other location, you’ll need to change the directory name in the -I flag at the top of the script.

5.12. Customizing the SSQLS Mechanism

The SSQLS header ssqls.h is automatically generated by the Perl script ssqls.pl. Although it is possible to change this script to get additional functionality, most of the time it’s better to just derive a custom class from the generated SSQLS to add functionality to it. (See the next section to see how to do this correctly.)

That said, ssqls.pl does have a few configurables you might want to tweak.

The first configurable value sets the maximum number of data members allowed in an SSQLS. This is discussed elsewhere, in Section 8.2, “The Maximum Number of Fields Allowed”. Beware the warnings there about increasing this value too much.

The second configurable is the default floating point precision used for comparison. As described above (Section 5.2, “SSQLS Comparison and Initialization”) SSQLSes can be compared for equality. The only place this is tricky is with floating-point numbers, since rounding errors can make two “equal” values compare as distinct. This property of floating-point numbers means we almost never want to do exact comparison. MySQL++ lets you specify the precision you want it to use. If the difference between two values is under a given threshold, MySQL++ considers the values equal. The default threshold is 0.00001. This threshold works well for “human” scale values, but because of the way floating-point numbers work, it can be wildly inappropriate for very large or very small quantities like those used in scientific applications.

There are actually two ways to change this threshold. If you need a different system-wide default, edit ssqls.pl and change the $fp_min_delta variable at the top of the file, then rebuild ssqls.h as described below. If you need different thresholds per file or per project, it’s better to set the C macro MYSQLPP_FP_MIN_DELTA instead. The Perl variable sets this macro’s default; if you give a different value before #including ssqls.h, it will use that instead.

To rebuild ssqls.h after changing ssqls.pl, you’ll need a Perl interpreter. The only modern Unixy system I’m aware of where Perl isn’t installed by default is Cygwin, and it’s just a setup.exe choice away there. You’ll probably only have to download and install a Perl interpreter if you’re on Windows and don’t want to use Cygwin.

If you’re on a system that uses autoconf, building MySQL++ automatically updates ssqls.h any time ssqls.pl changes. Otherwise, you’ll need to run the Perl interpreter by hand:

c:\mysql++> cd lib
c:\lib> perl ssqls.pl

5.13. Deriving from an SSQLS

Specialized SQL Structures make good base classes. They’re simple, and have few requirements on any class that derives from them. There are some gotchas to look out for, however.

Consider this:

sql_create_2(
  Base, 1, 2,
  mysqlpp::sql_varchar, a,
  mysqlpp::sql_int, b
);

class Derived : public Base
{
public:
  // constructor
  Derived(mysqlpp::sql_varchar _a, mysqlpp::sql_int _b) :
  Base(_a, _b)
  {
  }

  // functionality added to the SSQLS through inheritance
  bool do_something_interesting(int data);
};

We’ve derived a class from an SSQLS in order to add a method to it. Easy, right?

Sadly, too easy. The code has a rather large flaw which makes our derived class unusable as an SSQLS. In C++, if a derived class has a function of the same name as one in the base class, the base class versions of that function are all hidden by those in the derived class. This applies to constructors, too: an SSQLS defines several constructors, but our derived class defines only one, causing that one to hide all of the ones in the base class. Many of the MySQL++ mechanisms that use SSQLSes rely on having these contructors, so our Derived above is-not-a Base, and so it isn’t an SSQLS. If you try to use Derived as an SSQLS, you’ll get compiler errors wherever MySQL++ tries to access one of these other constructors.

There’s another minor flaw, as well. Our lone constructor above takes its parameters by value, but the corresponding constructor in the SSQLS takes them by const reference. Our derived class has technically hidden a fourth base class constructor this way, but this particular case is more a matter of efficiency than correctness. Code that needs the full-creation constructor will still work with our code above, but passing stringish types like sql_varchar by value instead of by const reference is inefficient.

This is the corrected version of the above code:

sql_create_2(
  Base, 1, 2,
  mysqlpp::sql_varchar, a,
  mysqlpp::sql_int, b
);

class Derived : public Base
{
public:
  // default constructor[14]
  Derived() :
  Base()
  {
  }

  // for-comparison constructor[15]
  Derived(const mysqlpp::sql_varchar& _a) :
  Base(_a)
  {
  }

  // full creation constructor
  Derived(const mysqlpp::sql_varchar& _a, const mysqlpp::sql_int& _b) :
  Base(_a, _b)
  {
  }

  // population constructor[16]
  Derived(const mysqlpp::Row& row) :
  Base(row)
  {
  }

  // functionality added to the SSQLS through inheritance
  bool do_something_interesting(int data);
};

Now Derived is-an SSQLS.

You might wonder if you can use protected inheritance above to redefine the SSQLS’s public interface. For instance, OO purists might object to the public data members in an SSQLS. You could encapsulate these public data members in the derived class by using protected inheritance, exposing access to the base class’s data members with public accessor methods. The problem with this is that each SSQLS has dozens of public member functions. These are needed by MySQL++ internals, so unless you re-exposed all of them as we did with the constructors above, you’d again have an SSQLS derivative that is-not-an SSQLS. Simply put, only public inheritance is practical with SSQLSes.

5.14. SSQLS and BLOB Columns

It takes special care to use SSQLS with BLOB columns. It’s safest to declare the SSQLS field as of type mysqlpp::sql_blob. This is currently a typedef alias for String, which is the form the data is in just before the SSQLS mechanism populates the structure. Thus, when the data is copied from the internal MySQL++ data structures into your SSQLS, you get a direct copy of the String object’s contents, without interference.

Because C++ strings handle binary data just fine, you might think you can use std::string instead of sql_blob, but the current design of String converts to std::string via a C string. As a result, the BLOB data is truncated at the first embedded null character during population of the SSQLS. There’s no way to fix that without completely redesigning either String or the SSQLS mechanism.

The sql_blob typedef may be changed to alias a different type in the future, so using it instead of String ensures that your code tracks these library changes automatically. Besides, String is only intended to be an internal mechanism within MySQL++. The only reason the layering is so thin here is because it’s the only way to prevent BLOB data from being corrupted while avoiding that looming redesign effort.

You can see this technique in action in the cgi_jpeg example:

#include "cmdline.h"
#include "images.h"

#define CRLF            "\r\n"
#define CRLF2           "\r\n\r\n"

int
main(int argc, char* argv[])
{
    // Get database access parameters from command line if present, else
    // use hard-coded values for true CGI case.
    mysqlpp::examples::CommandLine cmdline(argc, argv, "root",
            "nunyabinness");
    if (!cmdline) {
        return 1;
    }

    // Parse CGI query string environment variable to get image ID
    unsigned int img_id = 0;
    char* cgi_query = getenv("QUERY_STRING");
    if (cgi_query) {
        if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) {
            std::cout << "Content-type: text/plain" << std::endl << std::endl;
            std::cout << "ERROR: Bad query string" << std::endl;
            return 1;
        }
        else {
            img_id = atoi(cgi_query + 3);
        }
    }
    else {
        std::cerr << "Put this program into a web server's cgi-bin "
                "directory, then" << std::endl;
        std::cerr << "invoke it with a URL like this:" << std::endl;
        std::cerr << std::endl;
        std::cerr << "    http://server.name.com/cgi-bin/cgi_jpeg?id=2" <<
                std::endl;
        std::cerr << std::endl;
        std::cerr << "This will retrieve the image with ID 2." << std::endl;
        std::cerr << std::endl;
        std::cerr << "You will probably have to change some of the #defines "
                "at the top of" << std::endl;
        std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." <<
                std::endl;
        return 1;
    }

    // Retrieve image from DB by ID
    try {
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());
        mysqlpp::Query query = con.query();
        query << "SELECT * FROM images WHERE id = " << img_id;
        mysqlpp::StoreQueryResult res = query.store();
        if (res && res.num_rows()) {
            images img = res[0];
            if (img.data.is_null) {
                std::cout << "Content-type: text/plain" << CRLF2;
                std::cout << "No image content!" << CRLF;
            }
            else {
                std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging
                std::cout << "Content-type: image/jpeg" << CRLF;
                std::cout << "Content-length: " <<
                        img.data.data.length() << CRLF2;
                std::cout << img.data;
            }
        }
        else {
            std::cout << "Content-type: text/plain" << CRLF2;
            std::cout << "ERROR: No image with ID " << img_id << CRLF;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "QUERY ERROR: " << er.what() << CRLF;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "GENERAL ERROR: " << er.what() << CRLF;
        return 1;
    }

    return 0;
}

5.15. SSQLS and Visual C++ 2003

SSQLS works on all platforms supported by MySQL++ except for Visual C++ 2003. (Because the rest of MySQL++ works just fine with Visual C++ 2003, we haven’t removed this platform from the supported list entirely.)

If you do need SSQLS and are currently on Visual C++ 2003, you have these options:

  1. The simplest option is to upgrade to a newer version of Visual C++. The compiler limitations that break SSQLS are all fixed in Visual C++ 2005 and newer. Visual C++ Express is free and is apparently here to stay; coupled with the free wxWidgets library, it lacks little compared to Visual C++ Professional. A bonus of using wxWidgets is that it’s cross-platform and better-supported than MFC.

  2. If you can’t upgrade your compiler, you may be able to downgrade to MySQL++ v2.x. The SSQLS feature in these older versions worked with Visual C++ 2003, but didn’t let you use a given SSQLS in more than one module in a program. If you can live with that limitation and have a Perl interpreter on your system, you can re-generate lib/ssqls.h to remove the multiple-module SSQLS support. To do this, you run the command perl ssqls.pl -v from within MySQL++’s lib subdirectory before you build and install the library.

  3. There’s a plan to replace the current SSQLS mechanism with an entirely new code base. Although this is being done primarily to get new features that are too difficult to add within the current design, it also means we’ll have the chance to test step-by-step along the way that we don’t reintroduce code that Visual C++ 2003 doesn’t support. This may happen without you doing anything, but if there’s someone on the team who cares about this, that will naturally increase the chances that it does happen.



[13] Programs built against versions of MySQL++ prior to 3.0 would crash at almost any mismatch between the database schema and the SSQLS definition. It’s no longer necessary to keep the data design in lock-step between the client and database server. A mismatch can result in data loss, but not a crash.

[14] needed by mechanisms like Query::storein(); anything using an STL container, which usually require default ctors for contained data structures

[15] takes the COMPCOUNT subset of the SSQLS’s data members, used for making comparison exemplars, used with Query::update() and similar mechanisms; see Section 5.1, “sql_create” for more on COMPCOUNT

[16] used in taking raw row data from a SQL result set and converting it to SSQLS form

mysql++-3.2.2+pristine.orig/doc/html/userman/overview.html0000755000372000001440000002741512502417165023131 0ustar robertousers2. Overview

2. Overview

MySQL++ has a lot of complexity and power to cope with the variety of ways people use databases, but at bottom it doesn’t work all that differently than other database access APIs. The usage pattern looks like this:

  1. Open the connection

  2. Form and execute the query

  3. If successful, iterate through the result set

  4. Else, deal with errors

Each of these steps corresponds to a MySQL++ class or class hierarchy. An overview of each follows.

2.1. The Connection Object

A Connection object manages the connection to the MySQL server. You need at least one of these objects to do anything. Because the other MySQL++ objects your program will use often depend (at least indirectly) on the Connection instance, the Connection object needs to live at least as long as all other MySQL++ objects in your program.

MySQL supports many different types of data connection between the client and the server: TCP/IP, Unix domain sockets, and Windows named pipes. The generic Connection class supports all of these, figuring out which one you mean based on the parameters you pass to Connection::connect(). But if you know in advance that your program only needs one particular connection type, there are subclasses with simpler interfaces. For example, there’s TCPConnection if you know your program will always use a networked database server.

2.2. The Query Object

Most often, you create SQL queries using a Query object created by the Connection object.

Query acts as a standard C++ output stream, so you can write data to it like you would to std::cout or std::ostringstream. This is the most C++ish way MySQL++ provides for building up a query string. The library includes stream manipulators that are type-aware so it’s easy to build up syntactically-correct SQL.

Query also has a feature called Template Queries which work something like C’s printf() function: you set up a fixed query string with tags inside that indicate where to insert the variable parts. If you have multiple queries that are structurally similar, you simply set up one template query, and use that in the various locations of your program.

A third method for building queries is to use Query with SSQLS. This feature lets you create C++ structures that mirror your database schemas. These in turn give Query the information it needs to build many common SQL queries for you. It can INSERT, REPLACE and UPDATE rows in a table given the data in SSQLS form. It can also generate SELECT * FROM SomeTable queries and store the results as an STL collection of SSQLSes.

2.3. Result Sets

The field data in a result set are stored in a special std::string-like class called String. This class has conversion operators that let you automatically convert these objects to any of the basic C data types. Additionally, MySQL++ defines classes like DateTime, which you can initialize from a MySQL DATETIME string. These automatic conversions are protected against bad conversions, and can either set a warning flag or throw an exception, depending on how you set the library up.

As for the result sets as a whole, MySQL++ has a number of different ways of representing them:

Queries That Do Not Return Data

Not all SQL queries return data. An example is CREATE TABLE. For these types of queries, there is a special result type (SimpleResult) that simply reports the state resulting from the query: whether the query was successful, how many rows it impacted (if any), etc.

Queries That Return Data: MySQL++ Data Structures

The most direct way to retrieve a result set is to use Query::store(). This returns a StoreQueryResult object, which derives from std::vector<mysqlpp::Row>, making it a random-access container of Rows. In turn, each Row object is like a std::vector of String objects, one for each field in the result set. Therefore, you can treat StoreQueryResult as a two-dimensional array: you can get the 5th field on the 2nd row by simply saying result[1][4]. You can also access row elements by field name, like this: result[2]["price"].

A less direct way of working with query results is to use Query::use(), which returns a UseQueryResult object. This class acts like an STL input iterator rather than a std::vector: you walk through your result set processing one row at a time, always going forward. You can’t seek around in the result set, and you can’t know how many results are in the set until you find the end. In payment for that inconvenience, you get better memory efficiency, because the entire result set doesn’t need to be stored in RAM. This is very useful when you need large result sets.

Queries That Return Data: Specialized SQL Structures

Accessing results through MySQL++’s data structures is a pretty low level of abstraction. It’s better than using the MySQL C API, but not by much. You can elevate things a little closer to the level of the problem space by using the SSQLS feature. This lets you define C++ structures that match the table structures in your database schema. In addition, it’s easy to use SSQLSes with regular STL containers (and thus, algorithms) so you don’t have to deal with the quirks of MySQL++’s data structures.

The advantage of this method is that your program will require very little embedded SQL code. You can simply execute a query, and receive your results as C++ data structures, which can be accessed just as you would any other structure. The results can be accessed through the Row object, or you can ask the library to dump the results into an STL container — sequential or set-associative, it doesn’t matter — for you. Consider this:

vector<stock> v;
query << "SELECT * FROM stock";
query.storein(v);
for (vector<stock>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << "Price: " << it->price << endl;
}

Isn’t that slick?

If you don’t want to create SSQLSes to match your table structures, as of MySQL++ v3 you can now use Row here instead:

vector<mysqlpp::Row> v;
query << "SELECT * FROM stock";
query.storein(v);
for (vector<mysqlpp::Row>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << "Price: " << it->at("price") << endl;
}

It lacks a certain syntactic elegance, but it has its uses.

2.4. Exceptions

By default, the library throws exceptions whenever it encounters an error. You can ask the library to set an error flag instead, if you like, but the exceptions carry more information. Not only do they include a string member telling you why the exception was thrown, there are several exception types, so you can distinguish between different error types within a single try block.

mysql++-3.2.2+pristine.orig/doc/html/userman/tangentsoft.css0000755000372000001440000000240012502417165023426 0ustar robertousersBODY { background-color: #FFFFEE; font-family: "Georgia", "Luxi Serif", "New Century Schoolbook", "Times New Roman", "Times", serif; margin-left: 30pt; margin-right: 30pt; } a:link { color: #491E00; } a:visited { color: #7D2E01; } a:hover { color: #CC5500; text-decoration: none; } a:active { color: #DA7417; } DIV.footnote > P { font-size: 85%; } EM.phrase { /* Georgia's great, but oldstyle numerals make math hard to read */ font-family: "Times", "Times New Roman", serif; } H1, H2, H3, H4, H5, H6, DIV.navheader > TABLE > TBODY > TR > TH { color: #501000; font-family: "Verdana", "Luxi Sans", "Helvetica Narrow", "Arial", "Univers", sans-serif; font-weight: bold; } H1 { font-size: 20pt; } H2 { font-size: 18pt; } H3 { font-size: 14pt; } H4 { font-size: 10pt; } H4.subtitle { margin-left: 20pt; } H5 { font-size: 10pt; margin-left: 20pt; } P { line-height: 140%; margin-left: 20pt; } div.sect3 { margin-left: 20pt; } li { margin-left: 30pt; } li p { margin-left: 0pt; } pre.programlisting, pre.screen { border: 1px solid #882200; margin: 10pt; margin-left: 40pt; padding: 10pt; background-color: #FFFFCC; } .type { font-family: monospace; } .symbol { font-family: monospace; } mysql++-3.2.2+pristine.orig/doc/html/userman/unicode.html0000755000372000001440000002730412502417165022706 0ustar robertousers6. Using Unicode with MySQL++

6. Using Unicode with MySQL++

6.1. A Short History of Unicode

...with a focus on relevance to MySQL++

In the old days, computer operating systems only dealt with 8-bit character sets. That only allows for 256 possible characters, but the modern Western languages have more characters combined than that alone. Add in all the other languages of the world plus the various symbols people use in writing, and you have a real mess!

Since no standards body held sway over things like international character encoding in the early days of computing, many different character sets were invented. These character sets weren’t even standardized between operating systems, so heaven help you if you needed to move localized Greek text on a DOS box to a Russian Macintosh! The only way we got any international communication done at all was to build standards on top of the common 7-bit ASCII subset. Either people used approximations like a plain “c” instead of the French “ç”, or they invented things like HTML entities (“&ccedil;” in this case) to encode these additional characters using only 7-bit ASCII.

Unicode solves this problem. It encodes every character used for writing in the world, using up to 4 bytes per character. The subset covering the most economically valuable cases takes two bytes per character, so many Unicode-aware programs only support this subset, storing characters as 2-byte values, rather than use 4-byte characters so as to cover all possible cases, however rare. This subset of Unicode is called the Basic Multilingual Plane, or BMP.

Unfortunately, Unicode was invented about two decades too late for Unix and C. Those decades of legacy created an immense inertia preventing a widespread move away from 8-bit characters. MySQL and C++ come out of these older traditions, and so they share the same practical limitations. MySQL++ currently doesn't have any code in it for Unicode conversions; it just passes data along unchanged from the underlying MySQL C API, so you still need to be aware of these underlying issues.

During the development of the Plan 9 operating system (a kind of successor to Unix) Ken Thompson invented the UTF-8 encoding. UTF-8 is a superset of 7-bit ASCII and is compatible with C strings, since it doesn’t use 0 bytes anywhere as multi-byte Unicode encodings do. As a result, many programs that deal in text will cope with UTF-8 data even though they have no explicit support for UTF-8. (Follow the last link above to see how the design of UTF-8 allows this.) Thus, when explicit support for Unicode was added in MySQL v4.1, they chose to make UTF-8 the native encoding, to preserve backward compatibility with programs that had no Unicode support.

6.2. Unicode on Unixy Systems

Linux and Unix have system-wide UTF-8 support these days. If your operating system is of 2001 or newer vintage, it probably has such support.

On such a system, the terminal I/O code understands UTF-8 encoded data, so your program doesn’t require any special code to correctly display a UTF-8 string. If you aren’t sure whether your system supports UTF-8 natively, just run the simple1 example: if the first item has two high-ASCII characters in place of the “ü” in “Nürnberger Brats”, you know it’s not handling UTF-8.

If your Unix doesn’t support UTF-8 natively, it likely doesn’t support any form of Unicode at all, for the historical reasons I gave above. Therefore, you will have to convert the UTF-8 data to the local 8-bit character set. The standard Unix function iconv() can help here. If your system doesn’t have the iconv() facility, there is a free implementation available from the GNU Project. Another library you might check out is IBM’s ICU. This is rather heavy-weight, so if you just need basic conversions, iconv() should suffice.

6.3. Unicode on Windows

Each Windows API function that takes a string actually comes in two versions. One version supports only 1-byte “ANSI” characters (a superset of ASCII), so they end in 'A'. Windows also supports the 2-byte subset of Unicode called UCS-2[17]. Some call these “wide” characters, so the other set of functions end in 'W'. The MessageBox() API, for instance, is actually a macro, not a real function. If you define the UNICODE macro when building your program, the MessageBox() macro evaluates to MessageBoxW(); otherwise, to MessageBoxA().

Since MySQL uses the UTF-8 Unicode encoding and Windows uses UCS-2, you must convert data when passing text between MySQL++ and the Windows API. Since there’s no point in trying for portability — no other OS I’m aware of uses UCS-2 — you might as well use platform-specific functions to do this translation. Since version 2.2.2, MySQL++ ships with two Visual C++ specific examples showing how to do this in a GUI program. (In earlier versions of MySQL++, we did Unicode conversion in the console mode programs, but this was unrealistic.)

How you handle Unicode data depends on whether you’re using the native Windows API, or the newer .NET API. First, the native case:

// Convert a C string in UTF-8 format to UCS-2 format.
void ToUCS2(LPTSTR pcOut, int nOutLen, const char* kpcIn)
{
  MultiByteToWideChar(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen);
}

// Convert a UCS-2 string to C string in UTF-8 format.
void ToUTF8(char* pcOut, int nOutLen, LPCWSTR kpcIn)
{
  WideCharToMultiByte(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen, 0, 0);
}

These functions leave out some important error checking, so see examples/vstudio/mfc/mfc_dlg.cpp for the complete version.

If you’re building a .NET application (such as, perhaps, because you’re using Windows Forms), it’s better to use the .NET libraries for this:

// Convert a C string in UTF-8 format to a .NET String in UCS-2 format.
String^ ToUCS2(const char* utf8)
{
  return gcnew String(utf8, 0, strlen(utf8), System::Text::Encoding::UTF8);
}

// Convert a .NET String in UCS-2 format to a C string in UTF-8 format.
System::Void ToUTF8(char* pcOut, int nOutLen, String^ sIn)
{
  array<Byte>^ bytes = System::Text::Encoding::UTF8->GetBytes(sIn);
  nOutLen = Math::Min(nOutLen - 1, bytes->Length);
  System::Runtime::InteropServices::Marshal::Copy(bytes, 0,
    IntPtr(pcOut), nOutLen);
  pcOut[nOutLen] = '\0';
}

Unlike the native API versions, these examples are complete, since the .NET platform handles a lot of things behind the scenes for us. We don’t need any error-checking code for such simple routines.

All of this assumes you’re using Windows NT or one of its direct descendants: Windows 2000, Windows XP, Windows Vista, Windows 7, or any “Server” variant of Windows. Windows 95 and its descendants (98, ME, and CE) do not support Unicode. They still have the 'W' APIs for compatibility, but they just smash the data down to 8-bit and call the 'A' version for you.

6.4. For More Information

The Unicode FAQs page has copious information on this complex topic.

When it comes to Unix and UTF-8 specific items, the UTF-8 and Unicode FAQ for Unix/Linux is a quicker way to find basic information.



[17] Since Windows XP, Windows actually uses the UTF-16 encoding, not UCS-2. This means that if you use characters beyond the 16-bit “BMP” range, they get encoded as 4-byte characters. But again, since the most economically valuable subset of Unicode is the BMP, many programs ignore this distinction and treat modern Windows as supporting 2-byte characters.

mysql++-3.2.2+pristine.orig/doc/html/userman/breakages.html0000755000372000001440000016670412502417165023214 0ustar robertousers10. Incompatible Library Changes

10. Incompatible Library Changes

This chapter documents those library changes since the epochal 1.7.9 release that break end-user programs. You can dig this stuff out of the ChangeLog, but the ChangeLog focuses more on explaining and justifying the facets of each change, while this section focuses on how to migrate your code between these library versions.

Since pure additions do not break programs, those changes are still documented only in the ChangeLog.

10.1. API Changes

This section documents files, functions, methods and classes that were removed or changed in an incompatible way. If your program uses the changed item, you will have to change something in your program to get it to compile after upgrading to each of these versions.

v1.7.10

Removed Row::operator[]() overloads except the one for size_type, and added Row::lookup_by_name() to provide the “subscript by string” functionality. In practical terms, this change means that the row["field"] syntax no longer works; you must use the new lookup_by_name method instead.

Renamed the generated library on POSIX systems from libsqlplus to libmysqlpp.

v1.7.19

Removed SQLQuery::operator=(), and the same for its Query subclass. Use the copy constructor instead, if you need to copy one query to another query object.

v1.7.20

The library used to have two names for many core classes: a short one, such as Row and a longer one, MysqlRow. The library now uses the shorter names exclusively.

All symbols within MySQL++ are in the mysqlpp namespace now if you use the new mysql++.h header. If you use the older sqlplus.hh or mysql++.hh headers, these symbols are hoist up into the global namespace. The older headers cause the compiler to emit warnings if you use them, and they will go away someday.

v2.0.0

Connection class changes
  • Connection::create_db() and drop_db() return true on success. They returned false in v1.7.x! This change will only affect your code if you have exceptions disabled.

  • Renamed Connection::real_connect() to connect(), made several more of its parameters default, and removed the old connect() method, as it’s now a strict subset of the new one. The only practical consequence is that if your program was using real_connect(), you will have to change it to connect().

  • Replaced Connection::read_option() with new set_option() mechanism. In addition to changing the name, programs using this function will have to use the new Connection::Option enumerated values, accept a true return value as meaning success instead of 0, and use the proper argument type. Regarding the latter, read_option() took a const char* argument, but because it was just a thin wrapper over the MySQL C API function mysql_options(), the actual value being pointed to could be any of several types. This new mechanism is properly type-safe.

Exception-related changes
  • Classes Connection, Query, Result, ResUse, and Row now derive from OptionalExceptions which gives these classes a common interface for disabling exceptions. In addition, almost all of the per-method exception-disabling flags were removed. The preferred method for disabling exceptions on these objects is to create an instance of the new NoExceptions class on the stack, which disables exceptions on an OptionalExceptions subclass as long as the NoExceptions instance is in scope. You can instead call disable_exceptions() on any of these objects, but if you only want them disabled temporarily, it’s easy to forget to re-enable them later.

  • In the previous version of MySQL++, those classes that supported optional exceptions that could create instances of other such classes were supposed to pass this flag on to their children. That is, if you created a Connection object with exceptions enabled, and then asked it to create a Query object, the Query object also had exceptions disabled. The problem is, this didn’t happen in all cases where it should have in v1.7. This bug is fixed in v2.0. If your program begins crashing due to uncaught exceptions after upgrading to v2.0, this is the most likely cause. The most expeditious fix in this situation is to use the new NoExceptions feature to return these code paths to the v1.7 behavior. A better fix is to rework your program to avoid or deal with the new exceptions.

  • All custom MySQL++ exceptions now derive from the new Exception interface. The practical upshot of this is that the variability between the various exception types has been eliminated. For instance, to get the error string, the BadQuery exception had a string member called error plus a method called what(). Both did the same thing, and the what() method is more common, so the error string was dropped from the interface. None of the example programs had to be changed to work with the new exceptions, so if your program handles MySQL++ exceptions the same way they do, your program won’t need to change, either.

  • Renamed SQLQueryNEParams exception to BadParamCount to match style of other exception names.

  • Added BadOption, ConnectionFailed, DBSelectionFailed, EndOfResults, EndOfResultSets, LockFailed, and ObjectNotInitialized exception types, to fix overuse of BadQuery. Now the latter is used only for errors on query execution. If your program has a “catch-all” block taking a std::exception for each try block containing MySQL++ statements, you probably won’t need to change your program. Otherwise, the new exceptions will likely show up as program crashes due to unhandled exceptions.

Query class changes
  • In previous versions, Connection had a querying interface similar to class Query’s. These methods were intended only for Query’s use; no example ever used this interface directly, so no end-user code is likely to be affected by this change.

  • A more likely problem arising from the above change is code that tests for query success by calling the Connection object’s success() method or by casting it to bool. This will now give misleading results, because queries no longer go through the Connection object. Class Query has the same success-testing interface, so use it instead.

  • Query now derives from std::ostream instead of std::stringstream.

Result/ResUse class changes
  • Renamed ResUse::mysql_result() to raw_result() so it’s database server neutral.

  • Removed ResUse::eof(), as it wrapped the deprecated and unnecessary MySQL C API function mysql_eof(). See the simple3 and usequery examples to see the proper way to test for the end of a result set.

Row class changes
  • Removed “field name” form of Row::field_list(). It was pointless.

  • Row subscripting works more like v1.7.9: one can subscript a Row with a string (e.g. row["myfield"]), or with an integer (e.g. row[5]). lookup_by_name() was removed. Because row[0] is ambiguous (0 could mean the first field, or be a null pointer to const char*), there is now Row::at(), which can look up any field by index.

Miscellaneous changes
  • Where possible, all distributed Makefiles only build dynamic libraries. (Shared objects on most Unices, DLLs on Windows, etc.) Unless your program is licensed under the GPL or LGPL, you shouldn’t have been using the static libraries from previous versions anyway.

  • Removed the backwards-compatibility headers sqlplus.hh and mysql++.hh. If you were still using these, you will have to change to mysql++.h, which will put all symbols in namespace mysqlpp.

  • Can no longer use arrow operator (->) on the iterators into the Fields, Result and Row containers.

v2.2.0

Code like this will have to change:

query << "delete from mytable where myfield=%0:myvalue";
query.parse();
query.def["myvalue"] = some_value;
query.execute();

...to something more like this:

query << "delete from mytable where myfield=%0";
query.parse();
query.execute(some_value);

The first code snippet abuses the default template query parameter mechanism (Query::def) to fill out the template instead of using one of the overloaded forms of execute(), store() or use() taking one or more SQLString parameters. The purpose of Query::def is to allow for default template parameters over multiple queries. In the first snippet above, there is only one parameter, so in order to justify the use of template queries in the first place, it must be changing with each query. Therefore, it isn’t really a “default” parameter at all. We did not make this change maliciously, but you can understand why we are not in any hurry to restore this “feature”.

(Incidentally, this change was made to allow better support for BLOB columns.)

v2.3.0

Connection::set_option() calls now set the connection option immediately, instead of waiting until just before the connnection is actually established. Code that relied on the old behavior could see unhandled exceptions, since option setting errors are now thrown from a different part of the code. You want to wrap the actual set_option() call now, not Connection::connect()

FieldNames and FieldTypes are no longer exported from the library. If you are using these classes directly from Visual C++ or MinGW, your code won’t be able to dynamically link to a DLL version of the library any more. These are internal classes, however, so no one should be using them directly.

v3.0.0

Class name changes

Several classes changed names in this release:

  • ColData is now String.

  • NullisBlank is now NullIsBlank. (Note the capital I.) Similar changes for NullisNull and NullisZero.

  • ResNSel is now SimpleResult.

  • Result is now StoreQueryResult.

  • ResUse is now UseQueryResult.

  • SQLString is now SQLTypeAdapter.

When first building existing code against this version, you may find it helpful to define the macro MYSQLPP_OLD_CLASS_NAMES in your program’s build options. This will turn on some macros that set up aliases for the new class names matching their corresponding old names. Then, when you’ve fixed up any other issues that may prevent your program from building with the new MySQL++, you can turn it back off and fix up any class name differences.

If you were only using ColData in a BLOB context, you should use sql_blob or one of the related typedefs defined in lib/sql_types.h instead, to insulate your code from changes like these.

The SQLString change shouldn’t affect you, as this class was not designed to be used by end user code. But, due to the old name and the fact that it used to derive from std::string, some might have been tempted to use it as an enhanced std::string. Such code will undoubtedly break, but can probably be fixed by just changing it to use std::string instead.

Connection class changes

The option setting mechanism has been redesigned. (Yes, again.) There used to be an enum in Connection with a value for each option we understood, and an overload of Connection::set_option() for each argument type we understood. It was possible to pass any option value to any set_option() overload, and the problem would only be detected at run time. Now each option is represented by a class derived from the new Option abstract base class, and set_option() simply takes a pointer to one of these objects. See examples/multiquery.cpp for the syntax. Since each Option subclass takes only the parameter types it actually understands, it’s now completely type-safe at compile time.

The new option setting mechanism also has the virtue of being more powerful so it let us replace several existing things within Connection with new options:

  • Replaced enable_ssl() with SslOption.

  • Replaced the compress parameter to the Connection create-and-connect constructor and Connection::connect() method with CompressOption.

  • Replaced the connect_timeout parameter with ConnectTimeoutOption.

  • Defined Option subclasses for each of the flags you would previously set using the client_flag parameter. There are about a dozen of these, so instead of listing them, look in lib/options.h for something with a similar name.

Collapsed Connection’s host, port, and socket_name parameters down into a new combined server parameter which is parsed to determine what kind of connection you mean. These interfaces are still compatible with v2.3 and earlier up through the port parameter.

Moved Connection::affected_rows(), info() and insert_id() methods to class Query, as they relate to the most recently-executed query.

Changed the return type of Connection::ping() from int to bool. If you were calling ping() in bool context or using its return value in bool context, you will need to reverse the sense of the test because the previous return code used zero to mean success. Now it returns true to indicate success.

Renamed several methods:

  • Use client_version() instead of api_version() or client_info().

  • Use ipc_version() instead of host_info().

  • Use protocol_version() instead of proto_info().

  • Use server_version() instead of server_info().

  • Use status() instead of stat().

Also, removed close() in favor of disconnect(), which has always done the same thing.

Date and Time class changes

The sql_timestamp typedef is now an alias for DateTime, not Time.

There used to be implicit conversion constructors from ColData (now String), std::string and const char* for the Date, DateTime, and Time classes. It’s still possible to do these conversions, but only explicitly. (This had to be done to make Null<T> work in SSQLSes.)

The most likely place to run into problems as a result of this change is in code like this:

void some_function(const mysqlpp::DateTime& dt);

some_function("2007-12-22");

The function call needs to be changed to:

some_function(mysqlpp::DateTime("2007-12-22"));
Exception changes

If an error occurs during the processing of a “use” query (as opposed to the initial execution) we throw the new UseQueryError exception instead of BadQuery.

If you pass bad values to the Row ctor so that it can’t initialize itself properly, it throws the ObjectNotInitialized exception instead of BadQuery.

Together, these two changes mean that BadQuery is now used solely to indicate a problem executing the actual SQL query statement.

Field and Fields class changes

Field is now a real C++ class, not just a typedef for the corresponding C API class. Major portability impacts are:

  • It has no public data members. Where sensible, there is a public accessor function of the same name as the corresponding field in the C API structure.

  • The main exception to this is the flags data member. This is a bitfield in the C API data structure and you had to use MySQL-specific constants to break values out of it. MySQL++’s new Field class provides a public member function returning bool for each of these flags.

  • The new class doesn’t include all of the data members from the C API version. We left out those that aren’t used within MySQL++ or its examples, or whose function we couldn’t understand. Basically, if we couldn’t document a reason to use it, we left it out.

Fields used to be a std::vector work-alike which worked with the C API to access fields and return them as though they were simply contained directly within the Fields object. Now that we have a real MySQL++ class to hold information about each field without reference to the C API, we were able to replace the Fields class with:

typedef std::vector<Field> Fields;

If anything, this should give a pure superset of the old functionality, but it’s possible it could break end user code.

Query class changes

If you were using char as an 8-bit integer in query building, there are several places in MySQL++ v3 where it will now be treated as a single-character string. MySQL++ has had the tiny_int class for many years now specifically to provide a true 8-bit integer without the semantic confusion surrounding the old C char type. Either use tiny_int, or use the SQL type aliases sql_tinyint and sql_tinyint_unsigned instead.

The ‘r’ and ‘R’ template query parameter modifiers were removed. They made the library do quoting and both quoting and escaping (respectively) regardless of the data type of the parameter. There are no corresponding Query stream manipulators, so for symmetery we had to decide whether to add such manipulators or remove the tquery modifiers. There should never be a reason to force quoting or escaping other than to work around a MySQL++ bug, and it’s better to just fix the bug than work around it, so removed the tquery modifiers.

Query::store_next() and Result::fetch_row() no longer throw the EndOfResults and EndOfResultSets exceptions; these are not exceptional conditions! These methods simply return false when you hit the end of the result set now.

Renamed Query::def to Query::template_defaults to make its purpose clearer.

Removed Query::preview(). The most direct replacement for this set of overloaded methods is the parallel set of str() methods, which were just aliases before. (Chose str() over preview() because it’s standard C++ nomenclature.) But if you’re just looking to get a copy of a built query string and you aren’t using template queries, you can now insert the Query into a stream and get the same result.

For example, a lot of code in the examples that used to say things like:

cout << query.preview() << endl;

now looks like this:

cout << query << endl;
Result, ResUse, and ResNSel class changes

In addition to the class name changes described above, UseQueryResult is no longer StoreQueryResult’s base class. There is a new abstract class called ResultBase containing much of what used to be in ResUse, and it is the base of both of these concrete result set types. This should only affect your code if you were using ResUse references to refer to Result objects.

Removed a bunch of duplicate methods:

  • Use num_fields() instead of columns().

  • Use field_names() instead of names().

  • Use num_rows() instead of rows().

  • Use field_types() instead of types().

Renamed several methods for “grammar” reasons. For example, some methods returned a single object but had a “plural” name, implying that it returned a container of objects. In cases like this, we changed the name to agree with the return value. Some of these also fall into the duplicate method category above:

  • Use field(unsigned int) instead of fields(unsigned int).

  • Use field_num(const std::string&) instead of names(const std::string&).

  • Use field_name(int) instead of names(int).

  • Use field_type(int) instead of types(int).

Removed several “smelly” methods:

  • purge(): was an internal implementation detail, not something for end user code to call

  • raw_result(): end user code shouldn’t be digging down to the C API data structures, but if you really need something like this, look at the implementation of Query::storein(). Its workings will probably be educational.

  • reset_names(): no reason to call this, especially now that the field name list is initialized once at startup and then never changed

  • reset_field_names(): just an alias for previous

  • reset_types(): same argument as for reset_names()

  • reset_field_types(): just an alias for previous

ResUse::field_num() would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the object, it just returns -1.

SimpleResult’s member variables are all now private, and have read-only accessor functions of the same name.

Code like this used to work:

mysqlpp::Row row;
mysqlpp::Result::size_type i;
for (i = 0; row = res[i]; ++i) {
  // Do something with row here
}

That is, indexing past the end of a “store” result set would just return an empty row object, which tests as false in bool context, so it ends the loop. Now that StoreQueryResult is a std::vector derivative, this either crashes your program or causes the standard library to throw an exception, depending on what debugging features your version of STL has. The proper technique is:

mysqlpp::Row row;
mysqlpp::StoreQueryResult::size_type i;
for (i = 0; i < res.num_rows(); ++i) {
  row = res[i];
  // Do something with row here
}

...or, in a more C++ish idiom:

mysqlpp::Row row;
mysqlpp::StoreQueryResult::const_iterator it;
for (it = res.begin(); it != res.end(); ++it) {
  row = *it;
  // Do something with row here
}
Row class changes

Removed Row::raw_data(), raw_size() and raw_string(). These were useful with BLOB data back when MySQL++ didn’t handle embedded null characters very well, and when copies of ColData objects were expensive. Neither is true now, so they have no value any more. Equivalent calls are:

mysqlpp::String s = row[0];
s.data();                          // raw_data() equivalent
s.length();                        // raw_size() equivalent
std::string(s.data(), s.length()); // raw_string() equivalent

Row::operator[](const char*) would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the Row object, it just returns a reference to an empty String object. You can tell when this happens because such an object tests as false in bool context.

Specialized SQL Structure (SSQLS) changes

Renamed custom* to ssqls*. There is a backwards-compatibility header custom.h which includes ssqls.h for you, but it will go away in a future version of MySQL++.

SSQLSes get populated by field name now, not by field order. In v2, it was absolutely required that your SSQLS had its fields declared in exactly the same order as the fields in the database server, and there could be no gaps. An ALTER TABLE command would almost always necessitate redefining the corresponding SSQLS and rebuilding your program. Some alterations actually made using SSQLS impossible. For the most part, this change just gives your program additional flexibility in the face of future changes. However, code that was taking advantage of this low-level fact will break when moving to v3. Before I explain how, let’s go over the high-level functional changes you’ll find in v3’s SSQLS mechanism.

Because MySQL++ no longer needs the SSQLS field order to match the SQL field order, the sql_create_c_order_* SSQLS creation macro was dropped in v3. We were also able to drop the ordering parameters from sql_create_complete_*. That in turn means there is no longer a difference between the way it and sql_create_c_names_* work, so the latter was also dropped. Thus, there are now only two groups of SSQLS creation macros left: sql_create_*, which works pretty much as it always has, and sql_create_complete_*, which is the same except for the lack of ordering parameters.

In general, you should be using sql_create_* for all SSQLSes unless you need to use different names for data members in C++ than you use for the corresponding columns in SQL. In that case, use sql_create_complete_* instead.

In v2, it was possible to have different SQL column names than SSQLS data member names while still using sql_create_* if you only used SSQLS for data retrieval.[25] In v3, you must use sql_create_complete_* for absolutely all uses of SSQLS when you want the C++ field names to differ from the SQL column names.

The new Null<T> support in SSQLSes causes an internal compiler error in Visual C++ 2003. (VC++ 2005 and newer have no trobule with it.) A poll on the mailing list says there aren’t many people still stuck on this version, so we just ifdef’d out the SSQLS mechanism and all the examples that use it when built with VC++ 2003. If this affects you, see Section 5.15, “SSQLS and Visual C++ 2003” for suggestions on ways to cope.

If you are using types other than MySQL++’s sql_* ones [26] in your SSQLSes, code that previously worked may now see TypeLookupFailed exceptions. (This can be thrown even if exceptions are otherwise disabled in MySQL++.) This version of MySQL++ is stricter about mapping SQL to C++ type information, and vice versa. If the library can’t find a suitable mapping from one type system to the other, it throws this exception, because its only other option would be to crash or raise an assertion. This typically happens when building SQL queries, so you can probably handle it the same way as if the subsequent query excecution failed. If you’re catching the generic mysqlpp::Exception, your error handling code might not need to change. If you see this exception, it does mean you need to look into your use of data types, though. The table that controls this is mysql_type_info::types, defined at the top of lib/type_info.cpp. Every data type in lib/sql_types.h has a corresponding record in this table, so if you stick to those types, you’ll be fine. It’s also okay to use types your C++ compiler can convert directly to these predefined types.

The _table static member variable for each SSQLS is now private. The recommended way to access this remains unchanged: the table() static member function.

table() used to return a modifiable reference to the table name. Now there are two overloads, one which returns an unmodifiable pointer to the table name, and the other which takes const char* so you can override the default table name. So, the code we used to recommend for changing the SSQLS’s table name:

my_ssqls_type::table() = "MyTableName";

now needs to be:

my_ssqls_type::table("MyTableName");
Miscellaneous changes

MySQL++ does quoting and escaping much more selectively now. Basically, if the library can tell you’re not building a SQL query using one of the standard methods, it assumes you’re outputting values for human consumption, so it disables quoting and SQL escaping. If you need to build your own mechanism to replace this, quoting is easy to do, and Query::escape_string() can do SQL escaping for you.

Removed success() in Connection, Query and SimpleResult (neé ResNSel) and simply made these classes testable in bool context to get the same information. An additional change in Connection is that it used to be considered “unsuccessful” when the connection was down. Since the sense of this test is now whether the object is in a good state, it only returns false when the connection attempt fails. Call Connection::is_connected() if you just want to test whether the connection is up.

The debug mode build of the library now has a "_d" suffix for Visual C++, and Xcode. This lets you have both versions installed without conflict. The release build uses the current naming scheme. If you have an existing program building against MySQL++ on these platforms, you’ll need to change your build options to use the new name in debug mode.

Renamed NO_LONG_LONGS to MYSQLPP_NO_LONG_LONGS to avoid a risk of collision in the global macro namespace.

v3.0.7

Most MySQL++ classes with at() or operator []() methods now throw the new BadIndex exception when you pass an out-of-range index. These methods variously either did not check their indices, or threw std::out_of_range when passed a bad index.

I say “most” because there is at least one MySQL++ class that doesn’t follow this rule. Fields is just a typedef for a specialization of std::vector, and the Standard has its own rules for index checking.

10.2. ABI Changes

This section documents those library changes that require you to rebuild your program so that it will link with the new library. Most of the items in the previous section are also ABI changes, but this section is only for those items that shouldn’t require any code changes in your program.

If you were going to rebuild your program after installing the new library anyway, you can probably ignore this section.

v1.7.18

The Query classes now subclass from stringstream instead of the deprecated strstream.

v1.7.19

Fixed several const-incorrectnesses in the Query classes.

v1.7.22

Removed “reset query” parameters from several Query class members. This is not an API change, because the parameters were given default values, and the library would ignore any value other than the default. So, any program that tried to make them take another value wouldn’t have worked anyway.

v1.7.24

Some freestanding functions didn’t get moved into namespace mysqlpp when that namespace was created. This release fixed that. It doesn’t affect the API if your program’s C++ source files say using namespace mysqlpp within them.

v2.0.0

Removed Connection::infoo(). (I’d call this an API change if I thought there were any programs out there actually using this...)

Collapsed the Connection constructor taking a bool (for setting the throw_exceptions flag) and the default constructor into a single constructor using a default for the parameter.

Classes Connection and Query are now derived from the Lockable interface, instead of implementing their own lock/unlock functions.

In several instances, functions that took objects by value now take them by const reference, for efficiency.

Merged SQLQuery class’s members into class Query.

Merged RowTemplate class’s members into class Row.

Reordered member variable declarations in some classes. The most common instance is when the private section was declared before the public section; it is now the opposite way. This can change the object’s layout in memory, so a program linking to the library must be rebuilt.

Simplified the date and time class hierarchy. Date used to derive from mysql_date, Time used to derive from mysql_time, and DateTime used to derive from both of those. All three of these classes used to derive from mysql_dt_base. All of the mysql_* classes’ functionality and data has been folded into the leaf classes, and now the only thing shared between them is their dependence on the DTbase template. Since the leaf classes’ interface has not changed and end-user code shouldn’t have been using the other classes, this shouldn’t affect the API in any practical way.

mysql_type_info now always initializes its private num member. Previously, this would go uninitialized if you used the default constructor. Now there is no default ctor, but the ctor taking one argument (which sets num) has a default.

v3.0.0

Removed reset_query parameters from Query member functions. None of these have been honored at least going back to v1.7.9, so this is not an API change. As of this version, Query now automatically detects when it can safely reset itself after executing a query, so it’s not necessary to ask for a reset except when using template queries.

Removed overloads of Query::execute(), store(), and use() that take only a const char*. This is not an API change because there was an equivalent call chain for this already. This change just snaps a layer of indirection.

Query::error() is now const and returns const char* instead of a std::string by value.

Removed Lockable mechanism as it was conceptually flawed. Connection and Query consequently no longer derive from Lockable. Since it was basically useless in prior versions, it can’t be construed as an API change.

v3.0.1

Connection::thread_aware(), thread_start() and thread_end() are now static methods, so a program can call them before creating a connection. Ditto for DBDriver methods of the same name.

ConnectionPool::release() is now virtual, so a subclass can override it.

v3.0.2

ConnectionPool::grab() is now virtual; same reason as above.

Query can now be tested in bool context, as was intended for v3.0.0. Had to change the “safe bool” method signature to make it happen, so technically it’s an API change, but it’s still used the same way.

v3.1.0

The addition of a few new virtual methods to ConnectionPool inadvertently changed the library ABI. I knew adding fields changed the ABI, but erroneously assumed that the inverse of that truth — that adding methods was always safe — was also true. Adding normal methods is safe, but adding virtual methods breaks the ABI because it changes the class’s vtable size.

That left us with two bad choices: either we could come out with a 3.1.1 that removed these methods to restore the prior ABI, or we could just declare this the “new ABI” and move on, resolving not to fall into this trap again. We’ve chosen the latter path.



[25] In MySQL++ v2, data retreival (Query::storein(), SSQLS(const Row& other), etc.) worked fine regardless of whether your SSQLS field names matched those in the corresponding SQL table, because the SSQLS was populated by position, not by field name. Thus, if all you used SSQLS for was data retrieval, you could define your structures with sql_create_* in v2. This was never recommended, because such an SSQLS wouldn’t work with other features of MySQL++ like Query::insert() because they depend on being able to map names from C++ to SQL and back. You needed to use sql_create_c_names_* to make these features work in v2 in the face of a naming scheme difference between C++ and SQL.

[26] These typedefs have been available since MySQL++ v2.1.

mysql++-3.2.2+pristine.orig/doc/html/userman/tutorial.html0000755000372000001440000033436512502417165023133 0ustar robertousers3. Tutorial

3. Tutorial

The previous chapter introduced the major top-level mechanisms in MySQL++. Now we’ll dig down a little deeper and get into real examples. We start off with the basics that every MySQL++ program will have to deal with, then work up to more complex topics that are still widely interesting. You can stop reading the manual after this chapter and still get a lot out of MySQL++, ignoring the more advanced parts we present in later chapters.

3.1. Running the Examples

All of the examples are complete running programs. If you built the library from source, the examples should have been built as well. If you use RPMs instead, the example programs’ source code and a simplified Makefile are in the mysql++-devel package. They are typically installed in /usr/share/doc/mysql++-devel-*/examples, but it can vary on different Linuxes.

Before you get started, please read through any of the README*.txt files included with the MySQL++ distribution that are relevant to your platform. We won’t repeat all of that here.

Most of the examples require a test database, created by resetdb. You can run it like so:

resetdb [-s server_addr] [-u user] [-p password]

Actually, there’s a problem with that. It assumes that the MySQL++ library is already installed in a directory that the operating system’s dynamic linker can find. (MySQL++ is almost never built statically.) Unless you’re installing from RPMs, you’ve had to build the library from source, and you should run at least a few of the examples before installing the library to be sure it’s working correctly. Since your operating system’s dynamic linkage system can’t find the MySQL++ libraries without help until they’re installed, we’ve created a few helper scripts to help run the examples.

MySQL++ comes with the exrun shell script for Unixy systems, and the exrun.bat batch file for Windows. You pass the example program and its arguments to the exrun helper, which sets up the library search path so that it will use the as-yet uninstalled version of the MySQL++ library in preference to any other on your system:

./exrun resetdb [-s server_addr] [-u user] [-p password]

That’s the typical form for a Unixy system. You leave off the ./ bit on Windows. You can leave it off on a Unixy system, too, if you have . in your PATH. (Not a recommendation, just an observation.)

All of the program arguments are optional.

If you don’t give -s, the underlying MySQL C API (a.k.a. Connector/C) assumes the server is on the local machine. It chooses one of several different IPC options based on the platform configuration. There are many different forms you can give as server_addr with -s to override this default behavior:

  • localhost — this is the default; it doesn’t buy you anything

  • On Windows, a simple period tells the underlying MySQL C API to use named pipes, if it’s available.

  • 172.20.0.252:12345 — this would connect to IP address 172.20.0.252 on TCP port 12345.

  • my.server.name:svc_name — this would first look up TCP service name svc_name in your system’s network services database (/etc/services on Unixy systems, and something like c:\windows\system32\drivers\etc\services on modern Windows variants). If it finds an entry for the service, it then tries to connect to that port on the domain name given.

For the TCP forms, you can mix names and numbers for the host and port/service parts in any combination. If the server name doesn’t contain a colon, it uses the default port, 3306.

If you don’t give -u, it assumes your user name on the database server is the same as your login name on the local machine.

If you don’t give -p, it will assume the MySQL user doesn’t have a password. (One hopes this isn’t the case...)

When running resetdb, the user name needs to be for an account with permission to create the test database. Once the database is created, you can use any account when running the other examples that has DELETE, INSERT, SELECT and UPDATE permissions for the test database. The MySQL root user can do all this, of course, but you might want to set up a separate user, having only the permissions necessary to work with the test database:

CREATE USER mysqlpp_test@'%' IDENTIFIED BY ’nunyabinness';
GRANT ALL PRIVILEGES ON mysql_cpp_data.* TO mysqlpp_test@'%';

You could then create the sample database with the following command:

./exrun resetdb -u mysqlpp_test -p nunyabinness

(Again, leave off the ./ bit on Windows.)

You may have to re-run resetdb after running some of the other examples, as they change the database.

See README-examples.txt for more details on running the examples.

3.2. A Simple Example

The following example demonstrates how to open a connection, execute a simple query, and display the results. This is examples/simple1.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Retrieve a subset of the sample stock table set up by resetdb
        // and display it.
        mysqlpp::Query query = conn.query("select item from stock");
        if (mysqlpp::StoreQueryResult res = query.store()) {
            cout << "We have:" << endl;
            mysqlpp::StoreQueryResult::const_iterator it;
            for (it = res.begin(); it != res.end(); ++it) {
                mysqlpp::Row row = *it;
                cout << '\t' << row[0] << endl;
            }
        }
        else {
            cerr << "Failed to get item list: " << query.error() << endl;
            return 1;
        }

        return 0;
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

This example simply gets the entire "item" column from the example table, and prints those values out.

Notice that MySQL++’s StoreQueryResult derives from std::vector, and Row provides an interface that makes it a vector work-alike. This means you can access elements with subscript notation, walk through them with iterators, run STL algorithms on them, etc.

Row provides a little more in this area than a plain old vector: you can also access fields by name using subscript notation.

The only thing that isn’t explicit in the code above is that we delegate command line argument parsing to parse_command_line() in the excommon module. This function exists to give the examples a consistent interface, not to hide important details. You can treat it like a black box: it takes argc and argv as inputs and sends back database connection parameters.

3.3. A More Complicated Example

The simple1 example above was pretty trivial. Let’s get a little deeper. Here is examples/simple2.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Retrieve the sample stock table set up by resetdb
        mysqlpp::Query query = conn.query("select * from stock");
        mysqlpp::StoreQueryResult res = query.store();

        // Display results
        if (res) {
            // Display header
            cout.setf(ios::left);
            cout << setw(31) << "Item" <<
                    setw(10) << "Num" <<
                    setw(10) << "Weight" <<
                    setw(10) << "Price" <<
                    "Date" << endl << endl;

            // Get each row in result set, and print its contents
            for (size_t i = 0; i < res.num_rows(); ++i) {
                cout << setw(30) << res[i]["item"] << ' ' <<
                        setw(9) << res[i]["num"] << ' ' <<
                        setw(9) << res[i]["weight"] << ' ' <<
                        setw(9) << res[i]["price"] << ' ' <<
                        setw(9) << res[i]["sdate"] <<
                        endl;
            }
        }
        else {
            cerr << "Failed to get stock table: " << query.error() << endl;
            return 1;
        }

        return 0;
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

The main point of this example is that we’re accessing fields in the row objects by name, instead of index. This is slower, but obviously clearer. We’re also printing out the entire table, not just one column.

3.4. Exceptions

By default, MySQL++ uses exceptions to signal errors. We’ve been suppressing this in all the examples so far by passing false to Connection’s constructor. This kept these early examples simple at the cost of some flexibility and power in error handling. In a real program, we recommend that you leave exceptions enabled. You do this by either using the default Connection constructor, or by using the create-and-connect constructor.

All of MySQL++’s custom exceptions derive from a common base class, Exception. That in turn derives from Standard C++’s std::exception class. Since the library can indirectly cause exceptions to come from the Standard C++ Library, it’s possible to catch all exceptions from MySQL++ by just catching std::exception. However, it’s better to have individual catch blocks for each of the concrete exception types that you expect, and add a handler for either Exception or std::exception to act as a “catch-all” for unexpected exceptions.

When exceptions are suppressed, MySQL++ signals errors by returning either an error code or an object that tests as false, or by setting an error flag on the object. Classes that allow you to suppress exceptions derive from the OptionalExceptions interface. When an OptionalExceptions derivative creates another object that also derives from this interface, it passes on its exception flag. Since everything flows from the Connection object, disabling exceptions on it at the start of the program disables all optional exceptions. This is why passing false for the Connection constructor’s “throw exceptions” parameter suppresses all optional exceptions in the simple[1-3] examples. It keeps them, well, simple.

This exception suppression mechanism is quite granular. It’s possible to leave exceptions enabled most of the time, but suppress them in sections of the code where they aren’t helpful. To do this, put the section of code that you want to not throw exceptions inside a block, and create a NoExceptions object at the top of that block. When created, it saves the exception flag of the OptionalExceptions derivative you pass to it, and then disables exceptions on it. When the NoExceptions object goes out of scope at the end of the block, it restores the exceptions flag to its previous state:

mysqlpp::Connection con; // default ctor, so exceptions enabled

{
  mysqlpp::NoExceptions ne(con);
  if (!con.select_db("a_db_that_might_not_exist_yet")) {
    // Our DB doesn’t exist yet, so create and select it here; no need
    // to push handling of this case way off in an exception handler.
  }
}

When one OptionalExceptions derivative passes its exceptions flag to another such object, it is only passing a copy; the two objects’ flags operate independently. There’s no way to globally enable or disable this flag on existing objects in a single call. If you’re using the NoExceptions feature and you’re still seeing optional exceptions thrown, you disabled exceptions on the wrong object. The exception thrower could be unrelated to the object you disabled exceptions on, it could be its parent, or it could be a child created before you disabled optional exceptions.

MySQL++ throws some exceptions unconditionally:

  • MySQL++ checks array indices, always. For instance, if your code said “row[21]” on a row containing only 5 fields, you’d get a BadIndex exception. If you say “row["fred"]” on a row without a “fred” field, you get a BadFieldName exception. In the past, MySQL++ delegated some of its index checking to the STL containers underpinning it, so you could get std::range_error instead. As of MySQL++ v3.0.7, this should no longer happen, but there may be instances where it still does.

  • String will always throw BadConversion when you ask it to do an improper type conversion. For example, you’ll get an exception if you try to convert “1.25” to int, but not when you convert “1.00” to int. In the latter case, MySQL++ knows that it can safely throw away the fractional part.

  • If you use template queries and don’t pass enough parameters when instantiating the template, Query will throw a BadParamCount exception.

  • If you use a C++ data type in a query that MySQL++ doesn’t know to convert to SQL, MySQL++ will throw a TypeLookupFailed exception. It typically happens with Section 5, “Specialized SQL Structures”, especially when using data types other than the ones defined in lib/sql_types.h.

It’s educational to modify the examples to force exceptions. For instance, misspell a field name, use an out-of-range index, or change a type to force a String conversion error.

3.5. Quoting and Escaping

SQL syntax often requires certain data to be quoted. Consider this query:

SELECT * FROM stock WHERE item = 'Hotdog Buns' 

Because the string “Hotdog Buns” contains a space, it must be quoted. With MySQL++, you don’t have to add these quote marks manually:

string s = "Hotdog Buns";
query << "SELECT * FROM stock WHERE item = " << quote_only << s; 

That code produces the same query string as in the previous example. We used the MySQL++ quote_only manipulator, which causes single quotes to be added around the next item inserted into the stream. This works for any type of data that can be converted to MySQL++’s SQLTypeAdapter type, plus the Set template. SSQLS also uses these manipulators internally.

Quoting is pretty simple, but SQL syntax also often requires that certain characters be “escaped”. Imagine if the string in the previous example was “Frank’s Brand Hotdog Buns” instead. The resulting query would be:

SELECT * FROM stock WHERE item = 'Frank's Brand Hotdog Buns' 

That’s not valid SQL syntax. The correct syntax is:

SELECT * FROM stock WHERE item = 'Frank''s Brand Hotdog Buns' 

As you might expect, MySQL++ provides that feature, too, through its escape manipulator. But here, we want both quoting and escaping. That brings us to the most widely useful manipulator:

string s = "Frank’s Brand Hotdog Buns";
query << "SELECT * FROM stock WHERE item = " << quote << s; 

The quote manipulator both quotes strings and escapes any characters that are special in SQL.

MySQL++ provides other manipulators as well. See the manip.h page in the reference manual.

It’s important to realize that MySQL++’s quoting and escaping mechanism is type-aware. Manipulators have no effect unless you insert the manipulator into a Query or SQLQueryParms stream. [2] Also, values are only quoted and/or escaped if they are of a data type that may need it. For example, Date must be quoted but never needs to be escaped, and integer types need neither quoting nor escaping. Manipulators are suggestions to the library, not commands: MySQL++ will ignore these suggestions if it knows it won’t result in syntactically-incorrect SQL.

It’s also important to realize that quoting and escaping in Query streams and template queries is never implicit.[3] You must use manipulators and template query flags as necessary to tell MySQL++ where quoting and escaping is necessary. It would be nice if MySQL++ could do quoting and escaping implicitly based on data type, but this isn’t possible in all cases.[4] Since MySQL++ can’t reliably guess when quoting and escaping is appropriate, and the programmer doesn’t need to[5], MySQL++ makes you tell it.

3.6. C++ vs. SQL Data Types

The C++ and SQL data type systems have several differences that can cause problems when using MySQL++, or any other SQL based system, for that matter.

Most of the data types you can store in a SQL database are either numbers or text strings. If you’re only looking at the data going between the database server and your application, there aren’t even numbers: SQL is a textual language, so numbers and everything else gets transferred between the client and the database server in text string form.[6] Consequently, MySQL++ has a lot of special support for text strings, and can translate to several C++ numeric data types transparently.

Some people worry that this translation via an intermediate string form will cause data loss. Obviously the text string data types are immune from problems in this regard. We’re also confident that MySQL++ translates BLOB and integer data types losslessly.

The biggest worry is with floating-point numbers. (The FLOAT and DOUBLE SQL data types.) We did have a problem with this in older versions of MySQL++, but we believe we fixed it completely in v3.0.2. No one has since proven data loss via this path. There is still a known problem [7] with the SQL DECIMAL type, which is somewhat related to the floating-point issue, but it’s apparently rarely encountered, which is why it hasn’t been fixed yet.

The best way to avoid problems with data translation is to always use the special MySQL++ data types defined in lib/sql_types.h corresponding to your SQL schema. These typedefs begin with sql_ and end with a lowercase version of the standard SQL type name, with spaces replaced by underscores. There are variants ending in _null that wrap these base types so they’re compatible with SQL null. For instance, the SQL type TINYINT UNSIGNED NOT NULL is represented in MySQL++ by mysqlpp::sql_tinyint_unsigned. If you drop the NOT NULL part, the corresponding C++ type is mysqlpp::sql_tinyint_unsigned_null.

MySQL++ doesn’t force you to use these typedefs. It tries to be flexible with regard to data conversions, so you could probably use int anywhere you use mysqlpp::sql_tinyint_unsigned, for example. That said, the MySQL++ typedefs give several advantages:

  • Space efficiency: the MySQL++ types are no larger than necessary to hold the MySQL data.

  • Portability: if your program has to run on multiple different system types (even just 32- and 64-bit versions of the same operating system and processor type) using the MySQL++ typedefs insulates your code from platform changes.

  • Clarity: using C++ types named similarly to the SQL types reduces the risk of confusion when working with code in both languages at the same time.

  • Compatibility: using the MySQL++ types ensures that data conversions between SQL and C++ forms are compatible. Naïve use of plain old C++ types can result in data truncation, TypeLookupFailed exceptions, and worse.

    Type compatibility is important not just at the time you write your program, it also helps forward compatibility: we occasionally change the definitions of the MySQL++ typedefs to reduce the differences between the C++ and SQL type systems. We’ll be fixing the DECIMAL issue brought up above this way, for instance; if your program uses sql_decimal instead of the current underlying type, double, your program will pick up this improvement automatically with just a recompile.

Most of these typedefs use standard C++ data types, but a few are aliases for a MySQL++ specific type. For instance, the SQL type DATETIME is mirrored in MySQL++ by mysqlpp::DateTime. For consistency, sql_types.h includes a typedef alias for DateTime called mysqlpp::sql_datetime.

MySQL++ doesn’t have typedefs for the most exotic data types, like those for the geospatial types. Patches to correct this will be thoughtfully considered.

3.7. Handling SQL Nulls

Both C++ and SQL have things in them called NULL, but they differ in several ways. Consequently, MySQL++ has to provide special support for this, rather than just wrap native C++ facilities as it can with most data type issues.

SQL NULL is a type modifier

The primary distinction is one of type. In SQL, “NULL” is a type modifier, which affects whether you can legally store a null value in that column. There’s simply nothing like it in C++.

To emulate SQL NULL, MySQL++ provides the Null template to allow the creation of distinct “nullable” versions of existing C++ types. So for example, if you have a TINYINT UNSIGNED column that can have nulls, the proper declaration for MySQL++ would be:

mysqlpp::Null<mysqlpp::sql_tinyint_unsigned> myfield;

As of MySQL++ 3.1, we also provide shorter aliases for such types:

mysqlpp::sql_tinyint_unsigned_null myfield;

These types are declared in lib/sql_types.h. You might want to scan through that to see what all is available.

Template instantiations are first-class types in the C++ language, so there’s no possible confusion between this feature of MySQL++ and C++’s native NULL concept.

SQL NULL is a unique value

There’s a secondary distinction between SQL null and anything available in the standard C++ type system: SQL null is a distinct value, equal to nothing else. We can’t use C++’s NULL for this because it is ambiguous, being equal to 0 in integer context. MySQL++ provides the global null object, which you can assign to a Null template instance to make it equal to SQL null:

myfield = mysqlpp::null;

If you insert a MySQL++ field holding a SQL null into a C++ IOstream, you get “(NULL)”, something fairly unlikely to be in a normal output string, thus reasonably preserving the uniqueness of the SQL null value.

MySQL++ also tries to enforce the uniqueness of the SQL null value at compile time in assignments and data conversions. If you try to store a SQL null in a field type that isn’t wrapped by Null or try to assign a Null-wrapped field value to a variable of the inner non-wrapped type, the compiler will emit some ugly error message, yelling about CannotConvertNullToAnyOtherDataType. (The exact message is compiler-dependent.)

If you don’t like these behaviors, you can change them by passing a different value for the second parameter to template Null. By default, this parameter is NullIsNull, meaning that we should enforce the uniqueness of SQL null. To relax the distinctions, you can instantiate the Null template with a different behavior type: NullIsZero or NullIsBlank. Consider this code:

mysqlpp::Null<unsigned char, mysqlpp::NullIsZero> myfield(mysqlpp::null);
cout << myfield << endl;
cout << int(myfield) << endl;

This will print “0” twice. If you had used the default for the second Null template parameter, the first output statement would have printed “(NULL)”, and the second wouldn’t even compile.

3.8. MySQL++’s Special String Types

MySQL++ has two classes that work like std::string to some degree: String and SQLTypeAdapter. These classes exist to provide functionality that std::string doesn’t provide, but they are neither derivatives of nor complete supersets of std::string. As a result, end-user code generally doesn’t deal with these classes directly, because std::string is a better general-purpose string type. In fact, MySQL++ itself uses std::string most of the time, too. But, the places these specialized stringish types do get used are so important to the way MySQL++ works that it’s well worth taking the time to understand them.

SQLTypeAdapter

The simpler of the two is SQLTypeAdapter, or STA for short.[8]

As its name suggests, its only purpose is to adapt other data types to be used with SQL. It has a whole bunch of conversion constructors, one for all data types we expect to be used with MySQL++ for values in queries. SQL queries are strings, so constructors that take stringish types just make a copy of that string, and all the others “stringize” the value in the format needed by SQL.[9] The conversion constructors preserve type information, so this stringization process doesn’t throw away any essential information.

STA is used anywhere MySQL++ needs to be able to accept any of several data types for use in a SQL query. Major users are Query’s template query mechanism and the Query stream quoting and escaping mechanism. You care about STA because any time you pass a data value to MySQL++ to be used in building a SQL query, it goes through STA. STA is one of the key pieces in MySQL++ that makes it easy to generate syntactically-correct SQL queries.

String

If MySQL++ can be said to have its own generic string type, it’s String, but it’s not really functional enough for general use. It’s possible that in future versions of MySQL++ we’ll expand its interface to include everything std::string does, so that’s why it’s called that.[10]

The key thing String provides over std::string is conversion of strings in SQL value formats to their plain old C++ data types. For example, if you initialize it with the string “2007-11-19”, you can assign the String to a Date, not because Date knows how to initialize itself from String, but the reverse: String has a bunch of implicit conversion operators defined for it, so you can use it in any type context that makes sense in your application.

Because Row::operator[] returns String, you can say things like this:

int x = row["x"];

In a very real sense, String is the inverse of STA: String converts SQL value strings to C++ data types, and STA converts C++ data types to SQL value strings.[11]

String has two main uses.

By far the most common use is as the field value type of Row, as exemplified above. It’s not just the return type of Row::operator[], though: it’s actually the value type used within Row’s internal array. As a result, any time MySQL++ pulls data from the database, it goes through String when converting it from the string form used in SQL result sets to the C++ data type you actually want the data in. It’s the core of the structure population mechanism in the SSQLS feature, for example.

Because String is the last pristine form of data in a result set before it gets out of MySQL++’s internals where end-user code can see it, MySQL++’s sql_blob and related typedefs are aliases for String. Using anything else would require copies; while the whole “networked database server” thing means most of MySQL++ can be quite inefficient and still not affect benchmark results meaningfully, BLOBs tend to be big, so making unnecessary copies can really make a difference. Which brings us to...

Reference Counting

To avoid unnecessary buffer copies, both STA and String are implemented in terms of a reference-counted copy-on-write buffer scheme. Both classes share the same underlying mechanism, and so are interoperable. This means that if you construct one of these objects from another, it doesn’t actually copy the string data, it only copies a pointer to the data buffer, and increments its reference count. If the object has new data assigned to it or it’s otherwise modified, it decrements its reference count and creates its own copy of the buffer. This has a lot of practical import, such as the fact that even though Row::operator[] returns Strings by value, it’s still efficient.

3.9. Dealing with Binary Data

Historically, there was no way to hold arbitrary-sized blocks of raw binary data in an SQL database. There was resistance to adding such a feature to SQL for a long time because it’s better, where possible, to decompose blocks of raw binary data into a series of numbers and text strings that can be stored in the database. This lets you query, address and manipulate elements of the data block individually.

A classic SQL newbie mistake is trying to treat the database server as a file system. Some embedded platforms use a database engine as a file system, but MySQL doesn’t typically live in that world. When your platform already has a perfectly good file system, you should use it for big, nondecomposable blocks of binary data in most cases.

A common example people use when discussing this is images in database-backed web applications. If you store the image in the database, you have to write code to retrieve the image from the database and send it to the client; there’s more overhead, and less efficient use of the system’s I/O caching system. If you store the image in the filesystem, all you have to do is point the web server to the directory where the images live, and put a URL for that image in your generated HTML. Because you’re giving the web server a direct path to a file on disk, operation is far more efficient. Web servers are very good at slurping whole files off of disk and sending them out to the network, and operating systems are very good at caching file accesses. Plus, you avoid the overhead of pushing the data through the high-level language your web app is written in, which is typically an interpreted language, not C++. Some people still hold out on this, claiming that database engines have superior security features, but I call bunk on that, too. Operating systems and web servers are capable of building access control systems every bit as granular and secure as a database system.

Occasionally you really do need to store a nondecomposable block of binary data in the database. For such cases, modern SQL database servers support BLOB data types, for Binary Large OBject. This is often just called binary data, though of course all data in a modern computer is binary at some level.

The tricky part about dealing with binary data in MySQL++ is to ensure that you don’t ever treat the data as a C string, which is really easy to do accidentally. C strings treat zero bytes as special end-of-string characters, but they’re not special at all in binary data. We’ve made a lot of improvements to the way MySQL++ handles string data to avoid this problem, but it’s still possible to bypass these features, wrecking your BLOBs. These examples demonstrate correct techniques.

Loading a binary file into a BLOB column

Above, I opined that it’s usually incorrect to store image data in a database, particularly with web apps, of which CGI is a primitive form. Still, it makes a nice, simple example.

Instead of a single example program, we have here a matched pair. The first example takes the name of a JPEG file on the command line along with all the other common example program parameters, loads that file into memory, and stores it in a BLOB column in the database.

This example also demonstrates how to retrieve the value assigned to an auto-increment column in the previous insertion. This example uses that feature in the typical way, to create unique IDs for rows as they’re inserted.

Here is examples/load_jpeg.cpp:

#include "cmdline.h"
#include "images.h"
#include "printdata.h"

#include <fstream>

using namespace std;
using namespace mysqlpp;


// This is just an implementation detail for the example.  Skip down to
// main() for the concept this example is trying to demonstrate.  You
// can simply assume that, given a BLOB containing a valid JPEG, it
// returns true.
static bool
is_jpeg(const mysqlpp::sql_blob& img, const char** whynot)
{
    // See http://stackoverflow.com/questions/2253404/ for
    // justification for the various tests.
    const unsigned char* idp =
            reinterpret_cast<const unsigned char*>(img.data());
    if (img.size() < 125) {
        *whynot = "a valid JPEG must be at least 125 bytes";
    }
    else if ((idp[0] != 0xFF) || (idp[1] != 0xD8)) {
        *whynot = "file does not begin with JPEG sigil bytes";
    }
    else if ((memcmp(idp + 6, "JFIF", 4) != 0) &&
             (memcmp(idp + 6, "Exif", 4) != 0)) {
        *whynot = "file does not contain JPEG type word";
    }
    else {
        *whynot = 0;
        return true;
    }

    return false;
}


// Skip to main() before studying this.  This is a little too
// low-level to bother with on your first pass thru the code.
static bool
load_jpeg_file(const mysqlpp::examples::CommandLine& cmdline,
        images& img, string& img_name)
{
    if (cmdline.extra_args().size() == 0) {
        // Nothing for us to do here.  Caller will insert NULL BLOB.
        return true;
    }

    // Got a file's name on the command line, so open it.
    img_name = cmdline.extra_args()[0];
    ifstream img_file(img_name.c_str(), ios::binary);
    if (img_file) {
        // Slurp file contents into RAM with minimum copying.  (Idiom
        // explained here: http://stackoverflow.com/questions/116038/)
        //
        // By loading the file into a C++ string (stringstream::str())
        // and assigning that directly to a mysqlpp::sql_blob, we avoid
        // truncating the binary data at the first null character.
        img.data.data = static_cast<const stringstream*>(
                &(stringstream() << img_file.rdbuf()))->str();

        // Check JPEG data for sanity.
        const char* error;
        if (is_jpeg(img.data.data, &error)) {
            return true;
        }
        else {
            cerr << '"' << img_name << "\" isn't a JPEG: " <<
                    error << '!' << endl;
        }
    }

    cmdline.print_usage("[jpeg_file]");
    return false;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Load the file named on the command line
        images img(mysqlpp::null, mysqlpp::null);
        string img_name("NULL");
        if (load_jpeg_file(cmdline, img, img_name)) {
            // Insert image data or SQL NULL into the images.data BLOB
            // column.  The key here is that we're holding the raw
            // binary data in a mysqlpp::sql_blob, which avoids data
            // conversion problems that can lead to treating BLOB data
            // as C strings, thus causing null-truncation.  The fact
            // that we're using SSQLS here is a side issue, simply
            // demonstrating that mysqlpp::Null<mysqlpp::sql_blob> is
            // now legal in SSQLS, as of MySQL++ 3.0.7.
            Query query = con.query();
            query.insert(img);
            SimpleResult res = query.execute();

            // Report successful insertion
            cout << "Inserted \"" << img_name <<
                    "\" into images table, " << img.data.data.size() <<
                    " bytes, ID " << res.insert_id() << endl;
        }
    }
    catch (const BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Notice that we used the escape manipulator when building the INSERT query above. This is because mysqlpp::sql_blob is just an alias for one of the special MySQL++ string types, which don’t do automatic quoting and escaping. They can’t, because MySQL++ also uses these data types to hold raw SQL query strings, which would break due to doubled quoting and/or escaping if it were automatic.

Serving images from BLOB column via CGI

The other example in this pair is rather short, considering how much it does. It parses a CGI query string giving the image ID, uses that to retreive data loaded into the database by load_jpeg, and writes it out in the form a web server wants when processing a CGI call, all with adequate real-world error handling. This is examples/cgi_jpeg.cpp:

#include "cmdline.h"
#include "images.h"

#define CRLF            "\r\n"
#define CRLF2           "\r\n\r\n"

int
main(int argc, char* argv[])
{
    // Get database access parameters from command line if present, else
    // use hard-coded values for true CGI case.
    mysqlpp::examples::CommandLine cmdline(argc, argv, "root",
            "nunyabinness");
    if (!cmdline) {
        return 1;
    }

    // Parse CGI query string environment variable to get image ID
    unsigned int img_id = 0;
    char* cgi_query = getenv("QUERY_STRING");
    if (cgi_query) {
        if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) {
            std::cout << "Content-type: text/plain" << std::endl << std::endl;
            std::cout << "ERROR: Bad query string" << std::endl;
            return 1;
        }
        else {
            img_id = atoi(cgi_query + 3);
        }
    }
    else {
        std::cerr << "Put this program into a web server's cgi-bin "
                "directory, then" << std::endl;
        std::cerr << "invoke it with a URL like this:" << std::endl;
        std::cerr << std::endl;
        std::cerr << "    http://server.name.com/cgi-bin/cgi_jpeg?id=2" <<
                std::endl;
        std::cerr << std::endl;
        std::cerr << "This will retrieve the image with ID 2." << std::endl;
        std::cerr << std::endl;
        std::cerr << "You will probably have to change some of the #defines "
                "at the top of" << std::endl;
        std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." <<
                std::endl;
        return 1;
    }

    // Retrieve image from DB by ID
    try {
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());
        mysqlpp::Query query = con.query();
        query << "SELECT * FROM images WHERE id = " << img_id;
        mysqlpp::StoreQueryResult res = query.store();
        if (res && res.num_rows()) {
            images img = res[0];
            if (img.data.is_null) {
                std::cout << "Content-type: text/plain" << CRLF2;
                std::cout << "No image content!" << CRLF;
            }
            else {
                std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging
                std::cout << "Content-type: image/jpeg" << CRLF;
                std::cout << "Content-length: " <<
                        img.data.data.length() << CRLF2;
                std::cout << img.data;
            }
        }
        else {
            std::cout << "Content-type: text/plain" << CRLF2;
            std::cout << "ERROR: No image with ID " << img_id << CRLF;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "QUERY ERROR: " << er.what() << CRLF;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "GENERAL ERROR: " << er.what() << CRLF;
        return 1;
    }

    return 0;
}

While you can run it by hand, it’s best to install this in a web server’s CGI program directory, then call it with a URL like http://my.server.com/cgi-bin/cgi_jpeg?id=1. That retrieves the JPEG with ID 1 from the database and returns it to the web server, which will send it on to the browser.

We’ve included an image with MySQL++ that you can use with this example pair, examples/logo.jpg.

3.10. Using Transactions

The Transaction class makes it easier to use SQL transactions in an exception-safe manner. Normally you create the Transaction object on the stack before you issue the queries in your transaction set. Then, when all the queries in the transaction set have been issued, you call Transaction::commit(), which commits the transaction set. If the Transaction object goes out of scope before you call commit(), the transaction set is rolled back. This ensures that if some code throws an exception after the transaction is started but before it is committed, the transaction isn’t left unresolved.

examples/transaction.cpp illustrates this:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <cstdio>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Show initial state
        mysqlpp::Query query = con.query();
        cout << "Initial state of stock table:" << endl;
        print_stock_table(query);

        // Insert a few rows in a single transaction set
        {
            // Use a higher level of transaction isolation than MySQL
            // offers by default.  This trades some speed for more
            // predictable behavior.  We've set it to affect all
            // transactions started through this DB server connection,
            // so it affects the next block, too, even if we don't
            // commit this one.
            mysqlpp::Transaction trans(con,
                    mysqlpp::Transaction::serializable,
                    mysqlpp::Transaction::session);

            stock row("Sauerkraut", 42, 1.2, 0.75,
                    mysqlpp::sql_date("2006-03-06"), mysqlpp::null);
            query.insert(row);
            query.execute();

            cout << "\nRow inserted, but not committed." << endl;
            cout << "Verify this with another program (e.g. simple1), "
                    "then hit Enter." << endl;
            getchar();

            cout << "\nCommitting transaction gives us:" << endl;
            trans.commit();
            print_stock_table(query);
        }
            
        // Now let's test auto-rollback
        {
            // Start a new transaction, keeping the same isolation level
            // we set above, since it was set to affect the session.
            mysqlpp::Transaction trans(con);
            cout << "\nNow adding catsup to the database..." << endl;

            stock row("Catsup", 3, 3.9, 2.99,
                    mysqlpp::sql_date("2006-03-06"), mysqlpp::null);
            query.insert(row);
            query.execute();
        }
        cout << "\nNo, yuck! We don't like catsup. Rolling it back:" <<
                endl;
        print_stock_table(query);
            
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {  
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

One of the downsides of transactions is that the locking it requires in the database server is prone to deadlocks. The classic case where this happens is when two programs both want access to the same two rows within a single transaction each, but they modify them in opposite orders. If the timing is such that the programs interleave their lock acquisitions, the two come to an impasse: neither can get access to the other row they want to modify until the other program commits its transaction and thus release the row locks, but neither can finish the transaction because they’re waiting on row locks the database server is holding on behalf of the other program.

The MySQL server is smart enough to detect this condition, but the best it can do is abort the second transaction. This breaks the impasse, allowing the first program to complete its transaction.

The second program now has to deal with the fact that its transaction just got aborted. There’s a subtlety in detecting this situation when using MySQL++. By default, MySQL++ signals errors like these with exceptions. In the exception handler, you might expect to get ER_LOCK_DEADLOCK from Query::errnum() (or Connection::errnum(), same thing), but what you’ll almost certainly get instead is 0, meaning “no error.” Why? It’s because you’re probably using a Transaction object to get automatic roll-backs in the face of exceptions. In this case, the roll-back happens before your exception handler is called by issuing a ROLLBACK query to the database server. Thus, Query::errnum() returns the error code associated with this roll-back query, not the deadlocked transaction that caused the exception.

To avoid this problem, a few of the exception objects as of MySQL++ v3.0 include this last error number in the exception object itself. It’s populated at the point of the exception, so it can differ from the value you would get from Query::errnum() later on when the exception handler runs.

The example examples/deadlock.cpp demonstrates the problem:

#include "cmdline.h"

#include <mysql++.h>
#include <mysqld_error.h>

#include <iostream>

using namespace std;

// Bring in global holding the value given to the -m switch
extern int run_mode;


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Check that the mode parameter was also given and it makes sense
    const int run_mode = cmdline.run_mode();
    if ((run_mode != 1) && (run_mode != 2)) {
        cerr << argv[0] << " must be run with -m1 or -m2 as one of "
                "its command-line arguments." << endl;
        return 1;
    }

    mysqlpp::Connection con;
    try {
        // Establish the connection to the database server
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Start a transaction set.  Transactions create mutex locks on
        // modified rows, so if two programs both touch the same pair of
        // rows but in opposite orders at the wrong time, one of the two
        // programs will deadlock.  The MySQL server knows how to detect
        // this situation, and its error return causes MySQL++ to throw
        // a BadQuery exception.  The point of this example is that if
        // you want to detect this problem, you would check the value of
        // BadQuery::errnum(), not Connection::errnum(), because the
        // transaction rollback process executes a query which succeeds,
        // setting the MySQL C API's "last error number" value to 0.
        // The exception object carries its own copy of the error number
        // at the point the exception was thrown for this very reason.
        mysqlpp::Query query = con.query();
        mysqlpp::Transaction trans(con);

        // Build and run the queries, with the order depending on the -m
        // flag, so that a second copy of the program will deadlock if
        // run while the first is waiting for Enter.
        char dummy[100];
        for (int i = 0; i < 2; ++i) {
            int lock = run_mode + (run_mode == 1 ? i : -i);
            cout << "Trying lock " << lock << "..." << endl;

            query << "select * from deadlock_test" << lock << 
                    " where x = " << lock << " for update";
            query.store();

            cout << "Acquired lock " << lock << ".  Press Enter to ";
            cout << (i == 0 ? "try next lock" : "exit");
            cout << ": " << flush;
            cin.getline(dummy, sizeof(dummy));
        }
    }
    catch (mysqlpp::BadQuery e) {
        if (e.errnum() == ER_LOCK_DEADLOCK) {
            cerr << "Transaction deadlock detected!" << endl;
            cerr << "Connection::errnum = " << con.errnum() <<
                    ", BadQuery::errnum = " << e.errnum() << endl;
        }
        else {
            cerr << "Unexpected query error: " << e.what() << endl;
        }
        return 1;
    }
    catch (mysqlpp::Exception e) {
        cerr << "General error: " << e.what() << endl;      
        return 1;
    }

    return 0;
}

This example works a little differently than the others. You run one copy of the example, then when it pauses waiting for you to press Enter, you run another copy. Then, depending on which one you press Enter in, one of the two will abort with the deadlock exception. You can see from the error message you get that it matters which method you call to get the error number. What you do about it is up to you as it depends on your program’s design and system architecture.

3.11. Which Query Type to Use?

There are three major ways to execute a query in MySQL++: Query::execute(), Query::store(), and Query::use(). Which should you use, and why?

execute() is for queries that do not return data per se. For instance, CREATE INDEX. You do get back some information from the MySQL server, which execute() returns to its caller in a SimpleResult object. In addition to the obvious — a flag stating whether the query succeeded or not — this object also contains things like the number of rows that the query affected. If you only need the success status, it’s a little more efficient to call Query::exec() instead, as it simply returns bool.

If your query does pull data from the database, the simplest option is store(). (All of the examples up to this point have used this method.) This returns a StoreQueryResult object, which contains the entire result set. It’s especially convenient because StoreQueryResult derives from std::vector<mysqlpp::Row>, so it opens the whole panoply of STL operations for accessing the rows in the result set. Access rows randomly with subscript notation, iterate forwards and backwards over the result set, run STL algorithms on the set...it all works naturally.

If you like the idea of storing your results in an STL container but don’t want to use std::vector, you can call Query::storein() instead. It lets you store the results in any standard STL container (yes, both sequential and set-associative types) instead of using StoreQueryResult. You do miss out on some of the additional database information held by StoreQueryResult’s other base class, ResultBase, however.

store*() queries are convenient, but the cost of keeping the entire result set in main memory can sometimes be too high. It can be surprisingly costly, in fact. A MySQL database server stores data compactly on disk, but it returns query data to the client in a textual form. This results in a kind of data bloat that affects numeric and BLOB types the most. MySQL++ and the underlying C API library also have their own memory overheads in addition to this. So, if you happen to know that the database server stores every record of a particular table in 1 KB, pulling a million records from that table could easily take several GB of memory with a store() query, depending on what’s actually stored in that table.

For these large result sets, the superior option is a use() query. This returns a UseQueryResult object, which is similar to StoreQueryResult, but without all of the random-access features. This is because a “use” query tells the database server to send the results back one row at a time, to be processed linearly. It’s analogous to a C++ stream’s input iterator, as opposed to a random-access iterator that a container like vector offers. By accepting this limitation, you can process arbitrarily large result sets. This technique is demonstrated in examples/simple3.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Ask for all rows from the sample stock table and display
        // them.  Unlike simple2 example, we retreive each row one at
        // a time instead of storing the entire result set in memory
        // and then iterating over it.
        mysqlpp::Query query = conn.query("select * from stock");
        if (mysqlpp::UseQueryResult res = query.use()) {
            // Display header
            cout.setf(ios::left);
            cout << setw(31) << "Item" <<
                    setw(10) << "Num" <<
                    setw(10) << "Weight" <<
                    setw(10) << "Price" <<
                    "Date" << endl << endl;

            // Get each row in result set, and print its contents
            while (mysqlpp::Row row = res.fetch_row()) {
                cout << setw(30) << row["item"] << ' ' <<
                        setw(9) << row["num"] << ' ' <<
                        setw(9) << row["weight"] << ' ' <<
                        setw(9) << row["price"] << ' ' <<
                        setw(9) << row["sdate"] <<
                        endl;
            }

            // Check for error: can't distinguish "end of results" and
            // error cases in return from fetch_row() otherwise.
            if (conn.errnum()) {
                cerr << "Error received in fetching a row: " <<
                        conn.error() << endl;
                return 1;
            }
            return 0;
        }
        else {
            cerr << "Failed to get stock item: " << query.error() << endl;
            return 1;
        }
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

This example does the same thing as simple2, only with a “use” query instead of a “store” query.

Valuable as use() queries are, they should not be the first resort in solving problems of excessive memory use. It’s better if you can find a way to simply not pull as much data from the database in the first place. Maybe you’re saying SELECT * even though you don’t immedidately need all the columns from the table. Or, maybe you’re filtering the result set with C++ code after you get it from the database server. If you can do that filtering with a more restrictive WHERE clause on the SELECT, it’ll not only save memory, it’ll save bandwidth between the database server and client, and can even save CPU time. If the filtering criteria can’t be expressed in a WHERE clause, however, read on to the next section.

3.12. Conditional Result Row Handling

Sometimes you must pull more data from the database server than you actually need and filter it in memory. SQL’s WHERE clause is powerful, but not as powerful as C++. Instead of storing the full result set and then picking over it to find the rows you want to keep, use Query::store_if(). This is examples/store_if.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <mysql++.h>

#include <iostream>

#include <math.h>


// Define a functor for testing primality.
struct is_prime
{
    bool operator()(const stock& s)
    {
        if ((s.num == 2) || (s.num == 3)) {
            return true;    // 2 and 3 are trivial cases
        }
        else if ((s.num < 2) || ((s.num % 2) == 0)) {
            return false;   // can't be prime if < 2 or even
        }
        else {
            // The only possibility left is that it's divisible by an
            // odd number that's less than or equal to its square root.
            for (int i = 3; i <= sqrt(double(s.num)); i += 2) {
                if ((s.num % i) == 0) {
                    return false;
                }
            }
            return true;
        }
    }
};


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Collect the stock items with prime quantities
        std::vector<stock> results;
        mysqlpp::Query query = con.query();
        query.store_if(results, stock(), is_prime());

        // Show the results
        print_stock_header(results.size());
        std::vector<stock>::const_iterator it;
        for (it = results.begin(); it != results.end(); ++it) {
            print_stock_row(it->item.c_str(), it->num, it->weight,
                    it->price, it->sDate);
        }
    }
    catch (const mysqlpp::BadQuery& e) {
        // Something went wrong with the SQL query.
        std::cerr << "Query failed: " << e.what() << std::endl;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cerr << "Error: " << er.what() << std::endl;
        return 1;
    }

    return 0;
}

I doubt anyone really needs to select rows from a table that have a prime number in a given field. This example is meant to be just barely more complex than SQL can manage, to avoid obscuring the point. That point being, the Query::store_if() call here gives you a container full of results meeting a criterion that you probably can’t express in SQL. You will no doubt have much more useful criteria in your own programs.

If you need a more complex query than the one store_if() knows how to build when given an SSQLS examplar, there are two overloads that let you use your own query string. One overload takes the query string directly, and the other uses the query string built with Query’s stream interface.

3.13. Executing Code for Each Row In a Result Set

SQL is more than just a database query language. Modern database engines can actually do some calculations on the data on the server side. But, this isn’t always the best way to get something done. When you need to mix code and a query, MySQL++’s Query::for_each() facility might be just what you need. This is examples/for_each.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <mysql++.h>

#include <iostream>

#include <math.h>


// Define a functor to collect statistics about the stock table
class gather_stock_stats
{
public:
    gather_stock_stats() :
    items_(0),
    weight_(0),
    cost_(0)
    {
    }

    void operator()(const stock& s)
    {
        items_  += s.num;
        weight_ += (s.num * s.weight);
        cost_   += (s.num * s.price.data);
    }
    
private:
    mysqlpp::sql_bigint items_;
    mysqlpp::sql_double weight_, cost_;

    friend std::ostream& operator<<(std::ostream& os,
            const gather_stock_stats& ss);
};


// Dump the contents of gather_stock_stats to a stream in human-readable
// form.
std::ostream&
operator<<(std::ostream& os, const gather_stock_stats& ss)
{
    os << ss.items_ << " items " <<
            "weighing " << ss.weight_ << " stone and " <<
            "costing " << ss.cost_ << " cowrie shells";
    return os;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Gather and display the stats for the entire stock table
        mysqlpp::Query query = con.query();
        std::cout << "There are " << query.for_each(stock(),
                gather_stock_stats()) << '.' << std::endl;
    }
    catch (const mysqlpp::BadQuery& e) {
        // Something went wrong with the SQL query.
        std::cerr << "Query failed: " << e.what() << std::endl;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cerr << "Error: " << er.what() << std::endl;
        return 1;
    }

    return 0;
}

You only need to read the main() function to get a good idea of what the program does. The key line of code passes an SSQLS examplar and a functor to Query::for_each(). for_each() uses the SSQLS instance to build a select * from TABLE query, stock in this case. It runs that query internally, calling gather_stock_stats on each row. This is a pretty contrived example; you could actually do this in SQL, but we’re trying to prevent the complexity of the code from getting in the way of the demonstration here.

Just as with store_if(), described above, there are two other overloads for for_each() that let you use your own query string.

3.14. Connection Options

MySQL has a large number of options that control how it makes the connection to the database server, and how that connection behaves. The defaults are sufficient for most programs, so only one of the MySQL++ example programs make any connection option changes. Here is examples/multiquery.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;
using namespace mysqlpp;


typedef vector<size_t> IntVectorType;


static void
print_header(IntVectorType& widths, StoreQueryResult& res)
{
    cout << "  |" << setfill(' ');
    for (size_t i = 0; i < res.field_names()->size(); i++) {
        cout << " " << setw(widths.at(i)) << res.field_name(int(i)) << " |";
    }
    cout << endl;
}


static void
print_row(IntVectorType& widths, Row& row)
{
    cout << "  |" << setfill(' ');
    for (size_t i = 0; i < row.size(); ++i) {
        cout << " " << setw(widths.at(i)) << row[int(i)] << " |";
    }
    cout << endl;
}


static void
print_row_separator(IntVectorType& widths)
{
    cout << "  +" << setfill('-');
    for (size_t i = 0; i < widths.size(); i++) {
        cout << "-" << setw(widths.at(i)) << '-' << "-+";
    }
    cout << endl;
}


static void
print_result(StoreQueryResult& res, int index)
{
    // Show how many rows are in result, if any
    StoreQueryResult::size_type num_results = res.size();
    if (res && (num_results > 0)) {
        cout << "Result set " << index << " has " << num_results <<
                " row" << (num_results == 1 ? "" : "s") << ':' << endl;
    }
    else {
        cout << "Result set " << index << " is empty." << endl;
        return;
    }

    // Figure out the widths of the result set's columns
    IntVectorType widths;
    size_t size = res.num_fields();
    for (size_t i = 0; i < size; i++) {
        widths.push_back(max(
                res.field(i).max_length(),
                res.field_name(i).size()));
    }

    // Print result set header
    print_row_separator(widths);
    print_header(widths, res);
    print_row_separator(widths);

    // Display the result set contents
    for (StoreQueryResult::size_type i = 0; i < num_results; ++i) {
        print_row(widths, res[i]);
    }

    // Print result set footer
    print_row_separator(widths);
}


static void
print_multiple_results(Query& query)
{
    // Execute query and print all result sets
    StoreQueryResult res = query.store();
    print_result(res, 0);
    for (int i = 1; query.more_results(); ++i) {
        res = query.store_next();
        print_result(res, i);
    }
}


int
main(int argc, char *argv[])
{
    // Get connection parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Enable multi-queries.  Notice that you almost always set
        // MySQL++ connection options before establishing the server
        // connection, and options are always set using this one
        // interface.  If you're familiar with the underlying C API,
        // you know that there is poor consistency on these matters;
        // MySQL++ abstracts these differences away.
        Connection con;
        con.set_option(new MultiStatementsOption(true));

        // Connect to the database
        if (!con.connect(mysqlpp::examples::db_name, cmdline.server(),
                cmdline.user(), cmdline.pass())) {
            return 1;
        }

        // Set up query with multiple queries.
        Query query = con.query();
        query << "DROP TABLE IF EXISTS test_table; " <<
                "CREATE TABLE test_table(id INT); " <<
                "INSERT INTO test_table VALUES(10); " <<
                "UPDATE test_table SET id=20 WHERE id=10; " <<
                "SELECT * FROM test_table; " <<
                "DROP TABLE test_table";
        cout << "Multi-query: " << endl << query << endl;

        // Execute statement and display all result sets.
        print_multiple_results(query);

#if MYSQL_VERSION_ID >= 50000
        // If it's MySQL v5.0 or higher, also test stored procedures, which
        // return their results the same way multi-queries do.
        query << "DROP PROCEDURE IF EXISTS get_stock; " <<
                "CREATE PROCEDURE get_stock" <<
                "( i_item varchar(20) ) " <<
                "BEGIN " <<
                "SET i_item = concat('%', i_item, '%'); " <<
                "SELECT * FROM stock WHERE lower(item) like lower(i_item); " <<
                "END;";
        cout << "Stored procedure query: " << endl << query << endl;

        // Create the stored procedure.
        print_multiple_results(query);

        // Call the stored procedure and display its results.
        query << "CALL get_stock('relish')";
        cout << "Query: " << query << endl;
        print_multiple_results(query);
#endif

        return 0;
    }
    catch (const BadOption& err) {
        cerr << err.what() << endl;
        cerr << "This example requires MySQL 4.1.1 or later." << endl;
        return 1;
    }
    catch (const ConnectionFailed& err) {
        cerr << "Failed to connect to database server: " <<
                err.what() << endl;
        return 1;
    }
    catch (const Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return 1;
    }
}

This is a fairly complex example demonstrating the multi-query and stored procedure features in newer versions of MySQL. Because these are new features, and they change the communication between the client and server, you have to enable these features in a connection option. The key line is right up at the top of main(), where it creates a MultiStatementsOption object and passes it to Connection::set_option(). That method will take a pointer to any derivative of Option: you just create such an object on the heap and pass it in, which gives Connection the data values it needs to set the option. You don’t need to worry about releasing the memory used by the Option objects; it’s done automatically.

The only tricky thing about setting options is that only a few of them can be set after the connection is up. Most need to be set just as shown in the example above: create an unconnected Connection object, set your connection options, and only then establish the connection. The option setting mechanism takes care of applying the options at the correct time in the connection establishment sequence.

If you’re familiar with setting connection options in the MySQL C API, you’ll have to get your head around the fact that MySQL++’s connection option mechanism is a much simpler, higher-level design that doesn’t resemble the C API in any way. The C API has something like half a dozen different mechanisms for setting options that control the connection. The flexibility of the C++ type system allows us to wrap all of these up into a single high-level mechanism while actually getting greater type safety than the C API allows.

3.15. Dealing with Connection Timeouts

By default, current MySQL servers have an 8 hour idle timeout on connections. This is not a problem if your program never has to run for more than 8 hours or reliably queries the database more often than that. And, it’s a good thing for the database server, because even an idle connection takes up server resources.

Many programs must run continually, however, and may experience long idle periods, such as nights and weekends when no one is around to make the program issue database queries. It’s therefore common for people writing such programs to get a bug report from the field complaining that the program died overnight or over a long weekend, usually with some error message about the database server going away. They then check the DB server, find that it’s still running and never did restart and scratch their heads wondering what happened. What happened is that the server’s connection idle timeout expired, so it closed the connection to the client.

You cannot detect this condition by calling Connection::connected(). When that returns true, it just means that either the connect-on-create constructor or the connect() call succeeded and that we haven’t observed the connection to be down since then. When the database server closes an idle connection, you won’t know it until after you try to issue a query. This is simply due to the nature of network programming.

One way around this problem is to configure MySQL to have a longer idle timeout. This timeout is in seconds, so the default of 8 hours is 28,800 seconds. You would want to figure out the longest possible time that your program could be left idle, then pick a value somewhat longer than that. For instance, you might decide that the longest reasonable idle time is a long 4-day weekend — 345,600 seconds — which you could round up to 350,000 or 400,000 to allow for a little bit of additional idle time on either end of that period.

Another way around this, on a per-connection basis from the client side, would be to set the ReconnectOption connection option. This will cause MySQL++ to reconnect to the server automatically if it drops the connection. Beware that unless you’re using MySQL 5.1.6 or higher, you have to set this only after the connection is established, or it won’t take effect. This means there’s a potential race condition: it’s possible the connection could drop shortly enough after being established that you don’t have time to apply the option, so it won’t come back up automatically. MySQL 5.1.6+ fixes this by allowing this option to be set before the connection is established.

A completely different way to tackle this, if your program doesn’t block forever waiting on I/O while idle, is to periodically call Connection::ping(). [12] This sends the smallest possible amount of data to the database server, which will reset its idle timer and cause it to respond, so ping() returns true. If it returns false instead, you know you need to reconnect to the server. Periodic pinging is easiest to do if your program uses asynchronous I/O, threads, or some kind of event loop to ensure that you can call something periodically even while the rest of the program has nothing to do.

An interesting variant on this strategy is to ping the server before each query, or, better, before each group of queries within a larger operation. It has an advantage over pinging during idle time in that the client is about to use far more server resources to handle the query than it will take to handle the ping, so the ping time gets lost in the overhead. On the other hand, if the client issues queries frequently when not idle, it can result in a lot more pings than would happen if you just pinged every N hours while idle.

Finally, some programmers prefer to wrap the querying mechanism in an error handler that catches the “server has gone away” error and tries to reestablish the connection and reissue the query. This adds some complexity, but it makes your program more robust without taking up unnecessary resources. If you did this, you could even change the server to drop idle connections more often, thus tying up fewer TCP/IP stack resources.

3.16. Concurrent Queries on a Connection

An important limitation of the MySQL C API library — which MySQL++ is built atop, so it shares this limitation — is that you can only have one query in progress on each connection to the database server. If you try to issue a second query while one is still in progress, you get an obscure error message about “Commands out of sync” from the underlying C API library. (You normally get this message in a MySQL++ exception unless you have exceptions disabled, in which case you get a failure code and Connection::error() returns this message.)

There are lots of ways to run into this limitation:

  • The easiest way is to try to use a single Connection object in a multithreaded program, with more than one thread attempting to use it to issue queries. Unless you put in a lot of work to synchronize access, this is almost guaranteed to fail at some point, giving the dread “Commands out of sync” error.

  • You might then think to give each thread that issues queries its own Connection object. You can still run into trouble if you pass the data you get from queries around to other threads. What can happen is that one of these child objects indirectly calls back to the Connection at a time where it’s involved with another query. This is properly covered elsewhere, in Section 7.4, “Sharing MySQL++ Data Structures”.)

  • One way to run into this problem without using threads is with “use” queries, discussed above. If you don’t consume all rows from a query before you issue another on that connection, you are effectively trying to have multiple concurrent queries on a single connection. Here’s a recipie for this particular disaster:

    UseQueryResult r1 = query.use("select garbage from plink where foobie='tamagotchi'");
    UseQueryResult r2 = query.use("select blah from bonk where bletch='smurf'");

    The second use() call fails because the first result set hasn’t been consumed yet.

  • Still another way to run into this limitation is if you use MySQL’s multi-query feature. This lets you give multiple queries in a single call, separated by semicolons, and get back the results for each query separately. If you issue three queries using Query::store(), you only get back the first query’s results with that call, and then have to call store_next() to get the subsequent query results. MySQL++ provides Query::more_results() so you know whether you’re done, or need to call store_next() again. Until you reach the last result set, you can’t issue another query on that connection.

  • Finally, there’s a way to run into this that surprises almost everyone sooner or later: stored procedures. MySQL normally returns at least two result sets for a stored procedure call. The simple case is that the stored procedure contains a single SQL query, and it succeeds: you get two results, first the results of the embedded SQL query, and then the result of the call itself. If there are multiple SQL queries within the stored procedure, you get more than two result sets. Until you consume them all, you can’t start a new query on the connection. As above, you want to have a loop calling more_results() and store_next() to work your way through all of the result sets produced by the stored procedure call.

3.17. Getting Field Meta-Information

The following example demonstrates how to get information about the fields in a result set, such as the name of the field and the SQL type. This is examples/fieldinf.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <iostream>
#include <iomanip>

using namespace std;


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Get contents of main example table
        mysqlpp::Query query = con.query("select * from stock");
        mysqlpp::StoreQueryResult res = query.store();

        // Show info about each field in that table
        char widths[] = { 12, 22, 46 };
        cout.setf(ios::left);
        cout << setw(widths[0]) << "Field" <<
                setw(widths[1]) << "SQL Type" <<
                setw(widths[2]) << "Equivalent C++ Type" <<
                endl;
        for (size_t i = 0; i < sizeof(widths) / sizeof(widths[0]); ++i) {
            cout << string(widths[i] - 1, '=') << ' ';
        }
        cout << endl;
        
        for (size_t i = 0; i < res.field_names()->size(); i++) {
            // Suppress C++ type name outputs when run under dtest,
            // as they're system-specific.
            const char* cname = res.field_type(int(i)).name();
            mysqlpp::FieldTypes::value_type ft = res.field_type(int(i));
            ostringstream os;
            os << ft.sql_name() << " (" << ft.id() << ')';
            cout << setw(widths[0]) << res.field_name(int(i)).c_str() <<
                    setw(widths[1]) << os.str() <<
                    setw(widths[2]) << cname <<
                    endl;
        }
        cout << endl;

        // Simple type check
        if (res.field_type(0) == typeid(string)) {
            cout << "SQL type of 'item' field most closely resembles "
                    "the C++ string type." << endl;
        }

        // Tricky type check: the 'if' path shouldn't happen because the
        // description field has the NULL attribute.  We need to dig a
        // little deeper if we want to ignore this in our type checks.
        if (res.field_type(5) == typeid(string)) {
            cout << "Should not happen! Type check failure." << endl;
        }
        else if (res.field_type(5) == typeid(mysqlpp::sql_blob_null)) {
            cout << "SQL type of 'description' field resembles "
                    "a nullable variant of the C++ string type." << endl;
        }
        else {
            cout << "Weird: fifth field's type is now " <<
                    res.field_type(5).name() << endl;
            cout << "Did something recently change in resetdb?" << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}


[2] SQLQueryParms is used as a stream only as an implementation detail within the library. End user code simply sees it as a std::vector derivative.

[3] By contrast, the Query methods that take an SSQLS do add quotes and escape strings implicitly. It can do this because SSQLS knows all the SQL code and data types, so it never has to guess whether quoting or escaping is appropriate.

[4] Unless you’re smarter than I am, you don’t immediately see why explicit manipulators are necessary. We can tell when quoting and escaping is not appropriate based on type, so doesn’t that mean we know when it is appropriate? Alas, no. For most data types, it is possible to know, or at least make an awfully good guess, but it’s a complete toss-up for C strings, const char*. A C string could be either a literal string of SQL code, or it can be a value used in a query. Since there’s no easy way to know and it would damage the library’s usability to mandate that C strings only be used for one purpose or the other, the library requires you to be explicit.

[5] One hopes the programmer knows.

[6] Yes, we’re aware that there is a feature in MySQL that lets you transfer row data in a binary form, but we don’t support this yet. We may, someday, probably as an extension to SSQLS. The only real reason to do so is to shave off some of the data translation overhead, which is typically neglibible in practice, swamped by the far greater disk and network I/O overheads inherent in use of a client-server database system like MySQL.

[7] SQL’s DECIMAL data type is a configurable-precision fixed-point number format. MySQL++ currently translates these to double, a floating-point data format, the closest thing available in the C++ type system. Since the main reason to use DECIMAL is to get away from the weird roundoff behavior of floating-point numbers, this could be viewed as a serious problem. The thing is, though, in all the years MySQL++ has been around, I don’t remember anyone actually complaining about it. Apparently there’s either no one using DECIMAL with MySQL++, or they’re ignoring any roundoff errors they get as a result. Until this wheel squeaks, it’s not likely to be greased. To fix this, we’ll have to create a new custom data type to hold such column values, which will be a lot of work for apparently little return.

[8] In version 2 of MySQL++ and earlier, SQLTypeAdapter was called SQLString, but it was confusing because its name and the fact that it derived from std::string suggested that it was a general-purpose string type. MySQL++ even used it this way in a few places internally. In v3, we made it a simple base class and renamed it to reflect its proper limited function.

[9] SQLTypeAdapter doesn’t do quoting and escaping itself. That happens elsewhere, right at the point that the STA gets used to build a query.

[10] If you used MySQL++ before v3, String used to be called ColData. It was renamed because starting in v2.3, we began using it for holding more than just column data. I considered renaming it SQLString instead, but that would have confused old MySQL++ users to no end. Instead, I followed the example of Set, MySQL++’s specialized std::set variant.

[11] During the development of MySQL++ v3.0, I tried merging SQLTypeAdapter and String into a single class to take advantage of this. The resulting class gave the C++ compiler the freedom to tie itself up in knots, because it was then allowed to convert almost any data type to almost any other. You’d get a tangle of ambiguous data type conversion errors from the most innocent code.

[12] Don’t ping the server too often! It takes a tiny amount of processing capability to handle a ping, which can add up to a significant amount if done often enough by a client, or even just rarely by enough clients. Also, a lower ping frequency can let your program ride through some types of network faults — a switch reboot, for instance — without needing a reconnect. I like to ping the DB server no more often than half the connection timeout. With the default of 8 hours, then, I’d ping between every 4 and 7 hours.

mysql++-3.2.2+pristine.orig/doc/html/userman/index.html0000755000372000001440000004054612502417165022372 0ustar robertousersMySQL++ v3.2.2 User Manual

MySQL++ v3.2.2 User Manual

Kevin Atkinson

Sinisa Milivojevic

Monty Widenius

Warren Young

March 18, 2015


Table of Contents

1. Introduction
1.1. A Brief History of MySQL++
1.2. If You Have Questions...
2. Overview
2.1. The Connection Object
2.2. The Query Object
2.3. Result Sets
2.4. Exceptions
3. Tutorial
3.1. Running the Examples
3.2. A Simple Example
3.3. A More Complicated Example
3.4. Exceptions
3.5. Quoting and Escaping
3.6. C++ vs. SQL Data Types
3.7. Handling SQL Nulls
3.8. MySQL++’s Special String Types
3.9. Dealing with Binary Data
3.10. Using Transactions
3.11. Which Query Type to Use?
3.12. Conditional Result Row Handling
3.13. Executing Code for Each Row In a Result Set
3.14. Connection Options
3.15. Dealing with Connection Timeouts
3.16. Concurrent Queries on a Connection
3.17. Getting Field Meta-Information
4. Template Queries
4.1. Setting up Template Queries
4.2. Setting the Parameters at Execution Time
4.3. Default Parameters
4.4. Error Handling
5. Specialized SQL Structures
5.1. sql_create
5.2. SSQLS Comparison and Initialization
5.3. Retrieving data
5.4. Adding data
5.5. Modifying data
5.6. Storing SSQLSes in Associative Containers
5.7. Changing the Table Name
5.8. Using an SSQLS in Multiple Modules
5.9. Harnessing SSQLS Internals
5.10. Having Different Field Names in C++ and SQL
5.11. Expanding SSQLS Macros
5.12. Customizing the SSQLS Mechanism
5.13. Deriving from an SSQLS
5.14. SSQLS and BLOB Columns
5.15. SSQLS and Visual C++ 2003
6. Using Unicode with MySQL++
6.1. A Short History of Unicode
6.2. Unicode on Unixy Systems
6.3. Unicode on Windows
6.4. For More Information
7. Using MySQL++ in a Multithreaded Program
7.1. Build Issues
7.2. Connection Management
7.3. Helper Functions
7.4. Sharing MySQL++ Data Structures
8. Configuring MySQL++
8.1. The Location of the MySQL Development Files
8.2. The Maximum Number of Fields Allowed
8.3. Buried MySQL C API Headers
8.4. Building MySQL++ on Systems Without Complete C99 Support
9. Using MySQL++ in Your Own Project
9.1. Visual C++
9.2. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris...
9.3. OS X
9.4. MinGW
9.5. Eclipse
10. Incompatible Library Changes
10.1. API Changes
10.2. ABI Changes
11. Licensing
11.1. GNU Lesser General Public License
11.2. MySQL++ User Manual License

1. Introduction

MySQL++ is a powerful C++ wrapper for MySQL’s C API[1]. Its purpose is to make working with queries as easy as working with STL containers.

The latest version of MySQL++ can be found at the official web site.

Support for MySQL++ can be had on the mailing list. That page hosts the mailing list archives, and tells you how you can subscribe.

1.1. A Brief History of MySQL++

MySQL++ was created in 1998 by Kevin Atkinson. It started out MySQL-specific, but there were early efforts to try and make it database-independent, and call it SQL++. This is where the old library name “sqlplus” came from. This is also why the old versions prefixed some class names with “Mysql” but not others: the others were supposed to be the database-independent parts. All of Kevin’s releases had pre-1.0 version numbers.

Then in 1999, MySQL AB took over development of the library. In the beginning, Monty Widenius himself did some of the work, but later gave it over to another MySQL employee, Sinisa Milivojevic. MySQL released versions 1.0 and 1.1, and then Kevin gave over maintenance to Sinisa officially with 1.2, and ceased to have any involvement with the library’s maintenance. Sinisa went on to maintain the library through 1.7.9, released in mid-2001. It seems to be during this time that the dream of multiple-database compatibility died, for obvious reasons.

With version 1.7.9, MySQL++ went into a period of stasis, lasting over three years. (Perhaps it was the ennui and retrenchment following the collapse of the bubble that caused them to lose interest.) During this time, Sinisa ran the MySQL++ mailing list and supported its users, but made no new releases. Contributed patches were either ignored or put up on the MySQL++ web site for users to try, without any official blessing.

The biggest barrier to using MySQL++ during this period is that the popular C++ compilers of 2001 weren’t all that compatible with the C++ Standard. As a result, MySQL++ used many nonstandard constructs, to allow for compatibility with older compilers. Each new compiler released in the following years increased compliance, either warning about or rejecting code using pre-Standard constructs. In particular, GCC was emerging from the mess following the EGCS fork during this time. The fork was healed officially in 1999, but there’s always a delay of a few years between the release of a new GCC and widespread adoption. The post-EGCS versions of GCC were only beginning to become popular by 2001, when development on MySQL++ halted. As a result, it became increasingly difficult to get MySQL++ to build cleanly as newer compilers came out. Since MySQL++ uses templates heavily, this affected end user programs as well: MySQL++ code got included directly in your program, so any warnings or errors it caused became your program’s problem.

As a result, most of the patches contributed to the MySQL++ project during this period were to fix up standards compliance issues. Because no one was bothering to officially test and bless these patches, you ended up with the worst aspects of a bazaar development model: complete freedom of development, but no guiding hand to select from the good stuff and reject the rest. Many of the patches were mutually incompatible. Some would build upon other patches, so you had to apply them in the proper sequence. Others did useful things, but didn’t give a fully functional copy of MySQL++. Figuring out which patch(es) to use was an increasingly frustrating exercise as the years wore on, and newer GCCs became popular.

In early August of 2004, Warren Young got fed up with this situation and took over. He released 1.7.10 later that month, which did little more than make the code build with GCC 3.3 without warnings. Since then, with a little help from his friends on the Net, MySQL++ has lost a lot of bugs, gained a lot of features, gained a few more bugs, lost them again... MySQL++ is alive and healthy now.

1.2. If You Have Questions...

If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list. The mailing list is archived, so if you have questions, do a search to see if the question has been asked before.

You may find people’s individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Not all of the principal developers of MySQL++ are still active in its development; those who have dropped out have no wish to be bugged about MySQL++. Those of us still active in MySQL++ development monitor the mailing list, so you aren’t getting any extra “coverage” by sending messages to additional email addresses.



[1] The MySQL C API is also known as Connector/C.

mysql++-3.2.2+pristine.orig/doc/html/userman/threads.html0000755000372000001440000006624712502417165022723 0ustar robertousers7. Using MySQL++ in a Multithreaded Program

7. Using MySQL++ in a Multithreaded Program

MySQL++ is not “thread safe” in any meaningful sense. MySQL++ contains very little code that actively prevents trouble with threads, and all of it is optional. We have done some work in MySQL++ to make thread safety achievable, but it doesn’t come for free.

The main reason for this is that MySQL++ is generally I/O-bound, not processor-bound. That is, if your program’s bottleneck is MySQL++, the ultimate cause is usually the I/O overhead of using a client-server database. Doubling the number of threads will just let your program get back to waiting for I/O twice as fast. Since threads are evil and generally can’t help MySQL++, the only optional thread awareness features we turn on in the shipping version of MySQL++ are those few that have no practical negative consequences. Everything else is up to you, the programmer, to evaluate and enable as and when you need it.

We’re going to assume that you are reading this chapter because you find yourself needing to use threads for some other reason than to speed up MySQL access. Our purpose here is limited to setting down the rules for avoiding problems with MySQL++ in a multi-threaded program. We won’t go into the broader issues of thread safety outside the scope of MySQL++. You will need a grounding in threads in general to get the full value of this advice.

7.1. Build Issues

Before you can safely use MySQL++ with threads, there are several things you must do to get a thread-aware build:

  1. Build MySQL++ itself with thread awareness turned on.

    On Linux, Cygwin and Unix (OS X, *BSD, Solaris...), pass the --enable-thread-check flag to the configure script. Beware, this is only a request to the configure script to look for thread support on your system, not a requirement to do or die: if the script doesn’t find what it needs to do threading, MySQL++ will just get built without thread support. See README-Unix.txt for more details.

    On Windows, if you use the Visual C++ project files or the MinGW Makefile that comes with the MySQL++ distribution, threading is always turned on, due to the nature of Windows.

    If you build MySQL++ in some other way, such as with Dev-Cpp (based on MinGW) you’re on your own to enable thread awareness.

  2. Link your program to a thread-aware build of the MySQL C API library.

    If you use a binary distribution of MySQL on Unixy systems (including Cygwin) you usually get two different versions of the MySQL C API library, one with thread support and one without. These are typically called libmysqlclient and libmysqlclient_r, the latter being the thread-safe one. (The “_r” means reentrant.)

    If you’re using the Windows binary distribution of MySQL, you should have only one version of the C API library, which should be thread-aware. If you have two, you probably just have separate debug and optimized builds. See README-Visual-C++.txt or README-MinGW.txt for details.

    If you build MySQL from source, you might only get one version of the MySQL C API library, and it can have thread awareness or not, depending on your configuration choices.

  3. Enable threading in your program’s build options.

    This is different for every platform, but it’s usually the case that you don’t get thread-aware builds by default. Depending on the platform, you might need to change compiler options, linker options, or both. See your development environment’s documentation, or study how MySQL++ itself turns on thread-aware build options when requested.

7.2. Connection Management

The MySQL C API underpinning MySQL++ does not allow multiple concurrent queries on a single connection. You can run into this problem in a single-threaded program, too, which is why we cover the details elsewhere, in Section 3.16, “Concurrent Queries on a Connection”. It’s a thornier problem when using threads, though.

The simple fix is to just create a separarate Connection object for each thread that needs to make database queries. This works well if you have a small number of threads that need to make queries, and each thread uses its connection often enough that the server doesn’t time out waiting for queries.

If you have lots of threads or the frequency of queries is low, the connection management overhead will be excessive. To avoid that, we created the ConnectionPool class. It manages a pool of Connection objects like library books: a thread checks one out, uses it, and then returns it to the pool as soon as it’s done with it. This keeps the number of active connections low. We suggest that you keep each connection’s use limited to a single variable scope for RAII reasons; we created a little helper called ScopedConnection to make that easy.

ConnectionPool has three methods that you need to override in a subclass to make it concrete: create(), destroy(), and max_idle_time(). These overrides let the base class delegate operations it can’t successfully do itself to its subclass. The ConnectionPool can’t know how to create() the Connection objects, because that depends on how your program gets login parameters, server information, etc. ConnectionPool also makes the subclass destroy() the Connection objects it created; it could assume that they’re simply allocated on the heap with new, but it can’t be sure, so the base class delegates destruction, too. Finally, the base class can’t know which connection idle timeout policy would make the most sense to the client, so it asks its subclass via the max_idle_time() method.

ConnectionPool also allows you to override release(), if needed. For simple uses, it’s not necessary to override this.

In designing your ConnectionPool derivative, you might consider making it a Singleton, since there should only be one pool in a program.

Another thing you might consider doing is passing a ReconnectOption object to Connection::set_option() in your create() override before returning the new Connection pointer. This will cause the underlying MySQL C API to try to reconnect to the database server if a query fails because the connection was dropped by the server. This can happen if the DB server is allowed to restart out from under your application. In many applications, this isn’t allowed, or if it does happen, you might want your code to be able to detect it, so MySQL++ doesn’t set this option for you automatically.

Here is an example showing how to use connection pools with threads:

#include "cmdline.h"
#include "threads.h"

#include <iostream>

using namespace std;


#if defined(HAVE_THREADS)
// Define a concrete ConnectionPool derivative.  Takes connection
// parameters as inputs to its ctor, which it uses to create the
// connections we're called upon to make.  Note that we also declare
// a global pointer to an object of this type, which we create soon
// after startup; this should be a common usage pattern, as what use
// are multiple pools?
class SimpleConnectionPool : public mysqlpp::ConnectionPool
{
public:
    // The object's only constructor
    SimpleConnectionPool(mysqlpp::examples::CommandLine& cl) :
    conns_in_use_(0),
    db_(mysqlpp::examples::db_name),
    server_(cl.server()),
    user_(cl.user()),
    password_(cl.pass())
    {
    }

    // The destructor.  We _must_ call ConnectionPool::clear() here,
    // because our superclass can't do it for us.
    ~SimpleConnectionPool()
    {
        clear();
    }

    // Do a simple form of in-use connection limiting: wait to return
    // a connection until there are a reasonably low number in use
    // already.  Can't do this in create() because we're interested in
    // connections actually in use, not those created.  Also note that
    // we keep our own count; ConnectionPool::size() isn't the same!
    mysqlpp::Connection* grab()
    {
        while (conns_in_use_ > 8) {
            cout.put('R'); cout.flush(); // indicate waiting for release
            sleep(1);
        }

        ++conns_in_use_;
        return mysqlpp::ConnectionPool::grab();
    }

    // Other half of in-use conn count limit
    void release(const mysqlpp::Connection* pc)
    {
        mysqlpp::ConnectionPool::release(pc);
        --conns_in_use_;
    }

protected:
    // Superclass overrides
    mysqlpp::Connection* create()
    {
        // Create connection using the parameters we were passed upon
        // creation.  This could be something much more complex, but for
        // the purposes of the example, this suffices.
        cout.put('C'); cout.flush(); // indicate connection creation
        return new mysqlpp::Connection(
                db_.empty() ? 0 : db_.c_str(),
                server_.empty() ? 0 : server_.c_str(),
                user_.empty() ? 0 : user_.c_str(),
                password_.empty() ? "" : password_.c_str());
    }

    void destroy(mysqlpp::Connection* cp)
    {
        // Our superclass can't know how we created the Connection, so
        // it delegates destruction to us, to be safe.
        cout.put('D'); cout.flush(); // indicate connection destruction
        delete cp;
    }

    unsigned int max_idle_time()
    {
        // Set our idle time at an example-friendly 3 seconds.  A real
        // pool would return some fraction of the server's connection
        // idle timeout instead.
        return 3;
    }

private:
    // Number of connections currently in use
    unsigned int conns_in_use_;

    // Our connection parameters
    std::string db_, server_, user_, password_;
};
SimpleConnectionPool* poolptr = 0;


static thread_return_t CALLBACK_SPECIFIER
worker_thread(thread_arg_t running_flag)
{
    // Ask the underlying C API to allocate any per-thread resources it
    // needs, in case it hasn't happened already.  In this particular
    // program, it's almost guaranteed that the safe_grab() call below
    // will create a new connection the first time through, and thus
    // allocate these resources implicitly, but there's a nonzero chance
    // that this won't happen.  Anyway, this is an example program,
    // meant to show good style, so we take the high road and ensure the
    // resources are allocated before we do any queries.
    mysqlpp::Connection::thread_start();
    cout.put('S'); cout.flush(); // indicate thread started

    // Pull data from the sample table a bunch of times, releasing the
    // connection we use each time.
    for (size_t i = 0; i < 6; ++i) {
        // Go get a free connection from the pool, or create a new one
        // if there are no free conns yet.  Uses safe_grab() to get a
        // connection from the pool that will be automatically returned
        // to the pool when this loop iteration finishes.
        mysqlpp::ScopedConnection cp(*poolptr, true);
        if (!cp) {
            cerr << "Failed to get a connection from the pool!" << endl;
            break;
        }

        // Pull a copy of the sample stock table and print a dot for
        // each row in the result set.
        mysqlpp::Query query(cp->query("select * from stock"));
        mysqlpp::StoreQueryResult res = query.store();
        for (size_t j = 0; j < res.num_rows(); ++j) {
            cout.put('.');
        }

        // Delay 1-4 seconds before doing it again.  Because this can
        // delay longer than the idle timeout, we'll occasionally force
        // the creation of a new connection on the next loop.
        sleep(rand() % 4 + 1);  
    }

    // Tell main() that this thread is no longer running
    *reinterpret_cast<bool*>(running_flag) = false;
    cout.put('E'); cout.flush(); // indicate thread ended
    
    // Release the per-thread resources before we exit
    mysqlpp::Connection::thread_end();

    return 0;
}
#endif


int
main(int argc, char *argv[])
{
#if defined(HAVE_THREADS)
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Create the pool and grab a connection.  We do it partly to test
    // that the parameters are good before we start doing real work, and
    // partly because we need a Connection object to call thread_aware()
    // on to check that it's okay to start doing that real work.  This
    // latter check should never fail on Windows, but will fail on most
    // other systems unless you take positive steps to build with thread
    // awareness turned on.  See README-*.txt for your platform.
    poolptr = new SimpleConnectionPool(cmdline);
    try {
        mysqlpp::ScopedConnection cp(*poolptr, true);
        if (!cp->thread_aware()) {
            cerr << "MySQL++ wasn't built with thread awareness!  " <<
                    argv[0] << " can't run without it." << endl;
            return 1;
        }
    }
    catch (mysqlpp::Exception& e) {
        cerr << "Failed to set up initial pooled connection: " <<
                e.what() << endl;
        return 1;
    }

    // Setup complete.  Now let's spin some threads...
    cout << endl << "Pool created and working correctly.  Now to do "
            "some real work..." << endl;
    srand((unsigned int)time(0));
    bool running[] = {
            true, true, true, true, true, true, true,
            true, true, true, true, true, true, true };
    const size_t num_threads = sizeof(running) / sizeof(running[0]);
    size_t i;
    for (i = 0; i < num_threads; ++i) {
        if (int err = create_thread(worker_thread, running + i)) {
            cerr << "Failed to create thread " << i <<
                    ": error code " << err << endl;
            return 1;
        }
    }

    // Test the 'running' flags every second until we find that they're
    // all turned off, indicating that all threads are stopped.
    cout.put('W'); cout.flush(); // indicate waiting for completion
    do {
        sleep(1);
        i = 0;
        while (i < num_threads && !running[i]) ++i;
    }
    while (i < num_threads);
    cout << endl << "All threads stopped!" << endl;

    // Shut it all down...
    delete poolptr;
    cout << endl;
#else
    (void)argc;     // warning squisher
    cout << argv[0] << " requires that threads be enabled!" << endl;
#endif

    return 0;
}

The example works with both Windows native threads and with POSIX threads.[18] Because thread-enabled builds are only the default on Windows, it’s quite possible for this program to do nothing on other platforms. See above for instructions on enabling a thread-aware build.

If you write your code without checks for thread support like you see in the code above and link it to a build of MySQL++ that isn’t thread-aware, it will still try to run. The threading mechanisms fall back to a single-threaded mode when threads aren’t available. A particular danger is that the mutex lock mechanism used to keep the pool’s internal data consistent while multiple threads access it will just quietly become a no-op if MySQL++ is built without thread support. We do it this way because we don’t want to make thread support a MySQL++ prerequisite. And, although it would be of limited value, this lets you use ConnectionPool in single-threaded programs.

You might wonder why we don’t just work around this weakness in the C API transparently in MySQL++ instead of suggesting design guidelines to avoid it. We’d like to do just that, but how?

If you consider just the threaded case, you could argue for the use of mutexes to protect a connection from trying to execute two queries at once. The cure is worse than the disease: it turns a design error into a performance sap, as the second thread is blocked indefinitely waiting for the connection to free up. Much better to let the program get the “Commands out of sync” error, which will guide you to this section of the manual, which tells you how to avoid the error with a better design.

Another option would be to bury ConnectionPool functionality within MySQL++ itself, so the library could create new connections at need. That’s no good because the above example is the most complex in MySQL++, so if it were mandatory to use connection pools, the whole library would be that much more complex to use. The whole point of MySQL++ is to make using the database easier. MySQL++ offers the connection pool mechanism for those that really need it, but an option it must remain.

7.3. Helper Functions

Connection has several thread-related static methods you might care about when using MySQL++ with threads.

You can call Connection::thread_aware() to determine whether MySQL++ and the underlying C API library were both built to be thread-aware. I want to stress that thread awareness is not the same thing as thread safety: it’s still up to you to make your code thread-safe. If this method returns true, it just means it’s possible to achieve thread-safety, not that you actually have it.

If your program’s connection-management strategy allows a thread to use a Connection object that another thread created, you need to know about Connection::thread_start(). This function sets up per-thread resources needed to make MySQL server calls. You don’t need to call it when you use the simple Connection-per-thread strategy, because this function is implicitly called the first time you create a Connection in a thread. It’s not harmful to call this function from a thread that previously created a Connection, just unnecessary. The only time it’s necessary is when a thread can make calls to the database server on a Connection that another thread created and that thread hasn’t already created a Connection itself.

If you use ConnectionPool, you should call thread_start() at the start of each worker thread because you probably can’t reliably predict whether your grab() call will create a new Connection or will return one previously returned to the pool from another thread. It’s possible to conceive of situations where you can guarantee that each pool user always creates a fresh Connection the first time it calls grab(), but thread programming is complex enough that it’s best to take the safe path and always call thread_start() early in each worker thread.

Finally, there’s the complementary method, Connection::thread_end(). Strictly speaking, it’s not necessary to call this. The per-thread memory allocated by the C API is small, it doesn’t grow over time, and a typical thread is going to need this memory for its entire run time. Memory debuggers aren’t smart enough to know all this, though, so they will gripe about a memory leak unless you call this from each thread that uses MySQL++ before that thread exits.

Although its name suggests otherwise, Connection::thread_id() has nothing to do with anything in this chapter.

7.4. Sharing MySQL++ Data Structures

We’re in the process of making it safer to share MySQL++’s data structures across threads. Although things are getting better, it’s highly doubtful that all problems with this are now fixed. By way of illustration, allow me explain one aspect of this problem and how we solved it in MySQL++ 3.0.0.

When you issue a database query that returns rows, you also get information about the columns in each row. Since the column information is the same for each row in the result set, older versions of MySQL++ kept this information in the result set object, and each Row kept a pointer back to the result set object that created it so it could access this common data at need. This was fine as long as each result set object outlived the Row objects it returned. It required uncommon usage patterns to run into trouble in this area in a single-threaded program, but in a multi-threaded program it was easy. For example, there’s frequently a desire to let one connection do the queries, and other threads process the results. You can see how avoiding lifetime problems here would require a careful locking strategy.

We got around this in MySQL++ v3.0 by giving these shared data structures a lifetime independent of the result set object that intitially creates it. These shared data structures stick around until the last object needing them gets destroyed.

Although this is now a solved problem, I bring it up because there are likely other similar lifetime and sequencing problems waiting to be discovered inside MySQL++. If you would like to help us find these, by all means, share data between threads willy-nilly. We welcome your crash reports on the MySQL++ mailing list. But if you’d prefer to avoid problems, it’s better to keep all data about a query within a single thread. Between this and the advice in prior sections, you should be able to use threads with MySQL++ without trouble.



[18] The file examples/threads.h contains a few macros and such to abstract away the differences between the two threading models.

mysql++-3.2.2+pristine.orig/doc/html/userman/incorporating.html0000755000372000001440000004540312502417165024136 0ustar robertousers9. Using MySQL++ in Your Own Project

9. Using MySQL++ in Your Own Project

Up to now, this manual has only discussed MySQL++ in conjunction with the example programs that come with the library. This chapter covers the steps you need to take to incorporate MySQL++ into your own projects.

The first thing you have to do is include mysql++.h in each module that uses MySQL++. In modules that use SSQLS v1, you also need to include ssqls.h.[23]

At this point, your project probably still won’t compile, and it certainly won’t link. The remaining steps are dependent on the operating system and tools you are using. The rest of this chapter is broken up into several sections, one for each major platform type. You can skip over the sections for platforms you don’t use.

9.1. Visual C++

Using MySQL++ in an MFC Project

If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | MFC | MFC Application. Go through the wizard setting up the project as you see fit.

Once you have your project open, right click on your top-level executable in the Solution Explorer, choose Properties, and make the following changes. (Where it doesn’t specify Debug or Release, make the same change to both configurations.)

  • Append the following to C/C++ | General | Additional Include Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\include, C:\mysql++\include

  • Under C/C++ | Code Generation change “Runtime Library” to “Multi-threaded Debug DLL (/MDd)” for the Debug configuration. For the Release configuration, make it “Multi-threaded DLL (/MD)”.

  • For both Release and Debug builds, append the following to Linker | General | Additional Library Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\lib, C:\mysql++\lib

    Connector/C does include debug libraries, but you will probably not need to use them.

  • Under Linker | Input add the following to “Additional Dependencies” for the Debug configuration: libmysql.lib wsock32.lib mysqlpp_d.lib

    ...and then for the Release configuration: libmysql.lib wsock32.lib mysqlpp.lib

    This difference is because MySQL++’s Debug DLL and import library have a _d suffix so you can have both in the same directory without conflicts.

You may want to study examples\vstudio\mfc\mfc.vcproj to see this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp.dll.

Using MySQL++ in a Windows Forms C++/CLI Project

Before you start work on getting MySQL++ working with your own program, you need to make some changes to the MySQL++ build settings. Open mysqlpp.sln, then right-click on the mysqlpp target and select Properties. Make the following changes for both the Debug and Release configurations:

  • Under Configuration Properties | General, change “Common Language Runtime support” to the /clr setting.

  • Under C/C++ | Code Generation, change “Enable C++ Exceptions” from “Yes (/EHsc)” to “Yes With SEH Exceptions (/EHa)”

If you have already built MySQL++, be sure to perform a complete rebuild after changing these options. The compiler will emit several C4835 warnings after making those changes, which are harmless when using the DLL with a C++/CLI program, but which warn of real problems when using it with unmanaged C++. This is why MySQL++’s Windows installer (install.hta) offers the option to install the CLR version into a separate directory; use it if you need both managed and unmanaged versions installed!

For the same reason, you might give some thought about where you install mysqlpp.dll on your end user’s machines when distributing your program. My recommendation is to install it in the same directory as the .exe file that uses it, rather than installing into a system directory where it could conflict with a mysqlpp.dll built with different settings.

Once you have MySQL++ built with CLR support, open your program’s project. If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | CLR | Windows Forms Application. Go through the wizard setting up the project as you see fit.

The configuration process isn’t much different from that for an MFC project, so go through the list above first. Then, make the following changes particular to .NET and C++/CLI:

  • Under Configuration Properties | General change the setting from /clr:pure to /clr. (You need mixed assembly support to allow a C++/CLI program to use a plain C++ library like MySQL++.)

  • For the Linker | Input settings, you don’t need wsock32.lib. The mere fact that you’re using .NET takes care of that dependency for you.

In the MFC instructions above, it said that you need to build it using the Multi-threaded DLL version of the C++ Runtime Library. That’s not strictly true for MFC, but it’s an absolute requirement for C++/CLI. See the Remarks in the MSDN article on the /clr switch for details.

You may want to study examples\vstudio\wforms\wforms.vcproj to see all this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp_d.dll and mysqlpp.dll.

9.2. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris...

There are lots of ways to build programs on Unixy platforms. We’ll cover just the most generic way here, Makefiles. We’ll use a very simple example so it’s clear how to translate this to more sophisticated build systems such as GNU Autotools or Bakefile.

“Hello, world!” for MySQL++ might look something like this:

#include <mysql++.h>

int main()
{
    mysqlpp::String greeting("Hello, world!");
    std::cout << greeting << std::endl;
    return 0;
}

Here’s a Makefile for building that program:

CXXFLAGS := -I/usr/include/mysql -I/usr/local/include/mysql++
LDFLAGS := -L/usr/local/lib
LDLIBS := -lmysqlpp -lmysqlclient
EXECUTABLE := hello

all: $(EXECUTABLE)

clean: 
    rm -f $(EXECUTABLE) *.o

The *FLAGS lines are where all of the assumptions about file and path names are laid out. Probably at least one of these assumptions isn’t true for your system, and so will require changing.

The trickiest line is the LDLIBS one. MySQL++ programs need to get built against both the MySQL and MySQL++ libraries, because MySQL++ is built on top of the MySQL C API library[24] If you’re building a threaded program, use -lmysqlclient_r instead of -lmysqlclient here. (See Section 7, “Using MySQL++ in a Multithreaded Program” for more details on building thread-aware programs.)

On some systems, the order of libraries in the LDLIBS line is important: these linkers collect symbols from right to left, so the rightmost library needs to be the most generic. In this example, MySQL++ depends on MySQL, so the MySQL C API library is rightmost.

You might need to add more libraries to the LDLIBS line. -lnsl, -lz and -lm are common. If you study how MySQL++ itself gets built on your system, you can see what it uses, and emulate that.

You may be wondering why we have used both LDLIBS and LDFLAGS here. Some Makefiles you have seen collect both types of flags in a single variable. That can work if the variable is used in the right place in the link command. However, this particular Makefile is made with GNU make in mind, and uses its standard rules implicitly. Those rules are designed to use these two variables separately like this. If you were writing your own compilation rules, you could write them in such a way that you didn’t have to do this.

Beyond that, we have a pretty vanilla Makefile, thanks in large part to the fact that the default make rules are fine for such a simple program.

9.3. OS X

Makefiles

The generic Makefile instructions above cover most of what you need to know about using Makefiles on OS X.

One thing that may trip you up on OS X is that it uses an uncommon dynamic linkage system. The easiest way to cope with this is to link your executables with the compiler, rather than call ld directly.

Another tricky bit on OS X is the concept of Universal binaries. See README-Mac-OS-X.txt for details on building a Universal version of the MySQL++ library, if you need one. By default, you only get a version tuned for the system type you build it on.

Xcode

I have no information on how to incorporate MySQL++ in an Xcode project. Send a message to the MySQL++ mailing list if you can help out here.

9.4. MinGW

Makefiles

The generic Makefile instructions above apply to MinGW’s version of GNU make as well. You will have some differences due to the platform, so here’s the adjusted Makefile:

SHELL := $(COMSPEC)
MYSQL_DIR := "c:/Program Files/MySQL/MySQL Connector C 6.1"
CXXFLAGS := -I$(MYSQL_DIR)/include -Ic:/MySQL++/include
LDFLAGS := -L$(MYSQL_DIR)/lib -Lc:/MySQL++/lib/MinGW
LDLIBS := -lmysql -lmysqlpp
EXECUTABLE := hello

all: $(EXECUTABLE)

clean: 
	del $(EXECUTABLE)

Note that I’ve used del instead of rm in the clean target. In the past, at least, MinGW make had some funny rules about whether commands in target rules would get run with sh.exe or with cmd.exe. I can’t currently get my installation of MinGW to do anything but use sh.exe by default, but that may be because I have Cygwin installed, which provides sh.exe. This explains the first line in the file, which overrides the default shell with cmd.exe, purely to get consistent behavior across platforms. If you knew all your platforms would have a better shell, you’d probably want to use that instead.

Note the use of forward slashes in the path to the MySQL Connector/C development files. GNU make uses the backslash as an escape character, so you’d have to double them if you’re unwilling to use forward slashes.

Third-Party MinGW IDEs (Dev-C++, Code::Blocks...)

I have no information on how to do this. We’ve received reports on the mailing list from people that have made it work, but no specifics on what all needs to be done. The Makefile discussion above should give you some hints.

9.5. Eclipse

As far as I can tell, the simplest way to build a C++ project with Eclipse is to set up a Makefile for it as described above, then add an external run configuration for your local make tool. Get the project building from the command line with make, then go to Run | External Tools | Open External Tools Dialog and add a new launch configuration.

For example, on my OS X system I use /usr/bin/gnumake for the program location and pick the project root with the Browse Workspace button to set the working directory.



[23] MySQL++ has many header files, but the only one that isn’t intertwined with the rest is ssqls.h. mysql++.h brings in all of the others in the correct order. Some have tried to speed their build times by finding a subset of MySQL++ headers to include, but mysql++.h already does as much of this as is practical. MySQL++’s monolithic nature rules out finding a true subset of the library headers.

[24] The MySQL C API library is most commonly called libmysqlclient on Unixy systems, though it is also known as Connector/C.

mysql++-3.2.2+pristine.orig/doc/html/userman/tquery.html0000755000372000001440000003025612502417165022611 0ustar robertousers4. Template Queries

4. Template Queries

Another powerful feature of MySQL++ is being able to set up template queries. These are kind of like C’s printf() facility: you give MySQL++ a string containing the fixed parts of the query and placeholders for the variable parts, and you can later substitute in values into those placeholders.

The following program demonstrates how to use this feature. This is examples/tquery1.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Build a template query to retrieve a stock item given by
        // item name.
        mysqlpp::Query query = con.query(
                "select * from stock where item = %0q");
        query.parse();

        // Retrieve an item added by resetdb; it won't be there if
        // tquery* or ssqls3 is run since resetdb.
        mysqlpp::StoreQueryResult res1 = query.store("Nürnberger Brats");
        if (res1.empty()) {
            throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in "
                    "table, run resetdb");
        }

        // Replace the proper German name with a 7-bit ASCII
        // approximation using a different template query.
        query.reset();      // forget previous template query data
        query << "update stock set item = %0q where item = %1q";
        query.parse();
        mysqlpp::SimpleResult res2 = query.execute("Nuerenberger Bratwurst",
                res1[0][0].c_str());

        // Print the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

The line just before the call to query.parse() sets the template, and the parse call puts it into effect. From that point on, you can re-use this query by calling any of several Query member functions that accept query template parameters. In this example, we’re using Query::execute().

Let’s dig into this feature a little deeper.

4.1. Setting up Template Queries

To set up a template query, you simply insert it into the Query object, using numbered placeholders wherever you want to be able to change the query. Then, you call the parse() function to tell the Query object that the query string is a template query, and it needs to parse it:

query << "select (%2:field1, %3:field2) from stock where %1:wheref = %0q:what";
query.parse();

The format of the placeholder is:

%###(modifier)(:name)(:)

Where “###” is a number up to three digits. It is the order of parameters given to a SQLQueryParms object, starting from 0.

“modifier” can be any one of the following:

%Print an actual “%”
""Don’t quote or escape no matter what.
qThis will escape the item using the MySQL C API function mysql_escape_string() and add single quotes around it as necessary, depending on the type of the value you use.
QQuote but don’t escape based on the same rules as for “q”. This can save a bit of processing time if you know the strings will never need quoting

“:name” is for an optional name which aids in filling SQLQueryParms. Name can contain any alpha-numeric characters or the underscore. You can have a trailing colon, which will be ignored. If you need to represent an actual colon after the name, follow the name with two colons. The first one will end the name and the second one won’t be processed.

4.2. Setting the Parameters at Execution Time

To specify the parameters when you want to execute a query simply use Query::store(const SQLString &parm0, [..., const SQLString &parm11]). This type of multiple overload also exists for Query::storein(), Query::use() and Query::execute(). “parm0” corresponds to the first parameter, etc. You may specify up to 25 parameters. For example:

StoreQueryResult res = query.store("Dinner Rolls", "item", "item", "price")

with the template query provided above would produce:

select (item, price) from stock where item = "Dinner Rolls"

The reason we didn’t put the template parameters in numeric order...

select (%0:field1, %1:field2) from stock where %2:wheref = %3q:what

...will become apparent shortly.

4.3. Default Parameters

The template query mechanism allows you to set default parameter values. You simply assign a value for the parameter to the appropriate position in the Query::template_defaults array. You can refer to the parameters either by position or by name:

query.template_defaults[1] = "item";
query.template_defaults["wheref"] = "item";

Both do the same thing.

This mechanism works much like C++’s default function parameter mechanism: if you set defaults for the parameters at the end of the list, you can call one of Query’s query execution methods without passing all of the values. If the query takes four parameters and you’ve set defaults for the last three, you can execute the query using as little as just one explicit parameter.

Now you can see why we numbered the template query parameters the way we did a few sections earlier. We ordered them so that the ones less likely to change have higher numbers, so we don’t always have to pass them. We can just give them defaults and take those defaults when applicable. This is most useful when some parameters in a template query vary less often than other parameters. For example:

query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res1 = query.store("Hamburger Buns", "item"); 
StoreQueryResult res2 = query.store(1.25, "price"); 

This stores the result of the following queries in res1 and res2, respectively:

select (item, price) from stock where item = "Hamburger Buns"
select (item, price) from stock where price = 1.25

Default parameters are useful in this example because we have two queries to issue, and parameters 2 and 3 remain the same for both, while parameters 0 and 1 vary.

Some have been tempted into using this mechanism as a way to set all of the template parameters in a query:

query.template_defaults["what"] = "Hamburger Buns";
query.template_defaults["wheref"] = "item";
query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res1 = query.store();

This can work, but it is not designed to. In fact, it’s known to fail horribly in one common case. You will not get sympathy if you complain on the mailing list about it not working. If your code doesn’t actively reuse at least one of the parameters in subsequent queries, you’re abusing MySQL++, and it is likely to take its revenge on you.

4.4. Error Handling

If for some reason you did not specify all the parameters when executing the query and the remaining parameters do not have their values set via Query::template_defaults, the query object will throw a BadParamCount object. If this happens, you can get an explanation of what happened by calling BadParamCount::what(), like so:

query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res = query.store(1.25); 

This would throw BadParamCount because the wheref is not specified.

In theory, this exception should never be thrown. If the exception is thrown it probably a logic error in your program.

mysql++-3.2.2+pristine.orig/doc/html/userman/configuration.html0000755000372000001440000003000312502417165024115 0ustar robertousers8. Configuring MySQL++

8. Configuring MySQL++

The default configuration of MySQL++ is suitable for most purposes, but there are a few things you can change to make it meet special needs.

8.1. The Location of the MySQL Development Files

MySQL++ is built on top of the MySQL C API. (Now called Connector/C.) MySQL++ relies on this low-level library for all communication with the database server. Consequently, the build process for MySQL++ may fail if it can’t find the C API headers and library.

On platforms that use Autoconf[19], the configure script can usually figure out the location of the C API development files by itself[20] It simply tries a bunch of common installation locations until it finds one that works. If your MySQL server was installed in a nonstandard location, you will have to tell the configure script where these files are with some combination of the --with-mysql, --with-mysql-include, and --with-mysql-lib flags. See README-Unix.txt for details.

No other platform allows this sort of auto-discovery, so the build files for these platforms simply hard-code the default installation location for the current GA version of Connector/C at the time that version of MySQL++ was released. For example, the Visual C++ project files currently assume MySQL is in c:\Program Files\MySQL\MySQL Server 5.1. If you’re using some other release of MySQL or you installed it somewhere else, you will have to modify the build files. How you do this, exactly, varies based on platform and what tools you have on hand. See README-Visual-C++.txt, README-MinGW.txt, or README-Mac-OS-X.txt, as appropriate.

8.2. The Maximum Number of Fields Allowed

MySQL++ offers two ways to automatically build SQL queries at run time: Template Queries and SSQLS. There’s a limit on the number of fields these mechanisms support, defaulting to 25 fields in the official MySQL++ packages.[21] The files embodying these limits are lib/querydef.h and lib/ssqls.h, each generated by Perl scripts of the same name but with a .pl extension.

The default querydef.h is small and its size only increases linearly with respect to maximum field count.

ssqls.h is a totally different story. The default 25 field limit makes ssqls.pl generate an ssqls.h over 1 MB. Worse, the field limit to file size relation is quadratic.[22] This has a number of bad effects:

  • Generating header files to support more fields than you actually require is a waste of space and bandwidth.

  • Some compilers have arbitrary limits on the size of macros they’re able to parse. Exceeding these limits usually causes the compiler to misbehave badly, rather than fail gracefully.

  • Because it increases the size of two key files used in building MySQL++ itself and programs built on it, it increases compile times significantly. One test I did here showed a tripling of compile time from quadrupling the field limit.

  • More than 25 fields in a table is a good sign of a bad database design, most likely a denormalization problem.

The default limits try to mitigate against all of these factors while still being high enough to be useful with most DB designs.

If you’re building MySQL++ from source on a platform that uses Autoconf, the easiest way to change these limits is at configuration time:

./configure --with-field-limit=50

That causes the configuration script to pass the -f flag to the two Perl scripts named above, overriding the default of 25 fields. Obviously you need a Perl interpreter on the system for this to work, but Perl is usually installed by default on systems MySQL++ supports via Autoconf.

On all other platforms, you’ll have to give the -f flag to these scripts yourself. This may require installing Perl and putting it in the command path first. Having done that, you can do something like this to raise the limits:

cd lib
perl ssqls.pl -f 50
perl querydef.pl -f 50

Note the need to run these commands within the lib subdirectory of the MySQL++ source tree. (This is done for you automatically on systems where you are able to use the Autoconf method.)

8.3. Buried MySQL C API Headers

It’s common these days on Unixy systems to install the MySQL C API headers in a mysql directory under some common include directory. If the C API headers are in /usr/include/mysql, we say they are “buried” underneath the system’s main include directory, /usr/include. Since the MySQL++ headers depend on these C API headers, it can be useful for MySQL++ to know this fact.

When MySQL++ includes one of the C API headers, it normally does so in the obvious way:

#include <mysql.h>

But, if you define the MYSQLPP_MYSQL_HEADERS_BURIED macro, it switches to this style:

#include <mysql/mysql.h>

In common situations like the /usr/include/mysql one, this simplifies the include path options you pass to your compiler.

8.4. Building MySQL++ on Systems Without Complete C99 Support

MySQL++ uses the C99 header stdint.h for portable fixed-size integer typedefs where possible. The C99 extensions aren’t yet officially part of the C++ Standard, so there are still some C++ compilers that don’t offer this header. MySQL++ works around the lack of this header where it knows it needs to, but your platform might not be recognized, causing the build to break. If this happens, you can define the MYSQLPP_NO_STDINT_H macro to make MySQL++ use its best guess for suitable integer types instead of relying on stdint.h.

MySQL++ also uses C99’s long long data type where available. MySQL++ has workarounds for platforms where this is known not to be available, but if you get errors in common.h about this type, you can define the macro MYSQLPP_NO_LONG_LONGS to make MySQL++ fall back to portable constructs.



[19] Linux, Solaris, the BSDs, Mac OS X command line (as opposed to the Xcode IDE), Cygwin... Basically, Unix or anything that works like it.

[20] I don’t say “Connector/C” here because the name change generally hasn’t percolated out to Unixy systems. It’s more commonly used on Windows systems, since the separate Connector/C download lets them avoid installing a MySQL server just to get development headers and libraries.

[21] If you’re using a third-party MySQL++ package, its maintainer may have increased these field counts so the resulting headers more closely approach the size limit of the compiler the package was built with. In that case, you can look at the top of each generated header file to find out how many fields each supports.

[22] The file size equation, for you amateur mathematicians out there, is Nlines = 18.5f2 + 454.5f + 196.4, where f is the field count.

mysql++-3.2.2+pristine.orig/doc/html/userman/licenses.html0000755000372000001440000010563612502417165023072 0ustar robertousers11. Licensing

11. Licensing

The primary copyright holders on the MySQL++ library and its documentation are Kevin Atkinson (1998), MySQL AB (1999 through 2001) and Educational Technology Resources, Inc. (2004 through the date of this writing). There are other contributors, who also retain copyrights on their additions; see the ChangeLog file in the MySQL++ distribution tarball for details.

The MySQL++ library and its Reference Manual are released under the GNU Lesser General Public License (LGPL), reproduced below.

The MySQL++ User Manual — excepting some example code from the library reproduced within it — is offered under a license closely based on the Linux Documentation Project License (LDPL) v2.0, included below. (The MySQL++ documentation isn’t actually part of the Linux Documentation Project, so the main changes are to LDP-related language. Also, generic language such as “author’s (or authors’)” has been replaced with specific language, because the license applies to only this one document.)

These licenses basically state that you are free to use, distribute and modify these works, whether for personal or commercial purposes, as long as you grant the same rights to those you distribute the works to, whether you changed them or not. See the licenses below for full details.

11.1. GNU Lesser General Public License

Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.

To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author’s reputation will not be affected by problems that might be introduced by others.

Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.

We call this license the “Lesser” General Public License because it does Less to protect the user’s freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.

For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.

Although the Lesser General Public License is Less protective of the users’ freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a “work based on the library” and a “work that uses the library”. The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

GNU LESSER GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called “this License”). Each licensee is addressed as “you”.

A “library” means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The “Library”, below, refers to any such software library or work which has been distributed under these terms. A “work based on the Library” means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term “modification”.)

“Source code” for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library’s complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) The modified work must itself be a software library.

b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a “work that uses the Library”. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a “work that uses the Library” with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a “work that uses the library”. The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a “work that uses the Library” uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or link a “work that uses the Library” with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer’s own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable “work that uses the Library”, as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user’s computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

For an executable, the required form of the “work that uses the Library” must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

<one line to give the library’s name and a brief idea of what it does.>

Copyright © <year> <name of author>

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the library, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker.

<signature of Ty Coon>, 1 April 1990

Ty Coon, President of Vice

That’s all there is to it!

11.2. MySQL++ User Manual License

I. COPYRIGHT

The copyright to the MySQL++ User Manual is owned by its authors.

II. LICENSE

The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents.

A. REQUIREMENTS OF MODIFIED WORKS

All modified documents, including translations, anthologies, and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified.

  3. Acknowledgement of the original author must be retained.

  4. The location of the original unmodified document be identified.

  5. The original authors’ names may not be used to assert or imply endorsement of the resulting document without the original authors’ permission.

In addition it is requested that:

  1. The modifications (including deletions) be noted.

  2. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document.

Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works.

All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format.

mysql++-3.2.2+pristine.orig/doc/html/refman/0000755000372000001440000000000012502417165020157 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/html/refman/ftv2blank.png0000644000372000001440000000012612502417165022555 0ustar robertousers‰PNG  IHDRɪ|IDATxíݱðøScOx@ –¨y}IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1tiny__int-members.html0000755000372000001440000003344212502417164027615 0ustar robertousers MySQL++ Reference Manual
mysqlpp::tiny_int< VT > Member List

This is the complete list of members for mysqlpp::tiny_int< VT >, including all inherited members.

operator bool() const mysqlpp::tiny_int< VT >inline
operator int() const mysqlpp::tiny_int< VT >inline
operator value_type() const mysqlpp::tiny_int< VT >inline
operator!=(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator%(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator%=(int v)mysqlpp::tiny_int< VT >inline
operator&(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator&=(int v)mysqlpp::tiny_int< VT >inline
operator*(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator*=(int v)mysqlpp::tiny_int< VT >inline
operator+(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator++()mysqlpp::tiny_int< VT >inline
operator++(int)mysqlpp::tiny_int< VT >inline
operator+=(int v)mysqlpp::tiny_int< VT >inline
operator-(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator--()mysqlpp::tiny_int< VT >inline
operator--(int)mysqlpp::tiny_int< VT >inline
operator-=(int v)mysqlpp::tiny_int< VT >inline
operator/(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator/=(int v)mysqlpp::tiny_int< VT >inline
operator<(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator<<(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator<<=(int v)mysqlpp::tiny_int< VT >inline
operator<=(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator=(int v)mysqlpp::tiny_int< VT >inline
operator==(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator>(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator>=(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator>>(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator>>=(int v)mysqlpp::tiny_int< VT >inline
operator^(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator^=(int v)mysqlpp::tiny_int< VT >inline
operator|(const this_type &i) const mysqlpp::tiny_int< VT >inline
operator|=(int v)mysqlpp::tiny_int< VT >inline
this_type typedefmysqlpp::tiny_int< VT >
tiny_int()mysqlpp::tiny_int< VT >inline
tiny_int(value_type v)mysqlpp::tiny_int< VT >inline
value_type typedefmysqlpp::tiny_int< VT >
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized__inherit__graph.png0000644000372000001440000001462712502417165033271 0ustar robertousers‰PNG  IHDRË»D»ý¥bKGDÿÿÿ ½§“LIDATxœíÝ{Tgúð7 ,(áÎñ‚€rPät·^Ί•…f)./¨€@Ë¥ ¸V¨—ÚJ=¶ Z­+•"âY©Z«¨(F´–;"T’4€ ¹Ìüþ˜þÒ‘@ˆ–!¤û|޼y3ïÌ33_æ’`h8Ž#(C×tàO¨ Ô‚„jéhº€Äbq}}=†aš.Dû888hºŠÆ\„Baww·™™™¦ Ñ2ýýýííí0u9;;kº-óìÙ³GiºŠAÀ} $ P ¨ ÔúŸHXCCFÓt¯ƒ%QäÏ“°¦¦&‹¥é*T!Whbb²iÓ&ÍÖ3:þ< Ã0¬»»[ÓU¨B®Åb%%%i¶žÑ¡­ +--uqqÑ××·³³ËÉÉAÍ›7!dii‰’Ëå»wïvtt?~üßþö·ªª*byn"·¥Ri||¼………¹¹y||¼T*-))±±±áóù¡ÜÜ\GGǾ¾>™L¶}ûöI“&™™™ ‚¡†+/..ž>}º¹¹ylll?¹BòÖÁ‡~Èb±lmmãââÄb1BˆF£8qÂÉÉiâĉÉÉÉ£tX©€1]]]•••ª—éííÕÓÓKKKãr¹YYY:::½½½õõõŠÝÙ»w¯¹¹yaaaGGGYY™µµ5ñ”@ ÈÈÈ –!·wíÚµ|ùò'Ožp8œ·ß~{óæÍ8އ„„tvvZXXTUUá8¾{÷nggg‡óàÁƒ¹sçÆÅÅ 5œ(†Íf×ÕÕݼyÓÞÞ>!!\!¹èááÑØØÈápfΜ™€ã8BhÅŠ|>?##!ÔÝÝýÇ›FheÂx<“ÉܳgŸÏÇ0¬§§G.—“Ï™££ã‘#GË=zTõÏÒŒ3¸\.Ѿté’««+Žã|>ßÖÖÖÅÅ…8å8ŽOŸ>½°°h?zôHÑVNÃápˆÎ¼¼<{{ûA&‘H Fmm-Ñ_XXhooã8Bˆ8‰!T__¯ú˜@ÂÔ¥æ‘úñÇW¬XahhèæævîÜ9üի¸qãjjj ß»wOuÂôõõÉ×uccc¢ÇŽ £««K±ØƒÔN#‰ˆîß¿¯¯¯?hÂÚÚÚÈKr8}}}ÇB¿üò Ñ©Õ ÓÊû0‘H„aX~~>Ç óññáñxä¦L™rÿþ}ÅǪ^!‹ÅRœB>ŸóæM„P[[[JJЧ§çÆ‰Å¬­­[ZZˆvMMÍW_}¥b8BˆˆB¨®®Ž˜©•YXX0Œ¦¦&âacc£ Ѧӵòì  •û@£ÑØlvAAP(”H$L&ÓÀÀ€xª··!_\\ÜÙÙyáÂ…/¾ø‚xö×_ÍÌÌTn/[¶lË–-­­­ÇËËëàÁƒ†…††ÆÄÄäææVTT”––"„‚‚‚>ûì³ÚÚÚÚÚÚèèèÖÖÖ¡†ýëׯohh¸}ûöÖ­[׬YC®PÉd®Zµ*66¶¹¹¹¶¶vÛ¶mÔ: ÐÜåspj^íóòò¦M›¦««;cÆŒââbÇ¥Ré‚ ŒŒŒp—Éd»wï¶··744œ?>qQÁ_IÉm¡P¸víÚ &˜šš†‡‡÷õõ8p`öìÙ‰Çñ¢¢"+++'‹ãâ⬭­ýýýù|þPÉ•gffNž<™ÅbÅÄĈD"r…ä­óx¼   SSS++« 63&"ÍŒH›gI>ÆþÖˆøÊ¢E‹4]ÈÒÐÐààà0šÇvÌ7­œ%„Qâ­·ÞŠˆˆÐtc$Œæææiiiš®bL€„jAµ a€Z0@­1ú×lš.AË x«`ìs ÓÓÓ£Ñhuuuš.díí=gÎÔ}üñÛcóÐÞ€#ÆÜkúcÙÖ­…GŽ\+*Š™;×NÓµh ¸S—L†ÝAUkºm Sו+…BB¨ à®T*×t9Z¦®Â» !ôòeÿ?<Öt9Z¦–—/%çÎÝ—Éä!ƒVP¥º aj©¨x¨˜e2ìÂ…}}ýš-I[@ÂÔrúôò 2™¼¼|˜Of$lxÁËÊÊÇr9ùeZAÁ¤U aÃ;ž3 ð+W~áóû4Rv„ /?ÿ† òºôÙ³÷•;Á°atvþZUÕ¤üÎŽã§OßÖHIÚ6ŒÒÒc£„aø;­\®`ôKÒ.°aT/ƒ)ÃqTZ å0ÆÜg+Æ:YYm™ ‹¥FFzŠgáU±aÁg+^CIIMdäÑŽŽ}š.D›À, ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P (†SlÊ”)šÞÅC§èéMÒt#)>>žêPþÿ¸¶´´lذaþüùTo¼®½{÷¶´´P½•ÑøŸ‚çÍ›ççç7 ¯%??¶÷a€Z0@-H $ PëÏŸ°††ùÛGÿÚ`Fjå*Œì^Œ&øÖ™×öÓO?M:u6ÔÔÔ4gΜ/^ „LLL6mÚ4 q°×ffffii9 Â0¬»»›h³X¬¤¤¤QØèˆ³$F;|ø°“““™™YRRRNNÎÔ©S?ÿüs„PlllXX±doo¯Á½{÷B¥¥¥...úúúvvv999! ÃRRRœœœÆ?þüÊÊJòÌBL4ÅÅÅÓ§O777íïï´½:+©3C•””ØØØðù|„Pnn®££c__ŸL&Û¾}û¤I“ÌÌÌ‚ƒƒ‚ß¾*P*•ÆÇÇ[XX˜››ÇÇÇK¥ÒA˘7oBˆH3¹@ðᇲX,[[Û¸¸8±XLÃ'N899Mœ8199y„ÎÌH úM„P^^Þ°Ëøûû …ÂÌÌL„ÐÊ•+…Bazz:BèÅ‹W®\155•J¥8Ž?~ÜÙÙðÞÞ^==½´´4.—›••¥££ÓÛÛ›žžnnn^XXØÑÑQVVfkk‹ª¯¯'v“h°Ù캺º›7oÚÛÛ'$$ Ú‰ã¸@ ÈÈÈ Ê#·B555=¯"ž  éìì´°°¨ªªÂq|÷îÝÎÎÎçÁƒsç΋‹#–ܵk×òåËŸŸokkëââBœrǧOŸ^XXH´=z¤hϘ1ƒËåíK—.¹ººª¨èQ´% ƒÁ¨­­%ú ‰‚B•••äã¦ú˜ã£•°11K"„Æb2™Ú!ƒ±lÙ²ÂÂÂ/^TTT"„&L˜PYYyóæM[[Ûwß}÷Úµkt:½©©ÉÕÕU±Nå 9883f<}úTEçP”OÑobbþðáè¨(¢§µµU±f''§¥K—í––+++â÷Ð÷Þ{¯¹¹Yý2ºººärù´iÓˆ‡öööŠ%­­­ÉÇmŒ+ SÍÏϯ¨¨èÔ©S , æ>‘H„aX~~>Ç óññáñx666÷ïÿþ¥µ>T^q1@ÕÕÕ§d¨Î×ÕÖÖ–’’âéé¹qãF¢ÇÚÚZñÖrMMÍW_}E´Y,–"¦|>ÿæÍ›ê—aaaÁ`0šššˆ‡666D›N‹gs,Ö¤ÌÍÍM&“íØ±#((ˆè¡Ñhl6»  @(J$&“i``_\\ÜÙÙyáÂ…Í›7+¯jýúõ ·oßÞºuëš5k†êüõ×_‰›Âm„ÐóçÏ;_…Â0,444&&&77·¢¢¢´´!ôÙgŸÕÖÖÖÖÖFGG·¶¶kX¶lÙ–-[Z[[9Ž——×ÁƒUÔÖÛÛK®ŸÉd®Zµ*66¶¹¹¹¶¶vÛ¶mÄE}ì¢zFê݇)~¦‡jGFFŽ7N(*FåååM›6MWWwÆŒÅÅÅ8ŽK$’;vL:ÕÈÈhþüù'OžDJ÷a™™™“'Of±X111"‘hÐNüÕ;kr{¨cxàÀÙ³gK$Ç‹ŠŠ¬¬¬x<žX,Ž‹‹³¶¶666ö÷÷çóùÄJ„BáÚµk'L˜`jjÞ××7hR©tÁ‚FFFjàñxAAA¦¦¦VVV6l 긩ð?t§¯Ž­[·¼ÖòYQ~¨¢sôi¤ŒÑI˜¼â*‹;::>œ››«éZÀkÓ‚û°ªªª¿þõ¯¡¡¡‹-ú#ëyë­·"""Ôé}c¤ *Ðð!î-Fl4Z^^ÞÊ•+)Ý xÄI9uê¥[Ñ‚kÐj0@-H $ Pk4îôgÍšeaaAéVF †ÑétLÓUŒŒ,\¸ê;}Ê_ûä“OÚÚÚ¨ÞÊèèîWW7aÎ.ƒAíåèX¸pá(üŽOù5ìÏ$00½²òñþý~~ïhº­÷aê^^½Z‡­¨è®¦kÑ&0u•”Ô „¯]ûåùó W£= aê:}ú6qGA£ÑΞ½?ìò€ SKG‡ ººÃ0„†aùù·5]‘Ö€„©¥¸øƒAGˆ†Â0tÿ~[[OÓEiH˜ZòóoËårÅCzqñ= Ö£E aë«ë|ü˜K~UG&“Ÿ:¥Z aÃ+)©a2äG ]s5U’„ Çñ¼¼[R©|@¿®®L”ꀄ ƒÃyÚÞÎWî—Hdùù·á‘aA†qæÌ]&sðwo;:wï>åz´$lEEwår¹®®Žò?„hee5š.p¬Ó‚¿5Ò¬ÈH÷îîßþ&¶­wãFãÊ•¿¿í½`ƒ†êÒðÙŠ×PRRy´£cŸ¦ Ñ&0KjAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ô‚„jAµ a€Z0@-H $ P ¨ Ôzåÿ@¼|ùrCCƒ¦Jûjk…¡C‡iº1ÍfO™2å÷Ç8‰Žü§›àò÷÷%Täçd2ÙöíÛ-Z¤¡Ú€ÖûòË/e2¹îõ a€Z0@-H ÖØJX{{»»»û®P,§¥¥………y{{GFFž8q‚øšÈ¡6äîîÞÞÞþÆ›swwOHH EÁkí‘ê­º*ÕëW<ûÇì¯al%ld½|ù2""âñãLJ ¼téR\\ñeʃڰaƒ‰‰‰ú›àr¹|ð¹çÊ•+•••o<\###ÿ£jŽ}æÀŽ;fbb²wï^:޲µµ}çwÖ®]{þüyWW×A‡,Y²äµ6a˜P($÷øøø|ûí·®®®'N|ƒá*‡‡‡¥èTsìè{ík˜»»ûùóçCBB|}}OžÍårÓÓÓ¿ùæ›»wïfggŸ>}úêÕ«‰‰‰ûöíkkk;~ü8Bè»ï¾Cþ~@éôÍ›7WWW_¼xqÀ¦÷ïßÿüùó´´´]»vݾ};77Wy8Ù?þxðàÁˆˆˆôôôžžEÿ £^¾|ùÅ_888?~<***##C  ºÚòòòòòò‹/º¹¹)®ÙÊû[PP——ž““”––6èÚ†õ& [µj•›ÍFxyy!„zzzfΜ©££ÃápBl6›F£I¥RÇE"‘®®®——Wii©žž^AAAdd¤›››©©éܹs×­[§¼¡¨¨([[[''§uëÖ).<ʆ††‹/&ž%·E£Ñ÷aÑÑÑŠU ¸y:þüúõëÍÍÍíìì"""nݺUVVjgg7uêÔM›69;;µ [[Ûððð<{öLÑ)“É._¾ceeegg·víZÅ Å×××ÈÈèÿøBhØÉTWW7+++66ÖÔÔÔÜÜ!Ô××§bù³gÏ>{ö,::z¨ý-))!Ÿ 7ždßä>ÌÀÀ!D¼‰In#„ètº››ÛÕ«Wíì쪫«7n܈?~ü¾}ûNŸ>íèè0wî\.—K¾ÀØÙÙ)oÈÖÖ–hLš4éùóç*:•Mœ8±¡¡á/ù ¹¿¡¡ÁÑÑQyUÝÝÝäÅ:;;—/_®xhhh(•JËOž}J4ÚÚÚLMMUtÊÓÓóرcäßÅbqnnîœ9s”WeaaAkll|üøñÊÊÊÊÊÊÒÒÒï¾ûÎÔÔ´³³“x¶¡¡˜%‡B£Ñ6mÚT[[{öìY¢g„ t:ËýíËç;::ˆ©^‰êÈúûûV¯^}èСÿûß*–‰D;wîܲe ¹åýµ´´ö©cäæââ"—Ë=JL£!õêÕ¾¾>©Tª£££§§÷þû罹¦^¿~ÇãݺukÐĤ¤¤´··?~ü833ó½÷Þª³¯¯¯¬¬Œx–Ü áóùŸ|òÉ­[·ž>}zíÚµ¨¨(‹¥øU?55U±*b¢WpssËÈÈèêêjjjúôÓOÏœ9Ãf³333››››››÷ïßßÕÕ¥XX$)oeeuêÔ)â¡ŽŽŽ»»ûþó.—ÛÜÜœ••åéé©bø°Œ’J¥2™LGGG"‘dgg#„^¾|9èÀo¿ývñâųgÏV½¿K–,!Ÿ â7¹70ò¯VÐéô… ^¼xqáÂ…D®®î–-[ÒÓÓŸ={fmm½}ûv]]ÝU«VÉåòƒ bîß¹sç€UyzznܸQ,{xxÓÊ€N„@ سgqûEn:t(;;;--­££ÃÊÊÊÃÃÃÏÏO15x{{ÇÅʼnÅb6›½råJò¦ÃÂÂRRR>úè#¶pለ:.‹ãããÅbñ¼yó"""B–––³fÍZ¾|ù¹sç”…ϵk×îܹC<\¿~}JJJdd$“ÉüûßÿÈ`0T Ê 522ŠŠŠÚ¹sç¸qã<<<>ýôÓ””åáååå—/_NOO'÷(ï/“É”J¥©©©ÝÝÝÓ¦Mûüóωßa_×+ß‘K£ÑFäÓ;™™™Û¶mSH{{ûš5k·ÛªèYîîîÇ·±±¡nn_~ù¥™™™âÊF|–”H$\.÷üùóÿüç?GvÍ£€ø|/| sdpÂ~þù爈ˆ÷ߨÍÕdhhèãã£NçHiii‰‹‹[¼x1ñ«>)”Ì’àå³$@µ a€Z0@-H ù' †¦ËZoõêÕCþEîåË—Éo·ð|˜…¦üQLF܇jAµ a€Z0@­ÿ§:Ên{TôŒIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1StoreQueryResult__coll__graph.png0000644000372000001440000007321312502417165032020 0ustar robertousers‰PNG  IHDR8Üè†_bKGDÿÿÿ ½§“ IDATxœìÝwXSgû8ð; aÏ$ [† âÄV«VQ;h«ÖªuµŽZñõ«ÔQ­­­oÔþ^Wµn-GˆêlÙ#;ç÷DZiLa„q®^½Nž<ç9÷9 9wÎ3hAB!„Bu$t]€B!„Bê0QA!„Bu8˜¨ „B!„:LTB!„BŽž®@¡æ }úô©®£@›ÍÞ±c‡£££®A!ÔÎú…ê\h4š¿¿¿ƒƒƒ®AÒ‰'¢¢¢BBBtB¡Fà„Pç³dɼÑD-C£ÑtB¡&Á1*!„B¡„B!„P‡ƒ‰ B!„B¨ÃÁD!„B!Ôá`¢‚BÍ“™™Ùº²ëêêÂÂÂ|}}MLL ôßÿþW&“µg$ªíШ¼ù!šB!8ëBéVMMÍàÁƒy<ÞÆ{ö왚šºfÍšØØØ«W¯2 ÍúÙÙÙƒ.//ssóåË—·zHIII...­Þ¬¦v8„B&*!¤KëÖ­ãp8qqqdZâáá1nܸ>}ú8pà‹/¾Ð¬¯P(***Èmkkë 6´zHÇÆÆ¦Õ›ÕÔç‚B¨ó®_¡.ˆF£íß¿ßËË‹ÃálذáÈ‘#...fffkÖ¬€ÐÐÐ9sæ5kkk >|çÎóñña³Ù={ö>^µ{Ù[)&&¦W¯^\.744T,SÂë]›T·#""¾ûî;Õ‡'FFFaaa”Mùûû™H¨¶SUU5sæLkkk{{ûeË–‰D"ò:DFFzyyYZZnÚ´‰¬yþüy???CCC[[Û¦çgÏžµ³³ãóùpìØ1ºº:™L¶víZGGG‡óùçŸWUU‘•¥RiXXÇãr¹aaaR©´ÎEóG†B¨ë B¨S€¨¨¨FëL™2E ìÝ»BBBÁîÝ» ¼¼==½ÚÚÚÝ»ws¹Üèèè .ØÛÛ@FFùÇ“Ü;vlzzú­[·ÜÜܾÿþ{ÊB‚ ªªªöìÙC†§Ü&ïûËÊÊÔâOLLäñxZÚ'«©nO:uôèÑYYY)))}úô! AAA|>Ïž=PQQ!X,ÖìÙ³ """ ´´TµHNN®yùÖçŸ>cÆŒââbwûöm‚ 6oÞìíí’’òøñã!C†,[¶Œ¬¹qãÆI“&½xñ"%%¥ÿþ+V¬h‹s¡ü‘µÊïB¡Ž„P'ÓÄDåÁƒAH$µíŒŒ ™LfccGÄûï¿¿a *++™Lfxx8ŸÏW(555r¹ÜÛÛûàÁƒÊf:¤™¨¤¤¤ïFEE¹¹¹Q6gC‰Êßÿmmm­¥}²D¹-‘H Fjj*YMâããUÏ],?}ú´¶¶V.—'$$…j‰JC_iñù|{{{2s ¢W¯^ÑÑÑäö“'O”ÛžžžEEEävlll¿~ýÚâ\(d ]j%LTB¨³À®_¡®ÉÄĘL¦Ú60Œ‰'FGG———_½zuêÔ©`aaëÖ-{{û#FܸqƒN§ggg÷ë×OÙ¦æÜÝÝÉ OOÏ‚‚-…šÌÍÍmll’““ÕÊ“““ Ðô¦JJJär¹««+ùÒÍÍMY³GªçÎb±ÒÓÓÇ?`À€ƒR¶–‘‘¡öQ¡Œvîܹiii , Kòòò”áyyyM˜0ÜÎÍ͵µµ%g ÈÉÉi‹s¡ü‘Q¶‰B¨3¿é¡î(88øôéÓÇ6lÙ¡K(*Š'NTVVΙ3'00°²²ÒÎÎîÑ£GʽÒÒÒ4›"@zz:y'ÝP!¥©S§®[·N.—+Kêêê6nÜ8~üø¦7Åãñ Fvv6ù2++ËÎÎŽÜV»w …!!!aaa<عs§–À4åççoß¾}̘1K—.%Kzôè‘››Kn'''¯_¿žÜ&‘IŸÏ¿uëV‹æ¬Yg„B¨#ÃD!Ô >\&“­[·núôéd F;vì©S§D"a2™†††³gÏ ‹‰‰)..¾téÒŠ+4›Z¼xqffæÝ»wW­Z5mÚ´† «««É3jÛß}÷]iiéèÑ£/]º”‘‘qúôé!C†ØÙÙ)ŸZP¶_[[«“ÉœÝÊÊÊÖÖvÉ’%äA)Ï}Ë–-–––;wîœ2e —ËmÊ•mÛ¶ùúúJ$‚ NŸ>mkk[YY)‰–-[Ö£G33³)S¦ðù|²@0kÖ, ++«¹sçÖÕյѹhþÈZå÷!„PG@#øXB¡Ž‰F£EEE…„„¼a;ß~ûmnnndddÓwÉÌÌtwwWþÙT{©¥°eZ±)ë8çÒZ¿?!„Ú.øˆêvD"Qaaáþýû;¦ëXB!D Ǩ „ºÛ·o8pöìÙ#GŽ|“vLMMçÍ›×”ÂVl¿“êJç‚B¨}`×/„P'ƒ]wЛÀß„ê,ð‰ B!„B¨ÃÁD!„B!Ôá`¢‚B!„êppÖ/„B:V[+„t:ÍÆÆL×± „ê(0QAu>qqqUUUºŽ5N.'22j…B¹X¬‰"‘œüO(T…ä¶B*U³ºÐé°j•§žM×Q#„êpÖ/„P'ãè蘟Ÿ¯ë(P“°XöVVA@ ‚FZC½Že²Ê²²ÃmƒÁHHHxûí·Ûú@!„Þ&*!„ÚÐÍ›é FTUÕK¥r-Õ˜LÆüù£V®ü ÝC!ÔÁá`z„BmhØ07V}ð/F£5Ü«K*•åÙŽq!„êè0QA!Ô¶LMÙ;wNßµës##6“I=6R__¯¨¨ººº¾cC!Ôaa×/„Bí¤ €¿pá‘û÷sŠ×>zètzæ%%Õ 1`€óèÑ^ï¾ëÕ»wm`Buu˜¨ „j? ±ÿ~ˆ¹\A2ôŸ tçNöõëéW®¤fd”XX æ>|¸G@€7gªÓ¨Bé&*!„ÚÛ£Gù .(¨”É^å*÷ﯵµ5WVÈË«¸q#=66íúõçR©¼OûáÃ=zèB§ãc„ê0QA!¤55¢ï¾;u‡F£9:Zþý÷jÊj"‘ôîÝœ+WÒ._~\PÀ·´4zûm÷1czëmffØÎ1#„jO˜¨ „Ò™óç-]úÇŒo¯Zõ¡öš ñøqÁµkO¯]{òðá ==†¿¿ëèÑ^ÞÎÎÖí-B¡ö„‰ B!]‹e ]O¯³PVVÖýõ׳¸¸'ýõœÏ¯suåô=Ú{ð`&“Ñv¡"„jO˜¨ „êÄž?/¾z5íÊ•´û÷sY,½Aƒ\¼ßß§GóÆwF!Ôa¢‚B¨+¨¨¨½víéÕ«Ož "›€ïwÞñ:Ô­YkBu˜¨ „êRd2ѹ±±O._~œ™Yª?n\_SS¶®£C!ÔT˜¨ „êš‚HM}›võê“””|}}æ°aîcÆô3¦·êTÈ!„:<Bu}ee5qqO®^}rýúóº:Iß¾öÞcÇz÷écG£áÂ,!Ôa¢‚B¨‘Ëii/ccÓÎ{”ž^laaD>f?¾¯‰ v C¡„BÝT^^EllZllÚ­[Yt:mðàž8cBu˜¨ „êêoÜHM»r%U9cX@@ïAƒ\°cBé &*!„Ð+r¹âþýÜØØ'/¦dg—Y[éàýî»^FFúºŽ!„ºLTB! jKIîA>fáñÌtBu ˜¨ „BÚ¼xQ›våJÚ­[Y0dˆëøñ}ÆŽícoo¡ëÐB¨+ÃD!„j@ô×_O/]J½ví©@ ìÓÇnܸ>ãÆõíÓÇNס!„P„‰ B!Ô< ‘šZ›völrFF‰¥¥Ñ»ïzáP„j]˜¨ „B-GÎq|î\²êP–±cûp¹&º !„:7LTB¡VPYY÷äêÕ'qqOÄbYÿþNcÇz××Í«ëÐB¨SÂD!ÔÉH$’?þøC$é:Ô);ÖÙÙ¹MQUU÷äòåÔøøgõõ__‡?ô}ÿ}ggë6=.Bu1˜¨ „:™èèèI“&é: ÔYM™2åèÑ£ís,±XvófúÅ‹/]z\YY×§Ýø~ð/>cA¡¦ÀD!ÔÉ?~|òäÉø· µ@HH?~¼ýýüyñùóɧNÝÏÍ-···7®o` /®|BZèé:„B¨ëëÕ˦W¯ñK—Ž'3–Ó§ìÛw½Gó÷Þó ô8Ð…NÇŒ!„^ƒ‰ B!Ô~Ô2–³g“÷í»neeøÀç£üú÷wÒu€!¤c˜¨ „B:C£ÑüüýüW¯LM}yþ|òùó~ÿ=ÁÑÑêãý>ùÄÏË«‡®cD!ÝÀçË!Ôl™™™­8š¦ÂÀÀàí·ßNNNÖRŸ ˆiÓ¦+K ?ûì3gggccãAƒ>}ºµbkåeQ=#33³?ü0''§Ñ½PŸ>v+V|póæª¿þZ<ðÏ?SFÞ~ù§ŸŽ‹{òÉ'ÛFŽÜøË/—²²JuBµœž!ÔÉt„é‰333ÝÝÝ[+–‘‘áææF¾,--åñx%%%\.õjjGÿúë¯ËËËÿøãe…°°°ää䨨Ø7 ¬¹§©¬¯vF/_¾´··¯®®655më´ÓáôÄo(%%ÿĉ{çÎ=,-­ñð° ô4i ® ‰êÚð‰ B¨k¢Ñhû÷ï÷òòâp86l8r䈋‹‹™™Ùš5k 44tΜ9dÍÚÚZCCÇÀ¹sç|||ØlvÏž=9 …bûöí^^^&&&C‡Wí§Dv[Љ‰éÕ«—Ë ‹Å”…ðz'-ý˜L&‹Å233#_J¥Ò°°0ÇåräR©¿¿?ØØØN:µxñbÕÖ®]»oß>r»ªªjæÌ™ÖÖÖöööË–-‰D …A£Ñ"##½¼¼,--7mÚjÒŒD.—oÞ¼ÙÃÃÃÄÄäí·ß¾}û6å1 ÉdÆÓ‚ÈÝãââoÞ¼ÙÐïCgçããðã<øáÌ™EÇ{<˜øÖ[ëÇß²wïõÒÒ]G‡Bmƒ@¡N%**ª)»`Ê”)`ïÞ½"vïÞ ååå VVVR©” ˆˆˆooo…BQ[[«¯¯¿k×®¢¢¢}ûöéééÕÖÖîÞ½›ËåFGG^¸pÁÞÞ222ÈȱcǦ§§ßºuËÍÍíûï¿§,$¢ªªjÏž=dxªÛœœ\SSSSSóòå˯¾újÖ¬YÊÙ¸qã¤I“^¼x‘’’Ò¿ÿ+V(NŸÏ€ÊÊʆ®ÃÔ©SG•••’’Ò§Oex仪ÛÄçó÷ìÙªïRF²eËÕ‹Ó£G²¾òŒAffæÄ‰Ø”xZYá½÷Þ»víZmm­öߊààààà`íu:±XzåJê¢EîîËíì–|ôÑÿöìI(/¯Ñu\!Ôš0QAu2MOTÛåàð={~3oÞÁ‹SÄb©®ãB¡V€]¿B]–‰‰ 0™Lµm`0'NŒŽŽ.//¿zõêÔ©SÀÂÂ">>þÖ­[ööö#FŒ¸qãNÏÎÎîׯŸ²M͹»»“žžžZ BÞÇQWW7oÞ¼Ù³g+ßÊÍ͵µµ%gÐ P›>Ë‚Çã)Ö“îÞ½;hРúúú’’¹\îêêJ–»¹¹©EB¼žTD”WIf$ùùù ]åI$’¿þú‹¯Òh<-ˆ,÷ôô¤¬ß噚²'O9ïáþûî£ÒÒš/¾8àãóÝÒ¥Q‰‰™ CEub˜¨ „º©àààÓ§O?~|ذad‡.¡P¨P(Nœ8QYY9gΜÀÀÀÊÊJ;;»G)÷JKKÓlŠüRÒÓÓÉûì† ehh8sæÌ´´4e amm­¼éçóù·nÝRÛå£>úå—_TSŽˆˆ©TjhhÈãñ Fvö«™m³²²ìììÈmrÄÈË—/U›¢Óµ}(hFâììÜèÅQ¥%žÇ@–7”ØtVVÆ3f¼ýujêO«Wff–„„ìôö^yãF:ç „:!LTBÝÔðáÃe2Ùºuë¦OŸN–Ðh´±cÇž:uJ H$&“ihh8{öì°°°˜˜˜âââK—.­X±B³©Å‹gffÞ½{wÕªUÊyx5 «««É3jÛjLMMkjjjkkÉ—'N\¹re^^^JJÊøñãwìØ¡Výúõ Ó§OOJJJIIùᇶnݺ~ýz`2™“'O ÍÉÉIMM]½zõÔ©SÍÍÍàðáÃ`ëÖ­^(-‘ÌŸ?_õâ|÷ÝwÚ›¢Œ§Ñ´ÇДݻssÃiÓ†ÆÄ„Þ¹³féÒqÏžMžü¹ËãÇ<ÙC¡Ž¥ýz™!„PkhúåWï mÏŸ?ßÀÀ@ ¨6îêêÊb±<==cbb‚H$ëÖ­sqq166:tèÑ£GAcŒÊÞ½{œœ¬­­-Z$ ) ‰×„¨ ÌP†D„\.755ÍÉÉ!_ ‚Y³fYXXXYYÍ;·®®NmØA¹¹¹AAA=zô011ÝÊÊÊÖÖvÉ’%d$?ýô“¹¹¹««kLL eä¶T*6l˜±±qC‘Èd²Í›7»¹¹ :”|¾¡yFª4ãièR41Í«¡E×£ÒÏž…‡_2äG[ÛÿŒ±!<übnn¹®ƒB¡Æá:*5I«¯›¡Y˜‘‘¡å  ºrEPPÐñãÇUgžmŘ;ŽV\GåÛo¿ÍÍÍŒŒlú.jW•ò"wÕ+ßtÞuTÞœBAÜ»—sîÜ£3gðùu8öûä“þÖÖÆº !„¨a×/„tC¹¹’öõ¹›âäÉ“äÓÔ(‘H”½ÿþ/¿üR×± ÔètÚàÁ=üqÂ;k¶oŸfnnøãg^7þ¡ØØ4©T®ëBHž®@¨›âp8Ê5ì”6lØð&mΛ7oáÂ…#GŽÔl©¹}ûö„ ,X0räÈ7iÇÔÔtÞ¼yM)D¨ƒ00`}òIÿO>éÏç×=›}æÌ}––FŸ|Ò?(h ¯¯ƒ®D¡Wð‰ ê”ÊÊÊêëëÕ ;ïJäš4—ßVVÓ²ø’%K<==çΫÙéèüùó~~~†††¶¶¶ÊtHûk( Í+Öè¦1bDee%9â¼YÈQ”/¹\î®]»ÔêP"ÔÑXX͘ñvLLèƒk/¸};ë½÷¶ øÃúõç³³ËtBá`zÔÙܹsgÆŒ§°°Pí-èœ+‘“¤R©ê˜`-‹‘kY <###==ÝÀÀàÀ„Êpm@Àb±fÏž]PP¥¥¥^1Ê0(¯˜êO!66–Ìj²³³Ûä7 ÉƒéÒÔ=Ó7ݳgE?ýtÎ×w­íÆûW»Gé~Ø£ÎA(>|xðàÁ~~~»wﮩ¡øì„N»9œ;wN5QѲ¹–µÀÉé’þ÷¿ÿ™šš¾xñB¹‹X,~úôimm­\.OHHPÖÔ~Å(à¼bjg÷òå˵k×ÚÛÛ^¾|Y³Âê‰J³&ªjå—PÚÑлÊr R(m³®´i¢žžž7n$ Ï;ׯ_?›ŸþYYsß¾}žžžÖÖÖ?ÿüóáÇMMMW¯^MVH$Ë–-ãr¹gÙ²e‰„ ˆ³gÏöíÛW__ßÅÅåðáÃmtAÈdòëן/Záêú£ãÒÏ?ßsöìC‰DÖvGD!JþSuä—ô3f̸}û¶ê“hl:Ú¯¾újáÂ…eee,+??Ÿ|÷æÍ›AAAFFFÇÿóÏ? ‚000HNNV6KöSKTÈ9^ ‚xôè›Í¦,ÔrF@5y«ê ›ÍV½é433S¾Kžj›r¹|Ĉäãeƒ111Æ ëׯ߬Y³TíWL3 Ê+FI"‘k)zxx¼xñBËÕh.LTÔÕÜ eeeË—/onª‰ ;v¬bÖ•¶NT‚‚‚ø|þž={ ¢¢¢=f¶@xüø=z,éÕkå¢Eׯ?×òG!„ZŽQA‡ÃéÝ»wRRRbbbUUU‹Ûé˜+‘SÒ²y£kÓéô$&&þþûïd‰P( {ðàÁÎ;ß$ Ê+F¹oIIIZZZAAAÿþý š~PÔäÜ ª¬­­[en†âââÖ ²;X¸p¡¹¹ùŒ3 ²²R__ÿÑ£G[·nµµµupp€êêj²fXX˜‰‰ÉçŸ+V¬011!¿DàóùpàÀíÛ·;88ôíÛwãÆ—.]’H$doU6›=kÖ,>Ÿßÿ¬LLØÁÁƒ¢¢\¿¾böìá·neMžüÛ˜1›wíú«´´¦­ŽB˜¨ NÀ××7>>>::úùóç_|ñÅýû÷[ÐN‡]‰\“–å·›²¸‹‹Kxxø/¿üB¾‹Å‰„Åb …µk×@MM“n24à¼bª»(Š+W®L˜0Áßߟ ˆÄÄÄcÇŽY[[7ñÄuçfÀ¹Z ù “É$_²X¬ôôôñãÇ0ààÁƒª5MLL”5U·I¹¹¹¶¶¶4F£äääXXXÄÇÇߺuËÞÞ~Ĉ7nÜ ÓÛïÜÕ•ûÍ7ïݾ½æÔ©¯}}ýõòÀßϘ±÷Ï?Sp^c„PÒÕ£„Z†ÏçoÙ²ÅÕÕ577Wí-è´+‘kVвüv×W(Ê·lÙbiiéàà°sçÎ)S¦p¹Ü¦\1Í0(¯˜ª“'OúûûGFFŠÅâFš-ÓŠ]¿pn†î67C[wýRûGT__¯¯¯£P(„B!4¹×¥½½½êÃ̧OŸÖ××_¿~ ±X|ðàAƒQQQÑF'Ò(‰DvåJêܹ—zx¬À.a¡6‚‰ ê”är9yØ\«V­úì³Ïšµ‹Z×|Êžú]£û~« Gý¶©7OTpn†n;7CSQµ47¡êöÖ‚¬Ë•Íj\3åàóù4íâÅ‹uuuß|óò²4š¨„††åææ>zôhÈ!_ýµP(d³Ù'Ož,++ûý÷ßÙl¶rPœWïÙ“0zô&[Ûÿ¼ýöúðð‹/^è,}Bu=xk…º ¡P˜••ecc߬1QiW 9!*%ªŸuÔžn5£ÑZ~µqn†î<7CC‰Jm±8ãÏŠ›ÿ}5!í÷÷ïÿ÷þ®~Ó¼Ç8”gÝn3uëÑ£«WG{{kg·$$dçñãwêêÚê™*B¨ûÀ•éQw+‘wP…BúNT€¸Ä ùgh¾Ç"¸•¢¾í؇É9tÚ¶P97ƒ¯¯¯6¹¿« IDAT»»»……EËÚ ž:ujïÞ½5çfH$ÇŽ ,--%çfðõõ%÷jhn†¾}û‚ÆÜ š…-cmmïææUUUªããɹ´„GÎÍзo_µ¹Ž?(‹8Ðâ0(¯˜¥¥¥æ¾Ê¹üýý[e¹BJ”¦Õ•$×=¬-M© ä4:Ðh øgÀI3²ajmC¡òtK¹½dÉ’%K–Û ,ÐRSuÛÄÄdÿþýû÷ïWm?$$$$$¤Y!µ‡5kžŸØз¶ ès¨Û7ó~A&W´»víÚ°aÃ&OžçääÔ¬ ÆÄ‰:4iÒ$²„Íf:thùòåùùù={öŒŠŠb³ÙË–-“ÉdK–,)++ëÛ·ï¦M›>ûì3µ¦¦N:f̘ººº)S¦¬\¹²  @³ÊÊʾüòK29QÝnÔO?ý´xñb???:>iÒ¤7’o-\¸\[°¨¨ÈÇÇçèÑ£þþþš-Ì›7/:::66ÌÍÍùå—©S§­\¹rÊ”)ãÇ/))iA”WLu—Ó§O‡‡‡/Z´(**ŠÅb5ådµ3“ظ—Ê¿) _  ä„”0â´ÂÛTCO*ª‘Kí‰Ç3ûâ‹w¾øâ””ü'îíßó×_¯¼ý¶{PÐÀ?ô50èè!ÔAÐÔþœ…„„üý÷ßC‡ÕU@¨ó:qâDTTT‡í™€^#«Q ˆJ_%¢0°—é5 ÎÀõ z†À²}+з}kà÷¯Ú9jÒñãÇ'OžÜŠ·b …B¡Pèé5û ó·ß~›››Ùô]233ÝÝÝ•Á«½ÔRØ=I¥RÕI{ß\HH[fº`è÷O£Ë(dÚ.²¾¹ž™½¾!—iÌeñ˜†\¦1elË2¶Áûìæ‹eW®¤ž¹èߦ°9`3–:Q±Ÿäƒ¾0ºì¢t:½¹KRˆD¢ÂÂÂýû÷;v¬¢BðúÒ"­E¤'fï÷¥MZTYjd©L$W4°ˆ×Dk™PQW&){R—sM"¬)äDA&ìr׬,ȪrÅÆ6,Ck=ÿ¾F__/0°_``¿ââêS§î=z;"âoww^HÈ ààÁ\®‰®DuP8F¡Ni-0©>Ϋý… ®|Õ;KñÏZ~œ·!à&E}‹~ðö o,ËW´hZÿ0 ÀÐþãïjpn†ÎŽm®7`ž­ÏtÞó˜òä%B¾”FÀk±hÐÿK[ëß”ƒPõå2…TAÙ`áګ˳€F§ZëñXF\¦—eÓÏØeŒyÛžLçacc¶páè… G§¤äGDüý¿ÿÅnØðç[o¹M›6tüø¾L&C×"„:Š®_€OTP Ðh4ìúÕ DÅù;ˆÊ@\¢—ƒ¨ Äå`ÑÆß£¨_ŸO6þÓ)K™~p@ß ˜¦í}{hõ®_¨û üŒSH‰¬Ëü{‹j Ä@{5¶že̘‘àÛô–墾LZW&©+–Ö•IêJ¤u¥’ºR©mãÁ¡všõ+ž×çݨ6æ± ,™F<¦%ÓÀ²Û}u(cb?~çþý<Ï,(h`HÈ wwž®ãBuÝîÏ"BíMV¥×ÿ~W9ˆ ª_¹GAŸúÖ`Ò 8ÃAߨ0l`–C¸½MÏ¡®Î¤¹héúžEöeþƒ}ÅÕy"К;åƒE3±c™Ø5uøJM¡$÷Zu}™TX)U†ahÅìÌñ©û;õÄÄÄwß}—\¯³0Æ55ž[·¾Ø¼ykuulû´« Û´i“®£@¨u`¢‚Pó²×³Ž WÐ{9Eeqüõ>Йÿ>ôз#0n` ©qOøðY›†ÒDgÐÜÞ·t{Ï2ïFuò¾b ×¶”å<ÊÜy”9¼z#©+•Ö–HêK¥–ÔÇ}z²üit™‡ehÍ4ä2 ­˜†\¦¡5ÓÔž¥oÚúå/_¾$Ùlõ–µP(‘Hnhøe{´‹Ù²eKnn®®£@¨ÕtÄD¥ug¼QáÍf³û÷ï¿cÇŽ~ýú5TŸ ˆéÓ§Ÿ9s¦¶¶–,),,\¶lYRRRyy¹——תU«&L˜Ð*±5‹ò²¨ž‘©©éðá÷mÛæââ¢}¯ö ³1%ñ}ׂ­®C¡D¼êg%.i Ø}HQET ѯß©g úV`Ü“:Q1r€àê®Ú ¡®†Nï˜9½cÖnd°h&vú&vúÚ«™»èÛ 1­/— ÄÅjëK¥’:9 úºG¿Y6šõëˤr‰ÂÃd°š7Q„ªàààï‹tâÄ ªõuZ1QiuIIIä}|MMÍúõë'OžüìÙ³†¦¨*,,ŒŒŒÌËË#_VTTøùùFEE™˜˜\¼xqÊ”)111ãÆ{è²³³\^^Þ‚}É3"¢¤¤„\ .11‘²¦¹¹ùòåTwÏoCó($O7CÕc›ÑàØîŸÒj`RÝ|È…ÿÞ«äD\N.¬À0€Éõõõ­`øÉ×еßaÐ0KA½!Û&¶^›NC&RÔ•JõM¨ ?ÜWüäDè›êrô ­Y†=#Ëe´¹µ—!å.!ÔÑt‹D…ÃáØØØ€Í¦M›x<^YY—Ë¥¬, @¹jáÚµkGµwï^òeïÞ½‹‹‹ÃÃÃß|ø°³³³©©éêÕ« ‚X´hÑìٳɚ555< âìÙ³}ûöÕ××wqq9|ø0Ar¹|Û¶mžžžÆÆÆþþþ×®]€ŒŒ 20rãÌ™3gÑ¢E"‘ˆ²PY™<¨ê6Ù 2òÊÊJ‹EîB¹$3—Ëåp8Ë–-“H$VVVÀãñÈ 666IIIªç^SS“——Gnóùü3fXYYÙÙÙ-]ºT(j #""ÂÓÓÓÂÂbãÆA¨H3™L¶iÓ&wwwccã·Þz+""þYoXõŒŠŠŠ ¢¢¢ÑxZ¹ûÕ«WnܸÑèoETTÔ¿¯Ëo7‚ˆ£zÄQ="þýï˜>ñøíM©+ºBä!žþJ$KÜšC$|D\~‹8ëNÈEÔõ¯ #®#?#î."RÖÏ·9‘Dá%B!kÞqQ‡tóæM§1E-´téR]ÿ wDI›ó#Æ¥ìøà÷þ÷ÉÿØ C]…š­‰wqu-OT¦L™"ÈG !!!`÷îÝP^^ž`ee%•J ‚ˆˆˆðööV(µµµúúú»ví***Ú·oŸžž^mmíîÝ»¹\ntttaaá… ìííA#Q;vlzzú­[·ÜÜܾÿþ{ÊB‚ ªªªöìÙC†§º ÉÉÉ555555/_¾üꫯfÍš¥<‘7Nš4éÅ‹)))ýû÷_±b…ê=ŸÏ€ÊÊʆ®ÃÔ©SG•••’’Ò§Oexä»jIBPPŸÏß³gTTT¨¾KÉ–-[T/N=àŸD…<#@™™9qâÄ6%žÄ@Vxï½÷®]»V[[ÛèoETT¡yljËCˆH þ`½–¢¼JTXÄíy„ (û›xyžÈ>D<ý•x´š¸³€6pˆ“ÖÄ1&mK\ð!âÆ‰Ÿ÷B‰Ç?Ò:í!!„j:…\Q[")y\ñÓyÐø*u|˜¨ .¦å‰ ù„œ»Pu;##C&“ÙØØÄÅÅñþûïoذ ˆÊÊJ&“Îçó EMM\.÷öö>xð ²ÙC‡i&*)))ä»QQQnnn”…ÚCUellüäÉ廞žžEEEävlll¿~ýTïÝ+++€ÏçS¶,‘H Fjj*ù2::ZY¢–$ÄÇÇ«^%µ$A3Í‹£vFL&sĈä–FãiA jW[;#}xplqÚ‘ˆâ˜EŠòê?:eøÚ–èÄ…¾ÄÕ‘„°˜ºiIuS@!Ô*¢¢¢tž¨¨}B½!ÕN6›ýÖ[o=|ø°UZn(NÕ#š››—––¶ÊµÀDu1-Ÿ ÄÄÄ„¼QVÛƒ1qâÄèèèòòò«W¯N:,,,âããoݺeoo?bĈ7nÐéôììlÕ ¸|||4äîîNnxzzh)lˆ²£T]]ݼyófÏž­|+77×ÖÖ–F£Ñh´€€€œœÕ-,,x<Þ“'OT ïÞ½;hРúúú’’¹\îêêJ–»¹¹©EB¼þwŠ|$¢¼Jj4#ÉÏÏoèâ(ÏH"‘üõ×_nnnÐh<-ˆ,÷ôô¤¬¯æÎà§8õ/²†+*À´7Œ¿çBH |*‚ /áýìVÀÁè!„ÞLRRRQQQQQQJJŠ»»{«¯›mmm­yÄÂÂÂØØØ‚‚‚E‹µâáêZž¨h|úôéãÇ6ŒìÐ%  ʼn'*++çÌ™XYYigg÷èÑ#å^iiišM‘ßU@zz:yŸÝPa£ gΜ™––¦üÛdmm­¼éçóù·nÝRÛå£>úå—_Tÿ–EDDH¥RCCCÇ`0²³³Éò¬¬,;»WËËd2xùò¥jStº¶«­‰³³s£G•–xZYÞPb£fù1È¥|5ï0ô†÷RˆÀr9žqSZF!„Þ9»»û¦M›ÒÓÓËÊZsfÍùiÈ#ÚÚÚ8pãÆ—.]jÅÃ!Ô´U¢2|øp™L¶nݺéÓ§“%4mìØ±§N‰„ÉdΞ=;,,,&&¦¸¸øÒ¥K+V¬ÐljñâÅ™™™wïÞ%çám¨°ººZ97—ê¶SSÓššå)'N\¹re^^^JJÊøñãwìØ¡Výúõ Ó§OOJJJIIùᇶnݺ~ýz`2™“'O ÍÉÉIMM]½zõÔ©SÍÍÍàðáÃ`ëÖ­^(-‘ÌŸ?_õâ|÷ÝwÚ›¢Œ§Ñ´ÇДݕÎ?„;ô0¡&Á[Ç ç¬WI Mh¯Ï/'nû ‘Bµ1¶ÿ~///‡³aÆ#Gޏ¸¸˜™™­Y³BCCçÌ™CÖ¬­­544|øð!œ;wÎÇLJÍf÷ìÙóÈ‘# P(¶oßîååebb2tèÐøøxÕ%233i4ZLLL¯^½¸\nhh¨X,¦,TVVÝ‘2r&“Éb±ÌÌ^ÍY/•JÃÂÂx<—Ë “J¥”qjoÜßßÈ9951 åt£çÏŸ÷óó344´µµUÎÌ©y¸†C¨Që Öô1*ʯÞÚž?¾@ PîåêêÊb±<==cbbÈžKëÖ­sqq166:tèÑ£GAcŒÊÞ½{œœ¬­­-Z¤œÆJ­hò¬_r¹ÜÔÔ4''‡|)fÍšeaaaee5wîܺº:ÍΦ¹¹¹AAA=zô011ÝÊÊÊÖÖvÉ’%d$?ýô“¹¹¹««kLL eä¶T*6l˜±±qC‘Èd²Í›7»¹¹ :”|¾¡yFª4ãièR41†fuµY¿‚PȈò;DÚÏDÜhâ˜> D”I#þ`7±M„Bí¯‰cT ëάC'冿†ÚÁ³gÏF޹nÝ:‚ ‹Åš={vAA9Ÿgii)åá(ÓþÁ1*¨‹ia¢Ò«V­úì³Ïšµ‹Ú?rÊ»äÖ]‡ZE¢¢J&$Šãˆä•ÄÅþDŒK;Æ…B¨yšž¨tÕ™u(ãln¢¢ÊÔÔ”ü®P,?}ú´¶¶V.—'$$gJy8ÊÀ´ÿD0QA]L›tý‰DÙÙÙû÷ïÿòË/Û¢}Ô)1ØÀ{|ÿ ãïÃGÙºŽ¦å´ô%hí‡hè]²ü?þ l399¹µbF!¥®:³eœª­Mˆ¯zÄåË—¿ûî»A°X¬ôôôñãÇ0ààÁƒd͆§}Ê„º¼6ITnß¾=pàÀÙ³g9òMÚ1557o^S ê¼”Ñ(™››/_¾¼e­}üñÇd#III lÓÛÛ»U£FQÓœú©;ë¼3ëPÆIV¦œ/§Ñ#~ùå—ùùù¥¥¥B¡0$$$,,ìÁƒ;wî$+4t¸F§üA¨kk“DeĈ•••äˆóf!ŸÛ*_r¹Ü]»v©Õ¡,D¨óRND£dmm­^Ù\d#”m6qê6„ÐÒœú©;ë¼3ëPÆÙ”ùr”m@YYYqqqqqñ‹/6nÜèààÀápÄb±D"a±XB¡píÚµPSSCy8ÊÀšý3@¨SSë †½Q‹ö1*m£´´´®N}}zØ·oŸ§§§µµõÏ?ÿ|øðagggSSÓÕ«W±hÑ¢Ù³g“5kjj È~ÕgÏžíÛ·¯¾¾¾‹‹ËáÇ ‚ËåÛ¶móôô466ö÷÷¿víht›>s指‡‡ÃY´h‘H$¢,$š<Ùƒf‰D²lÙ2.—Ëáp–-[&‘H”ïÊd²M›6¹»»¿õÖ[ä LÊF:놢Õ<(åõiôP7dee<hûwm§écTºêÌ:”qTóå(¢6?ê½N÷ññ¹uëùÖ–-[,--vîÜ9eÊ.—ÛÐá(ÓïâPÓ•cÇŽQæ`ZU­æää4}úôvX/¶ËkçDåÎ;3fÌàp8………š‘tƉhHR©TõÃUsÊå»[¶lQ ìö ¼j‰ åY7m'ÀQ½æ±±±äì™ÙÙÙ­øSF¨ÓQý§×ÖÿîÚN+®L3ë´§Îx‡]!Q©¯¯§ì”O~E þPPPpíÚµ?þØÞÞžÏç7ë¸YYYVVVo~×Ñ>‰ŠP(<|øðàÁƒýüüvïÞ]SSCI'ˆÎ;§ú¬9å‹ò]Íð”/Õ>Å)Ϻ¡h›8ŽÚ¹¼|ùríÚµööö—/_Ö¬€Pw úO¯þݵ‘VIT„BaVV–M|||³vÄD¥Å:ã]BZ´Õ‚í©eòÉvvv£F:}útÏž=ýõ×f;"·¿«W¯:99ÅÅÅmÛ¶íþýûsçÎ56¦^Û¾3NDCúðÃUßÕ2åK~~~£á)QžuCѶ`èÑ£Ç÷ߟ=}úôüÑËË+??_û¹#ÔµµÃ¿»Ž gÖA½¡Îô'TVVV__ߺmÒh´ùóç_¸p|ÙÄjU× %g†‹‹stt¼yófUUÕÌ™3­­­ííí—-[&‰Z WóXjMµé‰·+B•ài8ă?}€·  ‡Ó»w襤¤ÄÄĪªªÇÒ1'¢¡¤eÊggçFÃS¥yÖ EÛ¬ pÔ”””¤¥¥ôïßßÀÀ Å'ŽP×Ð>ÿî:&œY§’Ë%§O?øé§sQQwtBèL‰ÊÝ»wgΜéíí]]]Ýê»»»gee‘Û¿þúkNNν{÷âââ®]»öÝwßÕÕÕ/\¸077wõêÕ³gÏ®««#o‹‹‹•üòË/‡òóóûúë¯ îܹsñâÅË—/oܸ1(((&&†œÓ0&&¦gÏžäwášÇRkJÙø£G\\\¾ùæ›N6zõHß p . €äPtªŸ´d)__ßøøøèèèçÏŸ{xx|ñÅ÷ïßoA;v"MZ¦|™?¾jxÊ_ž¦ŸuCÑ6qÕF Å•+W&L˜àïïODbbâ±cÇp’VÔm)§~jÓw5J*•§¤ä=zkåÊcÆ„»º.1bâE‘¿ývíҥǺŽ¡Æ¨u뀽›2&Ôô« ÑßæîÝ»æææäv‹W¨%ûK$ƒ‘ššJ¾íææFÙS™òXjÝ—Uuð1ðjŒŠ‚¨¸G¤m ®Ž$þ`‘@Õ#"iD$üûßIë7?ŸÏß²e‹««knn®f$t"Í šS¾¨Îúµyóf777##£¡C‡’™3e#JjgÝP´MŸGéäÉ“þþþ‘‘‘b±Xû¡®Mmê'¢-ÿݵcûO6ñóu(ÁÁÁ<ùÊ•Ôðð‹Ó¦ýîíý­­ílmÿãàðvvKÈmò?'§e?þxV×ñ"ÔñúpÞ8~üx['HMDvê}ï½÷¾úê«Aƒi_<33ÓÝÝhÂb±4-##ÃÍÍMYrìØ±_~ùåÞ½{``` ‰”o™™™UUU%&&þ¿ÿ÷ÿ.^¼Ø¿ÿ•+W¾÷Þ{ª‡#·Éo¼ „B!›Í€Ç>@û_ØgÖ3•@@C? 3/øàI«T¡P( ==½æîøí·ßæææFFF6}µ_0Êß·¦ÿê„ÚY·b´R©—jAˆRÛý»k-r ‘ùg¥ _\/ä‹«óÅ2‘bá÷$rQã;£Žd̘ϟ>µ"ÐÓ£€L¦h¨¦žý矃¦NÚŽÑ!Ôl½ëWkIÐŽ ˆß~ûíƒ> _¶¸£0y£Æãñ Fvv6Y˜••egg ôTnh‚–{¾;`}8+@T@(ÌR€i õ ¼ùAétzs³‘H”½ÿþ/¿üòÍè,Úú¬1KAHSGûkS_&¥,§ëÁ­-y7ª9Øù›ý?{£É/ ¢Á{\Ôa™šJx¼zƒF£Ñ´d) “)œ9íB-Óìï¡Û9&!55uûöíüñ‚  ÐÄÝ÷îÝlff¦ùVYY™±±±\.ÏÌÌ$Šœ;wŽ|‹ì(^]]=wîÜAƒmÞ¼yìØ±#FŒPv&s•ÚÚZµ‰§˜LæäÉ“CCC÷ìÙSWW·zõjr¦eOeÕEÇ5µxñbÊsQ(W¯^ýí·ßîÞ½;gΜÄÄÄ7¥Ýê|WB±o†™ÇCÅ] 3AAý‰4:T¥Â}+`ó€ÍƒÀæBŸï€eÑÖqÞ¾}{„ ,èVÑPžu‡¡®¡-þÝ5Ô³@íMU®HP ®) Ä‚—âš—bA¾D.QLóa›«ôÓè´×}UKRŽ e„4  Åq"xüøñ;ï¼sþüÆ_½òÇ·h4ºLÖàÔ5Ó¦írrâôêeãèhåädåädEn´gÀi×Ñ»~©ªªª:pàÀŽ;ââ✜œ4+h>O×ìâ¥,Wn;88¼óÎ;äÚydIMMÍâŋϜ9C§Ó'Mšô믿?~|ÕªUùùù={öܸqãG}$“ÉFE®Ö§vh>Ÿ¿xñâ?ÿü“Åb}úé§ÿýïÉn` ,8tèPII 9a.å± ){œ:u*<<|Ñ¢EAAA,ë.eÛ ÑhQQQ!!!Pvžý?(8 @B¦^΂žŸƒËL•€°D¥ *Q1ˆJaÔe`šR4?hÌó6 lÍw 1ÚáÔB¨s‰ú$M/6°Ô3u`›9ê›:è“ÿ·t5 3ŸË$//oÅŠryK¦gDºùù•ÿû_ìܦÓ)ž®°Xzß|ó^^^ENNYNNyaayãÁ㙺¸p\\8={Z;;[÷ìÉqv¶60èˆw¨;èL‰ ©Ych4ZEE…¥¥e[GÕD-¡ÔñÇü›¨j2!}dî…üµt…ÎߟÀÓåH IDAT+¬M?üDÅ ü'Ÿ•“…À`SÔÏ9 ,‹óº~‹O !„:¹„¨)W牕ƒIùâ€ðžV½(¦ˆÙz,£ñUNÅsaúÙ û·LÞ¦èà€ÚÔóçÅáá—þü3EO.•þ›yº¹q¯__©Z³¤¤:=½$/¯"/¯âŋм¼ŠçÏ‹Äb˜™ª>rqr²êÕË–Ë5iï“AÝOGïú¥‰N§7}Å«wÞy§ƒd)"‘¨°°pÿþýÇŽkY ™´ÙKllZvv)ù|F-{ñðàyzö05¥ú\F¨¥:_¢Ò, ºá•ÖÑùès ÷rpÿ ²öÁÓ_@X„ØÍLTÔÐôÀÀ l©ß¥³ ¤dõ *Q ˆJAX¢RÕRg)Ò8eú0°¶-°9`` lôÇà7Š!„#©““#Ij^Š/Åîï[ò|5«¹`é<ÒÜÔAßÔAŸeÜ!ž“4D.!^\¯N?_Q$`èÓ\Þµæ`ëgŒ_éPÿþN'O.ŒMûùç ÏŸ4e$½žLET³©T^XX¥Ì^ÒÓ‹ÏŸO.(àËåêÙ‹‡¯W/މ f/¨…ºx¢Òq ôê: Ýaš€ç ××ð⼈‹~m~D=C0vcׯkÒõÀ?ˆÊ@XøjØLå}•I¨H«áÑj`s_=¥Ñ瀡ès¨ï 6˜˜øî»ïJ$­0kê†ÂÂÂ6mÚ¤¥?K”| ØýKû¡TCæZɳèòç1‚±¨Jt=š‰ËÔž-Sϗ؉:MIje}—ë8ÜlLxO{S ”Ž" À{̘ÞçÎ%oÛçïß³e0™ Í쥶VLŽuÉÉ)ËÍ-ÏÊ*KJʬ¨¨ƒnggáäd)“ñÍÍC†tˆ~.¨c;v¬³³³j &*¨ÑôÀi28MÖu¯c€ó´fÔ— €ŸüêAj3 _x/™¢¾B ‚ `sÍÁŽg­âåË—‰¤#¥CÖ–-[rsszWP ¾·³0û Ÿ @Ï€þ&‰Š¨J&ÈW¿›Úëó|)º<é›êqû¹`I>$1¶eÑ]äïƒ%sÊ…>l ¼Áèˆh4ÚGù}ô‘_ë6kl¬ß·¯}ß¾öª…ˆÌ[²³Ëî'&>`ìß´uº’)S¦‹k+áß„šÉÐn¼Ú–Õƒ¨DE *ƒ†Ö¨JƒKhzÀæþ3wÌ}ÀóÿÚ)æ®(8;æ¡f;qâe¹ _|gëËÜø* ÓÈ)fª²›·Öae†0çjUuÁ«1îbèLZ¿6”‰ŠËs—1æÍ>†P4:E~…Y SS¶¯¯ƒ¯¯ØÙUÅĬŠèk ¡è‡~ÉÔ§ŠÅ?%½=C0vcmuÌzé¯ÍÅ,,Q)T?¡®_•w¿zm.fr䌡#ÚµÅI ÔÕ•Jïÿ^”S4 ù«žWU/Äj5r¢¶P¢æÎýlnnþ믿’i‰½½ý AƒfÍšuáÂ…ÀÀÀVˆ^…¹¹¹¥¥%XZZΟ?„ ÕÕÕææ­6yú^œ!Ôd, 0õîpš–¨ëx| ãïÃÈ 0h'¸Í«ÁÀ0„ê§ *¡®Ÿ¾ âÞ…¤ið` <ÙÙ‡ ð"ð¤ê ƒ¥Ñhû÷ï÷òòâp86l8r䈋‹‹™™Ùš5k 44tΜ9dÍÚÚZCCÇÀ¹sç|||ØlvÏž=9 …bûöí^^^&&&C‡Wýª)33“F£ÅÄÄôêÕ‹Ë円†ŠÅbÊBeeÕ)#g2™,ËÌìÕ´T* ãñx\.7,,L*•úûû™À©S§ÿÿöî<¬‰«møIHXa‘°ƒÈfA "î[ժᵠP°ZµVPQ*Ñ‚uÇŠ.D*â.Hk«"¸T*>Êne_„%Û|LŸùòd Ëý»zõšœ™9çž1LrgÎ9³v­h 'NœÀ——.]Ê`0LMMCBBÚÛÛe…A"‘Ο?ogg7hÐ üÙíb IF"vïÞ=tèP:>iÒ¤GI="¼»>A¾üxº¾{ffæàÁƒÿüóOYïYÔ ”‡LÓ½Òxö!ë%¿ð¾úéŒKûEF£é:jï[[gÈOÌ¥úYË•€×7WÕ<ç¼sôÉôéÓoܸáçç7oÞ¼ .ܾ}ÛÛÛÛÍÍíäÉ“¡ƒâ—„P[[›‹‹Kaa!BèÁƒÎÎ΋-º}û6Bð_ýÕÏÏÏÕÕuÕªUÏž=íãTQQ1}úôû÷ïûúúº»»{ö,›Íž:uêýû÷BèþýûFFFÖÖÖíííÛ¶m›7oÞ/¿üâëë»k×®ööök×®%$$,[¶ììÙ³K–,ùñÇ%º|ùò?þ¸sçÎGOC—,ÔÖÖ Á׊.‡††>}útþüù¡¡¡III55ÿþwäÈ„Pjj*þrÿþýuuuqqq111¹¹¹‰‰‰xyrrò¦M›lllRRRªªªŽ;¶wïÞ§OŸž:uª¥¥…ÉdJ±±±)--•uÞ$ëm(00PòÔá´···µµµµµ544œ8qbÖ¬YT*UVR϶üP±ò¾ Q(”™;û3šz9?Dsß ¯64Ÿ…þï?È|¡ôíKÏŽ;Uwhh(NÇS‹M›6Ñét„‹Åš4i•J½wïBèÂ… ¾¾¾$‰Ëå …Â––UUU‹¥¦¦vàÀ]»v¹»»¹ººîØ!edΞ={lllÆ·cÇŽsçÎÉ*ÔÒÒZ¶l¾Vt!äèèH§Óétº‰‰IBBBhh(±êÔ©S‡233³··‰‰¹yó¦hÓøPY7gx<Þ/¿ü²ÿ~KKK{{ûÈÈH"<©V­Z¥­­íçç‡b2™bk%#‰‹‹=9¢ßð#ÒÔÔ´³³khhÀ?ž;ÏûÆ€—ÇÄÄLŸ>ø!Pä$obÙ”··÷¥K—ðÁ[·nÑh4¼·ÞÇNƼVᣟ*Rý§¥ªã‹ýVs⇌Pü œ——FsvvF-Z´ˆF£¹¸¸ „š››?ýôS …’——‡ÊÈÈpvv&‘H<ð¶¶6eee—ôôt•K—.­X±bÊ”)ºººãƽؾþúkSSS;;»e˖ݹsGV¡ººº››¾VtyôèÑIIIû÷ï···¿uëÖ¢E‹233ÅšàóùwïÞ]½zµ‘‘‘¥¥¥¿¿?ÑPPPÐÈ‘#UUUoܸ±víZ}}}KKËàààœœ|É«:†ar¨Èªoh̘1’§ß`Ù²e®®®®®®óçÏ¿}û¶———œ:¥žmÙÿ˜Ýƨzem¤,»wìØ¸KeŸc˜—Ì DÐét„þãè2BHIIÉÃÃ#55ÕÁÁ!##ãØ±c!¬¬¬Ÿ~ú)""ÂÉÉ),,löìÙ%%%¢p988H6„wSFÙÚÚ–——Ë)”¥°°ÿ}«µµuëÖ­>ÄW•••á#qD—0œŽŽŽÁË—/'NœHæææ®\¹ò÷ßg2™ÀÊÊ /·¶¶‹DlH·±±±èY# —Ë•urˆ#USS#?ž.Ä€/ˆÝSR "yCýøãxÒ…Љ‰±··/**Â_Ι3'00ðñãÇcÆŒILLôóó£P(¡S§Neeeš™™ÅÄÄ„††âÝñÝ»1ÔŠöë´úqßš óÔ#Sà. èh4Bÿ[]F‘Éä)S¦Ü»wÏÒÒòÉ“'ëׯGÑéôØØØ”””S§N :tÑ¢EãÆ«ªª½þXZZJ6djúï-ÓÁƒ×ÕÕÉ)”ÔÞÞþàÁƒiÓ¦ÙÙÙÙÙÙùúúž>}:..nÆŒ¢›±X,¡Pˆ_ÓB&&&DÄMïêê꯾úŠØE]]]CCcРAEEENNN¢µ{áD/à’õˆ6$õÔáÎ;gbb‚êèè8yòä®]»>,«N©g[VHÝÀåéééãã3lذɓ'ãNmmmB¡ðâÅ‹\.711qΜ9µµµ&&&ÏŸ?1b¾W~~¾dU………ø7È‚‚â3Ijá;Ñh´¥K—þüóÏÄ$¿ #++ ÿÐÅ;z‰íòå—_îÝ»w„ Ä/dçÎãñx4J¥*))•”” 6 !T\\Œ !„ø|>…B©¨¨­Jþ|2’‘xxx¼óäˆ200O—cÀËe%6=ïíÛ·²’7±lŠF£Í;7%%eذaéééø()ÔƒÉØiÚÆ£èÊô=Õ8è[¦M›5dÈ{{{===„PGG‡P(ܶmŸÏÏÌÌܼyóåË— Fqq1ñ›HYY™dUåååxóöí[]]]9…’0 ‹ŠŠ?22Ò×÷ßñ3$ÉÙÙùÒ¥Kl6›ËåR©Tš––V]]}óæÍM›6IVµvíÚ¢¢¢ÜÜ\|^Y…MMMÄÜ\¢Ëb455›››‰g¤xxx„……½yó&//ÏÅÅ…ø­‹°cÇŽßÿÝ××÷Áƒyyy?üðÃð.jT*ÕËËkÍš5¥¥¥/^¼ÀG¿àÓ¹$$$°Ùì¼óDɉdÅŠ¢'‡è¤$‹ÔxÞ€ü:³{O2dÈóçω—¢É›d6åíí’’råÊ•Q£F·à Faa!†a†±X,|”ŽÔÝ?d) oqppgΜÁû†!„H$Rhhè½{÷8Ç£P(***³gÏ>zôèýû÷™LfNNÎÏ?ÿ,YÕ¡C‡***^½z?kÖ,Y…<&º¬¦¦æììüÃ?dggWUUåçç=zTôv >7#…B™>}úªªªð)†gΜ)Æ”)SŽ?^SSSRR²aÃü{¿ŸŸ“É ÉÍÍ-//722ŠŠŠâr¹nnn¡Û·o·¶¶ŠüZüS'I]]½µµ^jR϶¬Du¾/HTÞû‹Íf·¶UUUÏœ9³qãF“}ûö%%%©ªª†„„|óÍ7ëÖ­³±±‰ŒŒ$&Nåãã3sæLWWW—°°0Y…uuuË—/Ç׊.‹155ÕÔÔ$æäŠŠ¢Óé#GŽüüóÏGŒ!9ú\OOïÉ“'žžž“'O¾~ýú•+WˆŽÔ‡2663fŒ³³³³³sXXƒÁˆŠŠZ¿~½““ÓÒ¥Kåœ"ü)cįû’‘¬Zµ*444$$ÄÚÚ:22’*‡d<ò·g ïl±‡½WòæììÌb±"""ˆÂÞŸŒ (d2ù³Ï>kmmýì³Ïðeeå°°°cÇŽÍŸ?ÿâÅ‹ÊÊÊ^^^îîî‡^¼xqBBBpp°dU3gÎ\¿~ý¦M›ÆŽKüb"YØØØ¸gÏ|­èò† fΜyüøqÿ¨¨¨#Fà—tCCC{{{âceíÚµ ¿,Œ3Fò§™ÀÀ@¶|ùòuëÖYYYá¡Òh´ŸþÙÆÆæèÑ£YYY‹/677ß¹s§––V``à‘#G–/_ŽÞ‘SüS'IOOF£S™IÖ)õlË 'vBÞ—¼çò@/”œœìååÕ-×®-[¶”••?/c†1iÄžÖ'õá}}ô‰~Á‚ BÉÉɯ @{ìØ±ªª*‡ØØØñãÇo ±·Gppð… ª««‰>åÍÍÍk×®½|ù2™Lþꫯbcc+++?äÅ©åÝ`Žð3è–  ðëv·<>>>¾ºº:<<¼ó»ˆ=%]êCÓ»÷¹õŸÏ/((ÀûÍvMN]Oúá‡ôôôÄ®Ï0F0µ··WVVž¼<11ÑÛÛ[r¯gÏžõ¹Ÿåúw¾[ËÚÛZf1Kû‹X+-ón{[CCëW¯º«6Ð]ôõõåwª­m>yòŸ/ WÌí Ãêë[*+[¡èHT ÿxðà………h …BÙ¸qc×j›;wnUUB¨´´tâĉø2BHÎã€ÂéXª.LÿTÝ ›;zá Òv•Ý+??_NâZTT{øpfJÊc¡ÓÑQÿH‰ŠPˆÕÕ±kjˆÿšÛjkÙÕÕMøÿ;:øø–ŠæÇôo¨@ÿ¡§§ghh(VݵÚÔÔÔÔÔÔÐc"Y3èº=K}†a/÷ï¿óôé*•,BMM¡#“¥÷|g…õõ-õõ-ÕÕMõõ͵µìšv]]sM »¾¾¹¦†ÝÜÜŽoI"‘ CC__sÈƘ1úú𠆆֓'~ûmsw'à6ü«®®®µµU¬D"ùä}}ý5kÖtttH-$6ÝQÎA‰nÀãñBCC ôõõCCCy<±™@ ؽ{÷СCétú¤I“=z$§N©G-+Z©JžŸwþC1BÖô¦CÑQ€^„Ç\¼˜;ujŒŸß‰¼¼·!ïß1EÆdr¤î%b55MyyoïÜÉ?wîáÞ½7¿ÿþ×àà3sç˜0!ÊÂ"ÔÄä»#¶Î˜±ËÏïø¾}·nßÎó¦NW4É:(hÚ¡C‹/_^ýðaxIÉ®ŠŠ}ÏŸGffnHL\±ÿ¢ðð9AAS=%))©»®]mmm cÇŽ9rä±cÇš››%·A=}úÃ0.—+¶\XXÈçó 3331 suuŽŽÆ0ŒÉdR©Ô={ö°X,¡PØÜÜ,†~úôi¢Ú3gÎà5àÇ‚/äååÇhmm-µPÎáH^áÓÓÓ‰ŸgÜIDAT&0 ³µµ­ªªÂ—ïܹãèèH¬:t¨dxÄKÑJ0 “zÔ²¢•lTêù;–ŠŠŠˆˆSSÓ9sæÜºuKrƒ®ñôôôôôì–ª¢½‰÷è@ùé)þì¯Çq•mL^5]SS“••ÕcÍÎxñâÅo¿= Oµ´Ü`jú‘Ñ·òÿ:tÓÔ©Ñ_~¹?(ètxxê¡CÉÉ9÷î½~õªªºº±£ã#¾RRRzä[-èÛ.\(öÎ;*€*##ÃÇÇgöìÙ3fŒœTt:!D¥RÅ–BJJJ©©©ø“ûttt²²²~ú駈ˆ''§°°°Ù³g—””ˆÎ”åàà Ù ¾`kk[^^.§P–ÂÂBkkkÑ’¢¢"b¹¬¬ÌÈȈx©¥¥E,¿}ûöᤵ¬h%•z~Äš066Þ¶mÛ–-[._¾¼}ûöÕ«Wgdd˜™™É?ü~¬µž÷üTÍë+õd ùSýá õTµúü'x÷Îz×D¯ªªªNNN‡Và x……õß~{•Ëå¿sK2™ôÃîK—NRRRLŸ77·K—. Ðû È3jÔ(±’>™€®ÑÓÓ6l؃FŒacc£££Óµz<==}||† 6yòdSSS„P[[›P(¼xñ"—ËMLLœ3gNmm­‰‰ÉóçÏGŒŸ/YUaa¡½½=B¨  ÀØØXNa×0Œ¬¬,<“ill¬®®&V 2äáÉ?jYÑJ6*õü 4H²•šššüüüòòòñãÇãÃú¬ü_ê ¯7Øû ÷îc)JIIÉØ±cëëëûG»ÄÄzÍÍÍ;vìðòòzõê•üqb±±–§§ýë×ýõ†Ïª¨Px?22Ò××/!‘HÎÎΗ.]b³Ù\.—J¥Òh´€€€ÐÐд´´êêê›7onÚ´I²ªµk×åæænÞ¼yñâŲ ›ššâããñµ¢ËïäááöæÍ›¼¼<—Ç«V¬X!ÞÖ­[ß÷¨eE+Ù¨Ôó#Z‰P(¼}û¶»»ûøñã1 »ÿ~bb"ƒÁèäaöK#–,¼úé¨F}+KA …†††~Ó.>±ž¡¡¡Í®]» êê꺽•NRW§.]:êÊ•5¥¥»oÞünË–9..öêê*!*UI,-©­e+(L>ÀÇëC7ŽQ!°X¬}ûöYYY•••‰­BÊ_^±b…šš›Í ÒÊÊJYYÙÖÖ6-- Ã0.—iaa¡¡¡1a„ . ‰1*ñññæææ cõêÕmmmR ±ÿ1"º,At6›íïﯣ££««Äápˆµ|>÷îÝÖÖÖêêê&LÈÎÎF²Ç¨H=jYÑJ6*õüˆJII?~üùóç;::äÿý¯¾>FE:9FåÊ•+ööö*** †áOÝ100À0ŒÏçïÚµËÆÆFCCcâĉçÎ}ÿã5ËsçÎ]·n^ØÞÞ®­­}õêU ø\nHHˆ¾¾¾žž^HH—Ëåñx[·n533c0¾¾¾,K¬] ÃX,–ŸŸŸ®®®‰‰Éúõ뉿/¼Káü!v µµµø{U”ØŸ“ÉTVVnoo—ÕÄøñã÷íÛ‡aXCC‰DZ¿~=~ˆc‘ßÜ;½xñâÅ‹b…íí¼û÷ ÷ì¹éáqÐÜ<ÄÈè[KË ÆÆëV®LxßúP8HT}ÌÇHTp€ÇëÊpÒÍ›7/Z´è½vûê/5ZØ{ˆu7FËår»¥I½?Qi©îè`ó…ITZZZTTTââ⪪ªNœ8A¡PZZZDßûöíÓ××OMM­¬¬¼víÞ9Ã°ÆÆÆãÇãÛË¿üòËàÁƒ…B!†aiiiÆÆÆøŸgLLÌW_}õÏ?ÿäåå999mÚ´i÷îÝÇÏËËûûï¿Ç‚I¼!}||f̘Q\\œ——÷é§ŸnÛ¶ ß`öìÙwïÞmii!¶ÌÉÉñóóÓÓÓ«¬¬;@„Ð_ýÕÜÜÜÜÜ\QQ±råJ9MDFFº¹¹áñkjj:99aöøñcUUU±´äÎ;øüÝ%%%ÿG‘š¨ˆêèàegïÝ{sþüÃ?ýt»ó5ÐKôÞ@êã%*]ÐÖÖV\\lhhø¾"õéDEêQ÷ÚhEõæD…UÚöÛ¶²øqOÿ:U­èX¤èL¢"u>7Ñ7†üÉåÄp8uuõœœ Ã.\†—KÎ#÷É'Ÿ¤¦¦â%/_¾Ä—EÛår¹JJJÄwúÔÔTÉYõ:9 ( —/_ÊiâñãÇ\.÷»ï¾Û¼y3•Je±X»wïvuu•¬¼ 3ݽ3Q ¯ƒ1*Ðu==zt@@À´iÓ>¤MMÍàààÎöRº×FÛû½¹×t% àâW/YÅm3wY:,1PtD]„Ïç–mjj:uêÔ?þøƒLþŸ¯ï5¹F›;wnJJ ‡ÃIOO÷÷÷ÇËñyäH$‰Dš5kViié›7oˆéæìììÜÝÝŪª©©VVVøKkkkb=[[[„PFF†¹¹yffæÁƒŸ¯n¯+VÑTšsbè¼[óÏ´H}ö“™˜ÏÉdΙ3‡ÉdŠn€O.G¼|çärÞÞÞ)))W®\5j‘Š0 "[`±XÙÙÙÆÆÆeeeøÚ¿þúKòïÑÀÀ@II©¤¤Y\\lbb‚/ãSsÞ¿¿±±±3K£Ñ–.]šŸŸÿ!Km‚L&»ºº¦¥¥899}þùçwîܹwïžÔDGÌtçää4ÀgºA¢(„€‡eï-WÑ¢¸ÅÙ|ñ“•¡£ôŸðû9ó¹µ´´ Ù“ËÉšÈÎÙÙ™ÅbEDD7.´yä|}}·lÙ‚÷ƒúæ›oÞ¼yClŒ·K¥R½¼¼Ö¬YSZZúâÅ‹ððpÑÈ»6 ¦¦fss³ü&\]]92nÜ8*•:cƌӧO››››››‹U3Ý ‚ºœ@õª1* oémcTÚ›zîÑò¨“³~IÎçÆãñ&Ož¬¡¡Éž\NÖDv†á½°D»KÎ#×ÞÞbll¬¥¥åííÏú%Ú.†aL&Ó××WWW×ÈÈhݺuĬ_’‡ÐÉ91 ššš¥¥¥²šÀ0¬±±‘B¡DEEaÆáp”••7lØ Ùh×fºƒ1* ß#a}牰€JNNöòò‚kè‚  „’““HßS[[ûòåˋՇ…B¡PH¡ôÐSkx<Þ í½à}ç†þ" W€®_ÀGÔXÚþú²žx>™Lî±,ýw¨ @L{À-Ð'`BôÏMùIu9l­Áª6nƒÈT’¢ƒ€¾@£¤¤„"‘à;芅 ~ì&:Øü×i //Ö5Wpœ4fD[ ™®MV‚w,¼HT}Œ››Û¥K—¢}Ò¨Q£>jýŸ«}|´!d={аzºCa†Yè"HT}Œªªª‡‡‡¢£@:m ÕQ+Œ>™ËPÑTRt,зA¢t³Išf“4ô0ëð~øíÂÒŒN=¿@—Á ³êò[__©/¾Ép±A6¶Z檊Žú-HT€wh©æ]g^c6–µk V¹Üpè]U­ôŠÏ³÷Ûo¿):ð?ôõõ<™'?©îáž·ÊJ–Î:6®ºêhàM5, ౕ½Ž†††šÌ,ú-HTyšþé`µ™MÖRRx ($*€^fý0Ð5Wt<‹¯N]ôŠÛ €Þb Dµ1ù%wXÅ7™5sTµ(–³tøBe:<¨zèú`À©xÄþû\mÅ£f²2iÈTm«Ù:¦ã5É‚½ÜQ0àpjx$2ij¤ù©Ú5è ½ÜQô:ð3€~ˆÛ,(ºÎ|°ë­¢ÐEÐõ @ÿÑÞÈó[Sé]VEN3BÈd,×*¤ÒàW9è{ ë€^§ƒÍWÑ|¿ŸÒŠ®3 Ò*·(QI¦4‡|®mþ™Lá}ÜQЋ¸ØãÕŸ¯sb¨ÁõÎïØPЦ¢Eù|ç³IZp ú¸£ ·`¶el,e¿mGˆä°DìjEG@a Q xB>öøhe^B-B&D!msUÏÔaÄmLþÛûMÿüÙ¤¦Mf¦°@ôèú@ÁšÞtd†•2 [ñ×øO{k-¯Åûçö?4Õ½ä)$£QôÁShŠ‹@Ï;*C/~©ÍÙ_ ‘Pð?ŸG$2I™Nîh¨jQÌ&kš¦m:‘N¥Áàx(àŽ Åh­ãýö}YÅãf$ã3uåY{Ì ÕIdRφ@ñ Q eY¿o{ÃkÊÊR0!ÖRÁ5tÔ Á ^0 A¢ GñÛ„÷•¿úµ!$+KÁq9‚†×­ ;”üN!´aÃèþ¶ß¿J­Gù|ŒËò„_ê? ™L*Èîáw€^î¨B•••?þ»ï¾St ýŸ£$¬«ÄÚ•„md¬ƒŒµ“±v%Ô®$l%cmJÂv%ÔA¸d„PˆÕ¿jUt¼ø—™™™§§§¢£!”œœì¿hyõ›Z-øœ€ >ôF­6ÝDEÑQP£èu Qô:¨zHT ·(**"‘ºíì¢32dÉ’%uuuR×êèè,X°€X+Ç- è·>~ûöí;wî,((øþûï—,Y"ÙБ#G®^½šžž~ãÆ âÞ…d¡žžÞñãÇñµ¢Ë’lllŠ‹‹‰—§¥¥¥¹¹ùõë×[¶lñõõíäŽ{÷î=sæÌÈ‘#ñ—ÞÞÞ—.]Â0 !tëÖ-öÅ_ „bccKKK?~œ™™y÷îÝ­[·JÝ€ažžžžžžïÜ !ôôéS ø\®Øraa!ŸÏ744ÌÌÌÄ0ÌÕÕ5::Ã0&“I¥R÷ìÙÃb±„Bass³@ >|øéÓ§‰jÏœ9ƒ×€_–ñ…¼¼<|mRR’µµµÔBù¡Š–äææjkkkEijjËÙQ4"Z‡£®®ž““ƒaØÂ… ÃÂÂð½lmm«ªªðå;wî8::Š‚IIIð ÜQ€÷C§ÓBT*Ul!¤¤¤äáᑚšZ__Ÿ‘‘áããƒÒÑÑÉÊÊÊÎÎ655:uêüA&“KJJ‰:$²±±ÁlmmËËËåvRaa¡•••èKü“€ÃálܸñóÏ?Ç$©;ÚÚÚŠ®¥ÑhsçÎMIIáp8éééþþþxyYY™‘‘>{جY³JKK¥îH‰ t'OOÏ_ý599yòäɦ¦¦¡¶¶6¡PxñâE&“8gÎ&“ibbòüùsb¯üü|ɪðû¡‚‚ccc9…aØÑ£GÝÜÜ$WÑh´åË—¿}û¶¶¶¶3;‰ÁÛÛ;%%åÊ•+£F"R)ƒAäB,+;;[Öî€$HT ;M™2…ÏçGFFC>H$’³³ó¥K—Øl6—Ë¥R©4- 444--­ººúæÍ››6m’¬jíÚµEEE¹¹¹›7o^¼x±¬Â¦¦¦øøx|­è2B¨®®®ººº¢¢â÷ßwww/--%F½k«««ÿù矘˜333==½Îì(ÉÙÙ™ÅbEDD…aaaoÞ¼ÉËËsqq9|øpÎ'€KA]Πwéü©c9D—W¬X¡¦¦Æf³‰½’’’¬¬¬”••mmmÓÒÒ0 ãr¹‘‘‘&L¸pá’£onnÎ`0V¯^ÝÖÖ&µ+"¶,z©733óññ©©©=™LvppÈÎÎ~玲ÚÂ0,((HCC£¥¥…(a³Ùþþþ:::ºººAAAGl9`Œ &£G2 ( ,@%''xU[¶l)++;þ|çw)**²±±!.Èb/åöWÉÉÉ^^^ä`HEQtд··WVVž MySQL++ Reference Manual
row.h File Reference

Declares the classes for holding row data from a result set. More...

#include "common.h"
#include "mystring.h"
#include "noexceptions.h"
#include "refcounted.h"
#include "vallist.h"
#include <vector>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::Row
 Manages rows from a result set. More...
 

Detailed Description

Declares the classes for holding row data from a result set.

mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemembers_vars.html0000755000372000001440000000331012502417164025406 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption__inherit__graph.png0000644000372000001440000001465312502417165033252 0ustar robertousers‰PNG  IHDRå»/ÎÆbKGDÿÿÿ ½§“`IDATxœíÝyTçúð7 ›¢d+(+©õ"ç D{iÝÙÄ ÜáZ *G)µbm­JKØDTõâŽÈEPõW®,n,*e !Éüþ˜Þ4’Ñâ„çszzfÞ̼¯“—I$ ÃA–w¼È+ È+ È+ ª¼ JVVV||¼¼«PdGŽ‘w##âþÀÚµkËÊÊlmmå]ˆbzñâEyy9!’@Œë+BÈÖÖ633SÞU(¦ÌÌLwwwyW!˜¿"¼"¼"¼"¼J«¾¾žD"ɰÃÞÞ^ƒñé§ŸjjjΟ?ß¾}<O.•äU>zzzæÍ›WQQSYY¹sçÎôôt'''>Ÿ/qûÆÆF†/kiimß¾} ‹ý€æ~–‚‰ŠŠÒÑÑ)**¢P(¡3f,]ºÔÊÊ*%%Åßß_|{@ÐÞÞŽ/Óh´ýû÷i¹ …º¾’H¤cÇŽYXXèèèìß¿?55uúôé“&MÚ½{7B(88ØÏÏß’Åb©©©Ý»w!TPP`mm=aÂSSÓÔÔT„@ ˆµ°°ÐÔÔ´µµ-..}ýÅ_Žóóó?þøc]]Ýàààþþ~‰èí×nÑå´´´ˆˆ<¬8uuuƒ‘––&±«  „ôôôõÓÕÕµaÃfddÊápðãžžnaa1eÊ”Œê1k¸¹¹¹¹¹¸BÈÃã»»;)) !´víÚîînüÜßÿýúõëÚÚÚ†¥¥¥YZZ ‹¥¢¢Âd2[[[“““©T*‹ÅŠ×ÕÕÍÉÉiii9þ¼‘‘B¨®®?\ø‚³³óãÇËËËétzdd¤ÄF úººñò„Ë¡¶¶¶Aõ—––N:u˜þñÍD—½¼¼jjj¬¬¬ðABkÖ¬éììLLLDµ··Ü222ˆ’bT)}^«ªª0 ãr¹ƒ–ëêêx<žžž^QQ†aË—/ß¿?†aJJJììì===|>ßÒÒòøñãÂnOœ8!ž×ššüÑŒŒ :.±q¨:‡ÊkYYF¦¼E¸Ìår)ÊÇñöœœ|P„Pqq±èsþ¸(¯ 5@ijj"„”””-#„(ʪU«rrr~ÿý÷«W¯zyy!„&Ož\\\\^^nddôÙgŸÝ¸qƒL&766Ξ=[اµµµø@æææøÂÌ™3›šš†i§¥¥¥§§W]]=¨½ººzîܹÒwõêÕ+>Ÿoff†¯Òétá–¢Ï]a(Z^‡çææ–›››™™¹páBüUžÍf ‚³gÏvttøùù¹ººvttÞ¿_¸×£GÄ»Â/r¡ÇãáªQ"//¯¨¨(Ñ»½½½111...Òw5uêT …ÒØØˆ¯644âËd²bžYÅ|VC±³³ãñxQQQ>>>x ‰DrvvÎÎÎîîîær¹JJJjjj7nd0ùùù/_¾¼téÒŽ;Ä» ©¯¯¯¨¨÷ööªñÍ›7ødzÐrDDÄëׯ/]ºTWW—››kccchh4Lÿ,K´%%%ww÷ààà'Ož<|øp×®]ø‹†"“÷„D*ÒÏ_…sµ¡–UUU»»»…{edd˜™™)++Ïœ93??Ã0.—5}út [[ÛS§N!±ùkRR’‰‰ FÛ²e ›Í–؈½ý³‘è2†a,kÛ¶mVVVjjj–––ÑÑÑ}}}Cõ?00°páB Aýtttøøøhkkëëëoݺt¨ç>Í_‰Q¥”y•Fxx¸§§ç;í2(gƒV‡i|?2ìJJÊë8z¿€Ãá´´´;vìôéÓò®¼§q4½}ûö¼yó6nܸhÑ¢¿ÒÏĉ¤i”aÿG˜ïà „àû£ÿ~!’0Ž®¯@@^‘@^‘@^‘æ~VcccBB‚¼«PL•••ò.Ajò¾,•o¾ùFÞÇé´´\¨Ô)ò.ãËû$K…÷³ˆ¥¼¼aժد¾²ûî»Uò®EÑÀüUörs+ñÿóxy×¢h ¯2Æåòrrî!„Þ¼é+)ù¯¼ËQ4WûÏjûúúB 9'‡8?ÇäUƲ³+)2BˆÇ\¼XÃfså]‘B¼ÊRooÿåËy¼?¾5ÐßÏ+,ü?ù–¤` ¯²$V„™LÊξ+ÇzäU–²³ïŠþ¦OP\\ÛÝÍ–cI ò*3½%%ùü·îaaváB¼JR$¼¹M¡ $\zÁ{€¼ÊFAAõPÄàñøÙÙðÆlæó„¸¾>®¾þDá*‹Õ?a‚•úÇå`¼þvaÙƒÏg ƒ­L¦ï_ÌySð.`>ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò S7oÞTVV–÷±ü“ŠŠ1™¬&ï*þÄ`0ä}ŠdCAþ~Ass3—ËÍÌÌ”w!¢Ÿ~úééÓ§ò®B6$¯8777y—ð!:{ö¬¼K˜¿"¼"¼"¼"_ye±X¡¡¡Ó§OWUU577ß³g‡ÃfûúúzÒ{ýmÂÞÞ^ƒñé§ŸjjjΟ?ß¾}<Ošß{Äqb|åuË–-UUUÙÙÙÏŸ?ONNÎÏÏg0¡ÆÆF&¾½––ÖöíÛßu”žžžyóæUTTÄÄÄTVVîܹ3==ÝÉɉÏçKÜ^tô÷q‘÷ `ÙÈÈÈæ¹hii•—— W¯_¿nllŒaX]] Ehh¨Ç¶°X¬iÓ¦%&&JÜ^¶£‹ssssss½þÇÒøº¾Nœ8ñ×_mooÇWíííŸ={†Z°`BHOOý﹨¨ÈØØøøñãÂWg‰”žžnaa1eÊ” „0 c2™Ÿ|òÉĉ/^|îÜ9|ã´´´ˆˆ …"W]]Á`¤¥¥áçççüñǺººÁÁÁýýýâ£ã{uuumذF£…††âSñ2Æyÿƒ‘ )¯¯—/_644TQQqrrúᇞ>}Š·‹^áðåeË–]»v­ººZØŽZ³fMgggbb"B¨½½=11ÑÐÐðÒ¥Kmmm………t:!ÔÙÙ‰jkk4tiiéÔ©SñÎ?~\^^N§Ó###ÅGÇ—½¼¼jjj¬¬¬"##%–1â³V¤ëëøÊ+†a<¯¼¼<**ÊÊÊŠB¡¤§§c’òZSS3¨!T\\Œa—ËEÕÕÕYYYá»ãN:5L^ËÊÊh4šhçxÙt:]b^¹\.…Byøð!Þž““C§Ó%–1âSV¤¼Ž£ù@ooï™3gB666»wﮩ©  “¸ñÌ™3Å BJJJøjCCƒ•••ðÑO>ù!¤¥¥¥§§‡_˜EUWWÏ;_677ŽÒÔÔ$±€W¯^ñù|333|•N§ ·TƸ2ŽòŠa˜§§çƒðU‰´téÒ¡n3IL™üÖá211yôè‘põ·ß~ü¼¼¢¢¢DïôööÆÄĸ¸¸à«øE!ôøñc<|â¦NJ¡PñÕ††CCC‰eŒ+ãè™khh¬_¿ÞÝÝýüùó·nÝ õððnÀb±Þ©Ã¯¿þ:,,ìÊ•+ííí×®]‹ŒŒÄTŠˆˆxýúµ££ã¥K—êêêrssmll ƒ‚‚ðCBBêëë+**ÂÃý½½%Ž®¤¤äîîüäÉ“‡îÚµËËËë/=Å ï ‰lH9åñx‘‘‘ÖÖÖªªªÓ¦MÛ¾};›ÍÆ0l```áÂ…˜¤¹,¾ŒD&‹ø2ŸÏ?tè™™Ù¤I“\\\òóóuttð X,Ö¶mÛ¬¬¬ÔÔÔ,--£££ûúú„&%%™˜˜Ðh´-[¶°Ùì¡FïèèðññÑÖÖÖ××ߺu+^ªx#>kEš¿Ž¯¼ÊVAAAuuµp5++köìÙÃï2Ú·Z%R¤¼Ž£ù€ÌÕÔÔx{{WUUõõõ•——ïÞ½Ûßß_ÞE)8…ú¼ö ëëë[±bE[[›©©éƆßeâĉ#n†AÂ0LÞ5È@ff¦»»»b<™[»v-BH1¾,ó@$W@$W@$W@$ uÀÉÉIÞ%üA “ÉyWñ‡ØÛÛË» ÙP¼ÚØØ¬[·n¨ð1>ŸtçŽþŒÚÚÃ}ÙfÌØÛÛã·€‚ÜÏú dfVüë_§/¶HKÛ,ïZ Ì_e/7·!Òõëÿ}ó¦OÞµ(È«Œµµõܼù! !ôïþ,ø‹ ¯2vî\5þ©B ò²*ä]Ž¢¼ÊXfæ]C ØÝ»ÏZ[»ä]‘B¼ÊÒóçí55/ð¼"„(r^Þ=ù–¤` ¯²”ŸJýóòù‚³gaJ KWY:{¶b`àÏ· 0 «­mmhx-Ç’ äUfjk[ëë_ãw„””(yyUò*Iñ@^e&/¯JYyðû…ü3gîÈ¥…y• ò²îr¹¾ÞÜÜYSóbìKRHWÙ¨ªzÖÒ"ùÖL dò*çÎÝGˆ¤¬LÿÏäæÂ]-ÙPÏgÉÝ¢E3©Ô?!aff…­­ÙGMÁWµµ5äT—¢Ïg ƒ­L¦ï_Ì–w!Šæ€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€HÞúýÚ\.÷Ì™3G^Õ(’«W¯¾| æ¯rvvž6mڟ똈ììl¹Õ€$¢}ëúÊãñBÅÅÅrª €·ìÝ»ϤÌ_‘@^‘@^‘@^‘|pymnnvppUol6;..ÎÃÃcéÒ¥ÞÞÞ)))\.WúÝÛÛÛ£££×­[·lÙ²ÀÀÀ7nrpphnn–UÃsppˆŒŒýKi²=J¢8“Éôóó[¾|y```zz:ŸÏ—fÇÑ+IÔ—WÙ:räH]]]TTTFFFXXXii)“ÉjãÖÖÖ/¿üR¸ÚÝÝíïﯢ¢²gÏ&“¹xñâo¿ý¶¢¢b ÊT Bèúõëcpߦ¯¯/  ¶¶6 !!ÁËË«°°044T ŒX§†††‡‡ÇhW¨ày½yóæ¦M›ÌÍ͵´´¬­­ƒƒƒKKK‡ÚX tww WSRRæÌ™Ã`0,,,LLLÖ®]»jÕªŒŒŒ1({P%!WWןþ¹££cTÇ=yò¤––ÖO?ýô·¿ýÍÈÈÈÎÎŽÉd¾|ùòâÅ‹#Ö9iҤ͛7jyèýòêààpñâE__ß+Vœ:uêÊ•+Ÿþù±cÇBG=pà¾%›Ívqq©««CݺuËÏÏÏÙÙÙÓÓóÊ•+! Ãrss}}}—/_þõ×_ß»wOô})--õññY¹råÑ£G$6¢·_ŒD—ÕÔÔòòò„ÇÔÚÚZ8Çd2W®\¹råJ&“ÉãñþùÏ"„V­Z…oPRR²zõjÑ'îëë&\½{÷®———««kzz:ÞRVV¶iÓ&—Õ«WŸ:uJXLUU•»»ûƒÄ‚4• „ÜÜÜŒüñGñ¿Ÿ*>èˆçHâ ¡ÂÂÂõëדɦb„ ëÖ­+,,”xäEë=ì,kÿþý_~ù¥››[\\>spp¸zõª¯¯ï_|qæÌ™¡Ò5¼÷¼¾VVVÆÅÅmÞ¼911±¬¬,999(((55µ»»û³Ï>+--Å'=¥¥¥úúút:ÃáDFF®X±âÌ™3>>>àp8çÏŸ?yò¤¿¿jjêúõë¿ÿþ{ñòòò¾ÿþû}ûöݾ}[x2ĵ´´BCCñGE— FUUÕš5k FFFÆ«W¯„=geeµ¶¶ÆÇÇÿøãUUU)))¿þú+B(''!Äb±:::ŒE‹QUUÕÕÕ®Þ¾};111,,,))©»»»¯¯/""ÂÜÜ<---(((11±«ë¿0Ÿ™™¹cÇŽ>úHü ŒXÉç‰LÞ±cGeeååË—EKfÐaΑÄAñ§L§Ó:þüùs‰G^¼NÜáÇÛÚÚ˜LfLLLEEÅéÓ§ñö›7oþòË/ñññ===â§{Dï™Wwww555ggg„§§§ššš‹‹ B¨§§ÇÊÊŠJ¥ÖÔÔ „®^½êììL"‘0 c³ÙÊÊÊ...***ÙÙÙvvvÚÚÚ666þþþâYXXøûûÕ¨®®þùçŸãŠ.Ï›7/##ãðáófͺ|ù²§§gQQþÐÅ‹CBBtuuMMMîÜyë½~ü2F"‘F< .ÄŸ¸²²rrrrpp°¶¶6ëÞÞ^|ËÍ›7Ï™3‡B¡ˆ„+222Ú¼yóÑ£G_¿~-lfÐaΑôƒâA8•x:áñx×®]Û²e‹¾¾¾©©éW_}%ÜrÅŠK—.E šðHé=ÿž¼ššBˆJ¥ZF‘Éd;;»’’SSÓÊÊÊmÛ¶!„455:”•••’’2cÆ OOO›ÖÖVÑͦ¦¦âá ÆÆÆmmmÃ4Šãp8·nÝZ´h‘………………ÏñãÇ™L¦££#BèåË—¢/÷êêê¢ûjjjNž<ùÙ³g–––ÂÆÚÚÚŸþùðáÃxδµµ‘H¦©TjSSÓÁƒÙl¶¹¹¹hoøuZâA±Q+W®,))ùá‡BBBFt˜s$qP )S¦Ô××Ï;W´Ÿúúú3fàËÒùÎÎN@```€¯ ·¤ÑhƒÊxWï¿ç0-Z=mÚ´Y³féèè „úûûAdd$Ç+** ÏËË£Ñh fffø^OŸ>睊© Ïñ‹/ð| Õ(ðèèhcccü_‰Dš?~AAþè¤I“:dhhˆþ÷ê?h÷¿ÿýï{÷î&²°°ÇãáaEbWßþþþÈÈÈÈÈH[[ÛÑŸQð3$ñ hjjŽX‰‰DÚ¾}ûÆÏ;7â Ã“8è’%KNž<9gÎá–Ãáœ>}Z˜liŽüäÉ“Édrkk«‰‰ B¨¥¥©ø{£rÀÚÚšÏçŸ8q1B‘H$ƒQRRÒÛÛ;00@¥RUTT–-[WZZÚÑÑqç΄„ñ®bcc›››kkk“’’œœœ†jìíí=þ<þ¨pYUUÕÙÙyïÞ½ååå­­­=Š‹‹Ã/®!;;»ÄÄÄW¯^566†……åååáíl6_ðóó»ÿþ¾}û=zÔØØxâĉœœ‰“ÜÀÀÇ£R©\.7%%!Ô××'ºÄƒ M%¢ôõõƒ‚‚233¥t(õõõíììüæ›oîܹÓÔÔtãÆ   &¼i%ñt ª“J¥:889r¤µµõÉ“'ÉÉÉK–,‘¦$iŒÊõ•L&ÛÛÛ_¾|ÙÞÞoQVVÞ¹sg||üëׯ öìÙ£¬¬ìîîÎçóùå—®®.|=¨«%K–lÛ¶Ãá8::zyyá¯,ƒB]]]ħ­¢Ëaaa©©©‰‰‰ÍÍÍ“'OvppذaÞ³ŸŸ_llì¦M›H$’½½}@@•J5kÖêÕ«/\¸€ÒÒÒJHHˆ‹‹Û³g›Í666þî»ï,X0Ô³ÖÐÐ ŠŽŽVUUõôôttt ‹n ñ HSÉ ®®®7nܸ{÷îPƒæææŽxŽÄE©©©%$$¤¤¤0™Ì––}}}GGG777%%%‰§ƒB¡H¬3$$$66600PIIiñâÅø9’ ’èý‘ÌÌLwww™Ü—NJJzùòå®]»¤ß¥¹¹ÙÛÛ[8ú ÕaÁˑ߻w¯ŽŽŽðÅÆ|€Ëå¶¶¶^¼xñÿø‡Ì;ãœìóúÛo¿,[¶löìÙ¥uuuWWWiÁø@ŽühÍøëÆb>Àè¼"¼"¼"¼"yëý- …‚ƒo5 ¥uëÖ‰®¾u?‹Ãá\¸pAÊïë0æÎ+úÁ=’øçÕø`Áü ä ä äÉÿ;W,­[:VjIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MutexFailed__inherit__graph.png0000644000372000001440000001314512502417165031415 0ustar robertousers‰PNG  IHDR »m¼"bKGDÿÿÿ ½§“IDATxœíPSGÀ7$Ä(!@`¬" ‚N½)å+e¬­W­Ø ´‡‚VåÆªçÀiX°vnDA-bµòËR®þnGA¨IP[Š4ä 1?ÞÞ¯—{@ˆHCB7ûþØ·oßî÷í'oßOÞ£A]l,fbÁ‚ F,q&¯Q,www›¼Zk€Ë庺ºš¶NÓ ~úôéàà £££ÉkF¹\þôéÓß`€££c``àDÔŒ0wïÞˆjñ>q°`ÄÁ‚ Fœß‡à¶¶6fé(†0 C2È$, Ùl¶¥£05Bggç;wZ6ž±0‰Ñ××gé(ŒAÍfï߿߲ñŒ‹ ¾páBpp0‹Åòöö.**¼úê«www€N§ËÎÎöóó›6mÚ¢E‹êëëÉ¥¨#5­ÑhÒÒÒÜÜÜ8NZZšF£©ªªòôô”J¥€³gÏúùù hµÚŒŒŒ™3gºººÆÇÇËd²Ñ'+¯¬¬œ;w.‡ÃIIIyöì5Bjë2™ìý÷ßg³Ù^^^©©©*• @£Ñ¾þú뀀€3fdee™©[GMMKKKKK‹ñ2ýýýS¦LÉÍ͉DÇg0ýýý­­­úx<ÈápÊÊʺ»»«««¹\.9K&“åçç“e¨éÏ?ÿ|õêÕ=âóù/¿üò®]» „ñññ ===nnnõõõÂìììÀÀ@>Ÿ/BBBRSSG[œ &**êÁƒ·nÝòññÉÌ̤FHM¯[·.""¢½½ÏçÏ›7/33BˆŽŽ–J¥ùùù€¾¾¾ßÞoãÀ2‚%‰­­í¤R)A …B§ÓQ»ÌÏÏ﫯¾Ò—/,,4þ[ô÷÷‰DdúÒ¥K ,€J¥R//¯àà`²Ç!„sçÎ-++#Ó÷îÝÓ§G.NÃçóÉÌââbƒ‚Õj5NׯrYY™„píÚ5² µµÕxŸ %BxãÆèèh{{û°°°ï¾ûÝ&¦NÚÜܬ/ÜÔÔd\0‹Å¢KNNNdþÞ½{étú“'OôÅÁX'ƒQ*•dÇb± îì줖äóù, Bøå—_ÈL ¶Ì>X©TQRR"‘HW¬X!‘H¨fÍšÅãñô“ϽNËf³õ=(•JoݺèììÌÉɉŒŒÜ±cYŒËåvttéæææO>ùÄÈâÒ"àÁƒänb$nnnt:](’“ííížžždÚÆfÚü'3–_¢R©d±X¥¥¥b±øØ±c,K©T’½©P( „ÿüç?9NEE…H$ª©©ñööF÷Á)))ÑÑÑ</$$dëÖ­:.22rß¾}‰ÄÝݽªª B˜‘‘,Á¢E‹6nÜ8Úâd0ááá­­­ ¾¾¾éééÔ©[slllDD„P(ééépèV ¬pˆ...ž3g“Éô÷÷¯¬¬„j4šÅ‹;88@µZmvv¶½½}hh(¹IÁ¡ÝJMËåò>ø`úôé...III‡š?¾Z­†–——{xxH$•J•ššÊårœœbbb¤Réh‹“•¼ôÒKl6{Û¶mJ¥’!µu‰Dçâââáá±}ûvr¸ž$‚iÐÔOU’Ãéïýva[[›¯¯¯É;ÇÔo“`'™H°`Ã8::&''[: €†ÃáäææZ: €#Œ8X0â`Áˆ3!ͪT*üìû‹¢R©†]7 ¦Ìb±Äb±B¡0yͿ˗;‘‘³,Ç(8;;›¼NÓ_Éš´ètÄüù>¯Íïàq*“`Eû຺6‰d@"鯭m³t,æÃŠ—”Üf0llmmJJ~²t,æÃZ«TšêjžV«ÓhˆêjžJ¥±tDfÂZ_½z_/U¥Ò\½zß²ñ˜ k|þümýC4íüùÛ–ÇlX…`¹\uùò=Ž 'u:âòå{r¹Ê²Q™«ü¯ bÈÙ AÀï¿X*sb‚KKo;Û‡––ZÅ(¾`±XQ[ÛJ5“ `mm«X</·™ôûm³ÁëV4íÛoy#ó}ÁçÎݶ&!®x .¸«KÊçwŽ"ðxÝÝ2óGeN&äváä¡··ŸËuÖï€Ék,–-9iccÓÛ«àrMgò`Ew“ÉÉ…€¼¼Kb>¢1X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ:Æ?ŒvãÆ &“iéMƒÁf0&õWä_&“yãÆ ãŸóŽŽ®®.µZ}îÜ9óDŒy!Þ}÷Ý®®.ãeÆô–5kÖ˜"ŒÀû`ÄÁ‚ F,q~‚ÛÚÚô/kÿíÐ aªÊ`Úµ;ˆ¿ÊÐ µµµ³gÏ6CCB¡ð•W^éíí8;;ïÜ¹Ó Ã»ººº»»›¡!‚ úúúÈ4›ÍÞ¿¿†i†hvâĉ€€WW×ýû÷Íž=ÛÉÉiÏž=€”””ÄÄD²d¿]SSàÂ… ÁÁÁ,ËÛÛ»¨¨@DNNN@@À´iÓBCC¯]»FÖÈQ®²²rîܹ'%%åÙ³g3ÁÐ!q,ÃcUU•§§§T*œ={ÖÏÏo``@«ÕfddÌœ9ÓÕÕ5>>^&ûõÕ´&--ÍÍÍÃᤥ¥i4ƒa¼úê«òÇDA&“½ÿþûl6ÛËË+55U¥R‘}øõ×_̘1#++Ë$^xÞ¥Êâââç–!_g#—Ë ï¾û®\.ÏËËôööþðÃ...BxúôéÀÀ@‚ úûû§L™’››+‰Ž?Î`0úûûóòò8NYYYwwwuuµ—— µµ•ŒLDEE=xðàÖ­[>>>™™™3!„2™,??Ÿ š477+†BΊOHHèééqss«¯¯‡fggòù|@’ššJ–üüóÏW¯^ýèÑ#>ŸÿòË/ïÚµËHlä"Ôôºuë"""ÚÛÛù|þ¼yóÈ€ÑÑÑR©4??Ð××7–n/..~Nã³Ç.¸±±B¨V«‡¥[[[µZ­»»û•+W „Ë—/ß¿?„P"‘ØÚÚ8p@*•¡P(t:]``àW_}¥¯¶°°p¤`>Ÿ¯ÍÇÇÇ`¦ñPGû•K¥R//¯àà`²Ç!„sçÎ-++#Ó÷îÝÓ§ýýýE"™¾téÒ‚ ŒÄFæèÓjµšN§·´´ùeeedÀ€k×®Qûm,Ýn>Áú€ ¦?üðÃ-[¶ˆÅb&“ÙÙÙIνqãFtt´½½}XXØwß}!œ:ujss³¾Zr$&X©T’sy<‹Å2˜9ÆPG²wï^:þäÉr’Åb ‚‘ņ}ÖÉÉÉHldŽ>ÝÙÙI-ÉçóÉ€¿üòËX‚¤®Ës›é4iÍš5åååçÎ[¼x19ð*•J‚ JJJ$IbbâŠ+$‰§§'÷ÿï(ܽ{wdUdO8<<¼µµµ¡¡Á××7==Ý`&4º®­­ B¨Óé"##÷íÛ'‘HÜÝÝ«ªª „ÁÁÁ@ ,Z´hãÆd%)))ÑÑÑ</$$dëÖ­Fb#÷ñÔ­9666""B( ‚ÀÀ@2àÑúÐx·O–!B¸iÓ¦©S§ÊårjåsæÌa2™þþþ•••BµZ½wïÞÙ³g;88„††ž9sf¤à‚‚‚—^z‰ÍfoÛ¶M©TÌ„C;”šíW~èСùóç«Õjayy¹‡‡‡D"Q©T©©©\.×ÉÉ)&&F*•’•Èåò>ø`úôé...IIIÃÐh4‹/vppƒD"‰‹‹sqqñððؾ};ð¤<vïÞûB‹P;e䤑Lóc‘0Æ"Ø:T*Uww÷‰'Ξ=k†æ0TÌqU__ÿ‡?üáÏþóÒ¥KK=ŽŽŽÉÉÉcÉ4?“$ ßÀM8DcL˜<§IK#Œ8X0âŒé4éõ×_Ÿè8Ì„4fE_ó{Žàµk×êt:óD3Ñüüó  ¿¿ÔÒ˜†µk׆„„/cE§”Ƀ‚öÐh´––}ŽŽS-Ž™°¢}ð÷ß·@‚¨©X:óaE‚‹‹þwq ÁÒ±˜kÜÓóŸúz!„ `}½°§ç?–ŽÈLX‹à šéô_W–N·ùö[žñòÈ`-‚KJ~ÒŸ hµDIÉO–ÇlX…`¡PÜÒÒE9]€Áãÿ[lÁ̆U®¬l²µ¥Sslmé••M–ŠÇœX…àsç4š!×j4•K£/øîÝ®‡ûFæ?|Øw÷îsÞ€è ./o6>“ØÚÒËËÍ™A\0AÀ’’Ÿ†Ï$®¤ä'‚@üJ-â‚›š‰Å [[:“ÉögkK‹ÍÍ,ãÄ‚ø¿zyMß²%B?YW× £Ïñôœn°ÌˆÝM$'òò,ˆù@|ˆÆ`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8CþüêÕ«mmmŒf¢))é¬Yãié@&__ßðððÿOS?ÁÂ` þFk€Á`PÙ‚i4ZFFÆoü|Æ‚\¿~ýÿøÕ)Þ#Œ8X0â`Áˆ3¹wuu 9Äÿm„‡‡¯_¿~Ø‹ÀvîÜÞÕeâ׆Â`Iý:¾ÐÊŽ»g?/êééioo÷ññ!' gìeþ"‘hÓ¦M•••ãh+''ÇÃÃã¹ÅbbbÆQÿø˜\[°ÉY¸páõë×õ“µµµ ,0Rž ¹\>¾¶œg Å`1''§¤¤¤ñ51^XpxxxMMMBBÂÊ•+Ïœ9sñâŘ˜˜7ß|óĉ€C‡eee‘%•Jå²eËÈoŸ×ÖÖ&&&FEEÅÆÆ^¼x!,//OHHX¾|ù–-[ššš¨C9"ݼy3..nÕªU‡Òh43ÁÐákØP¶téÒëׯëGé~øáµ×^YRŸþðÃï¼ó™¯ÕjsssW­ZµjÕªÜÜ\­V[[[­P(W®\‰‹‹S©TFº«®®nãÆË–-[½zõ™3gFF8ZCA|óÍ7qqqË—/ߺuëýû÷_ÌÓÿÏ|çΣG&%%åçç×ÕÕ?~|óæÍEEEr¹üµ×^»yó&ùù‹›7ozxxøøø¨TªÌÌÌ•+W’gee©TªêêêS§Nmذ¡¨¨(>>þ³Ï>ÙPEEÅgŸ}öé§ŸÖ×ד½c0ÓÙÙ955•œKMæÍ›§T*ÛÛÛ‹-2²jGŽ”••‘“¥¥¥"‘(//ï‹/¾hll|X*•>|øoû‹Å" «T*%N788˜žžîëë{úôéÍ›7çççËd2ƒíŽlèüùóÅÅÅIIIEEEqqq¹¹¹/`ˆÂx¿÷Þ{vvvQQQ€ØØX;;»eË– żyó ŸÏ\¾|9**ŠF£i4¡R©d2™Ë–-»pá”)SΟ?¿iÓ¦°°0— 6ŒlhóæÍ^^^6l¸téÒh™öööo¾ù&9—𨨨,Y²„¥ëêê‚‚‚Ǿ¦555ùË_8Ž··wrrrCC`Û¶m©©©o¿ý¶¿¿¿¾ð† –Shhh`2™ÇOIIqqqáp8€16TUUEíŸqêã9Ȳ³³®©i€MXXØ?þèíí}çÎ;v¦M›öå—_–––žíé9ü6ÆãÇ8 T*}}}9²!­VûÜþ ¦?Š^ºtéÇ>ÞÝÝ=""â£>2XrdC+W®\»víÑ£G×­[wêÔ©={öíõQ™Û…===ÿûßǾHWW×úõë¯]»fpÒH&†Ê„ß.T«Õ"‘¨¦¦æ­·Þ2m͘ñabÁ÷ïßONN~ã7Œ_0z.ööö+V¬K&Æ8ø‰¤ÀOtXX0â`Áˆƒ#Œ:Ô‡¤étŸaÅü¾ ÓéCþ™:ïêÕ«Ož<±Td“àææF´®SZ!xŒ8X0â`Áˆƒ#Î<*úÅ>þÐIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Transaction-members.html0000755000372000001440000001370612502417164030107 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Transaction Member List

This is the complete list of members for mysqlpp::Transaction, including all inherited members.

commit()mysqlpp::Transaction
global enum valuemysqlpp::Transaction
IsolationLevel enum namemysqlpp::Transaction
IsolationScope enum namemysqlpp::Transaction
read_committed enum valuemysqlpp::Transaction
read_uncommitted enum valuemysqlpp::Transaction
repeatable_read enum valuemysqlpp::Transaction
rollback()mysqlpp::Transaction
serializable enum valuemysqlpp::Transaction
session enum valuemysqlpp::Transaction
this_transaction enum valuemysqlpp::Transaction
Transaction(Connection &conn, bool consistent=false)mysqlpp::Transaction
Transaction(Connection &conn, IsolationLevel level, IsolationScope scope=this_transaction, bool consistent=false)mysqlpp::Transaction
~Transaction()mysqlpp::Transaction
mysql++-3.2.2+pristine.orig/doc/html/refman/type__info_8h.html0000755000372000001440000001653112502417162023605 0ustar robertousers MySQL++ Reference Manual
type_info.h File Reference

Declares classes that provide an interface between the SQL and C++ type systems. More...

#include "common.h"
#include "exceptions.h"
#include <map>
#include <sstream>
#include <typeinfo>

Go to the source code of this file.

Classes

class  mysqlpp::mysql_type_info
 SQL field type information. More...
 

Functions

bool mysqlpp::operator== (const mysql_type_info &a, const mysql_type_info &b)
 Returns true if two mysql_type_info objects are equal.
 
bool mysqlpp::operator!= (const mysql_type_info &a, const mysql_type_info &b)
 Returns true if two mysql_type_info objects are not equal.
 
bool mysqlpp::operator== (const std::type_info &a, const mysql_type_info &b)
 Returns true if a given mysql_type_info object is equal to a given C++ type_info object.
 
bool mysqlpp::operator!= (const std::type_info &a, const mysql_type_info &b)
 Returns true if a given mysql_type_info object is not equal to a given C++ type_info object.
 
bool mysqlpp::operator== (const mysql_type_info &a, const std::type_info &b)
 Returns true if a given mysql_type_info object is equal to a given C++ type_info object.
 
bool mysqlpp::operator!= (const mysql_type_info &a, const std::type_info &b)
 Returns true if a given mysql_type_info object is not equal to a given C++ type_info object.
 

Detailed Description

Declares classes that provide an interface between the SQL and C++ type systems.

These classes are mostly used internal to the library.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadParamCount.html0000755000372000001440000002734012502417163026650 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadParamCount Class Reference

Exception thrown when not enough query parameters are provided. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadParamCount:
Collaboration diagram for mysqlpp::BadParamCount:

Public Member Functions

 BadParamCount (const char *w="")
 Create exception object.
 
 ~BadParamCount () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when not enough query parameters are provided.

This is used in handling template queries.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_1.png0000644000372000001440000000364512502417165023740 0ustar robertousers‰PNG  IHDR³%†IOúbKGDÿÿÿ ½§“ZIDATxœíšoHSßÇÏÍ´«™KÔ»9uaj* ld¤`A`´ 2J¬ÐôA*TP†e(õ,…4µBIömFˆe1bö §£'bY®ÒvmSfnÞó{pa¬{Ïwš©“_çõèÜÏÙ>{>÷}wν! M¾€Ù `g`Ð`g`Ð`g`ÐlækµÚ††ŸHÁø ’$ëëë%‰gë µZ=<<,“ÉÖQÆÇh4š'N,á €L&S«Õë¥ ã{‚àñ>ƒ;ƒ;ƒ;ƒf#:ctt¹'Z„¡¡¡J¥rjjjµ’ÿ%A$$$p~ºÊÉÉ!bttÔWªX6¢3V7oÞX,–ÉÉÉžžžÏŸ?—””øJÉØØXxx¸gd|||ppÐ}HÓôëׯÿ(ÃñO8#""B$EFF¦¥¥ÕÖÖ>þÜWJ†ùñã‡g$;;[£Ñ¸»ºº8ðGÖˆ:ƒ ˆ–––ää䈈ˆšššÖÖÖØØX@påÊ@iiiAAûÊÙÙÙ   À“'O¤R)I’;wîlmm0 SWW—œœ¼mÛ6™LöòåKÏu„]Vt:]bb"EQ¥¥¥¿~ýBÁïk—õÈÏÏ¢(vìt:+**„B!EQN§t¹\•••‰$"""??ffÆý½½½‰$55•_/RçÞ½{"‘È­G¡P¨Õj÷‚¢Õjår9¿ ÷˜“¯¶««+**Цi@{{û®]»æææVrŽáï( …B———g³ÙšššJ¥Òf³±Õ§§§_½zæt:!„mmm))) ÃÌÎÎnÙ²åîÝ»‹¥¹¹yóæÍ³³³ EuttLNN>}ú4::`6›YaìàСC###ƒ!>>þÚµkÈ „pffæÞ½{¬<Ï1Àh4Úív›Í6<<œ™™YUUÅNÕÖÖ;vìÓ§OCCC©©©/^Doݺ•’’244d2™ÒÓÓËËËÝÚrrr^¼xÑÝÝͯ׋xÏ6‹D¢VvPPÐôô4ÛÏszâ΀,!??ÿäÉ“_¿~ …ýýýË9›*•Š\±3Þ½{!\XXàŒÍf³Ëå‰D½½½ÂÇ×ÔÔ@­V«¿¿ÿíÛ·išfÆn·/..¦¤¤>ô.Õ“³ÙÌN%%%Y,vÜÓÓ³gÏd011±££ƒ|øð{Ê@ÖëE¼§6³Ù\\\|éÒ%a[[ÛÁƒÝñå8YMÓÑÑÑR©”½f–d•áî/r\TTT\\<55011ÁÎêõz¹\¾uëÖýû÷wwwCF£;-»èpºàp8ØÙÁÁA’$‘ÁeJ››«®®Ž‰‰aBH’¤§i2H’¤Édâ¤ee,,,°‡üz½ˆçhëëë‹g&77·¡¡¢œ122‚t²aUU•ŸŸß·oß¼tÆSßkµU(jµ:##ƒ]#Ã0Æjµ9rÄjµFEEyîÌß¿ÏOÅö022"‹½—$((¨°°pbbâû÷ï€ððp·ihš6 È X,g3ÆêêjwBÿÿªwù:322ìv»^¯ïééÉÍÍå̺\.À—/_ïE–011QWW—]VV¶ÌÎ à8eµ¾3\.EQB¡ðþýûì”Ãá IR«ÕNMM566’$ép8nÞ¼IQÔãÇ-˳gÏûŒ¬¬,³ÙüöíÛ„„„«W¯"ƒÐë>ƒ½kµX,?~,++‹‰‰Y\\„–––Êårö¾1==ýüùóÈ`ee¥T*5™L&“iß¾}………wíòëõ"Þn·sÚUTT”œœœ••ågŸ»477ÿüùóèÑ£ž=qgà«]\\ÌÎξ~ýºÕj‰D]]]Ë9›ë·š@Ï;h³ÙÜïR©TqqqIII:B¸°°PUU,“É=zÄwFSSÓŽ;ÂÃÃKJJ2?UžcÏË`Ó¦MR©Ô`0°S6›íÔ©S¡¡¡aaagΜ™››CçççËËËÅb±@ ÈËË£iòœÁ¯©ÓétfddsÚÕ×ר¯¯çÄoܸ±}ûö¸¸8NÇ~'_í;wvïÞÍ.s‘‘‘V«uɳ¹jÎX—/_>~üø½…Ón~÷ÿ+¸àÔ»auòA:ñÿŒ¿g~~~rr²¥¥¥½½}-òo4þ/ë]“hZZÚéÓ§333ÿ&OHHÈÙ³g—ô-Èz7 Î?‚€¿¯ÄJ¥€ÿÓõOA„J¥bO½›âwÌ ÀÎÀ ÁÎÀ ÁÎÀ AܵŽ566®¿ÌÆ‚ó|ãÂ… ¾V„Yoüüüôz=Ç Ü»V †ï30h°30h°30h°30hþre·.šRí²IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLBuffer-members.html0000755000372000001440000001406112502417164027406 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLBuffer Member List

This is the complete list of members for mysqlpp::SQLBuffer, including all inherited members.

assign(const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::SQLBuffer
assign(const std::string &s, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::SQLBuffer
data() const mysqlpp::SQLBufferinline
escape_q() const mysqlpp::SQLBufferinline
is_null() const mysqlpp::SQLBufferinline
is_string()mysqlpp::SQLBufferinline
length() const mysqlpp::SQLBufferinline
quote_q() const mysqlpp::SQLBuffer
set_null()mysqlpp::SQLBufferinline
size_type typedefmysqlpp::SQLBuffer
SQLBuffer(const char *data, size_type length, mysql_type_info type, bool is_null)mysqlpp::SQLBufferinline
SQLBuffer(const std::string &s, mysql_type_info type, bool is_null)mysqlpp::SQLBufferinline
type() const mysqlpp::SQLBufferinline
~SQLBuffer()mysqlpp::SQLBufferinline
mysql++-3.2.2+pristine.orig/doc/html/refman/options_8h.html0000755000372000001440000005227012502417162023145 0ustar robertousers MySQL++ Reference Manual
options.h File Reference

Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes. More...

#include "common.h"
#include <deque>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::Option
 Define abstract interface for all *Option subclasses. More...
 
class  mysqlpp::DataOption< T >
 Define abstract interface for all *Options that take a lone scalar as an argument. More...
 
class  mysqlpp::CompressOption
 Enable data compression on the connection. More...
 
class  mysqlpp::ConnectTimeoutOption
 Change Connection::connect() default timeout. More...
 
class  mysqlpp::FoundRowsOption
 Make Query::affected_rows() return number of matched rows. More...
 
class  mysqlpp::GuessConnectionOption
 Allow C API to guess what kind of connection to use. More...
 
class  mysqlpp::IgnoreSpaceOption
 Allow spaces after function names in queries. More...
 
class  mysqlpp::InitCommandOption
 Give SQL executed on connect. More...
 
class  mysqlpp::InteractiveOption
 Assert that this is an interactive program. More...
 
class  mysqlpp::LocalFilesOption
 Enable LOAD DATA LOCAL statement. More...
 
class  mysqlpp::LocalInfileOption
 Enable LOAD LOCAL INFILE statement. More...
 
class  mysqlpp::MultiResultsOption
 Enable multiple result sets in a reply. More...
 
class  mysqlpp::MultiStatementsOption
 Enable multiple queries in a request to the server. More...
 
class  mysqlpp::NamedPipeOption
 Suggest use of named pipes. More...
 
class  mysqlpp::NoSchemaOption
 Disable db.tbl.col syntax in queries. More...
 
class  mysqlpp::ReadDefaultFileOption
 Override use of my.cnf. More...
 
class  mysqlpp::ReadDefaultGroupOption
 Override use of my.cnf. More...
 
class  mysqlpp::ReadTimeoutOption
 Set timeout for IPC data reads. More...
 
class  mysqlpp::ReconnectOption
 Enable automatic reconnection to server. More...
 
class  mysqlpp::ReportDataTruncationOption
 Set reporting of data truncation errors. More...
 
class  mysqlpp::SecureAuthOption
 Enforce use of secure authentication, refusing connection if not available. More...
 
class  mysqlpp::SetCharsetDirOption
 Give path to charset definition files. More...
 
class  mysqlpp::SetCharsetNameOption
 Give name of default charset. More...
 
class  mysqlpp::SetClientIpOption
 Fake client IP address when connecting to embedded server. More...
 
class  mysqlpp::SharedMemoryBaseNameOption
 Set name of shmem segment for IPC. More...
 
class  mysqlpp::SslOption
 Specialized option for handling SSL parameters. More...
 
class  mysqlpp::UseEmbeddedConnectionOption
 Connect to embedded server in preference to remote server. More...
 
class  mysqlpp::UseRemoteConnectionOption
 Connect to remote server in preference to embedded server. More...
 
class  mysqlpp::WriteTimeoutOption
 Set timeout for IPC data reads. More...
 

Typedefs

typedef DataOption< unsigned > mysqlpp::IntegerOption
 Option w/ int argument.
 
typedef DataOption< bool > mysqlpp::BooleanOption
 Option w/ bool argument.
 
typedef DataOption< std::string > mysqlpp::StringOption
 Option w/ string argument.
 
typedef std::deque< Option * > mysqlpp::OptionList
 The data type of the list of connection options.
 
typedef OptionList::const_iterator mysqlpp::OptionListIt
 Primary iterator type into List.
 

Detailed Description

Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes.

This is tied closely enough to DBDriver that there's a pure-OO argument that it should be declared as protected or private members within DBDriver. We do it outside DBDriver because there's so much of it. It'd overwhelm everything else that's going on in that class totally out of proprortion to the importance of options.

mysql++-3.2.2+pristine.orig/doc/html/refman/classMaxPacketInsertPolicy-members.html0000755000372000001440000000654312502417162027755 0ustar robertousers MySQL++ Reference Manual
MaxPacketInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadInsertPolicy__inherit__graph.png0000644000372000001440000001407312502417165032242 0ustar robertousers‰PNG  IHDRµ»¬;HŽbKGDÿÿÿ ½§“ðIDATxœíÝyXgð_9Lgµ çb©ÛÝgÕgÅj±,…ÕªH) PÁ‚ì Ö õ¨Vô©+*»®+кPä)ÚVv±Ô´*Fl-7"D’Ž„3ûÇøÄá%’¨ïçññyçÍ¿™ùffr¡‘$ 6 º¶ ÀtΆ‚ó¡à|`(̉_d}}ýÀÀÀÄ/÷yG§Ó 'r¡ZÈG{{ûäÉ“ &~Ñϵîîn++«?`ooÏáp´²èç×¹sç&~¡øúCÁùÀPp>0œ åEÈGCCFÓvCè`IOç¹ÉGSS›ÍÖv(ªš››oذA»õhÄs“‚ zzz´]Šj…l6;99Y»õh„Žæ£´´ÔÓÓÓÐÐÐÑÑ1;;fÏž ÖÖÖ P(öîÝëââbjjúç?ÿ¹ººššJõ¨®Ú–Éd‰‰‰VVV'11Q&“:uÊÎÎN @nn®‹‹K¿\.ß¶mÛÔ©S---ÃÃÃ…Báh“S3/))quuåp8ñññƒƒƒªª.](~ðÁl6ÛÞÞ>!!A"‘Fûæ›oÜÝݧL™²gÏž Ú¬Oœp]]]ˆúúú ÒÒÒx<^VV“Éìë뫯¯WVû¯ý‹Ãáutt”••ÙÚÚR …ÂŒŒ jÕöîÝ»îܹÃårßxã7’$ÑÙÙieeU]]M’äÞ½{=<<¸\îÍ›7gÍš•0ÚäT1>>>uuuUUUNNNIIIªª¶CCC½½½¹\îŒ3’’’H’€åË— ‚ŒŒ èééÿv{t1|>_OO/%%E ÑÛÛ«P(T·¸‹‹Ë×_­ÿèѣ蠻¹¹ñx<ª}öìÙ™3g’$)ìíí===©F’¤««kQQÕþå—_”í‘“SÅp¹\ª3//ÏÉÉIm>¤R)ƒÁ¨­­¥ú‹ŠŠœœœH’€ŠŠ j¨¯¯ÜfÃùPqþüùåË—{yy>}šúŒœ4iRMMräëׯ£ó1ì3 333ªÇŽ CYŒ¡¡áÍ›7Ç29UŒX,¦F¸qㆡ¡¡Ú|´µµ©ŽÉår I’€ß~ûêÔå|èâõ‡X,&âĉ|>?**jÑ¢E|>_u„W_}õÆÊÁ[·n¡gÈf³•;@ TUU@[[[jjêÂ… ׯ_OfkkÛÒÒBµkjjvî܉˜¨@]]uŽÉÊÊŠÁ`455QƒvvvT›N×Å?Œ.–H£Ñ||| E"‘T*ÕÓÓ322¢êëë€Õ«W'&&–””tvv~÷ÝwŸ}öõèƒ233G¶—-[¶iÓ¦ÖÖV.—ëëë{ðàA‚ "##ãâârssËËËKKK ,,ìÓO?­­­­­­]³fMkkëh“Sýk×®mhh¸råÊæÍ›W¬X¡Z¡’žž^PPP|||sssmmí–-[BCCŸÝ¦Ó¼ >^‘c;NæååMŸ>]__ßÍÍ­¤¤„$I™L6wî\’$årùÞ½{œœŒçÌ™C=¡É¡ç Õ¶H$Z¹r¥……‹ÅŠŽŽîïï?pàÀ믿.•JI’,..¶±±áóù‰$!!ÁÖÖÖÌÌ,88X Œ695óÌÌÌiÓ¦±Ù츸8±X¬Z¡êÒù|~XX‹Å²±±Y·nu®•s èðù…FNø÷×Ï;÷»ßýî¹þ|¿¡¡ÁÙÙy‚7V¶›.ž_0Ýóñ4&Ož£í*&ÎÇÓàp8iiiÚ®b"à|`(8 Ά‚ó¡hçï„B¡\.×Ê¢±'¢…|tttLür‹ È/¿¼ºt©«©¶kQƒF£Mü•i!sæÌ™ø…ŽEUUãÅ‹§\]CCçk»]¯?).¾Jý/—Ú®EWà|<$•Ê‹Š®Àƒ••¿i»]óñйs·€Á ]Õv9ºçã¡Â« ärâÌ®X,ÕvE:ç ¿ðûïkår588(?{öí–¤#p>TÃt:­°ðg-Ö£;p> VýsH¹œ¨¨¸-‰µX’ŽÀù>¿¿²²N¡òš–$ÉÓ§¹Ú*Iwà|À·ßÞÙI’䉸ƒóPPpeä7I ‚¬ªjìêz •’tÇËžŽáÕ«­¡æ›Æ ½´TÍ¡å¥ò²ç£´´f´o¡ËåŠÂ—ý2í|¾¯;¤66“•ƒ}}ƒ††zLæÃ§Í ñ/㢅¿Ñe¶¶ëÒÒ"/ž©íBtÅË~~ÁÐp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀPp>0œ çCÁùÀÆyÿíÄÄDm¯&L¥Ó´]…Æ888ŒsÿŽ÷÷ÇZZZfÏžýñÇkd}0 ºtéÒ¾}ûÆ9 ü>Ý+¯¼8þù`š¥‘_–Ã× Î†‚ó¡à|`(/B>hšû¥cš:šš9‚f×BS^öß×VëâÅ‹° ¦¦¦?ýéO÷ïßssó 6LÀBŸ·–––ÖÖÖ° ‚ zzz¨6›ÍNNNž€…>‘ :¿Ðh´Ã‡»»»[ZZ&''ggg;88˜™™mݺâã㣢¢¨1ûúúŒŒŒ®_¿¥¥¥žžž†††ŽŽŽÙÙÙ@Djjª»»»©©éœ9s***TÉÔ!º¤¤ÄÕÕ•ÃáÄÇǪ턡Çó±ÛO:egg' 77×ÅÅ¥¿¿_.—oÛ¶mêÔ©–––áááB¡Y&“%&&ZYYq8œÄÄD™L¦¶ŒÙ³g•EÕ„Bá|Àf³ííí$ µ ¿ùæww÷)S¦ìÙ³GC{æqÆùþk`````àcG€àà`‘H”™™ ï½÷žH$JOO€û÷ïÿøã,K&“‘$™““ãááAD__ŸAZZÇËÊÊb2™}}}éé駨¨¨£££¬¬ÌÞÞêëë©¡>>>uuuUUUNNNIIIj;I’ …Tyªm¨©©éŠz(<<<""¢³³ÓÊʪººš$ɽ{÷zxxp¹Ü›7oΚ5+!!s÷îÝwîÜár¹o¼ñÆÆµQ“¨¶CCC½½½¹\îŒ3¨‚`ùòå ##zzzÐÛ_OO/%%E ÑÛÛ«P(<<<¾þúkål=:2\.—z4//ÏÉÉIm'ºÔÑžEÀÞÞÞÓÓ“Úa$IºººQí_~ùEÙvssãñxTûìÙ³3gÎDÔFõ(ÛR©”Á`ÔÖÖRýEEETÁPQQ¡ºÝÐÛ\#ù˜¸×/¦¦¦ §§7¬ cÙ²eEEE÷ïß///  ‹ŠŠŠªª*{{û7ß|ó§Ÿ~¢ÓéMMM3g>ºù†§§çÈ9;;S 77·»wï":G3rÓSýæææÑÑÑ·nÝŠ¥zZ[[•svww_ºt)Õnii±±±¡^û¼ýöÛÍÍÍc/£««K¡PLŸ>trrRŽikk«ºÝ&€®¼¾ ,..ÎÏÏŸ;w.uÖ‹ÅAœ8q‚ÏçGEE-Z´ˆÏçÛÙÙݸñèž_·nÝ9+ê‰uuuÔ­óIµµµ¥¦¦.\¸pýúõT­­mKK Õ®©©Ù¹s'Õf³ÙÊ ‚ªªª±—aeeÅ`0ššš¨ÁÆÆF;;;ªM§OôþÒ•|xyyÉåò;v„……Q=4ÍÇǧ°°P$I¥R===##£ÈÈÈÄÄÄ’’’ÎÎÎï¾ûnãÆ#gµvíÚ†††+W®lÞ¼yÅŠ£u>xð€ºÖ€îîîΡ€ ˆÈÈȸ¸¸ÜÜÜòòòÒÒR ûôÓOkkkkkk׬YÓÚÚJÍaÙ²e›6mjmmår¹¾¾¾DÔÖ××§Z¿žž^PPP|||sssmmí–-[¨ªvŒóü4öëåói´öêÕ«'Mš$‰”SåååMŸ>]__ßÍÍ­¤¤„$I©TºcÇ“9sæ;v F\dffN›6ÍfÇÅʼnÅbµäÐëAÕöh[éÀ¯¿þºT*%I²¸¸ØÆÆ†ÏçK$’„„[[[33³àà`@@ÍD$­\¹Ò‚ÅbEGG÷÷÷«-C&“Í;×ÄÄdX |>?,,ŒÅbÙØØ¬[·Ž*x´í6šçéút,6oÞòD“¨nÓ‘ƒˆÎ‰7ñeh$:ñþ˜D"éèè8|øpnn®¶kÁ†Ð‰ëêêê?þñ‘‘‘óçÏÏ|&Ož3–Ή§#e<©ñÞ¿ò½÷Þ€üü| ÕƒiL~~~PPÐ8÷¯N?0…ó¡à|`(8Š^ßVVV¾ýöÛãŸ. :Nh» ÍèêêÿLÆ›é/_ ÚåË6..|K¢íZ4ÀÂÂbüÏÛñ¾¾}‘äç_ùè£co½åž“­íZt¾þx¤¸ø*íÇ{ð`@Ûµè œ‡º»{ÏŸ¯ àÔ©m—£+p>úöÛêëŸ$I\Ñv9ºçã¡üüŸ ‚‚ þ¹•Çj»"€ópçN—ÛFå úɓ׵[’ŽÀù()¹Îd>Ú qâ>Åà|PNœ¸"“=z[Œ$ÉÛ·y÷´X’ŽÀù€Û·y ÷¨W.JzzŒ“'¯i«$Ýó'O^Ó×þ>²L¦8~ü²VêÑ)/{>H’,(øY*•|¨½]Àå¶M|I:åeÏǵk­ê_ÊâS à||ûí š¾>sä?…‚(.~Ù_åêÄ÷×µhþ|7&“¡ÌÏ¿2gÎôW^™B ²X&ZªKWàÏo‡°µ]—–±xñÌÇúrxÙÏ/Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(8 Ά‚ó¡à|`(C~?H*•?~\"yî~òÔÊËË;;_Þ_.ôññyõÕW «Þ,¹°°Pkuaº!88xÔûgËår¨¨¨ÐRm˜–m߾ʀ¾þÀPp>0œ çCѹ|´··/X°@Ss[ bÑ¢EÛ·o Çzc(e% ,hoo×TIj©Öéïï¿iÓ&÷ØÂ4»­ÔÒ¹|h\jjjaaaAAAJJJww÷_|¡íŠx<޻ᆱڣ¬sÿþý$Iîܹó±3111 ~f5¼ ù077Ÿ2e ‹ÅruuŽŽ¾|Y'Þû"B$©ö(ëtrrJHH¸uëÖÀÀcn³jffýloÕû4ùX°`Á™3g"""–,YrìØ±~ø!88ØßßÿðáÃpàÀ={öPcŠÅb__ßúúz¸xñbTT”OHHÈ?ü$IGDDøùùýýï¿~ýºêÑ’:x^¸p!,,léÒ¥Édj;aè‘qÔe0TûÒ¥K~ø¡¯¯o@@À±cÇ€ ˆãLJ……ùùù­Y³æ×_U»îååå‹/>~ü8Õ9rÕ@.—§¥¥-]ºtéÒ¥iiir¹œ*ìÚµkAAA+V¬€eË–©­“N§€B¡€¾¾¾äääwß}700ðСCR©tØ&¢Æúè#jkkëÇÖÞ…jW ÌÌÌrrr******JKK¿üòKj|e°ÆÂ‚N§+_ëvttPé†ÅbuvvR톆êüêvÄ“z&ùðôôT(G¥N@@£Ñ+++ûûûe2“É400xçw:táÂ>Ÿùò対újä¬RSSÛÛÛoß¾­¼tPÛÙßß_VVF=ªÚ¡PÈçóù|þ½{÷rss9޹¹¹L&“ËåL&S*•RW‹/V­‡ºÜ~,µ«^^^]]]MMMŸ|òÉÉ“'GN+‹Ñ3g2™ ,øâ‹/x<^sssVVÖÂ… GŽæãã“™™ÙÜÜÜÜܼÿþ®®.ªäŽxRÏäþQt:}Þ¼yßÿý¼yó¨}}ýM›6¥§§ß»wÏÖÖvÛ¶múúúAAA …âàÁƒB¡:IþùçÃfµpáÂõë×K$ooïÐÐPêè:¬„BaJJ uÙ¡Ú€5kÖP æàà””D£ÑLLLbcc?ÿüóI“&…„„x{{òÉ'………2™ìСC===Ó§Oߺuëßþö·Ç®¬ÚU€¨¨¨ÔÔÔ?üF£Í›7/&&æþýûÊ©¬­­_{íµ€€€Ó§O£ç¿víÚÔÔÔÕ«Wëéé½õÖ[Ê *44T"‘$&&J$’Ù³gÇÄÄŒ¶#žÔûGåççiäóýÌÌÌÎÎÎ-[¶Œ}’ööö+V(—>lщ!<юؾ}»¥¥e~~¾²Góç©TÊãñΜ9ó׿þUã3ÇÆN#;Bóùøõ×_cbbÞyç™3Çu7ccãE‹¥SK#;âY_°çÑDœ_° Ά‚ó¡à|`(8Ê÷O <믬aºìý÷ßWòúV"‘œ>}šúÆörúÃþ úÁõ|`Ø0øúCÁùÀPp>0œ åÿsç³M ¢|IEND®B`‚././@LongLink0000000000000000000000000000015200000000000011563 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__inherit__grap0000644000372000001440000001105112502417165033366 0ustar robertousers‰PNG  IHDRà€»òìbKGDÿÿÿ ½§“ÞIDATxœíÝkPWð“ Ô!‚¤P/ híT«Ž¢"Šˆµ‚Š(ˆT¡kÕ©ŠV§µÈØZʨàAÀ*e**-–ŠPPi}kÁ*(0Éeß;oÞ˜›Q"YÂóûtr’=ûdóïžÍæHI†!ˆŠlèÐ     jè´yôèÑÆE"‘¡ 1ZæææIIIŽŽŽ†.D#B´²²òÒ¥K†.Ähååå…††B@ûåܹs†.Áh‘H$C—ðp        ú úý&ÑÛÛõî»ïZYYM™2%66V"‘¤’A: zzz&Ož\]]}ðàÁššš]»v:ujþüùR©Tíë Þ¦Óé;wîÀb aÜf2&û÷ï·µµ½zõ*…BA;vÁ‚'""Bõõ2™¬³³o3Œøøø-—Œá J"‘²²²ÜÜÜlmmããã³³³‡þÕW_!„6oÞŽ¿R Ðh´[·n!„.^¼8qâDsss—ììl„L&KLLtss³²²š>}zYY™â”ŠÏ°.\7n“ÉܼyóóçÏÕv¢§cÅvNNΞ={ðtâ,,,¢¢¢rrrÔ5mÚ4„Ò8ÝÝÝü1ƒÁ`±XÛ·oÇl#‘H§Nrss³¶¶NHHx£Ç|à`–››«K…¡U«VñùüŒŒ „Њ+ø|~jj*BèÉ“'¿üò‹X,Æ0,''ÇÝÝ]&“ 33³””.—›™™I¥RAjj*“É,((hmm-..f±X¡úúz¼¼áããsÿþýÊÊJWW×½{÷ªíÄ0¬»»;==/OÞîêêButt(Õ_QQ1räH-ãã/Sl‡„„x{{?xð ®®ÎÃÃß)Bhùòå]]]ééé¡ÎÎN]]nn®nŸ†aI@kkk1 ëëëSj×××K$;;»«W¯bæççaÇ3119tèPWW—L&ëéé‘J¥îîîÇ—{âÄ Õ€ÖÕÕÉksuuUÛ©©NM½qãƒÁÐ2>Þ#o÷õõQ(”?ÿüï/((ÀwŠ*++S|ïº:‚Ô¦x„••BÈÄÄD©¢P(K—.-((xòäÉ•+WBBBB#FŒ(++«¬¬d±X³gϾ~ý:™Lnllœ4i’|̉'ªîh̘1xcüøñÍÍÍZ:UÑét;;»Û·o+õß¾}ûý÷ß×}¨ööv©T:zôhü¡«««ü•£FR|ïFÀHª]```aaá¹sçfΜ‰OÜB¡P&“åååñx¼ðððÅ‹óx<‡;wîÈ·º{÷®êPøi !tÿþ}< š:Õ Ù¿¿âwöÞÞÞƒúúúê>ÔÈ‘#)Jcc#þðÁƒx›L6ºÔЧpmtŸâåÓ™Ú¶D"a2™#GŽäp8øSB¡ÐÜÜzôhSSÓñãÇ_¸pð¾¾¾ýû÷;;;[ZZNŸ>ýôéÓªÍÈÈprrb0›6m …j;±Ã¤ØÆ0L lÛ¶ÍÃÃF£¹»»ÇÄÄ<{öLÓøb±xæÌ™–––Jãðx¼ÐÐP{{ûÏ?ÿß)t éP]ìÞ½;88ø•6Q –ÒC-¯GCéŽø5þõ"‘¨µµ5++ëÌ™3†®¼2£»¦VqóæÍÉ“'¯[·nΜ9ýç­·Þb³Ùºtêq|@Âü‡Î;Dä ;‰”››»bÅ C¢‘ñŸAÁ „„„6n3¥¥¥º]‰D2„¹9üg¯7„¨ƒƒ…BD7_¬­B<^¡¡ Ñ…B‘ÿŽOL„¾Í4¸´µ=}ÿý}$ª­ÝÇdZº#“‘Þ””Ô‘É$ +/¨¯ ª7gÏVÉd2™ åæVºãÕ¦¦Ž?þhÆ0„a²ººæ¦¦CWd$  úqáÂ-*?˜$*•üÃ0ËëT?rs«$Þ–Hd0Ëë TîÞmùçŸNÅž‡Ÿüç?­†ªÇ˜@@õ °°ÖÄ„¢ØcbB),¬5T=ÆÚ_2–—W-¿ð·kÄbi^^5Ücî?hýþ{SGGjÿ¿ÿòÿýဗcl  ý¥:¿ãLL(EE0Ë÷´_ÄbiaaÒü.ª @ýS@wÐ~©®nâóE ™J¥P©ÜÿÚä§O…0Ë÷,é>_ô÷äsrn „V¯ž.ïùè£÷ÞzËÜ• ¨>±Ù'B©©a†.ÄxÀ                                                                í…¿°|íÚµ††V3Øååµ „ ]È 6fÌ//¯ÿ?ÆP©TÃf Èd™L3tƒ•JUÌä gP‰=gÎÕ†´Ÿþyß¾}Š™„kP@hP@hP@hP@hÄ hKKË ·úÇËË«¥¥E{ŽãÈ-X°à³Ï>3à͸ÎÎΘ˜˜•+W.\¸022òúõ놪éûóR‹X%¬ÄÄÄóçÏŸ?>33“Åb)}ÓÔ .—»dÉí¯áóùfffÑÑÑ)))sçÎýú믫««õ[‰vŠuZZZ®Zµêîn|ê„N§[[[#„¬­­###ž>}J§Óõ¸ ™LÆç󵿆Ãá¼÷Þ{QQQøC'''—››;eÊ=V¢bÇ_¿~ýÝÝ+ŸA½¼¼JJJÂÂÂüýýOŸ>}ùòåU«V-Z´(++ !tìØ±„„ü•B¡Ð××·¾¾!ôÛo¿…‡‡ûøø_¾|!„aXaaaXX˜ŸŸßÆoݺ¥8YàsGEEEhhh@@À±cÇÄb±ÚNôâD£û¤£ZBH"‘¤¤¤¤¤¤H$Õ ) •Jµ°°Ð²‰ö£„ñññK–, LNNîëëûôÓOBK—.Õ2lyyù²eË‹ Û±c‡¦1ñJ®\¹öÑG={Vþ!ªvªîQ*•r8œ   ÿ¸¸8@€R¬Sñhë¾÷Wò:S|MMMrròúõëÓÓÓoܸ‘™™¹aÆììl>Ÿ?{ö슊 ©TŠª¨¨°··wuu‰D{÷îõ÷÷?{ölhhhBB‚H$*..>yòdDDDvvöš5kâââTwTTT{óæÍÓ§Okê¤ÓéÛ·oÇŸUlk¡¶$„P~~>—ËMMMýæ›ojkk9ŽüõB¡P(vvvfffΟ?ßÄÄJÓ&ZŽBèÈ‘#)))¬®®>sæÌ÷ß*((Ð4¬@ àñxŽŽŽŠodذaL&o«Ž‰÷ÿúë¯IIIl6;55µ§§GS§êóóóËËËãââ>üøñ㜜„Rr¯´wݽN@ƒ‚‚h4šB(88˜F£ùúú"„zzz<<<¨Tj]]BèÊ•+>>>$I,c& MMM}}}/^¼hffvþüùÈÈHOOO›©S§FDD¨îhÆ ,ËÍÍ-""¢´´TS§……Å¢E‹ðgÛZ¨- !TRR²eË&“éââÂf³«ªªð×GDDøùùùùù-_¾üòåËAAAò¡4m¢å(I$’k×®mÚ´ÉÞÞÞÅÅeíÚµòw§eXüª—D"©}GZÆô÷÷·´´\°`BH>;«vªî±¸¸xݺu...ÎÎÎ;wîtww×t<_uïº{kP†Â¸Wl#„Èd²§§gyy¹‹‹KMMͶmÛBVVV‡ÎÏÏçp8cÇŽ ž:u*—Ëuuu•éâ⢺#‹…7;::´tj¢øUF±­¶$„P[[›â*ŸÇsrrBÏŸ?ÏÊÊJHHHJJŸҴ‰–£ÔÕÕ%“ÉF…?tppP}#ªÃZYY1âŸþQ ʽ{÷¾ûî»#GŽðù|Mc2 ŽkêTÝ£X,–m''''''¤–w¤vïºÓÿ—¤9sæÄÄļóÎ;&L°µµE=þ\&“íÝ»W"‘\½zu÷îÝEEE ãÁƒ£GÆ·zøð¡êPÍÍÍxp?~lcc£¥S-&“ÙÒÒ"?Ä=¢P(ø„¨¶$++«áÇ>|Ï">¥*iffæëë{éÒ% Ãð“ÙK7Q5bÄ2™Ìårñ¼µµÿ©vÆŒ¹¹¹ûö퓟GKKK%‰™™™–1ÕžtU;U÷øÅ_´µµ9;;#„*++W¯^ýªïHÓ)_Gú¿Í4qâD©TzâÄ |vC‘H¤¨¨¨òòòÞÞ^±XL¥RÍÌÌ.\˜œœ\QQÁãñªªªÒÒÒT‡JLLlii¹wï^FFÆüùó5uöööãÏ*¶}}}=zãÆ .—[[[{àÀüÚQmI!OOÏôôôöööÆÆÆ;v©VeaañìÙ3¡Pˆ?Ôe%T*ÕËËëèÑ£\.·©©)33sÞ¼yøSÚ‡ ¿sçNllìÝ»wOœ8QPP€_iSGª{ôññÉÈÈhjjjjj:räH{{»üÅò:_úŽúIÿgP2™Ÿ¸uÙDÕ–-[###MLLæÎB¡P&L˜°lÙ²üQÓ°t:=---999::Z(:::8p`Ú´išÆ|¥Nud2Y$EEE‰D¢iÓ¦á5ØÙÙ)Ö©å½ÒÞ5y#Ëí222ÚÚÚ¾üòKÝ7iiiY½zuYY™Ú‡Z:1yãËíúúú¸\nIIɇ~¨ß‘ÁФç€þõ×_l6{áÂ…“&MêÏ8‹/Ö¥7XQVÔƒA‹h#‰Ž?^]]Íår===W®\I¡P^º!|ŸÓ8ƒjôìÙ36›}ïÞ=6›––RZZº}ûv™L¦öõ¼mˆ€3¨F'Ož¤Óéß~û-™LF±X¬)S¦¬]»¶¤¤DíÏý¼mˆ€3¨F¥¥¥kÖ¬ÁÓ‰377_¹reii©Ú…¼mˆ€€ª‡ÿ­¸œçêêúèÑ#¼­´ðo€×¡ ÐWC"‘ä× jW*ysëІ¨z–––ÖÖÖªÿ8®¡¡aìØ±x[—…onÚÕhÞ¼y'OžTüÎ.‰Îœ9óÁà›››ñ†–…òuhøC=®C"  ………uuumݺµªªª¹¹ùúõë6l`0ò{IjWØ:´!æh4ZZZ‡ÃIIIimmµ··÷öö ”ÿk$¥…JëåäÞÐ:´!~‹ðCѿŃAú:`á߀€¾:¾uëVCW1$@@¡A@¡A@¡A@¡)ߨ¯©©Áÿˆïï¿ÿVîRüÒÈW?`(o¿ý¶ÆÿOD× €Ð  €Ð  €Ð  €Ð  €Ðþ ͯÃ×eÎÖIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2mlastnode.png0000644000372000001440000000036612502417165023462 0ustar robertousers‰PNG  IHDRɪ|½IDATxíÝ!NAÅñ¤‡à\ ÷à Um@`Ô5iÒ`ëh ‚ÅW7] b§ÝˆŠ&oföÍd¾YÔ4 üšcø ‡€´‹Åòù3v=¼]†§µ\B… I¿‹=B·™B¡®;¸k´µ W°ÍN@vyÍÑÖ4ãß÷]ÈâYìã§|M}]ÔÚx6a }ôdׇØYüú¨>¤||5?Ó>|žB"¡î'¡IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/nav_h.png0000644000372000001440000000014212502417165021755 0ustar robertousers‰PNG  IHDR ,é@)IDATxíÝA @BQ­³šÛ›Ð¢Žáà) )ëý éaÅèÜ¿Æo‡RlÐßIEND®B`‚././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__inherit__gra0000644000372000001440000001735112502417165033333 0ustar robertousers‰PNG  IHDRÓË{à1xbKGDÿÿÿ ½§“žIDATxœíy\×úÿO ¬‚ì  ²Dp^®ˆZªÅŠ‚^à*Uäªø²‚Z_W¡Ö·ª• Š^¨… ¢¥Š–¯;"kEQ¢"I „d’ùý1÷—³A2BÏû¯3ÏLžç9g>œsæÌ!! ( µ£w¿)Py|€ÊƒàTˆŠN¼xñbÍš5<OÙ@†nnn¿üò‹¢³E϶çÎ[²dIhhè %δµµ•––*Y9QØçaœ;wn S‚ü-Àz.%Ày ò ø•Á¨<>|ÖÊ{öì@@‡ÝÝÝ cÇŽ544œ8qâîÝ»Qg&’~òøô*å€#}<Û'ººº&MšD&“÷îÝëààPWW·mÛ¶âââëׯkjjÊ^ßÜÜM$Ë999Û·o—ìÞFŒ‘““#ו¯¯/ÀÒÒRÊ‹Åúî»ïÌÍÍmllâãã±×<á·ß~sss355Ý·ovååË—½½½õõõ)Jrrr?›ôÒ¥KÖÖÖL&pöìÙ/¿ü²»»AÄÄD[[[ ‹eË–±X,ìb@@&“I$RBB‚@ ¤ºÈÞ²Oå£5‹ c³Ù™™™€Å‹³ÙìôôtÀ»wïnÞ¼iff&PÍÉÉqww‰DGGG'--N§Ÿ8q‚H$r8œôôt‰D¥RÛÛÛ¯\¹bccÿ¥b…9sæ444”––:99%%%É5¢(Êb±Äݘ¸ŒÝÈŽŽ©üïÞ½K&“•øÇ.“,GDD455Ñh4,( $$„Édfdd:;;Ùl¶¶¶öŠ+^¾|™““xûö­TŸW]]Ýõ!Ø©eË–EFF¾~ýšL&?xðEÑýû÷»»»Óh´ÚÚZŸøøxìʽ{÷.Z´èÅ‹4mܸq[¶lŒºÈ½eʅѧ~@y•••(Šòù|©rcc#‚ –––7nÜ@QtîܹÉÉÉ(Š2 --­0™L‘HÔÕÕ% ÝÝÝO:%v{úôiYåÑh4qnNNNrŠòT¤¼û÷ï›››+ñYÄe>Ÿ¯©©YWW‡Ù©T*PRR"Y÷ÞÞÞÇs8¡PxóæMÌ(¥º·ÿŠk.·Œ ‰D"“ÉYYYØ).—«««›——×ÑÑqüøq]]].—»{÷n‰táÂ:^TT$wžçïïߨØXVVæìì¼}ûv¹FTÁ<EÑ÷ïß»¸¸LŸ>½¨¨¨¡¡J¥º»»Ož<™Çã)ñͽ$G«ððð€€€æææÚÚZwww,¨lÝ™L&@(**êîîÞ´i ²²Rj´½wïýCP …³fÍúé§Ÿ †¥¥å¥K—PMLLôôô¬­­­­­>>k×®ŒºÈ½eÊ…¡Žyžrå¡(ºzõj===6›-éÜÑÑQ[[ÛÕÕõâÅ‹(Šòùü;vØÛÛøùù9sFVy™™™vvvæææëÖ­ãr¹rè‡-+µšÀáp6nÜèáᡯ¯ïîî¾sçΞžEþÁ”)S ¤ü0Œ¥K—š™™Q(” 6`AåÖýçŸ655ýâ‹/Ž;F"‘ú3Ï;zôèØ±cù|>Š¢ …Á`ðx¼øøx+++##£°°0&“‰9a³ÙË—/711133‹ŽŽîîÈÞ2å ºòúÃÖ­[ÃÃÃUúˆ”bä.G à•ú—»Ϥ.}êgpßaðx¼ööö“'Ož={vPA†ƒû„ñàÁƒ &¬X±bÆŒŸâgäÈ‘111ý1 ÿ!ÊP©K»á…@”Ó§~>ë½*a T ò ø•Á‡>VUŽ?®ž< ÃŒŠŠŠ>®P´Ðwçι;u!D¢©±q ÞY|ÖØÚÚ*YIV¸ªQÎÖ­ÔS§n¬óñqÀ;—! œç} "*((ô5¦@•÷1ܼù„Íæòó+aŸ×CdÊû¨ÔJlÜÓÓûÿ÷ït†$Py*ÓÓÃÿã45 ùùpÀý òTæúõzñ‹ ¢?ÿ¬íîîÅ7¥¡TžÊäå•Kþ‹>‚¯]“³w¢¨<Õ`±zJJž…’KQ„üürܲ@å©FQMÊ"‰nÞ|Êdvã’ÏÐ*O5Ο/‰ä¬½_¾\#k„(*O^¿~ÿàA³ì[Eóòâ’ÒÐ*O «55å´˜H„–—?§ÓYêOiè•§ùùØ2ž,( ါ£ïÏût44…b„•DÄã tÄg᪞JÀ½*É¥KÕ«WŸno?„w"C8ÚBð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åApBÉoߣFÂ»Šƒ‚††¾ŽŽ-ÞY  ƒ-ŒAÿžäÖÖÖ 6øùù v È@ñóÏ?·¶¶vu|C·¯¯ohh¨A„óçÏ«! œçAð*‚Py|€ÊƒàÃðWÞ³gÏ’¿„üÉ´··‡‡‡5ÊÀÀ`âĉè\U¼vjcø+o`éììôööÖ××ÏÍÍ-++ûÇ?þvõêUuæÐÜÜlnnŽ•7oÞ¬ÎèüÝ3ÕHLLô÷÷ÏÌÌÄGýúõë|õÕWjËA$uvvbessóäädµ…@>‹>@ œ>žÇãaµûí·ßÜÜÜLMM÷íÛ'®²¬Q $$$Éd‰” ILL´µµµ°°X¶l‹Åøúú,--¥rëôÏ‚Á~IÈÍÍíóš°°06›õ%‹/f³Ùééé€wïÞݼyÓÌÌL  (š““ãîî.‰8ŽŽŽNZZN?qâ‘Häp8ééé$‰J¥¶··_¹rÅÆÆÐØØˆU+Ì™3§¡¡¡´´ÔÉÉ)))I®EQ‹•‘‘¥'.3™LƒÁPT‘ˆˆˆ€€€¦¦&æáṄ„„0™ÌŒŒ @gg§"ãÞ½{-ZôâÅ 6nܸ-[¶ìß¿ßÝÝF£ÕÖÖúøøÄÇÇ‹+‚E”,÷?ºrBCCCCCû¼ìù\”WYY‰¢(ŸÏ—*766"biiyãÆ EçΛœœŒ¢(ƒÁÐÒÒ:pà“ɉD]]]B¡ÐÝÝýÔ©Sb·§OŸ–UFÃÎæææ:99É5*Ê“Á`˜L¦Ü³|>_SS³®®;¤R©˜+@II‰d]]]ét:öñââb///*•ŠY=z„•å*O¥èÊQò>‹Ñ`hhÐÒÒ’*455.\H¥Rß½{wýúõˆˆ€‰‰IIIIii©ÍôéÓoß¾­¡¡ÑÜÜìåå%öééé)ÈÙÙ+¸ºº¾|ùR‰Q2™üèÑ#IãÇ'NœØÓÓóæÍ¡PèèèˆÙœœÄ®¬¬¬$k¤ÈØÚÚJ¡P@˜={vKKËóçÏŹ¹¹¹+ÊMÕè¸ó¹(O9¡¡¡çΛ2e 6†r¹\‘HtþüyƒÄ`0¬­­kjþ÷ÃÚõõõ²®°NÐÐЀÝEF¹ÌŸ?ÿàÁƒ¨Äçää}}}2™¬©©ÙÜÜŒÙ›šš¬­­±²††œv–5š››‹û$&“YZZjee%~y_]]½k×.E‰©»SýmÅ-.·Œ ‰D"“ÉYYYØ).—«««›——×ÑÑqüøq]]].—»{÷n‰táÂ:^TT$wžçïïߨØXVVæìì¼}ûv¹FTÁ<EÑ·oßš™™EDDܽ{·¦¦&)) pùòeìlxxx@@@sssmm­»»;æJnäãââBBBZ[[kjj|||Ö®]›˜˜èééY[[[[[;yòäU«V‰+ÒÕÕ…~8òö?ºrþ^ó<åÊCQtõêÕzzzl6[ü©ÜÜ\GGGmmmWW׋/¢(ÊçówìØaooo``àççwæÌYåeffÚÙÙ™››¯[·ŽËåÊ5¢Šgñ(ж¶¶†„„XYYNš4éÒ¥KâS céÒ¥fff eÆ ˜«þ+Íf/_¾ÜÄÄÄÌÌ,::º»»›ÇãÅÇÇ[YY………aSL@0eÊ©Üú]9#åõ‡­[·†‡‡«ô)ÅH*1þÍQò†ÀJ2Çkoo?yòäÙ³gñÎ2`|–sÏyðàÁ„ V¬X1cÆŒOñ3räȘ˜˜þ!j€€J<¦ J!77wñâŃ2€`7ëܹsƒeôya T ò ø•Áu†šš¶öv€J­€ºTÞÇŸ_¡¥¥ hog•—·âÎ*OeD”ŸÿP ´´4/\¨Ä;£! TžÊÜ»×Èbq±²@ ¤R+D„oJC¨<•Éϯ ÿ×nïßónßnÀ1Ÿ! Tžjðx‚+Wj$;9"‘@¥Và˜Ò*O5JJžp¹,à!ˆè?jx¼á¶ª7Ø@å©F~~¹††ô÷˜ðxHq±œÿ6‚(*OØl^qq½P(ý<¡¡AÈÏ/Ç%¥¡ Tž \½Z+÷1V(ýõ×6›«þ”†.Py*PPPI Èc Â?ÿ¬Ss>C¨<¨©i)^¹«®~®Æ\†@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|øàÛjãââ?~Œc6Cˆînƒ7o,žáÈ!&&&$$D|øòÂèÑ£I$‰A†3õõõ3fÌü…zéïI 1c†Z“‚ü øñÇ¥,pžÁ¨<>@åAð*‚Ÿ—ò^½zåïï? ®>+><{ö¬¿¿{{;vøöí[ÿªª*•"`zþþþIII’Ë Bq æÍ›÷Ã?Ðétõä>7å ^^^Ïž=ëííÅ+**Byù ôÑ£GD"qôèÑaaaø¥ nÞ¼YRR‚Wô”””üüü¼¼¼#GŽ (ºk×.€zÚdØ*oìØ±‚444z{{i4Z`` ¤òÜÜÜtttŒŒŒ¢££qÌ3((èðáà —èÆÆÆ¦¦¦fffNNNñññõõõ===êi••çïï_TT¹`Á‚3gÎ\»v-,,lÞ¼y'Ož=ztß¾}Ø•\.700°±±pïÞ½¨¨¨9s愇‡_»v €¢hAAAddäܹs׬YSUU%ÙÃcþÝ»w—.]|ôèQ@ ×>Äe;;»úúz@]]‰Dúæ›o*++…B! ¾¾~ìØ±RŸõ÷÷¿~ýzddäüùóÿýw€H$úý÷ß—.]:wîܵk׊_ðp8œäääo¿ý644455•Ïç¯Y³æüùó€®®®™3g¦¦¦b *--•Û¡¡¡¶¶¶”ýéÃû÷ï¯Zµ*00pÑ¢EgΜéOûIKK NKKCDQ-¤¥ ¡ …â6QÔà²!T’ÐÃ}Äg***RSS£££322îß¿âÄ‰ØØØììl6›=}úô»wïbw÷îÝ» ÅÉɉÇã%%%-X°«ÿ¾}ûx<Þ•+WþóŸÿ¬\¹2;;{Ù²e{öì‘ táÂ…={öìÞ½ûÁƒ⦗5ÇÇÇcg%Ë^^^˜òÊËËÇçââB ž>}*0åIqçÎ_ý5&&&==½««+???777:::;;{éÒ¥iiiØeGŽéèèHKKÛ»wïÇÏž=ëããSYY ¨­­ÕÓÓ«ªª<{öŒÏç{{{ËmÿÞ -[¶TTT\½zU2“žžžíÛ·;;;çääÄÆÆfdd°X¬>Û——G§ÓÓÓÓìââbhhØç] Ñ/Ý|ÈÇ(oÉ’%úúúsæÌ„‡‡ëë뺺º<<<ˆD"F\¿~}Μ9A  (Êårµµµ uttòóóW¯^=uêT333Ÿ•+WÊе±±qss[¹reqq±"ãˆ#æÍ›‡•,;¶®®EÑŠŠŠñãÇkjjŽ7®¼¼¼±±Q$¹»»ËF\°`ÁW_}`³Ù—.]’Lƒù믿֭[G¡P–/_^\\ìëë[SSƒ HuuupppKK ‡Ã©ªªòööÖÑÑ‘Ûâ 666ÑÑÑG}ûö­Ø¨­­}âĉ¸¸8333ì}fwwwŸí(**Z¿~=‰Drppˆ‰‰)++“[ Œ•+WÎ;wÞ¼y‘‘‘l6{Û¶mý¹ ²!ú ó+£úúú"‘(UhhhL:õÖ­[7n:t(///++ëË/¿ ÷ññ¡ÓéNNNbŸ²lll°‚­­mGG‡£\ÆŽËb±ž>}ÚÔÔäíí ˜8qâµk×ôôô\\\ôôôd?bnn.YŽŽÙ$™L¦H$²²²ÂŒÖÖÖÎÎκººOŸ>¥Ñhëׯ¯¨¨ ÑhUUU~~~ŠZ@2nppð­[·öïß¿~ýzÌB$_¾|yàÀ.—ëììÜÏö¼~ýzÑ¢EâÃ#F ¢¨©srr¬­­•´!×à²!”{ËÀÿ¾íŒ3vîÜ9jÔ¨1cÆXXXz{{E"QRR‚ 7nÜØºuë… ÌÍÍ›šš±Oµ¶¶Êºzùò%ÖLmmmfffJŒr155ýâ‹/²³³GŽ ?~üáÇõôôäµ yhii)›¤‰‰‰††N·³³´··›››__ß;wî´µµ9;;c+FÛ°aƒ¢×ÂæÍ›W¬XqùòeÌÒÛÛ›”””””äçç'ŠŠŠ”5ºFFF‡ÂôÄáp ÆöíÛûlj%È6¸l•b ü³­§§§P(<}ú46BBB­[·º»»‘HÔÑÑùúë¯SSSïÞ½Ë`0ÊÊÊŽ?.ë*%%åÕ«WOž<ÉÌÌœ={¶"cww÷•+W°³’e€——×½{÷ÆR( …RVVæååÕŸºÌŸ?_2IlO$ýýýùå:ÞÒÒrâĉY³f|||.^¼8zôh"‘8nܸ?ÿü“L&“ÉdE- ‹B¡ÄÆÆŠwsAˆD"ŸÏÇ&R===ýÉyêÔ©oÞ¼innÞ´iÓ… äÖ¢ÿÈ6¸l•b |Ÿ§¡¡1mÚ´«W¯N›6 ³hkkÿðÃéééoß¾µ²²JLLÔÖÖ^²d‰P(üõ×_Y,6]عs§”«Y³fmܸ‘ÇãDDD`]½”Àb±8€Mï$Ë//¯ÂÂB±ò&Lxõꕇ‡Gê²`Á@ššÚÙÙéèè¸mÛ¶ýë_€õë×§¤¤¬^½ZKKkæÌ™X&LàóùXoêáá!|}}•´€l¸   Û·ocK?±±±;wîÔÓÓ Ø´iSAAAŸ9GEE¥¤¤¬ZµŠ@ L›6-&&FKKKn-ú‰lƒË†è¿71Òûó?}—Tffæëׯÿýï÷ÿ#¯^½úç?ÿ)^S•:Tb„ Øà?þø£………äþ¼mù|>N/**úæ›oÖ3d˜1ÀÊ{üøqLLÌ×_Ýω”"FŒÔ#dðԔёbÐG[¤Ÿ ü³ígEgggjjj]]Ýû÷ïíìì"""¦NŠW2ð I’áÜç±Ùì•+Wêèè$&&¦¥¥Íœ9ó§Ÿ~zøð¡:s Óéß~û-VÆ}GÖgÅpîó²²²¼½½°C;;;ƒ‘››;qâDµå ‰°ùÜwd}V ç>ïÖ­[’¯‘‘‘›6mÂʲ;€¼RŠŒ²;…„BaVVÖ’%K,X°gχÀÖl.\>Ü‘ÕÿèÕa«<ì}¢­­­¤QOOOüì²;0»ÔF)EFÙByyy·nÝÚ³gÏ¡C‡ÚÚÚrrrÇŽP©T©ôTŠ>,¶ÊÃV‹¤vˆ‘»Ó ;%µQJ‘Qv§Ð•+WV¬Xáàà`oo¿yóf¹»°>.ú°dØÎó MLLž?.©€'Ož>|øÈ‘#l6[v§V–Ú(¥È(»SH ˆ7ÙÙÙa;Yä"wŸ•’èÃ’aÛç&Ožœ››+¹T^\\Œ ˆŽŽŽx§fÇv:ae¹Ý¤¬ÑÈÈ(''§¤¤¤¤¤¤°°ðرcfff¯_¿ÆÎ>{ö må¢jôaÉpV^TTTMMÍîÝ»ëëë›››OŸ>M¥R±ÍÏŠv:õÙBsæÌÉÌÌliiiii9räÈ›7oÄs¹\ÉÏ~zôaÀpîÕ?žššš˜˜ÈårmmmwíÚ%Þ¹$w§Sÿ‘Ý)¤¡¡Áãñx<ž¯¯/¶wÈÒÒr̘1‹-úã?$?þ‰Ñ‡ð½-DÀ÷¶Ï¨<>@åAð*‚Py|€ÊƒàT¤×óLLLpL2,innž5k–Â_%øþûïÛÚÚÔždøãàà°xñbI AökÛ 5çy|€ÊƒàT ò ø•Á‡ÿ²çduÙIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_9.png0000644000372000001440000000544612502417165023751 0ustar robertousers‰PNG  IHDRµ3^ØÞ;bKGDÿÿÿ ½§“ ÛIDATxœí›kLM€gAĶE bÔ(&xA‚‰ QÀ "$âM°‚$ iŒâ%ü0BD.AAµQ£ˆP4E „ˆ /@¡k¯óýØÏ}×v»”RÚ¾¾ûüš=»3çììÙé™=§„PPhÁÂÔP˜5”PAù³ð2™¬¼¼üׯ_¦²†Âä„……¹»»ÿs qTVVšÌ. ó 66ï¬ …@íhþ³ÄÄÄ >€AÅdPþAAådPþAA†ÙùGWW‚ ¦¶B+äæagÍü.tÇìüãïÀÁÁ!55UÛÙîîn:nL{ô†òN§geei;«R©†‡‡iÞèã‚ùúú2Œ¬¬¬›7ozxxØÛÛŸ:u œœœ˜˜ˆ^)‹mmm›››>ô÷÷·±±Y¼xñÍ›7*•êÊ•+¾¾¾sæÌY»vmMM ~MF—hçííÍd2“““¥R)¡ü¹žãÛr¹œÃá,X°€Édr8¹\N¨T[÷GÚÚÚ:;;“|‹ÅJ¥²®®½lªþAxãÿ"ÿÐ3þ˜3gÀÊÊJ­ °´´Ü¾}û½{÷†††ž?¾{÷nÀ¼yójjjø|¾««ë† ^½zeaaÑÝÝ€éïﯩÈËË møøøôõõ‘ éééqvvFAÐÐÐÏŸ?OªþN/X[[wvv†‡‡¯\¹²¸¸X§yÑ€ðÆõÊ$̈­ÑÑÑ÷ï߯¨¨Fp‰D¢R©îܹ322’˜˜¸mÛ¶‘‘‹ÕÒÒ‚õjoo× }Õ...$BBètº@ @_¡PÈçóI”¢©‡þþ~ôP"‘ÄÄÄp8œ¦¦¦ÜÜÜ©OÃÿѼqý†2 3âëÖ­S(\.7..• VYY)‰d2™•••­­mBB‡Ãáñx_¿~}úôiZZšæPGíêêz÷î]zzúž={´ ÇÆÆÐ`H­½}ûö“'O~ùò¥µµ5<<<''‡P©ƒƒàÆ"‘èòåËh_©T*“ɬ­­%IFF`|||ªSAxãè)±X<ÕÑLþÇF÷ø{)µµ÷ïßO£ÑD"~p6›mmmíããÃãñ „2™ŒËåzxxØÙÙ­]»öÖ­[@#þ(((pss£ÓéGŽ‘H$„Bˆû½Wk‹D¢½{÷Λ7oþüùûö훘˜ T !~ü¸‡‡FóòòÊÈȘézãkDÄËËKmaŽˆˆ@S?ºcü²Ó¯GŽijjª¬¬ìíí-,,äñxG¿¡¤R)ƒÁ0ŽÆ±±±¸¸8GGÇÝ»wOšíééÁ— …/_¾œªRò²¿™Ñ{;]¢ƒƒŸÏÇëêê-Z4ÕAÆÆÆòóó7oÞ¬‹Ñ¾qãÆŽŽŽ®®®-[¶¨m Õ„‡‡§§§c’ââ∈€ûbd,ÿBHii)›Íf0øùó§æ?~üДÏ;777{ÿÖ¯_ÿåË´­cvðýû÷ÆÆF]ƒh”ËåÏž=ãr¹ÞÞÞl6›Ëå>}ú”\itttEEüýs÷îݨ¨(ì,a!‚ ¥¥¥¾¾¾ŽŽŽ.\õišuäS­xg™æú±iÓ&,íž––†¿àíÛ·ñññ c``@­oUU‹Åš={vhhèÅ‹{zz°S:fçÕ̘ÔÚékT(­a€fee-_¾œD# ££ÃÉÉ©¹¹B8::jkk;44„…h¯¨¨(¡P˜ŸŸ&/~Àk¬®®F]¼»»{Ò Á˜©ï§šiw¡D"¹qãÆêÕ«óòòÆÇÇ »+ >ŸÏår—-[fiiYZZŠÊuÌΫ™¡‹Á†Ò866–ššêææ†9hõƒC‡íîææÆ`0–.]úæÍ›×¯_ŽŽvîÚµ«­­ =DdË–-Ø_ü¦”×CiÌÎÎÎÈÈxøðaAAŽqOppðøøx}}}uuudd$&')$ /Ñ¥ÎáÛ·oííí}}}+V¬ ÑhºØùxg™æú*Þ¾}ëååuîÜ9ôT[[[RRNOLLlllÔì¿dÉ’G}úôéõë×AAAÇŽCO%''GEE¡;Ã5kÖ>|øìÙ³L&óÁƒƒƒƒOž×¨T*«ªª"##Y,ÖéÓ§ûûû'Š3ýûR^^îîîÎd2SRR¤R)þ¡P˜Íf³ñÁ ŠB¡ÈÌÌô÷÷§Ñhîîî©©©Ø²©{voÆ?÷¦e÷8}õõõ„oš6˜¼¶¶““£&×,$€:ø‡fÆÝ»wƒ‚‚JKKÕ9ÆËï¢T*±˜ß €ááaª3‰F=Ì€Êd2=†5F~Ÿ cV_®_¿ÞÑÑÑhêL¢QX9ð4™²hûþÍ/ë‹îÿJF«s˜²˜• ›þ¿[#!L&óêÕ«FPdúü…9Cù”PAùñéµk׌o…9ÐÝݽxñâ?Dø!õõõ–––&²Â,HIIÁ»b»5 ³…Š?(È üƒ‚ Ê?(È üƒ‚Œÿ¡w¢ßUf/ƒIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption-members.html0000755000372000001440000001030312502417164033167 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseEmbeddedConnectionOption Member List

This is the complete list of members for mysqlpp::UseEmbeddedConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption-members.html0000755000372000001440000001211712502417164031205 0ustar robertousers MySQL++ Reference Manual
mysqlpp::IgnoreSpaceOption Member List

This is the complete list of members for mysqlpp::IgnoreSpaceOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/dbdriver_8h.html0000755000372000001440000000522512502417162023251 0ustar robertousers MySQL++ Reference Manual
dbdriver.h File Reference

Declares the DBDriver class. More...

#include "common.h"
#include "options.h"
#include <typeinfo>
#include <limits.h>

Go to the source code of this file.

Classes

class  mysqlpp::DBDriver
 Provides a thin abstraction layer over the underlying database client library. More...
 

Detailed Description

Declares the DBDriver class.

mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x7a.html0000755000372000001440000001005612502417165024734 0ustar robertousers MySQL++ Reference Manual
 

- z -

mysql++-3.2.2+pristine.orig/doc/html/refman/tiny__int_8h.html0000755000372000001440000000706512502417162023450 0ustar robertousers MySQL++ Reference Manual
tiny_int.h File Reference

Declares class for holding a SQL TINYINT. More...

#include "common.h"
#include <ostream>

Go to the source code of this file.

Classes

class  mysqlpp::tiny_int< VT >
 Class for holding an SQL TINYINT value. More...
 

Functions

template<typename VT >
std::ostream & mysqlpp::operator<< (std::ostream &os, tiny_int< VT > i)
 Insert a tiny_int into a C++ stream.
 

Detailed Description

Declares class for holding a SQL TINYINT.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DateTime.html0000755000372000001440000010557212502417163025670 0ustar robertousers MySQL++ Reference Manual

C++ form of SQL's DATETIME type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::DateTime:
Collaboration diagram for mysqlpp::DateTime:

Public Member Functions

 DateTime ()
 Default constructor.
 
 DateTime (unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)
 Initialize object from discrete y/m/d h:m:s values. More...
 
 DateTime (const DateTime &other)
 Initialize object as a copy of another Date.
 
 DateTime (const char *str)
 Initialize object from a C string containing a SQL date-and-time string. More...
 
template<class Str >
 DateTime (const Str &str)
 Initialize object from a C++ string containing a SQL date-and-time string. More...
 
 DateTime (time_t t)
 Initialize object from a time_t.
 
int compare (const DateTime &other) const
 Compare this object to another. More...
 
const char * convert (const char *)
 Parse a SQL date and time string into this object.
 
unsigned char day () const
 Get the date/time value's day part, 1-31.
 
void day (unsigned char d)
 Change the date/time value's day part, 1-31.
 
unsigned char hour () const
 Get the date/time value's hour part, 0-23.
 
void hour (unsigned char h)
 Change the date/time value's hour part, 0-23.
 
bool is_now () const
 Returns true if object will evaluate to SQL "NOW()" on conversion to string.
 
unsigned char minute () const
 Get the date/time value's minute part, 0-59.
 
void minute (unsigned char m)
 Change the date/time value's minute part, 0-59.
 
unsigned char month () const
 Get the date/time value's month part, 1-12.
 
void month (unsigned char m)
 Change the date/time value's month part, 1-12.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t.
 
unsigned char second () const
 Get the date/time value's second part, 0-59.
 
void second (unsigned char s)
 Change the date/time value's second part, 0-59.
 
std::string str () const
 Return our value in std::string form.
 
unsigned short year () const
 Get the date/time value's year part. More...
 
void year (unsigned short y)
 Change the date/time value's year part. More...
 
- Public Member Functions inherited from mysqlpp::Comparable< DateTime >
bool operator== (const DateTime &other) const
 Returns true if "other" is equal to this object.
 
bool operator!= (const DateTime &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const DateTime &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const DateTime &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator> (const DateTime &other) const
 Returns true if "other" is greater than this object.
 
bool operator>= (const DateTime &other) const
 Returns true if "other" is greater than or equal to this object.
 

Static Public Member Functions

static DateTime now ()
 Factory to create an object instance that will convert to SQL "NOW()" on insertion into a query. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< DateTime >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's DATETIME type.

This object exists primarily for conversion purposes. You can initialize it in several different ways, and then convert the object to SQL string form, extract the individual y/m/d h:m:s values, convert it to C's time_t, etc.

Constructor & Destructor Documentation

mysqlpp::DateTime::DateTime ( unsigned short  y,
unsigned char  mon,
unsigned char  d,
unsigned char  h,
unsigned char  min,
unsigned char  s 
)
inline

Initialize object from discrete y/m/d h:m:s values.

Parameters
yyear, 1000-9999
monmonth, 1-12
dday of month, 1-31
hhour, 0-23
minminute, 0-59
ssecond, 0-59
mysqlpp::DateTime::DateTime ( const char *  str)
inlineexplicit

Initialize object from a C string containing a SQL date-and-time string.

String must be in the HH:MM:SS format. It doesn't have to be zero-padded.

template<class Str >
mysqlpp::DateTime::DateTime ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a SQL date-and-time string.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See Also
DateTime(const char*)

Member Function Documentation

int mysqlpp::DateTime::compare ( const DateTime other) const
virtual

Compare this object to another.

Returns < 0 if this object is before the other, 0 of they are equal, and > 0 if this object is after the other.

Implements mysqlpp::Comparable< DateTime >.

static DateTime mysqlpp::DateTime::now ( )
inlinestatic

Factory to create an object instance that will convert to SQL "NOW()" on insertion into a query.

This is just syntactic sugar around the default ctor

unsigned short mysqlpp::DateTime::year ( ) const
inline

Get the date/time value's year part.

There's no trickery here like in some date/time implementations where you have to add 1900 or something like that. It simply returns the year in natural form, in the range 1000-9999.

void mysqlpp::DateTime::year ( unsigned short  y)
inline

Change the date/time value's year part.

Pass the year value normally; we don't optimize the value by subtracting 1900 like some other date/time implementations.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoSchemaOption__coll__graph.png0000644000372000001440000001414012502417165031357 0ustar robertousers‰PNG  IHDRÀ»¼[RbKGDÿÿÿ ½§“IDATxœíÝkTSWÚðH×ê€AahG­ºFD‘Úaê ) ÕŠŒK«Ñêj‘ò²­õÊU©Z.YÂP‹JÅrDqtqSJ ärÞ§oÞBDä„úü–öÙ9ìýdçï9'7 `†xWT² „@€!ZꜬ¹¹yÇŽB¡P“¾WtuuÏž=;mÚ4µÍ¨Ö•——çååy{{«sÒ÷Jfff@@ÀŸ6@¸ŒŒ õOúž P(jž®! @„¼wjhhÛ+;¾>6›=g΃ >|X,“R )Þ»-7þüÊÊʘ˜˜ªªª¤¥¥­\¹R"‘(Ý¿©©‰Á`àm##£ýû÷«±ØqAÂÓø?“ÈÈHSSÓ›7oÒh4„ÐÌ™3W­Zåä䔜œ¼mÛ¶áûK¥Òׯ_ãmƒ­ÖrÇ&(Ê… LMM£££SRRlll ¿ùæ„PXXX`` ¾'ŸÏ§Óé<@]»vÍÙÙYWW×ÖÖ6%%!$•JÏœ9ãàà```°xñ⢢"ùS~ÉÍÍ5k“É PÚ‰†žnäÛ©©©áááxzpzzzl6;55UéP‹-B™››+ŒÓÓÓ³e˃amm½wï^üÅz …’––æàà0uêÔ£GŽëš¿;LÒÓÓG3#BÈ××···7)) !´qãÆÞÞÞøøx„ЫW¯nß¾mbb"‰0 KMMutt”J¥|>Ò¤IqqqçüùóZZZ|>?>>žÉdfgg·µµåçç[[[#„êëëñð†‡‡G]]]yy9‹ÅŠˆˆPÚ‰aXOOObb"^ž¬ÝÝÝâr¹ õ—””˜™™©ßM¾íïïïîîÞØØXSSãää„OŠÚ°aCwwwbb"Bèõë×£YºôôôÑ=cCCtÿþ} ÃÚõõõb±ØÜÜüæÍ›†­^½:::ð®®.mmícÇŽuwwK¥R'‘HøáÙ°/^ ššYm,KiçHuŽ ²²2ƒ¡b|¼GÖ¤Ñhµµµxvv6>)B¨¨¨Hþ¾féÔ M<…!„ BÚÚÚ m„F[·n]vvö«W¯nܸáïï266.***//·¶¶^¶lÙ;w¨TjSSÓܹsec:;;ŸÈÎÎoØÛÛ·´´¨èÎÈÈÈÜܼººZ¡¿ººzÞ¼y£ª££C"‘̘1ßd±X²=---åï»ÒЩæíí“““‘‘±dÉüÄ$¤RifffWWW`` ——WWW—••ÕÇe?õøñãáCᇄP]]þhÔ©”¿¿dd¤üs®¾¾¾˜˜OOÏÑeffF£ÑšššðÍÆÆF+++¼M¥jü¤ÎÃÝèOa²ÃµÒ¶X,f2™fffÉÉÉøM@WW7++‹Ëå&$$èêê ‚Ç3™Ì«W¯r8œ‚‚¥×@nnnõõõvvváááJ;±®0 ûý÷ßgÍšµlÙ²‚‚‚ºººììlGGÇ¿ýíoB¡PÅø<z äçççîîÞÔÔôèÑ#GGG|Ò‘ÖAõÒÁ5Л„aXHHÈäÉ“{{{åŸ1c†ŽŽŽ½½}nn.†aƒƒƒ‘‘‘666úúú‹/¾|ùòð%%%MŸ>Á`ìܹS (íĆ>Øòm Ãø|þž={œœœètº££cTTTÿHã‹D¢%K–èëë+ŒÓÕÕ`bbbaa±{÷n|R¢Qh4<èçç÷V?¢ðÀ+lªè|7c8Ôè©?@ï…D¡PØÖÖváÂ…+W®] ˜€ÑwïÞ?þÖ­[]]]‰Œ3eÊ”àààÑtŽáø>L_,ÌÈÈðññQçŒï …’žž¾qãFµÍ8ñŽ@@£@€! @BÂÓø„„õO ƉZdeeE£Ñ&Г[:Ý!Ôß_Cv!£E£Ñd‡ZŸÆO,‰tΜC¡ššH*uÂxyœÀ5ЈÊʺºúººø¥¥ d×¢¹ @#Ê̼§¥EÕÖ¦ffV’]‹æ‚)'ŠòóŠÅ‘HšŸÿP(‘]‘†‚)wëÖYh„BÑ­[OÈ­GcA€”ûé§{²¯LP(”Ÿ~ºGn= ¤Do¯ðÆÿJ$R|S"‘Þ¸ñßÞ^ø½XJ@€”øùçGRéW7¤RìúõGdÕ£É @JdeÝSxu ð¬,8‹)RÄåòJKë¥R©|§TŠ•–Ös¹<²ªÒX EyyÕJ_w¦P(yy‡÷¿ç @Š22î)\á¤R)¼¢8hˆÖÖîšš—#=|ø²­­GýUi²‰÷­ŒqõêßÒÒHv„¿–¨«ûÇ7‹©Tê«W6›=g΃ >|X,«¿ 1„*--åp8mmm………---;wî$«7þüÊÊʘ˜˜ªªª¤¥¥­\¹R"‘(Ý¿©©‰Á`àm##£ýû÷«±XµÀH…JOOã>õõõ²ÍââbCCÃ·š¥¾¾~¬îéÞ½{]\\Äb±¬‡Ïçÿå/ILL漢KOO'ýœG y4Édâížžž-[¶0 kkë½{÷ …‘:eD"›Í633c2™l6[$!„òòò>üðC:naaïI¡PÒÒÒ¦NzôèQ¼3555<<œF£ÉÔÓÓc³Ù©©©ø*77wÖ¬YL&3,,l```Ñ¢E!sss4ô¦´H¥3j:ró‹Fwª®®æñx½½½OŸ>uuuŒŒÄoò÷÷wwwoll¬©©qrrŠˆˆPÚ)ˆ‰‰Y¿~}sssMMÍ_ÿúׯ¾úª··WGGgëÖ­---©©©¡ÎÎN|Þ 6tww'&&"„^¿~ÝÝÝâr¹ –””˜™™á³xxxÔÕÕ•——³X,…©åÛJ+>£ê•Ñ„#ÙÓ.@ò¦L™‚ŸÑi4Zmm-¾[vv6‹ÅRÚ)ÿÈÙÛÛs8¼]XX8wîÜ'Ožðù|‰DrûömôgL„PQQ>Þ9R€ÊÊÊ >KMM Þ™žž®0µ¬­´H¥3ª^MùoeŒF}}=‹ÅBõ÷÷ÿý÷Ë—/ñâEGG‡D"™1c¾‹ÅjiiQÚ)?ÔóçÏ-,,d›†††:::uuuAAA|>ÿÃ?”ßÙÒÒ!¤­ýÇß 322277¯®®^±b…ünÕÕÕóæÍÃÛvvvxÃÞÞ^ajE*̨ù&Ø5N zùòegg§™™F“½ÝØØhee¥´S~üPÿïéîî.//7nd³Ù÷ïß?wîœüÎTªâúøûûGFFÊ?çêë닉‰ñôôÄ7ñà B¨®®OÃp*Š>£†›år¹Üööööööæææ˜˜˜>øÀÔÔT[[ÛÇÇ',,ìÙ³gµµµ_ýµ¿¿¿ÒNù¡Ö­[wàÀ/^ÔÔÔxzzž={v```ppPGGG :t!Äãø×™ÃÃÃ;;;ÝÝÝþùçúúúœœœ… ZYY…††â;ìÚµ«¡¡¡²²òàÁƒ›6mÂ;ù|¾ü o,r"!÷ ŠÞòˆJ¥:;;———ã7uuu˜˜˜XXXìÞ½[ (픿éííýâ‹/ŒMLL¶oßÞ×ׇaØwß}7uêÔ>øàܹs¾¾¾L&úò|›ÏçïÙ³ÇÉɉN§;::FEEõ÷÷cÿw‰“””4}útƒ±sçN@ ‰–,Y¢¯¯ ½ˆVZùH3ŽD®Èž~š(Æõ%¥4!@ã4hÌL™2%88˜ì*Ô 4f˜Lf\\ÙU¨„@€! @ùß ›={¶™™‰5¨€a„…Bþ·g”êèèxôè¹ Éo¦~ùå—/_¾$·ž>ŠfoßMv!ʯ\¹’ÜH>i²žžþÙ³¿¡P(µµÿ3eÊd²ËÑPp 4¢ë×k1 I¥Ò‚‚Gd×¢¹ @#JO¯Àþx·®‚ìZ4H¹öößïÞmÂ0L*ÅîÞmjoÿìŠ4H¹kתi´?‡F£æå=$·R.3³Rö±C±Xš™YIn= ¤DS·¶¶Uîé)öèQ˳go÷uØ÷H‰ÜÜÚÚ4ùmmZnî²êÑd %22*D¢!_U‰$ð\L)¢Ç[_¼x=¼ÿŋ׷ª¿ R”“s_áü…ÓÖ¦åäÜW=4„TŠefV*œ¿p"‘$3³R*…w~†€ ñàA3—ËÓÖ¦éèh)üÓÖ¦q¹¼êêf²kÔ,ã«Íjcmm¼c‡»l³¬¬!´xñ Y••1 ei0x7^•àà‹¡øøÍd¢¹àB @€ B @€ B @€ B @€ B @€ B @€ B @€ B @€ dÈ/˜ºuëVCC‰ÕhšÌÌV„··Ù…h;;;77·ÿ߯ähiÁo¼o ¥¥%Ÿ™!G …rèÐ!WWWòÊí×_ýöÛoå3×@€ B4+@­­­Cž"ãææ!Å÷ÆñAll¬¯¯ïªU«6mÚ”œœ<88¨zŠÖÖñý ,B¡0...00põêÕ!!!iii²¿„§ÚØ.æHþäÏÛoß¾]TT´|ùòQîêÔ©ŽŽŽÈÈHSSÓæææS§Nñx¼°°°q-R…þþþÐÐPccãàà`KKËgÏž?þÞ½{ǧR•üççp8!!!¹¹¹!}}}__ßñ®P³Ž@cÎËËëûï¿ïêêåþ¿ýö[PP‘‘‘³³sXXXIIɸV¨Ú¥K—ŒŒŒ¾ûî»>úÈÚÚÚÅÅ%..®½½½  @éþR©´··onß¾}¼+|ë¹¹¹lÞ¼yÍš5—/_þå—_|}}?ùä“ . „NŸ>}ôèQ|O@àééY__*-- ôðððóóûå—_B†åäälÞ¼yõêÕ;vìxðàüñ?ü–””¬]»öôéÓ"‘Hi'z¬V8n{{{O›6íøñãÃÿ¢ŸÏŽŽþôÓO½½½cccñSN¿zõªì1pvvNOOGI$’äädŸ5kÖ9r„ÏçËÆ¹wïž¿¿¿——WZZÞ#‹ãââÖ®]»víÚ¸¸8±XüÆuC•••yzz®_¿þòåËxgaaáçŸ.°ÑÕÕýì³Ï •®Æ?ÿùO„кuë–Béuss»qãÆæÍ›ÿñüøão›Ü»ªªªbcc·oßž˜˜XVVvþüùÐÐД””ÞÞÞeË–•””à'é’’ ‹% #""Ö¬Yóã?=zT(æçç_ºtiÛ¶m)))Ÿþù‘#G†OtõêÕ#GŽ>|øîÝ»²5Þidd´wï^üVù6BˆJ¥~õÕWUUUׯ_WüäÉ“\.7...&&¦²²òÊ•+!6›}ÿþý 6°ÙìôôôŽŽ|第¬âââ#GŽœ8qâåË—©©©²qîÞ½›˜˜¸oß¾¤¤$>þøñã÷ïßONN~ãºõ÷÷‡‡‡ÛÙÙ¥¦¦†††&&&öôôðùü®®.‹¥P9‹ÅjnnVºçÎCeggæÎ"„~ûí·³gÏÇÇÇóx¼7=òJ¼K€|||ètº‡‡BÈÏÏN§{zz"„x<ž“““––VMM BèÆ E$a&ttt<==¯]»6iÒ¤Ÿ~ú)$$ÄÅÅÅÄÄdáÂ…Û¶m>Qhh¨µµµƒƒÃ¶mÛ GêÔÓÓûä“Oð[åÛ8kkëíÛ·Ÿ>}º³³SÖ)‹oݺµsçN [[Û/¾øjþüùééé'Ožœ={öõë×ýüünÞ¼‰ÊÏÏߺu«­­­ÍþýûVcÉ’%ø „ víÚÅd2mmmƒƒƒ+**Þ¸n:::çÏŸ 311a2™¡¾¾¾‘ÖŸB¡H¥RK¤`¤;‹Z³f¾¾þªU«B²ãî[y—‹h:ŽÂß8“o#„¨Tª‹‹Kqq±­­mUUÕž={B'NœÈÊÊJNNž9s¦ŸŸßÂ… 9Žüÿ-[[ÛáY[[ãiÓ¦q¹\ª­]»¶¸¸øßÿþ÷®]»ðžîîn©Tjii‰oZYYq¹\¡PXZZêêêêàààààðÃ?ÄÅŹ»»wttÈæ>}úôéÓeƒ›˜˜ „(Ь§½½}ýúõ²M==½7®›––VKK˱cÇÞ©¯¯?uêÔ†††yóæÉ߆††™3gŽ~5”ÞY¼Í`0äËxcíêêzçÎ_ýuöìÙ¦¦¦¡©TqíÚµÕ«W:8CCÃÔÔÔ¢¢¢¢¢¢k×®á§Õ""">û쳄„„ýë_²þ+V\ºtIv¼A …Â+W®|ôÑG£_ ¥wv¤âßÖØÈÙÙY"‘\¼x?V#„( ›Í...îëë‰DZZZ“&MúøãcccKJJººº***†uæÌ™ÖÖÖ§OŸ&%%­\¹r¤Î¾¾¾üü|üVù¶< ‹ÐÐÐŒŒ |SKKËÍÍíÔ©Sn¼bÅŠÉ“'{xx|ûí·åååçñãDZ±±îîî!¤¤¤gÏž={öìäÉ“²k#¥\\\;::šššöíÛwõêÕ7.šH$‹ÅZZZƒƒƒø5S?BhóæÍÝÝÝ_~ùeEEEKKË;wBCC ƧŸ~ªb‰üàJïìK¥±ˆJ¥.]ºôúõëK—.Å{ttt8ßÙÙiiiyèÐ!‰DröìÙžžüZ!**Ja¨+VìÙ³G(º»»ûûûã^…N„POOϱcÇðKù¶//¯;wîÜ»wßܵk×™3gBBB´µµ—/_޵oß¾”””ÄÄÄÖÖVccc77·-[¶ „üýý…B!›Í …‹- V±gΜ ¢P(K—.U½3N__?444**jòäÉ~~~îîîûöíËÉÉ¡Óé ÉÉÉqqqmmmîîîÞÞÞÚÚÚJ—ˆF£Íž={ýúõÿùÏäÇWzgÇĸ|œ#))©½½ý믿ý´¶¶nÚ´©¨¨H馊Î÷)«1îçäp8ÿûßÇvd ™Æ8@Ož< þøãçÎKd===//¯Ñt¾·4d5à‰à-À'ÁƒB @€ ˆ‘ÿ’F#» éh4Ú/£ÊßvëÖ-Õïò`ff&¿IþQ=F®! @„ü/„Æòµs",IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoTransaction-members.html0000755000372000001440000000604712502417164030404 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoTransaction Member List

This is the complete list of members for mysqlpp::NoTransaction, including all inherited members.

commit()mysqlpp::NoTransactioninline
NoTransaction(Connection &, bool=false)mysqlpp::NoTransactioninline
rollback()mysqlpp::NoTransactioninline
~NoTransaction()mysqlpp::NoTransactioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Row.html0000755000372000001440000032522012502417163024735 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Row Class Reference

Manages rows from a result set. More...

#include <row.h>

Inheritance diagram for mysqlpp::Row:
Collaboration diagram for mysqlpp::Row:

Public Types

typedef std::vector< Stringlist_type
 type of our internal data list More...
 
typedef list_type::const_iterator const_iterator
 constant iterator type
 
typedef list_type::const_reference const_reference
 constant reference type
 
typedef
list_type::const_reverse_iterator 
const_reverse_iterator
 const reverse iterator type
 
typedef list_type::difference_type difference_type
 type for index differences
 
typedef const_iterator iterator
 iterator type More...
 
typedef const_reference reference
 reference type More...
 
typedef const_reverse_iterator reverse_iterator
 mutable reverse iterator type More...
 
typedef list_type::size_type size_type
 type of returned sizes
 
typedef list_type::value_type value_type
 type of data in container
 

Public Member Functions

 Row ()
 Default constructor.
 
 Row (const Row &r)
 Copy constructor.
 
 Row (MYSQL_ROW row, const ResultBase *res, const unsigned long *lengths, bool te=true)
 Create a row object. More...
 
 ~Row ()
 Destroy object.
 
const_reference at (size_type i) const
 Get a const reference to the field given its index. More...
 
const_reference back () const
 Get a reference to the last element of the vector.
 
const_iterator begin () const
 Return a const iterator pointing to first element in the container.
 
bool empty () const
 Returns true if container is empty.
 
const_iterator end () const
 Return a const iterator pointing to one past the last element in the container.
 
equal_list_ba< FieldNames, Row,
quote_type0 > 
equal_list (const char *d=",", const char *e=" = ") const
 Get an "equal list" of the fields and values in this row. More...
 
template<class Manip >
equal_list_ba< FieldNames, Row,
Manip > 
equal_list (const char *d, const char *e, Manip m) const
 Get an "equal list" of the fields and values in this row. More...
 
value_list_ba< FieldNames,
do_nothing_type0 > 
field_list (const char *d=",") const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_ba< FieldNames, Manip > field_list (const char *d, Manip m) const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_b< FieldNames, Manip > field_list (const char *d, Manip m, const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames,
quote_type0 > 
field_list (const char *d, const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames,
quote_type0 > 
field_list (const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_b< FieldNames, Manip > field_list (const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames,
quote_type0 > 
field_list (const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames,
quote_type0 > 
field_list (bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
size_type field_num (const char *name) const
 Returns a field's index given its name.
 
const_reference front () const
 Get a reference to the first element of the vector.
 
size_type max_size () const
 Return maximum number of elements that can be stored in container without resizing.
 
Rowoperator= (const Row &rhs)
 Assignment operator.
 
const_reference operator[] (const char *field) const
 Get the value of a field given its name. More...
 
const_reference operator[] (int i) const
 Get the value of a field given its index. More...
 
 operator private_bool_type () const
 Returns true if row object was fully initialized and has data. More...
 
const_reverse_iterator rbegin () const
 Return reverse iterator pointing to first element in the container.
 
const_reverse_iterator rend () const
 Return reverse iterator pointing to one past the last element in the container.
 
size_type size () const
 Get the number of fields in the row.
 
template<class Manip >
value_list_ba< Row, Manip > value_list (const char *d=",", Manip m=quote) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, const std::vector< bool > &vb, Manip m=quote) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0 > value_list (const std::vector< bool > &vb) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0 > value_list (const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0 > value_list (bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0 > value_list (const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0 > value_list (std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Detailed Description

Manages rows from a result set.

This class is like an extended version of a const std::vector of mysqlpp::String. It adds stuff for populating the vector. As for why it's const, what would it mean to modify a Row? If we ever did support such semantics, it should probably actually modify the database. We can't do that if we just derive from std::vector.

Not that we could derive from std::vector even if we wanted to: vector::operator[](size_type) would interfere with our operator[](const char*). We can avoid this only by maintaining our own public inteface independent of that of vector.

Member Typedef Documentation

iterator type

Note that this is just an alias for the const iterator. Row is immutable, but people are in the habit of saying 'iterator' even when they don't intend to use the iterator to modify the container, so we provide this as a convenience.

typedef std::vector<String> mysqlpp::Row::list_type

type of our internal data list

This is public because all other typedefs we have for mirroring std::vector's public interface depend on it.

reference type

See Also
iterator for justification for this const_reference alias

mutable reverse iterator type

See Also
iterator for justification for this const_reverse_iterator alias

Constructor & Destructor Documentation

mysqlpp::Row::Row ( MYSQL_ROW  row,
const ResultBase res,
const unsigned long *  lengths,
bool  te = true 
)

Create a row object.

Parameters
rowMySQL C API row data
resresult set that the row comes from
lengthslength of each item in row
teif true, throw exceptions on errors

References mysqlpp::ResultBase::field_names(), mysqlpp::ResultBase::field_type(), mysqlpp::ResultBase::num_fields(), and size().

Member Function Documentation

Row::const_reference mysqlpp::Row::at ( size_type  i) const

Get a const reference to the field given its index.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.

References size().

Referenced by operator[]().

equal_list_ba< FieldNames, Row, quote_type0 > mysqlpp::Row::equal_list ( const char *  d = ",",
const char *  e = " = " 
) const

Get an "equal list" of the fields and values in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, " = " is the relationship operator, and items will be quoted and escaped.

template<class Manip >
equal_list_ba< FieldNames, Row, Manip > mysqlpp::Row::equal_list ( const char *  d,
const char *  e,
Manip  m 
) const

Get an "equal list" of the fields and values in this row.

This method's parameters govern how the returned list will behave when you insert it into a C++ stream:

Parameters
ddelimiter to use between items
ethe operator to use between elements
mthe manipulator to use for each element

For example, if d is ",", e is " = ", and m is the quote manipulator, then the field and value lists (a, b) (c, d'e) will yield an equal list that gives the following when inserted into a C++ stream:

* 'a' = 'c', 'b' = 'd''e'
*

Notice how the single quote was 'escaped' in the SQL way to avoid a syntax error.

value_list_ba< FieldNames, do_nothing_type0 > mysqlpp::Row::field_list ( const char *  d = ",") const

Get a list of the field names in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, and no manipulator will be used on the items.

template<class Manip >
value_list_ba< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
mmanipulator to use before each item when the list is inserted into a C++ stream
template<class Manip >
value_list_b< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m,
const std::vector< bool > &  vb 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
mmanipulator to use before each item when the list is inserted into a C++ stream
vbfor each true item in this list, add that field name to the returned list; ignore the others
value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const char *  d,
const std::vector< bool > &  vb 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
vbfor each true item in this list, add that field name to the returned list; ignore the others

Field names will be quoted and escaped when inserted into a C++ stream.

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const std::vector< bool > &  vb) const

Get a list of the field names in this row.

Parameters
vbfor each true item in this list, add that field name to the returned list; ignore the others

Field names will be quoted and escaped when inserted into a C++ stream, and a comma will be placed between them as a delimiter.

template<class Manip >
value_list_b< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items as a delimiter, and the manipulator 'm' used before each item.

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items as a delimiter, and the items will be quoted and escaped.

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, a comma will be placed between the items as a delimiter, and the items will be quoted and escaped.

mysqlpp::Row::operator private_bool_type ( ) const
inline

Returns true if row object was fully initialized and has data.

This operator lets you use Row in bool context, which lets you do things like tell when you've run off the end of a "use" query's result set:

* Query q("....");
* if (UseQueryResult res = q.use()) {
* // Can use 'res', query succeeded
* while (Row row = res.fetch_row()) {
* // Retreived another row in the result set, can use 'row'
* }
* }
*
const Row::value_type & mysqlpp::Row::operator[] ( const char *  field) const

Get the value of a field given its name.

If the field does not exist in this row, we throw a BadFieldName exception if exceptions are enabled, or an empty row if not. An empty row tests as false in bool context.

This operator is fairly inefficient. operator[](int) is faster.

References at(), empty(), field_num(), size(), and mysqlpp::OptionalExceptions::throw_exceptions().

const_reference mysqlpp::Row::operator[] ( int  i) const
inline

Get the value of a field given its index.

This function is just syntactic sugar, wrapping the at() method.

It's critical that the parameter type be int, not size_type, because it will interfere with the const char* overload otherwise. row[0] is ambiguous when there isn't an int overload.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.
template<class Manip >
value_list_ba<Row, Manip> mysqlpp::Row::value_list ( const char *  d = ",",
Manip  m = quote 
) const
inline

Get a list of the values in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, and the quoting and escaping rules will be set by the manipulator 'm' you choose.

Parameters
ddelimiter to use between values
mmanipulator to use when inserting values into a stream
template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
const std::vector< bool > &  vb,
Manip  m = quote 
) const
inline

Get a list of the values in this row.

Parameters
ddelimiter to use between values
vbfor each true item in this list, add that value to the returned list; ignore the others
mmanipulator to use when inserting values into a stream
value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const std::vector< bool > &  vb) const
inline

Get a list of the values in this row.

Parameters
vbfor each true item in this list, add that value to the returned list; ignore the others

Items will be quoted and escaped when inserted into a C++ stream, and a comma will be used as a delimiter between the items.

template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items, and the manipulator 'm' used before each item.

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items, and items will be quoted and escaped.

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the a comma will be placed between the items, as a delimiter, and items will be quoted and escaped.

template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
Manip  m,
std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, the delimiter 'd' will be placed between the items, and the manipulator 'm' will be inserted before each item.

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const char *  d,
std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, the delimiter 'd' will be placed between the items, and items will be quoted and escaped.

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, a comma will be placed between the items as a delimiter, and items will be quoted and escaped.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/tcp__connection_8h_source.html0000755000372000001440000003777512502417162026213 0ustar robertousers MySQL++ Reference Manual
tcp_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_TCP_CONNECTION_H)
28 #define MYSQLPP_TCP_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
39 class MYSQLPP_EXPORT TCPConnection : public Connection
40 {
41 public:
44  Connection()
45  {
46  }
47 
62  TCPConnection(const char* addr, const char* db = 0, const char* user = 0,
63  const char* password = 0) :
64  Connection()
65  {
66  connect(addr, db, user, password);
67  }
68 
73  TCPConnection(const TCPConnection& other) :
74  Connection(other)
75  {
76  }
77 
80 
89  bool connect(const char* addr = 0, const char* db = 0,
90  const char* user = 0, const char* password = 0);
91 
119  static bool parse_address(std::string& addr, unsigned int& port,
120  std::string& error);
121 
122 private:
126  TCPConnection(bool) { }
127  TCPConnection(const char*, const char*, const char*, const char*,
128  unsigned int) { }
129 
132  bool connect(const char*, const char*, const char*, const char*,
133  unsigned int) { return false; }
134 };
135 
136 
137 } // end namespace mysqlpp
138 
139 #endif // !defined(MYSQLPP_TCP_CONNECTION_H)
140 
Declares the Connection class.
Manages the connection to the database server.
Definition: connection.h:59
TCPConnection(const TCPConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: tcp_connection.h:73
TCPConnection()
Create object without connecting it to the MySQL server.
Definition: tcp_connection.h:43
~TCPConnection()
Destroy object.
Definition: tcp_connection.h:79
TCPConnection(const char *addr, const char *db=0, const char *user=0, const char *password=0)
Create object and connect to database server over TCP/IP in one step.
Definition: tcp_connection.h:62
Specialization of Connection for TCP/IP.
Definition: tcp_connection.h:39
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadQuery-members.html0000755000372000001440000001200212502417163027321 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadQuery Member List

This is the complete list of members for mysqlpp::BadQuery, including all inherited members.

BadQuery(const char *w="", int e=0)mysqlpp::BadQueryinlineexplicit
BadQuery(const std::string &w, int e=0)mysqlpp::BadQueryinlineexplicit
errnum() const mysqlpp::BadQueryinline
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x73.html0000755000372000001440000002716112502417165024663 0ustar robertousers MySQL++ Reference Manual
 

- s -

mysql++-3.2.2+pristine.orig/doc/html/refman/row_8h_source.html0000755000372000001440000022563112502417162023644 0ustar robertousers MySQL++ Reference Manual
row.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_ROW_H)
29 #define MYSQLPP_ROW_H
30 
31 #include "common.h"
32 
33 #include "mystring.h"
34 #include "noexceptions.h"
35 #include "refcounted.h"
36 #include "vallist.h"
37 
38 #include <vector>
39 #include <string>
40 
41 namespace mysqlpp {
42 
43 #if !defined(DOXYGEN_IGNORE)
44 // Make Doxygen ignore this
45 class FieldNames;
46 class MYSQLPP_EXPORT ResultBase;
47 #endif
48 
62 
63 class MYSQLPP_EXPORT Row : public OptionalExceptions
64 {
65 private:
70  typedef bool Row::*private_bool_type;
71 
72 public:
77  typedef std::vector<String> list_type;
78 
80  typedef list_type::const_iterator const_iterator;
81 
83  typedef list_type::const_reference const_reference;
84 
86  typedef list_type::const_reverse_iterator const_reverse_iterator;
87 
89  typedef list_type::difference_type difference_type;
90 
98 
103 
109 
111  typedef list_type::size_type size_type;
112 
114  typedef list_type::value_type value_type;
115 
117  Row() :
118  initialized_(false)
119  {
120  }
121 
123  Row(const Row& r) :
125  data_(r.data_.begin(), r.data_.end()),
126  field_names_(r.field_names_),
127  initialized_(r.initialized_)
128  {
129  }
130 
137  Row(MYSQL_ROW row, const ResultBase* res,
138  const unsigned long* lengths, bool te = true);
139 
141  ~Row() { }
142 
147  const_reference at(size_type i) const;
148 
150  const_reference back() const { return data_.back(); }
151 
154  const_iterator begin() const { return data_.begin(); }
155 
157  bool empty() const { return data_.empty(); }
158 
161  const_iterator end() const { return data_.end(); }
162 
169  equal_list(const char* d = ",", const char* e = " = ") const;
170 
191  template <class Manip>
192  equal_list_ba<FieldNames, Row, Manip> equal_list(const char* d,
193  const char* e, Manip m) const;
194 
200  field_list(const char* d = ",") const;
201 
208  template <class Manip>
209  value_list_ba<FieldNames, Manip> field_list(const char* d,
210  Manip m) const;
211 
220  template <class Manip>
221  value_list_b<FieldNames, Manip> field_list(const char* d, Manip m,
222  const std::vector<bool>& vb) const;
223 
234  const char* d, const std::vector<bool>& vb) const;
235 
244  const std::vector<bool>& vb) const;
245 
253  template <class Manip>
254  value_list_b<FieldNames, Manip> field_list(const char *d, Manip m,
255  bool t0,
256  bool t1 = false, bool t2 = false, bool t3 = false,
257  bool t4 = false, bool t5 = false, bool t6 = false,
258  bool t7 = false, bool t8 = false, bool t9 = false,
259  bool ta = false, bool tb = false, bool tc = false) const;
260 
269  const char *d, bool t0,
270  bool t1 = false, bool t2 = false, bool t3 = false,
271  bool t4 = false, bool t5 = false, bool t6 = false,
272  bool t7 = false, bool t8 = false, bool t9 = false,
273  bool ta = false, bool tb = false, bool tc = false) const;
274 
282  bool t0,
283  bool t1 = false, bool t2 = false, bool t3 = false,
284  bool t4 = false, bool t5 = false, bool t6 = false,
285  bool t7 = false, bool t8 = false, bool t9 = false,
286  bool ta = false, bool tb = false, bool tc = false) const;
287 
289  size_type field_num(const char* name) const;
290 
292  const_reference front() const { return data_.front(); }
293 
296  size_type max_size() const { return data_.max_size(); }
297 
299  Row& operator =(const Row& rhs)
300  {
301  data_.assign(rhs.data_.begin(), rhs.data_.end());
302  field_names_.assign(rhs.field_names_);
303  initialized_ = rhs.initialized_;
304  return *this;
305  }
306 
314  const_reference operator [](const char* field) const;
315 
327  const_reference operator [](int i) const
328  { return at(static_cast<size_type>(i)); }
329 
347  operator private_bool_type() const
348  {
349  return data_.size() && initialized_ ? &Row::initialized_ : 0;
350  }
351 
354  const_reverse_iterator rbegin() const { return data_.rbegin(); }
355 
358  const_reverse_iterator rend() const { return data_.rend(); }
359 
361  size_type size() const { return data_.size(); }
362 
371  template <class Manip>
373  Manip m = quote) const
374  {
375  return value_list_ba<Row, Manip>(*this, d, m);
376  }
377 
384  template <class Manip>
386  const std::vector<bool>& vb, Manip m = quote) const
387  {
388  return value_list_b<Row, Manip>(*this, vb, d, m);
389  }
390 
399  const std::vector<bool> &vb) const
400  {
401  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
402  }
403 
410  template <class Manip>
411  value_list_b<Row, Manip> value_list(const char *d, Manip m,
412  bool t0, bool t1 = false, bool t2 = false, bool t3 = false,
413  bool t4 = false, bool t5 = false, bool t6 = false,
414  bool t7 = false, bool t8 = false, bool t9 = false,
415  bool ta = false, bool tb = false, bool tc = false) const
416  {
417  std::vector<bool> vb;
418  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
419  t7, t8, t9, ta, tb, tc);
420  return value_list_b<Row, Manip>(*this, vb, d, m);
421  }
422 
430  value_list(const char *d, bool t0, bool t1 = false, bool t2 = false,
431  bool t3 = false, bool t4 = false, bool t5 = false,
432  bool t6 = false, bool t7 = false, bool t8 = false,
433  bool t9 = false, bool ta = false, bool tb = false,
434  bool tc = false) const
435  {
436  std::vector<bool> vb;
437  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
438  t7, t8, t9, ta, tb, tc);
439  return value_list_b<Row, quote_type0>(*this, vb, d, quote);
440  }
441 
449  bool t1 = false, bool t2 = false, bool t3 = false,
450  bool t4 = false, bool t5 = false, bool t6 = false,
451  bool t7 = false, bool t8 = false, bool t9 = false,
452  bool ta = false, bool tb = false, bool tc = false) const
453  {
454  std::vector<bool> vb;
455  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
456  t7, t8, t9, ta, tb, tc);
457  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
458  }
459 
466  template <class Manip>
467  value_list_b<Row, Manip> value_list(const char *d, Manip m,
468  std::string s0, std::string s1 = "", std::string s2 = "",
469  std::string s3 = "", std::string s4 = "",
470  std::string s5 = "", std::string s6 = "",
471  std::string s7 = "", std::string s8 = "",
472  std::string s9 = "", std::string sa = "",
473  std::string sb = "", std::string sc = "") const
474  {
475  std::vector<bool> vb;
476  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
477  s9, sa, sb, sc);
478  return value_list_b<Row, Manip>(*this, vb, d, m);
479  }
480 
488  const char *d,
489  std::string s0, std::string s1 = "", std::string s2 = "",
490  std::string s3 = "", std::string s4 = "",
491  std::string s5 = "", std::string s6 = "",
492  std::string s7 = "", std::string s8 = "",
493  std::string s9 = "", std::string sa = "",
494  std::string sb = "", std::string sc = "") const
495  {
496  std::vector<bool> vb;
497  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
498  s9, sa, sb, sc);
499  return value_list_b<Row, quote_type0>(*this, vb, d, quote);
500  }
501 
509  std::string s0,
510  std::string s1 = "", std::string s2 = "",
511  std::string s3 = "", std::string s4 = "",
512  std::string s5 = "", std::string s6 = "",
513  std::string s7 = "", std::string s8 = "",
514  std::string s9 = "", std::string sa = "",
515  std::string sb = "", std::string sc = "") const
516  {
517  std::vector<bool> vb;
518  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
519  s9, sa, sb, sc);
520  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
521  }
522 
523 private:
524  list_type data_;
525  RefCountedPointer<FieldNames> field_names_;
526  bool initialized_;
527 };
528 
529 } // end namespace mysqlpp
530 
531 #endif // !defined(MYSQLPP_ROW_H)
list_type::const_reference const_reference
constant reference type
Definition: row.h:83
list_type::value_type value_type
type of data in container
Definition: row.h:114
Holds a list of items, typically used to construct a SQL &quot;value list&quot;.
Definition: vallist.h:186
value_list_b< Row, quote_type0 > value_list(const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:487
bool empty() const
Returns true if container is empty.
Definition: row.h:157
value_list_b< Row, Manip > value_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:411
list_type::size_type size_type
type of returned sizes
Definition: row.h:111
size_type size() const
Get the number of fields in the row.
Definition: row.h:361
value_list_b< Row, quote_type0 > value_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:430
value_list_b< Row, quote_type0 > value_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:448
Declares the RefCountedPointer template.
~Row()
Destroy object.
Definition: row.h:141
const_iterator begin() const
Return a const iterator pointing to first element in the container.
Definition: row.h:154
size_type max_size() const
Return maximum number of elements that can be stored in container without resizing.
Definition: row.h:296
list_type::const_reverse_iterator const_reverse_iterator
const reverse iterator type
Definition: row.h:86
const_reference back() const
Get a reference to the last element of the vector.
Definition: row.h:150
Manages rows from a result set.
Definition: row.h:63
Same as value_list_ba, plus the option to have some elements of the list suppressed.
Definition: vallist.h:226
const_iterator iterator
iterator type
Definition: row.h:97
value_list_b< Row, quote_type0 > value_list(const std::vector< bool > &vb) const
Get a list of the values in this row.
Definition: row.h:398
value_list_b< Row, Manip > value_list(const char *d, const std::vector< bool > &vb, Manip m=quote) const
Get a list of the values in this row.
Definition: row.h:385
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
const_iterator end() const
Return a const iterator pointing to one past the last element in the container.
Definition: row.h:161
Row(const Row &r)
Copy constructor.
Definition: row.h:123
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
std::vector< String > list_type
type of our internal data list
Definition: row.h:77
list_type::difference_type difference_type
type for index differences
Definition: row.h:89
list_type::const_iterator const_iterator
constant iterator type
Definition: row.h:80
Row()
Default constructor.
Definition: row.h:117
Holds two lists of items, typically used to construct a SQL &quot;equals clause&quot;.
Definition: vallist.h:60
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:80
const_reference front() const
Get a reference to the first element of the vector.
Definition: row.h:292
Declares templates for holding lists of values.
This file includes top-level definitions for use both internal to the library, and outside it...
value_list_b< Row, quote_type0 > value_list(std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:508
value_list_b< Row, Manip > value_list(const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:467
const_reverse_iterator rbegin() const
Return reverse iterator pointing to first element in the container.
Definition: row.h:354
const_reference reference
reference type
Definition: row.h:102
const_reverse_iterator rend() const
Return reverse iterator pointing to one past the last element in the container.
Definition: row.h:358
Declares interface that allows exceptions to be optional.
const_reverse_iterator reverse_iterator
mutable reverse iterator type
Definition: row.h:108
Declares String class, MySQL++&#39;s generic std::string-like class, used for holding data received from ...
value_list_ba< Row, Manip > value_list(const char *d=",", Manip m=quote) const
Get a list of the values in this row.
Definition: row.h:372
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x63.html0000755000372000001440000002264612502417164024664 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_44.png0000644000372000001440000000327212502417165024023 0ustar robertousers‰PNG  IHDR%×Ý|™bKGDÿÿÿ ½§“oIDATxœíšoHS_ÇŸëÜjC³Ü\:—¡.ÜXHQT†QH…›,[Ä|aP-¢Ia…!£¢W!™&†öoÑbdЋlHB‹Àl­‚©3C\ÅÜÖõÂþ¸íþ^~ãêîÌ?S¿Ëý¼zÎÃ9Ïyžóçœ{w1’$…q¤-w,‹«+3aue&¬®Ì$ÚøñãÇ©S§‚ÁàreÃ2ojkk+++ãÍ)ºÚl¶®®.•JµäY±,ˆwïÞ™L¦¤º"L&ӦĒÔjõ4{¾2VWfÂêÊLX]™ÉN×ÁÁA ÃRêñãÇýýý)‰?oRXc2hîÃŒáСCn·†‡‡wî܉l …KŸŒËåÚ¶m›Çã€Õ«W_¸paQ§c²®|>ŸÏçA››»ŒÉÄb±ññqd‹D"£Ñ¸¨ÓÍgÆ0¬­­M¡PäääÆŽŽŽÂ¬¬¬+W®€^¯¯©©A= ‚?~€/^”––®\¹²¨¨¨££b±ØíÛ· EfffYY™Õj¥îNh³²X,%%%b±X¯×‡B!Z'LÝÙþºË¡ÝÝݽ½½]]]›7oyyyñåÆ0ìÁƒ …";;ûúõëÈ™X$D" 999Ç÷ûý°cÇø÷·EÍÐï÷Ÿ8qB$I¥RƒÁ€^öÑÎ>7H Ož<™æ¡4 Žã­­­ V«qonnÇÓÓÓ# '''I’ìììT*•±XŒ ˆ+VܹsÇívß»w/== ˆææf±Xl6›ÇÆÆ^¾|)•J```å€ŒŠŠ §Ói³Ùd2ÙÕ«Wi$Iúýþ––”ÕFÄcR›û÷ïóæÛíæñx:ntt´³³~ÿþj¬¬¬ôù|---0>>N[Žã‰Ãoܸ¡T*ívûçÏŸ·oßn0¦å@µ«««÷îÝ;44d·Û7n܈ÊIœ}fET*•J¥š¢Ñütíëë#I2O³"‘Hnnnww7I’0$Iz½^.—{óæMŸÏ‹Å&&&¢Ñ¨R©loo‡½ÿ~¢®v»=ž›L&£uþ5aZ]QP(ôíÛ7‚ ¢ÑhOOJÕhµZ©uÑ–@;¼¤¤Äl6£¹¾~ýŠlZ]Ãá0‡Ãq8Èo6›Q9‰³Ï\`¢®ó¼gff—Ëf‡Ã9räˆÙlöx<¯_¿®®®€5kÖX­V›Í&•JwïÞýöíÛ´´4—˵iÓ¦xÌÒÒÒĉ6lØ€ ¹\>:::ƒs®ÈåràñxN§sß¾}[¶lioo§vH$ÔºhK >22ÏP¡P>|8Y¿~ýŠF£ÅÅŨ)“ÉâåL›}®,ÊsŽJ¥zþü¹Éd*//G»k ˆÅbOŸ>õz½555ôz½ùùùŸ>}ŠúòåKb(ôÓ§Ó‰JMæœ+hÉ€Z­®««ëëëkjj¢vHK›²8´%ЗH$ß¿Gvÿµk×’å°víZ‡ãr¹Pshh(??Ÿvö¹²(ºîÚµ+‰466jµZäÁ0¬¢¢âÙ³g8އÃa.—+t:]]]Åbùùóç«W¯.^¼˜êìÙ³ƒƒƒ>|¨¯¯?vìX2çŸ?Ða?Íþ+¡P(óx¼@ ÐÐд=iK ®Õj/]ºäp8ÇéÓ§GFFâAÐÍ<—Ë­ªªÒëõÃÃÇãòåËh{KÔMyöçk|ÇOfŸŸ$ÉÉÉÉòòòŒŒŒi x½^­V+ óòòÎ;‡ÊI¶ªÉHͽi6Ô××=ztNCf^ýœ,‰º¦þ½D0kkk{ôèQʃ³Ì’ÔŸ¯ï߿ߺu«N§Û³gÏBâ¬Zµª¶¶v6N–D0’ò]¸Édªªª"Ù/Åÿo ï%¨ºüçþÏaI ¬®Ì„Õ•™°º2šçœ»wï.}, ÁårMqQf{{{9Î2寲 Ο?O•cŸj {¾2VWfÂêÊLX]™É?z¸uiÓvIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiStatementsOption-members.html0000755000372000001440000001214312502417164032147 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MultiStatementsOption Member List

This is the complete list of members for mysqlpp::MultiStatementsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/wnp__connection_8h_source.html0000755000372000001440000004034712502417162026216 0ustar robertousers MySQL++ Reference Manual
wnp_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_WNP_CONNECTION_H)
28 #define MYSQLPP_WNP_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
39 class MYSQLPP_EXPORT WindowsNamedPipeConnection : public Connection
40 {
41 public:
44  Connection()
45  {
46  }
47 
55  WindowsNamedPipeConnection(const char* db, const char* user = 0,
56  const char* password = 0) :
57  Connection()
58  {
59  connect(db, user, password);
60  }
61 
67  Connection(other)
68  {
69  }
70 
73 
82  bool connect(const char* db = 0, const char* user = 0,
83  const char* password = 0);
84 
92  static bool is_wnp(const char* server);
93 
94 private:
99  WindowsNamedPipeConnection(const char*, const char*, const char*,
100  const char*, unsigned int) { }
101 
104  bool connect(const char*, const char*, const char*, const char*,
105  unsigned int) { return false; }
106 };
107 
108 
109 } // end namespace mysqlpp
110 
111 #endif // !defined(MYSQLPP_WNP_CONNECTION_H)
112 
Declares the Connection class.
Manages the connection to the database server.
Definition: connection.h:59
WindowsNamedPipeConnection(const char *db, const char *user=0, const char *password=0)
Create object and connect to database server over Windows named pipes in one step.
Definition: wnp_connection.h:55
Specialization of Connection for Windows named pipes.
Definition: wnp_connection.h:39
WindowsNamedPipeConnection(const WindowsNamedPipeConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: wnp_connection.h:66
WindowsNamedPipeConnection()
Create object without connecting it to the MySQL server.
Definition: wnp_connection.h:43
~WindowsNamedPipeConnection()
Destroy object.
Definition: wnp_connection.h:72
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Connection-members.html0000755000372000001440000003377612502417163027731 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Connection Member List

This is the complete list of members for mysqlpp::Connection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() const mysqlpp::Connection
connect(const char *db=0, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connectionvirtual
connected() const mysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() const mysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() const mysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() const mysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() const mysqlpp::Connection
kill(unsigned long tid) const mysqlpp::Connection
operator private_bool_type() const mysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() const mysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() const mysqlpp::Connection
server_version() const mysqlpp::Connection
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() const mysqlpp::OptionalExceptionsinline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x68.html0000755000372000001440000001040112502417164023640 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- h -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption.html0000755000372000001440000002533312502417163030227 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SetCharsetNameOption Class Reference

Give name of default charset. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetCharsetNameOption:
Collaboration diagram for mysqlpp::SetCharsetNameOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give name of default charset.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Option__inherit__graph.png0000644000372000001440000041061112502417165030455 0ustar robertousers‰PNG  IHDR£¯É_ÙbKGDÿÿÿ ½§“ IDATxœìÝy\”Õþð3À€ ‹ û¢ˆ,‚pÝ7n–%\KKKR0—›b.˜KŠ¢¨YWÍ+¡¨ .©… rµTQ$Ô”UEP–†m¶ç÷ÇÓošf†q„À™Ïû¯gÎ<Ï9ßçÀ‹/ç<ËaPE@Kéuw AÈôÚ ™@›twÚ€Ïçÿðí­­Ýè¨^½z͘1ÃÐÐPþ+dz58uêÔG}ÔÝQ€N3556mš|92=€…BBžf‚îÂ`0è_By¸N Íé´2=€6C¦ÐfÈôZ¢¤¤„Á`¨±Âªªª>ø ÿþ¦¦¦£FJOOWcå/ê‡~`(rüøqõžµêššš¢££‡ bff6jÔ¨/¾ø¢½{âd¨ý'¥2=(P__?lØ0‹•ššzíÚµ3f„††ž9s¦+c(++³¶¶¦·ßyçêêêêêêË—/Bªÿß+¯¼òÙgŸuq0„ÆÆÆ‘#GæååÅÇÇççç¯Zµ*%%% @$=÷p ‹®‰™†§ì@˜˜˜7ÞxcïÞ½ôÇAƒ=yòdÛ¶m'Nì²Äbq}}=½mlllllLáñx„{{{Énqqq] !$66ÖÆÆ&;;[__Ÿâéé9qâD__ßýû÷Ï™3GùáÖÖÖ]3 cz€®Ã`0’’’¼½½mllâââ:äêêÚ»wïµk×B¢¢¢"##é=y<‹Åºyó&!ääÉ“ƒîÕ«×€:D‹Å»víòöö633óóóËÉÉ‘ž ¦'‡322hkkÕÖÖ¦°ü}&Yzûĉ‹/–>&&fß¾}ôvCCìY³¬­­—/_N¿Á`¤¤¤x{{÷éÓgË–-’S–/ÑÑÑvvv¶¶¶ÑÑÑ@(ÆÄÄôë×ÏÆÆæÃ?lhh „Œ;–ü=©Ë“ŽYy÷*lWá¹(ì™`’““×­[G§yš‰‰Itttrr²Â®–>\º~Õ{²ã(è´ÔÔTUþ¢BBCC¹\.=Vær¹ „ººº .XYY Š¢’““}||Äb1Ç322Ú³gOuuõ¾}û x<^BB‚­­mZZZUUÕéÓ§ !ÅÅÅt ôF``àýû÷sssÝÝÝׯ_¯°¢¨†††ÄÄD:<É6‡Ã!„°ÙìöN$,,Ìßß¿´´´°°Ð××—®Šòþûïs8œÄÄDBH}}}{…ñññï½÷ÞÇ ‡¾råÊ­[·úøøþþûïcÆŒY¾|¹äDdš–)”þ¨¼{¶«ð\¤ë”éUºîŸÚÚZ™Ø.]ºdgg§¤ÿåcV½'Ÿû«•ššªø«ç Ï¥z¦¿qãEQ|>_f»¸¸X(ÚÛÛgggS5iÒ¤¸¸8Š¢Øl6“Éܶm‡Ã‹Å"‘ÈÇÇçÀ’j<(Ÿé %±¹»»+,l/N6›Máp8 ¿åóùúúúEEEôÇ´´4º*BHNNŽôµWèååU]]M~îܹ¡C‡80--.¹sç½ÝL¯¤{¶«ð\:œé¯\¹bmm­¤ÿeê|¡žTNI¦Çì=@—233#„0™L™mBˆ¾¾þ´iÓÒÒÒêêê²²²ÂÂÂ!–––999¹¹¹ÎÎÎãÇÿõ×_õôôÊÊʆ*©sðàÁò yxxÐ^^^•••J åYZZÚÙÙݹsGº0//oÔ¨QÍÍÍOŸ>‰Dnnnt¹»»»¤*GGGé3j¯°¢¢ÂÁÁ¾y>  ¼¼üÁƒ’ؼ½½§NÚ^lÊ)é^…í*9¥è Çööö2å#FŒ ·UéêíÉŽA¦èA¦OŸžžž~ôèÑqãÆÑsò---b±øØ±cl6;22ròäÉl6ÛÉÉéÖ­[’£nß¾-_=p$„Ü¿ŸNí*4eÊ”¯¾úJ:Ï%'' ‹egg§¯¯_VVF——––:99ÑÛzz ÒŠ|!=ð•Œsss+**èo 6oÞ¬$¶“oWɹÐÌ=~üXaUaaa±±±ÒwÚ755ÅÇÇÑUéêíÉŽA¦èA^}õU¡PN—0ŒÀÀÀ'Np¹\>ŸÏd2Y,VDDDtttFFÆ“'O233W®\)_ÕâÅ‹KJJòòòV¯^=sæÌö Ÿ={&¹Á^z{óæÍ.\¿|ùraaᆠvìØA'`&“U^^^TTôùçŸÓÓª›6mÚªU«|˜È]§ß»w¯‹‹‹µµõ¢E‹ZZZR¿ü,s ¼¢¢âý÷ßwtt433=zôO?ý$ùŠÍf‡‡‡[YY988,Y²„®Já),är¹³g϶´´´²²š;wnSSSkkëòåË{÷îJß" Ægjj*݇ʯÓ+ï^ùvÛ;—M›6YXX¸¹¹eddÐõËÃãñ–-[æëëËb±|||6mÚÔÜÜÜ^ÿK.³ê=©iÿ:=ƒÂ‹vôèѵüE]³fMEEEJJŠê‡”””xxxHZ—ù¨¤4¡[ºšÁ`¤¦¦Ë…7çô­­­UUUIIIGŽéîX@{à:=@OqõêÕ‘#GFDD¼þúë©ÇÜÜ|Þ¼yª‚&ô´®Æì=€¨qö ”ÌÞcL Íé hhåÖ.^ö¥€LÝ ‹WnÕeÈôÐ ºxåV]†LÏW[[ÛÜÜ,]ÒÞr· W\•_xWrEQ{öì4h¹¹ù„ N:E—«¸Ü­H$Úºu«§§§™™Ù+¯¼rõêÕçF®sžûÚx.ß‘÷2ºvíÚG}dccSUU%]ÞÞËõˆÜŠ« Þ•’˜˜èää”™™Y[[{îÜ9wwwòÿëʨ²ÜíöíÛ¥ð¥ß0/ç¹sçè ÊÊʺ »º Áªµ¥}™¾¥¥åûï¿=zô°aÃevP’éeV\U¸ð®ä__ß””Iµô›}ÖC)ZvÖÓÓS~_™P?~ãììY±bÅÙ³gëëëÏŸ?¿~ýz%ÄË/;;þ|é|×­['sˆX,>{öìÔ©SÇŽKQÔ¥K—Ž9bmmýÂòòê²KZLû®ÓKp8œíÛ·»¹¹UTTÈ|%¿´+ÕΊ«ò ïJ®Ó‹D¢¯¿þÚÍÍ­wïÞAAA666íÕ#¿ì¬P(ܺu«»»»‰‰‰ŸŸ_nn®ÌâøñãcÇŽMIIikkÓ\/u;‚Uk4Jëß{/‹Åb±úW@=uêTß¾}‡ B~ú;ïàÚ<ô8xÊ S.^¼·bÅÑyóÆÏœé×ݱ(€§ì:îñcN@À¶Q£\“’"ôõ1v‚ž™ ƒ„Bñ´i»ž=kþùç%&&FÝ€b¸NÐA›7Ÿüãª3g–!ÍCO†LÐgÎ}÷Ý…Ý»Ã]]mº;epU à…UVr>ýôHpð(Ül=®Ó¼°°°„‡Ù™™K1o=fï^ÌÑ£y/Þ?uêS¤yx)`öàÔÕñ6lȘ={Ü!}»;• Ó¼€255Z¹ò­î@U˜½PÕÅ‹÷Ž¿þý÷sX,ÃîŽ@U¸#@%Èß‹««ÍÁƒsº;€€1=€JºüèûðáùÝÀ‹A¦x¾††æ­[3çÍ{ÝÙÙ²“U¹ººVTT¨#(Ð ®®®eee©™àùvíÊf2õ.|³óUUTT,Y²ÄÏ ßÁó]¹rå믿îd%ÈôÏñø1gß¾‹kÖL65UÏôcÇŽ>}ºZªí¦–{éð”ÀslÝú‹ƒƒÅG½ÒÝt2=€2¥¥5'Nä/]:‘ÉÔïîX:™@™;³ÜÜlß{oDwÐAÈôízü˜“ž~cþü× FwÇÐAÈôíJL¼`ccöÞ{#»;u*))Qã?. EÔU9M°tÆÆÆ¯¼òJAAzÛ¢555EGG2ÄÌÌlÔ¨Q_|ñ…P(|¡P{dzÅ8œ¦ää+‘‘¯á ½r—/_®þ».h«°°ÐÃÃ#$$Díozmll9rd^^^|||~~þªU«RRRD"‘ÂýËÊʬ­­ém ‹Ï>ûL½ñtž²PìàÁKúááÿìî@z:{{û.nËÞÞ~Ë–-vvvµµµ¶¶¶jl"66ÖÆÆ&;;[__Ÿâéé9qâD__ßýû÷Ï™£àEÈb±¸¾¾žÞ¶¶¶Ž‹‹Sc0j1=€èÀßfÎôS×3ô/„Á`$%%y{{ÛØØÄÅÅ:tÈÕÕµwïÞk×®%„DEEEFFÒ{òx<‹uóæMBÈÉ“'Ü«W¯:tˆ"‹wíÚåíímffæçç—““#=·LO5gdd 8ÐÖÖ6**ª­­Ma!ùû¼´*sÔ ³fͲ¶¶vvv^¾|ykkk{50Œ””ooï>}úlÙ²…"‰¶nÝêééifföÊ+¯\½zUaL&ÓÐаwïÞíµèççG¿v†Ífëéé-_¾œ®ÜÒÒòôéÓ {Œ’œœ¼nÝ::ÍÓLLL¢££“““vÎØ±c !ôÿÒç%“í ÈÉȸéì¼ôñcŽÚk&„¤¦¦>wŸÐÐP.—»wï^BHpp0—ËMHH „ÔÕÕ]¸pÁÊÊJ P•œœìãã#‹y<ž‘‘Ñž={ª««÷íÛg``ÀãñlmmÓÒÒªªªNŸ>íììL)..¦ÿøÓ÷ïßÏÍÍuww_¿~½ÂBŠ¢é𤷠!RèÀÂÂÂüýýKKK }}}%5ÓGIoBÞÿ}‡“˜˜H©¯¯ß¾}»tØŽŽŽäÿß!#iëñãÇÿþ÷¿gÏž-é4ùcccßzë-Š¢222ÌÍ͇NQÔõë×{õêÕÔÔ¤°Ç8!¤¶¶Væ'réÒ%;;;%=&^òñ(ÓÒߦ¦¦º»»+,TªŒ“'Oòù|}}ý¢¢"zŸ´´4IÍt‰L¦ÏÉÉ‘>AOOOù°åÛ255½sç½Â¯_¿njjÊçó—.]ºzõj&“Éáp¶nÝ:iÒ¤öz¬½LåÊkkk%=&s^ ãQx²Jú–RS¦Çì=€¬û÷Ÿ\¹RÚ½WèÍÌÌ!L&Sf›¢¯¯?mÚ´´´´ººº¬¬¬°°0Bˆ¥¥eNNNnn®³³óøñãýõW==½²²²¡C‡Jê|„ çλxñ"éö!$,,,66VúNû¦¦¦øøø   Õ;GIÈœl@¦ø›¶6á±c×?ø`¬ž^{0ZâÕW_ …±±±ááát ƒÁ >>›6mjnnn¯ÇÁ¸qãLMMezFa<íý4Û£–ëô JÝïx©……%è<¨àÉiµ`0©©©ÁÁÁ¬gÍš5)))ªRRRâáá!ù³/óQI!к¾sŽ=Úù·aöà/µµ/Þï᯿mmm-++KJJúøã»;x ÓüåôéÂ^½˜ƒº;e®^½:räȈˆˆ×_½3õ˜››Ï›7O•B ½¤ƒÙ{€¿L›¶ËÎÎü¿ÿýPsM¨kötfïÔéÉ“g×®•½óΰîDÛtr…·ž¹@ÜK™àO'O˜šM˜àÝݨ2=ÀŸNºàkhˆE>A« ÓBH]/?¿âí·‡tw /½ÚÚÚææfùò””777› Ð;(\íMa¡ê­€>¾½By·nÝruu]±bEyy¹FOJtòÍ;ÚaΜýaa ]ÐQáy/—–––ï¿ÿ~ôèÑÆ KHHhll”ÙA~ 8WWW…«½=w}zûöíÊÊÊáÇwú„´2=Éξãéi߯ŸUwòò2dHNNNZZÚ½{÷<==çÌ™“ŸŸ¯pÏeË–I–€›5k–ÂÕÞT_N,Ÿ={vêÔ©cÇŽ¥(êÒ¥KGޱ¶¶Öä¹¾¬éHVÖ7ßÄÔ}ÇùúúîÙ³§¸¸ØÇÇ'$$äÁƒòûDFF¼ýöÛS¦LYºt)!d×®]ŽŽŽ£F \µjU{…òÒÓÓcbb¦OŸ^VV¶aÆöÖ‰‚·áTW7Œ±!5uÁ«¯zvAsZÿ6\±X,‹ 4ûZ@Àd25ÚDO –·áâ ë~ýµØÈÈ`ôè݈–ÐÓÓÓÓÓø„±.¤yuÁì=èº+WJFŒèod„‘h'dzÐuW®”úù¹wwš‚L:­²’óðaý?ÿ‰LZ ™tÚåË%½z1GŒpéî@4™tÚ•+%#GöÇúu Åé@§]½Z6f îºm†Lº«¶¶±¢¢nÔ(×.kñöíÇzzF]ÖÁóô Ë êé1†튋ôb1µgON|üϦ¦ÃBBBBBBº QÐúúú¬™tWAÁCWWsó^šn¨¼¼váÂä?þx²yó{}ûN®©©Ñt‹ 5ììì:Y2=è®7 ÖOÓ­œ>}kÙ²T[[³ôô…ƒ÷Õts2pt”XLݼùpèP fz±˜Šÿyî܃ï¼3ìÌ™eHóÐ-0¦U^^Ëå¶ ¦©‹ôÏž5ÏŸÿýµkå»w‡¿óÎ0 µð\Èô £nÞ|hhhàë뤉ÊËËkgÍÚÇ嶤¦Î9²ëîí‡Ù{ÐQ……¼¼˜ÌÎÞØ,ïöíÇS¦ì011úå—¥HóÐíé@GݹS¥‰ýo¿¿óÎŽQ£\üq‘½}oµ×ð¢é@GݹS5h£zëüßÿþøè£½&x'$|„7ìBLº¨ºº¡¡¡ÙÛ[™þâÅ{Io¾9èÛoÃ5qQ cð/'è¢;wª!ƒ9¨«Â¢¢Çsæì úÇÎaúúDA‚_GÐEüQíèhÑ»7K-µ••ÕΘñßþÓiz üF€.º{·Z]ékkÜœ,¿ýv&Ò<ô@ø¥]t÷®znÇDóælk8ib‚Eê 'B¦#ŠKJjTÃEú/¾8uëÖ£ä乯 @pG蜇ë‘»»m'ëIO¿‘ð¿={>TûÓzj„1=èœÒÒƒáæÖ©L_ZZ³bÅѰ0¿)SðN{èÑé@甕ÕÚÙ™³X†®A EE¥8:ZlØð®ÐÌÞ€Î)/¯us³éL ;vœ»{·ú矗tæß€®1=蜲²Ú:>u_Tôø?ÿ9·jÕ[^^j{ñ€æ Ó€Î)-­uuíà˜^$¯XqtèP—ÈÈ×Ô€†`ötKSSÛ“'Ï:<{Ÿ”ôëíÛÏœY¦§ÇPo`‚1=è–ê)ŠêؘþÉ“gÛ¶eΟÿæíá%‚LºåÁƒz==†‹‹UŽýòËÓVV¦K—NT{TšƒÙ{Ð-±mlÌ;°ªìõëåÇ_OLœed„¿œð2Áï+è–ÊJ¶³ó ¿¹–¢¨ ~9²ÿ¤Iƒ;ÜtTTÔÝ»w;|8è2ooï;vtìXEQê '‹ˆH244سçÃ:ê—_~Ÿ3gÿÉ“‹‡wépÓ cìØ±}ûöíp  ›=z”››Ûá|1=è–ÊJök¯ |¡C„Bq\Ü速ΤyÚ’%K‚ƒƒ;Y 蚣G†„„tøpdzÐ-qœû¼Ð!?ýt³´´&1q–f"Ð,Ü{:„Ëm}ö¬ÙÙÙRõCÄbê›oÎN™2ÌÓÓ^sh2=èÇ9„ÊôgÏ•–Ö.Z䯱 4 ™tHU‡âèø™~çά7ßäíèáe…L:äéS®‰‰‘¹y/÷¿t©äæÍ‡‹h4ª.SRRÂ`¨í%¾ £¤¤D]µ)Çãñ–/_îêêjllìááÓÚÚªÑ›šš¢££‡ bff6jÔ¨/¾øB(ªr z;Y-pGè§O¹¶¶æªïŸ˜xaôè¿å:iÑ¢E<8qârwð IDATDß¾}ïÞ½Åf³wîÜ©¡æGmgg?`À€¢¢¢µkמ;w.++K__Á;—ÊÊÊF]WWG±°°øì³Ï4XÇ`L:¤¦†ko¯j¦ø°>+ëöܹã5¨âÇüòË/‡nccóÚk¯íر㧟~Ò\s±±±666ÙÙÙAAAžžžÓ¦M»víZEEÅþýûî/‹ëëëémkk븸8ÍÅÖÈô C^hLèÐ[[óÀ@_†$ƒÁ`$%%y{{ÛØØÄÅÅ:tÈÕÕµwïÞk×®%„DEEEFFÒ{òx<‹uóæMBÈÉ“'Ü«W¯:tˆ"‹wíÚåíímffæçç—““#=¥LÏ0gdd 8ÐÖÖ6**ª­­Ma!ùût´Â©iŠ¢öìÙ3hÐ ssó &œ:uŠÞ‡Á`¤¤¤x{{÷éÓgË–-ôÎ ³fͲ¶¶vvv^¾|ykk+]gvvv¿~ý~ûí7@mgggkk-!æææ»wï–dÓ×^{íÁƒí!äÔ©SÆ c±XtÞ …111ýúõ³±±ùðÃèª6—œœ¼nÝ:éỉ‰Itttrr²ÂÇŽK±··—é"ù“m¯[4‹Ð“&m_¿þGUölmøø¬Ù¶í5¶NIMM}î>¡¡¡\.wïÞ½„àà`.—›@©««»pá‚•••@  (*99ÙÇÇG,óx<##£={öTWWïÛ·ÏÀÀ€Çã%$$ØÚÚ¦¥¥UUU>}ÚÙÙ™R\\LÿÙ§7ïß¿Ÿ››ëîî¾~ýz……E544$&&ÒáIoÓR•˜˜èää”™™Y[[{îÜ9wwwºBÈûï¿Ïáp !õõõE………ùûû—––úúúJÚý׿þuþüyÿÞ{ï=|ø°°°pøðá+W®¤(êÌ™3NNNFFF[·n­¨¨ cP3—Ë544Œˆˆ¨¬¬LNN&„ÔÔÔlݺÕÇǧ°°ð÷ß3fÌòåËéä›ãp8„ÚÚZ™Í¥K—ììì”ttHô¶üɶ×-Ê¥¦¦v&_#Ó€1býîÝçUÙóøñ¼¾}—VUqÔØºŠ™þÆEñù|™íââb¡PhooŸMQÔ¤I“âââ(Šb³ÙL&sÛ¶mG,766ŠD"ŸHª=xð |¦/,,¤¿MMMuwwWX¨,Éô999Òñóù|}}ý¢¢"zÏ´´4ùv½¼¼ª««éísçÎ :”Þ …¹¹¹±±±¾¾¾úúút‹ cnkk»{÷.ljD.\ ›8p`ZZ½Û;w$Ûò͵—é¯\¹bmm­¤ëèɶ“UØ-J:YÒJg2=fï@WPU[Ûhg§ÒìýÁƒ—ýý98¼ðZ8gffFa2™2Û„}}ýiÓ¦¥¥¥ÕÕÕeee………B,--srrrssÇÿ믿êéé••• :TRçàÁ æñðð 7¼¼¼*++•*WZZêëû×5ŽAƒI¶¥ãúô©H$rss£?º»»Kšðòò¢7*** ƒÁ(//ojjúá‡!cÆŒY»vmaaáêÕ«W¬XÑÞ‰Þ¿?((hĈ ¿zðàd7ooï©S§¶×œ………½½}AAÌiŒ1Bõ^Rr²2Ý¢iÈô +8œf@dg×û¹{VTÔ]¿^þÁc» ª5}úôôôô£GŽ7Žž“oii‹ÅÇŽc³Ù‘‘‘“'Of³ÙNNN·nÝ’uûömùªèÑ'!äþýûtîi¯P9éú¥×ëÓÓû[–±³³Ó××/++£?–––:99ÑÛ’´G›éÁ(‡Ã¡Wvùàƒ~ÿýwzƒ1qâDégÞdbnii ŽŽŽ¾qãÆîÝ»é¯+**èí‚‚‚Í›7·×!$,,,66V$IšhjjŠ R½—”œ¬L·h2=èŠÚÚFBˆés÷¨öꫯ …ÂØØØððpº„Á`ž8q‚Ëåòù|&“Éb±"""¢££322žùdÅŠgÏž­¯¯?þüúõëÛ{ œÉd†„„DEE•——}þùçô´„´iÓ¦­ZµêÁƒ………AAAß~û­©©é‡~rúôé²²²Ë—//_¾<44´½ikkãóù†††---111„ÆÆÆððð5kÖ-\¸¾¡Oas„uëÖÕÔÔøûûgff§§§3ÆÉÉiÁ‚JºŽÇã½èÉv‘Ïû¼\._.qpø´®®Qùnb±ØÏoÓêÕ'ÔQí:½dˆÙÞöüùó¹\®ä¨ÔÔT777CCC//¯ŒŒ Š¢ø|~ll¬«««©©©ŸŸ}í\æ:ýÞ½{]\\¬­­-ZÔÒÒ¢°úû-fÒÛ’D"Ñ×_íææÖ»wï   ŒŒ ›öâg³ÙáááVVVK–,‘´+9.—;{ölKKK++«¹sç655Q% ׯ_?xð`ccãþýûöÙgÒ±ÉǼ}ûö>}úôíÛw÷îÝ¡¡¡¶¶¶­­­Ë—/wttìÝ»whh(‡ÃQÒEQ<oÙ²e¾¾¾,ËÇÇgÓ¦MÍÍÍíµ(Ægjj*ÓEò'«äǪîÈPÉ©SNNK‘òÝnÞ|ààðéõëåj@•L¯ŠÕ«WðÁ/tˆL6•ù¨¤P'Ož,((|<~ü¸ä6:MëpÌ/Q‹îÈP›Ýdffl`ðœ¿{?þxÃÅŪg¾¯µµµ¬¬,))éã?îîXþRXX8sæÌ7n477çææ®]»vΜ9ÝüoÃ]Áá4÷éc¢|‘Hœ‘qsÆŒ1=íÕå´«W¯N:uÁ‚¯¿þzgê177Ÿ7ož*…ªX±bEssó»ï¾[[[;`À€ˆˆˆŽÕÓŽù%j±óEuw ]aÆŒë×+Nž\¬dŸ¼¼òwÞÙ‘•=hú¯c0©©©ÁÁÁj¯´ÛÑ£GCBB:œ¯1{º‚Ínzî˜>3ówWWM¤y€î‚Lº‚Ãy~¦?{öv` O×Ä£;:¹k\öå‚Lº‚Ín²´d)Ù¡¬¬¶´´¦‹—´Ð4dzÐN³……²1ý¹s·ûô1=ÚµËBèÈô +¸Üssc%;œ;w{Âo}}üaì”ÚÚÚææfùò””777› Ð;(\ÔUa¡ê­€<üB€®hll57ï¥äÛ¼¼ò7ßÔÞð\yyy³fÍòññyöì™ü·III™™™§NÊÊÊÚ¸q#!dáÂ…•••×®]ûå—_Μ9ß^¡¼[·n¹ºº®X±¢¼¼\£'¥é@'´µ ù|¡™Y»™þò屘zýu¯®ŒJ;´¶¶:th̘1óæÍûç?ÿYVVæàà ¿Û7ß|ãáá1f̘͛7§¦¦ ‚~øá?ÿùÏ€þñÄÆÆ&''+,TØè›o¾yóæM‹õÚk¯M™2åìÙ³b±XÃ'ú²B¦Àå¶B”ÌÞ_ºTìãã¤|zäeee¹¸¸dggïܹ3??îܹ¦¦Š×’^鵺ºZ᢮JVz•çèè¸~ýú²²²ððð7z{{?zôH­'§%é@'46¶B”Œéû­xÜ8.ŒHKØØØ 4èòåË—.]jhhP²§ôJ¯... uU²Òk{ž>}zûöíÊÊÊáÇã5é@'(Ïô55÷î=yådú6dÈœœœ´´´{÷îyzzΙ3'??_ážË–-“¬ô:kÖ,…‹ºª¾Ò«X,>{öìÔ©SÇŽKQÔ¥K—Ž9bmm­És}Y!Ó€Nhl¤gïgú+WJ˜Lý±ctmPÚÃ××wÏž=ÅÅÅ>>>!!!’ÕߥEFF¼ýöÛS¦LYºt)!d×®]ŽŽŽ£F \µjU{…òÒÓÓcbb¦OŸ^VV¶aÃGG¼Ö°]xï=脟.üøãnSø]tôÑ’’§éé‹4ƒŽ¼÷^,‹ÅbÍ® &˜L¦F›è9ðÞ{€çklle± Û{VþêÕÒ±cݺ8$m¥§§§é4OÑ4ßyÈô š›ÛX,C…_Õ×óJKkGÆÔ=h'dzÐ --ccÅ™þÆ 1Â¥‹CèÈô ZZøÆÆŠç{óó+ÜÝíð$=h+dzÐ JÆôׯWŒÑ¿kÃè:Èô ÚÓ …â‚‚‡#Gbê´2=è„æf¾Â1ýÝ»UÍÍ|ŒéA‹iüA€ž ½Ùû[·™š¹»ÛuA úú&±±[» -Ð&OŸ>íÌáÈô ZZø½{+¸ç®¨¨ÒÇÇIO¡éΞ-êÛ÷ã^½š,-•½@ž¥¥e@@@‡G¦ÐÒ"°·ï-_~ûöã!Cúi´é¦¦¶U«Ž§¥å/Y21**€ÉÔ×hs2é@'´¶ ŒŒdÿâ‰Dâ»w«ÃÂü4×nIIÍÇïò„›ðÑ[o Ñ\CíA¦ ŠäÓååuÍÍ|Ÿç¬‹ÚaÿûßóçïæfsîÜrggK µ î½ ˆ d3ýíÛ™L}//µ7GQÔW_e†…}÷Þ{#22#ÍC7˜t‚H$60Û=öð°Sû…s¡P¼rå±~¸ºjÕ[ ú«·r€…L:A É/dwï^µ··š×5çó… |á½ýû#|Ô[9@`öt‚H$–»ß»÷dà@{5¶ÂãµÍ˜±çêÕ²´´…HóÐC`L:A~LßÜÌü˜ãá¡¶wæ444ðABuuCZÚBOOuþÐÈô „BÙ1}iiXL¹»Ûª¥þÖVÁìÙû?æüðÃ|¤yèQé@'…"™;òŠ‹Ÿ¸¸Xw¾r‘HüÉ'‡þøãIzúBMÜÉÐÈô „B±ÌSvÅÅOû÷·–¿!ÿEQõé§G.\¸wüø'HóÐ!Ó€NP8¦WËEúo¾9—žžŸðÑСš}«.@ÇàÞ{Ð B¡ì›sJKkÜÜl:YíéÓ·¶mËܸq*Þt =2=è™Ù{±˜ª¨¨suíT¦ÿý÷ÊE‹RfÍ7{ö«@Sé@ûQ%ó޼ÚZn[›ÐÅŪÃur8Msæì:´ßúõï¨#FMA¦í'Š !Òcúê !Îô"‘øßÿ>$ˆ>Â*´ÐÃáŽ<Ð~B¡ˆ"=¦ð ÞÐÐÀÎNÁŠõªøæ›³W®”ž8±ÐÆÆL=!h 2=h?ù1ýÇlggK==FjËʺóõ×g7o~oĵ… 1˜½íGé™Ì¿þâ=zTß±©ûŠŠº… “CBÆ|ôÑ+j‹@“é@ûÑcz}ý¿]§ï@¦D |ïìl¹iÓTuÆ IÈô ýäÇô••gç>/ZÏ—_ž*-­ILœell¨Îø4 ×é@ûQ!„0fz‘Hüôé3GG‹ªäÌ™¢„„ uò)|€.†1=h?úÎ;ŠÓëê…B±ƒÃ dúÇ9Ÿ~zdÆŒ1o¿wáÁK™´ƒÁ „ˆÅý±ªê!ÄÁAÕGìD"ñ¢E)¶¶f7âò<¼|0{ÚÓ‹Dfúêêƒao¯j¦ßµ+» àáÏ?/a±:xy>**êîÝ»;@ÂÛÛ{ÇŽ/z2=h?:ÓKÆôOž<³²214Téàõëå_}•¹~ý»Y‘vçÎcÇŽíÛ·o‡kxôèÑÎ;‘é¹N_]ýLÅ‹ôÍÍü¨¨Ã¯½6pöìqŒaÉ’%ÁÁÁ¬tÙÑ£GCBB:p ®Ó€ö“ÓWW7¨8uÿå—§¹Ü–¯¿¥¯ô¼Œé@ûÑÏ×I2}M W•Lὤ¤_ãâ¦ãåöðRC¦í'3¦¯­m|nòæñÚV¬8úÖ[ƒñX¼ìé@ûÉdúº:ž••©òC¾üòTK ?.nºÆƒÐ0dzÐ~ÿGE ÅN“µµ²LåJéÁƒ—Ö¯·O“. QÃJJJÔx«ƒÁ())é@[UUU|ðAÿþýMMMG•žž®®ÔKúššš¢££‡ bff6jÔ¨/¾øB(¾h%Ý ™´Ÿô˜žÍn‹)%³÷MMmK– ô6mD×…¨E,,,>ûì3BHYY™µµµ¤¼¾¾~ذa,+55õÚµk3fÌ =sæL÷Eú|#GŽÌËË‹ÏÏÏ_µjUJJJ@@€H$R¸¿ô)Kú¡Ûá);Ð~zzz„‘HL©¯o$„X[·›é¿þú,‡Ó„×áu˜µµu\\!D,×××KÊcbbÞxã½{÷Ò ôäÉ“mÛ¶Mœ8±{UAll¬Mvv6½¢§§çĉ}}}÷ïß?gÎùý¥OYÒÝczÐ~Òcúº:!¤½Ùû»w«¿ûî«W¿íädÙ•B FRR’···M\\Ü¡C‡\]]{÷î½víZBHTTTdd$½'Çc±X7oÞ$„œ·OTÙáÔ©SôD‚ƒƒƒ$ïÊÇ,‰¶nÝêééifföÊ+¯\½z•Þ399yݺuÒ뛘˜DGG'''+ì4éS–î±öÎN& M¡t€ƒÃ§7)ŠJKËï×o™X,–ßG,¿ýö7o¿ýÂo;ƒ’ššúÜ}BCC¹\.=ê ær¹ „ººº .XYY Š¢’““}||Äb1Ç322Ú³gOuuõ¾}û x<^BB‚­­mZZZUUÕéÓ§ !ÅÅÅô|z#00ðþýû¹¹¹îîîëׯWXHQTCCCbb"žô6]¡dûý÷ßçp8‰‰‰„úúz™¶èÝ8!„Íf·wúaaaþþþ¥¥¥………¾¾¾tÊûä¹;p¹\CCȈˆÊÊÊäädBHMM˜·oß.ÝiŽŽŽ„:æÚÚZ™P/]ºdgg§¤'éݤ·Û;;™0”ÿ†¤¦¦v,k#Ó€NprZòã7(ŠÚ»÷ÂСëîóÃW—þþ{¥Ú[W1Ó߸qƒ¢(>Ÿ/³]\\, ííí³³³)Šš4iR\\EQl6›ÉdnÛ¶ÃáˆÅâÆÆF‘HäããsàÀIµ”Ïô………ô·©©©îîî •‡*ésrr¤CU˜éÙl6;VÈçóõõõ‹ŠŠèiiitÊûä¹;´µµÝ½{—Çã‰D¢ .H%³§§§|§µ—é¯\¹bmm­¤'éɶ’³“ CIŸSÈô˜½ §Ç gïŸ=k177–ßáÙ³æÍ›O~øá?}}º<º?™™™B˜L¦Ì6!D__Ú´iiiiuuuYYYaaa„KKËœœœÜÜ\ggçñãÇÿúë¯zzzeeeC‡•Ô9xð`ù†<<<è //¯ÊÊJ%…ª GÀ’P²´´´³³»sçŽta^^Þ¨Q£š››Ÿ>}*‰ÜÜÜèrwwwIJúä¹;Þ¿?((hĈPó£Gä;ÍÂÂÂÞÞ¾  @æ\ FŒøónMU:MÉÙ©Òu‡L:Á`ˆÅbBHcc«¹y/ù¶lÉ$„¬Xñ¯®ŽLeÓ§OOOO?zôè¸qãè9ù––±X|ìØ16›9yòd6›íäätëÖ-ÉQ·oß–¯ŠnBîß¿O'›ö UAßðø\S¦Lùꫯè±,-99Y °X,;;;}}ý²²2º¼´´ÔÉI ÿoµ´´GGG߸qc÷îÝJbîß¿¿ÂN ‹•¾Ó¾©©)>>>((ˆþ¨J§)9;»®“é@'HÆô\n«™™ì˜¾¨èñ÷ß_Z½úíÞ½YÝJ^}õU¡PN—0ŒÀÀÀ'Np¹\>ŸÏd2Y,VDDDtttFFÆ“'O233W®\)_ÕâÅ‹KJJòòòV¯^=sæÌö Ÿ={&¹U^zû…ðx?66ÖÕÕÕÔÔÔÏÏïðáÃDî:ýÞ½{]\\¬­­-ZÔÒÒ¢°úû…vémå¡JöãÆ355•D[QQñþûï;::š™™=ú§Ÿ~’|Åf³ÃÃí¬¬–,YBðÜ>yîÛ·oïÓ§Oß¾}wïÞjkk«pO¡P¸uëVwww??¿ÜÜ\ÉÉòx¼eË–ùúú²X,ŸM›6577·×“Ò§,s›‚êgמ_§gPR)ÚÊÃcåÆSgÌ3cÆž¾}ûlÝúײ§NÝš?ÿà©SŸÚOC­3ŒÔÔÔίZ»fÍšŠŠŠ””Õ)))ñððü©—ù¨¤”ëúN£W­í@‹xsèCCƒ¶6!!„Ëm‘¾NÏç 7m:ùþû#5—æÕ¢µµµªª*))éÈ‘#Ý ¼dpt‚¡¡Ÿÿg¦73û+Ó''_©©á®\ùV÷…¦’«W¯Ž92""âõ×_ïL=æææóæÍS¥”{‰: czÐ FFŽé[%OÙ56¶~ýõÙٳǩ²\}÷?~<ýHú‹’<ºM³µµÝ³gÌ> A¹—¨Ó0¦`h¨/™½—Œéþ'‰£¢ÞìÖÐ4 ™t‚‘“Ïòù¶6!=¦¯©iܳ'ç“O&ôä'ë:™t‚‘‘Ÿ/är[ !ô˜þë¯ÏXX°æÌßÝ¡h2=èúŽ¼ÆÆBˆ¹¹qe%çðáÜÅ‹ŒŒp»h9üŠ€N022hmýkL¿cÇ9gç>|0¶ËÈÎÎnhh ·ÅbŠ^H@uùùù;™t‚ô˜žÇkMM½¶yó{úú]4¯Ù·oßï¾ûŽÞ66ö63{…ÃùI ¨éšÖAkôëב·> Ó€N¾NøðU[[óÑ]ÖúÇ !UU 11?ž>}+ ÀgÓ¦ø¾}ûtY Ëé@'46¶66¶öêÅ<|øÊš5“™Lý.k](÷Ýÿ¶o?cmmvà@d` o—5 €L:ÁȈY_Ïkjjc0¦¦Faa]w…þáÃúO>9ôûï?ùd¢Eoöê¥ÙÅÈd Ó€N02Òçó…l6¯µU°dI ±±a×´»wïÅ/¾8åëë|ñâÊ~ý¬º¦QiÈô è;ò®]+g0ȇþ³ Z|ö¬9:úè/¿üþé§‹à©fèÈô  ZZüñÔÒ’%yï½æ<|XÿÑG{9œ¦C‡>~ýu/M7 þÇ`ddÀf7µ´´ÙÙ™kº­üüŠ·ßþÆÌÌ8+kÒœ4i°¤„Å2¤(ªÃVW7Ì™³?(èŸ~ Žº2=h§ÌÌßMMÆ()111¢(Ò±;åù|áÇèÓÇtûö¸Ù^.¸NÚéçŸ 'Lð–¾ÿŽÓw,O¯_ÿcqñÓŸ^bbb¤¾º2=h¡ššÆ«WËþûߥ Y,ÃŽéSS¯ÿYQQ·gχL¦¾:CèBÓ€¶ÉÏÐÜÌýõ2å,}ェ©þüù»‰‰¿ù&´_?+uÇÐu0¦msñâ=«þý­eÊé;òTÄá4-[–úÎ;æO¥æøº2=h› î½öšì€žüù<½ª³÷Ë–¥2™zqqÓÕ@—C¦­R_Ï+,|ôÚkžò_Ñ ×ª2{Ÿ––ölÑW_Í07ï¥þ{’’’5¾ˆÁ`tïCƒ>¦¦¦èèè!C†˜™™5ê‹/¾Pñ™õv † Ó€V¹t©DOñ꫊3½*÷Þ×Ô4~þyZdäk ++++³¶–½¤¢Þj-,,>ûì³­¡±±qäÈ‘yyyñññùùù«V­JII ‰Dj±‹áŽ<Ð*—/ÿãÎææÆò_™˜QÔó‡_Ë—ÿ`kk¾fÍÛˆN§‰ÅâúúzVkmm÷¢5ÄÆÆÚØØdggëëëB<=='Nœèëë»ÿþ9sæh¢Å.†1=h•k×ÊýüÜ~ejjD%+»+/#ãæùów¿ú*¤“ËØ«ƒÁHJJòöö¶±±‰‹‹;tè««kïÞ½×®]K‰ŠŠŠŒŒ¤÷äñx,ëæÍ›„“'O<¸W¯^ 8tè!D,ïÚµËÛÛÛÌÌÌÏÏ/''Gzzƒž…ÎÈÈ8p ­­mTTT[[›ÂBò÷)ëö¦¯ FJJŠ··wŸ>}¶lÙB;v,!ÄÞþÏÕ~Att´­­mtt´@  «ÊÎÎîׯßo¿ývêÔ©aƱX,:› …˜˜˜~ýúÙØØ|øá‡ 2ÕJ‚y÷Ýw—.]J7ÔÖÖfiiyúôi…B’““×­[G§yš‰‰Itttrr²ÂPØ"!¤¡¡aÖ¬YÖÖÖÎÎÎË—/ommUØÝ€Ð MŽŽK~þ¹Pá·/ÞspøôÀßÚ;¼¶¶ÑÇgÍêÕÇ5 ,BHjjês÷ år¹{÷î%„s¹Ü„„BH]]Ý… ¬¬¬EQÉÉÉ>>>b±˜ÇãíÙ³§ººzß¾}</!!ÁÖÖ6--­ªªêôéÓÎÎ΄ââb:Ð÷ïßÏÍÍuww_¿~½ÂBŠ¢éð¤·é %Ûï¿ÿ>‡ÃILL$„Ô××KÚ¢ÅÇÇ¿÷Þ{>,,,>|øÊ•+éþõ¯?¾ººÚÐÐ0""¢²²299™RSS³uëVŸÂÂÂßÿ}̘1Ë—/—DN×)Ùþá‡úõë'‹)ŠÊÈÈptt¤»H¾Q‡C©­­•éöK—.ÙÙÙ)é™)Š ó÷÷/---,,ôõõ¥ûJ¾žû[‘ššªÞìŒLÚãüù»ŸÖÖ6*üöÆŸîÙ“ÓÞá &»±©©MSñÉQ1Ó߸qƒ¢(>Ÿ/³]\\, ííí³³³)Šš4iR\\EQl6›ÉdnÛ¶ÃáˆÅâÆÆF‘HäããsàÀIµ”Ïô……þ“”ššêîî®°Py¨Ò™>''G:T™LïååU]]MoŸ;wnèСÒ͵µµÝ½{—Çã‰D¢ .Ð5 80-->äÎ;ô¶Â¼ÛÔÔdbbríÚ5Š¢f̘±jÕªöm/Ó_¹rÅÚÚZI·È´Èçóõõõ‹ŠŠèò´´4º¯äûAIJZQo¦Çì=hüüŠþý­­­M~kfÖ‹ÒÚªøuâgÏ¥¥åoÝLߢߣ˜™™B˜L¦Ì6!D__Ú´iiiiuuuYYYaaa„KKËœœœÜÜ\ggçñãÇÿúë¯zzzeeeC‡•Ô9xð`ù†<<<è //¯ÊÊJ%…ªptt”UFEE…ƒƒƒÁ`0ååå’V!†††÷ïß 1bÄ诟Ïd2Y,VDDDtttFFÆ“'O233W®\)_ÕâÅ‹KJJòòòV¯^=sæÌö Ÿ={Fß4 ³­ GoL›6mÕªU<(,, úöÛo¥wkkkãóù†††---111„ÆÆÆððð5kÖ-\¸ðÁƒòÕJr8œ˜˜˜ˆˆI¡ÂF×­[WSSãï™Y\\œžž>fÌ''§ (é™™LfHHHTTTyyyQQÑçŸNϯôj¼ÐîÞ­rpø´¨¨²½Äb±ƒÃ§K—‘)ø°ÞÕ5z÷îóP¢Úuzé‹ß ·çÏŸollÌår%G¥¦¦º¹¹zyyeddPÅçóccc]]]MMMýüü>Lä®ÓïÝ»×ÅÅÅÚÚzÑ¢E--- ©v.?7T@0nÜ8SSSºËåΞ=ÛÒÒÒÊÊjîܹMMM2ò·oßÞ§OŸ¾}ûîÞ½;44ÔÖÖ¶µµuùòåŽŽŽ½{÷ åp8EIW+SÃܹsMMMy<ž¤D¾QºœÇã-[¶Ì××—ÅbùøølÚ´©¹¹¹½ni¯E6›neeåàà°dɺ¯Úë%Ô~žA½øjÍ=Ðñã×—/O-)‰70hw¶ÒÙyéäÉCÿûߥ çÏ?xûvÕùó+º~Á:ƒ¡–Uk׬YSQQ‘’’¢ú!%%%’ óQI¡Né– W­Uc£=åQ€Núãj;%ižÂ`0ššþvþÒ¥’Ÿ~*8tèã—t]ÚÖÖÖªªª¤¤¤#GŽtw,ÐCá:=h‰;wª zÎýbzzŒ¶¶¿î½ ÅŸ~ÂßßÛß_v1û—ÅÕ«WGŽñúë¯w¦ssóyóæ©R¨S´£0¦-q÷nõsßT¯§§×ÒòW¦?vìZiiMBÂGMƒÆÏf³;p äioš­­íž={döQX¨S´£0¦mP_Ï{úô™··ƒòÝ ô$OÙµ´ð·lùåÿØ»ï¸(®õaàÏö¾,”Ž4;1Xb!¦y¯ôõª÷Ú¢1&&Pc,A½WL¹‰šD¯=B£ù…(Š"‚ˆ ¢Òa lŸ÷1›uYJ„Ewy¾Íž=sæÌÀ‡‡sfæ<3f õ÷w1zn0Ò#„¬Á;ØÎì=NU*Ÿd#ýþûKR©âãÌÞ¹¯“©]-"3ì‹ #=BÈäç?¶µå9; Û®F£QÉ5òd2åÖ­©³gsrtKzn0Ò#„¬ÁýûU¾¾NíVc0h*•vï>¯Óï¿?Úü]Cè9ÃH²%%5žžíV£ÓiJ¥º¡¡é»ï~Ÿ?¤É4ö¨“ª««›ššZ–'&&úøø8::.X°€¬`2Í«ÉÂŽµ„‘!d JJj=<ìÛ­ÆdÒÔjíîÝètÚœ9û¡c=JffæÌ™3ƒƒƒ[~»gÏž”””“'O¦¦¦®_¿Þÿý²²²«W¯þú믿ýö[|||k…-ݸqÃËË+66VŸµ#=BÈâiµº²²ºŽéé*•f÷îóï¾û ŸÏꆾõ …âÀáááóçÏ:thQQ‘Xlâ%ˆ¯¾úÊÏÏ/<<|ãÆIIIjµúСC_ýµ··wß¾}ãââLš<è˜1c²³³¹\îðáÃÇêÔ)NgæµTéB¯¼¼A­Öv$Ò³X4F§Ó3gFvCÇz‚ÔÔT3gÎlݺ5++‹\jÞdMÃܯ&Ó¼¶‘ûµ%WW×uëÖ͘1cýúõ>ìÒ“³éB¯´´:é™L:L™ò車££cPPÐ¥K—ÒÓÓÚ¨i˜ûÕÃÃÃdš×6r¿¶¦²²òÖ­[eeeƒ âpðÁ 0Ò#„,^ii-ŸÏ²³ãµ[³±±&NlþNõýû÷OKKKNN¾wïž¿¿ÿܹs³²²LÖ\ºt©>÷ëÌ™3M¦yíxîWNwêÔ© & 2„ ˆôôôƒ:8´ÿß^„‘!dñ**ÝÜlÛ­¦Óåå `¡Él^d!!!Û·o/((ž2eŠaæx½9sæŒ;öÍ7ß?~ü’%K`Û¶m®®®aaaQQQQQQ+W®l­°¥cÇŽ­]»6::º¨¨èÓO?uumgѤž ³Ö"„,^LÌáÒÒÚÇ´]íÔ©¼™3÷?þ¸pèPßîé[Ûº*kí E§Óét::ݼyUÔj5ƒÁ0ë!ž—.ÏZ‹cz„Å«ª’td©»]».¸ºÚÀsøÈL¨Tª¹Ã<Xk˜7Œô!‹W]-m7Òß½[qñb~p°F•H0Ò£#=BÈâUUIÛYñ>11ÃËËÑËËF£64àÚj¨ÁH²lA´;¦ojR9ruÚ´!l6ƒBÓ£#=BȲ566«ÕZGǶ"ýñãוJÍÔ©á,ƒB¡44`¤G=ˆÙš@!³ª¯—€éuÙH{ö\|ãþ¶¶<6›Ïö^.WnÝšJ¡à>Èì0Ò#„,›D¢€ÝZ…;w*nÝzôé§6›NÏ?ÒŸ>}ëã6661¸Ò 2;Œô!Ë&•¶é½æáaál6C§Ó56šN„Ú >¬ûøãÿýî¤IƒW¯ïäæÌ™¶‘E=Mk‹ >3Œô!Ë&“µéµZÝÑ£YS§†S(`±Z­î¹Œé ‚8pàòÆ'öÞ½³£¢B W¯^ÿûßÿº¿3è×»wï.l #=BȲI¥ ‹ÞÚ·W®UV6êºg³:ÑýoÙ566-Yrè·ßòæÌû÷äöüƒº¹'¨ÂH²l2™¢©ûä䬾}Ý}}È,º}¼óçï}ðA"—ËÁ÷l·êšæÍÛê¹víßžaw„ºFz„eãñX†£ó7öîm'q[«Ïå²ÈÙþg¸U¯ÕêæÍÛ;wÎj-U.B/|"!dÙŒÆô99ÚÐÇ$gûŸaL¿eKê•+EÇŽ}ÐÆ½hðR„eãóÙjµV­~òJýúõk+Òs¹L¥RC£Qÿêâ9çÏßûâ‹”?~sРV@è„‘!dÙx<ÃúêjiU•4$Ä­ú\.K.WÚØpþÒì}m­ì£Ž8oÞˆNv¡n†‘!dÙø|2Ò+àÞ½ÇàÚF}ÙÔ¤‰¸iö~éÒ$ºeË4ÌS‡,Fz„eØðǘ¾  R$â¶½” —ËjnVÙÚþ…H¿o_ú™3·¿ûn†9nÏÇÆÆR2Ûµ¿cøDBȲÙÙñ ¶V……•¾¾Îm×çñ˜jµ¶ãcúû÷«Ö¯ÿùÝw_ mu5žÎ())2dÈ’%KÌÑ8²8_~ùeIII×¶‰‘!dÙll¸t:µ®NùùýýÛ‰ô\.x !dñììøµµòGêÀÍMÔveòY}ƒN¦³£´òÖÜþýé99RR–ષÈÒáo0BÈâ‘cúGêíìx³íÊ䘞F£j4:ò-ü–?nÜ´é—wÞØÖ«ùV£°°°µÿxž…B),,ìªÖàéî™|-M_á™OD.—ÇÄÄôïß_ „……ýûßÿÖh4íïÖÕ—ÎLpL²x..6çÏç?zÔàæfÛneƒÆf3È?Î MäßÈÚµ?ÙÛó—-3ãóöè™]ºtÉËë©7étúòåËŸ¹A©TúÒK/9;;ÇÇÇ{{{çåå­^½úôéÓ©©©4­eý¢¢¢—^z©¦¦D"QgÝ=0Ò#„,žX,ª¨hxô¨¾#‘þ˜À€úzy¯^vFß^¸âDÎ÷ß¿Ãf3º¸£¨+8::º¸?#¹iÓ¦gn0..ÎÑÑñÌ™3d\÷÷÷õÕWCBBöîÝ;wîÜ–õu:]mm-¹íààЙCwœ½GYŸ­Ó`*Z­ýä“ä7Þè?fLP×w´(Êž={7mÚtàÀ///›Õ«WÀ¢E‹æÌ™CÖ”Éd\.7;;Nœ8ѯ_?6›ííí}àÀÐétÛ¶m iii†“Ïä\ôñãÇûôéãää´hÑ"¥Ri²žž¸nw»¡¡aæÌ™îîîË–-S(fíÚµ½{÷vttüç?ÿÙÐÐ@Ö>± —:RÒ¤m+W ^µwïEÃòÇýü–þù¯æé¦iôׯ_'B¥Rmh4—3gÎñúë¯oÚ´‰ ˆºº:ƒñùçŸ×××ët:©TªÕjƒƒƒ÷íÛ§ovÿþý-#}nn.ùmRR’¯¯¯É¶»jéU*FËËË#?&''ûúúöéÓ'99™,¹}û6¹­T*ïܹ#“É´Zí¹sçȦŒ"½‘'N˜ŒôäöéÓ§ `ò‚´é/_¾ìààÐÆ!KôÛ&Ï‘ìpZZšá«KG˜'Òãì=BÈâq¹L¡ÓÔ¤²µåu¤>ŸÏ–É”¶¶¼††§^©ß´é‘ˆ»páhót³³0 £m Ñh'NLNN®©©IMM6mØÚÚ¦¥¥edd¸»»1âÂ… T*µ¨¨hÀ€ú6ûõë×ò@~~~äF@@@YYY…TYY©Õj}||Ⱦ¾¾eee¥¥¥ú6'L˜L&3??ܸqƒÞ·oŸÉÖŒ‚å›o¾i²ZII‰X,&Î;vlqq±É "‰\\\rrrŒvÏÉÉvìØáÇ###É9ùææfNwäÈ‘ººº9sæ¼õÖ[uuunnn7nÜÐïuëÖ­–M‘ãTÈÏÏ'£Tk…äììL£ÑŠŠŠÈ÷ïßwsssuuÕ§rÉÉÉÙ¸q#ÙçÉ“'ÇÄÄ\¿~ýÛo¿ýKG1BŽÈÉÿêëë322L^˜6mZ\\œV«Õï+—ËãããÇ×ñs7yŽä6•úœC-Fz„5 3Õv8Ò³d2…Ï0ÒoÜx2$Äíí·CÍÕE36l˜F£‰‹‹›1cYB¡P¢¢¢Ž=*‘HT*ƒÁàr¹³gÏŽ‰‰9~üøãÇSRRV¬XѲ©?ü°°°033óã?ž>}zk…äCFÛP]]ý؃Á˜2eÊ¢E‹Š‹‹óòò>ùä“iӦ͘1cÕªUyyyyyyï¿ÿ~ii)(•J•JÅd2›››×®] R©ôÙ.ÈĉW®\YZZš››;nܸo¾ùÆä€5kÖTUU=:%%¥  àرcááánnn ,hã‚Èd2ÃÙ<Çgëy×ëÚ›!ô\Ì»W,þ¨ºZÚ‘Ê6œxõÕ/-Jüç?Ÿý®]»<<<>øàƒææf“…ÄÓ7ÅÛ¾•ND]]ÝŒ3ìííÅbñâÅ‹››› ŲeË\]]mll¦NZ_ÿä)È/¿üÒÎήW¯^ß~ûíÔ©SœœŒoy«Ûä}z‰D2kÖ,[[[{{ûyóæÉår“„$“É–.]Âårƒƒƒ7lØÐÔÔÔÚQ«Õ‘‘‘|>ßèˆ-ϱVkÌqŸžB˜ú© „e‰=œp¹´ôsÃÄR'F¾þúô¡wó IDATáÙcÆeg?øùçE0~ü‹väÈBó÷ÔØäÉ“àðáÃojÕªU%%%‰‰‰ߥ°°ÐÏÏOŒ>¶QØCtÿ¹wáœƒ²66P(Ô‰ô[&#ïÓË -íîµkÅdÈ·P …¢¼¼|Ïž=|Þ}A/¼O²ä²wÔv¤2ùì½HÄ­¯o"">þÿF õjÏÕ•+WBCCgÏž=räÈδ# çÏŸß‘ÂÂ:ÎÇô!kÀå2)()© vk·²@ÀnnVÙØp›Îž½››ûðĉº¡“æ3bÄò1ò¿JÿÎ7ÉÉÉiûöíFuLöÖqî8¦GY•JK£QKK;4¦XÀbÑ5ÝW_92`ð`3w°GëdÂ7‹È÷"ÃH²ÍÍ*‹QPPÙ‘Ê<™¢ž™™Åï½÷Šy;‡Ðs…‘!d ”J ‡Ã(,ìP¤'oêÓéðósŽŒô7oçz®0Ò#„¬NG°ÙÌ‚‚ªŽT&gï++¥ðÚk&–ƒEQ]]ÝÔdœ$}||,X@V0™üÍdaÇ‚ZÂH²l6]"i®¬”´[“ÏgÀ¯¿Þ¤PÀßß8Ó9zf™™™3gÎ nlllùíž={RRRNž<™ššº~ýzxÿý÷ËÊÊ®^½ú믿þöÛoñññ­¶tãÆ //¯ØØØââb³ž”ÀH²A°ÙLèÈ­z.—I§SÓÓó9Vc#Ž ;K¡P8p <<|þüùC‡-**‹Å-«}õÕW~~~ááá7nLJJR«Õ‡úú믽½½ûöí—`²ÐäAÇŒ“Íår‡>~üøS§Nét:3Ÿ¨¥ÂH²A0T;;^G"=…Ba2 áâ"4\ú=ƒÔÔT3gÎlݺ5++kÞ¼y|>ßdMÃŒp&“¿µ‘®%WW×uëÖ͘1cýúõ>ìÒ“³éBÖ€ €B¡øø8uð¡<µZèbgÇÇHßIŽŽŽAAA—.]JOOohhh£¦aF8“ÉßÚÈךÊÊÊ[·n••• 4ˆÃátú„¬Fz„õ qÏÍm?uzVV©Z­ñ÷w±µåb¤ï¤þýû§¥¥%''ß»wÏßßîܹYYY&k.]ºTŸnæÌ™&“¿u<#œN§;uêÔ„ † BDzzúÁƒÌy®– #=BÈ04•JÓ·¯Û;åZm;÷kÌàrY\.#}W Ù¾}{AAAppð”)SÈ´FæÌ™3vìØ7ß|süøñK–,€mÛ¶¹ºº†……EEEEEE­\¹²µÂ–Ž;¶víÚèè袢¢O?ý´µ´ñp5\„u`±è*•6$Ľ©IU\\ãëëÔZM…BýóÏÙö‰ÂÉIpÿ~uwöÓº‰D¢Å‹øá‡FÇé×Ü2eŠa¹­­í÷ßoÔHËB£%{IãÇŸ4iR—uݪá˜!d Øl†R©îÓÇ…Á ååµ5ÿë¯7•JMŸ>ÎRi³HÄÅgﻕJ¥ÓÍ>Œd0æ>„ÕÀH²,C¡Ð04—¼¼GmÔ‚ÆF…HÄ«¯ÇH¬Fz„5`±èJ¥BBÜnÞluL_S#;{öîĉƒml8Ri³­-·±±©åÌ0BÖ#=BȰX •J}ûº·1¦?yò›ÍxõÕ€ÓØØ,q5TªìÆž"ÔÝ0Ò#„¬ŸÏjnVk4º·úzyy¹é»ù%g̘`‡)²¥R…HÄ€†y÷vö)8¡€Ì #=BÈ…‚ ¤Òæ  7*•bò¡¼º:yFFÑoô#ë75©ÈðŸ×‹vJ¥æ‹/R®]sÑh0ù:2#Œô!k`cÃ€ÆÆf>ŸÕ»·ýÍ›&&ðÏœ¹M§SGŽ ¡M“Iƒçé/^,7î‹-[R›)è‘9a¤GY2å¼DÒ OnÕ›ÓŸ:u+2ÒÇc€PÈ­VG§S»9Òçç?ž2å»É“¿íÛ×=#ãOÏF gð‘áÊ9!k@Žé%„„¸}ÿý%£ J¥æìÙ»kÖŒ'?’‘^&S …œn{ÑN§#¾ûî÷/¿<åì,Ü¿îØ±Á@£Ñ:DÁq=úÃÿûÿ¯kÄH²‡B¡cú÷Gêëêävv<}…+Wî75©F"?’‘ž|ü¾{Æôeeõ‹%fe•,Yòꂯ0™OþünܸqâĉÝÐd)ܵ b¤GY:*°êëåä ·o?ŠŒô×W8{ön@€‹««ˆüHÎöë_©7w÷ví:ÿïŸôõuJMñós6üÊÛÛÛÛÛÛÜ@=Fz„•prVVJÀÙYØ«—Ýիņ‘þÂ…à Ãa’cz³ÎÞWUI/þáüùü>»hÑXƒf¾c!dFz„•ptÔÔHÉíÐPϬ¬ýWµµ²Û·Ëcc_3¬ÿÇ+õ<óÍÞgg?˜7oŸZ­Ù¿î¨Qf: BmÃgïBVÂÑQXU¥ô^YY¥:Ý“gÚÓÓ i4Jx¸a}¡#‘˜ñ>}RÒÕ‰·úù9Ÿ9‹a=GéBVÂÑQP]ý$Ò‡…yI$ÍùùÉ—/†„¸ …lÃúŒé»þÙ{­V·zõ±%KÍŸ?òÀwìíù]Û>B ÎÞ#„¬„a¤ óù¬k×JÄpõjñˆþFõ…BNcc³»»m×®†«P¨.Ÿ¥ôjµV*U(êÛ·Ë[VæóY4U"Qü¥ûô*•föìÝNN‚­[§Q©&n ô¢ÁH²*½zÙ×ÛÕkµ:‘ˆ›ž^ز&9·/‘4‹D¼Ž¿O¿fͱª;þÅf3º¬Ó™Fz„UéÓÇåîÝ r»´´† ñ¾|ÙD¤ƒWê;8¦?x0#!áòÖ­Óp½[dA0Ò#„¬J` øÎ'‘þáÃ:5bDÀ•+÷MÞª×/“בH_XXµzõ±yóFŒÜÅFÈœ0Ò#„¬J@€¸¼¼A"i€ÊÊFWWÑС¾‰âæÍ²–•É1½­-·¹Y¥TjÚhV¡PÏ»wàÀÞŸ|2Þ\]GÈ<0Ò#„¬J` +A÷î=€ª*©““À××ÉÉIpé’‰ |€#‘l¾ö‘™}:ŸÏ7Ü«#g'—Ëcbbú÷ï/ÂÂÂþýïk4m­¤d²o/,Œô!+àZXø Ÿ¤>Üÿܹ§"½PȆ?RÔ&¹ùî»ß«ª$f}Þ™CyyybbâíÛ·@$-_¾¼#{I¥ÒÐÐÐÌÌÌøøø¬¬¬•+W&&&Ž;V«Õš¬_TTäàð$ñAÇòa¤GY¡AƒpàètºmÛ¶ ‚ˆˆˆ´´4ÃÉgr.úøñã}úôqrrZ´h‘R©4YOO\·;‰ÝÐÐ0sæLww÷eË–) F³víÚÞ½{;::þóŸÿlhh kžBY£  Åâd2…aáoüwÙ²$Ã’Þ½—;–•˜xÙÏo9A×®•¸º.þõ×Ünëgtttttt»Õ`êÔ©‰d×®]0yòd‰DB.£[SSsîÜ9{{{µZMDBBBpp°N§“Éd,kûöí»wï¦Óé2™lÇŽNNNÉÉÉååå¿üò‹»»;á€ÜˆŠŠÊÏÏÏÈÈðõõ]·nÉB‚ vîÜIvÏp›lШÿÓ¦M=zôýû÷sssCBBÖ­[÷ÙgŸçææÞ¼y3<<|Ù²eAH$&“9{öì²²²„„¨ªªÒwϨqxûí·ëëëwîÜ µµµ†5NŠ,ŒŸ4iÒƒrss ´bÅŠúúz¨®®6êpzzº³³sÄè(&ÏÑd'»ä÷á/ÁH²No¾ù_±ø#•JcXÿaaŸ–­Ú¿?ý—_n¸º.V©4'nýÛß¶tg?;é¯_¿N„J¥2Ú.((Ðh4...gΜ!âõ×_ß´iAuuu ãóÏ?¯¯¯×étR©T«ÕïÛ·Oßìþýû[FúÜÜ'ÿè$%%ùúúš,l»«F‘^¥RÑh´¼¼<òcrr²¯¯oŸ>}’““É’Û·o“ÛJ¥òÎ;2™L«Õž;wŽlªHŸ––fxÚôäöéÓ§ ÐZ¤¿|ù²ƒƒCÄè(&ÏÑd'Û¸t„y"=ÎÞ#„¬“‡‡=ÐéOý•>Ü¿¬¬¾¸¸Z_"²¥Òf.A'OÞÈÈ(Z»öoÝÝ׎À`0Œ¶€F£Mœ8199¹¦¦&55uÚ´i`kk›–––‘‘áîî>bĈ .P©Ô¢¢¢èÛìׯ_Ëùùù‘eeemvPee¥V«õñy²‘¯¯oYYYii©¾ÍÀÀÀ &“ÉÌÏÏ7nÜàÁƒ÷íÛ×nË®®®†×¡]%%%b±˜B¡P(”±cÇ‹D"—œœ£š999ƒ&·;rî&ÏñÙ:Ùå0Ò#„¬“§§TT4ìÉã±Îžýó |€-‘(ll8°eKjTTðÀ½»¹«]"::úرc‡ŽŒŒ$çä›››u:Ý‘#GêêêæÌ™óÖ[oÕÕÕ¹¹¹Ý¸qC¿×­[·Z6EŽS ??ŸŒR­v³³3F+**"?Þ¿ßÍÍÍÕÕµ¤¤„,ÉÉÉÙ¸q#ÙçÉ“'ÇÄÄ\¿~ýÛo¿m·e*õ¯E1r˜NŽtëëë322`Ú´iqqq†OÚËåòøøøqãÆ‘;rî&ÏñÙ:Ùå0Ò#„¬“#\¿þÀ°Á EDø¾U/r¤ÒfòѼ‚‚Ç+W¾ÑÍýì*Æ Óh4qqq3fÌ K(JTTÔÑ£G%‰J¥b0\.wöìÙ111ÇüøqJJÊŠ+Z6õá‡fff~üñÇÓ§Oo­°±±‘|hÀhª««`0S¦LY´hQqqq^^Þ'Ÿ|2mÚ´3f¬Zµ*/////ïý÷ß/--¥R©R©˜LfssóÚµk@*•váUš8qâÊ•+KKKsssÇ÷Í7ßÀš5kªªªF’’RPPpìØ±ððp77· ´qAd2™aË&ϱ {Þ)]{3!„^))7ÅâÖ¯ÿÙ¨|çÎs~~Ëõ÷ïgÍÚ½páúz™XüÑ„ Ýz‡žÔñûô†÷§Mn¿ûî»G"‘è÷JJJòñña2™Ç'B¥RÅÅÅyyyñùüˆˆˆ~øZܧߵk—‡‡‡ƒƒÃ|ÐÜÜl²xúþ·Ñ­ô–¦®®nÆŒöööb±xñâÅÍÍÍ …bÙ²e®®®666S§N­¯¯'wÿòË/íììzõêõí·ßN:ÕÉÉ©ûôFÛíÞ§—H$³fͲµµµ··Ÿ7ož\.'Ëe2ÙÒ¥KCBB¸\nppð† šššZ» jµ:22’Ïç5ÞòÛèpkÌqŸžB˜ú© „¥;}úÖ¿þµkèPß\hXžŸÿxäÈøãÇ……yÀGýPW'Ÿ>=bæÌÝk×þmþü‘ÝÜO2Ki—d­]µjUIIIbbbÇw),,ôóóÓ£möÝî]øû ‡³÷!ëD¥RàÆ:ÝS¦ýý]\]Eú |€#‘(¾ý6Á ñù–ššV¡PíÙ³çwÞyÞ}A/Œô!ëÄá0@.WV}5t¨ï… Ož± ÙUU’«W‹lmM¤³³W®\ ={öÈ‘#;ÓŽP(œ?~G {ë8wzûUBÈ‘YìX,zNÎCïF üàƒÄ††&‘ˆ+p*+%öV*5R©â9u¶³FŒQWW÷ ;êßù&999m߾ݨŽÉÂÂ:ÎÇô!ëDFú€ñ•+EF_ч ˆ‹ @§Ó)ªY³†ÙØp$Kôµ#=BÈ:‘ùjýüœ32î}ekËëß¿×Ù³w ;ûAÀoô 9‰¥ÎÞ["3å{µˆ4²Ý #=BÈ:‘×y{;WWV6};rd@ZÚ]FwéR!h4ZŒôÝÊ"ò½ZŒô!ëÄf3 š³³Á ]½ZlôíÈ‘ ¤766€DÒ,r,÷‰ûÌßß_ ¼üòËW®\i·ç= Fz„ÕâóYr¹2<Ü»å­zꕟÿxâÄPJ›Ó›–™™9sæÌàààÆFã› ­ùé§Ÿ._¾¼yóæåË—×ÕÕÉåòèèè… –””|òÉ'³gÏ–ËåúÊ»wïÞ°aÃÿûߢ¢¢?þxñâÅ­µÿýï‹‹‹¯]»væÌ™ßÿ}Íš5[¶lùüóÏãããóóóW­ZkÔ™7nxyyÅÆÆOíôéBV‹ÏgËdÊðpï»w+ŒGu<^{­/à˜Þ…BqàÀðððùóç:´¨¨H,wpß… ŠD¢ýë_PWW§R©t:L&c³Ù³fͪ¯¯çp8úÊ_ýõæÍ›_}õU‡1cÆÄÅŵÖìÝ»wÛ¶m½zõêÛ·o|||JJÊöíÛ7oÞ¿úFëÅåi5™?W_ùþýû!!!úAAA­µ¦ÒÎ>|ø°Ý<¼®®®ëÖ­+**š1cÆúõë>|ر+a 0Ò#„¬– §±±ÉÎŽçççlt«¾¤¤æÖ­Gîî¶gÏÞØäy`¹‹çt-GGÇ   K—.¥§§744´QS£ÑÀ£G ò´šÌŸ«ÿÖÃÃÃ0yî;wZkL¥õôôl7/©²²òÖ­[eeeƒ 2œT°zéBVËÙYXQÑááÞW®IQø¤þýû§¥¥%''ß»wÏßßîܹYYYFuD"|ÿý÷‰dË–-m´f2®þÛ… ÆÆÆž:uª¶¶ö÷ß_·n]/Ä·L;ûî»ïæá]³fÑ.:îÔ©S&L2dAééétppøËÅba¤GY-›Ç%î›[ÖÔ¤Ò•’rsìØQ£ïÞ­`³É“õøPž¡íÛ·O™2…L!¯çàà°aÆ¥K—4hæÌ™m´Ãf³÷ïß¿|ùr77·/¿ü2))‰Ífë¿}ï½÷–.]úÞ{ïùøø|öÙg›7on# oذA  8pÔ¨Qýû÷_¸paLL̲eË|}}ãââÈ<¼†Ž;¶víÚèè袢¢O?ý”¼#У`ÖZ„Õ:x0cÍšŸ 6UT4 üéáÃïEFú@U•tàÀµûöÍ>¼OPЪ^½l#"|W¬x=0pURÒ‚aÃü»³“æÈRj:N§ÓÑé]Ÿ-åäÉ“½zõêß¿?ùñèÑ£6lÈÎÎîªöÕjµáþf­E¡¿ÀÅE$—+¥R…X,rs³ÕOà§¥Ýa³Æù³Xô—^ò’J•͇J¥à˜¾5T*Õarss§OŸ~ýúõ¦¦¦ŒŒŒÕ«WÏ;· Û· 0o&éBVËÅÅ?n€áÃûœ;—O–§¦ÞŽˆða³0jT`ML"i¢R)<K*ÅHßÝbccÿö·¿ýýï···Ÿ3gÎìÙ³­ Qì #=BÈj‰ÅFúaÃürrJ¥R…F£»p!ÿ•WÈ:#G¨ÕšŠ lLg×ýètú† 2Ò_«%®\)²³ãI$Í#F<‰ô~~ΧºZ¬´ó<{Œ`¤GY32Ò;8ðûôq¹x1ßÉIèìlãë뤯ãëëtëÖ#Xrywé 0É*2+œ½GY3}¤€ÈH¿  ._.2ÄÛ°NHˆ›J¥ihhâñØRi÷ékke±±‡³³C=2#Œô!kæì,ÔGúaÃüïÞ­¸zµ8<ÜǰÎàÁpñb¾@À–ɺcL¯Ó?ü1jÔæ””›nn2|Û™ÎÞ#„¬™——ão¿Ý$·#"|i4ŠTª ó4¬ãìl§OßáóY55Rsw)5õö§Ÿ/+«{ÿýÑï½7ê_ÿš~þüù±cÇšû¸È"ܼysøðá]Û&Fz„5óòr(.®Ñé*•Âç³ÜÝíÊÊêžÊÉÆç³àܹ»o½5 ¤¤Æ|illZµ*999ë•Wöí›ãããÑÑÑæ;"²8ǃÕR³ IDAT'ÏéBéBÖÌÛÛI¡P——7¸»Û€PȡѨ4ÚS7.ù|TUI4­ù2Üœ={wÉ’CAìÛ7'*êÏÔmÑÑÑì‘Yá}z„5óñq€¢¢*òcS“J©Ôâââš®½ÿßÿÎMú¿¿KJÊb óèyÁ1=BÈÊùø<‰ô÷î=¦R)cÆïÝ{ }t:ÊbÑ}|œT* ¨T&³³•JMlìáä䬕+ßX°à•6®#dn8¦GY9//Çû÷ÉH_Ñ«—™ÒæÞ½Ç†uø|6“I'3âtþVýƒµ¯¿þß³gïþøãÂ÷Þ…a=_éBVÎÛÛñáÃ:µZ[TTíããâ&q/^|jŸÏgÉåOÞ³ïäþÅ‹ù¯½ö_&“–’²$<Ü»ý23Œô!+çãã¤ÕêJKkKJj=<h4jD„Ï… ù†uÈÜ6~ðèQý3ëøñìéÓw††z>üžX,êl×ê éBVÎÓÓJ¥V>|XÛ«—DFú_¾\¨Vkõuø|–L¦6Ì22î?ÛöíK_¸ðÀ¬Y‘{÷ÎØ]Òy„:#=BÈÊq¹L//Ç7VUI{÷¶€aÃüe2enn™¾ŸÏ’É®®6píZÉ3eëÖÔU«Ž®\ùÆÚµ£RñÆþÿ6oŽ^¸ptWö¡®€‘!dýÅäÃöd2xùe_ÃHOŽé€ÃaÕÕÉÿÒê÷»v߸ñä¦MÑÓ¦Eti¯êéBÖ/(ȵ²RB¥RødId¤ff‰B¡&?’÷é@$â0™ôóçó[mëiIIW×®ýiƉӧc˜G/(Œô!ëä@…l}n›áÃýU*Mff1ù‘ÏgËåJØnnOMì·áçŸs–.=´bÅë³fEš©çuFz„õss±X 6›©/qq±ñövÔ¿kÇã=™½çñX..6/ètDÛmž={÷ƒfÏöÁcÌ×s„:#=BÈúQ(‘ˆc¼‡ óׯŸ£Ÿ½çñXü††¦›7ËL4ô‡û÷«,80rdÀš53_·êéB=‚@ÀQ*Õ†%C‡úæå•‘+âégï9‹Ewv-­c¨¦FöìðõuüßÿfÒéøW½èðw!Ô#ðxL¹\i8¬6Ì_§#.]*>Ÿ¥VkU* ‡ÃljR¿ü²_k‘^¥ÒÌ™³G§#vïžÃba’0d0Ò#„z&“®Ñè>¬Ó—ˆDÜà`72¢s8LË•³¹Y5l˜ÿÕ«Eú'ó }úéÏ7o–íÜ9ÓÉIÐmG¨30Ò#„zJ¥RrrFFú¥§—Ë€æf5‡ÃhnV¿ü²ŸR©ÉÊ*5j䨱ë{÷^øüó)ôî¶ž#ÔIéB=Bs³ÊÞžß"ÒûççWVVJÈHßÔ¤"Çôîî¶žžä?z7o–-YrðÝwGNœ8¸[»ŽPç`¤GõMM*±Xdé‡ ñ¦Ó©—.’³÷MMJ6›Ñܬ€¡C}/_.4Ü}áÂ}ûöZ¹òÍnî9B„‘!Ô#45©z÷¶ËÍ-ÓhtúB‡9p Ç… ùOÏÞ« "Â';ûþVýÚµ?ÕÔÈvìø'ƒA{.ýGè™áƒ£¡A¥Òxz:47« +ÄúòaÃüº7 fï`èP_•J“•Uúò˾?ýt=1ñòÞ½s:™rþ÷ß/,,l¿B-øùù½òÊ+϶/Fz„P@¥Rííù\.󯇆‘þå—ý¾øâ·ª* 45)¹\&9{/‹<<ì32 }}V­JŽŽ{õÕNöáÕW_Õh4lõLt:]­6ñ2H‡öíÚ® „Ћ‰N§êtDP[N΃)S^Ò—ìÉå2/_.d±è†³÷á{éRáÍ›¸\æ† ;ßF“””4yòäÎ7…z”ÇO™2å™wÇHêètªV«0 —>« ‰Á ½ô’÷… \.«©Iecc£ÓJ¥†Å¢GDø9rM§Ó9òž@À~^=G¨“ð‰<„P@£Q5퀽oß.W©žšBŒô»t©€Ã¡75©845) (ÈU«ÕŽ8t¨ïóé4B]#=B¨G ÓiZ­®_¿^jµöΠï"#ýjjd4­¹YE¾nGު߳ç"F t}>=F¨‹`¤Gõ4U«%¼½ml¸×¯—~â.q5ùì=47«®\):tèÊ!ÞÙÙ%&DÈR`¤Gõt:U£ÑR©”°0Ï+WžºUO¥R""| µ~ö^.W­YslÔ¨€èè—²²Jfû-Waa!…BéªÖ(ŠŸŸA<• øµ×^£P(­½Lh²†…çå—_ÎÉÉé’ÞþÕs—Ëå111ýû÷aaaÿþ÷¿;øÞD×^ä.‘!Ô#‘ö¼v­ØèÛÈH©´™Ìp§Oߺ{·bõêñäÙÙL´ˆJJJnܸ¡ÿX__þüùŽìXTTäàà@n‹D¢å˗뿺téREEEEEEnn®ŸŸß”)SŒþ™è$ÃC·F*•†††fffÆÇÇgee­\¹211qìØ±Z­¶Ý6NçE€‘!Ô#ðxl©T aa^åå åå †ßFFúi4ºòòFrL¿gÏ…3†úû»ôêeçînk¸,.24f̘#GŽè?þüóÏ#FŒèÈŽ:®¶¶–ÜvppØ´i“þ+GGG??¿Í›7çççWWWwaŸ Ýš¸¸8GGÇ3gÎŒ7ÎßßâĉW¯^-))Ù»wo»m΋#=B¨G‰8I3 Ø›Á ½kçççÌá0?®'Çô …zñâ(ò«ðpŸ«Wç̇B¡ìÙ³'00ÐÑÑqÓ¦Mðòò²±±Y½z5,Z´hΜ9dM™LÆår³³³àĉýúõc³ÙÞÞÞN·mÛ¶ÀÀ@@‘––f8¥LÎ0?~¼OŸ>NNN‹-R*•& áééh£©éèèèÇëÇÜ?þøãÛo¿Ý²fË í!C†€‹‹‹Éoõ “É´±±!?ªÕꘘggg''§˜˜r%™–çÞñC›ÜÖ¬YC£ý¹ò1Ç‹‰‰IHH0y•Z;†††™3g:88¸»»/[¶L¡P?âÄÄÄÀÀ@;;»Í›7›<ñ.F „P°lYÒäÉß’ÛãÆ}ñÉ'ÉF^~yc`àJ©T!4kÖn}ùþýéþþ+´Z]çûIIIíÖ™:uªD"ÙµkLž¹•ŸŸŸ‘‘áëë»nÝ:“…A444ìܹ“ìžá6ܽ{×ÅÅ%;;›üŠËåÖÔÔÒK8“FÛ““#•J¥Ré£GÞ{ï½Y³fé/N||ü¤I“}³û÷ïoésssÉo“’’|}}M¶ÝÕ‚‚‚… ®\¹’ ˆ„„„±cÇêËŸ9Òâóù·oßÖ1  ¢âÉâôéÓ 0yî?´ÉÝ[‹ô—/_vpphãÒQ¥RÑh´¼¼<²<99™¼ž––føcmã"ëÒ™H³÷¡ÁÆæÉì=„…yÞºõH.WVðñq"bçÎsl6Ó°< @Ìã±²²Jº­« †Ñ6Ðh´‰'&''×ÔÔ¤¦¦N›6 lmmÓÒÒ222ÜÝÝGŒqáÂ*•ZTT4`À}›ýúõky ???r#  ¬¬¬Â6DGG9r„ é{#Ä_y¤NùärùüùógÏž­ÿª¤¤D,“Oæ;¶¸¸Øä¹wüÐ&w‰D...-ŸùÏÉÉëÖ­–M‘£OÈÏÏ'cOk…mˆŒŒ”J¥/^<}úôßÿþw£oÉ7Ó=zô—Ï€ËåΜ9óÖ­[úhM©Éÿêëë322Lž{ÇÝÚîÓ¦M‹‹‹3|Ò^.—ÇÇÇ7ŽüØ‘«äììL£ÑŠŠŠÈ÷ïßwss#·þ17Œô¡ÁƆ#•*t:\]E®®"£wí !ñX,†ZýÔËTƒy¼8‘~ذa&..nÆŒd …B‰ŠŠ:zô¨D"Q©T ƒËåΞ=;&&æøñã?NIIY±bE˦>üðÃÂÂÂÌÌÌ?þxúôé­666’ m“h4Ú¤I“æÏŸÿÒK/999éËE"|ÿý÷‰dË–-&ÏE&“µ}²B¡P*•ê«Mœ8qåÊ•¥¥¥¹¹¹ãÆûæ›oLž{ÇmrwX³fMUUÕèÑ£SRR Ž;îææ¶`Á‚6.Ñé0Œ)S¦,Z´¨¸¸8//ï“O>!ç`žƒgž÷G! ’–vG,þ¨±±™ü8þþéÓwVˆ=,äæ¶dèÐ_~ù›áW))7ÝÜë÷}fбûôúakkÛï¾û.‡Ã‘H$ú½’’’|||˜Lf@@ÀñãÇ ‚P©Tqqq^^^|>?""â‡~€÷éwíÚåáááààðÁ477›,$Ú¼§NvéìÙ³ðÍ7ß•oذA$ùøø?~ž¾G®V«###ù|~km’´Z­P(,..&?J$’Y³fÙÚÚÚÛÛÏ›7O.—›<÷ŽºµÝ ‚ÉdK—. ár¹ÁÁÁ6lhjjjíÒµv:uuu3f̰··‹Å‹/&¯gk?Ö6tò>=…èÒ BèÅtãÆÃ×^ûòÒ¥Užž°k×ùÏ?O¹}{#•ú䅨ѣ7çç?ÖéÀÍMóš~ßšY¿~«zwøð>é…Bé’¬µ«V­*))ILLìø.………†ëÙ}l£y.W‰ÌZûÌÅÙ{„Pàê*ý‚9aa^Isaa%ù±¨¨úîÝÇg¥RcxŸø½{Ûge=ÿ |…BQTT´gÏžwÞyçy÷Y Œô¡ÁÞžÏ`Ð?n$?»ñx¬k×Jȉ‰—:áÓÔ¤R«W84È#;ûùGú+W®„††Îž={äÈ‘iG(Ο?¿#…Ȉ%^%Œô¡J¥8; +*žŒéétjÿþ½È•òT*ÍáÙ#Fô!bð`Ϧ&eS“Úh÷Aƒ<²²JŸûÌöˆ#êêê6nÜøWwÔ¿ÉMrrrÚ¾}»Q“…Ȉ%^%Œô¡žB,UT4ê?††z’cú3gî466ýû÷&xü¸ÁhßAƒ<êëåÅÅ5ÝØ_„ºFz„PO!Ûègï 4Ô«¨¨º¶VöóÏÙC‡ú98@$âr8LÃH}ûº³Xôî\?Çšt2‘ë ˜Ö²`¤Gõb±H?{aaž \¾|?5õöë¯÷c±è RilmyUU£} ZHˆû‹p«¡¿ #=B¨§pq±1¬ÛØp}|œ~úéºB¡~íµ¾Læ“Hïèȯ«“-žö6ZV!‹€‘!ÔSˆÅ655RF§/ õºzµ84ÔÓÑQ@Žé•J““@«Õݼi¼˜yHˆû;冻#“ª««›ššZ–'&&úøø8::.X°€¬`2©«ÉÂŽµ„‘!ÔSôîm¯Ñè>¬Õ—ôïß«¶Vúê«! ÓÛÙñ˜LÚ•+EF»¹*•šââêîì³eÉÌÌœ9sfpppc£ñƒ°gÏž”””“'O¦¦¦®_¿Þÿý²²²«W¯þú믿ýö[|||k…-ݸqÃËË+66¶¸¸Ød¤‡‘!ÔSx{;€áóó • ÀËËô÷é ºPÈiéýý ÚíÛåÝØeË P(8>þü¡C‡‰Åâ–Õ¾úê+??¿ððð7&%%©ÕêC‡}ýõ×ÞÞÞ}ûö‹‹KHH0Yhò cÆŒÉÎÎær¹Ã‡?~ü©S§t:œn1 #=B¨§ 9¶¶¼’’?#}ii-•J}ð þÓ+•ƒÎã±23‹Þžg2é>>N餦¦zxxœ9sfëÖ­YYYóæÍãóù&kfz­¨¨0™ÔµL¯-¹ºº®[·®¨¨hÆŒëׯ |ø¤0#=B¨ñòr0ŒôE..BòÝ9ýì=ƒAårõõò‚‚J£ÝÅ·o?KV+æèètéÒ¥ôôô†ãu fzõðð0™ÔµL¯­©¬¬¼uëVYYÙ Aƒ8N§OÈ a¤Gõ žž¥¥OîÓ+ꜜzëçÎÞÓht.—©_+W/(ÈõöíŠníñ ¯ÿþiiiÉÉÉ÷îÝó÷÷Ÿ;wnVV–ÉšK—.Õgz9s¦É¤®ÏôªÓéN:5a„!C†‘žž~ðàAsž«¥ÂHêA¼¼ôÔ]¿^ªRi^½_yyCyyƒA£P( …†É¤iµÚ{·LiäVQÑPW'ïöŽ¿èBBB¶oß^PP1gœuܸq¦å|>ûöíf•4/4›´Ÿ2jÔ¨1cÆ´[è]ôé6ÄÇÇU«ÕSó礧DFús8¬à`ñÿÕÓu:=‹E×é aaÝrrªT*éánnN÷Ö-”ׯ`<õn$“É|ÚMté6Äß_„¢–¥ÏÎ.íÛ× !á{ùrBˆF£ ˜N§ëõ†¾}½-ΟìÃïÁ³2=À†ðù"ïÎÊêj…Tª #„ÂÃ}²³ËÔj-N3îÝvöðpvssºzµØ¬†=ÄéÁ³2=À¶¹çæVݹSêÞÝ!Ô¿¿NgÈÊ*¥Ó ÓÌaaÝ®]3Ïô!!·oWÀœ¸à™`[‚‚ÜsrªîÜ©tu庺rB^^®nnŽ…t:Í`¸?ò+,Ì«yŸ>4T¢Õêóó«;4hždz€m tËÉ©¼s§’êÐSÂÃ}._.¤Ñîß½GõíëUR"­©Q˜N§ÓrrÌ'Õ Ó‚L°-AAîr¹:;»,(ÈÍXîsùrN˜fú°0oÈÌ| [Ïf3<=ùwïBŸ<3à}z€m¡ºò511ý…ýûûÔÖ*=<œIÓþ×rt´óõ^»VjZƒŸŸð±W´;yò$5e¬^ âñ*¶¦¥iÛ2=À¶¸¸8ܺ:•DÂ7öéÓÅbètƒd0èÆò¾}½®^5ŸîÍÏOdÖÑo£nݺýúë¯4ÇÑñyCX[›Œù„0XäååõØÇÂÝ{€ÍéÖÍcìîîd,a±½zI´Z=I>z{÷îvíšùòh~~‚ÇëÓ%%žíéñã  @ÛXœ`¸ ÓlÕ›7Íô¡þý}›šôfÓ¸öêå)•ª**X¢ÍÏO$•ªêë©Ñ¬¬’‘#WÍŸ¿÷µ×úýóÏ‚·ÞŠ¢Ñàî=èé6ÇÕÕ ‹‹ƒiax¸V«W«õŒ“¬‡„xa6UŽŸŸ!”ŸßÖn½NgX±âÏW_]Åb1Ž»téh''N;œm™`sììX#ãòµ”ˆŒqE…Ì´ÐÑÑN,vºs§Ò´ÐÃÙɤ?pxK®]+‰Ž^¹yó?kׯîß?£GXr t4Èô›ƒ1&tãF™i¡››‹E/+«7Û98X|ûökÒÓé4‰„_\,m½ƒ\·îÔÿ»ÚÉÉþÏ?gÖ.Áð¨`ì=Àæ(öeÿýo_Ór‡]UÕ`¶sp°øï¿ï˜zzòKK[ËôUU S§n¿q£ìë¯GO˜EðHX ôé6G¥Ò89qÌúô!.×®ªJnVؽ»{nn•ÙD÷ ¿¤¤ÅLŸ‘QôŸÿ¬ª®–80sâÄæuA¦ØœÆF@Àm¾$ÇnjÒ54¨M ƒƒÅ¾°°Ö´ÐÓÓÅb¦Ç¯]{òõ×W÷ïï{üx<•dz€ÍQ©4îîNUUr³9íy<;‚@åå<ª r§Óifê==ùee2Œxù^§3Ìšµ31ñÿ>ýô•ŸŽup`?½S í ÓlŽJ¥¥^©7ëÖ³X GG{³á÷l6ÃÛÛ•ZåÖÈÓÓE£Ñ×Ô(% EÓ„ ¿=š½sçÔéÓ‡Á{Ðy@¦Ø•JãââàîîÔüQ½«+׬Oî ¿7{ÑÎ !dœQ§´Töê«« jš5xpÐS €Ç™`s´Z½34ÔÃ,Ó ¤@À+/¯7›Ž>$ÄüE;77'„Puµ!”]6rä*‹qèЬ€ÑÓ€G™`£BC%7nØZV&KNžâææ™< Ól‡ÃjlÔ „BC=Š&ã öI£Ñèt‹E7›*ÇÇGPUÕðå—þù'wóæI ßÑÑÞl†|:'Èô›Ãá°µ¡‚ Œ7ð©çôžÇ³¿uë>}·n.$‰7nüû›oÆ„‡û „œœ8:Áô%=:'Èô›Ãá°©LÏå²½¼\Œ™ž{¯ÕêœìMß¾Ci4z„ÐË/÷~ë­(ªÄÉÉ!$—C·tvé6ÇÞž¥Vß]ߣ‡‡iŸžN't:ƒ‹‹Ã;•ÆùsÔjm\\ F6¬‡±*Ó××C¦dz€Í1>§G晞$B£Ñ»¸pÕjmqqUþå—ª«åžžüÊÊû‹ß@Ÿ<+ Ólg'—7QÛ=zHŠ‹ëT* BÈ`ÀÔÝ{‘ˆG£Ôª6^ݾýüŠc½½]M—¹sp°C)•š'Ç××—€ ‚ðóó{òŸ(3Œv¯:9>Ÿ#•ª¨í1IâÛ·+ÂÃ}HòÞszv·n.·nU ðÅûÇŽøÏúœ8qÓ4ÓSSã™.{óØ gÏž=pàÀ'¯ <Ó.\¸ðÃ?´{µé6‡Ïw¨¯¿÷*¼··+gwãFyx¸Á@Òé„V«g2éAAîyyU i4Ú×_A¹»;ee•+a0h ­ùlzl^¨ý IDAT'***&&¦]ªÏ.ãÔí 2=Àæðù Ô;uAtï.¦Þ©#IL4­ÖÀf3|}§Nݺ{·æçŸßærÙ!€[W÷ÀÄyl6““@gÏé6ÇÅ…C’Ø8˜.4ÔƒZ¨^¯7°Xt­VÏd2<=] j‡ 5*ŒÚM(äÕÕ©L´e³ír÷€§ 2=Àæðù!™Ìø¨Þãöír’ÄjµÎÎŽ©ÕêY,F~~µÁ@Ιó’ñ(WWžÁ@BЧÏÈô›ãìÌAå…†z(•š‚‚Î`oÏÒjõÌDaŸSUÕ@}äpX^^®7o–!„ìí™jµþï¿s¦LêáÁ/,¬3åädO„éÝ{ŒQ;&È®¤°°ðÚµkÆ2™ìï¿ÿnËùùù€Úvvvž7oµ=cÆŒ+W®ìÛ·¯¸¸xÓ¦Mˆ7Ûÿ¡>mÙÖ#L°EnnŽÆ>=B($DLÍ“Ã`Ðu:=“Iÿý!ÞÞ®Ôšô:æàÀR(`R¼‡{ñÅ÷ìÙcüxðàÁ¡C‡¶å@’$ëêîýïJ $&&RÛ¿ÿþû²eËúõë' ‡ ²zõꃚíÿÐ Ÿ¶Žlë‘@¦Ø"77§3½G^^5BˆZùæÕW{óxv¾¾Ó»÷!ÏÞ8¹BcÜa]z‚ 6oÞ" ûí7___''§E‹!„fΜ9yòdjO¥RÉáp®^½Šúã?z÷îmggççç÷Ûo¿!„H’üé§ŸBBBx<ÞÀOŸ>mz[‚ºa~àÀîÝ»‹D¢™3gj4‹…èÁ»ëf·ßcbbvïÞm¼¿wïÞ7Þx£ùžÍoÚGEE!„ÜÝÝ;êèè¸nÝ:c2dHQQ‘Ùþ¡C‡õíÛ—ÃáˆÅbê f;ètºøøx777‘H¯Óézm[9*999$$ÄÅÅåÛo¿mÞVó‹o5lϬY;Þzk½ñãW$’9bñ¬E‹RÅâYÿ}c¼nÝ©~ý–˜õ ‰+VüiüøÜsKøá蓃JIIyè>ãÇ—Ëå7nD;V.—ÿòË/¡ÚÚÚ3gθººêt:ŒqRRRhh(I’J¥’Íf¯_¿¾¢¢bÓ¦M C©TþòË/"‘(55µ¼¼üðáÞžž¡ÜÜ\*PÇÏÉÉIKK X²d‰ÅBŒq}}ý† ¨ðL·B·oßvww¿zõ*õ%‡S[[K5dlËØœÅ ³í£GJ$6›½bÅŠÂÂÂæûÈår‹5iÒ¤ÒÒÒ¤¤$„PuuµéãåË—3¦¸¸8++«_¿~óçÏèµmå¨7ÞxC&“mذ!TWWgÚ–Å‹ÿП„”””§‘—!ÓlÑÒ¥¼øâ ãÇ7ÊÄâYbñ¬¾}‹Å³rs«0ƇeJ$³5q·‘#\´(ÕøqР¥«V{ò`Ú˜é¯\¹‚1ÖjµfÛ¹¹¹z½ÞÝÝýäÉ“ãW^y%11c,•J™LæÊ•+e2I’ …Â`0„††nݺÕXí¶mÛšgú¬¬,ê«))) [577÷ã?^°`Æ8)))::ÚXþx™c¬×ëÓÒÒzöìI§Ó“““ÍöÑh4·nÝR*•ƒáÌ™3Í›ÃWTTPÛÇ {èµmå¨Ó§O›îiÚ–Å‹ßú·?µLwï¶ÈÃ_V&3~ô÷Ñh4„0uKŸšÏÝÝ™$quõýyñí « ùæñx!&“i¶¢Óé£GNMM­­­=qâÄ„ B|>ÿôéÓiiižžžC‡={ö,FËÏÏ 3ÖÙ»wïæ RÁÁÁ¥¥¥­¶"&&fÏž=cÓ[÷fpÛ&U©T»víBEFF.Z´(++káÂ…Ÿ~ú©Ùn,+''gĈááá[·nµXUaa¡X,¦Ö’‰ŽŽ.(( Ê[¹¶­åááa¶§‘ŋߖ“} Ól‘Dâ\_ßh\‰ŽÍf¸º: D„„¸#„Ø!‘ˆ‡ª©¹ŸéØÔªw½ÞÀdÒ;4î–ÅÄÄìß¿÷î݃¦îÉ«Õj’$÷ìÙ#•J'Ož¹\®Õj™L&‡Ã™4iR||ü*++92þüæU}òÉ'yyyééé .œ8qbK… Ôƒm³m N3fÌÔ©S  ‰ŒåÎÎΡíÛ·ËåòÕ«W[<¥Riú‘Ëå¾ýöÛãÆ;|øp~~þùóçãââÆo¶¿F£Ñjµ,K­V/^¼!¤P(Ì*=zô‚ ŠŠŠ²²²FŒ±víÚ¶\ÛG:ŠjËâÅoK[OE»?€Î¯¡¡Q,žuêÔ-cÉС‰bñ¬íÛÏÌ3vï>?)é¼ñãœ9»Þ|ógãGÿOwíºøäÁ ¶=§7v+[Úž6mš½½½\.7•’’âïïÏb±‚ƒƒ8€1Öjµ ¾¾¾\.wàÀ;vì@ÍžÓoܸÑÛÛ[ ̘1C­V[,Ä-?S7†ô×_!„Ö®]kVþõ×_;;;ûûû8p=øx^§Ó <˜ËåšÕ©×ë—,YÒ»wo{{{ŸyóæQ1˜î1þþûï]\\ºuë¶nݺñãÇ‹D"³ärù{ï½Ççó]]]§L™¢R©ÚrmÛx”Y[Í/þCÁˆ<hOAAóûí~ïÙós±xÖ† ……}a,|î¹¥ßtý‚{ÆŒù‰Ú&IR"™}àÀÕ'¤-™¾-.\øÖ[o=Ò!fÖÌ>¶Rž†§”éaÕZ€’HøååõÔveeƒTªD•–Ö;9Ý¿Ë*9ÖÖÞNÏdÞ¿{¯ÑèIs8âî}SSSyyùæÍ›wîÜiíX@§Ïé6J"q6¿?qâ&ƒAG••I©õo("ÏtD‹Å0NtOͱÓIžÓ_¼x±ÿþ“&Mzá…ž¤GGÇ©S§¶¥׸@ÀËξ?>œÉ¤ët÷úôjµ!ÔIúôC‡}¼¡ÝÔ›ñÆ"‘hýúõfûX,ÏèÓl”ñ•zÎpölŽXìdgǬ«Sñù÷ûôBá}zŒ±q~VjZ\Ï®c£~êT*U|||Ÿ>}x<^DDÄ7ß|Óü}6‹ÚwA¼öªö)EõlL°Q‰syy=IâÌÌb…¢ÉÙÙÁÁÝÐÐdz÷^(ä™>§'IL£ÝKuuJ„««C‡ýT)Šþýû§§§/_¾<##cÁ‚ÉÉÉÑÑуåÅy[Zzt*p÷`£$¾Ng¨©‘§¥Ýuss"IììÌ))‘šŽÈãóŠ&½žd0hè^¦¿×A’JUt:Ítç. !!A(žÞ½{W"‘PÛf‹¿ …Â=zœ?þܹsõõõ­fÚ®···Å&Zi·%UUU7nÜ(--íׯŸ½½}ë;?» Ól—D¯©Qtï.V*›0Æ:IDc£Î¸‹Å@iµ÷îç«Tj™;„Pqq§§KÇÇüT}ñÅÕÕÕÆ ;räHnnîþýû###%ɇ~Hí`q™;³¥ç˜Læ¸qãfΜYPPýùçŸO˜0Ábs}úô9}útjjê;w‚‚‚ÞÿýŒŒ ‹{Î;רî»ï¾k±‰¶·K’ä±cÇ^ýõ¨¨(Œñ¹sçvîÜi|]°ëL°]ÎJeSP›LÖˆÒé 4­¶ö~Þ¢–Ÿ×ëï=ÄU©´T¦×é UUrjéÛ®ÄÑÑ1##£ÿþñññaaa‹-?~üñãÇÙì{ÿ¿™0a‹/¾øÊ+¯Œ1bÁ‚>>>ƒnþdý§Ÿ~òððˆˆˆ>|øðáÃ,XÐJ£={ö\¿~}nnnhhè¸qãŠŠŠšï3yòäèèèW_}uÔ¨QsæÌi©‰6¶»ÿþÅ‹ÇÄÄäççùå—-Ýœè2à}z€í‰œHûø¨ipšštööÌêêû ÒS™Þاol¼w÷¾²²Á` %’®Ö§G988¬\¹råÊ•¿:yòäÉ“'›–œ={–Ú0X—Ïçoß¾ÝìXÓiwM·)ÎÎγgÏþä“OÌÇ«7nœi¹Å&ššM÷K5jÔ˜1c,ž`—™`»X,:ÆÈÁ-•ªBZ.—]Uu?ÓÁdÒMWµápØ¡ÒRB¨ëõé­ŽF£™=ËŒCmܽØ.’Ä!ŒQ]’Ê÷|>Ç´O¢Óiý^¦LÖHÍ«SZ*e³"¯ãc¶XÑîÙ™`»är5BH©l¢¦Á©©Q¼ªªfn1HêzŒ±Tª¤Þ¡/+“‰ÅÎ6µt ¬h÷ì‚L°]ee2ƒ^QQOeúÚZ…PÈÓhôÔŠ´Œ1NCÉåjÎ@-iSPPëãÓe‡jƒ.2=ÀvÕÔ(XååõuuJWWneeƒXì„R*5Æ}Œë×ÕÕ©B!tçNep°»•¢àÑ@¦Ø.©Tåèh_^^/•ª¸\vc£¶[7d2)Ƙ$ïÍ€K-_ëêê@’87·*0ÐÍŠ‘Ðvé¶K*Uòùõµµ j’oo2éÓ !D-Y[W§"ÂÅ…[Z*U«µAAЧÏÈôÛ%•ª\]ª« !äç'B&™žz`OÍu_U%wr²g2éwîT™<+à}z€í’É{÷î&•ªh4‚ ££½PÈE&wï©ï9B¨¤¤ÎËË!”›[åææÈãÙµK UUr'§!±±sÌf†¶‰N§·{é¶«±Q#p1ÆÖj ‰³“ZíÆ¸ú_¦/.–zy¹ „rs«Úá!}qqݺu§víº$‘ 3æ­^½ºàŒ{àQ¹¹µÿøÈôÛ¥Vë¨5éB*•ÆÃÃ!Äá°ÍúôÔÝû’ésÏ „²³Ë|’v¯^-^µêØÉ“7ýýEkÖLøÏúPÃûxà9=ÀFétÎ Ý[y¶¾^åáÁGq8¬ÆÆ{ïÓ?ا¯óôtilÔÞ¾]Ñ·¯÷ã5ZZ*›>=iäÈU……µ?ü0þäÉOGŽ ƒ4ž*èÓlÕ_çó˜LNTU)ž¾;Bˆ qIj>|>Ÿ#—7Õ×7zy¹\¿^j0}ûz=js «WŸØ´é¬»»ÓO?M5ª/$xÐ1 ÓlÔÿÆÕ3íì,£´TÚ|Ú;©Teoϲ·gåç—!„ºus9}ú¶PÈ£^»o#¥RóãÇ·l9ëàÀþúëÑo¾I½¶@Ç€L°QÆ7èèt‹ÅÐé ÞÞ®!Œ‘q>ûº:%5ýííÛ,ÃÏOôÃÇ¡CüøE‹öWTÔ¿ûîàÙ³‡S äБ Ól”1Óc|o¾[‹}z.BèÎJ??!ƒAËÌ,;v@[ê/+“-Z´ÿÈ‘ëÇ÷ܵkÌ“¬2=ÀF56Rãê™z=i0ŽŽö..!Œ±q‘ºº:%UxçNeP{}}cq±´OŸn­×¬Õê׬9ñÓO'½¼\÷îýxР€§|*´2=ÀFiµz„‹ÅP«µvvL‹}îòòzê‘|NN娱.^̧шððÖÞgd}úéî¼¼ªiÓþ5kV4õ†V™`£ !ÔÐÐH’X£Ñùø¸6ß§¬Léר¨-)‘vïîþ÷ß9½{{:9Y~Ö®Ó~øáØš5'"#ýNœˆ‡%p@'™`£H’DUT4 „´Zµ¶ 2‘‡1.+“I$üÜÜ*’ÄAAîË—ÿ߈½,Ö–]6cFRi©ìûïߌ‰‰è s  àM€"IŒª¨h Ñ½Þ`ìÓ«TMl„P]J£ÑK$ü+WŠíX¹¹UÔ4y¦ ò»ïŽüç??ðxö'NÄCš dz€ú_¦¯wp`“$öñ"„ôzR¥Ò::Ú#„ÊËe!‰ÄùêÕ¢°0¯ î²XŒˆ_ÓJ¤RUlì†ï¿?6iÒó{÷~D½§@§wï6ŠzN_RRÇåÚ)MÁÁî!…B1vr²GÔ24OO—+WŠFêûÏ?¹ýûû˜Ž°»v­äý÷·ètú]»¦=ÿ|µN€ÖAŸ`£0Æ¡ÂÂZ;;A >ß!ÔРFQ™>'§ÒÇG Ri jûöõºp!oà@ãá))—^{mµDÂ?zt.¤yЙA¦Ø(ƒ#„îÞ­Å!tïz¹\¢îÞçæVºefS½ü¢¢º^FaŒÏž½36vО=¹¹9Yíh¸{°QÔØûêj¹HÄà $N£2=Õ§ÏË«ŽŽ½zµØËËõüù<±Ø¹_?o­V?kÖÎC‡2cÞ~{•Ï€6€L°QTŸc\_¯FQâ64¨ ‚àñì ²  Æß_”’rqà@ÿ£G³££{hµ†÷ßß|ñbþ¶müë_ÁV>ÚîÞlI’4ÁdÒ5AÔ ¸r¹ÚÁÅ`ÐîÞ­Öhô>>®—/öì陕U:dHð›oþ|õjqjê Hóà™`£¨±÷®®\„~ï9}M’*ÉÌ,a³ Mz=©VkØIIçïÜ©LNžÚ³§ÄŠað¨ Ól”^OÁãÙq¹v4Ú½?†ee2OO>B(+«¤G´´¼À@·þÉur²»|¹`ÇŽ©]Þ€Î2=ÀF‘$‰1FˆðôäÓé÷3½DBeúÒÞ½»=›3`€ß¹s¹UUŠÍ›'?ÒÊôté6J«5$–Ë%gãL¯×“7n”oÞ,Ïϯ6È+ÆhÝ€x<é6ª²²!TS£x!„1.)‘zzòïÜ©P«µ*•–F#ÒÒî‹Ç`íxxLð–ÀFUTÔ"IÌãÙQ/З—×76jÝÎËsqq¸t©€F£ úyó^n÷ÖgΜyëÖ­v¯t%!!!«W¯~òz ÓlTEEAМí1¾7UÎݻա€·µkOõïï}òäm6›Áá8üûß=Ú½õ5kÖDEEuëãû€e%%%kÖ¬L¯¼¼ž P¯^ž Î΄P^^µ«+×ÑÑþâÅüîÝÝ Òɉ3|x(“IÌž={ìØ±O£fÐìÞ½{ܸqíR<§بêj9BT¦WSÝçåUùû‹nß®¨¯oÌÈ(xõ£G‡[;Rždz€-ª­U*MîÕK"—«©»÷YY¥½{{ž?ŸÇdÒIûú <=ùýûûX;Xždz€-ºv­!„ŽŒô«©Q¸ºrõzòæÍòž==wӑ$IææVŽ;€š%€g<§Ø¢ÌÌ&“ÎdÒ…BÇ’i·n.¹¹UMM://—Û·Ë]\œœìKKeo¿ýœµ#àIAŸ`‹®]+&$9ÖÔÈu:ƒ§'ÿúõR6›±sçEŒ‘Z­Õhô/¿Ü[$âY;Ò§%//¯oWƒ1n{ýJ¥2..Î×××ÞÞ>00pñâÅMMM­7‘——×^[¤R©âããûôéÃãñ"""¾ùæ½^ß–Û÷b¶;Èô[tõj±NGzx8—”HBݺ¹¤¥ÝíÓÇëÀ«NN½ž,/¯ï½ÁÖóY²wïÞ”””¶ï?cÆŒ+W®ìÛ·¯¸¸xÓ¦Mˆzá=”B¡èß¿zzúòåË322,Xœœm0,Ÿ/¨mggçyóæu`°2=Àæ”–Êêê”cAi©ŒÉ¤»»;]º”Ï`Ðu:ƒ££››cHˆGd¤Ÿµ#}–L:õã?®¬¬lãþ¿ÿþû²eËúõë' ‡ ²zõêƒ>Õ[—  Ož<9bĈ   Ñ£G_ºt©°°pË–-÷'I²®®ŽÚ‰‰‰ì£L°9YY%4A£Ñ<=ù%%R±Ø¹¶V™Ÿ_“‘Qˆ1.-•VVÊß}×úOè ‚Ø¼ysHHˆP(LLLüí·ß|}}œœ-Z„š9sæäÉ“©=•J%‡Ã¹zõ*Bè?þèÝ»·ŸŸßo¿ý†"Iò§Ÿ~ áñx<}ú´é­fêÎóºwï.‰fΜ©Ñh,¢oS›Ý²ž={vppð”)SLïáSêëëß}÷]@àééGÝ¥wtt\·n1Y2¤¨¨!¤×ë/^ìåå% ß~ûíúúzc=ÇŽ àóùË–-£Jt:]||¼›››H$Š×ét½n¡C‡õíÛ—ÃáˆÅbc†NJJúâ‹/èôûs'888ÄÇÇ'%%Y¼QQQ!www³Kañd ‚HNN qqqùöÛoã‡á‰`°1‹ïïÞ}~·ns’“/Ì™³+&fí¡C™³½¼æöí»ØÏ/>0pžBÑôTc@¥¤¤---!!¡gÏžt:=99cܽ{÷ÔÔTj‡›7o·B—dÓŸ IDATýõƘzpN5\QQAípüøñ°°°‡^7FsëÖ-¥Ri0Μ9C¶”é/\¸ Z¹DTÉCO!túôiÓ0ZûÆÿ¯•öÊôp÷`[ärõÍ›åjµ!äì̹s§24TrìØuŽÔé j­V÷ñÇìæ=<!Äd2ͶBt:}ôèÑ©©©µµµ'Nœ˜0aBˆÏçŸ>}:--ÍÓÓsèСgÏž¥ÑhùùùaaaÆ:{÷îݼ¡ÀÀ{kò—––¶RغéÓ§÷íÛ÷ý÷ßÇÿ»‡_UUe0üýý©¥¥¥*•j×®]¡ÈÈÈE‹eee-\¸ðÓO?EÛ yýõו{xx „h´û™«°°P,ADtttAAÁC¯‹ÅÊÉÉ1bDxxøÖ­[©Bgggww÷ÌÌL³ÓÉÌÌ oûÕ°x²¦ÁÃèHé¶åâÅ|ŒŸï€’ËÕ:˵“É]\¸\;;;Ö¸q‘ÏÊËu111û÷ïß½{÷àÁƒ©{òjµš$É={öH¥ÒÉ“'9R*•J$’k×®ºqãFóª¨^)B(''‡ÊI-¶ŽF£mÙ²åܹs¿þú+UâææF§Óóóó©wïÞ•H$ã·ÞzëúõëT!A/½ôõJ›‡‡Gaa!Už™™¹téRcåÍßd£:ÜTÏU&“¥¥¥=4BµZ=vìØøøø+W®¬[·ÎX>a„„„Ó‘ö*•jùòå#FŒhûÕ°x²Æ+óÐØžÈôÛrñb¾½=³{ww&“^QÑààÀ¾t)!T_¯R(Ôî£þmíÛêùçŸ×ëõ ±±±T AÇß·oŸ\.×jµL&“ÃáLš4)>>þÀ•••GŽ™?~óª>ù䓼¼¼ôôô… Nœ8±¥Â††êá·Ù¶)__ß•+W~÷ÝwÔG&“9nܸ™3gdggþùç&Làr¹o¿ýö¸qã>œŸŸþüù¸¸¸ñãÇ#„bcc?ûì³ììììììéÓ§SÃôZ2zôè eee1bíÚµ½hF«Õ²X,µZ½xñb„B¡@}ñÅÕÕÕÆ ;räHnnîþýû###%ɇ~ØÊ%R*•¦•[<Ù‡†ôÔµË3xVŒñD2{Ê”-~½páÞQ£~ [äãçåçë÷ÑGÛ;& Ô¶çôÆkKÛÓ¦M³··—Ë寣RRRüýýY,Vppð0ÆZ­6!!Á××—Ëå8pÇŽ¨Ùsú7z{{ ‚3f¨Õj‹…øÁ¡g¦ÛèÁgÏ$IFGG¿*•Jccc]]]ÅbñìÙ³©ªôzý’%Kz÷îmooïãã3oÞ<ª¼©©)..ÎÃÃÃÉÉiüøñ2™¬•+ —Ëß{ï=>Ÿïêê:eÊ•JÕ–ëöý÷ß»¸¸tëÖmݺuãljDÔJ¥rîܹ={öäp8¡¡¡_ýucccK—H§Ó <˜Ëåš] ‹'ÛRH­hÇçônö:tU*•&$d!IâQ£úÊd*¥Rãã#Ü·/ÝÁÝÔ¤%Itúô§AAî A)))O¾jígŸ}VXX˜œœÜöCòòòüÍ>¶Rh³¬r5¨UkÛ¥Q¸{°!gÏæ 8$Ä£ªªA,vÊÌ,®ªj@©T‚ † ê˜4ß.šššòóó7oÞüÁX;ЩA¦ØÓ§o³Xôÿ;äîÝj’D¡›7ËØlAz=÷²µ|/^ìß¿ÿ¤I“^xá…'©ÇÑÑqêÔ©m)´YÏúÕ€µì6äÈ‘ë>**`Íš2™*(ÈíÖ­ jD÷K/õ ÷¶v€`èСR©ô14¾áM‰Dëׯ7ÛÇb¡ÍzÖ¯ôé¶"'§²¦F!ñ"B7o–iµ‚@Ô¿E‹FY;@ž èÓƒö´wï^jÊIŒBBBV¯^mí(BèôéÛt:mÔ¨~·nU…¼²²z‹AIâ×^ ÷óZ;À.ë G´ÁðÀ'™´§Ý»wß¾}{àÀÖt%%%kÖ¬é$™þðá,ƒ|å•^Û¶suuP(ÔMMz„ƒAûâ‹‘ÖŽ€§2=hgܽ{·µ£õ¦µ£@!…¢éêÕ"GGûü¦MÛÆá°Ùl•éÇŽpww²v€<-ðœ`޹N’øå—{×UW+ŠŠjB mÞ¼ÿX;º.¥¦¦¦±±±yyrr²¿¿¿P(üðé,.ðj±°í­€æ Ólž=éãW_í“–v—ɤÛÙ±¨9Ô§Mû·PølÌrßù¥§§¿û¡¡ Í¿ºyóæ#GŽ:tèĉ_}õBhúô饥¥—.]úóÏ?=º|ùò– ›»v횯¯ï§Ÿ~j\Õ´2= ë“Ë›.\¸ëäd?thðÅ‹ù M£ÑaŒœâãGX;ºg^SSÓo¿ý9uêÔAƒåçç‹Åâæ»­Zµ*00022réÒ¥))):n×®]?þø£ŸŸ_¯^½’’’,ZlôÅ_¼zõ*‡Ã2dȨQ£Ž;FR3$€f Óº¾cÇ®“$ùÆ¡?ÿ¼®VëH#„Ö¬™ÀdÒ­ݳíĉÞÞÞ'Ož\³fMFFÆ”)S¸\®Å=MW}­¨¨°¸Àk+«¾6çáá±dÉ’üüüØØØ¯¾ú*$$¤¤¤¤]O®‹€Lºš¼¼¼æK[>‰òòò·ÞzËÇLJËåFDDìß¿¿+JT*U|||Ÿ>}x<^DDÄ7ß|C­úPí~õ:‰íÛÏcŒ&N˜ž^ —«"Bb±ó°a!Öí™' {ôèqþüùsçÎÕ××·²§éª¯ÞÞÞxmeÕ×–TUUݸq£´´´_¿~öööO|B]dzZSWW×·o_‡“’’réÒ¥7ß|süøñGµv\­Q(ýû÷OOO_¾|yFFÆ‚ ’““£££MÞ6•ŸŸ/¨mggçyóæu`°A.oºzµØÓÓ¥{w÷Ç3i4!ŒÚµkšµCë úôésúôéÔÔÔ;wî½ÿþû÷œ;w®qÕ×wß}×â¯m_õ•$ÉcÇŽ½þúëQQQãsçÎíܹӸ“ Ð.+â@‰‰‰‰‰‰±n ¦ËG>¹?þ˜ZNÊ(..îÅ_l¯úŸ†¸¸8jÙrc‰R©ôññÙ°aƒÅýÛ÷Š™iÇ•7ÛÏ?Ÿöð˜õóϧ1Æ¡¡ŸyxÌ‹g üu£BmXµö™#“ɾÿþ{ÿÂÂBÓrêgl×®]>>>"‘hîܹ·°ÀkóB‹?¢{÷JNN¦ªêzÚñw2=hOmÌô¡M›6 ‚eË–mß¾ÝÇÇÇÑÑñóÏ?ÇϘ1cÒ¤IÔž …ÂÞÞþÊ•+ãƒöêÕ‹Ífûúúnß¾cl0Ö¬YÌår£¢¢N:…š­ºýûï¿ …Â3f455Y,Ä-¯ºíîî~þüyÓà EQQµ-“ÉÞyçWWW‰D2wî\ãBÔ­œ]+Q8q¢[·ngÏžÕjµqqq"‘H(ÆÅÅiµZ‹§ßR¡»»ûñãÇÍ®ùÚµk‡j±uWWW„›››Ù¹·tvIIIÁÁÁ|>ùòåý^w†L‘ ‘Ì®©Q¤¥å‰Å³¨.äY7ª.™é)ƒA§Ó=íV¨ß‹. 2=è¤ÚžéÇ/—Ë7n܈;v¬\.§¦Ñ­­­=s挫«+õ—")))44”$I¥RÉf³×¯__QQ±iÓ&ƒ¡T*ùå‘H”ššZ^^~øðaOOÏæ™~øðá999iiiK–,±Xˆ1®¯¯7vyÛ2™ !$•J[:‘ & 6ìîÝ»YYY={ö¤ªjýìZ‰êå—_>uê”R©\¾|ù˜1cŠ‹‹³²²úõë7þ|‹§o±Š¹¦¦Æ,Ôsçι¹¹µÒ:µ›évKg÷ÆoÈd² 6 „êêêZÿ^[=Ó_¿^*Ï=z Æø¿ÿ]M¥ù~ý–X1$JÎô ]@¦TÛ3=ÕM×jµfÛ¹¹¹z½ÞÝÝýäÉ“ãW^y%11c,•J™LæÊ•+e2I’ …Â`0„††nݺÕXí¶mÛšgú¬¬,ê«))) [Š“Z(L&“YüªV«¥ÓéÙÙÙÔÇÔÔTãa­œ][¢¢F&SÛÇ ³xú [Êô.\­´N•·[9»Ó§O›žQKWÏØ„u3ýl‹g¥¥Ýmhh¤îÛK$sÖ®=iÅ(éAëÚñwFäëàñx!&“i¶¢Óé£GNMM­­­=qâ5‡ÏçŸ>}:--ÍÓÓsèСgÏž¥ÑhùùùaaaÆ:{÷îݼ!Ó{Œ¯ëX,lŽÏ绹¹Ý¼yÓ´0===""¢±±±•×Z9»V¦6 Åb1AADGGX<}‹…ÎÎÎîîî™™™fç’™™ÞöÓoåì<<<šŸQç¤ÑèÍöðpŽŒô[¶ì0Æ!‚ͦO˜eíÐè8éAg³ÿþÝ»w<˜º'¯V«I’ܳgT*>þÀ•••GŽ™?~óª>ùäã‹='Nl©°¡¡z¬n¶½téÒ3gÎÄÆÆž?>++ëË/¿\½zõÒ¥KBm¨Q=zÁ‚EEEYYY#FŒX»v­ÅÓ·Xˆúâ‹/ª««‡ väÈ‘ÜÜÜýû÷GFFJ$’?ü°•Ö•J¥i OrvÆxÕªcl6ówž‹Ý€1f2i*•fÊ”¡Ö €ŽÕ.Ï ´ý9½±ÏÚÒö´iÓìííår¹ñ¨””‹|àÀŒ±V«MHHðõõår¹ܱcjöœ~ãÆÞÞÞ`ÆŒÆ×uÌ qËcï1Æ………o¼ñ†‡‡Ç0`ÀÁƒ_²øŽPëg×JTÆjårù{ï½Ççó]]]§L™¢R©,ž~K…c¥R9wîÜž={r8œÐÐЯ¿þº±±±¥k¢ÓéÌårÍÎý‘ή%V|NêÔM±xÖ¼y{5=5oäÈU±±¿Z%˜æ<§­jÇߛܖà ;!Ô.«Ö~öÙg………ÉÉÉm?$///00Ðø#mö±•ÂŽdÝ:¾ujÕZ«œï‹/®¸}»"#cqtô÷µµrA~~ÝÎS‡ éÞñÁ4GDJJ õ+@síø»ëÓƒN§©©©¼¼|óæÍ;wî´v,àYuófùÍ›åÆõHO/¬­•#„\]=<\:Iš§|ýõ×ÔËŠ-ÑjYtºÇ“wXT “¨ªªj¯ª ÓƒNçâÅ‹¯¿þú‡~øÂ /{ÕZñÈdªþÉ¥nÎSÙ=,ÌëÕWÆ ÷áp »ƒ§2= ë8w.ïæÍ277§ÊÊ„ÐÛo?·yó߇Ïf±:ôo]CCãßç³;FôìéIe÷~ý¼Ø éA»ÉÌ,nldVVÞùõ×_­ è,222:²¹éÓ“h4•æ_{­_ròù©S_èÙ³­³? ¹¼é̙ۗ.¤§ܸQ†16f÷¾}½¹\ÈîÀj`ì=xRÕÕŠÔÔŒ””‹wîT†„§Ný`íˆ@çâååUTTÔ }ÿýÑ•+ D „œì½½:áÏ?Ÿb‡¾©I—ž^@ußoÞ,3p¯^žÏ?4`€ox¸‹‹ÃSj€G™<¦ÆFmjjÆž=é…7&fÀoôïÞÝÝÚq¥TjBC?3H’Ä^x!$3³øèѹžžüömH«Õ_¼˜o–Ý#"| ð80@ à¶os<9¸{YeeÖ-ÿìØ‘ÖÐÐø¯…üüóÛ/½Ô³ƒŸƒ`æÃ·ët÷–ï{ýõðýû¯lÜø^{¥yƒ¼u«âÂ…¼sçòÒÒîÊåj77§çž xçAøøÚ¥žèÓƒGpåJц gþïÿ²ÞäÉÏÇÄD…}ذa=h4ÂÚq€Bz½!$ä3•Jƒ yr¹zÒ¤ç-õUÉåM/Þ½t© ùùüÜÜÛ;v:dzÐΰsçÅ<^YÙðïOú¯Áƒ­?þ×3gn!„ØlI¢7ߘøA´õ¢ÔqÔ˜y³Quaa^p× tée¹ÿ•ï¾;RZ*=:|úôanÖ s‡g}ðÁ„FÐh´˜˜ˆ+Æ>ô†“q6›K— îÞ­¦Þˆ£²{¿~Þ®®0ªt)é9ƒÜ¹óâêÕÇ««±±ƒ¦M{A"içÑË´ •J4c„A£±±—.ÓR𝍍ÿçŸÜôôӹꨅdà}wеA¦8{6géÒCÙÙ¥#G†Í™óôãAg8ŸzϘݩUd¨‡î0-°éÁ=ee²%K>|í?ÿé7ÞŒÜàÁËòó«Bt:måÊqãÆ  Ê‹‹ëþþ;Ç¸ŠŒq؈ß^½ê­·¢àÝ9Ðù­ZuôÛo „œœ8ø^»V\]­prâP÷|!»` æ5³]ÕÕŠ öüùçõW^é𺇇³µ# 5ãÜܪ_=³cGU¢Ó雚tï¼3xР€¾}½`¢F,‚_ uðàÕ öñxvÉÉSÿõ¯`k‡€e:áÚµâK— .^Ì¿|¹P&SQåB!oóæI½{wc2éÖ€Î2½Í©¬lˆ‹K9sæÎ´iÿŠ‹ÁfÃÏè\Œæ©—ÝI÷êåâa¼!?dHð®]S­$ÏxNo[Nž¼9wî.6›ùÝwã²v8 „ÆøúõRj–:jH5`žz.$Ä#9ùÂwßÑëI„PT”jêtk‡ À³2½­hjÒ}õÕÁ­[Ͻùfä—_¾ó„ë¢Ö~½t)ÿرyyÕjµÖÙ™óüó÷†Ô…„xP·åË^´hY™Œ$1B(<Üë?f[;vž1pçÖ&¤§LŸž¤Õêwì˜:thwk‡žar¹:99í­·"œ8z¬BÑtõjQzzá•+…—/*M\.[¥ÒØÙ1SSg„‡{›>tÿçŸÜo¾9”•UŠ¢ÒüK/õܲer;žKç¡ÕjwíÚÕÔÔdí@€•ÙÙÙ½ùæ›,V;Ïú™¾ëÛºõÜ’%¿GDø¬^=A,†öàñíßåóÏ÷Éd®®Ü±c#ÚrÈÝ»ÕE…—/ܹS‰1 …‡û|ùåkׯ—nÙr!ÔÔ¤«¨¨g2ý¨Crs«9’-;aLR·.5}ú¿žÚ™YÙ¡C‡ÞyçkG:.—;zôèö­2}W¦ÑèçÏß³gOúܹ#>ù$Þ•-?¿fîÜ”K—îbŒètZFFaK™^*Ued^ºTpéRþÍ›å*•†Ïwèßßgôèðˆßž==9–F£ÿøãßþüó:B!„1Z¿þ¯×_ïwõjñªUÇNœ¸éã#àñìÊËë©:×®øúëáw¶N¯×#„àY* ‚úah_黬ÂÂÚÉ“·ÔÖ*öîý8*ÊßÚá€g•R©ILü¿­[ÏÒh•‰ òüù\ã$‰³³K/]*ÈÊ*¡& %"0ÐmÀ߉àçííjZ¡\ÞôÎ;22 MÛõë%cÇþ|þ|n·n.ýûû¤§Rÿ âÈ‘¹½zI:ædè’ ÓwMGfÏœ™èväȸcÛ¡C×.Ü[_¯&IL=,§äçמ>}ûÖ­òË— ¯\)¬®V0´ÐPÉ‹/†öïïáÛÒDLee²7ßü¹¨¨ŽHoDèö튷ß~nÏžô¢¢:ªÐÝÝ)=ý :f»à‰@¦ïjH/[vxݺSãÇG~ó͘5 <žÒRÙüù{NºM£!ÓOÁO˜ðK·n.‘‘~qq/GDøúû‹:íeo¾¹¾¡¡Ñ,Í#„0FuuÊmÛþ1öóGîÿÓOÚél°iº¹¼iÆŒ¤¿þº½|yÌĉ­x&ét†Õ«¯YscŒ&Í“2B1™ôØØA_}õ:A´uðÇ_ÝžaÂÞÞþ¹çžËÌÌ|Â:šVîããóöÛo×ÔÔ´r Æxâĉ\.÷ñš3CXbܹ}/c{>}‘]û«Häxäȉ„o­0>ýôÓ+VX«uðÄhîî!Œ1&ˆ{ã'2ÛøÍËëßCŒÛ4´<11¦þ¡áüùó¾¾¾!…B±téÒqãÆÝ¾}»½¾¹Tåƒ!''çÇìׯßõë×-)//ONN.**z¼¶òóó P[[kÖºé> cÞ¼yW€Lß?~cÚ´íÑÑ=V¯ž`Ýó………QQQsæÌ±b àI”–ªªªÔ2™¦¾^#“ikk›d2Fs¯sO§Óh4d0`’Ä4{íÚmB¡}ëž>}á÷ß15¾-är˜=¦‹ …îîî!ww÷o¿ýÖÍÍ­¦¦F$µoå‰ä…^xá…~øá‡/¿üÒâÎjµ!äååõxm‘$YWWg±uS‰‰‰WGÀà·uë?žžs.ܫ׬ މ‰‰‰‰±v 544Þ¼YvìXöæÍg¿úêà´iÛFŒø>""áΊ‡›’’B§;ÆÆn‹gµåßW_ýÑgÔÙ¤¤¤´å¯1BhÓ¦MÁÁÁ`Ù²eÛ·o÷ññqttüüóÏ1Æ3f̘4iµ§B¡°··¿rå ÆøàÁƒ½zõb³Ù¾¾¾Û·oÇ †5kÖs¹Ü¨¨¨S§N!„rssѽ¥sB¿ÿþ{PPP(œ1cFSS“ÅBãÎT£¦ÛT…ÆÈ¥R)‹Å¢ÁkµÚ¸¸8‘H$ ãââ´Z-Æø?þ ³··www_¶lÆX¯×ûí·\.wРAIIIèã9L+ÇïØ±#<<¼¥Ê]]]BnnnÔͲxÆ ³Ã›·nñ¨–Nó¡ßâ”””‡îö¨ Ó?ÃH’üüóT‰dö† g¬Ë=é™””gçè–Sû'f%Ÿ}¶×Ú![AÛ3ýøñãårùÆBcÇŽ•Ëå¿üò B¨¶¶öÌ™3®®®:cœ””J’¤R©d³Ùëׯ¯¨¨Ø´iƒÁP*•¿üò‹H$JMM-//?|ø°§§góL?|øðœœœ´´´€€€%K–X,Ä×××oذ Ït!”™™©P( EYYÙG}ôÞ{ïOdùòåcÆŒ)..ÎÊÊêׯßüùóår9‹Åš4iRii)•Ñ«««¿ÿþ{Ó8=<>§ŠŠj¯^ýmÐ ]qË@Ú#?¿¾Ù+'HR::*j[YiÛÚêÙØHKÃ?"Ñàéééíímee5räH¬O¾±±‘Ïç_½z•Íf_¾|ÙÝݽ²²RGGçíÛ·666ØYïß¿o]TNNΠAƒÙÙÙX·y[‰ßENNnþüù§NBQ›{¯ªªšœœŒ™e]]]yyycc£——WLLŒ»»{SSÓÙ³g†††ßÕ @QôøñãS¦LÁ^¶.¼yf¡ap¹\PRRÒÁëú.í+éI`<}/ƒJezz«©aÆÇ¯‚6/”î îHäna2™AAA666$ÉÞÞ~×®]ÜÖ¢›¢u¯\¹"4JøÇc ‡ Q­¯¿íÚo99»KKÿ** ÿðaWRRà_ÍY²d´ƒƒ ´yâââÂårCCCç΋¥ 2~üøëׯÓh46›M$åää.\W^^~ûöíõë×·.jåÊ•¹¹¹iii7nôññi+±¾¾›4Ðâ¸d2™N§3 ìåôéÓ7lØðåË—ÌÌ̉'=z´©©‰ÍfKII566nÙ²@§Ó—.]Ú\gHHˆ Àªªªòòò’’’GM›6­  @òÓºðæJ„V„…ç]¸pF£:tHè%Äwœö•ô("€teeu#Gî3&¬ªŠ.n-‘„qúƒj?àùóçeeeÅÅÅ<ðððÐÕÕ¥R©måÏËË£P(í—I£Ñ,,,F•˜˜øùóçëׯ[YY=šËå~·ÌªªªuëÖuùrÚ¢¡¡¡¬¬¬¬¬ìùó瀲ÿ§#³…Ûç»#Ð|>?--ãÆëƒm¾téÅV×Kéø8½`|º­ã¥K—ÊÊÊÒh´æ…›˜˜HIIYXXÄÅÅ¡(Êf³CCCŒŒœ/]ºZÓÿý÷ߪªªË—/ollšˆvxî=Ç#“ÉØK¶`Áeee …²dÉ&“‰¢èþýûUTTôôôŽ;6{öluuu.—»wï^SSSyyyggç””Ъw]OOÏÛÛ»¢¢BPWëÂ[ü'´®EÑ;v())™˜˜ÄÅÅÿޏs8œ‘#G*((½´×Þbö_ëËüîG gäõkJK©Ã‡ïüé'ɵy´:}ó_5ŸÏwuu ù‘Ú±¶— …Á` æ-w¡LQ!òºÚñ°JwíJ°± ÑÒZ¥§·FWwuxx¢«îEtÐé;ÂÆç̙өSZ|èB¿=ù%ìÏt“ÓÃÞûÞÁׯ5‡de‰11¿©ªvnMG A3gÎXZZª©©íÞ½ûâÅ‹FFFŠŠŠÁÁÁ€+Vøùùa9 †œœÜ›7oñññƒ–‘‘166¾xñ"€Ïç9rÄÒÒ’D"9;;'''7ïÙÆ:ºãââ  ®®¾bÅŠ¦¦&¡‰à¿½âíô#²téÒþù{™`gg'''§¥¥…­›áä䬪Ñ: 222$$Ç Š•—— ŠŒŒ*¯y™ÍµÕÕÕÍŸ?_UUUWW700Åba £¢¢,--UTTöìÙ#ô*ªªª:õ‘uù¬Öde•DzÅÍmωÉ••4—Ë'ðß=Ò,+??ÿÌ™3‹/·ˆ„!ògˆÈ)(¨6lÛ¤Iûëê¾ßù#^:ئ½*,¸­xžïæ Í@¥RUUU-îɳgÏ444ÚÑŒek~ìíííææ–———™™imm]`ÆŒT*5""PSSÓ¼–ÔÔT___55µÒÒR¡M;M·¤¤$uuõ   üüüï~Ä­Õ‚‚ªððÄáÃwji­ÒÕ]Û:¾ÎÐ0¶é„‡*++oܸ±³'¶øÐ+**üýý[äš9 {ÚôÚ‘¥¨!⣠ ÊÓó˜†ùòå¥dòwV;^^^€˜˜˜ö³!òúõk;;;‡#%%Õü8''ÇÈÈHWW7**ê§Ÿ~š2eŠ««ëºuë¨Tª††ÆŸþéç秨¨Èd2åäääëë‹{áÂ__ßœœ333EsssÍÌÌ233±ÙÂ111›6mJLLlˆýÓµ%µEDÍ«W¯ÆG¥RÙlv~~¾žžž¬¬ìÓ§OG…•ƒÕšAUUUYY¹ªªJUUµyE)))îîî/^¼hK3V&vQ(Šr8YYÙ·oß8ûÇäää ’œœlooÿ#S÷µµµ·nݺiÓ¦›7onß¾}ùòå÷îÝÓÓÓkç&“«¨èöâE‚ (úì’’Þ'% ¤êó‰jâ–é³@§—\ÊËëgÎ<®¬,½LIINÜrzÉ ÿÜm'0£­ ÞÞÞ¡¡¡cÆŒ Õ3™Ì°°°•+Wv\ž††ÏÏÏ·²²äååéèè`oµhg«©©YYY=þÜÆÆÆÌÌLYùG·:¬¨¨xÿþ}qq±“““¬ìw@åå 'ãâÒbbÒ>ü„¢(‚ <žËG°v턵k'þ ¼ÞHLLÌÌ™‰[…ˆa2™[·n½{÷n~~¾……Å´iÓþøãáû¦Ó~Ǥ ÀyJEmúô#ŠŠ²W¯ô7›ÜVä®ÐÀ\ì,ô¶­ !!!•••nnn·oßÎÉɉuttÔÑÑY¶lY;š[„ó‰Ä™3g®X±¢   ++kóæÍÞÞÞBo¦Mrrò7>þlnn¾hÑ¢ôôôÎ~">Ÿ÷îÝiÓ¦999¡(úìٳ˗/·ƒ ŠrÝÝm/^\œ•µýÀÙÆ‚x¸;m†N§6,---,,,==}Æ QQQãÆãñxBóççç ¾KJJJ’¼l¯Dä#ÿ§¶–1fL˜‹Ë®êjÉ ¨JÇgäõ¢°`­#w[æ¶½¹‹¢(ƒÁX»v­µµµœœÜÀwìØÑÐÐЖææe6×V[[;wî\ …¢¥¥µzõjìBÚºŸT*uÿþý&&&………B?švfä]»vÍÉÉ)**ª©©©í϶%Bçš•–R#"Mœ¸_Kk•žÞ·ÙypF^ßA’CI%ãéû õõ cÇîup--msy‰E„ñôý3,¸gäñx<,´¡Stmö=ìÝ»âÐÐ8›`-­UZZ0ž¾ï ©©™””Ô"ñèÑ£‚‰«-6Àm¾3ló_•Jõõõ¥P(:::k×®<ÎFFFZXX(++‡……õð¥u+Ýäôpœ^²hh`ûøDTUÑnÞ\¡¥¥$n9âÅb•––ž9sæòåËâÖÒ7Áápß3ßÁ?bm­cm­³i“{jj~||ÆèÑ"¯Òó`k¼7Ÿ-‹akkŠ;v,!!¡¶¶ÖÇLJB¡¤¤¤˜™™µ^þ÷ß///OMMe2™sæÌ!‘HØ@ØÍ›7_¼xqíڵŋ/Z´HEE¥®«÷Çé%6›»pá™ÜÜŠË——~ø³¯òòåËaÆ-\¸pôèÑ?R™Lö÷÷ïH¢ä áòº qr2Ù¹óסC Å­Òàp8Á8}xx¸™™™££ãÎ;±Õ&ZÃáp®\¹rðàAccãAƒ…†† r())a¶µµµ=£¿÷Ûô’—Ë_¶ìBzzá•+Ë,-;1¼ï1jÔ¨®ýt± ³/ÕÕÕOœ8Ñ"ÐDÉAÂåu:­¬üspp¬¾½½¡®® œˆ×çéùPRHû@§—¶m‹»wïÃß/:Ô@ÜZ ‘QZÚ(#czúôcA ‚ ²²Duu²¥¥ö°a¶¶ú¶¶ú²²Rb 9=J ièôÁß?>sæÉÁƒsúça>Œ–VËQEØ……Õ……Õ‰‰™X"‚O¡È?xð‡ŠŠ|Ë„ˆ˜77·õë×›˜˜deec¡¤EEE€•+Wž:uŠJ¥¶%m¾z£ ”4""‚Éd¶J iøX$~bc_oÙrsãÆ)3f ·¤M¸\>ÎêìYd2‘éún6<¯²’¶dɹ®ˆƒHd29==}ذaAAA¶¶¶ÁÁÁ³gÏNJJ’––Æ2x{{;vòäÉ'Nܰaƒ¡¡áÈ‘#µ´´Z”säÈmmm{{ûñãÇ?~Æ =~)}ئ3¯^¬YsÙ×wx@€›¸µ@ €Fk,+«//¯¯¨ •–R++i_¿Ö–”P++iuu22B;»›"“ùZIi"Zòlà@Ý. ‡HòòòááááááBßõóólY‰ñäÉì ù„eeå .´8·ùt.¥× Ó‹“ÂÂêùóO»ºؾ}º¸µˆŒÇ7®E"‡g0%“ibQi _^®ÕÔ$Íáx<Šþoº‚€ÿ¢Ÿ5kZ§fÔ}ýŠHIiÿô“Ń;’‡ƒóõ ^lÔ×7Ì›¡©©xôè\<¾ £xzz6Ébjjd¨TM ©ÉTV†{K® €ÔÔ$äsiÝX"“9**[6ŸN'ÑéäääOžË¾js||œ:U>¤×Ñ?CIÅ tzñÀfs,8ÓÐÀ¾zõ7iqËžžžÓ=úœ”ôþáÃOÅÅT--¥_<~ü@{{##‰p8¼S§îÙ“ˆ¢ 3& Ë–MY¾|l[Úâðá{»wÿÛÎ~µÔÔH&&ê-Ò»è{¡¤’tz1€¢èÊ•—>|(¹ys…††¢¸åˆÿìYNlìë;w²êêLMÕ§Nµ;ÖÊÞÞ¨ÏôXôUˆD|@€Û”)6Ñ/^ä€ûäp¸ FSaaug—uZ¾|¬‰‰ú²eàóùíªVUÑÜüìÙÆ~¸«Ò}ÿICº•“'nß~+"bÁ¤IƒÄ­E¼yó566ýÖ­7••ô!C ÜÝm'L°îÏküõ^P½víUpð†NëÆ=¶„.—Ë×Ð ;:;8;:[XhuðIîùó\_ß6›Çá´Õm€f텇Ϛ3DZëWÒÛˆ‰‰™9s&ü7† íåå%âbáw«‡yò$ÛÛûäºu“{ûdûÔÔüøø·ÿü󶢂6l˜¡»»íÏ?Ûhjö‘.ŠþLu5cëÖ›7n¤ãp¸æ]îƒë%$¬úð¡$5µ -­àéÓ*•I$â--µ]\ÌŒŒÛk‹úT6sæñºº¡foggðæÍÁKã›7—‹ðº$èô èô}ììòŸþËÝÝnß¾™âÖÒEjk™×®½ºq#=3³H_ŸòË/vC,-[FÁBz;ÏŸç®^}¹¬¬ŽËåˆDÂâÅ®›7»7ÏóåKMjj~ZZAjjAvv931Qwp0²·7>ÜTGGÈܽâbª—×Ñ¢¢ºû”xIfÒ$ë'O²‹‹ë°ÿ%"ÿæÍ¶þ°tzF79=§ï9h4–ŸßYssÍ]»~·–Nƒ¢è³g¹QQ/ß‘É2CvîüuÈ}¸†y_eøpÓ{÷‚vïþ÷ܹ§x<ÂåòZo?c`@10 xzÚ**h©©ùXsÿÒ¥>ÕÐ ;8»¸˜ÛÛ™›k`_]]åÄÄ5ÞÞoßñx<PÀìÙŽ**òÿýXF†8fŒÅ“'ÙÃá ´ùò奮®züˆS§N‰[¤oÛô=Ÿ.\x&3³(1q†YÜr:AQQí… Ï¯]{U]MŸ ¨(wýz‘(¹ ÁæåU8p÷Ö­7$’¬¯ïˆùóGª«“Ä- Òh=´Mè³·72ÄàåËü°°6›05Õxüx½¸õB ½ èôÝ‹¿ÿùÔÔ‚¤¤ÀÎnÿÕcäçW8p÷æÍ׺ºÊK—Žñò²‡õñÒ|hÿɓ캺IÆÊJ;?¿ºªŠ02R{öl£¸eB ½èôÝÈùóÏ6o¾ó›³³‰¸µáË—š}ûnÇÆ¾65Uÿýw7!\¶"Yp8¼ÌÌâ´´‚—/óÒÒ jk™XºªªÂ™3 mlô%¹« ‘ ÓwïÞ»»\¾ÜmíÚ‰âÖÒ’Š ÚÁƒw£¢R Ð\³f„ Ö0,"ù (š›[yêÔÓ¨¨§XЬ¬Ô!úNN&ŽŽ&C‡Àî(D(Ðé»5qâ>}}Ê¥Kþz^YIOŒŽN53ÓØ²ÅÃÅÅ\ÜŠ NŸáï@¡~ùÅ.-­ +«`jª…ìa¦­ #B!o@§ïüýϧ¦æß½¨¦&)óÚÙÿýøØ±dâêÕãgÏv„ÝžÞ˦M×Ïž} PT”‰‰ 02R{óæËãÇÙ©©ù_9ž`¿‹‹¹EÜz!q^ôœ=û4$$6:zÙðá¦âÖò„„·¡¡qtzS@ÀO~~.°“ÒpsÛóñc€HÄ80{úô¡XzC;+« Ùo1ßÁÁhÐ ]8Véo@§1™™ES§úýw·À@‰žOOÿ²yóõJ—,½|¹™,+nEˆÈ05]ßÐÐ@dëVÅ‹GµÈ€Mãò$;5µàåË<¥ªª`ggàà`äâbnm­+QƒkH7^”46²'Lا¬,ýúïbŸÇ^UEß¾ýÖõëé£F ؾ}š‰‰ºxõ@ "§¡mjº;FdÕªqAA“ÚÊÜ:xO^^zÈ#cGGc))¸ã¤o^”¬[wõÖ­Œû÷ƒÄ;EÑË—_îÚ•@$â7nüyÆŒa°»ÒWIL|ççw@ àPøûn±µ®Px<~nn%fùÏžåÔÖ2ee¥¬­u°åùìíddˆÝ¯é! Ó‹Œ¸¸7Ë–]8{ÖoÂk1ÊÈÎ._·îjzz¡ŸŸëš5H$1Š@z€_=úâE.@AAª¡»d‰kHˆG§Jøò¥æÉ“ìÔÔü””¼âb*€³²ÒÁÆõ]\Ì•”äºG8ÒC@§ %%T7·½vaažâÒÀ`4……ý{þüS''“°0O##5q)@z6›gi¹±±‘ ÐÓS)-­[½züš5ºPŸ~þ\ž’’›’’ÿòe^e%HÄÛÚê;:;9™88+(H‹Z>Òí@§<ßÓóXu5ýεâšÖžð688–ÍænÝê»ë!ý¤¤÷¾¾cÇ..æOždïÜùë‚#°Ø¼¼Ê””¼””ü””¼’*€4H×ÉÉ[«‡L†fÞtzpìØƒ°°ÿùgµµµNÏ×^W×{ýú« ¬wíún!韸»LO/ĎǘœüéêÕߌEU~U=#ãkjjÁ“'ÙïÞ£(j`@qq1··7>ÜTGGYTA ":ýòæÍ×_~9´nÝäß~û©çk¿{7kݺ«(Šþù§ç¤Iƒz^Æ×¯_X,–¸@zþþþ3fÌè¦Âkk™66!(Šòù(€89™æäTÞ½»¶;V¯ª©a¼~ýsýûíŽ5@OOEä5B ?tú‚Él7.\OOåòå¥=˜[QQÿÇWïÝûàíí2ò‚€Å‹G]¹’š’²YÒV»c0šRSó_¼ÈKIÉ{ûö+—Ë×ÔTtv6qv69ÒÌÐPUÜ!}1ïÂÒa0š‚‚¢§LÜ36ãFúäÉ8^|üJÉ´y !77W´] ÙÙÙS¦LQVVÖÔÔüå—_Þ¾}+ÂÂ…RZZ:gÎCCC{{ûØØØî®±D~?{’-[<šš¸d²¬¼¼4Š‚‡?ÉÊ÷ï¿#n]ß022BAIÆÍÍjóf÷„„UEEUW_ÊÉùçÊ•ëAAmlf ‚ blü£ËBÀÞûNÓcýö,gÓ¦W®¼\²dÔ† SàF[=IQQÑðáçOŸþàÁÀÙ³g]\\RRR¬¬¬º©Æšš;;;ww÷èèh‰”˜˜8{ö츸¸ º²ªk×ÈÏÏwpp¨®®())­[·®Çª-C‚ƒcÏœyòòeˆMpvvÅÒ¥cNŸ~¼p¡‹$4” W¯^íììÜV‡Ïf»ÈËô¤*ˆdòâÅ‹ü`!Ð<:Ç£GŸ/\x~ô¨ŠŠ|·VôáCé’%ç˜Ì¦˜˜ßFŒ0íÖº ­Ù¹sçÈ‘#Ož<‰ ÀÎÎŽF£………?¾›jܲe˘1cþþûÛ’®VVVåååááá=éô|>¿¦¦;VUUݽ{wU-r–/»uëÍèè_ßáçÏ?ÿûïGzz”ððÛGŽøˆ[899Áõ' A$£¢°÷¾46²7l¸ææfùË/Cºµ¢¿ÿ~ÿÈ‘#–––$ÉÙÙ999iÖÏŒu;ÇÅÅ 0@]]}ÅŠMMMBÁû¨›ß¿ÅnÇ_ IDATŠÍ‹ _³fM;§p8œ   uuõ   ‡#T|[‰×¯__¹reóÛµeË–Ó§OcÇuuuóçÏWUUÕÕÕ Ä–#D$**ÊÒÒREEeÏž=‚›Ü:±µ6.—»eË}}}55µyóæÕÕÕœœœššš-.­ãµKó甑‘:~üá®]3ˆD<—Ë72R‹‹{“].niHƒB:ÌŽñ¬/+«ë¾*êëýüÎèè¬OäryÝW‘h‰ŽŽîÈw 0{öl†µ\½¼¼h4ÚÉ“'ÕÕÕ=¢P(EÑÈÈÈòù|ƒ!--}âĉ²²²Ó§OƒqòäIuuõ7n”––þóÏ?ººº€œœLv0~üøììì””SSÓ­[· MDQ´®®.""“'8f±X8®¼¼K§7CP>öVóã°°°_ýõëׯ™™™C† Y¿~½PñB©T* ¶¶¶­[çíííææ–———™™imm‰̘1ƒJ¥FDDjjjÚJl­mïÞ½ÌÌÌ|÷c```;—ÖñÚÛÁÓÓÓÓÓó»_²nÝU-­UwïfTki­ÒÒZåì¼}íÚ+=©A(€èèhq«€ô:øïÚ>Ðé;JFÆW]Ý5—.½è¾* ª~úi…ÅÆÛ·ßu_-ÝAÇþõë×(вÙìÇ999\.WSSóþýû(ŠNž33S ÍÔÔThb[:KJJ˜¯£ÿí:CÛ¶C ‹²²2ì8))ÉÖÖV¨ø¶T*U¨6›Çã³²²°—7nÜÀÄ’““›ßö[k0`À7°”>`ÇB/­Sµ·CÏ;}u5][{µ›ÛE‡ݪ¥µjРÍ´ž”ÑèôŽ#§‡½÷‚Ãá­YsÅÙÙtÖ,ÇnªâÁƒ“&Àã‘;wÖL˜`ÝMµˆ‰ ‰-Žx<~úôé7nܨ®®¾wïž··7@YY9999%%EWWwÔ¨QOž<Áápùùù¶¶ÿ[8hðàÁ­+233Ã,,,Š‹‹ÛIl¦¦¦ŒŒ fuàÿc˜·möPXX¨¥¥…Í•7n\AAPñm%jhh|øð¡yáiiiööö <ÏÄÄK755ˆ×ÖÖn~ÛJl­íË—/‚»aii9mÚ´¶îFgk—(…aà ?~,-,¬¾}{- ºš!#C¸pᙸ¥A = túñ¨  *,lÒ qG<ç΄¹s#||œÿýw¾~ÿÝÃÓÓ3666&&fäÈ‘XŸ|cc#ŸÏ¿zõjmm­ŸŸŸ»»{mm­ŽŽNó˜·÷ïß·.JàÓÙÙÙ˜!µ•ØçæævêÔ©æ‰Ø“µ.— ÀZÿªªª‚v-•JMII*^h"`êÔ©ûöíkþèÉápäää444ðx|~~>–ž——§££#*T‹”ÖÚ´µµ ±w322vîÜÙÖÝèlíÅš5PìÛw[UUaÀm@Cûüùg,GÜÒĉhC(›ÇƒÉÊÊŽ1"##ãË(l^¸¡¡á¼y󪪪Ú9EQ…έ-ÖÎ éùhÛî@Ò¨’@aaõ¾}wV­ßKgWW3fÎ<~æÌ“ǽ7mú™@èןˆ‹‹ —Ë ;w.–‚ Èøñã¯_¿N£ÑØl6‘H”““[¸paPPP\\\yyùí۷ׯ_ߺ¨•+Wæææ¦¥¥mܸÑÇǧ­ÄúúzÁt÷æÇ;wî¼xñâºuë233322¶mÛ5^•””.\ Ñh‡Ô8}úô 6|ùò%33sâĉG*^h"Vã£GæÎûüùóÌÌÌmÛ¶:t3`"‘8sæÌ+VdeemÞ¼ëðè8­µÍ;wÓ¦MYYYYYY¿ÿþû—/_™ Fós¼v1âêj®¤$—ð–Íæ=ê àrùµµÌ;w²Ä-­Oñüùó²²²²²²ÌÌL333Ñ®£…^\\|öìY6dÈl©PJKK£¢¢Ztuœüü|UÕÿÅabѶ:::ßÓóè¸q{9ÑÏËÎ.1bçС[_¿þ"òÂ{’ŽÓ Z–m/]ºTVV–FûßHjtt´‰‰‰”””……E\\Š¢l6;44ÔÈÈHAAÁÙÙùÒ¥K Õ8ýßÿm`` ªªº|ùòÆÆF¡‰hÛƒî(о~ýÚÍÍL&[XX¬\¹’Á`ØØØ`oíØ±CIIÉÄÄ$..Np F[°`²²2…BY²d “É*¾­DE g̘¡­­M"‘nݺ%x«¶¶vîܹ EKKkõêÕ˜x¡÷Phbkm,+00P[[[QQqöìÙØ‡3räH…w£ãµ·CÏÓclß~K[{Õµki(ŠÚÙmÑÒZ¥­½jÚ´Ã=¯D÷8}‹¯úÒâÓ¯¨¨TTTüH™…- çóù®®®!!!ß=±kÕµ8ÝßßßÃÃÏç R|}}çÍ›×Ùò8#¯'¸v-MWwÍ›7¢wâ»w³ÌÍ×Ϙq¤ºš.òÂ{‘|16nÜ8gΜNÒâÇ)ô§.Ú¿6H—ÓýZ£­½jüø½(Šž8‘ŒMÂ×ÒZU\Üf¤CwÓ§œ>}ÚÂÂBUUõÏ?ÿ¼pá‚¡¡!™LÞ¼y3Š¢Ë—/_¸p!–“N§ËÊÊbó[oݺ5hÐ iii##£ . (Êãñ>laa¡  àää„­ÕÂØnÞ¼inn®¦¦¶|ùr‹%4mû±¸…×ÖÖJIIa§ (Êf³ÕÕÕÕÔÔÙl6Š¢ñññ¶¶¶²²²šššþù'Š¢\.wÏž=fff ÇŒŒêô(Š^ºtièСmN¡PX†Ö ½ ÁA‹ÓMMM±9ªªª222§Ü»wOOOïÉ“'T*Õ××—B¡èèè¬]»VкZQë{ÛÐé»úú›à ®Š¶X¿cG¼¶öê;â{Q(];ˆä»ØØØ˜——§©©‰Íèî8Ðé{ârzE]]wkk¯*-¥Òh::ßœ>(Hl­ê:}¯IŤfdd`a¨%%%¿ýöÛ‚ Ò:“F£III-\¸°¸¸sôÊÊÊýû÷7׉M£A…9}ZZš’’R[…7ÿ¥ ­¨}§oþnG¢m'MšôàÁƒÑ:µŠZßÛv€NßílÜxÝÖ6„Fka™õõ>>' oÜHa±âE$ßŇ*++oܸ±³'¶pñŠŠ ÿy„&Bz1:ýéÓµµW8pEÑéÓcN¯§·Z,bÐ;}¯IE[Ç+((|øðAðnëϦ¦¦?2 ÷èÑ#L¹¹ykè÷œ¾uáÍÿ „VÔq§ïH´-v—„F¢¶SQÇï- £ìº›ôô/çÏ?ݶm‰$#ª2ss+'OÞŸ™Y|õêoÓ¦uïB{½ŽQ£FÕÖÖ¶3 ¼-áÝêêê'Nœh‘Gh"¤ŸàáaráÂsÀôéCñxÀ墻v%ˆ[Z{ôŠT 3™Lÿ…  Þjá)%%•=qâÄ¡C‡ž;wËVTTô]‚º1Ÿ­ ožShEÍAÛ6Ø‘h[ Ðn$ªÐŠ:uoEtzáðxüM›®5`êTÛïçîéé_¦M;ŒÃ!7o.6ÌHTÅB ö¡PÖ-/¯÷®xüxk>ÅBªŽOnh`‹[]‘ÔÈÉÉÍŸ?ÿýû÷o}êååôúõëcÇŽaÙ ¿«€¢èñãǧL™ÒVáÍ3 ­£u”lk:m‹={µ‰*´¢®ÝÛ:½p¢¢R>}*Û±cº¨ ü÷ßLOÏ£––Ú «º#ZÒ­0™Ì   ‰doo¿k×.ìü]zõÞ¯}‰Ù³¹q#]M4p .ðx| oÖ·ƒä„¤¶€L&ÓétA¬fëϦ¦&6›-%%ÕØØ¸eËN_ºtis!!!‚«ªªÊËËKJJ=z4mÚ´‚‚l ¡…7W"´¢¶¢d›#ßN´ms„F¢¶S‘ÐÞ½ü`ªŠna±qçÎxQž¨­½zãÆk}cþ]kD8÷^¡Ñh£FJLLüüùóõë×­¬¬FÍår…æÏËË£P(ØqUUÕºuëzP¬ä"ÆqzE+*hÚÚ«FQtûö[ææëMMƒ´´Véê®®­eô°бqúÞ’ þ;”ÎãñÈdrAAöRhôéþýûUTTôôôŽ;6{öluuu.—»wï^SSSyyyggg¬uŽþ·Ó[OOÏÛÛ»yü^ëÂ[ÌÚi]*,JVpVó@SŒ¶¢m[T$4µ­ŠZßÛv€3òº‹Õ«/;8„644ýxQl6wÕªK::«#"ýxiKßvúÀÀ@¬ý$Ha0†††‚¹Ç-€óü…"^§GQô§Ÿöhi­zÿ¾äîÝ,míÕÚÚ«±©y{XIGœ¾#ÀÔ^Gî-œ‘×-¼zU>§nÝʈˆX°h‘«HäAzžÈÈÈ</H‘—— ŠŒŒºn_Úûµ/áînƒÇãþý7ÓÁÁA€¬¬‘ˆܼùº¬¬Í5×$‹•ŸŸæÌ™Å‹‹[ ¤þ?ðùhHÈÍáÃM~þÙæ‹*)¡þòË¡K¯^ýmÒ¤A"‘éyêêêÊËË›Ï Æ°µµýôév|ìØ±„„„øøøÄÄÄÝ»wcåå-÷Aÿý÷ß‹‹‹SSSïܹ†¥ß¼yóÅ‹{öìY·nÐ}t "ÁÍÍŠÇã߸ñJQQÎÌLÃÀ€B¡Èƒo¿úXq«ë/_¾6lØÂ… Gý#åÉdÿŽ$BD‚¸î-túÿpíÚ«¬¬âíÛt"Þ»wÅ?ÿü—ËKHX5dˆH´A$ Çãñ°ãððp333GGÇ;wb t´†Ãá\¹råàÁƒÆÆÆƒ ä PRRòõõ@§ï>¬­u”• krs+mmõUUt@bâ»ÂÂjq ì0$µ—"®{ þÐh¬;nÍŸ?ÒÂBëGʹwïÃôéGLLÔããWöçéúJJJššš­÷æÊÈÈ:t(vÜ‘èØÞ»÷kŸA±c- \RÒ{KKíª*Š ‚>ݶ-NÜû0bEr€Nÿ?Jâóѵk'üH!çÏ?[°àôĉƒ._^ª¨('*m1âíí*hÁ˜LfXXØÄ‰±—‰ŽíÕ{¿öÜÜ,y<4)郕•Vu5ÃÂBK_Ÿ‚¢A@RÒû‚‚ö¶C…t :>lذ´´´°°°ôôô 6DEE7®ùï¨9Í7‘SRRZ·n]ŠíûÀ¿˜oTED>@HHHee¥››ÛíÛ·srrbccutt–-[†eÛ—ö~í3¸ºMKË70P˜™iTVÒq8EŠ‚ðð;âØw USS»ÿþĉÍÍͧOŸžššZXXxöìY¡ùù|~MM v¬ªªº{÷îÛ÷Nÿ;âMLÔçÍѵÓQݾýVXؿ۷O ñÀá`×SßL&§§§6,((ÈÖÖ688xöìÙIIIÒÒÒXooï±cÇNž½pÂk‘˃ˆyyùðððððp¡ïúùùùùù5Oyòä vÐ|”²²ò… ZœÛ|zÚî*Ü‘àê: ¨¨öñãφ†RR„!C >|(ãóNz¸mÛ4qkìõ´±Šc+µµµ>>> %%%ÅÌÌLhÄJyyyjj*“Éœ3g‰DÂV»Ã"V®]»¶xñâE‹©¨¨ôÀuõ^`›ðùè®]ÿ¸¸˜ÿô“eNg±8~~g’’ÞGFúC›‡@$gg6›“œüQ_ŸRRRga¡…Çãq8„@@P\¼ø¼¾¾AÜû,0bE\@§ׯ¿zÿ¾dëÖ_ºp.Κ3çäë×_®^ 1ÂTäÚ Œ<îu8;›€ääTª¨(|ùRcm­óùs¹—‹‰.=w5öz`ÄŠ¤Ñß¾¡½k×?ÞÞN––ެ«©axzûò¥&6v¹^wȃH80ò¸×¡¬,of¦Çã˜Ì¦’ªµµîû÷%3fØãp›Íåry'O&³XqËìõÀˆ‰¢¿ß¬'’š'uöÄÒÒºiÓÓ鬸¸ffÝ¡ tŽŽÆrrRååõ4Zã€t:ËÌLƒÏGq8TAAšFkºyóµ¸5öz`ÄŠDѯ¾¢‚vüxòÒ¥cTU:ub~~•‡Ç!iiâÍ›Ëuu•»Iéìì šòò*jjd¡R™úúÁ75qñx$"⑸5öz`ÄŠDѯçÞïßGQQvÙ²1:ëýû’9sN©]¸°ˆL–í&m¤›°³ÓçñÐÒÒ:Î24Týø±lÔ¨ÿü“Q[ÛˆÇ#?–¥§:®cýCÀˆÉ¡ÿ¶é?.¿t)eíÚ 22˜Óñöm‘—×qssÈÈ%Ðæ!Þˆ©©†‚‚4°]SÃ01Q/,¬1”Fc!PPQP¾xÎ˃ôúo›~×®ss //‡ŽŸ’žþÅÛû¤““ÉÉ“¾ÒÒý÷ֵŸqãÚÏ€¢€Å’kl”QQQ1ýŽwïÞ¹ºJÄÞÍ8bk«Ÿ•UB£5Òé,]]•w\¾¹¹Fnn% ..cëÖ_””à‚Ö¢F¬ô<ýÔ®ÒÓ “’ÞŸ;ç‡Çw´WãéÓl_ßÓS¦ >p`vÇÏê'8::Κ5«­­Y,•*]W']_/Ãå"ÒÒZVVgggpð`Ò¤Iƒ¯]K£R™T*3=½pØ0#q‹…@~”~çô(ŠîÞýϨQŒ;’ÿά%KÎy{;íÜù+|ºo ›Í}ù23ø÷ïKp8ÄÉÉÄÇÇÙÅÅÜÊJ§kû@ Ý®®2™,Ë`4Õêꪊ‹©êÔÔ0MbbÒ@”•å®_O‡Néô;§OJzŸ™Yœ˜¸º#™ß-]zÞÇgøŽÓ Í àóѬ¬â'O²?Î~õª°±‘=x°ž‹‹ù¦M?b //-nÈw@ÄÂB+#ãkYY…"Ç㪫écÆX""'G$p²²R +>>#4tÜÒÛé_NÏ磻wÿ;~üÀÁƒ¿¿xmlìë+¢æÏú ´y@QQí£GŸCïššŠcÇZùø8;8khÅ­éVVZoß~­ª¢#B"ÉÔÕ5’H2zz*……566úx<òòe>•ÚðôiΘ1â üýËé2²³Ë›ûݜׯ¿ZµêòÂ….[·zôg›¯«kÀÆÝ±¡wé1c,áÐ;¤`a¡Íåòh4^C[QQ–Fk  ™]îädœ”ôÇ¡(ù\äNÇãgΜ9sæLÑ é«àñ?Ú«ÔœžËåïÙ“èînkañÍlþý7sÍš+óæèŸ6ßÔÄMM…Cï>ÎÀÚ< øð¡„Lþæô¦¦ê/^äyxØ=ú`øpÓôôÂ;w²êêDXÿàÁƒŠŠ éÛhhüèÖ*ýÈé¯_õõkÍÅ‹‹ÛÏ–”ô~Ù² ýml¾ùÐ{ZZ‹ÅCï¾¹¹&df“É2˜Ó©EE½pp0B`l¬–‘QÄçs/>õê2V-!+AúýÅé9Þ¾}·g̰72Rk'[RÒûE‹Î.Zä<µÇ´‰ÁÐû³g9µµL ÅqãàÐ;¤_@"ÉÈËKñùü÷ïKÉdÙúúF€±±Æb³yff(Š2™,}}ʳgÙgÏ>]°`¤¸%C ]¤¿8ýåË/++ékÖLh'Ïýû-:;{¶ãæÍî=&¬çi1ô.-Mpp0^µjü¸qáÐ;¤_A&ËÖÕ5|úTjjªA¥2ØOàë×Z;;ƒÂÂjmm%33õŠŠú-[nš™iŒi&nÉHWè›N_RB ¿={¶#4Ïbq¸ãííÔγϞå.^|nêT»]»fô½NûæCïYYÅkkÝŸ¶uu5··7êÔ?HŸAIIŽJefgW  ÉåòššŠ®¤„:hοÿfNœh›[ÙÔÄ1ÂÜÏïLtô2[[}q«†@:MßtúÔÔ‚èèÔèèT;;ýµk'æäTÐh¬+¾í¿rüx²©©ú¸qùSRòæÍ‹˜0Áú¯¿f÷™UðZ½ëëS\]Í~9ÒLYY^Ü!1£¬,Ÿ]ÎbqX,.¶dSW'—–Ö ¢O£5ZZjÇÆ¾63Ó°´Ô”•%Ì™sòúõKKmq ‡@:GßtúÒRª”Íæ¾}[4wn™,ãäd¢¢"(*ªÝ¹3°gל9N€7o¾úúþíâb~èwXÓþë×¬íŽ ½+)ɹ¸˜‡†NƒqqH (9 Ñùüo[.éè(—–R}|œq8DAAšÃáYYiß»÷áÁƒ?æÍ‹ðò:~åÊÒuÄ*é}ÕéëQ`Ïé4Zã£GŸBܾ~­Ááp\./00¦¶–áê:`ö쎎Æó{ïJXB‡Þ—-ãâbnm­Ûgz) Ñ‚=ý«¨(Ô×7 ö¡VW'WVÒ¤õõ)ååõúú99©ÂÂêâbjdä’%KÎÿúë‘ÈÈ%p•\H/¢¯:=•Ãùߦ¨( P­¬¤oÙrì€îÞýïÑ£ÌÌ4Ÿ×ël½C ?‰$‹Ã!jj õõ Š–H&Ë–•Õ,-µ>}*:Ô ´´NYYþþýþþ£Oœ˜·`ÁiŸS \\ÌÅ*é(}Óé¿~­m‘ˆ¢(øÍvEçóQ:¥¦¦ %Õ;îCë¡w==•Q£ü4b„Ö@@ „@À‰99©¢"ª`抢¢ÌçÏØ*:IIï½½öî½=j”Å“'Ùþþ£edˆçÎ-Z¹2ÊÇçÔŸÎÀF! §w8\g)+«oˆÃ!( äzŸÞ»÷~Ö¬.,ê™õaêêöï¿3k–£•UGçõÀ¡w¤;Àã"R_ß %õ­WDú¶^ž±±Zaaµ>Ö8`€ÆñãÉHÄKKŽŸ·k×?ÑÙÙå›7O… GB$œ>èôl6[£9x<ŽHıXÜÖù¹\~ZZ¾·÷ÉÈH…î5û{÷>¬Zu©¶–Éç£;vLo''•Ê|ú4G0ô.%Eptü6ô>p N˜9Hc2Ù€o¿)ÁzyÆÆj,G]$%E’"0™MïÞb@dÓ¦ŸMLÔ6l¸öömщ¾p¥)ˆ$Ó¾¼¼¾y«€Ç㤤ðVV:oßq¹<¡g¥¥¾}[4b„i7©¢ÓYÁÁ7bbÒ°Xýû÷?´vúCï(  ú6ô>l˜¡¬¬T7iƒ@ú'x:zYlìÇáü¯AÇãx<þ°aF›7Oµ³ë®u¯êë‚‚bÞþ¿¤oo8îàÁ¤¦&îãÇÙõ²²RŽŽÆAA“\]Í­¬´ûÞ"}ˆ‚Ç#x<‚¢¨¬,±©°‚ùé IDATIЦ—Ðh,UUå²²: ­¸¸7¿ü2d×®ßbìLEE>*Ê?>>ã?®Þ¹“uèÐliNDrèƒN_ZZG àÙl.fóW®,37׺rå¸Àæq8Š¢ææš[·ztk‡ÛÓ§Ù+VDUW3ÁÿGö @ðÏ?™ÖÖ:‹¹À¡wD, ‚­6ÇãXX"6Y‡Á`©ª*hj*–•ÕaF£5ššªÓé¬J Òm]”»»­µµÎŠQžžÇ'.[öœ¦‘ú Ó—•Õ£(ŠÇ#RRø+W–ÙÛEDmÊ›n½¤}þãô))) £G“Ñ@"U«ª²¤¥\. KE¥BY¹Š@àòùÿY#¯;@Q–‚BGäñð\.ÏÇc“í‘Ha±8}Z²dT÷ ê~bbb>}úäìì,n!I§¨¨èðáÃ’ãôrrRlMM2|[RB%“e›G訪*ÔÕ5ðx|lŸá'O>lld7äA//ûqã¬vìHX²ä¼££qpp7Îü…@ÚGÈ8ý–-[z^G†Åâ2:½‰Ng¯_¿ÅÏo™¡¡ymm•Êl›Û«qvvމ‰· ˆ¤3sæLq«ø²²RMM\%%9ìeq1µÅŽ´ŠŠr(ŠÒh”§Osllôx<þ‡¥C‡v¤|eeù}ûf.[6fûö[S¦pq1ß¶í -‘_Ò>}pFž¤!#C‘!¨ªÊ?¹¸hzyM·(de‰(ŠÊÈHH$™ÒÒº°‡€úúF}}Ji)U[[IYY>3³¨ƒNajª~þü¢ÄÄw;vÄOœ¸Á‚‘¿ÿî—Ê€ô$}pFt99i‘ˆhh(bNß¼÷súºº]].—_^^?p NVViêš4iÐÇë6ov¿z5ÍÑqûöí·ª«¢¹ ä{@§‡@ ýYY"€ËåÔÕI%%Ôeuu úú*€¯_k-,4³³»2C$â-r}ófÛÖ­¿Ü¼ùfèЭüƒí t+°÷ôS°‰uMee9¬MߨÈÿÿ€íoÉd6©ª*ÈÈ‹‹kMLÔcbÒºP׊+>~ü(x©¤„ (åʕDZ±I††…"¸Hÿ kÑ+çô%%%>>>ÉÉÉ¢*Åb;w.--­¬¬L__ßÅÅeÖ¬Yx<¾ç•@ºÜÜ\33³Öût Af̘#XtA´å EPEó•Èd²‹‹ËáÇŒŒº¬ÉdnݺõîÝ»ùùùÓ¦Mûã?„ïÿö{àªÅ‹œœ€FkÈË˼{W ÓY‡‰ø¦&.‚ ššŠ´!C h´Æª*ºš©Su>|ØÉÉIOOOB¡ðŒ«Øl¼ŒŒ²/ Ò‡érôŠÄ9½hihhX¶l™²²²¿¿¿¶¶vAAÁéÓ§_½zµoß>l%¬”••-]º4..   0{öì— ètVbâ»×¯ CC§IIõñHb¹víZttô¬Y³ÄRûóçÏŒŒP­¨¨Ø¸q£Ï³gÏ”””Ö­[×Ù¢ètºƒƒƒ††FXX˜±±qVVVpppRRÒ½{÷„>ïæçç;88TWWºVc/kÓ××7àpˆ´4¾¬¬EQƒ…Çã°‡€Œ ±©‰PU%ÕÔ0ÌÌÔ¹¹•uzÀêÕ«½¼¼DzþE—£Wú¸‘\¸pAIIiÿþý˜¯ëêêÚÛÛ/X° 11qÊ”)­óóù|†+**.Y²¤Ç¤65qïßÿ›~÷î{‡ºtéCCÕiŽ¿¿@@ÀèÑ£555{¾v555¬^--­ˆˆ]]]¦ªªº{÷îΪ¦¦vÿþ}Ì×ÍÍÍ'L˜`mm}öìÙE‹µÎÏçókjj°ã®ÕØ‹PT”E¤²’&%ED„ÃáQ© F“¼¼´ gEJŠÀbqŠ|u5]CC‘D’ÉË«tv6«v¤teFÞ˜1c}}}ùå—K—.ݽ{wöìÙS¦L9sæ àðáÃ{öìÁr666Nœ81''ðüùs??¿ñãÇÏ™3çîÝ»Eccc}}}'OžðæÍ›1cÆj)))3f̳gÏæÎ;mڴÇs8¡‰‚ÌÍOÄŽ“’’æÍ›×¼ù.##3kÖ¬¤¤$¡EýöÛo€éÓ§·(‡Á`ìÞ½ÛÃÃÃÓÓóøñãl6»÷îÝóõõ:uê•+Wºp'/>>cÞ¼sóõK–œ»{÷=‡Ã ö—"ræÌKKK55µÝ»w_¼xÑÈÈHQQ188°bÅ ???,'ƒÁ““{óæ >>~ðàÁ222ÆÆÆ/^ðùü#GŽXZZ’H$ggçäääæÝݹ¹¹‚ÄÅÅ 0@]]}ÅŠMMMB™›Ÿ((gõêÕK–,iÝw`gg'''§¥¥%0Âö¯Àáp‚‚‚444ÔÕÕƒ‚‚8ÇÛ»w¯¹¹9‰D1bÄË—/…Þ7Ì¡¹\®@a[—Óº @dddHHH󿻼¼|PPPdd¤ÐrœœœØsFó{RWW7þ|UUU]]ÝÀÀ@l%MA¢¢¢,--UTT¿ú^‘ˆ'“ekj˜rrDTVÒèt™,#È#-M`³¹UU6[ÞØX-/¯R\š!.ÐÅ6}zzúñãÇ>|¸wïÞÑ£GŸ>}úÁƒûöí›1cƨQ£‚ƒƒy<öì™–––©©)‹ÅÚºuëòå˱´={ö¸ººÞ»wïÂ… kÖ¬±²²ÊÍÍýóO!‹ÔÞ¼yóÏ?ÿ¤Óé;wî$“ÉcÇŽmèë뫤¤ˆ"8f0µµµ¦¦¦-Ê455=þ¼Ðò;æããsãÆ§>#1ñ“É&pØ*]|>ï»çö^îÝ»—šš³hÑ"//¯ÌÌÌË—/ûûû¯ZµjƌӧO?yò$@ˆ‹‹366¶µµe2™žžžôððø÷ß.\8}úô¨¨¨íÛ·Ÿ8qÂÉÉéÍ›7óæÍk]ѱcÇjkk}||(Š··wëÄ-[¶¨©©EDD`§4?àñøsçÎÙØØœ?~þüù‚t:þ믿úøø$$$<|øÐÇÇÇÏÏOMM­ý«£P((((xõêf™!!!êêêááá‚ Y¼x± &“É`0P­¬¬üã?† ¦¢¢Rûìg@Y×€ï¤Z(! E@Š‚RíD¿e]P`ÙµàbÅvÔETPt틊 °®Xy];,ŠÀ€Št¤6ßÁ1BÀ¨Pæù59¹åÌprï=¥¦¦•{\»vmó)–-[VVVÖ·oß&ϧoß¾QQQ2Çyüø±µµuYYY“.óæÍ+++KOOçr¹“'OÖÔÔDRl]¸páÑ£GçΛ9sfHHˆ®®î7}$”ŽžžzUGWWC(ªªØ\nRóHÄ#ßM*UãÙ³w ýÂÂ*e)Œñ|g”]`` ™LöòòLž<™L&{{{ØlvïÞ½ Bvv6àÖ­[^^^ …B†y<žŠŠŠ··÷åË—I$ÒùóçgÍš5dÈ===™{‰³gÏ611±³³ ¹yófKBuuut7^úZ&I>%Å•9~D"Ñ;wæÏŸO£Ñ,--§M›†¶üå—_444ÆŒ@·ý[‡Á`EF¦ôë·ö÷ß.]Êâr€‘%]žˆˆMMMÄ6/_¾\SSsÚ´i&“9hÐ "‘øï¿ÿNž< A@ H$GUUuÚ´iL&SMMmçΛ7oöõõ¥ÑhãÆÛ°aCó‰ââ⬭­=<<6lؘ˜Ø’PKK ýÔI_#X[[ÇÄÄ,X°àÇÏEMH$ÒóçÏwîÜI£Ñ諸ºº¯Þàðáûwï655íÓ§Ollljjj||¼ôHÿÒíÛ·¯¦¦&…B±³³«®®>uê”<÷Ø|Š–þ8N,·ò¬š  OŸ>½cÇKKË>}úDEE¡-çΫ­­üðmò[¤S ££ÁfóõôÈ\n‘ˆ¯¨`³Ù|ÄÙÖÑÓÓ¨®æLLtšÇãa`td¾sMO&“ˆû®ô5‡Ã 2äßÿµ´´ÌÌÌ\²d @SSó¯¿þ:wîÜáÇmll&OžìááQZZ*½à¶´´l>‘‰IcÈ=zTVV¶"lކ††®®nAA‹‹‹´¼  ÀÆÆFþ¡˜L¦D"16nL“I§ÓÑ–T*UúÞ¿ ™ÜgçÎ\ô%²+ØʰaUU#WצK@™ {D"±É5Çûùù%'';::Þºu )™£££“––¶}ûöµk×:;;¯X±bìØ± Cz‘êèèØ|"kkkäÂÖÖ¶¸¸¸aëÌ›7/999$$d÷î݈DEE%//oæÌ™§_¿~rÞ ¨¨ˆFûœUKKK ´t#ùùùÍ÷¢¾zͧÐÖÖ622ÊÊÊB6ÃP²²²Ð/…<¥¼¼\,÷ìÙx2mee…¶D¾ÒwÚ¹ÐÖVƒaØÀ€ÂdÖëéi –^zMÃ9Á PÔêêê4švólz…ǧ ×ªªªÎÎÎ{öìi¾{ôM ž:uJ¦+ôÙ³gýýý• Ò¢WÚÄ#oøðáÑÑÑæææ}úôA66$ɺuëD"ÑíÛ·W®\yáÂ*•úöí[ôßGQQQó¡Š‹‹‘_>|ÐÓÓkE(“Ñ£G;v¬_¿~èQ=ŸÏ?uêÔ„ äJGG‡Ã•––š™™JJJ¾ü¸ËŸÿ60pjnný‡Õ$¡¡¡5Kí÷þ½íÏŽ[2Ž¿¿PP½½ýàÁƒ‘_`<O"‘œ={V œ:uÊÇǧ¢¢‚N§?þÜÉ©±8Xnnnó¡òóóûôéÈËËC¢É¶‡;|øpŸ>}öïßHx<^@@À™3g|||>,çÝQ©Ô´´4Ä~×ÖÖ–••ùùù}õFZ¡ùí4Ÿ5bÄô¨žË寯Æ.X° ¥qšchhˆÇã †½½=àíÛ·t:}DߤvGƒB!èt¢¢*JU»®®­h@ã54H|¾P$’ÐéÚL&Wž:7]$B€œ~¾~ýúÇ«?¾´´PXX8pà@äÃpûD‚H‡Ÿ€®½Ò&–ÞÑÑQ,=zõ]‡ (""bÕªUNNNB¡@ H¤±cÇþý÷ßêêêvvvè?SivïÞ½dÉ6›àééÙ’ËåþïÿC6í¥¯ÿý÷Y³f-^¼xòäÉH”Ý¡C‡¨Têøñã+**ZŸÇã©©}þª„#FìܹqD:xð`“’üH$õÞÞ&‡äå•]¾œuútÆÇ5^æîýÈ‘vÂ÷þøñ…Œ3dÈ‘H%íææå啘˜8lØ0@@$ÉdòôéÓ#""´´´<<<²²²–/_Þ|¨ ìß¿ŸÉd"!j- ëêêΞ=‹lÚK_Kcaa‡¸jŠŠ ÇûóÏ?l6[ž»óóó[±bE\\\]]Ýüáææ6kÖ,éY³fÍ7=®æ·Ó|Š]»v­Y³ÆÝÝ}Ô¨QË—/ïÙ³'òŠN§Ïž=9•ù¬8ކÆçÄìD"1000,,ìÀ\.wõêÕˆëC@E…AÀÄD·¦†Û§Ie%»¼œåînѼ%’E§¾^`l¬(-­³´Ôoou;h„ˆ‘‘ÑæÍ› +++ ~pX555äß/‡ÃŸœCÚ'D:üt•è•6ù=ŽÃá†Z__?tèPD¢¢¢²bÅŠ}ûöMœ8ñìÙ³k×®UQQ ôõõݳgÏ”)SŽ;Ú|¨Ñ£G/Y²dùòåîîîè?—æÂÚÚÚ¸¸8ä]ék2™¼ÿþ^½zÅÇLJ„„:thÔ¨Qqqqèfc“¡ŒŒŒúô郮øQ,X@¥R‘Ínnn?þoÎÆÆhÉȴ´e¡¡Ã‘rDbzldŸÅb¡Ï_UUõèѣ˖-£ÓéÛ¶mKJJRUU Ÿ7oÞ¢E‹¬­­£¢¢dº|=zܸqÞÞÞ+V¬hIXYY‰úÁI_7!44ým§­­½uëÖ   [[[ssóI“&!*_%::ZSS³_¿~#GŽtrrŠ;wnDDDxx¸••UTTÔÉ“'¿åiɸæS(Jff¦««kDDDß¾}###'MštóæM‰$sssóÁƒKŸ ìÞ½ÛØØØÍÍÍËËËËË }ª†ahj’jj¸TªfE«¼œe` %ÝY§ª««¸\¾±±6 ¤DñGõ+>E"‘¨¢¢¢¥ÕøÜd†4Z‘3ü¤ùìßêdÅȼ;éðÐU¢W é#$*_!YáÊÊÊV¯^-—&9éd¦¨S`Þ:¥¤À1bDRRRóìB¡8-íUròÓë×s„B‡‰Ä®êkzävRµvÕªUEEE'Nœ¿K““0™cç´L!(êvÚÿ± ÿa:ÔbΜã.<ݼ9`éÒ3ü1üáÃü7oʶoŸìëëŒ4ptŒ\´ÈkÚ´!¯^•ŒµåßWôì©ß³ç²M›&ºË?A2¿ûMÚLš4iß¾}hGBBÁQUU•››ëççWVVF Nœ8±iÓ¦/^Ô××ëéé¡ñ)¡¡¡µµµ'NœˆŒŒDÃ:BCC‹‹‹óóó‘?7òw÷òòÚ½{7s1eÊ”   æÂµk×¶´ïAPVVröÊb±6lØÀãñ@kÀæÍ›ÓÓÓÿúë/ļyyy­\¹’J¥N™2%** Z©¨¨HLLŒ‰‰‘?)))ié»,ý²õ¥§§×\M›6M™2¥¬¬lÿþýHüÈĉ‘»FÆDÇ—ž¨¶¶VGG§²²=±Exøð¡ŸŸßýû÷[z’MÆ4Ÿ}íÚµH:Î Ñ+ÕÕÕ­G¯|÷7Hñkz@PZZzíÚµŸ~úIáƒwUˆD¼—WïøøßrrÖïÜ4t¨–©®ÑMàóù ãСC--¬10Ú.·‚@M  ¢‚¯®æ …b ڀϪªÁ§Âw\nAȉ~[èÓ‰âSMMM:~ìØ±ˆˆô­æa 2ƒVZ ?ù‘%SVâG¾ƒN½¢xKÿêÕ«ÐÐбcÇþ ¦ººº}úðáÃd …ÒüH¦°ó¢¨Ûébåû(+«£PÈUU,‘ˆ¯­­~aéÏ;‰>ÅËèè™Ìú¶ÐGžø”ªªª[·n!gˆH|ÊãÇMLL† vïÞ=×>ñ)ùùù0 Ã0ÌårCCC§OŸŽ¾…„@A§§gaa!´âíííââräȤه¾ªgKÈê"­@+ñ#2ÊhôJy§‹^Q¼¥wrrºté’LW…Ö¡ÓéÒ{éÚÚÚ‹/nÒF¦ðûPàP?ΰaÃjjjd.>ZÇÊÊJú+j``ߤLaçEQ·ÓÅË÷QRRK§køÀ@Äã èš^$’ˆDdMDH$0@[›Œü&hgüýýSRRΜ9Ó<>¥¦¦fÆŒ>>>555H| Ú«¥øä¢I|JsáW!“ÉS§NÍÍÍE¿‰T*ýÀd2?~Œ­DDD<}útïÞ½H3ssó¯êù}4WAHLjD"ÀÇe…D¯ +xð)zuБ硵2{ûD¯tî Œï†ÏÖÔp{ö4(,¬$pˆó”ªª š —Ï>Yz K€ò,=ŸŒHø”óçϳX¬&ñ)/^,++KMMm)>¥   ##£I|Ja]]]BBò®ôu( ›ÍF¼åÁ§0wïÞegg{{{ïÙ³G:hÉ®Èf³gTÏo ?i…æ  ñ#………999Hüˆ¶¶6àØ±c,«I8ô^Ö¬YSQQ1jÔ¨ÔÔÔüüü””$z¥•'‰vG9»¢nV0KÑM))©…aØÅÅÅÄÄ„B¡ ÑeÍÃ@d­ü`øI+ÈŒCi?B¥R£££—,YâììŒ&½n~Ò5¢WÚÊ÷C&-ùÞwjè{ѵéh¾÷÷ïçü}÷îòaÃb´µÕgκeË5GGÓÔÔÆs½×¯KGŽÜ|÷îrkkúºz;»U§OÏ:´×æÍ×nÜȹu+¢õñ¥‘Ç÷^°ø”ŽC'Š^éÖÜÊ¢¡ATQÁ*+«C‚wËËYååuZZä?ÿüEÙªa`t#Š‹™jj*VVææÔÚZ²{¯«ûÙ–Åâ”yôùœžBQ««ãµ³¶|>¿¤¤äСC2ë ``´‚ KåÊ•ö×CÀ0€a ÓË¡¾VU…Ú-}§HJJ`æñ8``0mÙ²ô… ! p8ÇI$@,Óé:×Ò3 ™)10¤ÉÌÌT¶ _ðñ#ÓØX‚ ~ýzܼù’Ïàp¦& m€˜s$Þ†%àÓi½¦&‰ÃQLjHùyò䉯¯ïìÙ³±ø”B'zh_Xz:ŽÇã·nULseA&;ih¸ÕÔœ‰š&±22šÃ/·¾>W$jóº[ªª–::?áñZ HùùÆ3?¤L-€4Ⱥ­õi#LMMÏž=ÛY>ñÊ¥GÊVá3?ÖÒé:ž—.e±X<‰¨ª~ÎfÏbñTTˆGž@ ŸY’HD>_ÐÎÚ"ñ)ßѱƧ´è¡}±¼4hH$‚;9îÃã5zõšóæMi“·æÎõÆáT55]õõ3fë‰Øl~ÛiÂã½MI™ß£‡@@Lû'šf””H$~¥vY‡eëÖ­m÷ 1ºïÞ½Söö3?2Kïéi/K^¿.Fâæ*+9Tjcþ¡P PQÁH$‚@ †±SmŒNBô½71Ñ0™õãÇï|õªTú­ðpo4'Æ‹ÅË–±·_5sæ‘›7sE"I[(ãáaù¿ÿ- lÔ·ÔL"eÕÀÀÀh;Ý{¦­©©úî]5€@øœá¼¼¼ŽFkÌåŽäÌ!ñUU" Ã­×¢Äø*­$Òï€Ãvjº ¥ïÑCÃ0‡Óàã³=3óóBU•øçŸ¾È/q†ÅbX$_¿žóûï ýú­Ý°áJQQ•ÂõQU%®ZõÓõëKllŒC¾æ¨¨FÞ2~üÎ ®Ü»—‡Dñb``´0 üÈ41ÑA^ÒhÚÕÕXt„²²:CÃFK,PKhhÀ¾§?DÇ)êÚåé‚–žFÓFs\44ýý÷<|X€¾ëããäâb.]5©[]͉¿3xðÆ_ýûŸ²¾Äwp _¿¾dÅŠÿ#ðM÷x<ÎÃÃrþüÑŠêñãÿvpXíï¿'..õßßp¹ííøƒÑ¨®æ64ˆètm䥙™ž@ RS#r8|´My9 µôB!²¦GÎé àS^Œï¦ãuíòtAKO$â‘"°±DAAûîßoLXAЦM¥S¢ˆÅ°Dß¿Ÿr81ñ‘Â#psçŽú÷ßåÎÎfM÷ãÆ9.Xàyüø¯_ozôhuLÌD ý+WžOš´ÏÚzù€Ñaa'½yS¦p­00º'?2È9=ÀÜœŠÃA„c³?[ú²²:#£Æó¾úz€LFrà|~÷Ú½¯¬¬¬¯ÿ"_PK5mecm^]íÃp||¼½½=…B9rä•+W¹Ìqšg;x IDATW¤ýjõÛæšw7ºf<½©©neec¥)‰ ÅS¦ì?~|æ!6zpðÀ“'#.6M p¦¦z~~.m¤›¹9õüùyû÷ÿoóæk0 …b±Xâîn‰603Ó33Óó÷wTUqž={—ž^˜žÎ¸t)K RÜÝ-ÝÜ,ÜÝ-z÷6ié8£u>~dBdlÜhéÕÕIlöç]4éÝ{䀆†*øk×}<ò222öìÙóÏ?ÿ<þœL&½.\xôèRŒ5$$„D"ùûû£Õu§OŸîçç‡6>xð`ttôÁƒ]\\²²²ÐD³ÍÇÑÕÕý믿 ÿûï?¤"íš5k ââ⤫ß6QæùóçAAA¿ÿþûìÙ³-,º£GT\Ó,-õ¥wÈ%X$í¿y³±‚ÂÊ•?ijª6÷Ú pŠÚ¹ssÐÄ×m€›3gäÿþ·ÌÅÅ  ¡¡Ú«—‘Ì–Tª†§§ÃªU?]¼öêÕ† 懄 åó…[·^÷öÞfk»"0ðï­[SïÝË܃00¾‰™Tªêi¯¢‚—Hà†Qe% ‘ÔÕÕóùBÔ#ÍæC¤¡AŸòçty·/>ŸüøqÐÐÐ2ŒæI^[¢I1V™ÕuÑÆ;vìØ¼yó˜1c¨TêèÑ££¢¢ZȪHûÕê·£G~öì™L:tèÏ?ÿ|ãÆ ‰¤M\°;,]ÓÒ›šê_ܹ>}ú¡ë×sššª«W7-Y‹ÃA8.1ñôW|›‚,î·n \¶l¬-mÙš5ã )IIé[[/óöÞ™rùr–Rjo``t.JJjÑ­{'€a ££^UÕX›¤¬Œ¤*Ør8|uuéÕ|×ÞQ»uë–™™ÙíÛ·wíÚ•™™ùÇhhh´Ò¾ÉG“b¬2«ë¢ß¾}Û»woô¥½½}KãYiå©~kll¼nÝ:ƒ¼~ýz;;»>È÷$º]s÷žN×AJNI#‘’ÌœyøÈ‘‘#íݽŸ“S‚¶„aX,–ää|tt4m=!š4©ÿwtÄãq½zõêe4eÊ@yy]zzazzaFFá¡C÷ XYº»[¸¹YôïßÓÔTWÑŠc`tzÐ`z„ÚZ`À«kמ³Ù|MMÕ²²:€‘Q£Ë›Ý ©Ù¸ íkz}}}{{û‡:99Y[[ëèè´ÔR$„&U_›cE«ë ‚S§NùøøTTT ïš™™åææ¢úÕ«W- R©iiiVVV€ÚÚÚ²²2??¿çÏŸ;99! Z©~[^^ž››[\\Ü¿éM….O—]ÓËtž‡a ÃkÖ¤ Š @¾±ÈËðð±›6M\¾üì¼y‰Ë«ÖÐPËǧïúõ¾©©‹_¿ÞxêÔ,§wïª#"Îxx¬ï×omhèÑ„„³³?tŸ“E ŒÖ)-­EwæL&‚ ¡Cm€‡Ü²²:2ùs[‡µ _£®½¦wrrJKKKNN~óæMHHHódÆ­T}m‚Ìêºè»sçÎ]ºté7ª««ïܹ³nݺV~E5¯HûÕê·‰äÆ¾¾¾ýû÷‡aøÁƒ§N¢R©ßüP:-]sMÆÈJ£¢‚‡ Üo¿ œ3g$"qt40ÁåâÅg€1cz/\è A©©î¬YÇüý÷<8ÝÀ@³]õVššªC†Ø ¾‡B¡øÕ«’{÷òÒÓ ·m»^[[¯©©Ú·o¡CmÜÜ,úöí¡¢Ò5?_¥´´nìØÏ–¾¢‚ Ã0R»öðá{3g+-­52’þ)P¯­Ýhœø]zIßHïÞ½ãããcbb>xûöm333ô]´êëÆ·mÛ–’’ÒÒ8huÝ>XZZ"ÕuÑwçÌ™#‰æÌ™SUU5`À€Í›7‡„„´4Tttô‚ úõë‡Ãá&L˜K"‘Axxxii©££ãÉ“'û÷ÿb¯4%%%..nþüùIII***-Ü…ºä"O(››G ·†Çãüܹ#BB†¡ßU„Š öÀÑVV.„!Ù0EEUÓ¦¬«ã<8½_¿”¦ûG ÅÙÙÒÓ Ÿ::úÙ³gŠ_(JŸôw^°ªµ_@$âutÔkj8D"Çùú:Ÿ9“ammÔÄÌ 4ÿùg‘5óssê•+ ÃÂNøùíŠ pk_õÛ"ïâbîâb>{ö† *22 ÓÓIIé11W œƒÝÕÕÂÕÕÜÍÍIŠÑUa2ë…B1+/ISyÄŠy{÷Þ¶í:‰Dpsû‘U]ͱ°ÐG®‘Ó=éÝ×üÔ\!dgg¯X±âèÑ£¶¶¶ÙÙÙ‘‘‘sçÎUàø]ÃÌÿ]ÓÒ,-õy¼†a¡¡ÃuuÕ€6n¼2vlŸæûÕ662"ÜÔÕI Óöî½³xñ©/Š×­ßJÖúNAÖÖ†ÖÖ†“'÷p¹ ¹¹32 ÓÓ ÏŸÿÝäww·pw·tu5WSÖû]ŠŠ ÀÀ ÑÒçç—#Ù5ðx<`þüÑ>>;|@€;Ú¥ªŠƒ~O “IC,]º´¾¾þ—_~©¬¬´´´œ>}:VS±tYKàÀTUU‚–Vã"~éRï ž?þpÆŒ¡rŽAÐܹ£ (K—žùø‘¹}ûä6 ²W"êê$wwKww˹sX,)(¨ÈÎþ‘QxùòómÛnàñ¥¥âÉïáaÙ£‡ž²õÅÀøQKÿ|ù‘@À‰D"04¤øù¹$%¥÷èñÙ㧺šƒ&ßäñÉñã„èèèèèhe+Òeé²–‚ýôRkêÔAýu# Àu •7kkÃÃcÇnKH˜fg'oâˆN ¿‡$髬dge½GøÏûÏRMÃùôatR**Ø$BiŒ³zõªÔÄD·¨¨ ÙºkhÛ'))ý¿ÿÞ nH`&“+mé±.ŒND×Ù‘þ*aa£%xÿþÿ}kǾ}{¤¥-³µ5;v[[äÃïÈèëkzz:,Yâ”4;//&5uñܹ£´´ÔŽ}ðË/»ììV¿I×SSÃU¶²ò"½@äæ~´²2ŸçDLf=‘ˆ?rä>òÁ®¬d‹DtýÀã ÕÔºûÑ/F'¢-È´´È³gعóÖo¿ Ò×ÿ¶ð9MMUäØ~ùò³ééŒØXÿnø‹ž@À9:š"i…`ÎÏ/ÏÌ,JO/¼{÷õ¡C÷p8ÈÎŽææfáâbîæf¥ëÁèÈ0™\uôåË—%~~.·n½DÎéD……•––<ž`íÚ »v•”ÔPOUlMѹèF–0sæ°#GìØq3:Úïë­¿9¶·³3ž7/qüøL33ë¾'ÖÙØÙØ!9þêë99ňOß… ϘL®†ÉÎÎØÝÝÙçoõ€¡Djkëut?“••ìÊJ¶µõkz£ÒÚÚà×_=¦LÙàÆbñ ¢Ñ-}}½‹JÅèDt/K¯ªJ\°À3229$d¨¹ù÷$H9ÒîæÍð™3Œ»m÷î)#GÚ)\ÉΙ¬‚úô‰D’ÜÜ™™E™™E—.=Û³ç6‘ˆïÝ›ŽÄø¹ºšK§ ÅÀP Lf=º¦ù²`kk ÀãK/|û¶ÒÓÓ~äH»qã—/?0gÎÈ+þ¯k'ÅüVœ““©““éôéCNÃË—!|çÎ}‡xö¡ñí“YoiÙø[?7÷£&rlAˆGžðÝ»*$z~ݺ_†¹z5K:ÉDM ÷[·©/^Ü­Jª`´:::žžžßѱÛYzî=gÎñY³FôîMÿ¾AH$ÂÖ­66F7^~û¶bûöI¨/F44Z áÃá ž= MÜÝ-ÝÜ,ll »vÕŒ“ÉÕÖnLùêU©½=Y¯#™aŠ‹™õõ[[ÀÄDgݺ_–-;ãêj‰v¯­­ÿÖ­©­[·*L{ Œo¤ÛYz€Oß½{Óbb®&&þñ݃@4kÖp''Ó9sŽyymÝ·ïw'§vª€×yiÂÇfó³²Þ§§3²³‹7l¸RWWO¡¨:95.÷=<,±ßOm›ÍG?]/_~1ÂîSj,‡ƒŒ ׫WcN­)SÄÆþ““ó¡¼¼IËdÖ;8|ç:£ý鎖‚ •+ÿï×_ãïßÏ<ØúG†0 ç;K,8éã³}ÁÏE‹Æ`;ùò#]Œ[îc´'õõ ˆó¼@ *(¨˜;w€ˆD"_TTma¡/ìV,†55UçÎMLJšÇã¤ú00:>ÝÑÒ†íÕ¿Ï-[®ý ¥èè¨=rðà½õë/egïØ1ó3ÿå¾·÷€¢¢"¯©¢Bc±h¹¹´³gõ€ËËÿ†a±²Õ즨¨¨Ü¹sgРAÊVDa ÎóH\{{cÄÒ‹Åb‰øþ}½½1Ú˜ÅâÕÖr£¢|ׯ¿´wïùóG×Ö~ó9=†首°zµÏŽ+Wžÿô“ÓAPHÈPóY³ŽzzÆÅÇÿæâb®»EEE‹-0`€´P$‚+*xÆÆ§”¥F@@ÀÇ•­…€a˜Ï"kú—/KH$‚••!R´F$’H„ÒÒZ__g´ý»wÕ€‘#íˆDüªUçÍÍ©lvƒ®®FKãc`t4º¯¥wv6ó÷w]»ö¨Qv I‚ѯ_kׇ…ðõݵlÙ¸9sFb»ÍßAÿþýýýý•­FW†ÏJ$0’äîåËkkC÷iM/!ñ••lé5=’%×ÔT÷÷ß3çÏO„aXºt=F§eÃmΊÿWWWàÀ¿ŠPWWýøñ™k֌߼ùÚŒ‡Y,ž¢FÆÀÀPH%:ä÷}nn â[‡xä‰D±Xppøléß¿¯62ÒBœóW®ü?K€P(R†îßC·¶ô††Z³gܵëVy9KQc";ùGŽ„¤§3~þyç«W¥ŠC! õÈšþõë$šÝ Åêê$ÄÇ¡  ÂÒ²±2=AîV¬8ÇfóÛ[u Œï¢[[zÀܹ#µµÉ[·¦*vØ#loÞ ×Ñ!·íàÁaVìøßD */gUUqzäK A@ 5©‹ñúu©t˺:žŽŽz]/(h?‡Óоºc`|ÝÝÒ«ª—.{êÔ“W¯J;2¦œÆ’“S èÓÇ|¶ôP(60ølé%8/¯­”—³h4í‹ÃÊËëüüvÕÖÖ·»âßFw·ô€ \mmi6\QøÈÈNþåË JKëFŒˆ½pá©Â§ÀP, ô£äp8ááájjjÖÖÖk×®åó[Üïm25—ˈˆprrÒÔÔtssÛ¸q£H$×Á°bo¡kóòe‰±±6/‡ì»Á0,ˆôõ)h›jx=þüû÷ïg6›O£-ts‹²³[µmÛu´ñèÑ[Ö¯¿„¾,,¬¤Ñ>{ö®É˜L&××w—­íÊG Úá00¾ ÌÒ¦¡A8pà†ÐÐ#í0׃ùÎÎëìíW]¼ø´¦ë,ÈiéŸ>} ð@ hrŸŸ/‰ŒŒŒnß¾ Ãð¸qãbbb`®©©!‰qqqL&S"‘°Ùl±XìààpäÈç¿õÑ£G›[úììläݤ¤$+++™ÂÖµ‰D?ŽŠŠêÝ»7?qâDKú|ÕÒ?zôˆJ¥¶¢"A¯ÏÉÉAäÉÉɈ¶€´´4é‡Öú-À]ÎÒs8|máªUç­­—‰ÅDÈbñh´…ÆÆ‹œ×nÝšŠE"±¹yø™3éhßÿ}C£-¬®æ4–Ëmøý÷KË¥©©/Úá.00äÛ½ÿŒŠ !2ÒçÒ¥¬ Úz®­îß_áçç2{öñ)Sö—•ÕµõŒ] MMM‘Hlr Àãñ~~~ÉÉÉUUU·nÝ èè褥¥=~üØÄÄdذa÷îÝÃáp £oß¾è˜ŽŽŽÍ'²¶n,€dkk[\\ÜŠ°9\.÷ôéÓÈÈÈììì•+W.]º´%}ÐŽÚÚÚFFFYYYMÌÊÊrqq‘_‡òòr±XܳgO䥕•ÚÒØØXú¡u7Èd¤4­1Z|õ½WU%¢ù/Þ½«nhIïÞ¿_­¡AÒÕU—9ìÁƒÓ&Oî?}ú¡¯ˆDØñFG³ô_àíÝgÄÛÕ«Ï …m^6MMMeýzßS§B_¿.><öܹÿÚzÆn‚¿¿JJÊ™3gŒìÉóx<‰DröìÙššš3føøøÔÔÔÐéôçÏŸ£½rseD^ ëc@^^b[6†áÉ“'¿xñy AИ1cH9™úH÷ ŠŠŠ’ö´çr¹±±±ÞÞÞòë`hhˆÇã òòíÛ·tz£÷™ô‹nAjj*EEÕÒ)oaXÐÑQ'>ŸÓ¿~]ŠÇ㬭 Qɇ5¦¦º-ŒÇãÖ¯÷=|xúñã||¶¿_Ý6w€ñmtë/¼LV¯þùíÛŠ'·ÏtC‡öJK[öóÏ}ÃÂN„†­©á¶Ï¼]˜!C†ˆD¢¨¨¨àà`DA——×ùóçY,–@ ‰d2yúôé/^,++KMM]¾|yó¡,XPPP‘‘±råÊ)S¦´$¬««Cœ¤¯544~ûí·ÀÀÀ«W¯2Œ‡†‡‡Oš4©%}¤ç]³fMEEŨQ£RSSóóóSRR<<<ètúìÙ³[QŒÃùÂ÷›H$†……æää¬^½ÙáÀhhJJjííé¨YÇ[YéC@ã¢>/¯ÌÔTWºP}AA…¥¥Aëƒ{yõ¾y3‡ƒÆŽýëöí—Š×ã[QöñAGdýúKÖÖËJKkÛsÒ;w^õë·¶OŸÕ×®e·ç¼ ß9=z´ÜÒõ¬Y³ÔÔÔX¬ÏIII={öTQQ±µµ½xñ" à **ÊÂÂBCCcÀ€'OžÍÎéÌĮ̀Têüùóy<žL!ü¥œôµH$Z·n£££ššš¹¹ù²eËö2õ‘îÃ0‡ÃY²dIïÞ½Éd²ƒƒCttt}}}KŠ …ÂÁƒkhh4§¦¦&88XOOF£-Z´™½¥‡öƒ—Î…‡G¶ðéÓÏŽu55má¢E§†Ù²å"œ1ãPHÈaéŽÃ‡ÇlÚtEž)¸Ü†ùóMLGG_æó…ŠÓã›Á,½ êëÜÝ£BC¶ó¼uuõI4ÚÂ?þ8ÂdrÛyöŽ€¢,ÊÊ•+'OžüM]šÚ&/[¶3JÑ¡ëYúÖÓé‹x<*ÉÏ/§ÑîÞ}{ĈXÔÒ÷ë·vÏžÛh‘Hlfö…ƒÞW9}úI¯^+Þ˜žÎP”òß ¶{/55•?ÿüåÒ¥gí¼óF¡¨mÞ°sgÐÝ»oÆŽÝöä £=gïðù|ƒqèС™3g*[ŒŽ SW'IoËÿ÷_É…Ã0 ¼¼®¬¬ÎÑÑmS\ÌDVV†M‡k™À@÷û÷Wöë×ã—_v……À’äc(ÌÒËÆÛ»§§CÛeÍk…‰]ïß_éà@÷õÝz´ºK¼õ XXèS(ªh›·o+ 4¥%òãëëMÀÀèb¼zU ðP(a2Oͳ²> )4ˆD< Ã8†á¬¬÷NN¦Òss?WÄùnúô1INž·eKÀÝ»ož>Õ›0!@y~Z9 UËfé[ƒD"lÚ4áæÍÜ+Wž½u›Ñ§ÉåË ##>räþˆ›ïßÏW¢2¼¼2 Uš›2#£ÐÀ€ ñB¡˜@À½_S[[/méÅbÉ«W¥ÒÉv¾š<¹ÿ½{+­¬jq8øë00~ ÌÒ…¡C{MžÜùò³ÊõŒ#p!!Coߎ°° þv˱ƒñ}äå•ÛØ‰ø¼¼2D’‘Á@ëD"^$’‰ø¬¬÷®wïÏ+øÂªúzÁ¯éQ(U]]¾¢FÃÀhìœþë¬Y3þÎWQQ—v올\MzôÐ;~|æÙ³ÿEE]|ð  :ÚoìØ>ÊUIáDGG#5Ö00Úˆ¼¼²^½hNÛ7e‰ÎÈ(úí·ii¯>­éñYYï­­ÔÔTÐ^/_~$ñHFç³ô_‡BQŽö 9ìëë<|¸­r• ( Àmôhûõë/…„:Ô&*Ê·Ëxê-^¼øÃ‡ÊÖ£)¿þú«‡‡‡²µPyye#FØq¹üׯK‘—,ÏÆÆ@$D" €k›[beeÐ$6£S€}jåbÜ8Çqã—.=“–¶L]¤lu€®®ú_Mš>}Hddʈ±~~.kÖŒ§R5”­×²uëVe«€ÑÅ©­­//gÙØÖ×7 e¥22 )Um‘ˆ‰Äx<.7÷ãøñÎÒâŽ×)((°¶¶†aŸ ± ªªªÎÎÎ{öì‘.ÙÁár¹ëÖ­»qãƒÁ°µµõõõ]ºt–\D IDAT)ðuC©ØÇ¨p°szyÙ¸q"›Ý—ªlE>Ó§IJʼ¿ÿþíÑ£·ƒoܳçv;”àÃÀèÔäç—llŒzõ2zÿ¾º¾^‘QدŸ™HˆD‚P(®®æp8 ÎÎMÖô¥+â`´ÄÇKKKKKK³³³­­­;¬ýc0T*}Éf³]]]322bcc333W¬XqâÄ OOO骒-u×ÖÖ^¶lY{(ý]`–^^ 4W¯þéÀ»™™EÊÖå3ùøô½{wùÌ™CãâRGŒˆÅjga`´B^^™†‰N×¶µ¥I$p^^Yzz¡››…H$x‘Hüþ}5…¢*½‚¯¬d——³âxßåÑ××722222²¶¶Þ¼ys^^^ee¥²•’D"©®þ\Y8**J__ÿöíÛÞÞÞ666~~~éééEEE‡þjw*•ÓJ˜¥ÿ&Mêïêj±jU²H$Q¶._@&«,Yâ–¶ÌÁ| 0ðodá‚Ñ$û AffT2Yåþý¼÷ï«ÝÝ-‘ý0¼P(.,¬rv6—N¢÷òe @Ú¿= èСCvvvúúú111Ç·°°ÐÒÒŠŒŒ„……͘1iÉápÈdò³gÏ—/_vttTUUµ´´<~ü8@"‘ìÞ½ÛÎÎNSSsÀ€iiiÒ›í]¼x±W¯^aaa 2…hcéŽ25'‰***ZZZÈK¡Pahhh``! E"ÑÚµk{ô衯¯ÿÛo¿ÕÖÖ"-kkk§NJ¥RMLLÂÃÃù|>òNœ8agg§««»yófôá4Ê9QÿþýFF^–‰‰‰kÖ¬Áãñ¨þêêꉉ‰2Ÿƒtwé‡ ¿ò퇒³t6òóËÍÍÃÿú뺲i‘{÷Þ ӣǒի“Y,ž²ÕÁÀèXLš0kVc™ÊÉ“ãúi»©éb.·áêÕç4ÚB¡PL§/²³[¹mÛßñ={n÷ë·VáÊøûûûûûµ`Ò¤I,+!!Àb±öíÛ¨ªªº{÷®žžžP(„a811ÑÁÁA"‘p8‰_ZZzðàAÀápöíÛg``œœ\RRrõêUЬR³——W^^ÞãÇ­¬¬Ö­['SÃpmmíõ¤¯YYYl6›ÍfüøqΜ9Ó¦MCo$66v„ ïß¿ÏÎÎvvv^¾|ù–-[²³³_¼xááᎴ 5jÔÛ·o³³³{÷îL ˜8q"“ÉDÂsª««[Ê9‘teH&“ ¨¬¬lòð{öìVÚáÇ•ou Ð Þß¿ÿz‡¯lEäåúõ£Go16^4sæáׯK•­F{sêÔckëeèËmÛ®ÛÙ­trŠ‹% w# +i´…[·¦J÷Ú»÷Ž“Sd[è#ÿ9=ºBmézÖ¬Yjjj, í•””Ô³gO[[Û‹/Â0,¢¢¢,,,444 €TDmrNŸ`ffF¥RçÏŸÏãñd á/O¸¥¯Á—'Ðb±˜B¡"/Y,Ö´iÓtttôôôþøã.—ËçóÃÃõ´´&MšÄd2‘–555ÁÁÁzzz4mÑ¢EȤ2ï]¦PΉ„BáàÁƒ544P…9Î’%Kz÷îM&“¢££ëëë[z8ÒÝ¥‚üÊ·‚bÏé!¸£æ4èø”—³FŒˆ8Ñ5*ªé‘OG&=±e˵ † ±‰ŒüYYCíOLÌÕ›7_Þ¾¼œÔªU«ŠŠŠNœ8!—&iÝdfyëà©ßÚö üll÷þG04¤¬[÷ËáÃ÷32 •­Ë7àînyæÌœ£GCX,Þ¸qÛæÌ9ž“óQÙJa`´Òîx üôé»áÃm{õ2ºzõ9rNŸ™ù@¥jJ÷ÊÌ,ru5omå„Ïç3ŒC‡Íœ9SÙº`tP0KÿC ÅfæÏ?Áfw¦ê“yz:üóϢÇg”–ÖzyÅýúkü½{˜¿F§¤¤ÖÄD¹~õª„ÅâyxXþôSß«WŸóù"Bvö{ðùcq1³¼œåâb®…åáÉ“'®®®Ó§O>|øŒC¡PBCCåvC:ûsÀ,ý²cÇd±X²xñie+òÍ@4j”}JÊü[·" 4ƒ‚ö ¸!!áß=ˆñƒ”–Ö5ækKOghk“{õ2òñqª¨`U‘H„/ŠÂç,iÿýWH$â›ÔµëP 6¬¦¦F¦3yë qÞñññMÚÈvC:ûsÀ,ýB¡¨íÚ”šú"))]Ùº|'ööÆ;wݺáîn±~ý¥aÃb¾Çå6([/ E"‘Àåå,My™ž^èêjA‘Ñ›7eB¡ù™+½¦ÿï¿"{{cUU%Ä@c`( ÌÒ+€þý{††_µê<ƒÑA 9ȃÑöí“=Z=fLï¯:;¯[½:ùíÛ eë…¡ª«9B¡]Ó?yÂps³@®Çs,*ªª¯ ï’HŸ«”ffuä­ûÎB+¹ñÛ¡;féòeãllŒæÎ=ÞÙëÆkÿùç/99ÑÑÑ~Ož0† Ùäí½íìÙŒÎ~_eeuM P\Ì,+«C-½ŸŸK}½€Éä"ÕêTUÓæðx‚—/K:²;†<`–^1‰ø;&çå•ÿõ× eë¢H$‚¿¿Û͛ᩩ‹M–.=ãæöç† WJJj•­ÆwRZZ @Víéé éÓw++*UƒËmèÕË€îÕ?þA(ckzŒÎf醵µadäÏ;wÞ|ð @Ùº( GGÓÍ›îÝ[à~úô“Aƒ6Ì›—øàA_‹Ñé(-­ÓÖ&#V<#£ÐÑÑTúôBQ…a˜B!ÔÔå™™E††SS]¥(Üy©¬¬¬¯¯o.?qâDÏž=õõõgÏž4YàU¦PþY0šƒYzEòûï‡í~ºsÝ}•+ÊÌ\XVV°wР;vÜD¶C10:eeuÈÖ= =áîn!ý®@ Âá 'Ox<ŽHlô½ÿï¿¢&¥n0Z'##cêÔ©uu2þ9:t(55õÊ•+·nÝZ¿~=`Þ¼yÅÅÅééé×®]»~ýzlllKÂæ<þÜÂÂbéÒ¥……)£‰RÀ,½" 诿&q8 ŠIlÔ¡PQ!L˜àzîÜܧO×õOJJwqùsüø‰‰x<²µÃÀø UU$%‹Å{ó¦ =¤G`2ë©TÍG ‚7˜;žœðùüãÇ{xx„††8Á`Ðh´æÍ¶oßnmmíáá±aƤ¤$¡Pxúôé;vXZZöéÓ'***11Q¦P椣G~öì™L:tèÏ?ÿ|ãÆ ‰DÒÆ7ÚYÁ,½‚14¤ìß?õêÕç ÿ*[—¶ÂÐPkîÜQ÷î­8z4D__sÕªóýûG¯[wáùóÊV £EX,ž¶6‘QÃÀÝÝRê->—ÛЧ‰X £.ÞïÞUWUq0KÿUnݺeffvûöí]»veffþñÇ2[JW}---•Yൕª¯Í166^·nƒÁ^¿~½Ý‡Ø!`–^ñ ÐsÉ’1ë×_ÊÌ,R¶.m=Ú>!aZfæº9sFÞ¿Ÿ?vì¶Áƒ7nÝšÚ©£ 1º*µµõŠ #£ÐÒR_WW}ëÉ“·[[š±@ ‰$€òÕÔT°Ýû¯¢¯¯oooÿðáÃÔÖ¶æ´+]õÕÌÌLf×Vª¾¶Dyyynnnqq±³³³ššÚßP³ômBX˜ç AÖ³fc2¹Ê֥͡R5BC‡ßº‘‘±fÒ$ ž ¼qøðØ­[S 1“ÑQ`±xZZj€ôôÂ&[÷‰xò€–"‘äԩLjÐÅÅ=³Çh ''§´´´äää7oÞØØØ„„„dffÊl¹dÉ´êëÔ©Sex•¿ê«D"¹qㆯ¯oÿþýa~ðàÁ©S§¨Tj[Þkg…ðõ&ßíÚäé·pá©#GftØœïß¿Ÿ;wnK®­ß‰ÌÍÉ••ÌíÛK¶m»nfV¤®Îùz7 ¹ 8qâ·öª«ãQ(jB¡8+ë}@€›ô[÷ïçãñ855"‰DÐÑQß¶íÆÄ‰®äÿþû ÅiÝÅéÝ»w|||LLÌáÇoß¾mfÖt;dÆŒžžžõõõÁÁÁ‹/ìÞ½{Á‚nnn***¿þúëŠ+d en৤¤ÄÅÅÍŸ??))IEE¥î±ó‚Yú¶BOOãÀi~~»ø÷?†)[Ù<~üøÊ•+þþþŠVW˜˜ÔÃ0¯¦FU[[×QìøÝ™G9sæ»-}vö>_(}H_SÃ}õªDE… ªJä󅦦:ùùÛ·ß(/g h¥PÝ»>ÚÚÚ‹-Z°`Aç84Ç~`` ´\GGçØ±cMi.l’¢á矞0a‚ÂTïÒ`–¾ qq1‹ˆ»aÃegç®®_ï $U£@êv+0 ³Ù<--µ'OTª†…Åç=ÞÇßB$ŠUUUø|¡††ê´iƒº§¦¦Ò¯vHÿ=àp8®Í†‰D¬¼`çômËœ9# ° ;Ébu©{ ŒÎ—+‰$ZZj…®®ÒjØÛ‹ÅdM¯ªJœ?”@ 60 `‡ô]ÌÒ·-8´{÷>_8~¢D‚å•ÃÀPl6 ¡AÊÈhdÑA-½–™D"”—³jjº¾G-Fw³ôm•ªqüøÌû÷ó7n¼¢l]00º)H‰¦Š vM W:;^E;/¯ÜÙÙ ªJäñ„ªªD£’Ãi “‰6`ßYŒ®féÛú–-ÿváÂSeë‚ÑAvÔ^½*QSSqt4Eå8{{c‰D@Öô¨«“¢£'œ>ýäáîSÆ£Û‚YúvÂÏÏ%$dèâŧ³³±N_ ØÊÓ´.‘sœæÈÓñ»oGfGùG“nYRR2yòdsss 77·”””ïÐGQtÊâb±ðêU‰““©ôéûƒ¨áWW'¡–ÞÍÍâ—_ú ØsíÚ XÉfŒÎféÛ5k~îß¿gHÈáêj,¾¼ððáÃÒ/Q¶FrQ]]ݯ_?2™œ”””žžþ믿Nš4éúõëí©ƒÁ@˜hkk/[¶¬=g— béssKšd·½?Ð «úz€LVA,ý£GôlÚä_PP¾gÏme¨Œ¡0°(»öÇíÝ$ÉÂÂâØ±c0 ‹Åâ]»vÙÚÚjhhôïßÿÎ;àS*l†‘‹ .ØØØèëëÏŸ?ŸÏçË¢‘I¥¯‘›(Jš«ð@ 700Ð××2Ç‘ói Ê$&&ZZZR©ÔY³fq¹\™³ˆD¢Í›7[[[khh 8)Ø%S(w†ŒŒ>|(­0›Í~÷îrÍd2ÿýw===:¾dɇÜQbb¢­­­ŽŽNll,z›Í…ÍÕ …kÖ¬155¥R©ÁÁÁL&†a===€¡¡a“¿Žü³·‚¿¿¿¿¿ÿW›5áÅ‹bm!¶°¼œ… ÏžÍ03 çñ7näÐh y<»{ÔŒ‡zö\*ˆ6B¡xìØm^^q¨D yâ00d²dÉE}Ò0K¯NŸ~bl¼èâŧÊVä,ý¤I“X,²R `±XûöíTUUݽ{WOOO(Â0œ˜˜èàà ‘H8‰DŠ/--=xð @àp8ûöí300HNN.))¹zõª‰‰ hfé½¼¼òòò?~leeµnÝ:™B†kkk8€¨'} Z¶ô2U‚a866v„ ïß¿ÏÎÎvvv^¾|9Ò+++‹ý%ò< Dá‘#G¢ #6ŸeÛ¶mÒOÃØØ S(w&“ ¨©©iéO4jÔ¨·oßfgg÷îÝy˜€‰'2™Ìª««[6WcË–-ÙÙÙ/^¼ððð‡[þ&ÿì­ð}–>+ë=¶°oß5ÒÂ… Oúùí‚aøÂ…§&&‹%‰“S¤—WܤIñÒÍ^¿.µ°ˆˆŽ¾ü­“b`t0K¯V­:oañôé;åª!¿¥G–é Éu~~¾H$222º}û6 ÃãÆ‹‰‰a¸¦¦†H$ÆÅÅ1™L‰DÂfÿ?{÷ÐÔÕ6ü$!Œ0d&lq ‚h‹¢¯‚´oµ¯TED¸[w¡J­Úb± Ö¯ZuVA+HµuRj­ˆ Šˆ„ ( ;ƒìÜïÛ¦iQÂ>¿¿nNÎ=çä‚>œsoÎÖH$¾¾¾GŽ‘5ûã?*Gú’’ÙØúöí«²PóPÕEz•CÂ0 O ‰W¾|ù²ŸŸ¦´ï&N›«¡<`777•½ôë×Oùj¨,Ôþô¦¦&<Þ«¼8B¡D"•––â/333e›ŒæææÊ u…ÊÃðòòÊÌÌÄK…r¡ò0ªªªdÖÇÇgòäÉÊ?Üëö®[d2!äíýσÕÕÍUUøÎömmB ÅP"‘òx".W0jT?…Ó##G¼÷ÞÀÏ>;{é}‘¾{‰„={¢]]­fÏ>ÐÚÚÖÝÃ騩S§feeeddákò<O*•ž:uª©©iÞ¼y'Nljjrpp¸{÷®ì¬û÷ï+7%ŸÁê Urvv–ÿNÝÇ œœœÔ !dmm- êÍÍÍùùù¹ÊÆ3z)÷âêêª|5Tj:BhÒ¤Iß~û­üß%©©©"‘ˆB¡hÈü­r—råBåa0 &“‰¿[\\œ˜˜¨îš¼nïºÅå Bîîv²’k×S(†ø~ymmB Ũ­Mˆa˜…Eþ™o¿04$}üñ1üá>ôDúnclL>th^[›pîÜCúþ…ÝQ£F‰Åâ„„„èèh¼„@ „††ž>}šÅb …B2™L¡Pbbbâââ²³³kkk/\¸°víZå¦V¬X!Ë`=sæLu…­­­²ÇËåçÌ™³lÙ²sçÎUVVæääÌœ9sÖ¬YFFFꆄ ¯ªª*)) Û½{7ÞT}}}í¿iAòp«ìeñâÅòWcÆ !•…ÚŸŽJLL¼zõjttt^^^IIÉW_}µsçN<kŸù[åaDGG¯[·®´´´´´téÒ¥UUU²Êο¾MÚñÞ;¢¢¢!äèøOZÅë×ËýýÝðïÖãsú¶6BÈÏÏIåææ”#GæV~ýõÙ®5:Òé÷€F¥¥Õ}û®Y¹òx·ô®ý}zÙLNÝñâÅ‹MLLX¬lNOO÷ðð044ôööÎÎÎÆ0L(&$$¸¹¹Q©Ô‘#G?~)ݧ?pà€‹‹‹µµõ²eËx<žÊBLý3_"‘hË–-^^^ÆÆÆîîîëÖ­Ã}W7$ ÃX,Öܹs---­¬¬.\ˆ××ðEóÕÀsòäIWWW[[ÛO?ýT ¨ìE,oݺµoß¾¦¦¦#GŽÄ×Tj:>&“9eʃA£Ñ†þóÏ?Ë®@SSStt´••N_µj•ìéwåO¤²Py|>?66–Á`˜››GFFâˆD¢   *•ªðÓѾw Þì>ýúõYtúÊÜ܇²?¿ ;w^þûÝ̉w”–VÓé+¿ûî’†vÒÒn0«~ýµäu@7‚Hßýrr8:®Þ½;§ë»Ö2ÒkãóÏ?Ÿ1cÆk"”_j(o³7‹ô}ô=¾òܹbüeyy¾òÖ-&þòÓOONŸ¾÷С?èô•……š›Z½ú¤§çšû÷_¼îè.°zßýþóŸ?ܼùÜùó÷º{,o‚ÏçWTT:thÁ‚Ý=TJ±ÒÒ$.Wˆ—üùgf,Û _½¿y³!äêj£¹µ¤¤)~~.QQ)/_¶tê°Ðˆô=Âüù£§O\±"íþýÝ=–×vóæMÿ˜˜˜1cÆt¤33³E‹iSÀkyö¬‘Å⛚âÏå!„òòÊÝeûTâOäݹS…255ÔÜ™LÚ¿¶©©QTT ‹ÅïÔ‘ é{Šo¾™2t¨kTT “ÙÐÝcy=ÁÁÁMMMºVGöujœ­­í¾}ûê¨,ൔ–¾ ‘ˆff&ø3w†åå•ãûÝâÚÚD"¡ºº™H$·ÿe?ssÊ¡C155-+V¤Á£ø çƒHßSɤ#Gæ¹»Û†‡ïzþ¼©»‡@ïñðáK77k*՘à „=ªmlä¼ûn_Y…¶6aS‡HD¦¦†ZfÞë×Ï>-mñµkOV¬8Ž©y„€"}blLþñÇù66´ˆˆ½¯^±»{8à\.7..nðàÁ4- `óæÍb±X›{HÎÖ·Üýû/û÷gØØÐðVyye}ú˜úú:È*´µ kkYŽŽ}¨Tcí›6ÌåðáyçÎÝMNþU÷ƒ@w Ò÷,4šññã‹H$bdи ß IDATä¾^°£NïÀf³ýýý “““‹ŠŠâããÓÒÒBBB$Õ» ôÀœ­o¹^ôïï`ggV_ÏB]¿^èN$þóX[›ðÙ³FGÇ>íÞ¤W0jT¿ää©ßŸsðà:4º‘¾Ç±²¢¦§/a±x3gîÇ“i‚î•`cc“““Ö¯_¿ððð‚‚&“yøða•õ{`ÎÖ·YkkÛ‹->>tZ]K"‘æå•¿û®§|‹ÇfóíìÌ^kN‹ˆþõ×á6œÙ³ç7Ý]‚Hß1©© +*êcbô~û¼^ 55uÆ $IVbjj—ššŠ/Îggg{yyÙÚÚ._¾\ Œ1!„ç¶—_½oii™3g޵µµ££cll,ŸÏG„´´4Ÿ>}úlÙ²¥;>_/÷ða †a¾¾¶¶f¯^±ïßÁbñ"=—+¤PŒ¨T£×ÓãæÎ Ú¾}úæÍç`û<Ð3A¤ï¡¼¼ìSS1W®<.•Âó>ݦ¥¥¥¶¶V>— ÎÏÏïÑ£Gøñž={Î;wöìÙóçÏ'%%áÛÕ)ïž»téÒêêê‚‚‚óçÏ_¼x199/?sæÌ7¶lÙ²fÍ|+~ C¼´´4e0,œœú¼zźzõ±­-­_¿6À‹¥"‘Ø×—Áå MM_{N‹ˆþÍ7SöîÍML<èž"}Ï5dˆóÞ½³Î»»aCüßÑÓ‰DÙ}úmÛ¶yzz&&&¦¦¦ª¬/‰Nž<¹cÇww÷&$$Èj~òÉ'³gÏF§:ôàÁKý4–ñ»ETTTBB‚ü“ö\.7999,, ©MRÝîÍÙúÖÂ0ìÉ“Z|NO¥Ñh&|¾((è_7éÿøã BÈÕÕºƒszÜ»ïöýé§O^¼hþè£]x=ºü£ÆëðàÜÌÌ¢ØXöÝ`Æ ¯^½7nÜ… ÊÊʲ²²–,Y‚WP™i·Gål}kÕÔ´¶µ ûöý뮼¹¹ …bäæö¯íoÞ|Š¢ÑŒ¹\©©QÇ;0Àáܹ•††ï½·ýçŸït¼A:"½~€`ßÌÌÌŠŠŠüýýãââüüüÖ¯_yùòe<í=B(**jüøñï¿ÿ~XXX||¼««kPPNWhg×®] # 444444>>¾Ë?Ê[§¢âBÈÝý¯Ð.Kfí/_¶0™!SS#GðÆOä)pp°<~õÂ…Á|lùò4øº,è^Ý= ­qãú80wþüámÛ"ä÷ýÍÔÔtÛ¶mÛ¶mSùî¼yóæÍ›'_ríÚ5ü@~oKKË£G*œ+ÿø<Š¡sOŸÖ›™™ØØÐBB¡¸±‘khH’¯píÚCC‘HbjjÄå ¨TÌéqÄO? ë×Ï>..ýñãÚ;£¼¼ìuÕ8¯æôúdüøþ{÷Î:}úÌìÐFee½lBûv•H$æròÏÊåæ>òð°¡P ÄfóÍÌt3§—™8ÑïâÅXccò„ ßîÚ•ép@·€H¯gÞ{oàŽ3N*\·î4ûnIu{¸ŠŠ"ýõëeNN}Bié_ßzH¤W¯>vs³¦RÚÚ„‰”F3Ñù\\¬23—~öÙ{ß~{áÃwÂcz ëÁê½þùßÿ†„åËÓš›Û¾ÿ>ŠL&µèT·‡«¨¨Ÿ<ù¯/C^¿^>jT¿¼¼ò¢¢ª1c¼B%%Õ­­mtº•ZÇfóBºšÓ»¹¹1™L…BÉŒÅçå• 7ë¤Bnnn²/õ¨‘^/}øá[[³¹sDDì=rd¾Î—èD"ɳgøœ^ ß¹S5‚Ïݽû ¯›ûÐÑÑÒȈL¥±X<„¦›JL&sÕªU#GŽTõf¤Nº!tãÆÿû¿ÿk·Dz}5r¤Ç™3ËgÌHùßÿv?¾ÈÞÞ¼»G@Ïòüy“X,Å#ý;UxÄææ¶;.ã~ÿýqp°7—+ ÑŒñ9½®"=BhĈS§NÕUk¨¤åc¼pŸ^y{ÓÏœY&ˆÿ÷¿ï++áæÿòôé?_±ËÏêäÔÇÁÁrÈçÆF“ÙÀfóïÞ}6jT?6›ojjôw¤×ý}zºDzýæìluæÌ2ss“É“¿¿ÿEw€„Él°±¡áÓôÂÂÊáÃÝBƒ;S©FþYöÇ1 3Æ‹ÃP©Æ,ŸD"v|<z X½×{66´ÌÌ¥óçþè£Ý?þ8?0Ðýu[ éŒÐîÝ»7zôhmj¾xÑìäÔ!$‘HoÝb®[7!d`@ pËË+755òós133árù †9›Í355’Ï|@¯‘¾7055:t(fñâ£QQ){÷Î ñÕòÄÀÀÀéÓ§Ëïè@7zôèiÓ¦iS³¶–…?¿òèQ ›Í>Ü /ç¾üA$£¢F „Øl©©1‹¥û/ÓÐC@¤ï%LL Œ‰ÿiî܃ññÿýä“qÚœåâârâĉÎÝ¢®®ÏbWPPaaA‘mQ7bDßÄÄs!ü»vŸJ5âpø½é&}yy¹§§§®v]”_ê066:tèîÝ»ýüütÒ¸6º¸¸Œ=úÛo¿µ±±ÑpŠf'OžŒŒTñŇ;wîtög‘ÑíÏE{pŸ¾÷00 nÝ:mË–i[¶œ_°àlµ Þruu,{{3„PAA¥¿¿«,r âL¥™˜ì„Ÿ½g±ø:|ð¾÷ÉËË«©©©©©)))ñôôŒˆˆÐy¸ª¨¨°¶¶Vî´ººúðáÃ,kèС---ÚŸ®àÃ?Ä?B^^B¨æo¾¾Ú.‚¾ùYXX¬Y³¦S»S "}o3cƈŸ~úäæÍ§'îxþ¼©»‡@·©­mµ³3GݼYà&+' Tª1…B&‘ˆ¡¿Ÿ½çÁê½666ööööööžžž[¶lyòäI}½Ž¿ï#•J•;upp;vlVV–»»»†ïŽ+Ÿ®ÀÄÄÿøÂ€ýßÈd²®>B»³¶¶NJJêÔîT‚Hß ¸=»ð÷ÞÛ~ãÆÓîÝ µµÏÙÛ›=ÞT[ÛŠ?xãóEœææ¶æf®D"åñDTªQ×Ïé ¡C‡|||lll’’’Ž;æææfnn¾~ýz„ÐòåËei“8…B¹sçBèìÙ³ƒ 266vww?vìBH*•îÚµËÇLJF£9277W~Ý»¼¼œ@ dgg{yyÙÚÚ._¾\ ¨,”U–?QåÈÉd²¡¡¡¹ù_{xˆD¢¸¸8;;;[[Û¸¸8‘H¤®ý–––9sæX[[;::ÆÆÆòù|¼fNN޳³³§§'BÈÞ^u °xñâ_~ùyîܹ!C†P(:ŽÇÎ#FÈŸ®\Aù19rDå iii>>>}úôÙ²e BH,oܸÑÙÙÙÆÆfÖ¬Y²ÅÍ“oSùj¨ìH70ÐKq8ü¹s:;zâD~w€®öðáK:}åãÇ5?ýTèâËã eo]½úˆÁXåä´:+«¨µ•G§¯¼zõÑ”)»Ö®=¥«ÞBéééíÖ‰ŒŒd±X@M›6Åb¥¤¤ „®^½jee%‰0 KMMõõõ•J¥ÇÈÈhß¾}555400àp8)))¶¶¶™™™/_¾üå—_BeeeøïøAhhè“'Oòóóûöíûå—_ª,Ä0¬¥¥eÿþýøðäBÅÅÅl6›Íf¿xñâã?ž;w®ìƒ$''ôÑGÏž=+)):tèÚµkÕµ5nܸ§OŸ–”” 0@6’÷Þ{ï·ß~+..–Iø§¿b………†±X,CCؘ˜êêêÔÔT„ЫW¯dY]Y;ò5e/•Ç _ !4eÊ”æææýû÷#„·nÝêëë[RRrïÞ½ÀÀÀØØXm&¬|5Tv¤ù·(==]›8‘¾7‰$_|‘É`¬úæ›s‰´»‡@×ùý÷GtúÊÖÖ¶5k2&NÜ!ÿÖW_3&iæÌ”Y³ö¿|ÙL§¯¼u‹9a·‰‰guÕ»–‘þöíÛ† …B…ã²²2±XlooŸ““ƒaØû￟””„aXSS™LÞ¶m[ss³T*e³Ù‰Ä××÷È‘#²füñGåH_RR‚¿›žžÞ·o_•…š‡*J¥>xð@ö®··wMM ~|ùòe???•í …B‰TZZŠfff*ŒD!kˆôàáÇG"‘\½z¯)ºÊ ²vTFzå1(DúÜÜ\ù——Wff&þîƒðãv&;Vy5Tv¤áç‚iéaõ¾730 nÚ4yË–©{÷æÎœùCS·»G@©­m¥P ÍÌL ™®òoåæ>3Æûÿúûï^¼hFáûÞwýy4 !„ß'–?F‘H¤ðððÌÌ̆††+W®DEE!„,--sssóó󃃃¯]»F$+**ä4hrGøÂ8BÈÛÛ»ººZC¡:²Ãår-Z#{‹ÉdÒét@ BBB*++U¶_WW'‘H<<<ð¾}ûÊ:õööÖær•••á§>yò$,,lذaGŽQ®ÙneÊcÀþý'ƒÁ@r? ªª*Ùôññ™>¾ªªª¤¤$,,l÷îÝ*Û'“ÉË—/¯¬¬,--ýâ‹/ð… ²fBõõõµµµ/^¼¸zõêäÉ“+++W¯^B¡ÐÐÐÇãmܸ!Äf³åO×PA3 „ÐÑ£GY,ÖÎ;5ÔŒŽŽ^·n]iiiiiéÒ¥K«ªª´˜Œ–WCgÚ]ß½†T*ݵ늓Óê™3SêêXÝ=:Ѳe©³gسç7?¿ òå‹ÿ±?¾pჱŠÁXÅå èô•—.•êªw¤Ý}zÙTXÝñâÅ‹MLLX¬þµ¦§§{xxz{{gggc& ÜÜܨTêÈ‘#?Ž”îÓ8pÀÅÅÅÚÚzÙ²e<Oe!¦ñ.µü c‰DbffVYY‰¿d±Xsçε´´´²²Z¸p!—ËU×~SSStt´••N_µj•l$x;"‘(((ˆJ¥Ê:•qrrŠŠŠª««“aûöí}úôqrrÚ³gOdd¤­­­ÂéÊd窼O/{ùõ×_[XXxxxdgg«¼ø1ŸÏe0æææ‘‘‘ÍÍÍÚ L¾/å«¡á7A-ïÓ0˜Þ½e=ªùä“c/^4ýõGS¦øw÷pè³g°° bOøãóñB©¦»vÍLK[ôøqMppÒ×_Ÿe³ùÝ=(Þ†aøùsÅ›ô^^ö¶¶4ùšŽ€F3:ÔE ÔÕ±º|¤=NBB‚MNNNXXX¿~ýÂÃà ˜LæáÇUÖï ‰Ú@» ÒƒŒëýûïk·nvêTáðá›vïÎ µZµ G‰$†µ¶¶)DúÑ£û)ÔäpTª‘££¥áÈ‘?»v˜=Qjjê† H$’¬ÄÔÔ4...55Ue†:'j«¯¯okkS.OKKóðð°±±Y²d ^Ae* µï¥·‚Hþ…H$L›»æÃý’’~ Û~éRiw €×Ãç‹Baà@G¼¤®ŽõèQ­ÂÒ=BˆÃáS©Æ\®ÐÙÙjÿþ« ŶÞ&---µµµò»èãüüü=z„ïÙ³çܹsgÏž=þ|RR¾÷mmm­Â)K—.­®®.((8þüÅ‹“““ñò3gÎܸqcË–-kÖ¬Qxä°°°pΜ9¾¾¾­­­Êc;tèÐ… Î;wåÊ•M›6©ëB]¿ îÞ½ëææöÙgŸÉvéïåÚÝ[¼µ}LçÏ}èÐµÆÆ·wZoaaaooçh—W\\v,/)é—]»fvhèzËÌ̬¨¨hãÆqqqnnn‘‘‘«W¯622Â+DEE?žËåFFFÆÇÇÑét…´°»víZ±bE@@€¡¡áôéÓããã5t:`À€}ûö%%%>|8"""''ÇÅÅE¡Î¼yóBBBÚÚÚ¢££ñܵ*»P.T¹€Ÿ••µmÛ¶eË–¥§§¾;&uîÓ@?>}ºÝß2ÙÆÂb‘hÔ¿¥àíùf¿ÀÇçÓé+ûíþrî܃11•«½|ÙL§¯,(xÊ`¬:w®/ÌξÃ`¬*.~öf]ã~>‘§™ºGÛtK"‘ˆD¢ÎîE(vv]CË'ò`NTÀ7¿Äàf<è>Ó¦MÓrVeLfBH"ÁBR)–Ÿÿtõê ÊÕðDŽÃ0só¿ÒÛLœ8xß>§ÄÄsKÞpè ˆD¢Â½üÎ {$ð-÷é½ÍÓ§¯B!ôðáË––¶wßí«\ ßúÌÜü¯§±BBÂÿ®_/ËξÓu#Ö¡NA¤ô6×’H@Œº~½¼OSooºr5ô’‹ô!·èè‘6dµ¶¾EÛ¨µ 2Ôé/ˆô€^E(WU5à{9߸Q>b„‡Êì5Ž€@ àÕ’ÓÇÇÿðää_»fÌt*ˆô€^¥¼ü•X,511lkJ¥X~~Å;ï¨XºG±Ù|2‹Å' T꿾BbnNY³æýcÇn”–¾è’QЉ ÒƒJ·Y¥ Byy¹æ-Û‘111y÷Ýw•7ë2/_¾œ1c†««+•J ÈÊÊꮑ ž”üÉ“Z2™deEmii{ðàekk›ºHo›ÓÚÚF£™‰ŠƒŒ1t¨ËªU'D"Õ [Ðéx=yyy555555%%%žžž:ÿ’‚|Îou‡ B¡PÒÓÓ ¦OŸyñâEÝŽD³ž™›üéÓzgg+ss ‹Å»~½ÌÚšêåe¯²&‡#055b±x*6G# ßÅd6lÛv¡“‡ @ç‚oÙðzlllðööö[¶l±³³«¯¯·µµÕaò9¿ÕÙ¸qãØ±c8€¿ìß¿mmí¶mÛ&LPñu²NÒ3s“3™ nnÖ†µ¶ò˜ÌFu7éÑßÉéñ­pUVpv¶Šÿï—_ž 8dˆsgŽ€Nszðæ¡C‡|||lll’’’Ž;æææfnn¾~ýz„ÐòåËçÍ›‡×äp8 åÎ;¡³gÏ4ÈØØØÝÝýرc!©Tºk×.6räÈÜÜ\ùÿšUfÅVYˆþ½†¬ýz²òB"‘(..ÎÎÎÎÖÖ6..N$)ŸH&“ ÍÍÍ5œ¢ù*!Uµås~«köôéÓ+V¬ÌÆ<¨®M¤&;¸ÊBåÅbñÆmllfÍš…oQ®óÜä:ÁdÖ»ºZ››Sš›¹ùùå#Gª^ºGr«÷ffj7<Ÿ=ûÝÁƒãâÒ_k ŸD"EDDèd$©Ý_H˜Óƒ¹råJAAAFFÆüùó§M›VRRrâĉE‹­\¹rÊ”)ááá)))ÙÙÙîîî~~~\.wêÔ©;vìøðÃýõט˜˜ððð´´´M›6íÛ·oĈwîÜ™5k–rGxV즦¦™3gZYYáÛY+nÜ¸ÑÆÆfÿþýø)òǨ’©©éÿýßÿUVVÞºu [6løæ›oðúø.ß,+111**J¶Q¨ºS4\%++«¥K—ÖÖÖp¹Ü3fÐh´üü|OOOYÎoåf׬YS[[ëíí-ÿA¨Tª,˜r›7nDgÿé§Ÿ,X0þü>}ú¨,TîÑÊÊêôéÓ¿üò @˜?~bbâÖ­[Æ)óZ½ë“Ù8yò0©{ò¤–Åâ«»Iþ^½omU½z#‘ˆß}²-9ù×/¾˜¨å~ûí·ººº×:¯ÏÎήýJ»SÐOZî°ˆº}û6öw¶iùã²²2±XlooŸ““ƒaØû￟””„aXSS™LÞ¶m[ss³T*e³Ù‰Ä××÷È‘#²füñGôwê*LUvjYÎi…BÍCÅ“a+—¨†axrL¼òåË—ýüü0¥ûñT*õÁƒ²6Õ¢á*i“Q[¹Ù¦¦&„Pss³ÊûZÙÁU*÷èåå•™™‰—YWÇÒñˆè|éA'š:ujVVVFFFPP££#BˆÇãI¥ÒS§N555Í›7oâĉMMMwïÞ•uÿþ}å¦TfÅÖ&U6ÎÙÙYþ;u>400prrR7$„µµµ,¨777ççç+´I¡PæÌ™sÿþ}Ùß íž¢L›ŒÚ*›4iÒ·ß~+ÿ'KjjªH$¢P(ÚgWW¨Ü#ƒÁ`2™ø»ÅÅʼn‰‰oð‰º`?óêê&àèØÇÎŽ&•b:j¨Ìá¨TcY";Í’“§š››¬Xq’5½‘t¢Q£F‰Åâ„„„èèh¼„@ „††ž>}šÅb …B2™L¡Pbbbâââ²³³kkk/\¸°víZå¦TfÅV.lmm•=Ž.>¾ªªª¤¤$,,l÷îÝÊ£233c³Ù²äÜÚœ¢@CFmÍÍ&&&^½z5::://¯¤¤ä«¯¾Ú¹s'€µÏÒ­ŽrÑÑÑëÖ­+-----]ºtiUU•¬òç&ï /^4[Y™ˆDR„³³¦GØl>•j¬Íœ!djjôÝw‘yye))¿ëj´t‘®»Qô‡ö÷ée3?uÇ‹/611a±Xò{xxz{{gggc& ÜÜܨTêÈ‘#?Ž”îÓ8pÀÅÅÅÚÚzÙ²e<Oe!¦æÎ1†a"‘hË–-^^^øöëÖ­ãr¹†„a‹Åš;w®¥¥¥••ÕÂ… ñúèß7˜%‰™™Yee¥–§¨ùä—+Œ?uâÄâà`/-»ˆ‹Ë8wîîùó«\]ÛÙÝ€VïAgáóù‡Z°`Aw¼-^¾lqp°@1­¬¨ êjŠÅROˆo‚«Íê½ÌæÍy{ÛÏšµOz @Ï‘t–›7oúûûÇÄÄŒ3¦#í¨ÌŠ ©²Jµµ­øS÷×öík[YY¯®&—‹ïçƒ!¥Dvš‘ɤݻ£[ZÚÖ¬9«J@/@¤%88¸©©IÃCÚêȾ~S™Re•^½bÛÚš?Ç0lÈW ‘žÍ „ÄbÅäôÚ`0,Œ9¾dëVØèˆô€^‚ÃðxBkkê­[•ÎÎV¾¾Œ/šÕíb‹¯½K$ a7\uÜvïŽÞ¹óòáÃvtÜt2ˆô´ËåÆÅÅ <˜F£lÞ¼Y,ksbÏÉåú6hlä „¬­i·n1‡ sññ¡‹ÅÒ'O7ëÅá«÷"‘„J5"‘ÞäÂ÷ßôùçlØuéRiG† @gƒH@;Øl¶¿¿aaarrrQQQ|||ZZZHHˆD¢z²Ø3s¹¾ 8¡>}LïÜ©ò÷wuw·111,-}¡²2¾zÏç‹Þ`B/³dÉØ>¶|ùñ‡kÞ¸:DzÚ‘`cc“““Ö¯_¿ððð‚‚&“yøða•õ{f.×·AS!ÔÜÜÆbñ‡ s%‘ˆÞÞö¼TY™Ãá‰>_ôº7éå„­[#üüœ§Oß[^þêÛ SA¤ ©©©6lO ijj—ššª2ynÏÌåú6hläP©F÷î=711ôña „ú÷w¸_õœžÃáÿÈî5¼WF&“Ž[0x°ÓäÉß?~¬úNÝ "=š´´´ÔÖÖÊ'àÁùùù=zô?Æ“çž={öüùóIIIø¾ô*s¹VWWœ?þâÅ‹ÉÉÉx9žËuË–-kÖ¬Á·Üo¦¹¹Í‚rësð`'2™„êߟ®nNÏf ¨Tã––¶ŽÌéqd2釿øøÐ§MÛ3{ÐA¤àM‰DÙ}úmÛ¶yzz&&&¦¦¦ª¬/‰Nž<¹cÇww÷&$$Èj~òÉ'³gÏFA¤ï‡O£ß½û|Èg¼dÐ §––6•ßµÃ+·¶òÌÍ;4§Ç“Œqrê•RQ¡ö«}t ˆôhbaaaoo_\\¬P^\\úh×™3·uÕ,ÿÅÐŽ 6¼zõjܸq.\(++ËÊÊ tppX²d ^AeFÝ•Ëõ-ÁfóE" …bèæöOî™áÃÝ +TV¦RX,ݬÞËɤ;fÌšõβeiGŽ\×a˼1ˆô´ÃÌ̬¨¨Èßß?..ÎÏÏoýúõ‘‘‘—/_ÆÓÛ#„¢¢¢Æÿþû…ÅÇÇ»ººÑét…vvíÚÅ`0BCCCCCããã»ü£ôrl6ŸÇøøÐåw p{ú´ßTG—+ ÑŒY,­’Ó¿"‘0yݺ‰ë×g®\y¼­M¨Ûöx]Ý=ô€©©é¶mÛ¶mÛ¦òÝyóæÍ›7O¾äÚµkøüþ–––GU8W~‡H—ÒA<ž¨¥…?b„‡|áС®$¡  ò½÷Ê—³Ù|ÃR$’tð[vê,^!1fŒwrò¯ÕÊ¿Åá" ×OYûº ˆŸþÁ„ W¯>´yýúI£F1–.]Šo’€fÆÆÆ»wïvvvîH#é½'²´¤P(† å:Z[Sssþ;Òó1 ½YÊÚ70l˜Ë… «¿ùæ—µkOùøXää\š2åÃ.èè»S§NEGGC¤„ÄŽŽ¶ÊåD"!(¨_nîÃ?þ^"K±D"¡P ñ}s»€‰‰aBÂä‰ý6o>‰aÂŒŒŒ®éè5¤½†ûô€^B(3*ßúàƒÁ7n<­«cá/ÛÚ!‘HÚÙK÷ÊÜ"#=Ú¯€î@¤ô ©³±1SùîþãcbbxáÂ=ü%—+@ …¢Î{ð€žVïZ?üðCw¼½***ÜÝݵ¯ÿèÑK„­-U廯ÆäqãúÿòKÉìÙï"„¸\!BH éjÓ{z2ˆô@‰ßÝk̘1ÚW~ü¸–H$˜˜(>Ž'3qâàÅ‹64p¬­©øœžËœ¼ `õ¨ðî»ïŠÅb €n¥nSB•ÊÊê $©º cÇú\ºTŠþ^½okuý}ú¢¼¼\'zá8Nll¬›››‰‰‰§§çÆ»ø;„›6m"III¯u@(//W.çr¹qqqƒ¦Ñh›7o‹ÅÚ4¨Û«ªCé½ÁÓ§¯ŒŒ $µ; S(†|0øøñ|ôw¤çrùºmÎÛcÙ²e·oß>}úô³gÏ<˜×e½cvòäIggçôôtÍ5+**¬­­5×a³Ùþþþ………ÉÉÉEEEñññiii!!!òÙ,Õµiaa±fÍš7ø "= 7(/ell(jš{ED ¿}»êá×mmB‰Èbñaõ^'Μ9óÍ7ß :ÔÆÆfôèÑ;wîüù矻¬÷{÷î=|øðàÁƒÅÅÅOž<ÑPS*•666jn-!!ÁÆÆ&''',,¬_¿~áááL&óðáÃí¶immýºë ]"=@ï±Xüº:–™™1>YWgäHWW댌B.W@¡¶¶¶õäHO :äããccc“””tìØ1777ssóõë×#„–/_.Ë«Äáp(Ê;wBgÏž4h±±±»»û±cÇBR©t×®]>>>4mäÈ‘¹¹¹ò+Ìø‚svv¶———­­íòåËÊBôïÕiùc33³={öÈÞèÑ£«ªªðc‘Hggggkk'‰ÄbñÆmllfÍšÕÒÒ¢®eü ''ÇÙÙùÏ?ÿTn ¯òäÉàààñãÇ{{{˦õ*1bBÈÞÞ^öñ/]ºÔ·o_KKËo¾ù/IMMݰa‰ôÏ. ¦¦¦qqq©©©*/‹|›ò¶´´Ì™3ÇÚÚÚÑÑ166¿A ÒÒÒ|||úôé³eË–7ûÅxÝ}':êÎ*:}åäÉ߯ZuBsÍíÛ/öï¿nïÞßüü689­ÎÊ*êšÊãQ»ÕB‘‘‘,ëÀ¡iÓ¦±X¬””„PCCÃÕ«W­¬¬D"†a©©©¾¾¾R©”ÃáíÛ·¯¦¦æàÁƒ'%%ÅÖÖ633óåË—¿üò‹££#B¨¬¬ ~úäÉ“üüü¾}û~ùå—* 1 kiiÙ¿?><ùã‹/:88…„„lݺ•ÉdÊ>ErròG}ôìÙ³’’’¡C‡®]»vëÖ­¾¾¾%%%÷îÝ Œ• ?Ealï½÷Þo¿ýÆáp”›Â0L*•º¹¹¥¤¤`¶nÝ:___…F””¿Â|ð‹Å:}ú4~U›››Bõõõ ?‹ëׯÛÙÙi¸VÊFEE7îéÓ§%%% À/ BhÊ”)ÍÍÍû÷ïG566jókžžÞnµvéàùÐíNŸ¾åìüé¼y‡-:¢¹fUUƒ±jÉ’£#G~M§¯üí·‡]3ByÚGúÛ·oc& ŽËÊÊÄb±½½}NN†aï¿ÿ~RR†aMMMd2yÛ¶mÍÍÍR©”ÍfK$__ß#Gþ¹,?þø£r¤/))‘­oß¾* 5V,ççç'$$ 0€D"¥¥¥áåÞÞÞ555øñåË—ýüü¼¼¼233ñ’àdzlÊMa–ŸŸo``ÐÐЀaXQQBèÞ½{š”¿Â¿ÿþ;†aø=ø²²2u‘þÆÖÖÖ®•BGB¡D"•––âå™™™²Ö¹¹¹ò?GÍWÓQ¤‡Õ{€Þ«¬lpv¶¢ÑŒÚÚ„šk:;[{ݺUilLFŸÞ¦ƒh4BˆL&+#„H$RxxxfffCCÕ+W¢¢¢B–––¹¹¹ùùùŽŽŽÁÁÁ×®]#‰~~~²6 ¤Ü‘§§'~àíí]]]­¡P—Ë=yò$B(00pýúõ%%%ŸþùgŸ}†¿Ëd2ét:@ !!!•••UUU²–}||&Ož¬Ð öffiÞÞÞêšBž…EϽOß®©S§feeeddákò<O*•ž:uª©©iÞ¼y'Nljjrpp¸{÷®ì¬û÷ï+7…OFBOž<ÁC‘ºBe†Í˜1ãÞ½¿ö$&L}- Ÿ ã3Ëæææüü|ƒÁd2ñw‹‹‹eMág½xñB¾}YPTnJ"‘¤§§oß¾ý·Õ«Wã3` ÊSþR\TTTBB‚ü“ö\.7999,,LûËbggG"‘***ð—OŸ>upø+™²ì¯Š®‘ ÷ž=krvîcffÒÒÒÖnåÑ£½,,(\Ôãçôš5J,'$$DGGã%!44ôôéÓ,K(’Éd …—][[{áÂ…µk×*7µbÅŠòòòÂÂÂÏ?ÿ|æÌ™ê [[[ñ‡ä©Tê¬Y³"""~ùå—ŠŠŠ¼¼¼ØØØÈÈH¼Zxxx|||UUUIIIXXØîÝ»£££×­[WZZZZZºtéRüÙ= „ÐÑ£GY,ÖÎ;U~^妮]»öêÕ«¨¨(êßf̘QVVV\\¬¡A‡£áªnذáÕ«WãÆ»páBYYYVVV`` ƒƒÃ’%K4\+…6ÉdrDDÄòåË+++KKK¿øâ |Ñ¥Ûtpõº¿ÿW»v]9pàêàÁ뵩?aÂ6cƒ±J(솢´¿O/›Âª;^¼x±‰‰ ‹Å’oÜÃÃÃÐÐÐÛÛ;;;Ã0¡P˜àææF¥RGŽyüøq¤tŸþÀ...ÖÖÖË–-ãñx* 157¿1 ‹Å_~ùå AƒLLL\]]׬Yƒ×Ç0ŒÅbÍ;×ÒÒÒÊÊjáÂ…\.—ÏçÇÆÆ2 ssóÈÈÈææf¼æ×_maaááá‘TÝVWnjÑ¢E¡¡¡òM*•zxx¬Y³Feƒ"‘(((ˆJ¥j¾ªçÓO?0`…Bñõõýúë¯ÛÚÚÔ]+ù6åÜÔÔmeeE§ÓW­Z…_u=jþ5èø}z¦þô|"‘ÄÝý³Ý»gbZ¶,•ÉÜF$¶³OÙôé{¯_/'‘ˆLæÖ®¤¼ŒŒŒˆˆüß»nÝ:&“™––¦ý)åååžžž²Þ^j(ÝrYBzzú´iÓ:Ò¬Þôۋ͉ÔÉÉÊÊÊT,–¶¶¶¿€Ïç‹mmÍÄb)×þ}ýž‰ÏçWTT:thÁ‚Ý=ÐÓA¤è·êêf„££¥• !ÔРé.,®­M`gGC;|øÏN_ç¸y󦿿LLÌkåRfff¦œËJe!Ðß˹ìú­¦¦ÅÐÐÀÚšŠ¯ª66r<=í4ŸÂã‰h4c:ÝbÏžßfÏ~×ÔÔ¨+ªSÁÁÁMMMop¢ì‹Ý8[[Û}ûö)ÔQYô÷²Àœ ßêêXvvfÁÊÊ”L&ÕÖ¶¶{ Ÿ/‰$ÞÞö<ž(5õF €n‘ ßêêXvvæ!‰èà`YUÕN „' Å66fÓ§¦¤ü.h•“¼±¦sí±Ù`õDz€~««kµ·7Ãû<Þþš6' Å&Ÿ|òŸæf®þÞ­@éú­¶ö¯9=BÈÉ©ýHa˜@ âñDææÃbÑ¢1ß}w±©‰Ûù# {@¤è·ººV;»¿æôNN–íFz@,•b<žOY»téxccòŽ—;} oúúú¶6ßuLKKóðð°±±Y²d ^AejW•…Ú÷”A¤è·úz¶­í?«÷/_¶H¥šö6áóE!.Whaa‚¢RV®œpäÈŸLfCŒ¶w+,,œ3gޝ¯ok«Šç":táÂ…sçÎ]¹reÓ¦M¡¥K—VWWœ?þâÅ‹ÉÉÉê •Ý½{×ÍÍí³Ï>ÃSÝ ÒôX[›ÏYZþ•¨ÆÍÍF(kžÖã»åH¥R|Nš9s¤››Mrò¯=ÚÞŠÏç;v,00pÑ¢Eï¼óNEENW®öÝwßyzz&&&¦§§‹D¢“'OîØ±ÃÝÝ}àÀ ©©©* Uv:~üø;wîP(”Ñ£GOš4éÒ¥KR©´“?¨¾‚HÐcxJ›>}Lñ—ÞÞöáÑ£ §ðx"ü@–ÈÎÀ€völqQQUg¶wºr劋‹KNNÎ÷ß_TT´páB*•ª²¦|¾×šš•©]5ä{UÆ`0¾üòËŠŠŠèèèM›6ùøø<þ\§®—€HÐcx¤—ÅlSS#‹Çk5œ‚¯Þ#„ðÕ{Üÿ;xܸþ±±'E"‰šó€j666ýû÷ÏËË»~ýzKK‹†šòù^]\\T¦vÕïUºººû÷ïWWW:ÔÄD“vˆô=ÖÜü¯Hòò²üXóœþ¯½îe«÷¸ÄÄž?oJIù]÷£ìÕœ›››™™ùøñã~ýúÍŸ?¿¨¨HeÍO?ýT–ïuΜ9*S»jŸïU*•^ºtiòäÉ#FŒÀ0ìúõë'Nœ°¶¶îÌϪ¯ ÒôXK —@ ÈÇl//ºæ9=é ‚™Ù¿æŽŽ–Ë–ß¾ý¢6{ï Ø·o_YY™¯¯oDDžu^Á¼yóBBB>øàƒI“&­^½!´k×.ƒ¯®PYVVÖÆ§NZQQñÕW_1ŒNý€z ²ÖôXZÚM›~~ôèYIzzA|üOeeI$’ê™ÌåË÷gÏ>@¥=y’¤ð–H$?~«££eZZ'&2ÑaÖÚžI*•J¥RƒÎÍ«"‰Èdr§vÑ@ÖZÀÛŽÅâ+LÍû÷gðù¢²²:u§ðx"„ K÷82™ôÕWÿËÍ}táÂ=Ýõ­A$;;Ì#„Þ†0¯+éz¬­MH¡ü+]ÿþ ۨˆ©îOh`@07WýèÖ˜1Þ3fŒˆM¯¯gëv¨tˆô=Æç‹LLþ5·#‘ˆ:Þ¾ýLÃ)$Qþ!> “ÍÌL>û,C— û@¤è1Ohbb¨P8t¨Ë;j¿Ï㉢º9=BˆB1ܲeÚ¥K÷þùŽÎ @÷HÐc<žâœ!4dˆË“'µl¶êýÒ€,,L54ä9gλññ§a ôézLåœÞÏÏY*ÅJK_¨þ*Õè‹/2u3PºDz€ãñ„ÆÆŠszGGK:ÝâÆr•§b‰Sùì½<*ÕhçΨóçKŽÍÓÍXè&þEè<"‘„L&)—{ýñǓի'(¿%Š1LjfÖΜ!è¾víׯÏôõu6ÌEÕ¢ÛP"=@I¥@P.5ªßéÓ·¸\©©‘Â["‘D,Æh4­6H_²dlAAåÒ¥Ç.^ŒÕæmNŸ>]" öAû¦OŸØÁF Òô†©ŽôAAžb±´  rìXo…·ÚÚD†ixö^@øöÛˆm±±'øaNÇŒrqq9qâ„Nš@pŸ Ç0 © ôÈÆ†æåeÿçŸO”ßârù!MÛ º•uÇŽ¿þZ’–v£# Û@¤è1usz„Ð;ïô½~]ÅCyx~z…=t55ªßªU¡ëÖejØz€ "=@a"UGú1c¼KK«ëêZÊÛÚ„è5#=Bhõê aagÍ:™î€ÞHÐk˜š)==ºŸ©©Ñ¯¿*æªáóñHÿzׄヒtrê3oÞ!üoôDz€30 ‰DR•oŒë­œ•ŽÏˆJ}íéÉÌ­«c-_žÖ‹s΂Þ"=@"uïN˜00?ÿikk›|¡@ &“ Ô­ùkæèhùý÷Q/–îÛ÷ûœ@·€HÐcFFd¡P¬îÝqãú#„®\y _(ˆ ßü ÆcÆxñÅÄÄij¿þZòÆÐ• Òô˜±±@ 6Ò›™îvéÒ}ùB‘HllÜ¡­D-³pað’%GU~‹€ž"=@‘ù|µ«÷¡÷ß|åÊG + %ÆÆŠIq^×úõ“&M2þá‡k:Ø "=@išÓ#„ÂÇJ$Ò³gÿÉ4/‘H•ݾ.°}ûôAƒœæÌ9ðêd¶=Dz€32"kx"!dnN ñýé§[²±XB¡ttN"“I{÷Î"‘ˆóçÖ¼®@÷‚HÐcææ&­­<Íu¦LñÏϯxöì¯o$©rÚ›7ceE=~|“Y?gÎAö Ç‚HÐc”ææ6ÍuþóŸ>}LÏœùk_*Åt2§Ç¹ºZŸ9³üñãÚˆˆ½l6_WÍ CézÌ‚Âfó$Õ›çàÈdÒ >sæ6þÃ…¢›9=ÎÝÝæôéOž=kŠŠú‚=è š…h‚ IDATÒô˜…E*ÅX¬vð#"†?zTsëV%BÃPÇŸÈSàînsüøÂŠŠWÑÑû[ZÚYc ‹A¤è1 B¨Ýàêççܧè7{{s͸¼ü•6•ñHèîåEß²å|' €"=@ï¹»Û<}ªe¤ „ÈdÒ_Lüõ×’ÂÂÊNÝ"=@ïõík§e¤çr…!"‘0v¬÷»ïöML<×ÉC ûA¤è=-Wï¹\>Bˆ@ „>ÿ|baaeN΃ÎÝ "=@ïyxØVW7i³ ü.ôC†8‡†únÞ|N*Å:stݬ¼¼ÿËF'8Nll¬›››‰‰‰§§çÆù|¾ö§¿|ùrÆŒ®®®T*5 ++Kö@(/9®®®³fͪ¯¯ÇßÒp¹¸\n\\ÜàÁƒi4Z@@ÀæÍ›Åb±6ÝéöGð Òôž·7],–>~\ÛnM|õÃþ íqqï=~\{î\q环Y¶lÙíÛ·OŸ>ýìÙ³ƒfggÇÅÅ©«\QQamm-{ÙØØ8dÈ …’žž^PP0}úôÈÈÈ‹/vÁ°F‚ÊËË«©©©®®>|ø0‹Å:thKK BÈÂÂbÍš5Ê-°ÙlÿÂÂÂää䢢¢øøø´´´‰Dõß—ò=ªk³ë` ç$i¿~kËk·¦¿ÿWtúÊ›7ŸÊJ–-Kõ÷ÿŠËtÆÀ¦N:uêÔÎhùÿÙ»Ó¸&®µà' a »@¦‚,‚PT•[\*‚Ô[[E…R¤U¬¢×еPj+Ô¥·V¹Z7°‚Ä¥E¤¸rEX[Àˆ¸CزÍûaÚ¼1 !@Hžÿ§™“3ç|˜J¥fgg¿|ùòÂ… ÖÖÖ!ÑÅ%¾áççWQQQRRboo¿}ûv™…†µ´´ˆ®VÅ·/^¼hee¥¥¥åëë»{÷îêêjÑY$$$,\¸°¦¦†Á`¸»»GEE‰_×677#„X,–œAøàƒØlvVV~âl6[SS3,,ìùóçiii¡W¯^ám¾ÿþûW®\©¯¯—„#ÁdÍ”––ab×ââ=þ!ÔÐÐ ó7h4šœÅ«‰o‡„„øøø<~ü˜Á`¸ººâ£Z´hQsssRRB¨©©IþLo¯é!Ó†ƒìì;£FmèêâÉ©Ãåò-,¾´°øòÚµ?ÅËù|ÁìÙ»,øQ(*7*Å3}YY†a\.Wb»²²’Ïç›››`6wîÜøøx ÃX,™LÞ³gOss³P(lmm...G5{ìØ1éLÏ`0ðO322ìííeÊ–Ïç—””ÄÅŹºº’H¤ôôt¼ÜÉÉ©¶¶ßÎÏÏŸ0a‚x†c±X¡ææf9ƒðÛo¿a†ßù®¬¬ìêêzôè‡ÃEEEx¡xÀ2¡ÇH°Þdz¼#ü¿)Ò™¾¸¸ØÔÔTÎÀâ%¢m.—K"‘ÊËËñòììl|´B………˜Ø—.ÿ+€Ù{€:rs³æñÕÊ©ƒOÝ£7gïB$q×®…·n1Ï´GóôõõBd2Yb!D"‘²³³/_¾‚266.,,,))±¶¶ž1cƵk׈D"“Éœ0a‚¨M777éŽð '''üRµ»Bimmm§NBM™2eÛ¶m cóæÍ7nÄ?­®®¶°°Àh÷õõ}òä·Óh´ßã7¥¥¥žžžíííø®¥¥%BˆHü+1ijjVTTøûûOš4éèÑ£â:99u7=F"See¥t9Þ‘‘‘‘¹¹ù½{’÷îÝ›4i¾­ÈÖ×× QGööö¢šø¹‹¾tå‚LlmÍtuµ<è6K¡¿_‡$VçáaûÑG¿þúœøÏð†ŽÅ‹çäädffz{{ãsòB¡ðôéÓ,kùòåóæÍc±XVVV÷ïßõðáCé¦ðëK„PEEž]º+”†aØ'Ÿ|òàÁ_kþ„9sæˆ~i†_Ýâ‘ÍÍÍ%%%‡øá‡{÷îŰÿü´´4G¡PD Š×ïèè ¤Óéeee‰‰‰âáQæ (‰ôyýç?ÿùç?ÿ)ý‘(õ†„„ÄÅʼn?ißÖÖ–àïïï*2†4D"1™L|÷ñãÇVVVø¶èÿ7ª™0‰›âby?È»¦Jûakkç®]T_ÿàO}ÇÅÅ…††â%ÁÏÏ/++‹Ífs¹\2™L¡PÂÂÂètznnn]]]^^^TT”tSëÖ­«ªª*--ݼyó’%Kº+|ýú5þЀø¶žžÞ§Ÿ~táÂ&“yóæÍÈÈÈàà`¼Z@@@ttôÓ§O †¿¿ÿÁƒñr‡ƒo|óÍ7EEE¡¡¡7oÞd0;vìØ¿ÿ7ß|ÓÝYwuuq¹\MMÍŽŽŽØØX„Pkk«x™ƒ H$¡†††ººº/^-X°àÉ“'_}õ•œ¯ &&æÕ«W>>>yyy•••999S¦L±²²Z½zµœï!D&“ƒ‚‚"""žPü>½è´»íU«Véèè°ÙlÑQvvvšššNNN¹¹¹†q¹Ü¸¸8[[[===//¯“'O"©ûôÉÉÉ£G655]»vmGG‡ÌBì͇ÈÄ·ù|þöíÛÝÜÜtttlll6mÚ„×Ç0ŒÍf/[¶ÌØØØÄÄdåÊ•mmm<ÏÛÛ[OOOsuuõ¢E‹,--õõõ'Ož|öìYùƒ°oß¾#FŒ9211188˜J¥JÜq—E"O‚#GŽ ©¯¯—8YéŸÉq8œ 6¸ººR(—;w¶··w7°â=J<¯jbbbaa±~ýz|ôºûÒ»ÓÛûô‰s€·Tié“>ÚóæS™Š‹/\x!täÈò9s\eÖY¾<õá×t]]­þ‡„¯.ª”Uk·lÙR]]žž®ø!UUU¢ä%vå‚^ø1ìíßÌÞ†‰ FQ(šr&ð;:þº/Ș½Ç}ûí¢×¯;öìÉS~|}ÕÙÙÉd2SSSW¬X1ر€·dzÀ0A&“ÜÝmŠ‹wWA”éå¼èžF3ؾý£¤¤¢¡³ í­[·<<<ÂÂÂfΜٟv ÂÃÃ)½2ôÇ2=`øðò²»ySÎ5=OKKƒ@ È|"O$0ÐóÝw¢¢~árZ¿DÕf̘Áb±ä<¹ÖÑoµqT*õСCud‚^úc™0|L™2æåË–šš&™Ÿvtput4‰D‚üÅëž=A/^°`õz0<@¦ “'14¤äçËø9B¨£ƒ‡gz9÷éq#GŽØ·/89ùêÿû@a0  Ó† âÌ™c/]ê.ÓsutÈ=^ÓãæÎu ž²~ýÏÏŸ7+;LdzÀ°âëëRRò˜Íî”þ¨³“§££I&“ø|ÙkŠKˆ‹[@¥êñEŸßÃC™Æ`Ê4k–3†aW¯þùÁã%>ÂïÓkk“;;yŠ4E¡h&&~úÁÿþ÷¿/EFú÷-&“ùÓO?õíXdb2™cÆŒQ¼>dzÀ°bdDñð°ÍÏ(+ÓóttÈÚÚ䎅2=BÈÕÕjÆ9»wÿwÆŒ±žž¶½ fäÈ‘§OŸâ?Áo£^ýä2=`¸ñõu9x°@ ’HoÜ ìí5=nÍŸë×+W®<š—·F3èU${÷îÝ»wo¯@éà>=`¸™={‹ÕvçNµD¹èš¾W™žH$üôÓg::šaa)Cäöô dzÀpãà@suµÊʺ#QŽ_Óëèhö*Ó#„ )))aþY·uk¶òÂ`€@¦ Có统={Ç{ãû¾ÍÞãœ-~üqIzzÉÉ“=,vÀP™0 ÍŸïÞÚÚñÛoˆömö^äý÷ßY½ú½Í›³îÞ­QR˜ Èô€aÈÒÒÈÓÓöÌ™2ñBüÍ9::}Ìô¡M›æNš4zõêã,V›2Â` @¦ Oóç»çå•·µu‰Jð·áöùš!D&“^* —-Kéê‚§óÀÛ2=`xš;×Çãü.*Á¯éû“éB¦¦z™™ÿb2V®<Úãûó Ó†'33ýéÓÇfdÜ•tvò´µ{÷æ™llLSR–]½úç7ßœëw˜¨dzÀ°õÙgïþöÛŸLf¾ÛÕÅ'“5úyM›zT«”PÈô€á,$Ä‹Ãé<þ¾R-™Lêϯì$„½{??~dPPbEERÚ@é Ó†3*UßÏÏõøñ›øûòÈd’¶6¹£ƒ«¬öÉdRZÚÊñãG€+{04A¦ sŸ|2µ´ôÉï¿×"„Èd’¡¡N{;WâE¹ýA&“’’–9;[&þñ${0ä@¦ s3fŒ3Æìر!MM’¡!!Äfw(± mmrJÊrkkãààC§OÿïÖ-¦üxÛA¦¨*Õ!4nœÕŒccbr„·ûm6UUU¢ÿÄô‡Ã‰ŒŒ´µµÕÑÑqppˆíììTüð—/_~òÉ'666zzzžžž999¢BUU•²â”@ ,^¼Xüñ4厒¸¶¶6:>~üx}}}OOÏo¿ý–Ïç+r êB’™ ÄgïÍÌôB¯^±wì˜ÿǵ§NÝÌȆ˜µk×–••eeeÕÔÔ¤¤¤äææÒéôî*3™LSSSÑnSSÓĉ)JFFÆíÛ·?þøãààà‹/@Ø‘ „~ùå—ŒŒ U÷ÛÚÚêááQZZšpçÎèèèôôt___@ö2†âqmÚ´IÕ"ø•@MˆÏÞëêjQ(š ­>>ã>ýôÝ]».|ðÁx|ÝzpæÌ™¼¼ý‹ÏçææŽ;–J¥FDDtuuÉ,DoN‹o$&&вÑôéÓŸ>}Šoóx<:N£Ñ¨T*NçñxS§NE‰RiVVÖºuëÄO<666%%E´{éÒ%{{{ccã]»vá%çϟǧ,,,ð´‡SPP0jÔ¨ëׯK‚"‘ „Ö¯_ïää´råJ韘KwÚãw$³S„PZZZLL žæqºººt:=--MæÈ‹Ç)>ì---K—.555µ¶¶ŽŒŒÄôôtggç#F|÷ÝwÝýuõ 5šzõw¶Šv?üð‡­[³EµááÃ}k!”‘‘Ñcàà`6›_ï²ÙìÇ#„‹ŠŠLLLx<†aiii...B¡Ãáhii:t¨¶¶6%%ECCƒÃá>|˜J¥fgg¿|ùòÂ… ÖÖÖ¡ÊÊJüs|ÃÏϯ¢¢¢¤¤ÄÞÞ~ûöí2 1 kiiIJJÂÃß¾xñ¢•••–––¯¯ïîÝ»«««Eg‘°páššƒáîî%êðææf„‹Å’3|ð›ÍÎÊÊÂOœÍfkjj†……=þ<-- !ôêÕ+¼Í÷ßÿÊ•+õõõÒƒÐc$x_•••:::GŽ †a2;íñ;’Ù)~Ê gzãÆ &çëÀ«‰o‡„„øøø<~ü˜Á`¸ººâßBhÑ¢EÍÍÍIII¡¦¦&ùf†á7,$G¾ÇÃ`HI¹êæ¶M´»|yjxø1|[ Ο¿Ö¬ï¸\~ZV0Ó—••aÆår%¶+++ù|¾¹¹yAA†asçÎÇ0ŒÅb‘Éä={ö477 …ÂÖÖV@àâârôèQQ³ÇŽ“Îô ÿ4##ÃÞÞ^f¡ühù|~III\\œ««+‰DJOOÇËœœjkkñíüüü &ˆç*‹…jnn–3¿ýö†aø=ìÊÊÊ®®®Gq8@PTT„Š,szŒû;ÓcöÃ?ÔÔÔˆ*Èì´ÇïHf§ÝeúââbSSS9_^"Úær¹$©¼¼/ÏÎÎÆ¿#„Paa¡DòÉÌô0{PG4ša]Ýk|›H$ìÝû1“ùêСBÕõ¨¯¯"“ÉÛ!‰ÝØØxùò儱±qaaaII‰µµõŒ3®]»F$™Læ„ Dmº¹¹Iwäàà€o899=þ\N¡´¶¶¶S§N!„¦L™²mÛ6ƒ±yóæ7âŸVWW[XXàëëûäÉñci4Úï¿ÿ.^XZZêééÙÞþ×Ê–––!"ñ¯Ô£©©YQQáïï?iÒ¤£GŠèääÔÝ ô‰¸/¾øbâĉŸþ9ö÷¾œNå|G2;522277¿wïžD§÷îÝ›4i¾­ÈÈ××× ;;;|×ÞÞ^T1ñ0ú2=@-`&þƒ&++£çÏY¢Ý1cÌÖ¯Ÿ³wïÅÁZRvñâÅ999™™™ÞÞÞøœ|GG‡P(<}ú4‹ÅZ¾|ù¼yóX,–••Õýû÷EG=|øPº)üJ!TQQç‰î ¥aöÉ'Ÿ_(*ù׿f99YlÚt“µFˆªM›6ÏçÇÅÅ…††â%ÁÏÏ/++‹Ífs¹\2™L¡PÂÂÂètznnn]]]^^^TT”tSëÖ­«ªª*--ݼyó’%Kº+|ýúµè!yѶžžÞ§Ÿ~táÂ&“yóæÍÈÈÈàà`¼Z@@@ttôÓ§O †¿¿ÿÁƒñr篗 óÍ7EEE¡¡¡7oÞd0;vìØ¿ÿ7ß|ÓÝYwuuq¹\MMÍŽŽŽØØX„Pkk«x™ƒ H$âlmm÷ìÙ³wï^;íŽÌNcbb^½zåãã“——WYY™““3eÊ++«Õ«WËù:$â$“ÉAAAOž<)//ߺu+>¯£4=NúÀ0”T4aBŒh÷ÿ{bañåóço<>öðá‹Q£6;v£W-#ÅîÓ‹.»Û^µj•ŽŽ›Í•‘‘agg§©©éää”››‹a—Ë‹‹³µµÕÓÓóòò:yò$’ºOŸœœöóÏ«54º½4Ú¹s'¾Úƒ«¾^Æëœ!ÓÔ‚¦&Ib¢ÞÀ@ÇȈR]-ûV½¨Î‘#Ë?øàß_}vÇŽù2ë|õÕWÏž=Sf¬ô•±±1þ6@qéjL&q¹|‰B9å‰89YìÝûñêÕÇßyÇzÑ"é ¢ª04Á}z€ZÐÔÔ~øÎÑ‘öÇu=ûÑG—-óŽŠ:ýçŸ=W`¨LP D¡“x(ÏÑѼ¢B¡ä½}û|WWëåËSÙìNÕ€ª@¦¨MM „ÄCyŽŽæuu¯ÙìŽ'“I‡ÖÖÖµn]:¬Þ.éjL&!„$&ði!/ëi4ƒ}û‚óó&'_UE„¨dz€Z “5B\î™ÞÚz…¢YQ!ã‡I2½÷žÓÆsãâÎæç?T~ˆ¨dz€ZÐÔ$!„øü72=‘Hpp )xM‹ˆ˜ê~¬¬ì©’C@5 ÓÔ>{/ýC;ZoŸ¨‹ ˜2eLXXŠÌ¥ðj ÓÔÂßOäIþÐîw¬Œç½jJCƒ˜”´ÌÄDÉ’ŸàQ|0ôA¦¨…¿¯éedúææ¶Þ^ëéi;öyssÛêÕÇ$~¹ÀP™ þ~ö^röÞÅÅŠH$´éæ6r÷î ÔÔk))ð»;0tÁ{ïj¡»Ù{„Ð;ïX÷áš·`{CCkLÌ2YãÓOÿѯP Èôµ€ÿÊNzö!ôÎ;ÖýyÎÊ•3tu57m:-—-óî{ˆ¨dz€ZùæÜ;ïX×Õ½®¯gÓh}k<$Ä«£ƒ·uk6‰D„+{0Ô@¦¨™oÃÅMšd£¡A¼}›9oÞ„>·ÿùçÓÙìŽ-[²H$BHˆWß@Ùà‰<€Z “Id2©½½Kú# EÓÙÙ²´ôI?»øê«9ÑÑÿÜ´étlì~z† Èôu¡««ÕÖÆ•ù‘‡‡mÿ3=Bè_ÿš•žž‘qkáƒMMœþ7@ÿA¦¨ E³½]v¦÷ô´yøðE[›Œ+þÞš1cìéÓkjjšTW7ö¿Aú 2=@]èêju—Ë==mù|áýûÏ”ÒÑ;ïXÿúëzmm²¿ÿÞ¬¬ÿ)¥Mú 2=@]èêjutȾ¦·²2¦Ñ ÿ÷¿jeõennxáÂú+f|ùåÏ!!‡_½jUVËôdz€º P4e>‘‡›6ÍáÚµ?•؆qÃÿœœ/˜Ì†Ù³¿ƒ%íÁ`LPržÈCM›æxûö“înä÷™‡‡íùó_Nšd³lYJtô/ÍÍmÊm€ÁïéêBÎy¡éÓù|áíÛÌ™3”Û¯‰‰Þ‘#Ë33K¿ùæ\nîÝ熆zýVUU¥ÜŽÀ0ãààðÞ{ïõ¿ÈôuA¡hÕÖ¶t÷)fèèH»v­Bé™è9oÞøÄÄ+;vœIJ*ºwïH{;dz ††Çë;0{P††Ú­­r*LŸ>öêÕ Õ ££¹aƒÿÅ‹¬­µµÝ2220º‘‘‘ÁçËX¦¡ ÓÔ…¾¾Îë×ò2½··Ã£G/Y,ÕÞJwt4ÏÈXÝÜ|A¥½ ™ .ŒŒzÈôÿø‡=™LºråуaJxKŠ€LP=dz]]­éÓÇþú+cÀB`@¦¨ .—ßÙ)ï§9s\‹Šþìî;¼ ÓÔ…¡¡BHþe½ŸŸkWïúõÊ jÐTUUeµÆáp"##mmmuttbcc;;;?üåË—Ÿ|ò‰žžž§§gNNŽDý–@ ôø³Æ¶¶6:>~üx}}}OOÏo¿ýVÁgâ”;˜J™ . )!6[^¦75Õ›8qt^^ù@5L¬]»¶¬¬,++«¦¦&%%%77—N§wW™ÉdšššŠv›šš&NœH¡P222nß¾ýñÇ_¼xQü##£M›6õ*$‰^zÔÚÚêááQZZšpçÎèèèôôt___@Ðcû}o ÁïéêâïkúvùÕüü\RR® …‘8t¯Ò†š3gÎäåå¹»»#„ÌÌÌöïßúã?ʬ, ›ššD»±±±ï½÷^rr2¾;nܸººº={öÌ™3GTÇÔÔ4>>¾W!IôÒ£¸¸833³‚‚‰„rttœ3gŽ««ë‘#G>ÿüsùí÷!¼×ôua`Ðóì=BèŸÿÿêUëÍ›ƒ?O RSSÍÌÌâããOœ8akkkhh¸mÛ6„PDDÄòåËñš‡B¡Ü½{!tîÜ9777mmí1cÆœ8q!$ 8àì쬯¯ïååUXX(>ÕŒÏ<çææŽ;–J¥FDDtuuÉ,DoNS‹o$&&Š2ßôéÓŸ>}Šoóx<:N£Ñ¨T*NçñxS§NE™››ã²²²Ö­['~â±±±)))â%â}I7ˆUzzº³³óˆ#¾ûî;„D/òÏ!”––ƒ§yœ®®.NOKK“yˆxûâáµ´´,]ºÔÔÔÔÚÚ:22¿‹!Þ€ìwÀÀ3fcFÆí«Í›÷ÃÚµi*!Ôã›sBÁÁÁl6¿Þ d³Ù‡F566™˜˜ðx< ÃÒÒÒ\\\„B!‡ÃÑÒÒ:tèPmmmJJІ†‡Ã9|ø0•JÍÎÎ~ùòå… ¬­­B•••x À7üüü***JJJìíí·oß.³ð–––¤¤$<<ñí‹/ZYYiiiùúúîÞ½»ººZt .¬©©a0îîîQQQ¢®1 knnF±X,™# dw âcµhÑ¢æææ¤¤$„PSS“ø!x…ÊÊÊîΣ¡¡A"€7nÐh49C$'†a!!!>>>?f0®®®ø¸I‡'ÿ«Ç0,##CY92=@xzîHL¼Òcµ#G®ÛÙmäp:U‰‚™¾¬¬ Ã0.—+±]YYÉçóÍÍÍ 0 ›;wn||<†a,‹L&ïÙ³§¹¹Y(¶¶¶ —£GŠš=vì˜t¦g0ø§ööö2 åGËçóKJJâââ\]]I$Rzz:^îääT[[‹oçççO˜0A„§\éjDÁLZ°ÀýúõÊúz¶ªCêiÓ¦ñùü¸¸¸ÐÐP¼„@ øùùeee±Ùl.—K&“)JXXNÏÍÍ­««ËËË‹ŠŠ’njݺuUUU¥¥¥›7o^²dIw…¯_¿=$/ÚÖÓÓûôÓOƒ‚‚.\¸Àd2oÞ¼ŒW ˆŽŽ~úô)ƒÁð÷÷?xð ^ÎáüõE|óÍ7EEE¡¡¡7oÞd0;vìØ¿ÿ7ß|ÓÝYw× L¢^z<ߘ˜˜W¯^ùøøäååUVVæääL™2ÅÊÊjõêÕr†H¢}2™ñäÉ“òòò­[·âs-ƒL)÷à­°cÇ™¹s÷)R“Ë廹mÛ³ç¿*Š)vŸ^tñÚÝöªU«tttØl¶è¨ŒŒ ;;;MMM''§ÜÜ\ ø\n\\œ­­­žžž——×É“'‘Ô}úäääÑ£G›šš®]»¶££Cf!öæýrñm>Ÿ¿}ûv777›M›6áõ1 c³ÙË–-366611Y¹re[[ÇóööÖÓÓÅ\]]½hÑ"KKK}}ýÉ“'Ÿ={V¢ ñ¾¤”9>½ 7ïÓKŸ†agÆ ®®® ÅÅÅeçÎíííÝ"޾ē¡¡¡&&&ëׯÇïîë“C‰÷é ˜Ø„ o?~óÖ­mŠTŽ¿‘qûöí2™Ôsí^"ýlgË–-ÕÕÕéééŠRUUåàà úÇ_bWNáðЇS”ÑÈÌÌ RJ§0{P#ŠÏÞ#„BCÿÑØÈ¹tiðŸË“©³³“Éd¦¦¦®X±b°cCdz€11Ñkoç¶·+´€••ñ¬YÎÇŽÝTuT}sëÖ-°°°™3gö§ƒððpE ‡‡>œÚÛ>0{P#¾ðõÝsíZ´U‘ú—.•‡…¥^»mkk¦ÜH”5{†+˜½€¾ Ñ Bµµ¯¬ïã3nÔ(“ÄÄBU€jA¦¨]2™T_¯h¦'‘ˆ_~é—™yûÙ3–J@u ÓÔ@ Ñ êêÍô¡ Ü-,ŒþóŸ+ª‹ •‚LP/ææFŠÏÞ#„ÈdÒ¿þ5ëäÉ[½úÿCdz€z17ïÝ5=B(0ÐÓÈH'9ùªŠB@¥àÙ{€z‰‰É)+{zþü—½:*9ùê·ßž¿~}³¥¥‘RÂÐÐÐÅ:ÒH$’hù€þÐèð177ìÃ<üÒ¥ÞiiÅ;wžKL UJW®\©¯¯WJS`¸¢ÑhJi2=@½X[¨«{Íåò55{ñ †qóæ.[–æíáaÛÿ0¦OŸÞÿFPܧ¨—Q£F…ØË—-½=ÐÏÏõÝwvì8 7=ÁÛ2=@½Œe‚ª©iêñQQsËÊžæå Ñ7á dz€z1BWOO«¦¦/oÂqwè¹eK›Ý©ôÀPÈôµ3räˆ>¿ó..nB(66G© BéjÇÚºï™^__ûë¯ddÜ.*úS¹Q "éjgÔ(“gÏúrŸ÷ÏŽ÷ñqÞ¼9«³“§Ä¨PÈôµ3räˆçÏ›ûÓB|üâÆÆÖ-[²•ª™ vÆŒ1«¯g³Ù}nÁÊÊøÀ%§NÝ:y²D‰  éjÇÞžŠªªzÕŸF|}]V­š¹eKVyù %Å€J@¦¨Q£L´´4ú™éBQQÿ7Îò‹/ÒÚÛ¹J U€LP;D"a̳Çû›éÉdÒáÃKZW¯>Îç •J™ ŽìíiUUJX`ÆÚÚøäÉð›7«""Òá-¹`h‚LPGööÔþÏÞãÆyäHØ… ÷wíº ”P.ÈôudgG­®näñ”³B¼··ãÎ^9qâ¦R@‰`ÕZ€:²³£òx‚gÏXcƘ)¥ÁÐÐ44´FEý‚aèÓOÿ¡”6P Èôu4v¬9‰D,/¡¬Lúê«9ŠVTÔi‹óå—~Êj€~‚LPGÚÚä1cÌ~ÿýŇNPb³«VͤP4££° æ(±eú 2=@Mgùûï/•Þì§Ÿþ££ƒw¶½½kóæH$x 2ø¨)«‡•ŸéBáá3ÿýïà””kË–¥´¶ÂJö`A¦¨)«ÚÚ«M/^ìùë¯ë=ª3goe¥~¸@ŸA¦¨©qã,Bª˜ÀµæÌZ]]­ùóÌË{ ¢^èdz€š¢Ñ ÌÌôU—éBVVƹ¹¾¾ãÂÂR£¢NwtÀëñÁ €LP_ÎΖªv%: Eóßÿþ$55ìܹû3g&”–>QiwHƒgïêËÓÓ&+ëŽJ»¸qãÆ¬Y³¸\.‰d`dôþ¬YÎÿTÚ#Þ455¯\¹òî»ï*~dz€úš4Éfß¾KMM=uñâÅ .—›™™‰0‰õÔA``à‹½›ˆ‚LP_îî£ TVöÔ××E¥-^¼X¥í ܧ¨/;;ê;Õƒ*™ Ö&M²L†7Èôµæáas÷n Ÿ/ì@PÈôµ6qâèövneeÝ`€ª@¦¨5''s½k×*;ªªª"”öÀ?‡Ã‰ŒŒ´µµÕÑÑqppˆíìüëÝþ¡ªªJY‰ˆâ'†‰úþû﫨_ùbŒ8A¦¨5ðØß¸1œ3½r­]»¶¬¬,++«¦¦&%%%77—N§XïÕÕÕ÷ïßí677_½zuÀz—póæÍÚÚÚ—/_æçç?þ|íÚµƒ‰|éêîÿ°/.®âñƒÈÛáÌ™3»vírww733›>}úþýûÏž=;`½Ïž=ûôéӢݳgÏΘ1cÀz—`fffnnnaaááá‘——7X‘È™ îÞ}×Ãéb0žb !55ÕÙÙÙÌÌ,>>þĉ¶¶¶†††Û¶mCEDD,_¾¯Éáp(ÊÝ»wBçÎsssÓÖÖ3f̉'BB¡ðÀÎÎÎúúú^^^………âóöø4xnnîØ±c©TjDDDWW—ÌBô朿ø¶AbbbSS¾;}úô§OŸŠº¸té’½½½±±ñ®]»ð’óçÏOœ8‘B¡XXXÄÇÇ‹Z+((5jÔõë×y<N§ÑhT*•N§óx<@°{÷nGGG}}ýwß}÷Ö­[¢ö/^œ™™)šÀÿå—_-Z$úTº©Ç!ÔÒÒ²téRSSSkkëÈÈÈÎÎNñÝÝÝe¾‰D¥R»;e™_Vw+joâÄØÿû’*ZÎÈÈPä_Z„Ppp0›ÍNNNF²ÙìÇ#„‹ŠŠLLLx<†aiii...B¡Ãáhii:t¨¶¶6%%ECCƒÃá>|˜J¥fgg¿|ùòÂ… ÖÖÖ¡ÊÊJ<|ÃÏϯ¢¢¢¤¤ÄÞÞ~ûöí2 1 kiiIJJÂÃß¾xñ¢•••–––¯¯ïîÝ»«««ÅÏâƒ>`³ÙYYYxäl6[SS3,,ìùóçiii¡W¯^á=¾ÿþûW®\áp8 .¬©©a0îîîQQQûöí? KKK<~„Ðüann~÷î]<* …ÒØØˆŸ#†aÒMõ8¶†…„„øøø<~ü˜Á`¸ººŠÆð×_•|¼Ù{÷îµ¶¶²Ùì?þøcæÌ™qqq†ÉöæS!<™§,óËê.àÿTz›éaö——Ý;Õ]]üAŒA__!D&“%¶B$) ;;»±±ñòåË!!!!ccãÂÂÂ’’kkë3f\»vH$2™Ì &ˆÚtss“îÈÁÁßprrzþü¹œBimmm§NBM™2eÛ¶m cóæÍ7nUÀ¯¿‰Ä¿’‹¦¦fEE…¿¿ÿ¤I“Ž=*Þ”““¾Q]]maa?ÄîëëûäÉ“gÏžÉ9‹Å‹Ÿ>}Ã0‰©{™Mõ8¶õõõÀÎÎßµ··>¡ÌÁÇá©ð¶¶¶M›6Íš5 Ã0™§,óË’°rA¦4{ö¸ÎNÞÕ«v ÝZ¼xqNNNff¦··7>'ßÑÑ! OŸ>Íb±–/_>oÞ<‹eee%þhúÇ¥›Â/XBxbî®P†aŸ|òɃð]0gÎ>ÿÿÿ‡$ñs¾ŽŽŽÀÀ@:^VV–˜˜(þ‘(ךššŠRfsssII‰œ³ðöönmm½~ýz~~þüùóÅ?’nª»¡Ñh$‰Édâ»?¶²²’ˆPzð%P(”+V<{öìÕ«W2OYæ—Õ·€û2= ÍÐÕÕ*?_F^"¦M›ÆçóãââBCCñàçç—••Åf³¹\.™L¦P(aaat:=77·®®.///**Jº©uëÖUUU•––nÞ¼yÉ’%ݾ~ý¿±-¾­§§÷é§Ÿ]¸pÉdÞ¼y322288¸»°»ºº¸\®¦¦fGGGll,B¨µµU¢N@@@ttôÓ§O †¿¿ÿÁƒW­Z%~111âõI$ÒÂ… ÃÃÃ'Ož,z®»¦zX2™ñäÉ“òòò­[·Š_µã¤×ÐÐPWWWWWWSS“0räH333™§,óËê[À}Ñ«¹~®öìùï„ 1øÃVJ¤ø}zѵ]wÛ«V­ÒÑÑa³ÙâÛÙÙijj:99åææbÆårãââlmmõôô¼¼¼Nž<‰¤îÓ'''=ÚÔÔtíÚµ2 E•ñŽÄ·ù|þöíÛÝÜÜtttlll6mÚ„×ï.ò}ûö1bäÈ‘‰‰‰ÁÁÁT*U¼5 ÃØlö²eËŒMLLV®\ÙÖÖÆçówïÞmoo¯««ëåå…_銷ùÛo¿!„<(Ñ—tSŠŒ-‹Å 511±°°X¿~½hLÄ¿ éÁϤD"ÑÍÍ­¤¤ÿHú”e~YÝÜãŸJoïÓ0©Ç @ 1Ïüý÷ý÷¿_?R‰Ífff)å_Ú-[¶TWW§§§+~HUU•øKå$vå }|!г÷€Bï¼cmaa44'ð;;;™LfjjêŠ+;µ3 2= „@˜={Ü¥K僈 ·nÝòðð ›9sfÚ100W¤ˆ(kðÌÞÀ_.]*_¶,õöímVVÆÊjS‰³÷ ˜½€þxï=g##JNNÙ`2„„Å‹‹ÿOE¹+ã‰kkk£ÓéãÇ×××÷ôôüöÛoÅ¿'‡êB ÓÀ_ÈdÒܹné%üòË/ø/TªµµÕÃã´´4!!áÎ;ÑÑÑééé¾¾¾øëö¤1™LSSS|ÛÈÈhÓ¦MªŽðí™þßüùî½üãÚÁd _³fM]]J{‰‹‹333+((ð÷÷wtt ¸}ûvuuõ‘#GdÖ …¢UvLMME ÉiéàÿyyÙYXåæÊX¬Lm­_¿ÞÉÉiåÊ•ÒOÈ\´­Çµãd.à–––C"‘DëêêÒéô´´4™«íM:!dnnŽÞœ½—^˜)==ÝÙÙyĈß}÷jÇkêÕ¯ï`ØÛ±ãÌÔ©_+ë: ¾9gÈBUVVVTTèèè9r{‹ŽÌEÛ0ÖŽ“^À­¹¹!ÔÐÐ Ñû7h4šœ%øðjâÛÒ Óá!-Z´¨¹¹9)) !ÔÔÔ4@çÖ²€~*+{jañå½{5Jimxdz Ã~øáƒššQZ•¹hÖÓÚq˜¬ܺËôÅÅÅø›áQ7Kðá%¢m™ Óá!J„ñ–êC¦‡Ù{xÃĉ£h?ÿ¬’µFÞ^_|ñÅĉ?ÿüsìï9|9ëÔÉY;ÉZÀÍÈÈÈÜÜüÞ½{Þ»woÒ¤Iø¶"«íÉY˜_¶G< õ™$-]ê}úôÿ^¿nì@†"‘xäÈ‘7nüôÓOx‰œuê䓹€[HHH\\œø“ömmm þþþø®"«íÉY˜N´®Rß3€î,^ìI"²²î v C‹­­íž={öîÝ‹å¢b$~IDATï*²NL2p‹‰‰yõê•O^^^eeeNNΔ)S¬¬¬V¯^%s >‡#Þ²" Ó©!Èô IOOkþ|÷cÇn`ðn»7…‡‡Ïž=ß622Ú»woHHˆ“““Mpp°èú[¾;wêëëOœ8qÖ¬YãÇOHH@ܹsÇÃÃN§O˜0aÛ¶mÁÁÁùùùZZZøQ!!!³gÏž;w®¿¿tt´···………Dã°´´ôôôôóóóóó‹ŽŽVÞÙ¿­àm¸ Ãï¿¿œ={wVÖ^^výiÞ†Û°Úž8x.(Ǹq–&ŒJK»9ØÐ_é@¶¥K½ÏŸ¿ÿâEó`¢î`µ½~‚L²-\8ÉÊÊøàÁ‚ÁDÝQ©ÔC‡ vo1Èô ‰D Ÿyòä­úú׃ }™º<ÅØX7)éê`@ßA¦€nijj¬X1ýøñððö‚Lò,Yò"‘pì<„ÞVé@í+f$&^a±Ú;úBc°€¡nÍŸŸ¾µgÏ¿ývQoÅ\­ž@ÿihô.wÃ;ò g·éôŒË—鎎æ½:°³³ó×__¸€þ ‘HsçÎÕÖÖVüÈôÐ3¡ó÷ßkm="55l°c wà>=ôŒH$Ðéï_¼X~çÎÓÁŽ€ÞkzPT``"›Ýyþü—p™ÞðÇ ŠÚ»÷ãÇ_ÁûqÁÛ2=(jäÈ‘‘þß©¢¢n°c@Q0{½ bóçÿˆaÂÜÜuD"üv¼àšzH$|ûíÂû÷ŸýüsÉ`Ç€B Ó@︺Z­^=kÇŽ\&³a°c g0{½&ƒƒ½|Ù’—·AOOk°Ã@¸¦€^#‘ˆ„r8tzÆ`Ç@ Ó@_P©ú„ž??-­x°c@ÈôÐGÞÞ+VL=óûï/;º÷é ïxrd¹¶6y°Ãà/pMÊñÎ;Ö'N¬¸{·fÕ*˜ÆC\Ó€21Ï‚ƒ;;[$'/32‚ôÀàƒLJVSÓšÔÕÅ?qb…ƒm°Ãêfï@ÉF2ÉÉYK£¸}›9Øáu™”oÄÝÌÌM›æ¸xqâþS³§`Áì=¨ÐéÓ¥QQ¿¸»:xðS*U°Ãê2=¨Ö½{5‹¯©É²´„×ãƒ~qvvÞ¿o‚L*G"éxxL=Úr°o±gÏž•””ô!kC¦•#ƒx‹effõ!kÃyÀp™Î ÓÃdz`8ƒLÃ_UU@PJSkÖ¬™2eŠh7!!@ <~üß}öì@(,,ì[ï§N"ÈòË/¿(+þÞjkk£ÓéãÇ×××÷ôôüöÛoù|¾"*qÌû 2=€^˜9sæÝ»w;::ðÝË—/‰Äüü||·¸¸XSSsêÔ©â‡mÚ´ !Äd2MMMå4þÑGÕÖÖÖÖÖÞ¼y!Tû·wß}oAÕ$"lmmõðð(--MHH¸sçNtttzzº¯¯¯@ {­BñÃEg=è Óè…éÓ§óx¼;wî „:::®]»öÙgŸ‰2}IIÉäÉ“uttÄ155G …¦¦&9ëè蘛›››››™™!„Ìÿfaa· jÆÅÅ™™™øûû;::ܾ}»ººúÈ‘#=.:ëA™†ššêììlffâÄ [[[CCÃmÛ¶!„"""–/_Ž×äp8 åîÝ»¡sçι¹¹ikk3æÄ‰!¡PxàÀggg}}}//¯ÂÂBñ9d|J977wìØ±T*5""¢««Kf!zsþY´M£Ñœ‹‹‹B7nÜ9räÊ•+ ð9íâââ3fˆêŒ5êèÑ£ø±øµ¾¹¹9Þ&Ç£Óé4J¥Òét×ÝàˆG" ºk¶¥¥eéÒ¥¦¦¦ÖÖÖ‘‘‘2ÏN"´´´˜˜‰$ŠDWW—N§§¥¥É4ñÃÅÛ—î?‘ôôtggç#F|÷Ýw½ûsé €Š!„222z¬Ìf³“““Bl6ûðáÃ¡ÆÆÆ¢¢"‡aXZZš‹‹‹P(äp8ZZZ‡ª­­MIIÑÐÐàp8‡¦R©ÙÙÙ/_¾¼pႵµ5B¨²²ÿßðó󫨨())±··ß¾}»ÌB ÃZZZ’’’ððÄ·W¯^=þ| Ã6nÜÎãñŒŒŒŠ‹‹;;;555/]º$êèý÷ß¿råʽ{÷Ä{rBBÂÂ… kjj †»»{TT”è#‰šâ»òª»fCBB|||?~Ì`0\]]Eg-Ѿxass3B¨¡¡A⛺qãF“3’Ò1K÷ŽŸÈ¢E‹š››“’’BMMMòÿB222ú–µ!Ó€Ê)˜éËÊÊ0 ãr¹Û•••|>ßÜܼ  Ã°¹sçÆÇÇcÆb±Èdòž={š››…Bakk«@ pqq9zô¨¨ÙcÇŽIgzƒš‘‘aoo/³PN¨§N¢R©B¡ÐÝÝýôéÓ†-\¸pÇŽÅÅÅ$©µµU¢#™yÃ0''§ÚÚZ|;??„ ¢ägz9%³Y.—K"‘ÊËËñÂììlÑYK´¯H¦/..655•3’mÊì?‘ÂÂB‰àåès¦‡Ù{*ôõõBd2Yb!D"‘²³³/_¾‚266.,,,))±¶¶ž1cƵk׈D"“Éœ0a‚¨M777éŽð ''§çÏŸË)”iÆŒ¯^½*--½ÿþ{gòóóËÏÏ/..öððÐÓÓÕtrr’ÓNuuµ……þt½¯¯ï“'OäÏÿ“3P2›­¯¯vvvx{{{‰Äd½bÖÈÈÈÜÜŸwïÞ½I“&áÛŠ šœÞ---%‚WÈôðvX¼xqNNNff¦··7>'ßÑÑ! OŸ>Íb±–/_>oÞ<‹eeeuÿþ}ÑQ>”n ¿ÜDUTTàɦ»B™ÌÍÍÇŽ»sçÎñãÇ›˜˜ „|}}KJJ.]º„ߤ‘ŸÃð+cÑtIIIƒ éfi4‰Db2™x…Ç[YYáÛøã/^¼ÙTHHH\\œø“ömmm þþþø®"ƒ&§w"q ²0dzx;L›6ÏçÇÅÅ…††â%ÁÏÏ/++‹Ífs¹\2™L¡PÂÂÂètznnn]]]^^^TT”tSëÖ­«ªª*--ݼyó’%Kº+|ýú5~/\b!4sæÌsçÎÍž=ßµµµµµµÍËË“Èô2q8|# ::úéÓ§ ÃßßÿàÁƒ}š7I7K&“ƒ‚‚"""ž99yôèѦ¦¦k×®íèèYˆ½yÓZâÆùÏ?ÿŒºxñ¢¨dÍš5D"±¥¥Eº¾h›Çãy{{ëééáål6{Ù²eÆÆÆ&&&+W®lkkµ&ÿ>½ü’Ù,‹Å 511±°°X¿~=~‚;wî422²³³ËÍÍ•!†agÆ ®®® ÅÅÅeçÎíííݤøáâ1Ëì½»éNŸïÓêµ rÊZµvË–-ÕÕÕéééŠRUUåàà ú§^bWN!oà­Ï«Öj¨"ÊÕÙÙùòåËÔÔTübÅÁ}zx ܺuËÃÃ#,,læÌ™ýiÇÀÀ <<\‘B ß[4h0{*§¬Ù{ Îú<{×ôÀp™À PÑ¢®Cg­Ø¡2=€A0tuö ÓCgQ×a2=€ž544´··‹—È\õu³«ô꺢C0 ;tèиqã fÍšuþüy¼\f;Ò+Ò ‚Ý»w;::êëë¿ûî»·nÝê1rµÓ‡·íè¤À;ò†¬Û·oöÙgfff/_¾/ïî zHj1V™«ëŠIJJ²²²ÊËËkhhÈÏÏ···G/9#½¨«ôŠ´ûöí_¥ù¼xœùùùø ˜Læ —êÀªµ0t½™¾££ãøñã“'Ož8qâáÇñµhÅÉÉô‹±Ê\]Wtˆ««kzzº¨Yüõ½2ÛÁd­Hëèè(½J¯D¨/^¼ˆµ¶¶ž7oÞÅ‹’i@Áªµ”æòåË£G.((øñÇïܹ³råJñµh¥aoþÈ[b1V™«ëŠ*?~üØÕÕU´;nܸîÚA²V¤}öìY«ôZZZnß¾Éd†††~ýõ×ÎÎÎÏž=Sl$†Èô$™™™7îæÍ›7nÜhii‘SS檯‹±Ê\]WôéèѣŗÖ}ôèQwí Y+ÒÚØØô¸J/®¾¾þáÇϟ?www×ÑÑ‘sRà dz’Æ_XX˜ýçŸ:::~þùçwîÜ‘¨#gÕW 2W×}ºfÍš7^ºt©©©éÊ•+Û·o—óƒxéiW­Z%¾JoLLŒÄ!B¡ðÒ¥K ,˜:u*†a7nÜøùçŸMMM{=(o/%ÞB z ïÓ‹477ïÛ·ÏÎήººZâ#éU_±nc•^]WtŸ^ |ÿý÷vvv†††þþþ¹¹¹fffݵ#½"-ŸÏß½{·½½½®®®——WII‰Djûå—_¦NšžžÞÕÕ¥ºQ°j- ]Ãà½÷B¡P(jh(ÔóçÏ9rüøñønVVÖÎ;ïÞ½«¬öy<žøþ·¼÷€ ‰DU¤y„ƒÁX²dIYYY{{{IIɶmÛ>ÿüs%¶?<Ò|ÀúôÓÆÛÛÛçÏŸßÐÐ0f̘°°°·e5Ø·dzƒICCcçÎ;wîì@†-˜½†3ÈôÀp™Î ÓÃüžTŽ@ ¼óÎ;4m°o±úúúô!kó÷ r_}õíÝ¡ 0 °zTÚÿ`?LImU9«&Uøaf’<ÝôÐÌŸšizh¦é ÙQÏØ5j€kIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/tab_a.png0000644000372000001440000000021612502417165021732 0ustar robertousers‰PNG  IHDR$ÇÇ[UIDATxíK €0C'o¤(Šˆ[Žà%Üxÿ#Ù©­ç ùÁöó¦W¦e# 3t I 3+¼øEã~\D½9¯Ûàè’wM·¿öÿ}Yõ_êA4Yžã}IEND®B`‚././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__coll__graph.p0000644000372000001440000001105112502417165033263 0ustar robertousers‰PNG  IHDRà€»òìbKGDÿÿÿ ½§“ÞIDATxœíÝkPWð“ Ô!‚¤P/ híT«Ž¢"Šˆµ‚Š(ˆT¡kÕ©ŠV§µÈØZʨàAÀ*e**-–ŠPPi}kÁ*(0Éeß;oÞ˜›Q"YÂóûtr’=ûdóïžÍæHI†!ˆŠlèÐ     jè´yôèÑÆE"‘¡ 1ZæææIIIŽŽŽ†.D#B´²²òÒ¥K†.Ähååå…††B@ûåܹs†.Áh‘H$C—ðp        ú úý&ÑÛÛõî»ïZYYM™2%66V"‘¤’A: zzz&Ož\]]}ðàÁššš]»v:ujþüùR©Tíë Þ¦Óé;wîÀb aÜf2&û÷ï·µµ½zõ*…BA;vÁ‚'""Bõõ2™¬³³o3Œøøø-—Œá J"‘²²²ÜÜÜlmmããã³³³‡þÕW_!„6oÞŽ¿R Ðh´[·n!„.^¼8qâDsss—ììl„L&KLLtss³²²š>}zYY™â”ŠÏ°.\7n“ÉܼyóóçÏÕv¢§cÅvNNΞ={ðtâ,,,¢¢¢rrrÔ5mÚ4„Ò8ÝÝÝü1ƒÁ`±XÛ·oÇl#‘H§Nrss³¶¶NHHx£Ç|à`–››«K…¡U«VñùüŒŒ „Њ+ø|~jj*BèÉ“'¿üò‹X,Æ0,''ÇÝÝ]&“ 33³””.—›™™I¥RAjj*“É,((hmm-..f±X¡úúz¼¼áããsÿþýÊÊJWW×½{÷ªíÄ0¬»»;==/OÞîêêButt(Õ_QQ1räH-ãã/Sl‡„„x{{?xð ®®ÎÃÃß)Bhùòå]]]ééé¡ÎÎN]]nn®nŸ†aI@kkk1 ëëëSj×××K$;;»«W¯bæççaÇ3119tèPWW—L&ëéé‘J¥îîîÇ—{âÄ Õ€ÖÕÕÉksuuUÛ©©NM½qãƒÁÐ2>Þ#o÷õõQ(”?ÿüï/((ÀwŠ*++S|ïº:‚Ô¦x„••BÈÄÄD©¢P(K—.-((xòäÉ•+WBBBB#FŒ(++«¬¬d±X³gϾ~ý:™Lnllœ4i’|̉'ªîh̘1xcüøñÍÍÍZ:UÑét;;»Û·o+õß¾}ûý÷ß×}¨ööv©T:zôhü¡«««ü•£FR|ïFÀHª]```aaá¹sçfΜ‰OÜB¡P&“åååñx¼ðððÅ‹óx<‡;wîÈ·º{÷®êPøi !tÿþ}< š:Õ Ù¿¿âwöÞÞÞƒúúúê>ÔÈ‘#)Jcc#þðÁƒx›L6ºÔЧpmtŸâåÓ™Ú¶D"a2™#GŽäp8øSB¡ÐÜÜzôhSSÓñãÇ_¸pð¾¾¾ýû÷;;;[ZZNŸ>ýôéÓªÍÈÈprrb0›6m …j;±Ã¤ØÆ0L lÛ¶ÍÃÃF£¹»»ÇÄÄ<{öLÓøb±xæÌ™–––Jãðx¼ÐÐP{{ûÏ?ÿß)t éP]ìÞ½;88ø•6Q –ÒC-¯GCéŽø5þõ"‘¨µµ5++ëÌ™3†®¼2£»¦VqóæÍÉ“'¯[·nΜ9ýç­·Þb³Ùºtêq|@Âü‡Î;Dä ;‰”››»bÅ C¢‘ñŸAÁ „„„6n3¥¥¥º]‰D2„¹9üg¯7„¨ƒƒ…BD7_¬­B<^¡¡ Ñ…B‘ÿŽOL„¾Í4¸´µ=}ÿý}$ª­ÝÇdZº#“‘Þ””Ô‘É$ +/¨¯ ª7gÏVÉd2™ åæVºãÕ¦¦Ž?þhÆ0„a²ººæ¦¦CWd$  úqáÂ-*?˜$*•üÃ0ËëT?rs«$Þ–Hd0Ëë TîÞmùçŸNÅž‡Ÿüç?­†ªÇ˜@@õ °°ÖÄ„¢ØcbB),¬5T=ÆÚ_2–—W-¿ð·kÄbi^^5Ücî?hýþ{SGGjÿ¿ÿòÿýဗcl  ý¥:¿ãLL(EE0Ë÷´_ÄbiaaÒü.ª @ýS@wÐ~©®nâóE ™J¥P©ÜÿÚä§O…0Ë÷,é>_ô÷äsrn „V¯ž.ïùè£÷ÞzËÜ• ¨>±Ù'B©©a†.ÄxÀ                                                                í…¿°|íÚµ††V3Øååµ „ ]È 6fÌ//¯ÿ?ÆP©TÃf Èd™L3tƒ•JUÌä gP‰=gÎÕ†´Ÿþyß¾}Š™„kP@hP@hP@hP@hÄ hKKË ·úÇËË«¥¥E{ŽãÈ-X°à³Ï>3à͸ÎÎΘ˜˜•+W.\¸022òúõ놪éûóR‹X%¬ÄÄÄóçÏŸ?>33“Åb)}ÓÔ .—»dÉí¯áóùfffÑÑÑ)))sçÎýú믫««õ[‰vŠuZZZ®Zµêîn|ê„N§[[[#„¬­­###ž>}J§Óõ¸ ™LÆç󵿆Ãá¼÷Þ{QQQøC'''—››;eÊ=V¢bÇ_¿~ýÝÝ+ŸA½¼¼JJJÂÂÂüýýOŸ>}ùòåU«V-Z´(++ !tìØ±„„ü•B¡Ð××·¾¾!ôÛo¿…‡‡ûøø_¾|!„aXaaaXX˜ŸŸßÆoݺ¥8YàsGEEEhhh@@À±cÇÄb±ÚNôâD£û¤£ZBH"‘¤¤¤¤¤¤H$Õ ) •Jµ°°Ð²‰ö£„ñññK–, LNNîëëûôÓOBK—.Õ2lyyù²eË‹ Û±c‡¦1ñJ®\¹öÑG={Vþ!ªvªîQ*•r8œ   ÿ¸¸8@€R¬Sñhë¾÷Wò:S|MMMrròúõëÓÓÓoܸ‘™™¹aÆììl>Ÿ?{ö슊 ©TŠª¨¨°··wuu‰D{÷îõ÷÷?{ölhhhBB‚H$*..>yòdDDDvvöš5kâââTwTTT{óæÍÓ§Okê¤ÓéÛ·oÇŸUlk¡¶$„P~~>—ËMMMýæ›ojkk9ŽüõB¡P(vvvfffΟ?ßÄÄJÓ&ZŽBèÈ‘#)))¬®®>sæÌ÷ß*((Ð4¬@ àñxŽŽŽŠodذaL&o«Ž‰÷ÿúë¯IIIl6;55µ§§GS§êóóóËËËãââ>üøñ㜜„Rr¯´wݽN@ƒ‚‚h4šB(88˜F£ùúú"„zzz<<<¨Tj]]BèÊ•+>>>$I,c& MMM}}}/^¼hffvþüùÈÈHOOO›©S§FDD¨îhÆ ,ËÍÍ-""¢´´TS§……Å¢E‹ðgÛZ¨- !TRR²eË&“éââÂf³«ªªð×GDDøùùùùù-_¾üòåËAAAò¡4m¢å(I$’k×®mÚ´ÉÞÞÞÅÅeíÚµòw§eXüª—D"©}GZÆô÷÷·´´\°`BH>;«vªî±¸¸xݺu...ÎÎÎ;wîtww×t<_uïº{kP†Â¸Wl#„Èd²§§gyy¹‹‹KMMͶmÛBVVV‡ÎÏÏçp8cÇŽ ž:u*—Ëuuu•éâ⢺#‹…7;::´tj¢øUF±­¶$„P[[›â*ŸÇsrrBÏŸ?ÏÊÊJHHHJJŸҴ‰–£ÔÕÕ%“ÉF…?tppP}#ªÃZYY1âŸþQ ʽ{÷¾ûî»#GŽðù|Mc2 ŽkêTÝ£X,–m''''''¤–w¤vïºÓÿ—¤9sæÄÄļóÎ;&L°µµE=þ\&“íÝ»W"‘\½zu÷îÝEEE ãÁƒ£GÆ·zøð¡êPÍÍÍxp?~lcc£¥S-&“ÙÒÒ"?Ä=¢P(ø„¨¶$++«áÇ>|Ï">¥*iffæëë{éÒ% Ãð“ÙK7Q5bÄ2™Ìårñ¼µµÿ©vÆŒ¹¹¹ûö퓟GKKK%‰™™™–1ÕžtU;U÷øÅ_´µµ9;;#„*++W¯^ýªïHÓ)_Gú¿Í4qâD©TzâÄ |vC‘H¤¨¨¨òòòÞÞ^±XL¥RÍÌÌ.\˜œœ\QQÁãñªªªÒÒÒT‡JLLlii¹wï^FFÆüùó5uöööãÏ*¶}}}=zãÆ .—[[[{àÀüÚQmI!OOÏôôôöööÆÆÆ;v©VeaañìÙ3¡Pˆ?Ôe%T*ÕËËëèÑ£\.·©©)33sÞ¼yøSÚ‡ ¿sçNllìÝ»wOœ8QPP€_iSGª{ôññÉÈÈhjjjjj:räH{{»üÅò:_úŽúIÿgP2™Ÿ¸uÙDÕ–-[###MLLæÎB¡P&L˜°lÙ²üQÓ°t:=---999::Z(:::8p`Ú´išÆ|¥Nud2Y$EEE‰D¢iÓ¦á5ØÙÙ)Ö©å½ÒÞ5y#Ëí222ÚÚÚ¾üòKÝ7iiiY½zuYY™Ú‡Z:1yãËíúúú¸\nIIɇ~¨ß‘ÁФç€þõ×_l6{áÂ…“&MêÏ8‹/Ö¥7XQVÔƒA‹h#‰Ž?^]]Íår===W®\I¡P^º!|ŸÓ8ƒjôìÙ36›}ïÞ=6›––RZZº}ûv™L¦öõ¼mˆ€3¨F'Ož¤Óéß~û-™LF±X¬)S¦¬]»¶¤¤DíÏý¼mˆ€3¨F¥¥¥kÖ¬ÁÓ‰377_¹reii©Ú…¼mˆ€€ª‡ÿ­¸œçêêúèÑ#¼­´ðo€×¡ ÐWC"‘ä× jW*ysëІ¨z–––ÖÖÖªÿ8®¡¡aìØ±x[—…onÚÕhÞ¼y'OžTüÎ.‰Îœ9óÁà›››ñ†–…òuhøC=®C"  ………uuumݺµªªª¹¹ùúõë6l`0ò{IjWØ:´!æh4ZZZ‡ÃIIIimmµ··÷öö ”ÿk$¥…JëåäÞÐ:´!~‹ðCѿŃAú:`á߀€¾:¾uëVCW1$@@¡A@¡A@¡A@¡)ߨ¯©©Áÿˆïï¿ÿVîRüÒÈW?`(o¿ý¶ÆÿOD× €Ð  €Ð  €Ð  €Ð  €Ðþ ͯÃ×eÎÖIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized__coll__graph.png0000644000372000001440000002144412502417165032553 0ustar robertousers‰PNG  IHDRÓÍ­¹ÒebKGDÿÿÿ ½§“ IDATxœíy@Çÿ÷gCÈ! ¤‚ˆ¢ˆÚVí׋¢±XQñÑŠ¤E¼ñFZ¼ZQ@ðDETPD<€‚bµxkDi¹¹%ÁHȵÏÛ'$„!K`^ÍÎÎ|æ33ïìÌìnvE¢tx;é£@åAð*‚Py| Šp8œ‚‚¡Pˆ—7ª‹––ÖСC»n§®®®²²²ëvº0tèPMMÍ®ùLyL&³¾¾ÞÈȨkŽõ9ZZZ***¢¼ÚÚÚææf]]Ý®›ê>êêêLLL©< ;;»®XìƒÔÖÖ¾{÷NQÖtuu{xÜ»w¯ëFà<‚Py|€ÊƒàTº]y………‚tw)¢ºÔ}ôØÊ*FyÅÅÅd2Y!¦º qõõõ7lØ€¯? §­.豕UŒò„Ba}}½BLuâ’Éä½{÷âëÂi« zle;£¼””{{{MMMKK˸¸8Àøñã‚ððpkkëþýûÿïÿ{üø1–Kü²/æñxÁÁÁ&&&ÆÆÆÁÁÁ<ïÆfff ommÝÔÔÄçó·oß>hÐ ##£%K–444´•3žœœ+ Ho‚F£-^¼øÅ‹ÍÍÍ999[·n]±b…rŠ–òf¨ª£««ëç燷ªAHHHssóìÙ³ëêê,--}||”Öt½PyÆÆÆQQQx{¡‰Ä]»víÚµKùEÃÑ‚Py|€ÊƒàT¤¬0zþ?Ep¹.W ££Ž¯}r ‡Óé.hihè«)Йîã3åihh ’ŸŸ—7%%¥àúõ‚uë¾¶³Ãùè.þíYÜN]]]ccc‡s¢ þ¶&=SÝb#‹dؽ_‰@DCC£«FPUþ~Þõë/~þ9NM°oŸ‡§çx¼ÝÁ >G˜µ¥¤4뢆,ûs”šº L¢TÀEØÛ„AA ;v$ …*ü+ê4Íy7|þ)ËfôÍ5TBv@Õ•7x0YKëßË~LLöÂ…‘L&_—”LÝÛ¦ÄùyŒ"*@ DÄÄ^oäEµ•‡ ÈÈ‘ÿ¾{' srЦO?XRR‡¯WJ£ðý†O>—%òQ@ÙV o§äEµ•3Æ‚Dúw5Çç «ª\\çäáëU·ƒ‚çÑUY[JQ> þc(Tžò°·ÿB øo)Çç š›[æÏ¼rå)Ž^u+üaÆÆ’—±U(øoj‹¨!†öÃѱÑ ”Gmµ°„`ÍšøÝ»oö¾5›ÎOý)¿4«•¸s¢o®¡¦Þ?' •Wž…Å‹ د‘‘™¾¾gØl..ŽuŒbεÅyÿa£üÖ¿(‚bl¯‹WC啇 ˆEê)¡½u‹vìX¦’]ê>ÒƒŠ›jxB ÙPmTf’zòcÆX¨«·~ ¨¦F@ÄÃãËeË&ââUw0e»¹¥& 1¨¢|Tµ”×Þ upÄç D‡ØŸ§Fޤîß?Ä3ÜÜêLFiÏ»<¼ •þ×Árn“|¶¼0¦2Ë Ð;”'¾ÈPSSëר©IºpÁ×À@•æ=ò‚€¡ß@…è“ß*9Ÿøáß»**ôôC•|m ssr¿~$Á†×¬¬MMÒîÝ7ñö«»à²O#*-œôÜNYXjAÄh„ŠýÌzƒòdÜ8KÓ””Õ‡-43°y³Û¥K_¾|·kÝÂË“ÕB>úU€©‰½¶ûE›ÿ…RIÚj”±*óÜ CµßU‘‡Ç1«%5u- 2·¸ä¡¡„“¸0oüZªÝBÕÞ¶¤7\ó¤²k×Üwï*{ß“ŒGûË ,5‡ÏïÑ_h•‡^«¼aÃz{³{wJoz{¥4³¡âiã7¾@TÿBÞk•vAQpðà]¼Q(xUi1U ƒŠMé¤Òkçy/愆^¹{7ÈÖVúsÕâSY‹š¢3çÿ(„^®<¡us;¢­­qùòÏxûùŒÞ<Úä×_ç=zTxóæëöSC”H/W`Ô¨/<<¾ »ÞÜÜ{^Zéô~å6ovc±Z""þÀÛÈô å‘É:ë×wüxfßù‹Fϧ—¯0DðùÂï¾;ðņgÎ,ÇÛ—Àe j±_/¼@ôÂ*I…H$ìØáž––ûÇ Û|[ <ù½â¦_Ç>ù€ Haaa7ù£@úŠò'ussغõ—ËÇÛ¹¨}Ó”—ôÑ~‰IwÇ}“Ä>¤<@XصµÌ˜˜ûx;Ò>¨<ÜWN¯k9Í ;ìã¾IbßR…¢àtäHzuõ'¼}i‡n|¤°Ç¯£¶ŠŸ0aÂáÇt:@ Ajj*–&--ÍÊÊÊÀÀ`Ïž=XÌÍ›7G­¥¥E¡P°­ÅwèÇ.~[^åhiá}óÍîŸ>‡·#²`7ðÎ9¾þë`¹ä©;wΜ9EÑääd]]Ý1cÆ (úìÙ3MMͦ¦&Eßÿ=“ÉLLL|üø‘Édª««ûøø|øðáüùó€ÚÚZåïÝЊ>§<EïÞ}C¡¬yô¨oGÚäá¾÷çiÜ&¾ä©gÏžéèèp¹ÜuëÖmÚ´‰D"1ŒððpWWW,àÞ½{(Š @AAAKKK^^‹Å÷ïßÇ"qW^ßm1œG89ÙnÞœÈçwïwæ:Ÿ-,ÍjëO!iIùãèÑ£µµµŸ>}š=k֬ѣGggggeeÍœ9S”ÛçM´Å™ººz~~¾‹‹ËرcÏœ9£”JÈŽªÇ‘’’:só Ó§ÿÄÛé´°øBA›g—-[¢««ËårCCCtttJKK±³@b‹©ææf ääd¡PÈf³¼æáˆ…ù§Ÿ¦ìÛw«¾^‘šUêÚjHÛ=ãêêzüøñqãÆ‘H$''§3gΘ›››››·•¾¥¥…Ë媫«³ÙìíÛ·Dß$Uìwv;DU`Íšéýú‘öí»…·#fúôégÊ”)€o¾ù†Ë劵’èëëù½/p*èéimØà›—W…‹¯ÏV7ä_Û«>{Õ.Pyàé9~äHêöíו_tc%÷õé‡j›ô†ÿ2ÊTÈÎîܺESrÑO~«ÐHµ´[^ÂëÉ@åýËØ±óæ}¹mÛ5eþE­òYcqcÜ*Ôçîé@åýÇ–-n,'2RIßUòÑGûÊMÔ3Ÿ¬§œ{PyÿadÔíÚïŽË|ÿ^/ë²ëy2®-,Dôõg­Àþ¢fnN>uÊo_z9ðš÷D"aÇŽÙwî¼ÉÌÌÃÛ—^¼æIaÅŠÓyyUYY!’›@¼æIaçN÷ššO'O>ÀÛ‘Þ TžLMõýý¿=|ønMMOÿ‹šê•'€§tzñÖ¸•' bX؉‰Ï»Unn|mõ«žøþ½òÊk—‘ŽŽ6Û¶]ß?·+ÔÿÃÎ9TÁ,oQˆ5U*Oÿ÷îùù5.ä(À î+7²Ó²þÞPÖT¨úˆV*Pyí3gÎØ¯¿¶Ü¶ízçž÷4”rr/ÖŽù‰Òo|"òPyíƒ ÈÎî/_–%%=ïDv¢&a؆vóU{ƒ<…ŸÛÊKhè•Û·ß|ø #²-$;‹×××÷õõ}ûö­¿¿?SVV&²lkkëîKKK) ¶.ž>}zII‰ünÔÔÔ‚!C†`‡VVV¢”ØÖ¢vë!ôtåÉÆÃÃãÚµk—/_ž8q"6†²Ùl¡PxåÊ:¾|ùr777:nfföúõkQ®·oßJšÂ.€üü|¬«ÚŠì(åååÓ¦M[¿~=cjj*z$ÿêÕ«Ý»wca2™,’/ƒÁÈÉÉ‘ß 55µââbì°¨¨ÈÌìß?‰¶íQôDŸägÒ¤I|>çÎÞÞÞX ‚ ÎÎΉ‰‰L&“Ëå’H$---Ÿàààäääêêê;w†JšZ½zuaaáÓ§O7mÚ´xñâ¶"?}ú„M:[…uuuÕŸ …>>>«V­ŠÏÈÈHIIx{{oÞ¼9777777  ¬¬ ³0gΜ7–••Ñh4—cÇŽÉð­Õ6$iÁ‚%%%¹¹¹[¶lÁžKwçmä›çµÚªU2¼råÊ~ýú1™LQ®„„„!C†¨««ÛØØ$''£(ÊårwîÜ9xð` &\¼xHÌóbccÍÍÍÉdòªU«Øl¶ÔHôó½x¸­¶=zôè¨Q£¸\.Š¢×®]£P(t:Ãᙚšêéé-Z´ˆÁ``F˜Læ²eË }}}›šš¤ºÁãñ&Nœ¨££ÓÊ:îíímhhH¡PÖ®]‹9ÜV»É®0äbÓ¦MžžžÊÒjSa©{ ã¾ñ0Žn(Gy*|'™ÃáTVVž:u*>>o_ F…çy?þòË/}||¦NÚ;ººº~~~òD*ŸâFw€Û?€IHH˜?>.¥Cd€uÊåË—»µ¾æAT¨<>@åAð*‚x®0FŽibÒv×DQ„Ãéׯ_3ÞŽ(†7oÞLž<¹»W¸ÝÏ[·n]yy9^¥+–ÊJ’½¯¾ªVWà틘_˜øTQ;ôõn ò:O«¡ƒNoþë¯B\üQ- ò: 'HJz!>Ôb‰„¤$¸Âm¨¼NrïÞßMMRvªåó…7n¼ärùÊwIµ€Êë$×®='¥·›Ý’™™§dT¨¼N’‘‘ÇçK?ET^»À7:INNQ]]#~ö¬4&æ~tôRÑY{û/ÌÍ{ÿ¶]A…ÿõˆ/ãÇ…QÄÄÜwss‘Ò 8ÚBð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|€ÊƒàT ò ø•Á¨<>@åAð*‚Py|ë ÝyyðcçmÒØ¨[QAµ±y‡·#=??¿yóæ‰åR‚ Ç766îNÇ ½™·oßN:õòåË¢y¿ ïáá1uêÔnq ÒرcG«8σàT ò ø•ÁÕP^EE…£££ r8œ¨¨¨åË—»ºº®\¹òÂ… @FAŽŽŽ.ÎÑÑ1,,Lü6B‡j$»t©¦dÛízÃvÚ‚j(O±477ûùùýý÷ß~~~'NœðòòJOO  ÛÜ~íÚµúúúòQUUõÃ?ˆÇÜ¿?++«ÓÙe ££³hÑ¢V¹D‘ræU>}qǽsçÎéëë:tˆ@ ¨TêW_}µlÙ²Û·o;8Hß5oÖ¬Y*B(2™Lñ77·#GŽ888 0 Ùe §§çëëÛ*—(RμÊGa×>>–––ƒÞ°aƒ][EP©T__ߣGÖÖÖŠ"ù|~ffæªU«(Š¥¥å²eËD5j‹Ù³gëèè|÷Ýw€veuuõ“'ObÏ?›ššd¤¿yófmmm@@@[õ½qã†xuz°Vä++++++%%åøñㆆ†ÕÕÕØÙÂÂBl´m A6lØ››{óæM,ÆÀÀ€@ TUUa‡•••˜°d‘@œ–––°°°… ž8qbÍš52R²Ùì]»vmܸQÜÉú8°Ý’å)ÏÞÞ^ œ={Ž‚ggg755ñx<"‘¨¡¡1cÆŒÈÈȇr-[wÍIDATÒéô'Ožœ8qBÒTDDDEEÅßÿ;}úô¶"›ššRSS±³âá¥K—2ŒuëÖ=yòäÇ<ð÷÷'“É¢[‘‘‘"SØ„AĤI“bbbjjjŠ‹‹CBB®_¿îììRRRRòÛo¿ÕÔÔˆ³ÙlIç)Š¿¿¿è­ "‘èèèøûï¿WUU•””œ}:**ª²²’B¡899yxxˆ†WW×   ‡ãìì<þ|ñ¢—/_ñÓO?!2yòd???Àáp‚ƒƒ9Îøñãýüü9räܹsoݺ%ÙnnnÈ{§àùóçØû?H'¨¬¬Ä™þ*¢'âH§Y¿~½¸¨äº«(8σàT ò ø•Á‡ÿYØûI—ÞIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classSizeThresholdInsertPolicy-members.html0000755000372000001440000000606412502417163030666 0ustar robertousers MySQL++ Reference Manual
SizeThresholdInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1String-members.html0000755000372000001440000005062012502417163027063 0ustar robertousers MySQL++ Reference Manual
mysqlpp::String Member List

This is the complete list of members for mysqlpp::String, including all inherited members.

assign(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
assign(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
assign(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
at(size_type pos) const mysqlpp::String
begin() const mysqlpp::Stringinline
c_str() const mysqlpp::Stringinline
compare(const String &other) const mysqlpp::String
compare(const std::string &other) const mysqlpp::String
compare(size_type pos, size_type num, std::string &other) const mysqlpp::String
compare(const char *other) const mysqlpp::String
compare(size_type pos, size_type num, const char *other) const mysqlpp::String
const_iterator typedefmysqlpp::String
conv(Type) const mysqlpp::Stringinline
conv(Null< T, B >) const mysqlpp::Stringinline
data() const mysqlpp::String
empty() const mysqlpp::Stringinline
end() const mysqlpp::String
escape_q() const mysqlpp::String
is_null() const mysqlpp::String
it_is_null()mysqlpp::String
iterator typedefmysqlpp::String
length() const mysqlpp::String
max_size() const mysqlpp::Stringinline
operator bool() const mysqlpp::Stringinline
operator const char *() const mysqlpp::Stringinline
operator Date() const mysqlpp::Stringinline
operator DateTime() const mysqlpp::Stringinline
operator double() const mysqlpp::Stringinline
operator float() const mysqlpp::Stringinline
operator int() const mysqlpp::Stringinline
operator long int() const mysqlpp::Stringinline
operator longlong() const mysqlpp::Stringinline
operator Null< T, B >() const mysqlpp::Stringinline
operator short int() const mysqlpp::Stringinline
operator signed char() const mysqlpp::Stringinline
operator Time() const mysqlpp::Stringinline
operator ulonglong() const mysqlpp::Stringinline
operator unsigned char() const mysqlpp::Stringinline
operator unsigned int() const mysqlpp::Stringinline
operator unsigned long int() const mysqlpp::Stringinline
operator unsigned short int() const mysqlpp::Stringinline
operator!=(const T &rhs) const mysqlpp::Stringinline
operator!=(const mysqlpp::null_type &) const mysqlpp::Stringinline
operator=(const std::string &rhs)mysqlpp::Stringinline
operator=(const char *str)mysqlpp::Stringinline
operator=(const String &other)mysqlpp::Stringinline
operator==(const T &rhs) const mysqlpp::Stringinline
operator==(const mysqlpp::null_type &) const mysqlpp::Stringinline
operator[](size_type pos) const mysqlpp::Stringinline
quote_q() const mysqlpp::String
size() const mysqlpp::Stringinline
size_type typedefmysqlpp::String
SQLTypeAdapter (defined in mysqlpp::String)mysqlpp::Stringfriend
String()mysqlpp::Stringinline
String(const String &other)mysqlpp::Stringinline
String(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
String(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
String(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
strip_leading_blanks(std::string &s) const mysqlpp::Stringinline
to_string(std::string &s) const mysqlpp::String
type() const mysqlpp::Stringinline
value_type typedefmysqlpp::String
~String()mysqlpp::Stringinline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLBuffer.html0000755000372000001440000004363012502417164025762 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLBuffer Class Reference

Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types. More...

#include <sql_buffer.h>

Public Types

typedef size_t size_type
 Type of length values.
 

Public Member Functions

 SQLBuffer (const char *data, size_type length, mysql_type_info type, bool is_null)
 Initialize object as a copy of a raw data buffer. More...
 
 SQLBuffer (const std::string &s, mysql_type_info type, bool is_null)
 Initialize object as a copy of a C++ string object.
 
 ~SQLBuffer ()
 Destructor.
 
SQLBufferassign (const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Replace contents of buffer with copy of given C string.
 
SQLBufferassign (const std::string &s, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Replace contents of buffer with copy of given C++ string.
 
const char * data () const
 Return pointer to raw data buffer.
 
bool escape_q () const
 Returns true if we were initialized with a data type that must be escaped when used in a SQL query.
 
size_type length () const
 Return number of bytes in data buffer. More...
 
bool is_string ()
 Returns true if type of buffer's contents is string.
 
bool is_null () const
 Return true if buffer's contents represent a SQL null. More...
 
bool quote_q () const
 Returns true if we were initialized with a data type that must be quoted when used in a SQL query.
 
void set_null ()
 Sets the internal SQL null flag.
 
const mysql_type_infotype () const
 Return the SQL type of the data held in the buffer.
 

Detailed Description

Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types.

Constructor & Destructor Documentation

mysqlpp::SQLBuffer::SQLBuffer ( const char *  data,
size_type  length,
mysql_type_info  type,
bool  is_null 
)
inline

Initialize object as a copy of a raw data buffer.

Copies the string into a new buffer one byte longer than the length value given, using that to hold a C string null terminator, just for safety. The length value we keep does not include this extra byte, allowing this same mechanism to work for both C strings and binary data.

Member Function Documentation

bool mysqlpp::SQLBuffer::is_null ( ) const
inline

Return true if buffer's contents represent a SQL null.

The buffer's actual content will probably be "NULL" or something like it, but in the SQL data type system, a SQL null is distinct from a plain string with value "NULL".

Referenced by assign(), and mysqlpp::String::is_null().

size_type mysqlpp::SQLBuffer::length ( ) const
inline

Return number of bytes in data buffer.

Count does not include the trailing null we tack on to our copy of the buffer for ease of use in C string contexts. We do this because we can be holding binary data just as easily as a C string.

Referenced by mysqlpp::String::end(), mysqlpp::SQLTypeAdapter::length(), mysqlpp::String::length(), and mysqlpp::String::to_string().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_type.html0000755000372000001440000001301412502417165024120 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ScopedLock-members.html0000755000372000001440000000467312502417163027652 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ScopedLock Member List

This is the complete list of members for mysqlpp::ScopedLock, including all inherited members.

ScopedLock(BeecryptMutex &mutex)mysqlpp::ScopedLockinlineexplicit
~ScopedLock()mysqlpp::ScopedLockinline
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_12.png0000644000372000001440000000250412502417165024013 0ustar robertousers‰PNG  IHDRu%óè1bKGDÿÿÿ ½§“ùIDAThíš](CLJÍûH˜aÅf˜”$7 qC7y»@¡„ -/Er5M®(ï‘É´P IÄ–ò²rcò.4ööû_œ:Û˜ÿþþë|®žó<¿=¿ç|Ïùýγ!B@AN¿]€ƒCéK.”¾äBéK.4âÁÅÅEMMÍëëëoUãTUUåååá‡ïôU( B¡ðÇ«r¶··¥Ré‡úbH¥Ò,É¡ÈÏÏ7óPû/¹Pú’ ¥/¹Pú’ËŸÓ÷øøAïʆXãó)>ŠÚW˜•þÁÁØÚÚâp8DFkllü™Ù_߀€‹eæ‹Å?3»=û‚ ###ÑÑÑb±x||œÃáøøø´¶¶êêê***°‘Z­ÖÃÃcoo0??ëææÆårÇÇÇ&“©§§'::šÁ`‚µµ5âÄÖ£\.ŠŠb2™uuuoooVàýâµ¹‰ôz½H$ d2™"‘H¯×ãÃŒF£D"‰ŒŒd0‰‰‰J¥Ò­$0==mæ±  °°EÑ¡¡!@~~>Š¢ýýý€»»»õõu???½^!œ˜˜ˆ‰‰1™LZ­ÖÕÕµ¯¯ïææfxx˜F£iµÚþþ~&“)“É®¯¯Ùl6@­Vc5`FzzúÑÑ‘B¡àñxíííV‡‡‡ÁÁA¬<¢ Øßß" ×ëñ) „¹¹¹*•*>>¾©© vwwË ¶)ŽP( …ï´²OßÝÝ]¡N§3³ÕjµÁ``±X«««ÂÌÌL±X !Ôh4t:½««ëþþÞd2===Ƙ˜˜ÑÑQ<íØØ˜¥¾*• ¯ÇãYu~^ªóóóD}ù|þÍÍ f///ÇÅÅáÑÈÈHËò>WÆR_;ûƒ Óéf6ÀÙÙ9''G&“ÝÝÝ­¬¬|}}×ÖÖ ›ÍNIIÙØØprr:99‰‹‹ÃsÆÆÆZN|>ÿêêêçG¨Õjâ gee£gggAAAX_‘––vzzЇ.//m–gRú3¡P877'•J“’’°Uÿòòb2™fff4MEEEvv¶F£ 988À?uxxh™ »›GGGØ ýÈiþþþø¸¿¿W(x(,,Ìfy6!EßäädƒÁÐÑÑQZZŠyIOOŸEQT§ÓÑétòòr‘H$—Ëooo—––ššš,SÕ××ïìì´´´”””|ä|||Äf¶Mrrrš››ÏÏÏU*UFFFoo/ª®®&–×ÖÖfĵóõý¿æÙÕÕÕîîî(Š“‡‡‡»¸¸ðù|¹\!ÔétÇËËK LNN‹ýwhh(44Ôßß¿¶¶öååŪŒMD´Åþ`6EѲ²2___??¿ÊÊÊççg MySQL++ Reference Manual
refcounted.h File Reference

Declares the RefCountedPointer template. More...

#include <memory>
#include <stddef.h>

Go to the source code of this file.

Classes

struct  mysqlpp::RefCountedPointerDestroyer< T >
 Functor to call delete on the pointer you pass to it. More...
 
class  mysqlpp::RefCountedPointer< T, Destroyer >
 Creates an object that acts as a reference-counted pointer to another object. More...
 

Detailed Description

Declares the RefCountedPointer template.

mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x6b.html0000755000372000001440000001024112502417165024730 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SecureAuthOption.html0000755000372000001440000002537312502417163027435 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SecureAuthOption Class Reference

Enforce use of secure authentication, refusing connection if not available. More...

#include <options.h>

Inheritance diagram for mysqlpp::SecureAuthOption:
Collaboration diagram for mysqlpp::SecureAuthOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enforce use of secure authentication, refusing connection if not available.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SelfTestFailed-members.html0000755000372000001440000001063212502417163030452 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SelfTestFailed Member List

This is the complete list of members for mysqlpp::SelfTestFailed, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
SelfTestFailed(const std::string &w)mysqlpp::SelfTestFailedinlineexplicit
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x6b.html0000755000372000001440000001024012502417164023713 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- k -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SimpleResult-members.html0000755000372000001440000000732112502417164030246 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SimpleResult Member List

This is the complete list of members for mysqlpp::SimpleResult, including all inherited members.

info() const mysqlpp::SimpleResultinline
insert_id() const mysqlpp::SimpleResultinline
operator private_bool_type() const mysqlpp::SimpleResultinline
rows() const mysqlpp::SimpleResultinline
SimpleResult()mysqlpp::SimpleResultinline
SimpleResult(bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)mysqlpp::SimpleResultinline
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_10.png0000644000372000001440000000550212502417165024012 0ustar robertousers‰PNG  IHDR½3MžÏbKGDÿÿÿ ½§“ ÷IDATxœí›yLÏÀgAŽ޶¢EË©b‚w¸LL” O4Ñ ’(¦1ŠGøÃ(AƒÜ"  A4€¢)H@!D¤ˆH8B©Öžóûcîwm·¥-¥T³Ÿ¿fßvß{3ûvöÍÎ+!$$:b6×ü•qC¢dÜèÃ<üD")--ýõë×\yCb²¹¸¸üw qTTTÌ™_$¦Mtt4>Tþ˜od2€\a‘(…Æ™ßè7$ú@Æ ‰>qC¢&7===‚̵jÑìvÖÄ{1sL.nþ lmmSRRÔííí¥R©ÆôÇàq3+P©ÔŒŒ ug ÅØØ˜1ý18úÄ ‚ wïÞõöö¦Ñh®®®‹-:{ö, 99911ý¥P(´±±ikkTUUùøøX[[¯X±¢   P(nܸáíí½`Á‚M›6ÕÕÕáçvtªçp8žžžt:=99Y, ÁŸï|[*•²X¬Å‹Óét‹%•J ª»üñãÇk×®µ±±Y²d‰†8P¯DµãþþþGGG=ßTÀ¼ÿ¾’„@tt´@ ÈÍÍDEE ‚ììlÀèèhCCƒƒƒƒT*…®ZµJ¡P…B++«[·n ß¹sgÞ¼yB¡0;;›N§WVV =yòÄÉÉ ÀãñPÐFPPPww7—Ëuss;þ<¡B811‘““ƒº‡o_¾|yÏž=ýýýííí~~~©©©šbv!„ÀÒÒ2!!a`` °°022‚ÿ¥*JÎC ;®Y‰ ‰—è7­­­B‰D¢Ôæñx2™ÌÑÑñÅ‹Â]»vedd@ÇÇÇ-,,®]»Æçó ÅÔÔ”\._µjU^^¦öÞ½{ªqÓÞÞŽùæææF(Ôગ—×ðð0Ú®­­õõõÕlân¹X,þðáƒP(”Ëå èÏtÂŽÿq£g~³`Á€………R`nn^YY9::úüùó}ûöìììêêê¸\®““ÓÖ­[_½zeffÖÛÛëëë‹éôññQ5äîîŽ6¼¼¼4 éëë[²d ‚ ‚~þüyZ£ð÷6‹¥¥ewwwHHȺuëòòò´;®Ÿ*“bVúùðáò²²€€ôE ‰ ŃÆÇÇwïÞ=>>Î`0Þ¿]ÕÙÙ©ª }4ÝÝÝK—.Õ $„J¥òx<ôáóù\.WƒQt fpp=‰DQQQ,«µµ5++K÷aø¿ÕŽë§Ê¤˜•¸Ù¼y³L&c³Ù±±±¨A   ŠŠ @ ‘H,,,lllX,‡ÃùúõkuuujjªªªãÇ÷ôô¼}û6--mÿþýê„“““h²¥Ô?sæÌ—/_ÚÛÛCBBnÞ¼IhÔÖÖŸŸ/®_¿Ž^+‹%‰¥¥¥H$JOOLMMé:„GO …B]µ™ø—–öù ö«k>ÞÎÎÎÁÁáÀ?~ü 4 !¼pá‚­­-“Éäp8Øå™™™öööË–-ËÊÊŠŽŽ¦Óéºæ7„—J¥óçÏŸv¨MÃäÅÚ––£Ó%J·„ð<£üëRÔ9A5næCóëׯ¡¡¡»wï–””\9‰‰`øü¦©©iýúõ Û¶m›‰ž… &%%i#œ5̵_F¸ê¾²²²½{÷B²ÞäO¢¢¢eee˜ä_ø–@b| 7/ …§Nruu¥P(îîîééé³ý/ ã[DÄÝÝ]iv E÷Ë´×3'5&:ß;v¬µµµ¢¢¢¿¿ÿÎ;‡Åbé§J,Óh4ãXœœœŒ]ºt©½½ý¾}û¦ÝôîëëÄäóù/_¾ÔÕ¨æšÙ¿¸Ò{nðÕ¬­­-—ËÅ–/_®«’ÉÉÉœœœ;wjã›A,†„„lÛ¶­«««§§'88Xiíª $$$-- “äåå…††Üg0Á`ûS„1™LvèСŸ?íê¾ÿŽþÏÂ… ³²²°çuË–-_¾|AÛZ–FFFFZZZ´™l bQ*•>{öŒÍf{zz2™L6›]]]­ÙhdddYYüýª*//ˆˆÀÎŽ‚ EEEÞÞÞöööW®\*E†ªE&š‡ZOðA4ÃùfÇŽXyCjj*aþªæææ¸¸8644¤¤°¦¦†Á`XYY^½zµ¯¯;¥ei„’oÓvaæe2ÇC H „kÖ¬Ñ`ÐÕÕåèèØÖÖ!œ˜˜°±±ðxˆf8ßòx¼ææfww÷K—.ñù|Až>}úãÇÓ§Oƒß•ÂŽŽŽ¤¤$*•š˜˜ØÒÒ¢ª0..ÎÃÃãñãÇŸ>}zýúµ¿¿ÿ‰'ÐSÉÉÉè vãÆG½xñ"NôèÑðððÓ§O5ç7999³aMPJJJ>àÐ`üžB>ìíí½}ûv¼\Ýè•¥ùfûöíØ]8wîÞ¢\.¯©© c0çΜþÖBgû=UZZêââB§ÓOž<)‹!Qþ*>ŸŸ™™Éd2ñI(ŠL&;þ¼…BqqqIIIÁ¦_íK#ð¾ý×a5«Ü™[lll$|,ÕYÄäõõõ€›7o*É GoÚ¸Q-2Á(//÷÷÷/**BïŽö¯ŽB{är9¶1šÀØØ˜Í͉E=Ü€J$ý4£ŽBWÌÌÌŒYr»eË{{{£™›‹êÀjÀgŽÎq£n+þ%»èèšöŸ´hÌ"ãÆôãýhño[$„N§ßºuË8¶Lt_“ÄÄ!ã†Dȸ!Ñ2nHô /¾}û¶ñý 1ez{{W¬Xñ‡ÿ1§±±ÑÜÜ|Ž|#1iNž<‰Ä$d~C¢dÜè7$ú@Æ ‰>üªˆ×ûfÕIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalInfileOption__coll__graph.png0000644000372000001440000001333512502417165032050 0ustar robertousers‰PNG  IHDR»»²òx=bKGDÿÿÿ ½§“’IDATxœíÝ{Tgúð'P¹J¸ +G *%µžU‹žõRŠ"Úí/ˆ­U¨ÀvÅu]=-Ër¬‚Ç][\¹)UA¹ˆˆ¸Æ JA¤öÈr³U R ¤\’Ûüþ1$3 IçsüãÍËäg&_æ 1C#ÒÝРQƒ¨ÁÄ j01ˆ¦~Vþøñcý¬kl Y·nVDÓϵF[°`Áo~ó=¬k *++[¸paff¦Ö¥§c ìÚµkýúõz[ݘ¢Ï‹ç1ˆL ¢ƒ¨ÁÄ jÆJbh4Ú0Ø××ùÞ{ïYZZΟ?ÿàÁƒ2™Ì •èÙXIÌðêéé™7o^EEE\\\eeå¾}ûÒÓÓ—/_.—˵.ßÔÔÄb±È¶µµõÞ½{õXì0ÓßÕõÛ$&&ÆÖÖ¶¤¤„Á`ÀŒ3V¬XÁápRSSƒƒƒ5—W(d›ÅbÅÆÆêµÜaeDÇvêÔ)www[[ÛØØØ³gÏN›6ÍÊÊꫯ¾€ððð   rÉÞÞ^33³@~~þìÙ³ÇïêêzöìYP(ñññîîî––– .äñxª³9)äååÍœ9ÓÎÎ.<<¼¿¿_k' œATÛiiiQQQd\Hæææ‘‘‘iiiZ‡Z°`888¨#>ûì3‹åìì¼{÷n±XLî‡ôôtww÷É“'>|xD÷ùë ô222^¹ÌÆ»»»SRR`ýúõÝÝ݉‰‰ðË/¿ÜºuËÆÆF*•‘––æáá¡P(z{{Ç—ÀçóOž<Éd2{{{íììrrrZ[[ œ ¾¾žÜX²áããSWWW^^Îf³£££µv!’““Éò”í®®.hooW«¿´´ÔÞÞ~ˆñÉÅTÛ\.×ÛÛ»±±±¦¦†Ãá+€uëÖuuu%''@GGÇ+w¯¿¿¿¿¿¿Î¯Æ1®ÄTUU!‘HÔÚõõõ2™ÌÁÁ¡¤¤„ ˆU«VÅÆÆÑÙÙibbräÈ‘®®.…BÑÓÓ#—Ë=<<¾ýö[å°§OŸÖLLMM ùÓŒŒ 6›­µs°:KLYY‹Åb|²GÙ–H$ ãÑ£GdNN¹RàñxªÛþŠ«ßÄѬ–––`bb¢Öƒ±fÍšœœœ_~ù¥¸¸˜ËåÀ¤I“x<^yy¹³³óÒ¥KïܹC§Ó›ššæÌ™£söìÙš+rss#³fÍjnn¢S“µµµƒƒCuuµZuuõܹsuª­­M.—OŸ>|Èf³•KN™2EuÛŠq%fhþþþ¹¹¹™™™‹-"ç‘H¤P(.^¼ØÙÙôñÇwvv:99=|øPù¬~øAs(òêêêÈ—g°N­¸\nLLŒê•Q___\\œ¯¯¯îCÙÛÛ3Œ¦¦&òacc£““Ù¦ÓøuÑÏ¡ t›•”G`­m™LfgggooŸššJþH$?>++«½½=))iüøñ"‘èàÁƒvvv—.]âóù………ZÏc¼¼¼êëëïß¿ïææ¥µ“ä<† ˆ_ýuæÌ™K—.-,,¬««ËÉÉñððøÝï~'‹‡¿§§‡xèííÝÔÔôý÷ß{xx+l? aìžÇ ‚ BCC'L˜ÐÝÝ­|VFFÆôéÓMMMgÍš•——G„D"‰‰‰™6mš……ÅÂ… Ï;§™˜””‹µcÇ‘H¤µ“øêª¶ ‚èí툈àp8fff …ƒ/•J-Zdaa¡6NggçæÍ›mllwíÚE®Cº%Fû÷ï ¤ôµWZíá¯g‡Ò>3jÞÁ‹Å­­­§N:þ¼¡kÓŒø k {÷îÍ›7oÛ¶m|ðÁ›Œ3qâÄ]:‡qü·‰þ>µ™‘‘ŸÁ!äŽÕϧ6GÍ1 L ¢ƒ¨ÁÄ jôwu]RR"ô¶º1¥©©ÉÕÕUO+ÓÏÛ>£ëÿ¶1™“­­} ]5úy)õtu=ºìߟóí·wrswxzêëwôÀóu2™"7÷;ÈÍ­4t-Æ£îÖ­ÚîndgWI¥Ú?é=–abÔåäT‘à ûoÞ¬5t9F3€P(¹zõ¡L&ƒ–“:LÌÅÅ?(g"™LqíÚ÷}}ý†-ÉØ`bÈÊúNõÿ+Êdòë×µ|ès,Ãļ$y¼Z¹\õíZvöw+È(ab^*,¬QëQ(·ný¯««Ï õ'LÌK/~§Phy?óÊ•‡šc&æ…çϽw¯Ióp‚ ²²* R’qÂļŸ_Í`hÙ ñÝw?ñùø7Ô01/dgW’oÃh"ÈÏljé…Qó FŽŽVd[&SˆÅR ‹qÊŸâ»2Jø·k-._® =ÝÚzÔÐ…#œ•5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`bEú¹Ó`îÞ½kjjjè} ŽN77nª¡«ÐbÚ´i†}½‚0ð÷൴´H$ýܨy´+++;zÔð_´fßœèïïoèFÂ8¾±Ïc5˜D &Qƒ‰AÔŒŽÄÐh´††ƒ¬º¯¯/22ò½÷Þ³´´œ?þÁƒe2™.Olhh ©ÞÝëm1:3´¦¦&‹5#÷ôôÌ›7¯¢¢"..®²²rß¾}éééË—/—˵ßÁ@µkkë½{÷ŽDU†eW×oH¡PtttŒÄÈ111¶¶¶%%%äÝig̘±bÅ ‡“šš|ø0,X°È¤Ridd¤½½½]dd¤T*%"!!áwÞ™8qâ‡~xåÊr¾Ð\’œJJJJ¦Nz÷îÝ´´´¨¨(2.$ssóÈÈÈ´´4rɼ¼¼™3gÚÙÙ…‡‡÷÷÷«V¢:+ ‚Ï>ûŒÅb9;;ïÞ½[,kÝÑÁ°o9gddèRÔ××+ÛëÖ­ëêêJNN€ŽŽŽúúzÕAâââÖ®]ûôéÓšššßþö·ýë_“““œœ®]»ÖÞÞ^TTÄf³Éå5—$‡Z¹rå7š›› ½½]­˜ÒÒR{{{rIŸºººòòr6›­Z‰j›Ëåz{{766ÖÔÔp8œèèh­2,ûj¤ÊÄðx<‚ $ Ù¯–˜Y³fñù|²]TT4g·“žž®\àܹsäòšK’CÕÔÔÑÕÕ¥51eee,KuIrCØl¶ÖÄH$ƒñèÑ#²?''‡ÍfkÝaÙW#mTžÇL™2LLL´þôÇtttT>´²²’H$GÙóÎ;ï ¶$Ù˜5kX[[;88TWW/[¶Luüêêê¹sç’m777åSÈc’¦¶¶6¹\>}útò!›ÍV.9ô†§ÑwtúPe“ò¢«««¼¼ÜÅÅå‡^Þ¶úñãǃ-Iö+_B.—£zeÔ××çëëK>$$PWWG¾üšìíí FSSù°±±ÑÉÉI— 1N£¯âÁôöö’5kÖìÛ·ï§Ÿ~ª©©ñõõ=~üø_|±gÏžëׯwttܸq#::š<'Õ\Rm̨¨¨ŸþÙÛÛûÚµkõõõ¹¹¹žžžNNNaaaä;wîlhh¨¨¨Ø¿ÿ¦M›Ô*!™˜˜„‡‡?yòäÑ£G_~ù%—ËÙ}1¢ 7!ÄëžÇ¨µ¥Ré¢E‹,,,ÈÎîîî­[·Nš4ÉÆÆfûöí}}}r¹üèÑ£Ó§O·²²òõõÍË˳µµÕº¤Ú)A½½½ÇÌÌÌÃÃãÀB¡øÿÓ”””‹µcÇ‘H¤Z‰êP›7o¶±±qttܵk—H$b£Þp_´Ñ‘˜7”ŸŸ_]]­|˜••5gΜ7S3[#ÍHóöÌJC¨©©Ù´iSUU•P(,//ÿꫯ´¾ÿ†t1*¯•¨Ú³gP(ôóókoowuuݶm[HHÈŽ9qâÄ7d42ð½h333 [Ãha$ûjLÌJhab5˜D &Qc×JË—/7t ê :®0t´µµºƒ'ÆÓÓsÆ ƒ}¤ÍP::&ÔÕMzÿ}>ƒaDq“&M2†_-_]'.7‘Ç«=v,Ðß¾¡k1:x£N Þ¾]@ËÍ­2t-Æ£îòåj îÜù_{{«1>˜uYYäLM£Ñ®\yhèrŒ&f€ÖVAeåO … ÅÅ‹†®Èè`bÈË{À`Ðh PÀÇϞ=ë4tQÆ3ÀÅ‹ª—úL&=/ïë1B˜˜—êêž×ÖòUßmÉä™™81 €‰yéòåj†jA@CC[m-ßP%!LÌ AddÜ—JÕß}65eâĤ óBMMsKK—f¿D"»x±ßWÂļpéR•‰‰ö¿²µ¶ ªªžê¹£…‰y!7·J.—›š25ÿÐ ª ] ±0ŠO;ƒÐP¯ŽŽÿ3íٳβ²Æõë_þrÑ"7Õetðo×Z\¾\zºµÕð_žk„pVBÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Q3à;ª$É… Äb±¡ª1u@RR’¡ 1<777//¯]ª·KÏÎÎ6PaÈH1™Lb Ç™L<Ï@å!ãróæÍ¿ÿýïjxƒ¨ÁÄ j01ˆL ¢ÆèÓÒÒ¢~9÷¼¼¼ZZZ†k4XÞЃñõ×_¯\¹RõYºlX,NHH ZµjUhhhzzºŽwwÞ]7£KÌ[££££¸¸øôéÓ`aa±qãF]ž% CBBjkkCBB’’’¸\nQQÑîÝ»ÉjâóùŸ|ò ÙÖ}-o¿e~¤ô÷÷€XYYmß¾]—g9sÆÚÚúŸÿü'Nggçùóçoݺµ°°ð£>Ò\^¡Ptww“mÝ×ò&^çãååUXX¸eË??¿sçÎ]¿~}ãÆ}ôÑ©S§à›o¾9|ø0¹¤H$òõõ­¯¯€ÿþ÷¿AAA>>>ׯ_‚ rss·lÙ²jÕª/¾øâÁƒªUò[ZZºyóæÕ«WóÍ7R©Tk' < ¿òàÜÛÛûÉ'ŸøûûŸ8qB"‘ÈåòÔÔÔ€€??¿C‡õö¾¸AAYYÙçŸîëë»víÚsçÎ ½OŠ‹‹·lÙò‡?üáÂ… ðÇ?þÖ¬Y3XI2™,!!aõêÕ«W¯NHH ß +**úôÓOɸÆ¿aÆ¢¢"­Û>ØZ4·Qk‘¯á5g¥ÊÊÊ'Nlß¾=99¹¬¬ìäÉ“aaagÏžíîî^ºtiii)9õ–––:::²Ùl±XíççwáÂ…Í›7>|X,œ9s&88øìÙ³Ÿ~úé¡C‡4WtéÒ¥C‡tèÐÑ£GŸ={–––B¡0**ÊÍÍ----,,,99Y  1ìÝ»w?’˜˜ØÓÓóïÿrrr[>++‹Ïç'&&þãÿ¨ªªJMMííííììd³ÙjK²Ùì§OŸjÝöÁÖ¢¹Z‹bsóš‰ 033óññ€ÀÀ@333___èééáp8L&³¦¦Š‹‹}||h4šT*%B$™ššúúúæçç7.;;;44tñâÅ666žžžÁÁÁš+ svvvww.**¬ÓÜÜ\yÐVmk’Éd7nÜØ±c‡£££««ëÖ­[‹ŠŠ ¶mÛæêê:mÚ´½{÷zxx€©©éÉ“'ÃÃÃmllÈÉ¥¯¯oˆ}âççgaa±bÅ PÎC(,,ܹs§««kHHÈýû÷[’F£)Ïc´î]¶ñõŠÔôšç1fffÀd2ÕÚ@§Ó/^|ûömWW×ÊÊʈˆ°´´øàƒ;wîܼyóÝwßµµµ€þþ~…BŸŸ¿jÕªýû÷÷ôô°X¬ÆÆFå³~üñGÍ¡š››ÉƳgÏlll†èÔѤI“èt:Ÿÿâf¡­­­,ËÆÆæùóçdOCC9+õ÷÷GGGoذ!))éÏþó+G¦Ñh”*±²²JKKãñx</??Ÿœ_–-[væÌÕ+#±X|þüù÷ߟ|¨Ë¶kÝÆ×+RÓˆ$föìÙr¹üôéÓä´4-22òöíÛ}}}R©”ÉdŽ7nåÊ•'Nœ(--íìì¼ÿ¾ÖOÄÇÇ·´´ÔÖÖ¦¤¤,_¾|°Î¾¾¾‚‚ò§ªm*˜L¦——׿þõ/>ŸÿäÉ““'O.[¶ÌÇÇ'%%åÉ“'Ož<9vìX[[H¥R™LÆd2%Ijj*…ÂaÜK‹/NNNnkkkjjÚ³gÏ¥K—`Ë–-]]]ùË_îß¿ßÜÜ|çΰ°0‹¥¼„ÖºCD"‘êÈZ·q¸Ê‘«k:¾dÉ’ÿüç?K–,!{LMM÷íÛ—˜˜øóÏ?O™2åoû›©©i@@€\.?~ü¸@ çò¨ µlÙ²ˆˆ±XìííÍårÉ£«Z'‚#Gާ/ªmøÓŸþ¤: ÇÛ¹sg|||hh¨‰‰É‡~Èåri4šX,ŽŒŒ‹Å ,  ‹°°°L˜0!00ÐÛÛ{Ïž=ñññõ—‚‚‚âãã?ÿüs¶dÉr¥fffIII©©© ­­­ŽŽŽÞÞÞþþþ&&&ZwƒÁx÷Ýw×®]{õêUÕÁ5·q¸Êp·ÌÌÌ€€€aù´CJJÊóçÏ¿üòKÝŸÒÒÒ²iÓ&åÚÕÑ9FèÛÉO;¨Ýåoøg%‰DÂçó ÿûßûàÈà†?1? Y¹råœ9sÞdssó?þX—Î1ÂH¶}¤f%ôÐÓ¬„Þn˜D &Qƒ‰AÔ`b5Þóe0 ‡Oþ¡Ñ‚Œ„ªW×b±øêÕ«:~ªöööÊ?õhjWÛ Ïc5˜D &Qƒ‰AÔü$¸v¦-‘Å9IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Row__coll__graph.png0000644000372000001440000001011712502417165027240 0ustar robertousers‰PNG  IHDRËp?”ÒbKGDÿÿÿ ½§“IDATxœíÝyT×ðQÖ„@J+B¡¸ÖàÁ9ËimYP¥.U<k+éâ©¢Ö—¶§JE­ Õ# ¨èÃ5¢bÁ'[p+(RYbÅ&…„lóþ˜wòb–*Cï÷ùëæfrçÎÌ7so.H†!ceî€aˆ Ä‚„bQô„P}}=~ zª4)!!aË–-FW#“ÉvîÜÉápú߃Á “ÉøÃGyxxàeƒ“.—Ëcbb¸\nUUÕþýû{é˜±æææôôô°°°uëÖá5îîîMMMx¹¦¦fÛ¶mx¿ëî|ååå‹ñ%ûGGô_}ÞåŒ!½7¢É²Z­¦Óé ãçŸÆŸ’Ëå¶¶¶gÏžmooÏÌÌ´µµ•ËåÛ·o§ÓéçÎ………&ça¡¡¡ ·nÝòññÙ¸q£ÉJ¬‡y†a¾¾¾³gÏ.,,¬¯¯ÏËËó÷÷V(½´ÏôG™øøø¹sç666ÖÕÕùûûã;5>v‘HD"‘ e2Ù_|ªªª2%oÞ¼)x†a&,,ìÛo¿ …nnn.\À0,55500°®®®®®.88øã?ÆY³fMTTTSSSmm-›Íþä“Oˆ8“—¬÷` ä<¬÷„a–””4bıX¬ßøØ±c©Tê¸qãΟ?a˜R©Ü²e˘1cFŽ9}úô“'O',++ëõ×_wqqINN–Ëå&+ ΠÁ§t©Tºnݺ€€æïï¿uëÖ®®®žÚW©T3fÌ9r¤A;B¡pÑ¢EÎÎÎL&ó³Ï>ÃwjòØ¿ÿþ{''§×^{mÿþýqqqt:½?ó°}ûöM˜0A©Tb–ŸŸÏd2…B¡B¡HIIqww=zt\\œH$‹ÅK–,qtttvv^±b…L&#èXŒ/Yï,aý±~ýúøøøôƒd˜\ÎÀ5žÁ_."Î9“ùø5}…BÑÖÖväÈ‘S§N xãÀâ üL¿¢¢bêÔ©K—. y•vFµråÊþT`ûj(‹‰oQc=LèÉü ¹ïV€aˆ Ä‚„b™X­ÈÌÌü~€a ²²ÒD­þâØ7L~óà('޹{1¤yzz¬¸’`m¢ÿÖ¯Ï;zôz~~2›íeî¾X ˜‡õ—Z­ÍÏ¿ÊÏ75€@Âú«´ôX,GåæV©Tš>·8HXååUá“Ô®®î«W˜»;Ö/]]Êý«V­Ö „ÈdRn. ”ý ë—’’»º‘Q­Ö^¾\'“u›·K–Ö/gÏÞÖÿ•iµZSTdâ;ßÀ$¬o]<ÞFY‡”›{Ûl²(°¾ò j´Zmié"‘Ì,ý±,°¾9s[«5±.}ñb­q%0 ëÃÓ§Æ?ùÀ0ììÙ›¥K–Ö‡‚‚2ÙÄYÒj±Û·ÿ:¿K–Ö‡ÜÜJ|̆¡‚(û0Ìÿ~Ø«³²BLæh¼¬Vk ÕÈ‘6ºgaU¬OðÝŠàÂ…š¤¤cmm?˜»#–FI@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@0l(ár¹æ>½±²¢ÙØx𻽡R©7nÜ0÷e|ÁÐú;®MMMãÇŽŽ6wG,ÕæÍ›[[[ÍÝ‹ ­„!„ètzHHˆ¹{a©6oÞlî.‚y $  ˆ Är3}³kmmýðÃy<Þ€´ª+S©TŸµk×z{{HãF¸ôôt&“‰êêêÊÎÎÞ¼yóñãÇIúÿrwXƒQ’pNNNNNN,+))©¥¥¥³³ÓÜ<™°ÐÐÐÂÂÂÄÄÄ÷Þ{ïäÉ“EEEqqq ,8räBhß¾}»ví·”Ëå§¡¡!tóæÍeË–…‡‡ÇÇÇ!„0 ËÏÏOLLŒˆˆX½zuuuµþ ÖÚÚZVV¶hÑ¢… îÛ·O¥R™¬Ôm¬ÿB“='“É ÅÎÎ(•JÓÒÒÞ}÷Ýèè茌 ¥R¹zõê3gÎ „$Éœ9s222BZ­622²¼¼œ˜ÓI,K%+++322®^½º{÷îÇ_¹rå»ï¾‹ŠŠš={ö† 4 ™L.++c2™ÞÞÞ …bÓ¦MÉÉÉÁÁÁ»víš5kVIIÉñãÇ?ÿüóñãÇ?|øpÇŽÆ;:wîÜŽ;$ɶmÛFf\™˜˜èàà’’‚¿D¿ŒR(r¹!ÔÕÕuâĉyóæY[[ãOýøãB¡ðÀr¹|ëÖ­4ÍfWUUEGG×ÕÕ1¢ºº!ôðáC¥R9iÒ$¢Ï*,ò†Š¥Ñhááá¡øøxÆápB‰$ €B¡ðù|„PIIIxx8‰DR©T†Éår*•Êáp lllrss“’’fΜéììÌf³—/_n¼£U«V±X,??¿åË—÷Tigg·`ÁüYý2BhùòåQQQEEE±±±x½Z­¾råJrr2“ÉôòòZ²dIqqqPPPmm­Z­®©©Y¸páãÇ¥Riuuõ¤I“lll²Ô„Ñh4„…B1(#„¬¬¬fΜyíÚµÎÎÎÊÊJü®cooÿÃ?Ü»w/::zíÚµ|>ŸD" ýu^^^Æ;b±XxÁÓÓ³½½½—Êždggóx<wùòåÈÈHÝ.‰´Z­»»;þÐÃã½½ÝÇÇÇÖÖö?þàóùÁÁÁÞÞÞ|>¿ººzúôé/q–†KMXïBBB®_¿~õêÕ·ÞzËÕÕ!ÔÝÝ­Õj7mÚTPP±~ýz‰DâââòèÑ#Ý«šššŒ›jiiÁ ÍÍÍÎÎνTöÉÆÆ†Ãá455a†rtt´²²ø³mmm...$)((èÆÍÍÍ>>>“'O¾}û6ŸÏ z‰ó0 Ï„j4šcÇŽáÃ(BˆD"q¹Ük×®Éd2•JE¡PlllæÏŸŸ‘‘QVV& oݺ•™™iÜTzzzkk냲²²æÍ›×S¥L&»téþ¬~Ù€]WW>-£P(¡¡¡{÷î?>|ø0~»e³ÙçÏŸ?~<…B™ MySQL++ Reference Manual
mysqlpp::RefCountedPointerDestroyer< MYSQL_RES > Member List

This is the complete list of members for mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >, including all inherited members.

operator()(MYSQL_RES *doomed) const mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >inline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryResult__coll__graph.png0000644000372000001440000007042612502417165031463 0ustar robertousers‰PNG  IHDR0Ü ?Æ«bKGDÿÿÿ ½§“ IDATxœìÝwXS×ûð7„„ö [A*îªU[¥hE 2Š8ÑŠ£jý îŠZmQ[÷ZPPÄ ˆhq¤¨- bE†L !$¹¿?®Í7&! y?OŸ>7'çžóÞCLrrÏ !„B!¤ *Ê!„B!Ôya‡!„B!¤4Ø!A!„B) vHB!„BJ£ªìBèÃ,X°àÙ³gÊŽuT cçÎ]ºtQv !„Þ¡à*[¡Ž…B¡ 8ÐÒÒRÙ éäÉ“111¾¾¾Ê!„Ð;x‡!Ôñ,Z´¿P¢æ¡P(Ê!„Ð{p B!„BHi°C‚B!„Rì „B!„”;$!„B!¥Á B}˜ÜÜÜ–]SSÒ»wo--­~ýúýòË/ -#‘,‡"ÏÇWñA1 „êTp•-„R&‡Ó¿ccã°°0kk묬¬Ÿ~ú))))99™J¥ÊæÏËËëß¿YYèêê.]º´ÅCºy󦕕U‹+« ®!„Pû‡„R¦uëÖ¥¤¤Ý;;»¯¿þú³Ï>;|øðÌ™3eó‹D¢òòròØÐÐpãÆ-’‘‘‘‰‰I‹+« ®!„Pû‡C¶BŸ …rèÐ!##£7;vÌÊÊJGGç§Ÿ~€ ̘1ƒÌY]]Íd2=z‰‰‰NNN ÃÚÚúرc ‰vìØáàà ¥¥5hРÔÔTÉaEä(£„„„=z°X¬ ÔÕÕÉM„÷‡$IGEE­^½Zòfˆ††FHHHTT”Ü¢d‡A²œªªªiÓ¦ZXXóx<²¢££ôõõÃÃÃÉœçÎsqqa2™¦¦¦Mïœ={ÖÜܼ²²Nœ8aggWSS#BCC»tébdd4eÊ”ªª*2s}}}HHˆ±±1‹Å ©¯¯o¥k‘ý“!„êx„êP &&¦Ñ<þþþl6ûÀàëëËf³÷îÝ eeeiiiõõõADEE9::ŠD¢êêj55µ={ö>¾°°ðüùó““C¾y’nnnÙÙÙ·oß¶±±Y³fÜD‚ ªªªöïßO†'>&¿ß—––JÅŸžžnll¬ |2›äq@@ÀW_}õüùóÌÌÌÏ>ûŒ¬¼½½+++÷ïßååål6›N§DEEÀ›7o$Ë€ŒŒ Îûȧ¦L™2uêÔââbccã;wî±iÓ&GGÇÌÌÌ¿þúkÀ€ÁÁÁdΰ°° &üûï¿™™™®®®Ë–-kk‘û'k‘×B¡¶„„PÓÄÉÇ ‚àóùRÇ999ÀÄÄ$%%… ˆ1cÆlܸ‘ ˆŠŠ QYY)‰8ŽP(ttt>ž<~úô©øØÞÞ¾¨¨ˆFc2™!!! ÅÅÅ—.]Z¶l™lQ .ÌÍͽwïÞŠ+&MšÔPâÛ·oÉ -RÇ«W¯~óæÍW_}uéÒ¥œœœÓ§O0ÀÜÜ\|BnùÕÕÕ’1Ðh4??¿ ¼xñ"++kÕªUämYuuu|>ŸN§s¹ÜÐÐPàp8RyJKK‹ß"‘(00pþüù'NœHNNNLL€É“'¯\¹2+++++ë‡~xùò%Y‚——×òåË_¾|™™™éîî¾sçÎÖ¸¹2¹9Bµkm>H !„> 4m‰øú†ŽgÏž­®®Îf³ÅgÅÄÄtïÞN§ÛÛÛ'$$Áçó×­[gee¥©©9hРãǃÌ’tíÚÕÐÐpþüù\.Wn"ñþ¤mÉc‚ ª««/^üÙgŸ1™LGGÇõë××ÖÖ6T~}}ý!C455¥Ê©¨¨˜}ÚÔÔ´¢¢‚Çã›™™éèèøûûWVV’…°ÙìéÓ§ëééÌš5«¦¦¦•®EöOÖ"¯„Bm‰B4ðñƒBí…B‰‰‰ñõõýÈrV®\™ŸŸÝôSrssmmmÅo›R$6O ¥tíçZZêõƒB¨¥àƈ¡N‡Çã:tèĉÊŽ!„êìp B¨Ó¹sçNß¾}‡þ1åhkk5%±Ëï >¥kA!Ô²pÈB¨ƒÁ!7ècàë!„Ú¼C‚B!„Rì „B!„”;$!„B!¥Á B!„BHipÙ_„PÇ“’’RUU¥ì(Ð((àÖÔø|¢®NTW'är…|¾ˆÇñxBOÄå ëê„uuD}½€X¼ØNCƒªìBµ\e !ÔÁtéÒåÕ«WÊŽ}ÍÈÐ0È­Ø)òÿ‚P¡P(R™E¢º’’=­õÙD¥RÓÒÒÜJå#„úPØ!A!Ôêbcï­\W_/äó ²©ªR=5……UW¯>#×&§šŒåèáÑÛØXGÙ¡!„’†„BŸ¬’ö•+Y/þ•žžv=Úiôè^¸<BµØ!A!ôéc³yW¯>½xñ¯ÔÔgµµü»{x8ÛÛÀ@SÙ¡!„Pg‡„BˆP(zð ?1ññéÓ**jœœ,½½ûâh.„R"ì „êŒø|AZÚ?‰‰—/gÕÔÔõéÓÍÃÃyÜ8KKÙ¡!„Pç‚„BZ]àúõ3.]ú«¶–OöL¾ýÖÕÐGs!„P[À B!ÀãÕ߸‘˜˜qáBf]ÀÕµ«‡‡³§§+Î3A¡V…„Bè=dÏäÔ©û—/g …¢Ï?·ñöî‹û™ „P+Á B!$_YYõùó3nß~®®NwwïåééúÅ=TUU”B}:°C‚B5¢¤„}î\Æ™3}º*;.„ú`‡!„jªââ·çÎ=NL̸wï…‰‰Î7ßôöðèÝ¿¿µ²ãB¡ ;$!„ÐËÎ.NL̈‹{Ÿ_fkkª¼¼+7’-[¶H6Ž™™ü·g%yEl6;77×ËË«oß¾M‰§1F}õêÕêêjů ÅyÚ@xýú?³féÒe±ƒÃŠ˜¬¬e…B- ;$¡¦é’‡Áçó¥Žsrr‰‰IJJ Acƌٸq#A4-""¢²²R$q8¡PèèèxäÈq±G•ídffŠc³±±‘›¨8TIšššOŸ>?koo_TTD'%%9;;K~G¯¨¨€ÊÊJ¹%óù|*•š••E>Œ‡G¦HuRSS%[Iª3 ‰lãH]F6lXNNNSâiF R­­XG숿ݿ?íË/ÃLMüúëÍû÷§UT4ÒC¡‡l!„>YZZZ@£Ñ¤Ž€J¥zyyÅÇÇ—••%''€žž^jjêíÛ·-,,† vãÆ •¼¼ÿÚµk666Ðh<͈L···—›ÿSbl¬=sæ))K.]ú?''‹°° ®®k‚‚Ž&%= EÊŽ!„š;$¡NÊÇÇçôéÓ±±±C† !bq¹\‘HtòäÉŠŠŠ3fxxxTTT˜››?~üX|Ö“'Od‹"¤€ììlòûtC‰b2™Ó¦M{ò䉸«`hh(þr_YYyûöm©SÆ·yófÉ®ETTT}}=“É466¦R©yyïkzþü¹¹¹9yLÎèxýúµdQ**Š>d#éÖ­[£#IA<ÍŽLo¨óI"7X|øpMx¸oUUí´iû÷ÿyÆs/_vŠÙÿ¡OvHBÔСCÁºuë&OžL¦P(77·¸¸86›Íçói4“É IHH(..¾téÒ²eËd‹Z¸pannî½{÷V¬X!^ßV6ñíÛ·âµ°$¥hkks8œêêjò¡——×òåË_¾|™™™éîî¾sçN©ü6lHKK›Ò'Ð!ù …¡%÷Ç&ÅU4ô¬8¼½½E"Q+Ŭ,Ø!{üøß[Û¥ÿçë»ëìÙGA ÿSE¡&Â![¨HNNîÚµkJJÊöíÛ«`sn{c“~øá—™3gÿ}U¥ÓéÙÙÙîîî}úô9räH[Lnr[L*33³5kÖäååMž<ùçŸvppxõê•âÖ@ ×H@ŠÜ]ñÞ½Õk×~[VÆ ::|xØîÝ©5Ê !Ôé`‡uFFF={ö¼yófzzzUUU³ËiŸ;sË¥`sîF÷ÆVQQ9|øpzzú¾}ûÈ.—ëëëòðáÃ]»v}Lr[Lî¹%%%Ož<)((puuUWWoz¥¨È5$¶È ÅÅÅ-$j‡tt˜CSR–œ;÷cÿþÖ[¶\vu]3oÞ±Û·Ÿ+;4„P'‚ÔôîÝ;555>>þŸþ±³³›9s惚QN»Ý™[–‚í¨›²7¶••UDDÄæÍ›É‡uuu|>ŸN§s¹ÜÐÐPàp8Í Cn‹Iž"‰®\¹âéé9pà@‚ ÒÓÓOœ8ahhØÄ W \#×H@®®]7oöËÊZ¿}{@YYµ—׎>}ÖnÞ|©¬¬ZÙ¡!„:6 †ÐG«¬¬Ü²eK÷îÝóó󥞂»3·lÛQ7qol‘H4jÔ(q[¶lÑ××·´´Üµk—¿¿?‹ÅjJ‹É†!·Å$:ujàÀÑÑÑuuuþ5›§çà m„VCQQQööözzzaaadbbb¢³³³ººº‰‰É¯¿þ*ÎyðàA{{{CCÃ_ý522²[·nÚÚÚ«V­"3ðùüàà`‹eddÌçó ‚8{öl¯^½ÔÔÔ¬¬¬"##[é*HÙÙÅë×'ÚÛ¯èÒeñ¬YG®_ÿGrBBµ,ì I(’ß?ÔŠ+&NœøA§HÍå•;µ÷Ó˜ïÛ"ÈoN­êã;$¸FB§]#¡µ;$ÞÞÞ•••û÷ï€òòò¶ì¼µ‡wìØM7·ñ’\åå­^)B¨¯P¨³àr¹ÏŸ?711IMMý ±CÒ¦DB‚÷†xûŒ¨)ŸáÙÞq ¥ù­Mþè>uêÔ;wî(øÑ·ÑÛGsçÎ7o^ii)NõêùìŸþéíí­¡¡1tèÐ .¡®®ž‘‘!.–Ù%Õ!!ï§ñøñcƒ!7QÁ5zÃÁ`HvWtttÄÏÊ O²L¡P8lØ0òv¸À„„„!C†8;;OŸ>]²C¢¸ÅdÃÛbrñù|rö—Ý¿ÿþ« 5kí ùö"qç­õKruᄂk×`¼a‚jq8‡uwîÜéÛ·o`` îÌݾ^€kcáÊ H´ƒSp‚ q,8çOÃäç7u{D™¢¢höD#p\#¡õ)ñRum¼À]ë!—äzôhíúõ^ÏŸ¿ñóÛ=lØÆ;Sªªp†B¨%(¯/„úUd™¡Ä½ˆ?ý‰«nÄEWâL"F“¸ó½üüÅW‰›Sˆ‡‹‰§áÄóÃÄësDÙm¢:Ÿ¨¯i¨†™Cò×_Θ1ãþýû² ±ßû‹Å266&§XÁår Æ©S§JKK÷íÛÇ`0¸\î/¿üÂb±Îœ9STTtñâE¹sHFŒ‘““s÷î][[ÛÕ«WËM$Î!Q|‡dÁ‚ÞÞÞùùù?0`À?ü ~ö÷ß— ÏÚÚäMIÚ½{79Ež ˆÊÊJ …rñâÅššš%K–À?ð7Úb²aÈm1É« …—/_þöÛoÍ͈-Á IDATÍW¯^ýúõëøË£ø‰HHTæqÿI,ûó×ã¾{z}ýË*\öªkkkÕÔÔD"—Ë…&ßM²°°ì¼={ö¬¶¶öúõëAÔÕÕ9r„J¥–——ØÅ·‘H”–ö÷Ì™‡»tYܣDz+NýóO‘R"A}2T¥ú'§N"‡±"ô¡ ÆÎ;»té¢ì@P‹âWÀÛgPWür¨+‡º2¨+ƒºr0=å¬?µ¯àe,¨€š0-@·70Œ€n:=å—o<ŒG´êÈõÙgŸíÙ³gãÆ‡öóóKIIéÚµë•@îlsôèÑ &) ãèÑ£K—.}õꕵµuLL ƒÁ‹-*--íÕ«WxxøÄ‰¥Š 9rdMM¿¿ÿòåËÉMl¤ ´´ôû￟9s¦Ôq£Ö¯_¿páB• &„……’OÍ›7œ?]TTääätüøñÊ–Ÿ””ººº›7oÐÐÐX¾|¹¿¿¿»»{III3ÂÛb’§œ>}:""bþüù111t:½)û¡jKëß<©)}R[ü€Sö7WP' ¨P@D€†ñÇÖ(¹ÀÝÚµkḋˆˆxûöí¬Y³úõë·iÓ&77·¨¨¨aÆÉ]à®ÍP(”/¾èñÅ=JJØüq'*êÖáÃ~þ¹ÍÔ©ƒÝÝ{ÑhT¥D…êÐ(Äû"}}}oݺ5hÐ e„:®“'OÆÄÄøúú*;Ô‚jà•ïÍ»¯ÔÍÁj²œœgàº'€*è fj† f¬¡`;·£&ÅÆÆúùùò&s7H$‰DªªÒ?Ð4jåÊ•ùùùÑÑÑM?%77×ÖÖV¼ÔC‰S}}½ä@¦çëëKjlXø[ÉãêÂ{ՕϹžˆB¡P¨‘@$™S…Fqô5øM/œB¡ää䨨ØHoݺuýúõdçíÆ)))%%%rsJs8œ… ž9s†ì¼mݺ•ÉdÆÆÆ®X±‚ì¼………7®[æcܽ›wðà‹3™L5Ÿ~3g~ѵ«²ƒBu$r:$«¤xPF¡P°C¢|õìw} è¹ÈÉPœicAÈû_ MF`âývÊÉ/äB]9¨µ½ ÜoñI3ðx¼ÂÂÂÁƒŸ8qâƒf%a‡D¹f{,q-ô£EE•"Ðp«¨ª XdöÙw¬6Œ®c+)aŸ:uïðá?‹‹ßl;iÒ 1cœ¨TœªŠjÜÿ"ˆRꫦ%癪¿àþ<¨«x7ªJôßžwFƒaÔŸròë9Ãà?@ÍèúïVQ¾PÕù?wwîÜñôôœ3g®‘бT1^åéÿiÏ&ä+ê€H ¢ªR„|•Ž_©›ÄØX{Þ¼¯fÏqõ곮Ϟil¬0pÚ´!šÊŽ!Ô®áÔbðIËàCî>à•B])ðJ ® x¥PWzÎà~_NþÚWð4ì¿ÁTân†¨M»Í£o íá ê È7¨ãGÿøûLÙÃ}Åõ5‘°‘S˜†4-sº–©š¦]ËŒ®g­nÜ[£-bmr¥Yíá_G^^é‰w¢£oÕÖò¿þú³I“ j§ì BíÞ!A¨• jàÍõÿf„—ÿ7;¼ èz0䤼üµÔŒ@Í´z€ÑPP3†0X-€i }w´ê ô‰QUWùÌŸÕc¼áÓØÒG‡Š\‚É|ƒ§€Ç;n™€STÇ)äWò_¦Uq^óÍúi}ý[wÙ2<‘/RÓnÓOÕöÐñhˆµµÑÊ•cƒƒÝÏž}´o_šŸßî^½,&OþÜË«“Ù*ë „:.ì ôáÁû½‹r¨+  çR9™ëÊáÚP¡ýï&†šhX¦µüÂ5­aìß­>BhL•ÞÓŒ{ú=-}x°HÈ{¯[ÂÐR5q–3ÐHP'’M€ü«U©?åÓ5¨ä-35ò¾Šž CÛB­µ®¡ÝSSSõñéçãÓ/3óUTÔ­Õ«O¯_vÜ8—™3¿°³3Qvt¡ö¢=ÍÍÍmè6t3P$¨««<8##CA~‚ &Mš¤©ù¿Ï¡Â‰'vëÖMSS³_¿~§OŸn©Ø>ˆ¸Y$¯HGGgìØ±/^¼hô¬ö¢$îÎn‘²ãh¼7ðö)¼Iƒ×çägá½4ˆ7óŽü\÷„?BÎ.(º,?¿†%ø¼…ïøàUßdÁÈ4öƒãòÖ» „P‘Ý’ï>ë5‘E¥«Piï>µÌåÿНª&ÿsÓ| ¶û6›~ Ì,?צÒUJ2k2_Yü<ëĹùÄò‰!·VÌÈX<úúõì#Âýüv'&fò;x¡N¥SÜ!¹y󦕕p8œ 6øùùýý÷ß }M/,,ŒŽŽ~ùò%ù°¼¼ÜÅÅÅÃÃ#&&FKKëâÅ‹þþþ _ýõGF•——׿ÿ²²²fœK^A%%%+V¬˜4iRzzºÜœºººK—ÊûÙþ£cø0">¼Œg› ê/“¯ ‹O«W*¥þ-Ðtä¤ ¹:êÊ ®êÊ€øïÓ‘ª~ò6!V3€¡§Þ»Ý¡¢øçOʧ:—¡O†º¾ê€E潦°.yz²L$éte4~Úû%X–þ—.à‰„|ùÝŽÌÈ’G‹´ÌÔ´ÌÕ´-èÚï´,Ôêó|´µÕgÎü"0phzzNTÔ­¹sjy{÷1c¨‰‰¼÷g„PçÐ):$FFF&&&`bbnll\ZZÊbÉ_Ì‘ÜLW¼»_hhèˆ#8@>ìÙ³gqqqDDÄÇwHD"QyyyóÎ_‘©©éþýû-,,Øl¶¶¶œo½†††7nlšª¶žm‚ç‡@øß—{Ô•¶b„2–ÉÌÙ(øŽ™Oz*Œ>7\²›Ao`} ,'´bü¨iöíÛ§ìPÇ“——GîF/Ó€6(ØÂiŠñ_Ñ%æý[àwU†ŠjýëQºš&tNa§_‘Ëû÷ÆÛš’z‘ð£¹Ód㯺=SQ¡ j7t¨]qñÛèè[GޤïÛwÍݽN|G¨ó’Ú¹ÝÇÇÇÇÇ§Ñ ÞààÁƒööö†††¿þúkddd·nÝ´µµW­ZEÄüùóÉœG]]ýáÇAœ={¶W¯^jjjVVV‘‘‘A…ÂíÛ·ÛÛÛkjj8ðêÕ«““CFœ9sÆÎÎÎÈÈhþüù<On¢83Y©ä1Y 8òŠŠ :NžB¹E1‹Å222 æóù`llLf011¹yó¦äµs8œ—/_’Ç•••S§N500077_¼x1—ËUFTT”½½½žž^XXARÉF"ÂÃÃmmm555?ÿüó¨¨(øo £ä@yyy£ñ4#òôäädKKË7n4úªˆ‰‰ùßã²;Ä oâ¸*q\•ˆ†ÿýwBøk­â¢¤]!^#žm%2V·giãˆËŸgm !O~þ+Cˆ«_é‰{ó‰ÌPâŸmÄ‹h¢ð!|X½¨]úóÏ?©TÜ 5ÓâÅ‹•ý–O(±_×q«êå>›¶.?Ú=3qæ?×Bóì/̹P^’Y][.?sÇRWWöì#_ß]¦¦?úËþýiÕÕ ¼·#„>QÍ¿C’œœ|÷îÝØØØ™3gúúúfffž8q"((èÇôöööòòÚ»w¯ªªjBB‚µµµ³³sMMÏï¿ÿ>~üø .zyyEGGÿüóÏ{öì8pà£G¦L™"[Ñ®]»Î;WQQ1iÒ$ƒ€€ÙÄÐÐP##£ýû÷“§H@MMMuu5°Ùì 6¨©½c³uëÖ/^Ü¿¿ªªjÚ´i«W¯¾}û¶­­mqq1TUUÛÛÛKÆ£©©)žaòÃ?ß½{·¦¦fâĉZZZdxr9sæÖ­[§NúþûïgΜ)Y‘ÜHX,VDD„¸q¾ÿþ{©+"âÍ›7K–,éÛ·¯¾¾~SâùÐf̘›7o>zô¨‹‹¼]ödBxo†²;@¥!͵…ÀÉ‘˜^ñîÀe¨Ê[O3}"Ô¿5CP3 ,0èjF ÊŸ5êF“BEÓàÁƒÙ×B› •¢eÖàòS¶c t­Õ…|N!¿ôi ç5_ÀÀÈpk«¯t[<>ŸÿÇðx¼Æ³¶¯¾¢öèÑíîÝʵkÏlÜxö«¯X}ú´üuunnnݺuSvÒ®^½š››«ì(P{Á`0¾ûî;:]âOªƒÒô;$äM>Ÿ/uœ““#LLLRRR‚3fÌÆ ‚¨¨¨ Ñh•••"‘ˆÃá…BGGÇ#GŽˆ‹=zô(ÈÜ!ÉÌÌ$Ÿ‰‰±±±‘›¨8TIšššOŸ>?koo_TTD'%%9;;KÞR¨¨¨€ÊÊJ¹%óù|*•š••E>Œ‡G¦HÝHMM•l%ÉgåFbgg'Û8RWD£Ñ† FÞ0i4žfÄ ÕÚŠi¨ÁÃS‰Ó]ˆh N¼Wä½ÿTˆæ{7Lâ͈ó½ˆäá·X~Ñü·M !„:Úòú7YÕulù7~¯?ó–òüöoOO•Ü~ûöOX/jbáqqq-ü¤ÉTTÔ55ûª©uSV¿¿˽ÊZŒªj§˜#€š...î½WH³ ÒÒÒ&u T*ÕËË+>>ÞÉÉ)99yïÞ½ §§—ššúÛo¿…††ººº._¾|ôèÑyyyÎÎÎâ2œœd+²µµ%ìíí $6$''ÇÆÆjkkW¯^xëÖ-ò©üü|SSSqN÷&Õééé?}úôóÏ?'Þ»woîܹiiiB¡°{÷w ÒÛØØHEB¼ßy033“l%)²‘ðùü†G|E’JJJÇӌȩ{D ¹û3ôrªˆHÁØ"Ðî ý÷€š!¨€jvðÅIá!ô>u}Uuý?Ä­¾Ò-Æe¿®{}›ý¬ ®¾V*TÊ·Çì z¨7Z8y’hÇûœ ¹|}}Ûç d@:|øpe‚Ú…#FH½P[«ÃêããгgÏ!C†XXX—ˉD'Ožäóù'Nœðððxóæ¹¹ùãÇ{÷îMžõäÉÙ¢rrrzõêÙÙÙä÷é†Åd2§M›¶oß>‚ ÈU¶ SSSÉ/÷ä-©SÆ·yóæAƒ‰WåŠŠŠª¯¯g2™4J¥æååõìÙž?nnnN檪ª¯_¿–,JEEÑÂ)²‘xyy5Ú8’ŒЧÙ1é u`¤,=Û— ï¦öp‹@…  ¢zùYE<ÐïÓ”2B5ƒ»¾ûÿr+œ×uì×uÚ–òW¼0'‡B¥h›«iYе-Ô„oÔT(8S !ÔFZkmÁ¡C‡ ‚uëÖMž<™L¡P(nnnqqql6›ÏçÓh4&“’P\\|éÒ¥e˖ɵpáÂÜÜÜ{÷î‘ëÛ6”øöí[ñZX’ÇR´µµ99¥¼¼¼–/_þòåËÌÌLww÷;wJåß°aCZZÚäÉ“oÞ¼™™™¹víÚmÛ¶mذh4šŸŸß‚ ^¼x‘••µjÕª€€]]]ˆŒŒd³ÙÛ¶mk´¡D2{ölÉÆY½zµâ¢äÆÓhŠchÊébçÁ]•9àY^Eðù °žê¦U ¼ßõ­ký…†BýG]_•ÕKÃÆ]ŸÆ”ÿ¹oÚWK]_µ<‡ûWÔ›¤à¼ê#–ª”&ý…B¯µ:$ä¨-6›=a»R ÆÑ£G—.]jnn¾eË–˜˜ƒüÃ?,Z´ÈÖÖvݺuááá²EŒ9r̘1îîîË—/o(±´´T<í[òXŠ………¶¶¶x­Ûõë×kii¹¸¸|ùå—½{÷ “ÊoddôàÁƒºº:Ÿ!C†\¸páìÙ³ß|ó ùìŽ;ÌÌÌúõëçæææææ¶|ùrCCÃõë×/^¼ØÕÕuÚ´i š¨[·nC† ‘’dÞ¼y!!!ÁÁÁ666ëÖ­;~üx#./Åù¡Ñåc˜@迾}_ß…Þ?ƒñ°w›u¨jP€_ÕÌ’Bµ—&Ã×uwÈ.àr¯ééÎZ3þå‹ÚnF;B¨“£Hõõõ€ØØØ/zåÊ•ùùùÑÑÑM?%77×ÖÖV’ÔC‰¨= P(111äKH!ÊnBq2]~%ŒËkÛèB5Ull¬ŸŸ~Ôv8-ø-®eQ(œC‚ÄFŒ!õ±Uîðx¼¼¼¼C‡5t›uFT ½÷º7’››+žPôñ(ò(®¢¡gÉô?þøCn™-3BµÖ{³UWW6I6${öìñôôôôôܳg¹ GRRÒ”)S$·d ·0ONNn¨jÙrÈg>|èçç7kÖ,¹­$…J¥ªªªjhh(ˆMö*·ÆÜ¹sÀËË«)M$ëSè4cмd¶nݺM™2Gvv8÷îÝ›6mš££ãÛ·oeŸMNN¾{÷îÆ—/_~îܹÌÌÌM›6­_¿¾¼¼ÜÛÛ;!!ü÷–`mmíìì\SSããã3oÞ¼üüüU«VÖÔÔ8pàçŸþå—_²³³úé§)S¦ÈV´k×®sçÎ%&&^¼xQü¹"›hdd´ÿ~òYÉc¨©©©– µUÐÖ­[_¼xqÿþý”””«W¯J®þ¼mÛ¶ˆˆˆ°°°ììì•+W.Y²DAsɽꆢ•­TnûH–ÿøñc++«%K–¼xñBA¡OLG|³-,,$WÆWS{·+K3Þôdݾ}$74#käp8ÿüóÏÊ•+É8΄ \]]srr"""–/_^ZZÚPu >U_/LL̘2e¿ÝÒY³Ž$%=Dí|‚ìÞ½›¿tëÖ­ƒΙ3çØ±cl6{ذaéééäüŠôôtSSS·fÍšo¿ýö?þ˜|˜Íf»ººVU}ØZ´²£EQàñxÇŽ0`@PPÐ矞——'¹»¼XHHˆ––ù©¶lÙ2--­éÓ§@eeåàÁƒi4Úõë×àøñã“'O¦P(|>_$UWW3ŒéÓ§WVVª««oÛ¶-<<ÜÓÓÓÔÔt̘1äþ3R"""lmm °aƨ¨¨†uttfΜI>+y ÎÎÎZ.]º$YþáÇwìØaiiÙ«W¯°°0Ég÷ìÙ#žÜ÷\1¹WÝP´²•ÊmÉòGŽùèÑ#&“ùÅ_Œ7îÊ•+­1!ÔÞtÄ7[ssóÈÈÈñSÍxÓk ²Fmmm{{û‡úûû€ššÚãÇ·mÛfjjjii oß¾m¨: !JRÒ“ ¢VE^»öO}½H$jw÷Cäòóóc2™nnn0qâD&“éîîç³Ï>SUUÍÌÌ€ääd777 …R__O—Ë¥Óéîî‰jjjqqq³gÏ:t¨Á€$_bsæÌ±°°ppp˜9sfRRRC‰â$\¼xqáÂ…,ËÚÚ:((èîÝ»d~Ù›xA(ØÆº¡rfÍšåââÒ¯_?ÙV"3Ìœ9s̘1cÆŒñöö¾r功ŸŸ‚2ºŠÖó)ŒlÞ yñÈNssóáÇ>|ëÖ­k×®mz½²£EQkKNN=zôöíÛûõë§`à“––ü·Ç¼ä1ü·IN||¼““SrròÞ½{@OO/55õ·ß~ uuu]¾|ùèÑ£óòòÄ·ÀÉÉI¶"[[[òÀÞÞ¾  @AbCrrr¤~ ‘\û"??_²Ç%`¯^½j4<1¹WÝP´²•Êm©*ÌÌÌÖ¬Y³råÊ3gÎüüóÏóçÏONN&?nBŸªŽøf[[[»zõêÀÀÀ[·n‘O5ãM¯)‚%küí·ß¾üòË—/_Òéôìììï¿ÿ¾ººÚÅÅ…ÌÙPu >䪨`<®—ž~@U•*€ü¿\S¦ R[l3Åèt‹¦dc2™ ªª*u ***C‡½~ýºµµõƒ/^ ZZZ[·n=uêÔáÇíìì&Nœ8`À€¢¢"ÉOUkkkÙŠ,,ÞÅÓ¥Kñ¹‰ ‘|HË Š‹‹Å[󀆆†¦¦¦¾¾~nn®«««dɹ¹¹]ºti¨.ÙrÄ17ÔJ¤¨¨(sss¨««;tèPxx¸xÿkÙ2º ¹!µˆŽw‡¤5†ªS(”Ù³gŸ?ž|ØÄ±¤’£Eɱ¤)))]ºtùóÏ?«ªª¦M›fhhhaaÌãñJ+[—TQ­zámŠAÅCx©_Ã' š³ª‘‘QÏž=oÞ¼™žžþ¡w´$ùøøœ>}:66vÈ!ä—ˉD'Ož¬¨¨˜1c†‡‡GEE…¹¹ùãÇÅg=yòD¶(ñèÌììl333‰Íchh˜““CA•••äR·nÝ O’ìU7­l¥rÛGn-%%%Ož<)((puumÆŠ¡OIû|³e2™Ó¦M{ò䉸Kս鑃Ð>hW&“ùý÷ß¿zõêÍ›7\.×××7$$äáÇä(—†šEn`ÖÕô/ŠººêººÌ¶ù –²>|ø7®]»Ö«W/###¨««‰DkÖ¬ILL3fÌŠ+8Ž¡¡áóçÏÅgåççË%î¾¾zõÊÀÀ@A¢\,Kòðï¿ÿŠçÉ ttt¢¢¢RSSSSSÉ?ýÈ‘####Å ~þùç”””ãÇõÕWd 9øª¬¬L\—Ür@¢ç&ÛJRÔÔÔÜÝÝóóóůÙ2º ¹!µˆŽt‡äÞ½{;wî¼páÂãÇÉ~s ²µµ¿|ÅC6É~ÅêÕ«W­Zåããóûï¿?þÂ… ^^^·oß¶µµ•-ºyóæ£Gº¸¸ß½{·¦¦fâĉZZZÞÞÞ^^^{÷îUUU•Á/[Ùo%.üñãÇS§N3gŽ••UË^~+zûJ®BÑe(¹‚j P… М_ez÷îššš••µcÇ;;»ñãÇÏ™3§OŸ>ZÎСCÁºuëÄ‘)Š››[TTÔ°aÃø|>Fc2™!!!::: ÈÈÈX¶l™lQ .Ü·o_eeåŠ+&MšÔPâÛ·oOžŸO§Ó¹\.9.ƒÃáÈm¹mß¾]Aƒëëóú÷/úùçmçÎeüñÇÝׯ+Å·JdmÛÀdÒ”Ö‚öí›öñ…899 …£GΚ5‹L¡P(!!!+W®ìÝ»w}}½ªªªššÚèÑ£wïÞ­¡¡áàà››»oß>Ù¢vìØ±xñb‡sàÀQ£F5”XSSsíÚ5r¤–ä±»»û¶mÛ~øá‡nݺíÙ³ÇÍͼ7(7$:tèþýûçÌ™SSSaoo¿`Á‚©S§Îž=;88ØßßßÔÔÔÔÔtýúõºººß|ó 9‰èÊ•+Æ “œ˜![ŽäÍ ¹­$KCC£¶¶–Ëå’/3Ù2É/RWA¾˜eC’Äår›ù[$ñ>¢=ár¹‘‘‘ýû÷wqqÙ»w/‡Ãi('ùKISÊñO¤{÷îéêê’ÇöööEEEäqRR’³³sEEF‹ˆˆ¨¬¬‰DG(JVGgffÁçó©TjVVùT||¼@ 011III!b̘17nl¨.É¢¤¼~ý:44ÔÂÂÂÃÃãòåËBr™ŒvbbbBD”ß'žl$’‡0ˆh Ž«Ñ"þ÷ß)﮲²rË–-Ý»w'{ùR‘ˆÿ¾ Ïž=[]]Íf‹ÏЉ‰éÞ½;N···OHH ‚Ïç¯[·ÎÊÊJSSsРAä7ñß<8pà@×®] çÏŸÏårå&ï¿8%e_ŠRØlöôéÓõôô fÍšUSS#~V lÚ´ÉÆÆFCCcРAä/gr “ºê†¢•­TnûH:uêÔÀ£££ëêêÿáBí_LLLS>O;î›­P(ÔÖÖ~ñâù°éozä÷ÅîÝ»'$$H†GD}}ý!C455Å5Š©¨¨899ݾ}›|jË–-úúú–––»víò÷÷g±X U'70¤¾Å=~üïÊ•ñ+LM´°ø?SÓ%ÿ«©i»·k MUÄ¿Ó7tþARÒ¡PD¡PÈ î¹¹amv‡„B¡„††~ä~ÙpàÀââb²ÑD¯_¿ž4iù%Xö¡‚DeÙÙÙ={ölv Íh¥66bĈ˜˜òåJjïsHZj΀bAìÞ½[¼xB³Г_ÈŒ©Tj^Þ»=PŸ?NÎ"’;‚¿¡á¡ ¾ÛµÛ1ú|¡›( x%„HÑ8Vš6Ô€ˆÿñ•ª¨¨|ho„Çãååå:tèûï¿ÿø:ŠÖ¾jì „¤tÎ7ÛvHMMu̧¦ge­ß²ÅРîT*…B¡¨¨´ÑŒöÁçó‹ŠŠ.^¼8vìXeÇÒºTUU›Ý鸭ÔÞ;$äœøøøþùÇÎÎnæÌ™EÙ|ùòeff¦»»ûÎ;ÉÁqqqäÐOÉôäÒ^’h4šŸŸß‚ ^¼x‘••E.vCiɕȪ«¡k‰DW®\ñôô8p Aééé'NœhWë÷^R—€A?•†¿žRT * ÎXÂjgç!eÜ €‡‹€_ÙqÞ¹s§oß¾ùS¶¶vPPPSÛ¹WÝn£E}:ç›m{¦¥Åðõí;÷Ñ£u§NÍc0:ÒIÏž= =z´ä‚lÍ ¡¡!» ºÜÄŽ¨¥Z©íµ÷![’ªªª>¼sçΔ””®]»Êf½+;4Kœ.>¶´´üâ‹/¶lÙ"ÞB•Ãá,\¸ðÌ™3***&Lغu+“ÉŒ]±bÅ«W¯¬­­ÃÂÂÆ'FŒ‘‘‘Ááp¤ª®¬¬\¸pá… ètúwß}÷Ë/¿Ã·æÌ™sôèÑ’’rܺ åÞ†Ž‹‹‹ˆˆ˜?¾··7ÞF÷X?…Byw®ôOøû7(8  „@:Ÿ ¬§€Õ4à•·xo€W ¼bབྷ¦-§èÔ¯B ÔÍ€Á†1¨›ƒZ¶@¡¶Á¥!„Påååõï߿ŗ ic-8d µ¥vû-®¥†l¡Oƒì­Ž´Ê–®®î¢E‹.\ØÐ†k666²ïžúúú²9¿Éjii:tèСC’‰¾¾¾’ ªªª7nÜ[µžž^dd¤lÉúúúžžžâވܺä^Œ7Nj!…öËh N.do‡Ü½ JwK´ìÀhð¨ÛxÅP[÷÷xo?.PåuH^D]ïý•ÖÝÍ!„Äp‹*„úPí}È–¬š3ðÅ_Èí´½JÛñÆèkÙ@ŸßáÛWÐ{=¨…òn©_Bj¬+Ê%E—W`L&xƒ?< aÌc 2ädñáÞ*N„Pç#¹E•ܨÈ=¯víÚuîÜ¹ŠŠŠI“&„††6q ,ñÆÌ!ôÉøÄ;$íǰaÃÚÙºS iýÐãø7þ½ÖŸk¥ÊÍî Ù½ñœ*ª0ððJ[ønZKÅà•‚ M~‡¤þ-<^ 0L@ÝÔŒ€ijFòo× Vžžþå—_òù-°Jê„BBBÂÃÃÛ¦®ÁƒÓh´ëׯùå—ÇŸ`Á‚›6m’J¥|ðÁË/¿Lî/Kµzõꆆ†9sæ<ùä“«V­ŠŠŠÚ¹sçèÑ£M–ÀêhÏ?ÿü¾}ût:Žz¹}ã^/;A3S¨ÙúÞVÇòa`Æ ³u?~¼ªªÊÖQ@WÁd2'Mšd\‚„ ƒ1ÙÄe0qÜÚãíú~8QU’ú|¢ºK”D##„ÏñdÜ/Žo*#UÙÎqÜÇ0ºßìy=FÿþýGååå%—ËÉý^[©©©&ó¶ÇÇÇÿíokllœ1cÆâÅ‹ !+W®\°`AXX½,UJJ ›ÍNMM]¸p!½VFF½¤UÇiªÖTßhª¹ÑT_¬Ò‹•5ÚWއZîjšÐQ1”–]û¾zÌ'~}xøˆÒs<ûì³¶º4 ÿÛýõ×ñãÇw~(@!¼dø×”è”Du—PV¾ƒ¬;Oòþèïðf0ïu ó™LBñp ³/QE3_Š2{ölÃŒÀ´V.ÕA޾W\ûG“\¢&„°]íÝ‚½Ÿäº9êu”}g ~£ôTɱúKÛ«j šúFòÔr€ÞÃô;ºeÃc›>}úˆ#lEOÄt$N~V÷úN&Ó›Isís«*­v$+ÝIÎÌ%lOÂö| c˜[àÇОT*•D"Ù¶m[zzºm#i–édwšewšýF»Ø;ZxˆêêÇö sv rä±9‚N]öJ­Ð]I»ûû¾šf¹.$Fø·Ïýy¾XÍ w± 'è~úHqôð##Éðu÷ó–*Òp•TÝ%Ê Ò?ÞrBr÷$)ûáÞÚ,†¦;a0Ûý"º‘¢¢¢àà`ŠjŸ¥6‡³Ùìðððõë×juvlŠ¢fΜyàÀ…âÞ"„¦ãŸCí½ˆïâÕ9!wGîîîžžž„OOÏÏ?ÿÜÃ㺺Z$YýôÓyyy¯ˆ^ÔB«Õ>4žÇˆ®ž••Õ¯_¿S§NYû}h%éMåÉ·wM¼rx~Q›j=½–RTª«.+Б֗ª,Sx¨îrjUõÕF¦Ã'‚7lž×sëƒâööíÚiq¶‘¶ÙÊbM€ ÝÞOå½Ný/š:2’:ÐúžM¥*P¬³|üÝS§¿O´g>ü½‹2cÆ ™LF?:ˆ‹‹“ÉdôRÙ555'Nœ†¢¨;w}úlذ¡¢¢bëÖ­ööö …bãÆ"‘hÿþý‰äСCôÚv………ôû'½UPP››ôÑGY,¤(ª¾¾~óæÍtxÆÛ„K—.Éår¹\^^^þæ›oΚ5Ëp!)))/½ôÒíÛ·óóóÃÃÃ-Zd8;EQR©”RWWgí>ÄÇÇÿõ¯½yóf~~þ_þòCxô^ãmBÈÔ©S¥RéæÍ› !µµµÆ{-FòÅ_ßz?ã+’ÉdEEE111ÇoM<}ÀsÏ=wüøq…BÑòo=NÒ¼\¯£n¬ÿqö›†ßòä…Máç·E^l¹©6ºùKÝ‘w‹~˜ycgTþ¦aç7…Ÿß~~óðóWÒ«:ô¼OÓ¤»²«êûÉW³—•Ø:è¢@Ó,¥nPªË{óæjÓX F«’ .P¥V«M¶ µZ­§§gVVEQ“&MJNN¦(ª®®ŽÅb­^½Z*•êõz¹\®Óé¼}ûvC³©©©æ I~~>½7###((ÈbaË¡svv¾~ýºa¯X,®¨¨ ·=:tèPãÏèô©Tj±eµZÍd2¯^½J¿Ü¿¿!<ºÄ$ÈÎÎ6¾K&É€y$ 0¿9&WÄb±F]XXØšx#“»Ý2ó„DÕ 9·Aòݸ˛‡ß<ü^b@ÿÓ6ë[Ó&M£ÒÉ%Í•—¥ÿ«¿¾·úüFÉ©äÛ¿üófá¡Z‹Çª=¶°8gõ+iU7©«¼$WT6ë4pÆ®¯©Vs~£dÇßò·D\8þaIÍï¶Žº(Œ!€.ÆÁ•8Xï…±a_é8ŠšÖš–è•X,–É6¹¿\ÝþýûCCC;F?9áóùÙÙÙ_~ùåòåËÃÃÃ/^üÜsÏOxj~¢àà`zC,—••µPhMaaaPP!¤©©iÙ²e §OŸ¦w•––zyýÙÉÞЕ‹Æçó=<<®_¿þÔSO Ïž=ûæ›ož8q¢®®N§ÓÞNd õ`ò@?â0Ü%摨Õjk7ÇpEƪªªZŽç1b 7Äb±Åã[ -V]Ýu·ð¿µ”–èu!„<˜67h £ÀµJ½²N«¬Óôq±wéga&¨ëÕy_•ÓÛNLG!ËÑÍž#`Ù9Xî˜4É-h’Û£ÆÜ]T]V\ú¶êÎo ŽÖxÑÀÉ6Ÿ7À*¼A@/?hРQ£Fѱ”J¥^¯ß³gZ­NOOŽŽ¾{÷®ÏåË—Ÿxâ ºÖµk×Ì›*,,2d!¤  €þ|xÑ¢EæM-X° ¨¨èìÙ³ôü¶Ö  sao›àñxr¹Ü°ÆHLLÌâÅ‹oݺ•ŸŸ?qâÄõë×›ÿé§Ÿž8qbæÌ™999ùùùüñ×_ýé§ŸBX,Ö´iÓKJJ®^½úá‡ÆÇÇ»ººB¾ûî;™Löõ×_?ôFµɼyóŒoβeËZnÊb<  åZSÝÀI#ygÖ/ïܬ¼ÐHQ¤…l„bÏfx…qŹ?½¸ï„/'§œ~ð/#ßñµÜ²ˆåêäìå€l„2~Uà´ƒOwG6­bë>c&##£5ï]„zÜB ÛóæÍstt”ÉdÆ:88ˆÅâÌÌLŠ¢ÔjõŠ+üýý###wíÚEÌÆlÙ²ÅÏÏO(Ο?_©TZ,¤°a2pÂEQ:ŽÇã•””Ð/e2Ù¬Y³ø|¾@ ˜3gNcc£É° Š¢JKK§NêííÍår#""~üñGº™3g //¯wÞy‡ŽdåÊ•®®®™™™à·5ͨQ£œ­E¢ÕjW­Zäää™››Kîw3¾"cæñX»­ŒÁün´ á…·¿yxÓ°ó›†ßqÁxĈù¿âc–Gæ@ûbP=qq\èÁvïÞ=mÚ´vyïZ²dIiiiZZZ뫘,+nq•ñ¼ôxwGÙ•ú}U~cùÙíS2éM%¡ &¡tü¼ììO½ß7ä%¡"íj ”·~­ÿ?¬"m…1$ЩT*‰D²mÛ¶ôôt[ÇÍÞÑÎg×g7b¾¼\]~FVž'/Ë“©e:;ƒÒQ”žBšeZ[GÚéµTivýµŒêÊ‹ žoŸASÝÙ®ø,m‚7èòòò¦L™òÆoŒ3¦-íðx¼¹s綦º&®ƒxŠPýôÓyyyä~‚—••Õ¯_¿íÛ·ÓIà‹/¾øî»ïÒµš››ù|þ¡C‡!&))ÉÃÃC$%%%i4ãê§N²Éu¹9?ïÆ´²Î#@[ Ë@ÏáîîîééiRøØßÇ;:::::’ûË€˜· æ¾þúëÕ«WoذaäÈ‘/^|ýõ× »Ö¬Y“ššêævoö3f¼ÿþûkÖ¬a0GŽáp8&L „¬]»¶¤¤äܹsõõõ¯½öÚ²eËfÏžm¨ÖqÁSzrûTƒÏ.VS€Î„w€{ª««›ššL  ƶmÛBBBÜÝÝ“““wìØáïïïââ²téRBHbb"ýa‘¢P(8ÎÅ‹ ! e³Ù;vì „èõúuëÖ…„„p¹ÜÈÈÈììlã¾RôWà™™™‰D‰‰‰ÍÍÍ Ƀý¬ÚéËøó¯Þ ‡Yü^ß‹Wm-Z‹'5¿?ýAt6løüóϧL™âåå5iÒ¤ýë_†])))cÇŽurr¢_FGG×ÖÖž;wŽ’žžþꫯÚÛÛB¾ýöÛuëÖõíÛwÈ!)))‡¶X½}5Ëtù;ª2^¼zôŸÅ•q «l· ÀãhåˆäÌ™3¯¾úª»»»D"1ÙE™1c†L&£V‹‹“Éd7n$„ÔÔÔœ8qB h4Š¢vîÜ9xð`½^¯P(úôé³aÃ†ŠŠŠ­[·ÚÛÛ+Š7ŠD¢ýû÷K$’C‡ùúú³£¢¢ rssƒ‚‚>úè#‹…EÕ××oÞ¼™Ïx›réÒ%¹Fc¼n`JJÊK/½tûöíüüüðððE‹ö~ñÅÆáy{{ßd“Å-^µµhÍOjñþßó£GÒÙKqqq;þ”)ŠŠmß6M8::^ºtÉð’NP難V«©oæ?þñ÷ß_¡P899Ð…l6ÛøÏ´‹‹‹qõv¦§$çdÙKK¶E^Ls9÷Ë2YysûŸ EHH ›iÇ„D©T~÷Ýwaaa7n”ËåæÇB.\¸@Q”Z­6Ù.,,ÔjµžžžYYYEMš4)99™¢¨ºº:‹µzõj©Tª×ëår¹N§zôèСC { `žá¥IBbñª­Ek~R‹÷ÇäZÊËË—/_îëë}äÈóO'$$!!!©©©†—;wî4þASÞ̃ìÚµëÙgŸ5Tñõõ5,W/•JoܸñH«Ñ·ÞÝ«Šï'_Ý~þÀ«¿ÿq°F£jŸ› ð¨Ðe z©cÇŽùùùeee}óÍ7çÏŸŸ3g޳³³Å#¹\.!„Åb™lB˜LfLLÌþýûkjjŽ;OáóùÙÙÙ¹¹¹¾¾¾£G>yò¤]qqñСC m†††šŸ(88˜Þ‹Åeee-Zcø Kûûßÿn¼·´´ÔËË‹ž)küøñ%%%†]wîÜyhx¯ÚZ´æ'µxLNáííýÑGÏœ9ó“O> ¹sçNË×ÞEÌ›7/)))33³²²òðáÃË–-káਨ(©Tº|ùò„„CaLLÌâÅ‹oݺ•ŸŸ?qâÄõë×wP¨\Ÿ>¾‘¼—¾™¼}à€¿ 0nlï>ÐK¹»»4(''ç·ß~«¯¯ìvbccøá‡Ý»w5Šîˆ¥T*õzýž={êêêfÏž]WWçããsùòeC­k×®™7EN)(( ;MY+|T'tÙêj´Íº›¿ÔadteHH ›éˆAíR©ô‹/¾ ,--5ÙõЄ„¢¨yóæ9::Êd2ã Äbqff&EQjµzÅŠþþþÎÎΑ‘‘ôç& É–-[üüü„Báüùó•J¥ÅBêÁôÀxû¡ ‰L&›5kŸÏsæÌill4ìÕjµ«V­ rrrŠŒŒ¤žXlÄÀ䪭Ek~R‹÷ÇØÞ½{GŽ™––ÖÜÜΣ{UBRyIqòÓ[ÛG_Ú:òBá¡Z[‡`ƒ²4 ËÚ½{÷´iÓ:â½K¯×ëõzzêÕG²dÉ’ÒÒÒ´´´ÖW)** 6\…ÉË »“«nÇh5a”NûŠ‹‹#„ìÞ½»#ïÖfy6ÜùºBåjKŽK«5>ÜàI¿±.NÌNŒàÑ`aD€{ìììÌGW·L¥RI$’mÛ¶¥§§wPT]PG_ue#=CË)_ͦ¯üÞ‡gôœÛ€‚݀Ǘ——7eÊ”7Þxc̘1mi‡ÇãÍ;·5…]Å«î²Ñö*‚œ¨µ¾#xv¬––ËèRÐe º™Žë²=^è²EÓk(bGì˜È: 'À´¿ÝEª.+NýëöΨ+·O4Ø:€ö.[]š^GU^P”þ¯¾4»¡±JÍd‡¾* q²u\í @×UvZ–½¤TÕ u r-è?ÎU0CÕ GABÐuñŸ˜åѬ+Ï·­cèHHl¯©FÃZ˜ïØIÄ éÑùñt$$ÐÍ0™Lb}y8€–MŸ>ÝÖ!üI§¦Êre·O6”çÉååÍÓ æõÅcèu0í/t3*•ê¿ÿý¯N§³u Ð- 6, À¶1¨åº²Ó²['Êrdªz­³§C¿g]úqñ çbýè…tªì¥¥7× rüžuñí"ȱuD¶„„ S5V©ííúðÐk€$$íˆÒ“ºB¥ä¬\rVÎõqxêý¾¶Ž «Ã×3mU_¢’œ“KÎÊ+Î)T Zg¦g˜³PŒ¾X‡'$m¢¨P§ÿýª—éæì=Œë5ÌY0Бa‡áé­‚„ ­ê •ü@6’€Ç€„À:ŠÔüÞTž'/?#»{¥iJ𨥖 hOC`ª©FCL—œ•Ë%j‡é5ÌyØ\/g¦­Cèið„ÀÔÉOn——úDð|Fp}Fp¹>x*ÐQ˜RIµ,'&ÓcB:èu¤7Uågeåyrg‡§a©[Âèšj5å¹òòùä“Ï>û¬  `éÒ¥¯¼òŠù‰þýïÿôÓOüùçŸ Ï"Ì ÝÝÝ7oÞLï5Þ6|óæMÃËÆÆF…B!—Ëÿøã%K–Ìœ9³•׬Y“ššF¿œ1cƾ}ûè¥ 9Âáp&L˜@Y»vmIIɹsç²²²Ž?¾lÙ2‹Õ ·£€¢bcccccz!äÂ… E©Õj“íÂÂB­Vëé陕•EQÔ¤I“’““)Šª««c±X«W¯–J¥z½^.—ëtºÁƒoß¾ÝÐljj*Ýý¶LoäççÓ{322‚‚‚,¶jaa¡qÉÙ³g]]] {ñx<ÃÁ-T4ŽÁmcc£““Ó™3g(Šš>}úâÅ‹éZb±¸¢¢‚Þ>zôèСCM.¡ø ÐKà À£ár¹„‹e²Ma2™111û÷ﯩ©9vìX||´¢µsQ5gÎggg…Ba(‘Éd³fÍâóù`Μ9&UZ€1$½ƒ²Òc W‰‹‹#„ìÞ½»íM-Y²¤´´4--­õUŠŠŠ‚ƒƒ oÈ&/[(ì©vïÞ=mÚ´^r±½œ½­è9T*•D"Ù¶m[zzº­cè0† Ýäåå > MySQL++ Reference Manual
beemutex.h
Go to the documentation of this file.
1 
19 /***********************************************************************
20  Copyright (c) 2004 Beeyond Software Holding BV and (c) 2007-2008
21  by Educational Technology Resources, Inc. Others may also hold
22  copyrights on code in this file. See the CREDITS.txt file in the
23  top directory of the distribution for details.
24 
25  This file is part of MySQL++.
26 
27  MySQL++ is free software; you can redistribute it and/or modify it
28  under the terms of the GNU Lesser General Public License as published
29  by the Free Software Foundation; either version 2.1 of the License, or
30  (at your option) any later version.
31 
32  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
33  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
34  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
35  License for more details.
36 
37  You should have received a copy of the GNU Lesser General Public
38  License along with MySQL++; if not, write to the Free Software
39  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
40  USA
41 ***********************************************************************/
42 
43 #if !defined(MYSQLPP_BEEMUTEX_H)
44 #define MYSQLPP_BEEMUTEX_H
45 
46 #include "exceptions.h"
47 
48 namespace mysqlpp {
49 
57 class MYSQLPP_EXPORT BeecryptMutex
58 {
59 public:
64  BeecryptMutex() throw (MutexFailed);
65 
69  ~BeecryptMutex();
70 
73  void lock() throw (MutexFailed);
74 
77  bool trylock() throw (MutexFailed);
78 
80  void unlock() throw (MutexFailed);
81 
82 private:
83  void* pmutex_;
84 };
85 
86 
94 
96 {
97 public:
99  explicit ScopedLock(BeecryptMutex& mutex) :
100  mutex_(mutex)
101  {
102  mutex.lock();
103  }
104 
106  ~ScopedLock() { mutex_.unlock(); }
107 
108 private:
109  ScopedLock(const ScopedLock&); // can't copy
110  ScopedLock& operator =(const ScopedLock&); // can't assign
111 
112  BeecryptMutex& mutex_;
113 };
114 
115 } // end namespace mysqlpp
116 
117 #endif // !defined(MYSQLPP_BEEMUTEX_H)
118 
ScopedLock(BeecryptMutex &mutex)
Lock the mutex.
Definition: beemutex.h:99
Exception thrown when a BeecryptMutex object fails.
Definition: exceptions.h:389
Wrapper around BeecryptMutex to add scope-bound locking and unlocking.
Definition: beemutex.h:95
~ScopedLock()
Unlock the mutex.
Definition: beemutex.h:106
void lock()
Acquire the mutex, blocking if it can&#39;t be acquired immediately.
Definition: beemutex.cpp:106
Declares the MySQL++-specific exception classes.
Wrapper around platform-specific mutexes.
Definition: beemutex.h:57
void unlock()
Release the mutex.
Definition: beemutex.cpp:163
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadInsertPolicy-members.html0000755000372000001440000001064312502417163030651 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadInsertPolicy Member List

This is the complete list of members for mysqlpp::BadInsertPolicy, including all inherited members.

BadInsertPolicy(const std::string &w)mysqlpp::BadInsertPolicyinlineexplicit
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/utility_8h_source.html0000755000372000001440000002056712502417162024541 0ustar robertousers MySQL++ Reference Manual
utility.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2009 by Warren Young. Others may also hold copyrights
10  on code in this file. See the CREDITS.txt file in the top directory
11  of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_UTILITY_H)
32 #define MYSQLPP_UTILITY_H
33 
34 #include "common.h"
35 
36 #include <cctype>
37 #include <cstring>
38 #include <string>
39 
40 namespace mysqlpp {
42  namespace internal {
44  void MYSQLPP_EXPORT str_to_lwr(std::string& s);
45 
48  void MYSQLPP_EXPORT str_to_lwr(std::string& ls, const char* mcs);
49  } // end namespace mysqlpp::internal
50 } // end namespace mysqlpp
51 
52 #endif // !defined(MYSQLPP_UTILITY_H)
void str_to_lwr(std::string &s)
Lowercase a C++ string in place.
Definition: utility.cpp:30
This file includes top-level definitions for use both internal to the library, and outside it...
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ScopedLock.html0000755000372000001440000001042412502417163026211 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ScopedLock Class Reference

Wrapper around BeecryptMutex to add scope-bound locking and unlocking. More...

#include <beemutex.h>

Public Member Functions

 ScopedLock (BeecryptMutex &mutex)
 Lock the mutex.
 
 ~ScopedLock ()
 Unlock the mutex.
 

Detailed Description

Wrapper around BeecryptMutex to add scope-bound locking and unlocking.

This allows code to lock a mutex and ensure it will unlock on exit from the enclosing scope even in the face of exceptions. This is separate from BeecryptMutex because we don't want to make this behavior mandatory.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x67.html0000755000372000001440000001030112502417165024652 0ustar robertousers MySQL++ Reference Manual
 

- g -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Set.html0000755000372000001440000001636212502417163024725 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Set< Container > Class Template Reference

A special std::set derivative for holding MySQL data sets. More...

#include <myset.h>

Inheritance diagram for mysqlpp::Set< Container >:
Collaboration diagram for mysqlpp::Set< Container >:

Public Member Functions

 Set ()
 Default constructor.
 
 Set (const char *str)
 Create object from a comma-separated list of values.
 
 Set (const std::string &str)
 Create object from a comma-separated list of values.
 
 Set (const String &str)
 Create object from a comma-separated list of values.
 
 operator std::string () const
 Convert this set's data to a string containing comma-separated items.
 
std::string str () const
 Return our value in std::string form.
 

Detailed Description

template<class Container = std::set<std::string>>
class mysqlpp::Set< Container >

A special std::set derivative for holding MySQL data sets.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2folderopen.png0000644000372000001440000000112512502417165023623 0ustar robertousers‰PNG  IHDRÚ}\ˆIDATxí]?oÓPÿ9iš4i°;ii“¶‰ZЉ‘‰ÀÀ7`bèÔÙ¬Øù,HìU'ô$*Tµ]‚T¡DPÚÄ6wÏ}‰;¡C; a¿ÓߟûÝïîž¼jAÀ­InSþ}€9H“ÓŽ|?íÁ÷ =_ÊÆŠ­†¥Àue*;¯YEäsYäæB¢Ÿ¿þÄ—£sÙ½½ÙŒ† É«›©ÀYÇq !GÇ¿v̇¹ÑØ®š °Œ‚ÔF¹}q¥b]÷7í·0)Úd›¾ÿð-èº}Pfä£ÖY{4™ÑÂ@}úæôñ2ÛüÔ—ñúåNŒI‚ÁǃcçÁº%£¬UаI³mc±ô˜å¼ÔÆüÈ>é¸xþt9Æ$µý OæVE*õU´Ì‚ç#ž×ˆ•ïûr@l$øPÿrHaaÇ¥ ²›dZ®rè‘ãqI„o¼øT\Ž,tªj2FAxv-LŸp׌p TÄI/ \¥sfí½; jViTƒèú¤o^cpÅü¼ûû»Ïb]”€¢¤<†aþÕœ²“ßÓ˜y“£§9:Œîù+À³€ñà,E žf³6éNˆÄE£KU}Ü^;¶ØnZ¢uß­US4— ѬëbížN¶.Úk¦ØjTÄöº%µªâ i¯VÄÊÝò§™ Èù¸)ùÿG€™òºJ@T x”IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x76.html0000755000372000001440000001152012502417164023642 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- v -

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_27.png0000644000372000001440000000605312502417165024024 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ àIDATxœí›}LS×ÇŸRèÚZ@Š(ÛD +cqhÔAÄàâK¶e.‘ãE£à"F6Œ‹dÎd`̲°©$&›*ºM˜©\§{QçÀÌA7\F±V„vˆ¶ÐV+}»¿?N~7×{/·¥ôqçó×¹Ï9÷ÜïyîÓsÏ=÷©€ À`x#hº`sp„aøG†_‚iÇz½þâÅ‹Ó"3Ó‹Åyyy"‘è!+ñ0yyyÓ$ó8ÐØØH‹(úæv»srrΜ93-ú03@àr¹hF¼Ãð Ž0 ¿àÃð Ž0 ¿<ŠÖßß/Õ›€‚D"Y±bEww7G{‚ 6nÜ(“ÉH‹Á`(((X°`L&[¶lÙÙ³g¥mRn¡Ž(<<üÕW_½qã†×³¦‹G1ÂN{{»Ñh4&11ñ7Þàøk0êëë¯]»†ïÞ½»xñb©TªR©ºººòòòòóó/\¸0uU:.**Ê¿sш CKK‹ÇãÙ¸qãD-gÏžýî»ïò¡ÁWh»999999Ä´¢Õj™Âü´Z-y8<< ÃÃÃ>^½´´E$Éîݻ׬Y3ua“&Ùž6¢ÁÁAû4p*•Šfôs'NœHNNŽŽŽ®ªª:uêT|||xxøûï¿eee[·nE-m6›T*ýý÷ßàܹs‹-‹Å .ù$999444==½¹¹™:¥£^­V?óÌ3r¹¼¬¬l||œÕ?8 !!!"‘(<<:Îòòò˜˜¹\^^^ît:ÓÒÒ`îܹ¨AccãÎ;©=TVVÖÖÖ¢òèèè–-[¢¢¢âââvïÞýàÁƒ‰d‚úúúäää9sæ|üñÇ@»S‰Ûí>pà@RRRhhèŠ+:;;YG$ mDqëñC:ýòåËO=õTkkëDñÀ-â|œÃ ??ßb±?~rss-KMM ܹs§¥¥%22ÒétQWW—’’âñxl6ÛO<ñÙgŸÆÚÚÚàà`›ÍVSS#—Ë›šš Ãwß}ä Ö­[××××ÑÑ¡P(öíÛÇj$bttôرcHµ ÝÝÝV«Õjµ íØ±£¨¨ˆÈG}ôúë¯ h4š%K–ìÙ³‡ú³6›Í`2™&òCaaáêÕ«¯_¿®Ñhž{î9Rª¥– ;;Ûl6;v îÞ½K›?˜Jª««©Î™7oüC#²X,ýýýYYYK—.õEPƒ—_~ù矶Ùl^£‚9‡ùaW¯^%ÂápÐÊZ­ÖårÍ;÷òåËA¼òÊ+UUUA˜L¦ƒšÍfÇcµZÝnwJJÊçŸNvûÅ_0#L£Ñ Z•J¥P(XÜR©Èd²k×®‘µJ¥Òh4¢ò¥K—RSS©N7™L`6›Y{v8B¡ðÏ?ÿD‡MMM¤**м[f³¹££ƒvÊk¯½vèÐ!j¬ÔÕÕ9N©T# u:²_¿~}þüù¨ŒVECCCÔ®‚‚¸¼ÍT²`Á¯Î¡Â¡Ço È>QDúmNóý)IJa-»\.¹\sòäITe·ÛÅbqCCÃÈÈÈÑ£GÅb±ÝnÿðÃårù7ß|c4øáÖuØ‹/¾¨Õj»ºº+**Xç:ŒúæuóæM°X,è°¬¬,;;[¯×÷ôô¼ð o½õíÁqûöíÈÈȶ¶¶žžž}ûöÀùóçQmAAÁêÕ«u:Ýü‘’’RQQ122µµµccc6lÊŠæ%t!«Õ:‘’ÇS³páB`{—¤ÂÔC{JNVä^6!°ë0î#bûö퉄¼—A¨Tª„„‘H¤T*Õj5A‡cÿþýñññ2™,==ý«¯¾bFØñãÇŸ~ú騨¨·ß~Ûn·³‰‡=¹• ·ÛvãÆ th±XŠŠŠ""""##·mÛvïÞ=¦Oõz}vvö¼yóBCC—/_þí·ß’U&“iÓ¦M‘‘‘±±±»víBJ>øàƒÙ³g'$$¨ÕjŽ»ët:322d2ÙDJ\.× ŬY³ÒÓÓь¦îóªaÚ"ÌöîÝ[PP0©Shãa^`·p0„5ÂèùaáÁƒƒáĉ§OŸæ£Ì ‚—•~ggçÒ¥K‹‹‹W­Z5•~ÂÂÂJJJ|1bYÄÃoÔ¹¹¹€s\1~ T* !’ÿÄ—oÌ4ò¸E™?$Ü—˜¨–š{ƒÞ¥xÒü¨ÁËJÿq¢½½=>>žj æÈ‡ñ…††•Jõù[Ž0/DGG“©$UUUS鳤¤¤´´tÕªUÌž?ø}JŽŒŒÜ¿Ÿfœ¹™?ÌÌt²GîÍ®]»”Jå¶mÛh¯Ypþüy”ðKÆ1·Ç&’Áô˜×[à ´ý±@í¸vuumÞ¼9::Ú`00÷åfbæÂétR·|9’8ro´Zm__ŸD"AŸÔÈS,‹H$*..¬««€Û·o{õ« VQïÂ¥K—P8êtº©ßnÒ]¼ïéÛíö/¿ürùòå‹/®©©!?xÑtÌÐÌ8wî5Â8’8roЧ›Ã‡‡…… §Œÿõ×_6›Íív·´´-¹=Æ*ƒÕc´Ñ UVVÆÅÅ­_¿þÂ… Ì“…÷C?‹Í›7wvvz<Üß4wìØQZZ:22"‰nݺ…j[[[³³³gÍšµråÊï¿ÿž ‰DÒÝÝMv‹¦´C ‚èéé‹Å¬FŽÛ@j„‰Åbjü…‡‡“µ¬ò¨}ºÝîÌÌL4¡’ªÕꌌŒÔÔÔ¢¢"j„q{Œ)ƒÕc¬8”“””400Àá ¯°FX ×aÑÑÑÏ>ûl{{{[[Ûèè¨ßý<š™?¬p$ÿxͽ :yòd[[ÛÑ£G‘Ån·çææ–——_½zõÈ‘#S‘Áê1Ös‡‡‡{{{—,Y"‘H|¿¨2žþùæææ¦¦¦¿ÿþ;))éÍ7ßüí·ßüègåÊ•.—kÿþý›6mB@°nÝºÆÆF‹Åâp8BBB¤Riqqqyy¹Z­þçŸ~üñÇ={ö0»Ú¹sgÿ•+WöîÝKþ!‡iCKZÙ+YYYï½÷ÞÍ›75ÍK/½ôé§Ÿ’UÛ·o§Ê«¨¨`žðàÁC‡¡Ãññq‡Ã!‰ìv{ee%X­Vÿd°zŒzŠÇã¹xñ↠ÒÒÒ‚hkk;}ú4/ÿ;¢ÍiZé›Íæêêê„„½^ÏœKghæ³Gº‹¹7gíÚµd‡ÕÕÕsæÌyòÉ'9’ŸŸ/—Ë}ñS«Ç¨444¤¥¥Õ××{½›>ÿröAn·½NœùÃ7‡#à}²F¿;®AAAÜi»LpæÏ¿Ã”£'Ã#÷]gþ MySQL++ Reference Manual
 

- m -

mysql++-3.2.2+pristine.orig/doc/html/refman/uds__connection_8h.html0000755000372000001440000000526012502417162024620 0ustar robertousers MySQL++ Reference Manual
uds_connection.h File Reference

Declares the UnixDomainSocketConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::UnixDomainSocketConnection
 Specialization of Connection for Unix domain sockets. More...
 

Detailed Description

Declares the UnixDomainSocketConnection class.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TCPConnection__coll__graph.png0000644000372000001440000002370312502417165031144 0ustar robertousers‰PNG  IHDRCÍ­œ…LbKGDÿÿÿ ½§“ IDATxœíÝi@×Úà“%ìû*”ÅÊVD[+^µjUD½öŠŠ‘¥.WÅz%Öµ¨uÁ¥µ*"¢Ô¢"Z­¨¸‹zEMQZÙÕ² „lóý˜~¹)e ™¼Ï¯““™sÞ3ÉKΜL †a â¨DPÈdÈ22€L€ èò^¾|¹dÉ@@T4@Õ¹ººîÛ·¯çíÔÖÖVVVö¼^E¥R¨¥¥Et !D‘_»>uêT@@€¿¿?ÕõêÕ«¼¼<¥|òìÙ3.—«¯¯ßó¦zOmm­›››¹¹9Ñ Ôæ3wêÔ©¾þI ¬ÖôõõÝÝÝ•ÕZo¸~ý:Ñ!üœ'@Éd2d™ ô»L...¦P(Jl°¹¹™Åb yøðáŽ;=z´fÍšãÇOœ8Q"‘(ܾ´´ÔÔÔ/~óÍ7JéîÝ»U§ô.p}0–~H~ÔòH| E&›7o633»zõ*FC}øá‡“&Mòðð8räHDDDûí¥Ri}}=^655‰‰QzHfff–––Jo¶½>K?$?jy¤?ÝùL¦P(ÉÉÉ®®®fff111)))6l@EFF†‡‡ã[òx<&“ùøñc„Pvv¶§§§–––££cJJ BH*•ÆÆÆºººêéé1"77W~þƒO‡²²² dnnÙÚÚª°ý}î$_NMMýöÛoñ4Æéèè°X¬ÔÔT…My{{#„ðL“o§±±qþüù¦¦¦¶¶¶QQQøep åøñã®®®ÆÆÆ;wîÄ·<þü!C˜L¦••Uçß:çγ±±ihh@|˜N§óx¼„„ss󌌌ÊÊÊ .ØÚÚ"„ŠŠŠðð‚Ï‹/òòòœ7nܨ°Ã°ÆÆÆÄÄD<<** ßrÇŽ3gÎ|ùò%›Í:tèêÕ«{c, _²w¿1:ùþ錂‚‚‚‚‚wo£0Âö£ž“Ùl¶,6ggg…•ÅÙQ&ß»wÏÔÔôíã5²²P(¤Ñh²7VFFÞ)B(77W~ì­­­………<O"‘ܸq¯l“Éý1mhh°µµõôôÄS ðAƒeddàåçÏŸËÊ...UUUx9''ÇËË«7Æ¢ð%ëèPËúíËLVaûQ㇥ͫÐf°Ç—µ|âÄ •Ëän®xééé!„ F›2BˆF£Í˜1###£®®îÊ•+AAA!##£ÜÜܼ¼<[[Û1cÆÜºu‹J¥–––zyyÉÚôôôlßÑÀñ‚‹‹ËëׯßQÙž¡¡¡¥¥%þÇXÞ“'O>þøãÎ7USS#‘Hœœœð‡ÎÎβ-­­­åÇ®¡¡ñâÅ __ß?þøèÑ£ [+**jóÈ¢]°`Á³gÏ/^Œ×TTTÈÂsuuõóóÃËåååVVVøº÷ĉËÊÊzc, _2…m¥“º¸¸´¯l3Ø’’Ù³nnn½r/ê•ׯßß?33óÔ©S£FÂçÌ|>_*•ž>}šÃᄇ‡O›6ÃáØØØ<}úT¶×³gÏÚ7…ÿ)E½xñ?úU*´yófù•êæææ;vøúúv¾) VZZŠ?,))±±±ÁËmÞ:|>öìÙ,+???..îµ÷êÕ«ØØØ &¬\¹¯±¶¶.//ÇËOž<Ùºu+^Æ'ø_†††¼¼¼^Kû—¬K#êmŒP–®òÚ ÖÞÞ^þíWXX¨ôh{[¯dòèÑ£ÅbñæÍ›ƒƒƒñ …âã㓞žÎår…B!ƒÁ`2™aaa,+++«ººúÒ¥K«W¯nßÔòåË‹‹‹>|¸víÚ¹sçvTùöí[ü¤½MùÛo¿}óæÍøñã/]ºTTT”™™9|øpÙçžÂöy<ž| # 22²¬¬¬  `ýúõøD£½ÖÖV¡P¨¡¡Áçó£££BMMMm¶©­­­þ;„T* [¶lÙÉ“'¯\¹’ ^·n>Ï\ºtiEEÞÂŒ3Ö¬YSQQÁf³}}}8ÐcQø’)Ü’(ͨßkÉ’%«V­º|ùr}}ýµk×6nܨ.+^²Ï„ŽÊ‹-ÒÖÖær¹ò;99ihh¸¸¸deea& 7oÞìàà ««;bÄüä¤ÍyrRR’½½½©©é²eËø|¾ÂJìïgAòe Ãx<ÞÊ•+=<<˜L¦»»û–-[ZZZ:j_$5JWW·M;'88ØÄÄÄÊÊjÅŠx§ ÇþÃ?0 ...00ÐÜܼ3çÉû÷ïtèPßÇA”Á Ðhªvmò*UÇ)âŸÑPÊGR„ÚM"©tг¯1MC­ßÌj=øÞàêjíêj¥ðÖ1t:UGGcÂÕ»Ûá ´œ§#Lñ×KR16è_ê»Ö…ƒLV¾¹sÿÑþ&t:ÕÎÎ$'‡5jÔ‡„D¥Ò¨tʘö£Ö P)”6‡–‚Œœ´ÍÜû×=Æúd²òùù ms?7 …2l˜ãÅ‹+ár‘žp™aêóƒ#…F¡Ê]K¡"×™pT!“{¡!sÒ$:ýë^66†ÕÕý[9ÐY*¹Ô@Ó hÒ¨ô¿’™J¥ œbLl\ýdr¯ð÷ÿD"‘P©ãõê* zHÈa¡°Sÿð(ô0®²ìZƒï>g¿TWCG-*ƒB¡Qì>3ÔУ½g²ƒLîãÆ¹hëèhþüóâyóþ¡§§uìXDqqͪU§ˆMUýžY÷$¹zÔ:;K/]sÆ¿Ž ð}L‚¹Ì0!:´~® é-¿43Ó³µýßµ yy%׬ùç¢Ec‰‹K%Uþ·éâ’âæšºÌFV‰IQåÃ&›ázÖ@&÷©“'óX¬SÉÉa>>ïß „â¾jÍ ùÃr¨î„Žm®ÁÿƒÓ§½CBF-]šZXXEt,*£0½ŽiÆ»ÙÒøà3¹¯I$Òùó“^¼¨¹pa…©©.Ñá¨LŠZ¹b-Cåß›L “ ÐÔ$øâ‹½úúÚ§Oÿ[CÞ @ `¾B==­£G#JJÞÀR6PÈdbØÛ›$%…ffæ<˜Kt,€ “ ãíí3këÖìË— ˆŽ¨<Èd"z‡„Œ\²$µ°°k·ƒ%±–ZÑÛ ÑQ¨Xñ"¾”ýÇÕ¿üòXÊ ¤ç¿zA¥S¾82ˆèXT |&ŒF£ÆÅÍÓÑÑ KVó«²1)veU)¯Zôù6¢cQ=ÉÄײKKß°Xj½”ý`oeÕ#Þ¤½NºVê{c½nƒLîð¥ì³góãâ® 1 ÏԱ׌Ùdoæ¦î÷ èÈäþ_ÊÞ¶íü¯¿ªÝRöŸšîîz54ÂÊq‚úÞ³‡ “û|){éRõZÊ–±ËíF ]`Et,* 2¹Ù¼ÙÏÛÛ1$$©¶¶³ÿÜLÕÑ4(w9ÛòAG?‰D,ËÂÂÂÜÜœÅb‰D¢ââb …rõêU;;»£GÊÊ·oßnllœ?¾©©©­­mTT”@ ßøöíÛ » P(ÉÉÉ®®®fff111)))6lè(„Pvv¶§§§–––££cJJ ¾¥ÂÊóçÏ2„ÉdZYYÅÄÄ „0 ‹wssÓ××ÿüóÏÏŸ?ß1JaG‚~†Ëå3mÚÞÖVѱô ;vì˜9sæË—/ÙlöСCW¯^]TT„š_*•ž>}šÃᄇ‡O›6ÃátT9{öl‹•ŸŸ‡7hooÿìÙ3Yû………ïì{A&÷_²¥ìçÏIµ”Íçtz!„ÐŒ3Ö¬YSQQÁf³}}}8ÐÑ– # 22²¬¬¬  `ýúõAAA=ŽWq  ÅÇÇ'==Ëå …BƒÁd2V¶¶¶ …B >ŸjjjZ²dɪU«._¾\__íÚµ7â+^l[üì„‹%sç& ¶éÍ.ѱ(¯º5Õ‡ýütmçwár¹¡¡¡FFF&&& ,hnnÆ'Ìø³òe Ã8Npp°‰‰‰••ÕŠ+ø|~› Bï›]·ð´´4''' —¬¬,|…•?üðƒ±±ñ€âââÍÍÍ%Éž={œœœ |}}³²²ÌÌÌ:ê¨3àý~ƒ]]­ôô%ª~ƒa“$+ôšeZÒ S­çƒçÏŸ0`ÀàÁƒñ‡ééé[¶lyüøq·T룩ð«²ËÊj£¢ÒˆŽ¥G¤ìêê2Q‹Äw¯³š§1BˆÍfÏ;7??¿¥¥%//oÆ =j±“ŸÝ€XøRöþý*¼”}gÇËä‘k ;;]ì ý' D"Ѻuë  ¥¥åææ¶k×.‘HñåŒf×*ãèÑ;ë×§'%…úú~Dt,]ö,­öÞîWãcÆ 9©û$G…ÌŸ?2$dä²eÇUn)»æisÞ¯‡„YA÷øLV%ø F */^\aii@t8%æK 3ê>šcŽÿ's É*¦©I0mÚ^mmFfæ2-­]íÈf×*ÿ·¯^q¾þúü2ɪ¿ÁÈÅ‹¿ÅÆ^%:Ð_@&«$oo§M›übb~9wî ѱ€~Aµ¯Rgóç|ñ¢êë¯OØÙ{yÙÎß`RÿW±ÁñVa›7Ï6Ì!44¹ºú-ѱüOÍÓæô/Ÿ·Ôuíg ‡ “UNMJ 50О?ÿ0Ÿ/$:„z[Ñúë×%Ƶ™&°®Þ§ “U›žžVrrXEEý×_Ÿ$|)[Ð(¾¸¬ØÀ^ó³oíá«ã>™¬òÍŽ »té·}û®†T„]a•blâ÷ŽtMx_õ58âd€/eïÜyñܹîÿ,®‡nm{Y÷{‹ÏN0¯&¬]“Äÿ/eŸ´³3éû¥lvjMÑyΤLi÷q×Wk’‡X, Jxñ¢¦ï¯Ê.¾Äiy#òœgÑ—yɤòömËÔ©?êêjef.ÕÖ†ÿ“¦Fà<™T ˜?ýôU?YÊ} 2™lÍ ¹x‘½woѱ€¾™LB£G¸i“ß®]—²²[Ê} Ö®É)4tTQQõŠ'íí XÊ}V¼HK¶”ýË/_[Y)ó¶;dÕ‹Z$æJlôÌ®I‹N§:¢££¡Ü«²_Þz{kËKa³DY ¥€L&3æ±c/_r–/WÎ F8ÅükkË' ‡ÿZÞ¿@&“œ““ù¡C!—.ýöã=]ÊæsÄ—W”˜º2?Û?èw “É_ÊÞ½»GKÙ¡4'ª„B£LØå@e@÷;Éj!4tT@À§QQi¯^qº×ƒý•œ"ÁÄ]ŽZð}G¿Ô[ÿ-ƒ¤X,ѯX7Q(4mm·nïn¦iëª7\‰ñô%¢ß8½þ¾vMyy¹··÷þó¢uïÞ½={öE¯ƒLî²øûûè,L=®˜€ódÈ22€L€ “ ÈdÕS\\L¡(óÚŒÊÊÊ9sæ|ðÁºººÃ† ËÌÌTbã]¥ôÑ© ÈduW__?dÈ&“™––öàÁƒ/¿ü200ð×_íËJKKMMMñ²¡¡á7ß|Ó—½“| ¥î¢££Ç—””„?tss«®®Þ½{÷¤I“ú,©TZ__—MMMcbbú¬kÒ€Ïä^A¡P’““]]]ÍÌÌbbbRRR 6lØ€ŠŒŒ Ç·äñxL&óñãÇ¡ììlOOO---GGÇ””„T*uuuÕÓÓ1bDnn®üÌŸˆfee 4ÈÜÜ<22²µµUa%úû¬U¾œžž¾|ùrùࣣ£>Œ—çÏŸojjjkk%ðÑ?~ÜÕÕÕØØxçβ!·¯‰D,ËÂÂÂÜÜœÅb‰D"±Xmgggff6oÞ¼ÆÆF„··7BÈÒÒ²MlïÀÕš]ãïïïïïÿÞÍB\.ÿ¬›={6—ËMHH@ÕÕÕݸqÃÄÄD$a–ššêîî.•Jy<ž¦¦f|||UUÕáÇét:ÇKHH077ÏÈȨ¬¬¼pá‚­­-B¨¨¨áð‚Ï‹/òòòœ7nܨ°Ã°ÆÆÆÄÄD<|xTT”l xòåÎ÷þiiiêð>'ÿ•«ó™œŸŸa˜P(lS.**‹Å–––W¯^Å0lÊ”)111†q8ƒ±{÷©TÚÔÔ$‘HÜÝÝ=*köرcí3™ÍfãϦ¥¥9;;+¬ì(N‡ƒjhhPø¬P(¤ÑhøÃŒŒ ¼)„Pnn®üˆ:ªtqq©ªªÂwÏÉÉñòò4hPFF^óüùs¼¬0“»Ôû;¨I&Ã캷èéé!„ F›2BˆF£Í˜1###£®®îÊ•+AAA!##£ÜÜܼ¼<[[Û1cÆÜºu‹J¥–––zyyÉÚôôôlßÑÀñ‚‹‹ËëׯßQÙž‘‘‘……ÅóçÏå+>|8lذ–––šš‰Dâää„×;;;Ëš²¶¶–QG•åååVVV …B¡Lœ8±¬¬¬¢¢B›«««ŸŸ_G±uµw5™L ÿÌÌÌS§N5 Ÿ3óù|©Tzúôi‡>mÚ4‡cccóôéSÙ^Ïž=kßþ!†zñâþï¨R¡/¾øâûï¿Çä.NNMM‰DL&Ó‚F£•––âõ%%%666x™JUðÎi_ijj*ûÌlhhÈË˳¶¶.//ÇŸ}òäÉÖ­[; ¬«½«98"Ä=z´X,Þ¼yspp0^C¡P|||ÒÓÓ¹\®P(d0L&3,,ŒÅbeeeUWW_ºtiõêÕí›Z¾|yqqñÇ×®];wîÜŽ*ß¾}+[ –/oݺõÆÁÁÁwïÞe³Ù›6mÚ·ož` # 22²¬¬¬  `ýúõøô¡óf̘±fÍšŠŠ 6›íëë{àÀàààuëÖ,]º´¢¢B¶1Ǔ߷罫Bçöª§óçɲϢŽÊ‹-ÒÖÖær¹²½ÒÒÒœœœ444\\\²²²0  …›7ovppÐÕÕ1bĉ'P»ó䤤${{{SSÓeË–ñù|…•XÇ«J†•——Ïš5ËÚÚZOOïÓO?=wîœì)‡lbbbeeµbÅ ¼)…#RXÉårCCCŒŒLLL,XÐÜÜ,¢¢¢¬­­ ñSt‘H4jÔ(]]Ý6±u¾÷wP“ód¸Kn×Ìž=!têÔ©ž7µnݺòòòãÇw~—âââÊ^²6ßQ©ÎN:@úW†@ TVV&''Ÿñ€îLVwgÏæãSkœH$9sæ¿R)|£¡b “ÕšD"ÍÈø¯lj«­mz𠔨@÷@&«µ»w‹9œ–6•0ÁVEÉj-#ã‘üÔ'I22òE"‰Â]@ÿ™¬¾„BqvöÓ6Sk×zãÆ}è6Èdõuõj!Ÿßªð):š™ —ˆ¨ÈdõuíZaG݋Œ+W û6Ð#ð õUQQÏf¿’=\¸ðØW_ùä“ð‡ffzÞÞNÄDº2üÅÚzE||È_x½SÐÿÀì2€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “  †aDÇÐ/DFF‘~ÿÝÍÆæµž—è@£¥¥uàÀ;;;¢éÈä¿P(777sss¢„¹~ýzZZÚìÙ³‰¤;èDÐøûû;–è(a®_¿NtÝçÉd2d™ @&@°âÕ_üùçŸsçÎÍÍÍíyS×®]ûî»ïÚ×'&ÿ¬GlIDAT&:;;×××ëºÿƒL&!MMMMMM„ŸÏGËž:räÈ!CX,þÐÞÞžÃᤥ¥ÉÒÐÐßÞÄÄ$**Êßß¿¥¥…Éd¾wÇ> •J¹Ü¿.\100X°`AŸuÝÿÁyrŒ7îâÅ‹!!!Ó§O?qâÄåË—§NšœœŒÚ¿ÿÎ;ñ-ù|¾¯¯oQQBèîÝ»ááá>>>sæÌ¹|ù2BðÌÌÌ)S¦,Y²äñãÇòÓÚ?ÿüsܸqwîÜ öóóÛ¿¿H$RX)ÛX~ÇwáæÍ›3gΔ¯ Yµj•©T*BH"‘¼wGó¯ýËßßÿàÁƒB¡?\W®\ ùâ‹/~þùgÙ1l_)‹ãããýüüüüüâããÅb±D"9räH@@ÀôéÓ·oßÎãñBÿþ÷¿B3fÌh3ØÎ÷NbÉ]óèÑ£ƒ.X° 11ñÞ½{‡^¼xqJJ —Ë3fÌ;wð÷ý;w¬¬¬œÁƧOŸþóÏ?ïܹS \¸pá§Ÿ~ŠˆˆHII™7oÞöíÛÛwtöìÙíÛ·oÛ¶íþýû'Nœè¨ÒÐÐ0** V¾¬Çãp8m®FÔÖÖ–¿²M ðùü–––ÊÊÊüqРAzzzïÝqïÞ½µµµñññ;vìxøðáÉ“'ñúÛ·o8p`áÂ… MMMUž9s¦ªª*!!áûï¿ÏÏÏ?räÈ™3gnÞ¼¹}ûö={ö¼zõ*55!‡ÊÈÈh3®.õNVÉ]Àd2}||BsæÌa2™¾¾¾¡¦¦&:Îf³BW®\ñññ¡P("‘Ã0>Ÿ¯¡¡áëë›­©©™žž¾hѢѣG›˜˜ ><""¢}G‹/¶µµuuuˆˆÈÉÉé¨RGGgêÔ©ø³òe…ð+s)Ê;¶‰ˆˆ˜2eÊÔ©SCBB¸\î† Þ»£X,¾víÚ²eˬ¬¬CCCeOŸ>]WWwÒ¤I!Ùĸ}åÅ‹—/_nnnîèè¸páÂ\¸p!,,ÌÑÑÑÁÁá›o¾qwwï(à®öNVpžÜ5L&!D§ÓÛ”BT*uôèÑ7oÞttt|ôèÑÊ•+Bzzz{öì9sæÌ‘#G>üðÃ9sæ >¼ªªÊÙÙYÖ¦££cûŽlmmñ‚]mmí;*;OOOÏÈȨ¢¢B>1~ÿý÷üqïÞ½ø©ujjªM—vär¹R©ÔÚÚ¯·±±‘Åfjj*ˆ:ª¬®®–ŸºëèèˆD"Ù`íííííí;TCCC—z'+øLV¦±cÇÞºuëúõë}ô‘™™B¨µµU*•nܸ1;;{Ê”)k×®mjj255-))‘íU^^Þ¾©×¯_ã…W¯^™˜˜¼£²KFŽ™––&ÿ³™œœ±XŒ§q÷v422¢R©UUUx}ee%žB¨ƒñö•©©©¹¹¹¹¹¹ÙÙÙqqq&&&ÕÕÕø³ÅÅÅøìZ¡®öNVÉÊäéé)‘HŽ;†O¿B …Åbݼy³¹¹Y$ÑétMMÍÉ“'û ¯ÑÐÐX³fMBB›7o¬­­£££544$Éñ3Ã-[¶´ij„ +W®ãÇ ÂgŒm*B»wïÆOåË144f×J# «ªª.^¼øÏþ“èX€ÚLVšÂÂÂ… Nž<ÙËË«'íèèèL›6­3•ÈÀìú/Êš]Õ³kÁ “ ÈdÈ22€+CþçÑ£Gø¯çP9°vý—È®jê‰F£Ý¸qcäÈ‘DÒÉœ'@Éd2d™ ü¥!F@ê÷IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLStream.html0000755000372000001440000004005312502417163025777 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLStream Class Reference

A class for building SQL-formatted strings. More...

#include <sqlstream.h>

Inheritance diagram for mysqlpp::SQLStream:
Collaboration diagram for mysqlpp::SQLStream:

Public Member Functions

 SQLStream (Connection *c, const char *pstr=0)
 Create a new stream object attached to a connection. More...
 
 SQLStream (const SQLStream &s)
 Create a new stream object as a copy of another. More...
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Return a SQL-escaped version of a character buffer. More...
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Return a SQL-escaped version of the given character buffer. More...
 
SQLStreamoperator= (const SQLStream &rhs)
 Assigns contents of another SQLStream to this one.
 

Public Attributes

Connectionconn_
 Connection to send queries through.
 

Detailed Description

A class for building SQL-formatted strings.

See the user manual for more details about these options.

Constructor & Destructor Documentation

mysqlpp::SQLStream::SQLStream ( Connection c,
const char *  pstr = 0 
)

Create a new stream object attached to a connection.

Parameters
cconnection used for escaping text
pstran optional initial string
mysqlpp::SQLStream::SQLStream ( const SQLStream s)

Create a new stream object as a copy of another.

This is a traditional copy ctor.

Member Function Documentation

size_t mysqlpp::SQLStream::escape_string ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
) const

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps
See Also
comments for escape_string(char*, const char*, size_t) and DBDriver::escape_string(std::string*, const char *, size_t) for further details.

References conn_, mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

size_t mysqlpp::SQLStream::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Return a SQL-escaped version of the given character buffer.

Parameters
escapedcharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
originalpointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

DBDriver provides two versions of this method and Query::escape_string() calls the appropriate one based on whether or not a database connection is available. If the connection is available, it can call the DBDriver::escape_string() method. If there is no database connection available (normally only in testing), then DBDriver provides a static version of the function that doesn't use a database connection.

See Also
comments for DBDriver::escape_string(char*, const char*, size_t), DBDriver::escape_string_no_conn(char*, const char*, size_t) for further details.

References conn_, mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x73.html0000755000372000001440000003256312502417164023651 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- s -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Set__inherit__graph.png0000644000372000001440000001000112502417165027725 0ustar robertousers‰PNG  IHDR½pÄÃæ bKGDÿÿÿ ½§“¶IDATxœíÝ}8Tiãð{Æ4“‰;ÈKaі²­ì^»Š%±í–·õ.k½¥½ÊÕjlíÖ¢UÑ’¥0Â*¹*Š\k{\¡zÙÄþv–òc‰ ]†Æ0ÌŒ9¿?Îï™fÆÛY™¡ûóG×qŸs¿ùv^æ‡ € yÂËzÐ’sasasaAõf711ÑÑÑ!d=E¢£££¡¡!ëQÌb ä†Åb Éÿ®\,kppPþ'»rƒÚ´i“¬‡°Z[[e=„9×7070707Ë*7ýýý¾¾¾JJJVVV7nÜXð.þüóO·àÍ.9Ë'7CCC–––d2¹°°ðÁƒÞÞÞ>>>·nÝšW#]]]êêê3l ªªúõ×_ÿ³‘.Kæ>|V111vvv999èŸ7n|öìYRRÒŽ;æÞˆ@ šauuõ„„„4Ðå‘{wïÞu3--­úúzÑ’ÑÑÑžžtyxx800B¡èêêFEEq8A6lPSSKLLD„B¡V¯^Ö*++³°°PTTÔÒÒ:uê‚ Â&YA.—{èÐ!MMM C‡q¹\´JUUÕÚµkïÝ»7ó,ZZZZZZæ¼odf™äfxxÀd2§ÛÀÏÏÏÞÞ¾³³“N§›ššÆÆÆ"ðððÎÎÎ ‰Æ‚Åb‰Ä/¾ø¢···  088(–±ê‚$&&º»»ÿõ×_t:ýwÞ9|ø0ZÅÙÙùÎ;l6{æ‰ÀÜ,˜¹ä†Éd†‡‡¥®år¹ ÂÇ£¤¤ÄØØAÚ2—ËtttˆÆbrròñãÇl6{jjªººZrÉê‚lذÁ` TVVZXX Uètú\&»Tr³L®‹ÕÔÔV¯^ýèÑ#ÑÂÆÆF++«ñññ©©)###´ÜØØ¸··]ÖÑѬX±B²M"‘ØÞÞîää´yóæ .HíW²zww·¶¶6‡ÃápÛ·oòä Z¾aÆ8G¹²LrصkWrr2"ò¶×‚‚G&“W¯^­  ÐÕÕ…–wvvêêê¢Ëxü´{€ÃáxzzR©ÔæææŒŒ ©ÛHVWWWG<‚ 744 åR£¹t-ŸÜœ8q¢ºº:  ¾¾žN§ÇÅÅ¥¥¥8q°bÅ //¯>>šššb×7bÕa±XAAAjjj %,,lllL´Ê¬–Êõ ‘ûÏ3 >zôÈÖÖVÖY èû(äÿM#Ëç<-&˜ ˜ ˜ ˜ ˜ ˜‹%óþ›þþ~Ya1LLL¬\¹RÖ£˜ÝÈ ‰DÂápííí‹Ù©@€dd4¹º®×ÕU^Ì~ªªª‹Ü#K 7***Û¶m[äN:ëë^¿ÞÐÏÏv‘»^àõt7n4¡ÿòù¯ËçÒçæF .—_RòàÅ‹ñššÿ•õpäÌÿùOÛøø$@A_RÒ$ëáÈ#˜)Š‹›ð>_P^Nçp¸²‘ܹ766yëV Ÿ?…þ99ɯ¬|4s•×Ì8ÑÐðx\qñCŽG>Á܈+.~(úI^>_p÷n‹Å‘áäÌÍK˜Ì±ššö©©—î½ù÷¿é²’|‚¹yÉ/¿ü.Yˆ ȵkðTõ˜›—\¿Þ(ù†kihèx!“!É'˜›¿õ÷45õRÞ¨¯ €/+“r(zmÁÜü­¬ì¦ûpŸ?U\ ŸüÛx]sÑŒsµµÿ%ü“Íž\¹rðÿÿµà·%‰ZŸŸ’ƒ4Zà®]²ˆ<‚ç) ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜DDmm-‘H”õˆä‰¤‡Ç“e= yA¥RE£òÒ÷ûõõõq¹Ü˜˜Y ’O×®]ëîî-‘ò½¶¶¶‹3h©¨®®+×7070707r÷}é}}}þþþwïÞ]Ö8Î… jjj˜L¦†††½½½ŸŸßÂ>×044”™™ÙÒÒòâÅ }}}???›l,ô>YËüx“––ÖÑÑqüøñÂÂÂèè躺:6ÝÆ c÷îÝójŸÅb…„„H¤˜˜öÑG}ÿý÷ójdÖ~•””|||æÕæ«¶ÌsS[[ºnÝ:UUUssóÔÕÕM·±@ `±Xój?//ÏÒÒ’J¥š˜˜èëë{zzº¹¹Ϋ‘YûUQQ ›W›¯–ÜØÙÙ•——º¸¸\¾|¹¢¢ÂÇÇgçÎ?ýôàìÙ³§OŸF·äp8NNN€úúúàà`GGG__ßŠŠ ‚ 7nÜ üøã¿üòËß~ûÍÎÎNØK__Ÿ]]]]@@€««ëÙ³gy<žÔBáÆ¢Ñe2™\ZZ*|TÌÍÍ…*ŸÏ§Ñh®®®®®®4ÏçïÛ·àææ&uÖ###“““b…555îîî¢%ÑÑÑè2›ÍNHHؽ{÷gŸ}–™™ÉårѽWUU¸k×®«W¯Äú½ÿ~hh¨“““»»ûåË—Åf$Y]ê\Ð*ÍÍÍ^^^üñÇ̳Àãñ¦©©)333,,,;;ûþýû¹¹¹—.]b±XÛ¶m«««›ššÔÕÕikkOLLÄÆÆº¸¸\½z5 àôéÓ7oÞÌÏÏ ¹téÒž={N:%ÙQiié©S§Nž<ù믿¢;Qj¡ªªê¡C‡Ðµ¢ËT*µ¹¹ÙÃÃJ¥ [¾~ý:ƒÁÈÊÊJNNnnnÎËËËÈÈ”””ˆ¡­­-!!!((ˆÍf‹–³Ùl&“©§§'Z¨¨¨¨©©‰.§¦¦>þœF£%&&666^¹r-¯­­MOOÏÊÊíw||ü»ï¾[·n]AAADDDvvöÈȈØxĪK ºeQQÑáÇ׭['¬ÛÙÙéíí••Å`0¦{pçcn¼¼¼Èd²££#À××—L&;99FGGMMM NTUU9::âp8‡ ‡Ã!‰NNNeee$©¸¸xïÞ½666 ÅÚÚ:$$D²£ˆˆˆ5kÖ˜˜˜„„„TVVNW¸jÕª;w¢kE—ß}÷ÝÂÂÂÔÔT33³[·nùúúÞ¾}]U^^©©©ihhþàÁ±®¹\nEEEDDÄ™3gLMM/_¾L¡PD7@J7Í ñùü;wîìß¿_[[ÛÐÐ0((H8~%%¥;vÄÎPD"177÷À ÍßØØ˜XË’Õ§›KXX˜¥¥åÊ•+…u7oÞœ““C"‘"##¿ýöÛ‡bûA Œ÷Sd2@ Ä–x<ÞÆÆ¦¦¦ÆÐа©©)**  ¬¬œ’’rýúõ¼¼¼·ÞzË×××ÚÚšÁ` Û444”ìhÍš5肞žÞóçÏg(”411Q__okkkbbbbbpáÂfooxöì™è)fÕªU¢u›ššâãã­­­###ׯ_/5ÊÊÊjjj===›6m¶µµýøã©©©,K èèè åºººÂ¡ª««‹î1Q¡··7))‰Ãáˆ'DIVŸn.bÇB…BùüóÏýýýkkkóóóSSS“““…ÇÈ9z%÷á¶¶¶ñññfff€ÉÉI@Ëçóoß¾ýÍ7ß”––ª««wvv¡µÄ^9Cõöö¢yzúô©ð¿»ÔBI‚ÄÇÇëéé¡éÄápVVVeeeèZ•””]]]ðß3Žh]UUUƒÖÖV###]]]eee©]|ðÁ………qqqÂ`UVVòù|‰¤¦¦†Çã †¾¾> ¿¿}¼Áô‡(tGÅÆÆÆÆÆ¾ÿþû<¯¼¼\rÉêÓÍEj4QÃÃÃÝÝÝÏŸ?߸q#‰Dšn³é¼’û)ssó©©©‹/¢'2‡£R©555ccc<@ H$ggçÌÌ̺º:&“ùàÁƒóçÏK6uîܹ¾¾¾¶¶¶œœœíÛ·OW866vóæMt­pYQQÑÑÑ1..®¡¡Á`´¶¶fff¢€MvvöÀÀ@WWWtttii)ZÎápFFF)))Çúôi@@À?üÐÞÞ.9¼àààßÿýäÉ“­­­]]]/^,))AO¸ÁÎÎ.--Á`@àr¹èeÊøøø¬;|º¹HBäáÇǎÛ·o‚ çÎ;v옊ŠÊ¬]ˆy%¹Áãñ[·nߺu+ZB$9’••åááqíÚµ˜˜"‘èåååêêšžžîïŸ.Ù”ƒƒCTTÔáÇ·lÙâçç7]áÈÈHRRºVt9::ÚÁÁ!;;;(((>>þí·ß EW“ÉäÐÐЃ…‡‡kii™™™‰ðß|óͯ¾úª  ÀÀÀ ..Nô²¥ªªzþüy³ÿþ†††'N¼÷Þ{èÚÈÈHuuõ½{÷R©T+++áøÅˆö«¤¤¿gÏ---{{{áÝÙ $ç2Ý–÷îÝËË˳µµ½råJPPÐ G뙽ô;‰EEE^^^ ò¼dNNγgÏŽ=:÷*bÏŠJ}’T†Ïœ""¿ë„Ìæ[+..NCC£¨¨HX²ðÇ.—Ë`0ÊËË?ùä“o\†p8ÜR ˜ñŠg^>7?wvv¶°øG¿hºjÕªO?ýt.…Ðâ{Uç)h9YŒóô:€¹°€¹°€¹°rW&|1‚P]]]bOv¿”kkkoooô-$dhhèéé)Z‚Ãö2:ôšƒ×7070707ÿüÅÃüâÆ¾zIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CompressOption-members.html0000755000372000001440000001020212502417164030572 0ustar robertousers MySQL++ Reference Manual
mysqlpp::CompressOption Member List

This is the complete list of members for mysqlpp::CompressOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalInfileOption.html0000755000372000001440000002527212502417163027544 0ustar robertousers MySQL++ Reference Manual
mysqlpp::LocalInfileOption Class Reference

Enable LOAD LOCAL INFILE statement. More...

#include <options.h>

Inheritance diagram for mysqlpp::LocalInfileOption:
Collaboration diagram for mysqlpp::LocalInfileOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable LOAD LOCAL INFILE statement.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SecureAuthOption-members.html0000755000372000001440000001211212502417164031051 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SecureAuthOption Member List

This is the complete list of members for mysqlpp::SecureAuthOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__coll__graph.0000644000372000001440000001551212502417165033154 0ustar robertousers‰PNG  IHDRÐË׊{bKGDÿÿÿ ½§“ÿIDATxœíÝ{Tgúð7$("hpgQ ¨,—Ú£®õÔ YQ—V«H‘® ÈZñ¨€ÕS1åp¬¨­[Å¥Pƒ\‹,*xAËEŠ k—[=ÊE…„DH2¿?ÆßlLB &$}>MÞLÞy毙Éä5P0 CEGÝ€?  HESw!ôìÙ³;w …Bu¢µôôôΜ9ccc£îB&Fà***®^½êíí­îB´Ö•+Wüýý!poÉÈÈPw Z‹B¡¨»„7à H¤‚ÀRAàÞhjjÛ+k>ŸñÞ{ï.\¸ðÈ‘#"‘H-•L(¸qÑßß¿`Á‚ÄÆÆVWW8p ==}åÊ•b±Xáú--- _¦Óéû÷ï'±XRM Û"Ú$::ÚÄÄäæÍ›T*!4{öìU«V9;;§¤¤ɯ/‘H^½z…/3Œ£G’Z.‰4éŽB¡œ?ÞÑÑÑÄÄäèÑ£©©©¶¶¶Ó§O?tèB(,,,00_“ÇãéëëÿüóÏ¡üü|WWW===;;»ÔÔT„D"‰‹‹stt444\¼xñíÛ·¥Oaø-//oΜ9¦¦¦aaa¯_¿V؈Þ>ýI/§¥¥EEEáiÃM:5"""--MaW|ðBÈÜÜ\¦ŸÞÞÞÏ>ûŒÁ`X[[‡‡‡ã_ÆP(”ôôtGGÇ3f;vl\Ç|ìa‡ÃQ¥„ÐæÍ›ûúú’““B›6mêëëKLLDuww—”” a–––æää$‘Hx<ÞäÉ“:::Î;G£Ñx<^bb¢©©ivvv{{{AAµµ5B¨±±¯_ðððhhh¨¨¨`2™l6[a#†a½½½IIIxyÄrOOB¨««K¦þÒÒR333%ýã«I/ûùù¹»»777×ÕÕ9;;ãEmܸ±§§')) !ôêÕ+U†ŽÃá¨v4Æ—†®¦¦ðÁÁA™åÆÆF‘Hdnn~óæM ÃÖ¬YsôèQ ø\®®®î‰'zzz$I¿X,vrrúþûï‰nøáùÀÕÕÕµ1™L…ÃÕ9\àÊËË †’þñbyppJ¥>zôoÏÎÎÆ7Šº}û¶ô¾«2t$pštJE"„tuue–BT*õ“O>ÉÎÎîîî...öóóCݾ}»¢¢ÂÚÚzùòå÷îÝÓÑÑiii™7oѧ«««ü†ð…¹sç¶¶¶*i”G§ÓÍÍÍkkkeÚkkkçÏŸ¯zWb±ØÞÞÈd2‰5---¥÷]ƒhXà”óööÎÉÉÉÈÈX²d ~¢‰äÊ•+\.700ÐËË‹ËåZYY=|øxÕãÇå»ÂßfB øÑ®Q!??¿èèhéϤ|>?66ÖÓÓSõ®ÌĮ̀TjKK þ°¹¹ÙÊÊ _ÖÑÑØ§î·X É)•8}(\‰D¦¦¦fff)))øS@OO/33³««ëìÙ³zzzàÈ‘#¦¦¦¹¹¹……… ¯áX,Vcccee¥ƒƒCTT”ÂFl˜k8 Ã~ûí·9sæ,_¾¼°°°¡¡!;;ÛÉÉéÃ? …JúïïïÇÞ¾†óõõuwwoii©¯¯wrrÂ7:Ü8(º rJÕªÀa¶cÇŽ)S¦ôõõIwnoo?iÒ¤¹sçæååa688mkkk``°xñâ‹/Ê.99yæÌ™ c×®]@a#öv8¤—1 ãñxûöísvvÖ××wrrЉ‰®ÿ¡¡¡%K–ÈôÃårýýý-,,öìÙƒo÷{©8ULàÐÇÏÛÛ{ɯJMˆÙ"_w7ÏÒ’N\Àá÷~õôÞüÒ‚ŽŽNww¿¥%]mõi˜-2!!? „Ô]ˆæS*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@* •Æü¦­­íÓ§OÕ]Å4!$u«»7lmm[ZZÔ]…J4&p eÏž=‹/Vw!NyyùÉ“'5å8jÒJðÁÞÞÞê®bÂÑ”¨áà H¤‚ÀRiUàx<^xx¸­­í”)S>,*ûë¹MMMÄŸw>ŸñÞ{ï.\¸ðÈ‘#"‘H•Žz‹ZC«·k×®ššš¬¬¬gÏž;w.///""!ÔÒÒÂ`0ä×§Óéû÷ïéVúûû,XðàÁƒØØØêêꤧ§¯\¹R,+\_zë£Û¢VÁ4BˆÃá(_‡N§WTTKJJlll0 kllÃ= _ºt©H$"Zx<Þ¬Y³’’’®?¶[—Çáp4é8ª»U©8›­[·vwwË´#„ÌḬ̀ÿ?üÅÅÅúÓŸRRRˆC…JKK›;w®‘‘Qll,†a‰$>>ÞÑÑÑÐÐÅbåççã+›››ÉlâÌ™3Ë—/Ç;ÏÍÍ={¶‰‰É®]»„B¡üÖñ—ôôôYíÛ·O (,ã pãB•À]¿~ÝÊÊjòäÉ+W®<~üøÓ§OñvéÃŒ/¯^½úÖ­[µµµÒÛ¸qcOOORRBèÕ«WIIIVVV×®]ëêê***b2™¡žž„PWW—̦KKKÍÌÌðÎ=<<***˜L&›Í–ß:¾ìçççîîÞÜÜ\WWçììÌf³–ñΑÀ U‡a˜H$ª¨¨ˆŽŽvvv¦R©éé阢ÀÕÕÕÉ´#„nß¾aØàà B¨±±ÑÙÙ9îâÅ‹JW^^Î`0¤;Ç0ŒÃá0™L…¤R©=ÂÛ³³³™L¦Â2޹˚8íùÐÀçó/_¾ŒZ´hÑ¡C‡êêê<©på¹sçÊ7ZZZ"„tußüÔææfgggâÙ?ÿùÏ!:nnnŽ¿5J«­­?>¾ìàà@l¥µµUab±ØÞÞÈd2‰5eÊÐ2Ú8 Ã|}}ëëëñ‡ eÕªUÃÝ­Px8utÞ™3g>~ü˜xøäÉ|ÁÏÏ/::Zú3)ŸÏõôôÄâoc¡††<=òÌĮ̀T*1Å£¹¹ÙÊÊJaZF{öÍÀÀ`ëÖ­>>>---eeeááá›7o&Vàñx#êpçΑ‘‘7nÜxõêÕ­[·Øl6~ -**êåË—îîî×®]kllÌÉÉY´h‘••Uhh(þÂÝ»w755=xðààÁƒ[¶lQ¸u]]]Ÿ°°°_ýõÑ£G_~ù¥ŸŸßïÚM¡îsºª ×p"‘ˆÍf»ººN™2eÖ¬Yû÷ïÇ?ú -Y²ÄÀÀSt=GôO\0áËb±øäÉ“öööÓ§O÷ôôÌËË311ÁWàñxûöísvvÖ××wrrЉ‰ :LNNž9s&ƒÁصk—@ në\.×ßßßØØØÂÂbÏž=ħT™2Þ92šu §9…ªö¡a åçç×ÖÖ333çÍ›§ü%ã}ËM!Í œöœRÇ\]]Ý–-[jjj***:¤î¢4ž&MÀ$YddäÀÀÀºu뺺ºììì¶mÛ¢ü%Ó¦M{ç:pš4ÅœÃálÚ´IÝ…L8>>>šrá” H¤‚ÀRAà©4éCƒ‹‹‹™™™º A!>*BhêT¾º A¡ÎÎÎúúzM9Žs[dï޽ϟ?Wwo47›Q(hþüNu‚BFFF+W®TwªÒ˜w¸‰ãáÃç«W‹ºvm¯«ëŸÔ]ކk¸Ëϯ¥Ñ¨4šÎ?ÊNRï±Xrùr¥H$‰$—/WŠÅuW¤a p#SQÑÂå¾™hÄåòîß׌ß,š8 p#““SM£QñeM''§Z½õhÜ ŠòòjE¢7s}E"InníÐâÿŽ ‚À@IÉùü×Ò-|þë;w~QW=š7YYÕTê[?Ô@¥êdgÃYu pªâó__»V/ó±T,Ö˼í% pªºqã1qõ&M$=–o AàT••U5ÌïQ23«H.FsAàTòÛo%%ÿ‹| (‘HîÞmøí·ò«ÒD8•}úÔ©SQQQä—1áÞáÆÖO?ý´}ûv:îêêVZZJÚÖçÏŸ/}_ ¬¬lÞ¼y¤m]NŸ1c†±±ñœ9s‚ƒƒ+++ÕRÆhÇb± Ö­[wñâÅ7nlÞ¼yíÚµçÏŸG>}úرcøšÀÓÓ³±±!TVVèáááëë{ãÆ „†a999kÖ¬Ù¹sçÏ?ÿ,}2ÅÏM¥¥¥þþþëׯ?}úôÐÐÂFôö‰XzY__?77·¯¯èêêÊápˆMTUUùùùyyy¥§§ã-åååÛ·o÷ôôܰaÃÅ‹‰Þjjj|||êëëE"QBBÂúõëׯ_Ÿ ‰$ÉåË—ýýý׬YóùçŸ?yò„èßÍÍíÎ;ÄYµ¤¤dùòåijò]½slB<ïèÑ£ü±··w||üàà t…ÁÁÁ _•J522n—¬á ©Q¾ÃUWWÇÇÇ'%%•——Ÿ;w.44455µ¯¯oùò奥¥b±!TZZjaaÁd2…B!›Í^·n~lŽ;& .\¸”ššºuëÖ¯¿þZ~C¹¹¹_ýõ‘#Gîß¿O ‡|#NÇŸ•^Žˆˆ¨©©Ù¸qcDD‡Ãéìì”îüþýûIII‘‘‘ÉÉÉ}}}QQQiii¡¡¡IIIÄ…NFFÆ_|áàà™™ÙÑÑ‘˜˜øÍ7ßÔÔÔ¤¤¤deeq8œàààÔÔTÿ„„¢ggg@ÐÜÜŒâóù555~ø!ñ¬|Wï[„Ðwß}×ÕÕ•ûàÁƒK—.IW(?øø B¡P  <þ<99yåÊ•!…»¬ð`))xDF8}}}„¯¯¯¾¾¾§§'B¨¿¿ßÙÙ™F£ÕÕÕ!„Š‹‹=<<(ÊÐІa`Ò¤Ižžžùùù“'OÎÊÊÚ±cÇÒ¥K-Z$¿¡ÐÐPkkkGGÇ   ¢¢¢á§NºvíZüYéå p8œï¾ûÎÅÅåúõë¾¾¾7oÞ”Ù‹%K–à•Oš4éܹsaaaÆÆÆ¦¦¦!>Ÿ¯üþûïëééîÞ½ÛÔÔÔÎÎ.$$¤²²òǔދàààÿ ®ŽÎ²eËð³jyy¹‹‹Ë´iÓˆgå»zçØŠD¢[·níÚµËÂÂÂÎÎîïÿ;1&x… .”||…   5kÖ¬]»vëÖ­ îîî!…»¬ð`))xDFù¡A__!D£Ñd–B:::K—.½{÷®]uuõ¾}ûB†††'OžÌÌÌLII™={¶¯¯ï¢E‹:::ˆ!;;;ù Y[[ã 666]]]Jå …Â²²2777GGGGGGÿï¿ÿ>!!k„±±1Bˆ8$4­µµõĉÀÁÁAº+âÛÀ/^lذhŸ:uªH$R²nnnÇ ”9Ÿ*ì _P2¶===‰ÄÒÒheeEì>^¡ÂÁÇ¥¥¥YYY!„^¿~™™¹wïÞË—/+Üe…KIÁ#2.ŸRÝÜÜbbbfÍšåââbbb‚zýúµD"a³Ù"‘èæÍ›ÌÍÍe0ÍÍÍöööø«ž>}*ßUkk+~Ÿ?Žçc¸Fy†ÅÄÄØØØà P( .ÌÏÏ'V ¼ýGì_¿~Íf³ÙlöâÅ‹‡†† ‰§ˆC>}úô“'OâGŽÇãq¹Ü¨¨(%{áââ200P___UU%}øv5ÜŽŒŒŒttt:::fΜ‰joog02ʾŒÉ“'¯]»699¹··W___~—,CCÃQ,o\>¥ºººŠÅâ~ø?/ „(JDDÄÝ»wñwl6yòäÕ«WÇÇÇ—––r¹ÜÊÊʳgÏÊw×ÖÖöË/¿— ù|~AAþ,±úHz/ˆ«{~VýöÛoétºò®Þ9°4Åb:uª££ã×_=wîÜŠ+dÖ‘|\oo/—Ëår¹/_¾¼té’©©)NW¸Ë Öè V° £xÍ;á£|ýúõeË–á-“&M:pà@bbâË—/--->]úûÖ?m œ···Í7ß|#3Õ 3çÓÎÉ)**Úºu«ŽÎÿFOOOïÓO?-**R8 ¿üÉ'Ÿ ·O©òsð’Š‹‹>úè£Ë—/ïx‘NÛ§££óÅ_TWW_¿~]º]ÉÔ#åÓäçäà_#Jac2™Ïž=×e&Pýë_ÿBegg˼d¸¹F?ýôÓ™3gBBBûûûÇzÔIÛ‡²¶¶>}úôË—/‰F%S”LB#™“C¡Pˆk8…³ªd(™k´nÝ:ƒU«V!„ˆs±vÐÎÿÓ°~ýú»wï?~|÷îÝx‹’©GJ¦!Esr f̘ÑÔÔ4þ|é~šššfÏž/«2JÉ\#|ˆtZC w !D¡Pöïß¿mÛ¶«W¯â-J¦)§pNΊ+.\¸ðþûï—qB¡ðÒ¥KD4U™@¥d®‘̼)m¢…§Tœ……EhhhFFþP•©G )œ“ÐÓÓ³wïÞÊÊÊÖÖÖ{÷î…††2 âÞ‡ÂYU@ºgUæií|‡ÃyyyÝ»w¯ªª 3õ(''ç(œ“£¯¯öìÙ”””„„„ööv wwwooo]]]üU2¨¨Tª‹‹Ë† þýïKw.?×h†abïRÇL ’ߥ5ƒÀ1˜@¥nŒÑéô½{÷ª»Š‰ H¤‚ÀRAà©Üø%~ €1÷Và-Zôé§Ÿª8U€wrppÀ—„@‘Ÿ¨Àøk8@*  H¤ú?r£-wulš˜IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_25.png0000644000372000001440000000712712502417165024025 0ustar robertousers‰PNG  IHDRã3êÒ(4bKGDÿÿÿ ½§“ IDATxœí›PTÕÀﺀËo”eA —ŸÂP2„1¦Nöˆ%S8•d†ÒH°ŒVRSS〈eB°&e3€À˜«9òËõ»¸,-°»ï~ÿ¸Óû>ß»ï± (›ïó×ÝóÞ;÷ÜsÎÞ{÷ݳ!àáYð,ºÛð𘟩<柩<æí³R©¬««»+¦ðð D"Qbb¢••Õ-Rx+‰‰‰wÉ<žÿSUUEËLúœj4ããã;vWìãáƒÁ@òûTó€ÏTó€ÏTó€ÏTó`!fjoo¯@ ˜C…ããã»víºÿþûíìì"""öíÛÇܰÏZ­633ÓÇÇÇÚÚÚÏÏO&“MLL€Y ³²²R€£££C ôööΉÁ&ªb³ÎÇ ÿöÿï166!‘Hòóó¥Réùóçsrrêëëëëë…Bá0`Û¶mW®\©ªªºï¾û.^¼˜‘‘¡R©>ûì3''§¬¬¬©zòÉ'‡††—/_~衇Pàìì<÷v/4ho­âãããããá]¥§§‡iجÉÌÌ\»v­Á` %Z­ÖÛÛ»¨¨h®ºàÆÉÉ©µµ•üØØØèååu›:™.ôôôܦÚ©b Óí‡ —ËiÂY®þàðáÃAAA...ùùùGõññqttÌÉÉddd¤¥¥¡;µZ­Íï¿ÿøþûïCCCE"ÑŠ+Ž= âóÏ? ²··ŠŠjhh .h©©© H$“““X!¸uÑ¡¶ËÊÊrss©Ó§­­í®]»ÊËËÙÑëõ;wîtuu•H$;wîÔëõèêéÓ§½¼¼Â°£cÓæààpàÀ‘‘ôñᇾrå íÑ¿XZZr˜Á”ºº:__ß%K–ìÛ·ÔlnjjÂjcF« 0::úâ‹/ŠÅbOOÏÌÌL´AÆ‚‚{{û5kÖ´µµqÛ9Kh™k✠HJJÒh4‡$$$h4šââbÀßÿÝØØèìì¬×ë!„eeeÁÁÁAhµÚÅ‹ •––ZXXhµÚââb‰DR]]=88øÃ?xzzÈ/%jlذ¡»»»µµÕ××7//+„ŽŽŽ–”” óȶZ­ Óì?sæÌÒ¥K©ß~jûÃ?|öÙg¯^½ÚÕÕöÎ;ï «=öØ/¿ürêÔ)æèØ €ÖÖÖzxx,^¼xýúõJ¥’Ù#‚ ˆ„„„­[·²™AÞ‰S7mÚ¤ÑhªªªP¨6kµZ¦6lD°ª „)))ëÖ­ëëëëêê !!,,,¤ÑÝÝ™W3àæÔÙgê¹sç „SSS´vOOÁ`pss;}ú4„ðñÇÏÏχªT*KKËýû÷«Õj‚ ÆÆÆŒFcppð—_~Iª=rä3S»ººÐU¹\îë닲ى2ùšJKK‹X,fËÔÀÀÀ¡¡!Ô®¯¯à¨bGÇÁ`hmmݳgOHHˆP(,//‡¸l+**ŠŒŒœ˜˜`3ƒ¼›©¿þú+„Ðh4"ÒÅÔ†VÕÔÔ”P(<þuá¦*ää>´²° ±¤¤¤ìÝ»M€¤¤¤ŠŠŠüüü¤¤$$Ao¬ÈGÐt‹¤V«[[[‘ÜÒÒ’mtl@“““ ú(6nÜÈ|G¦ÕjSRRŽ9âáá1­l`ß ‘63µa#‚Uåêê* ûûûÑǾ¾>ªÞÞÞÓq eî\Í©ƒA"‘¸ºº~ñÅè’N§‰DÇ>xð H$Òét|ðD"ùöÛo‡††~üñGì>566¶§§§½½ÝÏÏ/77+„ìÛÄ›7oÄÆÆþôÓO—.]Ú½{7@"‘LNNJKKoÞ¼ùôÓO“ÞÈÈȈ‹‹S*•«W¯~ã7hsst¤¦¦úûûŸ|¸¢¢b>ôß>VVV‘‘‘³{váî?ɼü¢jkk ùå—yä‘ÛÑãààžžnŠðN2W£ã™xëÿý|Í?Ï]D Èår”Š$ ±–Ї‡ÉìÏýçªÆŒ£ GGÇM›6]¾|™ífò }žJÎHöîÝ+òóóç¯ n“““½½½íìì|ðÁ'NÌkww̱Ӳ€æÔþþ~±XL•´´´ 666ñüóÏO«d¥t¦!¬¬¬ôòò’ËåóÔ7###«V­²±±‘Ëåíí퉉‰IIIµµµ3RÂô³Y°€êS ‚ Ž...nnn€eË–•””xzzj4%b±xþ&<…Bqñâźººõë×wwwûûûÏSGlÈd²ØØXTX¹råŸþ¹ÿþ7š®„ég³`æT@P^^´téÒ>ú ±ådÜÕt~~~”šLPÙ:‡ä¨@#)ƒÁ “ɼ¼¼\\\¶lÙ2:: ØËi ÿóÏ?LyeeeLLÌ£>HN«ØŽ°B¬Ø|…VUU½ùæ›T“d2Yii)jcÝÂŒz=‡üL« äp,î8655MëÉÙ@{¿:»3ª¸¸8µZ]RRa+'㮦ëèè ÚèèèÓh4½½½Ï<óLxx8ºÄQF6 ‚ƒƒ»ºº ÅêÕ«333!„ØrDê¸ÚÛÛSSS]\\iC&ÂÇǧ¸¸B˜ŒäØŽ°B¬°¾Â Q]˜J¥b Ó-Øè0ÏÒÈÊ@S;mQ¬õõõ(›ûûû§M*jèçë4µ¡¡RªþØÊɸ«éh‡OÔ¯“¥¥eLL ê‘»lTWW£{þøãÔf+ØÓét_}õUDDĪU«Š‹‹ÇÆÆ˜Cnmmµ°°@„¿ýö@¡P°u„b=€õ› V«±Áºf¦"ÿ›èØiãHc``@&“yzznÞ¼¹¶¶e7󘩗.]¢É±ådÜÕtÌLÅþG‚»lˆD"”I4˜{è{ŸššÚÖÖF›b©lß¾¶½ûî»l±õnzéVèêêÚÜÜLUØÞÞ>>>Žu ÄE‡™©Èÿ&:; Z…!“©©)TzæïïõêU¶ÛH;ç«êoÑ¢[ô°•“M[Mg Üh$îîîJ¥µ;::Þÿ}Ôf칸¸¬\¹²¥¥¥¹¹™ÜPÒ0r¹¼°°pì_vìØ¼‰íˆ­wKïØøÄO|üñÇ²à”••éõz·Ð¢ÃùßDÇbGAÕƒåÆ.\¸~ýzXX˜µµ5·=xh™;'µTlådÜÕt¨M®¼€eN…œhdC&“…††* …B±fÍšW^y=‹-؃*Šôôt±Xœ––vöìYZ B¡ðƤäìÙ³€sçÎa;bëÝÄÒ;6þõ×_ÎÎÎ)))ÍÍÍyyy€“'O²¹ªŸië˜)Ž6ŽTŒFcmmíSO=åáá‘››;00€ ( p'«þ°ådÜÕtz½>::ÚÎÎŽ©–GÙ˜˜˜ÈÌÌtwwwttLJJ¢nï˜{$jµº°°P*•’ÿvB¤§§oذ*!B*•feea;bëÝôÒ;¬B¨T*ãââÜÝÝííí#""¾ûî;·`£Cõ3-ÃLqì´q¤rüøñÈÈÈòòòÉÉIl(±`3õ^<÷ÏÎÎV*•ååål7A„…ÅzÙl¦èõúmíØsÿ{+&ì-Z´hÚ½)Ì"MÙ¸·âÁì™/÷ÖœCþ©Ç¼¸·æTó…ÏTó€ÏTó€ÏTó󋪿¿ÿàÁƒwÞ.h';vì¸ÛñÜë…¦¦¦iΨxx&ü>•Ç<à3•Ç<à3•Ç<à3•Ç<ø7ë’ô›LÃIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption__coll__graph.png0000644000372000001440000001372312502417165032331 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“ˆIDATxœíÝyXwþðOå„pS±$]äY±"Šh/"*R«°"ë#®V}¬KyX >ݵÛbAÙ ¨ çâAAd=¨Til•K«*rB®ùý1¿¦1„*Ì$ôózúì3óå;ßùÌ7og†I–0‚„F“îÐæ Qs†¨€9CTС»ÈÌÌLHH »Š±ÌÙÙù«¯¾¢·í¿o®Y³æÖ­[žžžô–1V=~ü¸¬¬ŒöW™þóxzzfddÐ]ÅØ”‘‘@wx†(9CTÀœ!*`Î0gõõõ cìé鉈ˆpuu566ž;wîáÇÅb1-•hÌÙÈëîîž3gNyyyllleeåþýûÓÒÒ–,Y"‘H”öolld³Ù䲩©é'Ÿ|Ba±шçcLTT”……Eqq1‹Å€©S§.]º”Ëå&''‡„„ ì/•JÛÚÚÈe6›Ci¹”КóƒÁ8uꔳ³³……ELLLJJÊ›o¾ibbòé§Ÿ@xxxpp0Ù“ÏçܹsòóógΜ9nÜ8GGÇ””J¥qqqÎÎÎÆÆÆžžž%%%ò×)ò²•——7mÚ4KKËðððþþ~¥ðê5N~955õСCdÈH†††©©©J‡š7oX[[+ŒÓÙÙùñdzÙl{{û={örÒÒÒœÍÌÌŽ92ªs>’ºùûûûûûÙ Ö­[×ÕÕ•””kÖ¬éêê"ß°zñâŵk×ÌÍÍE"A©©©...R©”ÏçëëëÇÇÇ·´´œ>> <Ëå’;€?ü°££#11ÚÚÚTÏ[zzº&¼ÊôW ~Ϊªª‚ … Ëuuub±ØÚÚº¸¸˜ ˆåË—ÇÄÄÑÞÞ®««ûÅ_tttH¥Òîîn‰DâââòŸÿüG6ì·ß~;0g<üizz:‡ÃQÚ8XƒåìÖ­[l6[Åød‹lY(²X¬šš²=;;›Ü)”””È»êyÓœiÍuŒ@WWWaX,ÖªU«²³³_¼xqåÊ•ÀÀ@˜8qbIIIYY™½½ýÛo¿}ãÆ &“ÙØØèææ&sæÌ™w4eÊraúôéOž©Tzþüùöööààà÷Þ{¯½½ÝÎÎîÇ”mu÷îÝC‘'¨­­%_ÔÁ• ŒŠŠ’ÿí²§§'66ÖÏÏOý¡¬¬¬X,Vcc#¹ÚÐÐ`ggG.3™Ú÷ªi_Ńñòò‹ÅQQQAAAd ƒÁðõõÍÊÊêêê …ººº›7oŽˆˆÈËË{úôiAAÁ¾}ûµcÇŽúúúòòòlذa°Æ—/_’7‹ ˇzþü¹OAAA]]]NNއ‡‡]XX˜Šñù|¾| ºººááá<¨©©9xð y’ÖVt_¸‡q&»lyëÖ­ãÇïêê’m•žžîä䤧§7}úô¼¼<‚ „BaTTÔ›o¾iddäééyæÌp–””äààÀf³·oßÞ××§´‘xõž]~™ >Ÿ¿{÷n.—k``àââÝÛÛ;Øø"‘hþüùFFF ã´··™››ÛØØìܹ“Üé`Ç> ¹?£¿5s¦Ž¬_¿~X›(äCaUEãï3‚C©ICr6FžÓ ‚æææS§N={–îZcäþì‡~˜3gÎæÍ›.\ø:ãL˜0!44TÆÿ@#>· øyÚQB~ž–öWyŒœÏ†Ãœ!*`Î0gˆ ñ\£±±ñĉtW16UVVÒ]hÀ¼]»vÑ=ÃÂ05õÓÑ1£»Œa˜4iÝ/2Aÿs íRVÖ°jUܦM^ÿøÇ*ºkÑ&x6<99•äÿŠÅRºkÑ&˜³a ÅÙÙwàåËÞë×ïÓ]Ž6Áœ Ãÿþw¯··X,fv¶fÜ_k ÌÙ0deU²XL‹¥—/óúú„tW¤50gêêééÿî»±øÿ?%Ûß/.*ú‰Þ’´æL]ò!&“‘•UAc=Ús¦®¬¬ ùÿ§§X,-)¹×ÕÕGcIZs¦–ööžë×k%’Wžeqé®’´ æL-.ü8°‘ ˆóçñÒ©Ì™Z23˾q"•ee Ïž½¤¥$í‚9Zssgeå/R©’7èX,f~¾’SR€9Z~~õ`o‹Å’¬,|`;4ø\†ëíÚØL­òùýãÆéêèüÿ?ѱøWñF~^cØlmwÆÇo|ÿ}·¡»¢_áuQs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Q‚ÖoÿÂäÉ“éž%ôõ'1™tW¡HOOïæÍ›t¿bƒÒè¿OûðáÃ;wzzzÒ]ˆX³fMSSÝU J£sóæÍó÷÷§» ôºðþ Qs†¨€9CTÀœ!*h}Î F}}=-»îé鉈ˆpuu566ž;wîáÇÅb±:Ö××3þ`_£¢õ9S­±±‘ÍfÆÈÝÝÝsæÌ)//­¬¬Ü¿ZZÚ’%K$‰Òþò•˜šš~òÉ'£Q•ÆÒôç¯I*•¶µµÆÈQQQÅÅÅ, ¦NºtéR.—›œœ¢º6›3Ui¬1u>c0iiiÎÎÎfffGŽ€y󿀵µ5ÙA$EDDXYYYZZFDDˆD"‚ âããg̘1a„E‹]¸p¼¢ ìI^슋‹'MštóæÍÔÔÔC‡‘!#FDD¤¦¦’=óòò¦M›fiiÞßß/_‰üu³³³óã?f³Ùööö{öìJDëÑý†„*žž>dŸºº:Ùò‡~ØÑÑ‘˜˜mmmuuuòÇ»zõêGñx¼Ù³gïÛ·/11ÑÎή   µµµ¨¨ˆÃáýö$‡Z¶lÙÕ«WŸ>> <ËåFFF*=™+µœ•””! Év…œMŸ>½¥¥…\.**rssãr¹iii²gΜ!ûìIÅãñ‚èèèPš³[·n±ÙlùžA¤§§s8¥9 …,«¦¦†lÏÎÎæp8JdDæŠFcíþÌÖÖtuu•þôáÇ666²U¡PÈåre-3f̬'¹0}út055µ¶¶®®®^¼x±üøÕÕÕîîîäò”)Sd›ç¿ž={&‘HœœœÈU‡#ë©ú@´Î˜º?&SÕ‘'ò_XGGGYY™ƒƒÃÝ»we~þùçÁz’í²>000**Jþ·ËžžžØØX???r•õšsE#­ÏÙkÊÏϯ®®–­fffº¹¹½æ˜I ÏÙ⺩ÇÛ°aCUUUoooYYÙ§Ÿ~ªô)+zMcí÷ÍáÚ»woooïŠ+Z[[7oÞúšcN˜0áõcAÐ]à Fzzúš5kè.D hø\ýѯ›ˆ˜3DÌ¢æ QAÓßŒŽŽ&?³ 9¤R&“)¥» -£Ñ9Ûµk×ãÇé®â ãöm›©SÛÍÍt×òеk×zxxÐ]Å 4ú¹†ÊÈ(ÿÛßÎ,Z䜚º…îZ´ ÞŸ ONN%ãÚµû/_öÒ]‹6Áœ Ckk÷Í›µü÷¿Õt—£M0gÃpáB5ù©!‚ 23Ëé.G›`Ά!#£B*%@*%**~ii餻"­9S×£Gm<Þc2gÀb1ssïÐ[’Áœ©+/ÎoÓ%‘HÏŸÇK§º0gê:¾\$úíñ,A÷îµ44<§±$-‚9S˽{-õõÏÉß4etuY¹¹Ut•¤]0gjÉÍ­ÒÓS|ïD$’œ;w›–z´ælhAdfV…JþPSS§YïŒi&ÌÙЪª~inVþ/jœ íÂ…zz:ÿ“H¤99øtchýy ±pátßþ.PFF¹§§Óo˜‘«ææF4Õ¥MðóÃfk»3>~ãûï»Ñ]ˆ6Áë&¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3D…Wþž£P(‹ÅPRRBSmhŒøì³ÏÈ,Éàý¢æ Qs†¨€9CTиœ555y{{ÈP_~ùeXX˜lõìÙ³ÞÞÞÍÍÍäêóçϽ½½ïÜyåÛLÔßûÕ«W½•¹víÚHÕ?\ >>>88xùòå[·nMKK“H$êl8‚s>ËÙrss«¯¯ïïï'W+++ FEE¹úÓO?éèè̘1C~##£uëÖ@KKË| bð?ÿùÏYYYYYYqqqõ+.—KŽ0Ú*ìíí ½wï^hhè‰'‹ŠŠöìÙ#•J‡Ü\vÔ£g,çÌÕÕU,×ÖÖ@?Çóóó“Ï™³³³¾¾¾ü&&&&[¶l©TÚÕÕ¥bp}}}333333SSS0û•¹¹99ÂhS¨ðôéÓ¦¦¦ÿú׿þô§?ÙÛÛ{yyÅÇÇ?}úôòåËCn.;êÑó{ræíí}ùòå7®X±âÌ™3………ëÖ­{çwN:_ýõ‘#GÈž}}}~~~uuuðý÷ßûúú®_¿¾°°‚ÈÉÉÙ¸qãòåË·mÛvçÎù³7y2/-- Z¹rå×_-‰”6«g~ÙòĉîÞ½ 555–––ï¾ûnUUy5¹{÷®«««¬UUU@@@AA¹í_ÿúWXµj9¦X,Ž_¹råÊ•+ãããÉ“¯DõD 6,ŸÏ‰‰ùàƒüýý?. •B…EEE}ô“ùÛ :nܸµk×)4ùÍåǸwò@®\¹²qãÆ÷ßÿܹsË üîóYeeåñãÇ·lÙ’˜˜xëÖ­“'O†……¥¤¤tuu½ýöÛ¥¥¥äkYZZjccÃápAddäŠ+Î;täÈ@pñâÅÓ§O‡„„¤¤¤|ôÑGŸþùÀåææ~þùç‡þá‡Μ93X£©©éž={ÈŸÊ/»¹¹‘9«¨¨˜={ö´iÓ Æýû÷E"Qmm-™3RFFƾ}û¦L™B®~óÍ7M®fff¶´´$$$üóŸÿ¬ªªJNN~ý‰lØÿûß­­­ñññ±±±ååågÏžU:²|…|>¿½½Ãá(ôáp8=R:i (3ØÞoÞ¼yìØ±ÐÐЄ„„îîn5_æwæ, ÀÀÀÀ××Ö¯_o``àççÝÝÝ\.WGG‡ÇãÀ•+W|}} †H$"¢¯¯OOOÏÏÏ/??___?++këÖ­^^^æææ!!!wfooïììRTT4X£¡¡á;ï¼CþT~ÙÕÕµ¦¦† ˆÊÊJwww‹5{öìŠŠŠºº:©Têââ"ÛÑ–-[fÍš5nÜ8¥Ç{ùòå;vXZZ:::†††Þ¾­î››*&Jé°b±øêÕ«Û·o·±±qttÜ´i“쨃!»?S:“ Tì}ÅŠFFFK—.ÕwJýÎïE400…e`2™^^^ׯ_wtt¬¬¬Ü½{7=z433399yêÔ©ëׯ÷ððhii‘ÿ'èèè8pGöööä¤I“Z[[U4*åêêÚÙÙyÿþý†††Y³fÀܹs Ç?mÚ´ñãÇËzNš4IÅ8OŸ>]½zµlÕÐÐPEgy*&Jé°R©ÔÖÖ–l±³³S8@¥ß/hdddffV__ïîî.ß^__?uêTrYIS±w6›­Pü°ŒÊ÷o.\¸0::zòäÉo½õ–……ô÷÷K¥ÒÈÈH±X\\\|àÀÜÜ\6›ÝÐÐàääDnõðáÃC=yò„ÌßãÇÍÍÍU4*efföÆo¤¤¤899M˜0ÜÝÝ¿üòËñãÇË_4a¨4119zô¨üz‘Rw.T8ìĉ™LfKK‹ƒƒ477“/0H$‹õâÅ ¥C-^¼øôéÓ³fÍ’Ý¢ ‚³gÏÊr¬Î¤©Ø;ƒÁx#•ß7gΜ)‘H¾ýö[òz #""âúõë==="‘HGGG__Ù²eÇ/--moo¿}ûö‰'×ÔÔtïÞ½¤¤¤%K– ÖØÓÓsñâEò§òËàææöý÷ßËþ¡ÛØØØØØÜ¾}ÛÍmè/Ðìëë#¼¼¼Ÿ={ÖØØ¸wïÞÜÜÜß95¯8¬ŽŽŽ··÷W_}ÕÒÒòàÁƒ“'O.^¼ØÈÈ {{{î¨dnܸ±££c×®]·oß~òäÉ7ÂÂÂØl¶ìá…Ò™”mNRº÷9ÒQ9Ÿ1™Ì |÷Ýw , [ôôôöïߟðüùs[[Û¿ÿýïzzz‰äرcä Jtt´ÂP‹/Þ½{·@ ðññ $Oã ÐÙÙùÅ_·eòËàææ–ŸŸ/A™3gNSS—ËUqÖÖÖo½õÖêÕ«/]ºÁÁÁqqqùË_ Æ‚ BCCGd¢”»cÇŽ¸¸¸­[·êêê.Z´(00POO/88ø›o¾IMMݶmÛ7Vh``pâĉäääøøøææf]]]¥3Éb±ä7—¸÷9ÒW¾O8### `D>”””ôôéÓƒª¿ISSÓ† d{WXUшT£~Ò>ûì3 ‹ŒŒ YËÈ_7…BaKKËåË—ß}÷Ýi©‘ÏÙÏ?ÿºlÙ2un€T044|ï½÷ÔiDªi¤Öuý‘QqÝDh Ì¢æ Qs†¨€9CTxåý‹t}ì%k×®•_}幆@ ¸té’š*GHwwwùà0”~Ρ‘…÷gˆ ˜3DÌ¢æ Qáÿ9š«§h¶¦£IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/query_8h.html0000755000372000001440000001463312502417162022620 0ustar robertousers MySQL++ Reference Manual
query.h File Reference

Defines a class for building and executing SQL queries. More...

#include "common.h"
#include "exceptions.h"
#include "noexceptions.h"
#include "qparms.h"
#include "querydef.h"
#include "result.h"
#include "row.h"
#include "sqlstream.h"
#include "stadapter.h"
#include "transaction.h"
#include <deque>
#include <iomanip>
#include <list>
#include <map>
#include <set>
#include <vector>
#include "insertpolicy.h"

Go to the source code of this file.

Classes

class  mysqlpp::Query
 A class for building and executing SQL queries. More...
 
class  mysqlpp::Query::RowCountInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...
 
class  mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...
 
class  mysqlpp::Query::MaxPacketInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &os, Query &q)
 Insert raw query string into the given stream. More...
 

Detailed Description

Defines a class for building and executing SQL queries.

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1NullIsBlank.html0000755000372000001440000000466012502417163026565 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NullIsBlank Struct Reference

Class for objects that define SQL null as a blank C string. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null as a blank C string.

Returns "" when you ask what null is, and is empty when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/nav_g.png0000644000372000001440000000015412502417165021757 0ustar robertousers‰PNG  IHDRrcf3IDATxíÝ¡ ÀO¾©@C0:B%#±G‡êdLr“àERšqžË±µ/Š–9i¬DœNIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Time__coll__graph.png0000644000372000001440000001520412502417165027371 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“9IDATxœíÝ{XWúð7„K@Ñ*ä¢rÓª¸V­×nµR«E]­ZDºXqEW‹Oï>[Á®²]/T­xWPAîŠåAEjK¬¢¢ÄR·R.*M‚r™ßók:&“= ø~þšœ99y‡|™LÆEQ€Ðë²â»Ô¹a€ "‚BD¬™>|¸bÅŠ¦¦&¾ªAN$íÝ»·_¿~ú–—tíÚµ¬¬¬yóæuxa¨sHNN^¸p¡ÉÑΜ9Ó%¡ÎD ´à9"‚BD0@ˆ±¸ýþûïÆgj$ª««CCC½¼¼ºwï>zôèôôt3N‚uKÉ7?11QÀæÎ;$Úbq2¯gÏž1ÂÁÁ!))©  `Á‚!!!999|×ÕŽ>ùä™L&“É®^½ ²?øûû·Ç˱|ŒïJ¢££:D?2dÈãÇwìØññÇó[Xû±·····¥R }úôi×—{=@ 8räÈàÁƒ]\\bccããã½½½{öìùÕW_@TTTDDÝS©T:88ܾ}Î;7lØ0‘Häãã:nÏž=ƒvtt?~|^^sïMïÌ333ß~ûm±XÕÜÜÌÚ/ïù™Ë©©©«V­b}øðaz¹®®nÑ¢EÎÎΞžžkÖ¬¡/Áso©²²²è]››[ll¬¾gnnn¿~ýòóó;ÐNž<éëëëââ²|ùò/^0KU«Õk×®uuu‹Åk×®U«ÕÆïEmm­Á³ÚâõžÅŽbHJJ2ha!!!õõõô¿ìàààúúú¸¸8xúôé•+WœœœÔj5EQ þþþ:N©TÚÙÙíß¿_&“>|ØÚÚZ©TÆÅʼnÅâ´´´êêêóçÏ{zz@II ]½0uêÔû÷ï_»vÍÏÏ/&&†µ‘¢¨ºººƒÒåé— ÈårS6yòäÒÒR©T:tèPz(î­c- ¾¾ÞÖÖvñâÅ••• PSSC÷œ6mÚåË—e2™©~ø¡~¨ 6è7Ÿ¢¨ÿüç?Ÿ~úéÇ¥RéÈ‘#7lØÀ,¾   <<ÜÅÅ¥ººšuë˜C¸xñ"ʲ²²Vßnƒ·>))é¥惶¨°°¢¨––ƒå’’FÓ§OŸÜÜ\Š¢¦OŸKQ”\.·±±Ù±c‡B¡Ðét Z­Ößßÿرcúa?n ©Tª¯ÍÏϵÑTr¹ ëÚ––¡PøË/¿ÐÓÒÒ衸·Žµ€æææ{÷î)•J­V{åÊãž­v ‡òööf¾ëƒ ’ÉdôòÅ‹‡NQ”J¥:qâĘ1cFŒ×ÐÐ`jó9DQTUUUtt´§§çÌ™3srr´Z­©žLf PII Çò?ÿùÏ+VÔÖÖÚÚÚ>zôˆ^›ŸŸÔ­[· &|ÿý÷EÙÛÛß¹sG?,}¤3J¥¢×‰D"ÖFŽR]]]% ³¥  `Ô¨Q=b%•J顸·ÎT™™™ï¿ÿþðáÃ?ÿüsfÏ––º§©¬H·ˆD"æ±¢gÏžôž#<<üúõë:Žûmâ­¥¥åÌ™3ï¿ÿþÀ>|ÈÝ™b P»| ›7o^zz:]}`R©T:.99Y.—GDDÌœ9S.—{xxéŸU\\l<ýW€û÷ï»»»s4²š5kÖÎ;)Æm» jµÚÁÁÁÕÕU(–••Ñí¥¥¥mÜ@ƒT*UppðÚµk ÷íÛÇìiccCo¾©Ì¡ú÷ïÏ\åì쬯B¡¸víš‹‹Ë!C®^½*‘HêêêÚX-‡'OžWVVŽ9’>õ~eÌ4™k¤ÑhÄb±««ëÑ£GéU*•J$¥¤¤ÔÖÖ8p@$©TªmÛ¶‰Å⌌ ™L–ÍzPRRRPP0`À€Í›7³6R&Î(Šª©©qrr “H$EEE111••E¯ Æ8p ãë°Lö‚zPQ=ø.Ä‚1/ åçç …B¾+² W¾‚¾â»K" óóó™™à‡v“+ ÓŸ<‡¾|Wc¡ðÈ´Gi XÁþK±\ ÓJ¥J eGø.Åra€Lx^ Ïÿ¸?©îxþ+¯ÕX. ’Àêo­làA¯ÕX. + ÊŽîÿ¡SCÙQü´ÁÄæÙ xñ襖àÙMžª±h 6Nÿyü¢YÙÀ¼½‰È¥…ò„?_4ÊãÒòT“婹ÍOYÚ›ŸBÍ^¥Ã©8exü¢YÙÀƒS^¥Ã¯2^¦k†gÐ(Ù×Z;BP-XÙulM ÷@/«•˜Lh öjVÓ àèešF¨þþχ'¼ÂþlqŸÖ]•ÃqÊx÷Ø$<„!" D„ˆ`€ "‚BDðc<'e@w¾ë°\ DaˆÁ™™©¹NRRRÌ;‰Œ…èâsetªµiV^{ª”ö€âôÓ<ê§y̆מëÄ @ó¹P&¦Yaz½©RÚˆÓË"™ëÄ @Ü?õo<Í ëK¼êT)íÏ^Ùç:1ÅxšÖnf˜*…è¼óÎ;yyyiii¿ýöÛÀ—,YrëÖ­öx¡¹sçnܸñÁƒR©400pï޽̵:îÂ… sæÌ7nEQ‰äôéÓÎÎÎíQIëxÙïuFç@z¯:×É+¸§Yyí©RÚ^âÔÚMõ:N§ÓY[wèõXµZmÆÉ.á•h"¯7× !ËIà•èVàý@­Á!"ø) Á!" D„ˆ`€ "‚âtgÜÙÀw ¯Ds¢/$"Óp„ˆ`€ "‚BD0@ˆÁÛ98áý@­Á!"xCD0@ˆÁ!" D„ˆ`€8áý@­Áû8áý@­Á="B´jiiILLljj2W5–æ#Q\úõß…´‘H´`Á[[Ûׂä§=RSSÍ·-ˆ©©©$ Úi4ÀoÓ:/@@¿‰¯ Ï "‚BD0@ˆH§s ³¨®® õòòêÞ½ûèÑ£ÓÓÓÍ88 Ö-5û濪N ózöìÙˆ#’’’ ,X’““Ãw]– ¿ÊxIttt@@=… 2äñãÇ;vìøøãù-ÌbuĈ{rš¨¨¨ˆˆº§R©tpp¸}û6œ;wnذa"‘ÈÇÇ'>>t:Ýž={ìèè8~üø¼¼<æÞ›Þ™gff¾ýöÛb±8**ª¹¹™µ^Þó3—SSSW­ZÅ,>::úðáÃôr]]Ý¢E‹œ===׬YC_‚çÞ:SdeeÑ»:77·ØØX}ÏÜÜÜ~ýúåççw lmm­T*ãââÄbqZZZuuõùóç===@ÿÞôÂÔ©Sïß¿íÚ5??¿˜˜ÖFŠ¢êêê¹¹¹EMŸ>=66–¢(¹\ncc³cÇ…B¡Óé´Z­¿¿ÿ±cÇôÃ?~Ü8@R©T_›ŸŸk£©:år9( Öµ---B¡ð—_~¡¦¥¥ÑCqokÍÍÍ÷îÝS*•Z­öÊ•+Æ=[í@åííÍ P«sü°¾5„ê “hGGGøã²™Ë  çΛ––öôéÓK—.………@¯^½òòò®]»æééùÁüôÓOVVVeeeÇ×9lØ0ã0`½0hРÊÊJŽFc½zõruuýõ×_™7nÜ=zô‹/žfO:y˜Cõïߟ¹ªsü˜Éî«í‡0î¹E4X,vuu=zô(½J¥R‰D¢”””ÚÚÚˆD"•JµmÛ6±Xœ‘‘!“ɲ³³YÏJJJ  °yófÖFÊÄ9EQ555NNNaaa‰¤¨¨(&&²²²èµ¡¡¡“'O.++»{÷®¿¿?=÷Ö± P(Avvvccãºuë °°y0âè0eÊýPÛ·og>+***((¨¢¢¢¨¨hìØ±+W®lË[Ó9θDQÔ²eËìííëë뙃ûúúÚÚÚ4(33“¢¨–––¯¿þÚÛÛ»{÷îãÇ?uê”q€:Ô¿ggç/¾øB¥R±6R/Ïc0­NEEEPP»»»££ã˜1cΞ=«_%—Ë.\èäääææöå—_ÒCµ%@ÆìÚµ«wïÞ}ûöÝ·o_HHˆX,6(ÃT‡ÄÄD///±X¼zõêææf泸çø1õÖt‚µÅ¦M›BCC_é)ó)q7v$Þ àF þ/$655UWW9räôéÓ|ׂ^ÿ'Ñׯ_5jÔâÅ‹'MšD2N="##ÛÒØ‘x/ ½ý:Ç™3gæÏŸO2â—@ HJJ ~íøß¡NíM Pbb¢€MJJ ¿·FtFüŸDw¼O>ù„¾†[^^þÞ{ïé¯çRµ~ýz^Kë|ÞÄÙÛÛÓ³¬+•JèÓ§~ó{oÔ]ÿV[[kpÛƒ)Ìû:¸oÒ€Öîhû‹vv]9@7nÜX´h‘¿¿ÿóçÏ_ãé—.]*((ˆÝ¸qcVV–T*ýïÿ»uëÖgÏžÀîÝ»ËËËoÞ¼™››{ùòåÍ›73Ÿ[TTäíí½nݺŽùF“O$W!Íx%ÚŒT*Õ‰'ÆŒ3bĈ¸¸¸††S=9®eçMTªŠŽŽöôôœ9sfNNŽV«5ëVšt™¯2ÌåâÅ‹b±8<<üúõë:Ž»3w€¸¿¿‰Ḋ={öd}‰––ú.ƒ>|øpëÌŽ<@]íæââ2dÈ«W¯J$’ºººö{¡6Þ;ñäÉ“âââÊÊÊ‘#GÒgî]LW Ð;3———––öÛo¿ 8pÉ’%·nÝjš;wîÆíììÜ•ðŒd÷e‡0&…B±k×.__ßŠŠ Ö$‡0î{'RRRÆwòäÉææf³o—ñ!¬ë¦Óét:µu‡^ñR«ÕwµZ&òïºþ…D++++«Ž>RwŠô˜EW;B „ˆ`€ "‚BD0@ˆˆ>Æ8ÐeFùÅ ­@ööB¾ ±\Dòðð …]øôî=€’Ë-åGÊÌN(¶ý?h³Â9SMzüøù»ïn °p‹XìÈw9 ÏLÊΖ …++Áùówø®Åra€LJL,Ðh(F—”TÀw-– Ä®¼¼öîÝJ ¤ÒÊòòZ¾+²P v™™·mlþÿ×õÙ³xc‡b—”T VkéeµZƒG1S0@,Š‹«~Ѭ­…x3„z‰Z­MO¿epü¢i4Ú´4öUo2 ÐKnÜ(¯¯o ­¬­…ÖÖBÚËVÏŸ«ð(f¿L}I}}ÓÙ³·õ~€Ï>¯o™5kD"–g¾©0@\"#@\\8ß…X.<„!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€>d3%%%..ޝWo‹çÏ߀ž=ëø.„KdddPP_¯Îg€‚ƒƒøá¾ 芋‹'MštæÌ¾ 0ôß$üýý£££ù­¡SÛ²e ¿à9"‚BD0@ˆáù$šwUUUŸ}öY^^ùP—/_þ÷¿ÿmÜc–—°@oz€Ìè¯ýkjj*Èd²•+WÒË@QTHH¯¥µ# ÙØÙÙÙÙÙ€J¥€Þ½{ëW-]º”·²ÚY'8 ÈÎΟ={ö©S§.\¸2cÆŒ#GŽÀ·ß~ûÍ7ßÐ=U*U```II \½z5""bêÔ©¡¡¡.\Š¢ÒÓÓÃÃçOŸ¾bÅŠÛ·oè_¥ªª* @"‘,\¸pΜ9ß~û­Z­fmÔwf>‘£~fîmF³ÿþ9sæÌ™3gÿþýƼL³ë€[·n}÷ÝwK—.=xðàÏ?ÿ|øðáåË—ÇÇÇ×××ðÁ‰D«Õ€D"qssóóókjjЉ‰™={vbbâÂ… ¿ù曦¦¦óçÏŸ8qbÉ’%ñññÿûß·oßnüBÛ·oß¶mÛõë×O:eªñ­·ÞZ³f ½–¹L¸-’’"“ÉâââvîÜYXXxôèQÂ?]{ëš?¾ƒƒÃÔ©S 44ÔÁÁ!00†jmm-•JàÒ¥KS§Njµš¢(•JekkxîÜ9;;»ÔÔÔeË–M˜0ÁÉÉiìØ±K–,1~¡åË—{zz>>‘‘‘¶ŽÐ9ÎÀÚÚÚ`¬¬¬&L˜ðã?úøøÜºukõêÕàèè¸{÷î”””£G8044tìØ±2™ÌÏÏO?¦ñ yzzÒ ýúõ«­­åhlm€Çúé§ú‡Ýºu#|¹öÖ9ÄmÒ¤I[·nõòòúË_þâââÍÍÍ:.&&F£ÑäæænÚ´)##ÃÙÙ¹´´Ô××—~VEE…ñP•••t°=zäääÄÑØNzöì¹{÷nP*•r¹¼]_Ž\ç8„q6l˜V«=~ü8}\@°víÚü±±±Q­V[[[ÛÙÙM›6í»ï¾“H$r¹¼  àÀÆCíÙ³§ªªêÿûß¡C‡¦L™bª±±±ñüùóôZæ2¹ &Vh•ªPWW*®>­¸@/«•Ejq¡êÚ‚VňV¹ "Š$‚ ¹Ìüþ˜}h$“HõÀ÷ý<þqr2sæ™/9“!I’€WfÀtà5Ix@’$€‡!Ó „L&khh ‚éBÆSSÓéÓ§3]Bz’¤ÞÞÞžž¦ cÚÛÛ!ICyxx0]ÂóÓO?Ý»wé*þ ®“$€$ àIx¼¶Ijlld±XLWñ=, £±¤ææf.—Ëtº¨WheeõñÇ3[ÏÈÛI"¢§§‡é*tQ¯Ë妦¦2[ÏÈKI*++óôô411qvv>~ü8BhöìÙ¡I“&!„T*UZZš««ëøñãçÌ™SSSC­¥>§¨· Ebb¢­­mbb¢B¡(--utt‰D¡¼¼>~``@½Bõ­‹ÅâU«Vq¹\''§„„™L†b±X_}õ•»»ûĉ÷îÝ;J‡RtuuUUUé^F"‘gff ‚ÜÜ\CCC‰DÒÐÐ0¸ û÷ï·µµ-**êèè8{ö¬ƒƒõ”X,ÎÎΦ–QoöÙgK–,yôèŸÏŸ5kÖ–-[H’\¹redddgg§]MM I’iii|>ÿÎ;ÞÞÞ ÚV§Š ª¯¯¯®®æñx)))ꪷÃÃÃçÍ›×ÔÔÄçógΜ™’’B’$BhéÒ¥"‘(;;!ÔÓÓóêÇmÔŒ™$ …B‡³oß>‘HDD__ŸJ¥R?7®®®G\þرcºNÜÜÜÕ¾pá‚——I’"‘ÈÉÉÉÓÓ“:µ$IΘ1£¨¨ˆjß»wo°­¹:U ŸÏ§:óóóy<m’är9›Í®««£ú‹ŠŠx<I’!ê8Èår„PCCƒîcIj˜Gä?ÿùÏÒ¥KÍÌÌ|}}¿ùæòùŸòqãÆÕÖÖ.|ëÖ-ÝI211Qm¶´´¤úwîÜÉf³»ºº»sçÎpV§Š‘J¥Ô·oß611¡MR[[›ú’|>ßÄÄ„$I„Ѓ¨Î1—¤1s$•J ‚((( …QQQ . …ê L:õöíÛƒïÞ½«{@.—;xªD"Quu5B¨­­-===00póæÍÔb---T»¶¶v÷îÝ:VGQqAÕ××S3¬&;;;6›ÝÜÜL=ljjrtt¤ÚcæŒ 1fêf±XAAA………½½½r¹œÃᘚšROI$„PLLLbbbIIIggç¹sçvìØA=ûôéÓœœÍöâÅ‹·nÝÚÚÚÊç󃃃:DÄš5kâââòòò***ÊÊÊBŸ|òI]]]]]]lllkk«¶Õ©þ7666^¿~=))iÅŠêâp8Ë—/øða]]ݶmÛÂÃÃGîÐæ^6ÌWéüü|###77·’’’$ ÅܹsÍÍÍI’T*•iii<ÏÌÌÌÇLJz‘ ŸŸÕÛ½½½«W¯ž0a‚µµõúõëûûû<øæ›oÊår’$‹‹‹ííí…B¡L&KHHppp°´´ ‰DÚV§ÏÉÉ™2e —Ë‹‹“J¥êªo](FDDX[[ÛÛÛoÚ´‰šéÚŒ†ÆÚìÆ"õàoK¨OGøûû3]È+illœ>}úhO½:ncfvz’„……Ett4ÓU0’„­­mff&ÓU0’ð€$< IHÀCþJ©££ƒéƘ!·Î™¥I266f±XõõõLB£½½ïÌ™ú÷ߟ¥Ÿœò‹déÅ=n}–”Ttôè•ââ8oog¦kÑkp¤‹RIÿ€*.¾Át-ú’¤Ë¥K÷{{¥¡Â› …Šérô$I—¢¢›l6!ôìÙÀ·ßÞgº½IÒêÙ3ù7ßÜV*U!6›UXœ.$­**îÎhJ%qîÜþþfKÒg$­NŸþAý¿R©:þŸèý_I¢'?«ªº¯R©ß"aþÀXAz’D¯¼œ?¤‡ ˆK—ˆDýŒÔ£ÿ Iô ~ š{¶_}[³ H­ÎΧ55ÍšwÿI’<}ú:#%é?H²²Z6›æÈùíxôKÒ$……7¨ÛHšH••ÁGC/>  o ½½%ÕV* ™Lann<ø,ÜU¢ŸxÒÒÚ˜˜c˜.DßÁìð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’0!GÀÔ©S™Þ-l L'3]N‰‰‰#qÒGäÿ™liiÙ´i“ÏH ^Åþýû[ZZFbä‘úKgÏž2Bƒƒ—VPP0B#ÃuÀ’ð€$< I×3I,õoù{5,:¸×ï^Œ4ø¶‰aùî»ï¦M›6 jnn~ë­·žìîîncc“ššzüøñiÓ¦YZZnß¾!E-)‘HLMMoݺ…*++óôô411qvv>~ü8Bˆ ˆôôtww÷ñãÇûøøTUU©ÏÔQRR2cÆ [[ÛøøøÚNôül2œ™¥´´ÔÑÑQ$!„òòò\]]ûûû•JerròäÉ“mllV®\)ÿ÷+¼ Ebb¢­­mbb¢B¡ -cöìÙ!*µê5ˆÅâU«Vq¹\''§„„™LFï¾úÊÝÝ}âĉ{÷îÅtf^ÖHÜ8Gåçç¿p™ÐÐÐÞÞÞœœ„вeËz{{³²²BOž<¹té’µµµB¡ IòĉAH$ccãÌÌL@››khh(‘H²²²lmm‹ŠŠ:::Ξ=ëää„jhh vjÕ××WWWóx¼””ÚN’$Åbqvv6Užz!T[[Û÷<ê©•+WFFFvvvÚÙÙÕÔÔ$™––æááÁçóïܹãíí@-ùÙgŸ-Y²äÑ£G|>Ö¬Y[¶lÑQµŠz;<<|Þ¼yMMM|>æÌ™TÁ¡¥K—ŠD¢ììl„POOÏ OMHHHHHÈðOåð1™¤›7o’$)—ˇ´”Jå¤I“.^¼H’ä‚ RSSI’ …gß¾}"‘ˆ ˆ¾¾>•JåááqôèÑÁa;¦™$>ŸO=›ŸŸÏãñh;u—ªí'P$999yzzR§–$É3fQí{÷î ¶ÝÜÜÕ¾pá‚———ŽÚ¨žÁ¶\.g³ÙuuuTQQU0B¨ªªJý¸é>æäH&‰É÷nãÇGq8œ!m„›Í^¼xqQQÑ“'O***ÂÃÃB&L¨ªªª®®vrrzûí·¯\¹b``ÐÜÜìåå58¦§§§æ†¦OŸN5ÜÜÜ?~¬£SÍ“Dõ[YY­_¿þîÝ»6l zZ[[Gvww_´hÕnii±··§Þ÷ÍŸ?ÿáÇÃ/£««K¥R¹¸¸Py<Þà’êÇAú{ $$¤¸¸øÔ©SsçÎ¥æ,©TJDAAP(ŒŠŠZ¸p¡P(ttt¼}ûç/¼{÷®æPÔ7B¨¾¾ž:ôÚ:©¶¶¶ôôôÀÀÀÍ›7S=ƒ¿"­­­Ý½{7Õær¹ƒq‰DÕÕÕÃ/ÃÎÎŽÍf777S›šš©¶¾œA}©C“¯¯¯R©Ü¹sgDDÕÃb±‚‚‚ {{{år9‡Ã155]³fMbbbIIIggç¹sç¶lÙ¢9ÔÆ¯_¿ž””´bÅ mOŸ>¥.Ú†´BÝÝÝÏC±fÍš¸¸¸¼¼¼ŠŠŠ²²2„PDDÄ'Ÿ|RWWWWWÛÚÚJ°xñâ­[·¶¶¶òùüàààC‡é¨M"‘¨×Ïáp–/_ÿðáúººmÛ¶Q/Òúe$¦L4¼ë¤ÁŸQm혘˜qãÆõöö®•ŸŸïââbddäææVRRB’¤\.ß¹sç´iÓÌÍÍ}||Nž<‰4®“rrr¦L™Âårãââ¤R)m'ùü®z[Ûq;xðà›o¾)—ËI’,..¶·· …2™,!!ÁÁÁÁÒÒ244T$Qƒôöö®^½z„ ÖÖÖëׯïïï§-C¡PÌ;×ÜÜ|H B¡0""ÂÚÚÚÞÞ~Ó¦MTÁÚŽ›¯á÷p$%%………ý¢UÔ¾æC£‘2F.IzzgR&“utt>|8//éZÀ°èéuRMMÍï~÷»5kÖøûû¿Ê8ÑÑÑÃé}zR.#òÝÜ,+??Ù²eØG¯ˆ:)§NÂ>²ž¾&1’ð€$< I‘ºâ~ã7ììì°Ì‚000 ˜®;wîøùùÄ÷ˆÜOúðÃÛÚÚFbäÑ×Ó3®¾~Â[o Ølü?r£ÏÏÏo„ÞSÈkÒë$<<«ªêþ矇…„üÓµè5¸NÒE,~vùr=B¬ââ›L×¢ï Iº”–Ö"„"¯\yÐÝÝÇp5ú ’¤ËéÓשٟÅb}ýõí.ÿ¿ ’¤UG‡øÆV‚ BA\gº"½IÒª¤ä›m€ !Dèöí¶¶6!ÓEé/H’V×U*ÕàCCCƒ’’[ Ö£ç Iôêë;ïߨß!Q*U§NÁ§$‰^ii-‡ÃVï!IÔØØuÿ¾€©’ô$‰I’ùù× Õ~##C˜à´$Ñàó··‹4ûåreAÁuø­-H3gnr8ô¿‘ìèß¼ùh”ë I4Š‹oªT*##CͱΞ­eº@}¤§[¬˜˜€žžÿþíb[›ðûï›–-ûù×·sçNg¨.½ŸxÒÒÚ˜˜c˜.DßÁìð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀ’ð€$< IHÀã¹ÿÓ­²²²±±‘©RôS]]/BèË/¿dº½4uêÔŸ“j á? Ãú\xÔŸS*•ÉÉÉþþþ ÕÆŒO?ýT©Tª÷ÀuÀ’ð€$< Iýz³ÖÞÞ¾bÅŠªªªWª²²ò¯ý«fvv6Ç{•‘Nœ8áèèøë¾úhvÒ8¸­_´Ñ—®P¿’„Ñœ9s B 66–j#„,,,­ ƒôôt{{û.fnn: õP^Û$#„¤R)BhâĉLW„••ÕpvÇÒÒrýúõ£På_'”——GFFþùÏ>yòäùóçCCCß{ï½Ã‡#„<¸wï^jI©TÜÐЀúî»ï¢¢¢‚‚‚ÂÂÂΟ?"I²¸¸822rÁ‚|ðÁ­[·Ô_·ÛÛÛ®^½±hÑ¢ƒ* ÚÎÁ…ÕWÔQ?m…ÚFV*•™™™‹-Z´hQffæ;(ê$IjjêŸþô§ŒŒ ¹\®­“B’dFFÆÚµkŸ>}J[¿¶’´ùþûï×­[¼dÉ’“'Oj;š{DÄ¿þõ¯ˆˆˆ ÄÆÆþøã:¶¢Ã˼&ݸq###ãÛo¿MKKó÷÷ÏÍÍ­¬¬üûßÿ¾téÒ·ß~{ûöí*•ŠÍf_½zÕÞÞžÇãÉd²”””¸¸¸9sæÔÔÔìÝ»×Ïϯ¢¢âŸÿüç‡~øë_ÿº±±qÏž=š:sæÌž={úúúvïÞmaa¨Ùiee•@­¢Þ¦E[aGGíȧOŸYYYT&Ž9²nÝ:Úa?ÿüs¡P˜™™)•JwíÚejj©ÙIíI’YYY7oÞÜ¿¿………D"ÑV­fI!™LF½ÐRŒŒŒvìØ1þü={öÔÖÖîÞ½{Á‚´jî‘••U~~þà‰HKKÓqôtx™÷nË—/755 B………™šš#„úúúfΜihhÈçóBAAA,K¡P$)•JŒŒ‚ƒƒËÊÊŒ cbb|}}­­­½½½×®]«¹¡ 6899¹»»¯]»öÂ… Ú:ÍÌÌÞ{ï=êYõ6-Ú µ\^^¾qãF[[[ggçèèèk׮ю©T*+++ãââìííW¯^}áÂÚNjù/¿ü2???99ù…m´G`íÚµ Ô\»vÍÈÈ(777>>ÞÚÚÚÖÖ!ÔßßO; æ•––ªŸˆ—ž_æ5ÉÔÔ!Dý’N½200ðõõ½|ù²³³ó76oÞŒ?~üNŸ>}äÈWW×°°0ooo@ þÊÙÙYsCNNNTcòäÉÝÝÝ::‡¶Bm#wvv.Y²dp333Ú1E"AÔCGGÇîînÚNªýàÁ//¯'NlÙ²eÈPC¾ÚŠvgiß9>~üxß¾}R©tút]_¦¹GJ¥ò…'b8ð_qûûûïÚµkêÔ©o¼ñ† Bh``€ ˆ””¥Ryñ⍤¤3gÎp¹Ü¦¦&j­––Í¡?~LíX[[›µµµŽÎW¬PÛÈ––– N›D" …´N˜0ÁÀÀ@ L™2!ÔÑÑÁåri;©åÿö·¿uwwGEE½óÎ;¿ùÍo¨NjÂ}òäÉ €¦”””””…BQ^^®mIÍ=Ú±cÇ OÄpà¿3ééé©R©Ž;FM!‹•˜˜xùòåþþ~…Bahhhllüî»ïfdd\½zU(^»vöcéééííí÷ïßÏÉÉ™?¾¶Îþþþ³gÏRϪ·‡_¡¶‘}}}³³³»ººš››?úè£3gÎPKŠÅb¡CCÀ€€/¾øB <|ø077700¶“ZÝÄÄäW¿úUXXØþýûår¹¹¹9BèüùóÏž=+**záФP(”J¥¡¡¡\.?räBèÙ³g´KjîÑÿøGõA½sz ø_“ üüüþýïûùùQ=FFF[·nÍÊÊúé§Ÿ’““ŒŒ–/_®R©:$‹©9{×®]C† ܼy³L&›7o^xx8õò>¤!$‹÷íÛG]©·‡_!íæBQQQéééëÖ­c±X~~~ÑÑÑÔ’±±±ê+VUUmܸ1===&&†Ãáüþ÷¿§V×ìTŸŽÃÂÂ.^¼xòäÉU«VEEEýãÿ8qâÄ|påÊ%Ñ277ß°aî]»Æ6oÞ¼>ú(==]sIÍ=âp8 …"##£§§ÇÅÅeûöíï¿ÿ¾Ž£§Ísß9Éb±°|ª$''§³³sÛ¶mÃ_eÈ­UÚ;­ï€©ãȸèaIê>ýôS›S§N ö`žÝär¹@ (//ÿÃþ€wd\ô¿Â1 s’~üñÇèèèwß}×ËËëUÆ133[¸páp:)Ú ±ŒŒ—–¤ÛˆÌnàµ7â³øŸIx@’$€$ `¢þÇol6›érÀ˜ñ—¿üEë_NVVVvuu1U[~ûÛߪ?d ù/®“$€$ àIxü?”6ÎI'TÅ¿IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/dbdriver_8h_source.html0000755000372000001440000022520312502417162024631 0ustar robertousers MySQL++ Reference Manual
dbdriver.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2009 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_DBDRIVER_H)
29 #define MYSQLPP_DBDRIVER_H
30 
31 #include "common.h"
32 
33 #include "options.h"
34 
35 #include <typeinfo>
36 
37 #include <limits.h>
38 
39 namespace mysqlpp {
40 
56 
57 class MYSQLPP_EXPORT DBDriver
58 {
59 public:
61  enum nr_code {
65  nr_not_supported
66  };
67 
69  DBDriver();
70 
77  DBDriver(const DBDriver& other);
78 
80  virtual ~DBDriver();
81 
85  ulonglong affected_rows()
86  {
87  error_message_.clear();
88  return mysql_affected_rows(&mysql_);
89  }
90 
94  std::string client_version() const
95  {
96  error_message_.clear();
97  return mysql_get_client_info();
98  }
99 
104  bool connect(const MYSQL& mysql);
105 
111  virtual bool connect(const char* host, const char* socket_name,
112  unsigned int port, const char* db, const char* user,
113  const char* password);
114 
122  bool connected() const { return is_connected_; }
123 
127  void copy(const DBDriver& other);
128 
134  bool create_db(const char* db) const;
135 
139  void data_seek(MYSQL_RES* res, ulonglong offset) const
140  {
141  error_message_.clear();
142  mysql_data_seek(res, offset);
143  }
144 
150  void disconnect();
151 
157  bool drop_db(const std::string& db) const;
158 
174  bool enable_ssl(const char* key = 0, const char* cert = 0,
175  const char* ca = 0, const char* capath = 0,
176  const char* cipher = 0);
177 
183  const char* error()
184  {
185  return error_message_.length() ? error_message_.c_str() : mysql_error(&mysql_);
186  }
187 
192  int errnum() { return mysql_errno(&mysql_); }
193 
211  size_t escape_string(char* to, const char* from, size_t length)
212  {
213  error_message_.clear();
214  return mysql_real_escape_string(&mysql_, to, from,
215  static_cast<unsigned long>(length));
216  }
217 
257  size_t escape_string(std::string* ps, const char* original,
258  size_t length);
259 
266  static size_t escape_string_no_conn(char* to, const char* from,
267  size_t length)
268  {
269  return mysql_escape_string(to, from,
270  static_cast<unsigned long>(length));
271  }
272 
278  static size_t escape_string_no_conn(std::string* ps,
279  const char* original = 0, size_t length = 0);
280 
284  bool execute(const char* qstr, size_t length)
285  {
286  error_message_.clear();
287  return !mysql_real_query(&mysql_, qstr,
288  static_cast<unsigned long>(length));
289  }
290 
298  MYSQL_ROW fetch_row(MYSQL_RES* res) const
299  {
300  error_message_.clear();
301  return mysql_fetch_row(res);
302  }
303 
308  const unsigned long* fetch_lengths(MYSQL_RES* res) const
309  {
310  error_message_.clear();
311  return mysql_fetch_lengths(res);
312  }
313 
327  MYSQL_FIELD* fetch_field(MYSQL_RES* res, size_t i = UINT_MAX) const
328  {
329  error_message_.clear();
330  return i == UINT_MAX ? mysql_fetch_field(res) :
331  mysql_fetch_field_direct(res,
332  static_cast<unsigned int>(i));
333  }
334 
338  void field_seek(MYSQL_RES* res, size_t field) const
339  {
340  error_message_.clear();
341  mysql_field_seek(res, MYSQL_FIELD_OFFSET(field));
342  }
343 
347  void free_result(MYSQL_RES* res) const
348  {
349  error_message_.clear();
350  mysql_free_result(res);
351  }
352 
354  st_mysql_options get_options() const { return mysql_.options; }
355 
363  std::string ipc_info()
364  {
365  error_message_.clear();
366  return mysql_get_host_info(&mysql_);
367  }
368 
379  ulonglong insert_id()
380  {
381  error_message_.clear();
382  return mysql_insert_id(&mysql_);
383  }
384 
392  bool kill(unsigned long tid)
393  {
394  error_message_.clear();
395  return !mysql_kill(&mysql_, tid);
396  }
397 
403  {
404  error_message_.clear();
405  #if MYSQL_VERSION_ID > 41000 // only in MySQL v4.1 +
406  return mysql_more_results(&mysql_);
407  #else
408  return false;
409  #endif
410  }
411 
422  {
423  error_message_.clear();
424  #if MYSQL_VERSION_ID > 41000 // only in MySQL v4.1 +
425  switch (mysql_next_result(&mysql_)) {
426  case 0: return nr_more_results;
427  case -1: return nr_last_result;
428  default: return nr_error;
429  }
430  #else
431  return nr_not_supported;
432  #endif
433  }
434 
438  int num_fields(MYSQL_RES* res) const
439  {
440  error_message_.clear();
441  return mysql_num_fields(res);
442  }
443 
447  ulonglong num_rows(MYSQL_RES* res) const
448  {
449  error_message_.clear();
450  return mysql_num_rows(res);
451  }
452 
463  bool ping()
464  {
465  error_message_.clear();
466  return !mysql_ping(&mysql_);
467  }
468 
474  {
475  error_message_.clear();
476  return mysql_get_proto_info(&mysql_);
477  }
478 
482  std::string query_info();
483 
492  bool refresh(unsigned options)
493  {
494  error_message_.clear();
495  return !mysql_refresh(&mysql_, options);
496  }
497 
503  {
504  error_message_.clear();
505  return mysql_field_count(&mysql_) == 0;
506  }
507 
509  bool select_db(const char* db)
510  {
511  error_message_.clear();
512  return !mysql_select_db(&mysql_, db);
513  }
514 
518  std::string server_version()
519  {
520  error_message_.clear();
521  return mysql_get_server_info(&mysql_);
522  }
523 
532  bool set_option(Option* o);
533 
537  bool set_option(mysql_option moption, const void* arg = 0)
538  {
539  error_message_.clear();
540  return !mysql_options(&mysql_, moption,
541  static_cast<const char*>(arg));
542  }
543 
544  #if MYSQL_VERSION_ID >= 40101
545  bool set_option(enum_mysql_set_option msoption)
549  {
550  error_message_.clear();
551  return !mysql_set_server_option(&mysql_, msoption);
552  }
553  #endif
554 
560  bool set_option(unsigned int option, bool arg);
561 
565  {
566  const std::type_info& ti = typeid(o);
567  for (OptionList::const_iterator it = applied_options_.begin();
568  it != applied_options_.end();
569  ++it) {
570  if (typeid(*it) == ti) {
571  delete o;
572  return ""; // option of this type already set
573  }
574  }
575 
576  return set_option(o);
577  }
578 
584  bool shutdown();
585 
594  std::string server_status()
595  {
596  error_message_.clear();
597  return mysql_stat(&mysql_);
598  }
599 
607  MYSQL_RES* store_result()
608  {
609  error_message_.clear();
610  return mysql_store_result(&mysql_);
611  }
612 
623  static bool thread_aware();
624 
630  static void thread_end()
631  {
632  #if MYSQL_VERSION_ID > 40000 // only in MySQL v4.0 +
633  mysql_thread_end();
634  #endif
635  }
636 
641  unsigned long thread_id()
642  {
643  error_message_.clear();
644  return mysql_thread_id(&mysql_);
645  }
646 
665  static bool thread_start()
666  {
667  #if MYSQL_VERSION_ID > 40000 // only in MySQL v4.0 +
668  return !mysql_thread_init();
669  #else
670  return false;
671  #endif
672  }
673 
681  MYSQL_RES* use_result()
682  {
683  error_message_.clear();
684  return mysql_use_result(&mysql_);
685  }
686 
687 protected:
690  bool connect_prepare();
691 
694  bool set_option_impl(Option* o);
695 
696 private:
698  typedef std::deque<Option*> OptionList;
699 
701  typedef OptionList::iterator OptionListIt;
702 
705  DBDriver& operator=(const DBDriver&);
706 
707  MYSQL mysql_;
708  bool is_connected_;
709  OptionList applied_options_;
710  OptionList pending_options_;
711  mutable std::string error_message_;
712 };
713 
714 
715 } // end namespace mysqlpp
716 
717 #endif // !defined(MYSQLPP_DBDRIVER_H)
718 
st_mysql_options get_options() const
Return the connection options object.
Definition: dbdriver.h:354
ulonglong insert_id()
Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.
Definition: dbdriver.h:379
bool ping()
&quot;Pings&quot; the MySQL database
Definition: dbdriver.h:463
bool connected() const
Return true if we have an active connection to the database server.
Definition: dbdriver.h:122
bool set_option(mysql_option moption, const void *arg=0)
Set MySQL C API connection option.
Definition: dbdriver.h:537
static bool thread_start()
Tells the underlying C API library that the current thread will be using the library&#39;s services...
Definition: dbdriver.h:665
success, with more results to come
Definition: dbdriver.h:62
void data_seek(MYSQL_RES *res, ulonglong offset) const
Seeks to a particualr row within the result set.
Definition: dbdriver.h:139
static void thread_end()
Tells the underlying MySQL C API library that this thread is done using the library.
Definition: dbdriver.h:630
ulonglong affected_rows()
Return the number of rows affected by the last query.
Definition: dbdriver.h:85
bool set_option_default(Option *o)
Same as set_option(), except that it won&#39;t override a previously-set option.
Definition: dbdriver.h:564
ulonglong num_rows(MYSQL_RES *res) const
Returns the number of rows in the given result set.
Definition: dbdriver.h:447
int protocol_version()
Returns version number of MySQL protocol this connection is using.
Definition: dbdriver.h:473
static size_t escape_string_no_conn(char *to, const char *from, size_t length)
SQL-escapes the given string without reference to the character set of a database server...
Definition: dbdriver.h:266
const char * error()
Return error message for last MySQL error associated with this connection.
Definition: dbdriver.h:183
nr_code
Result code returned by next_result()
Definition: dbdriver.h:61
nr_code next_result()
Moves to the next result set from a multi-query.
Definition: dbdriver.h:421
void field_seek(MYSQL_RES *res, size_t field) const
Jumps to the given field within the result set.
Definition: dbdriver.h:338
Define abstract interface for all *Option subclasses.
Definition: options.h:57
void free_result(MYSQL_RES *res) const
Releases memory used by a result set.
Definition: dbdriver.h:347
const unsigned long * fetch_lengths(MYSQL_RES *res) const
Returns the lengths of the fields in the current row from a &quot;use&quot; query.
Definition: dbdriver.h:308
std::string server_status()
Returns the database server&#39;s status.
Definition: dbdriver.h:594
std::string server_version()
Get the database server&#39;s version number.
Definition: dbdriver.h:518
std::string client_version() const
Get database client library version.
Definition: dbdriver.h:94
MYSQL_RES * store_result()
Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API dat...
Definition: dbdriver.h:607
bool result_empty()
Returns true if the most recent result set was empty.
Definition: dbdriver.h:502
bool more_results()
Returns true if there are unconsumed results from the most recent query.
Definition: dbdriver.h:402
problem retrieving next result
Definition: dbdriver.h:64
MYSQL_ROW fetch_row(MYSQL_RES *res) const
Returns the next raw C API row structure from the given result set.
Definition: dbdriver.h:298
success, last result received
Definition: dbdriver.h:63
bool kill(unsigned long tid)
Kill a MySQL server thread.
Definition: dbdriver.h:392
bool select_db(const char *db)
Asks the database server to switch to a different database.
Definition: dbdriver.h:509
std::string ipc_info()
Get information about the IPC connection to the database server.
Definition: dbdriver.h:363
unsigned long thread_id()
Returns the MySQL server thread ID for this connection.
Definition: dbdriver.h:641
bool refresh(unsigned options)
Asks the database server to refresh certain internal data structures.
Definition: dbdriver.h:492
This file includes top-level definitions for use both internal to the library, and outside it...
int num_fields(MYSQL_RES *res) const
Returns the number of fields in the given result set.
Definition: dbdriver.h:438
int errnum()
Return last MySQL error number associated with this connection.
Definition: dbdriver.h:192
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
MYSQL_RES * use_result()
Returns a result set from the last-executed query which we can walk through in linear fashion...
Definition: dbdriver.h:681
MYSQL_FIELD * fetch_field(MYSQL_RES *res, size_t i=UINT_MAX) const
Returns information about a particular field in a result set.
Definition: dbdriver.h:327
bool execute(const char *qstr, size_t length)
Executes the given query string.
Definition: dbdriver.h:284
size_t escape_string(char *to, const char *from, size_t length)
Return a SQL-escaped version of the given character buffer.
Definition: dbdriver.h:211
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1MaxPacketInsertPolicy.html0000755000372000001440000002661212502417163032101 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::MaxPacketInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 MaxPacketInsertPolicy (Connection *con, int size)
 Constructor. More...
 
 MaxPacketInsertPolicy (int size)
 Constructor. More...
 
 ~MaxPacketInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::MaxPacketInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size.

This differs from the SizeThresholdInsertPolicy in that it builds the VALUES expression and checks whether it would cause the length of the INSERT statement to exceed the maximum size.

Constructor & Destructor Documentation

template<class AccessController = Transaction>
mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( Connection con,
int  size 
)
inline

Constructor.

Parameters
conconnection object used for escaping text
sizethe maximum allowed size for an INSERT statement
template<class AccessController = Transaction>
mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( int  size)
inline

Constructor.

This version does not use a Connection* so it will not be able to take the character set into account when escaping the text.

Parameters
sizethe maximum allowed size for an INSERT statement

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionFailed-members.html0000755000372000001440000001137712502417163031027 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ConnectionFailed Member List

This is the complete list of members for mysqlpp::ConnectionFailed, including all inherited members.

ConnectionFailed(const char *w="", int e=0)mysqlpp::ConnectionFailedinlineexplicit
errnum() const mysqlpp::ConnectionFailedinline
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/options_8h_source.html0000755000372000001440000025041612502417162024527 0ustar robertousers MySQL++ Reference Manual
options.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 2007-2009 by Educational Technology Resources, Inc.
13  Others may also hold copyrights on code in this file. See the
14  CREDITS file in the top directory of the distribution for details.
15 
16  This file is part of MySQL++.
17 
18  MySQL++ is free software; you can redistribute it and/or modify it
19  under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation; either version 2.1 of the License, or
21  (at your option) any later version.
22 
23  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
24  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
25  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
26  License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public
29  License along with MySQL++; if not, write to the Free Software
30  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
31  USA
32 ***********************************************************************/
33 
34 #if !defined(MYSQLPP_OPTIONS_H)
35 #define MYSQLPP_OPTIONS_H
36 
37 #include "common.h"
38 
39 #include <deque>
40 #include <string>
41 
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 class DBDriver;
47 #endif
48 
49 
51 // Classes
52 
57 class MYSQLPP_EXPORT Option
58 {
59 public:
61  enum Error {
66  err_disconnected
67  };
68 
69  virtual ~Option() { }
70  virtual Error set(DBDriver* dbd) = 0;
71 };
72 
73 
76 template <typename T>
77 class MYSQLPP_EXPORT DataOption : public Option
78 {
79 public:
80  typedef T ArgType;
81 
82 protected:
83  DataOption(const T& arg) : arg_(arg) { }
84  T arg_;
85 };
86 
90 
91 
93 class MYSQLPP_EXPORT CompressOption : public Option
94 {
95 #if !defined(DOXYGEN_IGNORE)
96 public:
97  CompressOption() : Option() { }
98 
99 private:
100  Error set(DBDriver* dbd);
101 #endif
102 };
103 
104 
106 class MYSQLPP_EXPORT ConnectTimeoutOption : public IntegerOption
107 {
108 #if !defined(DOXYGEN_IGNORE)
109 public:
111 
112 private:
113  Error set(DBDriver* dbd);
114 #endif
115 };
116 
117 
121 class MYSQLPP_EXPORT FoundRowsOption : public BooleanOption
122 {
123 #if !defined(DOXYGEN_IGNORE)
124 public:
125  FoundRowsOption(ArgType arg) : BooleanOption(arg) { }
126 
127 private:
128  Error set(DBDriver* dbd);
129 #endif
130 };
131 
132 
137 class MYSQLPP_EXPORT GuessConnectionOption : public Option
138 {
139 #if !defined(DOXYGEN_IGNORE)
140 public:
141  GuessConnectionOption() : Option() { }
142 
143 private:
144  Error set(DBDriver* dbd);
145 #endif
146 };
147 
148 
150 class MYSQLPP_EXPORT IgnoreSpaceOption : public BooleanOption
151 {
152 #if !defined(DOXYGEN_IGNORE)
153 public:
154  IgnoreSpaceOption(ArgType arg) : BooleanOption(arg) { }
155 
156 private:
157  Error set(DBDriver* dbd);
158 #endif
159 };
160 
161 
163 class MYSQLPP_EXPORT InitCommandOption : public StringOption
164 {
165 #if !defined(DOXYGEN_IGNORE)
166 public:
167  InitCommandOption(ArgType arg) : StringOption(arg) { }
168 
169 private:
170  Error set(DBDriver* dbd);
171 #endif
172 };
173 
174 
178 class MYSQLPP_EXPORT InteractiveOption : public BooleanOption
179 {
180 #if !defined(DOXYGEN_IGNORE)
181 public:
182  InteractiveOption(ArgType arg) : BooleanOption(arg) { }
183 
184 private:
185  Error set(DBDriver* dbd);
186 #endif
187 };
188 
189 
191 class MYSQLPP_EXPORT LocalFilesOption : public BooleanOption
192 {
193 #if !defined(DOXYGEN_IGNORE)
194 public:
195  LocalFilesOption(ArgType arg) : BooleanOption(arg) { }
196 
197 private:
198  Error set(DBDriver* dbd);
199 #endif
200 };
201 
202 
204 class MYSQLPP_EXPORT LocalInfileOption : public IntegerOption
205 {
206 #if !defined(DOXYGEN_IGNORE)
207 public:
208  LocalInfileOption(ArgType arg) : IntegerOption(arg) { }
209 
210 private:
211  Error set(DBDriver* dbd);
212 #endif
213 };
214 
215 
217 class MYSQLPP_EXPORT MultiResultsOption : public BooleanOption
218 {
219 #if !defined(DOXYGEN_IGNORE)
220 public:
222 
223 private:
224  Error set(DBDriver* dbd);
225 #endif
226 };
227 
228 
230 class MYSQLPP_EXPORT MultiStatementsOption : public BooleanOption
231 {
232 #if !defined(DOXYGEN_IGNORE)
233 public:
235 
236 private:
237  Error set(DBDriver* dbd);
238 #endif
239 };
240 
241 
243 class MYSQLPP_EXPORT NamedPipeOption : public Option
244 {
245 #if !defined(DOXYGEN_IGNORE)
246 public:
247  NamedPipeOption() : Option() { }
248 
249 private:
250  Error set(DBDriver* dbd);
251 #endif
252 };
253 
254 
256 class MYSQLPP_EXPORT NoSchemaOption : public BooleanOption
257 {
258 #if !defined(DOXYGEN_IGNORE)
259 public:
260  NoSchemaOption(ArgType arg) : BooleanOption(arg) { }
261 
262 private:
263  Error set(DBDriver* dbd);
264 #endif
265 };
266 
267 
268 #if MYSQL_VERSION_ID > 40000 // only in 4.0 +
269 class MYSQLPP_EXPORT ProtocolOption : public IntegerOption
271 {
272 #if !defined(DOXYGEN_IGNORE)
273 public:
274  ProtocolOption(ArgType arg) : IntegerOption(arg) { }
275 
276 private:
277  Error set(DBDriver* dbd);
278 #endif
279 };
280 #endif
281 
282 
284 class MYSQLPP_EXPORT ReadDefaultFileOption : public StringOption
285 {
286 #if !defined(DOXYGEN_IGNORE)
287 public:
289 
290 private:
291  Error set(DBDriver* dbd);
292 #endif
293 };
294 
295 
297 class MYSQLPP_EXPORT ReadDefaultGroupOption : public StringOption
298 {
299 #if !defined(DOXYGEN_IGNORE)
300 public:
302 
303 private:
304  Error set(DBDriver* dbd);
305 #endif
306 };
307 
308 
310 class MYSQLPP_EXPORT ReadTimeoutOption : public IntegerOption
311 {
312 #if !defined(DOXYGEN_IGNORE)
313 public:
314  ReadTimeoutOption(ArgType arg) : IntegerOption(arg) { }
315 
316 private:
317  Error set(DBDriver* dbd);
318 #endif
319 };
320 
321 
323 class MYSQLPP_EXPORT ReconnectOption : public BooleanOption
324 {
325 #if !defined(DOXYGEN_IGNORE)
326 public:
327  ReconnectOption(ArgType arg) : BooleanOption(arg) { }
328 
329 private:
330  Error set(DBDriver* dbd);
331 #endif
332 };
333 
334 
336 class MYSQLPP_EXPORT ReportDataTruncationOption : public BooleanOption
337 {
338 #if !defined(DOXYGEN_IGNORE)
339 public:
341 
342 private:
343  Error set(DBDriver* dbd);
344 #endif
345 };
346 
347 
350 class MYSQLPP_EXPORT SecureAuthOption : public BooleanOption
351 {
352 #if !defined(DOXYGEN_IGNORE)
353 public:
354  SecureAuthOption(ArgType arg) : BooleanOption(arg) { }
355 
356 private:
357  Error set(DBDriver* dbd);
358 #endif
359 };
360 
361 
363 class MYSQLPP_EXPORT SetCharsetDirOption : public StringOption
364 {
365 #if !defined(DOXYGEN_IGNORE)
366 public:
368 
369 private:
370  Error set(DBDriver* dbd);
371 #endif
372 };
373 
374 
376 class MYSQLPP_EXPORT SetCharsetNameOption : public StringOption
377 {
378 #if !defined(DOXYGEN_IGNORE)
379 public:
381 
382 private:
383  Error set(DBDriver* dbd);
384 #endif
385 };
386 
387 
389 class MYSQLPP_EXPORT SetClientIpOption : public StringOption
390 {
391 #if !defined(DOXYGEN_IGNORE)
392 public:
393  SetClientIpOption(ArgType arg) : StringOption(arg) { }
394 
395 private:
396  Error set(DBDriver* dbd);
397 #endif
398 };
399 
400 
402 class MYSQLPP_EXPORT SharedMemoryBaseNameOption : public StringOption
403 {
404 #if !defined(DOXYGEN_IGNORE)
405 public:
407 
408 private:
409  Error set(DBDriver* dbd);
410 #endif
411 };
412 
413 
415 class MYSQLPP_EXPORT SslOption : public Option
416 {
417 public:
430  SslOption(const char* key = 0, const char* cert = 0,
431  const char* ca = 0, const char* capath = 0,
432  const char* cipher = 0)
433  {
434  if (key) key_.assign(key);
435  if (cert) cert_.assign(cert);
436  if (ca) ca_.assign(ca);
437  if (capath) capath_.assign(capath);
438  if (cipher) cipher_.assign(cipher);
439  }
440 
441 private:
442  std::string key_, cert_, ca_, capath_, cipher_;
443  Error set(DBDriver* dbd);
444 };
445 
446 
448 class MYSQLPP_EXPORT UseEmbeddedConnectionOption : public Option
449 {
450 #if !defined(DOXYGEN_IGNORE)
451 public:
453 
454 private:
455  Error set(DBDriver* dbd);
456 #endif
457 };
458 
459 
461 class MYSQLPP_EXPORT UseRemoteConnectionOption : public Option
462 {
463 #if !defined(DOXYGEN_IGNORE)
464 public:
466 
467 private:
468  Error set(DBDriver* dbd);
469 #endif
470 };
471 
472 
474 class MYSQLPP_EXPORT WriteTimeoutOption : public IntegerOption
475 {
476 #if !defined(DOXYGEN_IGNORE)
477 public:
479 
480 private:
481  Error set(DBDriver* dbd);
482 #endif
483 };
484 
485 
487 // Typedefs
488 
490 typedef std::deque<Option*> OptionList;
491 
493 typedef OptionList::const_iterator OptionListIt;
494 
495 } // end namespace mysqlpp
496 
497 #endif // !defined(MYSQLPP_OPTIONS_H)
Connect to remote server in preference to embedded server.
Definition: options.h:461
Specialized option for handling SSL parameters.
Definition: options.h:415
Connect to embedded server in preference to remote server.
Definition: options.h:448
Give name of default charset.
Definition: options.h:376
Enable LOAD DATA LOCAL statement.
Definition: options.h:191
Error
Types of option setting errors we can diagnose.
Definition: options.h:61
can&#39;t set the given option while connected
Definition: options.h:65
virtual ~Option()
Destroy object.
Definition: options.h:69
Enable automatic reconnection to server.
Definition: options.h:323
T arg_
The argument value.
Definition: options.h:84
SslOption(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
Create a set of SSL connection option parameters.
Definition: options.h:430
Fake client IP address when connecting to embedded server.
Definition: options.h:389
Enable LOAD LOCAL INFILE statement.
Definition: options.h:204
Set name of shmem segment for IPC.
Definition: options.h:402
Define abstract interface for all *Option subclasses.
Definition: options.h:57
Allow spaces after function names in queries.
Definition: options.h:150
Disable db.tbl.col syntax in queries.
Definition: options.h:256
T ArgType
Alias for template param.
Definition: options.h:80
option was set successfully
Definition: options.h:62
Allow C API to guess what kind of connection to use.
Definition: options.h:137
Enforce use of secure authentication, refusing connection if not available.
Definition: options.h:350
Change Connection::connect() default timeout.
Definition: options.h:106
underlying C API returned error when setting option
Definition: options.h:64
Assert that this is an interactive program.
Definition: options.h:178
Enable data compression on the connection.
Definition: options.h:93
option not supported by underlying C API
Definition: options.h:63
Override use of my.cnf.
Definition: options.h:284
Make Query::affected_rows() return number of matched rows.
Definition: options.h:121
Enable multiple queries in a request to the server.
Definition: options.h:230
Give SQL executed on connect.
Definition: options.h:163
This file includes top-level definitions for use both internal to the library, and outside it...
Set reporting of data truncation errors.
Definition: options.h:336
Give path to charset definition files.
Definition: options.h:363
Suggest use of named pipes.
Definition: options.h:243
Override use of my.cnf.
Definition: options.h:297
Set timeout for IPC data reads.
Definition: options.h:474
Define abstract interface for all *Options that take a lone scalar as an argument.
Definition: options.h:77
Enable multiple result sets in a reply.
Definition: options.h:217
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
Set timeout for IPC data reads.
Definition: options.h:310
DataOption(const T &arg)
Construct object.
Definition: options.h:83
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FoundRowsOption__inherit__graph.png0000644000372000001440000001366112502417165032330 0ustar robertousers‰PNG  IHDRÅ»ZrÍbKGDÿÿÿ ½§“fIDATxœíÝyTSWð›…@(KØÑ¶T uw€£"ÈRª£Uk@D‡Z­à8X7NGOµÊ±lëÌ´*¨¨U£jÅ -nT "jÙ\X¢ €IHB¶7¼N³öÊ úûœžž—›—{ïæË{//1¡À„Nuà…y8AžN'€“’Q?¾{÷nJ†~Iøúú~õÕW}?.’×wÑÑÑ—/_ êû¡_eee”<³ÔìŸBAAAÙÙÙTþbËÎÎŽ‰‰¡dh88AžN'€ä àôòæ©®®ŽF£aì°««+99yÔ¨Qööö&Lغu«J¥¢¤ ½¼yÂK,?¾¢¢"--­²²rݺuGމˆˆP«ÕF×ohhàp8䲃ƒÃG}Ô‡Å>G”]/xÁ¤¤¤¸¸¸üøã !4lذ·ÞzËßßÿÀK–,1\_£Ñ|¸««ëŠ+º»»6¢'MºË|>ãÆd˜H¶¶¶ÉÉÉ|>ßhW!www½~:;;ß{ï=‡ãíí½víZ¹\NÎÑ#G|}}œœ¶mÛö\çüÏ"¨Àãñx<^«!„bccE"Qff&B(::Z$‘oÔ<|øðüùóÎÎÎJ¥’ >Ÿïçç§Ñh$‰µµuFF†P(Ü·o“É”H$»wïvuuÍËËkiiùþûï½½½Bµµµäæ“ ‘‘‘555eee\.wÓ¦MF ‚èììÜ»w/Yžv¹££!ÔÖÖ¦Wii©›››™þÉÕt—ãââÂÂÂêëë¿¿?9(Bhîܹ{÷îE=zôÈü¼eeeQõÌZzž®^½J„B¡Ð[®­­U©Tîîî?þø#AÓ¦MKMM%¢½½ÝÊÊê‹/¾èèèÐh4b±X­Vûùù}óÍ7Ún|X\\‡rtt,)))++óööž2eÊÅ‹étzCCÃèÑ£µ}Ž9Òp raĈMMMf 988¸»»WWWëµWWW7®÷]=xð@­V:”¼Éårµkzzzên»Å²ô<™Çãñòóó³³³'MšDÅd2™F£ÉÉÉioo_¼xñŒ3ÚÛÛ½¼¼®]»¦}Ôÿû_îÈB¨¦¦†|òL5—’’¢ûj®««+---**ª÷]¹¹¹1Œ††òf}}½——¹L§÷“gŠ’½bïwÚ}»Ñe•JåêêêæævàÀò.™Lfccsüøñ¶¶¶={öØØØÈd²­[·ºººž8qB(= ­­­-//÷ññÙ¸q£ÑFÂÄùA?>|ø”)S kjjòòòüüü&Nœ(—ËÍô/‹‰'ÏŸæÏŸÖÐÐpýúu???rPSó` œ?×cž‚HLL|å•WD"‘öQYYYC‡e±X#FŒ((( B¡P¤¤¤¼þúëvvvAAAG5ÌSff櫯¾Êáp’’’d2™ÑFâÉç^w™ ‰D²fÍ6›íçç·eË©Tjª¥R9iÒ$;;;½~ÚÛÛ.\èìììáá±jÕ*rPÈSz™§ÞX¿~ýüùóŸê!z9лi¦ñÙ`쪗(ÌS?¾ž)—Ë[ZZöïßÿí·ßR] ø]?9Ë3æ—_~?~üûï¿ògú0`@BBBo1öÿ¢¢ìó¾!ø|æsB~>“’g¶‚<œ O'ÈÀ‰²ë {öì¡jô[ee%ecSrÕkõêÕ”mð³ 98D1™NT—ñLÉ3KÍõ‚þ¥¬¬~Μ‹MþôÓ9T×béàü©gùù•äÿU* ÕµX:ÈS U^^Bèñcé… ¿Q]Ž¥ƒ<õàܹ[Ri7BˆÁ çåQwžÛO@žz›[É`ÐB*•¦°P “)¨®È¢AžÌéêêþá‡*ÕìîVýJmIòdŽn˜Bt:-7÷ …õX>È“9¹¹Wtÿ¥žJ¥))¹%É(,ÉÂAžLjoïºp¡F­~âA§O ¨*ÉòAžL:uêša#A99pÈ3 òdÒñã†oh4DYYýƒ))ÉòAžŒki鬬¼«Ñy3ŠÁ Ÿú¨‹íCT_#‚ÈÊÊêM%¡ÚÚZíÍ . 8𩪭­ÅµÉk×®Ÿ¿qãFƒ¡íÐÖÖ699™Ï瓇³‚‚‚áÇ»ºº®X±¢»»;00!äî<Þ-ÒèˆýÕ&ˆ§Ù?UWW‹Åb‘HtëÖ­””ò®¸¸¸°°°úúz@àïï¿iÓ&£º;‰´´´wß}÷Þ½{`ìØ±ÿüç?E"‹Åzÿý÷›ššø|>B¨µµ•wîܹ{÷îE=zô¨££!ÔÖÖ¦Waii©››9JdddMMMYY—ËÕZwÙhå†#šŸËÙ?õ³<é0`yøS( ãÆäjyyy\.×h£î9bÄ¡PH.=º»»ûæÍ›‰D­VŸ?ýÿðŠ*))!"MåéòåˇE h·Nohí²Ñ"Žh~f,'Oô~KoÔÖÖr¹\„T*ý÷¿ÿ=uêÔ»wï>xð@­V:”\‡Ëå655mÔíêÎ;Ú›d±X555|ðD"3fŒîÊžžž!+++ò¦ƒƒƒ»»{uuuxx¸îjÕÕÕãÆ#—}||È…#Fè ­e¦H½û‹þzþÄf³?øàƒÆÆÆÖÖV777ƒÑÐÐ@ÞU__ïååe´Q·rGBþUutt”••Éd²èèèäää«W¯îÚµKwe:]¢âââRRRt_Íuuu¥¥¥EEE‘7ÉB¨¦¦† ‡!3EŽØ/ô³¢ÛÚÚîß¿ÿþý{÷¥ 4ÈÅÅÅÊÊ*&&fÅŠ·oß¾qãÆÇg´Q·«9sæ¬[·îîÝ» **jçÎÝÝÝ …‚ÅbÉd²O>ù!$‹MU²qãÆÖÖÖ°°°3gÎÔÖÖæççxyy-[¶Œ\áÃ?¬«««¨¨X¿~ý‚ ÈF‰D¢ÛIEö?ÔnIÏpþD§ÓGŽYVVFÞÕÞÞ¾páBgggU«VÉd2£º'1"‘hÑ¢EŽŽŽÎÎÎK—.íêê"bûöíNNNƒ ÚµkWll¬««+ñäu Ýe‰D²fÍ6›íçç·eË©TJüÿô(33óÕW_åp8III2™L©TNš4ÉÎÎŽxò|Ühå¦F4ÅrΟ,â÷^³³³cbb,¡,êêê|||úrs¢££B–ð²~v¼ò„߀¨®‚'ü\]]322¨®‚'€ä ày8AžNôþ]DDÕ%˜¤ÑÐét ÕU˜týúõàà`ª«@ÈBò0oÞv¬œ’zúÈ“qA?~E¡0ò})ÍÍAcß—Ô/@žŒ»zõnK‹ñKpÈ3òdÜ©S×¢±XLÃÿÔjM~>\50Î">_`BBF0™|wJvvEPÐÐAƒœÈ›ÎÎvÕeéàó½âé¹*##~æÌÑTbéàxp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀé‰ï§S(ÇŽ“Ë-ôWÞ¨U\\|ÿ>|³¯¾ÈÈÈ×^{íÛ„ŽÜÜ\ÊêýSll¬n„žØ?©T*„PII Eµ~fóæÍdf´àü ày8AžN'€“Å}Ÿ}ssó‚ p½& 5lÄû‚C[°îX,ËÇÇgåÊ•\.ãX$¹\þÍ7ßTTT…ÂÁƒOžóæÍ‡"~©TºlÙ2GGÇ„„OOÏÛ·oïÛ·ïÊ•+_~ù%näh#  Bvvv±±±‹1ôâçÉÁÁÁÉÉ©ÇrrrJLLœ={öãÇ0qèÐ!‡íÛ·“éñööž0a¢E‹ §OŸn¸¾F£‰DäòÀ—.]бCÏrþZXX?kÖ¬£Gž={666vúôéû÷ïG}ýõ×Û¶m#×”ÉdQQQµµµ¡ŸþyñâÅ‘‘‘óçÏ?{ö,Bˆ ˆüüüøøøiÓ¦-_¾¼ªªJ÷ÑÜÜZZZºpáÂÙ³gýõ×J¥Òh£veݚ߉D’ššúÎ;ïðx¼ôôt…Baª‡ÐÐÐâââøøø™3g;v !¤ÑhŽ;¶páÂiÓ¦ýãÿ¸yó¦Ñ! “É´µµ55âòåËsrrBb±xêÔ©ééédç3fÌ(++3:c¡¢¢¢¿ýíoº»"›yóæœ¿ÿýï¡9sæèm—a=F7öi=ãþ©²²2==ýܹsŸþyHHȾ}û~úé§/¿ürîܹS¦LÙ°aƒZ­f0¥¥¥\.W.—oÚ´)))iâĉ¿üò˶mÛ‚ƒƒ‹‹‹:´zõê7Þx£®®î³Ï>3èĉŸ}ö™X,þôÓO nØïàà°víZò!ºË!¹\.“É´7Y,ƒÁøÏþÓÞÞž‘‘!“ɶlÙÂf³ÉžºtéÒÎ;ÏŸ?ÿÅ_LŸ>ýÌ™3YYYÚ²?ÿüsñ¤RéáÇ#""¬¬¬È» G ¸zõ*Ç»~ýú+¯¼RUU…ª««S(cÆŒ1:c*•ª½½ÝðœŒËå>ÞpcíííÍAß3¾¾‹‰‰a³Ù‘‘‘¡ùóç³Ù쨨(„X,ö÷÷g2™!T\\I£Ñ”J%A2™ŒÅbEEEÔ]_ïš»»{e[[[GEEݹs‡Œ¦Ñi4Z``à¥K—}||ÆŽ{åÊ@ˆLÌB(<<üСCÚ½BH.—ûí·ùË_z?9ffàO¾}.y9r¤Z­>xð y@DÑh´äää .tuu)•J&“immýöÛo§§§—––¶··———ïٳǰ«;v477ߺu+333""ÂTcWW×÷ßOÞ«»l“É ýꫯ„B!ùz;<<ÜÎÎ!töìY©Tjx¶¡kæÌ™ºe“¯B ÙÚÚJ¥RòtÊ舡€€€‚‚‚7ÞxƒÉdŽ;öÌ™3nnnnnn¦f !ßÑѱzõêòòò¦¦¦‹/.[¶ŒÃá¼óÎ;ffL÷ ÒL=Þs¹^@§Óƒƒƒøá‡àà`²…Åb­[·n÷îÝ­­­žžžŸ|ò ‹ÅЉ‰Q«Õ;wîììì2dHBB–-[ôº _³f\. ‹‹‹#wËz¡ÎÎNòüQoÙ”?üpÇŽ‰‰‰VVVS§N‹‹c±X‹/ÞµkŸÏ_¾|ùÅ‹M=vÖ¬YJ¥2==ýÑ£GC‡ݰaùJ‹‹ ›Í‰Däù€áˆ¡ñãÇ+ŠQ£F!„üýý•J%¹s25c!6›½gÏžddd´´´xxx„……ñx<퉿Þä0Œ7ß|óÝwß=}ú´ù03]½÷ÄïsfggÇÄÄ`¹~š™™yÿþý?þ¸÷Ñ»zkôbn\áí¿ú~r6oÞìââ’­mÁ¼S(B¡°°°ð¯ý+ö΅ß§›7o&$$¼ýöÛ£Gÿ©_Ûµµµ1cFoÉ&çyïÀË /Žwàey8AžN'€ä àôÄõqò3£=~x­yóæéÞ|âz\.?}ú4ùž(½1nÜ8ÝOXÐô>›ÀŸçO'ÈÀ òp‚<œþ­ˆ,$Äá¶IEND®B`‚././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine__inherit__graph.0000644000372000001440000001154412502417165033067 0ustar robertousers‰PNG  IHDRË€* ËbKGDÿÿÿ ½§“IDATxœíyT×ÛÇoHˆŠ,²¹Z¨ÊÑZ«Ô¢q- "D©¥-p¬â‚ HqQ«‚€lR¨”Å…U¤¥`áhõ§‚(K$‰a eÞ?æ¼yc2$A™†ðÞÏ_wž¹óÜïù:w˜y‚ Á U €Œp Ã øÁè0¾$7‚ƒƒŸ>}ª*)‘¿¿¿›››x“ ù³$@˜?þ„ T! 2(//·³³ËÎÎGHR=¶mÛæîîþ廒ŒdÍŸÃ øÁè0¾@‡Aðex9ìåË—a¶´´ÐéôÉ“'ëêêÎ;7//o“!≄—/_bî ôôôÜÝÝÛÛÛ‡Lî`^Z:::fÏžM¡P ÆÃ‡=<<<==oÞ¼©j]ƒcìØ±»víúˆËÊʘLfKKKQQQSSSPPÐkSé·#‰ððp–’’‚n~þùç­­­±±±Ë–-S­°Aa``pôèÑ8ÐÐÐÐØØ`bb½zõê¡–¦ƒ¾‡„´´4CCãGfffN™2e̘1û÷ïûøø =»ºº(Ê£Gׯ_·µµ5j”……Eff&@$ÅÅÅÙØØP©T;;»’’ɵ]®^½úÙgŸ÷õõaÁ‡ëˆd;'''$$DR|xxxjj*Úæp8ßÿ½¹¹ùŽ;z{{ÎN™7nÜ@oœ&&&bg„ßÿÝÆÆfܸq111¡PxìØ±iÓ¦Q©Ô Ÿ:~üx##£ÐÐP>Ÿ/›„H$ÉQ({”̬DƒÁ@äðôôär¹è½ÁÝÝËå&%%Þ½{wçÎ}}}>Ÿ HVVÖôéÓE"QWW—––Vbb"“ÉLMM%‘H]]]IIIFFF¹¹¹---æææ€/^ ’І““ÓóçÏ+**¬¬¬"""0ƒ‚p8œäädTž¸Íf³,k ‰lܸqñâÅuuuµµµ3fÌ@SÉŸÂ\.—L&{{{755eeeÚÚÚУÜÜÜØlvrr2 ££ãĉ’Ó755E'ŽžIâs‚™AèèhWW×7oÞÔÖÖ~ñÅ»wïF{þý÷ß\.÷Ù³g‘‘‘‚`*ļ@e–Ïúõëׯ_ÿa¤Ü£ŒÃª««éïï—j¿xñB #²bÅŠ£G"Âb±455cccÙl¶H$êìì …Ó§O?þ¼8mFF†¬Ãjkkѽ ÃÊÊ 38N‹`³Ù˜{ûûû‰DâãÇÑÍÜÜ\4•üÙ)ìÐ××÷ôéÓ®®.¡PxçÎÉ£JJJ${N›6Mvúˆ“ʃ ˆµµ5“ÉD;Íš5 ‘©*=z4ÚS!æ(³|dö1OúT* ©©)Õ‰ÄuëÖåææ¾{÷îöíÛ7nèéé•””TTT˜››/Z´èÞ½{õõõ³fÍç´µµ•hêÔ©hÃÚÚº©©INP==½ñãÇÿóÏ?’ÁÊÊʹsçöôô¼}ûV(ZZZ¢q+++q*9³SØL&?þÜÙÙyΜ9çÏŸ—< ½K‰{666*œ>&Ry &&&èK—.}õê;µ»»{×®]ŽŽŽ‚`*ļ@r2Š¡ÿYrýúõyyyÙÙÙß|ó ºöñx<‘Htùòe‹åãã³zõj‹effVSS#>êÉ“'²©Ð¾€çÏŸ£gv  &kÖ¬9~ü¸ä?謬,>ŸO¡PÆO$ëëëÑx]]™™ÙÇÏùáñxîîî¡¡¡ÕÕÕgÏž•Ü…^31“'OV8}L¤ò Äfb³ÙR(ÊÖ­[ÛÚÚ0b^ e2+%ø#Ž‘½½½@ ˆŒŒôòòB#ÁÉÉ)''‡Ëåö÷÷kjjR(ooïÐÐЫW¯¶¶¶þñÇ»wï–MòòåËÊÊʰ°°M›6 |ÿþ½øFÉö¡C‡îܹãååUVVV[[{ðàÁÓ§O:t ©©¹aÆàààW¯^=~üxß¾}èíöéëëëïï'“É</<<ÐÙÙ‰Ù3 @rúïjooo•@á ëÖ­Û³gÏëׯkkkããã¥ò¼yó&::z„ †††˜ 1/œÌƒCrÉÊ=‡‰}=P; @[[›ËåŠb0–––d2ÙÚÚúêÕ«è“Dddä”)Stuuíìì.\¸džÃRRR&Mšd``Äãñ0ƒÈ‡O*’mAÜÜÜLMM©TêW_}uíÚ5ñ.‹åå奯¯obb²mÛ64•ÂÙ)ìpâĉqãÆM˜0áìÙ³žžžFFF˜=Á±cǬ¬¬tttìììÐÛ‚õ[9RÏa²#r¹Ü-[¶èéééëëûùùuwwKåÑÐаµµ­¨¨@ÄT({Ê,Ÿ!xÒW†°°0:>¨C¤œ!µ)'VÈ:lˆß¸ööö¶´´¤¥¥]¼xqh3CÔ”!~{ðàÁ—_~éíííààð)yFíïï¯L2Ì‘®¢f0°ÆòѠ摬¢É_¾!Ãè0¾@‡Að: ‚/Òo+Š‹‹9ŽJ¤ éìŽ=’‹ê>‘úúz ‹B’/ÇàïâÊG[ûscãŸ44F©ZȰfûöí’¦úàmD>ß~{ª²²áða·ï¿_ j-j|S–·oßÿõ×käæþ¥j-êt˜²äæVkhTU½nld©ZŽÚ¦,—/W …"‘¨qíÚ#UËQ Ã”¢®®íÙ3&ÚDÙÙ•ªÕ£F@‡)E~~µ¦¦ø\!/^¼ýï×Bt˜’\ºôω7I$âÕ«p¡T è0ÅÔÔ467³%#0;û!|Ñ£ ÐaŠÉϯ&‘ˆRÁ–ΣGoT¢G½€S€P(º|ù/@('‘ˆùùÕ*‘¤^@‡)àÁƒz«K6.srþBß_@䦀¼¼*Ù%…Íî)+{‰¹ ":LÿùO­P("‘ˆ$‘H$‰hµÝ‡Að: ‚/Ða|ƒàËHvXss3FSµŠGÝõ£Œd‡A†Ða|Q±Ãh4ZaaáæÍ›]\\.\¸pëÖ-OOÏ•+W¦¥¥Μ9ƒöäñxÎÎÎ/^¼”••ùøø899ÑétôË‚ yyy›7o^±bÅ?þøèÑ#Éõ]nJKK½¼¼Ö®]{æÌ>Ÿ®M’m@˜˜¸víÚµk×&&& ‚²²277·ÎÎN@qq±——Woo/ ¼¼|ëÖ­ÎÎή®®.\Pf¦‰#;:æy£_U¨þVUU•àçç—œœ\^^žšš˜™™Éår-ZTZZ* ¥¥¥&&&VVV½½½...—.]òòòЉ‰éíí-((øí·ß|}}333¿ûî»#GŽÈ”ŸŸäȑÇ?xð@|áeƒcǎݱcºW²}åÊ&“™””tüøñêêêôôô¯¿þzΜ9ñññl6;>>~ïÞ½£Fêéé9pàÀÔ©S³²²“““9ŽÂ™ÊQ8Ðè˜çAŽ~U¡z‡mذB¡899èt:…BqvvtvvΘ1ƒD"ÕÖÖnß¾íääD ø|>‚ <L&;;;_¿~]KK+''' ÀÞÞ^__Þ¼y¾¾¾²š››ÛØØøúú ÔÑÑY¹r%ºW²]XXbdddaaáïïÿðáC@PPPuuõŽ;¾ýö[kkk™LNMM Ö××722tww+œ©…ŽyäèWx}5R … ‘HRm€†††½½ýÝ»w-,,ªªª¶oß R©'Ož¼råJzzú´iÓètú¼yó˜L¦•••8§………ì@æææhcâĉííír‚˜´¶¶ºººŠ7uttººº«V­ÊÈÈ8~ü8'‘HMMM±±±<oêÔ©JÎT¡ÙÑ1σýªBõ“ƒƒCTTÔäÉ“gΜihhèëë‰D ¸¸8,,,??ßÀÀ ®®ÎÒÒ=ª¡¡A6USSê¼ÆÆF}}}9ALÆŒsòäI333@WW‹Å´µµåååÍ™3çìÙ³aaa¨¼ˆˆˆˆˆ;;;>Ÿ_XX¨üd刑óŸO"‘´´´–/_žPZZÊb±>|ˆY`×ÜÜüìÙ³”””¥K—ìîî.((@÷J¶ííí“““ß¾}[__¿sçÎüü|AbbbÖ­[·ÿþªªª²²2ŸÏ$©¿¿?==ÐÓÓ£äd14:æy£_U ÷{˜††ÆÂ… oÞ¼¹páB4B&“÷ìÙ“””ÔÖÖfjjN&“7lØ  ããã9ú¤%•jÉ’%Û·oïíí]¼xñÆÑeH*àp8±±±èã‹dÛÇÇ'..nëÖ­aáÂ…þþþùùùÇÓÓ“D"mÛ¶íĉ3gΤR©QQQÚÚÚt:}ñâÅ;wîÌËËSf²˜ QdGÇ<rô« ¼þ ³»»{{{ûT襤¤´¶¶îÛ·OùCš››7mÚTRR‚¹)'¨*T+†F£1 wwwÅ]ϰ^%ûûû™LfaaáªU«T­ò‘ k‡=}úÔßßùòå³fÍú”<:::«W¯V&¨*†•˜¡E VIÞüÿ]%!#uuXGGGTT”‡‡ÇòåËîÝ»§jE؈¿ Òh´ææfÌ]#µt—ËõõõÕÒÒ OLLtttüå—_*++U­kpèêêzzzªZî ÷÷a˜¤§§Ïž=;44Ýœ4i‹Åb0sçÎU­°A1fÌ???U«ÀµtØÝ»w###%#›7o?îêꊋ‹+//'“ÉŽŽŽ>>>d2™F£íܹóÒ¥Kïß¿www700HOOçr¹®®®ÞÞÞ…ÊËËÓÒÒutt\]]ét:zÔÞ½{333Ùl6N÷ðð‰DÙÙÙ...ÍBò˜l€@ HII¹yó&`Ù²e¾¾¾Rß1Õõ[%ѯr'N” jkk£… €S§Nµ··'&&FGGWVV^¼x+,ž‘ÓANMÎýû÷ãããýýý“’’:;;srr †ŸŸ_ff¦——Wbb¢’ó’ʰ*v>ýìýû¨ŸÃÐ×+s¯@ øóÏ?ƒ‚‚LLL,,,¶lÙ".ƒQX<#§ƒœš]]ÝeË–¸\îµk×$눔_¥ò€ê…Ôõ»ëR©T==½×¯_OŸ>]|öìÙ¯¿þzêÔ).—+‰LMMѸ™™™øëžÂâ9äÔäHölooWXG„‰T0@½Ú¡~,X°€Á`üäÉ“úúúŒŒŒÜÜ\´®•D"Ñh´Ó§O3™ÌW¯^¥¦¦.Y²äÓGT¾&gÍš5’uDh> ‡ÃaI pPÙŠOŸÈ¿ZÞÃÆŽ{îܹ„„„ððp7qâÄC‡ÍŸ?Ý ©©éèèˆÖä|"ºººJÖ丸¸ðùü„„„ŽŽKKËýû÷ÿðÃ讟~úI²gVV–üAe+v>}"ÿ>ð»$~—„¨3Ða|ƒà t_ Ã øÁè0¾àøÆµ¥¥åÆøå‡¨8ý/ê?ÿü³ªgQ"‘xÿþ}œœ€×;}>‡Að: ‚/Ða|ƒà t_þîp:õw¦IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DateTime__inherit__graph.png0000644000372000001440000001651312502417165030704 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“IDATxœíy\×ÇO„Ep)dQ‘ŪX·ºàÇ¥PªE}ZQDªUT *¾ºU}¯‚­õõƒú‡+(à‚ʪR>¸ñh E¬(XÚW©0hÙæý1¯y1˘@‚=ß¿îÜ9srîÌ{ïÌ\æ0‚é*fÆéÝ €Z €Z €Z˜«n<{ölݺummmÆŠ1q¬¬¬Ž=:xð`eÍ*--½zõêâÅ‹{<0¤wpéÒ¥eË–éÉÅ‹{0$¤7Á`0Ôjp„ЄЄЄÐÂäôûï¿kÎÔèÀãñÂÂÂÜÝÝmmm'Nœ˜““c@çtÐÚRúÍOOOghãÁƒtÜêÂädX^½z5nÜ8›ŒŒŒ²²²¥K—†††;®nä“O>áóù|>¿¤¤øâããÓ?§å6þm"66ÖßßÿÔ©SäæÈ‘#ëëëããã?þøcãÖ}X[[[[[@KK 8°[®+=ƒÁHNN1b„££ãþýûÏ;7tèÐ~ýú}õÕWAZ¶´´ØØØÜ¿®\¹2zôh+++sç΀B¡8räȈ#ììì¦L™RTT¤Ú{“y^^Þ»ï¾Ëf³cbbÚÛÛµV›=¿j9++kãÆªÁÇÆÆ&%%‘妦¦Ï>ûÌÁÁÁÍÍmË–-ä#xêÖé àêÕ«dWçìì¼ÿ~¥åÍ›7|ûömM’óçÏ{zz:::FGG¿~ýZ5T©TºuëV'''6›½uëV©Tªy-ÚQúе£´C¨‘‘¡V£ ‰Dä_vHHˆH$JHH€—/_ÛÛÛK¥R‚ RSS}|| EKK‹¥¥å‰'ø|~RR’¹¹yKKKBB›ÍÎÎÎæñxùùùnnnP]]MÆ@fÍšõèÑ£ÒÒR//¯¸¸8­•A455üðC¥«íÛ·+›OÄ¿þõ¯E‹={ö¬²²rüøñÛ·oW ¾¬¬lÅŠŽŽŽ<OkëT]©qýúuR”\.·ÃË­vé322Þ¨QÝÐ_@åååAH$µruuµL&8pàÍ›7 ‚˜3gÎþýû ‚ …ñññ …¢¹¹Y.—ûøøœ>}ZéöÌ™3šª¬¬TÆæå奵RWœB¡µî•H$L&óçŸ&7³³³IWÔ­Ó@{{û¯¿þÚÒÒ"—Ë‹‹‹5-;4 ] :Tõª>œÏç“åëׯ;– ±X|öìÙI“&7.!!¡¹¹YWó)DD]]]ll¬››Û¼yó år¹.KU & êêjŠò矾nÝ:@Àb±ž?Nî½}ûvpppŸ>}¦OŸþÝwßammýàÁ¥[r¤SX,&÷VTTXYYi­¤ÕÉɉÃá¨Ö”••M˜0¡µµõùó窮*++IWÔ­Ó@^^Þ´iÓÆŽ»råJUK‰DBZê2ÐÚ@²ÆÊÊJu¬èׯÙs¬X±âÎ; …‚ú2Q ˆD"‘\¼xqÚ´iÆ {öìµ1¡M@Ýr¶xñ✜22r`‹Å …âÒ¥KB¡0""bÞ¼yB¡ÐÕÕµ¢¢ByTUU•¦+ò,À£G\\\(*µ2þü*ËvSSS¥R©“““Éär¹dýãÇ]]]õl Zb±8$$dëÖ­åååÇŽSµ´°° ›¯Ë@ÕÕ!CTw988(åÛØØXZZêèè8räÈ’’‡ÓÔÔ¤g´444TUUÕÖÖŽ?žœzwU5ª’Édl6ÛÉÉ)%%…Ü%‹­¬¬233Abb¢•••X,Þ»w/›ÍÎÍÍåóùZç@þþþÕÕÕeeeÞÞÞ»víÒZIè˜ñâÅ {{ûððp‡SQQW¯^%÷†……p¹Ü‡úøø®¨[§5€ÆÆFƒQPPÐÚÚºmÛ6(//Wí( fΜ©tµoß>Õ£bbb‚ƒƒkjj***&Ož¼~ýz²þáÇ‘‘‘?ýô“®ËDÑÉåò ¸ººîÚµ«®®®Ã‹®< =1„emm-‰T{zz²X¬áÇçåå!‘H¾þúë¡C‡ÚÚÚN™2%--MS@§N2dˆƒƒÃ† Äb±ÖJâÍ“¥vâjjj‚ƒƒ]\\ììì&Mštùòeå.¡P¸lÙ2{{{ggç/¾ø‚t¥€48xðà;ï¼3hРcÇŽ…††²Ùlµ0t¤§§»»»³ÙìÍ›7···«%‰V®\9`À{{ûµk×¶¶¶ª^…ÆÆÆƒzzzÖÔÔh½LÊÌÌôõõ=þ|{{»V]F@ú°sçΰ°°N¢Ö`­í×g\ïVŒ€r¹œ¼áíÊ™YgÑá$¶µµñx¼äää .Ü9¢†™™™™Y§'²äÌÌ0Ê‘’;wîL˜0aÕªU~~~tüôíÛ722RŸÊžÄè˜ BååâÅ‹K–,Q­AU FFFFHHˆ²æ-™Št7( „( „( „Znã{>ÓÄš!1Ñר˜0ª…nß¾Íd2‘ Qüüû+caJ0™ÌÛ·o«j†7í:i­<`|òl;ç@ºyž &€<Ë4v(¦ H7“!n²±C1]P@:ø£ þøs}RÓÏðÇ/FÆtAéài˜ýùÆÑÌžf5Ó¤¸§AñçA(¤ÀMÀ» - €´ñê.¼~þFÍëçðê'#EcÒ €´ñôÂÿÇ/3 xŠË›´€ҀÓÔÿ_$ )<9„ÜH1™.( ^CûK-õí/áÅ÷=©ƒÒ &M}ü"1³€§i=©ƒ¯2ÞDÑ™ kѾ×Ü‚`fÙ³1™4ؽ‰€£S= kAIFÓ ÀèMd­Àûîÿ›5çÜÃÿ_ã2Ìmz:*DÉí€iøÝcà†Ð„ЄЄЄЄÐoã)iáØz;ӄЇ0„( „( ãšâÄÝÝ}ùò倎C]ùS233 ›˜¦  €º…’’>Ÿ_[[›’’"‰ÆOñU^.—ëàà@áMWþ”©S§~ùå—†¾3à$Úð0Œêêj///r“ ?????¿Ý»wkµÿý÷ß½½½õ¹ú[öØÑBŸ¬% #***??ŸÜÔ̺âëë *iuôɱB¢šV†:GL‡n»ž~¥kŸ{ý«pÿKâþ—Z÷Pä:•¯K“ܽ{·ÿþAP¤eQSäX¡ø2P戡vKÐI¿Ò)ë¿?,&~X¬Z¡O® Qd]QkͱBB- Š1ÔnIº˜~E£¿.o HÏ\'šJKK{ÿý÷ɲ®¬+JcÍ+Ê]Ô¢N@áV•Φ_Á9P'èZ®‚ Ž?>wî\ Ìº¢D3ÇŠA‚×ÓmgÓ¯ €:Á˜1cŠŠŠ²³³ûí·aÆ­^½úÞ½{Z-A}}}]]]qqqPPГ'O6mÚíí퉄Åb‰ÅâØØXhnn&!3TÀÂ… wìØñôéÓÊÊÊÀÀÀ£G$xj· …âÚµkAAA¾¾¾Ap8œ .P?\øöQi4æ@J(r¨žÞAƒ…‡‡744(÷jf]‘J¥Ó¦M³µµ% (r¬Ð¨S·t9ý >¢¤£Eõ …B¡P˜›÷úÜÅR©´k 4z}ËK×r˜ ]N¿‚=%¸¨#P@-Þ†î1"( „( „( „( „( „( Jl‡Û„IƒO¢)!$"ºÁ¡ ¡ ¡ ¡ ¡ ¡.ç ×u ¡a-P@-P@-P@-P@-P@-P@”àz ŽÀõ@”àz ŽÀ¡­H"‘¤§§·µµ*Sã#+.Üø%ÑØtVVVK—.e±X]wÑ©oy¨‘••e¸¶ Æ!++‹Žhõ@2™ ðmZï…Á`±Ëà¡ ¡ ¡ ¡E¯êçþ Ç sww·µµ8qbNNŽÓAkK ÞüÎÒëdX^½zE&²ÈÈÈ(++[ºtihhhaa¡±ã2]ðUÆÄÆÆúûû“é&`äÈ‘õõõñññü±q3Yz¢¢N$AZ¶´´ØØØÜ¿®\¹2zôh+++sç΀B¡8räȈ#ììì¦L™RTT¤Ú{“y^^Þ»ï¾Ëf³cbbÚÛÛµV›=¿j9++kãÆªÁÇÆÆ&%%‘妦¦Ï>ûÌÁÁÁÍÍmË–-ä#xêÖé @3giyóæÍÁƒß¾}[Ó€äüùóžžžŽŽŽÑÑÑjùuôOócHè<…ÌÈÈÐÇP&’)..¶··—J¥A¤¦¦úøø(Š––KKË'Nðùü¤¤$ssó–––„„6›ÍãñòóóÝÜÜ@ù±m²0kÖ¬G•––zyyÅÅÅi­$¢©©éäÉ“dxÊrcc#…B] xüøqeeå¨Q£HWÔ­ÓEΞٳgߺu‹Ïçë2øðÕ®¶oß®ú­qê|<º.MFFF‡fT謿€(ÉÈd²Þ¼y“ ˆ9sæìß¿Ÿ ¡PhaaßØØ¨P(š››år¹ÏéÓ§•nÏœ9£) ÊÊJel^^^Z+uÅ)  ±±Që^‰DÂd2þùgr3;;›tEÝ:­Päì!-;4 ] :TU@æãÑzih ¨‡&Ñvvvðç׬UËÀd2.\˜ýòåË7n„‡‡À€ŠŠŠJKKÝÜÜ>øàƒ~øÁÌÌŒËåŽ;VésôèÑš?äííM†^[[KQ©É€œœœ~ùåÕÊ»wïNœ8ñõë× r¹ÜÓÓ“¬÷òòRº¢hÖX,Ö£GßÿýÓ§O«Z>( T]ñù|Õ]555ÎÎÎd:Õ™3g>yòDWK ˆIÜ…-^¼8''‡Ì2DLb±X¡P\ºtI(FDDÌ›7O(ºººVTT(ªªªÒtEþEÀ£G\\\(*µ2þü*o÷RSS¥R©“““Éärÿ·BèñãÇ®®®z6P-Šœ=¤ò( T] 2DuW7¥ùé:Ý—þCu™LÆf³œœRRRÈ]b±ØÊÊ*33S $&&ZYY‰Åâ½{÷²ÙìÜÜ\>Ÿ_PP uäïï_]]]VVæíí½k×.­•„Ž9A/^¼°··çp8qqqpõêUroXXX@@—Ë}øð¡銺uZhlld0­­­Û¶m€òòrÕÁˆÂ`æÌ™JWûöíS=*&&&88¸¦¦¦¢¢bòäÉëׯ×çÒôŽ9µ€‚ˆŠŠ²¶¶‰DªÎ===Y,ÖðáÃóòò‚H$_ýõСCmmm§L™’––¦) S§N 2ÄÁÁaÆ b±Xk%ñfžµ8555ÁÁÁ...vvv“&Mº|ù²r—P(\¶l™½½½³³ó_|AºÒG@šhæìQ C—Azzº»»;›ÍÞ¼ys{{»êQÔùxt]š^ }عsgXXX§¡È}D]Ù“=jè ÈøÛÚÚx<^rrò… Œ ÒiŒ?‰¾sç΄ V­ZåççGÇOß¾}###õ©ìIŒ@wCëë/^\²d ˆqa0!!!]ö`üéÕ¼Ub¨àîî¾|ùr@@Çazz:C™™™Æ]Da:¼U€’’>Ÿ_[[›’’"‰ÆO‘Ÿ›ËåR'&þä“Oø|>ŸÏ/))þŸL:õË/¿4|ô½ãß…GGÇ€«««ŸŸŸŸŸß¡C‡vïÞ­ÕX¡P¼zõŠÂ›µµ5™;ÌÉMz&Q}CþW¦·ö@@m1ƒ& #***??ŸÜÔ\ áëë *²Ð9„ê êåºÕ§!& ‡H|¨?eee+V¬pttäñxj»@åA0ÉÝ»wû÷ïOÅ ¥1Årê„íË9¨ÝqýúuRX\.×0'¨3À[ó$ºCÄbñÙ³g'Mš4nܸ„„„ææfM Q,PS,‡ Årj·$uuu±±±nnnóæÍ+,,”Ëå];E]€¾€zLj\æ1{öìÇOœ8Qÿ; êêjr¹@bÍš5---ãÆÓjL.‡Pnöë×OÏ_¡^ÎÑ¡[—¸¸¸üã¹¹¹ß|ó͆ nܸ1hÐ =ݸôŽ9££ãÈ‘#KJJ8Å]•A?~|îܹ@¹@BI7-‡ÐÓmCCCUUUmmíøñãÉ™{¯ wh̘1EEEÙÙÙ¿ýöÛ°aÃV¯^}ïÞ=­– ¾¾¾®®®¸¸8((èÉ“'›6m€ööv‰DÂb±Äbqll,477“‡wX°páÂ;v<}ú´²²200ðèÑ£ žÚ­B¡¸víZPP¯¯/AçÂ… ÔL :ãŸQ&Ñôôô¬©©QÛ¥Ú®Aƒ…‡‡744(÷j.J¥Ó¦M³µµ% (–CPϨ«P¯²ÈÌÌôõõ=þ|{{»AÎO§Ús Þú.L¡P( sóÞ1‡£@*•ª­íIè¿ ë­ÀÌÌÌ̬wŒ¿ÔQ=ám¸ˆA!´@!´@!´@!´@!´0Àm|bâ[ûåׯå X[3ˆéBK@®®®L&ó-þ¯ƒwÞY@…¦ò‘2ƒÃd2õÿm­`ÎTÔ×ÿñþû» (/ßÍfÛ;ç@:)(¨d2ffŒüüÆŽÅtAé$=½L&#d2EFF™±c1]P@ÚyòDðða-••µOžÐú÷ ·vòòî[XüïæËÂÂüòeÅ´ƒÒNFF™T*'ËR© G1] €´PUU÷ôéÿ/VSóò—_xÆŠÇ”Ai!'§\9~‘XX0srÊ)ƒRG¡ .]º«¿H¤Rù¥Kwñ™™&( u~úé‰@ЬYÿâ…è§Ÿjz<S¤ŽæøEbnÎÌÍÅQLÐH¥òœœ{jã‰L&ÏÎÖ¾ë¯ è îÞ}"µ1™fææLss&ÉŸe³?þã(¦¾L}‘¨íòåûÊÍÔÔàÓO§(kæÏ×·¯•"3UP@TDFž€„„ÆÄtÁ! ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡…á?²™™™™`XŸÆâ?ú@¿~MÆÄ0DFFÖ§áòïÿÛÇÇǰnšTUUùùù]¼xѰn ö[ŸØØØîðŒt™Ý»ww‡[œ!´@!´@!´@!´è–I´Ñ©««ûôÓO‹ŠŠ âÍßß_Yvrr3fLtttÿþý»ìðÖ­[ß|óf}\\\\\œ¡ÂîÞNœ#GŽ8;;+ŠçÏŸgee­]»699ÙÖÖV«1ŸÏŠŠÊËËÓåmêÔ©YYY¤åúõëÉ2Úñw( ½èß¿ÿ;ï¼cÇŽýûßÿ~éÒ¥•+Wj5V("‘ˆÂ›¥¥¥¥¥%ˆÅb =“¬]»Öqw?F›ùûû¬X±bÁ‚iii×®] ;wnrr2>|øÛo¿%-Åbq```uu5”””DDDÌš5+,,ìÚµk@DNNΊ+æÌ™³nݺû÷龜8uuuþþþgÙ²eAAA‡–J¥Z+•ƪjœÁ`ÌŸ?¿´´”ÜüñÇ׬Y¸hÑ¢´´4øüóÏ`áÂ…¤L&;qâDPPPPPЉ'd2™®s¢ú£Ôç§Sn»cN¢ïÝ»wüøñµkמwîœH$úàƒ8Ž\.‡ãìììååÕÖÖ·`Á‚ôôôeË–}ûí·mmmùùùgÏž]½zõ¹sç–/_¾oß>ÍÊÍÍÝ·oßÞ½{ïܹC^c­•ýû÷ß²e ¹Wµ¬‰››Ç€×¯_ïÚµËÛÛ;555::úäÉ“MMMÇŽ€ììlÒ833“Ïç'$$8p ¼¼<%%…þù¡ãÖ°S@K–,±±±™5k„……ÙØØ@ssó¨Q£ÌÍÍ+++àÆ³fÍb0R©” ±XÌb±¯\¹bii™••5}út{{ûÉ“'¯^½Z󇢣£ÝÜÜFŒ±zõêëׯëªìÓ§Ïܹsɽªe X,VRRRLLŒ½½=›Í€ÖÖV5›‚‚‚7²ÙlÈÈȲ²2ú燎[ÃbÌ9 ˜››«•ÀÌÌlúôéßÿ½‡‡Ç½{÷6oÞ vvv‡ÊÌÌLII6lXXXØäÉ“ù|¾———Ò§‡‡‡æ¹¹¹‘…Áƒ ŠJ=©­­uqq!®­­‹ÅÞÞÞZëëë-Z¤ÜìÓ§ž¿Bq~è¸5,¦;‰öóóÛ³g»»û{ï½çèèííí …"..N&“ݼysçι¹¹?öôô$ª©©ÑtU[[K ëùóçööö•ú@ÄåË—}}}ÉÈ{ï)S¦H¥Ò‚‚Mû~ýú:tÈÕÕZZZ„BagNƒNºÉmg1݉£G–ËågΜ!ûp`0[·nýþûï[[[¥R©¹¹¹¥¥åìÙ³?Îáp„BaYYYbb¢¦«#GŽÔÕÕýç?ÿ9uêÔÌ™3uU¶¶¶æçç“{UËÐÔÔ$ _¾|YQQñÕW_ñùüJ¥2™ÌÜÜ\"‘³×¯_“‡wX0}úô“'O644p¹ÜmÛ¶åææäüt“ÛÎbº=™™ÙŒ3 g̘AÖ°X¬;v$$$¼xñÂÅÅ%66–Åb-Y²D.—=z´©©‰œ ìÙ³GÍÕG}´yóæ¶¶¶€€€ððprÀR«€¦¦¦øøxrê£Z€õëד6›=zôèÄÄDrȰµµŽŽÞ³gµµuXXX@@À¶mÛ233ß{ï½E‹}÷ÝwqäÈ‘5kÖ0Œ3fDFFäüt“ÛÎÒ-ëA–sœ:uª¾¾þŸÿü§þ‡¨=ƒÖúHÚ°Ï©{ »wïvtt4øz Â$ ŸÏ/((øÛßþfìX*LT@¿þúkddäìٳǎKÇOŸ>}æÍ›§O%Ò5LzC È_kCz ( „( „( „Ýò ‘Çã]½zµ;<#]†Çã‘o„ ah6mÚdø(C°yófƒ_nÃ߯#)p„ЄЄЄÐâ¿7È»àNIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/field__names_8h.html0000755000372000001440000000472612502417162024062 0ustar robertousers MySQL++ Reference Manual
field_names.h File Reference

Declares a class to hold a list of field names. More...

#include <string>
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::FieldNames
 Holds a list of SQL field names. More...
 

Detailed Description

Declares a class to hold a list of field names.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption.html0000755000372000001440000002531612502417163027561 0ustar robertousers MySQL++ Reference Manual
mysqlpp::IgnoreSpaceOption Class Reference

Allow spaces after function names in queries. More...

#include <options.h>

Inheritance diagram for mysqlpp::IgnoreSpaceOption:
Collaboration diagram for mysqlpp::IgnoreSpaceOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Allow spaces after function names in queries.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption-members.html0000755000372000001440000001214312502417164031765 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadDefaultFileOption Member List

This is the complete list of members for mysqlpp::ReadDefaultFileOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1RefCountedPointer-members.html0000755000372000001440000001660712502417164031224 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RefCountedPointer< T, Destroyer > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SelfTestFailed.html0000755000372000001440000002552212502417163027026 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SelfTestFailed Class Reference

Used within MySQL++'s test harness only. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::SelfTestFailed:
Collaboration diagram for mysqlpp::SelfTestFailed:

Public Member Functions

 SelfTestFailed (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Used within MySQL++'s test harness only.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ScopedConnection-members.html0000755000372000001440000000666412502417164031064 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ScopedConnection Member List

This is the complete list of members for mysqlpp::ScopedConnection, including all inherited members.

operator void *() const mysqlpp::ScopedConnectioninline
operator*() const mysqlpp::ScopedConnectioninline
operator->() const mysqlpp::ScopedConnectioninline
ScopedConnection(ConnectionPool &pool, bool safe=false)mysqlpp::ScopedConnectionexplicit
~ScopedConnection()mysqlpp::ScopedConnection
mysql++-3.2.2+pristine.orig/doc/html/refman/classSizeThresholdInsertPolicy.html0000755000372000001440000001634712502417163027243 0ustar robertousers MySQL++ Reference Manual
SizeThresholdInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 SizeThresholdInsertPolicy (int size)
 Constructor.
 
 ~SizeThresholdInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class SizeThresholdInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded.

Although this insert policy isn't completely deterministic, it avoids building the VALUES expression for the SSQLS object passed in.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool SizeThresholdInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query__coll__graph.png0000644000372000001440000003142012502417165027576 0ustar robertousers‰PNG  IHDRÍ„ÅbKGDÿÿÿ ½§“ IDATxœíÝi@×Úà3„V% Eܵ¢HŠ ½îˆW± ·•Ö+(j ~jÅj¯U·º`Ew¥¶‚ 1(´€ˆÈ¢ C0m¾Ó¦1 B „¼ÏLfÎyçÌaÞÌ’ Çq(DKÕPcE(²ÅA 8mUP¾æææ’’¡P¨ê@@oC¡PÅç@ b±Xoß¾577Wu  Wiii©ªª‚,€¦puuUu W©­­-,,”˜ ÷E(²ÅA 8È"YÐ.¥¥¥†©:Š6°Ùìðððèëë;::FGG777‹ÞmjjZ»ví!C Gµ}ûv>ŸO¼…aXii©xQgΜÁdÉÏÏWJ¨[¶lÁ0,&&¦µÔ¢Ád€¸²²2*•ª¾õ®Zµ*//ïüùóGMMMˆˆ Þjll1bDNNNLLL^^^dddBB‚¯¯¯@ YÔ¿þõ¯šššššš¬¬,„PÍß”òäŽãgΜ±³³KJJê|iUí;xÒð¡Pøöí[õ­÷âŋ׮]6lBÈÜÜ|ïÞ½‹/þñÇB›7o677¿sç‰DB999}úé§nnnGŽ •.J_____!Äf³B–––O¤   ¨¨èÆ>>>ÅÅÅNNN/SUûÎEÐ\iiiîîîzzzqqq¢ƒé„ ^¼xAL'$$DEE)„```°víÚÓ§Ow¨Ñ‚ƒƒ‰i6›M¡P=zD„—šš:hÐ ÖÒÒ"só‰Ïœ9ãåå5yòdgggÑéHk ~ùòå¡C‡R(+++â ˜Ìê$ÚPºjñ6¼páÑbJ€zׯ_gddÈ_†Ífëêê# qOMMµ¶¶æñx8ŽïرcöìÙ cذa‘‘‘±±±®®® £  `ôèÑááá8ދ׋ãøÂ… 'MšôìÙ3ƒáææ¶iÓ&b)S¦Ü¹s‡Íf‹–|ðàAPP¹¹yuu5Žãׯ_·±±ÑÕÕõññ‰-//'c2™¡ºº:‰F¸ÿ¾©©)Žã¡’’™ %ÛÝ»wÍÌ̈­KHHpuu …Ä2¾¾¾ÅÅÅÙÙÙt:}Ó¦M27Çq¡P8`À€øøxÇ7nÜèêê*§ÁY,™L^¶lYeeeBBB¨¶¶VfuqJW-Þ†/^$²KYY™ü~"Nf¿‚,@/Ôž,R__¯££³k×.&“) ø‘ÈÉÉéøñã¢åOœ8!çsgSS“ÁƒpŸ?þúõë‰ùÎÎÎ555ÄôÍ›7=<< ”’’BÌ),,$¦Åëår¹$éÉ“'ÄË””:N,À`0ˆ™çäÉ“£F:th|||cc£(>ŸŸ½yóf777‰túôiüï,òæÍ‰°³²²¨T*Þ‘,Âçó---oß¾ãøÔ©ScbbDˈÂKJJ¢Óé27Çñììlmmm"˜ÜÜ\„PAAAk ÞÒÒRTTÄf³ÁÝ»w‰8eV'§tÕkUUUEGGÛÚÚúûû_¿~] ÈÜ|qEÐíÉ"8Žß»woΜ9ãÇ¿rå þáS__???_´ð£Gä_½X°`ÁÚµkÙl¶Aqq11SOOOü⇱±±žžqÐ'^ïË—/B‡xÉ`0ôôôˆ¸\.Žã7oÞ¤ÑhAAA999ÄÙÍf'&&òù|â¥P(üöÛomllˆ—–––·nÝ’¨7..ÎÓÓïHÁqü?ÿùÏ_|QWWG&“_¾|)ZFóãÇõôôdn>Žã_ýµÄ5¡o¾ùFNƒ§¦¦zzzzxx,]ºT<‹HT'§tÕâm(ÂårÏž=ëéééääTQQ!³Ddö+¸/€†âp8B¡ðܹsõõõÁÁÁþþþõõõâ ØÛÛ?~üXôòéÓ§ò LNN¾téÒðáÃEöQ©TÑÑ™Édfgg[[[———ïæçç÷ÝwåXXXH¤²²2âå³gÏlllˆi„¹¹ùàÁƒ³²²233‰Û*Ç,XPPP@¼Ä0ìÓO?=Ë»páÂ-[¶ˆžÈ LLLŒ‰‰ lGk}`îܹ.\ ¾¶¶¶¢ùÄa!T\\L\’Þ|@””´{÷îÆ¿ý÷¿ÿMJJÂq\fƒs8œyóæEDDäååÅÅʼn‡!]8éªÅÛPäõë×OŸ>­¬¬6lñ4A‡ÉÏ<uÔžs‡£§§—œœ\WWwèÐ!===‡C˜ˆ Dÿûßÿh4ÚÅ‹kjj®^½:pà@Ôú}lj›êŽŽŽâ—eÂÂÂæÌ™S^^þøñãÑ£Gùå—ÑÑÑîîîãÆûüóÏñ¿?Ë‹.L-X°`Ò¤Ieee®®®QQQÒ'¡¡¡T*588ø÷ß'f999]¾|ùÙ³g™™™cÆŒùú믉·Þ½{7hÐ ooïk×®ýùçŸ6l@Ñh´––ÇBYYY5bDIWÍçói4š……ÅO?ý$¾Œ··wIIɃ£¢¢dn~FF‰Dzýúµ¨´ßÿ!”——'³Á™L&†aW¯^%¾ìB,)³:‰6”®Z|CÁõë×g̘accUUU%¿·àŠš¢W´’’’Èd²³³sjj*Žã<ÏÓÓÓÐÐÇq>ŸK§Ó ÆŽK|˜Å?<ªJaCBB Åï~³X¬¥K—öíÛ×ÌÌ,$$¤©©©¹¹9<<ÜÚÚÚØØ800ÉdJÔ‹ãx}}ýâÅ‹ÍÌ̬¬¬V¯^-JoÒ›Àd2wïÞíàà@ÜHçóù›6mrww×××···_·n貎ãl6{Íš5nnnzzz7nôòò Àq\Î'l™U¯X±B__ŸÅb‰/säÈ‘þýûS©ÔU«VõJo~hh¨¯¯¯xQB¡ÐÁÁaݺu­5øîÝ»MMMûõëH£ÑdV'цÒU‹oHrrò˜1cNŸ>M$Ñv’Ù¯0™ÍPkÄÞ'NTu ÝD( …BmíŽËåæååÏÈvÈÆËËËEO —––:::vÛá´óÕñx<‰K[í!³_Á·jOKKKKK‘»¼d2¹£)¤¹¹¹ººúرc‰‰‰ ÔØC(BZw× rrrFŒ±lÙ2ñä}úô‘ùø.ÒÍÕÉW´è…4íŠè2ûœ‹PdŠƒ,@qE(žô ×ª®®Vu W!~jEdz!]]] Ê‹‹Uˆ((¨;vìñŽÞd2©í¥5žÄ ²½’±±±———ª£P'N}ýº‰Ã1õõªêXÔÜh®ÆÆæ;wŠB.äª:uY ¹ÒÓ B„Ð;ELf“ªÃQKEš+9ùwâwãq]¹ÂPu8j ²@CÕÖ6fg?#ÎEp%'ÿ®êˆÔd€†ºté‘–FL …ž¿zõNµ!©#È" •œüP øg8Z KM}¤ÂxÔd€&zþ¼ŽÁ¨Äq¡hŽ@ LN~¨ÂÔd€&ºt)_G‡„&šƒãèéÓê²²:F¥Ž ‹4QRÒ>_(1SG‡táBžJâQ_E§¨¨º¼üôoôñxÂsçà¢VÇ@hœ òZ5 ¯¨x[PPÙÝ©3È"“’’Ëå Z{7--¿;ƒQw0#@ãøû{TW7ÓLfSYYÝðáö¢wÝÝû©&,õ„I_ÍqéRþŠ'ª«÷¨:uW´(²ÅA 8È"Y€â ‹PdŠƒ,@qE(²ÅA 8È"Y€â ‹PdŠƒ,@qE(²ÅA 8È"Y€â ‹PdŠƒ,@qE(²ÅA 8È"Y€â ‹PdŠƒ,@qE(²ÅA 8mñL&“Ãá¨*”ŽB¡˜˜˜t¾œòòò7nt¾ ±|}}ííí;YôC‘'OX¡C‡©:AOOoþüùd2¹ý«`8Ž‹^ܽ{Wü%‡a˜——WçË `À}}}GGÇèèèææfÑ»MMMk×®2dˆ¡¡á¨Q£¶oß.ꢆ•––J(g%ï¥ÆÆÆÓ§Oþü¹ÒkéRJÈ"eeeT*µó娶  °ÆÆÆ#F<|øpÇŽ¹¹¹ëׯ?}ú´@ ¹¼øÞ411Y·nÒCÊÊʪùÒ« tö€vZµjU^^Þùóç+**Ž=šššA¼EtÑœœœ˜˜˜¼¼¼ÈÈÈ„„__ßÖº¨b«(Œè®ÕÕÕwïÞ …‹-Rz] “‘‘ñúõk¼ƒJJJ$ÊiÏ[ʪ¢{¼~ý:##C)EÍ;wîܹJ)JaÊmÏðððñãÇóù|Ñ6›mooøðán¨]ºL„PII‰rËoO½ÝCYý§÷õC“ììlÑË»wïÚÙÙÓ­uуâ­tù«(‘Dí•••¡wïÞ)·–Å“””Ô¡U:|.’––æîî®§§7pàÀS§N!„ÆŒƒ²´´D ‚ØØX'''##£qãÆåääk‰ŸºŠO744üûßÿ¦R©¶¶¶áááĨü*ˆÕoß¾mggwïÞ=aaaA£Ñ"""x<BèòåËC‡¥P(VVV111D]†;vÌÅÅÅÜÜ<&&æÔ©S 066þöÛo;ÚÝ@~´aaaÁÁÁÄ’l6›B¡##£±cÇfddˆ_C 355uРA4-,,¬¥¥EæLÔúNLHHˆŠŠ"‘H¢b """d%½7‰µdv ÃNŸ>íââbjjºsçNbI™û·M—.]²±±a2™¡ÄÄD''§¦¦&>Ÿmgggnn¾dÉ’††baé~ÕEÛ"½Ëz5ê‡}úô‰‹‹{ûö-ñr„ /^¼ ¦evѵkמ>}ºµ —³Jk´ÖgˆƒÕ°aÃd¶•¢FâÒ™t?—8úµyLë¦Þ%žRÚ<a³Ùººº¬©©9zô¨¶¶6›Íÿ@±{÷n–’’R]]žžnmmM¼ÕÐÐ úd*>½páÂI“&={öŒÁ`¸¹¹mÚ´©Í*ˆé)S¦Ü¹s‡ÍfïØ±cöìÙ cذa‘‘‘,‹L&/[¶¬²²2!!!T[[KäØÀÀ@‹uäÈ„мyóX,V||hР””bº°°P4-ݯºb[dî²ÖššÐýYD-ú!ÏçgggoÞ¼ÙÍÍD">}ÿ»‹JRÌÊÊ¢R©xëY¤µUZË"òûŒÌ¶Â?ì®:::^^^D0rú¹¨MäïzÞ W´úö훑‘‘mkkëååõÛo¿ii}PÂË—/=<|xû‹’ÙˆiâŒV´írö¯ˆôÇQ´!!!OŸ>]¹r%1çÅ‹¢ð\\\fΜILK÷«®Ø–vövÕR‹~ØÔÔD 6zôèo¿ý–Á`lذaíÚµHnF$´ñ4ÐZŸ!V‘ÙVQwår¹¿üò NGrû¹x röN·õ®ŽÊáp„Bá¹sçêë냃ƒýýýëëëŰ··üø±èåÓ§Oå”faaA"‘ÊÊʈ—Ïž=³±±i³ ‚¨¥ˆÄ>`2™ÙÙÙgÞ¼yyyyqqqÚ@52wîÜ .œ={ÖÓÓ“¸> ³élllÚÜ#Ä„Pqq1q˜km¦L .ܼy³ø³+MMM;vìðóókQ2;1-Ñõ;³_¾|¹o߾ɓ'¯Y³†˜cmm]^^NLççç÷ÝwÄ´t¿ê¢miOoïÉzH?Äq|Á‚ÄK Ã>ýôSу¹ .ܲe‹¨‹&&&ÆÄĶV`›«…WUU‰Vi­ÏˆVÒm%‡œ~ÞÎϾÝÖ»:–E0 óõõ=þ<‹Åâr¹::: …x‹¸H·bÅŠˆˆˆÔÔÔW¯^]»v-**Šx÷Ý»wÄ•;ñi€€€°°°çÏŸ?yòä›o¾Y¸pa›UH˜5kÖúõë_¼xÁ`0üüüöïßßÒÒÂårÉd2‡Ã‰ŽŽF566*Ò6=ñÉæÍ›/^LÌ‘ÙtË–-ß#‘‘‘ÒE}õÕW¥¥¥>ܰaƒè)Cé™2w"B(**ª¶¶vÒ¤I×®]+))¹páÂèÑ£mllDŸ÷e–/±7ev™Þžý[WW÷êC!¡P¸lÙ²U«V%&&Þºu+-- !´xñâ7>yòäÉ“'_~ù¥è~¬t¿êŠm‘ÓÛÕE釆††K–, HOO/++ËÊÊ ñ£¢¢^½zåããsýúõâââ.X° ¹¹yùòåÄFþ*Ä/Dœ}ú„††¶g¦ËWS½i[”E]úaO ¬¶ê>øÅÜ_~ù~ëP&â·•²ûçÍ›‡‚ߘŠQVÿ~dÂ0,))‰èíç"Y€â ‹PdŠƒ,@q|_ðÂÂÂÂÂBUE£\©©Å¹¹¯ml ­¬ -- ¬¬ -- utLœÊúiO‰tæÌøiÕÖ G55åª:žkþüù/¤öC ié“ ´ôIFú$CÊ?ÿþ5A!j›è“ }s>£ž.ë*ÚÚûáOú644¿òÔ;ܾýçš5çq‘HZ!„a˜©)¥_¿¾NN´þýMííÍú÷7µ²2ÖÖn;µèèèãçtRYYYn."eðb¾uë(©àz”áÇ8°“…ô´~Ø”bÉ+6œ‹!¤…ÿ#áB !„éàÕÚ¶ÍRe% ‘HS§NÕÓÓkÿ*d‘Þçäɬõë“¥·QGG Ç1>_€ÒÖÖ²²êá7gÎUÄþqçNÑ¢E‡B§O‡x{˵ôJ÷Uç…äHdLÇ€45ÎÑÌI¿»âmëå÷E–,ùxýúiÒ§í<žH!!>_øòå[©—7…Z8wî¡¶6¦­­uîÜCUǺ•k€9¦%ïìSK3²Öè)¤§éý‡Î/¿œ´zµ¯œË¿$’–³³åŒC»1( CSS˵k|¾Ï\½Êxÿž«êˆ@÷¡˜ëØ{™hiËþCÕÒÆÌœ)Ÿý4ˆbÞsVNcõþ,‚ ÷ ™¨ÕÊ'@¸~ýôu›Q3ݺUÈåþu‚Èã nÝ’÷g ÷±c$ä˸¤¥EB6#¦Ç;êö!uT M‘EBQQŸÍ;Rú²‰¤5`€ùäɃU—œü»(Óc–œü»jã݃ß",¾ôöââ?îm« ˜ëH|žÃ´}ºÙ§{´õ4å`¥vzùÝuq0$äøÍ›Où|á‡ï`nnÖëÖM4 r‰Ê0™MîîQÄ£tI‹ÁØÜ·¯Ôs; ·¨/á<=[÷ìÇqçQÏ£V?dgî¨ÀE½CC–XŒZeƒàJA¦AéDÒ:x0hìXºè¹^mm­1c~ý5rÀó%KŽLš´3--_µAj¬+WÒ3¯^-èþH@7`×p¯…•¦,(zyïÝ ‹ù—\ÇFØ÷×£O5%éj!„0„0 ]c;* RHO§AY!¤£C:|øßtº…ŽŽ6BˆÏFFN¥ÓiññA·nEÐé¡¡'>ûloVV©ª#Õ8ÉÉ…ÂN‹…B<9žÔêôL´Ž>Ù6`~šÛÐå–ú¦Ý3סh9ù›aZaظõvnð+j@ƒ®h‰¼yÞ>ý‡ŠŠ·^^ƒWˆ¿õûïÏcb®de•ŽïôÍ7þ}d«ª 5JMMÈ›¥»"†a¹¹Ñ––Æ*‰ ¨Ä»Í—CKÆ­ígÿ‰¾ä ºf‹¨TÃóç¿3fà·ß~&ñÖˆ’“¿HJZÙÐðÞÏowh色²:•©Q.]Ê—ù}IëÒ%¸Æ¨Æ„œËthãþz ¯})Dhâ¹H{à8~ùòã;¯>^7mÚ ¦÷ïo¦ê z­É“c‹Šª¥{"†aƒ[ß¼®Š @§¼Ëûã›?RÞôûØxü7vªt!È"ò…xzúãmÛ.WW7Œ ŸB£©:¨Þ¦¼ü͸qÛZ뇆efn°·§vsT@1¸~§á”7Õ häÁsÍ>3Ó7íØè~@½ÀÞ•GK ó÷÷ðóû()éÁ®]WSRr—.¿jÕ¤>}` ¥yÿžëâb-þõtgS!d`@&^jiiq8ð%v5€ ñ¢”7…gß0ŸqÌS¼¢íúö%‘áùªÞÎEÚëý{îO?ýöã·µ´°ààñ¡¡Þ††ºªª =ŠRu  Ã.^læDq™K5±ïÀˆ°@ÝA阆†÷Gþÿ‹®®ÎŠ—/÷ÒÕ…ó9e‚,¢¾p!.DE­ˆ'[¹IDATÐ+iâ3ZabBY³ÆïþýoæÏ½k×5OÏm ÷¥¾ €&‚¢™ ‹(ÂÌÌpãÆé÷îmðövÞ°!ù“Ov¤¥åÃYèõªro¯{~ùóbUzÈ"г±é»sç¼;wÖ¹¸X¯XqròäX@ôJ.^z­þÒ²â+ÿ)i(o¦O1•ÿsR@£À}å(*ªùá‡iiù#F ˆŒœúñÇtUG¤®à¾HÂ|ÖüäLmÙu¦Ó§™ºÌ¢R](ª ô,p.¢..VññA—.…‘ɤ9sö((¨TuPtVþ±Wå ƒç™Ï»0xüF;H!@œ‹(ßo¿÷Ýå‚‚ÊéÓ‡¬];ÅÁF”ë8éQÞ¿åé‘Hdø¸ ZCùÆwºzuõÁƒK «½¼bBCO¼xñVÕA Š™¤ ô.a˜¿¿ÇÝ»‘,a0^N˜°}íÚ³¯_³T’p!ªøíÝÏ…<¸,ߘëBâ¨|ÿý5b•/¿üÄØ..ÕkfòÿL}[”RÇ®áÚŽ5nnàSÌuTP?p_¤›¨ìÛw!´|ùø‰FF0J„ p_¤Ëá¨êAã“ÄÚ—™,]cÒà¹æ.³©*ä  ¸¢ÕM(ò_LÊÎÞ¸|ùøC‡îŽ»uÿþÛ--|UÇ4NQÊ›+ÿ)i¬n·®_`šÛðP«nH!¥¥¥Öµßl—SŽã‹-244TV@d‘nelü×*c` >1™vÐqÎÙÁ.s¨Úú’G€²²2*µ»ÇáïêJ«««OŸ>]XX¨Øê*i5YDLM 6nœž™¹PÝO¯¯¶õÈV&G(¾}ÛÝvu¥!dg§àe©¤MÔd•±¶6T@á½&×5½æutÅ1cÆ „,--ÿ*‡Ç‹ˆˆ°°° Ñh<!„aرcÇ\\\ÌÍÍcbbN:5`Àccão¿ýý}!(55uРA4-,,¬¥¥E¼ŠË—/:”B¡XYYÅÄÄ´³Ri 66ÖÉÉÉÈÈhܸq999­­.Q¾t⯤/dI¬ž––æîî®§§7pàÀS§Nu´…{!ô……Õ!!Ç­¬¾ž>ý‡ÌÌU‡£J!!ÇCBŽ«: 5VÿŒs/¦âøøüŸ<•g4ttõ’’ñÃÂŽ;fÏž]QQÁ`0† ‰ã8B(00Åb9r!4oÞ<‹zóæ Q‚¯¯oqqqvv6Nß´i“¨X‹E&“—-[VYY™€ª­­mO¥ÒvïÞM£ÑRRRª««ÓÓÓ­­­‰B¤W/¿ÍDÓÒ8޳Ùl]]݃ÖÔÔ=zT[[›Ífw´‘{È"=Èï¿?Ÿ={Ÿ•Õ×óæÅ=~\¡êpT²ˆbxAÑùº”…E‡†å&§½å·(Gâ€îìì\SSCLß¼yÓÃÃÇq„P^^Žã\.Wbº¤¤„(Á`k%%%ÑétQ±---EEEl6[ ܽ{W|ù•Jsrr:~üŸ®râÄ ¢éÕÅËo3ùY¤¾¾^GGg×®]L&S(666 Š´soßéA†·ONþ‚@eÊ”=0€ h§w/Z.‡sÞòlÇöñÛK·ÛSÒµêòòr+++ÑKcccbÂÈÈ!¤££#1-âèèHL8;;WVþ3¦™L...þüóÏÙlöСC;T©„—/_zxxˆ^º»»·gõ6ÀåÞ¡ìÛ·oFFÆ?ü=lذõë×O™2EÎòšî‹ô8Ä*Ç—–ÖÂ* =ŒlɃ>3›{ÞÕo/½ß8¥¥„•J-)ùë+“ÉÌÎÎnçŠÄçw„Pqq1q­‰ÀápæÍ›‘——×™Jííí?~,zùôéÓö¬.'>Ÿªªª’³]G(ž;w®¾¾>88Øßß¿¾¾^Îòš²HO„a˜ëÍ›á0€ h-6â?ÖÆvºÊ*Íf³fÍZ¿~ý‹/ †ŸŸßþýûÛYÂW_}UZZúðáà 6,Z´H4¿¥¥…Ëå’Éd‡jllT¬Ò+VDDD¤¦¦¾zõêÚµkQQQíY]f&&&¡“'O²X¬½{÷Êi Ã|}}ÏŸ?Ïb±¸\®ŽŽ…¢ñCQ¨ä:h?.—êT–‡G”ƒÃÚ­[ÓšTQׂû"r4Ö´4¼hîÒ*x<ž§§§¡¡!ñ’Åb-]º´oß¾fff!!!MMM8Ž#„Dö¥§‰³#GŽôïߟJ¥®ZµŠÃáˆßZؽ{·©©i¿~ýâââi4Z{*•ÆçócccétºÁرc‰s™«KÜw‘Çñ­[·š˜˜888¤¦¦¢o‡H„—””äàà@&“SSS•Øøj F@Q¢TAPgXØäÞ:€ Œ€"Ž*sX…çê*~e9ù›Nˆê¯ê€ä)--utt„‹æ€»ëê@%(Èóĉ{{÷ÞJLÌ^¹Ò{ùr/]]؃½YS-ïiRmIz=ç-À'&SöÑmFµú…ATŽAêÄÐP÷‹/&Ž9p c×®k?ýtïë¯}çÏ­­ ÷·z\ˆßÛö²ôj=ÂãTS×ó¾úªª]úôéªÜ2å ¥ÜŠ€àŠ–ºª®nøá‡gÎäØÛSW­š<{ö-­Þ0r\ÑùmK…ɽAÿ2#‘T ­‚,¢ÞJKk÷î½™’’ëäd¹zµ¯¿¿GÛëôlEP/p%D½Ñé´½{ÞºáèhzÂßÿ™™¥ª tLó;ø Æ ‹ôÎÎVññAii_ééiÏ»? àƒñRÕA6ð›…^|{aá—–#¸"Ôd‘Þcøpûsç¾HJZùîgÊ”=AAGŠŠªUám1ç·ï*| îÿÒÒÃðÓ=¨7ÜÒ žÑêmˆTnÝ*Œ‰¹âã³kÚ´!6LïßßLÕq„z™Åzòsme6Ë€FöXfá<ƒª×þzƒÜ ¨Lš48=ýñ¶m—'LØ0jÍ? ‹>ªMÓU?l$¦îw´i¤ÄÑ®P!xF«—ãñII¾ÿþZccóÒ¥ã¿üòcã=ìOï~F âX¯x ø8ÔËéè-›™¹qõjß„„û#Gnþî»ËͪŽKCA ½d@  òðaÔW_ùœ<™9vìÖýûo·´À¦Ê×XŽ[yúÓx~hÈ"„@åþýoÇìÚumܸïîóùBUÇÕKÔä6Þ^÷ü쬧Ïn0gP{ÇP´ î‹h¨;€ŠÚÝinàÿyñíÞ°ªZlF¹Î§ÙyÃs 9 ³k(kk“;çݹ³ÎÃÃnõêÄÉ“cÓÒòU”Z*¿Ó_máa0ã„óÔ8Çþ …Íç"ýñGÍž=7ÒÒò‡·Œœ6n]…Á¨Ý¹¿EÈkê›ÂCó@CÁ§&¨t殤 É ‹€¿À*r¼ýóýo[*êK8ª€²ø1€ÊñãÁ••LŸ]¡¡'ÊËߨ:(•pñÒ+õ—–þ™²àºÂ¦–Fª# Ç3q I|•íÛÓ½¼b4pæ³æ'gjË®3…|œ>Íôãuý¨Î=ú;ÿ¨ d ›–æïïáç÷1€Êùó¹Ë–©Á*JÑð¼ùüü"=’ë|s—9æ4UG@ÏÏh¶q8ÜcÇ~Û·ïŽ@  ò ›ld¤×Euõg´Êiè÷±1‰Ü#¾C@O÷E@Ûôõ5nû‰&BhÈ" ½zÙ*¸q÷]Mn£ª@½Acjj°qãôÌÌŸ|â²aC²·÷Žsç …êt]´™ÉÏ?þêÌgOo†?«Ì‚,@§À} ¸gÏjÿ÷¿›))¹NN–«Wûúû{t¾Ì.¼/‚£ªOk_f¾£Pu\hŽþ¦3¸s@§@¥ÜTº(‹àBüÒÒâÚ'M¦Žú®æô)¦Úzp"€@ÑaaaEEE]ZES“áë×޾£c1™ÌU¸œwïLBÆÆ Ê í/ŽÍãH5u:eJ,ÓÅÅeïÞ½J,µYD#`6xð`ÖÕ57èé5uu-=Dmmmaa!ü ß:ÔsçÎ8q¢ª£èU~ùå—ÿû¿ÿSu¨\ 8È"Y€â ‹PÜ]Ý¡ªªjÑ¢EÊ*°¹¹ùĉ<¨®®¶··÷ôôœ?>‰DRVù€v‚,ÔÏû÷ïW®\ibbbccóüùó£GæææîÚµKK N¯èVE€ú9yò¤‰‰Éž={ˆœakk;räÈ¥K—¦§§ûûû«::4 |pñöö¾zõjPPÐŒ3~þùç7nN›6íØ±c¡üqçÎÄ’ÇÏϯ¤¤!”••ìëë»`Á‚7n „p¿páBPPÐÔ©S¿øâ‹Gy{{‹j©ªªòööÎÌÌ\¼xñÌ™3üñG's¦hañ‰é›7o.Y²Dü´COOoþüù·nÝjm>ŸðàÁ™3gΜ9óàÁƒ|>Ÿx7/// $$DæÖÚYü#77÷À!!!‡¾ÿþÑ£GW®\yêÔ)‹ååå•™™)B™™™VVVt:½¹¹yÓ¦M3fÌ8sæÌâÅ‹wîÜÙÜÜœžž~òäÉåË—Ÿ:ujÉ’%Û·o—®èâŋ۷oß¶m[NNÎÏ?ÿÜÚL“ððpâ]Ñ4›Í®¯¯§Ó%Gërtt|þüyk›–œœ\SSÿý÷ßçååýôÓOÄü³gÏFFFKo]' Yü# €B¡øúú"„,X@¡PüüüBnnnÚÚÚ !tëÖ-___ Ãx<Žã‡L&ûùù¥¥¥éêêž?~ÅŠãÇ733=zôòåË¥+Z¹r¥­­­‹‹ËòåËoÞ¼ÙÚLƒiÓ¦ïŠO#„0Lò'¤p—sSäêÕ«_}õF8p`hh胈ù!!!C‡9r¤ôÖ)؈hÈ"à !¤­­-1ÒÒÒ?~ü¯¿þúîÝ»ÜÜÜÉ“'#„ŒŒŒöìÙSXX8wîܯ¿þšÁ``VSS#þA~àÀÒÙÚÚvvvuuurfJ344455---•˜_ZZjgg'>G|„«W¯^Íž=ÛÛÛÛÛÛ;<<¼¦¦FTWk[h¸»Úkâĉ[·nµ··ÿè£ÌÍÍB---B¡pÓ¦M|>ÿöíÛ6l¸xñ"•J}ö왃ƒ±Vyy¹tQ•••Dvyùò¥™™™œ™2Mž<ùäÉ“ÄÉÇ–-[>þøãŸþyÁ‚Ä€D"½yóF´Š±±ñž={lllÐß×Ĉù¢4)½u€ö€sÐ^îîîàĉÄ%/„†a¿þúkSSÇÓÖÖÖÕÕ2eÊ233ëë묬¬´²²Úºu+—Ë6mš¡¡!BèÆïß¿OIIÕ8~üøÃ‡¿~ýº¬¬líÚµ/^lsëíY´—––Ö„ Þ¿?aÂb™L^¿~}||üœ9sÎ;M&“fΜ¹ÿþE‹VtÉsˆm9(ê„䜥k‚-@ȧ-Ü$ó b Ò[he ¿Kp-ôl|CùÿApRG'rÍ­aIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CommandLineBase-members.html0000755000372000001440000001473012502417163030600 0ustar robertousers MySQL++ Reference Manual
mysqlpp::CommandLineBase Member List

This is the complete list of members for mysqlpp::CommandLineBase, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
extra_args() const mysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
operator void *() const mysqlpp::CommandLineBaseinline
option_argument() const mysqlpp::CommandLineBaseprotected
option_index() const mysqlpp::CommandLineBaseprotected
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() const mysqlpp::CommandLineBaseprotected
print_usage() const =0mysqlpp::CommandLineBaseprotectedpure virtual
program_name() const mysqlpp::CommandLineBaseinlineprotected
successful() const mysqlpp::CommandLineBaseinlineprotected
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1RefCountedPointer__inherit__graph.png0000644000372000001440000005760412502417165032615 0ustar robertousers‰PNG  IHDRX÷Nѽ™bKGDÿÿÿ ½§“ IDATxœìw\S×ûÇŸ6aI AFqZEQ‘¶âªÖ…ˆHQô'V«v µ.Ôjµ®~­»Š­¤ ¢8jˆ ® n¢ $BÖùýqí5MnBX&Ày¿üãÞsÎ=÷s1OÎzB0 ƒé¨èZƒÁ`0ºB ƒÁth°!Ä`0L‡ÆP×0 ¦qˆÅâßÿ]$éZ¦Mèææ¦˜BÛe0LÛ"99yÊ”)ºVi«„„„=zT11LC*•þiÓ¦M#>?Šà5B ƒÁth°!Ä`0L‡B ƒÁth°!Ä`0L‡B ƒi4yyy4­¥j£)`ffæççwïÞ= åB3gÎd0dJIIÉŒ3ÜÜÜ Æûï¿òäÉ–ÒÖ(ÈnQl‘µµõÇüüùóŸÒØb0ŒîÉÈÈ`³Ùl6;''ÇËË+88Xöؒ’’øøøG·•••ýúõ377OLL¼yóæôéÓCBB.\¸Ð|UL&³iÏ-*))IKK“Ëå3gÎTWÒÆÆæ›o¾i Z‚O`0Œî±··wttGGÇ-[¶888p8‹EY¸®®\]]‰Ûèè耀€C‡·Ý»w/--ݶmÛ¨Q£š©J.—WVV6íY²ENNNtqqáóùVVVª%™LææÍ›[Cƒ–à!ƒiŸÐh´Ã‡wëÖÍÞÞ~óæÍ¿ýö›»»»µµõêÕ«`ñâÅsæÌ!J …BssóþùΜ9Ó»woSSÓ®]»þöÛo —ËwïÞÝ­[7KKËÁƒ§¦¦*ÎãÓz)))ï¾û.‹ÅZ¼xq}}=e"üwPÃ| ‘‘‘±±±µµ5q+‘H–.]êààÀb±–.]*‘H|}}€03pâĉ%K–(ÖC\WUUÍš5‹Édº¸¸DEE‰D"u2h4Z|||·nÝ:uê´eËPz‘ª™L¶uëVoooKKK??¿¬¬,ÊÑétø÷¨f=MÐ@<~åÊWW×7n¨ûÿÀPQQ‘––fgg'‘HBqqq=zôËåB¡ÐÄÄdÿþýl6;&&ÆÐÐP(8p€Åb%''—””œ;wÎÅÅrss ÄE``à³gÏ233===×®]K™ˆªªª:xð !OñîÝ»'Aqqñ‚ fÏžM6ä‡~˜2eÊË—/srrú÷ï¿|ùròí!\.W]?„††~øá‡ùùù999={ö$幊×0uêTwðàA¨¬¬TÌ¥T²cÇÅÎéܹ3üëë€hŸÏÏËË›œ k-ƒ×1LG$++kÀ€#FŒhN=VVV‘‘‘Ú$bô<5ŠÁ`Ú-85ŠéhPNâ!ƒÁ`:4Øb0ŒÎh½pN$š_¡.—Hÿý÷ß)ëÔ%ªÍ7Ë`0Lû!##ÃÝÝ]1ÅÐÐPC#Í|òÉ'l6ž?>dÈâìììš©S¯À†ƒÁ`Údð#E49ÒŒ™™™™™ü{ž]µæöžÅ`0˜×p8œÚÚZ¥Ä¶ÎIµ€j #²˜–•([­N-åKUû§Á?D+¢åi| ƒÑ´ô,Ó(nÞ¼noo_RR¢”m3œD"Qt¼¢!¢“º€JJÞ[([­N­êK)ûG±Ï/]ºDXÍ‚‚‚ü+#† ƒÁ´ZÐÖÕÕÅÆÆ8°_¿~ªe Í†s€3gÎ(Ú0 ÔT"P2„”­V§Võ¥”ý£Ô–âââèèh—ñãÇ_¸pAµ@ÓÀ†ƒÁ´ZÊÃŽððð¬¬,¹\®®4ä³tÁ‚ .äp8ÆÆÆEEEDî7¦Njaa1lذ?þø!dffvïÞ=²ZbUÉŽ@BÙÙÙ¦¦¦”‰ZT>m˜©©©¢™´¶¶&s)åQVB ÚjujU_JÙ?”ˆÅb"<ˆ··÷Ë—/5´]Kp}ú¤¦¦&''?}úÔÛÛ{îܹwîÜiB=zÎI 1ŒPIµÕêÔª¾”²+‘Ëå/^œ4i’¯¯/B(===!!ÉdjÙÌFÓü‘&Ó¡hTÌ—õÑj+@)½euê­±Y†ÇãíØ±ÃÃã°°P) Úl8'Õb© ¨¤Z ‰R«Õ©U})eÿ(rüøq__ßøøøúúz͸Ƃ×1íòòrâÿ•"ãããÃd27mÚëææfeeµjÕ*„ТE‹"""ˆ’ÀÌÌŒØþpúôé^½z™˜˜¸»»ÇÆÆ"„d2Ù®]»||| †¯¯ïÕ«WU¿¹N:åíímoo¿hÑ"‘HD™ˆšñÍ%‹£¢¢X,–½½}TT”X,VüæÚ²e‹——ƒÁ2dH\\œ†o.ÊV«S«úRÊþiðÑJ´†!$ÉdÄNÈÆ²bÅŠ3f4êm~¸èù¯¥V· Zâ#×`CˆiWàýîd¿»*­g›@]]]~~¾££cjjj£lÓ†²Õz«Vl1í¼ß½£íwWE¯ áµk×lmmW¬XÑØ•þ@eee‘‘‘Je(õÊVë­ZE°!Ä´yð~÷¸ß]½2„˜¶>>ióàýîx¿;Óâ`CˆiKàýî}¿»´2#zÉ[¸ZLçmŽI1˜ïwï ûÝ•I›Š¿»0Mƒrj”†¨–ë1˜¶‚\.—Ë円(¶råÊÂÂÂøøxíÉËËóòò"ÿË(ÝjHÔ”ZÝ‚j%‰‘‘Q³ª¨)^6Teïð²á£k`þeÁ¤¤¤àà`½ídŒ>3mÚ4HJJRLÄñ1mƒÆÍð‹D¢’’’Ç'$$´’*=¤µ[Ýt+øh °Ï/Ä< €å»Ð©x-º©æç~þùç&¾Ó)((èÚµ«R"6„˜GVVÖ¤I“>ûì³#F4§++«ÈÈHmõÊVë…Z ,ÜáÉ`Ûlû€!£Á'œétºî•cÚ&ªÿññÔ(ƒiä¨~ÜÛPy¸·Á{!t­kM xDˆÁ`Z”Ê›ðü7àÞÞ=‰ÀÐlús0XzëZC 6„ ¦E©}Õ€9¼?‡NýÁÒht]kÂ`4§F1ŒÖÈ%Pu¸·{Œl ß] Â`Z<"Ä`0‘ð¡èÄëu>^6Èën 6} ó]+Ã`Z<"Ä`0óà”+Øöû¡`ïÞ³f9Ã`ô l1˜˜ •·÷t[ 4ªC™r1¿uYÌ[Ob0 ¸w_/õUÞa> ,½À=Œz´‡­ ¦]ƒG„LÇãÏ÷{LY`7ðÍ?c[]ËÂ`t6„L;¥¦èæ`Ê¢ÈâÞ;°p{Û’0½B ¦½P_ ÀIÎ ¨Ê‰úþÝ—éZ£ï`CˆÁ´}ŠÏÀýõP• r ˜u~=ÕÉ€‘•®Åa0ú6„LÛ§âo(: ÌA`7Ì].Á`À†ƒÑoª@ÅßP™àû«Žõ`0í||ƒÑ?d"`ÿ ™P‘ ÜÛ ­c`Ç‘ºV†Á´CðˆƒÑ?dup¼X÷{¿×þ\°3 ¦ÕÀ†ƒÑÒàÞæ`êãêâ*0¶yëš0˜Ž6„Ì[D•™P‘ œ ¨ºH £²Àn ®ea0l1˜·BÎjÈûDå``Þæ° öCÀÔA×Ê0˜Ž6„Ì[¡0jŠÀÞìÞº™®Õ`0˜7`CˆÁ´b.pÒ¡ü:Xw‡®³u­ƒÁ4||ƒi*u%P~87 ü:T?0Û¾Àðе, Ó8ðˆƒiœpiÐMÁn °†ƒýP`#K]ËÂ`0B F#H 4ª‰™¸·Áî}00yëš0LK‚ !£‚¬*² < ÊÓ€{&—ÝTך0oHOOÿàƒÄb±®…`Ú$K—.ݲe‹b ^#Ä`þ¥ì”]…òkPqäõÀè Ðu6 ¹®•aþCqq±X,NJJÒµLÛcÇŽ………J‰Øb0ÿòð{sÁ޼˟:¤-Fo ÒµLÛãØ±cª‰Øb:H2ZPd ;Ž£÷a0l1™87 ô2pn÷.ø|}6PÃVƒé`Cˆi¿ÔAa”§ç/ÀÜX# ëlpüH×Ê0Œ !¦ýR[ /“ÀÞºÎÖ00uÔµ £èZÓl$|êt¦/Œ¾ ïí× l1-K^^Fk©Úh ˜™™ùùùÝ»wOCy„ÐÌ™3 ™RRR2cÆ 777ƒñþûïŸyïïÖp]+ô‚‚‚Nž<™””4tèPb³®®N.—;vŒËåΙ3güøñ\.×ÙÙ9;;›|êáǪUƒxöìñ=®.±AÌÍÍgÍšõðáCÒD1™LÒ¨ðx¼ÌÌL¥G&L˜°}ûvE“'‘HÌÍÍètzAA‘žŸŸïììL\+vÅÅÅŠUh2 ªJÜÜÜìE4èi²"]áÔl1:ź ?S+áƒKàóXuÓµ LbذaR©týúõaaaD F $èZ¦ ý!9tPw=þ|333>Ÿ¯X¹‡‡‡±±±OJJ BH,¯_¿ÞÝÝÁ` <øèÑ£ ²FxèС.]º0™ÌE‹ÕÕÕQ&¢ÿ.È)-Œ‘’B2™ÌÊÊêùóçÄ-ŸÏŸ={¶­­­Ý¼yójjj”–ÍB………S§Níܹ³¥¥åÀOŸ>Mfq¹Ü°°0;;;''§/¿ü’P²aÔ”JĵD":t(ƒÁP§D*•nݺÕÓÓÓÂÂbðàÁÄøLµEЍêQ×ZjPí P®âÀ¼˜Vƒÿ^‚¢“PyŒp˜¾ºÖ„i$%%i>o®=+W®,,,Œ×þ‘¼¼PiiªÂó8x•üÇ`Ê—O ×jpøŸyÇè"‘¨¤¤äðáà ºÖ‚Ñ1xÓÒ”^ÒKÐeŒ{“Ë`àÏÐy\;°‚­ç[’Dó+Ôå*zw$æ|ZIs;#++kÀ€#FŒhN=VVV‘‘‘Ú$bô<"Ä´4Þ àÝźÑÈÈÈpwwWL144ÔàqQŽ?ž˜˜8}úôæIëøûû'ð q"¼e±Xû÷ïW*C™ˆÑ[ðˆÓxÄ<(8w¿¤Î¥á_WZAxbTD³ÇEmˆŒŒ\¸paiiiK‰Ä´x‚A¯À†£5¢rÈûRGA²ÜŒAÈDºÒÂápjkk•Û®oIÕªÉb¼;~ùå—>>>óæÍSݦqöìY"@““in5÷˜:ª=ÖàŸÓÚÁ+H4‡tÐb‚¡¥ê5Zn9Åthò£Ë#ÐQ:J4G×'£çñ:ôùyóæÍððp{{û’’¥,h›¾% $‰â.p î%5xwÌÍÍ}öì™™™Ù/¿ü‚6èóù|cc㈈ˆW¯^ÅÅÅ@yyyƒ=F)ƒ²Çÿ —.]"¬fAAA«|´>>¡Ï4jǃ€ú³ @¦@ddd§NHf-«YW`_£„jKPî„ä{êÖ"t#½<Ž$5­#«aêêêbccد_¿§¡Íú–€3gÎ(~Ñhp/©Á»#ñm¸sçN++«—/_’Ô××?~üX(Êd²´´4²¤æ£”AÙcJ­+..ŽŽŽvqq?~ü… T 4“7„ååå55ÊŸmˆ‰‰ññña2™›6mŠuss³²²ZµjBhÑ¢EDI@`ffFôÞéÓ§{õêebbâîî‹’Éd»víòñña0¾¾¾W¯^Uý8:uÊÛÛÛÞÞ~Ñ¢E"‘ˆ2i} Qµ€X,ŽŠŠb±XöööQQQb±˜Ì•J¥[¶lñòòb0C† !~'u>yòdÈ!ãÇ—ËåJž9s¦oß¾fffŽŽŽ›6mÒ¦Ç(ePöXƒ𿀠a‡§"`¡x@œ ]KiÄ #<<<++‹ø?I 4t€zÁ‚ .äp8ÆÆÆEEEDî7¦Njaa1lذ?þø!dffvïÞ=²ZbU雋8•ŒÊÎÎ655¥LÔТ¿¹LMÿ³ÏÖÚښ̥”§X§L&ó÷÷'†§d…)))C‡íÛ·ïìÙ³ ¡æS•AÙc”ˆÅbÂ{™··÷Ë—/5ôFciACˆ':Ú6„›üÃè¨!Š7@ FèÖ"åܺ2ôlz´MÊæÞ½{#FŒðòòÚ±c‡†p3 ~­§¦¦vîÜyÏž=|ð‘U[[{ýúu„P}}ý¯¿þJ§Ó+++===9BVKüWW7"bë BˆÇãÑh´óçÏ×ÔÔ,[¶Œü’j°ÇTePö˜b+d2Ù… &Nœèìì¼fÍšâââFüµ£™†O0tä l;$Âè\/”`øÆ ÿî.Eׯ£cô»)J›ˆ ×áú_£àñx;vìððð(,,TÊjðÿ!ÒWß’ª48TÔÒ»£\.9r$YáŽ;:uêôÎ;ïìÝ»7$$„ÅbiÓcª2({L‘ãÇûúúÆÇÇ×××7ø×¤FÄAÕP]uîÝ¥Òx#­éß]x‚¡#O0`CØñ †Ý! IDATàd ãL”`¤l¡ãPê”ÿ+WéZeSÉdÄòLcY±bÅŒ3õˆÒf9¥[ ‰bD#xyÝA—?@çz¡Žèè¿?Ú|O]¾"ëï„Etƒæö6ž`è˜ Øv0rFG ÑQe+HüK4k+CÀ–¢®®.??ßÑÑ‘ˆ­=Ø6A>*:‰r ûߡۋQú tåCt®zü#uùçñ(í”õèÞJôäèyb_D¼lTO=2@-ºYO0´ÿ †ÿ‚£Otäb¸µ b@×f~ à:í-ÊÒ1iii“&Múì³Ïˆ8mÚ£I ¼¼|Íš5J´(Ûê+@Äú •ƒ¨ ¬»ƒCEÁ'?ÂݯÀÈ LÀÄL™`b¦Žà޶ˆ”Œ>A —Ëår¹¡a£"áà­D"iNÄ]Upô‰Ž¨Ò&ïMVhð<®CBì[Rõ˜0)² ãànÔW’½N¡›©xÎ¥6„Þ À{˜´¢Ú–ÆÀÀ@sTtUpðŠ·CËZAu(ÂãÇÇ>0m{ ÑÎq·í-DrDCH“7/’É‹ÎMP+i±C¦¦¦{öìquum© 1­÷.ü õ *…zˆ* žHîa08–¢¼m?è¹LÀÔLY`ÖŒ,5ÕߦL`“ÉÊÊ"&pðŠv€ò—`RRRvvv=t¢ÓLÄYæËNZúÅ•Èhõ¹T*m©·Ÿ={6,, ·˜ÕAÄúr•¿žÀ•A§÷ ßŠò>ð=Xz½˜S—,`¸Së`¿”Á í ŠÑ@=¢££ß¾ÌÛgùÈ–¬íÚµk-YF\¢2¨¯€zˆÊÁ؆z*»ò&¤Ž0²S0µ&0º‚Õ»ÔÕ:Œ€‘7ZQ6ÓÖÀk„Œ.Tƒ´Ì:SdUÞ„ë“ žò7'ÀÈœFQB–?L|¦ö``ÜZj1˜v 6„L+S[ O¶ˆõœ×#<äb°ícîR”·pƒnQ¯v¦Ž¯7^jXx£›‚¹sëÉÇ`Ú=Øb0D.aˆÊ¡®äõA‚:6ˆÊÁІ£(dP‘ &ö`æ ¶ýÁ”&L0a‚¹ uý¦,ðQôƒÁ´ØbÞ.òz(½ Ž`ð6vE71÷õ~“ú ÕA—Š2¢R8Û€F½ÍĬ3˜²ÀÒƒºN Wü»5c0˜æ¡†°¸¸xæÌ™©©©-R[@À›£NÆÆÆ^^^_|ñ…§§§ºò¡ï¿ÿþÆçÏŸ'R*++÷íÛ÷àÁƒêêê.]º„††6¬E´5 ²[[dnnÞ»wïÅ‹;99i~êmÉTO=r÷Á“ æÂ—Àñ£·-@Â#+Štq\ö‡zÔWügYÎÜ…Úšu†±9`j&, 5îð¦E Óé@Ór{4ó_¦OŸ®”¢†°ÅÙ½{7a'jkkãââÖ­[«îQeeååË— NÀçóçÎ;dÈèèhss󬬬ï¾ûnãÆï¿ÿ~3U±Ùìùó秤¤4áY¢E!wèС7îÞ½›²$ƒÁ ¡ú6o¶†FPýžl‡ç¿B€¤@3Qi+¾IáÑÿñBŒð€ÓEå,Áùãÿø@1ajÚ{B£ƒM¯VÔiˆqãÆ8qB&“5\ƒQá½÷ÞSJé†ÐÆÆ¦S§NЩS§ùóçOš4©ººÚÆÆ†²p}}=°X,âö—_~éׯßÒ¥K‰Û.]ºp¹ÜÄÄÄæB¹\Îçó›ö,Ù";;»¨¨¨   ÚÚZsssÕ’ÖÖÖóæÍk ƒdP” ·Ce‚üß‹† *o\U‚Ü7G¿E¥P_¢ ¨¯€gFW.L3„£`d &L°x쀉ýë½'HN1†£Ñ¡O㜮at‹©©éäÉ“u­Ó~hâÄN@@ÀùóçÃÃÃ'NœxôèÑ‹/†„„Œ7îðáðk×®-[^Ÿä­««=z4áà5##cΜ93f̸xñ" „Nž<>vìØ… þóÏ?Šó~ÅÅÅéééaaa“&MÚµk—D"¡L$ +>H©œN§ZXX·R©tÿþý“&Mš4iÒþýû¥Ré‚ €üovýúõ)S¦(ÖN8\¡P¸yóæO>ù$((hß¾}b±XŒ€€€Ë—/‡‡‡O˜0á÷ߥ©*‘Ëå¿ÿþ{XXØØ±c?ÿüóÇS¶ˆp Eü:Ö¬§ ˆÇïÞ½|ÿþ}uŸe¤5ðt'¤¸ÃiÀ½o¬ ˆ8¯¯%äAÅßP|òƒ\L]áŸà¢\ÿî|ù‡¡"$Õ`æ²zêòãB`øŸ†A1Ðç{ðùÜf‚Óh<“‰Á`TiúˆðÎ;ûöí»víÚÖ­[GŒsõêÕíÛ·O:ÕßßõêÕ2™ŒN§§§§;99yzzŠD¢µk×.Z´ÈÏÏ/++kË–-Ç¿|ùrllìW_}Õ½{÷¼¼¼M›6©¾èÔ©S›6m7n´²²úè£TÃÃÃmllˆpY x "‘ˆšU[[ûÛo¿9’ô_wüøq6›}àÀ„üòË/{÷î9sfrr2…B.—«ä*ÅÌÌÌÌÌŒ¸Þ¹s'—ËÝ¿]]݆ ÌÍÍ y”ܸqcÏž=iiiÛ¶m7nœâ‹(•ØØØ$&&’³uëV¥!„ªªªöïßÿî»ïZZZj£§±ÆŽ IIIË—/÷òòjðSa•pg ä¹èµ³S$W.„dP …qP_2…¹JC è<šúhÝÈt0¶&ÐÍÔ€Á`0¢é?ƒƒƒÍÍÍ`ÆŒæææ£G@гgOCCÜœ¸|ùr`` F#¢ÇÕÕÕ=úÌ™3&&&'Nœ˜?þ°aÃììì 4wî\Õ}öÙg...ݺu›;wî¥K—Ô%ZXXŒ7ŽÈU¼€¹sçŽ;vìØ±S§N½xñbpp0™uþüù%K–°X¬®]»FFFÞ¼ySñÕ„'$u«‰R©ôêÕ«‹-rrrêÚµëìÙ³Iy”Lœ8‘Á`Œ5 T'$U•œ>}Z±sg8‰7.<<œÏç¯^½ZK=Õ@¤Ï›7¯_¿~JÑ¥Uùq&Œ•.†§»@V H Æë7’‚¡5¼û¼¿FœƒQ7á“\ Ó„ÔVlz‚ù;Ø b0˜Ö é#BbEŠ\¢x Æ »~ýz×®]ïܹóõ×_€¥¥å?þxüøñ_~ùÅÛÛ{ÆŒƒ b³ÙŠ8‰˜Jq,ÀÕÕ•ÃáhHTG\\œ³³3Ô××>|xË–-{öì!²JKKg>É)SKKK[[Û/^(:_}òäÉÿþ÷¿;wòù|¹\Þ¹óëïnggg%%JQT˜L¦b/)¡ªD*•ªë²EŠðx<Ízš ¸ÐÒ}¨•9Èi†H &€$cAº)tûZ›:1 ¦µi­Í2#FŒØ°aƒ››[¯^½ìíí ¾¾^.—¯]»V*•^¹reÅŠ§Nb2™ùùù¯`ªVõêÕ+ÂÙÙÙiHl“Ñ£GŸ={!DŒó¬­­üñG¨¡Jøùù%&&®[·Ž^ºtI*•š˜˜ØÚÚ°Ùì.]º@II af€˜®¨¨P¬JónoU%kÖ¬i°sÑ §Éˆt-ã´Íù™6v”^†ÒKÀ¾>’*Åú2m*Ä`0˜·@kíèÝ»·L&;rä1w 4méҥׯ_¯©©‘H$†††&&&cƌٷo_zz:—˽yóæÏ?ÿ¬ZÕîÝ»‹‹‹Ÿ|XPPpäÈ‘äädb ×ÐÐ0 à§Ÿ~b³ÙÏŸ?‰‰ùè£ \¼x±¶¶–\{Ó€%&LPìb#’(õ4(@³mW†Ñ<çÁÐc0…¥Ao9h††Œ×ÛUêyM©ƒÁ`ZÖ >üÂ… Ç'RŒ¿ýöÛ”——wîÜ9::ÚØØ888X&“íÙ³§ªªŠX—Ú°aƒRU}ôÑ×_-‰>üðÃÐÐPbºO)ªªªˆ J×JØÛÛ›››óù|b:wΜ9»wïþ¿ÿû?6|øðÈÈH¥aœÍÏ?ÿ¼oß¾èè躺:WW×7úúú¹K–,Ù½{÷üùóŒŒ>øàƒÐÐPccã9sæìÝ»7..náÂ…ýõ—º.rttìÕ«×”)SþøãJ%FFF‰dß¾}•••«W¯&6yj@Uæyã5(õFã00Öp` ‡^kAZœt(» ì P•r1 ÅÉ ƒyëДֱ¦M›ÆápZ$ Ó¡C‡JKKW­Z¥ý#JnP(½¢è‘«Ì HLLœ6­¡¨÷Dt!uA‚0 æíÒ*S£b±˜ÍfŸ?þã?nú1mc}¶‚4ÍËËKéâ˜1ch4Z^^Þ‚ \\\jjjȬüü|ccãøøx …QQQîîîfff^^^ÑÑÑ"Ñ›ó!555Ë–-ëÓ§ƒÁ8pà¦M›È¨ÈDåZÊ#133óóó»wïe. ‘¥YÓ‘iCøøñãÈÈÈ1cÆôíÛ·9õXXXŒ?^›D ¦),,ÌÎÎ&oy<Þõë׉ë7J$Ò_,_¾|ðàÁ3fÌ€E‹ݽ{÷ĉ/_¾Œ‰‰III!} ‚deemÞ¼ùîݻ˗/‹‹ l‚Ÿ°ŒŒ 6›Íf³srr¼¼¼‚ƒƒÍ6™KB¤kІÁtpZqjÓÑÐvjT¿¡Ñh£Gîß¿ÿƯý®9r$11ñüùó¹¹¹žžžG3gΓ'Oºté’‘‘áïïÿÏ?ÿôìÙlmmÿüóÏAƒ^¿~=,,ìÅ‹°téÒ¬¬¬ÔÔTÂa4ÔÔÔôìÙsùòå‘‘‘4¨\yŠ%ËËËÊÊʧ€êÑ  ƒéà`S˜Ž ‡Ã©­­UM JJJ"#?~|êÔ©dnHHˆŸŸß²eËB_}õÕâÅ‹ +VVV{÷î­¬¬$n‡NZš¸¸¸5kÖV,,,–-[FÌ©6###ccckkëKjÐF¢®C0˜öM{pº}õêÕï¾ûN5ýàÁƒê~b+z"uppèÓ§ÏgŸ}¦Î 7¦ýqëÖ­={öüñÇÙÙÙªÎÊýüü„Bavvvß¾}«««¯^½ú믿Ι3‡È¥Ñh{÷îíÝ»÷’%K^¾|IxÍ%8xð`DD„³³óðႈ3UUU¥¥¥ª+ýúõkÔn2‚šš¡P|>ãÆ¡¡¡&&&ª¹$Ä‘uÚÉÎÎ ÿì³ÏÜÝÝ+ ƒi£´‡¡ŸŸß‰'Nœ8A„":ñ/nnnžÚ½{÷‰'Ž;öÍ7ßÔÔÔÌ›7Oéë£AØlö'Ÿ|Ò嘷ŒH$úí·ß 9dÈ‚‚Ê8Žt:}Ê”)IIIpöìY???%§ ÞÞÞË—/ßµk×öíÛ­¬ÞÄ8 |ñâEZZÚ°aÃŽ9âááqôèQ2WÕ›Bˆð™Þ(úöíkiiiiiéìì«´ÔGæ’h£à£>úçŸÌÍ͇>a„‹/ÊåêÝa0í…ö`MLL:uêÔ©S'bH×é_4ûC!"1™Ì~ýú}÷ÝwNNNÇŽkÔ{[7†¦¥¹|ùr—.]®\¹²k×®;wîÌ›7*QtìØ1„Ò¼( qzU1ÂgMM ÓcРA«W¯ÎÉÉY±b¨ÄÆÆÆÑÑQq{'Á½{÷|||ÛÜÜ\„B¨¦¦&222""‚2—D³6%:wî¼víÚ‚‚‚°°°ï¾û®[·nEEEUˆÁ´-Úž!¬ªª"B¶ 4m„ ™™™Ä­j4" Š!¥ÃH)\‘j8$u¡©´|Ô ×òz(¿6@ÅßoùÍöööÝ»wÏÈÈHOO¯ªªÒ\xèСàÆ—.]š8q¢jbx§8ÈC͘1ƒü“Ñh´Q£F‘$BCC¿ûî;rhHHHBBÂæÍ›5„MnssóY³f=|øPiË›*šµ©RVVöðáÃW¯^õïߟŒµ‚Á´WÚ’!|òäÉæÍ›gÏžÝØ9Lmpqq)))!®ÉhDÛ·o¿{÷î/¿üBÄš8q" pË–-"‘hïÞ½ èG W´sçN‡³ÿþ~øáÖ­[ þþþéééÄ÷ šŠò]JU‘•çççOŸ>ýÀ䆸6’AåMx´®|Ǭá²?䬆¢“oYEŸ>}RSS“““Ÿ>}êíí=wîÜ;wî¨+LÌŽFFF8ŒÒ¬ƒñé§ŸŸ;w®   ###**Š´skÖ¬)--9rä… ž={Öµk×3fˆD"2â ‡Ã)U@ËFYYY ÅÿJõUiÖF"—Ë/^¼8iÒ$___„PzzzBB‚ªÇZ ¦Ñ ¡X,¾xñâgŸ}¶cÇŽž={=zT{/ÛMC5e )Õ‰pE†††ªá(CSQ¾K±*ÅÈGï½÷Þ¡C‡LLL–,Y²råÊÛ·o78Ð%r1”^†{Ëáâ`H4‡ ƒ 'ÊR_‡Ò¥ƒ©VÖ¥ÅéÙ³çþýûsss{ôè¬áüÀ´iÓ?~L9/ªŽ˜˜˜3f¬X±¢gÏž¡¡¡þþþdˆM++«;wîôïß?**ªOŸ>‰‰‰+W®ìÖ­Û§Ÿ~J2dˆ“Z¾ÑÅÅÅÊÊŠÜ ªZY•m$'OžŒŽŽ *((X·nɃißèû®Ñ;wîlذaРAK–,y÷Ýw5Oh¯^½"ÿÛ«F#¢Œ!¥Z ®ˆ2eh*Êw)V¥„ݬY³fΜyãÆØØØ;wnß¾]ËñÊÛØwØ— ô2HªfHö:0¡bôy¹TW†ÀÆÆæË/¿\²d‰êfòç…¿¿¿âO ¥Ÿžžžª?Dètztt´ºc¸Û¶mÛ¶m™"‹ïÞ½«Z¹”JTWW«ËÕ^Á„ ?LAß ¡››ÛÇ=<<œÉ-p- BèôéÓ¤+mÕhD”1¤Të!¶ç¨ ‡¤šŠò]ŠUQÂãñ 9N÷îÝ)¦º"ØÆÊ¾€›4: R³ …äº5„Mشق“Ÿ:}ÀÈÈH×0 ïS£?þøãúõ닊ŠÂ¶nÝúìÙ3í?w[HEªªª¸\nEEEvvöêÕ«Ùl6éE5e )¢0ÈD]8$ÕÐT”ïRׄÐíÛ·‰¡Ý»w¯^½Z›“Ôo³ÿÀ}ƒé`Â7YâöçpåHŸ·Ãï w?Aî[QÚ ôÚz3"LGFßG„îîî_}õÕ¼yóΟ?¿nݺ;v888hóà¶mÛúöí«wžàóÏ?'.X,VïÞ½þùg²˜j4"ÊRJ1ŒQ ‡T¡©(ߥ.òÑ_ý•˜˜8yòäèèh-#å¾ejêá±Á¤^“ã¡äÜ_Ü;o††ªt²:•ï.ˆ8 *I5ôZ ½¨æîJ¯@E:Û ñÏLìÀØ •Ï·ôzƒi_´=_£!¹\®èªJ§OŸn¥ Õ&ЄÐT$R©T?퉲¯QÎ x²^¥¨Ì‘Ò`º Œÿ“&’ÝTyò?ÈÛõ•P_ùzÅ‘ ïÐâ0ò ¾LÀ”†?ƒ0mš—/_.\¸GÏÀ4ÈÈH¥MpzýÅJ FÓÒ @ïÞ½õÄ ŠÅâÊÊÊóçϯ^½ºi5蹤À~(Øa><Ý y?ƒ\úfthh¡l(RH|¾Ÿ/½6‡b.ÔW‚u7êòOv@î¾××t30µ˜²Àûsè<¦9mÂè™™™gÏž ÒµLÛãï¿ÿNJJjó†°QìܹS×^óøñãÕ«WO˜0¡™¡©Ú xï'èö <Û¹{AZq“ÀÐÀ„ & lë·º/Qˆ8P_õœ××ê¦R3# è8˜:‚‰=˜2Á„ùúºóh°j´çÌÛð‡Á4 Êð8íÜê}úô9}ú´®Uèsgè»z®‚üÃðx+X{·îë -ÀÐ,Ü´-ïùÀôQùk«Yó*oC=îÔ†ðÉÿ ú>Û óõ²%±~iá †jݶa0ýBÌ[Äï.ï…€ôÌ•3s007¢¼¬j‹wïõ<­ô_Ç.þgÀùcŠòì ©S0a‚‰=˜0¦ï¶1˜Ž6„˜·Þðá =§Ç·ÐãÛ7·òú×QÝôÙn(>ûæ–fðÚ"ú»åëØ@7c ƒy`CˆÁ40ë fê’ùŸ$ƒzˆˆËR¨¯Q˜©q¥v}"TÞc0a‚©=˜:¼Gú| ÊA1L3Á†ƒy+Ðè`ꦎZö= µEÊ;}„j=õ\ul0µW8jiÆvÐy,V¶yyy^^^-uÜSÑU‚©©iÿþý÷ìÙ£acB(,,ìÔ©S¤¿õ’’’¨¨¨ŒŒŒŠŠŠnݺ­X±bÒ¤I-¢­QÝ¢Ø"++«aÆíÚµK]´ç–íÌ&@a³³³£¢¢Þ¾LÓèÓY8®{%ˆeõR9a=j%t™œ&–ÒDR„@PO€2ñ ÕA=Œ^aݬ{4¢¼Ë䃸ê+Wõ• ®„z.ŒJmsVƒ\òz§Ïlg§6?kÝfÉÈÈ ì„@ ظqcppð“'OÔù*))‰']ÆWVVöë×oüøñ‰‰‰–––çÏŸ III5jT3U 8P—Í-B•••­X±bæÌ™ééé”%mll¾ùæ›ÖР%ʆÍisx:”~Òë†drÅ-(@ Ú›ßYœZó…ǵ’///J_ä˜VÇ3²qåùOAûÚ^JkߤO|æÎå ãnúÆdw¢ö{€iöööŽŽŽàèè¸eˇ£Î¥>áÙ‘tÍpèÐ!â¶{÷¥Û¶mk¾!”Ë励MÙ"''§ƒº¸¸ðù|+++Õ’L&sóæÍ­¡A[¦PšŠŽÙ #šþ%¡;_èZ+FÏÖ¢šWˆ—J¯"¹„ºÌIåÏR¢:åŠÄUÔåyÙ¨¦IëZIrbb¢6ß]ãããÃd27mÚëææfeeµjÕ*„ТE‹"""ˆ’ÀÌÌìîÝ»¡Ó§O÷êÕËÄÄÄÝÝ=66!$“ÉvíÚåããÃ`0|}}¯^½ D`m„qqêÔ)ooo{{ûE‹‰D"ÊD²0ñRÅk¢BR9—Ë566&A‰Å⨨(‹eoo%‹‰PtDGGÇŒŒ Ŷ ‚/^×</<<ÜÎÎÎÙÙù믿®««Ó #..ÎÇÇÇÖÖö‡~@)½HU‰T*ݲe‹——ƒÁ2dH\\üë P±EDÕÊÊÊõ4AñøåË—ßyç¿þúKó§"(((((Hù£¢ùL›¡æ:× 5lÀV=ÔµPLÛD.Aue¨ú*ÿ By1èÑ$—Q}ó›,É¥x  ƒÑµñ(3B­¡m$ÚÂ>ŸO •¦M›Æçó8iiivvvD¨Ñ¸¸¸=zÈår¡Phbb²ÿ~6›chh( 8Àb±’““KJJÎ;çââ¢jŸ={–™™ééé¹víZÊD„PUUÕÁƒ yŠ×pïÞ=@ Š‹‹,X0{öl²!?üðÔ)S^¾|™““Ó¿ÿåË—+Z\.W]?„††~øá‡ùùù999={ö$å¹JFhêÔ©<ïàÁƒ„ÝRÌ¥T²cÇÅÎ!ÂÏ)¶ˆÏççååMžÍiMh`é –Z;BrèýÝ¿|*¡¾øOA\ r)õÚ§´ö=ù!-ë&\ q¯€N§Ož<999¹wïÞ—/_&Fж¶¶©©»ï•»!IDAT©ÿûßÿ¢££û÷ïÿí·ßŽ3¦  @qgïÞ½U_äååE\øøø¼zõJC¢:rss=== ¶¶vÍš5ÿý7‘UXXèäôæ¤Rð5[[[‡G 2„L¼uëÖ‚ ÒÒÒ¸\®L&óðð Ò===•”(-bH§.2¥ª±X¬®sÈ)RVV¦YO4>>M÷†ˆ¿Û4èµÅÍPyûŸ„ÏáJœv‡ì•À¬#…Ì10¯Ï ç*èÿ# Ž…ç`T&ŒÏ…OžS——‹… Ý)”† :yòdRRÒСC‰ Ϻº:¹\~ìØ1.—;gΜñãÇs¹\ggçììlò©‡ªVE JàÙ³gÄ÷¸ºÄ177Ÿ5kÖÇIÅd2Éõ6—™™©ôÈ„ ¶oß®hÒâââ$‰¹¹¹ƒƒN/(( Òóóó‰0à •J ¸¸X±*Í¡ªU•¸¹¹5Ø9ŠhÐÓd DzsÂJcCØñˆ€®¡%ü;â§Ë÷>)¯ð2 Îv‡³ÝáþZªùºÁ`ôc›§T~ìϰaäRéúõëÈxâÄ >Ÿ/‹ŒŒÌÍÍ#""–.]š’’RZZúçŸ._¾\µª%K–äååݺu‹8' .±ººšÜÛ©x­„•••@ ÏNž<ùÛo¿}ñâENNÎèÑ£÷ìÙ£T~ãÆiiiaaa999ëÖ­ûé§Ÿ6nÜFFFÁÁÁ‹/~þüùƒV­Zjcc±±±|>ÿ§Ÿ~j°£4(™?¾bç¬Y³FsU”z Yƒ67€6“ª˜6IÕCtÒõͶ…’ o²äRTre„¡D ”9Gw1˜¦ ý!9tPw=þ|333>Ÿ¯X¹‡‡‡±±±OJJ BH,¯_¿ÞÝÝÁ` <øèÑ£ ²FxèС.]º0™ÌE‹‘Û •‘Ö»Fe2™••Õóçω[>Ÿ?{öl[[[;;»yóæÕÔÔ(-›!„ §NÚ¹sgKKËž>}šÌâr¹aaavvvNNN_~ù%¡dÆ 666)))”2ˆk‰D2tèPƒ¡N‰T*ݺu«§§§……ÅàÁƒ‰ñ™j‹QÕ£®+´Ô Ú \#TÌ‹iWÔWÀõO€“¦Ž0©˜biP*©P[w'Œ~””Ü"ß]+W®,,,Œ×þ%7(”^Qtî*£" “R /¼Y¦]c„SáÎWЩõC†Ú°A¢r0¥>Ì‹Á´D"QIIÉáÇt­£cða{ÇÀÞß s÷”¬Îx½^D|¸\.GÍš5+ àÎ;åååiii}úôùüóωb|>ßÇÇgøðáüñÇÓ§OOœ8ѽ{÷€€bB‚òæN^FF›Íf³ÙÏž= ÷öö&Þ®”KBdiЦç`_£˜VãÒ0tÑ=ùªcëZJÓ©««‹8p`¿~ý8 (‹I¥ÒÌÌÌõë×÷ìÙ“N§ÇÇÇ£ aEE…Rጌ &“‰ÔBE¬¬¬ˆ25„ò¾X\\íââ2~üø .Èd”޳õš¶eG½bÅ 2å×_3f ùyˆ755%~Q¥§§Þ¿Ÿ(Ù²óðêä)–,++€²²2Ê\E4hÓs°!Ä´y‡ÐÕQ(Á%˜ Ô±(/‰”M‚žC •ÂÃó²²È_ÄJ…„„òÛG.—¯^½ÚÙÙ™¸utt¼|ù²Ò#{÷î:t(Òb°¦¦fãÆï¼óŽ\.W´sÏž=kКšþ': µµ5Q@,«k¯X,&\‹y{{¿|ù²áÒ'ôÓ–——×ÔÔ(%@LLŒ§§'ù¡úøãcbbÈ?½\.ÿðçM›&—Ë ôÕWo–á]]]?ýôSÕ_W!GGÇK—.)%îÝ»wذa¨†P)ü“†z4h#¡ìƒ×1­†Çø&—Á ŸÁÀn/„dG¸þ‰®e5{{ûîÝ»gdd¤§§WUUQ–A͘1ãþýûÄ-F5j¹0úÝwßÉd2â6$$$!!aóæÍ!!!Ú077ÿ¿ÿû¿¢¢¢òòr"…Ò$%Mð¾XVVöðáÃW¯^õïßßÌÌL…uܺukÖ¬Y=zô¨®®VÍõóó …„CÎêêê«W¯~òÉ›ÿ4mïÞ½)))K–,yùòett4™uðàÁ+W®8;;nÛ¶\®ªª*--UtuMЯ_¿]}ªRSS# …BaII áðÌÄÄD5—D³6E²³³ÝÝÝ—-[öü¹Þûq|ÛæÓPáïèñ]ëh4÷ïߌŒd2™sæÌ¹}û¶jbåìÙ³ùùùééé¾¾¾_|ñ:Öquuõ»ï¾ðçŸ>}útÅŠÀb±êëëÕr‹Râ‹/¾þúëwÞyG&“§ cbbª««'Mš /^]ugõ[¯bôïÐý¨cípª \ „§;A˜¯kYÊ6ׯ±±1qæOOhNÌ6Œ"}úôIMMMNN~úô©··÷ܹsïܹ£®0NŸ2eJdd$á{H›ú ƧŸ~|îܹ‚‚‚ŒŒŒ¨¨(r½yÍš5¥¥¥#G޼pá³gϺví:cÆ ‘H4wî\¢‡Ã)U@ËF)…R­‡¨J³6¹\~ñâÅI“&£Ìôôô„„&“©¥˜·Š.L2ƒB¨¾=G7BбN(PÕ] ´ ôaD¨ˆ†¹tøwPuíÚ5 FlH‹!jéyxJ”d(…Ò`24k#ÐÏyx† £¯ Td‚½Ÿ®u`ÚúékT.—ËåòæÏ"4±X|÷î]ý™H$z8AékObô]­¬¯€»_þ{wÔÄýþü ”p&‚Ê]DÁï£-Øvªß© ‘ŽWÕéŒ: R­Gµ‚WgÔvjQ[+Ô£Š¥g¼ò«òÅ¢ˆAíNEH‚`€ìïµi¾!ĈH€¼_㻟ýìî³;÷ú|·¡!ôm-5ôè ÝÛK. '[$¹½IÎ㈃Ÿ.€±4c„êèkWÕ¦‚+BèÛBé­|šûˆ&¥“]I~¤ “è”îî0udýFWÌLW_ÿVC0È™†EÓ°h""¥„ê.ß×Ô1ÀDý ߇üº®ý]•A\r™J–¨ÞFA"„¥ì(Ug’…%9GÛäú: #ÈbÐóWs…DË´3ÔRKµç©ö<• ¢Ï‰kC¢I4åY;˜:8è‹aÀ±q'ŸÅ䳘ˆHQBõWIZ€,8ðDFFš:èŠŠŠ¦M›¦ÓˆêÁŒµ>¤Òä2·Oû—ŠŠŠ¤¤$MÅ+€3þ|í$B0c ×(÷R׆„Èe:¹Î çâ~þº0P ‚Ùk©¡‡Уz”Cò{ÄLÁŸRÈfS‡½‰@KK-=úƒxCI4ÅÔ¡@/A"0Úí/èI5‰&“h2ñ}L ô ¼5 `´ANô0›ÊÓ©]I6î$œD¢)$šDŽadÑoƸ"xqJ Õ_¡ú«T…šþ¦9%ò  ÿB"x9Íd;\ÿ"Y!9Œ$·w€ƒDðj4WRæp²ä“pâ³ÇŠÎd%0uX  ‰àÕ`ÚIVøìöiýUj©%—FÒй²ÉÔÁÀ¿zEs%5üE ‘µ#jêhà_H„}Cå)ª:EÎä<žœÂ‰kcê€Ì>Ÿè¬¤n£¿wQK q,Éa$ #Èy<¹EÏÓÔÁ d¸"ècÚš¨!Ÿê¯ôÕ_¡±ûÉ+ÎÔ1 dH„}XG+é¼ê YÛ“Ó²²ïå $B€þéÒ zôDDrKNì¿0²ä›:2€~‰ ßR5’ô:I¯SÃu’^§æ âpi^=Y;š:2€þ‰` xZOEäúºžEŒšdd‚R‹!˜¦»t6˜8–dH£Éi 9Á}T!€yh® †|’æSÃu’’JJ. GSN˜:2C"0KOªHv‹8\ò¶ž¥­¨­‰~Dœ^  ·!@' daEÿ!§1ï$$Bè¤MA²B’Ý$YI ¨éobÚÉ’Gá{Èo¥©ƒèaH„ð<-ÔXDÒFc˜žŠbâÚÏ£×#èH„ðÒ.GRÝ%²°&9!û`²AÎãi°ë«Ø›J¥:~üxkkë«Ø8 xQQQ^^^Ú-H„ðÒZR£˜‹¨±ˆÅÔt—:Z‰8ôÖur ïñ½eddÌ›7¯Ç7 f"66öçŸÖnAõ xiƒ]É-’Ü"ŸÍ2¤(¡F1Ùéï_I?²{8ÝùÔÞÞNDøO$Bè]ÖÝDÊ2j,¢¦;ÔXDeGI^LVš/5up`Ž ×q¸$ð# }ïY‹ZEOªôwn©¡¢mäJö#Éa$Y;ôZ˜`& °°&¾¯þEO¨ñUüLm ""ÛaS;œÜ{38à,L€A#)ê¿ÝDsîÓ´_É÷Ãv¤4õ§¥¥¥N=Îäh±±±™{[/33óµ×^sqqY³fÍÓ§Oõ6ÒÿÞ4p?ÐÊÊÊÚÚÚÞÞžmkkKHHpuuuqqIHHhkk›0a±i†ˆNŸ>½víZí-lÙ²åСCìtccãâÅ‹…B¡§§çºuëZ[[» ƒÃᤧ§999íØ±ƒˆtvÔ9’ŽŽŽ;w‚É“'_»vMïq¹\úçPÃñt#võ¬¬¬aÆ]¹r¥«ßƒ! @¿râÄ cþvQll¬\.g/•bbbärùˆèñãÇ999ÎÎÎmmm 䥥«Õj¥R9hРï¾û®¶¶öСC–––J¥òÀ...555gÏžõôô$¢’’6v"**ª¸¸8//ÏÏÏoëÖ­z†illLMMeÃÓž&¢ÂÂB…B¡P(}úŸþiaa!‘HF­Ùfhhhçùûû³ÕÕÕ»Âæ †aš››W®\¹téRÍ¢òòrwwwö ÌÈÈH×/]]]5/ΰòóóÇ÷äÉ“‡vttøú>û4ÅÏÏO'¤Å^ÒiÎ’ŽÎ‘TUUuur4G¤R©þøã???"zn<݈m ìb$## €™ŠŽŽ>sæÌÉ“'§L™ÂÞðliiQ«Õ¿üò‹T*]¶lÙìÙ³¥R©‡‡Ç­[·4kݹs§ó¦Ø‹"*..fÿŽwÕø\<oñâÅwîÜѤ(¡P¨I*2™,//Og•9sæìÞ½[;¥¥¥¥µµµñx±{ðàö¦,, %…Αxyy=÷äh3O·c`Û»JœÆ@"35uêÔööömÛ¶ÅÇdz-'**êôéÓr¹\¥RYYYñx¼¥K—&$$dffÖÕÕ;w.))©ó¦Ö®][ZZšŸŸ¿aÃÍw›šš4ïvjOë°³³S(J¥’;wî§Ÿ~ZQQ!‹ßzë­o¾ùF§ÿ—_~™““Ÿ››+‹?ÿüó½{÷~ùå—Ddeeµ`Á‚5kÖ”••ݾ}û³Ï>‹‹‹spp ¢Ÿ~úI.—ïÝ»÷¹'Ê@$«V­Ò>9›7o6¼)½ñ<7Ã1³ússS ï0þ¡æÒ¡«éU«VÙØØÈåríûúúZ[[fff2 £R©¶mÛæííÍçó'NœÈVðÑyFxðàÁáÇ …ÂÕ«W·´´èmdþ÷œÎƒ1MH ÃtttØÙÙ•••±³r¹|É’%ŽŽŽÎÎÎ+V¬hnnÖylÆ0Lyyùüùó‡ "ÆÿÛo¿iI¥Òøøxgggww÷?þ˜ä‹/¾pppðõõÍÌÌÔ;ÝÖÖ6eÊ>ŸßU$ííí;wîôóó³µµ8q"{}Öùˆ´uާ«Sad φzŸ¢!ô3'Ož4ü½¹ñ6nÜX^^žžžnü*¥¥¥þþþš½ëÌh„¾ &&†ˆNž<©ÝˆêÀµ¶¶ÖÔÔ>|øØ±c¦ŽL ÏÀ]»vmìØ±K—.1cÆËlÇÎÎnåÊ•Æ4BŸ…[£ÐÏôà­Q07zoâŠÌ!€i(•ÊuëÖy{{ÛØØøûûoÙ²¥µõßúRÍÍ͉‰‰£FâóùãÇÿꫯØ/ÿˆˆÃá”––êlM»ò‘££cLLL}}}W»f´ 91Š:™$BÓX½zuAAÁéÓ§+++:”™™™À.R(cÇŽ½víZrrrAAARRRZZZTTTGG‡ j*]¼x±ººzõêÕ]õÔ.ä¤SÔÉ á­QÓøõ×_Ï;ND"‘hïÞ½ñññûöí#¢mÛ¶‰D¢Ë—/³ufÍšrðàA¯áhW>JII™={vW=µ 9éu2C¸"xåêëëŸ~ü8EDDlÚ´I,oذ!11‘ˆÜÜÜ uV),,4\lH»–Óúõë_ýu¯-ùøò…ê 2dëÖ­‰$>>~ûöíAAAUUUÏÝE_ƒDÐÃD"ш#rss¯^½ÚØØ¨·Ã0 .,**bg9άY³4HÄÅÅmß¾]óŽhllì±cÇ’““¼Èãñx~øaUUÕ£GؽE—ôêF£‡Þ¹s§ºº:<<ÜÆÆÆ˜û$B€6jÔ¨ìì쌌Œ{÷î,_¾üÆ:}ø|þ|°`Á‚³gÏJ$’ÜÜÜuëÖiòÜæÍ›ëêê"##ÏŸ?_\\ìãã³páÂÖÖÖåË—³êëëë´è4VVV¦¤¤ :T$½hÑ%ãë©Õê .¼÷Þ{&L`æêÕ«ÇŽ …Ý8c&fdé €>ÂÈ2L}„L&Û³g¯¯oyy¹Î¢ööö­[·†††ÚØØxyy­_¿ž­‘ÄR*•Ÿ|òIHHÈàÁƒ}}}7nÜ8}úô®Æ–Ói´°° ÍËËc7Õ¹èRW¡˜©stêÔ© &¤§§?}ú´'OÙ«„2L0ôDZFÕjµZ­¶´|©O·U*UAAûµC_ÐÖÖö2uáMe˜LÃÂÂÂð ŸÆ°¶¶î;Y >5ì_ðŒÌ!˜5$B0kH„`ÖÀ¬!€YÃçÐ/}ÿý÷¦ú‰Dâãã£ÓˆDýŒ‡‡—Ë5PŸÀ€3fè´`d0kxFf ‰Ì!˜5$B0kÿ?÷ÿ4OMHIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NamedPipeOption__inherit__graph.png0000644000372000001440000001026312502417165032237 0ustar robertousers‰PNG  IHDRÃp,CS&bKGDÿÿÿ ½§“hIDATxœíkPWÇŸ„pBA(’j AEÐÚÑV™ŠJAD(*j´B‘V@[qÐêT¤U´Zµb 7QÁ ÊMQSÊ‹”¢(^h}EÓ‹HP4¤’@’Ý÷þ“‰Iˆ +=¿OgŸÝ}.gÿœs²l²Çxi¨ÆNñš€”„ ¤$9 %!ÈÖÿ!cccoß¾Ýÿq߸\îâÅ‹û9(¥ÿ?»Q(”iÓ¦½ýöÛý÷ ¡¶¶ÖÓÓóĉý×c¬Y³fÉ’%F ýÚc¬ŽEë$9 %!È) AHIrx•tïÞ= …B¢ÃÎÎ΄„„wß}×ÚÚúý÷ßߺu«R©4J&FäMT¹´··O™2åÊ•+Û·o¯¯¯ß°aÑ#GfÏž­R©ô/ Ѷµµ]¿~}?&û 1Î]€×‰-[¶888TTT˜˜˜À˜1cæÌ™ãáá‘““©{<†aOŸ>%Ú #%%¥_Ó}e Ð1‰B¡8pÀÍÍÍÁÁ!%%%77wôèÑ666›6m€ØØØˆˆâÈŽŽKKËëׯ@iiéĉ-,,X,Vnn.`–ššêææfmmíééYYY©9›“Ë©S§ÆŽëèèÛÕÕ¥×ÏÎDší¼¼¼ÄÄDBFVVV yyyz]M›6 †®åG,öÙg ƒÉdÆÇÇËår¢Ž9âææfgg·cÇŽWÚç/ Þï@~~þsY¶l™D"ÉÊÊ€%K–H$’ôôtxòäIUU•½½½B¡Àq|ø7´ì7nܘ_ï:ÉÛÛ»±±±®®ÎÕÕ511Q¯ïa„ãø¿ÿþ;vìØ™3gòùü»wï¹»»øá‡r¹Ü€ÿöövüÙuRHHˆ@ øý÷ßÝÝ݉ =õƒÐ:IûÃJÂq<::zÈ!‰D}V~~¾‹‹‹™™Ù¸qãN:…ãxww÷–-[FM§Ó====ª«¤¬¬¬Q£F1ŒU«VÉd2½FüÙ«®ÙÆq¼££#..ÎÃÃÃÒÒÒÝÝ=99Y*•öä_¡PLŸ>N§kù‰DaaaöööNNNkÖ¬!‚"% Ù %õ†7†„„ôé-hm0¾$ºê=ÆRÒ ¼3)—Ë›››8pìØ1cç‚ø?ƒd5÷,—/_ž2eÊŠ+fÍšõ2~Þzë-.—Û#‰þ_WŒóôm~~>zfòAtlÿ?};(Ç$Ä) AHIr@JBƒqîTTTˆÅb£„~í,ËûÿÖàúÎ$fgkëoì,úF\\\ÿ_V#Ü\lÜXtð`uqñª©Sñ‡>x@ë$C(•XqñU(.®7v.¤$CTUÝ‘HdPXxM¡Ðÿ„?‚)ÉEE׈´¥Ò®ÿü玱ÓÐ %õˆTÚ}îÜM¥R&&”ÂB4Á)©GÊËo©g4¥ûùçß;;»Œ›Ò@)©G ®j~?V©T]¸ çá]R’~Äbieå•Jó ¥°ðªÑð %é‡Ïoв`VUõß¶¶N£ä3ðAJÒÏÉ“W1LÏ=Û3gnꀔ¤—––/_èÞýÇq¼ àŠQRø %é¡´ô†‰‰žžÁ0üêÕ¿…Bô¿g= %é¡°°ž¸¤ ŽCi)šàô0(¿[òª¡RÁÉɆh+•˜\® ÓÍÕ{Ñ]%½ gžÃéÓ7¢£57ï6v"4»!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!HBóeo£F2v:*ÕÒÜ|¤±³ˆ$$$hŠç™ß™üûï¿9Îøñã•b°pòäÉ¿þúKÓ¢ý‹¥ãÇŸ5kV¿%„¤TUUiYÐ: AHIr@JBR‚–’>|èííM–7oo襤$ÍŸ®'׿^Ô!¼5 ܰaƒP(|™är9Ç‹ˆˆˆŽŽ>räˆJÕ«—<÷CÕ0ДD:UUU•••ÆŠžššZXXXPP°wï^Ç¿ûî; ÓéË–-ë«+©TÊårïܹÃår322BCCËÊÊâãã1 Ó{¼P(œ?>Ñ~±ˆ}å5WRPPО={D"‘Q¢ÛÚÚÚÙÙÙÛÛ³Ùìøøø[·nI¥R›¨¨¨¾º:|ø°­­í?üðÁ0™L///×ÒÒÂçóõa˜D"!Ú/±¯ôYIÞÞÞ|>?<<|Á‚G½pá²eË8ûöíÛ±cq¤L&ó÷÷oll€ß~û-""ÂÏÏ/$$äÂ… €ãxqqqxxx@@À—_~yýúu͘kjj‚ƒƒ÷íÛ§P(ôáÙÑ[k$çp8#GŽÜµk—îëYjkkW®\éïï¿hÑ¢£Gö¦:P*•</88888˜Çã)•J ÃŽ?ðÕW_ݾ}[GS© R©ÔöTŽn(++[¾|9á„ÀÂÂâ“O>)++Óëç‹/¾€… jõIGGGJJÊüùó9NZZZww7Quyyyxxø¼yóŽ?Þ7A¨ |sêëëÓÒÒ¢¢¢233kkk³³³cbbrss%ÉÌ™3kjjˆù»¦¦ÆÉɉÍfËåò¤¤¤ =¾cǹ\~öìÙÇGFFæææ._¾|Û¶mºJJJ¶mÛ¶uëÖË—/«/¶®ÑÖÖ6>>žØ«Ù*•úõ×_××ן?^Ó³T*MLLtuuÍËË‹‰‰ÉÌÌ‹ÅÏ­ „Bazzú®]»®]»–““SXX˜ŸŸ•››ÆãñÔQär¹L&“J¥ÍÍÍ{öì;v¬µµõskÔ ÑÑÑ!‰Øl¶Ö¹l6ûŸþÑëç§Ÿ~€¢¢"­SöîÝÛÚÚÊãñ¶oß~åÊ•cÇŽö_ýuÿþý\.7==½½½½ç‹ß#/¢¤¥K—ZZZúùù@HHˆ¥¥¥¿¿?´··{xxÐh´††(//÷óó£P( …Çq™Lfffæïï_ZZjnn^XXíååeoo?uêÔÈÈHÝ@111L&ÓÍÍ-22²¬¬¬'£••U`` ±W³MÀd2£¢¢öíÛ÷øñcµÑÌÌ,;;;66ÖÞÞÞÑÑ:;;Ÿ[ðùüÕ«W;::²X,.—[WWwúôiÍB4ç‘ÈÈÈ€€€ÀÀÀððp‰D²iÓ¦ÞÔ¨¢§ A¡PÔë$½}¥…R©üå—_V­ZåääÄb±>ÿüsõ‘ , ÓésæÌõ´Ø'^äýn–––@£Ñ´Ú@¥R½¼¼.^¼Èb±êëëãââÀÚÚz÷îÝ999cÆŒ ™:uªP(Ôü#c±Xº˜L&Ñ9rdkk«£a‚ƒƒ/^¼øý÷߯^½š°Ðh´¦¦¦;wÊd2WW×^V---‹-RoZYY)•Êž ÉËËsvv6œ›n9º!ètºÝ½{÷&Ož¬yî½{÷ƌӓ]ÚÚÚ0 1b±éìì¬>’Á`hUÚWÈSà¬Y³’““ßyç &888@WW†aIIIJ¥²¢¢bãÆ%%% ãþýû...ÄYZÿ$hjj".̃ìíí  C¡PÖ¯_¿bÅŠ3gΖ®®®¤¤¤¤¤$OOO…BÑÓºU›Ý»wú &ÄÄÄçbÝrtC€¯¯ïáÇß{ï=õRI.—;vL­¹ÞtËСC©TªP($úhnn&DtQŸÒÖ…üÏn'NT©T‡"& P( /^ìììT(4ÍÜÜ|îܹiii555"‘¨®®.##C×UjjêÇïܹ“••5{ö잌gÏž%öj¶5qrrЉ‰9qⱩP(”J%FëîîÎÉÉ©Tڛ꼼¼233=z$Ö­[WRR2oÞ<ÍBÔkó^¢[Žnokk[»vm]]]SSSuuuLL ƒÁPÔ×ÛW2™L3FóööþñÇ…BáŸþ™íëëÛ§l @þ˜D¥Rg̘qþüù3f33³ 6¤§§?~üxĈ›7o633[ºt©J¥Ú¿¿X,&ÉÉÉZ®|}}ãââär¹Ohh(1k@,ïܹ“Xi¶µ ª®®¾zõ*Ðéô˜˜˜äää!C†„„„øøø¬[·®¸¸ø¹ÕEDD¤¦¦®\¹’B¡Ì˜1ƒËåššš*Š´´´§OŸº¸¸lÚ´‰øÜÔKtËÑ –––999<¯¹¹ÙÉÉÉÇLJÃᘚšêõcbb2a„E‹;wN3ÜêÕ«SSS£££MMM?úè#"")<óöR …²yóæ—ª$++«¥¥å›o¾éý)>üôÓOÕwµ6 /d•c”nùöÛoÔc<>»uww …B>ŸÿñÇ“ë1À!YI·oßær¹sçÎ4iÒËø±²² êqðBV9¤[^Éì†xíyå³â) AHIr@JBƒöŠ›Åb :Ôˆ !À××WsÅýÌ=îµk×>xð ß³B >X,Ö’%K4-ÝGÀˆ­“䀔„ ¤$9 %!Èá­ï”KaBRIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldNames-members.html0000755000372000001440000001221512502417163027622 0ustar robertousers MySQL++ Reference Manual
mysqlpp::FieldNames Member List

This is the complete list of members for mysqlpp::FieldNames, including all inherited members.

FieldNames()mysqlpp::FieldNamesinline
FieldNames(const FieldNames &other)mysqlpp::FieldNamesinline
FieldNames(const ResultBase *res)mysqlpp::FieldNamesinline
FieldNames(int i)mysqlpp::FieldNamesinline
operator=(const ResultBase *res)mysqlpp::FieldNamesinline
operator=(int i)mysqlpp::FieldNamesinline
operator[](int i)mysqlpp::FieldNamesinline
operator[](int i) const mysqlpp::FieldNamesinline
operator[](size_type i)mysqlpp::FieldNamesinline
operator[](size_type i) const mysqlpp::FieldNamesinline
operator[](const std::string &s) const mysqlpp::FieldNames
mysql++-3.2.2+pristine.orig/doc/html/refman/cpool_8h.html0000755000372000001440000000545112502417162022565 0ustar robertousers MySQL++ Reference Manual
cpool.h File Reference

Declares the ConnectionPool class. More...

#include "beemutex.h"
#include <list>
#include <assert.h>
#include <time.h>

Go to the source code of this file.

Classes

class  mysqlpp::ConnectionPool
 Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance. More...
 

Detailed Description

Declares the ConnectionPool class.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldNames.html0000755000372000001440000002453212502417163026177 0ustar robertousers MySQL++ Reference Manual
mysqlpp::FieldNames Class Reference

Holds a list of SQL field names. More...

#include <field_names.h>

Inheritance diagram for mysqlpp::FieldNames:
Collaboration diagram for mysqlpp::FieldNames:

Public Member Functions

 FieldNames ()
 Default constructor.
 
 FieldNames (const FieldNames &other)
 Copy constructor.
 
 FieldNames (const ResultBase *res)
 Create field name list from a result set.
 
 FieldNames (int i)
 Create empty field name list, reserving space for a fixed number of field names.
 
FieldNamesoperator= (const ResultBase *res)
 Initializes the field list from a result set.
 
FieldNamesoperator= (int i)
 Insert i empty field names at beginning of list.
 
std::string & operator[] (int i)
 Get the name of a field given its index.
 
const std::string & operator[] (int i) const
 Get the name of a field given its index, in const context.
 
std::string & operator[] (size_type i)
 Get the name of a field given its index.
 
const std::string & operator[] (size_type i) const
 Get the name of a field given its index, in const context.
 
unsigned int operator[] (const std::string &s) const
 Get the index number of a field given its name.
 

Detailed Description

Holds a list of SQL field names.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBSelectionFailed-members.html0000755000372000001440000001141312502417163031052 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DBSelectionFailed Member List

This is the complete list of members for mysqlpp::DBSelectionFailed, including all inherited members.

DBSelectionFailed(const char *w="", int e=0)mysqlpp::DBSelectionFailedinlineexplicit
errnum() const mysqlpp::DBSelectionFailedinline
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBDriver-members.html0000755000372000001440000004725312502417163027266 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DBDriver Member List

This is the complete list of members for mysqlpp::DBDriver, including all inherited members.

affected_rows()mysqlpp::DBDriverinline
client_version() const mysqlpp::DBDriverinline
connect(const MYSQL &mysql)mysqlpp::DBDriver
connect(const char *host, const char *socket_name, unsigned int port, const char *db, const char *user, const char *password)mysqlpp::DBDrivervirtual
connect_prepare()mysqlpp::DBDriverprotected
connected() const mysqlpp::DBDriverinline
copy(const DBDriver &other)mysqlpp::DBDriver
create_db(const char *db) const mysqlpp::DBDriver
data_seek(MYSQL_RES *res, ulonglong offset) const mysqlpp::DBDriverinline
DBDriver()mysqlpp::DBDriver
DBDriver(const DBDriver &other)mysqlpp::DBDriver
disconnect()mysqlpp::DBDriver
drop_db(const std::string &db) const mysqlpp::DBDriver
enable_ssl(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)mysqlpp::DBDriver
errnum()mysqlpp::DBDriverinline
error()mysqlpp::DBDriverinline
escape_string(char *to, const char *from, size_t length)mysqlpp::DBDriverinline
escape_string(std::string *ps, const char *original, size_t length)mysqlpp::DBDriver
escape_string_no_conn(char *to, const char *from, size_t length)mysqlpp::DBDriverinlinestatic
escape_string_no_conn(std::string *ps, const char *original=0, size_t length=0)mysqlpp::DBDriverstatic
execute(const char *qstr, size_t length)mysqlpp::DBDriverinline
fetch_field(MYSQL_RES *res, size_t i=UINT_MAX) const mysqlpp::DBDriverinline
fetch_lengths(MYSQL_RES *res) const mysqlpp::DBDriverinline
fetch_row(MYSQL_RES *res) const mysqlpp::DBDriverinline
field_seek(MYSQL_RES *res, size_t field) const mysqlpp::DBDriverinline
free_result(MYSQL_RES *res) const mysqlpp::DBDriverinline
get_options() const mysqlpp::DBDriverinline
insert_id()mysqlpp::DBDriverinline
ipc_info()mysqlpp::DBDriverinline
kill(unsigned long tid)mysqlpp::DBDriverinline
more_results()mysqlpp::DBDriverinline
next_result()mysqlpp::DBDriverinline
nr_code enum namemysqlpp::DBDriver
nr_error enum valuemysqlpp::DBDriver
nr_last_result enum valuemysqlpp::DBDriver
nr_more_results enum valuemysqlpp::DBDriver
nr_not_supported enum valuemysqlpp::DBDriver
num_fields(MYSQL_RES *res) const mysqlpp::DBDriverinline
num_rows(MYSQL_RES *res) const mysqlpp::DBDriverinline
ping()mysqlpp::DBDriverinline
protocol_version()mysqlpp::DBDriverinline
query_info()mysqlpp::DBDriver
refresh(unsigned options)mysqlpp::DBDriverinline
result_empty()mysqlpp::DBDriverinline
select_db(const char *db)mysqlpp::DBDriverinline
server_status()mysqlpp::DBDriverinline
server_version()mysqlpp::DBDriverinline
set_option(Option *o)mysqlpp::DBDriver
set_option(mysql_option moption, const void *arg=0)mysqlpp::DBDriverinline
set_option(unsigned int option, bool arg)mysqlpp::DBDriver
set_option_default(Option *o)mysqlpp::DBDriverinline
set_option_impl(Option *o)mysqlpp::DBDriverprotected
shutdown()mysqlpp::DBDriver
store_result()mysqlpp::DBDriverinline
thread_aware()mysqlpp::DBDriverstatic
thread_end()mysqlpp::DBDriverinlinestatic
thread_id()mysqlpp::DBDriverinline
thread_start()mysqlpp::DBDriverinlinestatic
use_result()mysqlpp::DBDriverinline
~DBDriver()mysqlpp::DBDrivervirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadIndex-members.html0000755000372000001440000001124612502417163027274 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadIndex Member List

This is the complete list of members for mysqlpp::BadIndex, including all inherited members.

BadIndex(const char *what, int bad_index, int max_index)mysqlpp::BadIndexinlineexplicit
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadIndex()mysqlpp::BadIndexinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption__inherit__graph.png0000644000372000001440000001431712502417165032600 0ustar robertousers‰PNG  IHDRÈ»¯ŒF¦bKGDÿÿÿ ½§“„IDATxœíÝ{Tgúð7H×jAP9 êªUÏŠJQ¤ºmñ‚H½ ë×K´z,R~¬‚këjE®Š h¹eÕR‹J‹å"("jõp Š@À(`H —ùý1ÝlIˆ–q’öùÿxçÍð¾ÏL¾ÎL& P0 CŒ4=² L,@  BŸ¬‰[ZZ¶lÙ" É*àÏÈÈ(11qܸq¤ÌNZ°*++¯\¹âïïOVxyyy!!!º`árssÉ-àŒB¡8;\cB@°! X€,@ˆ?u°Gö ···—ÉdN:ÕÔÔtÖ¬Y‹Å¤TBº?u°FÇ›9sfuuuBBÂÝ»w÷îÝ›½xñb‰D¢t}‹E§Óñ¶¹¹ùž={Þa±„#ùvÃIll¬••Õ7¨T*BhâĉK–,qwwÏÈÈØ´iÓÐõ¥Ré«W¯ð6N§åLÛX åôéÓ®®®VVVñññ™™™ŽŽŽfff_|ñB(***44_“ÏçÓh´{÷î!„._¾ìááaddäää”™™‰’J¥'Nœpuu555;wnII‰ü©?Nš4‰Á`DEEõ÷÷+íDƒO[òí¬¬¬èèh|ˆ÷à“"„JJJä·]“]Gb°´ýTˆ255E(´BT*uÅŠ/_¾¼~ýzpp0BÈ¢¤¤¤²²ÒÁÁaÁ‚·nÝÒÓÓc±XÓ¦M“éáá1t"¼1yòäÖÖV5C™››ÛØØÔÖÖ*ô×ÖÖΘ1Có¡:;;%É„ ðEgggÙšvvvòÛ®åt Xêùûû_¼x177wÞ¼yø N H¥Ò¼¼¼®®®ÐÐÐ?þ¸««ËÞÞþþýû²ŸzôèÑСðÃB¨¾¾Uu*+ÿ°··7!!Á××W󡬭­©T*‹Å›ššìííñ¶žžN=Yd*5?ÊûJÛb±˜Á`X[[gddà ##£üü|‡“ššjdd$<È`0.]ºÄf³‹ŠŠ”^cyyy544TUU¹¸¸DGG+íÄT\caöúõëI“&-X° ¨¨¨¾¾¾  ÀÍÍí¯ý«P(T3>ÇÃ_cy{{³X¬¸¹¹á“ªÚêw\c©4l°0 ‹ˆˆ=z4—Ë•|„ †††“'O.,,Ä0l`` 66ÖÑÑÑÄÄdîܹçÏŸ¬ôôôñãÇÓéô­[· ¥ØàÈ·1 ãóù;wîtww§Ñhnnnqqq}}}ªÆ‰DóæÍ311Q§««+$$ÄÒÒÒÖÖvûöíø¤,Mi,MìÛ·/((è~D! ‹j:ßÎ¥9rƒ¥Û7H…Ba{{ûéÓ§/\¸@v-`ºâöíÛ3gÎܸqãÂ… Ï8cÆŒ פsÇÿc£`$}a5777 €¬Ùÿ (JNNÎêÕ«I™]·X@kA°! X€,@’o7¤¦¦’[ iÁ²··§R©:ô"œFó@õõÕ‘]ˆ¦¨Tªì}Æw´Û ºE"‘Nz!TW«§÷‡úp:AàK#]]½]]üòòF²kÑ ,äåÝÑ××30ÐËË«&»ÝÁžP(ºzõ¾X,‰¤W¯Þ EdW¤ Xûyó±,LB¡èæÍÇäÖ£ XÃûî»;²¯ÐP(”ï¾»Cn=:‚5 .Wxýú¯‰_”H¤×¯ÿÊåÂï‹k?üð@*tGF*Å®]{@V=º‚5Œüü; wú0 Ëχ³á0 Xêp8¼òò©T*ß)•båå ¬ªtK+Wj•Þg§P(W®ÜÚd XêäæÞQ¸ÀÂI¥R¸SªK¥¶¶îººç*‚…îßÞÞÞóî«Òºý-B½|É·³3—]`á÷HŒ~û†»žžÞË—<;;sÒêÓnðéM…‡ŸE¥¤¬#»ݧB@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@-ú~ŽŽŽOŸ>%» •ôõé!±ø%Ù…¨äèèÈb±È®â7Z, …²}ûö¹sç’]ˆNª¨¨8zô¨ö<›ÚõËmçÌ™ãïïOv:I{"…ƒk,@  ‚¡cÁ¢È±°°X½z5‡Ãy£e.õ÷ëííe2™S§N5555kÖÁƒÅbñ»/C éX°Bååål6»½½½¸¸¸µµuëÖ­dUÂãñfΜY]]p÷îݽ{÷fgg/^¼X"‘(]ŸÅbÑét¼mnn¾gÏžwXì;‡i „PNNΰë444ÈKKKÍÌÌÞh–†††‘Úê]»vyzzŠÅbYŸÏÿý÷ÓÒÒˆžz¨œœ­z6uïˆ%J¥2 ¼ÝÓÓ³~ýz:îàà°k×.¡P¨ªSF$1™LkkkƒÁd2E"BèÊ•+Ó§O§Ñh¶¶¶ñññøš %;;ÛÕÕuìØ±‡Æ;³²²¢££©Tªl@ccc&“™••…Ÿé 'MšÄ`0¢¢¢úûûçÌ™ƒ²±±AƒO…J‹T:£.!;Ùÿƒ4;bÕÖÖòx<.—ûäÉ“… ÆÆÆâ{{{755ÕÕÕ¹»»ÇÄÄ(í”?l$$$¬\¹²¥¥¥®®î/ùËçŸÎår 7nÜØÚÚš••…zñâ>ïªU«º»»ÓÒÒB¯^½êîîFq8… ËÊʬ­­ñY|||êëë+++¦–o+­|èŒê÷Œ¶±´©Í‚%o̘1ø™q``€J¥>|ø_­  ÀÙÙYi§ü3:yòd6›·‹‹‹§M›Ößßÿøñc>Ÿ/‘H~þùgôß3/B¨¤¤ŸïT¬ŠŠ :ŽÏRWW‡wæää(L-k+-RéŒê÷Œ¶K»ÞÒÑDCCƒ³³3B¨¯¯ïßÿþ÷‡~øìÙ³ÎÎN‰D2aÂ|ggçÖÖV¥òC=}úÔÖÖV¶hfffhhX__Æçó§OŸ.¿²BÈÀà·¿WhnnnccS[[»hÑ"ùÕjkkg̘·]\\ðÆäÉ“¦–QS¤ÂŒºE‡¯±h4ZXXØóçÏ_¼xammM¥Reïí755ÙÛÛ+í”?´àÿú»»+++ÁêÕ«™LfMMÍÉ“'åWÖÓSÜWÁÁÁ±±±ò¯{{{|}}ñEü°„ª¯¯ÇS2”š"‡Î¨Ct¯t‡ÓÑÑÑÑÑÑÒÒ’ðÞ{ïYYYDEE577?|øpÿþýÁÁÁJ;å‡Z±bÅÞ½{Ÿ={VWWçë뛘˜Øßß?00`hh(8€âñTþµúèèè/^x{{ÿðà /^œ={¶½½}dd$¾Â¶mÛ«««÷íÛ·víZ¼“ÏçË2l‘ºŠÜ3±<ô†×Xzzz•••øC]]]!!!–––¶¶¶Û·oJ;å/t¸\î† ,,,,--7oÞÜÛÛ‹aØ×_=vìØ÷Þ{ïäÉ“ |›C¾ÍçówîÜéîîN£ÑÜÜÜâââúúú°ÿ^B¥§§?žN§oݺU ˆD¢yóæ™˜˜`ƒ/Þ•V®jFU´íK›JÑ Xº‚Ð[VJi[°tïTt‹cÆŒ '» 2A°Á`0’““É®‚L,@  ‚¡]ß+œ2eеµ5Ù…(‡a„…¢-»KAgg烴çÙÔ¢7¡wìØñüùs²«PéÉ“±a“'w“]ˆr‹/&»ŠÿÑ¢#–6ëéé›2å …òðáÿ3šìrt\ciäÚµ‡†¤RiQѲkÑ ,ääTa¿½›YEv-º‚5¼ŽŽ×·o³0 “J±Û·Y¯É®H@°†wùr-•úÛŽ¢Rõ®\¹On=:‚5¼¼¼jÙÇDÅbi^^5¹õèÖ0X,ÎÇmr/±Z››ßìë×B¬aÞ30 Ê÷P ï‘U®€` #7·J$ô•y‘H¯ ‡ÁRçÑ£¶gÏ^ íöìÕ£Gmï¾ÁRçâÅ…ó ÎÀ€zñbÍ»¯G‡@°T’J±¼¼j…ó N$’äåUK¥ðn˜J,•îÝkápxTCC}…T‡W[ÛBvÚK‹>Ý m,¶lñ–-VT4!„æÎ ë±·· ¡,ŸnÐTxøY„PJÊ:² Ñ p*„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚1è¯Ý¼y³±±‘Äj´Y^^BÈßßžìB´”‹‹‹——×ÿ–19úúð›#Á[Ò××—ÏÒ #…B9pàÀÂ… É+褟~úéË/¿”Ï\cB@°! X€,@í V[[Û —¬¿——W[Û;úSJ )))00pÉ’%k×®ÍÈÈ tF¡P˜œœºtéÒˆˆˆììlÙ_ëTodw²*pad?~¼³³366ÖÊʪ¥¥åøñã</**Š éúúú"##-,,ÂÃÃíììš››O:uçί¾úJOOÉÁ‚ÍfGDD"„LLL *LF»ŽXºë—_~ sqq177÷ððˆŠŠ*++#nºsçΙ››ýõ×|ðƒƒƒ§§grrrGGGQQ‘Òõ¥R)—ËÅÛfff›7o&®6ÜËËË«¨¨hݺu~~~çÏŸÿñÇ—-[vúôi„Ð7ß|søða|M@àëëÛÐЀ*// õññ úñÇB†]¼xqݺuK—.ݲe˽{÷äÏøáº¬¬,$$dùòåß|óH$RÚ‰Û•ç1 ûÏþ³~ýúeË–íØ±£¢¢_ÇËËëúõëëÖ­ûä“O¾ýö[|e>Ÿÿé§Ÿúûû'%% àcÖÔÔ, ¯^½zîܹM›6eff~öÙg‡:Ñ¥K—:tðàÁÛ·oã{_i§¹¹ù®]»ðGåÛ2ßÿ}ffæ–-[Ο?œ˜˜({è—_~ILL OIIáñx¡cÇŽq8œäää„„„êêê .àkæææ~þùç...ùùùl6;%%嫯¾ª©©ÉÈÈ@1™ÌšššU«V1™ÌœœœÎÎN5Ò××íââ’••™––ÖÓÓ“ŸŸ_ZZzèС£G>þ<++ ÿÙ¡Óñùü®®.ggg…ÍtvvniiQ:ãÉ“'B ?¢jc‡î–7õ6Á  Ñh>>>¡   æëë‹âñxîîîúúúuuu¡ëׯûøøP(‘H„a˜@ 044ôõõ½|ùò¨Q£¾ûˆOOOKKËÙ³goÚ´ièD‘‘‘®®®›6m*..VÕill¼lÙ2üQù¶ >׬Y³ÌÌÌf̘±aÃÙC~~~&&&K–,Aq¹\±X|óæÍ­[·ÚÚÚ:99mذA6ïæÍ›§OŸnddTTT´mÛ6ƒáää^UU…š9sfNNαcǦL™ríÚµ   7n¨ÚCCÃS§NEEEYZZ2 „PooïÕ«W7nÜèäääèè¸gÏ777üg•N§…B‘J¥jv5«°[TͨÆÛ\¼Óh4„þÆ¢|!¤§§çééYZZêäät÷îÝ;w"„LMM=šŸŸŸ‘‘1qâÄ   Ù³g³ÙlùÿsNNNC'rppÀãÆãp8j:Õkoowtt”-¾ÿþû²6N—¯¿»»[*•ÚÙÙá‹ööö²)Ƈ7:::V®\)ÁØØX(–——/\¸ÐÕÕÕÕÕ5$$äÌ™3ÉÉÉÞÞÞJkÖ××omm=räˆ@ pqqÁêìì”­6~üøñãÇ«šÎÄÄdìØ±3fÌßÌÆÆÆ‰'j¾—Ôl¬Âny #ñ¾páÂ[·nýôÓOS¦L±²²Bõ÷÷K¥Ò˜˜˜Ë—//]ºtß¾}<N§755É~êéÓ§C‡jmmÅÏŸ?·´´TÓ©žµµuss³lñÙ³g²6…B‘_ÓÂÂBOOÍfã‹íííø.Fr{ÙÌÌ,++«¤¤¤¤¤äòåË'OžÄ0,..ŽÅbÉÆœ5k–ü‹…šûûûcbbÖ¬Y“ššúüÈÒÒ²££o766ÊN…C§C-Z´èܹs²ãBH(^¸páƒ>Ð|/©ÙX…ÝòF>X‰äìÙ³ø¹!D¡P˜Lfiiioo¯H$Ò××5jÔG}”””TVVÖÕÕUUU•šš:t¨'N´µµ=yò$==}ñâŪ:ñóþ¨|[ÆÏÏ/%%åÎ;\.÷Þ½{gΜQµãôõõ½¼¼Ž?Îf³ñ×ð‹-RXÇÓÓ3--­³³“ÅbíÞ½ûÒ¥K£GöññùòË/+++Ùlö£G’’’d‡«¡5‹D"±X¬¯¯?00€_¢õõõùøø¤§§777777;vLv•6t:„кu뺻»wìØQUUÕÚÚzëÖ­ÈÈH:þé§ŸªÙuàM7ö­ü},==½ùóç_»vmþüùx¡¡áÞ½{SRR^¼xaggwàÀCCÀ€‰D’˜˜ØÓÓƒ_=ÄÅÅ) µhÑ¢;w …Booïàà`ü@­Ð‰êéé9rä~i%ß–ñóó“H$G}ýúµ››[DDÄ¿þõ/UõoÛ¶íĉ~ø¡l^™ÐÐÐ'N„……Q(”ùó燇‡#„vïÞ™™™––ÖÖÖfaaáååµ~ýzUbhh7zôè   ooïÝ»wçææ …B&“) çÌ™ƒ«j:–ššš‘‘‘œœÜÞÞnkkëíííïïo`` tF*•:eÊ”•+W~ÿý÷ê7VÓ§y8„|l&==½££cÿþýšÿH[[ÛÚµkKJJ”.ªéÔDEEƒÁ˜0á·¿º[ZZЇàMÇy o]³͈ÞÁÇfØlvQQÑßþö·‘ù÷`±Xÿüç?úûûýõ×Ó§O}åFÖŸ ?~üÅ_|òÉ'Ó¦Mû=ãüñÇštjbÍš5B¡pÿþý===¶¶¶}ôÑÛóÞºfšQ)ø)ð RðŽ@°! X€,@ †ü— ©T*Ùå]E¥R}ùYþ±›7o*| Y[[Ë/ºÀHk,@  ‚ñÿ§6m/ֻܹIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x62.html0000755000372000001440000001423612502417164024657 0ustar robertousers MySQL++ Reference Manual
 

- b -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Exception__coll__graph.png0000644000372000001440000001376112502417165030437 0ustar robertousers‰PNG  IHDRÁ€=$šbKGDÿÿÿ ½§“¦IDATxœíy\GÿÇ¿@ r B#"Êáõ{¬õ(UQ*x­HA-Ö ðôÑ*X¥*>`Åz¶*‡ˆ·Äb¡x+Zy È!B8$‰\ !›ýý±¾b„„lûþkvvvö³3ŸìLvgg À„D(D Q{H‘È é!y!=D"/TÉ >Ÿ_XX(‰ˆR£¾èèè ²Íu½|ùÒÑÑQ¼wذaÝÐóÑâñx"‘èܹsl6{éÒ¥žžžl6[2ÍÓ§OÅ›ÿý·ì MLLÄ?t‡“›› ååå111“'O^·nžÌ¢´´?yòd×®]2ü÷xÁµÇÜÜ\CC£¸¸ß|ùò¥¥¥%–Z+*B§U€#õÐæº¬­­%+(??¿z>º¤qss»páB}}½@  Ñh:::ø®ÆÆFX¶lYhhhZZZUUÕÕ«W·mÛ†ï}ûömbbbûð¬Y³6nÜXVV–——çîî+‰üýýW®\yæÌ™›7o¦§§€ŸŸßæÍ›ñ[}pppYYYG‡ãñ«V­***ºÿþ¦M›.\(©P F›?þ?üPRRòüùó-[¶øúú~l(ŸN« ë|ÿý÷aaaׯ_¯««ËÌÌŒˆˆPFŸðß~ûmРAšššöööiii†µ¶¶Ž7NOOÃ0¡P¸wï^[[[]]ÝÏ?ÿ¿1´i˜%ÃõõõK–,122266 ljj:tèÐðáÆa)))t:Ífóùü ‡ÓÑáx扉‰ÖÖÖ&&&+W®äñx’ %ÏÎf³ýüüŒétúš5kx<ÞoßÛ@õúCXgUÐQQ·¿.E£££ d``àîîž––fjjÚéÙåíS«>’¥¦”ï!E‘žžþäÉñæùóçñÿ4²‘·OMÒ›ÈËË[¸pá£Gš››sss·nÝð±™Hƒ¦îèëë­B= knnöòòª­­e0þþþÝ(º^è!33³øøx¢U¨T*uçÎ;wî”'²-#‘ÒC$òBzˆD^H‘È‹”>µê#'F @TOO“XûtX6|>¿ÛUÐÂEµ 5(¦+|à!---A ”,¢Û¤§¦¦®]ûo‚GQŠ?Ø“?ŸÚÚÚ†††>ƒº+ÚìLM›4ãžýRA--­÷›˜:Ï?”šúhÅŠ”Èȹ Œ!Zaù"æ–’Ræ[DYòçp M¥vQÔ»?äìü) ¨($ä·íÛÓD"5þ=t›æ7­ýÿ)˪Ck-%ÔÝCŸ}f¢£óõÍ7qõõZ%bÿ ¶0wÖõ>mÿÅ+š®}4o9pÔû½½ æÎmllÉÈXC¡ôª)ϸ%ü ßäYcåðªL#ÞîCRÙ¹sö‹•½ïiuNT¹C{Ø<šu®×zhÈ~~cwíJïMoòK3¹÷Æ®ÿQ¥›k¯õ„†ºcìÛwh! ƒñ•6_AX×G*½¶?„sútî† ç®] :Tú³lõâmY‹†¢7€àñãmèå‰0OÏŸuuµ~ÿ}ÑZz-½¹- ùñÇ999E—.=í<5I·èå€áÃ?;÷_©Íͽç¾JÑû=›7{66¶ÄÄÜ"ZHï¤OxÈÄDoݺ©‡gö¡Öʤ—÷©Å…¢©SúôS㤤¥Dkù(E¡öS韺J‹S T*eûvïëןߺ¥°•À½ƒ—‚>î³cAŠŠŠzHTúЇ`ܸÁžž#¶nM„Dké5Ïšò“ß8/2ï‰Ì¸LOòDD̬©©OHøƒh!ƒ‰ ;²ÜjŒ>c²QOä¯Àezú–‡ètÃààI?ÿ|£ªê-ÑZ:់oØ…¼1k­ÚÄþùçÑÑÑÀf³)JHH (jdd”‘‘§¹~ýº­­­‘‘ÑîÝ»ñ˜K—.9RGG‡N§ãËI®#/ ž¬Våiii;v׊¿-Dš)S¦ðùü‰'ÀرcdCÖCCÃ}ûöùúúÚÛÛÛØØøøø¸»»ÛØØŒ7ŽNWÀ°ª¾ò®C*))V®<™ž¾zäÈDkQcú´‡`öì½xñ‡¾³â½Âé»mή]³Ÿ>}uþü¢… Ò]<¼¯{ÈÞžîç7vçÎôúz>2jž55T6D®£?\]<¼¯{¦‰DØÏ?öù*À˜[Kï¬ J€œõë=³òóY„xz¼ªùMë˜5ê:E é!€ Æ89Y…‡§*ÿÔ •‚§ÇªG|;@×\µ¾øé:¤‡(dÇïììÂË—ó”|ê{*tІ/î‘ABÊôÐ;F¶™3çÿ¶mKQæç•Šor\V[QhjüdôÐ{¶lñlläÇÅ)iþF‘ˉ,8ÎÀz‚rÎØCz©é'kÖLÍ|õJ1üdëk¥ÐµíJ‹éëϩۀþammòË/þDkQÈûÐP©”íÛ½®^}–™™O´µ¼I! àX~>‹É k?e1I{Èûvìð®®~{ô袅¨¤‡¤`aa¸|ùWÑÑת«UýóU€ôt‚ƒ'õï¯×‹'(V ¤‡¤£¥Eˆ˜yáÂCÅ.…öüLMÕU}+¤‡:ÄÝÝÉÕÕ~Û¶ÉõÑä¡î^îþŠúò…ä¦:’Åþã]PP}êT®ò ;²ÜÔAÇn†±rS%HÉâ³ÏL&ìÙ“Áf7É™UÑUvͳÆ/ÖÚ~Éu‡ôP'¬^í¦¥EÛ»÷Š<™Ñ»ÑvžÆ„¬·ÚÓê==­-[fœ8‘óäI÷Wÿx|´J(ý+Xí_I…ôPçÌš5úßÿflÛ–Ú½gúÜRþóÓ5£¾£÷ëß;Ÿz“êAvìð~ü¸,9ùa7§jS†Ì4v˜§*K´(ò}YWÙ°áÜ•+ÏîÜÙ¤¯¯M´Õ‚¼u• ¦£¨èàÁD Q9HuCC°0„„?ŠŠjˆÖ¢ZmÙG ¦÷8 ™¦ȘëD•¡Ñ̨ÔÞö ¹=¡¡¡]¯JÂþm–••Í;wذaD éˆsçΕ––v==‘O,† öå—_(€D*øœ]‡ìS“È é!y!=D"/¤‡Hä¥w¾ì  .d2™ ÉÍÕÕµ}¤¢2—b¯¢{ô])œ˜˜…L³Ú),kÙ²eiii §§çã㣄“Ê€ôÂ044ìß¿¿N$‰êëëñ°A`` N*•º^¹reñâÅ^^^§OŸ¾~ýºÏôéÓùå8tèPTTž’Çã¹»»ãs¿çää,]ºÔÍÍmÁ‚ׯ_ ÃRRR/^ìááñý÷ß?~üX²é©¨¨puuÍÎÎöóóóöö>tèPkk«ÔHqbÉe_BNNΜ9sð9ÅoݺåççÇçóQ=vìØüùó½¼¼vïÞ-žh\(ÆÇÇ{{{{{{ÇÇÇ …B©2V¬X³fÍj£¡±±qÏž=3gΜ;wn\\œ@ ÀËðæÍ›‹/þúë¯Ïž=« šù•ö<|ø0...000!!᯿þ:zôèòåËOœ8Q__?qâÄììl|e“ììl:nkkËçó#""¼¼¼Îž=ëççÅçó322~ýõ×€€€'N,Z´H¼"“$©©©»wïþñÇïÞ½{úôéŽ" ñåžÚ„€Ïçó>ÆŽ;zôèØØX‡»yófmmíóçÏgeeíÞ½;::º¼¼_ËΟ?Ïb±Ž9²oß¾G;vLªŒÃ‡@rrr›K8pà@mmm|||ddäýû÷Ïœ9ƒÇÿù矱±±AAAGŽϯ@TÝCóçÏ×ÑÑqss€ èè踻»@CCƒ££#•JÍËË€›7oº¹¹!ÒÚÚŠaÇÓÔÔtwwOOO×ÒÒºpá²eËÆollìââÐþDË—/·²²:th@@À7:ŠÔÕÕOJ/€€€ÁãW®\ùèÑ£™3gÚÛÛ@FF†¿¿?ƒÁøì³ÏÖ¯_ïàà€§¼råʪU«ÌÌÌ FPPн{÷dhkƒP(ÌÌÌ\¹r%Ng0K–,§ôòòÒÓÓ›:u*ˆA¢êý! R©mÂ@¡PÆŸ••Å`0>|¸nÝ:øä“O¢££ÏŸ?ìØ1;;» ¸¸¸°X,[[[qž £ý‰¬¬Þ­67pàÀÚÚZ‘qòäIKK)#¦õôôf̘qüøñ}ûöá1ÕÕÕâœ%—Ú¨ªªš={¶ø@]]Ý®Ëàp8"‘_1,--Å)ñ57Åå¦pTý>$›/¿üòÎ;·oßvrr255€––‘H‘žžîáá±iÓ¦††“—/ß®*õ…âëׯñ@yy¹±±±ŒÈ¥¦¦&%%eôèÑxÆÆÆUUUx¸¨¨HÜ–œÌÉÉ77·ÄÄÄ’’’’’’TWWã9Œ?>!!¡ººº¸¸8,,,55U†6¼¿%†J¥ººº5aϩ׮][^^NÔÙIdÀ`0æÍ›×õôä÷ö$òBö‡Hä…ô‰¼"‘ÒC$òòÿŠñ\¥ö…IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classes.html0000755000372000001440000004727212502417164022520 0ustar robertousers MySQL++ Reference Manual
Class Index
A | B | C | D | E | F | G | I | L | M | N | O | Q | R | S | T | U | V | W
  A  
DateTime (mysqlpp)   MultiResultsOption (mysqlpp)   ReconnectOption (mysqlpp)   String (mysqlpp)   
DBDriver (mysqlpp)   MultiStatementsOption (mysqlpp)   RefCountedPointer (mysqlpp)   
  T  
AutoFlag (mysqlpp)   DBSelectionFailed (mysqlpp)   MutexFailed (mysqlpp)   RefCountedPointerDestroyer (mysqlpp)   
  B  
  E  
mysql_type_info (mysqlpp)   RefCountedPointerDestroyer< MYSQL_RES > (mysqlpp)   TCPConnection (mysqlpp)   
  N  
ReportDataTruncationOption (mysqlpp)   Time (mysqlpp)   
BadConversion (mysqlpp)   equal_list_b (mysqlpp)   ResultBase (mysqlpp)   tiny_int (mysqlpp)   
BadFieldName (mysqlpp)   equal_list_ba (mysqlpp)   NamedPipeOption (mysqlpp)   Row (mysqlpp)   TooOld (mysqlpp)   
BadIndex (mysqlpp)   Exception (mysqlpp)   NoExceptions (mysqlpp)   Query::RowCountInsertPolicy (mysqlpp)   Transaction (mysqlpp)   
BadInsertPolicy (mysqlpp)   
  F  
NoSchemaOption (mysqlpp)   
  S  
TypeLookupFailed (mysqlpp)   
BadOption (mysqlpp)   NoTransaction (mysqlpp)   
  U  
BadParamCount (mysqlpp)   Field (mysqlpp)   Null (mysqlpp)   ScopedConnection (mysqlpp)   
BadQuery (mysqlpp)   FieldNames (mysqlpp)   null_type (mysqlpp)   ScopedLock (mysqlpp)   UnixDomainSocketConnection (mysqlpp)   
BeecryptMutex (mysqlpp)   FieldTypes (mysqlpp)   NullIsBlank (mysqlpp)   SecureAuthOption (mysqlpp)   UseEmbeddedConnectionOption (mysqlpp)   
  C  
FoundRowsOption (mysqlpp)   NullIsNull (mysqlpp)   SelfTestFailed (mysqlpp)   UseQueryError (mysqlpp)   
  G  
NullIsZero (mysqlpp)   Set (mysqlpp)   UseQueryResult (mysqlpp)   
CommandLine (mysqlpp::ssqlsxlat)   
  O  
SetCharsetDirOption (mysqlpp)   UseRemoteConnectionOption (mysqlpp)   
CommandLine (mysqlpp::examples)   GuessConnectionOption (mysqlpp)   SetCharsetNameOption (mysqlpp)   
  V  
CommandLineBase (mysqlpp)   
  I  
ObjectNotInitialized (mysqlpp)   SetClientIpOption (mysqlpp)   
Comparable (mysqlpp)   Option (mysqlpp)   SharedMemoryBaseNameOption (mysqlpp)   value_list_b (mysqlpp)   
CompressOption (mysqlpp)   IgnoreSpaceOption (mysqlpp)   OptionalExceptions (mysqlpp)   SimpleResult (mysqlpp)   value_list_ba (mysqlpp)   
Connection (mysqlpp)   InitCommandOption (mysqlpp)   
  Q  
Query::SizeThresholdInsertPolicy (mysqlpp)   
  W  
ConnectionFailed (mysqlpp)   InteractiveOption (mysqlpp)   SQLBuffer (mysqlpp)   
ConnectionPool (mysqlpp)   
  L  
Query (mysqlpp)   SQLParseElement (mysqlpp)   WindowsNamedPipeConnection (mysqlpp)   
ConnectTimeoutOption (mysqlpp)   
  R  
SQLQueryParms (mysqlpp)   WriteTimeoutOption (mysqlpp)   
  D  
LocalFilesOption (mysqlpp)   SQLStream (mysqlpp)   
LocalInfileOption (mysqlpp)   ReadDefaultFileOption (mysqlpp)   SQLTypeAdapter (mysqlpp)   
DataOption (mysqlpp)   
  M  
ReadDefaultGroupOption (mysqlpp)   SslOption (mysqlpp)   
Date (mysqlpp)   ReadTimeoutOption (mysqlpp)   StoreQueryResult (mysqlpp)   
Query::MaxPacketInsertPolicy (mysqlpp)   
A | B | C | D | E | F | G | I | L | M | N | O | Q | R | S | T | U | V | W
mysql++-3.2.2+pristine.orig/doc/html/refman/stadapter_8h_source.html0000755000372000001440000011125412502417162025017 0ustar robertousers MySQL++ Reference Manual
stadapter.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2009 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_SQL_TYPE_ADAPTER_H)
29 #define MYSQLPP_SQL_TYPE_ADAPTER_H
30 
31 #include "common.h"
32 
33 #include "datetime.h"
34 #include "null.h"
35 #include "sql_buffer.h"
36 #include "tiny_int.h"
37 
38 #include <stdexcept>
39 #include <string>
40 
41 namespace mysqlpp {
42 
43 #if !defined(DOXYGEN_IGNORE)
44 class MYSQLPP_EXPORT String;
45 #endif
46 
72 
73 class MYSQLPP_EXPORT SQLTypeAdapter
74 {
75 public:
76  typedef size_t size_type;
77 
80 
88  SQLTypeAdapter(const SQLTypeAdapter& other);
89 
96  SQLTypeAdapter(const String& str, bool processed = false);
97 
99  SQLTypeAdapter(const std::string& str, bool processed = false);
100 
102  SQLTypeAdapter(const char* str, bool processed = false);
103 
105  SQLTypeAdapter(const char* str, int len, bool processed = false);
106 
113  SQLTypeAdapter(char c);
114 
117 
121 
123  SQLTypeAdapter(short i);
124 
127  SQLTypeAdapter(unsigned short i);
128 
130  SQLTypeAdapter(int i);
131 
134  SQLTypeAdapter(unsigned i);
135 
137  SQLTypeAdapter(long i);
138 
141  SQLTypeAdapter(unsigned long i);
142 
144  SQLTypeAdapter(longlong i);
145 
148  SQLTypeAdapter(ulonglong i);
149 
151  SQLTypeAdapter(float i);
152 
154  SQLTypeAdapter(double i);
155 
157  SQLTypeAdapter(const Date& d);
158 
160  SQLTypeAdapter(const DateTime& dt);
161 
163  SQLTypeAdapter(const Time& t);
164 
166  SQLTypeAdapter(const null_type& i);
167 
171  SQLTypeAdapter& operator =(const SQLTypeAdapter& rhs);
172 
176  SQLTypeAdapter& operator =(const null_type& n);
177 
179  operator const char*() const { return data(); }
180 
192  SQLTypeAdapter& assign(const SQLTypeAdapter& sta);
193 
205  SQLTypeAdapter& assign(const char* pc, int len = -1);
206 
212  SQLTypeAdapter& assign(const null_type& n);
213 
224  char at(size_type i) const throw(std::out_of_range);
225 
229  int compare(const SQLTypeAdapter& other) const;
230 
234  int compare(const std::string& other) const;
235 
240  int compare(size_type pos, size_type num, std::string& other) const;
241 
245  int compare(const char* other) const;
246 
251  int compare(size_type pos, size_type num, const char* other) const;
252 
254  const char* data() const;
255 
258  bool escape_q() const;
259 
266  bool is_null() const { return buffer_->is_null(); }
267 
272  bool is_processed() const { return is_processed_; }
273 
275  size_type length() const;
276  size_type size() const { return length(); }
277 
280  bool quote_q() const;
281 
287  int type_id() const;
288 
293  void set_processed() { is_processed_ = true; }
294 
295 #if !defined(DOXYGEN_IGNORE)
296  // Parallel interface for Null<>-wrapped versions of types we
297  // support above. No need for parallel documentation.
298  SQLTypeAdapter(const Null<std::string>& str, bool processed = false);
299  SQLTypeAdapter(const Null<String>& str, bool processed = false);
313  SQLTypeAdapter(const Null<Date>& d);
314  SQLTypeAdapter(const Null<DateTime>& dt);
315  SQLTypeAdapter(const Null<Time>& t);
316  SQLTypeAdapter& operator =(const Null<std::string>& str);
317 #endif // !defined(DOXYGEN_IGNORE)
318 
319 private:
321  RefCountedBuffer buffer_;
322 
333  bool is_processed_;
334 };
335 
336 } // end namespace mysqlpp
337 
338 #endif // !defined(MYSQLPP_SQL_TYPE_ADAPTER_H)
Declares classes that implement SQL &quot;null&quot; semantics within C++&#39;s type system.
size_type size() const
alias for length()
Definition: stadapter.h:276
size_t size_type
size of length values
Definition: stadapter.h:76
bool is_null() const
Return true if buffer&#39;s contents represent a SQL null.
Definition: stadapter.h:266
C++ form of SQL&#39;s TIME type.
Definition: datetime.h:347
C++ form of SQL&#39;s DATETIME type.
Definition: datetime.h:48
Declares classes to add SQL-compatible date and time types to C++&#39;s type system.
bool is_processed() const
Returns true if the internal &#39;processed&#39; flag is set.
Definition: stadapter.h:272
Class for holding an SQL TINYINT value.
Definition: tiny_int.h:55
The type of the global mysqlpp::null object.
Definition: null.h:49
void set_processed()
Turns on the internal &#39;is_processed_&#39; flag.
Definition: stadapter.h:293
C++ form of SQL&#39;s DATE type.
Definition: datetime.h:225
This file includes top-level definitions for use both internal to the library, and outside it...
Declares the SQLBuffer class.
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
Declares class for holding a SQL TINYINT.
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
A std::string work-alike that can convert itself from SQL text data formats to C++ data types...
Definition: mystring.h:139
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InteractiveOption-members.html0000755000372000001440000001211712502417164031263 0ustar robertousers MySQL++ Reference Manual
mysqlpp::InteractiveOption Member List

This is the complete list of members for mysqlpp::InteractiveOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer.html0000755000372000001440000000756412502417164031716 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RefCountedPointerDestroyer< T > Struct Template Reference

Functor to call delete on the pointer you pass to it. More...

#include <refcounted.h>

Public Member Functions

void operator() (T *doomed) const
 Functor implementation.
 

Detailed Description

template<class T>
struct mysqlpp::RefCountedPointerDestroyer< T >

Functor to call delete on the pointer you pass to it.

The default "destroyer" for RefCountedPointer. You won't use this directly, you'll pass a functor of your own devising for the second parameter to the RefCountedPointer template to override this. Or simpler, just specialize this template for your type if possible: see ResUse::result_.


The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLQueryParms.html0000755000372000001440000005716312502417163026666 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLQueryParms Class Reference

This class holds the parameter values for filling template queries. More...

#include <qparms.h>

Inheritance diagram for mysqlpp::SQLQueryParms:
Collaboration diagram for mysqlpp::SQLQueryParms:

Public Types

typedef const SQLTypeAdaptersta
 Abbreviation so some of the declarations below don't span many lines.
 

Public Member Functions

 SQLQueryParms ()
 Default constructor.
 
 SQLQueryParms (Query *p)
 Create object. More...
 
bool bound ()
 Returns true if we are bound to a query object. More...
 
void clear ()
 Clears the list.
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Indirect access to Query::escape_string()
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Indirect access to Query::escape_string() More...
 
SQLTypeAdapteroperator[] (size_type n)
 Access element number n.
 
const SQLTypeAdapteroperator[] (size_type n) const
 Access element number n.
 
SQLTypeAdapteroperator[] (const char *str)
 Access the value of the element with a key of str.
 
const SQLTypeAdapteroperator[] (const char *str) const
 Access the value of the element with a key of str.
 
SQLQueryParmsoperator<< (const SQLTypeAdapter &str)
 Adds an element to the list.
 
SQLQueryParmsoperator+= (const SQLTypeAdapter &str)
 Adds an element to the list.
 
SQLQueryParms operator+ (const SQLQueryParms &other) const
 Build a composite of two parameter lists. More...
 
void set (sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)
 Set the template query parameters. More...
 

Friends

class Query
 

Detailed Description

This class holds the parameter values for filling template queries.

Constructor & Destructor Documentation

mysqlpp::SQLQueryParms::SQLQueryParms ( Query p)
inline

Create object.

Parameters
ppointer to the query object these parameters are tied to

Member Function Documentation

bool mysqlpp::SQLQueryParms::bound ( )
inline

Returns true if we are bound to a query object.

Basically, this tells you which of the two ctors were called.

size_t mysqlpp::SQLQueryParms::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Indirect access to Query::escape_string()

See Also
escape_string(std::string*, const char*, size_t)
Query::escape_string(const char*, const char*, size_t)
SQLQueryParms mysqlpp::SQLQueryParms::operator+ ( const SQLQueryParms other) const

Build a composite of two parameter lists.

If this list is (a, b) and other is (c, d, e, f, g), then the returned list will be (a, b, e, f, g). That is, all of this list's parameters are in the returned list, plus any from the other list that are in positions beyond what exist in this list.

If the two lists are the same length or this list is longer than the other list, a copy of this list is returned.

void mysqlpp::SQLQueryParms::set ( sta  a,
sta  b,
sta  c,
sta  d,
sta  e,
sta  f,
sta  g,
sta  h,
sta  i,
sta  j,
sta  k,
sta  l 
)
inline

Set the template query parameters.

Sets parameter 0 to a, parameter 1 to b, etc. There are overloaded versions of this function that take anywhere from one to a dozen parameters.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine.html0000755000372000001440000006221412502417163030554 0ustar robertousers MySQL++ Reference Manual
mysqlpp::examples::CommandLine Class Reference

Command line parsing mechanism for ../examples/*.cpp. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::examples::CommandLine:
Collaboration diagram for mysqlpp::examples::CommandLine:

Public Member Functions

 CommandLine (int argc, char *const argv[], const char *user=0, const char *pass=0, const char *usage_extra=0)
 Constructor. More...
 
void print_usage () const
 Show a message explaining the program's proper usage. More...
 
void print_usage (const char *extra) const
 Show a message explaining the program's proper usage, with custom extra info after standard command line usage bits.
 
bool dtest_mode () const
 Return true if we're in "dtest" mode This happens when an example gets the -D flag, always passed by the dtest script to ask the programs it runs to suppress any nondeterministic output.
 
const char * pass () const
 Return the DB password (-p argument)
 
int run_mode () const
 Return the -m flag value. More...
 
const char * server () const
 Return the DB server name (-s argument)
 
const char * user () const
 Return the DB user name (-u argument)
 
- Public Member Functions inherited from mysqlpp::CommandLineBase
const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Additional Inherited Members

- Public Types inherited from mysqlpp::CommandLineBase
typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef
ArgumentList::const_iterator 
ArgumentListIt
 Iterator into ArgumentList.
 
- Protected Member Functions inherited from mysqlpp::CommandLineBase
 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Command line parsing mechanism for ../examples/*.cpp.

Constructor & Destructor Documentation

mysqlpp::examples::CommandLine::CommandLine ( int  argc,
char *const  argv[],
const char *  user = 0,
const char *  pass = 0,
const char *  usage_extra = 0 
)

Member Function Documentation

void mysqlpp::examples::CommandLine::print_usage ( ) const
inlinevirtual

Show a message explaining the program's proper usage.

Calls print_usage(const char*), passing along the "usage_extra" parameter passed to the ctor

Implements mysqlpp::CommandLineBase.

References print_usage().

Referenced by print_usage().

int mysqlpp::examples::CommandLine::run_mode ( ) const
inline

Return the -m flag value.

This flag is currently only used by examples/deadlock, but it's really a nonspecific "mode" value, which could be used by other examples in the future.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x65.html0000755000372000001440000002062312502417165024660 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Null.html0000755000372000001440000006623212502417164025106 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Null< Type, Behavior > Class Template Reference

Class for holding data from a SQL column with the NULL attribute. More...

#include <null.h>

Public Types

typedef Type value_type
 Type of the data stored in this object, when it is not equal to SQL null.
 

Public Member Functions

 Null ()
 Default constructor. More...
 
 Null (const Type &x)
 Initialize the object with a particular value. More...
 
 Null (const null_type &)
 Construct a Null equal to SQL null. More...
 
 operator Type () const
 Converts this object to Type. More...
 
Nulloperator= (const Type &x)
 Assign a value to the object. More...
 
Nulloperator= (const null_type &)
 Assign SQL null to this object. More...
 
bool operator== (const Null< Type > &rhs) const
 Do equality comparison of two nullable values. More...
 
bool operator== (const null_type &) const
 Do equality comparison against hard-coded SQL null. More...
 
bool operator!= (const Null< Type > &rhs) const
 Do inequality comparison of two nullable values.
 
bool operator!= (const null_type &rhs) const
 Do inequality comparison against hard-coded SQL null.
 
bool operator< (const Null< Type > &rhs) const
 Do less-than comparison of two nullable values. More...
 
bool operator< (const null_type &) const
 Do less-than comparison against hard-coded SQL null. More...
 

Public Attributes

Type data
 The object's value, when it is not SQL null.
 
bool is_null
 If set, this object is considered equal to SQL null. More...
 

Detailed Description

template<class Type, class Behavior = NullIsNull>
class mysqlpp::Null< Type, Behavior >

Class for holding data from a SQL column with the NULL attribute.

This template is necessary because there is nothing in the C++ type system with the same semantics as SQL's null. In SQL, a column can have the optional 'NULL' attribute, so there is a difference in type between, say an int column that can be null and one that cannot be. C++'s NULL constant does not have these features.

It's important to realize that this class doesn't hold nulls, it holds data that can be null. It can hold a non-null value, you can then assign null to it (using MySQL++'s global null object), and then assign a regular value to it again; the object will behave as you expect throughout this process.

Because one of the template parameters is a C++ type, the typeid() for a null int is different than for a null string, to pick two random examples. See type_info.cpp for the table SQL types that can be null.

Constructor & Destructor Documentation

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( )
inline

Default constructor.

"data" member is left uninitialized by this ctor, because we don't know what to initialize it to.

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( const Type &  x)
inline

Initialize the object with a particular value.

The object is marked as "not null" if you use this ctor. This behavior exists because the class doesn't encode nulls, but rather data which can be null. The distinction is necessary because 'NULL' is an optional attribute of SQL columns.

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( const null_type )
inline

Construct a Null equal to SQL null.

This is typically used with the global null object. (Not to be confused with C's NULL type.) You can say something like...

* Null<int> foo = null;
*

...to get a null int.

Member Function Documentation

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::operator Type ( ) const
inline

Converts this object to Type.

If is_null is set, returns whatever we consider that null "is", according to the Behavior parameter you used when instantiating this template. See NullIsNull, NullIsZero and NullIsBlank.

Otherwise, just returns the 'data' member.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator< ( const Null< Type > &  rhs) const
inline

Do less-than comparison of two nullable values.

Two null objects are equal to each other, and null is less than not-null. If neither is null, we delegate to operator < for the base data type.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator< ( const null_type ) const
inline

Do less-than comparison against hard-coded SQL null.

Always returns false because we can only be greater than or equal to a SQL null.

template<class Type, class Behavior = NullIsNull>
Null& mysqlpp::Null< Type, Behavior >::operator= ( const Type &  x)
inline

Assign a value to the object.

This marks the object as "not null" as a side effect.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

template<class Type, class Behavior = NullIsNull>
Null& mysqlpp::Null< Type, Behavior >::operator= ( const null_type )
inline

Assign SQL null to this object.

This just sets the is_null flag; the data member is not affected until you call the Type() operator on it.

References mysqlpp::Null< Type, Behavior >::is_null.

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator== ( const Null< Type > &  rhs) const
inline

Do equality comparison of two nullable values.

Two null objects are equal, and null is not equal to not-null. If neither is null, we delegate to operator == for the base data type.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator== ( const null_type ) const
inline

Do equality comparison against hard-coded SQL null.

This tells you the same thing as testing is_null member.

References mysqlpp::Null< Type, Behavior >::is_null.

Member Data Documentation

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::is_null

If set, this object is considered equal to SQL null.

This flag affects how the Type() and << operators work.

Referenced by mysqlpp::Null< Type, Behavior >::operator Type(), mysqlpp::Null< Type, Behavior >::operator<(), mysqlpp::Null< Type, Behavior >::operator=(), and mysqlpp::Null< Type, Behavior >::operator==().


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLTypeAdapter-members.html0000755000372000001440000003616212502417164030425 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLTypeAdapter Member List

This is the complete list of members for mysqlpp::SQLTypeAdapter, including all inherited members.

assign(const SQLTypeAdapter &sta)mysqlpp::SQLTypeAdapter
assign(const char *pc, int len=-1)mysqlpp::SQLTypeAdapter
assign(const null_type &n)mysqlpp::SQLTypeAdapter
at(size_type i) const mysqlpp::SQLTypeAdapter
compare(const SQLTypeAdapter &other) const mysqlpp::SQLTypeAdapter
compare(const std::string &other) const mysqlpp::SQLTypeAdapter
compare(size_type pos, size_type num, std::string &other) const mysqlpp::SQLTypeAdapter
compare(const char *other) const mysqlpp::SQLTypeAdapter
compare(size_type pos, size_type num, const char *other) const mysqlpp::SQLTypeAdapter
data() const mysqlpp::SQLTypeAdapter
escape_q() const mysqlpp::SQLTypeAdapter
is_null() const mysqlpp::SQLTypeAdapterinline
is_processed() const mysqlpp::SQLTypeAdapterinline
length() const mysqlpp::SQLTypeAdapter
operator const char *() const mysqlpp::SQLTypeAdapterinline
operator=(const SQLTypeAdapter &rhs)mysqlpp::SQLTypeAdapter
operator=(const null_type &n)mysqlpp::SQLTypeAdapter
quote_q() const mysqlpp::SQLTypeAdapter
set_processed()mysqlpp::SQLTypeAdapterinline
size() const mysqlpp::SQLTypeAdapterinline
size_type typedefmysqlpp::SQLTypeAdapter
SQLTypeAdapter()mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const SQLTypeAdapter &other)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const String &str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const std::string &str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const char *str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const char *str, int len, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(char c)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(tiny_int< signed char > i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(tiny_int< unsigned char > i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(short i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned short i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(int i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(long i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned long i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(longlong i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(ulonglong i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(float i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(double i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const Date &d)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const DateTime &dt)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const Time &t)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const null_type &i)mysqlpp::SQLTypeAdapter
type_id() const mysqlpp::SQLTypeAdapter
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLQueryParms-members.html0000755000372000001440000001550612502417164030312 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLQueryParms Member List

This is the complete list of members for mysqlpp::SQLQueryParms, including all inherited members.

bound()mysqlpp::SQLQueryParmsinline
clear()mysqlpp::SQLQueryParmsinline
escape_string(std::string *ps, const char *original=0, size_t length=0) const mysqlpp::SQLQueryParms
escape_string(char *escaped, const char *original, size_t length) const mysqlpp::SQLQueryParms
operator+(const SQLQueryParms &other) const mysqlpp::SQLQueryParms
operator+=(const SQLTypeAdapter &str)mysqlpp::SQLQueryParmsinline
operator<<(const SQLTypeAdapter &str)mysqlpp::SQLQueryParmsinline
operator[](size_type n)mysqlpp::SQLQueryParmsinline
operator[](size_type n) const mysqlpp::SQLQueryParmsinline
operator[](const char *str)mysqlpp::SQLQueryParms
operator[](const char *str) const mysqlpp::SQLQueryParms
Query (defined in mysqlpp::SQLQueryParms)mysqlpp::SQLQueryParmsfriend
set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)mysqlpp::SQLQueryParmsinline
SQLQueryParms()mysqlpp::SQLQueryParmsinline
SQLQueryParms(Query *p)mysqlpp::SQLQueryParmsinline
sta typedefmysqlpp::SQLQueryParms
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_18.png0000644000372000001440000000261012502417165024017 0ustar robertousers‰PNG  IHDR%ðsýqbKGDÿÿÿ ½§“=IDAThíš_HSQÇW]šh:]Kk:Å ADzHPòÅ!A/¶™=8AÉd ‚âƒEOQ)纑q©@P‘ÐDPøâd–ØôA7½ÝPw×==\×íÞ±™:/œÏÓo¿Ýß÷w¾Û9g»#B€9óÄÅZ&"°Oòû$°Oò Aø`mm­¹¹y?Vj0šššŒFcàá!Ÿìvû§OŸL&Ó©«ÂâÛ·o$IJúÄC’ä)JˆPSS”Áû“<À>Éì“<À>Ƀ3çÓÊÊ A±*“ê‘pæ|:˸\.•J“ÒØ§(à8n{{;&¥âACCCz½þâÅ‹===V«5'''--­³³ZZZø+†INN^\\€?%%%åææZ­Và8îÅ‹z½>55µ´´Ôf³ ×~ ¢(ª  @­V·´´ˆ&áðz%Œ ‚ÕëõOŸ> se$\¿~²²²¤Ú”’Dz¬Åb¹té’Z­¶X,,ËF=éHÀÛ·oƒ2¢ÀÝ»wiš€ššš¦{{{`kkëË—/™™™,Ë"„FFF 9Žc&11ñÕ«Wƒƒƒ ÃôööªÕꉉ ·ÛýùógFN§“×ÀƒayyÙn·çåå=~üX4‰ÚÙÙéïïçå c0^¯·¿¿¶··ãJˆ¢ŸmSJÞ“'Onß¾½¶¶æp8JJJÚÚÚÂϰÉd2™L‡æüh>-,, „|>_Pìt:ý~VVÖÌÌ BèæÍ›===!Ç£P(ž={æõz9Žûýû÷ß¿ _¿~öÍ›7¡>9Ž€¶¼¼<Ñdx©6›M(ï¸|mSJžN§ÛØØà“SSSÅÅÅág8Ô§#îO©©© P(‚bˆ¯®®ž˜˜ØÚÚšžž¾wï(•J›Íf·Û5Í7¾~ýçr¹Š‹‹c…ÊÏÏçN·¾¾&)ÅåË—…ò„ ÿ¸—-Ú¦”¼?~dggADeeåêêj´åNäa2™>|ø@’dYY¿šíííq÷îÝ;ÇÓÐÐpëÖ-ÇsåÊ•ïß¿^µ´´:ÿ€ååe~Æ¥’RÄʼnôè÷ûàׯ_Q÷& ´M)y*•ÊétòŸ ¯×k·Û£­u">•——ûýþ®®®û÷ïó‚ Ãû÷ïišöù| …"99Ùl6[,Š¢677'''ÛÚÚB‡zôèÑÊÊÊüü|GGG]]Trww—ß,ƒâPÒÓÓ`xx˜¦éçÏŸ¡;†a¤Ú”’W]]ÝÞÞþóçO‡ÃQUUõòå˨« ÁÈ÷§À»C*~ðàÁùóçiš®ÕjÏ;§Óé(ŠBù|¾®®®œœœ”””ÒÒÒ±±1ÙŸ®^½ªR©>|¸··'š Ú9„±¨¼îîîôôt­VKQD³?±,[VV–’’ȵ)%¦éúúz¥R™™™ÙØØøçÏŸð3|<çˆHèè設­ê%As$:eáçñô jó¸ä…ú$rÿé?Ùßßw»ÝCCCãããÇ>øÙá”Û<þýinnîÚµkf³¹¢¢âƹpáBSSS$É“€ ph›''@‚³)I’wîÜAøŸ—±†¿Ÿ+¼±Žß“Ø'y€}’Ø'y r.ïëë;}!.—+77÷PJøejvv6>>>FÚ0‡hmmZCàS¸,Àû“<À>Éì“<À>ɃWÀ¬Âqmu`IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/query_8h_source.html0000755000372000001440000037564412502417162024214 0ustar robertousers MySQL++ Reference Manual
query.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2011 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_QUERY_H)
29 #define MYSQLPP_QUERY_H
30 
31 #include "common.h"
32 
33 #include "exceptions.h"
34 #include "noexceptions.h"
35 #include "qparms.h"
36 #include "querydef.h"
37 #include "result.h"
38 #include "row.h"
39 #include "sqlstream.h"
40 #include "stadapter.h"
41 #include "transaction.h"
42 
43 #include <deque>
44 #include <iomanip>
45 #include <list>
46 #include <map>
47 #include <set>
48 #include <vector>
49 
50 #ifdef HAVE_EXT_SLIST
51 # include <ext/slist>
52 #else
53 # if defined(HAVE_STD_SLIST) || defined(HAVE_GLOBAL_SLIST)
54 # include <slist>
55 # endif
56 #endif
57 
58 namespace mysqlpp {
59 
60 #if !defined(DOXYGEN_IGNORE)
61 // Make Doxygen ignore this
62 class MYSQLPP_EXPORT Connection;
63 class MYSQLPP_EXPORT Transaction;
64 #endif
65 
120 
121 class MYSQLPP_EXPORT Query :
122  public std::ostream,
123  public OptionalExceptions
124 {
125 public:
126  // Bring in InsertPolicy template as part of this class's interface,
127  // separate only in the sense that it's a self-contained concept.
128  #define MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES
129  #include "insertpolicy.h"
130  #undef MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES
131 
139  Query(Connection* c, bool te = true, const char* qstr = 0);
140 
148  Query(const Query& q);
149 
151  ulonglong affected_rows();
152 
167  size_t escape_string(std::string* ps, const char* original = 0,
168  size_t length = 0) const;
169 
191  size_t escape_string(char* escaped, const char* original,
192  size_t length) const;
193 
198  int errnum() const;
199 
204  const char* error() const;
205 
208  std::string info();
209 
220  ulonglong insert_id();
221 
226  Query& operator=(const Query& rhs);
227 
246  operator void*() const;
247 
255  bool operator !() const { return !operator void*(); }
256 
264  void parse();
265 
275  void reset();
276 
280  bool result_empty();
281 
283  std::string str() { return str(template_defaults); }
284 
298  std::string str(const SQLTypeAdapter& arg0)
299  { return str(SQLQueryParms() << arg0); }
300 
305  std::string str(SQLQueryParms& p);
306 
317  bool exec() { return exec(str(template_defaults)); }
318 
330  bool exec(const std::string& str);
331 
348  SimpleResult execute();
349 
358  SimpleResult execute(SQLQueryParms& p);
359 
376  SimpleResult execute(const SQLTypeAdapter& str);
377 
382  SimpleResult execute(const char* str, size_t len);
383 
409  UseQueryResult use();
410 
421 
439  UseQueryResult use(const SQLTypeAdapter& str);
440 
450  UseQueryResult use(const char* str, size_t len);
451 
473  StoreQueryResult store();
474 
484 
502  StoreQueryResult store(const SQLTypeAdapter& str);
503 
513  StoreQueryResult store(const char* str, size_t len);
514 
525  template <typename Function>
526  Function for_each(const SQLTypeAdapter& query, Function fn)
527  {
528  mysqlpp::UseQueryResult res = use(query);
529  if (res) {
530  mysqlpp::NoExceptions ne(res);
531  while (mysqlpp::Row row = res.fetch_row()) {
532  fn(row);
533  }
534  }
535 
536  return fn;
537  }
538 
546  template <typename Function>
547  Function for_each(Function fn)
548  {
549  mysqlpp::UseQueryResult res = use();
550  if (res) {
551  mysqlpp::NoExceptions ne(res);
552  while (mysqlpp::Row row = res.fetch_row()) {
553  fn(row);
554  }
555  }
556 
557  return fn;
558  }
559 
570  template <class SSQLS, typename Function>
571  Function for_each(const SSQLS& ssqls, Function fn)
572  {
573  std::string query("select * from `");
574  query += ssqls.table();
575  query += '`';
576  mysqlpp::UseQueryResult res = use(query);
577  if (res) {
578  mysqlpp::NoExceptions ne(res);
579  while (mysqlpp::Row row = res.fetch_row()) {
580  fn(row);
581  }
582  }
583 
584  return fn;
585  }
586 
606  template <class Sequence, typename Function>
607  Function store_if(Sequence& con, const SQLTypeAdapter& query, Function fn)
608  {
609  mysqlpp::UseQueryResult res = use(query);
610  if (res) {
611  mysqlpp::NoExceptions ne(res);
612  while (mysqlpp::Row row = res.fetch_row()) {
613  if (fn(row)) {
614  con.push_back(row);
615  }
616  }
617  }
618 
619  return fn;
620  }
621 
633  template <class Sequence, class SSQLS, typename Function>
634  Function store_if(Sequence& con, const SSQLS& ssqls, Function fn)
635  {
636  std::string query("select * from `");
637  query += ssqls.table();
638  query += '`';
639  mysqlpp::UseQueryResult res = use(query);
640  if (res) {
641  mysqlpp::NoExceptions ne(res);
642  while (mysqlpp::Row row = res.fetch_row()) {
643  if (fn(row)) {
644  con.push_back(row);
645  }
646  }
647  }
648 
649  return fn;
650  }
651 
661  template <class Sequence, typename Function>
662  Function store_if(Sequence& con, Function fn)
663  {
664  mysqlpp::UseQueryResult res = use();
665  if (res) {
666  mysqlpp::NoExceptions ne(res);
667  while (mysqlpp::Row row = res.fetch_row()) {
668  if (fn(row)) {
669  con.push_back(row);
670  }
671  }
672  }
673 
674  return fn;
675  }
676 
703  StoreQueryResult store_next();
704 
716  bool more_results();
717 
734  template <class Sequence>
735  void storein_sequence(Sequence& con)
736  {
737  storein_sequence(con, str(template_defaults));
738  }
739 
753  template <class Sequence>
754  void storein_sequence(Sequence& con, const SQLTypeAdapter& s)
755  {
756  if (UseQueryResult result = use(s)) {
757  while (1) {
758  MYSQL_ROW d = result.fetch_raw_row();
759  if (!d) break;
760  Row row(d, &result, result.fetch_lengths(),
761  throw_exceptions());
762  if (!row) break;
763  con.push_back(typename Sequence::value_type(row));
764  }
765  }
766  else if (!result_empty()) {
767  // Underlying MySQL C API returned an empty result for this
768  // query, but it also says it should have returned
769  // something. Reasons it can do that are given here:
770  // http://dev.mysql.com/doc/refman/5.5/en/null-mysql-store-result.html
771  // Regardless, it means the C library barfed, so we can't
772  // just return an empty result set.
773  copacetic_ = false;
774  if (throw_exceptions()) {
775  throw UseQueryError("Bogus empty result");
776  }
777  }
778  // else, it was *supposed* to return nothing, because query was
779  // an INSERT, CREATE, etc. sort. So, leave con untouched.
780  }
781 
792  template <class Seq>
793  void storein_sequence(Seq& con, SQLQueryParms& p)
794  {
795  storein_sequence(con, str(p));
796  }
797 
805  template <class Set>
806  void storein_set(Set& con)
807  {
808  storein_set(con, str(template_defaults));
809  }
810 
824  template <class Set>
825  void storein_set(Set& con, const SQLTypeAdapter& s)
826  {
827  if (UseQueryResult result = use(s)) {
828  while (1) {
829  MYSQL_ROW d = result.fetch_raw_row();
830  if (!d) break;
831  Row row(d, &result, result.fetch_lengths(),
832  throw_exceptions());
833  if (!row) break;
834  con.insert(typename Set::value_type(row));
835  }
836  }
837  else if (!result_empty()) {
838  // Underlying MySQL C API returned an empty result for this
839  // query, but it also says it should have returned
840  // something. Reasons it can do that are given here:
841  // http://dev.mysql.com/doc/refman/5.5/en/null-mysql-store-result.html
842  // Regardless, it means the C library barfed, so we can't
843  // just return an empty result set.
844  copacetic_ = false;
845  if (throw_exceptions()) {
846  throw UseQueryError("Bogus empty result");
847  }
848  }
849  // else, it was *supposed* to return nothing, because query was
850  // an INSERT, CREATE, etc. sort. So, leave con untouched.
851  }
852 
863  template <class Set>
865  {
866  storein_set(con, str(p));
867  }
868 
887  template <class Container>
888  void storein(Container& con)
889  {
890  storein(con, str(template_defaults));
891  }
892 
899  template <class T>
900  void storein(T& con, SQLQueryParms& p)
901  {
902  storein(con, str(p));
903  }
904 
906  template <class T>
907  void storein(std::vector<T>& con, const SQLTypeAdapter& s)
908  {
909  storein_sequence(con, s);
910  }
911 
913  template <class T>
914  void storein(std::deque<T>& con, const SQLTypeAdapter& s)
915  {
916  storein_sequence(con, s);
917  }
918 
920  template <class T>
921  void storein(std::list<T>& con, const SQLTypeAdapter& s)
922  {
923  storein_sequence(con, s);
924  }
925 
926 #if defined(HAVE_EXT_SLIST)
927  template <class T>
930  void storein(__gnu_cxx::slist<T>& con, const SQLTypeAdapter& s)
931  {
932  storein_sequence(con, s);
933  }
934 #elif defined(HAVE_GLOBAL_SLIST)
935  template <class T>
942  void storein(slist<T>& con, const SQLTypeAdapter& s)
943  {
944  storein_sequence(con, s);
945  }
946 #elif defined(HAVE_STD_SLIST)
947  template <class T>
953  void storein(std::slist<T>& con, const SQLTypeAdapter& s)
954  {
955  storein_sequence(con, s);
956  }
957 #endif
958 
960  template <class T>
961  void storein(std::set<T>& con, const SQLTypeAdapter& s)
962  {
963  storein_set(con, s);
964  }
965 
967  template <class T>
968  void storein(std::multiset<T>& con, const SQLTypeAdapter& s)
969  {
970  storein_set(con, s);
971  }
972 
983  template <class T>
984  Query& update(const T& o, const T& n)
985  {
986  reset();
987 
988  // Cast required for VC++ 2003 due to error in overloaded operator
989  // lookup logic. For an explanation of the problem, see:
990  // http://groups-beta.google.com/group/microsoft.public.vc.stl/browse_thread/thread/9a68d84644e64f15
991  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
992  "UPDATE `" << o.table() << "` SET " << n.equal_list() <<
993  " WHERE " << o.equal_list(" AND ", sql_use_compare);
994  return *this;
995  }
996 
1005  template <class T>
1006  Query& insert(const T& v)
1007  {
1008  reset();
1009 
1010  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1011  "INSERT INTO `" << v.table() << "` (" <<
1012  v.field_list() << ") VALUES (" <<
1013  v.value_list() << ')';
1014  return *this;
1015  }
1016 
1030  template <class Iter>
1031  Query& insert(Iter first, Iter last)
1032  {
1033  reset();
1034 
1035  if (first != last) {
1036  // Build SQL for first item in the container. It's special
1037  // because we need the table name and field list.
1038  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1039  "INSERT INTO `" << first->table() << "` (" <<
1040  first->field_list() << ") VALUES (" <<
1041  first->value_list() << ')';
1042 
1043  // Now insert any remaining container elements. Be careful
1044  // hacking on the iterator use here: we want it to work
1045  // with containers providing only a forward iterator.
1046  Iter it = first;
1047  while (++it != last) {
1048  MYSQLPP_QUERY_THISPTR << ",(" << it->value_list() << ')';
1049  }
1050  }
1051 
1052  return *this;
1053  }
1054 
1067  template <class Iter, class InsertPolicy>
1068  Query& insertfrom(Iter first, Iter last, InsertPolicy& policy)
1069  {
1070  bool success = true;
1071  bool empty = true;
1072 
1073  reset();
1074 
1075  if (first == last) {
1076  return *this; // empty set!
1077  }
1078 
1079  typename InsertPolicy::access_controller ac(*conn_);
1080 
1081  for (Iter it = first; it != last; ++it) {
1082  if (policy.can_add(int(tellp()), *it)) {
1083  if (empty) {
1084  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1085  "INSERT INTO `" << it->table() << "` (" <<
1086  it->field_list() << ") VALUES (";
1087  }
1088  else {
1089  MYSQLPP_QUERY_THISPTR << ",(";
1090  }
1091 
1092  MYSQLPP_QUERY_THISPTR << it->value_list() << ')';
1093 
1094  empty = false;
1095  }
1096  else {
1097  // Execute what we've built up already, if there is anything
1098  if (!empty) {
1099  if (!exec()) {
1100  success = false;
1101  break;
1102  }
1103 
1104  empty = true;
1105  }
1106 
1107  // If we _still_ can't add, the policy is too strict
1108  if (policy.can_add(int(tellp()), *it)) {
1109  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1110  "INSERT INTO `" << it->table() << "` (" <<
1111  it->field_list() << ") VALUES (" <<
1112  it->value_list() << ')';
1113 
1114  empty = false;
1115  }
1116  else {
1117  // At this point all we can do is give up
1118  if (throw_exceptions()) {
1119  throw BadInsertPolicy("Insert policy is too strict");
1120  }
1121 
1122  success = false;
1123  break;
1124  }
1125  }
1126  }
1127 
1128  // We might need to execute the last query here.
1129  if (success && !empty && !exec()) {
1130  success = false;
1131  }
1132 
1133  if (success) {
1134  ac.commit();
1135  }
1136  else {
1137  ac.rollback();
1138  }
1139 
1140  return *this;
1141  }
1142 
1155  template <class Iter, class InsertPolicy>
1156  Query& replacefrom(Iter first, Iter last, InsertPolicy& policy)
1157  {
1158  bool success = true;
1159  bool empty = true;
1160 
1161  reset();
1162 
1163  if (first == last) {
1164  return *this; // empty set!
1165  }
1166 
1167  typename InsertPolicy::access_controller ac(*conn_);
1168 
1169  for (Iter it = first; it != last; ++it) {
1170  if (policy.can_add(int(tellp()), *it)) {
1171  if (empty) {
1172  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1173  "REPLACE INTO `" << it->table() << "` (" <<
1174  it->field_list() << ") VALUES (";
1175  }
1176  else {
1177  MYSQLPP_QUERY_THISPTR << ",(";
1178  }
1179 
1180  MYSQLPP_QUERY_THISPTR << it->value_list() << ')';
1181 
1182  empty = false;
1183  }
1184  else {
1185  // Execute what we've built up already, if there is anything
1186  if (!empty) {
1187  if (!exec()) {
1188  success = false;
1189  break;
1190  }
1191 
1192  empty = true;
1193  }
1194 
1195  // If we _still_ can't add, the policy is too strict
1196  if (policy.can_add(int(tellp()), *it)) {
1197  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1198  "REPLACE INTO `" << it->table() << "` (" <<
1199  it->field_list() << ") VALUES (" <<
1200  it->value_list() << ')';
1201 
1202  empty = false;
1203  }
1204  else {
1205  // At this point all we can do is give up
1206  if (throw_exceptions()) {
1207  throw BadInsertPolicy("Insert policy is too strict");
1208  }
1209 
1210  success = false;
1211  break;
1212  }
1213  }
1214  }
1215 
1216  // We might need to execute the last query here.
1217  if (success && !empty && !exec()) {
1218  success = false;
1219  }
1220 
1221  if (success) {
1222  ac.commit();
1223  }
1224  else {
1225  ac.rollback();
1226  }
1227 
1228  return *this;
1229  }
1230 
1240  template <class T>
1241  Query& replace(const T& v)
1242  {
1243  reset();
1244 
1245  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1246  "REPLACE INTO `" << v.table() << "` (" <<
1247  v.field_list() << ") VALUES (" << v.value_list() << ')';
1248  return *this;
1249  }
1250 
1265  template <class Iter>
1266  Query& replace(Iter first, Iter last)
1267  {
1268  reset();
1269  if (first != last) {
1270  // Build SQL for first item in the container. It's special
1271  // because we need the table name and field list.
1272  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1273  "REPLACE INTO " << first->table() << " (" <<
1274  first->field_list() << ") VALUES (" <<
1275  first->value_list() << ')';
1276 
1277  // Now insert any remaining container elements. Be careful
1278  // hacking on the iterator use here: we want it to work
1279  // with containers providing only a forward iterator.
1280  Iter it = first;
1281  while (++it != last) {
1282  MYSQLPP_QUERY_THISPTR << ",(" << it->value_list() << ')';
1283  }
1284  }
1285 
1286  return *this;
1287  }
1288 
1289 #if !defined(DOXYGEN_IGNORE)
1290  // Declare the remaining overloads. These are hidden down here partly
1291  // to keep the above code clear, but also so that we may hide them
1292  // from Doxygen, which gets confused by macro instantiations that look
1293  // like method declarations.
1294  mysql_query_define0(std::string, str)
1295  mysql_query_define0(SimpleResult, execute)
1296  mysql_query_define0(StoreQueryResult, store)
1297  mysql_query_define0(UseQueryResult, use)
1298  mysql_query_define1(storein_sequence)
1299  mysql_query_define1(storein_set)
1300  mysql_query_define1(storein)
1301 #endif // !defined(DOXYGEN_IGNORE)
1302 
1307 
1308 private:
1309  friend class SQLQueryParms;
1310 
1312  Connection* conn_;
1313 
1315  bool copacetic_;
1316 
1318  std::vector<SQLParseElement> parse_elems_;
1319 
1322  std::vector<std::string> parsed_names_;
1323 
1325  std::map<std::string, short int> parsed_nums_;
1326 
1328  std::stringbuf sbuffer_;
1329 
1331  void proc(SQLQueryParms& p);
1332 
1333  SQLTypeAdapter* pprepare(char option, SQLTypeAdapter& S, bool replace = true);
1334 };
1335 
1336 
1340 inline std::ostream& operator <<(std::ostream& os, Query& q)
1341 {
1342  return os << q.str();
1343 }
1344 
1345 
1346 } // end namespace mysqlpp
1347 
1348 #endif // !defined(MYSQLPP_QUERY_H)
1349 
StoreQueryResult set type for &quot;store&quot; queries.
Definition: result.h:209
Declares the SQLTypeAdapter class.
A special std::set derivative for holding MySQL data sets.
Definition: myset.h:71
void storein(std::deque< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::deque.
Definition: query.h:914
Declares the template query parameter-related stuff.
std::string str()
Get built query as a C++ string.
Definition: query.h:283
Function store_if(Sequence &con, const SSQLS &ssqls, Function fn)
Pulls every row in a table, conditionally storing each one in a container.
Definition: query.h:634
void storein(std::multiset< T > &con, const SQLTypeAdapter &s)
Specialization of storein_set() for std::multiset.
Definition: query.h:968
void storein(std::list< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::list.
Definition: query.h:921
void storein(std::set< T > &con, const SQLTypeAdapter &s)
Specialization of storein_set() for std::set.
Definition: query.h:961
Declares the InsertPolicy classes.
Function for_each(const SQLTypeAdapter &query, Function fn)
Execute a query, and call a functor for each returned row.
Definition: query.h:526
Holds information about the result of queries that don&#39;t return rows.
Definition: result.h:48
Function for_each(Function fn)
Execute the query, and call a functor for each returned row.
Definition: query.h:547
Manages the connection to the database server.
Definition: connection.h:59
void storein_set(Set &con)
Execute a query, storing the result set in an STL associative container.
Definition: query.h:806
Defines a class for building quoted and escaped SQL text.
StoreQueryResult set type for &quot;use&quot; queries.
Definition: result.h:298
Query & insertfrom(Iter first, Iter last, InsertPolicy &policy)
Insert multiple new rows using an insert policy to control how the INSERT statements are created usin...
Definition: query.h:1068
Function store_if(Sequence &con, Function fn)
Execute the query, conditionally storing each row in a container.
Definition: query.h:662
Declares classes for holding information about SQL query results.
Disable exceptions in an object derived from OptionalExceptions.
Definition: noexceptions.h:119
std::string str(const SQLTypeAdapter &arg0)
Get built query as a C++ string with template query parameter substitution.
Definition: query.h:298
void storein(std::vector< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::vector.
Definition: query.h:907
void storein_set(Set &con, const SQLTypeAdapter &s)
Executes a query, storing the result rows in an STL set-associative container.
Definition: query.h:825
void storein_sequence(Sequence &con, const SQLTypeAdapter &s)
Executes a query, storing the result rows in an STL sequence container.
Definition: query.h:754
void storein_sequence(Sequence &con)
Execute a query, storing the result set in an STL sequence container.
Definition: query.h:735
void storein(T &con, SQLQueryParms &p)
Store template query results into a container.
Definition: query.h:900
Manages rows from a result set.
Definition: row.h:63
Declares the MySQL++-specific exception classes.
Query & replace(const T &v)
Insert new row unless there is an existing row that matches on a unique index, in which case we repla...
Definition: query.h:1241
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
bool exec()
Execute a built-up query.
Definition: query.h:317
Function for_each(const SSQLS &ssqls, Function fn)
Run a functor for every row in a table.
Definition: query.h:571
Function store_if(Sequence &con, const SQLTypeAdapter &query, Function fn)
Execute a query, conditionally storing each row in a container.
Definition: query.h:607
Query & replacefrom(Iter first, Iter last, InsertPolicy &policy)
Replace multiple new rows using an insert policy to control how the REPLACE statements are created us...
Definition: query.h:1156
void storein_set(Set &con, SQLQueryParms &p)
Execute template query using given parameters, storing the results in a set type container.
Definition: query.h:864
SQLQueryParms template_defaults
The default template parameters.
Definition: query.h:1306
Exception thrown when an insert policy is too strict to create a valid INSERT statement.
Definition: exceptions.h:456
Query & insert(Iter first, Iter last)
Insert multiple new rows.
Definition: query.h:1031
Query & replace(Iter first, Iter last)
Insert multiple new rows, or replace existing ones if there are existing rows that match on key field...
Definition: query.h:1266
void storein(Container &con)
Execute a query, and store the entire result set in an STL container.
Definition: query.h:888
Query & update(const T &o, const T &n)
Replace an existing row&#39;s data with new data.
Definition: query.h:984
Declares the classes for holding row data from a result set.
This file includes top-level definitions for use both internal to the library, and outside it...
Query & insert(const T &v)
Insert a new row.
Definition: query.h:1006
This class holds the parameter values for filling template queries.
Definition: qparms.h:48
Exception thrown when something goes wrong in processing a &quot;use&quot; query.
Definition: exceptions.h:254
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
void storein_sequence(Seq &con, SQLQueryParms &p)
Execute template query using given parameters, storing the results in a sequence type container...
Definition: query.h:793
A class for building and executing SQL queries.
Definition: query.h:121
Declares the Transaction class.
Declares interface that allows exceptions to be optional.
Row fetch_row() const
Returns the next row in a &quot;use&quot; query&#39;s result set.
Definition: result.cpp:166
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption__coll__graph.png0000644000372000001440000001450712502417165032651 0ustar robertousers‰PNG  IHDR¸ËRçÎÿbKGDÿÿÿ ½§“üIDATxœíiTWڀߦ›E–ØJ³ThŒˆÎQ=ãÆ Šfb4.(ˆL"‚ŽŠzôDeˆÇˆãÄ3›@"¸€¬ ƒjÔ (Ñ ê˜a‹G‘Ž„Þ —ú~_§énðj€nà}~ݺ}ë¾oU=TݪºÝ0(ŠyºN (( BŠ‚ÁìOŸ> “H$ƒhÔbbbëää4¨Q]”ŠŠŠ‚‚‚µk×v QËùó燽(4™™™ChÂ`0† ŽQ"P„!EAˆ¢ÔÕÕ ìˆO(îÞ½{úôé³gÏ>räˆL&ÓI&Cƨe`éììœ5kVeeettôÝ»w÷íÛwúôi¹\®µ}CC‡Ã¡Ël6{ïÞ½C˜ì€1D·Ç#‰¨¨(++«+W®0™L˜=uêÔñãÇ;vlP÷ùëA 2$Q`Æ 'Ož€uëÖutt$$$@KKËõë×---¥R)EQééénnn …B ÇÇÇóx¼ääd‹%¬­­srrššš  ¶¶–Î.,Y²¤¦¦¦¢¢‚ËåFFFj­¤(ª½½=))‰NOYnkk€ææfµüËÊÊlllúéŸn¦Zðöö®¯¯¯®®vww§ƒÀš5kÚÚÚ’’’ µµ•d×edd7GD¹wïEQÝÝÝjåÚÚZ™Lfkk{åÊŠ¢–/_~ôèQŠ¢ø|¾¡¡áñãÇÛÚÚ Egg§\.wssûú믕Ý~óÍ7š¢TWW+sãr¹Z+ûʳ/QÊËË9N?ýÓ5Êrww7“É|øð!]Ÿ““C€k×®©n;É®QôåÒ`hh¨V&“ùÁäää´´´”––À¸qã®]»VQQáèè¸pá›7o444̘1CÙ§‡‡‡f WWWº0eÊ”ÆÆÆ~*5a³Ù¶¶¶UUUjõUUU3gÎ$ïêÅ‹r¹ÜÅÅ…^är¹Ê–öööªÛ®'è‘(ý³víÚÜÜÜÌÌÌyóæÑ±X¬P(Ο?Ïçó7oÞüÞ{ïñù|‡û÷ï+×zôè‘fWôŸ5ÔÔÔÐG¥¯J­DEE©Þã…Âèèh___ò®lll˜LfCC½X__ïàà@— ôò  ö)‹üÒ£<Íj-Ëd2kkk›ÔÔTú#±Xlbb’••ÕÜÜœ˜˜hbb"‹9bmm——ÇãñŠŠŠ´ŽQ¼¼¼jkkïܹãêêzðàA­•TcŠ¢^¾|ùÎ;ï,\¸°¨¨¨¦¦&''ÇÍÍíü£D"é§ÿÎÎNª÷ÅßßßÛÛ»¡¡áÁƒnnntоöCÿ»ntQú…¢¨­[·Ž3¦££Cµs##£)S¦äççSÕÝÝ5iÒ$ssó¹sçž9sFS”“'ON˜0Ãᄇ‡‹Åb­•TZ¦(J ìÚµËÝÝÝÔÔÔÍÍíðáÃ"‘¨¯þ¥Ré¼yóÌÍÍÕúáóù–––vvv;vì ƒ¢(Àþýûýýý_kµ¬¶ØOå›1€]‘34¢ n‰¤©©)%%åìÙ³ºÎe”¢—ã& nß¾=kÖ¬>úhÑ¢E¿¥Ÿ·Þz+$$„¤rû0¨AþXff¦ŸŸß`GÍ0ŒŒŒŒuëÖ j”áqFAtŠ‚¢ D (Ct{œ˜˜84AbÐEqpp`2™Ãè¦ÑÔÔD¢j]'B “ÉT¾'<ýöxx!—+¦O?ÕÕQÃrrë c”^”—×ñùB>_pëV®sÑ/P”^œ?ÿ=‹e`hhpþ|¥®sÑ/P”_‘H¤……÷e2¹Tª(,¼/‘Hu‘¢üÊÕ«•rH$Ò«Wë6½Eù•ììï•Sä Fvö÷ºÍG¯@Qzèè”–þW.WЋr¹¢´ô¿øû?= (=\ºô@¡èõ¤@¡ ._~ «|ô ¥‡¬¬ïÕž(Q••…WŸP€ææÎ[·j …j¥BAݺUÛÜÜ©«¬ô    JësXƒQPp_³~‚¢df~¯6@¡Q(øäEçÏÛª«Ÿõ! Ü¿ÿ¬©©}è³Ò7†Ç,üA¥¥E`oÏVPègn&&=ßè400hié´·gë,?ýß«ò $$é:ý/=( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (zñ‹K“&Mzò䉮³èÅâ€LÖ¢ëDz˜4iRCCƒ®³ÐQ ÆŽ;æÎ«ëDôŽòòò'NèÃ1Ò—û›3gÎÚµku…Þ¡ŠÐà!EAˆ@Q"P„ˆa#Š@ ˆˆˆ˜4iÒ˜1c\]]:$‘ô÷_—êêê”ÿÎëµ …»wïž>}º……ÅìÙ³9"“ÉHV|ãˆÃ‚a#Jxxø½{÷²³³Ÿ>}šœœœŸŸ¿{÷nhhhàp8šíÙlöÞ½{_7Jggç¬Y³*++£££ïÞ½»oß¾Ó§OûøøÈår­íU£¿YÄa¥@FFFÿmØlvEE…rñúõëNNNEÕÖÖàVDDDÌŸ?_&“)kÁĉ“’’´¶ØèšdddèË1ÒuE&Š““Ó¦M›ZZZÔê---ÀÆÆ†úÿÃVZZúöÛo§¦¦*w1¤§§O™2eܸqÑÑÑE)Џ¸¸©S§ZXXxyy]¼x‘nlkk[RR¢"66váÂ…tçyyy“'O¶²² —H$šÑéUÚÚÚ‚‚‚,--víÚ%‹µ¦ñJP”^ˆrùòecccŸüãOž<¡ëU]^¶lÙÕ«W«ªªTEY³fM[[[RR´¶¶&%%988\ºt©¹¹¹¤¤„Ëå@[[477«….++³±±¡;_²dIMMMEE—ËŒŒÔŒN—¼½½ëëë«««ÝÝÝ###µ¦ñÊ=ƒ¢ô‚DŠ¢d2YEEETT”»»;“É<}ú4¥M”êêjµz¸víEQÝÝÝP[[ëîîN¯NsæÌ™~D)//çp8ªS•‘‘ÁårµŠÒÝÝÍd2>|H×çääp¹\­i¼r“õG”á1˜ …çÎOOÏTWWï߿Ϟ=ZO™2E³ÒÞÞ {þ O}}½»»»òÓßýîwÀf³mmméS‘*UUU3gΤˮ®®Ê(Zxñâ…\.wqq¡¹\®²¥ZÈá! EQþþþôüsYƒ±téÒ¾îZµƒ^[:a„G)?îù§éQQQª÷8B¡0::Ú××—^¤OPSSCuMlll˜L¦ò•o}}½ƒƒƒÖ4†Ã#ossóM›6ùùù644ܺu+""bÆ Êàµ: Û³gOqqqkkëÕ«W###éG üå—_¼½½/]ºT[[›››ëéééààJ¯¸}ûöºººÊÊÊýû÷oܸQktCCC??¿mÛ¶ýôÓO>üôÓO~Óö뺾öQÙE&“EFFzxxŒ3fâĉ{÷î¥o%¤Ré¼yóÌÍÍ)mãeÿÊ]–Ëå'Nœpqq;v¬¯¯o~~¾••Ý@ ìÚµËÝÝÝÔÔÔÍÍíðáÃ"‘HÙáÉ“''L˜ÀápÂÃÃÅbq_Ñù|~`` ¥¥¥ÝŽ;”w=ji¼rÏèÏE?’ Ì /^¬ªªR.fee͘1£ÿUû‘‰VôG”áqépª««7nÜxïÞ=‘HTQQqàÀàà`]'¥×èËÄ¥!fÏž="‘håÊ•ÍÍÍÎÎÎ}ôQHHHÿ«¼õÖ[¯l3‚Ñ—©ëÖ­Óu"zGff¦ŸŸŸ>£QzéA^!EAˆ@Q"ôe0;mÚ4]' š€™™P׉¼xñâÁƒúpŒôâöxçÎÏž=Óu=Ô×Û00sæ ]'0nÜ8]g 'gýáþýgË–}—.íôðx[×éè8FéÅÅ‹U,“Å2¸pA}²Á(Eù¹\qîÜ™L.“)λ#—+t‘¢üJEEŸß3a€Ïܾ­ûßÐP”_ÉͽËb1é2‹e›{W·ùè(JÝݲüü*™¬gn›L¦ÈË«’Jµg‚¢ôpýúÿ„Â.Õ¡°ëÛoÔU>úŠÒCvö]&³×B™Lƒœ¼úô€¢…]—.=P»Í‘ËåEEÔN3£ ¸ø‘rt¢ŠL&/)y¤Y? AQ²³¿ïãwYYßq2ú Š/_Š®_ÿŸ\®åU†B¡¸q£æåKÑÐg¥o (ððaS?ae2ù£GMC™~‚/TÏ;vœ€'~ývÙØ±¦:ÈIÏЋi:GUCC à¥!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!¢×Os=}ú4,,L"‘è0!óâ…-ØØü¬ëDt‰‰‰Ill¬“““²¦×OsUTT,Z´h¨óÒ',-@&Óu:¥   00°OQh:4„)!úÈ·ß~«Vƒc„!EAˆ@Q"ô?¾qãÆk×® Ho^^^ʲ‘‘‘««ëßþö7.—û[úTf¨Ú¹ÍôéÓCCCÙlv_+RuäÈ‘ï¾û®¨¨è ©իFW’žžN7ØÝz(Ê€cgg"‘(==ýïÿû©S§}ü37ë\¡P<{ö,;;{Ë–-)))æææZ·¶¶–––fdd¼Y,·uëÖüü|µèªm˜Læ† 4VFþ¥‡Íf?~üøñŽŽŽ[·nmll|ùòåÀvÎáp~ÿûßöÙgvvvçÏŸï«qWWX[[¿Y,…BÑÑÑ¡]•±cÇnÙ²åÍúïŸ7ÅËË«¨¨(((håÊ•gΜ)..Þ°aûロ’’_~ùå±cÇè–b±Ø××·¶¶nݺµyóæ%K–øûûEQ¹¹¹AAAË—/ ûá‡TO§ÏŸ?÷òò*++ \µjÕ—_~)•JµV*«®¨5s&“Éb±ÌÌÌèE™L¿jÕªU«VÅÇÇËd2(//ÿøã}}}W¯^}æÌP(çÎ \¾|ù'Ÿ|òøñc­3Œ+VTTTôÕù_ÿúWøàƒèšúß µÕµ¢uÛµnæëò†g”»wïÆÅÅmÙ²%))©¼¼<999444--­££cáÂ…eeer¹ÊÊÊììì¸\®D"‰ŒŒ\¹r%½Ç;&‘H O:œ––¶iÓ¦Ï?ÿ\3P^^ÞçŸ~äȑ۷oÓ{Sk%›ÍŽˆˆ ?U-€D"‹Åb±¸µµ599ÙÇÇÇÐÐþ(++‹Çã%$$üóŸÿ¼wï^jjªH$:xð ««kzzzhhhRRR{{{vvvFFÆ–-[ÒÒÒãããûÚ-ŽŽŽMMM}uþÕW_@NNh Ôÿ>W]]mÓhè}®‰f&ýÒÊŠâççgjjºdÉð÷÷755õõõ€ÎÎNwww‹U]] ¥¥¥K–,a0R©”¢(±Xlddäëë{ñâEccãììì­[·ÎŸ?ßÒÒÒÓÓ388X3Phh¨££ãÔ©SƒƒƒKJJúª433{÷ÝwéOU˼|ùòåË—¯Y³¦¸¸ØÏÏOùQQQÑöíÛ­­­CBBîܹcdd”œœ¼mÛ6KKKú! /\¸ š'á¹]³sÕOµ"ßÿj›F£‚0BÞp0kjj ,K­ óçÏ¿qㆳ³óÝ»wwíÚ'NœÈÊÊJMM|xâĉӦM³²²€®®.…B)“É®\¹²ÿþ¼¼<‡S__ïââB¯õäÉÍ®éóìÙ3KKË~*_‰±±±¯¯oAAEQô]ÏØ±cOœ8Aïk@Àç󻺺"#####çÎ+•JéûX[[ÛWæ E]¸paΜ9ô¢f窵¢‘ËåL&³¥¥…p»^Iÿ™2(w=r¹ü›o¾¡¯MÀ`0vïÞ}ãÆ ¡P(•JY,–±±ñ²eËâââÊÊÊø|þ;w5»Š‰‰yþüù?þxòäIŸ¾*…Baaa!ý©jY 333‘H$‹éÅùóç'%%½xñ¢¡¡aÏž=yyyR©T&“±X¬îînúZ.‰V¬X¡š'=f§iooçóù---÷ïß?pàÇ[·n]_«f¢5}_]\\,‰TÇ"ª(“'§ÿL”3ŠÁ‚ ._¾¼`ÁºÆÈÈhß¾} ¿üò‹½½ý¡C‡ŒŒŒüüüärylll{{;}ù<|ø°ZW‹/Þµk—D"ñöö /4j•ÐÞÞ~üøqzh¢ZVÃÊÊÊÔÔ´££ƒ¾\nÞ¼9&&æã?f0 , 166 =|øð˜1cüýý½½½÷ìÙ“-•JãââZ[[]\\8@߀À'Ÿ|B¬­­=<<•'vÍÎUOæææšrss7oÞüÕW_¥§§‡……ݼyS5y[[ÛiÓ¦­^½ú?ÿùÏkÍL^kuš^—233ýüüäqÞÉ“'þùçO?ý”|µ‡‰ZŸ-øGD+^^^ʳ# Æ¥§»»›ÇãýùÏðÎ]1ð¢<~ü8$$dÙ²e3fÌø-ý˜™™½÷Þ{$•È0X—dX3—dD2òßK$’¯¿þº²²’Çã999ÍŸ?ýúõL&ó•+âÀY•~F‰D!!!?þøcHHHbbb@@@IIIDD„B¡ÐÚžÇã½ÿþûtÙÜÜ|^ÙGFøåÔ©Sl6û‹/¾000GGÇÙ³gøá‡EEEZ´¨¾Ê¼WöÑ~F)))Ù´im ‰‰ÉúõëKJJ´ÎXP}•¯úÊ^ =zôý÷ß_»vm\\\ww7xyy•––­X±âܹsºØ¾¡c$‹B¿×МøÈårŸ>}J—Õf,h¾Ê§ù׿þÕÜÜ]YYyöìYºþ»ï¾‹ IHHèììä Ò%#Y”¾`0Ê1ŠÖi jÈd²«W¯†‡‡ÛÙÙ9;;øá‡Ê–+W®477_ºt)¨M?aŒdQÌÍÍÇ_WW§V_WW7yòdºL2c¡­­M¡P(ç888([r8P™b1‚É¢ÀâÅ‹O:¥z#‘HΞ=û‡?ü^lll¤ ýÌX7nœÇ£›ššh?` &ië?#\”   ¶¶¶;wÞ¹s§±±ñæÍ›¡¡¡Gy¬uƒÚ«|‹åååõïÿ›ÇãýôÓOÉÉÉ‹/ê-Ñ5#üœijjš˜˜˜ššßÔÔdggçíí½víZå´Yµ L&Së«üíÛ·ÇÄÄlݺÕÐÐðOú=·aT1zßõàƒ×~Àw=È2zEÁ ¯Åè…ÍfïܹS×Y F¯(Èk¢ D (( B„–nªßðFš^¢xzz®_¿¾¯/Å#£WWWOOOÕÉ—¡Ç(( BŠ‚¢ D (ÿ¾”µÎ[„wIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x79.html0000755000372000001440000001040112502417164023642 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- y -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiStatementsOption.html0000755000372000001440000002542612502417163030526 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MultiStatementsOption Class Reference

Enable multiple queries in a request to the server. More...

#include <options.h>

Inheritance diagram for mysqlpp::MultiStatementsOption:
Collaboration diagram for mysqlpp::MultiStatementsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable multiple queries in a request to the server.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_23.png0000644000372000001440000000734712502417165024027 0ustar robertousers‰PNG  IHDRã3êÒ(4bKGDÿÿÿ ½§“œIDATxœí›XSÕÇÏŽÉAØOX¿ˆ"ê“=“Œžì)ã‡IÉ“”•"šóQ3*㟢'D Ô B ih2!@ d*8"¨üŽÁøµïçé~¯wwl ä}ýu÷¹÷~Î9ïóáÜ»74!  ˜ñ˜=êPP˜U©³ªR)fæ„Ï …âìÙ³¤+&“Å`0ˆÂ‰ŠŠzDÝ£ ø?'Nœ T&qMÕjµ‘‘‘Ç$ý£ Ðh´±±1BzO¥˜P•J1; *•bv@U*Åì`&Vjkk+F›Ä„ÉÉÉ‹-²¶¶ üüóÏõ_اæááAص £Ñh­­­› ÃÖÖö¥—^ºyóæCe˜tm§™X©“K@@@mmmZZZ}}ýöíÛsssCCCµZí´õA¡P\¾|û¨T*+**&–ªººº³³³£££¼¼\§Ó­]»v’úHD.—³X¬)J>þû•ºk×.6›]VV& ÃÃÃëêênÞ¼yàÀiëCppp~~>ö±¤¤D$M,›Íæñx|>ßÏÏ/++«ººZ¥RMR7@§ÓõôôLEæ‰1ÁJ¥Ñhôööf³Ùiii‡vqq±µµýôÓO‰‰‰ñññèJµZmiiÙÐÐ8yò¤¯¯/“Étuu=|ø0@§Ó}ûí·ÞÞÞ666Ë–-“J¥øgzT{zzr8œÄÄÄááaÒ xð¹†?ÎÍÍMMM¥ÓéXZ++«äää¼¼¥R©ÓéúûûµZ­ONN–öСCú•ÚÔÔ„ÎJ$wwwÒ ¡~¢JÅæ£ººšÅbªT//¯ÎÎNt|îÜ9???|£¤£_«–––M›6}üñÇÂÜÜÜ,><<ÜÜܬV«µZmyy9 ¢ž ___ôwˆ¥Â˜3gŽH$B“&ñôô,,,D7þõ×_è $99píÚ5,³¡!?´)‚´R'þžjccƒô"ètzxxxaaaww÷¯¿þ ˜?¾T*­©©"‘è·ß~333“Ëå~~~XN___ý†<<<З—W{{û8A}ìììx<^cc#!ÞØØèåå…@\( >Ÿ¾b‡„„`߯Ñ-¤£3Jddd~~>„ðèg0ׯ_á…ž~ú霜|Ï7lØpåÊ•wß}Ÿ•&„pddäÂ… îîüý÷ߘJÞÞÞ¯¾ú*–ä÷ß_±bÅÞ½{yA¨\Ó×TL2Òc©Têè蘑‘ñüóÏ£SƒƒƒÂáá᜜:ÞÓÓãîî~èÐ!,-zrZSóóó]]]IƒãtuË–-"‘hll }ŒŠŠ:r䈳³sFFJ…žãR©SC `#R*•ÍÍÍ„FtFµãr¹VVVwïÞÅ⃃ƒÅÅÅ:N£Ñ`¶µµq8œU«V­]»–Tv<¤I\]]Ož<‰.hhhسg&©Z­¾zõª……EYY™‰CžNÀä>ýǯԱ±1‡ÃårøátJ£Ñ0™Ì‚‚‚®®®ýû÷3™LF³wï^‡óÓO?uvvž9s†ô=5((¨¥¥¥®®ÎÃÃ#55•4 ¿&Þ¿ßÓÓ3((è—_~¹víÚŽ;gxx¸«« }ÿþ}´ä [#""ÐOKK–,yï½÷Ó¦?ºq:€i²qãFooï   |\©TÒh´3gΠ}õõõZ­688x÷îݽ½½<¯¤¤D_j<¤IÄb±¯¯¯L&“ÉdÏ>ûìÛo¿ |É‹ÅB¡P£ÑŒ3äþþ~£Å0éLk¥Bßyç¹sçªT*ì.‰DâææÆ`0¼¼¼Š‹‹!„###»vírqq±¶¶^¶lÙ‘#Gô+õÀO>ù$‹Åzÿý÷5 i>8„ÂR«Õ[¶lY¸p!“ÉtssKII‰D¯¿þ:„pÏž=vvvnnnÅÅÅØ-*•ê­·Þš?¾ƒƒÃ† ôýÑê¦É… „xzzº½½ýO<ñÝwßEGGs8œo¾ùfÑ¢E###¢¢">ŸßÛÛ W*i’¡¡¡¤¤$GGG[[Ûèèh¥RIè˜F£ …b±˜tÈ£££Ë—/·¶¶6Z “ÎdVª)ìØ±#&&æ¡n!éhRžJÃÃÃ/^ü7&0: !­T¢?uRêèè8xðàÑ£G§"ÿ¿‡Á` ß 'ÀÌÝ’)Ù£ª­­ X¿~ýŠ+þMžyóæ%$$˜œN&kt >ø+Ýš5k”çŸâB£Ñ$ *EŒÿþ¾?щïû?¬cmM˜îpÃöÙ§ÚÕ¶{÷n†6Ö 111O=õ”µµõ3Ï}e2™øú³µµE#DÜú•JºÇ}ëÖ-Úë‡6551™L}A™L&ª$7nÜ´iSWWƒÁ¸uëüçï>..®¶¶–°Äâùðà £O>ùÄPC†Z×WÀV¤A.—[UU…OXWW000@* $›ýJEú›(,é(ðyH9~üøòåË…Ba[[›¡Ë°~N¦?™Ùy4N§ËÏÏïíí_½z5Zy5¬T*kjjÐõ˜±Õ¸\.N—Ëåèã7œœœô/sttT(踱±ñ³Ï>CÇ‘‘‘EEEH5dÝb³Ù ,¨®®®ªª"ü †V«•H$éééýÿ°yóf¤&iC†Z×W€T+C¾üòË_ý5Ä=prssGGG---Ç‘…0;ú ýM–tø<¤Ü½{÷Ê•+íííþþþsçο?ä*wR¼T¤?hÌMG°™þ¡˜˜˜•+WÊår™LæããƒY!îOŸÔó ö „2™,!!ÅbÅÇÇ_ºt‰Ð¢T*¥ÓéÈWЏté0l®3Ôº¾¤ZðÞ½{±±±UUU—/_Þ¹s'àÔ©S†d!¼Î„ç˜)ÂGžŠèt:77·mÛ¶‘6d¨u} iE„*ŠˆˆGGG›ÀÀ@̺J* éìàu&T˜)ÂG<K—.ÍËË&JRH+õqÜ÷OIIQ(yyy†.Ðét:ÎÜ|ýØ}ª*)‘¿¿¿›››x“ ù³$@˜?þ„ T! 2(//·³³ËÎÎGHR=¶mÛæîîþ廒ŒdÍŸÃ øÁè0¾@‡Aðex9ìåË—a¶´´ÐéôÉ“'ëêêÎ;7//o“!≄—/_bî ôôôÜÝÝÛÛÛ‡Lî`^Z:::fÏžM¡P ÆÃ‡=<<<==oÞ¼©j]ƒcìØ±»víúˆËÊʘLfKKKQQQSSSPPÐkSé·#‰ððp–’’‚n~þùç­­­±±±Ë–-S­°Aa``pôèÑ8ÐÐÐÐØØ`bb½zõê¡–¦ƒ¾‡„´´4CCãGfffN™2e̘1û÷ïûøø =»ºº(Ê£Gׯ_·µµ5j”……Eff&@$ÅÅÅÙØØP©T;;»’’ɵ]®^½úÙgŸ÷õõaÁ‡ëˆd;'''$$DR|xxxjj*Úæp8ßÿ½¹¹ùŽ;z{{ÎN™7nÜ@oœ&&&bg„ßÿÝÆÆfܸq111¡PxìØ±iÓ¦Q©Ô Ÿ:~üx##£ÐÐP>Ÿ/›„H$ÉQ({”̬DƒÁ@äðôôär¹è½ÁÝÝËå&%%Þ½{wçÎ}}}>Ÿ HVVÖôéÓE"QWW—––Vbb"“ÉLMM%‘H]]]IIIFFF¹¹¹---æææ€/^ ’І““ÓóçÏ+**¬¬¬"""0ƒ‚p8œäädTž¸Íf³,k ‰lܸqñâÅuuuµµµ3fÌ@SÉŸÂ\.—L&{{{755eeeÚÚÚУÜÜÜØlvrr2 ££ãĉ’Ó755E'ŽžIâs‚™AèèhWW×7oÞÔÖÖ~ñÅ»wïF{þý÷ß\.÷Ù³g‘‘‘‚`*ļ@e–Ïúõëׯ_ÿa¤Ü£ŒÃª««éïï—j¿xñB #²bÅŠ£G"Âb±455cccÙl¶H$êìì …Ó§O?þ¼8mFF†¬Ãjkkѽ ÃÊÊ 38N‹`³Ù˜{ûûû‰DâãÇÑÍÜÜ\4•üÙ)ìÐ××÷ôéÓ®®.¡PxçÎÉ£JJJ${N›6Mvúˆ“ʃ ˆµµ5“ÉD;Íš5 ‘©*=z4ÚS!æ(³|dö1OúT* ©©)Õ‰ÄuëÖåææ¾{÷îöíÛ7nèéé•””TTT˜››/Z´èÞ½{õõõ³fÍç´µµ•hêÔ©hÃÚÚº©©INP==½ñãÇÿóÏ?’ÁÊÊʹsçöôô¼}ûV(ZZZ¢q+++q*9³SØL&?þÜÙÙyΜ9çÏŸ—< ½K‰{666*œ>&Ry &&&èK—.}õê;µ»»{×®]ŽŽŽ‚`*ļ@r2Š¡ÿYrýúõyyyÙÙÙß|ó ºöñx<‘Htùòe‹åãã³zõj‹effVSS#>êÉ“'²©Ð¾€çÏŸ£gv  &kÖ¬9~ü¸ä?謬,>ŸO¡PÆO$ëëëÑx]]™™ÙÇÏùáñxîîî¡¡¡ÕÕÕgÏž•Ü…^31“'OV8}L¤ò Äfb³ÙR(ÊÖ­[ÛÚÚ0b^ e2+%ø#Ž‘½½½@ ˆŒŒôòòB#ÁÉÉ)''‡Ëåö÷÷kjjR(ooïÐÐЫW¯¶¶¶þñÇ»wï–MòòåËÊÊʰ°°M›6 |ÿþ½øFÉö¡C‡îܹãååUVVV[[{ðàÁÓ§O:t ©©¹aÆàààW¯^=~üxß¾}èíöéëëëïï'“É</<<ÐÙÙ‰Ù3 @rúïjooo•@á ëÖ­Û³gÏëׯkkkããã¥ò¼yó&::z„ †††˜ 1/œÌƒCrÉÊ=‡‰}=P; @[[›ËåŠb0–––d2ÙÚÚúêÕ«è“Dddä”)Stuuíìì.\¸džÃRRR&Mšd``Äãñ0ƒÈ‡O*’mAÜÜÜLMM©TêW_}uíÚ5ñ.‹åå奯¯obb²mÛ64•ÂÙ)ìpâĉqãÆM˜0áìÙ³žžžFFF˜=Á±cǬ¬¬tttìììÐÛ‚õ[9RÏa²#r¹Ü-[¶èéééëëûùùuwwKåÑÐаµµ­¨¨@ÄT({Ê,Ÿ!xÒW†°°0:>¨C¤œ!µ)'VÈ:lˆß¸ööö¶´´¤¥¥]¼xqh3CÔ”!~{ðàÁ—_~éíííààð)yFíïï¯L2Ì‘®¢f0°ÆòѠ摬¢É_¾!Ãè0¾@‡Að: ‚/Òo+Š‹‹9ŽJ¤ éìŽ=’‹ê>‘úúz ‹B’/ÇàïâÊG[ûscãŸ44F©ZȰfûöí’¦úàmD>ß~{ª²²áða·ï¿_ j-j|S–·oßÿõ×käæþ¥j-êt˜²äæVkhTU½nld©ZŽÚ¦,—/W …"‘¨qíÚ#UËQ Ã”¢®®íÙ3&ÚDÙÙ•ªÕ£F@‡)E~~µ¦¦ø\!/^¼ýï×Bt˜’\ºôω7I$âÕ«p¡T è0ÅÔÔ467³%#0;û!|Ñ£ ÐaŠÉϯ&‘ˆRÁ–ΣGoT¢G½€S€P(º|ù/@('‘ˆùùÕ*‘¤^@‡)àÁƒz«K6.srþBß_@䦀¼¼*Ù%…Íî)+{‰¹ ":LÿùO­P("‘ˆ$‘H$‰hµÝ‡Að: ‚/Ða|ƒàËHvXss3FSµŠGÝõ£Œd‡A†Ða|Q±Ãh4ZaaáæÍ›]\\.\¸pëÖ-OOÏ•+W¦¥¥Μ9ƒöäñxÎÎÎ/^¼”••ùøø899ÑétôË‚ yyy›7o^±bÅ?þøèÑ#Éõ]nJKK½¼¼Ö®]{æÌ>Ÿ®M’m@˜˜¸víÚµk×&&& ‚²²277·ÎÎN@qq±——Woo/ ¼¼|ëÖ­ÎÎή®®.\Pf¦‰#;:æy£_U¨þVUU•àçç—œœ\^^žšš˜™™Éår-ZTZZ* ¥¥¥&&&VVV½½½...—.]òòòЉ‰éíí-((øí·ß|}}333¿ûî»#GŽÈ”ŸŸäȑÇ?xð@|áeƒcǎݱcºW²}åÊ&“™””tüøñêêêôôô¯¿þzΜ9ñññl6;>>~ïÞ½£Fêéé9pàÀÔ©S³²²“““9ŽÂ™ÊQ8Ðè˜çAŽ~U¡z‡mذB¡899èt:…BqvvtvvΘ1ƒD"ÕÖÖnß¾íääD ø|>‚ <L&;;;_¿~]KK+''' ÀÞÞ^__Þ¼y¾¾¾²š››ÛØØøúú ÔÑÑY¹r%ºW²]XXbdddaaáïïÿðáC@PPPuuõŽ;¾ýö[kkk™LNMM Ö××722tww+œ©…ŽyäèWx}5R … ‘HRm€†††½½ýÝ»w-,,ªªª¶oß R©'Ož¼råJzzú´iÓètú¼yó˜L¦•••8§………ì@æææhcâĉííír‚˜´¶¶ºººŠ7uttººº«V­ÊÈÈ8~ü8'‘HMMM±±±<oêÔ©JÎT¡ÙÑ1σýªBõ“ƒƒCTTÔäÉ“gΜihhèëë‰D ¸¸8,,,??ßÀÀ ®®ÎÒÒ=ª¡¡A6USSê¼ÆÆF}}}9ALÆŒsòäI333@WW‹Å´µµåååÍ™3çìÙ³aaa¨¼ˆˆˆˆˆ;;;>Ÿ_XX¨üd刑óŸO"‘´´´–/_žPZZÊb±>|ˆY`×ÜÜüìÙ³”””¥K—ìîî.((@÷J¶ííí“““ß¾}[__¿sçÎüü|AbbbÖ­[·ÿþªªª²²2ŸÏ$©¿¿?==ÐÓÓ£äd14:æy£_U ÷{˜††ÆÂ… oÞ¼¹páB4B&“÷ìÙ“””ÔÖÖfjjN&“7lØ  ããã9ú¤%•jÉ’%Û·oïíí]¼xñÆÑeH*àp8±±±èã‹dÛÇÇ'..nëÖ­aáÂ…þþþùùùÇÓÓ“D"mÛ¶íĉ3gΤR©QQQÚÚÚt:}ñâÅ;wîÌËËSf²˜ QdGÇ<rô« ¼þ ³»»{{{ûT襤¤´¶¶îÛ·OùCš››7mÚTRR‚¹)'¨*T+†F£1 wwwÅ]ϰ^%ûûû™LfaaáªU«T­ò‘ k‡=}úÔßßùòå³fÍú”<:::«W¯V&¨*†•˜¡E VIÞüÿ]%!#uuXGGGTT”‡‡ÇòåËîÝ»§jE؈¿ Òh´ææfÌ]#µt—ËõõõÕÒÒ OLLtttüå—_*++U­kpèêêzzzªZî ÷÷a˜¤§§Ïž=;44Ýœ4i‹Åb0sçÎU­°A1fÌ???U«ÀµtØÝ»w###%#›7o?îêꊋ‹+//'“ÉŽŽŽ>>>d2™F£íܹóÒ¥Kïß¿www700HOOçr¹®®®ÞÞÞ…ÊËËÓÒÒutt\]]ét:zÔÞ½{333Ùl6N÷ðð‰DÙÙÙ...ÍBò˜l€@ HII¹yó&`Ù²e¾¾¾Rß1Õõ[%ѯr'N” jkk£… €S§Nµ··'&&FGGWVV^¼x+,ž‘ÓANMÎýû÷ãããýýý“’’:;;srr †ŸŸ_ff¦——Wbb¢’ó’ʰ*v>ýìýû¨ŸÃÐ×+s¯@ øóÏ?ƒ‚‚LLL,,,¶lÙ".ƒQX<#§ƒœš]]ÝeË–¸\îµk×$눔_¥ò€ê…Ôõ»ëR©T==½×¯_OŸ>]|öìÙ¯¿þzêÔ).—+‰LMMѸ™™™øëžÂâ9äÔäHölooWXG„‰T0@½Ú¡~,X°€Á`üäÉ“úúúŒŒŒÜÜ\´®•D"Ñh´Ó§O3™ÌW¯^¥¦¦.Y²äÓGT¾&gÍš5’uDh> ‡ÃaI pPÙŠOŸÈ¿ZÞÃÆŽ{îܹ„„„ððp7qâÄC‡ÍŸ?Ý ©©éèèˆÖä|"ºººJÖ丸¸ðùü„„„ŽŽKKËýû÷ÿðÃ讟~úI²gVV–üAe+v>}"ÿ>ð»$~—„¨3Ða|ƒà t_ Ã øÁè0¾àøÆµ¥¥åÆøå‡¨8ý/ê?ÿü³ªgQ"‘xÿþ}œœ€×;}>‡Að: ‚/Ða|ƒà t_þîp:õw¦IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadParamCount__inherit__graph.png0000644000372000001440000001375012502417165031670 0ustar robertousers‰PNG  IHDR¸»YÅÃ>bKGDÿÿÿ ½§“IDATxœíÝ{TWðBxƒ„ƒyÈAÑöt=J·J)®­[P ÔBA«âv…ÖºUX[-*g·V,  u±"ï"E«²Úµˆ¢­B‚òò$’ÄðHHÈÌþ1n âR&ÚßçøÇÍÍ;¿Ì|™™&&F"‘Œ·81yee¥——‡ÃIJJÒ¬Psí‰äwÞa³Ù...ÉÉÉr¹!D£Ñ¾ùæooïiÓ¦íÚµkŠ6ëÄàThjjjjjÒ=¦¿¿ßÄÄ$;;[ äçç3Œþþþ––uÍÿüç?9NyyyWWWuu5—Ë%î’H$¹¹¹ÄÍöÎ;ÃÂÂîÞ½Ëãñ^xá…M›6á8ÛÝÝíààP__ãøîÝ»}||x<ŸÏ÷óóKNNoq¢˜àààæææ‹/º»»§¥¥iV¨ÙŽŠŠ lkkãñx³gÏNKKÃq!.‹sssB½½½“ßn¿à ŠH$266ÎÈȋņõõõ©T*ÍMïééùõ×_«Ç:tHwîgÍš%ˆöéÓ§çÍ›‡ã¸X,vqqñõõ%öŽã^^^åååDûúõëêöØÅ‰bx<ÑYTTäîî®5( …‚N§«ryy¹»»;Žã¡³gÏB---º· E»ÚÚÚððpsssÿãÇã#ÿFMMMÔƒ¯^½ª;(,KóPjmmMôoÛ¶N§ß¿_=ŒÏç“Yœ(F&“Y,–Ö ttthŽäñx, Çq„Ð/¿üBtxP ÷E&“aVRR"‰âââ–,Y"‰4<÷Üsê›O|„Íf«÷„X,¾xñ"B¨££#333((hãÆÄ0.—{ûöm¢ÝÐа}ûv‹#„ˆ4 „𛛉ÓßXt:½½½¸ÙÖÖæììL´Œ wh2Ü*i4ZpppYY™T*U(ÆÆÆfffÄ]ýýý¡Õ«W§¤¤TVVvwwÿý÷[·n%î}øða^^ÞØö[o½õñÇß¹s‡Çã…„„ìÛ·ðwß}wýúõ………555UUU¡èèè¿ÿýïÄßîºuëîܹ3ÞâDÿ† Z[[/_¾¼yóæ·ß~[³B5cc㈈ˆ¤¤¤[·n555}òÉ'QQQ¿Ý¦ûMPr#y-**š9s&“Éœ5kVee%ŽãJ¥rÑ¢E8ŽïÞ½ÛÝÝÝÜÜ|Á‚ÄŸ8>òô¤Ù–J¥«V­²µµµ³³KHHØ»wïܹs ŽãNNN"‘H.—'''s¹\kkë•+WŠÅâñ'&ÏËË›>}:›Í^¿~½L&Ó¬Psí"‘(::ÚÎÎÎÉÉéƒ> NCHãtƒ ûÔCéø>qšxÚ?fÐÚÚêáá1•Âíf¸§`P (gee•˜˜HuS‚2q';;›ê*¦A¤@P)@ eÿ]C.—Ãÿûµärù¨·œ¦ 5Aa±XB¡°¯¯’µëVSs!ôÅuŒÃÆÆ†’õRóʬÁR©°¹sSB<Þ6#£gäã®z×(#\¸Ð* ˆDýuu­T×bX (#””üÄ`•”\¦ºÃAyL.WVW7«”J¬ººQ.WR]‘ ìããƒaX¿‰‰Ivv¶@ ÈÏÏg0ýýý999§¼¼¼«««ººÚÅÅ!ÔÒÒBÔ@4‚ƒƒ›››/^¼èîîž––¦µÇq‰D’››K”§ÙF544ôDÜÛÝÝíààP__ãøîÝ»}||x<ŸÏ÷óóKNN&Fîܹ3,,ìîÝ»<ï…^Ø´i“ŽÚˆE4ÛQQQmmm<oöìÙDÁ¡ððp±Xœ››‹êíí%³Ù‹ŠŠHîJ]óL~ òA¹rå Žã …bT»¥¥exxØÑÑñ?ÿùŽã¡¡¡ééé8Ž‹D"cc㌌ ±XŒaX__ŸJ¥òññùúë¯ÕÓ:thlPx<žº6www­ºKï/J,»¸¸øúú{Çq//¯òòr¢}ýúuu{Ö¬Y€hŸ>}zÞ¼y:j#zÔm…BA§Ó›ššˆþòòr¢`„ÐÙ³g5·™ÍþôEýÀ´¶ßÿýµk× …B&“ÙÑÑAÜ[[[nnnîïïüøqÇMMMÔÓg¨QA‘ÉdĽ,Kk'ÉRÇÚ¶mN¿ÿ>q“Åbñùü±ÃX,–fά­­uÔFô¨Ûš#y<Q0Bè—_~!S¤æcÑKP èéñ²eË***Š‹‹-ZDœPd2†a%%%"‘(..nÉ’%"‘ÈÙÙ¹±ññïü]»vmìTÄG577s¹\¿VGGGfffPPÐÆ‰.—{ûöm¢ÝÐа}ûv¢Íf³Õ;R,_¼x‘|t:½½½¸ÙÖÖæììL´Œ(Úe“Ïš¾Ž(ÃÃÃÇÁÁáàÁƒÄ]2™ŒÅb•–– …Âýû÷³X,™L¶cLJóí·ß ‚'Nh½F hii¹té’‡‡ÇÖ­[µvâ:¯Qêêê#á8®R©‚‚‚>ýôS‘HäèèxìØ1ÇSSS}}}ù|>ŸÏ_¸pá{ï½GL’””~ûöíÆÆF??¿uëÖ騸Ò<ºDFF¶··óù|¢àñ¶¡îÍþ¬zp_½zµ©©©T*Õœ|æÌ™L&sÖ¬Y•••8Ž+Šm۶͘1ÃÂÂbÁ‚GŽ”¼¼¼éÓ§³Ùìõë×Ëd2­øÈ£Ùï/jïÞ½sçÎU(8ŽWTT899‰D"¹\žœœÌår­­­W®\)‹‰I¤RéªU«lmmíìì´–¡T*-Zdaa1ª‘HmggçääôÁÿ.‚BÆæÍ›###Õ"šwìMS’2ôCyÁM.—wuu8p °°êZ€†r1[__ÿâ‹/¾ûî»/¿üòdæ±²²JLL$Ó9õ ¤Œ‰Ñï”GDDL~ð[ ÑhEEEË—/Ÿä<†rD‚H R (€½==~õÕWõ5µpœ†¢ÑàÚ|=ÅÏÏoÅŠ*•jòS‚›7§!„Ïš%¦ºýX±b…ŸŸßäçÑÃÓãg‰D28gÎÖÔô©••)Õå¸FáäÉ&G†8Á§ºÃA¡¨èÒÿß¹Du-†‚òXw÷ÃúúvÇ1 ¯¯oïî~HuE‚òXUUþhƒÐéFß}ר{üï å±’’ËêçnÃÃXIÉejë1(”GÚÛ…MMOq>ÿÞ­[B K2(”G*+¯Ó5{Œé••W©ªÇÐ@P).¾¤TŽxÍP©TÁs5 B]»ÖyçNïØþ;wz¯]ÓÃ÷Z= (!TQqeÔy‡`lL¯¨¸2õõ  Â0¼¤äò¨óA©T•”\Æ0x—‚‚ÐÕ«w…Â>cc:“ÉõÏØ˜.ö54Ü¥ºFêʧð)äâb»vm úæ… m¡ fª{œm)(ËÀÀ»Ç£%&BåäÄR]ˆaS ‚H R (€ ‚H R (€ ‚H R (€ ‚H R (€ ‚H R (€ ‚H R (€ ‚H R (€ ‚H R (€”_¤sæÌ™ÖÖV «1%%¡eËœ©.„boøµl|Sx„Á`hfcÄ…F£¥¦¦Nò'ªÁ3à‡~øÇ?þ¡™ ¸F¤@P)@ bXOs:;;ß~ûí³gÏêe6Ígw/¾øâ† lll~U%š“˜™™ùúú&%%999é¥Âñôööfee555=|øpúôéQQQþþþ¿éŸè?¢dff–•••––fdd…Â/¿ür2“ìÙ³ÇñíÛ·ë½NMR©4>>ÞÄÄ$555;;û•W^ùôÓO/_ÖÃÏ‘ ‚7ß|sbËÖEïlll¦M›†²³³KHHؼyó$'INN^¶lÙàà ™™™žký¿ƒ>ÿüó)))ÄÍéÓ§‹D¢¢¢¢?üᓜÃ0©T:±eõ% àĉ±±±K—.=räÈ©S§V®\¹xñâ „öîÝ»k×.b¤L& iiiAÕÕÕÅÅÅGFFž:u !„ãxEEElllhhèÚµk¯^½ªyïìì 8þ|ttô_þò—½{÷*•J­êÁš j­œN§ÛÚ>úVû .¼÷Þ{!!!aaaGŽAavôèÑèèèÐÐÐuëÖݸqCûö22B?=8vbíW®\‰ˆˆàóùc|xÍš5¹¹¹‰¤¬¬¬¨¨(!!¡   :::;;{ì$]]]_|ñ…———¥¥¥ÖIˆñÅÅÅ›6mrvvo€Ž Øßß/‰\]]5·ƒ©©)‡Ã!Ú{öì …ÙÙÙ;wî¼|ùraa¡Ž=U[[»oß¾ÄÄÄœœœ¾¾¾¯¾ú !T^^NzW?6‘ DDD˜™™#„"##ÍÌÌBBBB}}}³gÏf0<!TSSL£Ñ”J%Žã2™ŒÉd†„„TUU™˜˜”••­^½ÚßßßÎÎÎÏÏ/>>~ìŠÖ¬Yãâââííúôéñ:ÍÍÍ/^LÜ«ÙFÅÇLJ††.^¼8&&¦¹¹900!Äd2óóó“’’ìììˆ000pìØ1ÍzÆN+•J·lÙ2Þ$Äø„„„çŸÞÊÊj¼:6 ñb(FӺ凇‡Ïœ9³~ýz'''77·U«V©7‹VK—.µ°°xíµ×B>é&rBœž‰7†4Û!###ÿsçι¹¹ýüóÏ7nDYZZþë_ÿ*--=xð §§gdd¤ŸŸŸ@ pwwWÏéææ6vE...DÃÕÕU(êèÏáÇBCCC¥¥¥ûÛߎ=Ê`0îÝ»—‘‘!“É<<<ˆ‘B¡p¼zÔ“hÒ:‰º0Ýtl@KKK[[Û;wîøøø¨Çß¼yó‹/¾Ø³gT*Å0ŒËåýÎÎΣ¶À¨ßJa³Ùš“O†þŸõ¼üòË?þøã?ü0gÎ{{{„ÐÐІaiiiUUU¡¡¡›7oîëëc³Ùmmmê¥nß¾=vª{÷;;;Odbb²xñâžž‰D244”––¶bÅŠýû÷ÿõ¯%8::>±MZ'!;FÇÝ.\XTT¤¹ËOŸ>=<ûì3SSÓÈÈÈÀÀÀ?ü°¬¬L©TfeeõööΜ9sË–-Äs„ñh$33S÷€ŠŠŠ'n@›ýû÷gee¥¦¦Êd2WW×íÛ·ÏŸ?Ÿ¸wÆ ™™™«W¯666~å•W¢¢¢˜Lf\\ÜW_}uøðáµk×þøããÍìèè8gΜ°°°ãÇ?±ŒQ~“äååuwwòÉ'äõš¬Ö—hõûº-Ðá7ÿ˜B¡'NœøóŸÿ¬ß™µô”7n$&&¾þúëóæÍ›Ì<æææK–,!Ó ¦| hŸpA¤@P)@ £ùŸ|èt:ÕåCA§ÓGüç@ÍûΜ9sÿþ}ª*ÅÁÁAó&mÔÓh×(€ ‚H RþùTçÄ2ÎKõIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DataOption.html0000755000372000001440000003205212502417163026226 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DataOption< T > Class Template Reference

Define abstract interface for all *Options that take a lone scalar as an argument. More...

#include <options.h>

Inheritance diagram for mysqlpp::DataOption< T >:
Collaboration diagram for mysqlpp::DataOption< T >:

Public Types

typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Protected Member Functions

 DataOption (const T &arg)
 Construct object.
 

Protected Attributes

arg_
 The argument value.
 

Additional Inherited Members

- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

template<typename T>
class mysqlpp::DataOption< T >

Define abstract interface for all *Options that take a lone scalar as an argument.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/sql__buffer_8h_source.html0000755000372000001440000007054512502417162025326 0ustar robertousers MySQL++ Reference Manual
sql_buffer.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc. and
6  (c) 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_SQL_BUFFER_H)
29 #define MYSQLPP_SQL_BUFFER_H
30 
31 #include "refcounted.h"
32 #include "type_info.h"
33 
34 #include <string>
35 
36 namespace mysqlpp {
37 
40 
41 class SQLBuffer
42 {
43 public:
45  typedef size_t size_type;
46 
55  bool is_null) : data_(), length_(), type_(type),
56  is_null_(is_null)
57  { replace_buffer(data, length); }
58 
60  SQLBuffer(const std::string& s, mysql_type_info type, bool is_null) :
61  data_(), length_(), type_(type), is_null_(is_null)
62  {
63  replace_buffer(s.data(), static_cast<size_type>(s.length()));
64  }
65 
67  ~SQLBuffer() { delete[] data_; }
68 
70  SQLBuffer& assign(const char* data, size_type length,
72  bool is_null = false);
73 
75  SQLBuffer& assign(const std::string& s,
77  bool is_null = false);
78 
80  const char* data() const { return data_; }
81 
84  bool escape_q() const { return type_.escape_q(); }
85 
92  size_type length() const { return length_; }
93 
95  bool is_string() { return type_ == mysql_type_info::string_type; }
96 
103  bool is_null() const { return is_null_; }
104 
107  bool quote_q() const;
108 
110  void set_null() { is_null_ = true; }
111 
113  const mysql_type_info& type() const { return type_; }
114 
115 private:
116  SQLBuffer(const SQLBuffer&);
117  SQLBuffer& operator=(const SQLBuffer&);
118 
120  void init(const char* pd, size_type len, mysql_type_info type,
121  bool is_null);
123  void replace_buffer(const char* pd, size_type length);
124 
125  const char* data_;
126  size_type length_;
127  mysql_type_info type_;
128  bool is_null_;
129 };
130 
131 
136 typedef RefCountedPointer<SQLBuffer> RefCountedBuffer;
137 
138 } // end namespace mysqlpp
139 
140 #endif // !defined(MYSQLPP_SQL_BUFFER_H)
141 
bool is_string()
Returns true if type of buffer&#39;s contents is string.
Definition: sql_buffer.h:95
bool escape_q() const
Returns true if we were initialized with a data type that must be escaped when used in a SQL query...
Definition: sql_buffer.h:84
bool escape_q() const
Returns true if the SQL type is of a type that needs to be escaped.
Definition: type_info.cpp:271
Declares the RefCountedPointer template.
Holds SQL data in string form plus type information for use in converting the string to compatible C+...
Definition: sql_buffer.h:41
SQL field type information.
Definition: type_info.h:148
static const enum_field_types string_type
The internal constant we use for our string type.
Definition: type_info.h:270
SQLBuffer & assign(const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Replace contents of buffer with copy of given C string.
Definition: sql_buffer.cpp:37
SQLBuffer(const std::string &s, mysql_type_info type, bool is_null)
Initialize object as a copy of a C++ string object.
Definition: sql_buffer.h:60
Declares classes that provide an interface between the SQL and C++ type systems.
size_t size_type
Type of length values.
Definition: sql_buffer.h:45
~SQLBuffer()
Destructor.
Definition: sql_buffer.h:67
SQLBuffer(const char *data, size_type length, mysql_type_info type, bool is_null)
Initialize object as a copy of a raw data buffer.
Definition: sql_buffer.h:54
bool is_null() const
Return true if buffer&#39;s contents represent a SQL null.
Definition: sql_buffer.h:103
bool quote_q() const
Returns true if we were initialized with a data type that must be quoted when used in a SQL query...
Definition: sql_buffer.cpp:56
const char * data() const
Return pointer to raw data buffer.
Definition: sql_buffer.h:80
const mysql_type_info & type() const
Return the SQL type of the data held in the buffer.
Definition: sql_buffer.h:113
size_type length() const
Return number of bytes in data buffer.
Definition: sql_buffer.h:92
void set_null()
Sets the internal SQL null flag.
Definition: sql_buffer.h:110
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x69.html0000755000372000001440000001636012502417164023653 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- i -

mysql++-3.2.2+pristine.orig/doc/html/refman/result_8h_source.html0000755000372000001440000020277012502417162024352 0ustar robertousers MySQL++ Reference Manual
result.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_RESULT_H)
30 #define MYSQLPP_RESULT_H
31 
32 #include "common.h"
33 
34 #include "exceptions.h"
35 #include "field.h"
36 #include "field_names.h"
37 #include "field_types.h"
38 #include "noexceptions.h"
39 #include "refcounted.h"
40 #include "row.h"
41 
42 namespace mysqlpp {
43 
44 
47 
48 class MYSQLPP_EXPORT SimpleResult
49 {
50 private:
55  typedef bool SimpleResult::*private_bool_type;
56 
57 public:
60  copacetic_(false),
61  insert_id_(0),
62  rows_(0)
63  {
64  }
65 
67  SimpleResult(bool copacetic, ulonglong insert_id,
68  ulonglong rows, const std::string& info) :
69  copacetic_(copacetic),
70  insert_id_(insert_id),
71  rows_(rows),
72  info_(info)
73  {
74  }
75 
82  operator private_bool_type() const
83  {
84  return copacetic_ ? &SimpleResult::copacetic_ : 0;
85  }
86 
88  ulonglong insert_id() const { return insert_id_; }
89 
91  ulonglong rows() const { return rows_; }
92 
95  const char* info() const { return info_.c_str(); }
96 
97 private:
98  bool copacetic_;
99  ulonglong insert_id_;
100  ulonglong rows_;
101  std::string info_;
102 };
103 
104 
109 
110 class MYSQLPP_EXPORT ResultBase : public OptionalExceptions
111 {
112 public:
114  virtual ~ResultBase() { }
115 
117  const Field& fetch_field() const
118  { return fields_.at(current_field_++); }
119 
121  const Field& fetch_field(Fields::size_type i) const
122  { return fields_.at(i); }
123 
125  const Field& field(unsigned int i) const { return fields_.at(i); }
126 
128  const Fields& fields() const { return fields_; }
129 
131  const std::string& field_name(int i) const
132  { return names_->at(i); }
133 
136  { return names_; }
137 
141  int field_num(const std::string&) const;
142 
144  const FieldTypes::value_type& field_type(int i) const
145  { return types_->at(i); }
146 
150  { return types_; }
151 
153  size_t num_fields() const { return fields_.size(); }
154 
156  const char* table() const
157  { return fields_.empty() ? "" : fields_[0].table(); }
158 
159 protected:
162  driver_(0),
163  current_field_(0)
164  {
165  }
166 
168  ResultBase(MYSQL_RES* result, DBDriver* dbd, bool te = true);
169 
171  ResultBase(const ResultBase& other) :
173  {
174  copy(other);
175  }
176 
178  ResultBase& copy(const ResultBase& other);
179 
181  Fields fields_;
182 
185 
188 
196  mutable Fields::size_type current_field_;
197 };
198 
199 
208 
209 class MYSQLPP_EXPORT StoreQueryResult :
210  public ResultBase,
211  public std::vector<Row>
212 {
213 private:
218  typedef bool StoreQueryResult::*private_bool_type;
219 
220 public:
221  typedef std::vector<Row> list_type;
222 
225  ResultBase(),
226  copacetic_(false)
227  {
228  }
229 
231  StoreQueryResult(MYSQL_RES* result, DBDriver* dbd, bool te = true);
232 
236  ResultBase(),
237  std::vector<Row>(),
238  copacetic_(false)
239  {
240  copy(other);
241  }
242 
245 
247  list_type::size_type num_rows() const { return size(); }
248 
251  StoreQueryResult& operator =(const StoreQueryResult& rhs)
252  { return this != &rhs ? copy(rhs) : *this; }
253 
260  operator private_bool_type() const
261  {
262  return copacetic_ ? &StoreQueryResult::copacetic_ : 0;
263  }
264 
265 private:
268  StoreQueryResult& copy(const StoreQueryResult& other);
269 
270  bool copacetic_;
271 };
272 
273 
280 template <>
281 struct RefCountedPointerDestroyer<MYSQL_RES>
282 {
284  void operator()(MYSQL_RES* doomed) const
285  {
286  if (doomed) {
287  mysql_free_result(doomed);
288  }
289  }
290 };
291 
292 
297 
298 class MYSQLPP_EXPORT UseQueryResult : public ResultBase
299 {
300 public:
303  ResultBase()
304  {
305  }
306 
308  UseQueryResult(MYSQL_RES* result, DBDriver* dbd, bool te = true);
309 
312  ResultBase()
313  {
314  copy(other);
315  }
316 
319 
321  UseQueryResult& operator =(const UseQueryResult& rhs)
322  { return this != &rhs ? copy(rhs) : *this; }
323 
325  const Field& fetch_field() const
326  { return fields_.at(current_field_++); }
327 
329  const Field& fetch_field(Fields::size_type i) const
330  { return fields_.at(i); }
331 
337  const unsigned long* fetch_lengths() const;
338 
346  Row fetch_row() const;
347 
354  MYSQL_ROW fetch_raw_row() const;
355 
360  void field_seek(Fields::size_type field) const
361  { current_field_ = field; }
362 
374  // it was successful:
385  operator MYSQL_RES*() const { return result_.raw(); }
386 
387 private:
389  UseQueryResult& copy(const UseQueryResult& other);
390 
401  mutable RefCountedPointer<MYSQL_RES> result_;
402 };
403 
404 
406 inline void
407 swap(StoreQueryResult& x, StoreQueryResult& y)
408 {
409  StoreQueryResult tmp = x;
410  x = y;
411  y = tmp;
412 }
413 
415 inline void
416 swap(UseQueryResult& x, UseQueryResult& y)
417 {
418  UseQueryResult tmp = x;
419  x = y;
420  y = tmp;
421 }
422 
423 } // end namespace mysqlpp
424 
425 #endif // !defined(MYSQLPP_RESULT_H)
ResultBase()
Create empty object.
Definition: result.h:161
StoreQueryResult set type for &quot;store&quot; queries.
Definition: result.h:209
SimpleResult(bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)
Initialize object.
Definition: result.h:67
Declares a class to hold a list of SQL field type info.
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:329
const char * info() const
Get any additional information about the query returned by the server.
Definition: result.h:95
size_t num_fields() const
Returns the number of fields in this result set.
Definition: result.h:153
const RefCountedPointer< FieldTypes > & field_types() const
Get a list of the types of the fields within this result set.
Definition: result.h:149
void field_seek(Fields::size_type field) const
Jumps to the given field within the result set.
Definition: result.h:360
virtual ~ResultBase()
Destroy object.
Definition: result.h:114
void operator()(MYSQL_RES *doomed) const
Functor implementation.
Definition: result.h:284
const FieldTypes::value_type & field_type(int i) const
Get the type of a particular field within this result set.
Definition: result.h:144
RefCountedPointer< FieldTypes > types_
list of field types in result
Definition: result.h:187
const Fields & fields() const
Get the underlying Fields structure.
Definition: result.h:128
Holds information about the result of queries that don&#39;t return rows.
Definition: result.h:48
Class to hold information about a SQL field.
Definition: field.h:46
Functor to call delete on the pointer you pass to it.
Definition: refcounted.h:45
Fields fields_
list of fields in result
Definition: result.h:181
list_type::size_type num_rows() const
Returns the number of rows in this result set.
Definition: result.h:247
ulonglong insert_id() const
Get the last value used for an AUTO_INCREMENT field.
Definition: result.h:88
Declares the RefCountedPointer template.
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:117
StoreQueryResult set type for &quot;use&quot; queries.
Definition: result.h:298
SimpleResult()
Default ctor.
Definition: result.h:59
ResultBase(const ResultBase &other)
Create object as a copy of another ResultBase.
Definition: result.h:171
Fields::size_type current_field_
Default field index used by fetch_field()
Definition: result.h:196
DBDriver * driver_
Access to DB driver; fully initted if nonzero.
Definition: result.h:180
const char * table() const
Return the name of the table the result set comes from.
Definition: result.h:156
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:325
Declares a class to hold a list of field names.
StoreQueryResult()
Default constructor.
Definition: result.h:224
Manages rows from a result set.
Definition: row.h:63
const RefCountedPointer< FieldNames > & field_names() const
Get the names of the fields within this result set.
Definition: result.h:135
Declares the MySQL++-specific exception classes.
RefCountedPointer< FieldNames > names_
list of field names in result
Definition: result.h:184
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
ulonglong rows() const
Get the number of rows affected by the query.
Definition: result.h:91
StoreQueryResult(const StoreQueryResult &other)
Initialize object as a copy of another StoreQueryResult object.
Definition: result.h:235
~UseQueryResult()
Destroy object.
Definition: result.h:318
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
const Field & field(unsigned int i) const
Get the underlying Field structure given its index.
Definition: result.h:125
~StoreQueryResult()
Destroy result set.
Definition: result.h:244
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:80
Declares the Field and Fields classes.
Declares the classes for holding row data from a result set.
UseQueryResult(const UseQueryResult &other)
Create a copy of another UseQueryResult object.
Definition: result.h:311
This file includes top-level definitions for use both internal to the library, and outside it...
std::vector< Row > list_type
type of vector base class
Definition: result.h:221
Declares interface that allows exceptions to be optional.
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
const std::string & field_name(int i) const
Get the name of the field at the given index.
Definition: result.h:131
UseQueryResult()
Default constructor.
Definition: result.h:302
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:121
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption__inherit__graph.png0000644000372000001440000001372312502417165033042 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“ˆIDATxœíÝyXwþðOå„pS±$]äY±"Šh/"*R«°"ë#®V}¬KyX >ݵÛbAÙ ¨ çâAAd=¨Til•K«*rB®ùý1¿¦1„*Ì$ôózúì3óå;ßùÌ7og†I–0‚„F“îÐæ Qs†¨€9CTС»ÈÌÌLHH »Š±ÌÙÙù«¯¾¢·í¿o®Y³æÖ­[žžžô–1V=~ü¸¬¬ŒöW™þóxzzfddÐ]ÅØ”‘‘@wx†(9CTÀœ!*`Î0gõõõ cìé鉈ˆpuu566ž;wîáÇÅb1-•hÌÙÈëîîž3gNyyyllleeåþýûÓÒÒ–,Y"‘H”öolld³Ù䲩©é'Ÿ|Ba±шçcLTT”……Eqq1‹Å€©S§.]º”Ëå&''‡„„ ì/•JÛÚÚÈe6›Ci¹”КóƒÁ8uꔳ³³……ELLLJJÊ›o¾ibbòé§Ÿ@xxxpp0Ù“ÏçܹsòóógΜ9nÜ8GGÇ””J¥qqqÎÎÎÆÆÆžžž%%%ò×)ò²•——7mÚ4KKËðððþþ~¥ðê5N~955õСCdÈH†††©©©J‡š7oX[[+ŒÓÙÙùñdzÙl{{û={örÒÒÒœÍÌÌŽ92ªs>’ºùûûûûûÙ Ö­[×ÕÕ•””kÖ¬éêê"ß°zñâŵk×ÌÍÍE"A©©©...R©”ÏçëëëÇÇÇ·´´œ>> <Ëå’;€?ü°££#11ÚÚÚTÏ[zzº&¼ÊôW ~Ϊªª‚ … Ëuuub±ØÚÚº¸¸˜ ˆåË—ÇÄÄÑÞÞ®««ûÅ_tttH¥Òîîn‰DâââòŸÿüG6ì·ß~;0g<üizz:‡ÃQÚ8XƒåìÖ­[l6[Åød‹lY(²X¬šš²=;;›Ü)”””È»êyÓœiÍuŒ@WWWaX,ÖªU«²³³_¼xqåÊ•ÀÀ@˜8qbIIIYY™½½ýÛo¿}ãÆ &“ÙØØèææ&sæÌ™w4eÊraúôéOž©Tzþüùöööààà÷Þ{¯½½ÝÎÎîÇ”mu÷îÝC‘'¨­­%_ÔÁ• ŒŠŠ’ÿí²§§'66ÖÏÏOý¡¬¬¬X,Vcc#¹ÚÐÐ`ggG.3™Ú÷ªi_Ńñòò‹ÅQQQAAAd ƒÁðõõÍÊÊêêê …ººº›7oŽˆˆÈËË{úôiAAÁ¾}ûµcÇŽúúúòòòlذa°Æ—/_’7‹ ˇzþü¹OAAA]]]NNއ‡‡]XX˜Šñù|¾| ºººááá<¨©©9xð y’ÖVt_¸‡q&»lyëÖ­ãÇïêê’m•žžîä䤧§7}úô¼¼<‚ „BaTTÔ›o¾iddäééyæÌp–””äààÀf³·oßÞ××§´‘xõž]~™ >Ÿ¿{÷n.—k``àââÝÛÛ;Øø"‘hþüùFFF ã´··™››ÛØØìܹ“Üé`Ç> ¹?£¿5s¦Ž¬_¿~X›(äCaUEãï3‚C©ICr6FžÓ ‚æææS§N={–îZcäþì‡~˜3gÎæÍ›.\ø:ãL˜0!44TÆÿ@#>· øyÚQB~ž–öWyŒœÏ†Ãœ!*`Î0gˆ ñ\£±±ñĉtW16UVVÒ]hÀ¼]»vÑ=ÃÂ05õÓÑ1£»Œa˜4iÝ/2Aÿs íRVÖ°jUܦM^ÿøÇ*ºkÑ&x6<99•äÿŠÅRºkÑ&˜³a ÅÙÙwàåËÞë×ïÓ]Ž6Áœ Ãÿþw¯··X,fv¶fÜ_k ÌÙ0deU²XL‹¥—/óúú„tW¤50gêêééÿî»±øÿ?%Ûß/.*ú‰Þ’´æL]ò!&“‘•UAc=Ús¦®¬¬ ùÿ§§X,-)¹×ÕÕGcIZs¦–ööžë×k%’Wžeqé®’´ æL-.ü8°‘ ˆóçñÒ©Ì™Z23˾q"•ee Ïž½¤¥$í‚9Zssgeå/R©’7èX,f~¾’SR€9Z~~õ`o‹Å’¬,|`;4ø\†ëíÚØL­òùýãÆéêèüÿ?ѱøWñF~^cØlmwÆÇo|ÿ}·¡»¢_áuQs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Q‚ÖoÿÂäÉ“éž%ôõ'1™tW¡HOOïæÍ›t¿bƒÒè¿OûðáÃ;wzzzÒ]ˆX³fMSSÝU J£sóæÍó÷÷§» ôºðþ Qs†¨€9CTÀœ!*h}Î F}}=-»îé鉈ˆpuu566ž;wîáÇÅb±:Ö××3þ`_£¢õ9S­±±‘ÍfÆÈÝÝÝsæÌ)//­¬¬Ü¿ZZÚ’%K$‰Òþò•˜šš~òÉ'£Q•ÆÒôç¯I*•¶µµÆÈQQQÅÅÅ, ¦NºtéR.—›œœ¢º6›3Ui¬1u>c0iiiÎÎÎfffGŽ€y󿀵µ5ÙA$EDDXYYYZZFDDˆD"‚ âããg̘1a„E‹]¸p¼¢ ìI^슋‹'MštóæÍÔÔÔC‡‘!#FDD¤¦¦’=óòò¦M›fiiÞßß/_‰üu³³³óã?f³Ùööö{öìJDëÑý†„*žž>dŸºº:Ùò‡~ØÑÑ‘˜˜mmmuuuòÇ»zõêGñx¼Ù³gïÛ·/11ÑÎή   µµµ¨¨ˆÃáýö$‡Z¶lÙÕ«WŸ>> <ËåFFF*=™+µœ•””! Év…œMŸ>½¥¥…\.**rssãr¹iii²gΜ!ûìIÅãñ‚èèèPš³[·n±ÙlùžA¤§§s8¥9 …,«¦¦†lÏÎÎæp8JdDæŠFcíþÌÖÖtuu•þôáÇ666²U¡PÈåre-3f̬'¹0}út055µ¶¶®®®^¼x±üøÕÕÕîîîäò”)Sd›ç¿ž={&‘HœœœÈU‡#ë©ú@´Î˜º?&SÕ‘'ò_XGGGYY™ƒƒÃÝ»we~þùçÁz’í²>000**Jþ·ËžžžØØX???r•õšsE#­ÏÙkÊÏϯ®®–­fffº¹¹½æ˜I ÏÙ⺩ÇÛ°aCUUUoooYYÙ§Ÿ~ªô)+zMcí÷ÍáÚ»woooïŠ+Z[[7oÞúšcN˜0áõcAÐ]à Fzzúš5kè.D hø\ýѯ›ˆ˜3DÌ¢æ QAÓßŒŽŽ&?³ 9¤R&“)¥» -£Ñ9Ûµk×ãÇé®â ãöm›©SÛÍÍt×òеk×zxxÐ]Å 4ú¹†ÊÈ(ÿÛßÎ,Z䜚º…îZ´ ÞŸ ONN%ãÚµû/_öÒ]‹6Áœ Ckk÷Í›µü÷¿Õt—£M0gÃpáB5ù©!‚ 23Ëé.G›`Ά!#£B*%@*%**~ii餻"­9S×£Gm<Þc2gÀb1ssïÐ[’Áœ©+/ÎoÓ%‘HÏŸÇK§º0gê:¾\$úíñ,A÷îµ44<§±$-‚9S˽{-õõÏÉß4etuY¹¹Ut•¤]0gjÉÍ­ÒÓS|ïD$’œ;w›–z´ælhAdfV…JþPSS§YïŒi&ÌÙЪª~inVþ/jœ íÂ…zz:ÿ“H¤99øtchýy ±pátßþ.PFF¹§§Óo˜‘«ææF4Õ¥MðóÃfk»3>~ãûï»Ñ]ˆ6Áë&¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3D…Wþž£P(‹ÅPRRBSmhŒøì³ÏÈ,Éàý¢æ Qs†¨€9CTиœ555y{{ÈP_~ùeXX˜lõìÙ³ÞÞÞÍÍÍäêóçϽ½½ïÜyåÛLÔßûÕ«W½•¹víÚHÕ?\ >>>88xùòå[·nMKK“H$êl8‚s>ËÙrss«¯¯ïïï'W+++ FEE¹úÓO?éèè̘1C~##£uëÖ@KKË| bð?ÿùÏYYYYYYqqqõ+.—KŽ0Ú*ìíí ½wï^hhè‰'‹ŠŠöìÙ#•J‡Ü\vÔ£g,çÌÕÕU,×ÖÖ@?Çóóó“Ï™³³³¾¾¾ü&&&&[¶l©TÚÕÕ¥bp}}}333333SSS0û•¹¹99ÂhS¨ðôéÓ¦¦¦ÿú׿þô§?ÙÛÛ{yyÅÇÇ?}úôòåËCn.;êÑó{ræíí}ùòå7®X±âÌ™3………ëÖ­{çwN:_ýõ‘#GÈž}}}~~~uuuðý÷ßûúú®_¿¾°°‚ÈÉÉÙ¸qãòåË·mÛvçÎù³7y2/-- Z¹rå×_-‰”6«g~ÙòĉîÞ½ 555–––ï¾ûnUUy5¹{÷®«««¬UUU@@@AA¹í_ÿúWXµj9¦X,Ž_¹råÊ•+ãããÉ“¯DõD 6,ŸÏ‰‰ùàƒüýý?. •B…EEE}ô“ùÛ :nܸµk×)4ùÍåǸwò@®\¹²qãÆ÷ßÿܹsË üîóYeeåñãÇ·lÙ’˜˜xëÖ­“'O†……¥¤¤tuu½ýöÛ¥¥¥äkYZZjccÃápAddäŠ+Î;täÈ@pñâÅÓ§O‡„„¤¤¤|ôÑGŸþùÀåææ~þùç‡þá‡Μ93X£©©éž={ÈŸÊ/»¹¹‘9«¨¨˜={ö´iÓ Æýû÷E"Qmm-™3RFFƾ}û¦L™B®~óÍ7M®fff¶´´$$$üóŸÿ¬ªªJNN~ý‰lØÿûß­­­ñññ±±±ååågÏžU:²|…|>¿½½Ãá(ôáp8=R:i (3ØÞoÞ¼yìØ±ÐÐЄ„„îîn5_æwæ, ÀÀÀÀ××Ö¯_o``àççÝÝÝ\.WGG‡ÇãÀ•+W|}} †H$"¢¯¯OOOÏÏÏ/??___?++këÖ­^^^æææ!!!wfooïììRTT4X£¡¡á;ï¼CþT~ÙÕÕµ¦¦† ˆÊÊJwww‹5{öìŠŠŠºº:©Têââ"ÛÑ–-[fÍš5nÜ8¥Ç{ùòå;vXZZ:::†††Þ¾­î››*&Jé°b±øêÕ«Û·o·±±qttÜ´i“쨃!»?S:“ Tì}ÅŠFFFK—.ÕwJýÎïE400…e`2™^^^ׯ_wtt¬¬¬Ü½{7=z433399yêÔ©ëׯ÷ððhii‘ÿ'èèè8pGöööä¤I“Z[[U4*åêêÚÙÙyÿþý†††Y³fÀܹs Ç?mÚ´ñãÇËzNš4IÅ8OŸ>]½zµlÕÐÐPEgy*&Jé°R©ÔÖÖ–l±³³S8@¥ß/hdddffV__ïîî.ß^__?uêTrYIS±w6›­Pü°ŒÊ÷o.\¸0::zòäÉo½õ–……ô÷÷K¥ÒÈÈH±X\\\|àÀÜÜ\6›ÝÐÐàääDnõðáÃC=yò„ÌßãÇÍÍÍU4*efföÆo¤¤¤899M˜0ÜÝÝ¿üòËñãÇË_4a¨4119zô¨üz‘Rw.T8ìĉ™LfKK‹ƒƒ477“/0H$‹õâÅ ¥C-^¼øôéÓ³fÍ’Ý¢ ‚³gÏÊr¬Î¤©Ø;ƒÁx#•ß7gΜ)‘H¾ýö[òz #""âúõë==="‘HGGG__Ù²eÇ/--moo¿}ûö‰'×ÔÔtïÞ½¤¤¤%K– ÖØÓÓsñâEò§òËàææöý÷ßËþ¡ÛØØØØØÜ¾}ÛÍmè/Ðìëë#¼¼¼Ÿ={ÖØØ¸wïÞÜÜÜß95¯8¬ŽŽŽ··÷W_}ÕÒÒòàÁƒ“'O.^¼ØÈÈ {{{î¨dnܸ±££c×®]·oß~òäÉ7ÂÂÂØl¶ìá…Ò™”mNRº÷9ÒQ9Ÿ1™Ì |÷Ýw , [ôôôöïߟðüùs[[Û¿ÿýïzzz‰äرcä Jtt´ÂP‹/Þ½{·@ ðññ $Oã ÐÙÙùÅ_·eòËàææ–ŸŸ/A™3gNSS—ËUqÖÖÖo½õÖêÕ«/]ºÁÁÁqqqùË_ Æ‚ BCCGd¢”»cÇŽ¸¸¸­[·êêê.Z´(00POO/88ø›o¾IMMݶmÛ7Vh``pâĉäääøøøææf]]]¥3Éb±ä7—¸÷9ÒW¾O8### `D>”””ôôéÓƒª¿ISSÓ† d{WXUшT£~Ò>ûì3 ‹ŒŒ YËÈ_7…BaKKËåË—ß}÷Ýi©‘ÏÙÏ?ÿºlÙ2un€T044|ï½÷ÔiDªi¤Öuý‘QqÝDh Ì¢æ Qs†¨€9CTxåý‹t}ì%k×®•_}幆@ ¸té’š*GHwwwùà0”~Ρ‘…÷gˆ ˜3DÌ¢æ Qáÿ9š«§h¶¦£IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiResultsOption.html0000755000372000001440000002532112502417163030032 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MultiResultsOption Class Reference

Enable multiple result sets in a reply. More...

#include <options.h>

Inheritance diagram for mysqlpp::MultiResultsOption:
Collaboration diagram for mysqlpp::MultiResultsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable multiple result sets in a reply.


The documentation for this class was generated from the following file:
././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1GuessConnectionOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1GuessConnectionOption__inherit__graph.pn0000644000372000001440000001070212502417165033332 0ustar robertousers‰PNG  IHDRÀ€Òæñ<bKGDÿÿÿ ½§“wIDATxœíkTW×Çwn€\ B¸ …ÊE¥ µ­T]ŠŠ(¢VE-¢ R…)UWUtéjÅZËÅeµ*J¸("E( HY ¥*T”§V0x‚¢“`"¹ÌûaÞ7oÌ…':‚œß§=3{ï9óçœ33'„a o y  @ n€„@B Aª.“=zô(::Z$é2éÂÈÈèÈ‘#NNN:˨S]»víÂ… AAAºL:¤ÈÍÍ {g„söìYÝ'"H$gDs !€„@B Aˆ!' ¦¦¦¾ivwwÇÄÄ|ôÑGfffÞÞÞqqq‰d@*†œ€ú>Ÿ?a„šššÄÄÄÚÚÚíÛ·Ÿ:ujöìÙR©Tíþl6›N§ã¶……ŶmÛtXl¿0·ñï»wï¶¶¶¾té…B€Q£FÍ™3ÇËË+###22Ru™LöüùsܦÓé :-·ÐLjD"?~ÜÃÃÃÚÚ:!!!++käÈ‘æææßÿ=lذ!""ßS ߸qŠŠŠÆgddäââ’••2™,))ÉÃÃÃÌÌlòäÉåååŠC>‚œ;wnôèÑ6666lxõê•Z'¼>Ü(Ú,kçθzpLLLbbbX,–ÚP“&M;;;¥8]]]_~ù%Nwttܲe þ°žD":uÊÃÃÃÒÒrïÞ½ýÚæo¦Crrr´É+V¬àñxééé°lÙ2—’’Ïž=ûã?¬¬¬Äb1†a,ËÓÓS&“ CCC&“ÉápŽ;F¥RAJJŠM~~~[[[qq±££#466â5à†¿¿ÿ½{÷®]»æææ¶k×.µN úººÒÒÒðòävgg'ttt(Õ_UUekkÛK||7E;44ÔÏÏïþýûõõõ^^^xRøâ‹/:;;ÓÒÒàùóçÚ4]NNŽvW£oÐSÕÕÕaÖÓÓ£d766J$;;»K—.a6oÞ¼„„ ø\.FÛ·o_gg§L&ãóùR©ÔÓÓóĉò°™™™ªª¯¯—×æææ¦Ö©©NMºzõ*Nï%>î‘Û=== åÎ;¸???O åååŠç®MÓéX@ú8„€™™Ðh4%(Ê’%KòóóŸ={vñâÅÐÐP>|xyyùµk×§OŸ^YYI&“Ùlöøñãå1ǧšÈÝÝ7ÆŒÓÒÒÒ‹S ;;»›7o*ùoÞ¼ùé§ŸjêÉ“'R©ÔÕÕÿèææ&ßsĈŠç®‡è©€z'((¨  àìÙ³S§NÅ&¡P(“Érss¹\nDDÄ‚ ¸\®ƒƒÃ­[·äG544¨†Â»¸wï~µ49Õº{÷nÅ{®îîîÄÄÄ€€íCÙÚÚR(6›¼ÿ¾ƒƒn“ÉztÙÝi?„É»kµ¶D"±±±±µµÍÈÈÀ7 …B##£¼¼¼ŽŽŽÔÔT###¡PgccSXXÈápJJJÔÎ|}}«««ÝÝÝwîܩ։i˜aöâŋѣGOŸ>½¤¤äÞ½{ùùùžžžS¦L‰D½ÄçóùØës ???6›}ûömOOO<©¦vè½éÐè¿ ðuëÖ 6ŒÇã)wuu5003f̹sç0 ëééÙ½{÷È‘#MMM'Ožœ­* ôôtggg:¾~ýz¡P¨Ö‰½~±m ÃÁæÍ›½¼¼Œ===÷ìÙóòåKMñÅbñÔ©SMMM•âp¹Ü°°0+++{{ûo¿ýOФŒ–Ò†;v„„„¼Ñ!J^éc/η£Ciî4ø$ŠD¢¶¶¶ãÇŸ>}z kA ÂIôõë×'L˜°fÍš3f‰óÞ{ï1 mœ}ÿ݃„éð‹…gÏž ÖeÆ¡‰DÊÉÉY¶l™Î2¾¡W !„ ‚pŸššªû¤o‡H$##ôg¦ ÈÁÁB¡ ¢›[KËÅÀå t!ÚB¡PäïÑtƒNoãíí/>ýô êê~°±1èrôÔ9k¤¤¤žL&‘HP\¬¼`! H#gÎTËd2™ rrªºý H=ÍÍ·o·``˜¬¾¾¥¹¹c +ÒS€ÔsîÜ *o•J>bêARONNµD"Ãm‰D†F1M ©¡¡¡õáÃ犞žýç?mU>ƒ¤†‚‚:¢è¡Ñ(uU>ƒ¤ŒL†åæÖˆÅ¯}7Y,–ææÖ gfª )ó÷ßÍ|UÿÓ§¼¿ÿ~ órô$ eTÇ/RXˆF1e€^C,–Ô*_òMùùê7 e€^£¦¦™ÇQ(d*•B¥RpþÏ&¿x!D£˜èeêkðx¢óçoÈ?²XW`åÊÉrÏÂ…¿÷žÑT¦¯ õƒ‘ ))á]ˆþ‚†0!€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !^û…²Ë—/755 `5úFnn+éô_¸é9îîî¾¾¾ÿÿS€J€ÿ€©ÏÉÆd²ñ@W¡_P©TEͼÖ‘H¤ØØØ3f \y½æÊ•+?üðƒ¢fÐA$ !€„@BB¿n»Z[[W®\Y^^ÞW[ZZ’’’h4Ú‡~¸zõjWW×¾ ®–çÏŸ'''ß¹sçÅ‹ÎÎΡ¡¡>>>ýš±ú¼=Uy—{ §OŸFGG[[[ïß¿?11ÑÖÖvÆ >쿌</22ÒÐÐ066–ÉdΜ9óǬ©©é¿Œªp8œE‹á¶©©éŠ+ú5~õ@} ‹Å;vì¦M›H$¸»»wwwgggoß¾½Ÿ2fdd|üñÇ111øGggg.—›““ãííÝOU‘Éd<·ÍÍÍ×®]Û¯éÞ¸òõõ-))  ÌÎÎ.--]±bÅüùó?‡Þ»w/¾§P( hll€¿þú+""Âßß?$$¤´´0 +((Ÿ7o^ttô7Ÿo¶¶¶úúúVUU………-^¼øðáÃb±X­S¾³â¸]WW·téR\=8QQQË–-ëå‰DÂd2/^¼xñb&“)‘HÔ¯ÉYQQ±téRÅæ ߺu+n ‚„„„E‹%''÷ôôàíyñâÅððð… ž9sFÞȪNÕÚ¤RiFFFppp```||¼@ €¯¿þ–,Y¢tjÚg#Þf«­­MNN^»vmZZÚÕ«W;•••Åãñ¦OŸ^UU%•J ªªÊÞÞÞÍÍM$íÚµ+00ðÌ™3aaa{÷î‰DÅÅÅ'OžŒŒŒÌÊÊZµjU||¼j¢ÂÂÂøøø¸¸¸ëׯgggkrZXXlÙ²ß*·Åbq[[Û|€û…B¡P(4001bD/§–——ÇápRRR~þù纺ºŒŒ µÅ«u .—ëää¤pذa666¸}ðàÁŽŽ&“™˜˜XSSsúôiÜÿçŸ9r„Á`¤¤¤ðù|MNÕÚòòò***âãã8ðøñc‹G€üü|¥S{£ìÚó6 666ö÷÷€cc àóù^^^T*µ¾¾.^¼èïïO"‘Äb1†aøõ (**244üõ×_×­[çããcee5qâÄÈÈHÕDQQQŽŽŽ‘‘‘eeešœ&&&óçÏÇ·Êm‡a˜‘Ñÿþk¦y ôrj%%%7n´±±qqqa0ÕÕÕj‹WëÄŸÏ*vxŠH$’Ë—/¯_¿ÞÞÞÞÅÅeõêÕò3 4553g^¶&§jmÅÅÅkÖ¬qqq9rä¶mÛ<==5×›fמ·™þâLÑ2™ìããSQQáââR[[»yóf033;pà@^^^FFƨQ£BBB&NœÈápÜÜÜä1]\\T9::↓“SGGG/NU,-- ZZZÜÝÝ¿áóù .TÚSñÁ|{{»âdbb¢¶xMÎáÇ?|øPñBÞ½{÷—_~9xð Ç“ÉdòþÏÁÁA^N¿ÿ¾ü¨¨†jiiÁÇ[YYõâT…D"}òÉ'.\Pt*ÝÐâCí³gÏässs‹U^^^^^^TTtôèQµÅ«uÀ”)SrrrYVV&‘H ‡N&“9îokkïhè´TªµYYYµ··ã[›ššð!L-oš]{ú^@ãÆ“J¥™™™ø$)&&¦¢¢¢»»[,S©TCCùsç&''WUUq¹ÜêêêÔÔTÕPIII­­­wïÞMOOŸ={¶&gwwwqq1¾UÑŽŒŒ,--MIIa³ÙMMM™™™.\ÀÿÔLMM ´´ôåË—ŠÓŸ´´´'Ož°Ùì­[·ª-^­"""nݺ×ÐÐÀf³333óóóñÑ™J¥úúú:tˆÃá477;vlÖ¬YoÔ°ªµùûû§§§777777 MySQL++ Reference Manual
common.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB,
9  (c) 2004-2009 by Educational Technology Resources, Inc., and
10  (c) 2009 by Warren Young. Others may also hold copyrights on code
11  in this file. See the CREDITS.txt file in the top directory of the
12  distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_COMMON_H)
33 #define MYSQLPP_COMMON_H
34 
35 #if !defined(DOXYGEN_IGNORE)
36 // Doxygen will not generate documentation for the following stuff.
37 
38 // Enable SSQLS by default. Turned off below on platforms where we
39 // know it doesn't work.
40 #define MYSQLPP_SSQLS_COMPATIBLE
41 
42 // For all platforms but Visual C++ 2003, the following macro is just
43 // an alias for "*this". It needs a more complicated definition on
44 // VC++ 2003 to work around an error in the overloaded operator lookup
45 // logic. For an explanation of the problem, see:
46 // http://groups.google.com/group/microsoft.public.vc.stl/browse_thread/thread/9a68d84644e64f15
47 #define MYSQLPP_QUERY_THISPTR *this
48 
49 // Work out major platform-specific stuff here.
50 #if defined(__WIN32__) || defined(_WIN32)
51 # define MYSQLPP_PLATFORM_WINDOWS
52  // Windows compiler support. Tested with Microsoft Visual C++,
53  // Borland C++ Builder, and MinGW GCC.
54 
55  // Don't let windows.h (via Connector/C) #define min/max
56  #define NOMINMAX
57 
58  // Stuff for Visual C++ only
59 # if defined(_MSC_VER)
60 # define MYSQLPP_PLATFORM_VISUAL_CPP
61  // MS *still* doesn't ship stdint.h, through VC++ 2008 at least.
62  // This means we have to take a wild guess at appropriate
63  // integer types in lib/sql_types.h. See test/inttypes.cpp for
64  // tests that check whether we've guessed well.
65 # define MYSQLPP_NO_STDINT_H
66 # if _MSC_VER < 1400
67  // Workarounds for limitations of VC++ 2003 that are fixed
68  // in 2005 and later.
69 # undef MYSQLPP_QUERY_THISPTR
70 # define MYSQLPP_QUERY_THISPTR dynamic_cast<std::ostream&>(*this)
71 # undef MYSQLPP_SSQLS_COMPATIBLE
72 # elif !defined(_STLP_VERSION) && !defined(_STLP_VERSION_STR)
73  // VC++ 2005 or newer and not using STLport, so #define
74  // portability flags indicating features we can use from
75  // the compiler's native RTL.
76 # define MYSQLPP_HAVE_LOCALTIME_S
77 # define MYSQLPP_HAVE_STD__NOINIT
78 # endif
79 
80  // Disable complaints about STL data members: VC++ believes
81  // these need to be __declspec(dllexport) for some reason.
82 # pragma warning(disable: 4251)
83  // Disable complaint that VC++ doesn't grok throw specs
84 # pragma warning(disable: 4290)
85  // Disable whining about using 'this' as a member initializer on VC++.
86 # pragma warning(disable: 4355)
87  // Disable whining about implicit conversions to bool
88 # pragma warning(disable: 4800)
89  // Disable nagging about new "secure" functions like strncpy_s()
90 # pragma warning(disable: 4996)
91  // Call _snprintf() for VC++ version of snprintf() function
92 # define snprintf _snprintf
93 # endif
94 
95  // Define DLL import/export tags for Windows compilers, where we build
96  // the library into a DLL, for LGPL license compatibility reasons.
97  // (This is based on a similar mechanism in wxWindows.)
98 
99  #ifdef MYSQLPP_MAKING_DLL
100  // When making the DLL, export tagged symbols, so they appear
101  // in the import library.
102  #define MYSQLPP_EXPORT __declspec(dllexport)
103  #elif !defined(MYSQLPP_NO_DLL)
104  // We must be _using_ the DLL, so import symbols instead.
105  #define MYSQLPP_EXPORT __declspec(dllimport)
106  #else
107  // Not making a DLL at all, so no-op these declspecs
108  #define MYSQLPP_EXPORT
109  #endif
110 
111  // We need to use the DOS/Windows path separator here
112  #define MYSQLPP_PATH_SEPARATOR '\\'
113 #else
114  // If not VC++, MinGW, or Xcode, we assume we're on a system using
115  // autoconf, so bring in the config.h file it wrote containing the
116  // config test results. Only do this during the library build, and
117  // even then, not if included from a MySQL++ header file, since
118  // config.h cannot be safely installed with the other headers.
119 # if defined(MYSQLPP_NOT_HEADER) && !defined(MYSQLPP_XCODE)
120 # include "config.h"
121 # endif
122 
123  // Make DLL stuff a no-op on this platform.
124  #define MYSQLPP_EXPORT
125 
126  // Assume POSIX path separator
127  #define MYSQLPP_PATH_SEPARATOR '/'
128 #endif
129 
130 #if defined(MYSQLPP_MYSQL_HEADERS_BURIED)
131 # include <mysql/mysql_version.h>
132 #else
133 # include <mysql_version.h>
134 #endif
135 
136 namespace mysqlpp {
137 
140 const bool use_exceptions = true;
141 
143 enum sql_cmp_type { sql_use_compare };
144 
145 #if !defined(DOXYGEN_IGNORE)
146 // Figure out how to get large integer support on this system. Suppress
147 // refman documentation for these typedefs, as they're system-dependent.
148 #if defined(MYSQLPP_NO_LONG_LONGS)
149 // Alias "longlong" and "ulonglong" to the regular "long" counterparts
150 typedef unsigned long ulonglong;
151 typedef long longlong;
152 #elif defined(_MSC_VER)
153 // It's VC++, so we'll use Microsoft's 64-bit integer types
154 typedef unsigned __int64 ulonglong;
155 typedef __int64 longlong;
156 #else
157 // No better idea, so assume the C99 convention. If your compiler
158 // doesn't support this, please provide a patch to extend this ifdef, or
159 // define MYSQLPP_NO_LONG_LONGS.
160 typedef unsigned long long ulonglong;
161 typedef long long longlong;
162 #endif
163 #endif // !defined(DOXYGEN_IGNORE)
164 
165 #if !defined(MYSQLPP_NO_UNSIGNED_INT_TYPES)
166 typedef unsigned long ulong;
172 #endif
173 
174 } // end namespace mysqlpp
175 
176 // The MySQL headers define these macros, which is completely wrong in a
177 // C++ project. Undo the damage.
178 #undef min
179 #undef max
180 
181 #endif // !defined(DOXYGEN_IGNORE)
182 
183 
184 // Now that we've defined all the stuff above, we can pull in the full
185 // MySQL header. Basically, the above largely replaces MySQL's my_global.h
186 // while actually working with C++. This is why we disobey the MySQL
187 // developer docs, which recommend including my_global.h before mysql.h.
188 #if defined(MYSQLPP_MYSQL_HEADERS_BURIED)
189 # include <mysql/mysql.h>
190 #else
191 # include <mysql.h>
192 #endif
193 
194 #endif // !defined(MYSQLPP_COMMON_H)
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption-members.html0000755000372000001440000001217412502417164033125 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReportDataTruncationOption Member List

This is the complete list of members for mysqlpp::ReportDataTruncationOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1SQLParseElement.html0000755000372000001440000002041212502417163027344 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLParseElement Struct Reference

Used within Query to hold elements for parameterized queries. More...

#include <qparms.h>

Collaboration diagram for mysqlpp::SQLParseElement:

Public Member Functions

 SQLParseElement (std::string b, char o, signed char n)
 Create object. More...
 

Public Attributes

std::string before
 string inserted before the parameter
 
char option
 the parameter option, or blank if none
 
signed char num
 the parameter position to use
 

Detailed Description

Used within Query to hold elements for parameterized queries.

Each element has three parts:

The concept behind the before variable needs a little explaining. When a template query is parsed, each parameter is parsed into one of these SQLParseElement objects, but the non-parameter parts of the template also have to be stored somewhere. MySQL++ chooses to attach the text leading up to a parameter to that parameter. So, the before string is simply the text copied literally into the finished query before we insert a value for the parameter.

The option character is currently one of 'q', 'Q', 'r', 'R' or ' '. See the "Template Queries" chapter in the user manual for details.

The position value (num) allows a template query to have its parameters in a different order than in the Query method call. An example of how this can be helpful is in the "Template Queries" chapter of the user manual.

Constructor & Destructor Documentation

mysqlpp::SQLParseElement::SQLParseElement ( std::string  b,
char  o,
signed char  n 
)
inline

Create object.

Parameters
bthe 'before' value
othe 'option' value
nthe 'num' value

The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadIndex__inherit__graph.png0000644000372000001440000001312512502417165030662 0ustar robertousers‰PNG  IHDR“»îx;bKGDÿÿÿ ½§“ IDATxœíkTSWÞ‡ÿ!"AÂuÙŠá6(u9ó]*…2jG+XÚA@;ÂŒ mÇ5ÓÖJÅÚÕGT¼0Ú*r‡±t” • -‰Z ’¡"A’¼\LÈåì÷Ù7Cˆ„xâ~vvÎÞç—ý$ûœœ„lB0ÄÌØ0S›£*ØUÁæ¨ c:e2YGGA3•æùÁÒÒÒÝÝ}:=LËÜÐÐÐàà ½½ýt:yëéé1¦9Ÿéwò\Ñßßûöíiv‚sT›£*ØUÁæ¨Ê3gîîÝ»4ÍØ)ãŒÆ2'Øl¶Qv=I4ÚÙÙ½÷Þ{ÆÍ3ã˜#bppÐ(»ž$š ÙlvVV–qóŒg6ÌUUUùúú2™L77·3gÎÀŠ+ÀÑÑT*Uvv¶‡‡‡ÍªU«ÉVšs”fY¡P¤¥¥988p8œ´´4…BQYYéââ"‹àܹs£££J¥2##cáÂ…ööö±±±‰d¢ædçžžž'%%ellL3¡æÞ%É[o½Åf³]]]SSSe2Ðh´/¾øÂÛÛ{Á‚˜…!@ÓàÁƒµµµú·±°°ÈËË …'Nœ`0###ê]:tˆÃá”––ööö^¼xÑÙÙ™¼K"‘?~œÜF³üÉ'ŸlÚ´éÞ½{<oùòåï¿ÿ>B(666..®¯¯ÏÁÁ¡±±!”íããÃãñø|¾ŸŸ_jjêDÍÉ0!!!íííׯ_çr¹™™™š 5ËÑÑÑAAA<oÉ’%™™™äœáááb±øøñã0888ýq{"7'‰æÌ™sðàA±XLÄðð°J¥Ò Ó§O«·/((Ðÿ|òòò …dùòåËË–-C‰ÅbWWW___r(Bžžž¥¥¥dùöíÛêòøædGVr¹\æär9N¿yó&Y_ZZÊårB@Žƒ\.€ŽŽýcB s¡o¿ý6<<ÜÊÊjÍš5_}õzüYŸ¿jÕª„„„‰š“a;::šššÜÝÝÓÓÓ5j¾þ¢¢¢‚‚‚ŸÏ÷ññIOOG¿ÎÀ”fËÂÂÂÅ‹›››{yyUTT „ ÅêÕ«­­­BJ¥2;;›ËåZYY­\¹’| ÇÇK³<44ôöÛoÏŸ?ŸÅb%&&ŽŽŽæää¼ôÒKr¹!TVVæää$‰d2Yjjª³³³­­mdd¤X,ž¨9Ùy~~þ /¼Àf³“““¥R©fBͽ‹D¢˜˜‹åää´sçNræ4Š9šÆw¿ÈO+¦ó¢7:wïÞuwwŸÎ8<-32nÏÜÕ/Ì$Áæ`Þ¼yIIIÆNñÔ`sÀápòòòŒâ©Áæ¨ 6GU°9ª‚ÍQ•øÖ^ooïô;y®™~'Ó2gaaA£ÑÚÛÛ§ŸcÆéé./oçåÏà@ëÂ÷˜Ö5”g™={JOŸ¾ZV–ìççfì,Á4sJ%QVö”•5;‹¡0Msõõw††¤PRÒ¢P¨ŒÇ ˜¦¹ÒÒ:ÕÕÝ1vƒ`‚æ=’õU›R©:VRbš¦ š«©¹¥ž!•Jâë¯ù££cÆdLÐ\qñšo”JÕ¥KOø†15sÉ£ÚÚ;*•æ[ZIÉF d0LÍ\u5O«† ˆúúŸÄâQ£ä1¦f®¨è‚Ðqmáÿh_IiLÊ\_ßÿ66 Æ_Bo”H†Ã¤ÌUUµÒé:A ~øY(”Ì~$ÃaRæJJšÉ·qãAªªLjœOyžÌÌÀÉÉ–,+•„L¦°¶¶PßkbïêLö³‚ÊÊÖmÛ z{?3vCaR³ås6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ(‹æ‚!/¾ø¢±ãÌff– b&IKKÓ”õØÿ‰wuuíܹså楮 ‡™ˆC‡©—ö"Ñþÿ+VDDDÌ^"Ìä(**ÒªÁÇ9ª‚ÍQlŽª`sTåÙ2§¹r÷ô¡éb¦:×ÃÌ>Љ0©_OCCâE‹faGàå—_~øð!ØÙÙ½÷Þ{†Þ£‰›³··wttœ…188H–ÙlvVV–¡÷øÔ³%F;yò¤···½½}VVÖ™3g-Zdkk»wï^HII‰'·±´´$ׯªªòõõe2™nnngΜ‚ rss½½½mllV®\Y[[«9ÃNEE…§§'‡ÃIIIÓY ÏN“™©*++]\\Äb1œ;wÎÃÃcttT©Tfdd,\¸ÐÞÞ>66V"ùÏO**Š´´4‡“––¦P(tÆX±bÏÍ ‰ä­·Þb³Ù®®®©©©2™ŒÃ/¾øÂÛÛ{Á‚xZÿAó‚ ê_R"##‡††òóó`óæÍCCCG€‡Ö×׳X,…B:{ö¬A###yyyB¡ðĉ cddäèÑ£§´´´··÷âÅ‹®®®ðÿ‹z£ÿ_N8$$¤½½ýúõë\.733Sg%šxýjhmm~ò®ØØØ¸¸¸¾¾>‡ÆÆF„Pvv¶Çãóù~~~©©©ä–Ÿ|òɦM›îÝ»Çãñ–/_þþûïëÉF6Ñ,GGGuvvòx¼%K– <<\,?~Ÿ¸’qDDDDDÄc"¦`®¥¥!$—˵ÊJ¥ÒÑÑñ›o¾A…††fee!„D"Ñœ9s<(‹ ‚V©T>>>§OŸVw[PP0ÞÇ#ï-,,är¹:+õGè™*‹]]]}}}É¡Dyzz–––’åÛ·o«Ë^^^B¡,_¾|yÙ²ez²‘5ê²\.§Óé7oÞ$ëKKKÉÀ@®J­7ýcŽt™›Ê¹¥ Ì™3G« t:ý7Þ(--}øðaMMMtt4ÌŸ?¿¶¶öúõë®®®¯¼òÊÕ«WÍÌÌÁ²eËÔ}úúúŽß‘»»;Yðòòºÿ¾žÊ‰?(d½]bbâ­[·¶oßNÖüüóÏêž½½½7nÜH–»ººœœœÈóÒµk×þûßÿž|Œ¨TªÅ‹“7¹\®zKgggÍq›3ÿ® ""¢¬¬ìÂ… «W¯&ç@©TJDQQ‘H$Š_¿~½H$rqqikûï¼Þº¥cIòÉ íííäC¨òiéîîÎÍÍ Þ½{7Yãì쬾¤ÛÚÚºoß>²Ìf³ÕúÅb1¹Pý$c888Ðét@@Þìììtqq!ËffÓy­çãdfKëÕ«ËJ¥’Ãá888œ:uмK*•2™ÌâââcÇŽ1™L©TúñÇs8œòòr¡PX]]­ó8ØÑÑÑÔÔäîîžžž®³é=Î544!¤R©‚ƒƒ?üðC‘HäèèXYY‰ÊÈÈðõõåóù|>ÕªU d')))ááá]]]mmm~~~;vìГ<ŽjΜQQQAAA€Ïçûøø'C=ÌÌqN¿9„жmÛæÎ;44¤nUXX¸xñbsss//¯ŠŠ „\.ÿàƒ-Zdmm½råÊ/¿ür¼¹üüü^xÍf'''K¥R•Z#¥Yžè™š““óÒK/Éår„PYY™“““H$’Éd©©©ÎÎζ¶¶‘‘‘b±˜ìdhhèí·ßž?>‹ÅJLLÕC¡P¬^½ÚÚÚZ+ƒH$Љ‰a±XNNN;wî$ÇÜdسgOTTÔS5Ñ|´ão꩜}Œc¼¹~'.“Éz{{OžŸïïï¯y†òØû¹]»vuwwÏz*ƒ088·½}þË/ étSXxÈßß_ëœßdWTŠŽ>Z[{çóÏ£""þÇØY ‚iç$’GW®´ÐÊÊZŒÅP˜¦¹ÊÊV@W¯þ400lä4†Á4ÍOh4šé­Kb‚æz{%ÍÍ?A™ÚÚ¸$&h®¢ân@‚€¶¶îîn‘±CÍ<&h®¨è{•ê¿ëä2f7Œ˜Ç@˜š¹öö¾;w„šït”JÕ… &8ašš¹ÊÊÖ9sèš5ÁÝ»îÜ+’0)s¡ÂÂ&…B{Iqss†éM˜&eŽÇ»ßÓ#_/—+‹Š¾7±«E&e®¼¼eÎÝ߬éí•´´Ü›å<Ť̕•µ¨T*ssÆø?ÚÅ‹­Æ8“˜ÔamÛ888B–»»Eß}×¹yó/7¯^ín¤\Ád?+¨¬lݶ­ ·÷3c1&5[>W`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQlŽª`sT›£*ØUÁæ¨ 6GU°9ª‚ÍQíÿYíêêºté’Q¢Ì,7oÀ±cÇŒd`2™[¶l177¬Vk-Š-[¶)F%%%Z¦´_s*•* ##Ã(ù0: T*•Z•ø8GU°9ª‚ÍQlŽª<‹æzzzgª·@ Ö¯_ÿ—¿üE½âôä“öôô<< ß|óMLLŒL&›š‚©Ï–ÍÍÍGŽ©««ËÎÎ8qâÄ¿þõ¯O?ý4<<ü•W^Ù»w¯J¥¢Óé×®]srrâr¹2™,33399yÕªUð÷÷¯©©ùûßÿ¾k×®_üâwïÞÝ¿ÿø•——ïß¿xxxß¾}óæÍ _ggg—ššJ6Ñ,€L&#—¦ÌÏÏ_»v-|¸¾¾þàÁƒaaa_ýµÎVÅÅÅB¡ðèÑ£###YYY§NJHH¨¯¯?|øpRRÒáÇ?þøc&“9µñŸúlùæ›oZZZ†„„@TT”¥¥åºuë`xxxÉ’% ƒÇã@MMMHHFS(!©Tjnn¾nݺªª* ‹’’’mÛ¶­Y³†Åbùùùmݺuü޶oßîêêêíí½uëÖË—/OTieeFÞ«Y€­[·††††……ÅÆÆ¶··€¹¹ù‰'RRRX,‡Ã€ÑÑÑÊÊJÍ<‰‰‰:û† ¬­­ýë_ÀÐÐÐD­ª««ÿð‡?p877·¤¤$r–NNNniiIMMýÍo~ãåå5åñŸúkÎÒÒ †VÌÌÌÖ¬YsåÊ77·ææfrµu›Ï>û¬¸¸øÔ©SQQQ~~~B¡Ëåªûtss¿#r©qX¸páÀÀ€žÊ‰8{ö,¹ûØØXqqñ®]»ÎŸ?Ï`0îß¿ðàA©TêîþŸPxb`³Ùšw¢V}}}›6mR×[YY€µµõk¯½VPPðé§Ÿê­C¡\½zµ®®néÒ¥ööö066FDfffUUUhhèž={†‡‡Ùlvgg§ºUWW×ø®îß¿Oº»»Y,–žÊ'baaÖßß/‘HÆÆÆ233·lÙrìØ±?þñ䎎ŽOÌ4MóæD­lmmÏž=[[[[[[[UUõ·¿ý úûûËÊÊ~ùË_’7§Œ¡ÌùúúªTª‚‚r:–––våÊ•ÑÑQ…BÁ`0,,,^}õÕ#GŽ\»vM$555éüP&77·§§çÎ;êC”ÎÊÑÑÑ‹/’÷j–@"‘ˆD"‘HÔßßîÜ9‡cgg§P(”J%ƒÁËå§N€G½þúëšyÈ®'2Q«5kÖ?~üÁƒàÝwß-//G8pà7ÞØ»wosssCCÃÇ×pïçÌÌÌüýýÿùÏúûû“5æææúÓŸŽ=Úßßïì윑‘annþæ›oªTªÃ‡K$ò`ðÑGiu¼{÷n™LMÎZ• ‘HÈó­2ìØ±ƒ,Ðh´E‹effÒh4kkëíÛ·ôÑGsçÎŠŠ z÷ÝwKJJ Å‘#G/^¼wïÞwÞyç‰vÆ :[ÅÇÇçææ&$$Ðh4ÿ¤¤¤òòr‰DÉ`0vîÜyèС¥K—ÚØØLa„µSvóæÍ3ò)O~~~__ߟÿüçÉ7éééùío[[[«ó¦žJÓ&00püjá™-år¹P(¬®®~íµ× Ñ? dîÇLJJzõÕW—-[6~¬¬¬Ö¯_?™ÊçΖ˜™böfKÌ,€ÍQlŽª`sT›£*Ú×Pètz]]]]]1Â`&D}u[ö»@ÐÜÜ<‹‘0O†N§‡††j}’g²+*™<ø8GU°9ª‚ÍQlŽªüA{%üÀM>IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/manip_8h_source.html0000755000372000001440000013132412502417162024134 0ustar robertousers MySQL++ Reference Manual
manip.h
Go to the documentation of this file.
1 
17 /***********************************************************************
18  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
19  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
20  also hold copyrights on code in this file. See the CREDITS.txt file
21  in the top directory of the distribution for details.
22 
23  This file is part of MySQL++.
24 
25  MySQL++ is free software; you can redistribute it and/or modify it
26  under the terms of the GNU Lesser General Public License as published
27  by the Free Software Foundation; either version 2.1 of the License, or
28  (at your option) any later version.
29 
30  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
31  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
32  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
33  License for more details.
34 
35  You should have received a copy of the GNU Lesser General Public
36  License along with MySQL++; if not, write to the Free Software
37  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
38  USA
39 ***********************************************************************/
40 
41 #ifndef MYSQLPP_MANIP_H
42 #define MYSQLPP_MANIP_H
43 
44 #include "common.h"
45 
46 #include "myset.h"
47 #include "stadapter.h"
48 
49 #include <iostream>
50 
51 namespace mysqlpp {
52 
53 class SQLQueryParms;
54 
55 
69 
70 enum quote_type0
71 {
72  quote
73 };
74 
75 
76 #if !defined(DOXYGEN_IGNORE)
77 // Doxygen will not generate documentation for this section.
78 
79 struct quote_type1
80 {
81  std::ostream * ostr;
82  quote_type1(std::ostream * o) :
83  ostr(o)
84  {
85  }
86 };
87 
88 
89 inline quote_type1
90 operator <<(std::ostream& o, quote_type0 /* esc */)
91 {
92  return quote_type1(&o);
93 }
94 
95 
96 struct quote_type2
97 {
98  SQLQueryParms *qparms;
99  quote_type2(SQLQueryParms* p) :
100  qparms(p)
101  {
102  }
103 };
104 
105 
106 inline quote_type2
107 operator <<(SQLQueryParms& p, quote_type0 /* esc */)
108 {
109  return quote_type2(&p);
110 }
111 
112 
115 
116 MYSQLPP_EXPORT SQLQueryParms& operator <<(quote_type2 p,
117  SQLTypeAdapter& in);
118 
119 
122 
123 MYSQLPP_EXPORT std::ostream& operator <<(quote_type1 o,
124  const SQLTypeAdapter& in);
125 
126 
133 
134 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& o,
135  const SQLTypeAdapter& in);
136 
137 
138 template <class ST>
139 inline std::ostream&
140 operator <<(quote_type1 o, const Set<ST>& in)
141 {
142  return *o.ostr << '\'' << in << '\'';
143 }
144 
145 #endif // !defined(DOXYGEN_IGNORE)
146 
147 
155 
156 enum quote_only_type0
157 {
158  quote_only
159 };
160 
161 
162 #if !defined(DOXYGEN_IGNORE)
163 // Doxygen will not generate documentation for this section.
164 
165 struct quote_only_type1
166 {
167  std::ostream* ostr;
168  quote_only_type1(std::ostream* o) :
169  ostr(o)
170  {
171  }
172 };
173 
174 
175 inline quote_only_type1
176 operator <<(std::ostream& o, quote_only_type0 /* esc */)
177 {
178  return quote_only_type1(&o);
179 }
180 
181 
182 struct quote_only_type2
183 {
184  SQLQueryParms* qparms;
185  quote_only_type2(SQLQueryParms* p) :
186  qparms(p)
187  {
188  }
189 };
190 
191 
192 inline quote_only_type2
193 operator <<(SQLQueryParms& p, quote_only_type0 /* esc */)
194 {
195  return quote_only_type2(&p);
196 }
197 
198 
205 
206 MYSQLPP_EXPORT SQLQueryParms&
207 operator <<(quote_only_type2 p, SQLTypeAdapter& in);
208 
209 
210 MYSQLPP_EXPORT std::ostream&
211 operator <<(quote_only_type1 o, const SQLTypeAdapter& in);
212 
213 
214 template <class ST>
215 inline std::ostream&
216 operator <<(quote_only_type1 o, const Set<ST>& in)
217 {
218  return *o.ostr << '\'' << in << '\'';
219 }
220 
221 #endif // !defined(DOXYGEN_IGNORE)
222 
223 
236 
237 enum quote_double_only_type0
238 {
239  quote_double_only
240 };
241 
242 
243 #if !defined(DOXYGEN_IGNORE)
244 // Doxygen will not generate documentation for this section.
245 
246 struct quote_double_only_type1
247 {
248  std::ostream* ostr;
249  quote_double_only_type1(std::ostream* o) :
250  ostr(o)
251  {
252  }
253 };
254 
255 
256 inline quote_double_only_type1
257 operator <<(std::ostream& o, quote_double_only_type0 /* esc */)
258 {
259  return quote_double_only_type1(&o);
260 }
261 
262 
263 struct quote_double_only_type2
264 {
265  SQLQueryParms *qparms;
266  quote_double_only_type2(SQLQueryParms* p) :
267  qparms(p)
268  {
269  }
270 };
271 
272 
273 inline quote_double_only_type2
274 operator <<(SQLQueryParms& p, quote_double_only_type0 /* esc */)
275 {
276  return quote_double_only_type2(&p);
277 }
278 
279 
286 
287 MYSQLPP_EXPORT SQLQueryParms&
288 operator <<(quote_double_only_type2 p, SQLTypeAdapter& in);
289 
290 
291 MYSQLPP_EXPORT std::ostream&
292 operator <<(quote_double_only_type1 o, const SQLTypeAdapter& in);
293 
294 
295 template <class ST>
296 inline std::ostream&
297 operator <<(quote_double_only_type1 o, const Set<ST>& in)
298 {
299  return *o.ostr << '"' << in << '"';
300 }
301 
302 #endif // !defined(DOXYGEN_IGNORE)
303 
304 
315 
316 enum escape_type0 { escape };
317 
318 
319 #if !defined(DOXYGEN_IGNORE)
320 // Doxygen will not generate documentation for this section.
321 
322 struct escape_type1
323 {
324  std::ostream* ostr;
325  escape_type1(std::ostream* o) :
326  ostr(o)
327  {
328  }
329 };
330 
331 
332 inline escape_type1
333 operator <<(std::ostream& o, escape_type0 /* esc */)
334 {
335  return escape_type1(&o);
336 }
337 
338 
339 struct escape_type2
340 {
341  SQLQueryParms *qparms;
342  escape_type2(SQLQueryParms* p) :
343  qparms(p)
344  {
345  }
346 };
347 
348 
349 inline escape_type2
350 operator <<(SQLQueryParms& p, escape_type0 /* esc */)
351 {
352  return escape_type2(&p);
353 }
354 
355 #endif // !defined(DOXYGEN_IGNORE)
356 
357 
364 
365 MYSQLPP_EXPORT SQLQueryParms&
366 operator <<(escape_type2 p, SQLTypeAdapter& in);
367 
368 
371 
372 MYSQLPP_EXPORT std::ostream&
373 operator <<(escape_type1 o, const SQLTypeAdapter& in);
374 
375 
386 
387 enum do_nothing_type0
388 {
389  do_nothing
390 };
391 
392 
393 #if !defined(DOXYGEN_IGNORE)
394 // Doxygen will not generate documentation for this section.
395 
396 struct do_nothing_type1
397 {
398  std::ostream* ostr;
399  do_nothing_type1(std::ostream* o) :
400  ostr(o)
401  {
402  }
403 };
404 
405 
406 inline do_nothing_type1
407 operator <<(std::ostream& o, do_nothing_type0 /* esc */)
408 {
409  return do_nothing_type1(&o);
410 }
411 
412 
413 MYSQLPP_EXPORT std::ostream&
414 operator <<(do_nothing_type1 o, const SQLTypeAdapter& in);
415 
416 
417 struct do_nothing_type2
418 {
419  SQLQueryParms *qparms;
420  do_nothing_type2(SQLQueryParms* p) :
421  qparms(p)
422  {
423  }
424 };
425 
426 
427 inline do_nothing_type2
428 operator <<(SQLQueryParms& p, do_nothing_type0 /* esc */)
429 {
430  return do_nothing_type2(&p);
431 }
432 
433 
436 
437 MYSQLPP_EXPORT SQLQueryParms&
438 operator <<(do_nothing_type2 p, SQLTypeAdapter& in);
439 
440 #endif // !defined(DOXYGEN_IGNORE)
441 
442 
452 
453 enum ignore_type0
454 {
455  ignore
456 };
457 
458 
459 #if !defined(DOXYGEN_IGNORE)
460 // Doxygen will not generate documentation for this section.
461 
462 struct ignore_type2
463 {
464  SQLQueryParms* qparms;
465  ignore_type2(SQLQueryParms* p) :
466  qparms(p)
467  {
468  }
469 };
470 
471 
472 inline ignore_type2
473 operator <<(SQLQueryParms& p, ignore_type0 /* esc */)
474 {
475  return ignore_type2(&p);
476 }
477 
478 
481 
482 MYSQLPP_EXPORT SQLQueryParms&
483 operator <<(ignore_type2 p, SQLTypeAdapter& in);
484 
485 #endif // !defined(DOXYGEN_IGNORE)
486 
487 } // end namespace mysqlpp
488 
489 #endif
Declares the SQLTypeAdapter class.
This file includes top-level definitions for use both internal to the library, and outside it...
Declares templates for generating custom containers used elsewhere in the library.
mysql++-3.2.2+pristine.orig/doc/html/refman/field_8h.html0000755000372000001440000000647012502417162022536 0ustar robertousers MySQL++ Reference Manual
field.h File Reference

Declares the Field and Fields classes. More...

#include "common.h"
#include "type_info.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::Field
 Class to hold information about a SQL field. More...
 

Typedefs

typedef std::vector< Field > mysqlpp::Fields
 The list-of-Fields type.
 

Detailed Description

Declares the Field and Fields classes.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1RefCountedPointer.html0000755000372000001440000007043312502417163027570 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RefCountedPointer< T, Destroyer > Class Template Reference

Creates an object that acts as a reference-counted pointer to another object. More...

#include <refcounted.h>

Inheritance diagram for mysqlpp::RefCountedPointer< T, Destroyer >:

Public Types

typedef RefCountedPointer< T > ThisType
 alias for this object's type
 

Public Member Functions

 RefCountedPointer ()
 Default constructor. More...
 
 RefCountedPointer (T *c)
 Standard constructor. More...
 
 RefCountedPointer (const ThisType &other)
 Copy constructor.
 
 ~RefCountedPointer ()
 Destructor. More...
 
ThisTypeassign (T *c)
 Sets (or resets) the pointer to the counted object. More...
 
ThisTypeassign (const ThisType &other)
 Copy an existing refcounted pointer. More...
 
ThisTypeoperator= (T *c)
 Set (or reset) the pointer to the counted object. More...
 
ThisTypeoperator= (const ThisType &rhs)
 Copy an existing refcounted pointer. More...
 
T * operator-> () const
 Access the object through the smart pointer.
 
T & operator* () const
 Dereference the smart pointer.
 
 operator void * ()
 Returns the internal raw pointer converted to void*. More...
 
 operator const void * () const
 Returns the internal raw pointer converted to const void*. More...
 
T * raw ()
 Return the raw pointer in T* context.
 
const T * raw () const
 Return the raw pointer when used in const T* context.
 
void swap (ThisType &other)
 Exchange our managed memory with another pointer.
 

Detailed Description

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
class mysqlpp::RefCountedPointer< T, Destroyer >

Creates an object that acts as a reference-counted pointer to another object.

Resulting type acts like a pointer in all respects, except that it manages the memory it points to by observing how many users there are for the object.

This attempts to be as automatic as reference counting in a programming language with memory management. Like all automatic memory management schemes, it has penalties: it turns the single indirection of an unmanaged pointer into a double indirection, and has additional management overhead in the assignment operators due to the reference counter. This is an acceptable tradeoff when wrapping objects that are expensive to copy, and which need to be "owned" by disparate parties: you can allocate the object just once, then pass around the reference counted pointer, knowing that the last user will "turn out the lights".

Implementation detail: You may notice that this class manages two pointers, one to the data we're managing, and one to the reference count. You might wonder why we don't wrap these up into a structure and keep just a pointer to an instance of it to simplify the memory management. It would indeed do that, but then every access to the data we manage would be a triple indirection instead of just double. It's a tradeoff, and we've chosen to take a minor complexity hit to avoid the performance hit.

Constructor & Destructor Documentation

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::RefCountedPointer ( )
inline

Default constructor.

An object constructed this way is useless until you vivify it with operator =() or assign().

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::RefCountedPointer ( T *  c)
inlineexplicit

Standard constructor.

Parameters
cA pointer to the object to be managed. If you pass 0, it's like calling the default ctor instead, only more work: the object's useless until you vivify it with operator =() or assign().
template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::~RefCountedPointer ( )
inline

Destructor.

This only destroys the managed memory if the reference count drops to 0.

Member Function Documentation

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::assign ( T *  c)
inline

Sets (or resets) the pointer to the counted object.

If we are managing a pointer, this decrements the refcount for it and destroys the managed object if the refcount falls to 0.

This is a no-op if you pass the same pointer we're already managing.

Referenced by mysqlpp::RefCountedPointer< SQLBuffer >::operator=().

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::assign ( const ThisType other)
inline

Copy an existing refcounted pointer.

If we are managing a pointer, this decrements the refcount for it and destroys the managed object if the refcount falls to 0. Then we increment the other object's reference count and copy that refcount and the managed pointer into this object.

This is a no-op if you pass a reference to this same object.

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::operator const void * ( ) const
inline

Returns the internal raw pointer converted to const void*.

See Also
comments for operator void*()
template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::operator void * ( )
inline

Returns the internal raw pointer converted to void*.

This isn't intended to be used directly; if you need the pointer, call raw() instead. It's used internally by the compiler to implement operators bool, ==, and !=

WARNING: This makes it possible to say

* RefCountedPointer<Foo> bar(new Foo);
* delete bar;
*

This will almost kinda sorta do the right thing: the Foo object held by the refcounted pointer will be destroyed as you wanted, but then when the refcounted pointer goes out of scope, the memory is deleted a second time, which will probably crash your program. This is easy to accidentally do when converting a good ol' unmanaged pointer to a refcounted pointer and forgetting to remove the delete calls needed previously.

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::operator= ( T *  c)
inline

Set (or reset) the pointer to the counted object.

This is essentially the same thing as assign(T*). The choice between the two is just a matter of syntactic preference.

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::operator= ( const ThisType rhs)
inline

Copy an existing refcounted pointer.

This is essentially the same thing as assign(const ThisType&). The choice between the two is just a matter of syntactic preference.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/globals_defs.html0000755000372000001440000000327212502417165023500 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadQuery.html0000755000372000001440000004317312502417163025706 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadQuery Class Reference

Exception thrown when the database server encounters a problem while processing your query. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadQuery:
Collaboration diagram for mysqlpp::BadQuery:

Public Member Functions

 BadQuery (const char *w="", int e=0)
 Create exception object. More...
 
 BadQuery (const std::string &w, int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what() More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when the database server encounters a problem while processing your query.

Unlike most other MySQL++ exceptions, which carry just an error message, this type carries an error number to preserve Connection::errnum()'s return value at the point the exception is thrown. We do this because when using the Transaction class, the rollback process that occurs during stack unwinding issues a query to the database server, overwriting the error value. This rollback should always succeed, so this effect can fool code that relies on Connection::errnum() into believing that there was no error.

Beware that in older versions of MySQL++, this was effectively the generic exception type. (This is most especially true in v1.7.x, but it continued to a lesser extent through the v2.x series.) When converting old code to new versions of MySQL++, it's therefore possible to get seemingly "new" exceptions thrown, which could crash your program if you don't also catch a more generic type like mysqlpp::Exception or std::exception.

Constructor & Destructor Documentation

mysqlpp::BadQuery::BadQuery ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API
mysqlpp::BadQuery::BadQuery ( const std::string &  w,
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

int mysqlpp::BadQuery::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what()

This may return the same value as Connection::errnum(), but not always. See the overview documentation for this class for the reason for the difference.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadConversion__coll__graph.png0000644000372000001440000002432412502417165031232 0ustar robertousers‰PNG  IHDRûÍñ3‘AbKGDÿÿÿ ½§“ IDATxœíy\GÃÇ'7w„#ÜB@‹G¤Þ¢AûxST´"¢>ž­`ÕZ¡}ÔzÕų¨ˆ ˆhµ¥ž…òŠ‚ Cn$„@îìûÇúI#M²!™ï_Ãdvæ·3?fgwggp‚DoÀc-Ñ(Ðñý:¢_@ÇCô â‡,JJJd2™ªÔèFFFîîîjʼ¤¤¤½½]M™« µÖ@7|ã¹\nss³•••ªÔè B¡°¦¦F}í]SScffF¡PÔ”ÿ‡£îè†r<Š··÷‡g¢W466>þ\­E888X[[«µˆA5ÐpÑ/ ã!út<;;=Jñbª‹ÅÑÑÑ666ÖÖÖÑÑÑb±øÊ•+öööl6””äááÑÖÖ&‘Hbbbœœœ¬¬¬æÍ›Çápº:Í<==½ÿþÖÖÖ+W® …Š Kçp8_ý5NwppˆŠŠwöìY/// ‹;vh J?œî=å;wî899:uJ~úÏAøøø˜™™7îêÕ«Ú>B>€†††ÌÌÌîÓðx< …_WWwüøq"‘ÈãñJJJäEïÞ½ÛÚÚ:55µ¶¶öÚµkvvvèO'!!M£Þ¾}ûôéÓ_½z•ŸŸ?tèÐuëÖ!2oÞ¼ùóç×××ÛØØdgg#²sçNooïüüügÏžùúúFEEuu8*&  ¸¸8++‹ÉdÆÆÆ**T Ï™3ÇßßÿåË—ùùùŒE?0˜1c›ÍNHH477x½}™™™ Ý$xg£ á‰'þñÇOŸ>•Çw>Ó„„{{û7n455ݺu‹ÉdöÄTê®nP»ãY,‰DÚµk›Í–Éd­­­R©T±r=<C:.ïDÙlvVV ªª*..nüøñkÖ¬A“ÙÙÙUTT á§OŸnÙ²¥›ÃhO(..Fµ3666¡¬¬ ýóåË—öööhX©c´–w6 ŠÒàgêìì¬ØdEEE*W«ZÔÞN8. %%…ËåŠD"‰ddd„þÄãñK–,‰ŽŽNOO¯¯¯¿qãÆ¦M›Ð_[ZZŽ;Ö9}*ÿóÒ¥K賄îÑå;Wˆn“ŸŸ?wîÜÜÜÜööö¬¬¬~ø!""kQÝ¡‚/Bú:fff‹/ÆZE_eíÚµíííS¦Lijjruu ×òÊ„ŽÖÖÖñññX«è«‰ÄÍ›7oÞ¼k!=Žj út200P_æ E±Bd@TGh/&¶½ ʉD3™ËÆž®%›ÔxÁÐe=DWñÊsj­nø 7P©ÔÑ£G«JŠj‰‹;$J8“  aXkÑ4~~~^¨&»õÕ£–š¬Vq›Gˆ>_ÙÏcŒeOò‘eI› ô3Èc¡VÍCû¿§¹™—]ŠÃ””dzgë‘ãÛÅUZª³ZksZ…\ Ž€ ‡ ‘<0ƒ,=¾ì‘ÝÅÍBŽGÀ½~ÑΜ¯Å\¾œ A¬¬—õõ-¶¶T¬©§'ëË~g7— px‘ÐNýÍ0x"ÎØ–ôy´c3”dÕ!)ÒצÑX ›Ïj.^̑ɀ¿rå)ÖrÔŠR_³JøAxc÷ÎLØáF2êi‹?¿Ô$l•¢ÿ/¬âvD¦#»'é ã++›Ÿ=«A/åR©ìâŬ©ðßÚt11àÀðõŽ–ý {˜Ÿ¸]úäX½Üå!Â)ªD)æè ãÓÓŸ‰oÚAš²²&l%iëŒÍ·Á”˜OĹZxNéÅA…ÉMâö¯x<®©HG6:èøóç³Åâ[‹D"\¾œ‹¡1t1ÃÄŽŒ'¾ez<˜ØGnpêy>¢6iÞ©Dúï0G¯‹´} †¢kŽ/*ª­¨x­#Kõa`#áËm¯âÕ‰··+Åáq¿¸ö|ø(8×(¼u+ #ù°×JÒÒrI$B‡ÈÊÊæ‚‚Lôh†ú'¼‹3ŸWüÉñßÖohG/¨|W;X¸÷tør%ù§d’Ž÷©¬R¾Lª 7¯:åxA.\È‹¥âux`#“ ¨¹¶¸ÄÂÍpÆE/—±´Á lÍ](x"OÄ9ø™y‡ônÏ¢gg¥"%ΖŠN™@Eª±D§ÿøqEc#·s<:°‘éÊó59ÜjaÆÂâÂóMÃ×9~±×ÍЂÀ“pc6÷C„B%ŒùŸ èÍÂ|–äYbƒÒ¾GMÏua(¯SŽOK{B$vÒ 45µþýw™†õ¨›‡ÛªD<éäãžÓèŠÎ¶ô0 øÅu⦭woŸ_l’•÷ 8îõ ]p¼N½sÍÈx"“!d²’“‰¤¿ý–?l˜›æU©Q›œ)f¢’nËiäû¼f¦{9|nÖR)à5ˆ Àp"N&Ad¤Q'Þ¼ê”ãׯf±Þ´Ê«WÍ”(Nªùì3WŒt© ckOâuEuE 2¤&»õúòÒ!á¶R±¬¥JÈ)Ûô5»G§ú¯¿¯\yš˜ø×²eþêé»àð8‰Pp`Ð"E§†¾:u2­ÑI:fwß'(¿Í¹4«HÀQòM“úh­™9hï®ßï t¼VƒÈLJëî¬/3w3 5º‚)·Z¨“Ž×©q¼ŽÑZ#º³¾Œ]&ãâ>IÓdp«…¶CL4\¨€Ž×R^=h¹»©ÒÈŠ4õŒ'ÍEÓŸ„Ê$¯N7G5ÐñÚHþ¯ ¨é7Î|ä&'²±òwjjEÐ"1¶%›9BÇC4ÕÅàóhdzz7%F…Y’¾ºâUéj:^A_AÔ|VÑ/ ã!út<ÆðYð^³˜q8\ii©ªåè>ÐñXR—Ë»4ëù‹´×ïNú¾”••Ñé½ø¦[çw®˜‘wª!ç`­ËXªZ—û’ÉdÍÍÍêË¿Ïûx e™ßWä¬ùt™Ýøí®DC%­àçç·gÏ‹ÅÂãñQQQ©Tjnn~íÚ54ÍÍ›7™L¦¹¹ùÏ?ÿŒÆ\½zuÈ!FFF cÛ¶m€aÆlmm{.OÐ"iÈkÓ™%™:‚Ƀ =ý ƒ±kJàÕ Sgù´ò>§›d?ýôSpp0‚ éééfffC‡Eäÿþïÿ ÚÚÚLš4‰Ë妤¤^¿~ÍårÉdrxxxuuõ™3gï±wgñÕæ~OÙœ¤ûxÒZ#̈(æ³ÅÁGÜFt÷Ð=((èîÝ»b±øîݻ˗/öì‡ÃÉÌÌ7nœ|í¨¨(SSÓ)S¦Øl6…BÉËËÛ¿?ƒÁptt´´´¼‡HnµÐԞܫdûp¯QŒ¬ÈŽ#¨C"l,ßñ=Ñ!CŒsrrîÝ»wûöí{÷îeffËÓØÙÙðø7Ý™L...^´hÇ2dÈ{‹äV MuqF ìã5 Œþã;íÀãñAAAéééÅÅÅC‡7nÜ­[·îÝ»§èxÜÛ MòùüY³fEGGçææ:tè½E¶êè‡Ã8qÂËËËÊÊjÛ¶m‰‰‰ýúõ£R©?üð`åÊ• .DSòx<##£'Ož222||| \]]2™,..ÎËËËÔÔÔÏÏ/33Sñ¢‰^CÓÓÓû÷ïomm½råJ¡P¨4¼}ÁíÉÅ÷Ê•+öööl6””äááÑÖÖ&‘Hbbbœœœ¬¬¬æÍ›Çá¼YbW,GGGÛØØX[[GGG‹Åb¥2† @ÿ»5p8œ¯¿þšN§;88DEE ´Ïž=ëååeaa¡¦×¨ŽT*ݹs§‡‡‡©©éðáó³³Ñø«W¯2ÄÈȈÁ` ÿØŠç®4v(HNNFºÊår;˜5k—Ë=räàõë×wïÞµ´´‹Å‚œ9sÆÛÛ[&“ñx< …_WWwüøq"‘ÈãñŽ9bmmššZ[[{íÚ5@II * gee1™ÌØØX¥‘‚p8œ„„TžbðôéÓÖ·Aš7oÞüùóëëëmll²³³Ù¹s§··w~~þ³gÏ|}}£¢¢Ð”Û·oŸ>}ú«W¯òóó‡ºnݺn´¡‡(†çÌ™ãïïÿòåËüüü¢‚3fÌ`³Ù €æææîëA™3gΜ9óÉTÈîÝ»ÈÎÎÀårÉdrxxxuuõ™3gŠç«4&e¿“÷q|nn.‚ "‘¨C¸¤¤D"‘ØÚÚÞ¹sA   mÛ¶!Âb±H$Ò®]»Øl¶L&kmm•J¥ÞÞÞ§N’g{úôéÎŽÏÏÏGMNNf2™J#»—ÚÕ8›ÍvppðññA-ˆ HÿþýSSSÑðóçÏåaOOϺº:4|ëÖ­Áƒw£ ‘‡E"@(((@ãSSSQÁ€ÌÌLÅzë¾Îu:þÁϯÊ3Ùã=<<:7P(,**âñxR©ôîÝ»¨xÅsWš@²ß›÷¹s555H¤a@˜6mZjjêëׯoß¾=g΀¹¹yfffVV–ƒƒÃèÑ£ïß¿ÇãËÊÊ,ÏÓÇǧsAîîîhÀÓÓ³ººº›È®è\Ýh?&&ÐÚÚŠ¦GϽ›ÚB‡+~OÆñò>¯«ð’%K ¹\®ü¨ääd7772™ìé陞žŽ ˆH$úé§ŸúõëgbbâççwîÜ9ÐiìØ1ggg:¾bÅ >Ÿ¯4yûNQ1ÜÕù8p`РA"‘A´´4ƒÁb±ATT”•J e³ß m¹\î‚ ÌÍÍ---###ÛÚڔʋÅ#FŒ011é Åb………YZZ2Œo¾ùÜU½uƒšÆñ%ךùæÊ¤²Î?I$’;w2™Lccc???ô↠ÈîÝ»-,,:jmm­xîJ¨\ö‡ÐkÇ÷„ 6Ìž=»W‡(º¤óŸÝDjLd¨ÉñÔ&O-Py¶ÚŒŠß@ ‚ÚÚÚ'N$%%©6gˆ:Їmp: âq|vvö'Ÿ|>f̘ÉÇÌÌlñâÅ=‰ÔAˆD‚D"µµ¥Îëò™½½9ÖÒ ª‡‹µŒa0hõõœ¢¢:‰D àñ„99ññ™¿ÿ^ˆÃáÜܬÉd|†+“"—fÑ\ ôdñ=9°§Ý×wsk+_1’@À#B¡ƒƒÍœùéˆîºñ1? ·Z˜üŸÂ©g=õí‘<|V4šÑš5_àß^<^*•ÉdŸ/NOrØßgnn%V U·ªËyº tü,áìL'”TˆX,¼xQW[ËѸ.uÁ­P‰dÖB4 tüH$ž=_ÉdÊÇxxs4i‰Ô±Û#ð“'ŽŽÄD•šàV Íôcœ@Ç¿Å?Né0°!‘66f[·ÎÐ¥ÛV·JDuУ)“r ãßÂÖ–ºzu€ÜôD"žJ5Ä¡¡ñ -ØjS%h­Ñ—­Î:ŸNvD,–ޱµ¦† 04$]»ö •jøõ×Ç«ªXLJûúºb-P €Ï“Œz¸/¹Þð;!‘±±Sd2AÀ¾}s<yr!®GûÉèÐñïCEÅë°°‰Dú믋ÜÝõës‚¾Ž>Þ»|8..ôŒŒUööæÁÁ{îÜy޵H/€ŽOh4£¤¤%AA> ?yòÖr =>«y|`àG¦¦†11ilvû˜1ž}âNó?íç'2'šSÌtpÞÿ;ÑÇsV-£ êÊ•çÊË›žgjªí¯î[^ )bl£/\Õ¨„ààA/þ·  zÊ”èËZm†[-4¶%á‰}àr¤ ãUÃСÎ7n¬!p“&íÍËÓê¯ãõp­IE ãU†­-5-m…ãôéqׯ?ÃZN—p«DÐñÕ`lL9q"|Á‚‘'ùåÖr”íè³ã᫊!ðß?ÉÙÙòûïSjj8Û·Ïìü‰ †H„²¶F±>;öñjaî\¿ÄÄE¿ý–7cÆA« k9ÿÂ-!LõlÅEà,5òÏ?õóæ%øÄÄEnnÖXËûxµÒ¿¿íõëßÚØ˜Mž¼ïÑ£R¬å@€ŽW7ÆÉÉKýý„†Æ''ÿµœe ~üĉÉdHll:‡Óg&#è*p¯9®\yºzõ9ÿû÷Ï64ÔÓ—ü˜¯Q?®X°à¸ õ×_# Örô8Ž×(ìrõêj±X¼÷Ù³j¬åè#ÐñšÆÉÉòêÕÕÞÞvÓ¦ÅݼY É¢E­R^½è÷E:LL('OFÌšõéÂ…'¼£±rËn³/Í,ú}Û g`‘ˆß²ez¿~V?þ˜^QѼuët LFàV ÍôýŽ:K""F¹¹Y/YrºªŠuôè|33Cµ§·ë +G53v¬çåË+_¾lœ8qOyy“ZËÒóyÂ(ÐñØãåŸzu5•j8iÒ¾¬¬—ê+¨U¿¿AŽ× llÌÒÒVŒÝÿ«¯âSRþOE8Q›::^[ PˆÎ]±ÂåÊs[¶\Uù›AnµžnüÔxçªEàp¸5k,Ö®½ðêUó¾}³U¸´¥T„X¸ÛêûZ™p–6’“S~ÂÅÅòĉ…VV¦XËÑ) ãµ”ŠŠ×óæ%ˆDÒÓ§#ú÷·ÅZŽîÇñZŠ‹ ýÊ•UŽŽæ“'ï½}.m©2 ãµÍ()ié´i/XpüĉûXËÑਦpìØ½ØØË³gÛºu‘;©:¾oðÛoù+Vœõõu=rd¾ö/m©Í@Ç÷ kæÏ?F¥ž>½ÈÁÁk9}x‰ì3x{Û_»¶šD"Nž¼÷éÓW½:–S.xý¢]MÂúÐñ} jJʲÁƒ¦N=––Ûó “›þÚ?¹@OF5¯^½Z¶l™@ ÀZˆj@\}=£¥…æîþ íÉ!Ÿ¶Í”Écã4ukÓ6¼¼¼öï߯£Ž¿â;E¼}IDATpáBHHȘ1c°¢JD"2™,ÂZ…VÓØØøüùó×£y5111XK€h”?ÿüóÇì Çñý:¢_@ÇCô èxˆ~¡Gw®ØRSS3wîÜÌÌL•ä6vìXyØÄÄä“O>YµjÖ£eý•477>|¸   ¥¥ÅÙÙyΜ9#GŽT‰Â÷@µUÔ°ï«ÄÅÅ¥¤¤\ºti×®]MMMž:÷.—A¡PbbbâããÇ÷¿ÿý/''Gj{‚‰‰Ihh¨ºK}|_…F£YXX,--###7lØÐÛNž<9dÈèèhôOggg‹•œœüé§ŸªXkÏ R©‘‘‘ê.öñÿ2vìØëׯϟ?Ê”)çλyófhhhppð‰'رcš’Ïç–””=z´pက€Ù³gß¼y€ HZZÚüù󃂂–-[öäÉÅAHMMÍØ±c>|6uêÔˆÅb¥‘òÄŠ*UN ÌÍßÌ-û믿-Z8}úôsçÎd2Ùùóç‚‚–/_^TT„¦¼wïÞôéÓó™?þÚµkÑ0ÇÛ¶mÛþóŸ™3g>|X$¡Utûöíùóçùå—çÏŸlܸñСCè!b±xòäÉYYY‰D?uêÔ©S§ÆÇÇK$TnnnHHȳgÏ:×›â ö°ô÷:þ-?~|øðáÈÈÈ„„„¿þúëøñãK—.MLLär¹£G~øð¡T*<|øÁ`0™L@;eÊÔR;vì×®]ûõ×_#""çÍ›÷óÏ?w.èòåË?ÿüóÖ­[³³³Q_*¤ÑhQQQ诊a€@ àóùíííUUUÇŽ›0a ½½}Ó¦MîîîgΜYºtiBB‡ÃIIIINNŽŒŒLLL ‹ðx<‹åä䤨ÊÐÐÐÚúÍ~UûöíkjjŠß¾}{NNNRRÿàÁƒƒ.^¼øÈ‘#­­­þþþwïÞEßkæääP(ôqéÒ¥ººº#GŽüòË/¹¹¹'OžD¿páºuë;×›¢’–þM ÿ!!!FFF€Ù³gZ[[H$óóó·oßÀápb±A>ŸO&“322(JJJÊ’%KFŽiiiéëëѹ ¥K—:88xyyEDDܺu««Hccãàà`ôWÅ0 """(((88xÞ¼yÅÅÅþþþ2™|üøñ•+WZZZ¢Þmkk»r劢tä€z´«ÝJ$Éü±bÅ ƒáêêº`Á¹È)S¦˜˜˜|ñÅ.—ûùçŸs¹ÜþùpçÎÀÀ@¸~ýúªU«¬­­]]]/^ü÷ßovŠŒŒ2d@è\oïQz¯Žã;`dd ‰Â<?räÈ{÷º>~üxÍš5SSÓ={ö\ºtéäÉ“³gÏöõõ­««c2™ò<]]];äàà€œœœšššº‰ìŠ3gÎØÛÛ„Bá¥K—¾ýöÛóçωÄêêê]»vñù|www4eSSSg=¦¦¦æææ•••ÞÞÞòŸ^¼x±wïÞ}ûöq¹\™Lfgg‡ÆÛÛÛËõÐétÅj¡P(Ç¿{÷®‹‹Ë£GÐøúúzÅ!“±±±üÔºª7yb6›ÝÃÒߨÇ÷‚1cÆÜ¿ÿÏ?ÿü裬¬¬B¡P&“ÅÆÆfddmذ¡µµ•N§¿|ùïbz³ª®~3w·ªªÊÒÒ²›ÈwB¡P‚ƒƒ9ŽP(ŒýꫯŽ=ºzõj4­­­R=ÇONNVœhuëÖ-‰DB¡PÌÍÍñx|]]_[[‹Z (», ›‡zxxÈÿi©Tê™3g233333322äc}Ô¬JëMža¯Jï-Ðñ½ÀÇÇG*•ž>}öp8\ttô½{÷ÚÚÚÄb1‘H¤P('N<|øðÇY,Ößÿ}ôèÑÎYÅÅÅÕÔÔ¼xñB>WÙÖÖvíÚ5ôWÅ0€Ãá°X,‹ÕØØ˜””dmmM£ÑÄb±D"!‰"‘:···ùå—ŠzÐqÀÂ… óòò¶nÝZXXXVVvúôéÔÔTt F$ÇŽ»ÿþºººòòòãÇ?¾«jùôÓOy<Þ©S§‚‚‚ä‘#GŽLHHhhh(++[»víåË—QZoò_{Uzo£š^€ÇãGõûï¿5 !“Éëׯ?räHcc£]LL ™L ‘J¥äp8è(vóæÍ²?~üš5k¿¿ÿœ9sЫv‡H‡ÃÙµk:|W –/_Žp8\¿~ýbccq8œ‰‰ÉÒ¥K7oÞlhh8{ölÿµkצ¤¤ˆÅâÇ777»¹¹ýðÃÿýï4íèÑ£‡މ‰áóùNNN[¶l6lšíªU«âââ–,YB"‘ƇêQ ‘H=zô;wF-\¸pa\\Ü¢E‹p8ܨQ£/^üúõkù¯JëM1Ïž—Þ[ôh~¼J^æ;v¬¾¾~ãÆ=?¤Ã«D¥o5óºQß@g wp8Õô‘HTWWwýúõI“&a­òþ@Ç÷”¢¢¢Å‹Oœ8qðàÁ’±±ñäÉ“{ QpTÑYà¨އèÐñý:¢_èѨ«W¯b-¢QÐùmAô€ ú ú†££c3èÅÓIDÇCô èxˆ~Ñ/ ã!úÅÿÁn³§Í SIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption__inherit__graph.png0000644000372000001440000001374412502417165033344 0ustar robertousers‰PNG  IHDRà»ó‚bKGDÿÿÿ ½§“™IDATxœíÝ{PSgúð7 ä" áNaĨPâeW]q,¢ˆv»E-RAJÖè2ê´]ª uœn]·(W¥*¨\•ŠŠÂ.E¨ŠW‡Kð†ÑFB ‘\Îï³›_ !åÈK|>ão^NÞ󜗯yÏ9‰‘BWT}€6P€5(À`ÍHßhóôéÓ˜˜‰D¢ïB –©©é±cÇÜÜÜô]È€°hMMMIIIHHˆ¾ 1XyyyÐÉÍÍÕw ‹B¡è»„ßç kP€5(À` úš››u{%ÑÓÓÃápfÍšeii9oÞ¼øøx™L¦—JÆè˜êîîž;wn]]]bbâíÛ·÷ìÙ“½lÙ2¹\®q{Ç`0ȶµµõîݻǰX,ŒƒÛL†$..ÎÎÎîÚµk4 !4mÚ´åË—³X¬ÌÌÌèèèþÛ+Šööv²Í`0Æ´\ Â+(…B9yò¤———]BB™3g&Ožleeµoß>„жmÛ¢¢¢È-E"‘™™ÙÝ»wBÅÅÅ3gÎ455õðð8sæ BH¡P$%%yyyYZZ.X° ²²RuI%WØ¢¢¢éÓ§ÛÛÛoÛ¶ííÛ·;ѻ˱j;++kÿþýd:Iæææ'++KãP>>>!GGGµq:;;¿üòKƒáêêºsçNòÍ6 …’íåå5iҤÇêœc999ƒ©!´nݺ®®®ŒŒ „ÐÚµk»ººRSSB¯_¿þ÷¿ÿmkk+•J ‚ÈÊÊòööV("‘ÈÄÄ$%%…ÏçŸ8qÂÈÈH$¥¦¦ÚÛÛ¾xñ¢´´ÔÕÕ!ÔÔÔDÖ@6kjj˜Lfll¬ÆN‚ :;;ÓÓÓÉò”펎„@ P«¿ººÚÁÁAËøäfªíððð€€€––.—Ëb±È"„>ûì³ŽŽŽôôt„P{{û`¦.''gp¿ ý0€Þ¹s‡ ˆ¾¾>µvSS“L&stt¼víA+W®LHH B(Òéôï¾û®££C¡PtwwËårooïüQ9ì©S§ú”Ëå*kc2™;ªs €Þ¼y“Á`hŸìQ¶ûúúh4ZCCÙ_XXHî!TYY©z샙:ÌjKŸ_VV¦ñÔßß¿©©©¶¶vêÔ©û÷ïרI pJÄ›7o¦OŸ¾xñâ²²²ÆÆÆÂÂBooï… J$-ãwww†……ðx¼û÷ï{{{“;h´OæKü{P‚ 6oÞÉ8'Nd³ÙƒéÔáø€B`üÅ ¹¹¹¡¡¡8W8ÞQ(”œœœµk×ê»þ+(×  kP€5(ÀÚ8¸Í”––¦ï€Þ`P6Žn¾˜™ÍDõörõ]È`Ñh4åûøxÂú6Óø"—+fÍ:€ârã¨Ô÷î8Õ™›7›…¡PtãF³¾k1PÉËûÅȈJ§Sóòêô]‹á€€ê†D"--½'“É¥REié=‰DªïŠ T7***C)‘H+*ê·ƒÕ‚‚_”ÿä’B¡ü¢ßz Tºº$W¯þG.WårÅÕ«ÿéê‚ïÝÕ¨\ºt_¡xçnBA\¾|__õ¨äçÿ¢v7™ ˆü|Xåu:RA÷M …BµS¡ nÜhºõU•Á€€ŽTII½Æ÷(JIɽþý`H  #•›û‹Ú (I¡PÀû‘ƒ€ŽH[[—ûl€€¢{÷ž½xÑ9öU¬?Í„¿×¯EÎÎÖÊPò^½©é¿y†J¥¾~Ýíìl­·úÆ?ø4“.±Ù§B©©‘ú.ÄpÀ°Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  ðFŒOGß3§‘ÃȈ¡ï*4àp8úþ ÓxýŽúÇûøø|ýõ×ú.døþûï?~¬ï*†i¼!ôÁ„„„車q //Oß% œƒ¬A@Ö  kP€5(…BinnÖË®{zz8άY³,--çÍ›/“ÉóÄææf EÃÿNû~2ð€jÇãñŒQ¹mÙÝÝ=wîܺººÄÄÄÛ·oïÙ³';;{Ù²er¹ü7+±¶¶Þ½{÷hT5ãÛL#§P(ÚÛÛGc丸8;;»k×®Ñh4„дiÓ–/_Îb±233£££µWÂ`0F£ªñè=z¥P(ÙÙÙ^^^“&M:|ø0BÈÇÇ!äèèHn •J9Žƒƒƒ½½=‡Ã‘J¥A¤¤¤|øá‡'N\²dIII ¹øöß’\—¯]»æææöóÏ?geeíß¿ŸL'ÉÜÜœÃádee‘[MŸ>ÝÞÞ~Û¶moß¾U­Du‰ïììüòË/ †««ëÎ;%‰Æ1dú~+k˜BBBBBB~s3„PSS“²ýÙgŸutt¤§§#„ÚÛÛ›ššTg 11qÍš5OŸ>år¹¿ÿýïÿú׿¦§§»¸¸\ºtI ”——3™Lrûþ[’C­X±¢¢¢âùóç!@ VLuuµƒƒ¹e```cccMM “ÉŒU­DµÐÒÒÂårY,Vll¬ÆÑÉ\áéý hee%A}}}d¿Z@===ù|>Ù.//Ÿ={6‹ÅÊÎÎVnpöìYrûþ[’Cq¹\‚ :::4ôæÍ› CuK‚ rrr˜L¦Æ€öõõÑh´††²¿°°Édj<ÌžÞ¯sPggg„N×øÓÇ;99)ZYYõõõ±X,eχ~8ЖdÃÓÓ!dmmíèèX__¿téRÕñëëëçÌ™C¶§Nª| ùŠÛß«W¯ärù”)SȇL&S¹¥ö1$ïÑ9(BˆJÕv¼äËù·£££¦¦ÆÝÝýÁƒÊ >|8Жd¿21áááqqqª×ì===‰‰‰AAAäCòe!ÔØØH¦­?Æãñȇ---...ƒ9Cò¾§"‘ˆl¬^½zÏž=Ož<ár¹AAAÇŽ‹‰‰Ùµkו+WÚÛÛ+**bccÉË—þ[ª¹ÿþ_ý5 àÒ¥KMMM.\˜?¾‹‹Ë–-[È ¶oßÞÜÜ\WW·wïÞõë׫UB¢Óé¡¡¡Û¶mkmmmhhøæ›oÂÃÃGw.0¤¿³‹Þ9¨Z[*•.Z´È‚ììêêÚ°aƒ­­í¦M›zzzärù‘#G¦L™beeTTTdgg§qKµÓY‚ D"ÑŽ;X,–™™™··÷Áƒ{{{‰ÿbfdd¸»»3Œ­[·ŠÅbÕJT‡ …¶¶¶NNN_}õ•X,ÖrP#œ+ŸïæææëëûùçŸÓhþ÷Q5:ÿMid௠]]]ÑÑÑ&&&HIIY²dÉ·ß~[WW7–5ðùüO?ý”l/\¸°      )) !Tð?,kݺuc\ B¨··—Íf?zôˆÍf§¥¥…‡‡———ïܹS¡PüæÓ-,,Æ fì^Au+33ów¿û‡Ã!º»» …œœœyóæY …¢««‹l›˜˜˜˜˜ „Äb1BhÒ¤IÊÍ6mÚ4ÆÅ „NŸ>mmmýý÷ßS©T„««ë¼yó6lØPVVöñÇkº••ÕÔ<œWPÿ²²²ÈÈÈààà³gÏ^¹reݺuüñÉ“'B?üðÃáÇÉ-ÅbqPPPSSBèÆQQQaaaW®\AqáÂ…ÈÈÈ•+WÆÄÄܽ{×ßß_¹—¶¶6ÿêêꈈˆU«VýðÃR©Tc§rcÕ'’íªªª5kÖ¨¹k×.²-‰>ýôÓäää¾¾>òè®^½ù§?ýéüùóÊCîß)“ÉRRRV­ZµjÕª””™L&—Ë333CCCƒƒƒ:$‰BùË_B«W¯Ö2¥ª5kŸ^ûÕx,çD­˜òòò/¾ø‚L'‰|/§¼¼\ãT«>]uüÁÏäP s‰¿}ûvrrò¦M›ÒÓÓoÞ¼yâĉ-[¶œ9s¦««kñâÅÕÕÕr¹!T]]íääÄd2%Illlppðùóç#"">,‘HJKKOŸ>}æÌ™/¾øâСCýwtñâÅC‡ÅÇÇߺuëìÙ³uZ[[ïܹ“ü©²-‰„B¡›››ê€&L°··'ÛG)))‰‰‰uuuçÎ#ûþùçcÇŽ±ÙìÔÔÔîîî:óóóù|~jjêßÿþ÷;wîdffæççWUU:tèÈ‘#Ïž=ËÊÊB?~!TXX¨“éÕ¸_-Ç¢Fµr~˜L¦Ú6L&óéÓ§§z cÒLÉ0jffˆ 333 Buww³X,###.—‹ºzõj`` …B‘J¥AˆÅbccã   ââb“‚‚‚Í›7ûúúÚÚÚΟ??::ºÿ޶lÙâêêêåå]^^>P§¹¹¹rIR¶ÉP(‡ “É***¶nÝêäääáá±aÃåøÁÁÁË—/G)W´þeeeÛ·o···÷ðð`³Ùµµµ¥¥¥7nôðð˜½÷«åX†B¡(ÏA5οš¡Îä óÔÌÌ !ddd¤ÖFQ©T__ߪª*Û·oïØ±!diiyäÈ‘üüüÌÌÌiÓ¦………ÍŸ?ŸÏç«þõõððè¿#WWW²áææ&´tögiiiccóäÉÕ ~ü¸­­íË—/ÉŸ677“K¼Îõ߯–c!ϵ^¿~­q¨¥K—ž>}Zõš]"‘œ;wîøùp0S=Ô™’Q èÌ™3årù©S§ÈE !D¡P8NUUUOOT*522211Y±bErrruuµP(¬­­MKKë?TRRR[[Û£G222–-[6PgOOOii)ùSÕvTTÔ½{÷âãã|øÍf¯X±böìÙ#ÇÜÜü“O>L' ˜Lõh-ñ ÃX,ñè`  °Xƒ€¬½óNùAÕe0ÆÔ>YòÎm&‰DòÓO?‘/`ìÑh´•+Wššš*{(?ˆ&à`  °Xƒ€¬ýÿÉ]>?IEND®B`‚././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__inherit__gra0000644000372000001440000001471712502417165033406 0ustar robertousers‰PNG  IHDRØËƒÊbKGDÿÿÿ ½§“„IDATxœíÝiXSWð“…¥d‹a­*¢Ž:âSQ)B‘N[7DAkUd+V…Z}Z´ÔGǩӔMi5.(‹V¬Xq¥XD[6­ a3`ÈÙæÃídB F 'éûûtrrrÎËÍß{/7—H’Éd]#뺂 L@ ˆ T] ìéÓ§›6m …º.Ä`™šš¦¥¥7N×…ôƒ]+**.^¼¢ëB ÖÙ³g׬YAÔÈ™3gt]‚Á"‘Hº.A 8GX€ ,@ ˆ D5êëë‡÷ŒžÇãÅÇÇO:ÕÂÂbÖ¬Yûöí‹Å:©[Ä×ÓÓ3sæÌÊÊÊää䪪ª;wž8q" @"‘¨ߨØH§Ó‰¶••ÕŽ;F±XÁôò!ILL;vì?þH¡PB'N|ë­·¼¼¼rrr"""TÇK¥ÒçÏŸm:ž””4ªåꈾîI$ÒÑ£G=<<ÆŽ›””tüøqKKËÏ>û !»aÃb$—Ë¥Ñh?ÿü3BèÂ… ÞÞÞ¦¦¦®®®ÇGI¥ÒÔÔT ‹9sæ”––* ‰#ãùóç'MšÄ`0bcc{{{Õv¢þ‡QÅ6“ÉLHH RH033‹g2™j§òññAÙÛÛ+ÍÓÝÝýÁÐétgg縸8âÃ'‰tâÄ ›”””Ýæ#K†™ÜÜ\MªB­ZµŠÃádgg#„V¬XÁáp222Bׯ_·µµ‰D2™ŒÉdzzzJ¥R.—kbb’žžÎb±Ž9B¥R¹\nFFƒÁ(((hii)**rvvFÕÕÕ5ÀÀÀÚÚÚŠŠ 77·={ö¨í”ÉdÝÝÝYYYDyòvWWB¨££C©þ²²2;;»Aæ'†)¶ÃÃÃýýýjjj¼¼¼ˆEBË—/ïêêÊÊÊB=þ\“M—››«Ù»1zô8ˆwïÞ•Éd}}}Jíºº:±Xlooÿã?Êd²ààत$™LÆf³ŒŒ8ÐÕÕ%•J{zz$‰§§ç·ß~+Ÿö»ï¾S bMM¼6777µÕ9PËËËétú ó=òv__…ByðàÑ_PP@,Š*--UüÙ5ÙtQ_Í! „‘‘‘R!D¡P–.]ZPPÐÙÙyåÊ•ððp„µµuiiiEE…³³óüùóoÞ¼I&“§M›&ŸÓÛÛ[u!www¢1yòäæææA:UYYYÙÛÛWWW+õWWWϘ1Có©ÚÚÚ$É„ ˆ‡nnnò‘ŽŽŽŠ?»žÒã .$$¤°°ðÌ™3sçÎ%¸@*•ž={–ÍfoذáwÞa³ÙNNN÷îÝ“¿ê—_~QŠØ-!„jkk‰w} NµÂÃÃGæñxÉÉÉAAAšOeggG¡P‰‡ NNND›L6ˆ7Q×»deššå‡!µm±XÌ`0ìììrrrˆ§©©i^^^GGGff¦©©©@ Ø·oƒÁ8wî‹Å*..V{ŽèççWWWwçÎww÷„„µ²Îe2Ù‹/&Mš4þüâââÚÚÚ‚‚OOÏ7ÞxC(2OO¬ÿ9bXX˜¿¿ccãýû÷===‰EÚƒo: ÍD™LýÚk¯q8ÅÉ'L˜`ll ùE"ÑܹsÍÍÍ•æa³ÙkÖ¬±µµuppغu+±(q¤hDMìÚµ+,,ì¥^¢ ¥‡ƒtjg§ÒžA4Ì ÚB¡°¥¥åèÑ£§NÒu-@#qž«âöíÛ3gÎ\¿~ý‚ ^ež1cÆDEEiÒ9Œóÿ1‘d˜ýý™3gBCCq«ÊH¤ÜÜÜ+Vèº~ sô`‚°AXÀôòMff¦®K£ » :99Q(=º¨A£y#„øü]¢) …"ÿœØ]¾Ñ/‰têÔÝ¡ššD2ùñÇ%#Î_Iyy=›Íc³¹·nÕëºýA|%gÏþD¥’ŒÈgÏVêºýAÔžP(**º'KD"iQÑ=¡P¤ëŠôQ{W¯>”‡O(]½úP·õè5¢öòó’ÿ‰‰DÊÏÿI·õè5¢–8á•+¿J$Râ¡D"½råW¾_TKD-]ºt_*íwåK*•ýðÃ}]Õ£ï ˆZÊËûIé ¬L&Ë˃£³– ˆÚèèè¹u«N*•*vJ¥²[·ê::ztU•^ƒ jãâÅjµŸ£H¤‹ï©öƒ!AµqæÌOJ'ˆ©T W¶µA|iÏžuÕÔ4 Dtï^SKK÷èW¥ï°»û\GG+ù "qMÛÔô÷oü “É=ŽŽV:«O?ÁÝ7¯**ê;„PFÆZ]¢ßàÐ °AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚° ßëââòäÉ]W1 *•Ž‹;u]È€\\\u]Åô ˆ$iëÖ­sæÌÑu!z©¼¼üàÁƒø¿Ëúñeî>>>!!!º®B/áAœ#,@ ˆ D€ "IµµõŠ+:::^j†úúzùGÿêx<^||üÔ©S-,,fÍšµoß>±X<úeè "BèÖ­[,«¥¥¥¤¤¤¹¹yóæÍºª¤§§gæÌ™•••ÉÉÉUUU;wîø€N§;;;ÇÅÅ …Â:åD"Q||¼ƒÁˆ‰D¡‹/NŸ>F£988$%%#I$Ò‰'<<ÿŸÿüç›o¾ùÛo¿µµµI$’ &cÜÜÜš››Õv*NõäÉùCKKKccãÚÚÚ7r¹ÜéÓ§+vttDýþÿ5[YYÙÛÛWWW/\¸PqXuuõŒ3ˆ¶»»;јýôÓððpµŠS-]ºtçοýö[MMMPPPZZZooo__Ÿ±±±@ ؽ{7B¨§§g JÚÛÛýýý/]ºTWWWXX8{öl''§˜˜bÀ–-[êëë+++wíÚµzõj¢“Ëå*N2d‘†F·gš@/yŽH&“½½½+**ˆ§Ølöš5klmm¶nÝ*Ôv*ž¨q8œuëÖY[[ÛÚÚFFFòx<™Löå—_ÚØØ¼þúë‡ZµjƒÁõ¿l¤Øær¹Û·o÷òò¢Ñhžžž{÷îåóù²ÿfgg?žN§oÞ¼Y ˆD¢¹sçš››Ëúÿ²¢¶òVˆ¾œ#êC‰Q_Œè%Cµô%ˆ†shz ‚8ªÆŒ¥ë*pAU #==]×Uà‚°AX€ ,@ôãïš§L™bgg§ëBÔãñÌBff<]¢^[[Ûýû÷ñ—õইmÛ¶555麊54Ø‘HhÆŒ6]¢žµµu@@€®«šìqvï^Ó¢E_"„.]Úæíýº®ËÑcpŽøJ.\¨¦R)T*ùûï«u]‹~ƒ jO"‘ž>}G,–ˆÅÒÓ§ïH$R]W¤Ç ˆÚ«¨hd³¿w‹ÍæÞ¾û7ná ‚¨½ÂÂ**õ÷¿¢RÉ……Uº­G¯AµÔ×'>¾Z,þý6l±Xzî\µH¤þ/—Á ˆZº~ý?<^¯b×{íÚ#]Õ£ï ˆZÊϯ¢Pú}7…B.(€£³– ˆÚàñz/]º¯ôk²D").¾¯´›‚ jãòå_äg‡ŠÄbIIÉ/£_€ j#?ÿ§¾²‹”—÷Ó(c ˆ/íÅ þõëÿ‘HÔ|4*•Joܨ}ñ‚?úUé;âK{ð eQÄbÉ/¿´Œf=†nzІâ>oëÖS¡ƒWÉ{,-i:¨IÏéÁm`RŒš‘Aø^š ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ú}uqllìÇuX>jk³GÙÙµêº=ãááñõ×_Ëö "‰DúóŸÿÌ`0tQøiooÿõ×_³§üÚ!!! ,Õ¢Àϵk×>ÿüsÅ8GX€ ,@ ˆ xý‡?Ïž=[½zuiié°Ìæçç'o»»»ôÑGnnnÃ2¹&‹ÚÙÙM:5&&ÆÊÊJë ¯^½úÅ_¨ögeeôÏ"7¼ï‹ZxqØ¥¦¦:88 „ø|>“ÉüüóÏ;FàÕ‹ÅŠŽŽ>þ¼Ò¢R©´©©)???22òèÑ£æææ¾\Éo¼‘ŸŸOŒüðÉ6Bh̘1ÃøS ^˜¹¹ùªU«†|É«0ðC³•••³³stttssó‹/†w ©TÊápT¥ÓéÓ§Oÿâ‹/Ξ=«ùË•˜˜˜?±[µù*udw"Š…YZZFFFŽèr/D??¿âââµk×.^¼øäÉ“—/_^µjÕÛo¿}ôèQ„Ð7ß|“’’BŒAAAuuu¡[·nmذ!000,,ìòåË!™LVXX¸víÚàààM›6ýüóÏŠµgÏžùùù•••­Y³fÉ’%ß|óH$RÛ)¬øBµ•S(*•jffF<‹ÅéééK–,Y²dIzzºX,h~.—›””ôÞ{ï…„„>|¸¯¯y÷îÝÐÐÐÕ«W#„–.]ªvQ‰ôî»ïVTTËËË7nÜ´lÙ²“'O"„þþ÷¿+¾\uÀ@k¸té’Ú-àççwåÊ•µk×¾ûî»§OŸFI$’œœœÐÐÐÅ‹ïß¿ŸËåjR˜âœª[CíB/K›=bUUÕáÇ###³²²ÊËË9süøq‡3þü²²2‰D‚*++spppss …{öìY¼xñéӧ׬Y“’’" ‹ŠŠŽ;qüøñ÷ßÿþýª ;wnÿþýûöí»}û¶ü]Qí´²²Š‹‹#žUl#„„B¡@ ÏŸ??räH@@€‘‘ñT^^‹ÅÊÈÈøÇ?þq÷îÝœœœæÿꫯ:::ÒÓÓ“““+++O:EŒtèüåj þ^5¸»»4àßÿþwZZZTTTFFFOOO^^Þ7öïßðàÁ¦¦&&“©IaŠÚJ ^¶*m‚J£ÑBaaa4-((!ÔÓÓãååE¥RkjjBW®\ $‘H"‘H&“ ccã    .˜˜˜äççGGGûúúÚÚÚΞ=;""Bu¡˜˜gggˆˆˆ’’’:ÍÌÌÞ~ûmâYÅ6B("""88888xùòå—/_ •?U\\¼e˃áêêuçεó‹Åâ«W¯nÞ¼ÙÁÁÁÕÕuݺuòJ"##§OŸnjjªáv366>räHll¬­­-ñ9*Ç{©ª†¬añâÅæææo½õBˆÃá­_¿ÞÕÕÕÅÅeÇŽžžž/µî [Ci! ·‰œ6ç4 !Dœ£(¶Bd2Ù××÷Æ®®®UUUÛ·oGYXXR<äUŠ5gDŠ”.ØÚÚ¶¶þ~£P}}=qhÖ|ÝA¶Æ+^‹þ z{{K$’ï¾ûŽ8v#„H$R||ü7x<žH$¢R©&&&‹-:|øpYY›Í¾sçNff¦êT©©©Ïž={ôèQvvv@@À@<¯¨¨ˆxV±­ÄÌÌŒÏç ⡯¯oVVV[[[ccãÇ|îÜ9µóS©T??¿¯¿þšÅb=~üøÈ‘# .T\>-B¨»»›ÍfwvvÞ»wï³Ï>c±X+V¬@‰D"±XL¥RûúúˆSR>Ÿ¯øòA ޏ6tùòe>Ÿ?ÈÙ*B(000;;ûñãÇ?þꫯÚÚÚ4)LNí¡…á¿@&“çÍ›÷Ã?Ì›7è166Þ¹sgFFF{{»££ãîÝ»CCC%IZZZww7q–¶wï^¥©.\¸}ûv¡PèïïN”:BÝÝÝ N ÛJÆŽK£Ñ8q:±aÆÔÔÔ7’H¤yóæEEEûÕù·lÙ’ššmddôæ›oÊ+!ØÛÛO™2eÙ²eÿú׿ˆž?üh0 ooïÌÌLâ¸onn³wïÞ×^{-,,Ìßßÿã?ÎËË“¿\í€ÂÂÂ!·¹¥¥å† :Äd27mÚtóæÍF†‡‡ …Âøøx¡Pèãã¥IaŠ3¨n!ËÓ„òýˆ»wï~õÛÀ²³³[[[?ýôSÍ_¢tí^í¥ü‘¾¾? Ÿq˜bö†ùÐÜ××Çb±Š‹‹ÿö·¿ ïÌÀ° s>|µhÑ¢iÓ¦½Ê‘B‚©©éÊ•+KJJÔÞ$6Ê÷J0âÿq¹\6›­zÿ½››ÛÓ§O‰¶ÒMb£|¯”ƒ D"ÉÏÕÞ™¦däî•2`Äÿ377·±±©¯¯W꯯¯Ÿ8q"ÑÖä&´‘»WÊ€AûY¸pá±cÇG …§Núë_ÿJ<Ôä&´‘»WÊ€AûY»vmWW×¶mÛîܹÓÜÜ|óæÍ˜˜:.¿F£öδQ»WÊ€Á1¢–™™™“““žžÞÒÒâàààïï"ÿK¥›Ä(ÊhÞ+eÀà³fMÁ'Ã>k˜‚ j nQDMYYYmÛ¶M×U,"À`‚°AXP¾Žèêêjmm­Ã‚ÀAWWWccã€ÿ½Å¶mÛšššF½*ðG´xñbŇ$¥ïì@'à`‚°AX€ ,@þ *ïƒÍðIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query__inherit__graph.png0000644000372000001440000001325312502417165030313 0ustar robertousers‰PNG  IHDRAp=UÚbKGDÿÿÿ ½§“`IDATxœíy\gþÇŸIB ä¾$E„€ 骵T°ð*P<èŠ[9~]¶xT¨ºÔ뺞¨‚¢Vya=JkED ºµå ( rÌïÙÍÆ@$ä|Þ=óÌÌó|Ÿã33χɀ ( ˆÂ‚“udJ@ C Š Ô0¢Ø@ C Š w£©©iddDV¡È9$ÉÆÆfêå”––fffN½ˆÊ³fÍîæîêêš1c†ºººÔ£’wFGG»ºº$¢áâââß~ûÍÙÙyêEATêêêââb‘ÉdcccéF¥¼|ùòéÓ§’*ÍÙÙ¹¸¸XR¥AT ¾¸†@¨aD±†@¨aD±™^ 777#2­U@Þ‰Ëððprròüùóµµµ-Z”žžÎb±¤ o9ˆ0¦^…X1H h¸µµÕÐÐpêåȶ È[344´pá‡îÛ·¯¶¶vëÖ­çÏŸ÷ôôd³ÙBçM]]Ý/¿üRâ!Ý»w¯ûM$^†Ú2!ü[z 8Îëׯ§^Žl«€¼5»ví222º}û6ØÚÚ~úé§gΜ‰ŠŠ<žw4 ÷îÝ+ñŒŒŒLMM%^¬ RhË„ˆ}¾zõª£££†††••U^^àÃ?`]Æf³8`kk«­­½dÉ’ššì,ÞÇ ÞôÀÀÀºuë ÉdrRRƒÁ˜° ìôÛ·o[XXܽ{—Éd&''›˜˜'''3™LÀµk×Þÿ}‰dffÆíVANŸ>mooodd´wïÞ¼¼¼Ù³gëèè|õÕWSéÁibühããã###±#i4‰DzôèÖuçèÑ£öööÚÚÚÎÎΕ••¼Ï{Xg^¹reΜ9ÆÆÆñññ£££B3èAÌÏÏß¹s'&` MMÍäääüü|¡E Ž&v–ÐÉ€ Èùóçíííõõõ÷ïß)t|'ä»ï¾377ïïïÚÚÚ³X¬ÔÔT ##£°°°ì`Áy5Mm2±Ay¨¬¬ìííEEC£ÑÔÕÕOž<ÙÝÝ““C h4ZSS·œo¿ýÖØØ¸¬¬ìÅ‹ååå3gÎÄv deeaÇ𦃃ƒ?ùä“–––úúz‡´´´ «ÀÒË–-ûá‡h4Ú¾}û>ÿüó?þø£¾¾þ/ùKJJÊàà ‘HŒˆˆèììÌÏϼ|ùû™t``ààà`vv6Àßßpp{í±¯¯oœV£(ÚÛÛ[YY9þ1“ÄÏÏÏÏÏoÂÃÆö§Ÿ~200`2™(ŠæççÏ›7ÃáíºÌÌLÞ!“Énb //¯ÆÆÆû÷ïS(”´´4¡™¨ˆAÄ$ñêÕ+¾ø«ªªLLLÆ);Œ7-8°~X³fMVVàõë×BÇ—·ÀãLJÞÛÞÓÓcbbRSSƒ¢èæÍ›W__ÿ믿.^¼8)) ;Rp^MG[„™¸óG< S©T55µŒŒŒþþ~‡344Äf³yC·µµ={ö,÷øÜÜ\¾Ë/cccx<¾¡¡Û,++£P(V¥ëëë±M;;»îîn,}óæM''§ÑÑÑgÏžÑh46›ýÓO?aSëÁºº:¬^¾4vÀ8ÈDÃãDËb±LMMoß¾¢èòåË÷îÝ‹Šyóæ ŽŸ†¹YTTD¡P„fŠŠS”†««« Ç)ËᦅN¬°žç¶]èøòiXÔ½ª¿¿ŸL&;::b¢BQtΜ9eeeXúéÓ§Ü´à¼šŽ¶2Q]!8Ä{–ÖÓÓ«¬¬¼ÿ>™Lþøãþùgî:::œœœ¸›ŽŽŽã”ÖÛÛËf³­­­±M …ÒÙÙ9avvvX¢­­ÍÌÌ ó===Ÿ?N$½½½,XpöìYÞ³´µµjjj|iùdœhñxüêÕ«ËÊÊúúúnݺ DŒNkkë„#Â}ÜÎή³³sœLAtuuMMM?~Ì—ÿøñã L¾(¡“KcOsܶ3¾\/ÊÜh£££Ÿ>â@§Ó9NII •JŒŒôññ¡R©¼XZZþûßÿæn>yòdœÒLLLðx|kk+¶ÙÒÒbnn>aÜ^À.öÜ«ìýû÷étº¿¿rrr]]ÝñãÇÅj áççwéÒ¥ââbì Yh×™››O8"Ø ÐØØˆM2Q™B Þµk¯ =<<¼oß>ooïÉ%t2`i¾i=•ñíèè8zô¨‡‡Gbb"–3sæÌ¶¶6,ýøñãüãXZp^MS[&3ÛÇG< #âååuñâÅÁÁÁ±±1555‰„í¢Ñh€ØØØäää+W®ôôô\¿~}çÎØÞ?ÿü[×ñ¦ÕÔÔâããŸ?ÞÐаcÇŽààà «àcõêÕ[·nmoo¯¯¯÷öö>vìØèèèØØ‘H¤Óé©©©€¡¡!qûEþquue±X»ví År„v]DD¤¤µiÓ¦æææ‡nÛ¶-$$DT¦ÐAìܹóåË—Ÿ|òÉõë×›šš.]º´xñbsssî½Nhù|£)t2mødÆ÷Õ«W=oàp87n,,,¼uëÖÕ«W¡¡¡Û·oohhhhhøÛßþÖÞÞŽ• 8¯¦£-ãÌv1à}Þ˜p=Œ-¬­­‰D¢Ý•+WPe2™...ZZZ(вX¬P(MMMgggìê…¾¹ÜçMS©ÔÐÐP33³Í›7Óéô «à=EÑÁÁÁõë×ëééDGG£(úí·ßêëë¿ûî»Ç 466Æž¦¸WVQiQÈd= q¶³3“uPðìYw~~uqñ:}ŒÃA—,¡””|!ë ”eÐp[[ßÒ¥{Y,6€H$Œ±,- ƒƒ? üP__SÖÑ©Têpaáýóçï·µõaà ðwî¤XZ¢IeÐ0à믯ääÜa±8Ø&‚ x<‚¢àÓOÂ׸¸ØÀÏkN7(ŠÞ½Û”›[õý÷ ‚°ÙîÔ"pQQKwîü«l#TV”DÃCC gçÝýýt¾æàñ8652Òò÷ÿ <| ™¬'«•˜ÎÎþÜܪ¢¢}}4<a³9¼{èëkVW¥¥ÿß´ $äæVmß~‘ÃÒAŠ‚òò„÷Þ#K?6%¦¾¾cåÊÃX,ŽÐ¹„Ã!éékÂÂ>’~l*‚òxý!!ÎÖÖ&B}iE±²2²²2’~`ʵµ±••!‚¿8 Å$8øCé¦:(†ñxÜÁƒþl¶™¤¦†×ÓÓ,*ŠÓÔ„sFSS½¨èÿôô4ÕÔð‚{ÙlôàÁ<^y¦™¢T»pál'¾É„Ã!D"þÂ…X“² L¹11™qáB,‘ˆÇáÞ0ÕÔðŸ}æ´`¥ŒâR”JÀ´´¿òÍ$óç[À;ð´B"çÏ·@Àÿ:Ç¥¦B/zÚQ6 ›šêÄÇ{rÞÙ¾Ýgp¾rå¡GþmlÊJ]]ûÊ•ÿ¤ïØñ÷Oxx<.>ÞÃÔTG¦¡©ʦa@l¬›&‡àñ¸uë\bcݯ]Køè#_ß#¥¥¿È::e£´ô_ß#..6×®%Äĸ­[·ÇápˆVLŒ›¬£S ¤ù9/©qùr™YBpp&‹õŸ¯æs8œŒŒŠ™37gdTp8Ù†§p8œ={®òu)‹Å :if–påJlÃS”S第–FcðåÞ·°HŒ‰Ée0˜2 Li`0˜11g-,/\¨áÛE£1ÊÊjá…Rj(Ï;“äîÝÆ¨¨³¶¶¦gÎDhÉ:…äõkÚúõ§{²³×¹¸ØÊ:UGå4 øý÷ž°°,<——·ÁÚ~P•g·"àzxZ•Y -hjxº¾Y -hÕjx‘¦Y -h•zZÓˆÔÌjhA«2PÃÓ‹ÌjhA«8ЗžvˆD¿þ¬¯¯•PÀá þþ‹$XxQуÄÄ ®©©ÅãáYQ¡õ°¥¥e{{»  ‘FGÛØlšËÄãµÔÕgŒ<‘`™âbiiùüùs â¨†ñóó›;w®¬Q*ž>}ZRR¢:³HQ­gé¹s纹¹É: D’À¢Ø@ C Š Ô0¢Ø@ C ŠjyZ²¥««+$$¤²²RR2ŒÜÜܼxñÂÒÒÒÅÅeíÚµx<üV–j5¬¨ŒŒŒÄÅÅéêêFGG›››?þ<''§¶¶6##‡ƒW*Ô°¢rîÜ9]]ÝC‡aŠ%“É‹-Z¿~}yy¹¬£ƒHxÁ~ww÷ŠŠŠðððU«Vܸq#00pÅŠ§OŸ9rdÿþýØ‘t:ÝÛÛ»©© pïÞ½ÈÈH//¯   7nP½téRxxøòåË¿øâ‹G¹»»skéêêrww¯ªª õõõ=rä“ÉšÉ=˜÷D,}óæÍ°°0Þ[®††ÆÚµkoݺ%ê‹uòäI_____ß“'O²X,lo]]]@@@tt´ÐÖAä¨a~jkkOœ8••U]]““———788øñÇWUU±Ùl@UU•™™…Ba0iii«V­ºpáBhhèþýû Fyyù¹s碢¢òòò¾ùæÁŠ._¾üÍ7ߤ§§×ÔÔˆÊÔÕÕMJJÂörÓ4J¥R(¾2mllÆyí±´´´»»;33óàÁƒuuugΜÁò‹‹‹SRR"##[7Å΄H¨a~H$’—— ((ˆD"y{{†††B}}=àÖ­[^^^‚0™LEét:‘Hôöö¾zõªººúÅ‹ccc]]] /^%XQ\\™L¶··ŠŠºyó¦¨LMMÍ+V`{yÓÁïì (:Îb¸¢¢bÓ¦MÆÆÆVVV111<Àò£££ßÿýE‹ ¶î-;"E †ù!‘HÀ—àp8WW×;wîüù矵µµmmíC‡=}úÔÏÏ/!!¡¾¾AîînÞ›˜•••`Ed2KXXX¼zõjœLA´´´ôõõ›››ùò›››-,,xsxßdîééùüóÏÝÝÝÝÝÝ“’’º»»¹u‰jDþž–x¸¹¹íÙ³ÇÒÒò½÷Þ322ŒŽŽr8œ´´4‹uûöímÛ¶]¾|ÙÐа¥¥ÅÚÚ;«­­M°¨ÎÎNLÛãd ÅÃÃãܹsNNNØw÷îÝ}ôQAAAPPv›ÍÆãñ}}}ÜSttt:dnnþû4Žås/R‚­ƒÈ?ð>,ŽŽŽl6;77{Ø ’œœ|çÎááa&“I ÔÕÕ—-[vâĉªª**•úàÁƒS§N uôèÑ®®®ß~û-;;ÛÓÓSTæððpyy9¶—7N¥R“’’>|ØÙÙiff¶gÏž±±±+Vhiinܸ122RVVÆ­ÑÕÕ5++«···µµõïÿûåË—'lDþ·téÒ‘‘‘¥K—b9D"qëÖ­™™™kÖ¬)))IMM%‰¾¾¾ÇŽ 9wî\LLŒ`Q‰‰‰)))|ðApp°¨ÌŒŒ l/ošD":uÊÆÆæÄ‰‘‘‘•••!!!³fÍJOO×ÑщŒŒ<~üø† °Å MySQL++ Reference Manual
mysqlpp::Row Member List

This is the complete list of members for mysqlpp::Row, including all inherited members.

at(size_type i) const mysqlpp::Row
back() const mysqlpp::Rowinline
begin() const mysqlpp::Rowinline
const_iterator typedefmysqlpp::Row
const_reference typedefmysqlpp::Row
const_reverse_iterator typedefmysqlpp::Row
difference_type typedefmysqlpp::Row
disable_exceptions() const mysqlpp::OptionalExceptionsinline
empty() const mysqlpp::Rowinline
enable_exceptions() const mysqlpp::OptionalExceptionsinline
end() const mysqlpp::Rowinline
equal_list(const char *d=",", const char *e=" = ") const mysqlpp::Row
equal_list(const char *d, const char *e, Manip m) const mysqlpp::Row
field_list(const char *d=",") const mysqlpp::Row
field_list(const char *d, Manip m) const mysqlpp::Row
field_list(const char *d, Manip m, const std::vector< bool > &vb) const mysqlpp::Row
field_list(const char *d, const std::vector< bool > &vb) const mysqlpp::Row
field_list(const std::vector< bool > &vb) const mysqlpp::Row
field_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Row
field_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Row
field_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Row
field_num(const char *name) const mysqlpp::Row
front() const mysqlpp::Rowinline
iterator typedefmysqlpp::Row
list_type typedefmysqlpp::Row
max_size() const mysqlpp::Rowinline
operator private_bool_type() const mysqlpp::Rowinline
operator=(const Row &rhs)mysqlpp::Rowinline
operator[](const char *field) const mysqlpp::Row
operator[](int i) const mysqlpp::Rowinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
rbegin() const mysqlpp::Rowinline
reference typedefmysqlpp::Row
rend() const mysqlpp::Rowinline
reverse_iterator typedefmysqlpp::Row
Row()mysqlpp::Rowinline
Row(const Row &r)mysqlpp::Rowinline
Row(MYSQL_ROW row, const ResultBase *res, const unsigned long *lengths, bool te=true)mysqlpp::Row
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
size() const mysqlpp::Rowinline
size_type typedefmysqlpp::Row
throw_exceptions() const mysqlpp::OptionalExceptionsinline
value_list(const char *d=",", Manip m=quote) const mysqlpp::Rowinline
value_list(const char *d, const std::vector< bool > &vb, Manip m=quote) const mysqlpp::Rowinline
value_list(const std::vector< bool > &vb) const mysqlpp::Rowinline
value_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Rowinline
value_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Rowinline
value_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const mysqlpp::Rowinline
value_list(const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const mysqlpp::Rowinline
value_list(const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const mysqlpp::Rowinline
value_list(std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const mysqlpp::Rowinline
value_type typedefmysqlpp::Row
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~Row()mysqlpp::Rowinline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1AutoFlag.html0000755000372000001440000000775712502417163025704 0ustar robertousers MySQL++ Reference Manual
mysqlpp::AutoFlag< T > Class Template Reference

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool. More...

#include <autoflag.h>

Public Member Functions

 AutoFlag (T &ref)
 Constructor: sets ref to true.
 
 ~AutoFlag ()
 Destructor: sets referent passed to ctor to false.
 

Detailed Description

template<class T = bool>
class mysqlpp::AutoFlag< T >

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLQueryParms__inherit__graph.png0000644000372000001440000001227112502417165031675 0ustar robertousers‰PNG  IHDRÓp íÒÎbKGDÿÿÿ ½§“nIDATxœíiTSGÇ'CH°¢@”奊ѪØ# 9(u©çèq%.¨(HµÔ*à¸[±Z—"ŠŠ".±l•"ZŠ R\@*!"hYÈrßszÏmRƒà-íü>Ííyæ™îÌÜÃ0€@|pLÈvñ)AHyr@ÊC•x!—Ë«««5 YÞ þ­0 6›MÌù‹òÄbñÛ·omll>¬Wˆ9 …B RÄÍÍíC¹„øOðúõëGie¢}‚ò䀔‡ ¤<9t»òž={F¡PºÛÊ{"‘HÂÃà dnnÎf³£££år9^ÚÖÖ9räH ‹qãÆíÝ»W¥RÁ" …òìÙ3bW—/_¦èãáÇ]âêÎ;)ʾ}û:ªÐ#ÆÆÆÜÜ\Ìxjjj¬¬¬ôUWWkYéB Ø5Š¥K—r8œÒÒÒׯ_çåå9rÍš5°H,:ÔÇÇçÆOŸ>MMMuuuåp8*• Ã0@uu5±+©T* …BaAA@ø'íííïï§F£quuuttôðð討±ïª@¯®ºFyFÛ­ÊëªÎ--- ñ˼¼ŸïééŽé|^.\èççWSSSQQ1|øð˜˜XaêÔ©?ÿü³D"ÁkÚØØ444`–moooff6yòäØØØºº:X­¹¹ÐÔÔ¤„û÷ï÷ë×3æž———geeG—œœìææ¦Ñh`ÿªªªÂÂBgg瘘½ÃÇ0L£Ñ 4èĉ†mÙ²ÅÍÍÍ@ÀÅb1F[¾|y}}}rr2àõë×zÍiù©kšÃŒŒ ¨ÈÚÚZÃ:!Ò5«­H$êիך››5Mkk«Z­&zïââröìY¼þ¹sç@Ç7ó¶¶6&“Y\\ŒaØ‚ 6mÚó‡* a:''ÇÃÃcÈ!iii0çÑ£G0M´ÛÞÞnjjúÛo¿ÁË´´4gggX¡¢¢fÊd²¤¤¤qãÆ5êĉ­­­¸'*•ª°°pÇŽÇ755½páö§òÞ¼y£åvAAµµ5fŒòT*Õ€nß¾aØ´iÓöíÛ‡×ÁÝãñxÎÎÎz‡aXaa!•J…Δ––ø|~GW(?–H$jµ://ú©×œ–Ÿº¦µZ ‚èèh‡3fdgg«Õj½Ã'Òeû¼{÷îÍ™3‡Édz{{߸qûk”ÍÍÍ>|ˆW~ðàåaÆår###% “ɬªª‚™t:xcîÓ§N‡&B´ûòåK€L&ƒ—t:V€»ûœœ‹XTTﲉDréÒ%|'§Ñh¶mÛfoo/ pëÖ--»qqq^^^˜‘û¼/¾øbõêÕMMM4íåË—xÜçòòr:®wø†­]»Vk½Úºu«€_½zÕËËËÃÃcÙ²eDåi™ÓòS×41†8íííW®\ñòòrqqyñâ…ÞàtÍ>O&“i4š~øA$͘1C$+ 8°¼¼¿¬¬¬4Üa@@@JJÊ?þøÉ'Ÿà_*[[[ã3ÚÜÜ\XXhggWWWK>|¸{÷n­~ú÷ïojjZ[[ /kjjìííaºW¯^WWׂ‚‚üü|¸M„`Æårù|>¼¤P(Ÿ}ö~n²páÂ;wªÕjÜÛK—.íÛ·/ à¢õæÎ›žž'ÌÁÁχS ¨ªª‚k¥îðÕj5Ç;xð`러[·ŽÇãa¦7à2™lÞ¼yeeeqqqD7tÍÑ5MŒ!Nccceee}}ýèÑ£ÍÍÍ Æïód2NOIIijj:yò$N—Édp0pñ:|ø0‹ÅÊÈÈ …YYYNNN ã}†aðÁ‚Íf—Œ°°°9sæÔÕÕ•——{zz®Y³&::ÚÝÝÏçóùü &¬\¹ûóž/š\.×Ïϯ¶¶–Ï绹¹EEEéÞxø|~HHˆµµuPPPII Ì tqq¹víZMMM~~þøñã×®] ‹þøã!C†p8œŸ~úééÓ§›7o°X,…Ba   @H7¤kZ¥R±X¬þýû'&&ëp8œêêêââb6›¥wø¹¹¹¦¦¦xo%%%€²²2½onn¦P(YYYð0ÖÔkN+†º¦‰Q«ÕÙÙÙ3gδ··ŠŠ†Õé²Õ–Çã <˜F£ :ôêÕ«†)•J/// ߨØXggg&“ùé§ŸÂÖLhÍJpp°……ñ @,/[¶¬oß¾VVVÁÁÁmmmr¹<<<ÜÎήOŸ>ÍÍÍZv1 ‰D‹/¶²²²µµýúë¯ñ„îš››<8xð`ø0¡R©bbbÜÝÝÍÍ͸aÃ|IÂ0L"‘¬_¿~øðát:}ðàÁ[¶l™8qâüùó1}?žÂ[é5½jÕ*sss±XL¬sêÔ©?þØÚÚúË/¿„vu‡âïïOìJ£Ñ  7>EEEcÆŒY¾|¹¯¯/žùÑG…„„|0>°9ÃP0Âf¾;J ñþèÕºç!È)AHyr@ÊCƒžS•†††ïâ_ŒD"ÑÍü‹òÌÌÌ(JUUÕ‡r©#´fdT}ñÅèžñê9Ùh½ˆ´NUïÎæÍigÏÞMOÿÒÓÓ‰l_z$hŸ×T*Mzz =½”l_z*Hy!/ï‰X,¤¦–)•j²Ýé‘ åu†´´2øË ©TñË/OÈv§G‚”g4Riûå*•`jJIME ng@Ê3š[·*ñV¥Òüô¿­MA®K=¤<£II)!¤¨Tê›7ÿæ„.HyÆÑÒ"ÍÍ}¢V¢(©©%¤9ÔcAÊ3ެ¬ ­F“—÷´¹¹z.HyÆñÃ%ž³÷k×Êu3@Ê3‚W¯þ(*ªÕýÖð””_Iq©ç‚”g™™MMõDL£ÁJJ~ [t‹”g©©¥ðO ™™hÁ5‚ÿôoÏŒÅÄØÚöi•J#—+-,ÌðRtªgè]•NòãW­:×ÐpˆlGz*hµER‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCf dûûOÁÄ„afæH¶ÿh4Ú½{÷ŒÒ’q'¹®®ÎÕÕuîܹÝ4DeûöíÀ¨&Fÿ…n‹åëëkl+Ä¿›íÛ·Ûíó䀔‡ ¤<9 å!È¡çý @°hÑ¢ÜÜÜ.éM&“={öÎ;"‘ÈÆÆÆÏÏoáÂ…4 –ÊåòsçÎ744 8ÐËËkÁ‚¦¦¦‡“œœloo¯Õ¡&]‡ÃÁÓ ÃÝÝ=,,ÌÖÖ¶k­t+=Oy]Ë‘#GwìØaccóâÅ‹#GŽ´¶¶†……¤Rihh¨¥¥epp°½½ýóçÏOŸ>]ZZzàÀýkE'štšcÇŽÙÚÚbÖÜÜ|êÔ©Ý»w;v¬kMt+ÿõÕöÞ½{+W®d³Ù–––ðΑŸŸ‹’’’,--:äéééàààíí/ ¯_¿ÞQohÒi,--ûõëgeeåìì^YY)•J»ÜJ÷Ñ-Êãp8YYY3gμxñâÍ›7¦OŸ~æÌÀÑ£G÷ïßkÊd²)S¦TWW ‚‚‚üýý¹\îÍ›7†¥§§N›6mõêÕ< ®2€Ãáäçç/^¼xÖ¬YGU*•z3ñÊĆ0Í`0222Äb1¼twwçñx0““³dÉ⽊N§/X°àÖ­[ Ü@“ŽP©Tñññ³fÍš5kV||¼J¥‚¥eeeóçÏÖ+- EµZ ¸ÿþÊ•+§L™2{öì‹/âæ`‡|>ßðìèˆî »îy¥¥¥ÇNHH¸ÿþéÓ§CCCÏŸ?/‹'Nœ˜ŸŸÔŸŸokkëìì,—ËcbbfΜyùòåÅ‹ïß¿_.—_¿~=))iÅŠçÏŸ_²dÉÞ½{u eddìÝ»wÏž=EEE0Ðz3---ÃÃÃa)1QVV6gΜˆˆרØó%‰H$rvvÖ2Çf³Ÿ?®wÈhHII …'NœøöÛoËÊÊaþ•+W6nܤ+XA.—Ëd2©TÚÐÐðÝwß 2¤wïÞR©4**ŠÍf'''‡††&$$´´´;d³Ù†gGïDtäüûÐ]Ê›?>ƒÁð÷÷p¹\ƒ1eÊ@kkëðáéTjEEàÖ­[þþþ E©Tb&“Éh4Ú”)S233ÍÌÌRSSW­Zåíímeeåéé¹bÅ ]C¡¡¡Æ [±bENNNG™L&súôé°”˜3f Ç;|øðˆ#²³³¹\îíÛ·ñÎ)Š–9 Ã ïØŒm’••õÕW_±X,''§ââb˜tèPJJJbb¢‹‹ —Ëõôô …Ä[ˆ“““®!˜pttljj2©‹\./((ðõõ6lذaÃ/^|öìÙøøx??? ‹~ýú={ölôèÑÄ&Ïž=stÔÿ¢À»7!þg×W¯^Íž=¿d2™¸çÅ ¢÷ÉšJ¥Ö××8p@&“ÁÛѳ£w"ôŽ÷=!ç Ã××÷îÝ»¿üòˈ#lll …B£ÑÄÄÄdffN›6móæÍ­­­ÖÖÖ555x«ºº:Ý®êëëaâåË—VVV2uÁ0l×®]µµµð’B¡Œ;.m€I“&%%%i4x¹sçÎÛ·o_¼xÑÏϯ£ÿ¶ ìüÍ›7x“>}ú$''çæææææfffÆÅÅÁ|\ º±2€B¡ˆ‰‰Y°`ÁÉ“'×®]K,Â;üÛt'â] 9ÊswwW«Õç΃7|…B‰ˆˆ¸sçN[[›R©¤R©fffS§N=~üx~~¾H$*..>yò¤nWÇŽOž<9uêÔäÉ“;ÊlkkÃ0ñ´¹¹¹¿¿ÿöíÛ …BaeeåñãÇq•ŠD¢ððð_ýµ¾¾ÞÖÖv×®]íííøJÝÒÒ""`¸‰……àæÍ›R©4-- ÷ßÛÛ;!!¡±±±¶¶6222##ãoce¥R©R©¨Tj{{;Ü2ûÀ«w"Œêá!ç<ÏÄÄÄÇÇ';;ÛÇÇæÐh´M›68qâõë×vvvÑÑÑ4mþüùjµúûï¿oiiÛ ]»viu5iÒ¤õë×Ëårx ×V­L@KKË hˆéÈÈÈóçÏ'$$‚¾}ûr8œ¥K—ž ÆÉ“'?.¬­­-ZÄçó÷ìÙX³f Ñ“ÜÜ\ÃM‚‚‚âââ’““W¯^}÷î]Ø*((èØ±c+W®¤P(>>>!!!Ä;¢ÞXÀÂÂ"44t×®]æææ\.×ÏÏ/22Ò¨s>½ñîÍßãþ›ü¼yóššš¢££ßßð©S§^½zµuëÖwo¢õí…Þ/3ºö]T*UUU•««k·6Ñ¢±úÀp87oÞ¼woBÂjÛÞÞ. ³²²>ÿüóoý=¡R©Æj¨Mpzt¬ C‚ò?~2uêT÷é‡ÉdΘ1ã]2{.]« ¤­¶ˆ=cµE R‚,ò䀔‡ £O’ËËËñ=ˆNcœòÐo¼za³ÙƾX`Ü© ÑU }‚ò䀔‡ ¤<9üóíld$IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/exceptions_8h.html0000755000372000001440000002743512502417162023640 0ustar robertousers MySQL++ Reference Manual
exceptions.h File Reference

Declares the MySQL++-specific exception classes. More...

#include "options.h"
#include <exception>
#include <string>
#include <sstream>
#include <typeinfo>

Go to the source code of this file.

Classes

class  mysqlpp::Exception
 Base class for all MySQL++ custom exceptions. More...
 
class  mysqlpp::BadConversion
 Exception thrown when a bad type conversion is attempted. More...
 
class  mysqlpp::BadFieldName
 Exception thrown when a requested named field doesn't exist. More...
 
class  mysqlpp::BadIndex
 Exception thrown when an object with operator [] or an at() method gets called with a bad index. More...
 
class  mysqlpp::BadOption
 Exception thrown when you pass an unrecognized option to Connection::set_option(). More...
 
class  mysqlpp::BadParamCount
 Exception thrown when not enough query parameters are provided. More...
 
class  mysqlpp::UseQueryError
 Exception thrown when something goes wrong in processing a "use" query. More...
 
class  mysqlpp::BadQuery
 Exception thrown when the database server encounters a problem while processing your query. More...
 
class  mysqlpp::ConnectionFailed
 Exception thrown when there is a problem related to the database server connection. More...
 
class  mysqlpp::DBSelectionFailed
 Exception thrown when the program tries to select a new database and the database server refuses for some reason. More...
 
class  mysqlpp::MutexFailed
 Exception thrown when a BeecryptMutex object fails. More...
 
class  mysqlpp::ObjectNotInitialized
 Exception thrown when you try to use an object that isn't completely initialized. More...
 
class  mysqlpp::SelfTestFailed
 Used within MySQL++'s test harness only. More...
 
class  mysqlpp::TypeLookupFailed
 Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type. More...
 
class  mysqlpp::BadInsertPolicy
 Exception thrown when an insert policy is too strict to create a valid INSERT statement. More...
 

Detailed Description

Declares the MySQL++-specific exception classes.

When exceptions are enabled for a given mysqlpp::OptionalExceptions derivative, any of these exceptions can be thrown on error.

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_34.png0000644000372000001440000000350612502417165024022 0ustar robertousers‰PNG  IHDR£%¡çÎbKGDÿÿÿ ½§“ûIDATxœíš}HS]ÇÏž•Þe:boµ™9›S™ ‘À†%ŠTôWNpaVÒ •£bV6*côŠšYae›¶4{!"$°˜ýQnëÕ¹1ÜÚ6Öbk»î<ž±¶ëìQ§ÏÓîç¯s~÷ìü¾¿ûåœsïe! ‰þZh$óét¼@:/NÇ ‹Âú]]]ÍÍÍ "…d®À0ìÊ•+iii¡Áp§5ÍçÏŸ%É< #™c:;;+++§q ‘H4Í|©"™{(Jd<§ãÒéxt:^ Žþ‹N>SÌ ·Û­P(ø|>FËÌÌT*•^¯w®&N° …2<<<ËIf Á³÷FMMÍÈÈÈýû÷W®\ùéÓ'¹\n·Û/]º´Ðºæ›ÿâšž[º»»Ïœ9“ŸŸÏb±ŠŠŠ.^¼øðáÃ…µÌÐi …ÒÖÖ–““Ãb±ÛÛÛù|>N¯««Èåòêêj4Òív/Y²äÝ»w€ÞÞ^±XŒaXFFF{{; \¾|9'''99Y"‘ôõõ…îThãêééÉÊÊb³Ùr¹üçÏŸ„Aðë.ÚNII¹zõê·oßP·¨¨hdd€ã¸R©LKKc±XÛ·ow:h€Óéܱc“ÉLMMU(^¯wªŒ~¿¿¶¶–Ãá°ÙìÚÚZ¿ß?99©R©„BarrraaáÀÀ@”{™h*I¡B¡ÈËË›˜˜˜‰gðW¤R©T*…Ó¨¨¨p¹\­­­€òòr—Ë…>£NLL¼|ù’Á`øý~áíÛ·E"Q p»Ý‰‰‰MMM6›íúõë‹-r»ÝÍÍÍl6[«ÕŽ=~ü855`2™0ÔØ¸qãÐÐN§õõõ„A¡Óé¼ví’Ú~öìÇKLLܰaƒJ¥²Z­(®R©D"‘Á`0 …Å·mÛVZZj6› Cnnn”ŒgϞݺuëׯ_ C~~þñãÇÏŸ?Z—ËE… ¢Âîad"BI({ Úü;î¨ÕêðàŒ~ûö-„Ðçó…µM&ŽãË—/ñâ„póæÍB»Ý¾xñâsçÎ9Ž@ ðýû÷ÉÉI‘HtóæÍà´·nÝŠtÚ`0 «jµZ £«Åq\§Ó544äææR©Ô;wî@³²²´Z-ðñãGÔöù|T*õýû÷(®Õj£dÌÎζÙl(øüùó¼¼<¡PY$rš0¡$”ýèÑ£€/_¾Lk œs§ƒÒ Ûû÷ï?pàÀøøxBBÂèè(ºÚßß_VV–””´~ýú'Ož@i4Úàà`pZ´É‡9íñxÐU½^aap*n·»££ÇqÔ uuu<Bˆa˜Ñh ?:::¹Á`ˆ’ðÐÝ‘N§–‰œ&LD( e/)))..®ªªšªÒPŽÕ™T*}ðàF£Y·nÚ“=O èìì´ÛíÕÕÕ[¶l±Ûí<O¯×õáÇȩP©€¡¡!´NŒB(“ÉŒF#êR(”M›6á8àr¹V«ÅO:àp8T*Õb± ¸ÙlæñxSed2™Aÿ‡N§KOOŸ¶a"BIˆÞÞÞ¦¦¦{÷îõõõM5ç4„9?WkÇq6›Íápnܸ.y< úººÆÇÇ[ZZ0 óx<§OŸf³ÙÝÝÝ6›íéÓ§„çtII‰ÉdzóæMffæÉ“' ƒpêsºªªJ(>zôÈl6¿zõjíÚµ‡‚*•J±Xl4FcaaáîÝ»Ñx™LVZZj±XŒF£H$Š’Q.——••Y­V½^_PPpðàÁ .„–“‘‘þYÓ¯_¿¶…@˜ˆPRðn ÍB¡0¸ü«5+§!„ûöí£Ñh.—+ø+µZ½zõê„„„ìììžž¡ÏçkhhàóùK—.•H$wïÞtºµµuÕªUL&³¦¦ÆãñÃîHhÇñúúz±XL£ÑÒÓÓ;†Æ{½^…BÁårétzEE…Ãá@ãív{ee%ƒÁX±bÅáÇ£dt¹\;wî\¶lƒÁسgÏ?pW©T ))I"‘ètº Ó‘ ,2¡¤ÐZ<P(T*•Óº3gNÿ'NœÉdÿê'¡UEv£cÊügœ%„NÇä™×ëkkkëèèˆÅü$3 &OdkÖ¬ÙµkWqqñlæIIIÙ»wïïcÊügŒøë)R^^ ÿsò¿†B¡¨Õjde?ÿ»7 ‚t:^ ŽH§ã‚·,‹ÅÒÒÒ2ÿRHbKØûõ‘#GZÉl¡R©ýýýaΆ¿e‘ü©çt¼@:/NÇ ¤ÓñÂß4œÃút”E–IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadParamCount-members.html0000755000372000001440000001132312502417163030272 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadParamCount Member List

This is the complete list of members for mysqlpp::BadParamCount, including all inherited members.

BadParamCount(const char *w="")mysqlpp::BadParamCountinlineexplicit
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadParamCount()mysqlpp::BadParamCountinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/cpool_8h_source.html0000755000372000001440000005274612502417162024156 0ustar robertousers MySQL++ Reference Manual
cpool.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc. and
6  (c) 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_CPOOL_H)
29 #define MYSQLPP_CPOOL_H
30 
31 #include "beemutex.h"
32 
33 #include <list>
34 
35 #include <assert.h>
36 #include <time.h>
37 
38 namespace mysqlpp {
39 
40 #if !defined(DOXYGEN_IGNORE)
41 // Make Doxygen ignore this
42 class MYSQLPP_EXPORT Connection;
43 #endif
44 
67 
68 class MYSQLPP_EXPORT ConnectionPool
69 {
70 public:
73 
78  virtual ~ConnectionPool() { assert(empty()); }
79 
81  bool empty() const { return pool_.empty(); }
82 
106  virtual Connection* exchange(const Connection* pc);
107 
120  virtual Connection* grab();
121 
137  virtual void release(const Connection* pc);
138 
150  void remove(const Connection* pc);
151 
162  virtual Connection* safe_grab();
163 
165  void shrink() { clear(false); }
166 
167 protected:
176  void clear(bool all = true);
177 
188  virtual Connection* create() = 0;
189 
197  virtual void destroy(Connection*) = 0;
198 
207  virtual unsigned int max_idle_time() = 0;
208 
210  size_t size() const { return pool_.size(); }
211 
212 private:
214  struct ConnectionInfo {
215  Connection* conn;
216  time_t last_used;
217  bool in_use;
218 
219  ConnectionInfo(Connection* c) :
220  conn(c),
221  last_used(time(0)),
222  in_use(true)
223  {
224  }
225 
226  // Strict weak ordering for ConnectionInfo objects.
227  //
228  // This ordering defines all in-use connections to be "less
229  // than" those not in use. Within each group, connections
230  // less recently touched are less than those more recent.
231  bool operator<(const ConnectionInfo& rhs) const
232  {
233  const ConnectionInfo& lhs = *this;
234  return lhs.in_use == rhs.in_use ?
235  lhs.last_used < rhs.last_used :
236  lhs.in_use;
237  }
238  };
239  typedef std::list<ConnectionInfo> PoolT;
240  typedef PoolT::iterator PoolIt;
241 
243  Connection* find_mru();
244  void remove(const PoolIt& it);
245  void remove_old_connections();
246 
248  PoolT pool_;
249  BeecryptMutex mutex_;
250 };
251 
252 } // end namespace mysqlpp
253 
254 #endif // !defined(MYSQLPP_CPOOL_H)
255 
bool empty() const
Returns true if pool is empty.
Definition: cpool.h:81
size_t size() const
Returns the current size of the internal connection pool.
Definition: cpool.h:210
Manages the connection to the database server.
Definition: connection.h:59
Manages a pool of connections for programs that need more than one Connection object at a time...
Definition: cpool.h:68
MUTually EXclusive lock class.
ConnectionPool()
Create empty pool.
Definition: cpool.h:72
void shrink()
Remove all unused connections from the pool.
Definition: cpool.h:165
virtual ~ConnectionPool()
Destroy object.
Definition: cpool.h:78
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Set__coll__graph.png0000644000372000001440000001000112502417165027214 0ustar robertousers‰PNG  IHDR½pÄÃæ bKGDÿÿÿ ½§“¶IDATxœíÝ}8Tiãð{Æ4“‰;ÈKaі²­ì^»Š%±í–·õ.k½¥½ÊÕjlíÖ¢UÑ’¥0Â*¹*Š\k{\¡zÙÄþv–òc‰ ]†Æ0ÌŒ9¿?Îï™fÆÛY™¡ûóG×qŸs¿ùv^æ‡ € yÂËzÐ’sasasaAõf711ÑÑÑ!d=E¢£££¡¡!ëQÌb ä†Åb Éÿ®\,kppPþ'»rƒÚ´i“¬‡°Z[[e=„9×7070707Ë*7ýýý¾¾¾JJJVVV7nÜXð.þüóO·àÍ.9Ë'7CCC–––d2¹°°ðÁƒÞÞÞ>>>·nÝšW#]]]êêê3l ªªúõ×_ÿ³‘.Kæ>|V111vvv999èŸ7n|öìYRRÒŽ;æÞˆ@ šauuõ„„„4Ðå‘{wïÞu3--­úúzÑ’ÑÑÑžžtyxx800B¡èêêFEEq8A6lPSSKLLD„B¡V¯^Ö*++³°°PTTÔÒÒ:uê‚ Â&YA.—{èÐ!MMM C‡q¹\´JUUÕÚµkïÝ»7ó,ZZZZZZæ¼odf™äfxxÀd2§ÛÀÏÏÏÞÞ¾³³“N§›ššÆÆÆ"ðððÎÎÎ ‰Æ‚Åb‰Ä/¾ø¢···  088(–±ê‚$&&º»»ÿõ×_t:ýwÞ9|ø0ZÅÙÙùÎ;l6{æ‰ÀÜ,˜¹ä†Éd†‡‡¥®år¹ ÂÇ£¤¤ÄØØAÚ2—ËtttˆÆbrròñãÇl6{jjªººZrÉê‚lذÁ` TVVZXX Uètú\&»Tr³L®‹ÕÔÔV¯^ýèÑ#ÑÂÆÆF++«ñññ©©)###´ÜØØ¸··]ÖÑѬX±B²M"‘ØÞÞîää´yóæ .HíW²zww·¶¶6‡ÃápÛ·oòä Z¾aÆ8G¹²LrصkWrr2"ò¶×‚‚G&“W¯^­  ÐÕÕ…–wvvêêê¢Ëxü´{€ÃáxzzR©ÔæææŒŒ ©ÛHVWWWG<‚ 744 åR£¹t-ŸÜœ8q¢ºº:  ¾¾žN§ÇÅÅ¥¥¥8q°bÅ //¯>>šššb×7bÕa±XAAAjjj %,,lllL´Ê¬–Êõ ‘ûÏ3 >zôÈÖÖVÖY èû(äÿM#Ëç<-&˜ ˜ ˜ ˜ ˜ ˜‹%óþ›þþ~Ya1LLL¬\¹RÖ£˜ÝÈ ‰DÂápííí‹Ù©@€dd4¹º®×ÕU^Ì~ªªª‹Ü#K 7***Û¶m[äN:ëë^¿ÞÐÏÏv‘»^àõt7n4¡ÿòù¯ËçÒçæF .—_RòàÅ‹ñššÿ•õpäÌÿùOÛøø$@A_RÒ$ëáÈ#˜)Š‹›ð>_P^Nçp¸²‘ܹ766yëV Ÿ?…þ99ɯ¬|4s•×Ì8ÑÐðx\qñCŽG>Á܈+.~(úI^>_p÷n‹Å‘áäÌÍK˜Ì±ššö©©—î½ù÷¿é²’|‚¹yÉ/¿ü.Yˆ ȵkðTõ˜›—\¿Þ(ù†kihèx!“!É'˜›¿õ÷45õRÞ¨¯ €/+“r(zmÁÜü­¬ì¦ûpŸ?U\ ŸüÛx]sÑŒsµµÿ%ü“Íž\¹rðÿÿµà·%‰ZŸŸ’ƒ4Zà®]²ˆ<‚ç) ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜ ˜DDmm-‘H”õˆä‰¤‡Ç“e= yA¥RE£òÒ÷ûõõõq¹Ü˜˜Y ’O×®]ëîî-‘ò½¶¶¶‹3h©¨®®+×7070707r÷}é}}}þþþwïÞ]Ö8Î… jjj˜L¦†††½½½ŸŸßÂ>×044”™™ÙÒÒòâÅ }}}???›l,ô>YËüx“––ÖÑÑqüøñÂÂÂèè躺:6ÝÆ c÷îÝójŸÅb…„„H¤˜˜öÑG}ÿý÷ójdÖ~•””|||æÕæ«¶ÌsS[[ºnÝ:UUUssóÔÕÕM·±@ `±Xój?//ÏÒÒ’J¥š˜˜èëë{zzº¹¹Ϋ‘YûUQQ ›W›¯–ÜØÙÙ•——º¸¸\¾|¹¢¢ÂÇÇgçÎ?ýôàìÙ³§OŸF·äp8NNN€úúúàà`GGG__ßŠŠ ‚ 7nÜ üøã¿üòËß~ûÍÎÎNØK__Ÿ]]]]@@€««ëÙ³gy<žÔBáÆ¢Ñe2™\ZZ*|TÌÍÍ…*ŸÏ§Ñh®®®®®®4ÏçïÛ·àææ&uÖ###“““b…555îîî¢%ÑÑÑè2›ÍNHHؽ{÷gŸ}–™™ÉårѽWUU¸k×®«W¯Äú½ÿ~hh¨“““»»ûåË—Åf$Y]ê\Ð*ÍÍÍ^^^üñÇ̳Àãñ¦©©)333,,,;;ûþýû¹¹¹—.]b±XÛ¶m«««›ššÔÕÕikkOLLÄÆÆº¸¸\½z5 àôéÓ7oÞÌÏÏ ¹téÒž={N:%ÙQiié©S§Nž<ù믿¢;Qj¡ªªê¡C‡Ðµ¢ËT*µ¹¹ÙÃÃJ¥ [¾~ý:ƒÁÈÊÊJNNnnnÎËËËÈÈ”””ˆ¡­­-!!!((ˆÍf‹–³Ùl&“©§§'Z¨¨¨¨©©‰.§¦¦>þœF£%&&666^¹r-¯­­MOOÏÊÊíw||ü»ï¾[·n]AAADDDvvöÈȈØxĪK ºeQQÑáÇ׭['¬ÛÙÙéíí••Å`0¦{pçcn¼¼¼Èd²££#À××—L&;99FGGMMM NTUU9::âp8‡ ‡Ã!‰NNNeee$©¸¸xïÞ½666 ÅÚÚ:$$D²£ˆˆˆ5kÖ˜˜˜„„„TVVNW¸jÕª;w¢kE—ß}÷ÝÂÂÂÔÔT33³[·nùúúÞ¾}]U^^©©©ihhþàÁ±®¹\nEEEDDÄ™3gLMM/_¾L¡PD7@J7Í ñùü;wîìß¿_[[ÛÐÐ0((H8~%%¥;vÄÎPD"177÷À ÍßØØ˜XË’Õ§›KXX˜¥¥åÊ•+…u7oÞœ““C"‘"##¿ýöÛ‡bûA Œ÷Sd2@ Ä–x<ÞÆÆ¦¦¦ÆÐа©©)**  ¬¬œ’’rýúõ¼¼¼·ÞzË×××ÚÚšÁ` Û444”ìhÍš5肞žÞóçÏg(”411Q__okkkbbbbbpáÂfooxöì™è)fÕªU¢u›ššâãã­­­###ׯ_/5ÊÊÊjjj===›6m¶µµýøã©©©,K èèè åºººÂ¡ª««‹î1Q¡··7))‰Ãáˆ'DIVŸn.bÇB…BùüóÏýýýkkkóóóSSS“““…ÇÈ9z%÷á¶¶¶ñññfff€ÉÉI@Ëçóoß¾ýÍ7ß”––ª««wvv¡µÄ^9Cõöö¢yzúô©ð¿»ÔBI‚ÄÇÇëéé¡éÄápVVVeeeèZ•””]]]ðß3Žh]UUUƒÖÖV###]]]eee©]|ðÁ………qqqÂ`UVVòù|‰¤¦¦†Çã †¾¾> ¿¿}¼Áô‡(tGÅÆÆÆÆÆ¾ÿþû<¯¼¼\rÉêÓÍEj4QÃÃÃÝÝÝÏŸ?߸q#‰Dšn³é¼’û)ssó©©©‹/¢'2‡£R©555ccc<@ H$ggçÌÌ̺º:&“ùàÁƒóçÏK6uîܹ¾¾¾¶¶¶œœœíÛ·OW866vóæMt­pYQQÑÑÑ1..®¡¡Á`´¶¶fff¢€MvvöÀÀ@WWWtttii)ZÎápFFF)))Çúôi@@À?üÐÞÞ.9¼àààßÿýäÉ“­­­]]]/^,))AO¸ÁÎÎ.--Á`@àr¹èeÊøøø¬;|º¹HBäáÇǎÛ·o‚ çÎ;v옊ŠÊ¬]ˆy%¹Áãñ[·nߺu+ZB$9’••åááqíÚµ˜˜"‘èåååêêšžžîïŸ.Ù”ƒƒCTTÔáÇ·lÙâçç7]áÈÈHRRºVt9::ÚÁÁ!;;;(((>>þí·ß EW“ÉäÐÐЃ…‡‡kii™™™‰ðß|óͯ¾úª  ÀÀÀ ..Nô²¥ªªzþüy³ÿþ†††'N¼÷Þ{èÚÈÈHuuõ½{÷R©T+++áøÅˆö«¤¤¿gÏ---{{{áÝÙ $ç2Ý–÷îÝËË˳µµ½råJPPÐ G뙽ô;‰EEE^^^ ò¼dNNγgÏŽ=:÷*bÏŠJ}’T†Ïœ""¿ë„Ìæ[+..NCC£¨¨HX²ðÇ.—Ë`0ÊËË?ùä“o\†p8ÜR ˜ñŠg^>7?wvv¶°øG¿hºjÕªO?ýt.…Ðâ{Uç)h9YŒóô:€¹°€¹°€¹°rW&|1‚P]]]bOv¿”kkkoooô-$dhhèéé)Z‚Ãö2:ôšƒ×7070707ÿüÅÃüâÆ¾zIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_33.png0000644000372000001440000000404312502417165024016 0ustar robertousers‰PNG  IHDRÈ%ˆà1•bKGDÿÿÿ ½§“ØIDATxœíš{HSoÇßµÒM—67ÛÊf© fRa©ePØ‚ú§i91ÉèB¶(ZQ*B³‚ˆ o]d%Óò†‚Æòs[iÊR˜ºÅ6ÙØŽ{§³©¿vfÊûùë=Ï9{Ÿïóøõœ÷¼Bˆ@³d¾ 'ÈXZ@ÆBÐ2‚–FFFŠŠŠÇ|©A,PX,Öƒâââ<‘?Œ¥Ñh:::²³³ƒ. ±°ijjÊÏÏ÷i,œÆÆÆ JB, †W­±´€Œ… d,- c!háŸ3Ö?È+ÁÿÍfS*•ñññl6;11±´´4h›)ÄBŒF£\.‹ÅgóæÍ---ÁÑ0£0úøçŒX E__ßË—/GFFêêêÚÚÚ.^¼d “““7n S«Õ½½½‡ÎÍÍíìì ¦†ááa‡£¢¢Š‹‹iO ¨Õj¯Hð  †¨¨(Fã9ìêꊋ‹ ÔäþñRTTtèÐ!â)¥R¹k×®àÈðCµZýG„x0Kcêêê$ Ç»qãF}}½X,Žˆˆ¸rå „P¡PâWZ­V6›Ý××!loo_¿~}hhh|||}}=„pzzúþýû‰„Ãᤧ§¿ÿài>hmmMJJЉ‰Q(‡ƒ2ÿlqwäÈ‘‰‰ ¯\.WIIɪU«x<^~~¾ÙlÆãf³¹  €ËåŠD¢ .Øív_N§R©äóù111J¥ÒétbvëÖ­ÄÄD‡³uëV•J…ˈýøñ#1»Õjýù󧯌x‡U*•D"‰ŽŽ®¨¨ð´$Ë ,ËåWfŸ}FKÆX¹¹¹‹¥¶¶““c±Xªªª]]]\.×årAU*•T*u»Ý6›-44ôáÇcccuuuK—.µÙlUUU|>¿¹¹Ùh4¾zõjåÊ•dcíÙ³g``@£Ñ$$$”••Q!„¿ÿ®©©ÁåÇ"‘(44t÷îÝ•••ƒWVVJ¥RN§×ëÓÒÒ”J%ÏËËËÊÊÒétÉÉÉ~2VTTûŒ–Œ±ð›ÓéôbûîÝ;á¾}ûnÞ¼ !4™LË–-»}û¶Ùlv»ÝV«uzzZ*•>yòÄ3íÓ§OÉÆÒétm ”Aÿj1 Óh4åååÉÉÉL&óÙ³gÂuëÖ577ã|ûö ;N&“ùåË<ÞÜÜì'£D"Ão߾ݰaCRR¹“ɄۋReF¼Ã>| vÕW,ƒ²4JcÍ)»f,O2ÊñéÓ§‹ŠŠÆÇÇCBBFGGñ³ÝÝÝ2™,<<|ûöí¯_¿†²Ùìþþ~Ï´Ÿ?& ¿9CµZ-‹Å¢ úÒi³Ù0 ÃÝn÷Õ«WE"„Åbéõz¯ëGGG‰“ët:?Y,q©IY„P ôôôõöö¦¦¦NMMQfÄ;ùýûw¯®RÉ2(K£4Öœ²û‡l,ZÞ ³³³[ZZ333ñœÝnw»ÝMMM&“騱cû÷ï7™L"‘H«Õz>õõëWòTxøÃÅW „P.—ëõzüÁ`ìÝ»Ã0€P(4 x¼¿¿ÿÚµk@Àd2‡‡‡ñøÐÐH$ò•‘Çãy:n6›5X,¦,çÀwîÜ„Ÿ€«T*—Ëæ'ã’%r,ƒ²4Jæš}n]¨;†a|>_ <~ü?e·ÛY,Ö‹/ÆÇÇ«««Y,–Ýn¿~ý:ŸÏomm{óæ åkç΃ƒƒ½½½‰‰‰%%%”Aè{UPP””ÔÑÑ144ÔÓÓ“žž~îÜ9aiiiJJŠ^¯×ëõÛ¶m;~ü8~½\.ÏÊÊÖëõR©ÔOƳgÏÊd2ƒÁ ÕjÓÒÒΜ9sïÞ=b9kÖ¬Á ùõë—ËÍËËëééÑjµeee€ŽŽ_}u•2H–AY^…Õj…Þ½fŸ}FKãQ!>žÃáddd<þœl¬ÚÚÚÕ«Wóx<…BáyGó Bß‹S ÃÊÊÊRRRØl¶X,...Ưw8J¥R(FFFæææzÖ@&“)??ŸËå®X±âüùó~2Z,–£GFGGs¹Ü'NLMMaVYY™ž‘‘¡Ñh<2 ƒL& …Ë—/ß²eK{{»§-䌾ºJ$Ë ,Íåreffr8¯þÌ>ûŒ–€±fÃåË—årùœ>âµ×B¹õB÷~ÌŒª”Eñ{¬¿ÄápÆG544|rÄB!ð‹÷OŸ>¥¦¦îرão扈ˆ8yòäl‚´üŒ‹$¼­466â_>Ì£ ÄB„Á`¨ÕꜜOd‘ ˜/±´€Œ… d,-Pl7TWW_b±AÜÔêîîf2™ó­±ð`2™ÝÝÝD/1Ðæ‚Ð A ÈXZ@ÆBÐ2‚þ?oÒÔ(–ÞIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_21.png0000644000372000001440000000324312502417165024014 0ustar robertousers‰PNG  IHDR•%Ä ãŸÝË=Œ ·Û{–hæ©‚ŸÀsýù—qÿþýŽŽŽ½{÷.Ü>ŸƒAFC’äÂMÇeÑýþæƒÁP]]=<<¼pSdq0›Íããã­­­ 7—¹øGDsss^^^FFFCCƒÅb!IrÅŠgΜ£ÑXYY‰ ÉÉÉïÞ½€G,[¶,77×b±Ã0W¯^ÍËËKII)**êîîæ.;x³Ûík×®U(F£ñǼ"L_î"VÈššŠ¢ªªª"þ)‹qJ ¢«àÒÛÛ{ñâÅöööŒŒ …B&“)33S¡P˜L¦P(„'êêêZµjUOOÏØØØÁƒår¹R©š¦›šš ´´”¦i³Ù ###/^¼Éd¡P!t÷îÝüü|†aÀÒ¥K¯_¿îóùnݺ•˜˜Ìf³B¡°ÙlCCCOž{ö,¯ˆ»yó&N;Æ].WRRRKK –;à¹{q„oìÇBÓ4I’çÏŸg• .ìÞ½Ûëõ:Î 6ÔÖÖâ°;vìxþüy (++Û¶mÛÀÀ€Óé\·n®%Z­·óÿ½˜›oß¾EƒÁˆq8ÎÊÊêêêBíܹ³¡¡!ä÷û¥Riccãèè(Ã0ãããSSSùùù·oßfÃÞ¹s'Ú?§ÓÉæ¦V«yÅØ©âþòåË©©©^¯÷Wüã­‚«¢¢B£ÑpŠ¢|>?}ú´°°›0”H$}}}ø›Í»Äçßû_JJ H¥Òˆ1H$’’’›Í622òìÙ³²²2HOOïîîv8J¥rË–-/_¾LHHðx<………lÌ‚‚‚è‰Ö¬YƒE}þü9†›£G®_¿þСCˆï}^1Þ*ð.›ÍÖÙÙi±XX>~ü˜/G‹‹‹Ù´àëׯSSS*• ‹jµ:ÎZ¸,Èõ‹V«}øð¡ÕjÝ´i^'&&†¹wïžßﯬ¬Üµk—ßïÏÉÉyÿþ={Ö‡¢Cá/,¸\®•+WÆc“ÐÒÒÒÛÛ{ãÆ ®‡àË—/ñá­|>ß‘#GÚÚÚ ÷x¹\ޏ¡ÑÑQ‡Ãuü]ÏÌÌ”H$‹999ñ¤1­®Ùž›7o‡ÃõõõåååX!B£Ñ}¯U³ƒ»˜ÆßÿدÕLãÇ'%%Ñ4Í ®R©–,YBQ”ÝnÇ  ¾¾ž$ÉåË—µµµATÿkjjZ½zµ\.?vìØÄįˆfhf)!„†)..f÷ž;w.--M¥RÙívˆ£ÿñV1ÓÚ‹¢iº¢¢"==]&“UUU}ÿþ!ä÷ûËËËe2YvvvMM ®%ósýuuuû÷ïŸÕ)µElÆÿ¢ý›ÿç/“““CCCÍÍÍíííó\$‚ùï¯_¿Þ¸q£^¯ßºuë¯ÄIMM5 ñˆÿ2â,ßV«U§Ó!ñÞÅ þÿû‚ÄßÿüóïFôO؈þ Ñ?aÃsÿñ„Idñàñxrss§IÜ›Ážž‰Dò‡r‰‹'Np-#Ä»A#ö?a#ú'lDÿ„蟰ùš}04n‘IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_39.png0000644000372000001440000000557312502417165024035 0ustar robertousers‰PNG  IHDR3%¡Â™;bKGDÿÿÿ ½§“ 0IDATxœíœ{P×ÇÏ I„ð0Æ$¤ˆÚŠÎøšZ°´CG­Â´S)Úv:BQhQÿ ­;Ö"ÁGÇÐØ2Ã@­-bd¦#x§¥1ãc.Œ¥ R †Å¼³÷½77&›HH¸÷|†?Îþv÷»¿sÎï·{β†aø¾v3ñG`fB þÌLÄ tÜ0 J¥Òf³ùÊ›EG@@@jjjpp°¯ù7%%%÷îÝóµ¯áñx_|ñ…£q|7;>>~÷îÝèèèwl±¢Ñhø|>ƒÁðµ#ÿA5kÖ$$$øÚˆüõ×_ýýýN«$®Ç¥¥¥-”K‹žëׯûÚgÊÊÊòòò|íÄ ÚÚÚòóóŒpž ø#03!f&âÀÌ„@üdæÐЂ ]È0·‹¢hyy9›Í IMM­©©1 ö½333"‘hùòåT*uõêÕõõõ‹ß… ÈÐÐWjþÆ=11onذáÏ?ÿÄËR©ôèÑ£$É~Å^xA$µ´´¸«¸;5ÿ ¤gyfnÞ¼yxxX¡P‚ÚÚZEƒ‚‚ùä­·ÞQ(+W®¬ªªÒét ¥¨¨httT*•ÆÇÇq t:]ss3 //O§Ó9sð÷ß?µ)ìÏ̉ T"é}ãSqqe Y¬2&ó#Ç?ÿyfz®roo/F3›Í†I¥Ò´´4›ÍFØþgΜa0íííccc?þøc||<ÀÞ)x!;;{pp°¿¿ŸÃáÔÖÖ1 Ójµ‰wϱüóÏ?³X¬   ¬¬¬'NÜ¿·OMM4SÕúúú¢¢¢07ÏLwj>$Âg¦×™i2™H$ÒíÛ·ñÍööv‡399I&“Ož<955e³Ù¦§§­V«k… …SCð+šL&¼5AKK‹ýrß~û-À+} ø\îƒðrwwwFF†Ñh¼wV«µ··×Þs€»Že×®uå§Ÿº››¯îÞÝ”p0>þ@|ü§„ôÏÌôPe‹ÅÛÓÓƒaØë¯¿.‹1 #lÿ´´´ .Øe¿ùæ×Ì´÷Hkk+‡Ã!4zöÖb±ô÷÷×ÕÕ ‰„Çž™®ãÆ :޹ÉLwj>$ÂÌ$øï<ϨÕj«Õš’’‚or8œÑÑÑ%K–Èd²Ï?ÿ¼¦¦fåÊ•‡ÊÉÉq=—Ëåºãââd2ßö½|>à­þýû÷™L¦ÝA¡P÷îÝ‹¢èŠ+Ï ³;àXž õõ}Jå$‚€§~bdd".®l–²Ï ™3›ÃN—ÉdøHX«Õ>|øP¯×çååµµµåææÆóçÏ{[qB„Bþo¿i¯]û§Á` $™ÍwGÒéaõõ;æä¢غõëçÙ¹sgaa!ŸÏ_·n>F%l‹uëÖ­åË—ãgݹsÇUJ©T¾øâ‹€ÁÁAüìÎè †aB¡Ëåâù È–-[šššð½………Çß´i>Õ,((xóÍ7Åb±»×þžÕœXø@rÅëÌ$“Éùùù%%%‰dff¦ººº°°Aììl©TºqãF“ÉD&“CCC'''(ŠR©ÔÙëøá‡"‘ˆF£­ZµêÖ­[µµµ‚x«¿}ûöC‡†a:nÏž=K–,¡Ñhûöí›™™Á0¬¡¡!***!!áôéÓ ƒÐײœVMôzÓ/¿Ü..>€Å*sœvúÕ<ó©U~ÿý÷CBBt:ý,×ö7™Luuul6›J¥®]»#à4ÏlnnNJJ¢Óéû÷ï×ëõ„FÌ}xX,–ÚÚÚôôô¥K—VVVâÇã (zðàA@œ’’òñÇoܸ1??#šZxPóy ÍÍ ù¦³³S.—Û7¿ÿþûŒŒ úãwë™jµN"éÍÉi`2?JL<·ÈÖ3>, ½:Å)¦  ç{åÐh4öõõÍŸþ<1gë™óŠB¡Øµk×ÀÀÀãÇûûû9bŸ,"Œ°ââ —/—õõU8°…ÍŽNL¤ùÚ©Ya0T*Õ¹sçöîÝëk_¼†B¡à‹“ÿx=ÏœoD"ÑãÇ·nݪÑh’““‹ŠŠÞ{ï=_;õì$%ÑJK³JK³|íÈl¹yóæ¶mÛ>øàƒM›6=Nxx¸kÇ!„|mä9»äÿŠëׯûÛ×FZ[[á7 ø7 °'§Ç~7š…@ f&âŸÀÌ„@ü˜™ˆ?Bðnvllláý€Ì===Z­Ö×^@¼à÷ßw5>‘™AAA‚ .”K‹A‚‚‚|íÅIHHp÷¿ &11ÑÉ‚`Oý•Ypà<ñG`fB þÌLÄ™ ø#ÿÔ;åΧ[ IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption__coll__graph.png0000644000372000001440000001374412502417165032633 0ustar robertousers‰PNG  IHDRà»ó‚bKGDÿÿÿ ½§“™IDATxœíÝ{PSgúð7 ä" áNaĨPâeW]q,¢ˆv»E-RAJÖè2ê´]ª uœn]·(W¥*¨\•ŠŠÂ.E¨ŠW‡Kð†ÑFB ‘\Îï³›_ !åÈK|>ão^NÞ󜗯yÏ9‰‘BWT}€6P€5(À`ÍHßhóôéÓ˜˜‰D¢ïB –©©é±cÇÜÜÜô]È€°hMMMIIIHHˆ¾ 1XyyyÐÉÍÍÕw ‹B¡è»„ßç kP€5(À` úš››u{%ÑÓÓÃápfÍšeii9oÞ¼øøx™L¦—JÆè˜êîîž;wn]]]bbâíÛ·÷ìÙ“½lÙ2¹\®q{Ç`0ȶµµõîݻǰX,ŒƒÛL†$..ÎÎÎîÚµk4 !4mÚ´åË—³X¬ÌÌÌèèèþÛ+Šööv²Í`0Æ´\ Â+(…B9yò¤———]BB™3g&Ožleeµoß>„жmÛ¢¢¢È-E"‘™™ÙÝ»wBÅÅÅ3gÎ455õðð8sæ BH¡P$%%yyyYZZ.X° ²²RuI%WØ¢¢¢éÓ§ÛÛÛoÛ¶ííÛ·;ѻ˱j;++kÿþýd:Iæææ'++KãP>>>!GGGµq:;;¿üòKƒáêêºsçNòÍ6 …’íåå5iҤÇêœc999ƒ©!´nݺ®®®ŒŒ „ÐÚµk»ººRSSB¯_¿þ÷¿ÿmkk+•J ‚ÈÊÊòööV("‘ÈÄÄ$%%…ÏçŸ8qÂÈÈH$¥¦¦ÚÛÛ¾xñ¢´´ÔÕÕ!ÔÔÔDÖ@6kjj˜Lfll¬ÆN‚ :;;ÓÓÓÉò”펎„@ P«¿ººÚÁÁAËøäfªíððð€€€––.—Ëb±È"„>ûì³ŽŽŽôôt„P{{û`¦.''gp¿ ý0€Þ¹s‡ ˆ¾¾>µvSS“L&stt¼víA+W®LHH B(Òéôï¾û®££C¡PtwwËårooïüQ9ì©S§ú”Ëå*kc2™;ªs €Þ¼y“Á`hŸìQ¶ûúúh4ZCCÙ_XXHî!TYY©z샙:ÌjKŸ_VV¦ñÔßß¿©©©¶¶vêÔ©û÷ïרI pJÄ›7o¦OŸ¾xñâ²²²ÆÆÆÂÂBooï… J$-ãwww†……ðx¼û÷ï{{{“;h´OæKü{P‚ 6oÞÉ8'Nd³ÙƒéÔáø€B`üÅ ¹¹¹¡¡¡8W8ÞQ(”œœœµk×ê»þ+(×  kP€5(ÀÚ8¸Í”––¦ï€Þ`P6Žn¾˜™ÍDõörõ]È`Ñh4åûøxÂú6Óø"—+fÍ:€ârã¨Ô÷î8Õ™›7›…¡PtãF³¾k1PÉËûÅȈJ§Sóòêô]‹á€€ê†D"--½'“É¥REié=‰DªïŠ T7***C)‘H+*ê·ƒÕ‚‚_”ÿä’B¡ü¢ßz Tºº$W¯þG.WårÅÕ«ÿéê‚ïÝÕ¨\ºt_¡xçnBA\¾|__õ¨äçÿ¢v7™ ˆü|Xåu:RA÷M …BµS¡ nÜhºõU•Á€€ŽTII½Æ÷(JIɽþý`H  #•›û‹Ú (I¡PÀû‘ƒ€ŽH[[—ûl€€¢{÷ž½xÑ9öU¬?Í„¿×¯EÎÎÖÊPò^½©é¿y†J¥¾~Ýíìl­·úÆ?ø4“.±Ù§B©©‘ú.ÄpÀ°Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  °Xƒ€¬A@Ö  kP€5(À`  ðFŒOGß3§‘ÃȈ¡ï*4àp8úþ ÓxýŽúÇûøø|ýõ×ú.døþûï?~¬ï*†i¼!ôÁ„„„車q //Oß% œƒ¬A@Ö  kP€5(…BinnÖË®{zz8άY³,--çÍ›/“ÉóÄææf EÃÿNû~2ð€jÇãñŒQ¹mÙÝÝ=wîܺººÄÄÄÛ·oïÙ³';;{Ù²er¹ü7+±¶¶Þ½{÷hT5ãÛL#§P(ÚÛÛGc丸8;;»k×®Ñh4„дiÓ–/_Îb±233£££µWÂ`0F£ªñè=z¥P(ÙÙÙ^^^“&M:|ø0BÈÇÇ!äèèHn •J9Žƒƒƒ½½=‡Ã‘J¥A¤¤¤|øá‡'N\²dIII ¹øöß’\—¯]»æææöóÏ?geeíß¿ŸL'ÉÜÜœÃádee‘[MŸ>ÝÞÞ~Û¶moß¾U­Du‰ïììüòË/ †««ëÎ;%‰Æ1dú~+k˜BBBBBB~s3„PSS“²ýÙgŸutt¤§§#„ÚÛÛ›ššTg 11qÍš5OŸ>år¹¿ÿýïÿú׿¦§§»¸¸\ºtI ”——3™Lrûþ[’C­X±¢¢¢âùóç!@ VLuuµƒƒ¹e```cccMM “ÉŒU­DµÐÒÒÂårY,Vll¬ÆÑÉ\áéý hee%A}}}d¿Z@===ù|>Ù.//Ÿ={6‹ÅÊÎÎVnpöìYrûþ[’Cq¹\‚ :::4ôæÍ› CuK‚ rrr˜L¦Æ€öõõÑh´††²¿°°Édj<ÌžÞ¯sPggg„N×øÓÇ;99)ZYYõõõ±X,eχ~8ЖdÃÓÓ!dmmíèèX__¿téRÕñëëëçÌ™C¶§Nª| ùŠÛß«W¯ärù”)SȇL&S¹¥ö1$ïÑ9(BˆJÕv¼äËù·£££¦¦ÆÝÝýÁƒÊ >|8Жd¿21áááqqqª×ì===‰‰‰AAAäCòe!ÔØØH¦­?Æãñȇ---...ƒ9Cò¾§"‘ˆl¬^½zÏž=Ož<ár¹AAAÇŽ‹‰‰Ùµkו+WÚÛÛ+**bccÉË—þ[ª¹ÿþ_ý5 àÒ¥KMMM.\˜?¾‹‹Ë–-[È ¶oßÞÜÜ\WW·wïÞõë׫UB¢Óé¡¡¡Û¶mkmmmhhøæ›oÂÃÃGw.0¤¿³‹Þ9¨Z[*•.Z´È‚ììêêÚ°aƒ­­í¦M›zzzärù‘#G¦L™beeTTTdgg§qKµÓY‚ D"ÑŽ;X,–™™™··÷Áƒ{{{‰ÿbfdd¸»»3Œ­[·ŠÅbÕJT‡ …¶¶¶NNN_}õ•X,ÖrP#œ+ŸïæææëëûùçŸÓhþ÷Q5:ÿMid௠]]]ÑÑÑ&&&HIIY²dÉ·ß~[WW7–5ðùüO?ý”l/\¸°      )) !Tð?,kݺuc\ B¨··—Íf?zôˆÍf§¥¥…‡‡———ïܹS¡PüæÓ-,,Æ fì^Au+33ów¿û‡Ã!º»» …œœœyóæY …¢««‹l›˜˜˜˜˜ „Äb1BhÒ¤IÊÍ6mÚ4ÆÅ „NŸ>mmmýý÷ßS©T„««ë¼yó6lØPVVöñÇkº••ÕÔ<œWPÿ²²²ÈÈÈààà³gÏ^¹reݺuüñÉ“'B?üðÃáÇÉ-ÅbqPPPSSBèÆQQQaaaW®\AqáÂ…ÈÈÈ•+WÆÄÄܽ{×ßß_¹—¶¶6ÿêêꈈˆU«VýðÃR©Tc§rcÕ'’íªªª5kÖ¨¹k×.²-‰>ýôÓäää¾¾>òè®^½ù§?ýéüùóÊCîß)“ÉRRRV­ZµjÕª””™L&—Ë333CCCƒƒƒ:$‰BùË_B«W¯Ö2¥ª5kŸ^ûÕx,çD­˜òòò/¾ø‚L'‰|/§¼¼\ãT«>]uüÁÏäP s‰¿}ûvrrò¦M›ÒÓÓoÞ¼yâĉ-[¶œ9s¦««kñâÅÕÕÕr¹!T]]íääÄd2%Illlppðùóç#"">,‘HJKKOŸ>}æÌ™/¾øâСCýwtñâÅC‡ÅÇÇߺuëìÙ³uZ[[ïܹ“ü©²-‰„B¡›››ê€&L°··'ÛG)))‰‰‰uuuçÎ#ûþùçcÇŽ±ÙìÔÔÔîîî:óóóù|~jjêßÿþ÷;wîdffæççWUU:tèÈ‘#Ïž=ËÊÊB?~!TXX¨“éÕ¸_-Ç¢Fµr~˜L¦Ú6L&óéÓ§§z cÒLÉ0jffˆ 333 Buww³X,###.—‹ºzõj`` …B‘J¥AˆÅbccã   ââb“‚‚‚Í›7ûúúÚÚÚΟ??::ºÿ޶lÙâêêêåå]^^>P§¹¹¹rIR¶ÉP(‡ “É***¶nÝêäääáá±aÃåøÁÁÁË—/G)W´þeeeÛ·o···÷ðð`³Ùµµµ¥¥¥7nôðð˜½÷«åX†B¡(ÏA5οš¡Îä óÔÌÌ !ddd¤ÖFQ©T__ߪª*Û·oïØ±!diiyäÈ‘üüüÌÌÌiÓ¦………ÍŸ?ŸÏç«þõõððè¿#WWW²áææ&´tögiiiccóäÉÕ ~ü¸­­íË—/ÉŸ677“K¼Îõ߯–c!ϵ^¿~­q¨¥K—ž>}Zõš]"‘œ;wîøùp0S=Ô™’Q èÌ™3årù©S§ÈE !D¡P8NUUUOOT*522211Y±bErrruuµP(¬­­MKKë?TRRR[[Û£G222–-[6PgOOOii)ùSÕvTTÔ½{÷âãã|øÍf¯X±böìÙ#ÇÜÜü“O>L' ˜Lõh-ñ ÃX,ñè`  °Xƒ€¬½óNùAÕe0ÆÔ>YòÎm&‰DòÓO?‘/`ìÑh´•+Wššš*{(?ˆ&à`  °Xƒ€¬ýÿÉ]>?IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiResultsOption-members.html0000755000372000001440000001212412502417164031460 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MultiResultsOption Member List

This is the complete list of members for mysqlpp::MultiResultsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/nav_f.png0000644000372000001440000000023112502417165021752 0ustar robertousers‰PNG  IHDR8³»`IDATxíÝK€ EÑ–·[†øBÑmkâÄÂH—prÓ¼.‚Žó‚ꎤR6Z VI±E‚5j³„lóš›iI˜¬ÞêçJ0ŒÑÑ/Žû›™uøñóÞ¿6sH ÝõyIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/manip_8h.html0000755000372000001440000001505612502417162022557 0ustar robertousers MySQL++ Reference Manual
manip.h File Reference

Declares the Query stream manipulators and operators. More...

#include "common.h"
#include "myset.h"
#include "stadapter.h"
#include <iostream>

Go to the source code of this file.

Enumerations

enum  quote_type0 { mysqlpp::quote }
 
enum  quote_only_type0 { mysqlpp::quote_only }
 
enum  quote_double_only_type0 { mysqlpp::quote_double_only }
 
enum  escape_type0 { escape }
 
enum  do_nothing_type0 { mysqlpp::do_nothing }
 
enum  ignore_type0 { mysqlpp::ignore }
 

Functions

SQLQueryParms & mysqlpp::operator<< (escape_type2 p, SQLTypeAdapter &in)
 Inserts a SQLTypeAdapter into a stream, escaping special SQL characters. More...
 
ostream & mysqlpp::operator<< (escape_type1 o, const SQLTypeAdapter &in)
 Inserts anything that can be converted to SQLTypeAdapter into a stream, escaping special SQL characters as needed.
 

Detailed Description

Declares the Query stream manipulators and operators.

These manipulators let you automatically quote elements or escape characters that are special in SQL when inserting them into a Query stream. They make it easier to build syntactically-correct SQL queries.

This file also includes special operator<< definitions for a few key MySQL++ data types, since we know when to do automatic quoting and escaping for these types. This only works with Query streams, not regular std::ostreams, since we're only concerned with making correct SQL, not with presentation matters.

test/test_manip.cpp exercises the mechanisms defined here.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1GuessConnectionOption-members.html0000755000372000001440000001024512502417164032114 0ustar robertousers MySQL++ Reference Manual
mysqlpp::GuessConnectionOption Member List

This is the complete list of members for mysqlpp::GuessConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/mystring_8h.html0000755000372000001440000001027512502417162023325 0ustar robertousers MySQL++ Reference Manual
mystring.h File Reference

Declares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server. More...

#include "common.h"
#include "datetime.h"
#include "exceptions.h"
#include "null.h"
#include "sql_buffer.h"
#include <string>
#include <sstream>
#include <limits>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Classes

class  mysqlpp::String
 A std::string work-alike that can convert itself from SQL text data formats to C++ data types. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &o, const String &in)
 Stream insertion operator for String objects. More...
 

Detailed Description

Declares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MaxPacketInsertPolicy-members.html0000755000372000001440000000735612502417164032050 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MaxPacketInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/field_8h_source.html0000755000372000001440000007476312502417162024130 0ustar robertousers MySQL++ Reference Manual
field.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_FIELD_H)
28 #define MYSQLPP_FIELD_H
29 
30 #include "common.h"
31 #include "type_info.h"
32 
33 #include <vector>
34 
35 namespace mysqlpp {
36 
45 
46 class Field
47 {
48 public:
50  Field() :
51  length_(0),
52  max_length_(0),
53  flags_(0)
54  {
55  }
56 
58  Field(const MYSQL_FIELD* pf) :
59  name_(pf->name),
60  table_(pf->table),
61 #if MYSQL_VERSION_ID > 40000 // only in 4.0 +
62  db_(pf->db),
63 #endif
64  type_(pf->type, (pf->flags & UNSIGNED_FLAG) != 0,
65  (pf->flags & NOT_NULL_FLAG) == 0),
66  length_(pf->length),
67  max_length_(pf->max_length),
68  flags_(pf->flags)
69  {
70  }
71 
73  Field(const Field& other) :
74  name_(other.name_),
75  table_(other.table_),
76  db_(other.db_),
77  type_(other.type_),
78  length_(other.length_),
79  max_length_(other.max_length_),
80  flags_(other.flags_)
81  {
82  }
83 
85  bool auto_increment() const { return flags_ & AUTO_INCREMENT_FLAG; }
86 
88  bool binary_type() const { return flags_ & BINARY_FLAG; }
89 
91  bool blob_type() const { return flags_ & BLOB_FLAG; }
92 
94  const char* db() const { return db_.c_str(); }
95 
97  bool enumeration() const { return flags_ & ENUM_FLAG; }
98 
103  size_t length() const { return length_; }
104 
107  size_t max_length() const { return max_length_; }
108 
110  bool multiple_key() const { return flags_ & MULTIPLE_KEY_FLAG; }
111 
113  const char* name() const { return name_.c_str(); }
114 
115 #if defined(NO_DEFAULT_VALUE_FLAG)
116  bool no_default() const { return flags_ & NO_DEFAULT_VALUE_FLAG; }
118 #endif
119 
121  bool primary_key() const { return flags_ & PRI_KEY_FLAG; }
122 
124  bool set_type() const { return flags_ & SET_FLAG; }
125 
127  const char* table() const { return table_.c_str(); }
128 
130  bool timestamp() const { return flags_ & TIMESTAMP_FLAG; }
131 
133  const mysql_type_info& type() const { return type_; }
134 
136  bool unique_key() const { return flags_ & UNIQUE_KEY_FLAG; }
137 
139  bool zerofill() const { return flags_ & ZEROFILL_FLAG; }
140 
141 private:
142  std::string name_;
143  std::string table_;
144  std::string db_;
145  mysql_type_info type_;
146  size_t length_;
147  size_t max_length_;
148  unsigned int flags_;
149 };
150 
151 
153 typedef std::vector<Field> Fields;
154 
155 } // end namespace mysqlpp
156 
157 #endif // !defined(MYSQLPP_FIELD_H)
const char * table() const
Return the name of the table the field comes from.
Definition: field.h:127
bool zerofill() const
Returns true if field has the zerofill attribute.
Definition: field.h:139
bool binary_type() const
Returns true if field is of some binary type.
Definition: field.h:88
Field()
Create empty object.
Definition: field.h:50
bool blob_type() const
Returns true if field is of some BLOB type.
Definition: field.h:91
Class to hold information about a SQL field.
Definition: field.h:46
bool set_type() const
Returns true if field is of some &#39;set&#39; type.
Definition: field.h:124
const mysql_type_info & type() const
Return information about the field&#39;s type.
Definition: field.h:133
SQL field type information.
Definition: type_info.h:148
bool unique_key() const
Returns true if field is part of a unique key.
Definition: field.h:136
bool timestamp() const
Returns true if field&#39;s type is timestamp.
Definition: field.h:130
size_t max_length() const
Return the maximum number of bytes stored in this field in any of the rows in the result set we were ...
Definition: field.h:107
const char * db() const
Return the name of the database the field comes from.
Definition: field.h:94
Declares classes that provide an interface between the SQL and C++ type systems.
Field(const Field &other)
Create object as a copy of another Field.
Definition: field.h:73
const char * name() const
Return the field&#39;s name.
Definition: field.h:113
bool primary_key() const
Returns true if field is part of a primary key.
Definition: field.h:121
This file includes top-level definitions for use both internal to the library, and outside it...
bool multiple_key() const
Returns true if field is part of a key.
Definition: field.h:110
bool enumeration() const
Returns true if field is of an enumerated value type.
Definition: field.h:97
Field(const MYSQL_FIELD *pf)
Create object from C API field structure.
Definition: field.h:58
size_t length() const
Return the creation size of the field.
Definition: field.h:103
bool auto_increment() const
Returns true if field auto-increments.
Definition: field.h:85
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBSelectionFailed.html0000755000372000001440000003500312502417163027423 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DBSelectionFailed Class Reference

Exception thrown when the program tries to select a new database and the database server refuses for some reason. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::DBSelectionFailed:
Collaboration diagram for mysqlpp::DBSelectionFailed:

Public Member Functions

 DBSelectionFailed (const char *w="", int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what(), if any. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when the program tries to select a new database and the database server refuses for some reason.

Constructor & Destructor Documentation

mysqlpp::DBSelectionFailed::DBSelectionFailed ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

int mysqlpp::DBSelectionFailed::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what(), if any.

If the error number is 0, it means that the error message doesn't come from the underlying database API, but rather from MySQL++ itself. This happens when an error condition is detected up at this higher level instead of letting the underlying database API do it.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldTypes__inherit__graph.png0000644000372000001440000001023412502417165031252 0ustar robertousers‰PNG  IHDR˜€x%7€bKGDÿÿÿ ½§“QIDATxœíkPWÇO¸„H@@BË ¢ˆe¬í âe´ bé@ÅZ@¤-ÞŠS[-ÔZ¥`u:â‚På¢Ô€ ƒT‚ŽXÀ{¢hUR*—HB11$»ï‡í›Ù&›„KBÂéþ>œ=ûœç<ÿì9g÷Éd)(Š’©‘¾ Ѥ@ ¤@ &ê777‹ÅâÉq…D 4Í××WM BŠÅbggg+++­zE26þþûï®®.õm4 ˜>}º–\"£¹×'×HH …„RHH …„„Éòùóç e’;5X´ Éår †.,f¿†€N„D¤¿¿_– ³_C@ B^ºtÉÛÛ›F£¹ºº°g3gÎÈd²ÌÌLKKKÿ––ì,ü¬"/‡††îÚµ «¶±±©®®H$’ääd{{{&“™œœ,‘H¤Rijjª‹‹‹Ý¦M›ú ~òÉ' ÃÙÙ9))I,cÕ××»¸¸Ü¸qCa }}}oÞ¼Q¨¤P(žžžvvvéééEEEsæÌ±²²Ú¿? 11166k)ÌÍÍïÝ»GA²²²<==---ýüü´¼Ä jihhèííUÓ@ ˜™™åääðx¼S§N™˜˜‚gÏžÉ-=z”ÉdVTTôôôTWW;::b‡óòò°6òò¹sç\\\AQ´ªªÊÑÑQ"‘ (úý÷߯[·îÅ‹l6{ñâÅ_}õUff¦——›Íæp8>>>III(ŠâûEQ4**jÕªUíííl6{áÂ…iiiXƒ5kÖüúë¯@Þ²µµ5&&ÆÎή§§Ga€€ˆˆˆ¡¡¡üü|ÀG}444”›› xõêÕµk×lmm1'‹‹‹½¼¼!ŒInn.>ÎηUÑÛÛÛÐР¾ÍD…055=räŸÏGäõë×2™ ‡ÇO?ý$oúôi5® …B:ÞÚÚŠ¢èÇœ’’‚ÕÏŸ?ŸÇãa庺ºE‹Í›7¯¢¢«ikkÃÊø~GFFŒ>|ˆ}¬¨¨pwwǰÙl¬R$9sfÉ’%o¿ývnnîëׯ ÀÝ»w1ƒ ågÏžI¥Ò™3gÖ××£(œžž®*&^^^Êq0 !Q½qãFxx8N¸|ù2úï€N›6íþýûòÆØÌ£ÆZddäž={Núô)VI£Ñ𳈕•Fãp8 çâûíììˆD"ì#›Í¦ÑhXƒ‘‘Eëêê˜LfLLLKK 6‚…[MyÛ¶mÛ·oïëë£R©ªbB- 9Ñ5R$!rþüùØØØ|ƒÙ³g?xð@þñÑ£Gê FDD°X¬‹/¾óÎ;sçÎÅ* †<‚|>¿¹¹ÙÑѱ££;zÿþýï¾ûNÁ޽½½±±1—ËÅ>¶··;99aeSSS€Ý‚ nÞ¼ÙÔÔ„-±ãcýúõ.\øù矗.]ŠM˜„1qrrSÆŒz5^‘"‘ˆF£±X¬¾¾¾“'OÒh4‘H„}Ѱ™êÇd2™•••<¯¦¦ÆÕÕ¨^#QÅö8sçÎÅOD‰‰‰ááá<ðññÙ±cGjjª··7‡Ãáp8þþþ›7oFÿEÊgÈÈÈÈU«Vq¹\‡ãååõõ×_+_'!!Á`ÄÆÆÞ¾}[y€@Ó)•J™L¦½½}aa¡š˜:tƒ[#Q-++sss£R©óçϯªªBQT"‘,]ºÔÂÂgff¦»»;N÷óóknnÆ\ÇAa<ñññøÍÈÐÐЧŸ~jccckk/ ÅbqRR’£££••UDDŸÏWèEÑèèh[[[‡/¾øBþ SŸÏ?zô¨››[GG‡b€4 ‰¢è–-[¦M›644¤&&###˜3gŽ………ŸŸ_ii©Á 2™ ÛŽ•½{÷FFFŽé”QJˆ1!5ç#ÿ;mÓ ‹{zz Ξ=«#¯F ùÐ|B´´´¼û}öÙŠ+ôë yENˆåË—+ìÒG‰»»;ªÕßøÿ‡®Hõ©E7nÜhaa1™.iR×¹ kkë/¿üRÕÑžžž’’’¶¶6Ý9 S HH]ç. Fzzºª£"‘àââ¢;tŠ ‰Ï]f°¹±ªªjÞ¼yL&311qxxåFíã§V …RRRâéé9cÆŒŒŒ 0ŠÌ ÞažDϨ¿;™ÌûHü­aVkøôéÓææfww÷´´4”(7¢Ñ> <<œÏççååúûû5fNð¦°ç´ÉÉÉ\.W¡P`Š=À‡’0« »(++Ãö~ʹöXhäy ™kÝÝÝ©©©ÎÎÎ!!!W®\‘ÉdZ !SXH”(«€5'4q‡'‚a ©u²²²þuill1>kþþþååå·cǬ ˜>]ÿÿl¹ÖÖÖ3fÌP¨ŒŸ5333333€H$([Ö#c^#W®\YSSZZZZ[[±víÚ‚‚ÀñãÇ322°–"‘((({ÃõÍ›7ccc###kkk(Š^¸p!&&&88xûöí÷îÝÃÏ„ÝÝÝ+W®ljjŠŽŽ ;~ü¸D"!¬”7ÆŸ¨Æ|©Tš““–““#•JåÍ9wî\tttppðŽ;?~¬Æ&á¨UyKØ©r|ÆÊx6;wîÜÉÎÎŽÏËËûí·ßN:µuëÖ¢¢¢¡¡¡åË—755Éd2@SS“ƒƒƒ»»»X,NKK ÅB“‘‘!‹«««Ïœ9WTT´iӦÇ+wTYYyøðáC‡µ´´”––ªª´¶¶NJJÂŽâ˱X,Â9&‡Åbñx¼ÜÜÜ~øáîÝ»………òCåååeeeñññEEEÑÑÑê_ L8jUÞ*wJŸ±Š2!7lØ`nnˆŒŒ477 ¼~ýzáÂ…&&&l6põêÕÀÀ@ …"‘HP‰DT*5((èÒ¥Kfffååå[¶l °µµõññ‰‹‹SîhëÖ­ÎÎΞžžqqquuuª*étúÚµk±£ø2 ...Gkk+Þ~MMÍÎ;™L¦««kBBþèÅ‹ñ G­Ê[åN ã3FMƵFš››LLLÊ##£€€€ëׯ»ººÞ¹sg÷îÝKKËcÇŽ±X¬ÂÂBÈÈH‡ß鹺¼ÌÙùŸwº¸¸ôõõ©©TEqq±““¾¦»»[^~ùòåºuëäétº¼Ü××§Ñ=9„£Vå­r§„ñQ?.e´¿ÙY±bÅÁƒgÏžýÖ[oÙÙÙ†‡‡IKK“J¥õõõ{÷î­¬¬d0ííínnnØYʦººº°vvvÚÚÚª©VVVÇŽÔø÷¬Ïœ9S£{êG­Ê[åN ãcii9¦±hÿ€···L&;}ú46÷(Jrròõë×…B¡D"111133[³fMvvvSSÓÀÀ@kkëÉ“'•Meeeuww?yò$??ÿ½÷ÞSU) «««±£ø²Fòòòz{{¹\îž={*++å‡>øà¼{ØVnL£Vå­r§„ñåähÿŠ422Z¶lÙ•+W–-[†ÕP©Ô”””ÜÜÜ¿þúËÑÑ155•J¥nذA&“8qbpp[-<¨`jõêÕ»wï‹Å«V­ŠŠŠÂ¦&…JÀààà‘#G°¥_ÖHlllVVÖæÍ›)ʲeË^½z… •H$ÙÙÙýýýnnnû÷ïß¶mÛ˜FM8ÂN ã3ÿñ(æ#SSS'žÆÊÏÏùòå¾}ûFŠÂ#Â',Ú}î£uF­So¿ùæ¼vZžZGFFx<^MMÍû￯]ˆŒ!ŒZËB>~ü8!!aÍš5‹-šˆ:2šJC€pÔ“ì­N¦V]£ó©•D_BB)$$BB‚âfÇÕÕÕÆÆF‘Œ>ŸÏårUþ®u×®]“îÉx Å„ÿmuÿÈ5H!!H!!á†Êb#x™>IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CommandLineBase__inherit__graph.png0000644000372000001440000001463512502417165032174 0ustar robertousers‰PNG  IHDR4€ ÏbKGDÿÿÿ ½§“RIDATxœíy\GÿÇgs$9T´òØR}Zê‰(¢T‘S‘*È! >–Ÿ ^-ZÔŠœ*BÅPÏÇVQëgÕ§üê£?TÄ b8¹ö÷Çö•'’%„ØM˜÷_Ãììw>³3Ÿì,™Ù (ŠB>(D €@ ø@sB $š!)МI¡- g¼zõ*<<¼½½h! FWW7%%eĈD é 3çíÛ·Ïž=;kÖ,¢…@4˜³gÏúûûCsö qqqDK€h0¿ýöÑ”>sB $š!)МIæ„@H 4gyûö­£££644ìܹÓÇÇgþüù¡¡¡×¯_Wcp5"m¸££ãÛ·oqõG.\¸mÛ6.—«6¹š4'Áðx¼   ¸¸¸ôôôÙ³gïØ±ãÞ½{Dëêúúú¾¾¾*œ˜œœ\TTTXX˜˜˜X__Ÿ””¤vmš‹F~•¢M9rd„ 111ØŸ#GŽllläp8'N$VX|pðàÁ={ö`%ù|¾‹‹ËÓ§O7oÞ tvvöóó»páEÑ’’’€€€ „‡‡?|øPvò†ÍåÊÊÊüýýÝÝÝ<( q3ÁÇ?Ùôµk×<<éݸq#%%%$$$##£¹¹¹¨¨ˆÃáçææúûû§§§+yñ;ÅÖÔÔdddìÝ»÷ÁƒGŽÁJ¶··óùü¶¶¶×¯_geeÍ;€«·ƒDÖ´ÖœÞÞÞL&ÓÙÙàççÇd2]\\ÍÍÍŸ~ú)F+//”––:;;#" Qåóù ÃÅÅåÌ™3:::EEE¡¡¡Ó§O711™Z[[±³ÜÜÜôõõçÍ›àñx§OŸ–m¾ò×NqçÏŸŒŒd³ÙÖÖÖ!!!wïÞÅJ-X°ÀÕÕuÅŠNNN\…¸¤ ² µÏœL&@£Ñ:¥ eúôé×®]³¶¶¾ÿ~tt4ÀÀÀ`ÿþý………GŽ3fŒŸŸßäÉ“kjjlmm¥1­­­å+²´´Ä#FŒ¨¯¯W)±±ñË—/Ç'Í|òäÉ?þxàÀ'‘HÌÍͱ| i(­ë¶F{óæMbb"ŸÏ=z´ìY,K¶d}}}·ÍÇ¥S@mm­ìì}РAX"//ÏÂÂÐÑÑQXXuâÄ \…¸¤ ² µæT̬Y³vîÜieeõÙgŸ :ÐÑÑ!‘HâããE"Ñ¥K—bccOž<Éb±ž?nccƒUUU%êÍ›7ب}ýúµ‰‰‰‚L\¦NÊáp¶mÛ&½^¼xQ$éèèS(”ššš‘#Gª««±AßK:::âããããã„Báùó祇:ÝÇ Ömóq‘Ÿ ›Í622ÂUˆÛA "kôÎI¡Pf̘ñ믿Θ1Ëa0ß~ûmFFF]]¹¹y\\ƒÁðöö‹Å)))\.{¤Ù¹sg§PsæÌ‰ŽŽnoowrrZ¶l6óì” àr¹‰‰‰Ø£¦lÚÈÈèСCiiiqqq|>Ĉ»víš2e <22299944”N§Ïž= ÕKôõõÃÂÂvîÜ©§§ççççää´qãÆ’’ù’nnnB¡0--­¡¡ÁÆÆfË–-kÖ¬Á­]»V¶d^^žâJ“““W¯^ ÈŒ3BBB:ÅAdÔ¨Qñññ‚t¥P¾ƒDÖÍzû^AA··÷•+Wz*++«¶¶vóæÍÊŸòöíÛåË—Kkïô§‚L©pttäp8^^^D é†8­555çÏŸÿú믉ÖtÉ@4çãÇCBBæÏŸ?~üøÞÄ4hÐÂ… •É„@T`àNk!8­…@ ½š!)МIæ„@HŠF.B8{ö,Ñ£¹50À_(¯<­­@OPà'3¹Ñ0sZXXP©Ô½{÷-¤ÿAtumôõ§Ð鬺º#bñ‡ÞÄ6,\"éhm½×ÖöEµg¤’P©Tl-.ÉѰ¯R "‘äÔ©{÷þúòå{Ÿ>üüù¨^ÆŒ-_pøðõÔÔË>ðQô¯ÍŸyyÁ³gÛõ2ò»w¼I“¶ …bN¥PåË¿ s477Rƒnˆš€æ$#<?3ójVÖµ––±P©;;³ 6¨¥ŠØØÂŸ~ºù@§S%ÔÍmBd¤³­-[-U@z 4'¹hjjMM½røðu@$K>>ˆdf¸º~®–Šª«¹“'ïèTN‰$³gÛEGÏ?žì¿ó£õ@s’…¦¦Öììëéé¿utål (Š¥¥qYY,•ª¶ÿ±®_¢¸øwéÍS •J‘H$sç~=ï³Ï,ÕU¤§@s’…E‹üþûKl+…‚ìÝëãí=I5VU½Ÿ>ý;±¿FAh4ÊÓ§ ††ýK_k€_u‘…ØØ¯uu©4NP(›m¸dÉê­ÑÊŠåîþNíª@BÂRèLæ$ S¦Øœ<¡£ÃÀ¸FEÍSà"•‰Šš'‘tžBÙ¿ß××wŠÚk„(4'‰°·^T´†Á ÉúAÀ!ú^^}òx++–›Ûn×vïöì£!ÊÍI.~ÿ½ª½] ëOAÖ­sê»éetô<Ùÿ; Âfž>ý°­MÐG5B”š“D$%•nÙR²{·WIÉZ]ݿ淆†zË—;ô]¥VV¬ùóí±93‚ ›7/,*ZûìY‡Gò‡øoåƒôМd!)©t÷îíÞí¹|¹ƒ½ýðÜÜ Ì0«WÏÔÓcôiÕë×ω$€M›„…9Z[-* ¯«kööNçr¡?‰…€.š›¯Ïͽ)›yëÖ3w÷$.·µlÛv*5õ²lÎëד'ï˜;÷‡ÆÆ–~‘~ÏI<²÷L¢µ|ÄÛ·MK—¦èëër8aC†hÏÏh pZK0¤u&À¸°0¼µµÃË+µ¡¡…h9xç$2;SJu5×Ó3•JE~þ9ÜÔÔh9hNÂÐgbÔÕ5{y¥ŠÅ’ÂÂ5¦¦ƒ‰–3P€ÓZbÐ gØlƒŸ^C§S=Gûœ‰ah¨Ëá„ÙÚšzz¦>yRC´-š³oÑVgb0™ŒcÇVòÉ0/¯ÔÇ¡?Õ 4g¢ÝÎÄ`299AcÇš{y¥>~\M´­š³¯ÎÄÐÓcääŽg±dIÊ¿ÿýŠh9Ú4gŸ0pœ‰¡§Ç8v,hÒ¤Q>>éBªhNõ3М‰Á`в²VN™bãë›vÿþK¢åhМjf`:ƒN§ff~óÕW£—-K¿¿Šh94§:ÈÎÄ Ó©Ó¦ñöN»yóÑr4hNµ‰ùÓÅå³+2oÜxJ´ šS=@gÊB¥Rð›?ß> ëúõ ¢åh*Мj:S*•òã¾_ýy@@ÖµkÿG´š³·@gv•JÙ·Ïgñâ +Vd]¼øˆh9š4g¯€ÎT æO?¿ÉAAG.\ø“h94§ê@g*‚ »vy,_î°zõÑ_~ù_¢åhМ*©<‚ìܹÄßÿ«œý«œh94§*@göAvìp˜’S\|Ÿh9šüÝâ©‚lßîÎd2"#£(êáñ%ÑŠÈ4gÏ€Îì%›6¹R(”ü#_,Fáïó*š³@gª…çS(HTT>Š¢ÞÞ“ˆ–C^ 9•:SlØà‚ *êŸ/ü曩DË!)МJ©v¢£]tuéÿó?E(Š®\9h9dš³{ 3ûˆðp'A6o.–H$3ˆ–C: 9»:³OY³f6…BÙºõ¤D‚®^=“h9äšSЙý@hè, ‰?Åç #"æ-‡D|ôûœ—/_~ö ný‹Gx……Õsæ :Õ„h-8Œ=ÚÑѱ÷qªªª.\¸Ðû8½¤¬¬¡´´~éRóqãèïóêêêúøø0Œÿf¡2ÐhðFú_„®§7–h]B£ÑPuàããCtSþBOïat_N{)**úȲÇD"‡Ãñòò"JDI ¼½½ÕJ,{zz¨%De‰D²9pm-BR 9!’Í hN„¤ËœÏž=C„hª£éú‰‚<×M%}'ž\æ„@´ŒÊÊJ‹¥Ú¹ÐœH"‘HT;·ÇæDäðáÃvvvC‡MHHÈÍÍ5jÔàÁƒ·lÙˆˆˆ ÄJ¶´´0™Ì‡Μ9coo¯««kmm››‹‰NNN¶³³300ppp¸råŠìÜ›*œ:uê“O>a³Ù¸™àãy…lZ(ÆÄĘšš²Ù옘¡Pxúôi ‹¦¦&@~~þ˜1cZ[[gÏž0a“É433KHHP¦¥]‰‘"_;îuP ŸThP¿ã^äž*Á=¥«ñ#E~ M™20lØ0U.ºìЇÃQ¼ àëëËãñ²²²^^^</##ðþýû«W¯š˜˜…BEóòòÆ'‘HZZZtttÒÓÓkjj²³³i4ZKKKFF›Í...®®®>w¥%àéÓ§˜$,áìì\QQqûöm[[ÛøøxÜLE¹\nff&&O6½{÷nW¯^•——ÿýïß´iŠ¢+V¬¨­­555½s犢<Á`¬ZµêÍ›7yyy€ºººn[ª@aWµã^úÀáp:õÊxzzzzzv[LSú·R”tÕYòãGz î@’Ý^áNîSÅœ<@QT tJ?}úT$ 6ìÒ¥K(Š.X° !!EÑÆÆF:ž˜˜ØÔÔ$‘Hš››Åbñ¸qãŽ=* ›““#ßIåååØQ‡ckk‹›©@êØ±ckjj°ôŋǢhSS“¥¥¥½½=ÖÁ(Švtt<~ü¸¥¥E,_½z“ÑmK(ìªvÜë øjw!æÔˆ~Ç­T%]u–üø‘ž‚;zcNUž9 t:½S@¥R—,YR\\üþýûÒÒÒeË–Œ¯\¹rûömKKË™3g^¿~B¡TVVŽ?^ÓÞÞ^¾¢Ñ£Gc‰±cǾyóFA&.UUUfff‚ 2wîÜ/^ŒŒŒ‚ƒƒ=z†c0..._|ñÅÑ£G•li·bäkǽ ô“ èwÜJUPÒUgÉ) ’j¨pxzz–””L›6 ›*ðù|‰DòóÏ?766.\¸°±±ÑÂÂâ?þžõèÎëú±O@EE…¹¹¹‚L\X,vÄ>ðnß¾ xýúurròœ9s¢££±b|>ßËË+&&æÁƒ©©©=j¬1òµã^‡UGfHÒ︕ª ¤«Î’?²§¨ŸhnnV²±¸ »ª÷:(ЯY¤ßq+UA î)¸ãGŠ‚ÔÒÒ¢Ê5U<ëÅKo]¥CCCõôôx<žô,‡cccÃ`0ÆŽ{êÔ)EÁöíÛG¥¯¯ïààpüøq ÷ì‘••5räH‹µnÝ:>Ÿ›);éï”æñx+W®466611 nmm=xðàçŸ.P-))133kllDQtß¾}C† >|xjjª¯¯/›Íî¶¥ vU;îuP _„èb›˜vÓÕ¾-Øãj@ñ× jÛÿ†­ÅÁeÙ²eNNNÏŸ?///ÿôÓO±õþ@á¥n (ضtéÒ¦¦¦ÌÌL@CCþ}ûd·aë6Ñ×¾`È~O-íb“Z_@žE¸û¶`«€¼ûúÜ؊ᦦ&Ü£€J¥þùçŸØŸÅÅÅØ†  pR·l»råŠlÉ1cÆÈoB•èªNqÐ.6©õä1'.°ÇU@Þ}ý1­566655ýÏþ#›yïÞ½‰'¶µµ½{÷N,ÛØØ`ù¶¶¶Ò AÝîØRP@Áþì“RZòõë×ÝnbÂ¥SÐÅ&µìqµÐOÏœ‹-Ú»w/*ó¥y^^žP(d2™¦¦¦T*µ²²Ëþü¹……EïkT°§Ó.J++«n71á"¿w“ÚÀöxïé'sîÚµëêÕ«þþþ7oÞ,//ß¶m[RRÒ®]»t:ÝÛÛ;""âÅ‹þùçæÍ›±­º½Dù`¡¡¡²[‡¶nÝ*=T___+C·•Êoë}CHNWûÝ`«ų^5RUUµtéRsssƒI“&>}Zz¨±±ÑßßßÄÄÄÌÌlýúõ؆ ÐÝ¥n (¹L$ýðö¶¶ƒ rppÀ>üP¼•qž@äkÄÝ&Öç™SÁ~7Øã=BÞ}pm­F×Öjpm-¢1@sB $š!)МIæ„@H 4'BR 9!’Òy?ç¥K—¸\.!R Êsÿþ}5F«¬¬sB $š!)МIæ„@H 4'BRþÉöö²÷ôÆWIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CompressOption.html0000755000372000001440000001625112502417163027153 0ustar robertousers MySQL++ Reference Manual
mysqlpp::CompressOption Class Reference

Enable data compression on the connection. More...

#include <options.h>

Inheritance diagram for mysqlpp::CompressOption:
Collaboration diagram for mysqlpp::CompressOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Enable data compression on the connection.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ResultBase-members.html0000755000372000001440000002453612502417164027676 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ResultBase Member List

This is the complete list of members for mysqlpp::ResultBase, including all inherited members.

copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() const mysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() const mysqlpp::OptionalExceptionsinline
fetch_field() const mysqlpp::ResultBaseinline
fetch_field(Fields::size_type i) const mysqlpp::ResultBaseinline
field(unsigned int i) const mysqlpp::ResultBaseinline
field_name(int i) const mysqlpp::ResultBaseinline
field_names() const mysqlpp::ResultBaseinline
field_num(const std::string &) const mysqlpp::ResultBase
field_type(int i) const mysqlpp::ResultBaseinline
field_types() const mysqlpp::ResultBaseinline
fields() const mysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
names_mysqlpp::ResultBaseprotected
num_fields() const mysqlpp::ResultBaseinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
table() const mysqlpp::ResultBaseinline
throw_exceptions() const mysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_41.png0000644000372000001440000000310012502417165024006 0ustar robertousers‰PNG  IHDR}%à?qèbKGDÿÿÿ ½§“õIDAThí™oHS_ÇŸ«.›Ì©¥"M´é¤MÇð] ìAVB`ÑM{¡EEh:c0{%¡MÅ0ÃæŸ¸˜`tHP7Âi‹œ]úGºY릦×Ýß‹ãvw¶t7üÝÏ«ç>;ç9ÏùîÜçîÁ†‘ˆ%tÿSDÝ…AÔ]DÝ…!†óÜÓÓÓÜÜ,H*ëFsíÚ5¶ãœgJJJž={¦×ë#›ØzæãÇAptæ®wÐëõv»=RY­ìv{ii)Ç)ÖwauQwau†Q÷ÉÉI ÃV+EQuuuJ¥R*•æää\¼xq~~>b£/Ç¿¨ûêRSSãt:{{{?|øÐÚÚŠãx}}=$™œœÜ>11±¡¡aÍÓb~Ç`0 FPÜnwpba“˜˜ˆŽÏˆ‘‘‘ŒŒŒU%wïÞ (ÌõŽaX[[›F£IIIillìèèP*• f³jkk«««QKŠ¢âââÆÆÆ ¿¿_§Ómܸ1++«££ü~ÿõë×5M||¼^¯w8ìw½ò8ŽoÛ¶-55µ¶¶öׯ_¼Nø½>°m¹\~ãÆ ÇƒwíÚõþý{رc¤¥¥Ú edd´··úbÖÙÙ©Ñh6mÚtéÒ%$_SSSnn®\.ß»wïýû÷Ã,Jœÿa…ëÊÊÊ|>_KK ”””ø|>ôazzzdddóæÍ‹‹‹ Ãܾ};//Ïï÷SÛÔÔôåË—ÖÖÖ˜˜Š¢š››SSSûúú>þ<00žž•ˆŒÂ‰‰ ‚ T*•Åbáu2 óíÛ7›Í†ÒcÛ|øÐãñ [,–Hï«n·;´}úôi©TêóùØ•.;;{Æ jµÇqT7­V«R©”Édz½•KN}oiiÉÌÌLNN®©©™››ãuòÖkdÓ4m±Xt:T*ݺukCCj¿¸¸XPP “ÉBô žÚÒÒÒÕ«W³³³8€ãxJJJh­Vs_] &“©¼¼üºpÎÔ¼G숻yéïï<öôôäçç‡î²ÊûjæççI’lkk;yòäZÄ—ËUQQát:ggg ‚0›Í'Nœ#ϽÇßóüùóÇŸ9sfÏž=G.—Ÿ:uj%Έa4ggg‹‹‹§¦¦²²²ªªªÂK†çžÄû¦UÝ7qt^ÿßÅþMDÝ…AÔ]DÝ…ç≭ÐM î9R$2ˆõ]DÝ…AÔ]DÝ…á?&ml-g¡"-IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SslOption-members.html0000755000372000001440000001030612502417164027545 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SslOption Member List

This is the complete list of members for mysqlpp::SslOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
SslOption(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)mysqlpp::SslOptioninline
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_8.png0000644000372000001440000000315112502417165023737 0ustar robertousers‰PNG  IHDR%"#÷)bKGDÿÿÿ ½§“IDAThí›oHS_ÇÏ6µµü7´kꜙŽ& Bˆ4A¡"”JɤÀ$ʽ(Ä ’ðEô²(Í¿•:Ì¥£fögÄÍ TÂe:v)eŽëÆÔé=½8p·í6§-õò;ŸWç>Ï}Î}ÎùÞsγI „#¤fu`ÁDLd`ÁDFÿbrròüùóóóó• Æ¹\~çεZÍY~Œ$ÉþþþÂÂÂuO #Lww÷éÓ§ÿ(¢««kSÂøB"‘xXð&2°`" &2°`"cÓ öåËï“vÍHxìܹóÌ™3ÓÓÓ‚^¥RYTTÄy}þ£lýaÓ pÞ¾}KÓ´Åbimme&##Ãn·{x­VëÀÀ€Åb©ªªò3YSS³N#A@–õ‡¢¨æ (Š»dYöÀµµµ‚Þׯ_GDDø¸n:;;ù–µ¬0‰DÒÒÒ’ššº}ûöúúúŽŽŽ¤¤¤ˆˆˆk×®ôz}YYºÓáp(Š?úúút:\.ßµkWGG€eÙÛ·o§¦¦†……eff ñ·´ÛÆÝ»w¡×ëà÷­ÉÇ6%‘H*++M&“ W&“±b êppP­V·µµ¡g\¼xݼ°° T*ÑÍn·»ºº:&&† ˆêêj·ÛÍ7›Í«œû5­0@qq1Ã0MMM€¢¢"†a333¯^½ŠŠŠr»Ý¤¥¥±,ëp8¶lÙrïÞ=𦛛›ƒ‚‚GCCA===V«Õd2©T*·ÂP#//o||œ$É”””ëׯ !„v»ýþýû(=~ü¾P „ïß¿ŒŒä¼###sss Ã|þü9;;»®®nÅ@”áC‡^¼x122‚²}üø±Z­fYBh4ãââРܼyóøñã“““ccc—/_æ‡;ŽÕ®°5 öáÃáââ¢G›¢¨¥¥¥;v B>\__!´ÙlÁÁÁ·nÝšeYvnnnyy9--­­­ë¶½½Ý[°±±1.·””A£ïT} Æ'<<œ»yEÁP\¶N§sÛ¶mÃÃÓ'O^¹rEiµZš¦Q{`` ==Ýc+Nu¶D@XX 88Ø£ ÉdÇŽëéé™™™yþüyII @©T ‘$©R©²²²Þ¼y#•J¿~ýšžžÎõ©Ó鼤ÑhPC«ÕZ,F?¡(*99™‰&ÂétÖÔÔäääx )¨Õjù^…B‘ŸŸo0œNg___ii)²OLLÄÆÆ¢j377÷Û·o‚áþóOªÄÂÂÂ'Ožtuuíß¿mt.—‹eÙîîn›ÍVVVvôèQ›Í?::ÊE}úôÉ»+ô>ÆÇÇãââ|ýBx÷îÝ#GŽx» Źs禦¦~þüéO ÷‚r †§OŸîÙ³‡{¥¢££¹wbvv–$É?…¯b þo‰‚[×^ZZ""&&¦µµ¹\.—\.7 ÓÓÓr¹Üårݸqƒ ˆÞÞ^š¦Ÿ={&x†Ï0®:ùòe~~¾J¥²Ûí^š¦¿ÿ~éÒ¥„„„ååeßü:–ßFµ†F£áïóz½þĉ£££ûöí»páªÊ`¨3Ì·`ÂÊÊÊ­[·2 Ãï<999$$D«ÕFáââb]]]RRRhhhffæÃ‡½kjjJLLŒŽŽ®ªªr¹\‚F“È5JJJ~üøÁ‡T*Õét$I®ø§gAËËËCCCù¥Ã0¥¥¥J¥2**ª¼¼Üétn€`þpõêÕS§N­*Äc$‚ ì§´Í·`¿‡ý%óóóV«µ¥¥åÑ£Gïø¢ãÝ»w{÷î={ölvvößô^QQáñÿ¹m†¯¦0|@ >‡a6 ,˜ÈÀ‚‰ ,˜È(ë×?Œ¿ð+³Ù,“É6:#ÌÈd2³ÙÌ×HñÿÃD>ÃDLd`ÁDLdürçëÎ+B?IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption.html0000755000372000001440000002535512502417163030562 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadDefaultGroupOption Class Reference

Override use of my.cnf. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadDefaultGroupOption:
Collaboration diagram for mysqlpp::ReadDefaultGroupOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Override use of my.cnf.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/files.html0000755000372000001440000003615312502417165022162 0ustar robertousers MySQL++ Reference Manual
File List
Here is a list of all documented files with brief descriptions:
o*autoflag.hDefines a template for setting a flag within a given variable scope, and resetting it when exiting that scope
o*beemutex.hMUTually EXclusive lock class
o*cmdline.h
o*common.hThis file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h
o*comparable.hDeclares the Comparable<T> mixin
o*connection.hDeclares the Connection class
o*cpool.hDeclares the ConnectionPool class
o*datetime.hDeclares classes to add SQL-compatible date and time types to C++'s type system
o*dbdriver.hDeclares the DBDriver class
o*exceptions.hDeclares the MySQL++-specific exception classes
o*field.hDeclares the Field and Fields classes
o*field_names.hDeclares a class to hold a list of field names
o*field_types.hDeclares a class to hold a list of SQL field type info
o*insertpolicy.hDeclares the InsertPolicy classes
o*manip.hDeclares the Query stream manipulators and operators
o*myset.hDeclares templates for generating custom containers used elsewhere in the library
o*mysql++.hThe main MySQL++ header file
o*mystring.hDeclares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server
o*noexceptions.hDeclares interface that allows exceptions to be optional
o*null.hDeclares classes that implement SQL "null" semantics within C++'s type system
o*options.hDeclares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes
o*qparms.hDeclares the template query parameter-related stuff
o*query.hDefines a class for building and executing SQL queries
o*refcounted.hDeclares the RefCountedPointer template
o*result.hDeclares classes for holding information about SQL query results
o*row.hDeclares the classes for holding row data from a result set
o*scopedconnection.hDeclares the ScopedConnection class
o*sql_buffer.hDeclares the SQLBuffer class
o*sql_types.hDeclares the closest C++ equivalent of each MySQL column type
o*sqlstream.hDefines a class for building quoted and escaped SQL text
o*stadapter.hDeclares the SQLTypeAdapter class
o*stream2string.hDeclares an adapter that converts something that can be inserted into a C++ stream into a std::string type
o*tcp_connection.hDeclares the TCPConnection class
o*tiny_int.hDeclares class for holding a SQL TINYINT
o*transaction.hDeclares the Transaction class
o*type_info.hDeclares classes that provide an interface between the SQL and C++ type systems
o*uds_connection.hDeclares the UnixDomainSocketConnection class
o*utility.hDeclares utility functions used within MySQL++
o*vallist.hDeclares templates for holding lists of values
\*wnp_connection.hDeclares the WindowsNamedPipeConnection class
mysql++-3.2.2+pristine.orig/doc/html/refman/sqlstream_8h_source.html0000755000372000001440000003130012502417162025034 0ustar robertousers MySQL++ Reference Manual
sqlstream.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2008 by AboveNet, Inc. Others may also hold copyrights
6  on code in this file. See the CREDITS file in the top directory of
7  the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_SQLSTREAM_H)
28 #define MYSQLPP_SQLSTREAM_H
29 
30 #include "common.h"
31 
32 #include <sstream>
33 
34 namespace mysqlpp {
35 
36 #if !defined(DOXYGEN_IGNORE)
37 // Make Doxygen ignore this
38 class MYSQLPP_EXPORT Connection;
39 #endif
40 
44 
45 class MYSQLPP_EXPORT SQLStream :
46 public std::ostringstream
47 {
48 public:
53  SQLStream(Connection* c, const char* pstr = 0);
54 
58  SQLStream(const SQLStream& s);
59 
74  size_t escape_string(std::string* ps, const char* original = 0,
75  size_t length = 0) const;
76 
98  size_t escape_string(char* escaped, const char* original,
99  size_t length) const;
100 
102  SQLStream& operator=(const SQLStream& rhs);
103 
106 };
107 
108 
112 inline std::ostream& operator <<(std::ostream& os, SQLStream& s)
113 {
114  return os << s.str();
115 }
116 
117 
118 } // end namespace mysqlpp
119 
120 #endif // !defined(MYSQLPP_SQLSTREAM_H)
121 
Connection * conn_
Connection to send queries through.
Definition: sqlstream.h:105
Manages the connection to the database server.
Definition: connection.h:59
A class for building SQL-formatted strings.
Definition: sqlstream.h:45
This file includes top-level definitions for use both internal to the library, and outside it...
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x6e.html0000755000372000001440000001251212502417165024736 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Connection.html0000755000372000001440000017657112502417163026302 0ustar robertousers MySQL++ Reference Manual

Manages the connection to the database server. More...

#include <connection.h>

Inheritance diagram for mysqlpp::Connection:
Collaboration diagram for mysqlpp::Connection:

Public Member Functions

 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
virtual bool connect (const char *db=0, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Connect to database after object is created. More...
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Protected Member Functions

void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Protected Attributes

std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Manages the connection to the database server.

This class is a thick wrapper around DBDriver, adding high-level error handling, utility functions, and abstraction away from underlying C API details.

Constructor & Destructor Documentation

mysqlpp::Connection::Connection ( bool  te = true)

Create object without connecting to the database server.

Parameters
teif true, exceptions are thrown on errors
mysqlpp::Connection::Connection ( const char *  db,
const char *  server = 0,
const char *  user = 0,
const char *  password = 0,
unsigned int  port = 0 
)

Create object and connect to database server in one step.

This constructor allows you to most fully specify the options used when connecting to the database server.

Parameters
dbname of database to select upon connection
serverspecifies the IPC method and parameters for contacting the server; see below for details
useruser name to log in under, or 0 to use the user name this program is running under
passwordpassword to use when logging in
portTCP port number database server is listening on, or 0 to use default value; note that you may also give this as part of the server parameter

The server parameter can be any of several different forms:

  • 0: Let the database driver decide how to connect; usually some sort of localhost IPC method.
  • ".": On Windows, this means named pipes, if the server supports it
  • "/some/domain/socket/path": If the passed string doesn't match one of the previous alternatives and we're on a system that supports Unix domain sockets, MySQL++ will test it to see if it names one, and use it if we have permission.
  • "host.name.or.ip:port": If the previous test fails, or if the system doesn't support Unix domain sockets at all, it assumes the string is some kind of network address, optionally followed by a colon and port. The name can be in dotted quad form, a host name, or a domain name. The port can either be a TCP/IP port number or a symbolic service name. If a port or service name is given here and a nonzero value is passed for the port parameter, the latter takes precedence.

References connect().

mysqlpp::Connection::Connection ( const Connection other)

Establish a new connection using the same parameters as an existing connection.

Parameters
otherexisting Connection object

References copy().

Member Function Documentation

bool mysqlpp::Connection::connect ( const char *  db = 0,
const char *  server = 0,
const char *  user = 0,
const char *  password = 0,
unsigned int  port = 0 
)
virtual

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

References mysqlpp::DBDriver::connect(), errnum(), error(), error_message_, parse_ipc_method(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Connection().

bool mysqlpp::Connection::connected ( ) const

Returns true if connection was established successfully.

Returns
true if connection was established successfully

References mysqlpp::DBDriver::connected().

Referenced by ping(), select_db(), and shutdown().

void mysqlpp::Connection::copy ( const Connection other)
protected

Establish a new connection as a copy of an existing one.

Parameters
otherthe connection to copy

References mysqlpp::DBDriver::copy(), error_message_, mysqlpp::OptionalExceptions::set_exceptions(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Connection(), and operator=().

ulonglong mysqlpp::Connection::count_rows ( const std::string &  table)

Returns the number of rows in a table.

Parameters
tablename of table whose rows you want counted

This is syntactic sugar for a SELECT COUNT(*) FROM table SQL query.

References error_message_, mysqlpp::Query::store(), and mysqlpp::OptionalExceptions::throw_exceptions().

bool mysqlpp::Connection::create_db ( const std::string &  db)

Ask the database server to create a database.

Parameters
dbname of database to create
Returns
true if database was created successfully

References error_message_, mysqlpp::Query::exec(), and mysqlpp::OptionalExceptions::throw_exceptions().

bool mysqlpp::Connection::drop_db ( const std::string &  db)

Asks the database server to drop (destroy) a database.

Parameters
dbname of database to destroy
Returns
true if database was dropped successfully

References error_message_, mysqlpp::Query::exec(), and mysqlpp::OptionalExceptions::throw_exceptions().

const char * mysqlpp::Connection::error ( ) const

Return error message for last error associated with this connection.

Returns either a MySQL++-specific error message if one exists, or one from the current database driver otherwise.

References mysqlpp::DBDriver::error(), and error_message_.

Referenced by connect(), mysqlpp::Query::error(), select_db(), and shutdown().

std::string mysqlpp::Connection::ipc_info ( ) const

Get information about the IPC connection to the database server.

String contains info about type of connection (e.g. TCP/IP, named pipe, Unix socket...) and the server hostname.

References mysqlpp::DBDriver::ipc_info().

bool mysqlpp::Connection::kill ( unsigned long  tid) const

Kill a database server thread.

Parameters
tidID of thread to kill
See Also
thread_id()

References error_message_, and mysqlpp::DBDriver::kill().

mysqlpp::Connection::operator private_bool_type ( ) const
inline

Test whether any error has occurred within the object.

Allows the object to be used in bool context, like this:

* Connection conn;
* .... use conn
* if (conn) {
* ... nothing bad has happened since last successful use
* }
* else {
* ... some error has occurred
* }
*

Prior to MySQL++ v3, the object was always falsy when we weren't connected. Now a true return simply indicates a lack of errors. If you've been using this to test for whether the connection is still up, you need to call connected() instead.

bool mysqlpp::Connection::ping ( )

"Pings" the database server

Return values
trueif server is responding
falseif either we already know the connection is down and cannot re-establish it, or if the server did not respond to the ping and we could not re-establish the connection.

References build_error_message(), connected(), error_message_, and mysqlpp::DBDriver::ping().

Query mysqlpp::Connection::query ( const char *  qstr = 0)

Return a new query object.

The returned query object is tied to this connection object, so when you call a method like execute() on that object, the query is sent to the server this object is connected to.

Parameters
qstran optional query string for populating the new Query object

References mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by mysqlpp::Transaction::commit(), query(), mysqlpp::Transaction::rollback(), and mysqlpp::Transaction::Transaction().

Query mysqlpp::Connection::query ( const std::string &  qstr)

Return a new query object.

Parameters
qstrinitial query string

References query().

bool mysqlpp::Connection::select_db ( const std::string &  db)

Change to a different database managed by the database server we are connected to.

Parameters
dbdatabase to switch to
Return values
trueif we changed databases successfully

References build_error_message(), connected(), errnum(), error(), error_message_, mysqlpp::DBDriver::select_db(), and mysqlpp::OptionalExceptions::throw_exceptions().

bool mysqlpp::Connection::set_option ( Option o)

Sets a connection option.

Parameters
opointer to any derivative of Option allocated on the heap

Objects passed to this method and successfully set will be released when this Connection object is destroyed. If an error occurs while setting the option the object will be deleted immediately.

Because there are so many Option subclasses, the actual effect of this function has a wide range. This mechanism abstracts away many things that are unrelated down at the database driver level, hiding them behind a coherent, type-safe interface.

The rules about which options can be set, when, are up to the underlying database driver. Some must be set before the connection is established because they can only be used during that connection setup process. Others can be set at any time after the connection comes up. If you get it wrong, you'll get a BadOption exception.

Return values
trueif option was successfully set

References mysqlpp::DBDriver::error(), error_message_, mysqlpp::DBDriver::set_option(), and mysqlpp::OptionalExceptions::throw_exceptions().

unsigned long mysqlpp::Connection::thread_id ( )

Returns the database server's thread ID for this connection.

This has nothing to do with threading on the client side. The only thing you can do with this value is pass it to kill().

References mysqlpp::DBDriver::thread_id().

bool mysqlpp::Connection::thread_start ( )
static

Tells the underlying database driver that the current thread is now using its services.

It's not necessary to call this from the thread that creates the connection as it's done automatically. This method exists for times when multiple threads may use this object; it allows the underlying database driver to set up any per-thread data structures it needs.

The MySQL++ user manual's chapter on threads details two major strategies for dealing with connections in the face of threads. The Connection-per-thread option frees you from ever having to call this method. The other documented strategy is to use ConnectionPool, which opens the possibility for one thread to create a connection that another uses, so you do need to call this method in that case, or with any other similar strategy.

Return values
Trueif there was no problem

References mysqlpp::DBDriver::thread_start().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_42.png0000644000372000001440000000336212502417165024021 0ustar robertousers‰PNG  IHDR­%¿.þ¡bKGDÿÿÿ ½§“§IDATxœí›{HSÿÇŸ3]æ˜]·e9^*×À.DL° þQH-v”.hd YR‘Áˆèý£¥IeËZ¶]è¢ )mZ9‘¶-ÒÍæj:Ýù|ÿ8´ßq;›ÛœKú}^}ÎsÎy?ï³óìsžsvF „óçoÀÌ p`p`hp`™ _¿~­¨¨ÿ[n0q£¼¼\©Tú§ÕÑh|ôèI’qw…‰+¯_¿ÖjµAë€F«ÕÆÑæ/PTTäÁý׆×׆fÞÕÁÀÀAóV6¶öêëëÓÒÒ(ŠòEB‰¤®®îÎ;>|ˆUv&ó®bˆÙlôxÉ’%§OŸž½fhfÆp IÒf³uuuù"===ƒƒƒJ¥rÏž=V«ÕjµÒk­Éd³ñ –ûÆŠ¢FFFè±@ P©T³× ­ÃÌ+V¬Ø¹s§V«ÍËË£#:nÛ¶m+W®€äädp¹\šš:+ß3Í|@DSS“T* …*•ª¹¹9==}ñâÅgÏž€ÊÊʲ²2zK—ËÅãñÞ¿>ÌÉÉY¸paFFFss3PU__/•JSRRrss sÊ¥g`½^¿víZ‘HTYY911Á„éÓµo,—ËáÏ'ÈÜ€ F#•J—-[vñâÅž ­ÃÌÈ?~ÿþíÜ¿kk«×ë¥u:]qqqxç]0Jƒ»wïúEX¡Ý;ÎÆÆF(**r:jµ†‡‡;::–/_>99‰ºuë–L&£(Êår%%%]¹rÅjµ^»v-11Ñår©Õj‘H¤Óé,ËãÇÅb1˜L&Ú=(((èïï7YYY555¬A„ÐèèhCCmÏ7öIù@©T:ކ†aõÌzì¡u˜k™¼}ûöðáÃB¡Ðb±ø­r8III¡OŸ>q8›Í,£/^¼‰DUUUf³y†s6’$I’dF¢¬ƒžž„Çãñ›L¦©©©ÔÔÔööv„Ю]»T*BÈn·s¹ÜK—.9Š¢ÆÆÆ¼^¯L&»~ýºOöÆuðñãGŸ·¬¬,Ö`0Ÿ!êÀ`0ÌèyFÍ@¿sæv»oÞ¼¹eË–7ªÕê±±1VM…BQQQºpáB~~~ˆŒ|ûöíܹsb±¸°°ðÙ³g^¯7Ø–Lë Ê>1%%¸\®ßöíÛ§Ó醇‡ÛÚÚ<K—.5 F£Q,oß¾ýåË—Çl6oذÁ§™““˜hõêÕô ;;{hh(D0"V­Z5£ç(t˜´µµI$’öööºººîîî£Gòù|Vߥ!¢‹‚Ï@MMÙl.))9þ¼T*ŒHfNîH’|ðàÝþг½Ûí¦(êÞ½{v»½¬¬¬°°Ðn·§¥¥õööúöêëë ”¢¿ ÐßßOèÁ‚Ááøx çèt|…ÂuëÖuuuuvvŽŽŽ†Ù½{÷¯_¿4Moo¯B¡35“ïß¿÷õõ mÚ´‰î.#eNê`ëÖ­SSSµµµ%%%t„ ˆ‚‚‚û÷ï;NÇÃåry<^iiiUU•^¯·ÙlOŸ>=sæL Ô‰'Þ½{W]]}èС`ÁŸ?ÒÍŠßþôÛQxŽ:ãúõë ƒN§ûüùóš5kŽ9ÒÝÝͺ=ÇÛ»wïÉ“'óóó…Baø‰(Šzþü¹B¡Ëå¡ÎÎΖ––ˆn\ÿó"~`2™B;–œœìt:™â™™™ ,ÈÎÎÖëõ!ÇS[[›žžÎçósssoß¾ ýAcc£D"Çw»Ý¬A¤˜œœÌËËãóù(຦ç@Bë032q8—/_ÎÌÌüòå «ì“'Oèã ÑÖÖV¹\®Ñh&&&Bx$6}b8TWW8p ¢]ü˜õøC7M³$ Ïáõzé[’Xáñx¢Û1°bÿi||Üb±455µ´´Ä\|Žˆg‡¢ŸˆÖþ4:bß¼yófóæÍ¥¥¥;vì˜Î¢E‹ÊËËà ÎVϬ÷çâ·ùÿcÑjµÅÅÅÿ³å_‡~‰ùâÙ¿ü;&|p`p`hp`Xß?¸zõjü}`â‰ÙlÎÈȘb>LxõêUBBÂ_ò†‰+§Nbžzß%b÷\\\€ÿ¸{–v±ªIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption__inherit__graph.png0000644000372000001440000001374712502417165032631 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“œIDATxœíÝyXwþðOÀrB¸Yµ¬TjÝUäY±*ŠH·Ö QZ… ¬ë­>Ê"ËZà±ë³-VV@9ë‘­ÊBE”æ±?]9´ŠDE9’k~Ìn6&!„‚3 ý¼ž>ûÌ|óï|fò6sd–0‚„^1&Ý ßÌ¢æ Qs†¨À¦»(((HKK£»Š±ÌÃÃãË/¿¤·í×›kÖ¬©©©ñöö¦·Œ±êÑ£Gµµµ´¿Ëôž€··w~~>ÝUŒMùùùAAAtWçgˆ˜3DÌ¢æ QsÐÔÔÄ`0FqÀþþþ˜˜˜·ß~ÛÂÂböìÙ”J¥´T¢'0g£¯··wÖ¬YuuuIIIõõõ{öìÉÍÍ]¼x±L&ÓØ¿¥¥…ÃáÓVVVŸ~ú)…ÅRD/îkŒ1ñññ¶¶¶•••, ¦L™²dÉOOϬ¬¬ððpõþr¹¼££ƒœæp8‰‰‰”–K ƒùSSÓ[·nÀÙ³g§OŸ>nÜ8WW×ììlËå)))ÞÞÞUUUÊÇ)ò°UZZúÆoØÙÙEGG hl„—qÊÓ999±±±dÈHfff111999‡š3g888¨ŒÓÝÝýá‡r8—]»v‰D"r?äææzxxX[['''¿Ò}>šºÙ Ö­[×ÓÓ“‘‘kÖ¬ééé!¿°zþüù?ü`cc#‘H‚ÈÉÉ™6mš\.ïëë311IMMåóù™™™l6»¯¯/--ÍÎή¨¨¨­­íüùó...ÐØØHî rÂÏÏïÞ½{µµµ\.7..Nc#AÝÝÝééédyŠé®®.hooW©¿ººÚÞÞ^Ëød7åé__ßææfçééI®V¯^ÝÕÕ•žžÚ÷[^^ž>¼ËôW {ÎnÞ¼I„X,V™nll”J¥•••A$&&ÑÙÙiddtèС®®.¹\ÞÛÛ+“ɦM›öÍ7ß(†ýöÛoÕsÆãñÈWóòò¸\®ÆÆÁê,g555GËød‹bZ,³X¬Û·o“íEEEäJ ªªJyÛµï7=É™Á7ÀÂÂŒŒŒT¦€Åb­\¹²¨¨èùóç—.] € &TUUÕÖÖº¸¸¼óÎ;W¯^e2™---3fÌPŒ9}útõ¹»»“S§NmmmÕÒ¨ÎÊÊÊÁÁ¡¡¡A¥½¡¡aæÌ™ºõôéS™LæææFÎr¹\EO'''åm7†”3í‹‹‹óóóçÎK …B¡\.?sæLgggXXØ{ï½×ÙÙéììüÓO?)–úùçŸÕ‡"?TàÞ½{ä›:X£F!!!ñññÊW—ýýýIIIþþþºeooÏb±ZZZÈÙææfgggršÉ4¼wÍð*ŒT* %[ †ŸŸ_aaaOOX,622255Ý´iSLLLiié“'O.^¼øÙgŸ©µmÛ¶¦¦¦ººº½{÷®_¿~°Æ/^'‹*Ó±±±Ïž=óõõ½xñbcccqq±———³³sTT”–ñûúú”k022 ŠŽŽ¾ÿþíÛ·÷íÛG~H*ºÜÃ8?Sœ‹ 6ùÚk¯õôô(–ÊËËsss366ž:ujii)Ab±8>>þõ×_777÷öö>yò$¨ŸeddLš4‰ÃálݺU(jl$^>gWž&¢¯¯oçΞžž¦¦¦Ó¦MKHHƒ/‘HæÎknn®2Nggghh¨££ãöíÛÉ•¶íƒÑ“ó3ú+Ð1gºØ»woppð°Qɇʬ–Æ_g‡Ò‘žälŒÜ§‰DmmmÇ?uêݵ ÆÈùÙ?þ8kÖ¬M›6ÍŸ?$ãŒ?>""B—ÆQÿ·@/žÛ|žö!Ÿ§¥ý]#ŸgHÏaÎ0gˆ ˜3D½¸¯ÑÒÒrìØ1º«›êëëé.ôàÞŽ;èÞð²òg³­é.c&NœH÷›LÐ_ðÔÖ6¯\™²q£Ïßþ¶’îZ žŸ Oqq=ù¿R©œîZ ælÄbiQÑ-xñBpåÊ¿é.Ç`ΆáŸÿ¼+ ‹Å,*Òók9†ÂÂz‹ R©¼¬Œ'Šé®È``ÎtÕß?ðý÷·¥Òÿ<%;0 ­¨ø?zK2 ˜3])‡ ˜LFaá ë1,˜3]ÞPþzJ¥òªª»==BK2 ˜3tvö_¹rO&{é^A.ðè*ɰ`ÎtrîÜOêAœ9ƒ‡N`ÎtRPP§þʼn\NÔÖ6?}ú‚–’ ælhmmÝõõ¿Èå¾ c±˜gÏjø¨C*0gC;{¶a°/¥RYa!Þ°š^<¤ç±£ãxÅl_ßÀ¸qFlöþ‰ŽÅ¿Š7úðyasrÚžšºaÙ²CwEÿ…ÇMDÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3D Zýs“'O¦{÷h`b2‘É4¥» UÆÆÆ×®]£û”^ÿ}Úlß¾ÝÛÛ›îB Àš5k?~LwƒÒëœÀœ9s鮞Ÿ!*`Î0gˆ ˜3DƒÏƒÁhjj¢eÕýýý111o¿ý¶……ÅìÙ³<(•JuY°©©‰ñûƒÏ™v---çUŒÜÛÛ;kÖ¬ººº¤¤¤úúú={öäææ.^¼X&“iì¯\‰••Õ§Ÿ~ú*ªÒ[ú~_c„äryGGÇ«9>>ÞÖÖ¶²²’ÅbÀ”)S–,Yâé陕•®½‡“˜˜ø*ªÒ[cêóŒÁ`äææzxxX[['''Àœ9sÀÁÁì ‘Hbbbìíííììbbb$ A©©©o¾ùæøñã.\xîÜ9òˆ¦Þ“<ØUVVNœ8ñÚµk999±±±dÈHfff111999dÏÒÒÒ7ÞxÃÎÎ.::z``@¹åãfww÷‡~Èáp\\\víÚ%‰4nˆÁ£û m //oÈ>ŠéÕ«Wwuu¥§§@GGGcc£ò6&%%­ZµêáÇ<ïøÃgŸ}–žžîìì|ñâÅöööŠŠ .—KöWïIµtéÒË—/·¶¶@{{»J1ÕÕÕööödO??¿{÷îÕÖÖr¹Ü¸¸8åJ”§CBB|}}›››y<ž§§g\\œÆ •}E£±–³ªª*‚ Äb1Ù®’³©S§òù|rº¢¢bÆŒžžž¹¹¹Š'Ož$û«÷$‡âñxAtuuiÌYMM ‡ÃQîID^^—ËÕ˜3±XÌb±nß¾M¶q¹\2*ûŠFcíüÌÉÉ ŒŒŒ4¾úàÁGGGŬ¥¥¥X,öôôT´¼ù曃õ$'¦N VVV ‹-R¿¡¡aæÌ™ä´»»»bòóOÝÓ§Oe2™››9Ëår=µoˆÁSçgÀdjÛ"òÆüÖÕÕU[[;iÒ¤ŸþYÑáÎ;ƒõ$Ûo|HHH||¼òÕeRR’¿¿?9K~hÀ½{÷ÈШ³··g±X---älss³³³³.bpÆÔÆ ¦¯¯œX¹råž={~ùåçïïäÈ‘-[¶ìÞ½»¼¼¼££ãòåËqqqäºzO•1cccŸ={æëë{ñâÅÆÆÆââb///gg稨(²Ã¶mÛšššêêêöîÝ»~ýz•JHFFFAAAÑÑÑ÷ïß¿}ûö¾}ûBBB^í¾  }‡ì¡ÁðÏÏT¦%ÉܹsÍÍÍÉÆžžž7N˜0ÁÆÆfóæÍýýý2™ìðáÃnnn–––þþþ¥¥¥¶¶¶{ªœêÑ××·sçNOOOSSÓiÓ¦%$$â¿§_“&Mâp8[·n …Ê•(ÕÙÙjccãèè¸}ûv¡P¨e£F¸¯hdð9¡³gÏ644(f f̘1Â1ÕI=ÏÙo⸩Ç[¿~ýÍ›7Ammíþýû5ÞeE#4Ö®7‡k÷îÝ`ùòåííí®®®›6mŠˆˆá˜ãÇù c ƒ ºkƒÁÈËË[³f Ý…=ßW¿õã&¢æ Qs†¨€9CTÐ÷ëÍ„„ò™ý!—3™L9ÝU½ÎÙŽ;=zDw/‘Éׯ;N™Òic#¢»–—¬]»ÖËË‹î*¥×÷5ôP~~Ý'Ÿœ\¸Ð#'g3ݵìàñ‘9‹YRr‹Þ’ æLW¥¥·Øìÿí.™L~æ :u…9ÓÕ™3uÉÿnÏq÷.¿¹ù%Ì™NîÞå75=#¯4ŒŒX%%7é*ɰ`ÎtRRrÓØXõ»‰DvúôuZê18˜³¡QPpC,Öð·€?îâñôë›1ý„9ÚÍ›¿´µi¾…‡NaΆvîÜO cc¶ú2™¼¸ïn M¯Ÿ×ÐóçOe³ÿ÷wòóë¼½Ý~÷;krÖÆÆœ¦º >¯1lNNÛSS7,[6ƒîB 70gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*¼ô÷ÅbñéÓ§E"ýúeI=téÒ¥'Oð/mkãçç7yòäÿÍJ i« -ëÖ­SŽÖKŸgR©ªªªhª  ³¤€çgˆ ˜3DÌ¢æ QAï~§âñãÇëׯ­k‘ (¦ÝÝÝ?ùä.—;’1É ÷ïßÿ׿þUýÕ¸¸¸¸¸8Z®¥D"Ñ7ß|SWWÇçó'Nœèãã³víZ‹5ä‚£»Ï5Ò»œº””GGG9998qâù3ç#ñÇ?þ‘¼ Äçó?þøcÅ-!‚ Ö­[7ÂÁuÁçó###KKKÉY@5a„ˆˆ''§û÷ïgffÞ¸qã‹/¾`25µ”777Õ5ýœYYYY[[€µµuddäŠ+^¼xaee5ÂaMLLLLL@(’ƒ+^Ú¼yó×…\.ïééQÌž8qÂÊÊêïÿ;™*—Ù³goܸ±¬¬ìÝwßÕ¾¸¥¥å«®ùלŸ-X° ¬¬lÆ Ë—/?yòdyyùºuëÞ}÷ÝãÇÀW_}•œœLö …þþþð¯ý+,,ÌÏÏ/88¸¼¼‚(..Þ°aC@@À–-[nݺ¥|˜{üøñ‚ ª««CCCW¬XñÕW_I$ŠÎÊ j¬œÅb±Ùl333rV*•¦¦¦®X±bÅŠ©©©ä-Ÿššš>úÈßßÕªU'Ož¹\~úôéÐÐЀ€€?þøÎ;ZvŽòÚµï¨Á èëëKLL|ÿý÷=*‹5nÝŸÿügX¹r%Ù^QQñÁ(t7níÚµwšòâÊ㫯ÜK—.mذaÙ²e§OŸÖŽAüÊë€úúú£GnÞ¼9==½¦¦&333***;;»§§çwÞ©®®–ÉdP]]íèèÈårE"Q\\ÜòåËÉ7,99Y$?þĉáááÙÙÙ|ðÁ矮¾¢’’’Ï?ÿüàÁƒ?þø#ù®kl´²²Úµkùªò4ˆD"¡P( ;::233/^lddD¾TPPÀçóÓÒÒ¾øâ‹›7ofee ‚ØØXww÷œœœ¨¨¨ôôôîîî¼¼¼Í›7ggg‡††¦¦¦ŽÊŽÒXüãÿhooOMMMJJª««;uê”Æ‘¿þúk(**€¾¾¾ÎÎNõóN.—ûðáC;Myqeƒ­ýÚµkGމˆˆHKKëííÕ}~e΂‚‚LMMýüü 88ØÔÔÔßßz{{===Ùl6Ç€K—.ùùù1 ‰DB„P(466ö÷÷?{ö¬‰‰Iaaadd¤——Wxx¸úŠ¢¢¢\\\<<<ÂÃÃ+**k433S”§ <<< `õêÕåååAAAŠ—ÊÊʶmÛfggçêêqýúuccãÌÌÌèèh;;;èïïÿî»ï”ëÖ!FËŽÒX€T*½|ùòÖ­[]]]7nܨØê_Á`Èår-{R…–µ/_¾ÜÜÜ|É’% |¼Öѯ}ºL&ûöÛoÉã0Œ˜˜˜+W®ô÷÷K$6›mbb²téÒ£GVWWwvv^¿~ýرcêC¥¤¤<~üøîÝ»‹/¬±¿¿ÿüùóä«ÊÓ*ÌÌÌy…>>>éééOŸ>miiÙ½{wII‰D"‘J¥l6[,“gK`Ù²eÊu*ÎâGN½6›½`Á‚/¿ü’Ïç“÷&-Zdnnååå@åŒJ±-6lèêêÚ±cÇõë×[[[¯^½ÅápÞÿ}-{R±8IãÚGeK_Éç“Éœ7oÞ÷ß?oÞ<²ÅØØxÏž=iiiÏž=srrúË_þbll$“ÉŽ9ÒÝÝMž $$$¨ µhÑ¢;wŠD"__ßòc\¥º»»:Dž–)O«°µµ555íéé!aaaa)))}ôƒÁ˜7o^DD„‰‰ITTTBBÂk¯½ìëë»{÷îÂÂB‰DrôèÑŽŽ77·ýû÷“k#§^lÛ¶-%%%22ÒÈÈháÂ…!!!ÆÆÆaaa_ýuNNΖ-[®^½ o½õÖªU«.\¸¦¦¦ÇŽËÊÊJMMmkksttôõõ T\ô¨ì4‹¥¼¸‚úÚGeK_ú=áüüü   Q¹/œ‘‘ñäÉ“}ûö龈Ê]i7©)¸s=öP¿Ó8`kk›ŸŸ¯hýã¦X,æóùeeeúÓŸF}pd F?gwî܉ˆˆXºtéŒ#úq33³÷Þ{O—F¤>ì´WuÜD¿eT7R‡9CTÀœ!*`Î0gˆ /}@>ã;ØÃ[éníڵʳ/Ý׉D.\ Ch$fΜ©ü` Cãs&. MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- g -

././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__coll__graph.0000644000372000001440000002602612502417165033227 0ustar robertousers‰PNG  IHDRCÝ®J‡×bKGDÿÿÿ ½§“ IDATxœíÝw@Ùºð“J—Þ¤¸ÔUlW|««Xuݹˆˆ¢k¹¶õJ\;èZ°ìªkCÁvA]T@ìŠÊÚY]ŠY•ŽP$`$¤ÍûcÞËIР!Ã÷ûëädrÎw&ùÈ™“™‚ah9*Ñ422€L€ “ ºüƒçÏŸ/X°@  Ðvžžž¿þúëç·S[[[UUõùí´+*•Ú³gO]]]¢A!ŠüÚõéÓ§CBB‚ƒƒ h¯/^deeiäׂ‚.—Û­[·ÏoªýÔÖÖzyyYYYB ßɸӧOw|€ðoMµÖ­[7oooMµÖ~ÿýw¢Cø/8N€ “ ÈdÈ22èt™\RRB¡P4Ø`SS‹ÅêÝ»·‘‘Ñ€6oÞ,‹;2ùv(ª|~mŠ¡k"ýèt™¬Yýû÷üøñÖ­[³³³W®\yâĉQ£FI$•Û—••YXXàe“üQã!=xð ú}ï×cé„äG-ô{@ůPd²aÃKKË›7oÒh4„Ð_|1zôhŸ£GΞ=[y{©TZWW‡—-,,bcc5’¥¥¥Æ›UÖcé„äG-ô{àS¾“)Ê‘#G<==---ccc×®]‹Z¼xñ¬Y³ð-y<ž¾¾~nn.BèÂ… ½zõÒÕÕuqqILLDI¥Ò½{÷zzz 4(33S~þƒO‡ÒÓÓÝÝÝ­¬¬/^ÜÒÒ¢²½?w’/'%%­[·Ocœ‹ÅJJJRÙ”ŸŸBÏ4ùvf̘aaaáàà…ŸG¡PNœ8áééiff¶mÛ6|Ë‹/öéÓG__ßÖÖVýÎùóçíííëëëB§Núâ‹/šššÄbqtt´£££¥¥åôéÓðE"‹Å²¶¶¶²²b±X"‘¨Æ¢ü–u6Ê*úæÍ›ŽŽŽÇŽ“?ÆQ,†aqqq^^^ݺu>|øÅ‹µo*ŽÉINNV¨Q !ÊårBS¦Lár¹D½}ûööíÛæææ"‘ð¤¤$ooo©TÊãñtttââ⪫«>L§Óy<ÞÁƒ­¬¬RSS«ªª.]ºäàà€*..ÆcÀ EEEYYYnnn111*+1 khhˆÇÓ•ñĨ­­UˆÿþýûÖÖÖhßL¾6bĈÒÒR6›íããƒwŠšX©©©x§¡ÌÌLù±·´´òx<‰Drûöm¼R!“[ûcZ__ïààЫW/<µ0 swwOMMÅËOŸ>••=<<ª««ñrFF†¯¯o{ŒEå[ÖÚ®–õÛ‘™¬2BåQã»Eá]P¬Ï‰'d-Ÿ¡Àÿ Ô××geeµÓX”ß²6¨½©¡,]å) ÖÉÉIþãWXX¨ñhÛ[»dò!CÄbñ† ÂÃÃñ …’’Âår…B!ƒÁÐ×׌Œd±Xééé555W¯^]±b…rSK–,)))yüøñªU«¦M›ÖZå»wïðƒv…òºuëÞ¼y3bĈ«W¯§¥¥ 8ÐÞÞ^ö½§²}'ƒÁ Y¼xqyyy~~þš5kð‰†²––¡PÈd2ù|~tt4B¨±±Qa›ÚÚÚš÷!„¤Riddä¢E‹N:uãÆ . „ÂÃÃW¯^Ï3.\XYY‰·0qâÄ•+WVVV²ÙìÀÀÀ}ûöµÇXT¾e*·$Ê"TõG-X°`ùòåׯ_¯««»uëVLLLWYñ’}'´Vž7ožžž—Ë•oÜÕÕ•Édzxx¤§§c& 7lØàììlhh8hÐ üàDá89!!ÁÉÉÉÂÂbÑ¢E|>_e%öþQ|Ã0·lÙ2}}}ooï7677·Ö¾H$¬ƒ“1U¶6j…wAa°‰dçή®®ÆÆÆééé–––í½S'J&«cÕªUS§NmÓK2Páá*?›"\'KÇg²¦\¸p!//OöðìÙ³¾¾¾}U§ÊdÍÏ®AYYÙ‘#G¾ÿþ{7@{`³ÙÓ¦MËÉÉinnÎÊÊZ»v­Ê‡:3ÍŸãõÇÍŸ?ذaŸÓN·nÝæÎ«N¥Û×Rd !–/_ÞÜÜ d2d™ @&@*Ö®:Ôñq€@ e0(4š¶¤9ÙÙÙlM ´õæõ-©ŽYýrz/“íííi4šÖ­¿w¦¦ß0™Ö ·ZZÊ‰Ž…0ŽŽŽiGWW·¶¶Vù\×Öˆ¨oÓuÙt'VÓFõ a4ŽB¡èèètL_Eßœ4åðá;kצ!„†uß²er*îA4N"”²ÿó&7¡Z"ÂôÌèa×¾¤P»â´2Yc8œ¦Þ½×I$RŠZ°`Ä’%#õô˜DÇEf•wÞ=ˆ}ÑT+¤…Jé=ÃzÀ‚]Gb]ô ¢=˜™~I§Ó$©D"Ý¿ÿfÿþëÏœy +Û§„>òÙõ—6½bR !„0Ì#¨ë΃ “5)$äb±/‹ÅÒ†þ?œ=ú—ÜÜçÄF&‚w⻟§†þ]›ßŒ0„ÿ¤P)6} ìºî fך$K}}×q8Mò•ø·ôĉ}ׯ233 *6À¤¨ ùMöjq‹T*~ïsK¡ ÿή¦DÅF8øNÖ$:úÏd0hò•b±ðóçóüü6&$Ü‘H¤D…§Õ^³›RC þòRØ,QHc„]ŸÚc¸1!uÉ6iR?‘Hů "‘¤©I°n]ÚO?ïø¨´§˜qVQ}IRšDRé·@3³K˜»ôàÛƒ§§§§­Ê[ÇÐéTæÈ‘Úw·7™8ëº3C˜êŸ—¤bÌý»®»Ö…ƒLÖ¼iÓþGù&t:ÕÑÑ<#ƒ5xð„D¥Õ¨tÊЧÁ«ºS¨ŠÂ®¥ SW=KïÎu±Ž™¬yAA}îçF¡P p¹reœ.ò9<&ZüâB¡Q¨r§ÄR¨ÈsìUÈäv`b¢?z´þßu/{{“šš†Öþ­P†J¯ÖÓ˜•þÉL¥RzŽ5#6®Î2¹]÷—H$T*…F£ÆÆß¼¹œÉ¤GD Õú‡¯@¥Çû«ÊoÕþê”äiâ¢KeP(4Šã×&L#ÚÇ_LvÉíÂßßÓØXÏÀ@ç·ßæOŸþ?FFºÇÏ.)y½|ùi¢CÓV§½Í;R3xµ£¯¡㻣îÝÿ§&Á<&šZ§g†´—ÜÜç––Fÿ=W!+«4$äÀÊ•ßÌ›7Œ¸¸´RÕŸW”|9Íê‹ìe•˜U=n´hD``dr‡:u*‹Å:}äHd@€ÏÇ·!„¸/ZÒ#žÙô5¹ÍEqáü?Ø1*4Ô/"bðÂ…I……ÕDÇ¢5 SÞê[2†mp‚4þøNîh‰tÆŒ„¢¢×—.-µ°0$:-€IQ W¬k¢ù{³“ d2ß~»»[7½3gþÅdÂhÌW`d¤{ìØìÒÒ7°” 42™NNæ 3ÓÒrÈ$:@É„ñós¼iÓ…ë×ó‰Žh=Èd"…†úED|µ`ARaaÛnKb͵¢w•¢£Ð>°âE0|)ûÙ³šË—ÿ KÙbôâ÷ET:åÛ£îDÇ¢eà;™`4uÿþé:‘‘GºøYÙ˜»±¼ŒW#¾Ù™èX´d2ñð¥ì²²7,V—^Ê~´»ª:›7z·«¡m×½±Þ'ƒLîð¥ìsçröï¿Et,Ä(<û–}âõÐõN–^]ýžŸ2¹³À—²7o¾xíZ—[Ê~õ¨ñÁö}gÛºŒìº7ÇüLɾ”½pa×ZÊ–±Û1Žƒûα%:-™Ü¹lØäçç‘P[«î?7Óv4&eÔvWÿ=Z»@B$±X,kkk+++‹%‰JJJ(ÊÍ›7;&+ß»w¯¡¡aÆŒQQQ@~ã{÷î©ì‚B¡9rÄÓÓÓÒÒ266611ÑÙÙÙØØxíÚµ­Å€ºpáB¯^½tuu]\\ñ-UV^¼x±OŸ>úúú¶¶¶±±±! Ãâââ¼¼¼ºuë6|øð‹/âwŒRÙ‘Z0ÐÉp¹üaÃbÇßÝÒ"":–NaëÖ­“&Mzþü9›ÍîÛ·ïŠ+Š‹‹BcÆŒ¹uëV^^ž¬ÌãñÂÂÂFŒQZZÊf³}||bbbä7æñx*»@…††r¹Ü„„„Д)S¸\îÁƒBoß¾UÇÓÑщ‹‹«®®>|ø0Nçñx*+¹\.“ÉŒŒŒ|ùòeRRBèÍ›7ñññöööW¯^­­­ÍÈÈpssÓQ¹#5÷drgTQñÖÛ{õ¢EIDÒ)xxxTWWã匌 ___<9Ùl6†aòe¡PH£ÑòóóñSSSÝÜÜä7h B(''oA¡\\\¬2‡Ã`0vìØQ__/•J%‰ÊÊ–––ÂÂB'‘Hnß¾·éããsâÄ Y'OžÄ3Y¹#5÷dr'õða‰£ã²½{oñtuuåg‘ÆÆÆxr …Bìÿ3/¿xñ!Äçóñ²Ùl]]]ù Z#ËØÖÊÊ1`vï޽ɓ' 2äòåËøKTV¦§§<Ø××wæÌ™x›zzzOž<‘€Ï,ZëHpœÜIáKÙ[¶\ê‚KÙ ,,,d©U__Ÿ••…×3 Ù6xÙÚÚšF£•••á•¥¥¥öööÊk$>Ÿ/•JÏœ9ÃápfÍš5~üx‡ÓZå”)SX,VNNÎþýûñœœ dí~x°™ÜyÉ–²Ÿ>%ÕR6Ÿ£ö*B¡‰'®\¹²²²’ÍfîÛ·¯µ- FHHÈâÅ‹ËËËóóó׬YöÙñªŽB¡¤¤¤p¹\¡PÈ`0ôõõUV¶´´…B&“Éçó£££B ,X¾|ùõë×ëêênݺƒ¯x©?XEj~wBˆÅ’iÓ°þÍ.ѱh¯¦%)€ýôL­ú/ár¹3gÎ455577Ÿ3gNSS>aÆŸ•/cÆápÂÃÃÍÍÍmmm—.]Êçó6P }lv­†aÉÉÉ®®®L&ÓÃÃ#==‰ÊÊ_~ùÅÌ̬{÷îû÷ï µ²²’H$;wîtuu566 LOO·´´l­#uÀ~ƒCCÝ””Ú~ƒa£$}æ3“2>Á¡ß¥çƒ/^ìÞ½{ïÞ½ñ‡)))7nÌÍÍýä»ôÞÔ øYÙååµQQÉDÇòY¤ìæŠrQ³$p·[Oc„›Íž6mZNNNsssVVÖÚµkgÏžýY-ªùÝ ˆ…/eïÙ£ÅKÙ÷·>?òUnm¡ºÓÅöÐy²@$­^½º{÷º^^^Û·o‰TŸ> fÌ0»ÖÇŽÝ_³&%!af`à—DÇÒfɵw¼ëâ<„èXÈ©«Or´ÈŒ_ED|µhÑ ­[Ê~ý¤)ë——}"m!Û|'kü#ùùUW®,µ±1&:u‰ùÒÂÔ·_NµBªÿ“9ÐÈd-ÓØ(?~·ž#-m‘®îgíÈf×Zÿ·/^p~øá$ü2ÉÚ¿ÁÈ•+íÝ{“èX@g™¬•üü\ׯн|þ|ѱ€NA»ÏêÊfÌøª¨¨ú‡N::šùú:Î{0)‚ÿ«ØÁ`k± &àd²£Ó© 3õfÌ8Ìç ‰!„ÞU¶\û¡Ô¬§ž¾9¬«w(Èdífd¤{äHdeeÝ?œ"|)[Ð ¾²¨ÄØIçëuNðÓqƒLÖz..–GF^½úׯ¿Þ 0 ©»Á*Ã$بŸ]è:ð¹êh°ÇÉ_ÊÞ¶íÊùóŸ~YÜgº»ùùÛ¿›~q…y5!`íš$þ)û”££yÇ/e³“^_äŒÞåjî®×Á]œ­Ib±4,ì`QÑëŽ?+»ä*§ù¨×tëŽìȃL&•wïšÇÛeh¨›–¶POþOZÇɤbl¬ÿŸÿ|ßI–²AG‚L&ËC‡"®\aïÞAt, ã@&“Ð!_¬_´}ûÕôt–²Aƒµkrš9spqqÍÒ¥§œœXÊV¼HK¶”}ùò¶¶š¼íγô:Q³Ä'ÔJƒm‚ϳkÒ¢Ó©‡E05{Vöó»ïîn|.l’hªA Édfl¬üøìçÏ9K–hæ#œþ­UncLû΂ÿZÞ¹@&“œ««Õ¡CW¯þµk×ç.eó9âëKK-<õ¿^ Ht:Éä‡/eïØñYKÙ¡4#ª”B£ŒÜîLe@w:É]ÂÌ™ƒCBþ•üâçÓZx´§ŠS,µÝE×~ïè”Úë¿e‹Å"úûD MOÏë“_n©ãài4Pƒñt$ggg¢?8íþ¾¶MEE…ŸŸß¿ÿýo¢êzøðáÎ;‰Ž¢ÝA&·Y÷î݃ƒƒ‰Ž¨ ëgLÀq2d™ @&@Éd²ö)))¡P4ynFUUÕÔ©S{ôèahh8`À€´´4 6ÞV]™ÜÕÕÕÕõéÓG__?99ùÑ£Gÿüç?CCC¯]»Ö‘1”••YXXàe“ü±#{'øª«‹ŽŽö÷÷OHHÀzyyÕÔÔìØ±côèуT*­««Ã˱±±Ö5iÀwr» P(GŽñôô´´´ŒMLLtvv666^»v-BhñâųfÍ·äñxúúú¹¹¹¡ .ôêÕKWW×ÅÅ%11!$•J÷îÝëééidd4hРÌÌLù™'>MOOwww·²²Z¼xqKK‹ÊJôþ¬U¾œ’’²dÉùࣣ£>Œ—f̘aaaáàà%ðÑ8qÂÓÓÓÌÌlÛ¶m²!+WŠD"‹emmmeeÅb±D"‘X,ŽŽŽvtt´´´œ>}zCCBÈÏÏ!dcc£›ú½8[³m‚ƒƒƒƒƒ?ºB(44”ËåâßuS¦Lár¹D½}ûööíÛæææ"‘ð¤¤$ooo©TÊãñtttââ⪫«>L§Óy<ÞÁƒ­¬¬RSS«ªª.]ºäàà€*..Æß8¼PTT”••åææ£²ð†††øøx<}zðàÁøœ™ÏçK¥Ò3gÎp8œY³f?žÃáØÛÛ?yòDöª‚‚å¦ð/1„PQQþo­R¥o¿ýöçŸÆäNNNJJ‰DúúúÖÖÖ4­¬¬ ¯/--µ··ÇËTªŠOŽr¥………ì;³¾¾>++ËÎή¢¢6//oÓ¦M­ÖÖÞ»8Ø#Ä2dˆX,Þ°aCxx8^C¡PRRR¸\®P(d0úúú‘‘‘,+==½¦¦æêÕ«+V¬PnjÉ’%%%%?^µjÕ´iÓZ«|÷îlZ¾¼iÓ¦Û·o‡‡‡?xð€Íf¯_¿þ×_ÅŒÁ`„„„,^¼¸¼¼_e%Öúª†a“'O¶³³322úÇ?þqþüyÙS'<<ÜÜÜÜÖÖvéÒ¥xS*G¤²’ËåΜ9ÓÔÔÔÜÜ|Μ9MMM **ÊÎÎÎØØ844?D‰Dƒ644TˆMýÞ? ‹'Ã]rÛfÊ”)¡Ó§O~S«W¯®¨¨8qâ„ú/)))éÙ³§ì-SxøÊ®ìôéÓ!!!¤ß!pfAUUÕ‘#GN:Et,€$à8™üñGÿþý###‡ ö9ítëÖmîܹêTÒƒÙuÛhpv :F™]Ãw2d™ @&@Éü ÕfwîÜ5jÑQh^Cƒ©‘—F#Û?a|ýú5Ñ!tÈä¶!ë®ù|ú«WÖNNFÝ»7‹†™šš’ò/¯ø „ÐöíWvî¼îädþðá¢cŸŽ“B9ó!TYYWXXEt,àS@&”›ûüåËz„ƒAKIÉ&:ð) “:w.‡É¤!„D"É™3¥R8àÒ>É]D"={ö±PøKÖµµ•øÉ]ÝÇ%õõ|ÙCƒ–––C`<àÓ@&wu©©9 Æ?"‘$==G$"ۯʤ™Ü¥ …âóçóò¶±QpçÎ3¢BŸ2¹K»u«Ï*TÒh´ÔT˜`kÈä.-55[ù>•b±äòå'ÍÍŠ:3È䮋Çk¹~½@"QqH,InÜPqG^ÐiA&w]²Ÿ”Á ¶vL²JR}ˆTŠeeÁ¯ÊÚ® èºššZÞ¾ýïÍâ ÚøÓOGŽôÂêé1­¬Œ ´\ÕØuèèÈ×XZ99™ø0»€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ22€L€ “ ÈdÈ2RÀÈ‹Åb½wµ‰ŽŽ#•ªOtZ£GDÀßC'z‡´£ŠŠ //¯àà`¢dóôéÓ3gÎÅ{ÈœÉ!++«aÆíŽ“ ÈdÈ22€L€ “Û׫W¯üýý5ÒÔ®]»æÏŸ/{xêÔ)ÿªª*üá›7oüýý  N ¿IDATsssÛÔ£ÃÃùûûÇÄÄ`Ö~](“uá/gܸq+W®¬®®î˜™¬5|}}KJJZZZð‡ÙÙÙ åÏ?ÿÄ>}ú”N§{yy†††&º}ûvff&Q½ïÝ»7%%åìÙ³»wïÆ0lÓ¦M!Â÷I€LÖ½{÷‹ÅEEE¡––6›(ŸÉžžž:::ÆÆÆsæÌ!0ÎñãÇïÚµ‹ÃáÒ»‰‰‰™™™¹¹¹››[TTTAAAss3áû¤@&#ÿ+W®DDDL˜0áäɓׯ_ 7nÜ‘#GB{öìÙ¶m¾%ŸÏ ,..F=xð`Ö¬YS§N½~ý:Bð´´´ˆˆˆ±cÇ.X° 77W~F‡Oðîß¿´gÏ‘H¤²½?”•MMMœœ BùùùVVVß|óMNNŽD"AôîÝ[áµþþþ7n܈ˆˆøöÛoûí7„T*ýí·ßÂÃÃÇŽ»páÂÂÂB|KûÝwß8p@(.X°?ù¡±±qøðáÀ_>~üø¬¬,•{ìèèøóÏ?Ëϱq>üþûï'MštòäIuö?BH,ÇÅÅÅÅʼnÅâÖF¡€J¥"„$‰lŸ´¶Ã•»hÓG¨3€LF¡ìììÌ™3'>>þáLJž?~bb"—Ë:tèýû÷ñl¹ÿ¾­­­›››@ ˆ‰‰™0aþyÚ¶m›@ ¸téÒþóŸÙ³g'&&NŸ>}Ë–-Ê;wnË–-›7oþã?deåJ“¨¨(üYù²¯¯/žÉþùgß¾}ÝÝÝ)ʳgÏD"QQQžÉ îÝ»·oß¾¹sçç‹Å·nÝZ´h‘­­­‹‹ËÌ™3322üüüž}tttTîY§sæÌÙ³gÏ›7od•L&óðáË/677·²²B555}tÿ#„®\¹²dÉ+++—¹sç>zôHå(p³gÏ;vì¸qã"""¸\îÚµkÕy”»øø‡¦“!ùÙšjÒ××GÑét…2BˆJ¥2äÎ;...ÙÙÙË–-CíܹóìÙ³Gýâ‹/¦N:pàÀêêj777Y›...Ê988àGGÇÚÚÚTªÔ»w†gÏž•––öéÓ!4`À€ëׯëéé¹»»ëéé)¿ÄÂÂB~8µµµÊAÖ××K¥R;;;¼ÒÞÞ¾¶¶¶gÏžºººÏž=c³ÙK–,ÉÎÎf³Ù¹¹¹ƒ jmÈ÷tçÎíÛ·/Y²¯¡Óé/_¾Ü±cŸÏïÙ³§šû!TSS3iÒ$ÙC±XÜÚ®NJJ²··ÿÀ>Dªv¸rn¡‚Lþ¸aÆmܸ±G_~ù¥¥¥%B¨¥¥E*•ÆÄĈÅâ›7o®Zµêܹs¥¥¥®®®ø«***”›zùò%þ±{ñâ…¹¹ù*U233ëÞ½{bb¢««k·nÝBýúõÛµk—žžžÊ©5BˆB¡È?´±±QÒÔÔ”J¥VWW;99!„ªªª,,,(ŠŸŸß½{÷^¼xѳgOüËŸÍf/]º´µ= ?¥P(?þøcddäÅ‹ñš–––˜˜˜˜˜˜Aƒ‰D¢+W®|h§Ë166Þ¹s'žŸ<Ãá¬[·î£»ú”w¸rmj°3€ÙõÇõêÕK"‘?~Ÿþ!„( ‹ÅºsçNSS“H$¢Óé:::cÆŒ9pàÀýû÷9ΣG:¤ÜÔÞ½{_½zõ÷ß'$$Œ5ªµÊ¦¦¦K—.áÏÊ—B¾¾¾<èׯþÐÖÖÖÖÖöÑ£G¾¾¾êŒåÛo¿•_U¢Óéþþþ¿þúkuuuyyùáÇGމ8p`zzº——NïÛ·ïÕ«W­­­­­­[Û }ÙÚÚΟ?ÿôéÓøC‘H$‹étºP(ÄD›››Õ‰yÈ!ñññ¯_¿.++[¾|ù¹sçTŽB}Ê;\¹‹65ØÀwòÇQ©Ô¯¿þúÚµk_ý5^Ãd2W®\yðàÁ7oÞØÙÙEGG3™Ì‰D²oß¾††üpkãÆ M9rÙ²e`ĈaaaøÔN¡!ÔÐаcÇüðX¾Œòõõ½pá‚,“Býû÷õê•:c™0a‚H$:pà@]]««ëÚµkÿõ¯!„–,Y²wïÞyóæ1ŒáÇãaôïß_(âßö>>>"‘ÈÏÏï{@¹»ñãÇß½{ÿ©ÌÐÐpþüù7nÔÓÓ›:uêˆ#–/_ž––öјgÍšµwïÞï¿ÿžB¡|ýõ×sçÎe0*G¡&å®Ü…ú­uåŸ HcÊ”)µµµÑÑÑŸßTBBBMMÍš5kÔÉ«W¯¦M›&;GBáá*AûÑÔÿý÷ßׯ_ß©rf×! «««¯\¹òÍ7ß ­‚LþˆÂ¹sçŽ3FÍÑÖŒ?^JÐ~H¼Ãav @›uÂÙ5¬xi“ºººäçç¿{÷ÎÉÉ),,lÈ!Dù Ì®µ—Ë={¶ŽŽNttt\\ÜðáÃúé§Çwd ÕÕÕß}÷^î iøNÖGíÓ§ìÖ¿NNN'99yÀ€ƒT*ÅÏ…Fu… Œ´|'k;wîÈŸQˆŠˆˆX¾|9^V¾˜ ©ºªµJå‹$ÉÑ£GCBB&L˜°eˇ¶8q"zÿ¢+õ{í2Y;à§:::ÊWêééá—" U3áõ ×BµV©|1ÐÙ³gïܹ³eË–;w¾xñ")) !´ÿ~„PjjªBxmê´Èdí€/“*œD-£òb&ü)…k¡Z«T¾èÒ¥K‘‘‘...ÎÎÎ?þø£Ê ­>­wÐà8Y;™ššVVVÊgÔßÿ½k׮ݻws¹\å‹™ð²ÂµP­U*_ $‰d× 999áW¨¤òRªôÚ|'k¯¾ú*99Yþ7ÌŒŒ ±X¬££#»˜ ¯Ç/fÂË*¿Æ•+“’’233333/\¸°ÿ~ssóššüÙ’’|v­R[{í2YkÌš5ëÉ“'›7o.(((++;~üxjj*~?ƒÖ.fRŸòÅ@ åååååå»wï~ýúµlc>Ÿ/ÿÚÏï|>˜öh “C‡8p ::šÏç;::nÚ´Ivq’Ê‹™Ô§|1•J,K øùùá—ÙØØ|ùå—“&Mº|ù²üË?³wðùàlMÚ¬ž­ ³kÈ22€L€ “ ÈdÈ22€L€ “ 2ŸãE£Ñ~ÿý÷ßÿè@ Ñh4¢Cx™Ïñ*++ËÎÎ&: @NÖÖÖ²ÿdÐ9“è:à82€L€ “ ÈdÈà2‹¦­uóžìIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1AutoFlag-members.html0000755000372000001440000000463312502417163027322 0ustar robertousers MySQL++ Reference Manual
mysqlpp::AutoFlag< T > Member List

This is the complete list of members for mysqlpp::AutoFlag< T >, including all inherited members.

AutoFlag(T &ref)mysqlpp::AutoFlag< T >inline
~AutoFlag()mysqlpp::AutoFlag< T >inline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption-members.html0000755000372000001440000001215012502417164032200 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadDefaultGroupOption Member List

This is the complete list of members for mysqlpp::ReadDefaultGroupOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadFieldName.html0000755000372000001440000003127712502417163026427 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadFieldName Class Reference

Exception thrown when a requested named field doesn't exist. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadFieldName:
Collaboration diagram for mysqlpp::BadFieldName:

Public Member Functions

 BadFieldName (const char *bad_field)
 Create exception object. More...
 
 ~BadFieldName () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a requested named field doesn't exist.

Thrown by Row::lookup_by_name() when you pass a field name that isn't in the result set.

Constructor & Destructor Documentation

mysqlpp::BadFieldName::BadFieldName ( const char *  bad_field)
inlineexplicit

Create exception object.

Parameters
bad_fieldname of field the database server didn't like

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalInfileOption-members.html0000755000372000001440000001211712502417164031167 0ustar robertousers MySQL++ Reference Manual
mysqlpp::LocalInfileOption Member List

This is the complete list of members for mysqlpp::LocalInfileOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x69.html0000755000372000001440000001517512502417165024672 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemembers_func.html0000755000372000001440000000331512502417164025373 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TypeLookupFailed__coll__graph.png0000644000372000001440000002053712502417165031720 0ustar robertousers‰PNG  IHDRÏÍ+³bKGDÿÿÿ ½§“ IDATxœíy\ÇßÇgCC@A@QDÛ_Õª¨E)¢´EE+Š(x°* ž …zàÑV,XðªWQ¹D«õG‹7F”–‘„@B®}þX_i$W²`ÞMfg¿û™OvvöEQà‰h>t? Û øÝÁ²ä.—›ŸŸ/‰ˆRÓsÑÖÖ:th÷ãÔÖÖVTTt?ŽJ!‘HC‡ÕÒÒê승­±±±¾¾ÞØØXyÂú­­­åååJq[MMMKK‹žž^÷C©ŽÚÚZSSÓîº ÃÁÁA’ú555oÞ¼QV4===5o‚;wîtmExÞÁè6~@·A𺠂*w[AA‚ ªÞJ§PCIªC­*«·Ñh4¥„R’ 6mÚD¬¥#¯ Ôª²Êq›H$ª¯¯WJ(!©F£íÙ³‡X=JG^¨Ue»â¶ôôtGGG---kkëÓ§OÆ8p @(FGG6¬ÿþ'N|ôè¶–ä!]2ÍçóCBBLMMMLLBBBø|þåË—ÍÍÍY,àüùóÆ knnáááƒ666^²dICCƒ¼Õ±àiiiÇ711 jmm•T(¹õ†††¥K—Òh4 ‹àà`.— @äìÙ³ööö Ø·o_×ö¬JQÜXoß¾=xðà“'OŠ++]/EãââFŒ¡§§÷Å_\¹rEµÝ.*Auuuff&ª6›­©©WYYyìØ12™Ìf³óóóÅ¡zôEÑèèhƒñêÕ«qãÆË[ãêêš———••ekk!©P2½hÑ"—ÂÂBƒ1räȈˆì¿yóæ±X¬øøx@}}½â}Ò‘ýÖArrrrrr—i· °ôÌ™3322²³³ÅùÒõŠ777¿~ýzmmíÍ›7mmmÛXB&™™™ÕÕÕ]¨]§ÝÆd2)ÊþýûY,–H$jjj …’U6lØÉ“'ÅåO:¥¸vvv•••XúæÍ›NNN(вX, GGG¬ùQ>|xrr2–~óæ8-½:&†Á``™‰‰‰¶¶¶2ÝÆãñ444Ä­›œœlkk‹¢(Û<ŸŸ¯xŸàì¶v›@rHæK×käÈ‘gÏžG>wîœJÝÖéžÔÐÐ0333++ËÂÂbÊ”)÷ïß'‘> RVVæää$þéèè¨8`II NGA3f V®\ùúõë5kÖ`ÅJKKÅ7"ííí===¬¶³³{÷îÌMWWW …Bì§­­­¸$vH¦P(Ù'8Ón`ØÙÙIg¶©WaaáÈ‘#ÅKGŒ¡Éè´Û8ŽH$ºxñ"“Éô÷÷÷ðð`2™’¬¬¬^¾|)þùúõkÅi4šøàÁb±²²²eee111Ó§O߸q#VÌÌ̬¤¤KgggGEE)X€ý§yyyØ.–ÆÔÔTCC£¨¨ûYXXhnnŽ¥e¶ŸšÐn`Èü«´©—¥¥¥dåææ*]íG[ïì ‚¸ºº&%%566òx< …¢­­-b³Ù€Õ«W‡„„¤¥¥UUU]¿~}ÇŽØÒ÷ïß'$$H§çÌ™³yóæÒÒRƒáææväÈ‘Häççxþüù[·n¥§§|||¶nÝŠu4¥¥¥òVÇò×­[WPPðäÉ“-[¶,^¼XR¡ …²`Á‚   ââ✜œmÛ¶-Z´¨³;Úm‚ŽóÝwß…††Þ¸q£¾¾>###""B½F (Š&&&ÚØØP©T;;»´´4Eù|þ¤I“tuuQÑÑѶ¶¶:::&LÀ6èÇ'’鯯ÆeË–­\¹²¹¹ùðáãGæñx(Ц¤¤Ðét&“ÉårƒƒƒÍÌÌôõõ.\Èb±ä­ŽOHH°´´¤ÑhGR¡äÖ™L¦‘‘N_¿~=‡ÃAQHœ«õ;oCÛky»Zº^B¡ðСC666úúúnnniiiÆÆÆín¿Q‚ú#¹ñ·)‹ôôôììlñÏK—.a£4Åà7J€ô& ÆâÅ‹Ÿ?ÞÒÒ’••µ}ûöåË—«ns2ž¦ìéèéé­ZµŠh=ƒÐÐЖ––o¾ù¦¶¶ÖÚÚÚÏÏO¥»®ºÍÄÄ$..Žh=2™‰Ïæ`O Áè6~@·A𺠂2F êÿö¬OÈã uu©ÄÊèì|Åp¹Ü.7AkƒPÓ@C‰b”ËGnÓÔÔD$//(5%==?55ÆÏ~r¸ ¯òÊ‹S[[ÛÔÔÔé5QPM‹™AµÚ̦©ök‚hjjveE´'¿-5õùÚµ§54H{÷zy{'Za¸¢ÌmÅ%™ï dÙÿÖ ªé ’šÊê ŽŽƒB¡(88qçÎ4‘¨ÿsºLKÿ²ß¿¥÷–šjk5ÐÓÝ6dM[ûÃ!=>þÞ·ßÆ66rˆ•„3µ¯›“æç² ¹¨%‘SG]¢)¢g» AQ£><»&‰²² gÌ8P\\K¬*Ü(¸Î¼ì—Çc EP@³×&Z”"z¶ÛcÇZQ(Fa¨²²ÁÍíPVV!±ªT ž­ÌÜV‚ €HøáüA$D¡ÛT‹£ã ¡ð¿!˜@ lii??öâÅ'ªR)‚VÑ­ÍÅ/* Pðß©*¢ Ú@aíÒ ÜfÑfp Š„Bá÷ßŸŠºÒûÆ ¦àꊼ’ÌTê*‡¥¦U]^‹—Iw›•Õ1ØS¢±±+Wžäpx„S¬"nÊâܺ9¨ í¿ˆ¤˜8ꢪãôx·!âà@—¹H$Bÿü“qäHÎ’TÇÍà¢æj¾HÊj4;µ>i½Àm€±c­¨Ô¶·à44H‚xy}ºlÙ$BT©‚)á–†ÖZ€€T‡‰ Põw[oxšÒÉi°@ ÿÄ^5Êbß¾ù#Gš&K˜ŽÖ™waDþUæßÊxÍ"TøÑÁh¸Z@ïp›ä@ACC£_?²–åìÙ•††ê~Ó0töT„>þ¹‚û^€>\Qó»ꮯ#XZÒúõ£HÖuff†jiQ¢¢®­KUðØÂ'1V.úLJZkAÄxdøkõ·‘HȸqÖvvfééëüÖÜ|ÀÖ­üñèÅ‹·DKS /ŽU‰èÿÌLu<ÏÙM ³ èhÐ?Që{V=ûxya³[¯^]O"©õ%¨ÎÒPÌMú6wüz ‡o{Þ´½áØ&“ÈȹoÞTô¾; ÷•Zk˜¯Ö_•G¯uÛðá}|>ŠJïMO…”d4”?iú|Ó ¤g°{­Û!!n( ø‹h!JOã*¬¦ tê§h2éµçmçÎe……]üë¯`{{Ù÷zïK[54Ý¿‡Ñez¹ÛD"ÔÃã'Í Ö­Ò«{R‰„üøã¼‡ ®\yÙ~iˆŠéånŒ=ÈËë©--½çaJïw`ëV6»5&æ6ÑBú:}Âm4šîÆ_þúkFßyeA=éå£1èË/÷dtò¤?ÑZ:-$i ä~½ä ÐKªÑ.d2içNÏ7rnßVÚ$É8ðø—ò+«:÷éA T¤§›ô·&Mêáá´}{ ' ZK‡¨yÕœ›\ç¸ÄTÁ ™¯¹ ñuMMc|ü]¢…´*ö–YŒ×³žn¨Šø„L„×·ÜF§¸üôÓͪª÷Dki‡/×1ó9ã7X´ÉŸ0a¡C‡L&“D"„B¡¡¡áÕ«W±27nܰµµ544ܽ{7–såÊ•1cÆhkkÓétlJ?ÉYØð£ ß!ïÑ´¶ò?ÿP&½h×®]³fÍBQ4--MOOoìØ±(Š>}úTKK«¹¹EQÀìÙ³“’’uuuT*ÕÏÏïÝ»wgΜÔÔÔàÿ´Í| }„¿þzE§ÿðaÑBäò`ïÛ3® ^³@zÑÓ§Ouuuy<Þ† ¶lÙB¡PX,Vtt´»»;VpçÎE…B! ??¿µµ577—Íf …»wïb™„¸­oõ¤®®#]\ì·nMTû³®!àˆJ2>YC§hËøîߘ1ctttžê6À÷ßÏèײwïŸD é43fÌàr¹S¦L|þùç<O²•ÆÀÀàÀ‹-²³³³²²Z¸p¡›››••Õ¤I“èt\ûë+w®d’’ò<0ðLzú÷cÆ &ZKŸ O» 0wn '¼|9HµórB}¹'ÅˆŠšûòåÛK—ž-„H9(}C}ÝmvvtŸÏ##Ó¹ʨyÕÜTAØÃžò†JßP_w 4t¦H„þôa¯f yhæö’Ç¿”%7 Û€¾¾ö¦Mî ÷rs+ ðòTUKüú^õ9&™@·€·÷øQ£,ÂÃSñßtSïå‰j§¥uL{ê{{º H$d×.Ïòÿü“ó¦ÿ\®32ÚW%±©Ðmøä«yó>ݱ#ÏW³*ž6ÝbûÞ‚Dé×_ ÛþcÛ66›‹ÓwzEôáÞ²Á“ô-õñÙ"á@·ý‡±qÿõ뿳ޱ#µk÷]J¸9çjÆ® ÷Ð×ïL@·µ‚ »vy¾xQšœü¬ «“µHÿ6r˜ßó&AS:ð>iG »xíÚ«û÷·èéi­¥§m%,l–P(úå—›D éÁ@·uíÐP÷øø»5Dké©Àž´ôÐÏ૸|·KVVVDW½+P(&drï¿¢ŠF'lL^RR²~ýú &%"ƒ–””¨"2‘W€ÆïååE ˆL.^¼¨¢Èp”Áè6~@·A𺠂}×mJüü">ßv”F¹µP5}ý©%òðáÃ!C†à°¡¢¢¢Ï>û¬®®```°iÓ&6ª Û”†±±1>“”IN¿G£Ñ°YÒzjÝ“"rüøq{{{ccã={öœ>}zÈ!úúúÛ·oùû¸ƒÄf³µµµ_¼xHOOwttÔÒÒ²¶¶>}ú4@$ÅÄÄØÛÛ÷ïß„ ™™™’½Ö¥¥¥ >ÜÄÄ$((¨µµUf&ø¸çêH/vùòesss‹8þü°aÚ››AxxøàÁƒ—,YÒÐЀæóù!!!¦¦¦&&&!!!|>_¦ Éé÷$5444,]º”F£YXXs¹\lž={ÖÞÞ~À€ûöíSRËtUÜ è€ÄÄÄvË,\¸°±±1!!0þüÆÆÆ£GêêêîÞ½kddÄçóQ=s挃ƒƒH$b³Ùšššqqq•••ÇŽ#“Él6ûèÑ£&&&ÉÉÉW¯^µ°°ˆ§ÞÁ®®®yyyYYY¶¶¶23QmhhˆÇäI¦ÙÙÙMƒ-Z²d‰¯¯oUU•©©é£GPŽŽvpp`0¯^½7n\pp0VrïÞ½sçÎ}ûö-ƒÁ;vlXX˜mØ*’éE‹¹¸¸2Œ‘#Gb‚óæÍc±Xñññ€úúúv›ÆËËËËË«ãMÙqÔÝmÏŸ?GQ”ÇãµIççç ‚Þ¾}EQww÷={ö (Êd2)ÊþýûY,–H$jjj …'Ož‡=uê”´Û ¶411ÑÖÖVf¦b©òþÉ,ËÂÂÂÑÑk~E‡žœœŒ¥ß¼y#NÛÙÙUVVbé›7o:99)ІåˆÓ<OCC#''ËONNÆ233%÷›â}ŽªÒmjÝ“ú÷ï P(mÒ 9sæ$''×ÕÕݺukÑ¢ECCÃÌÌ̬¬, ‹)S¦Ü¿ŸD"999‰c:::JohèСXÂÎÎîÝ»w 2å!ÝX¾ÁÊ•+_¿~½fÍ,§´´TÙÞÞÞÓÓK—””Ðétl<;cÆŒâââŽË¨®® …666ØO[[[qIlJ?ñ~#uw›b¼¼¼RRR.\¸0iÒ$¬äp8"‘èâÅ‹L&ÓßßßÃÃÉdš››¿|ùR¼Öëׯ¥Ca @^^Ö<ò2;KYYYLLÌôéÓ7n܈嘙™‰o{gggGEEai&¶,‹ÅÊÊÊê¸ SSS ¢¢"ìgaa¡¹ù‡—nÄSGŽºèè“'O»víòññÁrquuMJJjlläñx E[[ÛÏÏ/$$$--­ªªêúõëaaaÒ¡Ö­[WPPðäÉ“-[¶,^¼X^æû÷ﱓÈ6i@mmmÕÇD"‘ŸŸ_``àùóçoݺ•žžðññÙºukNNNNNN@@@ii)aΜ9›7o.--e0nnnGŽQ ­Íô{ eÁ‚AAAÅÅÅ999Û¶mÃöê…*ºçŽ:vÞÖfªMéôêÕ«ûõëרØ(^+11ÑÆÆ†J¥ÚÙÙ¥¥¥¡(ÊãñvíÚ5dÈ]]Ý &œ;wH·%$$XZZÒh´ÀÀ@‡#3ýø¬\2-oß>|xôèÑ<EÑ””:Îd2¹\npp°™™™¾¾þÂ… Y,¤±±qÙ²e†††FFF+W®lnn–)ƒÏçOš4IWW·&“éããcddD§Óׯ_ –·ßÐGG aË–-ÞÞÞZ¥ÍD°2ç…%d²Xi‘¡:·õà«»\.·¢¢âøñãçÏŸ'Z ¤Côàó¶G}úé§~~~S§NíN==½U«Vu$ÔD†² ì-AçÏŸOÈÖ! ÀåÂ… J܃mt? Û øÝÁ"G £F25í 3%¢(Âåöëׯ…h!ÊáÕ«WÎÎΪ%v½mÆ eeeDm]¹TTèëÿïUTªh-JÀÙÙYE× àw@”€‹KtnnŶmk×~A´µž·u—’’ºÜÜ À¥K]ù–`Ÿº­»$%=¥PH€þ©ø÷ß*¢å¨5ÐmÝå?óù"™¬qùò ¢å¨5ÐmÝ‚Á(+/gai@xáÂx¬è¶n‘šúœBÑÿ,/geg÷’¶*€në:B¡èâŧ|þW=ÈdÔÔçJRs ÛºÎãÇÅõõ=®-“’ž(k¶Þt[×iÓb0™-ÿ]@ˆõº­‹ðùÂääç’Ý(™LJN†#SÙ@·u‘;wþin–1Ó¨@ º|ù'À_’úÝÖERRž‘ɲ÷‡Óš‘‘‹³žt[¹u+W }Et›Là]ù.’•UX[Û„¥Ÿ>-‰¿{ô¨¯x©£ã KËÞ?­BgéÁoøËøñ6â4Š‚øø»N ÊCìI!xÝÁè6~@·A𺠂Ðmü€nƒàt? Û øÝÁè6~@·A𺠂Ðmü€nƒàt? Û øÝÁè6~@·A𺠂Ðmü€nƒàt? Û øÝÁè6~@·A𺠂Ðmü€nƒàt? Û øÝÁè6~tú+ÏAAA¹¹ðƒÙÑÔ¤W^nag÷†h!jǪU«æÍ›'þÙi·!2bÄe ƒô6^¿~=uêÔ .ˆsºòMq//¯©S§*M¤—²sçÎ69ð¼ ‚Ðmü€nƒàt?zÞÌCååå‹/ÎÌÌì~¨ŒŒŒ~øA:?>>ÞÖÖ¶;‘§M›væÌssó.¬Ûý N›6M:Sf@ñ¶:µÑ.+ìynS"'NLJJTVV`i€žž¡º”@LL No·˜®®îÂ… qЃѧݦ©©©©© àp8€­Hit¤:úúú+W®ÄA†JÎÛ¦M›víÚ5__ßo¾ùæÜ¹s7nÜX¸pá¬Y³Ž?8|øð¾}û°’ÇÍÍ-??ððáCWWWooï7nPMIIñõõuwwÿî»ï^¼x!ÙG”——O›6íÁƒ>>>žžž‡æóù23Å…%WT _¦By‘A\\œ§§§§§g\\œ@ wÖe6›½gÏž¯¿þÚËË+66–ÇãÉËÄ@Q466vùòåïß¿—©_ž$yüý÷ß+V¬pss›;wî¹sçäí é‰D¢?þøÃÇÇÇÝÝ=  Ë7“Tul{öìYllì;w¢££§NzìØ±ŒŒŒÌ›7oÊ”)Û·o …< Óé¶¶¶\.7"""00pâĉ=Ú·oŸ³³ó­[·~ÿý÷ 6Œ1¢  `÷îÝÒJMMݽ{wSSSTT”žžÞôéÓ¥3}}} ‚ƒƒ±U$Ó2‘©°¢¢BfäK—.UVV=zó͉'V¬X!3ìÏ?ÿÌd2ãââ8Ndd¤¶¶¶¯¯¯t&VE=úüùóƒêéé±Ùlyj¥%¸\.vÀÆ R©­­­;vì˜1cÆîÝ»³³³£¢¢ÜÝÝe”®‘Abb¢¸!¢££ì=¨jLº`ÁmmmWWW€···¶¶¶›› ©©iäÈ‘d2™Á`nݺåêêŠ ŸÏGQ”ÃáP©T77·ôôtMMͤ¤¤Õ«WOž<ÙÈÈhܸqË—/—ÞК5k,,,ìíí—/_~óæMy™:::³fÍ–J¦e"S¡¼È×®][·n‰‰‰µµõªU«?~,3¦@ ÈÈÈ ¤ÓéÖÖÖË–-»yó¦ÌL¬üo¿ý–˜˜ÞîI¤Ì=°|ùrw ?~L¥R;ddd„Ýxlnn–PºF—/_–lˆ.w¾ª:¶ikkÈdr›4€D"Mž<ùÞ½{ÖÖÖÏž=Û¸q# ÿþ‡ºtéÒ‰'† æíí=nܸÊÊJɱ¡µµµô†,,,°ÄàÁƒkkkdv™ åE®ªªš;w®¸€ŽŽŽÌ˜,K$™™™a?ÍÍÍkkkefbéÿý×ÉÉéÌ™3aaamBµ¹µ-³²2GÄïÞ½Û¿?‡Ã:t¨‚êK×H ´Û˜QÂÔ©S###­¬¬Fell hmm‰DàöíÛ[¶lIMM¥Ñh………66f9.))‘õîÝ;¬òeeeFFF 2»©P^d}}ýC‡aMËf³™L¦Ì€†††$©²²ÒÒÒPQQA£ÑdfbåüñÇÚÚZÿ/¿ür̘1X&Ö¹×ÕÕµ»¤immˆˆˆˆˆ˜0aŸÏ¿víš¼’Ò5Ú±cG» ш¹ºëèè( O:…uµABBBîÝ»×ÜÜÌçóÉd²¦¦æÌ™3ccczôhMM™™Yxx8•J]°`P( MySQL++ Reference Manual
myset.h File Reference

Declares templates for generating custom containers used elsewhere in the library. More...

#include "common.h"
#include "mystring.h"
#include "stream2string.h"
#include <iostream>
#include <set>

Go to the source code of this file.

Classes

class  mysqlpp::Set< Container >
 A special std::set derivative for holding MySQL data sets. More...
 

Functions

template<class Container >
std::ostream & mysqlpp::operator<< (std::ostream &s, const Set< Container > &d)
 Inserts a Set object into a C++ stream.
 

Detailed Description

Declares templates for generating custom containers used elsewhere in the library.

mysql++-3.2.2+pristine.orig/doc/html/refman/autoflag_8h_source.html0000755000372000001440000002361212502417162024632 0ustar robertousers MySQL++ Reference Manual
autoflag.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright © 2007 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the
8  CREDITS.txt file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_AUTOFLAG_H)
29 #define MYSQLPP_AUTOFLAG_H
30 
31 namespace mysqlpp {
32 
36 
37 template <class T = bool>
38 class AutoFlag
39 {
40 public:
42  AutoFlag(T& ref) :
43  referent_(ref)
44  {
45  referent_ = true;
46  }
47 
50  {
51  referent_ = false;
52  }
53 
54 private:
55  T& referent_;
56 };
57 
58 } // end namespace mysqlpp
59 
60 #endif // !defined(MYSQLPP_AUTOFLAG_H)
61 
A template for setting a flag on a variable as long as the object that set it is in scope...
Definition: autoflag.h:38
~AutoFlag()
Destructor: sets referent passed to ctor to false.
Definition: autoflag.h:49
AutoFlag(T &ref)
Constructor: sets ref to true.
Definition: autoflag.h:42
././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__coll__graph.pn0000644000372000001440000001155212502417165033133 0ustar robertousers‰PNG  IHDRË€* ËbKGDÿÿÿ ½§“IDATxœíy\W×ÇOH@Eeq´P•ÖÚJ- .ˆ¸!›€Rª K+ Up© ZWD­ .…ªQ×¢¢¥. JÁÊGÅGQ– Hˆ eÞ?æyòÆdHÂ2èýþuç̽çž;÷ÇÜ›™BÁ0 ÒPSuˆ^R‚\Â䂆 šäApppQQ‘ªBAôüýý]\\ćÉÏ’ eòäÉC‡UE`ˆÞÀýû÷­¬¬Îž=+¶Ð¤j¬^½ÚÍÍ­k£BôdŃöarA C R‚\ÂäÒ½öêÕ+ …Ò‰+++===GŒ¡¥¥5iÒ¤ôôôNtÞ‰ˆN¡P^½zExªMP$ÐÑÑqss«©©é´pÛB÷RXçR[[;aƒÁd2>|èîîîááqýúuUÇÕ6 °nݺv4ÌÉÉa±X•••™™™åååAAA›2H?­èM„‡‡ÛÚÚ&&&⇟þyUUUTTÔìÙ³UX›ÐÓÓÛ½{w;4hÈ!```°gÏžùóçwvhJÑæ{…B9v옅…Å AƒvïÞœœ}ú˜˜˜$''€H$ŠŽŽ¶°°ÐÖÖ¶²²ÊÊÊ’\ ð¥áâÅ‹Ÿ}ö™¾¾~pppss3¡>]G$Ë©©©!!!’Á‡‡‡'%%áe‡óý÷ßëéé¯]»¶©©Iá蔩påÊüÆi`` V…Bùý÷ß-,, B¡pïÞ½£GÖÖÖž2eʃZ»à’#’õ|>?44tðàÁúúú¡¡¡|>_Ö •JÕ××—¡ì)éY1˜Àd21¹€‡‡—ËÅï nnn\.7>>Þ¿ûöm]]]>ŸaXJJʘ1cD"QCCƒ††F\\‹ÅJJJ¢Ñh ñññúúúiii•••W¯^566€—/_â!á;;»/^äææš™™EDD1 ãp8 xxâr]]°ÙìÖ²dÉ’3fŽ;w%t +p¹\:¾|ùòòòò””¨®®Æ[¹¸¸ÔÕÕ%$$@mmíþýû%‡ohhˆ¿’qН ¡ ÃöìÙãììüöíÛÂÂÂ/¾øbýúõxÍþù§¾¾žËå>þÜÆÆfÛ¶m†FH8A­y–«««««ë'‚‘R2 +((À0¬¥¥EªüòåK@0dÈ[·naæàà°{÷n ÃØl¶ººzTTT]]H$ª¯¯ …cÆŒ9qâ„ØíÉ“'eVXXˆŸe2™fff„ÆÖâd³ÙPWWGx¶¥¥…J¥>yò?LKKÃ]É ÍÍÍEEE B¡ðöíÛ’­²²²$kŽ=Zvø˜ “òƒa˜¹¹9‹ÅÂ+dffŽ?“É*íׯ^™0B jͳ|dÖž¾¶¶6¨««K•€J¥:99¥¥¥½ÿþæÍ›K–,¬¬¬ÜÜ\ccãiӦݽ{WMM­¤¤düøñbŸ–––²5 /˜››———Ë1Ê¢££3xðàgÏžIóòò&MšôñãÇwïÞ …BSSSÜnff&v%gt +Ðéô/^ØÛÛOœ8ñĉ’­ð»”¸fYY™Âá"åJKK ð³fÍzýú5n+µ±±qݺuÓ§OÇ0Œ0B ’ã¹MtþgIWW×ôôô³gÏ~ûí·øÚÇãñD"ѹsçØl¶ÏüùóÙl¶‘‘ÑãÇÅ­ž>}*ë ÿó€/^àW¶5#! ,Ø·oŸätJJ ŸÏg0ƒ¦R©%%%¸½¸¸ØÈȨýcþ<ÏÍÍ-44´  àÈ‘#’§ð93bÄ…Ã'DÊèéé‰ÅTWW—››+UÁ`¬X±¢¬¬¬ººš0B RƳR·£|¬­­Á¶mÛ¼¼¼p …B±³³KMMår¹---êêê cùòå¡¡¡/^¬ªªºvíÚúõëe]…„„¼zõ*//oãÆK—.mÍøáÃñFÉòŽ;nß¾íåå•““SXX¸uëÖC‡íرÔÕÕ/^üúõë'OžlÚ´ ¿Ývæææ––:ÎãñÂÃ྾ž°f@@€äð·lÙ">USSS%ÂNœœ6lØðæÍ›ÂÂB{{û˜˜)?o߾ݳgÏСC D!áÉñÜ6$—LPn&Öuk倀€¾}ûr¹\q+&“ijjJ§ÓÍÍÍ/^¼ˆï$¶mÛ6räH---++«S§NÌ>,11qøðázzzAAA<Ј}ºS‘,cVZZêââbhh¨­­ýÕW_]ºtI|ŠÍf{yyéêê¬^½w¥pt +ìß¿àÀC‡=r䈇‡‡¾¾>aM@°wï^333MMM+++üö€}+Gj&Û#—Ë]¶l™ŽŽŽ®®®ŸŸ_cc£”555KKËÜÜ\¼!a„²ÔšgùtÂN_6nÜèééÙ¦&RÊ:”cDt+dÖÉO\›šš*++;vúôéÎõŒè¡tò>ìÁƒ_~ùåòåËmll:â§_¿~þþþÊÝé,j&“‰r\íduo~óè …!È) A.Har‘~ZqëÖ-‡£’Pº?†Õ× ûõëÍIu¤¤¤ÄÄÄä“äÃ1ô]\ùôíûù!+ÕÔú¨:nÍš5k$EõÉÓ „|.<˜—Wºs§Ë÷ßOQu,=´S–wï>üý÷ ÒÒþVu,= ¤0eIK+PS£`äç¿)+c«:œR˜²œ;—'Š€JU»t鑪Ãé1 …)Eqqõóç,¼,ˆÎžÍSm<=¤0¥¸p¡@]]|­°—/ßýç?Šs€¦$gÎ<äóEâCzñ"Z(•)L1—UTÔIZáÙ³уe@ SÌ… 4UÊXYÉyôè­JâéY …)@(;÷·@ ”²ÓhÔ  TRÏ)L”°Ù ²v@˜šú7þü!¤0¤§çË.‘8uusr^žBˆA SÀ …"J£Q©T*•ª†—qÙ]»öDÕvwЛo\½ú¸®î#^~ü¸ì÷ßïGFþÿ÷Æ6vl'|Y¼ƒÖ.]ú' àdeåUÒ“@«$‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\ºîç^KKKoܸÑeÝ‘Á“'\8zô¨ªé}úôqww§Óé]ÔÖU¸»»wÑHƒBQ§Rû«:ŠN 55µËæ½ëîaB¡ÐÆÆ&<<¼ËzDbkk+º¬;´C R‚\Â䂆 ——Â***lmmU@»"é>Á·‰—Âz1,káÂ…ªŽ‚¤°^‚H$âr¹ªŽ‚€n§0[[ÛŒŒ oooGGÇS§NݸqÃÃÃcîܹǎ€Ã‡GFFâ5y<ž½½ýË—/ ''ÇÇÇÇÎÎÎÓÓs€aXzzº···ƒƒÃ?þøèÑ#É%_q²³³½¼¼-Ztøða>ŸOh„O—'ɲl§íˆ„°INNŽ‹‹K}}=ܺuËËË«©©I²Éýû÷W¬Xaooïìì|êÔ)øá‡ÀÉÉ©s§£ãt;…@~~~ll¬ŸŸ_BBÂýû÷“’’“““¹\î´iÓ²³³…B!dgg˜™™555EDD8::ž9sÆËË+22²©©éêÕ«¿ýö›¯¯orròwß}·k×.ÙŽ.\¸°k×®;w>xðŸ'Bã€Ö®]‹Ÿ— ;mG$„M¾ù曉'ÆÄÄÔÕÕÅÄÄüüóÏ}úô7ùøñã–-[F•’’˜ÀápŽ9iii¤LIèŽ [¼x1ƒÁ°³³OOOƒaooõõõcÇŽ¥Ñh………póæM;;; …Âçó1 ãñxt:ÝÞÞþòåË©©©ÖÖÖººº_ýµ¯¯¯lGÆÆÆ¾¾¾™™™­555ç΋Ÿ— ;mG$„M ((¨  `íÚµ .477—lB§Ó“’’‚ƒƒuuuõõõ ±±±“ç óèŽ c0@£Ñ¤Ê ¦¦fmm}çÎ>äççÏœ9´µµ8ðìÙ3WW×U«VR(‹eff&öibb"Û‘±±1^6lXMM£,„¶#Â& ¥¥5oÞ¼ÒÒRÙý;F+// óóó»víšâ ªRº£Âäcccs÷îÝ¿þúkܸqƒ €ææf‘Hqùòe‡7Ö××ëéé‹[•––ʺ*//Ç eeeºººrŒ²vÚŽH›@uuuzzúĉñåOªIDD„»»ûÑ£GW­Z¥äuS=Oa–––B¡ðäÉ“ø2  %44ôÎ;|>ŸF£ihhÌ™3'666;;›Íf?|ø0å&::º¢¢âùó牉‰³fÍjÍØØØxõêUü¬¸LØi;"!l‚aXdd¤““ÓæÍ›óóósrr$›ðù|@@£ÑZZZŽ??þ÷W|y<^'^êN¡ër+: 55µ©S§^¿~}êÔ©¸…N§oذ!>>¾ººÚÐÐ0<<œN§/^¼X(ÆÄÄp8ÿíÛ·K¹š9sæš5kšššf̘±dÉ|M”2‡Ã‰ŠŠÂ·_â2a§ÐÖHý¤§§s8¶zõêýû÷7NÜDKK+00pûöí}ûöõôôœ1cFXXØùóçÇçììüÇ<m£ë~…ÙÍÍ­¦¦¦S²w«ªª6mÚ¤|“ŠŠŠ¥K—feeÊ1v:]Ó‹lmm™L¦›››âªA[%[ZZX,VFFƼyóT B)z˜ÂŠŠŠüýýçÌ™3~üøŽøÑÔÔœ?¾2FDé‘«$¢# UÑ«è «­­Ý¾}»»»ûœ9sîÞ½«êˆˆ¿Ó´µµ­¨¨ <Õûèñ ãr¹¾¾¾áááqqqÓ§Oÿå—_òòòTWÛÐÒÒòððPu¤Ðóž‡Iqüøñ &„††â‡Ã‡g³ÙL&sÒ¤Iª ¬MôïßßÏÏOÕQB¹‡µ–BsçÎgggÉšÞÞÞaaax¹¡¡a÷îÝ .tuumiiE BÊTMžÁ[ݼyÓÛÛ{Á‚gΜ‘H„gL888¬\¹²¨¨H™ÑÉú@·hÑ¢E‹ÅÅÅuå×Ñ:HQa MCC›Í6l˜d;}ûâpðàÁššš¸¸¸={öäåå>}·ËIRX0youïÞ½˜˜ÿøøøúúúÔÔT&“éçç—œœìåå§ä`¥üÀùóçY,V||ü¾}û ð—E=‚£0ÂüQ žŒ ‹@ øóÏ?ƒ‚‚ LLL–-[&NÑ‘“ ¤°‚œäGGG--­Ù³g—˽té’dÞŽòë ”ÈÈÈ Ñ××Çß;=|ø°­PUôì}˜¶¶¶ŽŽÎ›7oÆŒ#6>þü×_=xð —ˉD†††¸ÝÈÈHœ#'AHaÏÆé „É3ééé²5ù|~lllmm­©©éæÍ›ñïkÀÊ•+%k¦¤¤ÈïÔÇÇ'::zÅŠ eêÔ©þþþH×€ÞKþë@ï%½ ¤0¹ …!È) A.HarA C R‚\ºô‰keeå•+Wº²G„êé²ÿ«þÓO?©z¬*•zïÞ½.›÷®{¦øw‚öarA C R‚\Â䂆 —ÿp†¬_Ô§IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/field__names_8h_source.html0000755000372000001440000004745412502417162025447 0ustar robertousers MySQL++ Reference Manual
field_names.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #ifndef MYSQLPP_FIELD_NAMES_H
29 #define MYSQLPP_FIELD_NAMES_H
30 
31 #include <string>
32 #include <vector>
33 
34 namespace mysqlpp {
35 
36 #if !defined(DOXYGEN_IGNORE)
37 // Make Doxygen ignore this
38 class MYSQLPP_EXPORT ResultBase;
39 #endif
40 
42 class FieldNames : public std::vector<std::string>
43 {
44 public:
46  FieldNames() { }
47 
49  FieldNames(const FieldNames& other) :
50  std::vector<std::string>()
51  {
52  assign(other.begin(), other.end());
53  }
54 
56  FieldNames(const ResultBase* res) :
57  std::vector<std::string>()
58  {
59  init(res);
60  }
61 
64  FieldNames(int i) :
65  std::vector<std::string>(i)
66  {
67  }
68 
71  {
72  init(res);
73  return *this;
74  }
75 
78  {
79  insert(begin(), i, "");
80  return *this;
81  }
82 
84  std::string& operator [](int i)
85  {
86  return at(i);
87  }
88 
91  const std::string& operator [](int i) const
92  {
93  return at(i);
94  }
95 
97  std::string& operator [](size_type i)
98  {
99  return at(i);
100  }
101 
104  const std::string& operator [](size_type i) const
105  {
106  return at(i);
107  }
108 
110  unsigned int operator [](const std::string& s) const;
111 
112 private:
113  void init(const ResultBase* res);
114 };
115 
116 } // end namespace mysqlpp
117 
118 #endif
std::string & operator[](int i)
Get the name of a field given its index.
Definition: field_names.h:84
FieldNames(const ResultBase *res)
Create field name list from a result set.
Definition: field_names.h:56
FieldNames(const FieldNames &other)
Copy constructor.
Definition: field_names.h:49
FieldNames()
Default constructor.
Definition: field_names.h:46
FieldNames & operator=(const ResultBase *res)
Initializes the field list from a result set.
Definition: field_names.h:70
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
Holds a list of SQL field names.
Definition: field_names.h:42
FieldNames(int i)
Create empty field name list, reserving space for a fixed number of field names.
Definition: field_names.h:64
mysql++-3.2.2+pristine.orig/doc/html/refman/classAutoFlag-members.html0000755000372000001440000000420712502417162025230 0ustar robertousers MySQL++ Reference Manual
AutoFlag< T > Member List

This is the complete list of members for AutoFlag< T >, including all inherited members.

AutoFlag(T &ref)AutoFlag< T >inline
~AutoFlag()AutoFlag< T >inline
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x64.html0000755000372000001440000001702412502417164023644 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TCPConnection-members.html0000755000372000001440000003724212502417164030271 0ustar robertousers MySQL++ Reference Manual
mysqlpp::TCPConnection Member List

This is the complete list of members for mysqlpp::TCPConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() const mysqlpp::Connection
connect(const char *addr=0, const char *db=0, const char *user=0, const char *password=0)mysqlpp::TCPConnection
connected() const mysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() const mysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() const mysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() const mysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() const mysqlpp::Connection
kill(unsigned long tid) const mysqlpp::Connection
operator private_bool_type() const mysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_address(std::string &addr, unsigned int &port, std::string &error)mysqlpp::TCPConnectionstatic
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() const mysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() const mysqlpp::Connection
server_version() const mysqlpp::Connection
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
TCPConnection()mysqlpp::TCPConnectioninline
TCPConnection(const char *addr, const char *db=0, const char *user=0, const char *password=0)mysqlpp::TCPConnectioninline
TCPConnection(const TCPConnection &other)mysqlpp::TCPConnectioninline
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() const mysqlpp::OptionalExceptionsinline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~TCPConnection()mysqlpp::TCPConnectioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection-members.html0000755000372000001440000003775112502417164033074 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UnixDomainSocketConnection Member List

This is the complete list of members for mysqlpp::UnixDomainSocketConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() const mysqlpp::Connection
connect(const char *path, const char *db=0, const char *user=0, const char *password=0)mysqlpp::UnixDomainSocketConnection
connected() const mysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() const mysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() const mysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() const mysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() const mysqlpp::Connection
is_socket(const char *path, std::string *error=0)mysqlpp::UnixDomainSocketConnectionstatic
kill(unsigned long tid) const mysqlpp::Connection
operator private_bool_type() const mysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() const mysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() const mysqlpp::Connection
server_version() const mysqlpp::Connection
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() const mysqlpp::OptionalExceptionsinline
UnixDomainSocketConnection()mysqlpp::UnixDomainSocketConnectioninline
UnixDomainSocketConnection(const char *path, const char *db=0, const char *user=0, const char *password=0)mysqlpp::UnixDomainSocketConnectioninline
UnixDomainSocketConnection(const UnixDomainSocketConnection &other)mysqlpp::UnixDomainSocketConnectioninline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~UnixDomainSocketConnection()mysqlpp::UnixDomainSocketConnectioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NamedPipeOption-members.html0000755000372000001440000001020712502417164030646 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NamedPipeOption Member List

This is the complete list of members for mysqlpp::NamedPipeOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TCPConnection__inherit__graph.png0000644000372000001440000001521512502417165031654 0ustar robertousers‰PNG  IHDRË»D»ý¥bKGDÿÿÿ ½§“BIDATxœí{XSGúÇ' 7#L° 6Jµ­¢ë•U)Õµë ]`•**¸U|\‰v}Vqµ*Z[k¥*‚¢ U¹‘­Òâ¥(`E.jýD%(’ÐHÌíüþ8ûdc h†ˆ}?¼yÏÌ;ïœóÍ̜ɑC!6¨æNxË…x…x…x±ÐþðèÑ£O?ýT&“™+` ãïïÿÍ7ßh{(Ú÷’™™™‹/ í÷Ä€·¦¦¦²²2Ý ýr™™™ý•ðVAŽP:NX‡x…x…x…xyãvÿþ} …b€\.÷Ýwßµ³³;vì®]»”Jef¢‡bˆ×o¢O9ô3î%ß&:::ÆÇb±öìÙãååuûöí-[¶\¼x±¸¸˜F£é—çóùãÆ{þü9BÈÁÁaÓ¦M&OéÚµkžžž&«O?ôÅ(-222t<ýO}}½ sˆ‹‹›qrrrss‹‹‹#ö P(ß}÷¿¿ÿСC÷îÝK–lذ¥K—¶··“… —Ëe±XL&“Ëå* L}Ñ¿d¯B¯Ô!&‹SRRB‹-‹ÅIII¡çÏŸ_¾|™Á`( ‚ ÒÓÓ9ŽZ­–H$ÖÖÖGŽÇ޳°°H$IIIL&“Çã577º¹¹!„4ß<Ò®««+++óööÞ¶m›A'AíííšaIc“¬µµU'ÿÒÒR‹ÕC|²˜¶1}úô†††ššš‘#G’"„.\(‰’““Bmmmb±ØÊÊjùòå?NOOG={öLg «ªªêxòÐÒ¥K###[ZZX,Vyy9A_|ñ‡Ã©©©©­­ Œ‹‹#KîÙ³gÁ‚=ª©©yï½÷>ûì3}1xÉz†Aý¼¢Â*++ ‚Ëå:v}}½R©tvvþᇂ˜5kVBBAB¡ÐÒÒrß¾}"‘H­Vwtt¨T*‡sâÄ MØ“'Oê+¬¦¦F“›···Agwyv§°ëׯ;99õŸôhl¹\N£Ñnß¾Múy<Ù(B¨¤¤D»ï/^¼øå—_$‰J¥º|ù2éÔQXw_r‘Häææ@^r‚ |}}y<iß½{Wcûùù Ò¾xñâèÑ£qôÅà%ëîTkÚÕ×Ï+ÞKÚÙÙ!„,--ul„F›?>Ç{þüyqqqDDBÈÑѱ¤¤¤¬¬ÌÍÍmêÔ©W¯^¥R©|>ôèÑš˜ú ùøø†ŸŸßãÇ{pêãàààìì\UU¥ã¯ªªzÿý÷õôéS•J5bÄò£···¦¤‹‹‹vß­¬¬êêêBBBÞÿý'NŒ¦¿Ód»jÕª;wî¬^½šô<|øP“ž¿¿ÿ¼yóH»±±‘Íf“÷¡3gÎ|ðà޾¼dcö –ÝŠÐÐÐÜÜÜÌÌÌI“&‘sŸT*U«ÕYYYB¡0**jΜ9B¡ÐÕÕµººZSëÎ;ú¡È/B¨®®Ž<Ý9 ±}ûv•J¥ñtvvîÙ³'$$ÄøP,‹F£ñù|òcCCƒ««+iëœt©TºhÑ".—[YYyèСÓ§©©)11qÆŒ6l =...¤]UUµsçNÒ&`ÍÈWVV†©/ú—¬O=ú/½Žrú ­/¢A[©T2™L‹•ššJ’J¥666ÙÙÙ­­­Gµ±±‘J¥»víb2™gÏžEEE×aAAAõõõ>>>[·n5è$ºY‡ñ믿úúúN:µ¨¨¨®®ŽÇãq8œ‰'Êd²â“k#íY&<<|úôé|>¿¶¶–Ãáê÷]$Q(”¢¢¢ÎÎÎ7"„*++ufÉk×® ^† •J5cÆŒ;v…Bggçüü|‚ âããjkkkkk'Nœ¸råJ2HllìÂ… «««׬Yƒ£//YÏÂ0å:¬g…3hÐ ±X¬|ĈVVV~~~yyyAÈåòíÛ·{zzÚÚÚN˜0áÔ©Sú KIIñððprrZ»v­T*5èÔ9ƒ:wé‰dÆ #GޤÓéçóÏ?ïêêê.¾B¡˜4i’­­­N¡P¸dɃÁf³×¯_O6j°ï_}õÕСC÷»ß:t(,,ŒÉd³;xðà»ï¾+—Ë ‚ÈÍÍe³ÙB¡P&“ÅÅŹ¸¸ØÛÛ‡……‰D"2ˆX,^¶l™££#ƒÁXµjUgg'¦¾è_²ž1™ÂŒaóæÍááá}ª¢£ ƒÛ9&Üãéÿí"|¼!}1¨ÓïéËd²æææãÇŸ>}ÚäÁ‡éWúååå|ðÁòå˧M›ö:q† mŒÓ„ñ(or_  PXïdeý¬VØ—>w®Zß è ë…––_ËËùú¿|‘}Ã,) ,@a½PPPE£8Kj5ñóÏ‚öþOi` ë…œœ›ä6˜> `¢ì…·ü>T*b³íI[©TËd [[kÍQØëx¶¢äçWÅÄœlnÞoîD0Kx…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…x…˜!00|øpsw T*ÝÚÚÝÜYà‚Ëåâ–¿ãÚØØ¸~ýú &àà૯¾jllÄ×_ ?~|hh(¦à€ÉÉÊÊÂÖa^@a^@a^@a^ÞN…Ý¿Ÿ¢ýÆÑצ¹¹9<<|øðá¶¶¶cÇŽÍÍÍ5að¾bòÞaåíT˜iikk3f NÏÈȨ¨¨øË_þöý÷ß÷g|>ßÉɉ´6mÚÔŸ­¿ð^£Þ‰ JII!?þþ÷¿oiiÙ·o߇~Øo9¨Õê¶¶6ÒvrrJHHè·¦_³a åøñãþþþÆ KHHHKKóôô´··ß²e B(666**Š,)‘Hètú­[·B666^^^iii!µZ˜˜èïïogg7a„’’턜Pòòò|}}™Lfllì‹/ :Ñ˳¶““³nÝ:íäããã;FÚíííŸ|ò‰“““››[\\œL&#{÷Ýwßùûû:tïÞ½š.ë; —Ëe±XL&“Ëå* ¥Rïîî>lذ¥K—¶··#„ÆrvvÖÉÍøÖÍŽ B½– ‹Å䨰hÑ"±Xœ””„zþüùåË— †B¡ "==Ãá¨Õj‰Dbmm}äÈ@pìØ1 ‰D’””Äd2y<^sssaa¡››B¨¾¾žìi×ÕÕ•••y{{oÛ¶Í “ ˆöööääd2=-‰BB¡°»ŽDDDLŸ>½¡¡¡¦¦fäÈ‘d(„ÐÂ… E"Qrr2B¨­­­;çž={,XðèÑ£ššš÷Þ{ï³Ï>ûâ‹/8NMMMmmm```\\œ¦#d‹Ú¶ñ­÷Lhhhhhh¯Å^s*¬²²’ ¹\®c×××+•Jggç~ø ˆY³f%$$! ---÷íÛ'‰ÔjuGG‡J¥âp8'NœÐ„=yò¤¾ÂjjjÈ£ÞÞÞÝå) B"‘ÈàQ¹\N£Ñnß¾M~äñxd(„PII‰vºsúùù ²úÅ‹GíëëËãñHÏÝ»wIÛ ÂúÔzÏàS˜9Wúvvv!KKK!D£ÑæÏŸÏãñž?^\\rtt,)))++sss›:uêÕ«W©T*ŸÏ=z´&f@@€~C>>>¤áçç÷øñãœú8::²X¬»wïj;oܸ1vìØ®®®§OŸªTª#F~oooM(íuçllld³Ù …B¡Ìœ9óÁƒ>Ôäæïï?oÞ¼îrëkëfáͽ— ÍÍÍÍÌÌœ4i9÷I¥RµZ••% £¢¢æÌ™# ]]]««ÿ÷¢Ú;wîè‡"¿ô¡ºº:òÔwç4ÈÇüå—_Z/âLOOW(t:ÅbÑh4>ŸOú\]]I›J5pnõNNNš1F$•••¹¸¸h~„®ªªÚ¹sgw‰õµuó€c`DÆÍ’š3kÐV*•L&“Åb¥¦¦’‡¤R©MvvvkkëÑ£Gmll¤Ré®]»˜LæÙ³gAQQ‘ÁuXPPP}}}EE…ÏÖ­[ :‰nÖaA<{öŒÁ`DDD”––VWWoÛ¶ !tîÜ9òhxxøôéÓù|~mm-‡Ã!Cì‘AgllìÂ… «««׬YP[[[[[;qâÄ•+Wj:ÒÑÑA¼T«Õ!µZ•uÃÜ @aF‘—w‹F£"DA©Õ¨ºº©©Ih0£Èʺ¡R©4-,¨yy·Ì˜ÏÖ;uu-÷î ´wu”JUf&L”F ëüü*KK𶇠ÐýûOïݘ+¥(¬‚ÈȨP(T:~++ ˜(Ö 55Ÿ<éûåreVÖ øE¤W@a½pöl¥¥¥á_o››Û++õs>PX/äæVªT*++ ýQ «Ìà›ÎúÞbb‚ÚÚ$¤ÝÔ$¼~½aÑ¢ÿýì=i’™ò0À³} ?¿*&ædsó~s'2€YÀ ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( ÀKþ¢\.?sæŒL&×ÍÎíÛb„ÐÑ£G͈9ñññ êCÂhrrr°¥ ,,,Œ× A}ÔJ%B¨¤¤[òÀ›Î¥K—þõ¯õ© ¬Ã¼€Â¼€Â¼€Â¼ °76|ûöí_ýÕÃÃ#""bòäÉdí{u:Ëf³IOûž®Wf€)Ì„Lœ8‘ÜkÖ¬ÑìÅ 2D,¯X±âøC||¼jÕªäääëׯ;vlõêÕiiib±xêÔ©¥¥¥äõ(--e³ÙÞÞÞ2™lÛ¶msçÎ=sæÌ’%KöîÝ+“É ÿýï¯X±"--méÒ¥»wïÖoèìÙ³»wïÞµkWyyù©S§ºs:88ÄÅÅ‘GµmƒH$¡Pèîî®í4h“ÉÔ|”ÉdR©´«««¹¹ù믿öõõµ³³ëµâZ[[9²gÏž7nœ>}šôÿôÓOß~ûmtttRRRGGGwÎììl@””ôå—_VVV¦¦¦fgg_¹re÷îÝû÷ïojjJOOG:t!ÄãñtúÕ§ÖM…-^¼˜N§#„ÂÃÃétzHHB¨££cäÈ‘555¡âââàà` …¢P(‚J¥VVV!!!ÖÖÖ999111“'Of0+V¬ÐohõêÕnnnþþþ+V¬¸xñbwÎÁƒÏž=›<ªm„|•…Bé¡ÌŠ+fÍš5{öìÈÈH±X¼eË–^+*•ÊüqíÚµl6ÛËËkÙ²eš„çÎkkkûá‡"„4œ¾³¨¨hݺuL&ÓËË+::º¢¢¢°°pùòå^^^žžž›6mâp8Ý%Ü×ÖM–uNGYXXèØ!*•:yòä+W®xyyݼysÆ !;;»ýû÷ggg§¦¦¾óÎ;áááÀÛÛ[ÓËËK¿!777ÒpwwommíÁiÔ¾`÷îÝûúë¯8@.ÝÒÓÓ]]]ûTQ,«ÕjÒïêêªÉÍÉÉIûuçliiÑž‚¬P(4õðððððè®S"‘¨O­›3ì‡M›6íêÕ«—.]5jÔ°aÃB/^¼P«ÕÛ¶m+((˜5kÖæÍ›;::œœœ4µõC=~ü˜4ššš FÎ>1qâÄŒŒ í÷"^¼xQ©T’òzµŠŽŽŽT*U øïËç›››ÉK‹ºöôöööééé%%%%%%‡b0---äÑû÷¤AúÚº 1ƒÂT*ÕÉ“'Éi!D¡P¸\î•+W:;; …………µµõG}tøðáÒÒR¡PXQQað™™ÄÄÄ'OžÜ»w/%%eæÌ™Ý9;;; É£ÚvwDEEUWWïÚµëÎ;|>ÿäÉ“<Ïà4m|E ‹   o¾ùF }Êçó7nÜxöìÙààà”””Õ&o5¼~믌v+¨Tê”)S¾ÿþû)S¦++«üãIIIÏž=sqq‰·²²Z¼x±J¥úöÛoÛÛÛÉ•Ç矮jÆŒ6lÉdÓ§Oˆˆ G~'B¨½½}ß¾}äòKÛG>|8>>^*•º»»ïܹsüøñ½v­çŠëÖ­KLLŒ‰‰±´´üãÿHæf¼#733sñâÅ&Ù NIIiiiùç?ÿi|íiƒ»ÕoÂöÛ ùôNŸÞ«Üß³¤\.EEEúÓŸú¹iÀ,ô·Â~ùå—èèè>úhôèѯgðàÁsæÌ1Æ ˜óÌ’ÀeÌ’Ào P€P€P€P€—>ìéÓh4ôò3ÄÀoRÆÓ‡Ý ™LvþüyòÑ.à7 ‹ÅÒüÜg }P¼°ð ð ð ðòÿÛ(;9€¿F»IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x6f.html0000755000372000001440000005061412502417165024744 0ustar robertousers MySQL++ Reference Manual
 

- o -

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer-members.html0000755000372000001440000000441512502417164033336 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RefCountedPointerDestroyer< T > Member List

This is the complete list of members for mysqlpp::RefCountedPointerDestroyer< T >, including all inherited members.

operator()(T *doomed) const mysqlpp::RefCountedPointerDestroyer< T >inline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryResult.html0000755000372000001440000012444312502417163027153 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseQueryResult Class Reference

StoreQueryResult set type for "use" queries. More...

#include <result.h>

Inheritance diagram for mysqlpp::UseQueryResult:
Collaboration diagram for mysqlpp::UseQueryResult:

Public Member Functions

 UseQueryResult ()
 Default constructor.
 
 UseQueryResult (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 UseQueryResult (const UseQueryResult &other)
 Create a copy of another UseQueryResult object.
 
 ~UseQueryResult ()
 Destroy object.
 
UseQueryResultoperator= (const UseQueryResult &rhs)
 Copy another UseQueryResult object's data into this object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const unsigned long * fetch_lengths () const
 Returns the lengths of the fields in the current row of the result set.
 
Row fetch_row () const
 Returns the next row in a "use" query's result set. More...
 
MYSQL_ROW fetch_raw_row () const
 Wraps mysql_fetch_row() in MySQL C API.
 
void field_seek (Fields::size_type field) const
 Jumps to the given field within the result set. More...
 
 operator MYSQL_RES * () const
 Return the pointer to the underlying MySQL C API result set object. More...
 
- Public Member Functions inherited from mysqlpp::ResultBase
virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fields & fields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer
< FieldNames > & 
field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer
< FieldTypes > & 
field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::ResultBase
 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::ResultBase
DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

StoreQueryResult set type for "use" queries.

See the user manual for the reason you might want to use this even though its interface is less friendly than StoreQueryResult's.

Member Function Documentation

Row mysqlpp::UseQueryResult::fetch_row ( ) const

Returns the next row in a "use" query's result set.

This is a thick wrapper around DBDriver::fetch_row(). It does a lot of error checking before returning the Row object containing the row data.

See Also
fetch_raw_row()

References mysqlpp::ResultBase::driver_, fetch_lengths(), mysqlpp::DBDriver::fetch_row(), mysqlpp::RefCountedPointer< T, Destroyer >::raw(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by mysqlpp::Query::for_each(), and mysqlpp::Query::store_if().

void mysqlpp::UseQueryResult::field_seek ( Fields::size_type  field) const
inline

Jumps to the given field within the result set.

Calling this allows you to reset the default field index used by fetch_field().

mysqlpp::UseQueryResult::operator MYSQL_RES * ( ) const
inline

Return the pointer to the underlying MySQL C API result set object.

While this has obvious inherent value for those times you need to dig beneath the MySQL++ interface, it has subtler value. It effectively stands in for operator bool(), operator !(), operator ==(), and operator !=(), because the C++ compiler can implement all of these with a MYSQL_RES*.

Of these uses, the most valuable is using the UseQueryResult object in bool context to determine if the query that created

* Query q("....");
* if (UseQueryResult res = q.use()) {
* // Can use 'res', query succeeded
* }
* else {
* // Query failed, call Query::error() or ::errnum() for why
* }
*

The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemysqlpp_1_1ssqlsxlat.html0000755000372000001440000000500112502417164027044 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ssqlsxlat Namespace Reference

Stuff specific to the ssqlsxlat tool. More...

Classes

class  CommandLine
 Command line parser for MySQL++'s ssqlsxlat tool. More...
 

Detailed Description

Stuff specific to the ssqlsxlat tool.

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_32.png0000644000372000001440000000571412502417165024023 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ IDATxœí›yPWÇK † T”@¡t<ð‚Qi½:PP­çTǧÖû˜NÇÛqFGQñF,mmG­"S`G+©8SÑ1’`ˆFsìëoÜYw7!‰ˆÝÏ_oßî¾ý¾·¿¼k¿!BÀÃã1|:[Ïa<ž…0ÏÒq¬R©®^½Ú)Rx¼‘H”™™éëëûN.z—ÌÌÌN’Çó!PPPÀˆ(ff³Ù222.\¸Ð)úx¼‚ ¬V+#“Ÿ‡ñx>Âx< a<ž…0ÏÒ#ìáÇA´Wi ??¿Ñ£Gß½{×Áõ¡Ù³gK$*G­VgeeEFFJ$’#F\ºt©½´¹Õ,ôL:µ®®®Í»:‹®aíNyy¹F£Ñh4 …"::zæÌ™¾ÆªÕêüüüû÷ïãÃæææ¡C‡ŠÅb¹\^UU•™™9kÖ¬+W®¼¿*¥RâÞ½¸Fjµº¤¤„$ÉÙ³gÛ»200ð»ï¾ó„gaì^dddddd N¥¶¶–-Ìm ¶¶–:ljj€¦¦&'Ÿ¾lÙ2‘«V­š0aÂû sµšÔõŒ544À‹/:@ƒc@.—32ÝìÂ8vìX\\\hhè¶mÛNŸ>=`À€€€€ 6@NNÎÂ… ñ•F£Q,ÿý÷ßð믿4H$ 8ðôéÓ@’äþýûãââüýý“’’Š‹‹é]:îዊŠ>þøc©Tš““óæÍÎLxw8p04…B__߀€|h±XV¯^&•JW¯^m±X W¯^ø‚‚‚‚•+WÒKØ´iS^^N·´´Ì›7/$$$""bÕªU¯_¿¶'ƒ ˆüüü¸¸¸>úhÇŽÀx[‰ÍfÛ¹sgLLŒ¿¿ÿèÑ£+++9k$oD9Öã†|ûõë×ûõëWZZj/Áˆ8'û0˜5k–Á`8zô(̘1Ã`0äææÀóçÏKJJ‚ƒƒ- BèÌ™3ñññ$IÆîÝ»:tH£ÑäååuëÖÍh4æææJ¥ÒÂÂBµZ}ùò刈 ~X81iÒ¤TTTÈd²Í›7sf"„ZZZŽ9‚åÑÓp÷îÝÖÖÖÖÖÖÆÆÆ¥K—Ο?ŸªÈöíÛ¿üòË'Ož(Š„„„ï¿ÿžþ³Öëõ ÓéìµCvvöøñã=z¤P(>ýôSJ>KO@zzº^¯?rä4773ú¶’={öЧOŸ>ð¶Ã52 >LKK>|¸3zÜЀ/øüóÏoܸa4ÛŒ væ~„ݹs!d6›éÚÚZ«ÕÚ«W¯ëׯ#„&Ož¼mÛ6„N§ …»víÒëõ$I¶¶¶Úl¶øøø'NPÅž,,,¤äáÆÛ-..¦·ãí²•ÄÄ݇Q#¡P˜œœŒÍ6õ¸¡ÑÚŽáŒ0÷gúþþþ¸†Œ4‚´´´ÂÂÂçÏŸÿùçŸÙÙÙT\\\QQ‘œœü×_ùøø(•Ê!C†Pe4ˆý èèhœˆÅs{™ö f-/_¾\¼xñ‚ ¨S*•ªwïÞx]6qâDÆ¢,(((,,Œšõcnݺ5bĈW¯^555Ùl¶¨¨(œ/“ÉJÑ€;!ª•°•Ô××ÛkªFf³ùæÍ›2™ ÚÔ㆜Ëy½3xj-™‘‘qéÒ¥ .Œ3}&“‰$ÉŸ~úI§Ó-\¸pÚ´i:.<<¼ººšº«¦¦†]þÀƒpÙËl±X}úîÝ»é±ræÌ‹Å"‹ÃÂÂR©Äù= Çi<+jll¤åã㨵ÙJ"##Ûl:ô¸­çÛ‹H§`ôiÎ’”δÕj•J¥aaaÇǧL&“H$ºxñ¢V«=|ø°H$2™L?þø£T*ýùçŸ5ÍüÁ97n\mmmUUUttôÆ93‘Ãy}åõøñc0 ø0'''==]¥RUWW5jùòåŒãÙ³gÁÁÁÙÙÙeeeÕÕÕ›7o€ß~û ŸÍÊÊ?~¼R©üçŸâãã7nܨÕj //ïÅ‹©©©@¡­„ÔÚÚjOɾ}ûè3pà@àZKÒaëaŒ’®jpi± í;sa¡%K–øùùQï!$—Ë£¢¢|}}ccc‹ŠŠBf³yëÖ­ H$IIIgÏžeGØÑ£Gû÷ï²bÅ “ÉÄ™‰ÞôØkV„ÍfëÙ³g]]>4 óçÏ þúë¯_¾|ÉnS•J•žžÞ§Oÿ‘#GþòË/Ô)N7gΜàààÞ½{óÍ7XÉ?üUTTäàíZ,–1cÆH${J¬VëÎ;e2Y=’’’p®¶ÇÖ¦†N‹0gX»vmVV–K·0êÃY½öÝÂáiG8#Œék^¿~­V«;vîÜ9O”ÏãExd¦_YY9|øð ¤¤¤¼O9={ö\¼x±3™<]½»¢ž1cðW7 B.—ã¢ø_|ùæéD¼,ÂèÆ•ÈÈȯ¾ú ïx#çÏŸ'¸pl.ò:¼,Âà­q¥¡¡áøñãƒ!!!¡¥¥Å¥:²â_|ñö•——€æ-ñññ-­=ñÈZÒ£„††b/@xxxJJJJJÊÞ½{·lÙâ| $I677{L ³øùùùùù€ÑhšÁáÃûú0:A,Y²äòåËøm>.ËݲÂp§°Ý/öœH®]´Zí«W¯\­ {wu-ûc]Áè`mgߺu+00§ÙæNË{÷Ÿr§°Ý/œN$ÎgÙ3ºTUUÍ;744T­VsVÊÁòµk×p+•Ê÷n<¼§ï GÛ|ÂibGv§pº_8HœÏb]L&Ó©S§FŽ9tèÐÜÜ\êÛÇ_)7mÚ1mÚ´+W®Øl6ך¬ù0#ììٳÆ Ãi‘HDïžB¥¥¥ééé=zô;vìï¿ÿޏ¾`šÍf„P}}=ào‹!…B!‰BK—.]¶l™V«õõõ­¯¯·÷,zQ¸ï™;wnee%îóàÌw0³ÙŒ*111Ož¬ ’““9—ŸÂx< a<ž…0Ïòs›ne~Þ·IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadOption__coll__graph.png0000644000372000001440000002045112502417165030352 0ustar robertousers‰PNG  IHDRÁ͎⃰bKGDÿÿÿ ½§“ IDATxœíw\ÇßÇ¿{"x€‚ˆ¢ˆšXkP‚6D",+Ø ñ'K¢QP±"* ¢ÑK4ØñDI("E;„ƒ;®íóÇæu9á¨{°”yÿ5;;;ûÙ™Ïî̶ Çq@ H@£Z¢Ãƒ<„ ò‚,ÈC²0„Baff¦L&£JMÇESS³_¿~äó)---,,$ŸO«B£Ñúõë§¡¡A,~â¡ŠŠŠ²²2CCC*„u`jjj Tâ¡’’’êêjòYµ¥¥¥ÆÆÆÊ=D`gg×¶’:<%%%¯_¿VUn:::í¼ nß¾­¸ˆúC² !È‚<„ ò‚,­î¡¬¬, ÃZ{/Í¢Jj=Úà`Uã¡7oÞ°X,•dÕJ(*ÔÓÓ[·nµzTN}UЫÉd²²²2•dÕJ(*d±X»ví¢VÊ©¯ Úà`[â¡øøx{{{ KKË3gÎÀÈ‘# gÏž •Jƒƒƒ­­­»wïþå—_>|øØJñ¢ª‹ÅÆÆÆFFFb±øêÕ«¦¦¦<"##­­­«ªª$ɶmÛz÷îmhh8þüòòòú6'2‹‹ëß¿¿‘‘ÑòåËkjj*î½¼¼üûï¿g±XfffþþþB¡0 ;w­m=öìÙÓ²’mU®âÿøãÞ½{GDDȶîqá8:`À¯¾úêÚµk-iøpÞ¿ŸœœŒ7ŸÏWWW -**:~ü8ƒÁàóù™™™ò¬öïßoddSXXxýúubUyyyXX‘F1¼{÷îéÓ§¿}û–Ãá :týúõ8ŽÏŸ?ßËË«¸¸ØØØøáÇ8ŽÛÙÙq8œ—/_Ž1Âßß¿¾Í 1NNN)))VVVŠ ÃŽŽŽÙÙÙgàÀÄU3fÌàñxaaaPVVÖp™4¥ÜšHZZZZZZÃi­"ŸK–, ˆ‹‹+..¾yóæÖ­[‰µ?~ ¯ž6mÚ† òòò8޳³óáÇe2™···ŸŸ_dddbbb||<xzznÚ´‰¸ÔûúúæååÕ·9¿bÅŠ¬¬¬ÇoܸqÞ¼yŠ å0™ÌY³f-_¾<'''--móæÍÍ-¶§Ñ*h:?þøãÚµkoݺUVV–””Ø}jÇ£¢¢úöí«¦¦fcc‡ã¸X,=z´¶¶6Žã‰$88ØÊÊJKKkÔ¨QÄ…¡V쮨¨X°`¾¾¾OUUÕ¡C‡,‰pe³Ù\.W(úûû›˜˜èêêΙ3‡ÇãÕ·9‘yxx¸¹¹9‹ÅòóóŠ ÷Îår=== ØlöªU«Ño_Û ýõ‡ðƪ ¾¢®{\R©ôÀ}ûöÕÕÕuvvŽ‹‹344ltïdûÔíÅRkÚÞCª">>>55U¾xùòe➦aÈö© ‡3oÞ¼gÏžUWW§¤¤lÙ²eÑ¢EÍÍDÉ7hÅ‹S­¢c°víÚêêê)S¦”––ZZZz{{· è:¡‡ŒŒŒBCC©VÑ1`0;vìØ±c™LP[† ò‚,ÈC² !È¢¤OÝþÿ‘“#IE"©¶¶µ2šût¸a„Ba‹« ¦\ª®GW¡˜¦ð‰‡ÔÕÕ1 ËÈÈhc-&>>óÊ•ÌÕ«‡ÛÙQü¥ü‡=òù”––VVV6{KÊnhp“Ô,6ð™­û§2†aêêêÿ-âyü¡+Wž-[v†N§íÞí>wîHªåP†D(KÞœ“›ü£c þLWkÓ.JÇîÙÛ÷©TæïõÓOq2Y>ZLõñUïòîV€ž¹z:º‡úôaijþ{Q »;{ö‘Š µ’Ú˜ÒWUÑ3ÓyÙB\ŠÓ˜±½vÛkèØÂ0lР¿ ’Éd))Ù“&íËÉ)¥VU›‘u“{Õ;CÄ—Ê$8,[Ͷ—ѱ=C‡Z0™ÿÞ‰H$²¢¢rgç))ÙÔªjupxz´(ys..™ôß\&Å‘‡Z‚½}/©ô¿Û‰DZ]]3sæ‘K—S¨ªU‘ÔÈ7ä</pø¯ ˆÑ±ýºµ½žNà!³Z]i©T&•JW®Œ ºÖùzÙ®äú¹Éåxûw=suºÿïvxYXü×­–C|[wäH’O„@ ¢DXkÀ{#Œ—þá.©}nÐ蘑½%ª:¼‡0 ³³c+]%“á¿ýÆ9|8©%µ þoªÞ‹eu 8, :CÐ <C‡Z¨©Õ~iC§Ó0 swÿlÁ‚Ñ”¨j Æm3×·Ô@& —àTy¨3|ƒæàÐ["‘ʉ 2Û³gæÀ¦”ÉjŒk͸8 ó:÷¯}ù¢*.ý¤CmП‚5t)v«étz·n æ¹s>úúÔôZ ú}Ó—á~)~”`´ïí)yBMÐÚ2ssV·nL #¯ääµÌ  kTëj-D|éãB G]·Öú–€a†¤ì„é ¢Ñ°#,mlLâãWìß?ÛԴǦMn.<|þü-ÕÒZ…çÇ‹eüs_c{­©çm¾\oÆÔ¢³‡Qð–ƒ c¿·ow÷Ã|~Íõë«h´N5äYyŽ0zvúÈUfv³ÛË0âá:¤”;¦¿~]ØùžV?Ø“¯o©1`f;u®Óz¨ÿžžž_Åw¦7ù¹Iå+¿X× kO×Në!pÆqØ·ïwª…¨ž„ZŒ×ëé@Y×G)¶?Dpþ|Êúõ—~ÿÝßÖVù³ìŽÅǼº:¦Ý“âïÇkÑÉ=$“ánn?ki©_¼¸Œj-–ÎÜ–†ýßÿÍxð ëÚµ§F´ˆNî!<¸—»ûçWª«;Ï üvEç÷lÚäÆçׄ„üAµÎI—ð‹¥½fÍ׿þšÔu>µnK:yŸZŽD"ûúë½½zDD,¤ZK3ñ¥4:ÆèÖ®Oõv-N…0´Ÿ~šzëVÚ¨lÂÃ6àÑÁ‚k‹›÷Û1†aYYY­¤G)]ÅC0zt?77‡-[bE" ÕZšDÉ˪ô˜öó[#sNÓÓ…<ß•”T„…Ý¡ZHãà2¸¿;ßl¤ŽåDýÖÈ_…Óôt-±Ùz¾¾Ž?ÿœP\ü‘j-ðÏÕÜLÁÈÕfµâGuàÀàr¹4ÍßߤR©¾¾þõë׉4·nݲ²²Ò××ß¹s'síÚµ!C†hjj²Ùlb!Å9bÈ¢âÁjÛ=55â/¾Z¶ì4ÕBBP.>=áÅ_ûòë®Ú¾}»««+Žãqqq:::C‡ÅqüÉ“'UUU8ŽÀ7ß|SQQ >|¨¨¨PSSóöö~÷îÝÙ³g ¤¤D…#0w9á8þûï/Ùì•dQ-¤^îï~{Ö‰#ª’Ô]õäÉmmm‘H´zõê72™LìââB$€Û·oã8.•J 33³¦¦&==ÏçK¥Ò;wî‘*ôP×jËœœ::ÚnÚ-‘´î8=-C"å&—[Êfj*jÈ!ZZZ?¾{÷î·ß~;dÈ»wï&''»ººÊÓó“ȧæPSSËÈÈpvv6lXDD„ê«Ä‰ŽœœRssÿ“'ÿ¤Zˆrjø™´Þµ ,X»v­ŽŽŽH$Z¿~½¯¯¯¶¶vnn.±êL¨P]]­®®'“É ëJ°°`ýðøݻ++Så0xªBM‹ŽÕ_3...¿þúëˆ#˜L¦££cDD„¹¹¹¹¹y}ékjjD"‘ššš@ ضmÈÇYSÉ(€]ÔC°rå¤nݘ»wÿFµf3iÒ$¡P8nÜ8øâ‹/D"‘bCV==½}ûöyxxØØØXXXÌ™3ÇÙÙÙÂÂbôèÑl¶ >«ê*ï:”ûÌÏïl|üÊ!CzS­¥Ó¥=Ó§‡ˆDÒ«W—wïUN×mË‚‚¦¿xñöòå'T ¡¬š¸yW÷ ÛÓó‹;â+*„Ê(yYUYHÙ'rõÝp5qó®î!X»v²L†ÿü3e¿HExò–ÜG ¨@ä!ÐÕÕ\·Î%<ünzz%^œ*®þ ¹ª£Q‚<0wîÈAƒÌ¶m»Òö»®,½8ùÞáûžZÆí럦ƒ<@£aÛ·O½?ó·ß8m¼ëG¿hõdöj•„Úä¡6Ìbƌ϶nmËß? ŸT¾IäXiFcvà' ÈCÿ±y³Ÿ/œôö­j>ðkA™˜ÆÄFtØ®´œ®þœºÄïææ¬'¼©ÖÒa@סO`0h?ý4åæÍ—IIéTké0 ë-:™ž^”œ¼¶îňº ë¶oŸúþýÇãÇïQ-¤c€<¤½¥K¿:pà÷÷ïÛûïíä!åøú:öè¡Ý‰(V!ÈCÊQWg~ýTµS¡¥E–§¶Ç¯oÉ€÷íð¯Æ”‚<Ô8Ó¦ >ÜrëÖ+-{¦_ž+L;_2ôv·ó©7òPã`¶}ûÔçÏóbbž¶`s†­ÿwv3ÛË-*½/k*ë×_ºqãå½{ut4¨ÖÒ¾@ס¦²~½«T*;x0j!í䡦¢§§¹v­KXج¬ªµ´/P[Ö :èÅ­ŽJF iTzK`2ŒÎö ¹.M¯JÊî6sssW­Z5jÔ(ª êcÿþý¹¹¹MOOå‹‘#Gº»»S(¡”K—.5+=êS#È‚<„ ò‚,ÈC²t]eee©pü<2㈑AµGÑ2:ç›dJxðàAŸ>}Ú`GoÞ¼>|ø‡@OOoݺum°Ó@R†††ª™B¥1§üa±XÄ.Ò®Û2 ÃNœ8akkkhh¸k×®3gÎôéÓGWWwË–-°|ùò… ÿ}çÀçó555Ÿ?ñññööö–––gΜ™LbkkÛ½{÷Q£F%''+^ÿ‰æ ..®ÿþFFFË—/¯©©Q Ÿ¶MiG®^½jjjÊãñ 22ÒÚÚºªªJ"‘lÛ¶­wïÞ†††óçÏ///'‹Å ccc##£€€±X¬T†â”?ŠÊËË¿ÿþ{‹effæïï/ ‰2|¸sçŽX,ÆqüìÙ³vvv2™ŒÏç«««‡††?~œÁ`ðùü£GÅÄÄ^¿~ÝÌÌ ä“ ''§ŒŒŒ””++«ÀÀ@¥‘8Ž———‡……òÚšZù)Īùóç{yy?|øÇñàà`;;;‡óòåË#Føûû)wïÞ=}úô·oßr8œ¡C‡®_¿¾mÄ&ŠaGGÇììl‡3pà@B0̘1ƒÇã………@YYY£UãîîîîîÞŒªlzRÕÒD={ö Çq‘HT+œ™™)‘HzöìùÇà8îââ²k×.ǹ\.“ÉÜ»w/Ç“Éd•••R©ÔÎÎ.""Bží©S§êzˆÃák£¢¢¬¬¬”F6,µ¾ó“Çã™™™ÙÛÛ•Šãxÿþýcbbˆðëׯåa›¢¢""œàààЀ6"F‰Dt:=--ˆ‰‰!@rr²b¹5\æxó=Ô®Û2èÞ½;0™ÌZa ÓéÓ¦M‹‰‰ùðáCbb¢‡‡èëë'''§¤¤˜™™7îÞ½{4íÍ›7ò<íííëî¨_¿~DÀÆÆæÝ»w DÖGÝê!âõôô|||^½zµtéR"&//Ož³­­íÔ©S‰pnn.›Í&îé&M𔓓Ótïß¿—J¥}ûö%­¬¬ä)‰i„äå¦rÚ»‡ÆÝÝ=66öâÅ‹£G&Z(@ “É.]ºÄår.\èææÆårMMM_¼x!ßêÕ«Wu³"NhÈÈÈ ½¾Èæ’ŸŸ2qâÄ5kÖ1&&&ò—š©©©AAAD˜ÅbÉÈãñRRRš.ÃØØ˜N§¿yó†XÌÎÎ65ý÷ù$T­DÇöИ1c$ÉöíÛ===‰ Üœœ¢££+**D"“ÉÔÔÔôööˆ‹‹+..¾yóæúõëëfµbÅŠ¬¬¬ÇoܸqÞ¼yõE~üø‘èœÕ @iiiñ§€L&óöööó󋌌LLLŒOOÏM›6¥¥¥¥¥¥ùúúæåå9L›6mÆ yyyÇÙÙùðáà h«5å“Éœ5kÖòåËsrrÒÒÒ6oÞL\˜Û‚¦7{ªšÖª5WÝð’%KºuëVQQ!ß***ªoß¾jjj666qqq8Ž‹D¢íÛ·÷éÓG[[{Ô¨QçÏŸ‡:ý¡ððpsss‹åçç'”FâŸöaÃõ•í¡C‡,‰pe³Ù\.W(úûû›˜˜èêêΙ3‡Çã™TTT,X°@__ßÀÀÀÇǧªªJ© ±Xõ AƒŒ;ðœKrp »uëVMµÕðòå˱cÇ6½OMÙó¡Õ«WçççSµwÕRX¨“£ûùçÅjjRªµ¨€±cÇ6ë~ýo¯ƒÓÓ 7ov[¶ì+ªµPê‘%7÷Czz!\¾Ü’®:ÈCd‰Ž~ÂdÒàï¿ ÿù§˜j9€§Z ‘‚ÃÉ/(àa‰Dzñâã.Ø¿D"Å•+ϘLº|± €—šÚIn6›òPË‘Je—.=‹ÿ»Ÿg0èW®<£P% µœGrÊÊ>ù U"‘FG?VÕ1ä¡–S«!#àr«ÿú+‹=T<ÔBÄbiLÌ3ņŒ€Á ÅÄt­»3ä¡rûößUUJf"“HdW¯>‰$m/‰*‡ZHlìSCyé 5]jjsä¡’˜˜.‘(ÊãÐ¥<„Þ¹¶””ìÒÒJ"üäInXØ£G½äkíí{™›wþa¬ :ð¿AÔ2rd_yÇ!,쎛›Cé;1¨-CyAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y(ÓóíÛ·?þø£P(lãý¶••:f66¯©¢Jlmm<Ø””xèâÅ‹³fÍ?~|ïÑtJJJ^¿~ÝDoP6.ì¶mÛ¨Ú5¢Qnß¾ýÓO?511ê!È‚<„ ò‚,ÈC²tѹ æÍ›—œœ¬’Ü&L˜ kkköÙg+V¬ÐÓÓk®¡Pñøñ㢢¢Þ½{3föìÙtzíiöΤíA×!Õ}ùòå½{÷–––6ñÉŠ"ÕÕÕ‹/þûï¿/^|ìØ1„„™LùÌžEEEß}÷ÖÖÖž3g© òjÐÓÓëÑ£‡Aÿþý}||=zÔÜNŸ>­§§·ÿþáÇ›™™3&44´¸¸øÆJÓËd²ŠŠ "¬««ëããCêHÐ~=4a„7nxyyM™2åüùó·nÝš3gŽ««ë‰'àСC{öì!R ggçÌÌLxðàÁÂ… œœæÎ{ëÖ-Àq<66ÖËËËÅÅåÇ|þü¹bÓSPP0a„û÷ï{zzN:õСCb±Xi¤<±â†J•Óét}}}"ü×_ýðÃÎÎÎÓ§O?þ<Èd² .xzzº¸¸øúú¦§ÿ;ÓYBBÂüùói´ÿjDCCcöìÙ Jõ,[¶ ¦M›VK ŸÏßµk×wß}çîî~äÈ‘HDfbb¢——×·ß~{á•TœvÝzúôé‘#Gnß¾<~üøãÇ'%%íÛ·oÆŒãÆÛ²e‹T*¥Óé÷ïßg³ÙVVVB¡000ÐÏÏïË/¿|øðáž={ÆŽ›˜˜xúôéÕ«W0 ++kçÎuwtåÊ•;wVVVéèèLœ8±n¤———žžž¿¿?±‰b„B¡@ Àq¼¬¬,<<|Ò¤IP]]½uëÖI“&íܹ3555((ÈÅÅ%!!!**J®'88ø|>—˵²²ª%ÌÊÊêÔ©SJEþúë¯óæÍ‹‰‰©µÉ/¿üÂårCCCÁŽ;455½¼¼àÏ?ÿ<|øð;wöîÝëêêÚ½{w•Ô´çëÌš5KSSÓÉÉ æÎ«©©éìì •••d0œœ0 ‹Å8Ž 555ggçøøxuuõèèè%K–Œ3ÆÀÀ`Ĉ‹-ª»£¥K—š™™ÙÚÚ.Z´(!!¡¾H---WWWb­b-Zäâââêê:þüŒŒ GGGPSS;~üøòåË ŒŒŒ ªªêêÕ«Šznƒ0 “÷‡”Ь…D"IJJòóóc³Ù––– ,§œ2eж¶ö×_ òFP%´ë릦&0ŒZa ÑhcÆŒ¹{÷®¥¥åÓ§O׬YÝ»w?pàÀåË—Ož>ÞÅÅeãÆ•••,+;;[¾Unnnݬ޽{Gòóó ˆluuuWW×’’’òòòšššÀÀÀÙ³g;vlåÊ•D‚ž={*Õ3qâÄÓ§O+Þ… …ÂÈÈÈáÇ7]¾¾>F+**" ë†aM<„æÒ=doo/•JO:E4v€aX@@ÀÝ»w«ªªÄb1ƒÁPWWŸ}1 ÓÖÖ^ºtéŽ;ºuë6wî\GGǵk×FGG‹Åâ#GŽ”••õíÛwË–-Ä–¦¦æ±cÇNž<ZXXÈf³ÝÝÝ™L¦R‘t:}РAÓ(•Ô[ÒIDAT§Oÿí·ßeÅŠ!!!K–,a2™_}õ¡¼U¡ìû!• MySQL++ Reference Manual
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
oCmysqlpp::AutoFlag< T >A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool
oCmysqlpp::BeecryptMutexWrapper around platform-specific mutexes
oCmysqlpp::CommandLineBaseParses command line arguments and holds the results
|oCmysqlpp::examples::CommandLineCommand line parsing mechanism for ../examples/*.cpp
|\Cmysqlpp::ssqlsxlat::CommandLineCommand line parser for MySQL++'s ssqlsxlat tool
oCmysqlpp::Comparable< T >Mix-in that gives its subclass a full set of comparison operators
oCmysqlpp::Comparable< Date >
|\Cmysqlpp::DateC++ form of SQL's DATE type
oCmysqlpp::Comparable< DateTime >
|\Cmysqlpp::DateTimeC++ form of SQL's DATETIME type
oCmysqlpp::Comparable< Time >
|\Cmysqlpp::TimeC++ form of SQL's TIME type
oCmysqlpp::ConnectionPoolManages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance
oCContainer
|\Cmysqlpp::Set< Container >A special std::set derivative for holding MySQL data sets
oCmysqlpp::DBDriverProvides a thin abstraction layer over the underlying database client library
oCmysqlpp::equal_list_b< Seq1, Seq2, Manip >Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed
oCmysqlpp::equal_list_ba< Seq1, Seq2, Manip >Holds two lists of items, typically used to construct a SQL "equals clause"
oCexception
|\Cmysqlpp::ExceptionBase class for all MySQL++ custom exceptions
oCmysqlpp::FieldClass to hold information about a SQL field
oCmysqlpp::Query::MaxPacketInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size
oCmysqlpp::mysql_type_infoSQL field type information
oCmysqlpp::NoExceptionsDisable exceptions in an object derived from OptionalExceptions
oCmysqlpp::NoTransactionCompile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used
oCmysqlpp::Null< Type, Behavior >Class for holding data from a SQL column with the NULL attribute
oCmysqlpp::null_typeThe type of the global mysqlpp::null object
oCmysqlpp::NullIsBlankClass for objects that define SQL null as a blank C string
oCmysqlpp::NullIsNullClass for objects that define SQL null in terms of MySQL++'s null_type
oCmysqlpp::NullIsZeroClass for objects that define SQL null as 0
oCmysqlpp::OptionDefine abstract interface for all *Option subclasses
|oCmysqlpp::CompressOptionEnable data compression on the connection
|oCmysqlpp::DataOption< T >Define abstract interface for all *Options that take a lone scalar as an argument
|oCmysqlpp::GuessConnectionOptionAllow C API to guess what kind of connection to use
|oCmysqlpp::NamedPipeOptionSuggest use of named pipes
|oCmysqlpp::SslOptionSpecialized option for handling SSL parameters
|oCmysqlpp::UseEmbeddedConnectionOptionConnect to embedded server in preference to remote server
|\Cmysqlpp::UseRemoteConnectionOptionConnect to remote server in preference to embedded server
oCmysqlpp::OptionalExceptionsInterface allowing a class to have optional exceptions
|oCmysqlpp::ConnectionManages the connection to the database server
|oCmysqlpp::QueryA class for building and executing SQL queries
|oCmysqlpp::ResultBaseBase class for StoreQueryResult and UseQueryResult
|\Cmysqlpp::RowManages rows from a result set
oCostream
|\Cmysqlpp::QueryA class for building and executing SQL queries
oCostringstream
|\Cmysqlpp::SQLStreamA class for building SQL-formatted strings
oCmysqlpp::RefCountedPointer< T, Destroyer >Creates an object that acts as a reference-counted pointer to another object
oCmysqlpp::RefCountedPointer< MYSQL_RES >
oCmysqlpp::RefCountedPointer< mysqlpp::FieldNames >
oCmysqlpp::RefCountedPointer< mysqlpp::FieldTypes >
oCmysqlpp::RefCountedPointer< SQLBuffer >
oCmysqlpp::RefCountedPointerDestroyer< T >Functor to call delete on the pointer you pass to it
oCmysqlpp::RefCountedPointerDestroyer< MYSQL_RES >Functor to call mysql_free_result() on the pointer you pass to it
oCmysqlpp::Query::RowCountInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted
oCmysqlpp::ScopedConnectionGrabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer
oCmysqlpp::ScopedLockWrapper around BeecryptMutex to add scope-bound locking and unlocking
oCmysqlpp::SimpleResultHolds information about the result of queries that don't return rows
oCmysqlpp::Query::SizeThresholdInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded
oCmysqlpp::SQLBufferHolds SQL data in string form plus type information for use in converting the string to compatible C++ data types
oCmysqlpp::SQLParseElementUsed within Query to hold elements for parameterized queries
oCmysqlpp::SQLTypeAdapterConverts many different data types to strings suitable for use in SQL queries
oCmysqlpp::StringA std::string work-alike that can convert itself from SQL text data formats to C++ data types
oCmysqlpp::tiny_int< VT >Class for holding an SQL TINYINT value
oCmysqlpp::TransactionHelper object for creating exception-safe SQL transactions
oCunary_function
|\Cmysqlpp::TooOld< ConnInfoT >Functor to test whether a given ConnectionInfo object is "too old"
oCmysqlpp::value_list_b< Seq, Manip >Same as value_list_ba, plus the option to have some elements of the list suppressed
oCmysqlpp::value_list_ba< Seq, Manip >Holds a list of items, typically used to construct a SQL "value list"
\Cvector
 oCmysqlpp::FieldNamesHolds a list of SQL field names
 oCmysqlpp::FieldTypesA vector of SQL field types
 oCmysqlpp::SQLQueryParmsThis class holds the parameter values for filling template queries
 \Cmysqlpp::StoreQueryResultStoreQueryResult set type for "store" queries
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_40.png0000644000372000001440000000427312502417165024021 0ustar robertousers‰PNG  IHDR½%˜€IbKGDÿÿÿ ½§“pIDATxœíšHSßÇÏýªsógéš–eÎß21 )¥™ eDäŒÙ¡BF¦H:M…ZBCM­p¦®Ÿ#ËÂLÓµœ¡31 Gi®æ•9÷ã|þ8t¿k?üäœVßï}ýuî9÷<çyž½}ι׋A É2ùÏïv€ä¯„Ô ‰-º!±R7$¶àh|199™••µ°°ð»¼!ùcÉÌÌLNN&.ÒD"iooçp8kîÉM¿H$²ª„H$ZC—HþRRRLzÈó ‰-º!±R7$¶@ê†Äþ8ÝŒaf/k8Žççç3™Lrþüyã· óóóÛ¶msssÛ¹sçÅ‹u:Â0lllÌØTkk+f‰ÁÁA»¸ZYY‰aŸÏ·vƒ}3³Bþ8ÝØ—ììl©Tz÷îÝÉÉɆ†±XÌãñÐÐÜÜ\LLÌÀÀŸÏ—J¥EEEB¡0))I¯×[4uäÈ…B¡P(úúúаX¬•û !lmmõ÷÷okk[¹5Äøø8N·—5S Èiø[‘Ëåvôaݺu‰„¸ìééñ÷÷GíüüüøøxNGŒâ8PSS!Èåò5ð!“É0 ëì쌌ŒØe];úÉáp8Žq-õÃ°ÆÆÆˆˆˆ 6ðùü¦¦&&“éééYZZ ÈÉÉÉÈÈ@wâ8îââòæÍÀÇ£¢¢¨Tj```SSÀ`0\½z5""ÂÝÝ=..®»»Û¸£²,‹Ã FNNŽF£±Ø ~®áÆm@ðõëWt¹gÏž> ¶P(,++spp Vtuu-((hnn^V6,ÆkÍO­VËãñ||| ÇÓjµhbkkkBB¾}ûÂÃÉ’£×뫪ªBCCÝÝÝwïÞ=00€úÛÛÛ·oßîââ²qãF´¯Y\.66àëë‹f™/fuuuùûû÷öö.+j[ê €ËåªTªúúz@JJŠJ¥ª­­ÌÌÌôôôx{{kµZ¡P(d±XƒÇqggçšš…BÑÐÐàèèˆãxmm-ƒÁ¸wïÞÔÔÔ£G6oÞ þJP#))ittT"‘———[ì„~ûöíÚµkÈ=ãöÓ§Oýüüœ÷ïß_UU511ú•J%`zzÚ$´þþ~///¸œzc1^k~^ºtéèÑ£“““CCC;vì(**‚ &“Y[[ !,))a±XÈruuµq~6mÚP©T %==ýÓ§OB¡ðåË—%rEøi¾4ºáàÁƒÏŸ?Çq|‰_Ü¼ÞØ¨©T !\\\4iËårNçëëÛÕÕ!}:++kzzšB¡|üøööö&''»ººÆÇÇ?~üBH£Ñ ³h;3ÑZ­F£2™ŒJ¥Zì´æ'Žã---Ä Æ`0”––úùù¡K__ßgÏž™Ll6.ó|c¯5?©Tªq±÷ôô„æææšlçγ–¡X,f³ÙÑÑÑiiiƺ±˜+bºùÒè†ÅÅEk $°Ïùæ_áp8÷ï߉Dl6í>jµÚ`0ܾ}{vv6##ãðáó³³~~~2™Œ˜õöí[sS(6Àèè(*ÔÖ:ͦ¦¦£K Ã8@ŸËå®<^k~ÒétBŽJ¥R"‘èõú¶¶¶êê깜={¶­­ B`žµZ’’Âãñ¤R©@ ø×\˜/úœœ–/¶žo–®7:ŽÁ`øøø\¿~ ©Õj*•zçÎéé麺:*•ªV«/\¸À`0þLX{õê@*•^¹rÅ8?¥R‰aXGGzù„î\"WsssȬùÒ¿þÀµFû„ðÔ©S4M¥R ¢P(áááb±B¸¸¸XQQÁd2ÝÜÜââânݺe®›úúú­[·ÒéôììlµZm±þü[·u:]yyyTTF (,,$Š9„Çñ¼¼¼ÈÈH*•TRR’pìØ1hé[}b–Åt›ÄkÍO•J•––¶~ýzooï“'OÎÏÏgff&%%›2 AAA………:®ªª*88ØÕÕ5..Uauuµ——×–-[—Ëe0—Ójµl6ÛÍÍ ™5_z­uó+§¦¦.kŠI£Zw'Æh4šþþ~&šÄ»Ú~š°ÚË™ëÆÂ÷7+daaajjª±±±¥¥ÅîÆW …‚^{ü:u¼6cÿsñÀÀ@LLLzzúÞ½{WbÇÃÃ#33óW:/ã]c?×>-4ÚËE"‘µÝäÿô½Ÿñ‡ ÿãÿ×$Y%HÝØ©[ uCb žÃëêêÖÞ’?™ññqô¶ú¿¿Ìéíí5þ…„„ //ÏX*ùÔMbäù†ÄHÝØ©[ uCb ÿÉ{xõwåœKIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine.html0000755000372000001440000006645112502417163031003 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ssqlsxlat::CommandLine Class Reference

Command line parser for MySQL++'s ssqlsxlat tool. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::ssqlsxlat::CommandLine:
Collaboration diagram for mysqlpp::ssqlsxlat::CommandLine:

Public Types

enum  SourceSink { ss_unknown, ss_ssqls1, ss_ssqls2, ss_table }
 Types of inputs that ssqlsxlat will accept. More...
 
- Public Types inherited from mysqlpp::CommandLineBase
typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef
ArgumentList::const_iterator 
ArgumentListIt
 Iterator into ArgumentList.
 

Public Member Functions

 CommandLine (int argc, char *const argv[])
 Constructor. More...
 
void print_usage () const
 Show a message explaining the program's proper usage.
 
const char * input () const
 Return the name of the input source. More...
 
SourceSink input_source () const
 The input source type.
 
SourceSink output_sink () const
 The output sink (destination) type.
 
const char * output () const
 The base name of the output file.
 
const char * pass () const
 DB password, when input type is is_table.
 
const char * server () const
 DB server name, when input type is is_table.
 
const char * user () const
 DB user name, when input type is is_table.
 
- Public Member Functions inherited from mysqlpp::CommandLineBase
const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::CommandLineBase
 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Command line parser for MySQL++'s ssqlsxlat tool.

Member Enumeration Documentation

Types of inputs that ssqlsxlat will accept.

Public types

Enumerator
ss_unknown 

no known input type given yet

ss_ssqls1 

a C++ file containing an SSQLS v1 declaration

ss_ssqls2 

an SSQLS v2 file

ss_table 

an existing DB table schema

Constructor & Destructor Documentation

Member Function Documentation

const char* mysqlpp::ssqlsxlat::CommandLine::input ( ) const
inline

Return the name of the input source.

This can be a file name, a table name, etc. Call input_source() to determine the proper interpretation.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_15.png0000644000372000001440000000352212502417165024017 0ustar robertousers‰PNG  IHDR­%¿.þ¡bKGDÿÿÿ ½§“IDATxœíšmHS_ÇÏ\ÙVæª=º òt,VD`##CëEЫ6C#{4²Ö¤Ê0Šõð¦ʇ´°’Ö˜iT/"$èaÕ*hË!\aîŽ5ÙÚÓù¿80æÝí¶J—ÿ:ŸWçþ}Ïï|wî¹wc@æŸ'ãO ÀL °0``ؘA:6 ---D &mÈd²‹/&F¤ç…òòò/^(•Êô ä—Ëe2™HóN^J¥R¯×§K&Ýèõú­[·’‚x€ûƒÀ>À€}€ALG|üø‘Á`LV6ƒ¡V«·Ç?ÌÏ b²ôÐ0¹ÿ)¦£&ƒÁpûöퟺäùóçî‰L‘6§ÓÉãñP{Þ¼y‡ž¢¢‡â¹ñ¶¶®®®¤¤D$¥x ŸÏO½óï‹ÅÆÆÆP›Çãétº4|h2¿¸0ŒŽŽ™LÆçóu:]WWW^^‡Ã9vì@£ÑTWW£ž~¿öìÙo޼ܻwO¡P°X¬E‹uuub±Xss³L&›;w®R©ìïïO\Ñ:ÙÛÛ[PP 4Í·oß(ƒ`â¢JZ`ëëë kjj’d÷z½;wîäñxR©T«ÕƒAšQ÷õõI$‚ ÝÝÝK—.D"¹¹¹|>¿ªªÊëõ¢Îáp¸¡¡A( ‚†††p8L©|õêÕä¹Dٔ ÆÍ›7e2Ù‚ Ξ=‹z&WõW€Q«ÕènJ ¢¢Âçóµ··ÊËË}>z!ýåË—'Ožp¹Üp8 !¼qã†\.Åb~¿Ö¬YW®\q»ÝW¯^1c†ßïoiiF£qddäþýûR©àp80ÔØ¸q£Ýn7™Lùùù'Nœ  B½^o[[’—ØF ív;›Íîì쌧Eg·mÛVZZ:88hµZ—-[†RÌfó׉ þUUU;vìøôé“P(€ž;wN.—[­V›ÍVTT¤ÕjQÏ3gÎlÙ²exxØjµ®\¹òÈ‘#4ÃA—¤"L¥RÑÖÖ£¬*ýÜ¡[$yBÙ¯_¿††B!RÛápD"‘Hôøñcá¦M›t:„ÐãñÌœ9óüùóAÄb±¯_¿F£Q¹\~íÚµxÚëׯ'ûÀjµÆŸŸO¤—êp8 „.\ÈÎÎŽç…BL&óíÛ·¨§ÑhD©h¾0AH¥R…B&BXPP`4Qûýû÷ñvaa¡ÛíFíG­X±‚f8(’аþþþÄRSV•~î&Ù¨¸ßkïÛ·¯®®ntt433Óår¡³OŸ>U©TsæÌY»víƒ „l6Ûl6ÇÓ¢ÛÉ@µX,,‹2˜ŠÔh4ºnÝ:ôuDù].Wb*«ÕŠR%Ž(™¦¦&&“ùùógtÈb±l6[r7‹•h#‡C3‰·i„}øð4®äªÒC郩z^P«Õ===z½¾¸¸­ö@ ‹Ý¹sÇãñTWWoÞ¼ÙãñH$‹Å¿êÝ»wÉ©Puv»],ÓéÉÈÈèìì|öìYkk+Š…B&“ét:Ñáàà D"¡Oâr¹š››ËÊÊ:„"b±xhhµÍfó©S§P›ÇãÅÍD„ÉdJ]9°ŒŒ SFYÕTªA†ä‹ÉZ"‘ˆ@  …è– ! ,Ë`0ŒŽŽ¶¶¶²X¬@ púôi@p÷î]·ÛýðáCÊýÁúõëÇË—/—,YrüøqÊ üÑþ ®üòåËh/†+++KKKN§Íf“Ëå( zn„F£Ñ²²²“'Oz<‘HÔ××!lllT(6›Íf³­Y³fÏž=(³F£Q©TCCC‹¥¨¨hÿþý4ÃAûĵá{ÂH¥¦¬*ýÜ¥õ¾!Ü»w/›Íöù|‰ /^œ™™YXXØÛÛ ! …BMMMyyyYYYJ¥òÖ­[É>hoo_¸p!Ç;pà@   ’Š˜Ø&ù ‹mذ!~Öãñlß¾ËåæääÔ××£TßûÂ\ºtiùòå¡PBØÓÓ“““ãñx‚Á V«‹Å§¢¢‚ ”ÙçóíÚµkþüù\.·¦¦f||œRy8...ÎÊÊ"Éþž°äR'W•žÉôA*=z´²²ò§.I,Dò!MðÁ4QNéƒ)y GFF:::º»»§"?fÒ™’}âÀÀÀªU«vïÞ]RRò;y²³³kkkS þ/˜ÎÊ)þ—ÀÿGú‹AÿG"Íû?ñ;æ‡``À>À °0PþÿÀétÆß¼bþ>^½zE%½O8xð`Ú…aÒMnn.iÞÉϘ¼?À€}€A``À>À þšHQ3/YŸ¡IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadFieldName-members.html0000755000372000001440000001130112502417163030041 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadFieldName Member List

This is the complete list of members for mysqlpp::BadFieldName, including all inherited members.

BadFieldName(const char *bad_field)mysqlpp::BadFieldNameinlineexplicit
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadFieldName()mysqlpp::BadFieldNameinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DataOption__inherit__graph.png0000644000372000001440000041303512502417165031252 0ustar robertousers‰PNG  IHDRmÉ¿aËbKGDÿÿÿ ½§“ IDATxœìÝi@×Úàd$ìTAÙDEQ¨TënÕº"b­KU¬®—‚ëµZ¯qÔ 䢂,‚•%€²¨ì¶d¾s¿ÜB Y÷ù59™9çSš×93sކa|‘w€ƒ< ðò(À?q<)--}ô葸£ƒ—©©é´iÓº—KÁsF‰àîî~óæMqG/™ÎÎÎîåG’ÁÕÕ!%î@À`åææÆ1cÂýQ€GþAøyàäQàUQQ‘”””+¬¬¬\¾|¹¡¡¡²²²]tt´+ï­›7oJqrûömáž5ïZZZüüüÆŒ£¢¢bggwäÈ:ÎËBÿ/ÅäQÚÚÚqãÆ)**FFFfff.[¶ÌÝÝýáÇ}…B!‰øö?þXUUUUU•––†ªú“'OÞ¹sgƒjnnž0aBVVVpppvvöîÝ»#""œœœ ÆWWSS뛘ÌÃâ0mÚ´ .à---?}útüøñY³fõY L&³¶¶ßVPPPPP@Q©T„ŽŽk·   >!¨©©™””D Bfff³fͲ¶¶¾téÒÚµk¹N$û&f×£€FJJêâÅ‹šššAAA×®]322:tè¾}ûBÞÞÞkÖ¬Á÷¤R©ŠŠŠ/_¾DÝ¿߯ÆF^^~äȑ׮]C1™Ì³gÏZXX¨¨¨888$''³âÆ111£FÒÒÒòööîèèàXˆþ9ÆÈ¾}çέ[·²†o744¬ZµŠH$øúú¶··ãgaaa1lذ£G²N¹{agg§ŸŸŸ¶¶¶–––ŸŸ_gg'N>|¸¦¦æÊ•+BöööèŸ)³;ö˜¹w/Çv9ž Ç>éLxx¸¿¿?žDqJJJ~~~ááỚýpöúyïI>a \\\\\\¾ºBÈÝݽ©© ¿Îsuumjj AÕÔÔ¤¤¤hhhtvvbneeÅd2©Tê!CΟ?_UU&##C¥RCBB´´´H$Reee\\œB¨°°ÿÙÄ7œ ÒÓÓMLLöïßϱð†††ÐÐP<<Öv}}=B¨®®®§ñðð˜1cFqq1™L¶¶¶Æ«B-]º´¾¾>44!T[[ÛSappð’%K>|ø@&“mmmwíÚuìØ1+++2™üúõëI“&ùúú²N¤KÓ] Ù?rï^Žír<ö:»ô*^ˆ÷Ouuu—ØRSSµµµ¹ô÷˜yïI."##{ʘG’÷<š““ƒaFë²]XXH§Óutt’’’0 ›;wnPP†auuu²²²Ç¯¯¯g2™ÍÍÍ ÃÊÊêòåˬj¯\¹Ò=’ÉdüÛÈÈHŽ…=ÅYWW‡ª¯¯çø-F#yyyøG‰„W…JNNf?£ž ÍÍÍ«ªªðÃÆŽ;jÔ(‰„—äççãÛ|äQ.Ý˱]ŽçÂw}þü9‘HäÒÿ]êìUOrÁ%¸.` QQQAÉÊÊvÙF„Å‹“H¤šššÄÄD„ººzrrrzzºÁÔ©SŸ>}*--M¡PÆŽËªÓÆÆ¦{C¦¦¦ø†¹¹yyy9—ÂîÔÕÕµµµóóóÙ ³²²ìììZ[[?þÌ`0ŒñrVUzzzìgÔSaii©®®.þÀ­““SIIIYY+6 ‹E‹õw\º—c»\·qšlOMMMGG'77·Kynnîøñãñm^ºº·=ÉÈ£€ÁÅÅÅ%:::**ÊÑÑ­mkkc2™·nݪ««[³fÍüùóëêêôõõ_½zÅ:êÍ›7Ý«Â/zBørO…-X°àĉìY$<<¼³³SQQQ[[›@ P(¼¼¸¸X__ß––æð»Ý½¿hc]Û¥§§ëéé•––âßæææ>|˜Kl|ëÞ.—sÁ_b©¨¨àX•‡‡G`` ûÓ¹---ÁÁÁ³gÏÆ?òÒÕ½íI>@ .ß}÷N ôôôÄK¤¤¤œïܹÓÔÔD£Ñdee½¼¼üüübbb>}ú¿k×®îUmݺµ¨¨(++kÏž=+V¬è©°±±‘õP.ûöáÇSRR<==ÓÒÒÈdòþøã<½ÉÊʺ¹¹y{{—””äååýöÛoø¥3ï/^¼{÷î²²22™<{öì?ÿüÓÓÓsïÞ½yyyyyy›7o.++cíŒ? +ÝÛåx.jjj¡«W¯655ýñÇì5°‚ñ÷÷ÿòåËŒ3âãã £££'M𤝝¿qãF|Žýßå\ïɯã>" ýï÷GY×C=moذAAA¡©©‰uTdd¤±±±œœœ¹¹yLL †a4-00ÐÈÈHYYÙÁÁáúõë¨ÛýÑ .Œ1‚H$nÙ²¥­­c!öÏÛ~]n=–––.]ºTOOOEEeâĉ÷îÝc}UWWçéé©¡¡¡««»mÛ6¼*Žgı°©©iõêÕêêêëÖ­kiiioo÷õõÕÓÓ:t¨»»;~k¶³³ÓÑÑQYY™½¹ßåÞ½ÝÛíé\:¤¦¦fllƒ×ß=*•êããcmm­¨¨heeuèСÖÖÖžúŸýpö˜yïI.¸Ü…uÓ’Aˆë¦íÝ»·´´4""‚÷CŠŠŠLMMY?˜]>r)¢Ð÷]ÍeÝ4˜‡0ˆ´··WVV^¼xñÆâŽ p0ˆdddL˜0ÁËËëû¦UUÕõë×óRD¡_u5Œë$ƒÇuè-.ãºp= ðò( L"Z;¬/—$“G``ê˵Ã3È£00õåÚaƒäQ誫«[[[ÙKzZpãš_Ý—~c‚aØùóç---UUU§OŸ‹—ó¸àƒÁ8v옙™™ŠŠÊäÉ“322¾ùàÂ}è'xœÏHeffþôÓOššš•••ìå=M„„º­ùÅqé7Ö!¡¡¡úúúñññÕÕÕ &&&èÿg‡çeÁµ“'O²/!‡ÏdËgBBžt)Jt—XÀºi‰7ðòh[[ÛÕ«W'Nœ8nÜ¸æææ.;pÉ£]Öüâ¸ôëkk눈Vµø‡ëÁ8-|fffÖ} ¹.¡VTTÌŸ?ÿáÇ CHÔ_Àºiп$&&Ž1"))éÌ™3ÙÙÙëÖ­SVVæ²?öÏ7»¬ùÅqé7ÖÎÅÅÅÖÖÖ¬–––=Õƒ8-|öñãǯ.!§§§·ÿ~ …âééyðàA ‹?òÖò(ˆ¦¦¦¥¥eZZZjjjCC—=9..ÖeÍ/ŽK¿±¾1bûºooß¾í©Äiá3CCï.!‡ûüùó›7oÊËËmmm¸œÔ@yÄ`̘1ÉÉÉ$éýû÷fffk×®ÍÎÎî²—Åźà¸ôëÛM›6íØ±ãÑ£Gµµµ?Þ¿?—@»/|¶aÃö%äüýý»Âd2=z´hÑ"{{{ ÃRSSoܸA${Ý)ªÏ—@ïþ(K}}ýÉ“'KKK»|Õ}q1¬‡5¿º/ýƺ?Ê`0N:elltŸmŠò(@2|óÍ7·nÝâþ†””¬ŠÊd99½ššÁ$3@˜†αæ3 ¼Þ³ç¶””Tp°‹““•¸Ãƒ\$^ssû17ndÌŸ?öСÅD"·È.ȣɖ—W±nÝå¶6ÚÅ‹^³fYý„ ž×H*&;q"~îÜ“66Ožì†$ Ä®G©¹¹Ý×7òÁòŽs7mšÎeAMD ò(@ò|øPëéÚÒÒqçÎf;;#q‡5×H˜´´¢Y³Njh('&úAby InÝÊrw??mšùÍ›ÔÔÅG’#44å×_o¬Xáp指œÜ–ýü!$CHÈïíÙ3oӦ⎀ÿ< §O';öàèQqÇÀ?@ôwÿŸD]—/·w,tyЯ]¿ž~ô胃AýÌSè¿’“ßýôS¨Ÿßœ-[fŠ;8ƒçuýTvvéš5=='Cý\ú£’’êùóOÛÙ]¸°š@€ñƒþ ò( ßinn_°à´””Ôݻުªòânà9#@ÿ‚aد¿^¯­¥þý÷vH¢ ÿƒ< è_Nž|˜˜˜O"m60Pw,|äQ@?’˜˜êÔ£ƒo(îXà Üô¥¥5³gŸœ;׿äÉeâŽ^Aô Œ NÓhôû÷UT”w8ð Æuý‰ñ……Ÿ>ô$ $ äQ€ø={Vpöl҉ˌµÄ ½ãº1khh>ýèĉ#ÏŸ_)xm©©©Ó§O§Ñh‚W ??¿£Gò}8\ÄÌ×7’@>zÔE(µUTTÐh´¨¨(¡Ô¼“'O––– RäQ€8Ý¿ŸûàÁëððuªª B¬ÖÅE8Y x·nݰ˜µ 6õõ-¿ýFZ¹òÛiÓÌÅ |‚< ›½{IŠŠrþþ Äüƒq]€x<|˜ó22r£‚¼è$\Ä ©©m×®Û..MÅ < ƒ  8&“¹ÿBq"EEERRRªMŠaUŽcÌÞ„‚‚ÂäÉ“sss…Û®¥¥ÅÏÏo̘1***vvvGŽ¡Óé½ µÿ€< èk¯_—_»öÜßšš¢¸c‘ iiiUÿÔm‘ÉdSSS777¡O3ÐÜÜ44!T[[{òäIö°õôôðÙÛª¨¨øå—_V¯^Íê´î-Λ7ð˜˜UUU[[[ Ã^¼x!//ßÒÒ±ÇêëëBÕÕÕ]þ‹¤¦¦jkksé±îçÕ=Ž'Ëý/ÁÅÅÅÅÅå«0\@ô_ßÈqã¨ÔvÑ5Á{ÍÉÉÁ0 Ÿ‰—}»°°N§ëèè$%%a6wîÜ   Ãêêêdee?^__Ïd2››› †••ÕåË—YÕ^¹r¥{%“ɬØLLL8rµ‹û÷ïÓh4——‡ïC"‘X5ã%]òhrr2û š™™u»{[ÊÊÊùùùø>[|ñâ…²²2FÛ¾}ûž={deeëëë;6wîÜžz¬§<úüùs"‘ȥǺœÇx8ž,—¾Å„‘Ga\ÐGrrÊnÜH÷÷_ ¤4Dܱ „ŠŠ BHVV¶Ë6Bˆ@ ,^¼˜D"ÕÔÔ$&&zxx „ÔÕÕ“““ÓÓÓ ¦NúôéSiii …2vìXV666Ý25ýï»=æææååå\ {Ò%üðß?f0ÆÆÆø&&&]*Áþ™ñ+NÖ ~üø±§°Ymµ´´¬_¿ÞËË /çØâ¸qã”””²²²ž}zBB“'Oð<ʱÇBìOç¶´´Ïž=›÷ÎáÒ]NV乘ݿŸ«¯¿-/¯\Ô ñ>®Ëºðâ¸M§Óµ´´´µµ/]º„ÕÖÖ&//ûöíêêê¿þúK^^¾­­íÈ‘#ZZZwïÞ­ªªzðàÇû£Ó¦M+,,ÌÌÌ455õ÷÷çXˆq½?Êqprùòå3fÌ P(¯_¿¶²²ò÷÷¯®®F………566.Z´±ëv9ÁÓ§O³‡=räHôÿ—°ìm•••!„šššzjð[·n)++;99a– ¬¬leeÅ¥Ç0 kll5jÔÔ©ShKXyð 6(((°²^¹±±±œœœ¹¹yLL †a4-00ÐÈÈHYYÙÁÁáúõëÝóè… FŒA$·lÙÒÖÖÆ±ûg†èrw“c2¨««óôôÔÐÐÐÕÕݶm^É¡C‡ÔÔÔŒcbb¸äQ:~ìØ1%%%‡ôôtŽy”Á`¨ªª–””pi±¡¡AFFæÐ¡C†µ´´ÈÉÉíØ±ƒKá¨Tªµµµ¢¢¢••Õ¡C‡Z[[{ê±ÎÎNGGGeeå.=Ã1ž¾Ï£°Ž7@äž9÷ìÙn]]5Q·%¬©öîÝ[ZZÁû!EEE¦¦¦¬Ö»|äRp}ß9®®®!A¬…y¢ÕÐÐzüøÃ5k¾ëƒ$*,ííí•••/^¼qㆸcýnúöÛÃ;wÎ]·njß´(Äq]0>® ×£:uê¡––ÊêÕŽâd€p”~¸ˆŠ< •²²Ú72¶nu’•%|}o$äQ€¨üë_†×pq±w ˆäQ€H~¾}ûŶmÎüÎYuuukkk÷òˆˆcccMMÍ7â;p\…c!ï­€.àï 'O>43Ó^¸ÐVÜ (YYY«V­²²²jllìþíÅ‹ãããccc<ˆÚ¼ysyyyffæƒ>|ÜSaw¯^½222Ú±cGII‰HOJâ 2‰pôæM…žÞ¶{÷^ö}Ó<Îg$YÚÚÚ®^½:qâÄqãÆ…„„à3ä±ë¾LŠ‘‘ÇQ¾ºP »ŠŠŠ€€ƒùóç?|øÁ`ˆìÅÖ{ôGgÏ&™™iÏ›7FÜ ‰‰‰#FŒHJJ:sæLvvöºu딕•9îɾLJUUÇQ¾ºP ;==½ýû÷S(OOσZXX|üøQ¨'7@YAÁ§{÷^nÛ6KZ^¥MMMKKË´´´ÔÔÔ††.{²/“2bÄŽ+¢pY&¥'Ÿ?~óæMyy¹­­­‚‚‚À'4Ð@Ù¿ÿld¤ùÃp1*cÆŒINN&‘Hïß¿733[»vmvv6Ç=}||ŠŠŠ²²²öìÙ³jÕ*YYY777ooï’’’¼¼¼ß~ûÍÃÃc!ÇÚ˜Læ£G-ZdooaXjjê7ˆD¢(ÏU2 i„0 Ã>|¨>ÜçæÍ q0 ï²Ô×ןx¨¥¥cåÊPii©+Wàž(è×àŸx€^ˆŒÌœ1ÃRSS´Oa¶mÛÒÒš˜ïaÔDÚ‚ëQ¯ ?gdP<<ìEÝÐéÓ æ……y™šj‹º-×£^EEeéé©M›f!ÒVîÝË=v,þ_ÿr‡ÙçD€ëQO æíÛ/–,™ Òyáß½«òñ¹ùÓOߺ¸Ø‰®„ò(€'))ï¿|iZ¶L„KvS©ëÖ]67×Ý¿¡èZ@¸`\À“ÈÈÌ  EºJÚîÝ·ÛnÝÚó- ×£€¯««k‰-Ò‹Ñððçwïæ„„üÓçÉyðu119rr2 ŒQýùù•ûö‘~ýÕÉÞž-O_wçNöìÙ£•”†ˆ¢ò¶6Ú/¿\³³¹mÛ,AêùðáæM›ÚÛÛ…TÖ¯_¿téR>„< øŠ‚‚O99e»vÍQý¿ÿ÷åKSDÄ:ŸNOOuqqV``ðxþüyTTäQ€HÄļÔÑúí·¦¢¨<9ù]XØÓ‹½ôõÕ…RaTT”Pꃊ««+ßÇÂýQ7†EGçüøã8Q¼6ÚØØêãssþü±³fY ½rúäQ799JKk-²EåÜc2™¿ÿ¾D•Ð7`\ÀMtt¶™™ŽÍ7B¯ùÉ“÷‘‘™ÿþ÷Juu˜‰H0¸ôˆNgÆÄ¼\°`¬Ðknk£ùùEÍ›g#ŠÊèKG=zú´ ±ï—N IDAT®®eñâñB¯ùèÑ--ÁÁíÙÚ¢¢"!®p.%%UTT$¬Ú¸£R©¾¾¾FFF ¦¦¦¢~ƒ¨¥¥ÅÏÏo̘1***vvvGŽ¡Óé¼(ÜNŒëzD"e7ÜÐ(Üjóò*.\xì#ºýÇ–-[ÊÊÊîܹóÍ7ß¼}ûÖÛÛ»®®îÌ™3"j®¹¹yâĉÚÚÚÁÁÁ#GŽÌËËÛ·o_BBBbb"@è¾?…B™8qbMM BHMMmçÎ" Œp= ଥ¥ãÁ²ÐŸ0b2±;¢&Méî>I¸5Aܽ{÷÷ß·µµÕÔÔœ2eÊüqïÞ=Ñ5¨©©™””4{öl33³Å‹gff–––^ºt‰ãþL&³¶¶ß&‰AAA¢‹­· 8KHxC£ÑüQÈy4<üù›7‡/×М””ÔÅ‹-,,455ƒ‚‚®]»fdd4tèÐ}ûö!„¼½½×¬YƒïI¥R_¾|‰ºÿ¾¼¼üÈ‘#¯]»†b2™gÏžµ°°PQQqppHNNf?#|ì1&&fÔ¨QZZZÞÞÞ Ñ?*9ZbvþüyKKKUUÕéÓ§ÇÆÆâûHIIEDDXXX 6ìèÑ£øÎ «V­"‰¾¾¾íííxIIIÇöìYgg§ŸŸŸ¶¶¶–––ŸŸ_gg'BHUUõܹs¬\5eÊ”²²²žN!;nÜ8EEE]]]<«Ñéô€€€áÇkjj®\¹²¡¡¯Šcsáááþþþì—žJJJ~~~ááá[´··Géèèté¢î'ÛS·ˆœxzþåî~^¸uÖ×·XZî=pà®p«ÅEFFòò›†rwwojjºpáBÈÕÕµ©©)$$!TSS“’’¢¡¡ÑÙÙ‰aXxx¸••“ɤR©C† 9þ|UUUXX˜ŒŒ •J ÑÒÒ"‘H•••qqq¡ÂÂB<|ÃÙÙ¹   ==ÝÄÄdÿþý 1 khh ÅÃc߯+Ä0,44T__?>>¾ºº:!!ÁÄÄo!´téÒúúúÐÐP„Pmm-†a3fÌ(..&“ÉÖÖÖ¬vçÌ™óøñc*•¼dÉ’>Éd[[Û]»vaöðáC}}ý!C†899;v¬´´cÌMMMrrr^^^åååááá¡/_¾;vÌÊÊŠL&¿~ýzÒ¤I¾¾¾x Ý›«¯¯GUWWwùO“ššª­­Í¥ëØC·»ŸlOÝ‹‹‹‹‹ËWwãüÅßa€­¶–:|¸OTT¦p«Ý±#j„mm4áV‹ã=æää`F£ÑºlÒét¤¤$ ÃæÎ„aX]]¬¬ìñãÇëëë™Lfss3ƒÁ°²²º|ù2«Ú+W®tÏ£d2™›‰‰ ÇBî¡âyÔÚÚ:""‚U~ýúuVMNNfŸF£„¼¼<|O‰Ô½]ssóªª*|;!!aìØ±ø6NOOO ´¶¶&x‹cîèèxûö-•Je0)))xÓ£F"‘Hønùùù¬íîÍõ”GŸ?N$¹t^ÂÚæx²»…K'ãÉ£0® ààþý\œ96B¬óÕ«Ïwïž'//+Äjù ¢¢‚’••í²"‹/&‘H555‰‰‰!uuõäääôôtƒ©S§>}úTZZšB¡Œû¿—vll8ô•©é'S477///çRÈ]qq±µõÿ¦|²´´dmëéé±ÇÿùógƒalüßesLLLXM˜››ã¥¥¥ºººRRRRRRNNN%%%---7oÞDMš4iß¾}d2yÏž=;vìèéDäää fÏž=~üøË—/ã_•••±v³°°X´hQOÍ©©©éèèäææv9ÍÜÜÜñãÇóÞK\N¶K·ˆäQ$R¶““•²²ÐxÁ0Ìß?zÂ#M$D...ÑÑÑQQQŽŽŽøhm[[“ɼuëV]]Ýš5kæÏŸ_WW§¯¯ÿêÕ+ÖQoÞ¼é^~å„*((ÀÙ{*änĈìõ¿}û–µ--ýŸqmmm@¡PðÅÅÅúúúø6+©à×|øµT}}}zz:†aË—/ýú5¾ƒ””Ô¬Y³ØßBés[[›«««ŸŸ_NNιsçð¯ôôôJKKñíÜÜÜÇ÷ÔBÈÃÃ#00Á`°šhii ž={6ï½Äåd»t‹HAtõáCí‹¥‹ 3áÝ¿Ÿ›]zðà¢~õæGß}÷N ôôôÄK¤¤¤œïܹÓÔÔD£Ñdee½¼¼üüübbb>}ú¿k×®îUmݺµ¨¨(++kÏž=+V¬è©°±±¿YÛe›eÓ¦M;vìxôèQmmíãÇ÷ïßßS7ÊÊʺ¹¹y{{—””äååýöÛoø%5»Å‹ïÞ½»¬¬ŒL&Ïž=ûÏ?ÿTVV^¹r¥››[\\…BIKKóõõuwwïéD:::h4šœœ\[[[@@B¨¹¹ÙÓÓsïÞ½yyyyyy›7oÆSâØBÈßßÿË—/3f̈/,,ŒŽŽž4i’¾¾þƹt•JííÉöþ†ƒØéÓ ––{i4º°*loïœ4éà/¿\V…ñ~”uyÔÓö† šššØ+766–““377‰‰Á0ŒF£)++;88à÷,»Ü½páˆ#ˆDâ–-[ÚÚÚ8bÿ|p†}›ƒÁ8uê”±±ñСCgÏž£©©ÙSüuuužžžºººÛ¶mcµË:—¦¦¦Õ«W«««khh¬[·®¥¥Ã0:¾ÿ~CCÃ;w²ÇÖ=æ“'O6ì›o¾9w»»––V{{»¯¯¯žžÞСCÝÝÝëëë¹4‡a•Jõññ±¶¶VTT´²²:tèPkkkO-vvv:::*++wé¢î'Ëå?+ðœ@˜¦O?êãsSˆž;÷ØÈȯ²²^ˆuvÇcåÅž={–/_Þ«Cºäª.¹òâþýû¹¹¹¬·oßf=$j|Ç,A-bðœ@ˆŠ‹¿¼}[¹pá8aUX_ßrúô£_~™®««&¬:E§½½B¡\¼xñçŸw,ÿC&“W¬X‘““ÓÚÚšžž¾oß¾µk׊;(ð_0/ àîßÏ%•L„UáéÓ òò²7NV…"•‘‘±hÑ¢7~ÿý÷‚Ô£ªªº~ýz^ y±cÇŽÖÖÖ… VWW9ÒËË‹¿zøÀwÌÔ¢€¤0 w €~ÄÙù¸Í7Ç» ¥¶²²Ú)S~?p`ѪU“…R!QQQnnnð›øàêêŠŠŠŠâãX×üOYYm^^życ„Uáñãñ††Ä+„U!ý äQÀÿ|ÜSaw¯^½222Ú±cGII‰HOJâ sB€Äª©i60Ø-”ÚV¬ùá‡SB©ŠwBœÏ¨¿ikk»zõêĉÇÒÜÜÜe‡îkq\VŒËÂjÝÛ­¨¨000˜?þÇ †ÈNQÌ`>#€ ÞÈÈHÏœi%xUdòÇÇßy{; ^@%&&Ž1"))éÌ™3ÙÙÙëÖ­SVVæ¸'ûZcUUU—ã²ÖXwzzzû÷ï§P(žžž´°°øøñ£POn €< @¡¿ÿ&O™2J( ¥ýë_ 663gÂQáÐÔÔ´´´LKKKMMmhhà²'ûZc#FŒà¸¬—µÆzòùóç7oÞ”——ÛÚÚ*((|B äQjnnò¤@(Oê¾~]ÿzûöY𘮰Œ3&99™D"½ÿÞÌÌlíÚµÙÙÙ÷ôñña­5¶jÕ*ŽËŠñ¾Ö“É|ôèÑ¢E‹ìíí1 KMM½qã‘Hå¹J$È£”””Ïd2…0¨ûçŸG6prBU€µµõùóç ­¬¬ÜÜÜX«{²[³f““Ó?ü°`Á‚íÛ·#„Ξ=«§§gggçììììì¼{÷îž »‹ŽŽpqq¡P(àqÉñAæ× uë.76¶EFn°žââ/ßü矞b™{að̯Ëd2™L¦ŒŒhéì씕ÂÃÛæ×𯵕–”ôV(ƒºgÏ&™˜hýðƒÐ¦çIKK‹:‰"„OäQ»””÷4]ð<úñc‰”½qãtii¸3 È£ vÿM?ÞPSSEÀzžhi©.Zd+”¨GÔ fRRþ¬YÖÖS_ßríÚó§ kŽ{$äQµÌÌ’††Ö9sF XÏÕ«iòò²îî“„ò(ƒZRR¾±±–¡¡@/vtÐÞxz:((È +0$äQµÄÄ|Á'"‘^47·¯Y3E(! YDþä4 ß*-­)(øtèÐbA*a2±sç’-/ø“JBáääD§ËÐé2òòœ— »×¯_O™Âç?!0x=~üVUUaÒ¤‘VRRR}éÒaEÅ·I“&-[¶¬¢bHi©šªj‡¥e­¸#cÊ”)øT |€< Àà•˜˜ÿý÷£|ÂöÒ¥§ŽŽf&&ZŠŠoõõR55ã?~ü¼sçìu뾇'‡A߀û£ RTjGZZÑŒÝ-*úòŸÿ¼ÿùg1ߥә'NÄÿøãÊÊCâã}6mšIô¸`zö¬€Á` ˜G¯\I54$NŸn!¬¨øPZZ³eKøû÷Ÿ~ÿ}©»û$Xgô1¸`JLÌ;vø°aJ|×ÐÜÜ™±b…ƒ¸R†a.<™>ý¨Œ !9yçòåöDA߃ëQ# Ã’’òW­r¤)›ÁÀ–/ÏÜ Tj‡¯oäýû¹7NÛ¹s. äq< À`ôúuùçÏM‚¬ŠaØ¥KÏ,;t¨¢ãQiiÍêÕaµµÔë××O:ªï€ÆuŒò Ô--ù_™ùùóâ‚‚Ob™{!>þµ³óqeå! ~DØA`0JJÊð £Ë—Ÿ?ÂÚZ_X!ñð'â׬¹ôÃcïÜÙ¬­­Ú—­ÀäQ/_š_½ú(H­ªjˆ-àíÕÞÂ0ì·ß¢Oz´gϼ'Üääà¶èà€Açñã|yyYGGS¾k®®®´`Á8!FŃÁôõŒŽÎùë¯U‚/9€A`ÐILÌwt4•——åïðÎNFDÄóeË&õÙ#²ôuë.gdGFnpC„Æu\h4zJÊ{Auãâ^ÕÖ¶¬\ù­£âO¢™™%ë!‰‚~®G\ÒÓ‹[[iNNüçÑK—ž99Yéë« 1ªžtv2Ö­»œ›ûáÎM‚<] €è@`pIN~gn®£««ÆßádòǬ¬’ÈÈŠ#¾zuX^^Etô–‘#5û Eøãº .¿dP÷æÍ CCâäÉü?£Ä#:ùË/×rr>ܸ±’(èÏ 0ˆTTÔ~ž2…Ϲ ÚÚhwîd¯Xá --Úil™LÌÇçfJÊûððu0œ ú9×`yòä½’Ò¾ŸÖ‰‹#··wº¸Ø 7ª.0 óõ¼wïåµk??B¤m 8È£ "))ïííGòý¾JddÆôéšš*ª ÿ»·og…†®vt4iCŒë0X0Ì””¾uKKkÒÒŠ—-íê.ÿþwòÅ‹Oƒƒ]fͲiC äQ 2¹¼±±•ï‰Ýoß~¡¥¥"଼Ü]¿ž~èÐý#G–¸»Û‹®„ ò(ƒEJÊ;==533>Že0˜7nd,Y2AFFT?ÿMÞ¹ó–·÷ÌŸ~š,¢&È£ Ožð?¨ûìYá§Oîî¢ÔÍ̤lÞîæ6qÇŽ9"j< À ÐÜÜþâE ߃º7ofØÚŽ06ÖnT¸·o+W® 1Ã28ØEJJ´oÔ tGž?/b2±)Søy¶±±5>þõ²e…B¨¼¼ÞÃã/KKý³gWð‹$¼÷À ’ò~ôhuu%>Ž%‘rdd Ú =**µcõê0ù°°ÕC†ðÿsôáÇM›6µ·· 1608­_¿~éÒ¥½:ò(ƒÂþó~þü1ü™9ož’Òá†D§37n¼RSÓû+ ž%===66ÖÅÅEX±ÁéùóçQQQG]••Õ–”Tó÷Ñ›7dòÇ€€…•Ÿ_dVVILÌVa-%”zÀ åêêÊÇQGøðéíìŒø8622ÓÐho/ä…?ÏœI¼sçÅ•+?ÅÏ{8ôpW€ïÉ“‚o¿5ác:@~çN¶›ÛDá>FK"eýýûïK§M3bµˆäQ8:ùôio¼<~ü¶±±uÉ’ BŒçÅ‹Ÿ›^^ßyx8±ZÄò(\nnYSSy4::ÇÁÁØÀ@8÷/Bõ?ÿ|ÙÞÞX7\ È£ p))ï‡×àc …¦¦¶‡ó„x1ÚÖF[½:LMM1$d•èæ—¢¢"!Ž~KIIñÑVeeåòåË •••íì좣£…’p±ŸBKK‹ŸŸß˜1cTTTìììŽ9B§Ó{[‰ ´?e@))ß}ÇÏô ¼–’Bóæñù¶L†mÚþéScxø:UUy¡Ô9h©©©íܹ!D¡PˆD"«¼¶¶vܸqŠŠŠ‘‘‘™™™Ë–-swwøð¡ø"ýºæææ &deegggïÞ½;""ÂÉɉÁ`pÜŸý”Yý ^ð¼.Yssû«WÖ®ýŽc££s¦O·PQNÎ;}:!))ÿÖ­_„õ–Ë`F$ƒ‚‚BL&³¶¶–U0mÚ´ .à---?}útüøñY³f‰'Pjjj&%%„™™Ù¬Y³¬­­/]º´víÚîû³Ÿ2«Ä ®GÈÒÓ‹ &×£_¾4§¦ k£„„7ÇÇïß¿pâD!¿?Ó+RRR/^´°°ÐÔÔ ºvíš‘‘ÑСC÷íÛ‡òöö^³f ¾'•JUTT|ùò%Bèþýû666òòò#G޼víBˆÉdž={ÖÂÂBEEÅÁÁ!99™}tlŒ‰‰5j”–––··wGGÇBôϑɞF)¥¤¤""",,,† vôèQö=íííB::ÿ}wèÎ;[·ne?6 ,, ßnhhXµj‘H400ðõõŧâÞ'¼ì‹_ëêê²²Z÷˜ ƱcÇÌÌÌTTT&Ožœ‘‘ïîïï'Qœ’’’ŸŸ_xx8ÇNc?eöëé캄!`à ˆž>ý(†…=5jW{{§à1¼{WejºÓÏ/RðªzÉ˯BÈÝݽ©© ¿bsuumjj AÕÔÔ¤¤¤hhhtvvbneeÅd2©Tê!CΟ?_UU&##C¥RCBB´´´H$Reee\\œB¨°°ßpvv.((HOO711Ù¿?ÇB ÃBCCñðØ·ñ YÛK—.­¯¯ EÕÖÖvi ß­¾¾!TWW×Óé{xx̘1£¸¸˜L&[[[ãpîÐÔÔ$''çååU^^Žúòå ǘOž<ÉÞizzz!<æêêê.¡¦¦¦jkkséI|7öížÎ®KÜÿB\\\\\\¾ú‡ÔäQ²™3íÛGâãÀ~ø—·w„à46¶Nž|xÑ¢34]ðÚzÂ{ÍÉÉÁ0ŒF£uÙ.,,¤Óé:::III†Í;7((ðºº:YYÙãÇ×××3™ÌææfƒaeeuùòeVµW®\éžGÉd2+6Ž…ÜCeÏ£ÉÉÉì¡rÌ£uuuxfâX!F#yyyøG‰„À½O¾ºCGGÇÛ·o©T*ƒÁHIIa?ªKÌfffÝ;­§<úüùs"‘È¥'ñÖ6—³ë—>ÇøÍ£0® À€UW×òömåäɦ½=ðÇڜœ2Áu1 Û¾ýfKKǹsž|Ì! ***!YYÙ.Û!°xñb‰TSS“˜˜èááRWWONNNOO700˜:uêÓ§O¥¥¥)ÊØ±cYuÚØØtoÈÔô¿Ýnnn^^^Î¥øÕ+TŽÔÕÕµµµóóóÙ ³²²ìììZ[[?þÌ`0ŒñrV\úä«;ÈÉÉÌž={üøñ—/_æóÇ»wššššŽŽNnnn—sÉÍÍ?~<¾ÍK§q9;^ºN@G°22(RRRƽ=ðîÝ—D¢2Où²û÷¿“Þ„†®ÒÑ*`U}ÃÅÅ%:::**ÊÑÑ­mkkc2™·nݪ««[³fÍüùóëêêôõõ_½zÅ:êÍ›7Ý«Â/•BøOyO…¼–æé·zÁ‚'NœÀ¯ÃpááኊŠÚÚÚB¡àåÅÅÅúúú¼Г¶¶6WWW??¿œœœsçÎq‰ÙÐÐc§yxx²?ÛÒÒ<{ölü#/Æåìxì:A@`ÀJM-´´ÔSUUèíwïæüðÃ_ñLN~wäHìÁƒ‹'Làg^_±øî»ïètz`` §§'^"%%åìì|çΦ¦&&++«¨¨èåååççóéÓ§øøø]»vu¯jëÖ­EEEYYY{öìY±bEO…¬ÇkÙ·{…J¥â‡NIIñôôLKK#“Éøã?>Œ’••ussóöö.))ÉËËûí·ßð nuttÐh499¹¶¶¶€€„Pss3Ç=7lØÀÞiþþþx¹¿¿ÿ—/_f̘_XX=iÒ$}}ý7â;pìIÖ)ãDtv¼êí@0@RL›|àÀÝÞ•Ÿ_©«ûkf&E¦ËÊj,,öüúëuA*áï÷GÙo:rÜÞ°aƒ‚‚BSS{寯Ærrræææ111†Ñh´ÀÀ@###eee‡ëׯ£n÷G/\¸0bÄ"‘¸eË–¶¶6Ž…Ø?op²os•µggg§£££²²2+ÚÒÒÒ¥K—êé驨¨Lœ8ñÞ½{¬¯êêê<==544tuu·mÛ†ðÕ>ùê'Ož6lØ7ß|sîÜ9www---Ž{ÒéôcÇŽ™˜˜())988¤§§³N–J¥úøøX[[+**ZYY:t¨µµµ§žd?å.·‡y?»žðwT c ÕÕÍcÇ\¹²væLË^øûïqwïæ¤§ÿÆ÷L14}Ñ¢3Œû÷dunÞEEE¹¹¹ å×lïÞ½¥¥¥¼RTTdjjÊj½ËG.…€»¾ï4|Ý´Þ.Àó000=^L HÙÛ÷îæ(†aÑÑÙ Ú 2ÝZ@ÀÝââ/ññ>}“D…¥½½½²²òâÅ‹7nÜw,@’ÀýQ¦´´ÂÑ£ ”•‡ôꨜœ²òòúE‹øR722óêÕ´3gV¿¾w’‘‘1aÂ//¯ï¿ÿ^zTUUׯ_ÏK!àNR:M’þµà]jjÑìÙ£{{Ttt޹¹®…E/%eG¡Tÿöi͚¬ø«AŒ¦NŠ¿‚Ù[¬WqZZZçÏŸï²ÇBÀ¤t\0}úÔX\üeòd“^Å`0ãâ^ýðŸÓÓhô ®˜™iïÛ·€¿Dp= Àôüy±¬,Áήw/œde•|þÜôããøk4 ànEECB‚o?™r€¾y€(5µp̘áJJ½»9zÿ~®¥¥+•"„îÝ{yåJê… «õôÔø8É㺠@iiE½Ôe2±¸¸Wü­6úñcÝŽ·V­šô‘“Û¾>@èòŽ„””Œ’ÒXEE›ššLf›¸b’…·ž 0Ф¥ÚÚŽ—ïņÅƾruØÛ¶²³ËΜI©W‡¼zõ±²²¡·ƒºÍÍí¿üruî\›•+¿íÕ¢ƒaؽ{¹'NÄ—”Ô,Zd{ýúz‰›HÈ£ (eeµ!à;Ä IDAT•• ß~Û»5GãâȆ†D+«Þ-¤µo‰Á`»ôê(ÑÉÎ.ݽûöÛ·Uîî“®_ß`` .îˆÀ y€%=½xÈ[Û½:*66··OêÞ»÷òÖ­7n¬:T±WŠBssû±c._~fa¡w÷®÷øñ½;}y€%=½ØÖvD¯&ˆÏϯ,+«íÕ++•• ø‹.S¦Œê}ŒÂÄdb/>=yò¡ŒŒô‰Ë–. È ûðò(JF¥·ÅŽÒ×W7n8ûc¶}ûM==5ÿ{ 0UW7oß~ãñãw®®v{÷Î'áa" G8>n,-­™4©w/ÀÅÅ‘çÌÍûeÜÅ‹OŸ?/Ší£µE{òøñÛmÛn "sûö&‡Þ-€Á|F ™™%‚ôøñ†¼RXø¹ àï7GKKk~ÿ=nË–™£Gð¢0´¶Ò¼½#V¬økÖ,ëÇwBâ×£ ™™%––z**ò¼÷J[[•Çí æ–-áff:¿þêÌoŒ‚*,ü¼qãÕ²²ÚS§ÜÝÜzýÂ+By€#3“2qb¯ugÏ--ÍÓ î… Oòò*=ò•‘ÏPVJÊûõë/©•à /†‚~Æu ššÚóó+{us´´´æÍ› §_ PªƒƒÿÞºÕÉÔT›ßòçŸI+Vü5gŽMLŒ7$QÐÀõ(DNN)ƒÁìUÏSSSœ4éë÷ æÖ­×GÒÙ¼y¦1ò©³“±gÏ7Ò÷ï_¸v픾. 0@df–ijjªð~ÈǯgδäeÙí°°§dòÇøøí}?¢ÛÖFÛ´)<))ÿÔ)w»>n€¯‚< À‘™I™8±k¼TW7ge•üüóÔ¯îYRRü···“……žò£¹¹}åÊÐ÷ï?EFn´·‡çrAy€ ³“‘“S֫˵ääw²²„©S¿2!†a;wÞ1BcË–‚ÅØkµµÔeËÎ×յܿ¿ÕØX«[€GGÈäíí½º9šðÆÁÁDIi÷Ý¢¢²ž?/ЉñîãåE?}jtu=G§3cb¼aÆyПÁóº mmUÞŸbíè ÿç?¬¸ïöéS£¿ôÏ?OéíÄ÷*+«ýñÇ?ddwïBýäQ‚Œ s)àÒÒŠZ[i³fYsßí·ßHÊ~~s‹®wJJª—.ýSUU!*ê-­^<6€X@@â1™XffI/uó,,tõôÔ¸ìóàÁë^=ꪠ 'pŒ¼úø±ÎÍíßêêŠ7on€yçD€< €Ä+,üÜØØÊËk 8 Ã=zãìÌíb´±±uÏžÛ‹wtìÝ’à‚¨¨¨wq9§®®tëÖ/Dd€< €ÄËÈ ¨ªÊ[Xèò¸~~eee÷›£GŽÄ1ÌÀÀ…Â'ø=Q ¥[·6õ‡µÁàäQ$^f&ÅÖÖ@àõçGÞèè ;ö›žvÈÉ)‹ˆx¾{÷Ô.]ú§¦¦ÊTU{1Ï>by‰—‘Aéí/Ó§[ô´à(ƒÁܽûöĉ#—-›$¤¿âãǺ%KþÔÐPŽŒÜ¨ªªÐ7 ,Glõõ¼çÑOŸ_½úèìÜã î¥KÏÞ¿ÿtâ„ï+{ ¢¦†êá"//{õêÏD$‚yl/^”ÊÊÆŒéq¶‹¤¤|yyÙ)S8Ocôùsã±cÖ­›jd¤)¼{ÔÔÔæî~žNgFGoÅ+.4íæÍ›íííB¯H:gggCCC¡TyÉ–•U2z´ﯦw.OËz ¢³“±nÝå¼¼Ê76ÀŠÜ@ÒÁõ(ŒL.§Ó™vv†<îÿèÑŽƒ¨éJuhèjaÆÇ “‰mÛv#5µ02rcß/Ä€ÐÁõ(ìÅ‹==5o.böøñÛ38\ŒÖ×·=ú÷ºuß›˜ˆ|y²  ¸{÷^ž9³‚÷Ëhú3¸@‚½xQ:a‚!;ççWVU5ÌœÉ!>«¬<ÄÇg–0ƒãäüùÿüùçã?ÿ\1gÎhQ·@߀ëQ$†aÙÙ¥¼_Õ%'¿#•mlº¾!“›ûáæÍŒÝ»èé!^a¹}ûÅÁƒ÷öì™·p¡­HêWŠŠŠ„ø&®””TQQ‘°jãß§ÓÒÒâçç7fÌ;;»#GŽðø¤p;P  ©ÊÊjëêZz“GßNj.-ýŸ$ Ãöí‹¶³3Z¸pœðCdóäÉ{Ÿ›k×NÙ´i†HÌ( ‘(üç¶Ø«USSÛ¹sgokhnnž0aBVVVpppvvöîÝ»#""œœœ †ˆZìK0® €¤zñ¢tșѣ xÙ¹©©=+«ä_ÿrèRóòå˲øx‘þ“ÿÍ›ŠŸ¾<{ö耀E× `2™µµµ"­–H$õ¶†ÀÀ@MMͤ¤$€233›5k–µµõ¥K—Ö®]+Šû\ ©²³KGþFV–ÀËÎÏž0™Ø÷ß›³¶¶Òï¹¹M²¶ÖMŒ!ôùsÓêÕa£Féž>½¼ËÕp?!%%uñâE MMÍ   k×® :tß¾}!ooï5kÖà{R©TEEÅ—/_"„îß¿occ#//?räÈk×®!„˜LæÙ³g-,,TTT’““Ùÿu‚OÆÄÄŒ5JKKËÛÛ»££ƒc!úç`fO›RRRÆ ;zô(BÈÞÞ!¤££ƒïÐÙÙéçç§­­­¥¥åçç×ÙÙ‰W•””4|øðgÏžÅÆÆŽ7NQQQWWÏUt:= `øðáššš+W®lhhèR-+˜… nß¾o¨££C]]=..Žc£¡ððp<‰â”””üüüÂÃÃ9öÇB «V­"‰¾¾¾øLUÝû¡¯aÉ4sæ±îò¸³¯oäœ9'»ÿ=jÔ®êêfa‡ö?mm´9sN::©«£Š®•žDFFòò+‡rwwojjºpáBÈÕÕµ©©)$$!TSS“’’¢¡¡ÑÙÙ‰aXxx¸••“ɤR©C† 9þ|UUUXX˜ŒŒ •J ÑÒÒ"‘H•••qqq¡ÂÂB<|ÃÙÙ¹   ==ÝÄÄdÿþý 1 khh ÅÃc߯+dm/]º´¾¾>44!T[[Ëj ¼dÉ’>Éd[[Û]»vá;Ì™3çñãÇUUUrrr^^^åååááá¡/_¾;vÌÊÊŠL&¿~ýzÒ¤I¾¾¾¬Èñ:YÛ7oÞ>|8“ÉÄ0,&&FOOï¢îÖ××#„ª««»t{jjª¶¶6—néÒ"†a3fÌ(..&“ÉÖÖÖx_uþwqqqqqùên<‚< €Djnn70Ø›ËËÎL&ÓÖvÿÑ£³VU5Œ¹ã?D †aÎðð±±Ù÷ñcèZá‚÷<š““ƒaFë²]XXH§Óutt’’’0 ›;wnPP†auuu²²²Ç¯¯¯g2™ÍÍÍ ÃÊÊêòåˬj¯\¹Ò=’ÉdVl&&& ¹‡ÊžG“““ÙCí’GÍÍÍ«ªªðí„„„±cDz7×ÑÑñöí[*•Ê`0RRRðFE"‘ðCòóóñmŽY­¥¥EII)33ðeË–íÞ½»§F{ʣϟ?'‰\º¥K‹4@ äååáå$ ï«îýÀ¥qÂÍ£0® €DÊÍýÀ`0y|éåýûOUU Ó¦ýcP÷÷ßã´µU7l˜&’øB9ûìYaXØjuѵ"***!YYÙ.Û!°xñb‰TSS“˜˜èááRWWONNNOO700˜:uêÓ§O¥¥¥)ÊØ±cYuÚØp˜Êôÿػπ(Ž·às4¥ƒô&R¤°ƒ½b4þ-HP‰ öÞ°F1¨‰˜Ä˜X‚‰삊FPépôÞ‹”ãààÊîûáò^ð8à€½‚>¿OwÃÜÌìRvvvž‘#Ù/,,,ÊËË{(䇮®nç¡r)..ÖÑÑ!‘H$iΜ9EEEœ^B222¹¹¹ÎÎÎcÆŒ¹|ù2ûK%%%œÁXZZ.\È{ I„œœÜ‚ îÞ½ÛÚÚ¶zõêî:UQQÑÖÖNIIáj!%%e̘1üŸšš‹ebbÂ~kjjÊ©Ùóy4ˆ£ J‰‰Åzzª|îÀ­ª*?j”!§$=½üÞ½÷ûöÍåóöj?\½úÆÏïÅ,;ÖH@]‹‹KhhèíÛ·'OžÌž­¥Ñh†Ý¹s§¡¡ÁÓÓsþüù zzz©©©œOeffvmŠ}u…ÊÍÍeÿõï®=ý g_í±¯™ãããÙåìxC£Ñ–.]êåå•””táÂö—tuu‹‹‹Ù¯SRRNœ8ÑCûnnnwïÞ}øðá˜1c8g§Ë—/÷ññé¼:·µµÕ×××ÙÙ™ÿ3 ¥¥%))YXXÈ~[PP §§ÇÏy4ˆ£ J}}rtÊ3IÉÿ~ßúéñ¨Q†ß|cßçâõëÜÇC¶m›-¸.„iÊ”)L&ÓÇÇÇÝÝ]B"‘œœœîÝ»G¡Pètº´´´œœœ‡‡‡——׃ª««ÃÃÃ÷ïßßµ©íÛ·ççç'$$‰‰Å_|¡Ïç¡çϳ8+u Ö/¿„/Y2ÎÄD y]þø#2*ŠüçŸßéé‰û]þ½}ûvìØ±Ó§OH;JJJëׯç§ð³ò œ¸`ðIL,ž1Ã’Ÿšµee œÊ×®½©©¡ìÝû• FõìYæÏ??ùþûo&O)ˆöEeÚ´i ýø çéF6MMM???®:< ?+ŸÀ€ëQ ¥='§šÏźϟg)) 7Î!ÔÒÒ~útĺuÓ´µùzZ¦Oòòj6o¾æâ2nÆé„7€8ƒ8 À “–V†aøèѽ¯0BEGgOžl&%%ú믗†oÚD|º•övÆÆWõôT_Dxã€L.&þ¹ÉÄÄQ™¤¤>w`èè`¾}[8uª9B¨¾žêç½yóL%¥¡„éàÁ{åå ŸÌÚ"ø÷GdRRJùyÜ!”PH£Ñ§M3G;©¨8ÔÓs*áã¹víÍíÛï._^cd¤Axãˆ?¸`IN.µ·7à§æ‹9FF††jW®ÄnÛ6gèP‚7 MK+;|8tóæY³g[Û2èA]]][[[×òàà` 7²+ðL4Ƴÿ^ˆ£ &ÕÕÍ55Íöö†½WE(&&wêT3„ÐéÓOutT–/w v0MMmkÖüíà`²oß\b[ÝIHHXµj•µµusssׯ†‡‡?zô(22òرc¡-[¶”——¿{÷îÉ“'¾¾¾Ýv•ššjdd´wï^Î÷€7¢6FÁ“'izz;[ZÚ{­Y_ߢ§·óÑ£”¢¢:®} aØwßùÛÛ{×ÖRz¯-"|î (þh4ÚÕ«WÇ?jÔ¨‹/¶´p§Œíš}ÌÈȈg¢1ž…\»ýqTTTx{{ëëëÏŸ??""‚Åb ì… ò¦ðùJI)55ÕRPè}9Oll>‰Dš2Åì÷ߟ [²d,±#¹|ùõóçYü±LCC‘Ø–—ÈÈHCC訨³gÏ&&&²·´åY³sö±ªª*ž‰ÆzÈ>Ö•®®îÑ£G ÝÝÝ;fiiYVVFèÁ} Ž0˜ðsôõëÜ/¾Ð¯­m¹{÷ýž=Γ½ \ff…ÏÃ;œ¦L1#°YÀ“†††••Õ›7obcc›ššz¨Ù9û˜¡¡!ÏDc=dëNMMMfffyyùèÑ£eee|@Ÿˆ£ †§¦–ÚÙñµX7&&—}1jl¬1>‘ÉËZZÚ×®½<~¼ñÎN6 ºcgg’““cff¶fÍšÄÄDž5wïÞÍÉ>¶jÕ*ž‰ÆøÏ>†aØÓ§O.\èàà€ãxllì7ÔÕÕy¬ƒÄQ¢¢: ¥}Ô¨ÞãhIɇ’’ÆÆ÷ï'íØáDìŨ—×­ÖÖŽsçVHHÀ“ûÂcccãçç———gmmíêêÚ93(‡§§çœ9sæÍ›÷Í7ßìÚµ !tîÜ9]]ÝqãÆ9999998p »Â®BCC½½½]\\ øá‡>%ÿ¬@Þ4{÷ÞïÞ}+/ïd¯;ÔÅ9êìl›™Yþüù^ãè; ;vܸvmíÌ™|mð+ZæM+†a&%%Ø  †´4ÁJ‰ bó¦Áõ(ƒFJJ™••.?i^bbrmlôÃÂ’‰½-(¨=pà®§ç”AD?a‚¢¡O5ˆâ(ƒFJJ ?“º†¿~×ÞÎ02RÿæÂîŒ2™ØöíׇW;xpQmð €8 ÀàÀ`°22*øYd”‘QÞØØš•U¹eËl/FÿýiffÅ… î„oŠÀ ûë08dgWut0ùyè%&&wÈi==•Å‹ÇÕ{\\Áo¿==vl¡……Qmði€ëQ‡ääREÅ¡¦¦Z½Ö|ö,‹Á`nÞ<“¨‹Q*µcçÎÓ§[¬Z5™ø”@`pHI)µµÕïõQ“övFbb‘²²ì’%ãˆêúèÑû í×_]!E%]A`pHM-åg{úgÏ2Y,lõê)ü,ëåÇãǩׯÇÿøãb~2žð‚û£ ­­¹¹5»v}ÙkMÿ—’’[·Î&¤ßÆÆÖï¿;×öÿMHƒÂTXXwùr®„„ü_ý%ê±ñRXXhllLTkGÒÓËY,¬×ôÝÍÍmÉÉ¥vvC†ó«ýý÷!†ùúºÒšÐP(´3gž^º£¥%/-­°~ýzQˆéÓ§ÕÄQääR--%==Õž«ùùE³XØwßM"¤ÓGRCC“®^]«¦Æ;»ˆ¢Ó™þþ/Ïž’••þå×Å‹ÇJHü êAOÄQÔÔR[Û^žxéè`^¾‹š5‹€Í†>| îßgÉ’±³g[ ¼5áHK+Û½ûVnnõêÕ“wîtRV–õˆÀgâ(ƒ@ZZùâŽ$½qã-•Ú1r¤!—ÞÞ÷ed¤Ž_4𦄠½ñË/áýõbüxãèè}ÆÆ¢øŒ@@Ü57·•”|°³ëéz”ÉÄüü¢••e'O& !hxxzHHâ•+k””A²É—/söî½M¥vœ?ïNl†8øqq—–VŽãxÏ‹Œþù'­¢¢Ãð‰MØ]ssÛw.=gŽõ›´öv†Ïƒ+WÞLjöóÏ®úú½Ü?@ Ž îÒÒÊttTÔÕ{š­ýóÏçööÓ“K&N4`w'OþÃ`°~øaáÛ´‚‚Úuë®”•}øå—¥ß~;öˆ¢û0 îÒÓË¿øB¿‡ ±±ù©©eúúªææ:ªªòéëýû¢k×Þøø,ì9l‹\@À«Ù³–““‰ŽÞçææAˆ\ îz]dôçŸÏÇ3ÊÍ­àÅhGsÇŽsæX/ZDØ÷„kmíØ¿ÿnHHâ¦M3÷í›+%@ÄàG±F¡ÐJJ>ØÚv{=š›[íææ]5À8zöldm-åĉÅiD jjš.<ûôiÆŸº:4‚(p= €XKO¯Àq¼‡8ðjøða CH$äèØÿEF99ÕgÏFz{/ÐÕUéw#••Uåîþ—ŒŒÔ“'»àÉ >à¿9ÄZzz¹––Rw{Ä76¶Þ½ûÞÓsj||¥¥®ŠJ?wÀ0|÷î›vvÃÅ63Ú³g™óçŸ12R‡ Ä ÄQÄZzzY‹Œ®_—––üöÛ qqù™Ô½}û]ZZÙ?.î5/›Hüý÷kÀ¹sm¯_ß0(iŸˆ£ˆµ´´òîvd2±Ë—c]\ÆÑéÌììê~ÇÑÆÆÖãÇÃÖ®fc£7€‘ ʹsQ‡Ý[·nÚ™3ˈJàþ(â‹Jí(*ªëîzôéÓŒªª&OÏ)qqù¤~ßõñy¨ 0ÔË뫌TP~ù%ü·ßž=ú¿u릉z,ðqñ•™Yaxwq400fút ##€€++ÝþMxÆÅܾpéÒê¡C¥6X‚a~ðàÝë×ãÏ[±páàË~ >0¯ €øJK+SWWเ6+«òÍ›|)¡7oòú7©Ë`°º7k–¥³ó+¡0 ß»÷öoÏŸw‡ ÄÄQÄW;ýý÷kSSÍ3,êêZú½Õ+±EEu>>âµ †áû÷ß¹s'áÂØw G_ii¼ãhccë½{‰«VM&‘Hññ¤ ú|s´¦¦ùÔ©6ož5b„:ƒ%Žãûöݹ};áÒ%¯¿¶õpèÜ@LµµÑ jy.Ö½yó´´ÄÒ¥ãBqqù66zJJCûÚ¾¯ïee¹M›f0V‚°XØ–-A×®­2…€pÄQÄ™\Ába]¯GY,ìï¿c–.¯ 0!_8mšy_ON.½uë¿ÿ*99b†;`ì½ ""2._ö„ ˜×@L¥¥•«ªÊ ã*Œ$WV6±W55µåäT;8ômRÇñ#GBŒçε%l¸Ã¢$ÿý·çÔ©}þ·‚ëQÄTw‹Œ.]Š™9Ó’}S3>¾€DBÆ}jùÑ£Ôää’ˆˆÝÄ ”ÞÞ÷CB/^\ÙkkD ®GS<eeU½~˾E½{Whn®­¬Ü‡mu;:˜'Nñ÷ß1gÏ.·ÇoàÄQÄQ{;#/¯ºk½z5väH-ÎEÛÛ·…&ôíbôÒ¥W>P÷ïŸKÌ@ìÂ…ç¿þqæÌ²o¾%ê±Ð0¯ €8"“+™LŒ+]•ÚqïÞû½{ç’H$„PkkGzzùºuÓùo¶¶¶åÌ™§›6Íì.Œ]¿âÄ£cÇ.YÒS¢ò222*..\û`p‘‘‘yþüù¤I“ˆjâ(âˆL®TTjh¨Ö¹044Ãpöã.¡ää&ëÓõèéÓá**r7Î r¬ý–²oßM›fr¦©¤¸¸xçÎŽŽŽí K—.­¨¨ °Aˆ£ˆ£ôôr=öu'GPPÜ‚£9о}[8|¸š¶6¿W–YYUÁÁñ¿ÿ¾L¶Ò}ñ"{Ë– o¿pðà×BèÎÁÁÁÅÅEÏÜ@‘ÉVV­JO/OO/_¶l§¤¯7G½½CG6‡íjß¿/òôüÛÙù‹“'—pý¯À q±ÃbaYYUÖÖº ¯_77×3fû-ƒÁJL,á?ŽFE‘ccóY ò¸•›[½rå¥ ŒÏ[!) ‚À ?Ĉ¢¢ú¶6zççRh4zhh¢››§$=½œF£óG Ö?<˜?ß~ÌCâ‡ÛeÛìM IDATe ß~ëgb¢yéÒjHÊ > p±“™Y!--in®Í) Kmogº¸ü·¨õÝ»"uucc ~ Š«¨hºys#ñcí‹ææ6wwÿ¡C¥VËÊŠË~„ \ v23+LM5edþû7÷ÆxggUUyNÉÛ·ãÇó3IK¥vœ9ótÕªI<ó˜ ƒÁZ»öJccëÍ›45E8áËÏÏ'p:D"åççÕúxx$^8ú} ­­­^^^vvvŠŠŠãÆûñÇ™Lf_Ç&¶àz±“™YÑyR7/¯æíÛÂ76pJpOH(Ú¾}?­ùû¿¤ÓY|Vœ={n%'—„†n>\­÷Ú@tÞ¼ycddÔ¹DJJjß¾}ýn°¥¥eüøñZZZ¾¾¾ÆÆÆ‡~öìYdd¤¤$¹ýÂÂÂñãÇ×××#„TTTÒµp@@ìÉ•ë×ÿ÷ˆç­[ï †uN’—WÓÐÐÊÏÍÑúzê… ÏwîtRR’ÈXùsî\THHâåËž66â²!莆††¶¶6WáÉ“'ûÝ ††FTT;jš™™}ùå—666ÿý÷š5kºÖÇ0ìÇì×êêêéZ8`^ñRW×RSCá,Öe0X·o¿su/!ñßìÖÛ·…JJCùÙ ×Ï/ZQq¨ 7:èÙÇÉ?ýôøàÁy³fY‰p=#‘H–––'Ož¼víš‘‘‘²²òáÇBÛ¶móôôdפR©rrrÉÉÉ¡°°0[[Û¡C‡_»v !„aعsç,--£££;OK²g)a„={öà8N¡Pddd<<<ÊË˃‚‚Bµµµœá±OIIié„Á`pŸ]Ó××wñâÅ¥¥¥iii£GÞ¿?ÏÒØØˆª««ãpll¬––V'„]­óë®ÇÈð’%KýýýB>| äç¡O Ž ^΋=ú(çíòåW¬¸ÈUgìØΜyÚkSÞ›0áÎ$xˆ|«¬l´·?âêú§Ç€óG“’’p§Óé\¯óòò˜L¦¶¶vTTŽãsçÎ=yò$Žã ÒÒÒ¿üòKcc#†a---,ËÚÚúòåËœf¯\¹Ò5ަ¥¥±¿zëÖ-SSSž…=•+ŽÒétIIÉŒŒ öÛSSSssóv ™Lf¿îèèÈÊÊ¢R©,ëå˗즸â(—°°0žqÔ¢ªªŠýúÙ³göööiiiIJJ²ßèéééêêr²Ü¤¤¤œ8q‚=æ¥K—zyy%%%]¸p¡O½pa_M²cmccc||<Ï‚Z¾|¹‹Åâ|¶µµÕ×××ÙÙ™ÿcçyŒì×"dG#4½°°ÎÊJ!Äba7nÄ/Y2NJê£ßÓ÷ï‹llô;?]ÚU~~í; Û·ÏÕÆ{§NýI¾tÉã“yÊeÊ”)L&ÓÇÇÇÝÝ]B"‘œœœîÝ»G¡Pètº´´´œœœ‡‡‡——׃ª««ÃÃÃ÷ïßßµ©íÛ·ççç'$$=lØ0ƒ .¸¹¹ijjr5Þõ#Ïû£ eõêÕªªªjjjëÖ­kmmåyBبTêîÝ»mllää䬭­?ÞÖÖÖÝ a0“'OVPPàê±ë1öðÍêù{ ëŒød]»öÆÔt‹…á8¾ukÐ×_ÿÆU¡¹™¦§·óÉ“´É̬ÐÓÛùða²Ú½¼¼š‘#÷y{‡Š¤wžˆú»yðàÁeË–õé#Ã@×·=~&Drì„ÇQ˜×@ŒÉ––º¤ÖÖŽÇÓ–,ÇU!%¥Ãð±cx~œí—_­¬tçͳäHy£PÚW® =zÄ‘# „߻ഷ·®]»VÔcbâ(b$#ãßźOž¤3™¬ÿýoW…„„â#ÔÕÕºk!)©$<<ÝËë+áïJŠãø¶mÁ4ýܹwø¼}ûvìØ±Ó§OH;JJJëׯç§ð3ñi;ì €¸À0œL®`'u Iœ>ÝBEEŽ«Nbbñر#zhä—_ÂÇŒ1g޵àÆÙ?ÿŒŽŽÎ ÙÚC˜¤¦M›Æ^zÚWœgÙ455ýüü¸êð,üL|Ç×£ˆ‹’’ÓŽÖÖ¶ÄÄä.^<†«‹…%&sRyw•œ\úâEö®]_ v ¼ÄÅœ<ùøûïç‹<Åéçi€yQEZ±qq‘‘Q!))ae¥ûða²¼¼Ì—_~ÁU!7·º¥¥}ܸnoŽž9ótìX£3,‹ è·ææ6]ÝááiŽŽÇynbPSCÑÑÙÅóãÜqt<.ä ŒŠŠêÌÍ÷ïÙCä#í‚€ˆ~î^øh4ÚÕ«WÇ?jÔ¨‹/¶´´pUèš8ÅÈȈgŽž…Ýí‡PQQáíí­¯¯?þüˆˆK4;d‹ðŸ¸@,ääTã8ÎbáÅÅõ<'u“’Š%%%x.Ö­©¡Ü¸ñvݺéÂÜM—Á`mÞ|ÍÀ@íøñEBëôóihhuöìÙÄÄÄuëÖ)(ð~²¨s┪ª*ž9RzHœÒ•®®îÑ£G ÝÝÝ;fiiYVVFèÁ} Ž ÈäJEÅ¡±±yffÚ¶¶]+¼_lf¦Å3wÊ¥K¯TTä–-jj—Ÿ~z”—Wã↑ëz(@, ++«7oÞÄÆÆ655õP³sâCCCž9RzHœÒšššÌÌÌòòòÑ£GËÊÊø€>5G ÙÙUææ:¡¡I pïaÄöþ}1Ïí)Ú•+±kÖLí9 ±"#É/¾H8¯,<aÂqÜÒòàˆ22RnëZ!1±dþü3±±Œ4:—··3Æ÷Y¶Ìaÿþ¯…6Ô+þÊË«‰ŒôRRS|$éÖ­[K—.õ@ƒa†aRR‚`0ÒÒÒíB$ÿy€ëQD¯²²‰BiÏʪäy1Šzÿ¾H]]¡ë$êo[[ékÖo¡ÀÀ˜W¯rÏ[1X‚è'IBBBÐA!ôIQA€8 €è‘É•$ Ã𯿶åYáýûâ1cFp=Ê`°ÎŸrs› ´}áÉäÊcǶn=~¼±pz@üA@ô²³«†•š8ÑTCC‘g…wï »¦yyð ¹®®eÓ&!mH£Ñ7mºöÅú"Ù± Ö½ôôŠŽæ×_óμ]YÙTW×2zô®rÿ—óæÙéêª||!„Ž{XUÕtåÊ))øÿ€ÿÀ”TŒúê+î/lïßKIIØÛôPéë×y[·ÎÂðB—/Ç?¾ÈÐPM8=0X@@Ä VUU³‰‰fw“ºÉÉ%:²²2 ^98w—û…XMMmûöÝþúk;—qBè€Áâ("–™Y㸳³Mw’’JFþ(9vqq}dd¦Ð–é8pWBBÒ¢ÀÄQDìþý$„»;ï VZZÙ¨QÅÑÀÀƒaNNÂH‘öÏ?i$ûúº()ñØ’Pü‘É•C†Œõ(À§ Ö b/_æÈÊÊèë«òüjVVeG³óõ(…Ò~óæÛ]»œ…°+}SSÛÁƒwÿ÷¿ÑÂOk:p¥¥Nzrÿ~’¼¼­««««««¨GıOßB@” VAA•U·;®%%•*)Éššþ—Ýóöíw8Ž„³+ýÑ£÷q81È2º”•5?öøqª••îp¼º¦f…¨Ä…¤¤äܹs lâ(¢“Ëd²¦N呵›-9¹ÄÎ΀³†á1..c…°PDDÆíÛ /®TU•t_D¡Ó™þ}þ|”¢¢¬¯¯‹«ë)) „º=½ ÄQD)$$ !äèhÚ]…¤¤’yóþ{®422³´ôÃÚµ_aD¡Ðöï¿;ožÝüùö‚î‹(/^d:R_ß²c‡“‡Ç”¡Ca[; G&{ö,!deÅûñ•ææ¶ÂºÎ7G^M›fε[½ ;Æb±NžttG„Èϯ=xð^llÞòåÎSQ‘õˆÀgâ("ŸßÒÒ®¢"«¥¥Ì³BJJŽãœ8J&W¾~¼^Ð{ù2çúõøsçV &î3ºL&ö×_/NŸŽÐÔTº~}ý´iæ¢øì@@d?NSQ‘·´Ôî®BbbñðájjjÿnCéRÌÈ‘ZÓ§ 6TP©^^·œm.-ÐŽ®¸¸~ëÖ ŒŒŠ-[foÙ2kÈøƒDž@4X,ìŸÒää¤-,º]¬›œ\2jÔpö뺺–{÷Þ¯^=…+ë á~ý5œB¡;&Öktqx5c†¯¤¤äË—ûwïþ‚(øÉ@4Þ¿/®«kQP17ç}=ŠãxRRéŽsØo¯_—““quìÎ|iie¯~úi‰Ð¶¿ï‡šÊÎ7bcóöîýjýú°o>-ˆ£ˆFDDúðáj¥¥,,xÇÑ’’­ì›£,·dÉX®]v‰Ådb;wÞpt4Y±ÂQp½ лw…7^“‘‘¼{wó¸qF¢0¯ €ˆ„‡gØÙ „º»MN.•––´±ÑGEE‘++›<<¦tH—/¿.(¨ç5ºW¯¾qq¹0i’é³g^D˜€ëQD   ¶¸¸~Æ --%eeÞi$%•X[ë±oûÅMšd:b„ºà†T]Ý|êÔ?6L76øC5ý@£Ñwï¾õøqꉋÅùr|† Ž Ïž‘UUåÛÚèææÝ&>KN.aoO_^ÞøüyÖ… îÒÑ£÷ÕÔvìph/ýS^Þ¸zõ¥ššæ;w6o,êáð˜×@¢¢2§O7ÏË«énR—Ng¦§—=!tóæÛaÃä¿úÊVã!?|˜òÓOKÄp ôôòo¾ù½£ƒqÿþ6¢@ A@Ø(ÚÛ·…³fYåäTwG32* ÖèцL&výzüҥ㥥%4žŽæáá_m7}º…€ºè·×¯s/>gn®ýèÑNñœpâ(ÂöâE6BÈÒR§µµ£»8ššZ¦¬,7b„úóç䚊@ïž;ÙÐ@=~\ì½q#ÞÍíâ‚£ƒ‚Ö Òì§às÷G¶ÈHòرF••M$É̬»Åº%öö$)((nâDÁ­0*(¨={6êÀ¯µ´”ÔEÿœ?õãwírÚµëKAo=À@Àõ(BÅba‘‘äÙ³­rrªut”y_f¥¤”ÚÛg¯0Z±b¢àÆsèPˆ™™Öš5S×E_a~øpèO?=öñùßîÝÎD˜ƒ8 €P%%•45µÍžm•›ÛíÍQ …VPPgo?œ½Âhî\A­0zø0ùõëÜS§–JJŠËŸƒµ}ûõ«Wcÿ}™§§Ewº#.¿<|&ž=Ë1BÝÌL;;»Û8šž^ã¸Þõëñ..ã´Â¨½qìX˜‹Ë8{ûá‚h¿¨ÔŽ+þú矴K—</+êáÀˆ£Ud$yÖ,+ Ãóòjº{x45µTKK93³¢¦†âî.¨IÝóç£ZZhß?_@í÷•Ú±r¥JJéÕ«kg϶õpàÄQ„§´ôCvvÕìÙVee 4½»EF))¥öö]aTQÑxþüómÛæp’²‰VKKû²esskîÞÝWVÖðàÁ¶/¾Ðõpèxîቌ$Oj.--™]¥¯¯*/?¤kúzjyycCUIIV@{%'—Þ»—èï¿Jp{;𯱱ÕÕõÏúzê½{›a§0Áõ(BB¥vÄÆæ³ïüõ°“Qjj)‰DŠÍ_²d¬ rSã8~äH¨ƒƒ±à–󯱱uéR¢`pƒëQ„$..ŸÁ`͘aÊÉ©în¾””Rmm¥ŠŠÆ%K²`õÑ£Ôää’ˆˆÝ‚h¼OØA´¡¡õÞ½ÍFF ¢Û¶mËÊÊ\û`p:tèùóç‡'l™:ÄQ„äÅ‹l++]--e ËϯY¿~:Ïj))¥C†HYZêØÚ>†Žæ‰–.om­Gxã}¢ íþý­ÃÚ×Ù³g ˆ?Ÿ`0ºs玻»;ÄQŸèèìyóìB%%::˜Ý§ï.kkkß½ÛYcxÙØØzàÀׂhœì ÚÒÒ~ïÞ}}U!ô¸sçÎ¥K— ¡# þß! â(ÂPRò¡¸¸~êTs„PNNµ„ÉÔT³k5ö # ALêÖÖ¶üþû³Í›gih(Þ8ÿÚÚè+W^ª¯§Þ½»I8A‚8 €0ÄÄäÊÉÉL˜`ŒÊË«10&++ÓµZJJ)‰Dš8ÑDKK™ð1üòËUUù fÞ2ÿ::˜ß}ç_ZZÿþ6Ám¾€0A@^½Ê™0Á˜ýœINNUw;0ÄÅå#„\]Ç>€üüÚ›7ßž>í&ˆ5À|b0XëÖ]Î̬ ÙA|2๎ÅÂbbòØ“º¡¼¼š‘#yïÀðòeŽ””„ žH9q"ÌÖÖ`ñâ1„·Ì' Ãwî¼›´ÎÒ’÷†ˆ FG¸ôôòææ6vÅ0¼  ŽgÅ0¼¤äƒÏ)ßxÿ¾(""cïÞ¯D˜ƒìûïï=z”è1fŒ¡¨Æ *ùùùžy‰”ŸŸOTkèãáõÜ8Žã+V¬PPPèü)~Ž®µµÕËËËÎÎNQQqܸq?þø#“ÉìëØÄÄQîåË--% m„PyyFçG_¼Èf±°%KÆ>€'Mžlƹ ¾Ÿ~ríZÜ… î"¸ÊÊÊàà`2™ŒRQQÙ·o?Ÿjii;vlBB‚¯¯obb₃ƒçÌ™Ãb±xÖ/,,TWÿwÚŸÿ^Dî p¯^åLjÎþ·:/¯†D"ñŒ£W¯Æ’H$ÂoŽ>žõî]ÑãÇ;ˆm–þýÛoOOžt‡”À@Ðh4„ûÉKuuõ“'Oòó) ¨¨(III„™™Ù—_~iccó÷߯Y³¦k} Ã>|øÀ~Í/"×£VkkÇû÷ÅS§š±ßæåÕjj*)*媆aø›7 Ä®Â0üĉGÎÎ6¢J2zÿ~Ò‰a;v8}÷ À‚D"ZZZjhhœ~üX__!”——ÇþcË~áää”››ojjzôèQž…8Ž755ùûû³‡×ù5»A®ñ/_¾|Ö¬Yiii666Gýù短­­ÓÒÒÒÓÓ'L˜°gÏÇ)ŠŒŒŒ‡‡GyyyPPB¨¶¶–3<®ÆBK–,illô÷÷G}øð¡sM®ƒbúúú.^¼¸´´4--môèÑû÷ïollDÕÕÕq 866VKK«‡ÂÕ Ïcä9HB~úâ(‚uäHèÌ™§8oçÏÿýС{]«íÚuCOoWPл¦Ó™'žØ±ã:mòL®03Û¿qãU ÃD2>ãhRRŽãt:ëu^^“ÉÔÖÖŽŠŠÂq|îܹ'OžÄq¼¡¡AZZú—_~illÄ0¬¥¥…ÅbY[[_¾|™Óì•+WºÆÑ´´4öWoݺejjʳ°ç¡rÅQ:.))™‘‘Á~bjjjnnÂ.!“Éì×YYYT*•Åb½|ù’ÝTq4::ºóyè5ŽZXXTUU±_?{öÌÞÞ¾»8§®®Þà áê…ç1òd§Žs\ÄÆQ˜×@°^½Ê™6ÍŒó67·ºëÍQƒõèQ*†aÄî©{ãÆÛŠŠFm1سêêæåËÿ23Ó>}ú[ñ_oɦ¨¨ˆ’––æz’””\´hQ@ͯ IDATHHH}}}ddäòåËBªªªÑÑÑñññúúúÓ¦M‹‰‰‘(,,´··ç´ikËã–ðÈ‘#Ù/,,,ÊËË{(äSMM ‹Å211a¿555-///))á´iii¹páB„ŒŒLnn®³³ó˜1c._¾Ük˺ººÏC¯Š‹‹uttH$‰Dš3gNQQ‘ŠŠŠ¶¶vJJ WÍ”””1cþ} ‹ŸcçyŒý$á Ž @UUM99ÕœEªµµ- ­k}ñ"»µµCZZÊ‚°+i4úo¿E|÷ÝDáï½×ÖF_µêÒСÒW®¬:Td݈åââzûöíÉ“'³gki4†awîÜihhðôôœ?~CCƒžž^jj*çS™™™]›b_c!„rssÙ1 »B>iiiIJJ²ßèéééêê³KRRRNœ8ÁóÒ¥K½¼¼’’’.\¸ÐkË}‹ìKLöUZccc||>>Wç¶¶¶úúú:;ÿû?ÇÎóû7HÂA@€bbò†•vpø÷Ÿè¼¼„P×8úðaŠ––’¥¥‰µ/]Šik£ïØáDTƒ|b±° ®””|¸zuí°aòBî]p¦L™Âd2}||ÜÝÝÙ%$ÉÉÉéÞ½{ …N§KKKËÉÉyxxxyy=x𠺺:<<|ÿþý]›Ú¾}{~~~BBÂÁƒW¬XÑ]ass3ûf-×k„P]]]u'ÒÒÒ®®®Û¶m+**ÊÈÈøþûï—/_îîî~èСŒŒŒŒŒŒ-[¶””” „:::ètºŒŒ FóööFµ´´x–-ZtàÀ’’’´´4ggçóçÏ#„Ž9R[[;kÖ¬ððð¼¼¼ÐÐÐ &èéémܸ±‡B¥R;·Ìó ù€8G à²yóµÎ«Šc,-rÕ¡Ñè#Gîst<¾ga÷l(š•Õ¡Ÿ~zDTƒüûá‡û††{ââò…ßuw÷G;ßäùzÆ ²²² …ó©[·n™˜˜ÈÈÈXXX}¤sèú¶‡ÂÏ„HŽð8 óºJaa]uuó¤I#9%yy5ff<&uíìôÛÚè¶¶ú„ôK¡Ðüü¢×¯Ÿ®¤$KHƒ|zý:÷èÑû›7Ï\°`”0û‚öööÂÂÂÀÀÀµk׊z,@ì@@Pââò†ØÙý··ëõííŒgÏ2ÍÍu¤¥%­¬ú¶º¤;—.ÅHkÖL%¤5>•”|X·îÊW_}!ò$á‚ðöíÛ±cÇzxxLŸ>} í())­_¿žŸÂÏħqì°/ ‚W0zô)©ÿ[mnn«©¡pÅѨ(rGcÈ)33m~©Ôÿ—žžSºn™$8JûŠ©ÿþûòÁò”KŸL›6­¡¡¡ä<ãȦ©©éççÇU‡gágâÓ8v¸@Pââ M8oóókQ—źaa)ŽŽ¦¹¹5_|A̤îßÇ`¾nÝ4BZã†áÛ¶S©ž"Ln €¨@@ JJ>TU5uŽ£yy5rr2zzÿ=ÍÙÖFöŒ;}útçdpì-p;óÙ³gì [XX(„Ó5@„ÿ<@€x·o¿1bO{;ƒS’™Y¡£³#'§ŠS²nÝeW×?1 ³°8ðr€=^ºôÊÈÈKhQíÂ…çÇï«Íÿz ¶q”F£]½zuüøñ£FºxñbKK W…â(W²0žIÜ8±±± þï5ön…<ÛÁyå>333ëš Žk¨ÞÞÞúúúóçψˆ`±X$âþóóº/.®ÀÎnxç‡@òók¥¤$ŒŒ4Øo;:˜QQ䯿¶--mhnnà"#ƒåçíâ2NSSq@ãæÏë×¹'N„y{/àì¿ú!22ÒÐÐ0**êìÙ³‰‰‰ëÖ­SPPè¡>þñκ\ÉÂx&qãT.((°±±á¼µ²²ê®Ä+÷YYYY¯Éàtuu=ZXXèîî~ìØ1KK˲²2þÎÄ qâÅÇôä(B¨  V_gÙQLL.Æpr²NO/—””°¶ÖHw&WU5oÚ4s ð©¶¶eóæ ¯¾²õð˜"„î>aVVVoÞ¼‰mjjê¡&“ÉDUTTt.äJÆ3‰竆††3¸eeeu×â•ûlĈ½&ƒc«©©ÉÌÌ,//=z´¬¬P·¥!ˆ£¬²²©¸¸¾k55Õ伈Ȱ³3ÐÒRÎ̬02R—““éww†ÿþû³ FªõÐüa±°-[®ÉÉÉüú«« ûúäÙÙÙEGG‡„„ää䘙™­Y³&11‘«ŽŠŠ BèêÕ« å?þè¡5žIÜ8_ݼyóÞ½{Ÿ>}úáÇçÏŸ=z´‡@»æ>Û°aCçdpGŽáú†aOŸ>]¸p¡ƒƒŽã±±±7nÜPWWïóI¤œ#à8’8|øîÖÖŽÎ…_~ùëÑ£÷Ù¯Y,ÌÖöð™3Oq_±ââÆWÒݳg™ºº;ÉäŠ4§3gžîII)B_Bâz”£±±ñôéÓ&&&ÅÅÅ\_:~ü¸ŠŠŠ‰‰ÉƒPÙͺ&qãÜe±X¿ýö›‰‰‰²²²³³óƒ444ºk§kî3&“ùóÏ?›ššÊËË;::²³swäÝ»w‚ƒƒ;:>ú±O„ÿ<@€`^^·æÍû­s †a#Gî»ví ûíû÷Å::;²²*q··÷>w.r Ý-ZtÖÍÍo -ð)&&GOo§¿ÿ@—D ŸøÇQ6‹Å`0z¯×waaa))ÿ­¿{÷®½½=íÓét[4Â`^‚½{W4aÂG“º55*µÃÄäßy݈ˆô#Ô-,têë©55͹9š˜XW°i“ÀŸeßýòKOO¸-*(RRÙc.--mÅŠIIImmmñññ‡^³f íw^¦ô‚} RCCk^^Í¡Có:²w¨ç܈Ș3Ç!D&W „G/^Œ¶µ5˜<Ù¬ÿ#æû¶¨¬¬Ìo¿¹ÁƪƒÑÞ½{ÛÚÚþ÷¿ÿÕÕÕ{xx|ÙÊÄÄQˆ”œ\‚3fDç‚‚Z%%Y E„Paa]^^ÍO?-AefVjj*²Ëû¡¨¨îÉ“ôóçW tнù믗ññwïnrbp@))©ãÇ?~\Ôù4Á¼.DJL,14T6ì£n;/ÖˆÈ6L~Âc„™\9‹Ñ¿þzi`0ìë¯í2à^¥§—Ÿ<ùxÏž¯Æ7hG RG Òû÷ÅcÇŽà*,(¨íts4cæLKII „Pff…•U?ãhmmËÍ›o×®ÆnJ@¨ÔŽõë¯L˜`²eË,ÁõÀ q°XXJJ פ.B(?ÿß8ZW×òþ}‘““ B¨£ƒ™Ÿ_Óï4/W¯Æ*( ýöÛñr/~øáASSÛ,ëœî ÐÜ€0¹¹ÕTj×õh{;£¢¢ÑÄD!ôüy–´´äŒ¡œœ*&ëß¼nkkG``Œ§çYÙþoàЫGRƒƒãVkk+ ®;ˆ£æýûb…!: ‹Šê0 g_†‡§Oš4R^~BˆL®”••16ÖèGG!!‰4}åÊÉ„ ›§šÊþýw/;w.ÍTƒ%)©|üøqvJqÂ$&ÛÛçºa™Ÿ_+))al¬ÑÑÁ|ý:ïСùìòÌÌJ í~ÜÝÄ0ÜÏï…‹Ë8uõž¶5Çwì¸./?äĉAœ[”ÉÄîÜy÷ÛoO--W[XTôþðyøöÛo'L˜@`ƒG Ìû÷ÅóçÛsÔêë«ÊÈH½|™ÓÚÚ1{ö¿©623+ú7©ûêUNqq}` Ç@‡Û½Ë—_¿~wïÞf%¥¡‚ëEp˜LìæÍ·gÎ>=J1ÃâÅ‹ýSÔ hƒéWq–˜Èc†ÚÚöõÑÑY CØÛ!„Èä CÃ>§mii¿yóíŽNÚ{!'§úÔ©'»v}9À¼âÂÄdb¯Îœ‰PPzþüŠ FÁÀ@È Ž@ KI)å¹È!db¢éç=iÒHiiIvyff¥MŸcÕÝ» †/_î0ðwÅba»wß´´ÔÙ¼yÐl]”–V¶{÷­‚‚ÚÍ›gnÚ4S OÓÐØÏääðØ!TXX§ 0DYY666Æ KNyff…•UßnŽb³páee¹¸«K—bÒÓËOŸþVJjüY R;öî½ýÕW¿©«+¼|¹÷ng¢@Tàz$%•ÈË13ã^C[XXkl¬ùöm!Fgoc„jnn+/oìk}ùR€»×ûúþ³mÛKË~îS(LOž¤W9‹…•”|PPšŸ_Ûåæhß.F¯_×ÖVf'Š!VEEãñãa›7Ïêë<³¼š9óÔ!R/^ì‡ Ä \0P™™L&fkkÀU^QÑÈ`°êêZdeeL8ådrå¤I¦ü·O£Ñƒƒã7l˜.ˆëÅÇCµ´”ÄyF·£ƒyøpHppüÚµSœ'#µ€xŸH*5µLUUÞÐP«¼¨¨!”]5q¢ g[ƒ•“S½ví4þÛÿçŸ4¾l™#Q戈ȈˆÈ Ý"¶».TU5yx–—7^»¶¶óÜ8âæu¨´´²/¾ÐïúøQQ½ŠŠÜÛ·@~~-ÎìÓF×®ÅÍ™c­©©HÌpÿ…BÛ·ï¶»»£Øî£“;kÖÏ’’‘‘^DØ‚8 À@¥¦–u½9Š**ªÓÐPhk£OjÎ)Ì̬2DjäH->Ïήz÷®ÐÝ}"1cíÄ×÷ ‰D:xp>á-âüù¨eË.:9Y‡„lÑÒRõpèÄQ„JíÈË«ézs!TTT'))©¯¯ÊÎ÷ÂF&W˜™ió§388~Äõ©S͈îÿKL,¾råõ¡CóÅ03Fß´éÚÉ“ÿx{/8sfÜb~@ÌÌ ÃíìxÄѺövÆ”)…ÀŒŒJþ'ui4ú; [¶Ì"vÏXƒµwï‰G.Y2–Àf Q^Þèáq©´´áêÕµœ+gGÔÔ255Î L&VZÚ€ãØ¤I#;—gfV|ù%¿ÙZÂÂRÛÛnn?æñ÷߯ kVÛìÀåäT¯Xñ‰„îÝÛ<ˆöÊŸ9˜×`@ÒÒxß-/o`2Y,>eÊq´ªª©±±•ÿçìl£¦¦@ÌXB••5øúþ³qãL## ›¸¸¸‚ þÐÐP|üx'Q0ˆ@`@RSËìì†w-/.®G«ki)s 33+I$Ÿ;deU½_´bÁ+ŒŽ ÕÒRÚ¶m6±ÍPPPœ«ë…3,îßߪ¡AðÊd æuè? …VXX×Ýb]II‰Î+uB™™Ô”dùi<((ÎØX£O;6ôêù󬈈Œ+WÖ *M`³ôë¯á§O?ݵËi×®/!{(t ŽÐéé8Î{‘™\…aÜ7GÉäJ>/FÛÚè÷î%lßîD`\a0XGŽ„:9ÙÌ™Ãï ZAc0X{÷Þ¾{÷½Ïÿ<=§Šz8ôÄQú/5µTSS‘çŽó©©¥¡®‹Œ.ÍOËááé4ÃÅe!ãdó󋮪j¾}{mDGsÓ¦«QQYgÏ.ÿßÿø:-ˆ!ˆ£ô_FF… I]„Piiƒ¦¦’ŠÊ9·[[;Š‹ëù\Asóæ[''uuÂVUW7ÿñGäÆ3tuûgFpZ[;V¯¾”–VvãÆGG“Þ?À:~óæÍöövBZŸ''§#FôãƒG迌Œò¯¿¶ëZÎ`°ZZh&u.ÌήÂ0œŸ8ZRò!66ÿòeOŠЉ† “ß²emö[}=uÙ2¿ZÃÂvð¿µS¯=z´råJ¢ZŸ77·ëׯ÷ãƒGè'^TÄûú2%¥ÇÑ”)-2ÊȨPV–Ó×ï=õôÝ»ï54:§Z ·o CBÿüó;qX^TYÙäêú'†á÷ïoíúÜí@0™L„Žã¶ >K—.eÿüô<÷@?egW³X˜µ5uCááé¡ùóí;’É•VV:½®Âqüöíw‹!*K†á‡‡8:š|ó}ﵬ°°nÁ‚?† ‘"<ˆ *p= @?‘ÉòòC Õ»~)>¾@JJ’kwu2¹’çÊÞ.Ÿ-,+kpu%l£[·ÞfgW={æETƒý–™Y±lÙECCõ  µ|>ü€øƒëQú‰L®27×–àq}™Ÿ_˵™†áÙÙU|`¿VWW?yò$çKÚÚÚÚÚÚ#GŽ…B9wî ¡¡¡Û^^^^^^Ýv ô£ˆ4|ûíŸ>ìܾoßÝQ£vÌž}T°ñãÇ*#£Í>T‰˜™I42Úüî]™ì¶±Xœ‰÷ùù]’]”t””Ô9:îúå—c}éD‘žøÑ¬¬,AX,–Ð5çp8†††?FdÆŒ¡¡¡‚Éd%%¥ƒR(G§Ó¹\®Ý¥Kíƒ|ùòåÎ~477—o›µµµÈFñ¦âñøuëÖmß¾Aˆˆwww~»Ô~T >ð5ÚØØTWW£×IIIŽŽŽ"¿]rÕ"_ïʾzõJOOOÌÐ id±XŠŠŠyyyh{LL :ž€””Á«˜AF‘ÅÂu]¤Ç45±ˆÄz‘›£ÅjjJ––6G j””­­qbdÞ¹“ee…spè>QC·\½ú²ºº18x¦ì¢¤ ¬¬aîÜffz×®ù©©)÷‹ Ý¢©© PRRº(**Î;7&&¦¾¾>99yÉ’%”””ôôtSSÓ)S¦<þ\AA@ 8:¶§ˆrppè¬høð¶‚?666bÅàååuëÖ-Au…@z(Ä÷+L&ÓÏÏÏÇLJÿˆH$¡Ñ¼îîî%%%"¿]rÕ"_×ÖÖ644ì'œ““ãìܬ.É(‘H$.—keÕVçÀÚÚšßÓØØüX{èG!SPPÃã!67³rs+X,Nç #++œ˜=B.—w÷n¶\j‡Ñh-‡'z{;l˜®ìÒz ‰Ôøë¯§õô4®\Y5`h·xyyÅÆÆFEE¹¹¹¡«µÍÍÍ<ïÖ­[d2Ù××wÖ¬Yd2ÙÄÄD0’6??¿³(tæ(,,Dÿ²wÕ(777:þâÅ‹¤¤¤_~ùEè)zV¤²²²Çß ‹õööÎÏÏçûBt:ˆzY …’žž.òÛ%é–+ IDATWÝÕëK–, ŒÎe2™aaažžmg%%EEE€Þ›˜´Erö½ ô£Hùð¡RSSÕÌLØQee•±Ù\ ¥É¢CѧOÕâO޾|YTWǘ7OÇFOæñÙEõ”º:ú¼y' R¸~}–ÖgœlaÒ¤I'$$dÙ²eh ƒñððˆŽŽ¦Ñh,KII ‹ÅúøøÆÅÅÕÔÔ$$$uµiÓ¦¢¢¢7oÞ/]º´«ÆÆÆFt³VèEQQqÞ¼y~~~&LÀáÚW5´µµW®\¡ÑhÇŽù- CüÇjiiÑét~·¹sçnß¾½´´477×ÓÓóäÉ“"¿]rÕ"_ìÚµ«¶¶vÚ´i x<>66ÖÅÅÅÄÄdíÚµb†Nès”””.\¸qãÆ’’’¼¼¼?þø]?èk¤[†@¾fþø#fæÌ;·:”0vì#£ÍïßW¶»ºî?rä‘þþ×üñ°ì†‘H4+«ßK’]TO¡R™Ó§ÿ3aBHU¥ïµ£H¾?ÊŸruu½fÍ555&(ÜÊÊJYYÙÆÆ&..A‹baa¡¡¡áêꊖÜÚ#<þ¼™™™žžÞ† š››E6"b÷2Q“ž>} 8yò¤Pûþýûµµµ­¬¬âââ@ǽI6›íææ¦¡¡Ñ•L.—«¥¥URR‚ÞÒh´+Vèèèèêê®^½šÉdŠüvÉUwõ:‚ cëÖ­öööX,ÖÎÎnÿþýMMM] ]WŸC&“—-[¦««kddäïïŽgW?V1À8#¤O™?ÿD`àÍÎí œòò:ilìÏ`´ðŒÿ„„÷]Ikme¹ýÌ™§²¶m[”³óž–¶ì¢z‹ÅY¸ð¿Q£v|ü(.–ª·‘ÐJBppðâÅ‹{ôŠà÷ηb!BôË(Á8#¤O),$u®>Ífs33‰::êúú‚y‹ I<"f]÷ñãLfëÏ?;Éh‘XýzƦMî**}ZÇ A-[n¼}[±ºÛ\Ÿ––páÂ…U«Võ·-ÏèG!žA&3ëêè#FûÅ«ššXŠŠ BAFÕêê*b¢~îÜÉruµ*²&ÿþûÈÄDç×_åVpMB‚ƒ£ïÝ˹|y•“Ó°>VÝdddŒ7ÎÇÇgêÔ©²ÈÑÒÒòóó“¤"Äg7J°þ(Ò3ðx@¨œ 3“¨­mh wÖ1Â@dy5ÖòèQÞŸΓѪš˜˜Ì#Gõqæ Ó§Ÿ^½úòäÉeß~kÝ—z{)S¦ðãQ{ÿä" ‡;}ú´P‘!>»Q‚óQ¤gÖhi©i µ¿}Ktv6+)©:<úéS˜ri‰‰ïÌœ9FF«L9ÒP^…b$äöí·ûöÝ ž)û¢4òùý(Ò3ðx›£€ìì²Ñ£‡VUQ…2ë~úT%f×ðά￷•±®õû÷ññ¹[·zv5ëí ž?/ܺõƪU“ûíû>S é K‰ ´JdŸÐB =£  føpáÍÑúz‘Xob¢Ãã!‚óцFm-½« õM/^àgÍrùTrxàä4¬/SÒ×®YsåûïmwîœÝgJ! ô£HϬ›]ª €Áb•1Œà|´  ÐÕºîƒ¹ŠŠ v²Ø“ž^üøñÇÀÀeÒ#(æ²eç,-õÿûo¹¢"üùÚ¿Hhll"‘;eg—YZê“H4N ‹mχWPP=dˆzW±¸÷ï¿ûî;›n‹{‹çèѤñã-¦L)‹Éinf-^|ƒÁ\½ºJUµ/’—B:SWW×ÔÔÔ¹=22ÒÊÊJ__íÚµh‘eÅD6J®"ô£Hø_°®ð:mf&qìX³’’:KK¡ÍÑš®6G©Ô¦/ð3gÊ´¨ûömIjjAŸMFÙ¼ù:‘ØpåÊJmmlß(…òæÍooo;;»ÆÆÆÎO/\¸pÿþýäää}ûöÖ¯__QQñúõë‡&&&†……uÕØ™wïÞYXXüþûï%%%½úQŸ;ÐB = °¤®®bjª#ØÈã!99eNNf¥¥ ff3ëŠö£‰‰y ww™uxøÍ7ÖnnÃe"9‡'&$¼¿pÁÇÊJ\íˆÜiii¹zõª‹‹‹ŸŸß7ß|C ŒŒDü»:räÈðáÃ]\\þüóÏ›7o²Ùì7n=zÔÒÒrôèÑ!!!"E*>}zvv6‹ƒñð°—Ú’Œ Âóç…}S­¶–¾jÕå ,á)—~a̘1)))111#FŒX¹reff¦Èž[·nå×óööYVLòZc<ïÑ£GsæÌ™8q"‚ iiiׯ_×ÓÓÙùkúQDRŒÖª*jç`ݬ¬Ò±cÍÊÊ‚óÑ‚‚#£Á"+qÆÇçNžÇãíìì.\XZZÚ¹¯¯¯»»ûÌ™3gÏž½eËÀ‰'ŒÇïááááá±}ûö®;»{÷n///°wï^IJŽÀüºˆ¤×"bmÝÁ2™­5›7{”•5hjªêê¶o\}úTmk+b2J£µ<}ú),ÌKjK^¿&¤¦\»Ö¹¼nTÇÇû tûmmmÿM›6 …üð³û.\¸P°]GGçÊ•+BB:7 %F™={ö¼y²f~þ€óQDRŠ‹k•”gœ€÷ï+¸\ž“Ó°²2òСCu¬›œœ ˆ,é‡Ð3£S§ÚH-AB®\yýöر%0@w@¡  0hP¯Ï‚””àù`‰€~‘”’’ºaÃt…2ø¼{W®¯¯ib¢SZÚ èb9Odôðá{WWk©sêfg—¥¤|Ú´É]º×%'#ƒ°sgŒ¿¿‡,û¸Èô£ˆ¤uBµ\99eŽŽÃeeü(‘XßÚÊéìG[ZØ))gÌpÚŒS§žØÛ›|÷]ïNFkjýü.yxØoÙÒGçj ÏèG!Ié\ ðþ}ÅèѦ€ÒÒ†¡C;ë¤Ð9¸75µ ¥…-µýô©úÁƒÜÍ›=zµ:‡Ã[¿>‹U9xp,ˆúQDR„Z¡Ý4ZKII½ƒƒ)ÖL¡0;ëV››ë©¨ob%$¼wr2ÓÓ}޾[NŸN>Ü ·K»„†Æçä”…‡ûÀØ"¤[ …@$¢¡A£µ¥ÏÍϯDÄÁahYt<ô"2³.‡Ã{ô(ßÓSÊíÆŠ JllÖÚµßõêñÞ½œÿþK9|x‘È`c"ô£ˆDuKËa«¹¹å8œ¦¡áàÒÒzŒ`¼®È`ÝÌL"…Âüá)g“çÎ¥âpZsç:K÷º$àñ¤-[nx{»Íž-kUTä+ž…@$‚@¨SSS62,ØÈß-+# VVnû…jia‰õ3ë&&¾·²ÂY[Ks†„LfFD¼Ú¶mFï%Chnfùù]¶µ5Þ³çç^RÑœ={¶«G@àŽ/¤3ÁÒÒRºw¡…@$¢¤¤ÎÜ\WèOpnnù¬YŽ€òòÁºx<‰Ëåu^×MHÈ“:ÂèâÅjjJK—ºJ÷º$ܬ­¥ED¬þL󙘘(**úù‰HO¡  ¦®>‹M¥&µ¶ûÜ4ÈgÀÔ©S¥{úQD"JJê…uŒV¡Ž¬Ûqs´ZUUÉܼÃfjaa ‘XÿÃÒlŽ2™­ááÏ|}'  —/ׯ§ÇÅe_¾¼ÒØX»—Tô6ß~û-‡Ãj,-m¸páù<²h‘‹Ÿ_˜‰‰ŽÈ×!é€~‘ˆââÚï¿·lÉϯäñ‡¡€ÒÒggsþ#<ždi©/”±!11‡Óì&9ׯg°Ù\_ßÉR¼+ ……5;wÆ®Z5eÚ´Q½¤¢ïÉÈ œ=û411O__kÆéË–¹ÂðcHoý(Ò=‚‰Â‡GssËõô4Œµ¹\^y9Y(CýÈ‘7Gó¦M³SPèñæ—Ë;þÙ‚´µ{Å ´¶rÖ®½bkk<³7ä÷=IIùÇŽ%ef–:;›_¼è;mÚ()†‘èG!î!‘hMM,!?Ê2ª©id³¹Bû£ Œì\]MÍÎ.“.™ßÇï++)~~S¤²½{þø#†D¢%%|¦Û¢‚¤§:”–Väè8ìòå•Ó§‚QEÞúQ¤{ÐC/BIrs+Ð|¥¥ €aÃÚvC[ZØee B™ŒRR>©¨ rs.…ö'ÿôÓÁʦräάk×Ò¯\Yidô¹n‹¢dd|˜–Väìl±Zhé= …@º‡H¬×ÔTÕ××ä·47³Š‹kííMååd,VY_¿-EPÇã!#FtX×MNþ0iÒ5µG ½~MÈÍ-—¥ÈšÊËÉAA·½½Ý>ëmÑ·oKöî½›™Itw·‹‹Û8~¼E[ùº€~é"±^¨\Ú§O5\.ÏÎÎPVÖ0lXû‘<ž¤¤¤(¬ÛÚÊyö¬`÷niež=›:nœÅ˜1Ce0_4l6wÍšËÆ Ù½{¶Ü…÷ 55ÿü“õzăÈH¿ÞÎ݈úQ¤{ÊÊÌÌ„3jjª¢Îµ´´ApÑ'™›ë î5¦§77³§OïñœH¬OHxúôÿÉ`{—9ò'%&nå§øŒhh`„…=¸yóµ±±ö©SËfÎ÷A!ýÅç÷ûô=eedWW+Á–«mlŒÐ¿Ý¥¥ cÇšñáñ$¡ÍÑ'O>ÚØJ±þ|èÐ!½‘•>3“xüxòþýó„6}>‚ܼùú¯¿î77³7mr_³æ»Þ;S H̯ tPM4ÀÇU£F£×ee ƵgÖ-,¬ò£øþûOF©Ô¦ë×ÓW¬˜$tUv˜ÌÖ "§O·[¾üùJîmŠŠjçÏ?¹uëMwwû´´[¶ü(¤ßóQ¤èô¡šh‚|øPõóÏN&³µ®ŽÎ_×åpxB %ë „:)ÂG¯]K4Hañâ‰20;vD³Xœ#GÉ]rïÁd¶††>¸|ù…½½ibâV4 @? tCy9 8㬪¢ÒhÍè|­˜Æ÷£¥¥õl6W0X÷É“ZZj= "e³¹çÏ?ûõW Ù?A»wsnÝz{ýºŸ––š|%÷OŸ~ ºM&3víúÙÛÛmÐ ¸@@? tCYYƒ‚ÆÔ´Ý~øP…Á`lmåå  †?[ÅãI +«öMÇ'O>N:²§úójkiÞÞnòø‚vª«©Û¶Ýòöþvòä‘ò•ÜK45±öí»{åÊK7·á7n¬JY  …@º¡´´‡ÓRQiÿeùø±zèÐ!èL±´´‡ÓTUUB’LM‡ðω67³ÒÒð¡¡=>ýyþü3{ùº AüýoèéiüñÇ,9Ší=Þ¼)Ù´é™Ìø÷ßEBù¡ ô£H7”•‘…~øPekkÄ*tèeøðö²0iiEl6·§YrsË_¿&DE­•Áj\º”öêUÑýû›¥HÑÇ0™­{÷ÆEF¦{xØ8°@02Ѐ~é†òò¡œ|?VÍœ9½.+®<úÍ7í'dRR>Žmª§§Ñ#—.¥Ùع¹ÁjaJKþúëþڵߡ92yy•6D”•‘÷ïŸãíí†B8p»醲2²`QK ›@¨C7GAÇÊ£<"tx4%åÓÔ©=K²C¡0ïÜÉZ¶Lž'RÙºõ†™™îÖ­žr+w9þÙÌ™GÔÕU’’V¬˜(dà磈8)+ëpx´°°†Ëå¡ÁºBO«ª¨ÍÍ,~°.‘XO$Ö÷ôÄËõëÊÊŠòÝúôi––ª““Y'©]Âåò.^|áå5A]]nÇ]„ºÐÐøM›Ü…²C (’“?øû_×ÔT‹Ûèè8¬¿Í@z\×…@ÄQ^ŽÖDk_×-(¨>Ü­ VL<ôb` Å?—ùìY««uN¼$'¨®¦úøÈí¸ —ËÛ´éÚÈ‘†ë×O——LùÂåòLðö>?a‚ŃþЉB>;à|Gy9EIIÑÀ`0¿åÓ§›ö`]UU%-ôVps”Íæ¦¥áƒ‚~ꑺððç“'”cÎÛððç¹¹å [fî‚úzƺuW_¿&üõ×üÏ.I!‚2µ Cy9ÙÄD}¢¦Ï--m:t'¯°°Ý¾{WF§·LÚƒtB]Z^Žî„¿¢ËŠP¤¦|÷]X}==)):QÈç ô£ˆ8ªª(&&íuZh´–êêF¾³,/ÎPomÝö(5µ`Ø0ÝÍ,#"^ vw·“‡áAmÛ¢,,ô6lp+º<rèPÂÒ¥gøÁ>>ÞßÚ×ý;È@®ëB ⨪¢ëðo‹ŠH‚ð#rKKFjK˜^[K§ÑšùRS 'MêÁÐæfÖµkk×~'¯ê.ׯg¤§îÝÛ4Ðbt™ÌVÿëåïÝû‹Ï¤þ6‘8…@ÄQYI56nŸâñ$55å¡CÛæ ¥¥íóQ<žþ¬K£µää”NžÜ?zÿþ»æfÖ¢Eò©îR]MÝ»7níÚïZØ‘X?kÖÑÌÌÒØØ }æDÓÒÒTTT0ƒÁ`~ÿýwùþƒóQD••!?je¥n—²XœÚZ?ÕQaa¶6‡Ó¤¥áôÈ^½úê‡ìÑ×egÛ¶[††ƒVÖ…‡ßoÚéäd½NGG½ÏôVVV²X¬¨¨¨>Ó°>|˜H$ÊW&ô£H—0­4Z³‰Iûºnaa å¶¢‚Âã!üùhQ‰¿9úìYƒƒéàÁX }üXýömÉÍ›òI¨{ï^ÎãÇ££×)+”_pùûïøS§žüöÛ÷AA3ä^™\¼¼z\-òåqëÖ-¹Ë„ëºH—TUQBóQ~QYY€ŸÌ'ÑöèùóÂo¿.¹¢ˆˆW––únn=x¥+›vîŒY²dâĉVÝ÷îX,Ά gÏ>ýûïù;vÌì' ôå¿«ȤªŠ àÇ55±ÊËÉ‚óQ--5--Uô'¡u]ªª¨Bä>›šXÑÑo6ntÇÈ#Þ¾}÷wîœ-»(¹@&3W¬/*ª½ysíÀqíˆ~é’ÊJЦ¦*ßS×òxÒYQA65ms±M$ ª>^¨ªª4a‚…„ZîÝËimå,Zä"»Áoޔܸ‘ñßË55Ue—&;yy•Ë—ŸÓÒR{øÐ_¨fòÅX .©ªê¬[XX£¬<È̬­¶vEÅÔTD°îË—EÎÎf’ïM^½úrÆ ÙãnØlnPЭiÓFÍšå(£(¹””?gÎñQ£Œïßß (ä úQ¤K„ü(O²´Ôç'Ø+/'óÀàñ$,Vž¾xÿæIw: k²²JårÜåÔ©'eeä¿ÿž/»(Ù¹xñ¹Ï…yóœ/]Z©¡!·œûŸ/EEErY·GÁ`0ÇGD°ñÇÄ`0EEE’ ØÈ`0,,,ÔÔÔ†¾{÷î––yüeý(Ò%••Á$ x]ðÇÝ»w§L™"É‹<¯¡¡½ÖÓÓ E¯ïܹó÷ß;V__òäÉÇŽ»{÷®Pÿnö6}©Kr …@Dƒ HU…x”Ãá•”ÔYYµåË­¬¤ðx]—Ÿ¡>- ?~¼…„©ø=ʧњe/Ù}ÿþ»gÏ Xп“¿ª*êÏ?{ÿ¾âÖ­u?ý4¦-‘ sáÂ[[[}}ýÐÐЫW¯ZXX <žÔ¿–tææÍ›’ü­,Z´ˆF£?°`ÁvæÌ@}}}jjª®®.›ÍF$""ÂÎÎŽÇã1 •Ó§OWWW‡‡‡4ˆÁ`œ9s‡ÃÅÄÄTUUÅÇÇ›ššðx}údhh˜>Âb±õõõ¨"¾.¾:‘B׉‰‰&&&***îîîÿüó‘Hì܇F£)++ûøøTTTDDDjkk; 6oÞ¼²²²ÜÜܱcÇu;¶bÞš?>…B9wî ¡¡AP—ÈÁïö§ìåååååÕm·ý("š*Œ6Ö ·Ož|42ÚL¥2ÑÛë×Ó­­·¡×¹¹åFF›ñxRaa ¯Oe%ÅÄÄÿîÝlíÜ·ï®­mp}=]F9²›[noÿÇO?ýÛ¿ft…ä~4++ A‹%tÇã9Ž¡¡áãÇ™1cFhh(‚ d2YIIéàÁƒ …ÇãÑét.—kggwéÒ%¾ØË—/wö£¹¹¹|Û¬­­E6Š7ǯ[·nûöí‚DDD¸»»óÛ¥ó£‚p8œôôô{{{EEÅÈÈH¡>­­­?~d0\.755µ³:Alllª««Ñ뤤$GGÇnÇVÌ[)))‚=u‰ünʽáGáº."šš€_Á›@¨ÕÕÕà§ú«¨h_ò-.®URR43Ó}ñ¯©©êà0Tù·o¿ÕÑQ÷ô-‹‘%%uçÎ¥ý¤««!‹YHM-˜3çø„ 11ëûÑ ¹ ©© PRRº(**Î;7&&¦¾¾>99yÉ’%”””ôôtSSÓ)S¦<þ\AA@ 8:¶=rppè¬høð¶È2›ŠŠ 1bðòòºuë‚ ‚‹ºB cz»‚ÉdÞ¸qàââ²sçÎÜÜÜàààÎùÜ••• ===/]º$R‘H422B3»»»—”” íbÆVÌ[ÆÆÆB=ùˆ|I>Vî@? ˆ†DjÄb•ùI„zÁb¢ä¡CÛƒŒÌÌt•”_¾,š0ÁB’MJAnÞ|=gÎX‹šmÛvÛÎÎdéRWY„ÈÂýûï–/?7k–ãÙ³Þ'o/áåååææ†®Ö677óx¼[·n‘Éd__ßY³f‘ÉdÁHÚüüü΢Ðy °°u]5ŠÁÍÍN§¿xñ"))é—_~zÊáp•••’|‚ ‹/~ÿþ=z‹Á`~øáT‚ ÍÍÍ , ÌÊÊ:uê”HQzzzèA …’žž.‰]½%Æ5Š|ItÉèG!ÑÔÔ4âpZü[¡–d(/'ó“0×ZYáÉÈ(vuµ–DxF¡¤¤NÆc£IIùio3l IDATiø}ûæ õgúžë×Ó×®½²b…Ûáÿ~ Ys'MšÄápBBB–-[†¶`0èèhÆb±”””°X¬O```\\\MMMBBBPPPgQ›6m***zóæMppðÒ¥K»jlllD7…®QçÍ›ççç7a®ýD–¶¶6àÊ•+4íØ±c"¿…Á`Þjhh,_¾|áÂ…ñññáåË—‹-êßÚÚÊb±”••›››wïÞ  ÓéBçλ}ûöÒÒÒÜÜ\OOÏ“'OJ2¶=z Õ%rð%Ñ%ä»L |1lß~kΜãüÛ BŽM¼=q¢-žhÚ´ûöÝE7G³²J%¾uëiÓÈb^k+ÛÕuÿo¿]‘Eˆ,ü÷_б±?2’ïò§D]]¯Y³FMMF£ ·²²RVV¶±±‰‹‹C„Åb…„„XXXhhh¸ºº^»v tÚ=þ¼™™™žžÞ† š››E6"]ïeòMzúô)àäÉ“Bíû÷ï×ÖÖ¶²²Š‹‹·EÙl¶›››†††L‡³gÏ555ssómÛ¶¡6öGäðáÃC† :tè©S§-Z„Ãá„:Ðh´+Vèèèèêê®^½šÉdJ2¶¾%¤«óàw Œ3‚@úŸð5k.£×--lÿ{÷rÐ[6›;tè–¸¸,A¸\ž…EàõëéW¯¾´¶ÞÆfwéÐÔÔ:|ø¶sçRe1ïĉd+«ß««©²‘šýûø_¸ð¬_´÷ ý¨$/^¼¸G¯…áÝŠi„ô0Îé;H$š¡a[‘XÏã!üu]©‘Ãᙘ TWS[ZØVV¸×¯ NNf’lŽ&%å·´°ùe¬ ¶5=š´nÝ4¾…}‡ß>s&åèÑÅ+VLêcíýHKK @¸páªU«úÛÈÀúQD4‚û£Bƒ17oKHV^N ÉŒŠ‹kVV¸Œ ‚‹‹¥$’££3'M¡§'}hëßÇëè¨ÿöÛ÷RK6›»aCÄõëáá>óæëcíýKFFƸqã|||¦N*‹---???I!Ÿ _x|"<RWG70hó£%%uFFƒÕÔ”ÑÛŠ ŠŠÊ NP\\«££ÞÒÂ./'KR_“Lf>}úéðá_¥¶-+«ôÖ­·§O/WQéÓß_‡·qcä£Gùáá>ßoÛ—ªS¦L‘.= Ê¿Åáp§OŸê#²ò¹ç£ˆÈd&›Íå-)©·°hÏŽ]^N61ÑAªÕYZê¿~MPRRtv6ëVòÝ»9Êʃ~üQÄ™BIàñààhWW«>.ŽÆáðÖ¯¿šœüáÚ5¿¯Ð‰Ê&“8fÌMMÍñãÇÿõ×_—ˆD¾cä%¶—¬ú¼€óQD$R#Àаm>J$Ö™› ¥z±¶ÆedLUUEœ"&&ÓÓs4«,aÑÑo?|¨LJ ”îuéhmåøú^ÈÊ*‰Y?z´i_ªþ Óé&L000 ³´´ÌËËÛ¹sgRRRrr²¢¢ˆ“Äa„ hÂ?ÁÚ,œB "¨©iÉŒˆÄsóöJÔd~¥ôðhFÁÅ¥ûEÝ’’º·oKæÎu–Î*:½eÿþ{‹O9ÒP: RÀw¢7o®…NTFBBBôõõ?~ìéé9bĈ¹sç¾~ýšH$^¼xQdÿ®j³@ÐB "¨­¥©«« ¨Y,Nu5uذv?Z^ÞæG››YUUTCÃÁ5’ݹ“ÃiNžuêÔýû÷ïÝ»÷ðáÃÐÐP4=^MMÐ+ëׯ¯¨¨xýúõÇÃÂÂÐö;wî¼zõêÀÛ¶mŠŠzóæ···]cccgÛ.\¸pÿþýäää}ûöu¥¢+½B¼{÷ÎÂÂâ÷ßç§Éý‘ïqTäË`ÇŽèŸ>†^ Uz©©¡mNO/F$..{èÐ-û÷ß›:5´[™ÙÙ¥FF›³³%JxÔ™•+/~ûíŸ,Gº×{JK {Ñ¢Ó¶¶ÁïßWôÆÞCŽydB¡êêê„Ú_½z…f—]ÔA[ø×,KQQ1//m‰‰á‡ UGA¤¹¹ùÊ•+&Lprr:sæ .\§³^ ‘*D6v•A¢²²r÷îݦ¦¦³fÍJLL”¤Kßó0@ }D}=ƒ¾³´´að`,¿Ò zxµ¦¦CÞ¾-™0¡ûEݘ˜Lkkœ£ã0)ìÉÌ$ÆÇ¿Û½ûgóÚKHK ÛÛû|NNYTÔoöö&} ñk@[[ÛÐÐ0''G¨=''ÇÙ¹mË\’’/$‰ËåZYµíÇ[[[ó{ UGINN633{üøññãÇ333W¯^­¡!úÔ² Þêêj‘*Äè팱±ñž={²eËöíÛgkk[^^ÞUçÏèG!Ô×Óõõ5Ñëòòþ¢. ¢‚¢¤¤ˆ--.®³´ÔËÉ)sv6/Ãáݹ“5gŽ4F‚ìÚ;iÒww;)^ï)--ì+Âß½+‡NTî,Y²$$$„Ëåò[˜LfXX˜§§'z+IÉEEE€Þ›˜´ý˜„ª£èëë5êåË—iiiT*UŒa‚zÍÌÌDª£·+H$R~~~EEÅØ±cÕÔÔÄwþ|~Ð|TЖ—“Œ´Ñ=ÎââÚÁƒ±­­œqãÌÅ |þ¼°¡éå5^ c>|Ÿ“S¾¾¾îîî3gΜ={ö–-[ºR!¡ÞØØØÝ»w{yy„½{÷JRKõóF¾Û­È›Í51ñ¿{7½>|Û•+iü§‹ŸÞ¼ù‚ $ÍÈhó¼y'—/?'^ ƒÑbeõû¥K/¤0æÊ•43³€ÒÒz)Þí<oãÆH+«ßß¼!ô¶®>f€Ä‰§oJ¾p¹\6›ÝÛZX,Vo«gôd2“ÇCôô4Ñk£UhT0C=PÛíæhbb›Íýùg§žZÒÔÄ:|8qéRWÁ q/±sgl\\ö… >p&ú£  0hP¯§±ã:}%À¼€ˆ0 tº?ZZÚà»1AøI‹‹k54Tjj»õ£11™ß}g+ŹϳgŸ65±üý=zúbO9z4éòå´3gþoò䑽­ "XòåóÎG!aêëà~´¼œ¬¨¨`bÒ¶¯ÙÐÀlnf¡·ÅŵC†h ¤àä$î(KCãùóÂ9sz\m´¾žqêÔ“5k¾ÓÕ•¾Âš$œ=›zàÀÃΘ!eö|ˆìÀ’/Ÿ/ÐB ÂÔ×3””Ñécyyƒ‘Ñ`þ©ÍŠŠöãÅŵÊÊŠ66Fâ“Î?|ø^IIÑãÇGVŽKRWWñó›*Å'HÎÍ›¯÷îÛ»÷—… 'ôª"äKúQD˜úzú!êh.Óª**2 þ7=56ÖÕ65µv{âåîÝœéÓíøµK%„H¬¿|9Íßÿ©+ÃHB|ü»€€›6L[¹rrïi@¾l …@„ih`ð—R+*(‚~´¢‚‚Ãi)))²Xœòrr]ÝÉI\ÍцÆ«WE?ýÔãõÒƒÌÍõ–,™ØÓ%çåË¢õë#|}'õeâ{äËúQD˜º:?™Qg?Šë––6p¹<6›'Þ&&橨 š>}T ÈÍ-ÍÚ¶m†tí%áãÇ*_ß‹ö;wÎî%ÈWŒ×…@„!“C†¨£×••ühe¥à¡Œ††Š¥¥¾h)âãßM™2²§‹ºÿïìlÞ{Q?”Å‹Ï:9 ;qbiï¹jä+úQD2™‰úN:½…Fk61Ñæ?ª¨ O›6 P\\‹Å*98˜*(`º’C¥6½xÿ÷ßE=ÒþêUqjjATÔoÒšß uuô N :䟾Ézßï õ>ùÅ;PPU5WS³il|Êã}Eõ2¿r~ýõWù „~†Baêè¨*+)ÁùhU•d¤ €Ÿ«/))_Aãáaß#íaa¦Nµqs.éÝÑÔÄZ¾üœ¢¢Âå˾ªª_ËaùŸ~ú)::Z0;|YãÍ›º¬¬z&“ci©éåµÀȨªºBú~uyý(" …Ò4düÏ¢YLf+•Ú„úQ<¾¶©‰åà ÎÆÇçNžýæÕ#Õaa<<ìF6•éº (èÖ«WÅÑÑëú Ëà€‚Íæ>|øþÚµô/ õõ5ùeì¼yã`5ˆ¼€~éÞÊáðP?ZUEÜ­ª¢Œµ)&ނŪæÝâñã‚üøãhÉU?yòñýûŠC‡Ê`~—>œõúÒ¥•âçÐ_Åŵ׮¥GE½¡Ó[<=GGFú¹¹ ‡¡Uùý(Ò … ÐÑi[×ÚÅb•µµ±oß–ììLD…®´ŸûÍ7ÖZZ’Ö.FäŸ<=ííìä?Oºq#ãСă|ÿ½­Ü…@ŒÖ;w²""^åæ–ÛÛ›lÛ6ãçŸ45UûÛ.È— ô£HþçGÛæ£66†üG••ts´¸¸ƒÁŒße]”¦&Ö“'÷îýEr½ÉÉòò*ŽéYp¯$$&æFmÙâ±hQ/fu ‰õ/¾ˆŠzÓÒÂúé§1»wÿ²ÙÉ€"rð`ÂŒ66›e$3³ô·ß®.]êºu«§|%(IM-–’òÉÜ\oëÖæÏ'ED  …@:@¡0•”Ñ5ÀššFƒÁüGüC/¹¹å".È(>þ‹‹%?™C·$%åççW;¶D6Û…©©i\µê¢³³yHÈùJ8P(Ì žGD¤74ÐüÑ!&fý„ –ýmäëúQ¤ Ç466µ¶r µøªª(ãÇ›„:UU¥®¢^[ZØÉÉ‚ƒgJ¨ŒÎœé8r¤a÷½%¦¹™åí®¥¥vþüŠ/2ß‘Xþ<*ê5‚ ^^|}'‰Ï-ôÐB  PÚ½ÔÔÐ8œ ¥š˜è R_O·²Âu%!5µ ¹™õÓOc$Ô˜˜˜÷áCÕÉ“Ëd3¼\.oÕªKÕÕÔüµ´¾´øš«O¾w/gèÐ!?.\8ÆAúèG!P(Mh°nm- ``ÐæG©Ô¦¦&–±±vm-Ãá‰9}ÿÎÙÙ‡Ó”D‡8ðpöl§áà äa~ÿŸ–†¿}{`¼ñ@RRþ‰ß¼)™4iDtô:¸„ @? t€Jm[×­©iTQÄU©ª¢Œuòó«®®Ö"_g³¹ÉÉ6l˜.¡º„„÷EE¤ððr0ýDD¼:uêɱcKœÍå(¶AäþýwÇ'ççWMŸ>êΠЃBÐB  Ñšõô4µµ4N‹dÍhl¬}óf`òä"_ó¦„Jm’0ý‡üóÏßka!·½´´¢;¢7l˜>þ8yÉì_’’òyôî]¹‡‡}XØ'§aýmÒèG!46¶XZâ$Mps´²’ª­Åb•ß½+4HŸtWˆÄļ‘# ÍÍõ$ÑõèQ^QQíÙ³Þò0ˆÄúÕ«/ýøãè  ò’Ù¤¤|:xðannÅœ9cY,ߥoD^@? t€NoFsH$š¡¡à¡—¶$ %%õb´ÝN^“Ѱ°iiø›7× &Žø¼ÈÊ*ýûïûiiEnn#ââ6~1AR/èG!vØlnS M._SÓÈ?ô¨ª¢~÷ÍË—xÐu°nrrþ÷ßÛJRN$=½83³4>Þ_.fÇÆf<ùøðá_'N´’‹À>†H¬ ¿wïÝØ±ÃnÝZ÷í·¢‡˜@? ´C§·´´Ôh´æ–6ßòxHu5ÕÄDçåËb€È õ óõë’“'Ý$Qtüxò7ßXË%ô4;»lË–ëkÖLýõWÙ¥õ1$íÏ?ïÅÄdÚÚ߸±fÒ$ÑQÐÈ@úQ¤­0x°‰Ô! C]ÍækGD¼RTT™c!5µ@A#˜×¾+Þ½+OIùtýúÙ &‘}|¿ùÆzÇŽY²KëKèô–cÇ’/^|®§§ùßËúiŒ‚Âgùš~iõ£ššªååd¯ñI´KJêÑÝÓÎ$%廸XJ’ îäÉÇcÆ 2e¤ŒÖ²ÙÜU«.«ª*<¹ì3ªMÍã!±±™¡¡¨Ô¦ß~ûÞÏoªººJHô£H;üùèÛ·JJŠh‚@@UEAch8¸¡.²Î6‡Ã{òä“¿¿G·* k<È=}úÿd·v÷îØ*ïÞÝô{ýš°gO\~~åÒ¥®þþ?èéiô·Eˆ¬@? ´ÓØØŒÁ`45UÑ$ ÉŒ¨úúš55OdU–·oK›<<ìºUñß)ÖÖ’—&íŠk×Ò/]J;ujÙ¨QÆ2Šê jvíŠ}þ¼pþüqçϯ@ãB _ÐB íÐé-êêÊŠŠ µµ´ŽÁºccíª"Ïc$'°¶Æu›Æ¨¢‚“yàÀ÷³²Jƒƒ£×¬™úË/ce‘Ó7440ÂÂܼùÚÚÚ†ãB¾< …@Úa0ZÕÕÑ ÞB~”jl¬óæM ÀÆÆ¨ó‹IIùîîÝOFOŸN10К;×Y#I¤F_ß ß~ûıÙܳgŸž<ùDQQáàÁ…óæë³`¢²²²uëÖµ´´ô:ÈgŠŸŸßüùóeý(Ò“Ùª®® ¨­¥ÙØ´¯ßVUQÍß½+tžt‰õx<)4ÔK¼p‰ùjÇŽY²TÕf³¹+W^ú,b‹23‰Û·ßþð¡jáB—  úú’“ééé÷ïß÷òêæ‡ùšyõêUTTô£ˆ ,‹èG!vššXX¬  ¶¶=I=›Í­«£ápZ ‘e^’’ò§N)~vÈd¶^¹òÒ×w’šš²ÔæÅÇ¿;wîÙ¡C »JðÛïp8¼3gRþý÷‘ŽŽú¥K¾’¬uC Ÿ;ÐB í óQ:½¥©‰Å/šVSÓÈã!—ÇC:§Mg2[32‡-/922Íæ¬\9YjÛ k6mº¶l™ë€Í[ôömIPÐm<ž´qãôµk¿GgöÈô£H;Lf«ººJCÀ_¿E“0 Gb:g¨ñÏáp3Úw†Ãá?Ÿêå5^êÅX£Õ×÷âðá!!s¤“ЫÐh-aa®\IstzÿþæÑ£Eçñ‡@¾H …@Úinfikc˜~‘Ѫ*ª’’bE`i©/ôʳgCutº¬H xø0·ªŠºzõ© ¼I&3oÜX£¬<°~g‰ŒLÿóÏûêêÊ.øÀ…\ÈWÈ€Ž÷ƒ@ú˜¦¦V,V™Baø®±²’bh88'§AKKá`ݧO ºÍð÷ß)Ó§ÛYXû` ‰ˆxuï^ÎÑ£‹Ñ¨‡Š ÊÿýßùmÛn͘ᜨEEEr,¨ŽÁ`¼¼¼‘\>ƒÁ°°°PSS>|øîÝ»ÅÂ`0EEEò2X$L&300p̘1šššãÇÿ믿8Ž$/Êw0å ô£H;L&K]]…Baªª*ñ·÷ª«Œ´ «B¾°´´¡¤¤nòdq~ôíÛ’œœ2?¿©Ò™”›[þÇ1ëÖM›>]¢òà}‹Å9t(aÒ¤¿jké [Z8ㇿnß¾}óæMÉûoذ!+++::º¬¬,<<<...00°÷Ìë:>nܸ7oÞ„……effnß¾=22ÒÝÝËåŠìO ôôÚþ窭­½mÛ¶>4¶ ¬5"¤ijb©©)“ÉLA¯P]M2DJmVWWÖÕíöÙ³ •qãÌÅÈ<{6ÕÉi˜««4•A©Ô¦•+/NœhµmÛ )^ï%23‰Qee ;vÌòöv4þw¼ðóó[·nÝÔ©S E$§ìÌ;wÆŽ Ð××?vìØ²eËŽ?ÞËfvIHHˆ¾¾þãÇ#FŒøá‡ìíí/^¼¸råÊÎýy<^CCz­§§Ú§æJ ü€@Úá¯ë îwVWS•”€¨ ©©®®Öbò*‰õ¾_¹RšQA6mºÆfóŽ_2@jŠ55±öî›3縖–Úƒþ+WNþÜ(ƒ¹pá‚­­­¾¾~hhèÕ«W-,,¼sçNÀÆ}}}Ñž ‹ÅfggîÝ»çàà ªªjiiyõêUÇ;qâ„­­­¦¦¦««kJJŠà"$º&7räH·qãÆÖÖV‘ ã¦Ðb¦¿¿¿ÍêÕ«WwQ¨Tª···žžž©©i@@º~«¥¥uêÔ)¾+šð¯OŸ>EݰDÕÙØØTWW£’’’»·ÖÖÖ?2 .—›ššŠ6våG_½z¥§§'fˆÐ–n?’’"h†¸<‚ òó£Ÿ÷š "G8^k+G]]…Lfò+ÖÕÑy<¤®ŽÞÚÊZ×MM-6L·óI>¯0Ë–}ÓSK›||.L™2R’‚¦½MDÄ«I“þÎÌ$^½ºêÀƒiñDššš%%%¡k€¢¢âܹscbbêëë“““—,YÐÑÑIIIIOO7552eÊóçÏ‚££#_¦ƒƒˆºxÇG/lll***Ä4ŠgýúõNNN+W®Dþ·ºK"‘¸\®•UÛ¼µµuEE“ɼqãÀÅÅeçι¹¹ÁÁÁ¿ÿþ; ´´”¯×ÖÖvΜöCÉÆÆÆ…v×@$ŒŒ0 ƒqww/))évÜ”•• ===/]º„6jkkæää}NNN޳³³ä£!òcç›Ñg@? ´ÑÜÌ û£C†´ÅUW7*+©\.bn®+Ø?5µP0¯l6÷üùg ºhjªöÔ’ÀÀ(‡{èЯýè_YIYºôlPЭùóÇ=y²mÚ´0ÜgxyyÅÆÆFEE¹¹¹¡«µÍÍÍ<ïÖ­[d2Ù××wÖ¬Yd2ÙÄÄäÝ»wü·òóó;‹BgT€ÂÂBô/~WâQPP¸xñbZZÚÙ³gÑEEE€Þ›˜˜ ²xñâ÷ïߣ æ‡~@™‰D´=''çÏ?ÿä ïüO,¢/ …’žžÞ­…ÍÍÍ , ÌÊÊ:uê¿}É’%!!!‚ѹL&3,,ÌÓÓSòÑù±ü‘éÖ¶ÞúQ¤¦¦V«L&7ñç£ÕÕT ƒÑ03kŸ666eg—Š9ñÿ®¾ž.E"Àk×Ò<È=qb™žžF÷½{›7_OŸ~°  æÊ•UûöÍÑÒêñÿ¾ &MšÄápBBB–-[†¶`0èèhÆb±”””°X¬O```\\\MMMBBBPPPgQ›6m***zóæMppðÒ¥K»jlllD7…®±°°8xðà¡C‡Ð[%%¥… nܸ±¤¤$//ï?þX²d‰††ÆòåË.\O ^¾|°hÑ"À²eËvìØ‘—————·~ýz4ø¨+æÎ»}ûöÒÒÒÜÜ\OOÏ“'Ov;h­­­,KYY¹¹¹y÷îÝ:صkWmmí´iÓðx|ll¬‹‹‹‰‰ÉÚµkÅ ƒÁ.òc»5©w‘}iù2 jŒ6çåU ¶õÖ­7hã¹s©¶¶ÁFF›--ƒkâãß™šnillêJÚ¬YGW¬ï© >Tš›ìÛwW ûåEm-mùòsÆÆþAA·èô–~´D$ßåO¶ºº^³fššFnee¥¬¬lcc‡ ‹Å ±°°ÐÐÐpuu½víè´?zþüy333==½ 6477‹lD:Ô^ƒŽ{~<ÏÝÝÿ”L&/[¶LWW×ÈÈÈßßÅápöìÙãàà ¦¦fnn¾mÛ6´½¥¥% ÀØØxðàÁ‹-¢P(bF€F£­X±BGGGWWwõêÕL&S’q;|øð!C†zêÔ©E‹áp8´ƒÁغu«½½=‹µ³³Û¿SSSWCÄf³ÝÜÜ444„†BäÇve’`œ"gòò*ŒŒ6ççWmNNÎG÷í»;~ü^3³€©SC;ÿþ{ÔÌ™ÿv%*+«ÔÈhó«WE=2 ¹™5ujèÌ™G¤‹ï• W¯¾92èÛoÿ|û–Ø_6È ý¨$/^¼¸G¯þÑï|+¦ñ«¥_FC^~æa€@Ú`2[, °?J4H‹U\Ô<}úÉËk|W¢.]zakk}Z¨ÈƯ–Ïz4 …@Úhjb)+¢Ñš R@« R]Me³¹¼ÿg:Hº>›F(¡÷Þņ€QÁîa¯ˆö‚íÀ†¨ØÅ‚¢~zØ  ‚¢b?9E)‚œiJïRv¿?–ËåB€ˆADæ÷×f2ûæí¦¼yóÞC1áàÑçÏ3›KÈã¡—.½˜9³¿¬¬¤U¬Q[·îªªªü¯-š˜˜íí}™Él8}zÞ7áȯŒ{@©¯çÈÉ5&©Ç£èjjêx(ŠË­†%$d;8˜‹òèÑÛ’’Úùó‡H>nPPì«W9gÎÌWPù·uëÍ3Žwï®ç hgç;ËŠýÌUÉ~~à|i¤¡G¥’…“Ô—”ÔAU¼ñÓ§’ÊJÆ Aâ÷]¸ð|Ø0«¦í›#-ík`àƒ Æõê¥÷ÝW )oßzy…T92»…ÝRDà|i„ÃáQ(¤ªªzs´¨¨@£Éêè( Vq²e{öcö>|(~þü³ä“Q‹ãínooºbÅi\Aëðùè¡CÇ?¢ª*»Qäûvi„Ãá‘ÉD‘ù(™L”—§Ï/²ííM‰D1¿ÐЦ¦#Gv—pÄÝ»o——3ŽûAeÑŠ‹kÜÜN;³zõ˜«W— fØNGyyy}}}Óöððp333 åË—ãÄ–Û(ù( …@áñP …H§³””dñ–’’ZÜ^ 6ëâÎÑAƒÄ8Gétöµk)ƒ$ô3=~üîâÅ—þþSut”¥t-qýzÊСûkkY¯_³fLg¯ÚeINNž?~Ïž=kkk›¾òðáûwïÆÄÄìÞ½°jÕª‚‚‚¤¤¤üùçŸÍ56åÍ›7&&&6l䦇ˆþ– F8™Lª«c 2Ë×òxüúzŽ xôç¨;zíZ†annö’ŒU^^·víÕI“l¦Oï'-ý›ƒÅâøú^óö¾ìâÒ?:ÚËÒR»½G„H6›jooïéé9hРœœ¦Ýþ÷¿ÿYXXØÛÛïÙ³'""‚Ëå^½zõèÑ£¦¦¦½{÷ÞµkWXX˜ØF±ƒŽ5*--MNNÎÉÉiÒ¤I=BQ´/´Sí(Ò—Ë'“‰ Æ¿v4/¯‚ÇCkkY††v4!!KIIN¬s4,,aâDEEYIÆòñ‰¤RÉ.ÒR¾9RSó† xôèmDIJ={¦ËÈÀ­…˜˜##£ØØØ?þø#55uéÒ¥ âk×+..[b¬…ºcMÑÕÕݱcGNNΜ9svïÞݽ{÷üü|©^ܯ´£H#\.B!ÖÕ±ååãO ªöoðèË—Ùöö¦MÝ™¯^å|úT2wî`I Kˆ‰y÷Çîݶ¢Ø¡C§NýÃÒR+&ÆgÈfK¼A~r444zôèñòåË/^ÔÔÔ´ÐS¸î˜‘‘‘Øc-ÔkŽÒÒÒwïÞØÙÙÉʶ㗶“í(Ò‡Ã'“Iuu ‚ùhyy¾M÷¢(öòe–ØEÝK—^ôéc`kkØê(ùùU»wßž?È·fßý&JKkgÍ:uìX̶m“/]Z¢¦Ö‘%Ø ßIŸ>}ââânܸñéÓ'KKËÅ‹§¦¦Ší¹nÝ:Aݱùóç‹-1&yÝ1E=z4uêÔböâÅ‹+W®¨«KÓÕu€vi„ËåS(Áº.‹Åa±84UEEÏ–÷éSIu5³©­¬dܽûÆÝÝ¡Õ!ø|tåÊ0}}•mÛ&µÇ%àÄļ5*°°°úÎïÅ‹`|ý¯A¯^½N:õùóçž={ºººŠ-ºhѢѣGO˜0aÒ¤Ik×®éêêöïß̘1cƌٴiSsM¹yóæöíÛ]\\rrrvîÜ)a™ñ.t–@ p8<Àç£øº.ž„AV–¢©IÃ;$$d©¨È÷è!úoríZ •Jž:Õ®Õ!‚ƒŸ½yóõÞ½5J»üô8ÞîÝwBBâÝÝnÛ6ùG&H‚ü”••׬Yãíí-²åGÑ×ÕÕU¸]EEåÒ¥K"Bš6Š$Æ™4iÒôéÓ¥¦ú¯ ´£H#<НÐàóÑââÆdF‚ *HÂPSSO¥’ÔÔ¤´´öË—ÊL„û¿z•“•Uö¿ÿ¹µ óãÇâ#GùùM47×”–ž>-YrÁ`_½º|ð`ñåÄ!ÈÚQ¤.—Ïçc¸Å0ŒÅâÈË+à™u““óH$‚±pÿˆˆ$++;;£®ZÖ¯ŸñâÅNÒR2,,aëÖ}ú^¿¾R[[IZbUFÝjÌdÊËÈ4P©¬ äçáï¿ÿvr’ÂoÚQ¤.—Ïã5&a¨­e¡(†aÀÐPœœÛ½»®œEй®Ž}çNúÆã[xâÄ“/_*cc}¤²¢[_ÏÙ¸ñÚ©p_®$ØÛÛÏš5‹Ïç‹}—ÏGèt™š™š&“L `&&tÆVÒ±899Íœ9óûå@; 4Âáðx<>>Íϯ44p ðùhnÿþÿYÔ½{7ÇC§OïÛœ´OŸJŽy´yóA­˜ïáãÇâ¥K/TT0à¾\ 122ºråŠp ‡Ã{õ*çÙ³ÌøøÌwï dà@3''KGGËž=õÄf‡@$ÚQ¤>åryÊÊŠ€wï  Fƒ¡¡*‹Åy÷®pÙ²aÂ#"’Gî©¢"ßœ¨uë®ÚØJeE÷Ö­×>>‘VVÚW¯.×ÕýE¿0 ûûï‚øøÌgÏ2SRòØlnïÞúŽŽ–~~úö5^`€@Ú ´£H#†54ðñuÝOŸJ(Š©§¥}årù˜ zfe•%%å\º´¤9QçÎÅ¿_ôøñ÷îÑe³¹6D^¿ž²råH_ßqp-WB ªÿúëc||æË—Y•• å‘#»{x8 h¦¡Aëhí ¿ÐŽB `àñøT*›[N (Šª†„Äëé©oê¹~=YKKiØ0+±ròò*î¯[÷›™ÙwíÑÍË«XºôÂׯU!! {¨®@mm=¾fŸùåK¥¢"uèP+_ßqŽŽ–x& ¤€viÃ0.—/+K×’ÉD²¢¢¬ˆs”ÏG##“gÌè'vvˆaغuW»uÓþά ññ™Ë—_RU•¿uëw++ïõ #ÖåéááàèhÙ£‡œ¾C~ ÐŽB `àñP|>ZYÉ “‰††ª|>š’’'¼/7>>³´”>{¶½X!×®¥¤¤äÝ¿¿¦ÍûV0 ;y2nß¾{ãÆY><«Õ22] —'‹Å±¶6À]žvvFðvA~<ÐŽB  (ÆãñedÈ:E$ Õ²²ÊêêØýú ºED$ÙÙ™šj4•PZZ»mÛ•+GФá•:µreè³g™ûöÍððh½0xס°°:.îc||fBBVEC[[iÔ¨ööf‚±H‡í(Ò¾®‹ÏGY,®œœŒ¡¡jjjž¼¼Œ vwmmýÇûûO+aÇŽh ÅÕ«[ýËÇÅ †°XÜë×WŠ„ÙtMètÖÓ§Ÿ.O:l˜Õ† Ðå ù¹€vi×˗‘!q¹|>åp¸jéé_{÷Ö,ÒÞ¹óA±>?~wûvúµk+ðô¼ßÊ;ék×^µ±18ujžššÂw]Ig†Ëå'&fC—'¤í(Ò†aø~ÝÌÌ@CÏÐPõòåD''KAŸë×S~û­—¢¢¬È¹LfƒŸ_Ô´i} úæ„·<ºsgtHHüŠ#ºfp‹°Ë355¯¾ºÇÆúH^L›ÏG÷ï¿âÄOÏ¡›7OüU¢ù¸Ëóõë/Lfƒ¡¡š““åÊ•#¶øÖ‰;ò3í(ÒŠbRy9ƒH$ª&'çΚÕ8˼q#µ[7í>} „O)*ª ¸¿bÅÉSÒé¬+B³Ožœ3i’­t/¡Ã))©‰yŸùêUvYY²²œ££åöí“a¤ äÚQ¤ ÃT*¹¦† PW§åçWáÎQ.—ûvÚ¢EŽ"§øúFji)I0úáCñÂ…çH$â£GëÅfrèŒ0 qqD\žK– …õÈ ]hG!Àã¡yy(ЍT2“ÉEQ4-í ‚ øºî_}¬ªbΘÑ_ø¬þ~òä£ä£÷î½Y½úŠ­­Ñ™3ó:»C”ÇC² Ë ø38ÒÉË«¸xñeEE]LÌ»ÚZ–ð[Òè.UR’ut´d0òó«54ä·m›Œ[V:5tèþ!C,ÿøÃ½ÕPÛ·ïÞ‰O:{„è—/•¿{üø]ZÚ£A__eØ0+GGËAƒÌ»rîHÚQH×e÷îÛ'OÆ LfËP©d6›‹ `æÌ[¶L<|øÏèè´gÏ6 o™),¬FD¤Ôv]{Õª°¿þú¸wïtw÷Η2·ºšùüùgÁ²­’’œ““¥££%tyB 8ÐŽBº.éé_Ç;ò­g!B$lß>yáÂ=¦\.Ƚl6ïÑ£µZZÅJ¿|©\¸ð\E#8xA'J™ÛÐÀKJj¬Gööm‰D´·7ÅÍ'tyB "@ÿ(¤ëbcc¨§§\XXóMgáé‰DÂÉ“q††j£FõÀÛÏœù«°°†@@<<Îܾí-+Kyþx@[~EÑ úìØ1…ÏG÷r8|‰D<Ø|Ð óƒŒÓëèQ·Ÿ9Cl~~^SåÅ‹ÏUUL==•áí-ÌÕÕ¡ËihG!]š‚‚êv·ÍŽþÒ³§®±±úŸ¾åñøx‘HPP™=ÛÞÏoâO¸ ZSSû;q—§¢¢ìСݠËip]Ò¥Ñ×WéÝ[ïï¿ Úv:™LTT”=Û~Ë–Âí|>J§³ŒÔÛÕˆ^¹’¸}{ô… ‹$)2Ãáð^½Ê[¬+¸<óòò=zÔÑZ@: ‹áÇKW&œBº:W®$®_цß‘H´±Ñ^8mZÐׯ|þD B —/{::Z6'¡Í”–Ò½½ÃŸ?ÿ ²x±ãŽâëÌ×#KIÉc³¹¸ËÓÉɲo_c9¹.äòœ={öÕ«W;Z HÇC"‘¸\®teB; éêÔÕ±»w÷Ó0H€LžlwäȬððÄ­[oà9›öQPyøp±±º””†…‡'nß~‹ËåãËȦ¦ÏŸoîSPP×Tyù2«²’¡££ýÔ\"‘Àçÿke€lÜ8nåÊ‘ÕÕõûöÝkîW‰a€NgŸ=ûtÏžéRQµ¤¤võêËÏŸ6Û99å%%µ²²d|ÍwyÒhÔaì|}ÇA—'ÒÞ@; €… Ÿ>Í»ÛA@ .‘H ò˜8Ѱwï]6›ÓôñVF†ÔÐÀ³µ5ôðpV2ú°°„;¢¹\žÈÜ—@@fÍ:õåK‡Ã·²Ò;¶·£c·Ma¤ òc€vÇw§RIl¶x¯‰­­ajj€D"Ðh²—.-éÛךúåÊ•WÂF”D"òx|]]å †LŸÞO[[I*êUU1}|">|‹a ©±'‡Ï2Ä¢Ë.ÛB ´£ ‘¿ýÖ3::]Ђ †aD"aÁ‚!½åóQ2™¨««rùòR Šb>>Âçc “I3fôuqé߯Ÿ Þ"<ø{íÚ+L¦˜Y/‡–—3¦Nµ“Öˆ䛸Å7»C âéùŸ­ð::JCoïÑùùÕ'§n11ëq# ¸~=åãÇbÜ´™˜¨ûùMLJÚzð ë€¦Ò2¢LfÆ ‹Ÿ¯«c "SÅRUÅÈÎ.“Ê ö#++Kòbï­‚!++;xðàôôôÖOk†ÂÂçÎ[^^Þ‰†yxx((|[âŽæn"AgéÞF©ð;úâÅ ±×‘ 222/^¼è¨»)ð`kk„¢ `ø´ïÇë\nÙýû~::æ†Õ׿ [¦ @ô_¹ò0†qŒŒÊʈçÏýV¬¡©©(]•ôô&†…%b†¢| ãcX ¦³¶#­q¶o)¤9^¾|Y\\\\\œ‘‘aaa!ݨ¸ð‚‚‚óçÏÓét;;»ššf3h…‡‡¿ÿ¾mcåä䨫ÿgO»àÒ(++ûúú¶M~{óŸuÝÂÂB‡·†·3gÎ,,,ìh-þÿÄ·oßÞÑŠüÔÖòÙl ¥E¬©A••ñ¶ë1 ”•ñµ´0X¸sCF$I´]ŠÔ×c••ü†ŒÍF›²ÙX}=Æba (‡„"V‘~ýÆ .>Šô[Ù¹sçOõ-…4‡†††¶¶6@[[ûÀZZZåååšššÒ®§§7lذaÆ9rdçÎb;³X,€¡¡aÛÆBQ´²²RìèÂìß¿¿mòÛ1þQ—¯¤6lXG«i ŸÁà0ܺ:ަ¦œ††tjƒ7÷_Ù@äܹs¬¨¨X·nžžÞ¶mÛªªª¼¼¼vïÞíååÅd2Ï;`0ššš/^¼°µµ½s玟Ÿ_ff¦®®îÎ;çÌ™ƒ¢è‰'Ž?^PPЫW¯½{÷Ž1âóçÏø(YYY·nÝÚ°aCuuõ¬Y³<˜ŸŸß´QFFïŒO4…E “É EI©qk—Ëݼyó¥K—0 ›7oÞÞ½{ÉdòÝ»w·nÝúéÓ'%%%ooï7òùüÇŸ={¶¸¸ØÚÚzÅŠÍÝ–eË–:tÿn4>pà@€¶¶vII  é@-_…Èéb{íb/SâO[j@ÿ(ÒY¡Pˆªª²††Š={ªKˈBbñ\ü IDATbb’’’öïß¿iÓ¦»wïfdd€Åb¡(zíÚµªªªE‹Mœ8±ªªJOOïÍ›7‚³Þ½{×T”À]Š;V[hl99¹ùóç¿{÷N`¢ÔÕÕ¦¨ºº:11‘ÅbÍœ9ÓÇÇçõë×'NœÀ»·ª'ð“'OŽ?¾9áÂÅ„ƒ/ÏJq[Ëšü0~:;*õØ &“éããÓ§OÖ¿ÿ½{÷6·ÔÞÞš@ÄRXX(Å2FÃ…˜5kÖ¾}ûZج/9l6ûÔ©S‹-7nܲeËÂÃÃùü–:H÷êDGGG·k×®9sæà-‚Œ3&**ŠN§s82™,''·páBŸèèè’’’‡nܸ±©(ooשּׁ¬äääÍ›7{xx4×X[[Œ¿+|,‚¢¢b]]ƒÁÀ_N›6mÓ¦M_¾|ÉÈÈpvv>~üxCC‡Ã¡P(, ߢ_WW·lÙ2a=…ý‹ååå%%%………OŸ>:ujnnîÚµk›.¬‰Ø”••—.]¢ÓéÇŽ{ å%§eM~?•.uuuýúõKNNHMMÝ´iSxxøèÑ£›ûcêp¥‚‚êãÇc‡ ˜7Oü¯Ò*AAAQQQ×®]óõõe2™K—.má÷Y\\|8""‚J¥®_¿~ÕªUkÖ¬±°°ØµkךŠrww5jÔ¸qãœ7mÚÔ\cyyù’%Kðw…EÐ××WTTDøûûÓh4[[Û#FôéÓ' @YYùСCîîîVVVÆÆÆ³gÏvvv^¹r¥ÏúõëÍÍÍwíÚuùòeÀAƒéèèèëëÏ™3GAA!55U°¸©paMĤ®®îïï¿nÝ:;;»ùóç‹(ollÐn6®-óQABBBºwﮡ¡±ÿþÐÐP%%¥­[·¼¼¼-Z„÷d0rrriii€;wîX[[S©TSSÓÐÐPŠ¢AAAÝ»w§ÑhqqqÂë¨ø²jttt·nÝ455½¼¼Ä6‚ÿ®Á ‡……mÛ¶M`Dòòò>>>aaabE ˜DäÔÔÔÌŸ?_]]]__ýúõl6¿áááÝ»wWUUû¼Ù*ŒààgãDZ¶Þ¶mÛ7oò1 .Ñõ“0|øðÌ›7oÊ”)—/_~ôèÑìÙ³Çøã?—Ïb±œqÏË—/-Z4fÌ77·G0 »yóæ¼yóÆ·råÊ´´4á5O| ôÅ‹sæÌ™:uêüÁårÅ6‚ÿ®—¶°vŠ È¤I“^“„„„%K–8;;OŸ>ôÆæ¦M›Ö\ÀãÇçÎ+0¢*•:k֬NjUOX¦°n cÿþý“'Ovqq9yò$‡ÃÁïmLL̼yó&MšÔ\¡éššü{þM´í¬¦”–Ò2dŸÝŽ={î|üXàñ~ºoé€Ífçää„„„47)„tMÚ¸®Û)B¬jjjJJJ„w£áØØØ|üøQ¬¨¦aL8«V­*((HJJzðàÁŸþ)X=¸uëVBBÂ|}}«ªª$¼{ FõkÉ3f·±Ù¶sç­ôô| Ãx<ôg~MMM=yòäÒ¥KÏž=›pîܹåË—‡††Òéô¡C‡¾xñ_*ñâ…ŽŽŽ¹¹9›ÍÞ±cÇ”)S®^½:gΜ°Ùì{÷î]ºtiñâÅ¡¡¡sçλÉþÖ­[ûöíÛ»wï«W¯–¬i£²²òúõëñw…›¢¯¯_TT¨¯¯ß¶m›……EXXØòåËÏž=[SSƒïƒ¸qãFs FUU•¹¹¹ˆXssó¯_¿ŠUOX¦0G-//?uêT@@@rrò•+WðöçÏŸ?~ÜÓÓóôéÓuuu§|üøqÿþý ,hƒë(;;{Ö¬Y§OŸ...þÖsUULü!ÏÎnÇþý÷rsË\.ÿgþ–¶7¯^½êׯßÂ… ¿3u‰¢¢¢§§§$NAë½B¬/^,±òôô±1bDs!V3gαèèèìÙ³gÞ¼y"áÑT€={öøùùáÍE·oßÞBˆUS‚À?*V¾\.÷êÕ«oÞ¼155ìÚµkÆ ¸ÿ|åÊ•ÊÊÊóæÍ[²dIUU•ªªjË÷LÖ ÏÚ´i›ÍAD¤¤0,7,,¡eißOJJ)‘(Qm/WWW99¹1cÆ}ÿÂO™2EAAá·ß~ ¤Óé4Ãáüõ×_7oÞäóù“&Mòöö–••mõEèÛ·oppð;w¼½½-,,¦NÚ·o_I¶ÎQ(º.dúú¦p8<†5·§ª®®á|K¥BUUU•ýB†*ùã²0æææÂÏššš§Né#¶Ò)h£•$ÄÊÚÚ:&&æôéÓàŸ«ÿýïÛ·o·³³Û´iÓØ±cÛ;ÄJYYY[[;==]ä-==½oß¾’‹*--åóù‚Ø)sssAO|cºä™¨h´AÉÉ©=Z~®¯«cmØð#“Ée㔓“H$‘c@ptt|ö왩©ijjêºuë4íÈ‘#ׯ_?þ¼¥¥¥›››½½}qq±ðÄ.7HCCCA±RPP€L$©   00Åb >waÄvPPPPUUÍÊÊ|gp²²²,--%W¯ººEQA$ƒžžž '¾µMp?SSSýýýííí½½½»uëö=›ÆÕÔÔæÏŸïááñüùóK—.=zôСC­æ_UTžž^‰ Ã@˓Ϫ*Æù–~?ŠŠ´ï·£ˆXÚ¥þ¨‹‹‹»»{=š†Xq8œ+W®Lœ8±¬¬ ±êÓ§~Vs!V½{÷MB¬š6ŠÅÝÝ}×®]ÇÞgàíí-¹(---"‘˜““Ó£G@vv¶`‹°ÏLªª¢÷í;ÃdªÝ¸‘R]]—}ÛSSSñãG‰r‹|‘‘‘®®ÿû~9Æ ó÷÷766îÝ»·†† ¡¡EÑ;vðx¼ØØØÍ›7ߺuK]]=;;[8𻩍‚‚ܾæçç«©©µÐ( †Ý¾}w{744ìØ±cÇŽ\.÷Áƒ"›ë0jÔ¨K—.ÙÚÚ ï3ºråŠ`Ǧ$ꩨ¨„ââb###@QQ‘`g¸ˆ¥TVV666~÷î™™™žžþœú=TWWçåå•——÷èÑC7®**.ïÛw¦²RñæÍT‹C$6û-52RKIéEšn›êì0™Ì;v|øùóç›7oÚÛÛëéé-_¾¼ù"¾(2™ìêêêåå•››ûöí[ŸñâÅ1cÆà-‚øøø<{öŒÉdr¹\‰$##3vìØ“'O¾xñ¢ªª*))éÌ™3ME~üø188xôèÑÍ52™Ì{÷îáï jjjªªª***Þ¼y³uëÖââbü?”Ëåòx<‰ÄápΟ?¨¯¯ÇOÁ«U4×aÞ¼yÕÕÕk×®MJJ*((ˆ_¾|¹ººº ¸E¬Î¸L$iøðáÇŽ+..ÎÍÍ=wîœØå_€™™Ù‘#GvíÚ•ŸŸ?gΜƒfff~ë'À0,%%eëÖ­+V¬À0,((hëÖ­Í-S‹œjjªxðàÌ÷ï÷\¸°xÒ$Ðé¿¥¿.¢ïצ]æ£øÒîÅ‹›†Xåç盚š B¬x<Þš5kÊËË{÷î}àÀ777Qx4“Éœ={ö¦M›ðU‘FðOXî>VTTLMMݾ}»ONNމ‰ÉìÙ³×®]+x*E"‘ð0&‘íAAAÞÞÞýû÷§P(³fÍ{}Ç-"8:Z::Z<ÈÏŒŒL~øðoü ±§éO @prrúóÏ?œœð …²iÓ¦Ó§O—••éêênß¾B¡¸ººòùüãÇ×ÔÔ˜ššzzzúûû‹ˆ5jÔºuëØlöÈ‘#ÝÝÝñÅO‘F@MMM`` î>¬ZÕ‰¡©©imm}æÌyyy€‚‚ÂòåËýýýeeeÝÜÜF޹aÆëׯ÷îÝ{úôé÷ïßÛáæÍ›rrrgΜ9þü©S§ŠŠŠtttFŽéââ"XÏQH$ d _š··wPPвeËÈdòˆ#Z~311Y»víÒ¥KÊf³‹ŠŠBBBÛú!’ ©I[¼Øiñb§/_*oÞL¥Ñ¨­‘¤p8œÊÊÊàÄ©ƒ È·Q ´qIŠè马X1bÅŠŸ?—ÞºõÚÐð|ÕiÑBDß®]»ðc<¢¯ªªÊÃÃCMM-11ÑÂÂBlD_IIIRR“Étss£Ñhx$Ñwýúu|m¯ÕH„.Žô%Äê§Ö22R[½zÌ¢EN­ˆ¤|øðÁÓÓsìØ±MØß„¼¼üĉ%iüyøÉÕk?,,´||ƺºèhE ÿÒ4¢O¤(›xDßÑ£GMMM{÷î½k×.AOAD m¡>] é?±v–+­%-úôésûöí6œ¨§§'¼"ª¬¬,H„ÝrãÏÃO®ä—ä'ŒèëâÀ xÒÉÀ#ú„wçâ}ÎÎÎøKIê¯ "úð—ßÑ×Å7 @:?_D_—¦]â^ Ò~ü´}]hG!Γɩ«ãÔÕq ƒÁ©«ãà=zh ØRn/È/†¼¼|````` Øw-Z$¨»…ïDQQQ¹té’ȹÂûT`Ú#IcG Y ]„Š¥t)”ëëµH¤ ŠŠyFD>†‘X,U9¹rþýCáó)L¦•ZA¡Ôµ ð;a³UÙlu>Ÿ„¢%c ÃHMþÖ0Á0 IHH¸~=«ý”@ Íñ;joo?kÖ¬æ2KA¾ŸY³fÙÛÛw´ÿ?q†$$è hcª[EE•ÒRù>}ʹ\ÂÛ·ê‚‘•UÐhÄØlRjªƒ¡/+ËÕÑaji±ˆDé×ã,(P¨ªj5‚a‚uu1yÿÛ/!QÏOÑ÷ ƒÀi;¸{÷ÍÒ¥/Éd"—Ë×ÔTŒŠZåè¸н»îåËKµ´ Û–-7BBž€! ‘ˆ“&ÙÌ;¸éj•šš·bEhII-—ÛÒ³€¼¿GQñ›k«u~±|F¶ÑNùŒà~].^|.ü’Ëå#¨ªbìØqKKKðùsɈÒÒkwûúŽSU•E×˿u+mòäcÖÖÛöì¹[XX--­úö5~útã’%C¤ÙPAzôÐ…Fé( …@@YY]BB¶H#†‹û  @%­­eM™rôæÍ×êë;^PñŒÏGu§NÅÙÛïž1ãø;é<ž{©Tò–-¯^]®®®@&‹ùÁ’HÄÜÜrWדÇÇfdäà òÈÚQܺõmÆä¡(–“S†ÏQãñÐU«Âz˜={ ±±†H51>EQ,11ÇÓóâÀþ§Oÿ…›ØïÄÑÑ2>~“‹ËðŸz¥\.ÏÍÍAQQöøñ'ηííw¯]{õ֭׌f„A iý£>óï¿ ¨Tr¿~ÆNN–ŽŽ–½{ë#ˆø§‡_ŒuëÖ>|¸£µ€t<†††_¾|‘®LhG!].—ß»÷V:Õ¶Ó‰DDA:jTÏ[·Ò„Ãp™2Åöøñ9RRS:bĬ¬2MMÚÇkñ´G÷î½ñö¾Ü¿¿ÉéÓó:Ë Élxýú îLÍÈÈ—“£ôíÛ圩È7í(¤ëž°aC¤„¿xO10Pùúµúäɹ“&Ù:¼x‘õûïaáážÝ»ë?|(š;7˜B!…†.15Õò´3¥¥ô¤¤œøøÌÇß—–ÖjhÐ4st´1¢»®®rGkü,@; éº,^|áþý7’ô$‘rr2t:KEEnóæ ³g\¿>"6öý³g[Ë,-¥/\x./¯òìÙùƒ™KCñw¦>~üîÙ³O †a'N<Ù·ïÞ‚Ž;wNÉí×I©®f>þß ôõk¥¼¼ŒîLµ¶6èhí ´£ÿØQ}}{{Ó¨¨TA„ÏGïß_cccÈbq¬­·mÝ:iîÜA‚S0 ›9óDUóáÃuÎÃîÞ}ãí}ÙÁÁìäɹ4Ú/µ*ˆ¢‰Ï¬©©×Ô¤ÙÛ›9:ZŽÕC[»Õ*ªH'ÚQ€쨹¹¦Qdd2Þ¨ @ݼyÂüùƒ«V…Vß¼ù»ðY™™%£GúùM\ºt¨„%'ç.Z¢§§²PGçÜ­ƒ¢ØÛ·ø$5))GØ™:l˜Õ/öôXïÁÁ#:¨T’p‹¡¡ê›7G§L±KJÊÍϯ>ËÒR{ٲኋk$¨“û÷×òx¨³óáW¯r¤¤þO€X[¬\92"bù‡{#"–O˜`“‘Q°|ù¥ž=ýœïÙs7>>³åÊäH'ÎG!¨©©ïÑïo_cõèè4Åh4j¯^zååuqq¾.—ok»}Ù²á«Vý'™-›Í>< W/ý³gçK>‡Ãóõ½výzÊÆãZÎŽûËPYÉxù2+>>óéÓOùùUЙ ùe€và;:h¹²²\ZÚ×úúyccµgÏ2?~ܧ  Ø´ézRRNlì‘sãâ>º»ŸÆk¿|Ó aa ~~QãÇ÷9tÈUV–"µ‹ùé8SŸ=ˬ­­×ÒR0ÀÔÑÑrôèx ¤í(À?vtĈî(ŠÕÔÔ×*+Ë)*R““soÜX5p àÕ«œ©SÿˆÝ œigÉ’ oÞ|ýë¯rrßf³—.½ ¥¥²Pòtó¿ |>úî]cJÂW¯rx<~¯^úxÍ€¦22]±¾¤Óý£à ïddÈõõ--E +,¬ÖÒRLOÏÇûôïo¢££|ûvZÓÓýý§Ñé¬cÇ븚=|¸ŽH$Œ{øùóÏßw"‘ äLÝsåÊ2GGËøøÌY³Nuï¾ÙÕõäñã±ùm¨jü0ˆ;vìèh ާ¡{üø“^½tKKéZ99eB((¨¶·7«ªbN˜Ð€ HyyÝ­[¯-rÉ4«  C¡þsüxk55…ošF£Nj÷þ}Q@À} …4`€©4/¬ó@&ŒÔœœ,=<æÍÜ«—^m-ëÖ­´“'ã.\xþæM~m-KYY®ÕRÈ.›@ ÿ"#Cf29ššŠ ü††a*qqÜÜž<÷üy¦“S7‘s-r¼~=Ù×÷Ú«¾5Ÿ»¼¼ÌéÓóðD ?–<8“J%Káz:-êê 'ÚLœh„œ©þþwèt– ŠÆÑÑRYÚTHÇí(ò/Tjãº.ƒÑÀåòDIIîëתêj¦ŠŠ<ÀÔT0mjG‰DÂ3'NùÂ…çIIß›‰^WWùÆU³fÙ/[viÆH˜Þ½ ÈËËœ©ññ›¶l™(//óÇ1ηöøøDÞ¹“^]Íìh5!¸¸™LàË}t:KOO%+«ŒN¯'‘¹¹vvF))y‹; ú»º Š}ù2ËÑÑR¬@W×ÑÑiëÖEÄÄø|gH…BÚ½{ª¯ïµÌÌÒÓ§çÂ$´-ðâÅ‹#Fp8œV{‰Jµµ†™™†aaF F2ƒ!Þç ùåñññ9pà@›O‡v‰€ H$nGY,nqq­®®J^^E¿~Æ/¾îojªaccpýzJsvpàÀÌáÃŽ{ìã3öû5œ>½ŸµµÁâÅçG |8//ï{$Àï Ò‰DàñPM¶¶–¥¯¯B§×£(6dˆENN™««ý¾}÷ŠŠjtuÿ­¼íîîàçµsç”æ²êè뫬Y3æÀ“'ÛZZJa—……Ö½{kÖ­»êævzõêÑkÖüF |[⤮ƒ‹‹KG«é\»ví;%@ÿ(Ò™LäñP%%ÙÚÚz==EQLGG%+«ÌÖÖL&¦¤ä ÷Ÿ<Ù–L&Þ¸‘Ú‚Ì¥K‡õè¡»fÍO¼'õ[QP9ujîöí“‹Y°à ç€@:hG!FÈd‡ÃSR’¥ÓÙúú9ù”•e³³Ë©TrÏžzÂQ¤yy™I“lÃÃZI"‚‚<>|(>zô‘´ôDdñb§ÈÈùcÇùð¡HZ’!H€vi„L&ðx|EEY:¥££L $B!ÕÖÖWV2úõ3±£7·>¿~ý¥±¦¦¾¾ãŽ}üæ4óüÙÛ›Þ»·FUU~Ò¤c-Dà@ öÚQ¤2™Äáð•”dkkYd2QSS‘F“Å“µfg—õíküî]!›Í>ÅÎΨGÝË—[ÉÞ·dÉÐ~ýL¼½/ i¤‚®®òÍ›¿»¹ ôòº¼fÍ•úúÖw¨B ©í(Ò™LÄ磸ÓQ__•J%1lyy™ìì²͸\¾pÂzœY³ì££ÓŒ–R÷È‘#³ «ýæBß­ê¼sç”ÈÈýõqذýÂA®$++ë[kçµ"„¬¬ìàÁƒÓÓŧw–†ÂÂçÎ[^^Þ‰†yxx((|[‘ÝnHffæøñãUTT´µµ§L™òæÍ›o’ü3í(Ò‰DàrùÊÊrx-==e),¬66VÏÎ.×ÒR41ÑHHÈ9kÆŒ~<¿ÕdCFFj6Œ ŠIOÿ*uÍ6‰ñ±´Ôž:õC‡‚'¿/_¾,.....ÎÈȰ°°puu•b&&\xAAÁùóçétº]MMMs‹ŠŠÂÃÃ߿߶±rrrÔÕÕ/óóó ¤§§÷äÉ“:::¶YxGí(Ò…BâñPZ[‹ÛQ.-,¬63ÓÌÎ.88˜%$d‰œ¥¬,7v¬uË»p-rjÕ]55…ÐÐ%Û¶M>v,ÆÍítyyÔ‡€t ÚÚÚÚÚÚÈÌÌlyÖØázzzÇ¿y󦩩é‘#GšëÌb±†††m EÑÊÊJÁË={ö 2äôéÓ¶¶¶¶¶¶ÇŽ›6mZ@@@Û„wÐŽB H‡‡ï3èé©0™ ……ÕææÿÚÑ´´¯".R€›ÛÀ´´¯ïÞŠ*€üﳋŠj¶‡þø>Þèh¯/_*œ'&ŠN! Ò½{w ýû÷‡††š˜˜())mݺàååµhÑ"¼'ƒÁ““KKKܹsÇÚÚšJ¥ššš†††P êÞ½;Fsppˆ‹‹^ÀÄ×3£££»u릩©éååÕÐÐ ¶üwñ³……P2™L¡P””sZq¹\---MMM.— ¸{÷®­­­œœœŽŽÎþýû|>ÿàÁƒ–––4mðàÁ¯^½jî¶,[¶ìÞ½{Í 8p @[»1ºé@-_…Èé±±±^^^Â}×®]+8766ÖÐÐðùóç555óçÏWWW×××_¿~=›Í;Ps÷¶}Á †a6~ü‘;oEE¥®Ã0ìÑ£·ººkttV‡…%®ãrùEEÕ::«Ÿ?ÿ,r"Š¢þ~~Q’Œrâăµéé_¥ÿP[Ëòô¼¨¯¿60ðÇo¿~N"""$ùgÌž=›N§fΜI§ÓOŸ> ¨¨¨xúô©šš—ËÅ0,,,¬gÏž(Š2 ™S§NŸ;wŽD"1ŒÓ§OkjjÞ¸q£¨¨èÞ½{úúú€ÏŸ?ã:àcÆŒÉÌÌLLL477ß±c‡ØF ÃjjjΞ=‹«'| HOO¯«««««+,,\±bÅ‚ 0}úô¯_¿fddØÙÙmܸ‘N§S(”… „……ÊÊÊ>,¬§®®.®!®­ðINNVVVnN¸àÒ0 ;p‘û |€a›Í&%%%øË:!=ÇŽûäɃáîî>räÈìì쌌Œ^½z n£ØšÞÛpqqqqqiõ ÓÐŽB Lž|ÌÏ/*&æŽÎj&³!3³DGgµŽÎê›7_ëè¬ÎÉ)Ã0ÌÞ~w`àƒ¦ç=ú¸[·Mõõ ­ŽÂãñ'O>æè¸W’ÎßCdd’©é†éÓƒJJjÚu Ÿ Éíèëׯ1 Ã3ñ þü™ÇãikkÇÆÆb6nܸýû÷cVUUE&“«««Q­««ãóù={ö¼pá‚@ìÅ‹›ÚÑŒŒ næææbU…÷ïß Þµ²²*..Æ?~lccÓÐÐðáÃÁçóŸ>}ŠëciiÙTO¬5;ÚT¸°õ;äv´°°€[M‘˹u‡H$¾}ûïyãÆ Ám;ä÷“†…ëºH#xü¨’’,€Ng©‰ðOêݬ,‹TÌz©‹K¿úú†þnu"‘pêÔÜòrÆŽÑÒ¾•úß¿¿¦ªŠ9jT`ll'Û¸ñc Ñh2™,r ‰Ó¦M»qãFEEELLŒ»»;@EE%...11Q__èСñññ!''ÇÆÆF ÓÚÚºé@ø••UAAA Í!0uL&ÓÓÓsáÂ…‚·òòòtttð ·£GÎÍÍ¥P(™™™ÎÎÎ}ûö½páÞ-??¿U=c™™™5'\¸§Ø„ÁZÜ ¥­­M¥RqËþ±ˆUUUÂ}¬¬¬¥¥¥|>_ •¹¹¹Èè›îí÷í(Ò™LârQEEY@m-‹B!ik+Q©”ÊJ†¦&-;»0p YJJ^ÓB::ÊÎνÏ{&É@ÚÚJþþSCC_>~üNêW!L·nÚ÷ï¯;¶÷ܹÁ[·Þ„5×¾ —›7oFFF2_­e±X(Š^»v­ªªjÑ¢E'N¬ªªÒÓÓÕx÷NÌg*0™™™ø‚js­"''7þüwïÞ ,‡ºººÀÊVWW'&&²X¬™3gúøø¼~ýúĉx7ccãVõ`vòäÉñãÇ7'\¸³Øpx<Ÿq6@9rä™3g„ñåø“––‘HÌÉi¬B˜­§§×Â@m»·mÚQ¤2™ÈåòÔÕi€Š ÀÄD]V–TTTcf¦™“S8ÐŒÃᥥ‰I`4þ´´¯&-š>½ß¤I¶k×^mïµT*ùÀ™û÷ÏO˜5ëdaau»÷+áèèÈãñvíÚ5gμA1cÆDEEÑét‡C&“åää.\èãã]RRòðáÃ76åíí•••œœ¼yófækkkqg­È±ŠŠŠuuu 9mÚ´M›6}ùò%##ÃÙÙùøñã ‡B¡°X¬íÛ·êêê–-[&¬ç¶mÛËËËKJJ Ÿ>}:uêÔÜÜ\|§XᚈHYYpéÒ%:~ìØ1±— P~Ïž=¡¡¡¾¾¾ééé;wî<{ö¬`U@™LvuuõòòÊÍÍ}ûöí–-[ÜÝÝ[Hì oG¾gQù•X´(dÙ²‹|>j`°6:ú5†a>>={ú­\êã1mÚx·~ýv:ôP¬„#V¯¾,ápµµõ}ûî˜??X*ʷʇEÇtë¶)**åÇŒØQHîÌ´š;^¶l™¬¬,NnffF¡P¬¬¬¢££1 ãp8»ví211QPPppp¸|ù2hâ 622RWWÿý÷ßY,–ØF쿾Cácð_&ŸÏWTTÌÍÍÅ_Òéô ¨¨¨¨©©-]º”ÉdbvøðaUUUƒ'NÌž=[SS“Çã}úˆÜ ꪪæÌ™£¦¦¦££³fÍüŽ57PÓ{ÛpŸ"5<=/.Z‚a˜µõÖsçžavüx¬……ïäÉÇNŠëÓg+ÞmåÊP—ãb%„„Ä›˜øTU1$ñéÓººk®^}% õ[‡ËåÅ®ss;õ o>’ÐŽJÂæÍ›ÝÜܾé‘‘—-4B¤Bî-ÜgH îATWW¨¬dŒŒÔêë9Õffšeeux\©ƒƒYJJ‡#&—‚‹K2™xõj’„#:9u›?È–-7òò*¤wÍB"V®yë–×—/•£FþùçÛ0h'…Ífçää„„„,Y²¤£uüì@; 4"'G©¯o¨©Ñþñj (VZZkl¬ÈÉ)88˜³Ù\±éýd¦OïúRòÌ|Û¶M20Põö¾ÌçK§@i«ØÚÆÄøL™b·paˆ—WxË™»,¯^½êׯßÂ… ‡ ö=r===%i„H…¹·ÐŽB ÈÊ’ñ’)jjòu##5|>J¡Éd"nGMM5´´”ÄF¿,püò¥ò¯¿>J8¨Œ éàÁ™ii_BBâ¥t­C¥’wïž¾4>þóÈ‘`棦 :´ªªjÏž=ßz"­(x©©©yêÔ)‘>b!R¡Cî-´£H#rr2¸UW§UV2òò2jjò€’’Z##5<; ÀÞÞ¤9;ja¡åà`vñâ ÉÇíÛרÛ{ôž=wß¿ÿ¡¹‡ ³Š‰Yß«—ÞŒÇaTL§ƒÉdúøøôéÓ‡F£õïßïÞ½xH«H· @; “£ˆÌG&&šRXX#ÈV:´Û«WÙ,–øzŸóæ Ž}ÿõk¥ØwŲfÍo˜.^|þ¯²ª©)œ;·ðäɹׯ§8;úðá‡rH›©««ëׯ_rrr@@@jjê¦M›ÂÃÃGÍç‹®²¢¬¬ìëëû•ýõviDV–"˜âþQ€©©…Bú§êKc… '§n ¼¤$ÑZ¤8cÇZkj*††¶^F€;æF§³¶m»ù}Ñ&N´yüx½ŠŠü¸qGŽ…e×~~víÚ¥¡¡ëüöî3®©« øÉ†$„‘„a„½( T€Hëb܈uáž8Q«Õ:p/p‹â^ˆp‚( [@ö”MÞ—7ÄBHÂPÏÿSrssÎÉ­?žžù¸¹Œ5êåË—éééÇz?–†(É Œ£ÔŒ×¥ÑÈååÕÈ8§–“S¢§§š–V€L}©«+s8ªOž|Z‹öôt8{6ºCùÑÔÔ÷ìñ<þåÕ«oeðc:HCCùâÅ9+Wݾý΄ A¹¹m¦Ÿ„z‚ààà5kÖ`0Þ‰äïï,4á –þqÝÖIT(*$$ÄØØXEEeÛ¶mÝñû~00ŽBP3"_SSßÔÄ¥RÉdë‹¶6­¶¶!;»DW—þí[]nnrs¿~† £€‰íÊË«oÞŒmë¡4ž:ÕqÙ²KYYÅíß-kHÚµ«WýrrJþîŠé±JKKóòòøËEXYY}üؼÀmÿþý7nܸ~ýúíÛ··nÝŠœº——'ð•¹sçfgg¿|ùòöíÛwïÞå%þ¼zõjTTÔ¶mÛ–.]*pà-ÔŒ£ÔŒHÄs¹Üššz þ4 ¶6Ë妥êèÐÈé€''ƒÄÄÜü|á§ú1™Jþiµo_8Wä9Ý­!Û`üüBºlŒ++ö½{‹†µòö>æë{º¸¸ª[šIFóæGwìØ¡¯¯ogg·iÓ&$£YkõõõçÎÛ½{·®®®¹¹y@@ïN___%%¥¿þú ãh»`… fD"ðí[•б[ÐÑ¡rsKéteeRròWäæ>}ô±Xtddr[¥ÍšÕ?11·­e½mÁã±ûöMzÿ>{÷îûÿ)ÉËã7m}íÚ¼÷ï³ûôÙÕÑÿ€:•’’’ššZLLŒÀõ˜˜kkkäµ8 OD$QAÎvo}Î-$Œ£ÔŒHľ}«¥Päðx,ÒUT$’H„oßê**jôôTyq”L&ôê¥%bh×ÂBÓÖVçСÇm†Úúõ#þý÷Þ«WÂ×1u kkíû÷ý½¼ú,_~ÉÓó<à¾Gñôô à_[UUèææ†¼'ቈ$*h4 5Câhuu=€Jm> ¡¡ øò¥D_Ÿd!Eôëg "ŽfÌpº?·[F|žžöšüý÷™î=lˆ@À®\ùgXؼœœÒ~ý¶Â¥¼=Çš5kòóó tçÎäää+W®ØÙÙ©««Ïž=¹AhÂ^–„Ð$*]ýK~ 0ŽBP³ÿ÷G›—ìò⨉‰:àË—==¯? pr2ÌË+ã¬ÜÜ̵´¨Ç?ëhKP(ÔÎãkküýÏ·w'ëÝ[ëöí“&9lÙrsÒ¤CÙÙ°cÚý(Ê›7olllüýý­¬¬V¯^=a„û÷ïäOOOgggwww77·åË—kkk;::2™LröîÝËb±lmm]]]]]]—/_Þå?ågã(5ã£T*™·…ÔÄ„‰F£rrJõõU¿~-/+û†\·´dS(rmí~`0è©SÏŸ‰pß!**¤£G§Þº'ÁȰÌÉËãׯqåŠ_ffÑ€GŽ<é®eP‰DÚ±cÇû÷﫪ªâããW®\)//ÏûÔÇÇ'==½  `Ïž=rrrX,öéÓ§àû“ •••O:UXX˜““³sçN999—ËÕÓÓCnà µÆQjöÿuFµàûþ¨ZS7%%__ŸHIi>‹E÷í«ÿäI’ˆ2'L°Ç`P!!Ñ´ÇÊŠ½råЯuïD)­­NDÄÒùó]6mºîêºãí[!ÉÌ!èã(5#° 9íF#óŽDÂç§O¹*òòø””–¡Ý~ý ##“EœLK&Æ·;vìiCƒ$¸éÓû¹¸˜Îšuª‡ì?Áá0¾¾ƒ""–Òh Æí^²äLÓÓÀd2]ÆQjÁKù¢¢BFŽª°ÙT ™Y„F£tuéS¤••µBs¨ñL›æôõkÙ­[q´…BíÚ5‡ÃÌšuªç ¥jkÓΛµkׄ[·â~ÿ}‹d? ê$0™L׃q‚ZðŽd0(yyeÈ4¢Ó#ø·¾´µil6UÄ)@CCyð`óÇ%œæ¤P䃂&¿xñyïÞpÉJè (ÊÃÃöþýÅVVšÓ§ŸX°àlé1CP׃q‚ZðR§1™Juu ¼.©¶6õÛ·úêê:­/ y÷‹¨)RÀŒNoÞ¤¿y#á„¢•{Õª¡Û·ß°»“©tü¸ÏáÃS=úôûï[‚ƒ£àÆèã(µà¥|a±”¼ãÚŒ˜p¿|)Õ×gdfÕÕµ@ïèh›Y^^#¢X[[Þ½µ$î’¦Mëçæfîçòõk™Ä…tww‹¨¨•ÞÞŽ«V…º¸ìè!«¢ ¨ËÀ8 A-ˆD<²ÎˆÉT|qÔÚZ€,ÙmllJM-à}eÀ#À£G‰¢Kž2Åñöí8‰ó¨ ;Jååñs朖lÉR§’“Ã-Zä±DUUaĈÿæÍ áí‚ ŸŒ£Ô‚7?*/WR"æä4wþ,-Ù€wï2tué šŠTAAî·ßt<ø ºäáÃ{Ñé Òl¥Pä÷îõ|ý:ýßïI\H§ÒÑ¡Ÿ=;ëÄ ŸçÏS7Ãm¦Ð/ÆQjÁ×0™JyyÍÝGmm …JLÌÅ㱚š*üq0hélj¢c‡™3gà©S‘¼m©°±ÑY¹rè¿ÿÞ»?AâB:›‹‹éýû‹ÝÝ-Ö®½:räÞ÷ï…’Þy¬œ(ÏÅ‹ù3¹J+£ºô3PP«¬lžéd±yÙF±X4‰DÈÈ(´^jäìl“‰ ÿ¶e»]»î?þlñb7‰[8c†Ó§Oys朾qc¾¡¡šÄåt*ÒÎã'L°[±âò!;'L°_¶ÌÉêÚþøãË—/óŸáA¢ñòäHÆQjA¡Èåä4ŸËd*¥§ò>RUU(((èë3ާ×ÓSÕÖ¦=xðAt•—ÇOêxäÈ“Y³É‰¹yóès||ŽÝºµB‘“¸œÎfk«sïÞ¢7b7l¸úfΜsç:þ7GNNnÔ¨Q] ñÀq]jA¡ÈóVÞª©)æä´, ÒÒ¢"g÷èë3>ÎØà1p q»S¤oïßCB¢¤i$€=|xjyyõ߇ôðÌ (jèP«Ç—-\èôhÀ€Àë׳fBÐÆQj¡  Ç;SžÅRâë ÕšÊʾéé1jjêòq:;›|øÓîr\%%âĉö>q” 8X,¥£G½>LìQ‡3´E^ïë;èéÓå66Ú³f;vbbnw7 ‚dÆQjÁße2•ª«ëJK›³»ôî­ ˆŽNÕ×W,5êÓGH懷³û0sfÿ¢¢ÊË—_KÙT[[U«†ÞŠˆø(eQ]CMMqÏÏóçgW ²sݺ«%%ð$ègã(µ Pä++kÁR-¤À›7Š<ƒAˆ£x<ÖÑQ_œ¡]&SiÔ(ë}ûJôÏôéN¶¾¾§32Ф,ªË8:êß½»hË–Ñ×®Å88lÚ¿ÿammCû_ƒ  ÆQjA¡È566UU5 àM‘R©d4•˜˜„-Ù8;›<{–$NT˜;wPZZÁ;ï¥oðÖ­l6ÕÇçr|ăAO˜`ÿâÅêU«†EX[¯;räI<\‚Äã(µPP S¤ r rüS¤$’oë‹@àìlR]]™Òn-Žª««™L¦6 ì^ÙÙ%ëÖ…I_ZWÂá0“&9DE­š:ÕqóæÈ¤¾l ‚„‚q‚Z(*¶ÄQÐ|CK¥ÓÉ_¿–ƒVY_ †¢‰ Kœ¡]€ŸŸsLLæ³gÉÒ·YG‡¾w廊“'ŸK_Z#‘‹¹ED,53SŸ5ëÔøñA0=8ôÃq‚Z((Èïâèw[_ttè••5HÖ—’’ªÖ'9;›„‡‹G{õb;8pöí“Íj[gg“uëF¬\y¹'Ÿs$‚–õÀÉ·n-@£Qþùï_‰ÿÒÝ‚ qÁ8 A-þßmY²Ë¿•ÅÄ„Åå‚OŸòôõíO2g IDAT¡S¤™™EIIyâÔåë;èñãOqqY2iù´iý&Mrðõ=ýãn)±´Ô<{vVx¸¿œnðàÆ; :A:õ0ŽBP 99‡©¨à øÝRKKM@ll&ƒ¡H¡ÈµÚµ²b«¨ÄÚ0ÀÈȈ¹ÿCµlØ0ÊÒRsÊ”#ÒáÛíŒYþuíÚßrr8w÷]ãÆèúz!¨C`… ïP(òeeÍãºjjŠüýQ--*àõë ‡#dŠƒA`,æÐ. …Z´hðõë± ²ÃÄá0‡OÅ`Ð>>Çù3¤þˆ¬­µNžœvöì¬oßjÝÝwÍ›òé“X½|êz0ŽBÐw”•‰ÅÅÍý9&S±¢¢†×=ÕÔT aO_Ÿ‘’"G¿~^VöMœºÜÝ-Œ™;wÞ•MÓPR"ž:5ýãÇÜ¥K/ʪÌnäädxýúüãÇ}>Î8pÛ_‰ŽþÜÝ‚ A0ŽBÐw”•I¼3ŒX,%Àw…"/'‡KO/âr¹zzB¶\\LÑhÔ;ñâÔ…B¡,p½s'>6V6³¤==Õ  É—.½>xð‘¬Êì^ÎÎ&7o.¸zÕ0zô¾Aƒ¶_¼øJʃ!H†`… ï(+“JJšã(rÿ)“©TSS÷åK©¡¡Zvv rr=?2™Ð¯Ÿá­[qbV‡tIwï¾/‹¶7ëßßhåÊ¡6\ûA—ï ek«sòä´k×þÖÔT™?ÿì€ÁÁQ55õÝÝ.‚q‚¾§¬Läûª¤D$ñüS¤ðáÃ5.—ÛzŠàînñøñ'Þh°hH—ôî]YvI³fõŸ8Ñþ‡^¾+”µµÖ‰>ø[Zj®XqÉÚzý–-7ù÷øBP׃q‚¾£¢Bâ??]SS…ÿôZ:€MHÈÑÔT!ñB·¸¸ºš655=|Øþ™õˆÎè’6le` 6}úñŸï8xccæ¾}^oß®Ÿ3gÀå˯mlÖÿõב§O“àqHP·€q‚¾£¤DäëØljVV1ï­††2àãÇ\4¥§ÇøôIHoOY™äà 'þÐ.¯K*Ûí’öèQﺺ†©Sý”gÁÓhd_ßAÏŸ¯üçŸñyyeãÆ6lϵkïàÔ)ÔÅ`… ïðÏ45U23‹ùßÖÕ5ÆÆf ÕÚÚŒñÇ–|ÿìøNê’2” 椦æOŸ~¼±ñç<ž@ÀŽ÷ÛÝ»‹®]›§¡¡ìçbm½nÆkBWAPg€q‚¾£¬L¬¨¨æEMM•¬¬–q]MM.—›•URZúÍÀ€ÑV2ļ®®áñãObVÚI]R€¶6íäÉéÏŸ§¬XqY¶%÷466:L~ÿ~ã’%î}ê×oKÿþûö…óV_CP'q‚¾£¬LjjâòŽb`³©ùù¼u¡ÈR.—Ÿm` –›[Æ;D®`c£-þÐ.ÀÝÝÂÄ„õï¿2î’zõbM>s&:(è‘Ì ïi(¹I“îß_|þülCCµmÛnÛÛoX¾üüìY²££¾Ä?¡-öÄ ŸaÃöLž|øòå¹D"^æUt£ .tw Ûرc%øœ… A4™?…'›­"Э¬¬¥RIïß#KvKËË«…–££C76fvhÕ.ÀÙÙÄÑQóæt:²2éÄ ŸÌÌb?¿à††ŸsS)u%G!H•ªPPÐGŽb@²jkÓÞ¿Ï64T´µdàînyëV\G#âò寯fݾý¾ÃM‡£zñâœÈÈϳfüYÏg€ .ã( ¢ÑÈü㺺ºª%%U¼íüêêÊX,šN§¼Ÿ­¡¡L&DL‘þñ‡E^^ÙÛ·ÛÊÒ«{ÈóÍ›ot^ÑÄ„<ýÑ£‹Ÿ‡ÇÒB4`… A4¹°°¥?ª£C¤¦ oq8 ‹¥L&’“¿VTÔèéµ¹d`dÄäpToßîØÐ.`ÅŠ?33‹ÎŸÑñæ‹ËÚZûØ1ï+WÞ®]{µój ŸŒ£$ˆJý.Žª«+ãp˜ôôBÞ6›ÚØÈår¹qqY††jB³¾ð lÖÑ)R€®.}Ü8»;îŠH¯úõ3Ü¿ßëøñg{ö<è¼Z~)))(JV¥¡øÈËË÷íÛ7&&FÊ2‘ž;w%Ì¥K—dØþ©ªªò÷÷·´´TPP°µµÝ¼ysCƒX™dûÌ%ã( ¢ÑŠ‹+y£ šÍ¦¦¥ðnÐÒ¢”³XJïÞeŠØBŠ5Ê:=½ðÍ›ŒŽ6cñâÁååÕÇŽ=íè;ÄÝÝbÇŽq·zÜ©A™›››››§¯¯?nÜ8™ŒÀ>)622û}ûö]ºt©ôå·+55•F£ñÞVTTØØØ¼zõ*00ðÍ›7Ë—/ qqqil~ÿו””º¦Í¢Á}/$ˆF#××7–•U+)‘+ººô´´–þ¨–õÉ“O½ziÅÄdNœhŸ—WV^^M¡È -ÍÄ„eh¨öÖÚZ«CÍ`0}|~ÿï¿pOO^K:øq¿T¬_F¡Èo×yAB§ÓÕÔÔjjjÛ¶mc0ªªÒ !/////¨¬¬D ç}´uëV) GSSSQQËF²€€:ŽÁ`ƒ633;~üø´iBvQóF£uM›EƒýQD£‘üC»ÚÚ4qÝœœR wï2 ™ÑC»C‡Z]»öN‚•±sçÂ`Ð{÷†wô‹T4gÎ@ÿ 7nÄvv]Ý…B;vÌØØ˜N§oݺõôéÓ:::ŠŠŠ«W¯Ì›7ÏÇǹ³²²’H$¾{÷pýúu 999]]ÝÓ§OšššöîÝkll¬  àààÁ?ºˆ 6†……ªªªÎ›7¯¶¶VèEðýȤˆQJ‡Çã‘·õõõþþþ CUUÕßß¿¾¾pãÆ^½z‰D&“‰D—ÆÆÆíÛ·(((ôíÛ÷Å QÓíüµ‹~Pm5 ´´tÊ”)4MCCcñâÅ555B½½=à‹ßÁÁÁkÖ¬A‚(‚D"ùûû }hü_ç/¿uíÈ 166VQQÙ¶m›¨ÒàBô½¯_Ë™ÌùQQ)¼+Ç?31YÉ{“Édοté“9?'§D_ipp¤ˆÓÒ ˜ÌùÏž%KИýûjk/þò¥D‚ïvHSSÓ’%ØìE‰]—Ì?^œ¿f€ &”——9r0vìØòòòƒ ?~L¥Rëëë¹\npp°©©iSSSee%@ ÊÍÍ=zô(‹­¬¬|iÿk@LLLEEEEEÅ—/_æÌ™3uêTÞ =ztfff\\\ïÞ½—-[V^^ŽÇã½½½³³³ƒƒƒùùù;wîäo'‹ÅâJ¼·~+úA m—Ëõôô4hÐçÏŸãââÌÌÌx¿Z |þ‹%%%€‚‚ÿRÏŸ?g0"ždë6·®ù!cÆŒ)))9|ø0 ¨¨Hô¿vÿ! €q‚544ª«/¸~=†wåÑ£Læü’’*ämII“9ÿÖ­8 …·nŹ»ï\½:Tt™ƒÿ³dÉ SSSoc³~áÂs|·£êë½½.{÷.£ ª“!ñãèÛ·o¹\n]]Àëää䆆55µððp.—ëîî¾uëV.—[\\ŒÃávìØQRRÒÔÔTQQÑØØhjjzâÄ ^±'OžlGãââxmÓÓÓzQtSù‘Éä>ð>522ÊÍÍE^ß¿ßÊʪ¶¶611±²²²±±ññãÇH{ Z·“÷Vtñ „6 ®®ƒÁÄÇÇ#CCCy¿Z |qâhTTFñ$ÊZ;òC"""/‚dqŽëB ­¤D,(hÙBŠl}áM‘*)‰ùùåzzª11™¢NÙE ÞëúõñÓ¨ñØÅ‹Ý.\x)zèX&°Xô“{÷Ö?>(66«³«ë 'ð€Á`FZXXøàÁOOO€²²rDDDtt´†††““ÓÓ§OÑhtjjª••¯L ‹Öéë7ëhdd”-âb[xô«ªªfΜéííÍû(==Éd"ël]\\ÒÒÒðx|RR’›››µµõ‰'Û²²²Úmg[D<(¡ øúõkcc#‡ÃAnÐÓÓø\a‹¤”””ÔÔÔZ/Eމ‰±¶¶F^‹óÐDÔŽôÂù/s0ŽBT*¹¸XÔÖ--jff‘•ûÝ»Lƒv¶¾†ïU^^ýäÉ' 3fŒžžj`à- ¾ÛQx<öäÉiööœÑ£÷FGî‚{+W®\¸pÁÑÑ­­®®njjºxñbqq±ÏСC‹‹‹ÕÕÕcc[&’Z…t•IIIÈŸò¶.¶‹H$N™2%!!о¯K]]]=vìXÿ·oßîß¿¹M[[»ÝvJ¦u ƒIMmÎÊ÷ùóguuuä5²‰åË—/B‹òôô à_[UUèææ†¼硉¨îô0ã( Á`(æå•óÞ"[_xG1´´¨EVV츸LÆ×¯å¼„b±”llt®]“d ƒö÷rçNüÛ·Þ<#søðGGƒI“ýj¡ô÷ßohhðòòB® P(WW×Ë—/———×ÕÕáp8"‘èíííïï–——wçÎeË–µ.êï¿ÿNIIyõêÕŠ+&MšÔÖŲ²2dRൠ…RQQ¬°Œ5jùòåqqqnnnûöí«­­­««ÃãñÕÕÕk×®TTTÌš5‹¿kÖ¬‘ÕƒjÝ7nܸy󿥥¥ÅÇǯZµÊÓÓSII pêÔ©òòò={öð—Àû-kÖ¬ÉÏÏ4hÐ;w’““¯\¹bgg§®®>{ölO’÷u„ÐÚeõcÛ×Ñ`úøù{yâ¿âåuÈÏ/˜÷vãÆëÎÎÛ‘GÏž%3™ó_¼ø,ºÌ£GŸ.¯©©—¬IãÇpqÙÞØØ$Ù×;ª®®aòäÃË^¿N!þü(¯ÕÖëY³fÉËË———óÎápðx¼‘‘QXX—Ë­«« ÐÑÑ!“ÉgΜ­æG9¢¥¥E£Ñüüüª««…^ä~?Y(0CÉ?™×ØØH¡PÒÒÒ·åååS§NUVV¦R©3f̨ªªâr¹;wîTQQÑÔÔÜ¿ÿ„ TUU¶oß®§§G"‘¢££Øó£¢”Ð{yyQ©T&“¹`ÁänܸQII‰Ãá„……!å×××;::’Éd^Õ•••‹-233#‰¦¦¦7nüöí[[O’ÿëümZ{[?¤-pÉÌÆ×]]wð_ ssû‡÷öôéH}ý¥õõzzKƒƒ#õõ—ž:õ\t™……lö¢«WßJÖ¤OŸr55ž=-Ù×%ð…R1ã¨8V¬X1qâÄ}ED@}­ë\gA2Ã`P¾~-ã¿¢§§š’’Ïýÿ’=­¬ì›••æë×éúúŒ¤¤6³¾ ¨TrÿþF—.½’¬Ij“&9lÞ|£¼¼F²: ‡Ã92ÕÞž3qbç1ýpjjjRSS;6}úôîn ô#q‚„PU¥Vò§[ÑÓcTUÕææ6W6› ÈÈ(²±Ñyý:]œ%»€1cl?þ”Ÿ_ÑîB-YâÞØÈýï¿®;  ¥vvº¿B(}ñâ…··wÿþý¥)‡B¡Ìœ9Sœ‹h?ÊCƒq‚„PS£45qù³§éë3))ÍNdoff‘µµvjj¦¦JRRn»Åººš‰„°°·’µJI‰¸p¡ë¡Cøûíl¼PêéÔ5 º‹““Sqqñ¦M›:úEÞVE„ªªjPPÀ=B/B¢ý( ÆQ‚ÁPäåµ í*)©T2/e7‹f±”22ŠlmµQ(Àåróó+JJªDK `ÿüÓòÒ¥×7쯿õôT7l¸.q Àã±L66fyy~ÿ¾]ô«q‚„PSS|ýZΙ"å½ÕÒ¢ed)*9Uä0Þv§HcÆØ¼Ÿ˜Ø~çU(,½~ýˆ;wÞ?~,ÉVT‰‘H„àà††jû~µÍ0?®NJ+ÖC²•õ0ŽBVQ‘Èßèë3xãºàÿG1lmu>~Ì¥Pä?|Èi·d;;]6›úFâ¶9:¸ºš­]{•ú¶ H„óçg;9wàç>Îþ§ÑCÒŠýô`… áÔÔ(ùùßõG9UÞ¸.€ÍVÉÈ(ØØhÇÄd©}üØ~/…BÙûòåפáY·nxzzapp”Ä%H‡Ãìßï5vìo³gŸ:{6º‹k‡:ª‡¤ûéÁ8 AÂ1Š­Çuóó+ÊÊšÏ-ÒÒ¢åæ–ÖÕ5ØØèÔÖ6Ðé bŽÖŽÑ;/¯ìÅ‹T‰Û¦­M›6­ß¶m·Ú‘•9 ½m›ÇÌ™ý/¾pà@D×þs+((øöí»S±Úʪ&4Xëün¼¯p¹Ü    …2pàÀ7n ×…–Ó:'Z»ù×Z·ü—ã( 'l )²d·y­¬–µ©‰›•UÌáÐUTH(úãÇ®°Ã¸ªYXhž?ÿRšæÍŸïJ `wî¼'M!’A¡P«V ]±â¯oÚt£ëðóyõêÕ”)SLMMËÊÊÚ¿ÀÕ«W£¢¢¶mÛ¶téÒââ⪪*__ßôôôU«Vy{{WUµü?ÖÑ£G7nܸk×®ÔÔÔ+V,X° ­r»víJKK{ýúuxxøÃ‡׬Y³gÏž;v&%%­\¹rÉ’%‰ÕÑÑY²dIZZšÔãÇã( Ç`PøØhjªÈÉáxS¤ZZ4@FF …êÕ‹]ZZUYY›]"Ná'Ú_¿S^^-qóÈdÂÒ¥î'O>g0¹3øúÚ²eÌW¬¸ÔÔÔþÿ=@­ÕÔÔœ>}ÚÎÎnæÌ™}úôIMMe2™b~×××WII鯿þ×ÕÕ!ÙRåää¦NZRR"//Ï»y÷îÝÛ¶m¯h?¿` RÂýâÕÒÒâOš–˜˜ØV9@XN4ñó¯}ýú5!!!;;»wïÞü⟌£$œºº2—ËÍÍý1‹¿ÇÉfS‘þ¨¥¥&™LPV&Š¿1tüøßÞ¾Íx#)ÂÁ3lX¯•+/×Ö6HSŽ4 Ž÷‰ŠJ™:õhEEýû°´´Œˆˆ ýôé“Á´iÓÞ¼Ü %"ùÝxŸúúú.Y²äÞ½{EEE>\·nˆ  ­s¢µ›­©©éÞ½{#GŽ´··çr¹ÏŸ??{ö,FëðCùAÉê˜|úÉU2™óŸ>ýÄñÎ÷,Ö‚òòjäíæÍ7܆¼7î@ÿþ[œ¶ŠY~cc“Íú€€0)Û™Ÿ_nd´bëÖ›R–#¥wï2,-W˜]ÜõµË0ßK·())Ù¹s'‡ÃIOL­Ó:ï·t`­ó»ñò¥466îÚµ‹Ãá(**º¹¹………Ñéô¶ÊiMtþ5.—{éÒ%{{ûÚÚÚÎ{J]æMƒ YjjjÒÕ]rîÜ þ‹éé…Læüׯӷ!!QzzK‘×ÿþ{ÏØx…¦æBñ3ŒnÛvËÜ|U]]ƒ”M=~ü›½())OÊr¤”—W:xð?&&+£¢Rº¸ê=Ž"ëë%LO+Úõë×cbbxo/]ºdee%ÃòëêêdXZ7‚yÓ H–P(‹¥ôåËwëo55UH$o‰,›M­ªªE´·ç”–~khhâ?óH´qã~+*ªzø0±ý[Eš<¹¹¹Æ²e¹bìºé< †bhè\[[ñãƒ._–ü á_Æb±Qr\\ܤI“Þ¾}ûíÛ·èèèÕ«WO›6M†åó/SúÁ8 AmRWWÎÉùn~Fª}üØœ"ÍV S¤½z± ‹çtÀÿjo¯{îœà®öŽB£Q›7~ù2MÊÀÒ#ñGNõòê3oÞ™þ¹Ó½qâY²dÉðáÃGŒA¥R}||¼½½ˆ|d? G!¨M­û£CCæ§OÍýQuue<‹d1Ãã±ÖÖZd²\‡6tzxØ>|˜XP aFR M//‡uë®J³'U&0ô† #=vï¾?{öén\ñ`±Ø7fffVWW'$$,^¼¸“:¾¿&G!¨MêêJýQ€±1“×ãÄ`Ðl¶Jzz!òÖÁS_ߨ¡%¸#Fô&‘gÎÈà¬Zÿ! MÿþÛ 'µ6i’éSÓ#"=<öUvws ¨Á8 AmRWWnÝ52R+.®âõ utè©©Í'ÚÛëUUÕÆÇb““Ãm%ͱõeeÒêÕÃŽyÒCR„öïotõª_NNÉС»?Îoÿ ôc‚q‚Ú¤®®üí[]iéwp±¼¡]]]:2® °¶ÖÂb1……ÅÅ8>~òä>99¥2É':nÜoÏŸ¦‡œ.dlÌ ‹ÇcGÚûæMFw7‚:Œ£Ô&uue€@—”F#ÓhdÞR#mmZZZ󸮜ÎÔ”èЩ¾>ÃÖVGVIÐ6m™YÜs2±°ÙÔk׿1GÞ+ýŠ*êàT3µ‰ÉTD¡P99¥¦¦êü׌˜¼H©«K//¯..®RQ!œMÞ¿Ïþø1·O=ñ+òòrX°àl^^™šš¢”mÖÐP^¸pp`à­!CÌõõR–&Šü¹s³öï¸xñùçÏS¶o+'×)Û$\\\:£Xè×ñþýû~ýúuô[0ŽBP›äåñ**¤Ö)\ŒŒ˜oß6RêèÐiiHut4øçŸ»/_¦y{ÿ.~EC‡Z­[vöì‹ \¥oöŒNaaï–.½xù²¯ˆãߺ …òõd` æç<|xÞ±cÞH__VìììÆߨØ#F³¡W¿~ýÆŽÛÑoÁ8 A¢°XB–ì1Ïž}ÑÔÄE£Q,–€MM-°¶Öôî­…Ãabb2;T =Ú:$$jÞ‡ñô´?s&Z†gÒ®Zõ§Š iéÒ‹²*P¶X,¥ÐP¿‰íýüBæÍ iÀ¡Œ£$І† ƒnGÍÌÔ‹Š*‘~oë ÿ§*4iRŸÊÊš«WßJ×êòòøÝ»'†‡è±>³~ýˆ æ<{–<`@`ddJw·‚:ÆQ‡Ã0™Š™™Bú£( ™"e2‘­/-S¤s¹Ü/>w´:ƒ2dˆÅÑ£O¤l6?[[)SW¯¾’Ÿ/mV™ÎÓ·¯Þƒþ¦¦êûW¯¾ÒCÎ5„ qÀ8 Aí`³©­ã¨‚‚›­‚ í¢Ñ(--ÿ]''CÀ±T7uªc|üÞ92±lÙd2aõêP–)s**¤ãÇ}V¬øãÔ©çû[@PÏã(µCèÖ€™YËR#ÿÖ--*ƒyú4I‚êììtÍÍ5Nœx&Yk…"“ ÿü3þÆØ;º‹@£Q¾¾ƒ®^WTTéì¼ýÔ©H˜ êù`… v°ÙB¶¾LMY|K¾[²‹Á 55•22ŠJJ:ø…gòä>×®ÅHŸÜ›Ÿ££þìÙ–.½ØÑ­]¯W/öÇKæÏwY½:tøðÿø,õ@0ŽBP;´´h_¾”´Îjf¦‘•U\Vö 4g}ùîÏ}ïÞÚ\.¬K:j”5‘ˆ?{VÆÙQ–,ÂfSÿþûŒô¹N;‡ñõtᜂ‚ò!Cv]¼øª»[Am‚q‚ÚÁfSëë[Ÿ²kn®Îårr::ôÊÊZþ¤……&+É.R€¼<~ôh›ààȆY<<»¿W\\VÏɪ&šîƒþ#Göž?ÿìøñA=¿' ýš`… v´µ…”ÁP¤RÉÈ©®.Àÿ‡ÞÄ„Y_ßþA²¾™3ûçå•ݸ#y»…14T[¼ØmûöÛ±±Y²-¹“H„-[ÆÜ½»¨¢¢ÚÉiëêÕW¾}«ëîFAÐw`… vÐhd‰ÐzÉ. W/6²°–ÉT”“Ãñ/520` +;Ó›GCCyð`ó  G6ºm³g´±Ñþûï355õ2/¼“˜™©_¿>Ó¦Ñ.¼4hÛ£G²9Í‚dÆQj_[K,-ÙHŠ4 ¥¥EåŸ"UUU`0($!""Q²JgÌpŠ‹Ëzù2U²¯·FíØ1.;»xÇŽ;²-¹S¡Ñ¨I“îß_¬¯Ïðô<4wnpë‘vê0ŽBPû8ÕÏŸó[_ïÕ‹™YŒ,ÊÕÑ¡ Là™šªS©$‰;O¶¶:½{k:ôX²¯‹ £C_³fxPPijg’,ƒêFl6õÔ©éÇ{ÇÆf9:n ¼UUUÛÝ‚~u0ŽBPûtu¿ËŒÆceÅær¹11YBï15Uohhzù2­²R¿õÓ¦õ»{7¾3Ö×LžÜgøð^³gŸþúµ\æ…w6WW³Ç—zœ;÷ÂÖ6`ß¾pxþÔ`… ö!F[oQQ!±ÙTdhW[›––VÈ¿ªÈÔT=?¿¼±±éùódÉêýóO+ƒrìØS‰[.–-$aþü3M9Þ Ñ(ÛÇ—Mœh¿}ûÁƒÿ¹v-æGü!ÐOÆQj‡C¯«k:!ge¥‰ÄQzUUmAA%ï#33õ††&]]ºÄC»X,zêTÇsç^tF²k E.(hrddJPб ¦5 E~Õª¡OŸ.·²bÏ{zРm0šB]ÆQjŸ®®*@èÐ.o©‘®. žÞr¶6D"°ÙÔÇ?I\õ¤I\.8sFÆg2 ¬¬Ø‹»ÞzóF–Çùv1MM•;Ç?y²ÜÂBÓ׉¦ï`4…º Œ£Ô>’²2)5UøR£‚‚ŠœœR55Eyy|ZZË\&26fÉËãÒÓ ?~”d÷ @Q‘8j”õÉ“Ï:é"_ßAöö?¿à=÷§¶6m÷î‰ÑÑ« æÍ;cm½îŸî §MAP§‚q‚Ä¢«KçÏŒÆcn®Á ß½Ë@¡PÚÚT>«¹¹z~~®pÿ~‚ÄUOŸî”•U,Yö˜v¡Ñ¨]»&”–~[»öjg”ßÅÔÕ•7lùðá’ÁƒÍöïèÛwóöí·e{R1 Àvw èÇÀáÐ…öGI$‚¾>#&&ë?,µµikkMLX.¼úãË{÷üüœ%«ZOOõÏ?-÷ì¹?l˜ …’¬X,¥]»&x{³³Ó7î7™—ßõtué[·z,Yâ¾nÝéÇÃÿûï¾³³ª½½Jw· êAäääÆÇã¥/ ÆQ‹ŽýÅ áG"XZjÆÆ6/5˜ 53Ó¨ªªµ´Ô¼téUAA® Yí󿹏¸ìOtv6‘¬Ñ6óó´téEcc¦……fgTÑõTTHø56rååBBJÿÒÝ-‚z2™²}Œ2ã(‰ËÐÙÖ˜ª6àõëtä´zþ”•I,–RBÂÓœœRÉÒzóŒm£¬L==&&sõêÐN­ê¨ÈÈÈÜÜÜÜÜܸ¸8}}ýqãÆõØEa©©©4÷¶¢¢ÂÆÆæÕ«WoÞ¼Y¾|yHHˆ‹‹Kc£ð\=ü_WRRZºtiW4Z"0ŽB¸ ÕÊË«¿~-ký‘²2‰Ã¡¿y“®§§úùs¾Àᮦ¦êññ_,,4¥<Ø@ `çÎu>qâ™Ðfȱ1kÏÏS§"ÏžîÔŠ ¡ÓéjjjjjjúúúÛ¶mKJJ*(²ö­'hjj***â½  Óéááánnn£FzùòezzúñãÇÛý:FÛºukW4Z"0ŽB¸ €OŸò„~jc£óúušžžjMMý—/ß»š›k$$|A£QîîׯK;çåÕGI‰ôHÊrÚåîn1wî +.¿{—ÙÙuu# uìØ1ccc:¾uëÖÓ§Oëèè(**®^½0oÞ<äÎÊÊJ"‘øîÝ;Àõë×-,,ääätuuOŸ> hjjÚ»w¯±±±‚‚‚ƒƒCDDÿP$22fhh¨ªª:oÞ¼ÚÚZ¡Á÷Ø"†4q8WTTDÞÖ××ûûû3 UUUÿúúú†††µkײÙl:>yòäÒÒæ„E¥¥¥S¦L¡Ñh‹/®©©AžCHHˆ±±±ŠŠÊ¶mÛx§õE1+²··¨©©!ß ^³f ƒáµŸD"ùûû }ü_çâ7¾ëtóVXú¡˜™­:tè‘ÐΜ‰âp–T0™ó#"ù?ºy3V]}AeeÍ“'Ÿ˜ÌùiiR6ãÀ]Ý%R–Ó®ÆÆ¦É“[[¯ë‚º:àüùóíÞ3a„òòò#GŽÆŽ[^^~ðàA@aaáãÇ©Tj}}=—Ë 655mjjª¬¬$AAA¹¹¹GÅb±•••TUU ÍÉɹy󦆆 99ù3‹¼puuMJJŠŽŽÖÓÓ[·nЋ\.·´´ôðáÃHóø_bbb******¾|ù2gΜ©S§ò~H``àèÑ£333ãââz÷î½lÙ²íÛ·›ššÆÅŽÿÞÎÎnñâÅÈžžžƒ úüùs\\œ™™R)`̘1%%%‡µuQÌŠx¿Ëå–”” ÿå?þœÁ`ˆx8Èmü¯Åo¼ôÿ6Äã(uÀèÑ{-:'ô£¤¤<&s~ll¦™ÙªÃ‡ó”ž^ÈdÎõ*µ¾¾ÑÔtå¾}áR6ãÛ·ZsóU7^—²qWÚÛo?þ@CCcT'[bÆÑ·oßr¹Üºº:×ÉÉÉ jjjááá\.×ÝÝ}ëÖ­\.·¸¸‡ÃíØ±£¤¤¤©©©¢¢¢±±ÑÔÔôĉ¼bOž<Ù:ŽÆÅÅ!Ÿž?^OOOèEÑMåG&“?|øÀûÔÈÈ(77y}ÿþ}+++CCÃÐÐPäʇ×uuu &>>¹ŠT ˆˆˆàÿím]³"qâhTTFñp+¼×j¼h2Œ£p\‚:ÀÐP­­q]==UeeÒë×ÍS¤ü±Ù*Š|||‹vq1½ySÚÌ-òòøY³?þ´¨¨Ó·¦(+“Žó~ý:}ýú°Î®«»(((p8œÀkƒ5jThhhaaáƒ<==ÊÊÊÑÑÑNNNOŸ>E£Ñ©©©VVV¼2-,,ZW¤¯¯¼022ÊÎÎq±-¼QUU5sæLoooÞGéééL&YÍëââ’–––‘‘Á+ÜØØxäÈ‘€¯_¿666r8亞ž¯R‹ÅÿÛÛº(fEü”””ÔÔÔZ¯.މ‰±¶¶ÿ9t´ñ]ÆQ굤¤<®°’(ÊÆFûÕ«4G0Ž¢P(SSVB€»»ELL–Àª¦Lq”—Ç9Ò¹ wÆÆ¬Ã‡§œ8ñìðáÇ]P]OãááqåÊ• .8::"£µÕÕÕMMM/^,..öññ:thqq±ººzllËÿ!%$YP†ô«IIIÈßý¶.¶‹H$N™2%!¡e'Ò±C¢lIIItt4‹ÅJOOG>‰‰Ù´i€Á``0˜ÔÔæ¤ Ÿ?VWWG^£ÑB"Bë‹bV$ÀÓÓ3 €unUUU`` ›››øÏ¡£ï0ŽBPªUTÔäå _+km­ýúu:‡£šœ,¸Í9ÕàädH&nß~/eKˆDüôéNÇŽ=íšTÕýû­Y3|ýú°{÷¤:JâGôûï¿744xyy!WP(”««ëåË—ËËËëêêp8‘Hôööö÷÷ ËËË»sçβeËZõ÷ß§¤¤¼zõjÅŠ“&MjëbYY2Y+ðZ…B©¨¨¨¬l“5jÔòåË322âââÜÜÜöíÛçååµråÊøøøøøø¹sçfddp8ܸqãæÍ›—––¿jÕ*¤“->1+Bðš·fÍšüüüAƒݹs'99ùÊ•+vvvêêê³gÏñpx_GHßøN!“ÑaúEW¶^FÄ™ÂdÎ?wî“9¿¼¼šÿ£sç^èèø××7r¹ÜÙ³O±GúÆ”—W¯Ø±ã¶ôE‰iùò‹zzK¾tYRâÍòzWm½ž5k–¼¼|yy9ï[çÏŸçp8x<ÞÈÈ(,,ŒËåÖÕÕèèèÉd‡3g΀Vó£GŽÑÒÒ¢Ñh~~~ÕÕÕB/r¿ŸYä ¾Ÿùkll¤P(iiiÈÛòòò©S§*++S©Ô3fTUUÕÔÔ,^¼˜Åb)**N˜0¡¤¤¹³¸¸ØËË‹J¥2™Ì  • ýíB/ŠYQ}}½££#™Læ5¸²²rÑ¢EfffD"ÑÔÔtãÆß¾}këáðÿ!ˆßøvÿ»ÃuFÔ=ÌÍWEý¨ªªVSsáÑ£O˜ÌùïÞeðŸÍdÎÿø1—ËåÞ¸£®¾ /¯LúÆlÛvËÄdeEEôE‰£¾¾qìØý½z­ÍÍ-횥$«¿•+V¬˜8qb‡¾Âÿ§¿õ[AÝòdGá¸.uŒ¡¡ZRÒW¡‰x++­¤¤<<›’òÝЮ‡‰Ï h,'‡»{W¤3f8566uÙ´%‹>rdª¢¢ü”)G««ëº¦ÒîUSS“ššzìØ±éÓ§ww[  ÆQêfRR›gû98p¢¢>ëèЖápµròòx''CéWí‰sçÚ¿ÿa—)¯  wèДôôBÿ Üžz" ½xñÂÆÆÆÛÛ»ÿþÒ”C¡PfΜ)ÎÅ_Ðþ`… ŽAú£m…NJJ¾¦&µõ‰öffêïßA^ÿñ‡eTTJqq•ôíñöþDÂ8ЉyIèë3žrýzÌæÍ7»¬ÒîâääT\\,tªh¼}UUÕ   {„^üýèÏÆQêdÉnn®ð%»¶¶:X,‡C Œë¾%»€AƒŒQ(Ôƒ¤o‘ˆ÷ós>vìinn©ô¥‰é÷ß žÑÇBPã(uŒ¾¾¨SvI$‚……FEEMjjAcãwIÇLMÕKJªrrJŠŠÄŒ/_~-“&MžÜ—ÁPüï¿2)ML®®f7ŽÚ°áÚ¥K²ù4¤Ì,ÖÓõp0ŽBPǨ¨X,%dÅPz™™Åuu YYÅü×MMY(Š×%9²wddJ~~…ôMÂá0ÿí‘QÔþݲó×_}gϰhѹ'O>ue½Ô£À8 AfjªžÓÖ§HL‘R(òšš*ïß7`WWS99ܲÉÃý²„ ‚~A0ŽBP‡ñÏt¶öÛo:8ZQQ¾õ©™™:/ÞÈËã]\L¯\y+“&a0è… _ºô:9YøžœN‚B¡ÇššªOz´³S¢B<ß¾ 9Ç*$$„ÃáÐéôÙ³g#7Í2&ô¢øµ@`… 31a¥§~û&|%‰D07× ñ­—욘°âã[ðÈ‘½ß¾ÍÈÌ”Í`ì°a½ŒŒ˜ÿüsW&¥‰@Àž8áC&Æ*)‘Á dH„W¯^M™2ÅÔÔ´¬LÈÿµ;vìÎ;7nÜxðàÁ† sçÎÍÎÎ~ùòåíÛ·ïÞ½ØÖÅÖbccutt–,Y’––Ö©?êGã(u˜™™zccSb¢ˆ]¤zÕÕuB—ìfe——7ÿïÿþFJJÄk×d3´‹F£,p½q#&1±«‡X)ù‹}¹\0f̾ÒR؃‘½šššÓ§OÛÙÙÍœ9³OŸ>©©©L&³õmÿþû¯¾¾¾Ý¦M›ÎŸ?___îܹݻwëêêš›› ½(´RggçwïÞ‰Ä~ýú 6ìÞ½{MMMBïüÅÁ8 A¦¥EUPûð¡Í¡]NYYuë!V33u.—Ë[£„ÃaÜÝ-d5´ pw·°µÕY½úЬ ŸŠ éܹYUUu“&ª¬¬íúüĵ"¾~-—U™Õ¯Ÿá™33ÃÃçÌ9çJ¡ŸŒ£$!SS–èÃðzõbWTÔÔÕ †¥F€±c+.®ŠˆH”aó||ú©¨¶o¿-Ã2;ÊÞžsúôôˆˆÓ¦¯«ƒ+x¡ŸŒ£$!SSQKv®®¦€ÖÑQ`©@SSÅÞžsáÂ+6@À.\8øÂ…—]|R {{NpðŒÈÈŸc0”B?%G!HBÆÆ¬¼¼2'Ṹ˜nߎ¸na¡‘™Y,ðEÛû÷d’Ù›¿L##æš5Ýp,?;;Ý#G¦>žâë x¡ŸŒ£$!ss €À-?‰ /{ù2]ຕ›Ëåò¿ †µÂã±aa2;Û€Á ·lñxò$éæMÁXÞÅœœ Oœðyø0ÑÛûhuµðs‰!èã(IˆF#³ÙÔ·o…lããÑÔ¤ff D:]AMMQ ‰ø?þ°íÐ.ÀÚZkÌ›µk¯v{ôê×Ï04tî»w™£Fí•m·‚ºW§¯œ† Ÿ˜••&ÿ!­õ꥕””÷òeš““!ÿuKKÁ)R€‡Çoûs…A.±U«†::n z´`« ‹•€¥¥æ•+~ãǵ÷ܹYjjŠ]Pixx¸è³ô HJ0ŽBä,-Ù¢÷hZX¨_º„~òä“@µ°Ðl}ÞPŸ>--êå˯W­*ÃFÒé óæ9ÿóÏ][ e–,}}ÆÕ«~ãÇñß¹s³´µ;÷9MMÍC‡ujÐ ƒÁ´{°°˜à¸.IÎÊŠŸ_‘“ÓfwGOÑØØôðaë%»YY‚KP(ÔèÑ6/¾’ùÁ3fôg±”6mº.Ûb%£©©rõª™L9ò?¹çd"33S&Ö@?Ÿ†††¾}ûÊ䟌£$9 -bh—ÃQ$%}8ÁÒ’ „­Q;Ö¶°°òÉ“O²m'‡Y»vxXØ»¨¨Ï²-Y2tºÂùó³ Å $$ˆÚ;A=Œ£$9‰ §§*"Ž2™ŠD"QQ)ü×i42‹¥Äª‚ͦÚÙéÊ|µÀÅÅtÐ ã5k®46öˆSú¨TòÅ‹s ÔFŽü¯u‚~ 0ŽBT¬¬Ø11mf6F¡P]UU1"â£ÀGB—F¶¾?¡¼¼FÆ `õêaIIy/Ê>HKFAAîìÙY£FY{yÞ·/¼»›A‚q‚¤biÉŽ‹Ë‘ LOO•L&Ü¿Ÿ Ðl}ªbĈÞX,úÂ…—2oªÚÔ©Ž7^qvDÃ`Ð[·z¬_?b󿛫W_yÖ Œ£$++Íòòš´4Á|Ý<Žjuu]ié·wï¾Ûija¡™]RXX)p?‰D9²÷éÓ‘\Ùe$åYºÔL–[³æªÌK–Æ´iývïžxêÔóiÓŽwû>Wê(G!H*¦¦êxxðÿº¥¥&@àT#ÄäÉ}““¿¾z•&óÖÊAÎþÆ IDATËã7o}ùòë§O“d^¸4ÆŒ±9vÌûéÓ¤‰––~ëîæ@PÀ8 ARÁá0&&,S¤½¡¡ÉÆFçþýï⨊ ICC96VH61aYY±ƒƒ£dß\4vw·XºôbmmÏ:5~Ð “Ðйéé…îî»’’òº»9$.G!HZ¢O5ÒÓc`þÇÞÇC¹ý?3ccß÷-û’]¨,%¥½BJ{ZÜ ¥ºÅUŠêÖ­Û¦Ò†²”h¹mD )‘ÐfW„”eŒ,ÃÌï§ß|çšÅ03–îyÿõÌ™3ç|æáåã<ÏyÎÁ UT$Þ¿ÿRSÓLû–‰‰*³åy/¶½u«€G#³ððMMÄcÇò¢qNŒ«œ–¤¤$>mڟׯ¿îp ˆ-0B§LLT‹‹k˜ídÂÏϧ¢"‰F£ñx\Ÿ<Œ•N5Ì›gŽÃñ]»Æ“\"''àrüxúöII _½ê·r¥ƒ¿ÿ•ððÛpæ4òÁ< Aœ25Uíêêùø‘iNÒÕ•¯¬lœ8Q'=ý_—vU¾|iùúµþ#x<ÎÕÕ‚G³Ë—Ûéé)lÛ–Ä£ö9ÁLJ޹sÖ±c^ÑÑO–.=Ë‹G€ ˆ‹`… NiiÉ ñ3¼Ó‰ÐÑ‘/)©Ÿ2ÅàéÓÚù¨&&*(ª¨ˆñtÉ’ñ<šmÀ`и¿zUÅ‹5¸bÁËÔTÿêgÎpàîÂ…'>|€wL¡áó(q‡••‰ÔËì!ùŽŽîÏŸ›õðxÜÝ»ÿù+3ûÂÙÙPUUòÒ¥,.Güon½½½{öÜâi/Ü‚Åb\îÞÝÒÝÝ3uê¡íÛ¯55”Íà ÿ˜G!ˆ;TU¥ääD™Ý"ÕÑ‘C¡P%%õüü|“&éß½û¿ù±ÆÆ* ­´#Ô>ÐhÔÒ¥¯^ÍikãáÊ>’’B¡¡ó®^}‘™9jžÔ40P¼sgstôòÇ?ŽöçŸ÷FÚâûÐÌ£Ä5––ÌVcâWT/-mLŸ>öùó2êøÉØX…B±’zyYS(àÚ5Þ®=äêjáà »cÇõ?FÓ& ÎΆééA~~“NžÌpv>xûö8›J0B×XYi¼zUÅì82e0eŠ!ƒ~øð烤¢¢êêÒ¬o‘ŠŠ .\hyîÜS^¯Û~ð {Sñ?RyÚ × â\ž=Ûna¡îçwyÚ´?©§‚x æQâKKõææöòrÆ‚ttä‘'G……ù'NÔ¾{·ˆúÖØ±ýÜ",_nWUõ×]•”$öŒ‰É¾u«€§ñ‚‚‚ø‘#žÛÔÕ¥}}£gÏ>š]6ÜAA¿>˜G!ˆkÆŽUÄ1»Eª­-WZÚ€ŒV§O7ÎÌü@$v!oYX¨±ÈR?ng§sþ<€A̘aìînµ}û5f«C »¬¬,~~~ÚÚrgÏ.ûúõRVÖÃiÓ|˜Uƒ 6mݺ•õ/$ßÐüÞCЋ11Qyù²rÑ"kúwutäÚÛ»jk[”•%\\Æ'=zô~ÎS€¹¹Zss{uõwuuií¯Xaçë]VöUKK–Wß@xø‚ÜܪM›®\¹²…Bñ´¯A¨­­íîîNLLì·&™LA£G\üÐ(røð᪪*Öu`… n²´T§½`KKGGPRR¯¬,!))de¥q÷n!’GŒ”±XLAÁ'ÖyÔÉÉ@MMêÂ…gáᮼžJHˆÿèQOW×ã—.eûúNài_ƒæææ6Ü!@¿¾¤¤¤~ëÀëºÄMVVß¿éß”“+)i@^NŸnœ–öyNƒŸŸÏÀ@1?¿šuãh4ÊÇgüµk¹C°µµ¥¥†¿¿óž=7ËÊàÞŸÄ Ì£ÄM¶¶Z *+‹ñômm¹²²ŸytæLã?º© çš™©¾~ÝOøøŒG£Ñ/>ãVÀ,lÚ4ÕÀ@qýú¸[±ó(q“°0ÿرÊÙÙ¥ ßÕÕ•§nö¢  nl¬L½lf¦V\\ÛoÆæ_ºtü¹s;;I\ ›!>>ôñã‹++yÀë¾ hô‚y‚¸lüxmfãQ}}…ê¨ór§M3JK{‹¬´nf¦ÖÕÕóîÝ—~Û_¹ÒHìJJâíš 55©ßŸsâDz¿×œ!è? æQâ² ´ÊË¿Ö×3XçOWW¡½½‹ºá×Ì™&ß¾Ÿ?/hjʈ‰áÙIWÒÒÂnnV'O>š­N||lœ üü.Š%ì‡LYYg2Ó>e!((8a„‚ž?¿KÛ©ººú’%K9Ú !>>žás#Cð]¨¸ûsaÌ£ÄeVVX,æùórú·tuåQ(umm¹±c•¯_Ï P(vn‘Ö­›\SÓÌlb0w¡P¨¿ÿöÆáøÖ¯åõjJÿeÙÙÙuuuuuu………ÚÚÚ\_ݰ¢¢BZú_‘Nkjj.\¸@ ÌÍÍ[ZZØÿxsçÎE¾Bvv6 îÿrë+ô˜¸¸ø¶mÛxÚ=˜G!ˆË„„øMLT³²Ü"æWR§Þ"Ì›gþÏ?…ÈÍNssµ×¯?±Ó…ššÔŒÆ'O>âV̬ ñŸ9³4;»lÈzü’‘‘‘—————×ÖÖ>pà@II ‡£Czd2ùû÷ïô*))Mš4éÆcÆŒ9räûïCPPù 222ùÿ‡Åb¹õú LZZ:""‚§Ýуy‚¸oÂ-f+Òéé)ÐæÑ¹sÍÚÛ»22>ÌÌT+*Ù¼|ºnÝä‚‚OÌnÄr¾¾â®]søçŋСé‘s(êüùóúúú222111bbb»víøûû¯X±©I$ñxüëׯ·nÝ2663fLLL €L&?~\___DDÄÖÖ6##ƒöÊ!r!155UWWWVVÖßß¿««‹a!ø÷UGW ±X,‡C^’H¤   999YYÙ   ‰Ä¬ý––___iiieeåÀÀÀÎÎN¤fzzºªªª¶¶6@^^žÙéZ»ví;w—·oß633Ããñ Hf²±±¡ý8}fhc¸xñ"Ã3€B¡âââôõõ%%%8èéé QUU•‘‘Y²d u Ì:0Ú6éÏÃŽ¸€A·=}úQAaÓçÏMôoíÝ{kÊ”ƒ´%óçÿ½zõE …ÒØØ¦ °)3󛽸¹ðöŽâ}*,,477fÖ¾···““Syyyaa¡‘‘5’éÓ§?zô¹OI{~JKKiÏXnn®¸¸8…B!8nùòå555±±±€¯_¿R¿2³ ÔvhkR_ÒÇ@[ °páÂæææ³gϾÿ~ðàACCâ¢"kkëÀÀ@v£=¦? ;bý[äæææææÆºÌ£Ä}Ýjj‰‰/éßJJÊUS $‘z©%—.e©« eܸ°Ã‡ï³ÙKfæ…MEE5\‰™mm&„{yîí%Y§ôØÏ£ùùù ¥»»»ÏqiiiOO¼¼|zz:…B™1cFDD…BijjÂb±‡jnn&“Émmm½½½†††/^¤6{éÒ%úE£Ñ¦¦¦Ô6é;B.™ôôôjjjX2CýƒÞÞÞ¾fÍšåË—SߪªªRPP@æ¾:;;WVV2l¿¡¡¡··WSS)ÔÒÒ¢vª§§ÇÎé*--E>ŽÃáJJJ\\\,,,.^¼H_³ß ôèc üûEEE@󪮮¦~A}}ýùóç¨_g£OGœƒy‚x‚Ù-Rmm9 M² ”²³ÓIIɘ™©èIM?¿I©©ùÔi†€±±ÊîÝs¼;Šn”2ãæævãÆÄÄĉ'"Wk;::ÈdrRRRSSÓŠ+fÏžÝÔÔ¤¤¤ôæÍê§Þ¾e°³)2 ””” ¦™ö Çûúú¾}û–šf¤¥¥©Y¶¹¹9''‡aûrrr ¦¢âçÏ¥¼¼\II 9f'gP(”S§NÍœ99îîîAAAùùù'Ož¤¯Üoz´1ôôôjkki+ ÑÿÊGŠŠŠÔâ ÂÃÃÔ/‹³Ñ§#ÎÁ< A<1~¼öçÏMŸ?7õ)çççSW—þø±Ž¶pÞ<ó'OJššÚÍÍÕ¾'~úÄjV$­™3MäåÅΜÉäJÌlZ¶lâ¤Iúë×Ç46¶ e¿\ggg×ÓÓæãピ P¨©S§^¿~@ twwc±X<¿|ùò   ÔÔÔúúú{÷îÓ7õÛo¿•••åææîØ±cñâÅÌ [[[‘›µ}Žûmkk#®Òìêêº}ûöêêêÂÂB—'N0l‹ÅzxxøûûWVVÿþûïÈ »j³€ÆÆÆúúúÚÚÚÇÏŸ?¿²²rË–-€®®®îîn×ÑÑhkk£ý8‹ ¬‰‹‹._¾L Ž;Æ¢¦ÏÎ;‹‹‹‹‹‹7lØP]]ÍN`Tlž î`}Ù‚ Áéê"ihÅÇ¿ kåÊ «V] -ikë3fëåËYݪª))ùìwtåÊs5µÀ/_š9 x@ˆÄNGLjY³Žtu‘†²_û÷G©Ã8fÇk×®$´kjjâp8==½ÔÔT …ÒÝݦ¡¡!,,lkk{åÊ@wôܹsjjjÒÒÒ7nìèè`XHaywöF]oo¯¨¨hee%ò’@ ,[¶LBBBJJjõêÕíííÌÚojjòññ‘’’RPPؼy35¤‰4qâDaaaj§T***ÞÞÞ Ô>,))©¢¢ròäIOOOYYÙ>§¯@ý,Ãû£Ô—{÷î×ÔÔLMMexãÎÎÎÀÀ@EEE111OOÏææfv£í‹þl°øM`†û£( ·õ… áî~R^^ìØ±¾ÿÿùç½ÔÔ×Ožl§-\³æÒ÷ïÄk×Ö;;²³ÓÞ½{.›½H½ööû'OÖ_À¸ÙSYÙ8}ú‘©S é¿ ¯%&&rk™‚;wVUUÅÅűÿ‘²²2mmmjï}^²(ä"^·Q¹»»Xov ¯ëB¯ØØh2\ÕHGG¾ªê²cÕ¼yæ99åõõ­ææjyy¸EŠÅb6nœ—SWÇt%^ÐЉŠZzãFþùóO‡²_néì쬨¨8þüªU«†;htƒy‚xÅÎN§¶¶¹¢¢ïª4zz ==dêj''}aa›7 ¬¬4Þ¼ùÜÝÝØææf%//vüøPÏ¡upÐݺuzhhÊ-ÁE/^¼°´´\¾|¹££#'íˆŠŠ®Y³†B.âuûЀÀ< A¼bn®&.ŽOO×§\CC‡ã£² Àáø¦M3ºuëµ……ZwwOQQ-`‹Ù¸Ñi臤€ œfÌ0YµêBu5»s£F‡¦¦&dè€PCDÈÊÊž>}ºO†…\Äëö¡y‚xƒAÛÛëdf~èSÎLJÖÒ’¥]áêj‘—WÝÛK–’ÎË«P_îîã†eHŠB¡þúËSEErÅŠó?~tqï£Q{{{PP‰‰‰ˆˆˆ••Õ¾}û‡@úÅ£L8lvXöWi`… rtÔ{þ¼œ~Ïí>«ì"ìíuTU¥âã_š›«åçW ¨#,³aÃð I°ÑÑËþþqpæ kmmm–––¹¹¹‘‘‘yyyÛ·o‹‹svvîíe¼û°ïd±æQâ!GG½®®ú% tuåû\× P¨ ,’’rMMU_½ªh_Ã3$(+K=êuï^Ñ©SCßû(&##“žžîâ⢣£ãêêúòå˪ªª .0¬?ì;™@ì€y‚xH^^LWWžþÒ®žžBMMs[[gŸrqß¾ÑhÔ—/-Yã0y²þï¿ÏÙ·ïö­[C·ió¨»{÷n C- Še¸… ×w2illüñƒÁ†Bqqqššš222~~~H†]0,d¿—_Ì£Ä[“&éÑçQ]]y …RRÒЧ\UUÊÆfÌëן0ô€ž~A ã°v­ãÊ•ö6Ä>{V2,Œp---õõõ´Kõ"LMM?|øùròäÉÛ·oߺuëîݻȀõõ}olذ¡¦¦æåË—wïÞ½ÿ~dd$Rž’’òüùólÛ¶­©é_kiåææúúú¶¶¶ÒÇvþüù{÷îݾ};--mÏž=̺`ÖooÞ¼ÑÐÐØºu+u)à_ëe âГ'6ÕÔükµÞ^²–Ö¶+WžÓסªààš2ˆîΟª¡T_ß2Èp9ÓÛK^±â¼®nð»w_x× ›ë4ÍÍÍ€ÆÆÆ>åÏŸ?GVÐLöAJ·“IGGÇåË—ÇgffÕÖÖwÏ;ú~544vÁb?ú/[[[¢¬¬<{öìû÷ï÷ööÒ×à~/4ü¬­Çàñ¸'O>Ò¢Ñ(==…·o¿Ðן=Û”ŸŸOLLpãQ€——””ðáÃ.gÐhÔñ㋵µå}}ÏöÕw¹N\\\^^Ù€“VAA……rÌÎ1ìïd’––¦¦¦–žžþ÷ßçåå­^½ZXX˜a›´ýÖÕÕ1ì‚E¿ôCCC+**|||öìÙ£¯¯ÿùógf•G;˜G!ˆ·p8>[[ÍÌÌ}Ê ß¿gGñxÜÌ™&55Í……[ÁÏÏ<ãÊ•úùÀCC@{éÒJ íãs> Ó‡··wXXíìÜöööÈÈHä%;[İ¿“‰ŒŒŒAvvvVVVK «»æ´ýª©©1ì‚E¿Ì444¼}û¶¦¦ÆÜÜ\PPuåÑ æQâ9GG½'OJzzÈ´…zz ïÞõ²‹ððWW×ÒÝÝS\<€Õ¨æÏ·Ð×Wˆˆ¸3˜X¹ARRèòåUÕÕß×®½ÔÛKîÿÿ»wïþúõ«““Ó½{÷JKKoܸamm­¤¤äçç‡T`¸oÌ w2111ÉÈÈHNNþøñ£ŽŽÎÊ•+óòòÖ  öëëë˰ öû%“É<˜?¾ …BÉÊʺzõ*õž_Ð\a† ÿ´²²…M¯^UÒæä”+(lª­e°O ™L¶µÝ£¡tæLæàzLO§ °éåËŠÁ}œ+ž?/SS ܵ+™ë-Òû£"‘`dd„Çã ÷îÝûãÇ “}c¸¸“IssóáÇ555«ªªhË‘fãããÕÕÕeeeººº˜uÁz?ªk×®ÙØØÄÅÅ!Mjp¿)lm÷.\hàB-!:õõw\º´rÊúúGŽ<øë¯Ó¦9ã;¸ÝÝOvw÷¦¤lÜǹ".îyPPbx¸ë²ev\l–‹û½ŒC³… ™L&“É|||<í…D"±³sø¨÷{ ‘ÂÁA·ÏÓ/¢¢JJâ o‘-×ÓCædý÷;fåæV>|øvÐ-pÎÛÛvË–i»vݸ~ýÕ0†Q¡Ñh^'Q@3Ñé?æQ ŽŽzŸ››Ûi õõß½cœGÄŒ”š›Ûëë<íÇSSÕéÓÇîÙs³Ï}Ù!èâç7yÓ¦«7o¾Æ0F>¸…Ëèó( …ñãµQ(Ðg|i` øþ=ã©F€Å‹Ç=z?èNwì˜UUõmØÇ‚;vÌôö¶Ù¸1Ž~ëˆ ná2zÁ< ACATTÀÊJ£ÏUV}}…ŠŠ¯}6ô¦Z¸ÐƒA%$¼t§cÆÈxxXGFþC¿PþPB¡Pûö-œ9ÓdÕª‹ôK CÐhó( ‘éÓ>|K{•U__±§‡\RÂøAOAAœ¶¶|AA ‰Äx3vNkmí¸páÙ [à 4uô¨—ÎÒ¥g‹Š˜>¼A£Ì£4D\\ƶ´ü ## €ev‹°`%‰Ôsï^Ñ ;•“[±ÂîØ±´––a^7‹Åœ;·ÌÜ\ÝË+ª¬ìëðA\ó( ee }}…û÷ÿ—1´Žƒ Ô¨fÎ4p¸™Ÿß$ …2v4Ãb1ÑÑËÆŒ‘ñð8USÓ<Üá@wÀ< ACgÚ´±}—úú ,Æ£êêÒbb‚oÞ|®¨ht§B[·N?}:£¼|øG‚‚¸èèåx<ÎÛ;êëW¸/ô+€y‚†Î´iF55Í´ÏŒ²xôak«‰ÃñÅÆfsÒïÒ¥´´äBCS8i„[¤¥…oÜØÈLJž5ëȧOßѲ' ‚x/))‰v¿X†àzF4t(Š¥e˜í¦MS‘’gÏJÜÝO½~ý‡œœ(Ü>yðà?¸üüP~þÁ?AŸ•Uææv"&f•“ƒå“†Þ÷ïDw÷“BçµkëÕÔ¤ôÙÎÎÎþù‡vµwâ ‹1cư¨ó( ©àà¤7o>ß½»yÙÔÔndôû•+kõÖÏË«ž=û/>>ôŸ.rs³â¤ëÕ«/×ffnÃáx¾¢ ;¾'º»Ÿ":’’Ö©«ÿº‹˜C¿:x]‚†Ô´ic kêê~nb%))$''ÊâÒ®±±²  ÎÐPéòå,» ÷õ+!:ú)‡íp‹””pròziiá… OTU}îp h`… !5a‚–îÁƒÿ-È ¯¯ÈbÊ.‹11Q‘”ÎË«æðÉKEEq?¿IGŽÜoh pÒ‰‰áüdeEçÍ;Æì9Zá`… !…Ãñ9:ê=xPL-10ègª‘••Fuõ7MMÙ˜ŽfÖ¯w’Æ­I鉊 ÆÇ¯UR’ps;9\{C'`… ¡6mšQVVY[['òROO¡´´Å¢EVV••ß,°¸q#Ÿ@èä¤kìï¿ÏNJÊÍϯæ¤îŒ‰Y-++êåUZÚ0Üá@ÐÀÀ< ACÍÉÉ€L&S·QÓ×W ‘zY<Üie¥ŽB55i …Âù¢ó³g›ÚÚjîØqLAs %%…ýääDçÍû;/oåxêÌ£4ÔÄÅñÖÖcîßÿyiWGG‹Å¼}[ˬ¾˜^KKîíÛÚY³Lbc³9Ÿc¿wï‚wïj‡}˜>$$„RR6N˜ µ`Áñ[· †;bÌ£4 ¦N5JO¬YÅbtuå‹‹™æQÀ¸q/_V®];éÇúŒŒ,j²CWWÞÓÓ&"â"±‹Ã¦¸ ‡ã;ujÉ¢EãÖ­‹¹|™Ó›Á44`… aàìlØÚúãåËŸkÖ*±¬¬4 ?khÈØ\3õ IDATÙéœ>ÉyÁÁ3º»{ø‡ó¦¸ ƒAGD¸ÏN ¿=Üá@Pÿ`… a ®.md¤tóæk䥑‘ëñ¨••FwwÏ›7ŸV¯vxö¬„uÒe‡„„О=óÏŸúêU%‡MñÂúõNGŽxFEelÙO»Ó@0BÐð˜;×ìöí7H’04TjiùQ[Ët uui99ÑÜÜÊI“ôttäÏœyÌyóæ™;9lÝšÄÉþ¦¼ãá1îìÙe))ù«W_Þ}È!ˆ5˜G!hxÌžmÚÜü#;»`h¨„B¡XI-,Ô_¾¬D¡P«W;¤¤äSWDâDxø‚OŸ¾GEerÞ/L›ftéÒÊgÏJ–-‹&:†;b æQªªR&&*7oDDÔÔ¤ú½´ûêU…BY¸ÐRBñ"§Ë”•%6mšzøðý»,ŸÎõë>~¬Ÿ1ã|´™`… a3{¶é;…ÈeUCC¥wïXåQKKõææöŠŠFŽÏÇgüåËÙíí\˜m»ví$MMÙ  „»eÅØ±ÊééAJJS§JJÊîp ¨/˜G!hØÌkF t<{†\ÚUd=56VÁãqÏŸ—|}'vu‘¹TøøÐ¸?^~ãF>ç­ñˆ„„Plìj77«M›®:toD­ A0BаQT77WCfí*ÕÔ4·¶þ`V‹Å˜›«¿xQ’vuµˆŠÊìíåÂ\V33UŸñ»wßhjjç¼5Áb1¸GD,üûï´E‹N54´wDôÌ£4œæÌ1½{·¨»»gìXe …òö-«ë­­Çdg—!Ç~~“jjš>|Ë¢>ûv옅Ãñüç5}|Ƨ¥57ÿppˆHM}=Üá@0BÐðš3ÇŒHì|üø£¼¼˜´´0ëCml4ëêZ>nhjÊ::êqkª­ˆˆ@hè¼øøÈEæ‘L[[.5ÕÖ,ÓuëbBCSº»{†;"è¿æQNrr¢VVÈr²J¬7P³°PÃáørrÊ‘—kÖ8¾xQÁ­[æÌ1µ³ÓÙµ+yäg&<wèGTÔÒ„„Ü)S"÷Œ!h¸À< AÃlÎÓ{÷ŠººzŒŒ”XïÔ- €51QAn‘&NÔÖÕ•?þ)·"9pÀ­¶¶ùÀ»Üj§fÍ2ÉÉÙic£¹pብKÏÕ×Ã;¦Ðð€y‚†ÙÌ™¦¤Ì̆†J¥¥ ¬‡ƒ66šÔñ( …Z³ÆñæÍן>}çJ$ªªR{ö¸ž>‘•UÆ•yML à€ûÅ‹+Þ¾­uv>”˜˜;bŸÞ~a0BÐ0“•±±sóæk##%©·¤„ÕjÖÖc**ÈK77+©¿þzÈ­`<<ÆMŸn¼yóê6ã#Ÿ³³affð¼yæñ³gQ[”Cÿ0BÐð›=ÛìÁƒ·ŠŠâ‚‚¸~7~Á`ÐÔb0ôºu“®_…L>⊈ˆ…]]=!!)Üjp óïÙ3ÿÉ“`%%‰Y³þZºô\u5wÆèÔ/¼ Aî©©ÝÔt÷©SKNÊ03SÛ³g>‹ÊÓ¦ýie¥±w¯+ò’Dê0!|ʃ}ûr+žû÷‹—-‹>wnÙŒÆÜjsȤ¥½ Šml$êè”`0#q ~hDÑ××?vì'-À< A#‚»ûIIIaqqÁ’’†ää ,j†„¤de•¦¥QK.\xúÇ7sr~——ãV<6Ä>~ü1#c›´´0·Ú2 ºç䔯9Ü@#ÝçÏŸsrr8̃0BЈpíÚ«€€øíÛg9òàÇ}(ŠYÍþ)\½úbqñ^qq±®ic3†ú)Ç­\épñâ3+ÝBHÈ\))á-[âá bæQ)lm5ÕÔ¤øù±……¬V5X[kÕüøÑM[¸lÙD4}î×–7àñ¸ÈH·gÏJbbžs±Yú•À< A# …ruµøò¥¥°ð3ëš¶¶š$Ro^^m¡ˆˆÀÊ•vÑÑOˆD.ìïM5q¢öæÍSwíJÎ˃ë @YY‹ÉbE$544µµµCBB:;‡t¡Œ={ö P¨ˆˆˆ} …B••1X«½½=((ÈÄÄDDDÄÊÊjß¾}==l­êÌݳÊ-0BÐâæfÕÖÖÑÔÔ^[ÛÌ¢š¼¼˜ªªTŸ[¤€U«Édò¥KϸÕæÍÓ¬­57lˆ!FÍ"G¿˜7æçç_¿~ýÓ§OÑÑÑ©©©AAAýŒK(J||¼ªªjBBëšÒÒҬ봵µYZZæææFFFæååmß¾=..ÎÙÙ¹·—ñþ´mŠ‹‹oÛ¶m_§`… D]]ÚÌL …¬¬Œ§ñâEß}NDE–,™•ÙÑÑÍðSƒƒF£NœXÜÑÑÏÅf!ö¥¤¤ìß¿ßÜÜ\FFÆÞÞþرc7oÞ²Þ‹ŠŠÞ¿]PPPRR¢&™Lþþ½Ÿ•¤ÂÂÂdddÒÓÓ]\\ttt\]]_¾|YUUuáÂ…~Û”––è˜xÀ< A#Ë¢EÖ€ÜÜ*ÖÕ&LÐÎÍ­êì$õ)_¹ÒH슋ËánT22"ýåõÏ?…/fq·åa„B¡ÎŸ?¯¯¯/##£¡¡!&&¶k×.€¿¿ÿŠ+šD"Ç¿~ýpëÖ-ccc1cÆÄÄÄÈdòñãÇõõõEDDlmm322h¯="—"SSSuuueeeýýý»ºº‚_·¤==yò$5ØÛÛWWÿ¼ÌN"‘‚‚‚ääädeeƒ‚‚H$ROOOHHˆªªªŒŒÌ’%KZZZ˜µŒ¤§§«ªª>{öŒ¾)¤~||¼ƒƒÃ”)Sôôô¨CR† ÚØØäåå©_ÿÁƒZZZû÷ïGJbccwïÞÁ`¨u„„„‚‚‚bccžÚ6i;miiñõõ•––VVV D.t£P¨¸¸8}}}IIÉ îcÀ($­­ÊÊ[&OŽd]­¦¦IAaÓÓ§%ôoíÛwÛÀ`gkk×c ¿¥¦XXø™ë-s—›››››[¿ÕžžžáܹswwwøöíÛãÇ¥¤¤H$…B‰544$“ÉD"‘ŸŸÿôéÓuuuÑÑÑ|||D"1**JVV699ùË—/wîÜQVV”––"`‘ƒ©S§–””ääähii…††2,¤P(---gÏžE£=¾ÿ¾’’??¿³³óÁƒ«ªª¨ß"22rÁ‚Ÿ>}*,,477>xð ¡¡aaaaQQ‘µµu`` 5 ä#}b›>}ú£GˆD"}S …L&khhDEEQ(”;wöi„¾AÚ3Ç¥¥¥===òòòééé eÆŒ ¥©© ‹Å:t¨¹¹™L&·µµõöö^¼x‘Úì¥K—èóhaa!ònBB‚––ÃBÖÑöôôäää„……a0˜¸¸8¤\OO¯®®9~øð¡©©©®®nrr2RòîÝ;ä˜EÚ£†Aß…BÉÉÉáããûöí…BÉË˱nö gffR(äÞgii)³<úüùsiiiçªOGÝÝÝ ¦¸¸)ONNFN ##ƒöçÈú¬r%Âëº4âÌ›gN"õÒ®XÄÐøñZÙÙ &CŠŠ ®_?9**óë×6îÆÇ‡>uʇ@è êg¾Éh!""Àb±}Ž ÆÕÕ599ùÛ·oiiiÞÞÞ ‰ŒŒŒœœeee‡§OŸ¢Ñ芊 SSSj›ÆÆ ÷×ÖÖFôôôjjjXÒkooX[[ïÚµ«°°pÇŽ[·nEÞ­ªªRPP@¡P(ÊÙÙ¹²²²ººšÚ²¾¾þüù}·= üûi`===fMâãã{zz¤¥¥Q(”……€~¶…ùãÅŠŠŠ4úg®———/((èS­  iœÍÓÒÐÐÐÛÛ«©ùs e---jM¤GêÏqÀ< A#Ž·· àÂ…~¦ÝN˜ õúuuŸ§H+W:ˆ‰áãÚ¾¤T âGzݺõ&.î×¢ÔÍÍíÆ‰‰‰'ND®ÖvttÉ䤤¤¦¦¦+VÌž=»©©IIIéÍ›7ÔO½}û–¾)d ())AþÐ3+¤G¡P¼¼¼ŠŠŠ—(jÚ´iÔEa20jnnÎÉÉQTT¬ªªBÞ-((§6…|ª¶ö_{óQS}S½½½ ‡nû[¶lIHH &N† Ò¢LÅÛÛ;,,Œvvn{{{dd¤‹‹ û§ENNƒÁTTüœ²^^^®¤¤„Ssöy‚Fqq¼˜˜`FÆ{ÿæ&NÔ&‘z_½b0låççÛ´É9&&»ªê×Ãsr2X½Úá÷ß“Yo•ú °³³ëéé óññAJP(ÔÔ©S¯_¿N º»»±X,_¾|yPPPjjj}}ý½{÷‚ƒƒé›úí·ßÊÊÊrsswìØ±xñbf…­­­ÈÍZÚcaaá%K–xxxܹs§¢¢";;;00ÐÓÓ©æêêº}ûöêêêÂÂB—'Nøøøìܹ³¸¸¸¸¸xÆ ÈŒ$qqqÀåË— ³mÂè›zúôéׯ_½½½…ÿŸ——WiiiAA‹‰DVë<ïÞ½ûëׯNNN÷îÝ+--½qㆵµµ’’’ŸŸ‹sÕ§M,ëáááïï_YYY\\üûï¿# †‡×…!â/¯Ó ›rs+XW?>|ß¾Û ß"‘zíìömÜ˃è(]]$g烓&E‰¼hŸCìߥ¿˜¯]»VPP@ P?• ©©‰ÃáôôôRSS)JwwwXX˜†††°°°­­í•+WÝýÑsçΩ©©IKKoܸ±££ƒa!…ÉMG …ÒÓÓjll,((¨®®¾mÛ6¤>…B!Ë–-“’’Z½zu{{{ggg`` ¢¢¢˜˜˜§§gss3RsïÞ½âââššš©©©€ÑíLú¦Ö¬Y3uêTÚ“F&“555·mÛÆ°A‰4qâDaaaÖg•H$áñxCCý{÷þøñƒÙ¹¢m“6দ&)))…Í›7#'„YÌÀyFôË:yò‘ªjÀ¦MWXW J˜5ë³wSRò•”6×p;: …B©¬lÔÓÛ±bÅy2™Ì‹ö9ÁfeÇŽ;¼¼¼ô‘>É©ÏK…ÐП8Ï‚~YcÇ*“H½ÉÉùß¿³ºD6a‚ö›7ŸÛÚ/34gŽ©¡¡Òwy¡ººô¥K+>|Ë£ö‡]gggEEÅùóçW­Z5ܱ@#Ì£4+£P(,“˜˜Ë¢Ú„ Ú½½f3{Q(Tpð̇ß>Þwå#®7nLhè¼cÇÒnÞ|Í‹ö‡×‹/,--—/_îèèÈI;¢¢¢kÖ¬a§¥§EÛ!AЈ4~|¸„„Pssû³g;Ðh¦ks;8D8;þþûlfÜÜNHä””¼ lÝšxíÚ«””ÆÆ*<êb ÜÝ݉‰‰Ã4Ò%&&zxxp˜áx‚F(cce<W]ýýÙ3V+šN˜Àø)Rª;fçæV¦¥½ãv€?…‡/03S]¹òëKÐô«‚y‚F¨±c•+*ÇÓ¸|9›Eµñ㵋Šj„fÌÌT§N5Ü¿ÿ6™Ì“‹OX,æôé¥d2eÅŠ $ã-; ^ãpC±‘¹Ùhó(PÆÆ*uu-óæY>>{öìÑ××ÿüù3W¿Ü¯æQ¹ŒU0tAÁç)S ååÅââ˜NáqtÔ{ü¸ÿì8eŠÁäÉú¡¡©<}@ENN,.nõ‡õkÖ\êí…#NÉÈÈdgggeeµ´´°¨I»ã˜ššÃÍÅXì8ÆLCCÃÛ·okjjÌÍÍ9þB¿˜G!häæ×Ô”-(øÄLJöò²‰Ál„gg§]VöõËVd¡¡ó*+ccY=“Ê9ù –gf~عó:O;ú/011ÉÈÈHNNþøñ£ŽŽÎÊ•+óòòÖ  î8æëëËps1öw#“É<˜?¾ …BÉÊʺzõª´´4/¿ëèÄùzùñΦMWÜÜNR(”úúVUÕ€ää<†Õ:;IAññ/Øi3$䆞ގïß‰Ü ”‘ÔÔ×JJ›OœHçuG}pq¿—‘¦¹¹ùðáÚššUUU´åÈH4>>^]]]VV6  ««‹Âds1úB†­\»vÍÆÆ&..iê—Ä•ý^àúº4¢]¼˜qûÝ»}h4Ê×7š@èHNÞÀ°¦»û)YY‘ãÇ÷Ûf[[§Ý¾™3MÂÃp;Þ¾NŸÎܳçæ_yº¹Yñº/ª_~}]2™L&“ùøøxÚ ‰DÂb±<íbØÁõu!è×gjªB t"3ŒÖ¬qÌÉ)ÏË«fXÓÎNûéÓvþ"ˆˆ¸\¾œýþý.‡KgíZÇU«ìž<ùÈë¾þ;Ðh4¯“(à—O¢Üó(h††J8ßëן¶¶šffªgÎd2¬ig§ÓØØöáC=;Íz{Û*…„¤p1TfBBæÎ™c¶jÕÅ·ok‡ ;b0BЈ†Åb  >!/W®tøçŸÂªªoô5ÇŽUdz9ìC£Q{öÌÏÊ*»{·ˆ›á2‚B¡pÓÑ‘óõ†ë3@¿˜G!h¤35U}óæg=ÛT^^ìÂ…gôÕ0ô„ ÚOŸöó)•••Æ´iF{öÜìì$q-V&q—.­âçç[´ètss;¯»ƒ ¡ó(t&&ªÅŵÈŸ||èeË&^½šÃp£4;;çÏË»»Ù]ý`ÿþ…MMÄ?ÿ¼ÏÍp™”ºvm}g'iáÂ--pÕVè×ó(tffª]]=>Ô!/}|Æ£P¨ØØçô5ííu::º™MD¢'''8=**ãÝ;žO8ÈË‹]»¶¾­­ÓÛ;ŠHì‚!hÀ< A#¦¦¬ˆˆ2Õ ""àá1îܹ'ôk©«K«ªJ±i°lÙD¥íÛ¯ Í#pJJ ~µµÍÞÞQ?~tAÄkðùQÜÜN¨¨H>¼yùùsÓ„ áGzÏŸoÞ§f``ÂÇu·nmb¿ñÂÂÏ3gþéæåeõˆYzóæ³»ûɉµOŸ^ŠÅb¸Þ¾»»û“'OÆŽËõ–¡_LCCCQQ‡yçO AÄ9SSµGþ·ošŠŠ¤‹ËØÓ§3èó¨NBÂËÖÖbbx676Vñõ¸wï­©S¤¥/€Î]&&*11«¼½Ï¬]{‰©ÔÍÍ» B¿* gggãQîÜy³víåö ñ#%yyU³g½vmýøñZ´5›šÚw;·ÌÅe£1¡ÃÞ~ÿ¤IúGŽxr3n– ?/ZtÚÄDåÂ…ð‘h´‚÷G!h05Uíí%ýo+ u õ¨¨Ì>5‘=Ôt‹ **暘˜ûìÙÀ>È cc•„¿7o>{{Gµ·ÃiGÐhó(JJrr¢ÿÚúqÍÇ´´w¥¥ }*ÛÛëô»)½9sLgÏ6Ù¼9~(gÒŽ«œà÷þ}ÝâÅg`*…F)˜G!ht06V¡®j„˜>}¬ššTtô“>5Ç×*/ÿZW×ÿj}ìÛ·°³“´ÿŽ ±c•/_^ùîÝ—åËÏüÐhó(¦¦ª}ò(ƒ^¶lbbbnSÓ¿V²µÕÂáø?ðºð’’B»wϹtéÙË—œ†;––ññ~EE5ÞÞQmmCÙ5qæQLLT>nê“2=<¬±XLŸ5ðxœ­­fzúûAôâæfåädÀlÃp13S½uë·ÏŸ›\]ÿNÊ®!ˆC0BÐè`i©ŽB¼¼*ÚBQQŸñçÎ=îèø×QGG½'O>Ò/ÔÀް°ùuu-ǧsí hjʦ¤øÿøÑ=þßõõp9{hÔ€y‚FQQAMMÙ>y°~ýäŽÒåËÙ´…“&éµµu¾~Íî´ÔÔ¤‚ƒg;öpè·9SV–HJZG¡€E‹NÃT 0BШaa¡NŸG%$„¼¼lNzD{%VGG^YY"3s[g¯Xa7q¢¶Ÿßå!¾º PT¿qc#‡™=ûhI [{©BÐð‚y‚F µ×¯?õôû”¯[7¹µµ#))—¶ÐÑQ/#c0·H(êÏ?56¼;ÈX9 --œ’⯧'?sæ_™™†>˜G!hÔ07Wÿñ£›~”&''êî>îĉtÚëè¨WTTóíÛ çìÈË‹…„Ì9}:cˆçî"ðxÜ… +çÌ1[ºôÜùC±æQ5tuåEE^½ª¢kýúɵµÍ·nPKììt0ôãǃÏ-Zd=y²~@@ÂlôM}ð ûâÅãýýã.]Êú ˆM˜ÐÐÐᎂ ¶ P¨§OK‰ÄNúµsÅÄðÕÕßSS_/Y2…Bøùùž>-ijjŸ1ÃxÐ=Z[kž:õˆHì²·×å(ôAA¡PNNú :,ìfSS»½½ÿõ‡FøK A£‰¥¥:³mºýü&—•5¤§ÿo[ä)™<ø½(ÅÃÂ\OŸÎxþ¼|Ðpè·ßœcbV]¿þÊÕõxCa¸Â€ f`… ÑÄÜ\­¢¢±Ïj ]]ù¹sÍöï¿CMœ“'ë75µÓ®n?îîVsçš­[ðӡ1y²þÝ»› „—Ãùùƒy˜‚xæQM,,ÔÌ t)+k¸{·yih¨('':èY»Tû÷»a±èÀÀÛᄆ†LJÊFmmY7·“‰‰¹ý‚† Ì£4šˆ‹ã54¤™É44dæÌ1;tè2$E¡Pºƒ~Š”JTTàøñž‹{Þmž‘ºre­¯ï„-[®®\y.0BÐ(Ãâ) `Zyù×Û·ß /õòó«„;7nŒŸß¤”òò¯6Å >>ô®]snÞüíýûº ö]¿þjƒ Ì£4ʘ›«¿~]ÝÛÛw5„††Ìܹæ‡ßG†¤º Äv¤ô]ÔÔ¤7mºJ¿Ä37W»{wËÔ©†7Æ&p‹h8Á< A£Œ¥¥z[['ýöÝTÓ**¾Þ¼ù !!db¢Â•Up8¾'¿}[ùç­qHTTàØ1ï3g|ïÝ+²³Û—ð’Bü´dâÌ£4ÊèêÊ ñ³˜¶ª®.=k–éÑ£‘1ë¤Iz¸’fôôŽñ}ŠŽŽNMM bV¹¢¢BZZšúòû÷ïfffx<>!!áåË—‹-òôô¼ÿþ„Ý'@vvv]]]MMÍ… ‚¹¹yKK @\\|Û¶mô-´µµYZZæææFFFæååmß¾=..ÎÙÙ¹·—ñ¿e´=2ksèP ººHêê×®å²Yõê‹ÚÚÁ ç]Hwï*)m>{ö1ïºè0dÝÑ+--åâRqqñœœêËÇ«ªª²Ùõúõë=<þ%ïB"“É~~—õôvTT|å]/T€qÀÓÓ“@ œ;wàîîN ¢¢¢ß¾}{üø±””‰D¢P(±±±†††d2™H$òóóŸ>}º®®.::šH$FEEÉÊÊ&''ùòåÎ;ÊÊÊêÀ9˜:ujIIINNŽ––Vhh(ÃB …ÒÒÒBiÑß¿_II‰ŸŸßÙÙùàÁƒUUUÔo¹`Á‚OŸ>š››ÓŽÉš››MMM,N¬Y³Âõëב/N p8ÜòåËkjjbcc_¿~EÚœ>}ú£GèOB¿‘P}sssÅÅÅ)4ãHÚŽjjj}bÎÊÊ’““cqb‘j´ÇÞÞÞNNNååå………FFFÈÙ,\¸°¹¹ùìÙ³€ïß¿³þ…¡ p< ó(b+*nnnng³>Сª`o¿Ÿ§Q‰“'GNšI tð´# Ûy4??ŸB¡tww÷9.--íéé‘——OOO§P(3f̈ˆˆ P(MMMX,öСCÍÍÍd2¹­­­··×ÐÐðâÅ‹Ôf/]ºDŸG ‘w´´´²Ž¶§§'''',,ÌÈȃÁÄÅÅ!åzzzuuuÈñÇMMMióGSS ¹¹™ÅIÈÌ̤P(ÈÇÒÒÒ®®®÷ï߉ÄÞÞÞÇ#…´3< ýFBHE:Bþ  Ï£ÏŸ?—––fqb‘êqww7ƒ)..FÊ“““‘³ ÈÈÈ ÐüÐYÿ(ðº.ýwŒ§BW¯ªØ¬/""àìlXZÚðîÝÞE%$ÄåÊZ¡céÒsÝÝlM¹ä5‹ís À`0®®®ÉÉÉß¾}KKKóööHHHdddäää(++;88<}úFWTT˜ššRÛ466¦ïH[[9ÐÓÓC†YÌ éµ··ÇÇǬ­­wíÚUXX¸cÇŽ­[·"ïVUU)(( “`++ÿu=_BBBNNîÝ»w´…¹¹¹VVV?~üÜHQQ€Fÿü³ÃáJJJ\\\,,,.^¼HûA===f'¡ßH*--ÕÔÔ¤/G:———/((èónAA……rÌÎ9lhhèíí¥v¤¥¥E­‰|wê»`… QLL ¯­-7 ¶l™àí¬Z99Ѹ¸5ïÞÕnÛ–ÄÓŽ¸ÂÍÍíÆ‰‰‰'ND®ÖvttÉ䤤¤¦¦¦+VÌž=»©©IIIéÍ›7ÔO½}Ë`æ326””” »™Ò£P(^^^EEEÈK 5mÚ4ê³ÈÈ 577çääôùøœ9sþüóO ÍÖ#±±±$ ÇS¤­ßÑÑáîŸòäIÚ·|Ãð$° ý÷:uêÔÌ™3éߢ&6ooï°°0ÚÙ¹ííí‘‘‘...ÈKvΡœœƒ©¨øù0Xyy¹’’rLýï`… Ñmܸ1ì¬jDe` ¨  öæÍç´´wý׿€®®üÉ“K®_õ÷ßi<íˆsÈLѰ°0¤…BM:õúõë¡»»‹ÅâñøåË—¥¦¦Ö××ß»w/88˜¾©ß~û­¬¬,77wÇŽ‹/fVØÚڊܬ¥=^²d‰‡‡Ç;w***²³³===‘j®®®Û·o¯®®.,,tqq9qâRN$‘ƒðððÇûøødggþñÇÇŽ gö­»ººº»»q8\GGGHH ­­¶ÓÀN$€ÆÆÆúúúÚÚÚÇÏŸ?¿²²rË–-,~»wïþúõ«““Ó½{÷JKKoܸamm­¤¤äççÇâÄÒöÀb±þþþ•••ÅÅÅ¿ÿþ;ruçØ¼þ AÐÈ”””«¦ØÙIbÿ#{öÜÔÒÚfk»·«kŸœØØlEÅÍÉÉy™€á¼~Ìñ¿`XÎá€~¯àu]ÝTU¥Äti×Ü\UAAÜÄDåèч߾ûÿgöî]`k«¹xñ™ÊJî/IȹÎÎÎŠŠŠóçϯZµj¸cù¿öî<êüø{Œ¡™¹C‘#"**6a+Gmí–3I‡õ+I§l—ÎÝJ©¤‹Bº–$©D—¤ÚÊ•dÓájŒ\3óùýñÙïììÌcÌÇëù×gÞ>Ÿ×ûõyëáÕç˜÷tKPGèöœ°ž…@ 8;›ÖÕ5(*’CC/‹/1œ´´ÔñãóôõÕÜÜ"ÊËkÄÝ]{=|øÐÊÊÊÏÏÏÁÁ¡#qüýýiíÒõÇê(ÝÞèÑz½c2±¶wýŸI“Ì_¿®X¹Ò)))÷þýñå†ëÓ‡túôÂþýûΚu¬¦¦k­ coo_]]Íç}œÖ°¾›ˆSSS‹ŒŒä؇g#h—®?†PGèöFüíÛ÷ÂÂÏ‚bm­¯¨H©­ýîâb|©¾å© Ð'6vÑ÷ïM³f«¯owwt¨£t{ÆÆšrr²Ož´ãÖ.‰Dtt4ýóÏ¿ýæúå 52òŽØ²û—ºz¿‹—|øPíçÝÛ–W=ÔQº=ii)KK]×"e™4iØ“'拉‰«V9ýþûͲ²*1¥ÇNOOõèѹ•¬Y×®ÑtYPGè ÆŽ5¼¿°]‡88÷éCJK{¹h‘ÃàÁª›6‰ý…#œþ™3 /_Îýõ×óPJA -é"`c£¿}ûµÒÒJ]]•¶÷F!Ô§ÉÞ~ÈŸ¾ðñ± æåu$=ý¯ †Š5OܸqFÑÑóçÍ;A$÷ìñ䘯®½ÒÓÓñ5¢¨£ôåäd<(¼Ž"„&M2_½ú•Ú`kkèí=&0ðâ;ÁýúQÄ—'Ë?>ì»xñé¾}e¦ GGGçØ±c"L „‘HdÍÍÛ&¸¯ @O --ee¥—]Ü®£œœLBøšÛ›6ýB ¶o¿.–üx™<Ù<"Â÷äÉû{ö¤¤¬L,Ó$^ŽN§;VÀ„PGè!llô<(j×! dƒ?ÿ|RPè³eË´˜˜ìö>g툩S‡‡…Mß¿ÿæÑ£w:­SD ê(=„~EEmiie»Žš4iØíÛ¯›šè¡©S‡;;›­]ߨØ"žy˜7Ïvóæ_®;–Ùi BPGè!,,R(2í½$4ɼ¡¡ùîÝ·øÇ;Ü*+i¿ÿ~S ¶jÑ"ûÝ»=ÃÂ’÷ïïÔ~ bhh¨¤sˆ‘(•]\]]?y²¹àGõí+{ûöëÚÚgg3„œ\9¹>»vݘ8ÑT]]AlÉr6L[C£_XX²”ÁÚZ¿Óú ãàz€žÃÆÆ ½×£¡_~qýúsÖÔ€¾¾6Æi‡„\b0˜¢NŸ™3­wïöܳ'¥“¯†è ¨£ôÂ="ýùç4Zã;oðD¢Ô>ýõñÀ[bÈ‘ooë-[¦íÞÒ9ó p_€žCMMáØ±;††êÆi ~”œœì½{?Öþô“ÞÒ¿ß>}H»vݘ0a¨ºz?ñ$ËÛÈ‘ƒú÷ïzð~0èÌ®\ÐsHD!¾EŠúùç7o¾bMwáB{++½_½ÐùÊÏ›g{äˆïÁƒ·V¬8G§wê½e„u€ÅÆF?+«ÝHþyxSSË­[±Z¤¤¿ÿîýþ}Õi"MPÀ|FDGû]½š·hÑ©NXÓ €Ž€: @"Ü#Ree9kkƒ+Wž±7¨òÓ¤=þA¤9 d„¡çÎùgeúùE744w~ê(=ʈƒ(™ìl!ÞÚžžþšc…íyólÇŽ5\±â>QC'³¶Ö?{vá“'ïæÌ9A¥6v~ê(= ‰D´´ÔâéäÉæt:ãæÍWìaÇ÷òòêƒ;ûÝ]Üèуãâþ¯  â—_þèœRh/¨£ô4BL´‹RRêkkk˜œüŒ£]WWå·ß¦ÿþûM!»Š„¹¹Njj ™,ã켯3çþ@@PGèill >~¬}ÿ¾ÝWo?ÿ<âÎ7TjG»··õO?Y,_ûíÛwåØ>êê IIãÇÏœyêT–Dr 5PGèiFŽD& óˆtÒ¤a!|ù;v¸3™ÌuëDŸPde¥ðñó·~}ÂÆIy^ OPGèiH$âÈ‘…xDª @¶·ÂñÖ.®ÿ¾ü1óòågII¹¢ÈQD¢Thè´fÆÅ=špàÖ¼y'>~¬•`2@ 6L[Q‘rï^A{”““?Þ$99çO)™C‡fåä>|»Ã9v‘(µb…cròòòòj{û‘‘w`A )0O==”!/ïûw_§OÙÞc1 ?~ÇÇ燾}e¹ª©ÙOA¡ÏÖ­WGÒ4HYÉ OC£Ÿ¯ïÊÊráá7.^|d` ®««"Ù”@/×£ôL¶¶†ÙÙEBÌ2ïâ2ŒB‘MHxÒÚóçÛ¹¸ [¶,æË—ºŽå(RR„Y³lÒÓתϜytÕªó’}| z!¨£ôLvvF4ZS^^Y{”••ž2ÅâÒ¥Vë(Bhß¾d²ÌÒ¥g:y­ïÖhk+>½ :Úïɓұc·­_ŸØj<è% ŽÐ3éé©êèô¿{·ÝHBîîV¯_|ýúck;((##g?zô."BÂJÙ9;›edïÜéžšúÂÆfë¶m×`V^Ð0@õ믦M; ÄL&ÓÚú·°°dþ»;vGGçלœb¡²Ôýû÷eddÚù‡MŠB¦ª:GJªXþn‚Þ-((ˆýŸ¨´¤óˆË¸q†ññêêååÛWNÂôé–çÏç¬[7…Hlõ®Õ‚v™™obnÞ TT¤t8_Þþþûïæææ¸¸¸öÈdbRR?‰#%ЛíÛ·¯´´”½ê(=–­­ƒåä;:š¶÷X«?þH»¿ÐÞ~Hkû„|œ÷.]zöìÙERR„ŽåË?ñ@pñññ-ð|€KEEÎÄDS¸5RôôTGŒÈÿm#„Pÿþ}ÏœY“S²}û5¡r Ûƒ: @Ofgg$Äl 877«7òi´&þ»™˜ صËãÈ‘Œ«WyÏÞ@Ïu€žÌÖÖèíÛOŸ?S…8vúô‘ óÏ?yÏÈÎÍÍÊÇÇú×_/ÀÜñ ‚: @Ofc£O"ïßæ’TQ‘òãÆmÞÚÅmÝêjh¨>þɺ:øª è] ŽГ‘É2––ƒ„{DŠrw·ÊÊ*d"xé#GfWVÒBB. ×WWVTTD ˆì-*¨§§G&“ 7oÞÜØØŽÿ||üøqæÌ™ºººrrr£FJJJbýˆ@ µ{ÝYáŒmM!ÑŽ»úúú   yyùQ£Fmß¾NhZñ¥Äê(=œ­­Qfæ[áŽur2ë×rù²@kޤ|ð Ïå˹‘‘w„ë®—ÈÍÍMHH(++;qâDrrrPPPk;—””¨¨ü;ipUUÕˆ#(ÊÅ‹=z4cÆ ooïÔÔÔNH›#„Ð¥K—.^¼(î~ëêꬬ¬?~þôéÓØØXGGGƒ÷œ—ìy***‹;C˜‡€îÉ“wšš+ ? wxppœ½ýNÁ÷?r$CKkUjê áºã†ÿ¥U4áŠ0EEÅœœÖÇÌÌÌ ØõÒ¥K½¼¼Øw œ8q"¾*,,Užü3Aùûû÷ïß¿¢¢‚ç¢8nÜ8:Îj¡ÑhºººÇ$O‘óððÀ/ÄY ŽÐõ´0† Y}W¸Ã?.ÑÔ\ùâE¹à‡¬^}ÁÀ øõëÂõÈAÀ:Š:qℱ±±ŠŠÊŽ;Μ9£«««  °aà Ãüüüð=ëêêÈdrnn.†aW®\6l˜¬¬¬žžÞ™3g0 c0466–““³¶¶¾}û6^œððË—/©ªª466òlÄþû}{àÀ³gÏ®¬¬ä>‹æææÀÀ@555UUÕÀÀÀææfeee„ºº:¾ƒ††ÆƒØ©««{ÿþ=k"""ôõõ·oߎ7^½zuøðád2YCCcÇŽ¬dnݺ¥££sïÞ=îA$„Л7o~øá‡©S§2™LŽsäî´ÍßÏNñSNKK㨈ˆ{{{ž#Ïž'{J555sæÌQVVÖÒÒZ½zuCCžRLLŒ±±±’’Rxxx›ÿÌ0¨£ôN³gŸ??Z¸c™Læ˜1¿…†^üæfúôéG«ª¢ ×);Á먷·7•JŠŠByzzR©Ô£G"„*++333•••[ZZ0 ‹‰‰155e2™4MVV622²¢¢âĉÒÒÒ4íèÑ£jjj‰‰‰?~¼~ýº¶¶6wurr*((ÈÉÉ100 åÙˆaXmm-뚉};55UKKKVVÖÑÑq÷îÝ¥¥¥¬³wss+++ËÏÏ9räÚµk9*B¨ººšÏ L™2…J¥&$$à'N¥ReddüüüÊËËcbbB_¾|ÁcNš4éöíÛŸ?æ„63Áþwí[PP@&“Ož<‰±-ž¶ù;âÙ)~Ê_¿~å8Ó¬¬,uuu>¿|7ömŸ &ççç›™™á¿#„»»{MMÍñãÇBUUUmþKƒ: @o•9dHHK C¸ÃH31YרØ"ø!_¾P--C=< Ý)‹àu¿ÄlnnæØ.,,¤Óéééé†Mž~üxÔ¨Qß¿Ç?0!$%õÏßv™‚‚KKËS§N±hllÜÚ ´™ »eË–1bÁ‚ØÿÞÝåÓ)ŸßÏN544òò8§øÈË˳´´Ä·ùÏŸ?3 }}}ü£kO|ÄØÓh/¨£ô|*¬zûökáWS“wt4Ín×Q¦¦Z;v¸GGß»xñ‘pýŠ–‡‡GRRR\\œ­­-~·¶¡¡ÉdÆÇÇWWWÏŸ?êÔ©ÕÕÕZZZÏŸÿû?†W¯^q‡Â¯rBø_áÖ¹a6sæÌ/^à ‚³³3ë[ø5~•SSS“““ÃqøÏ?ÿ¼wï^ŒíÛ&111--- …}ÿ††OOÏ   ÜÜÜdzÿ¯<ALX¤¤¤Nž<™••uìØ±6;åg§>>>aaaìoçÖ×ׇ‡‡»¸¸àyuuu"‘XRòÏ%‹‹‹µ´´Xù ž!OPGèÆ7ÉȲŽ"„||l²³‹ ?·ë(QË–MX³&N¸‰ D ç3,,Ì××o!NNN T*µ¹¹™D"Q(??¿   äääOŸ>¥¤¤¬]»–;ÔŠ+ŠŠŠ?~¼nݺY³fµÖøíÛ7üA û¶œœÜìÙ³½¼¼®_¿^RRòàÁƒÀÀ@ooo|7WW׬ ì IDAT÷ïßçç绸¸DDDàí4 ߨ¶m[ff¦¯¯ïƒòóó·lÙràÀmÛ¶µvÖMMMÍÍÍ222 ›7oFÕÕýg…sžƒ H&ìôôôöìÙ³wï^;m ÏN7mÚôåË— &¤¤¤&%%3FKKkÉ’%|~y’H$//¯åË—¿{÷îåË—6lÀïIˆF›÷‚=@FÆkMÍ•åå­¾¢ÂƒÁ=:ì·ß®´÷@&“¹rå9CÃàv½ñËNð磬K™Ö¶/^L&“©T*{p}}}ccãääd Ú››ÃÂÂôôôääälllÎ;‡¸žFEE 4HEE%  ¡¡g#Öúûºt:=44ÔÜÜœL&ëêêãûcF¥RçÍ›§¤¤¤¬¬¼hÑ¢úúú––[[[999VÎ¥¥¥îîî ——=zô•+ÿþRxžø¾}ûú÷ﯣ£søðaooo555Ž'܃ H&è¿O™L¦££#+,w§‚üޏ;Åw Ñh«W¯633£P(¦¦¦[·nýþý{k¿ö<9ž.ûúú*++kjj®ZµŠõ¾.Ï”øà~>JÀØîzª¦&úСëæùøØaÿþ›'NÜÍÍ •‘ißz‹--ŒÙ³¿ySqíÚJ--¥öö‡c²½r[¿~}iiill¬à‡²zçøÈ§t‰Œ¼§§'Bˆ}A\¸¯ @¯ ++ýÃúB?"EÍœiM¥6¤¦¾lï$ñøñyÊÊr³f£R„N #KJJ¢££.\(‘@u€Þbüx“{÷ ZZxϦÖ&uu…ñã‡ÆÆ¶ú¾ rr²±±‹êêýü¢…N #>|heeåçççààБ8 þþþ‚4‚NÐEFê(½Å„ Ci´¦Ç[ýC›||¬ïÝ+(-­âXuõ~'Nøåå•mܘ(tB³··¯®®æó>NkXß2Ä©©©EFFrìót‚.2òPGè-TÖÓþÛ/¡ñãM P¼pá¡p‡[XèDFÎ9w.gÏž¡s «: @/2aB‡¾ýB$J͘1úÂ…‡Bß›8qè±csÿø#íðáÛB§@—u€^düx“ׯ+þþ»Fè3gZWUÕ§§ÿÕö®­pq¶}»Û¶m×ΟæQ+] ÔQz2YæÎ7BGÐÔTtpÒÞ¹8øúþä²fMüù‰@Wоïº5Ö·_„þ)BhÆŒ1K–œ©¨¨ÕÔT:ÈÊ•Nß¾5,[sµµ~›ûãßñ@â^¼xaggÇÞu€Þeüx“;®·´0H$¢pœœÌTTäOÊ ù©#™lØ0µ¢¢vþü“ K5[Ûm̘13fÌ`Ÿ^ ²³³Ã§b`ùŒè]Êʪ¬­·ÆÇ/;Ö@è é¦çæ†R(2I¦¥…1gNÔ«W'$,30PëH($žлàß~éÈ[»¡Y³lètÆ¥KO:˜ ‰D<}z……Îôéß¾ýÔÁhHÔQzñãM:ò-R„P¿~77«cÇî0™½¡E"›kb¢éáÑÞõdè  ŽÐëØÛyûöÓ§Oß:dÑ"ûwï*ïÞ}Ûñ|úô!>½ÀÐPÝËëˆp“% APGèuÆŽ5••¾uKøï€"„ôõÕì쌢¢îŠ$%2YæÔ©(º»G”•U‰$&ê(½™,óãÆÿîæ‚voDu3V^¾Ï™3 ûõ#Ïœy´ƒ×Êt&¨£ôFÎÎò² ëê;düx}}Õ“'ï‰*«þýû^¸°„D"ºº*/~Ò%:ÔQz#GÇ¡†ed?±Bˆ@ Ì›7îâÅǵµßE•˜ªª|ròòþýûN™²ÞàÝÔQz#%¥¾VVz7o¶{Qn3fŒ–••>wN”3å*(Ï[¬££ìáñúu…# PG襜ÍnÝú«ƒ«j“É23fŒ>yò>ÎUb!…>/.2DÃÕõP^^™# rPG襜ͨԆ‡K:ÇÏÏîÓ§o©©/D’ …"sæÌÂaôg̈ÌÍ}/ÚàˆÔQz)]]•!C4RS;zkW[[i„¡'OÞIVìÈd™èh?ÍY³Ž=zÔÑz€˜@ ÷rv6KM}ÑñI¶.´ð H7`åädccýGÒóò:rõjžÈãÐqPG轜‡•—×tü]ž±c F¼ÿM‘dÅB‘9ujþ²e/>³woŠ8º #ˆ¡¡¡’Î  çÏ?¤Pdll„_û§¦¦°gOŠ““™ºº‚HrcG ~øÁ _?rxøÚÚïãÆ ‘’"ˆ¼„×£ô^ÁÑqhÇ‘"„Æ717׉ˆ¸ÝñP­Y°À.*jÞùó=<">~¬_G´ ÔQz5gça/_þ-’²´lÙ„ëןéx¨Ö8;›edÓé ‡‰‰OÅׂƒ: @¯6v¬œœ¬H.I'O670P;t(½ã¡øÐÖVŠ_:uꈀ€Øõ뛚èbí€6A W“‘‘vp0îøÄF!))Â’%㟊{jÜ>}H{÷z81/1ñ©½ýÎÌL¬Ý€Ð ŽÐÛ9;›=xPD¥6t<Ôôé#54ú9’ÑñPmrqö矫Töñ9r‰JíМû ê(½ÝĉCBwîthÎz‰D\²dü¹sÙŸ?S;­Mºº*/.þý÷™×®=wpØ)’»Ó´ÔQz;ò˜1ƒSRDS„fΣ¨ØWTë{·‰@ ¸»[ee­ÿé'‹ NN™ò{vvqçt ê(9:šfd¼éàœõ8é… íNŸ¾ÿí›ÈSk“‚BŸß~›~ùr€´4ÑÝ=bÉ’3¥¥•Ö;èåŸ ÐÝ}ùR7räæ“'ç;:šv<Ú÷ïÍ£G‡ùùûõWçŽGk¯””Û·_{ÿ¾jútí¡C)ŸèFœœœtuu;ê(!„¦O?¨£ÓÿÀ‘D ¿““³¡o_Y‘l:täС t:L×øñöö>wî\ƒÀ}]BM:<%å…¨¾Ž¹dÉ ³s^Üå&--ec£J§×b´ÎÃÃNÁ?x¨£„š2exCCKf¦ÞÚE)(/þñèÑ;••4‘ Ë‚: @!55ùQ£ô®^}.ª€ ØQ(2‡ÝU@º&¨£€Lj‘šú¢±±E$Ñ(™€€‰§OgÁœò gƒ: øÇO?á·vE6ÍÞœ9cÕÕûíÛ—*ª€tAPGÿPS“=ZïêÕ¢LÑ‚: ø×”)ÃoÞ|)ª[»¡™3­ Ô¶l¹"ª€½V@@@nnnBBBYYÙ‰'’““ƒ‚‚ZÛ¹¤¤DEE…õ±ªªjĈ åâÅ‹=š1c†··wjêî(**·+%Ž^ÚTWWgeeõøñãððð§OŸ†„„ÄÆÆ:::2¼'a/DzGÒ/º/_¨ÚÚ¿þùg¾cfd¼ÖÔ\yï^c¶éâÅ‹ÿûVXX(ÂsrrX333(`×K—.õòòbß!00pâĉL’ãX„Paa!ŸýÇG§ÓY-4MWW÷øñã‚Ä9ŽÇëQÀ¿TUå­­‹ðÖ.BÈÁÁØÁÁxÇŽkX×›õ…@ DGG›˜˜¨ªªîܹóìÙ³zzzýúõÛ¸q#BhùòåóçÏÇ÷¤Ñh åÙ³g¡«W¯š››÷éÓgðàÁgÏžE1™ÌC‡™˜˜ÈËËÛØØddd°ß„ÄïI&''2DMMmùòåMMM<Ño`²o+((>|¸ªª ÿhgg÷þý{|»¥¥%((H]]]MM-((¨¥¥ÅÚÚ!¤¡¡ï°bÅ öß¼yó‰'Ø[ØûâˆUll¬‰‰IÿþýwíÚ…âè…ÿù"„bbb6mÚD$Y{öíÛ7(((&&†ç!ìñÙÓ«­­;w®ŠŠŠ¶¶v`` ~›;½ÎÓñR èINºo`ÜÐÐ,˜Ÿtt~MNÎaLþ¼Ey{{S©Ô¨¨(„§§'•J=zô(B¨²²233SYY¹¥¥ð˜˜SSS&“I£Ñdee###+**Nœ8!--M£ÑŽ=ª¦¦–˜˜øñãÇëׯkkk#„X—Sø†““SAAANNŽAhh(ÏF ÃjkkY×gìÛ©©©ZZZ²²²ŽŽŽ»wï.--eExx¸››[YYY~~þÈ‘#×®]Ë~%WSSƒª®®æ9I¶+ww÷šššãÇ#„ªªªZ»åyjx_¿~åH ++K]]Ïqä‰a˜Ï„ Š‹‹óóóÍÌÌðqãN¯Íß¾¨®G¡Žþ£²²NGç×7Dykð•+ÏýðöæfzÛ»Š‚àu477ðææfŽíÂÂB:®¡¡‘žžŽaØäÉ“wî܉aXuu5‰DÚ³gOMM “ɬ««c0¦¦¦§Nb…=}ú4wÍÏÏgåf``À³‘¶t:=''',,ÌÌÌŒH$ÆÆÆâíÆÆÆøvZZÚðáÃÙ«Nuu5B¨¦¦†gLžu”; >VìãÿŽrœZku4;;[EE…ÏqäÙÜÜL$_¾|‰·'&&âãÆÿÁÄà¾.@L”•嬭õE{k!´víä¯_©ÇŽÝmØŽ“——G‘H$Žm„‘HtuuMLL¬¬¬¼uë–BHII)###''G[[ÛÞÞþÞ½{RRR%%%ÇgÅ477çîÈÐÐß066.//çÓÈ­¾¾þÂ… ¡1cÆlܸ1??ݺukÖ¬ÁZZZª©©I ‚££ã»wïØURRRWWÿ믿Ø?~>¾ººzþüùS§N­®®ÖÒÒzþüß© ^½zÅ ¿¢Bàñ[kä†aØÌ™3_¼x$ÎÎάoŒà×søµQMMMNNÇá?ÿüóÞ½{1¶çÓ111--- ïõpZ (%ÕŽ’Á}j>>>aaaìoçÖ×ׇ‡‡»¸¸´v7uuu"‘XRR‚,..ÖÒÒ"=‚: à4eŠESSËíÛ¯Evþ|;==•-[’EV¬ð÷KÃÂÂ|}}ñàää”@¥R›››I$…Bñóó JNNþôéSJJÊÚµk¹C­X±¢¨¨èñãÇëÖ­›5kVkß¾}ÃÖ²oËÉÉÍž=ÛËËëúõë%%%< ôööÆwsuu yÿþ}~~¾‹‹KDDÞN£ý3¹ñ¶mÛ233}}}Ê}j†Ñh´Õ«W›™™Q(SSÓ­[·~ÿþ½µCØãs<ñõõõUVVÖÔÔ\µj¼µ_¢z> ëx¸páaHÈ¥çÏÃÈ¢òiì„85‰Œ†§§'B(..®ƒqà¾.€‡Ÿ~²’’º~]dË¿°lÙ2íýûJI-MÚ.%%%ÑÑÑ .”t. ë‚: àA^¾³³Ù¥KODYWW%(hÒÞ½)ŸD\´>|heeåçççààБ8 þþþ‚4ö BœZ· ¸¯ àíöí×¾¾ÇGŽø¦¤¼8žsþº¨£~ÜÝ­._~ÖÜLGp++½ÿû¿ñ7&•–VŠ#>ê(€WWK­1-Ç„±"èbd¤±bÅ9ƒ)°ø"—ZϾªÐà{/€6øø•‘‘>yr¾˜âÿõ×ÇÉ“÷O^²äGQÅlll¼qãû”èp³´´}»}ûµ¸;Ú±ÃÝÌL{îÜ550õ.è Ž2p òر†11ÙâîˆD"FDÌjjjY±âï®ê(@P>>Ö¯?}ú&îŽ45££çgg]„︃.ê(@P“&™÷ëGéœECGŒxáÂâ«WóÖ¯Oè„îÔQ€ H$¢››åùó™ÌθF´´Ôýý÷™gÏf=z§º@8PGí0kÖåå5÷îtNwS¦XìÜéþÛoWŽËìœh/iI'èN ÔFŒxþüC{û!Ó£Mß¾²Ë—Ç~ýZ·~ý”ÎéÁA´Ï¬Y6ÁÁñ_¿Ö©ªÊwNÓ¦”’’ ˆ©¯oܺÕMJŠÐ9ý ¸¯ hWWKò™3:³ÓŸþûï3cb²7lH€ xA—uÐ>22Ò^^£cb´´têêžÓ§>6ÇŽÝij¢K: (**"¢ŠF£ÑõôôÈd²¡¡áæÍ›ÿ¹Ð'EEE¢êˆ…•?@044äx×fÒ¤Ibê—?%%%OOϯ_¿vr‚€:  ‡ššï‰‰O$H·›››PVVvâĉäää   Në½´´ôùóç¬555wïÞí´Þ9þ||OF¡Pž={†ºzõª¹¹yŸ>}|öìY„“É>iÒ¾ÎìÑÃÃÃÃãÍÝBÞÞÞT*5** !äééI¥R=Šª¬¬ÌÌÌTVVniiÁ0,&&ÆÔÔ”ÉdÒh4YYÙÈÈÈŠŠŠ'NHKKÓh´£Gª©©%&&~üøñúõëÚÚÚ¡ÂÂBüÏ)¾áääTPP““c``ʳðÚÚÚãÇãé±o§¦¦jiiÉÊÊ:::îÞ½»´´”ý,¦L™B¥RðÌ©TªŒŒŒŸŸ_yyyLL BèË—/x“&Mº}û6F wss+++ËÏÏ9räÚµk÷íÛÇ~ @ÿ›‚àÍ›7Ïž=ó¢P(•••ø9bƪͱÅ0ÌÇÇg„ ÅÅÅùùùfff¬1Á3¼qã÷àãaóòòêêê¨Tê›7oÂÂÂ0 ãyÊ<Y­%ÌÇÅ‹Û[¡ŽDéÅ‹òVݼù²Óz¼ŽæææbÖÜÜ̱]XXH§Ó544ÒÓÓ1 ›ÜÈȈû,ðø………K—. Á0,&&ÆÑÑ‘ÕÎ3T›cÛÜÜL$_¾üçŸDbb"ǘð|Œk^!<ž§Ìó—ÕZÂ|QGá¾.@”ÌÌ´&NºgO ÷ßA‰“——G‘H$Žm„‘HtuuMLL¬¬¬¼uë–BHII)###''G[[ÛÞÞþÞ½{RRR%%%ÇgÅ477çîÈÐÐß066.//çÓÈ­¾¾þÂ… ¡1cÆlܸ1??ݺukÖ¬aí€_;JIýó×[FF¦  ÀÅÅÅÒÒòÔ©S졌ñÒÒRMMMüÅWGGÇwïÞ}øðÏYxxxÄÇÇcÆqS—g¨6ÇöóçÏ C__ÿh``À:}|˜ýG¬J¦¢¢Â*H555999ººº|ÎÂÖÖ¶®®îþýûiiiÓ¦Mcÿw¨ÖN„E]]H$²VP)..ÖÒÒâÈ{ð9P(”… ~øðáË—/-ÕÔ\y÷îÛNèKð磬ë’Ö¶/^L&“©T*먋/êëëËÈÈ'''cÖÜܦ§§'''gccsîÜ9Äõ|4**jРA*** <Y;ã±oÓéôÐÐPsss2™¬««ŒïßZæûöíëß¿¿ŽŽÎáǽ½½ÕÔÔØ£aF¥RçÍ›§¤¤¤¬¬¼hÑ¢úúz:¾{÷nƒ¾}ûÚØØàWiì1ïܹƒŠˆˆàè‹;” c[]]íë뫬¬¬©©¹jÕ*Ö˜°ÿ‚¸Ÿ½TIII™››çääà?â>ež¿¬ÖæCˆç£°Ž7@,<=3Ì„„eâïÈ!×ñPëׯ/--ü¢¢"ö €8>òi„|qˆ‹‹óòòj×/ îëÄbýú©99%ii]ñ»¤ÜKJJ¢££.\(é\zî>øPGbaa¡ãâb¶cÇõn1½ÑÇ­¬¬üüü:GAAÁßß_FÀ"ªÁ—¸¯ —ââ/?þ¾¿·››•øzá}]à¾.  Ñ×WsuµÜµëÏææÞ¸Œ€þž«E´«Ç°«¯¯ ²°°——5jÔöíÛÙ¿QÇøRê ŽÄ(0pÒçÏÔØXÑi¯'¹téþš¨XÕÕÕYYY=~ü8<<üéÓ§!!!±±±ŽŽŽøÔHÜJJJTTTðmEEÅàà`qgØMAˆ‘¶¶’·÷˜ƒo}ÿÞ,é\º.ÿ¥K—~úôI¬½„……©ªª¦§§»¸¸¹ºº>zô¨´´ôäÉ“<÷g2™¬¹òUTTXÓÁPGâµr¥ÖxäÈmI'Òu­ZµÊØØxÑ¢EÜåx.lÒæú*<9‰‰‰Ù´i‘HdïÛ·oPPPLL Ïi¬­­Bè¿÷u¹oÁSŠ511éß¿ÿ®]»Ä;^]M»¾m BˆˆH×Õ ,+«Gpçaè²B………d2ùäɓۜ <6ÁX_…{‘“šš„Ðׯ_9zÏÊÊRWWç³L ¾û6÷â-xJîîî555ÇGUU‰åwÝ `½@WÔÜL;vÛâŧżgÔQ Ãþøã…²²2VÑâ¹° ÖÖú*¯ENZ«£ÙÙÙø ´¨•ejðÖ6ÏÅ[ð”2228ÒèŽ`½@WD"7l˜šœüìÑ£IçÒu-[¶lĈ ,Àþww—ÏZ.|ÖWA¼9QTTÔÐÐÈËËãè4//ÏÒÒßdE>‹·à“ï³§ÑK@t—avvC¶lIÆà;ë­’’:yòdVVÖ±cÇð>k¹ðÇs‘Ÿ°°0ö·sëëëÃÃÃ]\\ð‚¬HÃgñÖRn½M/=m@ç[¿~Êóç’“ŸI:‘®KOOoÏž={÷îÅ? ²– O<9Ù´iÓ—/_&L˜’’RXX˜””4fÌ--­%K–àGñ\¦†F£±Gdñ–Þê( “ ¦=s¦õ–-Éuu’Î¥ëò÷÷Ÿ8q"¾­¨¨¸wï^ccc]]]oooÖµ#[·n•——1bÄøñã-,,ÂÃÃB OŸ>µ²² >|øÆ½½½ÓÒÒdeeñ£|||&Nœ8yòd—]]][[[MMMŽà‡0`À¨Q£œœœœœœBBBDwöÝÌ è#€„mÛv-**óÆU&&¼çF篤¤äéÓ§"Ï ôZêêêvvv‚ïu at:súôƒ4ZãŸþÚ§O¯[u twð| aÒÒR‡ͪ¨¨ýí·«’΀vƒ: ¼Aƒ”wïö:uê~jêKIç@ûÀ}]@W±téÙ{÷ RRV (é\ÔQ@WÑÔDÿå—--Œ«WWP(2’NÀ}]@W!++5ïóço% ‚‚: èB´µ•"#g_½šwìX¦¤s@ PG]‹­­ÑÊ•NÛ¶]ÍÎ.–t.´ žº&[´èTVVQrr€‘‘†¤Ó€¨£€®¨¥…1{öñ7o>]½ºB[[IÒéÐ*¨£€.ŠFkrs;ÔÔD¿|9@Q‘"étà žº(99ÙS§æÓh‹nj¢K:xƒ: èº45Ïóóæã¼y'[$<À}]@W÷îÝW7·ˆ•cbÉÉÉJ:þ®G]žžê… ‹KK¿úùE744K:þ®GÝCaágOÏÚšŠ'OÎWWWt:ü®G݃¡¡zJÊjƒéâ²7/¯LÒé𨣀nC]]!.n‰¾¾š§çáôô¿$At/ýúQÎówr2›3'jïÞƒ)éŒ@oÏGÝR|üãààxÍÈÈ9::ý%è½ Žº«'OÞ-^|†Á`<èckk$ét@/uÐUW×Äܹóvîܱë×O…Õ¿Açƒ: èö®^Í ¹D"wíòtt4•t: w: èöÊÊÊ.\ñîrCÅÈè­”¼|„äïïïîîÞ®C¤Å” tšœœœ›7/{xx46~ïÓ§Ÿ¤ÓÝUvvv\\ÔQ@/'é@÷æéé)ÄQðýQ@xPGáA„uÔQ¢¢" ’PK—.3f ëcxx8@(..Æ?~øð@ ddd×û… ¼\ºtITù·W}}}PP………¼¼ü¨Q£¶oßN§Ó9P„cÞPG kqppxöìYCCþñÖ­[RRRiiiøÇììlkkköCƒƒƒB%%%***|‚ÿòË/<@UüÏØ±cñâÆ‘a]]••ÕãÇÃÃß>}ëèèÈ`0Ú<œuÖ’uº;;»–––§OŸ"„îÝ»7gÎVÍÉÉ=z4™Lf?DEEeçÎ!&“YUUÅ'8™LÖÐÐÐÐÐPUUEiü¦¦&AÜ82 SUUMOOwqq122ruu}ôèQiiéÉ“'Û<œuÖ’uÐ[„èèhUUÕ;wž={VOO¯_¿~7nD-_¾|þüùøž4B¡<{ö !tõêUssó>}ú <øìÙ³!&“yèÐ!yyy›ŒŒ ö»‹øÍÆäää!C†¨©©-_¾¼©©‰g#úïIÖ¶ººº‰‰Ivv6B(++KGGgÑ¢EéééøÝÎììl{{{Öþééé{cMM Bèëׯ¿©¬¬,uuu>#É3wïø‰¸»»×ÔÔ?~!TUUÅÿ_ˆ‡‡‡‡‡ÿ}¸At{‚×ÑÜÜ\ Ú››9¶ étº††Fzz:†a“'OÞ¹s'†aÕÕÕ$iÏž=555L&³®®ŽÁ`˜ššž:uŠöôéÓÜu4??Ÿ•›ÏF>©^¸pAMMÉdŽ92>>Ã077·-[¶dgg‰Äºº:ŽŽxV) ÃŒ+**ðí´´´ádz~Ä¿Žò(ža›››‰DâË—/ñÆÄÄDÖYsĤŽfgg«¨¨ðIŽ˜<{ÇO$##ƒ#y>„«£p_ЋÈËË#„H$Ç6BˆH$ººº&&&VVVÞºuËÇÇ!¤¤¤”‘‘‘““£­­mooïÞ=))©’’’ádzbš››swdhhˆo———óiäÉÞÞþË—/?~þüù?þˆrrrJKKËÎζ²²’““cíillÌ'Nii©¦¦&þF®££ã»wïøÏ¿ø ϰŸ?f0úúúø'ˆñZEQQQCC¿˜f———gii‰o 2h|z0`Gò"uþááá‘””gkk‹ß­mhh`2™ñññÕÕÕóçÏŸ:ujuuµ––ÖóçÏYG½zõŠ;~©„*((Àÿ”·ÖÈ“††Æ!C¶nÝjaa¡¬¬ŒrttÌÉɹyó&þp”……À¯êX999m‚ ¸Ãª««‰Ä’’|‡ââb---|¬û÷ßó åããÆþvn}}}xx¸‹‹ þQAãÓ»””ØËÔQøÇ¸qãètzXX˜¯¯/ÞB œœœ¨Tjss3‰D¢P(~~~AAAÉÉÉŸ>}JIIY»v-w¨+V=~üxݺu³fÍj­ñÛ·oø3HŽm„ƒƒÃÕ«W'NœˆÔÓÓÓÓÓKIIᨣ<Ñh4|ÃÕÕ5$$äýû÷ùùù...BÍq‡%‘H^^^Ë—/÷îÝË—/7lØàã㣨¨ˆ:sæ •J=pàÏ 7mÚôåË— &¤¤¤&%%3FKKkÉ’%ø,äx`yþüy„Pjj*«eéÒ¥RRRµµµÜû³¶[ZZlmmåääðv*•:oÞ<%%%eeåE‹Õ×׳¢ñ>Ê x†­®®öõõUVVÖÔÔ\µj~‚[·nUTTÔ××ONNæ™!†a4mõêÕfff ÅÔÔtëÖ­ß¿om$ÙgÏ™gï­Hk„{> ëxº½¸¸8///‘ü5[¿~}iiill¬à‡²zçøÈ§ð×ùƒ†¯›ÖÞø`ýQ@¡ÆÆÆ?FGGゞB=|øÐÊÊÊÏÏÏÁÁ¡#qüýýiüu—Aƒûº€nO„÷uAo&Ü}]¸„uz&1-+ÖEV+ë: Ž@ÏÔE–ëñ Ž@ÏÔE–ëñ Ž@—ðõë×ïß¿³·ð\w µ²÷ún¬C0 ‹ŒŒ:t¨‚‚Âøñã¯]»†·óŒÃ½&ƒÁؽ{·‘‘‘¼¼üرc>|Øfæ½K{'n€®FÀùŒº¬GÍ™3GUUõãÇìí­Ív„¸–ã¹¾ëãÇkii¥¤¤|ýú5--ÍÀÀýoâxîeŸ×DÛ·oû:qø$·ìy¦¥¥áE·¤¤¤†K|`Ý4@/ÕMëhCCÙ3gF=bĈ£Gâ«¡±ãSG9–ã¹¾ë33³ØØXVX|"Cžq0^k¢q¯Ç‘êßÿ½yófmmí©S§¦¦¦2  R§‚uÓ Û¸uëÖ AƒÒÓÓ<øôéÓE‹±¯†Æ ûï·c9–ã¹¾kçââb333ÖÇ¡C‡¶ñZíÇm®7`À€ÐÐÐ’’__ßß~ûÍÄÄäÇ‚D·u$@UUuèС<ÈÊʪ­­å³'ÏuÇ8–ã¹¾맃 b_Üíõë×­ÅA¼ÖDÓÕÕms8ÜçÏŸ_½zU^^>räH2™Ìç¤z¨£ ‰‰‰oß¾522Z°`ÁÓ§O9öá³îžë»±~ºtéÒ5kÖܼy³ªªêöíÛ¡¡¡|¾Ê½&ÚâÅ‹Ù׉۴iÇ!L&óæÍ›Ó§O·¶¶Æ0,++ëüùó***í”nJ´7— óuÓç£,555ûöíÓ××/--åø÷ºcX+Ëq¯ïÆz>Ê`0öï߯¯¯ß¯_?—äädUUÕÖâp¯‰F§ÓwïÞm``зo_|1pö$/]ºdmmÛÔÔ$¾Qê°n —êóë2™L&“)--úe¸®]»¦££caaLHHغuë³gÏD¿¥¥…ý k÷óë@7&%%%Ž"ŠÊÏÏŸ5kVnnî÷ïßsrr6nܸ`ÁÆïETh°þ(ôpkÖ¬ùþýû´iÓ¾~ý:xð`??¿n±Ywuz8iié­[·nݺUÒ‰ôLp_ÔQ@xPGáA„ïzGGGI§º·/^ØÙÙµ÷(¨£€no̘13fÌ`0’NtovvvøT íóƒ磀𠎃: ïÿ`¨×|²«"CIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x77.html0000755000372000001440000001075712502417164023656 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- w -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Date__inherit__graph.png0000644000372000001440000001632212502417165030063 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“‡IDATxœíyTÇöÇï00Q »²WÜð5¢A}qA¸bD¢Á“¸D=O!y59¨ç$¸€ E6Q O !ˆŠ‚QŸ`tÀap`–îßý˼q–íÌýüU]}ûö­î/UÕÝÅ\I’€ oЉ¡@z7( „( „( „¦ª?^»vmGG‡¡¢AŒ.—{àÀ*k^PIIÉùóç.\Øã!½ƒŒŒŒ%K–èÅéÓ§{0$¤7Áb±Ôjp„0„0„0„0ÂèôçŸjÎÔ˜ÐÐÐêêêjii9nܸœœ=:g‚Ö–2oþ©S§XÚ¸}û6·º0:é—gÏž=ÚÂÂ"==½´´tñâÅ!!!.\0t\ÝÈÇÌçóù|~qq1ðÿÂÇǧ;N§å1þm"::Úßß?11‘Ú:thcccllìG}dØÀºssssss‹Å`ooß­§{“ˆÅb=zÔÛÛÛÖÖvÏž=)))nnnýúõÛ¾};DEE…‡‡S–b±ØÂÂâÖ­[pîܹ#Fp¹\ww÷”” "..ÎÛÛÛÊÊjâĉ………ª½7Õ™çææ¾÷Þ{</**ª³³Sk%¼Üó«–³²²Ö¯_¯|tttRRUnmm]¾|¹³³óÆ©Wðô­ÓÀùóç©®ÎÁÁaÏž=JË‚‚‚^½zUÓ€âĉ¶¶¶‘‘‘/^¼P U&“mÚ´ÉÎÎŽÇãmÚ´I&“iÞ @ vTWx³£´Cªžž®V£ ‰DÔ_vpp°H$Š€§OŸ^¹rÅÚÚZ&“‘$™ššêããC„X,îÓ§ÏáÇù|~RR’©©©X,ŽçñxÙÙÙ yyyÎÎÎPYYIÅ@¦OŸþðáÃ’’OOϘ˜­•$I¶¶¶9r„ OYnii¡P¨«!aaaUUUÆ £\Ñ·Nk"‘ˆÃá¬\¹²®®.55š››)Ë3f\¾|™Ïçë2øàƒ”®¶lÙ¢l>I’ß~ûíüùó?~\QQáëë»eËÕàKKK—-[fkkÛÐРµuª®Ô¸té%ÊêêêWÞnµ[ŸžžþRêF×TVVF’¤T*U+WVVÊår{{û‚‚’$gΜ¹gÏ’$…B¡™™YlllKK Ammm …ÂÇÇçØ±cJ·Ç×PEE…26OOO­•ºâ …ÐÒÒ¢u¯T*e³Ùüñµ™M¹¢oÖ:;;ïß¿/‹ Å•+W4-_i@¹rssS½ëC† áóùTùÒ¥K£F"IR"‘üøããÇ=zt|||[[›®æÓˆ$ÉúúúèèhggçÙ³g_¸pA¡Pè²TEoª¬¬¤)öÙgk×®çÉ“'ÔÞ«W¯.X° oß¾“'Oþé§ŸH’477¿}û¶Ò-5Ò© H"‘P{ËË˹\®ÖJšPíì슊ŠTkJKKÇŽÛÞÞþäÉUW”+úÖé 77wÒ¤I£FZ±b…ª¥T*¥,uhm UÃårUÇŠ~ýúQ=DzeË®]»Fým¢…T*=}úô¤I“üøñczcR›€ºå)láÂ…999TdÔÀ$‘H‚ÈÈÈ …ááá³gÏ …NNNåååÊ£îÞ½«éŠº ððáCGGGšJ­Ì™3gïÞ½¤Ê²ÝÔÔT™LfaaaggÇf³«««©úªª*''§.6P-‰D¼iÓ¦²²²ƒªZš™™QÍ×e êjРAª»lll”òmii)))±µµ:thqqqQQQkkk£¥¡©©éîÝ»uuu¾¾¾ÔÔûµQU“¾z ¹\Îãñììì’““©]‰„Ëåfff ‚„„.—+‘HvíÚÅãñΜ9ÃçóóóóµÎüýý+++KKK½¼¼vìØ¡µ’Ô1"I²¹¹ÙÚÚ:,,¬¨¨¨¼¼<&&Ο?Oí ¨®®¾sçŽ劾uZhiia±Xùùùííí›7o€²²2Õ€Æ`Ú´iJW»wïV=***jÁ‚µµµååå&LX·nUçΈˆ›ððð7nèºM4=B¡¸páÂܹsœœvìØQ__ÿÊ›®¼=1„‘$¹fÍsss‘H¤êÜÃÃÃá 2$77—$I©TúÍ7߸¹¹YZZNœ81--MS@‰‰‰ƒ ²±±ùüóÏ%‰ÖJòå‹¥vájkk,Xàèèhee5~üø³gÏ*w …Â%K–X[[;88|ñÅ”«®H3€}ûö½ûî»... áñxjaè28uꔫ«+ÇÛ°aCgg§êQ"‘hÅŠ °¶¶^½zu{{»ê]hiiÙ·oŸ‡‡Gmm­ÖÛD# ÌÌL??¿'Ntvvj5Ð…~Ô¶mÛúZ‡¨5Xkû»2®w+@ …BA=ð¾Ê™Ùë¢) ý¿Hìèèhhh8zôèÉ“'õîQÃÄÄÄÄäµ'²ÔÌL?èË‘’k×®;våÊ•S§NeâçwÞ‰ˆˆèJeObðŒ ©ò„rúôéE‹©Ö ˆ*,+===88XYó–LEºÂÂÂ-ñ =‡qb΀„|ÇÐ1ª/…®^½Êf³ ‘qe;ü²ÝÐAl6ûêÕ«ªšaáC»NÚk!×X? CGc¤àH7O²Å0Ç™†ÅxAé¦ê(r P}ÔС/( <¿ ÏÿZŸÔú<¿gÐhŒ¥ƒÉ__MÌàQºA£1^P@Z!¡úý!ƒêd|ÚÐ HϮË'/Õ¼xÏn(£¤G'ÿ7~Q˜˜Á#\Þ¤¤jRÿ7~Q2¨IRa ˜ŒÍW ó©–úΧÐükGcì €4¨MS¿(LÌàQZGcìà§Œ—!:!Óäbí{M­`LúôlLF ö@/#(Ò©· ¸£é`ô2òvhøé›µ'\ÃþWã8 L-z:*#DËÕ`€Iø»Ç:Á! a a a a a a>ÆÓ"®°t7tÆ aa#P@#P@úG5ʼn««ëÒ¥K¡ƒê.P@ÝBqq1ŸÏ¯««KNN‰D¾¾¾4¿Ê[]]mccÓ“áéP·`kkkooïäääï“ãîî¾ÿ~]ÆA<{ö¬'ÃÓ#( Ft%k ‹ÅZ³fM^^µ©™uÅÏÏTÒêÐçXÑgž½ðf?÷úwáÖWä­¯´î¡Éu*¿.Mqýúõþýû“$I“–EiLŸcåó¤t( Z~[Hþ¶Pµ¢+¹NhD“uEi¬5ÇŠ*o–'¥›@Ñò²€º˜ëDS@iiicÆŒ¡Êº²®(5s¬h=ËëæIé&pô¼Y®’$:4kÖ, Íº¢D3ÇŠV3=äIÑ( ×`äÈ‘………ÙÙÙ<ÇÊçIé&ðc*-¯ZTOA¦¦=—»X&“é1ÓsÞò¬ÍÝÍ›å:a‚Q©p9Ç+Àõ@¯„0ŸÂF €F €F €F €F €F €h¹½no1tF ¾‰¦…z‘ˆè{ „( „( „( „( „( „¸œƒ\ô*P@#pCBBBBB¢×½ \D ®zØ!Œ`ÔI¥ÒS§Nuttè+cãCn5ü|/ÁÐt\.wñâÅçÍ]0ùi¬¬,ýµ1 YYYL4À¨’Ëå€_Óz/,‹º‰o ÎF €F €F €FôzýùçŸ,KBCC]]]---Ç—““£GçLÐÚR½7ÿuéõÒ/Ïž=£Y¤§§—––.^¼8$$äÂ… †ŽËxÁO/íï˜Hm:´±±166ö£>2l`FKOô@,ëèÑ£ÞÞÞ¶¶¶{öìIIIqssëׯßöíÛ ***<<œ²‹Å·nÝ€sçÎ1‚Ë庻»§¤¤AqqqÞÞÞVVV'N,,,Tí½©Î<77÷½÷ÞãñxQQQZ+áåž_µœ••µ~ýzÕࣣ£“’’¨rkkëòåËmllœ7nÜH½‚§o®4söP–¼zõª¦ʼn'<<Ÿ¯Ëàƒ>PºÚ²e‹jž ú4?ºnMzzú+Íè<09¸ë*++#IR*•ª•+++år¹½½}AAI’3gÎܳgI’B¡ÐÌÌ,66¶¥¥… ˆ¶¶6…BáããsìØ1¥ÛãÇk ¨¢¢B›§§§ÖJ]q …BhiiѺW*•²Ùì?þøƒÚÌÎΦ\Ñ·Nk49{(ËWP®ÜÜÜTôÊ4?Zo CõÐ$ÚÊÊ þú‘lÕ2°Ùìyóæegg?}úôçŸ €–””8;;¿ÿþû¿ýö›‰‰Iuuõ¨Q£”>GŒ¡y"///ª0dȺº:šJM `ggwïÞ=ÕÊëׯ7îÅ‹MMM …ÂÃê÷ôôTº¢iÖ8ÎÇÇŒsìØ1UË!C†ª+>Ÿ¯º«¶¶ÖÁÁÊÕ:mÚ´šš]-Õ#Fñ¶p᜜*y50I$‚ 222„BaxxøìÙ³…B¡““Syy¹ò¨»wïjº¢þ"àáÃ‡ŽŽŽ4•Z™3gÎÞ½{I•¯{©©©2™ÌÂÂÂÎÎŽÍfWWÿÿ ¡ªª*''§.6P-šœ=”òh T] 4HuWÓüè&ÝWׇ0eô–år9dz³³KNN¦vI$.—›™™)¸\®D"ÙµkÇ;sæ ŸÏÏÏÏ×:ò÷÷¯¬¬,--õòòÚ±c‡ÖJRLj$Éææfkkë°°°¢¢¢òòò˜˜8þ<µ7444  ººúÎ;>>>”+úÖi  ¥¥…Åbåçç···oÞ¼ÊÊÊT#ƒiÓ¦)]íÞ½[õ¨¨¨¨ ÔÖÖ–——O˜0aݺu]¹5½cD/ ’$׬Ycnn.‰T{xxp8œ!C†äææ’$)•J¿ùæ777KKˉ'¦¥¥i (11qРA666Ÿþ¹D"ÑZ©4¦N¤–ï­¶¶vÁ‚ŽŽŽVVVãÇ?{ö¬r—P(\²d‰µµµƒƒÃ_|A¹êŠ€4ÐÌÙ£†.ƒS§N¹ººòx¼ 6tvvªEŸæG×­éê Û¶m }­CÔ®¸Ú&MeObðèa. ÿHìèèhhh8zôèÉ“'  òÚ~}íÚµ±cÇ®\¹rêÔ©Lü¼óÎ;]©ìI @wÃè×9NŸ>½hÑ"&ÃÂb±ÒÓÓƒƒƒß؃á{ ¤Wó7KWW×¥K— CÕ+ù› Š‹‹ù|~]]]rr²H$òõõ¥Éä]]]mÈÌÈFÌßW@¶¶¶öööNNNþþþ999îîîû÷ï×eLijgÏz2¼ÞÂÛ/ @ ¶ìA‹µfÍš¼¼Ú§g ·¬ê1lmm‡Z\\\TTDóT¥I’‡š5kÐ.¥PÒÅ…MMMwïÞ­««óõõ577³9o›€FŽYXX˜ýàÁƒÁƒ¯ZµêæÍ›Z-Accc}}ý•+W‚‚‚jjj¾üòKèìì”J¥G"‘DGG@[[uˆX,¦ óæÍÛºuë£G***8 ê™ ˆ‹/ùùù‘$YTTtòäÉ·ö-“îˇ0UZZZöíÛçááQ[[«¶Kõ ¸¸¸„……555)÷j.¥Éd“&M²´´¤ èNdffúùù8q¢³³³»ÛÈ`<„½ýß‚ ÂÔ´çÖÈd2µ%­F óoa†_ÎÑݘ˜˜˜˜ôèHÝ[Ô£Þ¶9Òà€F €F €F €F €Fèá1>!á­ýå/,˜›³ ˆñÂH@NNNl6û-þ¯ƒwß@ …Æò#ez‡Ífwý´µ‚9SuÒØø|̘¯Y,(+ûšÇ³2t8F Ît’Ÿ_Áf³LLXyy· ‹ñ‚ÒÉ©S¥r9)—é饆ŽÅxAi§¦FpçN u55øO?ÚAi'7÷–™Ùÿ?|™™™ž=‹£˜vP@ÚIO/•ÉTY&“ã(¦ îÞ­ôè¥ÿ«­}zï^ƒ¡â1fP@ZÈÉ)SŽ_ff윜2CÅcÌ €Ô!2#ãºrü¢É×ñ™&( unܨÚ4ë››E7nÔöx8Æ HÍñ‹ÂÔ”}æ Žbê €^B&SääÜT¿(ärEv¶ö]gP@/qýzHÔÁf›˜š²MMÙ•Mž?—à(¦~L} ‘¨ãìÙ[ÊÍÔÔßà“O&*kæÌýÎ;\-Gþ]AÑqâã—:ã‡0„( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „þ‘ͨ¨¨û÷ï0zž?ïýúµ:x{{ÿý÷ ÀÀb±XC‡åñxŒ¡÷ÒÜÜ|ïÞ=ÃÞA=¤ýfÈÂ… §Njè(z%¿üòË×_mØp„0„0„0„0Âð“hÃR__ÿÉ'ŸêÅ›¿¿¿²lgg7räÈÈÈÈþýûëŹq‚=ž‰‹‹ËÊÊÊÈÈøê«¯ÚÛÛW¯^-‹uóùü?þ¸'ÃÓ;( =Ó¿ÿwß}ׯÆfôèÑÿþ÷¿222t!‰z2<½Ó äïŸ¿lÙ²¹s禥¥]¼x1$$dÖ¬YG€~øá»ï¾£,%I```ee%‡‡‡OŸ>=44ôâÅ‹@’dNNβeËfΜ¹víÚ[·n©Ž8õõõþþþEEEK–, úá‡d2™ÖJ¥±êZ#g±XsæÌ)))¡6ÿý÷O?ý400pþüùiiiðÙgŸÀ¼yó(¹\~øðá      Ã‡Ëårý_M}Ó 7oÞŸ¿wïÞ²²²ääd}^Äî¡whÑ¢EÓ§O€ÐÐP ‹ÀÀ@hkk6l˜©©iEEüüóÏÓ§Og±X2™Œ$I‰DÂápÏ;×§OŸ¬¬¬5kÖLž<ÙÚÚz„ «V­Ò}ú̘1ãСCEEEB¡°´´4!!AÓU\\\}}ýÿûßÄÄÄiÓ¦éªlooÏËË£öª– µµU(>}ú´¼¼|ûöí|>?88d2™\.755•J¥ÔäæÅ‹Ô!‰„*Lž<ùÈ‘#MMMÕÕÕ›7o>sæLw\.ýò6ô@&&&S¦L¹pá”)S¨‡³uëÖøøøææfGGÇèèh‡³hÑ"…BqàÀÖÖVj’±sçN5W~øá† :::¨K­Z[[ccc©©jÖ­[Gx<Þˆ#¨‘ÈÒÒ222rçÎæææ¡¡¡›7oÎÌÌ>|øüùóúé'‹‹ûôÓOY,Ö”)S"""zâò1Ãð뢣£™/çHLLlllü׿þÕõCÔÞAk}%­ß÷Ôz‡ZÎaØ;Øë‡0©TÊçóóóóÿùÏ:–¿#½^@÷ï߈ˆ˜1cƨQ£˜øéÛ·ïìÙ³»R‰¨ò– aOpCz=( „( „( „†‘xóæMš%W <0t†~ sqq©««3`½—Ç0 éíàa a a aÄÿò£-ÄØ+5IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ScopedConnection.html0000755000372000001440000002167412502417164027432 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ScopedConnection Class Reference

Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer. More...

#include <scopedconnection.h>

Public Member Functions

 ScopedConnection (ConnectionPool &pool, bool safe=false)
 Standard constructor. More...
 
 ~ScopedConnection ()
 Destructor. More...
 
Connectionoperator-> () const
 Access the Connection pointer.
 
Connectionoperator* () const
 Dereference.
 
 operator void * () const
 Truthiness operator.
 

Detailed Description

Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer.

Constructor & Destructor Documentation

mysqlpp::ScopedConnection::ScopedConnection ( ConnectionPool pool,
bool  safe = false 
)
explicit

Standard constructor.

Grabs a Connection from the specified pool.

mysqlpp::ScopedConnection::~ScopedConnection ( )

Destructor.

Releases the Connection back to the ConnectionPool.

References mysqlpp::ConnectionPool::release().


The documentation for this class was generated from the following files:
././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiStatementsOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiStatementsOption__inherit__graph.pn0000644000372000001440000001433712502417165033376 0ustar robertousers‰PNG  IHDR¸ËRçÎÿbKGDÿÿÿ ½§“”IDATxœíyTSWÇo 1€ ­T†E;jÕSQ(ˆØN§nhÙ´™ñ¨D«§ƒ”ñà8:µ*«â‚KG¬¨¨-‹"Q«C€ª Ñ€d…lóÇcÒ¼ZH"ü>Ý÷Ë}¿ßïÝ÷ͽ÷½wóBR©T^ÙØ o   €À‚:ОräÈäää#GŽŒ;ÖÆÆæïÿ;B(66622’¨) i4Ú/¿ü‚:w··………‹‹Ë‘#GBJ¥rÏž=îîîÖÖÖ3fÌ(**ÒìꉞÿìÙ³ãÇg2™±±±z¨ç0¡YÎÉɉ'TB`iiÉf³srrôºš>}:BÈÁÁAËO{{û_|Á`0œãâ∛×$éèÑ£îîî#FŒØ¾}û€¶ùë¡`8N„PHHHGGGVVBhÉ’%ééé¡çÏŸ_¿~ÝÎÎN&“©Tªœœ¥R) ‡ –––ÆãñöïßO¥R…Bazz:“ÉÌËËkjjºpႳ³3BˆËå9…ÀÀÀššš²²2‹• ×¨R©ÚÛÛ333‰ôÔå¶¶6„Pkk«VþÅÅÅööö}ø'ªi–ÃÂÂüýýëêꪫ«===‰ ¡Å‹·µµeff"„^¼xÓtïl¼9&$”ÊÊJ•JÕÕÕ¥Uær¹r¹ÜÁÁáÊ•+*•êã?NNNV©T|>ßÌÌlÇŽmmmJ¥R ( ƒªÝ:tHW(ÕÕÕêÜX,–^coyö&”ÒÒRƒÑ‡¢.wuuQ(”{÷îö¼¼<"(B¨¨¨HóØqšÎB1•¡!dmm233Ó*#„(ÊÂ… óòòž?~ùòå°°0„­­mQQQYY™³³óìÙ³úé'2™\__?iÒ$µOoooÝ@nnnDa„ }u¡ÓéUUUZöªªªÉ“'ã»jiiQ(®®®Ä&‹ÅR×5j”æ±›&$”¾ >sæÌÉ“'gΜI (‰D©Tž:uŠÏçGFF~úé§|>ßÉÉéÎ;ê½îß¿¯ëŠøZ#„jjjˆ³Ò›Q/aaa‰‰‰š×8"‘(%%%((ß•½½=…B©¯¯'6ëêꜜœˆ2™l’'e »,ü¡GÝÍê-Ëår&“iooŸM|$‘H,,,rss[[[322,,,$ɶmÛ˜Lf~~>Ç+((Ð;Gñóóãr¹·nÝrss‹×kTõ2GQ©T/_¾?~üìÙ³ jjjòòò<<<>üðC©TÚ‡@ ê9G õ÷÷¯¯¯¿{÷®‡‡´·vè»é†Ö¥o¡¨TªÕ«W¿óÎ;šÎ]]]ÍÍÍ'L˜pöìY•JÕÕÕ•˜˜8vìX++«3f;vLW(YYYï¾û.ƒÁX³fD"ÑkTõ<©še•J% 7lØàééI£Ñ<<<’’’Äbqoþe2ÙÌ™3­¬¬´üðùüˆˆ;;;GGÇuëÖAA(ýÀ–-[BCC_k­¬µÙ‡ñÍèGWøF(oÇ 7©TÚÔÔtàÀãÇ;—!ŠIΛt¸yóæ”)S¾üòK__ß?âgøðáÑÑÑ8Æ~ô?8 ©ø`'Ož\ºté@GÊH$‡³dÉ’òvô(€Ñ¡X€P,@(º<ÎÈÈ0L `€p¡899Q(”·è¢‘FóF‰ÅÕÆN …¢~N4p øåñÛ…B¡œ8q+B¨º:‘L~+·0GéAii-Ÿ/âó…%%µÆÎÅ´¡ôàÔ©ÛT*ÙÌŒ|êT¹±s1-@(¿#•Ê.\¸#—+d2å… w¤R™±32!@(¿sõêµ8¤RÙÕ«Œ›IBùÓ§o«—È“H¤Ó§o7“„ÒMG‡ôòå_ %±©P(/_þµ£ÞÿÓ ¥›‹ï*•=î(•ª¼k¬|L J7¹¹·µî(©TªÜ\}º¡ „Pk« ¤„«T*5J¥ª¤„ÛÚ*0VV&!„Ο¯Ò{–D"?G×>¡ „ÐÉ“·µ&(J¥î¼€PÐÓ§mÕÕ ½ݹÓÐÔÔnø¬L·cþ€òü¹pÔ(ºz‚BÜs³°èþE'™L~þ\0jÝhù™ðôX›èèC¡ôôåÆNÄ´€¡À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €ÀÂo\;vì£G *•’ËŸ;‘^;vl}}½ƒA($iݺu3fÌ0pÜÁAiié®]» ÖŒó²¿éÓ§%ôÛŽ±Þ¹s  €À„`a¢B!i`kk»dÉ’ÖÖÖ×òP[[«þ;¯?ŽH$b³Ù'N´¶¶ž:uê¶mÛär¹áÓ0"&*„PII Çkjj*,,lll\³f±2S¦L)//OII©¨¨Ø¼yóÑ£GçÌ™£P(ôÖ¯¯¯g0D™N§oÚ´É€É*ƒƒâp8¯¬ÃårÕ›7nܰ±±y­(\.·¿Ž...ÎÇÇG.—«-B¡ð½÷ÞËÌÌèкp8£œ5ÓíQ4¡P(L&“(···ñÅ ÃÙÙ9..N*•öfT#“ÉØl¶½½=“Éd³Ù2™ !tþüù÷ߟF£9::&''5I$ÒÑ£GÝÝÝGŒ±}ûv˜““O¡PÔ---ÙlvNN1²œ={vüøñL&366¶³³súôé!ÔsèÑ›¤Þˆ¦ˆáµ‰ðz”ªª*@ÐÑÑñðáC__ßÄÄD⣰°0ÿºººêêjOOÏ„„½FͯuJJÊ¢E‹ž|xtt´±³0 ”?“ÉLKK3v†„`B°¡X€P,Œó»///{{{ÇÅD$²DYZŠŒˆ~ZZZîÞ½kø³f„‡‚ëׯohh0|\LêêìI$4yr‹±Ñ­­íœ9s ×=Š)sçNüy;B/®÷ömìtL˜£ôàܹ**•B¥’ÿýï*cçbZ€P~G¡Pž8qK.WÈåÊ'n)JcgdB€P~§¬¬žÏï^Àç oÞ4ôLÊïœ9SA¥v¯ ¦RÉgÎT7“„ÒMW—üìÙ*¹¼{›\®Ìϯ’ÉôÿrgBéæúõÿŠDš‘¨óÚµ‡ÆÊÇÔ¡tsút…Òã·Ÿ 9/FŸn@(!$u^¼xWë2G¡PÜÕêf†, „ºté¾zv¢‰\®(,¼oø|L B>}»—Wrso8Ó„‚^¾_¿þ_…BÏ£ ¥RyãFÍË—bÃgej€Pн{M}Ü„•Ë÷ï72Ó "„fŸ±nÝq„Ю]!j‹ Í9™¦ûÛcC¢)33*qèC€À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €EWsÅÆÆ>xðÀˆÙ˜--!{ûfc'bdÜÝÝwïÞ­Þì!‰ô§?ý‰Éd#1À„xöìÙ¯¿þª© íw¸ûúú4)Àô¸víÚ·ß~«i9 €À„`B°0-¡<}úÔÏϯ¿¼ùùù…‡‡k½š{Ó¦M~~~OŸ>ÅO@Ó(‘HRSSCBBæÎžÝÕÕÕ_ ›2¦%”~§¹¹¹®®N½)îܹƒ³#Çûì³Ïˆ²••UHH÷ÏwïÞÍår9ÎÆ‹‹‹ÓÒÒ´ê¿Òá@3±¹P&Ož|íÚ5õfIIɤI“pvT*•DÙÆÆfÕªUDùçŸŽŠŠrss£ÓéÞÞÞ±±±ÅÅÅZõ_ép ˆX¯-??¿‚‚‚åË—ÏŸ?ÿرc—.] ùä“O8€úᇶoßNÔ”H$AAA\.!TRRzéÒ%„J¥:sæÌòåË?þøã¯¾úê—_~Ñìó‰Þ¾¸¸8""bÁ‚?üðƒL&ÓkD=‡­±Ã××÷ÚµkêÑçúõë³gÏÖ­©;âüíoC-\¸PëS–ŸŸ¯> ÞÞÞG«>B¨´´4***((hÑ¢EÇŽÓ­ —ËÓÒÒ,X°`Á‚´´4¹\þʶíc¯Ë—//_¾ü¯ýë‰'tcé6þð&=JEEEjjêªU«233KKK÷ïßsäÈ‘ŽŽŽÙ³g+ „Pqq±££#‹Å’J¥ óçÏ?qâDDDÄöíÛ¥Ré… >¼råÊ#GŽ,[¶ì»ï¾Ó ”ŸŸÿÝwßmÛ¶íæÍ›Dsë5Òéô¸¸8âSÍ2BÈÓÓS"‘£H$ª¬¬üðÃqŽqß¾}¡¼¼<-;›Í®¬¬\¼x1›Íæp8---ºõÅbq||¼››[NNNLLLfff{{»–ÃÜÜ\—žžþÏþ³²²2;;û•mÛÇ^?ÿüóÞ½{£££ÓÓÓf,½ÓZ¼‰P–.]J£ÑB¡¡¡4-((!$<==©Tjuu5BèòåË$I&“©T*‰DbnntîܹaÆ>}zõêÕ>>>vvvÓ¦M[¹r¥n ˜˜gggww÷•+Wöf´´´üä“OˆO5Ë!2™|ø²š)S¦p8œï¿ÿÞËËëÇ ½råŠVssóýû÷ÇÆÆÚÙÙÏCD"‘V‚‚‚µk×2™L—èèè[·n½²mûØkþüùVVVsçÎEi :zÿ üMþ†…F£!„¨TªV!D&“}||nܸáââRQQ±aĵµõ®]»rss³³³Ç:mÚ4Çb±Ô>]\\t9;;…1cÆ´¶¶öaì__ßüã‘‘‘šãŽ˜Z$•JKJJ|}}ÝÝÝÝÝÝ#""<˜––æïï¯YJ¥666îØ±C"‘¸¹¹éuÕÜܼhÑ"õ¦¥¥%Qè£mûØ‹Á`hÕT£·ñqV‹þÿ¿__ߤ¤¤÷Þ{ÏËËkäÈ‘¡ÎÎN¥R™ —˯\¹²eË–üü|ƒQWWçêêJìõèÑ#]W„€ìììú0ö———X,¾{÷îíÛ· áj¢P((ÊóçÏqM¥R%%%3†8‰Dš:uê¹sç´ªuvv&$$$$$̘1C&“躲±±Ùµk—““BH(òù|œzÛ‹ÔË?"¢^ßÚÚ'œ&ýÕãíí­P(:DôŸ!‰Äf³oܸ!‰d2•J6lؼyóRSS‹‹‹ù|þ­[·222t]íÙ³çéÓ§>ÌÊÊš3gNoF‘HtáÂâSÍr÷’ɳfÍÚ¹s§»»;NWÛ­¬¬B—.]‹Åºs‰D¢¹ùÎ;ï~ûí·eee<ïþýû©©©šÝ Q_&“Éår*•ÚÕÕEL#Äb±–CŸÌÌÌ–––úúú7æççã´íkíEÄÒÛø8±´è¡'F,Ïš5‹°˜››oÞ¼9==}ñâŧNÚºu«¹¹ùÒ¥K,X°wïÞðððÇGGGëº ذaÃ×_ýÁ„……õflooß±cñ©fYŸŸßãǵÆ›ÈÈÈ}ûö—'Z»888xyyiöó7n ÈÌÌ\±bERRÒĉ£¢¢´ê[YYÅÄÄ$%%-[¶ÌÁÁÁßßãÆZ###i4ZTTÔºuë\]]õ¾.˜{iÆÒÛø8±´Ð^²uëÖ?¾Ì ++«¹¹ù›o¾ÁßåéÓ§áááEEEz7û0±Ì@SýÜ£tuuñx¼‚‚‚¿üå/ýë0.ý,”DGGÏ›7óhoXZZ~úé§8FÀ0 ÈÐ¼í øÐ VÿÿK¥Òƒ–——óx¼1cÆøøø|þùç å•;ÂÜY“AÞ£ˆÅâèèè‡FGGgdd„……ÆÅÅ)•J½õ{[] òåðáÃt:}çÎd2!äììRÓÛê`÷(………Ë–-#TB`aañùçŸê]´ÐÛê¡P˜œœüÙgŸ§¦¦«ÚtŸïb³Pˆ§!š X,Ö“'Oˆ²Ö¢…ÞV|ÿý÷­­­iii)))åååÇ'ìZÏ÷ø€ŒÉ`JoH$õEïJ-ärùÕ«W׬Yãèèèââ²bÅ uÍ>žï2³P¬¬¬FŒQ[[«e¯­­7nQÆY´ÐÖÖ¦T*GEl:99©köñ|1˜…‚ 8|ø°æ5ŽT*=~üø|@l666…>-ØÚÚ’ÉdGl655ú@}>ßd r¡,_¾¼­­mýúõ·nÝjllüé§Ÿbbb †úXïJ­ÕT*ÕÏÏo÷îÝ<ï·ß~Û¿@@€¡ÄØ ò>“F£edddgg§¥¥5559::úûû›™™ˆE R©Ôßß?,,ŒB¡èÿóŸÿhúY»víž={V¯^mfföÑG©×< †î³¸ñÚð¬xC†®P`ÑÂk1t…B§Óׯ_oì,Þ†®P€×„`B°¡XhßGqqq±µµ5bB€)ÐÖÖV__ßëëCׯ_ßÐÐ`ð¬Sdþüùš›$ÌßgC˜£X€P,@(   €ÅÿAìpõ³|}VIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/vallist_8h_source.html0000755000372000001440000023653012502417162024513 0ustar robertousers MySQL++ Reference Manual
vallist.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999, 2000 and 2001 by
6  MySQL AB, and (c) 2004, 2005 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the CREDITS
8  file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_VALLIST_H)
29 #define MYSQLPP_VALLIST_H
30 
31 #include "manip.h"
32 
33 #include <string>
34 #include <vector>
35 
36 namespace mysqlpp {
37 
38 
58 
59 template <class Seq1, class Seq2, class Manip>
61 {
64  const Seq1* list1;
65 
68  const Seq2* list2;
69 
71  const char* delim;
72 
75  const char* equl;
76 
79  Manip manip;
80 
91  equal_list_ba(const Seq1& s1, const Seq2& s2, const char* d,
92  const char* e, Manip m) :
93  list1(&s1),
94  list2(&s2),
95  delim(d),
96  equl(e),
97  manip(m)
98  {
99  }
100 };
101 
102 
113 
114 template <class Seq1, class Seq2, class Manip>
116 {
119  const Seq1* list1;
120 
123  const Seq2* list2;
124 
127  const std::vector<bool> fields;
128 
130  const char* delim;
131 
134  const char* equl;
135 
138  Manip manip;
139 
152  equal_list_b(const Seq1& s1, const Seq2& s2,
153  const std::vector<bool>& f, const char* d,
154  const char* e, Manip m) :
155  list1(&s1),
156  list2(&s2),
157  fields(f),
158  delim(d),
159  equl(e),
160  manip(m)
161  {
162  }
163 };
164 
165 
184 
185 template <class Seq, class Manip>
187 {
189  const Seq* list;
190 
193  const char* delim;
194 
197  Manip manip;
198 
206  value_list_ba(const Seq& s, const char* d, Manip m) :
207  list(&s),
208  delim(d),
209  manip(m)
210  {
211  }
212 };
213 
214 
224 
225 template <class Seq, class Manip>
227 {
229  const Seq* list;
230 
233  const std::vector<bool> fields;
234 
237  const char* delim;
238 
241  Manip manip;
242 
252  value_list_b(const Seq& s, const std::vector<bool>& f,
253  const char* d, Manip m) :
254  list(&s),
255  fields(f),
256  delim(d),
257  manip(m)
258  {
259  }
260 };
261 
262 
271 
272 template <class Seq1, class Seq2, class Manip>
273 std::ostream& operator <<(std::ostream& o,
274  const equal_list_ba<Seq1, Seq2, Manip>& el)
275 {
276  typename Seq1::const_iterator i = el.list1->begin();
277  typename Seq2::const_iterator j = el.list2->begin();
278 
279  while (1) {
280  o << *i << el.equl << el.manip << *j;
281  if ((++i == el.list1->end()) || (++j == el.list2->end())) {
282  break;
283  }
284  o << el.delim;
285  }
286 
287  return o;
288 }
289 
290 
295 
296 template <class Seq1, class Seq2, class Manip>
297 std::ostream& operator <<(std::ostream& o,
298  const equal_list_b <Seq1, Seq2, Manip>& el)
299 {
300  typename Seq1::const_iterator i = el.list1->begin();
301  typename Seq2::const_iterator j = el.list2->begin();
302 
303  int k = 0;
304  while (1) {
305  if (el.fields[k++]) {
306  o << *i << el.equl << el.manip << *j;
307  }
308  if ((++i == el.list1->end()) || (++j == el.list2->end())) {
309  break;
310  }
311  if (el.fields[k]) {
312  o << el.delim;
313  }
314  }
315 
316  return o;
317 }
318 
319 
328 
329 template <class Seq, class Manip>
330 std::ostream& operator <<(std::ostream& o,
331  const value_list_ba<Seq, Manip>& cl)
332 {
333  typename Seq::const_iterator i = cl.list->begin();
334 
335  while (1) {
336  o << cl.manip << *i;
337  if (++i == cl.list->end()) {
338  break;
339  }
340  o << cl.delim;
341  }
342 
343  return o;
344 }
345 
346 
351 
352 template <class Seq, class Manip>
353 std::ostream& operator <<(std::ostream& o,
354  const value_list_b<Seq, Manip>& cl)
355 {
356  typename Seq::const_iterator i = cl.list->begin();
357 
358  int k = 0;
359  while (1) {
360  if (cl.fields[k++]) {
361  o << cl.manip << *i;
362  }
363  if (++i == cl.list->end()) {
364  break;
365  }
366  if (cl.fields[k]) {
367  o << cl.delim;
368  }
369  }
370 
371  return o;
372 }
373 
374 
384 
385 void create_vector(size_t size, std::vector<bool>& v, bool t0,
386  bool t1 = false, bool t2 = false, bool t3 = false,
387  bool t4 = false, bool t5 = false, bool t6 = false,
388  bool t7 = false, bool t8 = false, bool t9 = false,
389  bool ta = false, bool tb = false, bool tc = false);
390 
391 
403 
404 template <class Container>
405 void create_vector(const Container& c, std::vector<bool>& v,
406  std::string s0, std::string s1, std::string s2,
407  std::string s3, std::string s4, std::string s5,
408  std::string s6, std::string s7, std::string s8,
409  std::string s9, std::string sa, std::string sb,
410  std::string sc);
411 
412 
413 
423 
424 template <class Seq>
425 value_list_ba<Seq, do_nothing_type0>
426 value_list(const Seq& s, const char* d = ",")
427 {
428  return value_list_ba<Seq, do_nothing_type0>(s, d, do_nothing);
429 }
430 
431 
437 
438 template <class Seq, class Manip>
439 value_list_ba<Seq, Manip>
440 value_list(const Seq& s, const char* d, Manip m)
441 {
442  return value_list_ba<Seq, Manip>(s, d, m);
443 }
444 
445 
454 
455 template <class Seq, class Manip>
456 inline value_list_b<Seq, Manip>
457 value_list(const Seq& s, const char* d, Manip m,
458  const std::vector<bool>& vb)
459 {
460  return value_list_b<Seq, Manip>(s, vb, d, m);
461 }
462 
463 
469 
470 template <class Seq, class Manip>
471 value_list_b<Seq, Manip>
472 value_list(const Seq& s, const char* d, Manip m, bool t0,
473  bool t1 = false, bool t2 = false, bool t3 = false,
474  bool t4 = false, bool t5 = false, bool t6 = false,
475  bool t7 = false, bool t8 = false, bool t9 = false,
476  bool ta = false, bool tb = false, bool tc = false)
477 {
478  std::vector<bool> vb;
479  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
480  ta, tb, tc);
481  return value_list_b<Seq, Manip>(s, vb, d, m);
482 }
483 
490 
491 template <class Seq>
492 value_list_b<Seq, do_nothing_type0>
493 value_list(const Seq& s, const char* d, bool t0,
494  bool t1 = false, bool t2 = false, bool t3 = false,
495  bool t4 = false, bool t5 = false, bool t6 = false,
496  bool t7 = false, bool t8 = false, bool t9 = false,
497  bool ta = false, bool tb = false, bool tc = false)
498 {
499  std::vector<bool> vb;
500  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
501  ta, tb, tc);
502  return value_list_b<Seq, do_nothing_type0>(s, vb, d, do_nothing);
503 }
504 
505 
514 
515 template <class Seq>
516 value_list_b<Seq, do_nothing_type0>
517 value_list(const Seq& s, bool t0,
518  bool t1 = false, bool t2 = false, bool t3 = false,
519  bool t4 = false, bool t5 = false, bool t6 = false,
520  bool t7 = false, bool t8 = false, bool t9 = false,
521  bool ta = false, bool tb = false, bool tc = false)
522 {
523  std::vector<bool> vb;
524  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
525  ta, tb, tc);
526  return value_list_b<Seq, do_nothing_type0>(s, vb, ",", do_nothing);
527 }
528 
529 
550 
551 template <class Seq1, class Seq2>
552 equal_list_ba<Seq1, Seq2, do_nothing_type0>
553 equal_list(const Seq1& s1, const Seq2& s2, const char *d = ",",
554  const char *e = " = ")
555 {
556  return equal_list_ba<Seq1, Seq2, do_nothing_type0>(s1, s2, d,
557  e, do_nothing);
558 }
559 
560 
566 
567 template <class Seq1, class Seq2, class Manip>
568 equal_list_ba<Seq1, Seq2, Manip>
569 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
570  const char* e, Manip m)
571 {
572  return equal_list_ba<Seq1, Seq2, Manip>(s1, s2, d, e, m);
573 }
574 
575 
583 
584 template <class Seq1, class Seq2, class Manip>
585 equal_list_b<Seq1, Seq2, Manip>
586 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
587  const char *e, Manip m, const std::vector<bool>& vb)
588 {
589  return equal_list_b<Seq1, Seq2, Manip>(s1, s2, vb, d, e, m);
590 }
591 
592 
598 
599 template <class Seq1, class Seq2, class Manip>
600 equal_list_b<Seq1, Seq2, Manip>
601 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
602  const char* e, Manip m, bool t0, bool t1 = false,
603  bool t2 = false, bool t3 = false, bool t4 = false,
604  bool t5 = false, bool t6 = false, bool t7 = false,
605  bool t8 = false, bool t9 = false, bool ta = false,
606  bool tb = false, bool tc = false)
607 {
608  std::vector<bool> vb;
609  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
610  t9, ta, tb, tc);
611  return equal_list_b<Seq1, Seq2, Manip>(s1, s2, vb, d, e, m);
612 }
613 
614 
621 
622 template <class Seq1, class Seq2>
623 equal_list_b<Seq1, Seq2, do_nothing_type0>
624 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
625  const char* e, bool t0, bool t1 = false, bool t2 = false,
626  bool t3 = false, bool t4 = false, bool t5 = false,
627  bool t6 = false, bool t7 = false, bool t8 = false,
628  bool t9 = false, bool ta = false, bool tb = false,
629  bool tc = false)
630 {
631  std::vector<bool> vb;
632  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
633  t9, ta, tb, tc);
634  return equal_list_b<Seq1, Seq2, do_nothing_type0>(s1, s2, vb,
635  d, e, do_nothing);
636 }
637 
638 
644 
645 template <class Seq1, class Seq2>
646 equal_list_b<Seq1, Seq2, do_nothing_type0>
647 equal_list(const Seq1& s1, const Seq2& s2, const char* d, bool t0,
648  bool t1 = false, bool t2 = false, bool t3 = false,
649  bool t4 = false, bool t5 = false, bool t6 = false,
650  bool t7 = false, bool t8 = false, bool t9 = false,
651  bool ta = false, bool tb = false, bool tc = false)
652 {
653  std::vector<bool> vb;
654  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
655  t9, ta, tb, tc);
656  return equal_list_b<Seq1, Seq2, do_nothing_type0>(s1, s2, vb,
657  d, " = ", do_nothing);
658 }
659 
660 
668 
669 template <class Seq1, class Seq2>
670 equal_list_b<Seq1, Seq2, do_nothing_type0>
671 equal_list(const Seq1& s1, const Seq2& s2, bool t0, bool t1 = false,
672  bool t2 = false, bool t3 = false, bool t4 = false,
673  bool t5 = false, bool t6 = false, bool t7 = false,
674  bool t8 = false, bool t9 = false, bool ta = false,
675  bool tb = false, bool tc = false)
676 {
677  std::vector<bool> vb;
678  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
679  t9, ta, tb, tc);
680  return equal_list_b<Seq1, Seq2, do_nothing_type0>(s1, s2, vb,
681  ",", " = ", do_nothing);
682 }
683 
684 } // end namespace mysqlpp
685 
686 #endif // !defined(MYSQLPP_VALLIST_H)
const char * delim
delimiter to use between each pair of elements
Definition: vallist.h:130
value_list_b(const Seq &s, const std::vector< bool > &f, const char *d, Manip m)
Create object.
Definition: vallist.h:252
Holds a list of items, typically used to construct a SQL &quot;value list&quot;.
Definition: vallist.h:186
const Seq * list
set of objects in the value list
Definition: vallist.h:189
equal_list_ba(const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
Create object.
Definition: vallist.h:91
Manip manip
manipulator to use when inserting the list into a C++ stream
Definition: vallist.h:241
const Seq2 * list2
the list of objects on the right-hand side of the equals sign
Definition: vallist.h:123
Manip manip
manipulator to use when inserting the equal_list into a C++ stream
Definition: vallist.h:79
const Seq * list
set of objects in the value list
Definition: vallist.h:229
const char * delim
delimiter to use between each pair of elements
Definition: vallist.h:71
Declares the Query stream manipulators and operators.
equal_list_b(const Seq1 &s1, const Seq2 &s2, const std::vector< bool > &f, const char *d, const char *e, Manip m)
Create object.
Definition: vallist.h:152
const Seq1 * list1
the list of objects on the left-hand side of the equals sign
Definition: vallist.h:119
const char * delim
delimiter to use between each value in the list when inserting it into a C++ stream ...
Definition: vallist.h:193
Manip manip
manipulator to use when inserting the list into a C++ stream
Definition: vallist.h:197
const Seq2 * list2
the list of objects on the right-hand side of the equals sign
Definition: vallist.h:68
Same as value_list_ba, plus the option to have some elements of the list suppressed.
Definition: vallist.h:226
const std::vector< bool > fields
for each true item in the list, the pair in that position will be inserted into a C++ stream ...
Definition: vallist.h:127
const std::vector< bool > fields
delimiter to use between each value in the list when inserting it into a C++ stream ...
Definition: vallist.h:233
const char * equl
&quot;equal&quot; sign to use between each item in each equal pair; doesn&#39;t have to actually be &quot; = &quot; ...
Definition: vallist.h:75
Manip manip
manipulator to use when inserting the equal_list into a C++ stream
Definition: vallist.h:138
Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed...
Definition: vallist.h:115
Holds two lists of items, typically used to construct a SQL &quot;equals clause&quot;.
Definition: vallist.h:60
const Seq1 * list1
the list of objects on the left-hand side of the equals sign
Definition: vallist.h:64
const char * equl
&quot;equal&quot; sign to use between each item in each equal pair; doesn&#39;t have to actually be &quot; = &quot; ...
Definition: vallist.h:134
const char * delim
delimiter to use between each value in the list when inserting it into a C++ stream ...
Definition: vallist.h:237
value_list_ba(const Seq &s, const char *d, Manip m)
Create object.
Definition: vallist.h:206
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBDriver.html0000755000372000001440000031453012502417163025631 0ustar robertousers MySQL++ Reference Manual

Provides a thin abstraction layer over the underlying database client library. More...

#include <dbdriver.h>

Public Types

enum  nr_code { nr_more_results, nr_last_result, nr_error, nr_not_supported }
 Result code returned by next_result() More...
 

Public Member Functions

 DBDriver ()
 Create object.
 
 DBDriver (const DBDriver &other)
 Duplicate an existing driver. More...
 
virtual ~DBDriver ()
 Destroy object.
 
ulonglong affected_rows ()
 Return the number of rows affected by the last query. More...
 
std::string client_version () const
 Get database client library version. More...
 
bool connect (const MYSQL &mysql)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual bool connect (const char *host, const char *socket_name, unsigned int port, const char *db, const char *user, const char *password)
 Connect to database server. More...
 
bool connected () const
 Return true if we have an active connection to the database server. More...
 
void copy (const DBDriver &other)
 Establish a new connection as a copy of an existing one. More...
 
bool create_db (const char *db) const
 Ask the database server to create a database. More...
 
void data_seek (MYSQL_RES *res, ulonglong offset) const
 Seeks to a particualr row within the result set. More...
 
void disconnect ()
 Drop the connection to the database server. More...
 
bool drop_db (const std::string &db) const
 Drop a database. More...
 
bool enable_ssl (const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
 Enable SSL-encrypted connection. More...
 
const char * error ()
 Return error message for last MySQL error associated with this connection. More...
 
int errnum ()
 Return last MySQL error number associated with this connection. More...
 
size_t escape_string (char *to, const char *from, size_t length)
 Return a SQL-escaped version of the given character buffer. More...
 
size_t escape_string (std::string *ps, const char *original, size_t length)
 Return a SQL-escaped version of a character buffer. More...
 
bool execute (const char *qstr, size_t length)
 Executes the given query string. More...
 
MYSQL_ROW fetch_row (MYSQL_RES *res) const
 Returns the next raw C API row structure from the given result set. More...
 
const unsigned long * fetch_lengths (MYSQL_RES *res) const
 Returns the lengths of the fields in the current row from a "use" query. More...
 
MYSQL_FIELD * fetch_field (MYSQL_RES *res, size_t i=UINT_MAX) const
 Returns information about a particular field in a result set. More...
 
void field_seek (MYSQL_RES *res, size_t field) const
 Jumps to the given field within the result set. More...
 
void free_result (MYSQL_RES *res) const
 Releases memory used by a result set. More...
 
st_mysql_options get_options () const
 Return the connection options object.
 
std::string ipc_info ()
 Get information about the IPC connection to the database server. More...
 
ulonglong insert_id ()
 Get ID generated for an AUTO_INCREMENT column in the previous INSERT query. More...
 
bool kill (unsigned long tid)
 Kill a MySQL server thread. More...
 
bool more_results ()
 Returns true if there are unconsumed results from the most recent query. More...
 
nr_code next_result ()
 Moves to the next result set from a multi-query. More...
 
int num_fields (MYSQL_RES *res) const
 Returns the number of fields in the given result set. More...
 
ulonglong num_rows (MYSQL_RES *res) const
 Returns the number of rows in the given result set. More...
 
bool ping ()
 "Pings" the MySQL database More...
 
int protocol_version ()
 Returns version number of MySQL protocol this connection is using. More...
 
std::string query_info ()
 Returns information about the last executed query. More...
 
bool refresh (unsigned options)
 Asks the database server to refresh certain internal data structures. More...
 
bool result_empty ()
 Returns true if the most recent result set was empty. More...
 
bool select_db (const char *db)
 Asks the database server to switch to a different database.
 
std::string server_version ()
 Get the database server's version number. More...
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool set_option (mysql_option moption, const void *arg=0)
 Set MySQL C API connection option.
 
bool set_option (unsigned int option, bool arg)
 Set MySQL C API connection option. More...
 
bool set_option_default (Option *o)
 Same as set_option(), except that it won't override a previously-set option.
 
bool shutdown ()
 Ask database server to shut down. More...
 
std::string server_status ()
 Returns the database server's status. More...
 
MYSQL_RES * store_result ()
 Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API data structure the results are stored in. More...
 
unsigned long thread_id ()
 Returns the MySQL server thread ID for this connection. More...
 
MYSQL_RES * use_result ()
 Returns a result set from the last-executed query which we can walk through in linear fashion, which doesn't store all result sets in memory. More...
 

Static Public Member Functions

static size_t escape_string_no_conn (char *to, const char *from, size_t length)
 SQL-escapes the given string without reference to the character set of a database server. More...
 
static size_t escape_string_no_conn (std::string *ps, const char *original=0, size_t length=0)
 SQL-escapes the given string without reference to the character set of a database server. More...
 
static bool thread_aware ()
 Returns true if MySQL++ and the underlying MySQL C API library were both compiled with thread awareness. More...
 
static void thread_end ()
 Tells the underlying MySQL C API library that this thread is done using the library. More...
 
static bool thread_start ()
 Tells the underlying C API library that the current thread will be using the library's services. More...
 

Protected Member Functions

bool connect_prepare ()
 Does things common to both connect() overloads, before each go and establish the connection in their different ways.
 
bool set_option_impl (Option *o)
 Common implementation of set_option(Option*) and the delayed option setting code in connect_prepare()
 

Detailed Description

Provides a thin abstraction layer over the underlying database client library.

This class does as little as possible to adapt between its public interface and the interface required by the underlying C API. That is, in fact, its only mission. The high-level interfaces indended for use by MySQL++ users are in Connection, Query, Result, and ResUse, all of which delegate the actual database communication to an object of this type, created by Connection. If you really need access to the low-level database driver, get it via Connection::driver(); don't create DBDriver objects directly.

Currently this is a concrete class for wrapping the MySQL C API. In the future, it may be turned into an abstract base class, with subclasses for different database server types.

Member Enumeration Documentation

Result code returned by next_result()

Enumerator
nr_more_results 

success, with more results to come

nr_last_result 

success, last result received

nr_error 

problem retrieving next result

nr_not_supported 

this C API doesn't support "next result"

Constructor & Destructor Documentation

mysqlpp::DBDriver::DBDriver ( const DBDriver other)

Duplicate an existing driver.

Parameters
otherexisting DBDriver object

This establishes a new database server connection with the same parameters as the other driver's.

References copy().

Member Function Documentation

ulonglong mysqlpp::DBDriver::affected_rows ( )
inline

Return the number of rows affected by the last query.

Wraps mysql_affected_rows() in the MySQL C API.

Referenced by mysqlpp::Query::affected_rows().

std::string mysqlpp::DBDriver::client_version ( ) const
inline

Get database client library version.

Wraps mysql_get_client_info() in the MySQL C API.

Referenced by mysqlpp::Connection::client_version(), and set_option_impl().

bool mysqlpp::DBDriver::connect ( const MYSQL &  mysql)

Establish a new connection using the same parameters as an existing connection.

Parameters
mysqlexisting MySQL C API connection object

References connect_prepare().

Referenced by mysqlpp::Connection::connect(), and copy().

bool mysqlpp::DBDriver::connect ( const char *  host,
const char *  socket_name,
unsigned int  port,
const char *  db,
const char *  user,
const char *  password 
)
virtual

Connect to database server.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

References connect_prepare().

bool mysqlpp::DBDriver::connected ( ) const
inline

Return true if we have an active connection to the database server.

This does not actually check whether the connection is viable, it just indicates whether there was previously a successful connect() call and no disconnect(). Call ping() to actually test the connection's viability.

Referenced by connect_prepare(), mysqlpp::Connection::connected(), copy(), set_option(), and ~DBDriver().

void mysqlpp::DBDriver::copy ( const DBDriver other)

Establish a new connection as a copy of an existing one.

Parameters
otherthe connection to copy

References connect(), connected(), and disconnect().

Referenced by mysqlpp::Connection::copy(), and DBDriver().

bool mysqlpp::DBDriver::create_db ( const char *  db) const

Ask the database server to create a database.

Parameters
dbname of database to create
Returns
true if database was created successfully
void mysqlpp::DBDriver::data_seek ( MYSQL_RES *  res,
ulonglong  offset 
) const
inline

Seeks to a particualr row within the result set.

Wraps mysql_data_seek() in MySQL C API.

void mysqlpp::DBDriver::disconnect ( )

Drop the connection to the database server.

This method should only be used by MySQL++ library internals. Unless you use the default constructor, this object should always be connected.

Referenced by connect_prepare(), copy(), mysqlpp::Connection::disconnect(), and ~DBDriver().

bool mysqlpp::DBDriver::drop_db ( const std::string &  db) const

Drop a database.

Parameters
dbname of database to destroy
Returns
true if database was created successfully
bool mysqlpp::DBDriver::enable_ssl ( const char *  key = 0,
const char *  cert = 0,
const char *  ca = 0,
const char *  capath = 0,
const char *  cipher = 0 
)

Enable SSL-encrypted connection.

Parameters
keythe pathname to the key file
certthe pathname to the certificate file
cathe pathname to the certificate authority file
capathdirectory that contains trusted SSL CA certificates in pem format.
cipherlist of allowable ciphers to use
Returns
False if call fails or the C API library wasn't compiled with SSL support enabled.

Must be called before connection is established.

Wraps mysql_ssl_set() in MySQL C API.

int mysqlpp::DBDriver::errnum ( )
inline

Return last MySQL error number associated with this connection.

Wraps mysql_errno() in the MySQL C API.

Referenced by mysqlpp::Connection::errnum().

const char* mysqlpp::DBDriver::error ( )
inline

Return error message for last MySQL error associated with this connection.

Can return a MySQL++ DBDriver-specific error message if there is one. If not, it simply wraps mysql_error() in the MySQL C API.

Referenced by mysqlpp::Connection::error(), and mysqlpp::Connection::set_option().

size_t mysqlpp::DBDriver::escape_string ( char *  to,
const char *  from,
size_t  length 
)
inline

Return a SQL-escaped version of the given character buffer.

Parameters
tocharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
frompointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

Wraps mysql_real_escape_string() in the MySQL C API.

Proper SQL escaping takes the database's current character set into account, however if a database connection isn't available DBDriver also provides a static version of this same method.

See Also
escape_string_no_conn(char*, const char*, size_t)

Referenced by mysqlpp::SQLStream::escape_string(), mysqlpp::Query::escape_string(), and escape_string().

size_t mysqlpp::DBDriver::escape_string ( std::string *  ps,
const char *  original,
size_t  length 
)

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps

This method has three basic operation modes:

  • Pass just a pointer to a C++ string containing the original data to escape, plus act as receptacle for escaped version
  • Pass a pointer to a C++ string to receive escaped string plus a pointer to a C string to be escaped
  • Pass nonzero for all parameters, taking original to be a pointer to an array of char with given length; does not treat null characters as special

There's a degenerate fourth mode, where ps is zero: simply returns 0, because there is nowhere to store the result.

Note that if original is 0, we always ignore the length parameter even if it is nonzero. Length always comes from ps->length() in this case.

ps is a pointer because if it were a reference, the other overload would be impossible to call: the compiler would complain that the two overloads are ambiguous because std::string has a char* conversion ctor. A nice bonus is that pointer syntax makes it clearer that the first parameter is an "out" parameter.

See Also
comments for escape_string(char*, const char*, size_t) for further details.
escape_string_no_conn(std::string*, const char*, size_t)

References escape_string().

static size_t mysqlpp::DBDriver::escape_string_no_conn ( char *  to,
const char *  from,
size_t  length 
)
inlinestatic

SQL-escapes the given string without reference to the character set of a database server.

Wraps mysql_escape_string() in the MySQL C API.

See Also
escape_string(char*, const char*, size_t)

Referenced by mysqlpp::SQLStream::escape_string(), mysqlpp::Query::escape_string(), and escape_string_no_conn().

size_t mysqlpp::DBDriver::escape_string_no_conn ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
)
static

SQL-escapes the given string without reference to the character set of a database server.

See Also
escape_string(std::string*, const char*, size_t), escape_string_no_conn(char*, const char*, size_t)

References escape_string_no_conn().

bool mysqlpp::DBDriver::execute ( const char *  qstr,
size_t  length 
)
inline

Executes the given query string.

Wraps mysql_real_query() in the MySQL C API.

Referenced by mysqlpp::Query::exec(), mysqlpp::Query::execute(), mysqlpp::Query::store(), and mysqlpp::Query::use().

MYSQL_FIELD* mysqlpp::DBDriver::fetch_field ( MYSQL_RES *  res,
size_t  i = UINT_MAX 
) const
inline

Returns information about a particular field in a result set.

Parameters
resresult set to fetch field information for
ifield number to fetch information for, if given

If i parameter is given, this call is like a combination of field_seek() followed by fetch_field() without the i parameter, which otherwise just iterates through the set of fields in the given result set.

Wraps mysql_fetch_field() and mysql_fetch_field_direct() in MySQL C API. (Which one it uses depends on i parameter.)

Referenced by mysqlpp::ResultBase::ResultBase().

const unsigned long* mysqlpp::DBDriver::fetch_lengths ( MYSQL_RES *  res) const
inline

Returns the lengths of the fields in the current row from a "use" query.

Wraps mysql_fetch_lengths() in MySQL C API.

Referenced by mysqlpp::UseQueryResult::fetch_lengths(), and mysqlpp::StoreQueryResult::StoreQueryResult().

MYSQL_ROW mysqlpp::DBDriver::fetch_row ( MYSQL_RES *  res) const
inline

Returns the next raw C API row structure from the given result set.

This is for "use" query result sets only. "store" queries have all the rows already.

Wraps mysql_fetch_row() in MySQL C API.

Referenced by mysqlpp::UseQueryResult::fetch_raw_row(), mysqlpp::UseQueryResult::fetch_row(), and mysqlpp::StoreQueryResult::StoreQueryResult().

void mysqlpp::DBDriver::field_seek ( MYSQL_RES *  res,
size_t  field 
) const
inline

Jumps to the given field within the result set.

Wraps mysql_field_seek() in MySQL C API.

Referenced by mysqlpp::ResultBase::ResultBase().

void mysqlpp::DBDriver::free_result ( MYSQL_RES *  res) const
inline

Releases memory used by a result set.

Wraps mysql_free_result() in MySQL C API.

Referenced by mysqlpp::StoreQueryResult::StoreQueryResult().

ulonglong mysqlpp::DBDriver::insert_id ( )
inline

Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.

Return values
0if the previous query did not generate an ID. Use the SQL function LAST_INSERT_ID() if you need the last ID generated by any query, not just the previous one. This applies to stored procedure calls because this function returns the ID generated by the last query, which was a CALL statement, and CALL doesn't generate IDs. You need to use LAST_INSERT_ID() to get the ID in this case.

Referenced by mysqlpp::Query::insert_id().

std::string mysqlpp::DBDriver::ipc_info ( )
inline

Get information about the IPC connection to the database server.

String contains info about type of connection (e.g. TCP/IP, named pipe, Unix socket...) and the server hostname.

Wraps mysql_get_host_info() in the MySQL C API.

Referenced by mysqlpp::Connection::ipc_info().

bool mysqlpp::DBDriver::kill ( unsigned long  tid)
inline

Kill a MySQL server thread.

Parameters
tidID of thread to kill

Wraps mysql_kill() in the MySQL C API.

See Also
thread_id()

Referenced by mysqlpp::Connection::kill().

bool mysqlpp::DBDriver::more_results ( )
inline

Returns true if there are unconsumed results from the most recent query.

Wraps mysql_more_results() in the MySQL C API.

Referenced by mysqlpp::Query::more_results().

nr_code mysqlpp::DBDriver::next_result ( )
inline

Moves to the next result set from a multi-query.

Returns
A code indicating whether we successfully found another result, there were no more results (but still success) or encountered an error trying to find the next result set.

Wraps mysql_next_result() in the MySQL C API, with translation of its return value from magic integers to nr_code enum values.

Referenced by mysqlpp::Query::store_next().

int mysqlpp::DBDriver::num_fields ( MYSQL_RES *  res) const
inline

Returns the number of fields in the given result set.

Wraps mysql_num_fields() in MySQL C API.

ulonglong mysqlpp::DBDriver::num_rows ( MYSQL_RES *  res) const
inline

Returns the number of rows in the given result set.

Wraps mysql_num_rows() in MySQL C API.

bool mysqlpp::DBDriver::ping ( )
inline

"Pings" the MySQL database

This function will try to reconnect to the server if the connection has been dropped. Wraps mysql_ping() in the MySQL C API.

Return values
trueif server is responding, regardless of whether we had to reconnect or not
falseif either we already know the connection is down and cannot re-establish it, or if the server did not respond to the ping and we could not re-establish the connection.

Referenced by mysqlpp::Connection::ping().

int mysqlpp::DBDriver::protocol_version ( )
inline

Returns version number of MySQL protocol this connection is using.

Wraps mysql_get_proto_info() in the MySQL C API.

Referenced by mysqlpp::Connection::protocol_version().

string mysqlpp::DBDriver::query_info ( )

Returns information about the last executed query.

Wraps mysql_info() in the MySQL C API

Referenced by mysqlpp::Query::info().

bool mysqlpp::DBDriver::refresh ( unsigned  options)
inline

Asks the database server to refresh certain internal data structures.

Wraps mysql_refresh() in the MySQL C API. There is no corresponding interface for this in higher level MySQL++ classes because it was undocumented until recently, and it's a pretty low-level thing. It's designed for things like MySQL Administrator.

bool mysqlpp::DBDriver::result_empty ( )
inline

Returns true if the most recent result set was empty.

Wraps mysql_field_count() in the MySQL C API, returning true if it returns 0.

Referenced by mysqlpp::Query::result_empty().

std::string mysqlpp::DBDriver::server_status ( )
inline

Returns the database server's status.

String is similar to that returned by the mysqladmin status command. Among other things, it contains uptime in seconds, and the number of running threads, questions and open tables.

Wraps mysql_stat() in the MySQL C API.

Referenced by mysqlpp::Connection::server_status().

std::string mysqlpp::DBDriver::server_version ( )
inline

Get the database server's version number.

Wraps mysql_get_server_info() in the MySQL C API.

Referenced by mysqlpp::Connection::server_version().

bool mysqlpp::DBDriver::set_option ( Option o)

Sets a connection option.

This is the database-independent high-level option setting interface that Connection::set_option() calls. There are several private overloads that actually implement the option setting.

See Also
Connection::set_option(Option*) for commentary

References connected(), and set_option_impl().

Referenced by mysqlpp::Connection::set_option().

bool mysqlpp::DBDriver::set_option ( unsigned int  option,
bool  arg 
)

Set MySQL C API connection option.

Manipulates the MYSQL.client_flag bit mask. This allows these flags to be treated the same way as any other connection option, even though the C API handles them differently.

bool mysqlpp::DBDriver::shutdown ( )

Ask database server to shut down.

User must have the "shutdown" privilege.

Wraps mysql_shutdown() in the MySQL C API.

Referenced by mysqlpp::Connection::shutdown().

MYSQL_RES* mysqlpp::DBDriver::store_result ( )
inline

Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API data structure the results are stored in.

See Also
use_result()

Wraps mysql_store_result() in the MySQL C API.

Referenced by mysqlpp::Query::store(), and mysqlpp::Query::store_next().

bool mysqlpp::DBDriver::thread_aware ( )
static

Returns true if MySQL++ and the underlying MySQL C API library were both compiled with thread awareness.

This is based in part on a MySQL C API function mysql_thread_safe(). We deliberately don't call this wrapper thread_safe() because it's a misleading name: linking to thread-aware versions of the MySQL++ and C API libraries doesn't automatically make your program "thread-safe". See the chapter on threads in the user manual for more information and guidance.

Referenced by mysqlpp::Connection::thread_aware().

static void mysqlpp::DBDriver::thread_end ( )
inlinestatic

Tells the underlying MySQL C API library that this thread is done using the library.

This exists because the MySQL C API library allocates some per-thread memory which it doesn't release until you call this.

Referenced by mysqlpp::Connection::thread_end().

unsigned long mysqlpp::DBDriver::thread_id ( )
inline

Returns the MySQL server thread ID for this connection.

This has nothing to do with threading on the client side. It's a server-side thread ID, to be used with kill().

Referenced by mysqlpp::Connection::thread_id().

static bool mysqlpp::DBDriver::thread_start ( )
inlinestatic

Tells the underlying C API library that the current thread will be using the library's services.

Return values
Trueif there was no problem

The MySQL++ user manual's chapter on threads details two major strategies for dealing with connections in the face of threads. If you take the simpler path, creating one DBDriver object per thread, it is never necessary to call this function; the underlying C API will call it for you when you establish the first database server connection from that thread. If you use a more complex connection management strategy where it's possible for one thread to establish a connection that another thread uses, you must call this from each thread that can use the database before it creates any MySQL++ objects. If you use a DBDriverPool object, this applies; DBDriverPool isn't smart enough to call this for you, and the MySQL C API won't do it, either.

Referenced by mysqlpp::Connection::thread_start().

MYSQL_RES* mysqlpp::DBDriver::use_result ( )
inline

Returns a result set from the last-executed query which we can walk through in linear fashion, which doesn't store all result sets in memory.

See Also
store_result

Wraps mysql_use_result() in the MySQL C API.

Referenced by mysqlpp::Query::use().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x70.html0000755000372000001440000001430112502417165024650 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption.html0000755000372000001440000002606712502417163031502 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReportDataTruncationOption Class Reference

Set reporting of data truncation errors. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReportDataTruncationOption:
Collaboration diagram for mysqlpp::ReportDataTruncationOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set reporting of data truncation errors.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CompressOption__inherit__graph.png0000644000372000001440000000774012502417165032176 0ustar robertousers‰PNG  IHDR»pÉÝ–JbKGDÿÿÿ ½§“•IDATxœíkTW×ÇOn( áNaAEêªVXŠAD¬/A…"µPíR«‚­®V¨µ.Û®V”;ÈÅ ÌSF¤TAE­¼i­H´h€pI€dæý0®4„!f“(ç÷iggfŸ½gþ9çÌÉ$CBQ@ *CÖt× ¨1 b Ä€ŠCG=Ílß¾ýîÝ»êikrÂb±6lØ ††Hê¹V"‘Ho¿ý¶Úš„\¾|ÙÓÓ³¨¨H m©©ìܹ3((HmÍM*Ôy`á<B ¨1 b Ä€Šc²(¦­­D"M`ÀØØØwÞyÇØØxÁ‚ ‰D#™¨™É¢˜‰¥¯¯oþüù III{÷î=yòäòåË¥R)îö<F£a¶©©é_|¡Æd'õ]]¿I8pÀ¢ººšB¡f̘±bÅ 77·œœœˆˆˆ±Û#òôéȘÑh‰‰‰jMwBÑ¢>†D"egg»¸¸XXX$&&æççO›6ÍÄÄä믿lß¾=<<Û²¿¿ŸJ¥^¿~P^^îîîn``@§Óóóó‚$''»¸¸{zzr¹\ùQÎ;7sæLKKËíÛ· á:ÁèDÞ.((Ø¿?& CCÃØØØ‚‚ÜPkkk…8===}ôF³··‰‰‹ÅØq8yò¤‹‹ËÔ©S>üJù‹€ª@aaás·Ù¼y³P(ÌÌÌ …´´4À“'OjjjÌÍÍGFFP-((puuE¤¿¿___?55•Ïçgeeéèèô÷÷§¥¥YZZ²ÙìÎÎÎŠŠ {{{@kk+V,føùùÝ»wïÊ•+NNNñññ¸NE{zz222°ôdvww7 ««K!ÿºº:+++%ñ±ÍäíŸöööææf777¬QÀ† º»»322OŸ>}îáe2™L&Så³ñRh—bšššPV°[[[%‰µµuuu5Š¢‰‰‰(Š ]]Ý#GŽtww#Ò××'•J]]]Oœ8! ›››;V1ÍÍÍØ»………NNN¸ÎñòO1—/_¦ÑhJâc™=<*æ%%Ø2ÌXP”—Ãé¯Ío ^5d2°±1Ál‰‹GŒŒôeïÂUð»kþóŸQQ¹?j:mŽJb@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1‚È?lÉÑÑQÓéhd2U_ßAÓYh ±±±ò"õ?x÷ïßg2™³gÏÖTrmãìÙ³ýõ—¼GñŸgÏžý’­‡¼IÔÔÔ(xà<B ¨1 b Ä€ŠC»þ3üáÇ~ø!—˨€OŸ>MII¹}ûvoo¯££cHHˆ——×DEˆÅâ'N444ðù|//¯M›6a®T΄=\Þä>F(FDDèëëÇÅÅ¥¦¦.[¶ìÛo¿mhÐê™ ²X¬––‹•žžRYYƒ îö|>Íš5˜mdd´yóæW¡võ1KNNμyóbcc±—ŽŽŽ °°pÁ‚šML yyy¦¦¦?üð™LØÛÛ/X°`ëÖ­gÕªUc·GD(b¶‰‰Iddä«ÎpÃ`08NXXX``à©S§.\¸°yóæU«VeggŽ=zøðalK‘HäïïßÚÚ øý÷ßÃÃÃýüü‚ƒƒ/\¸@Q´´´4,,, à³Ï>»~ý:ƒÁµòðáCƒQWWºvíÚ£GŽŒŒà:eËïˆÙ—.]Z¿~½|òaaa{öìÁìþþþÄÄÄ5kÖ0™Ì”””áááçV§$«¦¦¦7ÞºuK"‘¤¦¦®]»víÚµ©©©‰·üñœ•••[¶lÁä‚a``°iÓ¦ÊÊJÜÖ?ýôSÀºuëj¯ºªªª°°°>øàÌ™3DO=Æ‹ŒJ)))‘‘‘—/_ÎÊÊŠŽŽÎÏÏ …ÞÞÞuuuR©PWWgccãää$‹ãããÏœ9zøða±X\QQ‘——‘ŸŸ¿eË–C‡m¨¬¬ìСC W¯^=uêÔxNSSÓ˜˜ì]™Ýßß/F-öO™2ÅÒÒ³úé§®®®ÔÔÔ¤¤¤†††Ó§O?·:%Y}ùå—ÎÎÎÅÅÅ|>?--íûï¿ojjÊÉÉÁ-׉åìää¤pœœœþþûoÜÖ?`³Ù »ŒWÝo¿ývìØ1‹•––Ö××§úI—ñ"ŠÙ¸q#•JõóóS©T@__Ÿ›››ŽŽNss3 ªªÊÏÏD"ŒŒ (*‰ôôôüýýËËËõõõKJJ¢¢¢¼¼¼ÌÍÍ.\1¶¡èèh{{{—ˆˆˆÊÊÊñœ†††²[fcÏt!É?YV‰Dò믿nÛ¶ÍÆÆ†N§oݺU_IuJ²ŠŒŒœ7ož‡ÃÙ±c‡¥¥%Ng±Xõõõ¸åã:Ç;à$I6Ám]õꌌV¬X}ñ"Š¡R©@&“½¼¼.]ºÔÛÛÛØØèëë 066þñÇÿøã&“ùùçŸ777“H$>Ÿ/ÿa¢Óéc²··Ç ‡®®.%α›™™Ý¿_ÞÙÒÒ544ÔÝÝ ˆ­­-æ·³³“…RR’dÙ£GÖ¯_Ï`0 FLL ŸÏÇ-×idd4uêÔ¶¶6…ZÚÚÚf̘¡zùJª£Ñhc+"ÄÄ_+-]º´¶¶öâÅ‹sæÌ±°° !_^^°oß¾¾¾>ÖÞÞ.ÛKáë.ŒŽŽÌxð๹¹'.‹-*,,”€Tee¥D"Ñ××733#“É|>ówvvb‡Rp“‚‚.—ËårËËË?Ž[>®àëë›——'e$‹OŸ>ýÞ{ï©^¾’êÆëtUgâãîî.•Jsss±Ž@"‘bcc/]º400022¢£££¯¯¿råÊ”””ºº:@P__Ÿžž>6TrròÇ[ZZ233—/_>žs`` ¢¢{WÞ¿yófBBÂ;wx<^nn.›ÍƆ?ƒñóÏ?óùü?ÿü3++ ëU7+^^^?æñx{öì)++Ã-×  ëîîÞµkW}}}GGGmmmtt4F“]Bã¶.‰äsx™êžËÄ_]“Éä%K–üòË/K–,Á*AÞx b Ä€Š*B Å™/N733Ó`B­‚ÇãùúúÊÏ|G­ùîÚµëÁƒjÏ ¢½Ðéô   yϨ>y.p!T „P1b@Å@ˆñÿV1yì̇U•IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x77.html0000755000372000001440000001056112502417165024663 0ustar robertousers MySQL++ Reference Manual
 

- w -

mysql++-3.2.2+pristine.orig/doc/html/refman/tab_s.png0000644000372000001440000000027012502417165021754 0ustar robertousers‰PNG  IHDR$ÇÇ[IDATxíÝ ‚@@Ñ£?Q…¤"š¢%¦I‘—Šf–6[´HÃäQƒ<Þâõþ]ždr Í’s?ˆO=Ñññw'ÌF‡Ž íðö-~rÃ[œèŠ­ì¬mƒÖ¬ƒݯнŠÕF)Yº% §`nÌ,9B ™’©!ÑŒ\ý<Å#üîî•IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MutexFailed-members.html0000755000372000001440000001061412502417163030023 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MutexFailed Member List

This is the complete list of members for mysqlpp::MutexFailed, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
MutexFailed(const char *w="lock failed")mysqlpp::MutexFailedinlineexplicit
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReconnectOption__inherit__graph.png0000644000372000001440000001342512502417165032320 0ustar robertousers‰PNG  IHDR½»¿ìzbKGDÿÿÿ ½§“ÊIDATxœíÝyTSgúð7 „¶¨#•µv´U΂¥tjÝ…Zª¢Ñ™£ÖJÆÑÓQ‡ã(p:vÚ¢²J«qÙ´´b¥¢T Eiêüʰ¹°„¥,&„l÷÷Ç턌·˜êó9Ï{ßÜû¾On¾äÞ›„@Á0 ð”¨d&%È rˆ€Ü"èf›)???==ÝlÓ=‡|||>ùäóÌE1ÛõTTTÔíÛ·ýýýÍ3Ý󦵵µªªÊl¦ùžoBþþþyyyæœñù‘——m¶éàü¹D@n@Ä󕛦¦& …2òùü—^zÉÞÞþ•W^9räˆJ¥"¥3{¾r3±$ÉÂ… kjj’““kkk÷íÛwöìÙÐÐPµZmpý––‹…·÷îÝkÆb'˜Y¯Ãc]\\¾þúk†š={ök¯½æçç—““?v}FÓÛÛ‹·Y,VRR’YËP÷|C¡PN:åãããââ’””tæÌ™™3g:88üíoCíܹsóæÍøšR©”ÉdÞ½{!TRR2oÞ<//¯3gÎ „4Mjjª½½½¿¿yy¹îq?L\ºtiΜ9l6{çÎÃÃÃ;ÑècŠn[ 8p ÎÖÖ–Ïç ƒC-^¼!äææ¦7ÎÀÀÀ»ï¾Ëb±8NBB‚\.Ç÷ÃÙ³g}||œœœRRRžé>'3—ÈÈÈÈÈÈ'®†Z¿~½X,ÎÊÊBEEE‰Åbü ŠŸþùÆÎÎÎJ¥Ã0@àëë«Ñh¤R©µµuZZšH$ÊÎΦÓéR©4==Ífvtt\¹r…Ãá „ñ»Œ7ªªª¸\î¡C‡ vb600™™‰—§m÷÷÷#„zzzô꯬¬tuug||5ÝvlllHHHss³P(ôóóÃ'E­]»¶¿¿?33!ÔÛÛ;þ~ËÍÍ5ç£i‰¹¹sç†a …B¯ÝØØ¨R©ÜÜܾþúk Ã"""’’’0 ëëë³²²úðÃûûû5D"Q«Õ¾¾¾Ÿ}ö™vØÏ?ÿ|ln„B!~knn.—Ë5Øi¬Nc¹¹}û6‹Åg|¼GÛV(4íÞ½{xaa!>)B¨¼¼\÷¾¿ßÌœ‹;N!„ìííBVVVzm„F[½zuaaáÏ?ÿ|í򵯯X„ÐÔ©SËËË«ªª8ÎÒ¥KoÞ¼I¥R[ZZæÏŸ¯sÞ¼yc'òööÆsçÎmkk§s,GGG77·ºº:½þººº ˜>TWW—Z­ž5k¾ÈårµkzxxèÞw‹b‰¹_dddQQQ^^Þ’%Kð£L&Óh4/^ìëëÛ¼yó›o¾Ù××çééùÃ?h·úÏþ3v(ü‡!ÔÐЀ?HÆ: ŠMLLÔ½zLNN7}(WWWÖÒÒ‚/677{zzâm*Õ‚³=³™~œÒ>'l«T*6›íêêš““ƒß$“Élllòóó{zz222llld2Ù‘#GØlvqq±H$*--5x~ÜØØX]]ííí}àÀƒ˜‘ó Ã?~©±ý` œßßÕÕ•Ífóù|¥R‰º|ùòË/¿Ìd2ÝÝÝ“’’ð5)ÊÙ³g}||œœœRRRðN@pàÀ¦ÐÖÖ–Ïç ü0téÒ¥9sæ°Ùì;w/^¼!äææ†F§ ipFËEV`M¾©««“H$b±¸¾¾>(((11¿)666$$¤¹¹Y(úùù:tÈ`§î}rròš5k=z$ ÿûßÿõ¯‹Å cÓ¦Mmmm!ÔÝÝÏ»víÚþþþÌÌL„Pooo?B¨§§G¯ÂÊÊJWWW|–°°°†††ªª*.—«7µnÛ`åcgÏû|3 r£kÊ”)øaK¡PÐh´{÷îá«r¹\ƒºØÜ¹sE"Þ.++›?þðððO?ý$•JÕjõ7Ðÿ‹¡òòr|"¼ÓXnnß¾Íb±ðY„B¡öÞéM­m,ÒàŒãïrs3 þþTcc#—ËE ýë_ÿZ¶lÙÇ»ººÔjõ¬Y³ðu¸\n[[›ÁNÝ¡ˆ5Ø©;ÔêÕ«÷íÛ÷ðáC¡P~üøñááa…BÁ`0d2ÙÁƒB‰ÄX%èîî ùòË/‹ŠŠ-Zäéé¹}ûv|…]»v555ÕÔÔìß¿ÿí·ßÆ;¥R©î O,rr ëIàü†J¥Î›7¯ªª ¿©¯¯oÆ ÎÎÎîîî»wï–Éd;uO2ÄbñƧNêìì¼uëÖÁÁA ÃŽ;æää4mÚ´'N¬_¿žÍfc£¯ÿuÛR©tÏž=~~~L&Ó××÷ðáÃCCCØÿN_²²²f̘Áb±vìØ!“É”Jå’%Kììì°ÑçÅ+76£1äžßöwóòò¢££Éš}Â555y{{›óîDEE!„ÈúÓ$8N ¹™S¦LáñxdWa>›‰Áf³ÓÒÒÈ®Â| 7€È rˆ€Ü"H~*44”ÜÆ¡ÑP©T ÙUõã?’5;i¹Y´hѺuëŒ}RŽtj5¥ºÚ}öì>ggù“×&C`` þÒ)H{½ØÂååÕ¼÷Þ¹eË|‚­d×b‰àüư¢¢Z„(7nü÷ñã!²k±Dzz$·n5 „!„þýï:²Ë±D._®Ã? ŒaX~~ ÙåX"Èyyßk4BH£Á¾ÿþ¡H4@vEr£ïÑ£^¡°Ï BˆF£ß%·$ ¹ÑwéÒ]:}d·¨Õš‹áP¥r£ïâÅ¥räå> ÃêëEÍÍÝ$–d 7£Ô׋ššºñ+)-++Zqñ²J²L›QŠ‹ï0ú¯¡+•ê ªI©ÇbAnF`–Ÿÿ½Baàû%ÚÛû…ÂVó—d± 7#îÜyØÑaø’Uz 7#._þ! ƒAûO­ÖÁÕøˆIð{¾f4—Nù®‰¼¼ÿYÓ¦9á‹ÎÎv$Õe‰àýp£<!£kÛ ÃÛÛû½÷Þãr¹2¸ÈåòÏ>û¬¦¦F$MŸ>= `ݺu4í‰Nìn4è7þ|“ššZPPPPPÍápþþ÷¿[ì÷|‹D¢·ÞzK»844Äãñêëëy<^FFFlllYYYBB‚F£yâævvvëׯ¦ÕþÆsãèèèäääääÄáp¶mÛÖÖÖöøñc²‹2L£ÑˆÅbíâéÓ§;öꫯr8œ€€€´´´ÎÎÎÒÒÒ'nîàà°uë³ý³çO›àààÒÒÒ¸¸¸•+Wž;wîêÕ«ëׯã7N:…úôÓOSRRð5e2Yxxxcc#BèÛo¿Ý¼ysXXXLLÌÕ«WB†ÅÅÅEDDüùϾ{÷®îa¥½½=88¸²²rÆ «V­úôÓO•J¥ÁNíʺ¬œF£Ñét[[[|Q¥R¥¥¥­ZµjÕªUiii*•J­VçääDGG¯\¹òèÑ£R©_S*•&%%½õÖ[‘‘‘'OžT(ø~¸víZ\\ÜŠ+.\¸ Ý9c;MœèOúBhõêÕøVeeeï¼ó•:òá¯Ø–••ܺ›ëîÓ‹*DžojkkOž<¹uëÖÌÌÌÛ·ogggoß¾ýÌ™3b±xéÒ¥•••jµ!TYYéîîÎårårù¡C‡V®\yáÂ… 6¤¤¤Èåò+W®œ>}:>>þÌ™3ï¼óÎÑ£GÇNT\\|ôèÑ#GŽ|÷ÝwçÎ3Öéè蘀ߪÛFÉår™L&“Éz{{³³³CCC­¬¬ð›òóóE"Qzzú?ÿùÏ;wîääääççWTT=zô£>jmmøšüqOOOZZZrrrMMÍùóçñþ[·n?~œÇ㥧§K$c&NtâÄ „Paa!BH*•öõõ=ãr¹=2¸t7×õTÅ›ŽHn¢££™LfXXB(&&†Éd†‡‡#„$‰ŸŸN …¡k×®………Q(¥R‰a˜L&c0ááá%%%ÖÖÖÛ¶m pvv^´hQ||ü؉¶oßÎáp|||âããËÊÊŒuÚÚÚ¾ñÆø­ºm„P|||DDDDDÄÚµk¯^½­½©´´t×®]l6ÛËË‹ÇãUWW_¹reÓ¦M^^^3gÎÜ»w¯¯¯/BH¥R]¿~}ÇŽîîî^^^7nÔV²råJ;;»×^{ !¤=FŒí4q"SP(íùÁ£çi‹7‘ë)&“‰ÂßÌÒm#„¨Tj@@@EE…——Wmmíž={Bööö}ôQ~~~NNÎìÙ³cbb-Z$‰tž¼¼¼ÆNÄápðÆôéÓ{zzÆé4F xzz"„†‡‡O:•’’rüøqü¦ÎÎÎ5kÖh×´µµU*•ÚÁg̘1cÆ „P¿F£ñððÀû===µ“²X,Ýûn¬ÓĉtÙÙÙ999555-X°@·¿©©iöì٦-Þt^tóæÍo¾ùæÅ_tqqA k4šC‡•””DDDìß¿_"‘°X¬ææfíV<;T[[Þhmmuvv§ó‰¬­­ÃÃÃ00€ø>¬7ÔòåË÷ìÙ#—ËCBBbccñçX½N„ÐÀÀÀ‡~ˆŸÖè¶õ¸¸¸0™L±XŒ[7oÞœššºeË …Èãñ¨Tª\.çóùr¹|ñâÅ<ßp×®]©©©Û¶m³²²Z¶l>©éLœÈÍÍíÅ_\³fÍ_|b2™999iiiîîî!!!‘‘‘Úóz½ý@£Ñt7×ú•Å3êïÝQ(” ùEVVVggç|`ú&z/q|ÅÓ /ƒN ¤ì‡àààÜÜܨ¨(|q‚S …B$•––þñœØ‘E™àÜüôÓO<ïõ×_Ÿ?ÿWýYJ[[Û7ß|Ó”Îç%ì‡grœ¿=Ïö8ž@ä¹D@n!º¿wgÊgÁsËèïÝ]¿~]÷½´h4ZDD„v‘b±Ÿ·– Îo@ä¹Dü?bSþÿ“Ü<*IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Time.html0000755000372000001440000006757312502417163025102 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Time Class Reference

C++ form of SQL's TIME type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::Time:
Collaboration diagram for mysqlpp::Time:

Public Member Functions

 Time ()
 Default constructor.
 
 Time (unsigned char h, unsigned char m, unsigned char s)
 Initialize object. More...
 
 Time (const Time &other)
 Initialize object as a copy of another Time.
 
 Time (const DateTime &other)
 Initialize object from time part of date/time object.
 
 Time (const char *str)
 Initialize object from a C string containing a SQL time string. More...
 
template<class Str >
 Time (const Str &str)
 Initialize object from a C++ string containing a SQL time string. More...
 
 Time (time_t t)
 Initialize object from a time_t. More...
 
int compare (const Time &other) const
 Compare this time to another. More...
 
const char * convert (const char *)
 Parse a SQL time string into this object.
 
unsigned char hour () const
 Get the time's hour part, 0-255.
 
void hour (unsigned char h)
 Change the time's hour part, 0-255.
 
unsigned char minute () const
 Get the time's minute part, 0-59.
 
void minute (unsigned char m)
 Change the time's minute part, 0-59.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t. More...
 
unsigned char second () const
 Get the time's second part, 0-59.
 
void second (unsigned char s)
 Change the time's second part, 0-59.
 
std::string str () const
 Return our value in std::string form.
 
- Public Member Functions inherited from mysqlpp::Comparable< Time >
bool operator== (const Time &other) const
 Returns true if "other" is equal to this object.
 
bool operator!= (const Time &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const Time &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const Time &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator> (const Time &other) const
 Returns true if "other" is greater than this object.
 
bool operator>= (const Time &other) const
 Returns true if "other" is greater than or equal to this object.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< Time >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's TIME type.

Objects of this class can be inserted into streams, and initialized from SQL TIME strings.

Constructor & Destructor Documentation

mysqlpp::Time::Time ( unsigned char  h,
unsigned char  m,
unsigned char  s 
)
inline

Initialize object.

Parameters
hhour, 0-255 (yes, > 1 day is legal in SQL!)
mminute, 0-59
ssecond, 0-59
mysqlpp::Time::Time ( const char *  str)
inlineexplicit

Initialize object from a C string containing a SQL time string.

String must be in the HH:MM:SS format. It doesn't have to be zero-padded.

template<class Str >
mysqlpp::Time::Time ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a SQL time string.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See Also
Time(const char*)
mysqlpp::Time::Time ( time_t  t)
explicit

Initialize object from a time_t.

Naturally, we throw away the "date" part of the time_t. If you need to keep it, you want to use DateTime instead.

Member Function Documentation

int mysqlpp::Time::compare ( const Time other) const
virtual

Compare this time to another.

Returns < 0 if this time is before the other, 0 of they are equal, and > 0 if this time is after the other.

Implements mysqlpp::Comparable< Time >.

mysqlpp::Time::operator time_t ( ) const

Convert to time_t.

The "date" part of the time_t is "today"


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Time-members.html0000755000372000001440000002244112502417163026513 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Time Member List

This is the complete list of members for mysqlpp::Time, including all inherited members.

compare(const Time &other) const mysqlpp::Timevirtual
convert(const char *)mysqlpp::Time
hour() const mysqlpp::Timeinline
hour(unsigned char h)mysqlpp::Timeinline
minute() const mysqlpp::Timeinline
minute(unsigned char m)mysqlpp::Timeinline
operator std::string() const mysqlpp::Time
operator time_t() const mysqlpp::Time
operator!=(const Time &other) constmysqlpp::Comparable< Time >inline
operator<(const Time &other) constmysqlpp::Comparable< Time >inline
operator<=(const Time &other) constmysqlpp::Comparable< Time >inline
operator==(const Time &other) constmysqlpp::Comparable< Time >inline
operator>(const Time &other) constmysqlpp::Comparable< Time >inline
operator>=(const Time &other) constmysqlpp::Comparable< Time >inline
second() const mysqlpp::Timeinline
second(unsigned char s)mysqlpp::Timeinline
str() const mysqlpp::Timeinline
Time()mysqlpp::Timeinline
Time(unsigned char h, unsigned char m, unsigned char s)mysqlpp::Timeinline
Time(const Time &other)mysqlpp::Timeinline
Time(const DateTime &other)mysqlpp::Timeinline
Time(const char *str)mysqlpp::Timeinlineexplicit
Time(const Str &str)mysqlpp::Timeinlineexplicit
Time(time_t t)mysqlpp::Timeexplicit
~Comparable()mysqlpp::Comparable< Time >inlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadConversion-members.html0000755000372000001440000001477712502417163030366 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadConversion Member List

This is the complete list of members for mysqlpp::BadConversion, including all inherited members.

actual_sizemysqlpp::BadConversion
BadConversion(const char *tn, const char *d, size_t r, size_t a)mysqlpp::BadConversioninline
BadConversion(const std::string &w, const char *tn, const char *d, size_t r, size_t a)mysqlpp::BadConversioninline
BadConversion(const char *w="")mysqlpp::BadConversioninlineexplicit
datamysqlpp::BadConversion
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
retrievedmysqlpp::BadConversion
type_namemysqlpp::BadConversion
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadConversion()mysqlpp::BadConversioninline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadOption-members.html0000755000372000001440000001206412502417163027474 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadOption Member List

This is the complete list of members for mysqlpp::BadOption, including all inherited members.

BadOption(const char *w, const std::type_info &ti)mysqlpp::BadOptioninlineexplicit
BadOption(const std::string &w, const std::type_info &ti)mysqlpp::BadOptioninlineexplicit
Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
what_option() const mysqlpp::BadOptioninline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SslOption__inherit__graph.png0000644000372000001440000000724512502417165031144 0ustar robertousers‰PNG  IHDR“p•WÕnbKGDÿÿÿ ½§“ZIDATxœíyPçÇߨAÂM1¨ G)LELA@¬•Z"rÛB ´#­EÚÑi±íˆX­jP”"U@THAZGÚŸ"E$D’ìþþØßdb0`7ÝÏ_Ï>ûîó>û~Ùg÷M–¼8† Á/t³S­`Ê¡L9´BÔ¾iBBÂýû÷ç. ƒ¬ecœöÏ–8nݺu¯¿þúlÃ˜Ž¶¶6OOÏŠŠ -ÛÏàšìÝ»wÇŽ3Ï ãÅÌt`±ûZÁ”C+˜rhS­ I¹¾¾>§Ã€ãããIIIo¿ý¶™™ÙêÕ«ÓÒÒd2Ù‚d2 Фœn …7nÜÈÈÈèêêÚ¿yyù¦M›är¹Æö\.—B¡ 6™Lþæ›oæ1Y ÌlV O¤¤¤XZZ655ÀòåËýýý]]]‹‹‹cccÕÛCôäÉĦP(éééóš®:¾æp8\QQ‘³³³¥¥ezzziiéÒ¥K/^üÝwßbbb–"‘ˆD"ݺu P[[ëîînllìèèXZZ € (;;ÛÙÙÙÌÌÌÓÓ³¹¹Y¹:!Ū¦¦fÅŠVVV Ïž=ÓèÏW6e»¬¬ìàÁƒˆl&&&IIIeeeC­[·`cc£gttt×®] ÅÁÁaß¾}‰‡òòrggç%K–dffêvÿ¬5‹õÂ6¡¡¡ccc€;vŒåææ?~|õêU ©T ÃpYY™‹‹ A"‘ÈÈȈÉdòx¼ÂÂB"‘(‰rss­¬¬ØlöÐÐP]]ƒƒ ··I1üüüzzzÚÛÛ©Tjrr²F' 㣣ùùùHz [ FFFTòçp8ÖÖÖÓÄGš)Ûááá>>>ýýýÝÝÝ®®®H§€àà`@ŸŸxòäÉ ‡—N§Óét­Õ€u¯ÜÍ›7ažœœT±{{{e2™MSS Ãééé0 óù|ƒ£G ‚„B¡\.wqq9yò¤"ì©S§Ô•ëîîFö²X,*•ªÑ9UžS)×ÖÖF¡P¦‰xöää$@øã??›ÍF:477+Ÿû wæÊéþ ÅÌÌ ``` bÂöíÛÙlöãÇÃÃÃæææÍÍÍíííÞÞÞ---x<žËå®ZµJÓÝÝ]½#'''ÄX¹råÀÀÀ4NuÈd²ÍíÛ·Uü·oß~çw´5<<,—Ë—-[†lR©TEK;;;ås×9óýlI§Ó«ªª***Ö¯_Ô@±X Aйsçø|~LLÌÖ­[ù|¾½½ý;wGݽ{W=ò‡èééA†i*§FÂÃÃSRR”Ÿ$ÇÇÇ322´emmM ¸\.²ÙßßoooØxü­ö—'ЮZ**ƒF[&“YYYY[[#»Äb±±±ñùóçGFFòòòŒÅbqZZš••Uuu5Ç«¯¯×xŸ£Ñh½½½NNNÔè„§¸ÏÁ0üôéÓ+Vx{{×××÷ôô°Ùl—wß}W"‘L_(ÂÏßçÂÂÂ|||¸\îï¿ÿîââ‚t:Õ8LÃÂßç¦W†á¸¸¸E‹)Žb±XË–-344\¹reMM Ó““)))K—.555õôô<}ú´ºro¾ù&…BÙ³gX,Ö脟ee†a‘H”˜˜èêêJ"‘\\\RSS'&&¦Š/•Jׯ_ojjª‡ÏçGFFZXXØÚÚîÝ»é}ÊiÃÂÂÂftˆÊˆ«lNãœ: ¥=3Un^gâ‰dhh¨¨¨èÌ™3óÙ¯^2¯O(ׯ_÷ððøä“O6nÜø2q^{í5ƒ¡S‡ñ_5fö6‹Å¾Ÿ#Õþm†ï'ÎhS­`Ê¡L9´2³YASSÓèèè¥ò/‡Ëå:::Îàí§~èzG–H\B&,t3#11Q{9f0+@°Ožl©ªÚ³víLþу~Þçd2¨ªªPUյйÌú©ÜÕ«ÆÆÄ€ÊÊ›R©æ7‚ÐŽ~*ÇfßD^0™˜xvåʃ…NgNÐCå&&&/\¸#“É®²R? ¦*רxWQ!e2è×_¶°)Íz¨ÜùóÊïËdòK—4¼ vôM¹Ñщæær¹òTWYÙ¹` Íú¦\}}·Š‚ «Wÿ#Œ/H>s‡¾)wî\'iølá—_î¨;Q^)÷èÑÓë×¹êŸ Á0|þüIiîÐ+åjko΂àÎÎÿòxzõY¹^)WYÙ…LãÔaP[«WS¯þ ¶¶‹[&ƒ$©©©‘b¯žÍêôö»‚Ÿ¾wjhèÇ…Nd®Ð«jù¯S­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜r¨EùÇ.[[[ :#݀ǓŒŒÞXè,tÆ[o½5Ý!ƒƒƒ“““‡Z¨ü04rïÞ½sçΩ85ü‡ÿK.à1?`÷9´‚)‡V0åÐ ¦Zy唤ÑhºŠ&‹srrBCCýýý#""Š‹‹‘ņµéZ"‘0™Ì˜˜˜ÀÀÀ¸¸¸òòråEY§A·§0zõëQêdee §¤¤XZZ>|ø0++K(&$$¼ðÀ‰‰‰øøxsssƒagg÷çŸvvv~ÿý÷—¾åñxqqq555SSÓÐÐPÝŸÌó¼rלnimmýôÓOœœÈd²»»{BB‡ÃÑæÀ’’2™üÃ?¬Y³ÆÁÁÁËË‹Éd>zô¨¾¾^c{‚ÆÆÆ{ñâÅ»wïÖÙ9LÁl”£ÑhõõõÑÑÑAAA§OŸ¾téRhhè–-[ŠŠŠÇÏÌÌDZŠÅ dÙÒß~û-&&ÆÏÏ/,,ìÒ¥K†«ªª¢££?ÿüó[·n)¤æp8œÈÈÈ?üðøñãR©T£<_ ”m‰T]]­Swww‹…Øêù(ÓÐÐ¥|yïܹ³¡¡AcŸ}ö`ûöí* ˆD¢ôôômÛ¶Ñéôœœ¤VÓh´ÆÆÆèèè>øàìÙ³³ÌúšëêêÊÉÉÙ½{w~~~[[[aaa|||ii騨˜··7‡ÃAn ÇÖÖ–J¥J$’äää   ³gÏFFFfffJ$’ººº’’’ØØØÒÒÒ¨¨¨#GލwT]]}äÈ‘´´´ëׯ#+kt’Éä}ûö!{•í¤¤¤›7o'%%±X¬ááaį1E§"‘ˆÏçS©T•d¨TêÇ5æðÓO?Øl¶Ê!ÇŽa2™7nÜP,0ÛÚÚzâÄ ƒ‘››+ g!Á,• !‘H~~~€°°0‰„, . ]]]‰Dbww7 ±±ÑÏχÃI¥R†Åb±¡¡a@@@mm­‘‘Qeee\\œ———……ÅÚµkcccÕ;ŠwpppvvŽmhh˜Êibb²eËd¯²íááÁb±Ž;ææævñâ۰°¦¦&€Æ|^xÖ8‚ iSA&“]¾|yÏž=¶¶¶ŽŽŽü±¢ePP©©©¿¿?@QfÄ,•#‘H"‘¨bðx¼——×µkמ>}ÚÕÕåëë 033ûñÇïÝ»G§Ó¿üòËîînÇãñ”ÿ®5®á…¬xã7FFF¦qª#‘H._¾ pvvŽŠŠ*,,Œˆˆ`2™Så£8ÐÔÔtÉ’%}}}*ûúú–/_®}‚ ;;;dÓÞÞ^Ñ’B¡(Ú,˜“'”7¶´´\¹rÅÍÍÍÒÒðìÙ3‚’““kkk8  )J¿â¨¿þúK=ÔÀÀbüý÷ßÓ8Õa855•Ëå"›8nõêÕHטò±¾¾¾%%%Š+ ‘HΜ9³fÍís077Çãñ<ÙBC’™*m-™åÜÝÝårù©S§r ÀápIII×®]—J¥D"ÑÈÈhóæÍ999‡Ïçwttäå婇ÊÎÎ|ðàAAAÁ¦M›¦rŽ×ÕÕ!{ö¢E‹üüü>ÜÞÞÎãñîÞ½›““ããã3U>ÊýFGG ‚¯¾úª££c`` ¥¥%>>žB¡lÛ¶mšÄÄb±r"‘H£Ñ²²²x<2¯@*N˜“ùß°aÃÅ‹7lØ€x ÷ïߟ››ûÏ?ÿØÙÙ:tÈÐÐ0$$D.—Ÿ8qbttÔÑÑ‘Á`¤¦¦ª„òõõMLL”H$>>>áááHµQqFGG=ŠÜÞ”í¯¿þº´´4??ppÐÜÜœF£íÚµkª|”û%‘HyyyÅÅÅL&shhÈÖÖÖÇLJN§hLŒ@ ¸¹¹}ôÑG.\PŽóÅ_dggÇÅż÷Þ{H¶:á¹_®¨¨ inn~ù¸=úöÛoµ?dpp0""BÑ»Êæ4Îyfþs¸råÊáÇU~·Y÷Õrrr’ÇãÕ×׿ÿþû:Ž¡@÷ÊÝ¿ŸÁ`lÞ¼yÕªU/ÇÄÄdëÖ­Ú8ç™W!0wÕC‡ÌSµÄ˜0åÐ ¦ZÁ”C+fâŠÚ1^ºó9åÖ®]»sçN-¿³Ç˜O‚‚‚T MySQL++ Reference Manual
RowCountInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 RowCountInsertPolicy (unsigned int rows)
 Constructor.
 
 ~RowCountInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int, const RowT &)
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class RowCountInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted.

This policy is very lightweight, but is only reliable when you can predict the size of each INSERT in advance. The others do more processing to reduce the risk of unpredictable row sizes.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool RowCountInsertPolicy< AccessController >::can_add ( int  ,
const RowT &   
)
inline

Can we add another object to the query?

Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BeecryptMutex-members.html0000755000372000001440000000622612502417163030420 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BeecryptMutex Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/connection_8h.html0000755000372000001440000000664712502417162023620 0ustar robertousers MySQL++ Reference Manual
connection.h File Reference

Declares the Connection class. More...

#include "common.h"
#include "noexceptions.h"
#include "options.h"
#include <string>
#include "tcp_connection.h"
#include "uds_connection.h"
#include "wnp_connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::Connection
 Manages the connection to the database server. More...
 

Detailed Description

Declares the Connection class.

Every program using MySQL++ must create a Connection object, which manages information about the connection to the database server, and performs connection-related operations once the connection is up. Subordinate classes, such as Query and Row take their defaults as to whether exceptions are thrown when errors are encountered from the Connection object that created them, directly or indirectly.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InteractiveOption.html0000755000372000001440000002535712502417163027644 0ustar robertousers MySQL++ Reference Manual
mysqlpp::InteractiveOption Class Reference

Assert that this is an interactive program. More...

#include <options.h>

Inheritance diagram for mysqlpp::InteractiveOption:
Collaboration diagram for mysqlpp::InteractiveOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Assert that this is an interactive program.

Affects connection timeouts.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/mysql_09_09_8h_source.html0000755000372000001440000003074312502417162025020 0ustar robertousers MySQL++ Reference Manual
mysql++.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
13  (c) 2004-2010 by Educational Technology Resources, Inc. Others may
14  also hold copyrights on code in this file. See the CREDITS.txt file
15  in the top directory of the distribution for details.
16 
17  This file is part of MySQL++.
18 
19  MySQL++ is free software; you can redistribute it and/or modify it
20  under the terms of the GNU Lesser General Public License as published
21  by the Free Software Foundation; either version 2.1 of the License, or
22  (at your option) any later version.
23 
24  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
25  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
27  License for more details.
28 
29  You should have received a copy of the GNU Lesser General Public
30  License along with MySQL++; if not, write to the Free Software
31  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
32  USA
33 ***********************************************************************/
34 
35 #ifndef MYSQLPP_MYSQLPP_H
36 #define MYSQLPP_MYSQLPP_H
37 
42 #define MYSQLPP_VERSION(major, minor, bugfix) \
43  (((major) << 16) | ((minor) << 8) | (bugfix))
44 
52 #define MYSQLPP_HEADER_VERSION MYSQLPP_VERSION(3, 2, 2)
53 
54 // This #include order gives the fewest redundancies in the #include
55 // dependency chain.
56 #include "connection.h"
57 #include "cpool.h"
58 #include "query.h"
59 #include "scopedconnection.h"
60 #include "sql_types.h"
61 #include "transaction.h"
62 
63 namespace mysqlpp {
64 
72 MYSQLPP_EXPORT unsigned int get_library_version();
73 
74 // This won't exist forever! Wean yourself away from these as soon as
75 // you can!
76 #if defined(MYSQLPP_OLD_CLASS_NAMES)
77 # define ColData String
78 # define NullisBlank NullIsBlank
79 # define NullisNull NullIsNull
80 # define NullisZero NullIsZero
81 # define ResNSel SimpleResult
82 # define Result StoreQueryResult
83 # define ResUse UseQueryResult
84 # define SQLString SQLTypeAdapter
85 #endif
86 
87 } // end namespace mysqlpp
88 
89 #endif // !defined(MYSQLPP_MYSQLPP_H)
90 
91 
Declares the ScopedConnection class.
Declares the Connection class.
Defines a class for building and executing SQL queries.
Declares the ConnectionPool class.
Declares the closest C++ equivalent of each MySQL column type.
Declares the Transaction class.
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_20.png0000644000372000001440000000237012502417165024013 0ustar robertousers‰PNG  IHDR“%ÉL*bKGDÿÿÿ ½§“­IDAThíš_({oÇŸ3ÿFþ†‹Ø–-%ÊÍJá‚ å‚á™ò§Ü*’¤]¸!…ù‘YcInh 5 Qn¶åbµ5Ìêø3çù]œZç»Ǿ|ßóºzö9ç|þœ÷Îçyží`B€à ¼ŸNñAr\)ÇUr\%˜úÁjµ¶´´<>>þT6ˆ·ÉdCCCT F][j4šêêj…Bñí‰!˜¸¸¸0>»€`ÿó4Íw¥„ò‰ò1¢yŽ« å¸ RŽ« å¸Ê?§œÅbÁ0Œ-o†) ꪌٿ÷(õ4 Ã,ËWGù[þ9åXG«Õ.--ýŽ(T~¿rJ¥²¥¥åæææD¡òå0 ›šš’Éd‰‰‰*•jnn.###&&¦«« ÐÞÞÞÐÐ@žév»#""Žkkk999|>?33snn@Äðð°L&‹ŠŠ’ËåƒÚ:ÈN¢×ë³²²A{{ûÓÓ­üÙv|ZPGG‡T*mjjòÙÉ2\€_% òy‡ï¨©©q¹\€ªª*—Ë566p8ÛÛÛñññ///Âùùùììl‚ ÜnwXXØèèèõõõäädpp°Ûí:Îf³­¯¯ …B€Ùl&s ¥¥¥&“Éh4ŠÅâžžZ#„ðîîn||œL:&šL¦ðððééi¯[ê€ÖH=J:ÒVÁVhuù rGGGÂççgŸ±Ùlöx<ÉÉÉ[[[²²2•J!t:!!!···A<<<¼¾¾fggÏÌÌxÝÎÎÎú+wzzêÍM,Ó™S%oúàà`tt´ÕjýŒr´U°…Z]>8ÏEEEBBB|Æ€   ÊÊJNçp8677ëêêqqqƒÁh4 …ÂÂÂÂw~~ž››ëõ™““ãH"‘©TzyyÉ`d¦µµ5//¯±±Ò½@kô‡¶ ֣ȗ¬P ÅÊÊŠF£)(( { ŽãA,//;Ά††òòr§Ó™ššzrrâ½êììÌßù­˜L¦””#3<ozzzooO­VSípuuˆÚ*X(ï>• -è­±ÇãIIIdÓ‡â8ÎçóµZ­ÝnW«Õ|>Çñþþ~@°ººz}}½±±A;Ï›Í惃‰DÒÝÝMk„ïÍsÞÌGFFÈ5„Ðn·&''ïïï+**@Ý’¶ ¶¢0Àæ<Ǭ„°¹¹9<<ÜårQ‹D¢ÐÐP©Tª×ë!„ÏÏϽ½½‘‘‘r¹|aaÁ_¹‰‰‰ôôô„„„¶¶6ÇiðéÄÿžQRRâ=Ú××+‰ôz} ÊÑVÁVXS.:;;kkkÿêŸ2h« °Ô_­.4ÿÏ}’ÇÇG›Í655µ¸¸Èºs„öW(ûûûùùùõõõEEEŸñ­T*1þOy÷©Dü8lîç?RŽ« å¸ RŽ«Ðì |~¹Aü8‡‡‡4Vêreww7((èÛC¼OZZšÏÚòwœÍs\)ÇUr\)ÇUþ‡Bl*ÒJËÇIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/wnp__connection_8h.html0000755000372000001440000000526012502417162024631 0ustar robertousers MySQL++ Reference Manual
wnp_connection.h File Reference

Declares the WindowsNamedPipeConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::WindowsNamedPipeConnection
 Specialization of Connection for Windows named pipes. More...
 

Detailed Description

Declares the WindowsNamedPipeConnection class.

mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2doc.png0000644000372000001440000000135212502417165022235 0ustar robertousers‰PNG  IHDRÚ}\ˆ±IDATxíMOS[…Ÿžsúa?-XZ(PD4‚ AWbu`b 77wäHFÆCËÔÂÿà/`vo„ˆAPòq‹P @ ­ûÝè980 îà¤+»§Ýy×^ïZï9SW¹\83g‰3'°Nâçl¹¸_b¯p ïåûÆVÜÖ¡€Ÿ×"¬Ö†X€d]Ðà3“ÉÃÄÌ™xŸ ßMàœ[<çSPkvc—hÈ'…™˜^Åm™hØ7 `Û™¦ èÀåráq›‘œ¾!daeKŸþÆÕ˜:Ì*³_דâèi?I–eP*B7Ÿ¿åô!¹Ýgr6Ër6oKbëþãðôrI”ËTˆüªŒ¨xóö=›ù¢&‰(e+ßóÄkýÇ`ëÁÜb.“¸ÐW×w0¥°jÑzN™¬|©WEãµ¢a¯6[öX†AkÓù*/œ¨‰€ÉY­ ÿV’§–u²jÂ>1W *½·°PGŽzÿ¨/Eg{ ŸÇâaoŠÁVú:è¿™¤1$ôR§W,–ªà¨@ŠË56¾ÀÔÜ-¾,mê¸Î/æè¹– òr5¥T*S(Vf8ö9u’ Õ£w›ùóa=Í<{Ò¡UŒ÷r¯+ÉådDÏF$è°…£é¿`zþ»ÎúöN‘µÜ®0Q3£~_^Ëóâ¯N=ˆvpTà±LžT}ˆîkq†Òm<¼ÎÓ?Zh¿X£ï_þÝ¥[)ƒ `gêÃa_Ô*äÔ2`'=õ´Fÿ2EâÁPú ÷»›l=8‹Wv°%THqÉ¿<"¤ïG¾ÆxH{#ÆÖ«aÔJÕÞ‡—m‹„ çñKsÿàñVŠØ¡°·MâÒ^ TÁ– Ý›r¥ß½ømüÿ_™?ªWİ÷#uIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func.html0000755000372000001440000001271612502417164024101 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1value__list__b-members.html0000755000372000001440000000662012502417164031004 0ustar robertousers MySQL++ Reference Manual
mysqlpp::value_list_b< Seq, Manip > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x6f.html0000755000372000001440000005155712502417164023737 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- o -

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_31.png0000644000372000001440000000732612502417165024023 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“‹IDATxœíœ}TÕÿÇï ,»+¸°€ <Bø"yˆCT”&çD„J0 À±NQ”çtN™¨˜)  3‹@#`©@xâi%y:<¸ËÃÒâ²;÷÷Ç=Îoœ™dEúÎ믙{gî¼ïg>{çÎ7p „€…Eg,[l,ÿqØ cÑ-l†±è}Ò~OOÏo¿ý¶(RX–:</22’Ëå>T &22r‘ä±ü())!ey S«ÕáááçÎ[},K‡£R©H…ì<ŒE·°Æ¢[Ø cÑ-l†±è–'1úºº8ÎBµÆ!Àçó·mÛvëÖ-†ã!„»ví222ÂK¢££íí파¶lÙráÂ……Ò6'ð°{dbb²}ûö;wîÌzÖbñ$fØ‚S__?88888ØÒÒâììüÆo0|‹Å·oßF»÷îÝÛ¸q£@ (..njjŠŒŒŒŠŠ*//tU‰ÄÜÜ|~ç¢ ÔÔÔ`¶k×.MGššš8p@´…´z•ÎÎNª°yèììÄw‡††CCCZ^=99e$NzzúsÏ=÷èÂæÚMüxRúúúãããA3€ââbRá<Ç0‡sêÔ)777 ‹œœœ³gÏ:88˜˜˜:tššš€Ž”ËåàæÍ›€Ÿ~úÉÓÓ“Çã­Y³æìÙ³ þþúk777cccŸªª*âŽFø²²²µk׊D¢ÔÔÔû÷ïÓ‚‡ .—kbb‚vgfföïßoii)‰öïß?33ãíí °²²B”””¼óÎ;IJ²²òóóÑöØØX\\œ¹¹¹­­mzzúôô´&G,»¹¹­\¹òóÏ?.DU¢V«sss]\\Œ·mÛÖØØHÛ#===ZˆbÖ3 èô+W®ØÙÙÕÖÖjÊ&H§åˆŠŠš˜˜8yò$ ""bbb"//0::ZSS# gff „îîî†ÉårCCÃcÇŽ æççëëëËåò¼¼<‘HTZZ:00ðóÏ?ÛÚÚðÚxþùç;::œœœ²³³i !„ccc'Nœ@òˆÛ€[·nMNNNNNö÷÷'%%íÙ³ïÈgŸ}öúë¯ß½{·¥¥eÓ¦M|ðñg-“ÉR©TSbbb‚‚‚º»»[ZZ<<ùä‘Hôã?þòË/´ó°ÀÀÀÎÎΦ¦&ggçÌÌLÚBÈ8#¾yýóÏ?€‰‰ ´›ššÖÓÓÓÜܼuëÖ½{÷’ÃÃÃB¡0&&¦®®®¹¹9;;péÒ%T$‘HZ[[ÝÝÝ333GFFùùùãã㯽ö <¡HQBšœœÔ¤ä«¯¾"gÍš5€î]’Ué)9W szÙ ;cÎ0áÛo¿Íçóñ{ !,..vttär¹®®®eeeB¥Ryøða###ŸÂÂBj†þøcSSSGGDz²2†»;33ãëëkdd¤I‰J¥ÊÍÍurrZ¾|¹Q¨="BÕÜa³jX´ Ó†ŒŒŒèèè9Bêm÷v ‡e¡Í0²?lA˜žž8uêTQQ‘.ÚgYBèd¦ßØØ¸yóæøøøgŸ}öQÚY±bEbb¢6…,O,øðuDD€õ¸²Ì‡S\\ŒRçâË7Ë"ò¨Ft’ØÛÛïÞ½½®/Q8޳³3i\ áp8]]]III¶¶¶SSSxUww7—ˋŹ\žžžîààÀçó³²²¦§§ñ#§¦¦Þÿýõë×yyy}ú駸¥5®¥<'‡TŬM·fþs}—œ$}}}W¯^}õÕWmmm5}fÑDww·P(œÓ): ¯¯óæM¼D*• @gg§T*‰Dhù æïïa„0...00ðÏ?ÿ®©©Y¿~ýÞ½{Ña®®®þþþ—/_noo/))Y·n]`` J¥‚Œ«Ty¸©££#66ÖÅÅ]T‹ƒª´- @«¤è`æïïO¼Úðä,@^|ñÅŒŒ ¼äôéÓ!!!x7Åb1ÇëééÖÕÕéëë·¶¶¢#MMMðkjjìììÐvzzºŸŸÊ'„\.···?vìœc†18‘Úaж€<Ž ƒ>óÌ3h[©T¦§§‹D" ‹ôôt¥R !¼xñâÓO?mhhèààpæÌ¡P(XZZÂÙVYY¹zõêk×®Éd²ØØX¡Phcc“––¦P(RRRâããQû“““|>ÿîNº©)’òááá©©)jwòóóœœðaûöíÈ«ƒº‰aXPPPDD†a[·nÝ·o~®ÝîÝ»GGG©Q²²²ª¨¨ =zÔÏÏ6†ZF[*•r¹ÜééiÚZ" Úph2'S†]¿~ÝÔÔmSÝ ´êraKK ǃ&%%%''ŒŒp¹ÜÞÞ^M×"6…~ ±±±øPSwðÐÐм¼ÓÂ0ìСC666h×Êʪ²²’t­£GúúúÒÆP›hOMM¥¥¥y{{ÓÖaÖFE©T"SŒ‹‹ËÝ»wµ† XH˜¦_Ì·ß~ûòË/£]ª„ÖÃCmÙE4ÙQ¨Ö Úk›²°°X·n]}}}]]ÝØØs/|}}'''kkk+**BCC©àóCìxtttkk+~À /¼€¯GÄÄÄ|ôÑGjµíFEEåääDEEÍPÍPHš`ÖFehh¨­­­¯¯oÓ¦M|>Þ ÿÿòDeµ¢ºº­VŒ¡Zª„ÖÃCôÞ+©vHg ¢½õµµµ511ÑÜÜ?0 Ã0L__'îmP*•7nÜ@íó$033óH^V ß%-¾óf¡¬AË–-c¶ë.—ûä¤xD«´f–Þ—ï…²=ÉÐ~a\Ü0o–Þ@ûúù_BÓ¤j)²ôÆ0–¥›a,º…Í0ÝÂf‹n¡™éK$’ãÇ?~),ÿMH+°ûöí[lE,K==½ÚÚÚYÖôYXvÆ¢[Ø cÑ-l†±è6ÃXtËÿ±ÊÊG³–ðIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Connection__coll__graph.png0000644000372000001440000001677312502417165030606 0ustar robertousers‰PNG  IHDRC€ZœþbKGDÿÿÿ ½§“°IDATxœíi@×ÞÆÏdc7ì‹ ”@•ME[¯ôÖ}Á¨µ­RDD–Š^êöJ¨Z´Vq¹ZA jÝ  ׊úŠ˜¢XÙÔÑ€!mÞóÞÜ‚ L–óûtrræž33OæÌ?“EQ@4Þ ˆ €N†@´èdD€N†@´’ü‹úúú¨¨(@€—ˆ¦ãîî~àÀ¾Ça³Ù¯^½ê{œ~…@ |üñÇúúúx D>w}æÌ™€€€ùóçã(¢¹444”””¨äÛÇs¹ÜAƒõ=TÿÁf³=<<¬­­ñ€Â5ãÌ™3¯¢`WUE4h§§§ª¢õ×®]Ã[Â÷Ɉ6 hÐɈ6 hjç䪪*AT°½½Á`Œ9ÒÄÄd̘1Û·o‹Å©D>¢Œ¾wÑ+ º‰Öïµs²jikkûôÓOïß¿¿sçά_¿þĉÓ§O—H$JÛ×ÔÔXZZbeSSÓï¿ÿ^å’þøãÖ»¨¼ Œ‹"?jy´~(ùJ›Øºu«••ÕÕ«W‰D"`èС3fÌðòòJOOˆˆèÚ^*•¾yó+[ZZÆÇÇ«\’•••­­­ÊÃveÆ¢†ÈZ­ßrMF$--ÍÝÝÝÊÊ*>>>##ÃÙÙ™J¥nÚ´ °råÊððp¬%Ç344|øð! 77wĈúúú4-## •JÜÝÝMLL>ûì³ââbùù6ÊÉÉ6l˜µµõÊ•+;;;•V‚wçNòåÌÌÌÍ›7c6Æ022b0™™™JCùøø0§ÉÇimm]²d‰¥¥¥ƒƒCtt4ö‚ 'Nœpww777ßµkÖ2//oÔ¨Q†††vvv=?u.\¸`ooßÒÒ8uêÔСCÛÛÛÅbqll¬£££••ÕâÅ‹[[[±Æ"‘ˆÁ`ØØØX[[3 ‘HÔOcézÈÔ® »ŽúêÕ«ŽŽŽÇŽ“¿ÇQ,Š¢IIIƒ š2eJ^^žæMÅQ9NŸ>­P£@`` —ËMMM,X°€Ëå&''^¿~}ýúu ‘H„¢hff¦§§§T*åñxzzzIII,ëèÑ£$‰Çã%''[[[gee½zõêâÅ‹€ÊÊJLVðõõ}öìYII‰««k\\œÒJE[[[SRR0y²2f 6›­ ÿöíÛ666ï‰5“/M:µººšÉdzyya¾þúë–––””À›7o¸\.…B {ñâEff& ¹¹Y> ¬¬¬í]°·/^ÒØØhccs÷î]EwïÞíééÉd2ÿüóϱcÇFGGc-wîÜ9oÞ¼úúz&“9zôèuëÖõÇX”²÷Ÿ=<zByyyyyùûÛ(UØuÔ3gÎ,***++“? ƒMII±··/((`³Ù………®®®=HqqqSSSGª*>ÐÉ¥¥¥(Š …B…ree¥X,¶µµ½zõ*Š¢³fÍŠGQ”ÃáÉä={ö´´´H¥Ò¶¶6‰DâééyìØ1YØãÇwu2“É”isuuUZÙÎîœ|çÎKKË÷ÄÇjde¡PH$e'VVVÖ) ¸¸X~ì<O"‘\¿~«Tprw¦---#FŒÀ¬…¢è°aò²²°ò“'Ode777‹…• ½½½ûc,JYw»ZÖï@:Y©Â®£Æv‹ÂQP¬——׉'d‘Ož<©qNþÀŒ—‰‰ €L&+”D"qîܹYYY¯_¿¾råJPPÀÌ̬¸¸¸¤¤ÄÁÁaâĉ7oÞ$555ÞÞÞ²˜#FŒèÚÑÇŒÜÜÜ^¼xñžÊ®˜ššÚÚÚbÆò”••}òÉ'=ÕÔÔ$‘H\\\°—®®®²–ƒ–;…ByöìNÿä“OŽ;¦4Zee¥Â1©]ºtéãÇ—/_ŽÕÔÕÕÉä¹»»ûûûcåçÏŸÛÙÙayïéÓ§×ÖÖöÇX”2¥1ñ¢‡ ÝÜܺV* ¶ººÚËËKö®‡‡GÿHîGúåØÌŸ??;;ûÌ™3ãÆÃæÌ|>_*•ž={–Ãᄇ‡Ï™3‡ÃáØÛÛ?zôH¶ÕãÇ»†Â>JÏž=Ãö~w•J Úºu«|¦º½½}çÎt:½ç¡lllˆDbMM ö²ººÚÞÞ++œ:|>Á‚ £´´411ñ=ºÒÐÐ0mÚ´µk×b5ƒ~þü9V.++ûé§Ÿ°26¡À>ZZZJJJúi,]Y¯FÔßôP¡Ì®ò( ÖÉÉIþô«¨¨P¹Úþ¦_œ<~üx±X¼uëÖàà`¬A__ßóçÏs¹\¡PH&“ àFNNNcccAAÁºu뺆ZµjUUUÕýû÷7lذhÑ¢î*ß¾}‹Ý´+”7oÞÜÜÜiÒ¤¾Ä4hPdddO*U_CѦ±àBLLLGG‡ŸŸ›Í¦Ñhaaa·?•¬þƒÂµì!„ Ï,“¬þk†¨Ïê?êõ !ù0 “!m:Ñ “!m@IîúÈ‘#¯C ¤d2B$jÚ³AªãÁƒ*Œ&z»x}'Gªg®£§wœlooO$5.ÿ®&˜™}A¡Ø´¶uvÖâ­7UG__ŸÍfw}Öµ;Ä­„×9úmL’£b«|A•ƒ ˆžžÞÀôõ· ð;'UqôèM›²'Û±ãë>R² DåH„Ræ/ÍSYj`N ú}8BÐÅit²ÊàpÚGŽÜ,‘H‰D *jêªUÓ (xëÒfên¼ý#¾¡-B¥(B@F.±õ¾ßÆi1:zSј›ÑéÃI$¢D"•H¤‰‰W?ýtËÙ³÷ágeÀ©â_ûëòÿT·7 Q) (êæ¯»ó èdUð±XŠ•Åbik+õêS3fì}ø°_aÚ„à­øæ¶ú¬À§ìò€ìs! ¶£Mëî ήU‰X,õöÞÌá´ËWbWé¹sGoÙâonn„—6-•‚ǧ›f‰;¥Rñ;ç-‚€ÉÛœ]èfxiÃxMV%$á›oÆ’ÉDùJ±X‚¢è… e>>ÛRSoH$R¼äi4MÌö¬ÀŠ;{_;$ 6 M¡â"LM€NV1óæ}")ùD$’´· 6oÎþñÇ ¯JÓáTòóŸµÔð€.“H q¥›):}2ëôàûw÷ÁîîvJ—Ž!‘FF”iÓ4oµ7Ü1uÖwmPå_/IÅè°¯t7×…¬z-úg×EI$‚££Ea!cܸ¡¸¨Òh$dbœÓ¸ C‚(ìZ˜¹Xyª×ct²êñ÷­°ž‚ cÆÐòó×ÂÇEú‚Û\Kß½4„ˆä‰EÀ}Ü«ÐÉý€©©áŒ^$Òó^öö¦­Ýý­¤§  º …HAôL‰Òÿ›™@@>žeޝ.u:¹_˜?ÿS‰DB D"!>~þÕ«1 )$ä¨PØ£?|…(å~â«Ú¢úWÿLwSš>Œ DÄq‚)Å„ø÷k;ÐÉýÂäÉîTª‘‘Þ¯¿._¼øŸ&&úÇGTU5ÅÄœÁ[š¦ò4ûuYZã¸m½¬É_¥òÏA¨u›k·4µ>Ò_<|XoeeâàðßgJJª¯_ÿŲe“ðÓ¥‘¼úß¶ü¨ªá‹¬ÿ±Â^V‰JÁ«ûmöcMp¦>@'(§N•0gÒÒÂ|}½þ¾5·¡3'ä/ÛÑÆÓvÑ×ÿwÌ€è2î»ï2+*XxkÑ*ο6´"OÚêmüà5y ‘H¤K–¤>{ÖtñâKKc¼åh¨trÅú¦ª_›]›€Nƶ6Á—_î4ÈàìÙQ(ð…¨8_ÁýcÇ"ª«›a*¢* “ñÁÉÉ"554;»ôðáb¼µ@´èdÜðñq‰ÿú§Ÿr/_.Ç[ DãNÆ“À@ŸÏ£¢2+*z·¬ÓÁ½­à­Bó€/œÁRÙýÕxéÒÿÀT¶X Íûö„|™> o-¼&ã ‘HHL\ld¤–¦ãOe£RôJL ¯Q4e»3ÞZ4èdüÁRÙ55Í †N§²ïíÅzÀ›±ßÅØNwÖû` “Õ,•ýÛo¥‰‰ExkÁ‡Šs¯™'š&nq²òÐõ5> èduKeoßž÷ûï:—Ê~y¯íÝ £#ìhÓtwqÌ>¬F`©ìï¾Ó­T¶Dˆ^{î8Ž:z©ÞZ4èdõbëVZHH*›ÝÓ?7Ótˆdún—ÉÛ>êî"‘ˆÁ`ØØØX[[3 ‘HTUU… ÈÕ«W;&+ߺu«µµuÉ’%–––ÑÑÑ@¾ñ­[·”v HZZš»»»••U|||FF†³³3•JÝ´iSw¹¹¹#FŒÐ××§ÑhXK¥•yyy£F244´³³‹ (š””äáá1hР)S¦äååa+F)í¨G 5ƒËåOš?gÎþÎNÞZÔ‚;wΛ7¯¾¾žÉdŽ=zݺu•••€™3g•••ÉÊ</((hêÔ©ÕÕÕL&ÓËË+..N¾1ÇSÚ 00Ë妦¦,XÀår“““¯_¿VªÇãééé%%%±X¬£G’H$§´’ËåR(”°°°/^dffš››SRRìíí Ølvaa¡««+fÆ®õp/A'«#ÏŸ¿öôüaÅŠL¼…¨nnn, +z{{cæd2™(ŠÊ—…B!‘H,//Çgee¹ººÊ7è@ii)A¡\YY©T‡Ã!“É{öìiii‘J¥mmm‰DiegggEEÇ“H$ׯ_Çbzyy8qB&àäÉ“˜“»vÔý¬¦Ü¹Såè¸6!á ÞBðG___~I¥R1s …Bô?NÆÊ >ŸmÈd2õõõåt‡Ì±Ý•»j@QôÖ­[_ýµ‘‘Ñøñã/]º„m¢´2''gܸqÞÞÞ¡¡¡XLƒGÉ`3‹î:ê ð>YMÁRÙ;v\ÔÁT¶–––2kµ´´”””`õd2YÖ+ÛØØ‰Äšš¬²ººÚÞÞ¾kc•hàóùR©ôìÙ³'<<|Μ9§»Ê 0ŒÒÒÒÄÄD, ““ÓãÇeñ+**Þ?Ø¿:Y}‘¥²Ÿ<ѪT6ŸÓã,€¹sç®_¿¾®®ŽÉdÒéôC‡u×’L&¬\¹²¶¶¶¼¼|ãÆAAA}Ö«\‚ ¾¾¾çÏŸçr¹B¡L&*­ììì … …ÏçÇÆÆÚÚÚ¢¢¢bbb._¾üæÍ›¢¢¢¸¸8,ãÕóÁ*ÒÃk7ÄbÉ¢EÉcÆlinæâ­E5ð;3}™Oβ{¾ —Ë 533³°°Xºti{{;6aÆÞ•/£(Êáp‚ƒƒ-,,ìììÖ¬YÃçó(üÝ캫EOŸ>íââB¡PÜÜÜrrr°M”VîÝ»×ÜÜ|È!‰‰‰ÖÖÖ‰dß¾}...T*•N§çääXYYu×QO€¿ Pw°FŒõÏŸÒôF„m’œÐ¿ˆdNê0²¡NÏóòò† 2räHìåùóç·mÛöðáèÓ{S#ÀžÊ®­eGGŸÆ[KŸJЫëjEú~W·1€Éd.Z´¨´´´£££¤¤dÓ¦M}ŠØÃk7_°TöÁƒœÊ¾½³>íó‡ìŠžNûõqH$úᇆ ¢¯¯ïáá±{÷n‘Hùã=Ô g×ñc·7n<ŸšJ§Ç[K¯y|š}gOÃÔxšóTS¼µh'º>ÉÑ –,ù<$äó+Nh\*»éQ{ÉÞ£Âì ûxMÖ$°FÊË_å篱µ¥â-§§ˆùÒŠ¬×ÃZåÿdQÐÉF[›`Μýäììúú}zÚ¢MÀÙµ†ýícCgõê“ðS":YóÀÉÏÿ3!á*ÞZ êt²Fâãã²e‹|ü¥ ÊðÖQ 4û™!]fÉ’ÏŸ=c­^}ÒÑÑÜÛÛo9ï€Jü_Åîo fëÖ¹cÆ8‡†¦56¾Å[ËizÔ~þ›'¯{÷3 HNÖ`H$Bjj(•j°dÉQ>_ˆ·x[×ùûêjó -`^}@NÖlLLôÓÒÂêêÞ¬^} ÷T¶ Uœ¿¢Šê¤7a³üêx€NÖxh4«ôô°‚‚?¸‚£ ©½Â¨A%èôÓHzð¼hà×°Tö®]ù.|øÏâúÈÍíõ¯Ÿvøîuój\€¹k-á?©ìSŽŽŸÊff6Uæqfüìb1Ì`€»†`À§5µ±X”üìYÓÀ?•]UÀéhXl3BäNÖ*Þ¾í˜=ûgccýììï àÿ¤éð>Y« R ùå[5IeCèdmƒF³:r$$?Ÿ¹!ÞZ t²2~üÐ-[üwï.ÈÉÁ-• ``îZ; WYÙ¸fÍ)''RÙf¼´Y*ûÒ¥Õvvª\v篜7¢‰W µ cBúœ]k-$áÈ‘##ŠjŸÊ®¿ùöæ¶za»DU!*:Y›¡R ¨¯ç¬Z¥šF8Uü¢ Ï]gš‡ÿZ®^@'k9..ÖGŽ„üùóÏ}Meó9âËkª-Ý 'l‚?P; “µ,•½gOŸRÙ¡´0º!"Óv;ÈÐÇjt²N:. àÑѧ8áÞÁWœJÁôÝ4}*ü¾C-é¯ËÐR ÞGìA¢Çon¥çàn2V…z’>úï§ßŸ¯½ãùóçóçÏÇ[^ÐñÐkž}z̘1¦A*•r¹\¬L¥R—.]:`]k ðšÜ/Lž<9???$$ÄÏÏïäÉ“—/_ œ={vZZààÁƒ»víÂZòù|:^YY øã?ÂÃÃ}}}.\xùòeŠ¢ÙÙÙ!!!³fÍŠŠŠzøð¡üÌ›ˆÞ¾};88ØßßÿàÁƒ"‘Hi%xwÖ*_¾qãÆ¼yóäŇ„„ÄÄÄ`eÿÕW_ÍŸ?ÿðáÃB¡Ý•+WBBB¾üòË_ýU6䮕b±8))Éßßßßß?))I,K$’ôôô€€??¿;vðx<À¿þõ/Àܹs´õ¼wtrñàÁƒÃ‡/]º4%%åÎ;G]¾|yFF—Ë8qâíÛ·% àöíÛvvv®®® ..ÎÏÏï×_ Þµk—@ ¸xñâ/¿ü‘‘‘±xñâ;vtíè·ß~Û±cÇöíÛïÞ½{òäÉî*MMM£££±weeÇápßYTÄÀÀÀÚúÿWØ¿?›ÍNJJÚ¹sçýû÷O:…ÕߺuëСC‘‘‘ÉÉÉmmmÝUž;wŽÅb%''ÿûßÿ.--MOO?wîÜ7vìØ±oß¾†††ÌÌL@bb" ++Kah½ê]ÇNî/ }}} .444¤Ó逶¶6///‰Äd2W®\ñõõED$¡(Êçó) NÏÍÍÕÓÓ;þü²eËÆoaa1vìØˆˆˆ®-_¾ÜÁÁÁÝÝ=""¢°°°»J##£Ù³gcïÊÊ(ŠDùo›ÄbqQQÑŠ+ìììh4Zhh¨,¾ŸŸŸ±±ñŒ3²‰q×ÊüüüU«VY[[Óh´ÈÈÈ{÷î]¼x1,,ŒF£9;;ÿý÷žžžÝíÀÞö®ãÀûäþÂÐÐ@"‘Ê0~üø7nÐh´¬]»`bb²oß¾sçÎ¥§§:táÂ…cÇŽe±X®®®²˜4­kGXÁÑÑ‘Íf¿§²+&&&fffuuuòŽzúôéÏ?ÿ¼ÿ~.—+•JŒÕÛÛÛËBYZZʨ»ÊÆÆFù©»‘‘‘H$’isrrrrrêN[KKK¯z×qà5&MštóæÍk×® >ÜÊÊ ÐÙÙ)•JãâârssgÍšµaƶ¶6KKËêêjÙVÏŸ?ïêÅ‹X¡¡¡ÁÂÂâ=•JùüóÏOŸ>Ê­(RXX(‹õôôÌÌÌ‹ÅÂê_½z…YtsïZI¥R333‹‹‹‹‹‹sss-,,±w«ªª°ÙµRzÛ»ŽŒ#FŒH$ÇǦßA Æ7ÚÛÛE"‰DÒÓÓ›9sæáÇoß¾ÍápîÝ»wäÈ‘®¡^¾|ùôéÓÔÔÔéÓ§wWÙÞÞ~ñâEì]ùrxxø£G¶oßþøñãšššãÇgeeaÓx‰4yòä°X¬ÚÚÚ£GN›6­WÃ?~|JJJSSSMMMLLÌo¿ýæë뛚šZ[[[[[»ÿþ¦¦&Yc>Ÿ/¿mß{×)àü„ ~ÿý÷ &`5 eýúõÉÉÉÍÍ̓Ž¥P(‰äСC­­­Ø­æ¶mÛBM›6míÚµ`êÔ©AAAØT¡ÐÚÚºgÏìöX¾ljjzäȑÇÇÆÆòù|GGÇŸ~úÉÇÇ ¾jÕª„„„eË–‘Éä)S¦`¡zNxxxBB·ß~‹ È„ "## ‚@ `0ÀÇÇ'22`kk;|øðyóæ]ºtI~ó>ö®SÀUr{Ç‚ ØlvlllßC¥¦¦666nܸ±ç›¼|ùrÑ¢EÅÅÅJ_¾§R—¹víÚ–-[´þ<‡³k …,+??ÿ‹/¾À[ DK€NÆŠŠŠÈÈÈ™3gz{{÷%Ž‘‘Ñœ9szR Ñzàìºw¨pv àìh ÐɈ6 hÐɈ6Ÿ é5=’ý¨¢þ´´´à-a €Nî:¼f½ãç燷„~~ hð>Ñ “!m:Ñ “!màÿm"VïPRXIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_38.png0000644000372000001440000000410612502417165024023 0ustar robertousers‰PNG  IHDRÅ%}º%bKGDÿÿÿ ½§“ûIDATxœíšYLOÇgÅ–*(ÔŠ¢#‚hˆ‘¤ˆ/à}AZR<Àˆ‘€PD GðÁzÄ'm@Žh(kÐ4‚‘(’&JL*`Œ$€"T¶KJ:ÿ‡Í³ô²â‚Gæó4ûÛý³óef:,!C¬ùÝ þ)žL‚ô„`¤'“¬¥_Œåçç/,,ü®jyyyÔå=iµÚ¶¶6±X¼êU!þJz{{U*•[=‘¨TªU, ñ#‘H,hÿ„`¤'“ =!˜é Á$œžôz=†aLE#¢¸¸8""‚ËåîØ±£²²’~2??_RR²k×.·wïÞ«W¯Úl6ò†az½Þ!F#00ðèÑ£?~dªT—Y(Óof…øãôÄ,:®µµull¬¡¡A­VËd2ò–ÑhLLLìëë“Ëå:®´´T©T¦¥¥-..zØÓÓ399911¡ÑhìvûÉ“'W¢l2 •È⎑‘>Ÿ¿LgHãáÇ–Õgxx˜ÁÖ¯_¯Õj©KFF¶‹‹‹“““m6u— ˆðððšš!`xxØ!šƒq||077ÇTµ.³P0ûf<à}"±X,‹é–åÌO†566ÆÄÄlܸQ.—755EDD–—— sssÉ' ‚ðóó{óæ àéÓ§ñññG(655ìvûíÛ·cbbÖ­[—””ÔÕÕEŸÏÉé]­VïܹS šÍf—F°t- · ÅÌÌ y¹ÿþÑÑQ²­T*+**|||¨Œþþþ%%%ÍÍÍ^¾Ò—\"ÛÚÚvïÞíçç·yóf¹\N•ÑÙÙÖÝÝíÜ}€Õj•Éd›6m2™Ìjµz™Ú¥£çqñàÕÜÜtýúuÀ¾}û!!!^³º¸¼œŸR©Çñúúz€D"Áq¼¶¶ðíÛ7FlµZ!„J¥266Ön·áëë[SS399ÙÐаvíZ‚ jkkÁãÇ'&&ÚÛÛ·nÝ  þ8ÈFZZÚÐÐV«ŠŠªªªri„~ÿþ½®®Ž,Þîèè õõõMMM½qãÆ§OŸH»Á`LOO;t­··7((ºŸŸúûûF#Žãz½>===11Bˆã8›ÍÎÉÉW*•€¯_¿’¥>|øÕ«W_¾|qî>„ðÚµkÇܳgOii)= ¸tÚpçèa\Y1µÞAÏ;Çårq§ŒŒd³ÙÑÑÑjµBh±Xª««#""x<^RRÒƒ€ÓzW__¿}ûv>Ÿ_PP`2™\áÒµ€Þ¶ÙlUUUñññ\.7<<üâÅ‹ÔZ !$¢¨¨(..ŽÃáDFF^¾|9%%%33ºÚÄ@ëÝ­[·‚‚‚¶mÛ¦P(¤R©@ pX5œ»!Äq<;;{Æ ÁÁÁgÏžŸŸw™8íŸÜ9z/½¬V«H$âñx?T3û'o(++ËÊÊú)‡p¹Š¯ôŒÙlîíí]¹øÿÎzrñýÓ/²°°011ÑØØØÒÒÂxð•†Íf“§/ˆåÁüþ©¯¯/111''çÀ¿' //Ï#âσ´[¥R¹Û= ÎßgÒ?èýÇÿŒXežL‚ô„`¤'“¸8/¸{÷îê×ø …KLôèîînú÷@Ä)**¢KC§Aû'“ =!˜é Á$HO&ù´ßô„ üPIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionPool.html0000755000372000001440000007323412502417163027124 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ConnectionPool Class Referenceabstract

Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance. More...

#include <cpool.h>

Public Member Functions

 ConnectionPool ()
 Create empty pool.
 
virtual ~ConnectionPool ()
 Destroy object. More...
 
bool empty () const
 Returns true if pool is empty.
 
virtual Connectionexchange (const Connection *pc)
 Return a defective connection to the pool and get a new one back. More...
 
virtual Connectiongrab ()
 Grab a free connection from the pool. More...
 
virtual void release (const Connection *pc)
 Return a connection to the pool. More...
 
void remove (const Connection *pc)
 Removes the given connection from the pool. More...
 
virtual Connectionsafe_grab ()
 Grab a free connection from the pool, testing that it's connected before returning it. More...
 
void shrink ()
 Remove all unused connections from the pool.
 

Protected Member Functions

void clear (bool all=true)
 Drains the pool, freeing all allocated memory. More...
 
virtual Connectioncreate ()=0
 Create a new connection. More...
 
virtual void destroy (Connection *)=0
 Destroy a connection. More...
 
virtual unsigned int max_idle_time ()=0
 Returns the maximum number of seconds a connection is able to remain idle before it is dropped. More...
 
size_t size () const
 Returns the current size of the internal connection pool.
 

Detailed Description

Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance.

This class is useful in programs that need to make multiple simultaneous queries on the database; this requires multiple Connection objects due to a hard limitation of the underlying C API. Connection pools are most useful in multithreaded programs, but it can be helpful to have one in a single-threaded program as well. Sometimes it's necessary to get more data from the server while in the middle of processing data from an earlier query; this requires multiple connections. Whether you use a pool or manage connections yourself is up to you, but realize that this class takes care of a lot of subtle details for you that aren't obvious.

The pool's policy for connection reuse is to always return the most recently used connection that's not being used right now. This ensures that excess connections don't hang around any longer than they must. If the pool were to return the least recently used connection, it would be likely to result in a large pool of sparsely used connections because we'd keep resetting the last-used time of whichever connection is least recently used at that moment.

Constructor & Destructor Documentation

virtual mysqlpp::ConnectionPool::~ConnectionPool ( )
inlinevirtual

Destroy object.

If the pool raises an assertion on destruction, it means our subclass isn't calling clear() in its dtor as it should.

Member Function Documentation

void mysqlpp::ConnectionPool::clear ( bool  all = true)
protected

Drains the pool, freeing all allocated memory.

A derived class must call this in its dtor to avoid leaking all Connection objects still in existence. We can't do it up at this level because this class's dtor can't call our subclass's destroy() method.

Parameters
allif true, remove all connections, even those in use
virtual Connection* mysqlpp::ConnectionPool::create ( )
protectedpure virtual

Create a new connection.

Subclasses must override this.

Essentially, this method lets your code tell ConnectionPool what server to connect to, what login parameters to use, what connection options to enable, etc. ConnectionPool can't know any of this without your help.

Return values
Aconnected Connection object

Referenced by grab().

virtual void mysqlpp::ConnectionPool::destroy ( Connection )
protectedpure virtual

Destroy a connection.

Subclasses must override this.

This is for destroying the objects returned by create(). Because we can't know what the derived class did to create the connection we can't reliably know how to destroy it.

Connection * mysqlpp::ConnectionPool::exchange ( const Connection pc)
virtual

Return a defective connection to the pool and get a new one back.

Call this on receiving a BadQuery exception, with errnum() equal to CR_SERVER_GONE_ERROR. It means the server was restarted or otherwise dropped your connection to it, so the Connection object is no longer usable. You can avoid the need to use this by setting the ReconnectOption in your grab() override, but perhaps there are other reasons to need to exchange a bad connection for a good one.

This function wraps grab(), not safe_grab(), even though that could return another dead connection. The assumption is that if your code is smart enough to detect one bad connection, it should be smart enough to detect a whole string of them. Worst case, the whole pool is bad – remote server went away – and we have to empty the pool and start re-filling it.

Parameters
pcpointer to a Connection object to be returned to the pool and marked as unused.
Return values
apointer to a different Connection object; not guaranteed to still be connected!

References grab().

Connection * mysqlpp::ConnectionPool::grab ( )
virtual

Grab a free connection from the pool.

This method creates a new connection if an unused one doesn't exist, and destroys any that have remained unused for too long. If there is more than one free connection, we return the most recently used one; this allows older connections to die off over time when the caller's need for connections decreases.

Do not delete the returned pointer. This object manages the lifetime of connection objects it creates.

Return values
apointer to the connection

References create().

Referenced by exchange(), and safe_grab().

virtual unsigned int mysqlpp::ConnectionPool::max_idle_time ( )
protectedpure virtual

Returns the maximum number of seconds a connection is able to remain idle before it is dropped.

Subclasses must override this as it encodes a policy issue, something that MySQL++ can't declare by fiat.

Return values
numberof seconds before an idle connection is destroyed due to lack of use
void mysqlpp::ConnectionPool::release ( const Connection pc)
virtual

Return a connection to the pool.

Marks the connection as no longer in use.

The pool updates the last-used time of a connection only on release, on the assumption that it was used just prior. There's nothing forcing you to do it this way: your code is free to delay releasing idle connections as long as it likes. You want to avoid this because it will make the pool perform poorly; if it doesn't know approximately how long a connection has really been idle, it can't make good judgements about when to remove it from the pool.

Parameters
pcpointer to a Connection object to be returned to the pool and marked as unused.

Referenced by mysqlpp::ScopedConnection::~ScopedConnection().

void mysqlpp::ConnectionPool::remove ( const Connection pc)

Removes the given connection from the pool.

If you mean to simply return a connection to the pool after you're finished using it, call release() instead. This method is primarily for error handling: you somehow have figured out that the connection is defective, so want it destroyed and removed from the pool. If you also want a different connection to retry your operation on, call exchange() instead.

Parameters
pcpointer to a Connection object to be removed from the pool and destroyed
Connection * mysqlpp::ConnectionPool::safe_grab ( )
virtual

Grab a free connection from the pool, testing that it's connected before returning it.

This is just a wrapper around grab(), Connection::ping() and release(), and is thus less efficient than grab(). Use it only when it's possible for MySQL server connections to go away unexpectedly, such as when the DB server can be restarted out from under your application.

Return values
apointer to the connection

References grab().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption.html0000755000372000001440000002533612502417163030344 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadDefaultFileOption Class Reference

Override use of my.cnf. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadDefaultFileOption:
Collaboration diagram for mysqlpp::ReadDefaultFileOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Override use of my.cnf.


The documentation for this class was generated from the following file:
././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__coll__graph0000644000372000001440000001126612502417165033273 0ustar robertousers‰PNG  IHDRð€ºsbKGDÿÿÿ ½§“kIDATxœíiTSW×Çwh”@(”Á‚Ö®jÕ*E±*ˆ‚Hlp^UÐꪢ–I´µ*Ê Š"ˆj•UAQ,•¡8ÐúhÁZ R$ ƒ‰$ä¾îzóDx‚"—ýû´ïÎ=çüsò_÷œ{³ 4‚ A¨]Ó¤;AC#” P 44B)˜šð6<{ölÕªU"‘HÓB(‹®®îÁƒÍÍÍ5-¤ËôJCçççÿüóÏžžžšBYRSS}}}ÑÐ=ÊÙ³g5-²Ðh4MKxKpP 44B)ÐÐ¥@C#” ý–”••uïSKKKppðÇl``0vìØððp‰D¢%½4ô{ASSÓ˜1cŠŠŠvíÚU\\¼yóæ“'ON:µ­­Méùåå凌Ùlö¦M›zPì{M/~lG%vîÜ9xðàk×®1 6lØ´iÓìííÏ—J¥uuudÌáp"##{Tî{ •¯Ð4íèÑ£¶¶¶ƒŽŒŒ&¢¹¹yÆ ööö,ËÎÎ.44ôÕ«Wõ/‹'M𤝝߮@àëëkhhhbbòÍ7߃¢¡ßwT4´*lÙ²ÅÛÛ»KMÚ±Ýa'É·£»RÞkè¾ûÅŠH$ª®®>zôèéÓ§5­é6ú̽‚cÆŒY¶l™““Ó»ôÓ¿§J²ûG:‚Fôš9{ö¬——WoTÞ[ Ñh))) ,д.Ów¯Ð%AC#” P 44B)zñc»øøxMKP‘H ººxùP;½ÒЦ¦¦ £=Ì4h隢* CVÒ»è•ízÏŸ¿üôÓ4ܹ³ƒË5дŠƒ‹ ÚÉÌ,¡Ói4\¾Ü¾@évÐÐjçÌ™B©T*•BJJ¡¦µP4´z©¨¨ýãJ‚‚–”TVTÔjZÅAC«— î2™ä$Ó˜LúÅ‹¸ëP/hhõ’’R(‘HÉX"‘â®CÝ ¡ÕȃUÿ]'ŸyúôÅþS­)=}4´IO¿£¥ÅÏhi1ÒÓïhJO_ ­.¤R"5µH,~ã·¼Äâ¶ÔÔ"|ö¯>ÐÐêâ÷ß+jk›óÿþÛøûïO{\N_ ­.÷$ZZŒŒ Üu¨ 4´Z‹ÛÒÓ‹Ûí7d/¥¥) ywÐÐj¡¨¨¢±QÄ`ЙL“É ùÿ˜þò¥wj‹“ÔBc£èâÅ»²ÃääÛ°xñYfÖ¬Oú÷×Õ€2ªƒ†î x¼ãç§i!Ô·¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥xãü¯_¿^VV¦A5T%5µ <=M5-„‚ :ÔÙÙù¿Ç„L&Ss¨ ΢ÓYšVAM˜L¦¼‡ß¸BÓh´'''ÍÉC.pãÆ;vÈ{÷Ð¥@C#” P 44B)Þ/CWUU½ñæÝpvv®ªªê<£b?ЍÒð­ßŽÒ†ª÷&f]]]hhèÂ… §OŸxëÖ­·ÐÓ]tïç«|N§ÑÑÑ&&&šVÑe>ÿüó‹UPPðý÷߇……;¶Ç4ðùüÀÀÀ .€¾¾þ¢E‹Ô:Z%Ølö Aƒ4­¢Ë$&&~òÉ'ÁÁÁä¡………@ HIIéICK¥ÒÆÆF20`À×_­ÖẼåpvvÎÌÌôóóóðð8uêÔÕ«W-Z4cÆŒ£GÀ¢¢¢È3…B¡››[ii)üöÛoþþþ®®®ÞÞÞW¯^‚ ÒÓÓýüüÜÝÝW­Zu÷î]ùň\›òòò|}}çÌ™sàÀ±X¬4 o.dª/jŠ’@"‘ÄÆÆÎ™3gΜ9±±±‰ä]fƒ$;;ÛÛÛÛÃÃcïÞ½¯_¿V:ŠT*=s振¯¯»»ûêÕ«>|J“ª7€ÜÜÜyóæÉ öóóÛ¸q#777GFFΞ=ÛÓÓ3&&¦µµ•|GÙÙÙ~~~³fÍ:sæŒìm*&e´µµ%&&zyyyxxDDD477ÀÊ•+`îܹí>ÕGïos…...މ‰¹qãÆîÝ»œœŽ9rýúõ~øaþüù“'OÞºuk[[ƒÁÈËË311±±±‰DÛ·o_³fÍĉ ¢¢¢³³³“’’Ö¯_ÿÑG•••EDD(”‘‘ÑÔÔÖ¿ÿ)S¦(&ýüüØlvPPÙD>tuuÏ;ÇçóãââÈéNLL\¾|9y¾P(”ï¡_¿~ÿs6È®\¹E NJJZ¾|¹â(l6;%%E6»wï€óçÏ+&@ÅæÍÍÍÀÜܼl™ò}ûö ‚ØØX¡PÊb±üüüà×_=xðàÍ›7÷ìÙ3cÆ ¥IEýû÷ÏÍ͈ˆ Ñh»wïNNN V* ž?.¿Fëéé‘Arr²©©òÒ¢NfCQp]]ÒQ$‰âlÔÖÖ*"› 8ðï¿ÿ–7Ö£G~úé§}ûö566J¥Ò!C†ySSSÙdr8Åw¡˜T”!‹eoÖÂÂÂÂÂBéŒ@}}}—FWî¿)trr ýðÃGŽ9xð`xýúµT*ݾ}»D"¹víÚ–-[2228Γ'O¬­­ÉVOŸ>U쪲²’ülþùçCCÃN’Jár¹UUU²)~öìƒÁàr¹I2000`ÀÞ½{Iï’Kö»Oˆ¼`###PeÛ¶mгall¬tŠTl'NLIIÙ±c‡ì:••%‘HtttH§Óù|>i»êêjÒIÐÁE]1©(ãÛo¿}þü¹¥¥%”••åçç/^¼XéœtutÕéþçУFjkk;~ü8¹ F ÎÍÍmii‹ÅL&SGGgúôé111yyy °°0>>^±«èè說ªG%$$L:µ£dKKËåË—ÉWåc77·ýû÷ß¾}›Ïçß¹s',,ÌÕÕUKK«#Iàààpøðášššòòò7fdd]544ÞDõ ‰‰‰‘ &w#Š£Ìš5K~6È{J¥IÕ›€¿¿ÿýû÷ÃÃÃ}úèѣߥ==½™3gª’Dyð/V^ þÅ Bq°8ém‰DÇŽ+**âóùæææ .d0ÿ³!Þת¼Bw™W¯^ñx¼Gñx¼øøxŸ¬¬¬   ©Tªô|>Ÿ?{öl2îúÉ>^¡»LRR›ÍþñÇét:˜™™;véÒ¥™™™JËHz¸~²ƒWè.“••µdÉÒÍ$ººº .ÌÊÊRZàÚÃõ“}4t× ‹ä+Hlllž={FÆdkxxxAAÁ©S§:Jë'kkkcccwíÚUTTtúôi2OÖOòx¼¸¸8YÉ¢"hèîF£ÉöÐJ«^Û¡¾úÉ>ºkèëë4HñËÊʆ Fƪ¸ª¯~²ƒ†î2S¦LIJJ’¦!‰NŸ>ýÙgŸ‘‡•••dÐI«¬~’<ìÆúÉ>ºËøùùÕ×ׯ_¿¾°°°²²òÖ­[+V¬àp8²gsJ«^{¬~²ƒëZ—a±Xñññ‰‰‰±±±ÕÕÕ&&&...žžžd¥5(¸2Œž¬Ÿìã`-Gw‚_ö0XËP4tw‚® ݰÙìõë×kZEŸ P 44B)ÐÐ¥@C#”¢ý+ÅÅÅäF"ÈûÏ_ýÕ>%ÿ?ÞdU5Ò[øàƒ:ü?…ÒÛÁ=4B)ÐÐ¥@C#” P 44B)þ.î%uöK[IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/globals.html0000755000372000001440000000343712502417165022502 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented file members with links to the documentation:
mysql++-3.2.2+pristine.orig/doc/html/refman/field__types_8h_source.html0000755000372000001440000003613112502417162025476 0ustar robertousers MySQL++ Reference Manual
field_types.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999, 2000 and 2001 by
6  MySQL AB, and (c) 2004-2007 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the CREDITS
8  file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #ifndef MYSQLPP_FIELD_TYPES_H
29 #define MYSQLPP_FIELD_TYPES_H
30 
31 #include "type_info.h"
32 
33 #include <vector>
34 
35 namespace mysqlpp {
36 
37 #if !defined(DOXYGEN_IGNORE)
38 // Make Doxygen ignore this
39 class MYSQLPP_EXPORT ResultBase;
40 #endif
41 
43 class FieldTypes : public std::vector<mysql_type_info>
44 {
45 public:
47  FieldTypes() { }
48 
50  FieldTypes(const ResultBase* res)
51  {
52  init(res);
53  }
54 
56  FieldTypes(int i) :
57  std::vector<mysql_type_info>(i)
58  {
59  }
60 
63  {
64  init(res);
65  return *this;
66  }
67 
73  {
74  insert(begin(), i, mysql_type_info());
75  return *this;
76  }
77 
78 private:
79  void init(const ResultBase* res);
80 };
81 
82 } // end namespace mysqlpp
83 
84 #endif
FieldTypes(const ResultBase *res)
Create list of field types from a result set.
Definition: field_types.h:50
SQL field type information.
Definition: type_info.h:148
FieldTypes & operator=(const ResultBase *res)
Initialize field list based on a result set.
Definition: field_types.h:62
Declares classes that provide an interface between the SQL and C++ type systems.
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
A vector of SQL field types.
Definition: field_types.h:43
FieldTypes()
Default constructor.
Definition: field_types.h:47
FieldTypes(int i)
Create fixed-size list of uninitialized field types.
Definition: field_types.h:56
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_7.png0000644000372000001440000000363112502417165023741 0ustar robertousers‰PNG  IHDRµ%‹W?½bKGDÿÿÿ ½§“NIDATxœíšHoÇŸ¹,ç²ÍMç¨Ô‰®Å°ÐLL¤‚¨ Û,gE%eP-¢IÔ$(¬ì¿þH§Vh…«f–QaÒ¯ePn+ÿðÇ\[?ô&çj¶Í»ïŒÓÝ]~—|¿Ïë¯Ï½Ï{?Ÿçî½ÛsóX$I"»ĬåÁÊ‚ ”s¨ƒƒƒû[Ý þ:ååå …Â¿9!F£±­­M©T†½+ĬàÍ›7z½>h> z½>Œ-!fÅÅÅ“´þ@0ò`åÁÊ‚‰Y—¾¾>‹5ƒ†v»]¥R-Y²$&&&;;»¥¥eͧKh³cQàr¹7nø`æcf^¾|ytttsssggçöíÛKJJ?~άV+ŸÏ‡õ‚ Ž?‚Éëׯ‡Ýnïèè bÇŽ3ÚcPhžoÿKhµÚ‚‚‚ºº:¸¹téÒ¯_¿VWW¯_¿>l=1<< k>Ÿ_UU‚I|||BB 11Q§Ó‰ÅbÇcccg²Q:B¹°X¬††©T_UUÕØØ˜œœÌårO:P«Õeeeð/].Wttô‡<ËåQQQ)))‚ ._¾,•J9Nnnn{{;õo‰­­­ééé@­Vÿþý›VïŸÔúîÝ»GŽ¡6¯Õjëëëa=22²{÷n>Ÿ/‹5 üá˜ÅbݸqC*•.\¸ðÂ… þ)Š^¯·¢¢B( ‚ŠŠ ¯×ëóù´Zí¢E‹âããwíÚ522Xµj^]joS}l6àóù‚™ÐŠ!BRhnnž¤Ð())Áq~.‹‹‹q¯©© uttðx<¯×K’dSS“L&#ÂårÍ›7ïÊ•+‡£¾¾~Μ9.—«¦¦F  »ÝþðáC±X èíí…=Àbݺu===F£Q"‘TVVÒŠ$IŽŒŒèt:Øž¿v: ÂM¤´´´°°°¿¿ßl6/[¶ Z …ÓéÔét€ááá`âùóç·nÝ:88h6›W¬Xqâĉ‹/Êd2³Ùl±Xrrr4"pDj=­Ñ»ººFGGqïëë+**ÊÊÊb0 ©ã2 T*•Jå„kMݘz>Þ¿O’¤Çã™T÷ööú|¾„„„gÏž‘$¹aƪª*’$1 ‹ŒŒ¬®®v:AŒŽŽŽËd²k×®ùm¯_¿˜³ÙìïM"‘ЊÁúÄ0 àt:i÷z<6›ýñãG¸i0  ½½:£`bFF†Ãဇ?yò$333==Ý`0@¥»»Ö´ù˜îè~"##óóó¡NkB+†œ×§ö:©°Ù좢"ƒÁ044ôôéÓÒÒR@\\\{{»Ñh‹Åùùù/^¼ˆˆˆ°Z­™™™~O¹\8PZZ,222¾|ù ' »»»©â»wï²³³ýúõíÛ·ñññÔÔT¨K$¿•H$¢Î(˜h³ÙácÅÚµk>þìïM*•nÙ²%XoÓfâùóç‰$˜ ƒsü+Ï/J¥²¥¥E¯×çååÁo ·ÛMÄíÛ·1 +++Û´i†aIII&“ÉÔ§OŸ­`ð===ðÄiÙ¼yó¥K—¨Á¦¦&¯×- Ùl¶Õj…zRR¬#"hNK Èçóý—ÍétF‘Hd³ÙàÞ®®®³gÏklº£OÝ„Á9¨7“©¿øÏ míóùP(¼zõ*Üåv»£¢¢îܹóãÇÚÚÚ¨¨(·Û}îÜ9@pïÞ=‡ÃñèÑ#ÚõGAAAooogggZZÚéÓ§iE2Èúƒ$Éïß¿óx¼ÒÒÒW¯^™L¦ÊÊJ@[[Ü«R© ­V«Åb‘ÉdЊvF´¢Z­V(6›Íd2åää:tH«ÕÊår‹Åb±XV¯^½oß>ÿDFGGɉß5¡> Z“@1Üëæ|$yàÀùóçã8N5OMM;wnFFFkk+I’çÌ™3ÉÉÉ111¹¹¹7oÞ ÌG]]ÝâÅ‹ù|þáÇÝn7­H_’$i³Ù …H$âp8+W®¼ÿ¾†a;wîäñx‰‰‰G…VSÏŽã{ö쉋‹ãñxû÷ïÿùóçØØ˜F£‰D\.·¤¤.}¼^o^^^LL̤ÞB}´&bXó1Nž<©R©¦uȤ9ÐNiŠóD„F`>fþ÷±±±1»ÝÞÐÐpëÖ­7G„™™_Ÿ¾}û6++kïÞ½kÖ¬ùŸØØØòòò©ˆˆIYÛëõúmÛ¶‘¸ÿàûcÔÿãÿŸCü!(&P>L | ˜ y¾­­­ ˆÙ€ÕjMII™ Q yùò%|·ñ¿åرcÔH°ÐÓ,‚´þ@0ò`åÁÊ‚‰±Š´Z:YIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DataOption-members.html0000755000372000001440000001210212502417164027651 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DataOption< T > Member List

This is the complete list of members for mysqlpp::DataOption< T >, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x66.html0000755000372000001440000001647612502417165024674 0ustar robertousers MySQL++ Reference Manual
 

- f -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NamedPipeOption.html0000755000372000001440000001623212502417163027221 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NamedPipeOption Class Reference

Suggest use of named pipes. More...

#include <options.h>

Inheritance diagram for mysqlpp::NamedPipeOption:
Collaboration diagram for mysqlpp::NamedPipeOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Suggest use of named pipes.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_19.png0000644000372000001440000000330312502417165024020 0ustar robertousers‰PNG  IHDR%×Ý|™bKGDÿÿÿ ½§“xIDATxœíšoHS_ÇŸ»¹•+—ZZJL-7„¡ä¡hI½ ·°?of5Á4¢,Â3,(B4M-íß*ch T éßB°?Õ¾Xk]³îskÞÓ‹ûÝv¯s?ÿT¿û»ŸWç>çœç<ÏùŽóÜ{w „ðpÁŸ€gQàuå&¼®Ü„ו›$Ñ/œNgUUÕÔÔÔŸŠ†gÎ †²²²èå/ºÚl¶þþ~­VûÛ£â™/^¼0›Í3êŠ1›Í¿1$ž@§ÓÅXøúÊMx]¹ ¯+7áuå&®‡ƒ ˆ…òF„V«¥¿ï?ÚKF„ÃሿJ”´´4N7111ëZñ˜'® ÎÝ»woß¾½Ø«<þ|llÌív?|øÐårUWW/öŠñá¾®ƒ¡ªªÊãñ,ê*2™,###33³¸¸¸±±q```Q—›•¹èJDGG‡J¥’Éd&“©»»[¡P¬X±âäÉ“PSSSQQG‰DòêÕ+èëëS«ÕK—.ÍÉÉéî.]º¤R©RRRJJJ¬V+ýÂ'’ÅbÉÏÏ—Ëå555¡PˆÕ¿_1GÙ‘#G”JåÁƒcþ‘Œ3%Ì,˜…B¹\cìïï/**’H$™™™&“)º“ׯ_W©TééégÏž¥G;v¬°°Ðëõ&X,ˆ>¯Ðl@yy9I’ííí ÓéH’lmm¯×;88¸råÊ?~ „zzz (Š K–,iii»råJRRR hmm•Ëå½½½n·ûÁƒYYY022‚cÀÒÒR»Ýn³ÙòòòN:ÅjD}ýúµ­­ ‡Goc‡v»=99¹³³3ê–Þ`5Ò{±„kxÀëׯý~?I’>|Ðh4F£‘î„$I±X¬×ë].WOOŒã‰eee“““mmmðåË<…¢¨¨¨³ÊÒjµø6âæ¦ëðð0B(Ç´GFF"‘HFFÆãÇBÛ·o7™L!ŸÏ'‰ššš&'')ŠòûýÓÓÓ]]]Q·W¯^eêúöíÛhlyyy¬Æø¡bI.\¸ •JNç|teÍ1>LJ¥x|ÔI(zÿþ} ˜žžŒ:«ÕJß=<åøñãðñãÇYµÀ0uc}MII‘HÓ¡P¸sçÎÞÞ^¯×ûèÑ£={ö@ZZšÕjµÙlYYY›7o~òä‰@ -,,ŒúT«ÕÌ…Ö­[‡J¥ÒårÅ1ÆçСCEEEû÷ïgʬF&¬Yà.¬Bèû÷ï'NœØ²e ݧX,¶ÛíÛ¶mÛ°aCWWÝçêÕ«¶{˜¡¡!FsæÌ™D¢beQî›´Zíýû÷ÍfóÆñé )ŠºsçŽÏ竨¨Ø±c‡Ïç[³fÍ›7o¢³Þ½{Çt…¿`·ÛñÌdŒ@ èìì|öìÙåË—éöH$Ÿ?NÄ k1c$É>}ú4>>NŸ¨Óéjkk‡‡‡›››cc.Ô×××ÒÒrëÖ-«ÕšH`LE×M›6E"£Ñ¸oß>l!¢´´ôÞ½{$I†Ãa‘H$‘Hôz}mm­Åbñx<uuuLW‡v8CCCõõõ{÷îÉøíÛ7\ìcÚt ESSÓ¹sçðejj*\»v$É‹/&’k¸kbbÂãñx<§ÓÙØØ˜-“É¢C¡P8‹ÅÁ`°¡¡ü~œ…–-[–ŸŸ_WWWYY9Ç¿Mé‡râõ5zìÌÔ®¬¬LNN&I’î<77W,+•J‹Å‚‹ŠÑhT(Ë—//))¹qã0êk{{ûÚµkW­ZU]] Yh†bBˆ¢¨­[·F{OŸ>ššš››k±X úÊšEÌ.ÔjµÍf‹qrþüùôôôìììæææòòr¹\κ{ô)Á`pýúõ ³*²0÷M‰P__¿{÷î5…žó2Ž‘‡©+Ëÿ¯ódjjÊívwttܼysÁó$ÈÂ××—/_ëõzF3?R©Ô`0$bäaB Zy0›Í»víBü—âÿ5ð÷ô]¸ÿ~øÿ ¯+7áuå&¼®Ü„å9'æMÏßÏèèhNNÎ/&úÃìÓ§O…BáŠg^=z”.%Á?Õp¾¾r^WnÂëÊMx]¹ÉOøk‡C¾D›IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalInfileOption__inherit__graph.png0000644000372000001440000001333512502417165032561 0ustar robertousers‰PNG  IHDR»»²òx=bKGDÿÿÿ ½§“’IDATxœíÝ{Tgúð'P¹J¸ +G *%µžU‹žõRŠ"Úí/ˆ­U¨ÀvÅu]=-Ër¬‚Ç][\¹)UA¹ˆˆ¸Æ JA¤öÈr³U R ¤\’Ûüþ1$3 IçsüãÍËäg&_æ 1C#ÒÝРQƒ¨ÁÄ j01ˆ¦~Vþøñcý¬kl Y·nVDÓϵF[°`Áo~ó=¬k *++[¸paff¦Ö¥§c ìÚµkýúõz[ݘ¢Ï‹ç1ˆL ¢ƒ¨ÁÄ jÆJbh4Ú0Ø××ùÞ{ïYZZΟ?ÿàÁƒ2™Ì •èÙXIÌðêéé™7o^EEE\\\eeå¾}ûÒÓÓ—/_.—˵.ßÔÔÄb±È¶µµõÞ½{õXì0ÓßÕõÛ$&&ÆÖÖ¶¤¤„Á`ÀŒ3V¬XÁápRSSƒƒƒ5—W(d›ÅbÅÆÆêµÜaeDÇvêÔ)www[[ÛØØØ³gÏN›6ÍÊÊꫯ¾€ððð   rÉÞÞ^33³@~~þìÙ³ÇïêêzöìYP(ñññîîî––– .äñxª³9)äååÍœ9ÓÎÎ.<<¼¿¿_k' œATÛiiiQQQd\Hæææ‘‘‘iiiZ‡Z°`888¨#>ûì3‹åìì¼{÷n±XLî‡ôôtww÷É“'>|xD÷ùë ô222^¹ÌÆ»»»SRR`ýúõÝÝ݉‰‰ðË/¿ÜºuËÆÆF*•‘––æáá¡P(z{{Ç—ÀçóOž<Éd2{{{íììrrrZ[[ œ ¾¾žÜX²áããSWWW^^Îf³£££µv!’““Éò”í®®.hooW«¿´´ÔÞÞ~ˆñÉÅTÛ\.×ÛÛ»±±±¦¦†Ãá+€uëÖuuu%''@GGÇ+w¯¿¿¿¿¿¿Î¯Æ1®ÄTUU!‘HÔÚõõõ2™ÌÁÁ¡¤¤„ ˆU«VÅÆÆÑÙÙibbräÈ‘®®.…BÑÓÓ#—Ë=<<¾ýö[å°§OŸÖLLMM ùÓŒŒ 6›­µs°:KLYY‹Åb|²GÙ–H$ ãÑ£GdNN¹RàñxªÛþŠ«ßÄѬ–––`bb¢Öƒ±fÍšœœœ_~ù¥¸¸˜ËåÀ¤I“x<^yy¹³³óÒ¥KïܹC§Ó›ššæÌ™£söìÙš+rss#³fÍjnn¢S“µµµƒƒCuuµZuuõܹsuª­­M.—OŸ>|Èf³•KN™2EuÛŠq%fhþþþ¹¹¹™™™‹-"ç‘H¤P(.^¼ØÙÙôñÇwvv:99=|øPù¬~øAs(òêêêÈ—g°N­¸\nLLŒê•Q___\\œ¯¯¯îCÙÛÛ3Œ¦¦&òacc£““Ù¦ÓøuÑÏ¡ t›•”G`­m™LfgggooŸššJþH$?>++«½½=))iüøñ"‘èàÁƒvvv—.]âóù………ZÏc¼¼¼êëëïß¿ïææ¥µ“ä<† ˆ_ýuæÌ™K—.-,,¬««ËÉÉñððøÝï~'‹‡¿§§‡xèííÝÔÔôý÷ß{xx+l? aìžÇ ‚ BCC'L˜ÐÝÝ­|VFFÆôéÓMMMgÍš•——G„D"‰‰‰™6mš……ÅÂ… Ï;§™˜””‹µcÇ‘H¤µ“øêª¶ ‚èí툈àp8fff …ƒ/•J-Zdaa¡6NggçæÍ›mllwíÚE®Cº%Fû÷ï ¤ôµWZíá¯g‡Ò>3jÞÁ‹Å­­­§N:þ¼¡kÓŒø k {÷îÍ›7oÛ¶m|ðÁ›Œ3qâÄ]:‡qü·‰þ>µ™‘‘ŸÁ!äŽÕϧ6GÍ1 L ¢ƒ¨ÁÄ jôwu]RR"ô¶º1¥©©ÉÕÕUO+ÓÏÛ>£ëÿ¶1™“­­} ]5úy)õtu=ºìߟóí·wrswxzêëwôÀóu2™"7÷;ÈÍ­4t-Æ£îÖ­ÚîndgWI¥Ú?é=–abÔåäT‘à ûoÞ¬5t9F3€P(¹zõ¡L&ƒ–“:LÌÅÅ?(g"™LqíÚ÷}}ý†-ÉØ`bÈÊúNõÿ+Êdòë×µ|ès,Ãļ$y¼Z¹\õíZvöw+È(ab^*,¬QëQ(·ný¯««Ï õ'LÌK/~§Phy?óÊ•‡šc&æ…çϽw¯Ióp‚ ²²* R’qÂļŸ_Í`hÙ ñÝw?ñùø7Ô01/dgW’oÃh"ÈÏljé…Qó FŽŽVd[&SˆÅR ‹qÊŸâ»2Jø·k-._® =ÝÚzÔÐ…#œ•5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`bEú¹Ó`îÞ½kjjjè} ŽN77nª¡«ÐbÚ´i†}½‚0ð÷൴´H$ýܨy´+++;zÔð_´fßœèïïoèFÂ8¾±Ïc5˜D &Qƒ‰AÔŒŽÄÐh´††ƒ¬º¯¯/22ò½÷Þ³´´œ?þÁƒe2™.Olhh ©ÞÝëm1:3´¦¦&‹5#÷ôôÌ›7¯¢¢"..®²²rß¾}éééË—/—˵ßÁ@µkkë½{÷ŽDU†eW×oH¡PtttŒÄÈ111¶¶¶%%%äÝig̘±bÅ ‡“šš|ø0,X°È¤Ridd¤½½½]dd¤T*%"!!áwÞ™8qâ‡~xåÊr¾Ð\’œJJJJ¦Nz÷îÝ´´´¨¨(2.$ssóÈÈÈ´´4rɼ¼¼™3gÚÙÙ…‡‡÷÷÷«V¢:+ ‚Ï>ûŒÅb9;;ïÞ½[,kÝÑÁ°o9gddèRÔ××+ÛëÖ­ëêêJNN€ŽŽŽúúzÕAâââÖ®]ûôéÓšššßþö·ýë_“““œœ®]»ÖÞÞ^TTÄf³Éå5—$‡Z¹rå7š›› ½½]­˜ÒÒR{{{rIŸºººòòr6›­Z‰j›Ëåz{{766ÖÔÔp8œèèh­2,ûj¤ÊÄðx<‚ $ Ù¯–˜Y³fñù|²]TT4g·“žž®\àܹsäòšK’CÕÔÔÑÕÕ¥51eee,KuIrCØl¶ÖÄH$ƒñèÑ#²?''‡ÍfkÝaÙW#mTžÇL™2LLL´þôÇtttT>´²²’H$GÙóÎ;ï ¶$Ù˜5kX[[;88TWW/[¶Luüêêê¹sç’m777åSÈc’¦¶¶6¹\>}útò!›ÍV.9ô†§ÑwtúPe“ò¢«««¼¼ÜÅÅå‡^Þ¶úñãǃ-Iö+_B.—£zeÔ××çëëK>$$PWWG¾üšìíí FSSù°±±ÑÉÉI— 1N£¯âÁôöö’5kÖìÛ·ï§Ÿ~ª©©ñõõ=~üø_|±gÏžëׯwttܸq#::š<'Õ\Rm̨¨¨ŸþÙÛÛûÚµkõõõ¹¹¹žžžNNNaaaä;wîlhh¨¨¨Ø¿ÿ¦M›Ô*!™˜˜„‡‡?yòäÑ£G_~ù%—ËÙ}1¢ 7!ÄëžÇ¨µ¥Ré¢E‹,,,ÈÎîîî­[·Nš4ÉÆÆfûöí}}}r¹üèÑ£Ó§O·²²òõõÍË˳µµÕº¤Ú)A½½½ÇÌÌÌÃÃãÀB¡øÿÓ”””‹µcÇ‘H¤Z‰êP›7o¶±±qttܵk—H$b£Þp_´Ñ‘˜7”ŸŸ_]]­|˜••5gΜ7S3[#ÍHóöÌJC¨©©Ù´iSUU•P(,//ÿꫯ´¾ÿ†t1*¯•¨Ú³gP(ôóókoowuuݶm[HHÈŽ9qâÄ7d42ð½h333 [Ãha$ûjLÌJhab5˜D &Qc×JË—/7t ê :®0t´µµºƒ'ÆÓÓsÆ ƒ}¤ÍP::&ÔÕMzÿ}>ƒaDq“&M2†_-_]'.7‘Ç«=v,Ðß¾¡k1:x£N Þ¾]@ËÍ­2t-Æ£îòåj îÜù_{{«1>˜uYYäLM£Ñ®\yhèrŒ&f€ÖVAeåO … ÅÅ‹†®Èè`bÈË{À`Ðh PÀÇϞ=ë4tQÆ3ÀÅ‹ª—úL&=/ïë1B˜˜—êêž×ÖòUßmÉä™™81 €‰yéòåj†jA@CC[m-ßP%!LÌ AddÜ—JÕß}65eâĤ óBMMsKK—f¿D"»x±ßWÂļpéR•‰‰ö¿²µ¶ ªªžê¹£…‰y!7·J.—›š25ÿÐ ª ] ±0ŠO;ƒÐP¯ŽŽÿ3íٳβ²Æõë_þrÑ"7Õetðo×Z\¾\zºµÕð_žk„pVBÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Q3à;ª$É… Äb±¡ª1u@RR’¡ 1<777//¯]ª·KÏÎÎ6PaÈH1™Lb Ç™L<Ï@å!ãróæÍ¿ÿýïjxƒ¨ÁÄ j01ˆL ¢ÆèÓÒÒ¢~9÷¼¼¼ZZZ†k4XÞЃñõ×_¯\¹RõYºlX,NHH ZµjUhhhzzºŽwwÞ]7£KÌ[££££¸¸øôéÓ`aa±qãF]ž% CBBjkkCBB’’’¸\nQQÑîÝ»ÉjâóùŸ|ò ÙÖ}-o¿e~¤ô÷÷€XYYmß¾]—g9sÆÚÚúŸÿü'Nggçùóçoݺµ°°ð£>Ò\^¡Ptww“mÝ×ò&^çãååUXX¸eË??¿sçÎ]¿~}ãÆ}ôÑ©S§à›o¾9|ø0¹¤H$òõõ­¯¯€ÿþ÷¿AAA>>>ׯ_‚ rss·lÙ²jÕª/¾øâÁƒªUò[ZZºyóæÕ«WóÍ7R©Tk' < ¿òàÜÛÛûÉ'ŸøûûŸ8qB"‘ÈåòÔÔÔ€€??¿C‡õö¾¸AAYYÙçŸîëë»víÚsçÎ ½OŠ‹‹·lÙò‡?üáÂ… ðÇ?þÖ¬Y3XI2™,!!aõêÕ«W¯NHH ß +**úôÓOɸÆ¿aÆ¢¢"­Û>ØZ4·Qk‘¯á5g¥ÊÊÊ'Nlß¾=99¹¬¬ìäÉ“aaagÏžíîî^ºtiii)9õ–––:::²Ùl±XíççwáÂ…Í›7>|X,œ9s&88øìÙ³Ÿ~úé¡C‡4WtéÒ¥C‡tèÐÑ£GŸ={–––B¡0**ÊÍÍ----,,,99Y  1ìÝ»w?’˜˜ØÓÓóïÿrrr[>++‹Ïç'&&þãÿ¨ªªJMMííííììd³ÙjK²Ùì§OŸjÝöÁÖ¢¹Z‹bsóš‰ 033óññ€ÀÀ@333___èééáp8L&³¦¦Š‹‹}||h4šT*%B$™ššúúúæçç7.;;;44tñâÅ666žžžÁÁÁš+ svvvww.**¬ÓÜÜ\yÐVmk’Éd7nÜØ±c‡£££««ëÖ­[‹ŠŠ ¶mÛæêê:mÚ´½{÷zxx€©©éÉ“'ÃÃÃmllÈÉ¥¯¯oˆ}âççgaa±bÅ PÎC(,,ܹs§««kHHÈýû÷[’F£)Ïc´î]¶ñõŠÔôšç1fffÀd2ÕÚ@§Ó/^|ûömWW×ÊÊʈˆ°´´øàƒ;wîܼyóÝwßµµµ€þþ~…BŸŸ¿jÕªýû÷÷ôô°X¬ÆÆFå³~üñGÍ¡š››ÉƳgÏlll†èÔѤI“èt:Ÿÿâf¡­­­,ËÆÆæùóçdOCC9+õ÷÷GGGoذ!))éÏþó+G¦Ñh”*±²²JKKãñx</??Ÿœ_–-[væÌÕ+#±X|þüù÷ߟ|¨Ë¶kÝÆ×+RÓˆ$föìÙr¹üôéÓä´4-22òöíÛ}}}R©”ÉdŽ7nåÊ•'Nœ(--íìì¼ÿ¾ÖOÄÇÇ·´´ÔÖÖ¦¤¤,_¾|°Î¾¾¾‚‚ò§ªm*˜L¦——׿þõ/>ŸÿäÉ““'O.[¶ÌÇÇ'%%åÉ“'Ož<9vìX[[H¥R™LÆd2%Ijj*…ÂaÜK‹/NNNnkkkjjÚ³gÏ¥K—`Ë–-]]]ùË_îß¿ßÜÜ|çΰ°0‹¥¼„ÖºCD"‘êÈZ·q¸Ê‘«k:¾dÉ’ÿüç?K–,!{LMM÷íÛ—˜˜øóÏ?O™2åoû›©©i@@€\.?~ü¸@ çò¨ µlÙ²ˆˆ±XìííÍårÉ£«Z'‚#Gާ/ªmøÓŸþ¤: ÇÛ¹sg|||hh¨‰‰É‡~Èåri4šX,ŽŒŒ‹Å ,  ‹°°°L˜0!00ÐÛÛ{Ïž=ñññõ—‚‚‚âãã?ÿüs¶dÉr¥fffIII©©© ­­­ŽŽŽÞÞÞþþþ&&&ZwƒÁx÷Ýw×®]{õêUÕÁ5·q¸Êp·ÌÌÌ€€€aù´CJJÊóçÏ¿üòKÝŸÒÒÒ²iÓ&åÚÕÑ9FèÛÉO;¨Ýåoøg%‰DÂçó ÿûßûàÈà†?1? Y¹råœ9sÞdssó?þX—Î1ÂH¶}¤f%ôÐÓ¬„Þn˜D &Qƒ‰AÔ`b5Þóe0 ‡Oþ¡Ñ‚Œ„ªW×b±øêÕ«:~ªöööÊ?õhjWÛ Ïc5˜D &Qƒ‰AÔü$¸v¦-‘Å9IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1StoreQueryResult-members.html0000755000372000001440000003175012502417164031142 0ustar robertousers MySQL++ Reference Manual
mysqlpp::StoreQueryResult Member List

This is the complete list of members for mysqlpp::StoreQueryResult, including all inherited members.

mysqlpp::ResultBase::copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() const mysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() const mysqlpp::OptionalExceptionsinline
fetch_field() const mysqlpp::ResultBaseinline
fetch_field(Fields::size_type i) const mysqlpp::ResultBaseinline
field(unsigned int i) const mysqlpp::ResultBaseinline
field_name(int i) const mysqlpp::ResultBaseinline
field_names() const mysqlpp::ResultBaseinline
field_num(const std::string &) const mysqlpp::ResultBase
field_type(int i) const mysqlpp::ResultBaseinline
field_types() const mysqlpp::ResultBaseinline
fields() const mysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
list_type typedefmysqlpp::StoreQueryResult
names_mysqlpp::ResultBaseprotected
num_fields() const mysqlpp::ResultBaseinline
num_rows() const mysqlpp::StoreQueryResultinline
operator private_bool_type() const mysqlpp::StoreQueryResultinline
operator=(const StoreQueryResult &rhs)mysqlpp::StoreQueryResultinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
StoreQueryResult()mysqlpp::StoreQueryResultinline
StoreQueryResult(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::StoreQueryResult
StoreQueryResult(const StoreQueryResult &other)mysqlpp::StoreQueryResultinline
table() const mysqlpp::ResultBaseinline
throw_exceptions() const mysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
~StoreQueryResult()mysqlpp::StoreQueryResultinline
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1SQLParseElement__coll__graph.png0000644000372000001440000001021312502417165031651 0ustar robertousers‰PNG  IHDRÅ€4Ï:xbKGDÿÿÿ ½§“@IDATxœíÝ{P×Ûð'!\Œ Ê¥HchÅ"C}Û¡vDA,E©§X±A°C§ÃÅËxÁ–jËбU, R/#ÞJ‡RT¦õ…:¨Õ—«B$ðHBÙ÷}iJBLñ`<ŸñÍÉž³g7_÷l6Ë.ƒ¢(@ˆ¦¡;€&Ì" ó„HÂ_Ÿ­z÷îÝ»wï¾ØŠ£Iš'‘HdjjšžžÞÝÝ­T*{{{‡††4óTWW§š¦Ë€n\.—@CCƒ‡‡G~~¾ªå‚‚‚Éœ§I:ÞY[[WTTTWW;;;/^¼ø?þ`2µlŠ9sæh:::€©©)ý²©©ÉÃÃCõîܹsǦËãÃ$Í“T*U*•gΜ‰D6lX±b…H$ÒœMuÃ’7kÖ,õãîß¿O¼·ãÈ$̓Á8wîœX,–Ë妦¦l6›~«¯¯ï_5µyóæäää²²²®®®+W®¤¤¤Læãñ {}nÇß²eË“'Ox<^aa¡………««ëÂ… z{{õo*..npp0..îÙ³g ,HKK‹ŠŠ»ž;CÀ‘§Ïñ8AÅÅÅ·oßV½<{ö¬——×skáñ8Ò®®®.<<¼¶¶V"‘TWWïܹs2ïŸ&éxGPrr²D" îììäñxŸ~úiLLŒ¡;e0 jÂý=gGGÇ_ýåëëkèŽèB%4ò‹HGÇ;Dæ ‘„yB$ažIöû][[ÁÖz†Ì§›¹óÞ2™Ì‚XsFcæÉÜÜœÁ`Ô×דjP)e´|iiÿ‘ÌêM©6€ÃálÍHLÀóÄ=øùÙ©ß² Êv3t_Œ?=_c©€!¬í“uº/ÆóôýЧµ}0¡éb·¡»cì0OÏÑ\ÖÍ0a5D5”hùk¤óô %]Ê! €‚Îû’^ÜÐ=2j˜']þ÷Ñ@W½þóÅÄ„ÑT¦å2N¤‚yҥ颈iú÷I§¡!ª¡ó¤ æI—úb‘R¡v>…‚žG2Q£Ôp=2v˜§={ émVÈ4e4]Àoy#Â<¨éB7“5|û(Tý¯]€ç€G€yÒŽRBC‰H9¨å¦®’NEûþ—ߥqó¤ÝÓ?û¤"í¿Ö1YŒ¦‹xT®æI»‡Wz€iÊÔüG)©¦2<„Òn^_@/€Ã¶ûûƒÿ§è™ãÛÓ¬œÌè—ÜnÚáõzÉù¯Zÿo^å½gmèŽ;ïI˜'Dæ ‘„yB$ažI˜'Dž/ЋàF¯›Å-·«Cê0Oˆ$ïI˜'Dæi4ôBEQááá–––cÝ%#¿kŽ­¶¶¶üüüGº#/ îŸÆ–T*Cwä%Á<^~~þìÙ³íììbcc% (Ф¤¤3fØÛÛ'%%) õg @OOÏúõë¹\®³³sbb¢L&SðPee¥f †\ÃQ0äÍ…Ç’Øú¶ÿîU½¤Ÿè²dÉ’úúúêêj>Ÿ¿uëVŠ¢¾ýöÛÇ×ÕÕÍŸ?ëÖ­êÏ~¡(jíÚµþþþMMMuuu)))êêëëÓlÁkû0Oz9<¿¦©L¤z©þ´ Š¢ _}õUŠ¢æÌ™# éÂòòr///õ<ÉårÕmÇÏŸ?Ïçó‡5¥ÙÂØ¯Ix<>znnÿû:ððáCÕ Ó§OWŸ¿½½}hhhöìÙôK>ŸßÚÚªjžÐÝ‚ñÃã§Ñ£w-P__?kÖ,àr¹ ôÿÔîîîêêjõùg̘abbÒÜÜL¿ljjrrr¢§UÒÝ‚ñÃ<^BBBccã­[·¶oß¾~ýzXµjÕ¶mÛ=zTWWxèÐ!õùMMMCCCããã[ZZîÞ½»cÇŽµk×kSw ã€á†ÚñDëñÓ©S§\]]ííí(Š‹ÅŸ|ò‰µµµ­­mtttÿ°ãq‘HakkëààðÅ_H¥Òa3h¶ð2WóÅáïÁzÁ¿GÐŽwˆ$Ü?é¯Òæ ‘„ã" ó„HÂ|¨^¢å~‡¾¾¾/§7h¼ûý÷߇•àñ" ó„H””T[[»zõꤤ¤ÂÂÂöövº¼¯¯O$ñùüa‹ssskiiѱâ2™L*•J$’¶¶¶ï¿ÿþõ×_·²²’H$»vírss;yòdlllNNNOO=ÿéÓ§·nÝúÊ+¯h®>œ={V(fgg÷ÝwµµµGU_ŠºaÝ©¢ŽÏEG­ÊÊÊC‡ÅÄÄdgg÷ööþøãpþüyÛa$£ÌShh(›Í€°°06›½½½,«®®.]ºÀ`0 EQR©ÔÌÌ,00°¸¸ØÜÜüܹs›6mòññ±µµõööŽŠŠÒ\Pll¬³³³»»{TTTyyùH…S§N ¢ßUŸ~ë­· øá‡yóæ]¼x1,,ìòå˪Æ5ŸÙJQ”Žƒ'ˆŠŠZ¾|yPPPdd¤X,Þ¹s'˜™™åææÆÇÇÛÚÚÚÛÛ@?=ttô›o¾ibb¢¹úPZZúùçŸÛÛÛóx¼˜˜˜›7oª/EݰnŒTQÇ碣Vpp°¥¥åûï¿£éh£<g³ÙÀb±†M“Éôññ¹zõ*Ç«©©IHH++«ýû÷Ÿ={öèÑ£¯½öZXX˜···P(TßCðx<Í9;;Ó...: 5Éd²k×®ùúúº»»»»»GDD;v,++ËßßßÒÒÒÆÆ¦±±qþüùêUu?KSóK½î­­­éééR©TõÐ)UGZ}xúôiHHˆjæ©S§êXŠº‘*êø\tÔâr¹Ãæµ1ù~çë뛚šêêê:oÞ<;;;P*•)))ƒƒƒ—/_Þ¾}{QQ—ËmjjR=¿kØ/‹´ÖÖV:gOž<±µµÕQ¨‰¢¨ÔÔT:µ ãí·ß...¦ß]ºté‰'¼¼¼èÒW_}õî»ï„……ýÛõHIIIIIY°`B¡(--U½EHZWßÊÊjúôéû÷ï§£CÁz.qtGª¥ç³µõ1&ßï<==‡††Ž?Nïx€Á`$%%]½zµ¿¿_¡P°X,ssóeË–effVUU‰D¢›7o>|X³©ŒŒ @ðàÁƒ#G޼÷Þ{#ö÷÷«¾—©¦§L™°gÏžêêj¡PxïÞ½ÌÌLz¶ÈÈH‘H”˜˜xëÖ­ÖÖV‡ÔÔT¹\®+{zzDjt¬¯B¡d±Xr¹œ>(ö¥Oëê€ONNN{{{sssrrrQQ‘ÖEk.}¤Šºý«Zšmú“ý“É\´hÑÅ‹-ZD—˜™™mÛ¶-;;»££ÃÑÑq÷îÝfff¡¡¡CCC‡êéé¡GôÔÔÔaM-]º4!!A&“ѧ"éÑmX!ôôô¤§§ÓQPŸNNNÎËËËÉÉÖÖÖ~~~ôƒÅ€Íf>|øèÑ£™™™€Ë冇‡ß¹sgïÞ½»ví€Ï>ûL½':N$ZZZÆÆÆ¦¦¦N™2%,,Ìßß?99Yý¼”ÖÕ€ 6dddlܸ‘Á`,Z´(&&†žØ¢5—>REÝô¬5sæÌyóæ…„„üöÛoú4«îo~úôéÐÐP"g`9òôéÓ;vè_eØù_­§ƒÇúñàà`}}ýܹsǨý fÏž=vvv§OŸV•ïär¹P(,--ýàƒˆ7>ÖX,†éEÏÓýû÷cbb–-[æååõ"íL:uÅŠú"ã1Vãš ^Æx‡&3Ì" ó„HÂúH½ïÇŠHÂã'Dæ ‘„yB$ažIÿ—–ô Èw‚ÏIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1equal__list__ba-members.html0000755000372000001440000000737112502417164031144 0ustar robertousers MySQL++ Reference Manual
mysqlpp::equal_list_ba< Seq1, Seq2, Manip > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/graph_legend.png0000644000372000001440000004257212502417165023316 0ustar robertousers‰PNG  IHDR«ÛÅÄONbKGDÿÿÿ ½§“ IDATxœíÝw\çÿð' aC@†‚ ˆ µnAGGµU«(Z«¶®ÖÝ:«-~«þê*Ú:ªu|U@-GU"Ó *Ck@ Ù„„Ⱥûýq~Sd ÉçýòxÜøäÉåî“»ç>Çq C%;2@Ah"ÈM¤Õâ_òóѪU¨¾^‰ÁÍÕýú+ÙA@·X»ví«W¯ÈŽB…¸ººþªÙÇ|J‹Ï„‡£¹sÑœ9ʇ<èáCOFÔ…Bñðð°µµ%;•PPPððáC ®åk„ðp¥„¡ˆŒÔ׆ ÈŽB%„‡‡ÏÕøc>ô4d€&‚ ÐDš¨K@hh(¥9ÏŸ?WT| ‘M¡PÈŽTšé:÷”SLÏÕÖ³­úä“OŠ‹‹B¹¹¹cÆŒ!^#„ÌÌÌZËrrrFUQQÑ­[BÖ!½§Ä£~º”èééééé!„B¨OŸ>Š ª-†UVV*g[ !È:¤÷”xÔO·ô ®óÄÄÄØÙÙ;wN~ͧáõ …réÒ%WW×^½zíß¿!$•Jƒ‚‚ììì,,,>ÿüóêêjbΛ7o:T__ßÊÊjïÞ½!Ô`oH$›6mêÝ»·¥¥å¦M›$‰L&;pà“É422;vì£Gºãm€†hz˜EQ(”³gϺººZXXìÝ»7$$ÄÁÁÁ`|ÿý÷èüÈÈÈXZZ®]»V$µ²‰òòòÚÚÚŽÖ¹¥À;xKÂÂðVþú¾¬¬¬†«"þ;eÊ”{÷î7lšÎ†š={6—Ë=uêB¨²²òÀîîîiiiééé£GÞ¸q#Žã|>_[[û‹/¾(,,¼xñ"B¨¬¬¬ÑæöíÛ÷é§Ÿæçç§¥¥ 6lëÖ­ÁÁÁ–––oß¾½uë–µµukï´ãïz„PXXX{æltŒÅ›;Ì+ äóù§OŸFðùü“'O"„***ˆ•øûû³Ùì‡:99íܹ³éšqüøñ¢E‹,,,Þ¾}ÛÎxäX,‘”äää´ç­É………µ}^Pwݘ¤¥¥5úS£ 66Çq±XŒÊÊÊ0`@DDñ×—/_¯E"Ñ«W¯L&‹‹‹#æl´9—ââbâ5‹Å2d“ÉeðàÁ]}3 Ášf‰FFFè‡ñ†¯åäGu—ÂÂBùôèèè L™2åÈ‘##GŽìÊãZÖÖÖ;wîܾ}ûµk×víÚµfÍšèèhþ =º±@Ãý@*•"„ŠŠŠÞÛ6õ½­[[[çå察?¾gÏ„P]]]@@À¦M›RSS?Þì†ÌÍͳ²²ˆŒ†Ëå>|ø°_¿~/^¼Ï™™©˜·©éa¶ ?ßBl6›øÕG°°°pssKNNNJJ’÷úêŠÒÒÒÌÌÌÂÂÂaÆýA›º½"‰‰ BèÂ… |>¿õq.\¸}ûöŒŒŒŒŒŒÕ«Ws8„H$‹ÅÚÚÚuuuAAA¡ššb~¢w(BhÖ¬YÛ¶mãp8iii“'O>vìØÊ•+7mÚYRRrçÎ~ø¡{ß$¨µ¦‡Ùv.¸nݺììì'Ož|÷ÝwŸ}ö™|ú|ñúõk&“¹téÒ”””N†aXTTÔÌ™3=<ÓÒ"n!Ç33‹rrÊÉ €ÂäžG˜äÝkL‚rΓ P¥ 4ô‘D‚ÉÿK§Ó®]K%1 ÃËD¼—M¦d’ @Hu2€W¯ÞæåU4œ"‘ÈàF¨ N(¢j¿7…ª8a$ER ௿RétZ£‰NeFF)ñPåœG˜ø½i˜åœCHµjÒh•Èp"‘4®?7@T>AµÍ•#¬-@•O• xG%2€””¼²2~ÓéÄâù@=çJã[ª6â\Qz4à•Èþúë™–Vã[„òòšÇs”…Áe('¤ñ-&F¹!Wö4€ ÀÏ0 ×ÖÖjú!Êß§‘ €Îªx€Ä•ˆBGTÆÿ(t$ª@ÉQC)}ÞælÛöQU•xŸ_™˜˜ÕpX Q£ú“€.3vACöþûßÒ„êýaƒ(;$€RÁ±¯_¾råù·o‘€n€B^ádÇTã.” 2@Ah"ÈM ‰ 4‘JÔ )~OvàÈ(‘É ²#ïÀ]@Ah"Ȩœììl …Bvj2*ÇÄÄdË–--ý5''ÇÜÜ\™ñ¨%Ȩssó½{÷¶ôW Ã*++•Z‚ ÉÊËËkkkNix€B¡\ºtÉÕÕµW¯^û÷ïGyxx „úôéÓæz@+  D»PÆ.ùÿžßØØ¸£ë177ß»woû·µoß¾éÓ§w.f×¹&Å0¬²²²£ÛêÜRMãT×£ÍÏ¢=ûm#ílsMh^5Ó•o“êÐÓÓÓÓÓC „±’¨õ¯˜z´¹*P@?†’J¥ /D4º(qéÒ%GGG ‹¯¾úª¶¶V>]>›T* ²³³³°°øüóÏ«««[Ú–¥¥%ñúæÍ›C‡Õ××·²²’ï+7nÜ_[[û‹/¾(,,¼xñ"B¨¬¬L èèèœ8q¢¸¸øÌ™3ZZZÇñ}ûö}úé§ùùùiiiÆ Ûºukëo°íÐ iÒ)S¦Ü»wO ,X°àÃ?|óæMZZÚÀwîÜÙ°ÍñæÞi³ ÛæRÁÁÁ–––oß¾½uë–µµ5ú_A å¡°°°Î´~§V՞ς¸9Šãxhh¨†a8ŽGFFZ[[K$’f[£Í6ÇIj^ÇçÌ™3gΜÎ7k­ÏƒÊÊÊji BhöìÙ\.÷Ô©S¡ÊÊÊ–öƦ_‡6÷ö†¯B|>ÿôéÓ¡€€>ŸòäI„PEEÞògÔ(¼N›ºÞ’íÔ¡Ï·ÑÛÁ[n‡VZX‰¿¿¿ü°ßô`Exüøñ¢E‹,,,Þ¾}ÛRm¶¹‹Å"Α999í|¿¸âöÿv®§•ý¿ý_êNìTÍžŒ:™ÈÑéôqãÆÑ·’¤¥¥É7áààÐ40`@DD1ÏË—/å¯å+ÆÆÆÄ¶D"Ñ«W¯L&‹‹‹#Z°ªªŠN§«««««kÓmÕÖÖ>|xâĉG[[›Íf/[¶L  :”˜ÓÔÔ466öðáÃAAAÆ Û¶mÛ”)SByyyVVVò2ŒN¼åîÖJ“º¸¸ „JKKe2™|¤''§ÂÂÂFs6}§"‘¨¥†me)±XùäêÕ«nnn7nÜxöìB¨ÙÖh¤¥FЄæEïð&©ñƒ†N§ÿ-((hº7¶ôuh}oo´-###ù†¾&´Ô’Âk¤Cߦ¡¥vh½õÐû‡ý†«èèè L™2åÈ‘##GŽlO'öÖۼќ;wîܾ}ûµk×víÚµfÍšèèhU¨¢¥ý¿ý_jEíTН •JB†r!R6„›Í¶··oº”µµµ|l†çÏŸïÙ³§é<úúúË–-+(((++««« Ø´iSjjêñãljêêê0 ûã?ªªª¾üòËéÓ§WUU!„ÌÍÍå9—Ë}øð¡ÂÞ­Rû}ïÞ½i4š|d§7oÞôíÛ·ÑœMßi{¶éRýúõ{ñâ…|†ÌÌ̦KiæÇÑôxõêÕëׯ>œ8ä5Û´Ùjܼvvv Ÿ}zõê•––VÃc4•úÞq©Ù½±Ù¯C+{{³Ç¥ÖµÔ’Âks©ö|›TY§÷¨†‡}âN°°°pssKNNNJJj©ËW#­·yS¥¥¥™™™………Æ #z8ªŽVöÿö©µS)2011A]¸pÏçÿúë¯ ÿôí·ßfgg?yòä»ï¾[¼xqÓe.\¸}ûvâÂ×êÕ«9ŽüOååå%%%%%%ùùùûöí³µµµ°°‰Db±X[[»®®.((!TSSC¡PüýýÿüóO>Ÿ/‹étº¾¾>BhÖ¬YÛ¶mãp8iii“'O>vì˜ßµÒÐéô¹sç®]»6777##cÇŽ , þDtßEͽÓV¶•¥V®\¹iÓ¦ÈÈÈ’’’;wîüðÃò¥àãhÄßߟËå}ñÅÄ”f[ƒøS+mNLׄæ]¼xñš5knÞ¼™››óÙgŸ}þùç:::-ÍßìÞØìסٽ½•ãRë:Ô’û6õÞ£Ö­['?ì7|¤öƒ>ˆˆˆxýú5“É\ºtiJJJ'“·¹†aQQQ3gÎôððÀq<))éÊ•+ªöÜ`+ûû¿Ô Û©Ú¼OÐjrCn÷îÝ&&&ŽŽŽ‘‘‘¨ÁþÐÐÐ~ýúYZZ~ûí·"‘¨i?€úúú7Z[[3ŒÀÀ@.—+ß–•J}ÚÞÞÞÜÜ|Íš5uuuÍÞ¼çr¹ÁÁÁŽŽŽyyy-…Ñf›Ë]½zÕÃÃãÒ¥K"‘¨ïWz?€Ö÷ÿv~©;±S5{2¢à Ž;ááásçÎśܖÓ4 lhÒ®£P(aaa*µ*uB4Hxxx×WE\$«ŒŒ:Q`K*ðóm§ììlggçö÷0 Ã0LK«“ýÒä$I{ú 4¢¨öQ~;wH³'£®¶8ÐT*µ£wú›Õ‰Ó¿†ƒ‘(’±±ñŠ+ÈŽ´ 2ŠdiiyâÄ ²£mƒ»@ój+$2F7¤ÑèTº¾ºýf† hF]•ôò”tûwŠ–•J§héÓ´t¨Z:MK—J×£iÒ\*üÞ˜&’lg@4C¯—–¾]XþïðZR†DH,5¹ÍÃx¢Äè2€v‹¥<^]MM=WWSSÇãÕ Ø×ÁÁ‚ì¸t£þþ¦/ÃËe’Öžl¤P(6žF!o‘ÐꔘB4“øùù)?U F2µ¶VÒ«×§þþ?óùµ55õH"iœñ͘1ìøñ…í\³†4iq§èHutd::2m™6µ]ñ[ÉvïÞMŒ0¦š(8n[]ýÖØXJ£)m£ééé>>>ŠZÇkX¯”,‰ŒÅÊ7ÎÁÀ@›ìX:C(*pL‡øøøN…¤RºLF“HèR©–TJ34èêÖ+*$ÕÑúþoçÃH¿TÖÒ_)4 BÈcCßó,Ïέë\;+GiiiÓ‰ïe£Gž7ožLÖÌõ MÀçWT!„(¤£ƒ22»#G£Q==Û³NÍiRŒ‚%&ÕQÿM)8E×ÖÃõô1}}L_×ÓÃõô0=]LW××j÷¨TóæÍ=z´B‚üæ›o ²ªn¢%•ºþóSee6“Y£¬A}|||U%ÉÒÒR!ë颜œª={bòóyL¦¥‹‹>ÙátƒÁPTcΙ3§¥?I$´º:šXL“Hhb1U$¢J$4‘ˆ&Ód2 Ž¿—Á3Õ¦¦B…„¤RZÙÿ1)ŽÉp-]ª´kúWªÅÀ’¿¹«>jµU©©iÓì„åêúûï´ BëëÅMô7D¡Pž>ýÁÊÊDiõ¹¹Þû¼Kù¥RLÚèOZ4-…†á˜D&AQ(”ÛŒvPÌy]Í„Lž\šžN¡PF¬Xáµu+ Šœt„L†ýö[ì¾}Ëdƒ¡—‘±›FS·þÛ 4cÆ‘ÇsBt:J¥H¥˜LÖÌ©ŽB¡lß>íë¯'*=@rˆkdI|N|uA2_\#3´Ò®-—`ÒÏ•„p rœÜËû;[º¾ò.×)|7Þ3uêàÄÄmcÇ:S©­]¾îßßNÿM9˜;$oKîkÚW[«ñuW©L*’ŠˆÓ?¢ S}ÓA}‘bOà ŠñI$2‘HÚôôO¡ …²{÷LM8ýKEXÆ•²[+³B|ÓîïÌ«¯–Xixsàèu}þ¨¡jQh:”ñ;ûMÜݯGŸþdMYX]º´|ïÞ9ÚÚZÍ>ètŽã—.=xû¶]ãZj»^v·?îoÞŸNkñ—+BÛ˜~ü8ÃޞĸTV^^ÅêÕŸ?Ïǰft:íÕ«ÿÓ×ï‘Ý•éçŸïüòK´TÚ8ŤR•J;sf‰Ÿ$RèÖ vqŠGÈåsÏM6ZºjòãYMÞFw`2ûܽ»qíZ_ …ÒpÔ ]]úÕ««_¿þéÎofÏ‘‘Q4þI'§-Ÿ|òë±c1‹0&¯ IDATiiTYY$nIØw`Ó+tÝ£¿G³™x‡Bqòó£6' Çñ²ŒŒs¾¾/ÿü“ĸTÓÅ‹|}¤¥4<ýS©OOG8ý·I$’ê4½éI¥Rh4êÿû…šþyQZHé¥lÎ}^‡tœÔKKöáOÞßÛ©ÍéÁ5€öHLÌZ½:„Ë­•HdT*u—e gàr…‰‰Y lëei)ÏÒÒÈÇg€ŸŸû¸q.ÆÆºd…M:^ïß?|QøB*û÷F7Ò5IEK½–~ëÿ­m/[#TYì[·®¯X}7)„ãÌ©SýÔUÖcª¬´”¿aÕ¸¸šÇh4ê®]³/KVlª¯ººöܹijgј1Ž YòîÏT*E[[ëâÅåcÆ8‘¤Bà^š&äÄñ8q<§^×DË΋á`aáÞ‘‘8’I0š¶úœû ´Ke¥`ÆÐ{÷^"„víšÙÊ]±×¯K¢£3ããÙ¾Á0Üݽ¯ŸŸ›ŸŸû A6ŠÊ=ßÝ"Á”ÃSå>"~ôkÓ´—ù, }úÓß?±KÙSMý~Ú÷£F‘©jñùGÝÝq¬¹^ÙTª‘•Õ'§O÷~›2ãé?Î9vì^LÌK'§Þ«VMœ1cþ®‡Û’%gbc_aN§Ó.]ZááÑ®z'ªOX*~ŵ÷1aØ·ØáQ“A  N%‹•ÉbeÊ/ x{3ýüÜFŒphý±CõPS_3éð¤oŒ[Ö诉ىûnï»™vs¨ÝÐõ¾ëŒ^@£öìlâɉ ?ý„Iß«¬@¡Ñp³~½Çºu ; h¦7žoØ*‘HUï Ói«V}¸yó²S52‘ræLBZZ·7séR__·F—$SRò¦OÿÅÀ@7,lå°a=¯Ãiun½‰ƒæÞrí4È”ª¶Vœ’’•yçNzQ×ÌÌpÌ'oo¦ŸŸ{ïÞêÜ7^(nùsËš‰kôÐì Ï ž³‚/?ºÜϬߚ׬ðY¡K×èïs%›ýß N¡jiéõêõѱcvcÆ•ª)(¨Z±â|FFa£{·nm:ÔŽ¬¨TG}½äâÅgÏ&TÍœ9léRŸÁƒ[ìyóë¯Ñ¾¾nnnÖÊŒ°+0 ^œZÉãqây‚qà͆} ïgÇ@@§2!ÍbeÆÅ½–JeÚx{3}|˜žžNZZêÖߤrÊs~‰ùå÷øßzŒ•ãV®÷]o¢¯¹•—N .()Aè]@3gçÁ  _¶¬­å4Ë™3 7o>{ü8BAÄ㦦úéé»5áêZ+ª«kÏœ‰?>I -Xà¹t©½½ÙA)†°L’ÃÍOà•<â2Üj„¡7ÃÞ‡aÔ®ówdä««?}šϾ{7=;»ÌÔÔÀËËÙÛ›éëëÖ§&vù.å—þvÿ·_b~Áplñ˜Å[§lµbX‘ X[·¦_¹‚¢Òhãwî–”<þí·Ïnݲps#;4U‘šÊ™9óÈ7ßLrs³^³æR]ÇñY³F>Hvh¤),äžq¢«µµ]IEaOÂöÜÚ“]–=uÐÔ éA#ú ;(%Á1,ëömGùà@<çü¤I&þø#¹±©‚uë.ÇļŒŽÞ$¿T†ax\Ük¦F €ãxtôË£Gcž<É6Ì~Ý:¿?tëÑ7A¤õXÑñPæü<ÏÙ½ èäîßÿ§¦¦ÞÞÞÌ××Ýßß]s. þxóǧyO5üÑÁÌ?þ¸½aÃÌsç}}ÉŽ…LþùtíÚË!!Ë&Nt%;ÒH$²k×ROœ¸ÿÏ?ž¾n«VMìÑñ×VHòxœ8ÞÛÇ52 f?ÞÄï@~;=d=‰TŠ¥¦æ±X/Øéé…zzôáÃûùù¹Ož<¨=% Ô€üÑÁáö÷LÞ2{øl ¬³tsÕªüÄÄE,–‚ÆïqrrÊ'MúyîÜQ»wÏ";rðùõ!!IçÏ'•–ò?ùdèW_Mpuí1}øÁ¤ø‹ó¥œ8^Å+!M‡jãalïðófèšjúó®J@OUVV÷Otô˸¸øüz{{3â©Âqã¨ýE©ù©‡£_~tÙÕÊuÓ¤M£[ŠPýˆjjÎûúš9;‚4/’HdÓ§ÿ‚aØÍ›ëÕ~Woª¤„wìØ½ððÇ eÙ2Ÿ… ÇZZ‘TWÝ\žÅ°×±Çè;ÊHý*ïª2Èz<™ ËÌ,b±2Y¬—éé…ººô#úùø0ýý:;÷&;ºn”]–}äÞ‘“q'û0úlðÛ°Ôk©ŽÙA)IÑãÇ¡³g¸k×E‹ÈŽEÙvï¾qáBÒÝ»ß:8X‹R5­ækdBA—@ V**dÙWK\ðöfNœèj` žËæWåÿõó™Ä3zt½UV­™¸ÆÌPMž{n]â¾}OOžüìï¿Í]\ÈŽEy¢£_.ZtúÀ€ùó=ÈŽEyZ©æ«ú0^üTÏã$ð-°tŸ«Yy›Šƒ @=ØQQ™))yÚÚZ#G:øø0½½™­ë¹*Gï={´^Rÿ¥×—ý7ªý¨ƒ˜TzeæLImígÿ­¥£žé]#ee5¾¾û½¼˜Ç/$;ehO5_•%ãÅ)5œû‡­ÂGÂæÌñû¿ÿüÙgdÇ¢xM«ÿª‡žUÍWXö¿‚}Oj0)Þû{†ý8Ã^Íûd¨7È@ó8œJ+“ÅÊ”_ðöfúù¹á ²©6åUæb:pÚPÇð«ñ_­ó]gª¯&µ~ú)õÌ™…wîôrr";ERËê¿=±šï£ÃEY·ªìÇ3ì¼}Gié’Y·';;ÛÙÙ™8y½}ûvãÆÉÉÉ®®®ß}÷ÝÌ™3ÍZhCm­8%%/**óÎô¢"®™™á˜1NDýÁ޽Ɏ®3ÊkÊÅ;rïˆD&Y2vɿɛûšô%;¨®Â¤Ò+3f`Réü7ä# õtêWý—ϯ;u*îâÅUUžUÍWÄ—iéRiÚ*‘ýËÏî•••nnnÓ§O_¶l™‘‘ÑíÛ··oß9iÒ$ÈÚ2ÐÄE,Vf\Ük©T6p ·7ÓLJéé餥ÕÃjy D‚3‰gÞ=XVS6wäÜï¦~çÒ§g—Ö©æp.øûùüsŸíÛÉŽEˆê¿2vë–:TÿUýj¾"¾¬ ‰W[!¼PÕk‰ÊÏî«W¯®¨¨ •ÿiÓ¦MÏŸ?g±X´ @ÇÕÖŠâã_ïÞ}ÃÛûÿ¬¬Ö»¹m_¾ü\HHrqq5Ù¡uŒH":Ÿ|Þe‡ uuÚ¯Óå<";¢.I»té  '!ì@`×®ëýûof³KȤ«^¿.^³æ¢Ý·Ã†í=2õôèÔ¨oÞ´¹BèÌ™3...æææ?ýôÓ… úõëgll¼cÇŽ–ÉÊÊ’Ÿn¾¾~ýú Aƒttt.\¸@L‹Å7n´´´´°°Ø¸q£X,–J¥û÷ïwvv6443fÌÅ‹‰5ôéÓ'99¹á†jjj8N£­Ü¸qcÈ!zzz}úôùé§ŸZÙt³Õd «òò*BB’—/?çä´ÅÊjý¸q{wï¾ÿZ,–’Z{É0Ùõç×Gï–¢±{Ç^~ìˆ:ïÆÊ•¿ V[UEv ]rÿþ?}ûn¸téÙtI|üëÏ??Õ·ï†qãö†‡?V­o†?9VôÇœÌ߇¥œÿâÞŽÜ7¬*‘ ]"„ù|þéÓ§B|>ÿäÉ“¡ŠŠŠfi6:::'Nœ(..>s挖––@ Àq|ß¾}Ÿ~úi~~~ZZÚ°aönÝliiñöíÛ[·nY[[#„¸\.B¨ª…]]¾>Ÿ¯­­ýÅ_©CYYY³›n)5P˜º:1qa`Ò¤Ÿ­¬Ö;9mùüóS!!ÉEE\²Ck¯„¬„i¿N£,£ ùÏóÉç¥2U:d·O=wräÈk_~Iv WZÊ4hÇW_õÔ_`R©,<ü1ñ-8•aÙA5#öûÜÁoŸòeÒŽ…‡JMMÅq\,7z••Õì"ÍfUUUt:ýàÁƒ\.ðšš™L†ã¸‹‹Kqq113‹Å2d“É,åòÔô„ÿã”,,ÌÑÑQ[[ÛÅÅ%22’˜Èçó—,Ybjjjff¶|ùr¡P(•J8àääd``àééùðáCùòòòfÏžmmmmdd4jÔ¨ë×ßuãmx 88¸W¯^¶¶¶Ç ´´´liÓÍNTcP¬¢BðàA6‹•Éb½äñjííͼ½™ÞÞÌ \ UkØ{‘Tö$lÏ­=ÙeÙSM š4¢ß²ƒjMÚÅ‹¬mÛæ„…ÙCv,m[¿þrtt¨þ‹«j5_LŠçDqmÆëšôøò @9 ªB&Ã23‹ØQQ™))yÚÚZ#G:øø0½½™ƒÛ’Ý¿0»•vëÇ›?>Í{JŒ:8ýƒédÕ¢+V¼MIY­kbBv,­éÕU¡š¯LŒ§ÔX 7¤i÷°\@ATQe¥ 99;!•QVVcggF¤ãÇ»©ÊH$Ĩƒ7Ón·¾öõŸy|F¥¨ÜA¹žÇ;ïëk5tèÇ¿ÿNv,-Rý꿤Wó­çI ùœøêÂäIlÚïL«a*:vpKŠÂ¹FAT†á… ìøxöƒÙ¡¡Cíýýݽ½™*2xqj~êáè×]vµrÝ4iSà¨@:MµÊòs®ÎŸ?ùÐ!÷ٳɎ¥*^ý—Üj¾5EâÜXn~¯ä¹ªE±ihïcbçÃ0°T­} ôP€ƒË&&f%$°Y¬—¥¥)!U*ŽÞ;z4öh½¤þK¯/7úo´íE~OÆÊ¬¬‹S¦ŒX¹rìÆdÇòNYY¯ï~//æñã ÉŽ!„d2,""åÌ™„´´ooæÒ¥>¾¾nÝPrßÔsªk ÅÞ;ìºuC4PN%‹•ÉbeÊ/ x{3ýüÜFŒpPþÃZB‘ðtâéà¨àb^ñ¼Qó¶NÞêfí¦äy~áBÌöíáá¶žäÿàÆq|Á‚ßsrÊ£¢¾%ý&N}½äâÅgÏ&TÍœ9lÙ²qƒÙtßæ0^òLÏãÄñø…"}3ºÝ8†×6[ø­” 2 †jkÅ))yQQ™wî¤qÍÌ ÇŒqòöfúù¹÷îm¬ÌH$2É•ÇWößÙÿ²øåGƒ>únêwžŽdž}¯}ñEizú¢èh]ÉÏÜŸ8qÿ§Ÿn^»¶vèP2ûr¹Â³gÎKª­ÏŸï±t©½}÷Þ¸IØ“ŸÍñe½œôì|öãnª÷ Ð5ÇáT&$°Y¬Ì¸¸×R©là@oo¦ÓÓÓIKKIÇ]Ço¦ÝÜ{{oò›d¢„À´ÁÓHé¯PWUuîÃí½½§þú«ò·.—šÊ™9óȆ þë×û“Cnnùo¿ÅFD¤èèпøÂkñb/33e<_—zºXÛ€fïcbÔW[ › MQW'~ú4/>ž}÷nzvv™©©——³·7Ó××MiE舷Òo ê;è[ÿo瞯EUv¿~~î>>LG%ôúN/J?p÷À•GWl{Ù®ó]·Üg¹]©7ÂcwîÌ ýœÅbØ’ÐE‘¬ê¿J¨æ+,“äÆpóx%Ï„Ì{ymƒÎ}@¥A4Z}½äɓܸxvB;-­ÀÀ@gÌ'??÷‰]­­»·Œn^eÞ!Ö¡Ó § t ¾ÿõ:ßu¦ú¦ÝºE9™X|iÚ4º¾þ¼?ÿ¤Ð”úœQý÷Â…¥~¨¼~‘Ý]Í—_ Ê‹«Îç•<Rµõ#»q {oƒÞP·¨4ÈxG~aàþýjjêííÍ|}ÝýýÝ»õÂ@yMù±ØcGî‘È$KÆ.Ù¼ŸŸŸûäɃllºågº@$8“xæà݃e5esGÎýnêw.}\ºcC =;w.6(h^D„õðáݽ-„D"ûøã_¤R%UÿUf5ßÒBËAúð,èq  5ee5qqÿDG¿Œ‹û‡Ï¯'/&J+ü4&–ŠCŸ„þô÷OìRöÔASwLÛ1Úa´b7ñÿkÉ’ 6{ÑÝ»ÚFÝ^ë^iÕ»£š/7§ž_íò‰¹®)tîê2Ú…¼˜ÅÊd±^¦§êêÒGŒèçãÃô÷¨ØS1úðž[{å>êîчk++Ïûú:Œ?ùСnÚA9ÕåÕ|™ÌÞ_ÝÕj¾˜ /}.àÄý[·Ç÷€CïTtD>:2:¬¢BðàA6‘ ðxµÄ…ooæ„ ®††:ŠÚŠüÑÁl>Øà·aÁè4ªâ»#äÅÅ]]°`ÚÑ£.3f(|å„î®þ«ðj¾¥//ÿ¨(Hâ‹øRSG={†ýx¨ÛÔdtqa !•™’’§­­5r¤ƒÓÛ›9x°b´{^ð<˜|ùÑe{3ûµ®]á³B—®àêîýðCæ,b±Œm_ —¨þûæM‹µQáÕ‰j¾gÎÄrXÍ7ëVûF¥ý8†½è¯ÂR:T d(Fe¥ 99;!•QVVcggF¤ãÇ»tý>tNyÎ/1¿œŠ?e¬g¼rÜÊõ¾ëMôö°¢L,¾øÑG:FFsÿøCážžýàA6BhèP{woof/.«);{ü—˜_0[ž-¼ØÏÏÍÏϽsDRQØ“°=·öd—eO45hzЈ~#ºŽÿµxqeVÖçQQÚ† èñ®¨ê¿ ©æ{{UváC¾.ãu{ÆÑõ•Z Ê&Š’“³Y¬Ì˜˜WÅÅÕææ†žžN¾¾nþþî †~‡VE<:¸ëæ®'yOºþè ñp`_ßItz%…TÿU`5ß¼Øj†VŸ!P·9È ‡SÉbe²X™ò ÞÞL??·#:ô3—xtðfÚÍavÃÖù®ëô£ƒ¹±±.\8íøq—?îÄâ„®WÿmRÍw¢««U›Kqsꎛ:*u˜%z.ÈP µµâ””¼¨¨Ì;wÒ‹Š¸½zŒëLÔìÝÛ¸+IÍO=}øò£Ëæ«'®^9n¥ŽV‡f‹Ù±ãåŸ.ŠŽ6îÛ™ ºXý·£Õ|ßÕí‰çqâxüsºÙ¸ö *‡£ˆÅÊŒ‹{-•Ê´ñöfúø0==´´Ú®J“]0´•IDAT–}äÞ‘“q'{÷þÆÿ›¥^K t Ú¿u©Hté£tŒ¹ááx8pÏž›gÏ&ܾ½ÉìÓ¡Uó7ot+啤õX~"Ç+H$êöèÚû˜ØcX¸CÝÚ 2TW]øéÓ¼øxöÝ»éÙÙe¦¦^^ÎÞÞL__·6»×•ðJNÄ8}˜N£¯š°jÍÄ5f†í}bžx8pìÆ#¿úªCw®úo'ªùÖUIÃgdÚxÛy3lÇC¹~:2zùàÅ÷î½ ELf??w&1xq^^^TTTÓ¥ø~tIt\y•B ° ð4oï‰Y””$yöÌ૯:tàòå Í›×Þ§$ìʕœ¡µµî˜1fnnFM{?øûû÷ëׯ™ek1‡€®€ €†Ï¯OLdÇÆþsïÞ«ââj £ñã]^¾dEGŸkqm„\*E¨¤½[¡ ¤M¡ˆ:x| P´¢á¸¨ý‹‰ Äâ‚–f ¼|ùr‡Â´dô`ò %›š²ƒ‚‚ÈŽHÁþóŸÿXXX„‡‡“j®¡ЃÙÛ›}ö™çÉ“‹˜L.Ù±zÈM ‰ 4dh &ue†¦ŠŠŠ&L˜Ð‰`:½ @! t‰¡¡a`` B¨¸¸ø“O>!;@{A胱|ùr„†a|>Ÿìpíj„ ÑÑÑ‹-úøãCCCåÓŸ>}º`Á‚éÓ§_ºt‰˜"•JOœ81sæÌ™3gž8qB*•ðSSSçÎ{çÎâbþ×_š5kVKKaºpá©S§®^½úÕ«WJÓ€A€æJLLƒ úôÓOÿþûïf—¢Óé‰ä·ß~«¬¬tttüþûï‰Ç¤€ÑPååå0:0 ýà. ‰ 4d€&‚ ÐDš2@Ah"ÈM5P4íþýû÷ïß';Å›7oÙ! ž & ê '''%%…ì(ºÅðáÃaAºd€&‚~€&‚ ÐDš2@ý?G#™ø!GsIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldNames__coll__graph.png0000644000372000001440000000757112502417165030512 0ustar robertousers‰PNG  IHDR°p1=m½bKGDÿÿÿ ½§“.IDATxœí{P×ÇOB € ”¡/_”KíLÑQ¨ˆe@K' ´HiåUZG§P;ð­- ´@¤>F0 ).($UÚFF @B^{ÿØÛÜÝð”W°9Ÿ¿ÎþÎÉï÷;g¿9ç°»l‚äoˆÚN²º€‚€à€‚€à€‚€à ax<ÞÄÄ„¶RhCCC{{{õ!N|>íÚµúúú+žD;LNNòùü`0+›Dk >}úk{(((Žåijgϲ†Ð"KØ»Õ3PK ˆîîn¶x?«3îÒF™É›©©ééÓ§—*ÊbXA¨TªáááÅûYq—6ÊLÞh4Úwß}·TQÃ+ ¢´´ÔÉɉB¡ØØØääävîÜ Ø¸q#@©T&%%988ïÞ½»¹¹ývJT—™Læ—_~‰'''×­[W^^ËåÑÑÑ6l°°°ˆŽŽ–Ëå …"..ÎÚÚÚÜÜüèÑ£"‘H#.@$}üñÇ4Á`DEEI¥R4PMMµµu}}½FGÁÔ˲KØ»9½aÓ»víšúS!77wëÖ­ëׯOLL ’‘‘±mÛ¶µk×îÛ·¯¬¬Lc}™¶/ ÁP[[;00€ÌŒX,Ö××ÏÈÈèïïÏÎÎ&‘Hb±˜Çã©ý\ºtÉ¢¨¨¨¯¯¯¼¼œN§£U"‘(++ m£.ߺuËÚÚZ¥R!RRRB§Óår9‚ ßÿ½ŸŸßóçÏ9ÎŽ;Μ9“””´}ûv‡Ãår]\\¢¢¢ÁÆEäðáÃ]]]ÇÑÑ1>>màííýàÁ±X¬nÙÒÒlnnÞ××·|½›Ó6½öövµàïï?22’••ÎÊʲ²²ºwïž@ ¨ªª²³³Ó8qUUUè—§»»{–Ó7•ÚÚZ¬åÕ! ׬Y“œœ<22¢R©ÆÆÆ”J%¶“×®]S·¿~ýºFêXÆÇÇ©TjKK ‚ ‡:{ö,jß²eK?Z®ªªrvvÞ¼ysQQjyúô)ZÆÆ•Édzzz¿ÿþ;zXTTdgg‡6àp8¨Q"‘ܸqãwÞyë­·233ÇÆÆ–µwsz懵Г$“É<ÏÑÑ177Wí9//oj\>ŸÇ`0|||*++•JåL‰aY¬ ©¯¯÷÷÷§R©®®®¿üò‹Fg ÚÛÛÕ?~<Ë!Âb±bbbÄb1•Jý믿P#…BÁÎa&&& …Ëåj|÷Å‹‰D‚r8 …‚6ÉdÈßß¡àààææftNZÞÍî ›ž† þüóOu™Çãttt¨Ýb§ d2YAAÁž={ž?>Kn(Sñj{‰D¢R©nß¾- CBB|||„B!¶Á¦M›:::Ô‡Ož<™Ýa`` ›Í¾{÷îÛo¿­¾ÅB£Ñx<šßÈÈHSSNïééAkÛÛÛ¿ùæ ?6lÐÓÓëîîF»ºº¬¬¬Ðòš5kæææÛ¶mklllhh@· ËÝ»9½aÓÓ€HÄ—7Þx«³³s¦ Ož<éííݱc‡Á,éÍVsΉ„B¡°Ùl@pùòe …"‘HPu£3ð?þhaaQ\\Üßß_QQaccf^eA÷’öööØ©øÄ‰þþþ===...Ç‹‹srrâr¹\.w÷îÝaaaÈßß*õÌÏb±<<<º»»¹\îöíÛccc56‚p¹ÜˆˆÒÚÚº¬½›ÓÛÔÙ-Ôß´œššÊ`0*++‡††jjj6oÞL °™+•ÊÊÊJ&“ieeËçóg9‰X–`ÉÈÏÏ·µµ%“É[¶l)))AD.—ïÙ³ÇÈÈA…B‘””dggG¥RwíÚÕÔÔ„ös¦Î#ndd„ÝôŽŽ~òÉ'ëÖ­333 —J¥QQQt:ÝÄÄ$00pddD#.‚ B¡0((ÈÌÌÌÒÒò‹/¾PþÔ.ŒŒŒ\ºtÉÖÖ¶§§gY{7»·ù B©T¦¤¤ØÚÚš˜˜xyy•””˜››cÓf³Ù;wîÌÍÍœœœýôi°‚øÇ T*Ñ?jV?¥¥¥Ø½ ›ÍvvvÆ6@7" `±{ˆD"‘DÒ|duÂápŽ9òèÑ£‰‰‰¦¦¦sçÎ…††bL»Y¯Çˆè8111L&S ØØØ;v,""b™bAA¼H¤„„„„„„ˆ¥»KdZ  8  8  847•"‘H¡Ph%ÈÊ#‹5,8Aèëë÷õõ­`>«…êêÀþý›´œ‡6и•H@tþýJ¥ê_ÿŠp8ÿ&WŃZî!ÀÇτÂq¡PÜØøLÛ¹h(pûv+‰D\³†xûö´‹öÑuAH¥òòò…B)—«ÊË;¤R¹¶3Ò2º.ˆ:Õ"JåÌøì‰Ž ë‚(,lÅ>î\XتÝ|´ŽN btTZ]ýT©T¡‡J¥ªºúéè¨T»YiĽ{\• ÷W·J…TVrµ•Ïj@§Áf·j\…A„ÍÖéUCw!Œ56òT*Ö¨R!<`L[YiÝDYYû´×% BYYÇT»Ž »‚((hÕØ@ ¨T*]¾B¥£‚àóG8œ3tt¼èë›þŸyþñèè3•CCb:ÝT½@¯MQ(ÿ{v™H$ Ñé¦ZËO{À»q™¬íD´Ž.™€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à™Ïï¿Ö×דÉdmgºŒH4‰¦í,–2™\__?Ÿs=¯wLñù|™L·ÜyC–‰óçÏóùüù´|…—ŽíÝ»wé@´ÍùóççÙî! 8  8  8  8^Aðù|ww÷¥òæ>³‡˜©VmwwwǾvis^tôÕÆ€´´4KKK¬EOO/00p1>ýõ×ÚÚÚ}ûö-.5m¢»‚055]¿~½†1<<|1>}||~øágg穞_–rÉpww¯¨¨f2™yyy÷ïß üðCkkë‹/N}ƒøÃ‡ü¼¼üüüòòòæ3b3¥1uÄ–%ÞC´µµ¥§§‡‡‡gee=|ø0;;;222''gttôÝwßmhhP*•€††KKK;;;©TÏd2Ñ!NLL”J¥ååå7nÜ ÍÉÉ9zôè… ¦*..¾pá·ß~ÛÜܬß©FSSÓ¨¨(´[H¥R 415l6»¿¿?33óâÅ‹=ºzõªºª°°0???<<<'''(((##C]E$Ïœ9ÓÖÖVYY‰õ611kooóæÍÈÈȬ¬,‘H4çˆM›Æ´#¶ð6…%D@@€¡¡¡§§'€ÅbzyyÆÆÆI$‡ÃTWW{zz¹\Ž ˆD"!“É^^^¥¥¥úúú………Ÿ~ú©«««™™™‹‹KhhèÔ@‘‘‘ cëÖ­¡¡¡UUU3©TêÁƒÑZlzCKK ÖEEÅÉ“'-,,lll"""°µwïÞŦ§±Ê0ŒðððÔÔÔÁÁAµ‘L&gggŸ8qÂÌÌÌÂÂ0>>>çˆM›Æ´#¶ s5=K¼‡044H$2€H$ºººÖÕÕÙØØ´µµ:u `llœ’’Âf³¯^½êààÀb±\\\úûûíììÔ>mll¦b0hÁÚÚZ Ìbœ‰›7oZYYa-Ø«ý/_¾ôóóSR©TuY Ìžž¯¯o]]]RRÒÉ“'Q ‰DêííMNN–H$öööØÆ³ŒØ´iL;b³÷ô•XÑMåÞ½{6mÚôæ›oš››&''U*U||¼B¡¨©©ùê«¯Š‹‹i4ZWW—­­-ú©žžž©®z{{Ñ3ñâÅ 33³YŒ ÃÄÄ$%%UŒX, …êª7Ξ@8}úô±cÇÊÊÊPËääd|||||ü®]»äryEEłӘvÄŒÓY,+zÂÉÉI©T^¿~!!::º®®n||\.—“H$}}}ooïôôô††¡PØÒÒrùòå©®ÒÒÒø|þüqåÊ•÷Þ{o&ãøøxyy9Z‹-ω««kVVÖÀÀ@wwwLLLqq±ºêƒ>À¦§Þb±´´ŒŒŒ,((@år¹B¡ ‘H2™ ÝŽLLL,,iGlžš+:C‰D77·ÊÊJ777ÔB&“Ïž=›™™988H§ÓãââÈdr@@€R©üé§ŸD"ºv&$$h¸Ú¿ÿ©S§¤R©‡‡ÇáÇÑBÉDÉÉÉèÖ[ž“´´´°°0àææ144„V1™L¹\žžž><ûlªŸß~û­µµ`dd™```Àb±<<ŸäÈutÃYŒ5îîîùùù}ôÑœ-WnÉÉdýýýï¿ÿþŠ…¼*+'ˆÎÎΈˆoooggçÅø¡R©>>>ó1BÀJ/­°— ÈkÇ+\˜ÂÞ*„üS™— \\\:¤qƒòaoo?Ï{`ðÇà!8à‚ ‚ ‚ ‚ã¿ÝLhiþIEND®B`‚././@LongLink0000000000000000000000000000014600000000000011566 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption__inherit__graph.pn0000644000372000001440000001450712502417165033213 0ustar robertousers‰PNG  IHDR¸ËRçÎÿbKGDÿÿÿ ½§“üIDATxœíiTWڀߦ›E–ØJ³ThŒˆÎQ=ãÆ Šfb4.(ˆL"‚ŽŠzôDeˆÇˆãÄ3›@"¸€¬ ƒjÔ (Ñ ê˜a‹G‘Ž„Þ —ú~_§énðj€nà}~ݺ}ë¾oU=TݪºÝ0(ŠyºN (( BŠ‚ÁìOŸ> “H$ƒhÔbbbëää4¨Q]”ŠŠŠ‚‚‚µk×v QËùó燽(4™™™ChÂ`0† ŽQ"P„!EAˆ¢ÔÕÕ ìˆO(îÞ½{úôé³gÏ>räˆL&ÓI&Cƨe`éììœ5kVeeettôÝ»w÷íÛwúôi¹\®µ}CC‡Ã¡Ël6{ïÞ½C˜ì€1D·Ç#‰¨¨(++«+W®0™L˜=uêÔñãÇ;vlP÷ùëA 2$Q`Æ 'Ož€uëÖutt$$$@KKËõë×---¥R)EQééénnn …B ÇÇÇóx¼ääd‹%¬­­srrššš  ¶¶–Î.,Y²¤¦¦¦¢¢‚ËåFFFj­¤(ª½½=))‰NOYnkk€ææfµüËÊÊlllúéŸn¦Zðöö®¯¯¯®®vww§ƒÀš5kÚÚÚ’’’ µµ•d×edd7GD¹wïEQÝÝÝjåÚÚZ™Lfkk{åÊŠ¢–/_~ôèQŠ¢ø|¾¡¡áñãÇÛÚÚ Egg§\.wssûú믕Ý~óÍ7š¢TWW+sãr¹Z+ûʳ/QÊËË9N?ýÓ5Êrww7“É|øð!]Ÿ““C€k×®©n;É®QôåÒ`hh¨V&“ùÁäää´´´”––À¸qã®]»VQQáèè¸pá›7o444̘1CÙ§‡‡‡f WWWº0eÊ”ÆÆÆ~*5a³Ù¶¶¶UUUjõUUU3gÎ$ïêÅ‹r¹ÜÅÅ…^är¹Ê–öööªÛ®'è‘(ý³víÚÜÜÜÌÌÌyóæÑ±X¬P(Ο?Ïçó7oÞüÞ{ïñù|‡û÷ï+×zôè‘fWôŸ5ÔÔÔÐG¥¯J­DEE©Þã…Âèèh___ò®lll˜LfCC½X__ïàà@— ôò  ö)‹üÒ£<Íj-Ëd2kkk›ÔÔTú#±Xlbb’••ÕÜÜœ˜˜hbb"‹9bmm——ÇãñŠŠŠ´ŽQ¼¼¼jkkïܹãêêzðàA­•TcŠ¢^¾|ùÎ;ï,\¸°¨¨¨¦¦&''ÇÍÍíü£D"é§ÿÎÎNª÷ÅßßßÛÛ»¡¡áÁƒnnntоöCÿ»ntQú…¢¨­[·Ž3¦££Cµs##£)S¦äççSÕÝÝ5iÒ$ssó¹sçž9sFS”“'ON˜0Ãᄇ‡‹Åb­•TZ¦(J ìÚµËÝÝÝÔÔÔÍÍíðáÃ"‘¨¯þ¥Ré¼yóÌÍÍÕúáóù–––vvv;vì ƒ¢(Àþýûýýý_kµ¬¶ØOå›1€]‘34¢ n‰¤©©)%%åìÙ³ºÎe”¢—ã& nß¾=kÖ¬>úhÑ¢E¿¥Ÿ·Þz+$$„¤rû0¨AþXff¦ŸŸß`GÍ0ŒŒŒŒuëÖ j”áqFAtŠ‚¢ D (Ct{œ˜˜84AbÐEqpp`2™Ãè¦ÑÔÔD¢j]'B “ÉT¾'<ýöxx!—+¦O?ÕÕQÃrrë c”^”—×ñùB>_pëV®sÑ/P”^œ?ÿ=‹e`hhpþ|¥®sÑ/P”_‘H¤……÷e2¹Tª(,¼/‘Hu‘¢üÊÕ«•rH$Ò«Wë6½Eù•ììï•Sä Fvö÷ºÍG¯@Qzèè”–þW.WЋr¹¢´ô¿øû?= (=\ºô@¡èõ¤@¡ ._~ «|ô ¥‡¬¬ïÕž(Q••…WŸP€ææÎ[·j …j¥BAݺUÛÜÜ©«¬ô    JësXƒQPp_³~‚¢df~¯6@¡Q(øäEçÏÛª«Ÿõ! Ü¿ÿ¬©©}è³Ò7†Ç,üA¥¥E`oÏVPègn&&=ßè400hié´·gë,?ýß«ò $$é:ý/=( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (( BŠ‚¢ D (zñ‹K“&Mzò䉮³èÅâ€LÖ¢ëDz˜4iRCCƒ®³ÐQ ÆŽ;æÎ«ëDôŽòòò'NèÃ1Ò—û›3gÎÚµku…Þ¡ŠÐà!EAˆ@Q"P„ˆa#Š@ ˆˆˆ˜4iÒ˜1c\]]:$‘ô÷_—êêê”ÿÎëµ …»wïž>}º……ÅìÙ³9"“ÉHV|ãˆÃ‚a#Jxxø½{÷²³³Ÿ>}šœœœŸŸ¿{÷nhhhàp8šíÙlöÞ½{_7Jggç¬Y³*++£££ïÞ½»oß¾Ó§OûøøÈår­íU£¿YÄa¥@FFFÿmØlvEE…rñúõëNNNEÕÖÖàVDDDÌŸ?_&“)kÁĉ“’’´¶ØèšdddèË1ÒuE&Š““Ó¦M›ZZZÔê---ÀÆÆ†úÿÃVZZúöÛo§¦¦*w1¤§§O™2eܸqÑÑÑE)Џ¸¸©S§ZXXxyy]¼x‘nlkk[RR¢"66váÂ…tçyyy“'O¶²² —H$šÑéUÚÚÚ‚‚‚,--víÚ%‹µ¦ñJP”^ˆrùòecccŸüãOž<¡ëU]^¶lÙÕ«W«ªªTEY³fM[[[RR´¶¶&%%988\ºt©¹¹¹¤¤„Ëå@[[477«….++³±±¡;_²dIMMMEE—ËŒŒÔŒN—¼½½ëëë«««ÝÝÝ###µ¦ñÊ=ƒ¢ô‚DŠ¢d2YEEETT”»»;“É<}ú4¥M”êêjµz¸víEQÝÝÝP[[ëîîN¯NsæÌ™~D)//çp8ªS•‘‘ÁårµŠÒÝÝÍd2>|H×çääp¹\­i¼r“õG”á1˜ …çÎOOÏTWWï߿Ϟ=ZO™2E³ÒÞÞ {þ O}}½»»»òÓßýîwÀf³mmméS‘*UUU3gΤˮ®®Ê(Zxñâ…\.wqq¡¹\®²¥ZÈá! EQþþþôüsYƒ±téÒ¾îZµƒ^[:a„G)?îù§éQQQª÷8B¡0::Ú××—^¤OPSSCuMlll˜L¦ò•o}}½ƒƒƒÖ4†Ã#ossóM›6ùùù644ܺu+""bÆ Êàµ: Û³gOqqqkkëÕ«W###éG üå—_¼½½/]ºT[[›››ëéééààJ¯¸}ûöºººÊÊÊýû÷oܸQktCCC??¿mÛ¶ýôÓO>üôÓO~Óö뺾öQÙE&“EFFzxxŒ3fâĉ{÷î¥o%¤Ré¼yóÌÍÍ)mãeÿÊ]–Ëå'Nœpqq;v¬¯¯o~~¾••Ý@ ìÚµËÝÝÝÔÔÔÍÍíðáÃ"‘HÙáÉ“''L˜ÀápÂÃÃÅbq_Ñù|~`` ¥¥¥ÝŽ;”w=ji¼rÏèÏE?’ Ì /^¬ªªR.fee͘1£ÿUû‘‰VôG”áqépª««7nÜxïÞ=‘HTQQqàÀàà`]'¥×èËÄ¥!fÏž="‘håÊ•ÍÍÍÎÎÎ}ôQHHHÿ«¼õÖ[¯l3‚Ñ—©ëÖ­Óu"zGff¦ŸŸŸ>£QzéA^!EAˆ@Q"ôe0;mÚ4]' š€™™P׉¼xñâÁƒúpŒôâöxçÎÏž=Óu=Ô×Û00sæ ]'0nÜ8]g 'gýáþýgË–}—.íôðx[×éè8FéÅÅ‹U,“Å2¸pA}²Á(Eù¹\qîÜ™L.“)λ#—+t‘¢üJEEŸß3a€Ïܾ­ûßÐP”_ÉͽËb1é2‹e›{W·ùè(JÝݲüü*™¬gn›L¦ÈË«’Jµg‚¢ôpýúÿ„Â.Õ¡°ëÛoÔU>úŠÒCvö]&³×B™Lƒœ¼úô€¢…]—.=P»Í‘ËåEEÔN3£ ¸ø‘rt¢ŠL&/)y¤Y? AQ²³¿ïãwYYßq2ú Š/_Š®_ÿŸ\®åU†B¡¸q£æåKÑÐg¥o (ððaS?ae2ù£GMC™~‚/TÏ;vœ€'~ývÙØ±¦:ÈIÏЋi:GUCC à¥!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!EAˆ@Q"P„!¢×Os=}ú4,,L"‘è0!óâ…-ØØü¬ëDt‰‰‰Ill¬“““²¦×OsUTT,Z´h¨óÒ',-@&Óu:¥   00°OQh:4„)!úÈ·ß~«Vƒc„!EAˆ@Q"ô?¾qãÆk×® Ho^^^ʲ‘‘‘««ëßþö7.—û[úTf¨Ú¹ÍôéÓCCCÙlv_+RuäÈ‘ï¾û®¨¨è ©իFW’žžN7ØÝz(Ê€cgg"‘(==ýïÿû©S§}ü37ë\¡P<{ö,;;{Ë–-)))æææZ·¶¶–––fdd¼Y,·uëÖüü|µèªm˜Læ† 4VFþ¥‡Íf?~üøñŽŽŽ[·nmll|ùòåÀvÎáp~ÿûßöÙgvvvçÏŸï«qWWX[[¿Y,…BÑÑÑ¡]•±cÇnÙ²åÍúïŸ7ÅËË«¨¨(((håÊ•gΜ)..Þ°aûロ’’_~ùå±cÇè–b±Ø××·¶¶nݺµyóæ%K–øûûEQ¹¹¹AAAË—/ ûá‡TO§ÏŸ?÷òò*++ \µjÕ—_~)•JµV*«®¨5s&“Éb±ÌÌÌèE™L¿jÕªU«VÅÇÇËd2(//ÿøã}}}W¯^}æÌP(çÎ \¾|ù'Ÿ|òøñc­3Œ+VTTTôÕù_ÿúWøàƒèšúß µÕµ¢uÛµnæëò†g”»wïÆÅÅmÙ²%))©¼¼<999444--­££cáÂ…eeer¹ÊÊÊììì¸\®D"‰ŒŒ\¹r%½Ç;&‘H O:œ––¶iÓ¦Ï?ÿ\3P^^ÞçŸ~äȑ۷oÓ{Sk%›ÍŽˆˆ ?U-€D"‹Åb±¸µµ599ÙÇÇÇÐÐþ(++‹Çã%$$üóŸÿ¼wï^jjªH$:xð ««kzzzhhhRRR{{{vvvFFÆ–-[ÒÒÒãããûÚ-ŽŽŽMMM}uþÕW_@NNh Ôÿ>W]]mÓhè}®‰f&ýÒÊŠâççgjjºdÉð÷÷755õõõ€ÎÎNwww‹U]] ¥¥¥K–,a0R©”¢(±Xlddäëë{ñâEccãììì­[·ÎŸ?ßÒÒÒÓÓ388X3Phh¨££ãÔ©SƒƒƒKJJúª433{÷ÝwéOU˼|ùòåË—¯Y³¦¸¸ØÏÏOùQQQÑöíÛ­­­CBBîܹcdd”œœ¼mÛ6KKKú! /\¸ š'á¹]³sÕOµ"ßÿj›F£‚0BÞp0kjj ,K­ óçÏ¿qㆳ³óÝ»wwíÚ'NœÈÊÊJMM|xâĉӦM³²²€®®.…B)“É®\¹²ÿþ¼¼<‡S__ïââB¯õäÉÍ®éóìÙ3KKË~*_‰±±±¯¯oAAEQô]ÏØ±cOœ8Aïk@Àç󻺺"#####çÎ+•JéûX[[ÛWæ E]¸paΜ9ô¢f窵¢‘ËåL&³¥¥…p»^Iÿ™2(w=r¹ü›o¾¡¯MÀ`0vïÞ}ãÆ ¡P(•JY,–±±ñ²eËâââÊÊÊø|þ;w5»Š‰‰yþüù?þxòäIŸ¾*…Baaa!ý©jY 333‘H$‹éÅùóç'%%½xñ¢¡¡aÏž=yyyR©T&“±X¬îînúZ.‰V¬X¡š'=f§iooçóù---÷ïß?pàÇ[·n]_«f¢5}_]\\,‰TÇ"ª(“'§ÿL”3ŠÁ‚ ._¾¼`ÁºÆÈÈhß¾} ¿üò‹½½ý¡C‡ŒŒŒüüüärylll{{;}ù<|ø°ZW‹/Þµk—D"ñöö /4j•ÐÞÞ~üøqzh¢ZVÃÊÊÊÔÔ´££ƒ¾\nÞ¼9&&æã?f0 , 166 =|øð˜1cüýý½½½÷ìÙ“-•JãââZ[[]\\8@߀À'Ÿ|B¬­­=<<•'vÍÎUOæææšrss7oÞüÕW_¥§§‡……ݼyS5y[[ÛiÓ¦­^½ú?ÿùÏkÍL^kuš^—233ýüüäqÞÉ“'þùçO?ý”|µ‡‰ZŸ-øGD+^^^ʳ# Æ¥§»»›ÇãýùÏðÎ]1ð¢<~ü8$$dÙ²e3fÌø-ý˜™™½÷Þ{$•È0X—dX3—dD2òßK$’¯¿þº²²’Çã999ÍŸ?ýúõL&ó•+âÀY•~F‰D!!!?þøcHHHbbb@@@IIIDD„B¡ÐÚžÇã½ÿþûtÙÜÜ|^ÙGFøåÔ©Sl6û‹/¾000GGÇÙ³gøá‡EEEZ´¨¾Ê¼WöÑ~F)))Ù´im ‰‰ÉúõëKJJ´ÎXP}•¯úÊ^ =zôý÷ß_»vm\\\ww7xyy•––­X±âܹsºØ¾¡c$‹B¿×МøÈårŸ>}J—Õf,h¾Ê§ù׿þÕÜÜ]YYyöìYºþ»ï¾‹ IHHèììä Ò%#Y”¾`0Ê1ŠÖi jÈd²«W¯†‡‡ÛÙÙ9;;øá‡Ê–+W®477_ºt)¨M?aŒdQÌÍÍÇ_WW§V_WW7yòdºL2c¡­­M¡P(ç888([r8P™b1‚É¢ÀâÅ‹O:¥z#‘HΞ=û‡?ü^lll¤ ýÌX7nœÇ£›ššh?` &ië?#\”   ¶¶¶;wÞ¹s§±±ñæÍ›¡¡¡Gy¬uƒÚ«|‹åååõïÿ›ÇãýôÓOÉÉÉ‹/ê-Ñ5#üœijjš˜˜˜ššßÔÔdggçíí½víZå´Yµ L&Së«üíÛ·ÇÄÄlݺÕÐÐðOú=·aT1zßõàƒ×~Àw=È2zEÁ ¯Åè…ÍfïܹS×Y F¯(Èk¢ D (( B„–nªßðFš^¢xzz®_¿¾¯/Å#£WWWOOOÕÉ—¡Ç(( BŠ‚¢ D (ÿ¾”µÎ[„wIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_6.png0000644000372000001440000000642712502417165023746 0ustar robertousers‰PNG  IHDR=3j„HbKGDÿÿÿ ½§“ ÌIDATxœí}LSWÇO)-ЧH:Jyi  + ¼-:}æ¶ŒE‡n¨cC@Fpà¦É{V^|© ˜éô™›‘ù‡l@Ý@ÔeS+1 c¡Á-£b‘ÚBiK{Ÿ?nž¦ö-åÖó œû»¿û;¿s¯ßÞsÏ9÷ŠC@ Láæì Èœº…@°Ô-‚=Ü 7ÔjuMMÍôô´³²,OOÏôôt"‘èìD Žå9ÝÞ¼y3;;ÛY©@ì™LNIIqvÇòœngffp„»àp8ô"B\ø| `¨[{@ÝB ØêÁKN·½½½8ÎŽ‡††¶oßJ&“W­ZU__oÇà ÁlKíÞ|ˆK²ätk_ÆÆÆâããI$Rmmm[[[zzzFFÆ­[·œ×‹Bss³‡‡²0ÂÂÂŒN¬»ÙÓí2p¹Ü·ÞzëÂ… èfTTÔððð‰'Þyçç&ö‚ðôéSµZÍãñœ†¹ÿþ©S§Œ­ˆµµµF³.^¼Èf³©TjYYYeeehhè²eËöïß H^^^NNê)—˽¼¼:;;¹~ýúÊ•+=<<˜Lfee%‚ Z­öÌ™3l6›L&¯Y³¦±± ‰Ðеk×"""üüüòòò¦§§ÍõÎh¥†å€€€––ÃäårùÀÀZ–J¥ÙÙÙ¾¾¾t:½°°P©TÎÚ:K ܸq#..ÎËË+  ¬¬LïÉç󃃃ïÝ»gÉ¡ªª*,,ŒJ¥îÞ½{rrÒ0yµZ½gÏæçç·gϵZmË¥©­­ÕmѰñ_Ä fÏáTqq±¡n?þÁ`©¼{÷n///™Lf|ùòåD"‘Íf744 ¢V«9Âd2ÉdòÚµküñG`ò|{áÂ…*•š——§T*ÍËãÉ‚<~üøÃ? òöö^½zõõë×õ»$IVV–¯¯o```AA~<ÙJë,%ðÕW_½ôÒKÁÁÁgÏžÍÈÈ ÑhFiXr¨©© ¥Ñh………*•Êð(™LöñÇS(__ßO?ýtrrÒ–Kcýùvxxâüù¦¤¤“›6š5ÚÂY Ï·Fb!LMM‰Åb±XÜÒÒÿŸ¡¡¡¢¢"»TaŠÝÆ¥l¡´´tûöís:Äèüš=Ýv¼óÃé XÇ’n'&¦ª«[·n=C§0ÑÑû!Ó­CcZžãRV˜žžîëë»téÒ'Ÿ|b÷à9!—OWUÝï½ÓQQû8^[[ŸN‡hµKëkwéÒ¥ÈÈH??¿òòò+W®0™LŸòóósssQO…BA"‘þüóOÀ7bbb<==î\¹Ðétß|óMdd¤··÷Úµka÷í0744¼üòË4-??_¥R™5‚ç{׳ö´ ¬· Ñh8Ž¿¿?Fãp8f>§lVeÏ•ßÿB¡”––Îõ@£ß°‘‘‘]»vù˜5.&NOÀ:€ÚÚÚÉI×–™YüEPPƒñE`àŒþ–Ôý`dE€+}CëmAæ>-oö⃱V—––†Àï]`ÁwëVŽP8!—O»¹át:‹—ÒÛÛóÀ͎Χ££ãÌ™"­vʺ‡ëììŒ×h4D"Ѱ,‰˜L&ƒÁøá‡ß}÷Ý7Þx£¨¨H*•úûû—••åææúøøLNN’H¤˜˜‡£ÿÖReeevv¶H$ G¤··7<<\(®\¹ÀãñöíÛ÷믿šõƒü–@Cé•b¸i½-,+22R ø|>‡ÃA»–0«J_Ÿü¢A&¯jnAËVD P©4{÷.Ʋa<~™-n¶¬ˆ‰‰áóùè½ ]púôi.—›PRR²qãFG¯°ëóÿè´¼~ÓÇÇgU¸‚nkjj222LíW¯^MMM}¡ºãã·JW(¨55ÆÆ‚»FcþsSd²gw÷QGçÃãñÒÒN/ÓòóEX²,ñIšE˜Ì©TšÛ·»?ûìJhèž  :½`iŽKahE€©Åh\Êz[æ:-¿¨ó·ŽcttÔRS­ŸM+oç!³½4g¥Ò%…©nõH$ŠÊÊæ-[þ„Éù[W]0+‹4ë8ÚÛÛwìØ=111Ãù|~[[[yyyIIÉÍ›7…Bá—_~yôèѱ±1À©S§úûû;::îÞ½ÛØØxðàAÃc»ºº˜LæÞ½{±»¸ŸBùWVÖ¿¯]Ëïè8xðàæ;ßpvF¶W˜aVe;¥RYYY¹zõêøøøŠŠ ¹\nÉÓúýÖÊÛyˆ /Í=}ú”Ëå2Œäää[·niµZ»¶Ò>W|ϵWÌ &ûÉwîÜ¡ÑhÙÙÙ<ÐétÖòÔáééiøsæããc¶ ô«+ëÖ­‹ˆˆxòäÉ[gw\R·/8˜ì'ûùùEEEµ´´477;®"_šyøðáàà`BB‚———ãò@¬°Ôu+êêêþù矈ˆˆ;wþñÇލÈúè¼N§»}ûöûï¿¿fÍAš››«««©Tª#2@fe©ëeÅŠçΉDÑÑÑiiiv¯âèÑ£ÞÞÞñññ‰‰‰±±±Ç7Ü[__ÏårSSSûúú>ìè©ydfíI/5´Z-ºÄ|1±å[ŠKŸo]³ç{ëÝÜÜÜÜ»›`ô})ÈœX¿~½³SÀ0###¦Fìé‚!^}õÕôôt­VëìD0 …B1ýჺ…8êêjggá‚`c\ u `¨[{@ÝB ØÃ̸Ôwß}·øy@ ÛyN·t:ÇïÚµËYÙ@·ýK`—ç¾ç@0|¾…@°Ô-‚= n!ìu `ÿÝ¡®0±¥§7IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/sqlstream_8h.html0000755000372000001440000000646612502417162023473 0ustar robertousers MySQL++ Reference Manual
sqlstream.h File Reference

Defines a class for building quoted and escaped SQL text. More...

#include "common.h"
#include <sstream>

Go to the source code of this file.

Classes

class  mysqlpp::SQLStream
 A class for building SQL-formatted strings. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &os, SQLStream &s)
 Insert raw string into the given stream. More...
 

Detailed Description

Defines a class for building quoted and escaped SQL text.

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_43.png0000644000372000001440000000642012502417165024020 0ustar robertousers‰PNG  IHDRu%2fîÜbKGDÿÿÿ ½§“ ÅIDATxœíœ}PSÇÀ7„o‰‚$ÃGAÂGÑb¡8Ï¢m:C«­¥ÅTëèXÛÎHÇ)Ôq¨„¡…2Õ:>Q‘VI5Ö©"å E|#E¬ B' VJ‚!@’{ß÷™^“›KÄÝßðÇÞÃîÙ³çìžìÝÜ\ Š¢@쀓£ €@ ˜_ ˆ½€ùØ ˜_ ˆ½pÆ_hµZ©TŠ ˆ£¬Y°X,ƒáh+þ&33³««ËÑV@þp8œÃ‡ã%ü÷GCCCOÕò˜_¨TªÅ‹s¹\Gò7 %111((Èц@8ÚÙ¼ÞSµ<æ÷îÝs´ ìÝ»7==ÝÑV@8çÏŸûí·M„ðüØ ˜_ ˆ½€ùØ ˜_ ˆ½˜ùEÑwß}×ËËknÕvwwS(”¹Õ 1a|îÜ9 mmm6éÏÎÎŽ‹‹£Ñh z½žÄT[‡ —Ë·lÙâåå•PUUe“y$P(”îînKÿv™Ì•­g~ä¹\.:;;g¯J&“Ñét¬ìíí½oß¾Ùë´ ÝÄDWUÕöíÓ?á®ç;¯¿þúÀÀÀÀÀ@ss3`à6}ã966öÜsÏݺu«¨¨èöíÛû÷ï/¿ü²Á`˜#GFFâãã===…Bakkë;3‘‘QWW7'ÊÉ™v™Ì‰m‚àûé§Fž½*AFFF°2N/,,œ½Nk0èt½×®uUUuÿô“~r°bëVfLÌ“é}aàáááááP«Õÿ(ÉÏÏg0 T*±aƘ˜˜ŠŠŠ_|qöFòùü”””“'Ob—ÑÑÑþùgIIɆ f¯œœi—Éœ8Ð&lÞ¿à÷Šø2…BgéÒ¥_|ñ&¼|ù2–Ë—-[†­d¬ICCCppðÊ•+wî܉ÕT«Õžžž¿ýöa§‰‰‰à‘;¬7@¯×óùüàà`ƒ±mÛ¶ÑÑQU£££Û·o§ÓéYYYZ­ÖÒ lÑë{®^½ôþû‡#".îØ!­©Á’ËS…B9uê‡Ãa0………gΜ ]²dÉ™™™„aºtéRll¬»»ûòåËÏœ9@äÈ‘#‡F£%%%566âo+0oWWWGFF2™ÌÌÌÌÉÉIB!°eK†PXYY™››‹%ŒE‹eggWVV%ƒ¡¸¸8""‚F£%''ß¼y“°Óáá቉ á?üðñÇã%|>¿¼¼œÄNÂi6íÜ3¯€ŸÛ–úšÂAÍÇàà`cc#JŠT*5¶Â—›7oV*•'NœŒŒŒ¨T*WW×;vôõõaÁ𤦦þüóÏW®\ñõõÕét(ŠVVVr¹\Alê”Ü€ââb.—ÛÞÞ.‹Ÿþù¬¬,’æ<oýúõ===ííí111yyy„:ÉÓÑÑÑÑÑ¢(Š ½×¯×df /f±JCBŠY,“¿A±˜\Ûœ …ÓÖÉÈÈP©TاnzzºJ¥*++üõ×_MMMæaR«ÕnnnÇŽ(//wvvV«ÕeeeL&S$ÉåòšššÀÀ@€ÑÉXá•W^‘H$---l6;//Pˆ¢èèèè‰'0óðe |à0Ãg.T*•Ø2ñÀ7üüüŒjKKKña±X&ݵ¶¶¾÷Þ{ C.—ãå˜~…BaÉÕÖO3KB©TjŒšI·öeÉF®^½Êd2³³³e2™¥Q" ÍuÎe~ÁÚNMMa^˜œœìêêR«Õƒ¡©© bMÚÛÛQÕëõþþþ (оúê«………¶vJn@dd¤H$ÂþÛÙÙ‰• ›OMMQ©Ôÿ§‰Dl6›P'¹s:::þ{î\ÃGãâ,¥•§3¿Ü¹s}4L|Y*•†I¡P¸¸¸”””(•JAÆÆÆ —Ëýæ›oŒj¿ýö[óü‚…EQ¡PÈf³ …ÓÊdy†Ph)¿üòË/t:ݨ6""Â| (Šj4šÓ§O¯^½:>>¾¬¬lllÌDB¡(•JB³mšf–„øübRïK}:Єþþ~>Ÿ˜––VWWg0,ÕÄC˜_fuþ‚>þ[,Í»¸¸`—®®®‰d×®]jµ:>>_3** @¥Rßxã ‘H[__}`Ρ÷ïßÇʇÃáXÒ388h0°K6›Ý××G¨“œk×Ú Œ—†©)’ʧíCÈðñ±¦F†‰/ aòññillüꫯø|þÊ•+÷ïߟšš*“ÉV¬XaÔkÞ‘1"QQQF' ­‡0|„Boooÿ¶¶¶—^z ¯¡­­mÕªUÆË˜¤¾¾žÇ㥦¦~ýõ× „·l>>>~~~/¼ð‚QxëÖ­>ú¨©©I¡PØ4ͦ{$H¦ô´°X¬¼¼¼œœœ‹/~þùç{ö쩯¯ŸÙOØf˜_ôz½³³s?^èäôØiŽF£IOO?þ|ZZÚäädEE…ñ_F¼õÖ[</::zÍš5Øvz `±X½½½111€¶¶¶šššœœBm~~~T*U&“EGGzzzu’C_µ*bûöáëו2ÕÍÍ@zÔò¯Ï>[bÿŸ~óͳVb&Fƒ È÷ß?55uöìÙ´´´¡¡¡€€€»wïÆÅÅa­%•JŸ}öY€D"Á–‡%¡õ†ÏRLy<^~~~JJŠñf||¼¨¨hb>ƒÝÜÜîc!q¿öÚk_~ùeRR’1UVVêt:OOO›¦Ù´s¤É”¶’ÁÁÁ{÷îõõõ%&&b§Â3¿™±æþhxxP^^þðáÃM›6Üí ~ç&•J•J%…B©­­ÿôÓOwîÜ1Ù˜éõz&“éççWQQAÒ)¾•õðùüØØX±X,‹“““wíÚeT…ílñj·lÙ²~ýz™L&‹¹\nnn.¡NrçÏ_Fÿøãæ‘#'’’ŠY¬Òàà§ÿþˆp˜Æ²y˜4»»û… †‡‡?îîî®Ñh ˜LæÅ‹jkk Ï_RRR¤Rikkkxxxnn.¡µýü…0|„‡FFF®]»¶¶¶V"‘ˆD".—›œœŒ½œS{èÐ!ü@–/_nìN,ïÞ½›N§ïܹó×_5wæÐЯ¯/Ç»qãÆÝ»wóòò—/_&±“ÐçÖ e·öeÉF C]]ÝÆrssûûû «™37ç/(Šß}Äðï¿ß()ù÷ªUæÇ1ó(¿ Da …aaa®®®QQQÕÕÕ(ŠNMMåç燆†zyy%%%}÷ÝwæùåäÉ“Ï<ó Nß³gF£!¢–OÙ,IÃG(DQT­VòÉ'111žžž\.÷àÁƒxµz½¾¸¸˜Íf/Z´())©¥¥Å¤;¥RYZZÖÛÛkîÏÞÞÞÍ›7³X,¶zõêü‘ÜN;åKÃ't ‘ .$&& ‚ÉÉI – Ì/§¬'''§··W <ÉNí¶‘6Z Ñëï_¿ÞU]-½rE§Õ:Q©ˆN·­®î <ÿB¡P„BáìßÏ0ƒ0uww‡‡‡'˜É%‰p¾€ ‚ ÎÎóã!2+ÑétVž6š€½ŸÁ$”ŽtV«•Ëå§N:{ö¬Íx89;‡®[ºn¾¨¨çêÕΪª¾æf__GÛeÿœ0ÙŠ“““MÇsó‚™%K82¿Ü¼ysÓ¦M~ø!~ÇdéIªyúg‚³»{dZZdZ𣠱Â0̀ŋïÞ½Û!dÁàÈü²víZìy< #,$Ãd Ƈ;0˜Læ±cÇLê ! †…¶»ƒ@ O0¿@ {ó ±0¿@ {Ap¾+—ËŸ¼ ­Vëîîîh+LihhÀÞMØÛ·o› Ë/nnn E"‘<)“ ÞÞÞŽ6á1‚‚‚Ž?îh+ ÿÌ_mEßC ;Ï_ ˆ½€ùØ ˜_ ˆ½€ùØ‹ÿç·WÍ*PøIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/scopedconnection_8h.html0000755000372000001440000000632412502417162025006 0ustar robertousers MySQL++ Reference Manual
scopedconnection.h File Reference

Declares the ScopedConnection class. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::ScopedConnection
 Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer. More...
 

Detailed Description

Declares the ScopedConnection class.

This class lets you grab a connection from a ConnectionPool in a scoped and therefore RAII way. The Connection object will always be returned to the pool when the scope block ends, plugging a potential leak in the pool.

mysql++-3.2.2+pristine.orig/doc/html/refman/stream2string_8h.html0000755000372000001440000000560112502417162024252 0ustar robertousers MySQL++ Reference Manual
stream2string.h File Reference

Declares an adapter that converts something that can be inserted into a C++ stream into a std::string type. More...

#include <sstream>
#include <string>

Go to the source code of this file.

Functions

template<class T >
std::string mysqlpp::stream2string (const T &object)
 Converts anything you can insert into a C++ stream to a std::string via std::ostringstream.
 

Detailed Description

Declares an adapter that converts something that can be inserted into a C++ stream into a std::string type.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SizeThresholdInsertPolicy.html0000755000372000001440000001705212502417164031324 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SizeThresholdInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 SizeThresholdInsertPolicy (int size)
 Constructor.
 
 ~SizeThresholdInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::SizeThresholdInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded.

Although this insert policy isn't completely deterministic, it avoids building the VALUES expression for the SSQLS object passed in.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::SizeThresholdInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2vertline.png0000644000372000001440000000012612502417165023316 0ustar robertousers‰PNG  IHDRɪ|IDATxíݱðøScOx@ –¨y}IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2link.png0000644000372000001440000000135212502417165022425 0ustar robertousers‰PNG  IHDRÚ}\ˆ±IDATxíMOS[…Ÿžsúa?-XZ(PD4‚ AWbu`b 77wäHFÆCËÔÂÿà/`vo„ˆAPòq‹P @ ­ûÝè980 îà¤+»§Ýy×^ïZï9SW¹\83g‰3'°Nâçl¹¸_b¯p ïåûÆVÜÖ¡€Ÿ×"¬Ö†X€d]Ðà3“ÉÃÄÌ™xŸ ßMàœ[<çSPkvc—hÈ'…™˜^Åm™hØ7 `Û™¦ èÀåráq›‘œ¾!daeKŸþÆÕ˜:Ì*³_דâèi?I–eP*B7Ÿ¿åô!¹Ýgr6Ër6oKbëþãðôrI”ËTˆüªŒ¨xóö=›ù¢&‰(e+ßóÄkýÇ`ëÁÜb.“¸ÐW×w0¥°jÑzN™¬|©WEãµ¢a¯6[öX†AkÓù*/œ¨‰€ÉY­ ÿV’§–u²jÂ>1W *½·°PGŽzÿ¨/Eg{ ŸÇâaoŠÁVú:è¿™¤1$ôR§W,–ªà¨@ŠË56¾ÀÔÜ-¾,mê¸Î/æè¹– òr5¥T*S(Vf8ö9u’ Õ£w›ùóa=Í<{Ò¡UŒ÷r¯+ÉådDÏF$è°…£é¿`zþ»ÎúöN‘µÜ®0Q3£~_^Ëóâ¯N=ˆvpTà±LžT}ˆîkq†Òm<¼ÎÓ?Zh¿X£ï_þÝ¥[)ƒ `gêÃa_Ô*äÔ2`'=õ´Fÿ2EâÁPú ÷»›l=8‹Wv°%THqÉ¿<"¤ïG¾ÆxH{#ÆÖ«aÔJÕÞ‡—m‹„ çñKsÿàñVŠØ¡°·MâÒ^ TÁ– Ý›r¥ß½ømüÿ_™?ªWİ÷#uIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SslOption.html0000755000372000001440000002302612502417163026117 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SslOption Class Reference

Specialized option for handling SSL parameters. More...

#include <options.h>

Inheritance diagram for mysqlpp::SslOption:
Collaboration diagram for mysqlpp::SslOption:

Public Member Functions

 SslOption (const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
 Create a set of SSL connection option parameters. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Detailed Description

Specialized option for handling SSL parameters.

Constructor & Destructor Documentation

mysqlpp::SslOption::SslOption ( const char *  key = 0,
const char *  cert = 0,
const char *  ca = 0,
const char *  capath = 0,
const char *  cipher = 0 
)
inline

Create a set of SSL connection option parameters.

Parameters
keythe pathname to the key file
certthe pathname to the certificate file
cathe pathname to the certificate authority file
capathdirectory that contains trusted SSL CA certificates in pem format.
cipherlist of allowable ciphers to use

This option replaces Connection::enable_ssl() from MySQL++ version 2. Now you can set this connection option just like any other.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2lastnode.png0000644000372000001440000000012612502417165023277 0ustar robertousers‰PNG  IHDRɪ|IDATxíݱðøScOx@ –¨y}IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1GuessConnectionOption.html0000755000372000001440000001727212502417163030472 0ustar robertousers MySQL++ Reference Manual
mysqlpp::GuessConnectionOption Class Reference

Allow C API to guess what kind of connection to use. More...

#include <options.h>

Inheritance diagram for mysqlpp::GuessConnectionOption:
Collaboration diagram for mysqlpp::GuessConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Allow C API to guess what kind of connection to use.

This is the default. The option exists to override UseEmbeddedConnectionOption and UseEmbeddedConnectionOption.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x75.html0000755000372000001440000001246112502417165024662 0ustar robertousers MySQL++ Reference Manual
 

- u -

mysql++-3.2.2+pristine.orig/doc/html/refman/bdwn.png0000644000372000001440000000022312502417165021614 0ustar robertousers‰PNG  IHDR5åZIDATxíË € DŸP–1ñlžmÀ r±j².e è†D[ØÉ¾ÙÏÔ¼µ¦ã´Þ|陣6€Všë3´Å?Ls'(}¬>+ žKó÷¥¿ch`‚ ^׃ÞnIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2cl.png0000644000372000001440000000070512502417165022067 0ustar robertousers‰PNG  IHDRÚ}\ˆŒIDATxíÝ;H#AÇño4Љႇ œ„K‰‡‚á ’ê,m„ØØ vÚžJ°²¹ÚÎþî‚§ XY ÅB|dr³cvo—˜Ä°Ý ù0Ã’™3ÿͤõ”Ëe×´¸Éõ¯1XÞ8Œ‰nQˆ88ööÖ§3*rbñ¯¢û-$¨‚þ´˜“P1Žè@Z…-# Ïú01ÑÏÎêÄ1HkKŸ w¶O@¥ªÈóñ!f§ñu˜åác÷;’sá×Bý[E´Añ±—Í\ß>°ùý¿ÏËÊÂ]–P€zØf| Íñ¯“+Ù´gð5…b  i5ümM³œ_æÍq,ÒcŽõèoÓd´ !¶äò©ô•,ôðÀ{¹¨µYß,€zTÍ8H]𤕘ï7¼»/òó8ËQæ !F€~6ãá?Y ÀA@ŨÁ.@ƒ¶TäÄYïŠËë±r‘µ8Ð*·é>€Šçÿ?€×þŸe[6«xÂIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadIndex__coll__graph.png0000644000372000001440000002022312502417165030146 0ustar robertousers‰PNG  IHDRÁ͎⃰bKGDÿÿÿ ½§“ IDATxœíw\ÇßÇ¿{….EADQDM¢&Š” H"ÖXˆŠÑ€°+ñ'±`É!jÀ ¢ÒD£QK4ØñDIèˆt¸;iw\ÛçÍërÂQ÷`9˜÷_³³3³ŸùÜÎìíî †ã8 $ Q-¡ò !È‚<„ ò‚, ù @™™)•J©R£ºhii 0€|9åååEEEäËéPh4Ú€444ˆÍ ‘HBCCØ«W¯Ï?ÿüÑ£GD.ù‹ª|X$š˜˜ŠD¢Ë—/›››s¹\ˆŠŠ8p`mm­X,Þ¾}{ß¾}ŒŒ.\ÈãñšÊNž0hÐ ccã•+WÖ××Ë+”?:ÇûöÛoY,–……E@@€@ ÃΞ=kgg×»wï½{÷¶¯f;”曀8Á[·nõíÛ÷äÉ“²“m|^8Ž9rdðàÁººº_|ñÅ•+WÚÓñár”––&''ãÍRSS£®®~äÈ‘âââcÇŽ1ŒšššÌÌLYQ066Ž-**ºzõª™™±‹ÇãEDDiäÃ{öì™1cÆÛ·oÙlöˆ#6lØ€ãøÂ… ½½½KJJLLL=z„ãxhh¨½½=›Í~õêÕ¨Q£šÊNˆqqqÉÈÈHII±±± –W(ž?¾³³svv6›Í2dHpp0ñBÕÌ™3¹\nDDTVV6_'­©·V’–––––Ö|š›€O™2åöíÛ©©©²øÆçann~ýúõòòò›7oÚØØ4°„B’““KKKe›mö‡Ãa2™ûöíãr¹R©´ººZ"‘ÈŸÀÀOž<)KêÔ©æeÙÚÚá›7o:::â8Îår-,,ˆFÅq|РA±±±DøÍ›7²pãì„6›MDFGGÛØØ(ôP(¤Óé²6‹µ±±Áqˆz …™™Ù|t²‡Zlùo|^C† 9{ö¬¬äsçεÃCmîË ’““SRR,,,Æÿþ}íƒB e›Í˜——gjjŠa†a“'OÎÍÍ}}}__ßׯ_/_¾œH–ŸŸ/{ eggçééÙLv%¶µµ}÷îÂC—––J$’þýû›666²”Äå“Éd¶¦N:™›€ÀÖÖ¶qdƒóÊÎÎ2dˆlïàÁƒÛ¡§ÍâóùR©ôâÅ‹gñâÅG>••ÕË—/e›¯_¿n¾@‹%û¡s¹Ü””((( ›4iÒºuëˆdfffyyyD8555$$¤™ì@üþ ##ƒ¨¸Æ˜˜˜Ðéôœœb3;;ÛÜÜœ+l•.B‹M@ ðÐà¼,--å(==½zÚ\S†¹¸¸ÄÄÄTUU …B&“©¥¥E쪩©€ï¾û.000!!¡¤¤äúõëÛ¶m#ö¾ÿ>22²qxúôé7nÌÏÏg³Ù®®®áááR©ÔÇÇÇßß?***)))11¼¼¼6oÞL\êýüüòóó›ÊNįZµ*++ëÉ“'›6mZ°`¼BL&sΜ9+W®ÌÍÍMKKÛ²eËüùóÛZ!O‹MÐz¾ÿþû   7nTVVÞ¾};88¸3ÆÔ8ŽGGG÷ïß_MMÍÖÖ6!!Çq‘H4vìXÇÅbqhh¨¶¶ö˜1cˆ CƒŽY>\UUµhÑ"CCC__ßÚÚÚC‡ 6L(â8gjjÊápA@@€™™™žžÞܹs¹\nSÙ‰Â###---Y,–¿¿?ŸÏ—W(t‡ãååehhhjjºfÍ>ŸOŒd×6èzã!¼¥&hªªŸ—D"9xð`ÿþýõôô\]]ŒŒŒZ<:Ù1u×G¾Ö:‡Î÷²HLLLMM•m^ºt‰¸§i²cjDw‚Íf/X°àùóçuuu)))[·n]²dI[ Q𚪣««»lÙ2ªU¨AAAuuuÓ¦M+//·¶¶öññiGÕuC9r„jªƒÁعsçÎ;É‚ú2Y‡dAByAcê®ÿœ ¡P"JttÔ¨•ÑÖ‡›G ´» êyu}ºÅ´†<¤®®ŽaXFFF'‹h7‰‰™ññ™k×~joOñ[”²öÈ—S^^^]]Ýæœ8T^ÓàÜV³ÚXÃ4ìØ/•1 SWWÿoWåù‡â㟯XqšN§íÙ3kÞ¼ÑTË¡ ±@š¼%7/ù=FÇý9Œ®Ö©CÕ98|‰4 ú‡¤Rþ=´›º ÑeŸòïU€¾¥z'TÝCýú±´´þ½¨FDÜûæ›ÃUU|j%u2å¯kcf§s³¸§10Î× ÚÂ0lèÐß ’J¥))Ù“'ïÏÍ-§VU§‘usÙ'CX#‘ŠqXvZ/Cµ=#FX1™ÿÞ‰ˆÅÒâbž«ëÁ””ljUu88<;Zœ¼%ƒTòo.•àÈCíÁÁá#‰ä¿Û±XRWW?{öዟP¨ªC×K“6澈,pøoˆÑ±Þ4;_O7ðEƒ¡´D"•H$«WG…„\é~£l>G|uiF^2otÿ®o©NW£àû]•÷•ÕÃjÄ»u‡ßöõ=Éç )Öpsq Ò+þáã↿ 3vЦD•Ê{Ã0{{S…»¤Rü÷ßÙáá·;YRÇq3 §¶T$md À1`ÙR0‚nà!1ÂJM­áC:†aجY/Z4–UÁøí–Ö@hÔeábœ*u‡wÐûŠÅÙ&ñaÂС{÷Î2Äœ2Y€É0í™g^åüµ¿@X+Å% ¨ Q0 †îá!ùa5N×Ôdhh0Ïžõ50 f|б`0`jo\Š?þ¿"Á{1Fû÷Þž’¨ ºC_fiÉÒÔdÒhÑy%'ih0CB®P­«£ÖHž„Y9ëyh`­†a˜ÑÊ~0ÝÁC46j”µ­­Yb⪾17ï½y³Çùó^¼xKµ´áű©ÿÄÏÌÄAÛóœíç,˜ÚtÓ‘<å PíçöÍ0kVxMMýÕ«kh´n5å/WóMúè5ößt•iÄ»ÃuH!;wÎxó¦¨ûý[ýpoµÆàÙ]hÖ¹në¡Aƒúxy}’ØžäçÝæ>©þlýGXWº¸v[@` +ŽÃþýP-DIàðôH‘Õý>Ž” }ÒmÇCçÎ¥lØpñ?ììÿ—­Z¼Ï¯§«c:}(~¼ÝÜCR)îáñ“¶¶ú… +¨ÖÒméÎ}ÐhØ?Î|ø0ëÊ•—-§F´‹nî!6ì£Y³> ޝ«ë>ð»ÝßC°y³GMM}XØ-ª…tOz„‡X,uë¾üå—Û=çUëΤ›©eˆÅÒ/¿Ü÷ÑG†'O.¦ZKÖHhtŒ¡Ù¥ê]Zœa0h?üàyãFÚ­[J[ð°xüsá•emûì𬬬Ò£žâ!;v€‡‡ãÖ­qB¡˜j-­¢ìUmzl…ÃB“Ž(\‰Ëôô @pð×eeUw©Ò2¸ì)°­k=É #ÊWâ2==ËC¦¦ú~~Î?ýt³¤ä=ÕZZàŸËœLþèµ âÇŒsðàAàp84- $‰ÁÕ«W‰47nܰ±±100صksåÊ•áÇkii™ššËɯC%OVÛ婯}öYÈŠ¿Q-¤9ø<Ño_þµ¿ ñ®;v¸»»ã8ž ««;bÄÇŸ>}ª¡¡Q[[‹ã8L:µªª*&&***ªªªÔÔÔ|||Þ½{wæÌ(++Sâ Ì=ÎC8ŽÿñÇ+SÓÕfQ-¤Iìy{Æ…-¬7ÞõôéS¡P¸víÚM›61™L.—êææF$€;wîà8.‘H 33³¾¾>==½¦¦F"‘ܽ{—ˆT¢‡zV_Fàâ2ÄÙÙn󿱏cçéib¾4/™7r¹)SKÁlTÇ×ÖÖ~òäɽ{÷¾úê«áÇ߻w/99ÙÝÝ]–†XŸD¶4‡ššZFF†««ëÈ‘#Ož<©|ÅJq¢Ê‘›[nipâÄŸT QL}X*irï¢E‹‚‚‚tuu…Bᆠüüütttòòòˆ½ÐhA…ºº:uuõ„„©TÊçó]‡”‚•kéÒñ{öü^Y©Ìið”…š6kºeÜÜÜ~ùå—Q£F1™Lggç“'OZZZZZZ6•¾¾¾^(ª©©ñùüíÛ·€lž5¥ÌØC=«WOÖÔdîÙó;ÕBÚÌäÉ“Áøñãà³Ï> …òYcôõõ÷ïß?þ|[[[++«¹s纺ºZYY;ÖÔT ¯Uõ”g ‰‹{îï&1qõðá}©Ö¢ÂôhÀŒaB¡äòå•=gÅ{¥Ósû2‚/_¾½té)ÕB¨k‚Vfïé²µ5õòúlçÎĪ*…2Ê^ÕVQöŠ\S7\­ÌÞÓ=AAS¤Rü§Ÿ(ûüC"Ä“·æ=þ¹*$A==­õëÝ"#不S"àå©’º Ñè5ª:E òÀ¼y£‡µØ¾=¾ó]]$|y¢ÔñÛ>Ú&]닟փ<@£a;vx>xùûïìN>ôãÿ+ÔîÃæÝ!/ uÈCÿ2r¤ÕÌ™oÛ×™Ÿ=­ÎIâŽZmAcªð? ÈCÿ±e‹GMàðáNš¿Q*Æî)è;VÏÒI¯sŽØA ý‡‘Q¯5k¾ ¿ýö­r^ðk~¥ˆÆÄF©ìPZFOÿŸºÄç––¬ãÇ}¨Ö¢2 ëÐ0´~˜výú«Û·Ó©Ö¢2 ë–,9‘ž^œœÔxÊbDcÐuH;vx––¾?vì>ÕBTä!˜™é/_þÅÁƒ”–võÏ?ºÈCŠñósîÝ[§OP¬D‡£®Îþ:&æ™r—BK‹*+IíŠoß’y¨I\]‡Nœh»m[œüúhd¨ü‡Ÿr °ª ^)¥u‡šãÿóÌÈ(={6E eáð`O‘½ÖÀ©†J(­+<Ôýú-Yâ´{÷U§–dQY×9e¯j>_ÿQã%Tä¡X½ÚE]zL!ÂÉ£ƒ…= )Yoµ£Ajõ-[¦ž>ý05µý«¼8V"J?ñSùGc Aj™éÓG~ú©õ¶mñíûOŸ—'H;W6b©©fïîù¯7òPË`¶c‡ç‹ù±±ÏÚ‘¡Aôµ¡ý쮲D‹ÒAÏËZˆ ¯]{uÿþ&]] ªµt-Ðu¨µlØà.‘Hþù&ÕBºÈC­E__+(È-"ânVVÕZº¨/k*:Aq‡£”hÚ••Õ§Þ˜Lc£»ýÑܘÀÀÀÖ7%ew›yyykÖ¬3f UMqàÀ¼¼¼Ö§§ò‹Ñ£GÏš5‹B…\¼x±MéјAä!Y‡dAB¥çz(++K‰óç‘™GŒ Ê=‹öÑ=Ÿ$SÂÇûõë× ÊÉÉùôÓO+**@__ýúõpÐf@RFFFÊYB¥%ä—üa±XÄ.Ò¥û2 ÃŽ?ngggdd´{÷îÓ§O÷ë×OOOoëÖ­°råÊÅ‹ÿ}æPSS£¥¥õâÅ HLLtppÐÐа¶¶>}ú4H¥Ò°°0;;»^½z3&99YþúOt ƒ 266^¹re}}½ÂHø°ïhM?rùòesss.— QQQ¬­­‹ÅÛ·oïÛ·¯‘‘ÑÂ… y<‘X$š˜˜ŠD"…2ä—ü‘×Àãñ¾ýö[‹eaa ˆ:<{ö¬]ïÞ½÷îÝ«¤–ùŽ{šÑ<Ýbš¹sçVUUEFFÀìÙ³«ªªŽ= wïÞ544‰D8ŽŸ9sÆÞÞ^*•ÖÔÔ¨««9r¤¸¸øØ±c £¦¦æèÑ£ÆÆÆ±±±EEEW¯^µ°°ÙbDÀÅÅ%###%%ÅÆÆ&88Xa$Žã</""‚'€ÔÔÔê!v-\¸ÐÛÛ»¤¤ÄÄÄäÑ£G8އ††ÚÛÛ³ÙìW¯^5* €H¹gÏž3f¼}û–Íf1bÆ Íh#²È‡çÏŸïììœÍf³‡ B€™3gr¹Üˆˆ¨¬¬l±ifÍš5kÖ¬64eë“*—Vzèùóç8Ž …ÂáÌÌL±XܧOŸ[·ná8îææ¶{÷nÇ9“ÉÜ·o—Ë•J¥ÕÕÕ‰ÄÞÞþäÉ“²bO:ÕØCl6›Ømcc£0²y©Mý>¹\®………ƒƒѨ8Ž4(66–¿yóF¶µµ-..&Â7oÞtttlF# …B:ž––FÄÇÆÆ‚ 99Y¾Þš¯s¼íêÒ}ôêÕ ˜Lfƒ0ÐéôéÓ§ÇÆÆVTT$%%ÍŸ? ’““SRR,,,Æÿþ}–““ãèè(+ÓÁÁ¡ñ @lmmß½{×LdS4n"^__ß××÷õë×Ë—/'bòóóe%ÛÙÙyzzá¼¼}ãÆùùùl6ÛÕÕ5<<¼m –üa2™sæÌY¹rennnZZÚ–-[ˆ sgÐúnO¹@ëÆC –âjþî»ï455«ªªd¹¢££û÷ﯦ¦fkk›€ã¸P(ܱcG¿~ýtttÆŒsîÜ9h4ŠŒŒ´´´d±Xþþþ|>_a$þáV>ÜTÝ:thذaB¡Çñ¸¸8SSS‡#ÌÌÌôôôæÎËår‰Bªªª-Zd```hhèëë[[[«P†H$;v¬ŽŽN ÇËËËÐÐÐÔÔtÍš5„à¦ê­ºÕ˜º5lÚ´iÞ¼ymÊÒ`ù7…«Á)q‰82P"£­RáÿAQQÑñãÇ£¢¢¨ÖÒ£QáñУG>þøcŸ &)GWWwÙ²e­‰ì|ºˆŒæ¡ì| ⣣gÏžMÉÑÍ@4Ê… Z™^…¯Cˆ.ò‚,ÈC² !ÈBå˜zèС&&*¼æ’ ÇMMÍ:ª…(‡W¯^999µ~LMÙÿCk×®-(( êèÊ¥¨H'7Wï“OJÔÔ$TkQNNNmº_FßÛ+gçÐôô¢-[²´ìþÓX¨ð·AÔ2ztYÇ!"⮇‡c3é»1¨/CyAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y‡dAByAä!Y¨œÓóÒ¥KG¥êèJ¤ºZ·°ÐÂÖö ÕB”€††Fxxxß¾}[Ÿ…Ê9=/\¸ðòåK{{{ 5(MMŽ GÜ-¦5¿r劗——Êxìíí·oßN­„~ü˜jEŽ xhâĉ׮]óööž6mÚ¹sçnܸ1wî\ww÷ãÇÀ¡C‡öîÝK¤äóù®®®™™™ððáÃÅ‹»¸¸Ì›7ïÆ€ãx\\œ···››Û÷ßÿâÅ ù^€èìAšéMètºþ믿–.]êêê:cÆŒsç΀T*=þ¼———›››ŸŸ_zº‚%Ï&Nœ˜””äííýÕW_?¾™\b±øÈ‘#žžžžžžGŽ‹Å>œ9sfuu5ܺuËËËK n ¨F_öìٳÇß¹s'44t„ ÇŽ»}ûöþýûgΜ9~üø­[·J$:þàÁSSS@ìïïÿùçŸ?zôhïÞ½NNNIII¿ýöÛÚµkœ••µk׮ƊߵkWuuuHHˆ®®î¤I“Gz{{ëëëYäà ø|>Žã•••‘‘‘“'O€ºººmÛ¶MžmÚ4/¿üªªªšÊuíÚµU«V[[[/[¶ŒèCýýýŸ?ðõ×_ÛÚÚ*£) ×!---`0 Â@£ÑÆwïÞ=kkëgÏž­[·zõêuðàÁK—.8qbàÀóæÍ5jTqq±¬LkkëÆ²°° }ûö-//o&²)Μ9cnnõõõ—.]Z»víùóç Æ»wïöíÛÇçó @¤,//oQ°X,ùóm*WIIÉŒ3dñÚÚÚ ££3uêÔS§Níß¿¿yÙdPëPóL˜0áþýûwîÜ:t¨‘‘Ô××K¥ÒàààÄÄD77·M›6UWW³X¬ììlY®¼¼¼ÆE½{÷Ž6Ù"êêêîîîeee<¯¾¾>88ø›o¾ùõ×_W¯^M$èÓ§O‹zÃ0ùͦrééé9s&99999911ñ—_~€²²²¸¸¸‘#G›DwðƒƒƒD"9uêÑÙ†a÷îÝ«­­‰D C]]}Ê”)‡~ðà‡Ãyüøñ¯¿þÚ¸¨°°°Â¿ÿþ[6”QY[[{õêUb¯|x<‡Ãáp8eeeQQQÆÆÆúúú"‘H,3 ¡PxâÄ ¨««ûꫯäõ·-ÒT®qãÆEDD”––æääÅÇÇã8¾wïÞéÓ§oݺõÙ³g>lgý¶„jôeÍC£Ñœœœþøã'''"FMMmãÆG-++333Û¾}»ššÚœ9s$Ixx8Ç# ;wîlPÔ¤I“Ö­['œçÏŸOô\ "€Çã#Üaðóó#†õë×/88Ã0åË—ïܹSSSsÞ¼yÎÎÎAAA111"‘èðáÕ••ýû÷ߺuëŠ+Z<ÙiÓ¦)̵xñâ°°°¥K—bæää´lÙ²øøx7wî\ƒ±fÍš :´W¯^Ê©t9¨|möìÙåååJy÷#22²¤¤dË–-­ÏRXX¸`Á‚ääd…›ÍDvo&Nœ={öìÖgQù¾L(_»vmêÔ©Tk顨¼‡ÒÓÓ—-[6eÊGGRKƒkkk{xx´&Ñ€nÒ—!”EOìË”ƒ<„ ò‚,ÈC²PücË6 ³ MySQL++ Reference Manual
mysqlpp::ConnectTimeoutOption Member List

This is the complete list of members for mysqlpp::ConnectTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReconnectOption.html0000755000372000001440000002524612502417163027304 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReconnectOption Class Reference

Enable automatic reconnection to server. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReconnectOption:
Collaboration diagram for mysqlpp::ReconnectOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable automatic reconnection to server.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/noexceptions_8h_source.html0000755000372000001440000005026312502417162025550 0ustar robertousers MySQL++ Reference Manual
noexceptions.h
Go to the documentation of this file.
1 
15 /***********************************************************************
16  Copyright (c) 2005-2007 by Educational Technology Resources, Inc.
17  Others may also hold copyrights on code in this file. See the
18  CREDITS.txt file in the top directory of the distribution for details.
19 
20  This file is part of MySQL++.
21 
22  MySQL++ is free software; you can redistribute it and/or modify it
23  under the terms of the GNU Lesser General Public License as published
24  by the Free Software Foundation; either version 2.1 of the License, or
25  (at your option) any later version.
26 
27  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
28  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
29  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
30  License for more details.
31 
32  You should have received a copy of the GNU Lesser General Public
33  License along with MySQL++; if not, write to the Free Software
34  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
35  USA
36 ***********************************************************************/
37 
38 #ifndef MYSQLPP_NOEXCEPTIONS_H
39 #define MYSQLPP_NOEXCEPTIONS_H
40 
41 #include "common.h"
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 // Make Doxygen ignore this
47 class MYSQLPP_EXPORT NoExceptions;
48 #endif
49 
70 
71 class MYSQLPP_EXPORT OptionalExceptions
72 {
73 public:
77  OptionalExceptions(bool e = true) :
78  exceptions_(e)
79  {
80  }
81 
83  virtual ~OptionalExceptions() { }
84 
86  void enable_exceptions() const { exceptions_ = true; }
87 
89  void disable_exceptions() const { exceptions_ = false; }
90 
92  bool throw_exceptions() const { return exceptions_; }
93 
94 protected:
99  void set_exceptions(bool e) const { exceptions_ = e; }
100 
103  friend class NoExceptions;
104 
105 private:
106  mutable bool exceptions_;
107 };
108 
109 
118 
119 class MYSQLPP_EXPORT NoExceptions
120 {
121 public:
128  assoc_(a),
129  exceptions_were_enabled_(a.throw_exceptions())
130  {
131  assoc_.disable_exceptions();
132  }
133 
138  {
139  assoc_.set_exceptions(exceptions_were_enabled_);
140  }
141 
142 private:
143  const OptionalExceptions& assoc_;
144  bool exceptions_were_enabled_;
145 
146  // Hidden assignment operator and copy ctor, because we should not
147  // be copied.
148  NoExceptions(const NoExceptions&);
149  NoExceptions& operator=(const NoExceptions&);
150 };
151 
152 } // end namespace mysqlpp
153 
154 #endif // MYSQLPP_NOEXCEPTIONS_H
155 
void enable_exceptions() const
Enable exceptions from the object.
Definition: noexceptions.h:86
Disable exceptions in an object derived from OptionalExceptions.
Definition: noexceptions.h:119
void set_exceptions(bool e) const
Sets the exception state to a particular value.
Definition: noexceptions.h:99
OptionalExceptions(bool e=true)
Default constructor.
Definition: noexceptions.h:77
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
bool throw_exceptions() const
Returns true if exceptions are enabled.
Definition: noexceptions.h:92
~NoExceptions()
Destructor.
Definition: noexceptions.h:137
virtual ~OptionalExceptions()
Destroy object.
Definition: noexceptions.h:83
void disable_exceptions() const
Disable exceptions from the object.
Definition: noexceptions.h:89
This file includes top-level definitions for use both internal to the library, and outside it...
NoExceptions(const OptionalExceptions &a)
Constructor.
Definition: noexceptions.h:127
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x7e.html0000755000372000001440000002127212502417165024742 0ustar robertousers MySQL++ Reference Manual
 

- ~ -

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_29.png0000644000372000001440000000631512502417165024027 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ ‚IDATxœí›{PGÇ7Dh Z a@¥0R)cµ©‘BЭÖÒi±­c`ì ë£ÓN눈­JÊÄ –¶¶ƒŠ”V˜ ÕJ,Îð0”„gyÌã®ìôæ¼<‘È£÷ùk÷·{{¿Ýûfwoï Š¢€„ÄcxM·$sRa$ž…T‰g™GÈ+ŠóçÏO‹+$³–““ãããsŸ½Ÿœœœird.PUUEPq³Z­YYY§OŸžÿHf5 Åb±Œä>ŒÄ³ #ñ,¤ÂH< ©0Ï2ÖÕÕE¡P¦ª5 :¾råÊëׯ;©¢èÆ™L&fQ*• <<œÉd®X±âìÙ³SåÛ¤À†ß#‹õ /twwOxÕt16å455©T*•J%“É¢¢¢6lØàäk¬R©‹Å7oÞ„Ù‘‘‘ÄÄDƒ!‘H®\¹’“““››[[[ûà^Éår6›íÞµ°GJ¥²¡¡A7:ªéïï¿k×.Oøà*„Ó‹¬¬¬¬¬,tZéìì´uÌmXv``000àâÝß|óM¨H ¡PøôÓO?¸c“í&VŸÐ£;wîÆÆÆ‚ÎH$‚ÑÍ9ŒB¡?~<&&&((¨¤¤äÔ©S,kÏž=€‚‚‚­[·Âšz½žÁ`üý÷߀Ÿþ9>>žF£EFFž:u € È×_ãëë›’’R__ŸÒá _SSóøãs8œ‚‚‚{÷îÙ5‚û—'Kƒ···‹Å‚Y³Ù¼sçÎàà`‡³sçN³Ùœœœ  ªªªÞ~ûm| EEEååå0=::šŸŸÏf³Ã„Báøø¸#7(ŠX,މ‰yôÑG?ÿüsáF¶žX­Öýû÷GGGûúú®\¹²¹¹Ùn¨T*D9÷Ç àåuuu‹/¾|ù²#=8ƒ 8ç0@nn®V«=vì ;;[«Õ–––†‡‡Íf3Š¢±±±‚èõúGyäÈ‘#*•ª¼¼|Þ¼yz½¾´´”ÃáTWW+•ÊsçÎ………°L¬]»¶££C*•òx¼ââb»FEGGGËÊÊ {ø4àúõë:N§Óõõõ½ñÆ›7oÆ:²oß¾—^z©··W&“-[¶ìý÷ßÇÿ¬5 @­V;‡¼¼¼Õ«WߺuK&“ÅÅÅaîÁR|™™©ÑhÊÊÊ###„ùÃÖ“C‡ágáÂ…à¿9 öH«Õvuuedd,_¾ÜÜðVxî¹ç.]º¤×ë'T…íæ¾Â®]»†¢¨Éd"¤;;;-KHHH]]Š¢Ï?ÿ|II Š¢jµÚÛÛûÀANgµZccc¿ûî;¬Ù'NØ*L&“ÁR‰DÂãñ컊‡ÉdÞ¼y+åóù*• ¦/\¸°téRü «Õj€F£±Û²Éd¢R©ÿüóÌVWWcîA áéÖ××ãG‰ðtm=‰ŽŽ¶B¼½½ÓÒÒà¢9¡?nø@mçØU˜û;}___ØCB@¥R322ª««‡‡‡/^¼˜——¨¯¯—J¥aaaiiiþù§———\._ºt)Öf||¼í¢¢¢`‚ÏçÃ=‡#£#°]‹Á`ؾ}û–-[°"…B±`Áø^¶fÍÂKY@@@pp0¶ë‡´´´¬X±âîÝ»V«•ËåB;Ç#xBPœ„°Q"`ëÉíÛ· Ö#“Éôûï¿óx<À„þ¸á´óù|»õ]ÁSï’YYYgÏž=}útjj*\ûŒF#‚ ?üðƒZ­ÞºuëºuëÔjuhhhkk+vU[[›mSðgèèè€äÈ8! #??¿­­ {öl6{ZF*•.yñÅ<ˆ×JEE…Ùlf0ÁÁÁT*U.—Cû­[·BCCaîŠúúúðMyy9m[OÂÃÃ'>>|>¿¦¦EQ“É´wïÞˆˆ&“™’’òý÷ßÛ*ìØ±c=ö›Í~ë­·ŒF£]#zÿ¦ÇѰ¢(jµZýüüº»»aV«ÕnÞ¼9 00ðµ×^3 ¶cªP(233.\èëë›””ôÓO?aEjµzÓ¦M ,xçw 'ü±¿¿?—Ë­©©qòtÍfsjj*“Étä‰ÅbÙ¿?Ç›?~JJ œQl{„ÇÖç ›Ð‡iS˜+|øá‡`R—úc·{S{„C2…ØU1>lJW*•ǯ¬¬ôDû$³ìô›››—/_¾eË–§žzêAÚñóóÛ¾}»+F’ ½ÿ:;;@Ƹ’¸…B‘H$PBÿ‹/ß$ÓÈœU˜^¯ …t:=**ª¨¨h||+5 ……… L&3))é³Ï>ÃÌ)JWW¡5|ÀL@@@vv6<•° Š‹ÿAmbþwvþ3!¶bJÈÏÏOOO¿zõêàà`CCCBBÂŽ;`‘V«åóù«V­úõ×_ÛÛÛ«ªª–,Y’žžn±XPg0ÓÒÒ’’’B¸ÀOÒ{zzé9xȧÓ‹¿¿¿T*Ų ‹/†i¡Pøä“OB=Aôz}xxø‘#GPÇ Ãÿøã‹åèÖŽNææì*lö­’AAAK–,ijjjllµ[EQ@pãÆ ˜¥P(Ï<ó v‘——÷ÑGY­V˜ÍÍÍ­¬¬,))ÉÍÍuŃñꫯ޾}{ppZìÆêØÅ𘶶¶;wî,[¶ŒN§»âáŒbö),!!¡¾¾¾ººº½½=::zÛ¶mW¯^%Ôa2™/¿üò† Î;'—Ë›šš„B!& ‘HÔßß¿fÍšÚÚÚŽŽŽÈÈH@0>>¾mÛ6Xahh¨ÁØÛÛ»oß¾E‹ùûûNž<©Õj¿úê« ÏÈÈøàƒzzzd2Ù³Ï>ûÍ7ß8ª‰ Èùóçׯ_ŸœœŒ¢hcccee¥Çÿä sÚÌ_%ñh4šC‡q¹\…BA(²X,ÅÅÅñññt:=<<|×®]0´¢×ëß{ク¸8ÆårwïÞ––æè_n£——W|| MySQL++ Reference Manual
mysqlpp::value_list_ba< Seq, Manip > Struct Template Reference

Holds a list of items, typically used to construct a SQL "value list". More...

#include <vallist.h>

Public Member Functions

 value_list_ba (const Seq &s, const char *d, Manip m)
 Create object. More...
 

Public Attributes

const Seq * list
 set of objects in the value list
 
const char * delim
 delimiter to use between each value in the list when inserting it into a C++ stream
 
Manip manip
 manipulator to use when inserting the list into a C++ stream
 

Detailed Description

template<class Seq, class Manip>
struct mysqlpp::value_list_ba< Seq, Manip >

Holds a list of items, typically used to construct a SQL "value list".

The SQL INSERT statement has a VALUES clause; this class can be used to construct the list of items for that clause.

Imagine an object of this type contains the list (a, b, c), and that the object's delimiter symbol is set to ", ". When you insert that object into a C++ stream, you would get "a, b, c".

This class is never instantiated by hand. The value_list() functions build instances of this structure template to do their work. MySQL++'s SSQLS mechanism calls those functions when building SQL queries; you can call them yourself to do similar work. The "Harnessing SSQLS Internals" section of the user manual has some examples of this.

See Also
value_list_b

Constructor & Destructor Documentation

template<class Seq, class Manip>
mysqlpp::value_list_ba< Seq, Manip >::value_list_ba ( const Seq &  s,
const char *  d,
Manip  m 
)
inline

Create object.

Parameters
sset of objects in the value list
dwhat delimiter to use between each value in the list when inserting the list into a C++ stream
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/myset_8h_source.html0000755000372000001440000006330312502417162024172 0ustar robertousers MySQL++ Reference Manual
myset.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #ifndef MYSQLPP_MYSET_H
30 #define MYSQLPP_MYSET_H
31 
32 #include "common.h"
33 
34 #include "mystring.h"
35 #include "stream2string.h"
36 
37 #include <iostream>
38 #include <set>
39 
40 namespace mysqlpp {
41 
42 #if !defined(DOXYGEN_IGNORE)
43 // Doxygen will not generate documentation for this section.
44 
45 template <class T, class key_type = typename T::key_type>
46 class MYSQLPP_EXPORT SetInsert
47 {
48 public:
49  SetInsert(T* o) : object_(o) { }
50  void operator ()(const key_type& data) { object_->insert(data); }
51 
52 private:
53  T* object_;
54 };
55 
56 template <class T>
57 inline SetInsert< std::set<T> > set_insert(std::set<T>* o)
58 {
59  return SetInsert< std::set<T> >(o);
60 }
61 
62 template <class Insert>
63 void set2container(const char* str, Insert insert);
64 
65 #endif // !defined(DOXYGEN_IGNORE)
66 
67 
69 
70 template <class Container = std::set<std::string> >
71 class MYSQLPP_EXPORT Set : public Container
72 {
73 public:
75  Set() {};
76 
78  Set(const char* str)
79  {
80  set2container(str, set_insert(this));
81  }
82 
84  Set(const std::string& str)
85  {
86  set2container(str.c_str(), set_insert(this));
87  }
88 
90  Set(const String& str)
91  {
92  set2container(str.c_str(), set_insert(this));
93  }
94 
97  operator std::string() const { return stream2string(*this); }
98 
100  std::string str() const { return *this; }
101 };
102 
103 
105 template <class Container>
106 inline std::ostream& operator <<(std::ostream& s,
107  const Set<Container>& d)
108 {
109  typename Container::const_iterator i = d.begin();
110  typename Container::const_iterator e = d.end();
111 
112  if (i != e) {
113  while (true) {
114  s << *i;
115  if (++i == e) {
116  break;
117  }
118  s << ",";
119  }
120  }
121 
122  return s;
123 }
124 
125 
126 #if !defined(DOXYGEN_IGNORE)
127 // Doxygen will not generate documentation for this section.
128 
129 template <class Insert>
130 void set2container(const char* str, Insert insert)
131 {
132  std::string temp;
133 
134  // Break str up using comma separators
135  while (str && *str) {
136  if (*str == ',') {
137  insert(temp);
138  temp.clear();
139 
140  // Handle comma at end of string case
141  if (*++str) {
142  ++str;
143  }
144  }
145  else {
146  temp += *str++;
147  }
148  }
149 
150  // Save final element of set, if any
151  if (temp.size()) {
152  insert(temp);
153  }
154 }
155 
156 #endif // !defined(DOXYGEN_IGNORE)
157 
158 
159 } // end namespace mysqlpp
160 
161 #endif
A special std::set derivative for holding MySQL data sets.
Definition: myset.h:71
std::string str() const
Return our value in std::string form.
Definition: myset.h:100
const char * c_str() const
Return a const pointer to the string data.
Definition: mystring.h:288
Set(const char *str)
Create object from a comma-separated list of values.
Definition: myset.h:78
Set()
Default constructor.
Definition: myset.h:75
Set(const String &str)
Create object from a comma-separated list of values.
Definition: myset.h:90
Set(const std::string &str)
Create object from a comma-separated list of values.
Definition: myset.h:84
Declares an adapter that converts something that can be inserted into a C++ stream into a std::string...
This file includes top-level definitions for use both internal to the library, and outside it...
A std::string work-alike that can convert itself from SQL text data formats to C++ data types...
Definition: mystring.h:139
Declares String class, MySQL++&#39;s generic std::string-like class, used for holding data received from ...
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TooOld__inherit__graph.png0000644000372000001440000001220512502417165030402 0ustar robertousers‰PNG  IHDRØ€æŸ0 bKGDÿÿÿ ½§“:IDATxœíw\ÇûÇg8䄯t¥c j¢¨"bC#¡ ¨ð¢…4‡Xð `¡ Q0¶ ‚BDŒ ¨T}ÑÄPN p”îìï}y¿Íqwº{fÞÍ>;û<Ïì~˜åEB4¢€@€B„(D)€B„(D)P$*pwwwii)ŸÏ'*ˆ åã?ž0a!Ñ âÀÀŸÏ·¶¶&*ˆ•••DE'Lˆ:::Ä&! pŒ!PˆR…!PˆRð^ ±¶¶A¢³ø(ŠnذAUUulÝ’°¥£Dþ„X__¯­­MtÒÒÒÒ’œœ\UU5zWø†«««ÿý÷£÷IäOˆ|>¿££ƒè,¤…ÍfŒŒŒFï ßpmm툈ˆÑû$dâõë×§OŸ>nÜ8SSÓÄÄDÀ¼yó“&Mðx¼Ã‡[XX¨©©ÍŸ?¿°°; ç”E‚$''[ZZjjj:t3Þ¸qcæÌ™4MOO»äØ!wîÜ122š5k–ŸŸV“ÅbÑh´'OžˆÌŸ­ô p¹\:ndd¤££ãããÓÕÕ%ÁUWWׯµµµ CCCûûûÅ5ŠÔ ÑÚÚš››+¹‹ÅRVVŽŽŽf0ñññŠŠŠ,«¦¦Fvdd¤®®nFFFKKËÍ›7õõõ±]]]]±±±XA ¾ X¿~=“ÉŒtttôôôP©ÔÍ›7755%%%ÚÚÚ°C–/_~÷îÝ?þøCKK‹Ãá (š””dmmÍçóE6A\PÉ >|ØÚÚº¬¬¬¼¼|îܹ¡¡¡÷òò²··¯««+++›6mZxx¸HŸÃ^‘ÜÜÜÖÖÖa«½%H-ÄÎÎN%%¥#GŽ0™L>ŸßÛÛËãñð×ÀÂÂâüùó‚ú.\ð§%AX&ƒƒƒ€šššgÏž±X,÷çŸbFì²²2E¹\î¤I“îܹƒ¢¨³³sDDÄHƒJNàÃ?ÌÈÈÀöVUUae‘‡*((TTT`öŒŒ sss‘>%Ÿj”h!’úÖ¬¡¡‘››ûðáCCCÃE‹åççS(ÿJ¸±±qÆŒ‚ÍéÓ§Kéý÷XWª¤¤„mR©Ôêêj''§Ù³gŸ?_sêÔ©…uëÖeddüóÏ?999^^^#mšä^¾|9eʬlii¹víZq~Z[[y<ž™™¶innÞÔÔ$Ò'É!µÙl6ŸÏ¿téRgg§ŸŸßªU«:;;ñLLLJKK›•••Ãúär¹€ææf¼QHßl6û‹/¾ {üøñéÓ§ñ»×ÕÕÕõÊ•+¿ýöÛ‚ ¥o”4 èëë744`å§OŸîß¿_œ·‰'*((Ô××c›uuu"}’RçŠ ˆ££czzzOOÏàà ’’FÃv±X,@PPPXXØÕ«W_½zuëÖ­]»va{»»»ãââ„Êêêꀄ„„žžžãÇKˆ;00088H¥RÙl6Nôöö Õ±µµår¹{öìñöö–²9Ò'àíí½cÇŽŠŠŠŠŠŠ­[·¾|ùR° k¸%%%77·¯¿þúÅ‹;w{&D ¤#¢(š––fffF¥R§NzõêUE9΂ TUUQår¹‡677?~ü§Ÿ~úðáC¬EâFcûöíSWW733»zõ*À ÑC(A922RSSóƒ>8}ú´‡‡‡®®.ÞFPPŠŠJOO„ü…Ž’2þþþÐÐP}}ý &xxx0™L¡†ãÝvvvz{{kiiééé}ûí·l6[\£$CìA úœ´­­­ªªjñâÅ„DvìØÑÐМœLt"cC^^ž•••®®.!Ñ ^(§ô÷÷·´´œ={öâÅ‹Dçòž@ê1"i),,üä“O6oÞŒïÑ1—¦<{DYX´h‘Ðó;2#òÝ#¶´´xzzš˜˜¨ªªÚØØ\¹re¬<#R[[+n/:ÜššÔÔT‘½ãÓ§OEÖåjš÷`1Ž ±££{œ––VTTäîîîáá‘••õB»¦fÍš5 ƒÁ`|hnnþÃ?ˆó<Ô(ˆ’­««V__?¢s‹=¡-Bd³Ù sæÌ™9sfLLLoo/Š¢ØC+öÊa(#Z“"Έ¢P¼¼ÄÅ‘±¥=(Ц¥¥Mž00 ÎóP£ ÊåË—çÍ›—œœŒ>"àꛑÁçóù|¾¢¢¼Î€"ÒÑÑ¡©©ù6œs8™—dÃÕ7#ƒB¡È×Úc!.\ø–TäçÀ¡Èñ•S°¯± B@!BH"„@!BH"„@!BH"„6ˆ-mÏËË#*±¢ãþ}A4çÏ':‘1€Àï {³"_ÿæP,(úÛÒ¥€/²³œ5ÐÒÒ"êea="…By~d¥©°ýÏ?€Á†ƒ9sˆNGŽcÄQQ•žNQRRPRªº|™è\ä(DÙáq8ÏÿÏáð8œgW¯ò8¢3’c e§!/oðÍ—Jƒ}} ð%ò(€B”ªŒ ÁО¢ ð,#ƒØ|ä(DáôõÕݺÅçñ°M>‡Ss맯جä(D©ËÎæq¹ÿ¿ |§.'‡¸Œä(D©LOš8D¤2=¨|ä(DY`3™ yyè›û2ŸÇkÈÍe3™De%×@!ÊBÍÍ›¢ß£ HͼótÞ e¡òòe êÕ(ÊçÙmÙ€B1¬ÖÖæ’”ϱE›Š‹ûÚÚÞyRrü}ÅG8=MMÊ4š`±ŸËPÞ|ÞŠP(=MMã ú(S~!lõÍ{ÃõÀ@Àª˜¢‘oà­B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !äÅallLt:ò‡1•jL¥…üabb‚×Þ¿þ‡6‚ ®®®VVVæù/PUUuéÒ%¼ö„UÀÊÊjñâÅï4)Ž!$ B  !¤ B ÈõhÍÍÍ6lÈÍͽ«»wïîÝ»w¨=66ÖÜÜ\z?ýýýçÏŸôèƒÁ022²µµuwwWPP—êH›ÐÑÑUQQÑÝÝmllìååekk+}z°³³KJJ200¹EÑÜ¿?33Sd…±:RB.!Ž!óçÏOOO0Œ­[·¦¿ùIïÿýïÒ;yýúupp°††F`` ¾¾þ‹/âãã‹‹‹=:&IöôôøûûöÙgt:F£îÝ»wÿþý666câ_999iiiâ*ŒÉ ”ž÷VˆÊÊÊÊÊÊ6› ÐÔÔ”ÁIBB‚ººzdd$…BÚØØlÚ´)33sÆŒ£Oòܹs3gÎ Ã6;;;ÓÒÒÞºâ¼rLN ôŒxŒhgg—™™éëëëââ’’’rûöm+Vœ={pâĉC‡a5Ùl¶““SMM àÁƒ~~~ŽŽŽžžž·oß (zåÊ___ggç/¿üòÉ“'vvv‚(ÍÍÍvvvÞÞÞk×®=qâ‡ÃiTÆ(¹ ,+""bÍš5®®®QQQƒƒƒâŒÙÙÙ>>>˜ 1Æçîîž-°ðùüÔÔToooggç­[·>{öLdЮ®.ìÚã¹wïÞ矎·øúú~÷Ýwò´³³ËÉÉñõõ]½zujjªà¢ 5âZaË–-€uëÖIˆ5,"%²<¬”””DEEÄÆÆþõ×_ñññÁÁÁ‰‰‰===‹-*((àñx€‚‚===ssóþþþððpì‚:t¨¿¿ÿæÍ› þþþ‰‰‰>>>è÷ß?xðà SRRÄÕÕÕCCC±½ø²8~ýõ×öööèèè_~ùåÑ£G/^id±XCÇCæææÿý·`3===--- 11ÑÛÛ;::Z¨þóçÏ#""6mÚÄb±ðvÌ¿‘‘Þ¨¢¢"è¥Dæ ¸ÿþ©S§cbbz{{%ñU8}ú4 ##Cr,ÉÔÕÕ¹»»ÇÄÄ0 iêK@!º¹¹Ñh4GGG€§§'FsrrôööN›6MQQ±¬¬ ““ãèèˆ ‡ÃAQ”ÍfS©T''§ëׯ+++§§§ÙÚÚjiiÍ;×ßßh àà`CCCKKKA'4Ô8~üø+V`{ñe‘p¹Ü»wï~õÕWzzz¦¦¦›6mÊÎÎiçA>îWï]»†oH@@f¼}ûvpppddä´iÓRRR´´´ð~°\‚HŸ'¶ËÅÅEUUuÙ²e€žž F<*Œ¨ùxfÏž§¬¬²cÇŽââb™uY!Òh4€¢¢¢P@¡PlmmïÝ»×ÝÝ]RRâààPSS;vìXUU•««ë7ß|SVV† ƒÁÀw6¦¦¦Cb##£ööv Féa2™|>___Û400hooiTUUÕÔÔ¬­­òP[[kaa!ØlooÚ’’77·Ç‡„„ÄÄĬ\¹REEEÈššš††ÆË—/ñÆçÏŸ ˆL +kkkÜ9—`”²‚„X⥥µqãÆ”””¥K—&$$øøø´µµIy,ž±ŸG\¼xq~~~^^ÞG}¤££àóùáááׯ_wvvþé§Ÿz{{µµµëêêG544 uÕÔÔ„݉H£ôhhhP(Á­¤¥¥E[[[¤ààà€ïÿúûû/^¼8gÎeÒ¤IC¢®®nbbRYYY^^.tGÆ3þü´´4|/‚uÏÊÊÊâRb:Qq=«4$Ä’&“ÙÐÐÐÞÞnaa=⌔±âôéÓy<Þ… °{7A°°°{÷îõõõq8EEEeeååË—GEEtvv9sf¨«“'O677?þ<..néÒ¥âŒ}}}7oÞÄöâË"QTT´³³;~ü8ƒÁÀ¦cD¾¾¾L&sÛ¶mEEEMMMùùùÁÁÁÚÚÚkÖ¬8\½z5¾!ØC›™™Ù±cÇöìÙÓØØèíí}øðáêêê¡Éøùù•––8p ²²²¾¾þÂ… Ø(E\Jo™c¡(Z\\üóÏ?oÙ²EÑ“'OþüóÏ&L%Ž‘ …BY¸paVVÖÂ… 1 •JýñÇcbbÚÚÚôõõét:•Jussãñx§Nêêê255 Ü·oŸ+‡íÛ·÷÷÷ÛÛÛ{yya÷ !# ««ëÈ‘#ØÐ_GHHÈÉ“'ƒ‚‚”””–,Y‚9i¤ÑhgΜ9wî\tttKK‹žžž½½½«««’’’À›‹‹ ‡Ã‰ŠŠêèè033î ¶kòäÉÛ¶m ÈÌÌܽ{wddäĉñ™¨««Ÿ9s&**ŠN§³Ùl##£ýû÷Ï›7OBžo Ùbåçç§¥¥­[·ŽN§KHƒðzD:>úe`qqq¯^½Ú¹s§ô‡½ù~b ß»¼{Påóù D'2–p¹\Ùô———·{÷n¼öÆøÖ<88È`0233W®\9¶žåAÞ3‰ÏF#eŒ…øìÙ³ÀÀÀåË—òÅÃøñãW­Z%ò~ðVn͈dÞú­‘ (D)€B„(D)~X155ÕÐÐ 0!È&“Y__/ö»æmÛ¶566¾ó¬ ÿE\\\ð›ˆÌëv 1Ž!¤ B  !¤ B þÐþî½f8ÜIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/vallist_8h.html0000755000372000001440000005677512502417162023146 0ustar robertousers MySQL++ Reference Manual
vallist.h File Reference

Declares templates for holding lists of values. More...

#include "manip.h"
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  mysqlpp::equal_list_ba< Seq1, Seq2, Manip >
 Holds two lists of items, typically used to construct a SQL "equals clause". More...
 
struct  mysqlpp::equal_list_b< Seq1, Seq2, Manip >
 Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed. More...
 
struct  mysqlpp::value_list_ba< Seq, Manip >
 Holds a list of items, typically used to construct a SQL "value list". More...
 
struct  mysqlpp::value_list_b< Seq, Manip >
 Same as value_list_ba, plus the option to have some elements of the list suppressed. More...
 

Functions

template<class Seq1 , class Seq2 , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const equal_list_ba< Seq1, Seq2, Manip > &el)
 Inserts an equal_list_ba into an std::ostream. More...
 
template<class Seq1 , class Seq2 , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const equal_list_b< Seq1, Seq2, Manip > &el)
 Same as operator<< for equal_list_ba, plus the option to suppress insertion of some list items in the stream. More...
 
template<class Seq , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const value_list_ba< Seq, Manip > &cl)
 Inserts a value_list_ba into an std::ostream. More...
 
template<class Seq , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const value_list_b< Seq, Manip > &cl)
 Same as operator<< for value_list_ba, plus the option to suppress insertion of some list items in the stream. More...
 
void mysqlpp::create_vector (size_t size, std::vector< bool > &v, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Create a vector of bool with the given arguments as values. More...
 
template<class Container >
void mysqlpp::create_vector (const Container &c, std::vector< bool > &v, std::string s0, std::string s1, std::string s2, std::string s3, std::string s4, std::string s5, std::string s6, std::string s7, std::string s8, std::string s9, std::string sa, std::string sb, std::string sc)
 Create a vector of bool using a list of named fields. More...
 
template<class Seq >
value_list_ba< Seq,
do_nothing_type0 > 
mysqlpp::value_list (const Seq &s, const char *d=",")
 Constructs a value_list_ba. More...
 
template<class Seq , class Manip >
value_list_ba< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m)
 Constructs a value_list_ba. More...
 
template<class Seq , class Manip >
value_list_b< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m, const std::vector< bool > &vb)
 Constructs a value_list_b (sparse value list) More...
 
template<class Seq , class Manip >
value_list_b< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a value_list_b (sparse value list) More...
 
template<class Seq >
value_list_b< Seq,
do_nothing_type0 > 
mysqlpp::value_list (const Seq &s, const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a sparse value list. More...
 
template<class Seq >
value_list_b< Seq,
do_nothing_type0 > 
mysqlpp::value_list (const Seq &s, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a sparse value list. More...
 
template<class Seq1 , class Seq2 >
equal_list_ba< Seq1, Seq2,
do_nothing_type0 > 
mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d=",", const char *e=" = ")
 Constructs an equal_list_ba. More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_ba< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
 Constructs an equal_list_ba. More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_b< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m, const std::vector< bool > &vb)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_b< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2,
do_nothing_type0 > 
mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2,
do_nothing_type0 > 
mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2,
do_nothing_type0 > 
mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 

Detailed Description

Declares templates for holding lists of values.

mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2mnode.png0000644000372000001440000000036612502417165022576 0ustar robertousers‰PNG  IHDRɪ|½IDATxíÝ!NAÅñ¤‡à\ ÷à Um@`Ô5iÒ`ëh ‚ÅW7] b§ÝˆŠ&oföÍd¾YÔ4 üšcø ‡€´‹Åòù3v=¼]†§µ\B… I¿‹=B·™B¡®;¸k´µ W°ÍN@vyÍÑÖ4ãß÷]ÈâYìã§|M}]ÔÚx6a }ôdׇØYüú¨>¤||5?Ó>|žB"¡î'¡IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Date__coll__graph.png0000644000372000001440000001632212502417165027352 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“‡IDATxœíyTÇöÇï00Q »²WÜð5¢A}qA¸bD¢Á“¸D=O!y59¨ç$¸€ E6Q O !ˆŠ‚QŸ`tÀap`–îßý˼q–íÌýüU]}ûö­î/UÕÝÅ\I’€ oЉ¡@z7( „( „( „¦ª?^»vmGG‡¡¢AŒ.—{àÀ*k^PIIÉùóç.\Øã!½ƒŒŒŒ%K–èÅéÓ§{0$¤7Áb±Ôjp„0„0„0„0ÂèôçŸjÎÔ˜ÐÐÐêêêjii9nܸœœ=:g‚Ö–2oþ©S§XÚ¸}û6·º0:é—gÏž=ÚÂÂ"==½´´tñâÅ!!!.\0t\ÝÈÇÌçóù|~qq1ðÿÂÇǧ;N§å1þm"::Úßß?11‘Ú:thcccllìG}dØÀºssssss‹Å`ooß­§{“ˆÅb=zÔÛÛÛÖÖvÏž=)))nnnýúõÛ¾};DEE…‡‡S–b±ØÂÂâÖ­[pîܹ#Fp¹\ww÷”” "..ÎÛÛÛÊÊjâĉ………ª½7Õ™çææ¾÷Þ{</**ª³³Sk%¼Üó«–³²²Ö¯_¯|tttRRUnmm]¾|¹³³óÆ©Wðô­ÓÀùóç©®ÎÁÁaÏž=JË‚‚‚^½zUÓ€âĉ¶¶¶‘‘‘/^¼P U&“mÚ´ÉÎÎŽÇãmÚ´I&“iÞ @ vTWx³£´Cªžž®V£ ‰DÔ_vpp°H$Š€§OŸ^¹rÅÚÚZ&“‘$™ššêããC„X,îÓ§ÏáÇù|~RR’©©©X,ŽçñxÙÙÙ yyyÎÎÎPYYIÅ@¦OŸþðáÃ’’OOϘ˜­•$I¶¶¶9r„ OYnii¡P¨«!aaaUUUÆ £\Ñ·Nk"‘ˆÃá¬\¹²®®.55š››)Ë3f\¾|™Ïçë2øàƒ”®¶lÙ¢l>I’ß~ûíüùó?~\QQáëë»eËÕàKKK—-[fkkÛÐРµuª®Ô¸té%ÊêêêWÞnµ[ŸžžþRêF×TVVF’¤T*U+WVVÊår{{û‚‚’$gΜ¹gÏ’$…B¡™™YlllKK Ammm …ÂÇÇçØ±cJ·Ç×PEE…26OOO­•ºâ …ÐÒÒ¢u¯T*e³Ùüñµ™M¹¢oÖ:;;ïß¿/‹ Å•+W4-_i@¹rssS½ëC† áóùTùÒ¥K£F"IR"‘üøããÇ=zt|||[[›®æÓˆ$ÉúúúèèhggçÙ³g_¸pA¡Pè²TEoª¬¬¤)öÙgk×®çÉ“'ÔÞ«W¯.X° oß¾“'Oþé§ŸH’477¿}û¶Ò-5Ò© H"‘P{ËË˹\®ÖJšPíì슊ŠTkJKKÇŽÛÞÞþäÉUW”+úÖé 77wÒ¤I£FZ±b…ª¥T*¥,uhm UÃårUÇŠ~ýúQ=DzeË®]»Fým¢…T*=}úô¤I“üøñczcR›€ºå)láÂ…999TdÔÀ$‘H‚ÈÈÈ …ááá³gÏ …NNNåååÊ£îÞ½«éŠº ððáCGGGšJ­Ì™3gïÞ½¤Ê²ÝÔÔT™LfaaaggÇf³«««©úªª*''§.6P-‰D¼iÓ¦²²²ƒªZš™™QÍ×e êjРAª»lll”òmii)))±µµ:thqqqQQQkkk£¥¡©©éîÝ»uuu¾¾¾ÔÔûµQU“¾z ¹\Îãñììì’““©]‰„Ëåfff ‚„„.—+‘HvíÚÅãñΜ9ÃçóóóóµÎüýý+++KKK½¼¼vìØ¡µ’Ô1"I²¹¹ÙÚÚ:,,¬¨¨¨¼¼<&&Ο?Oí ¨®®¾sçŽ劾uZhiia±Xùùùííí›7o€²²2Õ€Æ`Ú´iJW»wïV=***jÁ‚µµµååå&LX·nUçΈˆ›ððð7nèºM4=B¡¸páÂܹsœœvìØQ__ÿÊ›®¼=1„‘$¹fÍsss‘H¤êÜÃÃÃá 2$77—$I©TúÍ7߸¹¹YZZNœ81--MS@‰‰‰ƒ ²±±ùüóÏ%‰ÖJòå‹¥vájkk,Xàèèhee5~üø³gÏ*w …Â%K–X[[;88|ñÅ”«®H3€}ûö½ûî»... áñxjaè28uꔫ«+ÇÛ°aCgg§êQ"‘hÅŠ °¶¶^½zu{{»ê]hiiÙ·oŸ‡‡Gmm­ÖÛD# ÌÌL??¿'Ntvvj5Ð…~Ô¶mÛúZ‡¨5Xkû»2®w+@ …BA=ð¾Ê™Ùë¢) ý¿Hìèèhhh8zôèÉ“'õîQÃÄÄÄÄäµ'²ÔÌL?èË‘’k×®;våÊ•S§NeâçwÞ‰ˆˆèJeObðŒ ©ò„rúôéE‹©Ö ˆ*,+===88XYó–LEºÂÂÂ-ñ =‡qb΀„|ÇÐ1ª/…®^½Êf³ ‘qe;ü²ÝÐAl6ûêÕ«ªšaáC»NÚk!×X? CGc¤àH7O²Å0Ç™†ÅxAé¦ê(r P}ÔС/( <¿ ÏÿZŸÔú<¿gÐhŒ¥ƒÉ__MÌàQºA£1^P@Z!¡úý!ƒêd|ÚÐ HϮË'/Õ¼xÏn(£¤G'ÿ7~Q˜˜Á#\Þ¤¤jRÿ7~Q2¨IRa ˜ŒÍW ó©–úΧÐükGcì €4¨MS¿(LÌàQZGcìà§Œ—!:!Óäbí{M­`LúôlLF ö@/#(Ò©· ¸£é`ô2òvhøé›µ'\ÃþWã8 L-z:*#DËÕ`€Iø»Ç:Á! a a a a a a>ÆÓ"®°t7tÆ aa#P@#P@úG5ʼn««ëÒ¥K¡ƒê.P@ÝBqq1ŸÏ¯««KNN‰D¾¾¾4¿Ê[]]mccÓ“áéP·`kkkooïäääï“ãîî¾ÿ~]ÆA<{ö¬'ÃÓ#( Ft%k ‹ÅZ³fM^^µ©™uÅÏÏTÒêÐçXÑgž½ðf?÷úwáÖWä­¯´î¡Éu*¿.Mqýúõþýû“$I“–EiLŸcåó¤t( Z~[Hþ¶Pµ¢+¹NhD“uEi¬5ÇŠ*o–'¥›@Ñò²€º˜ëDS@iiicÆŒ¡Êº²®(5s¬h=ËëæIé&pô¼Y®’$:4kÖ, Íº¢D3ÇŠV3=äIÑ( ×`äÈ‘………ÙÙÙ<ÇÊçIé&ðc*-¯ZTOA¦¦=—»X&“é1ÓsÞò¬ÍÝÍ›å:a‚Q©p9Ç+Àõ@¯„0ŸÂF €F €F €F €F €F €h¹½no1tF ¾‰¦…z‘ˆè{ „( „( „( „( „( „¸œƒ\ô*P@#pCBBBBB¢×½ \D ®zØ!Œ`ÔI¥ÒS§Nuttè+cãCn5ü|/ÁÐt\.wñâÅçÍ]0ùi¬¬,ýµ1 YYYL4À¨’Ëå€_Óz/,‹º‰o ÎF €F €F €FôzýùçŸ,KBCC]]]---Ç—““£GçLÐÚR½7ÿuéõÒ/Ïž=£Y¤§§—––.^¼8$$äÂ… †ŽËxÁO/íï˜Hm:´±±166ö£>2l`FKOô@,ëèÑ£ÞÞÞ¶¶¶{öìIIIqssëׯßöíÛ ***<<œ²‹Å·nÝ€sçÎ1‚Ë庻»§¤¤AqqqÞÞÞVVV'N,,,Tí½©Î<77÷½÷ÞãñxQQQZ+áåž_µœ••µ~ýzÕࣣ£“’’¨rkkëòåËmllœ7nÜH½‚§o®4söP–¼zõª¦ʼn'<<Ÿ¯Ëàƒ>PºÚ²e‹jž ú4?ºnMzzú+Íè<09¸ë*++#IR*•ª•+++år¹½½}AAI’3gÎܳgI’B¡ÐÌÌ,66¶¥¥… ˆ¶¶6…BáããsìØ1¥ÛãÇk ¨¢¢B›§§§ÖJ]q …BhiiѺW*•²Ùì?þøƒÚÌÎΦ\Ñ·Nk49{(ËWP®ÜÜÜTôÊ4?Zo CõÐ$ÚÊÊ þú‘lÕ2°Ùìyóæegg?}úôçŸ €–””8;;¿ÿþû¿ýö›‰‰Iuuõ¨Q£”>GŒ¡y"///ª0dȺº:šJM `ggwïÞ=ÕÊëׯ7îÅ‹MMM …ÂÃê÷ôôTº¢iÖ8ÎÇÇŒsìØ1UË!C†ª+>Ÿ¯º«¶¶ÖÁÁÊÕ:mÚ´šš]-Õ#Fñ¶p᜜*y50I$‚ 222„BaxxøìÙ³…B¡““Syy¹ò¨»wïjº¢þ"àáÃ‡ŽŽŽ4•Z™3gÎÞ½{I•¯{©©©2™ÌÂÂÂÎÎŽÍfWWÿÿ ¡ªª*''§.6P-šœ=”òh T] 4HuWÓüè&ÝWׇ0eô–år9dz³³KNN¦vI$.—›™™)¸\®D"ÙµkÇ;sæ ŸÏÏÏÏ×:ò÷÷¯¬¬,--õòòÚ±c‡ÖJRLj$Éææfkkë°°°¢¢¢òòò˜˜8þ<µ7444  ººúÎ;>>>”+úÖi  ¥¥…Åbåçç···oÞ¼ÊÊÊT#ƒiÓ¦)]íÞ½[õ¨¨¨¨ ÔÖÖ–——O˜0aݺu]¹5½cD/ ’$׬Ycnn.‰T{xxp8œ!C†äææ’$)•J¿ùæ777KKˉ'¦¥¥i (11qРA666Ÿþ¹D"ÑZ©4¦N¤–ï­¶¶vÁ‚ŽŽŽVVVãÇ?{ö¬r—P(\²d‰µµµƒƒÃ_|A¹êŠ€4ÐÌÙ£†.ƒS§N¹ººòx¼ 6tvvªEŸæG×­éê Û¶m }­CÔ®¸Ú&MeObðèa. ÿHìèèhhh8zôèÉ“'  òÚ~}íÚµ±cÇ®\¹rêÔ©Lü¼óÎ;]©ìI @wÃè×9NŸ>½hÑ"&ÃÂb±ÒÓÓƒƒƒß؃á{ ¤Wó7KWW×¥K— CÕ+ù› Š‹‹ù|~]]]rr²H$òõõ¥Éä]]]mÈÌÈFÌßW@¶¶¶öööNNNþþþ999îîîû÷ï×eLijgÏz2¼ÞÂÛ/ @ ¶ìA‹µfÍš¼¼Ú§g ·¬ê1lmm‡Z\\\TTDóT¥I’‡š5kÐ.¥PÒÅ…MMMwïÞ­««óõõ577³9o›€FŽYXX˜ýàÁƒÁƒ¯ZµêæÍ›Z-Accc}}ý•+W‚‚‚jjj¾üòKèìì”J¥G"‘DGG@[[uˆX,¦ óæÍÛºuë£G***8 ê™ ˆ‹/ùùù‘$YTTtòäÉ·ö-“îˇ0UZZZöíÛçááQ[[«¶Kõ ¸¸¸„……555)÷j.¥Éd“&M²´´¤ èNdffúùù8q¢³³³»ÛÈ`<„½ýß‚ ÂÔ´çÖÈd2µ%­F óoa†_ÎÑݘ˜˜˜˜ôèHÝ[Ô£Þ¶9Òà€F €F €F €F €Fèá1>!á­ýå/,˜›³ ˆñÂH@NNNl6û-þ¯ƒwß@ …Æò#ez‡Ífwý´µ‚9SuÒØø|̘¯Y,(+ûšÇ³2t8F Ît’Ÿ_Áf³LLXyy· ‹ñ‚ÒÉ©S¥r9)—é饆ŽÅxAi§¦FpçN u55øO?ÚAi'7÷–™Ùÿ?|™™™ž=‹£˜vP@ÚIO/•ÉTY&“ã(¦ îÞ­ôè¥ÿ«­}zï^ƒ¡â1fP@ZÈÉ)SŽ_ff윜2CÅcÌ €Ô!2#ãºrü¢É×ñ™&( unܨÚ4ë››E7nÔöx8Æ HÍñ‹ÂÔ”}æ Žbê €^B&SääÜT¿(ärEv¶ö]gP@/qýzHÔÁf›˜š²MMÙ•Mž?—à(¦~L} ‘¨ãìÙ[ÊÍÔÔßà“O&*kæÌýÎ;\-Gþ]AÑqâã—:ã‡0„( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „( „þ‘ͨ¨¨û÷ï0zž?ïýúµ:x{{ÿý÷ ÀÀb±XC‡åñxŒ¡÷ÒÜÜ|ïÞ=ÃÞA=¤ýfÈÂ… §Njè(z%¿üòË×_mØp„0„0„0„0Âð“hÃR__ÿÉ'ŸêÅ›¿¿¿²lgg7räÈÈÈÈþýûëŹq‚=ž‰‹‹ËÊÊÊÈÈøê«¯ÚÛÛW¯^-‹uóùü?þ¸'ÃÓ;( =Ó¿ÿwß}ׯÆfôèÑÿþ÷¿222t!‰z2<½Ó äïŸ¿lÙ²¹s禥¥]¼x1$$dÖ¬YG€~øá»ï¾£,%I```ee%‡‡‡OŸ>=44ôâÅ‹@’dNNβeËfΜ¹víÚ[·n©Ž8õõõþþþEEEK–, úá‡d2™ÖJ¥±êZ#g±XsæÌ)))¡6ÿý÷O?ý400pþüùiiiðÙgŸÀ¼yó(¹\~øðá      Ã‡Ëårý_M}Ó 7oÞŸ¿wïÞ²²²ääd}^Äî¡whÑ¢EÓ§O€ÐÐP ‹ÀÀ@hkk6l˜©©iEEüüóÏÓ§Og±X2™Œ$I‰DÂápÏ;×§OŸ¬¬¬5kÖLž<ÙÚÚz„ «V­Ò}ú̘1ãСCEEEB¡°´´4!!AÓU\\\}}ýÿûßÄÄÄiÓ¦éªlooÏËË£öª– µµU(>}ú´¼¼|ûöí|>?88d2™\.755•J¥ÔäæÅ‹Ô!‰„*Lž<ùÈ‘#MMMÕÕÕ›7o>sæLw\.ýò6ô@&&&S¦L¹pá”)S¨‡³uëÖøøøææfGGÇèèh‡³hÑ"…BqàÀÖÖVj’±sçN5W~øá† :::¨K­Z[[ccc©©jÖ­[Gx<Þˆ#¨‘ÈÒÒ222rçÎæææ¡¡¡›7oÎÌÌ>|øüùóúé'‹‹ûôÓOY,Ö”)S"""zâò1Ãð뢣£™/çHLLlllü׿þÕõCÔÞAk}%­ß÷Ôz‡ZÎaØ;Øë‡0©TÊçóóóóÿùÏ:–¿#½^@÷ï߈ˆ˜1cƨQ£˜øéÛ·ïìÙ³»R‰¨ò– aOpCz=( „( „( „†‘xóæMš%W <0t†~ sqq©««3`½—Ç0 éíàa a a aÄÿò£-ÄØ+5IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldNames__inherit__graph.png0000644000372000001440000000757112502417165031223 0ustar robertousers‰PNG  IHDR°p1=m½bKGDÿÿÿ ½§“.IDATxœí{P×ÇOB € ”¡/_”KíLÑQ¨ˆe@K' ´HiåUZG§P;ð­- ´@¤>F0 ).($UÚFF @B^{ÿØÛÜÝð”W°9Ÿ¿ÎþÎÉï÷;g¿9ç°»l‚äoˆÚN²º€‚€à€‚€à€‚€à ax<ÞÄÄ„¶RhCCC{{{õ!N|>íÚµúúú+žD;LNNòùü`0+›Dk >}úk{(((Žåijgϲ†Ð"KØ»Õ3PK ˆîîn¶x?«3îÒF™É›©©ééÓ§—*ÊbXA¨TªáááÅûYq—6ÊLÞh4Úwß}·TQÃ+ ¢´´ÔÉɉB¡ØØØääävîÜ Ø¸q#@©T&%%988ïÞ½»¹¹ývJT—™Læ—_~‰'''×­[W^^ËåÑÑÑ6l°°°ˆŽŽ–Ëå …"..ÎÚÚÚÜÜüèÑ£"‘H#.@$}üñÇ4Á`DEEI¥R4PMMµµu}}½FGÁÔ˲KØ»9½aÓ»víšúS!77wëÖ­ëׯOLL ’‘‘±mÛ¶µk×îÛ·¯¬¬Lc}™¶/ ÁP[[;00€ÌŒX,Ö××ÏÈÈèïïÏÎÎ&‘Hb±˜Çã©ý\ºtÉ¢¨¨¨¯¯¯¼¼œN§£U"‘(++ m£.ߺuËÚÚZ¥R!RRRB§Óår9‚ ßÿ½ŸŸßóçÏ9ÎŽ;Μ9“””´}ûv‡Ãår]\\¢¢¢ÁÆEäðáÃ]]]ÇÑÑ1>>màííýàÁ±X¬nÙÒÒlnnÞ××·|½›Ó6½öövµàïï?22’••ÎÊʲ²²ºwïž@ ¨ªª²³³Ó8qUUUè—§»»{–Ó7•ÚÚZ¬åÕ! ׬Y“œœ<22¢R©ÆÆÆ”J%¶“×®]S·¿~ýºFêXÆÇÇ©TjKK ‚ ‡:{ö,jß²eK?Z®ªªrvvÞ¼ysQQjyúô)ZÆÆ•Édzzz¿ÿþ;zXTTdgg‡6àp8¨Q"‘ܸqãwÞyë­·233ÇÆÆ–µwsz懵Г$“É<ÏÑÑ177Wí9//oj\>ŸÇ`0|||*++•JåL‰aY¬ ©¯¯÷÷÷§R©®®®¿üò‹Fg ÚÛÛÕ?~<Ë!Âb±bbbÄb1•Jý믿P#…BÁÎa&&& …Ëåj|÷Å‹‰D‚r8 …‚6ÉdÈßß¡àààææftNZÞÍî ›ž† þüóOu™Çãttt¨Ýb§ d2YAAÁž={ž?>Kn(Sñj{‰D¢R©nß¾- CBB|||„B!¶Á¦M›:::Ô‡Ož<™Ýa`` ›Í¾{÷îÛo¿­¾ÅB£Ñx<šßÈÈHSSNïééAkÛÛÛ¿ùæ ?6lÐÓÓëîîF»ºº¬¬¬Ðòš5kæææÛ¶mklllhh@· ËÝ»9½aÓÓ€HÄ—7Þx«³³s¦ Ož<éííݱc‡Á,éÍVsΉ„B¡°Ùl@pùòe …"‘HPu£3ð?þhaaQ\\Üßß_QQaccf^eA÷’öööØ©øÄ‰þþþ===...Ç‹‹srrâr¹\.w÷îÝaaaÈßß*õÌÏb±<<<º»»¹\îöíÛccc56‚p¹ÜˆˆÒÚÚº¬½›ÓÛÔÙ-Ôß´œššÊ`0*++‡††jjj6oÞL °™+•ÊÊÊJ&“ieeËçóg9‰X–`ÉÈÏÏ·µµ%“É[¶l)))AD.—ïÙ³ÇÈÈA…B‘””dggG¥RwíÚÕÔÔ„ös¦Î#ndd„ÝôŽŽ~òÉ'ëÖ­333 —J¥QQQt:ÝÄÄ$00pddD#.‚ B¡0((ÈÌÌÌÒÒò‹/¾PþÔ.ŒŒŒ\ºtÉÖÖ¶§§gY{7»·ù B©T¦¤¤ØÚÚš˜˜xyy•””˜››cÓf³Ù;wîÌÍÍœœœýôi°‚øÇ T*Ñ?jV?¥¥¥Ø½ ›ÍvvvÆ6@7" `±{ˆD"‘DÒ|duÂápŽ9òèÑ£‰‰‰¦¦¦sçÎ…††bL»Y¯Çˆè8111L&S ØØØ;v,""b™bAA¼H¤„„„„„„ˆ¥»KdZ  8  8  847•"‘H¡Ph%ÈÊ#‹5,8Aèëë÷õõ­`>«…êêÀþý›´œ‡6и•H@tþýJ¥ê_ÿŠp8ÿ&WŃZî!ÀÇτÂq¡PÜØøLÛ¹h(pûv+‰D\³†xûö´‹öÑuAH¥òòò…B)—«ÊË;¤R¹¶3Ò2º.ˆ:Õ"JåÌøì‰Ž ë‚(,lÅ>î\XتÝ|´ŽN btTZ]ýT©T¡‡J¥ªºúéè¨T»YiĽ{\• ÷W·J…TVrµ•Ïj@§Áf·j\…A„ÍÖéUCw!Œ56òT*Ö¨R!<`L[YiÝDYYû´×% BYYÇT»Ž »‚((hÕØ@ ¨T*]¾B¥£‚àóG8œ3tt¼èë›þŸyþñèè3•CCb:ÝT½@¯MQ(ÿ{v™H$ Ñé¦ZËO{À»q™¬íD´Ž.™€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à€‚€à™Ïï¿Ö×דÉdmgºŒH4‰¦í,–2™\__?Ÿs=¯wLñù|™L·ÜyC–‰óçÏóùüù´|…—ŽíÝ»wé@´ÍùóççÙî! 8  8  8  8^Aðù|ww÷¥òæ>³‡˜©VmwwwǾvis^tôÕÆ€´´4KKK¬EOO/00p1>ýõ×ÚÚÚ}ûö-.5m¢»‚055]¿~½†1<<|1>}||~øágg穞_–rÉpww¯¨¨f2™yyy÷ïß üðCkkë‹/N}ƒøÃ‡ü¼¼üüüòòòæ3b3¥1uÄ–%ÞC´µµ¥§§‡‡‡gee=|ø0;;;222''gttôÝwßmhhP*•€††KKK;;;©TÏd2Ñ!NLL”J¥ååå7nÜ ÍÉÉ9zôè… ¦*..¾pá·ß~ÛÜܬß©FSSÓ¨¨(´[H¥R 415l6»¿¿?33óâÅ‹=ºzõªºª°°0???<<<'''(((##C]E$Ïœ9ÓÖÖVYY‰õ611kooóæÍÈÈȬ¬,‘H4çˆM›Æ´#¶ð6…%D@@€¡¡¡§§'€ÅbzyyÆÆÆI$‡ÃTWW{zz¹\Ž ˆD"!“É^^^¥¥¥úúú………Ÿ~ú©«««™™™‹‹KhhèÔ@‘‘‘ cëÖ­¡¡¡UUU3©TêÁƒÑZlzCKK ÖEEÅÉ“'-,,lll"""°µwïÞŦ§±Ê0ŒðððÔÔÔÁÁAµ‘L&gggŸ8qÂÌÌÌÂÂ0>>>çˆM›Æ´#¶ s5=K¼‡044H$2€H$ºººÖÕÕÙØØ´µµ:u `llœ’’Âf³¯^½êààÀb±\\\úûûíììÔ>mll¦b0hÁÚÚZ Ìbœ‰›7oZYYa-Ø«ý/_¾ôóóSR©TuY Ìžž¯¯o]]]RRÒÉ“'Q ‰DêííMNN–H$öööØÆ³ŒØ´iL;b³÷ô•XÑMåÞ½{6mÚôæ›oš››&''U*U||¼B¡¨©©ùê«¯Š‹‹i4ZWW—­­-ú©žžž©®z{{Ñ3ñâÅ 33³YŒ ÃÄÄ$%%UŒX, …êª7Ξ@8}úô±cÇÊÊÊPËääd|||||ü®]»äryEEłӘvÄŒÓY,+zÂÉÉI©T^¿~!!::º®®n||\.—“H$}}}ooïôôô††¡PØÒÒrùòå©®ÒÒÒø|þüqåÊ•÷Þ{o&ãøøxyy9Z‹-ω««kVVÖÀÀ@wwwLLLqq±ºêƒ>À¦§Þb±´´ŒŒŒ,((@år¹B¡ ‘H2™ ÝŽLLL,,iGlžš+:C‰D77·ÊÊJ777ÔB&“Ïž=›™™988H§ÓãââÈdr@@€R©üé§ŸD"ºv&$$h¸Ú¿ÿ©S§¤R©‡‡ÇáÇÑBÉDÉÉÉèÖ[ž“´´´°°0àææ144„V1™L¹\žžž><ûlªŸß~û­µµ`dd™```Àb±<<ŸäÈutÃYŒ5îîîùùù}ôÑœ-WnÉÉdýýýï¿ÿþŠ…¼*+'ˆÎÎΈˆoooggçÅø¡R©>>>ó1BÀJ/­°— ÈkÇ+\˜ÂÞ*„üS™— \\\:¤qƒòaoo?Ï{`ðÇà!8à‚ ‚ ‚ ‚ã¿ÝLhiþIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption-members.html0000755000372000001440000001217412502417164033004 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SharedMemoryBaseNameOption Member List

This is the complete list of members for mysqlpp::SharedMemoryBaseNameOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadParamCount__coll__graph.png0000644000372000001440000002100212502417165031144 0ustar robertousers‰PNG  IHDRÉÍ5ÃDbKGDÿÿÿ ½§“ IDATxœíi@ÇûÇŸÍÁ-‚0@Š"ÚCm=Š(E,­ZE¤"E±ˆP<¡VZ¯V­(Xðú¡"* ¢Õªj±Þ¥åFä#‰áHȵÿÛšBW–˜Ï«ÙÙÙg¿;óÍÎd¯Áp‚(ê€èµ o!Èy AÈ[² É/‚¼¼<©Tª.5===½!C†t=Nuuuyyy×ã …B2dˆŽŽŽòbÿñÇ«­­555%SX/¤©©©¬¬L%Þªªªjll444ìz(ò¨®®677œœœÈ‘Ôk©ªªzñâ…ª¢jxܸq£=ÅÐx AÈ[²@ÞBò‚,H÷V~~>†adï¥Ch $òPãÁªÆ[……… C%¡HB^¡‘‘Ñ×_­^=*§µ&PãÁªÆ[R©´¶¶V%¡HB^!ƒÁضm›zõ¨œÖš@Ûoedd8;;ëèèØÙÙ%&&Àرc`àÀ ‘HvîÜ9tèÐ~ýú}øá‡÷îÝ#¶’?9˧E"QXX˜¹¹¹™™YXX˜H$:þ¼¥¥%‡Ã€¤¤¤¡C‡644ˆÅâÈÈHkkkSSÓE‹q¹ÜÖ6'‚§§§6ÌÌÌ,$$¤©©I^¡üÞ¹\î_|Á`0¬¬¬BCC`vâÄ GGÇìØ±£s5K*Ê›€8Àß~ûÍÚÚúèÑ£²ƒmy\8ŽÇÅŽýöÛ†††“'O¾pá‚*;P\Ž×¯_gffâJ©¯¯×ÖÖŽ‹‹«¨¨8tèF«¯¯ÏËË“…úñÇÍÌÌRSSËËË/^¼haaA¬âr¹ñññDùôöíÛgÏžýòåK‹5zô興Ç-ZäççWYYinn~ïÞ=ÇwîÜéääÄb±ž={6f̘ÐÐÐÖ6'ĸ»»çææfeeÙÛÛGEEÉ+”Oûøø¸¹¹°X¬áÇGEE´Í™3‡ÃáÄÇÇ@mm­ò:iO½µ“ìììììlåeÚl"=mÚ´ëׯ?yòD–ßò¸âãã---/_¾\]]}õêU{{ûf–PHffæëׯÛ,Öao±Ùl:¾k×.‡#•Jëêê$‰ü :ôèÑ£²òÇŽS.×ÁÁ¡¢¢‚H_½zÕÅÅÇq‡ceeåììL46ŽãÆ KMM%Ò/^¼¥[nNˆa±XDfrr²½½½Bo …B*•*kËÔÔT{{{Ç€¨¡PyyyÊ뤛½ÕfÈ×€|~Ëã>|ø‰'d‘Ož<©Bou¸O466ÎÌÌÌÊʲ²²š4iÒíÛ·)”ÿ)--uqq‘-:;;+X\\Ìd21 Ã0lêÔ©EEE`ddøüùó   ¢XII‰ì†££ãÌ™3•l²Â¯^½R¸ëׯ_K$’Áƒ‹ööö²’Äé–N§·§Nº™6›€ÀÁÁ¡ef³ã*((>|¸líÛo¿­BöŸÏ—J¥gΜa³ÙK–,ñòòb³ÙòlmmŸ>}*[|þü¹ò€ Cvbàp8YYYPZZ3eÊ”µk×Å,,,Š‹‹‰ô“'O¢££•lÄïrss‰ m‰¹¹9•J-,,$ ,--‰´ÂÖÒÚl…?ŒfÇecc#ß@999*ÔÙáÄ0ÌÝÝ=%%…Çã …B:®§§G¬ª¯¯€eË–………¥§§WVV^¾|yóæÍÄÚ7oÞ$$$´LÏš5kݺu%%%,ËÃÃcÿþýR©ÔßßÅŠIII×®]ËÈÈ__ß 6]FpppIIIk›ù+W®ÌÏÏ¿ÿþúõë.\(¯PNŸ7o^HHHQQQvvöÆ}||:Z!ÝO›MÐ~¾úê«ððð+W®ÔÖÖ^¿~=**JcyÇ“““¬¥¥åààžžŽã¸H$?~¼Žãb±xçÎöööúúúãÆ#N$Í:~ù4Ç[¼x±±±±‰‰I```CCþ}ûFŽ) qOKKc2™l6[ „††ZXXôïßþüù§µÍ‰à 666 cÅŠ|>_^¡üÞÙl¶¯¯¯‰‰ “É\½z5ŸÏÇqäÆX yã-¼­&h­ª[—D"Ù½{÷àÁƒû÷ïïáᑞžnjjÚæÞÉËk>òµÙ=t¿·TEFFÆ“'Od‹gÏž%þK)‡¬±<¢7Áb±.\øèÑ£ÆÆÆ¬¬¬M›6¨*¸‚g{:†††K—.U·ŠžAxxxccãŒ3ª««íììüýýUXu½Ð[fffqqqêVÑ3 Ñh[·nݺu+ÁQŸˆ ä-Y o!Èy A Æòšÿî¥ ¡P"J ´Ô+££WÕ#:ÝM\‰¶U…bºÂ¼¥­­aXnn®ºÔt”ŒŒ¼sçòÖ¬yßÉIÍO½¶ù"hûãTWW×ÕÕuxKj/é°¯kÙ®«§›ûf<†aÚÚÚmÃ{ò÷·Î{´|y"•JÙ¾Ý{Á‚±ê–£6ÄiæÆ¢âÌ7[üûHª–F u4BD§qv~ $ihhò7ߤK¥=øwÒikDçýÿ.¹Å#m 1ôto ÄÐÓûçäëóÏcy<¾z%u3ÕÏRææp ¸§Ð0sgu+ú—ží- ÃFŒøçÙ,©Tš•U0uêEEÕêUÕmä_fŸ÷ÏÖK¤b†£žºEýKÏöŒmK§ÿóÏH,–VTp=×ôizÃyK![·Î~ñ¢¼÷]¿»£ÔØNçí¹ý•F‚^ë­aÃúú~Ñ›žŒ(¾Î-»_÷Á×oa=ádÜk½aa8?ü𫺅¨Ä•Û~d4ÐEã†V éµã-‚“'³""Îüúk¨££âk÷=‹7%MTmÌ` šßh'½Ü[R)îåµG__ûôéåêÖÒçèÍ}"P(Øwß͹{7ÿÂ…§m—F¨”^î-9ò-oï÷¢¢Î56öž"z½ß[°aƒW}}SLÌoêÒ·èÞb0 Ö®ýøÀë}çQzM —åeˆÅÒ?ÞõÖ[&G.Q·– ¬—P¨M·Gžz¤èN@£Q¾ùfæ•+Ù¿ý¦² Z»?*»°´c¯¹c–ŸŸO’žÑW¼ãÇñòrÙ´)M(«[K»¨zÖ“Zã¼ÈœŒàÝ0½WòDE}VUÅ‹¿©n!mƒKáÎöR«±†vSŒÉˆß Ó{õ-o1™FÁÁn{ö\­¬|£n-mð÷ùvì«fùãÆÛ½{7°Ùl … ‰ÄØØøâÅ‹D™+W®ØÛÛÿý÷DÎ… F¥§§Çd2‰iÉäç–"‹N~<ºÇÒÔ$úàƒèåËÿ§n!ÊàsEÿs}úÇ¥-WmÙ²eúôé8ާ§§Ž=Çñèèè444à8Ÿ|ò ÇKII€šš§¥¥åïïÿêÕ«ãÇ@UUU7|)½Ïy Çñ_}Æd®º{7_ÝBZåÎö—ÇÝYÂqËU<000 …kÖ¬Y¿~=Nçp8;wîôôô$ À7p—H$——×ÔÔ”““S__/‘HnÞ¼Idvƒ·úVŸHàî>ÜÍÍqƱ˜ÜïTu1_ZœÉ}'ˆI×Sð•¶Q£Féëëß¿ÿÖ­[Ÿ~úé¨Q£nݺ•™™9}útYbþ"ÙÔ=ZZZ¹¹¹ï¼óÎÑ£G»å  ïõ‰EEÕ66¡GŽü®n!ŠiªK%­®]¼xqxx¸¡¡¡P(Œˆˆ600(..&ÖB‹‰UµµµÓÓÓ¥R)ŸÏtÞ"[[Æ—_NÚ¾ý—ÚZU~NRUhéS±Ö[ÆÓÓóÀcÆŒ¡ÓénnnGµ±±±±±i­|SS“P(ÔÒÒâóù‘‘‘ û.¡j¿¦ÙŒ>ê-Xµjª®.}ûö_Ô-¤ÃL:U Lš4 >øà¡P(ß!¶ÄÈÈè‡~ðññqpp°µµ?¾‡‡‡­­íøñã™Lkë+÷|’–öhÅŠã«F²V·–^HŸöÌž#JΟQå¼èË}"Atôì§O_ž=û@ÝBÔ Ö ] Û×½åàÀôõý`ëÖ O FUÏêÊÕöèbkôº¶¯{ ÂçI¥øž=j{H"Ä37ÿùS™ºòôï¯÷õמ ·rr*Ô"àé±ÊÆÑØÕ½ê“;€¼E°`ÁØ#¬"#Ïuÿ®ëÊ…O¼vùb ¾yÏx3¬ý oP(Ø–-3ïÜÉûåV7ïúϽeúé#ýHyHK½ oýÃ;ïØÎ™óîæÍiÝù:PùƒºÂkœ1«¬(ô^xyë_6nôª¯ÄÆvÓ÷Q¥büîöRëñým&öïž=v3È[ÿbjÚoõê÷ï¿þò%¹dðkE:6¦× áeôõëòÍ ^²±a>ì¯n-=tÞú4å›of\¾üìúõukéñ ó–ŽääTdf†·ü´8¢ý ó–¶l™ùúõ›C‡n«[HÏyKFAA“wïþõõkMH“AÞRLp°Û€½øCâÝò–b´µiQQŸ¥¤yÒùÙª ¥ï÷Ú[‡ AÞj›Y³Þyÿ}»Í›Ïuî·X}²jô—LÝ}ë*?òVÛ`¶eËÌÇKRSvbsšeØg&Ns5}j'•ƒî'¶—ˆˆ3—.=»}{½¡¡Žºµô Ðy«½DDL—H¤?ýtUÝBz È[íÅÈH/<Ü3>þf~~•ºµô PŸØzè‡ÄÕ©_`R‚­­­º½3Ðéf4Zï¿°Öõ&VÛ¿ââââÕ«W7N]­ñã?w=Ž:¯¸Œ;ÖÛÛ[ 9sæŒJâ ±<‚,·d¼… ä-Yô]oåçç«ð;”d|w¯=¨ö(TKߺ3O*wïÞ4hP7쨰°ðý÷߯©©##£¯¿þºvÚ ·T†©©)¹S/ý?òSˆ1 bî' D£ûD Ã>ìèèhjjºmÛ¶ÄÄÄAƒõïßÓ¦M²dÉ?÷^êëëõôô?~ ÎÎÎ:::vvv‰‰‰ •Jcbbûõë7nܸÌÌLù~„èVÒÓÓ‡ fffÒÔÔ¤0þÛµ§?:þ¼¥¥%‡Ã€¤¤¤¡C‡644ˆÅâÈÈHkkkSSÓE‹q¹\¢°H$ 377733 ‰D eÈO!&¯Ëå~ñÅ ÃÊÊ*44T uxâÄ GGÇìØ±CE-Ó>º~i¿s@rrr›eæÏŸÏãñ`îܹ<ïàÁƒPSSsóæM‘H„ãøñãÇœœ¤Ri}}½¶¶v\\\EEÅ¡C‡h4Z}}ýÁƒÍÌÌRSSËËË/^¼hee²IGˆ„»»{nnnVV–½½}TT”ÂLǹ\n|| Ož<©û/ĪE‹ùùùUVVš››ß»wÇñ;w:99±X¬gÏž3&44”(¹}ûöÙ³g¿|ù’Åb=:""B‰6bù´››[AA‹Å>|8!æÌ™Ãápâãã ¶¶¶Í¦ñööööönS¶Ú|]ÑÉ·Ï[=Âq\(6Kçåå‰ÅâþöÛo8Ž{zznÛ¶ Çq6›M§ÓwíÚÅáp¤Ri]]D"qrr:zô¨,ì±cÇZz‹Åbk“““íííf*—ÚÚï–ÃáXYY9;;ãø°aÃRSS‰ô‹/di‡ŠŠ "}õêU%ÚˆYZ(R©Ôììl"?55• ™™™òõ¦¼ÎqÕyK£ûDèׯÐéôfi R©³fÍJMM­©©¹víšgfffeeYYYMš4éöíÛ ¥°°ÐÅÅEÓÙٹ历 B$^½z¥$³5Z6‘oddøüùó   "§¤¤DÙÑÑqæÌ™Dº¸¸˜Édÿ1§NZTTÔ~¯_¿–H$ƒ&íííe%‰iÉdõÖmhº·”ãíí––vúôéñãÇ=ŸÏ—J¥gΜa³ÙK–,ñòòb³Ù–––OŸ>•mõüù󖡈äææÑZfG)--‰‰™2eÊÚµk‰ ÙÍà'OžDGGiƒ!3(‡ÃÉÊÊj¿ sss*•ZXXH,XZþóê‡l²»n¦g{k„ b±xË–-¾¾¾D†aîîî)))<O(Òét===ÿ°°°ôôôÊÊÊË—/GDD´ µråÊüüüû÷ï¯_¿~áÂ…­e¾yó†ü5K@uuuå©Têïï¿bÅŠ¤¤¤k×®edd€¯¯ï† ²³³³³³ƒƒƒKJJˆ³fÍZ·n]II ‹ÅòððØ¿¿mͦ£ÓéóæÍ )**ÊÎÎÞ¸q#q"W']ïV;´o¼Õl*À–éeË–éêêòx<ÙVÉÉɃÖÒÒrppHOOÇq\(nÙ²eРAãÆ;yò$´o%$$ØØØ0Œ+Vðù|…™øÇÎòéÖêvß¾}#GŽ …8ާ¥¥1™L6›-BCC-,,ú÷ï?þ|‡Cáñx‹/666611 lhhP(C$?ÞÀÀ ™6›íëëkbbÂd2W¯^Mn­Þ”Ð'Æòíaýúõ ,èÐ&ͦ¥T8Ke7L]ÙÔ"CUÞêÁ×NAyyùáÇ“’’Ô­¡€<ÞºwïÞ»ï¾ëïïÿÑGu%Ž¡¡áÒ¥KÛ“ÙýhˆŒÎ¡¶w10 KNNž;w®ZöŽPÑ(§OŸîbœ|ÞBh8È[²@ÞBò‚,Ô9–1b„¹yo˜Û Ç1@WW·QÝBTógÏ&NœØõ±¼Ú®o­Y³¦´´T]{W-ååEEýß{¯RKK¢n-*`âĉ*ùÿ޾¡ÜÜvæä”oÜèµ|ùdukÑ Ðx««×ää”ÀÙ³ùò[/y««¤¤< Ó)ð×_åÿ]©n9òVW9uêO‘H 4õüùÇê–£A ou «´¬ŒC¤ÅbÉéÓ÷ÑøUòV—8wîN•-–•qž<é%~»òVç‘H¤gÎ<‰þ½î@£QÏ{¤FIòVçùóÏ¢ÚÚÿ¿éúõœnÖ£ ou’k×rÄbÅw¦q·Ý«î4YYÕÕuDúÁƒâøø›úÉÖ:;¿ecÓû?C¯œü™z;v°,ãÓËËEIù>êd¼… ä-Y o!Èy AÈ[²@ÞBò‚,·d¼… ä-Y o!Èy AÈ[²@ÞBò‚,·d¼… ä-Y o!Èy AÈ[²@ÞBò‚,·d¼… ä-Y o!Èy AÈ[²@ÞBò‚,·d¼… ä-Ytõ[ºgÏž=xð ªÔôPêê Ëʬ^¨[ˆšÑÑÑÙ¿¿µµ5±ØÕoéž>}úéÓ§NNN]ÖƒÑÕeÛÛ³Å}~º‚ .øúúªÌ[àääÙõ8ˆžÎ7äÑx AÈ[²@ÞBò‚,zÜ+eee .ÌÌÌTI4WWWYÚÀÀàÝwß]¹r¥‘‘Q‡”ÈÑÓÓsvv a2™*Qصµµ±±±ÙÙÙoÞ¼±±±ñññ™0a©{T:o) &&&%%åìÙ³»víª®®þé§ŸºdïÞ½8ŽGGG«\§<</ @[[;222..nòäÉß~ûíýû÷»¹¢¢â³Ï>ëĆ½á¼¥rŒŒŒ &&&ëׯïbÐÐPooïÆÆF===kýŽ92jÔ¨°°0bÑÆÆ†Íf'''¿÷Þ{]Œ,•Jy<^'6ì¦ó–««ë¥K—üüüf̘qòäÉ+W®ÌŸ?úô釀}ûöíØ±ƒ(Éçó=<<òòòàîÝ»K–,qww_°`Á•+WÇñ´´4???OOϯ¾úêñãÇò½OYY™««ë;w|}}gΜ¹oß>‘H¤0SVX~C…Ê©Tª±±1‘þã?¾üòKÙ³gŸ}:""ÂÒÒ²µJ*°¾¾žÍfË.ˆèêêš™™é½{÷VWWÇÅÅmß¾ýþýûIIIJZê÷ßß¿ÿÒ¥K|8Fc±XpíÚ5www ÃD"Žã|>_KKËÃÃ###C[[;%%eÙ²e&L0113fL@@@ËYYY9::\½zµµL}}ýéÓ§kåÓàéé9}úôE‹åææº¹¹€––Ö¡C‡BBBLLLˆ6khh8þ¼¼žÀÀÀ–Aüüüx<Þ¦M›Z B” 5j”¡¡ak”T qSÃ0…5/‹¯_¿¾bÅ &“igg·xñbYµ(dÆŒü1t®7$è¾ñ1Ô ÑhÍÒ@¡P&L˜pëÖ-;;»‡®]»úõë·{÷î³gÏ9rdèС ,3fLEE…½½½,¦]ËYYY kkëêêj%™­qüøqKKKhjj:{öìš5kN:E£Ñ^½zµk×.>Ÿ?dÈ¢duuukzdAäQD&Ly%د_?ccã’’ù»ýõמ={öîÝËãñ¤R©……‘oiiÙ¬š=¯À`0äƒwMùŸøÑGݾ}ûÆ#FŒ055€¦¦&©T•‘‘áéé¹~ýúºº:ƒQPP Ûª¸¸¸e¨W¯^‰ÒÒR%™m¢­­=}úôªª*.—ÛÔÔõùçŸÿüóÏ«V­" 8°M=ò( B@´¥’ÊùðÓ““å]rõêU±X¬­­mllL¡P***ˆüòòrÂ=ðÿCÀššùP­ÿ:ЦxËÙÙY"‘;vŒ8ç†aaaa·nÝjhh‰D4M[[{Ú´i±±±wîÜa³ÙþùçÏ?ÿÜ2TLLLYYÙ_ý%*)Ìlhh¸xñ"±V> \.—Íf³Ù쪪ª¤¤$333###‘H$‹i4šP(ýî»ïž?^XXxìØ±ÔÔTbÌ@£Ñ\]]úé§ŠŠŠ¢¢¢C‡M™2ÅÀÀ®\¹ÒØØØž±ŸÏo y4å…B™8q⯿þ:qâD"GKA¦¾«IDATKkݺu¬ªª²°°ˆŒŒÔÒÒš7ožD"Ù¿?—˵³³[ºtéÖ­[›…š2eÊÚµk›››qþo– \.w×®]Ä0K> ÁÁÁDðAƒEEEaf``´uëV]]Ý ¸¹¹…‡‡§¤¤ˆD¢ØØØÚÚÚÁƒoÚ´‰øWÕ ƒÄÄÄ(/––Öfýüóϱ±±‘‘‘|>ßÚÚ:::zìØ±ÄÚ•+WÆÄÄ,[¶ŒN§Ož<ÙÇÇGKKkÉ’%8~üøW_}uûöíÖ"8pĈ³gÏþå—_Ú”!OWŸ œ;wnuuµJž±IHH¨¬¬Ü¸qcû7ivE^ázÕ^µG(ÁÕÕ599yîܹĢFô‰B¡°¢¢âÒ¥KŸ|ò‰ºµ T†Fx+''géÒ¥Ó¦MsqqéJ}}}//¯öd"º ê=Mì½ä-Y o!Èy A*¸vZ^^~áÂ…®ÇAô6ð®±fÍuBS R©¿ÿþ»Ì]½@´o!Èy AÈ[²@ÞBÅÿõÄ'$• IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Connection__inherit__graph.png0000644000372000001440000003421112502417165031302 0ustar robertousers‰PNG  IHDRˆ¨ìˆòbKGDÿÿÿ ½§“ IDATxœíÝg@×Úà³ K¯Ò‹¥ªQ‰ `d-¹KPQÑĆFƒ×\P°aÁ *”± Å ¡(¢ˆ ¢HQY`Y¶Í÷ãÜ»ßÊî¢ ,ð>¿†³3sÎ ïÎ9óÎ! ȽÝü?Ì€À HÌ€‘íí@ÿñêÕ«µk×¶¶¶övC@o²¶¶>|øð'oN‚§²@R.\¸0þ|OOÏÞnè5¯_¿ÎÎÎþœØ wÌ a.\èí&€^ƒ¿œ}Î`Œ"˜)"˜)ú•’’‰$‘]?ž$L^^B¨ªªjáÂ…fff***ŽŽŽ—/_æmÈ¿²ººú¿þõ¯²²2Þ§lØó$xº$3á¾ùæ›êêêêêêÌÌL„PõÿØÚÚÖÕÕ988())ÅÅÅ=xð`Á‚^^^·oßæm›™™Y]]]UU•ššÊår/^ŒË;ݰ”––jkkãe M›6õdí‚t)Â)*****"„ BH__Ÿ÷QPP»»{tt4þÑÆÆ¦¦¦&<<|Ê”)¸DGG¯o``ellL§ÓÕÔÔ:ݰp¹Üºº:¼¬­­½oß¾«ZpÇ =D"|¸®®®¯¯o[[›ÐBôq®8½»—.]Z¿~=IPPЉ'„®,##ƒb³ÙnØÐÐðÝwßikkûùùáw¨‘H¤3gÎX[[4hÿþý¼s(XÈb±üýýõôôtuuýýýY,›Í 211ÑÑÑY²dICCBhüøñèß3øVüÚ»@BâââÄù¿Šòòò¢ÓéøÆqÞ¼yt:ýøñã¡÷ïß§¦¦jii±X,‚ bccmmm¹\.ƒÁ——ŒŒ¬®®>qℬ¬,ƒÁ8~ü¸®®n|||UUÕ7ŒBÅÅŸ xJ¥egg[XXìØ±Ch!A QQQ¸yüËoŸX}}=BˆF£up€yyyMMMt:½¤¤dΜ9cÆŒgÃE‹}õÕW/_¾ÌÏÏ·³³ÃmC}ûí·õõõQQQ¡ºº:Q…¡¡¡sçÎ}õêU~~þèÑ£ÂÂÂlmmóóóŸ>}:nÜ8??¿v‡Ã¿,~íóèfñó£G‚`2™í–‹‹‹Ùl¶¾¾~rr2AÓ§Oß·oA4B¡„‡‡×××s¹Ü¦¦&‡ckkûûï¿óv{êÔ)ÁÀœŸŸÏk›………ÐÂNÜ.0Óh4„P}}}ÈC¡P\]]‹‹‹;ÝÉdÊÈÈàãããqÛB)))ü§HT¡••Uuu5Þ<11qÔ¨QÇÇ%Ïž=ÃËBs—jïÀçfèÊ€^ ªªŠ¢P(í–B222sæÌ‰ÿþ}RRÒ¢E‹Bššš)))ÙÙÙÆÆÆ®®®éééd2¹´´tÔ¨Q¼}Ž1B°"KKK¼`eeUYYÙA¡ø455õôôž={Æ_˜““ãèèøáÃü#/€1™Ì{÷îYXXtºamm-‡Ã:t(.·°°àµÍÐÐÿ‰*,//700ÀOƒ{xx”••UTTðÖÚÚzöìÙ¢ª«µwÌ u<==/_¾|áÂgggÜAÝÒÒÂår/^¼H£Ñ–/_>cÆ fddôäÉÞV………‚»Âw„¡¢¢"`DvÉÌ™38@ðÝÇÆÆ²X,%%¥OÞPOOOFF¦´´—¿|ùÒÈÈ/“ÉB¢•`¡¶¶6ï A}}}vv¶¡¡ayy9þ4///$$DTúZ{÷À RÇÅÅ…ÍfïÚµËÛÛ—H$*•zéÒ%:Îd2)Š’’Ò²eËüýýjjjnݺ ¸«õë×—””ääälÞ¼™—³$XØØØÈ{RšY”ÔÔTooïÌÌÌüüü;w>|¸ƒ°'Ά eþüù¾¾¾eee[·nŽâ›3gN```EEE~~þÔ©S9âíí½eË–‚‚‚‚‚‚uëÖUTTðVÆšó|~íó9ýàø‰?ÆÌ»±µ¼zõjEEE:οó¡C‡ÊÉÉYYY%$$Ád2wíÚenn®¢¢âäätöìY$0Æmjjª­­ýã?¶´´-$D?%ª„ ˆòòòo¿ýÖÐÐPUUuìØ±W¯^z€‚:ØF£y{{kiilذ·Mè)ZH§Ó¿ÿþ{MMM--­U«V577·¶¶úùùª««{yyáám‹åì쬢¢ÒîÐį½Ÿ?Æ ó1€Äà)ÿ$òuË–-ååågΜ“’’KKK^íí~ì HÐç_ð‚.­­­UUU'OžKO/zð ´¶–ÃÆ@|˜@2Œ¶””ç0l >føtl67+«„ØxĈÁ8;8˜ª¨È÷vAߺìŸj’’ ÓÒŠ?®`0ÚôôÔ=à1c6Ò3``i7l,#C?~( éÐÿu0lýï°ñÇå--L)6ŽŸ;wno·ôa²²²,«£z¬)€ˆÉdïÞ}íäÉt2q¹„¬¬Ì½{ÿ´ Ì••õ÷î½h7l¼x±Ó¸qCuuU{«å¢°Ùl„ÜÒ€OsáÂ…ùóçw¼f@wÉϽvíi|£Ìá „›ÍIN.D"†7mšÃÆ@`H‹ÅÙ¿ÿfdä]„H—ÿ£ÚZúŒ‡ *™LŽ••ÁÔ©ö..ÃÆª¤$×[­@ª@`HسgU?üpº¤¤–Ë%jß募Ûúùg/ggK©ë© ×A`H ‡ÃŒLÙ¿ÿ&A .Wø(,A ]]µÙ³G÷pÛè+àMuÉxó¦~Þ¼c{ö\g±8l6GÔj÷ï¿‹D…m Ž’’‰$©½‘H¤’’’ŽKºT;‰™™Ù’%KÞ½{'©ÖŠß ƒáççgnn®¨¨hiiÔÕ$7Éžgñ}tÇœ‘‘1iÒ$&“Ùóíýƒ¹¹yiiio·âÿmܸ1,,¬·[1Pèè,••ÕDˆ@*ˈZ³©©UAAŸÅz+ôS33³²²²îi# M›6u¼Nff¦¹¹9‡Ã)**:tèÐèÑ£Ÿ>}ª¡¡Ñ“ÍøñÇ+**.]º4xðàçÏŸûúúÒh´_ýU‚mà)--;vìû÷ï%²·ó›7o˜Læ… $²k0Ðdeep?|@mm\&“à~ôúæ›å¶¶BžözöìÙÅ‹{¨Åà“hkkïÛ·¯ãutttôõõBFFFnnnnnnܹsgO6ãÊ•+·nÝ=z4nÏáǽ½½»)0s¹Üºº:IíMÈ3üŸF:3;uuuÝÜÜz»µµq fS³©‰ùáËÖV[E¥??†M"‘Nœ8öþýûÿüç?FFFÛ·o§Ñh¾¾¾»wïöõõmnn>qâBˆÁ`èêêfdd888\»vmË–-EEE†††;wîôööær¹G=räHee¥Ýž={&MšT\\Œk)))±´´¼råÊÆëëë,XöúõkÁByyy¼2þ;å_îô@bccƒƒƒkkk6nÜÈÛöêÕ«kÖ¬)((ÐÔÔóÊA0Æ èòò2ZZŠffêöö:ãÆö兀%%%=xð`ß¾}ׯ_ÏÏÏ ®««ûöÛoð»J† 2jÔ¨ææfOOϵk×–——oݺuÙ²eÍÍÍÑÑÑ»wïÞ³gOQQѶmÛ–,Y"XÑÑ£G¯_¿~íÚµ›7oòn" utt¢¢¢ð§ü˺råJVVÖþýû7mÚD£Ñxå3gΜxðàæÍ›·oß íôt555Í;wôèÑÅÅÅááႃւŒŠŠJNN622¢R©ááἨ,´ ¿üòË¥K—nܸ‘’’RTTÂ[™ ˆ7&'''''kkk#„l``0xð`„Pccc§¤R©©©©...§N:tèÙ³gEµ²···³³‹‰‰ùòË/y{‹‹ÃwÞ¡˜˜˜ˆˆˆÁƒÛÛÛ‡††ÞºuKÌ3)&ÌÐ-TUUB ¥Ý2BHFFfΜ9ñññïß¿OJJZ´hBHSS3%%%;;ÛØØØÕÕ5==L&—––Ž5Š·Ï#FVdii‰¬¬¬*++;(…¿O[°ÛÐпñü444V­ZUXX¸fÍšö_\\%%—hkkAD}}=îÇ– © ÌÏknnö÷÷9r¤ªªª££ãž={ðï¦ÇZ¿’0Ÿ_E—ÚzØ›7o:žâ­«êêꂃƒ,X0mÚ´Õ«W§§§Kpç]%ñ£8\\\Ølö®]»¼½½q ‰D¢R©—.]¢ÓéL&“B¡())-[¶Ìßß?!!¡¦¦æÖ­[‚»Z¿~}IIINNÎæÍ›/^,ª°±±1::Ê¿üÝwßýøãׯ_/++KNN^¼xñ’%Käå;ŸË‹Ëå.[¶ìÇíɪ% ÷fÓétÞ$’ §NÚ´i“‘‘ÑÏ?ÿ§  àçç·nݺ 6XZZîÚµkÿþý‚»Z´hÑäÉ“§OŸ>uêÔÀÀ@Q…ïÞ½[¹r%þ”yÛ¶m>>>~~~666«V­š>}º˜9EG}÷îݦM›455;æããS__?úòË/ Œ½½½UTTrssÕÕÕñG†††ŽŽŽT*•J¥òÜ ,Z´ÈÊÊÊÌÌÌËËkêÔ©nuâĉ… nÞ¼ÙÎÎnÑ¢E®®®{÷îÕ†ÀÀ@*•:eÊgggÁóŒ¿áÇ肃ƒUUU&Mš4räÈÐÐP333gggqÎ[§>šOGÕ»I/â?Ä/ÿû÷理¤ÈÈü÷]ÍÍÍvvv[¶lúàƒdkÜ'‰D*..¶°°àþÅ©·gtpý<}ZyåÊ£ rêêŠ ‡ÃݺuæêÕnÝݤyóæ½{÷Åî-oÞ¼Y¼x1¯ì3:t¨±±qûöí¼’ÈÈÈ’’’ððp‰ì_’=¢vîÝ»·sçN¡WÑ“'¯¯\ytñbÖ,++Ãårw|ùÄîhF$ørË–-ååågΜ“v×BÿÌ{þoˆOœëçSî˜I$ÒÉ“'­­­uttöíÛwúôisssuuõmÛ¶!„|}}—/_Ž×d0JJJ?F]»vmĈ C† 9}ú4BˆËåFDDX[[«ªª:99¥¤¤ðw·âÞׄ„„áÇëêêúúú¶µµ -DwÕò/ÇÆÆnß¾•BÊÊÊþþþ±±±BwÅËEk·Ÿ†††ï¾ûN[[ÛØØØÏÏ÷fH¤3gÎX[[4ˆ÷õêúõëJJJæàó\½zÕÈÈÙ†D¤ŠÊ«L¡ëŽcú+ëèšàSVöîÀ[_~¹gÖ¬_OŸÎ|÷® !Äb‰|y²4ÈÍÍ=vìØªU«¢¢¢²²²Nœ8±fÍšÓ§OÓétWW׌Œ <ü‘‘‘a```aaÑÚÚºcÇŽY³f?ÞÛÛ{ÿþý­­­7nÜøã?V¬Xqúôé%K–ðúÍø]¹reïÞ½{öì¹ÿ>NÞZ¨¡¡áçç‡?å-3 fbb¿CEEE]]]¼|èСwïÞEFF†††æääœ;w—ÿý÷ßGŽñññ9~ü8opN°ðÏ?ÿ¬®®>~üø=zó矦¥¥íÝ»÷àÁƒ¯_¿Æ™-øé›øøøv‡Ö¥Ú;UZН¢|ñ¾Õ‰¹¹”»ÿþ˜1c–-[ö™o¿QSSóññ§ô!Ÿ8»/álÅŠ¼„3<ÀÀËÏ›4i’¨ü¼yóæñçç!„ BBBp ?œŠ‡ Ù²e ~L ]aPPP—òóÈd2oŒYèþÛÁIoOž<2dBh×®]7nĽ£¼Ì¹•+Wâÿ˜Ož<>>‘‘‘mmm+W®ÄW˦M›^½z%êvµvQ))Ù}ýõÁ¼¼W$™Ëå"ÑWÑÇåòòBrxºÕǵ22jŸ¹WW×v Áb²°°àïÕÕÕŒŒl·ŽÐBЇ|b`'?oĈIIIÇGÿËÏûå—_‚‚‚F8mÚ´îÎÏÓÐÐÐ××ÏËËÃÿûxòòò¾øâ ñwÕAâ]»Ì9œl·råJƒáàà to¢Æ˜q:àÎ;qI»¼:kkk¼ŒSèxò©ì±ý• Ý'OCSMÍ=7·‚DB8*wàÞ½—.uû#KzzJb¾6_II !$++Ûn!D&“]\\ÒÒÒ† ’››‹ÓBTUU<øçŸÆÄÄ 6láÂ…ãÆ«®®æÿåâxÖÀ!^‡ŠÐBAªªªššš¶¶¶¼Â/^üòË/‡¢Óé\.——cddÄÛ~ wD¢ kjjøûÉ•••Y,¯m¦¦¦¦¦¦¢ÚV__ߥÚEij⪩¹?~ü !DÜÖ$”ð8!á±8»•, E§ç+G·ÌÇìéé¹hÑ"Áü<&“yîܹ3f¼}ûçç9o%*?ß2¶ËÏ,jÑ¢E»vírwwçø+44týúõâôfccƒ>N¼k—9‡“í.\¸0cÆŒ¶¶¶˜˜1ÎÖñ§â]œWggg‡ÊËË»qãÆ–-[BÚÚÚ)))8àîún:Á_Ù Aƒ:8MMùÚÚ¨¸¸ô«WóRS_"BÔì~k×Nꩇ¿$°77·àà`333{{{„P[[—Ëݱc›ÍNNNÞ¼yó•+W´µµ_¾|ÉûÞÃK‹äWYY‰öëׯy/Z(Ô„ âââvîÜÉ»oNLLd³Ùòòòšššd2¹ºº‡Ïªª*ÞcùBo² ÕÕÕ<ˆ/ ÜmPSScnnŽ*))ÉÎÎæeã´ÓÕÚEQS#×Öþ†¯¢{÷žã›C¡W‰„vïžÝKýÒÕJ\UU•ŸŸ_ffæû÷ï­­­7oÞÌÿJO«µÓ-OOHO~ÞöíÛß¾}ûÕW_ݺu«¸¸øòåËãÆ322⽤FèþÛ墉Ÿx'N²Nïã‡D¤ŠÊ«•B'Ùcú+º&?‚hóôt<}ze~,»"o2IDATþî½{¿5Ê„D"ÉÊŠœþ¯¯1b‡Ã9uê•JÅ%$Éßß?--­¹¹™ÅbÉÊÊÊËËO›6íØ±c4íÁƒ¿ýö›à®"""Þ¼yóâÅ‹èèhQ…ÍÍÍ7nÜÀŸò//_¾üÉ“'{öì),,,--=uêT||<»‘••uww?|øpuuuYYÙ‰'ÚõuÊÅÅ%**ª¶¶¶´´tãÆW®\¡R©ÑÑÑeeeeee‡ª­­å­ÜÒÒ¿íç×ÎÃíÛç9r$¾Šúð£^Ò¦®®?£÷àÁƒ xyyݾ}»'Û …ùœÒ£[î˜qoö©S§óó^¿~=dÈ^~›ÍÞ°aûwïìíí÷ïß¿páÂv»Â©xÍÍÍ^^^¸ßµ]!ú_Nþ÷Ä¿¬¦¦–››äïï_ZZjnnîååõÓO?ñrçÛíJVV碵 ¨ëׯwtt”““[°`¨Ä;^²²²r`` N¶ËÈÈà_‡ÿ¬A¼t@ …‚Ó›››§L™ÒÜÜ<}útÞƒÁÁÁÁëׯwpp “ÉsçÎ ­ªª’ø±ý• ]SÄ©PZ¼Øiñb§ªª†¿þÊ?{6ûÅ‹j E?¼C}ìm'd2yâĉ·oßž8ñ¿÷grrrÇûö­¡¡aPPœœÜüùó9Α#G† âããÜnW¸S¤µµõ«¯¾Z´hîïmWˆjhhÇCËüË¿ýöÛ±cÇ‚‚‚ZZZLLLBBBðø¡õë×GDD¬^½šB¡Lš4IœW7ð[¾|yDDÄÊ•+I$Òĉ}||Èdrkk«¿¿kkëøñãñ#EúúúööösçÎý믿ø7ÿÌÚij*ã«èÍ›ú›7Ÿž9“õÏ?5²²2lv?y¬·¹»»ón`llljjjÂÃçL™ÒcmàŸ'Qœy$”îÊc–þü¼þÔy"%ÇÒñõóøñ«+WÅÇçÖÕ1"mßÞÇò˜£££kjj¶nÝ*þ&íò}…¦ÿvkNp_ÔA3A½ºråÑå˹4Z3B¤Ý»ûvso100ˆwrrâ•ð?ð/jZFÁy… N‰H"‘gTÔÖÖ®««ÓÓÓ«©©áÿ&~í}”8×äï˜[[[«ªªNž<ÉK–!äà`âà`²}û̬¬’7ò]\,{»Eâb2™uuu7oÞÄ™ú ·H¤/¾0ýâ Ó;¾ÉÈ(þë¯ü/¿ì3W‘ôÀ¦XYYñª¨¨¨¨¨àåuëÖÕÔÔñä§ dæqãÆ-X°€7ó]¢©©)mßê<=={» ýÙëת4š˜ó,††òBfõ4kÖ¬Ïi}ÝGÙÔÔÞ úOOOˆÍÝ*-íŸ~8M§·vüšL‰|áÂÏâMõÀÀ>ÝĉÃïÝ pv¶ “;zÿ¹…….DeÄðY´µUΜñÙ±c–¬¬ŒÐ™Ä(Yù»wŸ·µ±{¾yô9ðT6às‘H¤+&Ž7dåʘªª6›Ëÿ)‹Åf0Z½½£)..Ã&O¶™<ÙFOO½·Z €”ƒ;f€dØÛß»àí=D"ñ¿ŠY]]1%% °0øàA/UU…ààë;œœ‚·m»œž^„gðÀ3@b(!!s&L°ø÷¿Ï¶¶²Ùlެ,ÙÃÖL&ih(͘1jÆŒQ·°ðMbbabâ³'ÒÔÕ•&Næâ2lÊ;ÕÞ>qýöÛo½ÝÐ'åæævºi $kzXYÙ;ŸS/^Ts¹DDÄâY³F ]íÕ«º´´¢ÄÄÂÔÔ8®­­‘‡‡‡‡íˆƒ{¸ÁâËÈÈpuu…´RðÉLLL***:X3 [°XœÐпbc³îßߪ®®ÔñÊ--Ì¿ÿ.Ʒѵµƒruîáaëê:\N:öÀÀ E¸\¢  2=½è·Ë(ÎΖ¶“'ÛèëÃób`@€À Rïß3RRž'%=KIyÎ`´ ¦ïáaëáaãèhÎÿpý f€´kkc?xPzçNá­[Oß¼©×ÒRqw·òð°uw·VQ‰1@ЗTTÔ%&&&fe•ÈÈÇŽâáa;m𽑑fo7 É€À è“êë›ñóbwîÒé-¦¦Z“'ÛR©¶ãÇ¥P„¼€ €¾3 oãp¸¹¹å‰‰Ï ‹Šj45•-'O¶™2ÅNMM±·[@—A`ôuééE‰‰…÷î½àr‰Ñ£M©T[—aÒœ @;˜ýЇÌŒ œ]X[K75ÕrqæáaëæfÝ@ÊA`ôg81¿ºäéÓJEEÊ„ –¶¶zzj½Ý:„€À (*+ëïÝ{‘ž^t÷îó–¦1~¨½½1$Fé0à´¶²rrÊîÜ)üë¯üêêUüÐI“¬••!1ô2Ì€íŸj’’ ïÜ)ÌÍ-—““ut4÷ð°>}„¡¡Fo7 P˜!„êêwï>OJzvïÞ‹¦¦VÞ@ÇŒ1'“¡£ôÌð6›ûèQybâ³Û·Ÿ–”¼4Hyœm¯¦¦ÐÛ­ýf‰÷Ðìì—A88˜R©¶Tª¥¥^o7 ô[˜ s ð«KŸ56~€7€‚Ãá¾Á:?ÿµººÒĉÃ\\†Q©vººª½Ý:Ð@`€OôêU]ZZQbbajê?×ÖÖ'FÃ@Áç€À Ÿ«¥…‰§ºJL|V[Û8xð œíê:\NN¶·[úÌ I¼Äè‡Ë(ÎΖ¶“'Ûèë«÷vÓ@ߺÅû÷Œ””çIIÏRRž3m¼ÄhGGsx(èfè^mmìJïÜ)¼uëé›7õZZ*îîVxª+UUHŒíA`€Âåyy¯’’ž%%¼QV–wu>y²ÍW_ÙèèÀÝà¿ 0@'ÌÍÍËËË%»O2YANn°‚Âyù!>ä55eIvÿ ¯ð÷÷ß¿? fè‰DÚ°aƒ““SwìœÅâ²Ù\EExx{ úùçŸ|áÂþB¸ sãÇ÷ôôìíV€þæâÅ‹‚…äžoDÀ HÌ€À HÌ íJJJ$õ²°µk׎7Ž÷chh(‰Dzùò%þñõë×$)%%¥K5J°y‰DòôôäO’x‚xUø¨««ÿë_ÿ*++ë™6`˜`qss{üøqKK þ1))‰L&'&&â³²²ää䯝¡¡±iÓ¦Þk&úóÏ?ãââz«öÌÌÌêêꪪªÔÔT.—»xñb„PÌ0€Lœ8‘Åbåææ"„ZZZÒÓÓ—.]Ê ÌÙÙÙcÇŽUTTÔÖÖÞ·o_/¶ÓÇÇgíÚµ555½R»ŽŽŽ¾¾¾Á¨Q£¢¢¢233étzÌ $éäÉ“ÖÖÖ:::ûöí;}ú´¹¹¹ººú¶mÛB¾¾¾Ë—/Çk2 %%¥Ç#„®]»6bÄ…!C†œ>}!Äår#""¬­­UUUœœRRRø»OqojBBÂðáÃuuu}}}ÛÚÚ„¢»^yËzzzÖÖÖYYY¡ŒŒŒÁƒ¯Zµ*99™Íf#„²²²\]]ÛmK"‘Μ9cmm=hÐ üŽ*‡6lØ0UUÕ &Ü¿¯ÙÐÐðÝwßikkûùùµ¶¶:99}ú¾}û‚ Ñh %<<¼¾¾žËå655q8[[Ûßÿ·ÛS§N æüü|üi\\œ………Кzþüy]]].—;zôè‹/1wîÜ;wfeeÉÈÈ4559%%…ÿp† &ØH&“)##SPP€ ããã-,,>|¨¢¢Âd2úé§Í›7S(”úúú°°°éÓ§‹:Äÿ3A‡RSS{õê¯=mmmÏŸ?g0'55•·fÇçŸ ++«êêjܶÄÄÄQ£F = âãt …âêêŠ÷ÐñoAh_3„ˆÀ ]Ù ªªª! …Òn!$##3gΜøøø÷ïß'%%-Z´!¤©©™’’’mllìêêšžžN&“KKKGÅÛçˆ#+²´´Ä VVV••• åêêúöíÛœœœ'Ož¸»»#„¨TjbbbVVÖ˜1cTTT7Áw“¼Ãyýúµ`#kkk9ÎСCq¡……Eee¥ƒƒƒ²²rNNNZZÚÌ™3ÒÒÒRRR¾þúkQg€¿ÞuëÖ988¬X±‚/åääŠŠŠ¦NúÅ_üþûïbž„Pyy¹~ÖÚÃ㬬LèQ`8ãÐ~ïÞ= Ás"x«ù;èfè žžž—/_¾pႳ³3î niiár¹/^¤ÑhË—/Ÿ1cF322zòä o«ÂÂBÁ]á;6„PQQ™¢ …Ò××>|xppðÈ‘#µ´´BÙÙÙwîÜÁÌ‚ÚÅK333ÁFêééÉÈÈ”––â—/_‘ÉäéÓ§'$$=zÒ¤I‰‰‰iii80 =íꉉÉÈÈøí·ßpIKK˼yóüýý=ztôèѳmmm^¸­¯¯ÏÎÎzâ<á‚Uti‡<˜ '¸¸¸°Ùì]»vy{{ã‰D¥R/]ºD§Ó™L&…BQRRZ¶l™¿¿BBBMMÍ­[·wµ~ýú’’’œœœÍ›7ãL¡…xÀµÝ2BÈÍÍíÚµk“'OÆ?š›››››ßºuKT`ngõêÕüܾ};BˆB¡ÌŸ?ß××·¬¬¬  `ëÖ­¸c`úôéG7n…Bùꫯ~ÿýwSSSSSSQg ]]æææáááÀ?¶µµ1™L99¹–––   „PSS“8mž3gN```EEE~~þÔ©S9"ô(Ä'x«èÒÿ_§=à0À!ñƘywK¢–W¯^­¨¨H§Óy[ÅÅÅ :TNNÎÊÊ*!! &“¹k×.sss''§³gÏ"1æèèhSSSmmíü±¥¥Eh!ññ81ÿ2AçÎCݾ}›W²víZ2™ÜÐÐ ¸¾àá°Ùì°°0 eee'''|kHFóööÖÒÒ200ذanFCCƒ¬¬lpp0AÍÍÍrrr7nìà ´«‘ .—ëááÁkÏÏ?ÿ|˜œœ|÷îÝíÛ·ÿòË/—.]ºqãFJJJQQQHHB¿ÍCpºå.ÕÞouú^àoþê+pT«¯¯ú©Ð¢aL‰*œaiøðáñññ¸äÙ³gxYè[ɺT{ÿ³KÀ@§©©©§§÷ìÙ3þœœGGÇ>! /·›`JT¡à K¼‰˜¬­­gÏž-ªm]­½¿‚À ËÌ™38@ð½Ä"66–Åb))) ! /·›`JT¡à K†††åååøÓ¼¼<Ü•-TWkï¯à©lXBBB¬­­½½½øá•Ë—/>|øúõëˆo†¨¨¨¨ææfÞ QâÃ3,…‡‡766®ZµÊÑÑÑÛÛ{Ë–-fff¡uëÖÙØØðVf0üÓ?~íýÃú!¤££“››ÛÖÖæéééììü×_]½zOŒŠˆˆ044ttt¤R©T*500°K;VUUupp˜4iÒÈ‘#CCC©Tê”)SœMLLðcÕfffÎÎÎí6ÿÌÚûx%'t^É º ¼’v˜)"˜)"˜)"˜)/€NÈÊÊr8œÞnèŸ,XpîÜ9þxW6tâîÝ»µµµ½Ý Ð?}ñÅíJàŽ"0Æ HÌ€À H‘ÿ{?îŸHÎéIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_46.png0000644000372000001440000000522512502417165024025 0ustar robertousers‰PNG  IHDR“3›­¬bKGDÿÿÿ ½§“ JIDATxœíœiLÏÇgA ­È%­ ¨ ‡ 9ŒÁA4!â‚7h@cÄDh!&â^! G”Cn´(‰Š<Q0D¥¤"A¼€B)–žó1ùoêî¶(HÙÏ«Ùg™gž™g;³;ßQ Bh £Í ¡3g¨Ð™3T®ûûû=zôOB¡Ñ„™™YLL ƒÁøÃ ÿ$&&æ…G£úúzB¦ˆ¿9¥RUSSóO⣡Ã0…BA0Ò뜡BgÎP¡3g¨Ð™3Tbæúúú0 3ÐFq?sÝ‹…˜¹ÿVVVçÎÓtW ØÚÚÎÆ?¹¹ÂÖÖ6;;[Ó]•J5222ÿ3̆a%%%žžžl6;;;»¬¬ÌÙÙÙÒÒòüù󀤤¤cÇŽ¡¿‹Å,ëíÛ·€{÷îy{{›™™­^½º¬¬ uàúõëžžžK–, liiQŸaЄÃãñÖ¬YÃáp’’’¤R)¥ü9;áåÈÈȳgÏ"£T*µ¶¶njjÜ¿ß××—ÅbÙÛÛÆ—Ò@.—s¹ÜeË–q8.—+—˵‘z]rÇvvv3~i%***** þ @ll¬H$***DGG‹D¢‚‚ÀðððÓ§O—.]*—Ë!„ååå^^^*•J,›ššæççûö­¸¸xÑ¢Eb±¸  €Ãá444 5559::ø|> ÂÂÂz{{ÛÚÚ\]]333)±±±ÂÂB^®ªªZ¹r¥J¥‚òx¼åË—Ëår‘HÄ`0âããËËË?þ$4Šü¨—/]º´gÏžîîn??¿ÔÔTÊ‘!û¡ì¸ºg]F»ººšh$\ëž¹ÎÎN¡L&#”ù|¾B¡°³³{òä „pÇŽÙÙÙÂÑÑQ“«W¯ …B•J511¡T*½¼¼nÞ¼‰»½uë9sÝÝÝènuuµ««+¥QSœ“““‹/îèè€ÆÄĤ¥¥A¥Ré‡Äb±R©|úô)jñ¯™óððøöí*777ûøøP¶HöCÙñÙgnæëÜ’%K&&&„2ÀØØx÷îÝ ÃÃÃ?>pàÀÚÚº¥¥¥­­ÍÑÑ1$$äùóçFFFÀÇÇ÷éííMnÈÍÍ <<<µɰX¬;wÖÕÕMNNÞ»w/..À`0z{{ÃÃÃýýýoÞ¼©¥PMvîïï···Ç0 ðÐÐÐÏŸ?ÿe€þeÇu¬«…¹zC‰ŠŠºsçNMMMPPš%‰J¥ª­­=vìXDDÄè訃ƒCWW^«§§‡ì =ž€ÞÞÞåË—k1RWרØèïïò-‘H¢££¹\nggg^^e-´OøõëWÜbkkËçóÑó. ÛÚÚt ÊŽëXW s•¹M›6)Ь¬¬C‡! †aaaaõõõ"‘H&“™˜˜°X¬øøx.—Ëãñ¾ÿþàÁƒÔÔT²«3gÎôõõ½~ý:==ýàÁƒšŒãããhÑ%”ÄBaFFF||<²H¥R™LÆ`0$IFF`bboÎÊÊ PZZ*‰®]»†ÛwïÞ––öåË—îîîðððÜÜ\‡‚²ãè–X,ÖÑ „ÙS÷u5•Oœ8Ád2E"^«ººÚÅÅ…Á`xxxðx<¡L&ËÊÊrvv677 ¼}û6 ­sEEE«V­²µµ=}ú´D"¡4BÍë„0!!ÁÜÜ\,ã–œœ›+VäååÅÆÆr8õ*.\°²²rqqáñx¸Q$ÅÅÅY[[/]º4!!arr’rd(×KrÇåryPP¹¹ù_‡ê÷ EÒÓÓ÷ïß?­*„§\Ƨµ¶ÿ7 ÌQŸÓ SSSCCC%%%•••sáŸÌÑ:×ÞÞ¾aÆøøøÍ›7ÏÆ……Ebb¢.ƦyjþyÞ2::@kâ ê««Qjpè}KCEo™Ó»¨!‹SRRœ™L¦››[FFÆÔÔ”¾œcæææF˜o¶oߎaX__Ÿî~þ‰ …X¸¿¹Ó§OwvvÖ×× óx<.—«Gÿýýýê›B¡ðÙ³gÓu¢]Ê™SnæîÞ½{ñâE???6›|í򵮮F=úߺukmm-~ÙØØ2]'Ú¥œ9EÏ™«¨¨pqqa³Ù'Ožüýû7Ъ§àüúõ ý±:yyy¸ˆüåËT& .ÚÕ"JÐáD|¬««Û»w/~—2l Ã***<==mll._¾ H 8Y{ÒÞÇYAø¾›ñ—8ú@Þ²e .¾¤¦¦Rê)êµ:::Ž9Âf³‡††>|èàà`jjzåÊ•þþ~üYp¡T‹´D øøñ£ÝÛ·o!„ccc,kxxÀçó5… Ø»w¯P(,,,ŒŒŒh¤Ô[lnnFÏ™@ ˜îØ‚9ÝC!‹/ÎÎΔz „P"‘”––nܸÑ××·  `bb‚Ò§B¡hkkËÊÊZ·n±±qEE²“JµHK´(’S§N!ݧ¼¼<44·k ÐÒÒÕô,킡ѯ_¿fdd8::FDD<|øP©Tê8¶ó‘9´…!ìêê233ƒòx¼   ¤°ðù|ôô9r¤½½iždÄbqee¥B¡@—*•êüùóèÒÌÌL}Ú°´´d2™ï޽ë# ^K´(’ÖÖVWWW•JYPPÕö]Éa£»Ÿ>}R÷@ȹûdd2’PÜÝÝtZ}ës”¨‹/«V­¢ÔSØlöÚµk_½zõòå˱±1J?Âýû÷¿ÿ]b¶mÛ6ü„6YpÑE-"411ñâÅ‹æææÈÈHÜ®EÒ.­é¢=ýøñ£§§gppÐÏÏÉdê'%zÎ\rr2.¾=z”ROY¿~}KKKCCçOŸÜÝÝ?þæÍ‚ssóÇïÛ·¯©©I ¼zõ*%%%66Ý% .šÔ¢¢¢¢ññqMÑïÙ³'11qãÆ·k—´@)H!T*Õ£GvíÚ!|ùòeee嬎~ƒ³œ-«ªªœœœ8Nrr²T*…TzŠz-¡P˜““ãââ¢þ‚P(™™™ÞÞÞL&ÓÉÉéܹsø\D\(Õ"ø§êD˜½µµ››K°S† Hz–vAJ½Åººº€€€ŠŠ 4,Ó̳ʣ;J¥7Òø€FFFôèù¯-jB&“ÍØ9eææDå™.FFFz9šA&88ØÆÆf.ûîó>û~Ùg÷M–¼8† Á/t³S­`Ê¡L9´BÔ¾iBBÂýû÷ç. ƒ¬ecœöÏ–8nݺu¯¿þúlÃ˜Ž¶¶6OOÏŠŠ -ÛÏàšìÝ»wÇŽ3Ï ãÅÌt`±ûZÁ”C+˜rhS­ I¹¾¾>§Ã€ãããIIIo¿ý¶™™ÙêÕ«ÓÒÒd2Ù‚d2 Фœn …7nÜÈÈÈèêêÚ¿yyù¦M›är¹Æö\.—B¡ 6™Lþæ›oæ1Y ÌlV O¤¤¤XZZ655ÀòåËýýý]]]‹‹‹cccÕÛCôäÉĦP(éééóš®:¾æp8\QQ‘³³³¥¥ezzziiéÒ¥K/^üÝwßbbb–"‘ˆD"ݺu P[[ëîînllìèèXZZ € (;;ÛÙÙÙÌÌÌÓÓ³¹¹Y¹:!Ū¦¦fÅŠVVV Ïž=ÓèÏW6e»¬¬ìàÁƒˆl&&&IIIeeeC­[·`cc£gttt×®] ÅÁÁaß¾}‰‡òòrggç%K–dffêvÿ¬5‹õÂ6¡¡¡ccc€;vŒåææ?~|õêU ©T ÃpYY™‹‹ A"‘ÈÈȈÉdòx¼ÂÂB"‘(‰rss­¬¬ØlöÐÐP]]ƒƒ ··I1üüüzzzÚÛÛ©Tjrr²F' 㣣ùùùHz [ FFFTòçp8ÖÖÖÓÄGš)Ûááá>>>ýýýÝÝÝ®®®H§€àà`@ŸŸxòäÉ ‡—N§Óét­Õ€u¯ÜÍ›7ažœœT±{{{e2™MSS Ãééé0 óù|ƒ£G ‚„B¡\.wqq9yò¤"ì©S§Ô•ëîîFö²X,*•ªÑ9UžS)×ÖÖF¡P¦‰xöää$@øã??›ÍF:477+Ÿû wæÊéþ ÅÌÌ ``` bÂöíÛÙlöãÇÃÃÃæææÍÍÍíííÞÞÞ---x<žËå®ZµJÓÝÝ]½#'''ÄX¹råÀÀÀ4NuÈd²ÍíÛ·Uü·oß~çw´5<<,—Ë—-[†lR©TEK;;;ås×9óýlI§Ó«ªª***Ö¯_Ô@±X Aйsçø|~LLÌÖ­[ù|¾½½ý;wGݽ{W=ò‡èééA†i*§FÂÃÃSRR”Ÿ$ÇÇÇ322´emmM ¸\.²ÙßßoooØxü­ö—'ЮZ**ƒF[&“YYYY[[#»Äb±±±ñùóçGFFòòòŒÅbqZZš••Uuu5Ç«¯¯×xŸ£Ñh½½½NNNÔè„§¸ÏÁ0üôéÓ+Vx{{×××÷ôô°Ùl—wß}W"‘L_(ÂÏßçÂÂÂ|||¸\îï¿ÿîââ‚t:Õ8LÃÂßç¦W†á¸¸¸E‹)Žb±XË–-344\¹reMM Ó““)))K—.555õôô<}ú´ºro¾ù&…BÙ³gX,Ö脟ee†a‘H”˜˜èêêJ"‘\\\RSS'&&¦Š/•Jׯ_ojjª‡ÏçGFFZXXØÚÚîÝ»é}ÊiÃÂÂÂftˆÊˆ«lNãœ: ¥=3Un^gâ‰dhh¨¨¨èÌ™3óÙ¯^2¯O(ׯ_÷ððøä“O6nÜø2q^{í5ƒ¡S‡ñ_5fö6‹Å¾Ÿ#Õþm†ï'ÎhS­`Ê¡L9´2³YASSÓèèè¥ò/‡Ëå:::Îàí§~èzG–H\B&,t3#11Q{9f0+@°Ožl©ªÚ³víLþу~Þçd2¨ªªPUյйÌú©ÜÕ«ÆÆÄ€ÊÊ›R©æ7‚ÐŽ~*ÇfßD^0™˜xvåʃ…NgNÐCå&&&/\¸#“É®²R? ¦*רxWQ!e2è×_¶°)Íz¨ÜùóÊïËdòK—4¼ vôM¹Ñщæær¹òTWYÙ¹` Íú¦\}}·Š‚ «Wÿ#Œ/H>s‡¾)wî\'iølá—_î¨;Q^)÷èÑÓë×¹êŸ Á0|þüIiîÐ+åjko΂àÎÎÿòxzõY¹^)WYÙ…LãÔaP[«WS¯þ ¶¶‹[&ƒ$©©©‘b¯žÍêôö»‚Ÿ¾wjhèÇ…Nd®Ð«jù¯S­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜rhS­`Ê¡L9´‚)‡V0åÐ ¦ZÁ”C+˜r¨EùÇ.[[[ :#݀ǓŒŒÞXè,tÆ[o½5Ý!ƒƒƒ“““‡Z¨ü04rïÞ½sçΩ85ü‡ÿK.à1?`÷9´‚)‡V0åÐ ¦Zy唤ÑhºŠ&‹srrBCCýýý#""Š‹‹‘ņµéZ"‘0™Ì˜˜˜ÀÀÀ¸¸¸òòråEY§A·§0zõëQêdee §¤¤XZZ>|ø0++K(&$$¼ðÀ‰‰‰øøxsssƒagg÷çŸvvv~ÿý÷—¾åñxqqq555SSÓÐÐPÝŸÌó¼rלnimmýôÓOœœÈd²»»{BB‡ÃÑæÀ’’2™üÃ?¬Y³ÆÁÁÁËË‹Éd>zô¨¾¾^c{‚ÆÆÆ{ñâÅ»wïÖÙ9LÁl”£ÑhõõõÑÑÑAAA§OŸ¾téRhhè–-[ŠŠŠÇÏÌÌDZŠÅ dÙÒß~û-&&ÆÏÏ/,,ìÒ¥K†«ªª¢££?ÿüó[·n)¤æp8œÈÈÈ?üðøñãR©T£<_ ”m‰T]]­Swww‹…Øêù(ÓÐÐ¥|yïܹ³¡¡AcŸ}ö`ûöí* ˆD¢ôôômÛ¶Ñéôœœ¤VÓh´ÆÆÆèèè>øàìÙ³³ÌúšëêêÊÉÉÙ½{w~~~[[[aaa|||ii騨˜··7‡ÃAn ÇÖÖ–J¥J$’äää   ³gÏFFFfffJ$’ººº’’’ØØØÒÒÒ¨¨¨#GލwT]]}äÈ‘´´´ëׯ#+kt’Éä}ûö!{•í¤¤¤›7o'%%±X¬ááaį1E§"‘ˆÏçS©T•d¨TêÇ5æðÓO?Øl¶Ê!ÇŽa2™7nÜP,0ÛÚÚzâÄ ƒ‘››+ g!Á,• !‘H~~~€°°0‰„, . ]]]‰Dbww7 ±±ÑÏχÃI¥R†Åb±¡¡a@@@mm­‘‘Qeee\\œ———……ÅÚµkcccÕ;ŠwpppvvŽmhh˜Êibb²eËd¯²íááÁb±Ž;ææævñâ۰°¦¦&€Æ|^xÖ8‚ iSA&“]¾|yÏž=¶¶¶ŽŽŽü±¢ePP©©©¿¿?@QfÄ,•#‘H"‘¨bðx¼——×µkמ>}ÚÕÕåëë 033ûñÇïÝ»G§Ó¿üòËîînÇãñ”ÿ®5®á…¬xã7FFF¦qª#‘H._¾ pvvŽŠŠ*,,Œˆˆ`2™Så£8ÐÔÔtÉ’%}}}*ûúú–/_®}‚ ;;;dÓÞÞ^Ñ’B¡(Ú,˜“'”7¶´´\¹rÅÍÍÍÒÒðìÙ3‚’““kkk8  )J¿â¨¿þúK=ÔÀÀbüý÷ßÓ8Õa855•Ëå"›8nõêÕHטò±¾¾¾%%%Š+ ‘HΜ9³fÍís077Çãñ<ÙBC’™*m-™åÜÝÝårù©S§r ÀápIII×®]—J¥D"ÑÈÈhóæÍ999‡Ïçwttäå婇ÊÎÎ|ðàAAAÁ¦M›¦rŽ×ÕÕ!{ö¢E‹üüü>ÜÞÞÎãñîÞ½›““ããã3U>ÊýFGG ‚¯¾úª££c`` ¥¥%>>žB¡lÛ¶mšÄÄb±r"‘H£Ñ²²²x<2¯@*N˜“ùß°aÃÅ‹7lØ€x ÷ïߟ››ûÏ?ÿØÙÙ:tÈÐÐ0$$D.—Ÿ8qbttÔÑÑ‘Á`¤¦¦ª„òõõMLL”H$>>>áááHµQqFGG=ŠÜÞ”í¯¿þº´´4??ppÐÜÜœF£íÚµkª|”û%‘HyyyÅÅÅL&shhÈÖÖÖÇLJN§hLŒ@ ¸¹¹}ôÑG.\PŽóÅ_dggÇÅż÷Þ{H¶:á¹_®¨¨ inn~ù¸=úöÛoµ?dpp0""BÑ»Êæ4Îyfþs¸råÊáÇU~·Y÷Õrrr’ÇãÕ×׿ÿþû:Ž¡@÷ÊÝ¿ŸÁ`lÞ¼yÕªU/ÇÄÄdëÖ­Ú8ç™W!0wÕC‡ÌSµÄ˜0åÐ ¦ZÁ”C+fâŠÚ1^ºó9åÖ®]»sçN-¿³Ç˜O‚‚‚T MySQL++ Reference Manual
mysqlpp::InitCommandOption Member List

This is the complete list of members for mysqlpp::InitCommandOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/datetime_8h_source.html0000755000372000001440000021272212502417162024626 0ustar robertousers MySQL++ Reference Manual
datetime.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_DATETIME_H)
30 #define MYSQLPP_DATETIME_H
31 
32 #include "common.h"
33 
34 #include "comparable.h"
35 
36 #include <string>
37 #include <iostream>
38 
39 namespace mysqlpp {
40 
47 
48 class MYSQLPP_EXPORT DateTime : public Comparable<DateTime>
49 {
50 public:
54  year_(0),
55  month_(0),
56  day_(0),
57  hour_(0),
58  minute_(0),
59  second_(0),
60  now_(true)
61  {
62  }
63 
72  DateTime(unsigned short y, unsigned char mon, unsigned char d,
73  unsigned char h, unsigned char min, unsigned char s) :
75  year_(y),
76  month_(mon),
77  day_(d),
78  hour_(h),
79  minute_(min),
80  second_(s),
81  now_(false)
82  {
83  }
84 
86  DateTime(const DateTime& other) :
88  year_(other.year_),
89  month_(other.month_),
90  day_(other.day_),
91  hour_(other.hour_),
92  minute_(other.minute_),
93  second_(other.second_),
94  now_(other.now_)
95  {
96  }
97 
103  explicit DateTime(const char* str) { convert(str); }
104 
112  template <class Str>
113  explicit DateTime(const Str& str)
114  {
115  convert(str.c_str());
116  }
117 
119  explicit DateTime(time_t t);
120 
125  int compare(const DateTime& other) const;
126 
128  const char* convert(const char*);
129 
131  unsigned char day() const { return day_; }
132 
134  void day(unsigned char d) { day_ = d; now_ = false; }
135 
137  unsigned char hour() const { return hour_; }
138 
140  void hour(unsigned char h) { hour_ = h; now_ = false; }
141 
144  bool is_now() const { return now_; }
145 
147  unsigned char minute() const { return minute_; }
148 
150  void minute(unsigned char m) { minute_ = m; now_ = false; }
151 
153  unsigned char month() const { return month_; }
154 
156  void month(unsigned char m) { month_ = m; now_ = false; }
157 
162  static DateTime now() { return DateTime(); }
163 
165  operator std::string() const;
166 
168  operator time_t() const;
169 
171  unsigned char second() const { return second_; }
172 
174  void second(unsigned char s) { second_ = s; now_ = false; }
175 
177  std::string str() const { return *this; }
178 
184  unsigned short year() const { return year_; }
185 
190  void year(unsigned short y) { year_ = y; now_ = false; }
191 
192 private:
193  unsigned short year_;
194  unsigned char month_;
195  unsigned char day_;
196  unsigned char hour_;
197  unsigned char minute_;
198  unsigned char second_;
199 
200  bool now_;
201 };
202 
203 
206 inline DateTime NOW() { return DateTime(); }
207 
208 
217 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
218  const DateTime& dt);
219 
220 
225 class MYSQLPP_EXPORT Date : public Comparable<Date>
226 {
227 public:
229  Date() : year_(0), month_(0), day_(0) { }
230 
236  Date(unsigned short y, unsigned char m, unsigned char d) :
237  Comparable<Date>(),
238  year_(y),
239  month_(m),
240  day_(d)
241  {
242  }
243 
245  Date(const Date& other) :
246  Comparable<Date>(),
247  year_(other.year_),
248  month_(other.month_),
249  day_(other.day_)
250  {
251  }
252 
254  Date(const DateTime& other) :
255  Comparable<Date>(),
256  year_(other.year()),
257  month_(other.month()),
258  day_(other.day())
259  {
260  }
261 
266  explicit Date(const char* str) { convert(str); }
267 
274  template <class Str>
275  explicit Date(const Str& str) { convert(str.c_str()); }
276 
281  explicit Date(time_t t);
282 
287  int compare(const Date& other) const;
288 
290  const char* convert(const char*);
291 
293  unsigned char day() const { return day_; }
294 
296  void day(unsigned char d) { day_ = d; }
297 
299  unsigned char month() const { return month_; }
300 
302  void month(unsigned char m) { month_ = m; }
303 
305  operator std::string() const;
306 
310  operator time_t() const;
311 
313  std::string str() const { return *this; }
314 
319  unsigned short year() const { return year_; }
320 
325  void year(unsigned short y) { year_ = y; }
326 
327 private:
328  unsigned short year_;
329  unsigned char month_;
330  unsigned char day_;
331 };
332 
339 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
340  const Date& d);
341 
342 
347 class MYSQLPP_EXPORT Time : public Comparable<Time>
348 {
349 public:
351  Time() : hour_(0), minute_(0), second_(0) { }
352 
357  Time(unsigned char h, unsigned char m, unsigned char s) :
358  hour_(h),
359  minute_(m),
360  second_(s)
361  {
362  }
363 
365  Time(const Time& other) :
366  Comparable<Time>(),
367  hour_(other.hour_),
368  minute_(other.minute_),
369  second_(other.second_)
370  {
371  }
372 
374  Time(const DateTime& other) :
375  Comparable<Time>(),
376  hour_(other.hour()),
377  minute_(other.minute()),
378  second_(other.second())
379  {
380  }
381 
387  explicit Time(const char* str) { convert(str); }
388 
396  template <class Str>
397  explicit Time(const Str& str) { convert(str.c_str()); }
398 
403  explicit Time(time_t t);
404 
409  int compare(const Time& other) const;
410 
412  const char* convert(const char*);
413 
415  unsigned char hour() const { return hour_; }
416 
418  void hour(unsigned char h) { hour_ = h; }
419 
421  unsigned char minute() const { return minute_; }
422 
424  void minute(unsigned char m) { minute_ = m; }
425 
427  operator std::string() const;
428 
432  operator time_t() const;
433 
435  unsigned char second() const { return second_; }
436 
438  void second(unsigned char s) { second_ = s; }
439 
441  std::string str() const { return *this; }
442 
443 private:
444  unsigned char hour_;
445  unsigned char minute_;
446  unsigned char second_;
447 };
448 
456 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
457  const Time& t);
458 
459 
460 } // end namespace mysqlpp
461 
462 #endif // !defined(MYSQLPP_DATETIME_H)
Time(const Str &str)
Initialize object from a C++ string containing a SQL time string.
Definition: datetime.h:397
std::string str() const
Return our value in std::string form.
Definition: datetime.h:313
void hour(unsigned char h)
Change the date/time value&#39;s hour part, 0-23.
Definition: datetime.h:140
Time(const Time &other)
Initialize object as a copy of another Time.
Definition: datetime.h:365
Time(const char *str)
Initialize object from a C string containing a SQL time string.
Definition: datetime.h:387
void day(unsigned char d)
Change the date&#39;s day part, 1-31.
Definition: datetime.h:296
DateTime(unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)
Initialize object from discrete y/m/d h:m:s values.
Definition: datetime.h:72
Date(const Str &str)
Initialize object from a C++ string containing a date.
Definition: datetime.h:275
Time(const DateTime &other)
Initialize object from time part of date/time object.
Definition: datetime.h:374
Declares the Comparable&lt;T&gt; mixin.
unsigned char month() const
Get the date&#39;s month part, 1-12.
Definition: datetime.h:299
DateTime(const DateTime &other)
Initialize object as a copy of another Date.
Definition: datetime.h:86
C++ form of SQL&#39;s TIME type.
Definition: datetime.h:347
C++ form of SQL&#39;s DATETIME type.
Definition: datetime.h:48
unsigned char hour() const
Get the date/time value&#39;s hour part, 0-23.
Definition: datetime.h:137
Time(unsigned char h, unsigned char m, unsigned char s)
Initialize object.
Definition: datetime.h:357
void year(unsigned short y)
Change the date/time value&#39;s year part.
Definition: datetime.h:190
Date(unsigned short y, unsigned char m, unsigned char d)
Initialize object.
Definition: datetime.h:236
Date(const DateTime &other)
Initialize object from date part of date/time object.
Definition: datetime.h:254
Mix-in that gives its subclass a full set of comparison operators.
Definition: comparable.h:40
void second(unsigned char s)
Change the date/time value&#39;s second part, 0-59.
Definition: datetime.h:174
unsigned char second() const
Get the date/time value&#39;s second part, 0-59.
Definition: datetime.h:171
unsigned char day() const
Get the date&#39;s day part, 1-31.
Definition: datetime.h:293
unsigned char minute() const
Get the date/time value&#39;s minute part, 0-59.
Definition: datetime.h:147
void month(unsigned char m)
Change the date/time value&#39;s month part, 1-12.
Definition: datetime.h:156
bool is_now() const
Returns true if object will evaluate to SQL &quot;NOW()&quot; on conversion to string.
Definition: datetime.h:144
DateTime(const Str &str)
Initialize object from a C++ string containing a SQL date-and-time string.
Definition: datetime.h:113
void second(unsigned char s)
Change the time&#39;s second part, 0-59.
Definition: datetime.h:438
std::string str() const
Return our value in std::string form.
Definition: datetime.h:177
Time()
Default constructor.
Definition: datetime.h:351
void day(unsigned char d)
Change the date/time value&#39;s day part, 1-31.
Definition: datetime.h:134
Date()
Default constructor.
Definition: datetime.h:229
void year(unsigned short y)
Change the date&#39;s year part.
Definition: datetime.h:325
unsigned char day() const
Get the date/time value&#39;s day part, 1-31.
Definition: datetime.h:131
unsigned short year() const
Get the date&#39;s year part.
Definition: datetime.h:319
unsigned char month() const
Get the date/time value&#39;s month part, 1-12.
Definition: datetime.h:153
C++ form of SQL&#39;s DATE type.
Definition: datetime.h:225
void minute(unsigned char m)
Change the date/time value&#39;s minute part, 0-59.
Definition: datetime.h:150
unsigned short year() const
Get the date/time value&#39;s year part.
Definition: datetime.h:184
void month(unsigned char m)
Change the date&#39;s month part, 1-12.
Definition: datetime.h:302
This file includes top-level definitions for use both internal to the library, and outside it...
unsigned char minute() const
Get the time&#39;s minute part, 0-59.
Definition: datetime.h:421
unsigned char hour() const
Get the time&#39;s hour part, 0-255.
Definition: datetime.h:415
void minute(unsigned char m)
Change the time&#39;s minute part, 0-59.
Definition: datetime.h:424
unsigned char second() const
Get the time&#39;s second part, 0-59.
Definition: datetime.h:435
void hour(unsigned char h)
Change the time&#39;s hour part, 0-255.
Definition: datetime.h:418
Date(const char *str)
Initialize object from a C string containing a date.
Definition: datetime.h:266
DateTime(const char *str)
Initialize object from a C string containing a SQL date-and-time string.
Definition: datetime.h:103
DateTime()
Default constructor.
Definition: datetime.h:52
std::string str() const
Return our value in std::string form.
Definition: datetime.h:441
Date(const Date &other)
Initialize object as a copy of another Date.
Definition: datetime.h:245
static DateTime now()
Factory to create an object instance that will convert to SQL &quot;NOW()&quot; on insertion into a query...
Definition: datetime.h:162
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_14.png0000644000372000001440000000311312502417165024012 0ustar robertousers‰PNG  IHDR»%•žbKGDÿÿÿ ½§“IDATxœí›_HSoÇŸã´VÌÊv:Ó…9ic!A „ ©‹ ›r‚ÿ ª‹‰ÑE¬è² ÿV˜Ê¦¬$¢‹Š!z±º0\—'‰Øˆt“99¶éy»8?Æ<;çlG÷¯ïçê=Ïëžçû¼ïwgïþH „ƒIš¼l Àüc`Ç`䃑v Fù¼ë¡¡¡ööö¬HÁäJ¥òÁƒ;vìˆ òc·Û¿~ýj2™2( “£ 677'p ˜L&»Ýž)U˜Ü… ˆø >Ç`䃑v FØ1yä¢c¾}û&xæÊA²+Uº:B¨©©I¥R¥¶h.:æMÓ$I¦/ÿ–-[ÚÚÚÄf½^o__ß—/_R[;&°,;;;›¾ü$IZ­V±Y†a€÷iÊÚY¥c‚èéé1 Û¶m³Z­½½½eee›7o¾~ý:X,–––î/C¡ÐÆ?|ø/^¼¨¬¬T*•»víêíí–eïß¿o0 M&“Ó錽ÍrwÝáááÝ»wSe±Xþüù#„•·èØqf¤ ràÀ(..+$ÖK$immÕh4Eµ¶¶F"Áü¼6ûúú ÃÖ­[ï޽˫sss§N"IR«Õ^¹reqq1™­Äl6›Íf”¨¯¯ƒ]]]PWW ¹¯fffFFFÔju$A=}úÔh4², …Ö¯_ÿðáCŸÏ×ÝÝŸŸ …ÚÛÛ)Šr8^¯÷åË—Z­<'Œ=ztrrÒårétº›7o Bsssœ¼Øqf¤ ;+XH¬—;wîœ}â.‡ô¢EsÆ;fõç˜ÂÂB(((à@¡Pœ8qÂápÌÌ̼y󦱱ŠŠŠœN§ËåÒjµÍËË£iºªª*š³²²2¾PEE7Ðëõ?þ”f]ª‚…Äz™žž.))!‚ ˆ#GŽ|ÿþ=™Û·om-–_¿~-//———s—:.ᢉ‘®“¯Ùl~öì™Ýn¯®®ænà ð,;88è÷û[ZZŽ?î÷ûKKK'&&¢úüùs|*““Ü¢ˆ³.Un!±^H’ôx<Üs:¸\®dòçå‰î¦F£Q(4Ms—SSS¥¥¥rõÿïž“ü«R´%ÁñÒÒEQæÑ£GÜÃ0J¥rhhè÷ïßJ¥’a˜Û·oSõüùsŸÏ÷êÕ+ÁsÌáÇ=Ïû÷ï+**nܸ!D’ç˜ H„›ŸŸç.ã ‰õb±Xjkk§§§'&&öïßá‰üb­ñ´544ÔÔÔÐ4ýñãG£ÑÈ’R{Ž‘Þ„Ðùóç7lØ £²ÙlåååëÖ­ÓëõÃÃáp8|ëÖ­²²2•Je2™úûûãÓÕÕµsçN’$/^¼È0Œ`·|ÒK™©‚D"‘êêj•Jð ‰õ OŸ>]TT¤V«Ïž=»°° ˜_–cü~ss³Z­.))¹téWHšT:&®]»ÖÐÐ ë!¼&÷Cz“VÇÚ¥®®P:zI!‚Žø}ÌÚY\\ôz½===éÈŸB2&õZiÒrò}÷îݾ}ûΜ9sèСµäÙ´iÓ¹sç’ ®šTI%D.”|/ óg ­ü·ºº:À¿ÁÃA6›³Dü½FØ1y`Ç`䃑‡À»kš¦;::2/óoÀû|æòåËÙV„É ÅØØÏ!üw׌4øƒ‘v FØ1y`Ç`äñûYÅa$šIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ResultBase__coll__graph.png0000644000372000001440000006340612502417165030553 0ustar robertousers‰PNG  IHDRMÜ#³ÝbKGDÿÿÿ ½§“ IDATxœìÝwXSWð7B@¦@˜" ˆ¢à®»*E[lAFq uú îŠZmEѶ®ª¸ŠX7¥¨ hU¤®‚"*²gÙ¹ßWÓ˜\ÂÞïïéÓçæääÜ÷^^Î=ƒF „B¡vG©¥@!„BMó<„B¡ö ó<„B¡ö ó<„B¡öI¹¥@¡ºY´hÑóçÏ[: ÔV1™ÌÝ»w›››·t 5ηEµ-4mРA]ºtié@P›túô騨(ooï–¡æ€ýy¡¶gÉ’%ø{ÕFkéj>8>!„B¨}Â<!„B¨}Â<!„B¨}Â<!„B¨}Â<!„êæåË—;–¿²²2((¨wïÞšššýû÷ÿé§Ÿ„BasF"ÝJÃOQ§BçÛ"„PK*//0`€¡¡aHHˆ••Õ“'O~øá‡ëׯ߸qƒN§Ë×ÏÈÈ0`@aa!èèè,_¾¼ÑCJJJ²´´lôfå5õ ÔÁaž‡B-iÆ qqqdVgkkûÅ_ôìÙóðáÃ3gΔ¯/‹‹ŠŠÈc}}ýÍ›77zHFFFÞ¬¼f¸„:8|n‹j‡h4Ú¡C‡ìíí 6oÞ|üøqKKKmmí~ø-Z4cÆ ²fEE…ººú£G 66ÖÑÑ‘ÉdZYY?~Äbñ®]»ìíí555/ýl‘|ÔÓ½{w‹µhÑ"GYŸ>—”>_»v­t×]§N‚‚‚ÂÃÃ)›4hy˜t;¥¥¥Ó¦MÓ××733 är¹ä}ˆˆˆ°··ïܹó–-[Èš/^trrRWW766®}juáÂSSÓ’’ˆŒŒ´µµ­¬¬ …ÁÁÁæææS¦L)--%+ ‚   CCC‹$šèZä¿d¡O!Ô¦@TTTu|}}ÙlöÀÛÛ›ÍfïÛ· ôôôAáááb±¸¢¢BUUuïÞ½999TVV®¨¨Ø·o‹ÅŠŽŽÎÎÎþã?ÌÌÌ ==üáI¸¸¸¤¥¥Ý½{×ÚÚzݺu”…A”––†……‘áIŽÉ´©  @&þÄÄDCCCí“Õ¤ýüüFýêÕ«ÔÔÔž={’'OOÏ’’’°°0(**b³Ù # +++<<òóó¥Û€”””òO‘oM™2eêÔ©¹¹¹†††ÉÉÉAlݺÕÁÁ!55õŸþ8p``` Y3$$dâĉoß¾MMMuvv^±bES\ å—¬Q¾j70ÏCµ1µÌó>|HŸÏ—9NOO …FFFqqqAŒ?~óæÍA«¨¨„††–””ˆÅâòòr‘HäààpäÈI³G•ÏóRSSÉw£¢¢¬­­) «‹³º<ïÎ;úúú Ú'K$Ç|>ŸN§?yò„,ŽŽ&O ñññÒ×Îãñž?^QQ!‰ÈB™<¯º’’333GGG2ñ"¢{÷îÑÑÑäñ³gÏ$Çvvv999äñõë×ûôéÓ×Bù%«îVK`ž‡:|n‹jŸ455@EEEæètº‡‡Gtttaaá7üüü@WW7>>þîÝ»fff#FŒ¸uë–’’RFFFŸ>}$m:::ÊŸÈÆÆ†<°³³ËÊÊRP(OGGÇÈÈ(%%E¦<%%¥oß¾µo*//O$uëÖ|imm-©ibb"}í #--ÍÕÕµoß¾GŽ¡l-==]æW…$ÚY³f=}útîܹdÉ›7o$áÙÛÛ»»»“Ç™™™ÆÆÆä\ݱcǾ~ýº)®…òKFÙ&Bþ“@uD^^^çÎ;uêÔСCɧ±G,Ÿ>}º¸¸xÆŒnnnÅÅŦ¦¦?–|êéÓ§òM‘Q––F&"ÕRòóóÛ°aƒH$’”TVV†„„¸ººÖ¾)CCC:ž‘‘A¾|õê•©©)y,“úp8ooï   ‡îÙ³GA`òÞ½{·k×®1cÆ,]º”,111ÉÌÌ$SRR6mÚD“‘dŽXRRr÷îÝ&ºù/Y®¡vó<„PG4lØ0¡P¸aò„F£¹¸¸œ={–Ífóù|uuõ€€€   ˜˜˜ÜÜÜ+W®¬X±B¾©Å‹¿|ùòþýû«V­šƒÁàp8ÁÁÁP^^.S§   ÷S ‹.\yãÆØØXð÷÷_½zõ“'Ožoçν{÷æóùAœ;wÎØØ¸¸¸˜Ë嚘˜hkkûúú–””°ÙìéÓ§ëêêêééÍš5«²²²‰®EþKÖ(ß?µ4¢šÕ!Ô:Ñh´¨¨(ooï¶³zõêÌÌ̈ˆˆÚäåË—666’›2/ÖO#6ÕâZϵ4Ö÷Bm®“Œêp¸\nvvö¡C‡"##[:„jB8>!Ôá$''÷ë×/ `äÈ‘ iGKKköìÙµ)lÄöÛ¨öt-µ!øÜ!ÔÆàs7Ôøýƒ:ìÏC!„jŸ0ÏC!„jŸ0ÏC!„jŸ0ÏC!„jŸp]„PÛWZZÚÒQ :ÈÊâTV ù|‚Çóx"GÄ狹\1—+ârÅŽˆÇñx„@  –.µíÔ‰ÞÒ!#Ôà|[„PcnnþîÝ»–ŽÕŠŠ¾>¹wAFþŸFJ4M¦²XÌËËÛ ÐT¿›ètzBBÂ!Cš¨}„ZÌóB5¹S§î¯^}V ñùBÕ”•énn½wïöo¶Àjßp|B¡&çíÝ?1qõ!Ö4 @¶OB$ëМ!Ô¾až‡B¨9°Xšáá³BB¼TUé**ÔÃïh4`±´ðABŸÛ"„jVééysæû÷ß\±X,]N£A§NÌŠ ®±±Î˜1=ÆŒé1t¨š£¥âD¨À<!„Ps Å¿ýví—_®Ñh4‘èC¶Ç`Ð.ãéÙÿÖ­´ëןþõ× ±˜pvîêââ0fŒC÷îF-3Bmæy!„ZƃoæÎ=š—ÇDdÉÅ‹ß;;w%«ªø‰‰éׯ?½~ýi^»kW½aÃlÇŽu9Ò®ºÇ¾!˜ç!„j1¥¥UË—Ÿºxñ1têÄ|þ|.;p\,&ž<ɺ~ýéõëÏþù'KMMeÈ›±cÆŽu04Ôj‰¨j30ÏC!ÔÂΞý{ÅŠÓcÆ8üþûÅ5_½Ê¿~ýY\ÜÓää 6p Õ˜1®®=ÍÍõš'T„ÚÌóBµ¼¢¢ ee%mmõZÖg³9ýõâúõgqqÏJK«zô07®—«k/Ó&¡¶ó<„Bm˜ä©î… )ééy;wúüs{7·>#Ftg0poOÔÑaž‡B¨xó¦èúõ§±±)ÿÉdª jóÕW½]]{ij2[:4„Zæy!„Ú›ììÒ?ÿ|N.ÎBã;ÖÁÍ­·¡¡vK‡†P³Â<!„P»•—ǾvíÉåËÿ$&¦À AÝÆs7®NÔEæy!„Ú?6›ûçŸÏ._þ'>þyUРnnn}¾úª·žžFK‡†PÂ<!„P"‰<ÈŒ}|î܃ââJGÇ.žžýð‘.j¯0ÏC!Ôñù„„ccS®^}RYÉëÛ×ÂÍ­Ï„ N,–fK‡†P£Á<!„P‡Æã oÞü766åÊ•ªªødÂ÷Í7ÎúúøHµy˜ç!„B\®àÖ­´ØØ”K—Ry<¡³sW7·>îîÎ8†µ]˜ç!„BŸ ¾3gþ¾zõ‰H$þì3kOÏ~¸j‹0ÏC!„¨VüñÇãØØ”»w_©©1\]{¹»;Þ]YY©¥CC¨V0ÏC!„j—Ǿx1åüù‡¼Ñ×ט0ÁÉݽoß¾][:.„j€yB!T[¹¹e/>ŽM¹ÿµ‘‘ö—_övsë=`€UKÇ…5ÌóB¡:KKËM9{öAff¡á„ }&Nìga¡ßÒq!ô ÌóB¡úKM}wúôß11 +ÈU—¿þÚÉÀáC­æy¡6†Ï矘:õ€‰‰Ž§g?/¯þݺ±šôìÉÀ<!„j|&&:óæ}>oÞç/^äœ9ówTÔý;nôíkáíÝÿ믴´ÔZ:@Ô!àJ!„P²³3^³ÆíÑ£uW®üÏÞÞxãÆX‡5>>¿ÇƦ¢–޵s˜ç!„BÍÁѱ˖-Þ©©?îÙãÏdªÌŸÜÑqí²e§îÝËhéÐP»…ÏmB¡æ£ªªLàËË+‹}u/<üŽ­­‘—W?/¯,.È‚öç!„P½|ù’F£5Vk4)jjjC† IIIQPŸ ˆÉ“'khhHJ²³³'Mšdaa¡¡¡Ñ¿ÿsçÎ5Vlu"¹-ÒW¤­­ýÕW_½~ýºÆOu4††Ú3g¿~=0>~ùرûöýÕ·ï:ŸßOŸ¾Ïáð[::ÔN`ž‡B-/)))''''''55ÕÆÆÆÇÇGÁ„âìì숈ˆgÏž‘/‹ŠŠœœœÔÕÕ£¢¢îÝ»÷í·ßúúú^½zµáQeddèë×sƒòв³³ÄbñäÉ“««©££³|ùò¦ˆ¡­èÞÝhõê¯=ZâÄlõÀÀ('§uø<5 |n‹B-ÏÀÀÀÈÈŒŒŒ¶lÙbhhXPPÀbQ¯ÁÁápÀÜÜœ|~ü¸¥¥¥¶¶ö?ü‹-š1cY³¢¢B]]ýÑ£GëèèÈd2­¬¬Ž?b±x×®]öööšššƒŽ—~ÈH>sŒ‰‰éÞ½;‹ÅZ´hÇ£,„OP*xX©¢¢Â`0´µµÉ— ((ÈÐÐÅb ‚Aƒ™EÀÙ³g/^,ÝBppðÁƒÉãÒÒÒiÓ¦éëë›™™r¹Üê Ñhööö;wÞ²e ÈœH>‘H´uëV[[[MMÍ!C†$''S^N‡ *ާ1‹‹377¿}ûvußmˆ¡¡ö¼yŸÇÇ/¿rå}ûZlÙrÅÉ)xΜcýõB,Æe#Q!Ô¦DEEÕægøúú²Ùl²£ËÛÛ›ÍfïÛ· ôôôAáááb±¸¢¢BUUuïÞ½999TVV®¨¨Ø·o‹ÅŠŽŽÎÎÎþã?ÌÌÌ ==Œ€”””òòòòòò÷ïßÏ›7oúôé’ ™8qâÛ·oSSSW¬X!9;A%%%P\\\Ý}ðóó=zô«W¯RSS{öì) |Wú<==KJJ ¨¨Hú]ÊH¶oß.}sLLLàãÖä±Ùì—/_zxxôëׯ6ñÔ#²Â¸qãþüóÏŠŠ Åß^^^^^^Šë´6B¡èæÍgÍ:bn¾ÔÞ~UPPÔ“'Y-j30ÏCµ1µÏó>|HŸÏ—9NOO …FFFqqqAŒ?~óæÍA«¨¨„††–””ˆÅâòòr‘HäààpäÈI³G•ÏóRSS%±Y[[S*Uš††Æ³gÏ$ïÚÙÙåääÇׯ_ïÓ§têS\\ %%%”-óù|:þäÉòett´$<²D&ÇŠ—¾K29–|$¶¶¶ò7GæŠTTTFŒ‘žž^›xêƒÌÝV¬-æy¹¹eaa Ÿblüý_l K(.®!¯EŸÛ"„Ú-MMMPQQ‘9:îáá]XXxãÆ ???ÐÕÕ¿{÷®™™Ùˆ#nݺ¥¤¤”‘‘ѧOI›ŽŽŽò'²±±!ììì²²²V‡Lƒ‚¨¬¬œ={v@@€ä­ÌÌLcccrîêØ±ce&®êêêJædî߿߿ÿªªª¼¼<‘HÔ­[7²ÜÚÚZ&âÓœŒì“Ü%ò‘¼{÷®º›#¹">Ÿÿ×_Y[[@ñÔ#²ÜÎÎŽ²~{bh¨5sæð¸¸eW®üÏÑÑ,$ä’³óºÙ³^¿þT$·tt¨•Â<!ÔAyyy;wîÔ©SC‡%ŸÆr8±X|úôéâââ3f¸¹¹›šš>~üXò©§OŸÊ7Ev)@ZZ™¦TWX#uuõiÓ¦=}úT’éëëKr¦’’’»wïÊ|d„ Û¶m“ÎØÂÃúºº¡¡!NÏÈø0móÕ«W¦¦¦ä19Zîýû÷ÒM)))ú¥ ‰……E7Gš‚xêY^]^Ø.‘ë-?|¸nËïÒÒªiÓðã¦Mß¼éVP`ž‡ê † & 7lØàïïO–Ðh4—³gϲÙl>Ÿ¯¢¢¢®®“››{åÊ•+VÈ7µxñâ—/_Þ¿ÕªU’Dä ËÊÊ$³b¥ehii•——WTT/=<zëVZK‡†Zî‡PËì MÁ®µ1{öìùóç9R¾e$#99ÙÝÝ}îܹ#GŽlH;ZZZ³gÏ®M!B͉F£ `5`€Õš5n.¤>|ÛÇçwkk–Ï_ßA;wjéQ3Áþ<Ô&TUUɶÝýä+È/ú/©¦`‚%K–ØÙÙÍš5Kþ‰áÅ‹É-P%Ù¤â;V]òw¬Æ/M+4bĈââbr²B+áI^²X¬½{÷ÊÔ¡,D¨Ehi©Mž<8..èÊ•ÿ Ôí—_®‘«±Üº•†C :„ˆP½Ý»woêÔ©ÙÙÙ2oAÛÜÿ€$¤‡“+ØAÁéééiiijjj‡&¤Fú³Ùlƒ••ùùù5Þ1Ê0(ï˜ôWáúõëdR˜‘‘Ñ$ßµž‡¼v<£–ØlÎñãIcÇn56þþ³Ï6íÚu#?Ÿ]óÇP›…?+QÛÀápŽ;6`À''§}ûö•——Ë×6»ÿÄÆÆJçy ¶@P°9Qñ·ß~ÓÒÒzûö­ä#<ïùóç"‘(!!ARSñ£ ƒòŽÉ\Ýû÷ƒÍÌÌÜÜÜ®^½*_¡ÚAžW§)¢5¢ü^ñ)ª{WRžžžb±¸‰bn)˜çI<~ü6((ÊÆf¹™Ùÿ¼½÷\¸ðH(l䪨5À綨 ¸qãF×®]ãââvîÜùàÁƒY³fihhPÖl‹û¾úê+éwl `Ò‚ œœœfΜI|Ì FZZš««kß¾}9RË;Få“ ÀÄÄdݺuþþþ?þø£½½ý»wïß Ô@8­Õ¹Øòýûkׯÿ¦°°|öì£#G†üþ{|qqeK‡†æy¨ 000èÑ£GRRRbbbiii½ÛiûPR°B;())>|811qÿþýd ‡Ãñöö zøðáž={å£ül^^ÞÓ§O³²²œÕÔÔjRTä´iúúú2­'77·±‚D­¶¶z@À°¸¸e/~?`€ÕöíW×ÍŸüîÝW-j˜ç¡6 wïÞñññÑÑÑÿþû¯­­íÌ™3ŸÁ`p8œàà`(//¯_”wLú#b±øÚµkîîîƒ ""11122R__¿–Þ"pZNëAÎÎ]·móyòdãÎ~……»úö]¿mەŠ– 5L³>%F¨ÁJJJ¶oßÞ­[·ÌÌL™· Íî _AÁ¢ÿµÜ@,;VÒàöíÛ;wîÜ¥K—={öøúú²X¬ÚÜ1ù0(3gÎ 4(""‚ÇãÕøÕ¬ŸFŸ‡Óz:Ú´ž&Ÿááávvvººº!!!dalllŸ>}ÔÔÔŒŒŒ~þùgI̓ÚÙÙéëëÿüóÏÇŽ³°°ÐÒÒZ³f YÏç²X,ƒÀÀ@>ŸOÄ… zõꥪªjiiyìØ±&º RZZîÆ±vv«Ì͗ΚuäæÍ¥k¢6ó<Ô&‰D"òWl]­ZµjÒ¤IuúˆÌðsÊÑèícˆz£ !5©†çy8­§ÃNëiê<ÏÓÓ³¤¤$,, ŠŠŠš3'n ååÜãÇ“\\B%“s‹Ššü¤¨qáo&ÔQp8œW¯^ÅÇÇ×郘ç5+±ˆàæeωÊ,ê Ï·sOhÓhõ¿ÛdÑÔ©S“““tQÔØÙ9oÞ¼ùóç0ŒwïÞ‘ïÞ¾}ÛÓÓ³S§NÆ »téAjjj)))’fÉÇ»2yÙûKÄãÇ™L&e¡‚+ª±{˜ÉdJgÚÚÚ’w)ÓnS$1‚ì\”43tèÐ>}úLŸ>]:ÏS|Çäà¼c”ø|>9²ÖÖÖöíÛ· î†bMç‘?^$Ùm3çÄM‡œœÛ­Û²®]±{¯mÁñy¨£HNNîׯ_@@îкd_‚¿¾‚kƒ!ÖÎèA$βà¢=< ¡®oìòˆ6EIÑÈ´à´œÖÓtȯ”dÒz3Ouo:ääÜGÖoÜèñêU¾Ïï#FlÞ½;®´GO¶z-—b"„Ú£â"5˜¸¿€¸íKüéB\v&ΛQDòwÔõsÿ$’¦—϶¯ï/…w‰ŠLBPYÝe|Þ?ÿü3{öl}}ý3füý÷ßò ¦Þ)¡PÈb± ÉákAp8&“yæÌ™‚‚‚ýû÷3™L‡óÓO?±X¬óçÏçää\¾|™r|Þ¨Q£ÒÓÓïÝ»gcc³víZÊBBáø<Åýy‹-òôôÌÌÌ|üøñÀ,X y÷·ß~“ÏÊÊ ¨†{þþûï䬂 JJJh4ÚåË—+++—-[»£j¼còaPÞ1髉DW¯^ýæ›oLMM×®]ûþýû:|©(îÏ‹ˆ’ ο±…·~{öÛg77¾©SãòW]UU¥ªª#‹9ÔºïÓÌÌL:'~þüyUUÕÍ›7 ‚àñxGŽ¡ÓéEEEu»øF"‹^ÌœyØÜ|i÷î+V­:óï¿9- ª ÙýmÏœ9C@¨®˜LæîÝ»ÍÍÍ[:Ô¨øÅPöxEÀ/#ó¼ IDAT^ð W¼"Ð=(f"CÕ;xs Tõ@UÔÍ@§70 €¡Ú=¨Û7†£šô (õìÙsïÞ½›7o>|ø°O\\\×®]ëÔ¹"ãÑ£G'NœH–0™Ì£G._¾üÝ»wVVVQQQL&300P(.Y²¤   W¯^[¶l™4i’LS~~~cÆŒ©¬¬ôõõ]¹r%¹ø¢L!|÷Ýw3gΔ9®ÑÆ/^ìä䤤¤4qâÄììlò­ùóç“CþsrrOœ81hÐ ùfÏž}ýúuÐÑÑÙ¶m›ŸŸ_§NV®\éëëëêêš——W0(ï˜ôGÎ;ºpᨨ(ƒQ›‹­«ªAþÓÊ‚§U¹Ê _p„<1Ð@‰b:6ôŒÒSÝׯ_uœêZVV6kÖ¬þýûoݺÕÅÅ%<<|Ĉ”SÝ› F>¼ûðáÝóòØ'O&‡‡ß9|øögŸYO:ÄÕµ—Š ½E¢BÕ¡ŸŽáõöö¾sçÎàÁƒ[* Ôv>}:**ÊÛÛ»¥Aµ ¬npó?ämÜ ÈóàÔ©S-jÃh4æy-OÀþº)©€®E…Ü8Hø DÜÿJT´iF.Ð7E}xE ªôÖ2(ªÑó¼zàr¹ÙÙÙC† ‰ŒŒ¬ÓˆOÌóZÖ·eÎÙ>4 ))ÓÄ"ª¿ÇJÊJ—˜ôü–Ռѵmyyì3gî>|;7·lțɓïH§ã4€Vç¿_B-A¨hR¼Súü=xÅ­Š?.k0ÆÞ¦¨¯Û†œU=`tþðt•¦ðç] ÔëÐ¥ÑA$''»»»Ï;§õ´-¥ÌwoÛqGˆøŠ’< Åtešˆ/¦30S©CC­ùóGÏ™3êÏ?Ÿ8psΜc††Z~~ƒ¦Mª§G½S%jØŸ‡ öç5n.¼ÜÜà7x…À-^!èö׿)êW½ƒg!Ÿ¨J²7PÕ­f¾9´†þ<ÔF‘? N=ùâ|áÃý¹‚J¡XTÃGÔõU4MšÆª& M†®•šaïNÍk-T·'Jkø×‘‘Q™q§ªŠÿÅ='OA“'OÖÐøïŸwvvö¤I“,,,444ú÷ïîܹƊ­N$·EúŠ´µµ¿úê«×¯_×ø©Ö"/îÍNNKÇQ¸ùPö òàýEê*Ü|ˆTh#øÃn ‡›îðà{Hß9W©ëwê^eð-¼‰‚ç[¡ô£Ñ`îÕä'•!(mŠrâǯxÀ+âãºøP-õ®ªÃÎ|Ò9§¤øuZ{'‡P»¡ÖYyàÓ^SXç=;](е»2kþا-t"û/]È‹øÔÙ\ê±¼Gs4MT5MUµÌZf4ÍT«K%Û--µ™3‡ KLL¿3oÞq}}MOÏ~3f 32¢úùŒ¬CäyFFF`dd´eËCC‚‹z¶<¹d¹d±ßàààQ£F‘[M@=rssCCCžç‰Å⢢¢ú}VrEÆÆÆaaafffl6[K‹"™Ð××ß¼ysSÄP[UYð|+¼:¢9“’ ð šðŒ„RVȇ+ø–4¹ t&|öaú‚töƨfý'ºLlÂøQíH¶áB¨ö222È=?(©ë© 4sœbøODžé€FøóL™©¤\Mºh5VGÈQžÍ+Ïæ¿ä¾½UV™'‹ˆß›:ú6üÔ­™’mØ0ÛaÃlssË""î9’¸ÿ_®®½p®F“Ù£–{<ÀÁƒíììôõõþùçcÇŽYXXhii­Y³† ˆ… 5ËËËÕÔÔÈ]q.\¸Ð«W/UUUKKËcÇŽ!‰vîÜigg§¡¡1hР?ÿüäv:þ¼­­­ÁÂ… ¹\.e!ñé&?ÒÇðéî=ÅÅÅ ƒüAäBð,ËÀÀ 00Ïçëé逡¡!YÁÈÈ())IúÚËËËß¼ù°NIIÉÔ©SõôôLMM—.]Êáp„ngg§««B„̉ä# …[¶l±±±ÑÐÐøì³ÏÂÃÃj?¢œœ 7ÀQO=b ?~ãÆ.]ºÜºu«ÆïЍ¨¨ÿ^&·<‰ÊÄ e"þû/R•øg½â¦då\#^'žÿB¤¬&îÎ &W?#.Ø".uýkC‰?¿ '÷©ÁÄ¿;ˆ×DöB,¬ÛyQ«tûöm:×ÜGõ´téÒ–þ¦&ŠÙïyœRå» 2#\ScgþûWp惰ìôKEy©UEÔ•ÛOpáÂ#oï=ÆÆßöSXXBEE5?ÛQÝÕ¿?ïÆ÷îÝ;uêÔÌ™3½½½SSS###gÏžýý÷ß{zzzxxìÛ·OYY9&&ÆÊʪOŸ>•••^^^¿ýöÛ×_}éÒ¥€€ˆˆˆüqïÞ½ƒ zôèÑ”)SäO´gÏž‹/OžŸòäI.—[sÕF2z4½{w‹{÷JÖ¯?¿yó…Ñ£Y}û6þuu...ÿ½–ÉûjߟGvÑñù|™ãôôt¡PhddGÄøñã7oÞLDqq±ŠŠJhhhII‰X,.//‰DGŽ‘4{ôèQëÏKMM%ßŠŠ²¶¶¦,Tª4 gÏžIÞµ³³ËÉù°óõë×ûôé#ÝV\\ %%%”-óù|:þäÉòett´$<²D¦/->>^ú.I¿K‰­­­üÍ‘¹"•#FÝ{5ÆSdî¶bTáaäTâœ9Dä§}xŸü§DD©Ò½mBüÑ‹¸1’àäR7Í/«M!ÔqT òŸTðØÔ)®¾:ëûüzЫ»¿f=;Su·¬ìW$ײñ³gÏ6nòQ{JJjýTU-Z*€¶Î××WúKYÿþ†Û{GGG;::Þ¸qcß¾} ««ÿ믿;;;¯\¹rܸq}úô‘´éèè("òÀÎÎŽÜÞ»ºÂêH¶¬ªªZ»vm@@À;wÈ·233%5µµ?ª««khhøìÙ³Ï>ûLRxÿþýyóæ%$$‹D¢nÝ>,¤dmm- ñiNfbb"}—dÈGÂçó«»9’+’–——§8žzÄ@ÈôhVçÞÐC|ÈaxbÝ-bÐêö‚ª>¨êr-ÖIÇy !ô)µÎÊj«ý%n9Z§è9‡ýž÷þ.ûyOP%%:í›ãvzÝkÞÃì2oÄ€Q3X¿~½Ì㎦š‡áåååçç×£G¡C‡š™™‡Ã‹Å§OŸæóù‘‘‘nnnùùù¦¦¦?îÝ»7ù©§OŸÊ7•žžÞ«W/HKK#Ó”ê k¤®®>mÚ´ýû÷AηÕ××'s&ò)­ÌG&L˜°mÛ¶ÁƒKæç†‡‡ uuu:ž‘‘Ñ£Gxõê•©©)YG(*++¿ÿ^º)%%ES¨ä#ñðð¨ñæH344¬.žzÇ@–×rñå‘°sÙH Õ“Jt¥ÿöà’!æBç¾µi!„P=X»v¶výï%§XXþžÇ~ÏÓêB½>À¥¹é4:MËTUÓŒ¡e¦*ÊWU¢á(Øö ©&o6L(nذÁßߟ,¡Ñh...gÏže³Ù|>_EEE]]= (((&&&77÷Ê•++V¬ojñâÅ/_¾¼ÿ>¹€Hu…eee’Y±ÒÇ2´´´ÊËËÉázàáá±råÊ7oÞ¤¦¦ºººîÞ-»û¦M›üýý“’’RSSׯ_¿cÇŽM›6€ŠŠŠÏ¢E‹^¿~ýäÉ“5kÖøùùéèèÀ±cÇØlöŽ;j¼Q "™3gŽôÍY»v­â¦(ã©1Å1ÔæãÁ=¥¹àž 9ðY$XM5cš²ìª¼¦_É!„ÐGj•Y½:Y»vVQ§þ½oÜOS­³rQ:çŸðüëGº(Ójõ>jåš*Ï#ݲÙì‰?¬@Ád2=º|ùrSSÓíÛ·GEE1™ÌÀÀÀ ,Y²ÄÆÆfÆ [¶l‘oÊÏÏo̘1ãÇwuu]¹reu…’™ ÒÇ2ÌÌÌ´´´$‹‰lܸQSSÓÉÉéóÏ?ïÝ»wHHˆL}ƒðxtèPdddS´Ú$: ?ÃÏ¡÷O-Jƒ4î_”û²¤§§+8Euå‘‘‘¾¾¾òŸzôè‘ô´„jåÞ¿?yòäÆÊ5G%9f0666ßÿ½üŒÆz¨.Né3jhhôë×oñâÅäà®æÔ$y^rr²»»ûܹsGŽÙv´´´fÏž]›B„Ú.ɾ|ÊÊÊ v«Sì믿&—Î~ýúõgŸ}F¹&6BuX»ví"Ç)UUU…‡‡¯_¿þرc¸|NNΜ9sbbbdÎHDaaáÎ;wìØQãPûF×$yÞˆ#È•çêŠ\ Oò’ÅbíÝ»W¦e!Bm—d;i v«SLMMMMM >N¯‘o!„:&rOÎ;Ï™3ÇÝݽ¬¬¬;ØÄb1›Í¦<£žžÞ¬Y³V­ZÕX窽v»Y2ê ªªªd i4Ú¡C‡ìíí 6oÞ|üøqKKKmmí~ø-ZDîóêêê=€ØØXGGG&“ieeuüøq‹Å»ví²··×ÔÔ<|ø0eœŠoÅž={ ::ZæŒUUUïÞ½;pàÀرcáã– 666ááásçÎ +--­îtòÕõ Ôòa„k×®‰Åbñ „Úuuu˜4i’ººº««+”——÷ìÙSYY955nܸáââB£ÑA‡Á`¸ººÆÆÆªªªž={vΜ9Æ ÓÓÓ8p ôOH‰¹sçš™™ÙÛÛÏœ9óúõëÕvêÔI²ö™ô1Ìœ9süøñãÇ÷ôô¼víšä­Ë—//^¼˜ÅbYYYÍž=ûÞ½{”qÖõægüòË/§L™’––6zôh`0\´h‘žž‹Å€ÊÊÊêN'X]chyžššš‘‘‘‘‘‘}¤xrP”©©é¨Q£Î;geeõË/¿Ôé¼b±X²j7nÜèÚµk\\ÜÎ;ò@f_>ùÂúÑ××—$‚%%%wïÞ•¼eaaQcxÒ䯺ºhåOJy(Ï’——÷ôéÓ¬¬,ggg™>?„PG3räÈ[·nýõ×_½zõ"ûbx<žX,^·n]llìøñãW­ZU^^®¯¯ÿêÕ+ɧ233å›’üÍüîÝ;É”…5RUUuuuÍÌÌ”äjÚÚÚ’œ,66vÏž=”q’•É'Ñ……uØØIUUõË/¿ÌÏÏ/--åñxëÖ­ûöÛo÷ïßÿý÷ß“ª;|`µ?)©-åyŠÇc5䛬–ƒ“È߸Ò[ânÛ¶íèÑ£NNN ,ÈÊʺwïÞåË—¯^½RÝè¨êF_Iš’4ÞVÇ?•=ƒ´]à§µáJ_HY9× ì@}¦²÷îÝ;>>>::úßÿµµµ9sæƒêÑN«Ý—Ož‚Íèêº3žüUW­üI)ït#b±øÚµkîîîƒ ""111226 ÔÁ9::ŠD¢£G’v€F£ݼy“|X©¬¬¬ªª:nܸßÿ=11±¸¸øÞ½{û÷ï—oj×®]ïß¿ñâ…d eaee¥¤×FúXF§Nªªª8ùrذaaaayyyË–-;þŸoWUUEy:ÊÀêú%h’uU—Ë=}úô®]»Áœ9svíÚUÝ£ºÆrøðáøøx##£.]º„„„-[¶Lzp’··7eGEHHH¯^½ÁÉ“'?~Lötã1tVÿÈ{öì¹wïÞÍ›7>|ØÇÇ'..®k×®uj|ˆyôèQù}ùÞ½{gee%Ù—O(.Y²¤   W¯^[¶l™4i’LSä|•••¾¾¾+W®$ÿ¸”)„{ñ‘ƒN¤k´qãÆÅ‹;99)))Mœ81$$$;;›|kþüù|>ŸìÉwtt–a`` ®®Îf³É?Yg̘±k×®ï¾ûŽF£ >|öìÙ”q2Œ3fìÙ³'<<|þüù·nÝ’nÓÈȨW¯^'N¼téY²`Áò€F£YZZ®[·ŽF£ihhÌ;wãÆjjj“&M=zô²eËÎ;':ÊÀêú%hÂ}Ï9hܸqóæÍëß¿«QÔr£–žž.= 22rÛ¶mÿý7¨©©IO«ÑÖÖ.--MLLüõ×_/_¾ììì¼råÊqãÆIŸŽ<&û9²²²ºtéÂápÈ_„ÿüóÏ€8Îüùói4ÚºuëLMM_½zE>8“?×ßÿ-iŠ2x@pþüù;väçç߸q£K—.5^oóøº/í· ŒÀÍšÕ}-´íáËgrR±X,‹%ÃAj¯cîË'sÕ­@ P<"!Ô†4â¾gÈÍÍ]³fMí?"³Ã冻[F»!¿ïY+ì úDcÇRŒ ˆßÿ]’ò×{pù{ÎÐÐN§gd|Ø¿õÕ«W¦¦¦PÍè¨êF_)ø•ÙjÇ?mò qpóqµI¨hAUˆù ?©’’R]“<.—›‘‘qèСï¾û®á´M}Õ˜ä!„dðùüœœœË—/ËL/CÍ©µçy uàÀêóäææ¾ÿ>º@(~ IDAT!!ÁÝÝýõë×ÿûßÿÈ·ê48‰Üu@šŠŠŠÏ¢E‹^¿~ýäÉ“5kÖÉ”££Œ¾’ÑúÇ?õ^ ·éË@¯?€Rõ¿õiJPúÎw“ªpVþp€¸Qä—¿¤âLNNîׯ_@@@‡Ú—òª[m´¡vàùóç³gÏ7n\7×îÔ©“››[m ‘¼ÖþÜVZiiéáÇwïÞ]Ýx,ù‡PòÏg%å’ã.]º >|ûöíä26P^^¾xñâóçÏ“ƒ“~ùåuuõS§N­ZµŠœ2a¡P8jÔ¨”””òòr™S—””,^¼øÒ¥K ãÛo¿ýé§ŸÈg¸sçÎ=zôh^^¹Òå¹²³³)¥={–ÿäééÙ:Ç?Ñh´¨¨(ooo(¸ /~…¬sJ@È-Þ­Ä«)`9 ¸yÀÉn>ps› Ü|uT´(šŽÿh*Àdš 0YÀ45c`²@Óhôf¸4„ª¥ŒŒŒÔi2f+ÔˆÏmQs’nÛ–ò¨M?ZÜ\à|L¹ùfuøp€Î¤¨ÿú0tÿK•꼸%BÕO+¤[K˜çµQmo|ž¼:Ç>|x+Iò>:ª•'y4­¡ïoðÍ;è½TõFû°– !UVÝšrÚƒÁç×`|*xä‚/ܳaücê$Ȯûó!a\çÍá$Ît†‹= îóÙ!B5é¥U›z_i„jÔÖUiˆ„„„–áƒäädww÷¹sç6pLXÛ£j=–ƒÍA9œÕUP3¦10 @͘† fæ^ Š!Ôñܽ{×ÆÆ†\ZÕÓÓÓÃÃcß¾}ÊÊÊ’•SɵZÉ}¥‹‹‹'Ož¬§§,YN•\iíÚµkÖ¬ñòòúí·ß¾þúëK—.xxxtêÔ©¥/µ%í<Ïk=FŒQÝþ‚Š&Ø}ÝÀÛ³ð6 t4&·V”ÕA£ht«¹¦’2 :Üàd2Xü¸ ¤Bç Êàñ`²€ijF jꦠj@ݹˆš@bbâçŸÎç7Â|mÔIoxÕ¤$ûJˬœ ÷•€M›6­^½:88¸ÞK·"¤æy¨Ñ”¡«tõ©¹fs¢«Åä:Ô°¡$åC7¡Pj¶µno—BQ_Ìv:0YÀ4¨ß. HÆû÷ïù|~kFŒZ­íÛ·Sî©ÕD$ûJ;::Þ¸qcß¾}’·ªÛWZRA[[›ÜWú×_ –,ÝÚlÁ£öó<„êH½ Œý¸º° ¸yÀÍnbêú¥OáJ_š20Yg €Ž#Øý¯™bn¼¼ð©:ª³Ó§O7ó½¼¼üüüzôè!¿¯4¹é‘ô¾Òñññ䥥¥¹¹¹’¥[ù|~dd¤››[~~~ó :§Óé0jÔ(ÊwuU Çú™0»1-6¾ð«6Õ궨¾ýö[é—˜ç!ÔÊê a –Šêh÷€/Ÿ|²ˆ '¸ùPVÍŽ ¥©pÞ'‹È£ÕÍAÝ´).!Ôè***È-:%+§nÞ¼YºÂâÅ‹÷ïß_RR"³¯thhhYYÙ¬Y³ú÷ï¿uëV—ððð#FPî+Ýt¾üò˳gÏŠD"ÊwÅåÊ•gŒ•ôxt}ÁÁÀƒ4uêj¨EôíÛWú%æy51:´@Û¡¶õ•TA׸¹Pš Ü|à䀀 `4>¿FQ¿* òâÿ[DFÕ !{#„ÈÂÂbèÐ¡ÆÆÆåååÐÄûJ7ºªAÁóªÂçU¥\q†§P8åOGêñ&MCÖöÓ“#쪪…)J# ¸‰7oÞ;vló‡‚Ðêýv|R"â7ˆjþb.~É3ÿÛDŽFÿðtØôkp\ß´¡"„ä(++Ëloß¹sgwwwÉòø¤3fH–\!ijj:tèСCÒ…ÞÞÞÿ-JÚ”®fý[UžÍ¦Žrgk5“þš­ÕÄ"BI¹9bâõÒ”#yEiU]kñËE˜ç5 Ù›ˆC^P½}ûí·lé(Ú#ºt¢Øæ³¯á[ðŠ>YD†›[íÓäÌp¸7˜FÀ4úäépg'ÐÃ/B‰Ëåfgg:t(22²e#á±Eìw<ö;^×ÚÊj]þ:]™FN­Õt­™êzͺ\+¿BôODþ‹³…¼r‘½‡þ˜-–Zf¸¸}£¡Èó0ÕC¨íQÕU=ÐîQsM½AÐo×Çt0Êž@^>prÀÂ:ÏË¿Yç>¬)(É U :øŽs»çôNŒL&ÓÙÙy÷îÝ ¶%Âßßÿüùó’ýµ³³³“’’ íííW­ZåîîÞ(±Õ‰ä¶H_‘––Ö°aÃvîÜiiIý·GûØ@‚åÊ© ÜWZúÞJ“¹oo•þ[Å~Ë+{Ëc¿ãqK… ¢N×ífÛÙ†bq–þ MêRC¾¨ººè¯\d;¡³£¿!fx;Eê`4­ASvÇgE¸9Pøa‰˜÷¡¦=V@ïMTõó€_ j& ¢Iñ.ªFRR™•——oÚ´ÉÇÇçÅ‹ÕýFÏÎÎŽˆˆxóæ ù²¨¨ÈÉÉÉÍÍ-**JSSóòå˾¾¾111_|ñE£jÈV­ä‘——GN5HLL¤¬©££³|ùò¦ˆ¡ÅQ®œÊb±öîÝ[ï6%ùœˆ/®È¨(«¨SüÑõüLai&W»+Ó°w'[7=í®ª:]™ê­n_% ¦‡¾½—~3w"v˜ç!„2÷óÃø%¶ædƒ¦-uýô½ðÏ:ºÚ³CÔŒÁÌŒ]š'ä¶ÈÀÀ€Ü)ËÈÈhË–-†††,õÎ1ÌÍÍÉ—ÁÁÁ£F:pàù²G¹¹¹¡¡¡ ÏóÄbqQQQý>+¹"ccã°°03336›­¥¥%_S___f.jcÅPoÜR!§X¨kÕŠ?ÏM©(|VUžÃ¯ÈåWæñ+sUE½ÙÒj¬®|ý/~«Å*ñ­€2S©ïœj67Bçå!„j¡ ZöÀ]}¡s_ê:¶ ÀõŒüúïëY 7èêPö¸yÔõÓvBÜç4.g!q²/CÉcà7tE.vèÐ!{{{ƒÍ›7?~ÜÒÒR[[û‡~€j6ªíDÅbñ®]»ìíí555/ÝÍF¹Wiu˜’åÒ¤Œ\EE…Á`hkk“/å·=•ÞAΞ=»xñb邃ƒøùù=úÕ«W©©©={ö”„G¾+} žžž%%%aaaPTT$ý.e$Û·o—¾9äz¿ÒWÄf³_¾|éááѯ_¿ÚÄSÈ ãÆûóÏ?+**WcÐåËÅ"âÍ­Ò 3þÝß÷ÁþÿoïÞ£šºò=€ï!$@ O#>xh[ªè tl«®[Úq®õ Öq+ÞªÓVºÚŽÖŽ•v¸í LµN]v¯ªTQ¡VKYv´Ö2¶‚ø|´*ˆ `'@gß?N'yÂ÷³úÇÉ>gïó;›ø¹ÏÎÞ—wÅ]Ú›pÅySéÖWªS¯Ý<¾ìûƒ‰å»&_ÚwiWÜ¥ÝS.]=ÜØ§÷í†vÓÕCGæ^+H«ru,Cò<`:Õ´õ{ÚÑlÿlñjc¶€ÇëVžwùòeJ)·®åqee¥Ñh 9sæ ¥töìÙ”R•J%6oÞ¬V«Y–Õh4&“)&&fÿþýæf³²²ló¼òòrîlNNNdd¤ÝBç¡Z‹Å7nÜ0ŸU(õõõÜñéÓ§'Nœh™úpÓ¿ÔjµÝ–õz=ŸÏ¿ví÷ñرcæð¸««  À²—¬r,ÛHÆgÛ9VO$ž|òÉÊÊÊîÄÓƒ¬zÛ9Û<¯£Õpq‡ò“Ye»'_Ú=å§|‹ûÏØÉv§MŽ¡Ã¤Qv6”i«ÿÙrãhÓ¥Ês5_½~«òÄ=»×Wž¸÷õ· 7ß½šÝxë+UC©FÛÐi2<À¾ö{†K;•þ»|OüåoÞªjþ¡ÍÕ E˜ŸŒÐŸ¿ŠŠßñYõ,J»µK2·b™@ °:&6µ»èíÛ·-¿úk{#Û½J:RYYÉmxÕÞÞž–––’’rþüyî”í¶§–¥Rippð7{ì1saIIÉ‹/¾xöìY•Je2™""~šªi ½?'ãä̽dÅ6½^ï¨sÌOd©±±Ñy<=ˆ;P(v¯wB}»ãÚ¡+¿¼G„5QB¹?åîl5š¿¸`Ô±:•Q§2 óóôeç;¡7ršŠ?¬ãŽ…>|ï÷pO‘Là!´ÿv>röðÈÙý±ƒ™K4–iK÷5ÞýW«·LðÈÒ ñse^Rä®~€!ÊvãQ»Û‰Êåò²²²G}”«uýúuÛ¦l÷*uTØ%‘HôüóÏïÚµ‹þguÛmO­ª<ûì³[¶lIHH0Ïr;xð Á`‰D€Ïçß¾}{„ „[·nÉå?ížg4===ëêê,›òðp6iÛ6’ tÙ9–‚ƒƒÅÓã¸rGy¡-áÝù¶õjvcÃ%­‡'Ïdp¸žË™7«LzVwÏØ¡6šç–E/ ˜þÇQ¶G<3²ºþ½÷Þ;{öì²eË ËËËÿô§?mÛ¶í½÷Þ#„‚Å‹§¦¦VUU]»ví­·ÞZºt©¿¿?!ä“O>afÛ¶m¤+N"Y³fe礥¥9oÊn<]à<†îT7ó1ȦÝ]ñÕ«·.·QJœ$y„O/^è$É„äÀ_¾öôß"æf.ÿ¿¦½:Ò~ËA‚àXq¨I!ä©÷#>!æ¹@$y®çêÇ&''§;¿»!Üœ0'ÇkÖ¬ñööfƲñˆˆ¡P¨P(òòò(¥z½>==}ìØ±b±8!!áСCÄf~Þž={F°víZNg·Þ?ÎjRš9$J©Édòõõ­ªªâ>2 ³bÅ ©T*“ÉV­ZÕÖÖf5eRZ]]½hÑ¢#FH$’øøø/¾øÂ|J¥R-[¶L&“…††¾úê«\$ï¾û®¿¿DDD^^žÝ0¸cƒÁ0}út±Xì(£ÑøþûïGFFúøø$$$‘ÿ¼ ¶|"K¶ñ8êŠnÆ`ÛN¤<ûòÓNîš|i×äK{â/[ÎÆ³ýïö×ög= "<êŽK€ËÍÍ]¼xq¯üîÚ¸qcuuuvvv÷«XmÞ`w/7Þàa°ãöŠ=”u¤±¼­îSsŽQßÒÊãñ 5Ý÷óòðä=¶>,za€‹"îUèî|Û÷¿Xýn@Ãü<ŠÎÆ£Ðÿ<½=äS%ò©’øµrM¾îSW¬©-fôŒÉCÀ£&JYBédŒ®Žt b´º åzNSíïÈazù#—¸ð³€¡ÈîÆ£=`w¯Ò‡ÜÀú“D.TÌPÌ ”Ü«ÔÕ]`j ™†+Z“žêµ¦‡oßvpwð÷jëõ7Ž6U|q¯“1E<-Mx]-ruPÐäy0ÙÝx´;¸•ðÌíîUú˜‚kðˆlœ·lœwìoƒY#mþ¾]€žèæ:ÉäÂ… Ë—/ T*•V§!K–,a†Û¾"99™an?Üæææ³gÏÊd2ƒÁ@)=xð`LL ˲Z­vذa;v쨯¯ÿøã===µZíÎ;ƒ‚‚Ž;¦T*Oœ8Áí´fµÞrbbbEEEQQQddä;ï¼c·RÚÒÒ²{÷n.<ËcBHii©Æ‚Á`°\F833sáÂ…555åååqqq6l0Ÿýàƒ,Ãã6j3w‚ÕZÄvŸÚQ´¶7µÛ?–}~úôi.)¼}ûv/þ”)¥IIIIII½Û¦ooïÒÒRóG.ïç:G¯×Óû;ó7¿ùÍúõëµZ­OEEWèååeùgÚÏÏϲz/c©ò"S°©jo•¬eE«eê:{ÿ.à:Èó`éÅ=qâDóÙqãÆÙ†gþh•çÙ}jGÑÚÞÔnÿX=K]]ÝÛo¿=räÈ9sæœ:uÊö‚žé‡}ú¸qãjjjœ<{7õCž÷á‡}þùçõõõÿøÇ?ÂÃÃäyÜ×/¢¢¢,“ìÔÔÔE‹UWW—••M:õå—_î£==}ìØ±b±8!!æ±ÊóöìÙ3zô耀€µk×êt:»…ôþ¬Ëò¸ËÈó\¯½Ù °³ ŒO vYpÿÇîy 2|>Ÿ8^-À¹çž{ÎÕ!ṳ̈§µELÍw­uÅM]çâÏc|Ã0h½ ëªÀ ÓÑÑñå—_šL&WƒÒäÉ“¹Ý{]H¯1Õžgî|×Z[Èt´Å!ÂQOø™á'Áºwлçô«‚MÕ·NªdãE£Ÿðý¤Ÿl¼ÈÕÛBžЯÚõžÞÃ|1u úò<€^CY¢ªÔ)K4ÊD.|l}˜«#‚! ÿ˜xX-UÊ‹e‰¦þ¢¶£Õ(óC&‰x! .†ñ<€‡¢­×þŸkB ?d’xÄdIèd±l¼7Ïߨ×Cžð°T•:i„r;hç8FIóíuÅšº ÌWÛçg+üFa‰;40?ÀZ{³û.…²D£Qê"~èdñäÕ¡B1ßÕ¡<ŒçXûîÿjª¾QËã}åS%ò©‰cx0(!ϰ֡6 |ø|!æÛÁà†<†õ­Žº¦®X#þr–¸·…ùy0$´ß3ÔiꊙºbM{³ÁKê9â’Ð8±«ãèCÏ÷§S&^õz„LsSî†G‰x®  !Ï€!¡±L-â ‘ÜÁ‚<ÜF©¯+bîžgâ×ʱÄóó`°2êXå%Míy¦ö¼¦õN_È ŽÚL®Ž ` Àx¸XC©öŸiÕŠySBº_«ü`ãÅ”&•EyËã}GL•„Ɖ=½ðZàgÈóÀeLzöâGõW³ %2…h~¶¢ûu›n´·ÖtÈã}½‡ãÝ€}ÈóÀ5ê/i 6U隬‰Bx<Þ²oæûsÒfÒ³ WÚ:ZŒOK]&À †@3éé…ë®çüÈãñXÖ<Ü@•´cfù«*Ûk‹4uÅšÆR­±“1E‚< g0žýªéF{ÁÆ*RÏïûäáɇ õZS‡Ú( ȧJ¸íeEW… 0Ø!Ï€~ÂèÅÊòO~äñ÷®ÖЧ7ÿ/…Êã}¥^ý€ûÁ{[è÷þ­+x«ªåN'e0u¦ÑOøIäXý wàûçÐÇ(¹žÓ”÷ü­w:©½a<3ŸÔ]Ðô[\ny!„¬_¿ž}ã±À9…½kÒSƒQod &êpc“‘ýÛëû¸Záááýù?·„ùy„’œœ|÷îÝ×^{ÍÕ¸#ƒ‡±~mç³í´ƒOÛù¬Îƒ¶yÒ6>«ã“j䙯õ}_¾sþüù­[·â/ÀCÂü<€Ÿ„……%%%¹:Š¡ˆ5ÒŽVcg‹©£Õ(ô£|<¸—IDATáËÆÇ#ÃèÈóÀÅ<>>.\ ”>÷Üso¾ù&WK¡PÔ××sǧOŸž8q¢Õ#8< Wà½-Àƒ‘H$„@`uLáóù ,8vìXssó×_½téRBˆT*-(((**9rä“O>ùÝwßyxxܾ}{âĉæ6cccmoÅ(ŠÚÚZ'…ÝTYYaù‘ûKÐÖÖöÆoÌš5‹:Øm̪¢B¡°<+‰æÎ{ôèѶ¶¶üüü+VpåÕÕÕ¡¡¡Ü÷vŸzꩪª*»Õ ï ÏèMIIIÇÏÍÍ>}:÷6V§Ó±,ûé§ŸªTª•+WΙ3G¥RÉåò²²2s­ëׯÛ6Å~B***FŒᤰ;(¥ÿûßýë_Ûž‰D/¼ðÂÝ»wüñÇîT4çµfK–,9zôè_|1yòds&`N%ÕjuQQ‘£êÐGçô¦ÇÜh4¦§§/[¶Œ+áñx‰‰‰Ÿ}öÃ0z½^ ˆD¢”””uëÖååå544œÛÐÐPSS“™™ØŠ¶ÕjõÛo¿’’b.\°`Á›o¾yçÎòòògžyæ£>êAÀCqÑûb€¥ûóóìÎc³<^³f··7Ã0æZ999B¡P¡PäååQJõz}zzúرcÅbqBB¡C‡ˆÍü¼={öŒ=: `íÚµ:În!µ˜'gulù«>,,léÒ¥–bæááTÔeEG÷¢”®ZµJ,[~»‚a˜+VH¥R™L¶jÕª¶¶6«*N`~@¯àQ³1†”äädBHnnîÃ7µqãÆêêêìììîW¹yófTT”ù²ÕG'…î*77wñâÅCäaúާ«pJ¥rïÞ½‡vu,˜ŸÐ{Š‹‹§L™’’’2cÆŒ‡iÇ××wõêÕÝ)pïméÕ÷¶ðððÞ W`<À=!ÏpOÈóÜò<÷„uU~òí·ß>õÔS®Ž!¤±±ÑÕ!¸äy„’””äêàgR©97ÀÃú*î óóÜò<÷„<À=!ÏpOÿÓ¢ Å[›“IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2splitbar.png0000644000372000001440000000047212502417165023312 0ustar robertousers‰PNG  IHDRM¸¿IDATxíÝ¡JCa‡ñç(˜ ëƒ%±Ø4 b±È˜Í¶3˜v^Á±˜…ãó–ŽELƒõ…¥•³ ,ÿb;íç{Ã/¼ðÞÀaYÕ¯åóøq:¼º¹›\òIIIIIIIIIIIIIIIIII-Òçl¹›«õ抢è_t/Ï»ã£ÑíYQVõðêäíã÷´×ùY¬Úÿµ§¦ivók¾_íåýÛ£I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$ýC[Vì=ü[„fÆIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Exception__inherit__graph.png0000644000372000001440000020173012502417165031143 0ustar robertousers‰PNG  IHDR ¸ÂÞÑebKGDÿÿÿ ½§“ IDATxœìÝy Uéÿ8ð‘„®]‰Äh´O™6“QªÑÌJhÑB ­RÍ´ŒiŠ4šfb”=”-BZF’i#%‰{ˆ›å^®«ë®ç÷Ç™ßýúd»îâZÞ¯¿ŽsÏy?ï{.÷í<Ï9Ï‘À0 Â&)î MP`ˆ"€HŒw€Á¡ªªjçÎíííâNô7ccã?ÿü“%à*2/âââÖ¬Yckk+îD@¿ª®®ÎÎÎæ¯RÀ  âââÄèWø?üí c0D ‘€@$ À (0€A£´´TBBBXÑ$:PRR²³³khhà#“ÚÚÚuëÖM˜0A^^~öìÙIIIÂÊÂ=D‚¾?~\WWW[[›žž^SSãææÖ×MMMÓ§O—““‹}úôéÚµkíííïܹ#Šly1vìXOOOqµþ¸L0|©ªªª««#„444|||¬­­ûáøñãß|óMpp0þã_|A$Ïž=»téR!çÊooo±4ÝœÁ„IBB"44ÔØØXUUÕÛÛ;22ROOo̘1GE¹»»o޼ߒJ¥ÊÉɽxñ!”ššjjj*++;qâÄÈÈH„‡Ã¹pႱ±±‚‚‚™™YfffÇž¼#(99yòäÉÁÝÝN§w¹ýo¯Q=HRRR_¾qã~^¢¡¡_³Ùl___CCC…yóæåääà[^»vm÷îÝã?~<$$_nnnÞ¸q£ŠŠŠ¶¶öðy$$$¢££ÇwæÌ„Ð?ü°oß>|:®¤¤”––†b2™jjjÁÃÃÉdâùgddèêê>|ø°óqëøyl]„0àAll,/ß!{{{ …‚ÿSoggG¡P.^¼ˆjllÌÊÊRVVf2™†EEE™˜˜p8*•:räÈÀÀÀººº#FP©Ô‹/„ÄÄÄÚÚÚ´´4mmm„PII ž¾°dÉ’âââììlƒ'Nt¹Ã°æææ   <½ŽË¡üüüÖÖV …òöí[sss/// Ã(ŠŒŒŒ³³sMMMTTB¨¾¾ÞÏϯc>ššš!2™Œ"‘HÝ  ‹²²²‚‚‚)S¦àù „lllÈdrPPB¨©©)&&FWW—Ãá`–œœ¬©©‰"ŸÕ«WWUU̘1ãСCø{\¶lÙ½{÷>~üØù¸qï­ åsïú—¿Ýà ï&//Ã0ƒñÙrII ‹ÅRWWÏÈÈÀ0lùòåÞÞÞ†‘H$iié³gÏ’Éd‡ÓÚÚÊf³MLLÂÃùa#"":˜‚‚nn]®ì9ÕŽKJJ0 £ÓéoÞ¼¡R©l6;++ o×Ðаs>$ /3]Æg0RRR………ø‰‰‰x>¡ÌÌÌŽ‡¥­­môèÑOŸ>Å0líÚµ‡Æw122ª««Ã—ÓÓÓ§M›Öñ=vyܸ‡ˆ÷Ö{þ@)0ÐE2„´´ôgË!))©U«V%&&666Þ½{×ÁÁ!¤¤¤”™™™­­­½hÑ¢HJJ–——O›6ÓÔÔ´sC“&MÂŒŒŒjjjzXÙî×k[[›§§çâÅ‹1 “‘‘)..¶²²š9sfxx8¾euuuç|”””ÔÔÔ^¿~Ý1fnnîìÙ³?}úôñãG6›­¯¯¯700àæƒŸq‹œœÜ÷ߟÐÖÖ–ššºiÓ&|}ee¥††~›¥¥eEE÷­uwܸiðÞºè@ô+[[Û¤¤¤¸¸¸ùóçã_4ÃáÄÇÇ“H¤Í›7[[[“H$--­—/_r÷***ê ÿo!T\\Œiv·²Wrrr[·n­®®®¯¯§Ñhvvvyyyø&Lè2Ÿ•+WþþûïX‡ó¡¨¨(&“)''§¦¦&%%U^^ޝ/++ÓÒÒ—;Vœ½½}BBBJJÊÌ™3¹5REE…[Édrvv6¾¯ ]7nÀ>µ.*üø†޻ȸ߉].³X, ¦¦†¿D£Ñdee.]º$++K£ÑN:E ®_¿^WWwëÖ­.Ç`¾ùæ›’’’§OŸNš4騱c]®ÄzƒÁ/S®««{ÿþýþýûuttØl6™L–¸uëV[[ÛÁƒByyyçÏŸï˜ÏĉñLêëë•••=zôòåË'N „nܸ7±nÝ: ‹òòòW¯^™˜˜àùtyXð±ýI“&uìˆsww·±±©¬¬|ùòåœ9svíÚÕqˆ¥ËãÖqÞ[üsïO„U`0 suu5j…Bé\___FFÆÈÈ(99Ã0ƒáå奧§'//offvåÊ•Î&88xüøñ***nnnÜïÖÏVr7Æê¸Üñ_mIIISSS|^z ÃüüüƧ££`ooO X,–¯¯¯ÁèÑ£ÍÌÌð“ |ãÊÊJMMM…¯¾ú*%%…û¾H$’“““²²²††ÆÞ½{ñ|º;,Û¶m“——§R©ÜÝ)ʦM›””””••·mÛÖÖÖÖ1ÿ.[Ç úÔzw)0ð<OðiÛ…òñÓO?UVVFGGó¾Kiié¤I“¸­öc+€ùÜáFK@ÿioo¯­­ ½zõª¸s"ƒü€þ“““3kÖ,gggsssAâ(**º¸¸ð²ˆt‘x"Ä.20ˆò¹Ã ‘€@$ À (0D.SôÁ¥K—¸Ë†ÑéYY)1æDíùóç|ï À---)))îuÀ²²úòòsÙì2ù†x¢¦««Ëߎp™2 ØlNbâó 2**Ö®ãæö­ŽÎ8q'((0^=|Xòë¯)EEV®œ¾g¥¡¡º¸3t‘z÷áÙË+%55ßÚzš¿¿“AÜA  'T*ÝÇçæå˦LѺukßÔ©:âÎ ÐEèVVÖ;OÏø¦&êÞ½K¶n]$- Œ>€3@h4Ư¿¦DD<^¾Üô×_TW#îŒÀàð¹GJ÷î½Âd²/_Þbañ…¸ÓƒÀÿa±8¿ÿ~Ûß?cÞ¼IçÎÙÉ ŒÁþÓÜüÉÅ%âٳʣGWnØðµ„„„¸3ƒœÁB¨  zÓ¦Pii©´´=FFâN 0Ù%ݼY°jÕ}}Õ[·öBu€á.((ËÅ%â»ï¦FEmSR-îtÀÐ]d k¾¾·þø#ýÈ‘;wZˆ;0Ô@`˜âp°C‡âccŸúû;þðà q§† (0 GL&ÛÝ=úÎÂààM––&âN MP`vÚÛ™Û¶…çä”GG»˜™é‹;0dA`ximm߸1øÝ;b\ܘ¹ˆ†©ÍÁáâÇ”ÄÄ]ð4 jP`.Èä¶uë.Ö×Sbc·Oš¤&îtÀЀaB¡­]H¡Ð’“Ýá!Ç @`èkiùdcÐÖFOJrƒù+A¿ÀG¥Ò/Q(4¨. ŸA`(ûô‰áàp±¦¦9)i—¦æXq§†˜‹ €!‹Ng9;‡¾ߘ°cÂq§†8ƒ`hb2Ù®®¯^Õ$$ìÐ×'+¬žž^ee¥°¢ÏÃÃãÌ™3üí €!ˆÅâìØ™]¿ÃØXSˆ‘+++÷îÝkff&Ę`Àòóóäÿ (0 AÇ'ed¼¾|yë”)ZB>wî\[[[¡‡P||¼ »C`¨ñ÷ψŒ|â<þ$qç†5(0 )±±OOŸNûë/G˜#ˆ\EÀÐqÿþÛƒãöî]òãð| ~P`"ŠŠ>lÛ¾jÕÌ}û–Š;‚ÀÐPSCvt š1c™3vâNG„JKK…ø%:PRR²³³khhèk&]é9Ïî^íÓÖÖð^wÈ À0èµ´|rt¼¤¬<:(h£´´”¸Ód?~\WWW[[›žž^SSãææÆwŽÆŽëéé)Hb ±±±‚D;ä`pc0XÎΡTj{ZÚYq§3ø¨ªªª««#„444|||¬­­ Ò‘··· ‰¹¸¸ìܹÓÜܼsäÁÎ`Ü~ú)ñåËêààMjje"K ‰ÐÐPcccUUUooïÈÈH==½1cÆ=z!äîî¾yóf|K*•*''÷âÅ „Pjjª©©©¬¬ìĉ###BçÂ… ÆÆÆ fff™™™ûˆð.£äääÉ“'www:ÞåJô¿ýK=ô5IIIÿÍzpãÆéÓ§ËÉÉihhूÍfûúú*((Ì›7/''§‡ƒÐ±&“éáᡦ¦F <<<˜L&w³bîÝ»×ÈÈhÛ¶m;ʺ˭×ÃÞs¢‚­ÐÐZZ{oÝ*è·B±±±½ncooO¡P‚ƒƒBvvv åâÅ‹¡ÆÆÆ¬¬,eee&“‰aXTT”‰‰ ‡Ã¡R©#GŽ ¬«« 1b•J½xñ"@HLL¬­­MKKÓÖÖF•””à_\øÂ’%KŠ‹‹³³³ Nœ8ÑåJ Ú››ƒ‚‚ðô:.#„òóó[[[)ÊÛ·oÍÍͽ¼¼0 £P(222ÎÎÎ555QQQ¡úúz??¿Žùhjjâ™pƒp1™Lnž†ùøø¬^½ºªªª  `ÆŒ‡â¾ÚCÌ’’’âââQ£F………qßow¹õzØ»L£×ÛÖÖ â«ŒŒ×ÚÚû.\¸ÛŸòX`òòò0 c0Ÿ-—””°X,uuõŒŒ Ö/_îíía‰D’––>{ö,™Læp8­­­l6ÛÄÄ$<<œ6""¢s)(ø¯¸ÆÆÆt¹²çT;RTT,))Á0ŒN§¿yó†J¥²Ù쬬,¼]CCÃÎùt‚JMMíX`ŒŒŒêêêðåôôôiÓ¦q_í!&žÉùó竪ª¸»t™[¯‡½Ë4zþ1 t‘0(UV6îÜem=mçN qçÒ„´´ôgË!))©U«V%&&666Þ½{×ÁÁ!¤¤¤”™™™­­­½hÑ¢HJJ–——O›6ÓÔÔ´sC“&ý7[‘‘QMMM+»ƒùbÖÖÖæéé¹xñb ÃdddŠ‹‹­¬¬fΜŽoY]]Ý]>Ü ¸ï¾û®c•••øÕe–––Ü—zˆ‰Ûµk×ôéÓ·lÙ‚ýÿJÖen¸{ÏiˆŸÖÖö ‚õôTüüÖŠ;~ØÚÚ&%%ÅÅÅÍŸ?ïø¢Ñh'>>žD"mÞ¼ÙÚÚšD"iii½|ù’»WQQQçPøÿõ¡ââb¼©»•½’““Ûºukuuu}}=F³³³óððÈËË À7˜0aB¯ùtIEE…[Èdrvv6÷¥^cJJJ†……=zôèÒ¥Køš.s0 À ƒaØîÝWÈä¶  ²²Ò½ï0ð,X°€Åbyyy999ák$$$–,YríÚ5 …Â`0¤¥¥åääœ=<<’““‰DâíÛ·:Ô9ÔîÝ»KKKsss9âèèØÝÊ––|dâ³e„PCC‘H$‰UUU>>>:::ªªªt:Á`ÈÈÈÐh´ãÇ#„Z[[]]];æsìØ1ßïªU«>üþýû‚‚+++îK¼ÄÔÓÓ;{öìï¿ÿŽÿØen¦!*|w®ÄÂÏîþÜÜr±´Žxƒáþ§Üݲ««ë¨Q£( w¯ØØX}}}##£ääd à †———žžž¼¼¼™™Ù•+WP§1˜àààñãÇ«¨¨¸¹¹Ñh´.WbFÈ?[îøe())ijjš¿äçç7nÜ8€€{{{Àb±|}} Fmff†Ÿ|ö¾¸:¶B¡P6mÚ¤¤¤¤¬¬¼mÛ¶¶¶6î«<Æäp8–––Ü€sãå°wN£çÏx Fëj„ 00ݸñÒÅ%âôi›õë¿K±±±vvvÆùé§Ÿ*++£££yߥ´´tÒ¤Iܯ¬Ï~ìa%àþAÇÅÅñ·;Üh À QQÑpà@¬ÝlqU¡hoo¯­­ ½zõª¸s¢c0  ËÅ%B__ÕÇgp?ì+''gÖ¬YÎÎÎæææ‚ÄQTTtqqáe%8ƒ`pøé§ÄÚÚæôô22ƒûÏvÑ¢E$‰ñ;Z¸?„ÀÀÀ϶ér%—Áý› À0‘˜øüÊ•ìË—·hhŒw.ð ºÈèÊÊê==ã·m[dañ…¸s  À0 Ñé¬mÛ"ŒŒ4Žù®÷­H ‹ €íäÉÔººæôôð 0èÀ}0 \·n½Ú²%ìÒ¥ +VLw.ÿ‘øòË/ÕÔÔð iIIlÄ–x³"òêÕ«… Â}0 5ÕÕ¤½{¯nÜ8oàT„о}ûª««B4Úˆš…úúQÚÚÔñã)âÎ ˆÄÂ… ¹©Î`ˆ8lÍš€¦¦¶›7÷´ ÇòòÞûøÜ|ð xêT}û–ZX|!)9ÈžúœÁ0ÿ››[yëÖ¾U]*+Oº‘–V`jª´qÙ2S(- P`p^¿®ýí·ÔŸ¶66Öw.ÿ!“ÛÎû'"âÑ_hÆÄ¸.X`(îŒÀ ]d ,t:kéÒßUUåccw „ó*•~þ|zXØAñ—_~°´4wF`Ѐ3–ß¿]W×¹u T—‡‹=<â©;wZ¸ºš%#îŒÀ`€$;», àž¯¯ŽÎ8ñfÒÚÚþë¯)ÑÑÙ+V˜þúë*55Eñæ#è"`  Réß~ë;eŠVpð&ñf’–öòÈ‘kÒÒR¾¾k¾ùÆH¼É€Á Î`(~ý5åÓ'ºxgãÿô‰ñóω119«WÏòòúAIi´“ƒ„»w_GE= Ù¤¬,/®Ê˶l kllˆØƒù@p0Ù%â×ÖF?r$aùrS+«/Å•CLLŽ…ÅA13Óª  8ƒ@üNºA£1ÏœOçƒÁúùçÄ+W²÷î]²gÏ))ø¿Ä,7·""⑟Ÿ½X<(ÚæÍ¡ùùÕN+WNïÿÀW‘ NL&{éÒß Ř×þo½¶¶ÙÁáb[=2rÛäÉêýŸÚà\qò÷Ϩ¬lôö¶éÿ¦Ÿ=«°´<;fŒÜ;û¡ºQ€€Ø””|üãô={–L˜ ÒÏM§§­]¸`Á¤ØØíp-2è"@<0 ³±ñ§PÚoÝÚ7bD¿þ«þèèÑÄ æýòË0¤DùØØ§OŸV¤¤ìîÏêÂá`Ç_ {pâÄ[¶,ì·vÁð1hhhõòJqr2›>]·ßÅ0ìèѤ¨¨Ççϯ[½zV¿µ †-(0ˆÁéÓi22RžžËû­E&“íî‘ñ:&f»™™~¿µ †3(0ô·œœòØØ§þþŽcÆÈõO‹t:kÛ¶ðìì²èh—Ù³õú§Q`€~Åfs–-óST•°³Zlogâ·R^½êbjªÓ?€à €~“óöm]zºGÿ4G¥Òׯ*)ù·ÝÄD«€þC&·ýöÛ '§¯ûçÆF2¹mݺ‹?R’’Ü ýÐ"A ÿøùý#))qðà²~h«­¾aC‘Ø»]\Õ¥²²òŸþKÓ ;²²²k×®•‘é§_C Ÿ¼ySþðÔ©Õý0¶O§³6m yÿ¾11q—¾¾ØÎ]>#®ÖAwäååW­ZÕ A Ÿ;–ôå—Úf¢nˆNg99¯_wÓÓSus=`³Ù¶¶¶qqqbÌ|FBB‚ÅbõO[P`è©©ù—¥¤¸KJJˆ´!&“íâQTô!!a§x« P`9ƒuêÔ•+§Íœ9A¤ ±XœíÛ/çä”'$ì06Öi[ô "þˆHlùùgk‘¶Âá`Äde½‹‰q…+’Á@Ñ"“Ûüü~£¥¥$Ò†Nº‘””ê,êó$x3u ZýuwäÈ;wZˆ´•  ¬‹ï8YX|!Ò†ÒÒR ¡{It ¤¤dgg×ÐÐÐ×L$$$JKKûº×`zÿ¾)$äÁž=–òò#E×JlìÓ'’Ïœ±]±bªèZ¸Ç×ÕÕÕÖÖ¦§§×ÔÔ¸¹¹‰;£ ºÈ¡³gokkstüZtMÜ¿ÿöàÁ¸={,íí犮À¥ªªª®®ŽÒÐÐðññ±¶íÐÚ g0ˆJAAubâóÇWHKK‰¨‰ÂÂÛ¶…¯Z5óÀ+5Ñ$$$BCCUUU½½½###õôôÆŒsôèQ„»»ûæÍ›ñ-©TªœœÜ‹/B©©©¦¦¦²²²'NŒŒŒDq8œ .+((˜™™effvì\Âûš’““'OžL ÜÝÝétz—+ÑÿvLõÐI%%%E üwë7¦OŸ.''§¡¡áííb³Ù¾¾¾††† óæÍËÉÉéò½GGG7îÌ™3=ìÅd2=<<ÔÔÔ‚‡‡“ÉLIIÑÒÒ"“É¡«W¯¶µµ üi › +Wž]üªª¦iÓŽÙÛ2,ѵ"[[[[[Û^7CÙÛÛS(”àà`„…B¹xñ"B¨±±1++KYY™ÉdbebbÂáp¨TêÈ‘#ëêêBBBFŒA¥R/^¼H kkkÓÒÒ´µµB%%%ø¾°dÉ’âââììlƒ'Nt¹Ã°æææ   <½ŽË¡üüüÖÖV …òöí[sss/// Ã(ŠŒŒŒ³³sMMMTTB¨¾¾ÞÏϯc>šššx&xVÜ€666d29((!ÔÔÔÔÝ^>>>«W¯®ªª*((˜1cÆ¡C‡0 [¿~ý† ˆD¢ššZNN/ B(66¶o$¿ À ™™o45÷>{V)¢ø­ff'--}[[ÛEÔ„àx/0yyy†1ŒÏ–KJJX,–ººzFF†aË—/÷ööÆ0ŒD"IKKŸ={–L&s8œÖÖV6›mbbÎ ѹÀà¯ÆÆÆt¹²çT;RTTÄKNóæ •Je³ÙYYYx»†††óÁ:˜ÌÌÌŽï·»½ŒŒŒêêêð•éééÓ¦MÃ0ŒL&kkk›ššâu‘ýY` ‹ áÃ0ÌÛû¦……ñÌ™ãEŸÉdoß~¹½¾E¤—ô„´´ôgË!))©U«V%&&666Þ½{×ÁÁ!¤¤¤”™™™­­­½hÑ¢HJJ–——O›6ÓÔÔ´sC“&MÂŒŒŒjjjzXÙnmhkkóôô\¼x1†a222ÅÅÅVVV3gÎ Ç·¬®®î5„~ŽÂ}¿ÝíUYY©¡¡_ÀfiiYQQ;vì¶mÛŠŠŠ¶oßÞsÚbá»y³ °°æÈ‘ïDÿĉëyyï##·jjŽQŠ­­mRRR\\ÜüùóñŽ/ÆápâããI$ÒæÍ›­­­I$’––ÖË—/¹{u…Ÿ² „Š‹‹ñoöîVöJNNnëÖ­ÕÕÕõõõ4ÍÎÎÎÃÃ#/// ß`„ ½æƒ’”üŸïáîöRQQáÖ62™œª®®¾pá·ß~»ÿ~ÓîOP`2‹sútÚêÕ³ŒŒD2YKHÈ¿—/? Ú4|n×_°`‹ÅòòòrrrÂ×HHH,Y²äÚµk …Á`HKKËÉÉ9;;{xx$''‰ÄÛ·o:t¨s¨Ý»w—––æææ9rÄÑѱ»•---ø€ÐgË¡††"‘H$«ªª|||tttTUUét:ƒÁ‘‘¡ÑhÇGµ¶¶ºººvÌçØ±c¼¼ÙîöZµjÕáÇ߿_PP`eeåïïÏápœÝÜÜ®^½z÷îÝÔÔT>¯èôOOÃGBB®®îþŠŠQÏÈx­­½ïÂ…»¢.t¼Át“èrÙÕÕuÔ¨Q …»Wll¬¾¾¾ŒŒŒ‘‘Qrr2†a ÃËËKOOO^^ÞÌÌìÊ•+¨ÓLppðøñãUTTÜÜÜh4Z—+¹ã u\îøå)))ijjš¿äçç7nÜ8€€{{{Àb±|}} Fmff†Ÿsôú~»Û‹B¡lÚ´IIIIYYyÛ¶mmmmýõ×Ô©S †aIII$‰—£Ýoc0X§a+ßX,ÎÂ…§ÍÌ ~ÿ}ЃWT4,_þÇò妢. vvv!¡L×ÿÓO?UVVFGGó¾Kiié¤I“¸_qŸýØÃÊ¡MBB"66ÿhD n´@˜Ÿø@Þ»w‰Ð#S(´õëƒ TOZ-ôàYàtç IDAT{{{mmmhhèÕ«WÅ èƒ@h˜Löüco?G[[ÈóZ²ÙW×Ë4#$dóÈ‘ÃëÿœœœY³f9;;››› GQQÑÅÅ…—•@X†×o*"•[[Ûìîn)ôÈü‘þøqéµk; ¡à-ZD"‘øØ¿£…û#@ ül›.Wa€p0™ìsçþqp0ú¥ÃYYïλãím óðƒÁºÈŽ˜˜œ¦¦6w÷o…¶ªªÉÕõòš5sÍ„Qƒ€0™lÿ{öösÔÔ…–Á`¹º^ÖÕ7öß¼©#‘F‰; NÐE€\¿žG$¶ìÚ%ä§Š8q½¼¼þöíýƒh`¿¡¡õúõ¼¸¸Ü¢¢ŠŠòãÆÑÄ›Aó[ À€ÅfsÎûgíÚ¯ÔÕÇ1lB³ˆˆÇaaÎ&¨1¬ˆP©ôë×óâãsŸ?¯;VîÇgþþûš“'âü% ß@@Pii55¤; 1fq1ñСøÍ›,Y2EˆaE¡¼¼!88+11JmÿúkƒsçìW¬˜*''ƒ’’’Љ‰¼OüªFŒè§o~¸“`fiyÖÈHãÂGaŤÓY+Vœ1B*%Å]FfàþøðaIPPVFÆk ±ëÖ͵µýÙ @åååÏŸ?Wz KRRRË—/—••퇶îï.ƒBfæÛ·oëþþ{½cž<™Z]Mú石º`vçNá¤TÏ™310pƒ•Õ—#FtqÅÐĉ'NœØÿ‚b þú0ˆüõ×Ýo¿5™4IMXSRòCBþ Ú8~¼²°b ‡ƒÝ¸‘þ|zqñÇ+¦úúÚ}ù¥¶¸“ø—“Sž“Sž–¶WX?| {zƯYóÕŠS…S(ØlÎÕ«9ýu·±‘ºnÝÜË—·ji y:0ôÀ üst¼ÔÞÎLHØ)”hl6ÇÖ6 ¡¡õÎýø ù‘‘ñúÌ™[EEllfyx,ƒÒxg0ð©  úÞ½7W¯º + ¿ÿ½çÏ+SSwœê’—÷þçŸ_¾¬þÿ½~âDUqg(0ð)8øß/¾Ð\¸ÐP(Ñž?¯<{ö–§çrSS¡…Òþûï·ÃÃbc·ÏŸ?IÜÁ üøð|ýzÞùóB¹ÉƒFcìÞ}eæÌ ®®ßMpwî:Ïd²½¼~tt4“’‚9¥? ÀÀ°°‡ªªŠß}'œ¡øS§ÒZcb¶‹ý«œLnûùçÄë×_ØÙÍ>qâû1cäěԠÀÐgmmô¨¨';w.–––¡ÿÃŒÁÀ+2¹-)éùæÍ ìM¢ÓY»w_±°øbÍš¯„•ïÒÓ‹ììôôT’’Ü º‘‚¯®\É9RÚÎNÐë‰/\¸ûñ#åÔ©ÕBɪO‚ƒÿuvµ±™uõêveeùþO +ÐEO8,2ò‰­í¬Q£š‰²¸˜øçŸwZÑÏs3™ìƒãŸûøØ®[7·?›Ãx’™ù¦ºš´~ýŸëlútÝ~kƒ wUUM¯7nèô…Hl9y2eãÆùS§öß„ü%%­­Ï³Ùœ7ö@uý ½‹ŽÎVS³dÉA‚üöÛQ£d<<– +«^åæVX[ŸŸ4IíÆ=::ãú­]pP`èƒÁŠŽ~âà0W~­'OÊŸ{yý¨¨(+ÄÜz™ùvíÚÀ… /_Þ2z4L^ ÄÆ`èEZZAkk»£#ÿs'3™ìC‡â-,Œ­­§ 1±¤¤ä»¹EÙÚÎöñ±Ê3f.^¼(x0HÉÊÊúûûëêö­— ½ˆŽ~bii"È-÷ÁÁÿVU5EDlbV=¸víÙÞ½WÍNž\-))œÆâââÞ¾}kff&”h`Љwrr‚€0•—7~l9w‹ù„ *BL¬;119ÄîÙ³äÀ+áF633‹‹‹nL0Xð7{zýdüxå øŸ|ìäÉJJ£÷ìY"ĬºúàèѤ'¾ïçûlèºÅd²ããsð=ù>¶éÒYYiáæÖYhèƒcÇ’¼½mœœ„ð¨M€nݽûšLþ´víþvg±8?ýtÍÜ|òŠS…›Xgÿ¿ºØ::Â0 ( ÀЭ«W³-š¬®>†¿ÝccsJK?8 7«ÎðêâãcëàÕ p ]«­mÎÌ|Ë÷é •J?sæÖúõóŒŒ4„›ØgâãsK:~üû!_]JKK…øØM‰”””ìììúš‰„„Dii©°RêRÇ<ÇŒóÝwßUTTôš˜pß Àе„„gcÇÊ-]ÊçÝûçϧ³XœƒE{ß~bâó½{¯þúë0ªÏ‡Ç×ÕÕÕÖÖ¦§§×ÔÔ¸¹¹‰;#„*//WQùŸ ¹yfeeq8GGÇ^ƒŒ;ÖÓÓSd9ò ºÈè†aW®d¯^=SZZŠÝkjÈÁÁY‡§¨8Jè¹q¥¦æïÞ}eß¾¥›6-]+C˜ªªªºº:BHCCÃÇÇÇÚÚZÜ!„‡Ãijj긦cžAAAÚÚÚ EQQ±‡ ***ÞÞÞ¢M”p@ž<)«ªjâ»ìôéššJ›6ÍnVÝ»÷f×®(ó}û–Š®•¾’ 566VUUõööŽŒŒÔÓÓ3fÌÑ£GBîîî›7oÆ·¤R©rrr/^¼@¥¦¦šššÊÊÊNœ8122!Äáp.\¸`ll¬  `ff–™™Ù±ÃïÿINNž}ºœœœ††þ5Íf³}}} æÍ›—““Óå{ŽŽ6667nÜ™3gð•ßBˆÉdzxx¨©©&“‰'–‘‘¡««;iÒ$„^QºÌ!Äb±BÍÍÍ7nTQQÑÖÖ>pà@{{ûg‡ßòøñ㺺ºªªªëׯonnîáƒ> ÐÉîÝÑK—þÎß¾¹¹åšš{SR^7¥Žž<)8ñàÁƒqGt­tdkkkkkÛëf!{{{ …Œ²³³£P(ø3YYYÊÊÊL&ð¨¨(‡C¥RGŽXWW2bÄ*•zñâE˜˜X[[›––¦­­*))Á¿²ð…%K–gggœ8q¢Ë•†577áéu\Fåçç·¶¶R(”·oßš››{yyaF¡Pdddœkjj¢¢¢Bõõõ~~~óÑÔÔÄ3Á³â´±±!“ÉAAA¡¦¦¦.߆a>>>«W¯®ªª*((˜1cÆ¡C‡ðä—-[vïÞ½üüüŽßÌó,--]µjÕ¬Y³ð—,,,ÊÊÊ ¦L™Â=ÜC„a˜¯¯¯‰‰IAAÁ«W¯æÌ™sàÀ úü zýdcccyûeé°W_w`Èkk£x††þËǾç»ïþX¹ò¼Ð³âzû¶ÎØøÈæÍ¡L&[t­|†÷“——‡aƒÁøl¹¤¤„Åb©««gdd`¶|ùrooo ÃH$’´´ôÙ³gÉd2‡Ãimme³Ù&&&áááܰ LAAþjll¬A—+{Nµ#EEE¼TÐéô7oÞP©T6›••…·khhØ9¬SÉÌÌìø~»|k†ÕÕÕá{¥§§O›6­còÜ·Ù9OiiéE‹á-2 ))©ÂÂB|³ÄÄDîAèdòäɉ‰‰ø6¯_¿Æ—»ü zýdù(0ÐEÀçnÞ,`2Ù?þ8“}oß.ÌË{üø÷BÏ WW×ìàpÑÄD3 À©?ŸZÆ;„´´ôgË!))©U«V%&&666Þ½{×ÁÁ!¤¤¤”™™™­­­½hÑ¢HJJ–——O›öƒšššvnïJBÕÔÔô°²;ÜÚÐÖÖæéé¹xñb ÃdddŠ‹‹­¬¬fΜŽoY]]Ýk>!ü̆û~»|k¡ÊÊJ üÂ0KKKîUaFFF=çÉ`0îß¿o``€úøñ#›ÍÖ××Ç·100èòý¾ÿž{LŒüñGÔÍ! ññºvíÙ7ß+××ÙlŽ·wÚÒ¥SfÌ/ŠÄ©«Wû7:,l‹ŒÌ ¼BÇÖÖ6)))..nþüùxÇFãp8ñññ$ióæÍÖÖÖ$IKKëåË—Ü½ŠŠŠ:‡ÂÿIGãßìݭ앜œÜÖ­[«««ëëëi4š‡‡G^^^@@¾Á„ zÍ!„×®.ßBHEE…[3Èdrvv6¾=·2ñBMMMJJª¼¼ÿ±¬¬LKK«ófššš•••ør~~þo¿ý†/wþ D ÿƒHlyð ØÆfû&$<«¨h8rä;¡g…úô‰±~}›Í‰ŒÜ&/?XŸï²`Á‹ååååäôßý§K–,¹ví…Ba0ÒÒÒrrrÎÎÎÉÉÉD"ñöíÛ‡êj÷îÝ¥¥¥¹¹¹GŽá^¹ÛyeKK > ôÙ2B¨¡¡H$‰Äªª*UUU:Î`0dddh4ÚñãÇB­­­®®®ó9vì/o¶Ë·†ZµjÕáÇ߿_PP`eeåïïßy_*•Úspiié5kÖ¸»»WTTþüóÏ]žˆ899ýôÓO………………»vízÿþ=¾¾ó!}íS`h Ìœ<ù0Îì뎟>ѧM;~ð`œ(²b2ÙNN—ŒE¿W¼Át“èrÙÕÕuÔ¨Q …»Wll¬¾¾¾ŒŒŒ‘‘Qrr2†a ÃËËKOOO^^ÞÌÌìÊ•+¨ÓLppðøñãUTTÜÜÜh4Z—+±ÿÒè¸ÜñkPRRÒÔÔ4;;ÉÏÏoܸq:::öööÅbùúúŒ=ÚÌÌ ?çàåýv~k†Q(”M›6))))++oÛ¶­­­­cbL&sþüùòòòÃ~†D"999)++khhìÝ»—{:¾ÓöööhjjŽ3ÆÞÞžL&swïüAôüÉ ?‚²´ô=p ÏH†ýýwæÄ‰‰Ä¡§„aØáÃñººûÿO ÚÛÛkkkCCC¯^½*î\†µ~û ` €ÿ“””§««üÕWz}ÝñÒ¥ûæîþ­ÐSº}ûÕ/¿$<¸Œ¿a¡%''gÖ¬YÎÎÎæææ‚ÄQTTtqùüp]®]ÖÑ+8ƒà?–˜øÜÆfV_g ll¤ÞßµËBèÃäçWíØ¹zõ¬Ý»-…Y,-Z„_FÕWø-Ü B``àgÛt¹t‰ï¢¯à €ÿ<{Vñáù‡fôuÇ îŽ-#ôé&‰Ä–M›BgÎöìáF @à?ÉÉùÆÆš“'w=Twêë[/_~¼c‡…œœŒ“¡Ñ7†Œ%}éÒFþ&Ü@ì À€B,'%åÅ?öùôåÏ?ÓUTä…>¯å‘#×ÊËëCB6))ndú B(;»”Dj[¹rZï›v@$¶DG?Ù¾}±pO2ÂÂÆÇç^¸àhlÌë½è @0ÈB¥¤ä›šjëê*÷i/ÿ{ãÆÉ;8Ìb&•?žäé¹|É>Ÿu&"ååå—.]êy Cl66b„øŸ¥(0 ‹sófÁŽ‹û´‘ØõøèÑ•Bœ¬ªªiÛ¶ðåËMwí²VL¡ÐÑщïá:à#ÆŽ5ENÎøÓ§ÂÖÖ'ý™èRRR]ÎuÖ3 ¬Ó´Õ 7YYïÖ­»˜›{LSs,ï{;–tãÆË'O~9R8¦½¹råy‹“šº{ôèÁ1Û“ɾs§ðêÕ쬬wªªŠöösÖ­›«­­$î¼À€g0 ””üéÓuûT]ˆÄ–ÈÈÇ?ýd-¬ê‚:x0îÇæÛ·÷ Šêòá94ôAlìÓææOææFÁÁ›¾ýÖd`>Aˆ 0Ü1™ì›7 úz'ãßgŽ;ÚÉéka¥‘ðìÚµç!!›ttÆ +¦ˆ¼~]û÷ß™))/ÆŒåäôõºus~Î@, À€áîßßQ(´>]?F"µEG?Ù·o©°N_ŠŠ>xxÄîÞmieõ¥PŠ›Í¹y³ 8øßÜÜŠéÓu/\p´²úîÑ=€†»›7_õµ,((kÔ(aÝûÒÚÚ¾m[ÄìÙ°J@¡Ã0ìöíÂsçî~˜;W?"b‹…Å’’p©è0¬±Xœ[· ÜÝûÐ?F¡´‡…=pqùfÔ(áܺïá×ÖÖîïï80¿²>,>}:-?¿zùrÓ3gì¦MÓwF`Ѐ†µììÒææO+Vtýˆõ.EE=æp0gg᜾DG?IK{yõª«ªª‚P Ñ£G¥ÞÞ7òòª¾ûnêùóqg(0`X»uëÕ_hò>FM§³.]ºïèh6fŒœà­¿¾mÛ¢ùó' MˆJJ>z{§Ý¾]8wîÄë×ÝfÏîóó @P`Àp†aØ­[¯Ìxß%!!·¥…æêÚ·[2»D§³¶o¿ll¬yèÐ Á£ ˧O ?¿;AAY_|¡yåŠË¢E“ÅÄ À€áëÅ‹*"±eùr^/Üb³9þþ÷llfBèÎ:v,‰H¤Ü½{`€\ˆ…aXB³ß~KÅ0tá‚£µuߦe 3(0`øºuëÕ„ *¼O(yófAu5içN!œ¾¤¤äGF> qÖÐèÃÕk¢óîñÈ‘„§O+6nœïáa%ô'§á ¾nÞ,X¶¬÷\ºtéÒ)&¨Øî‡dOÏx'§¯ûÔºˆ°Xœ¿ÿ¾wîÜ?ÚÚJ±±Û¿þÚ@Ü¡ ¦Þ½#VT4ðþŸ]öüùûÛ·÷ Ø.›Íqs‹ÖÔëåõ£€¡W^Þ°{wtAAÍž=Kví² u`È€†©›7 ÔÔg̘Àãö÷çÌ™hjª#`»AAÿ>^™šº[ˆ“˜ñÍæfúúÞ66Ö¸{×cÒ$51&†*(0`˜JO/úö[ïm,)ù˜ž^²IÀFß¼©óöN;th…à…JDbËîÝW=*qq1÷ô\.ÄÇ ÐübáˆHlyù²zß¾¥ ¿.ùë¯ \]͉# ŒŒ×{ö\•““IHØ9w®¾3C0ed¼–••æñöF©-..÷èÑ•Nåâë{ëãGJLŒ«„„x¦„¡Ñžžñ Ïllf:e#/? 5(0`8º{÷õüù“de¥yÙ8"âѨQ2k×~%H‹Ož”fúùÙ««$ߪ«IÛ·_~ó¦îÌ;GÇ>Ü[ ßàé@`Ø¡ÓY[X|ÁãÆaaœœÌ™Ú’J¥ïÝ{uÙ2S;»Ù|Ľ{o–.ýýÓ'ÆÍ›{¡º€~g0`Øyô¨„FcZZòT`RR^´´Ð6l˜'H‹§Oß Ph'OŠáºd‹óË/É¡¡œ=j ãù ?Áov22^ñ…&·Ð_º”õÝwS¹ßþñãÒððGþþŽjjýÝ9ÖÐÐêêñòeõ_9¬Z5³Ÿ[ vþù§ÈÖ–§®ªgÏ*ŠŠ>œ>½šï¶¨Túž=WV¬0ýá‡|áÏÛ·uÎΡl6çÚµ]S§Šóªh0lÁ ^Þ¼©ûðÌãLXØÃ©SufÍâ²úÓ§Óh4¦··-ßø“ž^´råy]]å;wöCuâ /w頻*LŸÞûcëë[oÜx)ÈèKvvYDÄÃãÇ¿7n4ßAúŠÃÁ~ûíÆÆ!..æW¯ºŒ+„çÖÀè"ÃËýûo,0ä厖¨¨Çòò²|wmµ·3÷ïýö[›YüEàƒÁòðˆKJz~êÔj/LÄ£G/^Ì`0Ä•à…žž^yy¹H›€† ¥=7·âüy‡^·d2Ù‘‘×®ýŠÇ{e:ûãêë)11®üí·ææO›6…¼}K¼rÅeþ|Ã~k·³>0Œ¸¸81æzöäÉ“sçΉº(0`yô¨„ÃÁxyJãíÛ¯©›6-௡wïˆÿyìØJÞÆ, ²²zGÇK#FHݹ³OWW¹í™­m<ÞaÖ­À FîßkjªÃˈHdä“… µµ•øh…ÃÁöî½jjªÃw}ê«§OË­­ÏŠ©©»HuAÃÊýûoÍÍzÝìÝ;âÇÅ|—‡˜˜œÂš3g윻ŒG©©ùkÖü={¶^LŒ+ éƒ .ÊÊê««Iææ½÷]¹’­­­´x±1­45QOžLݰa¾±±»÷UXØÃ;"×®ê,Èd6ˆŒÁ€áâþý·ŠŠ£z}Âƈ}êâbÎßùÇ©Si²²ÒžžËùI±/8ìøñë¡¡~ùå‡-[Šº9øg0`¸À/P1¢—ßù´´±nÝ\>šxö¬"&&çøñïE=>Îru¸|ùÑØCuéRii©‹ Ñ’’’]CC™´µµyxxL:UAAaöìÙ§Nb±X} 2ˆ@ÃÁzü¸Œ—þ±ÈÈÇ_¨©)öµ &“}ð`ü7ß}ÿýt¾räU{;sóæÐŒŒ7AAyœóîñãÇuuuµµµééé555nnn}ÐÚÚ:kÖ¬ÜÜ\ŸçÏŸ>|8::ÚÒÒ’Ífw¹}yy¹ŠŠ ¾â»¸„Ï›÷Îä+;ž45Q--}§M;^ZúQt­Ell,/ß-!{{{ …Œ²³³£P(/^D566fee)++3™L ⢢LLL8•J9rd```]]]HHȈ#¨TêÅ‹ BbbbmmmZZš¶¶6B¨¤¤Ï_X²dIqqqvv¶Á‰'º\‰aXsssPPž^Çe„P~~~kk+…Byûö­¹¹¹——†a EFFÆÙÙ¹¦¦&** !T__ïçç×1MMM„™LF544|v=z¤¦¦ÖC’øf—,,,ÊÊÊ ¦L™‚g޲±±!“ÉAAA¡¦¦&¡|F‚†¾––OÚÚûRR^ô¼ÙµkÏttö}üHékü»w‹44öÜ¿ÿ–ß{G$¶,\xzÆŒeeõ¢kEXx/0yyy†á³–u\.))a±Xêêê†-_¾ÜÛÛÃ0‰$--}öìY2™ÌápZ[[Ùl¶‰‰Ixx87lDDDçSPPÀÍÍÀÀ Ë•=§Ú‘¢¢bII †at:ýÍ›7T*•ÍfgeeáívΧ»1Òœ, IDATóäÉ•’Ä×p— †””Taa!¾>11Ï!”™™Ùñö|ðû§À@ú²³Ë0 ›?RÏ›ÅÄ<ýæcA¡OÁétÖÑ£I+VLå£cG?¶ØÚúÓé¬ë×Ý&NTQ+b¡  €’––þl!$%%µjÕªÄÄÄÆÆÆ»wï:88 „”””233³³³µµµ-ZôàÁIIÉòòòiÓ¦qcšššvnhÒ¤ÿ>}##£šššVv‡û•ÝÖÖæéé¹xñb ÃdddŠ‹‹­¬¬fΜŽoY]]Ý9Ÿ±cǪ««ççç6??æÌ™¼çóñãG6›­¯¯ÿh``ÀÝ?UâÀ ú>,12ÒPRêi†˜÷ï›=*Y³æ«¾ ù÷ãGÊñãß `OêêšW¯ög2Ù ;ûmf³ÂÖÖ6)))..nþüùxÇFãp8ñññ$ióæÍÖÖÖ$IKKëåË—Ü½ŠŠŠ:‡ÂÏBÅÅÅøqw+{%''·uëÖêêêúúzfggçáá‘——€o0a„.óqppðòòêxÍX[[›••ïù¨©©IIIqgA.++ÓÒÒ—%%Ü÷ù€K¡{ô¨¤×Ó—„„\eåÑ––&}Š\_ßzîÜ?îîßò7kY¯Þ¿oúþû?9,!a§ˆšÈ,XÀb±¼¼¼œœœð5K–,¹ví…Ba0ÒÒÒrrrÎÎÎÉÉÉD"ñöíÛ‡êj÷îÝ¥¥¥¹¹¹GŽqttìneKK > ôÙ2B¨¡¡H$‰Äªª*UUU:Î`0dddh4ÚñãÇB­­­®®®ó9vìáØ±cõõõ·oß.))IJJš3gŽ––ÖöíÛ{H’J¥v|#ÒÒÒkÖ¬qww¯¨¨(,,üùçŸñs»JÔ}pˆW}=ESsï?ÿö° ›Í™=û—'®÷5øÁƒq³gÿB£1H°[Db³™ÙÉ9s~­ªêeÀv á} †ÛïÔݲ««ë¨Q£(”ÿ‹Õ××—‘‘122JNNÆ0ŒÁ`xyyéééÉËË›™™]¹ruƒ ?~¼ŠŠŠ››Fër%ö¿cé—;~gJJJšššfggã/ùùù7NGG' ÀÞÞž@ °X,___ƒÑ£G›™™eggsãP©Ôýû÷O™2ENNÎÄÄääÉ“Ÿ>}ê.I&“9þ|yyùÏ’!‘HNNNÊÊÊ{÷îÅ3ïî ø  â’“ótu÷·¶¶÷°Íƒï44ö¼}[קȯ_×jkïKHÈ,Á®55Q-òþê+¯š’(â‹”¿¼Ž9²nݺ>íÒñ»¸ó=¬£þϧ Üh †¸‡KLMµ{ž»%&æéô麓'«÷)òÉ“)_~©½jÕLÁì™ÜfkëO£1®_wÓÐ+ôøƒB{{{mmmhhèÕ«WÅ àŒÁ€!îÉ“²¹s zØ€J¥ß¾ýÊÖ¶oÃû÷�ÿ—×BŸ!ŠJ¥;:^"‘Úbc·Ûê‚ÊÉÉ™5k–³³³¹¹¹ q]\>Ÿš¡Ë•b4Ðò8ƒCÙÇ”²²z33ý¶IK{ÉbqV­šÁ{X‹sâD²•Õ”Y³ôÎñ|úÄpp¸XYÙtíÚN‘N 0ð-Z´ˆD"ñ±#÷¾@ ül›.WŠÑ@ËGX À€¡ìÙ³ ))ÉÙ³{*‰‰Ï/6VTÅ{ظ¸§••]Ì%ƒåìúîñÚµFFýñ8D ºÈÀPöôi…‘‘†‚‚lw‰-•ôi¥µµÝÛ;mÆyãÇ óáÄ,gûöËÏžUDEm51ÑbdÄÎ`ÀP–“SþÕW{Ø %%_^^¶O·¿f²Ùؾ}KÎîÿp8Øþý1÷î½¹|y«Ð»Ý8ƒC•J/*ú0gN/ýcË–}9r$¯ÿi}ø@þûïÌ={,ÇŒ‘FŽÿñöNKL|þÇëz} ƒœÁ€!+/¯’ÍæÌ™ÓíÌ»wÄ‚‚êŸþŽ÷˜gÎÜÒÔ»qã|a$øŸ°°þþ÷|}íDý¤²~fiiÉdŽho—SP ˆ;ð¹?öC+P`ÀõôiÅøñÊjjcºÛ 9ù…ºú˜¯¿îe®7ojŸûû;IKKõ¾5oŸÿüsÒáÃ+ø{HóÀ¤¯?eáBçšY EFJŠóÕWDIÉÏ'$⥤¤dii)êV À€!ëéÓòN_0 KJz¾rå4II^odñö¾9uªŽµõT!%ˆž>-ß¿?fãÆù»vY+¦UT4$&>OM}Y\LTQÑ´±™am=uæÌ RRÐ?LAC“É~þüý?t{wK^Þû÷ï›x¿~ìñãÒôô¢ë×Ý„ugeiiýÆ!‹{yý ”€âB¥ÒÓÒ^ÆÇçfg—%ciiâé¹ü›oŒdeмñ@, À€¡éÕ«ÑÃ%d‰‰Ï ÕMMux èãssáÂÉ=_“Æ»úúVGÇKúú§Aú>‡ƒ=zTŸ{óf“ɶ°øâÒ¥‹C]\P`ÀÐôôi…ŠŠ¼¾~×çb2Ù))ùÎÎ xŒvïÞ›gÏ*oÞÜ+”ÜÚÚèë×IIIFDlŒ_ÇÕQQOnÜxÙÒB›?ÒéÓ6VV_öp³¶ À€¡ééÓòÙ³õºëÎú÷ßw$RÛ?ò4= †a>>7—.2u*¯§;=`±8®®µµä””ÝãÆõô ´†Åâܾý*$äßœœrAaíÚ¯lm¿26†@· À€!ð§OËÝܾínƒÄÄç3fèò8ÙWZZAQч?ÿÎcNxò¤,!a0M5F&·]¹’öHl177ŠˆØòÍ7Æ#F Êž=П À€!¨¬¬Djën¼¤­~ûváO?ñtû ‹ÅñöNûþûé}Ì¿Kaa¯\Épš6MWðhýàÙ³Š  oß~¥  »iÓ|GǯÕÔÅ4 À€!('§lôè‘_~©Ýå«wî2™,ïjLL|^]MŠŠÚ&xV•ž8qýÀ«AqCå¿ÿ¾»p!ãáÃÂ/¿ühc3«çgêÐ0=}Z1}úøîúpRSóÍÌ ”•å{Ã`°Îž½ek;[ðî¬òò†-[ÂV¯žµw¯0'1…ÌÌ·~~wž?¯´°0މq]°ÀPèϼÃ0=}Znc3«Ë—Z[Û33ßž:µš—8W®äÔ×· ^(Ú† Áúúª§OÛJtØlNbâó¿ÿÎ,)ùøã3Ξ]#”^A0œACM}}ëû÷MÝÍI|ïÞ‡ceõe¯qh4Æùóÿ89}­¥¥$H>l6ÇÕõò§OŒk×vñ>«fÂKK@À½²²úµkç„…mî“À°5ÝÄ‹ï%%%fÌßå«·n|õÕD^® {ØÖFß³GÐùš¼½oæä”_¿îF (Jž<)ûõ×”W¯jV®œ¸ÎZ€ACÍ‹ïõõ ]Þ÷×ÞÎÌÈxsøðŠ^ƒ´·3/^¼ïäô5/C5=ÀÏ þüs]wWˆQiiýÉ“©ÿüS¸lÙ—ýå ¯OwF`¨†šüüêî.ÎÊz÷écùrÓ^ƒDD<úô‰!à”/^Tíß³}û7«Ww= $.ÕÕ¤“'SÓÒ^Ι3ñÖ­}B¹€Î À€!ð—/«´êòÕ[· fÌÐUWïv\{;óï¿ï­[7WI‰ÿ;훚¨..ásæè:Ôû S¿¡PÚÿúënhè]ÝqW¯ºÂóÍ€HACÊû÷M--Ÿ¦Níâ †Édß¾]èîÞííý\±±O[Zh;v,æ; 6›³}ûå#¤×œ;ÞoÞ,8~üzk+mÿþ¥›7/˜W€¡~ÃÀ’Ÿ_%--eb¢Õù¥ÿÇÞy‡5‘¼q|RE¤÷ÐDEl *¢ˆ D¬ ¢§¢¨èÙ=΂;=T°bDTTDltE@¥÷P)»¿?Ö_.†Ðk¸ù<÷ܳ™}çÝ%î7óÎÌ;QQ4}Þ¼6vsa2ÙáË–veÉú±c!IIùÏž9KHtçÎÊ&'§âàÁÀˆˆï66†ÌëâÀÒN À@‰‰y::¾¿ÍCC“õô”TUÛ˜€ø©´´fË–Îw_?N¼zõíåË«úðy]]Ó©SÏnÞü0z´ÊË—»øJ/ÒC@ (Zág³‘ÐÐ/kך´~9›œ?¶páØ6u¨%ÒÒJvíºooo:~ßçƒ ˆ?qâ)“É:wnù’%ãá‚|H/2p`±/_ ll&4?õñcNyym›óÇž>MÊË«¼ukC稭mtp¸®§§tøðüÎYè.JKiû÷? ý2¾ÁÑ£ Ûœ×ôP` ‡ŒŒR:Á·š¬¥%×ú*BAÿúëåœ9úZZ m¹¸ø×Õ5>|¸•D"tÎB×AQÔÏ/îèÑ`IIá{÷6M:¼¯<@ À@IIùÂÂdmm^AQôÙ³dkëq­_ö--­ôâÅUkÝÇçÝÓ§I÷ïoîÃûe;wÞOJÊÛ³göÆÓúPç 2HLÌÓÓSj¾Å}rrAAµÍøØùóaææº#F(v¢éØØ,W×Ç..³'OÖêÄå]‡Éd_¸æá®§§ôüù.¸Ñ$¤?2pHLÌã»ÉØË—_%ZOÖòöíÄļ'Ovt¢]*µ~ëVßÉ“‡uqå§Á:._¾äïØañÛoÓ»·ã’““óòåËn4\„„„–/_N&“ÛY d€À`°RRŠ6nœÖüÔ‹_gÍÙúªË—#ŒŒ4ZJ‘Ù (ŠîÜyAP•x|oOÓBQÔÛûÝÉ“OõõUÂÂ\:=zÔ ûöí»ÿ~·›…("""ÖÖÖí¬ 2@HI)b2Ù¼iµŠ‹«SS‹÷ïomƒäÏŸóÞ½ûqçŽc'Ú½zõíëש9µ'Cs÷’]îät'5µØÕu‘ÝÄš…Ìf³—.]êïï߯!‚‡c±Xí¯ß_’X@ ]$11_\\¸ùÖ“áá©BB¤É“‡µr­·÷[]]E33Ž6š{âÄ“;gÃ?½fu\ÌÍÏàñøðð=+WÃ5.~ìÁ@IIyúúÊÍß³¯^¥˜˜ k%ïVa!5$$ñôéem±¶¶qëV_##ÍmÛÚÎoÖ””ÔìÜy?22}ÏžÙŽŽfý'×ÂüjB_¾èëóÆÇššX>¤™›håÂk×ÞKK‹´9‰¹9<¤Ñè.¬èÍ¡—ׯS--Ïee•ûûÿ¶e‹9TH~;!&“ž^:r$o¢­èè :9cF‹C£5úúF¯]kB&w¬7ÿàÁLJ?]¸`×k‹ä™Lö¯Zåef¦ûê•‹‘ŸùrH¿ d ž^Êd²›/þxõ*EGGAQQ¢¥ ïßEtíÚÉj.3³lß¾ëÖ™LŸ®Ûw;NjjñŒgüüâ®]³ÿë/[‘A½Ón?!##£™p\HJJ.[¶¬¼¼¼£žpŸ7o^vvvwyØEEE+V¬PWW™0aBPPPO·ØE À@ß¾DÔÐà¤ûêUJ+ñ1&“}åÊ›eË ÅÅ;TŸÉdoÙâ;t¨L¯%óö~7gŽ»”ÔW¯\fÍÙ;l¢¢¢Š‹‹‹ŠŠÂ ¶mÛÖ#oß¾EdåÊ•Ýî'7•••cÆŒöóó‹‹‹[¾|¹­­í‹/ºn9++KF†wvL·ù!ïß‹‡§ð Hdd”ååU¶{ö,¹¬Œæè8µCm;÷<-­äéSçŽFÕ:AMMî]~/^|ݱcæöípÄ¥»••UPPP(”S§NYYYuш———²²2Fëü6B­säÈ333oooìãˆ#JJJΞ=;kÖ¬.ZF¤²²²Ëò~_!””"¾ñ1IÉ!ãÆ©·tÕåË––£:”™ÿãÇì‹_:dÕ ¹XRRŠæÎý;66ëÆ ‡]»,û¹ºàp¸k×®éêêÊÊʺ¹¹Ý¾}{èСâââ‡899988`5ëêê„……?þ  Ñ××ÒÐи}û6A]]]QQQcc㈈îà¡ >|¸œœœ““SSSßBðk`­• @“ûÙ÷}òä ÖK P(nnn6›}æÌmmmQQÑÉ“'ÇÆÆ¶d€­ink=<<\UUõÇÍ+´ù>ܾ};w£GŽñññÁŽ«««×®]+##£¬¬¼{÷îÆÆÆ–n‡ÃݹsGWWWJJêôéÓ€‰'0±ìfPDð=úЕ+ox —,ñؼùVK—DGgP(;>~Ìn+ÕÕõcÇ]½Ú«sNvˆû÷c‡uY¼Ø£¤¤ºšk…¥K—.]º´Íj[[[†ýÄ^¶lF»rå  ¢¢âíÛ·ÒÒÒL&EQ___===Aêêê äééY\\ìããC$ëêê®\¹"''XTTôôéSeee@zz:ö²Â,,,ÒÒÒbbb´´´Ž=Ê·EÑêêj/¯Ÿ,îc@bbbmm-Fûþýû´iÓ\]]Q¥Ñhd2ÙÞÞ¾  À××PVVæîîÎí¢¢"æ ·‘ŒŒ kkëñãÇ·dópöìÙ¯_¿...n^¡ÍH¥RUUU-=;;;ssóÌÌÌäää‘#Gr v–û°dÉ*•êå娬¬ä>Ûæ_ÙÏϯ=5ÖoU¤RVF£Pv¼ÿƒ»°¦¦AUu×Ç[ºjÍo+«ójhÇŽ»úú‡**j;éhû¨«küí·[JJίéѶÚCû&!!EQƒÁsœžžÎb±ÂÃÃQ3gŽ››Š¢UUU$éìÙ³T*AÚÚZ6›­§§wãÆ ŽÙ›7o6˜ääd쬟ŸŸ––ßÂÖ]åFLL,==EѦ¦¦ÔÔÔºº:6›ýöí[¬]mmíæþð!‘HS§NmÅ·‡|+´ù«ªªT*•ï1 ðõëWìc`` ç±`%<Ám¼ç¦_wº!öšZ1â—9ÊïÞ¥!ÚÒ,¯¼¼Êðð”õëMÛßÊ“'I~~q§O/ëÑ í¿/¶´tÿð!ÝÏï·-[Ìk}¾¨¨(€D"ñ‚µµu```EEÅ«W¯ììì’’’111ÊÊÊS§N}ÿþ=ÏÊÊ200àØÔ×ç“{ذŸyttt Z)l 쎢h}}ýÞ½{§OŸŽ¢(™LNKK³´´7nÜ7°šùùù-ùÃ1Â`0Þ¼y£¥¥àk„ãXëZy€’’’òòò)))Üõããã'L˜ÐÐÐPZZÊf³555±r---ž'À£ˆX?Œc¼ç€xRRŠååÅyRED|70P‘à?=ìúõŠŠsçŽngeeµ¿ÿ`ccØ£“¸=J°²:/!1øùó}•ö¿çXºtiPP¿¿¿‰‰ ø¢Óé‚TUU988XYYUUU)))%%%q®úöí[sSØ/n@ZZö®l©°M„……7lØŸŸ_VVF§Ó—-[æââ’péÒ%¬‚ººz›þpÃ×öBo¥BëÌŸ?ÿܹsÜRáëëËd2………ååå BVVVž™™©¤ôó÷6,TXXÈm ï¥7?ˆÀóý{ш¼Cî©ffü»/ Œ{÷bí쌛ïÃE >v¬½Id; ›;²e‹ï¼y£¶P(-.Ü\LMMY,–««ëªU?·tÃáp>¤Ñh ƒD" ÛÛÛ»¸¸—””<þü÷ßonjûöíñññû÷ïçLn^XSSÙsÅ} (///)))))ÉËË;uê”ŠŠŠ¬¬lSSƒÁ “Ét:ýÈ‘#€ÚÚÚM›6qûsøðáÖo“¯‘Uh‰ãÇ¿}ûvÕªUQQQÉÉÉüñÇ… Ž? ‘H666NNNÙÙÙ_¿~=xð „„àÖ­[4íÂ… mÚ¯««k£ýÑ4¤2sæ™?ÿ|Ì]’šZD¡ìøô)‡oý;w¢ÕÕwWVÖµÓþ;ÑÊÊ;ãⲺêh P©õ66—ÕÔvß¹ÝCMt…öÁpBF-oÚ´iðàÁ4s•ŸŸŸ¦¦&™LÖÑÑ FQ”Á`¸ºº:TDDÄØØøîÝ» ÙŒ···šššŒŒÌ¶mÛèt:ßBôמAx<^__?&&;åîî.%%¥¢¢réÒ%[[[999‹uæÌ--­!C†ÇÄÄ€ÿGœ8÷ÅCs#<ƒÍ+´óæää,Y²DQQQTTÔÐÐðñã¿öUUU«V­’––¦P(ÎÎÎØ8v옄„„¦¦fpp0÷íóg2™&&&"""íù+ÃA~ȃ¥¦¶ûÁƒxî«Wßèêîg±Ø|/17?íät§ö³²Ê45÷ðX7’;fÌCC×oß {¨‰.ÒNiû÷ï_±bE‡.áy5óŽnÿ5¤‹tT``ˆ "Ødf–1,žþ÷ïÓ&MÒâ‹ÏNI)Z»Ö¤=ÆQÝ»÷²²”‹Ëìîq÷Wüü⬭ÿÑÒ’{þ|gç¶j³²²®]»¶aƾöÒ{@6©©Å${'Gƒ•ajªÍ·þõëÆŒQmçö-7nDÆÆf^º´ª•lÿƒÉdïÙãïì|oýú©wïn’”ìíÍÊz™ØØØñãÇÛÛÛO›6­+vÄÄÄy÷…ã[éÀT1Á&5µhØ0yî]èrS§o^¹¬¬öéÓ¤³gmÚc9'§âøñ-[Ì»½om$‘zü¸õºu˜*-¸L:[ÉÑQ°-œrrržžžÆd²oÝŠ²µØž$•wïÆDGgž;·œ»oÔu¢¢2fÍ:G&_½rêð@0õõMTmmyN Ö˜””ÇW`^¼øZYY»zõ¤6ÍU»º>Þ¸qj;‡jÚI@@¼­­§‘‘F`àÖ^Û¦ éC`ˆ "Àde•£(ª¥õ¯ÀDE¥#jj:¬yåÛ·£ÌÌt•”$Û4»w¯¿‚‚øÞ½sºËOAyäãón×®Y;wά0H§`22ÊÈd"w¾ý÷ïÓFŽTn>)+'§âÇôÛ·Ûž#ñ=8Ø©»¶{ild:9Ýyñâ«»ûòå˺Å&"@0¥êê2Ü¥¼}ûcÎ>é}}£ÕÔ¤ÍÌtZ7XYYçêúØÎθ•]d:Öèàà“œ\pãÆú6[û÷ïw{¯ "“U RCQö¦{Cz"±ª"Àdd”q¯€ÉϯÊÊ*Ÿ2…w†Á`Ý¿»~ý”6ß’G“Éă;³¿asŠ‹«W®¼ZSCvÒÑéñ ÊzˆãÇ[[wO66ÍÉ©ýñ£úÇš¼¼:ŠŠÂÒ¿u‹}HOC æÌé@è D€ÉÈ(9Só1**cÐ âøñCyª½|ùF£ÛÚNlÝÚË—_>üx玣¨¨P×}KNÎ_½ÚKAA"4t§¬¬h× ö]±“SñæÍwï~DF¦×Ö6*)IššŽØ³GÛÄD[F¦÷>€ô9P` ‚ ›df–oÞüïttÆøñêBB¼»\ܹmf¦+/ßÚféõõMΟ?¦[Y¯_§::Þ46Öôô\#,LîºAƒFk|ûö{XØ··o”—×*(ˆÏ˜1âìY##M99–[H‡€Tòó« wˆ,**£ù(zNNÅ»wiׯ۷ní̙кº¦?ÿ\ÔuÇî܉޷ï­íÄ'·sG€Ca!5<<5<<%22NgŽ©´bÅDss]5î¡2È(0A%=½‡Ãqæ(P ¨'jòT ˆ——›>}D+¦’“ó}|ÞŸ<¹¤ë±¬sçž»»¿Ü¿î–-æ]4%(Ô×7½~úþ}Ú»wiyy•òòb3gêýõ—­©©vK¾Aþ#@*eòòb""ƒ°11™ƒyf±ÙȽ{±66†­ü|f2ÙÎÎ÷ÇS·³kc¦uX,dÏÿ‡?º»/·±1ìŠ) ®®éõëÔ/¾„‡§ÒhôaÃäçÎÕ73Ó52ÒèÞôÁ DPÉÈ(ã^b›5z´*OÚãׯSËÊh¶¶­­>ññyŸ™YîÒ•™¸t:cóæÛÑÑ·oo˜2…OžÍCi)íå˯ϟ‰ŒÌ@dâD­={fϘ1‚{5‚"¨dd”Žùï60ÑÑóææ©sçNŒ‰‰v+ï¾ÜÜÊ3gB·l™®©)×=x} IDATR6©¨¨[³Æ«¸¸æÑ£mººp[Eãã³ÃÂR¾¥¥•ÈȈXZŽòòZkjªÝ|J DPIO/]¸ðg^äÒÒš¬¬r#£_`ÊÊj#"RÏŸ_ÑŠW×`99Ñ­[;?^’]¾bʼnðèѶ÷+þË—‚ÄgÏ’³²ÊeeEgÎÔ;xÐÊÔT»Û7È Hà·"TVÖUW7pBd±±ÙD"ÞÐð—0Ÿ„…ÍžÍga?ÆË—_CC¿øùm<¸“3‰SS‹íì®ÈˋݺµA »ðœœ’ôäIbnn¥ªªô¼y£gÍ9nœ:³¨A:ˆ@’•UÐÐÅ>ÆÆféé) 2ˆ»Î½{1ÖÖc[ú­ÝÐÀ8p pÞ¼Ñ-í}Ù& ¹+W^3FõêÕµ\¡í‹!~@$ÙÙBB$EE ìcLLÏÐúçÏyé饭ÄÇ.^ ¯®nøã…s "âûúõ×­¬FŸ;·\л$'ç?~œøäIR^^¥ªªôòåFóæ60èέ ÿM À@’¼¼J)lÞ•Zÿý{‰‹Ëlî q::”–Þ’™™eá..³)‰N´þäIÒ–-·W­šô矋7÷~AõáßÒÓK±8˜••ÁèÑ*}ídà"ääT¨©ýQ‹ËÆá÷KƒôyëÖé-]~à@ ººŒ£ã´N4}ÿ~¬‹‹ÿ† Sš/ˆêRVVð1-­D^^lÉ’ W¯®…q0HO"äæVrz'ññÙZZòÜ‹Æ_¼øZW׸dÉx¾×>{–üîÝÿÍXxõêÛ?þÄ…úõõMÏž%?xð1**cð`ÒÂ…cOŸ^:~üP8né9 À@’ÜÜŠ ~ÎQŽÍ22ú%Ýo@@¼©©¶¼<Ÿm‰ë뛚?ßÀĤÃcûÇ?¹téõó~û­Å¾Q?äóç}Ê;V3›ëû÷âoß ù®n‰ŽÎ I¼qáýcûMM¬o¼ŸvíšýôéºÝå÷B§3BB’î܉ŽÏ:Tvóf³¥K'pVA }ˆà‘—W©®þ³ËòñcΚ5“9§>ü¤¢"elÌ»+ ›>4}ºnû{!L&{Ó¦›>¤ûøØwË6—ÝÎׯ…wïF~b2‘ùó ˜7aÂPAœ9 ¨@œE0ÅÅÕÅÅÕœ=` ú´páØæ/Y?¿¸´´’Ë—W·³ &“íèxóÝ»´[·6Lž¬Õ}¾wUUõ÷îÅøùÅef–›˜ ;sÆÆÂb$Ì> é‡À/%DðÈÍ­Äæ%ü˜C$âÇŒùwALQQuóqx­ÑÍí©½½)÷þÊ­ÐÔÄZ·ÎçãÇl?¿MãÇmû‚^EÑÒ}}£_¼ø*"2ÈÖv¢a;ïé À@  )(¨âŒðNþ™ ùÑ£„áÃôô”x.¹t)AÐ;f¶Ç~SËÞÞçãÇì»wû‰ºÔÕ5~ºy325µhìXµ“'ÏŸ?f¤×„ x À@ŒÒÒ QQ‘|ú”Ù Ìd²CBׯŸÂS¿¨¨úêÕ·G.o{xL]âãû‹º¤¦ߺùðáGK–Œ÷ð°  ÍœœœRSSûÚ —,YÒÓ­@T€²²TSëË—Â5kL°òwï~P© òÆÇŽQW—±³›Ø¦åþ£. ŒÀÀO¾¾ÑÉÉùzzJÇ/^°` ™,`ÿZÿù矉'ª¨Àì™ýŽèèh(0/……T‰ ''–””Ï`°ÆŽUÃÊ=úl` Â™]†‘””ÿèÑç[·Ö·¹„Á`98\ësuùþ½øÚµ÷ÁÁŸ™Lö’%ãOŸ^ª¯/À/hggçeË–õµ^zí"`U+(ˆãñ¸ÄÄ\ al‰eC#44yïÞ9<•]]ƒML†™›hÝ&ƒÁ²·¿—ÕWê‚¢èû÷i>>ïÃÃS¤¤†¬[g²zõd¸–"è@EET,¡VrrÁ¨QÊØŒäׯS™VVÜ5ÃÂ¾ÅÆf½x±«uƒ}«.t:ãÁƒ>>ïÓÒJÆŽU;~…••ÀEà ¾Àï1DÀ(,¬Æ&))ŸÓ5 Iœ8QSAáßôÉ,òçŸ,Ó|R7Xd¬OÔ%-­ÄÛû]PP‚ +VLôñY§© çCP` FAuÆ JC#=½ÔÙÙÐÐÀxõ*åС_$ûùÅæåUÝ¹ãØŠ)AïEEeÞºµ¡×ÔEÑW¯R¼½ß}ø®¤$±wïœeË ÅÄ„z§u¤7‰ð FQQµ¢¢Äׯl6‚íïûúu*ƒÁš;÷ßôÉ Œ³gŸ¯[g¢¢"Õ’E÷ìñö,ùÆ ‡ÞY«ßÐÀðö~gbrrÍoÀ11‡Ö¯ŸÕ¥‡ÈÈÈèÆÄ98.$%%—-[V^^Þ Oêëë÷ìÙ3zôhCCÓ'O²X¬îr²¿{0A¢®®©¦¦AII2))_Rrˆªª4àéÓ¤ †ÊÊŠrªyzF45±ZYY‰¢èÎ÷=J¸ukƒ©i‡wë(ùùUW¯¾õ÷c±Å‹Ç]½º¦õÀ¤5tèPE œœ¶mÛvÿþýY¨­­544”““sssÓÔÔüúõë¡C‡Â„ï¯Úÿ$ŠŠ¨%%ÉààÏúúÊ€ÆFæ«W)û÷ÏåÔ)+«½|9ÂÙÙ¢•••‡? ütõêÚU,¹‹·÷»ðð EÂÅeö²eàV’‚‹¬¬¬‚‚€B¡œ:uÊÊʪ£\]]eee_¿~ɉ¶¶ö¬Y³FŽéíííèØZ8W@!2ˆ QXX PR’HJÊÃâcoÞ|oldÎûïü1w÷璒¼Kú9œ>zãÆ‡K—VÍšÕSû»Ðé _ßh ‹s66—™×¯;ÄÆbÑ0¨.¿€Ãá®]»¦««+++ëæævûöí¡C‡Š‹‹:tàäääàà€Õ¬««þüù3 $$D___HHHCCãöíÛA<<l̘#**;oÄÆföPCý€ŸŸ_›ulmmi4š··7`Ù²e4íÊ•+€ŠŠŠ·oßJKK3™LE}}}õôô©««4h§§gqq±‘H¬««»r劜œ\```QQÑÓ§O•••éééØ+;°°°HKK‹‰‰ÑÒÒ:zô(ßBE«««½¼¼0÷¸‰‰‰µµµ4íû÷ïÓ¦MsuuEQ”F£‘Éd{{û‚‚___@YY™»»;·?ŠŠŠ*• (//çyÑÑÑRRRo9cǧNZ¼xq^^^rròرcÿýwìììÙ³_¿~ýìÙ³æ¨Í?ÍÒ¥K—.]Ú®¿b×€é×444)+ïTTtVTÜA¡üòŸ¢â-­=ŠŠÎÊŽñãúûDZXìµk½gÍ:Çf#,ûðá ””Bnk—.½¦Pv\»ö®'\ÍÎ.ß·/@CcžÞ'žQ{¢¢“€¢(ƒÁà9NOOg±X ááá(ŠÎ™3ÇÍÍ EѪª*‰töìY*•Š Hmm-›ÍÖÓÓ»qãÇìÍ›7› Lrr2vÖÏÏOKK‹oaë®r#&&–žžŽ¢hSSSjjj]]›Í~ûö-Ö®¶¶vs0©¨¨à±%##Ó’ÀèèècÇaaaÜžó}DmÒkCd~ÍàÁäQ£”@ýŽPÔ×3°EEÕ;vÜ34t}ùò«‹‹%{ùò›—×[+«óÑÑ™Ø5·oG;òûïs×­3íFQ û¶`Á…I“ŽÇÆf¹¹-ùüù}ûæR(p~»H$žc@°¶¶ ¬¨¨xõê•@RR2"""&&FYYyêÔ©ïß¿ÇãñYYYÿ†Iõõõ›74lØ0ì@GG§   •–ÀEÑúúú½{÷NŸ>EQ2™œ––fii9nܸ7n`5óóó›û#!!¡  ˜˜Èc611QGç—í¸¿î999 ›½6sæÌììlŽÃ-=¢þHgêÔáD"ÏÞ°8Ö/.®ìÝàë}åJ§Ó66—BC¿~Ú·ïÁ¶mæNN3ºË1&“oaqníZ áG¶…‡ïYºtBû·d†´ÉÒ¥Kƒ‚‚üýýMLL°ÀNG$  ªªÊÁÁÁÊʪªªJII)))‰sÕ·oßš›Â~øÒÒÒ°˜UK…m",,¼aÆüüü²²2:¾lÙ2—„„„K—.aÔÕÕùúcgg÷矲Ùl죭­í½{÷ÜÜÜlmm±lÊraa!çZ¬sƒ •J‰‰ÁÊ92Üüõ À@ú;ÆÆšL&»•Q×ìÙ— Š6Y¿þº‡G¸qóde|¡ÑÃÃSZ­@?w¡ëîÝ~ºº”°°Ý7o®74Ôh§“öcjjÊb±\]]W­Z…•àp8 ‹‡Òh4ƒA"‘„……ííí]\\‚ƒƒKJJž?þûï¿77µ}ûöŒŒŒøøøýû÷¯\¹²¥Âššl@ˆçP^^^RRRRR’——wêÔ)YYÙ¦¦&ƒA&“étú‘#Gµµµ›6mâöçðáØ…Ç—””Ìœ9óÅ‹iii+V¬hll\¿~½„„àÖ­[4íÂ… œF­­­÷íÛ—›››œœliiyñâÅ6Q?¢ÂpHW¨¯oRVÞÉ3ÓÑÿxØžñÏêêú3NS(;óšŸ-,¤<8lØÞáÃ÷=ZZJë; €öÁp~ž·t¼iÓ¦ÁƒÓhÿ>j???MMM2™¬££Œ¢(ƒÁpuu:t¨ˆˆˆ±±ñÝ»wA³1ooo555™mÛ¶Ñét¾…è¯ãÜÇܯM<¯¯¯ƒrww—’’RQQ¹té’­­­œœ‹Å:s挖–Ö!CŒ±nV¹®®n×®]#GŽÒÔÔF[·n¤¤¤´´ôÆëëë¹½jéµN¯ÁàÐfƒWHÃÒò\rrññ6ÁãqÖÖãÎ[ÞJ«ººaÑ¢22ÊPÌš¥çãcÏ9•˜˜wùrÄóç_deE7m2[¾ÜHDî)Ù8ÎÏϯë™á8““sçÎö_’‘‘1lØ0ÎËçc+…}ƒÁHHH˜8±í-‹Z¢£û£øûûwºÅvZBSÓáß¿—0íʨA ౎ O9‚ ŸètæåË«‰D>ÁáÒÒš… ÿ),¤²Ùàùó¯?~”hkË¿z•âáŸm` êá±ÒÒreé‹ŠŠ®]»vïÞ½¾ö¥!“ÉV—~þˆà D06Öd0Ú5 C"p8€M3k‡{ó&µ¼œÖüTIIÍ‚ÿPY,+!ðGŽ<²²:¿f7»~ÝáÉ“VVP]zØØØñãÇÛÛÛO›6­+vÄÄÄš¯“ç[(pt×#ê!`ˆ "ÔÖ6êêîG6¾«$AII"7·²ù—S…mÛÌ7ož>doh«¸¸zÁ‚JJjX¬_d Ç™™é8;Ïâì› i?Ý"ƒt;0Dü‹¨¨Ž%%¥¨•:$aÔ(e"‘Ÿÿ3Æõÿr<‚ K—Nؽے{Ãyy• þSQQÇ£.¯©)Õ¥uX,¤¤¤¦°šŸ_UPPUXX]XH-,¤Š‰µ˜­ò D005ÕNK+áįx<ŽÓ§! FFÌ›=û/NÏf#3gŽüý÷¹ZZü÷òÊÍ­\¸ðBEE=gi7L&ûæÍH'§™RRCºõn’†FAAUAÓ‚쿪ÒR¦è$B‘PR’PV–;V-6Ö³¯]†ô1P` ‚‘‘ÆÕ«o¸K8q0on®{õêÚ#G‘H&“ÇãQ10P9ztѸq-ö?rr*.ü‡Jå¯.l6rýú‡]»fuÏmô{X,¤°š—W™›[™›[YZZSZJËË«,.®Á&Yàñ8)991ñ †.Y2^MMZNNLAAŒ'}µ‹Knݤ¿"k¢(‡C±C<gd¤N$âÍÍG\¹²†Á`ùûÇ1™l‰ ++ºoßÜE‹Æáñ-î7UP@]²äbUU}óÈH$‹…Þ¾ÕË“™Yvþ|X\\vdä~¡GfâÔÖ6fg—çæV––Ò0 Á¥¦¦«0x0YEEJ^^LMMzÊmLQTU¥)q2¾7 íâ—/ ‚ eee‚´TÒÂÂÂØBÜ~BNNÎË—/ûÚ‹nFF†\]Í@E”™H¤tuEŒŒØ7n\ûø±º¡1haÚ4CCÉÊÊoï„–LÑh,/¯ìÚZ€#‘pl6àDÛðx "B#‰‹“DE‰¢¢Dyy¡«W¯vã 6ÌÌÌŒï©?JÜÝ_<}š@´¬ŒÖ•œf‚æçWqz!ÿï”ÐJKi!RW—US“65Õ^²D S55éVvÓi?áááÕÕÕ]·é^²²²44z#ñÄ/³ÈÊËËùæð´ ‡›:uj_{ñ/¶¶¶Ýk¯ÿC$J DÆàÁZTj(‰$C$J×ÖFc“’Éde2Y©¾>E›Ú4E&SÄÄ̤ͮC:6»ŽÍ®Gìÿ =#D&“ÉSøéSî‰O¢£3ˆD ‘ºý1TUUóóó{È8¤‹ìÚµëìÙ³=ÝÊ/=Llúç|êþLYYYJJk©«z6›=mÚ4,3ÒÅ¡¯è$oÞ¼ùã?¸KÞ¿O;uêYBB. 㨠‡+( r Ö˜“Ó¸GQ%zùN^^^/·éoÀX*Òg„…}ûûï°ÏŸJ ÷ìj‰DxþüKJJ6k+?¿ª¬Œ†…òÈd¢¢¢„²²¤®.eæÌÊÊRJJ’ÊÊ’ŠŠp€Ò€ßE¤ ûvîÜ‹ää|,i ´` (òéSNFF™²²äȑʳfTV–Ä„DNN¬¥­|!þ¤·‘’Z¼fÍÏ$ðÜ+{x`±ÐáÃîÜøt&ÿ,0ÒÛ0™…£G«`} ßÒ芢¹¹•½ëÒôx¦ÿäÄæÐ]®\¹2""¢[¬ñ×Û]Æ[¡{6&44šÍF22Ê’“óãã³##3rr*P%‘,ÂùrÃ9¾¦{&++ËÐа¢¢¢[¬õÜJHHìÝ»·÷}@QôÓ§UU99ÑÞo}àááA¡Pz¡¡âââM›6a›>‰ˆˆp¶³í^üðá Ç+,]:PXHýø1çÓ§œØØ¬ÔÔ" Áãqt:“F£‹‰ î  ž¦{AÊÊ~Ý—çöPFFÆÍÍ­7[OI) Jˆ++«]¿~Š«ë¢Þl}À !!!%%Õ !B£ýLé/..¾qãÆ^hTIIRIIrÁ‚1€¦&Vrrþ§O¹EEÔÁƒÉ½Ð:Òtf &$$D___HHHCCãöíÛl·›Í>s挶¶¶¨¨èäÉ“ccc±«2228ó^¸™L¦‹‹‹¼¼¼œœœ‹‹ “É|üø±’’•JÜ»wO[[»¾¾žÅb9rDUUUVVvõêÕœåÁÍ/ÇŒ>\NNÎÉÉ©©©‰ÛCîÖ«««×®]+##£¬¬¼{÷îÆÆF‡»s玮®®””ÔéÓ§;÷d¹¹•çχ›1㌧gDYY-‘H`³ûQhÎÌÌ,44tÍš5 .¼{÷îË—/mmmçÎ{íÚ5À?ÿüù}:nii‰íÕåàà`aa±bÅ ,_Š¢AAAkÖ¬™3gΖ-[>þÌÑ*,,433‹ŒŒ\µjÕ¢E‹þùç&“É·S™ûÂÖo!**jÉ’%µµµ€ðððU«V566²Ùìë×¯ÛØØ,\¸ðäÉ“uuuXe‹åéé¹hÑ¢E‹yzz²X,¾nüöÛokkkêêêÜÜÜ,X°téÒË—/3 ì¾zõjÍš5óçÏï®Å­ƒ'LºiÓ4W×EpûˆàÒa©¯¯_ºté–-[rrr|øôéÓˆˆˆ´´´ãÇ·t9V~éÒ¥'Ož„„„„††º¹¹q{ÈÍÖ­[ âââBCC_¼xqêÔ)¬üÑ£GÑÑѧOŸÞ»woUUU‡QNNŹsÏ'O>al|ÌÝý%6N‹ÍCí‡3K?}útùòå7zyyEGGûøølÞ¼ùöíÛ4mêÔ©‘‘‘X"ÈÈÈH …¢¥¥ÕØØxôèÑ… Þ¿ÕªU§OŸnll|úôé­[·Ö¯_ûöíÕ«WŸ½hÑ" …2gÎλF\\|ýúõͯ_¿îáá¡¢¢2jÔ¨S§N=þpþüùððp ‹Í›7¼½½ÿüóÏQ£F9òúõë“&MjårÀÙ³g‡ fddtüøqÎû…&“yÿþýóçÏkhhŒ5ÊÕÕ•SsË–-kÖ¬´S`ÊÊj½½ß͘qvÒ¤ã.¼ÊÉ©0™íÚå·±±±¶°°¬X±BXXØÒÒP[[;räH"‘˜œœ xõê•……‡c2™(ŠÒét2™lii2hР‡nÚ´ÉÔÔTZZÚÈȈóÇåfóæÍÊÊʺººëׯ k©pÈ!sçÎÅÎrÖ¯_?çW°òmÛ¶%$$ìÞ½{Á‚:::€§OŸÚÛÛkhh :tïÞ½zzzXÍÐÐÐíÛ·ËÉÉihh8::ÆÅŵâ,ëõë×Û¶m£P(ëÖ­ãÔ\¸p¡ˆˆÈ¬Y³œØéðŒ¤¤dDDÄßÿ}äÈ‘±cÇîÛ·oöìÙÜòóó 8õõõ[7˜““Ã=r+..ظqãüÁù7œ››;lØ0ìXWWWWW·•ËœÊ:::|›.--e³ÙšššØG---NMEEE‰Ô®4Ml6ráBüÇO8yB™ÌÓ¿‡‡§dd”¶ÇlW(-‚Ç—·§¦°°0€H$òðx¼©©é»wï444>}ú´k×.€¨¨è_ýõàÁƒëׯkkk¯X±ÂÈȨ¸¸XKK‹c“o=eeeì@UUµ¼¼¼•–ðõõURRj^.""2oÞ¼›7ož;wîÿ·_ʱ¬¦¦¦¦ö3cIIÉâÅ‹92¤ýnP©TA°/@II‰SSFFp=7‚Ñá NG$  ªªÊÁÁÁÊʊ羺ºzRRçc›Ù3eddÒÓÓQEQ”J¥b±¬üü|3f`/5€¢¢bNN$lp] IDATvœ˜˜È ‘ñ½€ÒÒÒ8/äåå BVVö133“óþÂã;ðd¸'<·9ù™L&JH÷ôx|÷ŒôL›6íýû÷oÞ¼5j”¬¬, ©© A£G†„„Ì™3gÿþýµµµ222™™™œ«8)n8⟟/--ÝJaG)++ 7nÚHKKs¡œŽ©¸¸¸¯¯oDDDDDDHH§~{Ü””ÄãñÅÅÅØÇ¢¢"LWpQ=—ÿæÂáp¾¾¾S§Ne0$IXXÓ˜ºº:‘M›6¹¸¸ˆ‹‹%&&rEjjj°à ÷±µµõ¾}ûΞ=[SS³qãÆ &œ?ÞÞÞ~Û¶m[¶l1bDHHˆ••ÕªU«8 ®®غuëˆ#0³Í/ß¾};`ûöíW¯^¥R©û÷ï_¹r%Vós/$ÉÆÆÆÉÉÉËË«¾¾þàÁƒvvvyˆD¼“Ó„‰'¿Ÿæç÷âÅWlß=äMMµ·îD+bÙ²§mõÚ…¾¾>›Í¾yó&g&‡sqq9pàÀèÑ£™L&‘H4hÐìÙ³/_¾mmm½páµk×FEEMš4ÉÂÂÂÛÛ›Óqþüyìk055õòòÚ¼ys}}ýÙ³gutt° _ßèt:wsD"ÑÌÌìÂ… ØdŸ3ftÃ#†@.!!¡›7oîÝ»7??_CCÃÏÏOHHH]]ÝÄÄ„B¡ÔÖÖnÙ²…Á`ìÞ½»¸¸X__ÿîÝ»Ø ®òòò 6`¢Â}|ìØ±íÛ·3Ç/^¼øÔ©S—.]*//ß»w/‰Dº|ù²£££‰‰É¾}ûêëëgÍšU__?gÎÎì¦æ—ìììf̘Q__okk»oß>"‘Èñûv<<<¶oß>aÂ2™¼|ùò}ûöuúQ ‘fÎÔ›9SF£¿xñ5((áýû8®•\ ý<?eÊ”/^L™òsu2™¼oß¾+W®”••)**9r„L&󯯡Ùì‹/VWWcÃÇŽã1…õGÍÍÍíìì°øO! ººúìÙ³˜¨p¶nÝÊc3""âÑ£GÕÕÕ¶¶¶D"ÑÙÙÙÝÝ}Ô¨Qvvv...'Nttü™mÅÁÁÁÃÃcÆ 8nÊ”)ŽŽŽØÒ(7¨Q£/^üìÙ3îæ¶oßîáá±iÓ&‰4}úôÎý@þ;ü² –v^ÐÓõ÷þBý–ž[nnå£G ñYYåd2‘Á`‰„U«&õJfYyyy·¤ë÷öö.))9xð`û/áYýÎw1|O¬ï½ï–®&’€ü€¹Èz55éíÛg~ø°ÿÕ+— ¦Êɉ²XlA`âõ £¸¸844tÞ¼y}íË‹¦&V||¶§ç›Ã‡ƒZ™0ôsà¼111NH¤Ÿ0b„∊û÷Ïýô)GE¥7Ö¢w ©©©‡š?>÷´ÀN0dÈ++«öö>ýÄ ÐBªAwï¶$‘`ªˆ@2Cd½O?|nÝ"ƒt/œYuuC||vrr~LLÖçϹ <G ๻,ÂÂ䌌S}è-Ò`é爊Nœ1ãÌ%l6B àp¦"È/1 E¼|„@º(0HoC")¥¤aÇ­ä¦Ãápªª\ô À@ ½MUÕÃ/_ þþûehèÏbñÆ'ñéé¥ææ§••¥”•¥””$”•¥þ¿e²(\Ý éÿ@@ú€‘#•¼½×¥¦]¼ø:((HÄ7Ÿ-†ÃáÆSWQ‘*,¤~ýZðüù—²2–5•L&béý1ÕQQù)<ŠŠ0û2¤ÿé3tu=,..;2r?ÐSé6JKiEEÕ……ÔÂBjAµ  ª°ZXXM¥Öðx\ee0žÙ¦È (0Ãóç_®ýúmÅaÁ1"‘`` r玣»û‹k×Þ3™lpNIIòÀyóæniÂUyy­µµGnneK ñ{÷Îٲż{o§?C§3òó«îÝ{ì꺃Íîñ€!Dàh¿ÀÀ\dÁ 22ƒg“îç÷›Åb'&æ[[{,^<›dÊf#U›6ݲ´t‰áÿ3\VV4(h›ººt+ñ42™´zõäîº `ð`²¶¶‚®®‚ÐûÚˆ`"¼}ûýÿâñîßO,;-­dóæ[ÆÆZDâÏyº‚¢(ššZdmí±xñÅÔÔâæfedD‚‚¶©«Ër®â†HÄ;8˜ŠŠ uç@ ÿ À@*µ>3³ Ô˜Lv^^Uzz)O¼ Û'>>{ÆŒÓ[·ú––Öð\(--â4|8Ÿy( ¾/NHÈíò@ ÿE À@€øøll¸¥u˜LvUU=ÀgÌ…Åb£(þlbr¢¸¸šç¬¸¸ðÇ[uu)ÜC"ÌÌt*+ëæÍû{Ñ¢^¼øÊw‹RHÏ‘‘‘ѽ ŠŠŠV¬X¡®®.""2a„   n4ÞQ:ww8~´n¿C uï3‡bb2‰Äv- f±Ø(Úâ?ffº²²bÍO‰‰ Ø2b„"GcùóOë'Ov¼|¹[EEjÃ†ëÆÆÇ.^ §ÑàÈ„@RYY9fÌaaa??¿¸¸¸åË—ÛÚÚ¾xñ¢7}ÈÊÊ’‘‘ÁŽ%$$öîÝÛ #QQQſ·Z§íw#pD07?“šZÔE#8î·ß¦ïß?·•hÕÕ ‹_LO/EQtÖ¬‘ÞÞë8§òó«nÝŠº}; EÑeË ûͬë+Tú3íŸ)Ôstïî´[·n­¨¨à^€ìââ’˜˜Ö-öÛC×ï‡Ã¥§§kiiõP£í© g‘Aµµ?~ðÿÖN°(ÂÑ£ ˜×z÷_BB80pËðáòl6²mÛ îS**RÌ‹?ìâ2ûÙ³ä‰99Ýùþ½KŽ p8ܵk×tuueeeÝÜÜnß¾=tèPqqñC‡œœœ°šuuuŸ?„„„èëë ihhܾ}€ ˆ‡‡‡®®®¨¨¨±±qDD÷_ ‹Û>\NNÎÉÉ©©©‰o!ø5ÈÃ}üðáÃíÛ·s;äÈ츺ºzíÚµ222ÊÊÊ»wïnllÄîîÎ;ºººRRR§OŸæÜróB&“éââ"///''çââÂd2Y,Ö‘#GTUUeeeW¯^]]] ˜8q"@AAÇ·ö·ÞOž<Áúg ÅÍÍ ´ìjî'›Í>s挶¶¶¨¨èäÉ“cccÛþ«·éß„‡§P(ÎÊŽvþ§¢²‹Bqæ\¢¤ä¬¬¼ÓÒòÜž=þ6±¬-jjè¯^}k¥ƒÁò÷›>ý…²cþüó/_~m§eÂÏϯ=­-Fóöö,[¶ŒF£]¹rPQQñöí[iii&“‰¢¨¯¯¯žž‚ uuuƒ òôô,..öññ!‰uuuW®\‘““ ,**zúô©²²2 ==ó;°°°HKK‹‰‰ÑÒÒ:zô(ßBE«««½¼¼0÷8ÇT*PUUÕÒØÙÙ™››gff&''93X²d •JõòòTVV¶TxêÔ©Å‹çåå%'';ö÷ß?s挞ž^rrò—/_ŒŒŒvïÞ͹¬Eî㵞˜˜XË“ɤÑhd2ÙÞÞ¾  À××PVVÆóô°†šûéîîÎýäÛü»·ó»¢(HçØ±5µ]혙3Ͼ{÷cÑ¢ ÊÊ;•”œUUw={–‘ª¦¶{ß¾€îU‚ØØÌÕ«½ÍÍOûûÇ1¬n4Þ·´_`PŲ–q§§§³X,…ððpEçÌ™ãææ†¢hUU‰D:{ö,•JE¤¶¶–ÍfëééݸqƒcöæÍ›Í&99™ã›––ß–ü¬ªªP©T¾g @øúõ+ö1003ˆˆˆà¾£– uttŠ‹‹±Ëà†ˆ•¤¤¤`Ç|¦£­óÒÔÔ”ššZWWÇf³ß¾}‹Uæ+0ÍýÔÖÖnþä[zŒœGÝN!2HçÇt£Å•öx<‡Ã))Iàp`ïÞÙ¦¦Ú6Lc³‘ÁƒI÷ïož={Ô´i:—.­òõ>z4¸}34Ô¸ys}XØî#wïö34t=wîùm€¨¨(€D"ñ‚µµu```EEÅ«W¯ììì’’’111ÊÊÊS§N}ÿþ=ÏÊÊ200àØÔ××oÞаað‚‚‚V ›#)))//Ÿ’’Â]?a„†††ÒÒR6›­©©‰•kiiqLa¿è9wÔRaNN…BÁætÍœ93;;;77—ã›®®î¢E‹Zò­£­cJÃaÞ¼yd29--ÍÒÒrܸq7nÜh©!¾~æçç·ùä; H¿†Ng|ýZÐÒ\Laa2¶¼ŸBÿûoÛ˜˜Cóç9z4˜Éd[XèmØ0õñãíÆÆ?ÿÝΙ£ïînëãóîܹnž84b„â… voßþ>{ö¨K—"&M:~òäÓæ“¡ÿ›,]º4((ÈßßßÄÄ |ÑétAªªª¬¬¬ªªª”””’’’8WñMëŽý¤¥¥aoÞ– ù2þüsçÎqw|}}™L¦°°°¼¼<@à¤ÎÌÌTRRÂŽyòG´T(##ÃyïS©Ô˜˜EEÅœœìlbbâñãÇ[r¬£­7‡N§/[¶ÌÅÅ%!!áÒ¥K­Ôlºz›O¾ó´§›ôMMÌ­[}wì¸ëèxcçÎ{›7ßRSÛ}öì3•Ož$¢(º|¹çĉrbSyy•jj»oÞŒlÉà½{1ŠŠÎ/†÷ÃUUuçχsDEe§£ãØØÌj¨§iˆŒóÂâ{Ìb±ääääåå¯_¿Ž¢ÓéBBB<(//¿zõªN?qℜœÜ£GŠ‹‹CCCùŽÁ˜™™¥§§ÇÅÅ 6ìðáÃ| ÑÆ`P-++“––¶³³‹ŒŒLJJ:zô(àÉ“'ØÙ+V˜››gee}ùòEOO3Å÷Žø:99-Y²$'''))ÉÈÈhëÖ­GŽÑ××ÿòåË—/_&Ož¼aÃÎÔÖÖ¢¿F®:×:*•ŠÃáBCCëëë÷ìÙHHHà"kîçùó繟¼††F›w8˜¼yóBÙA¥Ö›™:qâ Š¢¯_§**:ççÿ;x{äHШQi4zKF¼¼Þ**:߸ñ¡çüd³‘wï~`Ã3“&÷òz[_ßÔsÍõÝ%0(ŠnÚ´iðàÁ4Û¸¦¦&™LÖÑÑ FQ”Á`¸ºº:TDDÄØØøîÝ»ÍÆÛÛ[MMMFFfÛ¶mt:o!Úò@:Š¢999K–,QTT544|üø1çTUUÕªU«¤¥¥)г³3fªýC£ÑÖ­[')))--½qãÆúúúÆÆÆÝ»w+**Š‹‹ÛÚÚbÃ?L&ÓÄÄDDD„Ƿελ»»”””ŠŠÊ¥K—lmmåääø Ls?Y,Ö™3g´´´† bllò%=½”BÙñí[áŽwml.£(Ê`°tu÷{zFpêTW×ëêî?s&´;çÎ=WTt¾{7º§ÎÈ(=x0PCc¶öïææVôt‹ÝEû_"m²ÿþ+VtèaàùØJ!¤€ƒü‰¢¢ °ª¯¯œ””¢(‰D˜5kä“'ÿ‘ÅÅ…·n5¿téu+£ ;wÎÚ²eúž=îQ‡55åþüsÑçϸ¸Ì~þüˤIÇml.‡…}Cÿ œ³²²®]»¶aƾöÒ@ÂÂdIÉ!T}}Ul£FÀ¼y£r ©œjSddDZÌß·o®áöíwß¿Oëi·ÅĄ֯Ÿ{èúuÀš5Þ¦¦'½½ß54 ð ‰cccÇooo?mÚ´®ØsttlO!¤_"`(*JU©D"’“óS¦ üìY2§Î AĽ{çøùŵ²Ò‡Ã>½lÎýµk}"#3zÁs<7s¦žŸßæ/vMš¤uüxÈØ±G Êϯê…Öû„©S§VUUµ2ª%8 A0äää<==yêð-„ô+ À@ %%É¢"ê ADmm…ää‰D°°Ð Iâ®fm=NOOéøñVLáñ¸þYie5zŠϰ°nÙ*£F)Ÿ>½,.îð¶m3ž>M26>¶f÷û÷iÿ‘¸ä¿ˆ€¡¤$YXX Ð×WIJÊà çÌÑOHÈ))ùw¯wøðüððÔÖ#`x<ÎÝÝvá±ë×_ïMÈÊŠnÙb¹ÿäÉ%¹¹•66—­¬Î?x𱩉՛n@ =ˆ€¡¤$ ·èë+''`{´˜™éJH~â®9i’–¹¹î·¾ sw_Þ'<˜¼jÕ¤ˆˆ=÷ïo’–qv¾7vìQW×ବ66Xƒ@ú?P` †¢¢Dii ›èë«ÔÖ6æäTH$¼y£ƒ‚x*>¼ -­äÑ#Þr¼»ûò Æô‰Æp8Ü”)ÃoÞ\Ÿpô·ßÌBC¿˜˜œ°´t÷õ¦ÓøDȦ]›8A ý%%I )-¥©4x09>>[CC°páØ[·¢~ü(>\SyØ0ù¥K ÝÜžÎ;zР־íþ¯¿lë×_÷ö^7s¦^Oß_°¸ÙæÍÓ##Ó}}£xxìXÈüùS¸ï«×˜9sfï7 éç”––¶³&ˆ€-…)*¢**JŒ¥üñcŽ!ÀÈHCEEêñãÏ..³¹ëïÚ5+(èÓ§µnÓícàñ8SSmSSíÒRÚƒñ·nEùúFO˜0týú)––£H$B/ø`dd´|ùr6»4£ÿ±wçP­ïÀÏ̘1dß÷-ÛD²e)Ke¹Ú"KT”Ü-¸iÃu««”J–R¨%-J%-–¢R¶P—’­¡l³üþ˜û›ï\Æ3c?sÞó¼ÏŒšÇyÏ9ï;ñóóÓù—Xјbðx‚‚ÂaaŽvvº‡g=~\ùøñ¤]‡gݽ[þâÅþA3c†„ÜIHxñâÅ~AA.zâïÚuõÖ­Ò‰­1”"é„æÞ½rYööznn ¤¥&:/¸L1\ZZ ¾¾ ‚ ¹ªª¯Xl/i×êÕÚõõ­eeŸ²k—%úðaZ·,SÆ?}ÚÉÚz娂 E:¡‰‰Y_\°y³iff‰¡ááµk£³²Êp8ÂDgØzdeÛ ÒÕ•#ˆee ¤íêê’**bC/é£ÑȃW¦¥—–6ÒŸtÍßÌlŽ—×åñy“N¢¢¼Û¶™ºzÕ‹sëÖD=½à#Gn75¥€É`ê‘“"Ý<&,Ì---ðêU=y—µµÖ­[¥xüà¿ë­­µôõnÐ9&ŒD"bbÖ›˜(»ºžü¸’u¹³ù„&7w¯µµfrrÁÂ…Gvî¼òòeñ&P`€©GFæß3‚ttä^¿®'ïZµJëÛ7lQQÝУ‚ƒmÊʇÞÊ<$»qõjíõëcSR^25ë)*Š­.-ý34tm}}ëêÕgŒþ>s&œÐ“(0ÀÔ#''ÔÒÒEš)RWWîõëò£” Â::rTëšš¤““þáÃYôO1‰@ÀOž\ëîn¼gϵ¸¸§¬ÊŸµØÙÙÖ¬ÑÍÌô~ý:ÐÙYÿÚµ"]Ý?IÏÐtw÷MtvÀŒ† -ëS‡¿téÅêÕÚBBÜp8<>þÙªUZä;ÄðxÂ… yîî&(Ôà»ðµµecbž à.T¢³/ ¶x±*ÍœÅÁœ?_ž•ï„¥¸¹Ñzz îîÆ&&ÊmmÝÑѹ‘‘*+›Ñh¤œœNeÍiS ÀSϬYìgÏ>Z´HUQQDP+&æ #®®.EÚ+//+++¤¦&9è@NN;{ö‘.ý=êé) ÑlGÞéí01QfÙ;0LR’ßÂBÍÙÙPP+/ïclìÓ¬¬²îî>))þQ½k`(0ÀÔƒD"_(+‹éèÈ!ð'O>ôöXZª“ö²³³UV6½zõÉÁAoè±ZZ²wî¼Éϯ±³ÓU§zz ÂÂÜÇŽÝimíZ¼3èQ›Iˆ“¥«+·aƒÑ’%s°Øž¤¤ÂÈÈG/^TYYAvväD'Là 0%ÉÊ ‘Vƒ HGGŽòF2‚ìíççç×’Pbcƒ=j——÷ñÁƒ·£íÔÍmÁٳ뒓 wî¼2…@ÑÒ’ ±÷îpFÆöÙ³Enª©\»6:-­xÚ¯xL,P`€)IVV°¡¡•ôÚÐpvuõ·ïß»È{MMU……¹M®L¦§§`g§sà@_¯66Ú±±oß.Û¾=q``*M£‡ÃôôŽw¨¨ø+*ÊFúø\ÓÒ ôöNÎÉy7…ê%0…€LI²²ÿ> Ažž£¼5™ nc£“–V<Üs!‡YwuõFE=f k µää-Wº»Çõö0ab¡ÑÈ•+5/]Ú”ŸpëÖ%oÞ|^¿>ÖÈèèáÃYoÞ ž˜ 0%ÉÊ ~þÜNz ’›=gŽDaa-eƒµkõêë[ ‘ sûùYED|¿lÙ)uõƒ`ô `(0À”¤¤$ APuõ¿ëRÌþ𡹣ã'e;;ÝÛ·ß ·1ÿûo»§O«²³+ËA[[6=}{ccÛêÕgI‹lNu**b>>VOžìÍÎÞãädP\ü‰ÖÖšÙÙ«V…kiúú¦<|ø~¸š ƒ€ç`€©*'ç77ŸA¼sç ÜÔT•Ü`Ö,öšóókõ‡ bh8;&&¯£ã×¢EªÃµ¡mÖ,v[[W¯êOŸ~0gŽ$iyÍiCT”ÇØXÙÝÝxíZ}IIþŠŠ/áá9‘‘ jüè‘”äãâBOtŽÀä 0U•”4ÔÖ¶Ÿ¦¬ªúúêU½‹‹!eŽ3grV®Ôn©1”  WHÈ]só9¢¢¼Œe‚B±Y[kýóOç‘#Y""<ҌřÌxx844¤ml´ ddëê¾''ž?ÿ¤  ®««WP‹——s¢s&P`€©ª®îûƒo½¼“~üù³?!áù¦M¦ììÿ›‚LVV0#ãuOÏ55‰Âº›7Kœ ž° ‡YXÌ!‰ÁÁ·z{q“|:fpq±Ï›'mg§»i“)#ÑÜÜ™”TùøÖ­²/_Ú¸¸8ÆÞ˜º°ØžÄÄ‚M›LÐh$Aüü³¢£s fËË ‘ÛÀ`°®®ÞÄĂ͛M†ûÖƒÁ`ººr§O?àâBëèÈ1œ [°@ûYg IDATQR’?$äNcc»¹¹Úôž_…bSQ[¾|ÞÖ­K,-Õ¸¹ÑÏžUŸ=û0*êqAAmK V@€K@`ÖD§ L$P`€© €ÇÆ>µ²Òàƒ hÖ,ö›7K88PÆÆÿ9{—Žˆx¨¤$¦ª*>\(~þYx<ñôé66ÚLõ¨«K©©I†…=(+k´²RG"ÌD›`0˜¨(¯žž‚““þÚµz²²BŸ?·§¦_¸ðôÁƒ·MMh4›ˆïô.·U0°0ED%%ÿ£GíÖ®ý÷2ŒOJ]]Ë;µ\¿>¶§§?5u+hxsóPii¤$Oæs+-mts» ##pùòæá.ÿLox<áÝ»rrÞå伯¨øÂÎÎ6¾¼‰‰²±±²ºº(63*¦*8&//T[ÛBÞ²p¡bIIÃÐÆÖ­3|ñ¢æÓ'Zí#‘ˆcÇìss?de•1Ÿ›––LVÖÎÎΞ•+ÏÐîwºB àÒ>>VÙÙ{^¼Ø°jÖ,öðð‡VVaúúíÙsíæÍ’ÖÖî‰N[à ˜Â¼¼.÷÷ãâãÝI?¶¶vÏ›àaa¡FÙ ‡#èéÛÙé8°‚vÀ;’óókž<ÙËÍÍ‚»o››;×­;ßÙÙ“œìIc€nR©¯¯ðàÁ' ÏŸÕÕý¬­ýÙÔÔK$B¢¢ìsæp›˜|00)¡ÑhGGG E}7¦¬'î¥Übfv< àÆÐ–ÇŽÝÕÐ8Ôߣðû÷.5µ¾¾)¬ÊðÇž5k"”•ý?®dUÌ1åèè8>_Lp8Vâå5çáY4>=c$==}¸N`ˆ ˜ÂEZ)§Í71Q~úôãЖó[[»?®¤PHˆ+,Ì19¹àþýQ¯CúÚµßôÖ­;òd6KbŽ)<ooo?• ïéé©êìÌùñ#wºÆA8ܰ3;€LaJJ¢888‹…©®[g˜˜¸ùîÝò5k"ÛÚÀÅm`F˜ÂÐh¤¤$?åd(]]¹gϪ†663›###˜˜X0bXYþisõjanîfkb¢rïÞî¶¶î•+Ïç€i `jSU¯¬l¢Übd¤ôôiqÈí‘p8ÌÍmAZÚKz–³±Ñ^ºtv=1yyáôôíüüœ66góókX&!P`€©mΉ÷ïÿS`ŒU¾}ûAõÁÅÅ'fd¼¦'òÑ£kº»ûfå@A¢¢<ééÛ-RutŒ¾xñkƒO5550˞ĄQ““sssûþý;Õ½üüüä½ÝÝݾ¾¾òòòJJJ½½ÃþµÁdÎŒ£†vüQuÄü/`jÃ`Äkk[(W(ÑÔ”æåå|ú”Ê(//§µµæÅ‹Ï‡žß %*Ê´*)© /ÊmiÌ@£‘ëŽ]”éåu™áÕh:åçç777ùòåâÅ‹X,V[[»³³sÐÞ¦¦¦œœœ/_¾ìØñïL;vì())IOOollŒ‹‹ËÌÌôóócaVuuuBBÿ>ÄÇÇ·wï^‚’§DµÃñ™5Ñ7¹Sªª¾Š‹ïª¨øB¹ÑÝ=ÎÍíÕö_ÄÅw½xQMOp`oehx¸»»—¹ñòeݼy‡ÌÍCÛÆ">ìííÇç6eª««YøÕAPuõÿ~ÝÁÄÄ$ €êÞ§OŸòòò’^óññ’wåååÉÈȰ0gæßæ äYÞ)=!JIö¹1pLm ¨A£dFFÊ5ToVW—ÔÖ–MHxNOp vö¬sg篃3X“îÍŸ/ŸíƒB!–. £zçÛ¤ƒÁâãã1Œ°°pHHHbb¢¼¼¡yâñøÐÐPeeennî… Ñîhd£¨}0)YY ºI¹¥¦æ›¸ø®¢¢ZªíÓÒŠ¥¥÷45uÐÿæÍqñ]YYeÌ&:ŒîîÞÍ›/ÊÊú&'ŒQô£ó ‚ ''', Aƒƒ‹‰‰ ¨µµ5//OPPp``€H$&%%©©©„îînvvösçÎ577ÇÅű±±uwwÇÄĈˆˆddd455ݹsGJJ ‚ òΤ–––UUU………ŠŠŠAAAT7‰ÄÎÎÎ þ=m¥| ù3¿¸¸˜¼·¬¬¬«« ‹Å~øðaÑ¢EÁÁÁ¤]÷ïß—””dgg·°° ­¯¯'G8vì˜]cccyy¹¶¶¶¿¿?åûC÷†††ª©©•——WTTèëëûúúÿ{~@ùÚÅÅÅÌ̬¶¶¶¼¼\]]ôî Z³fMGGÇ…  jkk£Lžl``‹Å¢P(ww÷/_¾$%%AÔÒÒ2è#.ϰ°0Ê_‡„„Ĉ5¢y 0åíÞ}ÕÞ>jÐF-­À“'³©¶ïïÇih ½G^^—ÔÔ´´`Ï’&ž#%µg×®+==ýcÔ =è/0%%%D"±¿¿Ðëêêj'&&öèÑ#"‘¸lÙ²"‘ØÞÞŽD"Oœ8ÑÑÑA ºººðx¼ššZBB9ì¥K—†˜òòrÒÞ””EEEªi§J»ÀPâáá¡lŒÃá ƒƒƒÕÕÕDrr2i»ªªjss3éuNNަ¦&å÷н***¤-ïß¿'½¦Z`úûûÄÛ·oIÛ322Hï‚ ÜÜ\ÊyhòeeeõõõUVVvwwãñø¼¼[""¦= Füýûm\¼“›K}b$á䤟””OÿCõÇŽÙ£ÑH?¿T¦ Û±Ã<=}Û“',,NÐó4è„ãææ† ‰Dz A°µµÍÈÈhmm}øð¡‹‹ Aüüü¹¹¹………RRR¦¦¦Ïž=ƒÃáuuušššä˜C;RRR"½PUUýòå tª®®ž={6å¤oß?îÝ»wÉ’%¤××®]ƒ H__ÿСCåååû÷ïÿã?H‡Ô×׋‹‹“îÚ²°°øôéeü¡{È c0›árûöí'§§¨¨H~w¤ó ò‡<(y’+V P¨ªª*+++„„ŸÃÐíÙ³gÐÞ¯_¿666;vLZZZXX˜‹‹ËÍÍmíÚµwîÜ©««ËÏÏ÷õõurr"bkk»oß¾†††òòr++«ÈÈHÊ„‡îuuu=pàÀÛ·oß¾}»}ûvòÍuwÿgÞ $¹víZooïOŸ>½}ûöàÁƒ¤ó?úõõõõ÷÷£P¨žžžÀÀ@‚ºº¨ÿ™54O///Ê_G@@À¨º¦‚öøL ZZ‘‘mttŒÞ¼ùâp‡”•5Š‹ïzþ|wyþúÕgdttÕªpÏXžôKM}© ð‡­íÙ¯_;Ǻ/Jô_ƒ!ÿñ;Ük///,ö®RRRfÏžB¡TUU333‰Dbpp°¼¼<—¡¡á•+W !×`bcceee…„„vìØÑÓÓCu#qøkæ”_wÒÒÒ...ß¾}£|#dp8\CCƒ|k2‡ ÒÐÐààà““Û»w/©#"‘ˆÅb7nÜÈÏÏ/((èééùóçOʇîíííõõõ•àååurrêèè ‰FFF\\\ƒnoowuuß½{7©Sª24ÌmÊaaaÒÒÒQQQNNN"""T¯Á ͇ņ†***Κ5ËÐÐtf6â¿p‘˜æ\\b¶mK´166OYÙŸÆ066g]]Ϫ£ââ:)©=ññOÉr”Þ½ûgáÂ#êêsrÞCw$,|fÿþýÎÎΣ:dЃTŸÃ`íS2“h0DLŒÄ !2‚ÌÍÕººz_¾üDõ‚¼¼=zTYUõ•þŽtuå·m[ò×_Y••c~~ΉGþX½ZÛÍí‚·wòzà¿···®®.>>~óæÍ 0‘@¦ F¼¦¦eÐ YYÁÙ³E=öB¥……š¢¢Èùóy£êë?–éèÈzxÄww÷1˜.ÝØÙÙþúË&.ÎýáÃ÷K—ž‡ªÆEEEºººîîî‹-b&Ï–-[èÙLN ÀÓÁœ9ø¡\š›ÏyøðýpGÁ`°Í›M¯_5ÜÍfTÁá°ðp—?z“Çû‡ZºtnNŽ/çòå§bcŸŽO§Ì055moo§q¯ÔpÈÏ|ˆˆˆœ;wnPªÉ `:PTE¡ØÞ½ü4Œ™ÙœššÊ%/qp˜ÏÇÇqé]3lj‹ó9㜚ZLçÄÌÌ“”äOKÛêæ¶ 0ðæîÝWY»ˆŒP`€é€ ®¨(2ô2Œ¾¾úñcê7+C„B±¹º.¼xñù¯_£»Âan>gýú{÷¦}úô}äÖ¬€D"‚‚V_¾¼)7·ÒÌìø‹`9`²˜&45eJKmD"ÆÆ*4FÉ òð0îïÇ¥¥¶ÇÀÀÕ²²‚Û¶%çÓ*ffsž>Ý¿h‘ª½}¤·wò8\†Lšš2åå_p8Â íææsòók~þö‹˜ÓÞ~þùóy½]’°³³EE¹~üø54ô#3Ї}ü¸Ã… ?®43;VÆ&-P`€iBSS¦§§¿¦fðuþÅ‹1ø/hM†ïéiÚÐÐúàÁÛÑvª¬,¼:*êñÓ§,^”lDË—ÏËÍÝ‹ÁHØÛGýñG꺉˜9@¦ 14ùæÍçAÛED¸54¤h’ÉË ›™Í‰‰yÂ@¿ÎÎj»w_koÿÉÀáÌæ¾xÑ=(hÕõë¯V®¾oÍÝC‡2–,9ž“3슟À$P`€éf¸ëü+óòrfgWŒÄÁa>//Ç… £[MyEE‘èèõׯ¿JHxÁL–ãåå‹¥r^5èé)¤¦n½ysA+Wž^µ*|žrS(0À4¤§§ðòeÕ](ccå{÷èš’rÍ]áS§˜=‰A£‘.lèìüµsgòh×ÍOzz ))¿''o!ˆQ®®çŸ>ý&\ 0 éë+”–679Š­­Î‹ÕÍÍ#_\A à>>V7o–¼ßÄdJ’’üQQnWž9“Ãd¨±¶x±jVÖÎk×¼úúpŽŽçLMC^tw»æ4 4Ñ9‹qq±ÇÄq"ûÙ³ª%K0ôÄ`$Ö­3 Ê´°Pãà@±$IƒÙÇ;ìÞ}UNNÈÙÙ€%1Ç_jjê‡ É[DDˆÔÑßíêB ðN`nÒÒÒ\]]AºèèÈ"‘ˆ¢¢:[[ª ää„´µe32^ÓY` òõµºqãuLÌ“]»,Y•§ƒÃü–ìÞ½i³f±3ÿ8çD144LMMè,Ʊjà—¸ÈL[h4rî\©á&%#±µÕÉήøù“ÞyP¹vì0Œ|üí–9þkûv³]»,·oO¢ÿÎi˜ü@¦3}}7’Adm­90€ð`«:zz.æ>~üÓÙý‡Ïo[¶,òöNKLÓ(0Àt¦§§ðñã×ŽŽŸÃ5ä21QÎÈxEL$áï¿,%¥¨¼œúº™ ;p`…““þ–-—^¼`Á0á@¦3Ò\d¯^ÕÓhck«›—÷±µµ›þ°ÖÖZººòýu‹ÉôÁ`G®Yºt®›ÛÚ#{0%€Lg³„i’YX¨¡Pl·o¿Uä€ëüüZ–gÁá°ðp33Œ›Û…ŠŠ/¬ >½ÕÔÔ°ð25 SRRôÇÒ¥Ka0XM ‹Ï/aÔPmI~£z³¬ýdF`š36Vzþ¼ŠF..vkk­ÄÄ£ «­-»j•Vpð­›ÆÍ¾re »]ä´™«ƒÅÇÇc0aaáÄÄDyyy^^ÞC‡AäíííááAjÙÝÝÍÉÉYZZ APVV–††VPPHLL„ ˆ@ DDD`0nnnCCÃÜÜ\Ê! ÒˆPff¦ŠŠŠˆˆˆ··w__ÕЇ %ÙÛÛ§¦¦’GÉ®_¿¾fÍš¡-ɯ "׆???QQQ??¿[·nIJJvtt@tõêUeeåŸ?iý˹}û¶––''§¸¸8©®PìÚ UVVæææ^¸paQQÑè~O,D€éÎÂ"ôÀtÚmÂÃs0˜ý½½£ŠÜÕÕ;oÞ¡ÀÀLdGË=+VœÒÐ8ôáCóuÁöööööö#6ƒ ÈÉÉ ‹ÅÆÆÆBäàà€ÅbIsÌ´¶¶æåå  ‰Ä¤¤$555ÐÝÝÍÎÎ~îÜ¹æææ¸¸866¶îî‘ŒŒŒ¦¦¦;wîHIIAT]]MúB#½°´´¬ªª*,,TTT ¢º‘H$vvv^¸p”åk‚>|ø &&VZZJÚÅÉÉÙÚÚJêˆÜ¹;Ê$ÇŽ³³³kll,//×ÖÖö÷÷'‰nnnëׯÿúõ«¨¨hQQ¹¯²²². X,…B¹»»ùò%)) ‚ ––ª} í(,,Œòó‘ ç«‚ ”””‘Ù£ 0ýg.ZB»Mss§”Ôž›7KF<>þ™¬¬omm £ÙàçϾ5k"æÎ=øþ}ÓuÁ<ú LII ‘Hìïïôººº‡Ã‰‰‰=zôˆH$.[¶,$$„H$¶··#‘È'Nttt„®®.<¯¦¦–@{±æ‚y IDATéÒ¥¡¦¼¼œ´7%%EQQ‘êFÚ©VWWoÛ¶mß¾}D"1))É‚¼ž£ªªÚÜüïŸ999šššD"±££CJJJCCƒTÞÈ} ’••Õ××WYYÙÝÝÇãóòòõKÙ×ÐŽ”••‡~>ôüvX^`À0ý-\¨TUõ­¥¥‹F11^SS•k×F=˜°~ý¹s%}|®Qý¦`''êòåͪªQ••McÑÅxâææ† ‰Dz A°µµÍÈÈhmm}øð¡‹‹ Aüüü¹¹¹………RRR¦¦¦Ïž=ƒÃáuuušššä˜C;RRR"½PUUýòå 4ØÛÛ§¥¥‰DÊñ±A†û½××׋‹‹“n ³°°øôéA|||žžžïÞ½ûý÷ß)WWWS~/¯X±…BUUUYYYéèè$$$ÐHrhGŸ?ñó ÀÓŸ¾¾}ú.!±;;»‚.®_/–”Ü]RÒÀP‚ôêëX¿>VUuÿ«WõcÚѨÐY`è±ÿ~ggçQ2èêú il(ECdÀŒ ¯¯ÀÃ~üøífrrB ÌNLÌg  ;;Ý ÷ï¿N Œá*±(Û… LMU¢P_–cDþ¹úÓ§ï—.±~&ªää„nÞôfgg[±âôÛ·Ô,€ñÇ6Ñ ÀøY¸P ‰D<}úÑÞ~>í–ffsdeó±c #99¡]»,CBîXX¨ÉÊ 2”ì興p§¦þ¾qc¼½}Ô¹sn¦¦*ãÐ)¥ºººóçÏs§ÀdÇÚÇj`’³µ=»m["=-££s÷þøÑÃXG8ÞÊê䊧q8çãǯt[­_¿ðñãÊÆÆ6†»34œ½aà ›ŒÍoÆ ..ösçÜW…‡?ܸ1‹íç€`Æ10˜ÍÃ~ü¸’žÆË—Ï“–ˆ‰Éc¦ÇÀÀURR[·&âñfâ0ƒmÚdrñ¢ÇË—u«W‡üøuœf2P`€‰D˜˜¨Ðy€oÜhtíZ3± Pláá.ååŸÏËe83–,ÁÜ¿ïÃÅ…^¶ìTRÒØNö d À3‘™Ùœüüšîî>z;9 ‘ÆæW&SW—ôö¶ Í®¬lb&ä¥23wìÛ·üÀtGÇs--Ô×ߘ‰ÌÍçàpøçÏ«èiÌÅÅîâb÷ŒÉ¹Åvî´PS“ر#y|æ(Š4\võªWuõ·•+OŽÇtœÀL 0 rihH?zD×e‚6m2ikë¾}û 3²±ÁOœp¬©i Ïa&“,P|øÐwî\©5k"ÿúëÖˆ äÃ@f¨åË5îÞ-Çáèºê..ηl™FLÌ&;Å`Äýý—Ÿ9“S\<ò“žc‡ŸVlìÆèh·«W‹LMCÀƒ2À˜¡–-ÓèèøIÿw«—×âòòÏEEÌ~oÙbºdÉœ-[.Møò-+Wjfgïá±·:uêÁD ÜÓ(0À %//¬¢"vï^íçÍ“ÖÑ‘½p©û•!‚Á`'O®%‰~~©L†bžŒŒ`FÆv?¿¥gÏ>43;žŸ_3ÑÓ (0À̵t©ÆÝ»åô?âîímqï^Ã‹Ä r9ã|ï^ŵkãýxÿP|ûv³‚‚šš2kÖD®_ÛÔÔ9ÑIÓ(0À̵téÜææÎŠŠ/t¶77Ÿ£¢"õ˜ù®MLT<=M̨­ma>óDEyÃÃ]RS·~úôÝÄäïÈÈGãÿL(0ý€Ì\sçJÉÈÒ?JƒÁ¶n]róf K&}ñ÷_.##¸kוÉsñÃÈH);ÛgããÇï­Xq:/ñY>˜á¬¬Ôé/0­^­-.ÎÇ’òÙÙÙ¢£Ý*+›Îb>«pr¢\ù𡟄Ÿ³sŒ]ÄÄÞðLi À3ÚÒ¥UU_kjè§bcƒoÙ²èÊ•B–< ¯¢"ætáB^zú+棱’’h\œûãÇ q¯^}vÕªð‚ðT&0j À3Úüùò""ÜÙÙ£8‰qrÒçâBÇÇ?eIÖÖš®® üý¯WWcI@RQ‹‰YŸ’â…Ãá׬‰Ü¼9¡¬¬q¢“¦P`€ ‡™™©ªÀpp ÜÝ/^|ΪÙïÿúËFAAxË–K==ý, ÈZFFÊ·oïŠÝØÐкlÙ)[Ûˆœœw ¯ò Ì( À3ÝêÕZ%% £ZÕxýú…x}Zr—µ‘'›ššŒ•÷žýüùÓÏÏoÞ¼yÜÜÜóçÏ?zô(‡£Ñ «©a|Åh fooOySî¨ÞíÞ©†¢Ÿ¼—ù–™ ÀÀÿØÙé¶´`XšÞÝÝXP+<ü!ËSÒÓSøûo»¨¨ÇׯO®)ý'³®®.]]ÝâââcÇŽ½~ýzß¾}ÉÉÉxü°k»EGG â1Ûºº:!!!Ê-ׯ_OIIaøpøøøöîÝ;è(òF: ÀÀÿÈÉ ikË0°: ;;ÛîÝ–W®ŽjÒL:99lÛ¶ÄÇçÚóçU,>- ?zôÈÊÊJYYÙÖÖöåË—õõõ/^î///^ÞQÌÐC ÚÚÚ(·lÙ²eÛ¶m_¿Òu oèá4 …„„ :м‘Îc'(0ð¶¶:·o¿a຺££¾œœPXØý±Èjÿþ..ë×ǽ~Ý0ñéƒÁâãã1Œ°°pHHHbb¢¼¼½ÞÙÙ¹aÃ!!!)))__ßÞÞÞ¡‡S~ÎÉÉÉ F@@àøñã”oò(Ê÷{ûöm---NNNqqñA儲úÿ!‘HòÆ¡ïLJ††*++sss/\¸°¨¨ˆæ¿ šÆs: ˜üZ[»dd|nÜxÍÀ±7n¼–’ÚS]ýåY‰D¿aC¬ºúÁOŸ¾³<8A)))#¶qrrÂb±±±±988`±Ø˜˜‚Z[[óòòˆDbRR’šš@èîîfgg?wî\sss\\wwLLŒˆˆHFFFSSÓ;w¤¤¤ ª®®&}‘^XZZVUU***QÝH$;;;/\¸@Jüº££‚ ïßJ/^¼%…Z²d 9”¿¿?éÝUWW‰ÄcÇŽÙÙÙ566–——kkkûûû‡††ª©©•——WTTèëëûúú’ó¤üpª«««ªª888.^¼8¨‹‹‹™™Ymmmyy¹ºº:ù :œüzÍš5.\€ ¨­­mЇCjF~ÅbQ(”»»û—/_H´¥¥…ê!$ÁÁÁÁËË‹ôãÐ÷Fù ’ §RØÛÛ“®Býçß̈‡ÀLãævÁÅ%†ñx‚…EèÆq,O‰äׯ¾+Nnmíbmd: LII ‘Hìïïôººº‡Ã‰‰‰=zôˆH$.[¶,$$„H$¶··#‘È'Nttt„®®.<¯¦¦–@{éÒ¥¡¦¼¼œ´7%%EQQ‘êÆáò®À %//O¤øŠWUUmnn&íÍÉÉÑÔÔTQQÉÈÈ myÿþ=éõpâÌ™3<<<äýýýâíÛ·¤–äw4ôpÒëÜÜ\ÊÏ–véë뫬¬ìîîÆãñyyy4!9wîœAoo/éÇ¡ïWYYyè/h¸O›ŒjCd0˜ÎÓ§[ZºF{  ¶ÉήÈËû8‰qp bc7 ོ.õ÷ãÆ¢ Ú¸¹¹!B"‘ƒ^C„@ lmm322Z[[>|èââA??nnnaa¡”””©©é³gÏàpx]]¦¦&9¦††ÆÐŽ”””H/TUU¿|ùBcãP|||bbbeeƒ'e(++ÓÑѪ¹¹™²Y}}½¸¸8 ƒÁ`Ÿ>}jhh ·Ç`06664>¢íÛ·kiimÚ´‰øÿeß¾}Ããñ³gÏ&ý¨¨¨H#yÒIù³¥ …BUUUYYYéèè$$$Ðn\^^þ÷ß_¿~ýßÙó†¾ßÏŸ?ø ¢(00˜¹¹;;òÎÑMCb`0ÛÊjnpð­1zrET”79ÙóÝ»&/¯Ë8Üäz8ÆÞÞþÆ©©©FFF¤¯žž––ÖÞÞîáá±råÊöövIIÉ7oÞz÷îÝÐP¤¿»!ªªª"}Û·‘*—àà`Ê{Æ~þüyìØ1++«¡¡dee)%åþïèè(,,”¨¯¯'í-++;rä®ápøÅ‹_¼xqþüyÒQQQQWWGú±¶¶VRR’FRÚ (õôô888øùù•””DEEÑhÙÝÝíââréÒ%ʆ¾_99¹AtãäD-_®‘’2ê'.I\YSó6餬,–ž¾­°°ÖÓ3aRÕcccìêêJÚƒÁ,--ÓÓÓ±Xl?‰ääätww÷óóËÌÌüúõkvv¶¿¿ÿÐP;w©)..Þ¿ÿºuë†ÛøãÇÒ¡A¯ZZZÌÌ̲³³«««oܸ¡¯¯/))ùûï¿“øøøCmذ²k[[Û}ûö544”——[YYEFFººº8pàíÛ·o߾ݾ}{CÃÿî³èîîš¼¼¼ü‰'NžÃø¶mfW¯zUU}µ²:•›ûa“¦ P``ÔP(6W×—/çÿúÕÏ|455É-[=zûË—æ£1cÁÅGüôôä]\b¶l¹Ä’S4`&±aƒQoo?«.ZøúZII ìØ‘„ÇXa¼¼œ11ëÓÒ¶}üøÕÀàð¡C7~þì›Ø”€© LŒàäDÕÕ}ÏήX¿~!ó7#pSS•°°û}}¸… •X’!3dd\\ yy9cbž\¹R$ 0KMMr¢“¦P`€AJJb§NÝWRSQc>§€À¬#G²ôõgËÈ0¸63 !pmmYkkÍŠŠ/Ñѹ¥¥³g‹ˆ‰ñNt^ÀT´ÆyxÄ74´åäø²êII/¯KÅÅõùññq²$ Kää¼ ½÷î]Óo¿©ûù-Å`Ä':#`j×`€q;v˜¿ßÄî÷õ IDATÂ{®Ž³‡Ãa¾¾)¬ Èj÷ïûÄÆnlhhµ°ýý÷˵µ-0€3`Š£ã¹¾¾7v°*`aa­½}ÔñãöNN¬ŠÉBÏžU=zûÍ›ÏóçËoßnfn>gB湦p ˜".ÎwêÔcceII~–”’øñ£'"⑵µÖ¤(#‘•tv6À`ÄKK#"=|øžƒ©¤$Š@€á`0p̲¶çãã¸|y3«ö÷ã–-;ÅÆ†¸uË…b|q³1R__ÿàÁ‚ššzŠŠ:Þ¾Årr²­X!ª¢Â=Ñ©¬„F£Q(ã!ˆ0çþý qñ]ååŸYóË—ö9sìÞ}•…1YÅÑÑ‘ò;ŸÅÍmˆDŠ0û}L>éééÌüSgµÀ, 5 F<*ê1 cJJòŸ9㜒ò2%å% ò···'‰àñÝXl~ÿ7¦+0¹@„Ãá˜ù§ 0 ƒyy-¾sçMc#+W37Ÿ³uëÿ´·oÿaaX7 À ¬^­-!Áþµaýý—éé)lÙr©««—µ‘`€,€D"||~KIyYSÃÊDxDĺ_¿úýü&ד1@P`€5lmuäå…NŸ~ÀÚ°ÂÂܧO;ݾý&)ib¾†¬@Àwïþ-3³´ºúk#›šªìÞýÛÁƒ¯_׳6òÔUSSÃÂ<»»»}}}ååå988”””{{‡“$wM$×­[ÇÅÅAеk×`Ô”••1–Õh´óÕgÂÚp8 ÀËX[k*(Ÿ<™ÍòÈ{öX.[¦áæ;‹+Oc;vì())IOOollŒ‹‹ËÌÌôóóñ¨¦¦¦äää÷ïßC´jÕªææææææüü|‚šÿŸšš9ÔÕÕ QnÉÏÏoþ/ªòññíÝ»—Î^Æ(0À2ÜÇç·¬¬7ïß7±62  s”•ܰ!‹üYìæÍ›ÿý·¶¶¶°°°‰‰Ixxø­[·F<ª§§‚ ‚888ÄÄÄÄÄÄ„……!ûH$’ÎB[ÛîBû/ª …„„ÐÙË8XiåJM F|,NbÐhäÅ‹îXlÏÎɘ€ƒÅÇÇc0aaáÄÄDyyy^^ÞC‡AäíííááAjÙÝÝÍÉÉYZZ APVV–††VPPHLL„ ˆ@ DDD`0nnnCCÃÜÜ\ʱÒPOff¦ŠŠŠˆˆˆ··w_ßÿµwçqM]ùÀO ‹€ @@¶€PŠKª:ªTmEƒ"Â(*8K5nT¥èXk§Re ‚l±ˆV-"ciôuxe‰Q\Ò€!4í¾?î{y‘$ Ëïû×áû;¿{¢÷Ç=÷æ¦Wa'zs]H¶mff–žž.=¾ÿùÏ~üø1Þ …t:ÝÆÆ†B¡Ðét¡P(: !¤ì¸/¥0‚ünªíÒ¥KÓ¦M366¶³³ÃëŠÂÅ.ùAÅbqjjª‡‡‡©©éìÙ³kjjúH=týQÆšK—ê&ON¸{÷±&‚ÿ×=rrÚñùç—4\E4Möƒ–Ê „"""¸\nvv6B(<<œËåfff"„ØlöÍ›7---…B!†aÞÞÞ‰„Çãddd´··çääèëëóx¼ÌÌL …R\\ÜÖÖvùòe„PSS~øÂ!!!ÕÕÕT*5))Ia'†aYYYxz²ík×®ÙÛÛ§¦¦²X,é^9rdùòåOž<©¯¯Ÿ>}úîÝ»û Ýg¯å;å#(ÜÍ>"„êêêºd…B.—K&“cbbZ[[ B/_¾T˜ü iii²Ó8yòäÿ!ƒ1àÝ_„ál '‘HÞ{/5::KCñ‹ŠnOžœP\ü«†âHõS[[‹a˜@ èÓnjj‰D¶¶¶åå内††¦¤¤`ÆápH$Ò±cÇ:::$IWW—X,öööÎËË“†ÍÏÏ—/0õõõøo •JUØÙ¶"‘¨ºº:99ÙÇLJH$âýžžžíííx»¬¬ÌÏÏo°F>‚ÂÝ”/0}”––ööö644ðx<±X|óæM|æ#?¨‡‡‡ü4ö?'Ã/0°D€š„?¾~ý?õõO5ŸF{gíÚÙt:ãáÑþ SSS„~B¶"‰aaaÅÅÅl6ûúõë‘‘‘! ‹ŠŠŠêêj‡   ÊÊJ===&“éçç'éëë+?»ûÿ~Ï´§§gkkk?òº»»Ï;‡ò÷÷ß·o_}}ýÞ½{wî܉ÿ–ÅbÙÙÙá7q?zôh°“ AánÊoØÔÔ${°^¼x1™Lnll\¸páŒ3òòò5èÓ§OœFµƒ€ú…†úúú::tICñ“’>š>Ý)**«­­SCChF»páBQQÑœ9sð…/>Ÿ/‘HΟ?ÏápÖ¯_¿dɇcooïÞ=éV>”…ÿñŽjllÄ”uÊÃ0lõêÕ÷ïßÇ$ï¿ÿ¾ô\VVVÒ}GGGuuõ`wS>‚ÂÝT%ŸÏ§ÓéµµµéééƒÔÙÙyÀiT;(0¨@8thù/¿4••iä¿1‰DÌÍ]ommºbÅI6›§‰!´`îܹ"‘(999** ï!!!!ß}÷—Ë$ÉØØ8&&†N§—””<þüêÕ«»wï–µmÛ¶æææ;wîìÝ»wÍš5Ê:_¿~_’m›˜˜DGG¯\¹òòåËL&³ªªjÇŽøËÂÂÂöìÙóøñãúúú… ž›Ýx(44í?z54„Bª_ƒ‘þ­¬½iÓ&###.—+ÝŠÁ`¸¹¹‘ÉdOOÏ’’ ÃArr²‹‹‹‰‰I``à™3gÜ5˜ììl'''++«­[·òù|…Ø›W)dÛ"‘())É×××ÈÈÈÙÙy×®]øë1 ãr¹ëÖ­³°°°´´Œíîîì5ù wS(Ι3ÇÄÄD~–d¥¥¥Mš4ÉÑÑ1===""‚B¡(ÌG~P‘H”ššJ¥R'L˜ˆŸŠ øó |ášÂd¾š?ÿÈ‘#´U«ü54‹Å^ºôÄ´iN¹¹1ZûNÉððp„PQQÑðC%&&²X¬ÂÂBÕ7innvww—¸úüØO',À`0ð·{h`‰ MquµŽŒ 8rä Ÿ/ÐÐÎÎVùùù¥iïÞï44„†ôôô0™ÌÜÜÜÕöM `¤€mß¾ð?zsr*57Ä´iS¾þ:úìÙjõ~㙦ÕÔÔÌœ93&&fÞ¼yÉcff§J'Ð>X"@³¾øâÇŒŒŠ[·>µ°˜ ¹QNº™œ\’‘ñ×Å‹ßÖÜ(85.‘‘ –Èé6mšobbxâD™FG‰ Ú´iþæÍ§ËËÿ£ÑP4ËМŸÿ‹¦?³òé§K6n Љɽ~j  À q«W89Y:TªéGDøÇÆæýòK³¦Ç`@P`Ð8}}½£Gi%%wÿýïÿÖè@áðá¡¡¾ÑÑY55LŽÀ€ À  ³f¹.YòvRR‰P(Öè@zz„'V¿õ׿fÝ»§‘‡¡ "(0hɶ¶ròò~Öô@D¢Þ‰‘¾¾ŽÑÑY--/5Ÿxþüy…ßé Æ„¾¾þpþ©ÀmÊhOZÚµÌÌÿôÓ3MÕÝÝ‘ùôéïçÎýmêÔ¾ÆjP˜L毿þªÆ€`d"‰¡¡¡†††CŽíéí¥º?¡…áø|ALLîÝ»O 6Μ颅KdhþÝùõ×ÇZÎȈüÍ7gϦ®Z•QYÙ¨…g0h[ddæï¿wÿðC‚ž^߯R×±X’pöâźŒŒè… ÿ¤…ÀÁ Ú–”ôQCCƒQ£áˆD½ãÇ#ÂÂfÄÅå—–ÖigPBúC0îî6kÖ¼{äÈ¡¡¾'kaD"Q/55!´eK†aK—NÓ “’’tãN` [aauSÓ‹E‹´´f¥§G ñf³»?ÿü²……ñ´iNÚŒgP`Љèêjý÷¿_š9ÓÙÙÙJ;ƒ„ ¼ÌÌŒøžÃéž7Ïÿ¬ùЙ¸¸üºº'»ŒÉÚ÷òå{[¶̟ehHÒæÐ`\‹üèÌÁƒa\nOZÚ5-ûÁoûíæÛ·™4ÚI§[Ë£ƒñ :C¡˜&&.>uêß÷ï·jyè3œ‹‹·¼xÁ]¼ø ‹­åÑÁ8Kdè†a+W~Íát_½º]__Ûð={Ö±fÍ)¯·  V½“Á ºE RRh--/sr~Òþèöö%%ñÎΖ‹qñâ]í'Æ6¸‹ ³°˜ c_|QöÑGÓÍ͵ñ±Y$í"QoÏžoY,öüù^úúD-çÆ*X"@÷z{E uv¶:}z£®n¾~ý?ññ…YY뜜,u’c`‰ Ý30ÐÿúëèÊÊF-|[Œ2ï½÷Ö¥K‹D’%K¾(+{¨«4ÀXKdŒ66fB¡øøñ/~{Ò¤ :ÉÁÂbö‹õû¡C¥,ÖïnFFZý€c`‰ €‘?{Ð××ûþûx"Q—« wîýtÉš5:ÌŒjpÀH¡§G˜5Ë%-í‘Hô÷wÕa&öö4Ú;/^¼NKûñ·ßÚgÍr11úׂq #ˆ¥¥ ™¬ŸšzeÁ/›‰:ÌÄÀ@?8ØÛßߥ àÖ?ÿYÞÛ+òó›B&Ãó×Á À#‹D‚­Xq’Ãé¾vm»îèB¡˜Á¸šzE(oÞü— ‚FBV`T€3Fàvòd9Ÿ/˜;×C×é "QÏ××qÕªY\.?=ýÆÅ‹w­­Í¨Tx3Fssc##RZÚµùó½lmu¹P&edDž?ßkÙ²é íii?––Ö™˜Lj§o}£,‘0I$ØÊ•éÏžu^»¶ÝÔtd]`òä÷¯¾*g0n››GG¿;o¤eF(0ŒPl6/88Õ××1/o½6×£âãã|™@`ðê•Õë׿VVl å…#P\\ÜŠ+”ý #WUUóÊ•_öÙG11sµ6(@pttTåÅ==D==ŒL–h:+0ݺu+00°¨¨HÙ ànF®wߥnÙ² 9ùâ;ï¸üéOZ7!!!<<\kÃQjÀ$ð,2F´íÛN›6%..¿««G×¹08P`ÑôõõÒÓ£¸\>ÎÐu. F:;;ó/¿Œ,-½WPpK×¹0P`þò¯ØØ }ûŠ>|¦ë\PF‡={>pw·Ùºµð?ºÎE³š››Õu[ö¹sçŠÔÕÕ 32@hnnÚ¶ÃßA…;ÕÿXƒT]oF2Y?3ó¯mm gáÓ*úðÃÛÛÛÛÛÛ«ªªBíÿÇÛÛ[ש WUUUû›¾ÌÜÜ|×®]ZÎM nS`Ôpq±ÎÎ^»zufZÚµíÛê:QÀÈÈÈÈÈ!ÄãñB¶¶¶ºÎHm¬­­UÙ++«””-䣜Á0šÌ™ã±oßRüi`:Lƒ@ äææzyyY[[§¤¤œ>}ÚÅÅeâĉûöíCÅÇǯ_¿%Ç366¾{÷.B¨´´Ô×××ÐÐÐÕÕõôéÓ!‰DòÕW_yyy™ššVTTÈ®Ìà 5%%%S§N¥P(ñññ½½½ ;Ñ›«:®ð(ÌPYd¡PH§Ómll( N …ÊÂvvv®]»ÖÊÊÊÁÁaÇŽ===Ê:q†íرÃÏÏÍf+Ì_YJÊ\ºtiÚ´iÆÆÆvvvx]Q8ò{$‹SSS=<9G¥îjhhÓDp„ƒÁð5\.7;;!Îår333Bl6ûæÍ›–––B¡ð‚‚ooo‰DÂãñ 222ÚÛÛsrrôõõy<^ff&…B)..nkk»|ù²ƒƒB¨©© ?4áÆÆÆêêj*•𔔤°ðÎÎά¬,<=Ù6N§0Ce‘9²|ùò'OžÔ××OŸ>}÷îÝø 455õ™–ÈÈÈ ´´´Ô××ûøøà›ËwâI$iué“aÿ3€^WW×%C(r¹\2™ÓÚÚZPP€zùòeŸPx|ù=JKK“}#&Ož¬Ju Ñh4­¿'†Œ4==Â>8þî»ýúµW±ÀÔÖÖb&ú´›ššD"‘­­myy9†a¡¡¡)))†q8‰tìØ±ŽŽ‰DÒÕÕ%‹½½½óòò¤aóóóå L}}=þ[ƒA¥Rv¸S} ŒÂ •EöôôlooÇ;ËÊÊüüü0EF ‰Äà?S©T…ø@;wîDýöÛoòö?˜¢+p¥¥¥½½½ <O,ß¼yÏPa‘ß#ù7bÀY°ÀÀ£~NN Ÿ/ˆÍ‹uó0SSS„‰DêÓF‰Ä°°°ââb6›}ýúõÈÈH„……EEEEuuµƒƒCPPPee¥žž“Éôóó“Æôõõ•ÈÝÝoxzz¶¶¶öÓ©:…*‹Ìb±ìììð;µ‚ƒƒ=z¤0æ‹/Äb±››þ#•JmmmU؉·ïܹ3o޼ǡêSBîlŸò¶xñb2™ÜØØ¸páÂ3fäååõ³ûò{ôôéÓ߈!€À¨dcc–•µ¶ººåèÑ+ºÎEváÂ…¢¢¢9sæà _|>_"‘œ?žÃá¬_¿~É’%ÇÞÞþÞ½{Ò­>|( ÿÓ!ÔØØˆ/Ý(ëf†Ê"[YYIæÕÕÕ ÚØØ‰D&“‰ÿØÒÒboo¯°o—––fddœ;w®¢¢BD$!„ž={ãÓN*î,ŸÏ§Óéµµµéééýì»ü9;;øF Å€'A€+7·ròä„+WêÕ©¶D&=B)l‹D" …bccó¯ý ÿŸÏ744üöÛo_½zuêÔ)CCC>Ÿøða …òý÷ß···_¹rEá5˜ùóç755ݾ}ÛÝÝ}ÿþý ;±A^ƒQ˜¡²Èñññ+V¬`±X÷îÝó÷÷ß²e ¾§}nÆ0lõêÕ ,`2™÷ïß÷ööÆ7—ï”MæÀ|>ÿÕ«W¡œœœ×¯_/[¶¬ŸÀ”\êèè W®\éîîÆ×ßjkk.‘Éïщ'dßWWWUª\ƒ`ŒÛ±ƒá꺳¶ö±ºª¥À`¶iÓ&###.—+ÝŠÁ`¸¹¹‘ÉdOOÏ’’ ÃArr²‹‹‹‰‰I``à™3gä Lvv¶“““••ÕÖ­[ù|¾ÂNLÉ5 )ùù •Eær¹ëÖ­³°°°´´ŒíîîÆ]Á0ŒÃáDEEYZZÚÙÙ%$$à›ËwÊ&Ãçó=<<8€aØ¡C‡ÌÍÍÝÜÜJJJú™LIÁ0,--mÒ¤IŽŽŽééé Ea‘ß#‘H”ššJ¥R'L˜ˆŸ¥õÿoS¡ÀÀ÷Á0º‰Å’ØØ¼[·Z.^ÜF¥R†@ 0Œá?®?11‘Åbª¾Iss³»»»ô ÔçÇ~:Õ’¡#«ËLIþ¤Ÿïƒk0ŒnD¢ÞÉ“Qnn”ÈÈÌ—/»tBõôô0™ÌÜÜÜ7ê:ÅF~†cF=CCR~þ}}bttVwwÄÓŽššš™3gÆÄÄÌ›7o8qÌÌÌâââTé,…ª%²zÀ”–È#X,öÒ¥'|}óò6èëýoGu-‘1–È/œ­òó7ÞºÕ²k×y]çBP`K¦M›’‘]Ttû‹/~Ôu.@`l öÞ½;ôر«ß_«ë\Àxë`¬Ù¼yA[[ç¶mgŒŒÈï¿ï£ëtÀø€1èС0‰‹ÍËÊZ2èS^^ÞÙÙ©‰ÄÀXÂd2ñÏü+€1ˆ@ >¼\(oܘ—“óÞ{o©¾­££ã©S§4—Kú¿nS`Ì‹%[¶\»öàôéØÙ³©ºNŒ;P`Ëð“˜ÊÊÆ3gâüýû[Í@í À0Æ …☘œ;w;÷7?¿)ºNŒ#P`ûzz„kÖœzðàÙ·ßnöñ±×u:`¼€À¸Àåòi´ô—/»ŠŠþæîn£ëtÀ¸´`\033:wn“YXØW÷ïú;†(0ŒŠ‹·øøØ/[öÏÊÊF]§Æ>(0Œ#ÆÆäo¾Ù8¾WTTÖÕ«÷uã À0¾HÄŒŒèe˦ÇÅå_¼X§ëtÀXŸä`Ü!õÒÒV™šnÞ|º»»'""@×± ã@HN^6q¢ÑŽE]]½±±AºÎŒAP`¿¶o_(‘`Ÿ}V"Š6o^ ëtÀX€qN_dnnœœ|±©éÅÑ£ád2€ÚÀ-¨¦†¹aÿllÌòò688Xè:0FÀ]däïïZZºM,–,Z”V]Ý¢ëtÀ€BÎÎV.l}ë­É‘‘§òò~µ 0|°Dø"‘äÿ¸zòdùìÙîÇGØÚNÔuF`ƒè«¡¡=>¾ðñcöþýFF]gF%(0ø|ÁÁƒóó«BC}\§2` À”ºyó·]»Îÿþ;/!!dãÆ ‰¨ëŒÀhСPœŸÿKjêKK“Ï>û(8Ø[×Q ``Ïžu$'_,-­[²ÄN_D¥Rt ÀTõóÏM^|øðÙÒ¥Ó>þ8ØÃÃV× `pnßf=z¥ªªyî\={>ðó›¢ëŒÀ ª;w¦¦¦âmCC7“±øuGÇ%Ýf4ŠL&߸qcöìÙCØlP‹Å øä“Oð1 ëéEë6+ QáááÏž=Ú¶P`ƒàèèH£ÑtàYd4 €@# ÀÐ(0€Ñ¤¹¹YOw&ÍÍÍý÷¨¨»»{çÎo¿ý¶‰‰É¬Y³>ÿüs‘H¤¦4ßHOžÚGQ¸‹ †«««kÖ¬Y %%%ÅÍÍíÁƒûöí++++++#Õü„Ъª*õÆÔ(00\ÉÉÉÖÖÖ7nÜÀˉ‡‡Çûï¿ïãã“§Þ±¬­­mmGÇCz`‰  f!77×ËËËÚÚ:%%åôéÓ...'NÜ·oB(>>~ýúõø+y<ž±±ñÝ»wB¥¥¥¾¾¾†††®®®§OŸFI$’¯¾úÊËËËÔÔ400°¢¢Bv9_++))™:u*…B‰ïííU؉Þ\XS}‘M>%„P(¤Óé666 …N§ …B„PAAÁþýûeOV&L˜°sçÎÂÂBeCËÇÁ[^^>eÊ”éÓ§+œ%ed·ÍËË“¶þùçÎÎεk×ZYY988ìØ±£§§GöÅ?ÿü³*S1D¨†F£Ñh´_†Šˆˆàr¹ÙÙÙ¡ððp.—›™™‰b³Ù7oÞ´´´ …†x{{K$g``‘‘ÑÞÞž““£¯¯Ïãñ233)Jqqq[[ÛåË—BMMMø o„„„466VWWS©Ô¤¤$…†uvvfeeáéɶñ€}’Ç{¦„aØ‘#G–/_þäÉ“úúúéÓ§ïÞ½»££!ôêÕ«>ópëÖ­I“&I–挷åãà¿]´hÑ7~øáùYÂÓ«««ëz“42¾m]]´Íãñ"##,XÐÒÒR__ïãã#%é |7 Æ€oºâm‡¶`R½ÀÔÖÖb&ú´›ššD"‘­­myy9†a¡¡¡)))†q8‰tìØ±ŽŽ‰DÒÕÕ%‹½½½óòò¤aóóóå L}}=þ[ƒA¥RvöŸª²£0% Ã<==ÛÛÛñ—••ùùùá†Íf÷ ^UUeee¥¬ÀÈÇ‘M^á,aJÙg6dÛ€H$>xðß¼¸¸X~–ú7œKdõ355E‘H¤>m„‘H +..f³Ùׯ_ŒŒDYXXTTTTWW;88UVVêéé1™L???iL___ùÜÝÝñ†§§gkkk?ÊȵeÛ SB±X,;;;üö­àààG™››ÛÚÚâç ²êêê<==•%Gš³²YÂõ©ˆ²1e‡ÃÛ/^¼‹Ånnnx'•J•NHŸÜ4 @Ûh4Ú… ŠŠŠæÌ™ƒ/|ñù|‰Drþüy‡³~ýú%K–p8{{û{ÎàØl-IDAT÷îI·zøð¡|(üq„PccãäÉ“ûéThÊ”)²7%744èëë;::*K !„Ÿ”àGöŽŽŽêêj„PddäÁƒÅb1'""âìÙ³)))x~˲ìS#ÆA2•X~–$ÝVÚ¶±±!‰L&ïlii±··—±†@hÛܹsE"QrrrTTÞC BBB¾ûî;.—+H$’±±qLL N/))yþüùÕ«WwïÞ-jÛ¶mÍÍÍwîÜÙ»wïš5k”u¾~ý¿ Ô§½víÚ­[·^ºtéÑ£GåååkÖ¬‰ŽŽ600P–B(,,lÏž=?®¯¯_¸páÉ“'Bû÷ïþüyppðµk×]]]W¯^ÝÓÓ³aÃsss„Ð7ß|Ãår¿üòKiæ ãô?K¸W¯^=S?SM"‘V®\ÿèÑ£|úé§²'C7´•5À8¤ú5éßæÊÚ›6m222âr¹Ò­ †››™Löôô,))Á0L $''»¸¸˜˜˜ž9sÉ]ƒÉÎÎvrr²²²Úºu+ŸÏW؉½yñC¶- =:uêTüV±ÄÄÄîîî~RÂ0ŒËå®[·ÎÂÂÂÒÒ266Vúz·}ûvCCC77·ÄÄÄ   •+WbvèÐ!sss77·’’éÐòqdS6KÊãÊvÃ0‡eiiigg— ¥ßGéˆC¾_8PUxx8B¨¨¨hø¡Y,Vaa¡ê›477»»»KY}~ì§SWAmmm@@À# a–ÔŽ@ 0 ü­,ø %@«zzzÚÚÚrssÏž=«ë\4‹L&¹ºŒY‚k0­ª©©™9sfLL̼yó†ÇÌÌLþCò ;G#uÍ’nÁ@Uj\"£Åp–Èà €F@ P`h·)á§Ÿ~ Öu`t€PFÓu @ÛV­Zåïï?´má6e×`h€F@ ÿ'][¸ŒÛ¾IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MaxPacketInsertPolicy.html0000755000372000001440000002624512502417164030416 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MaxPacketInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 MaxPacketInsertPolicy (Connection *con, int size)
 Constructor. More...
 
 MaxPacketInsertPolicy (int size)
 Constructor. More...
 
 ~MaxPacketInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::MaxPacketInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size.

This differs from the SizeThresholdInsertPolicy in that it builds the VALUES expression and checks whether it would cause the length of the INSERT statement to exceed the maximum size.

Constructor & Destructor Documentation

template<class AccessController = Transaction>
mysqlpp::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( Connection con,
int  size 
)
inline

Constructor.

Parameters
conconnection object used for escaping text
sizethe maximum allowed size for an INSERT statement
template<class AccessController = Transaction>
mysqlpp::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( int  size)
inline

Constructor.

This version does not use a Connection* so it will not be able to take the character set into account when escaping the text.

Parameters
sizethe maximum allowed size for an INSERT statement

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::MaxPacketInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x6c.html0000755000372000001440000001100512502417165024730 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoExceptions-members.html0000755000372000001440000000467012502417163030237 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoExceptions Member List

This is the complete list of members for mysqlpp::NoExceptions, including all inherited members.

NoExceptions(const OptionalExceptions &a)mysqlpp::NoExceptionsinline
~NoExceptions()mysqlpp::NoExceptionsinline
mysql++-3.2.2+pristine.orig/doc/html/refman/stadapter_8h.html0000755000372000001440000000573512502417162023445 0ustar robertousers MySQL++ Reference Manual
stadapter.h File Reference

Declares the SQLTypeAdapter class. More...

#include "common.h"
#include "datetime.h"
#include "null.h"
#include "sql_buffer.h"
#include "tiny_int.h"
#include <stdexcept>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::SQLTypeAdapter
 Converts many different data types to strings suitable for use in SQL queries. More...
 

Detailed Description

Declares the SQLTypeAdapter class.

mysql++-3.2.2+pristine.orig/doc/html/refman/doxygen.css0000755000372000001440000005645612502417162022366 0ustar robertousers/* The standard CSS for doxygen 1.8.5 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } 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, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } 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%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0px; margin: 0px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; 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+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } 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: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } 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 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } /* @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; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .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; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @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; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: bold; margin-left: 6px; } .memname td { vertical-align: bottom; } .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); background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; -webkit-border-top-left-radius: 4px; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } 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; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .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; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view when not used as main index */ div.directory { margin: 10px 0px; border-top: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } 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; } 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.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .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; background-position: 0 -5px; 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; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: 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 { font-size: 8pt; 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 10px; } 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 */ dl.section { margin-left: 0px; padding-left: 0px; } dl.note { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00D000; } dl.deprecated { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #505050; } dl.todo { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00C0E0; } dl.test { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #3030E0; } dl.bug { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #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; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 20px 10px 10px; width: 200px; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @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; } } mysql++-3.2.2+pristine.orig/doc/html/refman/comparable_8h.html0000755000372000001440000000457712502417162023566 0ustar robertousers MySQL++ Reference Manual
comparable.h File Reference

Declares the Comparable<T> mixin. More...

Go to the source code of this file.

Classes

class  mysqlpp::Comparable< T >
 Mix-in that gives its subclass a full set of comparison operators. More...
 

Detailed Description

Declares the Comparable<T> mixin.

mysql++-3.2.2+pristine.orig/doc/html/refman/datetime_8h.html0000755000372000001440000001506712502417162023251 0ustar robertousers MySQL++ Reference Manual
datetime.h File Reference

Declares classes to add SQL-compatible date and time types to C++'s type system. More...

#include "common.h"
#include "comparable.h"
#include <string>
#include <iostream>

Go to the source code of this file.

Classes

class  mysqlpp::DateTime
 C++ form of SQL's DATETIME type. More...
 
class  mysqlpp::Date
 C++ form of SQL's DATE type. More...
 
class  mysqlpp::Time
 C++ form of SQL's TIME type. More...
 

Functions

DateTime mysqlpp::NOW ()
 Returns a DateTime object that, when inserted into query will yield a SQL "NOW()" function call.
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const DateTime &dt)
 Inserts a DateTime object into a C++ stream in a SQL-compatible format. More...
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const Date &d)
 Inserts a Date object into a C++ stream. More...
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const Time &t)
 Inserts a Time object into a C++ stream in a SQL-compatible format. More...
 

Detailed Description

Declares classes to add SQL-compatible date and time types to C++'s type system.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryError__inherit__graph.png0000644000372000001440000001337212502417165032004 0ustar robertousers‰PNG  IHDR°»JƒÊbKGDÿÿÿ ½§“¯IDATxœí{TWÇoH‚á! „ ÇB±èz¶K]Å•…r¨®g׫ B-ì*xºÂÖºUX«–Š]Ï©t-jõ "¥ø Øí* V…mËËB@$Iy˜˜ÇÌþ1Ýì\)BÌDóûþøÍûøæÎ7÷ÎÜ 3,’$ü¦–ÀC`ƒc¶–º»»;::ÌÖÜ‹„P(tss3O[æ3ÄÇ?~ìääd¶_ z{{>|ø!äää`Î_nݺeÎæàÀC` `<߆hnnf±XL«À°@IOÅs`ˆÖÖV>ŸÏ´ cк¸¸¼÷Þ{Ìê Ï!‚èééaZ…1è ù|~zz:³zƂެ¬,00Çãyyy9r!ôꫯ"„&Mš„Òét¾¾¾ãÇŸ7o^MM UŠ>PÓcF“’’âîî.RRR4Í™3gD"‘\.G?~Ü××w``@«Õ¦¦¦Nž<ÙÍÍ-&&F¡P Wœª¼´´tÆŒ ))éÉ“'t…ôÖ Å›o¾Éçó===“““U*BˆÅb}ñÅþþþ'Nܳg™ºu俢¡¡¡¡¡ÁxžþþþqãÆeggK¥Òüü|‡ÓßßßÔÔ¤×ùÏþS wtt”—— …Bj—B¡ÈÍÍ¥òÐã?þxÙ²e÷ïß‹ÅsæÌÙ²e I’111±±±îîî555$IfddˆÅb‰D”œœ<\qJLxxxccãÕ«W½½½ÓÒÒè éñªU«BCC[ZZÄbñÌ™3ÓÒÒH’DEFFÊåòÜÜ\„POOÏØûÍ„X–!d2—ËÝ»w¯\.'¢¯¯O§ÓÑ»Ø××÷óÏ?×ç/((0îi???©TJÅ.\˜={6I’r¹ÜÓÓ300:B$IΘ1£¸¸˜Šoß¾­‡§ÄˆÅb*±°°ÐÛÛÛ !Ôj5›ÍÖäââbooo’$B/^¤2 „šššŒ÷‰U‚$ÉK—.EFF:88õÕW$þ³³³«««Óg¾yó¦qCðx<úpèììL¥ïرƒÍfwuué³I$’‘§Ä(•J*C}}=Ç3hˆ¶¶6zN±XÌãñH’DýøãT¢²Î!”J%AEEE2™,..nÉ’%2™ŒžaêÔ©õõõúÍ_\ççóùú—ËåW¯^Eµµµeff†……mÞ¼™Ê& ïÞ½KÅuuu»ví2R!Du„Pcc#5m ÅÝÝÍf·¶¶R›---"‘ˆŠml,«ÛéX–2‹~êÔ©ÞÞ^µZÍårííí©]ýýý¡õë×§¤¤”––vvvž={vûöíÔÞŸ~ú)//ohüç?ÿùý÷ß¿wïžX,Žˆˆøì³Ï‚xë­·?^YYYVV†Z³fÍßÿþw껸qãÆ{÷î WœJß´iSssóµk×¶nݺzõjºB=\.wÅŠIIIwîÜihhøàƒV­ZõìºÎd˜m,áÐWXX8}út[[[??¿ÒÒR’$5ÍüùóI’ÔjµÞÞÞsçÎ¥¾²$>­ÐãÞÞÞµk×N˜0ÁÕÕ5>>~```ÿþý³fÍR«Õ$I–””xxxÈd2•J•œœ, £¢¢ärùpÅ©Êóòò¦L™Âçó•J%]!½u™L¶fÍWWWwß}—š>mš@–7e°HsýêšÞŸ÷ÛßÍÍÍ>>>fë4dö~³¬)`0ÄÓáää”À´ŠgâéÙÙÙL«x†€! 0€†0À†Y†¯R©àuž•J5è–Ê3Å|†àñxÝÝÝ}}}fkqäTVÞE……MeXÇ0¸¸¸˜­-ó­TZ,:1kV*BH,ÞacóÿÒ$À9ºr¥Y&Éú««›™ÖÂ<`TTô‡cÃåÚ]cZ óX»!T*Myy½V«Óhˆòòz•Jô"†±vCTU}¯7J¥©ªúžY=Œcí†8uê;ý¤Y,Ö©Sß1«‡q¬Ú½½ªÊÊÛ:AmêtDeåíÞ^³ª˜Åª qö¬„ °«n‚ Ï“0¥Ç°jCœ<ùÝ U’$Ož´êYÃz ÑÝÝW]ÝD=‘ Èêê¦înK\N5Ökˆ/¿¬3¸.Éb±¾ü²~hº•`½†8qâ»A'AXó ••¢½].· cT_ßÖÑ¡0¿*KÀ¬·¿-‡Gú…Bý µ6Åãq©M›Gú„BóÝc´àn'B%$ „rrb™ÂÚØ ÕÕÕÓ¦M3CC­­­¿ùÍo=z„rqqyï½÷ÌÐèCü77·I“&™¡!‚ zzz¨˜Ïç§§§›¡Ñòl§ ‹uðàA77·ôôô#GŽL›6ÍÙÙyÛ¶m¡¤¤¤¸¸8*g¿½½ýÍ›7Beee<ÏËËëÈ‘#!‚ 233ýýýÇ?wîÜ‹/Ò‡YjÔ---1c†@ HJJzòä‰ÁD„Ñ#®Ïœ9#‰är9Bèøñã¾¾¾Z­655uòäÉnnn111 ÅÏÎ×h4)))îîî %%E£Ñ”ñꫯ"„(óÑ5(Š7ß|“Ïç{zz&''«T*ª¿øâ ÿ‰'îÙ³ÇDGfxF·ÀYXX8’²¡¨¨¨ÞÞÞ¼¼<„Ðo¼ÑÛÛ›““ƒzôèÑ¿ÿýoWWWFC’äÑ£G‚èïï7n\vv¶T*ÍÏÏçp8ýýý999 ¸¸¸£££¼¼ÜÓÓ!ÔÔÔDi ‚ðððÆÆÆ«W¯z{{§¥¥L$IR¡PäææRòè1B¨®®®‡ÚÛÙÙéîî^SSC’dFFF@@€X,–H$AAAÉÉÉTÎ?þxÙ²e÷ïß‹ÅsæÌÙ²e‹mTz¼jÕªÐÐЖ–±X-•J+** žC„„„455ÕÖÖúøølß¾Ý`"iô¢ººZŠC’¤N§ ûðÃe2Ù¤I“Μ9C’djjj`` D"‘H$óæÍ{ûí·©J’’’"##ïÞ½[__´qãF#Ú¨súhÚÚÚ*‘H(ÁÃõ¡ñn^§ ’$ׯ_ogg×ÛÛK¯|úôé¶¶¶~~~¥¥¥$IªÕê;vL›6ÍÑÑqîܹǎjˆ¼¼¼)S¦ðùüÄÄD¥Ri0‘Ä=îÛ²ÿþY³f©Õj’$KJJ<<tr²cZÃÀ9:w®$A¦µ0Öþo1§–i-Ìcí†èìü©¦¦•$I‚ kjZ;;bZÃX»!ÊÊêØìŸ;ͶùòËzãù_x¬ÝEE×ô×JZ-QTtY=ŒcÕ†hmínhh§]f‘Ƀ;wº”Ä8VmˆÒÒ›\.›žÂå²KKo2¥Ç°jCœ8Q«Ñ`kkÎʯ5¬×·nµß»×34ýÞ½ž[·Fù<žë5DIÉAó—Ë.)¹a~=‚•‚ È¢¢kƒæ FWTt ¬tEßJ qóæýîî>.—mkËôÇå²»»ûêêî3­‘¬ôqžž6lÕo^¹Ò‚š;wº>E$šÀ€, îv"„PBBB(''–i!Ìc¥S0` `€! 0€†0ÀÀC` `€! 0€†0ÀÀC` `€! 0€†0ÀÀC` `€! 0€†0ÀÀÀRUUÕÜÜÌ ¦(*jG-_.bZøøø„„„ü›þŠ>ÇJŸ0dÍp8º°‚Åb¥¦¦ŽñµªÀsÄ7ß|óüƒî8‡0ÀÀC–uYÑÞÞ¾zõê‹/𤶣GŠD"#)#D¥RÔÖÖvttL:uþüù+W®d³ <*{,`—ÿÃT½1B,Ë–ÉãÇßyç—øøx‘HtçÎüüüëׯïÝ»×ÆÆÄClff¦‡‡‡ië|*À¿ÌáÇ]\\öíÛG~OOÏW^yeíÚµåååK–,1m[...'N4mOÅS<$$¤¢¢"66öOúÓ±cÇΟ?µxñâƒ"„öïß¿gÏ*§R©ŒˆˆhjjBUWWÇÅÅ…‡‡GGGŸ?!D’dIIIllì¢E‹6lØpóæMú€ÙÞÞrùòå5kÖ,]ºtÿþýÆ`¢>3½àH>ÈPI!­V›½téÒ¥K—fggkµZ„Ð… bbbèƒÇ[¹reeeåpM­‡Ú{ãÆ+VÄÇÇì¥á —={ö¬>–H$ýýýéééüã—/_ž••¥V«é™%’§~éhFˆëׯgee}óÍ7 .ÌÏϯªªúä“O"##÷»ßmÛ¶M§Ó±ÙìË—/{xxx{{«Tª´´´ÄÄÄyóæÕÔÔìÙ³gÁ‚•••‡þë_ÿúÒK/577ôÑGC:}úôG}Ô××·k×.''§°°°¡‰±±±...ÉÉÉTzlƒ’x<ÞÉ“'¥RiNNÕчŠŠŠ’ÉdÞÞÞƒjðññÉÏÏ®þ¡õ,Z´!tâĉ-[¶¨ÕêÝ»wê%½0¥RI¯ÊÎîç— Seœœô±Ï'Ÿ|"“ɲ³³•JåÎ;ííí©^ÒgøÅ®Äh¦À+VØÛÛ‡‡‡#„¢££ííí#""B}}}3gÎäp8b±!TYYÎb±4 I’J¥ÒÖÖ6""¢¬¬lܸq§NZ¿~}pp°««kPPкuë†6ôÎ;ïxzzúûû¯[·îÂ… Ã%:88,^¼˜ÚK`PB¨¢¢bÓ¦MÀËË+!!¡¶öç×-±X¬A5$iäb¸zâããõ«_½òÊ+C{‰Ê°nݺE8ú:©²<Os8œªªªÄÄD//¯µk×ê{‰žù©Íaoo¢n|Ðc„Mppð·ß~ëååuýúõÍ›7#„Æ¿oß¾“'O:tÈ××7:::((H*•Ò¿v^^^Còôô¤‚É“'wwwIú¢,=6( !ÔÙÙ¹lÙ2}6GGlj'677Ï™3‡^sssóäÉ“‡kkh=zÍÃõ…‘‹ zsT,—Ë ‚ …T¢H$ÒwÈ m#Çô'• .ܹsçÔ©S_~ùe777„Г'O‚HKKÓjµ_ýõÖ­[OŸ>Íçó[ZZ¦OÿùwïÞZÕƒ(£´µµ¹ººI4ˆ@ hoo×èþýûl6[  'iüøñÎÎÎûöí£I¿L&C………>|xöìÙÔðá‡þö·¿=vìXtt4U35ø?zôHß´Ází›3´—~ú­G*ž0a‚T*2e B¨££ƒÏçÍüT˜~a*00P§ÓPs BˆÅb¥¤¤|ûí·†ÃáŒ7îõ×_ÏÊʺ|ù²L&«­­=pàÀЪ233ÛÛÛøá‡¼¼¼×^{m¸Äòòrj/=ŽˆˆøôÓO¯\¹"•Joܸ±k×®ððp.—;œ$„PpppnnnWWWkkëßþö·Ó§O#„bcce2Yrròµk×y‘Ak”—,M»Ž9F´ZmccãK/½4êFÑK&ç™ßþV«ÕR©´¢¢âøƒik¶48ΨÝ`ɽdbC|ÿý÷ ¯¿þúìÙ³ÇRƒƒÃÐE@ƒ‰Ï#¦ê¥gübʪ_L¿ÀC` àÐÿIÃä¿ ,6›ý³}_UUUWWSÊFpww§oÂËà 8‡0ÀÀCÿÌP‘»Õ -IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldTypes.html0000755000372000001440000001676112502417163026245 0ustar robertousers MySQL++ Reference Manual
mysqlpp::FieldTypes Class Reference

A vector of SQL field types. More...

#include <field_types.h>

Inheritance diagram for mysqlpp::FieldTypes:
Collaboration diagram for mysqlpp::FieldTypes:

Public Member Functions

 FieldTypes ()
 Default constructor.
 
 FieldTypes (const ResultBase *res)
 Create list of field types from a result set.
 
 FieldTypes (int i)
 Create fixed-size list of uninitialized field types.
 
FieldTypesoperator= (const ResultBase *res)
 Initialize field list based on a result set.
 
FieldTypesoperator= (int i)
 Insert a given number of uninitialized field type objects at the beginning of the list. More...
 

Detailed Description

A vector of SQL field types.

Member Function Documentation

FieldTypes& mysqlpp::FieldTypes::operator= ( int  i)
inline

Insert a given number of uninitialized field type objects at the beginning of the list.

Parameters
inumber of field type objects to insert

The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2node.png0000644000372000001440000000012612502417165022413 0ustar robertousers‰PNG  IHDRɪ|IDATxíݱðøScOx@ –¨y}IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine-members.html0000755000372000001440000002173712502417164032212 0ustar robertousers MySQL++ Reference Manual
mysqlpp::examples::CommandLine Member List

This is the complete list of members for mysqlpp::examples::CommandLine, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLine(int argc, char *const argv[], const char *user=0, const char *pass=0, const char *usage_extra=0)mysqlpp::examples::CommandLine
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
dtest_mode() const mysqlpp::examples::CommandLineinline
extra_args() const mysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
operator void *() const mysqlpp::CommandLineBaseinline
option_argument() const mysqlpp::CommandLineBaseprotected
option_index() const mysqlpp::CommandLineBaseprotected
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() const mysqlpp::CommandLineBaseprotected
pass() const mysqlpp::examples::CommandLineinline
print_usage() const mysqlpp::examples::CommandLineinlinevirtual
print_usage(const char *extra) const mysqlpp::examples::CommandLine
program_name() const mysqlpp::CommandLineBaseinlineprotected
run_mode() const mysqlpp::examples::CommandLineinline
server() const mysqlpp::examples::CommandLineinline
successful() const mysqlpp::CommandLineBaseinlineprotected
user() const mysqlpp::examples::CommandLineinline
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1RowCountInsertPolicy.html0000755000372000001440000001625612502417163030321 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RowCountInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 RowCountInsertPolicy (unsigned int rows)
 Constructor.
 
 ~RowCountInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int, const RowT &)
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::RowCountInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted.

This policy is very lightweight, but is only reliable when you can predict the size of each INSERT in advance. The others do more processing to reduce the risk of unpredictable row sizes.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::RowCountInsertPolicy< AccessController >::can_add ( int  ,
const RowT &   
)
inline

Can we add another object to the query?

Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classRowCountInsertPolicy-members.html0000755000372000001440000000572612502417163027663 0ustar robertousers MySQL++ Reference Manual
RowCountInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/comparable_8h_source.html0000755000372000001440000004244412502417162025141 0ustar robertousers MySQL++ Reference Manual
comparable.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_COMPARABLE_H)
29 #define MYSQLPP_COMPARABLE_H
30 
31 namespace mysqlpp {
32 
39 template <class T>
41 {
42 public:
44  bool operator ==(const T& other) const
45  {
46  return !compare(other);
47  }
48 
50  bool operator !=(const T& other) const
51  {
52  return compare(other);
53  }
54 
56  bool operator <(const T& other) const
57  {
58  return compare(other) < 0;
59  }
60 
62  bool operator <=(const T& other) const
63  {
64  return compare(other) <= 0;
65  }
66 
68  bool operator >(const T& other) const
69  {
70  return compare(other) > 0;
71  }
72 
74  bool operator >=(const T& other) const
75  {
76  return compare(other) >= 0;
77  }
78 
79 protected:
87  virtual ~Comparable() { }
88 
93  virtual int compare(const T& other) const = 0;
94 };
95 
96 }
97 
98 #endif // !defined(MYSQLPP_COMPARABLE_H)
virtual int compare(const T &other) const =0
Compare this object to another of the same type.
virtual ~Comparable()
Destroy object.
Definition: comparable.h:87
Mix-in that gives its subclass a full set of comparison operators.
Definition: comparable.h:40
bool operator<(const T &other) const
Returns true if &quot;other&quot; is less than this object.
Definition: comparable.h:56
bool operator>(const T &other) const
Returns true if &quot;other&quot; is greater than this object.
Definition: comparable.h:68
bool operator!=(const T &other) const
Returns true if &quot;other&quot; is not equal to this object.
Definition: comparable.h:50
bool operator<=(const T &other) const
Returns true if &quot;other&quot; is less than or equal to this object.
Definition: comparable.h:62
bool operator>=(const T &other) const
Returns true if &quot;other&quot; is greater than or equal to this object.
Definition: comparable.h:74
bool operator==(const T &other) const
Returns true if &quot;other&quot; is equal to this object.
Definition: comparable.h:44
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection-members.html0000755000372000001440000003765412502417164033067 0ustar robertousers MySQL++ Reference Manual
mysqlpp::WindowsNamedPipeConnection Member List

This is the complete list of members for mysqlpp::WindowsNamedPipeConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() const mysqlpp::Connection
connect(const char *db=0, const char *user=0, const char *password=0)mysqlpp::WindowsNamedPipeConnection
connected() const mysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() const mysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() const mysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() const mysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() const mysqlpp::Connection
is_wnp(const char *server)mysqlpp::WindowsNamedPipeConnectionstatic
kill(unsigned long tid) const mysqlpp::Connection
operator private_bool_type() const mysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() const mysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() const mysqlpp::Connection
server_version() const mysqlpp::Connection
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() const mysqlpp::OptionalExceptionsinline
WindowsNamedPipeConnection()mysqlpp::WindowsNamedPipeConnectioninline
WindowsNamedPipeConnection(const char *db, const char *user=0, const char *password=0)mysqlpp::WindowsNamedPipeConnectioninline
WindowsNamedPipeConnection(const WindowsNamedPipeConnection &other)mysqlpp::WindowsNamedPipeConnectioninline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~WindowsNamedPipeConnection()mysqlpp::WindowsNamedPipeConnectioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Comparable.html0000755000372000001440000003223212502417163026231 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Comparable< T > Class Template Referenceabstract

Mix-in that gives its subclass a full set of comparison operators. More...

#include <comparable.h>

Inheritance diagram for mysqlpp::Comparable< T >:

Public Member Functions

bool operator== (const T &other) const
 Returns true if "other" is equal to this object.
 
bool operator!= (const T &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const T &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const T &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator> (const T &other) const
 Returns true if "other" is greater than this object.
 
bool operator>= (const T &other) const
 Returns true if "other" is greater than or equal to this object.
 

Protected Member Functions

virtual ~Comparable ()
 Destroy object. More...
 
virtual int compare (const T &other) const =0
 Compare this object to another of the same type. More...
 

Detailed Description

template<class T>
class mysqlpp::Comparable< T >

Mix-in that gives its subclass a full set of comparison operators.

Simply by inheriting publically from this and implementing compare(), the subclass gains a full set of comparison operators, because all of the operators are implemented in terms of compare().

Constructor & Destructor Documentation

template<class T>
virtual mysqlpp::Comparable< T >::~Comparable ( )
inlineprotectedvirtual

Destroy object.

This class has nothing to destroy, but declaring the dtor virtual placates some compilers set to high warning levels. Protecting it ensures you can't delete subclasses through base class pointers, which makes no sense because this class isn't made for polymorphism. It's just a mixin.

Member Function Documentation

template<class T>
virtual int mysqlpp::Comparable< T >::compare ( const T &  other) const
protectedpure virtual

Compare this object to another of the same type.

Returns < 0 if this object is "before" the other, 0 of they are equal, and > 0 if this object is "after" the other.

Implemented in mysqlpp::Time, mysqlpp::Date, and mysqlpp::DateTime.

Referenced by mysqlpp::Comparable< Date >::operator!=(), mysqlpp::Comparable< Date >::operator<(), mysqlpp::Comparable< Date >::operator<=(), mysqlpp::Comparable< Date >::operator==(), mysqlpp::Comparable< Date >::operator>(), and mysqlpp::Comparable< Date >::operator>=().


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized-members.html0000755000372000001440000001072212502417163031671 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ObjectNotInitialized Member List

This is the complete list of members for mysqlpp::ObjectNotInitialized, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
ObjectNotInitialized(const char *w="")mysqlpp::ObjectNotInitializedinlineexplicit
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_37.png0000644000372000001440000000362512502417165024027 0ustar robertousers‰PNG  IHDR˜%1ô·ÝbKGDÿÿÿ ½§“JIDATxœíšoLR]Ç*„ ©di&¨ §#×\ÅVéÚ°?[o,q¢µ¥•½Ñ¶$›æ¨-\½jÕ´ÔUj¦¥5·œ™³àÚÈhµ¦ŽÔ \˜Öå2ó¼¸ÏÃx.`XúT<÷óêwçœßùó½çß„üùýê,„!d€@ ¬Â=?xð ¾¾þ—4…ÀJJJ:äî!áN­B¡P­Vóùüÿ¶aK¨££Ã݉Ÿ‘ÏL¿B¡ÐÓIì‘!d€@ B¿££££$i¹¢¡(*‹Ùl6•JMNN>wîœÕju¥Z,©Tºyóf:¾uëÖ‹/:,‰D"ŽŽâ¢‘Ü`2™B¡Ðd2ùªBXXXH§ÓqöJð; ¹¼”––jµÚÎÎΉ‰‰ÆÆF¥R)‘H°$³Ùœ‘‘188¨P(´Z­L&kiiÉÎÎ^XXX$ J¥2ƒ¡··wrr²´´ÔWNƒÁÐÚÚúîÝ;œ½"À“››››› )###ž ûa †F£q= ÄÇÇc¶X,Þ¹s§Ãáp¥¢(šPWW!ŒŒŒà¢áœÏž=‹ˆˆðUµ{G–±S^5úÁI"‘šššRRR¢££ Ess3›ÍŽˆˆ¨ªª”••c9Q¥Ñh¯^½|puç»e½²R§ÖÜÜ܇vttìØ±[0çææœNçýû÷gffŠ‹‹8033ûúõkW©·oßz†Â^UÀðððúõëqz!‰DoÞ¼ÁI$Òž={\Œ‚‚‚óçϻΨùùùmmm …"??ߟ>Òh´ãÇüøñóçϘ‹üéÓ§ï–ŠŠr½³³³ó»&ÃRY)!±Ó \.?|ø0æ!‘HÙÙÙ‚Øl6 …B£ÑŠŠŠ$‰R©œššzüø±L&ó uêÔ©ÑÑÑ—/_VVVúr~ûö Û°Ým:~äÈ‘¼¼¼îîn½^¯R©Äb±K§êêê©©)@ÐÓÓ3<<ÌápD"‘Õj=vì–Ád2M¹sNLLÔÖÖnذ!::šÁ`îܹƒ È•+W¾;>999gΜ×ét{÷î½víÚŽô?ø³þzÜV_öÉ“'©T*‚ ®Ríí퉉‰ÁÁÁ\.W©TBm6›\.g³Ùt:Ïçß½{xì‘ 7nŒŠŠ*--››óꄾ7$‡ÃQSSÃãñ¨TjBBBEE–EÑòòò´´´ÐÐÐÄÄijgÏfffæååy]qΠ  çºÛ\¸pÁ`$&&*•Jð½=A£G2™ÌÈÈÈ'NX,ÿï'ËyØñ‡ÊÊJ‘H´¤"¸ÎxíÛòÞ2=™ŸŸW«Õ+ÿçñª‘—ß#«Õj0šššÚÚÚV"þŠŒÝùþ,VdÌÈÈ(**ÊÊÊú™8ááá%%%þ8 ¼üÕ@üCàwÆ«FÿÑü!d€@ B^®z½þÆÿ}SüD¯×s8¼w¯<}úô¯hÁÒ(//Ç ‡¿~ü¡{d€@ B„Â_º»(´AjäIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SimpleResult.html0000755000372000001440000001726712502417164026630 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SimpleResult Class Reference

Holds information about the result of queries that don't return rows. More...

#include <result.h>

Public Member Functions

 SimpleResult ()
 Default ctor.
 
 SimpleResult (bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)
 Initialize object.
 
 operator private_bool_type () const
 Test whether the query that created this result succeeded. More...
 
ulonglong insert_id () const
 Get the last value used for an AUTO_INCREMENT field.
 
ulonglong rows () const
 Get the number of rows affected by the query.
 
const char * info () const
 Get any additional information about the query returned by the server.
 

Detailed Description

Holds information about the result of queries that don't return rows.

Member Function Documentation

mysqlpp::SimpleResult::operator private_bool_type ( ) const
inline

Test whether the query that created this result succeeded.

If you test this object in bool context and it's false, it's a signal that the query this was created from failed in some way. Call Query::error() or Query::errnum() to find out what exactly happened.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Row__inherit__graph.png0000644000372000001440000001011712502417165027751 0ustar robertousers‰PNG  IHDRËp?”ÒbKGDÿÿÿ ½§“IDATxœíÝyT×ðQÖ„@J+B¡¸ÖàÁ9ËimYP¥.U<k+éâ©¢Ö—¶§JE­ Õ# ¨èÃ5¢bÁ'[p+(RYbÅ&…„lóþ˜wòb–*Cï÷ùëæfrçÎÌ7so.H†!ceî€aˆ Ä‚„bQô„P}}=~ zª4)!!aË–-FW#“ÉvîÜÉápú߃Á “ÉøÃGyxxàeƒ“.—Ëcbb¸\nUUÕþýû{é˜±æææôôô°°°uëÖá5îîîMMMx¹¦¦fÛ¶mx¿ëî|ååå‹ñ%ûGGô_}ÞåŒ!½7¢É²Z­¦Óé ãçŸÆŸ’Ëå¶¶¶gÏžmooÏÌÌ´µµ•ËåÛ·o§ÓéçÎ………&ça¡¡¡ ·nÝòññÙ¸q£ÉJ¬‡y†a¾¾¾³gÏ.,,¬¯¯ÏËËó÷÷V(½´ÏôG™øøø¹sç666ÖÕÕùûûã;5>v‘HD"‘ e2Ù_|ªªª2%oÞ¼)x†a&,,ìÛo¿ …nnn.\À0,55500°®®®®®.88øã?ÆY³fMTTTSSSmm-›Íþä“Oˆ8“—¬÷` ä<¬÷„a–””4bıX¬ßøØ±c©Tê¸qãΟ?a˜R©Ü²e˘1cFŽ9}úô“'O',++ëõ×_wqqINN–Ëå&+ ΠÁ§t©Tºnݺ€€æïï¿uëÖ®®®žÚW©T3fÌ9r¤A;B¡pÑ¢EÎÎÎL&ó³Ï>ÃwjòØ¿ÿþ{''§×^{mÿþýqqqt:½?ó°}ûöM˜0A©Tb–ŸŸÏd2…B¡B¡HIIqww=zt\\œH$‹ÅK–,qtttvv^±b…L&#èXŒ/Yï,aý±~ýúøøøôƒd˜\ÎÀ5žÁ_."Î9“ùø5}…BÑÖÖväÈ‘S§N xãÀâ üL¿¢¢bêÔ©K—. y•vFµråÊþT`ûj(‹‰oQc=LèÉü ¹ïV€aˆ Ä‚„b™X­ÈÌÌü~€a ²²ÒD­þâØ7L~óà('޹{1¤yzz¬¸’`m¢ÿÖ¯Ï;zôz~~2›íeî¾X ˜‡õ—Z­ÍÏ¿ÊÏ75€@Âú«´ôX,GåæV©Tš>·8HXååUá“Ô®®î«W˜»;Ö/]]Êý«V­Ö „ÈdRn. ”ý ë—’’»º‘Q­Ö^¾\'“u›·K–Ö/gÏÞÖÿ•iµZSTdâ;ßÀ$¬o]<ÞFY‡”›{Ûl²(°¾ò j´Zmié"‘Ì,ý±,°¾9s[«5±.}ñb­q%0 ëÃÓ§Æ?ùÀ0ììÙ›¥K–Ö‡‚‚2ÙÄYÒj±Û·ÿ:¿K–Ö‡ÜÜJ|̆¡‚(û0Ìÿ~Ø«³²BLæh¼¬Vk ÕÈ‘6ºgaU¬OðÝŠàÂ…š¤¤cmm?˜»#–FI@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@,H $  ˆ Ä‚„bA± a€X0@0l(ár¹æ>½±²¢ÙØx𻽡R©7nÜ0÷e|ÁÐú;®MMMãÇŽŽ6wG,ÕæÍ›[[[ÍÝ‹ ­„!„ètzHHˆ¹{a©6oÞlî.‚y $  ˆ Är3}³kmmýðÃy<Þ€´ª+S©TŸµk×z{{HãF¸ôôt&“‰êêêÊÎÎÞ¼yóñãÇIúÿrwXƒQ’pNNNNNN,+))©¥¥¥³³ÓÜ<™°ÐÐÐÂÂÂÄÄÄ÷Þ{ïäÉ“EEEqqq ,8räBhß¾}»ví·”Ëå§¡¡!tóæÍeË–…‡‡ÇÇÇ!„0 ËÏÏOLLŒˆˆX½zuuuµþ ÖÚÚZVV¶hÑ¢… îÛ·O¥R™¬Ôm¬ÿB“='“É ÅÎÎ(•JÓÒÒÞ}÷Ýèè茌 ¥R¹zõê3gÎ „$Éœ9s222BZ­622²¼¼œ˜ÓI,K%+++322®^½º{÷îÇ_¹rå»ï¾‹ŠŠš={ö† 4 ™L.++c2™ÞÞÞ …bÓ¦MÉÉÉÁÁÁ»víš5kVIIÉñãÇ?ÿüóñãÇ?|øpÇŽÆ;:wîÜŽ;$ɶmÛFf\™˜˜èàà’’‚¿D¿ŒR(r¹!ÔÕÕuâĉyóæY[[ãOýøãB¡ðÀr¹|ëÖ­4ÍfWUUEGG×ÕÕ1¢ºº!ôðáC¥R9iÒ$¢Ï*,ò†Š¥Ñhááá¡øøxÆápB‰$ €B¡ðù|„PIIIxx8‰DR©T†Éår*•Êáp lllrss“’’fΜéììÌf³—/_n¼£U«V±X,??¿åË—÷Tigg·`ÁüYý2BhùòåQQQEEE±±±x½Z­¾råJrr2“ÉôòòZ²dIqqqPPPmm­Z­®©©Y¸páãÇ¥Riuuõ¤I“lll²Ô„Ñh4„…B1(#„¬¬¬fΜyíÚµÎÎÎÊÊJü®cooÿÃ?Ü»w/::zíÚµ|>ŸD" ýu^^^Æ;b±XxÁÓÓ³½½½—Êždggóx<wùòåÈÈHÝ.‰´Z­»»;þÐÃã½½ÝÇÇÇÖÖö?þàóùÁÁÁÞÞÞ|>¿ººzúôé/q–†KMXïBBB®_¿~õêÕ·ÞzËÕÕ!ÔÝÝ­Õj7mÚTPP±~ýz‰DâââòèÑ#Ý«šššŒ›jiiÁ ÍÍÍÎÎνTöÉÆÆ†Ãá455a†rtt´²²ø³mmm...$)((èÆÍÍÍ>>>“'O¾}û6ŸÏ z‰ó0 Ï„j4šcÇŽáÃ(BˆD"q¹Ük×®Éd2•JE¡PlllæÏŸŸ‘‘QVV& oݺ•™™iÜTzzzkk냲²²æÍ›×S¥L&»téþ¬~Ù€]WW>-£P(¡¡¡{÷î?>|ø0~»e³ÙçÏŸ?~<…B™ MySQL++ Reference Manual
mysqlpp::Null< Type, Behavior > Member List

This is the complete list of members for mysqlpp::Null< Type, Behavior >, including all inherited members.

datamysqlpp::Null< Type, Behavior >
is_nullmysqlpp::Null< Type, Behavior >
Null()mysqlpp::Null< Type, Behavior >inline
Null(const Type &x)mysqlpp::Null< Type, Behavior >inline
Null(const null_type &)mysqlpp::Null< Type, Behavior >inline
operator Type() const mysqlpp::Null< Type, Behavior >inline
operator!=(const Null< Type > &rhs) const mysqlpp::Null< Type, Behavior >inline
operator!=(const null_type &rhs) const mysqlpp::Null< Type, Behavior >inline
operator<(const Null< Type > &rhs) const mysqlpp::Null< Type, Behavior >inline
operator<(const null_type &) const mysqlpp::Null< Type, Behavior >inline
operator=(const Type &x)mysqlpp::Null< Type, Behavior >inline
operator=(const null_type &)mysqlpp::Null< Type, Behavior >inline
operator==(const Null< Type > &rhs) const mysqlpp::Null< Type, Behavior >inline
operator==(const null_type &) const mysqlpp::Null< Type, Behavior >inline
value_type typedefmysqlpp::Null< Type, Behavior >
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadIndex.html0000755000372000001440000003246512502417163025652 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadIndex Class Reference

Exception thrown when an object with operator [] or an at() method gets called with a bad index. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadIndex:
Collaboration diagram for mysqlpp::BadIndex:

Public Member Functions

 BadIndex (const char *what, int bad_index, int max_index)
 Create exception object. More...
 
 ~BadIndex () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when an object with operator [] or an at() method gets called with a bad index.

Constructor & Destructor Documentation

mysqlpp::BadIndex::BadIndex ( const char *  what,
int  bad_index,
int  max_index 
)
inlineexplicit

Create exception object.

Parameters
whattype of object bad index tried on
bad_indexindex value the container didn't like
max_indexlargest legal index value for container

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLStream-members.html0000755000372000001440000000702012502417164027425 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLStream Member List

This is the complete list of members for mysqlpp::SQLStream, including all inherited members.

conn_mysqlpp::SQLStream
escape_string(std::string *ps, const char *original=0, size_t length=0) const mysqlpp::SQLStream
escape_string(char *escaped, const char *original, size_t length) const mysqlpp::SQLStream
operator=(const SQLStream &rhs)mysqlpp::SQLStream
SQLStream(Connection *c, const char *pstr=0)mysqlpp::SQLStream
SQLStream(const SQLStream &s)mysqlpp::SQLStream
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadQuery__coll__graph.png0000644000372000001440000002044012502417165030205 0ustar robertousers‰PNG  IHDRÁ͎⃰bKGDÿÿÿ ½§“ IDATxœíy\GÿÇ¿›‚0@Dñè¶žEyJŸ¢âVT¬ñŠ7Z©ZûTT,à}¡‚"Z­ xü´xcDi¹¹!A$äÚßÛW! °%0ï¿fggg?;óÙÙkÃqШ€Ðx‡dAByA†ò‚H$ÊÌÌ”ËåT©Ñ\tuuû÷ïO>Ÿòòò¢¢"òù´+4­ÿþ:::Äâ{ª®®®¬¬411¡B˜S___XX¨•••ÕÕÕϪý(//733Sí!‡Ž•¤ñ”••½~ýZ]¹tò*¸}û¶ò"ê!È‚<„ ò‚,ÈC²´»‡²²²0 kï½´ŠN(©ý考U‡rrrØl¶Z²j'”²X¬~øZ=j§©*考U‡äryee¥Z²j'”²Ùì;vP«Gí4Up°mñPBB‚£££ŽŽŽÍ‰'`äȑлwoÉdaaa èÙ³ç_|ñðáCb+勪rX"‘š™™™ššJ$’Ë—/[XXðù|8sæÌ€jkk¥RéæÍ›ûôécbb2oÞ¼ªªª¦6'28p ©©©¿¿}}½²Bå½WUU}ûí·l6ÛÒÒ2 @$†a§N²··ïÕ«×®]»ÚV²íJóU@àÍ›7ûôésôèQÅÁ6>.Ç#"" d``ðå—_^¹r¥- ®Diiirr2Þ,@[[;""¢¸¸8::šÁ`‚ÌÌLEV?ÿü³©©i\\\QQÑÕ«WÍÍ͉UUUU‘‘‘DåðÎ;§NúæÍ.—;bĈàà`ÇçÍ›7þü’’33³‡â8æààÀår_¾|éääÐÔæ„—ŒŒŒ””[[Ûe…Êá9sæ8;;gggs¹ÜÁƒ‡„„TM›6ÏçGFF@eeeóeÒ’rk!iiiiiiͧù`áÉ“'ߺu+55Ußø¸"##-,,®_¿^^^ž˜˜hkkÛÀ*INN.--U,¶ÚC<ÉdîÞ½›ÏçËåòšš™L¦| 8zô¨"ý±cÇš—eggW\\L„‡ †ã8ŸÏ·´´ttt$*ÇñÆÅÅáׯ_+Â7'Äp¹\"2&&ÆÖÖV¥‡Äb1NWÔY\\œ­­-Žã@”ƒX,€ÌÌÌæË¤ƒ=ôÁ*P.åøÆÇ5xðàS§N)r>}út<Ôê¶ÌÈÈ(999%%ÅÒÒrܸq÷îÝ£ÑÞˤ  `ذaŠEGGÇæ3ÌËËãp8†a6iÒ¤ÜÜ\`±X¾¾¾¯^½Zºt)‘,??_ñBÊÞÞÞÓÓ³™Í@‘ØÎÎîíÛ·*w]ZZ*“ÉúõëG,ÚÚÚ*R—O&“Ù’2é`>Xvvv#WvvöàÁƒk Ô=­öP(”ËåçÏŸçñx .ôððàñxÊ ¬­­_¼x¡X|õêUó²ÙlʼnÎçóSRR    <<|âĉkÖ¬!’™››çååáÔÔÔÐÐÐf6âü€ŒŒ ¢àcffF§ÓsrrˆÅììl "¬²V: ¬•'@ƒã²²²R® ôôô6èiuIaæââ[]]-‹™L¦®®.±J Àwß}_RRrýúõM›6kß½{Õ8ŽãR©4,,ÌÖÖVOOoÔ¨QÄ…¡Aì®®®^°`‘‘‘±±±¯¯ommí¾}û†*‹q¿xñ"‡Ãáñx"‘( ÀÜÜÜÐÐpÖ¬Y|>¿©Í‰Ì£¢¢¬¬¬ØlöòåË…B¡²Bå½óx.™L¶wïÞ~ýúºººÆÇÇ›˜˜|pïdûÔåRë:ÞCê"!!!55U±xáÂ➦yÈö©] .—;wîÜgÏžÕÕÕ¥¤¤lܸqÑ¢E­ÍDÅ7hšŽÁ’%K¨V¡ÕÕÕ}óÍ7ååå666>>>m(º.è!SSÓˆˆªUh cÛ¶mÛ¶m#“ jËdAByAä!YTô©;ÿ?r Äb™X,Ó××¢VFkŸ7H$jsÔWÉ´Yt5Ši ïyH[[ðŒŒŒÑf2/]Ê\½ú3Š¿¢Tü°G>ŸòòòšššVo‰Cå5Þ--뵦qûþ©Œa˜¶¶ö¿‹¸&?téÒ³eËNÐé´;½fÏIµÊŠäÉró’ßatlÁÿ ¥kuhE³ûCŽŽ€L&ˆÙ²%^.×àó¡ÍÔUH.ûü·XVÚl ÐtõíËÖÕýç¢ywæÌƒÕÕBj%u0å¯jc§§ó³E¸ §103GýŽ× ÙÂ0lȾ ’Ëå))Ù“&íÉÍ-§VU‡‘uwÙ'C,É¥8l{ÝŽ—¡Ù€#¬™ÌîD¤Ryqq•«ëÞ””ljUµ;8<=Tœ¼!—‚\öO .—áÈCmÁÑñ#™ìßÛ©TVWW?}úÁóçS¨ª]‘ÖË“Öæ>*pø· ˆÑ±^ý{t¼ž.à!Ë]i™L.“ÉV®<z¥ëõ²…<éÕÅyÉUx£ûw–•6]‹‚ÿw5ÞCÖÖÿv«ßÖ|þü ÕÒÚ…çÑ%r)þ©Ÿ¹™£žçi»/‚-™ztÎǼå Ðì÷öÍàåµ_ ¨¿zuÖ¥†<«ÊÅÎL¹ÊÒafgF¼+\‡T²mÛÔׯ‹ºÞÓê» ŒltMïD£ÎuY ØÛÛûóÐЄ®ô&?ïVUáãšÏøëL×.ë! tÅqس窅¨ žDYgõFY×G%]¶?DpútJpðù?þ°·Wý,[³x—_Oׯô{Süýxº¸‡ärÜÃã==ísç–Q­¥ËÒ•Û2 Ñ°Ÿ~šöàAÖ•+/>œÑ&º¸‡`èм¼> ¹TW×u^àw*º¾‡`ýz ><ü&ÕBº&ÝÂCl¶þš5ÿ9pàV÷ùÔº#éâ}jR©ü?ÿÙýÑGÆG.¤ZK+ d4:ÆèÑ©OõN-N0´-[zô¨•••••USéëëëÅb±–––P(ܼy3(ÆYSË(€ÝÔC°rå¤=˜;wþNµV3iÒ$‘H4nÜ8øüóÏÅb±rCÖ‹µgÏž9sæØÙÙY[[Ïš5ËÕÕÕÚÚzôèÑŽ>«ê.ï:Trñâ³åËO&$¬>¼ÕZ4˜ní!˜:5\,–]¾ìß}f¼W;Ý·-# úâÅ› žP-„J°&háæÝÝCvvoïÏ·mK¨®Q(£ìemMeŸÈ5uÃÕÂÍ»»‡ (h²\Žÿò e¿ÈÄxòƼG¿R%€$ÈC`h¨ûÃnQQwÓÓ‹)ðâXI]…dä*M¢y`öì‘C†XnÞ|©ãw]S$~q¤tØ·½õÌ:×?-y€Fönõ¼?ó÷ß¹¼ëGÿ+ÔëÍ:¿]>ê‡þáã­§MûdÓ¦‹ùûGÑ“šœ$¾ÓJKSƒŸ, ýˆ èàÁ¿Q.Åì,è3ÚÐj¬aÇì±@ú“ž«Výgÿþ[oÞ¨ç¿æVJhLÌIc»Ò ºûsê¿XY±ö¡Z‹Æ€®CïÁ`жlùæúõ—·n¥S­Ec@×!,Zt$=½899¨ñÅˆÆ ë ¶nõ,-}}j!šò ÌÍYK—~¹w便ý÷Îòjüüœ{õÒï«ä!Õhk3BBþûT½S¡¥)+IíŒ_ß’y¨I\]‡L˜`·iÓEåùÑÈPù·0åçÂê‚zµäÖy@jŽôÌÈ(=u*E yápg‰ƒî€¯ŒÕ[gy¨9úö5Y´hìŽWy¼Z’Ye]畽|ñÃG§üÑt‡>ÀÊ•.ÚṴ́°kd2 d÷ð0¦d¾ÕöyèèëkoØðÕ‰RSÛ>ûÇóè©Xþ©ŸÆ¿S òЇ™2åãÏ>³Ù´éRÛžéWå‰ÒN—XÌéÑ«k>õFú0†mÝêùüy~\ÜÓ6lÎС ü¯±ÃôÎ2E‹ÚAïËZJpðùk×^Þ»·ÎÀ@‡j- tj)ÁÁî2™ü×_©Òé@j),–nP[d䬬2ªµt.P[Ö 4t€âvG-#дkkkª½-0™¦ FW{ÐܘÀÀÀ–W%ew›yyy«V­5jUMñóÏ?çååµ<=•O,FŽéååE¡„JΟ?ߪô¨O ò‚,ÈC² !ÈÒ}=”••¥ÆñóÈŒ#FõEÛèšo’)áÁƒ}ûöí€åää|öÙgÀb±~øá‡Øi3 © õL¡ò!”§üa³ÙÄ.Ò©Û2 Ã>looobb²cÇŽ'NôíÛ×ÐÐpãÆàïï¿pá?ï®®îóçÏ !!ÁÑÑQGGÇÆÆæÄ‰ —ËÃÃÃííí{öì9jÔ¨äädåë?ÑÄÇÇ8ÐÔÔÔßß¿¾¾^e$¼ßv´¤¹|ù²……ŸÏ€3gÎ 0 ¶¶V*•nÞ¼¹OŸ>&&&óæÍ«ªª"K$’ÀÀ@333SSÓÀÀ@‰D¢R†ò”?ʪªª¾ýö[6›mii ‰ˆ2Äq<,,ÌÁÁËå¾|ùÒÉÉ) €H¹sçΩS§¾yó†ËåŽ1"88¸mÄ&Êá9sæ8;;gggs¹ÜÁƒ‚`Ú´i|>?22*++?X5^^^^^^­¨Ê–'U/-ôгgÏp‹Å ™™™R©´wïÞ7oÞÄqÜÍÍmÇŽ8Žóx<&“¹{÷n>Ÿ/—Ëkjjd2™ƒƒÃÑ£GÙ;v¬±‡¸\.±6&&ÆÖÖVedóR›:?ù|¾¥¥¥££#Q©8Ž80..Ž¿~ýZ¶³³+..&‰‰‰Ã† kF£‹Åb:ž––FÄÇÅÅ‚ 99Y¹Üš/s¼õêÔmôìÙ˜Lfƒ0Ðéô)S¦ÄÅÅUTT$%%Í™3ŒŒŒ’““SRR,--ÇwïÞ=–““3lØ0EžŽŽŽwÔ¿"`gg÷öíÛf"›¢qõñ,Ë××÷Õ«WK—.%bòóó9ÛÛÛ{zzá¼¼<‡CÜÓMš4)77·å2JKKe2Y¿~ýˆE[[[EJb!E¹©Îî¡æñòòºxñâ¹sçFM´PB¡P.—Ÿ?žÇã-\¸ÐÃÃÇãYXX¼xñB±Õ«W¯gEœÐ‘‘AzS‘­¥   <<|âĉkÖ¬!bÌÍÍ/5SSSCCC‰0›ÍV‘Ï秤¤´\†™™NÏÉÉ!³³³-,þù@1 U;¡Ù3fŒT*ݺu«··7ƒa˜‹‹KllluuµX,f2™ººº>>>ñññ%%%ׯ_nœÕŠ+²²²?~¼nݺ¹sç6ùîÝ;¢sÖ ååå%ïr¹ÜÇÇgùòågΜIJJJHHooïõë×§¥¥¥¥¥ùùùåçç9L™2eíÚµùùù\.×ÕÕuÿþýÍhk0å“Éœ1c†¿¿nnnZZÚ† ˆ sGÐòfO½@ËúC ¦âjþî»ïzôèQ]]­Ø*&&¦_¿~ZZZvvvñññ8Ž‹Åâ­[·öíÛW__Ô¨Q§OŸ†Fý¡¨¨(+++6›½|ùr¡P¨2¿«nªl÷íÛ7tèP±XŒãøÅ‹9ljDæææ†††³fÍâóùD&ÕÕÕ ,022266öõõ­­­U)C"‘Œ=Z__¿çíímllÌápV­ZEnªÜš¡Kõ©[ºuëfϞݪMLÿ¦r685NGJd´ÖCüŒQ$>|øÌ™3TkéÖhpèáÇŸ|ò‰ÏøñãÉäc``°dÉ’–Dv†a111Ó§O§dïˆf *åܹs-L¯Á×!D'yAä!Y‡d¡²O=dÈ33 žsIŽc"Q=ꨢ^¾|9vìØ–÷©){>´zõê‚‚ªö®^ŠŠôss ?ý´DKKFµ50vìØVÝ/£ÿíÕ€³sXzzц Ë–}Iµ @ý!²äåU¤§À… m᪠€–JeçÎ=î†ýKä!R\ºôŒÉ¤+ ù©©]äf³å µ™L~þü‰äßûyƒ~éÒ3 %QòPÛyô(·²ò½R¥RYlìcuÍ£) µ W÷çŸY”è¡ ä¡6"‘Èââž)7d -.®{Ý!µ‘Û·ÿª­U1™T*¿|ù¹X,íxIT<ÔF.^|Ê`¨.=¡°¾[MmŽ<ÔF’’Ò¥RÕoXqº•‡Ð;×6’’’]^^C„Ÿ<É‹Œ¼sèÐ|ÅZGǬ¬ºþ0ÖüoµŒÙOÆqˆŒ¼ãá1¬™ô]Ô–!È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,ÈC² !È‚<„ ò‚,”ééïÞEO­©1(,´´³{Mµµ±dÉ’iÓ¦µ01•s4ÈÔÔ”’½#šáÕ«WãÇ×€9ÀËËküøñ @¨dË–-­JúC² !È‚<„ ò‚,Ýw®…¹sç&''«%· &(ÂúúúŸ|òÉŠ+X,Vk•ˆD¢cÇŽ=zô¨¨¨ÈÚÚzôèÑ3gΤÓδשè¾R;áááÇñŠŠŠ}ûöýú믛6mjUuuuK—.e±X¾¾¾¹¹¹ÑÑÑOŸ>ݽ{7Öy[ŒÎ«Lã`±X½zõ2668p ¯¯ï£GZ›ÃñãÇY,ÖÞ½{œœ,--ÇŒQ\\|õêÕö¬.:µ‡&L˜píÚµùóçóÍ7§OŸ¾qãÆ¬Y³ÜÝÝ> ûöíÛµk‘R(ºººfffÀƒ.\èââ2{öì7nŽã/^œ?¾››Û÷ßÿüùs妧°°p„ ÷ïß÷öööôôÜ·oŸD"Q©H¬¼¡Jåt:ÝÈȈÿù矋/vuu:uêéÓ§@.—Ÿ={ÖÛÛÛÍÍÍÏÏOñ¼>11qÞ¼yÊ—™3g&%%5µ_©Táééééé!•J‰µÏž=›1c†¯¯¯Ê"R/½-{úôéÁƒoß¾6~üøèèè[·níÙ³gÚ´iãÆÛ¸q£L&£Óé÷ïßçp8¶¶¶"‘($$dùòå_|ñÅÇwíÚ5vìØ¤¤¤ãǯ^½zРAYYYÛ·oo¼£K—.mß¾½¦¦&44ÔÀÀ`âĉ#çÏŸÏb±ˆM”à ‰„B!Žã•••QQQ“&M€ºººM›6Mš4iûöí©©©¡¡¡nnn‰‰‰111 =aaa x<ž­­maýû÷ŽŽnª|.\¸P\\|èÐ!@°cÇŽ#Gޏ¹¹À¹s炃ƒÅbñO?ýÔ ˆÈVI#:õuf̘¡««ëââ³gÏÖÕÕuuu€šššÁƒ3 .— III...†I$Ç…B¡–––««kBB‚¶¶vllìwß}7fÌccc''§E‹5ÞÑÒ¥K---ííí-Z”˜˜ØT¤žžž»»;±V9 ‹-rssswwŸ7o^FF†³³3hiiEGGûûû/vjkk/_¾¬¬Ç××W‘ †a „á8ÞLgèÚµk+V¬055µ±±Y²d‰¢õõõ>|ø§Ÿ~Ú¸ˆZW- ³_‡tuu€Á`4F3fÌÝ»wmllž>}ºfÍèÙ³çÞ½{/\¸päȑ̞=ÛÉÉ©¸¸Xùü³±±i¼#KKK"ЧOŸòòòf"›âäÉ“P__áÂ…Õ«WŸ={–Á`¼}ûv÷îÝB¡°ÿþDÊòòòÆzôõõ{õê•••5bÄål³²²úô飣ü㤤dêÔ©ŠE===…ঊHítöëPóŒ?þÞ½{·oß2dˆ‰‰ Ô××Ëåò„„77·uëÖÕÔÔ°ÙìììlÅVyyy³zûö-(((066n&òƒhkk»»»—••UUUÕ×ׇ„„Ìœ9ó·ß~[¹r%‘ wïÞ*õLœ8ñøñãr¹œXüñÇoÞ¼yúôiâ’2™ ***Ûž}*(€PIQQQëÞŠà¡x‰è„¬Y³¦åUIÙ½=¢Ë€úC² !È‚<„ ò‚,ÿÔbª–GáŒýIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions.html0000755000372000001440000001557112502417164023070 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption__inherit__graph.png0000644000372000001440000001460112502417165033101 0ustar robertousers‰PNG  IHDRÓ»pÂ<¹bKGDÿÿÿ ½§“6IDATxœíÝ{XWúð@n%rÅ`¥ ê£}V¬ˆ"¶kë P"ê*ŠlW|¬€•Ç RÖªë®kKK¸(¨ †«H½"RQE)>²ÜÔ DEB Äd~ÌþbLÂ%=$û~žþ1s2sΛ“og&à ‚ œîÀÿ(HÀ’ð€ä•JEMœ8qÑ¢E...IIIªÛËd²ÖÖVr™Á`úè# ‹7oÞ¨mDïž—SRRöîÝKÆŽdbb–’’¢¶«Y³f!„¬¬¬”úáóùëׯg0¶¶¶¡¡¡"‘ˆœ‡ÔÔT''§Q£F>|ø½ÎùûB !‡Óç6«W¯nooOLLDùúú¶··ÇÅÅ!„^¿~}óæMssóîîn‚ RRRœe2™@ 044d³Ù\.÷øñã4M ÄÅÅYXXdee577_¼xÑÖÖ!T[[KN¹àååUSSSRRÂd2###Õ6ÁçóÈòäËmmm¡––¥ú‹ŠŠ,--{éŸÜLq™ÅbyzzÖ××WVVº¸¸ƒ"„V®\ÙÖÖ–€jmmísz}|||||úýi¼wÚ—¼òòr‚ Äb±Òrmm­D"±²²ÊÏÏ'â³Ï>;xð A<O__ÿÈ‘#mmm2™¬££C*•:;;'''Ë»=yò¤jò*++ÉW9“ÉTÛØS=%¯¸¸˜Á`ôÒ?Ù"_‹ÅT*µªªŠlÏÊÊ"E(¾÷>&wè%OËζ!333„¾¾¾Ò2BˆJ¥._¾<++ëõë×ׯ_g±X¡‘#G”””ØÚÚ~úé§·nÝÒÓÓkhh˜:uª¼OWWWÕÉ…I“&566öÒ¨ŠN§[YYUTT(µWTTLŸ>½ÿ]½|ùR*•N˜0\e2™ò-ÇŒ£øÞµŽö%¯w>>>ÙÙÙiiisæÌ!Ï¡B¡P&“¥§§óx¼7.Y²„ÇãÙØØ<|øP¾×£GT»"<¡ššòcî©Q-‹¥øM¶³³óСCÞÞÞýïÊÒÒ’J¥644«õõõ666䲞žvvÚ]½*www‰D@¶P(//¯ÌÌÌööv±X¬¯¯oll¼aư°°œœœ/^\¹rå›o¾QíjÛ¶muuu¥¥¥kÖ¬é©ñ÷ß'/:•–÷îÝûêÕ+OOÏ+W®ÔÖÖfgg»¹¹ÙØØ÷Ò¿@ P¬A__ßÏÏ/$$äÉ“'UUU»wï&äº÷éþ-Ô¿ë<ù5MOË[¶l122joo—ïÅáp&L˜```0iÒ¤œœ‚ ÄbqTTÔøñãMMMgÏž}æÌ¤r—˜˜hooÏ`0¶nÝ* Õ6ï~P\&B ìØ±ÃÅÅÅØØØÙÙ9::º«««§þ»»»çÌ™cjjªÔÇ 077·¶¶Þ¾};9hOï½Cí:OË’×þþþí¢”¥Õ^f»ê¿¡–<º“,‰š››Oœ8qöìYܵ€>èÔuÞÝ»wg̘±aÆyóæý‘~†ÔŸÆAìÿÍÐzžÃá µGgu9±Cçix:æ-Éx@ò<€Çк«’ŸŸÏçóqW¡›pWñÖJÞØ±cãããqWÑ_4Ú(SÓOøü+¸ ÑÀ¼Ù4¸†Ð]í‘•œ|+;{«›Û:h¸Î‰D–}!”]†»mɈ›7«ÛÛ…¡ÌÌòînõ¿ÑzɈ¬¬rò,ººÞüòK5îr´$Oc]]âK—J$R„•JÉÌ„î@@ò4výú#ùV"‘]¹òkgç¼%i#HžÆ22î+þþ¿D"½vMÍÃô w<Íðù]ÕR©â­(Jfæ}li-Hžf._®Tj‘Éd7oþ§­­K=Ú ’§™ôôû2™š{ï?ÿüPµô’§/~¿{·Aõ§>Add”b)I{Aò4›[A¥ª™1™Œ¸ÿ— Ï:h’§ÌÌ2ò6ž*‚@¹¹pÂÕÀzVeèÓÓCÖÖ#Èe‰D&u›šÊ_…»zgUèÂ…Š-[N67Å]ˆ¶‚³-À’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ„Ðaaa¸gë-==cCC;ÜU¼e``pûömÜ‘´éßI~úôé¬Y³¾þúkÜ… E¾¾¾MMM¸«Ð€6%!4vìXÜU€A×yHÀ’ð€ä7£Óé%%%òÕ›7oÚÙÙQ[[;ˆï744ÔÝÝ]"‘È[Á¸qãÔn?¸£«Bq8œ÷×ÿ ÓÁcÞðáÃúé§ÖÖVruîܹϞ=CÍš5 !dee…þÿ|—ŸŸogg—œœ,?÷Q(”ÔÔT''§Q£F>|!D›Íþøã‡>þüŸþ™Ü8%%eïÞ½T*U>®‰‰IXXXJJ ÙyNNÎG}daaòæÍÕÑɽø|þúõë †­­mhh(ya Z†Â} ôó˜wõêUCCÃ… þãÿxúô)Ù®xÔ!—/^|ãÆŠŠ y;BhåÊ•mmm ¡ÖÖÖ„„›+W®´´´äåå1™L„P[[B¨¥¥Ei袢"KKK²s//¯ššš’’&“©::¹Ìb±<==ëëë+++]\\"##Õ–Ñç»FÚvÌÓÁä!‘HJJJ¢¢¢\\\¨Tjjj*¡.y•••Jí¡‚‚‚ Äb1B¨¶¶ÖÅÅ…ÜtæÌ™^’W\\Ì`0;'‚Ãá0™LµÉ‹ÅT*µªªŠlÏÊÊb2™jËèó-k]òtílÛÙÙyîÜ9„››Ûž={*++#""ÂÃÃÕn~ü˜\`±XQQQŠßd;;;:äííM®’6„PMM #U–––T*µ¡¡\­¯¯·±±Q[†îѵ·gjjºvíZ??¿‹/644ܹs'44tõêÕò F~õÕWááá×®]kmm½qãFdd$ùå`ïÞ½¯^½òôô¼råJmmmvv¶›››Mpp0¹ã¶mÛêêêJKK#""Ö¬Y£vt}}}??¿'OžTUUíÞ½›Åbý¡÷¯EpŸî5ÐÏë<‰Déêêjdd4nܸ;w …B‚ º»»çÌ™cjjJ¨»æ#—‘ÂE¹,•J=:a„#Fx{{çääŒ=šÜ@ ìØ±ÃÅÅÅØØØÙÙ9::º««KÞabb¢½½=ƒÁغu«P(ìit`nnnmm½}ûv²TÕ2ú|×HÛ®ót0yƒ+77·¢¢B¾š‘‘1uêÔÞwyß·îÔÒºäéÚÙvÐUVV®Y³¦¼¼¼«««¤¤dÏž=¸‹ÒZödè‡ÞÕÕµtéÒ––‡ 6õ¾ËðáÃûÜP‚À]Cùúú"„ÒÒÒp2Q(‡CN‘V€³-À’ð€ä< y-ûn[XX¸páBÜUü—L¦§§'Ã]…¶Ò¦ä ©ß´mm5ª©ùÉ'\*uHÜXµj•››î*4 MwU†+®  úØ1Ÿ™¸kÑJp7|~Waa B”ììrܵh+HÞ@\¸@>™GܺõŸ––ÌÕh'HÞ@dd”’W) åçŸâ.G+Aò4ÖÜÌ/+{&“ÉB2™,=½wEZ ’§±œœTªB„L†>|þü9wQÚ’§±ôôRŇài4½œœëÑR<ÍÔÔ¼¨®æ*Þ‰’H¤iipÂÕ$O3.TèëS[ÕÕ½¬®æâ*IKAò4@‡s¯»[ù_N10 Á WS< TV665µ©¶‹Å’ôôRøiF y8¾\__ýOº››ùåå¿}àz´$OÙÙåR©ÔÀ€¦úB”‹•ÿÉÐ mzV»-[.0gŽ#¦º´<«2@.TlÙr²¹ù(îB´œm<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx¼óo†ŠÅâsçΉD"\Õh‘ªªv„P||<îB´ƒ£££‡‡Ç;M„‚ÌÌLL…G£Ñˆw½sÌ“H$¡‚‚LåÝôË/¿ìß¿_©®ó<€$àÉx ¹¿ÄÒÔÔ´fÍšÁú–# “““ y<ÞèÑ£===Y,–A?womm­ªªúý÷ßíííY,–»»;ù’‡‡GJJŠÍ ÔÙ;Åû–––S¦L ¦Óé¨×é‰DÉÉÉ¥¥¥\.×ÎÎÎÝÝ}ÕªUT*UuK%ƒûôDÇyßÿ}mmmTT‡Ã /**b³Ù=mÌår¿üòKùj{{{`` ¡¡á¾}ûØlöüùó¿ýöÛÒÒñ§l•*AÅÄÄdff¦§§ïܹ³³³sóæÍ!djjºzõjÕººº‚‚‚ª««ƒ‚‚âããY,V^^^hh¨L&ësÄžú\:ž¼Û·ooÚ´ÉÑÑ‘N§»ºº†„„õ´±L&koo—¯&%%M›6-,,ÌÉÉÉÞÞÞ××wùòåç”­T BˆN§5ŠÁ`L›6íÛo¿µ¶¶NOOG1bóæÍª=œ:uŠN§ÿë_ÿúä“OlmmÝÝÝÙlö‹/._¾Üçˆ=õ9¸’<Ë—/¯[·néÒ¥gΜ¹víÚêÕ«?ÿüó'N „~øá‡Ã‡“[ …BooïÚÚZ„Ð;w6nÜèåååïïíÚ5„AÙÙÙëÖ­ûì³Ï¾úê«(žVššš<<<ŠŠŠ–-[öÃ?tww«m”o¬¸#¹lll|þüyùœºººÊ£#‘HØlö²eË–-[Æf³%É_ÿúW„ÐòåËÉ W¬X¡øÆ×­[._½ÿ>‹ÅZ²dIjj*ÙR\\¼iÓ&ooï+Vœ9sF^Lyy¹ŸŸß¯¿þª: ý©D …Bùâ‹/JJJ߬Ò@yyyk×®ÕÓ{ûù6lÕªUyyyjçPqDÅ üòË/}||bccÅb1€ëׯ¯[·î‹/¾8wî\_yQo€Ç¼²²²ØØØÍ›7'$$?~<88øôéÓíííŸ~úiQQ‘T*EY[[3™L‘H¹téÒsçÎ>|X$]¼xñÔ©S§OŸ^»víwß}§:Ðùóç¿ûî»ܽ{—ü,Õ6ÒéôÐÐPòUÅå°°°òòò•+W†……q8œ—/_Ê{ÎÈÈàr¹qqqÿüç?ËËË“’’~úé'„PVVBH ðx<;;;ÅbŒŒŒ,,,ä«wïÞMHHOLLlooïêêÚ»w¯££cJJJpppBBŸÏ'·LKKûæ›oÆŽ«: }V¢–­­mss³j;9µµ5Çc2™J¯2™Ìß~ûMíö4â±cÇZZZØlö¡C‡JKKÏž=K¶ß¾}ûÇ Š‹‹ëèèè©Î^ 0y~~~ÆÆÆ^^^!cccooo„PGG‡‹‹ F«¬¬D]¿~ÝËË‹B¡tww! ¼½½sss 333·lÙâîînnnîææ¨:Ppp°­­­““S```^^^O&&&Ÿþ9ùªâòŒ38αcÇ&Ož|õêUÿüü|ò¥Ë—/oÛ¶ÍÂÂÂÁÁ!((èÞ½{Šã’ˆB¡ô9 sæÌ!߸ÁñãÇCBBÌÍÍÉ€vvv’[nÞ¼yÚ´iT*Uuú¬D#ä@Æ Sû*…B‘_ç©X%‰äÆ[·nµ¶¶vppøË_þ"ßréÒ¥¦¦¦‹-B)]ôÓ¿Û#„h4šÒ2BHOOÏÝݽ°°ÐÁÁ¡¬¬lÇŽ!33³£Gfdd$%%Mœ8ÑßßßÍÍËå*þéàà :­­-¹`gg×ÒÒÒK£*‘HtçÎyóæ999999$''³ÙlOOO„Ћ/O¦&&&Šûš™™9òÙ³gÎÎÎòÆêêêÿûßÇŽ#cnnŽÒI£Ñ9" ßù‹£ä±Sí$ôY‰ZcÆŒQm'2555jT]]ÝôéÓ_­««›8q"¹ÜŸ9lkk“Édòlllä[2 ¤ð¡À{¹«2oÞ¼èèèqãÆMž|xàÀG544œ???©Túã?òù|ò'::Z©« ìØ±C$‘7É£½R#BˆÏç9r„¼¼S\?}útBBBSSÓÈ‘#=<<Ö¯_Oö¼qãÆ˜˜˜M›6Q(”¹sçÑh´É“'¯X±âÒ¥K!:»oß>¡Phgg÷÷¿ÿ]푆djjmddäïïïéé#ß@í$ô§„Ðßþö7rÁÂÂÂÕÕ5>>¾÷“²±±q|||RR›Ínnn¶¶¶öôôôññÑ××W;±T*UiDÒ¶mÛbbb¶lÙ¢¯¯?þ|r¶Å;Ó;--ÍÏÏoPn^'&&¾xñb÷îÝýßEéÖ¹Ú;éæöºnûðsH>%¥ô×ãÿl+‹¹\îåË—ÿüç?zç@g ~ò?~´xñâ©S§þ‘~LLL–,YÒŸF ‘!2‡ïël €Ü:ÛÐ<€$àÉx@òïü ƒ|TZùwÁøÃTŸÂ箊H$ºtéùhƒÈÒÒRþ£TEé. \ç< yHÀ’ðø?LDc\†6IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiResultsOption__inherit__graph.png0000644000372000001440000001356312502417165033057 0ustar robertousers‰PNG  IHDRÈ»¯ŒF¦bKGDÿÿÿ ½§“(IDATxœíÝ{Tgúð7 A@n!ÜÒvÕXájWÛê©(AJ×­7d)mAƒëªk…uõ´êòóXðtíî‘«® ZDQº¨Xñ²\E X=ÜT†›I \æ÷ÇtÓˆ–×Iìó9þñÎ;“yŸ™|™LB#0ÞèT^M,€ `ÁXXP5pKKˆ är9U¼ò¬¬¬8ðÆoP2:eÁª¨¨8wî\XXU¼òòòò"##uÁ"¬û||ÉÍÍ5ft„ЪU«Äbqff&BhåÊ•b±8-- !ÔÕÕuíÚ5'''…BADvv¶···Z­–J¥&LHMM …YYYR©4--Ãáäçç···Ÿ?žËå"„ÈÈFppp}}}EEÇÛ½{·ÞN‚ úúú222Èò4íÞÞ^„H$Ò©¿´´ÔÅÅe”õ“‹i·#""›šš9(BhÅŠ½½½¡îîncv]nn®qÏÆø3ƒ`UWW144¤ÓnhhP*•®®®?üðA¡¡¡‰‰‰Aôôô0™Ìo¾ù¦··W­VK$•Jåííýïÿ[³Ú#GŽŒ –@ ÐÔÆãñôvªÓP°ÊËËÙlö(ë'{4í¡¡!ƒQWWGöçç瓃"„JJJ´·Ý˜]Ga°LýTˆ²µµE1™L6BˆÁ`,[¶,??¿««ëòåË!‡’’’ŠŠ .—»`Á‚7nÐéôæææ™3gjÖ9}úô‘M:•lxzz¶¶¶ŽÒ9’½½½««kMMNMMͬY³Œ_Ugg§J¥š2e 9Éãñ4Kº»»ko»‰3ƒ`.,,ìÌ™3'Ožœ7oy‚“Édjµ://¯§§'::zñâÅ===wïÞÕ<êÞ½{#WE6Bõõõä³h¨S¯ˆˆˆ„„í×€ýýýIII!!!ƯÊÅÅ…Á`477““MMMd›N7«'‹ªC¥ñ§BÍa_o[©Tr8—Ç“³d2™••Õ©S§D"Qzzº•••L&Û»w/‡Ã9{ö¬P(,**Ò{ÐÐÐPYY9uêÔ;wêí$ \cñìÙ³iÓ¦-X° ¨¨¨¾¾>??ßÛÛûý÷ß—Ë壬_"‘ï±V¯^ØÜÜ\[[ëííMjh?Œ¾ëàË 1ƒEDllìk¯½&‹µW>eÊKKKOOÏ‚‚‚ †††&Mšdcc3wîÜãÇ Vffæ›o¾Éf³7nÜ(“ÉôvÃC Ý&B*•nݺÕÇLJÅby{{ïÙ³g``ÀÐú żyóllltÖÓÓÓéäääææ¶eËrP–±Œ –1vìØ±zõêçzˆN t&Gé|1ã¸*ãQ,ó¾A*—ËÛÛÛ:tâÄ ªkØÕõà7oÞœ={öçŸîïïÿKÖ3qâD>ŸoLç8®ÿÕF#(úÂêÉ“'ÃÃéý×€F£åææ®\¹’’ÑÍûˆL `ÁX@°ßnHOO§¶€ eÁòðð`0fô"œÅšŽP]ˆ± †æ}Æ—²Û æE¥RϘ± !$$Ðé¯Ô‡Ó1k,£”—7öôô÷ôHËÊ©®Å<@°Œ’—wË‚ÎdÒóòª¨®Å<@°Æ&—+Ο¿«Tª õùówårÕ™ÖØ®\¹¯ “\®¸rå>µõ˜ÖØNŸ¾¥ù F;}úµõ˜ÖÄbùåË?ªTjrR¥R_¾ü£X /n ¬1\¸P«V»#£V/ÖRU¹€`áÔ©[:wú‚8u Άc€`F$’”•5¨ÕjíNµš(+k‰$TUe X£9w®Fï}vvîÜÝ‘ý@‚5š“'oé\`‘Ôj5Ü)Ë ¶¶^à‰`¡»wŸ´·÷½üªÌ…yK«®.©»»½æ‹¼GjeõÓ7ÜétzW—ÄÝÝž²úL|ºÁX|þ„PZZÕ…˜8, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`,Lè/úMš4éÑ£GTWa…!¤TvQ]ˆA“&Mjnn¦ºŠŸ˜P°h4Ú–-[æÎKu!f©¼¼üÛo¿5gÓ´þ¸íœ9s¨®Â,™N¤Hp°€`, X ÀÂÌ‚EÓâàà°råJ‘Hô\khllÔü\ê/×ßß?cÆ [[ÛwÞygïÞ½J¥òå—a‚Ì,X¡²²2¡PØÞÞ^\\ÜÚÚºqãFª*‘H$³gÏ®ªªJJJº}ûööíÛsrr‚‚‚T*•Þå›››Ùl6Ù¶··ß¶mÛK,ö¥#LB(77wÌe4“ׯ_·³³{®QÆk«ãââüüü”J¥¦G*•þæ7¿ÉÈÈÀ=ôH¹¹¹&õlšßKƒÁàp8d»¯¯ïÓO?e³Ù\.7..N.—êÔP(ñññ...'>>^¡P „Î;÷öÛo³X,77·ÄÄDrI–““ãåååèè¸oß>²3;;{çÎ C³BkkëøøøììlòLWPP0mÚ4‡³iÓ¦ÁÁÁ9sæ „\]]ÑðS¡Þ"õŽhN¨NöÏqG¬šš‰D"‹>>»wïÖÛ©}ØHJJZ¾|yKK‹@ øíoû׿þU,[ZZ~þùç­­­ÙÙÙ¡§OŸ’ã®X±¢··7##!ÔÝÝÝÛÛ‹‰D:–––º¸¸£×××WTTðx<¡µÛz+9âè{ÆÔŽX¦TŠqÁÒ6qâDòÌ844Ä`0êêêÈÅòóóy<žÞNígÔÓÓS(’íâââ™3gÞ¿_*•ªTªk×®¡ÿyB%%%ä@d§¡`•——³Ùlr@@væææê ­ië-RïS –i½¥cŒ††‡øÇ?þñÁ<~ü¸³³S¥RM™2…\†Çãµ¶¶êíÔ^Õ£GÜÜÜ4“vvv–––õõõk×®•J¥o¿ý¶öÂîîî!&ó§ß+´··wuu­©©Y¸p¡öb555³fÍ"ÛS§N%žžž:CkŒR¤ÎˆæÅŒ¯±X,ÖÚµkŸ>¾ºº:%%E{a:]w_EDD$$$h¿ìïïOJJ !'ÉÃB¨¾¾žLÉH£9rD3b~¥‹D¢ŽŽŽŽŽŽ–––¤¤¤×_ÝÙÙ™Éd†‡‡oÚ´éáÇuuu_~ùeDD„ÞNíU-[¶lûöí?!!!²´´”Éd»víBI$­~çÎOŸ> ¼páBCCÙ3gÞ{ï=õëד lÞ¼¹±±±ªªjÇŽkÖ¬!;¥R©öJÆ,Ò\Q{&Ö†žó‹N§OŸ>½¢¢‚œÕÓÓéäääææ¶eË™L¦·SûBG,öÙgNNNëÖ­ëïï'bÿþýŽŽŽ¯¿þzJJʪU«81ü6‡v[*•nݺÕÇLJÅby{{ïÙ³g``€øß%Tffæ›o¾Éf³7nÜ(“É żyólllˆáïz+74¢!¦veJ¥,sõ–•^¦,ó;³ÁÂbâĉ|>Ÿê*¨Á‚Ãᤦ¦R]• X À‚°€`,Lë{…¾¾¾...T¢AÐB4š©ì.µµµ¦ólšÐ›Ð_|ñÅ“'O¨®Â "<={©.D?‡   ª«ø™ ±LY_߀¯ïW4­®îÿ&N|êrÌ\cåâÅ:‚@jµº¨¨–êZÌË(¹¹•ÄOïfVR]‹y€`­£ãÙÍ›ÍA¨ÕÄÍ›ÍϨ®È @°ÆVXXÃ`ü´£ ú¹sw©­Ç,@°Æ–—W¥ù˜¨R©ÎË«¢¶³ÁCs³¨®®Më¥3Q[Ûúðáó}ýúW‚5†‚‚;L&C»‡ÉdÜ¡ªsÁÃÉ“• Ű¯Ì+*xm8&ÖhîÝk{ü¸{dÿãÇÝ÷îµ½üzÌk4gÎTëœIL&ãÌ™ê—_`¤VyyU:çA’B¡ÊË«R«áÝ0ƒ XݹÓ"I˜L†¥¥…Î?&“!IjjZ¨®Ñt™Ð§L —ë°aC f²¼¼ !4wîM‡‡e™ øtƒ±øü#¡´´(ª 1p*X@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `1ì¯]¹r¥±±‘ÂjLY^^B(,̃êBLÔÔ©S~ž&´XXÀ_Ž/ÈÂÂB;KÃŽX4m×®]þþþÔ•ÌÒÕ«Wÿö·¿ig ®±,€ `ÁX˜V°ÚÚÚ†½dýeÖ¬Y£ó‡ì·mÛÐÖ¦ÿ'–ô Ý eÑ¢EúÓŸÆëÍón»\.OMMŽŽ ÍÉÉÑüZçøôbL+X㮣££©©I3)‘HîÞ5ê‡w…BáÇL¶mllV­Z¥™•œœ|úôéÓ§Ogeeq¹\WC¿œöІ ðùüðùüôôôˆˆˆââ⸸8µZ=æ:u6“Wúè£C‡!„¾ûî»}ûö‘KÊd²††„PYYYtttppðêÕ«/]º„"âÌ™3QQQ¡¡¡6l¸sçŽöñ™<\—––FFF.]ºô»ï¾S(z;Ñðc»ÎqÞßßÿêÕ«š#ʵk×,X0rÉ‘g‡?þñ¡eË–é«Á`0,,,¬­­ÉI¥R™ššºtéÒ¥K—¦¦¦*•J½ÛnüÐzŽ*..þä“OèôŸŸ>++«?üáÅÅÅz÷’¡Í‘J¥‰‰‰üqXXØÁƒ‡††È§øòåËQQQ¿ÿýï¿ÿþ{½>¦9bݾ}ûàÁƒëÖ­ËÈÈ(//ÏÊÊZ¿~ý±cÇÄbñ‚ JKKÉ“}ii©››Ç“Ëå»wï^²dÉ÷ß¹oß>¹\~þüù£GÆÄÄ;vì“O>ùúë¯GtöìÙ¯¿þzïÞ½7oÞ<~ü¸¡N{{û¸¸8r®v!äãã#“Éȳauuõûï¿oÌ6¦¤¤ „òóóGÎ’Ëå2™L&“uwwgee1™LrÖ©S§„BaZZÚßÿþ÷êêêÇëÝvã‡Öûp©TÚÓÓÃãñtÈãñZZZôî%C›óÏþS$¥¦¦&%%UUU8q‚ìÿïÿ{àÀ>ŸŸ––&‘HŒÙc:^$Xááá,+88!´zõj‹‚’H$>>>!tùòåàà`¦P(‚Éd–––!!!………&L8}útll¬ŸŸŸ““Ó{ï½3r õë×s¹\//¯˜˜˜ââbCÖÖÖ}ô9W»¢ÓéóçÏ'φååå¾¾¾'N|MÖºbÅŠK—.…‡‡kfmÞ¼™ÃáLž<™ÏçWVVêÝvãÇz®‡Óh4Í5–Þ]§C©T^¹reãÆnnn“'Oþì³Ï4K.Y²ÄÆÆfÑ¢E¡1ÏËz½H°X,Bˆ|cQ»¢Óé~~~ׯ_öìÙíÛ·.\ˆ²µµýöÛoüñǰ°°?ÿùÏ€F£ …Bíÿs“'O9—Ë%o¼ñ†H$¥sš³¡öyPÇs]}ggg—”””””\¸pañâÅšS?B¨££cùòåäkƸ¸8¡P¨wÛZïÃmllG¾mll|뭷ȶ1{©··W­V»»»““š%Ùl6ÒzZ_Àø_¼ûûû߸qãêÕ«¾¾¾ÎÎΡÁÁAµZ½{÷îÂÂÂÐÐÐ;vH$6›­ýzíÑ£G#WÕÚÚJ6žrUÉÉÉmmm<ÈÌÌ 2ÔÙßßþüyr®vû§-¤ÓçÏŸ¿ÿ~///{{{M¿ BèÒ¥Kz¯¥B2™lôµ¶¶Ð,æçç—‘‘ÑÙÙÙÜÜü—¿üåìÙ³z·Ýø¡õ>!ÕÛÛûÅ_TVV¶¶¶Þ¸qcýúõl6[sOAï®ÓÙ ‹€€€ýë_B¡ðáÇYYYäf\ŒÿçdÈ'òâÅ‹óçÏ'{,--·oßž––öôéSww÷]»vYZZ†‡‡«Tªôõõ‘W${öìÑYÕÂ… ·nÝ*—Ë#""ȵN'B¨¯¯ï›o¾!/­´ÛK—.Õî´³³‹ŽŽNIIÉÎÎÞ°aÃ7´çºººúúú._¾ü?ÿùÏ(ëììÌb±Äb1yIœœ¼víZ6þ|>Ÿ¯wÛ---ZïÃB,+==ýðáé©©ííínnnaaaš—:{‰Á`èݜ͛7'''ÇÆÆ2™Ì>ø€ÜŸãËÇf233;::¾üòKãÒÖÖ¶fÍš’’½“£t”ì%ì› …EEE¿ûÝïÆwÍÀ¼Œs°îß¿Ïçó?üðC#opbmm½xñbc:ÙKð R0à¤à%`, X À‚ðÐþ’!ƒÁ º`® ư/?kÏ»råJgg'U•³æââ¢=I{®OŒ`$¸ÆX@°,€ `ñÿñèëÉe6T6IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_eval.html0000755000372000001440000001241612502417165024073 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SecureAuthOption__inherit__graph.png0000644000372000001440000001417512502417165032453 0ustar robertousers‰PNG  IHDRûWl½QbKGDÿÿÿ ½§“2IDATxœíÝ{PçÞð' ®jÅ 2 j½áA)©=žz¤ZQ‚íˆc!X/Œ£àôÔc«\E´A•ZZQRAE©y!€ J8!@.ûþ±§9‘\D»²¡ý}Æ?ž<Ù<Ï“'_÷Ùl6„‚a࣒=ð'IÄ€$b@’1ŒF¾ËØØØG|¿l6{Íš5#Ü)eäß»Q(//¯ &Œp¿·oß^¸pa^^Þ÷KÂ> !´}ûöRºþÓ#kbá8 ’ˆIÄ€$bü“Äçó) öõõq8œ™3gZXXÌ›7ïÀr¹œ”‘诘$bõööÎ;·ªª*99¹ººzçι¹¹ …BëöÍÍÍ /[YYíØ±cû‘sàÏ$11ÑÖÖöúõë4 !4uêÔ¥K—zxxdeemÚ´Is{¥RùòåK¼Ì`0’’’Ft¸ïŒî“(ÊÉ“'ÝÜÜlmm“’’²³³'OžliiùÏþ!…o)‹étúýû÷BEEEžžž¦¦¦...ÙÙÙ!¥RyôèQ777 ‹… òx<õÕ_\.]º4mÚ4&“;00 µ½º©—srrvïÞÇgffÆáprrr´6ååå…²··ÒNOOφ  †³³s||¼T*Åç!77×ÍÍmüøñ‡z§sþGa#!Äår_»MXX˜H$ÊÌÌD…„„ˆD¢ôôt„Ћ/nܸacc#“É0 ËÉÉqwwW*•b±x̘1iiiàĉFFFb±8==Éd´··_¹rÅÙÙ!ÔØØˆ?q¼ØÐÐPYYÉb±öîÝ«µðžžžŒŒ |xª²P(Duuu EE…žöñÍÔË~~~MMMuuux§¡5kÖ…ÂŒŒ „ÐË—/_;½ÁÁÁÁÁÁÃ~5c¸Iª©©Á0lpppH¹±±Q.—ÛÛÛ_¿~ðeË–%%%aÖÝÝmllüõ×_ …B¥RÙÛÛ«P(ÜÝÝO:¥jöôéÓšIª««Ãïår¹,Kk¥®qêJÒíÛ· †žöñUyppF£=|ø¯/((À;Eñx<õçþšÉ%/Iºº!„,,,BÆÆÆCÊ!¶jÕª‚‚‚/^\»v-""!dmmÍãñ*++/^\^^N¥R›››gÍš¥jÓÓÓS³#WWW¼0}úôÖÖV=•𬬬ìííkkk‡Ô×ÖÖΙ3gøM=þ\¡PL™2¿Éb±T[:::ª?wƒe¸IÒ/88¸°°0//oÑ¢Eøš%‘H”Jåùóç»»»£¢¢–/_ÞÝÝíääôàÁÕ£~ûí7ͦðB¨¡¡ÙtUj‘˜˜¨þN­¯¯/999((høMÙÙÙÑh´ææfüfSS“““^¦RGÉk4ò»A4¼ÕMµ'×Z–ËåL&ÓÎÎ.++ ¿K"‘˜ššæççwuu?~ÜÔÔT"‘8p€Éd^¼xQ k=Nòõõmll¼{÷®««ëîÝ»µVb:Ž“0 ûÏþ3mÚ´Å‹744¸»»ÿío“J¥zÚïííÅ^=N ÷óóknnþõ×_ÝÝÝñNu̓pœ4týIÂ0,&&fìØ±"‘Hõ(.—;eÊ“éÓ§_ºt ðÁÁÁÄÄÄÉ“'›››/\¸ðìÙ³šIÊÌÌœ4iƒÁغu«D"ÑZ‰½úª«—1 ‹Åqqqt:ÝÝÝ}ÿþýýýýºÚ—Éd‹-277ÒNwwwdd¤ƒƒÃöíÛñN!Iz»F’†c×®]áááoô! rSOåÛ!°©á#+I£ò̤T*moo?yòä¹sçÈ ø¯Qr4÷ª;wîÌ;wãÆK–,ù#íŒ7ŽÍf§’Àöÿ¬È¹ú–ËåÂ5“ï>±#õí¨Ü'IÄ€$b@’1È9 pýúõžžRºþÓknnvqq!¡ã‘?…5º¾3id4ÞÊ*ˆìQ¼™¸¸¸‘YI8 0ºìÚUpêTyaáÖ Èø>zÀq’>r¹²°ðB¨°°šì±:H’>7nÔ‹D„Ð… 52™ö+ü’¤OAA ~vÿÀ/¿Ô“=ƒIÒ©¿ðÇÈå „F¹p8} I:]»ö›jE“Ë•?ýôk_ß¹C2d$òóï©?V.W\½ªåâ]€ƒ$i×ÓÓÏãÕ+ê§H(.Ü#m@’¤]qqÝ¥RyãÆÿ …}¤ŒÇðA’´;þžR©åœí?<Ь’¤UGÇîÜiÖ<ûaX~~)C2|$-ŠŠji4-3£Tb÷î=à³g- IZ\¸PŸFÒ„a¨¨8-FåwKÞ5*98Xâe¹\)•ÊÌÍǨJZÁµ¯qùrmLÌéööÃdÄÐÁêˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’2ò?)7‡Ã!{ô¡RécÆL${ú˜˜˜Ü¼y“ì—#ÿïL>~üØËËë‹/¾ { £UHHH[[Ù£0Œ¿X:a„àà`²Gþ8NÄ€$b@’1 I€£&I5ÖÖÖ!!!]]]oԟϧ¨ÿôßÓ××ÇápfΜiaa1oÞ¼Èåò‘†á5IBݺuK ´··—””´¶¶nݺ•¬‘ôööÎ;·ªª*99¹ººzçι¹¹ …ö_;innf0xÙÊÊjÇŽ#8Ø‘Bö -,88888øµ›!„U7ËÊÊ,--ߨ£ÆÆF¢žo||¼···\.WÕˆÅâ÷Þ{/##ã]w­ !ÄårßQãÃ7šöIêh4“ÉÄË===6l`0ÎÎÎñññR©TW¥ŠL&ãp8vvvL&“ÃáÈd2„Ð?ü0{öl:îàà””„oI¡PrssÝÜÜÆèÐ!¼2''g÷îÝøÀãÌÌÌ8NNN¾x]ºtiÚ´iL&366v``ÀËË !doo^]Ý´Rk£ÙQ~ƒ}Rmmmoo¯H$ª¯¯_²dIbb"~WDD„ŸŸ_SSS]]‡‡ÇÞ½{µVªï’““W¯^ýôéÓººº÷ßÿË/¿‰D&&&7nlmmÍÉÉAuvvâý®Y³F(fdd „^¾|) B]]]CFXQQagg‡÷ØÐÐPYYÉb±†t­^Ö:rÍ_;3†°OMIR7nÜ8|±¤Ñh>Ä7+((`±XZ+Õ_ÂéÓ§ ¼\RR2kÖ¬G‰Åb…BqãÆ ôûbŠâñxxGx¥®$ݾ}›Á`à½ÔÕÕá•\.wHת²ÖAjíñµ3cI2ˆOK†©±±‘Åb!„úûûÿýïðÁOž}ú®Uô rH£Â¨{Ö}ûvSHÈÿ>¾]´È•¤q4¸à5._®‰9ÝÞ~˜ì:XÝ1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b¼ò7ÝJKKù|>YC1LŠBÇ'{ '00ð½÷ÞûßmL‘ü±@0\aaa¯„Gý>¹\¾gÏž%K–460jìÛ·O.—«×Àq $ ’ˆIÄ0¬$µµµùúúÕšD"IMM [ºtéºuë²²²‰j|8Μ9ãëë{öìÙ7z”¯¯o[[›f½T*MKK‹ŠŠZ¶lYLLLnn®úÏÏéAì¬êbXI"Ö·ß~ÛØØ˜˜˜Èår***ÒÒÒF¬w ÃJKK™L&ÇÓ¿¥@ øøãõoÓßßÏf³ëëëÙlöñãÇ#""JJJâããñWÕߦ¹¹yXXØ[<…7ògNÒÍ›77oÞìêêjeeåééQ1b½·´´<}ú4!!Ïç·¶¶êÙR©TŠD"ý­9sÆÊÊê›o¾™?¾³³³··wZZZGGGqqñkÛ´´´ŒŽŽ~»g1|oœ$__ßâââõëׯX±âìÙ³W¯^ ûè£Nž<‰úî»ï:„o)‘H‚‚‚B·nÝŠŠŠ ¿zõ*BðÂÂÂõë×/[¶ìóÏ?¿ÿ¾úß!WTTDFF®\¹ò»ï¾“ÉdZ+Ñ«{oõ2N¿xñ¢jB===¹\.^–Ëåiii+W®\¹reZZš\.W(YYY¡¡¡+V¬8xð X,ÖÕ2^¨©© ýõ×_5›Â·/--9sæœ9s&NœXZZª9C­ZµJõôïÝ»±|ùòÜÜ\¼¦¤¤ä“O>¡Rÿ÷z™šš®]»¶¤¤Dë´¨·©Þ©X,NJJúøãƒƒƒSSSñåÞ××÷ÚµkëׯÿÇ?þñý÷ß¿i$po³Oª®®NMMŽŽÎÈȸ}ûö‰'¶lÙ’-‰/^\QQ¯ß,K*•îÝ»wÅŠßÿ}ddä¡C‡¤Ré•+WΜ9³iÓ¦ìììO>ùäàÁƒš]¼xñàÁƒ¸sçŽêhC³ÒÊÊ*>>¿W½ÌápjjjÖ¬YÃáp¸\îóçÏU-ççç ‚ôôôýë_555YYYùùùeee<|øð³gÏrrrôOB^^Þ—_~éêêªÙú}ióóóCùøøè_àRRRBªš;wîddd$$$dffŠD"±XÜÝÝÍb±†<Åb=}úTë´h¶‰;räHWWWZZZrrrUUÕ¹sçðú›7o;vŒÍf§§§÷ööêîZ½M’BCCétz`` B(<<œN§!„z{{=<<ŒŒŒêêêB×®] ¤P(2™ Ã0‰DbbbTTT4f̘ .ÄÄÄx{{ÛØØ,X°`Ó¦MšmÙ²ÅÙÙÙÍÍmÓ¦M%%%º*ÍÌÌ>úè#ü^õòܹs¹\î‘#Gf̘ñóÏ?‡‡‡_¿~¿«¸¸xÛ¶mL&ÓÅÅ…Ífß½{÷Ê•+7ntqq™|8???++kêÔ©ááá ,êÿÉ\\\4;rvvÆ 'NìêêÒS©I*•ÞºukÉ’%nnnnnn‘‘‘§NJKKÃ÷«W¯Vmlff&“ÉT-Oš4iÒ¤ICò£S'NÄ šM!„JKK …úq4Ç›Μ9ê›ñùü©S§âåáL‹P(T*•ŽŽŽøM'''Õ– ©½Žoø#î%K–”——ÿòË/3f̰µµE (•ʽ{÷-[¶l×®]½½½ £©©Iõ¨Çk6¥:P}öì>¹º*5a¶ÿþææfü&…B™7ožêm³¥¥eNNÇãñxEEE)))666ø½|>_}uÃõâÅ õöU“®Ù”R©äñxŸ}öÙ¿ æñxªèhmP*C*þþþgΜQ§&•JÏ;7þüáO‹µµ5•Jþû£Ðíííx€´öø¦ˆO’§§§B¡8}ú4¾ü!„( ‡Ã)++ëëë“ÉdFFFcÆŒùðÃSSS+**º»»ïÞ½«õ²£G¶µµÕ××gffèªìëë»rå ~¯ªÀ'¯üæ$…B!䪒ÌÌÌŽŽŽ¯¾újøikk[·nê=Λz*)Ó²oß>[[Û¼¼ŸÉdª¨¨>|¸ººúøñãÊÊÊL&óÈ‘# %!!¡ªª*%%ÅÌÌ !TXXˆÇ€/xyydffÚØØlß¾]b!†aQQQxxÂË8A8:Ž¢Ñhì`NNNss3ƒÁ(**š={öðáÃ¥Ù0 `Ò¤I¯_¿ÎÍÍuvvÆcCÍ;—N§GEE!„Ú+ܵkל9sÊËËsss]]]7lذgÏ''§ÜÜÜçÏŸ5*$$Ddw„—¥o½Rž€Ä 2#}bÎÎÎÆ0ŒÍf‹,r¹\ccã›7ob6}úôˆˆ Ãh4‰DŠŒŒ¤Óé|>¿¹¹™Çã999:uJPíü!ž˜sss±ÙØØH,ì4`‘ÄL£ÑBt:½ƒ ‘H………nÈf³‰Db^^þcBBB(==]øµWèààP]]ožšš:dÈ{{û„„¼äÅ‹ø²ÄÄüA­wàÓ3ÜÊ9ÐÔÔD‘H$‘e„‘Hœ={vBBB}}}ZZZ@@BHWW7===33ÓÌÌÌÃÃãîÝ»JJJÅÅÅC† Ôéââ"Þ­­-¾àààPYYÙA¡ôtuuŒŒ^¼x!\˜••5bĈwïÞá? ›Í¾}û¶M§ÖÖÖòx¼àå666‚ØLLL„Q{…¥¥¥T*ï îééYRRRVV&ØYGGÇY³fµ·SÚz×Ä ÇÇÇ'111..ÎÝÝ¿AÍb±ø|~||ý3ÌÇ 2ƒOù'“ïÕ°°°ÒÒÒ˜˜é7)**²µµ´.òc…@†>ý€Œ€bimm­ªª:qâĹsçä xÆ ŠåáÇÇ ?~ü§Ô£¥¥µlÙ2i B[Ù 32¼• z¨O?àŠP ˜‰P ˜Ã¥@ÆŽ=ÚÁoù|LI©“IAÏõäÉ“O¬3ÈŒ©©)‘Hlg<’’ªê€~ý†b‡FKìîÈ@7²°°ø”Ía¸t­ÚÚ¦sçÆÄdVU5Ž3 0ð³™3‡t¾è«àŠºÊÝ»üqïÆ¤dðñ 1ÀÇKMÍß±ãJe%}ùòñß|3QCCEÞ3|ŒÌÌ×áá—óò*.tÿþ{/]Ý~òŽô˜àÃTU5þôSrbb¶›Û€””5ƒ™É;"Ы@biq8¼¨¨Œ}û®i?¾hêÔAòŽôB˜@*¯[_VV¿j•çŠÉdøþ]N,è›ÍݽûêáÃécÇÚ:µØÊÊ@ÞÞ ^0yù²zåÊèÒÒú-[f.\8†@€‰¡@ׂ+fhWL̃-[í쌯__kcC‘w8 O€Ä ´´´­_Ÿ˜˜ýõ×ã¼áM× Û@bQ´¯¾:VSÃ8uj±§§“¼Ã} $fxÏÝ»K—þÑ¿¿Á­[¡FFÚòô9JòHrò³ùóŽ3 .î[ÈÊ@. 1À?ΟøÍ7§,øìرEýúÁ[¯|À­l@¡S§î……]\»vÊ÷ßO‘w, OƒqÌ€ÎË ‰ ûüÛo'Ê;Ð×Á­l@_wéRvhhÜêÕž•"€+f@Ÿvï^Ѽy‡çϳsçlyÇB˜}YAAÍÌ™ûÇŽµ;rd¡’¼k(HÌ€>ŠÉl›6mŸ®n¿øøoUT¤í Ëf³ÏŸ?ßÚÚÚ¥±^ÌÖÖv„ ¬½²}ÔÚµç™Ì¶ VHŸ•BÉÉÉ .캨@¯§¬¬Ìáp:Z¡ÛBÅqþüëWsƒŒ´>hC.—‹‚{àãÄÅÅùùùu¼ôÊô9¥¥õ›7'¬Y3eØ0+yÇ€(HÌ€¾…ÏÇV¯>kgg--- !¤««›žžž™™iffæááq÷î]%%¥âââ!C†êtqqoÈÖÖ_ppp¨¬¬ì °=˜ÐF1±·š˜˜/LGGgéÒ¥ùùùß|óMõ0!T[[Ëãñðe„ ¶™L.((˜:uê°aÃN:%± ‘ [ZZΟ?5jÔ–-[rss7mÚ„§X‰1”•• Ž˜££ã¬Y³5gee?þ§Ÿ~””––R©T¼Û¹§§gIIIûþ 1z¹²²†””g_í!ï@Þãã㓘˜çîîŽß f±X|>?>>žF£-^¼ØÛÛ›F£™šš>{öL°U~~¾xUøåB¨  ÏOíJdaa!<8êåË—ÊÊÊæææ‚%¥v3EEEÅÁƒ'Ož¼víÚöÖÁ0ì÷ߟ1cBÈÈȈH$ã¿zýúµ©©i±áX,–¯¯ohhhvvö¡C‡$®#$†aóæÍ{þü9þ#@˜2e þžs‰1˜˜˜”––â%999;wîTuåʕÇŸ?>==/100\”ÓéôÌÌÌNwáƒ@bôrÑÑŒŒ´¦O—p­)GcÇŽår¹áááx @ðòòºxñ"ƒÁ`³Ù$I]]=(((444))©¦¦æÚµk6l¯jõêÕEEEYYY›6mš?~{…MMMø\‘対ú*88899¹¤¤äæÍ›óçÏ_°`ŠŠJ§»Àç󃂂‚ƒƒÏ;—––våÊÁ¯Þ¾}[SSóæÍ›ŒŒŒY³f•””|ÿý÷!‰äçç·jÕª’’’¼¼¼Í›7ãw :ÖÖÖÆf³Éd2‹ÅÚ¶mB¨¹¹¹ãM444,Xàçç—’’R\\|ÿþýÿöb ËËËËËË[¹r¥ ›B¨_¿~ööö6lX¾|9ÞUmöìÙ7n,++ËÍÍ:uêo¿ý†¯Éd2;Ý©HsOz¨¶6ÎÀaû÷§ÊªBéŸ1 ?¦•¸¼|ùr555ƒ!\ù€Èd²ƒƒCRR†al6;<<ÜÚÚZCCÃÍÍíìÙ³Hìó±cÇ,-- ‚ƒƒY,–ÄBÁÊxCÂËg÷îÝöööxoð°°°–––vD°íÌf³1 KLL¤R©4 {ÿN¸¹¹y@@@mm­ B¨¯¯O¥R׬YƒÇÖéáÚ·oŸžžž¹¹ù¡C‡üýý)ŠÈ3fñM¸\îöíÛ]\\ÔÔÔ¬¬¬Ö¯_·%1†ÖÖÖmmm:.r”X,–ݶmÛ0 c0‹-ÒÕÕÕ××_ºtiKK ‡Ãqww×ÐÐèôÄæü!`0y ÷º|ùippLVÖ6 ES&âÓöÉä›3,,¬´´4&&FúMŠŠŠlmm­‹üØA!PÒœ?0‰ 7‹ŽÎœ8ÑQVYYVZ[[«ªªNœ8qîÜ9yÇ'ï(d‰B¡ 8PÞQô-ÉÉÉ .”w½“¿¿?>Χ;%$<±³3vq1ï|Õ>¦¡¡aèСÞÞÞ±±±šššW¯^õ÷÷OJJš2eJ·ÅP\\¯¢ÄBñ)%Ψ(zôèêիׯ_ßµk^~éÒ¥ìÞ½{ýúõ‚.åâ…¿üòKIIÉãÇoÞ¼yëÖ­­[·þúë¯/^LIIIOO/((À_C¿_º¦¦F$¼j½×êôýa=Bzzºð+ßz:ü}­òŽ¢Ï‘òU‹àCùøøøøøtg‹Lfë€ëNœ¸Ó•÷ôóÏjø+'Åu0-£ø¼Š ŧDì`FE¼P°üA­÷P0í# /JMÍçpx3g•w ŠHWW×ÈÈèŋ…YYY#FŒx÷î]Ó2JœüQ¼P|JÄfTñ¡­÷V˜P ÂÛd¢¥¥eݺuƒÖÐÐ9räÏ?ÿÜýý°º_bbö˜16úúòDAÍœ9sïÞ½˜P?Çèèh‡£®®ÞÁ´Œ'/Ÿ±ƒE|hë½UÚU)È; ©0™mwî¼Â 1hGssóðáÃ>|‘½aÆèèh///'ïкPmmÓ­[/ýýî5œŠcçÎ÷ïßÏÍÍýá‡öïßçË›–Q˜ø”ˆ̨(2Oâ§·Þ;ô’áR2$܉_1±ÙÜ[·^&$<¹~=Ãá]¿¾vÐ 3yQxx¸¡¡á­[·ˆD"BÈÎÎnÊ”)ÎÎÎÇŽëÅïR¾pá±¶¶Ú´iƒäˆâ244|òäIHHˆOss³££ãåË—g̘ÿöàÁƒ«W¯1b™LþòË/7nÜøA•ïØ±cõêÕC‡URRš3gή]»ˆDbKKË”)SZZZ¦OŸŽw«¶²²rww§R©"3+bë½DW?èîÒtþ¢Óé .Ô××755]»v->1çåË— ¤¢¢bmm}úôi ÃôõõBFFFØ¿]ÒÒÒÌÍÍïÞ½Ëf³CBB(Š¡¡aHH> é•+W† ¢¦¦fllüóÏ?ãm!„Ž?îàà```ðóÏ?Ÿ>}ÚÊÊJKKkóæÍÒìŽÄÎ_\.ïîÝWß}w®ÿu&&ß™š®¡R¿£R¿ËÎ.ûÀ£$“~žÝ>Üààà   |Íææf55µììlLÒ™Æãñ8ààà ¡¡1zôè[·n!±yv/]ºdggghhÜÚÚ*±kž]ccãÔTÑyˆ:4vìØö6?É…ÿ :TâÞu¬;;ñùüÏ>Ûv±ëšèé¿€|Isþô’ÓKšÄ0iҤׯ_çææ:;;oß¾Édª¨¨>|¸ººúøñãÊÊÊL&Sü kÚ´i·nÝb2™»víš3gNyyynn®««ë†  ™L ª¬¬ŒŽŽFÕÕÕa†ò÷÷g0ø~___ƒqäÈ„P}}}§»#œ˜¹\ÞyÁÁÑ66ë©Ô5æækñ|,ø‰YV¤OÌ|¸úúúðèèh'''>Ÿ/ñL;rä…BIHH¨ªªJII133OÌ^^^™™™666Û·o—XˆaXcccTTž`™N§#„Þ¾}+ÿƒôôôÚKÌâ'¹ðÿ‚?ÿüS|ï:=bÝ™˜Ÿ>-£R¿{ú´ ÿS@bŸó$ö§Ñh$)22’N§óùüææf'þ……¿ï“4  ­­íåË—L&“Çãedd ¡Qø•Þ¹_xYšŽþyyyÏŸ?øðõæÍ ÎΛ©Ôï,-CDò1$f™“>1wðár¹\ccã›7ob6}úôˆˆ Ã$žiNNN§NTûLj'fÁ¹kcc#±°½8ñÄ,þ‡àýû÷ñî9³øI.ܨĽëTw&æÕ«c&OÞÓ¥M@bŸBšó§¯> @P®­­M&“ ¾þúk&“9tè{c3455Ñ¿û…—¥ñúuÃÎéD"ï§Ãf·Û“6,좦&Lw!µµµYš5;øp‰DâìÙ³\\\ÒÒÒð+i‰gZqqñ!Cuº¸¸ˆ7$dâàà 7"±PœŽŽŽ±±qNNΤI“„ËsrrD^. õ?Émµ·wŠ£ºº111;2ÒOÞðIúJbôÂÇg†À{á³X,>ŸÏf³Ï;çíí]WW'¾­à;×ÀÀ ==ÝÆÆýûö‹åëëçííÝÖÖvòäI™D‹a!iûZkh¨êè¨Ë¤Ý>®¹Y6ÿ|||èîîŽß –x¦™šš>{ölðàÁøVùùùâU4!TPP€ãl¯P¢€€€üqüøñxç/ÿ™3gFDD& àr¹ÊÊÊoÞ¼l"~’ãå‚ÿâ{§8Μy ««þ¿ÿÁtR gë+‰YÐ ?**ª¥¥ï…O ¼¼¼¢££=<<Øl6‰DRWWÇ_‹Ãd254DAâÃ"##›šš–.]:bĈü‘Íf“Éd‹õÃ? „Dz~ý'|ttL®^}óàÕ«ee"—+yˆËÆ3†µøôFA\\ÜÕ«ìO¯gìØ±\.7<<\ð^~‰gZPPPhh¨¶¶ö¨Q£rrr6lØ ^ÕêÕ«=J§Ó7mÚ4þüö ›ššâãã—,Y"²¼uëÖ‘#Gzzz®_¿ÞÚÚºÿþóæÍ£P(K–,a0¡Ó§OÏ;wÿþý‚ÅOr‘—*‹ï‚hmåœ>}oÑ"w‰(ïXø4ÝrS½ËIÓù‹F£êëëS©Ô5kÖིccc @&“’’’0 ãp8îîîØûÏÞ0 c0‹-ÒÕÕÕ××_ºtiKK †aûöíÓÓÓ377?tè¿¿?…BÁ0 =Kno¹"½²ÿþ»:2òê°a?P©ßYX@篮"ý3æN?ÜåË—«©©1 áÊEÎ46›nmm­¡¡áææ†ÏŠ(òŒùرc–––ÁÁÁ,Kb!Ö~¯l ØLæÚµkUUU æáááçç‡aØŽ;ttt ””$ØDü$©PâÞu¬{ž1ÇÄ<°°X[]ÝØÕ Á3fð)¤9X¯x=ÅíÛ·{Ù´!'''áBÿàAQBÂÓ+Wž¾{צ¬Läpx¡””5š&ßà IDATpÅ,qqqxÆúôªÂÂÂJKKcbb¤ßDd®x‰SÇËd>y6›Ïíóq>tï|}}BqqqÝb§Z[9nn;§LqŠˆðéºVp2|8kÖ¬o¾ùfüøñŸR–––øË¹$v'Yíl±XìÒæÏw32Òî†æLMM‰Dâ§ÊÊzªªýUTú“ÉT&óqsó=™„Ÿ`†Íö@bîÁ44TƳ—wà=7Y¬`z;…B9|ø°È: »ÓGï]—:{6³©‰µbÅÄîiî³Ï>ûè‰@ø|,'§<-íEZZ~^Þ›~ýT<<ì'O8iÒ††š²ô\˜=X}=sß¾‹¹wÏåòÇ©«k¾q#/55ÿÞ½ÂwïØ..æS¦8GFú99™‰0“‰ЃmÚtAKK5$dª¼…aØóç•©©ù©©/òò*••‰öÛ·ÿÏÃÃÞÜ\OÞÑ…‰ÐS]½ú<9ùÙÙ³ËÔÔ¤ze[7hkãÞ¹ó*55ÿöí¿++鯯Ú3f  û|øp+Å (8HÌ€‰Á`mÚtaöìaãÇ;t¾v«®nLIÉMMÍÏÊ*ikãnµpág“';ÙÛË;4Ðó@bôH?ý”ÜÚÊݺõ yÀçc—¤¦¾HMÍ/(¨ÑÔT?Þa×.Ÿ‰õõE߀ôzIb&/^¼xñâ…¼‘™^󲔡4ðaãÂI$c55>¿•ÉÌ울zƒ/¿üR¶^º”}úôýß~ ¤Pº»3sssëíÛ§¦æ§§ÿÝÐÀìßßpÚ4—œ5rd•^ò ä«—¼ù«±±‘ÃáÈ; YÒÐÐPSS“w}KkkëŸþ‰OçÕ©úúÖ¬¬·Ož¼}û¶ÕÐPÍÝÝhüøŽæ“èㆠÖ¿YÕ–—÷ÆÛû×… ?Û¾ý²ª³S¯_×]»öüÆü§OËÂèÑ<=<=,-õ»-ÐGô’Ä @÷(+k¸p!ëÊ•g5––úsçÿüó!ð±;1­S§î56ÖŽ‹ûVY¹kÇq8¼ÌÌ×7n䧥嗕5hi©yy9yz:¹»ÛêêöëÒ¦A_‰€ÎÑh- O®\Éyò¤TGG}Ö¬aÞÞƒ‡·VR‚÷¡v·o¾9ý×_…ׯ¯51Ñé¢&ššÞݸ‘Ÿ–öâîÝ‚ÆÆw..æcÇÚyz6Ì †ƒn‰€v±XìäägÉÉÏ22^‰J3f¸x{ñð°'“áQ¢|DF^û¿ÿK=wn™»»Ì+ÏÍ­À‡çç¿QR"Œïàéé4v¬ܬÝ 3¢x<þ­[/¯\ɹq#¯¥…=q¢ã矞2e––ª¼CëÓºõÓOÉÌŸ5ËUVu²ÙÜŒŒW©©ùwî”—7iáOŽ?ûÌV]†ù€Ä À=*¾råYJʳšš¦#¬½½‡|þù`ccÅ}×cßqþüÃØõë§OþôÚjk›ðaNýUØÚÊ4ÈÌÓs §§“³³<žr‰TZZñâc¼K—••Áœ9ü½‡ØÙA—.Eó`ýúø+&mÜ8ã£+Á0,+«$5õÅÝ»yy•jjä‰'O8~¼L  $fÐw540³ñ.]ººýþ÷?WèÒ¥€Nžükóæ„U«&¯_?ý#6g2ÛÒÓ_âïȬ¯gš˜èL›æâåå4b„µª*IæÑðé 1ƒ>çÝ;vJÊ?]º”••¦O‡.]Šk߾둑×BB¦~ÿý”ÚðÍúÕ«ÏSSó=*æpxÆYyy9Á;2A‰ô\.?=ýŸ.]ïÞ±'L€.] ÇãoÝzéôé{?ý4'0pŒ4›p¹üŠîÜ)Àß‘©¥¥êååŒ÷äÒÓƒaÇ Ç€Ä z?¼KWrò³ÚZèÒÕ30¬åËO?|X|à@Àôé.®|ýz^ZÚ‹¿þ*¤Ó[lm¼¼œaØ1è¹ 1ƒ^«®®9));!áɳgŠæ_¸Îž=lð`syÇ:QTT÷ÕWÇ8Þ‰ANN¦í­VPP“ššãF~vv™’¼#ô˜AoÓÚʹ~=ïÂ…¬ŒŒWªª¤iÓ\fÏæîn O=ÂÙ³™[·&ººZ>¼Püþ³È;2)MÁÍjv z HÌ —À!_¸ðøÆ<>›:uÐܹÃÇw ‘ˆò H¥¶–±zõÙÌÌ×›7{/^JN~VWÇ>ÜÊÇg„·÷`mmuyÇD1¬Õ«Ï~ýµÇ˜16"¿JMÍÿþûóŠÖ¡CxÇi Þ?¯Äß‘™—W©¬Lôð°÷ôtòð°77דGøtHÌ §zû¶9.îQ|üã‚‚ }Ÿá_|ájcóX+(£uî܃yyoMnÞ .ß½ûÏS§þš;wøŽstëÖË»w nßþ»²’nl¬=cÆ`//§áíÔÔàf5è 1ƒŸXâÂ…Ç÷ï©©‘þ÷?×¹s‡Ã[A‡ÃÛµëÏèènÆ04kÖââ·@@§N-ñôtÂ0,!áÉ?^&k×Nim妦æge•´µq‡‡aÇ ï‚Ä z Ãþú«0>>K0 yîÜá^^Î**ðVETRòöë¯O½zUƒaØîÝ>ÇŽÝyýú-‡ÃC))ììŒ##ý6n¼øò囡C-ßÖjjªŽï0yòÀ‰õõ5ä½ï±¶¶.--•w w ݽ{·p $f èJKëcb2/]Ê~ó†îädêç7ÒÛ{°‘ŒBVP†?~÷Ç“ø|Äãñ•••ÔÕÉ--l/¼‘H \.ÀÊÔ©ƒÆ³9²¿Âþ™E Ö¬Yãææ&ï@@o³oß>ssó¸¸8áBýoÞrñâ“ çæVhøùš;w8ÜØTptzËwß»yóŸÿÏ_ü\.ŸÁhCè½ ‘ɤõë§O™âÜS†=ÚÇÇGÞQ€Þ&>>^¼3P,ïÚµç.<ÎÈxE$*͘áöù˜160*Fñݾý÷ŠÑLf« +ÿKô¶†¡ÖVÎÀ&=%+Ð 1EñèQñ… ““Ÿ55±ÜÝm÷ìñ2ÅYKKMÞqÎq8¼ððË'NÜ%XV–LI‰°gÏUwwÛ®Ž €3³ÚZÆ… Yø¨'++ƒ+&~ñ…«™™®¼ãÒ*-­ÿúëSÿ]aÐe…Çãge•÷â… ïÝ+ì×Oå‹/†îß?ÏÅ^dÝÃ\¼øxݺ8‡'Ò·K"2™Èç#.—‡ÿ¨¦F*-} ‰˜A·Œzº~=ÅbO˜àøûï ºnÔÓ… Ž9Ò5„ÐÛ·†uuFÒ­‹©ª¶ih0I$‰Ä&‘8$‡Hä>üôðaÑU÷ïß/ë`{¶¢¢"[[[™ ¢Y±bÅãÇ>|ˆÿ¸k×® 6 0!TQQaaaqëÖ-sssé[”ax80wîܸ¸8Á›YeÞ„8A¯ƒÕÒÒ;v쬭­»!$fÐMŠ‹ßž;÷0!áIuuã Af¡¡Ó¼½‡iui£qqqÿý7Œré"|¾²’R Gàñ”x<—«Äç8"‡Ã~å AS“oo߆BH!e„$÷¨¨¨8pà$æ®3~üø¨¨(‹¥¦¦†JKKSRRJMMÅóƒÈdòèÑ£[ZZÖ¯_/Ç8/\¸ûå—_Ê¥õû÷ï[[[cV[[»iÓ¦ùóçß»wOGG§{Ž $fеh´–„„F=Q(š>>#»yÔ“›››ÈAÐ=¸\~KKkss‹Åf±ØTªŽ¡¡f§[ÅÅÅùùùuCx}Ö¸qã8Γ'OÜÝÝY,ÖÝ»w.\˜ššº|ùr„PffæÈ‘#ÕÔÔÔÔÔ"""äç²eËV¬X1~üxcc9 ’444ÄÛ¥R©QQQfff ÃÀÀ {Ž A]‚Ãá]¹’³pá1W×í)vvF±±ßxð!tïÞ=ssó¥K—Þ¼y“Ëå"„>>>>>òj|„ØØXü^BÅÆÆvºŽ¿¿?ƒÁ8vìBÈ××—Á`à]êëë322ôõõ9†aÑÑÑNNN|>ŸÉdª¨¨>|¸ººúøñãÊÊÊL&óÈ‘# %!!¡ªª*%%ÅÌÌ !TXXˆ|ÁËË«   33ÓÆÆfûöí 1 kllŒŠŠÂÃ^þæ›oþ÷¿ÿa¶nݺeË–q8´¶¶’Éä7nìÚܹsétzTTB¨¡¡aß¾}ÂAš˜˜à+Lš4éõë×¹¹¹ÎÎÎÛ·oŸ1c†aIIIZZZ®®®†=~üXUUµ¥¥EâÀ[,,,,((PSS;yò¤p< ƒL&UVVFGG#„êêê:=þ†íÚµkΜ9ååå¹¹¹®®®6lho/B999ÍÍÍ £¨¨höìÙÇŽ¡½.ÞD§§–Äï(…ûz¨òò†ÈÈ«ãÆýL¥~çæ¶ãàÁ´7oèò sÏÓ£svv6†al6[d¹°°Ëåß¼yðéÓ§GDD`F£ÑH$Rdd$NçóùÍÍÍ<ÏÉÉéÔ©S‚jÿøãñÄœ››‹ÿ666ÖÆÆFba¡ž?žB¡ðù|WW×øøx ÃæÌ™óÃ?¨KMM2dˆÄ½ÀÞ¿@'‘Hx  ›èøœÁÚùŽ‚[Ùà“à/êZ´è¸»ûO¿ÿž>x°ùùóËÿúkÓŠ“LLtäÝJSS!D"‘D–BD"qöìÙ õõõiii!]]ÝôôôÌÌL333»wï*))2DP§‹‹‹xC¶¶ÿ¼˜ÅÁÁ¡²²²ƒB‰<<<êêê²²²ž={6a„——Wjjꃆ®¡!aüjR°;âAÖÖÖòx<¼BÈÆÆ¦²²rèСýúõËÊʺsçÎÌ™3‡zçÎôôô3f´w„Û]¹råСC—,Y"È—d2¹  `êԩÆ ;uê””Ç!TZZJ¥R @ðôô,))‘¸8<ã©ýöíÛ66¢3ˆ#I\¼‰v?ƒAb)?ÿÍÖ­‰®®Û/>ÙÜܺgß³gáû÷Œg30 ~V'UUUóæÍ³²²ÒÐÐ1bDbb¢ +ÿP2ß»^ÌÇÇ'111..ÎÝÝ¿AÍb±ø|~||=))©  ÀÕÕuâĉ©©©wîÜÁ³Ä# ÒîÉ“'ïÝ»wôèQ¼„Åbùúú†††fgg:t¨ƒÝa`` H·t:=33Sâ^HOü€‹7ñA @b¦¢‚¶wïµ±cöôŒ|ðàõêÕžÙÙÛ/\Xáë;¢_?yG×û544àÝ^bcc=zôå—_úûû_¿~½;c(..600À—»m‰0çΫ âÿþ»º››þcÇŽår¹áááx @ðòòºxñ"ƒÁ`³Ù$I]]=(((444))©¦¦æÚµk6l¯jõêÕEEEYYYøHžö ›ššð®"Ë¡ñãÇ_¹reòäÉøÖÖÖÖÖÖ×®]k/1‹X¾|¹p[·nE‘H$??¿U«V•””äååmÞ¼¿10}úôC‡5ŠD"Mš4éÔ©S––––––í‘¶¬­­###÷îÝ‹ÿØÖÖÆf³Éd2‹ÅÚ¶mB¨¹¹Yš˜gÏž½qãÆ²²²ÜÜÜ©S§þöÛo÷Bzâ\¼‰ªð?Þð––¶¸¸G¾¾‡LM×8;oÞ±ãÊ¿¯`ThŠðŒYøYݧ[±b…ŸŸŸpIHHÈäÉ“eU¿4d»G":xÆÌçó?.ݼ9ÁÉ)ŒJýŽJ]sìXF…!I÷ŒYpµÔÞòòåËÕÔÔ †`«ØØØÉd‡¤¤$ ÃØlvxx¸µµµ†††››ÛÙ³g‘Ø3æcÇŽYZZ³X,‰…ØûŸ”ȧvîÜ9„Ðõë×%+V¬PRRjll__|w¸\îž={lllúõëçææ†_bF£Ñõõõ©Têš5kð0•••wìØaXKK ™L^·n]G@¤E Ãø|¾§§§ ž}ûöééé™››:tÈßߟB¡Hsü Æ¢E‹tuuõõõ—.]ÚÒÒÒÞ^ˆ´.Ðñ§ ±‰öÎèü>ŸÏ¿sçUpp´½ý ‹µK—žºq#¯­#︤%ebF?~ÜÁÁÁÀÀàçŸ>}ú´•••––ÖæÍ›1  Â×lnnVSSÃû•\¾|yРA***ÖÖÖ§OŸÆ0ŒÇã8pÀÁÁACCcôèÑ·nÝÿJ½té’¡¡apppkk«ÄB¬ý¯Tccãû÷ï ßÜÜ\VV†/Óéô… êë뛚š®]»ÿ²@EGG;88èêêîÚµK°Ëâ…l6;$$„B¡†„„°Ùl‡³uëVsssƒÀÀ@:Ža~óÓÈÈH$6é[ï€xbæóù¾Þ¼9ÁÙy3•ú¥e•ú•ú¥åZ…JÌÒØ´iÓ¼yó>h‘„*ñ¯¢.ýS ˆ“á‡Ä >@E-2òª»ûOTêw“'ʨ©i’wPLúÄÜ#ºÐét„FkoGÄ«`’ƺ´W(>ØcÏž=NNN¹¹¹ÏŸ?5jTHHÖþ Ò·ÞáÄ\XX»cÇ•¡C·Q©ßYXü“ÿzVbf±X¯_¿666Æ»7K³‚Ä ºÕ»w=ò–u{¤OÌ=b  Þ/¿l'q° &i¬K{…âƒ=ìííð’/^àËóµÞØØX"Q[ðG¡…ÅZ‘|ÜCóíÛ·uuu7mÚô¡Šä€ÚÚÚeË–‰¬#±tp‰ßQðJN€B†ee•\¸ðøòå§,gêÔA'O.?ÞD"Ê;´n"Í@—´´4üJæñ믿nÛ¶ÍÕÕuãÆÓ¦Mëê.ºººFFF/^¼3fŒ 0++ëÛo¿ÍÈÈ ÑhâƒUðe‘±.íâƒ=?jkk·µµ bstttttl/6‰Ce:h½=õõ­†† öîý§;‡ÃkoM ölIܲ¥;:¥kiýÄ<<>>èÂf³Ï;çíí]WW‡t¿½É|~~#'Nl÷oš3'¦ZéNUUU!!!÷ï߯¯¯wttÜ´iÓ¬Y³äL·ÍÚÔS@bî£X,vrò?Ó!ëéõóóÕ­sKô,‚.Â/æõòòŠŽŽöðð袭­=jÔ¨œœœöº=z”N§‹ t)ljjŠ_²d‰ÈòÎ;¿ýö[ ÄÄÄýû÷'''#¡Á*QQQ---‚Á*ÒÃ{DFF655-]ºtĈaaaVVV¡•+WâIÇd2…ßDñé­ãˆD»wy—.­jl|—ššþüÃÌÌb%%ŸÏùÞ&³³©·÷vj’%çm7´ÒmðAwÞÞÞ±±±šššW¯^õ÷÷OJJš2eJ·ÅP\\>ËÏï÷aö=šáå圞¾þÚµïçÏwƒ¬ †ºþ«Q0èNâ Qø²ôƒîDfX211)--Å›““³sçÎöûÐÖ{+¸bî1âã³Ö®Å0ŒÇã#„H$â¹s·mûâÑ£â _¾œÃb±§Ntöì²1clˆD=‰ Ö±cw 4,ÓùÚðÚZFyyCYYCy9íí[5CCVW4@ÏÕëÝõt˜{>ûùç”C‡naBèŸ?r9^tôƒGŠŸ>-·µ5 ž4gÎpccm¹FÚ£5**ã÷ßo½{Ƕ·7þôÄÜÔô®¼œ†çàŠ ZyyCy9­¢‚ÆfsB$ÑÔT—Ï'!‰€÷>yò$$$ÄÇǧ¹¹ÙÑÑñòåËøÉ¡ƒ®^½zĈd2ùË/¿Ü¸qãU¾cÇŽÕ«W:TIIiΜ9»ví"‰---S¦Liii™>}úîÝ»BVVVîîîT*UdÒÆOl½w `ð²ÅÆb±W®Œ¾~=OüýGš0Áñû笠ºZÊ%6)½}Û¼Ztô}>ŸÏáðBêê䢢]RnÎ`°JKëËÊðŒ/TU5â/kTU%ÙÙiiYZê[Xè[Zê[Zêã7ð}}}Bqqq]¶s@Æâââð!¶òä=!66?!‰ßQpŬÐêêš¾xQ-ñ­„D¢‘¨¤ÈYOÉ11x<¾ðKß½c76¾yñç»w좢Zá\[˨­e45½C))ÌÍõð¼;nœHî@qqñÑ£G»bï@Wxò䉼C@Î 1+®çÏ+çÍ;ÒÔô¨,ŽËåߺõ¢®®™BÑìæØ:ÕØøî·ßn?~G$% ¤¥å“É¤ŠŠüvty9­²’†¯I&+››ëYXè¹¹ À“±……ž49Xœ¹¹y||ü²eËd°K »XXXÈ;ä ³‚ºsçUPЉÖV.Ÿ/9+ÿ‹påÊÓÅ‹ÇuSXR¤d‡×ÞŸaÕª³jjd[[#KK}gg³I“â÷¢?.·gïÞ½{÷î•UmÐ ÞKÌååå+V¬hmm•W4Ç`èTVšb!D üsŸLÃпåÃLjˆ>þGùû CD¢SI‰‹ÕÆãuôŒD".Y2nݺid2üiïyïk133399ÙÇÇG^ц©½CˆHÄBF$òBJJHI C }7 IDAT‰ž³ÕÕ¹êê ñbÂ’’ºÊJÐJ$*)+¸Üv¯õ1 c2[!+€8 ߌЅ|œ¸¸8?¿/ÿþ»*7·"7·òÉ“Òüü7OYY‰ÏÇ„û¯q8¼ââ^5È \²ÙÂìííí}|F „˜Ì¶ÜÜŠgÏ*rrʲ²Jkjš¤ªJb±¸%%õò$fÐ…44TÆŒ±3Æÿ±¡ùìYENNùãÇ¥**}â·ð¡ 1ƒî£¯¯1q¢ãĉí¾ÂÅD$ýüüüüüäè…¾üòK‘HÌЉ[·nÕÖÖÊ; Ð; 6L¤DásQQ‘­­­ _È×ÒÒ²}ûö7n;88Ìš5kݺuÊÊ︬"®‡€yz_7¼}PæG€>eÜ8zUèõ.1ËVssóÈ‘#ŒŒvíÚÕ¿ÿ¼¼¼-[¶¤¦¦¦¥¥‰Dñõ‹‹‹GŽY__ÒÑÑY¿~½ÌCºÿ¾µµµÌ«× û@æzyb744¼yó&ž†íìì¦L™âìì|òäÉ%K–ˆ¯Ïçóðeƒˆˆ™‡dhhhll,ójÅuþ¹™µ—@ œ8qÂÑÑÑÐÐ0""âÌ™3ÖÖÖÚÚÚ[¶lA­ZµjñâÅøšL&S]]ýéÓ§¡+W®¸¸¸¨ªªöïßÿÌ™3!>ŸðàAGGGMMM77·ôôtá;½EEE!))ÉÞÞžB¡¬Zµª­­Mb¡`eá ñåèèè­[· _÷ë×/444::ZbU£GFá‰S¸žÆÆÆ¯¾úÊÀÀÀÌÌ,$$9@ˆ‰‰qttÔÓÓÃ'2C%'':T]]J¥JŸ /_¾ljjJ§ÓBçγ³³kiiár¹Û¶m³°°044\°`Acc#¾2‡Ã 522¢P(¡¡¡§‹öEü#Ðå0!±±±"%!„üýý ƱcÇB¾¾¾ ãÈ‘#¡úúúŒŒ }}}‡ƒaXtt´““ŸÏg2™***‡®®®>~ü¸²²2“ÉæV6BHSS!D"‘D–BD"qöìÙ õõõiii!]]ÝôôôÌÌL333»wï*))2DP§‹‹‹xC¶¶¶ø‚ƒƒCeee…âtttŒsrrDÊsrrÝÓ¥©ª¶¶–Çã 0ÿÑÆÆF°¦‰‰‰ð¾“Éä‚‚‚©S§6ìÔ©Sk+,,ù Ñ.]º4??ÿ›o¾ÁKÊÊÊá9::Κ5 _.--¥R©@ xzz–””tžHüÈ$Ö @†ºä«ÖÇÇ'111..ÎÝÝ¿AÍb±ø|~||à–––]»vM:UúªŒŒŒˆDbqq1þãëׯMMMñe‘\Åb±|}}CCC³³³:ÔA`â***<8yòäµk×â%&&&¥¥¥ørNNÎÎ;ñeürOêt:=33³‹öEü#û =ðº$1;–Ë冇‡â%ÁËËëâÅ‹ ƒÍf“H$uuõ   ÐÐФ¤¤šššk×®mذA¼ªÕ«WeeemÚ´iþüùí655á¼E–·nÝZWW7iÒ¤k×®&&&Ž5ÊÔÔTpU*±~&“)‰Dòóó[µjUIII^^ÞæÍ›ñÛâÚÚÚØl6™Lf±XÛ¶mC577‹¬óöíÛš÷!„ø|~PPPppð¹sçÒÒÒ®\¹‚ ËËËËËË[¹reYY^ÃìÙ³7nÜXVV–››;uêÔß~û­+öEâG&qM²$|OUúgÌ‚+¶ö–—/_®¦¦Æ`0„+0`™LvppHJJÂ0ŒÍf‡‡‡[[[khh¸¹¹={‰=c>v옥¥¥App0‹Å’Xˆ½ß¹IxÃ0&“¹víZggguuu''§;v¼{÷®½ú9Ž»»»†††H=4-00P__ŸJ¥®Y³oTâ¾ïÛ·OOOÏÜÜüСCþþþ EšgÌÊqqq~~~˜,ÞVZZ#ý&"o§’ø²*¾Áª7½ KAöE†çôY²ÁHkkkUUÕ‰'Î;'óÊ€ÞMöϘ>|8|øð   ñãÇJ=ZZZË–-“¦P†õ÷P½i_ ëª[Ù ‚ó>ŒLrÐÒÒÖÐÀì|=è{zù$@Ap¹ü‚‚šìì²ìì²G^—–6P©:YY[å(HÌ «TVÒ³³ËrrÊîß/úûï6›K$øüæŸÖÖV“w€ ˆ 1YRQ1ÿõו<}ZÖÔÄ"âóÿyêÌãý³ ¤D°¶6_˜ ¸$$æ£Gv@‡Ã¯¬d úQHEå¿D¢™üßjjDUUùw¸s'[OoöîÝW „GŽa’»‚)+-,ô»9<èÞK̦¦¦D"Þ(55{iR®Ìç·ÕÖþÞ¥ñHÉÜ|ðøñ+nÞ|I&Ùln{«aöêUíùóÍÌôÌÍõLLtH$b{+@ŸB€Á-Š Ã°nîÚõ§ð­`‰ˆD˜16±±ßv[l*(¨Ù¿?íÒ¥l"Q‰ÃáI\‡Jաјmm\„‘¨dl¬mn®'øgf¦gn®K¥~R¾wïÞĉñ‰,AϺ{÷nyG€|@bVh¯–,9ÙÖÆår%§7„’á·ß¿øbhw&ÂÂÚÿû¿Ô¤¤l%% é9=}½½½q[·¦¦©¼¼¡¬¬¡¬¬A°ÐÔô_M[[ÝÒRßÒRŸBÑ26Ö²°Ð·´Ôïߟ¢¡¡Òiø¸ê¸¸8ÙïèJûöí377‡ôY˜]ii}@À‘ÊJz{—žêê*ùù;TT´_YYÃi±±EÒsQÑ.uur{[µ¶rjk" »´´žÁ`á+H“°á…'=”¯¯/B3è³ôÛXY\»¶ö›oNß¾ý·ø=mee¢½½qcã;##-¹„×)KKýÈH¿%KÆýòËääg$‘Íæji©v•Bªª$<ïŽû_!†auuŒŠ ZE½¢‚†ÿËË{óæ ž­¬¬D¥ên†×Ô¼…Wèz¸bîx<~DÄŸ‡ÝB‰|djjd6›;nœÝœ9çM¤¦ÖQ“¯‚‚š}ûn\¹’3p Ijjˆ knjzWSè«c¼…]ûêÕn8Ã{œzÅ }€kkëâââØðÿÙ»Ó¸&®µà'„°%"vYA+‹m¡j¥V—VѪ·­´Uq£.—n¸µo­zµî *«"jµˆQD €q«Y”}' Ùæý0m“°|þ?>LÎLÎyæ$ð0gÎÌ@bNΞÍÙ¸1!LtA°‰‰Î;[23Ÿ¦¦]¾|_(Ä||ÆMž1c‚ÒÎs~ö¬žÃá98˜ vC0”=L ÓÄ s€¸»wïþôÓOýûûCÙÃÉÂ…66K—koïäó…D¢ê‚îd2ÑÏÏÁÏÏáÛo¯_˜˜˜¿zõiM}öì‰AA“ÝÝ­µ¤±c銀Á¬è€RÈ!œfÜÜ,/_þÂÔt´Š ÏÌ;I´ŠJUv‹‹ûOnîÖÏ>{ûöíâ?üÅÇ'zïÞkÏŸ7)0æ7YII @Wm1êêêo½õVQQ‘\jî.NñuttBBBäÒ" ;˜‡KKýk×ÖùøŒ›2ÅÊÊJ_zÏ>{';;òÚµµÞÞãNœ¸=uêwsæì‹‰¹Ëfw }À@޲³³kjjjjj †ÜÇêKKKõô^¹[*ÞbuuuZZZeeåš5käØ@ eKT*%6¶÷´99™99™mÝ™ù411?22iëÖdÇ  É¾¾vJ{ô@__ßÐÐ!dhh¸k×.ƒ††:]ng„BaSÓ+ã+¢ŒŒvîÜ ¯¶èñãê*CBÜä8&€2€#æ‘? }øðÇ FÔ7ßÖÖ¶-]zÌÝ=jëÖ ¹¹ý™18„ãÇÛÛÛëëëGGGŸ9sÆÒÒ’F£mݺ!¾|ùr|K6›­¡¡QXXˆJMMurr¢P(VVVgΜA …Âýû÷ÛÛÛkkk{zzfddˆ' |¬8%%eܸqt:=<<¼««Kf!zu`¹‡Áp‰D&“i4þ’ÇãEDDÐéôˆˆ'3Ξ+÷ðð@á™XšªªªèŸ€Ë—/»¸¸hhhEGGã…ÒÍuX¿=zT}ÅÃã›wßÝýÕWçêêX© e„7OIIÝž=¿yz~kdô¥Oôž=¿=Þ¤è ä/..®/ßp„Phh(‹Å:zô(B($$„Åb>|!ÔØØ˜™™©««Ëãñ0 ‹‰‰qpp …l6[MMíСC555ÇŽ#‰l6ûðáÃt:=99¹ººúÊ•+¦¦¦¡ââb<|ÁßߟÉdæääX[[ïØ±Cf!†a­­­GŽÁÃ_Fµ·····WUU}úé§Ë–-íÈÎ;çÍ›÷üùsƒáêêºiÓ&™qŠBE%sA¢E‹õ×_ùúúFEEaÆb±ÈdrXXXeeeLL B¨¾¾^fs2ëù –(|ø°ò‡.»ºî02úÒÌl­‘Ñ—øO]«×xhôñû6¨$>¾¿À=—ô›ÍŽˆˆprrÒÔÔtssûþûïñß)ùOm eêÔ©………r©¹;ï$æ7—@ ¼wïÙ×_'ibòÕü|æL6›ÍQt\rÓ÷Ä\PP€a~ªørqq1ŸÏ744LOOÇ0lÖ¬YÑÑц577“H¤={ö´´´…Âööv@àààpòäIQµ§N’NÌ C›µµµÌžC§¥¥õøñcÑZ;;»šš|9--ÍÙÙYfœ¯›˜ÅQ©TüïrWWד'OØl¶@ ÈÌÌÄ÷Tfs2ëù%f¡ðﯨ£ã×FF_޳N”E?ÍÍìžk2˜»Ãb±ììì¼½½¯^½úôéÓ¤¤¤ñãÇOŸ>ÏçË+TQx¢IL&óã?¶µµ …¯YԱϞ=ÓÕÕíË[ò}€¡ì7—Š ÁÝÝê›oæì8qb¹¡!-22i„­«VJK{Äç àÐÑÖÖF‘H$‰e„ªªj```rrrccã7-Z„ÒÑÑÉÈÈÈÉÉ155õññÉÊÊRQQ)--uvvÕéää$Ý ¾`ggWYYÙCawD;::V­Z&ZU^^ndd„Ï öóó+++“§xmX&މ·¸qãÆ·ß~Ã02™Ìd2g̘1iÒ¤“'Oâ[vלt`½6Êb‘·n½àä´íÃ9}úNS!$ó®´ªª0UBÙEEEéëëß¼ysæÌ™¶¶¶¹¹¹eeeø•|áS" mllvíÚÅd2å{ô$ŒÁ“¿RSûûJèÖÖ——/ßOHÈûøã£´Ù³'Οïîè8èwQrÁÁÁ‹-?~ü´iÓðêÎÎN¡P˜ÀårÏ;P__obbrÿþý‰'âïzôè‘tUÅÅÅ&L@1™Lccã {¥¡¡±téÒ_ýÃ0ü<±žž^FF†µµ5B¨µµµ¶¶VfœøÛù|>‘H¬ªªê{?hhh|òÉ'‘‘‘õõõT*5$$$>>>  ««ëĉÝuËèÑ£¥ë¹¡Š ê‹Ú Æ-üeww‰Ç-_~ OÿZZjD¢*Bˆ@ P©|-™LÝ OKKHTùgu± Hÿl@Û çTD¼.pìØ±Ý»w766®[·ÎÄÄdÛ¶mÍÍÍáááß|óMxxxGGDZcÇBl6›N§ß¹sÇÅÅ%55522ÿ†ü÷¿ÿ]²d‰P(?**J4ʼn@ øûûÇÄÄøøøp¹\‰¤¡¡A£Ñ¦L™RTT´iÓ&骾øâ‹_ýµ¥¥eË–-‹/î®°­­-!!aŊ˨Tj{{;›ÍÆò7oÞ¼gÏž¶¶¶•+Wº¹¹íÞ½[:N¡Pˆ:}útPPо}ûdî2›ÍÖÒÒ—ðe.—»oß>333}}}‹ÅårÉdrggçÿû_„P{{»Ìn‘Ø/¿üÒC‡v…Ç ©©CMˆ?´;ææz**„›Ý%B°¢âïcš®.>‡Ãûg§8øB!ÆbqþÙ€'Ú D™›Ëå’H²'ÍI¸qãFnnn||üŠ+BBB ƹsçV­Zõå—_>|˜H$¦¤¤XYY9;;wttÿüóÏsæÌ¹zõjXXX```llì7ß|sèÐ!ÂÂÂ>úHº¡ƒ^¾|¹¹¹yñâźººøxDáöíÛõõõ9‚¿E|¹2CÒÔÔüé§ŸÊÊÊòóó[[[—.]ºmÛ¶7ÖÖÖŠ&á\\\¾þúëîê—®Ÿƒ¹wïÞS§Nq8œ%K–Hô’(06›b±Xß}÷Ý¢E‹ÔÔÔº«ó믿–Þ‹žw<''ÇÆÆfP³2BŠ>#”~:""ÎÆf£‰ÉW!!ããs;:ºW_õý³h´¶»åÕ«W«««³XÿÎ3Š‹‹;v,™L¶³³KIIÁ0ŒËåFEEYZZjiiyzzž={Ic>zô¨¹¹¹žžÞš5k:;;eb¯ž)_F¯žáT*µ¬¬ Éb±–-[¦£££««»råÊŽŽ™qböí·ßŽ5jìØ±)))èÕSË<oÚ´iZZZ¢ETTTœœœrrrðU?þøãèÑ£ÍÌÌ<J§Ó»kNf`=ÀÏ1ã_¿õë㬬"Œ¿45]+}‚ÙÈèK¹œAĵ·sZ[;Z[;š›ÙååøÏÓ§5÷ï?ÇîÜ)¾uëé­[Oÿøã¯K— ñŸ„„¼3g²ÏœÉþâ‹}**½¶‚†Õœ†îÎ1÷}>AKK B¨±±Q¢òììl==½î¾êÒõˆ/³—0ELÂèLþƒ‹Ãá]ºTøÑGGÌÌÖÚÚnZ³&æ÷ßòùEÇÕ 9NÆÙ²eËÂ… _ë-¿À2Ÿå;UgĘ•ý/þÕÔô+ñùØFF_šš~¥À8%ÈëÁO?ýô³Ï>khh “É/^¼À×Þ¾};((HSSÓËËëêÕ«†©««‰ªÅ¯â“Èøÿy†Ý¿ŸB¡È,ì9T&“)z‰µˆ– Ã0 å•~†a˜¡¡á7$*?xðà´iÓĘL¦hYº|K.—‹o ³—ЫS"Ö­[çáá!jQflÒ{!3¤!NÌ0ù ôNMà|êÔŠ¼¼í3+*š>þø¨»û7[·^xü¸ZÑÑ .‡SZZzüøñO>ùDѱ¼¡ð¯ß™3ŸÜ¾ùå—þ¦¦£Bøíq$æ² ÁÁÁ.\ˆ—žÓÐÜܼ|ùò€€€ææf|Nƒè]ÝÍiÀ$æ4HÊ4f̘’’ÑË'Ož‰D33³îBBáÁxviiiÉÉÉA-Z´è›o¾þž+zîܹèèèÐÐP¼„Ïç#„Äg<Ȭ‰ÍÊ”î% ø$ŒGaÿIK×ÙÝ^È i(À¯5<Ô+¼SRÂÿøcãÂ…S~ÿýá»ïîöõÝyà@zCC»¢£÷îÝ›ysx<Þ®]»Æ‡ßÊ-22R|~ÀkÍ'`³ÙëÖ­stt¤P(cÇŽŒŒôññÁïô.=ãAf=ÒcÈÒ½„†|Fò÷žÇ ä ­íå¥KEIIæå•éèhÌ™ã8iÒ$ ÅFÏc¦†õó˜åò}‹ŒŒ,//íû[$.ì‘yÕSß/…\.·  ¿ú¨úÑKCi ߸\ Ȧ±dÉÔ%K¦ÖÕµ¥¦ÞOM-:qâ¶¡!íý÷'†„¸M˜ ã @‡Ã©®®>~üø¹sçËà"“ÉýÎÊ#¾—à3'šè$ô¢EiiÞ{o¯¯ïν{¯½xѬèèPv0§¡/äÕKJ †²Á  ±üü²ÔÔûÉɶµ½œ4É"8ØíÃ]µ´Ô† uÊV,Vg]«±‘][ÛÖØØ^WÇjhh¯©i­®nmjb¿ÿþÄ={æ‹oCÙ`€¡l ¤ðÛq»»[}ýuÀ­[ÿ>ÚÛ{\PÐä3& Á3¡ýüü» ¡½]»¹y4ŸOâó‰*†ýûdIÃ0BBx!víÚ•û÷_¹gòƒ¼½½‡6d”$f0D·ãnk{™šz?!!oõêÓ4šúìÙƒ‚&»¹YƳî§L™²`ÁÑÕ“`ÈðùZâùXäŸÂ¿W‚ŽŽŽø6ÞÞÞøA3o&ÊŠQYÙ’’Rpöì½²²kkúœ9.óæM¶°ÐSt\@>^¼hþòËswï>C¨§¿0áÑ£oGÒ²À eqù>Àä/ ¦¦:Ÿ}öÎ;[®][ëãcwêÔ©S¿›1ãÇ£GoáÏøÚ™ÙèÄÄOþ9TSóï'2É4fŒî Œ•0¼Á3P 0;»$!!ïêUŸ/ôñ7{öÄÙ³'Šž¸†©º:ÖÆñii¥ŸþL"G½xÑ4~¼±§§õÔ©ÖS¦X ߣgüéÝwßUt @)ÔÕÕ=xð 3P.,çúõ—/ß¿y󉦦š¿¿Cp°Û´i6ƒq ™ÔÔ¢ˆˆ¸—/¹|¾PTH úÈÜ\7+‹yë37·´«‹on®ëæféînåëkgjªÓCʦ¢¢bÓ¦M0§ˆ˜™™íÝ»·o„Ä ”TMMë•+ŒøøÜ‡«ŒGÍœé:eüøžî¹”Yc#{ûö .ÿÙ!~£££‰oÀç ?®Â“t^^‡Ã%iŸqff£>C3PvOŸÖ&&æ'&æÕÕ±lm ƒƒ'»ÓéÚŠŽ ôGròŸ‘‘I/_ry<¥¥þ;[dn&¤ ¨îîV^^¶ÞÞ¶cÆèqØ %HÌ`xÀïU’˜˜ñbAg'oêT렠ɳf9ijŽJ€56²7oN¸r…±té[ßÔëö¢$›[–“ó¬½#JÒnn–ãÆAÌ %HÌ`˜éêâÿþûÃÄÄü?þøKUUÅÏÏ!(hòôéö=LýJ(+‹ia¡÷ºÔ¤Á›3®Z[_^¾|?!!//¯ÌÀ€6{öÄ€€‰îîVŠŽ ñ$}ïÞ3ë•$mkkÁ0‰ {ÅÅu—.&%ýY^Þhkk018/r IDATØ NC¾Q¤“4®=eÊX77KwwË L!Iƒa39Œ ù.üÙÚúrÒ$‹€çyó&‰&ý‚7„@ |ô¨*7·,/¯,3ó)‹Õ©¯¯íáI ˜ÁHóò%÷·ßIIfe1ÕÕI3g:Íëêåe«ª '¡ß8ÒIZOOËÅÅÜÝÝÒËË’4PN˜ÁˆU_ßž’Rœüçýû/ôõµ?øÀeî\WWWsEÇC}ªvölòÐ4 äBKK+00°Cb€þÁÁÁñññŠ(/ðZS.T/À@”””Èq¬’ F]]ý­·Þ***’Wå9‚Ä À›";;»¦¦¦¦¦†Á`ØØØÌŸ?®–@ ÁP6o }}}CCC„¡¡á®]» ètx2ÊŽ˜è?püøq{{{}}ýèèè3gÎXZZÒh´­[·"„ÂÃ×/_ŽoÉf³544 B©©©NNN ÅÊÊêÌ™3!¡P¸ÿ~{{{mmmOOÏŒŒ ñAl|L;%%eܸqt:=<<¼««Kf!zu¼‡Áp‰D&“i´¿ŸÆÑÚÚºtéR===SSÓõë×s8OOÏŸ~ú !ÔÜܬ¢¢²~ýz„@ ÐÑѹråÊàt'!„×—ß„Phh(‹Å:zô(B($$„Åb>|!ÔØØ˜™™©««Ëãñ0 ‹‰‰qpp …l6[MMíСC555ÇŽ#‰l6ûðáÃt:=99¹ººúÊ•+¦¦¦¡ââb<|ÁßߟÉdæääX[[ïØ±Cf!†a­­­GŽÁÃ_Fµ·····WUU}úé§Ë–-íÈ¢E‹ÞyçgÏž1 GGÇ;vDEE½ÿþû†¥¤¤P©TWWW Ãòóó)JGGG¯=üºÝ>)ÃžŠ¾*rÑÞÞ¾nÝ: …bmm½mÛ¶ÎÎNyUŽa›ÍŽˆˆprrÒÔÔtssûþûïñßùOs eêÔ©………r©¹½Š‹‹{í_3$Þ}Ŏq¹\‰åââb>Ÿohh˜žžŽaجY³¢££1 knn&‘H{öìiii …íííÀÁÁáäÉ“¢jO:%˜ †(6kkk™…=‡*NKKëñãÇø*.—«ªªúðáCüerr²µµu~~¾––—Ë]»ví–-[H$RKKËîÝ»gÍšÕ—T†t54”aO囘—.]:}úô?ÿü³¾¾>33sâĉŸþ9†aÏž=ÓÕÕ`å,ËÎÎÎÛÛûêÕ«OŸ>MJJ?~üôéÓù|¾pqq¹uëVFFÆûï¿ß^ÃÈÅ‹øáWWW}}}ooï}ûö]ºt !$ ›ššXyTT”¾¾þÍ›7gΜikk˜››[VV†9É>©ÂÐÐÐÆÆf×®]L&³¡¡AŽõË¥Cd‚Ä À ¾páB||ü´iÓðêÎÎN¡P˜ÐÜܼ|ùò€€€ææf“û÷ï‹ÞõèÑ#éªðÿÓBL&ÓØØ¸‡Â^ihh,]ºôÑ£Gøÿòªªª¥¥¥øÚgÏž™˜˜¨¨¨Ìš5+%%…Édººº¾ýöÛiii·nÝ‚ÄÜ?Ãh:•J=xð (åx{{WTT „<<<BøüA$k^^Izzú˜1cnß¾Íãñ""" ètzDDÇCÅÄÄlÛ¶MUõßç°ijjnذ!66¶»x¤ëoÈÕÕUf×I˜T!36éÞîyƆD‡ÈÓëÇ0òõ}([t*s™ÏçÓétƒ'Nà«:;;)JbbbCCï¿þJ¡P:;;¿ÿþ{:~ñâÅšššß~ûMæ9æéÓ§çææÚØØlÛ¶Mf!Öã9fQx†ájY,þráÂ…ï¼óNiiéƒðª´´´üüü0 KKKÓÒÒrppèc*ÃïÐè㞢á3áúõë&&&jjj~~~»wï.//ÇË%Ì¥ç%àÌœ9óæÍ›l6{çÎóæÍ{þü9ƒÁpuuÝ´iSKK B¨¡¡A¢sîÞ½;zôhñúÅ—¥ëoèêÕ«Ò]‡õ6©BºN™½-3$é…¾|úpŽ€’WbÆ0lõêÕêêꢈW>vìX2™lgg—’’‚a—ËŠŠ²´´ÔÒÒòôôÄŸ–(ñûôèQsss==½5kÖtvvÊ,Ä^ýc!¾,‘˜•J-++Ã_677/Y²DWW×ÈÈ諯¾Â«jmm%‰ß~û-†ad2yÆ }ì@HÌÐ𙎀aŸÏÏÉÉ‰ŠŠrttTUUÅ^ý:Éœ— Ñ]MM ¾œ––æììŒ'æÆÆF‰æ²³³õôôºûêJ×#ÞÌ®ÃzœT!³N™½ ‰%ÒÇÄÜ[¶lY¸pák½Eâ^æï¿|çûÈ$f ½þ÷é§Ÿ~öÙg d2ùÅ‹øÚÛ·oijjzyy]½zÃ0uuõ¢¢"Qµø°­DªM¢¾ÿ>…B‘YØ]œl6ûܹs¢©XB¡pëÖ­&&&Ø«_¹/^ˆ×É`0D q¹\¼ByåQ•4 Ã0CCÃ7nH4zðàÁiÓ¦‰×Ïd2EËÒõH4$³ëЫ“*Ö­[çáá!jQflÒ½-3¤!HÌpŽ€ÁÂápJKK?þÉ'Ÿ(: ì”d:†a .|ðàþ’@ ¼÷Þ{Ò÷y–9/_M~Ä‚ñLÓÒÒ’““ƒZ´hÑ7ß|#ðmBCCÏ;Š—àmUUU‰Ú’YxCÒ]'AbR…Ì:eövw! 6HÌ –{÷îMž<9,,Ì××w õP©ÔU«Võ¥ _^^^|>?**jÉ’%x @ð÷÷OJJb±X\.—D"ihh„……EDD¤¤¤ÔÖÖ^»vmÓ¦MÒU}ñÅ%%%yyy[¶lY¼xqw…mmm¢¹Ð¢e--­>úhþüùW®\)--ÍÎÎ^¿~½(k"„Øl6BˆD"ÍŸ??<<¼¬¬ìáÇ_ý5~ѸÀÀÀÍ›7WTT0Œ3f8p!´mÛ¶ÚÚZ??¿ëׯ3™L++«… r8œ+VŒ5 !túôi‹µoß¾žëé¹ë¤Q©ÔöövŸ¿cÇ'''uuu ‹7âÛóx¼iÓ¦iiiá›IÏKÚe±XË–-ÓÑÑÑÕÕ]¹r¥è¾4l6{ݺuŽŽŽ eìØ±‘‘‘>>>øÛ¿ýöÛQ£F;6%%ET•t=ÒcÈÒ]‡zœT!36éÞ–’¨u‰éùÓ­¡lw±@J||<<ãa BBBBoÂÃ帧‘‘‘ååå±±±}KII‰è‹*ñ²‡B¥Âår ð«ú§]7”B\\þUé xˆ(‡Ã©®®>~üø¹sç‹Éä~gåÙupŽ ¦#ô›¼ºN©À3(˜hðkÁ¯H½¤Ó釒ØFfáˆÑï®SfpÄ (8b@ü^¾Ý=ÌôÅ‚ Ã$fdxÿý÷“’’D·Aý0iÒ$E‡À°‰(J`` ¢£¼‰à3 DàˆúOUUõüùóƒ4HÔ!“Ǩ©™uu•¿|ùp0šCƒH|l wþ€þ+--ýóÏ?åX!‹Å}ú´Éle2Y­­]Dš‡}üx9¶†’ªªê¬Y³$iÕHÌ `,çîÝ’¬,æíÛÅLf-…Brw·òö¶6ÍÆÑÑTE®x³@bàrù÷î•ÞºÅLK{ÄdÖª©ñdìåeëà`¢ª €Þ\˜`èÔÕµýñÇÓŒŒ¿²²˜--cÆèúúŽóõµ›:Õ†JíëP'Ù 1Ààb±8™™ee1³²˜M4š†··í»ïŽ÷õµÓ××Vtt@é@b€AQUÕ’žþ$=ýñíÛÅ\{{ãéÓí|}ǹ»[‘ÉpE è$f@˜Ÿ_žžþ8=ýÉ“'ÕdŸq~~Ó§ÛÐ 1À@UW·^½ÊHK{”Ÿ_ÞÙÉur2óóïççÓ¸@?@b€~zþ¼éÊÆÕ«ŒÂ „‹‹¹¿¿Ã»ï:ØÛ):40ŒAb€×SRRõ*ãÊ•ûTª«“§O·ó÷w|ç{]]-E‡FHÌÐ; ÃòòÊRSï_¿þ ²²ÅÀ€:{¶s@ÀÄI“,`°ÈÌ €ž0/RSï_¹r¿¼¼‘N×~ï½ ³f9MjM"©*:402AbJJêSR .\((-m03=k–ÓÌ™&O¶„d‚Á‰þõìYýÅ‹—.×YYéÏë:{¶ó¸q†ŠŽ ¼A 1zþ¼)!!/5õ>“Yka¡7oÞ$ÈÇ@Q`òàÍÕÙɽvíaRRþ­[Oµ´(³f9Í™ã2uª5Ìç ‰ðÆ ±ììâÄÄü«W|¾pæÌ sçNòñó¹€2€Ä xSà—<%&槦ÞïèàLŸn4ÙßßQM Nê%‰0ò•—7&%姤–”Ô;8˜ÌŸï0n^ ”$fÀˆÅã ®_wï?žjhßâüùîîî–\ò”$fÀôäIõ¹s÷’“ÿlm}9uªÍ‚î3gNPW'+:.z‰0r44´ÇÇçÆÅå–”ÔÛÛ…†z8P¯3`Øãñ×®=ˆ‰¹›]¢®NúðC×Å‹=œÌý‰0ŒÕÕ±Îˉͩªj™8ÑlÁ‚)sçºR©êŠŽ €þƒ‹ÃPˆee1ÏœÉNK{¤¡¡4yáBáòäððð'Ož(: ЫV­ ¼úáˆ0œTV¶œ:u'11¯±‘=k–SPÐd__»áucàááaf#íÃÒÝ»w===ãã㯠8b ðêUFLÌÝ;wŠ i+VxN22¥è¸ú髯¾ Qt ?†àƒƒÄ Pj,'>>÷ôé;%%õS¦XýüóÂÙ³á^]`ƒ/7@I=zTuòä þ$UçÏw?v,ÌÆÆ@ÑA0è 1”ËË—Üää?OŸ¾óða•——íO?…Θ1axE` 1”ÅÓ§µÇŽÝJI)äó…óæMÚ»wÁ„ ¦Š €¡Ï(Ÿ/LM-š3gßôé;³²˜3 ÿ»kWdåARRR"Ç»…d鹉îÖŠÊ Bpp°øECòYÉÁ3@ajjZ¿-ºö).î?o½e£¢ò¦üý1²³³---ÅKˆDâÆRgbbb\\Ü‚ Ú°‰0Ô0 »}»8&æîµk´´( z,Zäaa¡§è¸@?éëëJFGG¤ÎU«V}öÙg¾¾¾Ò5x0” :,VçéÞÞÑóçÿ¯´´aÏžù……;"#gCV–@ Ž?noo¯¯¯}æÌKKK¶uëV„PxxøòåËñ-Ùl¶††Faa!B(55ÕÉɉB¡XYY9s!$ ÷ïßooo¯­­íé陑‘!> Œ§¤¤Œ7ŽN§‡‡‡wuuÉ,D¯&÷:°,¾Ç‹ˆˆ000 Óé<O´™@ ؽ{·­­­¶¶ö[o½uïÞ=Ѫ¯¾úÊÎÎnåÊ•ÒwÁº|ù²‹‹‹†††‘‘‘(ý÷ÜcÝ…!ÝcJ€Á÷üySTTÊøñ‘¦¦kÃÂŽee= …ŠJ1Bqqq½nÊb±Ž=Š a±X‡F566fffêêêòx< Ãbbb„B!›ÍVSS;tèPMMͱcLjD"›Í>|ø0NONN®®®¾r助©)B¨¸¸ÿã/øûû3™Ìœœkkë;vÈ,Ä0¬µµõÈ‘#xxâË¡¢¢¢v1<OÔ†a;wîœ7oÞóçÏ †««ë¦M›DküñGñðŒñršCL[[!D"‘$–BªªªÉÉÉ7nÜX´hBHGG'###''ÇÔÔÔÇÇ'++KEE¥´´ÔÙÙYT§“““tC666ø‚]eee…ÝÁ3ŸÈìÙ³Å×–——á³µýüüÊÊÊD«^¼xÑsxŸþ¹‹‹ËŠ+°þ “ÉL&sÆŒ“&M:yòd{Lf2{¬ç=0ù gµµmÇŽeÅÅÝkkëœ3ÇåàÁ%ðhd¹ ^´hÑøñã§M›†Pwvv …„„.—{îܹ€€€úúz“û÷ïOœ8×£G¤«*..ž0aBˆÉdâƒÉÝöžž^FF†µµ5B¨µµµ¶¶V´Ê¢çðTTTNœ81a„_ý/éìì ‰èêê:qâD¿ÃÙc£GÈÎÊ…RüwP~ðÁƒ^Žœž<© 2図gs>þø­ÜÜmûö-‚¬<¼¼¼ø|~TTÔ’%Kðàï”Äb±¸\.‰DÒÐÐ ‹ˆˆHII©­­½víÚ¦M›¤«úâ‹/JJJòòò¶lÙ²xñâî ÛÚÚðÓ·˽ ܼysEEƒÁ˜1cÆD«V¯^-Þ¶mÛ¤ßnii¹gÏž½{÷â/»ºº¸\.™Lîììܾ};B¨½½½aÈì±>îÔàÔrÀÈÀåò—/?nlüÕÇ•Òkù|Á¥K…|ð³‘Ñ—>>Ñññ¹oèƒ.PßÎ1‹Æ‡»[^½zµºº:‹Å½+..nìØ±d2ÙÎÎ.%%Ã0.—eii©¥¥åééyöìY$uŽùèÑ£æææzzzkÖ¬éìì”Yˆ‰M¿’XFRCÙ°X¬eË–éèèèêê®\¹²££C´–ÏçïÞ½ÛÚÚZSSÓÓÓ3''½zŽ' ýüüDþøã£G633;xð`hh(NïKI‡!³Çz5ç˜áyÌ€^p8¼°°ã·o31 Ížíü¿ÿ-­zù’{ölÎñãYMï¾;~Å ïiÓlÞœ;4õ@ˆ‹‹øÓ###ËËËcccûþ–’’ÑŸ}‰—=üƒƒç1†Å℆þïÁƒ*>_ˆJM-ܸq¦……^uuëÿþ—‘Ëã .ôX¶lš••¾¢ƒ}Sp8œêêêãÇŸ;wNѱùƒÄ èVssGPÐ’’z>_€—¨ªªüòK:€’’ò55Õ–.¶lÙ4šbã|ÓÜ»woîܹÿùÏ|}}R•J]µjU_ ÁP‚¡l€lµµmû«ªZxûöícÆŒÑ××ÿè£ð[Gyxx „ ñZ[[—.]ª§§gjjº~ýz‡SRRB ÒÓÓÇŒsûö힃ù믆+“’þ„=geÂêÕÓ\òõ×aa^þþŽŽŽ&•8HÌ(XhhhRR~«Ÿëׯkhh¼÷Þ{¡Ÿ~ú©¬¬,???==ýæÍ›Û¶mû¿ÿû¿¤¤¤+W®ddd0™Ìï¾û!”““ƒª­­ÅkûüóÏ+++sssûí·ëׯ g:iIDATïÜù÷óöîÝ{êÔ)—žƒ13µ|¹ûûï;éêj#„TUUº›~E$ªTWÃM%?Ê@Á–/_žŸŸïæævîܹ?þ˜H$"„Nœ8‘‘‘ahhhff¶sçΈˆˆÎÎÎ~øa„ øZé›}òx¼óçÏß¿¿—oTTÔ† -Z„Ú¹s'þÆžij’æÍsÄïüõâEs^^ÙŸ–gg—×aRS#r¹|¡C …$f$fLCCcΜ9‰‰‰ãÇOMM-,,ÄËËËËŒŒD›Ñh´®®.ü¥½½½½½½DUuuu`ìØ±øKkkëÊÊJ|ÙÎÎîu33mf6:0pB¨££«°°"/¯<7·4?¿¬£ƒËç >¬|Ý:½‚¡l/44411ñÒ¥K“&M¥^==½ââb Ã0 kiiÉÉÉ166.//Ç×áCÙâ TUUKKKñ—Ïž=311Á—I$¹] ÷×`PÁ3ŠçïïßÒÒ²}ûöÈÈHQa``àæÍ›÷ìÙÓÖÖ¶råJ77·%K–DFFZXX „>ÿüóñãÇ‹6f³ÙZZZ$iþüùáááGŽéèèøúë¯ñqì~ ±‡+ssËîßž]RSÓF ˆDÑÕÌD¢ê„ ¦ýßg@7 1 xd2988øìÙ³AAA¢Âo¿ýö‹/¾pqqQQQ™7oÞÎ;UUU;::Þ{ï½ŽŽŽY³fíÚµ !daa1mÚ4##£ööv„Ðþýû¿øâ 7772™¼`Á‚Í›7‹F³û¢£ƒwíÚÓÝ»ïææ–·¶v¨¨¨H "„0ì•{Œ¨¨ŒŒFÉ­ ÿ€Ç>0ˆ†Ýc“’þX»6•Çöº¥Š aïÞóç»AT¼QTwìØ¡è±:::ðÁçaÃ:ìÍÌŒŒJ Ãð ØÝl‰**šrsK Ÿ?{VßØÈæpxD¢*~“N@¿ÁP6àT*eݺ«VM?uêöÏ?ßèìäâCÙÒŒY,NFÆ_55­­­ß›B!‰îfjªƒßž¿5älú†²DÃn(ûÑ£G!ü:f„PGG×¹s÷~þù÷ÖÖNCèß?¡´t—šÚßÿÜóx‚æf¶Ì‡(××·ãgÈd¢‘Môð(Ñs,,,ô©TÊï+J 3ƒh¸'fÜ˗ܳgsöíKknîÀ0„ÿÑ ÑÔŸ<ù¾/uvuñkkÛÄŸüˆgî²²†öv¾šñÕlM37×3Fרx‰¤*ï½@©ÁP6 ä+¼CC§œ>½:‹Õ)û>%[Mhn®kn®+½ª­í¥è‘uumøwV³ªªEôàgMCü‘øƒ# hff£UTrÛI”$f@Ÿhjªýç?Ó—-›{÷çŸoØÙõþžÞÐh4šÆ¸q†^^’«ÚÚ^âOt Œ?}Z›•Å|ñ¢Ÿ’F"©Ž­):¶en =*U}à± (0” À CÙÒð š2ÈÌåòkjÚðÃëçÏ›DÜåå ,–äÀ¸hTÜÜ\—N§š™Á3¡Á0G̀צÀó¾dr·ãO|Ò>0Î`T¾xÑÜÙÉÅ·‘ÍD35ÕQU…[¥GÌ ¢††ütXxð >%¥ØÐfee¢§§m`@ÕÕÕÒ×צӵuuµÈäaü<>0ŽŠWT4‰f¢UV¶àƒ‰ŒÓéTCCªh&N%ådö† vïÞ=5¹#“É7oÞ|ë­·† ­aü›€òÓÕÕíuXXyÉúûö<~ÜøÇÏ„øÌêêd ]]-##š±±Ž³ó˜7Åûzh4 '' érñ«¼Dãyyeø7¾ôÀ8~ÀmeE×ÒRHTåååk×®H%`h„„„TUU M[pÄ ø×“'5AAûY,Nw7Á;;£ôôˆ! lèI_å…sWUµtttáÛÐh¢Qqñq"±÷ñ„P||üàî ‡dƒ Ž˜ÿ²·7º~}ýܹ¿ÔÕ±ø|A[~úéô!‹J!úx•~>»»«¼ÄÆñî1cFÒÀ81 1^ajªsåÊWóæí¯¨h’™› ®ýÁ.C›’èî*¯ÎNneeKuukMMkUU ¾üäIuee ‡Ã÷5JÃØx”‰‰Ž©©N]†ÁKìPn˜’ètí Ö|ö¬^:7«¨V­š7ä’¦®N¶±1°±1^ÕÜÜ'ìÊÊæªªÖêêÖ‡«X,5HÌ@$f€ zzZ))kæÏÿߣGÕ¹YMxéR¡¶¶Ú¼y“)’¢"^FÖ=ZÓÑÑD¼phNX‚a®ÛÈF¥ª'%}îæf©ªúïÁ1‰¤âîà`²uë…É“ÿ}¥®®MA‚*))‘ã9o‚,=7ÑÝZ¼üüùó2ë,**’WÌJŽ˜ÝÒÐ Ÿ;·jùò™™áÓš„B,<ü]CCÚöís.^,8|øýûÓßygüŠÞ^^¶ŠŽ(^vv¶¥¥¥x ‘Hܸqcÿj›3gNMM B¨¬¬lêÔ©ø2BHWWƤ¼3 'd2ñÈ‘¥+VœÈÊzŠa„€€‰††4„––ÚâÅž z¤§?>zôÖüùÿst4ù裷‚ƒÝDÏ‚o }}}CCC‰ÂèèèþÕ¦®®®®®Žb³Ù!éšG$Êô‚B!8±ÜÏÏQ ~úéÛâ«TT~~qqÿùý÷õÎÎc¶nMvwÚ»÷Zss‡¢¢yÂñãÇíííõõõ£££Ïœ9ciiI£Ñ¶nÝŠ _¾|9¾%›ÍÖÐÐ(,,D¥¦¦:99Q(++«3gÎ „„Báþýûíííµµµ===322ÄÇñ¡ã”””qãÆÑéôððð®®.™…èÕñç^ÃÅ7àñxt:=""‚Çã‰6»wï¶µµÕÖÖ~ë­·îÝ»×C2÷º»he6*Ý?J€>àó Æ‹ž·©¯gíßÃÙy»¹ùú5kb?®𨆩àààààà^7C…††²X¬£G"„BBBX,ÖáÇB™™™ººº<𘘡PÈf³ÕÔÔ:TSSsìØ1"‘Èf³>L§Ó“““«««¯\¹bjjŠ*..ƾàïïÏd2srr¬­­wìØ!³ðÖÖÖ#GŽàá‰/#„ŠŠŠÚÅðx>~Ú´iøugg§P(LHHhnn^¾|y@@@ss³‰‰Éýû÷Eï’ùÜ3ü !Äd2ñÁäî ûGOOO”¹[ZZrrrD«,,,z Oœô^w­t£2ûg û%_˜ƒËÞÞhïÞùùùÛW¬ðILÌŸ2å›åËß¾ÍÄà :râååÅçó£¢¢–,Y‚—ÿ¤¤$‹ÅårI$’††FXXXDDDJJJmmíµk×6mÚ$]Õ_|QRR’——·eË–Å‹wWØÖÖ†Ÿð–XîU``àæÍ›+** ÆŒ38 Zµzõjñð¶mÛöº{Ý]´ÒÊìŸ>îÂPšsÀ0L(ÞºõtåÊ“ffk]\¶ïÙó[SS/“nF°¾Ÿcðu·¼zõjuuu‹%zW\\ÜØ±cÉd²]JJ †a\.7**ÊÒÒRKKËÓÓóìÙ³HêóÑ£GÍÍÍõôôÖ¬YÓÙÙ)³{õŒ¯ø2’Ê–Ø€Åb-[¶LGGGWWwåÊ•¢µ|>÷îÝÖÖÖšššžžžøÁ´ÌJD$öº»h¥•Ù?½~ CvŽûP€ÚÚ¶ØØ»'NÜf³»Þ{ÏqÅ o77ËÞß6²Èñ±‘‘‘ååå±±±}KII‰(H¼ì¡PyHìõ F;”}„¡l€ÒÖ­›QP°ã—_ÕÖ¶Í™³oÆŒcbÂúˆÃá”––?~ü“O>Qt,Cgdï5$f€ÂÉĀ甔ðk×Ö:9™nß~ÑÙyûÖ­^¼P¢™8JîÞ½{“'O óõõH=T*uÕªU})T2÷Zi£}]0” P,Vg||ÞÑ£·*+›ßzËfÅ ïwß/ÇG,(9eƒÁCÙ€7•ª¾b…wvvä¹s«GÒ ;>mÚ¤·¶ÂC‹Áî5P.**//[//Û'OjNºýÿ—öË/éóç»/^ìicc èètpÄ PRööFÑÑÁþ¹#"bÆüåã=wî/IIù]]|E‡À ‚Ä PjT*eùrïÌÌM×®­µ±1ؼ9q„¯7lˆg0^(:4 e†''³]»Ì¶m›sñbALÌÝ3~tr2[¼ØóÃ]µ´Ô]?ݺuËÏÏOÑQå³²ÃR^^YLÌÝÔÔ"55RPÐä… =ìíÔëIHHHHHPt OTUU£££ÍÍ͇ -HÌ€aŒÅêLL̽ûäIÍĉf L™;וJUWt\ô$fÀHP\\Ÿwþü½ÖÖ—S§Z/^ì9cÆIUÑqðÚ 1F.—ýúÃÄÄü›7Ÿèêj¸,\8ÅÞ~@O*`ˆAbŒ@%%õçÏßKHÈkjbOj³`ûÌ™ÔÕÉŠŽ €ÞAbŒX<žàÆÇçÎåddü¥®Nš5Ë)(hòÔ©6**#ö6Ÿ`€Ä ùX¬N|ˆûöíbM}öì‰AA“ÝÝ­2@b¼AªªZ.^,8{ö^YYƒµ5}Η  7ss]EÇÀ¿ 1Þ8B!–]œ˜˜õ*ƒÃáùøŒ›;wÒ{ï9jjו€‘3àÍÕÙɽvíaRRþ­[OI$¢ŸŸÃܹ®Ó§Û‘ÉpWD 0˜±Xœë×\¾|ÿ?þRUUñò² š WB…€Ä ÿjm}™–öŸ&F¥ªûùpž>ÝžH„Gþ€!‰d()©OI)¸p¡ ´´ÁÌlô¬YN3gN˜<Ù.µƒ 3ô„Áxqùòýß~{ðìY=®ýÞ{fÍrš:ÕF¹Á Ä }RYÙríÚƒ´´Gwï–‰ª^^¶³gO|ï½ T*EÑ¡3¼žÊÊ–ß~cüöÛƒ¼¼22™8}º¿¿ã;ïØëêj):40@b€~jld_¿þàÚµ·oóxs‡wßuvO†J3 Ÿ/,((OK{|ýúƒ’’úÑ£5ß~ÛÞÏÏÁ××N[ºÁëÄ rƒaƒQyãÆ£´´ÇTª«“||Æùù9LŸng`@Stt`x€Ä ƒ¢®®íÆÇii³²˜\{{ãéÓí|}ǹ»[ÁÅ@ 1Àà„Uee1oÝbÞ½[‚?ÞÄÏo¼ŸŸÃ„ ¦\ ^‰†Nmm[fæÓŒŒ¿²²˜--cÆèúúŽóõµ›:Õ.»8HÌ MYYÌ´´G·n=íêâ››ëzyÙzyÙúøØA’~“Abc±:³³K²²Šoßf×Q($ww+////[GGS¸ è›3 Tyyùï¿ÿ.—ªÚÛy¥¥/ËÊ:JK_²X|!ÔØØ˜™™©««Ëãñ0 ‹‰‰qpp …l6[MMíСC555ÇŽ#‰l6ûðáÃt:=99¹ººúÊ•+¦¦¦!Ñ3¾àïïÏd2srr¬­­wìØ!³ðÖÖÖ#GŽàá‰/_¿~ÝÄÄDMMÍÏÏo÷îÝåååxyKK B¨¡¡Ab×îÞ½;zôhLÖsÏo?Ð_Þ¹sç¼yóž?Î`0\]]7mÚ„¯9sæÍ›7¯^½*ÝWxëEEEííí,«¤¤$00pòäɆ±X,2™VYYƒª¯¯¯Íf÷üéÈü úò‰÷ãˆ3 TßsAA†a\.Wb¹¸¸˜Ï禧§c6kÖ¬èèh Ú››I$Òž={ZZZ„Ba{{»@ ppp8yò¤¨ÚS§NI'fƒ¯‹‹³¶¶–YØs´|>?'''**ÊÑÑQUU566û'Ë666Jlœ­§§‡uŸ˜»{Kw‰ÙÎή¦¦_NKKsvvß™}…½z‡i‰äããƒÓÕÕõäÉ6›-233ñ %ú¤çOGæÑsb0” ÊO[[!D"‘$–BªªªÉÉÉ7nÜX´hBHGG'###''ÇÔÔÔÇÇ'++KEE¥´´ÔÙÙYT§“““tC6ÿßÞ½„¤³Åqñß !a¢ÑÃѦ ‚ 6–m‚‚,ªM´({(=°­Z¹Šˆ™E„‹ v­¢ˆÄŒ6"b‹B„¦dlˆ¼‹¹ ^Ç|vïþ—ïg5žæwΉ~sæt”JöB¥R±K­ßò…Ãaö_·´´,..z<³Ù<;;K„\./++s»Ýq!n·[¥R%¬-ýØÌÊËËÙ÷«Õj5÷r5’°­XÜŸ Ã\\\Ô××A’¤×ëÕh4MMM»»»±ß4ö’ôNÂŽø®s„Ä ýýý'''‡‡‡íííì5MÓ___GGG¡Phdd¤··7 UVVÞÝÝqQüªØá A^¯·¢¢"I!_45 ÷÷÷ìG‘HÔÝÝÍínX]]å^¨Öëõv»}}}]¯×Waʶò§§'.„Lscî««+¶œË”ü¶J‚¦i­Vk2™\.—Íf‹ýWaÊø‘N`˜„‚}uÙjµ²%"‘¨««ëøø˜¢(†aòòòòóóF£Édr:Á`ðììl~~ž_ÕÔÔ”Ï绹¹1›ÍÜ–!~áëë+»¤{-“Ɇ††t:Ýéé©ß¼œ™™á’èÒÒR0T«Õççç^¯·®®Î`0D"‘ÑÑQö†———`Œä!r¹œ ˆ½½=Š¢677¹çïëë[XXx||ôx<fkk+e[%ñññÁ0 I’4M///ñöö–^Ÿü-aGdTC2û€8é¯1s£Àï®'&&¤R)EQ\”ÃáP($IªT*§ÓF†±Z­µµµ2™¬­­mŸà­1oooWWW—””LNNÒ4°0úÏeÝØëÏÏÏ•••ÆÆF©TZSS377ÇÞÏzŸžžnhhH$ …Âb±tttètºh¢s„S†¬­­Éår…Bát:¹û)Š.,,,.. ‡Ãüý`ü¶"mÖbmllUUUÙl6½^_ZZWaÊÞáwDJDVkÌ8 WZ­– ˆ9öÑb±$[ø|>ŸR©ä~™Ç}LRøƒ†q¹\­­­ÿjHœ,Úê?&‰ûã‘>œÇ ‘HäùùyggÇn·ÿîgÉI’™¦Ø,B8t[¥„5fA¸¾¾nnn6¹ÔSPP0>>žNáŸë§ÚJ˜0• «œÊ†ÿ“즲1b$fAb$fAbìcÈ•X,>88ˆ=€õëWÆyÛ¥rå÷ûooo÷S€àˆÅâžž‰D’Q3€€`@@˜‰@@˜ä/އú;¾« zIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2ns.png0000644000372000001440000000060412502417165022107 0ustar robertousers‰PNG  IHDRÚ}\ˆKIDATxíÝ1K1Àñ­ž ØG•â‚n‚Šà ‚âælÁE¿€‹“ (nºêââêäࢋƒÐMAá@°‹ µât¾ÄK¡à%Ü•Û ý]BIïå%áuÍ…a™€,e × v¯ç¥«ˆi‹º¨Õö–î\tòòuénÄ0ã æÜÉoV\Ì$G.&@Y=ÆË%$um·¢ûÛ6–'Úß«9Qó\bÙ)²º0Ðë-Zœ¥TèHÍ`pÀcsm µö5:>Áë‡Þ¦I µØ ‚F‹Çà]» ›jg—ìoÏáõ©[ œõ š­onë €Ô¬¨vqõ„?\Ðç”  6»øüÒTe ÃÉéŸeç ÀÅlQ ¡c”€ª¬ü3*d€ÅWTMÏ\rÿÿh6™ø1±F ‹°fžIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryResult__inherit__graph.png0000644000372000001440000001506212502417165032167 0ustar robertousers‰PNG  IHDRË»D»ý¥bKGDÿÿÿ ½§“çIDATxœí{TSWöÇOH@y"h+ ƒ¥¨­è(>FaPǵê( XAkµkFÒZ×ø¨¥§®QDQÄT ˆ/:‚‹¢EQkDÐê"ò  „¼îï;+“›5‡¿ýYüq²ïÉÞûœûÍ9çž{ChA À†™©†9 0/ 0/ 0/ õëׯ—H$¦Êêx{{ïÝ»WÝBS¿–ÌÍÍ ðÄ€á@SSSEE…ÆîC»^nnî@¥ +ÈJÃë0/ 0/ 0/ 0/ƒNauuu4͈{zz¸\î|`mmýÑGíÚµK.—d&ê~hT¼}ˆ×Êa€¡¸–NtwwO:ÕÉÉ)99ÙÍÍíþýû[·n-...))¡ÓéÚõëëë§NÚÑѲ±±ùꫯŒžÒõë×Çot·Ú @[ ‚P#''GÃ2ðÔÖÖ1‡„„„€€¹\®²ˆD¢wß}÷ðáÃ]Û'B¨¶¶Ö¸þ ‰;0PêçMfI–™™éíííè蘔””••5~üøÑ£Goݺ!´qãÆ˜˜²¦H$b±XwïÞE?Þ××wĈnnnYYY!¥R™ššêíímmm=}úôÒÒRõ‘œØ 'L˜Àf³7nÜØ××GiD¯ÎêåìììmÛ¶©W–––\.7;;›ÒÕ´iÓBÎÎÎ~ººº>ýôSWWׄ„ò¶Fûñǽ½½íììRRRÈš.\˜4i‹Åâp8IIIvé¹sç\\\:;;B§Nzï½÷zzzärùöíÛÇçèèÕÕÕEV–Éd\.×ÉɉÍfs¹\™L†©-Ú§ìMèWƒÚ „ÂÃÃ…BaFFB(44T(¦§§#„:::ÊÊÊìííe2AÙÙÙ>>>J¥R$YXX‰D …¢¬¬Œ4j(Lׇ¼³³ÓÕÕÕ××—<åAL˜0!??Ÿ,ÿþû者——ŸÏ'ËÅÅÅ~~~8ÚByÊtuµ*®¶~ÞðZÒÚÚ!dnn®QFÑéô¥K—æççwtt”””DFF"„lmmKKK+**\]]gÏž}íÚ533³úúz???•O___í@žžždÁËË«¹¹YQggçÊÊJ {eeå”)S wõìÙ3…BáîîN¾ôððPÕ3fŒzÛ™LfMMMppð”)SŽ;FéM{¦Ê666öÁƒëÖ­#-OŸ>U¥çíí½dɲÜÐÐÀápÈëÐÀÀÀ'Ožàh å)£ô©,»!!!¹¹¹3gÎ$ç>±X¬T*OŸ>-bbb/^,\\\îÝ»§z׃´]‘>„PMM ÙºŒ”DFFîܹS¡P¨,===ÉÉÉÁÁÁ†»rrr¢ÓéõõõäËÇ»¸¸eN‹Å¡¡¡\.—Ç㥥¥éIL›¦¦¦ÔÔÔùóçoÚ´‰´Œ3¦¡¡,WVV~÷Ýwd™€U#_EE¦¶hŸ²×jÑéw”Ó©})Ër¹œÍf;99=z”<$‹GŒqæÌ™öööC‡1B,ïÚµ‹ÍfŸ={–ÏçQ®ÃæÎ[[[{ëÖ-OOÏmÛ¶Q ë0‚ ^¾|9a„ٳgÕÔÔäççûøøÌ˜1C"‘èñO®Ôg™ˆˆˆyóæÕ××WWWûøøAµÛÞÙÙI£ÑŠŠŠzzz¾üòK„ÇÓ˜%¯_¿Î‚  Åüùó¿ýö[@àìì|îÜ9‚ ¶oßîëë[]]]]]=cÆŒµk×’N6nܸ|ùò†††{÷îùûûþùç8ÚByÊô Øë0ý #">>~äÈ‘B¡Pݹ»»;“Éôòò*,,$B*•îܹsüøñVVVÓ§O?yò¤¶Â222Þyç‡ 6ˆÅbJ£Fj\¥‹D¢M›6Mœ8‘Åbùøø$&&öööêò/“ÉfΜiee¥áG ¬\¹ÒÞÞžÃáüõ¯%ƒR¶ý‡~°³³;vlZZZxx8›Í6d¶oß¾>ø@*•QPPÀápD"IHH3fÌèÑ£ÃÃÃ;;;I'B¡põêÕ¶¶¶ööö±±±===˜Ú¢}Êôc4…–-["""^ë-Ê ÜÎ1âÏÀoác´…R?ÆßÓ—H$­­­™™™§N2ºs`Èaü•þÍ›7?üðÃèèè9s漟Q£FÅÅÅb4¢ÿ!Ê`n ÅSÔ„Žåè‡R?ƒîÙ `˜ ð ð ðB±[qèСÏܹs‡Âª¾9ö믿R>ù 0v66Á¦ÎbP3nÜ8WìMΖ-ùÇŽ]+(Øàïïfê\† °3¹\YPðB¨ €j.t 3”²²GB¡!”—Ç“ÉýÖH@a†’ŸÏ#©½½}¿üòÈÔé @aÑÛ+½též\®@Ñé´¼<˜( f%%T3£\®üùçêžž>Ó¦4T…Ä™3¿©eZ.W\¾LñÌ7  (¬ººzKK)êÛ:´¼¼ßL–ÐÖ?EEU¥RYVöŸÎΓä3´…õÏéÓ¿)•ûÒ.ÜÓ6€Âú¡­íåÍ›õÚw>‚8sæ¶IRZ€ÂúáüùJ:¢—”Jâ·ßžòù]ŸÒÐÖyywÈm0m?e? óÿöö˜™!g4Y–Ë•‰ÌÊÊBuvÅúž­x ΫŒ?ÞÚºÇÔ‰ %`–ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 0C.—kê6áÂÌŒea1ÎÔYà‚Édþúë¯F׃ñÿkCCôiÓþö·¿Ý3€•ÐÐЖ–£»ÅòŸ‚ÇŽ‚Ã30ä€u€P€P€P€—á©°ºº:šú/޾45FŽ9cÆŒÊÊJ£xÖ•§zD[[ÛÐÐÐööv£Dx†§ÂŒÎõë×ù|>ŸÏ¯ªªòôô #Œú[*õõõÚ[[[‹‹‹›››7lØ`Äp ü®‘A8:::;;#„œSRRœœœÚÛÛÙl¶±ü+•Ê/^PFäp8ÉÉÉ‹/6V¬ÆdcFËÌÌôöövttLJJÊÊÊ?~üèÑ£·nÝŠÚ¸qcLL YS$±X¬»wï"„Ο?ïëë;bÄ77·¬¬,„R©LMMõöö¶¶¶ž>}zii©ú¼CNC………&L`³Ù7nìëë£4¢Wç,=󬹹9“É=ú¿?§%“ɸ\®““›Íær¹2™Œ2OýΧM›†"%¥ NW©ùÂ… “&Mb±X'))‰4j‡Ó•˜ 0ú]‚~«!„ÂÃÃ…BaFFB(44T(¦§§#„:::ÊÊÊìííe2AÙÙÙ>>>J¥R$YXXûì³Õ«W«’œœ¼lÙ²ÆÆÆªªªÉ“'oÞ¼™2OUJª¬( …Bá£GæÌ™³sçN‚ „B!“ÉŒŽŽnnnÎÎÎF=þœ2ebýž‘œœÃNòk`J…ñx<‚ ¤R©F¹¶¶V.—;;;_¹r… ˆ… &%%!ÌÍÍwïÞÝÙÙ©T*»»» …ϱcÇTn?®­°ªª*òhNNއ‡¥QªêXYYýþû画^^^|>Ÿ,ûùùQæùº SgÔ¨QµµµAôõõ=|øP$)в²2²¥”á(ë÷ŒàP˜)WúÖÖÖ!sss2BˆN§/]º4??¿£££¤¤$22!dkk[ZZZQQáêê:{öìk×®™™™Õ××ûùù©|úúújòôô$ ^^^ÍÍÍzŒº O0A===qqqÑÑѪC ‡¼î |òä ežêÞ´5¤?âW_}õ§?ý‰ &“YSS±X¬T*OŸ>-bbb/^,\\\îÝûßÕ>xð@Û9B „jjjÆŒ£ÇØ/,ëÓO?}ðàJ%*5tvvVTTPæIV–Ëå¡×ºÁÌb±Ö®]ÛÔÔôüùs±XÊåry<^ZZYAW8íÄ jD¯ÂärùÎ;W®\IZh4ZPPP^^žP(”J¥æææ,+::šËå¶µµýüóÏ›7oÖvõÅ_ÔÕÕݾ}{Ë–-+V¬Ðe|ùò%¹(Ô(k0jÔ¨îîn‘HD¾\ºté×_ýôéÓªªªàààýû÷Sæiccƒ:qâ„P(Ü»w/¥g•O„P{{{[[[[[[cccrròرcûúú¤R)“É‹ÅÛ·oGuwwS†£LìµÏQ0ú¼kø:Lõ ÓUŽ9r¤P(T½+''ÇÝÝÉdzyy!•JwîÜ9~üx++«éÓ§ŸùÄßßßèn¿[1Œ‰ŒL/-}ô¯E„„|dê\† °3”®®Þ«Wk¢ðLËPf(çΑß/"®]ûO{{·‰³:€Â åÌ™Û䊂F£]¸p¯ßú (Ì Z[»îÜyªT*BJ¥òôéÛ¦ÎhÈ 3ˆÂ»tºB4„R‰îÝkjj˜:©¡(Ì NŸ¾­P(T/ ³Â»&Ìg 럚š¶Gøê»:r¹"7&Jƒ…õϹs•æætu A ººgñM•ÒÖAääÜ’Év&“¥!€Âú¡ªª¹¥¥SÛ.•ÊOŸ¾ wDúÖgÏòÌÍ©ïÞ¶¶vñxœÏÖ<…BÁd2´ÿ¢]¼hœ$6Œ¤ß5<ÄÇÏ}ñâ¿_”mjܸñ84ô·½gÎô4Q^Cx¶â58w®2>þxkëS'2”€YÀ ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À ( À‹AÿQ*•þôÓO‰w6ƒœû÷…¡C‡™:Óãéé9wî\ƒª——‡9a`ˆÁ`0 QAar¹!TZZŠ9m`hðË/¿|óÍ7V†u€P€P€P€—!£°––C/ `îܹ---ú-"‘HÒÓÓcbb,X°nݺüQý—(Å\5þüç?þùçuuuFñlÜŽÕ~ä­èíí]·nMll¬‹‹Ë“'OŽ9rçÎÝ»w›™ùÓ›ššÊápÈ ÙÙÙß|ó͉'h4š±üóùüøøøÂÂBc9$2cØàäĉ666{öìñ÷÷wuu 8xð ŸÏ¿xñ¢ÑcÙØØØÙÙÙÙÙ¹ººÆÇÇ777¿|ùÒˆþ•J¥P(4¢Cc*lîܹEEE«V­úøãOžù¤¤¤DWhm?äQKÙKÐétƒaii©'7íVèïÏ>û !´téRCºÈpŒ<†Ý¹sçÀ±±±‡¾qãÆ‘#GÖ­[—••% gÏž]^^N®QÊËË9އ‡‡D"Ù±cÇÇüÓO?­\¹2%%E"‘\¼xñĉkÖ¬ÉÊÊŠŠŠúþûïµ={öûï¿ßµk×Í›7Ož<©Ëhcc“@U/ë2%„Й3gø|~zzú?ÿùOwôèQ‘H$<<<4yòD—m?¤=77wóæÍ111Ú½¤JL,‹Åâ/^9r$00ÐÜÜ\—O]­ÐCZZB(??¿ß.z-Œ¬°°°0‹„Šˆˆ`±XÁÁÁ¡îîî‰'2Œªª*„PIIIPPF“ÉdAˆÅb&“|þüy ‹¼¼¼øøø€€{{{ÿ5kÖhZ·n«««··÷š5kŠ‹‹u----ZDU/ë2%„PQQÑ_|Áf³ÝÜÜââânݺEÖ×^ ¡g¦ËOllì¤I“>úè#í^"+¬Y³fáÂ… .\¾|ùåË—ÃÂÂôøÔÕŠÇÈ+}‹…b0e„™™Y@@ÀÕ«WÝÜÜîܹ³iÓ&„µµõž={Μ9sôèÑ÷Þ{/""ÂßߟÏç« nnnÚ\]]ɸqãÚÛÛõu¡þ£têeÊ”BmmmË–-SU³´´´²²²³³«««›ŸÇã}÷ÝwAAA䲆2%„P@@ÀáÇŸ={V__ÿå—_’'lÕªU !!áöíÛÍÍÍ'11Q*•.Z´ÈÊÊ !tùòåÞÞ^õÅ ¥ý½¤¥¥eoo¯X,Ö哲ºRRGåÓX èfff6kÖ¬ÿûß³fÍ"-L&ó믿NOOþüù˜1c¶oßÎd2àÅþýû»ººÈ…Ebb¢†«ùóçoÚ´I"‘Ì›7/22’œ5Œ¡®®®Ý»w“Ë/õrTTÔÈ‘#8ðìÙ3{{ûyóæ­X±BOJ¡˜˜˜ÔÔÔµk×Òh´Y³fÅÅÅ!„X,Ö¡C‡Ž=zàÀ––‡+VTWWïÚµkÛ¶m111iiiÙÙÙëׯ¿víé_ÛÆp¢ÝKÚ8::²X,¡PH.E´}R¶‚ÉdR¦Dâììüþûï/[¶ìÒ¥Koz†)0è7rsssÃÂÂŒòôNFFF[[ÛßÿþwÃßÒÒÒ²bÅ Ut—zŒ¦B.—×ÔÔüáxcoÐK ùôŽ+¹›%¥R)ŸÏ/**úË_þ2`AMƒÁxcy ¿^8…=|ø0..nÁ‚~~~oãÇÒÒrñâņ‡"Æê¥ÁÃ@Ï’À0`Î’ÀÿO@a^@a^@a^@a^ ÚÓ§Óé!¬ÏÚC R†`Ðn…D"¹téŽÇÏ!Š“““ž›Zê¤0xc`ààààåÿ®^zˆÚ¸öIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/uds__connection_8h_source.html0000755000372000001440000004510212502417162026177 0ustar robertousers MySQL++ Reference Manual
uds_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_UDS_CONNECTION_H)
28 #define MYSQLPP_UDS_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
40 {
41 public:
44  Connection()
45  {
46  }
47 
60  UnixDomainSocketConnection(const char* path, const char* db = 0,
61  const char* user = 0, const char* password = 0) :
62  Connection()
63  {
64  connect(path, db, user, password);
65  }
66 
72  Connection(other)
73  {
74  }
75 
78 
87  bool connect(const char* path, const char* db = 0,
88  const char* user = 0, const char* password = 0);
89 
98  static bool is_socket(const char* path, std::string* error = 0);
99 
100 private:
105  UnixDomainSocketConnection(const char*, const char*, const char*,
106  const char*, unsigned int) { }
107 
110  bool connect(const char*, const char*, const char*, const char*,
111  unsigned int) { return false; }
112 };
113 
114 
115 } // end namespace mysqlpp
116 
117 #endif // !defined(MYSQLPP_UDS_CONNECTION_H)
118 
Declares the Connection class.
bool connect(const char *path, const char *db=0, const char *user=0, const char *password=0)
Connect to database after object is created.
Definition: uds_connection.cpp:45
UnixDomainSocketConnection()
Create object without connecting it to the MySQL server.
Definition: uds_connection.h:43
Manages the connection to the database server.
Definition: connection.h:59
~UnixDomainSocketConnection()
Destroy object.
Definition: uds_connection.h:77
UnixDomainSocketConnection(const UnixDomainSocketConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: uds_connection.h:71
static bool is_socket(const char *path, std::string *error=0)
Check that the given path names a Unix domain socket and that we have read-write permission for it...
Definition: uds_connection.cpp:67
const char * error() const
Return error message for last error associated with this connection.
Definition: connection.cpp:185
Specialization of Connection for Unix domain sockets.
Definition: uds_connection.h:39
UnixDomainSocketConnection(const char *path, const char *db=0, const char *user=0, const char *password=0)
Create object and connect to database server over Unix domain sockets in one step.
Definition: uds_connection.h:60
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiStatementsOption__coll__graph.png0000644000372000001440000001433712502417165033034 0ustar robertousers‰PNG  IHDR¸ËRçÎÿbKGDÿÿÿ ½§“”IDATxœíyTSWÇo 1€ ­T†E;jÕSQ(ˆØN§nhÙ´™ñ¨D«§ƒ”ñà8:µ*«â‚KG¬¨¨-‹"Q«C€ª Ñ€d…lóÇcÒ¼ZH"ü>Ý÷Ë}¿ßïÝ÷ͽ÷½wóBR©T^ÙØ o   €À‚:ОräÈäää#GŽŒ;ÖÆÆæïÿ;B(66622’¨) i4Ú/¿ü‚:w··………‹‹Ë‘#GBJ¥rÏž=îîîÖÖÖ3fÌ(**ÒìꉞÿìÙ³ãÇg2™±±±z¨ç0¡YÎÉɉ'TB`iiÉf³srrôºš>}:BÈÁÁAËO{{û_|Á`0œãâ∛×$éèÑ£îîî#FŒØ¾}û€¶ùë¡`8N„PHHHGGGVVBhÉ’%ééé¡çÏŸ_¿~ÝÎÎN&“©Tªœœ¥R) ‡ –––ÆãñöïßO¥R…Bazz:“ÉÌËËkjjºpႳ³3BˆËå9…ÀÀÀššš²²2‹• ×¨R©ÚÛÛ333‰ôÔå¶¶6„Pkk«VþÅÅÅööö}ø'ªi–ÃÂÂüýýëêꪫ«===‰ ¡Å‹·µµeff"„^¼xÓtïl¼9&$”ÊÊJ•JÕÕÕ¥Uær¹r¹ÜÁÁáÊ•+*•êã?NNNV©T|>ßÌÌlÇŽmmmJ¥R ( ƒªÝ:tHW(ÕÕÕêÜX,–^coyö&”ÒÒRƒÑ‡¢.wuuQ(”{÷îö¼¼<"(B¨¨¨HóØqšÎB1•¡!dmm233Ó*#„(ÊÂ… óòòž?~ùòå°°0„­­mQQQYY™³³óìÙ³úé'2™\__?iÒ$µOoooÝ@nnnDa„ }u¡ÓéUUUZöªªªÉ“'ã»jiiQ(®®®Ä&‹ÅR×5j”æ±›&$”¾ >sæÌÉ“'gΜI (‰D©Tž:uŠÏçGFF~úé§|>ßÉÉéÎ;ê½îß¿¯ëŠøZ#„jjjˆ³Ò›Q/aaa‰‰‰š×8"‘(%%%((ß•½½=…B©¯¯'6ëêꜜœˆ2™l’'e »,ü¡GÝÍê-Ëår&“iooŸM|$‘H,,,rss[[[322,,,$ɶmÛ˜Lf~~>Ç+((Ð;Gñóóãr¹·nÝrss‹×kTõ2GQ©T/_¾?~üìÙ³ jjjòòò<<<>üðC©TÚ‡@ ê9G õ÷÷¯¯¯¿{÷®‡‡´·vè»é†Ö¥o¡¨TªÕ«W¿óÎ;šÎ]]]ÍÍÍ'L˜pöìY•JÕÕÕ•˜˜8vìX++«3f;vLW(YYYï¾û.ƒÁX³fD"ÑkTõ<©še•J% 7lØàééI£Ñ<<<’’’Äbqoþe2ÙÌ™3­¬¬´üðùüˆˆ;;;GGÇuëÖAA(ýÀ–-[BCC_k­¬µÙ‡ñÍèGWøF(oÇ 7©TÚÔÔtàÀãÇ;—!ŠIΛt¸yóæ”)S¾üòK__ß?âgøðáÑÑÑ8Æ~ô?8 ©ø`'Ož\ºté@GÊH$‡³dÉ’òvô(€Ñ¡X€P,@(º<ÎÈÈ0L `€p¡899Q(”·è¢‘FóF‰ÅÕÆN …¢~N4p øåñÛ…B¡œ8q+B¨º:‘L~+·0GéAii-Ÿ/âó…%%µÆÎÅ´¡ôàÔ©ÛT*ÙÌŒ|êT¹±s1-@(¿#•Ê.\¸#—+d2å… w¤R™±32!@(¿sõêµ8¤RÙÕ«Œ›IBùÓ§o«—È“H¤Ó§o7“„ÒMG‡ôòå_ %±©P(/_þµ£ÞÿÓ ¥›‹ï*•=î(•ª¼k¬|L J7¹¹·µî(©TªÜ\}º¡ „Pk« ¤„«T*5J¥ª¤„ÛÚ*0VV&!„Ο¯Ò{–D"?G×>¡ „ÐÉ“·µ&(J¥î¼€PÐÓ§mÕÕ ½ݹÓÐÔÔnø¬L·cþ€òü¹pÔ(ºz‚BÜs³°èþE'™L~þ\0jÝhù™ðôX›èèC¡ôôåÆNÄ´€¡À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €ÀÂo\;vì£G *•’ËŸ;‘^;vl}}½ƒA($iݺu3fÌ0pÜÁAiié®]» ÖŒó²¿éÓ§%ôÛŽ±Þ¹s  €À„`a¢B!i`kk»dÉ’ÖÖÖ×òP[[«þ;¯?ŽH$b³Ù'N´¶¶ž:uê¶mÛär¹áÓ0"&*„PII Çkjj*,,lll\³f±2S¦L)//OII©¨¨Ø¼yóÑ£GçÌ™£P(ôÖ¯¯¯g0D™N§oÚ´É€É*ƒƒâp8¯¬ÃårÕ›7nܰ±±y­(\.·¿Ž...ÎÇÇG.—«-B¡ð½÷ÞËÌÌèкp8£œ5ÓíQ4¡P(L&“(···ñÅ ÃÙÙ9..N*•öfT#“ÉØl¶½½=“Éd³Ù2™ !tþüù÷ߟF£9::&''5I$ÒÑ£GÝÝÝGŒ±}ûv˜““O¡PÔ---ÙlvNN1²œ={vüøñL&366¶³³súôé!ÔsèÑ›¤Þˆ¦ˆáµ‰ðz”ªª*@ÐÑÑñðáC__ßÄÄD⣰°0ÿºººêêjOOÏ„„½FͯuJJÊ¢E‹ž|xtt´±³0 ”?“ÉLKK3v†„`B°¡X€P,Œó»///{{{ÇÅD$²DYZŠŒˆ~ZZZîÞ½kø³f„‡‚ëׯohh0|\LêêìI$4yr‹±Ñ­­íœ9s ×=Š)sçNüy;B/®÷ömìtL˜£ôàܹ**•B¥’ÿýï*cçbZ€P~G¡Pž8qK.WÈåÊ'n)JcgdB€P~§¬¬žÏï^Àç oÞ4ôLÊïœ9SA¥v¯ ¦RÉgÎT7“„ÒMW—üìÙ*¹¼{›\®Ìϯ’ÉôÿrgBéæúõÿŠDš‘¨óÚµ‡ÆÊÇÔ¡tsút…Òã·Ÿ 9/FŸn@(!$u^¼xWë2G¡PÜÕêf†, „ºté¾zv¢‰\®(,¼oø|L B>}»—Wrso8Ó„‚^¾_¿þ_…BÏ£ ¥RyãFÍË—bÃgej€Pн{M}Ü„•Ë÷ï72Ó "„fŸ±nÝq„Ю]!j‹ Í9™¦ûÛcC¢)33*qèC€À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €À„`B°¡X€P,@(   €EWsÅÆÆ>xðÀˆÙ˜--!{ûfc'bdÜÝÝwïÞ­Þì!‰ô§?ý‰Éd#1À„xöìÙ¯¿þª© íw¸ûúú4)Àô¸víÚ·ß~«i9 €À„`B°0-¡<}úÔÏϯ¿¼ùùù…‡‡k½š{Ó¦M~~~OŸ>ÅO@Ó(‘HRSSCBBæÎžÝÕÕÕ_ ›2¦%”~§¹¹¹®®N½)îܹƒ³#Çûì³Ïˆ²••UHH÷ÏwïÞÍår9ÎÆ‹‹‹ÓÒÒ´ê¿Òá@3±¹P&Ož|íÚ5õfIIɤI“pvT*•DÙÆÆfÕªUDùçŸŽŠŠrss£ÓéÞÞÞ±±±ÅÅÅZõ_ép ˆX¯-??¿‚‚‚åË—ÏŸ?ÿرc—.] ùä“O8€úᇶoßNÔ”H$AAA\.!TRRzéÒ%„J¥:sæÌòåË?þøã¯¾úê—_~Ñìó‰Þ¾¸¸8""bÁ‚?üðƒL&ÓkD=‡­±Ã××÷ÚµkêÑçúõë³gÏÖ­©;âüíoC-\¸PëS–ŸŸ¯> ÞÞÞG«>B¨´´4***((hÑ¢EÇŽÓ­ —ËÓÒÒ,X°`Á‚´´4¹\þʶíc¯Ë—//_¾ü¯ýë‰'tcé6þð&=JEEEjjêªU«233KKK÷ïßsäÈ‘ŽŽŽÙ³g+ „Pqq±££#‹Å’J¥ óçÏ?qâDDDÄöíÛ¥Ré… >¼råÊ#GŽ,[¶ì»ï¾Ó ”ŸŸÿÝwßmÛ¶íæÍ›Dsë5Òéô¸¸8âSÍ2BÈÓÓS"‘£H$ª¬¬üðÃqŽqß¾}¡¼¼<-;›Í®¬¬\¼x1›Íæp8---ºõÅbq||¼››[NNNLLLfff{{»–ÃÜÜ\—žžþÏþ³²²2;;û•mÛÇ^?ÿüóÞ½{£££ÓÓÓf,½ÓZ¼‰P–.]J£ÑB¡¡¡4-((!$<==©Tjuu5BèòåË$I&“©T*‰DbnntîܹaÆ>}zõêÕ>>>vvvÓ¦M[¹r¥n ˜˜gggww÷•+Wöf´´´üä“OˆO5Ë!2™|ø²š)S¦p8œï¿ÿÞËËëÇ ½råŠVssóýû÷ÇÆÆÚÙÙÏCD"‘V‚‚‚µk×2™L—èèè[·n½²mûØkþüùVVVsçÎEi :zÿ üMþ†…F£!„¨TªV!D&“}||nܸáââRQQ±aĵµõ®]»rss³³³Ç:mÚ4Çb±Ô>]\\t9;;…1cÆ´¶¶öaì__ßüã‘‘‘šãŽ˜Z$•JKJJ|}}ÝÝÝÝÝÝ#""<˜––æïï¯YJ¥666îØ±C"‘¸¹¹éuÕÜܼhÑ"õ¦¥¥%Qè£mûØ‹Á`hÕT£·ñqV‹þÿ¿__ߤ¤¤÷Þ{ÏËËkäÈ‘¡ÎÎN¥R™ —˯\¹²eË–üü|ƒQWWçêêJìõèÑ#]W„€ìììú0ö———X,¾{÷îíÛ· áj¢P((ÊóçÏqM¥R%%%3†8‰Dš:uê¹sç´ªuvv&$$$$$̘1C&“躲±±Ùµk—““BH(òù|œzÛ‹ÔË?"¢^ßÚÚ'œ&ýÕãíí­P(:DôŸ!‰Äf³oܸ!‰d2•J6lؼyóRSS‹‹‹ù|þ­[·222t]íÙ³çéÓ§>ÌÊÊš3gNoF‘HtáÂâSÍr÷’ɳfÍÚ¹s§»»;NWÛ­¬¬B—.]‹Åºs‰D¢¹ùÎ;ï~ûí·eee<ïþýû©©©šÝ Q_&“Éår*•ÚÕÕEL#Äb±–CŸÌÌÌ–––úúú7æççã´íkíEÄÒÛø8±´è¡'F,Ïš5‹°˜››oÞ¼9==}ñâŧNÚºu«¹¹ùÒ¥K,X°wïÞðððÇGGGëº ذaÃ×_ýÁ„……õflooß±cñ©fYŸŸßãǵÆ›ÈÈÈ}ûö—'Z»888xyyiöó7n ÈÌÌ\±bERRÒĉ£¢¢´ê[YYÅÄÄ$%%-[¶ÌÁÁÁßßãÆZ###i4ZTTÔºuë\]]õ¾.˜{iÆÒÛø8±´Ð^²uëÖ?¾Ì ++«¹¹ù›o¾ÁßåéÓ§áááEEEz7û0±Ì@SýÜ£tuuñx¼‚‚‚¿üå/ýë0.ý,”DGGÏ›7óhoXZZ~úé§8FÀ0 ÈÐ¼í øÐ VÿÿK¥Òƒ–——óx¼1cÆøøø|þùç å•;ÂÜY“AÞ£ˆÅâèèè‡FGGgdd„……ÆÅÅ)•J½õ{[] òåðáÃt:}çÎd2!äììRÓÛê`÷(………Ë–-#TB`aañùçŸê]´ÐÛê¡P˜œœüÙgŸ§¦¦«ÚtŸïb³Pˆ§!š X,Ö“'Oˆ²Ö¢…ÞV|ÿý÷­­­iii)))åååÇ'ìZÏ÷ø€ŒÉ`JoH$õEïJ-ärùÕ«W׬Yãèèèââ²bÅ uÍ>žï2³P¬¬¬FŒQ[[«e¯­­7nQÆY´ÐÖÖ¦T*GEl:99©köñ|1˜…‚ 8|ø°æ5ŽT*=~üø|@l666…>-ØÚÚ’ÉdGl655ú@}>ßd r¡,_¾¼­­mýúõ·nÝjllüé§Ÿbbb †úXïJ­ÕT*ÕÏÏo÷îÝ<ï·ß~Û¿@@€¡ÄØ ò>“F£edddgg§¥¥5559::úûû›™™ˆE R©Ôßß?,,ŒB¡èÿóŸÿhúY»víž={V¯^mfföÑG©×< †î³¸ñÚð¬xC†®P`ÑÂk1t…B§Óׯ_oì,Þ†®P€×„`B°¡XhßGqqq±µµ5bB€)ÐÖÖV__ßëëCׯ_ßÐÐ`ð¬Sdþüùš›$ÌßgC˜£X€P,@(   €ÅÿAìpõ³|}VIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BeecryptMutex.html0000755000372000001440000001651412502417163026771 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BeecryptMutex Class Reference

Wrapper around platform-specific mutexes. More...

#include <beemutex.h>

Public Member Functions

 BeecryptMutex () throw (MutexFailed)
 Create the mutex object. More...
 
 ~BeecryptMutex ()
 Destroy the mutex. More...
 
void lock () throw (MutexFailed)
 Acquire the mutex, blocking if it can't be acquired immediately.
 
bool trylock () throw (MutexFailed)
 Acquire the mutex immediately and return true, or return false if it would have to block to acquire the mutex.
 
void unlock () throw (MutexFailed)
 Release the mutex.
 

Detailed Description

Wrapper around platform-specific mutexes.

This class is only intended to be used within the library. We don't really want to support this as a general purpose class. If it works for you as-is, that's great, we won't try to stop you. But if you run into a problem that doesn't affect MySQL++ itself, we're not likely to bother enhancing this class to fix the problem.

Constructor & Destructor Documentation

mysqlpp::BeecryptMutex::BeecryptMutex ( )
throw (MutexFailed
)

Create the mutex object.

Throws a MutexFailed exception if we can't acquire the lock for some reason. The exception contains a message saying why.

mysqlpp::BeecryptMutex::~BeecryptMutex ( )

Destroy the mutex.

Failures are quietly ignored.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/refcounted_8h_source.html0000755000372000001440000010002212502417162025155 0ustar robertousers MySQL++ Reference Manual
refcounted.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2011 by Educational Technology Resources, Inc. and
6  (c) 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_REFCOUNTED_H)
29 #define MYSQLPP_REFCOUNTED_H
30 
31 #include <memory>
32 
33 #include <stddef.h>
34 
35 namespace mysqlpp {
36 
44 template <class T>
46 {
48  void operator()(T* doomed) const { delete doomed; }
49 };
50 
51 
78 
79 template <class T, class Destroyer = RefCountedPointerDestroyer<T> >
81 {
82 public:
84 
90  counted_(0),
91  refs_(0)
92  {
93  }
94 
100  explicit RefCountedPointer(T* c) :
101  counted_(c),
102  refs_(0)
103  {
104  std::auto_ptr<T> exception_guard(counted_);
105  if (counted_) {
106  refs_ = new size_t(1);
107  }
108  exception_guard.release(); // previous new didn't throw
109  }
110 
112  RefCountedPointer(const ThisType& other) :
113  counted_(other.counted_),
114  refs_(other.counted_ ? other.refs_ : 0)
115  {
116  if (counted_) {
117  ++(*refs_);
118  }
119  }
120 
126  {
127  if (refs_ && (--(*refs_) == 0)) {
128  Destroyer()(counted_);
129  delete refs_;
130  }
131  }
132 
141  {
142  // The create-temporary-and-swap idiom lets us keep memory
143  // allocation in the ctor and deallocation in the dtor so
144  // we don't leak in the face of an exception.
145  ThisType(c).swap(*this);
146  return *this;
147  }
148 
157  ThisType& assign(const ThisType& other)
158  {
159  // The create-temporary-and-swap idiom lets us keep memory
160  // allocation in the ctor and deallocation in the dtor so
161  // we don't leak in the face of an exception.
162  ThisType(other).swap(*this);
163  return *this;
164  }
165 
171  {
172  return assign(c);
173  }
174 
181  {
182  return assign(rhs);
183  }
184 
186  T* operator ->() const
187  {
188  return counted_;
189  }
190 
192  T& operator *() const
193  {
194  return *counted_;
195  }
196 
216  operator void*()
217  {
218  return counted_;
219  }
220 
224  operator const void*() const
225  {
226  return counted_;
227  }
228 
230  T* raw()
231  {
232  return counted_;
233  }
234 
236  const T* raw() const
237  {
238  return counted_;
239  }
240 
245  void swap(ThisType& other)
246  {
247  std::swap(counted_, other.counted_);
248  std::swap(refs_, other.refs_);
249  }
250 
251 private:
253  T* counted_;
254 
260  size_t* refs_;
261 };
262 
263 
264 } // end namespace mysqlpp
265 
266 #endif // !defined(MYSQLPP_REFCOUNTED_H)
267 
T * raw()
Return the raw pointer in T* context.
Definition: refcounted.h:230
~RefCountedPointer()
Destructor.
Definition: refcounted.h:125
RefCountedPointer(const ThisType &other)
Copy constructor.
Definition: refcounted.h:112
void swap(ThisType &other)
Exchange our managed memory with another pointer.
Definition: refcounted.h:245
Functor to call delete on the pointer you pass to it.
Definition: refcounted.h:45
RefCountedPointer(T *c)
Standard constructor.
Definition: refcounted.h:100
void operator()(T *doomed) const
Functor implementation.
Definition: refcounted.h:48
const T * raw() const
Return the raw pointer when used in const T* context.
Definition: refcounted.h:236
ThisType & assign(const ThisType &other)
Copy an existing refcounted pointer.
Definition: refcounted.h:157
RefCountedPointer< T > ThisType
alias for this object&#39;s type
Definition: refcounted.h:83
T & operator*() const
Dereference the smart pointer.
Definition: refcounted.h:192
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:80
ThisType & assign(T *c)
Sets (or resets) the pointer to the counted object.
Definition: refcounted.h:140
T * operator->() const
Access the object through the smart pointer.
Definition: refcounted.h:186
RefCountedPointer()
Default constructor.
Definition: refcounted.h:89
ThisType & operator=(T *c)
Set (or reset) the pointer to the counted object.
Definition: refcounted.h:170
mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemysqlpp_1_1internal.html0000755000372000001440000000646112502417164026635 0ustar robertousers MySQL++ Reference Manual
mysqlpp::internal Namespace Reference

Namespace for holding things used only within MySQL++. More...

Functions

void str_to_lwr (std::string &s)
 Lowercase a C++ string in place.
 
void str_to_lwr (std::string &ls, const char *mcs)
 Copy a C string into a C++ string, lowercasing it along the way.
 

Detailed Description

Namespace for holding things used only within MySQL++.

mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x72.html0000755000372000001440000001473412502417165024664 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReconnectOption-members.html0000755000372000001440000001210512502417164030723 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReconnectOption Member List

This is the complete list of members for mysqlpp::ReconnectOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine-members.html0000755000372000001440000002565012502417164032430 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ssqlsxlat::CommandLine Member List

This is the complete list of members for mysqlpp::ssqlsxlat::CommandLine, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLine(int argc, char *const argv[])mysqlpp::ssqlsxlat::CommandLine
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
extra_args() const mysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
input() const mysqlpp::ssqlsxlat::CommandLineinline
input_source() const mysqlpp::ssqlsxlat::CommandLineinline
operator void *() const mysqlpp::CommandLineBaseinline
option_argument() const mysqlpp::CommandLineBaseprotected
option_index() const mysqlpp::CommandLineBaseprotected
output() const mysqlpp::ssqlsxlat::CommandLineinline
output_sink() const mysqlpp::ssqlsxlat::CommandLineinline
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() const mysqlpp::CommandLineBaseprotected
pass() const mysqlpp::ssqlsxlat::CommandLineinline
print_usage() const mysqlpp::ssqlsxlat::CommandLinevirtual
program_name() const mysqlpp::CommandLineBaseinlineprotected
server() const mysqlpp::ssqlsxlat::CommandLineinline
SourceSink enum namemysqlpp::ssqlsxlat::CommandLine
ss_ssqls1 enum valuemysqlpp::ssqlsxlat::CommandLine
ss_ssqls2 enum valuemysqlpp::ssqlsxlat::CommandLine
ss_table enum valuemysqlpp::ssqlsxlat::CommandLine
ss_unknown enum valuemysqlpp::ssqlsxlat::CommandLine
successful() const mysqlpp::CommandLineBaseinlineprotected
user() const mysqlpp::ssqlsxlat::CommandLineinline
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x7a.html0000755000372000001440000001005512502417164023717 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- z -

mysql++-3.2.2+pristine.orig/doc/html/refman/index.html0000755000372000001440000001067412502417164022166 0ustar robertousers MySQL++ Reference Manual
MySQL++ Reference Manual

Getting Started

The best place to get started is the user manual. It provides a guide to the example programs and more.

Major Classes

In MySQL++, the main user-facing classes are mysqlpp::Connection, mysqlpp::Query, mysqlpp::Row, mysqlpp::StoreQueryResult, and mysqlpp::UseQueryResult.

In addition, MySQL++ has a mechanism called Specialized SQL Structures (SSQLS), which allow you to create C++ structures that parallel the definition of the tables in your database schema. These let you manipulate the data in your database using native C++ data structures. Programs using this feature often include very little SQL code, because MySQL++ can generate most of what you need automatically when using SSQLSes. There is a whole chapter in the user manual on how to use this feature of the library, plus a section in the user manual's tutorial chapter to introduce it. It's possible to use MySQL++ effectively without using SSQLS, but it sure makes some things a lot easier.

Major Files

The only two header files your program ever needs to include are mysql++.h, and optionally custom.h. (The latter implements the SSQLS mechanism.) All of the other files are used within the library only.

If You Have Questions...

If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list, which you can subscribe to here: http://lists.mysql.com/plusplus

That mailing list is archived, so if you have questions, do a search to see if the question has been asked before.

You may find people's individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Questions that are about MySQL++ usage may well be ignored if you send them to our personal email accounts. Those of us still active in MySQL++ development monitor the mailing list, so you aren't getting any extra "coverage" by sending messages to those addresses in addition to the mailing list.

Licensing

MySQL++ is licensed under the GNU Lesser General Public License, which you should have received with the distribution package in a file called "LGPL" or "LICENSE". You can also view it here: http://www.gnu.org/licenses/lgpl.html or receive a copy by writing to Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1SQLParseElement-members.html0000755000372000001440000000574412502417164031010 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLParseElement Member List

This is the complete list of members for mysqlpp::SQLParseElement, including all inherited members.

beforemysqlpp::SQLParseElement
nummysqlpp::SQLParseElement
optionmysqlpp::SQLParseElement
SQLParseElement(std::string b, char o, signed char n)mysqlpp::SQLParseElementinline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalFilesOption__coll__graph.png0000644000372000001440000001347712502417165031713 0ustar robertousers‰PNG  IHDR»»²òx=bKGDÿÿÿ ½§“ôIDATxœíÝyTSgúð' QYd‹aµŽTÔÚQ žq£(¥v:uj­‚3#ŽÅÔÑÓ¡ Ç£à±uœ¢‚ T *È""Ò(–‚ ˆÔ6– TH!íþþ¸þÒr“XžÏñ7onÞ÷½7_î{ïM⥠ÝÐ@¯L ¢ƒ¨ÁÄ j˜úé&22òþýûúékl [³f:¢éç\‰F£yyyMž¹˜f988ØÇǧ¡¡¡ººÚÃÃìÖ¬YÓÙÙ™œœ Ïž={áæõ÷÷÷÷÷ö»ñRŒ+1•••AÈd2­r]]B¡°··¿víAË—/‹‹#¢££ÃÄÄäÀ*•ª»»[©Tº»»ûí·êfOž<901ÕÕÕä³ééé\.Wgå`ã,1%%%l6{ˆöÉuY&“1Œ{÷î‘õÙÙÙd§ 4×ýW¿‰1¢Y ,,,ÀÄÄD« cÕªUÙÙÙ?ÿüóÕ«WƒƒƒÀÚÚZ ”––:;;/^¼øæÍ›t:½±±qöìÙê6gÍš5°#WWW²0sæÌæææ!*²²²²··¯ªªÒª¯ªªš3gÎð›zòä‰R©œ6mùË媗tttÔ\w£b\‰š¿¿NNNFFÆ‚ ȹF"‘¨TªóçÏwtt„„„|øá‡NNNwïÞU¿ê§Ÿ~Øù‡µµµäÛ3X¥NÁÁÁ±±±šgF===ñññ~~~ÃoÊÎÎŽÁ`466’œœœÈ2nÄï‹~ve0¼YI½ÖYV(ÇÎÎ.55•|J"‘Œ?>33³½½ýرcãÇ—H${÷îåp8.\ …:c¼½½ëêêÊÊÊ\]]£££uVƒÇñË/¿Ì˜1cñâŵµµÙÙÙîîîøÃ¤Réíwwwýc‚‚‚|||üñGwww²ÓÁ¶ÃÆîqÌЉ!"<<|„ ]]]êW¥§§O›6ÅbÍœ9377— ™L;uêTssóùóçŸ9sf`bRRR¦L™Âf³·nÝ*‘HtVýß]Í2Ab±8**ÊÃÃÃÔÔÔÝÝ}Ïž=½½½ƒµ/—Ë,X`nn®ÕNGGÇúõëmmm¶oßNvЉ!ˆá%f8vïÞDé%Zï´ÖÃ!*Gf›>}&æµ¹‚'•J[[[Oœ8qöìYCeL3â#¬þnݺ5wîÜM›6-Y²äeÚ™8qbXXØp*G±ýßý}k3==¿ƒ÷ŠV?ßÚ|mö1ÈH`b5˜D &Q£¿³ëk×®‰D"½u7¦466º¸¸è©3ý\öy½~ÛÆdÚXYùzÔDEEéç­ÔÓÙõëe÷îìo¿½™“³ÕÓS_¸¯<ŽÑ¦P¨rrn@NN…¡ÇbŒ01Únܨéê’@VV¥\®û›Þc&F[vv%ùÞÞÞ¾ë×k =£ƒ‰é§·Wvùò]…B -+ '&m˜˜~®^ýI=)ªï¾û±§§Ï°C26˜˜~23okþ^Q¡P^¹¢ãKŸc&æW"Q¯@P£Tj^n eeÝ6Ø€Œ&æWÕZ5*•êÆÿuvöd<Æ ó«óço«T:®g^ºtw`嘅‰y®­í—[·^'"3³Ü C2N˜˜çòòª [C¥"nß~$âg¨ÏabžËʪ /à D—‡Ós¯Ío ^5:,ɲB¡’JåææãÔÏâU5üìZ‡‹«ÂÃO¶¶4ô@ŒÎJˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆ"ýÜÆI Ç3ôz…N77î Cb(,ëûï¿7È{g˜ÿïáÇ^^^Ÿ}ö™Azÿ hii1H×ûŸ'Ožìïïo¨Þшáq ¢ƒ¨ÁÄ j01ˆ£N Mƒµµu@@@{{;¥êëëiš·Øz9===<ï­·Þ²°°˜7oÞÞ½{ …þ‡aXFøá‡„BakkkaaassóÖ­[ 5’îîî¹sç–——ÇÇÇWTTìÚµ+--mÙ²eJ¥î»466²Ùl²leeµsçN=öU2ÈU ÿ.uuuê‡EEE–––”:ª««­uܱcÇÂ…  …ºF,ÿîw¿KNN~Õ]éé鯨ñ¡û>FƒÁàp8dY$}úé§l6ÛÙÙyÇŽR©t°J5¹\Îãñììì8Ç“ËåpéÒ¥·ß~ÛÔÔÔÁÁ!..Ž\’F£¥¥¥¹¹¹ÙØØìß¿Ÿ¬äóùÑÑÑäIfff<Ïç““NnnîŒ38Nddd__Ÿ——ØÛÛCÿYIç uöh¤ ’Óáïcªªªº»»»ººjjj–,YK>ìããÓÐÐP]]íáᣳRó=>>~õêÕ?®®®þýïÿ÷¿ÿ½««‹ÅbmÚ´©¹¹™ÏçÀÓ§OÉ~׬YÓÙÙ™œœ Ïž=ëìì€ööv­ÛÙÙ‘½øúúÖÖÖ–––r¹\­®5Ë:G>°ÇnCícŒ=1š&NœHNR2™ŒÁ`Ü»w\,;;›Ëåê¬Ô|«fΜ) ÉraaáìÙ³ûúúîß¿/‹•Jå7àÿ'AdGdå`‰)))a³Ùd/ÕÕÕdezzºV×ê²ÎAêìñ…[ÆP‰1öû+ÕÕÕq¹\èííý׿þõî»ï>zôèÉ“'J¥rÚ´iä2\.·¹¹Yg¥fS>tppP?´´´d±Xµµµ›7o‹Åo¿ý¶æÂŽŽŽ`bbB>´²²²··¯ªªZºt©æbUUUsæÌ!Ë®®®daæÌ™Z]« 1H­Ökscjjºy󿦦¦§OŸÚÙÙ1ŒÆÆFò©††'''•š-;ò¥³³³´´T"‘ðx¼ÊÊÊ#GŽh.L§ko™àààØØXÍ3£žžžøøx???ò!¹#€ÚÚZòíhˆAìÑ8û(ÛÛÛÛÚÚÚÚÚ?~?yòäI“&™˜˜FFF>xðàÞ½{_|ñEpp°ÎJͦV­Zµk×®GUWWûùù>|¸¯¯O&“±X,‰Dòå—_@ww÷`#‰ŽŽ~úô©Ïwß}WWW—““ãéééääA.°mÛ¶úúúòòòÝ»wüñÇd¥X,Ölä…ƒ| d.Áq NŸ5kVii)ùTGGÇúõëmmm¶oß.‘HtVjLtuumܸÑÚÚÚÖÖvË–-===A|ýõ×666“'O>räȺuë8Ñÿ¬^³,‹£¢¢<<+!cƒ‰'N 3ô(ô3 8Nbb¢¡G¡'˜D &Qƒ‰AÔ`b5û\©¨¨hÙ²e†êý…T*:®2ô(Œ‘acä¿TzölBm­õ;ï \Þ޵k×zzz¤kÃ\ó5rÁÁIAÍ¡CAþþó =£ƒÇ1ÚD¢Þ¢¢ZZNN¥¡ÇbŒ01Ú.^¬âæÍÿµ·úQö˜…‰Ñ–™YNÎÔ4íÒ¥»†ŽÑÁÄôÓÚ*ª¨x¤R©@¥R?_nèLL?¹¹w : T*¸{·©©©ÃЃ2.˜˜~Ο/×ü^&“IÏͽcÀñ!L̯jkÛjj„šW eFNLý`b~uñb•‰ C³†  ¾þIMÐPC2B˜˜ç‚HO/“˵DÍb1qbÒ„‰y®ºº¹¥¥s`½L¦8¾¯Œ«abž»p¡ÒÄD÷§l­­¢ÊÊÇzÑÂÄ<—“S©T*Y,æÀ´üü*CÐXû¯hõ&<ÜûÙ³ç¿Fkjê()iøõcÈ \ 4.£ƒŸ]ëpñbUxøÉÖÖƒ†ˆ1ÂY Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜DM¿ÿ£J&“;wN*•j4FâÞ½.8v옡bx®®®ÞÞÞýª YYY2RL&“è¯ß>F¡P€@ 0Ððq¹~ýú?ÿùO­J<ŽAÔ`b5˜D &Qct‰iiiÑ>{ ÞÞÞ---£Õôž·.êF¼"R©4111$$dùòåáááiiiš·|æØ^ü?Ã_JBB‚ƒƒƒf ƒÁX·n݈ìí툈°¶¶ stt|ðàÁñãÇoß¾ýÕW_Ñé:þ¼…Baxxxnn.˜››¿L×ĉy)VVV666Z•[¶lqƒ§N²²²úúë¯É|8;;Ï›7oãÆ|ðÁÀåU*UWWY¶´´|™®‡i$³’··wAAÁ† V¬XqæÌ™+W®¬[·îƒ>8qâ|óÍ7û÷ï'—”H$~~~uuuðÃ?„„„øúú]¹r‚ÈÉÉÙ°aÃòåËÿò—¿Ü¹sGs§Jîc‹‹‹×¯_¿råÊo¾ùF.—묄þ;äîœÅbq\\ÜG}äïïôèQ™L¦T*SSSW¬X±oß>±øù JJJ6oÞìçç·zõê3gÎ gãèì]¡P$&&®\¹råÊ•‰‰‰äu¯ ?ùäÍÝÉøñã×®][XX¨sÝÿüç?ÀªU«´º¸ŽäwõêÕ 6üéO:wîÜpVg ÇTTT=ztË–-ÉÉÉ%%%Ljˆ8}útWW×âÅ‹‹‹‹É©·¸¸ØÁÁËåJ¥Ò˜˜˜+Vœ;wnýúõû÷ï—J¥ùùù§N =}úô'Ÿ|²oß¾]¸paß¾}{÷î½uë–ú=XieeµcÇòYͲN‡jooOLLŒ///?{ölfffQQѾ}û<ØÔÔÄçó ··7::ÚÕÕ•ÏçGDD$''‹D"­¦¤R©DÃ`™™™B¡0))髯¾ª¬¬LMMÕ¹AÄbqGG—ËÕz9—Ë}üø±Îu?rädgg¿pÉúï¿ÿþðáÃaaaIIIÝÝ#¹›÷hjjêëë AAA¦¦¦~~~ÐÝÝíááÁd2«««àêÕ«¾¾¾4M.—!‘HX,–ŸŸ_^^Þ¸qã²²²ÂÃÃ.\hkkëéé:°£ˆˆggg77·ÐÐÐÂÂÂÁ*ÍÌÌÔ;mÍò@ …â¿ÿýïÖ­[\\\6nÜXXX˜ŸŸ¿iÓ&—©S§îܹÓÝÝX,ÖñãÇ###mmm9ôôôhµº\CYY™ÎN ¶mÛÆáp\\\ÂÂÂÊÊÊtnÁÆL£ÑÈ*¶A†³ŽäS+V¬077ï½÷@=Q2ÂãSSS`2™Ze Óé .,**rqq©¨¨ˆŠŠ ‹ƒfff¦¦¦NŸ>=((ÈÓÓS(jþ=¹¸¸ ìÈÙÙ™,¼ñÆíííCTSgg§J¥rtt$:99‘-¨Ûœ2eÊ”)SÈ5jnn>pà€D"quÕ}·>Ÿïää¤Y£óÔ¬­­mõêÕê‡fff:7ˆ¹¹¹M}}ýœ9s4_^__?}úôá¯û`ël64Þ¬x%g×K–,¹yóæõë×ß|óÍI“&@__ŸJ¥Š‰‰ÉËË[¾|ùîÝ»»»»ÙlvCCƒúU>ØTss3Yhjj²µµ¢r˜¬­­étºPøüf¡­­­l6ÛÖÖ¶­­¬©¯¯'g¥¾¾¾˜˜˜µk×;vìoû¥^´XZZòù|@ òòòŽ9¢sƒÀÒ¥KO:¥Þ£€T*={öì;ï¼3üu×¹Žd™F£½ÌŠÀ+J̬Y³”JåÉ“'Éi h4Ç+**êéé‘ËåL&sܸqï¿ÿþÑ£G‹‹‹;::ÊÊÊt~» !!¡¥¥¥¦¦&%%eÙ²eƒUöôôäçç“Ïj–@$uh`2™ÞÞÞÿþ÷¿…B!yîºtéR__ß”””}êèèøå—_²X¬ÀÀ@¥Ryøða‘HDNð{öìÑjjéÒ¥QQQR©ÔÇÇ'88˜Ü»jU€H$:pàyø¢Y€¿þõ¯š ‚mÛ¶%$$„‡‡›˜˜¼ûî»ÁÁÁ4M*•òx<©Têååæææ{öì™0aBPPÏ矞0‚ ’°yóf¶hÑ¢°°0LMM;–ššš˜˜ØÚÚêàààãããïïobb¢sƒ0Œ7ß|sõêÕ—/_Öìqà:Ž`Ø:õ»‡[FFF``à¨|Û!%%¥­­í‹/¾þKZZZ>þøcuïZ‡¨#ô¿îä·´îò7ú³’L& …üãG½qdp£Ÿ˜û÷…½ÿþû³gÏ~™vÌÌÌ>üðÃáTŽF²î¯jVB¿zš•Ðo&Qƒ‰AÔ`b5˜DM¿k¾ ôðÍ?ôº #¡©ßÙµT*½|ùò0¿UŠÆ;;;õG=$šÖÙ6BCÃãD &Qƒ‰AÔ`b5ÿ\r{K£fÄSIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/sync_off.png0000644000372000001440000000152512502417165022476 0ustar robertousers‰PNG  IHDRàw=øIDATxíÝKhTWÀñÿä1I&3™8M¦Iš™†I3Ú©b$cÌ I1V1±-(Tö±±Ð.* t!‚K[¥Ä¥ˆ„¨´f£`l(øl©"Y”¤6ÆgÌTú}·sgîܹ ±d{8?æÌ¹÷;çÜuíÚ`:!±F¬¢BäŠ?ŰÄm'yÊÅ>ÑlU¯½üý‰è_‹?€Œê ]€Y(ŠNñ±8fý1°Öqún-eâ¨øtºmâÈ Ó0}b›ù%·©µ×Œ®=Ÿ0´³?Š1sŸ‹0€¯8À‘;_ ‹W|%\ Zð— >舽ln¨p©.aÇ{ )t;Ú b nŸš¯›65°¢¡2çÅÔ?Žž>Oдàuönm¤¢Ì`×­Z¬WjC~>‘Ö¾0+á {{©fÝ×Mæ·æÅ•ìÙ¼˜` Ý›%uA6´½ÅÆö¨Á,]k¢ÄW¼™u±›]‹ˆ7§¯iòh€ ¶¶¬ÏÖu1 ló —Ҷ̺–:ÞÍ\ÄcãÏxøhR²Êè‡Qt$¿ß§¨ ª fdºü<4BÿÙ[•f¸d7=.Mé9/—éªÃëù/ÿO Üaàò}€,‘j?Ÿõ.5Úšm?œÿŸ®ŽXÿ2¬#¸d píæ(£?cÛú¼!½›a1¥Þ—ŽòØ©ܾ7dÔK:‚ùÒ‰ì)Ê3‚Ü™àÌà]€,±H€µ+køöäu<|`·LhC7¹ÔeÍ Ÿ×Ÿ˜tÜ‹ óH$^2%l.êaeÐäýE”ÌÉ|ÅÜìî‰Ýsä }¸ýDû^hzé~ðR›¦Ã¡¿]|#ü¯@×—Ö‡[k¹–<|š(Ç*€Ý¹dÇtMé:Ýñø«Ø,êÅû¢]”' øXÓ_nò¡Æ|Øý /c§fžâOIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/null_8h.html0000755000372000001440000001617512502417162022430 0ustar robertousers MySQL++ Reference Manual
null.h File Reference

Declares classes that implement SQL "null" semantics within C++'s type system. More...

#include "exceptions.h"
#include <iostream>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::null_type
 The type of the global mysqlpp::null object. More...
 
struct  mysqlpp::NullIsNull
 Class for objects that define SQL null in terms of MySQL++'s null_type. More...
 
struct  mysqlpp::NullIsZero
 Class for objects that define SQL null as 0. More...
 
struct  mysqlpp::NullIsBlank
 Class for objects that define SQL null as a blank C string. More...
 
class  mysqlpp::Null< Type, Behavior >
 Class for holding data from a SQL column with the NULL attribute. More...
 

Functions

template<class Type , class Behavior >
std::ostream & mysqlpp::operator<< (std::ostream &o, const Null< Type, Behavior > &n)
 Inserts null-able data into a C++ stream if it is not actually null. Otherwise, insert something appropriate for null data.
 

Variables

const std::string mysqlpp::null_str
 "NULL" string constant
 
const null_type mysqlpp::null = null_type()
 Global 'null' instance. Use wherever you need a SQL null. More...
 

Detailed Description

Declares classes that implement SQL "null" semantics within C++'s type system.

This is required because C++'s own NULL type is not semantically the same as SQL nulls.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalFilesOption-members.html0000755000372000001440000001211212502417164031016 0ustar robertousers MySQL++ Reference Manual
mysqlpp::LocalFilesOption Member List

This is the complete list of members for mysqlpp::LocalFilesOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption-members.html0000755000372000001440000001211712502417164031230 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadTimeoutOption Member List

This is the complete list of members for mysqlpp::ReadTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InitCommandOption__coll__graph.png0000644000372000001440000001360312502417165032067 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“8IDATxœíÝyXgð7‚¢åZTˆVjjÝG]äY¥"‚H·–j#—H*°]Q+Á•G‘²ÔŠÛ§}¶µ9´ ( €•zP¨ÅT+ËåÅ¡RB.rÍþ1Ý4&! 3„þ>OŸ>ï¼¼™ùÍ›og&ÔP0 CŒ0*Ù€?È ä rˆ@'»tòäɃ’]ÅXæêêúÅ_[…ôÏ›k×®­ªªrww'·Œ±êñãÇÕÕÕ¤¿ËäÏBîîîdW16]\ŸB@Î g€3@ÈB555Q(”a\¡P(är¹¯¿þº¥¥åÂ… ÷îÝ+—ËI©d”€œ ¿¾¾¾ ÔÔÔ¤¤¤ÔÖÖîܹ377×ÛÛ[¡PèßÒÒÂd2ñ¶••ÕŽ;,– £â¾Æ“””dccséÒ%†š5kÖŠ+ØlöáÇ#""´Ç+•Ê®®.¼Íd2÷íÛGh¹„0šã…B9tè«««Í¾}û²³³g̘1qâÄÝ»w#„bbbÂÃÃñ‘ÀÜÜüÖ­[¡ÒÒÒ¹sçŽ7ÎÙÙ9;;!¤T*8àêêjiiéîî^QQ¡~žÂO[%%%¯¼òÊ”)Sbbbúûûuv¢Ïqê휜œ„„ŸÏ`0>ýôÓîîn¥RÙ××§P(æÌ™óÍ7ߨV{äÈíœñx<ü§ùùù,Kgç@u”³ªª*&“©gýxª-•Ji4Ú;wðþ¢¢"|£¡ŠŠ õ}×?o£$gFsÞDYZZ"„ †F!D£ÑV¯^]TTôË/¿\¼x1$$!4iÒ¤ŠŠŠêêjGGÇ7ÞxãÚµkT*µ¥¥eÞ¼yªuÎ;W{C3gÎijgÏnmmÕÓ©ÍÊÊÊÖÖ¶®®N£¿®®nþüù†¯êéÓ§ …ÂÅÅ_d±Xª‘öööêûnŒ)gúq8œâââ‚‚‚Å‹ãgC±X¬T*Oœ8ÁçóÃÃÃßzë->ŸïààpûömÕ«îÞ½«½*ü ‚jhhÀßÔ:u IJJRÿt) SRR|}} _ÕÔ©Si4ZKK ¾ØÜÜìàà€·©Tã{׌¯â,Y²D.—'%%…††â= ÅÇǧ°°°··W*•2 ssó7r¹Ü’’’'Ož”••ýóŸÿÔ^Õ–-[šššjjjâãã×­[7PçóçÏñ‹EvBB³gϼ¼¼ÊÊÊ‹‹‹ÝÜÜ¢££õ¬_ ¨×À`0bbbîß¿çÎ]»váicEö‰{×gªk‘ÚQQQfff½½½ªWåç绸¸˜˜˜Ìž=»¤¤Ã0©Tš””4cÆ ww÷cÇŽ!­ë³ÌÌÌiÓ¦1™ÌÍ›7‹ÅbØ‹×ìêm ÃÁöíÛÙl¶¹¹ùœ9s’““E"Ñ@ë—Éd‹/¶°°ÐXŸÏ µ¶¶¶³³Û¶m¾Ñö} £äúŒü Ì™!âãッƒ‡ô|h,êé|9ø*’œ‘û´‰¤½½ýСCÇ'» Ã¹>ûá‡,X°qãÆ¥K—þžõL˜0!22ÒÎa\ÿÁ¨xn!ÏÓŽüyZÒßå1r<£ä rˆ9D÷5ZZZÒÓÓÉ®blª­­%»„Ð(¸ƒ÷ᇒ=CB±²ò¥Ó'“]Æ899‘ý&cäß×0.ÕÕÍ«WذaÉǯ&»c×gCS\\‹ÿ[.W’]‹1œ T*/*º…zþ\tõêÉ.ǘ@Άà»ïêE¢~„F-*××Fr6……µ4!$—+Ïã‰ÅR²+23C …ýçÏß‘Ë}J¶¿_^^þ3¹%È™¡ÔC†¢R)……?’Xqœª°ðGõÿÓS.WVTÔ÷öŠI,Ɉ@Î Âç ¯^mP(^¸—aØÙ³<²J2.3ƒœ>}[»ð'àÔiÈ™ANž¬ÑþʼnR‰UW7?}úœ”’Œ älpíí=µµ•J¿ £Ñ¨¥¥:u@älp¥¥uýX.W ÛÁŠç‚F9‘Hjg7Aµ(ôÇ ÓýOt,þU¼áÏk ™½ý¶´´°U«æ >üœ7 g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î!HýöOƒ\¿~ÝÄÄ„ìyú©©•jNv¿ár¹d¿Eƒ3‚¿OÛÖÖ&•J È.d4úì³Ïzô(++«¤¤„Ëå"„ZZZ˜L¦öx++«;v u+}}} ,¨©©III©­­Ý¹sgnn®···B¡Ð9^}ë/·Å1‚ìxƒËÏÏ7¤N++«êêjÕâ•+Wœœœ0 kllÆÝŒ]²d‰\.Wõ‚éÓ§gddè?¼[ׯáp8ÎÈ­¸ŒãÙ„ ¾þúë®®.|ÑÃÃãáÇ¡E‹!„lmmÑÿÏ\—.]rrrúæ›oTg1 …’››ëêê:yòäýû÷#„0 KKK{õÕW'L˜°lÙ²Ó§Oãƒsrrh4šj»ãÇçr¹999øÊKJJ^yå•)S¦ÄÄÄô÷÷koUOOÏ{ï½Çd2cccñS¼vcÙAœÇ³óçÏ;88˜ššz{{ÿûßÿ~ðàÞ¯~DÁÛ+W®¼|ùr]]ª!ôî»ïvwwgdd „ººº222ÊÊÊ:;;ËËËY,B¨»»!ÔÙÙ©±éÊÊÊ©S§â+÷ññihh¨®®f±X‰‰‰Ú[ÇÛ!!!^^^ÍÍÍ<Íf'&&ê,cн6–ãÙØÉ†ar¹¼ºº:))‰ÍfÓh´ÜÜ\LWÎx<žF?B¨¢¢Ã0©TŠjlld³ÙøËqÇŽÓ“³ªª*&“©¾r¼l‹¥3gR©”F£Ý¹sï/**b±X:Ët—%gcä¼) óòòBnnn»wïæñxñññqqq:Ïž=[»ÓÞÞ!Ä`0ðÅææf6›­ú髯¾Š²²²²µµÅ„êêêêæÏŸ·gΜ©ÚJkk«Îž>}ªP(\\\ðE‹¥©QƘ1Fr†aXppðO?ý„/R(”+V t»Aç»H¥¾0Ó¦M»{÷®jñÞ½{x#$$$))IýÓ¥P(LIIñõõÅñƒB¨¡¡¶©S§Òh´––|±¹¹ÙÁÁAgcÆÙ+ ‹õëל9s¦¥¥åûï¿ R CZá|wáÂ…®®®Ë—/'&&â—ð Ïž=óòò*++kll,..vsssppˆŽŽÆ_¸eË–¦¦¦šššøøøuëÖéÜ:ƒÁˆ‰‰¹ÿþ;wvíÚò»öô#ûÄ=8¯ÏärybbâܹsÍÌ̦OŸ¾cDZXŒa˜L&[¼x±……¦ëZ o#µ‹!¼­P(>ÿüs—‰'úúú–””ØØØàÁöíÛÙl¶¹¹ùœ9s’““E"‘j…™™™Ó¦Mc2™›7o‹ÅmÏ燆†Z[[ÛÙÙmÛ¶ /U»ŒA÷ÚX®ÏÆNΆWiii]]jñäÉ“óæÍÓÿ’‘¾U¦“±älŒœ7‡Ç[·nÝÍ›7E"QuuõîÝ»#""È.ʈÍsŽ‹‹‹‰DþþþÎÎÎ7nŒŒŒÔÿ’ & :æ‹‚aÙ5 ¢   `ô×Iеk×"„FÿCípÞD€œ"@Î g€FóyÓÛÛ›ì~¥TR©T%ÙUüê§Ÿ~òð𠻊ÁAÎÜÜÜz`•` åÆ »Y³øÖÖú 'Œ‡‡þ‘s”3‚û£JAAÍÖ­Ç–-sÍÉÙDv-Ʈφ¦¸¸!Ê•+ÿ}þ\Dv-Ær6}ׯ7 „!„¾ýVó)4 älNŸ®ÃŸÂ0ìäɲË1&³!((øQ©ÄBJ%öã;:zÈ®Èh@Î õèQ÷ÏBˆF£ž:u‹Ü’ŒäÌP%%·èôߦK¡Pž8§NCAÎ uâDLöÛíY Ãêë;š›Ÿ‘X’œ¤¾¾£©éþIS…Á :u“¬’Œ äÌ §NÝ41Ñü݉L¦ÈË»AJ=Fr68 ÃNžüQ*Õñéµµuóx‰/Éè@ÎwóæÃövÝ·0àÔi ÈÙàNŸ¾ÅÄ„®ýB¡,.†»ƒ3‚ç5H·tél:ý·?TPPãîîò§?MÆ­­-HªË˜ÀóCfo¿---lÕªydbL༠ˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä á…¿ç(•Jóòò$’QñÍ’£ÙÅ‹Ÿ<¿´­ÏôéÓ[ÆÔ’V[‚‚‚Ô£õÂñL.—#„***Hª Œ}ôž%¸>D€œ"@Î g€£.gmmmžžžÃµ6OO϶¶¶—ØVWWWrrr``àÊ•+£¢¢®]»6\% /õ]H$iiiááá~~~QQQ¹¹¹ …b¨+!£.gD²°° Butt¼ýöÛªþÞÞÞˆˆSSÓ={ö¤¥¥-[¶ì_ÿúWMͨþVW‘HY__™žžR^^«T*uŽWßeÕ<Œœ?ô÷îLœ8qÓ¦M!¥RÙÛÛ«ê?|øðŸÿüg.—‹/N›6Ïçççç/\¸œB pôèQ++«Ï>ûŒJ¥"„.\¸aÆsçνùæ›ÚãÕwY5#çeŽgžžžçÎ ó÷÷?vìØ… ‚‚‚Þ|óÍC‡!„¾üòËýû÷ã#Åb±¯¯occ#Bèûï¿÷ññ ¾páBðâââ°°0??¿>øàÖ­[êGoü`^YYúÎ;ï|ùå—2™Lg'zñÈ?ÐYÀÓÓóâÅ‹aaa«V­ÊËËSù÷¿ÿ!´zõj|äÕ«W׬Y£þÚ°°°¸¸8¼-öíÛ÷öÛos8œÔÔT©T:èœ2 ªªêý÷ß÷õõ]³fͱcǪY©Tæåå…††úùùýãÿ¸wï>²¼¼|ýúõxÈpãÆ ,//×9i껬>cíFCõ’çÍÚÚÚÔÔÔM›6eddTUUeeeEGGggg÷öö¾ñÆ•••ø•Aee¥‹Å’H$‰‰‰þþþøíß¿_"‘œ9sæèÑ£ÙÙÙëׯÿä“O´7têÔ©O>ùdïÞ½?üðƒjöµ;­¬¬bccñŸª·5\¿~ý«¯¾ŠŒŒŒ‰D:G®ZµJ}ÒT#º»»?üðÃ7n´¶¶^»v-::šÉdªn^èœIÕ.ãFhïÐÝ× R©çÏŸ÷ððÀ{LLLvîÜyðàÁgÏžÙÛÛïÙ³ÇÄÄ$ @¡P|õÕW===ÎÎΑ‘‘ÉÉÉ«Z¾|ùöíÛ%‰——WHH~×èDõôô|úé§øe™zÛ@¶¶¶¯½öÚš5kΞ=‹²²²JOOOMMݳgX,vrrúøã-Z„Þ²eË¢¢¢ ƲeËð~' ‹èèèääd33³àà`//¯¸¸¸ââbí‘þþþ2™,55µ««ËÅÅe÷îÝø'Gssóôôôǧ¥¥µ··ÛÙÙyyyq8ƒ¿PcÒh4šú.«ŒÄÞ!ï.((–ç‚233ŸúÈÆÆ¦  @Õ3üçM©TÚÑÑqîܹ¿ýíoþr`¤†?g÷îÝ‹ŒŒ\¹rå¼y¿ëÄÇÿÖ[oÒ ô “6RçMðGFÄym3@È ä rˆðÂïh4Bh¤áê‹/Ü×H$gÏž5ð¡rô˜?¾ú8/ä €×g€3@È ä áSØÓ×EÙ:IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1StoreQueryResult.html0000755000372000001440000011070412502417163027506 0ustar robertousers MySQL++ Reference Manual
mysqlpp::StoreQueryResult Class Reference

StoreQueryResult set type for "store" queries. More...

#include <result.h>

Inheritance diagram for mysqlpp::StoreQueryResult:
Collaboration diagram for mysqlpp::StoreQueryResult:

Public Types

typedef std::vector< Rowlist_type
 type of vector base class
 

Public Member Functions

 StoreQueryResult ()
 Default constructor.
 
 StoreQueryResult (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Fully initialize object.
 
 StoreQueryResult (const StoreQueryResult &other)
 Initialize object as a copy of another StoreQueryResult object.
 
 ~StoreQueryResult ()
 Destroy result set.
 
list_type::size_type num_rows () const
 Returns the number of rows in this result set.
 
StoreQueryResultoperator= (const StoreQueryResult &rhs)
 Copy another StoreQueryResult object's data into this object.
 
 operator private_bool_type () const
 Test whether the query that created this result succeeded. More...
 
- Public Member Functions inherited from mysqlpp::ResultBase
virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fields & fields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer
< FieldNames > & 
field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer
< FieldTypes > & 
field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::ResultBase
 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::ResultBase
DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

StoreQueryResult set type for "store" queries.

This is the obvious C++ implementation of a class to hold results from a SQL query that returns rows: a specialization of std::vector holding Row objects in memory so you get random-access semantics. MySQL++ also supports UseQueryResult which is less friendly, but has better memory performance. See the user manual for more details on the distinction and the usage patterns required.

Member Function Documentation

mysqlpp::StoreQueryResult::operator private_bool_type ( ) const
inline

Test whether the query that created this result succeeded.

If you test this object in bool context and it's false, it's a signal that the query this was created from failed in some way. Call Query::error() or Query::errnum() to find out what exactly happened.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption__coll__graph.png0000644000372000001440000001431712502417165032067 0ustar robertousers‰PNG  IHDRÈ»¯ŒF¦bKGDÿÿÿ ½§“„IDATxœíÝ{Tgúð7H×jAP9 êªUÏŠJQ¤ºmñ‚H½ ë×K´z,R~¬‚këjE®Š h¹eÕR‹J‹å"("jõp Š@À(`H —ùý1ÝlIˆ–q’öùÿxçÍð¾ÏL¾ÎL& P0 CŒ4=² L,@  BŸ¬‰[ZZ¶lÙ" É*àÏÈÈ(11qܸq¤ÌNZ°*++¯\¹âïïOVxyyy!!!º`árssÉ-àŒB¡8;\cB@°! X€,@ˆ?u°Gö ···—ÉdN:ÕÔÔtÖ¬Y‹Å¤TBº?u°FÇ›9sfuuuBBÂÝ»w÷îÝ›½xñb‰D¢t}‹E§Óñ¶¹¹ùž={Þa±„#ùvÃIll¬••Õ7¨T*BhâĉK–,qwwÏÈÈØ´iÓÐõ¥Ré«W¯ð6N§åLÛX åôéÓ®®®VVVñññ™™™ŽŽŽfff_|ñB(***44_“ÏçÓh´{÷î!„._¾ìááaddäää”™™‰’J¥'Nœpuu555;wnII‰ü©?Nš4‰Á`DEEõ÷÷+íDƒO[òí¬¬¬èèh|ˆ÷à“"„JJJä·]“]Gb°´ýTˆ255E(´BT*uÅŠ/_¾¼~ýzpp0BÈ¢¤¤¤²²ÒÁÁaÁ‚·nÝÒÓÓc±XÓ¦M“éáá1t"¼1yòäÖÖV5C™››ÛØØÔÖÖ*ô×ÖÖΘ1Có¡:;;%É„ ðEgggÙšvvvòÛ®åt Xêùûû_¼x177wÞ¼yø N H¥Ò¼¼¼®®®ÐÐÐ?þ¸««ËÞÞþþýû²ŸzôèÑСðÃB¨¾¾Uu*+ÿ°··7!!Á××W󡬭­©T*‹Å›ššìííñ¶žžN=Yd*5?ÊûJÛb±˜Á`X[[gddà ##£üü|‡“ššjdd$<È`0.]ºÄf³‹ŠŠ”^cyyy544TUU¹¸¸DGG+íÄT\caöúõëI“&-X° ¨¨¨¾¾¾  ÀÍÍí¯ý«P(T3>ÇÃ_cy{{³X¬¸¹¹á“ªÚêw\c©4l°0 ‹ˆˆ=z4—Ë•|„ †††“'O.,,Ä0l`` 66ÖÑÑÑÄÄdîܹçÏŸ¬ôôôñãÇÓéô­[· ¥ØàÈ·1 ãóù;wîtww§Ñhnnnqqq}}}ªÆ‰DóæÍ311Q§««+$$ÄÒÒÒÖÖvûöíø¤,Mi,MìÛ·/((è~D! ‹j:ßÎ¥9rƒ¥Û7H…Ba{{ûéÓ§/\¸@v-`ºâöíÛ3gÎܸqãÂ… Ï8cÆŒ פsÇÿc£`$}a5777 €¬Ùÿ (JNNÎêÕ«I™]·X@kA°! X€,@’o7¤¦¦’[ iÁ²··§R©:ô"œFó@õõÕ‘]ˆ¦¨Tªì}Æw´Û ºE"‘Nz!TW«§÷‡úp:AàK#]]½]]üòòF²kÑ ,äåÝÑ××30ÐËË«&»ÝÁžP(ºzõ¾X,‰¤W¯Þ EdW¤ Xûyó±,LB¡èæÍÇäÖ£ XÃûî»;²¯ÐP(”ï¾»Cn=:‚5 .Wxýú¯‰_”H¤×¯ÿÊåÂï‹k?üð@*tGF*Å®]{@V=º‚5Œüü; wú0 Ëχ³á0 Xêp8¼òò©T*ß)•båå ¬ªtK+Wj•Þg§P(W®ÜÚd XêäæÞQ¸ÀÂI¥R¸SªK¥¶¶îººç*‚…îßÞÞÞóî«Òºý-B½|É·³3—]`á÷HŒ~û†»žžÞË—<;;sÒêÓnðéM…‡ŸE¥¤¬#»ݧB@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@-ú~ŽŽŽOŸ>%» •ôõé!±ø%Ù…¨äèèÈb±È®â7Z, …²}ûö¹sç’]ˆNª¨¨8zô¨ö<›ÚõËmçÌ™ãïïOv:I{"…ƒk,@  ‚¡cÁ¢È±°°X½z5‡Ãy£e.õ÷ëííe2™S§N5555kÖÁƒÅbñ»/C éX°Bååål6»½½½¸¸¸µµuëÖ­dUÂãñfΜY]]p÷îݽ{÷fgg/^¼X"‘(]ŸÅbÑét¼mnn¾gÏžwXì;‡i „PNNΰë444ÈKKKÍÌÌÞh–†††‘Úê]»vyzzŠÅbYŸÏÿý÷ÓÒÒˆžz¨œœ­z6uïˆ%J¥2 ¼ÝÓÓ³~ýz:îàà°k×.¡P¨ªSF$1™LkkkƒÁd2E"BèÊ•+Ó§O§Ñh¶¶¶ñññøš %;;ÛÕÕuìØ±‡Æ;³²²¢££©Tªl@ccc&“™••…Ÿé 'MšÄ`0¢¢¢úûûçÌ™ƒ²±±AƒO…J‹T:£.!;Ùÿƒ4;bÕÖÖòx<.—ûäÉ“… ÆÆÆâ{{{755ÕÕÕ¹»»ÇÄÄ(í”?l$$$¬\¹²¥¥¥®®î/ùËçŸÎår 7nÜØÚÚš••…zñâ>ïªU«º»»ÓÒÒB¯^½êîîFq8… ËÊʬ­­ñY|||êëë+++¦–o+­|èŒê÷Œ¶±´©Í‚%o̘1ø™q``€J¥>|ø_­  ÀÙÙYi§ü3:yòd6›·‹‹‹§M›Ößßÿøñc>Ÿ/‘H~þùgôß3/B¨¤¤ŸïT¬ŠŠ :ŽÏRWW‡wæää(L-k+-RéŒê÷Œ¶K»ÞÒÑDCCƒ³³3B¨¯¯ïßÿþ÷‡~øìÙ³ÎÎN‰D2aÂ|ggçÖÖV¥òC=}úÔÖÖV¶hfffhhX__Æçó§OŸ.¿²BÈÀà·¿WhnnnccS[[»hÑ"ùÕjkkg̘·]\\ðÆäÉ“¦–QS¤ÂŒºE‡¯±h4ZXXØóçÏ_¼xammM¥Reïí755ÙÛÛ+í”?´àÿú»»+++ÁêÕ«™LfMMÍÉ“'åWÖÓSÜWÁÁÁ±±±ò¯{{{|}}ñEü°„ª¯¯ÇS2”š"‡Î¨Ct¯t‡ÓÑÑÑÑÑÑÒÒ’ðÞ{ïYYYDEE577?|øpÿþýÁÁÁJ;å‡Z±bÅÞ½{Ÿ={VWWçë뛘˜Øßß?00`hh(8€âñTþµúèèè/^x{{ÿðà /^œ={¶½½}dd$¾Â¶mÛ«««÷íÛ·víZ¼“ÏçË2l‘ºŠÜ3±<ô†×Xzzz•••øC]]]!!!–––¶¶¶Û·oJ;å/t¸\î† ,,,,--7oÞÜÛÛ‹aØ×_=vìØ÷Þ{ïäÉ“ |›C¾ÍçówîÜéîîN£ÑÜÜÜâââúúú°ÿ^B¥§§?žN§oݺU ˆD¢yóæ™˜˜`ƒ/Þ•V®jFU´íK›JÑ Xº‚Ð[VJi[°tïTt‹cÆŒ '» 2A°Á`0’““É®‚L,@  ‚¡]ß+œ2eеµ5Ù…(‡a„…¢-»KAgg烴çÙÔ¢7¡wìØñüùs²«PéÉ“±a“'w“]ˆr‹/&»ŠÿÑ¢#–6ëéé›2å …òðáÿ3šìrt\ciäÚµ‡†¤RiQѲkÑ ,ääTa¿½›YEv-º‚5¼ŽŽ×·o³0 “J±Û·Y¯É®H@°†wùr-•úÛŽ¢Rõ®\¹On=:‚5¼¼¼jÙÇDÅbi^^5¹õèÖ0X,ÎÇmr/±Z››ßìë×B¬aÞ30 Ê÷P ï‘U®€` #7·J$ô•y‘H¯ ‡ÁRçÑ£¶gÏ^ íöìÕ£Gmï¾ÁRçâÅ…ó ÎÀ€zñbÍ»¯G‡@°T’J±¼¼j…ó N$’äåUK¥ðn˜J,•îÝkápxTCC}…T‡W[ÛBvÚK‹>Ý m,¶lñ–-VT4!„æÎ ë±·· ¡,ŸnÐTxøY„PJÊ:² Ñ p*„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚Á„€`B@°! X€,@  ‚1è¯Ý¼y³±±‘Äj´Y^^BÈßßžìB´”‹‹‹——×ÿ–19úúð›#Á[Ò××—ÏÒ #…B9pàÀÂ… É+褟~úéË/¿”Ï\cB@°! X€,@í V[[Û —¬¿——W[Û;úSJ )))00pÉ’%k×®ÍÈÈ tF¡P˜œœºtéÒˆˆˆììlÙ_ëTodw²*pad?~¼³³366ÖÊʪ¥¥åøñã</**Š éúúú"##-,,ÂÃÃíììš››O:uçί¾úJOOÉÁ‚ÍfGDD"„LLL *LF»ŽXºë—_~ sqq177÷ððˆŠŠ*++#nºsçΙ››ýõ×|ðƒƒƒ§§grrrGGGQQ‘Òõ¥R)—ËÅÛfff›7o&®6ÜËËË«¨¨hݺu~~~çÏŸÿñÇ—-[vúôi„Ð7ß|søða|M@àëëÛÐЀ*// õññ úñÇB†]¼xqݺuK—.ݲe˽{÷äÏøáº¬¬,$$dùòåß|óH$RÚ‰Û•ç1 ûÏþ³~ýúeË–íØ±£¢¢_ÇËËëúõëëÖ­ûä“O¾ýö[|e>Ÿÿé§Ÿúûû'%% àcÖÔÔ, ¯^½zîܹM›6eff~öÙg‡:Ñ¥K—:tðàÁÛ·oã{_i§¹¹ù®]»ðGåÛ2ßÿ}ffæ–-[Ο?œ˜˜({è—_~ILL OIIáñx¡cÇŽq8œäää„„„êêê .àkæææ~þùç...ùùùl6;%%嫯¾ª©©ÉÈÈ@1™ÌšššU«V1™ÌœœœÎÎN5Ò××íââ’••™––ÖÓÓ“ŸŸ_ZZzèС£G>þ<++ ÿÙ¡Óñùü®®.ggg…ÍtvvniiQ:ãÉ“'B ?¢jc‡î–7õ6Á  Ñh>>>¡   æëë‹âñxîîîúúúuuu¡ëׯûøøP(‘H„a˜@ 044ôõõ½|ùò¨Q£¾ûˆOOOKKËÙ³goÚ´ièD‘‘‘®®®›6m*..VÕill¼lÙ2üQù¶ >׬Y³ÌÌÌf̘±aÃÙC~~~&&&K–,Aq¹\±X|óæÍ­[·ÚÚÚ:99mذA6ïæÍ›§OŸnddTTT´mÛ6ƒáää^UU…š9sfNNαcǦL™ríÚµ   7n¨ÚCCÃS§NEEEYZZ2 „PooïÕ«W7nÜèäääèè¸gÏ777üg•N§…B‘J¥jv5«°[TͨÆÛ\¼Óh4„þÆ¢|!¤§§çééYZZêäät÷îÝ;w"„LMM=šŸŸŸ‘‘1qâÄ   Ù³g³ÙlùÿsNNNC'rppÀãÆãp8j:Õkoowtt”-¾ÿþû²6N—¯¿»»[*•ÚÙÙá‹ööö²)Ƈ7:::V®\)ÁØØX(–——/\¸ÐÕÕÕÕÕ5$$äÌ™3ÉÉÉÞÞÞJkÖ××omm=räˆ@ pqqÁêìì”­6~üøñãÇ«šÎÄÄdìØ±3fÌßÌÆÆÆ‰'j¾—Ôl¬Âny #ñ¾páÂ[·nýôÓOS¦L±²²Bõ÷÷K¥Ò˜˜˜Ë—//]ºtß¾}<N§755É~êéÓ§C‡jmmÅÏŸ?·´´TÓ©žµµuss³lñÙ³g²6…B‘_ÓÂÂBOOÍfã‹íííø.Fr{ÙÌÌ,++«¤¤¤¤¤äòåË'OžÄ0,..ŽÅbÉÆœ5k–ü‹…šûûûcbbÖ¬Y“ššúüÈÒÒ²££o766ÊN…C§C-Z´èܹs²ãBH(^¸páƒ>Ð|/©ÙX…ÝòF>X‰äìÙ³ø¹!D¡P˜Lfiiioo¯H$Ò××5jÔG}”””TVVÖÕÕUUU•šš:t¨'N´µµ=yò$==}ñâŪ:ñóþ¨|[ÆÏÏ/%%åÎ;\.÷Þ½{gΜQµãôõõ½¼¼Ž?Îf³ñ×ð‹-RXÇÓÓ3--­³³“ÅbíÞ½ûÒ¥K£GöññùòË/+++Ùlö£G’’’d‡«¡5‹D"±X¬¯¯?00€_¢õõõùøø¤§§777777;vLv•6t:„кu뺻»wìØQUUÕÚÚzëÖ­ÈÈH:þé§ŸªÙuàM7ö­ü},==½ùóç_»vmþüùx¡¡áÞ½{SRR^¼xaggwàÀCCÀ€‰D’˜˜ØÓÓƒ_=ÄÅÅ) µhÑ¢;w …Booïàà`ü@­Ð‰êéé9rä~i%ß–ñóó“H$G}ýúµ››[DDÄ¿þõ/UõoÛ¶íĉ~ø¡l^™ÐÐÐ'N„……Q(”ùó燇‡#„vïÞ™™™––ÖÖÖfaaáååµ~ýzUbhh7zôè   ooïÝ»wçææ …B&“) çÌ™ƒ«j:–ššš‘‘‘œœÜÞÞnkkëíííïïo`` tF*•:eÊ”•+W~ÿý÷ê7VÓ§y8„|l&==½££cÿþýšÿH[[ÛÚµkKJJ”.ªéÔDEEƒÁ˜0á·¿º[ZZЇàMÇy o]³͈ÞÁÇfØlvQQÑßþö·‘ù÷`±Xÿüç?úûûýõ×Ó§O}åFÖŸ ?~üÅ_|òÉ'Ó¦Mû=ãüñÇštjbÍš5B¡pÿþý===¶¶¶}ôÑÛóÞºfšQ)ø)ð RðŽ@°! X€,@ †ü— ©T*Ùå]E¥R}ùYþ±›7o*| Y[[Ë/ºÀHk,@  ‚ñÿ§6m/ֻܹIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2folderclosed.png0000644000372000001440000000115012502417165024131 0ustar robertousers‰PNG  IHDRÚ}\ˆ/IDATxí]MOÔ@~ÚúuØlp]ö¿#›Å]PYECˆ\9ù¼yÑß`ÖÄÿàÿÀÉxóâ¢C &=qÐÄ£—vZçv¶3m؃‡vžLûNç}Þ÷}Þ½ZA@n° OäNp ’xóþK°ññ€xÜj”°8sÑ€“ “€œ_¼[Âíæ§ïD'‚•yye+ø¼û 7#rNŸlïük* ¾0Ь_d«_(àñÖ±àôz=ñxõv§÷h©‰z¹€šØP-äóä’̪uý¼$»\DãJc—B4¯ãÝÖ.:£Ï-ÑÏß}µŠLEíºþ #—ûáºÀÏgN;BŠ€6ïýñ䬜…ö@’Ðåñp&™h>p9¤™EEά¨ÎÊ‘" u¥n€$R"?{¹<˜…ë…%PNtâ$‰ß¶±úá+^<é"§2 ªDq”q´\¬«Ò™a–Œ‘©Aÿ€"Ôµ ™êŸèP£}#Eàz{û.8i îp³ê(ADwD¦E<ê¬cE¦$ HdÊÄ ”.:Ù GŽ-`ŒL‚ý¾'¢‰Ä<¤CIª½;ÙÇTZd±i};>èôß‚z×;K×§8t ¤Ž q”:uvÿv•Ý›¬²ÙvEân{„M·FXg¼ÌfZÖ¨°¹‰*›ßÌß©±ù©:›j–YqèÜë#3çÏSøWøÿÿÑr'ø Ôùù‚ ©¡IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection.html0000755000372000001440000014321712502417164031437 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UnixDomainSocketConnection Class Reference

Specialization of Connection for Unix domain sockets. More...

#include <uds_connection.h>

Inheritance diagram for mysqlpp::UnixDomainSocketConnection:
Collaboration diagram for mysqlpp::UnixDomainSocketConnection:

Public Member Functions

 UnixDomainSocketConnection ()
 Create object without connecting it to the MySQL server.
 
 UnixDomainSocketConnection (const char *path, const char *db=0, const char *user=0, const char *password=0)
 Create object and connect to database server over Unix domain sockets in one step. More...
 
 UnixDomainSocketConnection (const UnixDomainSocketConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~UnixDomainSocketConnection ()
 Destroy object.
 
bool connect (const char *path, const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool is_socket (const char *path, std::string *error=0)
 Check that the given path names a Unix domain socket and that we have read-write permission for it. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for Unix domain sockets.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

mysqlpp::UnixDomainSocketConnection::UnixDomainSocketConnection ( const char *  path,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over Unix domain sockets in one step.

Parameters
pathfilesystem path to socket
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in

BEWARE: These parameters are not in the same order as those in the corresponding constructor for Connection. This is a feature, not a bug. :)

References connect().

mysqlpp::UnixDomainSocketConnection::UnixDomainSocketConnection ( const UnixDomainSocketConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

bool mysqlpp::UnixDomainSocketConnection::connect ( const char *  path,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

Referenced by UnixDomainSocketConnection().

bool mysqlpp::UnixDomainSocketConnection::is_socket ( const char *  path,
std::string *  error = 0 
)
static

Check that the given path names a Unix domain socket and that we have read-write permission for it.

Parameters
paththe filesystem path to the socket
erroron failure, reason is placed here; take default if you do not need a reason if it fails
Returns
false if address fails to pass sanity checks

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/qparms_8h_source.html0000755000372000001440000011032712502417162024333 0ustar robertousers MySQL++ Reference Manual
qparms.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
10  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
11  also hold copyrights on code in this file. See the CREDITS.txt file
12  in the top directory of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #ifndef MYSQLPP_QPARMS_H
33 #define MYSQLPP_QPARMS_H
34 
35 #include "stadapter.h"
36 
37 #include <vector>
38 
39 namespace mysqlpp {
40 
41 #if !defined(DOXYGEN_IGNORE)
42 // Make Doxygen ignore this
43 class MYSQLPP_EXPORT Query;
44 #endif
45 
48 class MYSQLPP_EXPORT SQLQueryParms : public std::vector<SQLTypeAdapter>
49 {
50 public:
53  typedef const SQLTypeAdapter& sta;
54 
57  parent_(0),
58  processing_(false)
59  {
60  }
61 
67  parent_(p),
68  processing_(false)
69  {
70  }
71 
75  bool bound() { return parent_ != 0; }
76 
78  void clear() { erase(begin(), end()); }
79 
88  size_t escape_string(std::string* ps, const char* original = 0,
89  size_t length = 0) const;
90 
95  size_t escape_string(char* escaped, const char* original,
96  size_t length) const;
97 
99  SQLTypeAdapter& operator [](size_type n)
100  {
101  if (n >= size()) {
102  insert(end(), (n + 1) - size(), "");
103  }
104  return std::vector<SQLTypeAdapter>::operator [](n);
105  }
106 
108  const SQLTypeAdapter& operator [](size_type n) const
109  { return std::vector<SQLTypeAdapter>::operator [](n); }
110 
112  SQLTypeAdapter& operator [](const char *str);
113 
115  const SQLTypeAdapter& operator [](const char *str) const;
116 
118  SQLQueryParms& operator <<(const SQLTypeAdapter& str)
119  {
120  push_back(str);
121  return *this;
122  }
123 
125  SQLQueryParms& operator +=(const SQLTypeAdapter& str)
126  {
127  push_back(str);
128  return *this;
129  }
130 
140  SQLQueryParms operator +(
141  const SQLQueryParms& other) const;
142 
143 #if !defined(DOXYGEN_IGNORE)
144 // Doxygen will not generate documentation for this section.
145  void set(sta a)
146  {
147  clear();
148  *this << a;
149  }
150  void set(sta a, sta b)
151  {
152  clear();
153  *this << a << b;
154  }
155  void set(sta a, sta b, sta c)
156  {
157  clear();
158  *this << a << b << c;
159  }
160  void set(sta a, sta b, sta c, sta d)
161  {
162  clear();
163  *this << a << b << c << d;
164  }
165  void set(sta a, sta b, sta c, sta d, sta e)
166  {
167  clear();
168  *this << a << b << c << d << e;
169  }
170  void set(sta a, sta b, sta c, sta d, sta e, sta f)
171  {
172  clear();
173  *this << a << b << c << d << e << f;
174  }
175  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g)
176  {
177  clear();
178  *this << a << b << c << d << e << f << g;
179  }
180  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h)
181  {
182  clear();
183  *this << a << b << c << d << e << f << g << h;
184  }
185  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i)
186  {
187  clear();
188  *this << a << b << c << d << e << f << g << h << i;
189  }
190  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j)
191  {
192  clear();
193  *this << a << b << c << d << e << f << g << h << i << j;
194  }
195  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k)
196  {
197  clear();
198  *this << a << b << c << d << e << f << g << h << i << j << k;
199  }
200 #endif // !defined(DOXYGEN_IGNORE)
201 
207  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g,
208  sta h, sta i, sta j, sta k, sta l)
209  {
210  clear();
211  *this << a << b << c << d << e << f << g << h << i << j << k << l;
212  }
213 
214 private:
215  friend class Query;
216 
217  Query* parent_;
218  bool processing_;
219 };
220 
221 
243 
245 {
251  SQLParseElement(std::string b, char o, signed char n) :
252  before(b),
253  option(o),
254  num(n)
255  {
256  }
257 
258  std::string before;
259  char option;
260  signed char num;
261 };
262 
263 } // end namespace mysqlpp
264 
265 #endif // !defined(MYSQLPP_QPARMS_H)
266 
Declares the SQLTypeAdapter class.
SQLQueryParms()
Default constructor.
Definition: qparms.h:56
signed char num
the parameter position to use
Definition: qparms.h:260
const SQLTypeAdapter & sta
Abbreviation so some of the declarations below don&#39;t span many lines.
Definition: qparms.h:53
SQLParseElement(std::string b, char o, signed char n)
Create object.
Definition: qparms.h:251
std::string before
string inserted before the parameter
Definition: qparms.h:258
void clear()
Clears the list.
Definition: qparms.h:78
char option
the parameter option, or blank if none
Definition: qparms.h:259
bool bound()
Returns true if we are bound to a query object.
Definition: qparms.h:75
SQLQueryParms(Query *p)
Create object.
Definition: qparms.h:66
Used within Query to hold elements for parameterized queries.
Definition: qparms.h:244
void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)
Set the template query parameters.
Definition: qparms.h:207
This class holds the parameter values for filling template queries.
Definition: qparms.h:48
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
A class for building and executing SQL queries.
Definition: query.h:121
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1equal__list__ba.html0000755000372000001440000002402112502417164027503 0ustar robertousers MySQL++ Reference Manual
mysqlpp::equal_list_ba< Seq1, Seq2, Manip > Struct Template Reference

Holds two lists of items, typically used to construct a SQL "equals clause". More...

#include <vallist.h>

Public Member Functions

 equal_list_ba (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
 Create object. More...
 

Public Attributes

const Seq1 * list1
 the list of objects on the left-hand side of the equals sign
 
const Seq2 * list2
 the list of objects on the right-hand side of the equals sign
 
const char * delim
 delimiter to use between each pair of elements
 
const char * equl
 "equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
 
Manip manip
 manipulator to use when inserting the equal_list into a C++ stream
 

Detailed Description

template<class Seq1, class Seq2, class Manip>
struct mysqlpp::equal_list_ba< Seq1, Seq2, Manip >

Holds two lists of items, typically used to construct a SQL "equals clause".

The WHERE clause in a SQL SELECT statment is an example of an equals clause.

Imagine an object of this type contains the lists (a, b) (c, d), and that the object's delimiter and equals symbols are set to ", " and " = " respectively. When you insert that object into a C++ stream, you would get "a = c, b = d".

This class is never instantiated by hand. The equal_list() functions build instances of this structure template to do their work. MySQL++'s SSQLS mechanism calls those functions when building SQL queries; you can call them yourself to do similar work. The "Harnessing SSQLS Internals" section of the user manual has some examples of this.

See Also
equal_list_b

Constructor & Destructor Documentation

template<class Seq1, class Seq2, class Manip>
mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::equal_list_ba ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
Manip  m 
)
inline

Create object.

Parameters
s1list of objects on left-hand side of equal sign
s2list of objects on right-hand side of equal sign
dwhat delimiter to use between each group in the list when inserting the list into a C++ stream
ethe "equals" sign between each pair of items in the equal list; doesn't actually have to be " = "!
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classAutoFlag.html0000755000372000001440000000737012502417162023604 0ustar robertousers MySQL++ Reference Manual
AutoFlag< T > Class Template Reference

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool. More...

#include <autoflag.h>

Public Member Functions

 AutoFlag (T &ref)
 Constructor: sets ref to true.
 
 ~AutoFlag ()
 Destructor: sets referent passed to ctor to false.
 

Detailed Description

template<class T = bool>
class AutoFlag< T >

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/sync_on.png0000644000372000001440000000151512502417165022337 0ustar robertousers‰PNG  IHDRàw=øIDATxíÝ_HTYÀñï8ã¤ó§i§4-g6ÆËÕ&kQ)¨Ô!Š0ÒURKÚ…„ê¡/»PEÁ>ìK-+KÁ²Ñ.Y”¾dEPaA‰ø°¥¶›ZSÓïÜ;3wºŠ–¯—߯gfîïœsçœWKÇñ.€ÉøD­¨a‘'¬âq_ôˆk¢ÀŒ ÀDŽøQ´ÄïC¨¶åñÏÿgÅ ñ 0„Y‚:qZ¦Á)~õâ€èLý0HVñ× žz-¿‰C“%¨g¦˜6€é8%Úõ¬ëwêÙUÏ¿˜ª³Ä }? ?€·3ÀÀž©Š À”K• @hà a±ðaÇæUe‹ sù~ë2²ì“&Ú&B*AÄljæºììi*˨,Ëçí»÷oÆ£T”,d[˜¼3-*ÁÀ…>å‡Ë çLÉŸçfk˜Ò éw#*AEjKUy>ûšËÉõ&{µ¢8—m5Ki¬ jjƒD*¿NŽÖigwÃ7Dª’mz骹úKÛ¾±ˆ¶M!æ¤ÍkÐ?šoý¬_åÓlXí#Ò~–¸¬ê×ÒÑXŠÓ‘ùRÙ*Eû‚ՂדðEÜ;6«e"Q(²Ù=–¿Ezæ5Kؼָ_ 1òzBªJë ±XŒì96åªjL^7{ùãJÑ÷1½i@%8'7M©_\Qœ#ÓUŒËñýÿyõ Wo Éx8¼s¥v¯ªì|×SnÜ q_m Ýé î>bèÕí[JX,½4[Tú{R£ë¼ôˆ¾þa€tÝjjzzÅ'ÅìȶiIžŽòwÏs ¡€—ÕKøõâC^ŽŒ˜Y­¨µÉ%6¨´êˆº]vÛðhâ½iWv–hôëê°Ò¨¾'æÌ‚·ñ|[ßìúÅ^€YrD=<ýDû]äÇ÷s€Ïõ‹8™ºCì? À ¨—t4õᩎ¡Jã‡W‹É± îr¼cjMɘìx| šE©øNÔ‰œøA¢þ«–€Z¼ñ‡jó î#™§¢¢4gIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1RowCountInsertPolicy.html0000755000372000001440000001651712502417163032007 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::RowCountInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 RowCountInsertPolicy (unsigned int rows)
 Constructor.
 
 ~RowCountInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int, const RowT &)
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::RowCountInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted.

This policy is very lightweight, but is only reliable when you can predict the size of each INSERT in advance. The others do more processing to reduce the risk of unpredictable row sizes.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::RowCountInsertPolicy< AccessController >::can_add ( int  ,
const RowT &   
)
inline

Can we add another object to the query?

Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoSchemaOption-members.html0000755000372000001440000001210012502417164030473 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoSchemaOption Member List

This is the complete list of members for mysqlpp::NoSchemaOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/qparms_8h.html0000755000372000001440000000660512502417162022756 0ustar robertousers MySQL++ Reference Manual
qparms.h File Reference

Declares the template query parameter-related stuff. More...

#include "stadapter.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::SQLQueryParms
 This class holds the parameter values for filling template queries. More...
 
struct  mysqlpp::SQLParseElement
 Used within Query to hold elements for parameterized queries. More...
 

Detailed Description

Declares the template query parameter-related stuff.

The classes defined in this file are used by class Query when it parses a template query: they hold information that it finds in the template, so it can assemble a SQL statement later on demand.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption.html0000755000372000001440000002603512502417163030321 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ConnectTimeoutOption Class Reference

Change Connection::connect() default timeout. More...

#include <options.h>

Inheritance diagram for mysqlpp::ConnectTimeoutOption:
Collaboration diagram for mysqlpp::ConnectTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Change Connection::connect() default timeout.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionFailed.html0000755000372000001440000003532312502417163027374 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ConnectionFailed Class Reference

Exception thrown when there is a problem related to the database server connection. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::ConnectionFailed:
Collaboration diagram for mysqlpp::ConnectionFailed:

Public Member Functions

 ConnectionFailed (const char *w="", int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what(), if any. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when there is a problem related to the database server connection.

This is thrown not just on making the connection, but also on shutdown and when calling certain of Connection's methods that require a connection when there isn't one.

Constructor & Destructor Documentation

mysqlpp::ConnectionFailed::ConnectionFailed ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

int mysqlpp::ConnectionFailed::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what(), if any.

If the error number is 0, it means that the error message doesn't come from the underlying database API, but rather from MySQL++ itself. This happens when an error condition is detected up at this higher level instead of letting the underlying database API do it.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TooOld.html0000755000372000001440000000574712502417163025377 0ustar robertousers MySQL++ Reference Manual
mysqlpp::TooOld< ConnInfoT > Class Template Reference

Functor to test whether a given ConnectionInfo object is "too old". More...

Inheritance diagram for mysqlpp::TooOld< ConnInfoT >:
Collaboration diagram for mysqlpp::TooOld< ConnInfoT >:

Detailed Description

template<typename ConnInfoT>
class mysqlpp::TooOld< ConnInfoT >

Functor to test whether a given ConnectionInfo object is "too old".


The documentation for this class was generated from the following file:
  • cpool.cpp
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Option.html0000755000372000001440000003011312502417163025430 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Option Class Referenceabstract

Define abstract interface for all *Option subclasses. More...

#include <options.h>

Inheritance diagram for mysqlpp::Option:

Public Types

enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Public Member Functions

virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Define abstract interface for all *Option subclasses.

This is the base class for the mid-level interface classes that take arguments, plus the direct base for options that take no arguments.

Member Enumeration Documentation

Types of option setting errors we can diagnose.

Enumerator
err_NONE 

option was set successfully

err_api_limit 

option not supported by underlying C API

err_api_reject 

underlying C API returned error when setting option

err_connected 

can't set the given option while connected

err_disconnected 

can only set the given option while connected


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_vars.html0000755000372000001440000002173012502417165024116 0ustar robertousers MySQL++ Reference Manual
 

- a -

- b -

- c -

- d -

- e -

- f -

- i -

- l -

- m -

- n -

- o -

- r -

- s -

- t -

- w -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InitCommandOption.html0000755000372000001440000002525612502417163027567 0ustar robertousers MySQL++ Reference Manual
mysqlpp::InitCommandOption Class Reference

Give SQL executed on connect. More...

#include <options.h>

Inheritance diagram for mysqlpp::InitCommandOption:
Collaboration diagram for mysqlpp::InitCommandOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give SQL executed on connect.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_28.png0000644000372000001440000000544612502417165024032 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ ÛIDATxœíškLÓÞÇŸ1À ‡ˆC…øbˆo(F—D#^4 $b¼`4‰@Œ1(Jbâ QÁ+ê¼ ˆ— "‘_pa ¢ŽétcëÿÅÉ¿©mW`®ÜìçU{Úó}ž~wzÚ>< Àƒƒ5ZÇ0‡s»pã`GÒ¾R©|òäÉ€Háê‚ØØXggç?Z±?‰ yÃ;wîEžÃÌfsttôÍ›7DdžÇãuww“¹u»pã`ÎaìÂ9Œƒ]£Ãy<ž½zã …sæÌ©®®f8ð 6ˆD"¼E¥RÅÅÅMœ8Q$MŸ>ýîÝ»öÒÖ'ð´#rss[¾|ysss¿(£ÃìNyy¹Z­V«ÕµµµþþþëÖ­cø«R©òòò>~üˆv¿}ûêââ"—Ë«ªªbccׯ__TTô÷ª …D"±í·("•JõâÅ ‹Å²aÃkgŽ=zÿþýlhè-¤·ÑÑÑÑÑÑØ€ÒÐÐ@f3ÐÐЀﶷ·@{{{/Gß¾};r$ÎÞ½{-Zô÷Âú&~>)¢ÖÖVøþý{?h`är9©ÑÆ9ŒÇãåææyxxddd\¹rÅÇÇÇÍÍíСC’’’””„ÎÔëõ...ïÞ½€ÂÂÂ@àëë{åʰX,§OŸ ruu /--%Néh†/((˜4i’T*MIIùýû7m#üy;`¸58999;;»¹¹¡]“É´oß>OOO©Tºoß>“É4kÖ,;v,:áÎ;»ví"ö–––““ƒ¶;;;%‰··÷Þ½{ýúeMÇËËË 3fÌñãÇ€4U‰ÙlÎÌÌ puu3gNee%mD|>Ћ(f=6h@?/))™0aBYY™5?0Ar\/ç0X¿~½N§;þ<ÄÄÄètºììløúõë‹/Äb±ÉdÂ0ìêÕ«ÁÁÁ‹E¯×1âÌ™3jµ:''ÇÑÑQ¯×gggK¥Òüü|•JõðáCoooÀÿXhcÉ’%õõõ2™,==¶ðÎÎÎsçÎ!yÄm¨®®îêêêêêjkkÛ¶mÛ¦M›ð@Ž;¶víÚ–––ÚÚÚ°°°ÿÖZ­4µ<ÄÇÇ/\¸°©©©¶¶vÊ”)¸~üˆ T«Õh»¸¸xêԩĤk4Ðjµ´=F>Ÿÿáô›ŸŸËC-¤«[ZZJÌéêR•P“CŠÈÉÉiÞ¼yè¦Ù£4²Í ­Ãl_黺º¢IÛÀçó׬Y“ŸŸÿõë×§OŸÆÇÇ€»»{iiiEE…··÷¼yó^¾|éàà P(¦NŠ÷BÈßßm¢5‡µFkà«–?~$''oÞ¼?¤T*LJžË/^Lz(sww÷ôôÄWýˆ×¯_OŸ>ýçÏŸíííf³ÙÏϵËd2’’Ð$„g‰UÉçÏŸ­%Èh4>þ\&“@zlЀÚiÏï l=KFGGß½{÷æÍ›èÞg0,Ë­[·4MRRRdd¤F£ñòòª©©ÁUWWGí ý ¾¾%ÈZc¸¸¸$&&ÖÕÕá×^"‘àWK«ÕVTT~²bÅŠ“'O½rõêU“ÉäâââééÉçó jojjòòòBÛhUÔÖÖFìÊÁ)ÛT%'Nì19Dôجµ[sd¯ Íi½¿KâRh·»»»¥R©§§ç… Ð!ƒÁ nß¾ÝÑÑqöìY@`0Ž=*•JïÝ»§V«?~L»[°`ACCCUU•¿¿jj*m#Ƹ#>y}úô t:ÚMII‰ŠŠR*•5553gÎܱcéÆñå˱XÿêÕ«šššôôtxðà:·páB…BñþýûàààÔÔÔŽŽÈÉÉùþýûêÕ«p‡"e ÔÕÕeMÉ©S§ˆÉñõõºgI"T=¤»d_5ôéaì»cv†a[·n …øµÄ0L.—ûùù9;;`f4>ìãã#‰ÂÃï]»FuØùóçÿûï?‰D²sçNƒÁ@Ûˆý¹è±–V ÃÌfó¨Q£š››Ñ®N§Û´i“»»»X,Þ²eË?¨9U*•QQQãÇwuu1cÆýû÷ñCfãÆb±xܸq»wïFJŽ92zôh??¿‚‚†«k2™"""D"‘5%ÝÝÝ™™™2™läÈ‘áááhF¡FD„ª‡Ùa=j0‡õ†ƒÆÅÅõé'¤xhóï+;Bë0r}˜]øõë—J¥ÊÍͽ~ý:ýs !XYéWVVN›6móæÍóçÏÿ›~F•œœÜ›FŽA ûó‰:&&¸Wàñxr¹YçŸøòÍ1€ g‡±W„Ã<„µ£¨ýÆ´}2 9XYéWÊËË}||ˆ-ŽŽŽ µ1̬\¹R­V@ssóìÙ³Ñ6ˆÅâ¿Ô9¨àÖ<<<ð2œŒŒ Ûz …B¡ôz= †ýw—ìèèøùó'©qèVQO –¾à§õ²Aµ5µ´ƒRóÓã…`Òû16*«ªª<<ê+ÿf)j;ª5vé‡ ­Ãú遲ƒs /•³ ˆí¨ÿª$ºï êï’ÿfmÔƒVmpÕ;vƒ«Þá8‡q° ç0váÆÁ.4o+ ÅÙ³gû_ Çð„ô~lÏž=­ˆc¨ÂçóËÊÊHŽ"¿­àà°/Ü:Œƒ]8‡q° ç0váÆÁ.ÿ󿇯§¼IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption-members.html0000755000372000001440000001213612502417164031655 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SetCharsetNameOption Member List

This is the complete list of members for mysqlpp::SetCharsetNameOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_11.png0000644000372000001440000017727712502417165024036 0ustar robertousers‰PNG  IHDR¸žT’AbKGDÿÿÿ ½§“ IDATxœìÝy Ôùÿ8ð" %Œ[‰ŠÕêÞ²]6«thw %tè ƒRIw­m‹´Ú>«Ü¡\Ò±’l)It¸CLŽ‘1s¾¼÷ç«\c3£ç㯷÷¼ßÏ×sfêýœ÷ëõ~¿Þ†!àÿ“vD ŸÂà3P|fˆ°VUUÕöíÛÛÛÛ…hFFFÿûßÿ¸ØQ®J`p‹‹‹[µj•°ªºº:;;›»#<œ1ðUˆ‹‹v `@á?¸ÛÆ| €Ï@að( >… p¥¥¥üŠ&щ’’’­­mCC™ÔÖÖ®Y³f̘1òòò3fÌHJJâW†\àïGÄ#( ñóèÑ£ºººÚÚÚôôôššWW×þFhjjš2eŠœœ\llì“'OV¯^mggwûömAdˉ‘#Gzzz «õ/Àåªñ£ªªª®®ŽÒÐÐðññ±²²êo„cÇŽýðÃÁÁÁøŸß|ó ‘HúùçŸwïÞïB£Ñ”””ÒÒÒB ÃÃÃCMM@ xxx0 <ÿŒŒ ]]ÝtýÜ:¿A[ 0¨ÅÆÆrò?!dggG&“ñѶ¶¶d2ùÂ… ¡ÆÆÆ¬¬,eeeƒaXTT”±±1›Í¦P(C‡ ¬«« 2d…B¹pá@HLL¬­­MKKÓÖÖF•””à9à .,..ÎÎÎ6008~üx·+1 ûøñcPPž^çe„P~~~kk+™L~óæ™™™——†ad2YFFÆÉÉ©¦¦&** !T__ïçç×9MMM„Pss3BˆD"õôiØÛÛ›››—••Lœ8Ï!dmmÝÜÜ„jjjЉ‰ÑÕÕe³Ù†%''kjjâ‘ÏÊ•+«ªª ¦Nºÿ~ü=.^¼øîÝ»>|èú¹u|Dœ·Î—ï½û Ü휆¼¼< ÃètúË%%%L&S]]=##ð%K–x{{cF"‘¤¥¥Ïœ9ÓÜÜÌf³[[[Y,–±±qxxxG؈ˆˆ®…¡   #7ƒnWöžjgŠŠŠ%%%†Ñh´×¯_S(‹•••…·;~üø®ùH$¼pྋ¡¡a]]¾œžž>yòäÎï±ÛÏ­ã#â¼õÞ¿P^ t%þ£  €’––þb!$%%µbÅŠÄÄÄÆÆÆ;wîØÛÛ#„”””233³³³µµµçÏŸÿþ}IIÉòòòÉ“'wÄ411éÚиqãðCCÚšš^Vö¤ã°ØÖÖæéé¹`Á ÃdddŠ‹‹---§M›ŽoY]]Ý5%%%55µW¯^uŽ™››;cÆŒOŸ>}øðÅbéëëãë :òÁO8:>99¹Ÿ~ú)!!¡­­-55uÆ øúÊÊJ üº) ‹ŠŠŠŽ·ÖÓçÖ‘ç­ Glll’’’âââæÌ™ƒwQ©T6›O"‘6nÜheeE"‘´´´^¼xѱWQQQ×Pø¯c„Pqq1~°ëieŸäää6oÞ\]]]__O¥Rmmm=<<òòòð ÆŒÓm>Ë—/ÿã?°NçQQQ CNNNMMMJJª¼¼__VV¦¥¥…/w>‚ãìììRRR¦M›ÖQÛTTT:JWsssvv6¾?¦wû¹uìWë‚Â݉@\pÞ•Ôq,ëv™Éd55µ°°0ü%*•*++›ÐÐÐpñâEYYY*•zòäIpíÚµººº›7ov;ÆðÃ?”””„P^^Þ¹sç:ç3vìX<“úúzeee{{û‡¾xñâøñã¡ëׯãM¬Y³ÆÜܼ¼¼üåË—ÆÆÆx>Ý~,ø˜ó¸qã:wX¹¹¹Y[[WVV¾xñbæÌ™;vìè<„ÐíçÖyÎ[çý{ï9~ Ã\\\† F&“;×××—‘‘144LNNÆ0ŒN§{yyéééÉËË›šš^¾|¹ka=z´ŠŠŠ««kÇ1ñ‹•ã u^îüÓVRRÒÄÄŸ_Ã0??¿Q£FéèèØÙÙ&“éëëk``0|øpSSSüÇ;¾qee¥µµµ¦¦¦‚‚Âwß}—’’Òñ¾H$’£££²²²†††»»;žOOË–-[äåå)JÇîd2yÆ JJJÊÊÊ[¶likk뜷Ÿ[ç úÕzOx) ð<9|úe¾üO?tèPeeett4ç»”––Ž7®£õ/þìe%à/ß;Üàè[{{{mmmhhè•+W„ 8|ô-''gúôéNNNfff¼ÄQTTtvvæd%"èJ`ãcW#¼|ïpÆà3P| €Ï@að¸\€¯ÂÅ‹;–1 £Ñز²RBÌÚ³gϸÞ ƒœ–––””TÇõ ²²úòò³X¬–ææëÂM š®®.w;Âåª|X,vbâ³óç3**V¯žéêú£ŽÎ(a'D¿J~û-¥¨èýòåSví²?^]Ø‘]I fïß7{y¥¤¦æ[YMö÷w40 ;#  008Q(4Ÿ—.=œ8QëæÍÝ“&é;# 6 + €A(+ë­§g|SÅÝ}áæÍó¥¥á$ÐpÆÀ B¥Òû-%"âÑ’%&¿ýö‹ºúagćKÝÝ/3¬K—6™›#ìt€¸‚ÂÀ`Àd²ÿøã–¿ÆìÙãΞµƒÀ c@ì}üøÉÙ9âéÓÊ#G–¯[÷½„„„°3â ÎoÕ6„JKK¥¥í24Ôv:`0€Iôc7n¬Xq^__õæMw¨ €_ 0 ®‚‚²œ#–-›µEIi¸°Óƒt% –|}oþùgúÁƒK·o7v.`°Â€˜a³±ýûãccŸøû;üüóTa§!( ˆƒåæ}ûvapð ca§'( ˆövÆ–-á99åÑÑΦ¦úÂN ZP­­íë׿}KŒ‹Û3â‚€ ‘Úìí/|ø@NLÜOS‚…Q×ÜܶfÍ…úzrlìÖqãÔ„ü 0 ÒÈdêêÕd259Ù Æ DWKË'k뀶6ZR’+Ì‹ D…Bsp¸H&S¡*€…QôéÝÞþBMÍǤ¤šš#…øºÀ\Iˆéäúî]cB¶1cT„øêÀ¢…Á`¹¸D¼|Y“°M_ŸÀ¯°zzz•••üŠDŸ‡‡ÇéÓ§¹Û "„ÉdoÛ™]¿ÍÈH“‘+++ÝÝÝMMMùˆ,???^~@a@„;–”‘ñêÒ¥Í'jñ=ø¬Y³llløˆ øøx^v‡Â€¨ð÷ψŒ|â4gÎ8aç¾jP ±±ONJûë/˜3\•€ðÝ»÷fß¾8w÷…¿üÏWÂ…!+*z¿eKøŠÓvï^$ì\@ ÂUSÓìà4uê˜Ó§m%$$„Ž•––òñ Jt¢¤¤dkkÛÐÐÐßL$ºÓ{ž=½Ú9¦ †a}î"Ê 0 4--Ÿ.*+ Z/--%ìtÄÌ£GêêêjkkÓÓÓkjj\]]¹ÒÙÈ‘#===yI,!!!66–—BƒÏÎtr ¥PÚÓÒv)(È ;ñ£ªªª®®ŽÒÐÐðññ±²²â%HgÞÞÞ¼$æìì¼}ûv33³®‘Åœ1 ‡%¾xQ¼AMMT&È“ 522RUUõööŽŒŒÔÓÓ1bÄ‘#GBnnn7nÄ·¤P(rrrÏŸ?G¥¦¦š˜˜ÈÊÊŽ;622!Äf³ÏŸ?odd¤  `jjš™™Ù¹/ïZINNž0a@pss£ÑhÝ®DŸ÷ÃôÒ'#%%E üw—øõë×§L™"''§¡¡âY,–¯¯ïøñãfÏž““Óˇйƒááᡦ¦F <<< FÇf½Ätww744ܲeK神rëócï= AÁ.4ô¾––ûÍ›Ö"B(66¶ÏmìììÈdrpp0BÈÖÖ–L&_¸p!ÔØØ˜••¥¬¬Ì`00 ‹ŠŠ266f³Ù eèСuuu!!!C† ¡P(.\ ‰‰‰µµµiiiÚÚÚ¡’’ü€ƒ/,\¸°¸¸8;;ÛÀÀàøñãÝ®Ä0ìãÇAAAxz—Bùùù­­­d2ùÍ›7fff^^^†‘Éd''§ššš¨¨(„P}}½ŸŸ_ç|455ñL:‚t`0ybæãã³råʪªª‚‚‚©S§îß¿¿ãÕ^b–””6,,,¬ãýö”[Ÿ{·iôùuÛØØàCÜÂÀ@ËÈx¥­½ûüù;Ù(‡…!//Ã0:þÅrII “ÉTWWÏÈÈÀ0lÉ’%ÞÞÞ†‘H$iié3gÎ477³ÙìÖÖV‹ellÞ6""¢ka((ø¯(ÆÆÆt»²÷T;STT,))Á0ŒF£½~ýšB¡°X¬¬¬,¼ÝñãÇwͧk„PjjjçÂ`hhXWW‡/§§§Ož<¹ãÕ^b♜;wNQQ±ªªªc—nsëócï6Þ¿GŒçÂ]I ¨ÊÊÆíÛ£¬¬&oßn.ì\º¡  €’––þb!$%%µbÅŠÄÄÄÆÆÆ;wîØÛÛ#„”””233³³³µµµçÏŸÿþ}IIÉòòòÉ“'wÄ411éÚиqÿÝÝmhhXSSÓËÊžàM ÃÚÚÚ<==,X€a˜ŒŒLqq±¥¥å´iÓÂÃÃñ-«««{ʧ#nÙ²e›¨¬¬ÔÐÐÀ¯V²°°¨¨¨èx©—˜¸;vL™2eÓ¦MØÿ¯@Ýæ†ëåcï= ÂÀÀimm_·.XOOÅÏoµ°sá†MRRR\\Üœ9sð"*•Êf³ãããI$ÒÆ­¬¬H$’––Ö‹/:ö***ê ÿ*..ÆûazZÙ'99¹Í›7WWW×××S©T[[[¼¼¼€€|ƒ1cÆô™O·TTT:*GsssvvvÇK}Æ””” {øðáÅ‹ñ5ÝæÆc…€‚aØÎ—››Û‚‚ÖËÊJ÷½ƒè™;w.“ÉôòòrttÄ×HHH,\¸ðêÕ«d2™N§KKKËÉÉ999yxx$''‰Ä[·níß¿¿k¨;w–––æææ|¸©©)þ‹û‹÷Õ¡s+d2yÆ JJJÊÊÊ[¶likkëx•Øl6Û¢#`×Ü8ùØ»¦Ñû÷ˆñ<Æ u7à¯ë×_8;Gœ:e½ví÷BI@BB"66ÖÖÖ–Ç8‡ª¬¬ŒŽŽæ|—ÒÒÒqãÆuj¾ø³—•€køÇÝîpƒWQѰwo¬­í aU¾hoo¯­­ ½r劰s‚c ÎtvŽÐ×Wõñï‡ääääLŸ>ÝÉÉÉÌÌŒ—8ŠŠŠÎÎΜ¬Âg Ö¡C‰µµÓÓ÷ÊȈ÷·ùóç“H$.vÄïHèø“@ ~±M·+°ˆ÷¿TD\bâ³Ë—³/]Ú¤¡1RعÀ)èJ@PÊÊê==ã·l™onþ°s  0 4sË–CCƒ—õ½5¢º’ˆ'Rëê>¦§ï…-±÷1À7o¾Ü´)ìâÅuK—Nv.ÿ‘øöÛoÕÔÔð?étiIIlȦp³òòåËyóæÁ} ˆŠêj’»û•õëg‹NU@íÞ½»ºº!D¥©©Q¨¯¦­M=š,ì¼€@Ì›7—›áŒ~b³±U«ššÚnÜpµ ‘òòÞùøÜ¸¿xÒ$Ý»™›#))fÏ"Îà§ààss+oÞÜ-RU¡²²ñäÉëii&&ÚAAë/6’z…¾yõªö÷ßS¶22Òv.ÿinn;{öŸˆˆ‡ß|£ã2wîxagÄt%À4sÑ¢?TUåcc·‰Âïq …vî\zXØ}Añ×_¶°0vF@lÀüñÇ·êê>FFn…ªðàA±‡G\c#eûvs³aÃd„'Pàƒìì²€€»¾¾¶::£„›Ikkûo¿¥DGg/]jòÛo+ÔÔ…›GЕ¯(Ú?úNœ¨¼A¸™¤¥½8x𪴴”¯ïª~0n2@|Á¼úí·”OŸhÂUûÓ'úáÉ119+WN÷òúYIi¸“â <¹sçUTÔã ÊÊòÂÊ¡¼¼aÓ¦°ÆÆÖˆˆM0È x“èÀ½¶6ÚÁƒ K–˜XZ~+¬bbrÌÍOŠ™™žP_ÀÜ;yò:•Ê8}Z8Ht:óðáÄË—³ÝÝîÚµPJ ~çþ€Â—rs+""úùÙ ¥CŸL¦nÜšŸ_à¸|ù”O bpUÜ`0X‹ýA (ÆÄ¸ |ëµµíí/´µÑ"#·L˜ >ð €Á Î=à†¿Fee£··õÀ7ýôi……Å™#änßÞUú­¤äߦïÚµpÌ•n:=½hõêÀ¹sÇÅÆn…kR€@Wýƒa˜µµ?™Ü~óæî!Cô§UxøÃ#G×­›ýë¯?ÃP3| bcŸñ÷w1Bn`Z¤Ñ˜[¶„gg—EG;Ϙ¡70ƒÏp„Åb/^짨8,!aûÀ´ØÞÎÀoa»rÅÙÄDg`ÁЉÉyó¦.=Ýc`š£Phkו”|ˆ‹Ûjl¬50€ƒÂ@ßš›Û~ÿýº£ã÷sCYssÛš5>| '%¹ E:ƒÂ@ßüüþ‘””Ø·oñ´ÕÖF[·.„Hl‰Ý*¬ªPYYùÏ?ÿ¥iÐYYÙÕ«WËÈ ÄSZ¡0ЇׯkÃÜ<¹rÆœi4æ† !ïÞ5&&îÐ×Ú¹Âbbb„Õ:艼¼üŠ+ !( ôáèѤo¿Õ¶·7tC4ÓÑ1¨¸˜xíš«žžª ›ë‹Å²±±‰‹‹bà L&s`Ú‚Â@oRSó=*KIq“””hC ËÙ9¢¨è}BÂváV 0Ð#:yòäõåË'O›6F  1™ì­[/åä”'$l32Òh[ô = H$¶>l%ÐVØllïÞ˜¬¬·11.pe*Pè^ss›Ÿßm—´´”ÚÐɓד’òBC}^‡`æ^º÷×_w†²}»¹@[ ʺpá^@€£¹ù7mHì”––JHðm\G¢%%%[[Û†††þf"!!QZZÚ߽ĺñî]SHÈý]»,äå‡ ®•ØØ'Ç'Ÿ>m³té$Áµp=ª«««­­MOO¯©©quuvF¢ º’èÆ™3·´µG98|/¸&îÝ{³o_Ü®]vv³× è ªªª®®ŽÒÐÐðññ±²ìБXƒ3¾TPP˜øìÀ¥ÒÒRj¢°ðý–-á+VLÛ»×R@M ‰ÐÐP###UUUooïÈÈH==½#F9r!äææ¶qãF|K …"''÷üùs„Pjjª‰‰‰¬¬ìرc###Bl6ûüùóFFF ¦¦¦™™™;að>™äää &777ÖíJôyN/9RRRÂ÷^¿~}Ê”)rrrÞÞÞ!‹åëë;~üx…Ù³gçäätûÞ£££ŒŒFuúôé^öb0jjjÁÃÃÁ`¤¤¤hii577#„®\¹2~üø¶¶6ž¿ ¾ÂŸ³¶>¿|ù9Áůªjš<ù¨] Î\+¼°±±±±±és3„™LFÙÚÚ’Éä . „³²²”•• †aQQQÆÆÆl6›B¡ :400°®®.$$dÈ! åÂ… !11±¶¶6--M[[!TRR‚ ð…… ggg?~¼Û•†}üø1((O¯ó2B(??¿µµ•L&¿yóÆÌÌÌËË Ã02™,##ãääTSS…ª¯¯÷óó뜦¦&ž žUG@kkëæææ   „PSSSO{ùøø¬\¹²ªªª  `êÔ©û÷ïÇ0líÚµëÖ­#‰jjj999œ|)¡ØØØþ}‘Ü‚ÂÀg23_kjº?}Z) ø­¦¦',,|[[ÛÔï8/ yyy†Ñéô/–KJJ˜L¦ººzFF†aK–,ñööÆ0ŒD"IKKŸ9s¦¹¹™Íf·¶¶²X,ccãðððް] CAAþjll¬A·+{Oµ3EEEüO£Ñ^¿~M¡PX,VVVÞîøñã»æƒu) ™™™ßoO{ÖÕÕá+ÓÓÓ'OžŒaXss³¶¶¶‰‰ ^Ï81…º’ø?†y{ß077š6m´ â3¬­[/µ·3ÂÃ7 tX{À((( „¤¥¥¿XFIII­X±"11±±±ñÎ;ööö!%%¥ÌÌÌììlmmíùóçß¿_RR²¼¼|òäÉ1MLLº64nÜ8|ÁÐদ¦—•=é8¦·µµyzz.X°Ã0™ââbKKËiÓ¦…‡‡ã[VWW÷™B?'èx¿=íUYY©¡¡_eaaQQQ9rä–-[ŠŠŠ¶nÝÚ{ÚB…€ÿsãFAaaÍÁƒËÿøñkyyï"#7kjŽP"ÅÆÆ&)))..nΜ9x•Je³Ùñññ$iãÆVVV$IKKëÅ‹{u …Ÿ" „Š‹‹ñ#rO+û$''·yóæêêêúúz*•jkkëáá‘——€o0f̘>óAIJ~vüìi/•ŽšÔÜÜœª®®>þü?þ¸gÏÓHPø“É>u*måÊ醆™”"$äßK—møznož;w.“ÉôòòrttÄ×HHH,\¸ðêÕ«d2™N§KKKËÉÉ999yxx$''‰Ä[·níß¿¿k¨;w–––æææÜÔÔÿßçûíi/2™¼aÃ%%%eeå-[¶´µµýõ×_“&M¢Óé†%%%ihhH$N>íc€g>€BL&{Þ¼S¦¦ü±ŠïÁ+*–,ùsÉA[[[„_¦Ý>tèPeeett4ç»”––Ž7®ãÐôÅŸ½¬Ü$$$bccñ¯FÐà7B(1ñÙû÷Íîî ù™L¦®]l` zòäJ¾eíííµµµ¡¡¡W®š8 IDAT\v. `ŒÄ`°þüó;»™ÚÚ|ž/Åb»¸\¢Ré!!‡ýº~‡åääLŸ>ÝÉÉÉÌÌŒ—8ŠŠŠÎÎΜ¬üòuýK [ ¹µµÝÜ,øùÏ?Ó=*½zu; À÷à"nþüù$‰‹ñ;:þ$_lÓíJÀ/PÀ׎Á`=û½½)ß/!ÍÊz{öìmoo˜OˆèJ_»˜˜œ¦¦67·ù¶ªªÉÅåÒªU3þ°hø øª1,ÿ»vv3ÕÔù–Ngº¸\ÒÕ%Žί_בHÄ&èJ_µk×òˆÄ–;øü4žãǯ•—×ߺµGŒœZ¯]Ë‹‹Ë-*z¯¨(?jUØ¡›µð‹Å>{öŸÕ«¿SWÁǰ O#"……9£ÂǰB¡Ð®]Ë‹Ï}ö¬räH¹_~™öÇ«NœÅyÀ€Â¾^ii55¤mÛð1fq1qÿþøç.\8‘a¡¼¼!88+11Biÿþ{ƒ³gí–.$''ƒ’’’Љ‰ß'SVC† Ðî|_) Ã,,Îjœ?ïÀ¯˜4séÒ³C†H¥¤¸ÉȈJ‚‚²22^ihŒ\³f–ÍŒ/nà(//öì™°ÒÝ’’’Z²d‰¬¬ì´%ºÿv¨ÌÌ7oÞÔýý÷Z>Æp`é¶m `TÀwЕ¾ EEï>,åËMm'O¦¶¶¶ «©±‘âì^Xø>,l£……±PrƒðU }``@àý¦¶gÏ*/]zôÇ« ¾$Ö/ùùU›6…ÉÉÉܸᮯOøÀWÆÀà×ÜÜ–”ôlãÆy<öºÐhÌ;/››³jÕwüÊsééE¶¶zz*II®P€@AaƒßåËÙC‡JÛÚòz]éùów>| Ÿ<¹’/YõKpð¿NN¡ÖÖÓ¯\Ùª¬,?𠀯 t%AŽÍÆ"#ÛØL6Œ§‰ÿûßýû—ð¥ kß¾¸ÄÄg>>6kÖÌȦÁW ä23_WW“Ö®ÍK Ã<=ã 56ožÏ¯Ä8A&S7m ñ¢êÒ¥ÍóçOȦÁ× ä.]z4{ö8ž:壣³Ÿ>­¼~}W·ÂÚÚk×ás1M™¢;`íc `0«ªjÊÈxµ~=O§ Dbˉ)ë×Ï™4ià&Ö.)ù`euŽÅb_¿¾ ª`PÀ`­¦6bቼùý÷ëÆÉxx,æWV}ÊÍ­°²:7nœÚõë»ttF X»à 0€A‹NgFG?¶·ŸÅKÿÏãÇe‰‰Ï¼¼~QT”åcn½ÈÌ|³zuà¼yã/]Ú4|8LŠ„ÆÀ •–VÐÚÚîàÀý\ª kÿþxss#+«É|L¬))ù®®Q663||løòŒ‡„„„ .ðˆ)YYY]ÝþõFBaƒVtôc c^nQþ·ªª)"b³êÅÕ«OÝݯ88˜ž8±RR’?3 ÅÅŽyóÆÔÔ”/р؉wtt„ÂB•—7<~\våŠ3×>|h9{ö¶³³Ù˜1*|L¬'119{÷ÆîÚµpï^KþF655‹‹ãoL .¸»Û œ¢£­t誙ل¥K'ñ7±®þU°qp€a * 0€AèÊ•ìùó'¨«àn÷ØØœÒÒŽüͪ+¼*øøØØÛCU"îcƒMmíÇÌÌ7\Ÿ.P(´Ó§o®];ÛÐPƒ¿‰}!>>÷èѤcÇ~ôU¡´´”™“èDIIÉÖÖ¶¡¡¡¿™HHH”––ò+¥nuÎsĈË–-«¨¨è31þ~V\ƒÂ›„„§#GÊ-ZÄåÝÎçÎ¥3™ì}û{Ÿsbâ3w÷+¿ýö Œ6sáÑ£Guuuµµµééé555®®®ÂÎ!„ÊËËUT>»€­#Ϭ¬,6›íààÐg‘#Gzzz ,GNAWT0 »|9{åÊiÒÒR\ì^SÓœuàÀ2EÅa|Ï­CjjþΗwï^´aÃ\Áµ2ˆ©ªªª««#„444|||¬¬¬„B±Ù즦¦Îk:礭­M&“{ ¢¢¢âíí-ØD9g `Pyü¸¬ªª‰ë~¤S§®kj*mØ0‡¿Yuv÷îë;¢œÍvï^$¸VúKBB"44ÔÈÈHUUÕÛÛ;22ROOoĈGŽA¹¹¹mܸß’B¡ÈÉÉ=þ!”ššjbb"++;vìØÈÈH„›Í>þ¼‘‘‘‚‚‚©©ifff玼Ÿ$99y„ ÁÍÍF£u»}Þ©ÒK‹””ðßԹׯ_Ÿ2eŠœœœ††~xe±X¾¾¾ãÇWPP˜={vNNN·ï=::ÚÈÈhÔ¨Q§OŸÆWv}k!ƒááᡦ¦F <<< žXFF†®®î¸qãBx%è6O„“ÉD}üøqýúõ***ÚÚÚ{÷îmooÿâ#·ÉÞÞÞÜܼ¬¬¬  `âĉBÇG„a˜¯¯¯±±qAAÁË—/gΜ¹wï^ úý"úüfccc9ûÇÒi¯þî€Èjk£x††þËžl6{Ù²?—/?Ç÷¬:¼ySgdtpãÆPƒ%¸V¾ÀyaÈËËÃ0ŒN§±\RRÂd2ÕÕÕ3220 [²d‰··7†a$IZZúÌ™3ÍÍÍl6»µµ•Åb‡‡‡w„ˆˆèZ ðWccc º]Ù{ª)**â‡xöúõk …Âb±²²²ðvÇß5¬KaÈÌÌìü~»}k†ÖÕÕá{¥§§Ož<¹sòo³kžÒÒÒóçÏÇ[¤ÓéRRR………øf‰‰‰Bç &LHLLÄ·yõê¾ÜíÑç7ËEa€®$0xܸQÀ`°~ùeûÞºU˜—÷îØ±Ÿøž®®î£½ýccÍ€Ç|ÚçBÒÒÒ_,#„¤¤¤V¬X‘˜˜ØØØxçÎ{{{„’’Rfffvv¶¶¶öüùóïß¿/))Y^^>yòÿM8hbbÒµ!¼Ë!dhhXSSÓËÊžtÓÛÚÚ<==,X€a˜ŒŒLqq±¥¥å´iÓÂÃÃñ-«««ûÌ!„ŸIt¼ßnßB¨²²RCC¿ÐÈ¢ã*#CCÃÞó¤Óé÷îÝ300@}øðÅbéëëãÛtû~ß½{×ñ™ýòË/¨‡/BDñ(ܹzõé?Ž)×ßY,¶·wÚ¢E§N-ˆÄ)+Wú5<,l“ŒŒX^ñacc“””7gμƒˆJ¥²Ùìøøx‰´qãF+++‰¤¥¥õâÅ‹Ž½ŠŠŠº†Â#„Š‹‹ñ#rO+û$''·yóæêêêúúz*•jkkëáá‘——€o0f̘>óAáÇýݾ5„ŠŠJDZ¾¹¹9;;ß¾£¢pBMMMJJª¼¼ÿ³¬¬LKK«ëfššš•••ør~~þï¿ÿŽ/wý" $ˆÄ–û÷‹­­§s±oBÂÓŠŠ†ƒ—ñ=+„ЧOôµkƒX,vdäyyq}¾Âܹs™L¦———£ã÷ýIHH,\¸ðêÕ«d2™N§KKKËÉÉ999yxx$''‰Ä[·níß¿¿k¨;w–––æææF~~Õ¶m‘+WNß¹Ó‚¿‘…bþüùøe9ý…ß‘Ðñ'@ üb›nW‚nqýEôœ1±÷ôiÅû÷Í?ÿ<µ¿;ž?gøp¾OcG$¶lØ:mÚè3gVñ72 {ÉÉùFFš&t?GMOêë[/]z´m›¹œœ “¡Réëׇ &}ñâzî&ò@è 0ñÆd²SRžÿòK¿Oþ÷¿ty¾Ï—wðàÕòòú JJÃù€…ˆ·ììR©mùòÉ}oÚ ‘ØýxëÖüýQö >>÷üy##NïÝ@Áà3o))ù&&ÚººÊýÚËßÿî¨Qòöö³ø˜Éǥǎ%yz.Y¸Ëg HyyùÅ‹{ßË… "üg‡Q…ˆ1&“}ãFÁ¶m úµ‘ØõèÈ‘å|œ¶¨ªªiË–ð%KLvì0çWL¾ÐÑщïåzÐ!CF6QNÎèÓ§ÂÖÖÇ™RRRÝÎÅÔ; ¬Ë4¶ˆ‹¬¬·kÖ\ÈÍ=ª©9’ó½ŽMº~ýÅãLJ‡åOahog,_~ŽÉd§¦î>\cb\$$„3õ•J÷ôŒOHxjm=ýäIkyy1˜Üˆ5( @œÜ¹ójΜq²²ÒœlñpØ0™Õ«¿ã¥ÅÇË3ýüìÔÕGð‡kÕÕ¤­[/½~]wú´­ƒC?îé€kðt 6h4æýûÅææßp¸qXØ}GGS^¦Ì£PhîîW/6±µÁu^ܽûzÑ¢?>}¢ß¸áU 8cbãáÃ*•aaÁQaHIyÞÒB]·n6/-ž:uL¦ž8!„ëS™Lö¯¿&‡†Þwrš{䈌3ƒÿÚ€ØÈÈxõÍ7šÞr|ñbÖ²e“x¹?ùÑ£Òðð‡þþjj݉ÔÐÐêâñâEõ_Ù¯X1m€[ ÿüSdcÃQ—ÎÓ§EEïOZÉu[ m×®ËK—šüüóT®ƒpçÍ›:'§P‹}õêŽI“„yu,øjÁ¯_×½ßÌáCX؃I“t¦Oç~ÒéS§Ò¨T†·· ׸“ž^´|ù9]]åÛ·÷@UÂ…ˆ‡;wŠTU¦Léû1dõõ­×¯¿àet!;»,"âÁ±c?5œë ýÅfc¿ÿ~}ýúgg³+WœGŽäÃs#àt%ñpïÞ›¹sÇsrGBTÔ#yyY®»€ÚÛ{öÄþø£±µõtî"pNgzxÄ%%=;yr%æ¼xøðá‚ ètº°œÐÓÓ+//hP€ “Ûss+γïsKƒùhõêï8¼×¡«?ÿü§¾žãÂÝî\øøñÓ† !oÞ/_vž3gü€µÛÕû÷ïétz\\œs½{üøñÙ³gÝ  >,a³1NžJvëÖËÆFʆ s¹kèí[âßg=ºœó‡†ò¨¬¬ÞÁáâ!R·oïÖÕU˜F{gc3Ð#+€s† @+0ÆÄÀ½{oLLt8éñŒ|zTÆI?Rdä#sóoÔÔûÛƒÁÚ·/þ‡ úi W9rª½±qchFÆë  õÎíx÷èÑ£ºººÚÚÚôôôššWW×þFhmm>}znn®Ï³gÏ8maaÁb±ºÝ¾¼¼\EE_9r¤§§'Oo@ + ˆ´ÜÜJ*•>wnW÷¿~]—›[íÌEaa**BC¸JSŸ>Ñ×­ *,¬‹Û6mÚh¶:SUUUWWGihhøøøXYYõ7‚———ªªjFF†””Bhüøñ‹-š8qbXXئM›ºnÏf³›ššðeoooÞÞÀi£Ò祜QQuu•9¹Ñá DbË™37·m[0fŒ ·9ö­¹¹mÅŠó¥¥õ))nƒ *HHH„††©ªªz{{GFFêéé1âÈ‘#!77·7â[R(99¹çÏŸ#„RSSMLLdeeÇŽ‰b³ÙçÏŸ722RPP055ÍÌÌìÜë‚wÂ$''O˜0@ ¸¹¹Ñh´nW¢Ï{lz齑’’"øòõë×§L™"''§¡¡»Y,–¯¯ïøñãfÏž““ƒouôèQ¼*à†îááÕm>³fÍBáÕ¨s2?~\¿~½ŠŠŠ¶¶öÞ½{ÛÛÛñ3::ÚÈÈhÔ¨Q§OŸæËÄ"léÒ³û÷Ç÷¾M{;ÃÈè Ÿßm.â;;‡Ïžý;Æà*;Ž45Q,,|'O>VZúAp­ðEll,'Ç„™LFÙÚÚ’Éä . „³²²”•• †aQQQÆÆÆl6›B¡ :400°®®.$$dÈ! åÂ… !11±¶¶6--M[[!TRR‚ç€/,\¸°¸¸8;;ÛÀÀàøñãÝ®Ä0ìãÇAAAxz—Bùùù­­­d2ùÍ›7fff^^^†‘Éd''§ššš¨¨(„P}}½ŸŸ_ç|455BÍÍÍ¡†††/>„‡ª©©õ’$¾Yçe{{{ssó²²²‚‚‚‰'â™#„¬­­›››ƒ‚‚BMMM|ùŽx…ˆ®––OÚÚ»SRž÷¾ÙÕ«Outvø@îoü;wŠ44vÝ»÷†ÛûF$¶Ì›wjêÔãeeõ‚k…_8/ yyy†á³*u^.))a2™êêê†-Y²ÄÛÛÃ0‰$--}æÌ™ææf6›ÝÚÚÊb±ŒÃÃÃ;ÂFDDt- ¹t»²÷T;STT,))Á0ŒF£½~ýšB¡°X¬¬¬,¼ÝñãÇwͧ§Âðøñc•^’Ä×t,Óét))©ÂÂB|}bN„Šr IDATb"ž9B(33³óØû‡?0…º’€èÊÎ.Ã0lΜq½oó䇌…~§Ñ˜GŽ$-]:‰‹(}øÐbcãO£1¯]s;VU@­…‚‚BHZZú‹e„””ÔŠ+ïܹcooRRRÊÌÌÌÎÎÖÖÖž?þýû÷%%%ËËË'OžÜÓÄĤkCãÆý÷íÖÔÔô²²'‡Ú¶¶6OOÏ `&##S\\lii9mÚ´ððp|Ëêêê®ùŒ9R]]=??ÿ‹°ùùùÓ¦Mã<Ÿ>°X,}}}üOƒŽ-ñS“ŽP@a¢ëÁƒCC %¥ÞfÂx÷®éáÃ’U«¾ëoð?| ;ö ö¦®îãÊ•þ +!aû€Í¼$"lll’’’âââæÌ™ƒwQ©T6›O"‘6nÜheeE"‘´´´^¼xѱWQQQ×Pø/n„Pqq1~íieŸäää6oÞ\]]]__O¥Rmmm=<<òòòð ÆŒÓm>ööö^^^¯Ajkkóññ±´´ä<555))©ŽYQËÊÊ´´´ðeII‘;‹\Btxø°¤ÏÓ…„„\eåáÆýŠ\_ßzöì?nn?r7«RŸÞ½kúé§ÿ±ÙXBÂv5!ÊæÎËd2½¼¼ñ5 .¼zõ*™L¦ÓéÒÒÒrrrNNNÉÉÉD"ñÖ­[û÷ïïjçÎ¥¥¥¹¹¹tppèieKK >àñÅ2B¨¡¡H$‰Äªª*UUUF§Óedd¨Tê±cÇB­­­...ó9zô(áèÑ£õõõæææ·nÝ*))IJJš9s¦––ÖÖ­[{I’B¡t~#ÒÒÒ«V­rss«¨¨(,,<|ø0~.%¢ÝWwêëÉššîÿüSØË6,{ÆŒ_¿ÖßàûöÅ͘ñ+•Jç!Á‰MMOÌœù[UU‰¢†ó1†Žþ™ž–]\\† F&ÿßÀOll¬¾¾¾ŒŒŒ¡¡arr2†at:ÝËËKOOO^^ÞÔÔôòå˨ËCppðèÑ£UTT\]]©Tj·+±ÏÇx;/w>ÖIJJš˜˜dggã/ùùù5JGG' ÀÎÎŽ@ 0™L___ƒáÇ›ššfggwÄ¡P({öì™8q¢œœœ±±ñ‰'>}úÔS’ cΜ9òòò_$C"‘•••544ÜÝÝñÌ{úyüŽx…ˆ¨ää<]Ý=­­í½lsÿþ[ ]oÞÔõ+ò«WµÚÚ»ryK°{MM”ùó½¿ûΫ¦†$ˆøÅǃÎÁƒ׬YÓ¯]:C»þÙËJ!ø|¦0À n@D=xPbb¢Ýû11O¦LÑ0A½_‘OœHùö[í+¦ñ–`7š›Ûllü©Túµk®#ù_,´··×ÖÖ†††^¹rEع.ÁQ—ÍšeÐË íÖ­—66ýv¾wïͽ{o½¼~æû 6 ÍÁá"‰Ô»õ«­ ¡œœœéÓ§;99™™™ñGQQÑÙùË[Ù»])D¢–¿ÀE>ËÊêMMõ{Ù&-í“É^±¢Ïvf2ÙÇ'[ZNœ>]ç?óéÝÞþBeeÓÕ«Ûzµè›?>‰DâbÇŽëúq!00ð‹mº])D¢–¿@a¢èéÓ ))É3z;|'&>[°ÀHQqçaãâžTV6FDt3¿ /èt¦“SèÛ·Ä«W·Äã(èJ¢èÉ“ CC Ùž6 [>,é×8Akk»·wÚºu³GæçC4™LöÖ­—ž>­ˆŠÚll¬ÅÇÈ œ1Q”“SþÝwc{Ù %%_^^¶_·/f²XØîÝ yÎîÿ°ÙØž=1wï¾¾ti3ß»§8c"‡B¡½Ÿ9³~¤Å‹¿:”Ó_6ïß7ÿýwæ®]#FðóéÊÞÞi‰‰ÏþüsMŸƒ FàŒˆœ¼¼J‹=sfg oß ª^ÆyÌÓ§ojjŽ\¿~?üOXØ}ÿ»¾¾¶‚~Âϳ°°`0†´·Ë)(… øÒ‡ ( @äâûïû˜-£Ãë×µ‰‰Ïüý¥¥¥úÞš3‰‰ÏN:p`)wMúúçÍsª©‘%“e¤¤Øß}G””ür‚R \JJJ‚n 9Ož”÷rº€aXRÒ³åË'KJrz#‚·÷I“t¬¬&ñ)AôäIùž=1ë×ÏٱÜ_1…¨¢¢!1ñYjê‹âb¢ŠŠ¦µõT+«IÓ¦‘’‚®æ¯ Z Ö³gï~þ¹Ç»òòÞ½{×ÄùõH•¦§]»æÊ¯;ÚJKëׯY°ÀÈËëg¾ …––ö">>7;»lØ0 cOÏ%?ü`(++Bó?¡€ÂDËË—5T*½—K’Ÿ¯nb¢Ãa@ŸóæMèý'ÎÕ×·:8\Ô×'øû;Šéj6{ø°$>>÷ƃenþÍÅ‹ë,0‚z:@a¢åÉ“ y}ýîkÃ`°RRòœæríîÝ×OŸVÞ¸áΗÜÚÚhk×IIIFDlÇÃhAAuTÔãë×_´´PçÌwꔵ¥å·½Ü,¾ZP€hyò¤|Æ ½žº}þý÷-‰ÔöË/Mƒa˜ÏE‹&NšÄééE/˜L¶‹KDmmsJÊÎQ£z{v¨a2Ù·n½ ù7'§œ@PX½ú;›ïŒŒàmÐ#( @„`öäI¹«ë=m˜ølêT]'#JK+(*zÿ¿ÿñçq($<~\– NS!57·]¾œö€Hl133ŒˆØôÃFC†ˆeHP€)+k ‘Úzhk£ÝºUxèG·/0™loï´Ÿ~šÒßI¹»öàòåì€ÇÉ“uy6ž>­ ú÷Ö­— ²6Ìqpø^MMQØI±…ˆœœ²áÇ~û­v·¯Þ¾]È`09¼›,1ñYu5)*j ïY=|Xzüøµ½{-ÅâF¶ÿ}{þ|ƃ%„_ýÅÚzzïÏ´ +( @„ãP©ôsçþqtü^KK‰—|X,¶‹Ë¥OŸèW¯îà|¶¾„—„€€»eeõ«WÏ ÛÈßÅÁWKÿ¹ƒ¯Óóçï$%%¦NÝí«7o|÷ÝXN® {ÐÖFÛµ‹×ùd¼½oää”_»æJ (ðJ?.ûí·”—/k–/Ÿ¸ÎAa¢âùówúú„nï·jogdd¼>p`iŸAÚÛ.Üstüž“¡ˆ^à¿Äÿ÷¿5=„ Qiiý‰©ÿüS¸xñ·ýe¯¯OvF`°ÂDE~~uOƒfe½ýô‰¾d‰IŸA""~úDçqn»çÏ«öì‰Ùºõ‡•+»ð–êjÒ‰©ii/fÎ{óæn¾Ü¸@WP€HÀ0ìÅ‹ê}û,»}õæÍ‚©SuÕÕ{œˆ×ÞÎøûï»kÖÌRRâþÎä¦&гsøÌ™úû÷÷}‚2`Èäö¿þºz_WwÔ•+.ð\ PP€Hx÷®©¥åÓ¤IÝœ10¬[· ÝÜz¼ºClì“–ê¶m ¸NƒÅboÝziÈ©ÀÀµ¢s‡ðÇŽ]km¥îÙ³hãÆy¢9øDB~~•´´”±±V×—=*%“©Ë–õñ4ƒuþ|†­íw¼Üâ{âDê‹Õ7n¸ÉÏ'€r­²²ñðáÄÌÌ7«V}wèÐ2Nà òó« 5ºý-|óf±±–®nb&&>ûð¡eûÿcï¼ÃšÈº8|“ˆH/:H±(ľb¥ˆ®]uUëZ–U뮊T@AÄŽˆ¨4Q¤((Mz @ÊÌ÷ÇøecZ÷¾ÏäÎsÏLÂüfÎ-gmÇ_îÞM½p!öìÙE½¡;—Él:tèÁ•+¯Ö~òd³HÉ„@º ( ^AK=Ï<òðaF›¹šy<äĉ¨Ù³‡¶©-‘]±yóÍåËÇÌœÙóë^„†&Í45ÕÐÔTléÀ›7“]ºtt»šË˫ڱãÖ²ev&˜uÄÝö“•U>qâ‘àà×—.-ÿûo7YÙ~’i·—››Û…(8”””\\\¾|ùÒ^O(((̘1ãóçÏ]åaK”••-X°@OOOVVvĈáááÝÝb'ÂéI>|(í×OÊÀ@x°æÓ§™­Ä‘8ÞùóÏ]\¬Ú±86‡Ã[»6P__Ub "ùù½˜>ý¸²ò€§O½¦L±L£?6ñññåååeeeQQQ%%%ë×¯ïŒ‘ØØXA~ùå—.÷Sššš!C†ÈÈÈ¿~ýzþüùnnn?î¼åüü|UUáQ]ì|†ô$?–›˜P„î¹¹UEE5­Ä‘|xKF0§M›öìÙ³òòòæÚ¼€t:@£ÑZºþ .tppÈËËKOO·°°à_l¯à6ÀÉɉN§_¼xPSS#¸·Ío988Xœšßê‹_éZªªÊÆ—/? ~ýÚ £³ùöí7-µd‰Ÿ£ã‰v5´qãuKËÝÕÕutT<˜ÌÆß~»J¥zúú>E¤[Ûñ…!%%EQ6›-´““Ãår544¢££Q>}ºŠ¢4H$=z”N§#RWWÇãñÌÍÍøf¯\¹Ò\ÒÓÓ±½ÁÁÁFFF" [wUyyùœœE›šš²²²˜L&Ç‹ÅÚ566nî"‘8nܸVŒz(²B›F£ètºÈ3b³Ùáýû÷ØÇ°°0þeÁJ„„!&&FÐx÷ C¯~É…üØde• ún¬ê‹Ù‚¶4j¨¨¨&::sÅŠ1â·rï^ZpðëÇ]º5aòÇåS§õ*'8ø·µkúÖ|f999‘HÚ„¹s熅…UWW?}útáÂ…%%¥˜˜˜ÄÄD--­qãÆ½|ùÇççç[YYñmZZŠXwàÀoóØMMMKJJZ)l ì^Œ¢h}}ý¶mÛ&L˜€¢(‰DÊÎΞ:uê°aðšÅÅÅ-ùÃ7Âf³Ÿ?nddi„ïXëZ¹€JJJêêê™™™‚õ“““GŒÑÐÐPYYÉãñ ±r###¡+ ¤dØ{ßx÷…Òcdf–««+-UóÑÊJ[QQôp£Ë—_ij*þüó`1›¨ªªÛ¾=ÔÕÕº[ݹ“âèxBQ±ÿ£G›zjùîîÃÙÙ9<<<$$ÄÎÎ ±X,ABCCi4š»»»££#F£R©iiiü£>|øÐÜö„ ÈÎÎÆîq-¶‰ŒŒÌÊ•+‹‹‹«ªªX,–‹‹‹——WJJÊ™3g° zzzmú#ˆH#ظ• ­3sæÌcÇŽ Þâ9ŽŒŒŒºº:@ÈÏÏÇÊóòò¨ÔoÏIX·Gii© )<^Bwl( ããDzAƒ„»‚cb²ìíE¿.44°oÜHZ¸Ð¶yæ‘ (êéy]^¾ÿþýâ.*Ù^x›ÍÕÕÝrëV²`á… ÏÍÌvr¹<‘‡88öðÓ~~~•¡áV!áéBRR ‡ ÙkmíýáCi75ÑIÄqعsç‚ ÚuˆÐ-Ud7©ø}§NÒ^a€¡$HÏ—WÅfs…zž_¾Ì5ÊHd¤(9ùsffÙÒ¥vâGQtÛ¶[ZZÊ^^ÓºÆÝï ~=wî)##ò£G›:–R´¯ÐØØ˜ŸŸéÒ¥•+Wö´/É…Ò3de•‰ÁÌel67>>wÌc‘õ/_~5dˆŽ˜éâ’’òΜYÔʪ݃ÃámÝâéycÅŠqׯ¯VR’t’ “””4|øðåË—?¾3väååW­Χ$²Ò€Kb@z†¬¬²Õ³§¤64°Ç3i^¹ªªîþý´£G]ű\PP}à@äÚµ]þ,%rˆ‰É:p`î²eí2Ûw7n6¿½`3øÉdò¹sç„êˆ,„ô 0@z†¬¬2¡÷Ë—Ù::*ÍS¹‚‚úÏš5¤M³(ŠnÝ¢££âé9¹Ë|P\L[²Ä¯ªŠqóæšQ£~´1©ˆ 0”é²³+¿[ãåÅ‹l‘q$‡wõj¼›ÛHq¿»~=1!!ïØ±ù‚ï"'>>wÊ”c$’ÔÓ§^P ?ÝÄæÎíšE¢x<´  îÓ§ÚOŸ¾1QhjÊXY©Lžü[—؇t7aúôv„X¡0@z€ÜÜÊI“Ìùããsûõ“>\_¨Ú“' –›ÛÈÖ­=yòþöí7AA«ää¤;ï[zzñâÅ54>ܤ¦&×yƒ=…Ag,T?þéÅ‹Oqq9uuTªÒ˜1ƒ¶n5¶³3VUíÆ5Ì!=ˆ¤áñ¼¼/kÖüÛóœ;|¸ž´´ð*óAA ööfêê­%ã­¯oÚµ+læÌ!]ðyö,kÕª+¶¶†çÎ-‘‘!uÞ`ŸƒÁhŒýõ!6öÓ—/u ':zÔÕÆÆLîÃ2 iP ’¦¸˜ÆfsCIññ¹Í{w ª_¼È¾|yyëÖŽyÈd6ýùçœÎ;”°cÇ-7·‘Îseï†ÒRzttVttf\\‹Å±° .X0ÒÁÁÌÊJ·—笆tP ’&'§‡ÃñǪ–”ÐKJè#G U MVW—Ÿ0aP+¦ÒÓ‹ýý_þõ—Sçc>ÇŽ=:~üÉÎ?¯]ëÐIS}…úú¦gϲ^¾Ì~ñ"»¨¨F]]~Ò$ó¿ÿv3Ƹ¥DIÿP ’&7·J]]^V¶ö111¯_?)¡ÑD<rãF’««u+«ÏÓóæ°az ¶Ñ Ñ:\.²ukÈíÛoŽŸïêjÝS}&³éÙ³¬Ç3¢£³ ÖÀê?ÿlioofccеÓÅ!}( I“›[%8µ-))ð`¡ePŸ=˪ªb¸¹µ6{Àßÿe^^Ut´WgFd²Xì5k®%$ä^»¶rìXë÷ý0TV2ž&&æ uù¾{W”“SÙJéôéèÚÚ†?þ˜Ý1bb>®XqÙÑqð±cóûúd…ôôâ»wSïÝK+*ªÑÑQ™?ßfÆŒÁVV]¹ä8ä¿ ˆD)*ªÑÖVÆÆÑéõ?VxyM¬úÚÔ”ÒÒÝ-/¯Ê×7ÚËk…¢ØÖïÝK[»öÚ¢E£þüsNß]C»¤„~ûö›°°·99•X¼ÈÑÑjð`ížö òã…"Q ªuu¿õô¾~ý‡‚SÛØlnxø»uë&´tø®]azzª«Vï@Ó7o&yy…¬\9v÷î™}QªªêBC_‡†¾ÉήPW—wrqáÂR/‚tP ¥°°†ÿ6œüÙÈH]p’íãÇï™ÌF'§á"}ð ýÅ‹O!!k:0ëÂ…Ø?þˆè‹›ëë›ì<|¸>ìO†tP ¥°°zÖ¬ocU“’òml¾[þ344yÌcuué3ëë›öì Ÿ9ÓÊήÝ}ÎÜ;sæÙ®]3~û­Åw‘^È»wEÁÁI©uu,ƒÃ‡þy°¼|ÿžö òã…"9˜Ì¦êj&Jb³¹%‹ý›É¹²’ñüùÇ“'Š<öܹçtzÃï¿ÏlW‹(Š8pïܹ˜¿þr'kto ºšyûö››7“>}ª02"ÿö›ýܹÃÄÉl tP ’£¨¨€ CFF)›Í>\¿7<<¥¥é ÅÅ4_ß§›6MÑÒjÇýAÐ;nݸ‘xêÔ/sæ í¬÷ÝLc#'22õÖ­7qq9ÊÊ\]mÎ[» =ˆä(,¬Áãqººª€·o TTdõõUù{oß~3mÚO"§/ìßI¥*­^m/~[oÆë¤ûù-›<Ù¢óÎw%×®Åß½›Êb±§NýéÆÕ£Fõõ¡´> ˆä((¨&“å±[ÿÛ·C‡êòG}üXþáC©ÈÙ y‘‘©îâ÷975qý5àåËìK—–O˜`ÖUþw-,;22-((!9ù³¾¾Úš5öÎÎ#ø3<  DrÕèé}{Exó¦`É’Ñü]·o¿ÕÖV¶µÎÊÀã!{ö„O˜`&þS?‡Ã[½úÊ«W9þþË»$­[—óþ}éõë aao9dæL«]»fŒ¡ßGÐB~T 0@$Cyymyy-?‚ ááogÏÚüæü:;»âìÙÅb6ÁáðV­ºòâEöÕ«+G6ê:ß»­þÆÄàà×yy_ìì9â:y²\ÕÒ ?Jˆä(,¬ÁƧ¾yS %…2äß eeµÍû‡ŒFŸûË—ÌÚ MMÜeËüß¼ù¼zøpý¶(оz•˜ðøñ{YÙ~nn#]]­Å<#¤G€Â‘\.RRBã÷<›˜Pdd¾­zçNЉ‰†¹9Uè3g¢ݸq’8ö›š¸Ë—û¿yóùúõU½D˜Ì¦°°·W®Äee• ªû×_ófÎò,Ûùá‘••_¹\D[[ ðöm *‡Ã‹ŒL]±b¬Pý²²Ú b÷í›­ ÐvþaL’“{‹*de•_½wûöNNÃ}}ö¡D@YYY=íD4«V­rrrêîV 0@$DI  ¥¥ÜÔÄÍÈ(]²Ä+ñâÞ0{¶péÀH==Uqò9÷Uhh`‡…½ LHO/67§80oÖ¬!$Rû+;uêÔÈ‘#µµáª|½Ž„„„( ‡ÒR:‘H “åÓÒŠÙlîСºXù;שּׁ´ù£•0ÒÒŠïÜywõêŠ6‡ó³Ù\w÷K=® ?–_ºô2"â‡Ãsr~ø°³¥e¾±zzzº¸¸ô´a$ö¥@a€Hˆ²²Z <—šZ¨¨(ƒMmkh`?|˜¾mÛt¡ÊÞÞvvµn“Íæ._~éõëüžRE_¾Ìö÷©¬<`Ù2»Å‹Gù¾ˆ„(+£c þ¤§—üô“62õÙ³¬ÆFŽ££•`ͨ¨IIùonÝ`Ϫ‹Å¾uë¿ÿËì슡CuOœXàèhÕç¢FˆHàï"!JKk1aHK+æ¿ DF¦Ži¨¡ñïrª\.òçŸwgÍÒ|’ X©GT!;»ÂÏïExx ‚  Œô÷_fhÇžB~( 0@$DI }âDJC;'§ÒÓs2 ¡ýôiæîÝß-˜œTTD ZÕŠ)A==oÄÇç]½ºRbª€¢èÓ§™~~/^½Ê¡R·m›îâb-//-™Ö!Iê‚Hˆ²²ZMMÅ÷ïKx<ËCùìY›Íýùç—Smh`=úhÙ2;mmå–ì (ºukȃéî’™ÛÜÐÀöó{ag÷×’%~€€÷ÄÄÝ+VŒ…ªÐMäæævá!8”””\\\¾|ùÒOêëë·nÝ:xð`YYYkkë¿þú‹Ëåv•“½ øÆ‘LfÓׯ TªRZZ±’ÒÀýûi#Fè«©Éñ«;ÓÔÄmeFŠ¢›6ݼs'åêÕ•cÆ´;cO{).¦]¸òšËEæÍváÂ’Ö\ÞI||¼¾¾>Š¢¥¥¥ëׯ¿yóf»,ÔÕÕY[[“ÉdCCÃ÷ïßïÞ½;*****Š@hw>ÁÞˆ$(+£¨T¥ˆˆw––Z€ÆFÎÓ§™;wþ̯SUUwölŒ§çäVf´íÙs',ìí… K»U°E,üü^DGgR(Š^^Ó\\FÀÔi}555 …B9t裣c{-x{{«©©={ö “ccã)S¦XXXøùù­ZÕZسCIIPZZ  RÓÒŠ°8Òóç9?ÿüïx¤ãÇ))ɸ» OæsøðÀ€WgÎ,š2¥»ò+°XìÀÀ„É“¹ºžmlä\¾ìž”„E *|‡»té’™™™šššÏµk×ôõõvïÞ ðððpwwÇj2™L™wïÞ"##---¥¥¥ ®]»@Ä×××ÌÌLNNÎÖÖ6&&F0ˆ„Er"""LLLÈd²‡‡GSS“ÈBð}ا•`@ “¿ ¸wïÞ!Cddd(Š€Çã9rÄØØXNNnôèÑIIIXÍÀÀÀ={ö¾ 0`ëÖ­AAA-µËáp¼¼¼ÔÕÕÉd²——‡ÃÁöFGGëèè :Tä%ê- H7ÐÔÄY·.pãÆë¿þ°iÓÍÕ«¯èém9t辦¦çýûi(Š:;Ÿ=ú›ÍÅêüX®¥µ)44¹%ƒ'OFQ©žÁÁ¯»ÉayâDÔ!{µµ7­Z””×M õ~ÁÁÁmÖqssc0~~~ƒqþüy@uuull¬ŠŠ ‡ÃAQ400ÐÜÜA&“Ù¯_¿sçΕ——ûûûKII1™ÌóçÏ“Éä°°°²²²û÷ïkiirrr°[¶1yòäìììÄÄD##£}ûö‰,DQ´¶¶öâÅ‹˜{‚Û€ÔÔÔºº:ƒññãÇñãÇ{{{£(Ê`0H$ÒòåËKJJUUUÇôGSS@§Ó_¾|º ÊÊÊ|oùcÛ‡š7o^QQQzzúСC·oߎí6mÚ³gÏ]¸p!@II)&&&11QKKkܸq/_¾ÄãñùùùVVÿ†--Edü8p ¶ajjZRRÒJaK`J€¢h}}ý¶mÛ&L˜€¢(‰DÊÎΞ:uê°aðšÅÅÅÍýQTTÔÐÐHMM2›ššjjú]&(ÁŸ{AA…BÁFCMš4éóçÏ|‡[ºD½( îbÜ8))¡Âa_ìµ¼ü+`Û¶ÐÀÀ„óçcðx<‹Åvu=óðaFXØÛ;n­_ïàá1±«ãpx¡¡É“'[ºÔ_QQæÎõÑÑ[GˆŸ:Ò&ÎÎÎááá!!!vvvX€ˆÅb!J£ÑÜÝÝi4•JMKKãõáÇ榰m@vv6Ûi©°MdddV®\Y\\\UUÅb±\\\¼¼¼RRRΜ9ƒUÐÓÓéÏÂ… ÿüóO‡}tss»q㆛›V‚ ]---勽L`‚D§Ó±r¾|6¿D½( îÂÖÖÃá‰YEAyù×­[C_¿þŒ ŠY±â²¯oôÂ…¶ÍS ƒÑÙjÖ±c¬­½·l 63£DEm¹re…µµ˜NBÄg̘1\.×ÛÛ{Ñ¢EX ‡›}ºÍKÔ‹@¸ òߤ¾¾IKk“PC{ÿijzîÚu[œ~¹ÚÚú‰S(SS‹šï--¥ÿþ{ØÀÛLLv=ú°²’Ñ güƒÄëcà?·´½zõêþýû3ÿ^êàà`CCC‰djj¢(›ÍöööÖ××—••µµµ½~ý:hÖÇàçç§«««ªªº~ýz‹%²ý>¾/¸-x»Ããñ–––‰‰‰Ø®ãÇ+++kkkŸ9sÆÍÍL&s¹Ü#GŽ 0ÀÖÖ{ÌÇ*3™ÌÍ›7[XXHKKîÚµkܸq®®®(Šîß¿_QQÑÐÐ0""‚_ŸÁ`,[¶LIIIEEå×_­¯¯ôª¥KÔ:ëcÀ¡Í:g ®bêÔcéémÄÛÇÍ;ìØ±ù­„zjkæÌ9•›[…¢`Êsÿåü]©©EgÏÆU«?}šéëœüÙÊJÇ×÷—©S‚½’¡±±±¬¬ìÒ¥K7nÜèi_º‰ÔaUèå—ö1@º[[C6[¬n"‘€ÃlØRsp8ÜóçY_¾0šïª¨ø:kÖ©’:—‹`%~ïÞ;ŽŽ'–,ñÃãq—/»ß»·ÑÑÑ ª‚ÄHJJ>|øòåËÇß;òòòÍç‹,ìstÕ%ê&`( ÒÔÕ5š™íD6~cD"JU,,¬iþcÄîæë×;¬Y3aÀáPyyí¬Y§**¾r¹ßɳ·7õôœÂÏŸ® %AºJ‚üÈÉI›šR23ËZ©C$~úIKJŠP\ü-ôÿr<‚ ÎÎ#¶l™*˜°OQQÍìÙ§ª«™Bª ð††d¨ ­Ãå"_KKéÅÅ´’Ziimi)½´”./ßâª$ÿP ݢ1ÆÙÙü8Çñß!¤¤66»v͘6ío~Ïã!“&Ylßþ³‘‘è8……5³gŸ¬®®ç-„Ãá]¹çá1IYy@—žMŸ¤¡]RB+)¡c÷ý’ì­²’)1‘H P©TE--å¡Cu“’Îõ´Ë ¤{±±1¸pá¹` ?^D àÌ.\Xºwï"‘Àáððx<Š"VVÚûöÍ6¬Åçý‚‚êÙ³OÑé¢UƒÇC._~µyó”®9^—‹”–Ò‹Šj k k*+¿VV2ŠŠjÊË¿bÿxÑÑѵµµ·éZòóó $1Q_xTRfffUU•î%˜››«©©õ´ÿâææÖÞÜR½))e a÷ïoD§?$U¥¤Têê°Á©$’‰D­¯OEѦ6M‘Hyy{iàñ˜Âäñ˜<^=‚`ÿ7tÿ‰Hq8¡Â·o ¼—+%…çw¥DDxŒÑv2j‡WVVÛfüGGGE]]^]]»õc¥¥‰]~‚:::ÅÅÅÝdÒI6oÞ|ôèÑînEøEQ555ssóîn¸7ðüùóÞ6Z—Çã9;;K`8¤½„„„¸ºº –¼|™}èЃ””B,jÄWWRB£±  ñ¾hj*J~úEQQ‘„[„ô6`Ìi7QQþù'êÝ»o’ 8Ê@$=ÊÈÌ,ÃFÓªªXÈ‹D’ÒÔTÔÒR23£Lš4HKK™JUÒÒRÒÔT„Þü-B í *êñcÓÓ‹±Å9„$E‘·o rs«´´”,,´¦L±ÐÒR€L–o)å$Ò{€Âˆ‹²ò¼%K¾-æ,83C.51Ñ êóË6@þ³ô¢9H/‡Ã)ß¿ÿþýû63‚:thÞ¼yEEEéééC‡ݾ};Š¢‹/^²dIEE…ººzRRŠ¢GŽ177OOOÏÈȰ±±Ù²eKK‡cÙP'Ožœ˜˜hdd´oß¾–’¸.\¸ÐÁÁ!///==ÝÂÂbß¾}Xl×ÉɉN§_¼xPSSÓæYÄÄÄTVVbÛuu!!¯çÍó¥R=µ´6ijz f67ÿ½Mk]‚˜9]nnn ËxîââÂ`0Ο?¨®®ŽUQQáp8(Šš››#Âd2ûõëwîܹòòr)))&“yþüy2™VVVvÿþ}---Ð,ã®È/E¨EÑÚÚÚ‹/bî nRSSë¾ÛÕ·~0ÁÁÁÍÿ^ ’ ƒ©©iyy9¶eee…¢(N×ÒÒ²´´ÄþðP511 ö333ùÛÍÇþŒÓÓÓ±Âàà`###‘çl6›@ ð 322BQƒUÉ[!&&¦´´üîÝw‹]ÐÑÙŒI‚È”ô½PRRRÐÿŸ¬àvNN—ËÕÐÐˆŽŽFQtúôé>>>(ŠÒh4"‘xôèQ:Ž H]]Ç377à›½råJsaù¥¶îjK#}ë…òß¡ƒ}  …ÿQAA ¨¨øë¯¿þñÇQQQXyaaáÀ±m33333³Vð+›šš–”ˆN"_YYÉãñ ±FFFüšššš"QÜ5dž>ý¼fÍã¯_±€–RK²Ù\W׳bší 4š´²r£85åääÀÿOVp@ æÎfiiùôéSìMBII)&&æŸþÙ»wïСCwìØ1mÚ´üü|+++¾MKKËæ ‰üRÄù¦øäää5/ïs?ä?BûTUUùOXt:=11P\\ìëë;qâÄÍ›7cÕ455 °íÔÔÔ´r8øÿ³* ;;û£mŽºº:@ÈÏÏÇ>æååQ©Ôo'ÓÎuRQ÷ÿ'Ú¶'£**ÊHà×5Ã+ÃÃÃCBBììì°‹ÅB$44”F£¹»»;::Òh4*•š––Æ?êÇÍM‰üRÄù¦Ú¤Ïý` ÿ Bob†’<<<œœœ ÒÒÒlllÖ­[Çãñ&NœøçŸÒh4 »wï¢(ºwï^KKËŒŒŒŒŒŒÑ£G¯\¹²¥Ã±¿p{{ûœœœ×¯_8pÏž=X!’Œ,X°ÀÁÁ!???##ÃÜÜ|Ïž=(Šh;”TYY™–V´kW˜™ÙN ec %‰ÙÇ òK*D[ícˆ/ÿEû܆’ ÿ:( cÙ²eJJJ***¿þúk}}ý©S§Ìf³Q §P(4­±±qË–-ššš nnnt:½¥Ã±?c???]]]UUÕõë׳X,‡cgg'++‹~ÿwN£Ñ-Z¤¢¢B¡P<==Y,Ú aÀ¶¹\^RRÞæÍ7 ¶jjn¤R7õia@QtõêÕýû÷g0ü£‚ƒƒ I$’©©iDDŠ¢l6ÛÛÛ[___VVÖÖÖöúõëÍ…AèKYˆ~ÿ n·ô8Òç~0P ÿ„ó1`ÁÉ/»Ý#›Ÿ?>hÐ 2ù»¬Âuuf„…½‹ËÆòU ª¬,ûþýŸpÉÅÅÐ%ËnïÚµ«   ((HüC„¾‘_J/™‚.y7°e·{üÄ! Ы'¸õrrÒ..#\\FNp“’êK+b666–••]ºtéÆ=íË Á n»wÏ„S }”Þ" òòò«Võ®Õ(UUe—-³lÙ˜âbZM ³§ÝiIIIsæÌY³fÍøñã;cGä—ÒK¾©^âhaI A·l™J$Â×UQ< IDAT%1 }’ÞJêD†’z–. %Aº~(©¶¶!9ùszzqbbþ»w… l<G à9¿²Œ )7÷Pz t†ÞòÆô~ääFNœxäÓ§ !pòm™XA„'X“BQè!!. ".D"53³ ÛæñZì…Æáp::*’r éz 0@ âB£ÝÎÈ(ùçŸ'fx.—'²š”>'§ÒÁá°––²––2•ªÈÏíL&ËÁÔžÞ¤XXPýü–ee•>ý,<FNNº+ÏùÏ…ÒÐéõyy_Z¯ÃáðŠŠh99•Bq!.$'ž8ñðºu••_…TQ‘Œô01Ñ_¢àãÇò””ÂNŸò_ ¤INþÜRmA8VO ˆèSàry( ""ÞÙÙ,/¯Ú«  sûö:33Š 6‰{{ÓšæŒÿÌ™sêñã÷ü‘KÉ››Ûµ¼ËÊÊ,X §§'++;bĈððð.4Þ^:vv8Q´n¿] uí5‡ÂéFó¤¤ÄšDÉåòP´ÅŸ5Š{{355ùæ»äåû‡†®4H“¯ ‚üùçÜ{÷6>y²E[[yåÊ˶¶ûOŸŽf0`ä½ORSS3dÈ™àààׯ_ÏŸ?ßÍÍíñãÇ’ô!??_UUÛVTTܶm[Œ4Ïq+²Z‡íw!pT¤qp8’•UÖI#8î·ß&ìÜùs+Dµµ óæÎÉ©DQtÊ ?¿eü]ÅÅ´«Wã¯]‹GQÔÅÅú·ßì;?à7Ó2Íum~½uëÖUWW NüôòòJMMŠŠêûâÐù3Âáp999FFFÝÔ¨8•á¨$HÏSW×øé“èg"1ÁÞ¶÷훵k׌Ö_“eÂÂÖš˜¨óxÈúõwik+ïÚ5#9y—×´ÒGŽÜïáôñc§ûÀáp—.]233SSSóññ¹víš¾¾¾‚‚ÂîÝ»îîîXM&“)##óîÝ;@dd¤¥¥¥´´´Áµkׂøúúš™™ÉÉÉÙÚÚÆÄÄ~SX|#""ÂÄÄ„L&{xx455‰,ßC·oß¾½aÃAç÷îÝëïïm×ÖÖ.]ºTUUUKKkË–-ØÙ™™™)++>|˜ÊÍ 9Ž———ºº:™Löòòâp8\.wïÞ½:::jjj‹/®­­Œ9 ¡¡!䛸­·Ä½{÷°÷! …âããZ 5÷“Çã9rÄØØXNNnôèÑIIImëâ#¼Òÿ&ÑÑ™Š'…²QÌÚÚ›)Oþ!Tª§–Ö¦©SmÝ‚`•ÚâëWÖÓ§Z©ÀfsCB^O˜pˆBÙ8sæ‰'OÞ‹i¹,Îß5ÀÍÍÁ`øùù\\\ ÆùóçÕÕÕ±±±***EÑÀÀ@sssA˜Lf¿~ýÎ;W^^îïï/%%Åd2ÏŸ?O&“ÃÂÂÊÊÊîß¿¯¥¥ÈÉÉÁ|À6&Ožœ˜˜hdd´oß>‘…(ŠÖÖÖ^¼xs¿M§Ó4­¥Y¸p¡ƒƒC^^^zzº……f àääD§Ó/^¼¨©©i©ðСCóæÍ+**JOO:tèöíÛ9bnnžžžž‘‘acc³eËþ‰`- n·«õÔÔÔ:8ƒÁ ‘HË—//)) TUU ]=¬¡æ~?~\ðÊkjj¶ù½‹ùÛ@Q ¤»Ø¿?RWw³øÂ0iÒÑ/>Í™sRKk•ê©£³ùÁƒô˜˜,]Ý-;v„ví<))oñ⋚šž‡CB^³ÙÜ.4Þ³ˆ/ )))(Šb«* nçääp¹\ èèhE§OŸîãモ(F#‰G¥Óé‚ÔÕÕñx??ßÊÊŠoÓÒÒ²yCÄ6LMMKJJZ)lŽ’’’ººzff¦`arròˆ#*++y<ž¡¡!VnddÄ7…=AóϨ¥Â‚‚ …‚š4iÒçÏŸ ù¾™™™Í™3§%ßÚÛ:¦|f̘A"‘²³³§N:lذ€€€–égqqq›W¾Ã@a€t ,ûýû’–ÆäÉȰéЊÂ?ÿ¸%&îž9sȾ}oòdó•+Çݽ»ÁÖöÛßÛôé–Ç»ùû¿8v¬‹¢ ¤yòäÂØØíÓ¦ýtæL̨Qþúë~óA±ÿMœÃÃÃCBBììì°‹ÅB$44”F£¹»»;::Òh4*•š––Æ? K/öä ÈÎÎÆî˜-ŠdæÌ™ÇŽ|è äp8222êêê¿\h^^•JŶE.ŽÙ¼PUU•¿¦Ó鉉‰šššØÞÔÔÔ´äX{[o‹ÅrqqñòòJII9sæL+5›û©§§×æ•ï8â¼V@ í¥©‰³n]àÆ×W­ Ø´éÆš5Wuu·=ú@[{Ó½{©(ŠÎŸnäÈ?ù1œ¢¢]Ý-W®ÄµdðÆDMMÏÓ§£»ÉayâDÔ!{µµ7­Z””×M u7⇒ø7‘Û\.—L&«««_¾|ÛÅb±¤¥¥oݺõåË— .HKK³X¬ƒ’Éä;wî”——?|øPdƒ½½}NNÎëׯ¸gÏ‘…h } (ŠVUU©¨¨,\¸0...--mß¾}€{÷îa{,XàààŸŸŸ‘‘annŽ™yF" =<<œœœ ÒÒÒlllÖ­[·wï^KKËŒŒŒŒŒŒÑ£G¯\¹’"uuuè÷žŽµÎ‡N§ãp¸‡Ö××oݺ’’"2”ÔÜÏ'N^yƒ6¿wØÇé]<þ‘BÙH§×ÛÛ:xðŠ¢ÏžeijzÿÛ©¸woøO?ýÎ`°Z2rñb¬¦¦g@À«îó“ÇC^¼ø„u?ŒuàâÅØúú¦îk®;è*a@QtõêÕýû÷g0‚Æ I$’©©iDDŠ¢l6ÛÛÛ[___VVÖÖÖöúõëÍ…ÁÏÏOWWWUUuýúõ,Kd!Úr/Š¢NNNšššrrrÖÖÖwïÞåï¢Ñh‹-RQQ¡P(žžž˜)ñ…Á`,[¶LIIIEEå×_­¯¯ollܲe‹¦¦¦‚‚‚››Ö½Áápìììdee…|ëXë‚?~\YYY[[ûÌ™3nnnd2Y¤04÷“Ëå9rÄÈÈhÀ€¶¶¶‰‰‰P }ŒœœJ e㇥7^wu=‹¢(›Í53Ûyî\ ¿Nmm½™ÙÎ#G¶bçØ±Gššž×¯'t·Ã¹¹•¿ÿf`°ÕØxûᅦVww‹]…øüm²sçÎ ´ë¡ºÐÇV !v>CzššŠ€ÒRº¥¥VZZ1Š¢D"aÊ‹{÷þ ’*(Ȭ[çpæÌ³V¢ü›6MY»vÂÖ­¡wï¾ëV‡ Éþ9çÝ»?¼¼¦=z”1jÔW׳QQÐÿÆ„ÐÆÆÆüüüK—.­\¹²§}ôP ’@F†¤¤4 ¤„ni©ƒ%&̘18%¥°´”ίæî>VUU¶õNæ;~vuµÞ°áúË—ÙÝí¶¼¼ôŠc“’v_¾ìX²Äo̘¿üü^44üà‰3“’’†¾|ùòñãÇwÆŽ¼¼üªU«Ä)„ô* 0@$„¦¦bYY­…•H$¤§ÆŽ5QPèÿàA:¿N¿~RÛ¶M~ÝÊÌdwø°Ëôé–K—úÇÅåJÀs<7i’ypðšÇ7età@äС{wï/.¦I õaܸq4­•9-ÁÈA&“Ï;'TGd!¤W…"!¨T¥²2z¿~RÆÆéé%"‘0y²yddš`µ¹s‡™›SˆlÅ;uêGÇÁ œ‹ŠêÒQz­òÓOZ‡»¼~½gýú‰÷ï§ÙÚî_²ÄïåËìÿH| òß DBP©J¥¥µKKí´´"¬pútË””‚ŠŠs-àp¸={fFGgµ)Âãqǻ͞=tÅŠË’Ô€ššÜÚµqq;ÿúË©°°ÆÕõ¬£ã‰[·Þ45q%éÒ}@a€H*UëN°´ÔJO/Ár$ØÛ›)*Ê„…½¬9j”‘ƒƒÙD´žGÇ?>¿G´п?iÑ¢Q11[oÞ\­¢"ëéycèÐ}ÞÞùùm$&‚@z?P BSS±²ò+‡XZj×Õ5TˆDÂŒƒÃÃS„*ïÙ3+;»âÎár!üñãógÍÒ#ÚÀápcÇš\¹²"%eßo¿Ù?|˜agwpêÔã ,ÖÞA ù+‰ Òy¨T%.©¬dXXPû÷'%'60PÌž=ôêÕøOŸ*LL4ø•Twv¶öñ¹ÿóσûõkíWJ àÿþÛ °bÅe?¿e“&™w÷‰ˆ‹/­Y3!..'00a×®Ûû÷GΜiåî>Vð¼$ƤI“$ß(¤—SYY)fM(  Me(+£kj*þô“Ö›7®®Ömmå»wßyyM¬¿yó”ðð·¯V­ߺeLP´‡µ€ÇãÆŒ13Ƹ²’qëVòÕ«ñ #Fè¯X1vêÔŸˆD‚|°±±™?>ׯò…ÿ JJJb>1À n Áã![Ÿ?oÞðýû#Ÿ=Ëzöl+¶kÿþÈÒãâv ­¸çãs? ..n§ŠŠ¬8ö7n¼q÷ÕAÅ^ >LWVàìl½xñ(mmåžö iØÇ‘^[[¹  0l˜^vvƒÑˆíš={hAAujj±Ð!7N–——Þ¿¿µ¡«‚öÿùÇmæÌëohöqþü’ää=+WŽ‹ˆH±µÝïêz622•ËEzÚ;¤E 0@$‡®®JQQ `øp=ASS ±r ª‰‰Fó®fiiâï¿;††&¿{W$Ž}¬/ÚÁaÐêÕW%3÷MLÔÕÖ®uHLÜ}ãÆjEE™ß~»fmí}àÀ½²2¸Ä7¤7…"9ôôT±ÁHjjrÚÚÊoÞðwÍœ9äîÝw<žðsôÌ™Cll öì 3æI$Ο_2v¬ñ¢Ež=Ëê:ß»þ DL̶™3­‚‚F>°aÃõׯóaDÒ«€Â‘::ßÞÆé½}[Àß5kÖÊJFRR~󣼽礦5ÒÚD"ÁÏoÙìÙC—,ñ ~Ýi¯»##ò¾}³ß½ûãÈׂ‚êÙ³OÙÙýuâD|€ô 0@$‡žžjUU¶Ýðázoßò§°¨ ¦'ò>nnNus³Ù¿?Rü¥ëü±c®Ë—ٴ馿ÿ‹®ò¿ké×OÊÉixD„ÇÛ·{,°¹y3iøð?°9LfSO{ùOCÀÒ!A €Ëå]¹7{öPUU9<éÒËY³†ðGñxÈÅ‹±Ë—%‘„GQª{þüs‡7zô@1ÛÂápöö¦ÒÒRÞÞ‘ýûGŒÐïÊ3éRä䤭­ –/3v¬qM óìÙ˜Ó§£³²Ê¥¥‰zzªx¼ˆÜ¨H·…"9 èwêTôøñ¦FFdÙó矛™Q,,´°½úújgÏÆèꪚ›S…”‘!áñ¸S§¢çÍ./ß_ü­­ ¤¥¥¼ßØÈ;Ö¸ËΤÀápTªÒ¤Iæ ت¨ÈÆÆ~òó{™Êd6ii)µë¬!N…"9ˆDµkqÆÆÆéøçÏ?66r&O¶Àööë'••UöæÍgëæÇ¢{ÿ~Z||î¼yÃÛÕ¨µµššÜ¡C÷««ëìíÍ„¦JôBddHÇë-]j7a ƒ˜xútt\\‚ ºº*ýú{ÚAÈìc€H]]U,K`Ø0=ÁIgçññyü ‚HIáœûéÉ“÷ímtñâQ§Ný”¸aÃõ>4`Èçö‡…­34$ïÙsÇÜüwW׳¡¡É?|¦ HÏ…"QtuU «±m[[ÜœÊ/_êø{Ç3US“Zl•µµÁ¼yÃví ëÀmqΜ¡~~ËîÝK]·î‡Ó—–‹ÀãqÖÖ‡»ddüyæÌ"iiâæÍ7‡ Ùëáõ¡é¤…"Qtu¿MeX[àñ8Á!ªRRø9s†…†&·4®÷î™uugÎ<ë@Ó“&™­zö,kùrÿÆFN,ô,ÒÒDGG«+WVÄÇÿþÛoÒÒŠ—,ñ³³;¸dZšð¤q¤3@a€H]]•âb6‘MNNzÐ ÍÄÄ<Á ®®ÖÕB!&>jjr^^S}}£;–ö`Ô(£ßÞ¾-\°à|]]c,ô´´”6l˜»ýÑ£M3f ¾w/mÚ´ã#Gîß¿?25U¬)âHë@a€H]]‡ÇOÙfkk˜ð0˜šRÌÍ©!!É-YXºÔnà@õ]ÿcïΡÜþÇŸ™1cÉƾf$J”¥²\i'"QQr[´qÓÊÇ­®Rº¹Q®%¢¤E©¤E¤$Z‘K‹­1¬¿?æþæ;׌1f†Açõ×ãÌyÞçÌL=ïyÎó<çìÎ⮦¦ê©©ïÞ5ûø$ttüà.Èab¢¶gÏ‚ââ=;Üݧ޹óÆÅ嘱ñ8Êñ&hXéê*ª«ÿÞÒr»wÍíí]ŒuÜܦ^»ö²¿•2Q(ä¸=xP•—WÉ]ÌÌ4²²664´.^ümQ¹ÑN__qûvçû÷wäåmóò²,-ýHe*-ýÈ~!<b4¬¤¥ÅdeÅkj¾Òþ´´œ€@€ÒÒŒu\]Íüè½q£¢¿ S§j¹ºšÿï9\¯’fh¨”—·]XXÈÉé(ãÌ£‰‰ÚîÝóŸ<ÙsëÖö… Móò*-Š™2%,88ýÎ7pUjˆCð9h¸åç¿F¡""èë×_ !íì èÆ~÷®¹¨¨ÆÓszA¬¬&ÄǶ·ÿ˜5Ë ¿:ì'ìêjþìYÝŸÞž8Q…¶œÜ˜¡  ic£ççg³lÙt™ÊÊÆ˜˜üØØ»Ož|øþ½[EEZ\\DÐ}„F.˜ áVVVÿáÃWúSlUUŸŸ=«óö¶b¬#))züxþ‚¦ý-Ñ#*Š‘•Œ¼áà0QAAŠ»ž`0B Nù矎r±XI5îâŒd’’¢&&jK–˜-_n©®.[[û--­øï¿ï?yRÛÙÙ#++.%%&è>B#L Ðp«­ývûö«ÀÀÙ´?»º))Ö¬±c\ÛYCC6;ûyw7‘Í ‘‘rqqí•+eË—[q=¡‰ptœH¥R#"®öôFø´¼ž~d÷3:tȽ à]nn9ï}›2E=7wsGG÷‚ÇÙ·;V¡PHµíÛóò¶=~¼kß¾EãÆ ÇÄÜqvŽž>ý÷mÛ.^¹RÖÒ‚t7¡¡Ï  û€›6¥ÕÜ¿¿CB‚wa67w¬XñwGGwZZ›¬¥®®îöíÛCœBŸ>ý¨­íúð¡«©©‡J Â'JØÚÊ ¼34"‰ˆˆxzzb0Ö/S!hØ9rÓÚú c‰½ýá}û.3×à·oFF»ƒƒÓùÕÃïß»—.=¡§zïÞ[~ÅRžžžÃs@A"EDDt¥¤$%g O‹ÐÉÊÊêïŸJ‚@GG¡¾¾…qúk[[½Þ3×ôð˜ÖÒ‚¿wï-û€rrâÑÑžiiOnÝôj ,IJŠ\¼ø«‡‡ÅŠ=šÇ—˜CŠL&»»»C"“»»»«::ò¿/†æ ! ‘ú}&HtuH$ }þm€þû÷Ÿé“ëÑijÊY[ëž9óxÀ˜NNÆ ˜††^úþ?Sã¡PÈß_rè{LÌmÛ.Ž®U ˆ01@ ­-D"è3&,-µ1¡Gª™+¯Yc{ÿþ»wïš ûÇKÉdrDD.»ºb…Õ¹skoܨXº4¶µ^t…~ 01@ "‚VQ‘a¼1IT3uªæÃ‡UÌ•íí'ª«Ëž;÷dÀ°ãÇûßÿ–\¸P\PðŽ½µµÕ¿yskk+~Á‚ãôya!h ƒ‰ ¥·o›K¬­u<¨¢2Ý&‡D"|}gdf>ådi%KÌæÎôÛoü]‡GKK>+k£ŒŒØ’%Õð12@01@‚1q¢ò›7ÿI 66ú_¾|gù“ÜÛÛ’L¦ö·t.Åã{÷ïçç€@AA2+kã¬Yžž'OŸ~ÈßàcCMM Á·'à 455}}}¿}ûÆòUú«x<>88XKKKTTTWW7,,¬§§ß_ <ö™»Ý¬°?¨†xÿ"`b€ÃÐPéǯŒ+˜šªII‰=xÀb4IJJláBÓÓ§1ŸO0SP _”šú¤°ÅmN¼AŸ8±â«C‰O IDATàÁ¥áá9g¹^ âPQQQsssccãéÓ§q8œ™™YGGGŸW›ššòóó7mú÷ÉùM›6•••eee544$%%åää„„„ð±Wµµµrrÿ>À!--½cÇ.‚Ð:ψe5®ãóJÐ7MA?©ªªÏJJ[*+ ýü’|}XÖ¯¬lTRÚòøq5'Á)Š»{œ•Õ~<¾‡}eòôiíäÉ{¢Z‡">ÜÝ݇çvU6ª««ùxHTWÿß×M¡Plmm÷íÛÇòÕHIIѶ¥¥¥‹‹‹é/ª««ó±Ï¼¿Í>ç{£œT¤§÷ûÜ22òܹsZZZRRR{÷îùûûÓjâñx11±/^rssMLLDDD´µµÏ; P('Nœ044”°²²*((`»  eäääèëëc±Ø   ÞÞ^–…à¿ãlÆ@D``àõë×Y¾ŠB¡°X,m[RR2..®µµ•ö§­­m}}=m›H$†„„(((`±Ø"‘È„ùU‰¦®®.//ïëëK;_±´´(**öépGGǪU«äääTUUƒƒƒiãW"--ÍÐÐpüøñ‡fÿí\»vmÊ”)bbbJJJ‘‘‘ý} Ìý$“ÉQQQzzz3gÎ,))aßÐÀ‘³ ˆ¯œ†‡_a,©©ù¢¤´¥¤äËú™™¥jjÛššÚ9ŒåJ™’Ò–ÜÜr^;Ú<¾gíÚÓÁiiO†¨ ÎqxÆðòòÂáp‰‰‰hii),,”••%‰T*555ÕÈȈB¡àñxaaáS§N577'%% áñøøøx,›ÝÔÔtýúuUUUý‡*mÃÉÉ©ªªª¸¸XGG'<<œe!•JíèèHHø÷4‘q0ý¬.--•––¦¿Z^^ÞÙÙ‰ÃáÞ½{7kÖ¬ˆˆÚK·nÝRQQvttŒŠŠª««£G8tè››[CCCEE…™™Yhh(ãkæW£¢¢ŒŒŒ****++§OŸLýïïqÆmooo{{û>TTTÓÞ`éÒ¥ííí €ÖÖVÆÎÓ‰D‡Á`üüüSSS_¿~íó‘ö×ÏèèhƯCYYyÀc;`{Æ$0[·^pwëS8eJØÑ£y,ë$“½QQ79o"0ðŒ‘Ñî¯_qÜ÷’- …“¯ªºmË–óÝÝ„!j…œ'†²²2*•J úlWWW“H$EEÅ»wïR©T—ÈÈH*•ÚÖÖ†F£9ÒÞÞN¡P:;;Éd²‘‘QJJ =ì™3g˜CEEíÕôôt–…ì»Ê>10’””d¬L"‘Š‹‹#""ŒQ(TZZ­ÜÀÀ ¹¹™¶ŸŸojjÊxÀe~U__?;;›VòæÍÚ6ËÄ@ P(Ô«W¯håÙÙÙ´w(((`ü™;ÈÍÍííí}ûö-'“É………´Ê,s?õôô˜¿6Ÿ-%A#–¡¡Ò›7ÿô)œ=Û° €õh4ÊËkzjjç!:ä."‚ Éà©£ýC ›69dem¸ÿ£ãNžÂ8 î³ @¡P®®®ÙÙÙ---wîÜñööÈÈÈ«ªªÚÙÙ=|ø‰DÖÖÖšššÒcš˜˜07¤««KÛ000hlldSÈ¡êêê &0þI;ŠuuuíØ±cΜ9´í‹/¦OŸ¾wïÞŠŠŠ]»výöÛo´]êêê”””hw9::~üø‘1>ó«õõõô.Y²¤¿¾}ùò…L&Ó»§££Cw´ßïô¹OçiæÏŸÁ`ªªªœÍÍÍSRRØ|ÌýüôéÓ€_Ç ÀÄ Œ¡¡r[[×—/8ÆB''£/¾~íd¹Ëòå–­­]7oVpØ„¤¤è±c^ùù¯ÓÓŸòÚÝþYXhß¹¢¤$½`ÁñœœC×Ð0pww¿|ùrFF†µµ5m€¨»»›B¡dff¶µµùûû/X° ­­MEEååË—ô½^¿~ÍŠö#PUUE;8öWÈ *•zòäÉyóæ1¿$&&¶víÚOŸ>}ýú•J¥._¾¼²²’öøå—_è“ÉÉÉÑÈíííÅÅÅŒq˜_UVV®««£½Z^^~àÀþº§  €B¡jkki~øðAEE…¶Drt˜íîîöðð )++‹‹‹cS“¹Ÿššš~ƒ$0FFÊ€>¹ÙØè¡Ñ¨þNÔÕeçÍ3‰‰¹Ãò|œ%½U«¬÷í»üéSfCVVüüùu«VY¯_î·ß2FïÄJ666$)""ÂÇLJV‚@ œœœ²²²p8@@£Ñbbb~~~!!!999Ÿ?ÎËË eµyóæšššÒÒÒ]»v­X±¢¿Âïß¿Ó.xôÙ|ûöíóçÏÿüóOaaá’%K>~ü¸mÛ¶>¯~þü¹¡¡áСCjjjòòòâââ¾¾¾Ë–-»~ýzmmmQQQpp°——mWW×;wÖ××WTT8;;ÇÆÆ2v˜ùUŸÝ»w¿zõêÕ«W7n¤_Äàñÿ™F/[¶,((èãǯ^½Ú³gí|‹s½½½ƒÁtww‡……:;Yÿa c``““C¥R BDD„–––¸¸¸••ÕùóçÓ5†ÄÄD 99¹M›6uww³,¤ö-—ñ0¥¦¦æííýåËÆ7B‡D"MLLè·¨’H¤ððpQQQMMÍ;vТR©8nõêÕ222²²²]]]Œ-2¿ÚÓÓ¬¬¬,%%åååÕÞÞN¥R‰D¢µµµ¸¸xŸ·µµùøøÈÊÊ*))mݺ•Ö(Ëôs»jttôøñãÕÔÔâââ¼¼¼°X,Ëk Ìý$‘HQQQ:::ãÆ³²²¢ ø/^|†F(oïø Îõ)LL,ÔÓ e³Ã’%ùøü=¨†JKkUU·%'?গƒôúõ?3g06Þ“Ÿÿzš£áãs »víZ¾|ù vésã<Ëûèùû”Ä#ö‰%A‚dh¨Üg( àà`ÔÙÙóôéG–»gݽû¶ªê3ç MªµaÜßÏ}ûvȯOœ¨|÷îo‹›ùú&¥¢¤{zzjkk“““×®]+è¾@‚$H††J55_ûŒÈkhÈN˜€½{·ß hŽŽF::Ø¿ÿ.T[¿ýæbn®áÇ÷rÙ]Ž ýþû’¤$¿;wÞÌ{l²_”””L:ÕÏÏoÖ¬Y¼Ä‘””\·n'…ÐÈ$H'*‰dæ‰ó&޹󦿽ÄÚµv—.=ëïæ%–HDLŒ÷÷ïÝ{÷ÉãÐÌæÎ”Ÿ,--6oÞ±ÄÄÃÓ(/ìììÚÚÚØÜ{Óú=û4X,öÔ©S}ê°,„F&˜ AÒÑQÀ`„^¿îû4ƒ½ýÄšš¯ŒK¼õáá1MZZôÌŽfÈ SR’>~|yFF)‡µòNEE&3s½¯ïŒ°°+[·^àïdà4D`b€IH©£ƒe¾Ì0}º¶¤¤›¥ž1!Ÿ™§O?úñcp#øW®œ±cGæÇß®Íh4*<|ñÙ³k ÞÚÛ~ü.çt01@fjªþâECŸB4ec£Ïf4 àïoC 23KÛbXØb Ù R‡ói{û‰ìš5ËÀÝ=6((m®s@×`b€ÌÔT½¢¢‘D¢ô)wp˜XTTÓÕÕïTZZÌÝ}ÚßR(œ>ìF#,,çóþý稨›Üô˜[’’"‡{$$¬ºwï­½ýa¸4bÁÄ ˜©©zw7¡¦¦ïõçÙ³ ‰DòãÇì&µ°«¯o¹}ûÕ`ÕÓSŒˆXwïÁ>/æ3 yó&ì04Tvwûí·ŒQt3+ôó€‰0}}EôË—Ÿú”c±&&ªìG“´´äíí'ÆÇßç¢ÝåË-¶n½ØÖÖÅÅî¼——8}Ú/<|Ñ¥KÏ,8^Y9¸¹äXB¡P™™™,׌„ f!!¡þþ9!¨Ï9ACdÁ‚?'MR=xpiŸò¨¨›ééOKK÷!ú_ÀöÅ‹†yóŽed¬·¶Öl»íí]NNGuuRSH¾-V̹šš¯Û¶],/¯ÿõ×9Û¶ý",ÜïÔÕÖÖ>>L·ZAc …rqqaù*L àíÙ“]VVãÆÖ>åoß6ÙÛGåæn67×d³û²e'©TjFÆz.š~û¶iþüãþþ6»vÍçbwÞQ©ÔK—ž……]‘”Šò°±ÑH7 ˆJ‚oòdµ×¯ÿ!H}Ê •µµåoÜ`’íÍ›=ª.-íw 6 •v½7`+C@¸»O»?ÔØXÅÓóTPPZGÇô‚è`b€ÏÔTH$³\åÆÙyÒµk/™Ë͘¡ca¡}âÄ]îZws›º|¹å¶mÙt‹€rHAA2)É/+kãû÷ŸgÌ8pôhó 5˜ ÁÔTùŽUpvžtýúÀ6n´¿~ýåû÷ƒ˜‹›‘ŠŠÌÉ“¾99/ÒÒžp¬¬&ܾ¼k×üøøû³g¾ÿ {ý\`b€F„ɓժª>³œøÈÅŤªê3ó ¬ÌÕtuNžäò¤`c£·e‹ãîÝÙ,SÔ0C£QkÖØÞ¾¬¥%çíý÷¶m[[ñïAü4"Lž¬F&SX^K˜>][NN|ÀÑ$$±~ýœììç ­\wcË' ­_=;Bn ÒÔ”KM HHXõðaÕÌ™ââîõö‘%hÈÁÄêê²²²â,/3 PH''cNn']²Ä\YY&.Žû“ yò¤/‰D <Ë<}“ ¸¸˜íÞ³gáÉ“––ûSSŸÉ#¥oИ4R˜˜°¾þ pq1©¬l¬¯àT@H¹~ýœ‹Ÿòr?¬¬øùóååõ!!é\á;4µb…Õ£G;—.ºwoöœ9‡óóû]á‚x4Rôwý`c£'%%–—W9`iRR¢ ƒ[õ³ìÉ“+/]z–’ò˜—8|'%%¶{÷üüü--ù•+ýý“?|ø*èNAcL ÐHab¢VW×Âr34eooÈÉh’ˆzófÇää‡MM¼tfölƒà`ç}û²=b7½«@èè`SRü³²667Ÿ5ëІ 績 ‚X‚‰)¦LÑ P¨eeõ,_uq1yþ¼î˗Lj||f(*Jýùçmûä0¾i@@ŠŸˆfÃÊjÂ[³²6|ûÖ9{ö¡eËN>Îú£ƒ Á‚‰)°X mmùââ,_=Û@D}óæÀK/ Ñ¨-[œ.\(áq˜@DG{jjÊ­\™ˆÃеš-,´32Ö_¹² °`ÁŸ‹ÅŒÀShÔ‰A,,´Ÿ>­eù’¨(ÆÆFïæMަº[ºtª¶¶ü±c¼ž4ˆˆ Vutüؼ9m°ëÄ ' íôô_ÓÒÖQ(T8Ÿ¿uªæ€¡ôônÝzõúõ?‹Má±WêêãedÆíߟ«£ƒ50Pâ1ÚPÓÐswŸææ6õÇâÉ“ý•_[ûMSSN^^BÐ]ƒF ˜ DZZ,5õ‰¢¢Ô´iZ̯ !?|øöða•ÏŒC!%%騨›³g*)IóØ1SSuôûïWÍÌ445åxŒ6 ¤¥Ålmõ¼½-%$DrsËOž,(+«—ÑÐÈZuÐèWpƒF–€€”Þ^Ò™3kX¾úðaÕ²e' vèë+rÍÕõ„ˆúüùu¼wŒJ¥nÝzáÆŠË—7©ðpØH”¼¼Ê¤¤%%µX¬„««¹»»…¡áH?õ^c€F í§O?öw¥wæL]EE©œœFÛ±ÃåþýwEE5¼w @DE-37×\±"¡±±÷€ÃFH9þäË—7=¶v­Ý­[¯ííÛÚþqôhÞ§Om‚î4Á3hd©¨øäì}ïÞoý懇_¹uëUQÑn‚£!/¯S?~rr‚øÒ=<¾wÉ’¿ˆDrNÎ&))1¾Äf õñãêÌÌÒ7*ˆD²½ýÄ¥K§Î™c("‚t× ‘ž1@#‹‘‘Џ¸ðÓ§ý.àìêj^_ßÚßspÌvîœ÷ìY]A–4NM]ûãG¯Ÿ_ò(]B‰DØØèÅÄx——G>ìÃu¤Lš´wýús7oVöôÝAHðà4âxy’•?qbEfÍ:4s¦În\¹2±µŸ›»™Ã“ŒUU}^´è/;;ý¸8Ÿ1p-÷û÷·o¿¾víåýûïH„­­þüù“'IHˆºk`ÀÄ8ÇŽÝ>¾¸´t› ÉÉËÊÂÑh'ß¾mrr:»báB^o]¥+.þàéy* Àn×®ùüŠ9ü.]ºOÿ“Hêì”Äá¤üC"Éúúï8¿÷H'""«®®ÎǘB|ŒA|aa¡uóŸÚUTX<ÍX²ÄìÈ‘¼‡«æÌ1ä$ ¡¡òŠVáá9ŽŽF¢¢¾tÒÒrÂáÃ[·^ÐÔ”[¾Ü’/1‡_FFÆ»wשּׁ¬è%X,€v×Ù‰?^J€}ƒ8”™™éãã4Æ™›k Ñ¨’’ZWWs–45åÌÌ4²³Ÿs˜ÁÁΗ/?¿¿e‹¿úéá1íëWÜŽ™ãÆ óþ XYYeddº÷ø5@Ê^|†Fô¤IªýMšDãêjž—WÙÕÅé|²²â›69ÄÆÞûòÇ>þkãFû-[œ6nLåüZù`b€F¢éÓµÙܘX¸Ð”H$ß¾=ˆUÌfÉËK>|“çÞýÇöí¿¬[7+(( .©01@#‘……öû÷ŸÛÛ»ú« ++nk«—ýŒó˜h4*4Ô%=½¤¢‚õ:q\Û½{¾—×ôuëÎ<~̇'é Hà`b€F"Ú\IÏžÕ±©ãê:µ°ð}K žó° N™:Uë÷߯òؽ>ÄÁƒKçÎäë›À~ ‚F˜ ‘hüøqÚÚòìG“0¡k×^*ò¾} ‹Š>ð}؉DÄÄxÛÛúú&TV6ò7øØVSSÃÇ˧BWW·Ï]øsçÎE 55|>ŸC°Â²&ý=êÍò÷“˜ ÊÆF÷Ñ£*6ÄÅ….œrîÜãA…53ÓX´hJDÄU"‘Ì[ûB¡±±>ææšË—ÇWUÁE˜¦®®îåËÿû¹ÐÞÞþàÁ6õkkkå东1·¨¨¨ù¿XV“––Þ±cwML Ð5s¦î«Wÿttü`SÇÓÓâíÛæÁþBß»wASSÇÙ³ƒË(œ@£Q§N­TU•ññIøçŸÑ4ÑÞXâàà™™IÿóêÕ«vvvlêS(”ÖÖVîÚ’——Wü/–Õäää"##¹kB `b€F¨™3u©Tê“'¬—€¦±°ÐÖÑÁ^¼øtP‘•”¤×¬±=r䛋Û\“9~¸¸°›[옙»@$''ÊËËGFFž;wNKKKJJjïÞ½€   ZM</&&öâÅ @nn®‰‰‰ˆˆˆ¶¶ö¹sç åĉ†††VVVŒC%´‘“œœ}}},ÔÛÛ˲üw˜¥Ï‹»»{FF}4éÒ¥KK—.e®Iß¶´´ÐéD"1$$DAA‹Å†„„‰Ä«W¯ª¨¨´··.\¸ §§×ÕÅî_εkצL™"&&¦¤¤DË,…˜"“ÉQQQzzz3gÎ,))Ü÷ÄGT©£vïÎb_'&&ßÐpWOqP‘;;{&OÞv™‡Þ±óý{÷üùÇLLö¾{×rss{{{ß¾}‹ÇãÉdraaaŸvÛbnHOOùóáäÛá{b€CIÐÈ5s¦nUÕ—¯_;ÙÔQT”²³Ó¿xqÐ'Ý+WΜ4Ieûö‹,ÿ‡óNL söìZe¸·o›†¢‰á$!!@£Ñ}¶(ÊÕÕ5;;»¥¥åÎ;ÞÞÞ™‚‚‚ââbUUU;;»‡"‘ÈÚÚZSSSzLæ†tuuil ÙpwwÏÌ̤R©ŒãH}ô÷½×ÕÕ)))Ñn1rttüøñ#@ZZ: àõë׿þú+cåêêjÆãéüùó1LUU•³³³¹¹yJJ ›N27ôéÓ§?Ÿá4rMŸ®-$„,*ªf_mÙ2‹‡«»ª‰8pÀíÙ³ºììç<ô‘QQÌ™3þÆÆ*®®±åå CÔÊHàîî~ùò匌 kkkÚQww7…BÉÌÌlkkó÷÷_°`A[[›ŠŠ ãýB¯_³¸i˜ö›PUUEKé¯ kkëÎÎÎGåçç/^¼¸Ï«$ ðÏ?ÿ°ÜWNNŽ~¸ooo/..|úôéĉÛ·ogßtww·‡‡GHHHYYY\\›šÌ ijjøù ˜ ‘kÜ8aSSõGH NNÆ’’¢™™¥ƒob¢æë;#"â*×Ím *Š9{v­¥¥¶§ç)ÎulllH$RDD„­@899eeeáp8€F£ÅÄÄüüüBBBrrr>þœ——ÊjóæÍ555¥¥¥»víZ±bE…ß¿§]ðè³MƒB¡ÜÜÜÖ­[gaaÅbéåÒÒÒ€³gÏâp¸˜˜Æ]ðøŸ”tuuݹsg}}}EE…³³sll,…BñóóÛ´iÓ… îܹ“››Ëæ£èíí% ¦»»;,, ÐÙÉú”—¹¡ÀÀ@ÆÏgß¾~gžrü™‚ þŠŒ¼neµÀjÿûßSÓ}i°ñq¸nSÓ°]»¸ÄÍ#ä¯úìÙÇ!mh°8¿Æ@ÿmÛßv`` ¨¨(‡£ï•žž>a c``““C¥R BDD„–––¸¸¸••ÕùóçÓ5†ÄÄD 99¹M›6uww³,¤þw°žq›Þ¥û÷ïbccû”ïß¿_ZZz„ 999´½ˆD¢µµµ¸¸8­&‡[½zµŒŒŒ¬¬l@@@WW×_ý5yòd@¥R/_¾¬¤¤ÔÖÖÖçí3ŠŽŽ?~¼ššZ\\œ——‹ey¹!‰¥££3nÜ8+++ÚÉ 'ß¼ø ý\=ªVRÚR_ß¾ÚÇß”•·æåUrÑÄ¥K¥**[ËÊê¹ê §z{‰+W&ìzö¬nH'víÚµ|ùòAíÒçªoŸ?ÙBŒ†"1À¡$hD›>][RRäÞ½VlÖÔ”›1c¹sE\4áæ6uÆ ]».Q(C¸š!#”°ÊÎNßÃ#îöíWC×Ððëéé©­­MNN^»v­ ûñL Ј&$„´²Ò¹€ÄF²ž‹ IDATðñ™qÿþ;îž)‹Œtû¶9-í ûrF<é³~ýìÕ«“ccïi[餤dêÔ©~~~³fÍâ%ޤ¤äºuë8)„†L ÐH7k–Á£GU‰}µ¹sMdeÅÏŸ/æ¢ mmù€»ƒ¯·¶b®V. ˆíÛñ8tèÆÞ½—‡ôeØØÙÙµµµ8p`°;ÒžH ÿ‰ÅbO:Õ§ËBh¨ÁÄt³güøA(-­c_ FyxX\¸PÌÝìxÛ¶ý"%%zàÀ5nº8H^^– «ÓÒž¤ôô‡¡E˜ ‘N]]VKKž“Ѥ+¬ZZðÜM©-"‚þßÿ§§?e?;¿üò‹ñ¥KJJjÝÝã†bÊ&âL Ð(0k–'‰ACCvÆ ]®/üò‹±ƒÃÄÝ»³ø>#7Kff¹¹›[[ñK–œ€S±B# L Ð(0k–þ›7M_¾à¬¹v­mAÁ»wïXO‹? ÿýoñÇßΜáÿŒÜ,ijÊ]¹$,,4þŸ¯^±~‚†Ÿ ;A›9SF=xðÞÝ}ûšöö54dÏ+:pÀ‹†45å¶lqŠŒ¼îèh¤¡!ËUg‹•ÈÈøuõêdw÷¸S§|íìô‡¡QFµµµÿý÷07 tü},‚†ˆ«ë_6œã¤æÉ“::;¾ïæ®!‰ìì|tþü?I$2w¸ÐÛK JSUÝØ¥R©Û¶môâ …zôèÿa ¨C3µ$ñ×É“11w*+`ü‡ë63 ß¹sž¿¿-wm½}Ûäì½oßB®#p'5õÉîÝYsçN:vÌKT3œMC#x¾ÿñìÙÇkJJŠ.Ybžœüˆë§ •7l°?xðz]] w¸³b…Ubâê{÷Þzxœüòåûp6 AŒ`b€F¬––ü;o8©¼fm]]˃ï¹nnËGuõñÁÁéÃ|JíèhtõêæÖV¼³sôÓ§µÃÙ4ÑÁÄïÞå(1èë+ZZjŸ>ýˆë¶0¡ƒ—>yòáÂ…á^w×À@éöí` m7·Ø£Góà`/4ü`b€F ‡‰ïßæpxgåÊ™÷î½mhhåº9+« «VÍ ¿ÂÝüK¼>uÊ7,lQLÌÕ«“q¸žaîô“ƒ‰5,-'HJŠÜ»÷–“ÊóæMVS_ÈK‹aa‹TUǯ_ŽL¦ð‡ bÍÛÓ§ýŸ>­]¼8æýûÏÃÜèg4j Ñ([[}/3 PÈÕ«­/^,áe F(&Æ»¢âÓ©S\áÅœ9†·nmqq9–š:´“¿BL Ðhbo?±¨¨ï夲——%ân¾U:cc•  Ǩ¨¼·o›x‰Ã55µñ99›v{w–§ç©¯_Y¯ A|4š88L$‘ÈUqRY\\ØÛÛ2)é!smÞìhd¤¼iSÚð̡Č6¬táB`uõ— þ,.Žiþ ŸL Ðh"++nb¢v÷.G—kÖØ¶¶â¯]{ÉK£BBÈ#G>3BC/UWáK@>Ò×WŒ_™žH"‘—.]»6¥¼¼AЂF˜ Q ‰DØÛ *1ˆŠbüülNŸ~įY¬ÿ}‰¶¶üºugº» | È_ÖÖz×®mIL\]_ßâârÌÕõD~þk®Wµƒ~*01@£ÕâÅSÊÊêµúæÊ•3ÉdJjj_:€ÁÅǯljjß³ç2_ò˜;wÒíÛÁyyÛTUeüü’­¬öÇÆÞ… <@ì¡ÂÃÃÝ↪ªLjê  mwÅtu’’®\9ƒâ½ÒÒbŠŠÒQQ7µ´ä •y8D¤æÎ5qvžÔÜü=9ùáùóOp¸ Y))QAw ‰`b€F+$ÑÐÐzÿþ;Ÿœïel¬š>ÓtÂÞĉÊß¿wGEÝœ5Ë@QQŠ/1‡ˆ¼¼„‹‹‰‡Ç4tþ|qlìݲ²z11Œ¦¦<‰tï W”…F¯ÇkÜÝc?Þ¥¥%Ïù^^KK+.)Ù+..Ì—nHOÏ“uu-·nm—•çKÌ¡F$’oÝzuáBqaá{yyI/¯éË—[ªªÊº_ÐÈ@… Q‹L¦˜š†ýùçíAíÕÖ†×ÕÝqüx>{òí[§™Y¸»{,‘HæcØijjòx@"…ÅÄ&ÉÉ­·àÇ}BBBúü»‚g Ðè¶{wvqñ‡»wCµ××ΟççIàÅ‹†%KþZ³ÆvÏžüŠ9 ±uëV+++ãP©€L¦ Á¥ŸNtt´ššZFƦ†äÃõ7 … MOŸ~X]ýEWWó½Ö¯Ÿ}æÌ£ää‡AAüêÉ”)êaa‹öìɶ°Ðrr2æWØYZZº»»[sГ™™É\oW…F·iÓ´¥rs˵—ŒÌ8_ß™ññ÷;;ùyãæêÕÖÓ6nLÔÑÄ01@£‰˜;×äúõŠÁî0«§‡˜’òˆ¿ý9|ØcÊåËãá$ØÐè4ê-ZdúömÓû÷Ÿµ+±nÝ¬ØØ»ü]‘ F%&®–‘·jUâ#ñ‰hL Шga¡­­-Ÿ™Y:Øg£P¨ØX>¬ÓÀHBB$%ÅÿóçïgàêÐh4,Yb–•õ|°GaII‘í“’47óyØG]]61qõƒU‘‘7øy¤©©©A øy/SWWWHHÈäÉ“%$$¦M›vðàA‰Ä¦!QSÃýʦÂÝÝñæÌA½#ö­³ Å>>ýUÞ?X^"ÀÄnnS¿~Åq±ô±ŸŸ¬¬xL̾wÉÂBû?Üââî]º4²¦æÉ:;;§NZZZzèСçÏŸïܹ3--ÍÑÑ‘LîwM¤“'OÊËâñÆÚÚZ999Æ’K—.¥§§s½;ÒÒÒ;vìè³½Ã}&h,ÐÔ”33Sçbuaa¡­[Ο/Ôd|òò²Ü°aÎöí=ªâ{ð1)""B^^þîÝ»ÎÎÎzzz®®®OŸ>­««;}út»JI b& …ÒÚÚÊX²nݺ 6|þÌÑ5*æÝÙ““‹ŒŒì³½Ã}&hŒpu5¿ví%×{==§kjÊEGߊ^íÚ5ßÛÛråʤçÏë‡">'Drr²¡¡¡¼¼|ddä¹sç´´´¤¤¤öîÝ  ò÷÷§ÕÄãñbbb/^¼äææš˜˜ˆˆˆhkkŸ;w@¡PNœ8ahh(!!aeeUPPÀ8RA¸ÈÉÉÑ××Çb±AAA½½½, ÁG9·SSS÷íÛ‡B¡èaÇ’ššJû3--m„ òòò¿þúë?Ã`‘H QPPÀb±!!!D"‘D"………©««ËËËûúúvtt,--ŠŠŠô&¶nÝj``Àü´oGGǪU«äääTUUƒƒƒ{zz˜wgüœÓÒÒ ÇøðaƷƸãû½víÚ”)SÄÄÄ”””ú¤Æj"ÿ¦2¿_2™¥§§'!!1sæÌ’’¶ÿ.ØÎÇ÷!hè´´tª«o¿|ù9û^¾ü\Uu[uõ¾÷ŠJ¥’HäU«÷|üøïÁéééÖñòòÂáp‰‰‰hii),,”••%‰T*555ÕÈȈB¡àñxaaáS§N577'%% áñøøøx,›ÝÔÔtýúuUUU@uu5í0BÛprrªªª*..ÖÑÑ gYH¥R;::hÝ£o···¾}ëû)=~üXAAjΜ9ôP¡¡¡´wW]]M¥R:äææÖÐÐPQQaffeddTQQQYY9}úôàà`z??œêêꪪ*QQÑÓ§O÷©àíímooÿáÃ‡ŠŠ cccú;ê³;}{éÒ¥ííí €ÖÖÖ>­}‡Ãa0??¿ÆÆFZæûúõ+Ë]h(Ї‡G`` íOæ÷Íø)++sr„www§]eùÏ¿™wƒ ÑÂ×7ÁÛ;ž‹ÉdŠ£cÔêÕI|ïͽóç³²ÚßÒÒÉßÈ&†²²2*•J úlWWW“H$EEÅ»wïR©T—ÈÈH*•ÚÖÖ†F£9ÒÞÞN¡P:;;Éd²‘‘QJJ =ì™3g˜CEEíÕôôt–…ýõ³¿ÄðäÉ999æPZZZT†C³Ass3íÕüü|SSS}}ýììlZÉ›7ohÛýÙ?.))ÙÐÐ@¯@ P(Ô«W¯h5³³³éïˆywÚvAAãgË>1ôöö¾}ûÇ“ÉäÂÂB6»Ðœ:uÊÒÒ²§§‡ö'óûÕÓÓcþ‚úû´éX&8”nnæ¼çbUg$±$/¯²°ðýPtLT“˜¸šH$ž!HCÑ{4Ýg€B¡\]]³³³[ZZîܹãíí ‘‘)(((..VUUµ³³{øð!‰¬­­555¥Ç411anHWW—¶a``ÐØØÈ¦™´´´¢¢byy߇ØËËËÍÍÍ™C5773V«««SRRB ÂÑÑñãÇõõõôú†††K–,aómܸqÊ”)kÖ¬¡þÿ¥/_¾Éä &ÐþÔÑÑaÓyÚtúg˃©ªªrvv677OIIa_¹¢¢â?þ¸té’°ð¿³{1¿ßOŸ> øq&hìpp0F_¿>¸é1h,-'8;OŠˆ¸:DO((H¥¥¼~Ýx–DY7¸»»_¾|9##ÃÚÚš6@ÔÝÝM¡P233ÛÚÚüýý,XÐÖÖ¦¢¢òòåKú^¯_¿fEû ¨ªª¢%û+dÉÛÛ;""‚ñ¤®®®C‡9;;3‡ÒÐÐ`Ü—vVAûÁÛÞÞ^\\¬¬¬\WWG{µ¼¼üÀlšF"‘§OŸ~üøñßÿM+QPP@¡Pµµµ´??|ø ¢¢Â&-û Œº»»=<þœ——ÊjóæÍ555¥¥¥»víZ±bE…ß¿§]ðè³½oß¾¯_¿ÚÛÛçååUWW_¾|yúôé***¿þú+­ÂöíÛé¡V­ZÅØ´««ëÎ;ëëë+**œccc}||vïÞýêÕ«W¯^mܸ±¾þÿ®ÿãñxæÎkii9räèÑ£´?Ñhô²eË‚‚‚>~üøêÕ«={öÐN§úÛ}@}öêíí% ¦»»;,, ÐÙÉúdwÆ kÖ¬±³³cÿ~¿ }ûöqÑÉ 8A£Hii­’Ò–—/¸Û}÷î,“½=üí£çÏëtuwlܘJ&Sx8»ÆÀ8Îr;00PTT‡ÃÑ÷JOOŸ0aƒ100ÈÉÉ¡R©!""BKKK\\ÜÊÊêüùó€éCbb¢†††œœÜ¦M›º»»YRûs§ÁãñÛ·o766322Ú¿ÿ?èÕ.^¼¨©©‰Åb·oßÞÛÛËø.p8ÜêÕ«edddeeºººzzz‚ƒƒ•••¥¤¤¼¼¼ÚÛÛ©T*‘H´¶¶gþ¨T*…Bqtt¤÷§­­ÍÇÇGVVVIIiëÖ­ÝÝÝlvgÞ¦¿5ƽßottôøñãÕÔÔâââ¼¼¼°X,Ëk #Ì€åû%‘HQQQ:::ãÆ³²²*..æä/>C?;»È;3¹Û·££ËÐpWTÔMþv©‡«45ƒ·l9O¡ðš8I œØµk×òå˵KŸ:óÅÒþ ù«Ï‘,xñú),[f‘ý¼»›› 줤Ä6n´‹»7¤s£Z[릤¬¹|¹lß¾+C× ‡zzzjkk“““×®]+è¾ íJ5‡{!ÎÁÄ5îîÓº»‰7oVr·»ŸŸÍøñã†èy7:;;ý¨(Ó§9’7¤ ¨¤¤dêÔ©~~~³fÍâ%ޤ¤äºuë8)ä—ׯ_;::®Y³FMMmˆšøiÁ¥=¡1Èß?‡ëÎÌÜÀÝîÙÙσ‚ÒnÜØjb2´Gœ«W_lܘêïo¶ˆ»"==ÝÃÿƒ~´<}–ö„g ÐäåeYTôëé\]Í­¬&üö[&…2´?›.œrâÄŠ¤¤ááWàO4h䀉ƒfÏ6PR’ÊÈàþÆÓýûÝÞ¼ùçâEf›áÌÂ…SNœðIN~¸sç%˜ &h B¡nnS/^,áúi5}}EŸ™\ãïún,-\hzâ„ÏùóÅ¡¡07@#L ÐØäá1íËÜ£GÕ\Gøí7g$qäÈÐ^…¦Y¸Ðôða´´'ûöÁ1%HðàÅghÌrs;!--–”äÇu„ÔÔ';w^ºukûĉì&rà—¬¬g[·^pu5?rÄSHˆ£mbÒ¤I CÝ7h¬ª¬¬´µµísñ&h̺víe`à™'Oö¨©ç.…B]°àO4Zèòåü]À²?Uûù%MŸ®ý÷ß«DE1Öß¾}û§OŸ†¡cÐæáá±téRƘ 1‹D¢XXDxxL Çuâânn±§Nù.X`:pm~(/oðöþ[OOáÌ™µ’’"ÃÓ(1‚× 1KHéím™–VÌËL×––\]Í÷í»ŒÃõð±ol˜šªggo¬¯ouwmmåf²6âL ÐX¶bÅ ®ûúõ ^‚üþû2™‘ï^ H__1=ý×–üÒ¥±Ÿ>µ [»D4–)(H:9Ÿ9ó˜— ÒÒbáá‹/\(áå§ÁÒÕUÈÍÝŒB!çÏÿóÅ‹†ak‚L И·r匧Ok_½ú‡— ®®æCC3{{‡oý5eeéë׷Θ¡³dÉ_YYφ­]B…‡‡ º4„ÔÔÆçä¼èèèrp0â%δiZ'NÜ¥RÁŒ:üêÛ€„„óæ™P(”}û®@Φ¡ŸL Ї@ ÈdJbâƒU«¬………¸Ž#))*$„ŠŽ¾5þdYYq>ö=1c†Ž””è¡C7ZZ:íì Èá¸qú™Á¡$hì[ºt*™L¹|ù9qf(íØ‘9ü7y¯Yc›œìwéÒ3/¯“ðV%h¨ÁÄ}22ã–,1OL|Àã]Hyð ÛÓ§µ¼LÏÇ5GG£Û·ƒ[[»Ž<^7ü€~01@?… æ|üøíöí×<Æ17×üõ×9»wgÕ×·ò¥cƒ¢©)—›»ÙÂBËÍ-6-íÉðwúIÀ'Ÿ¡ŸÅŠww²²6ò‡@ 9;GËɉ§§ÿ:<ódôA¥R“’FDäxzN?pÀ F  ± ž1@?‹€»'O>”—óúL#ã]RR{îœ`~³#ˆ5kl“’ü®^}áៀƒø&ègak«oh¨œ”ô÷PÆÆ*ë×ωˆÈáz‘8Þ9:ݼ¹­·—äà•™)€kÐôY³ÆæêÕÍͼ‡Ú¶í ¹tÆjiÉçæn rN_¾<þË—ï‚ê 4ÆÀÄýDÜܦJK‹¥¤ð4C ЉYþôédzg‹xÆ5 ¹aƒý… UUŸ¼`g 1&è'‚ÁùøÌ8{¶èÇïÑŒŒTÖ­›uðàµÆÆvÞ£ñbÆ »wC,,´¼½ã×­;×S"ègôsYµÊº§‡À¯Aùà`gUÕñ›6¥r½¸4¿HI‰ÅǯÌÌÜðþýgKËý{÷^îêêl— Ñ N‰ý\ÄÄ0µµßòò*W®œÉûͦ(ÒÎN?:úVo/iæL]¾ôêêã½½­¤¤ÄâãïŸ?_2~ü8##Aw }`b€~:ººŠÇŽÝÒÕUÔ×Wä=š´´ØøñãÈ>}‚º:—kˆò …43ÓX¸Ð´²²ñäÉ‚/&LÀ**J º_Ðhpƒ~FþþÉõõ­ùùÁüzB-0ðLiiÝÝ»!ÒÒb| Èùù¯£¢n¾~ÝôË/Æ!!s •Ý#ht€× ŸÑ¦MoÞ4ññžC‡Ü‘HDpp:¿ò…££Ñ­[ÛW××·8:FýúëÙ¾ ºSÐ(Ï Ÿ”§ç©Þ^âåË›ø°¸øƒ»{ÜáÃî^^–üŠÉGVqâîÂ…SFÔ€††ìòå–††J/^4œ8q÷Î7¢¢h]] @}Á3èçµpaŒ´´èÙ³kù@ ¹¸B]½„Áp¿(Щ««»}û6 ©©»¤¤ýÕ+œ˜˜Ðüù úú‚îÄO"""žžž †ûTúYݺU©¤´¥¢âc66¶Mœ¸{ëÖ |ŒÉ/žžžŒÿ÷‘ÈqVh4–×ã4òdeeñòOžEB?/GG#CC¥¸¸{|Œ©¢"süøòôô§ééOù–/Èd²»»;ý??™ŒÇኄ/†… aôS[¼ØLYY&&æƆºXXh¯[w¦³³‡¿‘!hÀÄýÔÐhÔöí¿¤§?­©áç þ(òĉ?~BBFÖ“ Ä ˜ Ÿ««¹––ÜŸÞæoXyy‰?ÿôºvíej*\œe`b€~v(rëÖ_rr^TWáod;;ý­[Ù³'ûùó:þF½jjjøø`ÖÒÒÕÕÕ ëééwìŽÞ4•J]±b…¸¸8àâÅ‹VÊË˹ëËhìû3¨Ï„¿``b€ °p¡©¶¶üÑ£y|¼m›“‹‹‰¯o¢Ã6mÚTVV–••ÕÐД””““2à^MMMiiioÞ¼,Z´¨¹¹¹¹¹¹¨¨Ðüÿq؇ÚÚZ999Æ’¢¢¢æÿb¹£´´ôŽ;8le˜ÁÄA…BnßþKnîË7ošø@DG{jhÈ®Z•„ÃÁ Ñ|våÊ•?þøÃÌÌL^^ÞÖÖ6&&æêÕ«îÕÝÝ PWWˆŠŠ******ÊËËÿ?4Ía(Jkëîj“——Wü/–;ÊÉÉEFFrØÊ0ƒ‰‚`ÁSCC¥¡8iAŸ>í‡ÃuoÞœF¡Œ‚‰Drr²¡¡¡¼¼|ddä¹sç´´´¤¤¤öîÝ  ò÷÷§ÕÄãñbbb/^¼äææš˜˜ˆˆˆhkkŸ;w@¡PNœ8ahh(!!aeeUPPÀ8BÉÉÉÑ××Çb±AAA½½½, ÁÇO·%%%ãââèÇe[[ÛúúzÚ6‘H QPPÀb±!!!D"‘Þ´¥¥% ¿ã5ËÌo“Ãh×®]›2eŠ˜˜˜’’-°bn”L&GEEéééIHHÌœ9³¤¤„}Cü!èG1 h¤¸v­\Yyë‹õCüÙ³Áüqm(‚sÈÝÝñ·þ¼¼¼p8\bb"ÀÃÇÃÅÇÇZZZ eee‰D"•JMMM522¢P(x<^XXøÔ©SÍÍÍIIIBBBx<>>>‹Åfgg755]¿~]UUP]]M;ìÐ6œœœªªªŠ‹‹uttÂÃÃYR©ÔŽŽŽ„„Z÷·oݺ¥¢¢",,ìèèUWWGÁêè IDAT‡rsskhh¨¨¨033 íÓtŸwÍ\ÈåÛì³# ¼¼¼“‘HÄáp ÆÏϯ±±155ðõëW–ýan4::šñcTVVð¸ HOOð‹f—!h,¡P(Q¾¾ C?#㩲òÖììçC@œ'†²²2*•J úlWWW“H$EEÅ»wïR©T—ÈÈH*•ÚÖÖ†F£9ÒÞÞN¡P:;;Éd²‘‘QJJ =ì™3g˜CEEíÕôôt–…ì{K"‘Š‹‹#""ŒQ(TZZ­ÜÀÀ ¹¹™¶ŸŸojj:ØÄÀåÛdN }äææööö¾}ûÇ“ÉäÂÂBÚçÀ²?Ìêéé1Œì?ÞJ‚ !ˆ-[ïÜySQñi(â»»O[µjfHHúë×#ý‰h mœq€B¡\]]³³³[ZZîܹãíí ‘‘)(((..VUUµ³³{øð!‰¬­­555¥Ç411anHW÷ßõP Ù2ëêêºxñ"`úôé{÷î­¨¨Øµk×o¿ýF{µ®®NII‰vS££ãÇû!0G`ù6™w¬®®f<ÈΟ?ƒÁTUU9;;›››§¤¤ ªÑOŸ> ø1òL ô\\LLLT÷ï¿6DñÃÛ™iøø$45u QÃÀÝÝýòåËÖÖÖ´¢îîn …’™™ÙÖÖæïï¿`Á‚¶¶6•—/_Ò÷zýú5s(Úe@UUm¤¿BfT*uùòå•••´?Ä/¿üBŸ#HNNŽ~€noo/..ìÛdŽÀòmrª»»ÛÃÃ#$$¤¬¬,..nPjjjø1òL ôÄþýnWççÉ?4•œì///±tilK ~(š666$)""ÂÇLJV‚@ œœœ²²²p8@@£Ñbbb~~~!!!999Ÿ?ÎËË eµyóæšššÒÒÒ]»v­X±¢¿Âïß¿Ó.x0n‹‹‹ûúú.[¶ìúõëµµµEEEÁÁÁ^^^´j®®®;w¯¯¨¨pvvŽìÛdŽÀòmÒ*ãñì¾ÍÞÞ^€Á`º»»ÃÂÂ6Èø1îÛ·o°o„¼ŒCAИ´zu’ÍA"‘Н¢Ç¢xP{Ô‚< A‹ZµˆÔbô+"âå–G¤¡* ¡„dîso.„g’°~ ›ÌÚkv`VfÏd&$ÄóСkB¡HM]ØÙÑ23Ãù¥î‹/¾WSjÒÕÕÅårÓÓÓÃÃUöä;0Ö@a@-[ýõWwZZ‰úº˜9sÚ7ß„ž;W¦Ú'©[yyùìÙ³ÃÂÂ|||FÇÄÄ$22r(@ó`* ÅŽû1)©øîÝ]ff“Ô×ËéÓ·ãâò’’>Y²äMõõ‚SáTË`* uÙ°Á×ÈHÿøñBµöá½aƒïÆYEEÿ¥ÖŽ:( (¦¯¯埙ù‹º¿s°k×Òðpï°°ô›7¡6€1 J­Zå9}:íÀuw»$8xnDDÆ/¿Ô«»/…¥(ÇÙyy~úé¿ÕÚ‰D:xpy@€{hhJy9W­}0(( d·¥KßÜ·/O,–¨µ#Òñã«üýßøä“”‡Õr³&† ƒØ»÷æ&^FÆuwD&ë?âînšÒÐðB ñÉ.\PøìI MB e4*p¹*ƒKL¼‘œüÓÏ?ïd0LÔÝWggwppò¼:þ3f òø—aár¹¿þú« ‚±‰L&èëë8×ÝÝãíïåŪ©iæp4ò4v„Èd£GƒߊŒÌ,(¨ÔL§ „Fuæ€ ÅÑ‘±zõ;‡ýà>y²¡z$“u‚B›6ecöÁ35Ð)ä}ûö㆗óÌ™²ººç‹khnGG‡´p¡kkkçW_]533œ9sºfú†AW—ìà`ñ¯]™=ÛÎÎŽ¦™NI$’ŸŸ‹‰‰ÁÞ½—y¼NgüZuÔN>0l‘‘™••O‹‹·R5ÙïÕ«7mÊöõu9uj¾¾®&» œ|`Øöïäó»oh¸ß÷ßóâÅ÷îqÙì“<^§†{†N7Ž]rúôO5i¸ë·Þ²ËÍÝôü9É’c­îL0•ÀH`¶bÅ7<^çõë[(MÀzö¬mõêÓAwvv„jo›‚#F†D"Ådz^¤¥ý¬ùÞ­­Íòò¢ììÌ—,9–Ÿÿ@ó íW%0Bff“$ìØ±Â>šejª‰¯5ô¦§§Ëf¿M&ëìÜy±±±Õ××…B!k8 ­`* €‘ëîîñó;lgGËÊ 'êÒ›7ÿ+*êŒYJʧӧ›’Ð20•ÀÈééQ¾ù&´¤¤VOkPæÝw߸råŸ==Ò¥K>&*  M`* €Qa0LÄbÉÑ£?.Yòæ”)“ÉÁÌl›ývcã« _yy1 4ú  e`* €ÑÂ?­S(:—/G‘ÉD…ß¿ÿ$:ú\k«`×®¥«W{˜ ×àˆ€ÑÒÑ!Í™cŸ˜xƒL&Ïë@`&ÖÖflöÛÏŸ¿NLüñ·ßZæÌ±72ùc¼À„…077¢R) ×üü\ŒÉf¢§Gñ÷w;×>;ûîþSÔÝÝãá1J…û(ƒa€©$TC*Å–/?ÉãuÞ¸±EOø±X,ápî%$\‹%7þ}ýzï±àˆÕ ‘HžžÌ“'‹„BÑ‚ND§ƒÈdwwÛ•+çðùÂS§nåç?°°0a±pgV0(( ¨Œ©©¡nbâ __KK"'”d ¨¾¾.˖ͪ©iILü±  ÒÈHoÆ +Í<ŒS0•€*I¥ØŠ§ž=k¿qc‹±ñØ:ñûôé«'Š8œ{¦¦†¡¡ïDDøŒµ Á…kmøû'¸»Ûfd¬Óä¼MTTTMMÍ /‰ô^¾¤½~mJ£µÒéÏ5ƒ"##—/_®ì·PP½ÒÒú+¾ùòËÂÂh¬S‰äééikk;”wu‘ut0*Uªî¬Àt÷î]//¯œœe/€«P½wÞamÚä—ÿöÛöû›ÆúŽŽ ÒXw`œôî•€ZlÙ²hæÌi‘‘™]DçÀð@a@-(S§Öðù˜ѹ0üðÖ–––––ÒÒR„PËÿquu%:µÑ*--méKáËLMM·oß®áÜdàrUÔÎÞÞ"5uíªUɉ‰7¶lYDt:ã€BH  „,--‰ÎHe,,,†²94->>^ù(G hÂüùN»w€ß­ˆÀ4H$Rzzº‹‹‹……E|||VV–½½ýäÉ“wïÞŠŠŠZ·nþJ@`hhøàÁ„PAA»»»¾¾¾ƒƒCVVBH*•ž8qÂÅÅÅØØØËË«¸¸¸÷ >¡‘——7cÆ :ÕÝÝ­°õýt&Da†Ê"‹Å☘ƒA§ÓcbbÄb±²°ííík×®¥Ñh666[·níêêRÖˆÃ0lëÖ­­­­ óW–’2W®\™9s¦¡¡¡••^…üI$’„„'''ccãyóæ•——ÐË0`Mùüóó,ÖöššfuGq8œA_ÌçóSSSBAAA|>?99!ÔÚÚzûömsss±XŒaXvv¶«««T*zzzIII---iii E $''ÓéôÜÜÜæææ«W¯ÚØØ „êêêð] ¾°páÂÚÚÚ²²2‹µoß>…†µ··§¤¤àéõ^ÆÉbâf¨,ò¡C‡>þøã§OŸVUUÍš5kÇŽøÔÕÕõ–??¿†††ªª*777|uùF¼#©T*« ý2xðÞ+++;z‹Å|>ŸJ¥†……555egg#„^¼xÑ/_~‹{¿S§NÊ^Íf³ÙìþN P•®.ñûï}ç½~ý—ʃ±0TTT`&‰ú-×ÕÕõôôXZZaaÇÓÕÕ=räH[[›T*íèèH$®®®²°™™™ò…¡ªª ÿ-‡Ãa±X ݨ~…Aa†Ê";;;·´´à………˜¢Â ‰Èdruu5þcnn.‹ÅR؈w´mÛ6„Ðo¿ý&ŸáÀ#€):ÃTPPÐÝÝ]SS#$ÉíÛ·ñ ù-rrr’#ÕA L% 9zz”´´0¡P‘)‘sŸ"ccc„®®n¿e„™L ÌÍÍmmm½yófHHBÈÌ̬¸¸¸¬¬ÌÆÆÆÛÛ»¤¤DGG‡ËåzxxÈbº»»Ëwäèèˆ/8;;755 Ð8t 3T¹±±ÑÊÊ ¿òÇßßÿÉ“' c>þ\"‘0™LüG‹ÕÔÔ¤°_¾ÿ¾ÏÁƒåCõÛõ+ÜØ~eiÉ’%T*µ¶¶vÑ¢Eo½õVFFÆ›/¿EüñÇ oÄ@a@£ “””µee ‡_#:Ølö¥K—rrræÏŸO …B©Tzá·nݺ¥K—òxCe‘ù|þ§Ÿ~jfffnnÑÙÙ‰)šåÇ0ŒÇã­Y³ÆÜÜÜÊÊ*::_]¾±w2B¡ÐÉÉiïÞ½†8pÀÔÔ”Édæåå 0˜’€aXbbâ”)SlmmO:L§Óù-êééIHH`±X“&MòòòŠþÀ†Pày C"‘FDdܽ۟ÿ‹E}@‰ÄápFÛíØØØÆÆÆ3gÎ }•úúzGGGÙΤß4ª$CFV•1˜RoøÉÏc€s ƒLÖ9yr “I I~ñ¢ƒètB¨««‹Ë妧§‡‡‡‹bc?Cí…Âèëëff®§PÈ¡¡)}J3ÊËËgÏžæãã3š8&&&‘‘‘Ci.…ª$²jÁ”†¦’ Xccëww·ÍÈXO¡Œü³šª¦’€Öƒ©$Æ:;;ZfføÝ» Û·_ :‚ÂÀX0sæ´¤¤Ðœœ{ÇŽýHt.@a`lð÷wݱ#àÈ‘ë—/W ˜èà¶ÛŒ7ú57·öÙYê{﹘¸ 00†8(•b))k.vm(**jooWGb@›p¹\ü;ÒÊ@a` !‘H~,KÂÃ3ÒÒÂÞ}÷¡¯kkk{úôiõå´ÉÀW$Ã媌9‰tÓ¦ì7ª³²"æÍc˜p 00á %%µgÏFÎ;ÐQ?*…€1J,–„…¥Ý¿ÿäüùxxL#:0@a`ìêê¯^}ººúÙÅ‹Ýܬ‰NLPÓø|!›}êÅ‹Žœœ8:2ˆNLð7Æ4ƒóç70&'=ö³0( Œuff“rs7¹¹Y/[öŸ’’Z¢ÓÚ 〡!õ»ïÂ}}]Ö¬I¹~ýÑé-…€ñAW—œ”ºlÙ¬ÈÈÌüüJ¢ÓÚ ¾ù À¸A&ë$&®46Ö߸1«³³+8ؓ茀v‚ÂÀxB"‘ââ–Mžl°ukNGGwD„7Ñ-…€ñgË–ER)öå—ybqÏÆ~D§´ Æ¥˜˜Å¦¦†qqùuuÏ¢Rᨠ|Á €q¬¼œ»~ý· †IFÆz3¢ÓZ®J`›;ס à3‰DºxqbYYÑé-…€ñÍÎŽvéÒæ7Þ˜r:#㘣SIhƒžé¿ÿ}ýäÉ¢yó ¶´œLtF`ƒÂ€ö¨©i‰Š:óûï­{ö|âI"‘ˆÎŒKPÐ*B¡hÿþüÌÌÒ€÷ýû—Á¡( h¡Û·Û¾ý«W‚èè…ááÞººd¢3ã ´“X,ÉÌü%!áš¹¹Ñ—_~äïïJtF`܀€6{ö¬-..¿  réR˜˜Å,èŒÀ8…íwçNÝþýù?ûàƒ™ÿü§¿““%Ñ1 Ž{Üǯ•–Ö/Xà´sçûӈΌQPÐ~Û¶mKHHÀ—õõ™FFžÉë¶¶+ÄfÔŠJ¥ÞºukÞ¼y#Xn¼€ökllôôôüüóÏñ1 ëê’„›P«   gÏžl]( L¶¶¶l6›è,Àø÷JÐ}@aÐ}@ahB}}½ ïöJ"‘êëën¢ÎÎÎmÛ¶½ùæ›FFFsæÌùꫯzzzT”fŸô䩼U«’WGGÇœ9sètz||<“ɬ®®Þ½{waaaaa!™¬â;–––ÚÛÛ«6¦š@aL\qqq·nÝÂË€““Ó{ï½çææ–šš©Ú¾,,,,-ÇÇÍH`* ð¿H$Rzzº‹‹‹……E|||VV–½½ýäÉ“wïÞŠŠŠZ·nþJ@`hhøàÁ„PAA»»»¾¾¾ƒƒCVVBH*•ž8qÂÅÅÅØØØËË«¸¸¸÷´ >§”——7cÆ :ÕÝÝ­°õ€úd”|J!±XÃ`0ètzLLŒX,FeggïÙ³§÷ÁÁ¤I“¶mÛvæÌe]ËÇÁ[TT4mÚ´Y³f)%ez¯›‘‘![¾sçN{{ûÚµki4šÍÖ­[»ººz¿øÎ;CŠÂÚŽÍf³ÙìA_† æóù©©©¡   >ŸŸœœŒjmm½}û¶¹¹¹X,Æ0,;;ÛÕÕU*• ==½¤¤¤–––´´4 …"’““étznnnssóÕ«WmllBuuuø_X¸pammmYY‹ÅÚ·oŸÂF ÃÚÛÛSRRðôz/ãû%·(L ðC‡}üñÇOŸ>­ªªš5kÖŽ;ÚÚÚB/_¾ì7wïÞ2eŠ,aYÎø²|ü·‹/¾uëÖ?ü ?Jxz•••}É"ãëVVVÊ–AHHˆŸŸ_CCCUU•›››l”d/ôÝäp8ƒ¾éŠ×Ùj€qdè…¡¢¢Ã0‘HÔo¹®®®§§ÇÒÒ²¨¨ð€€€øøx Ãx<ž®®î‘#GÚÚÚ¤RiGG‡D"quuÍÈÈ…ÍÌÌ”/ UUUøo9‹ÅRØ8pªÊ ƒÂ”0 svvniiÁ_\XXèáá†ÖÖÖ~ÁKKKi4š²Â §wò G SrKº~£Ñ{Y$‘Éäêêj|õÜÜ\ùQØh L%þŸ±±1BHWW·ß2BˆL&æææ¶¶¶Þ¼y3$$!dffV\\\VVfccãíí]RR¢££Ãår=<_$éêꆅ…ÅÄÄäååýùçŸ×¯_ß±c‡|¨Ï>û¬¾¾þþýû_|ñÅêÕ«•5¾~ý?áÑoyíÚµ›7o¾råÊ“'OŠŠŠV¯^ª§§§,%„P``àÎ;ÿý÷ªªªE‹ÿÓO?533377ˆˆ½^ lÙ²ÅÍÍM__ŸÉdÆÆÆz{{¯X±ð˜šš2™Ì¼¼ 0è €>àrU&„ŸþÙßߟè,Àø…íÇf³‰NhÚÊ•+çÎ;²uárU}À9}@aÐ}@aÐÇÿ‡v/"ÇÝ˪IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_enum.html0000755000372000001440000000511512502417165024106 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Time__inherit__graph.png0000644000372000001440000001520412502417165030102 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“9IDATxœíÝ{XWúð7„K@Ñ*ä¢rÓª¸V­×nµR«E]­ZDºXqEW‹Oï>[Á®²]/T­xWPAîŠåAEjK¬¢¢ÄR·R.*M‚r™ßók:&“= ø~þšœ99y‡|™LÆEQ€Ðë²â»Ô¹a€ "‚BD¬™>|¸bÅŠ¦¦&¾ªAN$íÝ»·_¿~ú–—tíÚµ¬¬¬yóæuxa¨sHNN^¸p¡ÉÑΜ9Ó%¡ÎD ´à9"‚BD0@ˆ±¸ýþûïÆgj$ª««CCC½¼¼ºwï>zôèôôt3N‚uKÉ7?11QÀæÎ;$Úbq2¯gÏž1ÂÁÁ!))©  `Á‚!!!999|×ÕŽ>ùä™L&“É®^½ ²?øûû·Ç˱|ŒïJ¢££:D?2dÈãÇwìØññÇó[Xû±·····¥R }úôi×—{=@ 8räÈàÁƒ]\\bccããã½½½{öìùÕW_@TTTDDÝS©T:88ܾ}Î;7lØ0‘Häãã:nÏž=ƒvtt?~|^^sïMïÌ333ß~ûm±XÕÜÜÌÚ/ïù™Ë©©©«V­b}øðaz¹®®nÑ¢EÎÎΞžžkÖ¬¡/Áso©²²²è]››[ll¬¾gnnn¿~ýòóó;ÐNž<éëëëââ²|ùò/^0KU«Õk×®uuu‹Åk×®U«ÕÆïEmm­Á³ÚâõžÅŽbHJJ2ha!!!õõõô¿ìàààúúú¸¸8xúôé•+WœœœÔj5EQ þþþ:N©TÚÙÙíß¿_&“>|ØÚÚZ©TÆÅʼnÅâ´´´êêêóçÏ{zz@II ]½0uêÔû÷ï_»vÍÏÏ/&&†µ‘¢¨ºººƒÒåé— ÈårS6yòäÒÒR©T:tèPz(î­c- ¾¾ÞÖÖvñâÅ••• PSSC÷œ6mÚåË—e2™©~ø¡~¨ 6è7Ÿ¢¨ÿüç?Ÿ~úéÇ¥RéÈ‘#7lØÀ,¾   <<ÜÅÅ¥ººšuë˜C¸xñ"ʲ²²Vßnƒ·>))é¥惶¨°°¢¨––ƒå’’FÓ§OŸÜÜ\Š¢¦OŸKQ”\.·±±Ù±c‡B¡Ðét Z­Ößßÿرcúa?n ©Tª¯ÍÏϵÑTr¹ ëÚ––¡PøË/¿ÐÓÒÒ衸·Žµ€æææ{÷î)•J­V{åÊãž­v ‡òööf¾ëƒ ’ÉdôòÅ‹‡NQ”J¥:qâĘ1cFŒ×ÐÐ`jó9DQTUUUtt´§§çÌ™3srr´Z­©žLf PII Çò?ÿùÏ+VÔÖÖÚÚÚ>zôˆ^›ŸŸÔ­[· &|ÿý÷EÙÛÛß¹sG?,}¤3J¥¢×‰D"ÖFŽR]]]% ³¥  `Ô¨Q=b%•J顸·ÎT™™™ï¿ÿþðáÃ?ÿüsfÏ––º§©¬H·ˆD"æ±¢gÏžôž#<<üúõë:Žûmâ­¥¥åÌ™3ï¿ÿþÀ>|ÈÝ™b P»| ›7o^zz:]}`R©T:.99Y.—GDDÌœ9S.—{xxéŸU\\l<ýW€û÷ï»»»s4²š5kÖÎ;)Æm» jµÚÁÁÁÕÕU(–••Ñí¥¥¥mÜ@ƒT*UppðÚµk ÷íÛÇìiccCo¾©Ì¡ú÷ïÏ\åì쬯B¡¸víš‹‹Ë!C®^½*‘HêêêÚX-‡'OžWVVŽ9’>õ~eÌ4™k¤ÑhÄb±««ëÑ£GéU*•J$¥¤¤ÔÖÖ8p@$©TªmÛ¶‰Å⌌ ™L–ÍzPRRRPP0`À€Í›7³6R&Î(Šª©©qrr “H$EEE111••E¯ Æ8p ãë°Lö‚zPQ=ø.Ä‚1/ åçç …B¾+² W¾‚¾â»K" óóó™™à‡v“+ ÓŸ<‡¾|Wc¡ðÈ´Gi XÁþK±\ ÓJ¥J eGø.Åra€Lx^ Ïÿ¸?©îxþ+¯ÕX. ’Àêo­làA¯ÕX. + ÊŽîÿ¡SCÙQü´ÁÄæÙ xñ襖àÙMžª±h 6Nÿyü¢YÙÀ¼½‰È¥…ò„?_4ÊãÒòT“婹ÍOYÚ›ŸBÍ^¥Ã©8exü¢YÙÀƒS^¥Ã¯2^¦k†gÐ(Ù×Z;BP-XÙulM ÷@/«•˜Lh öjVÓ àèešF¨þþχ'¼ÂþlqŸÖ]•ÃqÊx÷Ø$<„!" D„ˆ`€ "‚BDðc<'e@w¾ë°\ DaˆÁ™™©¹NRRRÌ;‰Œ…èâsetªµiV^{ª”ö€âôÓ<ê§y̆מëÄ @ó¹P&¦Yaz½©RÚˆÓË"™ëÄ @Ü?õo<Í ëK¼êT)íÏ^Ùç:1ÅxšÖnf˜*…è¼óÎ;yyyiii¿ýöÛÀ—,YrëÖ­öx¡¹sçnܸñÁƒR©400pï޽̵:îÂ… sæÌ7nEQ‰äôéÓÎÎÎíQIëxÙïuFç@z¯:×É+¸§Yyí©RÚ^âÔÚMõ:N§ÓY[wèõXµZmÆÉ.á•h"¯7× !ËIà•èVàý@­Á!"ø) Á!" D„ˆ`€ "‚âtgÜÙÀw ¯Ds¢/$"Óp„ˆ`€ "‚BD0@ˆÁÛ98áý@­Á!"xCD0@ˆÁ!" D„ˆ`€8áý@­Áû8áý@­Á="B´jiiILLljj2W5–æ#Q\úõß…´‘H´`Á[[Ûׂä§=RSSÍ·-ˆ©©©$ Úi4ÀoÓ:/@@¿‰¯ Ï "‚BD0@ˆH§s ³¨®® õòòêÞ½ûèÑ£ÓÓÓÍ88 Ö-5û濪N ózöìÙˆ#’’’ ,X’““Ãw]– ¿ÊxIttt@@=… 2äñãÇ;vìøøãù-ÌbuĈ{rš¨¨¨ˆˆº§R©tpp¸}û6œ;wnذa"‘ÈÇÇ'>>t:Ýž={ìèè8~üø¼¼<æÞ›Þ™gff¾ýöÛb±8**ª¹¹™µ^Þó3—SSSW­ZÅ,>::úðáÃôr]]Ý¢E‹œ===׬YC_‚çÞ:SdeeÑ»:77·ØØX}ÏÜÜÜ~ýúåççw lmm­T*ãââÄbqZZZuuõùóç===@ÿÞôÂÔ©Sïß¿íÚ5??¿˜˜ÖFŠ¢êêê¹¹¹EMŸ>=66–¢(¹\ncc³cÇ…B¡Óé´Z­¿¿ÿ±cÇôÃ?~Ü8@R©T_›ŸŸk£©:år9( Öµ---B¡ð—_~¡¦¥¥ÑCqokÍÍÍ÷îÝS*•Z­öÊ•+Æ=[í@åííÍ P«sü°¾5„ê “hGGGøã²™Ë  çΛ––öôéÓK—.………@¯^½òòò®]»æééùÁüôÓOVVVeeeÇ×9lØ0ã0`½0hРÊÊJŽFc½zõruuýõ×_™7nÜ=zô‹/žfO:y˜Cõïߟ¹ªsü˜Éî«í‡0î¹E4X,vuu=zô(½J¥R‰D¢”””ÚÚÚˆD"•JµmÛ6±Xœ‘‘!“ɲ³³YÏJJJ  °yófÖFÊÄ9EQ555NNNaaa‰¤¨¨(&&²²²èµ¡¡¡“'O.++»{÷®¿¿?=÷Ö± P(Avvvccãºuë °°y0âè0eÊýPÛ·og>+***((¨¢¢¢¨¨hìØ±+W®lË[Ó9θDQÔ²eËìííëë뙃ûúúÚÚÚ4(33“¢¨–––¯¿þÚÛÛ»{÷îãÇ?uê”q€:Ô¿ggç/¾øB¥R±6R/Ïc0­NEEEPP»»»££ã˜1cΞ=«_%—Ë.\èäääææöå—_ÒCµ%@ÆìÚµ«wïÞ}ûöÝ·o_HHˆX,6(ÃT‡ÄÄD///±X¼zõêææf泸çø1õÖt‚µÅ¦M›BCC_é)ó)q7v$Þ àF þ/$655UWW9räôéÓ|ׂ^ÿ'Ñׯ_5jÔâÅ‹'MšD2N="##ÛÒØ‘x/ ½ý:Ç™3gæÏŸO2â—@ HJJ ~íøß¡NíM Pbb¢€MJJ ¿·FtFüŸDw¼O>ù„¾†[^^þÞ{ïé¯çRµ~ýz^Kë|ÞÄÙÛÛÓ³¬+•JèÓ§~ó{oÔ]ÿV[[kpÛƒ)Ìû:¸oÒ€Öîhû‹vv]9@7nÜX´h‘¿¿ÿóçÏ_ãé—.]*((ˆÝ¸qcVV–T*ýïÿ»uëÖgÏžÀîÝ»ËËËoÞ¼™››{ùòåÍ›73Ÿ[TTäíí½nݺŽùF“O$W!Íx%ÚŒT*Õ‰'ÆŒ3bĈ¸¸¸††S=9®eçMTªŠŽŽöôôœ9sfNNŽV«5ëVšt™¯2ÌåâÅ‹b±8<<üúõë:Ž»3w€¸¿¿‰Ḋ={öd}‰––ú.ƒ>|øpëÌŽ<@]íæââ2dÈ«W¯J$’ºººö{¡6Þ;ñäÉ“âââÊÊÊ‘#GÒgî]LW Ð;3———––öÛo¿ 8pÉ’%·nÝjš;wîÆíììÜ•ðŒd÷e‡0&…B±k×.__ßŠŠ Ö$‡0î{'RRRÆwòäÉææf³o—ñ!¬ë¦Óét:µu‡^ñR«ÕwµZ&òïºþ…D++++«Ž>RwŠô˜EW;B „ˆ`€ "‚BD0@ˆˆ>Æ8ÐeFùÅ ­@ööB¾ ±\Dòðð …]øôî=€’Ë-åGÊÌN(¶ý?h³Â9SMzüøù»ïn °p‹XìÈw9 ÏLÊΖ …++Áùówø®Åra€LJL,Ðh(F—”TÀw-– Ä®¼¼öîÝJ ¤ÒÊòòZ¾+²P v™™·mlþÿ×õÙ³xc‡b—”T VkéeµZƒG1S0@,Š‹«~Ѭ­…x3„z‰Z­MO¿epü¢i4Ú´4öUo2 ÐKnÜ(¯¯o ­¬­…ÖÖBÚËVÏŸ«ð(f¿L}I}}ÓÙ³·õ~€Ï>¯o™5kD"–g¾©0@\"#@\\8ß…X.<„!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€ "‚BD0@ˆÁ!" D„ˆ`€>d3%%%..ޝWo‹çÏ߀ž=ëø.„KdddPP_¯Îg€‚ƒƒøá¾ 芋‹'MštæÌ¾ 0ôß$üýý£££ù­¡SÛ²e ¿à9"‚BD0@ˆáù$šwUUUŸ}öY^^ùP—/_þ÷¿ÿmÜc–—°@oz€Ìè¯ýkjj*Èd²•+WÒË@QTHH¯¥µ# ÙØÙÙÙÙÙ€J¥€Þ½{ëW-]º”·²ÚY'8 ÈÎΟ={ö©S§.\¸2cÆŒ#GŽÀ·ß~ûÍ7ßÐ=U*U```II \½z5""bêÔ©¡¡¡.\Š¢ÒÓÓÃÃçOŸ¾bÅŠÛ·oè_¥ªª* @"‘,\¸pΜ9ß~û­Z­fmÔwf>‘£~fîmF³ÿþ9sæÌ™3gÿþýƼL³ë€[·n}÷ÝwK—.=xðàÏ?ÿ|øðáåË—ÇÇÇ×××ðÁ‰D«Õ€D"qssóóókjjЉ‰™={vbbâÂ… ¿ù曦¦¦óçÏŸ8qbÉ’%ñññÿûß·oßnüBÛ·oß¶mÛõë×O:eªñ­·ÞZ³f ½–¹L¸-’’"“ÉâââvîÜYXXxôèQÂ?]{ëš?¾ƒƒÃÔ©S 44ÔÁÁ!00†jmm-•JàÒ¥KS§Njµš¢(•JekkxîÜ9;;»ÔÔÔeË–M˜0ÁÉÉiìØ±K–,1~¡åË—{zz>>‘‘‘¶ŽÐ9ÎÀÚÚÚ`¬¬¬&L˜ðã?úøøÜºukõêÕàèè¸{÷î”””£G8044tìØ±2™ÌÏÏO?¦ñ yzzÒ ýúõ«­­åhlm€Çúé§ú‡Ýºu#|¹öÖ9ÄmÒ¤I[·nõòòúË_þâââÍÍÍ:.&&F£ÑäæænÚ´)##ÃÙÙ¹´´Ô××—~VEE…ñP•••t°=zäääÄÑØNzöì¹{÷nP*•r¹¼]_Ž\ç8„q6l˜V«=~ü8}\@°víÚü±±±Q­V[[[ÛÙÙM›6í»ï¾“H$r¹¼  àÀÆCíÙ³§ªªêÿûß¡C‡¦L™bª±±±ñüùóôZæ2¹ & MySQL++ Reference Manual
scopedconnection.h
Go to the documentation of this file.
1 
9 /***********************************************************************
10  Copyright (c) 2010 by Joel Fielder. Others may also hold copyrights
11  on code in this file. See the CREDITS.txt file in the top directory
12  of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_SCOPEDCONNECTION_H)
33 #define MYSQLPP_SCOPEDCONNECTION_H
34 
35 #include "common.h"
36 
37 namespace mysqlpp {
38 
39 #if !defined(DOXYGEN_IGNORE)
40 // Make Doxygen ignore this
41 class MYSQLPP_EXPORT Connection;
42 class MYSQLPP_EXPORT ConnectionPool;
43 #endif
44 
48 class MYSQLPP_EXPORT ScopedConnection
49 {
50 public:
60  explicit ScopedConnection(ConnectionPool& pool, bool safe = false);
61 
66 
68  Connection* operator->() const { return connection_; }
69 
71  Connection& operator*() const { return *connection_; }
72 
74  operator void*() const { return connection_; }
75 
76 private:
77  // ScopedConnection objects cannot be copied. We want them to be
78  // tightly scoped to their use point, not put in containers or
79  // passed around promiscuously.
80  ScopedConnection(const ScopedConnection& no_copies);
81  const ScopedConnection& operator=(const ScopedConnection& no_copies);
82 
83  ConnectionPool& pool_;
84  Connection* const connection_;
85 };
86 
87 } // end namespace mysqlpp
88 
89 #endif // !defined(MYSQLPP_SCOPEDCONNECTION_H)
90 
Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruct...
Definition: scopedconnection.h:48
Manages the connection to the database server.
Definition: connection.h:59
Manages a pool of connections for programs that need more than one Connection object at a time...
Definition: cpool.h:68
Connection & operator*() const
Dereference.
Definition: scopedconnection.h:71
Connection * operator->() const
Access the Connection pointer.
Definition: scopedconnection.h:68
This file includes top-level definitions for use both internal to the library, and outside it...
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_17.png0000644000372000001440000000502212502417165024016 0ustar robertousers‰PNG  IHDR3RbKGDÿÿÿ ½§“ ÇIDATxœíškLMLJV°Ü)´å.rQQ 4 QŒ¨‘((U4F£bˆHŒ‰Qñᮂ‚ˆhUbä" Q„ ÑPnr+B-ÅÒ–vž›wŸµÝ– Tjßý}šžÝ™9sþÝ™Ù9«!:i¾ Є®º ¡«n²ûC,NNNΗ73&((hñâÅÿý†?~3y^õôôrrr–/_N§ÓSRRòòòœÍÍÍÏ;ˆ‹‹‹ŒŒDîFFF?~<þÜÓÓ“B¡¸¸¸äååd2ÙÍ›7—/_njjêççWUU…ú™Åb-[¶ŒÁ`ÄÅʼnD"\#øuÚ”›BãããÝÝÝ£¢¢äÞËUTQÍðððÏŸ?Õ¹7ʆ ‘H¬­­ FBB‚D"QÓ|°‡È|§Îçó³²²L&“Ïç§§§FFFª««­¬¬$ „0??ßÃÃC&“ ‚… þóÏ?\.7;;{Á‚ ==Á`””” ”––:888âR jkk«¯¯wss»pá®BÈãñ233÷°e¤Á¶¶6CCÃÜÜ\´Yl׈½ŠÒÐаÿ~:>00€¹Z¸¡P6„ÔÔÔ;vôôô°ÙlŸÓ§OO+JXX²øO#ìõumll„ŠÅb¹2‡Ã™šš²±±©¬¬„nÙ²%%%B8::ª¯¯õêÕ±±1™L6>>.•J=<<îܹƒ6{÷î]E]Ùl6ê›››®Qµ«Bxýúu33³žžžè* ïÝ»·fÍooïôôôññqeÝÉéŠ eCpwwçr¹ˆ±¼¼ÜËËkZ!Puá¾ÉÔÔ ¯¯/WÉäÐÐÐ’’’‘‘‘ŠŠŠ½{÷¨TjUUU}}½ƒƒÃúõëß¾}K"‘:;;½¼¼Ð6===;Z²d RpwwïëëSaTMLLŒ··÷¡C‡ Þ))®¡¢¢ÂÉÉ©²²òÆ>|ˆŠŠ211Q§G $ʆÐÝÝmkk‹l¤»ººÔìì‡Ãž¼êÏè¸å©©)ƒamm,iB¡PH¡PŠ‹‹‡‡‡322(ŠP(¼|ù2ƒÁxúô)—Ë}ùò%îúºaÇÓÐаdÉ’óçÏãátë+êùíÛ·‘ý„pxxýãÇ r}ýôéStt4F‹ŒŒ|ÿþ½²È(®ÊŠ¡P6„¸¸¸;wvww777¯]»6&&B˜™™Éãñ¦UdÎÖWÕºB9bhhÈç󱻺º¸»»³X,¡X,NNNvvv611ñóó{ðࢮYYYNNN4-66V(â¡’Å*è*“ÉÑ«/^´°°puue±XªuE»víš««kww7ndpkÉ…BÙø|þÁƒ©Tª••UTTÔÄÄ„¢ÿʘ]ÕáÌ™3{öìù­*rAÁ®ñ#•J‘-®šÈ…â·†øþýû´·)ê:÷ç“““999sÞ¸6@"‘H$µö%³źuë,--gPqî÷MïÞ½[½zuDDD@@ÀlÚ133‹ŽŽVǨµà†â·†P]]=³®õ f‹_TT´k×.H|/ñ·Ád2EEE¨E÷Ïýÿ?ÑR]±Ù.*•Êd2‘×÷···Ï¬¯¹Í j Zª+ ®®ŽËå ”——÷õõÅÆÆj¨# ‹S§Ni¨ñùB{ótt:IxÙÚÚ¦¦¦k¨#–’’¢¡Æç í}^±Édƒ”•å³ÊÊÊÜÜܨTê•+WË‹/¼½½ŒŒlmmå¶oß~ìØ1äªH$¢R©¥¥¥Øy˜Çã8p€F£988œ8qbrr¹ZYY¹hÑ¢ššÔ%õ³uóöevÏ%f  ©©i||œÏçùò% 99¹„›Ïlݺ•Ïç#Ÿ¶ŒŒðù|ƒˆˆˆ¾¾¾üü|ÀÐÐPaaá¢E‹d2„ÅbÙÙÙI$ìAÁÞ½{7nÜØÑÑÁf³W®\‰f7oÞüúõk@€zX^^Žü±:;;ÿxxäùsçM³DîÏgff†§áæ³oÞ¼J¥R‡Ã‰DŸ?R©y äp8ÆÆÆ ÂÝ»w'&&BÌX,&“É---Hã%%%Š™A,ýýýIIIÁÁÁ¯^½’J¥‹þ&]Q!'&&.]ºäèèˆ>>ÈWNÚ€öê:<<<88888ØÓÓ“ššêèèH§Ó¡¡¡‰‰‰_¿~e³Ù›6mºuënu‘H$‹ „BaRR`||466–””!WE__×®]qqq]]]---gÏžÅfÂåÉdeee!!!¾¾¾ÂÚÚÚ‚‚6gãŸ%؇W«æa‰äééY__\š6Ÿ…–¯]»fiiéè蘖–Î`0oÐMvß4::ºoß>+++[[Ûøøx43¨èaqq±¯¯ïýû÷E"‘&#¡Šó0q> MySQL++ Reference Manual
mysqlpp::UseRemoteConnectionOption Class Reference

Connect to remote server in preference to embedded server. More...

#include <options.h>

Inheritance diagram for mysqlpp::UseRemoteConnectionOption:
Collaboration diagram for mysqlpp::UseRemoteConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Connect to remote server in preference to embedded server.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/bc_s.png0000644000372000001440000000124412502417165021574 0ustar robertousers‰PNG  IHDR€_ kIDATxíËkQÆÏ¹É̤I&“¦mš&156*nÄ…”ܸR,4 +Hµ(U­b”ª1‚ŠˆJ.º(E·mßúhëJmKS'C›(‚èäÑ…¤ï &äÖþ ‡ïrÎåü3gö(z÷ýÒ&_9ó}’ÕŸ@‰mÚu ` Øh`ñ÷Ô¯  „ú&·ññ×Ù~“½—Üò‡ÎÝÑM4¸%‰3²§?Êêh)€ÿù™\ÄYi>Jb @gûßiÞˆú²Ñkg§ãê\è½­šEUæv+?E€î"pæÖÛB\ƒY&ðØó$vM+ê’Dn¼)}òþ:§Xoâ ƒ3ŠÚ¯'¯¿.‚fÁ0ìuŠ9òLýj€f6¸%«3Gf”Ô#Ôsm(,ùÃk*Ê’³Jª…¯¼JË¢o䆔¼u_~ °r]%%mnu]z°r5[ÍÆ°«Úò•Xeµ’†Iù<ÈèÐÅg@IÔÚÞàµë3‚:/<JÇ’ÐQ) ñ¹…tÚß÷(Mû\63éCgl!ýí;ÿ¸4Ùhâñ=÷Zë29­w’ÝÒ´·ˆV;ÊL3ƒj&7©·º½÷a!I†)ëë$-öÇÓú³›‹7tIV¾VàñÔübf¨8¡ÈƒB<﫵imnÿœÈ‡„ lߣù‡ÛD —#É5“­'Æ4?쬲øM’™›°»g¬‚|5Åçµ½GNdÓÐr|ô”Ã&„ì"7+'³@ 5‡G➑Džâɬ^;õã–.3Òr"ý_R³¿Â@²oI¾å$IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/insertpolicy_8h.html0000755000372000001440000000636012502417162024175 0ustar robertousers MySQL++ Reference Manual
insertpolicy.h File Reference

Declares the InsertPolicy classes. More...

Go to the source code of this file.

Detailed Description

Declares the InsertPolicy classes.

One creates an insert policy object to control how Query::insertfrom() builds queries from collections of SSQLS objects. Policy objects are what cause Query::insertfrom() to have different insertion behavior than Query::insert(iter, iter)

These templates use a class called the AccessController, which is a stand-in for the mysqlpp::Transaction class and defaults to the Transaction class. Since some of the InsertPolicy objects (SizeThresholdInsertPolicy and MaxPacketInsertPolicy) may cause Query::insertfrom() to issue multiple SQL statements to perform the insertion of all the objects in the container, and a failure in one of these statements would leave the table in an indeterminate state, the whole operation is wrapped in a transaction.

However, a transaction may not be desired if the calling code is managing transactions, or transactions are not being used for some other reason. In this case, the template can be instantiated with the NoTransaction class. It provides the complete Transaction class interface, while doing nothing.

Where possible, you should use one of the provided insert policy classes, but you can define your own if you need a behavior that the provided set doesn't include.

This file is not meant to be included in end-user code. It's included in Query's public interface, since it is only used with Query::insertfrom(). You access it as Query::InsertPolicy<T>

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption-members.html0000755000372000001440000001027112502417164032735 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseRemoteConnectionOption Member List

This is the complete list of members for mysqlpp::UseRemoteConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2pnode.png0000644000372000001440000000034512502417165022576 0ustar robertousers‰PNG  IHDRɪ|¬IDATxí=QF‘Ø¥D«ÔkÄ:‰F©PK؃=V@§Õ³ Õ8SHxñÌ0bnrróŠ{ò½¿¾’$ ÀÏTŠP  ö¼X¬OÛd6êìòð"°²S´±O¥B€(¡àQé)š+YĈ ÒªËRÉÐ>VtÉsˆm9(ê„䜥k‚-@ȧ-Ü$ó b Ò[he ¿Kp-ôl|CùÿApRG'rÍ­aIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/connection_8h_source.html0000755000372000001440000006430512502417162025173 0ustar robertousers MySQL++ Reference Manual
connection.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
13  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
14  also hold copyrights on code in this file. See the CREDITS.txt file
15  in the top directory of the distribution for details.
16 
17  This file is part of MySQL++.
18 
19  MySQL++ is free software; you can redistribute it and/or modify it
20  under the terms of the GNU Lesser General Public License as published
21  by the Free Software Foundation; either version 2.1 of the License, or
22  (at your option) any later version.
23 
24  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
25  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
27  License for more details.
28 
29  You should have received a copy of the GNU Lesser General Public
30  License along with MySQL++; if not, write to the Free Software
31  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
32  USA
33 ***********************************************************************/
34 
35 #if !defined(MYSQLPP_CONNECTION_H)
36 #define MYSQLPP_CONNECTION_H
37 
38 #include "common.h"
39 
40 #include "noexceptions.h"
41 #include "options.h"
42 
43 #include <string>
44 
45 namespace mysqlpp {
46 
47 #if !defined(DOXYGEN_IGNORE)
48 // Make Doxygen ignore this
49 class MYSQLPP_EXPORT Query;
50 class DBDriver;
51 #endif
52 
58 
59 class MYSQLPP_EXPORT Connection : public OptionalExceptions
60 {
61 private:
66  typedef bool Connection::*private_bool_type;
67 
68 public:
72  Connection(bool te = true);
73 
107  Connection(const char* db, const char* server = 0, const char* user = 0,
108  const char* password = 0, unsigned int port = 0);
109 
114  Connection(const Connection& other);
115 
117  virtual ~Connection();
118 
121  std::string client_version() const;
122 
131  virtual bool connect(const char* db = 0, const char* server = 0,
132  const char* user = 0, const char* password = 0,
133  unsigned int port = 0);
134 
138  bool connected() const;
139 
146  ulonglong count_rows(const std::string& table);
147 
153  bool create_db(const std::string& db);
154 
156  void disconnect();
157 
167  DBDriver* driver() { return driver_; }
168 
174  bool drop_db(const std::string& db);
175 
178  int errnum();
179 
185  const char* error() const;
186 
192  std::string ipc_info() const;
193 
199  bool kill(unsigned long tid) const;
200 
220  operator private_bool_type() const
221  {
222  return copacetic_ ? &Connection::copacetic_ : 0;
223  }
224 
227  Connection& operator=(const Connection& rhs);
228 
235  bool ping();
236 
239  int protocol_version() const;
240 
251  Query query(const char* qstr = 0);
252 
256  Query query(const std::string& qstr);
257 
264  bool select_db(const std::string& db);
265 
267  std::string server_version() const;
268 
292  bool set_option(Option* o);
293 
295  bool shutdown();
296 
298  std::string server_status() const;
299 
302  static bool thread_aware();
303 
306  static void thread_end();
307 
312  unsigned long thread_id();
313 
333  static bool thread_start();
334 
335 protected:
339  void build_error_message(const char* core);
340 
344  void copy(const Connection& other);
345 
348  bool parse_ipc_method(const char* server, std::string& host,
349  unsigned int& port, std::string& socket_name);
350 
352  mutable std::string error_message_;
353 
354 private:
355  DBDriver* driver_;
356  bool copacetic_;
357 };
358 
359 
360 } // end namespace mysqlpp
361 
362 // Not strictly required, but bring in our specialization subclasses
363 #include "tcp_connection.h"
364 #include "uds_connection.h"
365 #include "wnp_connection.h"
366 
367 #endif // !defined(MYSQLPP_CONNECTION_H)
368 
Declares the UnixDomainSocketConnection class.
Declares the TCPConnection class.
std::string error_message_
MySQL++ specific error, if any.
Definition: connection.h:352
Declares the WindowsNamedPipeConnection class.
Manages the connection to the database server.
Definition: connection.h:59
Define abstract interface for all *Option subclasses.
Definition: options.h:57
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
This file includes top-level definitions for use both internal to the library, and outside it...
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
DBDriver * driver()
Returns a reference to the current database driver.
Definition: connection.h:167
A class for building and executing SQL queries.
Definition: query.h:121
Declares interface that allows exceptions to be optional.
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Exception-members.html0000755000372000001440000001001712502417163027547 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Exception Member List

This is the complete list of members for mysqlpp::Exception, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TypeLookupFailed-members.html0000755000372000001440000001065412502417163031040 0ustar robertousers MySQL++ Reference Manual
mysqlpp::TypeLookupFailed Member List

This is the complete list of members for mysqlpp::TypeLookupFailed, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
TypeLookupFailed(const std::string &w)mysqlpp::TypeLookupFailedinlineexplicit
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1null__type.html0000755000372000001440000000451112502417163026335 0ustar robertousers MySQL++ Reference Manual
mysqlpp::null_type Class Reference

The type of the global mysqlpp::null object. More...

#include <null.h>

Detailed Description

The type of the global mysqlpp::null object.

User code shouldn't declare variables of this type. Use the Null template instead.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1SizeThresholdInsertPolicy.html0000755000372000001440000001731312502417164033012 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::SizeThresholdInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 SizeThresholdInsertPolicy (int size)
 Constructor.
 
 ~SizeThresholdInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded.

Although this insert policy isn't completely deterministic, it avoids building the VALUES expression for the SSQLS object passed in.

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/tab_h.png0000644000372000001440000000026112502417165021741 0ustar robertousers‰PNG  IHDR$ÇÇ[xIDATxíÝMÁ@†áž~¥ÜÆÎ’Evˆ¿"!•²‘d*×rGq=Š{¼ßSݧçë­ÓÉHÇ uO^õø[À_‡¢ãXvyËþÒ±=·VCffææ{°öŠó´Rçœ%_õçÿŽ¢ö·°Çrug¶(?gh\i>|sIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption.html0000755000372000001440000002605312502417163031354 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SharedMemoryBaseNameOption Class Reference

Set name of shmem segment for IPC. More...

#include <options.h>

Inheritance diagram for mysqlpp::SharedMemoryBaseNameOption:
Collaboration diagram for mysqlpp::SharedMemoryBaseNameOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set name of shmem segment for IPC.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x70.html0000755000372000001440000001430012502417164023633 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- p -

mysql++-3.2.2+pristine.orig/doc/html/refman/cmdline_8h_source.html0000755000372000001440000013210412502417162024440 0ustar robertousers MySQL++ Reference Manual
cmdline.h
1 /***********************************************************************
2  cmdline.h - Declares the interface to the MySQL++'s command line
3  parsing logic, used by the examples and the utility programs.
4  Not intended for use by third parties! If it breaks, you
5  get to keep all the pieces.
6 
7  Copyright (c) 2007-2009 by Educational Technology Resources, Inc.
8  Others may also hold copyrights on code in this file. See the
9  CREDITS.txt file in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_CMDLINE_H)
30 #define MYSQLPP_CMDLINE_H
31 
32 #include "common.h"
33 
34 #include <string>
35 #include <vector>
36 
37 #include <assert.h>
38 
39 namespace mysqlpp {
44  class MYSQLPP_EXPORT CommandLineBase
45  {
46  public:
49  typedef std::vector<std::string> ArgumentList;
51  typedef ArgumentList::const_iterator ArgumentListIt;
52 
56  const ArgumentList& extra_args() const
57  { return extra_args_; }
58 
61  operator void*() const
62  {
63  return successful_ ? const_cast<bool*>(&successful_) : 0;
64  }
65 
66  protected:
69  CommandLineBase(int argc, char* const argv[], const char* opts) :
70  argc_(argc),
71  argv_(argv),
72  opts_(opts),
73  successful_(argc > 0 && argv && opts)
74  {
75  assert(successful_);
76  }
78  virtual ~CommandLineBase() { }
79 
83  void finish_parse();
84 
86  const char* option_argument() const;
88  int option_index() const;
89 
95  void parse_error(const char* message = 0);
96 
98  int parse_next() const;
99 
101  virtual void print_usage() const = 0;
102 
104  const char* program_name() const { return argv_[0]; }
105 
108  bool successful() const { return successful_; }
109 
110  private:
112  int argc_;
113  char* const* argv_;
114  const char* opts_;
115  bool successful_;
116  ArgumentList extra_args_;
117  };
118 
119 
121  namespace examples {
123  extern MYSQLPP_EXPORT const char* db_name;
124 
126  class MYSQLPP_EXPORT CommandLine : public CommandLineBase
127  {
128  public:
131  CommandLine(int argc, char* const argv[],
132  const char* user = 0, const char* pass = 0,
133  const char* usage_extra = 0);
134 
139  void print_usage() const { print_usage(usage_extra_); }
140 
144  void print_usage(const char* extra) const;
145 
150  bool dtest_mode() const { return dtest_mode_; }
151 
153  const char* pass() const { return pass_; }
154 
160  int run_mode() const { return run_mode_; }
161 
163  const char* server() const { return server_; }
164 
166  const char* user() const { return user_; }
167 
168  private:
170  // Examples-specific command line parse results
171  bool dtest_mode_;
172  int run_mode_;
173  const char* server_;
174  const char* user_;
175  const char* pass_;
176  const char* usage_extra_;
177  };
178  } // end namespace mysqlpp::examples
179 
180 
182  namespace ssqlsxlat {
184  class MYSQLPP_EXPORT CommandLine : public CommandLineBase
185  {
186  public:
189  enum SourceSink {
193  ss_table
194  };
195 
198  CommandLine(int argc, char* const argv[]);
199 
201  void print_usage() const;
202 
207  const char* input() const { return input_; }
208 
210  SourceSink input_source() const { return input_source_; }
211 
213  SourceSink output_sink() const { return output_sink_; }
214 
216  const char* output() const { return output_; }
217 
219  const char* pass() const { return pass_; }
220 
222  const char* server() const { return server_; }
223 
225  const char* user() const { return user_; }
226 
227  private:
229  const char* input_;
230  const char* output_;
231  const char* pass_;
232  const char* server_;
233  const char* user_;
234  SourceSink input_source_;
235  SourceSink output_sink_;
236  };
237  } // end namespace mysqlpp::ssqlsxlat
238 } // end namespace mysqlpp
239 
240 #endif // !defined(MYSQLPP_CMDLINE_H)
241 
const char * user() const
DB user name, when input type is is_table.
Definition: cmdline.h:225
no known input type given yet
Definition: cmdline.h:190
int run_mode() const
Return the -m flag value.
Definition: cmdline.h:160
ArgumentList::const_iterator ArgumentListIt
Iterator into ArgumentList.
Definition: cmdline.h:51
const char * program_name() const
Get the file name of the program&#39;s executable.
Definition: cmdline.h:104
SourceSink
Types of inputs that ssqlsxlat will accept.
Definition: cmdline.h:189
Parses command line arguments and holds the results.
Definition: cmdline.h:44
bool dtest_mode() const
Return true if we&#39;re in &quot;dtest&quot; mode This happens when an example gets the -D flag, always passed by the dtest script to ask the programs it runs to suppress any nondeterministic output.
Definition: cmdline.h:150
const char * user() const
Return the DB user name (-u argument)
Definition: cmdline.h:166
const ArgumentList & extra_args() const
Get reference to list of command line arguments past the last flag and its possible argument...
Definition: cmdline.h:56
an SSQLS v2 file
Definition: cmdline.h:192
Command line parsing mechanism for ../examples/*.cpp.
Definition: cmdline.h:126
bool successful() const
Returns true if nothing has gone wrong since calling the ctor.
Definition: cmdline.h:108
const char * db_name
Name of examples&#39; DB.
Definition: cmdline.cpp:199
const char * pass() const
DB password, when input type is is_table.
Definition: cmdline.h:219
Command line parser for MySQL++&#39;s ssqlsxlat tool.
Definition: cmdline.h:184
SourceSink output_sink() const
The output sink (destination) type.
Definition: cmdline.h:213
std::vector< std::string > ArgumentList
Type for a list of arguments.
Definition: cmdline.h:49
virtual ~CommandLineBase()
Hidden dtor to prevent instantiation.
Definition: cmdline.h:78
const char * server() const
DB server name, when input type is is_table.
Definition: cmdline.h:222
const char * input() const
Return the name of the input source.
Definition: cmdline.h:207
CommandLineBase(int argc, char *const argv[], const char *opts)
Hidden ctor to prevent instantiation.
Definition: cmdline.h:69
SourceSink input_source() const
The input source type.
Definition: cmdline.h:210
const char * server() const
Return the DB server name (-s argument)
Definition: cmdline.h:163
const char * pass() const
Return the DB password (-p argument)
Definition: cmdline.h:153
This file includes top-level definitions for use both internal to the library, and outside it...
a C++ file containing an SSQLS v1 declaration
Definition: cmdline.h:191
const char * output() const
The base name of the output file.
Definition: cmdline.h:216
void print_usage() const
Show a message explaining the program&#39;s proper usage.
Definition: cmdline.h:139
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1OptionalExceptions-members.html0000755000372000001440000001033012502417163031436 0ustar robertousers MySQL++ Reference Manual
mysqlpp::OptionalExceptions Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoSchemaOption.html0000755000372000001440000002522112502417163027052 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoSchemaOption Class Reference

Disable db.tbl.col syntax in queries. More...

#include <options.h>

Inheritance diagram for mysqlpp::NoSchemaOption:
Collaboration diagram for mysqlpp::NoSchemaOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Disable db.tbl.col syntax in queries.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x62.html0000755000372000001440000001443112502417164023641 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- b -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NamedPipeOption__coll__graph.png0000644000372000001440000001026312502417165031526 0ustar robertousers‰PNG  IHDRÃp,CS&bKGDÿÿÿ ½§“hIDATxœíkPWÇŸ„pBA(’j AEÐÚÑV™ŠJAD(*j´B‘V@[qÐêT¤U´Zµb 7QÁ ÊMQSÊ‹”¢(^h}EÓ‹HP4¤’@’Ý÷þ“‰Iˆ +=¿OgŸÝ}.gÿœs²l²Çxi¨ÆNñš€”„ ¤$9 %!ÈÖÿ!cccoß¾Ýÿq߸\îâÅ‹û9(¥ÿ?»Q(”iÓ¦½ýöÛý÷ ¡¶¶ÖÓÓóĉý×c¬Y³fÉ’%F ýÚc¬ŽEë$9 %!È) AHIrx•tïÞ= …B¢ÃÎÎ΄„„wß}×ÚÚúý÷ßߺu«R©4J&FäMT¹´··O™2åÊ•+Û·o¯¯¯ß°aÑ#GfÏž­R©ô/ Ѷµµ]¿~}?&û 1Î]€×‰-[¶888TTT˜˜˜À˜1cæÌ™ãáá‘““©{<†aOŸ>%Ú #%%¥_Ó}e Ð1‰B¡8pÀÍÍÍÁÁ!%%%77wôèÑ666›6m€ØØØˆˆâÈŽŽKKËëׯ@iiéĉ-,,X,Vnn.`–ššêææfmmíééYYY©9›“Ë©S§ÆŽëèèÛÕÕ¥×ÏÎDší¼¼¼ÄÄDBFVVV yyyz]M›6 †®åG,öÙg ƒÉdÆÇÇËår¢Ž9âææfgg·cÇŽWÚç/ Þï@~~þsY¶l™D"ÉÊÊ€%K–H$’ôôtxòäIUU•½½½B¡Àq|ø7´ì7nܘ_ï:ÉÛÛ»±±±®®ÎÕÕ511Q¯ïa„ãø¿ÿþ;vìØ™3gòùü»wï¹»»øá‡r¹Ü€ÿöövüÙuRHHˆ@ øý÷ßÝÝ݉ =õƒÐ:IûÃJÂq<::zÈ!‰D}V~~¾‹‹‹™™Ù¸qãN:…ãxww÷–-[FM§Ó====ª«¤¬¬¬Q£F1ŒU«VÉd2½FüÙ«®ÙÆq¼££#..ÎÃÃÃÒÒÒÝÝ=99Y*•öä_¡PLŸ>N§kù‰DaaaöööNNNkÖ¬!‚"% Ù %õ†7†„„ôé-hm0¾$ºê=ÆRÒ ¼3)—Ë›››8pìØ1cç‚ø?ƒd5÷,—/_ž2eÊŠ+fÍšõ2~Þzë-.—Û#‰þ_WŒóôm~~>zfòAtlÿ?};(Ç$Ä) AHIr@JBƒqîTTTˆÅb£„~í,ËûÿÖàúÎ$fgkëoì,úF\\\ÿ_V#Ü\lÜXtð`uqñª©Sñ‡>x@ë$C(•XqñU(.®7v.¤$CTUÝ‘HdPXxM¡Ðÿ„?‚)ÉEE׈´¥Ò®ÿü玱ÓÐ %õˆTÚ}îÜM¥R&&”ÂB4Á)©GÊËo©g4¥ûùçß;;»Œ›Ò@)©G ®j~?V©T]¸ çá]R’~Äbieå•Jó ¥°ðªÑð %é‡Ïoв`VUõß¶¶N£ä3ðAJÒÏÉ“W1LÏ=Û3gnꀔ¤—––/_èÞýÇq¼ àŠQRø %é¡´ô†‰‰žžÁ0üêÕ¿…Bô¿g= %é¡°°ž¸¤ ŽCi)šàô0(¿[òª¡RÁÉɆh+•˜\® ÓÍÕ{Ñ]%½ gžÃéÓ7¢£57ï6v"4»!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!È) AHIr@JBR‚’䀔„ ¤$9 %!HBóeo£F2v:*ÕÒÜ|¤±³ˆ$$$hŠç™ß™üûï¿9Îøñã•b°pòäÉ¿þúKÓ¢ý‹¥ãÇŸ5kV¿%„¤TUUiYÐ: AHIr@JBR‚–’>|èííM–7oo襤$ÍŸ®'׿^Ô!¼5 ܰaƒP(|™är9Ç‹ˆˆˆŽŽ>räˆJÕ«—<÷CÕ0ДD:UUU•••ÆŠžššZXXXPP°wï^Ç¿ûî; ÓéË–-ë«+©TÊårïܹÃår322BCCËÊÊâãã1 Ó{¼P(œ?>Ñ~±ˆ}å5WRPPО={D"‘Q¢ÛÚÚÚÙÙÙÛÛ³Ùìøøø[·nI¥R›¨¨¨¾º:|ø°­­í?üðÁ0™L///×ÒÒÂçóõa˜D"!Ú/±¯ôYIÞÞÞ|>?<<|Á‚G½pá²eË8ûöíÛ±cq¤L&ó÷÷oll€ß~û-""ÂÏÏ/$$äÂ… €ãxqqqxxx@@À—_~yýúu͘kjj‚ƒƒ÷íÛ§P(ôáÙÑ[k$çp8#GŽÜµk—îëYjkkW®\éïï¿hÑ¢£Gö¦:P*•</88888˜Çã)•J ÃŽ?ðÕW_ݾ}[GS© R©ÔöTŽn(++[¾|9á„ÀÂÂâ“O>)++Óëç‹/¾€… jõIGGGJJÊüùó9NZZZww7Quyyyxxø¼yóŽ?Þ7A¨ |sêëëÓÒÒ¢¢¢233kkk³³³cbbrss%ÉÌ™3kjjˆù»¦¦ÆÉɉÍfËåò¤¤¤ =¾cǹ\~öìÙÇGFFæææ._¾|Û¶mºJJJ¶mÛ¶uëÖË—/«/¶®ÑÖÖ6>>žØ«Ù*•úõ×_××ן?^Ó³T*MLLtuuÍËË‹‰‰ÉÌÌ‹ÅÏ­ „Bazzú®]»®]»–““SXX˜ŸŸ•››ÆãñÔQär¹L&“J¥ÍÍÍ{öì;v¬µµõskÔ ÑÑÑ!‰Øl¶Ö¹l6ûŸþÑëç§Ÿ~€¢¢"­SöîÝÛÚÚÊãñ¶oß~åÊ•cÇŽö_ýuÿþý\.7==½½½½ç‹ß#/¢¤¥K—ZZZúùù@HHˆ¥¥¥¿¿?´··{xxÐh´††(//÷óó£P( …Çq™Lfffæïï_ZZjnn^XXíååeoo?uêÔÈÈHÝ@111L&ÓÍÍ-22²¬¬¬'£••U`` ±W³MÀd2£¢¢öíÛ÷øñcµÑÌÌ,;;;66ÖÞÞÞÑÑ:;;Ÿ[ðùüÕ«W;::²X,.—[WWwúôiÍB4ç‘ÈÈÈ€€€ÀÀÀððp‰D²iÓ¦ÞÔ¨¢§ A¡PÔë$½}¥…R©üå—_V­ZåääÄb±>ÿüsõ‘ , ÓésæÌõ´Ø'^äýn–––@£Ñ´Ú@¥R½¼¼.^¼Èb±êëëãââÀÚÚz÷îÝ999cÆŒ ™:uªP(Ôü#c±Xº˜L&Ñ9rdkk«£a‚ƒƒ/^¼øý÷߯^½š°Ðh´¦¦¦;wÊd2WW×^V---‹-RoZYY)•Êž ÉËËsvv6œ›n9º!ètºÝ½{÷&Ož¬yî½{÷ƌӓ]ÚÚÚ0 1b±éìì¬>’Á`hUÚWÈSà¬Y³’““ßyç &888@WW†aIIIJ¥²¢¢bãÆ%%% ãþýû...ÄYZÿ$hjj".̃ìíí  C¡PÖ¯_¿bÅŠ3gΖ®®®¤¤¤¤¤$OOO…BÑÓºU›Ý»wú &ÄÄÄçbÝrtC€¯¯ïáÇß{ï=õRI.—;vL­¹ÞtËСC©TªP($úhnn&DtQŸÒÖ…üÏn'NT©T‡"& P( /^ìììT(4ÍÜÜ|îܹiii555"‘¨®®.##C×UjjêÇïܹ“••5{ö잌gÏž%öj¶5qrrЉ‰9qⱩP(”J%FëîîÎÉÉ©Tڛ꼼¼233=z$Ö­[WRR2oÞ<ÍBÔkó^¢[Žnokk[»vm]]]SSSuuuLL ƒÁPÔ×ÛW2™L3FóööþñÇ…BáŸþ™íëëÛ§l @þ˜D¥Rg̘qþüù3f33³ 6¤§§?~üxĈ›7o633[ºt©J¥Ú¿¿X,&ÉÉÉZ®|}}ãââär¹Ohh(1k@,ïܹ“Xi¶µ ª®®¾zõ*Ðéô˜˜˜äää!C†„„„øøø¬[·®¸¸ø¹ÕEDD¤¦¦®\¹’B¡Ì˜1ƒËåššš*Š´´´§OŸº¸¸lÚ´‰øÜÔKtËÑ –––999<¯¹¹ÙÉÉÉÇLJÃᘚšêõcbb2a„E‹;wN3ÜêÕ«SSS£££MMM?úè#"")<óöR …²yóæ—ª$++«¥¥å›o¾éý)>üôÓOÕwµ6 /d•c”nùöÛoÔc<>»uww …B>ŸÿñÇ“ë1À!YI·oßær¹sçÎ4iÒËø±²² êqðBV9¤[^Éì†xíyå³â) AHIr@JBƒöŠ›Åb :Ôˆ !À××WsÅýÌ=îµk×>xð ß³B >X,Ö’%K4-ÝGÀˆ­“䀔„ ¤$9 %!Èá­ï”KaBRIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/autoflag_8h.html0000755000372000001440000000515612502417162023255 0ustar robertousers MySQL++ Reference Manual
autoflag.h File Reference

Defines a template for setting a flag within a given variable scope, and resetting it when exiting that scope. More...

Go to the source code of this file.

Classes

class  mysqlpp::AutoFlag< T >
 A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool. More...
 

Detailed Description

Defines a template for setting a flag within a given variable scope, and resetting it when exiting that scope.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption__coll__graph.png0000644000372000001440000001460112502417165032370 0ustar robertousers‰PNG  IHDRÓ»pÂ<¹bKGDÿÿÿ ½§“6IDATxœíÝ{XWúð@n%rÅ`¥ ê£}V¬ˆ"¶kë P"ê*ŠlW|¬€•Ç RÖªë®kKK¸(¨ †«H½"RQE)>²ÜÔ DEB Äd~ÌþbLÂ%=$û~žþ1s2sΛ“og&à ‚ œîÀÿ(HÀ’ð€ä•JEMœ8qÑ¢E...IIIªÛËd²ÖÖVr™Á`úè# ‹7oÞ¨mDïž—SRRöîÝKÆŽdbb–’’¢¶«Y³f!„¬¬¬”úáóùëׯg0¶¶¶¡¡¡"‘ˆœ‡ÔÔT''§Q£F>|ø½ÎùûB !‡Óç6«W¯nooOLLDùúú¶··ÇÅÅ!„^¿~}óæMssóîîn‚ RRRœe2™@ 044d³Ù\.÷øñã4M ÄÅÅYXXdee577_¼xÑÖÖ!T[[KN¹àååUSSSRRÂd2###Õ6ÁçóÈòäËmmm¡––¥ú‹ŠŠ,--{éŸÜLq™ÅbyzzÖ××WVVº¸¸ƒ"„V®\ÙÖÖ–€jmmísz}|||||úýi¼wÚ—¼òòr‚ Äb±Òrmm­D"±²²ÊÏÏ'â³Ï>;xð A<O__ÿÈ‘#mmm2™¬££C*•:;;'''Ë»=yò¤jò*++ÉW9“ÉTÛØS=%¯¸¸˜Á`ôÒ?Ù"_‹ÅT*µªªŠlÏÊÊ"E(¾÷>&wè%OËζ!333„¾¾¾Ò2BˆJ¥._¾<++ëõë×ׯ_g±X¡‘#G”””ØÚÚ~úé§·nÝÒÓÓkhh˜:uª¼OWWWÕÉ…I“&566öÒ¨ŠN§[YYUTT(µWTTLŸ>½ÿ]½|ùR*•N˜0\e2™ò-ÇŒ£øÞµŽö%¯w>>>ÙÙÙiiisæÌ!Ï¡B¡P&“¥§§óx¼7.Y²„ÇãÙØØ<|øP¾×£GT»"<¡ššòcî©Q-‹¥øM¶³³óСCÞÞÞýïÊÒÒ’J¥644«õõõ666䲞žvvÚ]½*www‰D@¶P(//¯ÌÌÌööv±X¬¯¯oll¼aư°°œœœ/^\¹rå›o¾QíjÛ¶muuu¥¥¥kÖ¬é©ñ÷ß'/:•–÷îÝûêÕ+OOÏ+W®ÔÖÖfgg»¹¹ÙØØ÷Ò¿@ P¬A__ßÏÏ/$$äÉ“'UUU»wï&äº÷éþ-Ô¿ë<ù5MOË[¶l122joo—ïÅáp&L˜```0iÒ¤œœ‚ ÄbqTTÔøñãMMMgÏž}æÌ¤r—˜˜hooÏ`0¶nÝ* Õ6ï~P\&B ìØ±ÃÅÅÅØØØÙÙ9::º«««§þ»»»çÌ™cjjªÔÇ 077·¶¶Þ¾};9hOï½Cí:OË’×þþþí¢”¥Õ^f»ê¿¡–<º“,‰š››Oœ8qöìYܵ€>èÔuÞÝ»wg̘±aÆyóæý‘~†ÔŸÆAìÿÍÐzžÃá µGgu9±Cçix:æ-Éx@ò<€Çк«’ŸŸÏçóqW¡›pWñÖJÞØ±cãããqWÑ_4Ú(SÓOøü+¸ ÑÀ¼Ù4¸†Ð]í‘•œ|+;{«›Û:h¸Î‰D–}!”]†»mɈ›7«ÛÛ…¡ÌÌòînõ¿ÑzɈ¬¬rò,ººÞüòK5îr´$Oc]]âK—J$R„•JÉÌ„î@@ò4výú#ùV"‘]¹òkgç¼%i#HžÆ22î+þþ¿D"½vMÍÃô w<Íðù]ÕR©â­(Jfæ}li-Hžf._®Tj‘Éd7oþ§­­K=Ú ’§™ôôû2™š{ï?ÿüPµô’§/~¿{·Aõ§>Add”b)I{Aò4›[A¥ª™1™Œ¸ÿ— Ï:h’§ÌÌ2ò6ž*‚@¹¹pÂÕÀzVeèÓÓCÖÖ#Èe‰D&u›šÊ_…»zgUèÂ…Š-[N67Å]ˆ¶‚³-À’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ’ð€ä< yHÀ„Ðaaa¸gë-==cCC;ÜU¼e``pûömÜ‘´éßI~úôé¬Y³¾þúkÜ… E¾¾¾MMM¸«Ð€6%!4vìXÜU€A×yHÀ’ð€ä7£Óé%%%òÕ›7oÚÙÙQ[[;ˆï744ÔÝÝ]"‘È[Á¸qãÔn?¸£«Bq8œ÷×ÿ ÓÁcÞðáÃúé§ÖÖVruîܹϞ=CÍš5 !dee…þÿ|—ŸŸogg—œœ,?÷Q(”ÔÔT''§Q£F>|!D›Íþøã‡>þüŸþ™Ü8%%eïÞ½T*U>®‰‰IXXXJJ ÙyNNÎG}daaòæÍÕÑɽø|þúõë †­­mhh(ya Z†Â} ôó˜wõêUCCÃ… þãÿxúô)Ù®xÔ!—/^|ãÆŠŠ y;BhåÊ•mmm ¡ÖÖÖ„„›+W®´´´äåå1™L„P[[B¨¥¥Ei袢"KKK²s//¯ššš’’&“©::¹Ìb±<==ëëë+++]\\"##Õ–Ñç»FÚvÌÓÁä!‘HJJJ¢¢¢\\\¨Tjjj*¡.y•••Jí¡‚‚‚ Äb1B¨¶¶ÖÅÅ…ÜtæÌ™^’W\\Ì`0;'‚Ãá0™LµÉ‹ÅT*µªªŠlÏÊÊb2™jËèó-k]òtílÛÙÙyîÜ9„››Ûž={*++#""ÂÃÃÕn~ü˜\`±XQQQŠßd;;;:äííM®’6„PMM #U–––T*µ¡¡\­¯¯·±±Q[†îѵ·gjjºvíZ??¿‹/644ܹs'44tõêÕò F~õÕWááá×®]kmm½qãFdd$ùå`ïÞ½¯^½òôô¼råJmmmvv¶›››Mpp0¹ã¶mÛêêêJKK#""Ö¬Y£vt}}}??¿'OžTUUíÞ½›Åbý¡÷¯EpŸî5ÐÏë<‰Déêêjdd4nܸ;w …B‚ º»»çÌ™cjjJ¨»æ#—‘ÂE¹,•J=:a„#Fx{{çääŒ=šÜ@ ìØ±ÃÅÅÅØØØÙÙ9::º««KÞabb¢½½=ƒÁغu«P(ìit`nnnmm½}ûv²TÕ2ú|×HÛ®ót0yƒ+77·¢¢B¾š‘‘1uêÔÞwyß·îÔÒºäéÚÙvÐUVV®Y³¦¼¼¼«««¤¤dÏž=¸‹ÒZödè‡ÞÕÕµtéÒ––‡ 6õ¾ËðáÃûÜP‚À]Cùúú"„ÒÒÒp2Q(‡CN‘V€³-À’ð€ä< y-ûn[XX¸páBÜUü—L¦§§'Ã]…¶Ò¦ä ©ß´mm5ª©ùÉ'\*uHÜXµj•››î*4 MwU†+®  úØ1Ÿ™¸kÑJp7|~Waa B”ììrܵh+HÞ@\¸@>™GܺõŸ––ÌÕh'HÞ@dd”’W) åçŸâ.G+Aò4ÖÜÌ/+{&“ÉB2™,=½wEZ ’§±œœTªB„L†>|þü9wQÚ’§±ôôRŇài4½œœëÑR<ÍÔÔ¼¨®æ*Þ‰’H¤iipÂÕ$O3.TèëS[ÕÕ½¬®æâ*IKAò4@‡s¯»[ù_N10 Á WS< TV665µ©¶‹Å’ôôRøiF y8¾\__ýOº››ùåå¿}àz´$OÙÙåR©ÔÀ€¦úB”‹•ÿÉÐ mzV»-[.0gŽ#¦º´<«2@.TlÙr²¹ù(îB´œm<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx@ò<€$àÉx¼óo†ŠÅâsçΉD"\Õh‘ªªv„P||<îB´ƒ£££‡‡Ç;M„‚ÌÌLL…G£Ñˆw½sÌ“H$¡‚‚LåÝôË/¿ìß¿_©®ó<€$àÉx ¹¿ÄÒÔÔ´fÍšÁú–# “““ y<ÞèÑ£===Y,–A?womm­ªªúý÷ßíííY,–»»;ù’‡‡GJJŠÍ ÔÙ;Åû–––S¦L ¦Óé¨×é‰DÉÉÉ¥¥¥\.×ÎÎÎÝÝ}ÕªUT*UuK%ƒûôDÇyßÿ}mmmTT‡Ã /**b³Ù=mÌår¿üòKùj{{{`` ¡¡á¾}ûØlöüùó¿ýöÛÒÒñ§l•*AÅÄÄdff¦§§ïܹ³³³sóæÍ!djjºzõjÕººº‚‚‚ª««ƒ‚‚âããY,V^^^hh¨L&ësÄžú\:ž¼Û·ooÚ´ÉÑÑ‘N§»ºº†„„õ´±L&koo—¯&%%M›6-,,ÌÉÉÉÞÞÞ××wùòåç”­T BˆN§5ŠÁ`L›6íÛo¿µ¶¶NOOG1bóæÍª=œ:uŠN§ÿë_ÿúä“OlmmÝÝÝÙlö‹/._¾Üçˆ=õ9¸’<Ë—/¯[·néÒ¥gΜ¹víÚêÕ«?ÿüó'N „~øá‡Ã‡“[ …BooïÚÚZ„Ð;w6nÜèåååïïíÚ5„AÙÙÙëÖ­ûì³Ï¾úê«(žVššš<<<ŠŠŠ–-[öÃ?tww«m”o¬¸#¹lll|þüyùœºººÊ£#‘HØlö²eË–-[Æf³%É_ÿúW„ÐòåËÉ W¬X¡øÆ×­[._½ÿ>‹ÅZ²dIjj*ÙR\\¼iÓ&ooï+Vœ9sF^Lyy¹ŸŸß¯¿þª: ý©D …Bùâ‹/JJJ߬Ò@yyyk×®ÕÓ{ûù6lÕªUyyyjçPqDÅ üòË/}||bccÅb1€ëׯ¯[·î‹/¾8wî\_yQo€Ç¼²²²ØØØÍ›7'$$?~<88øôéÓíííŸ~úiQQ‘T*EY[[3™L‘H¹téÒsçÎ>|X$]¼xñÔ©S§OŸ^»víwß}§:Ðùóç¿ûî»ܽ{—ü,Õ6ÒéôÐÐPòUÅå°°°òòò•+W†……q8œ—/_Ê{ÎÈÈàr¹qqqÿüç?ËËË“’’~úé'„PVVBH ðx<;;;ÅbŒŒŒ,,,ä«wïÞMHHOLLlooïêêÚ»w¯££cJJJpppBBŸÏ'·LKKûæ›oÆŽ«: }V¢–­­mss³j;9µµ5Çc2™J¯2™Ìß~ûMíö4â±cÇZZZØlö¡C‡JKKÏž=K¶ß¾}ûÇ Š‹‹ëèèè©Î^ 0y~~~ÆÆÆ^^^!cccooo„PGG‡‹‹ F«¬¬D]¿~ÝËË‹B¡tww! ¼½½sss 333·lÙâîînnnîææ¨:Ppp°­­­““S```^^^O&&&Ÿþ9ùªâòŒ38αcÇ&Ož|õêUÿüü|ò¥Ë—/oÛ¶ÍÂÂÂÁÁ!((èÞ½{Šã’ˆB¡ô9 sæÌ!߸ÁñãÇCBBÌÍÍÉ€vvv’[nÞ¼yÚ´iT*Uuú¬D#ä@Æ Sû*…B‘_ç©X%‰äÆ[·nµ¶¶vppøË_þ"ßréÒ¥¦¦¦‹-B)]ôÓ¿Û#„h4šÒ2BHOOÏÝݽ°°ÐÁÁ¡¬¬lÇŽ!33³£Gfdd$%%Mœ8ÑßßßÍÍËå*þéàà :­­-¹`gg×ÒÒÒK£*‘HtçÎyóæ999999$''³ÙlOOO„Ћ/O¦&&&Šûš™™9òÙ³gÎÎÎòÆêêêÿûßÇŽ#cnnŽÒI£Ñ9" ßù‹£ä±Sí$ôY‰ZcÆŒQm'2555jT]]ÝôéÓ_­««›8q"¹ÜŸ9lkk“Édòlllä[2 ¤ð¡À{¹«2oÞ¼èèèqãÆMž|xàÀG544œ???©Túã?òù|ò'::Z©« ìØ±C$‘7É£½R#BˆÏç9r„¼¼S\?}útBBBSSÓÈ‘#=<<Ö¯_Oö¼qãÆ˜˜˜M›6Q(”¹sçÑh´É“'¯X±âÒ¥K!:»oß>¡Phgg÷÷¿ÿ]푆djjmddäïïïéé#ß@í$ô§„Ðßþö7rÁÂÂÂÕÕ5>>¾÷“²±±q|||RR›Ínnn¶¶¶öôôôññÑ××W;±T*UiDÒ¶mÛbbb¶lÙ¢¯¯?þ|r¶Å;Ó;--ÍÏÏoPn^'&&¾xñb÷îÝýßEéÖ¹Ú;éæöºnûðsH>%¥ô×ãÿl+‹¹\îåË—ÿüç?zç@g ~ò?~´xñâ©S§þ‘~LLL–,YÒŸF ‘!2‡ïël €Ü:ÛÐ<€$àÉx@òïü ƒ|TZùwÁøÃTŸÂ箊H$ºtéùhƒÈÒÒRþ£TEé. \ç< yHÀ’ðø?LDc\†6IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1value__list__ba-members.html0000755000372000001440000000611712502417164031146 0ustar robertousers MySQL++ Reference Manual
mysqlpp::value_list_ba< Seq, Manip > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLStream__inherit__graph.png0000644000372000001440000000753212502417165031024 0ustar robertousers‰PNG  IHDRp‹žåÝbKGDÿÿÿ ½§“IDATxœíkPW€ÏB¤ ”K©@"ƒ¶Ú©(d‚ֈñʵvh;ª/Ø2j‘ÊÔ r•)_DÔXôƒÚˆÅ«U \JŒ!$!·ý~l'¹&6X÷ùÁœ={ö=ïî“=»Y6» Ãuèh;ŒyóŠN0¯èóŠNpª7‰Dr¹|þ²Á˜+++"‘¨bc5¼òx¼ÑÑQÕCch7<<___ŸJ¥²Ùì¼¼<Ççó;;;:uÊ¢ªªj`` ¶¶ÖÊÊ ™Ååri4ÒF¹îííÝÝÝÍb±\\\RRRæì)ûùùݼyóÁƒŠzÀŽ;ž?N£Ñ£££4ÍÚÚúêÕ«### vvvµâóùüü100ðéÓ§,kýúõû÷ïçñxx<~÷îÝ}}}%%%€ááa$ÐÐP—››  âñxÙÙÙ€¿ÿþ{ö ÛÖÖÖÖÖ¦º, {åp8zzzéééÏŸ?—Ëåccc2™Ly£888(ÚÎòًźººŠõ©ªª²³³›³ ¤Ìb±åV$±X èììtqq¹pá‚¢»ÒÒR€Zñavttd³ÙH¹¡¡ÁÍÍmbb¢½½ÏçËd²_ýé I µµU‘€ri0 êzÕð8¼bÅ ƒÁd2mll6mÚtûöm—ºxöì™›››bÒÕÕu–hCCC2™lÍš5Ȥ]__ßœ] 8::N­D†===d²»»ÛÅÅE1×ÙÙY•U˜ÿÉ“'–––A´yóæÞÞ^<ßÑÑA&“ß{b‚奌ŒŒ (—5ކ½ …B¹\~ñâE‡³gÏžmÛ¶q8å«W¯þã?“³_ö\¹r¥®®nOO2ÙÝÝmmm=gÓn¯I†Þzë-åÚÛÛUY…IñÍÍÍ{ÛóçÏ™L¦P( ¢P(­­­™™™³¬àü¡a¯ùúúVVVòx<±X¬§§G Y|>O¡Pjjj¯^½zøðadî‹/£ŽrYOO/88811±···­­íàÁƒááásv¡:{÷îMNN®¯¯½yófJJ ²Û©ûöíøë¯¿X,™L>wîÜÄÄ„X,ÆãñB¡ðÈ‘#€±±1u·ä¿Eõ![•ã+ ÃeeekÖ¬ÁãñŽŽŽ5550 K$’ 6,_¾†a©TzòäI;;;CCÃ>úˆÉd"9L=€!e‡ifffiiùÍ7ß…Â9»˜)P:Œ!e™L–‘‘±fÍccc2™\SSC$ÕŠÃ0ÇûüóÏW¬Xaff;>>Ãð©S§LMMß|óÍÌÌÌÐÐP ‹i˜Zž -Ÿ7--ètúƒ“nnnZÌg´|Þ´´`±X­­­€Éd:t(::ZÛIiµÿ¯Ž&’““¿¿ÿÈȉDÚ½{w\\œ¶“Ò ¬ò}áÃÃÃþù§§§ç|æƒ1=Èy»ê7«¼Öã0ŠÁ¼¢Ì+:Á¼¢µÏ‡æ#ŒÙ‰Dª·Wë¾¾>Aêg¥}är83³% àkk#mçòŠ˜˜˜¨ÞX ¯ÆÆÆ›6mR?ŸE“Ù}÷îÞy‡î©í\‚×åøzéR òW*}-~_ôZx‹¥UU¿^¼46þOÛé,¯…×[· ]]ªªm§³¼^++[tuuR©¼®Ž%ŠµÑ¼ƒ~¯ãã×®µI¥2drbBÚÐð§vSZÐïUY*@Gª¬ü¯óYÐïµ²ò¿Ê?åJå ÆcO¨Å””{åpÆ;d²—¾ÛÀ0|å K[)- (÷zùòS+a¾xåC1ʽVTü6õƹf2»‡†^h%¥…Í^¸--ÉåÓÜ¢««C§O³+£4{¥ÓÌt“T*«¬Dó 4ß·&ˆ--ßPLòùz8Ü?etÿÜYûÖ–:VVßP©QŸ}æ6wÓ¥šÇá×Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢Ì+:Á¼¢å—$ݹsÇk;£ùB_ßVG‡ í,æ …¢¬ò¥çKô÷÷‹ÅbäUyKˆ‹/>yòD¹fšç†`o>Zr oV;¾¢Ì+:Á¼¢Ì+:YtÏ[ëï`0‰& 9‘HôööW|—‰D………ÍÍÍ«W¯Þ°aCHHˆ®®.ÀËË«¤¤ÄÚÚZõh‹ŠEçU³œ>}zhhèûï¿'‰OŸ>=}úôØØXbb"@ $$$˜˜˜ÄÆÆZ[[÷ööæååµ´´¤§§ëèL?ŒÍÍfÇÇÇ×ÔÔ,ìÊÍÊÇá;wîÄÄÄØÛÛ›˜˜¸ºº&&&655!³ŠŠŠLLL222ÜÝÝmll<<<¨T*›Í®­­U7š\.çñx ´Jªñ*^½¼¼êêꢢ¢üýýKKKëëëCCC·nÝzþüyÀ™3gÒÒÒ–B¡L&#/š¿{÷îž={|}}ÃÂÂêëë0 _ºt)**jË–-{÷îýý÷ß½¼¼½ô÷÷{yy555EFFœ9sF"‘L[©h¬¼ R&ÕÕÕŠîêêZVV†”vîÜ©¼k„„„\¿~}¦Ÿ)Ú_|ؾ}»¢÷ÖÖÖààà‡J¥R*•@¥R¥R)àÞ½{111d2900°´´T•­ª.¯¸¿¶´´deeÅÆÆÒh´{÷îååå%$$óx¼M›6555Éd2@SS“¥¥¥H$JIIñ÷÷ÿå—_"##ÓÒÒD"QmmmQQQtttqqñÎ;?>µ£êêêãÇ;vìþýûŠM0µÒÄÄ$)) ™«\¦P(­­­;vì P(eeeCCCH=ŸÏçp8vvv“º³··ïííi­gŠ–™™ ¨ªªR´,//ß¿¿½½}EE›ÍÎÎÎþé§ŸZ[[óóóÁáÇíííKJJh4—Ës«ªe¼²×àà`àëë  #d2066æââ‚ÃáX,àúõë¾¾¾I$†…B!'“Ét:]__¿²²2>>ÞÃÃÃÌÌÌÝÝ}ÚwÖ'$$ØØØ899EGG744ÌTihh¸uëVd®rùý÷ß/++ûùçŸ×®]{íÚµ°°°7n(‚CSžU ÃðL×9£)»nÝ:ƒººº¯¾úÊ‚D"ÅÅÅ577ãñø¼¼¼ÄÄD333 Àøøøœ[uvSyÅó&Àáp“ÊÆÆF‰ÔÒÒ²oß>€‘‘QFFFEEE~~¾ƒƒCXX˜»»;›ÍVÞcH$ÒÔŽlll‚­­íÈÈÈ,•S‰DwïÞõôôtrrrrrŠŒŒ,(( R©ÞÞÞË—/755íêêZ¿~½ò"]]]¶¶¶êF›ÚXdpp000PQohhˆÃáúúúÒÓÓ…B¡½½½òR³lUu™—ó&OOÏÛ·oߺukíÚµD"011!—ËSRRètú–-[¾ûî»±±1ssóîînÅR“®\#ôõõ!…gÏž™™™ÍR9†SSS{zzI‚>øàäðññ)**’ËÿyUÇ?üpãÆÒÒÒi=Ím ÆÆÆ%%% ƒÁ`ÐéôÌÌ̉‰‰”””œœœ¯¿þz¦äÿ%óâÕÕÕU&“"C ‚ …ÒØØ8>>.‘Hp8œ¾¾¾ŸŸ_VVVSS‡ÃinnÎÉÉ™êìÙ³ýýý?ÎÍÍݼyóL•ãããŠóXEyÙ²e¾¾¾Ge2™l6ûÑ£GYYY mQQQ'))é·ß~ëëë³´´LMM‹ÅŠ1œËår”˜=@(œæ<4mhh¨§§'99¹ººZ"‘H¥R'‹óóó@[ý%æåû«ŽŽÎƯ]»¶qãF¤Ç8p ;;{xxØÊÊêÈ‘#x<>88X&“;wŽËå"‡ŸÔÔÔI¡|||öíÛ'‰‹È¨;©ÀårÓÓÓ%ÊåäääââbÖßß¿bÅ //¯]»v!‘ BNNN~~~VVV¿¹¹yDDÄÇ;vøðaÀ—_~©œ ƒÁ˜)ÚªU«Ö®]xåÊ•IùïÙ³çìÙ³111mܸ1..N__?!!!55uÙ²eaaaÞÞÞÉÉÉ—.]Ò¬‚—ž_^^¬‘k=¹¹¹ƒƒƒT}‘IWš¦½ð¤Ù«QS‘J¥ÎÎÎóž8zô(‘H,//WÔh~‹Ål6»®®îÓO?Õxðù‡Ã-9©Ó¢y¯íííqqq~~~nnÿê †††Û¶mS¥c*ó5c,$ 1c,0¯èóŠN0¯èdšëІ`,zzz|||”k^òêîî2Ó5OŒE ‰D R®yÞ;øZ_Ñ æ`^Ñ æü_v?TI"øEIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x74.html0000755000372000001440000001724412502417164023651 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- t -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Option-members.html0000755000372000001440000001013212502417164027060 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Option Member List

This is the complete list of members for mysqlpp::Option, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1RowCountInsertPolicy-members.html0000755000372000001440000000650012502417164031741 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RowCountInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryResult-members.html0000755000372000001440000003301712502417164030600 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseQueryResult Member List

This is the complete list of members for mysqlpp::UseQueryResult, including all inherited members.

mysqlpp::ResultBase::copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() const mysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() const mysqlpp::OptionalExceptionsinline
fetch_field() const mysqlpp::UseQueryResultinline
fetch_field(Fields::size_type i) const mysqlpp::UseQueryResultinline
fetch_lengths() const mysqlpp::UseQueryResult
fetch_raw_row() const mysqlpp::UseQueryResult
fetch_row() const mysqlpp::UseQueryResult
field(unsigned int i) const mysqlpp::ResultBaseinline
field_name(int i) const mysqlpp::ResultBaseinline
field_names() const mysqlpp::ResultBaseinline
field_num(const std::string &) const mysqlpp::ResultBase
field_seek(Fields::size_type field) const mysqlpp::UseQueryResultinline
field_type(int i) const mysqlpp::ResultBaseinline
field_types() const mysqlpp::ResultBaseinline
fields() const mysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
names_mysqlpp::ResultBaseprotected
num_fields() const mysqlpp::ResultBaseinline
operator MYSQL_RES *() const mysqlpp::UseQueryResultinline
operator=(const UseQueryResult &rhs)mysqlpp::UseQueryResultinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
table() const mysqlpp::ResultBaseinline
throw_exceptions() const mysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
UseQueryResult()mysqlpp::UseQueryResultinline
UseQueryResult(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::UseQueryResult
UseQueryResult(const UseQueryResult &other)mysqlpp::UseQueryResultinline
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
~UseQueryResult()mysqlpp::UseQueryResultinline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLStream__coll__graph.png0000644000372000001440000003213612502417165030311 0ustar robertousers‰PNG  IHDRuÛþ–µbKGDÿÿÿ ½§“ IDATxœíÝi@×Úà3 ö]A6YEÔZêu‡Š¨µQPÔªØVÀ¥*hÕ‚Zm]QD± -¨ E­m¥¢^‘F•A@$ÄHÈ2óý˜~¹Â& Éy~œLÞygɛك` ‚d€DtÉ-X_ ’X_ ’X_ ’%¢è­êêêuëÖq¹\¢†*‡#GŽô?NccãëׯûG¦H$’­­­ŠŠ ±i CåüQJJН¯ïÂ… ‰N’^½z•ŸŸ/•µýéÓ§,KSS³ÿ¡d§±±ÑÑÑÑÐÐØ4†Ìö .%%…è ! ÿ}’V4MMM'''iE“…Û·oðø A²ë A²ë A²ë A²ëK”––""Å€­­­ááá£GÖÐÐ?~ü¾}ûÁ@f"‘¤ÿ£èSŠIŽç¬/„iiiùè£>|óèÑ£­[·^¸paÆŒB¡Pâðåååúúúx[[[{óæÍROéï¿ÿ®{ŸÔG€i„ħZœÏ!v~ZžìÞ½ÛÀÀàÖ­[d20räÈ™3g:;;Ÿ;wnåÊ•‡GQ´©© oëëëGGGK=%ƒaÆI=lg0-ƒøT‹“ã9 oÛ/‚œ={ÖÁÁÁÀÀ :::11ÑÒÒRKKkÇŽ€ÐÐÐàà`|H6›M£Ñ?~ ÈÈÈpqqQQQ±²²JLL (zìØ1 &äææŠoÁâ´ééévvv†††¡¡¡ííí;Áû[¿âí¤¤¤;wâŧ¦¦ž””$1Ô'Ÿ|À¿ÿâq˜LæòåËõõõÍÌÌÂÂÂðKœ¹pႃƒƒ®®îþýûñ!¯]»6fÌfllÜûú·ß~355mnnüòË/#GŽlmm‘‘‘æææK—.e2™øÀ|>?<<ÜÈÈÈÐÐ0<<œÏçËhZ:/²Á¦s†§úÖ­[æææ â{©&Ã°ØØXGGGMMMww÷k×® ¥)lˆHNNîM¶???‹uæÌÀ¢E‹X,Ö©S§oß¾½s玞žŸÏÇ0,))ÉÉÉ EQ6›­¬¬W¯¤¤Äf³O:ehh˜ššúúõëëׯ›™™JJJðð†§§çË—/óóómll¢¢¢$vbÆd2ãââðôDmüëÚØØØ!ÿ¼¼<##£nâド·ýýý=<<ÊÊÊètº³³3>RÀ‚ š››ãââMMM,‹J¥ÕÔÔ$%%Þ¼y#PXXØò>ü­¥K—.[¶¬¾¾ÞÈÈèþýû†8pÀÉɉN§?yòÄÍÍ-,, 2&&ÆÇǧººšN§;vË–-²˜‰‹L*ëOou?ŒÄ ;Oõ¬Y³rrr Å—B‡‰‹‹355½yófcccVV–Mo&$77·¡¡¡ŸSÚrX_ 0 ãñxÚ%%%`ذa·nÝÂ0löìÙÑÑц1 …rðàÁææfE[ZZ„B¡““SBB‚(ìùóç;×:.ÊÍÆÆFbgWyvU_îÝ»§¯¯ßM|¼GÔæñxd2Y´º§¦¦â#äææŠO{{{{qq1›Í …wîÜÁ;;Ô—®~~š››ÍÌÌ\\\ð/<†avvv©©©xûÙ³g¢¶½½}]]ÞÎÊÊruu•Å´H\d]ÍjÑx²¾H̰óTã³¥ÃRè0±ÎÎÎ.\E¾xñâª/ò¶ÐÐÐP(”m™Lž?~jjêÛ·o³³³ýýý:::¹¹¹ùùùfffS§Ný믿H$Ryy¹«««(¦‹‹KçÙÚÚâ {{ûšššn:;ÓÖÖ6lþÃ%®°°pܸq½ÕÐÐ  ­­­ñ—666¢!MLLħJ¥¾|ùÒËËkܸq £•””tX?DÙ†„„<}útíÚµxOUU•(=ooo¼]YYillŒŸ{š1cFEE…,¦Eâ"““(½ÌÐÞÞ¾sg‡‰-++svv½ëèè(›”ebp-•°pá´´´”””I“&á{=EÑK—.1Œààà¹sç2 SSÓþùGô©§OŸv…ÿì^¾|‰¯]uJäïï¿{÷nñ³E­­­111^^^½eddD&“ËËËñ—eee¦¦¦x»Ã Íáp-Z^PPpâĉnëìÕ«WÇŽûôÓO7mÚ„÷˜˜˜TVVâí½{÷âm|ã ¯MÍÍÍùùù2š–΋¬OS$k½ÌPTDÄu˜X ñÕ¯¸¸XêÙÊŽÂÕ—É“' ‚Ý»wâ=‚xzz^¹r…Åbñx< …B£Ñ‚‚‚ÂÃÃÓÓÓëëëoÞ¼¹e˖Ρ6nÜXZZúðáÃmÛ¶tÕùîÝ;ü`P‡öÎ;ß¼yãááqóæÍ’’’´´4777SSSÑ6‚Äøl6[< …âëëZQQQTT´}ûv|£¬³öövG¥R9Ndd$ ¥¥¥Ã0õï (´aÆ_~ù%;;;##øí·ßâ{ ëׯ¯ªªÂ#ÌŸ?ëÖ­UUUt:ÝËËëøñ㲘‰‹LâDé&ÃSÝ£uëÖEDDdff655åääDEEÁã»Ò×ûã/¢ßÏ®ÚkÖ¬QUUe±XâÁ­­­©Tª½½}zz:†a<o÷îÝ–––êêê&LÀwz;9s挅……¾¾þ† 8ŽÄNìý½kñ6†al6{Ó¦MÎÎÎ4ÍÉÉiÏž=mmm]Åçóù“&MRWWï‡Á`êééýõ×øH%Nû¡C‡tuu‡~âÄ ???CCÃÞ9zôèèÑ£y<†aiiiÆÆÆ ƒË内…™˜˜hiiùùù577ãAX,ÖŠ+tttôôôBBBZ[[e4-™TÖŸÞèÍñLR†]Mu‡¥Ðab…BááÇ­­­µ´´¼¼¼ÒÓÓ zû 9þ"oõ¥7¶mÛ¶dÉ’>}¤C]èð²›Î#ÅP„$Ó2ðõEZ222 E//_¾ìêêÚã§I}Q¬ý#.—[^^~öìÙU«V õ N(((hkkËÏÏß±c‡ÄË/'ź~÷þýûÞÞÞk×®6mZâhjj®^½º7RŒ?DÉÓ´"""¢­­mÞ¼yVVVAAACh~±çc•l¡ÁFŠë~6gð?¿n0<S±ö H°¾@$+°¾@$+°¾@$+CìüÑéÓ§‰NaH0UQ!÷<¨œzôè‘£q¹Ü¾þÅŸ‘U‰Æ0ÉÏÇ“{æææR‰£¢¢ÒØØØù |ÀÌQnÎQ6\ÌÑ×J=BDYYy`ÆÕ]ðŒ¯"¸w¯ÌÇçÀÌL':z¡»»Ñ)ŠªÛïîFW·5òñ»á¬f(á†F9ë‹BÀ0ì“Oö¼zÅ ‘ÅÜÝ÷îoa¡Gt^òì]U{Þ÷Õµ[1ýX}Öq[¢“hðø®B@dÙ²‰JJ$ÅþùbÒ¤}Û·§µ´p‰NMñØÂ{ûk.-xV÷˜ À00ÌÎ[“½åÜ~Q-cÇF …¨¨GI‰¤¡¡²uëgK–|B")ÖqGÁPð4ùÍ£Ø:E…ÿûfQÕÉÙ.$ŠÂÍd¸ý¢( 4ÜÝí•”þw I @››9›7_òòú¡  ŠÀÜäÛ¢Ö´€âüjøl¡xq!Q›Ùº X\¬/ % à?ú~†aXqñë¹s\¿>©©©o>‚pÜfÁí•¿-Ñ\ÚŽa ÃÊÇF~¦ ‡ºàþ‘áó…£Gïd2Û$¾‹ ÀÆÆèÎ Oꃺ¡à—9OÚÞò1TòšfʾéƒúfHÙÛ/ „B!ûù¹Q(®²SR"+)‘7mš9ðY u ØÌÒÅP$í‘Ȉ·‚n¼X_M@À„N»H€B!ëêªÝ¼ùÍçŸ!$«¡îãPShK2!u*Ýì>‡õR ––cÇš‹Ÿ-"“ÉFFšü±ÉÁ¡»;€ºg5Cç‹{ ŒˆÝ@"37 U]ź¦N¬/ '0p¢è˜‰„8;›¼~Íüï+MJpšùü6”f@!ýÿ]7 FÎSÜ닚3ÇEYY € ÈÊ•S®]ûjÕª©ë×'ÁÓŒNvx¹ãBƒE—‡OÔFH@V%YLÑ":5"Áú¢pÔÔ”¿øb,™LЉY5L&íØñù´iöË–ÅWV¾%:»!‰Ãüñu™ñ8O6™*©’<°r `ë¥K¦*ôW žŸVD--ŽŽÿ;àÂáð||Ž·¶¶gdlÔÔT%0·!GÈî¯yÉc£_$Œ¤Ðþw€÷õ[t­UUt†Ì# dÖè_ ïfÏþqäH£ÄÄ%%…þÕí“Û‘•¯òXóÎÛk˜R‰ÎeЫô/##­„„à‡+6o¾Dt.CFÓ Ny&Ó}ïX\$‚Û/Ð{nÜ ‡„$DF~±jÕT¢sÚšø4=Å=Ý=rTTÑ9@ƒˆ­­‘Š eÏž ''S‚ÿ=gH?æu·_ 6o¾”šú(==Tü0õ¬/|¾ÐßÿtIIÃ_k4TÁúIÆd¶ÍûFMKÛ@£Áƒ—Ї€ç É´µiII!¯_3CC/àOÕ„-µíD§0”ÀúuÉÂBïÌ™ÙÙÏbbnË ð*ï]Š÷³z+щ °¾@Ýqs³Ú¿ÑÑ£ÙII÷ˆÎ…`ÏÚ²Ã+ì¼õŒ\ÔˆÎeÈPè‹—¡ÞX´h|YÙ›o¿½2b„þ¤I ÷¸Ö7üÌoÊ ]Ôþ>œè\†x|ê†aëÖ%ݾýüÚµ¯¬¬ ˆNg  ¸hÆÊ—üVáçí”5áOrÀúõ —Ë_¸ðøÛ·ìë׿ÖÕU¤ ÜÚRQsŸ5ï¼–… ÑÙ 1ðø Ô+**”øø` >Ëã ˆNgà¬/Poj$%…¿V¨ -?ÕqÿÞRâc¢ø|~xx¸‘‘‘¡¡axx8ŸÏ/--EäÖ­[æææ ¢öÝ»w™LæòåËõõõÍÌ̸\®øÀwïÞ•8vAΞ=ëàà```˜˜hii©¥¥µcÇŽ®rddd¸¸¸¨¨¨XYY%&&âCJì¼víÚ˜1ch4š±±qtt4Ã°ØØXGGGMMMww÷k×®!ÒÕˆz†AP_ܺõÌÌì›cDz‰N„x111>>>ÕÕÕt:}ìØ±[¶l)))Ìš5+''§°°PÔf³Ùþþþeeet:ÝÙÙ9**J|`6›-q???‹uæÌÀ¢E‹X,Ö©S§oß¾•˜›ÍVVVŽ­««‹WRRb³Ù;Y,•J ª©©IJJ¼yó&..ÎÔÔôæÍ›YYY666x•è<¢ÞÌ"X_ >;}ú¶‰É×W¯ÁìííëêêðvVV–««+^2èt:†aâmG&“‹ŠŠðSSSmllÄè    Ð¡]RR"1ƒA¡P<ØÜÜŒ¢hKK‹P(”ØÙÞÞ^\\Ìf³…Bá;wð˜ÎÎÎ.\%pñâE¼¾tQof¬/Ð‡Ø¶í²¥eø£G•D'B$•÷ŽÈhiiá%ƒÇãaÿ__ðö«W¯ÿ NWQQ +¢:ÒU»s†Ý½{wÁ‚jjj“'O¾qãþ‰ééé“&Mruu]±bSUUõŸþ%€o…u5¢Áã/ЇؽÛ{òä‘ÁÁg_¿f aôõõE_øæææüü|¼ŸBùßã`ð¶‘‘™L.//Ç;ËÊÊLMM;,•8Š¢—.]b0ÁÁÁsçÎe0]u.Z´(<<¼  àĉx@ ‹§OŸŠâw?±Ýƒõúd2éøñ@]]µeËδ¶ÊÕ-9]ýÍkgóçÏߺukUUN÷òò:~üxWCR(__ßÐÐÐŠŠŠ¢¢¢íÛ·ûûûK%ÛÎ9 âééyåÊ‹Åãñ( F“ØÙÞÞÎãñ¨T*‡Ã‰ŒŒ´´´¬[·."""33³©©)'''** ?¾Ûû‰}Oo6r H¢êê&—þþ§!ѹHGe.3- ˜×*èÍÀ,kÅŠ:::zzz!!!­­­ø.þ®xÃ0ƒ¨§§gllüõ×_s8œHzÚ?꜆aÉÉÉÖÖÖT*ÕÞÞ>==ÿˆÄÎC‡éêê>üĉ~~~†††B¡ððáÃÖÖÖZZZ^^^ééé]¨Gðú:¨_ «}|Ž/]úŸÈÈ/ˆÎ¥¿Ÿ¶^[U2òs½‰[÷&€k×® >|ôèÑøË+W®ìÙ³çñãÇ îAýâêjþã~§OßIHÈ#:—~imàg~Snäª6!ÜŒè\ˆD§Ó ÚÚÚòóówìØ±råÊŽo¦€úkî\×—/ëwîLµ²ÒŸ2ÅŽèt>„€ƒþñu™²ùÓV$±?0ø1ŽÎ~÷"""¢­­mÞ¼yVVVAAA«W¯–8dor†ûG`z13³(==ÔÞÞ˜ètúCAöæòúö¼Ÿí4L•‰NG®Àý#H 9xÐ×ÎÎxÙ²3oß²‰N§o N×UÿõîÓV°¸H¬/t(++?L&“†Ü jÃ(Ÿ|mf?¿Ož?¯ß´éW ½qãFDxü’ Å‚ƒÏ>|XqíÚW#FèD X_ Yimmÿâ‹#|¾0#c£¦¦*Ñéü«æ‹×"´òÔ!:…¿@²¢¦¦|áB›Ý¾fÍÏA¯ïJ–%f÷Ö–Š×ZˆNDQÀúÉ‘‘VBBðƒå[¶ÿÈ^ƒÿû†R£Ñê7+îí‹ ÖH¶F2;rÄÿ×_ïŸ=ûiyXVX9E•äþý„/Ì °¾@27{¶ËæÍ³##¯ff•Ã_{ª˜Ü­©jd¢rP@°¾@aÆOýüÜÖ¯OzöìõÀ½0¡¾ìf³G´¥–¼Ãh@Áú ½{}\]ÍN×׿Èñ yØËß­31uÓÈñBžŸ†“ÙöÙg?ª««¤¥­WU¥ØxùmB în¿@G[›váÂêšFhèE¸6X\ˆë 4 ,,ôâヲ²ž8ð;ѹ@2ë 4ÐÜܬbb9’}éÒC¢sd ÞßÀ×÷ã’’†°°d‰mˆN’x|"†a_~™xç΋ë׿²´4b䯧­:ÖªJ*pÛœxp@Ä@äða?++ƒ¥Kϼ{×&­°ŒRÎõ5¥ô¤i„úÖˆ0**”øø ‡·bÅY>_Øÿ€­ üß×—:Ó\—ë4¨ÿ`}ˆdd¤yþüÊ'Oj""RúJÀE3¿)£ÐH1–$%x‡Ñ ë D0''ÓS§–]¾üß“'s?< nGV¶¼nŸyØZYžµ,`}ˆçîî1kß¾k”X„gW+sÞMûn„–…Štsƒúã½óGùùù\.—Àl™ŠŠÊ'Ÿ|ÒÏ yyyîîî<O*) 0͉ÃyŽar FMIÓ^ýãGÌl©g5¨TjNNÎĉ‰NDúÞÛ’är¹fffZZZDe£°Þ½{WSSÓÿ8µµµ</%¥¿Ç2†¬¢ø‹-ª­­%: ™è¸§ª©©i` Í‹ ÞîUH .”b4ú`ðø A²ë A²ë A²ë A²"ÛúRZZŠ 2¼’RÖñ¡ õ…òúõë%K–Œ1B]]}üøñiiiR ÞWp•ë)Ô—òòr}}ÙþhW£ÐÖÖÞ¼y³ìâC„kjj3f FKNN~ðàÁâÅ‹ýüüþøãÌA|õÖ*§ ¤p%5Š¢MMMýó£Ð××ŽŽ–]|ˆp‘‘‘Ó§O?sæ þÒÑѱ¾¾þàÁƒ3gΰÄWi­r ¢ÏÛ/...***VVV‰‰‰üªÓaÆ„BáFŽ©¡¡1qâÄû÷ïãŸߪo3™ÌåË—ëëë›™™………áWw? üã·nÝ277OHH…BäÂ… ºººû÷ï`ëè訩©éîî~íÚ5|àÞÇ¿{÷.ŸÏ722244 çóù€k×®á?ªÆÆÆ¢µ A³gÏ:88DGG'&&ZZZjiiíØ±ãŒLuŸjhhhpp0>$›Í¦Ñh?’抢ǎsppÐÐИ0aBnn®ø¾>'ÓÓÓíìì CCCÛÛÛ%v‚®×+W®lܸQ<ùÈÈÈøøx¼-qýé¼&tÕÙyá ‚ÈÈHsssƒ¥K—2™L iõèëØ&&77·¡¡ë›ÍVVVŽ­««‹WRRb³Ù%%%¢8‡244LMM}ýúõõë×MLLð·˜Lf\\>ŒxÛßßßÃ㬬ŒN§;;;GEEõ8 ¼=kÖ¬œœœÂÂBQ?`Á‚ÍÍÍqqq€¦¦¦¸¸8SSÓ›7o666feeÙØØúŸÍfÇÄÄøøøTWWÓéô±cÇnÙ²…ÅbQ©Ô   ššš¤¤$À›7oðüüüX,þc»hÑ"‹uêÔ)ÀÛ·o»™«†544äææv?Lo$''wX¦uŸê;wôôôø|>†aIIINNN(ŠJœo§N_ÜfffÑÌÄžžž/_¾ÌÏÏ·±±‰ŠŠ’؉u±†477 FWÒyýÁ$­ ]uv^¸prr¢ÓéOžFñvïÇÞãâHNNîq°¡¨oõ…Á`P(”ƒ677£(ÚÒÒ" ÅçøÈ‘#Dß?¾›ÕÇã‘É䢢"üejjªM£ÀÛt:{að¯(~÷MII‰³³ó… D£»xñ"¾²ö>>†aöööuuux;++ËÕÕµ½½½¸¸˜Íf …Â;wîàãÂ(((% ÞÆèÆÀ×—nRÆ »uë†a³gÏŽŽŽÆºXôNNNw‡ú"š“ÉÉÉ666;»Ê“Á`š››%¾+qýÁ$­ ]uv^¸vvv©©©xϳgÏð¶ÄúÒ§±÷¸8äµ¾ômÿHGG'777??ßÌÌlêÔ©ýõ‰ô^„W¯^¹ººŠ^º¸¸t­¡¡A(Z[[ã/mlljjjzÎÞÞ¾s'¾¹D¡Pð—eeeÎÎ΢w{3 âWVV#‚ ÈŒ3***¨TêË—/½¼¼Æ— þ) QâíA¨›TÉdòüùóSSSß¾}›íïﺘoååå=.n[[[¼aoo/ºÇJbgg:::FFFÏž=ï|øðáøñãÛÚÚ$®?x»ÃšÐUgç…[UU%ÊÍÁÁÁÛÛ»«Üú:vÅÔ·úÂápP½téƒÁž;w.þ #2bĈþùGôòéÓ§ÝD322"“ÉååÿÞ’_VVfjjÚã(p^‡Jaaa!ž@qqqo&¡C|}}}ÑOPsss~~>‡ÃY´hQxxxAAÁ‰'º™À¡káÂ…iii)))“&MÂ÷z$Î7SSÓ7þƒxùò%þÅëªS¢Ï?ÿü‡~ÀÄîÏJJJâóù4Mâúƒ·%þftîì¼pMLL*++ñw ÷îÝÛUb}»bêÛŒ@ÄÓÓóÊ•+,‹ÇãQ(†¿Åf³kÖ¬ OOO¯¯¯¿yóæÎ;ñwß½{': jS(__ßÐÐÐŠŠŠ¢¢¢íÛ·ûûû÷8ŠÞ[·n]DDDfffSSSNNNTTþKÕ§øóçÏߺukUUN÷òò:~üx{{;Ç£R©'22ÐÒÒҧĿɓ' ‚Ý»wâ=ç[PPøâÞ²eKçP7n,--}øðá¶mۺꔸ†öîÝ{çÎÀÀÀ¿ÿþ›N§ïÚµëÈ‘#ø×^âúÓ§Éì¼p¿ýöÛ¢¢¢¢¢¢õë×WUU‰î°zôì A|g©Çã/†%''[[[S©T{{ûôôt Ãø|þ¤I“ÔÕÕ1 °±±QSS›0aB~~>ÛÇ#ˆ· F`` žžž±±ñ×_ÍápzEW¡€Ø¾.Þ …‡¶¶¶ÖÒÒòòòJOO700èS| ÃX,ÖŠ+tttôôôBBBZ[[1 ;tè®®îðáÃOœ8áççghh(1Îí® üñ—S]³fªª*‹ÅÞa¾ñx¼Ý»w[ZZª««O˜0?ÂÕáøË™3g,,,ôõõ7lØÀáp$vb]/V Ã*++,X`bb¢¡¡ññÇÿöÛo¢·$®?§Hbgç…ËårÃÂÂLLL´´´üüüðC?]­½{‹C^¢…¸ÕIDAT¿ô¹¾ !………¢——/_vuu%0Ÿn p}émÛ¶-Y²¤OéP:¼ì¦SÁÉq}‘çE:PPPÐÖÖ–ŸŸ¿cÇŽ•+WÔÀårËËËÏž=»jÕ*¢s†6y~rDDD[[Û¼y󭬬‚‚‚V¯^MtRCÀýû÷½½½×®];mÚ´þÄÑÔÔì<Ã%vBòê½çïÞ¾}ÛÑÑÑÐÐÀ„Ó›7ož={ÖÏï3 %%Å××W|™Bƒ‚ ÉÉÉ‹-":é“çý#‚ˆë A²ë A²ë A²ÒñüQUUU]]!©ÈBffÉ„ æÊD'Òéþ#ÚŒ3¤MvTP SžS­òS."o@C¸÷êËðáÃåéÿQ;zôÞ/¿Ðcbf™˜hNw”””tuuûÇÍÍmñâÅBá‡ü‡ *†l;¶“ÇÕieªHá¿å†®Å‹»¹¹…L ò}.súô˜/ê54T.\ùè#K¢ÓQh‚v´úÏw%×5÷Þa(ÀPbå©íñ=\.rKž¯¯Œ;¢´ô ›Ý>oÞÑï¿_ø¢3R8.Z‘Í,Ëj®Íg¡(†Eþ8ªiâ–áçÉ’œ×'§ ‡a`óæË/^4ìÞ=D‚Ï—9Tˆ½ÊcUd7Wä0Œ¤PÀ†Ï}A>ùÚLEKÎ×@'çK×ÙÙT(DÿÿvîÜ_õõÌcÇTTà³dˆ]Ïû-øEk=ŸDAP>@ï @RBôFªŽœ«GL~Ð@‘óóÓŽŽ¦âOœÆ0,3³hÞ¼£MM}{” Ô'„üoqé CÁ”ˆœ¯}¼×uuecc-ñ}ö쵗סÒÒ7De%÷”5ÉsbmÉvEIddôr#][ÕO `r^_cƘw8à"ÞÍž}èÞ½2¢²’{Ú–*Ó÷ŒÀŽÛ/ ¡PƬFHVГÿúâèhª¤DîÐ) ­­í‹Ÿ¼~ý‰Ÿ‚úÏl‚¦Ž•j‡SÅPlòs%eù_ñ  õÅÙٔǓp½†ݱƒÈ?3–c-¯y¿½à2øúN4’Ò¿%†DA¬fè˜}2¨¯u„¤Hþë˨QftÜJ§PH$49''‚¬ä[Õíw©‹‹ÉTÒü_朴Ñ0¡"d €LEþaFtvÐÀ‘óóÓ€aô´´Tß½ãà/ÉdD(l½oŸ­­±¹É ×þs¾Áîs½‰[ÌÉTðé~««Ëž ÛÁG_š¨êÂ+ˆüo¿M@ YGGF£¸¹YÂâ"u¼Va榲'Io&o3Ÿ²Ó/.][U÷=–#ܵ›!4À¢¾ŒmF¡¿üÒ=?Gxø¬ãÇsª«›ˆÎKÞÛ±–ZÞŒ¬ìçëwxk„»öŒV¼rZÁÈùý¸Ç«ýõþúõÇëø|¡»û~ãÓ§—š¼ÁP¯šƒD¢¾t–ýléÒ¸+WÖO˜`Mt.$·´¾üýO½yÓróæ7d2üÁ… ™PܯVTÔ¼—/ëýõ>щ@ÜRÜúbkk´téĘ˜,–ü<²oÀÔ°³ÂÊ»º}‚pŠ[_aa3Qûé§L¢bž¥4ÞX[‚ò1!íyhH)t}ÑÒ¢mÚäuæÌŸååDç24¸hÎ¶Š¿¼úh­ÉÌ­)´Ž7vA8Å=¾‹ QOσffºçϯ$:—Á®¥–—VÆ®çMßc9|"¼‡ê™Bo¿ÈdÒ®]ÞYYOoß~Nt.ƒZíý–«ÏQ!6ïg{X\ ^Rôú˜4ÉÖÓÓ92ò*Ÿ?¨ÿÖƒXÍågÚÜ3všÃûŸIAƒ‡¢ïá*+ßN›ùùŠ“‰Îeð‚׿B}×1BåÊ)û÷ßlnn%:—Á ¨¯à*󯯾òTQQúá‡?ˆN‚ä¬/ÿRWWŸõóÏyÅÅòó÷ÛD,xüåP›3ç°††jJÊZ¢s! †bÿ=Qg8JÍbªVÏCCP·àöËÿHÈwßyçå•de=%:b´³„l,+úå×Ý…¹ 22ÒÜÜÜÀÀ`éÒ¥L&ïg2™Ë—/×××733 ãr¹A.\¸ààà ««»ÿ~|H‰ ÷…„$L˜°§½Ot"íMQë…Yôdï§ÌJN÷C8pÀÉɉN§?yòÄÍÍ-,, ï÷÷÷÷ðð(++£ÓéÎÎÎQQQ†,XÐÜÜhjjꪒ?°¾tT[Ûleqòd.щ ¨¿½ÿäñõµ%Üw=V;;»ÔÔT¼ýìÙ3¼ÍãñÈdrQQÞŸššjccƒa 77PRRÒU'$äÿùÞ}eb¢½zõ´C‡nΟ?ÎÐPƒètd`y1¯ž§¾½Ühü:“Þ<²ªªÊÖÖo;88888„B¡µõ¿Ïë²±±©©©ÁÛ&&& å½'{Kì„ä <þ"Á† ZZ´ƒ':‘ÀoCëþÛ2i«ùÇL{ù|\“ÊÊJ¼]XX¸wï^€‘‘™L.//ÇûËÊÊLMMñ6‰$a5“Ø É¸Œ%PU¥nÞ<ûâÅ|:ýѹȜ²&Ù'ÙÑaAÇ'rw#00ðÛo¿-*****Z¿~}UU€B¡øúú†††VTTmß¾Ýßß_fYCC¬/’ùøŒ7nÄŽi˜œ¿ý‘H/mݺÕÓÓsæÌ™“&M277:v옉‰Éøñã======·nÝ*ƒd¡¡^ÿÒ¥‚‚ª¹s:}zÙœ9£‰Î‚†$¸ýÒ¥±c-æÏ÷Ýwíí¢s ! Ö—î|ûígMMìS§nˆt0+¹¹;*…¼Á¸ÅŠtè¼ ~õ¥;Æi­[ç~ôhvCÃ;¢s鯪?ߥ/}Á¬àò؃qs¬« (ˆÎ êX_z°v­»®®Ú÷ß_':‘‡¡Øƒ£µ™ß”Yyê|qÎþÃ<4``}é²²Ò·ßνté¿WˇÀo)zráÍämæ“·›“(p8ðüQ¯øøãñ¿ý¶qhh.ãdn*pÐO÷[V#:HáÀí—^Ù½Û»°ðÕÕ«‰N¤oê·Rh¤ÏÏÙÁân¿ôÖ¦Mɹ¹Åwïn£Ñ¨DçÒBÖ×Ëç HZàöKomÝ:§­­ýĉ¢éX\ ÁúÒ[úúê¡¡3NœÈ©©i&:`}éƒU«¦š˜hïÝ›At"44ÀúÒ yÇŽÏÓÓçç—KGÅWÞVæ2‰Î‚ÞëKß̜鄶6í›oœÖßX|2 ô·N OOÏ#F4H Šú’ššêããCtR@")£h;ÑY (??¿‹/4H)@nn.щ@}³k×.|ÙADðø A²ë A²ë A²ë A²2(ŽïµµµÒ:ÆÌápþüóOƒa``àáááïïO¥þûDz\.÷üùó}zRR’©©iï£AРë‹L9r¤¡¡a÷îÝÕÕÕGŽiii ´µµ­]»V[[;$$ÄÔÔ´¢¢">>þÑ£G$‘$oNv­®®nÍš5ééé;qÔ[pÿH&îÞ½»jÕ*[[[mmm—ÐÐм¼<ü­ŸþY[[ûðáÃnnnfff“'OŽ­««»~ýz_£¡(Êb±h’ ¨ï†R}™>}úï¿ÿ¾lÙ²yóæ]¼x133ÓÏÏoΜ9gÏž=ztÿþýøÇËË«¤¤ð÷ß{zz.Y²$33€aXZZÚ²eËfÏž½nݺÇOŸ>]4–ÚÚÚéÓ§çååz{{=z”ÏçKì ,þA¼M£Ñ®^½*úò»¸¸$''ãí¬¬¬¥K—Šoª¨¨¨,^¼8;»Ë#è*Ú—_~ ˜?¾hì¾¾¾Ož<±±±ÞÞÞÞÞÞ±±±øU*÷îÝ[µj•———袸îç*õÇPª/€G_IIIYYyÖ¬Y'OžÌËËc0<8}útçPÇŽ«­­}þüù™3gf̘ÑUgkk«è¼¨­ªªêéé¹k×®üüüººº§OŸž–-[Æ`0ÂÂÂ>|XSScll¼gÏ'Ú·b2™ 1ÝGp8œÎùOž<9..®¡¡¡¼¼<""âêÕ«|>_ ())ñx¼sçÎÚÚÚ¤1×!¨KrµL"‘¦L™òÇL™2ï¡R©[·n=uêÔ›7oLLL"##©Tª¯¯¯P(<~ü8“ÉÄOìÙ³§C¨O?ýtÓ¦M\.¿˜ ßêÐ `2™ÄKƒx;"""111..®¶¶VGGgúôéË—/Ç#Óh´Ó§OŸ;wîäÉ“µµµúúúOž<Ù·oßÎ;ëׯÏ$77·«hÆ 5j”Ï7:ä|ìØ±U«V!2eʔիW+++¯]»vÏž=ªªªK–,ñððˆˆˆHKK“î"€ qƒâù/)))¾¾¾R¹vöÌ™3õõõÛ·oïýG:\¹+ñB^é^ÝÛ™@ xùò¥£££ŒâËÈ®]» RRRˆN¤ägÿˆÇãÕÕÕýþûïŸ}öѹô™’’Ò+.Ô#ù©/ÅÅÅ«W¯ž5k–««k⨩©Í;·7uOÞö ÷ îÉÏö Aƒ ¬/É ¬/É ¬/É ¬/ÉÊ ¸~WôhH¢úlñâÅD§ ^ƒâü4—˽qãFW÷ìAƒÙ¸qã$Þ€A`Ô‚ä<þA¬ÀúA¬ÀúA¬ÀúA¬ü‡ ƒÓ·©áIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x6c.html0000755000372000001440000001322112502417164023716 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Field-members.html0000755000372000001440000001626512502417163026647 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Field Member List

This is the complete list of members for mysqlpp::Field, including all inherited members.

auto_increment() const mysqlpp::Fieldinline
binary_type() const mysqlpp::Fieldinline
blob_type() const mysqlpp::Fieldinline
db() const mysqlpp::Fieldinline
enumeration() const mysqlpp::Fieldinline
Field()mysqlpp::Fieldinline
Field(const MYSQL_FIELD *pf)mysqlpp::Fieldinline
Field(const Field &other)mysqlpp::Fieldinline
length() const mysqlpp::Fieldinline
max_length() const mysqlpp::Fieldinline
multiple_key() const mysqlpp::Fieldinline
name() const mysqlpp::Fieldinline
primary_key() const mysqlpp::Fieldinline
set_type() const mysqlpp::Fieldinline
table() const mysqlpp::Fieldinline
timestamp() const mysqlpp::Fieldinline
type() const mysqlpp::Fieldinline
unique_key() const mysqlpp::Fieldinline
zerofill() const mysqlpp::Fieldinline
mysql++-3.2.2+pristine.orig/doc/html/refman/ftv2mo.png0000644000372000001440000000062312502417165022103 0ustar robertousers‰PNG  IHDRÚ}\ˆZIDATxí1Kû@ÆiƒØB…Ò¡(h¬"EÄI'ÁoàªèÚ©ßÀáâä 8ùçR-‚â B«TPˆï]z¥B’3 _Þã’»ç}ŸË]VÇ÷}€ÌÈdIæ®i쟯JØ–b¸šÍÃõ+º™|KÂ…°,[Pï\ʘMÆ¢#€ä…F`JݤìÛk³úA±àþè?ØY4ck6"¹Z)ê¸0SHM¨@ï㋺WÖmo¼4èHJ¨Àÿö+…QobŒút ¤ú’*Ð~êè8_+3Y-ñðÜå½÷ ˜PwA¶+^ý}ºì£+xìhÏ•MAE]€TD~EÞߴ^R)`ÖAùŸÏ9©pÔq-Û¾õÛ3tÝÊÆ›ˆÃTÐHÈ)€ ½Š’ICªxëd#1ôú§é€ m@Vüý?Zæßgo_½3-³\IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_3.png0000644000372000001440000000710212502417165023732 0ustar robertousers‰PNG  IHDR;3gš8IbKGDÿÿÿ ½§“ ÷IDATxœí{P×Çoˆ’ "&$È@x5€ `­ÐA¬V¬bG¬(RŠ@-Lg EŒ´ÒÚúg@:Öj­ðmQ|L­"”Z)ŠÅ!Õ>´(/M0„†$$ûûc§™5/‚’¥÷3üqs÷ìÙïÝ“{÷œÝ@@@ œ`cidÀˆ…@ðŒXOÌÀ~P(gΜ±”ȱ··ß°a‰D²´ÈdñLÄ^¼x1))ÉRR fJ¥ÆÆÆZZd²x&bGGG0{Œ_z!Óx à ±ž€ à ±ž°ºˆmoo'ftøèÑ£7zzzR©ÔùóçŸ={ÖŒÎ'‚Þ‘š}øi†ÕE¬yyòäIhh(…B©¬¬¼uëÖ† âããøáKëú¯Àáp àåå¥uJgè=ÑÓ†üüüÅ‹9rýÐÛÛ[TTôÚk¯YVØ„®®®¬¬¬ˆˆK Á%¿üòKII‰v/‚¡²²R«G/€£Gr¹\:^PPPVVæéé9sæÌ;v ’‘‘‘’’‚Z ‘Éä––AΟ?dggÇápÊÊÊQ©T_|ñ—Ë¥R©áááuuu@€j@çÎóóósvvÎÈÈÑÛ©1FŠm»¸¸466bÅ Ý¿m‹Å⤤$æææ–-“ÉÆ!.\ !“É...ËÚÚZ6›}ýúuC^^^t:===}xx+^¡Plݺ•Á`8;;oݺU¡P˜ri*++Ç4›2¬M¾Ðϱñññ‰»âââ$É¡C‡?nhh ÑhJ¥AŠŠŠÀÀ@µZ-•Jíìì¾ú꫞žž£GΘ1C*•:tˆÁ`TWW?zôèÒ¥KîîlÙ²¶¶¶¦¦&Ÿ?þXo'‚ ƒƒƒ‡FåiÚb± ‰ $!!áÕW_íèèàóùsæÌA]^‰„D"¥¤¤twwWTTúûûQË+VÔÕÕõôô2X²d‰ÆUNN6b÷ìÙ³víÚðùü°°°œœS.UEˆµéÁæŒXtÚT(Zm@0::êââríÚ5AV®\YXXˆ ˆH$²µµ-**‹ÅjµzhhH¥R?~\ãöĉºËçó5Ú|||ôvÒ)‰b±XïV…BA$ïÞ½‹~¬®®F]^r¹ü?þJ¥*•ª¡¡A×rLÔ‡ÃÁF,—ËíééAÛW¯^ 1åÒXU„X›|¡7Ÿ3óäàà°µµÕjˆDbllluuõãÇkkkNNNõõõMMMîîî‹-º~ýºP( Ñø Ö=¯¯/Úàr¹ÝÝÝF:uqrrb2™¿ÿþ;¶³¹¹yþüùÿüóO__ŸJ¥òööFû}||4®ŒŒN¯‰ÔÖÖ¶|ùòyóæ?~kÉårF °®zzz°›ºººX,šˆŽŽîìì44RȇIɯ[·îìÙ³UUU‘‘‘èZW&“©Õêo¾ùF$¥¦¦ÆÄĈD"77·ÖÖVÍ^÷îÝÓu…Î9€¶¶6WWW#zY½zuqq1‚yRº¢¢B©TR(&“I$…B!ÚßÑÑáææfâµÈd²¸¸8×ÒÒràÀ¬%êF °®<<<°›ètº@ @¿YÅbqSS“‰ò Ó˜I‰Ø… ŽŽŽîÚµ+11í!Ë–-ûî»ï$‰B¡°µµ¥P()))<¯¦¦¦··÷òåË999º®Þÿýöööæææ¼¼¼·ÞzËPçÓ§O5 al{÷îÝ ‰‰‰|>ÿ“O>Ù·oßîÝ»¶¶¶ëׯÏÌÌììì¼{÷îŽ;Ðå€)h Ëå …‚D"Éd²üü|ÀÐÐÖÞˆAvv¶ÆÕ¦M›°{ÅÆÆæææÞ¿ŸÏç/_¾üË/¿4QDƒyëÛØº‹§§çÛo¿=00`.ç¦2æºY€æ»ßP;==L&K$¬sooo‰ÄårkjjQ(»víâp8T*5""âÔ©S@ç>öÈ‘#t:=##C&“éíD çŠéêêzóÍ7]]]^zé¥óçÏk6‰D¢ÄÄDÆb±²²²4¹b#£3$`ïÞ½³gÏf³Ùˆg0Z2 œ9sÆÓÓ“Á`dggËårì^‰$99ÙÉɉF£½ûî»ÃÃæ\ã÷Ѝ[¼xφ Çô6qÆÔ3Ùh]… hllìéééî«{ã7ÜÝÝ %Jéèè ÑhÏ}8³ežL!//oãÆãÚEëäê=׿½ÏÅÇP„ˆDÒ'n¼þúç®®Yîî[X¬,ØeA=S†Ù#Vó Ž ˆZ­ŽŠŠÚ¹sç$Ýœ™'#ŒŒŒ…ÂcÇŽmÞ¼ÙìÎ!ãâÉé‘#?­ZU2gÎGÛ·×ÒrA•Jmi]Ï@ Ž;æïïïìì\XXX^^Îáp?úè#@fffjj*j)•J)Ê;w.\¶··÷òò*//¨Õêýû÷ûûû;88DDDÔ××c×Ãèò¸¦¦æ…^`0™™™r¹\o'xv-md]M ÒÓÓ/]º„~¼xñ"ú€‹Å*,,„‡‡\\\P¥RÉãñ˜L&ƒÁàñxJ¥òyÎט1=^~üñG''§¼¼¼ñî¨õ…Ô××—––¦e£·s*±¸ã*++¥Ò‘ªª[ ‡Øìlw÷-nnY,ÖZÖ3Çœ”÷9AæææY³f!b¤&¯1o]o<Lµªªjýúõؾ ‘+W~ðÛoOe2¥ A­682™3³³—O¶žÔÔ7ËËKâââŒØ„–––ÐÐP¥RI"‘°m@ÀápÜÝÝOž<¹dÉ’U«VEEE}øá‡b±˜Éd¤¦¦:::S(”àà`§ùÙ£²²²¤¤$@àëë‹ H{{»¯¯/ŸÏ TUUmß¾ýûï¿×íÔdïõJ>>>šžÛ·oGGG‹Åb…B! Ùl6™LþùçŸ-Z„úAŽûûû×××£Snmm-ÇC× †ÐÓü¹âÿTjø­[@Ôjcß¼2™rÛ¶ªÉÖC&¿`Š™)åýàààÚÚZtîEËûŸþy~~~XXXnnîŠ+&»¼¯@€–ôÑ’ûæÍ›¥Rihh¨^c´À®ùèèè8®c¡L“ˆÅÞixxxDEE;;;[P’E‹/tª®þU,ž1ƒ8:ªÒk9kùÏ?ÿ7Ùzét²nݺ„„„€€Ýò¾B¡8}útLLL?ZÞŸ;w.º—¡ò>:j•÷u;MAƒ®Zµ ü[r¯ªªŠ‰‰‘Ë奥¥ºöt:½¾¾¢{{{ÇuP¦ÏÛvš´{ii©D" 4d, étúTÊ›2Ølê§Ÿ®áów;—±~ýKd²-ˆD_hë)ïz{{>|ØÐаfÍšÎÎÎ-[¶£%w©TŠ6ÌS`óN€©M»[-@'Ó32¢¼råî{ï•{xlusËÒd¡¬*ó„—ò>6pØlvBBB__ŸF’nÉ]©TFFFR©TÔ`¼ö)­ÇNýýýºC:I¼S§NÍ›7më¾éF£ÑL&50þ^›Þ#Z'F"d``èØ±ŸV®,quÍb±²¬'bMaº–÷3EõØÉ£¹¹yÓ¦MOŸ>ÓØ××·££044´víÚ°°0@PTT”››;00€>£«¹‘())éìì¼}ûöµk×êêêvî܉uÕÚÚÊáp¶mÛ†ëgñétjròÂK—>hjÚ‘›»29y¡¥™,ïkƒˆ)//_°`AZZÚË/¿, ± ·1±³³kmmÝ·o‹Åb³ÙÝ€/--Ý¿?›Í Ú³gÏåË—±[—.]zçÎ …µzõê+W®©šX?lö쌌¥ii¯XZˆIܼyóÅ_LIIyå•W&âgæÌ™iii¦tZ;cΖåêÕ« #))éæÍ›jµÚ0º*®©©‰ŒŒ INN˜Çƒ5ÆöööØsâèè¨÷( …}!ÉÏÏïÁƒæŸ™–~*P kÓƒ/p¹*vvvhll¼q㆑ܯˆNÚ]ï›nL|¯­¯¯ïÞ½{ÝÝÝaaad2ùùFLkعsçÖ××WWWÿõ×_~~~ï¼óί¿þª×ròÒîjµúÊ•+kÖ¬ G䯧OŸž®Å!ˆµ3æ,l=ˆÅâ½{÷z{{wuuimÂŽÈìi÷o¿ý6<<üäÉ“r¹|²Ç8A€•­B­M¾˜&Õ•J…>>e˜ò#†V‚µEˆµéÁzãO)ÚØØØØLéb^ëGž ãâ³Ï>;|ø°¥Uà’¾¾>ÝNüE,GlÙ²åï¿ÿ¶´ ¼âää­Õ #2‰[ZÂtÃÚsÅ ŒXOÀˆ…@ðŒXOèÉ<}ýõ×S¯˜Â3ëææF$ñ÷6ä_ˆD¢éÿ‹‚Gžù-EbåÀûXOÀˆ…@ðŒXOÀˆ…@ðÄÿtJ²:¤€°‚IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption.html0000755000372000001440000001661412502417163031551 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseEmbeddedConnectionOption Class Reference

Connect to embedded server in preference to remote server. More...

#include <options.h>

Inheritance diagram for mysqlpp::UseEmbeddedConnectionOption:
Collaboration diagram for mysqlpp::UseEmbeddedConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Connect to embedded server in preference to remote server.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classMaxPacketInsertPolicy.html0000755000372000001440000002524412502417162026324 0ustar robertousers MySQL++ Reference Manual
MaxPacketInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...

#include <insertpolicy.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 MaxPacketInsertPolicy (Connection *con, int size)
 Constructor. More...
 
 MaxPacketInsertPolicy (int size)
 Constructor. More...
 
 ~MaxPacketInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class MaxPacketInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size.

This differs from the SizeThresholdInsertPolicy in that it builds the VALUES expression and checks whether it would cause the length of the INSERT statement to exceed the maximum size.

Constructor & Destructor Documentation

template<class AccessController = Transaction>
MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( Connection *  con,
int  size 
)
inline

Constructor.

Parameters
conconnection object used for escaping text
sizethe maximum allowed size for an INSERT statement
template<class AccessController = Transaction>
MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( int  size)
inline

Constructor.

This version does not use a Connection* so it will not be able to take the character set into account when escaping the text.

Parameters
sizethe maximum allowed size for an INSERT statement

Member Function Documentation

template<class AccessController = Transaction>
template<class RowT >
bool MaxPacketInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x7e.html0000755000372000001440000002127112502417164023725 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- ~ -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Field.html0000755000372000001440000003652712502417163025222 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Field Class Reference

Class to hold information about a SQL field. More...

#include <field.h>

Public Member Functions

 Field ()
 Create empty object.
 
 Field (const MYSQL_FIELD *pf)
 Create object from C API field structure.
 
 Field (const Field &other)
 Create object as a copy of another Field.
 
bool auto_increment () const
 Returns true if field auto-increments.
 
bool binary_type () const
 Returns true if field is of some binary type.
 
bool blob_type () const
 Returns true if field is of some BLOB type.
 
const char * db () const
 Return the name of the database the field comes from.
 
bool enumeration () const
 Returns true if field is of an enumerated value type.
 
size_t length () const
 Return the creation size of the field. More...
 
size_t max_length () const
 Return the maximum number of bytes stored in this field in any of the rows in the result set we were created from.
 
bool multiple_key () const
 Returns true if field is part of a key.
 
const char * name () const
 Return the field's name.
 
bool primary_key () const
 Returns true if field is part of a primary key.
 
bool set_type () const
 Returns true if field is of some 'set' type.
 
const char * table () const
 Return the name of the table the field comes from.
 
bool timestamp () const
 Returns true if field's type is timestamp.
 
const mysql_type_infotype () const
 Return information about the field's type.
 
bool unique_key () const
 Returns true if field is part of a unique key.
 
bool zerofill () const
 Returns true if field has the zerofill attribute.
 

Detailed Description

Class to hold information about a SQL field.

This is a cut-down version of MYSQL_FIELD, using MySQL++ and generic C++ types instead of the C types it uses, and hiding all fields behind accessors. It leaves out data members we have decided aren't very useful. Given a good argument, we're willing to mirror more of the fields; we just don't want to mirror the underlying structure slavishly for no benefit.

Member Function Documentation

size_t mysqlpp::Field::length ( ) const
inline

Return the creation size of the field.

This is the number of bytes the field can hold, not how much is actually stored in the field on any particular row.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1value__list__b.html0000755000372000001440000002167312502417164027361 0ustar robertousers MySQL++ Reference Manual
mysqlpp::value_list_b< Seq, Manip > Struct Template Reference

Same as value_list_ba, plus the option to have some elements of the list suppressed. More...

#include <vallist.h>

Public Member Functions

 value_list_b (const Seq &s, const std::vector< bool > &f, const char *d, Manip m)
 Create object. More...
 

Public Attributes

const Seq * list
 set of objects in the value list
 
const std::vector< bool > fields
 delimiter to use between each value in the list when inserting it into a C++ stream
 
const char * delim
 delimiter to use between each value in the list when inserting it into a C++ stream
 
Manip manip
 manipulator to use when inserting the list into a C++ stream
 

Detailed Description

template<class Seq, class Manip>
struct mysqlpp::value_list_b< Seq, Manip >

Same as value_list_ba, plus the option to have some elements of the list suppressed.

Imagine an object of this type contains the list (a, b, c), that the object's 'fields' list is (true, false, true), and that the object's delimiter is set to ":". When you insert that object into a C++ stream, you would get "a:c".

See value_list_ba's documentation for more details.

Constructor & Destructor Documentation

template<class Seq, class Manip>
mysqlpp::value_list_b< Seq, Manip >::value_list_b ( const Seq &  s,
const std::vector< bool > &  f,
const char *  d,
Manip  m 
)
inline

Create object.

Parameters
sset of objects in the value list
ffor each true item in the list, the list item in that position will be inserted into a C++ stream
dwhat delimiter to use between each value in the list when inserting the list into a C++ stream
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1OptionalExceptions__inherit__graph.png0000644000372000001440000006426212502417165033043 0ustar robertousers‰PNG  IHDRˆNv¢bKGDÿÿÿ ½§“ IDATxœìÝyXWÛ0𓄄ŰCØAQQ@*Ô‚»UVѺԥ*ÖܨÅZ­Ö¥ýjq—Š ¨("u¥HeUDDmÙW…B !Û|LŸ¼‘„Exÿ®çz®Éaæœ{†”ÛsæÌ†aQÖàÿ@bHÌÀ‰@äd kÖ¬áp8²È’µµõÁƒßûpÌÊ€Þàçç'ë@€ÌTVVfff~Hn…3ô²ØØXY‡dÿÇÙ‡Ô÷˜€30€@bHÌÀ‰†”ââbÐ+U]ºt‰ M^^B¨¦¦fÁ‚ǧR©×®](¾³ªªê¬Y³JKKE?íâÀþ׋—«·@b ÝçŸ^[[[[[›žžŽªý›ÆÆÆqãÆ)))ÅÄÄdggÏŸ??00ðÎ;¢cÓÓÓkkkkjjRSS…BáÂ… ñònì%%%ZZZø¶ššÚ¦M›ú³õnÁãR¤STTTTTD±X,„®®®èG'OžÄ?Ž5ª®®nÿþýS§NÅK´µµñýõôôNœ8ahhÈd2UTTº=°…ÂÆÆF|[KKkÏž=ýÖtO@ú@8uꔵµµ¶¶öž={Î;gjjªªªºmÛ6„PHHȲeËð=Y,–’’Ò“'OB vvv fffçÎC …ÂÈÈHkkkeeeggç””ñQY|6>>ÞÒÒ’F£…„„´··K-Doèödt÷êÕ«ëׯ/‰ˆˆˆŠŠ’º3‰DBñùünljjúâ‹/´´´ CCCñw¨„óçÏ[[[khhìÝ»Wt % y<^XX˜ŽŽF ãñx|>?""ÂØØX[[{Ñ¢EMMM¡‰'¢ÿý;Cüd{ÞzßÂô’˜˜˜žü]E2™L¼ãèïïÏd2;†jhhHMMÕÔÔäñx†EGGÛØØ…B‹%//ôèÑÚÚÚ¨¨(999‹uìØ1WSS“˜˜hhhˆ***ÂcÀ7¼¼¼ 333ÍÍÍ·oß.µ𦦦'Nàá‰oãDuâ BˆN§wq‚yyy---L&³¸¸ØÛÛ{„ =90((hÊ”)¯^½ÊÏÏ·µµÅcCùúú2Œ'N „;+üùçŸ}||***òóóííí7oÞ¼oß>›üüügÏž999…††v8ñíž·Þ…~º‰zMÏsnn.†a\.·ÃvQQŸÏ×ÕÕ½wï†a3fÌØ³g†at:L&ïß¿ŸÁ`…––@`ccsæÌQµgÏž•LÌùùù¢ØÌÍÍ¥vp‡ÄL§ÓB £‹!“ÉnnnEEEÝÈårI$RAAþ1.. !”’’"~‰:+´²²ª­­ÅOJJ;v¬¥¥e\\^òâÅ |[jb~§Ö»ðቆ²@”••Bd2¹Ã6BˆD"y{{ÇÅÅ544$''!„ÔÕÕSRR233 ÝÜÜÒÒÒˆDbIIÉØ±cEuÚÙÙI6daaoXYYUUUuQØsêêê:::/^¼/ÌÉÉqpphkkÃ?Š—Ëý믿ÌÍÍ»=°¾¾^ Œ1/777Ŧ¯¯/~‰:+,++ÓÓÓÃgƒ{zz––––——‹NÖÚÚzÞ¼yÔ»¶Þw 1À€ãççwí򵯯X|€šÍf …ÂË—/ÓéôeË–Íž=›N§<}úTtÔóçÏ%«Â{„¡ÂÂB<ÁtVøNæÌ™sàÀL¬sÍãñ”””Þû@‰TRR‚—¿zõÊÀÀß&¥d+ÉB---Ñ? Fff¦¾¾~YYþÓ¼¼¼]»vuØ»¶Þw 1À€ãêêÊçówìØŒ—//¯«W¯2™L.—K&“•””–.]_WWwûöíÍ›7KVµ~ýúââ✜œ­[·ŠžY’,lnnÍ”ßîÌ®]»RSSƒƒƒÓÓÓóóóøá‡ƒv‘özr ™L )---((øî»ïðÑ‚žóööÞ²eKyyy~~þ´iÓ:^PPPPP°víÚòòrÑÎøTs‘o½×|È88q=¿Ç,êØu¶½jÕ*EEE&“)^ùˆ#(Š••U||<†a\.wÇŽ¦¦¦T*ÕÙÙùÂ… HâóÉ“'MLL´´´Ö­[Çf³¥bχê¬ð²²2___}}}eeeGGÇ7nH=AI]H§Óƒƒƒ555õôô6lØ€Ç&õI-d2™K–,QWW×ÔÔ\±bEkk+‡Ã Õ××WUU Äooóx<*•ÚáÔzÞz>ü3¬Ç ½_ò¯Wþ®†‡‡—••?¾ç‡[XXˆZïð±‹BЋ>ü;/€…ÃáÔÔÔœ:uêâÅ‹²ŽÈÜc€%++k„ K—.uwwÿzTTTV®\Ù“B0 ÀP6ôš^ʃԇ Ç ˜€30€@bx\ zÙñãÇû®rkjâijRú® ð!?~ü5@b€^c``@"‘úây$99 yycyy Åøõõ'z½ Ð[Œ?äpx\ ¨šš¦û÷_¦¥¦§76²ôôÔ¦L±vu9i’…†Æ0YGú $f@X¬ö””—ii…ii…ååòòr“'[zzÚ¸ºŽ41Ñ”ut ?@b ±‚‚ª´´Â»wŸ?yR.`£GººŽœûl”§§Íĉ#´µ•eHÌÐZZ8ýõh¤šL&Mœ8bòä‘®®#mm ‰D‚¬²‰ú\e%ýÞ½—))/ÓÓ‹[[ÛutTÜÜ,Ýܬ&O©©I•ut``Ä }‚Çdg—¦¤¼LN~QXXG¡È99™¹»[¹»[ZYéÐ9ÒAb€ÞôêÕëÛ·Ÿ=xP˜“SÊáðììŒ\]Gzz޲·.'/[ÝƒÄ J(Äòò*îÝ{qïÞËgϪÈd’““Ù§ŸZú©µ……ެ£ƒ $fxOL&çÎgÉÉ/<(lnnƒÎ1è˜àÝ0­II/îÜy–šú/‡Ã7ÎdÚ4[OO›‘#ue 1@äçW&%=OHxZXX§¬¬0uª­§§ÍäÉ#UU•dR 1@Wòó+oÝzvçNÁ?ÿÔâï™:ÕÖÃÃZI Öw}3t„aXnnybâÓÄÄüÊJº±±¦——ÍÔ©£œÌàæ1èk˜à?<žà¯¿þIHÈKN~ÑÜÌž0aøìÙc==m`õП 1>vmmÜ{÷^$%=OJzÁdþ—§Nµ52Òuhàc‰ð‘jmmÿóÏü›7ŸþýwQ{;oüøá³g>}´º¬C5HÌ€KK çöíg7o>MK+äóÖ³fùôSkxg5 1> l6÷Þ½—‰‰OïÝ{ÑÖÆ?~øÌ™cfδƒþ1h 1†2Ñxuj꿆¹»[Íš5ÆÓÓFM >$fÀ$ÓÓ‹¯]˽uëYK ÛÁÁôóÏígÍ£¥ãÕ` ƒÄ :ø|aJÊË„„¼»wŸ·´p\\,|}'@ÿ .˜ƒ†a99¥W®!]ð~bccºÞ3`€Â§X_¹ò()é¹@ œ6môÉ“K&O¶”I> ßÀ÷0àäçW^¾üèæÍ§õõͦ;vÌ›5k <ò>˜Ee%=66[4¥k቟nonN“u\ô+HÌc±Ú¯_Ͻ|9çñã2UU%oïñ{÷úM˜`J$d2ÐS@Ÿ/LJz¾råÙÑ£¿ ¿ª««zúô²ÜÜí?þ8ÏÑÑ ²rŠ‹‹ „^»>¡¸¸¸ë’wj føðá‹-zóæMoEÛó0X,Vhh¨©©©¢¢¢……EDDÄ»>äÖ»×¹ç Ç èo¥¥o._~tõê£ÊJº¥¥nhè4oïñð–®ÁBMMmÓ¦M]žnjj* ûí7{{ûgÏž©©õ毸Û0Ö­[W^^~õêU##£—/_†„„Ðéôßÿ½c)))qttlhhè•Ú 1ú “ÉIHx›óèQ™¶6uî\{__[[YÇÞ––Öž={ºÞG[[[WW!d``àîîîîîþ믿þðÃýÆõë×oß¾mooÇsðàÁààà>JÌB¡°±±±·jƒ¡lÀ{âpx¬nwãñ yGll·o·´Ô½vmmnîÛ·ÏÂY™@ œ:uÊÚÚZ[[{Ïž=çÎ355UUUݶmB($$dÙ²eøž,KIIéÉ“'¡„„;;;33³sçÎ!„„Badd¤µµµ²²²³³sJJŠøà*>ÖoiiI£ÑBBBÚÛÛ¥¢·f{>HK Ο?omm­¡¡±wï^ñcoܸa``À`0B/^9rdkk«ÔV­Z•˜˜ˆljjúâ‹/´´´ CCCñáå®/BèæÍ›ãÆSRRÒÓÓÃó±ø)H‰RQQ9|ø°(_Nž<¹¼¼¼³ø|~DD„±±±¶¶ö¢E‹šššÄOðÐÐбcÇâ}b¦££C£ÑÂÂÂx<ÞĉBø¿Ez﮼¼ÁÅå§É“ww±ÏÓ§aa1VV[õõ7øû¾qã ›Íí·ûHLLLOþr"„™LæÉ“'BþþþL&óرc¡†††ÔÔTMMM‡aXtt´P(d±XòòòG­­­ŠŠ’““c±XÇŽ£Ñhqqq555‰‰‰†††¡¢¢"<|ÃËË«°°033ÓÜÜ|ûöíR 1 kjj:qâžø6^a‡àE%!___ƒqâÄ „Pcc£¨u Ã-Z´xñ⺺:¬¬¬Î*ÌÉÉQSS÷ƒ‚‚¦L™òêÕ«üü|[[[<¶®/“ɤP(K—.­ªªŠŽŽF½~ýZ< É 1 »s玼¼¼§§ç¾}ûÊÊÊDñHưoß>›üüügÏž999…††Š.¯P(eeüðŸþÙÇǧ¢¢"??ßÞÞ~óæÍâÁt­'ßHÌ€w–]bi¹ÅÀ`ƒžÞ×¹¹å~úú5322ÙÍmžÞ×ÎÎ;##“««2‰³/ô<1çææbÆår;lñù|]]Ý{÷îa6cÆŒ={ö`F§ÓÉdòþýû †P(lii666gΜU{öìYÉÄœŸŸ/ŠÍÜÜ\jaסv˜SRRăOB ÃÐÐÐÎÎϯU(JÌ\.—D"àåqqqxl]_®ööö—/_²X,@šš*†dx9ŸÏÏÌÌܱc‡­­-‰D:þ|g1XZZÆÅÅá%/^¼À·ñ&6n܈ú÷ßE§ceeU[[‹o'%%;¶w3 eÞÍéÓÏ›÷{K G(ÄääHçÏgàå¢!k{ûí¿ý–äèhzýúº¿ÿÞºfÍ}ýqb—²²2BˆL&wØF‘H$oo︸¸†††äää   „ººzJJJff¦¡¡¡››[ZZ‘H,));v¬¨N;;;Ɇ,,,ð ++«ªªª. ;ƒ‰½a“xÛ¨¾¾¾xðâÔÔÔV¬XñüùóÕ«WwQQQш#BõõõßF™››‹bëârQ(”ÂÂÂiÓ¦?þÌ™3R›èdkkë¥K—BNNNÛ¶mËÏÏߺu+žb¥ÆP^^.ºbÖÖÖóæÍÕœ““ãîîþÓO?‰JÊÊÊôôôðiçžžž¥¥¥]œû{€Ä è)>_'þ×Máóqq<øwãÆX;»ïW­ú!tøpp~þ{÷úÃSO]ðóó»víZll¬‹‹ >@Íf³…BáåË—étú²eËfÏžM§Ó ž>}*:êùóç’UáÝ5„Paa!žŸ:+”ÊØØXüᨗ/_ÊÉɉJˆÄN3EeeeddägŸ}öí·ßv¶†aGŽ™9s&BHGG‡D"•””à?zõê•A÷ó Øl¶¿¿XXXnnîáÇ¥îÓ!H Ã,XðìÙ3ü#@˜:u*þžs©1èëë—••á%yyy»víU•pôèÑK—.¥¤¤à%ZZZ¢N9ƒÁÈÌÌìöÞ $f@0™œ Ž]¼˜‰Ð[=ªövþüùG““_;§¦nމY={öX)½+ ÎÕÕ•ÏçïØ±#88/!^^^W¯^e2™\.—L&+))-]º4,,,>>¾®®îöíÛ›7o–¬jýúõÅÅÅ999[·n]¸pag…ÍÍÍøÜÛ_|ñźuënÞ¼YZZzïÞ½… .Z´H^^¾ÛS …K—.]·nÝÅ‹“““D?zóæM]]]uuujjê¼yóJKK¿ùæ„™L )---((øî»ïðÑ‚®µ··s¹\ …Âf³#""B---]B¥R-Z˜˜XRR’žžØY ÁÁÁááák×®MC 6ÌÒÒróæÍ«V­Â§ªy{{oÙ²¥¼¼bÄ …beea—Ëݱc‡©©)•Juvv¾pá’¸Ç|òäI--­uëÖ±Ùl©…¢ñ†Ä·y<ÞÞ½{---ñÙàááá­­­]œˆèØßÿ}̘1\.ðk×®éééÑétìí‘p##£   úúzQ…t:=88XSSSOOoÆ xlÝ^®_~ùECCÃÈÈèðáÃ4­Ã=fÉCø|þöíÛíì쇾iÓ&¼-©1p8œÐÐP}}}UUÕÀÀ@ƒÑá*±Ùì‘#GFDD`Æd2—,Y¢®®®©©¹bÅŠÖÖVçââB¥R»ýbôäûë1º‘™ùjñâ(6»ÏJû9F >Ü:|¸VG& ø²}½ò—3<<¼¬¬ìüùó=?¤¸¸ØÂÂBÔz‡]‚¢'ßÊtåòåÿ#mmee„ANޛӝa r§¤¤äÔ©S_~ù¥¬c$f€t†<˜üõ×ù|@ÐYVF!Opñb¦P]´žÊÊÊš0aÂÒ¥KÝÝÝ?¤••+Wö¤ "0” †²7îÛ·OÖQ VòòÆÞÿ ù!„¸a»±1ÃøÞ®©©©hÆìÔ‹CÙà#Ô“ï¼+ eeee'Nħƒ‚w%`55­!‰@¡BJJr"“‰rrRÛ>ÿðF322~ýõׯ€Á 3⌌Œüüüdè)è‰öšššÐÐÐôôô††kkë­[·Š¿R£ŸÁlµà3`Á0ìï¿ wîLhoï…‘óPcc#¾ DLLLvvöüùóïܹӟ1”””hiý7¿'ëH~T Ç 4˜LvLLvTTZEE#BÈÇg‚µµž¬ƒ|"""<<„ î¯`hkmm¿x1+*êAyy£œ±Ã³Ô--y<Îjjb77·µ·ó9^SS[s3»¹¹Ãás8¼ææ¶æf6^ØÞÎÃw6——7ùГ¦¦¦ºº:+++ñB*•J¥Rñíµk×ÖÕÕegg·¶¶.X°@YY æõë×322®\¹òå—_._¾\CCCj᯿þZZZúèÑ#<Å~ÿý÷šššW¯^MLL$Ë—/ßµk×¾}û233-,,êêê:„÷N­Uð¸ÊüýýB±±±2Œ¡×'¶ íi;¢‡I^¾¬9u*íêÕÇ<_(”Ò@8r$ØÃúµµ½¥…Ãbµ³Xœæföÿ>rX¬v&“ÝÒ‘ÜÇt¨L&Q© ** ÊÊ Tª•*ÿ¿ªª•*/ú¨¢¢˜•õ÷¦M_ ýÚYïE CCCƒÁ`¨©IYò‹Çã)**>}úÔÆÆ!tíÚµ7„””wwwG¡PŠŠŠÌÍÍ¥Z[[§¤¤à]áäää°°06›½{÷nü[úòåËþùgÞ¼yâßÑö;µÞ¯W­÷ÀãR 5ø´Ù³gÇÄÄ(++ߺu+000>>¾?ï–””8::644 ¾™¶#/oêïøáÃ"‰ÄçwÌ "D"_̪%%Êÿò¨‚ªª"•*¯®>ÌÈH“J•WQQPVVO´ÿË» òò=ýcX[›'¶¿ç¹ êêê:::/^¼øä“OD…999_}õUjj*NïlYF©‹?JâK"Š>ªªª¶··‹¯¨hmmÝYl], ÙÅÒ“C$f“!?mçõk¶†Æçÿ]„¡‹¬Œ"‘ˆóæÙÏ›7^¬;« ¬¬ MvkΜ9pvvÝÙŽŽæñxJJJd2_qÔ¨Qèíe¥.þ(Y¨¥¥•’’‚÷hñaó™3g–••ÙÚÚ"„òòòÃÃÃ¥&Z±‡­UÑ©ÐpêÔ)kkkmmí={öœ;wÎÔÔTUUuÛ¶m¡eË–á{²X,%%¥'Ož „ìììðyÎ;‡ …‘‘‘ÖÖÖÊÊÊÎÎÎ)))¢?|è3\âãã---i4ZHHH{{»ÔBôötñí!?m‡FS|óæ\xø,''S‰€¢P:í?˜˜hzxX98˜Z[ëi¨ª*AVî‰]»v¥¦¦§§§çççÿðÃÄW ~¿eÅI.‰ØÅŠŠÖIüðÖ‡ˆnר`ðòóóóóóëv7„P`` “ÉÄ{¢þþþL&óرc¡†††ÔÔTMMM‡aXtt´P(d±XòòòG­­­ŠŠ’““c±XÇŽ£Ñhqqq555‰‰‰†††Hb…>//¯ÂÂÂÌÌLssóíÛ·K-Ä0¬©©éĉxx¢mƒÂWÖ“*((hÊ”)¯^½ÊÏÏ·µµÅ«Bùúú2Œ'N „;+üùçŸ}||***òóóííí7oÞ¼oß>›üüügÏž999…††b¯ØóÖ» ¾(›Í}ðàßヒ7.BOïkCÃoôõ7ˆ–›46ˆ¸Öí/·×õpÙÇ®¬¬Ì××W___YYÙÑÑñÆ¢õ|YF©…’K"J]QQ|DñoÑ;- 9õäû3è¿^t¡ç‰977Ã0.—Ûa»¨¨ˆÏçëêêÞ»wð3fìÙ³Ã0:N&“÷ïßÏ`0„BaKK‹@ °±±9s挨ڳgÏJ&æüü|ü§111æææR ;‹“N§#„ð¿k’¸\.‰D*((À?ÆÅÅáU!„RRRÄϨ³B++«ÚÚZü𤤤±cÇZZZÆÅÅá%/^¼À·¥&æwj½ Rÿl ¼¼ŠnOŸþ‹Á}ý¯ML¾Õ×ßðÍ7—º®­/ Ä d¥'ßÊ!„”••Ñÿ¦–ˆo#„H$’··w\\\CCCrr2>¶¦®®ž’’’™™ihhèææ–––F$KJJÆŽ+ªÓÎÎN²!Ñ,+++ÑÄ©…’DÓvÄ srrÚÚÚÞuâLgÓv@ðôô,---//Ÿ¶ÓÅôï>¶C$ÆŒ1ú曩þ¹áéÓ¿ý4mÚèaÃä?Š©@àc‰€îùùù]»v-66ÖÅÅ f³ÙB¡ðòåËt:}Ù²e³gϦÓéOŸ>õüùsɪð.&B¨°°ÏXJ…OÛÁÄžµMÛMœÁËßoÚŽ¨GË`0233õõõËÊÊðŸæååá·!¥z×Öß›¦&Õ×wÂÑ£‹ wïÜÙÅâW V˜èž««+ŸÏß±cGpp0^B ¼¼¼®^½Êd2¹\.™LVRRZºtiXXX|||]]ÝíÛ·7oÞ,YÕúõë‹‹‹srr¶nݺpáÂÎ ›››ES¯Å·aÚC¡á’¸ IDAT_Ÿ¨ ;=¿Ç,uj‰øöªU«™L¦è¨˜˜˜#FP(++«øøx ø\îŽ;LMM©Tª³³ó… Ä=æ“'Oš˜˜hii­[·ŽÍfK-Ä:Ÿ`… õi;ÿîÀ d=ùþÀ›¿ÀPÖ‹oþ /++;þ|ÏéðV,©/É‚ï:èÉ{‘dkàG2xó½€ÃáÔÔÔœ:uêâÅ‹²Ž0ôÁ=fº‘••5a„¥K—º»»H=***+W®ìI!àc=fºáææ†?@ü®Dòâh4ÚÑ£G;ì#µ |Ç—u`Pzüøq·û@b€w```@"‘`œ¼7ccã®w€Ä ï`Ò¤I|>¿ûýx_p@ Ç è­­íµµÍoÞ´ÔÖ654°jj ¬ÊÊÆúzfSûèÑEîîV²Ž€3â_Èã ºØsüøá ëû-08è1ðžx<ÁíÛÏ¢£3>,26ÖüöÛ©~~TU•d×@A .töôµiÓ•¤¤ç ¥tÈd’>›ÍUT¤ô @ÐcàUT4ž;—qùr6ƒÑ6mÚè… 'M²  Ýù±JHÈÛ´érkk»Ô®³¾¾Z]]³¹¹Ž££©ƒƒ©‹‹…žžZÿ À‰€žâó…·nåã]dCCà`g??GMYÖq ÍÍm?þ˜páB¦œ‘ÏŠÊI$Â;ß>}Z™™Y’•URQÑH"GÒwr2sv6wr2ÓÐ&ðè˜è^UãìÙ‡W®ä46²¦O·ƒ.ò{»wïEhhlc#‹Ïÿ¯ëlcc”*Ú¡±‘•›[ž]š]’—WÁã ttTÍ\]G:8˜Ž©C ÀeC$f:%ÞEÖ×W[¼x’¯ïUYÇ5¸55µmß~=66‡L&!„–,qÙ¾}®Ô=[[Ûss˳³K²³K³²J¸\>¦ìä4ÂÁÁÔÑÑÔÖÖþm†$HÌHQSÓtúôßW¯>zó¦eÆ è"÷¾ÔÔ¿ùæRmmÓ©SK§MÝíþl6÷Ù³ªœœÒììÒÌÌW--ee…±c'Oéà`:nœ žæ 1ðáŸæGGg¤§ëè¨,Yââã3AWºÈ}¢µµýÏ?óçεלÊç _¼¨ÎÎ.ÍÉ)MK+ljj6LÞÞÞÄÑÑÔÑÑÌÉÉŒBçMÀ ‰„jh`ÅÄd?ŸY^Þèâb±|ùäO?µ&‘àeò@ ,.~gèôôâÆF–¢"ÅÖÖÀÑÑ ïL+(e#ï3ø¨aö÷ßEÑÑ·o?SQQœ?ß)(hâðáZ²Ž ¼§òòÆìì’œœÒÔÔ++érrÄQ£ \]G::š:9™©¨(Ê:@º‰|¤Y—.e]¸UVÖàâb±p¡ó´i£á>åPR_ßœ]š–V˜]ZTTO$FŒ 9:šººŽtq±PW‡§°À‰|\D]ä;w ¨TùÀÀ‰NffÚ²Ž ô­×¯[ž>­ÀótAA•Pˆ™˜hâ`Mšd¡¯ï3$fð±`0Z/\ȼt)ûÕ«×®®#.tž:Õf }„X¬ö'OÊ<(=*mb¢éà`Šß–66Ö”u€àc‰ }ii…xYI‰äàhnN“uP`@hkã>~\†?*]ÒÞ·÷™™ƒÄ †¬¦¦¶óç3bcsŠŠêñ.²——­¼Ðë 1ƒA¬­÷ï"[[ë/Yâòùç㔕døX¿ÎÌ|••U’‘Q\SÓ¤¤D±·>q¢™³³ù¸qƤÁûÄ ¥/jΜù;>þ Ÿ/ôñ.2è[¦¦¦eee]ïC$*Q(ºd²¾¼¼1™¬ÝØx•Ë­ê—èÀà¶wï^ñ¸56›{õê]d++½mÛæÌ™3Þ³úZYYÙ† œ{¸?“É6ì fqƒnüòË/’ÿæƒÄ ‡—/kOŸN»qã —+ðõ°w¯t‘Aš8q¢ŸŸŸ¬£CÍåË—% !1ƒÃá]¹òï"®µnÝgþþŽÚÚÊ²Ž ú $f0@ýûo]TÔƒ7òØlî´i£ÃÃgMšdox y˜ÁÀÂã nß~vò䃜œRccÍuë¦øù9ÒhÐE|, 1ƒ¢¼¼1::#66›Áh>Ý.&f5t‘!¢¬;OpdÒ¤]ññ¹+V¸åä|ìØbWב•À÷ÖrkÖ¬qrr}üùçŸ «W¯ð•••!%%åZìÅðpÁÏÏOüiÞ^oB’¨ ‚UUÕY³f•––öO 8HÌ@f*+é»vÝttÜñÕWçÔÔ”.^\•™¹mÍš)::ª² €!ËÝÝýÉ“'l6ÿ˜œœL$“’’ð eâĉjjj›6m’]˜èÊ•+111²j===½¶¶¶¦¦&55U(.\¸!Ôo׆²Aãó…·nåGGg<|X¤££º|ùdŸ ººŒè“'Oæñx?vqqa³Ùiii‹/NJJZµjB(33ÓÑÑQQQQQQqÏž=2ŒsåÊ•kÖ¬qww×ÕÕíÿÖµµµñvõôôNœ8ahhÈd2µ´´úçš@ôŸêjÆ®]7v¬ZõBèÈ‘E™™ß­Y3²2©S§¬­­µµµ÷ìÙsîÜ9SSSUUÕmÛ¶!„BBB–-[†ïÉb±”””žÆç nÜxâïØÀ`ƒ­íw;w&”–¾‘uP¼„PLLL·û2™Ì“'O"„üýý™Læ±cÇB ©©©ššš<ðèèh¡PÈb±äåå=Z[[%''Çb±Ž;F£Ñâââjjj BEEEøŸk|ÃËË«°°033ÓÜÜ|ûöíR 1 kjj:qâžøöêÕ«ç΋aØÆW®\ÉãñÔÔÔ2228…B¹{÷®¨!Ñ©ùúú2Œ'N „ùåñ õõõñƒ‚‚¦L™òêÕ«üü|[[ÛíÛ·ïØ±cæÌ™†ÅÇÇ«¨¨ØÛÛcöèÑ#…ÖÖV©Wo±¨¨¨°°PQQñôéÓâñ0™L …²téÒªªªèèh„Ðëׯ»½þ†ýüóÏ>>>ùùùööö›7oîì,Byyy---L&³¸¸ØÛÛ{„ â1tvÁ%›èö«åçç‡ßMë»Ôía¼·šÆÎ ööÛõõ7øû¾qã —Ë—uP¼³&æÜÜ\ ø\n‡í¢¢">Ÿ¯««{ïÞ= Ãf̘±gÏ Ãèt:™LÞ¿?ƒÁ …---ÀÆÆæÌ™3¢jÏž=+™˜óóóñŸÆÄĘ››K-ì"ÔK—.Ñh4¡Phooùòe Ã|||~øá‡ŒŒ ‰ÔÒÒ‚I$æ””ñÓ9r¤d\.—D"à…qqqæææ=¢R©\.÷›o¾Ùºu+™Lf0ûöí›1cFgWû_bÆ0ì·ß~SQQ©¨¨ÅÓÞÞþòåK‹%RSSE{v}ý1 ³²²ª­­ÅcKJJ;v¬Ô³ÀÞî “Éd777¼†® R›èú;ƒu’˜a(ô> ÃÒÒ W®<;qâ΋3½½Ç§¥m‰‰Y={öXX^ aÊÊÊ!2™Üa!D"‘¼½½ãââ’““ƒ‚‚Bêêê)))™™™†††nnniiiD"±¤¤dìØ±¢:íìì$²°°À7¬¬¬ªªªº(”ÊÍÍíõë×999OŸ>õðð@yyy%%%eddL˜0J¥J‚÷&E§SYY)d}}½@ 1b^hnn^UU5nܸaÆåää@Íf³…BáåË—étú²eËfÏžM§Ó ž>}*:êùóç’Uá=6„Paa!ž2;+”JWW×ÒÒrçÎcÆŒÑÔÔDyzzfffÞ½{¿Á,©C¾>|¸d:::$©¤¤/|õê•‘Hœ1cF|||aa¡½½ý§Ÿ~š””ôàÁ<1K½Ú=}úôÇ?Ž—°Ùlÿ°°°ÜÜÜÇwqšhii‰Ò-ƒÁÈÌÌ”z='yÁ%›x§ E`V6è†ýýwQttÆíÛφ “ rp47§É:®wSQQ±f͇#ë@† •+WúúúÊ: suuåóù;v쟯äååíææÆårÉd²’’ÒÒ¥KÃÂÂTUUœœòòò6oÞ,YÕúõë?Î`0¶nÝŠ?É#µ°¹¹ùòåËË—/ï°rww?vìØÆñ¦¦¦¦¦¦·oß^·n]OÎeÕªUâA~ÿý÷!2™râĉÖÖÖï¾û˜1cÆ’%KœÉdò”)SæÍ›gbbbbbÒÙèЖ©©éþýû¿úê+üc{{;—Ë¥P(l6û‡~@µ´´ô$fooï-[¶ìß¿¿¹¹yÅŠRÏ¢ç$/¸d¿ÿþû;Õ‰ƒÄ >ÞzñbæÅ‹Y%%oL##zyÙÊËÊïUffæÍ›7a¡^—‘‘ ‰Í>{ö¬^¢  pöìÙM›6UVVš™™ÅÄÄ(((„††òùü 6¼yófôèÑ{÷î]°`A‡ª‚‚‚>ûì³ÖÖÖÀÀÀ-[¶à㨠BoÞ¼ùòË/ñd,¾þ—˜§L™"ªÓËËëÕ«W“&Mêɹ¬Y³†Ë円†ÖÖÖÚÙÙ]¸paâĉ¡ÈÈÈõë×;88P(”ùóçãaxzzr8¼/þÉ'Ÿp¹\¼»ÜÙlnåÊ•qqqøÃÖjjj 6lØ–-[§M›V__ßmÌ;wî\¿~ý¸qãˆD¢ÏÏ?ÿ,///õ,zHò‚K6ÑóÚÄ0‰™ètKÔE¾s§€L&Í›g¿p¡ó`_‡1666 þ‹èuþþþ¡ØØXYòþBLL ~""<<¼¬¬ìüùó=?¤¸¸ØÂÂBôµìð±‹BÐwzñ‚Ký¯cPöl€ 55µ?Ÿ“]\üÚÖÖ`çNï¹sí©TyYÇÀ€ÆápjjjN:uñâEYÇ:HÌ §ÒÒ ££3îÞ- ‘ˆÞÞã##ö.2ý&++kÞ¼y«W¯vwwÿzTTTV®\Ù“BÐwúú‚CbÝhnn‹ŽÎ¸|ùQaaµµþ?zÏ™3NEEÊ} @gÜÜÜ:Ì7î!üYÑGvôèÑûH-}§¯/8$fЩgϪÎK¿~=W À||Æ<¸ºÈ 555¡¡¡ééé ÖÖÖ[·n7ož¬‚{äÀsÌ £ÖÖöèèŒiÓ~™:õÀ£Geßÿù“'Û÷îõ‡¬Üz}]¹ÖÖÖ7Ž3†J¥:::îÞ½%2ø˜566â‰‰ÉÎΞ?~``à;wú3†’’---|[æ+Y 4Ðcÿçùóê³gÆÇ?árù~~{÷úA2ÔZZZi4Úž={FŒQPP°mÛ¶¤¤¤¤¤$ü½üàãááá¿S!4jÔ¨ºººýû÷O:µßb …øv¿­Ú4X@ ¶6.ÞEöôÜŸ–VòYvö÷ÐEvìØ¡­­}ÿþýéÓ§9ÒÛÛ;;;»´´Tô|œ®^½º~ýzñ’ˆˆˆ¨¨(|[r…($m©Î %WXâóùÆÆÆÚÚÚ‹-jjjBáO ãK+Šõ¼õ¡¬ÛWlƒ!ìŋ갰KËÍÆÆß®XqæÁƒ¡¬ƒ’|UönwCEEEYYYiiiíÞ½û?þ>|¸ŠŠÊwß}‡aغuë–.]ŠïÙÒÒ¢¨¨ˆ¿LÿÆ£G–——755ýã?0 ¿ÿþ»•••J8qâýû÷‘ÄZׯ_9r¤¶¶öºuë8ŽÔBìíõÄ·uuu“’’:ÄøðaWW×ÎÁß·@£Ñ´µµCCC¹\.þÓääd##£qãÆI=»®I}Mÿà‚z°ˆÅ`Á`0Bt:½³$WˆÂ¤-0ÕY¡ä Kûöí³±±ÉÏÏö왓“Shh(Öù—¶ç­ °ºøO[[û¹séS§ÐÓûÚÑqGddr}=SÖAÉ^Ïó XÝÿûûæMÇ6322444:û³(ùWÿéôéÓïß¿ÿçŸJž]·W ó€‚Og0R*u…(LÚSJ®°dii‡—¼xñß–ú |§Ö‡HÌûçŸÚ°°KË-FFß@¹ƒž'æA±ºž˜ñ•hÅ¥§§ã¯Ú—š˜%ÿªŠ7*õ캉y ÑÑÑyøð¡xIvvö„ Z[[+++Bl6/ÏÏÏWPPÀ0 !ôï¿ÿâ…â‰Y²°Ã;5UUUž={Ö!©ßÀwj}h€e?^íí|ü.²‡ÇÏ))ÿ¬[7%'çûcÇ»ºŽ${sðGbP¬î§¦¦¦««›——סkÒ$ HÆ}ÊÏÏ/((hÔ¨Q’«ûq¹Ü‹/Ξ=ûõë×øê~cÆŒÁêlu¿Ñ£G#‰Õý$ ¥ úñÇÝÝÝñ9ØsæÌÙ³gèÑ>Ÿ/''W]]-:DKK+%%_}¶©©©®®/ýËCòìÀ ³k×.kkëàà௾úŠJ¥^»víàÁƒ7oÞD¯Õs’+,‡‡‡>!´víÚQ£F‰vf±XâË?xëCD?wÛAÿàrù7n<ñ÷?l`°ÁÞ~{ddrmm“¬ƒèz>”-êHÝæóù4MGGçôéÓøØl¶‚‚•+WÞ¼ysüøq6›ýÓO?Ñh´ëׯ×ÖÖÞºuKê=f¢¢¢ììl ‹ï¿ÿ^j!ÖÉ=f Ú››---=<ÁÃ0‹õí·ßÚÚÚ*((Œ1"<<ÜÍÍ _DkçÎjjj#FŒˆ"ùWµC…RÏ®k˜èŒÔÿ:`ÙÇAƒÅj_²$êáÃ" aOžü@&¿õ‚>_xëV~ttÆÃ‡EêêÃæÏwZ°ÀÉÔT[VÑF½¸ìã@^ÝËåæææ¾Óº³¼ëÙÁ²t–}Īªó穬ğsh»uëÙœ9cE?:{öá•+^¿fº¸X9²hêT[ ~³²1ðW÷£P(ï•þÙ0ÀŸïAàÙ³ª Ž67³ù|!Bˆ@@gΤ͘a'ê"«ª*-X0qþ|Ç#h²vPb±Ú««/^0ˆÄ]Xzh¯î×[gè et÷î½øòË3|¾ÏÊ8`l¬Q^Þhccü‰·÷x*õC3Ê'_¿fVU1ª«55MÕÕŒª*FU£¦¦©¹¹ ߇N¿Îá”Ê6Ρ†²è e>çÎ¥oÝzÃB¡P¼\NŽH£):loo"«ØÞ†awï>ß¿ÿ–ªªÒ•+kú¢ ¡«¬¤××7××3+*ËËËËëë™õõLQö¥RåÍÌh::*::*ŽŽ¦ÆÆš::*::ª&ý¿¾ˆ zó…aØO?%:t@@’£<žàŸêml dÛ{ ±ÄħûöÝ*.~C `ªªJX!‹Õ^Ròϸååuuͯ_3kjšx<BˆH$iÐh*ººªvvF&&š&&š4šŠ®®Jg­ge}Do0 X˜"OzéêÕÇ¡În5´¶rŸz{ï×ÈÞ]{;ÿܹô#Gî××3Bøk¦š›ÙOAÜõ±ïÔýµ´Ôõò²uõõÕ:L\€Aó€ÓÖÆ]±âÌ_ý+vsûÿܹ‡91s8¼èèŒÈÈ{ -øó¢aVSÓdfößÓ\}Ñý€Aê­ÄÌår/]º„¯ d‚Ü=[Q[ûÖ¯ƒ&€$"<É …XvvéÁƒGЬ………‡‡›Í=u*íС{L&§CJÙ¿ÿ6‘HÀ§bÕ×7ãSÛH$¢ŽŽŠº¡¡º““™¾¾ºš¡¡†ºŠŠ‚d%}áøñãýÓÐÇ£¤¤ÄÌÌLÖQ|‰ ë@À4þü%o%æ›7o.^¼¸ã‘ÉÚjj³ „a< ã…< ã … ãcøx †ñ0¬](d¯_ÿFÖ!¿…L¶{÷•“'ÓZZ8&¬‰#‘YY¯lm ­­õ¦L±Æ3±ºŽŽªœœÌþa``@"‘dû<ÒP5دºÿ~}}½¬£CÓøñ>ßz\ óQJJJÿF†ˆ?ÿL9{¶ŽDR":½5Ž“——[»vÊ·ßNë¯Ð`Ð@£ `°“—'°Ù&˜’Ér!99RgÓ¯ø|auuSÿFƒLþ½†DB--é7n<äñÕ—=~\–•URW׌RP s¹||F›@ ,/ou¼0Ab½L&gKyxxܺukñâÅsçνpáÂÝ»wgΜyêÔ)„Ðï¿ÿ¾wï^|O6›=mÚ´¢¢"„Pzzú²e˼¼¼,Xp÷î]„†a×®][¼xñŒ3Ö¬YóäÉñ‘Þêêj‡Ï›7ï÷ßçñxR E;‹ˆo'%%-Z´H¼s¬  0þü¤¤$©U}õÕW!ooïõ°X¬={ö|þùç~~~GŽár¹øuHNN^¼xñœ9s.]º„‘ñå—_N›6ÍÇÇçÂ… =¼¤ééé¾¾¾---¡{÷îs8@púô退€¹sçîÞ½›Åbá;óùü£GΛ7oÞ¼yGåóù}t.’¿2}í=Ÿc~ ù4| IDATüøñ‘#GV¬XqâĉŒŒŒ¨¨¨Õ«WŸ;wŽÉdº¹¹=|øP  „>|¨§§gnnÎáp¶oß>wîÜK—.ïÝ»—Ãá$&&þñÇË—/?wîÜ¢E‹vïÞ-ÙÐõë×wïÞýÓO?eee‰òœd¡ššZhh(þSÑ6‹Å¢Óéæææê477¯¨¨ZÕáÇBqqqùí·ßÞ¼ysôèÑŸþ9''çâÅ‹xùßÿ}èС•+W;v¬¥¥¥­­íûï¿·°°ˆŽŽ^½zõ‰'šš:Î=æp8ì·!„>ùä“ñãÇ:tˆÁ`:t(<<\AAáÊ•+<ؽ{÷¯¿þZYY×påÊ•ÚÚÚcÇŽ8p 77÷ôéÓ}q.Re]}'ô†÷LÌJJJ^^^¡ ())M›6 !ÔÒÒbkk+''—ŸŸJNNöòò"<Ã06›M¡P¦M›– //õêÕU«V¹ººjjj:99-_¾\²¡Õ«WZ[[/_¾<))©³ÂaƉ†¦Å·¥"þoyc©õwÀçóïß¿¿nÝ:===33³%K–ˆöœ;w.•J:u*BˆÉdR(”¨¨¨MMM†jmmíPÛòåËg¼ /_·n]nnnhhèçŸnee…JLL\ºt©™™™©©é¦M›lllð=oݺµ~ýzfff¶råÊììì¾8©¿².®*€^ñž÷˜•””Brrr¶BD"ÑÕÕõÁƒfff?þöÛoBÊÊÊ¿þúë•+WNŸ>=räÈ 899ÕÖÖŠwg¥¾æÞÐÐß066~óæM…’¨Tª††Fqqq‡7‘9²çU1 ¡P¨¯¯400í©¥¥%~îrrrUUUû÷ïg³ÙRk‹ŽŽ60²Ž2•J5kÖÙ³g8€—Ô×׋Â31111ùo&s]]èÀaÆõŹHý•I­@/ê“Wrº»»§¥¥ýõ×_£GÖÖÖFµ·· …ÂíÛ·'$$̘1cëÖ­---ZZZ¯^½UVV&YUUU¾QYY©©©ÙE¡TŸ}öÙü!¾š‡Ã¹xñ¢££cÏ«RWW'‰µµµøÇšš<‡!„‚øžíííÛ·oŸ?þñãÇ¿þúë.“ôúõëk×®?‚FijjÖÕÕáÛÅÅÅ¢¡lUUÕèèè””””””„„Ñþ½~.’¿²w:#ï¡O³@ 8{ö,>Ö"aaaûìÛo¿åp8S¦L ÂÇ];"„šššöïßßZßVRR:~üøéÓ§=ZSS£§§7eÊ???2™,µ~‰4zôhŸ?ÿüS<Œõë×GFF®ZµŠL&úé§x£’¨TêêÕ«wîÜ©¨¨¸`Á‚)S¦lܸ122R|Ÿµk×v8*%%åúõëMMMrrr6løå—_FÄápÂÂÂ8ÎĉEË.[¶,22òË/¿$“'O^¹reCCC¯Ÿ‹Ô_™Ô=ô¢¾ZöñäÉ“uuuß}÷]Ïéðv*©/«êÅ7X œ—a}¸r.ýõ×?ü€u½â#€.õþP6—Ë­­­½uëÖ¬Y³z½r`hëýÄüòåË•+WNŸ>}ìØ±RϰaÃfϞݓÂ^¬Jç¹¾Ê!Ê€7Äß• ñeýýd 8˜AŸ«¯o~ü¸üÑ£Ò¬¬’‚‚jO€26Ö„Ä ’ 1ƒÞÇfs=*ËÎ.ÉÌ,ÉË+om剉ˆ§dœ¡a,±ƒ$fÐk¤¬üÉô鿾xQÍã ˆD"B˜Pˆ!„„BL(ü¿¬,'G46†Ä R@b½¦½ST´}ú´¹§ø›P; ‘ˆjý o%f‰„_Èœœš¦f@'ÿxê8óø …ÂŽ‹Yõ3‰|ñâÃnWVÒ Þ]–Äç ££3=*30P70P74T72Ò00P×ÕU%“I½ÌÇ?ýôS|Ái0¸„……‰–uà6nܸoß>YG4 …rÿþýI“&õpÿ·þèÏœ9óêÕ«øRÊ@æìÂ…âG:]>KœœœÂÙ³'åå{-«½É“||&$&>ݽûfyy#‘H:váäÉ# TQјž^\SÓÄåòB$‘FS14T74TÇs¶Á9›J}ç7uWWWs¹ÜØØØÞ97Ð_~ùå©KÚ Leee'Nüæ›od¸üýý«««{¾ÿ[‰YAAÁÛÛ»·Cïoþ|±eË„dz!“I³g]¸p~?†Ö"‘0{öØ™3ÇÜ»÷b÷îÄþ©#‘âß°Ákøp-ÑG‡W_Ϭ¨h,/o¬¯o®¯g>}Z™W]Íàó…! ENOOÕØXSGGEGGÕÄDÓÄD“FS16ÖPTìê%Þ~~~}tš \¾|YÖ!¼###øš^÷˜º… --u—,‰jiáˆÏjÇã ||&ôs`Ý" žž6Ÿ}6*9ùž}· ªH¤ÿzÏA_ÿ­{Ì d<׺ºv¬§¹¹­¼OØLkÖoïñŽŽfD"AVqvÜž5kÌÝ»Ï÷ï¿¥ªªôáuÒhÊ4šò¸qÆÊÛÛùUUôšš¦›7“ÿù§Óñ˜ 1ŠÜo¿-pp0ípË™ÏüúëüÊJÆåË9>>‡TUgÍãë;ÁÁÁ”@Xš@ Lj;uªmŸ¶"//7bmÄZmm^Ÿ6}ú™… /_þJYYጌ4Üܬ.tŽÉÊÚ¶fͧ¯æÎýÝÑñÇ]»n¾zõZÆÜŠ‹‹{ñŸG1ŠŠŠ“&MÊËë|t§x‹êêêþþþoÞôè1Пz÷kÆb±BCCMMM-,,"""8NoUŽjmmݸqã˜1c¨Tª££ãîÝÿ¿½;kâZ~B¶ö„ÙAh„Xz]ë…V-Z‘@µŠ­v¹rk‹¢è‡>-¶½÷öëÓös·¬e‘ЍWë•¶ÈV–ˆm ‹ì(Kd›ïñÉd@Ä@‚¼¿‡?&ÃÌ9oNNò&gfÎ|"“É4X>nòß,‰yêyñE· >pt´ Ñ(Tª^DÄlå¿ÌßñÏ?ïÌÏÿèõ×9ÙÙ¥óæ}²páÁ¯¿¾ÞÑ!ÐbÌ@S ÛÚÚÚÚÚx<ž‡‡Gtt´foçÅçó­¬;o¯±µµõêÕ«ÍÍÍ[¶lÑ`uãÓ×7pæLѪU_q8ûð“ömÙ²¥¼¼üìÙ³MMMÇÏÍÍMHH@D}c„Ba```qqqjjjyyybbbzzzXXØD\¦;ùoÁÀÔ$ˆ×®=jo¿µ¦¦}¤märEqq]BB†§g¢½ýÖåËÿ÷èÑ›ÝݢɌS‹222´ÞÃkkk5B¨¶¶Vù°££!ÔÑÑñì%+ãð° LMMŸ½ºÑq¹\.—«¾^,–äæ–¯YsÄÑq›½ýV;»­¶¶ Mt<£)ÚɤÙnfffVTT¤|xóæM'''MÕ²}ûöyóæÉd2å‘H4cÆŒC‡=cÉÃLþ›eô`222Æ^übžªLL NÚXP°ÓÃ5Ò6zz¤à`×O?âñöŸ<¹ÑÆÆtÿþóûÞ|óXVV©X Sb!„‰D:qℵµujjjZZš‹‹‹©©éž={Bñññ7nÄ·‰DFFF¡¼¼<6›m``àêêš––†R(_}õ•‰‰IHHH~~¾êx>ü•››ëååÅd2ãã㇆†W¢ÇÇÊF7£R©4ÍÔÔ(•JX,“ÉLHHJ¥„qŽ^ø‹/¾ˆ²±±!¬‘L&3™L|ùÂ… FFF¶¶¶©©©øJõêF lì$YY¥kÖñôÜùî»iÿùÏŸ2™\¡xôy7UL¡nÆ`0¾ù曇âçÏŸßØØˆÔúFooïúõë­¬¬¶oß>88ˆrýúu''§_~ù…ðuOOOONNÆg™ÄïØ±ãôéÓ#Å£^ŽjE‡°é†™ü7Ë3×70Uõõ df–¬[wÔÁáC/¯[¶¤ÿôSµT*×v\bŒ¿˜B111àØ±c¡¨¨(@pøða„ЃnÞ¼iii)•J1 KOO÷õõU("‘H__ÿСCmmmǧP("‘èðáÃL&3''§µµõâÅ‹¡a_®ÃÂÂjjjŠŠŠÜÝÝ÷íÛG¸ðÞÞÞ£Gâá©.#„*++…B¡P(liiyï½÷6lØ |"\µjUSSÇãp8‰‰‰„qª~ÍWÿî¯þ‹¯Q üùçŸ .LIIÁ0L Ðh´¸¸¸æææôôt„Pgg'au„þŠà¿A%ÙO?U¿ÿ~š›[‚½ýV'§m¶¶¨ÿM•_ÌS¨›]¹rÅÞÞ^__?44ô³Ï>khhÀ×ë±±±‹/®««ãñx~~~ÊŠ–,YrãÆ ‘H¤þº÷ôô „ººº†5έ[·,,,{&FÔT+ºté’zÓaÚx³Œþê?Õ/fHÌÓT[[ïÑ£7—/ÿ_[ÛöîÞS\\§í 4l쉹¼¼Ã0|VmÕåÚÚZ™Lfccsýúu Ö.]šššŠaXww7•JýüóÏ{zz …P(”Ëå¾¾¾ß~û­²ØS§N©bòxþIÔÛÛÛÞÞN'¾»L&£P(O5±¾‘‘ÑÛo¿””ÔÙÙÉ`0¢¢¢233ÃÃdž†Nž<9R³XXX¨6zENN+«E‹Öef–Ý¿ÿJ%4-B¨®îàè“¥O´¨¨(”£#Ý Ã°Õ«W{{{ãéŸD"½òÊ+G޶‹Å"“É|>æÌ™¡ºº:{{{ü_Êo„¯{llìþýû.\ˆfމ‰Y¾|yjjêG}„ï¥Þ3Gê?ÊŠÔ›n˜É³<#8ù <Âf;îß¿²¢â22Þõôd÷ï_Y^¾ïäÉÎΖŸ|r‘Ãy4ßçÀÌ÷ ã‰<+êûå—±ÿóÙgQ¡mÛ~àpöÆÇŸ¾zõÜüž cÃ`p¹A\nP{{ß… Uyy•o¾yŒÅ2}íµYá᳂ƒ]µ Ði & 1Ú-ƒÄ 4O9ßgmmÇùó99åǸ»3W¬ˆˆ˜íâb­íÖH¥òÎNAkko[[_{{_KKO[[ßýûÝ--==="…ýúë.mÇ€–AbÈÃ¥:ßçwßþãW<=m¸Ü@.7˜ÉœŒù>CCC'¡0 #uv2 ¤RªLF•Ëÿ;{‰„!DR=9DB7®¾s‡7þ|-Ä:^ÐÍ€ÁYÙ`òÈåŠÂÂ{YY¥—/ß‹¥Ž3—ôúë:]"ªkllLLL”ËGœfL™ŒTYÉÓlštºÔß¿!9Á¡iFVVVVV–¶£:L&§¦¦:;;q{HÌ@ ††dw³³Ë._¾­§Gš?ß+22ðÕW_ RŸçɧ-©T~äÈü7‰„F¹•J‰‹›»wïŠÉŒ ‰hS_ßÀO?ÝÉÎ.ûå—ZÃ04tÊÌ÷ žV}}×öíÅÅ|ü6ðêH¤wß]´iÓÂÉ9Æ€Î‚Ä tBkkï¥K¼ÌÌ’êê[[³¥KÙQQA/¼@p70ua–]¶gÏb±„ð§3…B–Éä3fX¹Î rñô´ÑÓƒoi`zÄ t >ßgvvYcãC|¾ÏÈÈ gççs¾Ï驳S¸îÙ³¿‘Ézrù/s·³3+.Þsï^gii}I ¿¨¨®¹¹ÇÐæçgÏf;»Ìëan®+óÊ0q 1]¤œïóܹòžž~|¾Ï•+9––tm‡4ãúõß2<Édr„…B~ýõ€/¿|ìž¾}%%õ%%õ¥¥õÕÕÍ æìläìäâéÉ‚C้è4‰DvóæÝ¼¼ÊK—xCC²—^rŒ \¶l–‘‘6ïô4B üøã¼´´[ Ãû÷G¼ùæ_FÚ¸¿¨¼¼±¤„Ïã5× ƒÖÖ&þþNl¶Cp°kp°«¾>\ü ž˜ÁÔ  ^¹rûÂ…ªüü?(rh¨oddàÂ…Þp"÷TWVV¿uëuuׯ'øøØe¹\¡ñ..æß¿ßM¥’}|ì‚‚\‚ƒ]^zÉFVÀ”‰L1==ý/ò²²JËÊÌÌŒ–-cGF¹À¨æÔ%•Ê«ªš]Æ·;Œxƒç $f0UÝ¿ß}þ|Å™3Å|~—ƒƒùŠœ7Þvscj;. MýýCwî´”–Ö—”Ô󱉉¿¿Spð£ââne#Þ@AbÏ üDîìì²ÜÜŠþþ¡Ù³gp¹A+V˜˜ÀÝŠB*#Þ<ÞýÊÊ&©TÎb1ðŸÑÁÁ.~~pÁ4ИÁóF(¼t‰÷ãå¿þZkhH]²„ýúëœyó<)¸û8xD}Ä›N×p†o  1ƒçVG‡àüùŠsçÊ+*š¬¬èË—¬\ÉápœáT  JuÄ»¤¤¾©é!…¢çêÊ v r qwp0×vŒ`zÄ žmm½/òòò*KKëY,Ó×^›> Nä„`Äh$f0ÔÔ´çåUæä”××w9:Z,_3ÇÕÕZÛqE8âíãcìì2gŽ+ƒa¨íÁs3˜Žx¼ûYYeyyp"7#õo2YÏÍíш÷œ9®NN0£;Ð HÌ`ú’Ë¿ýÖ z"wx¸ÿªU³áN à‰::úx¼æ’’ú’þ°o6Û! Àæ¤ã‰44$+(¸›]vùòm‰´`×k¯ÍzíµY††0#7x2Õï’’ú¾¾ccý™3x»˜ši;F0•@bà¿ñ•+Õ.Tݸñ‡±1-,Ì/<ÜÑ"¸Ô Œ‘êˆwii}cãc#Þl¶£——¶cº3ÚÛû.\¨‚¹Á3"ñÆo/ä#Þ€$fFS[Ûqþ|~"7ÌÈ žÅÀ€¤ººYuÄÛȈæëkx¹˜™Áˆ7@3cD4#w ‹eªí¸À”¤:âÍã5×Ô´#„à¦X‰€§ >#wx¸DÄl 8‘Œ_G‡€Ç»¯:âÍdšÌšå„ÿ’ö÷w¢Ñ(ÚŽLHÌH$?üðÃàààH )þüSxû¶€Ïï§PHÞÞ&¡¡Løôü¯°°°3fh;ŠÉóÄ>3Fb±¼©iàþ}ñýûâ–±L†è9:9:Λg ?£§E‹cGHÌÈÉÉYµjÕX¶ÔÓ324ôÔ×wëéÉÅ0ÙD6…ÄÄÄ|ÿý÷ÚŽbòŒ½ÏŒ‰D¦R™Tªf§§§ÿða¶fËŠB¡H¥Òñì¨ñPxÈd2„|m·¨¨(¼ §è3@Ufffttôøö…«3‰Ð!˜‰Ð!˜ÐQ÷îÝÓàµ1$†††ùË_*++5U8Ðï3÷îÝ}Íõ÷÷ïØ±cÖ¬Yt:=88ø“O>™ˆs'®“k¶aŸ3ÓEaaa[[[[[ÇóððˆŽŽ†SˆÁ$ …ÅÅÅ©©©åå剉‰éééaaar¹\ãuMt'çóùVVV,\.Àtammmcc¡9CIDATƒ²±±ùôÓOY,VWW“ ó~ƒ‰•’’bmm}ãÆ 2™Œòôô|å•WüüüŽ;¶yófÍÖ5Ñ\¡P<|øPS¥~10~$éĉ>>>ÖÖÖ©©©iii...¦¦¦{öìAÅÇÇoܸßR$UTT „òòòØl¶««kZZBH¡P|õÕW>>>&&&!!!ùùùªãfø0Znn®——“ÉŒ"\‰seüJ¥Òh4SÓGs}÷öö®_¿ÞÊÊÊÁÁaûö탃ƒ!!!ÿú׿BÝÝÝzzzÛ·oGÉårssó‹/NLsN S·Ï £BH*•&$$°X,&“™€O¯‘žžžœœŒgeœ±±ñŽ;NŸ>=RÕêåàÿ½~ýº““‡Ã!l¥a†urÂØÔŸÅè­ñâ‹/"„ðÜ?0€šŒŒŒ±¼;B111àØ±c¡¨¨(@pøða„ЃnÞ¼iii)•J1 KOO÷õõU("‘H__ÿСCmmmǧP("‘èðáÃL&3''§µµõâÅ‹¡ÚÚZ<|!,,¬¦¦¦¨¨ÈÝÝ}ß¾}„+1 ëíí=zô(žê2B¨²²R( …–––÷Þ{oÆ Ê'»xñ⺺:ççç·oß¾”””eË–a–››Ë`08†aeeeýýýOl.—ËårŸ¶Ù§´ç²ÏÔÖÖ _C†a\µjUSSÇãp8‰‰‰===¡®®®aípëÖ- eÀʘñeõrðÿ.Y²äÆ—.]Ro%ìI\½LÂgA’ú‚¦ú!HÌû‡lyy9†a‰dØrmm­L&³±±¹~ý:†aK—.MMMÅ0¬»»›J¥~þùç=== …B(Êår__ßo¿ýVYì©S§Ô?dy<ž26www•£‡ªŠN§ÿþûïø¿$ ™L®®®Ææä主»—••Ñét‰Dòá‡îÚµ‹J¥öôô|öÙgK—.KBbÉÔê3#%fÂ0 óöönkkÃ7¾zõª¿¿?ž˜//¯E‹]¾|ùîÝ»»víB1™Ì¡¡¡®®.„ÐñãÇûúúV®\©l@õr†!«·ö¤N®^&á³ iXà …BMõB˜  ©Y ÃÞyçCCCå§^¸››FóööÎÍÍÅ0L"‘¤¤¤¸¸¸Ðéôün‰Ã> Ž;æììleeµe˱XL¸{ü˜êò°Ï,¹\Î`0êëëñ‡ÝÝÝk×®µ´´´µµÝºu+^Too/…B9pà†aýýý4mÇŽcl@HÌ#™B}F*•~úé§^^^øIËIIIªçý©‡„a˜@ ذaƒ¹¹¹¥¥å¦M›”Û‹D¢mÛ¶ùùù¸¹¹%%%-X°¿ÈøÀfffnnn¹¹¹ÊªÕËQ?¸«ÞJ£wrÂØŸ…zHÊÚ¥Réܹsétú_hHÌhس¼©†Ùµk×êÕ«Ÿj—aŸA„盌ý$­€Äü,¦CŸºuëÖ³”0ŽVšLÏÒ`‚&Êàà`kkë‰'Μ9£íXÀÔ0}ú Fï ‡ç¾•àä/&Jqqq```\\ÜÂ… Ÿ¥ƒ¡>AáJ0ÕAŸ Mµ’Î"a0Y.j233a*ég…ÊÌÌÔv “ú Põ,ý~1:3 C 1:3 C 1:®c€~ïØ1Þ˜zã7´¤‚>†Q½õSË¥ 088xéÒ%å´û`fÏžíêêªí(&ô0 ‹Åš?þ8v„Ä è8Æ èHÌ€Ä èHÌ€ùÓiø÷³¾ŽÔIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x63.html0000755000372000001440000002422412502417164023643 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- c -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TCPConnection.html0000755000372000001440000014363112502417163026640 0ustar robertousers MySQL++ Reference Manual

Specialization of Connection for TCP/IP. More...

#include <tcp_connection.h>

Inheritance diagram for mysqlpp::TCPConnection:
Collaboration diagram for mysqlpp::TCPConnection:

Public Member Functions

 TCPConnection ()
 Create object without connecting it to the MySQL server.
 
 TCPConnection (const char *addr, const char *db=0, const char *user=0, const char *password=0)
 Create object and connect to database server over TCP/IP in one step. More...
 
 TCPConnection (const TCPConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~TCPConnection ()
 Destroy object.
 
bool connect (const char *addr=0, const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool parse_address (std::string &addr, unsigned int &port, std::string &error)
 Break the given TCP/IP address up into a separate address and port form. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for TCP/IP.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

mysqlpp::TCPConnection::TCPConnection ( const char *  addr,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over TCP/IP in one step.

Parameters
addrTCP/IP address of server, in either dotted quad form or as a host or domain name; may be followed by a colon and a port number or service name to override default port
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in

BEWARE: These parameters are not in the same order as those in the corresponding constructor for Connection. This is a feature, not a bug. :)

mysqlpp::TCPConnection::TCPConnection ( const TCPConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

bool mysqlpp::TCPConnection::connect ( const char *  addr = 0,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

bool mysqlpp::TCPConnection::parse_address ( std::string &  addr,
unsigned int &  port,
std::string &  error 
)
static

Break the given TCP/IP address up into a separate address and port form.

Does some sanity checking on the address. Only intended to try and prevent library misuse, not ensure that the address can actually be used to contact a server.

It understands the following forms:

- 1.2.3.4
  • a.b.com:89
  • d.e.fr:mysvcname

It also understands IPv6 addresses, but to avoid confusion between the colons they use and the colon separating the address part from the service/port part, they must be in RFC 2732 form. Example: [2010:836B:4179::836B:4179]:1234

Parameters
addrthe address and optional port/service combo to check on input, and the verified address on successful return
portthe port number (resolved from the service name if necessary) on successful return
erroron false return, reason for failure is placed here
Returns
false if address fails to pass sanity checks

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ResultBase__inherit__graph.png0000644000372000001440000002234512502417165031261 0ustar robertousers‰PNG  IHDR‰»zõøbKGDÿÿÿ ½§“ IDATxœíÝi\×Úð¾ÈV6… â.z-µ¾-"P@´‚D{Y´X© ¢­nP/¸€,R\åU«¢WkA\ @¶y?ÌûËI (™çÿéädrÎ3'‡‡™ÉÉ„‚a’Q":r€Œ 7Èr€ŒhD O^½zµjÕªŽŽ¢òÊÎÎnß¾}DG!(ð9]Ï¥§§ûøøxyyK¯_¿.**‚¿¸‚ã¦O–žžNt@.áÿÛˆŽBnÀõ&Anä&Anä&9óüùs …"ÃÛÚÚ"""F¥¥¥5a„mÛ¶ñx¼þŒD´Š4½ïâ“b$ŸÓ)´ÖÖÖ‰'íØ±ÃÒÒ²¬¬lãÆùùùT*Urûªªª‰'666"„tuu×­['ónß¾maa!óf%õþ€Þ€Ü¤Ðbcc ¯^½Šg¢áÇùå—ÇŽ[ºt©äöàýû÷xÙÀÀ ..Næ!˼YIý°/ 7àœNö(Jrr²¡¡a\\\JJŠ………ŽŽÎÆB¡¡¡AAAø–,K]]ýáÇ¡ÜÜ\GGGUUUKKË””„@ HHH°³³ÓÒÒšAÏsSqq1†aG¬\QQÁãñŒ¯^½ŠaØœ9sâââ0 kjjRVVÞµkWss³@ hmmåóùöööÇ6{âÄ ÉÜTZZ*ŒÍÚÚZjeWqv•›îܹc``ÐMûx°Ìáp¨TjYY^Ÿ••…wŠ*,,Ý÷ÎÎΧOŸ²X,>Ÿýúu¼R,7uõï³¹¹ÙÜÜÜÑÑO†1"++ /ÿùçŸÂ²­­mmm-^ÎÏÏ=zt_ì‹Ô·¬«¡ö ¹©çàœ®Ohii!„”••ÅÊ!*•:þü¬¬¬ÆÆÆ‚‚„РAƒ ‹ŠŠÌÍͧOŸ~óæM%%¥ªªªÑ£G Ûttt”ìÈÆÆ/ØÚÚ¾yó¦›JIºººÆÆÆ%%%bõ%%%ãÆëySõõõ|>ßÊÊ hmm-ÜÒÔÔTtßétzyy¹»»û¸qãŽ?.µµŠŠ ±9*ŒvÙ²eOž]PP››‹ ذaCYYYYYYHHÈË—/ñæÏŸÿã?¾|ù²´´ÔÝÝýÀ}±/Rß2©[‚ÏÔïg‘r¬ç×›„ÿ·»*/_¾\MMÉdŠ6neeE§Ómmmsrr0 ãp8±±±ššš“'O>uê’¸Þ”˜˜8tèPƒÕ«W³Ùl©•ØÇ×zEˆ±X¬°°0uuu{{û-[¶´··wÕ>—Ë:uª¦¦¦X;MMMúúú&&&?üðÞ©Ô}ÿõ×_õôô|ðàA___ƒÑ“ëMû÷ï5j‡ÃÁ0,;;ÛÄĤ©©©££#<<ÜÔÔTGGÇ××·¹¹o„Éd.Y²dРAúúúË–-kkkë£}‘|Ëd2FêÈpnEEEùùù}ÒKÄrŠØÃn*? ›"IörÓ'µ—ý­££ãíÛ·ÉÉɧOŸ&:È ®7õ·»wïŽ?>00pÆŒ½iG[[;88¸'•2l_N ¤}QpOÞO€ß·F |˜?ŸŽ›d¹ @F›d¹ @F°†à“ýöÛoD‡äÒƒˆAž@núfffT*>î ¦§©9±¥å2Ñ×!CˆAnÀ 3QQYÇßÌÎ^íädIt,@îÁõ& <ž ;û>B(;Î\€ @n²qýú_L&!”™YÌåòÿv{º¹ ÈFVV1~ßñööÎÿýß¿ˆÈ=ÈM@ÚÛ9/>âñø!*•’™ §u · 7((x"<ãñ—/?nkë$6$ ï 7Èȸ/ú³¸<?/OÊ„è9ÈM ·ZZÚ ÿâóE£P23ï 7Þºt©T¬F \¿þ¬¹¹xÀÀ¹ ôÖÙ³÷)+xÏŸ$Y @An½RW÷áîÝ*Éo`–‘ñBBä&Ð+¹¹%Tª”Y$`÷↓­méÿÀÀ¹ ôJfæ|Y“$ C¹¹pZ>܇ôŠ’21ÑÁË<ž £ƒ«©©"|V9Ï÷!2óûï%Ë—Ÿxûv7Ñ€Îéd¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›d¹ @F›dDÁ0ŒèKddäÎ;‰Ž¢O()©++tv¾":>A§Ó¯]»6eÊ¢Q4¢P8ÕÕÕÿøÇ?¼¼¼ˆ|šÍ›7×ÔÔ…ÜDƒ1cÆ ¢£ŸfóæÍD‡ Xàz€Œ 7Èr€Œ 7È®…+¢ššš… ʤ5a™N§ÛØØ¬]»ÖÚÚº÷-w§hšššãÇ_³f®®nï{äÇM@233333“’’ÌÍÍ7oÞ,Ûusµµµ_ýµd»víjhhØ·oŸ »d¹ È€®®®žžžžžž¹¹ùòåËß¼yóáö/˜L¦dúúú#FŒX¶lÙ½{÷dØ ÈM$åââréҥŋóÍ7§NÊËËóõõ;wnrr2Bhÿþýñññø–l6ÛÝݽ¢¢!tûöí   777??¿¼¼<„†aÙÙÙ‹/ž3gΪU«>|(zBTSSãâârëÖ­€€ýû÷s¹\©•ÂE_(5r*•J£Ñ444ð‡<ïðáÇæñxRãì¾ñ•+W"„æÏŸßUƒ ÂËwîÜùþûïÝÝÝ===O:…WJv×U`€< 7‘׃:´lÙ²£GÞ¹s'))iÅŠ)))L&súôé·nÝâóù¡[·n™˜˜X[[wttÄÄÄ|óÍ7gΜ ˆïèè¸pá¿ÿýï¥K—¦¤¤,Z´hûöí’;wnûöíÛ¶m»{÷®ðïY²RWW7<<V´Œêèè`³Ùl6ûýû÷III®®®ÊÊÊøSµµµGŽùå—_Š‹‹;&5Îî‡âàÁƒ¡¬¬,±ÛÛÛ_¿~˜˜èêêŠjooŽŽ¶±±IMM]±bÅÑ£G[ZZºêN2°Ï|Ÿ@߀ÜD^>>>êêênnn!???uuuwww„Pkk«ƒƒF+--E¸¹¹Q(.—‹a›Í¦Óéîîî¹¹¹***™™™Ë—/wvvÖ××wrrZºt©dG+V¬077·³³[ºti~~~W•sçÎÅŸ-#„–.]:gΜ9sæ,X° //ÏÇÇGøÔ¥K—Ö¬YÃ`0,--ƒƒƒïÝ»'5ÎO¼Ç¹sç.Z´¨¼¼|Ö¬Y!:ž””ª¯¯Ï`0Bmmm]u'اÆú|NG^êêê!&VF)))9;;߸qÃÒÒòÁƒaaa!--­Ý»wgdd;vløðá~~~NNNµµµ¢™YZZJvdnnކ ÒÐÐÐMeWRSSÍÌÌBÉÉÉñññÀŸª««óôôn©¡¡!5NÑÖzr]´ÇŒŒŒýë_gΜ¡ÑhoÞ¼Ùµk›Í¶±±Á·ìª;ÉÀþ¶SП 7É«3flÙ²eذa#GŽ444Duvv ‚˜˜wõêÕ¨¨¨sçÎTVVZYYᯪ®®–lêÍ›7xÎzýúµ¾¾~7•KEEÅÝÝýüùó†Q(„ŽŽÎîÝ»ñ<Âb±ššš¤Æ‰¿œÏçS©ÔÆÆÆžƒŠŠÊܹs[ZZÔÕÕcbbbbb&OžÌår/]ºÔÕ°hiiIÖóNA?€s:yåèèÈçóOœ8Ÿô!„(JDDÄ7𦢢2{öìC‡ݺu«©©éÞ½{¿ýö›dS 555ýõ—ðÂÔʶ¶¶ .àÏŠ–Åhhh´··³Ùlü¡³³óÑ£Gëë뫪ª"##Ï;'5NMMM„P^^^{{»èu%QÂ6B---MMMMMMïÞ½;}ú4ƒÁÐÕÕår¹<F£q8üúQ{{»Ôî¤öÉïèKpÜ$¯”””¦M›våÊ•iÓ¦á5t:ýǹI.=}ú488xöìÙ£GîM;óæÍëI%ý Îéú› Ïé@‚sº~ÇM2‚Ü #ÈM2‚Ü #X{I€G‰~‰ŸœZg§.•ÚI§·ö]/º¦¤¢ÒB¡ú® 7õ7’ÿjf{»rS“Js³*“©‚aÈĤÍÒ²¥ïº{òÄ ¹Y…BÁtt8zzƒu¨©‘ô>J666bßI} ÖÄfsþø£âÚµ§/–64´R©J!¤§§yýúz=½>ü‚~uuãÌ™ñ< Ô””±±Î—_:Ìœi7eŠº:½ïº$¹IAaöøñ›üü'—/—=}ú!D¥*q¹|áJJ”ÌÌ'')÷T‘­ÜÜ’àà¢5ÊÊT>_€²³31ÃÖÕõãÇ[()Qú:@*›—Ëß±ãbNÎÚšfM‰ÏÇ$番´dÉÔØXþ )8øÄåË¥\®ø%' Q©J<žÀÐPËÃc\tôÿ@†R›Îû÷¬ b;:xIëi4% ƒ¼¼•~ºÉd²g̈khhå󻚢¢Ÿ”•©ý ¬!P8úúšÛ·/ t}ü¡¤¤”˜Øo‰ !¤­­vìØR„ºŒ‰J¥;‰I¡@nRD>>¿új&åݧPPLÌ766FýÒ¨Qƒ#"fK=eSR¢¬]ëêè8¸ŸCÄ‚s:Åd²§NÝÖÜÜŽ_uÆÑhÔéÓGüûßK)ÝVõ[°àÀƒÕ¢—äi4%kkÆ•+ápФhà¸I1™ë×g´¶vŠþgRR¢hk«ìÙãKHbÂ8x0@U•.F}÷®uñâÄúzf7¯ä&…sõêŸÎÎÛJJ^ef®Z¹r¦ð4 ÃPBB€¾¾&±ëìÙã+̘ Ú¼ù›””e/_¾Ÿ6m{jêcý r“ápx7f/Z”8}úˆ+WÂÆŽînmmD£Qi4ê·ß:͘aKtŒhöì‘^^h4ª²2uêT›… '3¤  ÜÛ{bddzpð‰––v¢cý®7)ЧOß®\™RWÇŒ÷š7ï¿wË|ö¬îË/12Ò¾v-RCã“ò/°X3gîøð¡ãÆuFF:ÂúK—GD¤©ª*ïÝë?eŠu7-€rÓÀ‡aXRÒÍ­[sÇŒº¿¿™Ù ± ŠŠ* µ¬¬„„'ÕË—ïÛÛ9vv&bõ¬°°3:oÜ8N‡/„X›¸úzæÚµ§nß~¾qãÿ:€uÕ†…ä&¹×ÖÖùã™™ðeïžÃWlÚtnèPýÚÙ™øL›äÛýû/BBNvvrwïö%Ã7NH¢¼¼.$$µ¢¢><VÈ+ÈMòŠÏìÙ“·woþŒ¶¿þêk`@äwtIˆËåïÛ—¿gOþ?ÿi½w¯Ÿ±±Îß¿ ä&¹ôòåûÔ?ÿ|»yó7þþ“í²wÏÝ¿ÿbõê“ÍÍíÛ·/ððKt8à@n’?YY¢¢2Ö?p`áðáÆD‡Cv¢+ vîôÖÖV#:"Ð#›ä “ÉŽˆH¿páÑŠ3ÃÃÝûó–Þò.7·dݺ³šš*ûöùOšdEt8àïAn’÷îU…„¤r¹‚}ûüœ‡Žüyû¶eÍš“EEUË—»DFΆ›ü’ä&9Àåòãã/9R8sæ?~ùŇØ[SÊ5üv1[¶äÚÙ™$$,$Õma€ÈMdW]ݸjUʳguÛ·/ðòš@t8Á³gu!!©••¾RÀôòr©¥¦Þ‰Í±°0

ãܹbXaÐÿ 7õ·¿ýp@6¹¹%郩ïÛç?a‚Ñá( ÈMýJø à‘‘³—/w¡Rá²·|xó¦94ôäýû/`…A¿ÜÔòóŸ„…ÑÒ€¿®ø|ÁáÃ…ññ—FŽ4ß¿ßßÂVô-ÈMýÍælÚtîäÉ"ÿIÑÑ_kjÂe yõèÑëÔúúÑÑ_/\8™èp2ÈM}îÉ“š•+åÀAGwëÖóÉÉ7gÏï­§§AtDä¦>$üð †íÝëojªKtD@f®_¶víi@°k—««=Ñá @›ú þ àwïVnÜø?°¼x@zÿž‘~åJ™¿ÿ¤˜˜oÔÕéDG4 @nêW®”……12ÒVä_WgÏþ'**ÓÔT7!aáÈ‘æD‡3p@n’1øpôêÕûÐÐSÅÅÕkÖ¸®]ëKCdâ£ÜtíÚµçÏŸÍpñb]i)sÞ>>2iŠÏç{yy¥§§Ë¤5 ï¼½½y<žh œÈr€Œ 7Èr€ŒÈ•›ž?.ÃõÓ,+<<ÜÂÂBMMÍÆÆfÓ¦M²j!ÔÖÖ9jÔ(MM͉'nß¾]ìbžLPD¨©©M™2¥¤¤D&-Ëv´å‘lG€B¡ˆ-Á‘¬é!˜Zˆl¹I¶V¯^]\\œ™™ùêÕ«¤¤¤œœœˆˆ„PUU•A/omm?~üÝ»wãâ⊋‹×¯_ŸššêææÆçóeûGnß¾][[[[[[ZZjccããã#Û³2 +0µþŸè‚„PZZšLV¯|žŠŠ ±zCWW·¨¨HøðúõëC† ‘U/áááÎÎÎ<OXÃb±† vøðá^¶,!TQQ!|X__ª¯¯ï}ËÂqèù€¤¥¥Éê òòòòòò’ISŸM¶óMì’ZÓŠ9µ$çÃ'7Q(”ääd;;;CCø¸¸”” 7"„BCCƒ‚‚ð-Y,–ººúÇB¹¹¹ŽŽŽªªª–––)))!@`gg§¥¥5yòäÂÂBу@ü˜0''gĈ #44´³³Sj%úøR´¬­­}ðàÁ÷ïßã§M›öòåK„ФI“BÆÆÆx}KKËwß}g```nnÞÑÑ7rõêÕ!C†üñÇ\.7""ÂÈȈÁ`DDDp¹\„Pjjjtt4•úßûjhhDFFž—ËÅ0,55ÕÞÞ^ °X,•Ç×ÖÖ&%%Ñh4‹uäȃ‘••õöíÛ .˜››#„ÄÒ­››[yyyQQ‘µµuLLŒÔJ ÃZZZŽ=Ї'Z¾r劙™™ŠŠŠ««ëÎ;«««Å’:ÎßßÖ¬Y•••¥¥¥ÂŽfÏž}íÚ5‹µcÇOOÏW¯^•––Ž;výúõÍÍÍ¡††±Á¹s玞žžhû¢eÉvD;ºxñ¢äÐá^RRÒÚÚÚÚÚZSS³råÊ%K–{”lSêhK I.Ž›äh¾¡®›¤†„I{ûvjI·ÏÉMÅÅņq8±rEEÇ366¾zõ*†asæÌ‰‹‹Ã0¬©©IYYy×®]ÍÍÍ µµ•ÏçÛÛÛ?~\Øì‰'$çJii)þlZZšµµµÔÊî£åñxEEE±±±T*õäÉ“ØÇãÅáp¨TjYYþ0++K²#[[ÛÚÚZ¼œŸŸ?zôh|566Šuwûömƒ®&d;¢I:Lâä_SSóÏ?ÿö(Ù¦ÔÑ–ëÜ$/ó­›Ü$5$ ¦–œÓ!„´´´BÊÊÊbe„•J?~VVVcccAA¿¿?BhРA………EEEæææÓ§O¿yó¦’’RUUÕèÑÿýÍ¥_3ŽIDATí#GG)7„´±±Á ¶¶¶oÞ¼é¦RR[[Û™3gBNNN7n,--ŠŠŠŒŒÛ¬¾¾žÏç[YYá­­­…mÚÚÚâ…êêjüã WW×/^èêêK~¨QRR"|NtH¶#Ú‘Ô¡Ã g|[[[ppp```7mJí®B’ r1ßp¢c+ZîêM©Õ ÙNçå啞ž>uêTüÈ™Íf ‚³gÏ655Í›7¯©©ÉÌÌìÑ£GÂW=yòD²)<é"„ÊËËMMM»©”„a˜ŸŸßãÇñ‡ åË/¿”ü ÖÈȈJ¥VUUá+++ÍÌÌð²ðÿ…¿…ÍÍÍEEE!ÿŸþYøÑ‰¯¯ïéÓ§ãââ|}}ñ¼¯šša_RÛíHrèĨ««÷ÝwOž<NÉ6¥ŽvW! $™o¡!C†ˆ®xúô)F|ø0bÄ—Ë—/?{ö,** !Ä`0:;;BIII>|ððð6%ÙŽXG’C‡Iœ)à—ó™LfWmJm©!‰¶p@ºAÈ9¼Ì·èèh++«ÜÜܪªª‚‚‚1cÆvS«Ûù ûÜ„aØòåËÕÔÔ„;‰aXZZš••N·µµÍÉÉÁ0ŒÃáÄÆÆZXXhjjNž<ùÔ©S’s%11qèС«W¯f³ÙR+±ÏiEË</&&ÆÑÑQMMmذaë֭÷çr¹S§NÕÔÔÄ7kjj Ð××711ùᇄ ƒg2™K–,4h¾¾þ²eËÚÚÚðz‹æàà ªªjeeµaÆéÓ§ã+D¶lÙ¢««kee•““#lJ²ɳqÉ¡›@|>_[[ûÅ‹ÝÄ&9ÚRCö.6 Ý anÂH3߸\n||üˆ#ð±6lØ œ*RCÂ`j‰Anꉨ¨(??¿Oz‰ØPJ½„&ÛÕ(}¡³³óÎ;½iá3†®?‘s}“"Ì·?µ$烌o&×ÑÑñöíÛäääÓ§O˶e¹@§ÓñŸAÁ‡îó(Π)àÔ’ñµð»wïŽ?>00pÆŒ½iG[[;88¸'•†¬†N¡À|ë 9ZÝ/œB¡À}/A7ðû^b²ø¨ŸfpßK€“œù»¾ù¹ @F›d¹ @F›¤$ºØIô–1HE¥Re²Ön@þv&èo¿ýVt†|´†àÆø½ï芑‘Ñ´iÓzßNUUÕƒzß0Ægii)|øQn’€ëM2‚Ü #ÈM2‚Ü £ÿÓõTeÎÞH·IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryError__coll__graph.png0000644000372000001440000002046312502417165031272 0ustar robertousers‰PNG  IHDRÅ͇ #ÊbKGDÿÿÿ ½§“ IDATxœíy\GÿÇgspË! ¤‚ˆ ‚ˆ¶µŠR”µ<-*ÈQÑ¢¶¢UAñ¦ê–þ ð>T.‘jÁ£Z¼1 ´ÜˆÜ ríïõ•F†0ï¿fgg¿ûÙ™Ov&{ ‚¢(€@p‚D´ˆJýÁè'ž@?Að„"½Àãñ Åb1Qj.ZZZ£Fê}œúúúªªªÞÇéSH$Ò¨Q£444dW½ç§æææÆÆF##£þ¦"´··WVVâ⧺ºº¶¶6]]ÝÞ‡ê;êëëMLLºö†­­mßKR)êêê^½z…W4]]]%o‚Û·ow¶ ŽŸ xýÁè'ž@?Að¤ÏýTTT„ H_ïåƒPBI}G?,>~*))¡Ñh¸„ê#¤êëëoÙ²…X=¸ÓYôóÁâã'±XÜØØˆK¨>BZ!FÛ·o±zp§³&èçƒí‰ŸÒÒÒìíí544,--Ïœ9˜Ä¶’>ñJ§App°‰‰‰±±qpp°@ ¸r劙™›Í\¸paôèÑ­­­B¡p÷îÝÇ722òõõmjjêls,xjjê˜1cŒ×­[×ÞÞ.­PzïMMM_ý5Fc0AAA<€ ȹsçlll†zàÀžÕlŸ¢¸ °¼uëÖðáÃOž<)9XÙãBQ4&&fìØ±ºººŸþùÕ«W{Û9¢RÔÖÖfee¡ áp8êêê111ÕÕÕñññ …ÃáJBýüóÏÆÆÆIIIUUUéé馦¦Øª¦¦¦ØØX¬Œtzÿþý ,xýú5“Éœ8qbHHŠ¢¾¾¾~~~555&&&>DQ4""ÂÖÖ–Édæææ:::u¶9&ÆÕÕµ   ;;ÛÊÊ*44TZ¡tzÙ²e...ÅÅÅL&ÓÎÎ.44{ láÂ…l6;66ÐØØ¨¸NºSoÝ$/////Oq™.›KÏ™3'333''G’/{\±±±fffׯ_¯¯¯¿y󦕕UKÈ%++«¶¶Vîªö‹Å¢R©d³Ùb±¸¥¥E$IÌèÑ£Ož<))êÔ)Å­­­«««±ôÍ›7Pe³Ù ÃÞÞk`EÇŒ“””„¥_½z%IËnމa2™XfBB‚•••\?ñù|2™,i¿¤¤$+++EX=ðù|@aa¡â:ég?uÙÒ5 /{\vvvçΓD>þ|/ýôÁýAVVVvv6ƒÁ˜1cƽ{÷H¤÷‚TTT888Hííí,++£Óé‚ 2{öìÒÒR€¾¾~@@ÀË—/׬Yƒ+//—Ü ³±±ñððP°9@RØÚÚúÍ›7rw][[+‰Fމ-ZYYIJb§U*•Ú:égºl kkkÙÌÇU\\lgg'Y;vìØ^jû`?q¹\±X|éÒ%‹µbÅ www‹%]ÀÂÂâÅ‹’Å—/_*H£Ñ$'6› ¨¨¨ˆŠŠš5kÖ¦M›°b¦¦¦eeeX:'''<<\Áæìw (((À*Q2™\RR‚-›™™ai¹-¤$tÙr ŽËÜÜ\ºòóó{©íƒk AWW×ÄÄÄææf>ŸO¥Rµ´´°U°zõêàààÔÔÔšššëׯïÚµ [ûöíÛ¸¸8Ùôüùó·nÝZ^^Îd2ÝÜÜŽ=*‹ýýý/\¸‘‘‘––ðññÙ¾};Ö¬]»¶¼¼¼³Í±üõë×=~üxÛ¶mÞÞÞÒ %P©ÔÅ‹¯[·®´´4//oÇŽË–-ûÐ éºl‚îóÝwßmÞ¼ùÆ™™™¡¡¡ý=GQ4!!aäÈ‘jjjÖÖÖ©©©(Š ‚iÓ¦éèè (* #""¬¬¬´µµ§L™‚0:täÒéæææåË—´¶¶9rdüøñ|>EÑääd:Îb±x<^PP©©©žžÞÒ¥KÙlvg›cÁãââÌÍÍi4Z`` —Ë•V(½w‹åããchhH§Ó7lØÀårQRc& |ã'´«&謪eK$EFFŽ9ROOÏÍÍ-55ÕÈȨ˽ã9W~¤k°è?áEZZZNNŽdñòåËØÿ!Åà9‡¨L&ÓÛÛûÙ³gmmmÙÙÙ;wî\¹reoÊyžn £««»jÕ*¢U 6oÞÜÖÖöÕW_Õ××[ZZúûû÷²êTÐOÆÆÆ111D«P(”°°°°°0¼Âþ‚'ÐO<~‚à ôOäŒÇ•ÿ}B |¾ˆÏéè¨+ãC¯J+†Çãõ¸ Ú›DêúdÅ|(ïùI]]A‚‚¢Ô|(ii…))…7~jkKðÓ¡r_nìYœúúú–––Þ×4X™j[9Tþ}ÃAuuuù«Ðüý§””gß~{†L&íßïéå5™h9„!䉳v”–e½EÈÈò?Ç“ÕÆ ìñ“½ýG‘H”ðébñþmô˜¶ÁÿÊï6ôÍÕ 4è~1‚¦¥õîÄ{wÉ’èæf.±’ú™ú—­‰‹òÙÅU}ÁŒÝæ–€€L·† Qeð“*Gô8ªÊÂEÏýøhK € ‚Ù)ÅGüD"!ŽŽ–ÖÖ¦iiëþy‰™ÙÐíÛÝÿ÷¿‡ÏŸ¿&ZZŸð<¾F,D'­55±×ö8oýYƒªM¦LðŒý|<=r8íééH$•ú]S)/qIþä Û%Êø™xU8?É%,lÁ«WUªw•üÁ K±‹”ôk€*ë§1c†ùøL OS¥'Ê2›*·LÝò¢¬']•õ 8Ø EÁ¡C-'Pð$¦Êb¦þ0¥*ÉEeÇOçÏg‡„\úã ù×ÐoËÛÉêˆÎ0‚Ÿ—W€ŠûI,FÝÝÑÖV¿xñ[¢µ T¹¿HÈO?-|ð èêÕ]—†ô÷`üø<='…†¦´µ©ÎƒJ‹êû °}»;‡Óu‹h!ªÏ ð¦³iÓ~ý5sð— ŠÿóŸƒ}dxòä ¢µ||ŽˆDF(šæg?`„ö …ôÃ7näݺ…ÛDšýÀ£Ã•WW}ØëÚ‚õ‘ž.,~L›6ÊÝÝaçÎd>_H´–nQ—ÛšŸÔ`ïkÒÁûh §Aä'@hè—uuͱ±wˆÒ5¨Üß_Á˜¬k9Ë /â÷ÑNƒËOtºþÚµ.¿ür³¦æ-ÑZºàŸ+ ¬BîäŒùS¦L‰ŒŒ°X,‰‰DéééX™7nXYYìÝ»˹zõê„ ´´´èt:6Ý”ôüAx‚ÃG‡íí‚©Sÿýö4ÑBÁmœv~ñס ÙU{öì™7oŠ¢©©©ººº'NDQôÉ“'­­­(оøâ‹æææÄÄD@CCCss³ššš¿¿ÿ›7oΞ= ¨««ë£¯j:?¡(úǹtú÷-¤Sîï}Ö•ÉoÊ®zò䉎ŽŸÏ߸qã¶mÛ¨T*›ÍŽˆˆ˜;w.VpûömEE" °°°½½=??ŸÃáˆD¢;wî`™}ä§ÁÕßa¸ºÚ¹¸Ølßž(öíw’z†+.Ëjúx ª%çË`&LÐÖÖ~üøñÝ»wÿûßÿN˜0áîÝ»YYYóæÍ“”Áæ«‘LÕ¢¦¦VPPàææöñÇŸí¡XÔéÚåË—oÞ¼YWW—Ï燄„¬]»VGG§¬¬ [ d&ÕhkkSWWOMM‹Å\.ÀóîXXоùfÆþý¿76âù©B¼PÓ&#·ÌܹsýõWGGG*•êââròäIsssssóÎÊ···óù|555.—»{÷n€äûwø~© ¶ÿwÒ|ÿýlMMêþý¿-䃙={6Ç›1c`êÔ©|>_º³“E__ÿСCË–-³¶¶¶°°Xºt©›››……Å´iÓètœ ,÷[ä’œü,0ðlZÚ÷& 'Z‹Š0¨ýX° ŠÏ]¹²®·ó¾Aƒ¹¿Ã_ðâÅëË—Ÿ-„HNèA¨Áî'kkºÏÔ°°´æf2êr[[ª{ܯ³?k=5ØýؼyŽXŒþò a¯ÁˆøhÖβG‡+‰€#ÐO@OOkË–¹qqwóó« ðâTM[ƒ`òUø ôxyM7ޱ{wJÿﺥŠÿâD­Ã×ôM”÷-¨îý$²gÇýû…¿ÿÎìç]?ú¿JíaÔñ~}òSÿýôŽ?¶X¸ð“]»’ûó5˜ª'-%lÇï$ªŠ\­€~ú—;Ü9^tt?}oS,Dì¯>MÏÜI¯öØ@?ý‹‘Ñ þsôhæë×ø?¸( ·Q@¢"Ž*1 —0دw{ ÆÜœvü¸?ÑZ$ðüô 釾º~=733Ÿh-x~’ÃÊ•'òó«³²6Ë~†¢x~’Þ=µµoããï-dàý$SSý5k>Œü£¶VÙ_ƒQ6 Ÿä³v­ËС:*üÑé>úI>êê”ÐÐ/Ÿâ;•^Þ…ºše|Â/ Ÿ:ÅÍmœ³³õ®]ÉÒóëõ†Æ¸Ù?W6W´ãM9~RÄ?zÔž;—C,Üß_ad«5ú C¢)+ÐOŠ1ÂhåJ§}ûÒY¬Ö^†*ºÎªËå|¶å#Ù©¡T è§.øþ{WuujDĵÞásD#+G»>¿o_ýÔ::ê;v|qæÌƒœœžÏó<¾FÈOZ«R·êäýÔ5óçüé§–»v¥ôì^BS/ï|ÝÄoèšCUÿj;ôS× ²gÇóçåIIO{°9Eƒ4æKCÛEÊ8}îÀûwÝ%$äÒµk¹÷îmÓÕÕ Z‹òÏOÝ%$džH$>|ø&ÑB”è§î¢¯¯µyóÜØØ;EEuDkQ^`÷ ÐN÷+¸¨›XXX}è=J5¦PTù7FpppÏš•°°eee6l˜2e Q ñóÏ?—••õl["¯ˆLž<ÙÓÓ“@¹\ºt©ÇÛÂñ8O Ÿ xýÁè'ž ^?áøC¼¾ïö¡à{½Gõïx÷<1bD?쨤¤äÓO?mhhèëëoÙ²¥vÚM ŸpÃÈÈÿéuä!=5FÃæ÷Q”º¿Cäøñã666FFFûöí;sæÌˆ#ôôôvîÜ X·nÝŠïî{p8--­çÏŸÒÒÒìíí544,--Ïœ9‹ÅQQQ666C† ™2eJVV–tu©©©cÆŒ166^·n]{{»ÜLð~ÿÒ¾æÊ•+fffl6páÂ…Ñ£G·¶¶ …ÂÝ»w>ÜÈÈÈ××·©© +,‚ƒƒMLLŒƒƒƒ\ÒSCIkhjjúúë¯i4ƒÁ âñxXž;wÎÆÆfèСÀ©e:ß»(ÝÐe™¥K—677ÇÅÅ-ZÔÜÜ|ìØ1@CCÃ;w Š¢gÏžµµµ‹ÅG]]=&&¦ºº:>>žB¡p8œcÇŽ'%%UUU¥§§3 €d ,áêêZPPmee*7EѦ¦¦ØØXLžt““Óò>Ø*___??¿šš“‡¢(akkËd2sssƒ‚‚°’û÷ï_°`Áëׯ™LæÄ‰CBBhÃ6‘N/[¶ÌÅÅ¥¸¸˜ÉdÚÙÙa‚ .d³Ù±±±€ÆÆÆ.›ÆÓÓÓÓÓ³ûMù^“õl³ÞÓM?={ö EQ>Ÿß!]XX( ‡ vëÖ-Eçλoß>EY,•J=xð ›Í‹Å---"‘ÈÖÖöäÉ“’°§N’õ“ÉÄÖ&$$XYYÉÍT,µ³ß*›Íf0öööX£(:f̘¤¤$,ýêÕ+IÚÚÚºººKß¼yÓÁÁA6,G’æóùd29//ËOJJ²²²¤ëMq£½ó“R÷w€!C†¨Tj‡4€L&ÏŸ??))©¡¡!##cÙ²eƒ¬¬¬ììlƒ1cÆŒ{÷î‘H¤’’IL{{{Ù5 KX[[¿yóFAfgÈ6–¯¯¯ðòåË5kÖ`9ååå’È666Xº¬¬ŒN§cÿ gÏž]ZZÚ}µµµ"‘häȑآ•••¤$6Ý”¤Þúe÷“b<==“““/^¼8mÚ4¬ãr¹b±øÒ¥K,kÅŠîîî,ËÌÌìÅ‹’­^¾|) û¡ °è,óC©¨¨ˆŠŠš5kÖ¦M›°SSSÉ ×œœœððp,M£Ñ$¦d³ÙÙÙÙÝ—abbB&“KJJ°Åââb3³w¯?H&.ë¶Ÿ¦OŸ. ÷ìÙãããƒå âêꚘ˜ØÜÜÌçó©Tª–––¿¿pppjjjMMÍõë×CBBdC­_¿¾¨¨èñãÇÛ¶móööî,óíÛ·Ø`®CP___ó>±XìïïxáÂ…ŒŒŒ´´4€ÏöíÛóòòòòòÖ®][^^ŽE˜?þÖ­[ËËË™L¦››ÛÑ£Ghë05•J]¼xñºuëJKKóòòvìØ°û›žu“½toüÔa*7ÙôêÕ«555›››%[%$$Œ9RMMÍÚÚ:55EQ>Ÿ¿gÏž#FèèèL™2åüùó@fügnnN£Ñ¹\®ÜLôýñ¯tº³º=räÈøñãù|>Š¢ÉÉÉt:Åbñx¼   SSS==½¥K—²Ùl,HssóòåË Z[[åÊÓ¦MÓÑÑé ÅbùøøÒéô 6`‚;«7¨ìx¼;lÛ¶ÍËËëƒ6é0• Ü™ûhºÁ…½ñÓ¾žÉãñªªªŽ?~ᢵ@Þ1€ÇO>üä“OüýýgΜٛ8ººº«V­êNfÿ£$2ºaï# ’°hÑ"BöQÖ(/^ìÁ¶øüQB Ÿ xýÁè'ž97nœ‰‰*ÌÓ…¢§©©ÙF´|ÈÍÍurrêÙxœ°ëO7n¬¨¨ jïøRU¥SZª7iRššˆh-8àääÔãÿÝðû8à⑟_µc‡û·ß~N´‚ã§ÞRVÖŸ_¸|¹'_S1 ŸzKbâ*•øûïªþ©!ZÁ@?õ–ÿýï‘@ P(ä+Wž-‡` Ÿz“YQYÉÆÒB¡èâÅǃ|< ýÔ+RRžQ©dÉbe%;'GEþ´ö è§ž#‰/]z"ü{€B!§¤<#Pá@?õœGJß{èV(%&>Ækþ ôSÏéÐÙa°XmýUDˆeú©‡¢¤¤gÒ…BJJ¼ÿò ŸzÈíÛ·¶Ê™ÉN(_¹òœÏö¿$eú©‡$'?¥Pä×—Ûž™™ßÏz”è§’‘‘/Ê¿û‹¢`Ðú Þî!ÙÙÅõõ-XúÉ“²ØØ;ÇŽùIÖÚÛdn®úŸ)—e¿/E,“'”¤QÄÆÞqwwPP~û;ž@?Aðú ‚'ÐO<~‚à ôO Ÿ xýÁè'ž@?Aðú ‚'ÐO<~‚à ôO Ÿ xýÁè'ž@?Aðú ‚'ÐO<~‚à ôO Ÿ xýÁè'ž@?Aðú ‚'ÐO<~‚à ôO Ÿ xýÁè'ž@?Aðú ‚'x~õòåËÇŽÃ+Ú¢¥E·²’amýŠh! ¡¡qôèÑáÇc‹x~õâÅ‹/^¼°µµÅ1æ€@S“eeÅÊOØ_½zÕÇǧOü°µµÝ½{7¾1!ÊÌíÛ·¥áø ‚'ÐO<~‚à ôOTm¾ÊÊJooשּׁ,\¢9;;Ÿ={ÖÌÌLAN7áñx§NzôèQUU•……Å´iÓ–,YB&wœŽ±—8;;ËfâUÝAÕü¤œ´µµ­Y³F__? ÀÌ̬´´4>>þéÓ§$‘pî"¢¢¢èt:¾1»ôSpúôi}}ýÈÈHÌ= cÒ¤IË—/OOOwwwÇw_úúúC‡Å7f÷!`üäìì|íÚ5??¿¯¾úêüùó7nÜXºté¼yóŽ?8räȰ’\.×ÍÍ­°°ðàÁƒ+V¸ººzyyݸq€¢hrr²ŸŸßܹs¿ûî»çÏŸKŸí+++ïß¿ïãããááqäÈ@ 7SRXzÃ$€P(Œ‰‰ñðððððˆ‰‰ …€›7oúúúJŸŠ444–,Y’‘‘ÑÙ®eã`kŸ={¶xñ ¹µÔÒÛ^¿~]’ÎÍÍåp8ûöíûòË/===£££ù|¾táÜÜÜîT…bÎOOŸ>ŽŽ¾}ûvDDÄÌ™3ããã333:´páÂ3fìܹS$‘Éäû÷ïÓét+++øÙgŸ=|øðÀNNN§OŸÞ¸qãØ±c‹ŠŠöîÝ+»£”””½{÷¶´´„‡‡ëêêΚ5K6ÓÏÏO__?((ÛD:­¹’444._¾\]]}ìØ1¬Nœ8±téR‹eeeÕ!¨Q£âãã;‹/gîܹ€‹/†„„ðùüŸ~ú©C-I„q¹\éPšššXÛVWWW’5jÔ¡C‡X,VLL —Ë ÓÒÒÂjIR Ëª†˜ÿw‹/ÖÒÒruuxyyiii¹¹¹ZZZììì( “Éddd¸ºº""Pår¹jjjnnniiiêêꉉ‰«W¯ž>}º¡¡¡££ãÊ•+ew´f̓acc³råÊ›7ov–©­­=oÞ}úÝ»w---Ÿ>}ºiÓ&À!C"##/_¾|âĉѣG{yy9::VWWKÿè---ewÄ`0°ÄðáÃëëëdv†ôýré´\I€ššš HŠikkëèè :´¨¨hâĉґ‹ŠŠ$·½dãËÆ‘h0üý”Þ–f³Ùb±ØÔÔË433“THmÝDÇã3gÎ ³°°7nœ‘‘ ½½],‡†† …Â[·nmÛ¶-%%…F£ùnžÌ²²2ÙPoÞ¼Á|VQQahh¨ S.ÆÆÆ•••ÿ½~ýšL&w&iÈ!zzz‘‘‘X‹r8‹˜5kÖéÓ§°Ò?þ8uêÔóçÏ{yya‘±ž«¡¡A²k¹q€ÔO¶–ºD²­$m``@"‘ª««ÍÍÍUUU4M¶p÷QÆë™ööö"‘èÔ©SX‡@$88øîÝ»­­­€B¡¨««Ï™3'::úþýû,ëÑ£G¿ýö›l¨¨¨¨ÊÊÊ¿ÿþ;..nöìÙe¶¶¶¦§§ck¥Ónnn‡þ믿ª««Ÿ={îêêJ¥R;“˜>}zlllmmmIIÉæÍ›SRR~~~,+((èñãÇoÞ¼¡Óéaaa|>Þ¼y:::€7n´µµ%%%I”Ë£¸–0šššXª)г³óáÇ«««±«Øà©Ç(ãù‰D"999ýñÇNNNXŽššÚÖ­[;VWWgjjº{÷n55µÅ‹‹D¢£G655aƒŒ°°°¡fÍšµiÓ&çââ²lÙ2ìdÞ!ÐÔÔtðàAlØ$öõõÕÔÔŒŽŽ®­­544tqqñööV °bÅŠ¨¨¨o¾ùA''§U«V´´´~ûí·'NDGGWVVÒh4ooïÜÜÜŸ~úi×®]+V¬øõ×_Ïž=ûÝwßÝ»w‹/Gúì%·–0Ö®]Û¡_Ï\¿~}TTÔêÕ«©TêçN)DëÜIDATŸ.©¥žçót‹-ª¯¯Çåy•¸¸¸ššš;vt“WÆå^(Ç÷êy/ …cÇŽíq„Ôî8;;'$$,Z´[TºþŽÏçWWW_»ví‹/¾ ZKßB¡Pzl&¥­%¥óS~~þªU«æÌ™ãàЫéçµµµe/=Ë͈àUK¸£¤ýd  ìýd@ýÁè'ž@?Aðçë™UUUW¯^Å7&d âÇÆ‰>HC&“ÿüóO‰ð¼^ÀñO Ÿ xýÁè'žü?»[Z…";ªáIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/stream2string_8h_source.html0000755000372000001440000001747512502417162025646 0ustar robertousers MySQL++ Reference Manual

stream2string.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_STREAM2STRING_H)
30 #define MYSQLPP_STREAM2STRING_H
31 
32 #include <sstream>
33 #include <string>
34 
35 namespace mysqlpp {
36 
39 
40 template <class T>
41 std::string stream2string(const T& object)
42 {
43  std::ostringstream str;
44  str << object;
45  return str.str();
46 }
47 
48 } // end namespace mysqlpp
49 
50 #endif // !defined(MYSQLPP_STREAM2STRING_H)
51 
mysql++-3.2.2+pristine.orig/doc/html/refman/common_8h.html0000755000372000001440000000364712502417162022746 0ustar robertousers MySQL++ Reference Manual
common.h File Reference

This file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h. More...

#include <mysql.h>

Go to the source code of this file.

Detailed Description

This file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h.

This file mostly takes care of platform differences.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadConversion__inherit__graph.png0000644000372000001440000001416612502417165031746 0ustar robertousers‰PNG  IHDR³»¡%8ÉbKGDÿÿÿ ½§“+IDATxœíiXSWÇß@¥€eP,µ}Úª£ ËP;nÈU(KG`¬`•ÚÂ8µuaÚ±â.ƒ‘M .£8¸…RZeŠIb$d¹w>Ü>™ ‚I”ó{øðæ½gùçÜî9÷ÞK#I0˜!h©[FCÁÎÀ ÁÎÀ ÁÎÀ a¨²3±XÜØØH„*;}9ÐÓÓsppPe*u†@ èéé133Se§//³3(\\\Tßé Í£Gîܹ£âNñ:ƒ;ƒ;ƒ;ƒæ…wFSSFS·Š§Ð@IÏÀ‹áŒ––‹¥n#¡¬ÐØØø“O>Q¯žñób8ƒ ˆžžu« e…,k÷îÝêÕ3~4Ñ%%%®®®ºººvvvYYY0þ|˜6mÈåò}ûö9::.\¸°²²’ª¥| WŽ¥Ri\\œ………¹¹y\\œT*-..¶¶¶æñxíèèØ××'“ÉlmmÍÌÌ‚‚‚ø|þpÕ©Æ‹ŠŠfÏžmnn=00 ¬P¹w>ŸÿÁ°X,›ØØX±X 4í»ï¾svvž:uêÞ½{U4¬c…T!>,++¹ŒP(d2™©©©'33“Á`…ÂÆÆF…Ô¯¿þÚÜܼ   ³³óÌ™3VVVÔ&>ŸŸžžN•QŽ÷ìÙ³fÍš_~ù…Íf¿ñÆÛ¶m#I2(((88¸««Ë¢²²’$É}ûö¹¸¸°Ù캺ºyóæÅÆÆWãééÙÐÐPQQaooŸ˜˜¨¬P9ðððhnnf³ÙsæÌILL$IÖ®]ËãñÒÓÓ §§güã6áhœ3¸\®¶¶vRRÇ#¢··W.—+µ££ãÑ£Gå;6²¿œœ8_¼xqîܹ$Iòx<WWWjW‘$9{öì‚‚*¾sçŽ"ZÃf³©dNN޽½=Ò‰„N§×××Sù‚‚{{{’$€‰D# vƯüðÃk×®Õ××wss;{ö,ùô§pÊ”)555ŠÂ·nÝÙºººÊÇH###*¿sçN:þðáCE±ºººÑT§ÄˆD"ª@mm­®®.ÒíííÊ%Ùl¶®®.I’pïÞ=*©±Îиu†H$""77—Ë冄„¬X±‚Ëå*˜1cFmm­âåíÛ·GnÅb)†žÇãUTT@{{{rrò²e˶lÙB³²²jmm¥âššš]»vP¨Ý ÔŒ6 :ÞÒÒB½lnn¶¶¶¦b--ùAhœ>æé陟Ÿ/$‰¶¶¶žžµI(@DDD\\\QQQWW×ùóç?ÿüsjë“'O222†Æ«W¯Þ¾}{[[›Íöòò:xð A7nŒŠŠÊÎÎ.---))€ÀÀÀO?ý´¾¾¾¾¾~Ó¦MmmmÃU§ò111MMMUUUñññëׯWV¨@[[Û××7::úþýûõõõ;vìx~C7Á¨ò5Ê£bNNάY³tttœœœŠŠŠH’”J¥‹-200 IR&“íÛ·ÏÞÞ^__Á‚Ô‡˜|zÆQŽÁ† LLLLMMÃÂÂúúú8ðÚk¯I$’$ ---¹\®X,޵²²222òóóãñxÃU§ÏÈȘ>}:‹ÅŠŠŠ‰DÊ •{çr¹¦¦¦–––›7o¦fPšA@Sg©ÂïŽSw“—,Y¢²ŸMMM/ý¸iÜl‚Ѱ3ÆÌ+¯¼®nÏìŒ1cnnžššªnÏì ì ì ì 5üWAgg§ê;}¡tiU5¨ÔL&“F£544¨²ÓQÒÑÑ{útÃG½¡™_ÔtcO¨ô¨&_pôèµÂ¨yóìÔ­E#Àë ™Œ(,ü oª[‹¦€påÊ]@ùùÕR©\Ýr4ì €‚‚j:ýý—/ßU·;úû%gÏÖÊdr ÓiùùxBÀ΀ÒÒÛŠD&#Ο¯ëëP¯$M;òò~R>Q•Éä.üÆ7'“Ý|~YÙ]¹\ùÔ–Ÿÿ“Úi “Ýçαe‚¸rå×§=šÃdwFnîO¸Ö÷ý÷µC““ŠI팮®'••-C¯“$™—W¥IšÃ¤vFII Ž‚ ú©Ãá«^’æ0©‘Ÿ“ºŒ1’„’’I=¡¨á.¼æ ¥––FT,“b±ÔÀ€©Ø:ɯjà{­¿R\\q¬³óu Ñ&õl‚ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì Ì0ŒçÑ3fÌP·ü CKKÉ´U·Š‰$..n<;w\¿ÓÕÚÚºyóæ LÔ›ÁL_ýukkëxZï/¸ÍŸ?ßÇÇgœ`&œÜÜÜq¶€×4Ø4Ø4Ø4/¶3ššš&ðñª4ÕøL컘(&õ¯Kåúõë3gÎTAG---o¿ýöãÇÀØØø“O>QA§c;ã)ÌÌ̦M›¦‚Ž‚èéé¡b‹µ{÷nt:&žûlB£Ñ>ìììlff¶{÷¬™3g}öÙgB• …zzz·nÝ€’’WWW]]];;»¬¬, "99ÙÙÙÙÐÐpÁ‚eeeÊG`ê€\TT4{ölssóèèèdž>zæH^\\lmmÍãñ ;;ÛÑѱ¯¯O&“%$$ØÚÚš™™ñù¿>òB*•ÆÅÅYXX˜››ÇÅÅI¥R¤ŒùóçåBe |>ÿƒ>`±X666±±±b±˜Ãï¾ûÎÙÙyêÔ©{÷î =ó[Œç*äääüf???@‘‘ëÖ­iiiðøñã+W®˜ššJ¥R’$?îââB„P(d2™©©©'33“Á`…´´4ssó‚‚‚ÎÎÎ3gÎØØØ@cc#õ¨ÀÓÓ³¡¡¡¢¢ÂÞÞ>11™$I’Ïç§§§Sò”c¨©©é}jSPPPpppWW—……Eee%I’ûöísqqa³ÙuuuóæÍ‹¥JîÙ³gÍš5¿üò ›Í~ã7¶mÛ6‚6ªŠràááÑÜÜÌf³çÌ™C €µk×òx¼ôôtèééùÍ]ãããããã3ú]‰Øqãª<:gTWW“$)‘HÅ2™lÚ´i—.]"IÒÛÛ{÷îÝ$Ir¹\mmí¤¤$GDoo¯\.wqq9zô¨¢ÙcÇŽ u›Í¦¶æääØÛÛ#“#Kî“Ããñlll\]]©]E’äìÙ³ ¨øÎ;ŠØÉɉÃáPñÅ‹çÎ;‚6*£ˆ% N¯¯¯§ò”`(++S·‘Çœœg¨âÜÄÐдµµÅ@§ÓW¯^]PPðøñãÒÒÒ€€011)++«¨¨°±±Y¼xñµk×´´´ZZZæÎ«hÓÕÕuhGTàääôàÁƒ’Ã1tЩ¼±±qXXØíÛ·###©L[[›¢eggçU«VQqkk«¥¥%u^óî»ïÞ¿ô2>|(—ËgÍšE½´··W”´²²R7 þ³VŸÂÂÂS§N-Z´ˆš#D"A¹¹¹\.7$$dÅŠ\.×ÚÚº¶öÿ)º}ñHUêà ÔP—+íííÉÉÉË–-Û²e •±²²Rܲª©©Ùµk³X,…½x<^EEÅèeXXXÐéô––êess³µµ5ki©zO©ßnnn2™lçÎT†F£yzzæçç ‰D¢­­­§§·qãÆ¸¸¸¢¢¢®®®óçÏoÛ¶mhS111MMMUUUñññëׯ.ùäÉjÑ3(€îîî®§‚ 6nÜ•]ZZZRRŸ~úi}}}}}ý¦M›ÚÚÚ¨V¯^½}ûö¶¶66›íååuðàÁ´ …BeýÚÚÚ¾¾¾ÑÑÑ÷ï߯¯¯ß±cuU㙊`të Ågh¸8""bÊ”)@Q+''gÖ¬Y:::NNNEEE$IJ$’;wΜ9ÓÀÀ`Á‚'Nœ€!댌ŒŒéÓ§³X¬¨¨(‘H„L’O¯ø”ãáÆçÀ¯½öšD"!I²°°ÐÒÒ’ËåŠÅâØØX+++###???G5"6lØ`bbbjjÖ×ׇ”!•J-Zd``0H—Ë 455µ´´Ü¼y3%x¸q`:âããýýýÇTEy4‡¾!©zÔ"cüÎPó•.±XÜÙÙyøðáììlõ*Á BÍëŒÊÊÊ7ß|sãÆK–,O;¯¼òJxxøh’ªGCdŒ•q={‘F£åää¬[·na&j§œ:uê™[Pÿ¹ F3ÁÎÀ ÁÎÀ ÁÎÀ ï ôÕW_µ°°˜@Aj„ ´´´u«˜êêêÜÝÝdz×õŒ?þ¸½½}<-h==SLÞ~›C§?ûGEspwwç9㸎/ieew÷ï÷÷ñyKÝZ4¼Îàóû¯^m V«[‹¦€P\\äµk÷º»{Õ¬F3ÀÎÈË«¢fUöý÷µ¿Y~2€ü›7Û‚‚ rs«Ô­H#À΀¢¢[tº jkÛÛÛ¹ê¥~°3 7·J.—+^2ZEE·Ô¨GC˜ìÎhhèº{—£|æ.“ÉOÂʤwFqq¶6]9C’ÐÔôðî]Žº$i“Ú$Iæäü(•ÊåutxB™ÔÎ`³ttð†æ%YnnÕ$¿:<©qútµ¶6úÎQg'¿ºúëÑ(&µ3 «år¹ŽcèíÌ™u T'“úW""–öôüú¿@ííÜ7š×­ûÿí´E‹Ô¤K#À÷Z¥¸¸&"âXgç7ê¢)LêÙ3Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4Ø4OýæŽD"9yò¤X,V—5R_/€C‡©[ˆzpppXºtéS)åÇúæçç«IFÍ0Œ‘žñ,“É ¬¬LMò0êáòåËûÛß%ñ:ƒ;ƒ;ƒ;ƒFã~)¶££cýúõµ V>300xóÍ7cbbŒÇª¤§§'%%¥¾¾þÉ“'Ó§Opss›…ÏÀÄÑp¼üÇŒäääüüü¼¼¼¤¤¤îîîo¿ýv¬-‚ÐÐP&“™ššúÎ;ïüýﯪRÛ3P üüüžw/w̘pŒ§N ¦¦¦aaañññcmáÈ‘#¯¿þz\\õrúôé\.7''ç­·ÔódW##£°°°çÝ˳3–.]zîܹààà•+Wž8qâÂ… ~~~Ë—/?|ø08p`ïÞ½TI‘HäååÕØØׯ_ ñôôô÷÷¿pá$YXXìííý—¿üåÖ­[ÊÿŽŽŽ¥K—–——®ZµêÀR©™TV®ˆTN§ÓMLL¨øÆ~ø¡——ך5kNœ8Aœ­¢»»{¨CCC“¶¶6Ŧ»wïþóŸÿÜ¿¿@ ÂÊÊŠÊ[[[+ô°X,åaa2™ .¼råÊŒ3®_¿žžžN建º”§*}}}Å[nÜ…y<Þ({žË¹É’%K®]»vùòåW_}ÕÌÌ ‚HLL,))ñööŽïííe±XÍÍÍŠZ­­­C›zðà´··›ššŽüM˜LæòåË=zÄçóÿüç?:tè¯ý+U`Ú´iH= .ÌÉÉQ~ÜÇÅ‹e2“É411ÑÒÒâp~}_gg'µKu˜¡&”òòrGGG…¹ŒŒŽ?^VVVVVVRR¢X‹P;9nŠÇÔûXy.Îpuu•ËåÇŽ£¦ ÑhqqqW¯^íëë“J¥ ƒÉd¾÷Þ{)))ååå\.÷ÇDÞONNîèè¸{÷®b‰€Löõõ9s†ÚªŸÏçr¹\.÷Ñ£GÙÙÙæææÆÆÆR©T&“1 ‰DBMíýýýï¿ÿ¾²jA !!!µµµ_~ùåíÛ·[ZZŽ;VPP@Í} céÒ¥ß~û-‡Ã¹ÿ~ffæ²eˆ–·ÞzK(=zÔÛÛ[‘tssKOOøðaKKËÖ­[OŸ>­\9nŠ­cê}¬<—³V---ww÷ÿüç?îîîTFGGgûöíiii=²²²JHHÐÑÑñõõ•ËåäóùÔ,ûÅ_ jjÙ²e[¶l‹ÅÔÑrPø|~RRµ¼PŽ`Ó¦MT@£ÑfΜ™˜˜H£Ñ "##¿øâ‹)S¦øûû{xxlݺ5??_*•¦¤¤ôôôÌš5ë³Ï>ûè£ÀØØøÐ¡C))) "‘ÈÖÖv×®]óçϧš‰‰INNŽˆˆÐÖÖ~çw(=H ÆâÅ‹/]º´xñbE2$$$99ùÃ?¤Ñhîîîááá?VlEŽ›r›£ï}¬<õL¤S§NùúúNÈŵŒŒŒ®®®;vŒ¾Ê K{È+}ª¹ü7Ù îÂz:ÖÄÏ&‰„Ãáœ;wîüã„7ŽQþ9<<ü½÷Þ›;wîxÚÑ××_±bÅh’˜çÁóšM0/*šM0/Ø4Ø4Ø4Ø4O]¥îþ ÷åÌK µë•yê¬U,Ÿ={–újfRaaa¡¸•AAt‹ÁPàu v v vÍÿrTë°è¹øIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x66.html0000755000372000001440000001733512502417164023653 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- f -

mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x71.html0000755000372000001440000001142412502417165024654 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CompressOption__coll__graph.png0000644000372000001440000000774012502417165031465 0ustar robertousers‰PNG  IHDR»pÉÝ–JbKGDÿÿÿ ½§“•IDATxœíkTW×ÇOn( áNaAEêªVXŠAD¬/A…"µPíR«‚­®V¨µ.Û®V”;ÈÅ ÌSF¤TAE­¼i­H´h€pI€dæý0®4„!f“(ç÷iggfŸ½gþ9çÌÉ$CBQ@ *CÖt× ¨1 b Ä€ŠCG=Ílß¾ýîÝ»êikrÂb±6lØ ††Hê¹V"‘Ho¿ý¶Úš„\¾|ÙÓÓ³¨¨H m©©ìܹ3((HmÍM*Ôy`á<B ¨1 b Ä€Šc²(¦­­D"M`ÀØØØwÞyÇØØxÁ‚ ‰D#™¨™É¢˜‰¥¯¯oþüù III{÷î=yòäòåË¥R)îö<F£a¶©©é_|¡Æd'õ]]¿I8pÀ¢ººšB¡f̘±bÅ 77·œœœˆˆˆ±Û#òôéȘÑh‰‰‰jMwBÑ¢>†D"egg»¸¸XXX$&&æççO›6ÍÄÄä믿lß¾=<<Û²¿¿ŸJ¥^¿~P^^îîîn``@§Óóóó‚$''»¸¸{zzr¹\ùQÎ;7sæLKKËíÛ· á:ÁèDÞ.((Ø¿?& CCÃØØØ‚‚ÜPkkk…8===}ôF³··‰‰‹ÅØq8yò¤‹‹ËÔ©S>üJù‹€ª@aaás·Ù¼y³P(ÌÌÌ …´´4À“'OjjjÌÍÍGFFP-((puuE¤¿¿___?55•Ïçgeeéèèô÷÷§¥¥YZZ²ÙìÎÎÎŠŠ {{{@kk+V,føùùÝ»wïÊ•+NNNñññ¸NE{zz222°ôdvww7 ««K!ÿºº:+++%ñ±ÍäíŸöööææf777¬QÀ† º»»322OŸ>}îáe2™L&Så³ñRh—bšššPV°[[[%‰µµuuu5Š¢‰‰‰(Š ]]Ý#GŽtww#Ò××'•J]]]Oœ8! ›››;V1ÍÍÍØ»………NNN¸ÎñòO1—/_¦ÑhJâc™=<*æ%%Ø2ÌXP”—Ãé¯Ío ^5d2°±1Ál‰‹GŒŒôeïÂUð»kþóŸQQ¹?j:mŽJb@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1b@Å@ˆ!T „P1‚È?lÉÑÑQÓéhd2U_ßAÓYh ±±±ò"õ?x÷ïßg2™³gÏÖTrmãìÙ³ýõ—¼GñŸgÏžý’­‡¼IÔÔÔ(xà<B ¨1 b Ä€ŠC»þ3üáÇ~ø!—˨€OŸ>MII¹}ûvoo¯££cHHˆ——×DEˆÅâ'N444ðù|//¯M›6a®T΄=\Þä>F(FDDèëëÇÅÅ¥¦¦.[¶ìÛo¿mhÐê™ ²X¬––‹•žžRYYƒ îö|>Íš5˜mdd´yóæW¡võ1KNNμyóbcc±—ŽŽŽ °°pÁ‚šML yyy¦¦¦?üð™LØÛÛ/X°`ëÖ­gÕªUc·GD(b¶‰‰Iddä«ÎpÃ`08NXXX``à©S§.\¸°yóæU«VeggŽ=zøðalK‘HäïïßÚÚ øý÷ßÃÃÃýüü‚ƒƒ/\¸@Q´´´4,,, à³Ï>»~ý:ƒÁµòðáCƒQWWºvíÚ£GŽŒŒà:eËïˆÙ—.]Z¿~½|òaaa{öìÁìþþþÄÄÄ5kÖ0™Ì”””áááçV§$«¦¦¦7ÞºuK"‘¤¦¦®]»víÚµ©©©‰·üñœ•••[¶lÁä‚a``°iÓ¦ÊÊJÜÖ?ýôSÀºuëj¯ºªªª°°°>øàÌ™3DO=Æ‹ŒJ)))‘‘‘—/_ÎÊÊŠŽŽÎÏÏ …ÞÞÞuuuR©PWWgccãää$‹ãããÏœ9zøða±X\QQ‘——‘ŸŸ¿eË–C‡m¨¬¬ìСC W¯^=uêÔxNSSÓ˜˜ì]™Ýßß/F-öO™2ÅÒÒ³úé§®®®ÔÔÔ¤¤¤†††Ó§O?·:%Y}ùå—ÎÎÎÅÅÅ|>?--íûï¿ojjÊÉÉÁ-׉åìää¤pœœœþþûoÜÖ?`³Ù »ŒWÝo¿ývìØ1‹•––Ö××§úI—ñ"ŠÙ¸q#•JõóóS©T@__Ÿ›››ŽŽNss3 ªªÊÏÏD"ŒŒ (*‰ôôôüýýËËËõõõKJJ¢¢¢¼¼¼ÌÍÍ.\1¶¡èèh{{{—ˆˆˆÊÊÊñœ†††²[fcÏt!É?YV‰Dò믿nÛ¶ÍÆÆ†N§oݺU_IuJ²ŠŒŒœ7ož‡ÃÙ±c‡¥¥%Ng±Xõõõ¸åã:Ç;à$I6Ám]õꌌV¬X}ñ"Š¡R©@&“½¼¼.]ºÔÛÛÛØØèëë 066þñÇÿøã&“ùùçŸ777“H$>Ÿ/ÿa¢Óéc²··Ç ‡®®.%α›™™Ý¿_ÞÙÒÒ544ÔÝÝ ˆ­­-æ·³³“…RR’dÙ£GÖ¯_Ï`0 FLL ŸÏÇ-×idd4uêÔ¶¶6…ZÚÚÚf̘¡zùJª£Ñhc+"ÄÄ_+-]º´¶¶öâÅ‹sæÌ±°° !_^^°oß¾¾¾>ÖÞÞ.ÛKáë.ŒŽŽÌxð๹¹'.‹-*,,”€Tee¥D"Ñ××733#“É|>ówvvb‡Rp“‚‚.—ËårËËË?Ž[>®àëë›——'e$‹OŸ>ýÞ{ï©^¾’êÆëtUgâãîî.•Jsss±Ž@"‘bcc/]º400022¢£££¯¯¿råÊ”””ºº:@P__Ÿžž>6TrròÇ[ZZ233—/_>žs`` ¢¢{WÞ¿yófBBÂ;wx<^nn.›ÍƆ?ƒñóÏ?óùü?ÿü3++ ëU7+^^^?æñx{öì)++Ã-×  ëîîÞµkW}}}GGGmmmtt4F“]Bã¶.‰äsx™êžËÄ_]“Éä%K–üòË/K–,Á*AÞx b Ä€Š*B Å™/N733Ó`B­‚ÇãùúúÊÏ|G­ùîÚµëÁƒjÏ ¢½Ðéô   yϨ>y.p!T „P1b@Å@ˆñÿV1yì̇U•IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetClientIpOption-members.html0000755000372000001440000001211712502417164031171 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SetClientIpOption Member List

This is the complete list of members for mysqlpp::SetClientIpOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/result_8h.html0000755000372000001440000001660712502417162022774 0ustar robertousers MySQL++ Reference Manual
result.h File Reference

Declares classes for holding information about SQL query results. More...

#include "common.h"
#include "exceptions.h"
#include "field.h"
#include "field_names.h"
#include "field_types.h"
#include "noexceptions.h"
#include "refcounted.h"
#include "row.h"

Go to the source code of this file.

Classes

class  mysqlpp::SimpleResult
 Holds information about the result of queries that don't return rows. More...
 
class  mysqlpp::ResultBase
 Base class for StoreQueryResult and UseQueryResult. More...
 
class  mysqlpp::StoreQueryResult
 StoreQueryResult set type for "store" queries. More...
 
struct  mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >
 Functor to call mysql_free_result() on the pointer you pass to it. More...
 
class  mysqlpp::UseQueryResult
 StoreQueryResult set type for "use" queries. More...
 

Functions

void mysqlpp::swap (StoreQueryResult &x, StoreQueryResult &y)
 Swaps two StoreQueryResult objects.
 
void mysqlpp::swap (UseQueryResult &x, UseQueryResult &y)
 Swaps two UseQueryResult objects.
 

Detailed Description

Declares classes for holding information about SQL query results.

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1NullIsNull.html0000755000372000001440000000544612502417163026453 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NullIsNull Struct Reference

Class for objects that define SQL null in terms of MySQL++'s null_type. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null in terms of MySQL++'s null_type.

Returns a null_type instance when you ask what null is, and is "(NULL)" when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1MaxPacketInsertPolicy-members.htmlmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1MaxPacketInsertPolicy-members.h0000755000372000001440000000773512502417164033022 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::MaxPacketInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/insertpolicy_8h_source.html0000755000372000001440000005041412502417162025554 0ustar robertousers MySQL++ Reference Manual
insertpolicy.h
Go to the documentation of this file.
1 
32 /***********************************************************************
33  Copyright © 2008-2009 by AboveNet, Inc., and © 2009 by Educational
34  Technology Resources, Inc. Others may also hold copyrights on code
35  in this file. See the CREDITS file in the top directory of the
36  distribution for details.
37 
38  This file is part of MySQL++.
39 
40  MySQL++ is free software; you can redistribute it and/or modify it
41  under the terms of the GNU Lesser General Public License as published
42  by the Free Software Foundation; either version 2.1 of the License, or
43  (at your option) any later version.
44 
45  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
46  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
47  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
48  License for more details.
49 
50  You should have received a copy of the GNU Lesser General Public
51  License along with MySQL++; if not, write to the Free Software
52  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
53  USA
54 ***********************************************************************/
55 
56 #if !defined(MYSQLPP_INSERTPOLICY_H)
57 #define MYSQLPP_INSERTPOLICY_H
58 
59 // Only allow these templates to be defined if they're being bodily
60 // included into class Query's definition. They're in this separate
61 // file only for claity, so they don't get lost among the other
62 // definitions in class Query. Without this, Doxygen will pick them
63 // up and treat them as a) outside namespace mysqlpp; and b) not member
64 // templates of class Query. We also don't want end-users of the
65 // library to #include this file in their own code; these templates
66 // should only be used as mysqlpp::Query::*.
67 #if defined(MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES)
68 
69 
76 template <class AccessController = Transaction>
77 class MYSQLPP_EXPORT RowCountInsertPolicy
78 {
79 public:
81  RowCountInsertPolicy(unsigned int rows) :
82  cur_rows_(0),
83  max_rows_(rows)
84  {
85  }
86 
88  ~RowCountInsertPolicy() { }
89 
94  template <class RowT>
95  bool can_add(int, const RowT&)
96  {
97  if (++cur_rows_ > max_rows_) {
98  cur_rows_ = 0;
99  return false;
100  }
101  else {
102  return true;
103  }
104  }
105 
107  typedef AccessController access_controller;
108 
109 private:
110  unsigned int cur_rows_;
111  unsigned const int max_rows_;
112 };
113 
114 
122 template <class AccessController = Transaction>
123 class MYSQLPP_EXPORT SizeThresholdInsertPolicy
124 {
125 public:
127  SizeThresholdInsertPolicy(int size) :
128  size_(size)
129  {
130  }
131 
133  ~SizeThresholdInsertPolicy() { }
134 
142  template <class RowT>
143  bool can_add(int size, const RowT& object) const
144  {
145  return (size < size_);
146  }
147 
149  typedef AccessController access_controller;
150 
151 private:
152  int size_;
153 };
154 
155 
163 template <class AccessController = Transaction>
164 class MYSQLPP_EXPORT MaxPacketInsertPolicy
165 {
166 public:
172  MaxPacketInsertPolicy(Connection* con, int size) :
173  conn_(con), size_(size)
174  {
175  }
176 
185  MaxPacketInsertPolicy(int size) :
186  conn_(0), size_(size)
187  {
188  }
189 
191  ~MaxPacketInsertPolicy() { }
192 
200  template <class RowT>
201  bool can_add(int size, const RowT& object) const
202  {
203  if (size < size_) {
204  // Haven't hit size threshold yet, so see if this next
205  // item pushes it over the line.
206  SQLStream s(conn_);
207  s << ",(" << object.value_list() << ")";
208  return (size_ - size) >= static_cast<int>(s.str().size());
209  }
210  else {
211  // Already too much in query buffer!
212  return false;
213  }
214  }
215 
217  typedef AccessController access_controller;
218 
219 private:
220  Connection* conn_;
221  int size_;
222 };
223 
224 #endif // defined(MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES)
225 
226 #endif // !defined(MYSQLPP_INSERTPOLICY_H)
227 
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1mysql__type__info-members.html0000755000372000001440000001523712502417164031342 0ustar robertousers MySQL++ Reference Manual
mysqlpp::mysql_type_info Member List

This is the complete list of members for mysqlpp::mysql_type_info, including all inherited members.

base_type() const mysqlpp::mysql_type_infoinline
before(mysql_type_info &b)mysqlpp::mysql_type_infoinline
c_type() const mysqlpp::mysql_type_infoinline
escape_q() const mysqlpp::mysql_type_info
id() const mysqlpp::mysql_type_infoinline
mysql_type_info()mysqlpp::mysql_type_infoinline
mysql_type_info(enum_field_types t, bool _unsigned=false, bool _null=false)mysqlpp::mysql_type_infoinline
mysql_type_info(const mysql_type_info &t)mysqlpp::mysql_type_infoinline
mysql_type_info(const std::type_info &t)mysqlpp::mysql_type_infoinline
name() const mysqlpp::mysql_type_infoinline
operator=(const mysql_type_info &t)mysqlpp::mysql_type_infoinline
operator=(const std::type_info &t)mysqlpp::mysql_type_infoinline
quote_q() const mysqlpp::mysql_type_info
sql_name() const mysqlpp::mysql_type_infoinline
string_typemysqlpp::mysql_type_infostatic
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetClientIpOption__inherit__graph.png0000644000372000001440000001371112502417165032561 0ustar robertousers‰PNG  IHDRÀ»¼[RbKGDÿÿÿ ½§“~IDATxœíÝyTSgÞð' ‘EÐ a ƒƒ…aÑ9ʨ§nA´Ó©¶"DÚÂx,‹GOJ)§3Ž­«RÔ"dPAhµ,BEDxõ°Ä†­HJ–ûþq}ó†ä²^$—úûÿ¸÷ɽÏó»7_ï’…Ð0 CL]Ó€¹ HR @€­ÙìéÓ§{÷î‹Å³9èkEGGçÔ©SVVV³6⬨ººúÊ•+^^^³9èk%''Çßßÿw \vvöìúš Ñh³<"\R @€ HyíÔÚÚ:³WšCCC‘‘‘Ë–-300pqq‰—J¥©D#^»Í¬ÁÁÁ•+WÖÖÖ&$$ܹsçàÁƒYYYîîî2™Œpy>ŸÏf³ñi‹uàÀY,ö•ÐÀmüïIll¬±±ñ7 BhéÒ¥›7ovttLOO R_^.—÷ôôàÓl6ûèÑ£³Zî+@Å#F;s挽½½±±ñÑ£G322¬­­.\xøða„PXXX`` ¾¤P(ÔÓÓ»{÷.B¨°°ÐÙÙYGGÇÆÆ&##!$—ËOž>>iii¡;w $''#„º»»üñG###‰D‚aXff¦ƒƒƒ\. …ÚÚÚIII§OŸÖÒÒ …ÉÉÉ&&&yyyEEE–––¡––¼|ÂÃã¹¹¹ººšËåÆÄÄ6bÖßßŸššŠ—§˜îëëC •ú+**LMMÇé_LyÚÏÏÏÍÍ­­­­¡¡ÁÑÑ!´cÇŽ¾¾¾ÔÔT„POOÏdvǛܳ13( ºº: ÃFFFT¦[ZZ¤R©™™Ù70 ÛºuëÑ£G1 ëííe2™ß|óM__Ÿ\.”Édßÿ½¢Û³gϪ¨¡¡AQ—Ë%l«Î±TUUÅf³ÇéoQLŒŒ0ŒÆÆF¼=//!T^^®¼í“Ùu³ *žÂB!&“©2b0ï¿ÿ~^^^wwwii©ŸŸBÈÐа¼¼¼ººÚÒÒrÆ ·nÝ¢Óé|>ùòåŠ>Õ²µµÅ'ìììž?>N£:‹effV__¯Ò^__¿bÅŠÉwÕÕÕ%“É–,Y‚Ïr¹\Å’ÊÛNA Ðø¼¼¼._¾œ½víZüÄ$‰äryNNNooo``à»ï¾ÛÛÛËápîÝ»§X«©©I½+ü0€jnnÆŸ­± ùùùÅÆÆ*ßs %$$xzzN¾+SSSƒÁçóñÙ¶¶6‡ƒOÓ锂fóp7ùS˜âpM8-•JMLLLMMÓÓÓñ‡D"‘ŽŽNnn®@ HIIÑÑщDñññ&&&ùùùÅÅÅ„×@®®®---555¶¶¶GŽ!lÄÆ¸Â0ì×_}óÍ77lØP\\ÜÜÜœ——çààðÖ[o‰ÅâqúÄF_ùúúº¹¹ñùüû÷ï;88àƒŽµÆßup 4q€0 ÑÕÕPî|É’%óæÍ³³³+((À0ldd$66ÖÚÚZ__Íš5çÏŸWPZZÚâÅ‹Ùlvhh¨H$"lÄF?ÙÊÓ† …ÂððpGGG===‡¸¸¸ááá±ú—H$k×®Õ××Wé§··×ßßßÈÈÈÜÜ|ÿþýø  U“ Ðd:tÈ××wJ«¨<ñ*³ã4NÏ v5y³ ¹÷B¢X,îèè8sæÌ… 4] ˜ƒÑ·oß^¹rå'Ÿ|²qãF2ý,X° 88x23Øÿï ›Å/fgg{{{Ïæˆ¯ÆãñvîÜ9k#ν#  HR4pŸ’’2ûƒ‚WdVÄáp ƺ¹ÕÓsF 7hºÉb0Š÷ÑfÇ¬ÞÆÏ-2™|Ù²h„PCC,>ç?¼üŠÀ5ИªªZ{{‡z{…••­š®…º @cÊÉùYK‹ÎdÒsrj5] uA€ˆ‰Å’¢¢{R©L"‘Ý‹%š®ˆ¢ @ÄÊÊ(B#KÊÊh¶Ê‚»tégÅW&h4Ú¥K?k¶Ê‚—–þL&Çge2yiéÿ ÀßÅ""põê}¹|Ô«r9víÚ}MÕCe ¹¹?«¼:†aXn.œÅ@€T ƒ••-r¹\¹Q.Ç*+[‚AMUEY UW®Ô¾îL£Ñ®\¹§Þþšƒ©ÊÎþYå'—ËáEu QÚÛûž tïÞ³ŽŽþÙ¯ŠÊæÞ·2^©în¡…Kq„¿–¨£óò›Åt:½»{Ђ¥±ú¨ÞOpðY„Prr€¦ ¡.8…R @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR(÷ʬ­­?~¬é*^ÒÒb#„¤ÒnMò’µµ5ŸÏ×t£P.@4mÿþýkÖ¬Ñt!”SUUuüøqª=_Tü#›«W¯öòòÒt”Cµèàà¤@€) @Êœ P(Œˆˆ°¶¶ÖÕÕµµµŽŽ‹Çû5¸ÖÖVÅÏNÉÐÐPddä²eË \\\âãã¥RédVœöˆsΜ Phhh]]Ý¥K—ž>}zúôé‚‚‚ÈÈH„ŸÏg³Ùê˳X¬Lu”ÁÁÁ•+WÖÖÖ&$$ܹsçàÁƒYYYîîî2™Œpyåѧ7✄Q BˆÇã¿ ‹Åª®®VÌþøãVVV†µ´´ÌàEDD¬[·N*•*Z„Báo¼‘ššJ¸üÌŽ®ŽÇãQñùÒtª& ++«Ý»wwww«´!„LMM±ÿ{:KKKÿð‡?¤§§+v=B(33ÓÎÎÎÐÐ0!!Ã0¹\ž˜˜hooo``àêêZXXˆ/lffVRR¢2Ä©S§6lØ€wžŸŸ¿téRccãÐÐP±X¬>:¾J___@@€‘‘‡Ã ‰D„eL4)“ еk×8޶¶¶»»û?þñÇãíÊO>½eË–²²²úúzåíØ±£¯¯/55!ÔÓÓ“ššÊáp®^½*JJJ¸\.B¨¯¯!$T†®¨¨055Å;÷ððhnn®®®ær¹111ê£ãÓ~~~nnnmmm ŽŽŽ111„eL¸g @“2™a&•J«««ccc FVVF ††•v„Pyy9†a###¡––GGG|uÜùóçÇ PUU›ÍVîÃ0Çår 422Â`0ñö¼¼<.—KXÆ„›LÍͽ‹è¡¡¡‹/"„V­Zuøðᆆ†C‡EEE.lgg§Þhaab2_þ X[[›£££âÑ?þñ!‹eff†º”Õ×ׯX±Ÿ¶µµUŒòüùsºººd2Ù’%KðY.—«XR¥Œ9jîÃ0__ßû÷_þ7FÛ¼yóXwׄO>j«/^ÜÔÔ¤˜}ðà>áçç«|Ï544”àéé‰Ï⇄Pss3žu¦¦¦ Cñz[[‡Ã!,cŽš{Û ¯¯¿{÷noo">Ÿ_YYáãã£X@(N©Ã½{÷FEE]¿~½§§§¬¬,&& çÈ‘#¿üò‹››ÛÕ«W[ZZ._¾¼jÕ*‡³gÏ|Å}ûöµ¶¶ÖÖÖ:th×®]„£3™Looï°°°G566~þùç~~~¤¶Ÿj4}U…&q $•Jcbbœuuußxãà·6‰díÚµúúúÑõ¢Å>-“ÉŽ?¾dÉ’… zzzã …ÂððpGGG===‡¸¸¸ááaE‡iii‹/f³Ù¡¡¡"‘h¬Ñ{{{ýýýŒŒÌÍÍ÷ï߯¸ S)cÂ=CÍk ê4¹‹èTXXX__¯˜ÍÍÍ]¾|ùø«¼ê—|Q3@sï6ãvíÚUWW7<<\]]}øðá   M5gPñe³,**jxxxÛ¶mÀÆÆæ“O> • L¸Ìk‚Šiåñx;wîÔt!”“íííMµç Na€ HR¨xíäädjjªéBBÃh!»¨««ëþýûT{¾(wÿÙgŸ={öLÓU¼ôðá"„0;»>M‚B†††îîîš®BåŽ@ÔÑß?ìät˜F£56~¹`®¦Ë¡(¸Óµk†äryqñ}M×B] 1ñx5ØË÷æj4] uA€ˆ½xñëíÛ| Ãärìömþ‹¿jº"Š‚+,¬g0^îƒ~åÊ=ÍÖCY b99µŠÏ"J¥òœœZÍÖCY |¾ ±±]éö»ÿù£G –DY w™L†r “É((¸«©z¨ D ;»F"õýe‰D÷b„ @ªššÚŸ<éQoò¤§©©}öë¡8ªË—ëTÎ_8&“qùrÝì×Cq Qär,'§Våü…“Hd99µr9¼ó3 h”»wŸ ƒL&cÞ<-•L&C ¬¯ªé©…rïÆk–¥¥áÞ½nŠÙªª6„К5K-Ž¡Ê¢0x7~<ÁÁgBÉÉš.„ºàHR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ eÔ˜*++kmmÕ`5T““ÓŽòòâhº ±µµuuuýÿyL‰–üÅ;0---åÌŒ:Ñh´èèè7j®<@i?üðÃ_|¡œ¸¤@€) @ B­µ··ºE$G$%&&úøølÞ¼y×®]ééé###“_½§§'..îÃ?ܲeKHHÈ­[·TŠ$_­««k{û?à"‹“’’·nÝ’••¥ø%¼ñÍìÎ µ4³¾ýöÛ–––ØØXUQQ‘””4ÖÂï½÷žbv`` ((H[[;:::))éí·ßþòË/kkGýn¡¾¾¾Ï”JReBÃÃÃÁÁÁ> NIIñóó+))‰ˆˆËåö?ò¦á÷üÂÏO?ýtìØ1[[[„‹Å ûꫯ–ËåŠÙôôô?ýéO‘‘‘øìâÅ‹{{{y<ž‹‹‹b™… ~úé§S*Ie” ;wŽÅbýë_ÿ¢Óé!KKK—?þ¸¸¸øwÞ¿ÿi”7 S>¹ººlÛ¶íüùóׯ_÷ññyçwΜ9ƒúî»ïŽ;†/)‰<==[ZZB•••¾¾¾×¯_Gavùò倀€­[·îÝ»÷îÝ»ÊÇ[üð[QQáïï¿}ûöï¾ûN"‘6¢ÑÇjåi==½üü|Åuvvæñxø´T*MJJÚ¾}ûöíÛ“’’¤Réßÿþw„Ðûï¿/póæÍ>ø@y⢢”[”ÇRïßW¥¥¥ýë_/^¼ˆReüíE•””ìÞ½ONGGçÃ?,))!\E¹åò„BáÑ£Gß{ï=//¯ÄÄDüT®^Þ4LçvçÎÄÄÄO?ý455µªªêôéÓ{öìÉÈÈذaCEE~’®¨¨077çr¹b±8&&fÛ¶m/^ô÷÷?vì˜X,.**:wî\PPPFFÆîÝ»¿þúkõòóó¿þúëøøøÛ·oŸ?~¬F‹?ª<YWW·cÇŽÈÈH×ÕÕ¥è977·³³399ùŸÿüg]]]zzúþó„P^^BH(öööZYY)£««kbb2Ö>Qïoÿé§ŸN:œœœ<88¨<ʄۋ—ÁårUãr¹OŸ>%\e¬þOœ8!’’’jkk/\¸@XÞX[7ŽéÈÛÛ[OOÏÃÃ!äëë«§§çéé‰tttÔÒÒjhh@•––zxxÐh4‰D‚a˜H$š7ož§§gaa¡¶¶ö¥K—BBBÖ­[gdd´jÕª   õöìÙciiiooTRR2VãüùóÇsåé•+Wòx¼'N899]»vÍ××÷ÆøCÅÅÅûöí311±±± ®©õs–ø+­4mòûd¬·mÛ¦¯¯¿yóf„Є'/ÂíUG£Ñ×@“YE*•–••…††š››ÛØØ|üñÇŠ%§T¡é\ééé!„ð7Δ§Bt:}ݺu7oÞ´±±¹sçNxx8BÈÀÀàøñã¹¹¹éééK—.õõõ]µjUgg§òÿ-õ,--ñ +++@0N£:±X\YY¹qãF{{{{{{ÿï¿ÿ>))ÉÍÍ !ôâÅ å3Ôüùó•×500044|ò䉃ƒƒ¢ñáÇÿþ÷¿Oœ8A8ÜX²Ùlåý3>•MÓ××_´hQkkëŠ+”kmm]ºt)á*„ÝöõõÉår |–Ãá(–œRy„fþ.lãÆ·nÝúᇜœœŒB¿ýö›\.‰‰),,ܺuë¡C‡Ùlv[[›b­Ç«wõüùs|âÙ³gFFFã4ªÃ0,..ŽÏçã³4ÍÅÅEq¼páÂÌÌÌòòòòòòÂÂBüȯ쭷ÞâñxÊoú”””H¥RmmmÂáÆêpJ‡1õMÛ´iÓ¹sç”ï¹Äbñ… þüç?µŠ:CCC:ÞÙÙ‰Ïvtt๙jy„f>@ÎÎÎ2™ììÙ³ø9!D£Ñ"##oÞ¼944$‘H´´´´µµ·lÙ’˜˜XQQÑÛÛ[SS“’’¢ÞÕÉ“'ÛÛÛ>|˜––æîî>VãÐÐPQQþ¨bZWW×ÃÃã‹/¾¨®®îììljjJLLÄ?¡uëÖ¥¦¦vuuñùü¨¨¨üü|¼]$á÷îÝ‹ojjâóùgÏžÍËË#<ÏŽß!!Å(no@@@__ßgŸ}VSSóüùó[·níÙ³‡Íf+îÕ w‘JÿZZZ®®®ß~ûmggç£GNŸ>½iÓ¦qÊ›’™¿§Óéëׯ¿víÚúõëñ–yóæÿüóɯÒÞÞ¾k×®òòrÂÙq¦±iÙ¯üã###ÅÅÅùË_f¶g@M3 oÙ²eùòådú™?þ»ï¾;™Æß‡ilEö|"L|"Ì0 HR @€å/‰1 M—¨ŽÁ`Œú2ªòceeeÊš@©©©òì¨×˜*¸¤@€) @ ò¿<€)ðÂfNIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/field__types_8h.html0000755000372000001440000000503612502417162024116 0ustar robertousers MySQL++ Reference Manual
field_types.h File Reference

Declares a class to hold a list of SQL field type info. More...

#include "type_info.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::FieldTypes
 A vector of SQL field types. More...
 

Detailed Description

Declares a class to hold a list of SQL field type info.

././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__inherit__gr0000644000372000001440000001126612502417165033313 0ustar robertousers‰PNG  IHDRð€ºsbKGDÿÿÿ ½§“kIDATxœíiTSW×Çwh”@(”Á‚Ö®jÕ*E±*ˆ‚Hlp^UÐꪢ–I´µ*Ê Š"ˆj•UAQ,•¡8ÐúhÁZ R$ ƒ‰$ä¾îzóDx‚"—ýû´ïÎ=çüsò_÷œ{³ 4‚ A¨]Ó¤;AC#” P 44B)˜šð6<{ölÕªU"‘HÓB(‹®®îÁƒÍÍÍ5-¤ËôJCçççÿüóÏžžžšBYRSS}}}ÑÐ=ÊÙ³g5-²Ðh4MKxKpP 44B)ÐÐ¥@C#” ý–”••uïSKKKppðÇl``0vìØððp‰D¢%½4ô{ASSÓ˜1cŠŠŠvíÚU\\¼yóæ“'ON:µ­­Méùåå凌Ùlö¦M›zPì{M/~lG%vîÜ9xðàk×®1 6lØ´iÓìííÏ—J¥uuudÌáp"##{Tî{ •¯Ð4íèÑ£¶¶¶ƒŽŒŒ&¢¹¹yÆ ööö,ËÎÎ.44ôÕ«Wõ/‹'M𤝝߮@àëëkhhhbbòÍ7߃¢¡ßwT4´*lÙ²ÅÛÛ»KMÚ±Ýa'É·£»RÞkè¾ûÅŠH$ª®®>zôèéÓ§5­é6ú̽‚cÆŒY¶l™““Ó»ôÓ¿§J²ûG:‚Fôš9{ö¬——WoTÞ[ Ñh))) ,д.Ów¯Ð%AC#” P 44B)zñc»øøxMKP‘H ººxùP;½ÒЦ¦¦ £=Ì4h隢* CVÒ»è•ízÏŸ¿üôÓ4ܹ³ƒË5дŠƒ‹ ÚÉÌ,¡Ói4\¾Ü¾@évÐÐjçÌ™B©T*•BJJ¡¦µP4´z©¨¨ýãJ‚‚–”TVTÔjZÅAC«— î2™ä$Ó˜LúÅ‹¸ëP/hhõ’’R(‘HÉX"‘â®CÝ ¡ÕȃUÿ]'ŸyúôÅþS­)=}4´IO¿£¥ÅÏhi1ÒÓïhJO_ ­.¤R"5µH,~ã·¼Äâ¶ÔÔ"|ö¯>ÐÐêâ÷ß+jk›óÿþÛøûïO{\N_ ­.÷$ZZŒŒ Üu¨ 4´Z‹ÛÒÓ‹Ûí7d/¥¥) ywÐÐj¡¨¨¢±QÄ`ЙL“É ùÿ˜þò¥wj‹“ÔBc£èâÅ»²ÃääÛ°xñYfÖ¬Oú÷×Õ€2ªƒ†î x¼ãç§i!Ô·¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥@C#” P 44B)ÐÐ¥xãü¯_¿^VV¦A5T%5µ <=M5-„‚ :ÔÙÙù¿Ç„L&Ss¨ ΢ÓYšVAM˜L¦¼‡ß¸BÓh´'''ÍÉC.pãÆ;vÈ{÷Ð¥@C#” P 44B)Þ/CWUU½ñæÝpvv®ªªê<£b?ЍÒð­ßŽÒ†ª÷&f]]]hhèÂ… §OŸxëÖ­·ÐÓ]tïç«|N§ÑÑÑ&&&šVÑe>ÿüó‹UPPðý÷߇……;¶Ç4ðùüÀÀÀ .€¾¾þ¢E‹Ô:Z%Ølö Aƒ4­¢Ë$&&~òÉ'ÁÁÁä¡………@ HIIéICK¥ÒÆÆF20`À×_­ÖẼåpvvÎÌÌôóóóðð8uêÔÕ«W-Z4cÆŒ£GÀ¢¢¢È3…B¡››[ii)üöÛoþþþ®®®ÞÞÞW¯^‚ ÒÓÓýüüÜÝÝW­Zu÷î]ùň\›òòò|}}çÌ™sàÀ±X¬4 o.dª/jŠ’@"‘ÄÆÆÎ™3gΜ9±±±‰ä]fƒ$;;ÛÛÛÛÃÃcïÞ½¯_¿V:ŠT*=s振¯¯»»ûêÕ«>|J“ª7€ÜÜÜyóæÉ öóóÛ¸q#777GFFΞ=ÛÓÓ3&&¦µµ•|GÙÙÙ~~~³fÍ:sæŒìm*&e´µµ%&&zyyyxxDDD477ÀÊ•+`îܹí>ÕGïos…...މ‰¹qãÆîÝ»œœŽ9rýúõ~øaþüù“'OÞºuk[[ƒÁÈËË311±±±‰DÛ·o_³fÍĉ ¢¢¢³³³“’’Ö¯_ÿÑG•••EDD(”‘‘ÑÔÔÖ¿ÿ)S¦(&ýüüØlvPPÙD>tuuÏ;ÇçóãââÈéNLL\¾|9y¾P(”ï¡_¿~ÿs6È®\¹E NJJZ¾|¹â(l6;%%E6»wï€óçÏ+&@ÅæÍÍÍÀÜܼl™ò}ûö ‚ØØX¡PÊb±üüüà×_=xðàÍ›7÷ìÙ3cÆ ¥IEýû÷ÏÍ͈ˆ Ñh»wïNNN V* ž?.¿Fëéé‘Arr²©©òÒ¢NfCQp]]ÒQ$‰âlÔÖÖ*"› 8ðï¿ÿ–7Ö£G~úé§}ûö566J¥Ò!C†ySSSÙdr8Åw¡˜T”!‹eoÖÂÂÂÂÂBéŒ@}}}—FWî¿)trr ýðÃGŽ9xð`xýúµT*ݾ}»D"¹víÚ–-[2228Γ'O¬­­ÉVOŸ>U쪲²’ülþùçCCÃN’Jár¹UUU²)~öìƒÁàr¹I2000`ÀÞ½{Iï’Kö»Oˆ¼`###PeÛ¶mгall¬tŠTl'NLIIÙ±c‡ì:••%‘HtttH§Óù|>i»êêjÒIÐÁE]1©(ãÛo¿}þü¹¥¥%”••åçç/^¼XéœtutÕéþçУFjkk;~ü8¹ F ÎÍÍmii‹ÅL&SGGgúôé111yyy °°0>>^±«èè說ªG%$$L:µ£dKKËåË—ÉWåc77·ýû÷ß¾}›Ïçß¹s',,ÌÕÕUKK«#Iàààpøðášššòòò7fdd]544ÞDõ ‰‰‰‘ &w#Š£Ìš5K~6È{J¥IÕ›€¿¿ÿýû÷ÃÃÃ}úèѣߥ==½™3gª’Dyð/V^ þÅ Bq°8ém‰DÇŽ+**âóùæææ .d0ÿ³!Þת¼Bw™W¯^ñx¼Gñx¼øøxŸ¬¬¬   ©Tªô|>Ÿ?{öl2îúÉ>^¡»LRR›ÍþñÇét:˜™™;véÒ¥™™™JËHz¸~²ƒWè.“••µdÉÒÍ$ººº .ÌÊÊRZàÚÃõ“}4t× ‹ä+Hlllž={FÆdkxxxAAÁ©S§:Jë'kkkcccwíÚUTTtúôi2OÖOòx¼¸¸8YÉ¢"hèîF£ÉöÐJ«^Û¡¾úÉ>ºkèëë4HñËÊʆ Fƪ¸ª¯~²ƒ†î2S¦LIJJ’¦!‰NŸ>ýÙgŸ‘‡•••dÐI«¬~’<ìÆúÉ>ºËøùùÕ×ׯ_¿¾°°°²²òÖ­[+V¬àp8²gsJ«^{¬~²ƒëZ—a±Xñññ‰‰‰±±±ÕÕÕ&&&...žžžd¥5(¸2Œž¬Ÿìã`-Gw‚_ö0XËP4tw‚® ݰÙìõë×kZEŸ P 44B)ÐÐ¥@C#”¢ý+ÅÅÅäF"ÈûÏ_ýÕ>%ÿ?ÞdU5Ò[øàƒ:ü?…ÒÛÁ=4B)ÐÐ¥@C#” P 44B)þ.î%uöK[IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_30.png0000644000372000001440000000576112502417165024023 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ ¦IDATxœí›}PÇÇŸ#††‚ ­(‚t¬R_`Ô‚£uÔÖv  Z_GµtêèøÒú:Žã[uœÑQ|©¢,­/ã+28m%g Q )$¢Ñ¼ÜþþØ_oλK!á­÷ùënoo÷»{Oöv÷¾!BÀÃã1¼ºZO/‡0ÏÂGgéÃ8W©Tׯ_ï)<=‘H”žžîííýV*z›ôôô.’ÇÓÈÏÏgDs ³ÙliiiçÏŸï}<=‚ ¬V+#‘Ÿ‡ñx>Âx< a<ž…0ÏÒ#ìÉ“'A¸«4‚†Ï¸qãîß¿ï ?BhΜ9‰„JQ«Õááá‰dôèÑ/^t—¶vAu ½E~~~Ÿ}öYmmm›wuÝ1ÂÜNYY™F£Ñh4 …"22rÖ¬Y¾ÆªÕê¼¼¼‡âÓ¦¦¦‘#GŠÅb¹\^YY™žž>{öìk×®u\•R© rí^Ü"µZ]\\L’äœ9sìåô÷÷_»v­'48 c÷"----- u)555la.555Ôicc#466:YûŠ+pDR¬^½zòäÉÖÞfRù-ª¯¯€–––NÐàËåŒDÇ0‚ Ž?¼sçÎÓ§O2ÄÏÏoãÆ••µhÑ"œÓh4ŠÅâ?ÿü~ûí·áÇ‹D¢¡C‡ž>}H’µX,kÖ¬ ‘J¥kÖ¬±X,ñññ0`Àœ!??ÿ›o¾¡—°yóæÜÜ\|ÜÜÜ<þü   °°°Õ«W¿~ýÚž ‚ òòòbbbú÷ï¿{÷n`TÄVb³ÙöìÙåëë;nÜ¸ŠŠ Î ÀQŽõ¸ ß~ëÖ­÷Þ{¯¤¤Ä^<8‚qNŽa0{ölƒÁ““3gÎ4 ÙÙÙðâÅ‹âââÀÀ@‹Å‚:sæLll,I’F£ñwÞ9räˆF£ÉÍÍíÓ§ÑhÌÎΖJ¥jµúòåËaaa@ý°ðÁ”)S?~\^^.“ɶlÙ™ˆjnn>vì–G?€û÷ï·¶¶¶¶¶644,_¾|Á‚TCvíÚõå—_>þ\¡PÄÅÅ­[·Žþ³Öëõ ÓéìõCffæ¤I“ž>}ªP(>øàJ¾J?€ÔÔT½^ìØ1hjjbŒl%ûöí£wΠAƒàß1 ·È`0}úÎ;B:N(îÝ»W¯×“$ÙÚÚj³ÙbccOž¾qãÆˆ#è®Óé@¯×s–l6›ÁƒðiAA%§0žnQQ½—O—­$**ŠÝ9Œ …ÂÄÄDüÒlS ½íÎs}¦ïëë‹[È8@’’RPPðâÅ‹›7offf@@@@QQQyyyXXXbbâÝ»w½¼¼”Jåˆ#¨2‡ή(22DGGã9‡½D{P³–—/_.]ºtáÂ…Ô%•J5pà@¼.ûä“O‹²€€€jÖ¹wïÞèÑ£_½zÕØØh³Ù"""pºL&c(aD„¨^bÀVRWWg¯s¨™Íæ;wîÈd2hS pztt4g~gðÔZ2--íâÅ‹çÏŸ?~<~÷™L&’$þùgN·hÑ¢3fètºÐÐЪª*ê®êêjvQøg?Æd/±MÄbñüùó«««©gD=-½^_^^θåóÏ?ÿá‡è±ræÌ‹Å"‹CBBR©ÄéOŸ> ÅÇxVÔÐÐ@/ÊËËQo³•„‡‡·Ù9tèqYN·‘NÁÓœKRR8­V«T* 9qâ¾d2™D"Ñ… ´ZíÑ£GE"‘ÉdÚ±c‡T*ýå—_4ÍÕ«W9ça'N¬©©©¬¬ŒŒŒÜ´ig"r8£¯¼ž={ƒŸfee¥¦¦ªTªªªª±cÇ®\¹’ñâøçŸ333KKK«ªª¶lÙ—.]ÂW322&Mš¤T*ÿúë¯ØØØM›6iµZÈÍÍmiiINNÚŠÑK¸¢ÖÖV{J8@C‡×Z’[ã-Ù^ íZl‚{çaŽ# !´lÙ2êY"„äryDD„··wtttaa!BÈl6oÛ¶mÈ!‰$!!áìÙ³ìËÉÉe›X8­Gìr°ËÅž‹†íh⬋^'ÕÕÕõõõqqqx‰ÓéîöᇠMySQL++ Reference Manual
tiny_int.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_TINY_INT_H)
29 #define MYSQLPP_TINY_INT_H
30 
31 #include "common.h"
32 
33 #include <ostream>
34 
35 namespace mysqlpp {
36 
53 
54 template <typename VT = signed char>
55 class tiny_int
56 {
57 public:
60  typedef VT value_type;
61 
65  tiny_int() { }
66 
70  value_(value_type(v))
71  {
72  }
73 
75  operator bool() const
76  {
77  return value_;
78  }
79 
81  operator int() const
82  {
83  return static_cast<int>(value_);
84  }
85 
87  operator value_type() const
88  {
89  return value_;
90  }
91 
94  {
95  value_ = static_cast<value_type>(v);
96  return *this;
97  }
98 
101  {
102  value_ += static_cast<value_type>(v);
103  return *this;
104  }
105 
108  {
109  value_ -= static_cast<value_type>(v);
110  return *this;
111  }
112 
115  {
116  value_ *= static_cast<value_type>(v);
117  return *this;
118  }
119 
122  {
123  value_ /= static_cast<value_type>(v);
124  return *this;
125  }
126 
130  {
131  value_ %= static_cast<value_type>(v);
132  return *this;
133  }
134 
137  {
138  value_ &= static_cast<value_type>(v);
139  return *this;
140  }
141 
144  {
145  value_ |= static_cast<value_type>(v);
146  return *this;
147  }
148 
151  {
152  value_ ^= static_cast<value_type>(v);
153  return *this;
154  }
155 
158  {
159  value_ <<= static_cast<value_type>(v);
160  return *this;
161  }
162 
165  {
166  value_ >>= static_cast<value_type>(v);
167  return *this;
168  }
169 
172  {
173  ++value_;
174  return *this;
175  }
176 
179  {
180  --value_;
181  return *this;
182  }
183 
186  {
187  this_type tmp = value_;
188  ++value_;
189  return tmp;
190  }
191 
195  {
196  this_type tmp = value_;
197  --value_;
198  return tmp;
199  }
200 
203  {
204  return value_ - i.value_;
205  }
206 
209  {
210  return value_ + i.value_;
211  }
212 
215  {
216  return value_ * i.value_;
217  }
218 
221  {
222  return value_ / i.value_;
223  }
224 
227  {
228  return value_ % i.value_;
229  }
230 
233  {
234  return value_ | i.value_;
235  }
236 
239  {
240  return value_ & i.value_;
241  }
242 
245  {
246  return value_ ^ i.value_;
247  }
248 
251  {
252  return value_ << i.value_;
253  }
254 
257  {
258  return value_ >> i.value_;
259  }
260 
262  bool operator ==(const this_type& i) const
263  {
264  return value_ == i.value_;
265  }
266 
268  bool operator !=(const this_type& i) const
269  {
270  return value_ != i.value_;
271  }
272 
274  bool operator <(const this_type& i) const
275  {
276  return value_ < i.value_;
277  }
278 
280  bool operator >(const this_type& i) const
281  {
282  return value_ > i.value_;
283  }
284 
286  bool operator <=(const this_type& i) const
287  {
288  return value_ <= i.value_;
289  }
290 
292  bool operator >=(const this_type& i) const
293  {
294  return value_ >= i.value_;
295  }
296 
297 private:
298  value_type value_;
299 };
300 
302 template <typename VT>
303 std::ostream& operator <<(std::ostream& os, tiny_int<VT> i)
304 {
305  os << static_cast<int>(i);
306  return os;
307 }
308 
309 } // end namespace mysqlpp
310 
311 #endif
this_type & operator|=(int v)
Bitwise OR this value by another value.
Definition: tiny_int.h:143
this_type & operator<<=(int v)
Shift this value left by v positions.
Definition: tiny_int.h:157
this_type operator|(const this_type &i) const
Return this value bitwise OR&#39;d by i.
Definition: tiny_int.h:232
this_type & operator&=(int v)
Bitwise AND this value by another value.
Definition: tiny_int.h:136
this_type operator*(const this_type &i) const
Return this value multiplied by i.
Definition: tiny_int.h:214
bool operator<=(const this_type &i) const
Check this object is less than or equal to another.
Definition: tiny_int.h:286
this_type operator%(const this_type &i) const
Return the modulus of this value divided by i.
Definition: tiny_int.h:226
bool operator!=(const this_type &i) const
Check for inequality.
Definition: tiny_int.h:268
bool operator<(const this_type &i) const
Check that this object is less than another.
Definition: tiny_int.h:274
bool operator==(const this_type &i) const
Check for equality.
Definition: tiny_int.h:262
this_type & operator%=(int v)
Divide this value by another object and store the remainder.
Definition: tiny_int.h:129
tiny_int(value_type v)
Create object from any integral type that can be converted to a short int.
Definition: tiny_int.h:69
this_type operator+(const this_type &i) const
Return this value plus i.
Definition: tiny_int.h:208
this_type & operator^=(int v)
Bitwise XOR this value by another value.
Definition: tiny_int.h:150
tiny_int< VT > this_type
alias for this object&#39;s type
Definition: tiny_int.h:59
this_type operator<<(const this_type &i) const
Return this value bitwise shifted left by i.
Definition: tiny_int.h:250
this_type operator^(const this_type &i) const
Return this value bitwise XOR&#39;d by i.
Definition: tiny_int.h:244
this_type & operator--()
Subtract one from this value and return that value.
Definition: tiny_int.h:178
Class for holding an SQL TINYINT value.
Definition: tiny_int.h:55
this_type & operator=(int v)
Assign a new value to the object.
Definition: tiny_int.h:93
bool operator>(const this_type &i) const
Check that this object is greater than another.
Definition: tiny_int.h:280
this_type & operator*=(int v)
Multiply this value by another object.
Definition: tiny_int.h:114
this_type & operator/=(int v)
Divide this value by another object.
Definition: tiny_int.h:121
tiny_int()
Default constructor.
Definition: tiny_int.h:65
this_type & operator>>=(int v)
Shift this value right by v positions.
Definition: tiny_int.h:164
this_type & operator-=(int v)
Subtract another value to this object.
Definition: tiny_int.h:107
this_type & operator+=(int v)
Add another value to this object.
Definition: tiny_int.h:100
this_type operator>>(const this_type &i) const
Return this value bitwise shifted right by i.
Definition: tiny_int.h:256
this_type operator-(const this_type &i) const
Return this value minus i.
Definition: tiny_int.h:202
This file includes top-level definitions for use both internal to the library, and outside it...
VT value_type
alias for type of internal value
Definition: tiny_int.h:60
bool operator>=(const this_type &i) const
Check this object is greater than or equal to another.
Definition: tiny_int.h:292
this_type operator/(const this_type &i) const
Return this value divided by i.
Definition: tiny_int.h:220
this_type & operator++()
Add one to this value and return that value.
Definition: tiny_int.h:171
this_type operator&(const this_type &i) const
Return this value bitwise AND&#39;d by i.
Definition: tiny_int.h:238
././@LongLink0000000000000000000000000000015400000000000011565 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1SizeThresholdInsertPolicy-members.htmlmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1SizeThresholdInsertPolicy-membe0000755000372000001440000000717612502417164033140 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::SizeThresholdInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SelfTestFailed__coll__graph.png0000644000372000001440000002041012502417165031324 0ustar robertousers‰PNG  IHDRÄÍhËHôbKGDÿÿÿ ½§“ IDATxœíw\GÇŸ=îŽ*Eš”*E4EM¬AyQC^KD± ¢Ĩ€]‰ÁÄňï¡b°•&»¨±`Ç%¡#Òárǵ}ÿØ|.'wô……c¾ÍÍÎ<óÌÌïvfÛ †ã8 d@£Ú„ê€Ä„ $&i 1!Hƒ.ÿC deeI¥Rª¼é¹hii 0 ãv***Š‹‹;n§S¡Ñh ÐÐÐhÿž˜x<^UU•±±q:¦ 444‘"¦òòòúúz]]ÝŽ›ê<***LMM[““S—¸¤:”——¿~ýš,kºººÝ¼ nݺ¥4Í™¤Ä„ $&i 1!H£ÓÅ”aXg—Ò&º¡KGWV–1åææ‘bª“÷P__ݺuÔúC:MuAWV–1I¥Òªª*RLuòíܹ“ZH§©.èÊʶGLIIIÎÎζ¶¶ÑÑÑ0räHèׯH$’={ö 8°OŸ>Ÿþùlj\òç[ù°H$ 655511 ‰D.\°°°àr¹pæÌ™ÖÕÕ‰ÅâmÛ¶YYYÏŸ?¿ººº©ì„ñÄÄÄAƒ™˜˜644È{(_zuuõÂ… ŒŒ,--ƒ‚‚`vêÔ)GGǾ}ûîÞ½»}-Û©4ßDoܸaee%«¬b½pˆˆøðÃuuu¿øâ‹‹/vhLÄå(++KIIÁ›¥¶¶V]]=""¢¤¤äèÑ£t:½¶¶6++Kfê§Ÿ~211‰‹‹+..NNN677'UWW³X,"|x×®]^^^oÞ¼a³ÙÇ_¿~=ŽãóçÏ_°`Aii©©©éÇqß³g““›Í~ùòåˆ#‚‚‚šÊN8ãææ–™™™ššjoo*ï¡|xîܹ®®®999l6{ðàÁ¡¡¡Ä ^3fÌàr¹, ªªªšo“Ö´[+IOOOOOo>M‹]@„'Ož|óæÍ´´4Y¼b½X,–……ÅåË—+**®]»fooßHJIII)++SŒo³˜8ƒÁØ»w/—Ë•J¥555‰D¾&ŒŠŠ’¥?qâDóþ988”””ák×®¹¸¸à8Îår---‰ÞÅq|РAqqqDøõëײ°bvÂ6›MDÆÄÄØÛÛ+“P(TSS“u^\\œ½½=Žã@´ƒP(€¬¬¬æÛ¤‹ÅÔbÈ·€|¼b½|êÔ)™åÓ§OwDLmæ RRRRSS---Ç÷çŸÒhï),,tqq‘ýtvvnÞ`~~¾™™†a†Mš4)//ôõõýüü^½zåïïO$+((=ürttôôôl&;È;88¼}ûViÑeee‰ÄÎÎŽøioo/KIœP FkÚ¤‹i± #Õ+''gðàÁ²£~øaGk³˜ø|¾T*=wî‡ÃY¼x±‡‡‡Ã‘O`ccóâÅ ÙÏW¯^5oÐÈÈHö×çr¹©©©PXX>qâĵk×ÉÌÍÍóóó‰pZZÚŽ;šÉÄ?233‰TÄÔÔTMM-77—ø™““caaA„•vO7¡Å. PúOhT/kkkùÊÈÈèˆcmn2 ÃÜÜÜbccy<žP(d0ZZZÄ¡ÚÚZX¾|ypppbbbiiéåË—·nÝJ}÷î]dd¤bxúôé6l(((`³ÙîîJ¥¾¾¾+W®ŸOÌ-dg;è~s&¼¥.hª©ë%‘Höïßogg§§§çî˜hllÜbé¤MÀ»?òÍ×5t½˜È")))--MöóüùóÄPó6G¨l6{Þ¼yÏž=«¯¯OMMݲeË’%KÚmMÉËq=]]ÝeË–QíEÏ $$¤¾¾~Ú´i¶¶¶¾¾¾i:“‰‰IDDÕ^ô ètzXXXXX)ÖÐ0‡ $&i 1!H‰ AJ&àÝÿ#@B¡D(”èè0©u£­÷›G ´» ª%êúj$:Ó&Þ“ºº:†a™™™TyÓV’’²²Ö¬ùÔɉâ÷<¿Hl·ŠŠŠššš6çÄ¡ê’ç&ÓfC-ðs¿ÉÆ0L]]]I<Þ“×gJHx¶bE´šm×®™ÞÞ#©v‡2ÄiÊæ¼ü”w˜¶èîP5&5³—ž=grvþ$iPPÌwß%J¥=øÑnê+E|ÿ.¸Ã}kuª”=]Lýûiiýs¾e±î|ýõaO­K]LÅ«ºØYÜ.ÁitÌÔY‡Bgz¶˜0 2äŸw•¤RijjΤIûòò*¨õªËȾ̹à›)¬•HÅ8FŽZúÓ³ÅÇÛ0ÿ\¿ˆÅÒ’’jw÷ý©©9ÔzÕéàðôHIÊæ|\ RÉ?ƒ»T‚#1ugç$’/^ÄbI}}ìY‡Ï{L¡WЏAz}CÞóÈÀ‡§‰˜Öw€&…Ž©€˜,Í»%©D"ùöÛ3;v\T½)9Ÿ#N^š™ŸR+\þë[««1©üR¹Ç‹ÉÆæß9¸ ⥿ÇoúùEñùBJë ¸¹‚øy•óqqã? M 3q֦ī} ¶øŽƒa˜““™ÒCR)þÇìC‡nv±Kǵ Üº2‘TAI€c`ä@å„ T@L0|¸ “Ùø¹š ð™3?^´h4%^uã¶YØj @a4ÃÅ8åbR…—ã\\¬Äb‰ì'ñyÅ!–»wÏ<Ø‚2·:Ó¡Ú3Î~˜•Ìy°¯PX'Å%ï; Q9ûÕ“ü\MMMS“®¡Á8uÊÏÀ€â9D§€Á€/ûâRüÑ/Å‚wbŒöÏ­jï}¨Â0gmm¤©É Ñ0b\KI ÑÐ`ìØq‘j¿: a­äqx±«žÇ±¶€a†¦þŸ£ b¢Ñ°#lÌ“’VýôÓ×}7mòøý÷‡ÏŸ¿¡ÚµNáùÑR©ÿ$ÀÜÔYÛó´Ãçë-ÚjfQù … g¿5Ð 3gª­mHN^M£©Ô"qÕy‚د3F®¶túºÛ-×® g&¥„…y½~]¬z÷Áïï.4°ÕøpVw\§OeÅ4hP?ŸÏvìHR¥÷òoV=®ùlÝX·<ݪ¬˜ 8ØÇaß¾+T;B8<‰(¶¯ßÏ…úé‘RTvÎDpútêúõç®\ rtT~—¼gñ® AMÓéGñ;ïM¡âb’JqŸµµÕÏž]Aµ/ª*s@£a?ü0ãþýì‹_´œÑ1T\L0tè3g~šP_¯:¯tOT_L°i“GmmCxø ªQqz…˜ŒŒtÖ®ýϯ¿Þì=¯‡S‚ŠOÀeˆÅÒÿügïFE-¦Ú—6 ¬•ÐÔ0ºfÏøÏ÷ /;Nûî;Ï«WÓoÜ mËÊ.àÑ¢‹ËÚö5†aÙÙÙäOóô1ÀèÑ<<\¶l‰ ÅTûÒ*Ê_ÖeÄU:Ï7í ã±wR/„†þ·¼œÇbݦڑ–Á¥poW¡åH]Û‰a¿3öNê]b23Ópýùçk¥¥ï¨ö¥þ¾PÉÉâ\cÙ(~Ô¨Qû÷ï‡C£Ñ‚‚‚@"‘$''i®^½jooo``ðã?1/^6l˜–––™™±É“üÆ=¤AÎÀ=‡†ÑgŸíX±â7ªi~µè· /ì+T<´}ûö©S§â8ž˜˜¨««;|øpÇŸÄ|i~JõGþf -%Ëv 6L[[ûñãÇwîÜùꫯ† vçΔ””©S§ÊÒ{ÅȶIa2™™™™îîî}ôQTTT'ºN®6{ yyÖÖAÇߥÚå4ÔŠ¥’&.Z´($$DWWW(®_¿> @GG'??Ÿ8 {ZÔ×׫««'&&J¥R>ŸèÌD.66FK—ŽÛµëª*2W$ ¦¶ÖtÏL™2å×_1bƒÁpuuŠŠ²¶¶¶¶¶n*}CCƒP(d2™|>Û¶m [™ŽÜ{©˜àÛo'ij2víúƒjGṲ́I“Á¸qãà³Ï> …òcœ"úúúûöí›;w®ƒƒƒÍœ9sÜÝÝmllFmfFæk^½åqŠRâ㟭\y2)éÛaì¨öEèÕb/¯p¡PráB`‡öYC@oævìðzñâÍùóO¨v„J°&h«Þ.&3ŸÏÂÂ’x<…n”¿¬«)¦ìݽ¦®ÎÚj§·‹ BB&K¥øÏ?Sö‹Dˆ§lÉt ˆ*ȉ ôô´Ö­›y'#£„^œ(­¯\ÝãlAbðö9dˆå¶m ]_tM±ðÅñ2—…ý´M»éL­‰ €Föo÷¼w/ë?Ø]\ô£_Š´û1†.è”—–º$¦øè#›3>Þº5¾+?b)~R“{;â[KCnL 1ýËæÍµµ‚Ç»h L©¿¿«Ðj´žõX½®)±³Abúcã>«WÿçС›oÞü ¢RøU"ÑóçÝ2zûðF±X[;æKµ/=tfz:öÝwÓ._~yófÕ¾ô<ЙI K–ÏÈ(II Q\Ñ è̤„íÛ=ËÊÞ=ú'ÕŽô0˜”`n®ïïÿÅþýWÊʺûG,Ý $&å¸öí«£Âë?wHLÊQW§‡†þ76ö)¹[×¥Ÿ)/MëŽ/ “S“¸»™0ÁaëÖxùýì:BÕßüÔŸŠx… ¤Xë† 15Ç÷ß{ff–:•J‚-îí*4vÒø¥! Öº%HLÍÑ¿¿ñ’%cwîLæpê:h*û2§üeíçë>PÜIe@bjo¿uSWgìÙs©#F„µ’‡û‹zR»‡ngƒÄÔ::ê›7}?-­ý;±¥ìb5??õêÕ£F¢ÊDSüôÓOùùùíÈHå‘#GΜ9“BJ9wî\û2¢ 8‚4˜¤Ä„ $&iô^1egg“¸ô )+¯µrkÑATü9vWrÿþýþýûwAA¹¹¹Ÿ~úiee%èëë¯[·® m HL¤allLò¾6M ¿!“‘‘±±Nw [s†;vÌÑÑÑØØxçÎÑÑÑýû÷×ÓÓÛ²e .^üÏcÚÚZ--­çÏŸ@RR’³³³†††­­mtt4H¥ÒððpGGÇ>}úŒ5*%%E~h FŠÄÄÄAƒ™˜˜644(„÷‡•Ö 1.\°°°àr¹pæÌ™ÖÕÕ‰ÅâmÛ¶YYYÏŸ?¿ººšH,‰‚ƒƒMMMMLL‚ƒƒE"‘R7ä7d’÷¡ººzáÂ…FFF–––AAA€hÃS§N9::öíÛw÷îÝ$õLþœ¤•@LLL‹iæÌ™Ããñ"##`Ö¬Y<ïÈ‘#PYYyûömCCC‘H„ãøÉ“'œœ¤Rimm­ººzDDDIIÉÑ£Gétzmmí‘#GLLLââ⊋‹“““---@¶ßpssËÌÌLMMµ·· U‰ãxuu5‹Å"Ü“@ZZZÍû‡æÏŸ¿`Á‚ÒÒRSSÓ‡â8¾gÏ'''6›ýòåË#F)wíÚåååõæÍ6›=|øðõë×7ã‘E>>>›6mJOOOOO((( ,LŸ>}Æ l6ÛÝÝýСCÍøÖhC&ƒ1{öìÀÀÀ¼¼¼ôôôÍ›7§ê.¥C#)@ëæL¶NS /_¾\SS“ÇãÉrÅÄÄØÙÙ1™L‡ÄÄDÇ…BáöíÛû÷ﯣ£3jÔ¨Ó§OƒÂœ)22ÒÚÚÚÈÈhåÊ•|>_i$þþ„W>ÜTÛîÍsP$¦‘ðŒÁP“ý,*⦥©È%j;@bj?‰ôܹ'"Ñ¿·ètµ„„gºD-HLíçÑ£¼ªª÷Þ‹%±±ÉÚ¸§ÇÄÔ~qNýƒÙ”øC9HLíD$’ÄÅ=“ãètZ\\/½¦Cbj'·nýUW§dç8±XzáÂs¡PÜõ.QS;‰J§+o=>¿¡wîdÄÔN®_Ï‹•?ÖÅqèbBzÛIjjNEE ~ò$ŸÅº}äÈÙQg笭U¹ðFôàO¨eäH;YÇźíááÒLúÞæ¤Ä„ $&i 1!H‰ AHLÒ@bB‚4˜¤Ä„ $&i 1!H‰ AHLÒ@bB‚4˜¤Ä„ $&i 1!H‰ AHLÒ@bB‚4˜¤Ä„ $&i 1!H‰ AHLÒ@bB‚4˜¤Ä„ $&i¿@êùóç9B®ÍnNMnQ‘¥ƒÃkªéR444:dee%‹!Ô³gϾxñÂÉɉtËÝMM޽=GÜËÖ‘¿xñ¢OçŠ œœœ¶mÛÖ–݇[·n5ŠAs&i 1!H‰ AHLÒPÍí.ŠŠŠæÍ›—’’BŠ5>Ÿuç·cllìêê:wî\&“Ù|Ñ8ŽÿðÃwïÞ½téÒÍ›7¿ÿþ{ÅÄ,ËÞÞ¾.M˜0A1Ri}eþ´©MÚ×€ª)&r9pà@YYÙöíÛß¼ysàÀšššÀÀÀæsUUU]¿~=&&>ÿüóØØX())   ««ÛJJJJ–/_ž˜˜(‹ 733k1£ŽŽÎœ9sZYJAbj™»wïîÞ½{À€ ¯¯¸cÇŽÅÔÐÐ&&& ®®®®®|>úöíÛV¤R)Ç“Ñ××o===??¿¶×>(›3M˜0áÒ¥K ,˜6mÚéÓ§¯^½:gΜ©S§;v <¸{÷n"%ŸÏwwwÏÊÊ€û÷ï/^¼ØÍÍÍÛÛûêÕ«€ãx||ü‚ ¦L™òÍ7ß<þ\~(**š0a½{÷|||<==<(‰”FÊËg$ÂZZZ ²¾tvv&Î7 ‹#""<=====#""Är7.W¬XÓ§Oo¾”ZP¬f+­=xð`éÒ¥îîî^^^§OŸnT‘f •J¥¿ÿþ»Ï”)S22Ú³_•ð§OŸ>|ØÏÏÅb=xðàèÑ£þþþÑÑÑ<oܸq÷îÝ“H$pïÞ=333{{{@:mÚ4¢Ú»wïÉÉÉ¿ýöÛ’%K¢££çÏŸÿã?*”ðã?þðÃ>$šXi¤¾¾~PPqT>üìÙ³3fÇÄÄ”••É,Ÿ?¾¤¤äÈ‘#ûöí{öìÙñãÇe‡~ýõWˆ‹‹k¾-(­¦¢5@À—C"‘Ô××oݺuÀ€'Ožô÷÷g±XÕÕÕ­,4666&&ÆÏÏ/::ÚÇÇ'""¢y·•B¥˜fÏž­¥¥åææÞÞÞZZZîîîPSS3xð`:Îf³àúõënnn†‰D"Çù|>“ÉtwwOJJRWW]¾|ù˜1c GŒ±dÉÅ‚üýý---—,YríÚµ¦"µµµ§NJ•üñÇ111¿üòË!C®\¹âíí}ãÆ âÐ¥K—V­Zebbbkk»lÙ²Gµµ-(­¦bÆ%K–L‘ãÑ£GL&óèÑ£†††ÄðZWW×ÊB/\¸ ߌí©œ3iiiNo6f̘;wîØÚÚ>}útíڵЧOŸýû÷Ÿ?þøñãôöö1bDII‰ü‘­­­bA–––DÀÊʪ¢¢¢™HEÁýû÷Çïèèèèèèããáêê ¥¥¥^^^²ÄÚÚÚmmE J«©˜ñäÉ“"ß¾}»wï^>ŸOÌðZ_¨X,n±[¤ûNÀÇfcc3dÈccchhhJ¥¡¡¡b±øÆ7nLHH022ÊÉɱ³ûg_Êüü|ESoß¾%Z§°°ÐÐа™HEp ³²²"ÚðO>ù$))‰8ª§§·ÿ~¢Skkk9N[«©hAi5[cª¡¡!44444tÔ¨Q"‘èÒ¥K­/tëÖ­-6c‹tß›–ÎÎΉäĉÄ8†ß¹s§®®N$ÑétuuõÉ“'>|øÞ½{çÑ£GÿûßÿM…‡‡ýõ×_‘‘‘“&Mj*²®®.99™8* kjjº¹¹}÷Ýw©©©%%%¯^½:|ø0qZ€1cưX¬²²²ÜÜÜVöº<Š”V“HL\ 6…H$‹Åt:](³·úúúVúÕW_É7#qÔVºï™‰F£;öÊ•+cÇŽ%b˜Læ† Ž9R^^nnn¾mÛ6&“9{öl‰DrèСêêjbÖÈÔĉ×®]+ˆûÄ Ö(ª««÷îÝKL•äÃ!!!ÑÑÑ,«¨¨ÈÀÀ`„ .$,/^¼8<<|éÒ¥†;vÙ²e•••mª¦¢¥Õìׯß!C¼¼¼þøã¦Léèèøûû‡……ijjz{{»ºº†„„„‡‡·¦Pƒ!‰>\UUegg·eËâú±MÿrܬY³***HyAâç1±IDAT%22²´´tóæÍ­ÏÒèÖ­Ò;¹äÞïµL˜0!&&fÖ¬Y²˜n:Ì …Â’’’K—.}ùå—Tû‚h-ÝTLË–-› MySQL++ Reference Manual
transaction.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2006-2009 by Educational Technology Resources, Inc. and
10  (c) 2008 by AboveNet, Inc. Others may also hold copyrights on code
11  in this file. See the CREDITS.txt file in the top directory of the
12  distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_TRANSACTION_H)
33 #define MYSQLPP_TRANSACTION_H
34 
35 #include "common.h"
36 
37 namespace mysqlpp {
38 
39 #if !defined(DOXYGEN_IGNORE)
40 // Make Doxygen ignore this
41 class MYSQLPP_EXPORT Connection;
42 #endif
43 
45 
46 class MYSQLPP_EXPORT Transaction
47 {
48 public:
59  serializable
60  };
61 
66  // the isolation scope will affect.
70  global
71  };
72 
79  Transaction(Connection& conn, bool consistent = false);
80 
90  Transaction(Connection& conn, IsolationLevel level,
91  IsolationScope scope = this_transaction,
92  bool consistent = false);
93 
102  ~Transaction();
103 
111  void commit();
112 
119  void rollback();
120 
121 private:
122  Connection& conn_;
123  bool finished_;
124 };
125 
126 
137 class MYSQLPP_EXPORT NoTransaction
138 {
139 public:
141  NoTransaction(Connection&, bool = false)
142  {
143  }
144 
147 
149  void commit() { }
150 
152  void rollback() { }
153 };
154 
155 } // end namespace mysqlpp
156 
157 #endif // !defined(MYSQLPP_TRANSACTION_H)
158 
void commit()
stub to replace Transaction::commit()
Definition: transaction.h:149
IsolationScope
Isolation level scopes defined in SQL.
Definition: transaction.h:67
void rollback()
stub to replace Transaction::rollback()
Definition: transaction.h:152
Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate template...
Definition: transaction.h:137
change level for this transaction only
Definition: transaction.h:68
only read rows committed by other transactions
Definition: transaction.h:57
Manages the connection to the database server.
Definition: connection.h:59
allow &quot;dirty reads&quot; from other transactions
Definition: transaction.h:56
Helper object for creating exception-safe SQL transactions.
Definition: transaction.h:46
~NoTransaction()
Destructor.
Definition: transaction.h:146
IsolationLevel
Transaction isolation levels defined in SQL.
Definition: transaction.h:55
other transactions do not affect repeated reads in this transaction
Definition: transaction.h:58
NoTransaction(Connection &, bool=false)
Constructor.
Definition: transaction.h:141
change level for all transactions in this session
Definition: transaction.h:69
This file includes top-level definitions for use both internal to the library, and outside it...
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_22.png0000644000372000001440000035156312502417165024030 0ustar robertousers‰PNG  IHDR£iu^™×bKGDÿÿÿ ½§“ IDATxœìÝy\W÷0ðBXBÂ"!ì BqAT*®<(µÕÖ EÄ*¸>*– .µ‚åQ ®­[µ(b5¨P\Z\רU1‚¶ì¸€l „„%Û¼L)B$`ð|ÿnfÎ=såÃñÞ™Ì0 Cè§4ú:¨Tz ?ƒJôgPé€þL³¯€þàåË—kÖ¬iiiéëDÀJGGçÈ‘#666?‚JJ}åÊ•yóæõu"àuþüùÀÀ@¨ô ZÉÉÉ}ø@„Î>‚ëô@•èÏ ÒýTz ?ƒJýDQQ‘ŒÛ²z ¢¢báÂ…¶¶¶ ÅÃÃ#55U‰Á»ëܹsi.\¸ Ü³–Ç 6l•Jõððصk—P(”ç@¥ÿKÉ•€uuu#FŒ “É ã?þX°`¿¿ÿµk×z3‡’’†oþùç••••••<@UþŸqãÆmÚ´©—“A566Ž5êáÇ111=Ú²eKRR’H$êòpCCÃÞÉß² EddääÉ“Oœ8ÿ8tèзoßîÝ»wÚ´i½–ƒX,®««Ã·uuuuuuB\.!dff&Ù-::º—“AEEE™˜˜ddd‰D„ÐàÁƒ§M›æêêzêÔ©eË–É>œF£õNÎ8˜Ó@ï!qqqÎÎÎ&&&ÑÑÑ vvvÛ¶mC…„„ã{r¹\2™üäÉ„ÐåË—ÝÜÜttt ”€‹Å‡vvv¦R©žžž™™™mWƒñÅá´´´!C†ÐéôÖÖV©èÝ•ä¶Û/^\¿~}Ûä###Ož<‰o×××/Y²„F£YYY………á$IIIÎÎÎ ؽ{·ä”;6 ‚ððpSSS:.„Badd¤‰‰ÉâÅ‹ëëëBcÇŽEïõŽÚæ,{x¥ö+õ\¤ŽI»d#""ð2ÓÓÓ OLL”:Ômo_þ‘ì9 €Â †<QBþþþŸ+ûùùq8œãÇ#„jkkoß¾mll,0 KLLtqq‹Å\.W[[ûرc•••'OžÔÔÔär¹Ç§Óé)))W¯^µ²²Bâ9àS§N-((ÈÎÎvppؾ}»ÔF Ãêëëcccñô$Ûl6!Äb±:;‘€€ooïââb&“éêꊇBÍ;—ÍfÇÆÆ"„êêê:kŒ‰‰™3gÎË—/™LæÈ‘#7oÞ¼gÏ&“ùìÙ³1cÆ„……IN¤]×íÛþ({x¥ö+õ\ÚÆl7ªx#>>555ír»ÿ¾©©©Œñü#Ù寃ÁþQ—è’ü•þñãdžñùüvÛ………B¡ÐÌÌ,##ðéÓ§GGGcÆb±H$ÒÞ½{Ùl¶X,nll‰D...ñññ’°§OŸîXé™L¦$7©åÉb±Bl6[ê§|>ŸH$æååá?¦¤¤à¡B™™™mϨ³F''§ÊÊJüð7n >|È!)))xËóçÏñíTzÃ+µ_©çÒãJŸ••E£ÑdŒ»˜ÝIÙdTzX½€^E¥RB$©Ý6BˆH$Ξ=;%%¥¶¶öæÍ›!##£ÌÌÌììl++«‰'Þ½{WCC£¤¤døðá’˜nnn;rttÄ7œœœ^¿~-£±####SSÓçÏŸ·m|øð¡‡‡GSSSUU•H$²··ÇÛ$¡,,,ÚžQgeeeæææøÍó>>>¥¥¥ååå’ÜœgÍšÕYn²É^©ýÊ8^DÛ144433ËÍÍmמ››ëîîŽoË3ÔÝÉžJï‘y󿥦¦&''{yyákòÍÍÍb±øüùó,+88xÆŒ,ËÒÒòéÓ§’£òóó;†Â'Ž¡‚‚¼ltÖ(ÕÌ™3÷íÛ×¶Î%&& 2™ljjJ$KJJðöââbKKK|[CCJYéØˆO|%óãììl ‹²²2üÓÜÜÜ;wÊÈ­Ç:ö+ã\ð¯Ì½yóFj¨€€€¨¨¨¶wÚóx¼˜˜___üGy†º»#Ù3Péà=2~üx¡Pˆ·„©S§^¼x‘Ãáðù|‰D&“ƒ‚‚ÂÃÃÓÒÒÞ¾}›žž¾yóæŽ¡Ö¯__TTôðáÃo¾ùfÑ¢E5644Hn°o»½sçÎÛ·o>xð€Éd~÷ÝwÄ 0‰Dš?~HHHiii^^Þ·ß~‹/?ÈoöìÙ[¶l)//g2™¾¾¾GŽ ܺuk^^^^^ÞÚµkËËË%;ã7Û+EÇ~¥ž‹¡¡!Bè—_~áp8lA’LDDDuuµ··wzzzaaajjê˜1c,--W¯^ï uüÛ‹â#)—.—þtIþëô’9egÛ«V­ÒÕÕåp8mƒÛÛÛkii999¥¥¥aÆçó£¢¢ììì(Ч§ç™3gP‡ëô'Nœ8p F[·n]ss³ÔFìÝËÏí.—••Í;ׂJ¥Ž=úÒ¥K’X,V`` ±±±¹¹yhh(JêImäp8K—.522266^±bÇkii ³°°000ð÷÷Ço^^^ ¥íʾN/{x;öÛÙ¹ìØ±ÃÐÐÐÞÞ>-- ß1.—»aÃWWW2™ìââ²cÇŽ¦¦¦ÎÆ¿íáms–$eC_§'`Ò®@è–äääùóç+å/êÖ­[ËÊÊ’’’ä?¤¨¨ÈÑÑQÒ{»e4Uè“¡& ÃÏϯãGðäx_´´´TTTÄÅÅ={¶¯sý\§€÷ENNΨQ£‚‚‚&Mš¤H}}ý•+WÊÓTá}jX½%Pâê== cõæô@•èÏ ÒýTz ?ƒoÙ€Òüüóϲw 1MM‚ì}P.¨ô –––D"Qöw«tu‡êëc±R‚Ú^K | ˆD¢ä™ùíÀ·ì@åþú«rãÆóOŸ¾ ùÏš5Þ::JxAr‚9=¨XŒ9’±ÿ5;;“””uîîû:#ðÁJªRWÇ]·.éÞ½‚ÐÐik×z“HľÎ|ˆ Ò€Jܾý÷Úµ‰TªÎÕ«¡}dÕ×é€|Ë”/6ööâű£FÙþö”yÐÇ`NÊ$‰#"~ýå—û3—-›@ Àwê@ƒJJÓØØ²lÙ©§O_ž=»ÒËkp_§BPé@Yêê¸K–œxù’uîÜêáÃmú:þ•” ¾¾ÉÏï§ÖVÁ¥Kë4îëtøTzP›Í›;÷ˆH„¥¥…Sú:Þ•ÒÐÐ4þOMMüÔÔuPæÁ{*=ôœ@ Z¾ütu5'%e™™A_§€Pé ç6nLf2_¦¦† dÒ×¹ Tzè¡}û®¥¤=xðæÞ½~p³=P/pï=t­¨¨:4ôìüù£ýýÇöu.tÜ‘]hnæöÙššÄK—ÖkkÃR(P3ð+ ]غ5åÍ›úôô¯¡Ìu¿µ ˹s9 ÆññÁ¶¶4¥´³³+++SJ(ð!°³³+))Q$¬Þ@§ž={=sæÁÁ¾ýv†²b„ÐÐPOOOeýXVVÖ¬Ô0§éx¼Ö5k\]­6mš®ÜÈcÇŽ7ožrc‚~I)³q¨ô ]dä¯uu<c5‰Dìë\è9¨ô EZÚ“³gsW˜›öu.(¾Oí½yÃÞ´é|@ÀØÉ“ú:•Þ!‰×®M41¡nßþE_ç€@¥€w?þÿ?.?rd™¬Õ×¹¨DQQ ´—í¤QVpœ$á¶]èêêŽ7.77W¹}áx<^xxø°aèTª‡‡Ç®]»„Ba·R}¯@¥€å澌‰ù-$ÄÇÍͺ¯sQ<¨|W/ôÅd2çÏŸ¯ôïŠ766Ž5êáÇ111=Ú²eKRR’H$’ºII öϳ 7mÚ¤Ü|wäÀ?ZZëןqs³^¿Þ§¯sQ'&&&fff½Ü—™™ÙîÝ»MMMkjjètº»ˆŠŠ211ÉÈÈ ‰¡ÁƒO›6ÍÕÕõÔ©SË–-븿X,®««Ã·i4Ztt´“Q ˜ÓÀ?öí»öú5ûÀMÍ>þÛH âââœMLL¢££ììì ¶mÛ† Æ÷är¹d2ùÉ“'¡Ë—/»¹¹éèè 4(!!!$‹>ìììL¥R===333Û®-ãKÍiiiC† ¡Óé!!!­­­RÑ»ëÒò¬Q×××/Y²„F£YYY………µ´´t@ $%%9;;0`÷îÝ!‘H´gÏžÁƒS©ÔqãÆåääHí‚D"iiitÖ£§§çB,KCC#,, nddtõêU©#†JLLŒˆˆÀË}zg#ÖY¥ÏÊÊ¢Ñh2F¬ÝyIÍGêÉÊ[LI•VïÅÆÞ.)©Þ·o¾†Æûrã4•JE‘H¤vÛ!"‘8{öì”””ÚÚÚ›7o „ŒŒŒ233³³³­¬¬&Nœx÷î] ’’’áÇKbº¹¹uìÈÑÑßprrzýúµŒÆÎ´+WŸ}öYUU•H$²··Çwppph{·lã³vÉ ¾zõª³´%}ñx¼•+WáíR{1b„žžÞÇïܹ3sæÌ#Fܹs'33óÓO?ílÄ ÍÌÌ:ÞÒŸ››ëîî.ÿàÈv'Û  Ò>teeµûö][»ÖÛÞ^™7v©Ô¼yóRSS“““½¼¼ð5ùææf±X|þüy‹©ôð~zÀ‡‹Ãiž0áû©S]wïöëµN ƒÁðóS´Ç­[·–••%%%ÉHQQ‘£££äÏ~»e4\ïNrr²âO‚'ç>\ûö]C}ûí̾N¤{ZZZ***âââΞ=Û×¹5wä>P/^TÆÅÝݺu†¾¾N_çÒ=999£F š4i’"qôõõW®\)O#À©éàÀê=àåç÷×råÊW½üJe­Þƒ¬Þ@ݼùüþýÂK—BÞÃ7 \°zøà¢ï¾Kûüóîî¶} *szÀ'>þ^ee}ròê¾N€ÞszÀ‡…Åâíß}ÕªÉææ†} ½æô€ËáÃ7µµ‰«VMî“Þ<(Bˆ°cÇüUfÈVUU¥x¨ô€HUUC|üýÈÈÏ)í^ŽùkJÊ£ BE¢W½Ü;PSFFF>>> Jø€ìÛwÍÔTá±½Ù©XŒÅÅÝÝ»÷wCC½„„åÞÞC{³w Ò>ååu Æ»wû‘HÄ^ë´®Žz63ó¯%K¼6nü„JU³§ô€~*=àCñÃ×mlŒçÎÕk=fe¯Y“ £Cº|yýðá6½Ö/mÁ½÷€BQQõ… ~õ•‘Ø÷Ѷm©sç™2ÅùÖ­PæA‚9=àƒ°ÿµAƒL¾øbd/ôÅá´¬XŸ•UõEpð„^è Òú¿¢¢êË—søÁ¿&ô••õ‹ý\WÇMM]7rä@Uw@—`õÐÿ>|ÓÖ–Ö ú?ÿ,ýÏö’Hš×®…A™ï ¨ô€~îÍvjêãµk½U=¡¿w¯0 àg77«ääÿššê«´/ä•ÐÏÅÅÝ0€2{¶»J{ÉÉ)ùòËÓ§»%$¬P»Þƒþ *= ?ãpZy©ô;ôYYÅ Ÿ3Ç}ÿþššðw¼_à7П%%e!„/þXu]‚Jè·.]zR[Û¸|ùDů¯o Œµ±pâÄÒÞ|Â.Ý•ÐoJsz@?ÔÔÄOM}ìï?FÁ/\øóÀë11ó<=Uòß” *= º|9·µUèçç¡ôÈ•oܘ¼dɸ Tòß”*= :s&Û××UéWЫª8Ë–ÅyzÚ÷Ý,åF@u Òú›¿ÿ~ûðaéÂ…c•–Ï40 ÿüóxP#pG ¿9w.ÇÖ–6~ü`å†Ý¶-µ¨¨ú·ßBõô´••‚ÿ–ú‘Hüë¯gÏvWîƒiÏËILÌ:x0ÀÞn¶j*= _ÉÊ*ªªâÌ;J‰1Ÿ>}µeË…Õ«'O›æªÄ°ôX½ô+ii¹}dekKSV@‹·lÙ©±cí·lùTÁP·nÝ***RJVàCãèè8yòäž •Т+Wž®[ç­¬€†…†ž Å?þ@$*º:mÚ4¡P¨”ÄÀ‡FSSS ôðXå¦}èîݧùóÏG(+à©S÷23_\¸°†N§*M(2 ???ÅCJrròüùó{|8\§ô—.=9ÒÆÒR9¯´ÉÏu),ì“Ñ£)% }*= Ÿhmþþû³™3•3¡oi¬Y“èáa»v­Ò®Ð'`õÐOܹó7—Ûúé§Ã”mÇŽËÕÕœ³gWjh(óÛzô>¨ô€~âæÍçÆY[X*êÆüS§îýüó—ææJˆ@ß‚Õ{@€aØÍ›Ï½½‡*ª¦¦qÆssæ¸+kyàýQTT¤Ä „^ûÒ —Ë ³³³ÓÕÕuttŒŒŒliiQi</<<|ذaT*ÕÃÃc×®]r~oB¹ƒ¬0§ôýUYYYïíí¬x¨o¿MÑÖ&íØ1[ñP@YÖ­[W^^~ñâEkkë/^„„„°X¬C‡©¨»ÆÆÆÑ£G›ššÆÄÄ 4(//oÛ¶m7nܸyó&‘Hì¸IIÉèÑ£kkkB†††›6mRQb=•Ðdd¼01¡º¹Y+ç·ß˜W®vìXeeåÉ“'555¹\îñãÇétzJJJEEÅÕ«W­¬¬B………øŸ}|cêÔ©ÙÙÙÛ·o—ÚˆaX}}}ll,ž^Ûm< †a±±±–––ééé5557nÜpppÀ{AÍ;—ÍfÇÆÆ"„êêê0 ðöö...f2™®®®’~?ùä“[·nq¹Ü˜˜˜9sæ¼|ù’ÉdŽ9róæÍ†]»vÍÒÒR[[ÛÇÇgÏž=eeexRsæp8ZZZAAA¯_¿NLLDUWWïÙ³ÇÅÅ…Éd>{öl̘1aaax„ŽÝ±Ùl„PMMM»šû÷šÊº¶)áÛO¶³a‘Á`(R¯¡ÒÔÞ¥KO¬­¿®¯ç)äÚµgææ_ed}ztt4†a,‹D"íÝ»—Íf‹ÅâÆÆF‘Häââ/ {úô鎕žÉdâŸ2 ©²SÅ+½««kRR’¤ýÌ™3’JŸ™™Ù6>ŸO$óòòð=SRR:öëääTYY‰o߸qcøðáø¶P(ÌÎÎŽŠŠruu%‰xRsnmm}ñâ—ˉD·o߯»2dHJJ ¾ÛóçÏ%Û»ë¬ÒgeeÑh4C‡·H¶¥ž¬Ôa‘1È’^©ô°zP{÷ïfm`@îq.·uëÖ”yó<¦LQÂ=} ¢R©!‰Ôn!D$gÏž’’R[[{óæÍ€€„‘‘Qfffvv¶••ÕĉïÞ½«¡¡QRR2|øpIL77·Ž9:þs‘ÂÉÉéõë×2e+..vuý÷-C‡þû  ‹¶ùWUU‰D"{{{üGINNNøFYY™¹¹9@ >>>¥¥¥<ïܹs¡1cÆlÛ¶Éd~óÍ77nììD´´´ |}}ÝÝÝãããñÊËË%»9;;Ïš5«³î ÍÌÌrssÛfnn®»»»ü£$ãdÛ ‹ªA¥¨½ììOOE"|ÿý>_øÝn•Ð IDATw_(+%Õ™7o^jjjrr²——¾&ßÜÜ,‹ÏŸ?Ïb±‚ƒƒg̘Áb±,--Ÿ>}*9*??¿c(|ö‰*((ÀkOg² 8°mü/^H¶54Þ©2¦¦¦D"±¤¤ÿ±¸¸ØÒÒß–”=|ÞŒOFÙlvvv6†a .|öì¾@h÷® v9777ûùù…‡‡?~üøèÑ£øGeeeøvnnîÎ;;ë!%‰$]ðx¼˜˜___ùGIÆÉ¶UƒJPol6¯°°ÊÃîǘÌW¿üò 2òsCÞ¯ ôšñãÇ …¨¨¨ÀÀ@¼…@ L:õâÅ‹‡Ïç“H$2™ž––ööíÛôôôÍ›7w µ~ýú¢¢¢‡~óÍ7‹-ꬱ¡¡¿i Ý¶Äš5k6nÜxýúõººº[·nmß¾½³/”“H¤ùó燄„”––æåå}ûí·ø²D[³gÏÞ²eKyy9“Éôõõ=rä…BY¼xñüùó¯^½ZRRòàÁƒ°°0ÿÎN¤µµ•Ïçkii577GFF"„·nÝš—————·víZü†>©Ý!„"""ª««½½½ÓÓÓ SSSÇŒcii¹zõjCÇår»{²½¤Çëþð>¸v홥eh/Ò‹DâiÓö-\xL¹YI…ä»N/™bv¶½jÕ*]]]‡#9ŠÁ`ØÛÛkii999¥¥¥aÆçó£¢¢ììì(Ч§'~í¼Ýuú'N 8F£­[·®¹¹Yj#öî-fm·%)‰D¢ØÛÛøúú¦¥¥™˜˜t–?‹Å 466677 •ô+9‡³téR###ccã+Vðx< ÄBáöíÛÝÜÜtuummm7mÚÔ6·Ž9ïß¿À€ÖÖÖGõ÷÷§Óé---aaaþþþl6[Fw†q¹Ü 6¸ºº’Éd—;v455uÖ£@ ðòò¢P(톨ãÉÊøg•îÈ|Ðþ÷¿K“'Çôøð³g³ml6¼UbJ‘§ÒËã›o¾Y¸pa·iWMÛý(£Q—/_ÎÍÍ•üxáÂÉmtªÖãœÕ¨G îÈ|àrrJÆŒéá[e9œæ]»®|ùå8GGSåf¥"---%%%qqqË—/ïë\þÅd2-Zôøñ㦦¦ìììmÛ¶I}¼ è+ðŒ<€knæ3™¯–.õêÙá\Ç0´aÃ4åf¥:999³fÍZ½zõ¤I“‰£¯¯¿råJyå±qãÆ¦¦¦/¾ø¢¦¦fРAAAA=‹Ó=ÎYzTð¾Îz('§dÖ¬CÙÙßÚØw÷Ø¿þªœ:uïÎs?VEnƒáçç×;Ý~#99yþüù=®×°zPcLæ+Òƒ2ڵ늃ƒ©¿ÿX¥gÀ{VïjìÙ³×}dÕƒïß/ºyó9ƒ±ZS&< Ÿƒ_q€ËÏãâbÙÝ£0 Û±ãÒ”)ÎãÇVEV¼W ÒÔUk«°°°ÊÕµÛ•þÆügÏ^oÝú™*²à}• ®þþ»R(wwN/cÑÑ¿}úé0gg¹õ €ºƒëôu•ŸÿFOOÛÎΤ[G]¹’[TTuâÄRe%ƒ¦¦Vpðþ… ƒE"n×{БHìñ±Péê*/¯ÂÙÙBCCú#Ö¥ Å11¿Ï™3jРîýÿ@q–ޱùíÛÆÐÐ¥}4 —{êÎÔ´çw‚JPWÿ]éìlÞ­C.]zòú5+)i…ŠR’ª±±e×®+ Æœœ¼ÎÖ–Ö›½• ®Š‹k¦Nuíz¿ÿƒaØ¡C7çÍóèÍZ{çÎßëÖ%ikkž:ìããÒký • –x¼ÖêjŽ]7jvzz^QQu||/=’ðŸ~ÊŒ‰ùÍÇÇeß¾ùjðJ\Ð/A¥¨¥òò: úu;Þ¡C7?ùä£{ò@½îª­å®_ŸôàAÑwßÍZ²d\/ô@g ÒÔRii ‘¨!ÙÎÊ*ÎÍ}¹kוf…{ñ¢bñ⺺¤«WC‡…ïò>ß§¨¥ÒÒZKK#IÞ¯=šáéi?|¸J³B¥§?›1ãGËôô PæÁû*=@-•–ÖÊ‘>?ÿMFƋի§¨4%„о}éÁÁ§æÏsòäR2YKÕÝ X½¨¥òòZGGy¿a|òä]ú”)Î*M):úê¡C7~²~½J; [`NPK¯_³­¬ŒäÙ³¡¡é×_MèÖ3vºkß¾k‡gìÝëe¼o`NPKUU tº¾<{ž;÷‰Dœ7o”ê’Ù·/ý‡n=8sæÕõ@Ï@¥¨Ÿ††¦ÖV¡©iוðӧïÏží®§§­¢d~þùöþý×wíše¼Ÿ`õ ~ªª8!yæô÷ï••Õ.^ü±Š2IM}üÝwiÿû߬/¿„/̓÷Tz€ú©®æ „ÌÌ ºÜ31ñ»»­Š^P{çÎß_}uæë¯§WE|”*=@ý¼}ËÑÖÖ40Е½[UUÃï¿? TÉ„þÅ‹ŠåËãgÏvÿú멪ˆ€²@¥¨Ÿêjމ •@èâ^ú´´\]]ҌԞ@ee}@ÀÏ#F ܽۯË4è[Péê§¶¶ÑÄ„Úån.<œ1c„®®’Ÿ`ÓÔÄ_²ä¤‘‘^lìùÒ@_JP? -úú],Ýÿý÷Û¼¼7_|1R¹]cz¶²²>..ˆJÕQnpT¾eP?Í]VúK—ž˜™xzÚ+·ë®_¿žwñâÚÞy'Šƒ9=@ýp8-²çÓ†¥¦>ž9s¸rŸ‹wùrî¾}×ð9r Ã RPéê§±±Y__V¥òäeYY­r—îÿþûí×_Ÿ ¯ô+¨Tz€úápZ¨TY«÷—/çhN>ÜF)}=zT}uëÖŠÜÆòâÅ ¥ä>dÎÎÎìîQPéjF(c¦©Ùé#knÞ|>y²³Rîºg³y+Vœž>}ØÊ•“‰sèС±cÇZ[+í¾ðzõêÕ¡C‡ Òú?‘HŒêìát55Ož”¯^=Y)}……1ˆDÂîÝóêçç§xðÁJNNž?~„JP3!ÔÙœ>3ó/‰8qâÅ;:}úþù.¬éò)=¼Ïà&R€š ñJ/ýÏWfæ‹Ñ£ééi+ØËóçÛ·ÿº~ýÔÑ£) €¾• f„B1êdNaØýû…“&9)Ø…@ úê«3®®Vë×û( €>«÷5ƒÏéI$)•¿þz[[ËõòrT°‹~¸^VV›‘±¾=úø%¨üŽ< )¾²³‹ôõu‡µP$~nî˃oFEͲ¶ Hœ÷JQQ‘²ž#„"EEE=è«¢¢báÂ…¶¶¶ ÅÃÃ#55UY))WÛSàñxáááÆ £R©»ví …Ý Ò· ÒÔ >ÏÆë};YYÅcÆ "{þ—­µU¸~ý™‰‡,X0¦ç)~Ø 7mÚ„*))¡Ñh’öººº#FÉdƒñÇ,X°ÀßßÿÚµk}—i×GõðáØ˜˜GmÙ²%))ÉÇÇG$IÝ¿í)KÆ¡ÏÁê=@͉Dôwà·…aXVVñš5ÞŠÿñÇUUcµ"A>p4-::!$‹ëêê$í‘‘‘“'O>qâþãСCß¾}»wïÞiÓ¦õM¢rˆŠŠ211ÉÈÈÀë|ø°³³3•JõôôÌÌÌl»†Œ/)§¥¥ 2„N§‡„„´¶¶JmDï®?w¶M ’’’œ °{÷î¶{Ž;!dff†ïyñâÅõë×·=622òäÉ“øv}}ý’%Kh4š••UXXXKKK—c"ÏW®\ÁÌÍÍ%u·cÎ"‘hÏž=ƒ¦R©ãÆËÉÉÁ÷LLLŒˆˆÀË$‰α=„ƒÁèr‡ƒÏzýüü8ÎñãÇBµµµ·oß666†%&&º¸¸ˆÅb.—«­­}ìØ±ÊÊÊ“'Ojjjr¹ÜãÇÓéô”””ŠŠŠ«W¯ZYY!„ ñ?øøÆÔ©S ²³³¶oß.µðúúúØØX<½¶Ûx@ÉöܹsÙlvll,B¨®®®]_ønl6!Äb±:;ý€€ooïââb&“éêêŠ' {LºÜÃáhii½~ý:11!T]]-5çýû÷·4 „žsMMM»Tïß¿ojj*c$ñÝÚnwvvíÒýÂ`0zVµ¡ÒÔLK‹ÀÜü«ë×óÚµ‡†ž;÷pÃÆÅÝ80¬¤¤Z±ì¤“³Ò?~üÃ0>Ÿßn»°°P(š™™edd`6}úôèèh ÃX,‰DÚ»w/›Í‹Å"‘ÈÅÅ%>>^öôéÓ+=“ÉÄ?e0Re§Ú¶Ògff¶MUj¥g±Xxí”Ïç‰Ä¼¼þMSRRðdI—;´¶¶¾xñ‚ËåŠD¢Û·o·=ª]΃î8hUú¬¬,&c$ñɶŒ³k—†Œ1Ǩô°zP3ø w¯Ó3™¯ÜÜzø`ùª*Î÷ß_Y·ÎÛÎÎDÑü@¥RB$©Ý6BˆH$Ξ=;%%¥¶¶öæÍ›!##£ÌÌÌììl++«‰'Þ½{WCC£¤¤døðá’˜nnn;rtü狈NNN¯_¿–Ñ(|,IU*###SSÓçÏŸ·m|øð¡‡‡GSSSUU•H$²·ÿçÊ‹ƒƒƒ$cÒåZZZ¾¾¾îîîñññ2r~õêUÇA344433ËÍÍmw.¹¹¹îîîø¶<ƒ&ãìä:ÅA¥¨MM €??G¢¥EPPðö£¬zs×®+P¼›OÕæÍ›—šššœœìåå…¯É777‹ÅâóçϳX¬ààà3f°X,KK˧OŸJŽÊÏÏï Ÿn"„ ðbÓY£<¤~ã±£™3gîÛ·ŸËâ™L655%‰%%%x{qq±¥¥¥ü t¦¹¹ÙÏÏ/<<üñãÇG•‘³­­­ÔA ˆŠŠj{§=Ç‹‰‰ñõõÅ”gÐdœœC§ ¨ôõ££Cjnæ·myñ¢R(÷lNŸ•U|៑‘Ÿëè¨vj¥ ñãÇ …¨¨¨ÀÀ@¼…@ L:õâÅ‹‡Ïç“H$2™ž––ööíÛôôôÍ›7w µ~ýú¢¢¢‡~óÍ7‹-ꬱ¡¡Ar«|Ûínár¹øÆÎ;oß¾øàÁ&“ùÝwßÚÚ½÷×ïï¿ß†‡'çæ–Oÿîö½ *=@ý’54uu\„þ©ôrÎéÏœÉ&‹¬ÚüÚHLÌŠˆHut4½z5´Ç/Õ@PéêGSSÃØ˜RUÅAUVÖëëëÊ3Q‰Ä¿ürßÏo´¡!Yõ9¢ššÆuë’²²Š6nüdÕªÉøÍƒô>¨ôµdiiôæ !ôömƒ¹¹<‡\¿ž_QQ¿|ù§†BOž¼\µê´H$>wnµ§§}/ô@gàÿ˜µdii„¯Û×Õqå|:ÞéÓ÷'LbkKSqj(-íÉìÙ‡>úÈ*##Ê<ès0§¨% ÃGÊBõõMò¬ÆWß½[¬Ò¬Äb,2ò×S§înßþŲe½±x@—`NPK†oÞÔ#„Øl¹*}BÂkëÞÞCU—Rk«píÚÄ„„@™ï˜ÓÔ’¥¥QM G Õ×7 f-{g>_xþüŸ+WNÒÐ ¨(Ÿ–Á’%'óóßœ?ÿ_n<°UƒJPK†b1VYY/Ïêýµkyͪ{Ÿ —ÛºhÑÏ/_Ö]ºbg×½wí j°zPK––†¡7oêë뛌Œº¨ô.ü9a¢ŠLx¼ÊüÅ‹k Ìƒ÷Tz€Z255 P´‹‹«¹ÜVY•¾¦¦13óÅܹ*yŸ@ Z¶ìTIIõ™3+¡Ìƒ÷¬ÞÔ•qQQ5†a::$»¥¥=!“µ?ùÄMé `¶~ý™ÜÜW))kœÌ•¥€JPWvv&ee5!mmY•þÂ…??ýt˜*t¿yó…ë×ó.\Xãì e¼¿`õ ®ììh¥¥µ!míNß?[VVËd¾š5k„Ò{?|8ãìÙìŸ~Z<|xO^$ @¯9=@]ÙÙÑ^¾d!™sú+WžÒéÔ?Vò[bŒ?¾ÿþjLÌ<åF@é`NPW¶¶&­­„Œ•ùkמM™2T¹_£ÏÎ.Þ´éü²e-êÕ—ÜÐ3PéêÊÖÖßÐÒ’^髪8Ož¼ôõuUb§¯_³—/ÿφFF~®Ä°¨Tz€º233ÐÕÕB‘HÒ¯Ó_¿ž§£Cš0aˆ²zlll 8nm=àÈ‘@Õ=nå‚JPWÁÆfBäïpíZÞ„ CdO~b1¶~ý™úú¦'–ªâN~T*=@ hŒ¤•ú–Áýû…ÿùÒ^ióÃ×oÝzqòäR CeÅ @¥¨1ê¤Ògg·¶ ½½•ÒQfæ_\ß¶mƨQðö f ÒÔ~S^CCsÇîÝ+tp ›š(ÞKeeýºu‰sçŽ †wÑõ• Ælmi!üù9íܹó÷øñƒïB Ÿ²°0Œ‰™§x4zÜTPc&&T„PIIu»öº:îóç¡¡Óï"&æ·ââêk×6tö]>EØÙÙ•••)=,Pwvvv%%%ÊŠ• Æðê[\\Ó®ýÁƒ"0nœƒ‚ñ¯_Ïûé§ÌŸ~ZŒ/(]YYYhh¨§'<ü+++ëÀJ • ÆÈd-„Ð_U¶kÏÉ):ÔB__W‘à557&Ï™ã>sæpEâÈ6vìØyóàºø—Ô;L×éj rNiiXüÎÇÇË=<½I>,ŒA¡è|ÿý\ãз ÒÔ˜®. !ÔÔÄù²NÒØÚ*ÌÏ3rä@E"'%eý¿ÿ÷×±c_êéi+š%} *=@ász"‘—÷FÒ˜—÷F )RéËÊj##]½z²««¥² OA¥¨1 ‚¶¶&®Ÿ—÷ZÒ˜›[>`€þø¼À0,<œ1p ñ† ¾JJ€¾• ÞÈdm33ƒ¶sú'O^nC ôð 4ññ÷þø£ôÇ:{qNRTTÔãêˆ@ )+Zôøtx<^xxø°aèTª‡‡Ç®]»„B¡J{ìMPéêÍÀ@×МŸ_!iÉË{ãæfݳhUU ÑÑ¿-[6Öí•®¤¤„FSþ—Û†544Ü´iSw#466Ž5êáÇ111=Ú²eKRR’H$RQ½ ¾ePoFFd*U·ªª¡ªªÁÔԀϖ”T;9™÷,ÚÖ­)tºþ¦MÓ•›$@‰Å⺺º®÷S ,F‹ŽŽîn„¨¨(“ŒŒ "‘ˆ|ø°³³3•JõôôÌÌÌl»ìŒ¯B§¥¥ 2„N§‡„„´¶¶JmDï.Yw¶|M ’’’œ °{÷n„ÐØ±cBffÿüÓ‚ððpSSS:.ðP666÷îÝ»råʈ#Èd²¹¹9^M…Badd¤‰‰ÉâÅ‹ëëëÛ…•$óÅ_|ýõ×xG­­­FFFW¯^•Ú)B(111""/ó8==½ðððÄÄD©# µG„P}}ý’%Kh4š••UXXXKK‹Ôq訳ÿþ÷—¥KONž³cÇe ÃRRÙØlàó…ÝÃãµzx|·råiäØ)„ƒÁèr‡sâÄ „ŸŸ‡Ã9~ü8B¨¶¶ööíÛÆÆÆðÄÄD±XÌårµµµ;VYYyòäIMMM.—{üøq:ž’’RQQqõêU+++„Paa!^ð©S§dgg;88lß¾]j#†aõõõ±±±xzm·ñ€’í¹sç²ÙìØØX„P]]¤/\LLÌœ9s^¾|Éd2G޹yóf|‡O>ùäÖ­[•••ZZZAAA¯_¿NLLDUWWïÙ³ÇÅÅ…Éd>{öl̘1aaa’Ìñ˜’ísçÎÙØØˆÅb ÃÒÒÒ,,,ð!êØ)›ÍFÕÔÔ´öû÷šÊ–v=bàíí]\\Ìd2]]]ñ±ê8]þV0 åVg¨ôõ¶uëÅY³…†ž;÷0†aßeÒ¤èĉ޾:dÈ–ª*޲”EÎJÿøñc Ãø|~»íÂÂB¡Phff–‘‘aØôéÓ£££1 c±X$iïÞ½l6[,766ŠD"—øøxIØÓ§Ow¬ôL&ÿ”Á`888Hm”jÛJŸ™™Ù6Õv•ÞÉÉ©²²ß¾qãÆðáÃÛv×ÚÚúâÅ .—+‰nß¾G2dHJJ ~ÈóçÏñm©u—Çãéééýñdž-X°`Ë–-uÚY¥ÏÊÊ¢Ñh2†¥]|>ŸH$æååáí)))øXu(éE¹•VïêÍȈ\_ß4b„ÍÓ§¯D"ñß¿2¤ÛK÷¯_³Ëüê«©t:UIe‹›‡ IDAT*ˆJ¥"„H$R»m„‘Hœ={vJJJmmíÍ›7BFFF™™™ÙÙÙVVV'N¼{÷®††FIIÉðáÿ>Ö×ÍÍ­cGŽŽŽø†““Óëׯe4Êâmªí”••™››àããSZZ*é!¤¥¥UPPàëëëîîT^^.IÆÙÙyÖ¬YuM&“?ÿüó .ðx¼Ë—//]º´³N ÍÌÌrssÛEÈÍÍuww—ªªªD"‘½½=þ£ƒƒƒdOÙãÐ  ÒÔ›¡!™ÅâŽ1Ëm-*ª.)©qp0ín;.ÛÚÒ–/WË×ÏÏ›7/55599ÙËË _“onn‹ÅçÏŸg±XÁÁÁ3fÌ`±X–––OŸ>••ŸŸß1>CEàõ©³FyhhÈ*1øŒŸt²Ùìììl¼¯ˆÍÍÍ~~~ááá?>zô(þ‘………äÕ¹¹¹;wî”ßßßÿÂ… —.]rww—”j©DEEµ½ÓžÇãÅÄÄøúúÊ?¦¦¦D"QòºââbKKKyÆ¡@¥¨7SSƒÚZ®ƒƒ©®®ÖãÇe/_ÖY[èV„?ÿ,½|9wË–O‰Dµü“8~üx¡Pˆ·„©S§^¼x‘Ãáðù|‰D&“ƒ‚‚ÂÃÃÓÒÒÞ¾}›žž¾yóæŽ¡Ö¯__TTôðáÃo¾ùfÑ¢E5644à7 ´Û–—ËÅ7fÏž½eË–òòr&“éëë{äÈ‘¶»µ¶¶òù|--­æææÈÈH„Pccc``àÖ­[óòòòòòÖ®][^^Þ1¬ÄÔ©SÙlvdddPP¤Qj§ÕÕÕÞÞÞééé………©©©cÆŒ±´´\½zµŒai×#‰Dš?~HHHiii^^Þ·ß~‹¯¯¼”x%zßÇ%ææ_UT°gÌøqíÚDsó¯îßïúR¨„X,þì³æÍ;ªº e@ò]§o{ñ[êöªU«tuu9œo2`0öööZZZNNNiii†ñùü¨¨(;;; …âééyæÌÔá:ý‰'H£ÑÖ­[×ÜÜ,µëäÒx—© /// …‚7r8œ¥K—¯X±‚Çãµ»¿ÿþX[[=zÔßߟN§·´´„……YXXøûû³Ùl ÃÚ†maÅŠ …ËåJZ:vŠ·s¹Ü 6¸ºº’Éd—;v455u6,õÈb±ÍÍÍCCCñ±êlLdPúuz¦ì·ã@ozõŠ5fÌÿ®\ù*=ýYZÚ“W¯Xüaee$çáééÏ–-;•ž¾¡O•C  †ŸŸŸ‚q¶nÝZVV–””$ÿ!EEEŽŽŽ’ÐîG”>äääùóç+±Sµ\ª 33PUÅ=zÐë×l‰hnn ç±b1¶{÷ïŸ~:L}Ÿˆ×ÒÒRRR·|ùò¾Î¼§ ÒÔ‰D42"¿}Û0z´B˜¡!YþËí—/çUmÙò©J3T©œœœQ£FMš4I‘8úúú+W®”§ñƒÒ?Fà=zôŒ©©AUUƒ¾¾®¡¡ž¦¦¼e^,Æöï¿öÅ#mm•ÿ0ö^3qâD‹Õƒ%ßöÆÑéôcÇŽµÛGj㥌ÌéjÏÜÜ ²²!dh¨ÛÜ,ó¨+Wž––Ö|ýõ4U¦@߃JP{——×!„H$M§™Çkíò±;pàÚÌ™#ÔzB€< ÒÔžµµñË—u!¡P,cOž”wyHFÆóªµk½UŸ]§š›ùDâûøH>ÐÏ@¥¨=kk£êjŸ/lhh22ÒËÉ)éòcÇ2}|\zür[‰Dâ3g²?þx—¾þÄ>I|PàŽ<€Ú³±1‹±òò:6›7zô œœRÙû?}ú*+«89ù¿½“^[†]¸ðçž=¿×Ô4.[61""zÇŽrü-gપª”*=@íÙØ @¼‹±aì"‰ØÙþ§NÝuv¶ðòrìÅB(?ÿMDDjvvÉgŸ Û¼yº ‹µæÕ«W½œxÏùøø(1 Tz€Ú30 S©:%%5¡‘#?þÿòòÞŒa#uçêêÆ_}²sçìÞÌÏîßíèÑ[îî¶W®|%Émß¾}½™ø0A¥ôƒ™U!„è4%'§¤³Jî\ŽŽiÖ,÷^ËíîÝ‚ððd.·åÈ‘À3†w}Jwäú{{zYYBˆBÑñð°ËÉ)–º†agÏfÏ›çA&kõBVõõM!!I =Ú.3s”yÐ'`Nèìíé÷ï!„Èd­1cì¼a@h·ÛÝ»ååu‹yöBJ……UAAql6ïС€Ù³{o €v`Nèèµµ!==m;‹WX(åæ³gsFŽ8dˆ™ªó¹zõé§Ÿ Ñ(·nm‚2úTz@àà@‰Ä!mmM77+CCòíÛ·Û‡ÅâýösÁ‚1*ÍD mܘ¼bÅé/¿ôºpa ÏÆ} *= ?°³3ÑÐ@@ ‰ãÆ9Þ»WØnŸ+Wž‰3gªðb9›Í Œ½páÏ\¸uëgò¿UÕßB@ £C22¢H®Ë{y9fe ¢¶û\ºôdêT}}]åðòeÝŒ?––Ö\º´~îÜQ*ê€î‚Jè',, %Û& ær[ss_JZªª²³‹?ÿ|¤ŠzÏË{3s溺Z—/åêj©¢^è¨ô€~ÂÂÂPò¾u;;këwîH>ýí7¦žžö”)ΪèšÉ|5wî{{úÅ‹ká€òòÞà?Ž?X(gg#„nÝzA$j(}龪ªaÁ‚c¦§Nëè”eJè'´´41 =þO¥§Ñ(NNføwínÝz1v¬½žž¶»«­åΞ}ÄÈHï—_–«â¢Ê•ÐOhii"ôïœ!4~üà;w D"ñ;“&9)±/¯uñâX%%­ P”ù”*= ŸÀ/“?^‰?,!äå5ø¯¿*oß.`³y“'+­Ò‹Dâ5k_¾¬‹_flLQVXT*= ŸÐÒ""„Z[¥¥µx‹§§½¦¦Æ¹s9––FJ|ÖýŽ—oßþëôéåteÅ@u Òú ]]m„¦¦F~þ? øzzÚ#G|ø°ôã”ÕË©Swcco9èî>PY1P)¨ô€~‚JÕFÙØK*=Bèã««9cÇRJ7näGDüºaƒ¯*¾°€Š@¥ôTªBhàÀw*½™™>†a––FŠÇ/-­Y¿þÌ´i®ë×û( €^•ÐOP(:!sóÿÏÞÇEU®f†fg†m@PE3¼Ø½vËD3—›ZY¿Ê4%—r‰–«™yo¥WsO4ÅÄP+K½¸¤¢¤âÆ";30300Ûùýq¼ã8Œˆ ¨Ãóýëœ÷¼ç=ï9ðáá¼ï{Þ—sõj•)Q¥j§R)7nÔ]ÔÞÞ¥ÐÇ/8³zõË..¬ž¬/B½#=BÈvxy¹ Æ[·ú66¶€)Ò%Óh´YYÅ÷-¤±Q=þžI“ÇÇõluŸEEEJ·MüG¡PŠŠŠº«4¸»zkLúFZZZ’““ÃÃÜœ¢££?ÿüó.‹ëÞG×Cð+;„íðòr€ÊJyT”„F£ÚÙÑ]]ÉCb1'0P”™yí¾ñû“O0ôeËþÞãÕEåÌ™3‰Ä<…N§/X°à¡ T©T111B¡påÊ•~~~ùùùK–,9räÈÑ£Gi4ZÇü%%%111 ÀápåÒ½ßéB¶ƒËe³XÌ›7åöö 77GGG;ó£Ï<|ßoíΜ)Ú»÷Ï%KÆ:;Û÷dMÑÃãóù¢»ñx¼+Vÿرc‰‰‰ãÆ;þ|YYÙÖ­[­æ7äö#^ºw`¤GÙOO·ÊJ°ÙöZí] °#GÊŠŠêÊËïu®^oüè£ôáÃÇØã}@ eË–-2™ŒÏç¯X±bÇŽ‰ÄÅÅeÉ’%0{öì™3g’9Õj5‹Åºté\Í»_÷v „ÐãUW§‹çlÙrJ,ž““Sáî>÷¿ÿ½««~åÊ_¢¢>6O¹rå–‡ÇÜýû/ônMoëz?½é õ^Ûo¾ù¦ƒƒƒR©4µgÏ©TÊd2ƒƒƒ322‚Ðjµ)))‰„ÍfÇÆÆ’«£ZôsoÚ´ÉÇLJÇã½ûî»Æj"qw§xç]éAÈåò©S§r¹\±X|yîÜÑ%Ìw—¶¶¶’’’-[¶¼þúë».艃‘!dk‚‚Drgg …2dˆ^ÞM•ªÍt”J¥ŒlŠôk×þ78Xü׿†?¦ÊvsçÎEEE͘1cĈR޳³ó¬Y³º’ØGØÆ½c¤GÙš  Quu39î!‘]jžáÙgC²³K•JÍ­[Š.½þzücªi·‰—Ëåäðõbúæ›$Ö¯_o‘Çjba÷Ž‘!dk‚‚Ä*•†Á Çö÷X|U?b„ŒB¡?~cË–S<žÓ8÷-BÝײCÙr¨éMuèP‹¯êí£¢|ûíò±c×Þzk$ù?B¶ ßéB¶ÆÓӕɤ·'B<ØÿòåJó®z5*ä÷߯hµú§úz„º#=BÈÖP(­Öé¥ñçŸeæyF’µ´´hZÀ¾÷ét†mÛN_½êö¸*€úl½GÙ ggVCÃí)̧à`щ×GŽ 6ehnÖŸïôXª§×ü1{Íšßkk•<ž‘ žâüГ#=BÈq8¬›7ï¬C?|xЉ7Ì3lß~šËe_»VÕËÓë»wŸû׿~olT¿öZü›oŽxç×wïN£Pºs¦ôT{ùå—»·@Œô!Äá°´ZƒBÑB6ÎôÝw'jk•B¡3¨Tm¿þzù•WoÝúGmm³PèÒ;µÊË»ùÁ{/_®;6"99Q*ÀgŸ}6nܸީz*˜ÖÐë.éB6ˆÃq€7j–ÀàÁ~ íÔ©‚ñã£àС˜3gô?œË̼þò˃zº>juûªU¿nÙr*"Âëðá÷û÷÷4òóóóóóëé  ¾ Gä!„l›mO§S¯_¯!w˜ÑѾ'OÞnÀOO¿Ê㱇õ?zÔr]»n·woöСŸýôÓÅuë¦<8Ç<Ì#Ô 0Ò#„l•Je±ìrs+L)ÇÐ ì†GFz„ ²³£S(`0óóo‘)T*eèЀcÇ®üùgYBB¨)ç¨Q!Ýéåò–É“¿Û¼ùäºuÓV¯žÈb1»±p„Fz„ ²·gèõF.—}w~`VV)N5ŸBgÔ¨’’úÒÒún¹îÕ«UùËê›7åÎyþyì•GOŒô!Äb15]X˜§ù ¼øø`N$&´%EGKœŽ»öèÍ̼þ _ûû ~ýu.¹ÊBOŒô!äää RiÂýÍßéÅb*•J~joB§SGŒzôü~ÈúÇ?6þõ¯áßÿº³³ÃýO@¨·`¤GÙ £‘ ––6(•2ñòåJ£ÑXW§²ÈüÌ3!gÏ©Õí}¹ï¿?3~ÚÛoúê«—q \ô¤ÁH²Aä[µ¯/Ÿ ˆ¼¼Û¯õgι¸8Ö67·šg5Jf0ÿø£à᮵}ûéE‹~üðÿ-Xð…‚kÕ 'Fz„ rqqƒ*¹˜ðOŸ.Œ‹ ¤R)«Ýp¹ì°0¯‡kÀßµ+ëÃ÷}òÉ‹ÿ÷Ïýô¥3†uWÍêvéB6ÈÍÍ‘Á ÕÔ4…‡{åäTÀ5*U[t´ïˆA'Nܰê#G×Ö*Móäwž}.Zôãüù‰¯¾:´›kP·ÂH²A E p®­UÆÄøUV*nÝR\¼Xæèh(1"¸¦¦ùÆ»‚zD„7Ç>v¬« ø'NÜxÿýÝÿøÇйsG÷@õêNéB¶I$r®­UFFú0´óçK/^¬ ó¤Ñ¨aa^\.Û¢ŸJ¥ÄÇgfvé«úë׫ßxcÛ˜1ý?ùוGOŒô!Û$ºÔÖ6ÛÛ3ú÷÷ÌÎ.ÉÍ­÷*•pü¸eWýÈ‘ÁÙÙ¥Je[çÅVU5Mš´><Üû›o¦P©8Ò=0Ò#„l“HäRS£€˜IVViaamh¨yhĈàsçJZ[µæùGŒ6‰Ó§ ;)S£Ñ¾öÚVæúõÓð»yô´ÀH²MB¡smm3DGûTét†à`1yhäH™NgÈʺk±Z77Çðp¯Nð ‚xÿýÝee ©©o¸¹9öhåêFéB¶I(t©©!#½Äh¤P©T!yH p YkÀ—u2þš5¿ÿòKÞöí¯ùùñ{®Úu;Œô!Û$9··ë›šZy<¶««ƒ³³½ÝttĈ`«]õÕÕMV¾µ;t(wõêß>ùd\t´¤gëPwÃH²MB¡ ¯õÎÎÓÔŽ\TTWQÑhžáíêêøßÿZþPQÑ8þž ¢§MÒ³•F¨`¤GÙ&¡Ðjk•ä®RÙ¦ÓLG òc±˜'OÞ5×=F><Т«^§3¼ýö//·•+“z¾Öu?úý³ „ÐSˆÃaq8¬ÒÒ†øø ¦¦VƒÁ˜—W9p y”ɤÇÄøàìÙ³iiiéB¨Küüø%%uUUMЯŸGvvé[o41"xéÒý99æƒì§~ý<Ž¿žªTjÞ{ï‡çŸ0qbLÖ3666--­RžM IDATG/ž&Lèö2±Ÿ!d³$~qq}]âãƒÎœ)4Œ¦£þþOOW‹l`äÈ`ò[» öR©ìžGO;Œô!›%•ò++åÕÕM mÔ¨¥²-?ÿ–y†øx«ßÚÉ**7m:yà@Κ5/;9Ù÷b•ê~éB6ËÏO × ëø|'™LÌç;YLv;bDPnîM…¢Å<12҇Ͷûâ‹_'LˆŽ‹ ìÝ*#Ôý0Ò#„l–D£P(¥¥õ|¾…B]õþYzó¦‚F£š>´³yEEEJ·­ËG¡PŠŠŠîŸ¯ËÌ«×yáAL™2…Íf›ŸÕ•»kiiINNwrrŠŽŽþüóÏõzýƒÖ퉅‘!dˤR¾\ÞâàÀ€¡CZZÚóònšgˆ2ïª7‰%Kö‡‡{¶¶jssoZ‡žlUUU;wî¼zõ*p8œ tå,•J•½råÊ .,Z´hçÎ ƒÁjþ’’Gnwý*Fz„-óõå57kX,&øû D"—Ó§ïz#1⮹î÷î;råÖš5¯ˆÅœS§ ¬”ˆž`¼½½€Çã­X±¢+g¥¤¤ðùücÇŽ%&&Ž7îüùóeee[·nµšßh466ÞžG¹ëWyŒ0Ò#„lY` H¥jc±n·ÃÇÆJ-åEDxq8¬ãÇo€ZÝþÙg§M$Š‹ øã'(ÒS(”-[¶Èd2>Ÿ¿bÅŠ;vH$—%K–ÀìÙ³gΜIæT«Õ,ëÒ¥KpðàÁ°°0{{{??¿;v€ÑhüöÛoe2™““Slllff¦yã3Ù‘‘$fÏžÝÞÞn5în¸¾o#vSSÓ«¯¾Êãñ<==çÏŸßÖÖ¦×ë—-[æííÍçó§M›ÖÔÔDæ}Z(vò@,®bõ­V²[~Fz„-“ËÕbñœ7ßÜNî––Ö‹ÅsΞ-2ϳk×Y‰$¹ºZ¸ðßÿ>B&ÖÔ4¹»Ï=~üzO×°ë‘þâÅ‹AhµZ‹íÂÂB½^/‰Ž;FÄsÏ=·bÅ ‚ är9ƒÁøòË/ …ÑhT©Tƒ!44tÛ¶m¦b·oßÞ1Òçåå‘G÷ìÙãïïo5±óªZDz­VK£ÑòóóÉÝôôtÿ   ôôt2åêÕ«äv{{ûµk×ÔjµÁ`8qâYT'‘>33Óü9Ü7ÒWWW“ÛGމˆˆ¸W¤?{ö,ÇëäX\Åê=Z­d'Žè™H­÷![æêêH£Q•J ¹ëëËóôtµèª6,¨­M·|y‹e7kÖ2Q(tñ÷|xáÂ…‹zï½÷ŠŠŠ²³³/^'OZöÊôTtÕ·µµ•””lÙ²åõ×_ÜuAOŒô!Ç`P¹\öµkw"ýС99--í™y­²R1cÆðaÃ;®UPVÖPQÑØ«5~pçÎ‹ŠŠš1cƈ#¥ggçY³fu%±°{ÇH²q Çc›¯L?dˆ¿^oÌÎ.€ï¿?=|x ¿¿ >>¨ºº©¸¸ÎüÜ}íìèYY%½]é/—ËÉáëÄôÍ7I ¬_¿Þ"ÕÄ>Â6î#=BÈÆÑé4>ß97·Âh¼Ò„Bg©”útQUUSfæõI“@x¸·³³ýÉ“w½ÖÛÙÑ##}²²ŠC½ê&éB6ŽÁ ñxNJe[ii½)qèЀ3g ÷îÍvuu3¦?ÐéÔ!C:vÕÇÄø?ÿ¤¿Ó#Ô Œô!G§Ó\\˜Lú¥K¦Ä!Cü/_®Ü·ïÂóÏG0·—66,ðôéBóì &Ư¤¤Þü‹|„ž.éB6ŽÅb¶·ëBCÝsrîŠôQTTûÒKQ¦Äøø µº=7·Âüô¨(_ú知=Q·óçKêëY=Q2B&ôûgA¡§‡ÃR(Z#"¼ÍC8—ËvueéõÆÈHS¢ŸßËËíĉ‚¨(‰)ÑÉÉ^&Ÿ?_ú׿†wc­.^,_µê×'nðùö*Uþwß}×…£§WII‰ŸŸ_÷–‰‘!dãÜÜX……µ ¡»veétS[½^o´³³\t$..ðÔ©‚yóþbž8h´»êÏœ)Z¹ò—ììÒ±c#ŽMÞ¼yõW_]°O¹PwyÄO%;ÂH²qŽ£\ÞáÕÞ®¿~½ºO¸v­J©ÔP(m E‹««£)óСþ?þ˜ÝÚªe±˜¦Ä˜Éöí¨Õíl¶Ý£Ô¤¦¦yùòŸÌŽ–¤¥ý_\\¬^½zõêÕR,BÃ~z„sqqhjjõ÷:9Ù›ºêÿý ǦPàܹ»^Öãâõz£Eâ AR½ÞxñbÙC×A¯7nØp|øð^»V½sç?ýô.æêéB6ŽÃa55µR©”þý=srn’‰G^5*$$ÄÝb­zÀI*åŸ=k™èëË;þ!å?~}øð®YóÛÒ¥ÏÌ\0bDðÕƒÐÃÁÖ{„sssÔh´mmºðp/r¾[µº='§bæÌaËbª2Äß"ÒÀ AóU½RÙ¶lÙþ´´ì1cúüñ ®}=4|§GÙ8‡MM­ÑÑ’ë׫•JÍ… eƒ16V:dˆÿõë5w-4럛{S­n7OŒ‰‘\¸Pnñ©}çþü³4!aÕîØñú¦MÓ1Ì£Ç#=BÈÆ¹¸8€BÑãGpáByvv©W(t4HJ¥RΜ¹ë >6Öß` ÈYñMbbü4íåË•]¹¢NgX²dÿßÿþMt´$3sÁ3ÏȺñvzPéB6N$r€ššf77G‰„—]zþ|it´œíû÷÷´ˆôV»êýüø<»+]õee ÿû×»wŸû׿&}ûí”G®Ð£ÃH²qÎÎNNö·n) :Zrþ|ÉÅ‹ed¤‡»×ª7éØUO¡PbbüλÏR7Ç_3fZÝ–‘1;))ºûn¡‡‡‘!dû<<\«ªšàvw{Yk«6&æö4dC‡ÕÕÖ6›ç·ÚUéc>ŸnG[¶œš6mãÈ‘Á‡Ï qïî›@è!a¤GÙ>ÎÿÞéýÚÛõNNBòPLŒ„Á ={×˺ծú}kk•d9ŒFâÃÓ—,ÙÿþûY»vŠù¬;=véB¶ÏÃÕŒÐR)ßÎŽ!:Q(ò££]X˜—Õ¯ê-úïÃÂ<étjÇ×z­VÿÖ[ßïÜyvÆÌ™3ÚT2BOŒô!Ûçî~;ÒS({{ºÑH˜:´K]õÌ€‘iî’F£2ecfæµÔÔ×ÿö·î\¡î‚‘!dû<<8UUMd€oo×Õ׫ÌPVÖ`Ñ,럗wS¥j3O0à®ñÚÛõÓ§o¹|¹2-íÿââ{òzxéB¶ÏÃÃU§3Ô×+kk•mmz•ª­¢¢Ñt4*ʗɤ[tÕä§×/^,7OŒˆðÎͽù¿ÿôÓ¦mÌË»¹oßÛÞ½s#=Œô!ÛGÎOWYÙT\\L&Ý|´ƒsÀo‹|‘ÈÅLJûçŸw Ê‹ˆðV©ÚJJêµZýôé›/]*OM}‡Ù£'Fz„íóðpµ³£××9;;„‡{YŒ«:4à?,»ê£¢$Så‰ììè—.U¼õÖ÷ÙÙ¥»vÍŠŒôéñÚ#ôh0Ò#„l•Jñõå•–Ö×ùùñ££-Cø!þ·n)Ì›ô`à@ßK—Ê £)…Á …„ˆ×­;vôèÕÿügZT”¤—n¡G€‘!Ô'øùñ‹‹ëÊÊ}}y11’7jššZMG£¢|ííŸÕEEùªÕíµæ‰F#Ôþç?Óž}6¤—ªŽÐ£ÁHê¤RAqq}CƒJ(t&ßÅÍGÛ1™ô},¾ª—ÉÄŽŽv/–™R~úéb^^¥c̘þ½Uq„Fz„PŸàçÇ/-­olTs¹l77G©”oÑU?dˆeW=F ÷úóÏ2r÷Ò¥Š¹sxî¹þmmÚÊJ+3å!ôdÂHê¤RA[›®¾^Åå:@t´_‡AyþµµÍ¥¥õæ‰ú^¸P55Í3flŽŽö[½z•J¹råV/Ö¡G‚‘!Ô'øùñ µUËã9@LŒäâÅrÎ`Ê0`€‹Å´hÀ8Ч¸¸¾®NùúëÛX,»ÿáìl/‘ð1Ò£§Fz„PŸÀå²ÀÍ ÑÑ’¶6yÀf0h‘‘¾YYwÍŸéKÄÂ…?Þ¸Q½iÓtôëçqù2FzôÔÀHê+ÜÝ]€Çc€DÂãñØßÚÅÆJ-"=Ç ]~û-ÅŠ$™LL&‹oܨî­Z#ô¨0Ò#„ú ww7pss …ék>®bbüªªšÌ'À¯¯W55µ NãÆ 4%‹oÞ”·¶j´‰„‚ÐCñóó{èß|úCŸ‰BO±Øìíäî A~ë×gšg0À›Á eg—’³ç@rr‹ÅlmÕ•z{9ÚÀ@¡ÑHÖ†‡{=PÊÊÊæÎû¨w‚ú˜³gÏ®Y³æ¡OÇHê+„B44¨ÄbÄÄH>ùä@yy£—ÌÀb1CC=²³K_x!RSÏ;vuÕª ï¿¿»°°6(HDfóöæÚÛ3 j4ÒÀàÁƒ“’’ºí–Pß@Äý3ݶÞ#„ú ¡Ð ®^­"wû÷÷´³£[|kgš(·²RñÉ'fÌöÒKQvvôÜÜ;ËÒÓhT??¾ÅÜy=±0Ò#„ú ƒF¡Àõë·Ó1™ô°0/‹Õꢣ%ׯW+•m))<žÓâÅc0h2™{~~¥y¶  QAAMïU¡G€‘!ÔWhµvíÚaóÑÑ‹wúAƒü ã¶m:”»bÅx;;:„†z˜ZHÂ70Ò£§Fz„P_¡Óé™LÚµkwb6¹ÔR©1¥ðùN>>Üï¾;þì³!Æ’‰!!îùù·ÌûJ„••ò¶6]¯U¡‡†‘!ÔWètF&“^\\oš/*JBpáB¹y677G…¢5%åESJh¨»R©©ªj2¥H¥£‘(+kèšw—¢¢" …Ò]¥Q(”€€‹ÁbcÆŒ¡P(EEEVO±ZóDóïʆš““Ó-µ}Ð{oiiINNwrrŠŽŽþüóÏõz}O\¨`¤Gõt:•F£jµúÂÂÛƒéÜÜýüîZêF.o¹~½†N§zzº™CB<(”»æº÷õåQ©”§.Òw»²²²ÜÜ\Ó®B¡8yòdWN,))áñxä6‡ÃY°`éЙ3gª«««««óòò&Nœøˆ#Ï;¹ô½¨Tª¨¨¨ììì•+W^¸paÑ¢E;wîLHH0 Vówr;OŒô¡¾‚ɤ Ffnn…)1:Z’]bÚݰá8NÕé W¯Þ‰ël¶÷Ê•;Íþöö ¡Ð¥´´¯GúgŸ}vïÞ½¦ÝÄÇÇwåD£ÑØØØHnóx¼+V˜ñù|‘H$‰¾øâ‹‚‚‚úúú{ó0Ì/}/)))|>ÿرc‰‰‰ãÆ;þ|YYÙÖ­[ï[¦Åí< 0Ò#„ú ;;ºV« _¾|g }LŒäÒ¥ ²=¿¹¹uëÖSo¿ýŒ³³ƒE“~Hˆ»Å <‰„W^Þý‘žB¡lÙ²E&“ñùü+VìØ±C"‘¸¸¸,Y²fÏž=sæL2§Z­f±X—.]€ƒ†……ÙÛÛûùùíØ±ŒFã·ß~+“Éœœœbcc333Í›”É挌Œ   @0{öìööv«‰pws´EÓtRRRZZšéûÇ?~|Çœ´ "‘ÈêQƒÁd2]\\È]N—œœ, Arr²N§³zï]¿´ÕÓ 55uéÒ¥4Ít–££crrrjjªÕ§t¯ÛijjzõÕWy<ž§§çüùóÛÚÚÈñÎ;e2™››Û_|aõÆ»B}Ãþý¼¼Þ_¼øÇ¿þu)±°°V,ž““SAÄš5¿/V*5'þgöìæç®^}86öSó”yóvOœøŸªìÙ³ç¾y&Mš¤T*7mÚ&LP*•6l€†††'Np¹\NGDjjjhh¨ÑhT«Õvvvëׯ¯®®Þ¼y3NW«Õ6léééUUU?ÿü³§§'’öÉÑ£Gdeeùûû/_¾Üj"AMMM7n$«g¾ ׯ_‰D—.]"±X¬††òB¦k™.guÃbrrrT*•J¥ºuëÖÿýßÿMŸ>ÝôpV®\ùÒK/UTTäååEFF.\¸Ðê½wýÒVOW(P__oñ£9}ú´P(ìäÑu¼É“'5ª¸¸8//¯_¿~äó€ñãÇ+Š7@ccã}söìÙó(ñ#=B¨¯øå—<±xή]Y¾¾óµZ=™h4ûõûhãÆju[Hȇ_|ñ Aÿüç¡øøæçþöÛew÷¹J¥Æ”òÍ7G úä*ÐÅHñâE‚ ´Z­Åvaa¡^¯‰DÇŽ#â¹çž[±bAr¹œÁ`|ùå— …Âh4ªT*ƒÁºmÛ6S±Û·oïéóòòÈ£{öìñ÷÷·šØyU ß~ûíE‹‘ššš`JèHoŽÍf_½zÕtÅàààêêjrûÈ‘#Vï½ë—¶zú½"ýÙ³gy<^'ÎâŠZ­–F£åçç“ééééäó€ÌÌLók'Ùt•G‰ôØzê+˜LÈd¢öv}QÑíAy %2Ò';»t÷îs:þõ×ã ,Ì«¨¨V­n7âA„ùv¾¾¼[·æ+Üw'''`0Û@£ÑÆ—žžÞÐÐpôèÑÉ“'€««kfffVV–§§g||ü©S§¨TjIIIDD„©Ì°°°Ž  7‚ƒƒ+++;IìDRRÒÞ½{ ‚0oº·@<È:Säkii™5kÖŒ3L‡ÊÊÊÄb192?!!¡´´Ôê½wýÒVOçp8"‘¨ã˜ÿœœœo/tÔ•§T[[k0¤R)¹ëïïoÊéîîf?Öž†‘!ÔWØÙ1ÀÓ“koÏÈË»««þܹÒO¾üò ‡áá^F#a>/ž§§«‹ +?ÿNW½——›Á`4ÿô®w$%%íß¿?---..Žl“×h4F£qïÞ½r¹|æÌ™cÇŽ•Ë忣â¯\¹Ò±(òí ÈØs¯ÄNÄÅÅ©Tª?þøãÈ‘#/¼ð‚ÅQòË´[·nY;õ>X,Ö«¯¾zåÊS´&_©Éÿ EVV–Õ{ïú¥ïuúäÉ“SRRÌGÚ·´´¬\¹211‘ÜíÊS …4­¤äöxÏââbrÛâß‘ž†‘!ÔW°Ùv Ñhe2±y¤Ž–ÔÕ5ß¼)íµádЇ‡+ÇÎɹi~zh¨»ù€|r½»ÞôÆ Óëõ)))S§N%S(ÊèÑ£÷íÛ§T*µZ-ƒÁ`±X3fÌHNNÎÈȨ©©9|øðÂ… ;õÞ{ïegg/^¼xÊ”)÷Jlnn& Xl“h4ÚK/½4kÖ¬˜˜@`Jçp8ðý÷ß+•ʯ¿þÚ꽨ÕêÎoÖÙÙY¥R™²7nÑ¢Eåååyyy‰‰‰k×®µzï]¿´ÕÓ`éÒ¥uuu£F:|øpaaáþýû äááñÖ[ouòè,n‡Á`Lœ8qöìÙ¥¥¥ùùù}ôÙó}º««+—Ë}ã7ZZZ¬Þ{×/}¯Ó ‚P«ÕóæÍëׯ‹Å ýôÓO[[[ïõèîu;r¹|êÔ©\.W,Ï;—|ž÷ú±vGä!„P—47·ŠÅsNœ¸¾k×Y?¿t:™ÞРrwŸ“”´Î<óªU¿Z ¶ÿþûÓAA ÍSbc?ýúë#]¯@W"}W,^¼ø•W^y SÌÃOÇÝN‘…Çò”pDBu‰““=NU(Zü4mqq™¾o߃^_¯2ÏîU^ÞØÔÔjJ‘JJe›y6±Ø¥—[ïÛÚÚJJJ¶lÙòúë¯÷æuÑS #=B¨¯ P(..,¹¼%0PdgGÏË»Ý ¿{÷¹Aƒ¤……5Je›)sx¸7AæsìH¥()¹3_›»»k/GúsçÎEEE͘1cĈR޳³ó¬Y³º’ˆ,ûlDDx›¯q2™¸¢¢±µUkJ‘Høæ+Õr¹l£‘0µ‡Ð#=B¨‰8d{{p°˜É¤§§ÿi4Ï<#€ˆ¯º:UuõvAA"£‘0-fÞÞn¦o.×ÈF„žXôÇ]„ê=¦žuƒ(<{¶("ÂË4.NÍɹ)sÈÌ>><&“~ãFMx¸™âååÖÞ®¯«S …ÎÀå²á#ý§Ÿ~J®`fb4Ò4{GÇ–î¸?d›jkkïŸéÞ0Ò#„ú±Ø¥­M×ÔÔÊá°ÂýÓÓ/˜fÀup`úû sr*ÆŒéO¦ÐéT©TPPPc:ÝÛ› ••r2Òs8,ÚõHÿþûïß¼ygˆŸNG»u˱¦†Í`##kî±D;BàêêšðЧc¤Gõ!"‘ TW7s8¬€F£Œô6í8(/(Hdé…BgƒVQ!8Ðh4ª‹‹CccW_ÇW¯^Mn×ýûßG22.ñùNŸ>z„h&ÿ£ž‚¿[¡>„ŒôµµÍ2™˜Á —ëd:áýË/¹APþ÷~$Úµ+Ë”F£zx¸Þ¼)7¥p¹ìj½ohP¯ZõëîÝç¸\ö’%ÏOž<ØÁùˆ7…Pç0Ò#„ú''{6ÛŽv'—·P(PY)Šò%FDx)•mee  ŸL UV*Ôêvr<ðôt«¨h4èâÂR*5]¹´Ngغõ¯¾úÍÁñÉ'ã^~9ßãQïÀ±÷¡¾ÅLJWVÖyy•ÎΦ9q@&s··g\ºt§?(HDDQÑñPîî.æãóÙl;µºý¾Ý»7;6öÓ/¿üõÝwG=ûÑ´iC0Ì£^ƒ‘!Ô·x{»•—7@~þ-‰„o¾P=ƒA ™Ï–ãí͵·gܸq§«^$r©©QšvÙl»––;³åwTVÖðlzï½]áá^GŽ$¿ýö({{FwÞB÷ƒ‘!Ô·øøpoÞlT«Û««›ú÷÷¼|¹Ò|BøÐPüü;‘žF³~/:×Õ݉ôŽŽv--Ößé ‚ØºõԳϮºySž–öÖæÍ3||¸=pCÝFz„PßâåÅ-/o$§º2Ä_¥j#_ñI2™øêÕ*óüAA"ówzÀY.oÑé 䮣£õÖû¢¢ºçŸÿ÷ǘ;wôï¿Ï‹ ì‘›A¨ 0Ò#„úoo7¹¼åÊ•[t:õ™gdt:Õ¼«>$Ľ±Q]WwgzùJµ"‘ A¦Uê;öÓ Ƶk%$¬2ˆß~›÷öÛ£ètüK‹'üýCõ->><ÈÍ­ðôtsr²šwÕ‡„¸ÀÕ«wð}}y••rÓK¼@à ¦%ì,Zïåò–)S¾[¹ò—7ß™‘1;(HÔó7„Ð}ààO„PßâééJ¥R j}}yæeþNÏá°ÄbÎÕ«U#F“)>><½ÞXUÕDö²“‘ÞôNÏb1[[oGú«W«¦OßL¡Pœcš@¡ÇßéB}‹½=ÃÃÃõÖ­&OOWøßBõæƒòBBÄ×®U›v}}¹`ú†ÞÎŽÎfÛÉå·gË¡Ói:vï>÷ÜskBBÜMÆ0ž(éB}ŽT*hjjáó ,ÌS©ÔTTÜ™öN&s7o½wuutvv0µÇá°ŠÛ+ÕÒéT½ÞðÁióæíy÷ÝQ[¶Ì0ͱƒÐ#=B¨Ï‘J--í<ž„†zX Ê“ÉÜ‹Šê´Z½)Åô >‰Ãa57ßžÏh$Z[Û÷îÍ^³fÒ¼y‰\¦=y0Ò#„ú‰„¯×y<6880¥Rù <™L¬ÓÌ—¥÷ôt»uKaÚåpXÍÍ­ TjÖ¯?n4ûö½3aBt/ÞB#=B¨ÏØ`š–œ?ÇtT*0´‚‚;‘ÞÃõªêÎ ¸«©©µ¦¦yìØ«Õm 52Ò§·êŽÐÃHês8GP©nÏbÛ¯Ÿg~þ]sâz{s‹‹ëL)bñ]sÝs8¬ªª¦¿ÿýkšœ<Æh4šèCèIƒ‘!Ôç°XL0MjÛ¯Ÿ‡\ÞbËýüøæ³åˆÅœššf£ñv8§Ó©—/W::ÚýðÛd€^oì½Ú#ô€0Ò#„úœ¶6TVÞoJΖsg\??~i©y¤wÑé ä7ô EË¡C¹?þø¶PèŒ/óèɇ‘!Ôçh4Z0}Yçâ‰\®_¿ó ½DÂ/-m0íŠD.PSÓÜÜÜ:~ü:‚>Ÿíææ:žB¡0´^½„Fz„PŸ£ÑèÀü­=$ÄÝ|¶??žR©‘Ë[È]¡Ðªª¯¿¾½±Qõê«CµÚÛ“ãjµ óè ‡‘!Ôç´µéètÚÍ›wf³¾k^<‰„fÿ 880Y,æúõÇóònþðÛîî²Ut:=“‰‘=Ñ0Ò#„úƒÁÈ`Ðôz£i>™L\TTk üb1ÇÞža>(ɤ_¸P¶iÓt™ÌÝÁIöôÃíwz\@=Ñ0Ò#„ú( …bú”.$Ä]§3˜B;•Jñõ噺ê33¯77·$‹ {{†^o$ÿ-Ðé øNžpéB}…B!B(t6Ez!ƒA»{P üÕÕMï½·“Ïwöòâ‡ÈŽyrº\­VO§c¤GO4ltBõ9 áï/,*ºé šD¿q£Æ”G"áŸ>]HÄœ9?p8¬þý½äòÖÿ~gr{Î`škï¡Íž=ûÚµkX² 2™ì믿îÞ21Ò#„ú …BàïÏ¿råÎ7ô¢¢;3ົsªªš6m:™•Uüë¯ï§¥¿ySn:È/éUª6ggûG¬Ï7ß|3xð`//\붯»yóæ7ß|ƒ‘!„•J!B*8cJôóã9rÅ´+:76ª>ÿüмy‰!!îl¶½ZÝf^9ns³ÆÉÉáÑ«4wîÜ &ÇÁ nnŽöö Ó £ñ•JͷߣPÀÁAur²W«Ûî^³Ž sº¸ßÙÔzoñNO¶ ÿ«×÷4 …²eË™LÆçóW¬X±cljDâââ²dɘ={öÌ™3ÉœjµšÅb]ºt <fooïçç·cÇ0ß~û­L&srrŠÍÌÌ4o6'Ì322‚‚‚ÁìÙ³ÛÛÛ­&ÂÝ­ëÍïIIIiii¦üüqüøñsvl´tèÐÍ›7oܸqçÎ;v+É—””4xÉ’%K âããïܹsïÞ½°°0âüÕ«Wcccwîܹzõj%®'ßQ@¦¨)##ÊJîÛ·E^^Ö¡’’2½–½®NŒþ_§©IC•—sLLtù|Q~~•‹‹YJJA÷îÐtÿiÈd²¬Ÿ><<ÜÅÅ¥wïÞ[·n%ö’oL,_¸païÞ½ŽŽŽÝ»w ••\¼x±ÁÌ™3Bé[™ ¦˜LíŠ NFFi÷î6šš´ÒÒ–Æ£PÈ †þ]3GCƒŠ*/çëfe•ã8îâböæ dú&˜››'''78ŸœœÜ³gOâ¸5{à–––J¥R'''âKgggYÉf¶‹A¦¨)&S§¤„#JœÍŒŒ´‰MlBT*E,–¢×ÁÕÔ¤á8NôÓgd”Òh--zII­‡tÒ7)(((44´þH{6räHâËÖìkffF¡P²²²ˆ/333­¬þyÏ•¸×{Go@M1™ÿ,}ïâb*ë›GQ(db7zYë}mmH$11ÑÍÌ,³³c~üXB"Áp¼ælÚ´©¬¬lèСwïÞMOO¿råJïÞ½­¬¬-ZD»1nƒÍji4Ú”)S–-[–ššºaÆ   ö¾“N2=@M1™:\®ÀØXGOah¨%oO¥’<ÓçåU"„lmÒÓËœÍbc3œM‰Uö€\zzz‰‰‰½zõ ñòòÚ¸qãÔ©Scbb44þÃ4lذѣG9ríÚµöööýû÷·°°hPÏ,--}||†>|øðµk×¶û­t0Ÿ ¦˜Lm Éep ´e«åÐhbç:⌾>ãÝ»" …lmm”‘Q:dˆûË—Y~~NJŒ¼CÐÖÖ—û¯sçÎ;wný3OŸ>%ê/ÅohhxæÌ™¯­¿PýcÐx¦¨)##Ùÿ þ÷LO¡üóL_]Í#‘HúúZyy•ffzb±ôãÇ’.]Ì““óz÷vTbä|Èô5Ådj#„ôõèÿgz*•L<Ó×Ôðuu5©Tr^^¥óÝ»B©#“)b±´Ox¦ÿL°nûƒLPSÄÓ<±5­£þˆ_$;¦Ó©Äœ:„P(!ÖÅ+)©57×çóEyy•nnÉÉy,–MRR®ƒr"à³@¦¨©êjBˆ»M£Qêgz:Š*.®µ°ÐOK+Á0ÜÚÚ0;»‚Á óxÂ~ýœ•5Ÿ 2=@M‹â]òT‘èŸL/Ièt B¨¸¸ÆÜÜàÇbƒ^YÉÅq¼¨¨ÊÙÙÔÁÁD‰að©`>=@MÏôb±!D§S¥RL*Å(2—+ÔÑÑÄqœx¦÷®ÈÅÅ,66ÓÉÉôùóÌ€€®m̯¿þzàÀ„H‚¶¨t¥¥¥mQ-dz€šªªâ‘ɤº:Bˆh®‰$ éÓÕÕ¬ªâ‰D ƒK—ÝÜÌcc3X,«+W^íØ¨Ø0pŸ6mer2?#CÓÜœon^­ØúAbhh ðj!ÓÔTu5OCƒÊã BDs½H$¡R)|¾HO‘•UŽrp0~ÿ¾ÈÏÏéòåDGG==†¯¯Â†ã±ÙugϾˆˆˆ-,Dß|ÓÞ¼,–¢*@2=@MÕÖÖihЈ­è1 G‘ÉdG€"2=ƒA‰$ååƒ&•âùùÕºsó¾›]wôèã“'ŸñxÂI“|æÍØ¥‹ù—W €\éjŠÏÑéT"ÓËßÒéÔòrBÈÀ€ñäI¹½½ñ«Wy4¥¬Œíèh’˜˜³sçä/¼(‘ã}B&“æÍ8sf?Ø)´5Èô5Åã‰44¨D?=1ÅŽF£””Ô"„ÌÌô³²ÊMs»u³JHȱ¶6ÌÎ.÷÷wûìË••qöïpþ|œŽŽFpðÈ  ?ƒ®¨{ éjŠÏjjÒˆæz±XJ£QÈdRY›F£ige•t{üø£‡‡uTÔKËÆÏÏÉÌLï³.$:|ø¯#Gã8¶hÑàùóéé1}74 æÓÔT]HS“F<Í‹Dÿ¬–SZÊ66Ö‹¥éé¥ÎΦÄ~µ ùíÛÂo¾ñþÔK`ß¿ÿ¶C‡ΞÝÿåË«V„4Ú<ÓÔ'¤Ó)ÄX<‘HB µ++c››ë}üX,‘`$I,–T9;›¦¥•ŽëùIõ߸‘¼sçüüªùó-^<„XB€ö™ ¦ˆyıH$ÑР¢6³a¾yS ££‘–VjgÇ|ù2ËÆÆhР.úú­MÕïÞmÙríùóô1c<Ïœ™kêå‚Ö{€šâñD4ÇBµµuD£zNN¥½=35µÐÝÝòÙ³43>_”™YÚʦ{¡Pv{Ô¨=UUÜóç><Ò_ˆ‰Á !„**¸}ú8½_dd¤ž^beeøòe¦ŽŽ†±±®¦Óm_´ IDAT&uذnrkàr…«WG_½újÚ4¿ÇÂô9 š ÓÔ‘H$!VÀ%ª«¨à0™º©©nn/_fuébþðá{M ÃgÏî/·)>>>ë‡ÎJ¥Xtôýú9·÷ ÐjÐOPG|¾!„®¥E—J±š>“©ýáCq—.æII¹8Ž›˜èòùB±X}ú(; *òóó÷ï߯R™¾¶–_PP…ãxy9›x#‘··ý… /7l«ìè:° ,^¼ØßßßÜܼ5å¯^½z÷î]ooo„‰‰É¾}ûf̘¡ÄLjbbòçŸyÝÕÕuĈ'Ožœ7o^ãò†UVVÇÆÆÆ;vìh×p? €â-x¢¢¢Tí÷Ì£Gï-,~ìÒe½}°…Å ‹¿ýö¿nnë¶n½Ñža „¢¢¢Z,süøq777ccãíÛ·Ÿ9sÆÞÞ^OOoÆ 8Ž/]ºtΜ9DI‡Ã`0’’’p¿~ýz÷îÝ544Μ9ƒã¸T*Ý¿¿›››ŽŽŽŸŸßÇBéééÄGC\½zÕÕÕÕÄÄdéÒ¥@îIYaâ¢õB>|èÛ·ïØ±c1 kð¯ÕÕÕ3gÎd2™VVV«V­ª««ÃqÜÖÖö»ï¾«¨¨hp×b±xÓ¦M666ÆÆÆ3f̨®®–]âàÁƒNNNÛ¶m#NŠD¢àà`SSS“àà`‘HÔâû†ãø7¼¼¼ †¹¹ùöíÛ‰“æææ111 ‚9xðà Aƒä¾L&!dffÖš›EEDD¸¹¹†……5ÿ¹ø³£Z? £ƒLPÁL¿gÏ=[ÛU!?ZXüheµbË–«îîëØìºö £•™~êÔ©l6ûرc¡É“'³Ùl¢ƒ¬¢¢âñãÇL&S,ã8Ñ­[7 ø\®††Æï¿ÿ^\\|üøq*•Êår>ljjzùò墢¢[·nY[[7ÎôÇOKK‹‹‹svvÞ²e‹Ü“8Ž×ÔÔ=z”¯þ1QaZZƒÁ8yò$þÿ“_PPÐСC333SRR<<<ˆªîÝ»gee¥¡¡°k×®œœ¢ð®]»ºuë–’’òæÍ›Þ½{Ë.1fÌ6›}éÒ%âÀq<,,lâĉyyy)))ÞÞÞkÖ¬iñ}c³Ùt:}Μ9¡²²²êêj„PyyyƒàùóçfffͼED±o!4iÒ¤êêê£G"„*++[üLTdzЀ fúÀÀCDŽ·´üÑÂâÇÕ«ÿpu]óÛo÷Ú9ŒVfzâ1]$58NOO—H$æææþù'Žã£GÞ±cŽãUUU4-<<¼ººÃ0‡#•J»uëvêÔ)Yµ§OŸnœéSRRˆŠŠrvv–{²ùPÓÓÓqß»w¯žž^^^ž¬~‘HD¡PRSS‰’—/_–U%‘HâââBCC=<<(Jdd$Žã]ºt¹|ù2QàÝ»w²c„Ð_ý…ã¸T*•]ÎÍÍ­¸¸˜(ãååÕâû& ß¿Ïår¥Réãlj“MeúØØXccãfÞ"âL‹7‹zôèQý0šûàÿ½Š¢~v`ì=@H¥Xbb…BFˆ„ãHCƒfhÈ Ó©óçRvhòéêê"„h4Zƒc„…B™0aÂåË—+**}J&“³²²¼¼¼du²X¬Ærqq!ÜÜÜ š9Ù¼%K–ôèÑcÞ¼yø¿ãðKKK¥R©““ñ¥³³sAAÇ»páB¨wïÞ7nLIIY·nÝO?ý„ÊÍÍ•]×ÝÝ}üøñ²Ê---Bdòÿ2WNNŽ……‰D"‘HÙÙÙ-¾ot:=--mäÈ‘={ö|ø¥K—Øl¶H$¢ÑhZZZsæÌ ¹víZIIÉÝ»w׬YÓ¸ªåË—gdd$$$¬[·núôéM¬­­%:¿×çàà¾{÷nâK6eÊ”eË–egg§¦¦nذ!((HGGç»ï¾›2eÊ­[·²²²^¼xçÎCúé;fgggll¼téÒºº:¹'ñfÇÞ×ï{Æ0, @ö¯UUU3fÌ`2™+V¬ ª’H$[¶la±X ÃÞÞ~õêÕÄy@lii©¯¯?uêÔúcï¿l6{öìÙ†††L&óûï¿çñx­yßöìÙcdddccsèС©S§ššš¸\îªU«<<<´´´ºuëö믿òùü¦Þ"±XÜ¿o…Ü›m*¤fÀˆ< ¢:_¦_¼xñ”)SêŸ 6l˜¢êo ÁÁÁÄ£žì —˵··— “n@±ïX*•éKKÙÄ(< ‹'LØ¿gϽör/ÓšLßëÖ­›6mÚ'½¤Á'.÷ M¿+:¥¼0"tl$éĉîîî&&&;vì8{ö¬ƒƒƒ¾¾þÆBË–-›;w.Q’Ëåjii½zõ !tãÆ ‹¥©©éèèxöìY„†apww×ÕÕíÓ§Ï£Gê·< Ñ×®]ëÒ¥‹©©é²eË„B¡Ü“èÿ·Z×?¾téÒòåËë¿yóæãÇÇ555³fÍ266¶¶¶&ÖòlþêÏ?ÿ´µµ}öì™X, 133355 ‹Åro¿©“›6mª¿ª—¶¶vHHHDD„Ü«ûùù!„ˆÕNêß{Swéîîndd´sçNE|;´Ÿ½{ïíöT*ùðᙇÿµpá`]]MeÇõ™AVVÖ‰'æÏŸ¯ìX€jSÈß ZùL:È,abâMUUUS7ÒÔÄÙfî®™¨FõðáC.—ÛxаÜÛ—{RÕ¦«Ô3½‹Ëâþôé[·Þ`±6òùBeƒ¾ø™þ¯¿þ244\·nݧ¾°Ájiié‚ ”‘{Rm)åÝ€Ö{ ¢ZŸé;Ä,᪪*„¬›°f&Î6sw­‰ªña¹·/÷¤ªM VLÿêU‘æY¬ eel'§ŸŽùK‰ñ|y¦´Þƒ¯CÌ644433{÷î]ý“ >>>|>¿™‰³ÍÜ]3¸¹¹§˽}¹';÷´à/1þ„B¤‡W<ø§¾¾ÖwßõSrL´ Èô@©Î,᯿þz÷îÝx½½8#""Äb±––V3g[$7Yîl‘Ýß¿/‹¥úúZ¾¾Ó§÷a±l<=mMMu•&è Ó:¡‚‚ÊÓ§Ÿ"„†÷pq1›0ပ•Áºuc”W jkùññÙDvý:¯¬ŒC&“<<¬}|æÎÀbÙ8;›B›<øTéPŸ>ÛB yß¾iÇ?yõ*÷Ö­ª0¯ ÃSS dÙ=3³L*ÅLLtýüœ–,ÆbYwëf¥­ £èÁQ¹ï{øB»¤R !þmy9',ìöâÅC=>>NN¦T*´Éƒ¶cïÁ—*+ã\¾œõòãÇwwÒÇ¿);" ZlmmsssÛçZ……Õ>>¡!ƒþòå†yóN••±oÝúÑÐP»} ÈÓÙ=+«L"ÁŒŒ´{ö´g±¬}}½¼luu5Û3$ Î ÓƒÏÄç‹._N¼x1!11ÇØX'0ÐwÒ¤^]º˜+;. ¾0 ·³[Iìì¹àúõW·o§Ü¸±ÜÕµ=¾-kjø Ù))ùññÙ¯_ç±Ù:êéiCLóõu€6y ,éÁ'+)©=yòÙ¹sqµµüÁƒÝ'Mê5b„‡ ŽuêÆÛ{KII-BhÆŒ¾ÖÖ†;vÜþïg|ýu6ºœX,}õ*7%¥€xvÏÍ­D0Á¨$øí >ARRîÑ£oßN16Ö]´hp` ‰ Lç*aÁ‚ÓDš÷ö¶³µ5ÚºõææÍãžæóó«ââ2‰ìþöm!Ÿ/ÒÓcôîí8iR/ˆŲ13ÓSìøréAËêêD—.%ž:õìÝ»"‡cÇfÚ•L&);.þqõjòÉ!cc\·m»µk×ä  ìK+ˆ‰5éˆì^ZÊ–Mp'–¯ î@õAë=hŽX,=þåÞ½1%%µC†¸-X0¸eÀÿSVÆñòÚ„"“É?ü0øàÁ‡ë×ùá‡!ŸW1˜N–݉ÁtÆÆ:}ú8ûø8°XÖ]»ZéèÀwБ@¦òI¥Ø•+I»wß-(¨ž0¡ç’%C]\Ì” I$˜½}0†á¡áÃ=bbÞnØ0vÑ¢ÁŸTIU/11'>>;>>ëÇbG ¡Ae±l|}}}`‚;èè Óƒ†¤Rìüù—ûöÅ”•qfÌè»p¡¿••¡²ƒ@>gç5|¾!äìlZVÆ9thÆ!î-¾ªñ`:Ùw__G˜à:è§ÿÏÓ§i[·ÞLM-;ÖkåÊðT™¯o(‘æõô4B·o¯pt4iªpnn¥¬»Lgh¨Ý«—ý¤I½|}==m‰Jè|à™ü£°°zË–k·n½þê+Ïàà‘03¨¸ñã÷½|™¢Ñ¨={Ú=:‹ÉÔ©_ ®Nô÷ß9õÓÑh//[ˆxv·³c*)vÚ<ÓÄã wì¸}æÌónݬîÜYééi£ìˆhAHÈE"͓ɤE‹üW­I£Q0 OOÿß`:b·[[¦¯¯ÃâÅCY,kk--º²c ½Á3½º»x1aûö[|¾pƯ§Móƒ¹s@õ>üðçŸo „LLtžÉáˆÁtïßq¹BƒÞ«—½¯¯ñìƒé€L¯¾ÊÊ8k×^¼sçÍèѬÐÐñ––ÊŽ€–=»zu4BH[[C[[£¬ŒM&“œÍ|}||X,L@Ðz¯¦®_µví%]]ÍÈȃ»);šóñcIJJþßç\½šÄáB ¹o_g"»»»[Ân142½Ú))© ŽzüøãÂ…ƒƒƒGjhÀ÷P9µµ|bƒWÙ`: …Œa8Ñ9p`— *;F: h½W/þùnÕª ´Ý»§ôïïªìp@55üŠ}}SS dÙ=3³ Ãpb‚;†áÏž¥•—s‰_VþþnçÎ-PvÔt$éÕ…@ þå—ë§N=ÿöÛÞ?ÿü ,ç ”®¢‚{íZRXØ].·N[›Îã‰ôõµˆ5éX,OOÛœœòÝ»ï=}šF£QÄb)BhÈ÷ˆˆï•8 ´Üª…„„ì%K"D"ɹs  ê¢ìp@G…aøíÛ)>>öŸ7 ](”¼~—M<»—–²B$‰L&ûû»’íóäÉÇE‹NÇÆfÚÚ2"i~áÂÁ›6}­Ø;R"‘èÂ… @Ù%ÓÔÔüöÛoétÏ…Lßù:õ|Ë–«>>öûöYXÀ{ð™Þ¼)Žzó¦`ÅŠá!!£Zób·bÅÙøølb·SSÝÞ½||oßNFˆŒaŽã ÙÎΦ¡‹~ÿýч%C‡º»»[¾_DTuøðwcǶÕNóJwóæÍ™3g*;  ttt&L˜ Ø:!ÓwfB¡dÍš‹/&¬Z5rùò˜+>‡# »}êÔ3‰D"!bÉš¦ÔÔð²SRòãã³_¿Îg³ë45iÝ»[tóõÃbY›˜èmÞ|õĉ§!LjW••qÃÃïÆÄ¼}ÿ¾xذ®^^¶ÑÑñR)Ñ·Hº~}I¯^Žm~ŸÊ#‘HBЗ H$ñÍ Xé;­œœŠ¹sOVTpþøc±ŸŸ“²Ã†á'N<ݵëŽ@ Æ0!!ôêUŽTŠÉ6e—J±·o ‰ùú»Åøú:LšÔ«Áw@<þ©û÷ß4Èj ŠŽŽ=ÚsÙ²a»wß‹‰yKœ§Ó©/_n43ÓkÇ› ³Lß9Ý»—ºlY¤‹‹ÙÝ»+¡Å|žŠú):11ýÿÇͺ:q||VE—ÈîïÞñxB##íž=í§OïÓÌ÷òrÎŒGß½+ú÷aý¤R¼¬Œ“—WqüøSâï „‡‡õ½{+I$h‹à‹@¦ïl0 ß¾ýÖ¡C§Ní½mÛD:>bðɈ­NzJ¡7)“ÉäI“‘HÈÉÉÔÛÛnâÄ^={ÚuébÑüÊtéé¥S§þ^^ΑH¤r H¥ØƒïÿMó¤íÛ'ΜÙO1÷€zƒ4Щ°Ù‚¥K#þúëCXXàôé}”ènÞ|½nÝ¥š¾TŠK¥r²2™L8°Ë¡Cßµ~›×gÏÒgÏ>!Š$¬™bÄ_úúZ±±ë ´>#x@c°:tçQPP=aÂþ¤¤ÜsçBšŸ¡´”½`Áéï¿?UUÅmêÉ!$‘Hss«ZŸæ¯^M :\W'l>ÍÆó~ÿ~+¤ùö—‘‘¡ÀŽR= £_¿~ÉÉÉ_X§,Âú•ÛÛÛ÷ÝwåååͼÇñéÓ§ëèè4S¦™Ë5@’GVX±o£¢À3}'‘šZ8cÆSS½»wWZY*+ŒŸ~úi×®]ʺ:øB&&3©TC„†a5÷Û*3³„L¦ã¸¸Å:I$ª¹ù­|¨00`¬Y3º•Ñ÷âÅ „‡ÃÙºuë”)S>|ø ¨,HT.•JÓÒÒöîÝëííýæÍùc’ŠŠŠ"##sss?ïZYYY¾¾¾ ®^¿ •J]½zõçÕß Ów11o.<Ðuß¾ åvÌçääøùù­\¹R‰1€ÏVZZWXÈ«ªVV **š!†á!2™D¡ÂÅâúÑýõ¿..-‰Ý»÷pLÌß žær…Í®©©ÓÔ„_J„‰‰‰¹¹9BÈÜÜ|çÎfffåå妦¦Š­ÜÊÊÊßßßßßÿ·ß~ûùçŸå®««CÙÚÚ~Þµ0 «¬¬”{õúvìØñyõ·tp§N=³¶^¹n݉TÙ±àÊŽ(ŒTŠVÇÅeFGLJ‡ß]¾dú ð .[Y­8zô±²cùdzÐ@TT”™ÙÂV¦y ‹ÇŒù²CV‚Ögú©S§²ÙìcÇŽ!„&OžÌf³>Œª¨¨xüø1“É‹Å8ŽGDDtëÖ Ã0.—«¡¡ñûï¿?~œJ¥r¹ÜÇ›šš^¾|¹¨¨èÖ­[ÖÖÖ3ýðáÃÓÒÒââ✷lÙ"÷$Žã555G%«ŒJNNæp8§°°ð‡~˜={¶ìFÂÂÂ&Nœ˜———’’âíí½fÍ6›M§ÓçÌ™SPP@dô²²²={öÔÓÒÒ²©LŸ```ÐTåõ³¯Ü 5Ÿéëÿkƒ[#ˆÅb¹…GÒš2=ø‘H²lY¤½}ðÉÊŽå Óƒ¢¢¢ÌÌ~h}¦1b·²CV‚Ögzâ1]$58NOO—H$æææþù'Žã£GÞ±cŽãUUU4-<<¼ººÃ0‡#•J»uëvêÔ)Yµ§OŸnœéSRRd±9;;Ë=Ù|¨õéèè¼{÷Nö¯nnnÅÅÅÄqLLŒ———P(|ÿþ=—Ë•J¥?&âquum'ÞR¦o\yýì+÷BŸšé¸qã†ÜÂ#iæ“UÞ™ºÄ:$G0wîÉ””üˆˆýú9+;š$JÉäf¶ë Ñé==†¥¥¡§§Í¨QÀfÊÍÑÕÕEÑh´Ç! …2a„˗/³X¬Ïú†††=úÏþ³yófooïµk׎5*++ËËËKV'‹Åj|!âÀÍÍ­   ™“MIOOwvvFñùüM›6Í™3'66–ø§œœ YI}}}:ž––6þ|.—Û£Ç?äçç·§ìZNNNMU^¿¤Ü Õ'7—7uk2‹5I{‚LßñÔÖò§O?’Ÿ_uñâÝ»[+;šC&“p#“ÉT*YW—aaaؽ»•¿??'SSXãVÁƒ‚‚ºvíÚ¿¢M¾®®ð‹/ŠD¢óçÏ;¶¬¬ÌÊÊêõëמžžÄ«Þ¾}Û¸ªôôôîÝ»#„ÒÒÒˆfó¦N¶HKKkÖ¬YGŽÁqœ{ollüèÑ#"YÖÔÔ”””ÔÕÕMž<9::zìØ±B¡ðäÉ“!{{ûãDá8þßÿþ÷«¯¾"¾l\yýÂr/DH$T*µ°°°•÷Õ¢æ#iO0Ÿ¾ƒ©®æª¬äݸñ#¤y¹ÚnZpkfî¶Ç ñôôÔÕÕõññÙ¶m[+·µh£Ùº.\;KøËç@Óhä’’}……¿åæîNMý5&fÕž=ß~ýuHómaÀ€‰$44tƌĉ4|øðK—.±Ùl‘HD£Ñ´´´æÌ™ríÚµ’’’»wï®Y³¦qUË—/ÏÈÈHHHX·nÝôéÓ›:Y[[K hpÜ€žž‡Ãár¹Ä—&LX»vmnnnJJÊÈ‘#<( E"N¯««Û¼y3BˆÃá,\¸°~œ›6m’UX^^^RRRXXøøñãñãÇggg˦ü4®¼~$r/DLÏ;sæ ›ÍÞ·oŸÜ[ßzÍGÒ®ÞÚNqqMÿþÛ+/ç(;ùT¡Ÿ¾A§ÚB½xñ¢¸¸¸  àáÃ‡ãÆ³¶¶®®®nª|ff&“Él¾N6›íææ6hР;wî|üøñÒ¥K]»võ÷÷—H$-ÖY^^¾zõêϾ¦ðùüââââââ/^ „ŠÿÕšÑÂÍk±ð„„¬uë.uï¾áܹØ/¼\Õú~zYÿtSÇ .d0l6»~åNNNt:ÝÍÍíÚµk8Ž‹D¢ÐÐP>}úœ;w5ê§?v옱±ñÒ¥KëêêäžÄ[=ö^*•êééegg_²ÙìÙ³g2™Ìï¿ÿžÇãá8¾gÏ###›C‡M:ÕÔÔT"‘ìÚµËÙÙY[[»OŸ>qqq¨QëºMPPPii©ìZ+oð;¡ñ…pÿõ×_ œœœ®]»†þ»X,îß¿¿ŽŽŽÜ[kpï Fÿ5¾Í?b‘§ÖŠŠªûöÝ:dˆê¦y¼“fúú?Õ† 8pÓ¦M_rõàà`âÙKv†ËåÚÛÛËÆ-FŠ¢ðk5“ÃÞ½+Ú¶í¦§ç& ‹mlVZ[¯¿£ÀKw ­Ìô­±nݺiÓ¦}ÒK|èr¿Úó›PµQ¦‡ÖûŽ!/¯rܸ} -:úcãO[ÓQ‘H¤'N¸»»›˜˜ìرãìÙ³úúú7nD-[¶lîܹDI.—«¥¥õêÕ+„Ð7X,–¦¦¦££ãÙ³gB†8pÀÝÝ]WW·OŸ>=ªß²M4t_»v­K—.¦¦¦Ë–- …rO¢ÿß*ÞL 9‰DZ¸pá­[·ˆ/oÞ¼Ù£G--- bÝ ???„lUÆB›6m¢P(²jµµµCBB"""ä†W¿Îú±ÕÔÔÌš5ËØØØÚÚ:88X FFFº»»íܹSî]”——óùüOúÈ>ûU¥¦nÜxÅÛ{óС;ÿýQY!$‘`T*¥Åׂf‚¬¬¬'NÌŸ?_Ù±£ð¿€Âeg—÷êõó¨Q{jjZnüQ®V>Ó£5-¸©ù<-NÌ•[ ºº!T^^Þà=yþü¹™™Y31Åê :4333%%ÅÃø„ФI“ª««=Šª¬¬¬•øøø™3gš˜˜Éýhšyt‹‰‰155 ÉÊÊjñ#–‘=­fg—‡‡ßéÛw«…ÅÖÖ«ϯ³·†gú/ñ×_®[·îS_ØàC/--]°`Aƒ2rO…CmóLOÂ[1£(Qvvy`à!33½óçêé1”N &OžŒŠŽŽn¾‰DJJJêÑ£‡X,¦ÓéõÓÓÓ¬­­###‡ òÕW_ 8põêÕÕÕÕfffÛ·oŸ;w®¾¾>ÇÓÒÒb±X!!!3gÎ$ª=sæÌÌ™3ÓÓÓ]\\pÏÈÈpqqIII!F GGG¯_¿þÎ;O¿éš µÁŒš¿ÿþ;  ººZ$eeeÙØØ0ŒgÏž 4ˆ¨‡¸:BHncccCCÃòòrccãúŠ‹‹;vllllS1u7…ã¸X,f0¯_¿îÖ­BèÊ•+?ýôSzz:‰Dzôè‘¿¿¿ìýtvv/^ãâÅÅê–æ‘ŠM njæ®Ü‰¹ÄKˆ©·MØ´iSYYÙСCïÞ½›žž~åʕ޽{[YY-Z´¨™˜Lç¥ÑhS¦LY¶lYvvvjjê† ‚‚‚ä¾™žžž=º|ùòÇ]]]çÍ›—˜˜ø©ŸBðû÷ï?ÞÏÏÇñçÏŸŸ?¾A„\8.;ÖëìÙù©©¿üöÛT__G‰D¥RTpo (§W¯^ aaa‰‰‰k×®ŒŒ J¥rËgeeɾ— TyØIá=ÿàËUUq0`[E…êN¨“«õ#ò:д`™Æ3wOÌm0õVîÌ]ǹ\îªU«<<<´´´ºuëö믿òùü¦b®_gýتªªf̘Ád2-,,V¬XAÜHSï'¡ººzÏž=NNN999r?šfFäýñÇ~~~‘‘‘B¡°é϶!¹cÍŠŠª}áI¥RbjÃ'ù¼UtšÏaoÞ„†^óôÜhañ£…̧ï<ÌÍÍcbbœtèÐÍ›7«ªª¦OŸÎd2ãââ\\\¯ ¿dÉ’’’’øøx7mÚ4]]]¢#ìêÕ«±±±üñÇüùóçÍ›gddÔ÷ÕqA?½ ‰$sæœÈÈ(=~¡½}ËÝŸÕË—/{õê5gÎÿ/©GOOoÁ‚­9©:T<¼6B&“üüœ¶nس§½²cmˆL&ËúéÃÃÃ]\\z÷î½uëVbµ‰ÆÄbñ… öîÝëèèØ½{÷ÐÐPYÉÅ‹3l«ªªÚ'þŽ žéU…D‚-Zt&11çÂ…EîîŸ0¼ó4hÐçýèf˾455ýý÷ß”‘{Ru¨xxŸA êèøœ<ùÌÃÃÊÖ–ifÛt~í?•42½ªøùçk¼;vlvÏžvÊŽ…),äêêö[¿þ’ì N12Òqu5ëÙÓÞÓÓÆÞÞØÎÎXC~u*í<•4~ºT±cONœxºwï4õ\ tbVV:áýoBH$-)©-)©}ò$Mv’D"kiÑœÍ.\X ¯¯vÓJ;ŸM›6ùúú:tÍš5NNN©©©7n$¦’æçç#„–/_~äÈ‘êêêSIë¯Þ(›JzôèQ×ÌTRÐ<ø³Hù®\IÚ¼ùêºu_MšÔKÙ±Ð$‰ãpŸú*MMŠTZÓb1Çx<áë×y œý¬è€jÑÓÓKLLìÕ«WHHˆ——ׯ§N£¡¡A 6lØèÑ£G޹víZ{{ûþýû[XX4¨çÀ–––>>>Ç>|øÚµkÛýV:x¦W²¿ÿÎ^¹òüÌ™}/ªìX@lv]qqmIImi)»¨¨º¬Œ—WUXX]VÆ®©©#‘Prrè§î¦ˆa8¥ÕÛÔ98¨ïXÔNF[[;<<<<<\î¿Î;W¶e%áéÓ§ÄAý7†††gΜiðÚúÃqpXJ¯ Ó+SNNŬYÇìòË/”‹Â˜Ÿ_Ó`Ÿr¢­­áìlš””K챉ÒÒ¢'&nV‡…t ÓBezè§o?l¶`îÜ“®®æÛ¶MTv,Ÿ ÇñçÏ3"#cïÜy£§§9nœ÷Ö­½½mIŸ4ã t}û:?x²cÇíS§žQ($‰DÚxû;;¦30Ð!TZÊŽÏ"÷Ï‹Ã0ÜÌLÏ××qÀWWW3â[ÅÚÚðΕAAG““ó1ìÉ~öì íØ±'zz ==ͼ¼*„Ÿ/êÚuÃ;+Y,ëö»så9r䈲C<Ó· ÃçÌ9‘’’çÎÊŽµÉG~~Õ™3/þøãïŠ ÎèѬéÓûôëçB&C‚W‰‰¹+VœÏÌ,{ýºµkæp¹ÂW¯r‰ÄŸ%JLLt½¼l‰Çý=ìp_´è̽{©†#„“É䌌0MMZUïàÁ?Oz®¡AåñDb±„¨ðСß|ãÝ–w©dÏŸ?4hPƒv †(ÊãÇûõë§Øj!Ó·“]»î<øðÒ¥Åe_N±Xz÷ˆØçÏÓŒ´gÎì7mšŸ……²ãJ K32J?o‹E‰kе¯­­Ñµ«eÏžöïÞ>{–Žúê+¯Ã‡¿“½¤¤¤6<ünTT¼®®fM Ÿ89mš_xxGíó@¹ Ó·‡ëד-:óÛoS'OöQv,-ãpçÏ¿oo»ØØÌ°°[Ä,ËúîÝUÊŽ€Ž2}ÛZ°àt||vLLð§nÿÕn²²ÊûíþÕ«IÖÖ† ž<ÙêrÕïÚú4­¦†¯««Ùµ«eFFEe%!äâböøñe‡ @‡™¾ >ý|ÆËÑÑ?ôéã¤ìXäÈͭܽûî•+IÎΦK– 7ΛJ…ekj‹¥)) Ù/_f&$dWUñˆóÆÆÚ'NÌõô´Uå¦2Tdú¶òæMÁر{—.ºjÕHeÇÒPi){ïÞû‘‘q]º˜¯\9bĘTŽãeGŽ<‰Œ|Aœa0èÞÞ¶~~N½{;õìiÍQÈ™¾M°Ù‚‘#wÛÚ2Ï[ RSÏËÊ8ááw¢¢â]\Ì6o7`€«²#à“Ý»÷vöìc!‰½²SS BÎÎfÄ”ý~ý\,-aF(ÿ€Lß&,8Ÿuÿ~°‰‰ªŒk««;öäСGšš´+†OÚš=Aǵ}ûýû"„´´4®\Yâà`òêUî“'iññYÉÉyb±T6ŒÀW;;¦²ã@™ Ó+ÞÉ“Ï6mºµ¨o_geÇò›7_‡†^ãp„‹™;w4r‚N`âı±™! …²wïÔ zçù|Qjj1e¿Á0~__‡îÝ­¡¯ ¨Èô –’’ÿõ×û–,¬Ý󉉹6\z÷®èûïý—.ª§ÇPvD(Œ§ç¦òrB!Rhè7óæ lP€ÆÿôiZ||öË—™l¶ÀØX§G;__‡\=<¬Uªs €6™^‘êêD#Fì64Ô¾ti‰ÒDZ——s~ùåú¥K‰ƒuùå—ñNN¦Ê…“H0GljCGˆ´jÕÈU«F4S¸Áä=mm oo;____ÇÞ½étØñ tNéiõê‹×¯'ÿùgˆrGá8~þüËmÛnÒh”uëÆLšÔ š+Agõþ}ÑС»ˆc2™ôãÃ[Óœ&•beDÊþ<½ªŠÇ`Ð=<¬ˆåù||45im8í2½Â\»öjÑ¢3'OÎ1ÂC‰a¤¥•¬^}111gîÜ+WŽÐÕÕTb0´ƒðð»{öÜCQ(d„ðeËBBF}R ¹¹•OŸ¦ÅÇgÅÅeTS©ä®]­ˆ~ý\ ´Ú&pÚ dzÅ(,¬:t׸q=•—+ »}úô3??§°°@eE@{’H°!CÂ22ÊBÚÚ<ž(,lÒŒ}?£* Ã?~,‰‹Ëˆ‹Ëzù2³¬ŒC£Q¼¼l{÷vôósòõuÔÑÑPtø´9Èô •b‡**8÷î­RÖ°ö›7_oÜxE$’lÙ2šëºyÿ¾8 `†á!KKý’ö‘#³Ff}aµ™™eqq™qqYqq™……ÕT*¹{wk??'b­==h0dz8tèaXØí[·VxxXµÿÕkjø7^¹téï#<¶m›[ÈõôóÏ׎}‚aB¨kWËÜÜÊ›7ìÒÅ\Qõ——s’“óâ㳟>M{ó¦Çq;;怮>>}û:[Y*êB(dú/õêUÞ7ßì[½zô? iÿ«ß¿ŸºzõEÇ·o5ª{û@ÈËË[¼x±@ PV CX°`Á¤I“Ú¨r.W8`À¶òr6±™}—.æR)vûöʶho¯¬ä&%åY¿Á~»ƒu±±1Røøé¿' ·±1:~a;OÌ--­ýé§‹¼ òÛ¸ñk厼‹ŽŽž2eJ` ÒÆ(ÕÛ§OŸèèè¶»DTTüªUˆ6|MMƒA<ØýÀémwEôï~»Ož¤É²>±PÏ€®°<P0ô‹ìÜy§ªŠwñâíœæ#"b·n½©¥EŒüÞßß­=/ÝŒ6ý%:ºÉ“'·õ%}NœxÊç‹23Ëq—.æ—/'Žã9rd6wéèhI!Äã “’þY”wýúKb±T–õ}|Ø•À'Lÿù^¾Ì:~üÉÞ½ÓÚ³‹ŽÃlÜx9::aìX¯mÛ&2™*ºí=íL&ýòËøo¾ÙooÏÌÉ©|ý:À€.ÁÁQ½z9·ÇOжöÿ²>Ÿ/JL̉ϊÏ&²¾©©nïÞN°(/hé?—+\º4bôhÖĉ½Úí¢‰‰9‹Gp8‚ߟùõ×^ív]: __Çþý]I~~µTŠÅÇgioÞ|åàÁ퉖]nÖÿõ×"‘ÄÄD×ϲ>h'é?ÓÖ­7ñŽíÔ3-KCC¯Ÿ8ñ4  ÛîÝSàQ€¦üôÓ¨¯¿Þ÷ŸÿLýñÇóB¡ØÝÝäÊ•¤1c¼”8dµ~Ö¯«½yóÏ<[·Þ %°?hk0"ïs<~üqڴÇÍ7®G;\.3³lñâˆÌ̲mÛ&ú´Ã?1"¾—@3ˆ~úöÌ1uêï55|''“Ë—“BC‡vÍÌ,{òd­Òw£h€ËÆÇgÅÆfÆÅe¾~'‘`ææú}ú8õéãÜ¿¿‹½½±²„j}ßw\®0$$ꫯXí“æ/_N=ú7±XzãÆrÕLó*"#ãÿØ;ï°(Ž7Ž¿{•rGoGQzUÀˆŠ%v#ÉO#6ì½DE…Xb41jÄXb×` ö‰b‰%±!‚¤÷vÀÝÁõÝßkÎ ˆxp”ù<>>{³SÞv÷»SÞ™wêíMNNþòË/ -,,þ÷¿ÿ½xñB™«$//oܸq¶¶¶,ËÇÇçÂ… ]b¨½>›’E‹¾x‘=z´“I€—/³óòÊÿGÓv½ÇÎÎÃ0 ÃØl­~ýÜW® ¼z5$;û·’’=M¤€ IDAT))œ:u.,옗×H À0 Ãìíí?ó–C½÷ŸL“õÛ‹DÒï¿?êÔ£™3{/_þ%Úh«)ÉÎÎîÞ½ûˆ#nß¾ ‡ ˆuwwo¤KKK;uêÅf³£££ÇŽ{éÒ¥AƒjÝœMí¤¥¥ùúú–””€ÁÒ¥K›¬hõâëkïïï°oß_/_®sv^ZTÄÿòË¿ývcôhßæ°uMFFÆ¢E‹üýýk‹ •âI€®î¼¦´ Ñ<ù矶nÝú™™ ñø4îÞ}{ôèÃ]»Æé6jA¯^åÍœy¸²R|úôÜ=µ,DMÖ­[׳gÏ}ûöa:uâñxáááGŽi¤W¯^Ý·oßýû÷“?ÝÝÝ 6mÚÔ”Jãxii)ylbb²aÆ&+ZíÌžÝwÒ¤ýÙÙ¥_}å}ùr|tt’–ýèч3göÖ´iݺuCëO êƒZFEQïý' J–/?Û¯ŸÛÿþ×¹Q Ú¿ÿÞ—_nµ¶6Љ kM2aØÁƒÝÜÜLMM7lØpìØ1;;;}}ý~ø,X0mÚ42¦@ ÐÑÑyþü9\¹rÅÓÓSKKËÞÞþرc€ãøÎ;ÝÜÜØl¶¿¿ÿ;w0¥~f²ÛùÒ¥K...fff ,‹Å*á¿}ÔÊÇ·nÝZ°`r¶›6mZ¼xqI¤RiXX˜¹¹¹™™YXX˜T*Ui|mçÎ[¸p¡ru­^½úÀäqyyùäÉ“MLL¬­­CCCÉå1 ;~ü¸›››‘‘ÑÆ•\3°¦m2™lõêÕíÚµ3558qbyy9tëÖ ,,,ª]ZýKo>ôïïîà`vøðƒ½{'Q©Ž¶¶F{ö܉¤š6 hrD½Y»öŠ‹Ë²üüòÆ+¢¢B8mÚA+«E›6EËdòÆ+H½DEEÕç^€±cÇòx<²å:jÔ(·oß>())¹{÷®±±±T*%"22ÒÃÃÇq@Àd2÷îÝ›ŸŸàÀ&öíÛgffvþüù¼¼¼?þøÃÚÚRRRHȃ&''ÇÆÆ:::þøã* ‚(//ˆˆ ÍS‹D" …RPP@†ó•PäOžR>ÿæ›o²²²:wî¼lÙ2•Æ« ,++.—[[Õ÷ë×/555!!¡C‡¤ñ0räȲ²²ˆˆ(--­-°¦m¿þú«‡‡GBBÂË—/ýüüBCC븴ú—^AAAAAA½IÔÈþýwíì¸\ÁóçYN‡Ò¾}è©SšÒ•@TT”¦­@´ êùv­¤ôõ%>>ËÚzñ‰ÿ4^ééÅ_|±ÑÕuÅŸ¾l¼Rƒú+ý³gÏ‚H$ÕŽSRRd2™……Å­[·‚:tè† ‚àr¹t:}Ó¦Meee8Žóù|¹\îááqøðaE¶dz5¥OHHPØæèè¨2°6;sss€Ôuâ¿]gDírèêꚟŸOÇÄÄx{{«4¾¶@(++SiD"¡R©‰‰‰äÏóçÏ“ÆÀ;w”ë°¶À𶹏¸œ?ž yõêy¬òÒ>©ô:hz¥çóE..Ëvì¸I„³óR'ÄÁaiŸ>poJ3j‚”QÔ¢ô¨÷¾^H¥òÅ‹Oùû;Žã×HEܾýzÈ­T*výúâAƒ:4R)‡ÍfN¯v T*uĈçÏŸ/))¹yófpp0Þ¹s'66ÖÚÚºwïÞ÷ïß§P(iiiÞÞòôT±9©““yàêêš““SG`M,,,´´´H©ƒŸ1RŒ«A(}dddp8r®ì€ÒÓÓU_[ ¹¹ù«W¯”3üø±OUUUaa¡\.wpp ÃÆ[ZZ*×am5mËÌÌTÔ†››ÛðáÃk«O-½ùÀb1¿ù¦ë‰±A\¿ UUâ·o bcÓ4mѤ ¥¯wÓÓ‹ÃÃGbàw$—ãëÖ]0!büxÿk×·k×v·Ä ºpáÂéÓ§{öìIöÉ …BÇÏœ9Ãår§M›Èår­¬¬”}Þ’’’jf¥ÐéäädRj ¬ …Béׯßï¿ÿ®H~Y+Éd@¶þILLLíÚ²²²ØØX•Æ« €¯¾újóæÍÊŸ‘‘‘R©TGGÇÜÜœJ¥¦¥½×§ÔÔT+++…©*í¯RÓ6KKËŒŒ òl||üºuëj«O-½Y1qbŒŒ’¿ÿ~gkkB®7…a°ÿ=MÛ¥aÔëB©ì¦­­Ý£GøøøÏÌSa¡ræ¶¶¶'N,..®#!AãÇg±>mm±:*¤é½mƒæþ 622J6o¾2ÐÎÎTí™—”FÞsðàý;‚¿ÿ~Xs[Ù£‰ ÉdkÖ¬™0áýÚ¥† 8ðܹs<O"‘Ðét©S§†……]ºt©  àÏ?ÿ\¶lYͬ.\øîݻǯX±büøñµVTT(¦»+¯[·îرcK—.MHHˆÿé§Ÿ"""ÈÆ«=z”Çãmß¾]Qâˆ#–/_ž™™™0xðà]»v©4^e YâÝ»w'L˜ððáÄ„„Ÿ~úiûöí¤ÓéôÑ£G/X° ===11qåÊ•d‡Gý©iÛ„ ¾ÿþûÄÄÄÄÄÄo¿ý633SY (§ýüÒ5ˆ‹‹…——Í™3`Ó¦Ñ@pýúËâb¾¦MkU<|ø0??????!!ÁÉÉI½ëh‘™çää:tˆÇãuîÜ™œ@ª’¼¼¼ãÇWë«?iii&&,"½m­¬¬n߾ݮ]»€€€g®I>³÷¿ÕƒãxPЮ~•JÕ??.9¹ Gu]ºüøìY¦Ú3oJê?N¯hYÖv<{ölmmm§œ¹ƒƒƒÁpuu½téA‰dÍš5vvv,ËßßÿĉPcœ~ÿþýíÛ·711™?¾P(THÔ>èNijgÏúõë§§§çêêºpáB@àååEžZ»v­ƒƒÃ¥K—Ix<Þ”)S gΜYYY©ÒøÚ ‚ÈÈÈ9r¤¥¥%›Íöõõ½|ù²â—Ë0a‚±±1‡ÃY´hi¼Ê:TXÓ6‘Hjii©¯¯?vìXrŠ€T*íÙ³'‹ÅªVõ/½š~œžäСßñù"ÇÛ·%§æ­]{¥é-Qš§¯v«&Õþú………PXXø9y*,¬–9Žã½zõZµjÕG6¬¸jÉgÍšõõ×_+Oì˜4iÒĉ?5ÿÏÍÈk Ξ}lm½øùsõ+ñ‰ÎÎËFŽÜYRÂW{æMŒZîE’+VŒ7î“’T{8U>êê}µ!€¦”¾¢BhgFN¹Ÿ;÷¨b~Ó[¢ >Jpuu511ùå—_Ž=jkk«§§·råJ‚ æÏŸ?uêT2&ŸÏ×ÖÖ&ç·^¾|¹cÇŽL&ÓÎÎîèÑ£AÈåò;v¸ºº²X¬nݺ‘+AU¶‹/:;;›ššÎŸ?_$© $jÿ,®&Æ\.—Á`I‚H$¡¡¡fff¦¦¦¡¡¡‰„ ˆ+W®x{{kkk[XXüòË/AÈd²7:99±X¬îÝ»GFFªTz‚ Nœ8Ñ¥K—Ú2766sss2BÍ‚T^…â ZrGGGrް‚âââøøxE’›7oÚØØÜ¿¿¬¬lÒ¤IÆÆÆVVVK–,Q´.TT³në)}£SQQååõÃòågÔ›­\ޝ]{ÅÒrÑÚµWZ+]¨å^ …©©©äŒîúƒ”¾E )¥'bÖ¬##Fì âÉ“tRé9œmÛnhÄ¢ÞJß"\RISãããI7ÔÜÜܹsçN™2Eq!5=¦ô53W~¨,¨þJ_o[²–Tz¢ÖQPýë–@^vÍÓ§™GŽ<øé§ál¶–ºò|÷®hèÐ- 9gÎÌ>¼qÚkqôîÝ›ËåÖ1 ¼6îÝ$fff{÷î­Ge ¢Ð§+›­}õê þøÂœd-—ãëÖ]Ñ´iuÑ"\RIb\YY9kÖ¬©S§*NÕôðd0ÉÉɃîÒ¥ËáÇÉhÙÙÙµSQ–Âç³fæÊ1U¤ Qç´ÁúxÛºººBž¨* ú¤ºU HéU#—ãß®wo—¯¾òþxìúñôiæðá;(ìâÅù]»Ú©+[Q7t:µ÷k×€TzRì¸_PP¡aãJ3qI­†ŽŽÎäÉ““’’Ú¦ÒûtÔ¨QaaaÏž=Û½{7ÍÖÖö£vA{öìùòË/kË\9²Ê‚HjzÉÖ¤>Þ¶ä·Wž¨* jXÝ~HéUsüxì›7ùk׎PW†×®%írs³¼z5¤1¼õJeeeXX˜——›ÍöññY¿~=ù”½÷kkbèPÏGÒŠŠø={:á8`€ãÄâŧ4mZi>.©ÕÐÓÓãóù _Íšžb±X"‘0 ¡P¸zõjàóù³gÏV¶sÕªUŠ ‹‹‹ rssïÞ½;|øðôôtr •™+[¢² Ú¼d•Q_‡·­2*=Që(He…7.ŸÙûß*).滺®X·Nm~8›6E[Z.Z±âlë˜W5νo†ðx ‘H”––vðàÁ3fhÚD )ýÀqbÕª‹Ý»; æõ™Yåæ–ýïÛ_¿Î;sfî!Õb¢é)///((PžLâííýæÍ{yؽ{÷Õ«W¯\¹½aò㱠  Z’o¿ý6'''...::úúõëááádøÅ‹ÿùçŸ7.]ºTå>:µÐ¯Ÿ»\Žß¿Ÿìåe#JD")AaÄŠçp\m«·6=êÚµëÔ©Sûôéó9ùèééÍš5«>µ ©ºEJÿΞ}’˜˜óóÏŸ;ïåËœaÃ~“ÉäW¯†tîÜ^-¶!š E.—“Ç›6mrrròóó[·n¹@GM¤Ré©S§¶mÛfooß±cÇ5kÖ(bΛ7ÏÀÀ`Ò¤I€”¾ñ02Òõò²ùë¯7îî–†ééi™›ë‘§²²J._~®Yó> ä’ÚBÑTÝ"¥ÿ'Z»öòäÉ=]]9Ÿ“ÏÍ›¯FŒØéà`våʶ¼1]ëÀÀÀÀ¢æÞ\ñññ]ºt!ëãÛr÷~mMôíëö×_otu™VVææ††: üôÓe©T®i[Èc¥ù€”þÛ·Çà8±dÉ ÏÉäÈ‘¿§L90xpÇ“'gëëë¨Ë6„ ^³f¢•••áááƒ&ÖÇ;¶EïýÚjèÓÇ%;››šZäâb¡¥EËÏ/Ò鮨ˆwüxìÇ2@Ô>Ÿßµk×LJ‡‡?}útùòåÇ0`€òs¤Œò&rK—.mBc[?èóžôô∈»‹úyÞ±ãæŠçfÌèµmÛ8:úñˆ–ÀªU«ŠŠŠúõë÷矦¤¤\¸pÁÏÏÏÊÊjΜ9d•Þ±­iï×VC§Ní tîÜyãèh.J+*„66Æ@î½uëuÔ¬WkÖ¬155½uëÖàÁƒGŒ—‘‘qèÐ!•ñq/--%MLL6lØÐ„ƶ~Ò¿gíÚ+f'öhXr‚ ~þùrxøµŸ¾jÕ× êzj=èéé=}ú´k×®aaaÞÞÞ?üðÃØ±ccbb˜L&!88¸ÿþC‡5a^^ùðá;ø|Ñ¥K œœÌÃ6ÑøùÙ?z”jlÌb0¨8NXY "ƒ¦¥Eg±˜:;wÞÖ´-ä±Ò¬hÓJ_XÈÛ³çÎìÙ}MLXŸ”0-­øë¯·3™ô‹ç[[6’y¢1ðõµ+*â³XZ8N`¦¥Ec2i¦|¾H UTj”oý“<}š¼¯[7‡}û&1™m·êjcÀ€uG ‰t„B-##äÓæxùòe¯^ÍeïfOO›k×^”– H¥ïÞÝñäÉG={:ݹ󺸘ZZôsçžL™ÒSÓ–¶BÇJÓÓFåêéÓŒ˜˜¤Ã‡§Õ‰Œ’'M:ðå—ž[·ŽE kTÃÏÏo̘1µ­h-ÑÊʘååÌŠ -™ c2å¶¶•Š7±‘ÍÒ«W¯Q£FiÚŠ÷xzZ;ö7FéÐÁ:3³ÔÕ•#J<=mîßOÆq™©©ž¾¾öáÃ&Oî¶ZQ;Èc¥éi£JÿóÏWºww8°¾ ÝÜ»÷vÊ”ƒ^›7A2_“öíÛŸ_›æïï icˆÏ¥-*ýÝ»oãâÒ.^œ_Ïø11I3f>¼óæÍcЂöuPQQuï^òýûÉ÷ï'gf–²ÙZ}ú¸.]:4 À¹}{´{/¢áädÎdÒ„B ‹Åäó…l¶–‰ K"‘êZXè¿~G¡`ŽŽfGŽü”Ñ hsJOĆ ôîíâëk_Ÿø×¯'Μy88¸Ûºuß ~¼šH$²GÒHOJÊ¥P°nÝÆ÷pvw·jØ>DcC¥RÚ·7IN.`2é|¾ììLÓÓK;ujÇ`P_¿Î×Ñaè\¿þ’Ç¢¹·ˆ–N›Sú˜˜¤„„œèèEõ‰ýröì#ãÇw_»v8’y8N$&æÜ¿Ÿ|ï^ò“'äg@€ó÷ßëܹ½®.SÓ"ÇÉÉ<9¹€N§ "‚ ìíMÓÓ‹;wná³öí33K’’ri4êåËñãÇûkÚXâ³h[JãĆ ×ôðôüøâµ.<[°àøäÉ=׬ù’yÈÎæÞ½ûV1ôna¡ß¿¿ûøñþ¾¾öææzš¶ø4ÜÜ,þøã†ar9^U%±µ5‰M2¥çÖ­7¦Léyúôc@äëkþüS¤ôˆ–NÛRú«Wã““ vïžðјçÎ= 99ujÀ?~Ý–e¾¼¼Šw'‡ÞY,fß¾nhèÑ puµ€òòJÄvv¦99eîî‚ 8}@D¥RrrÊòó˳³¹66êÜ•J¥Ž=zôèÑjÌÑŠ¡R©Ÿ™CRz™ ߸1:0ÐÛÕõ#›Ù\»–°xñ©‰{´M™‹eqqhèÑÊ!;örrÊ@&“·kg$—ãR)nlÌÀh4Š·w»'O2ôô´.^|6~5}ûöíÂÂB5fˆhݘ›îÖ*mHéÏ{’•UzìØŒº£ÅÄ$Í™s´­Í+½?~œ.IÑÐ;¢ucjÊ€¼¼2Ép6p¹•ÎÎæ%V66FOždTVJNœˆU¯Ò7Ÿ„m„¶¢ôR©|óæ?GŽô±³3­#ZLLÒô釦OïõÃ_5™mD1ôþ÷ß)\n¥¹¹þ€hèÑ&`2iùù€ãdSÊË«\\,’’ò||ìââÒ,,ô1 23K>|×½»£¦MF H[Qú“'ñ/TGœ[·^MŸ~hìX¿•+›Ì°¦§ÚÐ;“Ióõµ 8`€zG´) :¹ö­L†³XL:ZVVéädqþü³éÓ{:ôàë¯;ååqKJ³gyð`r·C´PZ§Òçæ–mÚôçØ±~¤Ó¼H$ݺõzpp·:v˜ýûïw3fþê«Në×l}öÊC9Сƒõ°aÞ½z9ûøØ}Ò?D«A[›^VV 2††:eeU..<žÐÁÁT.Ç-- ®^}ñÕW.^|6}úá£G§£‡ÑiJ—שS»%K§¤òx¢ Þ￲gÏGG³<ñccS'NŒ4¨Ão¿m5«àÕzo×θW/çyó¾èÙÓÉÐPWÓ"FOO»¼¼ Èo{ÝòòªvíŒ@,–››ëÑéT‰DæînyîÜ“—/³ÇŒÙ{âÄ,†fÍF >•Ö©ôyye M"‘½x‘=aB„žžV·nFFºÍ]·î lÜ8jܸnðüyÖ¤Iûœ·onkÚge•’mwrèÝÀ@' ÀyÍšáÈ/¨†¡¡NVV)Á`Ðàß6½¥¥•JÉÎ.uw·ÌÊâÚÛ›–– ôõu¾ù¦KTTÜÌ™‡#"&kk#±G´$Z«ÒW8N'¼{÷¯ïšyóúee•R(™LzšËôêå2vì^??ûˆˆÉtúçú,j •Cïsæô pîÐÁºÕôR ê…ÍÖ&›¤ï¨¾¾Nyy%Nåpô³³¹îîV·o¿êÙÓéáÃwýú¹½z•wüøÌI“Œ³÷èÑéúú:š6¨/­UéˤÒ›¢QTÄ_½ú"ù Ć ×víºíäd±gÏÄ'óhèøLX,¦¶6]"‘‘¿®.£ªJÖÖF99e¾¾ö¿ÿþל9}Oœˆ2%`ñâ“ŽŽæ/Î7nßðá;žFöó#ÍŸÖ©ôd\µ@‚ (À•vEÇq‚Ï™š²È¾»æOÍ¡w£Þ½]æÍû¢G'rx@Ô]]&Nò*•BöZXèò\]9R©Üؘ-“ᆆº vûöë‘#»^¹²pÒ¤ýC‡nÝ·orÈõÑh ÷©>²Õ P0‚ ûШ'nÞL"»ãšf}˜òòª-[®ãçînYÏ$hèh ôô´È¹xt:¨TŠ\Ž€©)ûÙ³LGG3RQQefÆNNÎ÷õµ»{÷íÈ‘]-- .]ZrbìØ=ß8sfïÖç­ƒhe´B¥—HdÂjT*…N§ˆD²šñe2üñã´àà}‘‘³X¬Æû›7_…„œàr+qœX»vD1ËÊ*(}I ŸN§Úا¥{{·þ<+ ÀåСûA`¦£ÃØ·oÒöí7×®½òðá»­[Ç¢5Ds¦ FAA…r«¨T ƒAõð°¦ÑjŒü8ãÅ‹ìÆ³ŠÏ…„œ˜81‚ôß½uëUÍ8b±ìþýäu뮼¥cÇfÏ>š3l˜wTԜׯ×EEÍ™7¯Ÿ§§ ’yB-éŠÅ(*âF‘Ë 05e“+êØÛ›dd”tîÜþÙ³Ì=œ y©©ÅdZ Ã.púôÜ„„œ6ݽûVs×@|„Vئ¯ÖuO¡` uóæ1óæEVû:"“ƒu\¶l¨ƒƒY#™týzââÅ'ù|1Adf–ææ–YYÖz·¶6ìÓÇuÞ¼/ºww$WèD ±1K$’@N×ÖÖ„JÅär9éVUIÄb™éóçYAA>6üan®Çfk=xâèøáEáïïpófèâŧƎÝ;j”ÏêÕ_£•*ÍV©ôå Fά¡P(L&5*jÎ… Ïi4ŠT*WD#Çäºvµ[¹ò«NÚ5’1Uaa§¯^}ñ¯IïÇó(ʶm1b±ìÞ½ä mm†ŸŸ}XØ^½œÝÝ-ѰѳpÇ0,7·Þ÷ÞÀbiŸ/²³3¹pá™§§5†a¯_çuëæððaÊäÉ=ªeräÈô›7_-_~ÖßÝÊ•ÁÁÝÐ#ŒhV´B¥ÏË+§Ñ¨‰Œ”ùS§æ8;sNÚ£y …B„³³Å?~àÜx–M[h¸¹¹mß¾]ÓV¼‡N§ÒhƒJ*}U•˜Ü½F[›‰ÌÐP‡Á V8;›=ú¼½Û={–ì_G¶L&mþüþ'vß¹óö÷ߟûí·aaCFŽìŠïšâ?J{õêÕ   MY£,-Å::}}:€!hiÑe2¾¥¥€ÁÀô»t c …B©”*•bR)U&ÃÈÉö h4ŒN§`"‘ôîÝ73gönl“›Ó§O¿yóÆß¿®wÙÙÙ;vìh>J F£æå•!J È‘{*H¥r ÃÌÌØ……ÊéÓ§G­i+þ9EF(”TT…B Ù¦'—Á'çðš›ëñœœÌ 5µÈÛÛfÏžÛ|¾ˆÍÖªOþvv¦“Ÿ{–±fÍp£•ÿš-gÏžŠŠ3fŒFJøð¡A………+V¬?~üßÿݰ²%>M)ánn–%dÏ<Ù¦'—Ô$Ÿ>‹YY)kkC.·R(”8;[ÈdxZZ±«+§þeedd,Z´¨ngT‰DÎ`ôûŒ B´rþù短[·6 a+’5kÖ˜ššÞºu‹|©9;;4¨C‡‡š>}zÍø8Ž—––’Ç&&&6lh2SÅbÙ­[¯.\xzãF’Tгg÷µµ5i2ÊÌš5kÞ¼y}úô±°°húÒMMMÉr9NDD„µµ5ÇkØ Ù‚¦‡œjçãc÷òenAŒŒ>´éÉÞ{ƒ&KÀÌL ˆâb¾ƒƒ•JIN.ü$¥€nݺµôÕJš¥æv¬õ¤!½÷†U÷Ë/+WžïÐa%‡Ò¾}hMoÅJß"nâ_¥'bÛ¶mzzzYYYŠüÅbñëׯ\.¿{÷®"fÝWG„««k~~>™LLŒ···³³sÍ !þÛ…@§Ó{÷îMæP÷5ª,¢¹=ÍMé7n¼öÅáAtîü£µõâ=Ö‘á/_æ(À›7“8œÊJ1Aß:õˆ ˆµk¯ôë·ñ“ÊBJø|ü5pœžÍf“¯¡jÇ@¥RGŒqþüyOOÏ›7o’ÍCCÃ;wîüöÛo«W¯îܹóòåˇ ’––æíí­ÈÓÓÓ³fANNNä««kNNN5100°°°ˆïß¿¿rx|||—.]êŸUaa¡\.wpp :::*b’í0ŵŽÛ·')~Ö=}·{÷uõÌV³hiYtíZ¯žÌqÛ(óí·ßž?~úôé;wî$C FrròŒ3A§Nêyu‘‘Áá|ÖÕ××—H$µ]HJJŠ£ãG–`«y95‹h†@³¢¼¼ÊÀ@:v´ºq£Ü€ ‰$@î`ûïʸ2†±1‹\èÆÖÖ8+«Tcv#ŸH£ÌÈ vwwïÙ³'Ù¹* q?sæŒD"9yòd```QQ‘••Õ‹/¼¼¼ÈTIII5³JII騱#$''“ï”ÚU¼fÍš¾}û*Æ)+++ÃÃÃ.\Xÿ¬ÌÍÍ©TjZZš»»;¤¦¦ZYY‘§(”O›è ¥Ž=9)©*;»”ɤ‰Åu)ýÚµ#LMÙŸ”¿Fضm³Zòi>· …rèСŽ;þþûïdˆP(5jÔéÓ§Åbñ¡C‡êyu&&&wîÜ!õ»¼¼¼  `Ĉ½:¨y95‹€æ÷4+ÊÊÞ+½ÝIzzï—²çrIï;] ;Y0ŒÆÆ,ò”µµ‘@ ®¨¨Ò××ÑíŸÌ»wœˆ†N骆ò¤--­Î;ïÚµKù˵žŸøï å¸qãúõë—––öòåK²ÐÚê¡îª#{ðÞ¾Íß´)ºk×5NˆÊAúVÙ{ßRn›jÍ={öï5‚ ÊÊÊ0 ‹ŽŽ®¬¬üî»ïàߎú^Ý‚ FŽ™‘‘ñâÅ ??¿o¿ývÛ¶mÊBºÉÖ,]AÝר²¢™=Í­÷~ìØ½‹Ÿ"âÉ“t'd̘ÝdøÉ“±ŽŽKÉãÛ·_s8!<ž ˆQ£v‡…E‘’RÈá„$&æÔ¿,Ðtï½ò_ó󀇿ççççç'''Oš4ÉÙÙÇñÏ·°ªªŠÌöáÇÿ/yyyK—.U—ýuššjll¬øÉãñ\]]É'èíÛ·çÎswwïÓ§L&ûhòââbõÚÜÔãôu¿Ô‚˜={¶¶¶6ÇSÎÜÁÁÁ`¸ºº^ºt‰ ‰D²fÍ;;;‹åïïâĉš¯ìýû÷·oßÞÄÄdþüùB¡Pe ñß›¸Ú -–,YÒ¡Cµk×VUUÕ–¿T*íÙ³'‹Åª–—Ë0a‚±±1‡ÃY´hYèç(½‚7oò×®½BÛ·kÚ–•žh6·Mµ¿&Žã PœÝ²e‹‘‘‘ÍîݻǎkffVŸ«ãñxS¦L144466ž9sfee¥L&ûõ×_uuuýýýccc?Iék^NÍ"È„ÍçhnJ?tè–Ÿ¾LDN—à éÞýý8ý®]·|}×Çä8½@ "bòäýóæ#¢ªJli¹èÏ?_Ö¿¬Ö§ôÊîÂÂB(,,üœ<«Y¨^ƒlFhhh@@€²® [[[Eàîäê¥I•¾>¬X±bܸqŸ”¤>f5V¢Fn£Úžv‰DvýúËY³ŽØÚ†YY½ŸŠßÊ”¾>4ÿÛ¦9 ®ËiújinJïï¿vûö‚ ²²¸Nˆµõ¢²²J‚ ~þùò![È811INHU•˜ ˆyóŽM™r€ ïÐaå÷ê_V}”8àêêjbbòË/¿=zÔÖÖVOOoåÊ•AÌŸ?êÔ©dL>Ÿ¯­­Mö']¾|¹cÇŽL&ÓÎÎîèÑ£AÈåò;v¸ºº²X¬nݺݾ}»æ×ðÅ‹MMMçÏŸ¯èà©HÔûk˜Ëå2 2 A‰$44ÔÌÌÌÔÔ444T"‘qåÊooommm ‹_~ù… ™L¶qãF'''‹Õ½{wÒ™E‘gvÝU›eee“&M266¶²²Z²d‰¢ P-ccc077'Ã-,,bbbªý¥víÚEN•­YiÊÉ•ó¯Y:y!‘‘‘®®®†††áááußD³Rz¡P˜ššjaaANÊ­?mYé¢sçžïsu]Áå šÌ°ÏA-JßRn›æRzuáæ¶âèÑ¿ ‚xñ"‹G#§Ö‡„œÞGƹq#‘à  %A„…Eõ¾‡ðàÍ?ýt±þeÕSé['*é ÊçósssçÎ;eÊÅ…ÔtøTéžZ›£)IÝJÿ©N­„*OQ•J_Mž¡Uø©ª_éÿúë/CCÃ+V|jÂj×ÂÂÂY³fU‹£2°a¨1«ú£ñ¼Æ@-JßRn›æ€º.§é«¥Y)½\Ž[Y-ºté9AÑÑ NHŸ>ácÆì!bâĈùó#Éh—/?·´\$—ãA¬^}aذßÈð©SÌšu¤þÅÕSé['ª2,ëÕ«Wг5>Uº§ÖæhJR·ÒªS«JOÑ+}‹óSUÿ¼ÙÞ½{s¹Üuë>ÙCLqå$fff{÷î­Ge`ÃPcVˆÏ§¥Ü6Íu]N+«–O¥ªJ‚ã¹Mmv6—B¡xzZß»—œšZÄåV’‹å€P(e2i ::̪ª÷{Í™š²KKùj·ª>ž¨%%%7oÞ †=Qccc­­­{÷î}ÿþ} …Ò4ž¨ Yª¬¬œ5kÖÔ©S§H‡OrG–¤§§“îÒ¥ËáÇÉhÙÙÙµ³6êãÔªl@ž¢$DÏPrÕ®ÞâüT[°‡ @4rXmm:¤§kkÓMLØ66FÇŽ=,-.v Iµµä1NU¬alÌ*-­lb›ƒ‚‚.\¸púôéšž¨\.wÚ´i\.—ôDU¤ªÍ•<¨æ‰Z3ð£èèèLž<9))I!–d{WÑ,Ž%ÝSÞ={¶{÷n2š­­íGíl5 PxŠ’”=EÉ­sssUfEú©ÊårEé§:xð`òg}*­ŽÒ›ÆO)=h‹ü«ô HK+a³µ**ªÆ÷?u*®´T¹M/!¿€BÁpü½˜ér¹‚&¶™œ¾fÍš &!† 8ðܹs<O"‘Ðét©S§†……]ºt©  àÏ?ÿ\¶lYͬ.\øîݻǓ›%ÖXQQAŽ…W;®†žžŸÏÞWȈ#–/_ž™™™0xðà]»v‰Åb‰DÂ`0„BáêÕ«€ÏçÏž=[ÙÎU«V©«¢j@§ÓG½`Á‚ôôôÄÄÄ•+WÀÑ£Gy<ÞöíÛ•sP\˪U«ŠŠŠúõë÷矦¤¤\¸pÁÏÏÏÊÊjΜ9uÔ¤"9‰ÊÒÕu±õB-cˆzhœцiVorqû·oó ‚ðóû¹oßÓ§*,ä‘ή·n½uÞºõzÏžëÉãíÛcüý×’ÇçÏ?m×nIý=ÈëóìC‹õD•ËåzzzéééäO•Ÿ5ÝSks4­Y\¥«_VV&53›²ti\HÈ?d £R)8r¹ÜÊÊð§Ÿþ×4†©´´´–~Û š€§OŸjÚ„…RÐÖfdeqårÜÂÂàÕ«<èÓÇõÂ…g±±©;Z@yy•¾¾6™Ã0âß¡hcc”– ôô´›Æ`‘H”——wðàÁ“'O6M‰ˆVÔÞÊÊŠJ¥Îš5KSÖ¨/ˇË='“•U;ea1— p¡0©ª*I&ã6¶%ZZö††_€`Tª¾XLn?Ž8.Ú£‡ScÛÓHØØØœ9s¦¥ß6ˆ¦¡]»vš6á=Šqúøø, ÃÚµ3ŠM>_¤¥Eß¿ÿÞäÉ=étjEÅûµñ€B¡(ÆéÉïËË…Mfð£G†>gΜ>}ú|N>zzz5ŸV•ˆºiA•öŸy=zô¨m-ßÄû¨T–‹Ë\rN™yóS(ZlvWSÓ‰ƒm>~ü>_Ôx–…©.Ìo×ΘF£‘Òþ/Õ;pïÞý#{—5[6oÞÜxuˆhedffjú†}bî}FF‰‰ ËÀ@‡ ÉÉáÚÙ™ñ""î@y¹PѦÇq\±±‹®.NwMòDmn´ Jk…sï­­ ¬¬ê믷¿~¯|*4t°¹¹yüòeÎÒ¥§ÝÝ¿Ÿ1ãpLL’L†7†1~~öýµtÖ¬¾dG}mÑpœðõµk „J„B)ƒA£R)ÉÉ…NNæL&]$’@NN™ƒƒÙüùý7o¾ž“S¦Ü¦—Hd Æû~P&TU‰5e?QZ¡Ò·kgAâÀÀßž>ýІÐÒ¢ÿôÓpòó– ¹œÉäׯ'Nš´¿S§ÕëÖ]ÍÈ(Q»=ZZôï¿výúgg rýš0´þýýúëíëÖ]½?™|ã ˆÆC(”.vÉÉÎÎæL&M$’@v6×ÚÚðÛoûYXè¯]{¹¬¬RIéå ¥g2iT*…ì@ š9­Pé9RPår\,–ízøðâl` W—.¶tú‡ 2™JK{÷ÞîÙsý˜1{®]KP{ßÃÃêúõ%Ë—I£Q«5î©TŠŸŸýüùýõô´Žû{ôè=+ƒ‚vmÚôç½{o++Q£P?"‘TK‹oß89Y0™t‰D†ãDNN™µµƒA[±âË+W^TXXè“I”Ûô ¥EoÊÞ{¢Á¨˜{ßÒ¡Ó©ÆÆ¬âb>ÈåAÈ‚ƒ÷;6³gO'À0ì—_F´¹fB¹œ€RîÝK^¿~ääÉ=ÔkF™7¯ß—_z-\xâéÓ ÅÔ:ÔsÒ¤÷Åef–ÆÅ¥=~œ~õê‹­[oѾ½±¯¯½‹‹…z­B Ú&2N£Q y<žÐÙÙ‚lWTTq¹•VV†ðå—^N÷î%““ï †Òëè0Ò#Z­PéÀÆÆˆTzÀqB*•ÿû±c3œÀÃÃj„î'NÄJ¥òšii4Šñˆ]É6[[“sç¾ýý÷¿6nŒ&B*•Ë帯¯½"BûöÆíÛù@I‰àùó̸¸ô¸¸´Ë—ã%™¹¹)ù¾¾v:X×6€@ ê†t™KN.ggó·oóàõë|‚ ÌÈ8óç÷¿w/ùäÉúõsƒ÷JOUä £Ãø¤Þûµk×’[–! £°°°a [§ÒÛÛ›¾x‘-—¿ïÇqB&“ÿ~àÀ”<`ÅŠaW®Ä—•UÿÝÕ€F£èéiŸ=;WOO«ñÌ£Ñ(sç~1t¨çâÅ'ccÓX,­ÚZê&&¬>¶<žˆÜûNªýÏT³y³ŠC¢ihJoee¨,ó$8†Ï˜qèðáé_|á6z´ï‘#ó1 ‚ËñÄÄ\OO›¦±ð±c»5 !•Jqq±pq±?Þ +ââÒãâÒ?N?xð>†££¹¯¯]·n66Fê6h%$'=jdc=5µÈÉÉ\q¶  ‚ÃÑ_·î›aÃ~›:õ –ÝÑñÃY Ãê-õ„æhJocc¤rò}ú±““EÍyjffìk×™™é)÷ÕÛÚš\½²`Áñ#v„‡5ʧiÍoètj—.¶]ºØÎ™Ó— å }6üA£Q<<¬ºvµëÚÕÖÇÇÎÒÒ@Óö"‹ŽÇ r…lÅ@y$¾  \±lé;p Ç¼yÇ૯¼Q›ÑRhJöö¦B¡xúôÞ³fõ12ÒÀÖ¯¿:dHÇšýÕä}5tu™û÷OÙ½ûöâÅ'_¾ÌùñǯëXµ¾Åa˜““¹““ù¸qÝ ²Rœ””Kúï;÷DÑÉOúïuíjK.Š@´&È…ëíìLÈŸL& Ã0EçVEE'R|õVT¥Rù”)=íìLæÏd±˜8N´¦×¢Ój•>"b²–M±¸Õwß ¾xñÙ±c§MëUÏ0 ›7¯Ÿ™™ÞwßÎÍ-ûí·qêd¯Atu™Õü÷²?N¿råÅ–-7¨TÌÞÞŒœÉïçgß®±¦íE Ô€¶6Ú·¯ô†ap8}ú¡!C¶ìß?ÅÍ£nK› ÿ=r‘¾âb~||9Àöì‘Hjn®çéiC ?šÓ‡h¹éÂ_оzHM-b2iäÞ˜@.»il̦P°mÛÆÍ™s4:úeN·i­F BêzZ° ?Ž¿ÿþ×§&ôönwçÎRWW‹!C¶DFþÓ¦5_LMÙx,Y28*jNrò†?ÿ\ нçÅbަ¦ÜmÒÒŠììL«Z•”ð)ÌØXètjDÄd&“vüø£S§5¹íħцdúú:sæôݾýæÄ‰=”ŸçúÀfk‘ÃöË–‰‹K jƒC×4…œÉA¤¤>}š—~÷ïS(˜›ÇÇÇ®K[;´\¢™“Í…Gë %¥ ÀÌìC?5µØÞÞTñ³¤D`` £˜Ç0ŒF£ôïï¾dITE…pÖ¬>Mg:ñ‰´!¥€3z>ü÷¶m1k׎øÔ´ä°½››å·ßF~ýõöˆˆ)ŠÅ±Û †9;[8;[küUUI߯Éñâó²²J‹éæféëkOöó£ÕyÍ·o 0 ‹¥äϤ¤\ ÅÌHM-"·œ )-˜˜ü§… ˆ ñts³\³ærE…04t0Úq ѽ—­­Irøâ ·˜˜Ð3²eçÎñ_|á¦v#["::Öä—Éð¤¤Ü§O3ž>͸|ùù®]·ètj‡V¤_×®¶äR$„fII)ÔÑa(6½LJÊ¥Ó©ŠÕmår<-í?múÜÜ2+«Þ§ä&™L&mÑ¢Žþ²eg“’rwìßZçí"Z4mKé`ܸnû÷ßÝ´éÏ;Ç7,++à æ/_~v„ˆ¹s¿X¾üKô!¯ Fñò²ñò²™:5ñ«Wï]øÎžý 9³O¹…@4ÉÉù††ºäÏW¯ò”§—ææ–I$2åõòrsËmm?tã "`±˜0fŒŸ§§ÍÔ©Éå¶Zý¼]D‹£Í)=F 7Žú믥oÞ¬?qbV` WE…pݺ«}û†»¹­=zÏæÍÆÄ$ñxBMÛ‹hµp¹•ÅÅ|Ëôô' *x_Ô„„@ÔE›kÓ†a+V|9fÌÞRzötúœ¬üýnßþná¿-\8`Ñ¢A¨'¿þ(oƃšûˆ¦$9¹||ìÿýn~~ybb.…‚1™tå6½Ý‡Az.·R,–)O1©Ö¦'a0h¿þ:êË/=—,‰Š‰I 5hP‡¦¸¢NÚ¢Ò@¯^.ݺ9üúkôg*=ê92ýÀû?ÿ|9!!gÛ¶qhžy ›ûƒûgdd•Êf08<')‰sæŒ)QX¸‡ äš6³Â`0n߾ݣGM¢6’“ õô´||l =½øùóL''s™ W(}RRž»»¥"~^^9(ÏÈ#Ûô*‡íúôq½qcɲeg§N=8iR÷•+¿BÛG!4KUzX¹200pÛÕ«/ÈÝ©? æOïÕ¥‹íìÙG Ø´wïÄ.]lÕac›###cÑ¢EþþþÊ2QT$´´<©)«£FÊÍÍÕ´ê$9¹ÀÑÑÜÌLÍÖJK+‰Ïöò²yö,“ì½ÇqâÕ«ÜáÃ;+â§§ÓéTÅzyPQ!ÔÑaÐéT•ù³""&ߺõ*4ôôµk ¡¡CÆë†:üš¢í*}çÎ탂º®^}±_?7µ,ƒÓ©S»èèÅ >|ÇÒ¥CçÎýõ67€nݺiÚ D+‡œŽV Y/^d4$>>ûÿìg@SWÇOaƒ@Â{†ŠEÔ*Š¶ÚŠ"EÄŠ œÅˆ¶n­[Ñ:*ˆ£Z•º¢ˆ ²ÂÙ $BÖ}?\ß“<¿O÷>9ãOÆ“3žsPO_RRË`4;:ñÓÖjÉË]ØD£5©«·±wìXûÿ]³{÷íõë¯%$¼Þ¾Ý›D‚Ëò!2à{\‘ÇgÆëëOœøOZjk«^¸°pË–Ÿ££ïΟ®)ƒ@z&yy¨§4È$5µ¨¾¾ÑÉÉDNƒ.ÈËÊ*ÃbåƒåŠŠj„vʪ®¦jmV¤««þûï~·o‡0™ìñãc6oއ? îç»öôzzý–,ùáàÁ‡••4i•‰ŽäŸ=» 5• ™\ea¡‹.˜E#ëØl@Nƒ …ÒP^^'اÏÉ©@àSUÕî>=55Å+ÆÍ›çîå¼sçïÒ܉§ôYüüü.]º$•¢¾÷Ñ{€œfÛ¶_=úðàAvW”?`€ñÇa>>Ö.½°bÅņø­þ^~ýúõõë×KJJN:•&IF:>tèд´´¨¨¨ôôô 6\¼xÑÓÓ“Ë¿£™L&¾Œ-kjj®[·NjÏÐ<Ž6?¿’ËåååU²X99 ‡dg—Þçä”+++ŽÞóxHmmÇ==Šºº’¡aýôéSD‡Ó™˜ ÐÓÀˆVS§Þ¼9¾¹Yj-+ˆ’nûö©'OÎ{øðýر{^½*ìŠZ =7nìÞ½{ðàÁ:::¸yó¦$#""ttt½¼¼lll¼½½SSS‹ŠŠÎœ9#6=Ç«­­E¯ Bdd¤Ôž¡/RXøÕÓ¿}[ª¬Œkjb§¦¢óôYYezz‚ëêsr*¬­õ£áëê9žŽNÛkï!žôô_ؼyJm-ãÈ‘G]WŤI> 34Ôôö>´wï=.—×uuõa0ÌéÓ§íììttt"##/\¸`nnÞ¯_¿Í›7V¬X1þ|4%ƒÁPQQyóæ àÖ­[ PRR²°°¸pá€Çã:tÈÎÎN]]ÝÍÍíñãÇ‚ûäççc0˜„„[[[]]Ý+V477‹5ò fD¯544Ž9Â÷ÁÅÅÅ赨Abcc·lÙ‚Å~Ý•EUU5,,,66V¬WWW€¾¾¾€ººº¹sç##£ÐÐP&“‰6àÅ‹íìì´µµ£££¥õ¾ô¸\^qq-ÿÐê·oKŒ¬¬t?þ€ŽÞ¿ÿÍîx€ËI¤o†î?}¢7Ò@z4²¢èAüñÇ}só°’’Ú.­…ÅâìÞ}ÛÐpÕÌ™Ç*+i]ZW¯påÊ•6ÓøùùÑh´“'Of̘A£ÑŽ?¨©©IJJÂãñl6AØØXÇ`0;V^^~êÔ)yyyƒqüøq]]ݸ¸¸ÏŸ?ß¹sÇÈÈ——‡~)ЋñãÇçææ&''[YYmÛ¶M¬Aººº'N ò¯ÿý÷_CCCEEEOOÏ={ö¡v±zøUS©T@uuµÐƒ?þ\OO¯ah2Ákÿ±cÇdff:::¢jÓ§O§R©'NœÔÖ¶ý—ä}é-׉!¯^}y/&NÜ·ysܶm7FŽôòÚ»}ûM7·11w³89m=|8QÐrçÎ[CÃUÍÍìNŠññññññéd!>‰t?ÐÓ¥¹™=|øÎ  ³ÝP×óçyƒo³·ß˜ðºªë-Hèé_¿~ ‹ÅºÎËËãp8úúú‰‰‰‚Lš4)22A …‚Ãábbb¨T*Ç£Óé\.×ÁÁáìÙ¯ïõ¹sçD=}ff&úê•+W¬¬¬Ä[WËáp’““#""±XìÅ‹[ÒÓ¦§ùò%@hEjá_³X,,›••…ÚãââPµ€Ç 6Zë€ô-OÿäÉG"1„Ba ÒÜÌ61Yó÷ßiOž|40X5ztäæÍñ«>Ìæ§§PDbHbâ{ÁBŽâä´¥ób §‡´„t?pôþ+ ò›7O¾y3ãùóü®®køp«gÏ6x{Y²ä¬YVTÔwu} uuu‡º`±Xoo︸¸ššš‡úûû´´´?~œœœldd4jÔ¨§OŸÊÉÉ‘Éd'''~™ ­ÈÚúËH$éÓ§O­Eihh¸|ù2ÀÅÅeóæÍ™™™ááák×®mI?£¦¦¦¾¾~FF†PC† ‘\Cee%—˵´ür¤º••?¥`£}WÉÕšš*hX݇ål6×ÉÉdÄkAJm¨­¥6å§ÏÉ©íb[VFí3C÷‚Ó=#€²²òˆ#D?É=™†††°°°ª««;;;ïÚµKÂeqÒmF©=ý7xyõ3†´iÓu6»ËMSVVؾ}ê_}üX>ztÔß¿êê¿|||âãã¯^½êîÉ755ñx¼k×®Q(”ùóçOž<™B¡¾}û–Ÿ+;[LäÚ?äææ¢Þ±%£(‚Ìœ9óÝ»wè-ƒ™0aú«!V`^ÿˆˆÁ•ö QQQ^^^’kÐÓÓÃb±d2½-((04ü9&øÇâ{£¸¸†?IŸ‘Q¢¡¡la¡#//7y²•ÚXQA35Å£ÿP>~¬ÐÐPFƒïù|úD12Òq¼xñ¢¼¼¼¼¼<33ÓÚÚÚ××é©1Ÿ‚A+ OǼ|¿_ø–Ø´iJAAÕÅ‹ÉÝS‡‡íãÇë¦LqZ±âbPÐ9 ¥¡{êíÃŒ9’ÃáDDD  3~üøëׯÓh4‹…ÃáTTTÃÂÂ***îÝ»·~ýzÑ¢V®\™ŸŸŸ––>kÖ¬–Œõõõè¢Ák55µÙ³gûúúÞ¹s‡L&¿xñ"44ÔÏϯ%=‚õnÙ²¥ªªjìØ±÷îÝËËË‹wqq144\²dI+ †`!8Î××wÅŠ………YYY›6mBG8¾sJK)&&_öÀÉÈ(0ÀíŠMŸ>”Íæ–”Ô89™¦ÏÍ-Ф|úÔwúôRGGGG_____ßÚÚ::::77·ººZÖ¢Ä#´úvÌ‹´¦úÛ·ß´¶^W^^ו>zôaР­ýûoº{7³;ëíQÉæéùSË-]/^¼XYY™FûºàñÊ•+––– $)!!A‹ann®¦¦æææ†îP!4OòäISSSÜÔÔ$Öˆ|»NðšÃálÛ¶mÀ€ÊÊÊfffëÖ­CÓ‹Õ#˜Aƒ±fÍGGG‡;v466¶$ŒÍf»»»«©© •C¡Pðx<‘H\µjZ{KÖÉ÷¥·0aÂÞíÛo¢×?üµcÇ-þK&&kŒ×üùçÁôS§\»öªP!ööÏž}Öy1ÎÅN:E"‘Âîݻϟ?off¦¡¡±iÓ&A‚ƒƒÑ”t:]YY]¼róæÍþýû+**š››Ÿ?A.—{ðàA‰¤¦¦æêêúèÑ#ÑÏü7lllttt‚ƒƒ™L¦X#Òòg^èE¡PÐ,‚°X¬ÐÐP]]]ÐÐP‹Åf³·lÙbllL ¨T*š’J¥Î™3Ç®Y³†ÿÑ%‘HZZZQQQüEV„Çãzzzh.}}ý5þáÇG%¶³ 6‚äâ;ÿÙèéÅÐØØº¼\r §o…>ãé› VÝ»÷Aää"1¤´”ÂÕÆf‘ríÚ+¾¥¢¢^Ô©¿zUH$†|úDA:äž¾·Ä›«©©½ÿ5lD"•——£×¬¡¡!(((00ÿRQQ‘HDWæ{zzó ·³³›:u*h؈¨QŠéÛ1/ÐÓ·È®]Óªªh‡'vÕ‚Ú‰s÷ïŸùâEþ¸q{nÞìMa*²eÔ¨Q eçÎíÍÈÿߢ««{ìØ1¡4bÝLOÐÐ{)+£ 5% ¾Êbq­¬ô>~¬øï¿\ÔòæM±©)^[[U0Yaa©)^ps\™ÓCâM„PQQ™;wnvv6ÿ›…vŽÑÿT*599ÙÀÀ ¨¨}5##ýæ¶7lDÔ(aEBôá˜èé[ÄÐPkÅ ÏTuí ÆÇÇùùó?ýä´lÙoïCyy•Ý/éK”•QUTÐ º·oK—Ù³Xggg0b„5Wì7oJ 2*„L®67×é6Í’ÐCâMDÑÐРÓéü¨ooï 6gffzyy>|8 `ãÆYYYYYYË—/G·‹î|؈„¡ðåõå˜iMôI˜Löðá;gÏ>![™™¥^^{MLÖìØq«ópöd@_™îcô™÷eß¾GŒØ‰ …Â00XõàÁ×…8))DbÈáÉ C23Ky<ž]¸ÐR|A<=÷ðWïwÉçé{K¼ øvšËåjhh¢·4mÞ¼yZZZx<~Ñ¢E L&344ÔÀÀ _¿~~~~üµ÷’‡ˆ5JX‘`Ð Jωy+òº•¤¤DbÈ­[²•ÁfsOœH²²Z7|øÎ§Ose+¦ëè3¥ÑgÞ—ðð¿ùåòÿ=qkjèü—|H$®ºv-ÇãµtéùÂÂj"1$5•,X—˳²ZwñâK©è‘â¯yŽ7é t;ÀyÝŠ‡‡íÌ™®ë×_“íÊ8yy¹ <ÃÌÍ ¾¾GW¬¸÷Ø@ÚKm-ƒ@Pdd”jáñ_MM%c0@^^ƒÁ¬_?éÆ7ׯ§ËËË9:~³¯¸¸¦¡¡ÙÎNÒ¹ên€Éd’ÉäÓ§O/\¸PÖZ =yY èlÙòó£G""nîß?S¶JLLð.,¼víUDDÂóçù;vxOœØ_¶’¤ÎŽ;ÐxSDêÔÖ2,-u%‚“ô<’šZˆ ºfjüxÇ#¬ccŸÛÚ••Køð¡\N#tˆ­lIII™:uê’%Kúj¼IO ··ôôm£¡¡´c‡÷‚g¦N}é‚#ùöœœr­ /ÿe˜sëÖ)žž1¶¶Â}÷>›š„Ü¿lAãM:±·Ä›ôz{;@O/“& ˜4iÀÚµW?^§ªª(k9@[[õ÷ßýGnÞ?fL”·÷-[~&ÔÚÎٳٻw¯¬%@ú255t<^µ¢¢¾²²~àÀ¯}ú””B e­‰ïémm‰X¬\vö'6›‹Ãaù)?|(··ïAC÷ˆ$ÀyzIÙµk:ÞsOÖB¾Ò¿¿Q|üò£Gg¿|Yàî¾ëðáÄn8‚é¥ðx•ڈǫed”ÈÉa øLŸšJF£é°Ø/?‰99å\.Fk¾té›Ã®Þ¿ÿ,t‚-Òóž^RtuÕ7múéĉ¤ôô"Ykù ƒ™<Ù))iýÂ…11÷ÆŒ‰JL|/kQHO¤¾¾‘Ëåik«ed”˜›ëhh(ñ_JN.4ÈÀ﾿yS¢¢¢°p¡ÇîÝw*+ëQcCCsII-ìÓCzÐÓ·??סCÍ7nŒãpx²Öò ** kÖx=~¼ÎÁÁ0 à„¯ïQ¸Í"Æhh(ed|³gΧOÔŠŠzt½‚— ÍŒŒGG£uë&j_Bç³sr*x<ÄÎöé!½ ¶íTÕ IDATèéÛœ&&Æ7'§üС‡²Ö"33Âñãs®^]RUE7nÏæÍñt:SÖ¢ žBS  ¤„{û¶ÔÉéëÐ}JJ¢¢5µpÀcôk¢¤$¦ùø±ÂÅÅàèh¸hÑè­[ãËËë>|('‘ô¥¸ã=‹½víáÚµkX,¶íÏdÀµ÷ífÞ<÷‡߯\yéþýPEŞ؀JJ¸U«ÆûúÛ½ûΪU;öxýú==d­ ‘%èi¡U8ÖÑшoOM%瀞Z‰öé_½*¸¸X  ¼>Ì^·îZc#‹D’æ$ýÎ;½½½¥X ¤/Á?C¯óôDGÕÃÁ`0ÑÑ3ÆŽÞ³çî¦M“e-§E 4ô ñŒŽ¾;wî©ÃÃtw·‘µ.D6 £÷?~¶±ÑçÿG§Rrs+7nœÜÜÌ()á©©…––:ü#ìä##}¦M;¤¤„›4IÌI¯ÆÂÂÂÂÂBŠB b£÷ÁÈHkëÖŸ{œ’B–µ–6°´Ô=~|N\ÜryyìŒGçÎ=õþýgY‹‚@d@c# ƒÁ|øP._÷êU† 3g2Ñ>½< %…¾{÷]7ë‡@: ôôeÿþ™\.oõê˲Òn0ÌØ±öññÁ†éêªûû>|çÉ“ÿ¡Ã˜HCNNŽËå:8|=o>5•ld¤¥¯ßÀd²q\./-­ÐÙYØÓ×R© 莹þþnnË–]è]ƒyïèé;‹††òÁƒþ÷î½»r%UÖZ:ˆ½½Áþ† f¾}ûÍQ£"ÏœyÚ+VB ’ƒÅÊñxˆà®õ©©dt{ðÿ>}NNÎäù¤§)(È÷ïÿå_ÂîÝÓ'Ovš5ëÏìl8óé@O/\]-ƒ‚FoÜxL®–µ–Žcc£ÿÇ3_¾Ü4a‚ã®]wÞ¶iS\AA•¬uA ÒÅâ"@÷·ðxHzzñСfèms3[I —’BÖÐPÝÙþõëGGCþ®ø &&ÆwèP³Y³N”–välx¤;ž^:¬[7ÉÆFÙ² ½ýÜXÍß~û%+kÇŽÞ))ä‘#w{yí»v-­·?RYYà÷éß¿ÿL£5¡“ô‹£¨(Ÿ–VèädÊ?»–Ï›7Ń› Zp8ìɓ󌌴|}ÖÔ0º^>Òq §—8vÿþ™¹¹•¿ÿ~_ÖZ¤€¢¢¼óƒ¡÷î­0ÀhíÚ«ÎοíÜyûóç:YKƒ@:ÈçÏõ"±z›’R ¥¥jc£‡Þ2™EEܳg¹#GZ ed2ÙÙÙeBž ¬¬pòä<A‚‚ÎÂÕ-ž ôôRÃÚZoóæ) Ÿ1cØåË)#Fì\¾<öùó|ôO¤QUE46²ÑÛÔÔBggsþžwÍÍlWSÃÝ1:;»ŒÍæ¢Ëñ„ÐÓÓøë¯ÅùùU³gŸ€K[ =èé¥Éœ9Ã= òÓ¦ ýûïe¯_oõ÷w½r%uÈß~þù@lìKôì¤'SVFÿ÷ôEE5UUtþiu€æf6ƒÁts³¤ýºXð”[QŒµããƒY,ÎÔ©ËËá ¤Ç=½”ÑÓÓøóϹwî¼=yò?Yké*ôôú-[6öéÓ çÎ-ÐÑQ߸ñº«ëŽmÛn¼}[*kiˆxh4fM PW×HI!+++uÓØÈª«ktwž¤â–㉢§§qéR‚Ÿ#ÅŵRÕtè饛›åš5¶o¿™ž^$k-]+7nœýÉ“óÒÓ·-]úógy'îswßµwï½^mé“ ñ¢X¬•ÚHM-4ȇÃòTTÔ³ÙÜ#„=}U½´”2dHž@$jÆÅ-WQQøñÇß““ ¤*éÐÓw +VxŽa½xñyþ¤`†@P ýðaXZÚ??—7Þ¸»ï=:jïÞ{……ÐåCzyy•JJ8MM ¥’R 8t¨¬¤©¨(ð—âóÉÈ(–“à ÐÚè=õÛ·CÆŽµ÷ñ9røp¢´ÄC D^Öú&rr˜ƒý==cBBþ:{v~=Óº¤¤dÙ²eL¦4×**33•êjê|Þ·ï_SÓ"UU¸L "M‚‚‚¦OŸÞ®,ùù•ææ:l6‡Jm¨¬¤‘ÉÕBçÒR©††Z¢_Õ/òíí 44”$¬HAAþ?üllôvï¾STT»k×4Á‘D&@OßUàñj'NÌóö>xâÄ‹’µñ$''ß¾}ÛÇÇGºÅjk#£Fi¢P”45°X-é–ùžyùòåÕ«WÛëéóò*­­u+*hµµ ¯^b±rC†˜ñ_e±8 Íææ:¢““ÉnnVíª ƒÁ,[6ÖÀ@kõê¿ «ð70ÐlW ˆtž¾ 2Ä4,lâη6:TøÌŒžÃÕ«}0RÒW™1cFrTMžì¤¤„+*ª–——³·7PSSä¿úêU‚ $’¾P.­);»låJÏÔ8uê`++Ý¥K/Œ»'*ÊgʧH8Oßµ,]úƒ››ÕŠ—h´>aô"x<¤¸¸ÖÜ\ÇÌŒPXX“’Bš¤ñ"_NNÎÐPxð)-­ÇC„KNÿþF†Íšå¶téù… Ï¢Ëþ!îzú®ENsèÐ,&“ËãÁ}å P]Mc³¹FFZææ:Ÿ>Q²³Ë„&éŸ>ÍQQQʘœL¶±ÑÓÖVípÕŠŠò7þôçŸsŸ?Ï›8qßÿåt¸(¤Ã@Oßåj.,|ö,o×®Û²Ö| ÇÍk››8—Ëì¦3ͯ_óxˆªª¢PÆääþ8aÒ¤­µµ%þú뱕+/¡ëÿ!nzúîÀÁÁpÏžG>¾q㵬µ@ ߥ¥T«¯ß]s§§§¡££Î55•ÌãñB}úÆFVff©T<=@_¿ßÙ³ó/\X˜œ\0|øŽ“'ÿƒƒ|nzúnÂÛ{È‚«W_ÎÌ„É}C~~¾£1L~~~ë ËE’Œ~±%/M0åçÏŸgΜiff¦¦¦æììß=ÒBºïoÇ(-¥‰šX¬œºº‡šþ<ý Ô§OO/b³¹óôæææb?BãÆ9¤¥í(/Oٴ颼¼²Ø4H»°°h{ \{ß}lÙ2%/¯rÁ‚3wï®ÆãÕd-Ò/^¼07ï¹-Q[[;hРɓ'_¹rE]]ýîÝ»~~~ &Lè6 d2yذa555MMÍuëÖu[Õbùô‰bl¬`³¹\.OpÕ=àÙ³¼AƒLÉäj¡>}rr¹¹ŽžžFj,**Zµj•››[K šš¸ÊÊã:P2"ÈË—/ÿý÷6“AOß}`±rGŽLœ¸oÉ’ó—.-–—‡*=}}á°«žÏÖ­[ÇŒsòäIôÖÞÞ¾¢¢"&&¦;==Ç«­ý²÷;@ˆŒŒì¶ªÅòéÕÈH™ù‰ÇC¿ÈD¡4dg—M:øúu ¢òÍ?€—/;5Iïêê*õ* !$<@:›nESSåÔ©Àôôâ;nÊZK;À`0§OŸ¶³³ÓÑщŒŒ¼pႹ¹y¿~ý6oÞ X±bÅüùóÑ” CEEåÍ›7€[·n 0@IIÉÂÂâÂ… wèÐ!;;;uuu77·ÇcÆuÑaÞ„„[[[]]Ý+V477‹5‚oÇ„%•`³Ùaaazzzºººaaal6»3­rñâEKKK%K–466Š­…ËåîÙ³ÇÆÆF]]}Ĉ)))±Fɳ®_¿¾råJAÁ[·n=uêz]WW7wî\`ddŠnˆÁ`.^¼hgg§­­ÍLQ£¨ ‡³uëVÙ³g×ÕÕ\]]èÿ$ÁwGòÚ¥Ki)õô))J¹¹ü9òää cm­¾§onæ¼~]ìêÚÁø:¤g@ºË—S V%$¼–µäÊ•+’|~~~4 í)Θ1ƒF£?~PSS“””„ÇãÙl6‚ ±±±<Á`(**;v¬¼¼üÔ©Sòòò ãøñ㺺ºqqqŸ?¾s玑‘ //Õ€^Œ?>77799ÙÊÊjÛ¶mb‚ÔÕÕ8q•'x($µˆ•„ HTTÔ´iÓJJJ233¼~ýz4WFFý[$i Tð?üÀŒ(Z˾}û[ÃÀÀ Ö(yv*•  P(-½•þþþcÇŽ-((ÈÌÌtttD0}út*•zâÄ @mmmKFQ{öìqppÈÌÌ|÷î‹‹Khh(ÿ­Dk¼–¼öVðñññññióCˇÇã™›‡]¾œ‚ Èœ9'§O?L$†ÉUè«áá{yíML|O$†444ós½|™O$†””´!¦%W®\éX^Dr$ý ï)Q6n¼nnöúu±leHîé_¿~ ‹ÅºÎËËãp8úúú‰‰‰‚Lš4)22A …‚Ãábbb¨T*Ç£Óé\.×ÁÁáìÙ³übÏ;'êé333ùÚ¬¬¬Ä[—Ú’§+ A‰T^^Ž&~ðà““Ò€˜$­!*ØÜÜ\l-666¢­!Ö(yv …‚ú{±Ãb±°XlVVz‡6&àñãÇ‚OÑ’QT†­­m\\jyÿþ=z-ÖÓ·«öVh¯§¯«k Cž<ùÈãñ7:ôÐØx5ÿ¶‡ÇîíÛoÞ¼ùÆÐpÇãçÚ·ï_gçß$¯Eèé!݃„¿ápô^6DDL=š4kÖŸ½å´7uuu‡º`±Xoo︸¸ššš‡úûû´´´?~œœœldd4jÔ¨§OŸÊÉÉ‘Éd'§¯{‚0@´"kë/dž’H¤OŸ>µbl DÀO ^‹•(**"‰è*VOOÏÂÂB4½¨Ë‘¤5D———‹­¥´´T´5Ä%Ï®¥¥¥§§÷þý{A1iiiÎÎΕ••\.×ÒòËܳ••¿1Ñ!¡§5ŠÊ(..æ?¬ÝÔ©SEß”öÖ.-Ðàu<^­°°¦¶–áæf5`€1zªlEE}^^¥»»uc#KI '8”œ\ ´»Ò{ž^6ÈÉaŽ 03ÃÏ™s²¾¾×ï‘éããõêUwwwtL¾©©‰Çã]»vB¡ÌŸ?òäÉ ÅÐÐðíÛ·ü\ÙÙÙ¢E¡]@@nn.êZ2ŠÅÄÄD0¦îÇòòòÆÆÆ-I¾S§R©ÉÉÉi QÁ¦¦¦bk133m ±Fɳ¦L™²wï^Áÿ%±±±l6[EEEOO‹Å’ÉdÔ^PP`hhˆ^£z„5ŠÊ000(**B_ÍÈÈØ¹sgKmÒÞÚ¥êéµµUÓÓ‹åû÷7ruµLN&^¼ÈWPwq±hll ±c2Ù))dÛ®SÕÕH=x•²²òˆ#222¤U¸$•š™™Íž=»ººSý¢Ë—/‹Rë†gá#« Sèée†’îôéù¬yóN³Ù\YËé#GŽäp8¨ƒÁŒ?þúõë4Åbáp8•ÀÀÀ°°°„„„ŠŠŠ{÷î­_¿^´¨•+Wæçç§¥¥…‡‡Ïš5«%c}}=y¹àõܹsƒƒƒoß¾]XX˜˜˜8kÖ¬Ù³g+**¶$ àíí½aÆâââÌÌL//¯Ã‡£EUWWW|‹ä ²f;à¹s犭eñâÅ‚­±eË€X£äÙ;wîLJJ xñâEffæo¿ývàÀÔãp8__ß+VfeemÚ´ €‘Q7nÌÊÊÊÊÊZ¾|yqq1?1ƒñÍiů½cÔÖ2x¼Ú›7ÅŽŽ†8ÖÅÅ"'§‚Bixö,oÐ ee…ÆF–àr¼ÔT2‹Å5ʦäõ^¼xQ^^^^^ž™™immíëë‹H¶ê[rÈd2@­ôÓ§OgΜ¡ÑhƒF—|J˜]ˆŸþ}„/^Êÿƒƒƒ´¡Ma2 :íü<¤3de}²²ZrI&µK>OÏïɵt½xñbeee&X¸¥¥¥‚‚‰DJHH@„ÅbEDD˜››«©©¹¹¹]ºt ˆÌÓŸœ8lXDSËÄdM||:jüé§?/>G$†<ž‡ ÈæÍqS¦ìçg™0aoxøõΈ”ÄÓN:E"‘Âîݻϟ?off¦¡¡±iÓ&A‚ƒƒÑ”t:]YY]ûyóæÍþýû+**š››Ÿ?A.—{ðàA‰¤¦¦æêêúèÑ#Ñ?Ð7nܰ±±ÑÑÑ f2™bHË …œ.…BQPP@³ Âb±BCCuuuuttBCCY,VKåS©Ô9sæàñxCCÃ5kÖðÿÊ?|øbèé鉭AK—. 2½¾uë–“““²²²¾¾þîÝ»Áãñ‚ÙEðû˃j8sæLK-K"‘´´´¢¢¢a³Ù[¶l166&üe°­ ,S´5ÄVÔ:ÐÓ÷&NœH24\õÏ?™Ý\¯T<}SSSAA¾¾>º‚Zr §‡t€özúíÛozyíMK#‰!EE5¨qß¾mm×[Z®e±8‚¬Zõ—¿ÿqô¥ÚZÚãïŒH =}/ ^å–••-]ºtÞ¼yü½l©|Ñ0K4åĉ=z„Η ¶§OKKÓÔÔD„F£)((~úô)66PUU%ø[!6¿±¿<¢„<½P,¨ØøÒ6…I=èzú^Æš5—­­×ee}êÎJ¥âéŸÍí!“ôL&“L&Ÿ>}záÂ…²Öéõ@OßC±µÕ]”ž^r‰–6¤û©«««¨¨\ÛŒâääôñãGôúÈ‘#·oß¾uëÖÝ»w###ÑI¢»ç._¾üÓ§O©©©wïÞý÷ߣ¢¢Pû7^¾|½nÝ:t+~ˆa±8ÕÕt{û¯+Ξ?ÏÓÕU·±Ñ³³#`|ñâK.—§¦¦”›[YSÃ>ÜJ†jù¤¤¤ :400pôèÑ)GCC#((H£éêò!ízúžË A&Gξ}ûí–-ñˆ´·˜†t999.÷ËpKLLŒµµµ‹‹ËÎ;Ñí2Da³Ù—/_Þ¿¿……Eÿþý#""ø)—-[¦©©9gÎðÿcg!R„ÉäP©ŽŽ_ûôÏžå nŽµÌ˜á|ÿ~@]])))GSS¥#™i W¯ÂàØžôô=šqãìœuþüóÍ›¡³— šššúúú¢§]edd 2½–$.YVg¶BÐåuüÑ{‹“šZ8bÄ—ŽûŒðX9€ššâ“'G²Eo!F¬ôàgº§3eŠÓ™3ócc_®YsãËÿˆˆ~ÐÐÐååå…ÞJ—,«3[!,GUUÑÀ@½}ýº¸©‰Å£SSS;Ö ''÷òeþ¨Q½ø¤ÚN:thZZZTTTzzú† .^¼èéé)ø=¤GøÖw?1½€±cíOš— ½ زeKUUÕØ±cïÝ»———ïââbhh¸dÉ4Ø`årf+„ËEŒŒ´ø·ÏŸçk›šâùOO{Àµk©Í͜ѣ%Ú¬ Ò&:::‰‰‰^^^666ÞÞÞ©©©EEEè2¢ðx¼ÚÚZôš@ DFFv£Ø¾ôô½èìeˆ††FzzúСCÜœœ6oÞìçç÷àÁôØ{€¿¿ÿ¸qã&MšäååµaÃ333www"‘(TΡC‡ œÇ?~üø 6tû£|Ÿ D¢&ÿæéîHÙE IDATÓ¼#¬_VVVÄÇ¿¶±Ñ××ï×Ýêú(0b¥G!/kI;ÖþäÉy œÄÄøÊÉÁy¬îCUU5&&&&&Fì«óçÏŸ?¾ åéÓ§è…àò(--­óçÏ å\~—bH6›Ëã!úúèmCCó›7ųgLÃ`0äËËë7уt†V"V"""Ðk4b…B¡Ìš5 Ç'''[[[‹X©¨¨HMMmhh˜9s¦ºº:º÷±ò÷ß/\¸pÁ‚ÚÚÚÝð\½اïMŒgôèìë×_Áž=" U]Ý/=õÔÔB‡'Ô§g0Ðãm0drµ $~OÀˆY=}/câÄþû÷ϼv-mãÆëÐÙË7ÜÃÉÍ­À`€–– zûüyž••®žž†`:½YNNN^^îÇòW¯ e!³¯#VzÐÓ÷>~ùeð¡C³.]J^ºôÜAO¶À¸áN^^¥¼<–Éd£·Ïžå¹»[ ¥a0˜×ÕÕÒÕÕ2*êŸnר7+= ØX½’Ÿtùò’'O>øú¥Ñ˜²–ôPòó«”•q F3 ®®1+ë“ÐÐ=€Á`666e³uëÏ/^%¥‹Å8;› ¥yñ"ŸÇCù55Å­[^¾<ö×_]OÀƒH ±Òý@OßGPVV8u*pÆ¿çÍ;µaÃË–•$—©©é_ýÕÕÚ ™PPPea¡ƒÇ«UWÓ““ ú÷7RWWJóß9rrƒo6Á2ÅéìÙg7^†›QBúpž¾ï //·gÏŒèèÑÑw.<ÛØÈ’µ"D–TYZêjL&ûåË‚aÃÄLl=yò‘ÇC44” fÿþ™ÙÙeÇŽ=î.±H=}_cæL׿ÿ^–’R0yòþÒR¸I$äû…L®¶´ÔEÏ«ÍÍ­]Âòùs]nn%@ÈÓLLðaa££ïæäïÄô: §ïƒ8;›ßº‚ ÈĉûÐbä{ƒËå••QMMñÆÆ_¨íÓÿ÷_Ž¢" ¡!<ª˜?ßÃÎŽ¸~ý5¸í4¤·=}ßÄÔëÖÊaÃ,~ýõèåË)²–t755t‡G$jª©)*)á5mmU¡4II9ýûq}z€¼¼Üï¿û½ySrôè£îP tpE^ŸEUUñÏ?çþö[š5WŠŠjÖ®×A¾ÊËëèyóX¬œŽŽºPùï¿ÜŸ~rzõªH¬§HÄß~ûeãÆëƒ™Šn®× X,Ö×××××·£ò!IÁb±m¦ž¾/#//·}ûTI?<üzfæ§C‡f‰vk >IEE=ƒÑ×ï×ÜÌijb)(ÿff–R© ––: ¦%O˜3gÄ“'ƒƒ/&&†‰î¯×=ª¬¬ì¸zDbôôôÚL=}ßÇßßmà@“E‹ÎŽyøð,[Y+‚@ºœòò:<^‡Ã¦¤y<„JmJ””£§×OCCIY'/ßÚ<æž=¾ãÆE‡‡_?r$@ÂÚ%ÜÛéà<ýw££á;!ƒ™œ8q" î éó”—×£C÷))d--•²2*‹ÅLðß9£GÛÒhÌV:ô(‚Úþ·neœ:õ_*†@º èé¿´´TÏ[°víÄíÛoΞ}¢ªŠ.kEHRQQO$jRSÉNN&¯  šÿ*Î|õªÈÃÖNoêׯ Oðð°Ý¸qòÖ­7ž<ùØ…¢!®zúï ³lÙØû÷C?®óðØõ÷߯d­é***êõõûq¹¼´´ÂÑ£í°X¹¼¼¯ç/_æs¹¼Q£lëë›ÔÕÛöô€Å‹GÿôÓÀ¥K/””Ôv™j¤K€žþ»ƒD"Þ¸±b„þ+V\\½ú2<³ Ò'AGïóò*ét¦››¥¥¥nVÖ'þ«II¹†ÚÚªt:³_?1Áôb‰ŽöÕÖV]²ä<“ÉîÕH—=ý÷ˆººÒþý3›}÷î»1c¢’’rd­‘2ååušééEªªŠvvÄÁƒMß¼)æ¿úìYîÈ‘6Éûô ¥³gÖ_„Ûé@zÐÓ¿L™2(9yã˜1$?¿cAAç(”Y+‚@¤Îlldééidd”öïo„ÅÊ99™¼}[ŠºçÒRJ^^åèѶM¢yz>VVº—.=zôaëÖ]¥‘6ÐÓ×ôë§=ãÂ……ééE£GGÞº•!kEˆ¨­eðxµŒŒ''cÀ A& FsAAàùó<%%œ³³€Fkjsí½NN&{öÌ8}úéÅ‹/»@;"} §‡€±cíïßõð° :·páÙâb¸àÒ»©¯o((ÈüXîäd ‘ˆJJ¸ŒŒÀÓ§¹Ã†Y(*Êh4¦ØMï[ÇÛ{ÈÚµ7løûÞ½wÒÖHèé! ­­zèЬ‹ƒrrÊGŠÜ±ãΔµ(¤ƒÔ×7ÊËë¹\ÞÀ&;t¨ù‹ù‚<}š;r¤5š’FkÇ<½ +Wz.^<&(è\bâ{)*‡@ºèé!_3†ôäÉú={f\»–6lØöÇ…6@zuuòòr¹¹åx¼š©é—³ìÜÜ,Ÿ=Ëûø±¼¦†î‰ Îl×<½ 6üèçç²páÙ”²Ô¤C ]ôôo“Ãøø8?~¼îçŸ"#ÿñòÚwÿ~–¬EA í£®®I]]ùíÛÒŒøÆ#¬Êʨ oðx5C@C‹ËåµwžžƒÙ¹sÚØ±öóçŸþð¡\:Ò!.zzˆ´µU##}îß56Öž;÷ÔäÉ<ž/kQˆ¤0Luu¥7oJ 2åœL””p¼1 =בFk-N/!X¬Ü‘#ƒ›N›vèõëâ¶3@ ²zzH‹ØÙÏ[pëÖJ%%œÏa?¿coß–ÊZÒ6èáuÅŵó òÎÎæ¹¹îî6¨]¸×á>= ‡=sfþ„ ŽÞÞ‡à=HÏzzH bvíÚ²[·B¸\Þĉû~þùÀƒÙðŒHO¦©‰ Atá=[["—Ëss³Doét)xz+·o߯³g :—𦓥A RzzˆD bzåÊ’óçæÌ9ùÓOüóO&Ü& Ò3ijb±XCC-õo_AŸ?ס7ÿïÓw|ôžƒùí·_†/_{âDRç „@¤<Ÿ"‹uùòe&SL Ý?*9:š>{V»páYmmÜŒ†zzRø¡„@D?~¼™™Y266²ššØÎÎÂyß¼)ÑÒR¹?Ý —NgâpXee…N+ ³c‡·fDÄÍ÷ï?GEù((ÀXH~!b¸}ûöœ9sZOƒÃé46Þ¶m?ÏÈt ~~~—.]ê@ÆæfNcc³££‘ ‘Fc¾}[âééðàAvDÄ/ ¦¾¾ÝäµÉÒ¥? b¶`Á™üãìÙù††ZÒ-épô"‡@Z…Ū¢Rïq¹ÌÖ“A ÃÇÇýv€æfvc#ÛÞÞ@И’RÀã! Œ*)©MO/Ú W\\,ââ–76²~þù Zô §‡@ } : B"ÏŸç‘HD77K[[ýøø7h2©LÒ‹bm­÷Ï?!Ϙqdóæø¦&VWÔHôô¤¯Q_ß$/56Ö4>{–çîn øùçA7o¾ápx]Ô§Gé×OåÔ©ÀãÇçÄǧ ;÷==ékÐhLuuEt{ ¥áÇr77+ÀäÉNµµŒää‚öYÛ~úiàƒ¡º¿þztëÖð8 ˆL€žô5Œ& AKJ ƒ®®KKݯ\I­¯ïàñ6í‚HÔü믠ÈÈéׯ¿òðØ—ŽÀí( Ý ôôJ~~>ƒi;d`0˜üüüÖ-–ÃGYYyĈÒÙ^>þýpQQM7Ô  @O´/^”—————gffZ[[ûúúJ½‹F&“ Bëijkk ¤¢¢råÊ•ÔÔÔ_ýÕÏÏïßÿ•®’ÖÔ©©©¹nݺ%ª«é,WI 'h|ñ"ºGùå—Á**ŠeeuÝЧ磩©²k×ô{÷V3t;;‘EEÅçÏŸwò³ãé!ö¡£££¯¯Ð×׎ŽÖÓÓ«®®ÖÕÕ•b<¯¶¶¶õ4[·n3fÌÉ“'Ñ[{{ûŠŠŠ˜˜˜ &HQIëê$‘‘‘ÝVu+ä䔿zzt’>4Ô‹oQRÂy{9þ¹P׿pp0œ?ßòþýÚ«W¯vsÕÞÈŒ3ÊÊÊ:[Ьƒf!=‘+W®HòÙœ:uŠD"„Ý»wŸ?ÞÌÌLCCcÓ¦M‚¢)étº²²òëׯ¹yófÿþýÍÍÍÏŸ? —Ë=xð ‰DRSSsuu}ôè //Õ€^ܸqÃÆÆFGG'88˜ÉdŠ5ò£• ^£ ‰ç[D%!Âb±BCCuuuuttBCCY,–h9 EAA­º•,­´‚ T*uΜ9x<ÞÐÐpÍš5MMMx< §§×J±úúú/^¼|":^\\ÜR™¨’ØØX‰¤¥¥ÅoQ£hl6{Ë–-ÆÆÆ! €J¥""¨S°µ%¯½||||||ÚL&ʉIææaÓ§â[îÞÍ44\E¥6&ËÊúD$†lß~³Ut ¿_‚ €+W®t¶©Hô1$÷ô~~~4 íYΘ1ƒF£?~PSS“””„ÇãÙl6‚ ±±±<Á`(**;v¬¼¼üÔ©Sòòò ãøñ㺺ºqqqŸ?¾s玑‘‘¨§?~|nnnrr²••Õ¶mÛÄ©««;qâ*OðºO/V‚ QQQÓ¦M+))ÉÌÌîR=ˆÌžÒ…øøøÄÇÇ_½zÕÝÝ“ojjâñx×®]£P(óçÏŸ&<üºhÊ„„7††«¸\^lì “5ÅÅ5í­«Ãô„yz¡µ dîܹcÆŒIOO¯ªªJJJ8pàòåË¥Ux›ðx<{{{teL+àñxþ­ØÏ!F#‘H£Fº{÷nNNÎõë×íííGÍápÚ,³ººzݺux1¸"ÒEHñ—(<<|æÌ™íÊ"ô$ö'Iº¿SHÇ<}LÌ]w÷]ééEDbHII-Î42Z}óæÑ”.¼°µÝ€ ‹ÅqsÛ±fÍe)ˆ–Œ¾çé555“““ù·III&&&Ò*¼MÞ¾}‹Á`#£„Ëå j&š’FkB¬Åá°«V¿v-­¸¸ÝŠº ó?öî= ¦´ø3MÓe4Õ¨¦«”ŠR›Pb7ò.µ±ØwQI›¥–X+ ŠbûaËmw]Z–Â*«(B»®›Ö-ZiV¥º_§™.s;¿?ξ³cnš)MßÏ_ç<óœçùžg2_Ϲ&%%988ÅÅÅ8qÂÚÚZOO/::!‚×d2™d2ùáÇ¡ .8;;ãÇ®Nœ8âóùû÷ïwpp P(“&MÊÎÎ>ÂŒpÎÌÌ5jF ëêê’XˆÞ<:-¼¬««› xŒÒ”)Sçw8N766¦Ñht:Ãáp¹ÜÍ›7[ZZ-Z´¨¥¥EZËøÂõë×---oݺ%Þ^ÿÔ©SžžžÓ§O···Çÿ%­Á‰'"„ð'_á®\¹bkkK¥R¿ýö[¼$999&&†H$ ê 2„N§'''Ká6…;miiY¼x±¡¡¡……EDD~:ƒ@ ¤¤¤888 :tÇŽ=ûÃè …ü§¨…Ì9nܸA¥R£¢¢ÞvC‘ÿ#×ÖÖ†††ŠÔ‘XTIÏæôsæü•ÎfsÍÍÃ/^,øþû+ãÇo‘X3..Kp3=‡Ã›4ikxø/½ŠXnª÷¼ŠË—/›››kjjzyyíܹ³¢¢B°½y6¾0cÆŒßÿÉdJ|^ŸÏ·¶¶>tè†a7ntttiD¼Aáž5kƒÁHOOÇGRE}}½Èwqûömcccc%Þ©Bž*ÁÑ{ <ïÂÑE0Èõ,Ó·%!áw Ü£ÿ ú)4ô˜ÄšQQgæÎÝ'Xýí·B3³ðüü=X~ª÷¼ ø\nnnnll¬““‘HLIIÁË{ól‘0$>¯"77W]]ÕƒB=’Ý ð߸qÃ0‡‰´L÷î]ü†ic%Ò‘¢ž*ÁÑ{Æåòëêææú!ccÝššÖ^Œo%±rkk‡®î¿¯·ññyoò䑸vú&Zy ˆçU°X¬S§N!„ÜÝÝ£££ £¢¢Ö­[‡Úƒg3ˆ|öööÒšB:uŠËå„ñãÇ#„ð¥5( ¿;Wpÿ§¾¾¾‰‰‰ø * ðÆå–~ª„ÈôtOïºQEuu oföO¦/+«onfIËô Æ™!3§  òüù~{ ñÛzGžWaØÂ… =z„¯„>úHð䭞̀o%òBARoŠÇ㥦¦îÙ³§íÖ¬YƒÏ€e4(LüŸg```ll,>ËDZX¬øøxù‡¥Ÿ*!2=ÝhkksuuÍËË‹ðàAdddJJŠ———ðo°wó]®ƒAUU3BÈÌŒŠ²´4øûïMMõ÷Þ³X™ÁèÉô£G›ÍŸï—ÕÕ%×ãúÝ;ò¼ E‹ùûûgee•••ݹs'""" ¯&ç³ôõõB?ÿü3ƒÁØ»w¯ÄýoêæÍ›uuu:ÿ³páÂ’’’‚‚ Š<BDLLL]]Ý´iÓ.]ºTRRröìYwwwssó+VÈ«wê©ôòè?PIpž^Ø»v×Í Ñƒóô™™ùÆ­áry†:tcĈuÂï¹ñŸÿÄïÜù›HaMMëÈ‘vìøµËOõžWÁår·lÙâì쬭­meeµ~ýz¼>&÷³0 Ûºu«¾¾¾Mff&’tZ]¼©ÐÐPoooáAãóù666øMíâ Š<©BÚ¨2™Ìµk×:99‘ÉdGGÇ­[·¶··K+¥>Uƒ+ò€ò@¦fbbrõêU‘ÂxzzJ|y®Rßå:xô Ó<˜=vìf|ùÊ•"SÓ¯7m’ðÌܸq[Ì/?qâΰak=zõV]¿x^ÅÕ/âLG便¥¥¦¦Fø‚&œ‹‹Ëßÿ/'$$\¼xñÂ… ¿ýö[\\þ\úšš‘M¾úê«W¯^Ý¿ÿ·ß~»|ùr||<^~îܹ»wïîØ±cýúõø#÷AÏÔ×·Ñhºø²‘!dnN•V¹­íŸûéEN7Îjݺ4¯¤8žW䙀žPSSœ§ßµk—»»û¶mÛ’““%Öçp8§Núá‡FŒñÞ{ïÅÆÆ j®\¹R__ÿóÏ?GA¦ï††6##|¹¥……¢P$är„—Ëg±Ø"çéqa÷nÿ§O«Ž½¥¼P{ïÞ½{®®®ÁÁÁS§NíM;ººº¡¡¡ò‚;,éEUïºQI LCC ¾\Pð’HT«¯o“X³­­Ã0== ™!dcC[¶lê®]¿½~ݬ¬X{ÍÓÓ³©©IÆK¥ÜØ£Ñh©#± ÜaL@7Tò®•T_ß&ÈôTéI¾½ŠÁèDQ(’3=BhÍšLLôÃÃOaïÒíõô üÄÐ Õ¼ëF540ñÓó¡‚‚—öö&OžTI¬É`t „¤ÍéBššê?ýôy^^Ù¡C9Ê€¾™€nèêê>xðÀÕÕ•N§»¸¸DGG\½z½=B(00púôé3gÎôññ‰ŒŒ´²²òðð055igÿþýfffnnnÞÞÞÞÞÞ‘‘‘}¾+*®±‘i`0!TUÕÒØÈœ8ÑæÅ‹Fü=ô"Z[;BÏÓ ŒiB§Ïˆ‹Ëz*ù;’ IDATú´ZIÐ7Ôû;€!C†ìÚµk×®]? ¼U wóæM|Aøœ(•JýùçŸE¶>8 Š{£³“ÃfsõôÈ¡¢¢WÁÛÛ1..ëÙ³jWWk‘Êxú—v½ž@hèÔß~{D§§ž;¦®ó"0PA¦¨üÔ;~ã\QÑëáà F2ÑÕÕ**ªÏô F™¬A"%4$„HTÛ·/ÐÛ{W|ü¯7ÎRlÀ^^^Šmi ÓÐs÷®ÕÓÖÖþ7Mò¤ÊÉÉœ@ Œouÿ~ÙâňTy½ VV†-^œ8f̰Y³Æ($Tww÷ H{š2Â,XàîîÞËF ÓÐs÷®Õ#|9}QÑë & „ÜܬSRrÅ+·µÉ›éB^^Ž_|1eÍš_ìíMmmi½uøðá¿üòKïÛ@Npæ   ð9½®®VkkûË—MNN!7·¯_7WUµˆT–NÛ´i¶ƒƒYh豎¶c o@¦¨‚¶¶N0dˆæ“'Õ†99™#„ÆŽµ$‘ˆþY.^YO¯›Ëñ„‘HĽ{_¿nÙ¼ùœ"ƒ O@¦¨‚ŽŽºº‘¨öøñkCC=„™¬áà`–—W!Rùmçô¡áà öïÿìäÉܤ¤›ŠŠ€¾™  8®¦¦:Bèñã×£G› Ê=<ìrrþ©Ì`¼u¦GMŸ>ú›oþsöêÕǽŒ€¾Wä©~úé§þ ^eee#FŒ¿~WOCC!TTôÚÓs” |êÔQ ¿¿zÕlañï{íz–éB!!SŠ‹kW®Ÿÿòe“ÄGÓüñ˜ºº6üayŠšÓã|}ݶn»y󹄄ßÒ WT‘¨ÖÕÅåó1‰sz{{S;;ã‹ÿš0ažéõô“éBK–xP©ä°°”¦&Ö¦M³Õ,Šsz€* ]]\uu5‘ ï||Þûõ×B>c0:44Ôµ´H ìý¿ÿï{ð`ööíá=ð®LPššê]] ‹¡$Qb… &TW·æäÿü¥FÅãñ|}}ÓÒÒ”Ú lüüü¸\®üõá<=@ÔÔ´R(änçô<¿£ƒcaA œ¸wï56û-~.  ÓTAMM«Nm-Cv5« Ã0 E뫯¦74´¥¥åõMxô#Èô€¯¥¥½³“ci9´Û§Í·µu"„tt´ÌÌôýü&8p®„*2=`À«®nEÙØ½z%W¦ÇŸ†»zµWUUKFƃ>ˆ€~™0à54´!„ìíMÛÚ:Œ5Y¬.„þ† êœ9c÷í»¦ÚÓúÒÒR ¨Ö˜LfDD„µµµ¶¶¶ÝæÍ›;;;åß¼ªªjáÂ…VVV:::nnngÏž|D JKK§l!VVV‹-ª¯¯Ç?’1\,‹N§3†B¡¸¹¹mß¾]ÎËâûôdzÀ€×ØÈTWW³³3AÉ>€/8z¯FE}üúuóÏ?ßîƒ UêU«òóóÓÓÓ+++333étº´Êeee††ÿ¾]°±±qìØ±d2955õþýû ,¸|ùr„- BèÎ;ÕÕÕ¯^½:zô(ƒÁ7n\KK BH__ýúõâ-´µµ¹ººæååÅÇÇ?xð 222%%ÅËˋǓüde᥵Ùw0à’’þxï½Ml3³ðK—ɨyþüCsóp/(ù¿ÿ;ï踱µµCùúúúúú*£eù•””(ð§^__?77W°š““cii)g×+W®ô÷÷®1}út|!TRR¢¨8eG"ÒŸÏŸ2eJLLŒŒ"""&OžÌår%L&ÓÊÊêðáÃòô¨XoûwszÀ€×ÔÄ¢R‡hi‘ u^¼h”Q“Åê"“5ÔÔþ=”6ÃÐþý×”¦T!))ÉÁÁÁÈÈ(..îĉÖÖÖzzzÑÑÑ¡°°°¼&“É$“É>D]¸pÁÙÙYKKkĈ'Nœ@ñùüýû÷;88P(”I“&egg 4Æ!gffŽ5ŠF£………uuuI,Dop^ÖÕÕMHHhlüg§L™òâÅ |™ÃáÐétcccF§Ó9ÎĉB&&&x…ôôôÕ«W ïøæÍ›«W®\±µµ¥R©ß~û-^rñâEü0€©©i\\œ ˜ëׯ[ZZÞºuK|ä‰D|ü—/_ž••%¼³"%''ÇÄĉÿ>ÙpÈ!t:=99Yâ ÷(<€---‹/644´°°ˆˆˆÀÏ}„””‡¡C‡îر£»¿—·§¤ÿq@Ÿ‰ŠJÿï÷bæë{`ÍšS2j>œ3vìf‘ÂC‡nXYE¼zÕ¤ðÀäœ{!„ Æ‘#GB~~~ ãСC¡†††œœ‡ƒaXrr²££#ŸÏg2™ššš¬®®NLLTWWg2™‡¢ÑhUUUYYY!Áä_ðöö...ÎÍ͵µµÝ²e‹ÄB ÃZZZ³UáåË—/›››kjjzyyíܹ³¢¢B°ñññóæÍ«¬¬,,,7n܆ „çµÍÍÍ¡¦&©ƒŒš5kƒÁHOOÇwœÁ`hhh¿zõ*99!TWW‡·9cÆŒßÿ½¶¶V|º“tü //O__š‹ wôêÕ+„P}}½HÌ·oß666–1°x5áåÀÀÀiÓ¦=þ¼°°ÐÉÉ m„Ðüùó›››>Œjll”ýó¶szÈô€oùòãÁÁ‰†EE¥ÏšõŒšß}wÙÃc»Hag'ÇÕõ›¯¿>©ðÀäÏôùùù†±Ùl‘å’’.—kbbrýúu ÃfΜ‡aXSS‰DÚµkWss3ŸÏokkãñxŽŽŽÇŽ4{üøqñL_XXˆšššjkk+±Pv´\.777766ÖÉɉH$¦¤¤àåöööÕÕÕøòÕ«W]\\„3\SSB¨¹¹YÆ Ü¸qÃ0üÌwIIIWW×Ó§O™L&ÇËÉÉÁ …–8ÝF‚½M¦Ç;Âÿ›"žéïÞ½khh(c`ñÁ2›Í&‰EEExyFF>Ú¡ììlLèK—ýÀÑ{À ÓÜÜ®¯?!4r¤qqq-þÓ)Q{;›LÖ)ÔÔTŽž}útÞƒJS …‚"‘H"Ë!"‘8wîÜŒŒŒ†††k×®"„¨Tjvvvnn®………§§çÍ›7ÕÔÔÊÊÊ\\\m:;;‹wdgg‡/ØÛÛãSUi…âX,þww÷èè訨¨uëÖáŸVTT˜ššâ´{yy•—— oK¥RŸ>>ãÇ?vì˜ð†öööÒ¡ÛH$*))±±±/Ç;Ò××711)((ù´  `üøñø²}º©©)$$döìÙMMMæææýõ—`«Ç‹7…Ï/BÅÅÅxv‘V(ð… >zô_%}ô‘àN3|v‹O"›››sssE6Ÿ3gÎîÝ»…ÿ–œœÌápÈd² Aáú~~~t:=???!!Aø#<#Jy"߯üñã%¼ÛPzccc…¯´g±Xñññ>>>øªûLZakk+~р𲎎΢E‹üýý³²²ÊÊÊîܹ€W›;wnddä‹/ }||8€—3™ÿ¼Œ`Û¶m999AAAwîÜ),,üæ›oöîÝ»mÛ6i{ÝÕÕÅf³544:::6oÞŒjkk® qä‰!T___SSóúõ뜜œO?ý´¼¼|Íš52¾‚˜˜˜ºººiÓ¦]ºt©¤¤äìÙ³îîîæææ+V¬1°Â="„H$’¿¿XXXyyyQQѦM›ð#4J'ÿ~x7¹º~“ð;¾üÞ{›Ì–V34ôØÒ¥G¥}úÝw—íìÖWW·(*0ùÏÓ æ Ò–—/_®­­Í`0[¥¦¦ÚØØhhhØÛÛgffbÆf³ccc­­­utt&Mš„¿ÕTäÄó‘#G†nhh¸jÕªŽŽ‰…Ø›‘ /s¹Ü-[¶8;;kkk[YY­_¿¯aƒÁX²d •J500X¶l‹Åâp8:::‚˜+**æÏŸoffF¡P&L˜pþüyÙƒ°gÏž¡C‡6,!!! €F£‰œqy"N‚Æ ¬­­ÙYñÛä˜LæÚµkœœÈd²££ãÖ­[ÛÛÛ¥ ¬p"×+˜šš†‡‡ã£'íK—æmÏÓ0é'´`@=zㆠ/Zô>BhÑ¢Ãd²ÆÁƒŸK¬ô“¡!å»ï$~ÚÙÉùðÃãÇ[íÛ§˜™–ŸŸBH!o­Ý¸qcEEEJJŠü›”––ÚÙÙ ~äEVe‚·Ò÷cø¶Wpô0à±X]C†üsLÞÅÅòáÃJi5%^‘' ¥EÚ¾}^FƃkמH«Ó÷:;;ËÊÊ’’’–.]Úß±€ 2=``ãpxOpÝØ±Ã_¾lª¯o“X¹½­­-5Ó#„¦Nµÿüó÷ÃÃihèæU÷}æÞ½{®®®ÁÁÁS§NíM;ººº¡¡¡ò‚·òî!dzÀÀÖÞÞ…ÌÔÇŽµ$’§õ2®ÈØ´i…¢µiSºbãì1OOϦ¦&W®I#¸WG£Ñ<(RGb!x+ïþB¦ l]]<„¦æ?wCé듇7–é¥Ýe'ŒLÖøá‡…/þuþ¼èýÓ DéŸÏG‰ÿÞŠ-ãT=‹%ë<½€››upðäÈÈ3uu’Ï0€@¦ l<½ùà‘>°½w¯ŒÍ–ðîðööîÞãÖ¯Ÿ©««µn]\—:Èô€ ÏôDâ¿¿f#;:Øùù/DjŠ\»'Û!šIIÁ99ÿøc¶£ ïA¦ lâ™~øpKKƒÛ·KDjvt°‘е{Ýrp0Û´iv\\V^^÷Nà¥Þß@¯ðxz3Ó#„>øÀîÖ­’µk}„ Y¬7®Ò—GpðäÛ·KW¬øùêÕ*uÈÛÆF$O:%ò8wzoÁ‚òW†LØþwžþl:y²Ý™3y"ÏÉioÇçôr½Ç„ï¾[àí½ûë¯9v,ämsö¶mÛæÎûV› Á;ôä™0°á9žÏ㺹I“l¸\~^^¹§ç(Aaæô!==òwßøûÿxìØí%K<ÞjÛ#FŒ1â­6@áà<=``#‘ˆ!.÷·Íë½÷žÅ¥K„ {0§Ç½ÿ¾íºu3¶l9w÷îóÞ @?€LØðL/þ^yooÇK—Š„ï‘û_¦»9=nÕªésçŽNª¨hèE°ôÈô€M]]r¦÷ñy¯¶¶µ à¥ ¿ö^[›Ô³Žââ|­­ ?ÿüH[[gOƒ @¦ lÒæô£G›YZ\¾üïüÎN‰D¹J_~ššêGŽ,inf……¥ˆ\À» 2=``“xž7}úèË—‹«]]\MÍ^]†lf¦à@ÐõëO¸Þ›vèKé›´9=BÈËËñÙ³Á™õ®.ŽàE8=6yòȘ˜Oâã…÷߀2=``ÓÔT'Õð;èD¼ÿ¾-•:äܹ||µ³³·szÜ_LY¾ü?«V%ß¼YÜûÖP6Èô€@ èèh1®’#‘ˆŸ~:.--¿¿«‹£¥ÕÛ9=nãÆYŸ|2ö‹/Ž>}Z­PÈô€OWW«­­CâGóç»VT4äçW"„Øl^ïÞãÂîÝ ÆŒ±\¼ø¼Ù¼ã Ó<]]m‰sz„‹‹å¨Q&Bl--…=”D"þøc‘¨’ÔÙÉQT³(dzÀ€'cNúôÓñçÏ?äpx]]\EÍéq:'O†¾xÑœÔÕÅU`Ë(dzÀ€G¡HÓ#„>ùdlSëæÍbE]‘'ÌÊÊðܹ°§O«,øQâUô;Èô€OWWKÆsë†7˜4É&9ù®Bî²7b„Ñ™3_VT4Ƹ À;2=`À34Ô©¯—uY\HÈ”+WŠš›Ûxž^˜ -%eYqqͲeÇ`fÞ5é¦W[ËQÁÛÛÑÌL¿¼¼NQwÙ‰=Úìôé/?®úï÷UW·(©z2=`À36Ömhh“ñ,z"Qmቯ^µà¯ÃQ³Ë—×’HÄéÓwåæÂûmÁ»2=`À36ÖåpxÍÍ,u‚‚Þçñø¯_7+5’šºb̘a?]¸ËïÈô€ÏØX!TW'뾎®®Öß×(; Eë矗úù¹…†Œ<·Úƒ~™0àÑhº!Ù§êBººÚµµ­yyåÊŽG]]íÛoçŸ<úÛo…^^»ŠŠ^+»Gd€Lð(-mmn3½šaøpƒ~¸Ú7QMjŸ•nh¨óÉ'{¿ ¯´ý2=@XZ}ù²IvÎN®§ç¨ßúèÑ«¾‰ÊÜœzæÌʰ°é›7Ÿû䓽OŸVõM¿ƒLPVV†ååõ²ëp8\{{³1c†%$üÞ7Q!„ˆDµÕ«½þøcƒžžöôé»ÂÂRd_9€Â)å!ÐǬ¬ ïß/“]‡Ë剄•+§­XñóºuõÖÖF é:,,ìéÓ§òÔ43Ó?wŽ{ëÖƒF…t €8‡½{÷ —@¦¨‚áà SSïË®ÃçóÕÕÕfÌxoذ¡GŽÜܶm®BºÞ·oßĉ‡ ÖmM* VG$bU!] âåË—ûöíƒLPAÖÖ†--í--íúúdiu¸\>‘H$ÕV­š•¾rå‡ffú é=<<ÜÏÏO!MÐiiiþþþ"…pž  ¬¬ Båå 2êðx|uu5„Ÿß„áà ãâ²ú(8údz€*07§’HÄ/dez.—O$ª!„ˆDµuëfdd­–VÏÇ0 Ã3=BhæLç±c-ããí«è7é*ÂÁÁôÉ©stÂÞãÖ­›yíÚ“Û·Kû"8údz€Š=ÚìÉ©sz.—‡ÌéB“'ôð¹}û ØO¯+--%ŠjÉdFDDX[[kkkÛÙÙmÞ¼¹³³SþÍ«ªª.\hee¥££ãæævöìYÁG¡´´þ_E |}}…¿YÅŽ’0‹E§ÓÇŒC¡PÜÜܶoßÎåråÙPy!‰€LP£G›WW·45I~. —‹Ïéßxkíºu>//]*ê‹øˆU«Våçç§§§WVV&&&fffÒéti•ËÊÊ «cÇŽ%“É©©©÷ïß_°`A@@ÀåË—û l‘HBgΜIMMUv¿mmm®®®yyyñññ<ˆŒŒLIIñòòâñxÝÆ©¯¯¿~ýzeGˆB¨„ššSÓ¯oÝ*‘øiK ËÔô뜜¿EÊW¯N7n ‹ÕÕã~B©©©=Þ¼÷JJJøc®¯¯Ÿ››+XÍÉɱ´´”³ë•+Wúûû Wˆˆˆ˜>}:¾Œ*)‘üíôžH$¡ÐÐСC‡VWWK¬ (“'Oær¹‚&“ieeuøðayâT8ü?7"…0§¨cc=CCiÏ–ÇçôD"Q¤|Ó¦9,V×¾}×”@HJJrpp022Š‹‹;qℵµµžž^tt4B(,,,$$¯Éd2ÉdòÇB.\pvvÖÒÒ1bĉ'B|>ÿþý eÒ¤IÙÙÙ‡ñ£Á™™™£F¢Ñhaaa]]] Ñ›‡Ž…—uuuÿyŠß”)S^¼x/s8:nllL£Ñèt:‡Ã™8q"BÈÄįžž¾zõjáß¼ysbb¢`õÊ•+¶¶¶T*õÛo¿ÅK.^¼ˆ055‹‹sýúuKKË[·n‰‚<‘ „ÂÃÃííí—-[†‰ï´ÛïHb§¡ää䘘á¿«!C†Ðéôääd‰#/§ð°·´´,^¼ØÐÐÐÂÂ"""?cB RRR†ºcÇi]ÝSÞÿ, ÍŸ¿ÍšS?ª©i55ý:7÷¹øG‡çXZ®}þ¼®g"9æô¡€€ƒqäÈ„ŸŸƒÁ8tèB¨¡¡!''ÇÀÀ€Ãá`–œœìèèÈçó™L¦¦¦æÁƒ«««ÕÕÕ™Læ¡C‡h4ZFFFUUUVV–……BH0Mļ½½‹‹‹sssmmm·lÙ"±ð––Á¼SxùòåËæææššš^^^;w¨ìE||ü¼yó*++ Ç·aÃájss3B¨©©IÆ Ìš5‹Á`¤§§ã;Î`0444‚ƒƒ_½z•œœŒª««ÃÛœ1cÆï¿ÿ^[[+>ÝF‚ýïøAqq±¶¶öÑ£G1¡É´ÄN»ýŽ$vŠïr}}½ÈžÞ¾}ÛØØXÆ×W^ œ6mÚóçÏ œœðï!4þüæææÃ‡#„eÿ™aRæôéªcÛ¶ S¦|+ñ£×¯›MM¿þóÏrñ¸\Þ´i;-’|¸µ[rfúüü| ÃØl¶ÈrII —Ë511¹~ý:†a3gÎŒ‹‹Ã0¬©©‰D"íÚµ«¹¹™Ïç·µµñxŸïåå%hV¼Sy¾#ñNñ L&síÚµNNNd2ÙÑÑqëÖ­íííÒ¾á8E®r 200055 ÇÇ\ZH2H¿±‘µsçoʉN²ÎÎβ²²¤¤¤¥K—öe¿`€LP)¶¶433ý7þ)ǯëv‚el¬»eË'‡Ýx²_IîÝ»çêê#>þ×É“GŽk)±Î°aÃÏT ßYZŠþ¡B¦¨ ‰8cÆ{/2ýÛž§X¾ü?wî”~ñÅÑK—ÖQÄ+TVVö.X” ÎÓTÓÇ;?|X)¸žNþûéE¨©üœBÑ Nd³ûè{2=@5M™2JWWûÒ¥^ÀúVwÙ‰ÐÑÑLL\RRR}VqÐG ÓT‰Dœ>}tVV!¾Úã£÷8Ú?&'ßMI¹«°èé*ëãïß/««kCr?÷^†>rúê«iQQé÷ï—),D”2=@eyzŽÒÒ"]»öõzN£ÓgL˜`ýÕWÉõõmŠ åƒLPYÚÚÞÞNgÎü‰zz—uuµƒ?'Õ–,Iììä($H” 2=@•-\èž›û¼´´?}/çô!ÔÔ••K—…gç2=@•}ðÝðágÎä‰jè-Ÿ‘'¥¥ÁÏ?/½sçylìùÞ·€²A¦¨20ožkZZžººBHQ‡Ü]\,¿ÿ> 1ñ£Go*¤A”2=@Åùù¹ÕÖ2îß/Guu)ìÑ7³g»lØðqL̹+WŠÕ&Ê™ â,- &Nqútž††ºb/£[¹òÃO?vòéÓj6 €bA¦¨¾ùó]¯\y¬©©ÞÕ¥ÈLO vï^àâbéïŸðìY[@ ÓTßìÙcÕÕÕ0 SàÑ{‰D|¸á'Ÿüpõêc%õ@@¦ &&z¯_·(iZÒÕÕ:sf¥Ÿß„Å‹·m»Ø›·é @éƒFÑ×'9ò‡òºPWWÛºun|¼ïO?ÝX±âgx6>x@¦ ZZ$kkÃÌ̇ÍÍ,¥vôÙg“^|ýúÓyóö——×+µ/º™0Xhj’Į̀šš$¥NëqÞÞN¿þÎfó¼½wÿòK®²»@Èô€ÁBSSÇ㇆z9òGkk»²»³³3þí·5Ë—O]·îô‚kk[•Ý#A¦ ZZ]]œ)jjjGŽôÅ›iÔÕÕÖ®õ9y2´¸¸ÆÇç»sçòá2=Ð÷ Ó --õ®..…¢쑘ø“ÙÕ7ýNž<òúuº§çÈ•+“çÍ;ðäIUßô 2=`°ÐÒ"áÃ/]êÉåòŽ¿Õg]S©C¾ÿ~á•+kù|ÌËkWXXŠ••™FŒ¡??u…´ï>MÍ2½¾>ùóÏ=º¾ºfwW÷ÀëýÊ™0Xèé‘1 kkë¬~õÕ´C‡nÔÖ2ú70” 2=`°ÐÓÓFµ´üûÌœ)Tê={.÷_P(dzÀ`gzÁ©z„¦¦zD„ÏÉ“¹ÅÅ5ýWÿ(--%ŠjÉdFDDX[[kkkÛÙÙmÞ¼¹³³SþÍ«ªª.\hee¥££ãæævöìY‘ {-@(--•]‡ÅbÑéô1cÆP(77·íÛ·s¹\yWì`*dzÀ`gzÁå÷8__7{{Óøø_û)(±jÕªüüüôôôÊÊÊÄÄÄÌÌL:.­rYY™¡¡¡`µ±±qìØ±d2955õþýû ,¸|ù-úúúëׯ«DzéV[[›««k^^^||üƒ"##SRR¼¼¼x<^·í÷ ¼>…ÀàÀãñÍÍÃÏŸ(R~éÒ#3³ðüü} B(55µ/{QRR¢À ¯¯Ÿ››+XÍÉɱ´´”³ë•+Wúûû Wˆˆˆ˜>}z/ƒÙ!TRR"£~DDÄäÉ“¹\® „ÉdZYY>|Xžö.55UQíÜ0X¨©tt´„Þã>úÈiÂëèè >ÿÝz(=@HJJrpp022Š‹‹;qℵµµžž^tt4B(,,,$$¯Éd2ÉdòÇB.\pvvÖÒÒ1bĉ'B|>ÿþý eÒ¤IÙÙÙ‡šñ#Ï™™™£F¢Ñhaaa]]] Ñ›‡©…—uuuñÕ)S¦¼xñ_æp8t:ÝØØ˜F£Ñét‡3qâD„‰‰ ^!==}õêÕÂ;¾yóæÄÄDáá¾ÄÄÇ*%%ÅÁÁaèС;vì@‰ô"{BÉÉÉ111D"QPsÈ!t:=99Yâ&Âí ‡×ÒÒ²xñbCCC ‹ˆˆü,†xx}J!ÿ_€ÁÝýÿ¸.^þìYµ¥åÚ£GoõY$HŽ9=B( €Á`9r!äççÇ`0:„jhhÈÉÉ100àp8†%'';::òù|&“©©©yðàÁêêêÄÄDuuu&“yèÐ!–‘‘QUU•••eaaLIñooïâââÜÜ\[[Û-[¶H,Ä0¬¥¥E0Ç^¾|ù²¹¹¹¦¦¦——×Î;+**{?oÞ¼ÊÊÊÂÂÂqãÆmذAx6ÜÜÜŒjjj’8"AJk«ùóç777>|!ÔØØ(mN/q×ð0êëëE¸}û¶±±±Œ!‰ðÀÀÀiÓ¦=þ¼°°ÐÉÉ 7ñðdõ˜Bçô郈—×ÎmÛ.Hüèÿþï¼½}T}}[ßD"g¦ÏÏÏÇ0ŒÍf‹,—””p¹\“ëׯc6sæÌ¸¸8 ÚššH$Ò®]»š››ù|~[[ÇsttÜŸ†Ï‰ñÉesssnn®ÈæsæÌÙ½{7&ô˜÷ääd‡C&“%v'­A5µ·Èhâ»+|¥=‹ÅŠ÷ññ‘¶‰8ccc"‘XVV†¯>þÜÜܼá)dzÀ ¢««ÝÚ*y¦ˆš3ÇeêÔQ7¦s8’o¬z×à×ŠÇÆÆá%ÁÛÛ;==Á`°Ùl‰D&“ƒƒƒétzfffMMÍ¥K—6lØ ÞÔêÕ«KKKóòò¢¢¢>ûì3i…­­­øEÂË:::‹-ò÷÷ÏÊÊ*++»sçNDDD@@^mîܹ‘‘‘/^¼(,,ôññ9pà^Îd2ñ…mÛ¶åääݹs§°°ð›o¾Ù»wï¶mÛ¤íµ´%ôÒíþÆÄÄÔÕÕM›6íÒ¥K%%%gÏžuww777_±b…Œ!iŸD"ùûû‡……•——mÚ´ ?ÖÒÏr„ØØÌ3öȨðôi•¥åÚcÇ”~i’ï<½`ò*myùòåÚÚÚ C°Ujjª†††½½}ff&†al6;66ÖÚÚZGGgÒ¤I'OžDbçé92|øpCCÃU«VuttH,ÄÞ<_.¼Ìår·lÙâì쬭­meeµ~ýz¼>†a cÉ’%T*ÕÀÀ`Ù²e,‹Ãáxxxèèèb®¨¨˜?¾™™…B™0aÂùóçEºîK¼A‰ã#Ò zó<½ø®aÆd2×®]ëääD&“·nÝÚÞÞ.máöE®< 200055 Ç—öõÉ ÀóôLqïÅ€wÜ?\MKË»};JFÿû¿ó))w³³×›šê+/ššêçç×Ëv6nÜXQQ‘’’"ÿ&¥¥¥vvv‚‘U…ª¡»Ö/£‘––†?f ÷MÁÑ{À B¥infÉ®³~ýLSSýÕ«O¾ãy®³³³¬¬,))iéÒ¥ý x§A¦ "4¥¥¥½«KÖÃÌ54Ôwï^p÷îó_~¹×gõÀ½{÷\]]ƒƒƒ§NÚ›vtuuCCCå)T =ص>pô0ˆ¹~.ÿ&†-Y’ôìYõå˺ºZÊ‹ e€óô€ÁÅÌŒúúuó[mB vïöïìäÒé©JŠ åL\,,¨ FG[[ç[me` “ô믅¿ü"úÒUÞq郋¹9!ô¶Óz„ФI6_~ùá¦MgKJv©}2=`péq¦GEDøŒiüå—'::ØŠŽ eL\tt4õôȯ_÷äa8$111¸¶¶uåÊd¸œ 郎™™~UUOæôø¶?þøùµkü1[±Q $郎••AEEc7ÿàÛÈÈYÛ·_ÌÎþ[Q $郎µµQEECoZX±â?³f¹¬\yâÅ‹žÿ€¾™0èXY–—×÷²‘={˜˜è…„$ÁÕyà™0èXY¶µu640{Ó™¬‘˜¸äÕ«æuëN+*0”2=`б¶6DUTôvZomm´{·Fƃ£Go*".”2=`Ð15Õ×ÔT//ïÕ©zÜljˆð‰Ž>›•õWï[@à]v€AGM0|¸a//Ê÷nmmÿòËÇkNj¯6P ˜Ó#++ÃçÏ{{ô^ :zÎô飗/ÿùï¿«Õ&Š™098˜>{¦°¬L$ª%$,rp0õóKxú´JQÍ éƒÑ¨Q&eeõOQ jjªŸ<êädñé§ûòòÊÕ,½™0eÂáðž?¯S`›ÚÚÇáá1rÁ‚ƒüñL-Ð郑­­1‰D,.®Ql³$ñÇýç?öÁÁI—/)¶qz2=`0"‘ˆÖÖFÏž)8Óã-<øùܹãCB’öí»¯¼ýî² R£F™(éRyuuµ;ü\\,##Ïäå•8D¡h)£#äszÀ 5r¤‰2æô Nüùç¥÷ï—ûûÿXY /Âý2=`rv¶(/o`0:”×…§ç¨¬¬¯;;9^^»ÒÓÿT^GÈ™0H9;Ã0¬°ð•R{±±¡]¹±l™çêÕ'CB’š›YJíqpž0Hëë¾ôð°S^/•••+W®ììì´° \½ÊõðÈ13ƒG뀞ÓÒÒ:pà€¥¥¥ü›@¦ ^ÎÎýõR©]äææ^¼xÑ××—JE&&õ! ªR{ªíôéÓAAAé@.ÎÎÃNŸÎ냎ÒÒÒú 0„·ÝÎÓ/gg‹ÊÊF8wTdzÀàåìlRöEyô/Èô€ÁËØXoøpƒÜÜçýJ™0¨Mœhsÿ~YG€A¦ jîî#>¬d³¹ýˆ•––öà2.i˜LfDD„µµµ¶¶¶ÝæÍ›;;;ñBii©¢:ÄO ìììD^%0cÆ %õ+A•Jõó󫯯ïãä™0¨¹»èìä*÷^;U²jÕªüüüôôôÊÊÊÄÄÄÌÌL:Þg½WTTüõ×_‚Õæææ?þø£ÏzqçÎêêꪪª«W¯¾zõjÕªUý‰l郚µµ‘±±Þ½{p_^çÎûöÛoÇgdd4eÊ”½{÷ž?¾ÏzŸ>}úéÓ§«çÏŸ÷ôôì³ÞE™˜˜˜ššºººÆÇÇ_ºt©¿"‘ 2=`°›0Áúþýòþ@ $%%988ÅÅÅ8qÂÚÚZOO/::!‚×d2™d2ùáÇ¡ .8;;kii1âĉ!>Ÿ¿ÿ~ …2iÒ¤ììláãöøaðÌÌÌQ£FÑh´°°°®®.‰…èÍcþÂ˺ºº ÿ¼³gÊ”)/^¼tqåÊ[[[*•úí·ßâ%/^;v,™L655‹‹´výúuKKË[·nq8:nllL£Ñèt:‡Ãáñx;wî9r$…BùàƒîÝ»'hß××7--MpÿÌ™3óçÏ|*ÞT·c‹jiiY¼x±¡¡¡……EDDDgg§p„ãÆ“8ø"ˆD"F“¶Ë¿,i+ƒÛ‘#9ööQ\.O§¦¦ÊóK‹ `0GŽAùùù1ŒC‡!„rrr 8†aÉÉÉŽŽŽ|>ŸÉdjjj†al6[d¹¤¤„Ë嚘˜\¿~ð™3gÆÅÅaÖÔÔD"‘víÚÕÜÜÌçóÛÚÚx<ž££ã±cÇÍ?~\<Ó b³µµ•X(;Z.—›››ëääD$SRR{qãÆ Ãx<ÞoWW×Ó§O™L&ÇËÉÉÁ Ez´··¯®®Æ—¯^½êââ2räHñ½ÀÛ/))Y¹redd$†aÉÉÉ^^^‚r‰Mu;¶l6›H$á[eddˆŒ‰ÄÁÇÞ¼*!¤««‹Ç q—%~YÒîöOåm3=½ v664KKƒœœgý…BA‘H$‘e„‘Hœ;wnFFFCCõk×BT*5;;;77×ÂÂÂÓÓóæÍ›jjjeee...‚6Å;²³ûç>ööö¯^½’Q(ŽÅb:u !äîî]XXµnÝ:A|þ­¦öOrÑÐÐ(..öññ?~ü±cÇ„›²··Ç***LMMñ‹Ø½¼¼ÊËË_¾|)c/|}}OŸ>a˜È¡{‰Mu;¶µµµ<ÏÆÆ_µµµì>¡ÄÁÇá©Ã0‹µ~ýú?üÃ0‰»,ñË’°bA¦4eÊÈœœ¿û; Y|}}Ïž=›––æáá“ïèèàóù§OŸnjj ™={vSS“¹¹¹ð¥é?o Ÿ°"„Š‹‹ñÄ,­P†a .|ôè¾J >úè#.÷ß{Ençëèèðóó£Óéùùù  r­¡¡¡ e677çææZYYÉØ ¶¶¶[·n]½zõ¿ÿý¯ðGâMIÛccc"‘XVöÏ%™ÏŸ?777‰P|ðEÉä¥K—¾|ù²®®Nâ.Kü²zp@¦äé9ª àeKK{"ÕäÉ“¹\nlllPP^B ¼½½ÓÓÓ ›Í&‘Hd2988˜N§gffÖÔÔ\º¾€IDATtiÆ âM­^½º´´4///**ê³Ï>“VØÚÚŠŸØ^ÖÑÑY´h‘¿¿VVVYYÙ;w"""¤…ÝÕÕÅf³544:::6oÞŒjkk©3wîÜÈÈÈ/^úøø8p`ùòåÂ{#\ŸH$Λ7/44t„ ‚‹à¤5ÕíÀ’H$ÿ°°°òòò¢¢¢M›6 ÏÚq⃫¯¯¯©©©©©©¬¬Œ6l˜‘‘‘Ä]–øeõ,àžx«cý ’Z[Û‡ [sþüC…·,ÿyzÁÜNÚòòå˵µµ †pã666ööö™™™†±ÙìØØXkkkI“&_ð>=CCCÁ+ã€8Èô𯅠ݫ«[ûýøï”ððp{{ûeË–‰_W(ñõ¬Ý¾%Vâ«Z“““cbbˆD¢ ñ!C†Ðéôääd‰ïÕ8q"BÈÄĽyô^ü´xH)))C‡ݱc‡rÇëôVÏÙ•7gÎË—WTkr>#ï…*)))..ÖÖÖ>zô(&ô¼¼ÿoïÞƒš:Ó?€¿!\äÚ ‚ ‚`…Á,ÒR¡rêLm¬.©õ²RJK§µ©P•),ãG:cW·Z,ÞÀQd¥f:MZJ¬N#AZiQ. ÁÐr~œm6†B€.ßÏ_ïy9ï{žóÊøÌ¹pƒåY)ªÄŽ-ÕÚßßOyøð¡ÞÑÜÝÝÛ¥wÓm-AK‡´yóæþþþ¢¢"BHooï´|3€ j-À]¸ ññy``âï’šb~dzŠ¢Ž=êäätÿþ}mZ5Xž•š¨J,e¨Tëx™^"‘Ð5`È8ÅvémÛ` Z:$±X¬ÆeF¦ÇÝ{€'lÚjiɾrEÆt ³Ë[o½º{÷nê÷{øF*Ò©K •jåp8<O&Ó_s™LF·M©«k¤-] O7Œ…™à öö6 A—.}Çt ³‹……ÅéÓ§>ûì3ºÇHEZã –jåóùyyyºoÚ …ÂÄÄDzÓ”ººFJÐÒõঅ{æãÙ¶íÙÆÆ{·oÿÄt ³‹¯¯ï‘#G éMS*Òd°TkNNNOOOlllMMMKKKeeeDD„§§gzz:=Ê`±]…B¡;³)%h dz}‘‘~¡¡Þ'Nˆ™dÖIKK‹‹‹£Û§°°Ïçøøø¤¤¤h¯¿ËÏÏwtt ݰaCpp°P($„899555…‡‡ ‚ƒ¦¤¤ÔÖÖÚØØÐ£ø|~\\ÜÆ³³³}||¢¢¢<<<ô&?vìØ’%KÖ®]›=}g?Wá»÷\¾üÝ{ï•I¥<<8S™ß½Ÿ:ÔÕÕ…ïÞLM›B]\Îûšé@¦ ™À++vjê³gÏ6(•*¦cYèPWwŠé ãó#•J^Âg—Ë=qâÓQÌaÈô†q¹ŽÛ·?÷ñÇ_«™ŽÀ|ÈôãÊȈ•ˇKK%L`>dz€q¹¹9îØõÔái=Ì]ÈôƼùæ†ÇU%%¸¬‡¹Ê’éfµÅ‹íSSŸýç?ÅùË:{{ó&‰ŸÞ¨L‡/çL`ppxýú¿ÿéOkrr^žìØÎÎά¬,ÝϹL›Í.((X¶l™éCé&VVö;}åõõøûs™Ž`ré&¦ÑP›6µ··‰Ò™Ž`rðFÀÄ,,X‡%74´ÔÔü‡éX&™À$«W/MJ ËÍ­úéX&™ÀTùùIjõèþý—™`éLåädûñÇ./ÿ®ºZÆt,¦B¦˜„õëWnÛ™}©§géXL‚L09¼dgg•UŽ¿]‚9™`r=ʯ«»óé§b¦c˜2=À¤EFúåæ¾rèпjkï0 Àðå3íÝ+ª®¾yõê»+V¸3 À¸é̤Tª6mú„råJ¦­­5Óᆻ÷f²µµ..ÞÙÝ=°{÷iµ5l`–B¦0ßÒ¥‹ËË3d²®×^+R©F˜Àdz€) ô¸x1]&ëzóÍó##¦ÃЇL0UAAž§Ní¸~ý‡ììK££Hö0»à<€é!ÿßîݧ££W?¾ /èÁìL0m~ø¡›Ï?éìl_RòWÓá‚L0½Z[{øü“––ìÒÒ=>>®L‡€çôÓÊߟ{åJ¦­­Ubbá¿ÿý¦ÃÀ5=À P©Fþö·êââÉÉa‡oY´ÈŠéˆ`áB¦˜)Mûö•x|úék^^ÎL‡ îÞÌ”¤¤°šš÷†‡Õ6‹‹oh4¸²àš`fi4Ô… ÒÜÜ*oo—­!!ÞLG 2=ÀŒËÌÌ”ÉÚ<ðT*m—/o_´HÉtD0'~òÉ'“…L0ãX,Öºuë¼¼–ööÚºº"̓9ººº¤R©Y™`ƱX,‘H´e˦9ìâÅ‹[·n5#kã<€ù ™`>C¦˜Ïéæ3dz€ù¯µµ•ÅbMËTÚM¡PÈb±ÚÚÚèÍ®®.‹%‹Í;zYYËK—.MWü“544$‚ƒƒ×®]{èС‘‘SNãšO2=LBLLÌÍ›7•Êÿþ­`]]……Emm-½)‘H¬­­×­[§;„ÃáìÛ·ÒÞÞîêj¬¾ßË/¿ÜÝÝÝÝÝýõ×_Bº÷ÜsÏÑ3Ì4½ÃÃÃ…BaSSSvvviii||üèèè„õgÍ8dz˜„õë׫Õꦦ&BˆR©¼qãÆöíÛµ™^*•>óÌ3¶¶¶ºC\]] !¦··×Èä¶¶¶<Çã¹¹¹Bx¿óðð g˜izæåå¹¹¹Õ××'&&>ýôÓIIIß~ûmGGÇéÓ§'®=kÆ!ÓÌ ,«¸¸800ÐÍÍ­  àüùó¾¾¾O=õÔÁƒ !™™™»ví¢÷T(vvv7oÞ$„TWW¯^½zÑ¢EË—/?þÇ£çT«ÕÀÝÝËå µZ=ÞâèFb|¡Æ›v``àõ×_wuuõòòzÿý÷‡‡‡ ž^„%%%999l6[‰½½½@ ())1¸hºÃuç{túDJKK/^|øðáÉýºL 3Œ"‰&Ü'%%E.—Ÿ:uвe˹\~òäIBÈ£G¾úê+µZMQTIIIPPF£Q(666'NœèîîþüóÏ--- ÅÉ“'¹\nEEŃ®^½êååEiii¡ÿç wïÞ•J¥þþþ}ô‘ÁNŠ¢ŠŠŠèðtÛéé鯼ò EQ|ðAZZšZ­æp8‰dxxØÚÚúÚµkÚ½øâ‹×¯_—ÉdºGמ²P(LNN¾ÿ~ssóš5k²²²´?ÒÛSwÓøB7-ŸÏmkkknn^µj•ö¬õæ×íìïï'„<|øPï_ª¡¡ÁÝÝÝÈJŽyìÑéÙ¼ysQQ!¤··×øoˆH$2/k#ÓÌ83ý÷ßOQ”J¥Òk·´´ŒŒŒðx¼úúzŠ¢6nÜXPP@QT__Ÿ••Õ‘#Gúûû5ÍàààèèhPPЙ3g´Óž={vl¦onn¦*‰üýý v µ¬¬ŒËåj4š5kÖ”——S•œœœ››+‘HØlöàà Þ æQŠ¢º»»évmmmHHˆöGÆ3½‘…28­J¥b³Ù·oߦ;+**´g­7¿)™^"‘¸ººYI½9 >±X¬¼fgzܽ˜- !VVVzmB›ÍNJJª¨¨xôèQ]]ŸÏ'„8;;‹Åb©Têåå}ãÆ ‹ööö휫W¯{ +VЀ€€üÑH§AÑÑÑ===·nÝzá…! µµµ‰$<<ÜÁÁA»g@@€‘y:::<<<è·ëãããïÝ»gtyþÇÈBœö—_~õóó£wð÷÷×;AÊÐ'f9Ç£oHè’ÉdaaatÛ”E3rô%K–è?鿆W_}µ²²òâÅ‹QQQô=y¥R©ÑhÊËËûúúvíÚõÒK/õõõyzzÞºuK;êÎ;c§¢/7 !wïÞ¥“Íxñx¼•+Wæç绸¸Bâãã¥Réµk×è‡ôZÆs}e¬½€–J¥.‚)ÆNëîîÎf³ÛÛÛéÚÚÚ<==é6ýzÁO?ýdp*>ŸŸ——§û¦ýÐÐP(LLL¤7MY4#G·°ø#²02=ÀÜðüóÏŒŒäå奦¦Ò=,+!!áòåËr¹\¥RYYYÙÙÙíܹS TUUýüóÏ555YYYc§zçwZ[[?üðÃmÛ¶×ù믿ÒÏÂõÚ„˜˜˜êê길8zÓ×××××·¦¦F/Ó¤P(èFRRRvvvgggsssbbâñãÇÍ\š'ÖÊÊjëÖ­™™™÷îÝ»}ûöø|>‡Ã!„œ;wN.—ë•‚ÕF˜““ÓÓÓSÓÒÒRYYáé陞žNï`p%µÃi>-gj*3îøÀ¤ÓžÓk¯DÇk¿ñƶ¶¶r¹\;J$ùùùY[[TUUQ¥R©òòò|}}"##/\¸@Æ<§?uêÔ²eË\]]ß~ûm¥Ri°“zò¡µÞƒó/¾ø‚òå—_j{222,,,Æî¯m«Õꨨ(º_.—ïØ±ÃÙÙÙÅÅeÏž=CCCÚÙŒ?§7¾P§íëëKMMuqqñððx÷ÝwéÌÏÏçp8~~~UUU#¤(J¡PìÝ»wÕªUvvvAAAùùù?o%u‡ëÆlðèãÈxÌ~Nªµ3nºªÖîß¿¿£££´´Ôô!­­­+V¬ÐþW¯·i¤ŒûãÍ쪵–3 L¯áááÓÓ¦Ãsz€9à›o¾ ß¹sgLLÌTæqrrJKK3¥Œ›C‹†»÷3nºîÞÃBföÝ{\ÓÌgÈôó2=À|†L0Ÿá¯ìþõõõLGsXSS“yñî=ÀŒóööîêêb: ˜ó¼½½;;;'; ™`>Ãsz€ù ™`>C¦˜Ïéæ³ÿ´ÒêTø°IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Date.html0000755000372000001440000007257012502417163025052 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Date Class Reference

C++ form of SQL's DATE type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::Date:
Collaboration diagram for mysqlpp::Date:

Public Member Functions

 Date ()
 Default constructor.
 
 Date (unsigned short y, unsigned char m, unsigned char d)
 Initialize object. More...
 
 Date (const Date &other)
 Initialize object as a copy of another Date.
 
 Date (const DateTime &other)
 Initialize object from date part of date/time object.
 
 Date (const char *str)
 Initialize object from a C string containing a date. More...
 
template<class Str >
 Date (const Str &str)
 Initialize object from a C++ string containing a date. More...
 
 Date (time_t t)
 Initialize object from a time_t. More...
 
int compare (const Date &other) const
 Compare this date to another. More...
 
const char * convert (const char *)
 Parse a SQL date string into this object.
 
unsigned char day () const
 Get the date's day part, 1-31.
 
void day (unsigned char d)
 Change the date's day part, 1-31.
 
unsigned char month () const
 Get the date's month part, 1-12.
 
void month (unsigned char m)
 Change the date's month part, 1-12.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t. More...
 
std::string str () const
 Return our value in std::string form.
 
unsigned short year () const
 Get the date's year part. More...
 
void year (unsigned short y)
 Change the date's year part. More...
 
- Public Member Functions inherited from mysqlpp::Comparable< Date >
bool operator== (const Date &other) const
 Returns true if "other" is equal to this object.
 
bool operator!= (const Date &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const Date &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const Date &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator> (const Date &other) const
 Returns true if "other" is greater than this object.
 
bool operator>= (const Date &other) const
 Returns true if "other" is greater than or equal to this object.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< Date >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's DATE type.

Objects of this class can be inserted into streams, and initialized from SQL DATE strings.

Constructor & Destructor Documentation

mysqlpp::Date::Date ( unsigned short  y,
unsigned char  m,
unsigned char  d 
)
inline

Initialize object.

Parameters
yyear, 1000-9999
mmonth, 1-12
dday of month, 1-31
mysqlpp::Date::Date ( const char *  str)
inlineexplicit

Initialize object from a C string containing a date.

String must be in the YYYY-MM-DD format. It doesn't have to be zero-padded.

template<class Str >
mysqlpp::Date::Date ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a date.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See Also
Date(const char*)
mysqlpp::Date::Date ( time_t  t)
explicit

Initialize object from a time_t.

Naturally, we throw away the "time" part of the time_t. If you need to keep it, you want to use DateTime instead.

Member Function Documentation

int mysqlpp::Date::compare ( const Date other) const
virtual

Compare this date to another.

Returns < 0 if this date is before the other, 0 of they are equal, and > 0 if this date is after the other.

Implements mysqlpp::Comparable< Date >.

mysqlpp::Date::operator time_t ( ) const

Convert to time_t.

The "time" part of the time_t is "now"

unsigned short mysqlpp::Date::year ( ) const
inline

Get the date's year part.

There's no trickery here like in some date implementations where you have to add 1900 or something like that.

Referenced by mysqlpp::DateTime::convert().

void mysqlpp::Date::year ( unsigned short  y)
inline

Change the date's year part.

Pass the year value normally; we don't optimize the value by subtracting 1900 like some other date implementations.


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DateTime__coll__graph.png0000644000372000001440000001651312502417165030173 0ustar robertousers‰PNG  IHDRÀÝböêbKGDÿÿÿ ½§“IDATxœíy\×ÇO„Ep)dQ‘ŪX·ºàÇ¥PªE}ZQDªUT *¾ºU}¯‚­õõƒú‡+(à‚ʪR>¸ñh E¬(XÚW©0hÙæý1¯y1˘@‚=ß¿îÜ9srîÌ{ïÌ\æ0‚é*fÆéÝ €Z €Z €Z˜«n<{ölݺummmÆŠ1q¬¬¬Ž=:xð`eÍ*--½zõêâÅ‹{<0¤wpéÒ¥eË–éÉÅ‹{0$¤7Á`0Ôjp„ЄЄЄÐÂäôûï¿kÎÔèÀãñÂÂÂÜÝÝmmm'Nœ˜““c@çtÐÚRúÍOOOghãÁƒtÜêÂädX^½z5nÜ8›ŒŒŒ²²²¥K—†††;®nä“O>áóù|>¿¤¤øâããÓ?§å6þm"66ÖßßÿÔ©SäæÈ‘#ëëëããã?þøcãÖ}X[[[[[@KK 8°[®+=ƒÁHNN1b„££ãþýûÏ;7tèÐ~ýú}õÕWAZ¶´´ØØØÜ¿®\¹2zôh+++sç΀B¡8räȈ#ììì¦L™RTT¤Ú{“y^^Þ»ï¾Ëf³cbbÚÛÛµV›=¿j9++kãÆªÁÇÆÆ&%%‘妦¦Ï>ûÌÁÁÁÍÍmË–-ä#xêÖé àêÕ«dWçìì¼ÿ~¥åÍ›7|ûömM’óçÏ{zz:::FGG¿~ýZ5T©TºuëV'''6›½uëV©Tªy-ÚQúе£´C¨‘‘¡V£ ‰Dä_vHHˆH$JHH€—/_ÛÛÛK¥R‚ RSS}|| EKK‹¥¥å‰'ø|~RR’¹¹yKKKBB›ÍÎÎÎæñxùùùnnnP]]MÆ@fÍšõèÑ£ÒÒR//¯¸¸8­•A455üðC¥«íÛ·+›OÄ¿þõ¯E‹={ö¬²²rüøñÛ·oW ¾¬¬lÅŠŽŽŽ<OkëT]©qýúuR”\.·ÃË­vé322Þ¨QÝÐ_@åååAH$µruuµL&8pàÍ›7 ‚˜3gÎþýû ‚ …ñññ …¢¹¹Y.—ûøøœ>}ZéöÌ™3šª¬¬TÆæå奵RWœB¡µî•H$L&óçŸ&7³³³IWÔ­Ó@{{û¯¿þÚÒÒ"—Ë‹‹‹5-;4 ] :Tõª>œÏç“åëׯ;– ±X|öìÙI“&7.!!¡¹¹YWó)DD]]]ll¬››Û¼yó år¹.KU & êêjŠò矾nÝ:@Àb±ž?Nî½}ûvpppŸ>}¦OŸþÝwßammýàÁ¥[r¤SX,&÷VTTXYYi­¤ÕÉɉÃá¨Ö”••M˜0¡µµõùó窮*++IWÔ­Ó@^^Þ´iÓÆŽ»råJUK‰DBZê2ÐÚ@²ÆÊÊJu¬èׯÙs¬X±âÎ; …‚ú2Q ˆD"‘\¼xqÚ´iÆ {öìµ1¡M@Ýr¶xñ✜22r`‹Å …âÒ¥KB¡0""bÞ¼yB¡ÐÕÕµ¢¢ByTUU•¦+ò,À£G\\\(*µ2þü*ËvSSS¥R©“““Éär¹dýãÇ]]]õl Zb±8$$dëÖ­åååÇŽSµ´°° ›¯Ë@ÕÕ!CTw988(åÛØØXZZêèè8räÈ’’‡ÓÔÔ¤g´444TUUÕÖÖŽ?žœzwU5ª’Édl6ÛÉÉ)%%…Ü%‹­¬¬233Abb¢•••X,Þ»w/›ÍÎÍÍåóùZç@þþþÕÕÕeeeÞÞÞ»víÒZIè˜ñâÅ {{ûððp‡SQQW¯^%÷†……p¹Ü‡úøø®¨[§5€ÆÆFƒQPPÐÚÚºmÛ6(//Wí( fΜ©tµoß>Õ£bbb‚ƒƒkjj***&Ož¼~ýz²þáÇ‘‘‘?ýô“®ËDÑÉåò ¸ººîÚµ«®®®Ã‹®< =1„emm-‰T{zz²X¬áÇçåå!‘H¾þúë¡C‡ÚÚÚN™2%--MS@§N2dˆƒƒÃ† Äb±ÖJâÍ“¥vâjjj‚ƒƒ]\\ììì&Mštùòeå.¡P¸lÙ2{{{ggç/¾ø‚t¥€48xðà;ï¼3hРcÇŽ…††²Ùlµ0t¤§§»»»³ÙìÍ›7···«%‰V®\9`À{{ûµk×¶¶¶ª^…ÆÆÆƒzzzÖÔÔh½LÊÌÌôõõ=þ|{{»V]F@ú°sçΰ°°N¢Ö`­í×g\ïVŒ€r¹œ¼áíÊ™YgÑá$¶µµñx¼äää .Ü9¢†™™™™Y§'²äÌÌ0Ê‘’;wîL˜0aÕªU~~~tüôíÛ722RŸÊžÄè˜ BååâÅ‹K–,Q­AU FFFFHHˆ²æ-™Št7( „( „( „Znã{>ÓÄš!1Ñר˜0ª…nß¾Íd2‘ Qüüû+caJ0™ÌÛ·o«j†7í:i­<`|òl;ç@ºyž &€<Ë4v(¦ H7“!n²±C1]P@:ø£ þøs}RÓÏðÇ/FÆtAéài˜ýùÆÑÌžf5Ó¤¸§AñçA(¤ÀMÀ» - €´ñê.¼~þFÍëçðê'#EcÒ €´ñôÂÿÇ/3 xŠË›´€ҀÓÔÿ_$ )<9„ÜH1™.( ^CûK-õí/áÅ÷=©ƒÒ &M}ü"1³€§i=©ƒ¯2ÞDÑ™ kѾ×Ü‚`fÙ³1™4ؽ‰€£S= kAIFÓ ÀèMd­Àûîÿ›5çÜÃÿ_ã2Ìmz:*DÉí€iøÝcà†Ð„ЄЄЄЄÐoã)iáØz;ӄЇ0„( „( ãšâÄÝÝ}ùò倎C]ùS233 ›˜¦  €º…’’>Ÿ_[[›’’"‰ÆOñU^.—ëàà@áMWþ”©S§~ùå—†¾3à$Úð0Œêêj///r“ ?????¿Ý»wkµÿý÷ß½½½õ¹ú[öØÑBŸ¬% #***??ŸÜÔ̺âëë *iuôɱB¢šV†:GL‡n»ž~¥kŸ{ý«pÿKâþ—Z÷Pä:•¯K“ܽ{·ÿþAP¤eQSäX¡ø2P戡vKÐI¿Ò)ë¿?,&~X¬Z¡O® Qd]QkͱBB- Š1ÔnIº˜~E£¿.o HÏ\'šJKK{ÿý÷ɲ®¬+JcÍ+Ê]Ô¢N@áV•Φ_Á9P'èZ®‚ Ž?>wî\ Ìº¢D3ÇŠA‚×ÓmgÓ¯ €:Á˜1cŠŠŠ²³³ûí·aÆ­^½úÞ½{Z-A}}}]]]qqqPPГ'O6mÚíí퉄Åb‰ÅâØØXhnn&!3TÀÂ… wìØñôéÓÊÊÊÀÀÀ£G$xj· …âÚµkAAA¾¾¾Ap8œ .P?\øöQi4æ@J(r¨žÞAƒ…‡‡744(÷jf]‘J¥Ó¦M³µµ% (r¬Ð¨S·t9ý >¢¤£Eõ …B¡P˜›÷úÜÅR©´k 4z}ËK×r˜ ]N¿‚=%¸¨#P@-Þ†î1"( „( „( „( „( „( Jl‡Û„IƒO¢)!$"ºÁ¡ ¡ ¡ ¡ ¡ ¡.ç ×u ¡a-P@-P@-P@-P@-P@-P@”àz ŽÀõ@”àz ŽÀ¡­H"‘¤§§·µµ*Sã#+.Üø%ÑØtVVVK—.e±X]wÑ©oy¨‘••e¸¶ Æ!++‹Žhõ@2™ ðmZï…Á`±Ëà¡ ¡ ¡ ¡E¯êçþ Ç sww·µµ8qbNNŽÓAkK ÞüÎÒëdX^½zE&²ÈÈÈ(++[ºtihhhaa¡±ã2]ðUÆÄÆÆúûû“é&`äÈ‘õõõñññü±q3Yz¢¢N$AZ¶´´ØØØÜ¿®\¹2zôh+++sç΀B¡8räȈ#ììì¦L™RTT¤Ú{“y^^Þ»ï¾Ëf³cbbÚÛÛµV›=¿j9++kãÆªÁÇÆÆ&%%‘妦¦Ï>ûÌÁÁÁÍÍmË–-ä#xêÖé @3giyóæÍÁƒß¾}[Ó€äüùóžžžŽŽŽÑÑÑjùuôOócHè<…ÌÈÈÐÇP&’)..¶··—J¥A¤¦¦úøø(Š––KKË'Nðùü¤¤$ssó–––„„6›ÍãñòóóÝÜÜ@ù±m²0kÖ¬G•––zyyÅÅÅi­$¢©©éäÉ“dxÊrcc#…B] xüøqeeå¨Q£HWÔ­ÓEΞٳgߺu‹Ïçë2øðÕ®¶oß®ú­qê|<º.MFFF‡fT謿€(ÉÈd²Þ¼y“ ˆ9sæìß¿Ÿ ¡PhaaßØØ¨P(š››år¹ÏéÓ§•nÏœ9£) ÊÊJel^^^Z+uÅ)  ±±Që^‰DÂd2þùgr3;;›tEÝ:­Päì!-;4 ] :TU@æãÑzih ¨‡&Ñvvvðç׬UËÀd2.\˜ýòåË7n„‡‡À€ŠŠŠJKKÝÜÜ>øàƒ~øÁÌÌŒËåŽ;VésôèÑš?äííM†^[[KQ©É€œœœ~ùåÕÊ»wïNœ8ñõë× r¹ÜÓÓ“¬÷òòRº¢hÖX,Ö£GßÿýÓ§O«Z>( T]ñù|Õ]555ÎÎÎd:Õ™3g>yòDWK ˆIÜ…-^¼8''‡Ì2DLb±X¡P\ºtI(FDDÌ›7O(ºººVTT(ªªªÒtEþEÀ£G\\\(*µ2þü*o÷RSS¥R©“““Éärÿ·BèñãÇ®®®z6P-Šœ=¤ò( T] 2DuW7¥ùé:Ý—þCu™LÆf³œœRRRÈ]b±ØÊÊ*33S $&&ZYY‰Åâ½{÷²ÙìÜÜ\>Ÿ_PP uäïï_]]]VVæíí½k×.­•„Ž9A/^¼°··çp8qqqpõêUroXXX@@—Ë}øð¡銺uZhlld0­­­Û¶m€òòrÕÁˆÂ`æÌ™JWûöíS=*&&&88¸¦¦¦¢¢bòäÉëׯ×çÒôŽ9µ€‚ˆŠŠ²¶¶‰DªÎ===Y,ÖðáÃóòò‚H$_ýõСCmmm§L™’––¦) S§N 2ÄÁÁaÆ b±Xk%ñfžµ8555ÁÁÁ...vvv“&Mº|ù²r—P(\¶l™½½½³³ó_|AºÒG@šhæìQ C—Azzº»»;›ÍÞ¼ys{{»êQÔùxt]š^ }عsgXXX§¡È}D]Ù“=jè ÈøÛÚÚx<^rrò… Œ ÒiŒ?‰¾sç΄ V­ZåççGÇOß¾}###õ©ìIŒ@wCëë/^\²d ˆqa0!!!]ö`üéÕ¼Ub¨àîî¾|ùr@@Çazz:C™™™Æ]Da:¼U€’’>Ÿ_[[›’’"‰ÆO‘Ÿ›ËåR'&þä“Oø|>ŸÏ/))þŸL:õË/¿4|ô½ãß…GGÇ€«««ŸŸŸŸŸß¡C‡vïÞ­ÕX¡P¼zõŠÂ›µµ5™;ÌÉMz&Q}CþW¦·ö@@m1ƒ& #***??ŸÜÔ\ áëë *²Ð9„ê êåºÕ§!& ‡H|¨?eee+V¬pttäñxj»@åA0ÉÝ»wû÷ïOÅ ¥1Årê„íË9¨ÝqýúuRX\.×0'¨3À[ó$ºCÄbñÙ³g'Mš4nܸ„„„ææfM Q,PS,‡ Årj·$uuu±±±nnnóæÍ+,,”Ëå];E]€¾€zLj\æ1{öìÇOœ8Qÿ; êêjr¹@bÍš5---ãÆÓjL.‡Pnöë×OÏ_¡^ÎÑ¡[—¸¸¸üã¹¹¹ß|ó͆ nܸ1hÐ =ݸôŽ9££ãÈ‘#KJJ8Å]•A?~|îܹ@¹@BI7-‡ÐÓmCCCUUUmmíøñãÉ™{¯ wh̘1EEEÙÙÙ¿ýöÛ°aÃV¯^}ïÞ=­– ¾¾¾®®®¸¸8((èÉ“'›6m€ööv‰DÂb±Äbqll,477“‡wX°páÂ;v<}ú´²²200ðèÑ£ žÚ­B¡¸víZPP¯¯/AçÂ… ÔL :ãŸQ&Ñôôô¬©©QÛ¥Ú®Aƒ…‡‡744(÷j.J¥Ó¦M³µµ% (–CPϨ«P¯²ÈÌÌôõõ=þ|{{»AÎO§Ús Þú.L¡P( sóÞ1‡£@*•ª­íIè¿ ë­ÀÌÌÌ̬wŒ¿ÔQ=ám¸ˆA!´@!´@!´@!´@!´0Àm|bâ[ûåׯå X[3ˆéBK@®®®L&ó-þ¯ƒwÞY@…¦ò‘2ƒÃd2õÿm­`ÎTÔ×ÿñþû» (/ßÍfÛ;ç@:)(¨d2ffŒüüÆŽÅtAé$=½L&#d2EFF™±c1]P@ÚyòDðða-••µOžÐú÷ ·vòòî[XüïæËÂÂüòeÅ´ƒÒNFF™T*'ËR© G1] €´PUU÷ôéÿ/VSóò—_xÆŠÇ”Ai!'§\9~‘XX0srÊ)ƒRG¡ .]º«¿H¤Rù¥Kwñ™™&( u~úé‰@ЬYÿâ…è§Ÿjz<S¤ŽæøEbnÎÌÍÅQLÐH¥òœœ{jã‰L&ÏÎÖ¾ë¯ è îÞ}"µ1™fææLss&ÉŸe³?þã(¦¾L}‘¨íòåûÊÍÔÔàÓO§(kæÏ×·¯•"3UP@TDFž€„„ÆÄtÁ! ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡…á?²™™™™`XŸÆâ?ú@¿~MÆÄ0DFFÖ§áòïÿÛÇÇǰnšTUUùùù]¼xѰn ö[ŸØØØîðŒt™Ý»ww‡[œ!´@!´@!´@!´è–I´Ñ©««ûôÓO‹ŠŠ âÍßß_Yvrr3fLtttÿþý»ìðÖ­[ß|óf}\\\\\œ¡ÂîÞNœ#GŽ8;;+ŠçÏŸgee­]»699ÙÖÖV«1ŸÏŠŠÊËËÓåmêÔ©YYY¤åúõëÉ2Úñw( ½èß¿ÿ;ï¼cÇŽýûßÿ~éÒ¥•+Wj5V("‘ˆÂ›¥¥¥¥¥%ˆÅb =“¬]»Öqw?F›ùûû¬X±bÁ‚iii×®] ;wnrr2>|øÛo¿%-Åbq```uu5”””DDDÌš5+,,ìÚµk@DNNΊ+æÌ™³nݺû÷龜8uuuþþþgÙ²eAAA‡–J¥Z+•ƪjœÁ`ÌŸ?¿´´”ÜüñÇ׬Y¸hÑ¢´´4øüóÏ`áÂ…¤L&;qâDPPPPPЉ'd2™®s¢ú£Ôç§Sn»cN¢ïÝ»wüøñµkמwîœH$úàƒ8Ž\.‡ãìììååÕÖÖ·`Á‚ôôôeË–}ûí·mmmùùùgÏž]½zõ¹sç–/_¾oß>ÍÊÍÍÝ·oßÞ½{ïܹC^c­•ýû÷ß²e ¹Wµ¬‰››Ç€×¯_ïÚµËÛÛ;555::úäÉ“MMMÇŽ€ììlÒ833“Ïç'$$8p ¼¼<%%…þù¡ãÖ°S@K–,±±±™5k„……ÙØØ@ssó¨Q£ÌÍÍ+++àÆ³fÍb0R©” ±XÌb±¯\¹bii™••5}út{{ûÉ“'¯^½Z󇢣£ÝÜÜFŒ±zõêëׯëªìÓ§Ïܹsɽªe X,VRRRLLŒ½½=›Í€ÖÖV5›‚‚‚7²ÙlÈÈȲ²2ú燎[ÃbÌ9 ˜››«•ÀÌÌlúôéßÿ½‡‡Ç½{÷6oÞ vvv‡ÊÌÌLII6lXXXØäÉ“ù|¾———Ò§‡‡‡æ¹¹¹‘…Áƒ ŠJ=©­­uqq!®­­‹ÅÞÞÞZëëë-Z¤ÜìÓ§ž¿Bq~è¸5,¦;‰öóóÛ³g»»û{ï½çèèííí …"..N&“ݼysçι¹¹?öôô$ª©©ÑtU[[K ëùóçööö•ú@ÄåË—}}}ÉÈ{ï)S¦H¥Ò‚‚Mû~ýú:tÈÕÕZZZ„BagNƒNºÉmg1݉£G–ËågΜ!ûp`0[·nýþûï[[[¥R©¹¹¹¥¥åìÙ³?Îáp„BaYYYbb¢¦«#GŽÔÕÕýç?ÿ9uêÔÌ™3uU¶¶¶æçç“{UËÐÔÔ$ _¾|YQQñÕW_ñùüJ¥2™ÌÜÜ\"‘³×¯_“‡wX0}úô“'O644p¹ÜmÛ¶åææäüt“ÛÎbº=™™ÙŒ3 g̘AÖ°X¬;v$$$¼xñÂÅÅ%66–Åb-Y²D.—=z´©©‰œ ìÙ³GÍÕG}´yóæ¶¶¶€€€ððprÀR«€¦¦¦øøxrê£Z€õëד6›=zôèÄÄDrȰµµŽŽÞ³gµµuXXX@@À¶mÛ233ß{ï½E‹}÷ÝwqäÈ‘5kÖ0Œ3fDFFäüt“ÛÎÒ-ëA–sœ:uª¾¾þŸÿü§þ‡¨=ƒÖúHÚ°Ï©{ »wïvtt4øz Â$ ŸÏ/((øÛßþfìX*LT@¿þúkddäìٳǎKÇOŸ>}æÍ›§O%Ò5LzC È_kCz ( „( „( „Ýò ‘Çã]½zµ;<#]†Çã‘o„ ah6mÚdø(C°yófƒ_nÃ߯#)p„ЄЄЄÐâ¿7È»àNIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption.html0000755000372000001440000002563612502417163027611 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ReadTimeoutOption Class Reference

Set timeout for IPC data reads. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadTimeoutOption:
Collaboration diagram for mysqlpp::ReadTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set timeout for IPC data reads.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FieldTypes__coll__graph.png0000644000372000001440000001023412502417165030541 0ustar robertousers‰PNG  IHDR˜€x%7€bKGDÿÿÿ ½§“QIDATxœíkPWÇO¸„H@@BË ¢ˆe¬í âe´ bé@ÅZ@¤-ÞŠS[-ÔZ¥`u:â‚På¢Ô€ ƒT‚ŽXÀ{¢hUR*—HB11$»ï‡í›Ù&›„KBÂéþ>œ=ûœç<ÿì9g÷Éd)(Š’©‘¾ Ѥ@ ¤@ &ê777‹ÅâÉq…D 4Í××WM BŠÅbggg+++­zE26þþûï®®.õm4 ˜>}º–\"£¹×'×HH …„RHH …„„Éòùóç e’;5X´ Éår †.,f¿†€N„D¤¿¿_– ³_C@ B^ºtÉÛÛ›F£¹ºº°g3gÎÈd²ÌÌLKKKÿ––ì,ü¬"/‡††îÚµ «¶±±©®®H$’ääd{{{&“™œœ,‘H¤Rijjª‹‹‹Ý¦M›ú ~òÉ' ÃÙÙ9))I,cÕ××»¸¸Ü¸qCa }}}oÞ¼Q¨¤P(žžžvvvéééEEEsæÌ±²²Ú¿? 11166k)ÌÍÍïÝ»GA²²²<==---ýüü´¼Ä jihhèííUÓ@ ˜™™åääðx¼S§N™˜˜‚gÏžÉ-=z”ÉdVTTôôôTWW;::b‡óòò°6òò¹sç\\\AQ´ªªÊÑÑQ"‘ (úý÷߯[·îÅ‹l6{ñâÅ_}õUff¦——›Íæp8>>>III(ŠâûEQ4**jÕªUíííl6{áÂ…iiiXƒ5kÖüúë¯@Þ²µµ5&&ÆÎή§§Ga€€ˆˆˆ¡¡¡üü|ÀG}444”›› xõêÕµk×lmm1'‹‹‹½¼¼!ŒInn.>ÎηUÑÛÛÛÐР¾ÍD…055=räŸÏGäõë×2™ ‡ÇO?ý$oúôi5® …B:ÞÚÚŠ¢èÇœ’’‚ÕÏŸ?ŸÇãa庺ºE‹Í›7¯¢¢«ikkÃÊø~GFFŒ>|ˆ}¬¨¨pwwǰÙl¬R$9sfÉ’%o¿ývnnîëׯ ÀÝ»w1ƒ ågÏžI¥Ò™3gÖ××£(œžž®*&^^^Êq0 !Q½qãFxx8N¸|ù2úï€N›6íþýûòÆØÌ£ÆZddäž={Núô)VI£Ñ𳈕•Fãp8 çâûíììˆD"ì#›Í¦ÑhXƒ‘‘Eëêê˜LfLLLKK 6‚…[MyÛ¶mÛ·oïëë£R©ªbB- 9Ñ5R$!rþüùØØØ|ƒÙ³g?xð@þñÑ£Gê FDD°X¬‹/¾óÎ;sçÎÅ* †<‚|>¿¹¹ÙÑѱ££;zÿþýï¾ûNÁ޽½½±±1—ËÅ>¶··;99aeSSS€Ý‚ nÞ¼ÙÔÔ„-±ãcýúõ.\øù矗.]ŠM˜„1qrrSÆŒz5^‘"‘ˆF£±X¬¾¾¾“'OÒh4‘H„}Ѱ™êÇd2™•••<¯¦¦ÆÕÕ¨^#QÅö8sçÎÅOD‰‰‰ááá<ðññÙ±cGjjª··7‡Ãáp8þþþ›7oFÿEÊgÈÈÈÈU«Vq¹\‡ãååõõ×_+_'!!Á`ÄÆÆÞ¾}[y€@Ó)•J™L¦½½}aa¡š˜:tƒ[#Q-++sss£R©óçϯªªBQT"‘,]ºÔÂÂgff¦»»;N÷óóknnÆ\ÇAa<ñññøÍÈÐÐЧŸ~jccckk/ ÅbqRR’£££••UDDŸÏWèEÑèèh[[[‡/¾øBþ SŸÏ?zô¨››[GG‡b€4 ‰¢è–-[¦M›644¤&&###˜3gŽ………ŸŸ_ii©Á 2™ ÛŽ•½{÷FFFŽé”QJˆ1!5ç#ÿ;mÓ ‹{zz Ξ=«#¯F ùÐ|B´´´¼û}öÙŠ+ôë yENˆåË—+ìÒG‰»»;ªÕßøÿ‡®Hõ©E7nÜhaa1™.iR×¹ kkë/¿üRÕÑžžž’’’¶¶6Ý9 S HH]ç. Fzzºª£"‘àââ¢;tŠ ‰Ï]f°¹±ªªjÞ¼yL&311qxxåFíã§V …RRRâéé9cÆŒŒŒ 0ŠÌ ÞažDϨ¿;™ÌûHü­aVkøôéÓææfww÷´´4”(7¢Ñ> <<œÏççååúûû5fNð¦°ç´ÉÉÉ\.W¡P`Š=À‡’0« »(++Ãö~ʹöXhäy ™kÝÝÝ©©©ÎÎÎ!!!W®\‘ÉdZ !SXH”(«€5'4q‡'‚a ©u²²²þuill1>kþþþååå·cǬ ˜>]ÿÿl¹ÖÖÖ3fÌP¨ŒŸ5333333€H$([Ö#c^#W®\YSSZZZZ[[±víÚ‚‚ÀñãÇ322°–"‘((({ÃõÍ›7ccc###kkk(Š^¸p!&&&88xûöí÷îÝÃÏ„ÝÝÝ+W®ljjŠŽŽ ;~ü¸D"!¬”7ÆŸ¨Æ|©Tš““–““#•JåÍ9wî\tttppðŽ;?~¬Æ&á¨UyKØ©r|ÆÊx6;wîÜÉÎÎŽÏËËûí·ßN:µuëÖ¢¢¢¡¡¡åË—755Éd2@SS“ƒƒƒ»»»X,NKK ÅB“‘‘!‹«««Ïœ9WTT´iӦÇ+wTYYyøðáC‡µ´´”––ªª´¶¶NJJÂŽâ˱X,Â9&‡Åbñx¼ÜÜÜ~øáîÝ»………òCåååeeeñññEEEÑÑÑê_ L8jUÞ*wJŸ±Š2!7lØ`nnˆŒŒ477 ¼~ýzáÂ…&&&l6põêÕÀÀ@ …"‘HP‰DT*5((èÒ¥Kfffååå[¶l °µµõññ‰‹‹SîhëÖ­ÎÎΞžžqqquuuª*étúÚµk±£ø2 ...Gkk+Þ~MMÍÎ;™L¦««kBBþèÅ‹ñ G­Ê[åN ã3FMƵFš››LLLÊ##£€€€ëׯ»ººÞ¹sg÷îÝKKËcÇŽ±X¬ÂÂBÈÈH‡ß鹺¼ÌÙùŸwº¸¸ôõõ©©TEqq±““¾¦»»[^~ùòåºuëäétº¼Ü××§Ñ=9„£Vå­r§„ñQ?.e´¿ÙY±bÅÁƒgÏžýÖ[oÙÙÙ†‡‡IKK“J¥õõõ{÷î­¬¬d0ííínnnØYʦººº°vvvÚÚÚª©VVVÇŽÔø÷¬Ïœ9S£{êG­Ê[åN ãcii9¦±hÿ€···L&;}ú46÷(Jrròõë×…B¡D"111133[³fMvvvSSÓÀÀ@kkëÉ“'•Meeeuww?yò$??ÿ½÷ÞSU) «««±£ø²Fòòòz{{¹\îž={*++å‡>øà¼{ØVnL£Vå­r§„ñåähÿŠ422Z¶lÙ•+W–-[†ÕP©Ô”””ÜÜÜ¿þúËÑÑ155•J¥nذA&“8qbpp[-<¨`jõêÕ»wï‹Å«V­ŠŠŠÂ¦&…JÀààà‘#G°¥_ÖHlllVVÖæÍ›)ʲeË^½z… •H$ÙÙÙýýýnnnû÷ïß¶mÛ˜FM8ÂN ã3ÿñ(æ#SSS'žÆÊÏÏùòå¾}ûFŠÂ#Â',Ú}î£uF­So¿ùæ¼vZžZGFFx<^MMÍû￯]ˆŒ!ŒZËB>~ü8!!aÍš5‹-šˆ:2šJC€pÔ“ì­N¦V]£ó©•D_BB)$$BB‚âfÇÕÕÕÆÆF‘Œ>ŸÏårUþ®u×®]“îÉx Å„ÿmuÿÈ5H!!H!!á†Êb#x™>IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoExceptions.html0000755000372000001440000001414512502417163026605 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoExceptions Class Reference

Disable exceptions in an object derived from OptionalExceptions. More...

#include <noexceptions.h>

Public Member Functions

 NoExceptions (const OptionalExceptions &a)
 Constructor. More...
 
 ~NoExceptions ()
 Destructor. More...
 

Detailed Description

Disable exceptions in an object derived from OptionalExceptions.

This class was designed to be created on the stack, taking a reference to a subclass of OptionalExceptions. (We call that our "associate" object.) On creation, we save that object's current exception state, and disable exceptions. On destruction, we restore our associate's previous state.

Constructor & Destructor Documentation

mysqlpp::NoExceptions::NoExceptions ( const OptionalExceptions a)
inline

Constructor.

Takes a reference to an OptionalExceptions derivative, saves that object's current exception state, and disables exceptions.

mysqlpp::NoExceptions::~NoExceptions ( )
inline

Destructor.

Restores our associate object's previous exception state.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/transaction_8h.html0000755000372000001440000000703112502417162023772 0ustar robertousers MySQL++ Reference Manual
transaction.h File Reference

Declares the Transaction class. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::Transaction
 Helper object for creating exception-safe SQL transactions. More...
 
class  mysqlpp::NoTransaction
 Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used. More...
 

Detailed Description

Declares the Transaction class.

This object works with the Connection class to automate the use of MySQL transactions. It allows you to express these transactions directly in C++ code instead of sending the raw SQL commands.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1tiny__int.html0000755000372000001440000007755412502417164026201 0ustar robertousers MySQL++ Reference Manual
mysqlpp::tiny_int< VT > Class Template Reference

Class for holding an SQL TINYINT value. More...

#include <tiny_int.h>

Public Types

typedef tiny_int< VT > this_type
 alias for this object's type
 
typedef VT value_type
 alias for type of internal value
 

Public Member Functions

 tiny_int ()
 Default constructor. More...
 
 tiny_int (value_type v)
 Create object from any integral type that can be converted to a short int.
 
 operator bool () const
 Return truthiness of value.
 
 operator int () const
 Return value as an int.
 
 operator value_type () const
 Return raw data value with no size change.
 
this_typeoperator= (int v)
 Assign a new value to the object.
 
this_typeoperator+= (int v)
 Add another value to this object.
 
this_typeoperator-= (int v)
 Subtract another value to this object.
 
this_typeoperator*= (int v)
 Multiply this value by another object.
 
this_typeoperator/= (int v)
 Divide this value by another object.
 
this_typeoperator%= (int v)
 Divide this value by another object and store the remainder.
 
this_typeoperator&= (int v)
 Bitwise AND this value by another value.
 
this_typeoperator|= (int v)
 Bitwise OR this value by another value.
 
this_typeoperator^= (int v)
 Bitwise XOR this value by another value.
 
this_typeoperator<<= (int v)
 Shift this value left by v positions.
 
this_typeoperator>>= (int v)
 Shift this value right by v positions.
 
this_typeoperator++ ()
 Add one to this value and return that value.
 
this_typeoperator-- ()
 Subtract one from this value and return that value.
 
this_type operator++ (int)
 Add one to this value and return the previous value.
 
this_type operator-- (int)
 Subtract one from this value and return the previous value.
 
this_type operator- (const this_type &i) const
 Return this value minus i.
 
this_type operator+ (const this_type &i) const
 Return this value plus i.
 
this_type operator* (const this_type &i) const
 Return this value multiplied by i.
 
this_type operator/ (const this_type &i) const
 Return this value divided by i.
 
this_type operator% (const this_type &i) const
 Return the modulus of this value divided by i.
 
this_type operator| (const this_type &i) const
 Return this value bitwise OR'd by i.
 
this_type operator& (const this_type &i) const
 Return this value bitwise AND'd by i.
 
this_type operator^ (const this_type &i) const
 Return this value bitwise XOR'd by i.
 
this_type operator<< (const this_type &i) const
 Return this value bitwise shifted left by i.
 
this_type operator>> (const this_type &i) const
 Return this value bitwise shifted right by i.
 
bool operator== (const this_type &i) const
 Check for equality.
 
bool operator!= (const this_type &i) const
 Check for inequality.
 
bool operator< (const this_type &i) const
 Check that this object is less than another.
 
bool operator> (const this_type &i) const
 Check that this object is greater than another.
 
bool operator<= (const this_type &i) const
 Check this object is less than or equal to another.
 
bool operator>= (const this_type &i) const
 Check this object is greater than or equal to another.
 

Detailed Description

template<typename VT = signed char>
class mysqlpp::tiny_int< VT >

Class for holding an SQL TINYINT value.

This is required because the closest C++ type, char, doesn't have all the right semantics. For one, inserting a char into a stream won't give you a number. For another, if you don't specify signedness explicitly, C++ doesn't give a default, so it's signed on some platforms, unsigned on others.

The template parameter is intended to allow instantiating it as tiny_int<unsigned char> to hold TINYINT UNSIGNED values. There's nothing stopping you from using any other integer type if you want to be perverse, but please don't do that.

Several of the functions below accept an int argument, but internally we store the data as a char by default. Beware of integer overflows!

Constructor & Destructor Documentation

template<typename VT = signed char>
mysqlpp::tiny_int< VT >::tiny_int ( )
inline

Default constructor.

Value is uninitialized


The documentation for this class was generated from the following file:
././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1RowCountInsertPolicy-members.htmlmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query_1_1RowCountInsertPolicy-members.ht0000755000372000001440000000702612502417164033102 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query::RowCountInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/tabs.css0000755000372000001440000000221312502417162021620 0ustar robertousers.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; } .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); } mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionPool-members.html0000755000372000001440000001451012502417163030544 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ConnectionPool Member List

This is the complete list of members for mysqlpp::ConnectionPool, including all inherited members.

clear(bool all=true)mysqlpp::ConnectionPoolprotected
ConnectionPool()mysqlpp::ConnectionPoolinline
create()=0mysqlpp::ConnectionPoolprotectedpure virtual
destroy(Connection *)=0mysqlpp::ConnectionPoolprotectedpure virtual
empty() const mysqlpp::ConnectionPoolinline
exchange(const Connection *pc)mysqlpp::ConnectionPoolvirtual
grab()mysqlpp::ConnectionPoolvirtual
max_idle_time()=0mysqlpp::ConnectionPoolprotectedpure virtual
release(const Connection *pc)mysqlpp::ConnectionPoolvirtual
remove(const Connection *pc)mysqlpp::ConnectionPool
safe_grab()mysqlpp::ConnectionPoolvirtual
shrink()mysqlpp::ConnectionPoolinline
size() const mysqlpp::ConnectionPoolinlineprotected
~ConnectionPool()mysqlpp::ConnectionPoolinlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Date-members.html0000755000372000001440000002243312502417163026473 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Date Member List

This is the complete list of members for mysqlpp::Date, including all inherited members.

compare(const Date &other) const mysqlpp::Datevirtual
convert(const char *)mysqlpp::Date
Date()mysqlpp::Dateinline
Date(unsigned short y, unsigned char m, unsigned char d)mysqlpp::Dateinline
Date(const Date &other)mysqlpp::Dateinline
Date(const DateTime &other)mysqlpp::Dateinline
Date(const char *str)mysqlpp::Dateinlineexplicit
Date(const Str &str)mysqlpp::Dateinlineexplicit
Date(time_t t)mysqlpp::Dateexplicit
day() const mysqlpp::Dateinline
day(unsigned char d)mysqlpp::Dateinline
month() const mysqlpp::Dateinline
month(unsigned char m)mysqlpp::Dateinline
operator std::string() const mysqlpp::Date
operator time_t() const mysqlpp::Date
operator!=(const Date &other) constmysqlpp::Comparable< Date >inline
operator<(const Date &other) constmysqlpp::Comparable< Date >inline
operator<=(const Date &other) constmysqlpp::Comparable< Date >inline
operator==(const Date &other) constmysqlpp::Comparable< Date >inline
operator>(const Date &other) constmysqlpp::Comparable< Date >inline
operator>=(const Date &other) constmysqlpp::Comparable< Date >inline
str() const mysqlpp::Dateinline
year() const mysqlpp::Dateinline
year(unsigned short y)mysqlpp::Dateinline
~Comparable()mysqlpp::Comparable< Date >inlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1StoreQueryResult__inherit__graph.png0000644000372000001440000002356012502417165032531 0ustar robertousers‰PNG  IHDRS»WIêxbKGDÿÿÿ ½§“ IDATxœíÝy@W×0ð›…€aÂ*›"JÕªhÝ‹ò Ö§¢‚ ‹Ø*¶e©ÚV”R bõsGAÀE¢ÕŠHµbÁ*"àRPDY¢¢!mÞ?æ}ó¥I@”@9¿¿†›É¹gîÌa–$3 Ã@Éå@ òPFPù(#¨|”YôçÏŸùå—òÊ(:;;»½{÷Ê; ðnÑkû§OŸöôôtww—cB@qÕ××—””À§E ,ÙtúôéÏ øžCÞY€^ó|”T>Ê*e•€2t•ÿøñc À,+22ò£>ÒÔÔœ2eÊöíÛy<Þ@f"‡ Mß»x¯@R¯í%mmmS§N544Œ·´´¬ªªúᇠ®\¹B"‘$篭­:uêëׯB:::ß~û­ÌSºyóæ¨Q£dVÒ, P\C¼òcbbh4Zaa!^ç¶¶¶ÿùÏÆ—šš$9¿@ xóæ >­¯¯'ó”h4š‘‘‘ÌÃJ€eŠëCŽö ÂÑ£Gíììh4Z\\\FFƨQ£´µµøá„PXXX`` >g{{;•J½{÷.B(??ßÁÁAMMÍÒÒ2##!$öïßogg§©©9}úô¢¢"Ñ#Rü5//oôèÑaaa]]]RÑ¿fE§333·lÙ"º{WWWŒŒÌÌÌ”jÚ´i!¼2Eã´¶¶úûûëëë›™™EDDà_s$Ç·³³>|øŽ;ð9ÏŸ??qâD*•jllÜûbûõ×_MMM[ZZB'Ož´µµe±X</::Ú‚F£­ZµªµµŸ™ËåFFFDFFr¹Ü~ZÉU†LDVV–X‹T!///&“™œœŒòðð`2™‡F½~ýúÚµkzzz\.ðÌÌL{{{@ÐÞÞ®ªªš˜˜H§ÓSRRÈdr{{ûáÇ rrrššš.\¸`ff†ª©©ÁsÀ'œ«««KJJ¬­­·nÝ*µðÖÖÖ¤¤$<=á4^HÍÍÍbùöŸMtzåÊ•NNNOž<©¨¨7nÞ)Bhùòå---III¡7oÞ0™L …²zõꆆ†ÌÌL„ЫW¯Dã „ÊËËÛþ iÕªU~~~/^¼044,--Å0,!!ÁÞÞ¾¢¢¢²²ÒÑÑ1""Ÿ3>>~Ù²eÏŸ?¯¨¨˜4iÒÆûcY¤®²ž7Œ^n?`0øÀÊ/++Ã0ŒÃáˆM×ÔÔðx<##£ÂÂB Ã\]]ãââ0 c0***;wîliimmm|>ßÞÞ>--Möرc’•_QQ!ÌÍÚÚZjcwyvWùýõ—¾¾~ññá4‡Ã!‘HUUUx{NNÞ)B¨¨¨HtÙ»ºº>|ØÞÞÎçó¯]»†7ŠU~wÿ|[ZZÌÌÌðRÄ0lôèÑ999øôƒ„ÓcÆŒ¡ÓéøtAAÁ„ úcY¤®²î†ZØ/T¾¢øÀkûššš!±i„‰DZºtiNNÎëׯ¯\¹²råJ„®®nQQQII‰™™Ùœ9sþüóO"‘X[[;aÂaLÉŽlllð‰1cÆ444ôÐ(IGGÇÈȨ¼¼\¬½¼¼üã?î}¨—/_òù|+++üOkkkáœ&&&¢ËN¡Pª««]\\>þøã´´4©ÑjjjÄÖ0Ûû÷ï¯]»oyöì™0=;;;777|º®®ÎØØÿ\`Á‚OŸ>íe‘ºÊ¤ÆЍ_Ö¥»»{nnîéÓ§gΜ‰óÙl@pæÌƒ¸xñbƒajjzïÞ=á»îß¿/ ßY!„ª««ñM³»F©V®\Ãçó…-,+>>ÞÅÅ¥÷¡ I$Rmm-þç“'OLMMñi±b`³Ù‘‘‘eeeì!1Iõõõû÷ïŸ?~xx8ÞbbbRWW‡O———ÿôÓOø4~À‚ÿ×hii)))é§e‘\eïµD`0ë—ÊŸ5kÇ‹‰‰ñõõÅ[‚³³óÙ³g™L&‡ÃQQQ¡R©«W¯ŽŒŒÌËË{ñâÅ¥K—6nÜ(jÆ ?þûï¿7oÞìããÓ]ãÛ·oñ‹bÓ[¶lyõê•““Ó¥K—jjjrssMMM…ûU©ñÛÛÛEsPQQñôô {úôiUUÕ÷ßÈHêêêâp8 …ÍfGGG#„ÚÚÚÄæinn~ño!@°zõêõëןâp8†åææ3ŒÎÎΈˆmmm//¯––<“É ÐÕÕÕÓÓ a±Xý´,’«¬gpž¯@>¤ò{cóæÍÞÞÞïõ±Šû³‡Æ#ÃPr7H–*_Èþ›Ê*e•€2’ò©Þ‘#G>0ܹsGÞ)€ÞúW囚š’H$ø|¨;dòp ©­­—äÈàeaa!ï@¯à3˜ÞÛ¼9'-íÏÜÜõŽŽ–ò΀>óüÞâñ¹¹·B¹¹pL T~o]»öˆÉd#„Ξ-ãrùÁ *¿·rrÊðûùuttýñÇ#y§@Ÿ@å÷JGç·ßîñx|„‰D8{øbƒÊï•+Wî ðy<Á¥K•,V—|S / ò{%;û¶è#jx<þåËR€Ê·ÖÖŽ¢¢G|¾èÇŸ„³goË-!ú *ÿÝ.^¬k×®ýÓÒÂ’K>ôTþ»9s[ ò}§óçïI6  òßáÅ‹·¥¥µ’ßtÄ0,;ûo¹¤@ßAå¿C~~9‰$e”ìöígtzëÀ§@ßAå¿ÃÙ³wðñ%aÊχ~ †øS´ûŽHDÆÆÚø4'èìäjh¨ _…Oõ‚‚ß꽇_- =ÖÔ´[Þ‰ÐWp´€2‚Ê@Aå Œ òPFPù(#¨|”T>Ê*e•€2‚Ê@Aå Œ òPFPù(#¨|”T>Ê*e•€2‚Ê@Aå Œ òPFPù(#¨|”T>Ê*e•€2‚Ê@Aå Œ òPFPù(#¨|”T>Ê*e•€2"`&ÛˆQQQ ²9H‰Tý®®çòN¤_P(”«W¯Î˜1£qÞ¾}{ïÞ=@ “¬€¬˜››[YY ÿ$˼ƒºººiÓ¦}óÍ72 ú•‡‡Gcccßãtuu {{û¾‡²R__ßÙÙ)Ú"ûÊG™››»»»÷Gd (h4š¼Sÿß«W¯ÄZà<e•€2‚Ê@Aå Œ†få?~ü˜@ È*AİaÃf̘Q^^.“ÈÝå)Ú£®®®‡‡Gss³LzTP²]¡ ÿ¶Yš•/s7oÞ¤Óét:½¢¢ÂÆÆÆÓÓS¶ßƒ¨­­Õ×ח챩©©   ¡¡aýúõ2ìnp’…î·¿·™>ê—Oõ†fdd„222Ú±c‡¡¡ass³¬â ‚7oÞHíÑØØ8>>~ñâŲêkÐ’…î·¿·™>’Û>Ÿ@ =zÔÎÎŽF£ÅÅÅeddŒ5J[[û‡~@………âs¶··S©Ô»wï"„òóóÔÔÔ,--322B`ÿþývvvšššÓ§O/**=,ÄóòòFm``ÖÕÕ%µýû²‡ÃK …¢­­ÿÉår### "##¹\®Ô<{>mÚ4„¾¡H"‘HÂ-æüùó'N¤R©ÆÆÆqqqx£dwÝ%6xHæ,:|>?!!ÁÖÖVSSsÆŒ¥¥¥ø»¤ã’%K„ßëêêÒÕÕ½pá’6</::Ú‚F£­ZµªµµI ~kk«¿¿¿¾¾¾™™YDDDgg'ÞQaa¡……Å7Ĥ¹¹¹£££ç…Ûf$»˜>}úîÝ»B ƒH$FDDàƒ \–÷ê®W0Yswwwwwçl!///&“™œœŒòðð`2™‡F½~ýúÚµkzzz\.ðÌÌL{{{@ÐÞÞ®ªªš˜˜H§ÓSRRÈdr{{ûáÇ rrrššš.\¸`ff†ª©©Á Ÿpvv®®®.))±¶¶Þºu«ÔF ÃZ[[“’’ðôD§Båååmmmmmm_|ñE@@€pAâãã—-[öüùóŠŠŠI“&mܸQjžÂ”„YIë‘Éd>zôhîܹ111†1™L …²zõꆆ†ÌÌL„ЫW¯¤v'5±w®‘¬¬¬Þ­äž¼|ù²¨¨¨çyÞ9D»ví]­&&&øKR×Ñ©S§,,,†ayyy&&&ø–#9 ööö•••ŽŽŽ˜Äà¯\¹ÒÉÉéÉ“'ãÆn0 .¼zõ*>¶¸[·nùùùÑh´¦¦&±ìy›‘ì"&&fÑ¢ExþZZZ“&MÂ0ìöíÛjjj,K4rAAþ¬¶¶¶÷+¥ªªªªªê_öþͽÔûÊ/++Ã0ŒÃáˆM×ÔÔðx<##£ÂÂB Ã\]]ãââ0 c0***;wîliimmm|>ßÞÞ>--Möرc’•_QQ¿š••emm-µ±çTEihh]PP0a©y¾oå‹ÒÒÒª©©Á0¬««ëáÇííí|>ÿÚµkø’JíNjbï\#Vùï"[[[ÉÕÚ]4‹¥®®~ëÖ- ÃV¬X±iÓ&¼]rF““ƒ·ŸohhX\\%%åíÛ·nnnHÚ>_x܈D>zöìYxx¸¹¹9ŸÏoii!/^d±XQQQ¡²²2©ÝIMìkdÀöùRs„={öˆ®VKKKÔýy>†aø…=ÑsÉˆŽŽvpp¨¬¬¬¬¬œ1cFpp0&1øÞÞÞNNNµµµ•••ööö F4ÿÊÊÊ5kÖèëëÞ¾}[r{Þf$»À0ìÌ™3 ,À0¬  @CCÃÞÞ^22ŸÏÿý÷ß—,YbjjºeË–ÆÆÆž‡§HGû†…††6L8^†eeeYYYQ(”1cÆäååaÆápbbbF¥¡¡1}úô'NHV~rròˆ#ôõõׯ_/ÜÂıõ‰N‹­E>Ÿ¯¥¥õôéSüO&“ «««§§‚_‘ÌÃ°ØØX++«¼¼<±Êçr¹3gÎÔÐÐö(D$JJJð—víÚ5|øpssóƒzyyt×ÔÄz^#y´/™³è ðx¼„„kkkuuõéÓ§ã,X÷ëð Ñ+p’#ÐÙÙabb¢­­íååÕÒÒ‚I >ƒÁðõõÕÓÓ366þú믅Œä"´´´ìÚµËÊʪ®®N쥞·É.0 kmm%“ɱ±±†±X, …%Ùivvö´iÓŽ?ÞÕÕõÎA’¬|Ùß™ÃÃÃ!túô龇úî»ïêêêŽ?Þû·<~üØÆÆF¸PböÐBVV¾úúâÕ«W<˜;w®,’R@ ÉôÕ.—‹Ÿw¼ütIô¦ ƒô›¶}û2ø EÔ ½3Çóé§vŸ|b]ZúD @ Ó¦YM›fel¬³qã™ÆÆÖøx÷ÞãrùQQ§Ïž½àáí= !´c‡{xx‘ˆ¦M³ž9ÓVÞ 2½¿}'苚Ì̾‰ÿM´±¨è¡Í·žž‡˜L¶¼Þ¾e{x´µÝøÇDÛãâ.˜›‡?|(þô+×öÎË—LCC-±Æ‡›||’tt†ed„˜˜èÈ%1E×ÔÔêë{¤µ•™lg'þЩàòåïÅ‹·>>GÞ¼aedÃWzßWUU£¯o’žžzffˆ‘‘ö»ßBp…o002ÒÎÉYgmMssÛwõêCy§£H ¸¹í³¶¦å䬃²/Pùƒ‚–Ö°'B.ï‘qSÞé(†ôô›) Ž?q"TKëý,§ÜàÚþ`¡¢BÚ³Ç{Ľo¿=S]ý2&f‰Ø÷€†a[¶œ;zôÏo¾qþæ›ÿÀ@}8Ït²²nEE^¸püž=+UUá_³¸®.^XØñK—*wìððôœ*ïtTþ`tãFuPPêøñf))«á8V“É >GX¬®ŒŒà1cŒåŽbƒ+|ƒÔ˜1ÆçÏ¥ªJþì³ÝõòNGþîÝ«ÿì³Ýªªäóç¿‚²ï;¨üÁËÐP+'gƒƒùÒ¥û îË;y*(¸¿lÙ~óœœu𵙀ÊÔÔÕUSS—/Ÿ¼zõÑÔÔòNG>RSo¬^}ÔÝ}Jjj ººª¼Ó"àÒñ`G"ãâÜ­­ ø!§¶¶yÛ¶%Ês—x‹Ž>—šúçÖ­K‚‚”ú&Ù2•¯‚‚fj……ñâí¾}+•á–Üuë2 $&ú}öÙGòNg¨kûŠäöí§þþ)£Fé§¥ééiÈ;~ôæM»¿òÓ§¯ÓÒ'O%ït† ¨|SW÷zåÊ#†ef†XZÒäN¿xò䕯o@8~<LÔOà Ÿ‚9R?7w½Žuñâ=·n Áûy•–Ö.^¼‡FÓ<~”}ÿÊW<šÙÙ_N™2ÊÃãP^Þ]y§#Kyyw==9:Zž:ª««.ït†2ÒÖ­[åxo**¤Å‹'0¬Ÿ~:öÉ'ÖòÎH~ùåÒ÷ßçúùÍØ½Û‹BkÏý ÆWQ‘HÄØØ¥#GêoÝzîÅ æÏ?/'“õŽÇlÚ”}òdɶmðéÝ+| ïâÅÊuë2g϶=xÐwØ0Å{Jo{{WHHZiiíþý> Ž—w:Ê*((+{æïŸlf6üر MSÞ鼇ææ6?¿ä†FZZФI#äŽÊ"ž={ããs„ËågdÛØÊ;^©©yéãsDU•œ‘2b„ž¼ÓQ.ŠzfÄŒ¡—Ÿ¿ÁÄDç¿ÿÝ{óæcy§ón7o>þï÷ššêþúë(û•?tèèPO 7oŒ—WâÙ³·åNOΞ½í啸é§cN ÕÑgÝÉ\ÛR(ò>VV´°°uu¯ÃÃ]ä‘¿üri×®Ëp =ù‚ÊjBx¸ þ讆†–;<Ï£»„ÀÚ¹ÓÃËkš¼ÓQjp…oȺvퟴ ,’’´´Ôäb2;ƒƒSËËŸ9â?gÎhy§£ì ò‡²Áóè®ÆÆ_ߤ·o¥? <¸Â7”ÙÙ™\¸ð@X´èÿUU5Ê+ªªÆÏ>ÛC"/\ø Ê~€ÊâDÝUXø`àÀ€5v¬qnîzxÖà•?ô Ý’ž> î€åêê–¤¡·ÐDàÚ¾R>ºkӦ욚xt~ =xÖ Wø” þè.—ñ{÷ö㣻„ÀJHðôð˜ÒO½€¾€ÊW:ýýè.ƒåïŸR]M‡` fPùÊHøè®ŒŒ`sóá2Œ\_ÏðõMb±º23CF6’ad [PùR\½zõñcøÑK_´¶r¯74T]¾ÜT†aÏœilnîòö6×Ñâ÷·±±™7ož¼³øpPùR¨¨¨ðxT¾!::zîܹòN RüñǶmÛºvàó|”T>Ê*e•€2‚oïF>>>EEE2‰Æf³ÓÒÒ®_¿Î`0h4š““ÓÊ•+)™ÝŸ»³³óرc·nÝjjj9räÌ™3W¬XA"Éøv ¢¡Q(›¯¾úÊÚZ‘íh+ ¨ü¡oïÞ½/_¾Œ‰‰¡ÑhÏŸ?ß»wo[[[XXN ÍËËëKðŽŽŽµk×êèè„„„˜šš>}ú4%%åÎ;;wî$e|D¹ÿ~ccc¼ÓÌÌÌmÛ¶¥§§Ëð2EGûCß7‚ƒƒmlltttŠ‹‹B€Édö1xzzºŽŽÎîÝ»ÍÌÌfÍš•˜˜H§Ó/\¸ ‹ÜÿEGGgøðáÇ733 mhhxûö­ ãËd@Tþš7oÞÅ‹ýüü–,Yrâĉ˗/{yyx9E©IDAT-Z´èèÑ£¡}ûöíØ±Ÿ“Íf»¸¸ÔÔÔ „nÞ¼èìììíí}ùòe„†a¹¹¹~~~®®®_~ùåÝ»wEkçÍ›W\\ìëëëææ¶oß>.—+µQ8³èñi*•zîÜ9á6íàà••…úâ‹/BK—.ÅÛÛÛÛãââ>ÿüsww÷C‡q8’qD; ‘:tbH$™LVWWï.¦ÔÑî.%œØ€ mPùîÎ;‡ IJJú믿RRRÖ®]›‘‘Ád2çÌ™S\\ÌçóBÅÅÅÆÆÆÖÖÖ[·n]²dÉ©S§|}}wìØÑÙÙyáÂ…ôôô   ŒŒŒU«VýüóÏ’;wîçŸÞ¾}{iié‰'ºkÔÑщˆˆÀ_ŽŒŒ,++[¾|ydddVVÖË—/ñöƒ"„rrrð?÷ìÙÓÜÜœ˜˜ÿ÷ߟƒä™6†a=œäwïhÊ”)’C‡Ïäêêêêêº|ùòË—/{zzöSêhw¿2•\áûpT*!D&“ŦBD"qÖ¬Yׯ_·´´¼sçNxx8BHSSs÷îÝÙÙÙ©©©¶¶¶ÞÞÞŽŽŽt:]tŸiii)Ù‘™™>aaaÑÜÜÜC£¤ÎÎΛ7oÎ;×ÎÎÎÎÎÎ××7---11ÑÉÉIt¶––@`bò¿7É355Æ´°°À'^¼x±lÙ2á[ÔÕÕ544†þøñãI“&‰F{üø±ð]8Ñ/ºJÆíHêÐá233MMMB]]]GݱcǺ‹)u´»KI Aå÷—¹sçÆÆÆŽ9rüøñ4 !ÔÕÕ%¶nÝÊãñ 7oÞ|îÜ9}}ý'OžXYYá磌«“ ÕÐЀÿG¨¯¯×ÓÓë¡Q†a±±±øÿ0eÊ”üü|±Ùtuu‰D"N1bB¨©©I__IøïL[[{÷îÝxíáÇù¡ùóç§§§O˜0ßÉÿøãŸ|òɉ'¼½½ñwñù|‰ôúõka_Rãˆv$9tbTUU]\\Ο?a~D Sêhw—’‚£ýþâààÀçó;†Ÿ „Bddäõë×Y,—Ë%“ɪªª .™Ô¯— þïœñx¼êêê±cÇ~p„º¿ÒÒq8:~ñâÅÏ>ûL޹șLþà²Wò¡0PùýâáÇkÖ¬Y¸pá„ úG]]}ñâŽi2d5t gp´/Ü“ô Žö *e•€2‚Ê@Aå ŒàÚ¾d2ÿ•(Ý!‘H ý8øÅŽW¯^þˆ© åBŸÀ>eçù(#¨|”T>Ê*eô?-×ý—äéËIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/exceptions_8h_source.html0000755000372000001440000021563412502417162025220 0ustar robertousers MySQL++ Reference Manual
exceptions.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
9  (c) 2004-2010 by Educational Technology Resources, Inc. Others may
10  also hold copyrights on code in this file. See the CREDITS.txt file
11  in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_EXCEPTIONS_H)
32 #define MYSQLPP_EXCEPTIONS_H
33 
34 #include "options.h"
35 
36 #include <exception>
37 #include <string>
38 #include <sstream>
39 #include <typeinfo>
40 
41 namespace mysqlpp {
42 
44 
45 class MYSQLPP_EXPORT Exception : public std::exception
46 {
47 public:
49  Exception(const Exception& e) throw() :
50  std::exception(e),
51  what_(e.what_)
52  {
53  }
54 
56  Exception& operator=(const Exception& rhs) throw()
57  {
58  what_ = rhs.what_;
59  return *this;
60  }
61 
63  ~Exception() throw() { }
64 
66  virtual const char* what() const throw()
67  {
68  return what_.c_str();
69  }
70 
71 protected:
73  Exception(const char* w = "") throw() :
74  what_(w)
75  {
76  }
77 
79  Exception(const std::string& w) throw() :
80  what_(w)
81  {
82  }
83 
85  std::string what_;
86 };
87 
88 
90 
91 class MYSQLPP_EXPORT BadConversion : public Exception
92 {
93 public:
94  const char* type_name;
95  std::string data;
96  size_t retrieved;
97  size_t actual_size;
98 
106  BadConversion(const char* tn, const char* d,
107  size_t r, size_t a) :
108  Exception("Bad type conversion: \""),
109  type_name(tn),
110  data(d),
111  retrieved(r),
112  actual_size(a)
113  {
114  what_ += d ? d : "<NULL>";
115  what_ += "\" incompatible with \"";
116  what_ += tn;
117  what_ += "\" type";
118  }
119 
127  BadConversion(const std::string& w, const char* tn,
128  const char* d, size_t r, size_t a) :
129  Exception(w),
130  type_name(tn),
131  data(d),
132  retrieved(r),
133  actual_size(a)
134  {
135  }
136 
142  explicit BadConversion(const char* w = "") :
143  Exception(w),
144  type_name("unknown"),
145  data(""),
146  retrieved(0),
147  actual_size(0)
148  {
149  }
150 
152  ~BadConversion() throw() { }
153 };
154 
155 
160 
161 class MYSQLPP_EXPORT BadFieldName : public Exception
162 {
163 public:
167  explicit BadFieldName(const char* bad_field) :
168  Exception(std::string("Unknown field name: ") + bad_field)
169  {
170  }
171 
173  ~BadFieldName() throw() { }
174 };
175 
176 
179 
180 class MYSQLPP_EXPORT BadIndex : public Exception
181 {
182 public:
188  explicit BadIndex(const char* what, int bad_index, int max_index) :
189  Exception()
190  {
191  std::ostringstream outs;
192  outs << "Index " << bad_index << " on " << what <<
193  " out of range, max legal index is " << max_index;
194  what_ = outs.str();
195  }
196 
198  ~BadIndex() throw() { }
199 };
200 
201 
204 
205 class MYSQLPP_EXPORT BadOption : public Exception
206 {
207 public:
209  explicit BadOption(const char* w, const std::type_info& ti) :
210  Exception(w),
211  ti_(ti)
212  {
213  }
214 
216  explicit BadOption(const std::string& w, const std::type_info& ti) :
217  Exception(w),
218  ti_(ti)
219  {
220  }
221 
226  const std::type_info& what_option() const { return ti_; }
227 
228 private:
229  const std::type_info& ti_;
230 };
231 
232 
237 
238 class MYSQLPP_EXPORT BadParamCount : public Exception
239 {
240 public:
242  explicit BadParamCount(const char* w = "") :
243  Exception(w)
244  {
245  }
246 
248  ~BadParamCount() throw() { }
249 };
250 
253 
254 class MYSQLPP_EXPORT UseQueryError : public Exception
255 {
256 public:
258  explicit UseQueryError(const char* w = "") :
259  Exception(w)
260  {
261  }
262 };
263 
264 
284 
285 class MYSQLPP_EXPORT BadQuery : public Exception
286 {
287 public:
292  explicit BadQuery(const char* w = "", int e = 0) :
293  Exception(w),
294  errnum_(e)
295  {
296  }
297 
302  explicit BadQuery(const std::string& w, int e = 0) :
303  Exception(w),
304  errnum_(e)
305  {
306  }
307 
314  int errnum() const { return errnum_; }
315 
316 private:
317  int errnum_;
318 };
319 
320 
327 
328 class MYSQLPP_EXPORT ConnectionFailed : public Exception
329 {
330 public:
335  explicit ConnectionFailed(const char* w = "", int e = 0) :
336  Exception(w),
337  errnum_(e)
338  {
339  }
340 
349  int errnum() const { return errnum_; }
350 
351 private:
352  int errnum_;
353 };
354 
355 
358 
359 class MYSQLPP_EXPORT DBSelectionFailed : public Exception
360 {
361 public:
366  explicit DBSelectionFailed(const char* w = "", int e = 0) :
367  Exception(w),
368  errnum_(e)
369  {
370  }
371 
380  int errnum() const { return errnum_; }
381 
382 private:
383  int errnum_;
384 };
385 
386 
388 
389 class MYSQLPP_EXPORT MutexFailed : public Exception
390 {
391 public:
393  explicit MutexFailed(const char* w = "lock failed") :
394  Exception(w)
395  {
396  }
397 };
398 
399 
402 
403 class MYSQLPP_EXPORT ObjectNotInitialized : public Exception
404 {
405 public:
407  explicit ObjectNotInitialized(const char* w = "") :
408  Exception(w)
409  {
410  }
411 };
412 
413 
415 
416 class MYSQLPP_EXPORT SelfTestFailed : public Exception
417 {
418 public:
420  explicit SelfTestFailed(const std::string& w) :
421  Exception(w)
422  {
423  }
424 };
425 
426 
437 
438 class MYSQLPP_EXPORT TypeLookupFailed : public Exception
439 {
440 public:
442  explicit TypeLookupFailed(const std::string& w) :
443  Exception(w)
444  {
445  }
446 };
447 
448 
455 
456 class MYSQLPP_EXPORT BadInsertPolicy : public Exception
457 {
458 public:
460  explicit BadInsertPolicy(const std::string& w) :
461  Exception(w)
462  {
463  }
464 };
465 
466 
467 } // end namespace mysqlpp
468 
469 #endif // !defined(MYSQLPP_EXCEPTIONS_H)
BadOption(const char *w, const std::type_info &ti)
Create exception object, taking C string.
Definition: exceptions.h:209
Exception thrown when a requested named field doesn&#39;t exist.
Definition: exceptions.h:161
BadIndex(const char *what, int bad_index, int max_index)
Create exception object.
Definition: exceptions.h:188
Exception thrown when the database server encounters a problem while processing your query...
Definition: exceptions.h:285
BadQuery(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:292
Exception thrown when you try to use an object that isn&#39;t completely initialized. ...
Definition: exceptions.h:403
Exception thrown when a BeecryptMutex object fails.
Definition: exceptions.h:389
ConnectionFailed(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:335
SelfTestFailed(const std::string &w)
Create exception object.
Definition: exceptions.h:420
~BadIndex()
Destroy exception.
Definition: exceptions.h:198
Exception thrown when an object with operator [] or an at() method gets called with a bad index...
Definition: exceptions.h:180
BadInsertPolicy(const std::string &w)
Create exception object.
Definition: exceptions.h:460
std::string data
string form of data we tried to convert
Definition: exceptions.h:95
BadConversion(const char *w="")
Create exception object, with error string only.
Definition: exceptions.h:142
BadQuery(const std::string &w, int e=0)
Create exception object.
Definition: exceptions.h:302
Used within MySQL++&#39;s test harness only.
Definition: exceptions.h:416
BadFieldName(const char *bad_field)
Create exception object.
Definition: exceptions.h:167
virtual const char * what() const
Returns explanation of why exception was thrown.
Definition: exceptions.h:66
~Exception()
Destroy exception object.
Definition: exceptions.h:63
DBSelectionFailed(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:366
size_t retrieved
documentation needed!
Definition: exceptions.h:96
Exception thrown when there is a problem related to the database server connection.
Definition: exceptions.h:328
~BadFieldName()
Destroy exception.
Definition: exceptions.h:173
Thrown from the C++ to SQL data type conversion routine when it can&#39;t figure out how to map the type...
Definition: exceptions.h:438
ObjectNotInitialized(const char *w="")
Create exception object.
Definition: exceptions.h:407
Exception(const char *w="")
Create exception object.
Definition: exceptions.h:73
int errnum() const
Return the error number corresponding to the error message returned by what(), if any...
Definition: exceptions.h:349
std::string what_
explanation of why exception was thrown
Definition: exceptions.h:85
~BadConversion()
Destroy exception.
Definition: exceptions.h:152
BadParamCount(const char *w="")
Create exception object.
Definition: exceptions.h:242
BadConversion(const char *tn, const char *d, size_t r, size_t a)
Create exception object, building error string dynamically.
Definition: exceptions.h:106
Base class for all MySQL++ custom exceptions.
Definition: exceptions.h:45
const char * type_name
name of type we tried to convert to
Definition: exceptions.h:94
MutexFailed(const char *w="lock failed")
Create exception object.
Definition: exceptions.h:393
Exception & operator=(const Exception &rhs)
Assign another exception object&#39;s contents to this one.
Definition: exceptions.h:56
int errnum() const
Return the error number corresponding to the error message returned by what()
Definition: exceptions.h:314
TypeLookupFailed(const std::string &w)
Create exception object.
Definition: exceptions.h:442
Exception thrown when not enough query parameters are provided.
Definition: exceptions.h:238
~BadParamCount()
Destroy exception.
Definition: exceptions.h:248
Exception thrown when an insert policy is too strict to create a valid INSERT statement.
Definition: exceptions.h:456
BadOption(const std::string &w, const std::type_info &ti)
Create exception object, taking C++ string.
Definition: exceptions.h:216
Exception(const Exception &e)
Create exception object as copy of another.
Definition: exceptions.h:49
int errnum() const
Return the error number corresponding to the error message returned by what(), if any...
Definition: exceptions.h:380
BadConversion(const std::string &w, const char *tn, const char *d, size_t r, size_t a)
Create exception object, given completed error string.
Definition: exceptions.h:127
Exception thrown when a bad type conversion is attempted.
Definition: exceptions.h:91
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
size_t actual_size
documentation needed!
Definition: exceptions.h:97
Exception thrown when something goes wrong in processing a &quot;use&quot; query.
Definition: exceptions.h:254
Exception thrown when the program tries to select a new database and the database server refuses for ...
Definition: exceptions.h:359
Exception thrown when you pass an unrecognized option to Connection::set_option().
Definition: exceptions.h:205
UseQueryError(const char *w="")
Create exception object.
Definition: exceptions.h:258
Exception(const std::string &w)
Create exception object.
Definition: exceptions.h:79
const std::type_info & what_option() const
Return type information about the option that failed.
Definition: exceptions.h:226
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query-members.html0000755000372000001440000005266212502417164026733 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Query Member List

This is the complete list of members for mysqlpp::Query, including all inherited members.

affected_rows()mysqlpp::Query
disable_exceptions() const mysqlpp::OptionalExceptionsinline
enable_exceptions() const mysqlpp::OptionalExceptionsinline
errnum() const mysqlpp::Query
error() const mysqlpp::Query
escape_string(std::string *ps, const char *original=0, size_t length=0) const mysqlpp::Query
escape_string(char *escaped, const char *original, size_t length) const mysqlpp::Query
exec()mysqlpp::Queryinline
exec(const std::string &str)mysqlpp::Query
execute()mysqlpp::Query
execute(SQLQueryParms &p)mysqlpp::Query
execute(const SQLTypeAdapter &str)mysqlpp::Query
execute(const char *str, size_t len)mysqlpp::Query
for_each(const SQLTypeAdapter &query, Function fn)mysqlpp::Queryinline
for_each(Function fn)mysqlpp::Queryinline
for_each(const SSQLS &ssqls, Function fn)mysqlpp::Queryinline
info()mysqlpp::Query
insert(const T &v)mysqlpp::Queryinline
insert(Iter first, Iter last)mysqlpp::Queryinline
insert_id()mysqlpp::Query
insertfrom(Iter first, Iter last, InsertPolicy &policy)mysqlpp::Queryinline
more_results()mysqlpp::Query
operator void *() const mysqlpp::Query
operator!() const mysqlpp::Queryinline
operator=(const Query &rhs)mysqlpp::Query
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse()mysqlpp::Query
Query(Connection *c, bool te=true, const char *qstr=0)mysqlpp::Query
Query(const Query &q)mysqlpp::Query
replace(const T &v)mysqlpp::Queryinline
replace(Iter first, Iter last)mysqlpp::Queryinline
replacefrom(Iter first, Iter last, InsertPolicy &policy)mysqlpp::Queryinline
reset()mysqlpp::Query
result_empty()mysqlpp::Query
set_exceptions(bool e) const mysqlpp::OptionalExceptionsinlineprotected
SQLQueryParms (defined in mysqlpp::Query)mysqlpp::Queryfriend
store()mysqlpp::Query
store(SQLQueryParms &p)mysqlpp::Query
store(const SQLTypeAdapter &str)mysqlpp::Query
store(const char *str, size_t len)mysqlpp::Query
store_if(Sequence &con, const SQLTypeAdapter &query, Function fn)mysqlpp::Queryinline
store_if(Sequence &con, const SSQLS &ssqls, Function fn)mysqlpp::Queryinline
store_if(Sequence &con, Function fn)mysqlpp::Queryinline
store_next()mysqlpp::Query
storein(Container &con)mysqlpp::Queryinline
storein(T &con, SQLQueryParms &p)mysqlpp::Queryinline
storein(std::vector< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::deque< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::list< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::set< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::multiset< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_sequence(Sequence &con)mysqlpp::Queryinline
storein_sequence(Sequence &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_sequence(Seq &con, SQLQueryParms &p)mysqlpp::Queryinline
storein_set(Set &con)mysqlpp::Queryinline
storein_set(Set &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_set(Set &con, SQLQueryParms &p)mysqlpp::Queryinline
str()mysqlpp::Queryinline
str(const SQLTypeAdapter &arg0)mysqlpp::Queryinline
str(SQLQueryParms &p)mysqlpp::Query
template_defaultsmysqlpp::Query
throw_exceptions() const mysqlpp::OptionalExceptionsinline
update(const T &o, const T &n)mysqlpp::Queryinline
use()mysqlpp::Query
use(SQLQueryParms &p)mysqlpp::Query
use(const SQLTypeAdapter &str)mysqlpp::Query
use(const char *str, size_t len)mysqlpp::Query
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/mysql_09_09_8h.html0000755000372000001440000001545412502417162023442 0ustar robertousers MySQL++ Reference Manual
mysql++.h File Reference

The main MySQL++ header file. More...

#include "connection.h"
#include "cpool.h"
#include "query.h"
#include "scopedconnection.h"
#include "sql_types.h"
#include "transaction.h"

Go to the source code of this file.

Macros

#define MYSQLPP_VERSION(major, minor, bugfix)   (((major) << 16) | ((minor) << 8) | (bugfix))
 Encode MySQL++ library version number. More...
 
#define MYSQLPP_HEADER_VERSION   MYSQLPP_VERSION(3, 2, 2)
 Get the library version number that mysql++.h comes from. More...
 

Functions

unsigned int mysqlpp::get_library_version ()
 Get the current MySQL++ library version number. More...
 

Detailed Description

The main MySQL++ header file.

This file brings in all MySQL++ headers except for custom.h and custom-macros.h which are a strictly optional feature of MySQL++.

There is no point in trying to optimize which headers you include, because the MySQL++ headers are so intertwined. You can only get trivial compile time benefits, at the expense of clarity.

Macro Definition Documentation

#define MYSQLPP_HEADER_VERSION   MYSQLPP_VERSION(3, 2, 2)

Get the library version number that mysql++.h comes from.

MySQL++ Version number that the mysql++.h header file comes from, encoded by MYSQLPP_VERSION macro. Compare this value to what get_library_version() returns in order to ensure that your program is using header files from the same version of MySQL++ as the actual library you're linking to.

#define MYSQLPP_VERSION (   major,
  minor,
  bugfix 
)    (((major) << 16) | ((minor) << 8) | (bugfix))

Encode MySQL++ library version number.

This macro takes major, minor and bugfix numbers (e.g. 1, 2, and 3) and encodes them like 0x010203.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Comparable-members.html0000755000372000001440000001104312502417163027656 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Comparable< T > Member List

This is the complete list of members for mysqlpp::Comparable< T >, including all inherited members.

compare(const T &other) const =0mysqlpp::Comparable< T >protectedpure virtual
operator!=(const T &other) const mysqlpp::Comparable< T >inline
operator<(const T &other) const mysqlpp::Comparable< T >inline
operator<=(const T &other) const mysqlpp::Comparable< T >inline
operator==(const T &other) const mysqlpp::Comparable< T >inline
operator>(const T &other) const mysqlpp::Comparable< T >inline
operator>=(const T &other) const mysqlpp::Comparable< T >inline
~Comparable()mysqlpp::Comparable< T >inlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1GuessConnectionOption__coll__graph.png0000644000372000001440000001070212502417165032770 0ustar robertousers‰PNG  IHDRÀ€Òæñ<bKGDÿÿÿ ½§“wIDATxœíkTW×Çwn€\ B¸ …ÊE¥ µ­T]ŠŠ(¢VE-¢ R…)UWUtéjÅZËÅeµ*J¸("E( HY ¥*T”§V0x‚¢“`"¹ÌûaÞ7oÌ…':‚œß§=3{ï9óçœ33'„a o y  @ n€„@B Aª.“=zô(::Z$é2éÂÈÈèÈ‘#NNN:˨S]»víÂ… AAAºL:¤ÈÍÍ {g„söìYÝ'"H$gDs !€„@B Aˆ!' ¦¦¦¾ivwwÇÄÄ|ôÑGfffÞÞÞqqq‰d@*†œ€ú>Ÿ?a„šššÄÄÄÚÚÚíÛ·Ÿ:ujöìÙR©Tíþl6›N§ã¶……ŶmÛtXl¿0·ñï»wï¶¶¶¾té…B€Q£FÍ™3ÇËË+###22Ru™LöüùsܦÓé :-·ÐLjD"?~ÜÃÃÃÚÚ:!!!++käÈ‘æææßÿ=lذ!""ßS ߸qŠŠŠÆgddäââ’••2™,))ÉÃÃÃÌÌlòäÉåååŠC>‚œ;wnôèÑ6666lxõê•Z'¼>Ü(Ú,kçθzpLLLbbbX,–ÚP“&M;;;¥8]]]_~ù%Nwttܲe þ°žD":uÊÃÃÃÒÒrïÞ½ýÚæo¦Crrr´É+V¬àñxééé°lÙ2—’’Ïž=ûã?¬¬¬Äb1†a,ËÓÓS&“ CCC&“ÉápŽ;F¥RAJJŠM~~~[[[qq±££#466â5à†¿¿ÿ½{÷®]»æææ¶k×.µN úººÒÒÒðòävgg'ttt(Õ_UUekkÛK||7E;44ÔÏÏïþýûõõõ^^^xRøâ‹/:;;ÓÒÒàùóçÚ4]NNŽvW£oÐSÕÕÕaÖÓÓ£d766J$;;»K—.a6oÞ¼„„ ø\.FÛ·o_gg§L&ãóùR©ÔÓÓóĉò°™™™ªª¯¯—×æææ¦Ö©©NMºzõ*Nï%>î‘Û=== åÎ;¸???O åååŠç®MÓéX@ú8„€™™Ðh4%(Ê’%KòóóŸ={vñâÅÐÐP>|xyyùµk×§OŸ^YYI&“Ùlöøñãå1ǧšÈÝÝ7ÆŒÓÒÒÒ‹S ;;»›7o*ùoÞ¼ùé§ŸjêÉ“'R©ÔÕÕÿèææ&ßsĈŠç®‡è©€z'((¨  àìÙ³S§NÅ&¡P(“Érss¹\nDDÄ‚ ¸\®ƒƒÃ­[·äG544¨†Â»¸wï~µ49Õº{÷nÅ{®îîîÄÄÄ€€íCÙÚÚR(6›¼ÿ¾ƒƒn“ÉztÙÝi?„É»kµ¶D"±±±±µµÍÈÈÀ7 …B##£¼¼¼ŽŽŽÔÔT###¡PgccSXXÈápJJJÔÎ|}}«««ÝÝÝwîܩ։i˜aöâŋѣGOŸ>½¤¤äÞ½{ùùùžžžS¦L‰D½ÄçóùØës ???6›}ûömOOO<©¦vè½éÐè¿ ðuëÖ 6ŒÇã)wuu5003f̹sç0 ëééÙ½{÷È‘#MMM'Ožœ­* ôôtggg:¾~ýz¡P¨Ö‰½~±m ÃÁæÍ›½¼¼Œ===÷ìÙóòåKMñÅbñÔ©SMMM•âp¹Ü°°0+++{{ûo¿ýOФŒ–Ò†;v„„„¼Ñ!J^éc/η£Ciî4ø$ŠD¢¶¶¶ãÇŸ>}z kA ÂIôõë×'L˜°fÍš3f‰óÞ{ï1 mœ}ÿ݃„éð‹…gÏž ÖeÆ¡‰DÊÉÉY¶l™Î2¾¡W !„ ‚pŸššªû¤o‡H$##ôg¦ ÈÁÁB¡ ¢›[KËÅÀå t!ÚB¡PäïÑtƒNoãíí/>ýô êê~°±1èrôÔ9k¤¤¤žL&‘HP\¬¼`! H#gÎTËd2™ rrªºý H=ÍÍ·o·``˜¬¾¾¥¹¹c +ÒS€ÔsîÜ *o•J>bêARONNµD"Ãm‰D†F1M ©¡¡¡õáÃ犞žýç?mU>ƒ¤†‚‚:¢è¡Ñ(uU>ƒ¤ŒL†åæÖˆÅ¯}7Y,–ææÖ gfª )ó÷ßÍ|UÿÓ§¼¿ÿ~ órô$ eTÇ/RXˆF1e€^C,–Ô*_òMùùê7 e€^£¦¦™ÇQ(d*•B¥RpþÏ&¿x!D£˜èeêkðx¢óçoÈ?²XW`åÊÉrÏÂ…¿÷žÑT¦¯ õƒ‘ ))á]ˆþ‚†0!€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !€„@B A$ !^û…²Ë—/755 `5úFnn+éô_¸é9îîî¾¾¾ÿÿS€J€ÿ€©ÏÉÆd²ñ@W¡_P©TEͼÖ‘H¤ØØØ3f \y½æÊ•+?üðƒ¢fÐA$ !€„@BB¿n»Z[[W®\Y^^ÞW[ZZ’’’h4Ú‡~¸zõjWW×¾ ®–çÏŸ'''ß¹sçÅ‹ÎÎΡ¡¡>>>ýš±ú¼=Uy—{ §OŸFGG[[[ïß¿?11ÑÖÖvÆ >쿌</22ÒÐÐ066–ÉdΜ9óǬ©©é¿Œªp8œE‹á¶©©éŠ+ú5~õ@} ‹Å;vì¦M›H$¸»»wwwgggoß¾½Ÿ2fdd|üñÇ111øGggg.—›““ãííÝOU‘Éd<·ÍÍÍ×®]Û¯éÞ¸òõõ-))  ÌÎÎ.--]±bÅüùó?‡Þ»w/¾§P( hll€¿þú+""Âßß?$$¤´´0 +((Ÿ7o^ttô7Ÿo¶¶¶úúúVUU………-^¼øðáÃb±X­S¾³â¸]WW·téR\=8QQQË–-ëå‰DÂd2/^¼xñb&“)‘HÔ¯ÉYQQ±téRÅæ ߺu+n ‚„„„E‹%''÷ôôàíyñâÅððð… ž9sFÞȪNÕÚ¤RiFFFppp```||¼@ €¯¿þ–,Y¢tjÚg#Þf«­­MNN^»vmZZÚÕ«W;•••Åãñ¦OŸ^UU%•J ªªÊÞÞÞÍÍM$íÚµ+00ðÌ™3aaa{÷î‰DÅÅÅ'OžŒŒŒÌÊÊZµjU||¼j¢ÂÂÂøøø¸¸¸ëׯgggkrZXXlÙ²ß*·Åbq[[Û|€û…B¡P(4001bD/§–——ÇápRRR~þù纺ºŒŒ µÅ«u .—ëää¤pذa666¸}ðàÁŽŽ&“™˜˜XSSsúôiÜÿçŸ9r„Á`¤¤¤ðù|MNÕÚòòò***âãã8ðøñc‹G€üü|¥S{£ìÚó6 666ö÷÷€cc àóù^^^T*µ¾¾.^¼èïïO"‘Äb1†aøõ (**244üõ×_×­[çããcee5qâÄÈÈHÕDQQQŽŽŽ‘‘‘eeešœ&&&óçÏÇ·Êm‡a˜‘Ñÿþk¦y ôrj%%%7n´±±qqqa0ÕÕÕj‹WëÄŸÏ*vxŠH$’Ë—/¯_¿ÞÞÞÞÅÅeõêÕò3 4553g^¶&§jmÅÅÅkÖ¬qqq9rä¶mÛ<==5×›fמ·™þâLÑ2™ìããSQQáââR[[»yóf033;pà@^^^FFƨQ£BBB&NœÈápÜÜÜä1]\\T9::↓“SGGG/NU,-- ZZZÜÝÝ¿áóù .TÚSñÁ|{{»âdbb¢¶xMÎáÇ?|øPñBÞ½{÷—_~9xð Ç“ÉdòþÏÁÁA^N¿ÿ¾ü¨¨†jiiÁÇ[YYõâT…D"}òÉ'.\Pt*ÝÐâCí³gÏässs‹U^^^^^^TTtôèQµÅ«uÀ”)SrrrYVV&‘H ‡N&“9îokkïhè´TªµYYYµ··ã[›ššð!L-oš]{ú^@ãÆ“J¥™™™ø$)&&¦¢¢¢»»[,S©TCCùsç&''WUUq¹ÜêêêÔÔTÕPIII­­­wïÞMOOŸ={¶&gwwwqq1¾UÑŽŒŒ,--MIIa³ÙMMM™™™.\ÀÿÔLMM ´´ôåË—ŠÓŸ´´´'Ož°Ùì­[·ª-^­"""nݺ×ÐÐÀf³333óóóñÑ™J¥úúú:tˆÃá477;vlÖ¬YoÔ°ªµùûû§§§777777 MySQL++ Reference Manual
mysqlpp::FieldTypes Member List

This is the complete list of members for mysqlpp::FieldTypes, including all inherited members.

FieldTypes()mysqlpp::FieldTypesinline
FieldTypes(const ResultBase *res)mysqlpp::FieldTypesinline
FieldTypes(int i)mysqlpp::FieldTypesinline
operator=(const ResultBase *res)mysqlpp::FieldTypesinline
operator=(int i)mysqlpp::FieldTypesinline
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_0.png0000644000372000001440000000411112502417165023724 0ustar robertousers‰PNG  IHDR­%¿.þ¡bKGDÿÿÿ ½§“þIDATxœí›}HSßÇÏšÚf¦‘ÛÔ¶ù4 íP0z°$IÁZai±J’ž4¨´¨ÿûãâ|êA ]b -3̦ØÒ-6á#6›6—W§÷žß‡ß¸n×iß–ùëw_Ýû¹Ÿs>ŸsÎûž‡ëd@Íÿ=ëþt4kZ4Ð: AÐ: 'òÍàà`FFÆìììŸÊ†fÕH$‰‰‰–ÛE:P(õõõb±xÕ³¢YU>|ø “É–ÔB&“­bJ4€¤¤$+ ½? €Ö ‚Ö ´hkNýýý ñuÞ½{—Á`äååýzU *~G΀ªª*ÊpÝÝݵætàp „UUUÛ¶m«®®¶ï©Óé8β¶··-ÆA™ZsäÈT{{;ÀN$9<Źñ/C­V÷õõ½{÷îàÁƒ&00p)O‚ ¾}û¶l…\.×ÛÛ›léïïw@¢6°Ùl6› 0™L« ŽåßÌ £¬¬,$$„Ëåæåå•——ûùùyxxäää233ÓÓÓ‘§Édruuýôé ®®nÇŽ,Ëßß¿¼¼@Ä£GBBB6nÜÕÒÒBž]Ñd+—˃‚‚x<^ffæÜÜ¥,^M¬f骪ª={ö8p 88Ø2%PúGFFRwOMM­VÛÙÙ¹}ûöÜÜ\J#\bÐÒÒÂd2ÇÇÇ-™wuu”J¥^¯”––~ÿþ=!!Ñ2?§¤¤ÄÄÄèt:µZ-‰P `w>˜œœd0 ?~üÈÎÎF±þùç@ÐØØ811ÑÜÜÄ`0PAµZ-‘H8NzzzWW×Rng>Àq¼±±1>>žÏççææŽŒŒ,;|pÕÖáÙ³gÙl¶Ñh$W. ]\\‚ƒƒår9„Ðl6ß¹sÇÏÏÏÍÍ-** -œV:())ñõõåp8.\À0ŒÒ—Xï%Ill,9s‚ „Báµk× „÷îÝÛ´i“P(”ËåÈ~~>::ÚÍÍ 9 †'Nxzzúøø\ºt ²¯a~~þæÍ›·nÝZPPœœÌãñpøð¡P(ôðð8tè\.çr¹äâ“““ùùùB¡ðË—/”nG555‘‘‘•••sss””8F+áúõë)))?Uε”_ÉJ¹Ö¨««#oƒjjjÂÃÃmÝpG‡¬ŸÂl6ÿ‹”Vc0;;«ÓéÊÊÊΜ9ãðÊÿQ©TÇW*•333 …"''çôéÓ¶nëÖ­srúéÏzÎÎÎŽÈñ7|OìèèHHH8wîÜÞ½{¥www‰D²ã';;{ff&>>^¯×ûûû§¥¥­Á&0 éL,“ÉŽ= éÿlùÛA¿G"ÿðìïÿ;ÍJ u@­­(Ï EEE«ŸÍj¢Óéüýý™ÈÚÚÚ˜LæÊfU¹rå yèô)‘Ðû­hÐ hÐÀÍŒ»Œ%lšÖIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DataOption__coll__graph.png0000644000372000001440000001025412502417165030535 0ustar robertousers‰PNG  IHDR»pÉÝ–JbKGDÿÿÿ ½§“aIDATxœíkT×ÇwB ALµF@D×R‹.ŸDÔú¨Š"ˆH¥@¬âi—¶(R–¢õ±¬Xå­€(òR¹Ê-¢ˆHQX—^j [4¤HÈcæ~˜®4„€ bˆr~Ÿvvöì³ÏÌ?sΜL2Çè5Ô.ñžƒ R ‚H1rÐ4ÓLHHÈ“'O4ÓÖà$((hÅŠhˆ¢™k% …2uêÔ>úHm BÊÊʦM›vþüy ´¥¡s lݺuåÊ•knP¡É‹æ1r Šȃ R ‚ƒE1Ïž=£P(ý˜°­­-,,l„ FFFS¦LÙ»w¯L&J4Ì`QLÿÒÚÚ:yòäòòòýû÷WVVîØ±ãÌ™3sçΕËåjãëêêX,a3™Ìo¾ùFƒÅö3š»ºþˆŒŒ477¿v횎ŽØÙÙÍ›7ÏÑÑ1999  k<†a¯_¿&l‹­Ñrû-:ÇP(”¤¤${{{ssóèèèÔÔÔQ£F‡‡‡@HHÈúõë‰H¡Ph``pÿþ}ÈËËsrrÒ××çp8©©©€aXLLŒ½½½‘‘Ñ´iÓŠŠŠ”GbP¸xñâ˜1c,,,BBB:::Ô:¡ó¢l§¥¥íÚµ‹ ¡¡aXXXZZšÚTS§N€aÆ©äëÖ­c±Xl6{ûöíb±˜ØgΜ±··755=pàÀ;Ýç}ב‘ñƘիW·´´$$$ÀÊ•+[ZZbccàÕ«WÅÅÅfffR©Çñ´´4 ÄB!N?yò$ÇKLL¤ÑhB¡066ÖÂÂ"''§±±ñòåËl6jjjˆÎ†»»{uuõíÛ·mll"""Ô:qñññDy »¹¹šššTê/--µ´´ì!?¦lûøø¸ººÖÖÖVUU9::ÀŠ+š››ãããàõë×oܽžžžžžž½>o…v)æÞ½{8ŽK$»¦¦F&“ 6ìÚµk8Ž/X° ::Çq>Ÿ¯««{ðàÁææf ÃZ[[år¹ƒƒÃ©S§iOŸ>ÝU1UUUÄ»666jÝÕÙbÊÊÊX,Vù –H$:::¿þú+áÏÉÉ!€¢¢"徿açjV1Z4*€‘‘èêêªØ ££³lÙ²œœœW¯^úøø€‰‰IQQÑíÛ·ÙlöìÙ³KJJ¨Tj]]Ýĉ9œœº6dkkKcÇŽmhhèÁÙ&“9lذ¨øŸ?|øð‡*¶züøq×TĪ««‰ÃÓS->>>‘‘‘ÊWFmmmû÷ï÷ððè}*KKKºº:âemmíðáà ›JÕâ㢙SônTRœÕÚ2™ÌÂÂÂÒÒ299™xK$éëëgee555ÅÅÅéëë‹D¢½{÷ZXX\¸pÇãåçç«Ç¸¸¸ÔÔÔܽ{×ÖÖv×®]jx7óÇÿþûï1cÆÌž=;??¿ºº:''ÇÁÁaúôéb±¸‡ü­­­xçyŒ···««k]]Ý£GˆF»Û=0xç1=+Çñààà!C†´´´(¶ÊÈÈ=z´žžÞرc/^¼ˆã¸D"‰ŒŒ5jƒÁ˜6mZzzzWÅ$$$Œ9’ÅbmÚ´I$©u⮲ã¸P( utt400pppˆŠŠjooï.¿T*1cƒÁPÉÃçó}}}ÍÌ̬¬¬¶nÝJ4Šƒã½SLoعs§··7©MTŽ´ÊËœ}£SõM*æ½YÁ‹ÅIIIgÏžèZ5Z<ÃêÌ;w&OžüÅ_Ì™3çmò :4((¨7Î~Ìÿ!¡¹»6322Ð=xïbÇjæ®Í÷æƒÐbä@ŠA)AÍ]]_»vM h¬¹AE]]‡ÃÑPcšYöy¿~ÛF£™2™]9BCC5s(5tuý~±sgΩS%¹¹›œ5õÁ}@óUd2,7·rs+ºm)F•ââ§--"Èξ'•ª¿Ó{0ƒ£JNÎ=âÞööŽ7žt9ZRL'ÚÛ%W®<”Éä £CÉÎF“*H1(,|¬‰d2ì¿ÿ}ÔÖÖ1°%iH1ÈʪPþ½¢L&/(PsÓç`)æ_‚ö¢¢§r¹òr%;»bÀ ÒJbþ%?¿JŃaXqñÿš›Û¤í)æ_23+0LÍzæþó°«sЂó/_þ}çN]×pdz²Ê¤$í)æòòèè¨Ù†WTüÎã¡ïPÿ)æ²³+‰e˜®à8äå¡éޛ߼k¨T°²2&l™ ‹¥ ]ñ.Z•Q€¾»VÃ¥K‚ƒO76èB´4*!ȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Šȃ R ‚H1r Å H¢ü°¥‘#Gt9Z•j@§è*´…°°0e‘tú¼ßÿÝÓÓsܸqUBÛÈÌÌ|þü¹²GõŸÇ÷–­G|H«xÐ<A¤9bä@ŠAC»þ3üÅ‹kÖ¬)**ê—l... ÛÒÒr„ \.—Éd¾eZ±X|êÔ©òòr7bĈ™3gzyy–ì™þí‚ëׯÿý÷]ýñññ666ýÛh›bú˜˜+++ Ãêëë³³³“’’ †Ú`|ñâŶ··s¹\“   kkëß~û-11±¢¢âСCTªš¶rNƒ±zõê~é—2Ó§OÏÎÎ&ÚÚ¸q#aÀСCû½-øàÃd2MMM€ÅbMœ8qË–-™™™þþþjƒ1 kiié9aJJ “É<|ø0¡6›=eÊÿüüü… öœÓØØ800ð­ú£:N§Ó@$ÑßwéyŒ‹‹K~~¾ŸŸßÒ¥KÓÓÓ V¯^½pᤤ$8vìØˆH‘HäááQSS¿üòËúõëÝÝݽ½½ ÇñÜÜ\??¿ |õÕW÷ïßWD^¼xáââRZZêëëûùçŸ;vL*•ªu*‚•7T[9…BY¼xñíÛ·‰—eee_~ù¥‡‡ÇòåËÓÓÓ`Æ °lÙ²îàêÕ«k×®U>èëë{yy]½zUmyÊ9•k …ÑÑÑK–,ñôôŽŽö÷÷ …o>H©­­õòòŠåñxd·U¡/ŠYµj•»»;x{{xxx@kk«££#F«ªª€ÂÂBwww …"•Jq‰Dzzzyyyt:=;;;88xæÌ™fffÎÎÎ]âr¹l6ÛÞÞ> àêÕ«Ý9 #‚²Ýzzz‰‰‰!!!fffÐÖÖF*@ …‚aX5« “É®_¿¾iÓ&+++‡ãï﯈\ºt)ƒÁ˜7oÙD")((àr¹‡vttLOO733{cU˜4iRBBNß¼yó·ß~[QQÑçgÞôec``4MÅ*•:sæÌ›7or8œÊÊÊÐÐP022:räHVVVrr²···³³3ÇSþ°r8œ® ±ÙlÂ1bDSSSÎ^ÒÐÐ`mmMÜÐÐpðàA‘HdkkÛ5RmƒÁ055}öìÙ¤I“”ƒŸ={fgg×ûòš››1 #*€áÇ+"Y,(íÏÊÊʨ¨(ggçÍ›73†¢ühe’˜™™­[·nÍš5·nÝJII9zôè¡C‡ˆ)ú=fΜ9%%%7nÜ?~¼¹¹9ttt`‘——·`Á‚;w¶¶¶²X¬ÚÚZÅV*_w444F}}½âƒ¥ÖÙp¿téÒÔ©S‰’"""¼¼¼âââ¶lÙÒ5¸»77·””ÅÄbñÙ³g?ùä“Þ—gbbB¥RDcc#!PÑ“Éüøã?~üèÑ£> F]inn~þüySS“1_&Kÿ+ÆÉÉI.—Ÿ>}š¶€B¡„……ݼy³­­M*•Òh4:>þü'N”––òùü»wïÆÅÅuMóâÅ‹§OŸ&$$Ì;·;g[[ÛåË—‰w•m|>ÿÕ«W> çñx+W®©T*“Éh4šD"INN€öövb⊣»??¿æææm۶ݽ{·¡¡¡¤¤„Ëå²X¬%K–ôP3‘SFsqqùñÇy<q}îææ¦vgŽ=úÈ‘#‘‘‘õõõ¾¾¾?üðCuu5Ù#8ŽWTT„‡‡oذÇñ˜˜˜ððpccã>¤êÿ«k*•:kÖ¬ŸþyÖ¬Y„GOOoÇŽ±±±ýõ—µµõîÝ»õôôV­Z%—Ë?.8NPPPTT”J*77·ÐÐP±XìêêêããCœºUœ yòdcc£•••«««§§§®®®Úšutt9•»¶yóæ˜˜˜àà`]]ÝO?ý”èHwŒ5jÛ¶mùùù{öì9|ø°¥¥%©ƒRRR’‘‘±lٲݻw+†¼¾Ñé© e÷îÝo·CBBÂË—/¿ûî»Þo¢²ªvyô­™öš)Çq Ãz³Ä¬ q¾ìCs{öì177?þ¼ÂÓÏ£’D"áñxùùùŸ}öYÿfFP(²r¥©ôÛÓÏŠyòäIPPÐüùó'Nœø6y -ZÔ§ö ååõïdTB|0¼óQ ñÁƒƒ R ‚H1r¨Î|9މ‰É„Ð*êêêÜÜÜ”g¾.Ó·mÛV__¯ñªÚ ‡Ã!¾WQ@éó·ÞˆÁ šÇ ȃ R ‚H1rü«Iô.ÇíÑVIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption-members.html0000755000372000001440000001212412502417164031445 0ustar robertousers MySQL++ Reference Manual
mysqlpp::WriteTimeoutOption Member List

This is the complete list of members for mysqlpp::WriteTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DateTime-members.html0000755000372000001440000002731212502417163027313 0ustar robertousers MySQL++ Reference Manual
mysqlpp::DateTime Member List

This is the complete list of members for mysqlpp::DateTime, including all inherited members.

compare(const DateTime &other) const mysqlpp::DateTimevirtual
convert(const char *)mysqlpp::DateTime
DateTime()mysqlpp::DateTimeinline
DateTime(unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)mysqlpp::DateTimeinline
DateTime(const DateTime &other)mysqlpp::DateTimeinline
DateTime(const char *str)mysqlpp::DateTimeinlineexplicit
DateTime(const Str &str)mysqlpp::DateTimeinlineexplicit
DateTime(time_t t)mysqlpp::DateTimeexplicit
day() const mysqlpp::DateTimeinline
day(unsigned char d)mysqlpp::DateTimeinline
hour() const mysqlpp::DateTimeinline
hour(unsigned char h)mysqlpp::DateTimeinline
is_now() const mysqlpp::DateTimeinline
minute() const mysqlpp::DateTimeinline
minute(unsigned char m)mysqlpp::DateTimeinline
month() const mysqlpp::DateTimeinline
month(unsigned char m)mysqlpp::DateTimeinline
now()mysqlpp::DateTimeinlinestatic
operator std::string() const mysqlpp::DateTime
operator time_t() const mysqlpp::DateTime
operator!=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator<(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator<=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator==(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator>(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator>=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
second() const mysqlpp::DateTimeinline
second(unsigned char s)mysqlpp::DateTimeinline
str() const mysqlpp::DateTimeinline
year() const mysqlpp::DateTimeinline
year(unsigned short y)mysqlpp::DateTimeinline
~Comparable()mysqlpp::Comparable< DateTime >inlineprotectedvirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x6e.html0000755000372000001440000001475412502417164023734 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- n -

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1NullIsZero.html0000755000372000001440000000461412502417163026454 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NullIsZero Struct Reference

Class for objects that define SQL null as 0. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null as 0.

Returns 0 when you ask what null is, and is zero when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Set-members.html0000755000372000001440000000713212502417163026350 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Set< Container > Member List

This is the complete list of members for mysqlpp::Set< Container >, including all inherited members.

operator std::string() const mysqlpp::Set< Container >inline
Set()mysqlpp::Set< Container >inline
Set(const char *str)mysqlpp::Set< Container >inline
Set(const std::string &str)mysqlpp::Set< Container >inline
Set(const String &str)mysqlpp::Set< Container >inline
str() const mysqlpp::Set< Container >inline
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_35.png0000644000372000001440000000552112502417165024022 0ustar robertousers‰PNG  IHDR=%¿ ©ˆbKGDÿÿÿ ½§“ IDATxœíœL“×ÇO)¿ÊEF×Rh £u ‰‚Æd?œ[XÂ2¶– „‘¹lls]äŠâÆ™1³Í»ÄeWP†’2CUD`! $»(2/7 êB¥é”Y°%ýa¡´=÷³ûÞÚP¡£¼ó|âç}Þsž÷9Ï9_zÎy[)B€Á`HE€¿À`0 Ö-C>°n1òu‹Á@§ë™™µZí—PÖž€€>Ÿêï@þ`bbbß¾}óóóþ³î(-- …Ä¥³n5ÍÇ#""Ö6*ÿ033½~t;00ÐÙÙ)‰üf}qýúu™L¶”n)))k•߸zõª¿CpƒL&ów˜õE~~¾“ïo1òu‹Á¬[ †|`Ýb0äcåºU«Õ……… ááá[·n½té’ÃBÜ»wB¡øÜ-f |›s£ÑX^^ž˜˜H£Ñø|~MMÏßr=™óp…º}ðàAFFFXXXKKËàààž={ ärùc9Q*•L&s‰ ‘‘‘+‹ÐWÌÎÿuôh‡à )b±xhhèâÅ‹ —/_>xð §ÊËÎWžœyè |”ÑÑÑÑÑQ¸ûöí{ë­·-ååå/½ôÒ² Q(®¬%½½½÷ïßw{K¯7Ëdƒ{öü36¶ŒÍ.c³÷¯A<---þMôõ DFF —}}}ñññ>|ô_c.‹H$‰DŽ–ê6&&æÚµkŽƒÁðÛo¿¡²N§+))a0\.÷Àf³BJ¥€N§;v BÈ`0ÑÑѨUGGGzz:F‹‰‰©­­…&Ôµ9„Ðb±”——³X¬¨¨¨òòr‹Å‚štwwÇÅÅýüóÏK÷ÂU·üL6(~Ëå–ÅÆþ=6¶ŒÍÞþ-›“Õã¥n €ÉdÖÖÖ655%$$DDDTUUAÅbñÞ½{QMƒÁ@£Ñ††† „ííí›7o ILLljj‚Úl¶'N‚ðððìììžž‘sThkkÛ´iSTT”X,žŸŸwk„Ž”c9>>þí·ßžuí…ëØ9Í'4Édr2’nºíŲøF·: Õj=U(**Úµk×øøøÈÈHjjªD"„B¡N§;uêàÁƒŽéÐëõÁÁÁ{÷”J¥Fã”/§æÂcÇŽ½ùæ›###™™™‡FMrrrzzzŒFãÒ!tk±XÛÛÿS\\€Ë-‹?@Èu}ê¶  @¯×Ÿ>}ŸŸ¯×ëëêê³³³}}} cqqB(•JSRRìv»Ñh 9yòäôôtCCC`` Ñh¬««c±X­­­jµúÇŒuÕíË/¿<66600Àãñ$‰[#„pnnîÔ©S(<Dz\.çr¹!!!»wïþòË/U*Ñ OcçÚßÁÁÁ’’’¨¨(µZíh'ã<¼rå ‹Å:xð R©\v  |£[­V ÐétnïZ,*•J8immåñx¨Ã½½½¨šŽéXXX¸{÷®Ñh´Ùl}}}®\›CÁôô4ªpåÊ•ôôtÔdddÄ›ttw÷œ?ß/Ky¼ 6»,.Î\×§nÑG(J…cY¡PX­Ö˜˜˜Ÿ~ú Bøê«¯~ñÅB­VôÕW_ét:»Ýn0l6[JJÊ™3g·gÏžuÕ-‘É––çÖ¸t´V«u``àÈ‘#©©©T*µ¹¹Ù=ÑÐl6755mÛ¶-##£®®Î`08y&é<œššª©©‰ÍÍÍ•Ëå6›méBwºuó=Çe¡ÓéÑÑÑwîÜÙ±caüå—_>ú裾¾>­Vk³Ù’’’ÇãMNN¢2‡Ã¹ú {ï½÷ŒFcFF†Ûçº6W©Tl6›¸|ê©§PA xÓ™ìnG‡‚¸´ZmKTæpʼñ¹¨To-7lØþ— Ç2€J¥¾ñÆ­­­iiiÝÝÝès˜N§÷öö~óÍ7555™™™Ÿ~úiNNŽR©LOO'|¦¥¥¹>ˆÏ磂@ ÆÑ­Ñ“ÉÔÑÑ!‰²²²²²²ªªªjjj:TXX<¢»»»¨¨(''çĉ[·nu{œKÒyÈáp$Ieee[[ÛgŸ}&‹ÑrÚí³<±Ý^{íµ¯¿þzûöíDB¥RéââbXXXPP•JU*•ÉÉÉ€ññq.—‹êx<¾6›Íùùù2™,77waa¡±±ÑµŽks&“ÙÛÛËãñsss¿ÿþ;²»W^|qcd$½«ëÎì¬188Ðb±.Q¹®®ÄŸ«áúõëµµ>ð#‰ŠŠŠ’““wî܉V¿f³Ùn·Ÿ?Þb±œ;w.77W£Ñp¹Üááá-[¶ V·oßvu¥P(6oÞ CóÕ“Ñaaa¡@ @(Ê+¯¼R__îz;DTTTrròµk×¶lÙÂçóétºÛGwÞ¿ÿöíÛ“““ÙÙÙ4ÍS58}"{y.¥Ñh FQQQÿðð°D"tvv¢»………»víR*•·nÝJII©®®F ´¨ Êh-Ö?:ŽB¡tuu™L¦C‡†††œÖ'NÍ!„Ÿ|ò‰P(T©TÃÃÃYYYüñc ûÛ_>z´#5µŠÍÞïiµì¥ÏÕàý:Ù5Že«ÕÊb±¢££Ñ-³ÙzáÂ…™™™úúúÐÐP³Ùüù石X¬¶¶¶ééé®®.·ûÛ^xA¡P òùüêêj·Fèy[RR²iÓ¦ÎÎÎñññþþþìììýûÿȤ§±s\ߺu«´´”Éd¾ûî»7oÞtMéæ¡Íf“Ë寿þ:—Ë­®®žššZv¸¡Ï“!„*•J(r8œ 6lÛ¶­½½¸¥Õj‹‹‹ ›Í.++#Îñœ:¼¸¸¸sçÎððpd<~üøÓO?÷Ýwß°X¬eó¥×ëßyç:Î`0Þÿ}“É´2Ý"l6ûã••­Ï>{˜Ãq°—>Wƒ¯t !üàƒh4š^¯wtž””,._¾ !´X,GŽILL ß¾}û?üàªÛÓ§Ooܸ‘ÉdŠÅb³ÙìÖ=Ÿ'[­V‰D’––F£Ñ***P}ènìœæN§;~üxRR’ã±¹æá… ²³³›››<°3®º¥ÀGÿ?G´Xzr~Ç—œœÌb±œìZäòÑK—þ}õê¯èO›ÝÕêüÙñÈd2ô6rõ®*++U*Uss³÷MîÝ»Ççó‰§;].a\ìv»Ýn \áÎn°¸¸èå&Îô;>Çx’; aaÁyy™yy™:©³søâÅ›SSsþÊ[æççÕjõ÷ßîÜ9ÇâK–Ø—’…ˆÖ-X·KA§ÿ­¸xGqñŽå«®nܸ‘——÷á‡>ÿüó«ñQZZê³ö`ÝþÕxî¹çЋÍÇ…x½‰`±X'OžtªãÖˆY{H¿ðÀ`ž@°n1òu‹Á¬[ †|¸9—B/Ö> ‚ø& ƒP*•Ï<óŒ£ÅY·¡¡¡333ƒa £ò %$$ÄßQü.—K¥Rñ‹Œ+Noõœ¿/…Á`Ö?x‹Á¬[ †|`Ýb0äëƒ!ÿÚq‘ÈØ'‰IEND®B`‚././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection__coll__graph.0000644000372000001440000002556712502417165033247 0ustar robertousers‰PNG  IHDRCÝ®J‡×bKGDÿÿÿ ½§“ IDATxœíÝi@×ú0ð²° È&‹P+›µ^õV«ˆ"ÚÚ ŠQܝеëZ\ªÕ¢€ 굨€¸+ ×ê+jŠÒÊŽJ@ `$d›÷Ãüonš „Lžß§““É™ç$y˜3's†a æ´T@ “ Èdˆ2" H?¨ªªZ¶lÇSU4@ݹººŸL&K¾X™™™øNByyyÒ}okk+**âp8"‘èöíÛx¥L&·÷Ç´±±ÑÖÖÖÓÓO- Ü™™‰—_¾|))»¸¸0™L¼œ““ãååÕ}Qø‘µ÷VKöÛ›™¬0Bù^ão‹Ì§ ÓY“'OJZ>uê”ÚeòGÎx"„¨TªL!D&“233ëëëoÞ¼‚211ÉËËËÏÏ·µµ7nÜÝ»wµ´´ÊÊʼ¼¼$mzzzÊïhРAxÁÅÅåÍ›7TÊ3660`þÇXÚ³gφÞù¦jkkE"‘““þÐÙÙY²¥µµµtßi4Ú«W¯üüü†~üøq…­Ë|’h-ZôâÅ‹¥K—â5•••’ð\]]ýýýñrEE…••>ï=iÒ¤òòòžè‹ÂLa›ªÒÉ]\\ä+e:[ZZêáá!yÖÍÍ­gBîA=òÙfee9sf̘1ø˜™ËåŠÅâ³gϲX¬ùóçO›6ÅbÙØØ<þ\òª/^È7…ÿ)E½zõ ÷Û«T($$dëÖ­Ò3Õ---»víòóóë|S–––d2¹¬¬ XZZjccƒ—e¾:\.wÖ¬Yt:½  àðáÃ&ïõë×qqq'N\½z5^cmm]QQ—Ÿ={¶}ûv¼Œ(ð¿ùùù=Ôù¬K=êiŒP’®Òd:koo/ýõ+**Rz´=­G2yìØ±B¡pëÖ­aaax ‰DòõõÍÈÈ`³Ù|>ŸJ¥êééEDDÐéôìììšššk×®­]»V¾©•+W–””<~üxýúõ¡¡¡íU¾ÿ?i—)oÞ¼ùÝ»w>>>×®]+..ÎÊÊ9r¤ä¸§°}‡#•J ŠŒŒ,///,,ܸq#>Ð×ÖÖÆçói4—ËŽŽF577ËlSWWWów!±X±bÅŠÓ§Oß¼yóâÅ‹¡°°° 6àãÌåË—WVVâ-¬[·®²²’Á`øùù:t¨'ú¢ð#S¸¥ªt¡L¯?hÙ²ekÖ¬¹qãFCCCnnnLLŒ¦ÌxIŽ í•—,Y¢««Ëf³¥wrr¢Ñh...ÙÙÙ†ñùü­[·:88Œ=?9‘9ONNN¶··733[±b—ËUX‰ýý,HºŒa‡ÃY½zµ‡‡‡žžž»»û¶mÛZ[[Ûk_ Œ3ÆÀÀ@¦‹fjjjeeµjÕ*|§ û¾oß¾þýû8ððáÃÁÁÁ9Oþõ×_?ûì3>ŸaXVV–••‹ÅâñxQQQÖÖÖFFFÁÁÁx#l6{Þ¼y&&&¦¦¦‹-jii顾ÈdëåódLQ„íõZæSé¬H$Ú¿¿“““‘‘‘ŸŸ_vv¶¹¹ù÷ާΓ?&“;cýúõ³gÏîÒKd2Pæa•G‰M©\éKïg²²\¼xñÙ³g’‡çÎóòòúà«úT&+tÍãñÊÊÊRRR.\¨ôÆè #44´   µµ5??Ó¦M /êË”×ï¿ÿîïï¿téÒñãÇw§~ýú-^¼¸3•Jl_M©/*±fÍšÖÖÖéÓ§×ÕÕ9::FDD¨Ýû©àî?ÜË|%~ð™ä¾Ͼs÷Ÿ¾õ !àã@&@Éd2D `îúÈ‘#½ðxb*•D&«ÛµAÊóäÉ%¶Æãñºzóú6–X»¿†œþ–É666d2Yíæßû“¯i4˦¦Ü¶¶rUÇ¢2vvvJiGGG§®®NþZ×ö›´ê³uš{z m€âÂ(‰DÒÖÖî}} ~sR–£GïlÚ”…7nðÎ3?ùDÁ=h€Ò‰øbÆ¿ß=MfŠ˜nJÈõ!$-MA&+ ‹ÕòÙg›E"1™¬…Z¶Ìgåʉºº4UÇEd•wÞ?ˆ}ÝR'ÀÄI‹ôÙ\ËË:ZG`zRÑú÷×÷óB¡E"±H$>|øÖçŸo9{ö1ü­ì ¬î…ˆ¿nüPÚòމ1„Â0ÍA&+SPÐ?„B1^ ÅMMÜï¿?=yò¾§O«T‘ðÞ ïn«Ê þ³®°aÿ;IÒ" f`h­¹# ]+“P(öòÚÌbµHWâG退a[¶ø÷ﯯªØ£éïžÄ3…mb±ðoß[ yospò3QUl*Çde¢P´¾ûn$•J–® E†]¸ðlÔ¨mÉÉwD"±ªÂSkµŒ–ÌࢇûÞð[E2iŒ¢èi}2ÁH%õÉJ6cÆp@Á¯ ¨¥…·ysÖO?]èý¨Ô«˜{iþ«Æ2.#$7ˆÔ¢œýú“iýeÖèÎ÷WWkWW+…·Ž¡P´ôõi'ªßÝÞTÎØAÇù«þSüó’Xˆ þVsçºpÉÊúOù›UITjM‹Bc?fý@’‰$óÖ’‰“®¹{ߺÇXïƒLV>ÿa2÷s#‘H#F8^½º.é—3ß}Ž$2IKê’X’rï*dr06Ö›<ÙƒBùß¼—qMMS{ÿVt†J¯5’i$mc²åÿ’YK‹4hjÕÆÕ@&÷ˆÀÀÏE"‘–‰LÖŠ ¼uk F ?Êçwê¾…®.Ïmô;èìŸæj쨣E%‘È$»/i†ä¿˜è “{„··«‘‘®¾¾öo¿-3矆†:'N,()©]³æŒªCSWfÕ?K©³Án€—¾õÛcƒþ³&Â\LUZŸW†ô”§O«ÌÍ mmÿw­B~~iPPüºu_/Y2^uq©¥êÿ×|uYÉP‹¬°‘TbbTý¸Ùf¤¡ ë; “{ÕéÓùtú™””__o B±_·e‡ÿ5`˜ÁÄÝŽ²×à¿àéUÁÁ£ÂÃÇ,_žVTÄTu,j£(£^Ïœ:~«=¤qà˜ÜÛD"ñܹɯ^Õ^¾¼ÊÌÌ@Õá¨LŒÚØBcåß›H “U ¹™÷Í7úõÓ={ö_4|AÀxE uŽ_PZú¦²²@&«†½½irò¼¬¬‚øø†ÍæŽ;mÚ¶6ªcévíÚ5cÆŒªª*ƒ1lذµk×#„¦L™’››ûìÙ3I™Ãá„„„øøø”––2 ˜˜é9ŽÂ] „‚ƒƒÙlvrr2BhÖ¬Yl6;11!T__¯0‡£­­Àd2=J¡P8ŽÂJ6›M£Ñ"""Þ¼y“––†z÷î]RR’͵k×êêêrrrœñd”ßQ'ß%È侨¢¢ÞÝ}Êiª¤Opqqa2™x9''ÇËË ONƒa˜t™Ïç“ÉäÂÂB|ãÌÌLgggé Úƒ*((À[)+ŒÅbQ©Ô½{÷666ŠÅâææf‘H¤°²­­­¨¨ˆÃáˆD¢Û·oãmzxxœêáÃ;»Õqq7UˆêéèèH"ŒŒðääóùØ3/¿~ý!Äårñ2 é Ú#ÉØöÊò1`vïÞ½™3gêëë;öÊ•+øKVfgg3ÆËËkÞ¼yx›ºººÏŸ?—€,ÚÛQgÀyr…OeïÜyY§²e˜™™IR«±±1??¯§R©’mð²¥¥%™L.++Ã+KKKmllä7VJ \.W,Ÿ={–ÅbÍŸ?Ú´i,«½ÊY³fÑéô‚‚‚Çã ÚÛÛ¿xñBÒ~QQQÇý Èä¾K2•ýò%¡¦²¹¬NÏâ „ X·n]ee%ƒÁðóó;tèP{[R©Ô   ÈÈÈòòòÂÂÂ7†„„t;^Å1H$__ߌŒ 6›Íçó©TªžžžÂʶ¶6>ŸO£Ñ¸\ntt4B¨¹¹yÙ²ekÖ¬¹qãFCCCnnnLL >ãÕùÎÊê䱨„P( M1bË»wlUÇ¢œš¶4_ÆË³u ›Íž7ož‰‰‰©©é¢E‹ZZZð3þ¬tÃ0‹fjjjeeµjÕ*.—+³BèC£kù0 KOOwrr¢Ñh...ÙÙÙøKVîÛ·¯ÿþ<|øppp°………H$Ú¿¿“““‘‘‘ŸŸ_vv¶¹¹y{;ê XAÑ×á710ÐÉÈX¦î7á7‹²çýE¦‘¦%¦êiôxðÒ¥Küì³Ïð‡Û¶m{úôéG7¨Ñï¦ZÀ¯Ê./¯‹ŠJWu,Ý"a·Ö– ZE~œ5<B #44´   µµ5??Ó¦M ,èV‹M¹WeWÝ}w[¿E¤¬R@&™‘‘Þ‰ ªªX+W*ç#¬nîú ç)&ÃæÃ-ï[ “ ÎÉÉâÈ‘ðk×þøå—îNesY«JÍ\õ¾Ü $úÈdâç²÷îíÖT¶ˆ/Ή*%‘I÷8hQ!ûÈd0oÞ˜  DE¥¿~Íú¸ýZÍ*æMÚã¨c¿wôI=õß2ŠN§«úûH$YW×í£_n®mëj8R‰ñô&Uqzü}íšŠŠŠQ£FýðêtÖÇ÷ï߯ê(zdr— 8000PÕQ€ÎÂ4㊠8O€ “ Èdˆ2"€LV?%%%$’2¯Í¨®®ž={ö'Ÿ|b``0bĈ¬¬,%6ÞUJLÖt C‡ÕÓÓKOOôèÑwß}|ýúõÞŒ¡¬¬ÌÌÌ /ÿøã½¹wb€_¡4]tt´··wrr2þÐÍÍ­¦¦fïÞ½“'OîµÄbqCC^633‹íµ]“{‰DJIIquu577MMMupp022Ú´iB(22rþüùø–GOOïéÓ§¡‹/zzzêèè8::¦¦¦"„Äbq\\œ«««¡¡áèÑ£óòò¤Gžø@4;;{ðàÁ‘‘‘mmm +ÑßG­Ò匌Œ•+WJ}ôèQ¼ÜÔÔ4wî\333[[Û¨¨(‡÷îäÉ“®®®ýû÷ß½{·¤Ëò•€N§[ZZZXXÐét@  £££íììÌÍÍçÌ™ÓÔÔ„5jBhÀ€2±u~ï®ÖìšÀÀÀÀÀÀn† f³Ùø±nÖ¬Yl6;11!T__ûömSSS@€aXZZš»»»X,æp8ÚÚÚ L&óèÑ£ …Ãá$&&ZXXdffVWW_¾|ÙÖÖ!T\\ŒpxÁ××÷Õ«WùùùÎÎÎ111 +1 kjjJJJÂÓ”B,«½Ž„„„øøø”––2 ¼)„ÐÌ™3“’’B íUîÚµkÆŒUUU cذak׮ݳg»»;ƒÁøã?FŽ%é¾Gérç÷ÞôôtMøž¿‡ÊÕùL.((À0ŒÏçË”‹‹‹…Bá€nݺ…aØÔ©Sccc1 c±XT*uïÞ½b±¸¹¹Y$¹»»?~\Òì‰'ä3™Á`àϦ§§;;;+¬l/N‹…jllTø,ŸÏ'“É………øÃÌÌL¼)„P^^žtÚ«tqqa2™øËsrr¼¼¼œ™™‰×¼|ù/+Ìä.í½’É0ºî)†††!*•*SF‘É䀀€ÌÌÌúúú›7o†„„ „LLLòòòòóómmmÇw÷î]--­²²2///I›žžžò;4h^pqqyóæM•òLLL,--_¾|)]ùøñã#F´¶¶ÖÖÖŠD"'''¼ÞÙÙYÒ”µµµtÚ«¬¨¨°²²"‘H$iÒ¤Iååå•••’Ø\]]ýýýÛ‹­«{×pɪ˜••uæÌ™1cÆàcf.—+‹Ïž=Ëb±æÏŸ?mÚ4‹eccóüùsÉ«^¼x!ß~C½zõ ÿŠ·W©Ð7ß|óóÏ?cR'§¥¥ ===KKK2™\VV†×—––ÚØØàe--ßùJ333É1³±±1??ßÚÚº¢¢öÙ³gÛ·oo/°®î]ÃÁ;¢cÇŽ …[·n ÃkH$’¯¯oFF›ÍæóùT*UOO/""‚N§ggg×ÔÔ\»vmíÚµòM­\¹²¤¤äñãÇëׯ m¯òýû÷’ jéòöíÛoß¾öàÁƒ±eË–ƒâ F¥Rƒ‚‚"##ËËË 7n܈:/ `ݺu••• ÃÏÏïСCaaa6l(,,,,,\¾|yee¥dc‡#ýÚîï]³¨tl¯~:ž,9µW^²d‰®®.›Í–¼*==ÝÉɉF£¹¸¸dggcÆçó·nÝêàà```0zôèS§N!¹óäääd{{{33³+Vp¹\…•Xû³J†UTTÌœ9ÓÚÚÚÐÐðÿøÇ… $O±X¬°°0SSS++«U«VáM)ì‘ÂJ6›=oÞ<SSÓE‹µ´´ðx¼¨¨(kkk##£àà`ü] Œ3ÆÀÀ@&¶Îï½rž wÉíšY³f!„Μ9Óý¦6lØPQQqòäÉ襤¤dРA’Læa•šìÌ™3AAA„CàÊàñxÕÕÕ)))§OŸVu,€ àd2@OŸV½yÓˆ¢RÉOTøÉ?_@£‘BèìÙÇb1œp©ÈdM'‰Ï{Ìçÿß”u]]ó£Geª |ÈdM÷ðaIc#WòJ%ge¨0ðq “5]ff•ú¿¯@ ÊÎ.ˆö«2áA&k4>_xáÂ3™¼mnæÝ¹ó—ªB2Y£åæq¹|™J2™œ™ l5™¬Ñ23ŸÈß§R(]¹ò¼µU6ÃA_™¬¹8œ¶7^ˆD N‰ÑÍ› îÈ ú,ÈdÍ•“óBòã“<˜ÁV/Éš+?¿!ňÅX~>üª¬N`…æjii«¯ÿßÍâGÞöÓO'ºáuui†* t¬jÔ\úúÚúúÚÒ5ææ†öö¦ªŠtŒ® Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€ “ Èdˆ2"€L€H†©:†^òÉ'ŸTVVª:оK[ÛN ¨‹[UHE£Ñrss¿øâ U¢EÕôžÊÊÊÀÀ@777UÔÒ–-[Þ¾}«ê(Ú¥A™Œrss?~¼ª£jiË–-ª¡#pž @&@Éd2D™Ü{Þ¾}ëà7® IDATíí­¬Ö¼½½e¦Råkº´wo)ß}÷ÝÎ;›šš”mçÃàr¹ñññÁÁÁ“'O =vìŸÏWî.I³æ®5™ApppÇÛÄÅÅYYY‰Åâׯ_gdd,Z´(%%ÅÀÀ 7Ã8xð`mmíÖ­[ÍÍÍ«ªª<ØÜÜ©Ä$˜Læ’%K²³³{¢ñ^ÇdMadd´hÑ¢Ž·166îß¿¿™™ÙСCúé'++«³gÏör÷îÝ[¸pá AƒŒ===###ïß¿¯Ü$Äb1›Íî¡Æ{dòßx{{_½z5<<|úôé§NºqãFppðW_}•’’‚úõ×_wïÞoÉårýüüŠ‹‹B<˜?¾¯¯ïìÙ³oܸÂ0,+++<<|êÔ©Ë–-{úô©ôxþÝ¿?,,Ìßßÿ×_ +ÑßÇŠ7z{{ß¼y3<<ü›o¾ùí·ß¤_ûàÁƒ™3g677#„nݺÆãñä[ ‘Hß|óM~~>þÃáÄÆÆ~ûí·ñññøˆ·ã· !ôðáÃ… úùù͘1ãÔ©S2]!¤§§wþüyI‚yzz¦§§·ƒH$:vìXPPÐôéÓwîÜÉáp¤»€aX||ü‚ Þ¿ … þþþþþþ B¡ð_ÿúB(  3oi™,ëÉ“'ñññ‹-JJJzøðáÑ£G—.]šššÊf³Çwÿþ}‘H„ºÿ¾•••³³3Ç‹‰‰™>}úo¿ý¶{÷nwùòåÿûß ,HMM3gÎÎ;åwtþüù;wîØ±ã÷ßÇ¿å +£¢¢ðg¥ËtïÞ½C‡-^¼811Ï[Ü?ÿùÏáÇ:t¨±±ñСC6lÐÑÑQØ‚­­muu5^>pà@]]]BB®]»?~|úôé¾]­­­›7o4hPZZÚÒ¥K“’’äO¼åƒ¤Óé3gΤÓééééµµµ’åc8wîÜ;wvîܹÿþׯ_§¥¥I6Æ0,11±  `ß¾}FFF¡sçÎ1™ÌÄÄÄŸþ¹  àرc‡Feffvò-íË “eéééùúú"„fÏž­§§ççç‡jnnöðð P( !tóæM___‰$0 ãr¹4ÍÏÏïâÅ‹ÚÚÚK–,;v¬©©éÈ‘#,X ¿£¥K—ÚÚÚººº.X° ''§½J}}ý¯¾ú VºüAÓ§O700˜>>íÅ yÇìííííí%-ÿõ×_^^^iiik×®Åkjjjf̘!Ù@__¿ƒ¾«8&wÍøñãïÞ½ûŸÿügÈ!æææ¡¶¶6±XsñâÅ©S§®_¿¾¹¹ÙÌ̬´´TòªŠŠ ù¦Þ¼yƒ^¿~mjjÚA¥BÒ¿9UUU‘ÉdüЇ#‘Hí½öÝ»wYYYÇLJ— aváÂ…Q£F!„LLL´´´˜L&þTuu5žkkk‹‰‰ùî»ïŽ9òý÷ß+ÜF&H ömÛVVV&yvĈøéŒÂLMMkjjðš’’éÑõŽ;~øá‡ÜÜܧOŸâ5FFFiiiyyyyyy/^ì ïê2¹k<==E"щ'ðñ$BˆD"Ñéô;wî´´´ …¢­­=eÊ”øøøû÷ï³X¬G9rD¾©¸¸¸·oßþùçŸÉÉÉ“&Mj¯²¥¥åòåËø³Òe??¿ƒ>|øÉdlß¾Ý××—J¥~° †íÞ½; `Ó¦MOž|~nìØ±IIIµµµeeekÖ¬9þ<¾%—Ëý`_ú>]w––Ö—_~yýúõ/¿ü¯¡ÑhëÖ­KLL|÷îµµutt4F ‰D‡jjjÂÏʶmÛ&ÓÔĉW¯^Íãñ|||BBBð±¢L%B¨©©iïÞ½øé±tyΜ9ºººñññµµµ¦¦¦>>>¡¡¡éÂùóç›šš‚ƒƒ)ʪU«öíÛ7dÈCCC„ÐòåËñm,,,<==9"‚®\¹2..nÉ’%T*u„ xl300Xºté¶mÛtuugÏžíãã³fÍš¸¸¸Ž_µfÍšÔÔÔ¤¤¤·oßš˜˜x{{Ï;·½H$Ç£Óé<oÔ¨Q‹/–i ?Í>uêÔܹsçÏŸ·páB‰ôå—_.^¼˜B¡ 2dÆŒW®\éÌ[×—iÐH$Rttt÷W5&''×ÔÔlܸ±ó/yûömhhh^^žÂ‡T‚¾ÃÛÛ;==¤ôA0ºî>ŸÏd2¯^½úõ×_«:þ2¹ ŠŠŠ/^~µ&Œ® Èdˆ2"€L€ “ Èdˆ2"€L€4èÊ …‚ÿ7>NFFFŸýÇŽtµfnn®ôÅÃt ™Lž:uªª£h—“ 08O€ “ Èdˆ2"øÿ32¢( JIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/tab_b.png0000644000372000001440000000025112502417165021732 0ustar robertousers‰PNG  IHDR$ÇÇ[pIDATxíÝMƒ EáÇ»ÐÔ¸¸u`âÀ´V0РÆ}:t]DÁ²s¿ä®‚¶ýËu¥ø|’xùî½À>ÿ1»& mÄ8ÜSÙÑxÜLÀUûšÞ²ÄiE–ŠåOs„¢’nxàÒêÓKN²~jIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InitCommandOption__inherit__graph.png0000644000372000001440000001360312502417165032600 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“8IDATxœíÝyXgð7‚¢åZTˆVjjÝG]äY¥"‚H·–j#—H*°]Q+Á•G‘²ÔŠÛ§}¶µ9´ ( €•zP¨ÅT+ËåÅ¡RB.rÍþ1Ý4&! 3„þ>OŸ>ï¼¼™ùÍ›og&ÔP0 CŒ0*Ù€?È ä rˆ@'»tòäɃ’]ÅXæêêúÅ_[…ôÏ›k×®­ªªrww'·Œ±êñãÇÕÕÕ¤¿ËäÏBîîîdW16]\ŸB@Î g€3@ÈB555Q(”a\¡P(är¹¯¿þº¥¥åÂ… ÷îÝ+—ËI©d”€œ ¿¾¾¾ ÔÔÔ¤¤¤ÔÖÖîܹ377×ÛÛ[¡PèßÒÒÂd2ñ¶••ÕŽ;,– £â¾Æ“””dccséÒ%†š5kÖŠ+ØlöáÇ#""´Ç+•Ê®®.¼Íd2÷íÛGh¹„0šã…B9tè«««Í¾}û²³³g̘1qâÄÝ»w#„bbbÂÃÃñ‘ÀÜÜüÖ­[¡ÒÒÒ¹sçŽ7ÎÙÙ9;;!¤T*8àêêjiiéîî^QQ¡~žÂO[%%%¯¼òÊ”)Sbbbúûûuv¢Ïqê휜œ„„ŸÏ`0>ýôÓîîn¥RÙ××§P(æÌ™óÍ7ߨV{äÈíœñx<ü§ùùù,Kgç@u”³ªª*&“©gýxª-•Ji4Ú;wðþ¢¢"|£¡ŠŠ õ}×?o£$gFsÞDYZZ"„ †F!D£ÑV¯^]TTôË/¿\¼x1$$!4iÒ¤ŠŠŠêêjGGÇ7ÞxãÚµkT*µ¥¥eÞ¼yªuÎ;W{C3gÎijgÏnmmÕÓ©ÍÊÊÊÖÖ¶®®N£¿®®nþüù†¯êéÓ§ …ÂÅÅ_d±Xª‘öööêûnŒ)gúq8œâââ‚‚‚Å‹ãgC±X¬T*Oœ8ÁçóÃÃÃßzë->ŸïààpûömÕ«îÞ½«½*ü ‚jhhÀßÔ:u IJJRÿt) SRR|}} _ÕÔ©Si4ZKK ¾ØÜÜìàà€·©Tã{׌¯â,Y²D.—'%%…††â= ÅÇǧ°°°··W*•2 ssó7r¹Ü’’’'Ož”••ýóŸÿÔ^Õ–-[šššjjjâãã×­[7PçóçÏñ‹EvBB³gϼ¼¼ÊÊÊ‹‹‹ÝÜÜ¢££õ¬_ ¨×À`0bbbîß¿çÎ]»váicEö‰{×gªk‘ÚQQQfff½½½ªWåç绸¸˜˜˜Ìž=»¤¤Ã0©Tš””4cÆ ww÷cÇŽ!­ë³ÌÌÌiÓ¦1™ÌÍ›7‹ÅbØ‹×ìêm ÃÁöíÛÙl¶¹¹ùœ9s’““E"Ñ@ë—Éd‹/¶°°ÐXŸÏ µ¶¶¶³³Û¶m¾Ñö} £äúŒü Ì™!âãッƒ‡ô|h,êé|9ø*’œ‘û´‰¤½½ýСCÇ'» Ã¹>ûá‡,X°qãÆ¥K—þžõL˜0!22ÒÎa\ÿÁ¨xn!ÏÓŽüyZÒßå1r<£ä rˆ9D÷5ZZZÒÓÓÉ®blª­­%»„Ð(¸ƒ÷ᇒ=CB±²ò¥Ó'“]Æ899‘ý&cäß×0.ÕÕÍ«WذaÉǯ&»c×gCS\\‹ÿ[.W’]‹1œ T*/*º…zþ\tõêÉ.ǘ@Άà»ïêE¢~„F-*××Fr6……µ4!$—+Ïã‰ÅR²+23C …ýçÏß‘Ë}J¶¿_^^þ3¹%È™¡ÔC†¢R)……?’Xqœª°ðGõÿÓS.WVTÔ÷öŠI,Ɉ@Î Âç ¯^mP(^¸—aØÙ³<²J2.3ƒœ>}[»ð'àÔiÈ™ANž¬ÑþʼnR‰UW7?}úœ”’Œ älpíí=µµ•J¿ £Ñ¨¥¥:u@älp¥¥uýX.W ÛÁŠç‚F9‘Hjg7Aµ(ôÇ ÓýOt,þU¼áÏk ™½ý¶´´°U«æ >üœ7 g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î!HýöOƒ\¿~ÝÄÄ„ìyú©©•jNv¿ár¹d¿Eƒ3‚¿OÛÖÖ&•J È.d4úì³Ïzô(++«¤¤„Ëå"„ZZZ˜L¦öx++«;v u+}}} ,¨©©III©­­Ý¹sgnn®···B¡Ð9^}ë/·Å1‚ìxƒËÏÏ7¤N++«êêjÕâ•+Wœœœ0 kllÆÝŒ]²d‰\.Wõ‚éÓ§gddè?¼[ׯáp8ÎÈ­¸ŒãÙ„ ¾þúë®®.|ÑÃÃãáÇ¡E‹!„lmmÑÿÏ\—.]rrrúæ›oTg1 …’››ëêê:yòäýû÷#„0 KKK{õÕW'L˜°lÙ²Ó§Oãƒsrrh4šj»ãÇçr¹999øÊKJJ^yå•)S¦ÄÄÄô÷÷koUOOÏ{ï½Çd2cccñS¼vcÙAœÇ³óçÏ;88˜ššz{{ÿûßÿ~ðàÞ¯~DÁÛ+W®¼|ùr]]ª!ôî»ïvwwgdd „ººº222ÊÊÊ:;;ËËËY,B¨»»!ÔÙÙ©±éÊÊÊ©S§â+÷ññihh¨®®f±X‰‰‰Ú[ÇÛ!!!^^^ÍÍÍ<Íf'&&ê,cн6–ãÙØÉ†ar¹¼ºº:))‰ÍfÓh´ÜÜ\LWÎx<žF?B¨¢¢Ã0©TŠjlld³ÙøËqÇŽÓ“³ªª*&“©¾r¼l‹¥3gR©”F£Ý¹sï/**b±X:Ët—%gcä¼) óòòBnnn»wïæñxñññqqq:Ïž=[»ÓÞÞ!Ä`0ðÅææf6›­ú髯¾Š²²²²µµÅ„êêêêæÏŸ·gΜ©ÚJkk«Îž>}ªP(\\\ðE‹¥©QƘ1Fr†aXppðO?ý„/R(”+V t»Aç»H¥¾0Ó¦M»{÷®jñÞ½{x#$$$))IýÓ¥P(LIIñõõÅñƒB¨¡¡¶©S§Òh´––|±¹¹ÙÁÁAgcÆÙ+ ‹õëל9s¦¥¥åûï¿ R CZá|wáÂ…®®®Ë—/'&&â—ð Ïž=óòò*++kll,..vsssppˆŽŽÆ_¸eË–¦¦¦šššøøøuëÖéÜ:ƒÁˆ‰‰¹ÿþ;wvíÚò»öô#ûÄ=8¯ÏärybbâܹsÍÌ̦OŸ¾cDZXŒa˜L&[¼x±……¦ëZ o#µ‹!¼­P(>ÿüs—‰'úúú–””ØØØàÁöíÛÙl¶¹¹ùœ9s’““E"‘j…™™™Ó¦Mc2™›7o‹ÅmÏ燆†Z[[ÛÙÙmÛ¶ /U»ŒA÷ÚX®ÏÆNΆWiii]]jñäÉ“óæÍÓÿ’‘¾U¦“±älŒœ7‡Ç[·nÝÍ›7E"QuuõîÝ»#""È.ʈÍsŽ‹‹‹‰DþþþÎÎÎ7nŒŒŒÔÿ’ & :æ‹‚aÙ5 ¢   `ô×Iеk×"„FÿCípÞD€œ"@Î g€FóyÓÛÛ›ì~¥TR©T%ÙUüê§Ÿ~òð𠻊ÁAÎÜÜÜz`•` åÆ »Y³øÖÖú 'Œ‡‡þ‘s”3‚û£JAAÍÖ­Ç–-sÍÉÙDv-Ʈφ¦¸¸!Ê•+ÿ}þ\Dv-Ær6}ׯ7 „!„¾ýVó)4 älNŸ®ÃŸÂ0ìäɲË1&³!((øQ©ÄBJ%öã;:zÈ®Èh@Î õèQ÷ÏBˆF£ž:u‹Ü’ŒäÌP%%·èôߦK¡Pž8§NCAÎ uâDLöÛíY Ãêë;š›Ÿ‘X’œ¤¾¾£©éþIS…Á :u“¬’Œ äÌ §NÝ41Ñü݉L¦ÈË»AJ=Fr68 ÃNžüQ*Õñéµµuóx‰/Éè@ÎwóæÃövÝ·0àÔi ÈÙàNŸ¾ÅÄ„®ýB¡,.†»ƒ3‚ç5H·tél:ý·?TPPãîîò§?MÆ­­-HªË˜ÀóCfo¿---lÕªydbL༠ˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä rˆ9D€œ"@Î g€3@È ä á…¿ç(•Jóòò$’QñÍ’£ÙÅ‹Ÿ<¿´­ÏôéÓ[ÆÔ’V[‚‚‚Ô£õÂñL.—#„***Hª Œ}ôž%¸>D€œ"@Î g€£.gmmmžžžÃµ6OO϶¶¶—ØVWWWrrr``àÊ•+£¢¢®]»6\% /õ]H$iiiááá~~~QQQ¹¹¹ …b¨+!£.gD²°° Butt¼ýöÛªþÞÞÞˆˆSSÓ={ö¤¥¥-[¶ì_ÿúWMͨþVW‘HY__™žžR^^«T*uŽWßeÕ<Œœ?ô÷îLœ8qÓ¦M!¥RÙÛÛ«ê?|øðŸÿüg.—‹/N›6Ïçççç/\¸œB pôèQ++«Ï>ûŒJ¥"„.\¸aÆsçνùæ›ÚãÕwY5#çeŽgžžžçÎ ó÷÷?vìØ… ‚‚‚Þ|óÍC‡!„¾üòËýû÷ã#Åb±¯¯occ#Bèûï¿÷ññ ¾páBðâââ°°0??¿>øàÖ­[êGoü`^YYúÎ;ï|ùå—2™Lg'zñÈ?ÐYÀÓÓóâÅ‹aaa«V­ÊËËSù÷¿ÿ!´zõj|äÕ«W׬Y£þÚ°°°¸¸8¼-öíÛ÷öÛos8œÔÔT©T:èœ2 ªªêý÷ß÷õõ]³fͱcǪY©Tæåå…††úùùýãÿ¸wï>²¼¼|ýúõxÈpãÆ ,//×9i껬>cíFCõ’çÍÚÚÚÔÔÔM›6eddTUUeeeEGGggg÷öö¾ñÆ•••ø•Aee¥‹Å’H$‰‰‰þþþøíß¿_"‘œ9sæèÑ£ÙÙÙëׯÿä“O´7têÔ©O>ùdïÞ½?üðƒjöµ;­¬¬bccñŸª·5\¿~ý«¯¾ŠŒŒŒ‰D:G®ZµJ}ÒT#º»»?üðÃ7n´¶¶^»v-::šÉdªn^èœIÕ.ãFhïÐÝ× R©çÏŸ÷ððÀ{LLLvîÜyðàÁgÏžÙÛÛïÙ³ÇÄÄ$ @¡P|õÕW===ÎÎΑ‘‘ÉÉÉ«Z¾|ùöíÛ%‰——WHH~×èDõôô|úé§øe™zÛ@¶¶¶¯½öÚš5kΞ=‹²²²JOOOMMݳgX,vrrúøã-Z„Þ²eË¢¢¢ ƲeËð~' ‹èèèääd33³àà`//¯¸¸¸ââbí‘þþþ2™,55µ««ËÅÅe÷îÝø'Gssóôôôǧ¥¥µ··ÛÙÙyyyq8ƒ¿PcÒh4šú.«ŒÄÞ!ï.((–ç‚233ŸúÈÆÆ¦  @Õ3üçM©TÚÑÑqîܹ¿ýíoþr`¤†?g÷îÝ‹ŒŒ\¹rå¼y¿ëÄÇÿÖ[oÒ ô “6RçMðGFÄym3@È ä rˆðÂïh4Bh¤áê‹/Ü×H$gÏž5ð¡rô˜?¾ú8/ä €×g€3@È ä áSØÓ×EÙ:IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SecureAuthOption__coll__graph.png0000644000372000001440000001417512502417165031742 0ustar robertousers‰PNG  IHDRûWl½QbKGDÿÿÿ ½§“2IDATxœíÝ{PçÞð' ®jÅ 2 j½áA)©=žz¤ZQ‚íˆc!X/Œ£àôÔc«\E´A•ZZQRAE©y!€ J8!@.ûþ±§9‘\D»²¡ý}Æ?ž<Ù<Ï“'_÷Ùl6„‚a࣒=ð'IÄ€$b@’1ŒF¾ËØØØG|¿l6{Íš5#Ü)eäß»Q(//¯ &Œp¿·oß^¸pa^^Þ÷KÂ> !´}ûöRºþÓ#kbá8 ’ˆIÄ€$bü“Äçó) öõõq8œ™3gZXXÌ›7ïÀr¹œ”‘诘$bõööÎ;·ªª*99¹ººzçι¹¹ …BëöÍÍÍ /[YYíØ±cû‘sàÏ$11ÑÖÖöúõë4 !4uêÔ¥K—zxxdeemÚ´Is{¥RùòåK¼Ì`0’’’Ft¸ïŒî“(ÊÉ“'ÝÜÜlmm“’’²³³'OžliiùÏþ!…o)‹étúýû÷BEEEžžž¦¦¦...ÙÙÙ!¥RyôèQ777 ‹… òx<õÕ_\.]º4mÚ4&“;00 µ½º©—srrvïÞÇgffÆáprrr´6ååå…²··ÒNOOφ  †³³s||¼T*Åç!77×ÍÍmüøñ‡z§sþGa#!Äår_»MXX˜H$ÊÌÌD…„„ˆD¢ôôt„Ћ/nܸacc#“É0 ËÉÉqwwW*•b±x̘1iiiàĉFFFb±8==Éd´··_¹rÅÙÙ!ÔØØˆ?q¼ØÐÐPYYÉb±öîÝ«µðžžžŒŒ |xª²P(Duuu EE…žöñÍÔË~~~MMMuuux§¡5kÖ…ÂŒŒ „ÐË—/_;½ÁÁÁÁÁÁÃ~5c¸Iª©©Á0lpppH¹±±Q.—ÛÛÛ_¿~ðeË–%%%aÖÝÝmllüõ×_ …B¥RÙÛÛ«P(ÜÝÝO:¥jöôéÓšIª««Ãïår¹,Kk¥®qêJÒíÛ· †žöñUyppF£=|ø¯/((À;Eñx<õçþšÉ%/Iºº!„,,,BÆÆÆCÊ!¶jÕª‚‚‚/^\»v-""!dmmÍãñ*++/^\^^N¥R›››gÍš¥jÓÓÓS³#WWW¼0}úôÖÖV=•𬬬ìííkkk‡Ô×ÖÖΙ3gøM=þ\¡PL™2¿Éb±T[:::ª?wƒe¸IÒ/88¸°°0//oÑ¢Eøš%‘H”Jåùóç»»»£¢¢–/_ÞÝÝíääôàÁÕ£~ûí7ͦðB¨¡¡ÙtUj‘˜˜¨þN­¯¯/999((høMÙÙÙÑh´ææfüfSS“““^¦RGÉk4ò»A4¼ÕMµ'×Z–ËåL&ÓÎÎ.++ ¿K"‘˜ššæççwuu?~ÜÔÔT"‘8p€Éd^¼xQ k=Nòõõmll¼{÷®««ëîÝ»µVb:Ž“0 ûÏþ3mÚ´Å‹744¸»»ÿío“J¥zÚïííÅ^=N ÷óóknnþõ×_ÝÝÝñNu̓pœ4týIÂ0,&&fìØ±"‘Hõ(.—;eÊ“éÓ§_ºt ðÁÁÁÄÄÄÉ“'›››/\¸ðìÙ³šIÊÌÌœ4iƒÁغu«D"ÑZ‰½úª«—1 ‹Åqqqt:ÝÝÝ}ÿþýýýýºÚ—Éd‹-277ÒNwwwdd¤ƒƒÃöíÛñN!Iz»F’†c×®]áááoô! rSOåÛ!°©á#+I£ò̤T*moo?yòä¹sçÈ ø¯Qr4÷ª;wîÌ;wãÆK–,ù#íŒ7ŽÍf§’Àöÿ¬È¹ú–ËåÂ5“ï>±#õí¨Ü'IÄ€$b@’1È9 pýúõžžRºþÓknnvqq!¡ã‘?…5º¾3id4ÞÊ*ˆìQ¼™¸¸¸‘YI8 0ºìÚUpêTyaáÖ Èø>zÀq’>r¹²°ðB¨°°šì±:H’>7nÔ‹D„Ð… 52™ö+ü’¤OAA ~vÿÀ/¿Ô“=ƒIÒ©¿ðÇÈå „F¹p8} I:]»ö›jE“Ë•?ýôk_ß¹C2d$òóï©?V.W\½ªåâ]€ƒ$i×ÓÓÏãÕ+ê§H(.Ü#m@’¤]qqÝ¥RyãÆÿ …}¤ŒÇðA’´;þžR©åœí?<Ь’¤UGÇîÜiÖ<ûaX~~)C2|$-ŠŠji4-3£Tb÷î=à³g- IZ\¸PŸFÒ„a¨¨8-FåwKÞ5*98Xâe¹\)•ÊÌÍǨJZÁµ¯qùrmLÌéööÃdÄÐÁêˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’2ò?)7‡Ã!{ô¡RécÆL${ú˜˜˜Ü¼y“ì—#ÿïL>~üØËËë‹/¾ { £UHHH[[Ù£0Œ¿X:a„àà`²Gþ8NÄ€$b@’1 I€£&I5ÖÖÖ!!!]]]oԟϧ¨ÿôßÓ××ÇápfΜiaa1oÞ¼Èåò‘†á5IBݺuK ´··—””´¶¶nݺ•¬‘ôööÎ;·ªª*99¹ººzçι¹¹ …ö_;innf0xÙÊÊjÇŽ#8Ø‘Bö -,88888øµ›!„U7ËÊÊ,--ߨ£ÆÆF¢žo||¼···\.WÕˆÅâ÷Þ{/##ã]w­ !ÄårßQãÃ7šöIêh4“ÉÄË===6l`0ÎÎÎñññR©TW¥ŠL&ãp8vvvL&“ÃáÈd2„Ð?ü0{öl:îàà””„oI¡PrssÝÜÜÆèÐ!¼2''g÷îÝøÀãÌÌÌ8NNN¾x]ºtiÚ´iL&366v``ÀËË !doo^]Ý´Rk£ÙQ~ƒ}Rmmmoo¯H$ª¯¯_²dIbb"~WDD„ŸŸ_SSS]]‡‡ÇÞ½{µVªï’““W¯^ýôéÓººº÷ßÿË/¿‰D&&&7nlmmÍÉÉAuvvâý®Y³F(fdd „^¾|) B]]]CFXQQagg‡÷ØÐÐPYYÉb±†t­^Ö:rÍ_;3†°OMIR7nÜ8|±¤Ñh>Ä7+((`±XZ+Õ_ÂéÓ§ ¼\RR2kÖ¬G‰Åb…BqãÆ ôûbŠâñxxGx¥®$ݾ}›Á`à½ÔÕÕá•\.wHת²ÖAjíñµ3cI2ˆOK†©±±‘Åb!„úûûÿýïðÁOž}ú®Uô rH£Â¨{Ö}ûvSHÈÿ>¾]´È•¤q4¸à5._®‰9ÝÞ~˜ì:XÝ1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b@’1 I€$@ H $ ’ˆIÄ€$b¼ò7ÝJKKù|>YC1LŠBÇ'{ '00ð½÷ÞûßmL‘ü±@0\aaa¯„Gý>¹\¾gÏž%K–460jìÛ·O.—«×Àq $ ’ˆIÄ0¬$µµµùúúÕšD"IMM [ºtéºuë²²²‰j|8Μ9ãëë{öìÙ7z”¯¯o[[›f½T*MKK‹ŠŠZ¶lYLLLnn®úÏÏéAì¬êbXI"Ö·ß~ÛØØ˜˜˜Èår***ÒÒÒF¬w ÃJKK™L&ÇÓ¿¥@ øøãõoÓßßÏf³ëëëÙlöñãÇ#""JJJâããñWÕߦ¹¹yXXØ[<…7ògNÒÍ›77oÞìêêjeeåééQ1b½·´´<}ú4!!Ïç·¶¶êÙR©TŠD"ý­9sÆÊÊê›o¾™?¾³³³··wZZZGGGqqñkÛ´´´ŒŽŽ~»g1|oœ$__ßâââõëׯX±âìÙ³W¯^ ûè£Nž<‰úî»ï:„o)‘H‚‚‚B·nÝŠŠŠ ¿zõ*BðÂÂÂõë×/[¶ìóÏ?¿ÿ¾úß!WTTDFF®\¹ò»ï¾“ÉdZ+Ñ«{oõ2N¿xñ¢jB===¹\.^–Ëåiii+W®\¹reZZš\.W(YYY¡¡¡+V¬8xð X,ÖÕ2^¨©© ýõ×_5›Â·/--9sæœ9s&NœXZZª9C­ZµJõôïÝ»±|ùòÜÜ\¼¦¤¤ä“O>¡Rÿ÷z™šš®]»¶¤¤Dë´¨·©Þ©X,NJJúøãƒƒƒSSSñåÞ××÷ÚµkëׯÿÇ?þñý÷ß¿i$po³Oª®®NMMŽŽÎÈȸ}ûö‰'¶lÙ’-‰/^\QQ¯ß,K*•îÝ»wÅŠßÿ}ddä¡C‡¤Ré•+WΜ9³iÓ¦ìììO>ùäàÁƒš]¼xñàÁƒ¸sçŽêhC³ÒÊÊ*>>¿W½ÌápjjjÖ¬YÃáp¸\îóçÏU-ççç ‚ôôôýë_555YYYùùùeee<|øð³gÏrrrôOB^^Þ—_~éêêªÙú}ióóóCùøøè_àRRRBªš;wîddd$$$dffŠD"±XÜÝÝÍb±†<Åb=}úTë´h¶‰;räHWWWZZZrrrUUÕ¹sçðú›7o;vŒÍf§§§÷ööêîZ½M’BCCétz`` B(<<œN§!„z{{=<<ŒŒŒêêêB×®] ¤P(2™ Ã0‰DbbbTTT4f̘ .ÄÄÄx{{ÛØØ,X°`Ó¦MšmÙ²ÅÙÙÙÍÍmÓ¦M%%%º*ÍÌÌ>úè#ü^õòܹs¹\î‘#Gf̘ñóÏ?‡‡‡_¿~¿«¸¸xÛ¶mL&ÓÅÅ…Ífß½{÷Ê•+7ntqq™|8???++kêÔ©ááá ,êÿÉ\\\4;rvvÆ 'NìêêÒS©I*•ÞºukÉ’%nnnnnn‘‘‘§NJKKÃ÷«W¯Vmlff&“ÉT-Oš4iÒ¤ICò£S'NÄ šM!„JKK …úq4Ç›Μ9ê›ñùü©S§âåáL‹P(T*•ŽŽŽøM'''Õ– ©½Žoø#î%K–”——ÿòË/3f̰µµE (•ʽ{÷-[¶l×®]½½½ £©©Iõ¨Çk6¥:P}öì>¹º*5a¶ÿþææfü&…B™7ožêm³¥¥eNNÇãñxEEE)))666ø½|>_}uÃõâÅ õöU“®Ù”R©äñxŸ}öÙ¿ æñxªèhmP*C*þþþgΜQ§&•JÏ;7þüáO‹µµ5•Jþû£Ðíííx€´öø¦ˆO’§§§B¡8}ú4¾ü!„( ‡Ã)++ëëë“ÉdFFFcÆŒùðÃSSS+**º»»ïÞ½«õ²£G¶µµÕ××gffèªìëë»rå ~¯ªÀ'¯üæ$…B!䪒ÌÌÌŽŽŽ¯¾újøikk[·nê=Λz*)Ó²oß>[[Û¼¼î¦¯¯Ëè=¿¿žóìœçãžÇóq¯AøEÊR€ø³@ˆ"TˆR£Úýýý­­­K â÷£P(ªªªÂ5XÔ-C"‘¼~ýZ$ýÞÀKœè¾¾¾peô ˆí„ø+‘H$±Jt†@D€ *D¨ ü‰a±X0 [,k†‰ÅâðËTbûwïÞÅÈY¬Æâ>–xü‰±èô÷÷k4šyvÞ½{·Íf³Ùl¯^½Ø~! “#9V«•ÉdByÅŠ§NJ¶G’kç߇B¡8zôhEEEnnîœét:N¸ÝnÀ|†$ǧ§§¡Ìd2Õju²=.p…À0¬££C äää¨Õêîîn.—›™™yîÜ9€R©¬©©=Ýn7ƒÁx÷îàáÇ¥¥¥Ë—//,,ìîîà8~íÚ5@žž.‰ôz}øªINWRRÂb±”J¥Ïç#U‚È5ju­««ãóù‡ŽýÖït:<Èd29ŽJ¥òz½ñR†6 ^¼xñèÑ£²²2ƒ‘——š' Ãz{{AVVÖÅ‹¡26k@ìð@ ÐØØXPP““sàÀ§Ó Ø´iøU”áI‘†Mêý_CD"‹áŽ›€T*u¹\ííí‰Dâr¹à;ï©©©ÁÁÁìììÙÙY‚ zzz„B!Žãn·{Ù²eׯ_·Ùl7oÞLMMu»Ý­­­,K«ÕNNN>~ü˜ÃáÌf3 •••&“ihhˆÇã?žTI„Óélkkƒá…ËРÉd¢Óé!³ð×êêê­[·ŽŽŽ †µk×BSðn¡æŽ;ž={f³Ùh4š\.Ÿ˜˜èééüøñúªªªr8mmm€ééiÒ¬].WìðK—. …BƒÁðáÇ7ªTª¨æ ;Ö{âI$ë…Äðð0A~¿?J6›Í@ 77w``€ ˆ;wªÕj‚ ìv;•Jmnnv88ŽÏÌ̃A¡PØÕÕ2{ëÖ­Ø‚0 ðWFÃãñH•‰C5›ÍA\½z5##ãëׯ!û~¿ŸB¡FØS«Õ†›"-è×çó}þüÙívƒÁÁÁÁ €^¯¤Y“/))ÑjµÐ×§OŸ LZñÂŽõžxIçzá‡Êôôt•J’ eïÞ½Z­vjjêéÓ§ÕÕÕ€•+Wêõú¡¡!‡³eË–çÏŸ§¤¤X­ÖuëÖ…l–––Æ:*..†ŸÏŸ˜˜H LLmmmYYÙ¡C‡ˆ_Ç÷ï߃Á`QQlòx¼9Mñù|F3™LÛ·o_¿~}WWWx6›þ(H³&>>>JJ ìÙ³'^ ÂŽò¾’uË‹Å<èëë+//‡ÇãÁqüÞ½{v»½¦¦f×®]v»=??ÿýû÷¡Q?~Œ5ÿ2&“ &O™˜”””ÎÎΗ/_Þ¸qjV­ZE¡P¬V+lŽŽŽæçç'6ŸµÇã‘H$õõõÃÃÃ---Q^›¤Y“g³ÙcccP¹páB¼„å}$« 6oÞšššd2Ô`VYYyÿþ}—Ëå÷û©T*ƒÁËåõõõ:îÛ·oOž<9}út¬©ãÇ[,–·oßž9sfÿþýñ”?þ„š(9.—ÛÜÜ|ùòeؤR©ûöíS*•_¾|1gÏž…‹Ùœø|>¿ßO£Ñ<Occ#`ff†´'iÖ¤Ãe2YCCƒÑh4µµµããã!#ð¾bÁaÏ‹ùì+ 6æò‘#GètºËå Òh4EEE4Ïçët:¸Û555q¹Ü´´4‘Htûöms†hoo_³f “ÉÍíyæ™îÌÜÃ0€@|pLÈvñ)AHyr@ÊC•x!—Ë«««5 YÞ þ­0 6›MÌù‹òÄbñÛ·omll>¬Wˆ9 …B RÄÍÍíC¹„øOðúõëGie¢}‚ò䀔‡ ¤<9t»òž={F¡PºÛÊ{"‘HÂÃà dnnÎf³£££år9^ÚÖÖ9räH ‹qãÆíÝ»W¥RÁ" …òìÙ3bW—/_¦èãáÇ]âêÎ;)ʾ}û:ªÐ#ÆÆÆÜÜ\Ìxjjj¬¬¬ôUWWkYéB Ø5Š¥K—r8œÒÒÒׯ_çåå9rÍš5°H,:ÔÇÇçÆOŸ>MMMuuuåp8*• Ã0@uu5±+©T* …BaAA@ø'íííïï§F£quuuttôðð討±ïª@¯®ºFyFÛ­ÊëªÎ--- ñ˼¼ŸïééŽé|^.\èççWSSSQQ1|øð˜˜XaêÔ©?ÿü³D"ÁkÚØØ444`–moooff6yòäØØØºº:X­¹¹ÐÔÔ¤„û÷ï÷ë×3æž———geeG—œœìææ¦Ñh`ÿªªªÂÂBgg瘘½ÃÇ0L£Ñ 4èĉ†mÙ²ÅÍÍÍ@ÀÅb1F[¾|y}}}rr2àõë×zÍiù©kšÃŒŒ ¨ÈÚÚZÃ:!Ò5«­H$êիך››5Mkk«Z­&zïââröìY¼þ¹sç@Ç7ó¶¶6&“Y\\ŒaØ‚ 6mÚó‡* a:''ÇÃÃcÈ!iii0çÑ£G0M´ÛÞÞnjjúÛo¿ÁË´´4gggX¡¢¢fÊd²¤¤¤qãÆ5êĉ­­­¸'*•ª°°pÇŽÇ755½páö§òÞ¼y£åvAAµµ5fŒòT*Õ€nß¾aØ´iÓöíÛ‡×ÁÝãñxÎÎÎz‡aXaa!•J…Δ––ø|~GW(?–H$jµ://ú©×œ–Ÿº¦µZ ‚èèh‡3fdgg«Õj½Ã'Òeû¼{÷îÍ™3‡Édz{{߸qûk”ÍÍÍ>|ˆW~ðàåaÆår###% “ɬªª‚™t:xcîÓ§N‡&B´ûòåK€L&ƒ—t:V€»ûœœ‹XTTﲉDréÒ%|'§Ñh¶mÛfoo/ pëÖ--»qqq^^^˜‘û¼/¾øbõêÕMMM4íåË—xÜçòòr:®wø†­]»Vk½Úºu«€_½zÕËËËÃÃcÙ²eDåi™ÓòS×41†8íííW®\ñòòrqqyñâ…ÞàtÍ>O&“i4š~øA$͘1C$+ 8°¼¼¿¬¬¬4Üa@@@JJÊ?þøÉ'Ÿà_*[[[ã3ÚÜÜ\XXhggWWWK>|¸{÷n­~ú÷ïojjZ[[ /kjjìííaºW¯^WWׂ‚‚üü|¸M„`Æårù|>¼¤P(Ÿ}ö~n²páÂ;wªÕjÜÛK—.íÛ·/ à¢õæÎ›žž'ÌÁÁχS ¨ªª‚k¥îðÕj5Ç;xð`러[·ŽÇãa¦7à2™lÞ¼yeeeqqqD7tÍÑ5MŒ!Nccceee}}ýèÑ£ÍÍÍ Æïód2NOIIijj:yò$N—Édp0pñ:|ø0‹ÅÊÈÈ …YYYNNN ã}†aðÁ‚Íf—Œ°°°9sæÔÕÕ•——{zz®Y³&::ÚÝÝÏçóùü &¬\¹ûóž/š\.×Ïϯ¶¶–Ï绹¹EEEéÞxø|~HHˆµµuPPPII Ì tqq¹víZMMM~~þøñã×®] ‹þøã!C†p8œŸ~úééÓ§›7o°X,…Ba   @H7¤kZ¥R±X¬þýû'&&ëp8œêêêââb6›¥wø¹¹¹¦¦¦xo%%%€²²2½onn¦P(YYYð0ÖÔkN+†º¦‰Q«ÕÙÙÙ3gδ··ŠŠ†Õé²Õ–Çã <˜F£ :ôêÕ«†)•J/// ߨØXggg&“ùé§ŸÂÖLhÍJpp°……ñ @,/[¶¬oß¾VVVÁÁÁmmmr¹<<<ÜÎήOŸ>ÍÍÍZv1 ‰D‹/¶²²²µµýúë¯ñ„îš››<8xð`ø0¡R©bbbÜÝÝÍÍ͸aÃ|IÂ0L"‘¬_¿~øðát:}ðàÁ[¶l™8qâüùó1}?žÂ[é5½jÕ*sss±XL¬sêÔ©?þØÚÚúË/¿„vu‡âïïOìJ£Ñ  7>EEEcÆŒY¾|¹¯¯/žùÑG…„„|0>°9ÃP0Âf¾;J ñþèÕºç!È)AHyr@ÊCƒžS•†††ïâ_ŒD"ÑÍü‹òÌÌÌ(JUUÕ‡r©#´fdT}ñÅèžñê9Ùh½ˆ´NUïÎæÍigÏÞMOÿÒÓÓ‰l_z$hŸ×T*Mzz =½”l_z*Hy!/ï‰X,¤¦–)•j²Ýé‘ åu†´´2øË ©TñË/OÈv§G‚”g4Riûå*•`jJIME ng@Ê3š[·*ñV¥Òüô¿­MA®K=¤<£II)!¤¨Tê›7ÿæ„.HyÆÑÒ"ÍÍ}¢V¢(©©%¤9ÔcAÊ3ެ¬ ­F“—÷´¹¹z.HyÆñÃ%ž³÷k×Êu3@Ê3‚W¯þ(*ªÕýÖð””_Iq©ç‚”g™™MMõDL£ÁJJ~ [t‹”g©©¥ðO ™™hÁ5‚ÿôoÏŒÅÄØÚöi•J#—+-,ÌðRtªgè]•NòãW­:×ÐpˆlGz*hµER‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCR‚ò䀔‡ ¤<9 å!È)AHyr@ÊCf dûûOÁÄ„afæH¶ÿh4Ú½{÷ŒÒ’q'¹®®ÎÕÕuîܹÝ4DeûöíÀ¨&Fÿ…n‹åëëkl+Ä¿›íÛ·Ûíó䀔‡ ¤<9 å!È¡çý @°hÑ¢ÜÜÜ.éM&“={öÎ;"‘ÈÆÆÆÏÏoáÂ…4 –ÊåòsçÎ744 8ÐËËkÁ‚¦¦¦‡“œœloo¯Õ¡&]‡ÃÁÓ ÃÝÝ=,,ÌÖÖ¶k­t+=Oy]Ë‘#GwìØaccóâÅ‹#GŽ´¶¶†……¤Rihh¨¥¥epp°½½ýóçÏOŸ>]ZZzàÀýkE'štšcÇŽÙÚÚbÖÜÜ|êÔ©Ý»w;v¬kMt+ÿõÕöÞ½{+W®d³Ù–––ðΑŸŸ‹’’’,--:äéééàààíí/ ¯_¿ÞQohÒi,--ûõëgeeåìì^YY)•J»ÜJ÷Ñ-Êãp8YYY3gμxñâÍ›7¦OŸ~æÌÀÑ£G÷ïßkÊd²)S¦TWW ‚‚‚üýý¹\îÍ›7†¥§§N›6mõêÕ< ®2€Ãáäçç/^¼xÖ¬YGU*•z3ñÊĆ0Í`0222Äb1¼twwçñx0““³dÉ⽊N§/X°àÖ­[ Ü@“ŽP©Tñññ³fÍš5kV||¼J¥‚¥eeeóçÏÖ+- EµZ ¸ÿþÊ•+§L™2{öì‹/âæ`‡|>ßðìèˆî »îy¥¥¥ÇNHH¸ÿþéÓ§CCCÏŸ?/‹'Nœ˜ŸŸÔŸŸokkëìì,—ËcbbfΜyùòåÅ‹ïß¿_.—_¿~=))iÅŠçÏŸ_²dÉÞ½{u eddìÝ»wÏž=EEE0Ðz3---ÃÃÃa)1QVV6gΜˆˆרØó%‰H$rvvÖ2Çf³Ÿ?®wÈhHII …'NœøöÛoËÊÊaþ•+W6nܤ+XA.—Ëd2©TÚÐÐðÝwß 2¤wïÞR©4**ŠÍf'''‡††&$$´´´;d³Ù†gGïDtäüûÐ]Ê›?>ƒÁð÷÷p¹\ƒ1eÊ@kkëðáéTjEEàÖ­[þþþ E©Tb&“Éh4Ú”)S233ÍÌÌRSSW­Zåíímeeåéé¹bÅ ]C¡¡¡Æ [±bENNNG™L&súôé°”˜3f Ç;|øðˆ#²³³¹\îíÛ·ñÎ)Š–9 Ã ïØŒm’••õÕW_±X,''§ââb˜tèPJJJbb¢‹‹ —Ëõôô …Ä[ˆ“““®!˜pttljj2©‹\./((ðõõ6lذaÃ/^|öìÙøøx??? ‹~ýú={ölôèÑÄ&Ïž=stÔÿ¢À»7!þg×W¯^Íž=¿d2™¸çÅ ¢÷ÉšJ¥Ö××8p@&“ÁÛѳ£w"ôŽ÷=!ç Ã××÷îÝ»¿üòˈ#lll …B£ÑÄÄÄdffN›6móæÍ­­­ÖÖÖ555x«ºº:Ý®êëëaâåË—VVV2uÁ0l×®]µµµð’B¡Œ;.m€I“&%%%i4x¹sçÎÛ·o_¼xÑÏϯ£ÿ¶ ìüÍ›7x“>}ú$''çæææææfffÆÅÅÁ|\ º±2€B¡ˆ‰‰Y°`ÁÉ“'×®]K,Â;üÛt'â] 9ÊswwW«Õç΃7|…B‰ˆˆ¸sçN[[›R©¤R©fffS§N=~üx~~¾H$*..>yò¤nWÇŽOž<9uêÔäÉ“;ÊlkkÃ0ñ´¹¹¹¿¿ÿöíÛ …BaeeåñãÇq•ŠD¢ððð_ýµ¾¾ÞÖÖv×®]íííøJÝÒÒ""`¸‰……àæÍ›R©4-- ÷ßÛÛ;!!¡±±±¶¶6222##ãoce¥R©R©¨Tj{{;Ü2ûÀ«w"Œêá!ç<ÏÄÄÄÇÇ';;ÛÇÇæÐh´M›68qâõë×vvvÑÑÑ4mþüùjµúûï¿oiiÛ ]»viu5iÒ¤õë×Ëårx ×V­L@KKË hˆéÈÈÈóçÏ'$$‚¾}ûr8œ¥K—ž ÆÉ“'?.¬­­-ZÄçó÷ìÙX³f Ñ“ÜÜ\ÃM‚‚‚âââ’““W¯^}÷î]Ø*((èØ±c+W®¤P(>>>!!!Ä;¢ÞXÀÂÂ"44t×®]æææ\.×ÏÏ/22Ò¨s>½ñîÍßãþ›ü¼yóššš¢££ßßð©S§^½zµuëÖwo¢õí…Þ/3ºö]T*UUU•««k·6Ñ¢±úÀp87oÞ¼woBÂjÛÞÞ. ³²²>ÿüóoý=¡R©Æj¨Mpzt¬ C‚ò?~2uêT÷é‡ÉdΘ1ã]2{.]« ¤­¶ˆ=cµE R‚,ò䀔‡ £O’ËËËñ=ˆNcœòÐo¼za³ÙƾX`Ü© ÑU }‚ò䀔‡ ¤<9üóíld$IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalFilesOption__inherit__graph.png0000644000372000001440000001347712502417165032424 0ustar robertousers‰PNG  IHDR»»²òx=bKGDÿÿÿ ½§“ôIDATxœíÝyTSgúð' QYd‹aµŽTÔÚQ žq£(¥v:uj­‚3#ŽÅÔÑÓ¡ Ç£à±uœ¢‚ T *È""Ò(–‚ ˆÔ6– TH!íþþ¸þÒr“XžÏñ7onÞ÷½7_î{ïM⥠ÝÐ@¯L ¢ƒ¨ÁÄ j˜úé&22òþýûúékl [³f:¢éç\‰F£yyyMž¹˜f988ØÇǧ¡¡¡ººÚÃÃìÖ¬YÓÙÙ™œœ Ïž={áæõ÷÷÷÷÷ö»ñRŒ+1•••AÈd2­r]]B¡°··¿víAË—/‹‹#¢££ÃÄÄäÀ*•ª»»[©Tº»»ûí·êfOž<901ÕÕÕä³ééé\.Wgå`ã,1%%%l6{ˆöÉuY&“1Œ{÷î‘õÙÙÙd§ 4×ýW¿‰1¢Y ,,,ÀÄÄD« cÕªUÙÙÙ?ÿüóÕ«WƒƒƒÀÚÚZ ”––:;;/^¼øæÍ›t:½±±qöìÙê6gÍš5°#WWW²0sæÌæææ!*²²²²··¯ªªÒª¯ªªš3gÎð›zòä‰R©œ6mùË媗tttÔ\w£b\‰š¿¿NNNFFÆ‚ ȹF"‘¨TªóçÏwtt„„„|øá‡NNNwïÞU¿ê§Ÿ~Øù‡µµµäÛ3X¥NÁÁÁ±±±šgF===ñññ~~~ÃoÊÎÎŽÁ`466’œœœÈ2nÄï‹~ve0¼YI½ÖYV(ÇÎÎ.55•|J"‘Œ?>33³½½ýرcãÇ—H${÷îåp8.\ …:c¼½½ëêêÊÊÊ\]]£££uVƒÇñË/¿Ì˜1cñâŵµµÙÙÙîîîøÃ¤Réíwwwýc‚‚‚|||üñGwww²ÓÁ¶ÃÆîqÌЉ!"<<|„ ]]]êW¥§§O›6ÅbÍœ9377— ™L;uêTssóùóçŸ9sf`bRRR¦L™Âf³·nÝ*‘HtVýß]Í2Ab±8**ÊÃÃÃÔÔÔÝÝ}Ïž=½½½ƒµ/—Ë,X`nn®ÕNGGÇúõëmmm¶oßNvЉ!ˆá%f8vïÞDé%Zï´ÖÃ!*Gf›>}&æµ¹‚'•J[[[Oœ8qöìYCeL3â#¬þnݺ5wîÜM›6-Y²äeÚ™8qbXXØp*G±ýßý}k3==¿ƒ÷ŠV?ßÚ|mö1ÈH`b5˜D &Q£¿³ëk×®‰D"½u7¦466º¸¸è©3ý\öy½~ÛÆdÚXYùzÔDEEéç­ÔÓÙõëe÷îìo¿½™“³ÕÓS_¸¯<ŽÑ¦P¨rrn@NN…¡ÇbŒ01Únܨéê’@VV¥\®û›Þc&F[vv%ùÞÞÞ¾ë×k =£ƒ‰é§·Wvùò]…B -+ '&m˜˜~®^ýI=)ªï¾û±§§Ï°C26˜˜~23okþ^Q¡P^¹¢ãKŸc&æW"Q¯@P£Tj^n eeÝ6Ø€Œ&æWÕZ5*•êÆÿuvöd<Æ ó«óço«T:®g^ºtw`嘅‰y®­í—[·^'"3³Ü C2N˜˜çòòª [C¥"nß~$âg¨ÏabžËʪ /à D—‡Ós¯Ío ^5:,ɲB¡’JåææãÔÏâU5üìZ‡‹«ÂÃO¶¶4ô@ŒÎJˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆL ¢ƒ¨ÁÄ j01ˆ"ýÜÆI Ç3ôz…N77î Cb(,ëûï¿7È{g˜ÿïáÇ^^^Ÿ}ö™Azÿ hii1H×ûŸ'Ožìïïo¨Þшáq ¢ƒ¨ÁÄ j01ˆ£N Mƒµµu@@@{{;¥êëëiš·Øz9===<ï­·Þ²°°˜7oÞÞ½{ …þ‡aXFøá‡„BakkkaaassóÖ­[ 5’îîî¹sç–——ÇÇÇWTTìÚµ+--mÙ²eJ¥î»466²Ùl²leeµsçN=öU2ÈU ÿ.uuuê‡EEE–––”:ª««­uܱcÇÂ…  …ºF,ÿîw¿KNN~Õ]éé鯨ñ¡û>FƒÁàp8dY$}úé§l6ÛÙÙyÇŽR©t°J5¹\Îãñììì8Ç“ËåpéÒ¥·ß~ÛÔÔÔÁÁ!..Ž\’F£¥¥¥¹¹¹ÙØØìß¿Ÿ¬äóùÑÑÑäIfff<Ïç““NnnîŒ38Nddd__Ÿ——ØÛÛCÿYIç uöh¤ ’Óáïcªªªº»»»ººjjj–,YK>ìããÓÐÐP]]íáᣳRó=>>~õêÕ?®®®þýïÿ÷¿ÿ½««‹ÅbmÚ´©¹¹™ÏçÀÓ§OÉ~׬YÓÙÙ™œœ Ïž=ëìì€ööv­ÛÙÙ‘½øúúÖÖÖ–––r¹\­®5Ë:G>°ÇnCícŒ=1š&NœHNR2™ŒÁ`Ü»w\,;;›Ëåê¬Ô|«fΜ) ÉraaáìÙ³ûúúîß¿/‹•Jå7àÿ'AdGdå`‰)))a³Ùd/ÕÕÕdezzºV×ê²ÎAêìñ…[ÆP‰1öû+ÕÕÕq¹\èííý׿þõî»ï>zôèÉ“'J¥rÚ´iä2\.·¹¹Yg¥fS>tppP?´´´d±Xµµµ›7o‹Åo¿ý¶æÂŽŽŽ`bbB>´²²²··¯ªªZºt©æbUUUsæÌ!Ë®®®daæÌ™Z]« 1H­Ökscjjºy󿦦¦§OŸÚÙÙ1ŒÆÆFò©††'''•š-;ò¥³³³´´T"‘ðx¼ÊÊÊ#GŽh.L§ko™àààØØXÍ3£žžžøøx???ò!¹#€ÚÚZòíhˆAìÑ8û(ÛÛÛÛÚÚÚÚÚ?~?yòäI“&™˜˜FFF>xðàÞ½{_|ñEpp°ÎJͦV­Zµk×®GUWWûùù>|¸¯¯O&“±X,‰Dòå—_@ww÷`#‰ŽŽ~úô©Ïwß}WWW—““ãéééääA.°mÛ¶úúúòòòÝ»wüñÇd¥X,Ölä…ƒ| d.Áq NŸ5kVii)ùTGGÇúõëmmm¶oß.‘HtVjLtuumܸÑÚÚÚÖÖvË–-===A|ýõ×666“'O>räȺuë8Ñÿ¬^³,‹£¢¢<<+!cƒ‰'N 3ô(ô3 8Nbb¢¡G¡'˜D &Qƒ‰AÔ`b5û\©¨¨hÙ²e†êý…T*:®2ô(Œ‘acä¿TzölBm­õ;ï \Þ޵k×zzz¤kÃ\ó5rÁÁIAÍ¡CAþþó =£ƒÇ1ÚD¢Þ¢¢ZZNN¥¡ÇbŒ01Ú.^¬âæÍÿµ·úQö˜…‰Ñ–™YNÎÔ4íÒ¥»†ŽÑÁÄôÓÚ*ª¨x¤R©@¥R?_nèLL?¹¹w : T*¸{·©©©ÃЃ2.˜˜~Ο/×ü^&“IÏͽcÀñ!L̯jkÛjj„šW eFNLý`b~uñb•‰ C³†  ¾þIMÐPC2B˜˜ç‚HO/“˵DÍb1qbÒ„‰y®ºº¹¥¥s`½L¦8¾¯Œ«abž»p¡ÒÄD÷§l­­¢ÊÊÇzÑÂÄ<—“S©T*Y,æÀ´üü*CÐXû¯hõ&<ÜûÙ³ç¿Fkjê()iøõcÈ \ 4.£ƒŸ]ëpñbUxøÉÖÖƒ†ˆ1ÂY Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜D &Qƒ‰AÔ`b5˜DM¿ÿ£J&“;wN*•j4FâÞ½.8v옡bx®®®ÞÞÞýª YYY2RL&“è¯ß>F¡P€@ 0Ððq¹~ýú?ÿùO­J<ŽAÔ`b5˜D &Qct‰iiiÑ>{ ÞÞÞ---£Õôž·.êF¼"R©4111$$dùòåáááiiiš·|æØ^ü?Ã_JBB‚ƒƒƒf ƒÁX·n݈ìí툈°¶¶ stt|ðàÁñãÇoß¾ýÕW_Ñé:þ¼…Baxxxnn.˜››¿L×ĉy)VVV666Z•[¶lqƒ§N²²²úúë¯É|8;;Ï›7oãÆ|ðÁÀåU*UWWY¶´´|™®‡i$³’··wAAÁ† V¬XqæÌ™+W®¬[·îƒ>8qâ|óÍ7û÷ï'—”H$~~~uuuðÃ?„„„øúú]¹r‚ÈÉÉÙ°aÃòåËÿò—¿Ü¹sGs§Jîc‹‹‹×¯_¿råÊo¾ùF.—묄þ;äîœÅbq\\ÜG}äïïôèQ™L¦T*SSSW¬X±oß>±øù JJJ6oÞìçç·zõê3gÎ gãèì]¡P$&&®\¹råÊ•‰‰‰äu¯ ?ùäÍÝÉøñã×®][XX¨sÝÿüç?ÀªU«´º¸ŽäwõêÕ 6üéO:wîÜpVg ÇTTT=ztË–-ÉÉÉ%%%Ljˆ8}útWW×âÅ‹‹‹‹É©·¸¸ØÁÁËåJ¥Ò˜˜˜+Vœ;wnýúõû÷ï—J¥ùùù§N =}úô'Ÿ|²oß¾]¸paß¾}{÷î½uë–ú=XieeµcÇòYͲN‡jooOLLŒ///?{ölfffQQѾ}û<ØÔÔÄçó ··7::ÚÕÕ•ÏçGDD$''‹D"­¦¤R©DÃ`™™™B¡0))髯¾ª¬¬LMMÕ¹AÄbqGG—ËÕz9—Ë}üø±Îu?rädgg¿pÉúï¿ÿþðáÃaaaIIIÝÝ#¹›÷hjjêëë AAA¦¦¦~~~ÐÝÝíááÁd2«««àêÕ«¾¾¾4M.—!‘HX,–ŸŸ_^^Þ¸qã²²²ÂÃÃ.\hkkëéé:°£ˆˆggg77·ÐÐÐÂÂÂÁ*ÍÌÌÔ;mÍò@ …â¿ÿýïÖ­[\\\6nÜXXX˜ŸŸ¿iÓ&—©S§îܹÓÝÝX,ÖñãÇ###mmm9ôôôhµº\CYY™ÎN ¶mÛÆáp\\\ÂÂÂÊÊÊtnÁÆL£ÑÈ*¶A†³ŽäS+V¬077ï½÷@=Q2ÂãSSS`2™Ze Óé .,**rqq©¨¨ˆŠŠ ‹ƒfff¦¦¦NŸ>=((ÈÓÓS(jþ=¹¸¸ ìÈÙÙ™,¼ñÆíííCTSgg§J¥rtt$:99‘-¨Ûœ2eÊ”)SÈ5jnn>pà€D"quÕ}·>Ÿïää¤Y£óÔ¬­­mõêÕê‡fff:7ˆ¹¹¹M}}ýœ9s4_^__?}úôá¯û`ël64Þ¬x%g×K–,¹yóæõë×ß|óÍI“&@__ŸJ¥Š‰‰ÉËË[¾|ùîÝ»»»»ÙlvCCƒúU>ØTss3Yhjj²µµ¢r˜¬­­étºPøüf¡­­­l6ÛÖÖ¶­­¬©¯¯'g¥¾¾¾˜˜˜µk×;vìoû¥^´XZZòù|@ òòòŽ9¢sƒÀÒ¥KO:¥Þ£€T*={öì;ï¼3üu×¹Žd™F£½ÌŠÀ+J̬Y³”JåÉ“'Éi h4Ç+**êéé‘ËåL&sܸqï¿ÿþÑ£G‹‹‹;::ÊÊÊt~» !!¡¥¥¥¦¦&%%eÙ²eƒUöôôäçç“Ïj–@$uh`2™ÞÞÞÿþ÷¿…B!yîºtéR__ß”””}êèèøå—_²X¬ÀÀ@¥Ryøða‘HDNð{öìÑjjéÒ¥QQQR©ÔÇÇ'88˜Ü»jU€H$:pàyø¢Y€¿þõ¯š ‚mÛ¶%$$„‡‡›˜˜¼ûî»ÁÁÁ4M*•òx<©Têååæææ{öì™0aBPPÏ矞0‚ ’°yóf¶hÑ¢°°0LMM;–ššš˜˜ØÚÚêàààãããïïobb¢sƒ0Œ7ß|sõêÕ—/_Öìqà:Ž`Ø:õ»‡[FFF``à¨|Û!%%¥­­í‹/¾þKZZZ>þøcuïZ‡¨#ô¿îä·´îò7ú³’L& …üãG½qdp£Ÿ˜û÷…½ÿþû³gÏ~™vÌÌÌ>üðÃáTŽF²î¯jVB¿zš•Ðo&Qƒ‰AÔ`b5˜DM¿k¾ ôðÍ?ôº #¡©ßÙµT*½|ùò0¿UŠÆ;;;õG=$šÖÙ6BCÃãD &Qƒ‰AÔ`b5ÿ\r{K£fÄSIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x71.html0000755000372000001440000001142312502417164023637 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- q -

mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_5.png0000644000372000001440000000407612502417165023743 0ustar robertousers‰PNG  IHDRÀ%›7qabKGDÿÿÿ ½§“óIDATxœíšHSßÇÏ\ÚfšÔ¶;å´R¡b–`IE¤–Š˜ YYF”!A*ýQæ_%ij?Ôrjše‰ˆ…0EG˜›IàRÄ[im2g×mnçûÇá;nóniÓ¬çõ×¹Ï}î³÷sÏÛsÏÝd@󻨭¶Ì¿ 6Æ&°06 „±‰5ÔƒÑÑÑÌÌ̹¹¹ÕRƒùËa±X÷îÝóòò2E~2Pwwwsss\\܆ù7¨««KNN¶h Dmm프ù—`0f¼ÂØ6Æ&°06 „±‰¿Î@Ÿ?^¸S³¹\ž˜˜èãããää´sçÎÆÆÆe,n ´ÚÞ~MM ƒŽ¾¾>[ÊZâ¯3Ðòòýû÷GGG¡P(‹Ož<™ÐÚÚºÚºV£G* …BÑÕÕPü@°Góÿ_"///**ª¬¬ }ùò¥°°ðàÁƒ«+lå`³Ùl6 Ñh®®®+úq¿³1ŒŠŠŠÀÀ@WPPPYYéëëëâârýúu@VVVzz:ÊÔh4ŽŽŽ>|¼zõjÇŽ,kóæÍ•••£Ñx÷îÝÀÀ@gg爈ˆwïÞQWo´˜755mÛ¶ ˆ¬¬,­VK?¯üÔñóçÏ/^¼HŸ——W^^ŽÆÓÓÓ§Nâr¹žžžW®\A_Á[ïÎ’€ææf´Ô¹¹¹˜2ÛÛÛ½¼¼D"ÑÂDuuµŸŸÇ;{öì?¨Rõz}vv6ŸÏ'";;[¯×/œ‹©©)³«Ãï]E¤  Í"´Ôj5úËŽW«Õ%%%€oß¾uttp8½^!¬ªªF£Q£Ñ¬]»öþýû …¢¼¼|Íš5¦¤¤„ ˆ††¹\þúõkOOO€L&CÐàÀƒƒƒÝÝÝþþþùùù´Aáôôôƒ<ÓX¥R”J¥¥F’’’¢££‡††¤RéöíÛQ)ëÝÑ P«ÕiiiãããUUU€ÉÉI”yèС·oß* K ûöí3•ÊÉÉ1µ!¼}ûöñãÇGGG¥RihhhNNU¼X,NIIáñxr¹œ¶;j)3ÚÚÚ)‡‡‡9ÝfS/ ŠPo ÞÞ^¡N§3Ëd²ùùyWW×öövááÇ „J¥ÒÞÞ¾°°P¥RÆ™™ƒÁ =zd*ûøñã…’J¥&mþþþ´AK:•J%@¥RÑžÕétL&óãÇè°¡¡•²Þ­­VûéÓ'Fc0:::fþ2•òõõ¥Îz@@€B¡@ã¶¶¶àà`!I’Ož<  )))™™™±Ô¾A'&&òòò<==cbbZ[[ ƒ¥L*Ëf ™Lfe|îܹÌÌÌ©©)‡±±1tV$ÅÆÆ®[·nÏž=oÞ¼²Ùì¾¾>SYô¤33I’è¬D"a±X´A+Rù|~gg'5"‹ÃÂÂfggÇÆÆ¨¥¤R)*e½;Kššš"##ƒƒƒSSS©™:eZJ mEX,õYáââ‚VŽ”””žž£Ñh}š¬¡Óéjkk###·nÝ:::j=ÒhEÞÂâââ‘2ô`"IÒh4ÖÕÕ)•Êôôô˜˜¥Réáá!‘HLW ,,…î`ppÐÝÝÝJ–#GŽÜ¹sRþm·ªªJ¯×;::òù|&“9<<ŒâCCC‹lÐLI’ñññÙÙÙ½½½ÅÅÅÔL{{{Ô¾¥j)oooê).—k²¯J¥êîîæñxAAA]]]ÓÓÓ‹Tk…¯_¿ Œ‡††¢­÷’¡ºi¹V ùùy‚ ø|þÇÑ)’$Y,V}}ýÔÔTii)‹Å"IòæÍ›A¼xñB¡P´´´Ð¢d2™X,Þ²eKnn.mZØA'''9NRRRgg§D"ÉÏÏ477£³‰‰‰ÑÑÑÃÃÃýýý•²Þ­•JÅ`0ZZZfgg¯^½ èíí¥.Vöïßo*uëÖ-êUYYY±±±###‰d×®]çÏŸGñþþþŒŒ .—›žžþþý{KÓde2 ­­­ÇŽóððÈÍ͘˜øå¤›nŸx„AÏœ9Ãf³Õj5µ¸ŸŸŸƒƒC@@@SS„P§ÓݸqÃ×××ÉÉ)""âéÓ§ TVVæííÍår/\¸@’$mþ|³ÌnÜÈÈHll¬»»»³³sxxøË—/M§”Jerr2‡Ãqss»té*µ-PTT´qãÆM›6'$$a&ÃRBMMA—/_ÖjµÔ«Ôjujjê† 8ÎéÓ§ggg©³ R©ŠŠŠüüüFFFh§ÉŠêëëwïÞ]]]­Õji,±<Z ×®]KLL\Ò%f Óö¿˜çúвêÌ0 è…wI˜vfKe¡–ÿ‹Ä¹¹9¹\^QQñìÙ³e/Ž1ÃÎÎÎÎnÉY´3[ËUÈDOOOXXXZZÚÞ½{m©³~ýúŒŒŒÅÿ$«.àoƒ)o(µµµ'Nœ F0* C(ÆÇÇ›"ÿñS1+ 6Æ&°06 „± š×øÒÒÒ?¯ó¯BýRH$1™ÌÕV„ù{a2™"‘ˆê~iÇØÞalcØ@›ÀÂØÄÿ5TŸG[­ŽŸIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SQLTypeAdapter.html0000755000372000001440000015571412502417164027002 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SQLTypeAdapter Class Reference

Converts many different data types to strings suitable for use in SQL queries. More...

#include <stadapter.h>

Public Types

typedef size_t size_type
 size of length values
 

Public Member Functions

 SQLTypeAdapter ()
 Default constructor; empty string.
 
 SQLTypeAdapter (const SQLTypeAdapter &other)
 Copy ctor. More...
 
 SQLTypeAdapter (const String &str, bool processed=false)
 Create a copy of a MySQL++ string. More...
 
 SQLTypeAdapter (const std::string &str, bool processed=false)
 Create a copy of a C++ string.
 
 SQLTypeAdapter (const char *str, bool processed=false)
 Create a copy of a null-terminated C string.
 
 SQLTypeAdapter (const char *str, int len, bool processed=false)
 Create a copy of an arbitrary block of data.
 
 SQLTypeAdapter (char c)
 Create a single-character string. More...
 
 SQLTypeAdapter (tiny_int< signed char > i)
 Create a string representation of SQL TINYINT.
 
 SQLTypeAdapter (tiny_int< unsigned char > i)
 Create a string representation of SQL TINYINT UNSIGNED.
 
 SQLTypeAdapter (short i)
 Create a string representation of a short int value.
 
 SQLTypeAdapter (unsigned short i)
 Create a string representation of an unsigned short int value.
 
 SQLTypeAdapter (int i)
 Create a string representation of an int value.
 
 SQLTypeAdapter (unsigned i)
 Create a string representation of an unsigned int value.
 
 SQLTypeAdapter (long i)
 Create a string representation of a long int value.
 
 SQLTypeAdapter (unsigned long i)
 Create a string representation of an unsigned long int value.
 
 SQLTypeAdapter (longlong i)
 Create a string representation of a longlong value.
 
 SQLTypeAdapter (ulonglong i)
 Create a string representation of an unsigned longlong value.
 
 SQLTypeAdapter (float i)
 Create a string representation of a float value.
 
 SQLTypeAdapter (double i)
 Create a string representation of a double value.
 
 SQLTypeAdapter (const Date &d)
 Create a SQL string representation of a date.
 
 SQLTypeAdapter (const DateTime &dt)
 Create a SQL string representation of a date and time.
 
 SQLTypeAdapter (const Time &t)
 Create a SQL string representation of a time.
 
 SQLTypeAdapter (const null_type &i)
 Create object representing SQL NULL.
 
SQLTypeAdapteroperator= (const SQLTypeAdapter &rhs)
 Standard assignment operator. More...
 
SQLTypeAdapteroperator= (const null_type &n)
 Replace contents of object with a SQL null. More...
 
 operator const char * () const
 Returns a const char pointer to the object's raw data.
 
SQLTypeAdapterassign (const SQLTypeAdapter &sta)
 Copies another SQLTypeAdapter's data buffer into this object. More...
 
SQLTypeAdapterassign (const char *pc, int len=-1)
 Copies a C string or a raw buffer into this object. More...
 
SQLTypeAdapterassign (const null_type &n)
 Replaces contents of object with a SQL null. More...
 
char at (size_type i) const throw (std::out_of_range)
 Returns the character at a given position within the string buffer. More...
 
int compare (const SQLTypeAdapter &other) const
 Compare the internal buffer to the given string. More...
 
int compare (const std::string &other) const
 Compare the internal buffer to the given string. More...
 
int compare (size_type pos, size_type num, std::string &other) const
 Compare the internal buffer to the given string. More...
 
int compare (const char *other) const
 Compare the internal buffer to the given string. More...
 
int compare (size_type pos, size_type num, const char *other) const
 Compare the internal buffer to the given string. More...
 
const char * data () const
 Return pointer to raw data buffer.
 
bool escape_q () const
 Returns true if we were initialized with a data type that must be escaped when used in a SQL query.
 
bool is_null () const
 Return true if buffer's contents represent a SQL null. More...
 
bool is_processed () const
 Returns true if the internal 'processed' flag is set. More...
 
size_type length () const
 Return number of bytes in data buffer.
 
size_type size () const
 alias for length()
 
bool quote_q () const
 Returns true if we were initialized with a data type that must be quoted when used in a SQL query.
 
int type_id () const
 Returns the type ID of the buffer's data. More...
 
void set_processed ()
 Turns on the internal 'is_processed_' flag. More...
 

Detailed Description

Converts many different data types to strings suitable for use in SQL queries.

This class provides implicit conversion between many C++ types and SQL-formatted string representations of that data without losing important type information. This class is not for direct use outside MySQL++ itself. It exists for those interfaces in MySQL++ that need to accept a value of any reasonable data type which it will use in building a query string.

One major use for this is in the Query class interfaces for building template queries: they have to be generic with respect to argument type, but because we know we want the data in some kind of string form eventually, we don't need to templatize it. The interface can just use SQLTypeAdapter, which lets callers pass any reasonable data type. The adapter converts the passed value implicitly.

The other major use for this type is the quoting and escaping logic in Query's stream interface: rather than overload the << operators and the manipulators for every single type we know the rules for a priori, we just specialize the manipulators for SQLTypeAdapter. The conversion to SQLTypeAdapter stringizes the data, which we needed anyway for stream insertion, and holds enough type information so that the manipulator can decide whether to do automatic quoting and/or escaping.

Constructor & Destructor Documentation

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( const SQLTypeAdapter other)

Copy ctor.

Parameters
otherthe other SQLTypeAdapter object

This ctor only copies the pointer to the other SQLTypeAdapter's data buffer and increments its reference counter. If you need a deep copy, use one of the ctors that takes a string.

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( const String str,
bool  processed = false 
)

Create a copy of a MySQL++ string.

This does reference-counted buffer sharing with the other object. If you need a deep copy, pass the result of either String::c_str() or String::conv() instead, which will call one of the other string ctors.

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( char  c)

Create a single-character string.

If you mean for c to be treated as a small integer, you should be using mysqlpp::tiny_int instead. It avoids the confusion in C++ between integer and character. See the documentation for tiny_int.h for details.

Member Function Documentation

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const SQLTypeAdapter sta)

Copies another SQLTypeAdapter's data buffer into this object.

Parameters
staOther object to copy
Return values
*thisDetaches this object from its internal buffer and attaches itself to the other object's buffer, with reference counting on each side. If you need a deep copy, call one of the assign() overloads taking a C or C++ string instead.

Referenced by operator=().

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const char *  pc,
int  len = -1 
)

Copies a C string or a raw buffer into this object.

Parameters
pcPointer to char buffer to copy
lenNumber of characters to copy; default tells function to use the return value of strlen() instead.
Return values
*thisIf you give the len parameter, this function will treat pc as a pointer to an array of char, not as a C string. It only treats null characters as special when you leave len at its default.

References mysqlpp::mysql_type_info::string_type.

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const null_type n)

Replaces contents of object with a SQL null.

Parameters
ntypically, the MySQL++ global object mysqlpp::null
Return values
*this
char mysqlpp::SQLTypeAdapter::at ( size_type  i) const
throw (std::out_of_range
)

Returns the character at a given position within the string buffer.

Exceptions
mysqlpp::BadIndexif the internal buffer is not initialized (default ctor called, and no subsequent assignment) or if there are not at least i + 1 characters in the buffer.

WARNING: The throw-spec is incorrect, but it can't be changed until v4, where we can break the ABI. Throw-specs shouldn't be relied on anyway.

int mysqlpp::SQLTypeAdapter::compare ( const SQLTypeAdapter other) const

Compare the internal buffer to the given string.

Works just like string::compare(const std::string&).

References mysqlpp::SQLBuffer::data(), and length().

Referenced by compare().

int mysqlpp::SQLTypeAdapter::compare ( const std::string &  other) const

Compare the internal buffer to the given string.

Works just like string::compare(const std::string&).

References compare(), and length().

int mysqlpp::SQLTypeAdapter::compare ( size_type  pos,
size_type  num,
std::string &  other 
) const

Compare the internal buffer to the given string.

Works just like string::compare(size_type, size_type, std::string&).

References compare().

int mysqlpp::SQLTypeAdapter::compare ( const char *  other) const

Compare the internal buffer to the given string.

Works just like string::compare(const char*).

References compare(), and length().

int mysqlpp::SQLTypeAdapter::compare ( size_type  pos,
size_type  num,
const char *  other 
) const

Compare the internal buffer to the given string.

Works just like string::compare(size_type, size_type, const char*).

References data().

bool mysqlpp::SQLTypeAdapter::is_null ( ) const
inline

Return true if buffer's contents represent a SQL null.

The buffer's actual content will probably be "NULL" or something like it, but in the SQL data type system, a SQL null is distinct from a plain string with value "NULL".

bool mysqlpp::SQLTypeAdapter::is_processed ( ) const
inline

Returns true if the internal 'processed' flag is set.

This is an implementation detail of template queries, used to prevent repeated processing of values.

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::operator= ( const SQLTypeAdapter rhs)

Standard assignment operator.

See Also
assign(const SQLTypeAdapter&) for details

References assign().

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::operator= ( const null_type n)

Replace contents of object with a SQL null.

See Also
assign(const null_type&) for details

References assign().

void mysqlpp::SQLTypeAdapter::set_processed ( )
inline

Turns on the internal 'is_processed_' flag.

This is an implementation detail of template queries, used to prevent repeated processing of values.

int mysqlpp::SQLTypeAdapter::type_id ( ) const

Returns the type ID of the buffer's data.

Values from type_info.h. At the moment, these are the same as the underlying MySQL C API type IDs, but it's not a good idea to count on this remaining the case.

References mysqlpp::mysql_type_info::id(), and mysqlpp::SQLBuffer::type().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReconnectOption__coll__graph.png0000644000372000001440000001342512502417165031607 0ustar robertousers‰PNG  IHDR½»¿ìzbKGDÿÿÿ ½§“ÊIDATxœíÝyTSgúð7 „¶¨#•µv´U΂¥tjÝ…Zª¢Ñ™£ÖJÆÑÓQ‡ã(p:vÚ¢²J«qÙ´´b¥¢T Eiêüʰ¹°„¥,&„l÷÷Ç턌·˜êó9Ï{ßÜû¾On¾äÞ›„@Á0 ð”¨d&%È rˆ€Ü"èf›)???==ÝlÓ=‡|||>ùäóÌE1ÛõTTTÔíÛ·ýýýÍ3Ý󦵵µªªÊl¦ùžoBþþþyyyæœñù‘——m¶éàü¹D@n@Ä󕛦¦& …2òùü—^zÉÞÞþ•W^9räˆJ¥"¥3{¾r3±$ÉÂ… kjj’““kkk÷íÛwöìÙÐÐPµZmpý––‹…·÷îÝkÆb'˜Y¯Ãc]\\¾þúk†š={ök¯½æçç—““?v}FÓÛÛ‹·Y,VRR’YËP÷|C¡PN:åãããââ’””tæÌ™™3g:88üíoCíܹsóæÍøšR©”ÉdÞ½{!TRR2oÞ<//¯3gÎ „4Mjjª½½½¿¿yy¹îq?L\ºtiΜ9l6{çÎÃÃÃ;ÑècŠn[ 8p ÎÖÖ–Ïç ƒC-^¼!äææ¦7ÎÀÀÀ»ï¾Ëb±8NBB‚\.Ç÷ÃÙ³g}||œœœRRRžé>'3—ÈÈÈÈÈÈ'®†Z¿~½X,ÎÊÊBEEE‰Åbü ŠŸþùÆÎÎÎJ¥Ã0@àëë«Ñh¤R©µµuZZšH$ÊÎΦÓéR©4==Ífvtt\¹r…Ãá „ñ»Œ7ªªª¸\î¡C‡ vb600™™‰—§m÷÷÷#„zzzô꯬¬tuug||5ÝvlllHHHss³P(ôóóÃ'E­]»¶¿¿?33!ÔÛÛ;þ~ËÍÍ5ç£i‰¹¹sç†a …B¯ÝØØ¨R©ÜÜܾþúk Ã"""’’’0 ëëë³²²úðÃûûû5D"Q«Õ¾¾¾Ÿ}ö™vØÏ?ÿ|ln„B!~knn.—Ë5Øi¬Nc¹¹}û6‹Åg|¼GÛV(4íÞ½{xaa!>)B¨¼¼\÷¾¿ßÌœ‹;N!„ìííBVVVzm„F[½zuaaáÏ?ÿ|í򵯯X„ÐÔ©SËËË«ªª8ÎÒ¥KoÞ¼I¥R[ZZæÏŸ¯sÞ¼yc'òööÆsçÎmkk§s,GGG77·ºº:½þººº ˜>TWW—Z­ž5k¾ÈårµkzxxèÞw‹b‰¹_dddQQQ^^Þ’%Kð£L&Óh4/^ìëëÛ¼yó›o¾Ù××çééùÃ?h·úÏþ3v(ü‡!ÔÐЀ?HÆ: ŠMLLÔ½zLNN7}(WWWÖÒÒ‚/677{zzâm*Õ‚³=³™~œÒ>'l«T*6›íêêš““ƒß$“Élllòóó{zz222llld2Ù‘#GØlvqq±H$*--5x~ÜØØX]]ííí}àÀƒ˜‘ó Ã?~©±ý` œßßÕÕ•Ífóù|¥R‰º|ùòË/¿Ìd2ÝÝÝ“’’ð5)ÊÙ³g}||œœœRRRðN@pàÀ¦ÐÖÖ–Ïç ü0téÒ¥9sæ°Ùì;w/^¼!äææ†F§ ipFËEV`M¾©««“H$b±¸¾¾>(((11¿)666$$¤¹¹Y(úùù:tÈ`§î}rròš5k=z$ ÿûßÿõ¯‹Å cÓ¦Mmmm!ÔÝÝÏ»víÚþþþÌÌL„Pooo?B¨§§G¯ÂÊÊJWWW|–°°°†††ªª*.—«7µnÛ`åcgÏû|3 r£kÊ”)øaK¡PÐh´{÷îá«r¹\ƒºØÜ¹sE"Þ.++›?þðððO?ý$•JÕjõ7Ðÿ‹¡òòr|"¼ÓXnnß¾Íb±ðY„B¡öÞéM­m,ÒàŒãïrs3 þþTcc#—ËE ýë_ÿZ¶lÙÇ»ººÔjõ¬Y³ðu¸\n[[›ÁNÝ¡ˆ5Ø©;ÔêÕ«÷íÛ÷ðáC¡P~üøñááa…BÁ`0d2ÙÁƒB‰ÄX%èîî ùòË/‹ŠŠ-Zäéé¹}ûv|…]»v555ÕÔÔìß¿ÿí·ßÆ;¥R©î O,rr ëIàü†J¥Î›7¯ªª ¿©¯¯oÆ ÎÎÎîîî»wï–Éd;uO2ÄbñƧNêìì¼uëÖÁÁA ÃŽ;æää4mÚ´'N¬_¿žÍfc£¯ÿuÛR©tÏž=~~~L&Ó××÷ðáÃCCCØÿN_²²²f̘Áb±vìØ!“É”Jå’%Kììì°ÑçÅ+76£1äžßöwóòò¢££Éš}Â555y{{›óîDEE!„ÈúÓ$8N ¹™S¦LáñxdWa>›‰Áf³ÓÒÒÈ®Â| 7€È rˆ€Ü"H~*44”ÜÆ¡ÑP©T ÙUõã?’5;i¹Y´hѺuëŒ}RŽtj5¥ºÚ}öì>ggù“×&C`` þÒ)H{½ØÂååÕ¼÷Þ¹eË|‚­d×b‰àüư¢¢Z„(7nü÷ñã!²k±Dzz$·n5 „!„þýï:²Ë±D._®Ã? ŒaX~~ ÙåX"Èyyßk4BH£Á¾ÿþ¡H4@vEr£ïÑ£^¡°Ï BˆF£ß%·$ ¹ÑwéÒ]:}d·¨Õš‹áP¥r£ïâÅ¥räå> ÃêëEÍÍÝ$–d 7£Ô׋ššºñ+)-++Zqñ²J²L›QŠ‹ï0ú¯¡+•ê ªI©ÇbAnF`–Ÿÿ½Baàû%ÚÛû…ÂVó—d± 7#îÜyØÑaø’Uz 7#._þ! ƒAûO­ÖÁÕøˆIð{¾f4—Nù®‰¼¼ÿYÓ¦9á‹ÎÎv$Õe‰àýp£<!£kÛ ÃÛÛû½÷Þãr¹2¸ÈåòÏ>û¬¦¦F$MŸ>= `ݺu4í‰Nìn4è7þ|“ššZPPPPPÍápþþ÷¿[ì÷|‹D¢·ÞzK»844Äãñêëëy<^FFFlllYYYBB‚F£yâævvvëׯ¦ÕþÆsãèèèäääääÄáp¶mÛÖÖÖöøñc²‹2L£ÑˆÅbíâéÓ§;öꫯr8œ€€€´´´ÎÎÎÒÒÒ'nîàà°uë³ý³çO›àààÒÒÒ¸¸¸•+Wž;wîêÕ«ëׯã7N:…úôÓOSRRð5e2Yxxxcc#BèÛo¿Ý¼ysXXXLLÌÕ«WB†ÅÅÅEDDüùϾ{÷®îa¥½½=88¸²²rÆ «V­úôÓO•J¥ÁNíʺ¬œF£Ñét[[[|Q¥R¥¥¥­ZµjÕªUiii*•J­VçääDGG¯\¹òèÑ£R©_S*•&%%½õÖ[‘‘‘'OžT(ø~¸víZ\\ÜŠ+.\¸ Ý9c;MœèOúBhõêÕøVeeeï¼ó•:òá¯Ø–••ܺ›ëîÓ‹*DžojkkOž<¹uëÖÌÌÌÛ·ogggoß¾ýÌ™3b±xéÒ¥•••jµ!TYYéîîÎårårù¡C‡V®\yáÂ… 6¤¤¤Èåò+W®œ>}:>>þÌ™3ï¼óÎÑ£GÇNT\\|ôèÑ#GŽ|÷ÝwçÎ3Öéè蘀ߪÛFÉår™L&“Éz{{³³³CCC­¬¬ð›òóóE"Qzzú?ÿùÏ;wîääääççWTT=zô£>jmmøšüqOOOZZZrrrMMÍùóçñþ[·n?~œÇ㥧§K$c&NtâÄ „Paa!BH*•öõõ=ãr¹=2¸t7×õTÅ›ŽHn¢££™LfXXB(&&†Éd†‡‡#„$‰ŸŸN …¡k×®………Q(¥R‰a˜L&c0ááá%%%ÖÖÖÛ¶m pvv^´hQ||ü؉¶oßÎáp|||âããËÊÊŒuÚÚÚ¾ñÆø­ºm„P|||DDDDDÄÚµk¯^½­½©´´t×®]l6ÛËË‹ÇãUWW_¹reÓ¦M^^^3gÎÜ»w¯¯¯/BH¥R]¿~}ÇŽîîî^^^7nÔV²råJ;;»×^{ !¤=FŒí4q"SP(íùÁ£çi‹7‘ë)&“‰ÂßÌÒm#„¨Tj@@@EE…——Wmmíž={Bööö}ôQ~~~NNÎìÙ³cbb-Z$‰tž¼¼¼ÆNÄápðÆôéÓ{zzÆé4F xzz"„†‡‡O:•’’rüøqü¦ÎÎÎ5kÖh×´µµU*•ÚÁg̘1cÆ „P¿F£ñððÀû===µ“²X,Ýûn¬ÓĉtÙÙÙ999555-X°@·¿©©iöì٦-Þt^tóæÍo¾ùæÅ_tqqA k4šC‡•””DDDìß¿_"‘°X¬ææfíV<;T[[Þhmmuvv§ó‰¬­­ÃÃÃ00€ø>¬7ÔòåË÷ìÙ#—ËCBBbccñçX½N„ÐÀÀÀ‡~ˆŸÖè¶õ¸¸¸0™L±XŒ[7oÞœššºeË …Èãñ¨Tª\.çóùr¹|ñâÅ<ßp×®]©©©Û¶m³²²Z¶l>©éLœÈÍÍíÅ_\³fÍ_|b2™999iiiîîî!!!‘‘‘Úóz½ý@£Ñt7×ú•Å3êïÝQ(” ùEVVVggç|`ú&z/q|ÅÓ /ƒN ¤ì‡àààÜÜܨ¨(|q‚S …B$•––þñœØ‘E™àÜüôÓO<ïõ×_Ÿ?ÿWýYJ[[Û7ß|Ó”Îç%ì‡grœ¿=Ïö8ž@ä¹D@n!º¿wgÊgÁsËèïÝ]¿~]÷½´h4ZDD„v‘b±Ÿ·– Îo@ä¹Dü?bSþÿ“Ü<*IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadInsertPolicy.html0000755000372000001440000002702012502417163027216 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadInsertPolicy Class Reference

Exception thrown when an insert policy is too strict to create a valid INSERT statement. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadInsertPolicy:
Collaboration diagram for mysqlpp::BadInsertPolicy:

Public Member Functions

 BadInsertPolicy (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when an insert policy is too strict to create a valid INSERT statement.

Thrown by Query::insertfrom() if it is unable to add VALUES to an empty query. This means the size threshold or max packet size of the policy is set too small.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBSelectionFailed__coll__graph.png0000644000372000001440000002145612502417165031741 0ustar robertousers‰PNG  IHDRÐÍFŽifbKGDÿÿÿ ½§“ IDATxœíi\ÇÃÇgspË! PnD­­ÚzQ”R(VTô/ŠTTÔ±* ÞÔÂãÖªX° Òz¢‚Z/¥jñ¨"¢´ÜˆÎ!kŸÛOI8Mv˜ï«ÉÌììov~Ù™ÙkE‚$¢@Ðp\†ƒà 4W(’?¸\nqq±H$"Jꢥ¥5|øð÷/§¡¡¡¦¦æýËQ($iøðáýØöõ´´455ÉIØ`¡£££ººZ.†«¯¯ooo×ÕÕ}ÿ¢GCCƒ‰‰‰ ‡áèèøÞ’õõõ¯^½’WiºººJÞwîÜé÷¶p Áh8®@ÃAp‚+ 7\II ‚ ŠÞKŸPBIŠCÙ*+Õ••Ñh4¹¥ $êëëoÚ´‰X=r§«&P¶ÊÊÇp"‘¨©©I.E)I…4mÏž=Äê‘;]5²U¶?†ËÈÈprrÒÐа±±9uê`Ò¤I€aÆ„Battôˆ#† òé§Ÿ>|øÛJòÜ.æóù¡¡¡&&&ÆÆÆ¡¡¡|>?==ÝÌÌŒÅbÎ;7bĈ¶¶6@°sçN ##£¥K—677wµ9VxZZÚÈ‘#ƒƒƒ;::$Jî½¹¹ù믿¦Ñhæææ!!!\.€ È™3g†ºoß¾þY…Ò}`¼}û¶……Ebb¢¸²ÒõBQ4..nÔ¨QºººŸ}öÙ•+WÞÿ¢ÔÕÕegg£ÝÂf³ÕÕÕãââ ÆñãÇ) ›Í...õã?§¤¤ÔÔÔ\½zÕÔÔKjnnŽÇòH†÷îÝ;o޼ׯ_ççç?><<EÑ¥K—úûû×ÖÖš˜˜<|øEÑèèhGGÇüüü/^Lœ81$$¤«Í11nnnEEE¹¹¹vvv’ %Ë/vuu---ÍÏÏ=ztDDö€àüùóY,V||< ©©©ûcÒ›ãÖK ºÏÓc`á/¾ø"+++//O/]¯øøx33³ëׯ744ܺuËÎή“%d’]WW׿ öÙpL&“J¥îß¿ŸÅb‰D¢ÖÖV¡P(YÛ#F$&&Šóÿúë¯Ý×ÁÞÞžÁ``á[·n9;;£(Êb±ÌÍÍœœ0 (:räÈ””,üêÕ+qXzsLL~~>™””dgg'Óp<L&‹8%%ÅÎÎEQvx< ¸¸¸ûc‚³ázlÉ# /]¯Ñ£GŸ9sF\òÙ³gm¸>w©ÙÙÙ¹¹¹æææÓ§Oÿã?H¤w ©ªªrvvÿtrrê¾ÀŠŠ :Ž ‚ ³fÍ*//èëë¾|ùrÍš5X¶ÊÊJñÍJooïn6ˆ3ÛÛÛ¿yóFæ®ëêê„B¡­­-öÓÎÎNœ;1S©ÔÞœé± 0ìíí¥#;Õ«´´tôèÑâÔQ£F)FòôÙpG$]¼x‘Éd._¾ÜËË‹ÉdJf°²²zþü¹øçË—/»/F£‰O!,+77PUU3sæÌ7bÙLMM+**°p^^^TTT7›°6 ¨¨;ÊÒ˜˜˜Éä²²2ìgii©™™–Ù„JBM€!óßÒ©^–––’ TXX(wµôuAÜÜÜ’““[ZZx<•JÕÒÒÂ’Øl6`õêÕ¡¡¡iiiµµµ×¯_ß±c–úöíÛ„„éðܹs7oÞ\YY™ŸŸïîî~ôèQ‘H°víÚsçÎefffddüüü¶nÝŠõ8AAA•••]mŽÅ¯[·®¤¤äñãÇ[¶lY²d‰¤B1T*uáÂ…ÁÁÁåååÛ¶m[¼xq_þôؽçÛo¿ »yófSSSVVVDD„ÒMPMJJ²µµUSS³··OKKCQ”ÏçO™2EGGEQ@mgg§­­=yòd씃¾;˜ ·´´,[¶ÌÀÀÀÐÐ000°­­íÈ‘#cÇŽåñx(Š^¾|™N§3™L.—bjjª§§·hÑ"‹ÕÕæXá –––4míÚµGR¡äÞ™L¦ŸŸŸ¡¡!N_¿~=‡ÃAQHŒÛ€òáОš «C-]/¡PxðàA[[[===ww÷´´4##£÷Žë¤Aù‘<Äø€¿áäEFFF^^žøç¥K—°I[÷à:i€ $òóó—,YòôéÓöööÜÜÜíÛ·¯X±B¡{”ñ¦ª£««»jÕ*¢U¨aaaííísæÌihh°±± Pô¡€†366Ž‹‹#Z…j@¡P"#####qÛ#ìR!¸ Áh8®@ÃApEƤAù_ÄÃã y<¡ŽŽ±2úz}¿{¸\n¿› £Y¨®O–£¹óŽáÔÕÕ)**"JM_ÉÈ(NM-Þ°ácGG‚Ÿ7îß[Á2Ëihhhmmíó–(hº¦ÁÌR³Ú̦*öÛ ‚¨««÷s[T•¿—šúô›oN‘ɤ½{}|}'-‡0\Qö¶òŠì·Yvo,YMyGJÊ«¬789} E!!Iߟ&©ðŸ§ß´7òÓþ©Ìiè[ª+³Û€ªÎÚš¦¥õï¹=>>çÿ‹miá+ g^¶%/(d•rQ!J¢ &N:D+êÕ6‚ cÆüû¬›H$ÊÍ-5ë@yy±ªp£ä:3= ˆÇŠ( €æ E´¨PmÃÆ·¢Rÿ— "£ÙÝý`nn)±ª þ:ÆÈÞV €Høï@B$D¡áŽ“ÓBá“2@ØÞÞ±`AìÅ‹ T¥P¢ÌÍåÏ(øoØŠ‘¡Ã5 Ö€áÌ;Í„B‘P(üî»sQQWÞ4‚Ã\]YT‘ÝŒJ]úзT'«)ÑKö2QyÃYYý7oƒ=X›˜Èáð¦XeÜËK ÿá ‚Î$1vÒ&DUŸPyÃ!âèH—™$¡¿ÿžôhÎ’Ç­²¶:¾HÊm4{eÀ`8ÀøñVjjïÑ‘É$A||&,[6…UŠ`úNK @@ªçD¨Jn <€éìl!Å?±×ŽÆŒ1ß·oÁèÑf„ÉR&cµç_U|•ùç*^›¾3c0©ì300 '9o “Éšš ê™3*0¦é3þåPT„>:TÃ}+@Hÿ^Qþ{ * ±G,-iššT ÁúÐìì0 jTÔ¢u) [ø8¦ÆÊUÏëÄ € ‚V×@0‰„Lœhcooš‘±îÇÿgf6tëV¯óç>{öšhi áÙñZ‘ý(ÈÔÄIÛû¬ý§áæTm2ýCe¿©…¡ÚO‹tƒÏQ6»ãêÕõ$’²_šêÍåÜäÿNZoîø?•\Nc œád9ïÕ«šw¿áÁ¾*Q ”ú{£Ý0` 7rä0?¿O¢¢2Òó#YÍÕ[?Ùô¢²§ík8@h¨;Š‚n-DN àI\Õ ýaΪ1\“É€Ãaœ=›~ñÆÙw#T‹·•duDgÁïp¼Üp"êåõ“¶¶ú… ß­ÀÀîR$òÿ7ÿÁƒ’+Wž÷œ¢x¸ácÇ~àãóQDDj{ûÀylDuø†lÝêÅfwÄÄÜ&ZdpŽFÓÙ¸ñóŸÎ<¯;(-|Ò F }þùþ>0LL\N´–>Àc Id„¢9pÎ §&ÝC¡¾ÿÞûæÍ‚Û·å¶t3<:\}eUß>„€ HII‰‚ô¼?ƒÅp€)S†{y9oß~™Ç­¥WÔ¿h+LitZj¢ˆÂ‰ZoñU}}K|ü]¢…ô *÷÷V™OÒµ™i ˆò‰ZopŽN× rýé§[µµo‰ÖÒÿ¤72‹9“6˜wŠŸ‰ŒÌhiá(£þE[k aχv5£Tľ»áaa_ˆDèO?ör—‡fo¯xt¸š(x ôô´6mòHHÈ),d"àù¯µíüIëÔ‡žº|}'c¾sg*þ»n­á=?Yçüõ0m~ù¯÷@É„ìÚå}ÿ~ñï¿çã¼ëG‡ªµ‡QÇú+ä¡7%î_>üÐjþü ;v\Æó定'­e™¬‰ß™“¨ƒå¢ 4ÜlÛæÅfsccqú&°H€>Ø[e1EÏrš>{T áþÃÈhÈúõŸ=šõú5Âršø$*2qpÌÄ ö; À^î²´¤8@´– <ý…Búþû9ׯ¿ÈÊ*$ZËÀžád°bÅÉÂBFvv˜ô×ø!ï <ÃÉ`×.ﺺ·ÇÿA´4œ LMõ׬ùìàÁuuÊþr—Ê '›  סCuð·÷‰N6êꔈˆ¯’“ÿ’ïÒ«çêkó”ñ¡vÜ€†ëw÷1..ö;v\–\õ}hú‡“ûcuKU‡\JSQ áºã‡¼‹ŠêΜɕCY(¸¿·ÊÈQkÄ—†r(Me†ëkk£+¦íÙs•Él{Ï¢J®3ë_°?ÝôôB€ƒ h¸øî;7uujtôµ÷)„Ç>?44ÔÄÄÄØØ844”ÏçË”!¹ ¤†æææ¯¿þšF£™››‡„„p¹\ìž9sÆÁÁaèСûöí“S˼ ºƒÑ#€¤¤¤ó,Z´¨¥¥%!!°`Á‚–––cÇŽïÞ½khhÈçóQ=}ú´£££H$b³Ùêêêqqq ãøñã …Íf;vÌØØ8%%¥¦¦æêÕ«æææñÚ?XÀÍÍ­¨¨(77×ÎÎ.""Bf$Š¢ÍÍÍñññ˜<É0 //¯õ]°¤¥K—úûû×ÖÖš˜˜<|øEÑèèhGGÇüüü/^Lœ81$$˹wïÞyóæ½~ý:??üøñáááÝhÃ6‘ /^¼ØÕÕµ´´4??ôèј`ÀüùóY,V||< ©©©Ç¦ññññññé}Sö e7ÜÓ§OQåñxÂÅÅÅ`ذa·oßFQÔÃÃcÏž=(Š2™L*•ºÿ~‹%‰Z[[…B¡££cbb¢¸Ø_ýUÚpùùùXjRR’ÌÈî¥võgf±XæææNNN˜P9rdJJ ~õê•8looÏ`0°ð­[·œ»Ñ†ÅˆÃ<L&`ñ)))˜`@vv¶äqëþ˜£ 6œRw©€!C†¨Tj§0€L&Ï;7%%¥±±133sñâŃìììÜÜ\ssóéÓ§ÿñÇ$©¬¬ÌÙÙY\¦“““ôކŽìííß¼yÓMdWH·%¯¯¯øòåË5kÖ`1•••â’¼½½±pEENÇf¸³fÍ*//lºº:¡Phkk‹ý´³³çÄ7bQvÃuÏåË—/\¸0eʬ£äp8"‘èâÅ‹L&sùòå^^^L&ÓÌÌìùóçâ­^¾|)]vªa-ÔUd_©ªªŠ‰‰™9sæÆ±SSSñÝñ¼¼¼¨¨(,L£ÑÄ®e±X¹¹¹½—abbB&“ËÊʰŸ¥¥¥ffÿ¾³#^ÇRP")ý`êÔ©`×®]~~~X ‚ nnnÉÉÉ---<J¥jii„††¦¥¥ÕÖÖ^¿~=<<\º¨uëÖ•””<~üxË–-K–,é*òíÛ·Ø€²SÐÐÐPû.‘H°víÚsçÎefffddüüü¶nÝZPPPPPTYY‰•0wîÜÍ›7WVVæçç»»»=z´m¤R© . .///((ضmvÊW:ÔU÷èÝ®ÓÒŸÒáÕ«Wkjj¶´´ˆ·JJJ²µµUSS³··OKKCQ”ÇãíÚµËÚÚZGGgòäÉgÏžRc¸„„KKK¶víZ‡#3}w.îêØ9rdìØ±<EÑË—/Óét&“ÉårCBBLMMõôô-ZÄb±°BZZZ–-[f```hhØÖÖ&SŸÏŸ2eŠŽŽN' L&ÓÏÏÏÐÐN§¯_¿ÜÕqë†Á;iè [¶lñõõíÓ&Ö¦•¹T-Që×*ƒ …N…/ür¹Üššš'Nœ;wŽh-Þ¢Âc¸‡N˜0! `ÆŒïSŽ®®îªU«z‰?J"CŽö ‚ III , dïnÀåÂ… Š(\…ÏpU‚+Ðp\†ƒà ‘“†1cƘ˜ „eQár555Û‰"^¼x1mÚ4M»·aƪª*¢ö._jjtÊËõ>ú¨VMMH´90mÚ4Å]=€ß‘®®Ñ……5Û¶y}óÍgDkQvàî}©¨h,,¬\ºÔŸÏ6 áÞ—ää'T* ð÷ß5ÿüSK´eî}9þŸ/P(äôôgDËQv áÞ‹üüªêj„.<†câî†{/RSŸR©dñÏêjV^Þ™z+h¸þ#Š.^|Âçÿw)„B!§¦>%P’ò ×=*ojzç9o@˜œüX^‹Á H áúO§þƒÉlÿóÏBô¨Ðpý„Ϧ¤<•ìO1(RJ œ«v 4\?¹sçï¶6+Ÿ ¢ôôg<žI*4\?¹|ù/ EöÑãp:²² qÖ£*@Ãõ“ÌÌB@ö­zÐp]oÞ÷“ÜÜÒ††V,üäIE|üÝcÇüÅ©NNXZüåú ¿&H,“&ÙŠÃ( âãïzy9w“‚»T®@ÃAp‚+Ðp\†ƒà 4W á ¸ Áh8®@ÃAp‚+Ðp\†ƒà 4W á ¸ Áh8®@ÃAp‚+Ðp\†ƒà 4W á ¸ Áh8®@ÃAp‚+Ðp\†ƒà 4W á ¸ Áh8®@ÃAp‚+}û¨ô¥K—Ž;¦85*Jk«nuµ¹½ý+¢…(Gµ°°Çôí£Ò.\xþü¹£££¼…©6ššL;;¦®"Å•+Wüüüúo8€££ãÎ;åª 2`¹sçN§8†ƒà 4W á ¸ ÁÕ[ú¨ººzÉ’%ÙÙÙr)ÍÅÅE611;vìš5kôõõ¥Sutt&L˜°nÝ:,•Ãá$&&æää0™L###WW×Å‹«©©)Bsÿ6—/Ff!âòû´£þ©R=Ãɘ˜:.‰ªªª’““Oœ8¡££#™Š¢hccã‘#G>¼cÇÀáÇëêêvíÚeddôúõëÇ·¶¶ËKƒÁX½zuZZ@GGgÑ¢Eý®ZÙú]~?€]*Ð××:t(F7nÜ?ü@§Ó/^¼Ø)ÕÐÐpäÈ‘=ÂâïÝ»·råÊáÇëëë;99ß¿_ŽªD"QKK ÖÓÓ ìG!˜xIdfëwùý@!†sqq¹víš¿¿ÿœ9sΞ={óæÍE‹yzzž8qpäÈ‘}ûöa99Ž»»{qq1àÁƒË—/wssóõõ½yó&EÑË—/ûûû{xx|ûí·Ïž=“ì&ª««]\\îß¿ïçççíí}äÈ>Ÿ/3RœYrC™Ê™={vnn®ÌT2™l``€…µ´´RSSÅžprrJJJ ..ÎÛÛÛÛÛ;..NðîaéT¡PxòäÉ… Ι3g÷îÝl6ðÍ7ßæÎÛI0›ÍÞ³gÏW_}åããËãñ°ž™™éïï?{öìóçÏwß:þùçÊ•+ÝÝÝçÍ›wöìÙ®ˆ´N‘Htþüy???   ÂÂþ¬ «¨.õ¯¿þнsçNttôŒ3Ž?ž••uàÀùóçOŸ>}ûöíB¡L&ß¿ŸN§ÛÙÙq¹Üˆˆˆµk×~úé§>Ü·oß´iÓ233ûí· 6Œ5ª¤¤d÷îÝÒ;JMMݽ{wkkkTT”®®îÌ™3¥#ýýýõõõCBB°M$ÃÒ˜››×ÔÔˆr¹\‡ƒ¢hSSSBB¬Y³°øÐÐн{÷Ο?ìØ±&L˜1c†‰‰ –téÒ%ƒqìØ1Ì'Ožôðð(ª««›““³{÷nA¢££OŸ>½zõêŸþyÉ’%)))ä:tˆÉdÆÅÅq8œÈÈH---À½{÷Ž=z÷îÝýû÷{zz2D,^¼­ššZGGÇŽ;fÍšµ{÷î¼¼¼¨¨(Im’HëÔ××OJJ7GtttWǰÕ¥.\¸PKKËÍÍ àëë«¥¥åîîhmm=z4…BÉÏÏdffº¹¹!ÂçóQåp8jjjîîîêêêÉÉÉ«W¯ž:uª¡¡áĉW¬X!½£5kÖ˜››;88¬X±âÖ­[]Ejkk{zzb©’áY±b…‡‡‡§§çÒ¥K‹ŠŠ\]]±ø &$%%:th̘17nÜðõõ½}û6–tíÚµuëÖÛØØ¬ZµJÜ w•zõêÕ€€kkëM›6usçP dee­]»–N§ÛØØ,[¶L\å9sæèèè|þùçñy/æÑ£GjjjÇ644466´µµÉÜ—´ÎôôtÉæè_/¬¨3œ––€B¡t H$ÒÔ©Ssrrlllþúë¯7† rðàÁK—.iÒ$é$uuuOOÏ„„„ææf ÈÈH ¬ùè£222°œzzzÄZšÍf3™LÉr¤SÃÃÃkkk­­­%%%¹¹¹K–,‘)ÏÀÀ€D"1 Ì”555˜Ï0 ½©`GGGDDDDDÄäÉ“ù|þ9ÕÎ×IDATµk׺Ê)­sÇŽ=6G3Kurr …¿þú+Öç ÍÉÉikkãóù E]]ý‹/¾ˆ½ÿ>“É|ôèÑ/¿ü"]TLLLuuõßÿ-9À’Žlkk»zõ*–*4773™ÌÆÆÆçÏŸoß¾Á`,X° S*“ɬ¯¯?w±±¾¾¾¦¦¦››Û÷ߟ››Ë`0^¾|+îm§N_WWWVV–šš*)X:ÕÍÍ-!!¡¼¼¼¼¼üСCuuuâÌ’#0…Bqqq9|ø0ƒÁ(//?~ü86fí=|>_ P(wòäI@{{»ÌœÒ:gÏž-ÙØ°¯s†#‘HÓ¦M»qãÆ´iÓ°55µÍ›7;v¬¾¾ÞÔÔtçÎjjj . …GmnnÆF‘‘‘Šš9sæÆ¹\.véëb:Eš››±Ñt§0 (( ;99ýòË/’ 8Akk눈ì\vêÔ©øøøêêj—¯¿þ˹|ùò˜˜˜•+W"2mÚ´U«V566Š ”N%‘H\.744”ËåNš4iÕªU€aÆ3fÞ¼y¿ÿþ»d}×­[³zõj*•úÙgŸaµë=:::kÖ¬‰ŒŒÔÔÔôõõuuu ‹‰‰‘Î)­“J¥òùüØØØ¦¦&[[ÛíÛ·cSé>Ñ·0,XÐÐÐ —Ç“jkk·mÛÖûM:]Ú–y¥[¾÷! ‹KRR’dA@—Êãñ Ƶk×¾üòKü÷! WXX¸jÕª/¾øÂÙÙù}ÊÑÖÖöòòêM$Dy ¬K… ”¢K… f á ¸ Áh8®ôùÂoMMÍ•+W!2(@û† ˆÖ Q%Èdò½{÷$-Ô·Ë"È{Çp\†ƒà 4W á ¸òÿS†}ë%qIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FoundRowsOption-members.html0000755000372000001440000001210512502417164030731 0ustar robertousers MySQL++ Reference Manual
mysqlpp::FoundRowsOption Member List

This is the complete list of members for mysqlpp::FoundRowsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/null_8h_source.html0000755000372000001440000012631212502417162024003 0ustar robertousers MySQL++ Reference Manual
null.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
10  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
11  also hold copyrights on code in this file. See the CREDITS.txt file
12  in the top directory of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #ifndef MYSQLPP_NULL_H
33 #define MYSQLPP_NULL_H
34 
35 #include "exceptions.h"
36 
37 #include <iostream>
38 #include <string>
39 
40 namespace mysqlpp {
41 
42 extern const std::string null_str;
43 
44 
49 class MYSQLPP_EXPORT null_type
50 {
51 protected:
52 #if !defined(DOXYGEN_IGNORE)
53 // Doxygen will not generate documentation for this section.
54  template <typename CannotConvertNullToAnyOtherDataType>
55  operator CannotConvertNullToAnyOtherDataType() const
56  {
57  return CannotConvertNullToAnyOtherDataType();
58  }
59 #endif // !defined(DOXYGEN_IGNORE)
60 };
61 
84 const null_type null = null_type();
85 
86 
94 struct NullIsNull
95 {
96 #if !defined(DOXYGEN_IGNORE)
97 // Doxygen will not generate documentation for this section.
98  static null_type null_is() { return null; }
99 
100  static std::ostream& null_ostr(std::ostream& o)
101  {
102  o << "(NULL)";
103  return o;
104  }
105 #endif // !defined(DOXYGEN_IGNORE)
106 };
107 
108 
116 {
117 #if !defined(DOXYGEN_IGNORE)
118 // Doxygen will not generate documentation for this section.
119  static int null_is() { return 0; }
120 
121  static std::ostream& null_ostr(std::ostream& o)
122  {
123  o << 0;
124  return o;
125  }
126 #endif // !defined(DOXYGEN_IGNORE)
127 };
128 
136 {
137 #if !defined(DOXYGEN_IGNORE)
138 // Doxygen will not generate documentation for this section.
139  static const char *null_is() { return ""; }
140 
141  static std::ostream& null_ostr(std::ostream& o)
142  {
143  o << "";
144  return o;
145  }
146 #endif // !defined(DOXYGEN_IGNORE)
147 };
148 
149 
169 template <class Type, class Behavior = NullIsNull>
170 class Null
171 {
172 public:
174  Type data;
175 
179  bool is_null;
180 
183  typedef Type value_type;
184 
189  Null() :
190  data(),
191  is_null(false)
192  {
193  }
194 
202  Null(const Type& x) :
203  data(x),
204  is_null(false)
205  {
206  }
207 
216  Null(const null_type&) :
217  data(),
218  is_null(true)
219  {
220  }
221 
229  operator Type() const
230  {
231  if (is_null) {
232  return Behavior::null_is();
233  }
234  else {
235  return data;
236  }
237  }
238 
242  Null& operator =(const Type& x)
243  {
244  data = x;
245  is_null = false;
246  return *this;
247  }
248 
254  {
255  is_null = true;
256  return *this;
257  }
258 
264  bool operator ==(const Null<Type>& rhs) const
265  {
266  if (is_null && rhs.is_null) {
267  return true;
268  }
269  else if (is_null != rhs.is_null) {
270  return false; // one null, the other not
271  }
272  else {
273  return data == rhs.data;
274  }
275  }
276 
280  bool operator ==(const null_type&) const { return is_null; }
281 
283  bool operator !=(const Null<Type>& rhs) const
284  { return !(*this == rhs); }
285 
287  bool operator !=(const null_type& rhs) const
288  { return !(*this == rhs); }
289 
295  bool operator <(const Null<Type>& rhs) const
296  {
297  if (is_null) {
298  return !rhs.is_null; // less than only if RHS not null
299  }
300  else if (rhs.is_null) {
301  return false; // non-null always greater than null
302  }
303  else {
304  return data < rhs.data; // neither is null, so compare data
305  }
306  }
307 
312  bool operator <(const null_type&) const { return false; }
313 };
314 
315 
316 #if !defined(DOXYGEN_IGNORE)
317 // Doxygen will not generate documentation for this section.
318 
319 // Specialization the Null template for \c void
320 template <> class Null<void>
321 {
322 public:
323  bool is_null;
324  typedef void value_type;
325 
326  Null() :
327  is_null(false)
328  {
329  }
330 
331  Null(const null_type&) :
332  is_null(true)
333  {
334  }
335 
336  Null& operator =(const null_type&)
337  {
338  is_null = true;
339  return *this;
340  }
341 };
342 
343 #endif // !defined(DOXYGEN_IGNORE)
344 
345 
349 template <class Type, class Behavior>
350 inline std::ostream& operator <<(std::ostream& o,
351  const Null<Type, Behavior>& n)
352 {
353  if (n.is_null)
354  return Behavior::null_ostr(o);
355  else
356  return o << n.data;
357 }
358 
359 } // end namespace mysqlpp
360 
361 #endif
bool operator==(const Null< Type > &rhs) const
Do equality comparison of two nullable values.
Definition: null.h:264
Type value_type
Type of the data stored in this object, when it is not equal to SQL null.
Definition: null.h:183
bool operator<(const Null< Type > &rhs) const
Do less-than comparison of two nullable values.
Definition: null.h:295
Null(const null_type &)
Construct a Null equal to SQL null.
Definition: null.h:216
Null(const Type &x)
Initialize the object with a particular value.
Definition: null.h:202
Class for objects that define SQL null as 0.
Definition: null.h:115
Class for objects that define SQL null as a blank C string.
Definition: null.h:135
The type of the global mysqlpp::null object.
Definition: null.h:49
Declares the MySQL++-specific exception classes.
Type data
The object&#39;s value, when it is not SQL null.
Definition: null.h:174
Null()
Default constructor.
Definition: null.h:189
Null & operator=(const Type &x)
Assign a value to the object.
Definition: null.h:242
bool operator!=(const Null< Type > &rhs) const
Do inequality comparison of two nullable values.
Definition: null.h:283
bool is_null
If set, this object is considered equal to SQL null.
Definition: null.h:179
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
Class for objects that define SQL null in terms of MySQL++&#39;s null_type.
Definition: null.h:94
mysql++-3.2.2+pristine.orig/doc/html/refman/_header.html0000755000372000001440000000041312502417162022432 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x79.html0000755000372000001440000001040212502417165024657 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/namespaces.html0000755000372000001440000000602612502417164023172 0ustar robertousers MySQL++ Reference Manual
Namespace List
Here is a list of all documented namespaces with brief descriptions:
[detail level 12]
\Nmysqlpp
 oNexamplesStuff related to MySQL++ examples specifically
 oNinternalNamespace for holding things used only within MySQL++
 \NssqlsxlatStuff specific to the ssqlsxlat tool
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_4.png0000644000372000001440000000716712502417165023746 0ustar robertousers‰PNG  IHDRX3]J‡:bKGDÿÿÿ ½§“,IDATxœí{P×ÇOˆÂó"< ‘‡ ަ§zµZiA1Je¦…1—‡´TG:#NǶZ곈òÐbm‹PRÆBQZ¼MµhÚC0dC²÷½Í,$Yƒð|Æ?Ξýío¿gûÛ³çü6’PäÙÆÆÒ ˆåÀ@@X€ß@¤¢¢b||ÜRj 3ÄÞÞ>>>žB¡XZdŽ1)\¹r…ÇãYJ Ä,8::ÆÄÄXZdŽ1)LLLà:ÂÜ…D"aL 8G@` €@ 0@ VºººH$’ lß¾ÝÛÛÛÑÑqåÊ•—/_6£ó™`°¥fo>b VÌËßÿêààPYYyóæÍøøø„„„úúzKëzVàp8$ˆõagg×ÒÒ‚ï©ƺp~PPPðòË/Ÿúè£×^{íÞ½{B¡0,,,''ç :زX›†ÙöGdJY$MLL¸ºº~ÿý÷(оúê«EEE(ŠJ¥R[[ÛÇËd2­V;::ªÑh–-[vöìYÛ/¿üR?…B6___ƒ•ÆtJ¥R€L&3¸A2™|ûöml³ººsEÜ:ƒT*Õü¡P(4Mss³¾åc 0W¸\®D"ÁÊ !!!¦tUÝxÖ¦‚¡ß/O8Yèää°µµRÉ䘘˜êêê466&&&\\\A[[›‡‡ÇêÕ«¯_¿ncc#‹CBBt>ƒƒƒõOäç燸\n__A¥>...,ë÷ßÇW¶··¯\¹òÑ£GCCCÆÇÇ«÷õõÕ¹"hA ¥³³sÆ +V¬8{ö,Þ’Ëå ð®$ ~Woo/›ÍÆfwÖ­[×ÓÓc¬¥È ™•UƒØØØË—/WUUEFFb~¥R©Õj/^¼(•JSRR¢££¥R©»»û¯¿þª;êÎ;ú®°'$ ³³ÓÍÍ Ò ›7o...Fq_O”••©Õj‹E&“Åb1VßÝÝíîînb§P*•qqq|>¿££ãرcxK,‚à]yyyáwÑét‘H„l™LÖÖÖf¢<dºÌJ x饗&&&8””„ÕH¤õë×õÕWr¹A[[[‡ääd>Ÿ_SS388øÝwßåääè»z÷Ýw»ººÚÛÛóòòvìØa¬òáǺ¥|ùСCÍÍÍIII­­­B¡pÿþýG=tèÀÖÖvÛ¶m===·oßÎÏÏÇ/¦0E€J¥B„B¡(•Ê‚‚Àèè(ÞžÀ ++Kçê7ÞÀ“››{÷î]¡P¸aÆÏ>ûÌDyæÍËÀ¯Ày{{ïܹóþýû3qXQQapyïÒ¥Kf”mø÷ÓçtO*cå´´4*•*—ËñÎ}||( —Ë­©©AQAp8GGLjˆˆ .½9‚“'OzyyÑéôôôt¥Ri°5¾j€¢hooïë¯¿îæææää´jÕªÚÚZÝ.©Tš””D£ÑØlvff¦nÕ€ uÆ9rdñâÅžžžÇŽKHH`2™Sd3¨¨¨ðööf2™YYY*• ”\.ßµk—‹‹ F{ë­·ÆÆÆLéâwr¹\YUu3>þxPP¾B1þX‡3ä±zf›)½0C­­­‰¤¯¯¯©©iË–-Æ&¡Píîî¦Ñh=z$‘H$Ikk+@òÙÙÙæ’­~¿øàƒ™Ÿý)ÿ]é÷‹ù_ ÆÇÇÅbñéÓ§SSSÍî2-ÔjM]Ýwî<áç—“šz¦¾þ¶Z­Ñý)X $éôéÓ £¨¨èܹsÇÙÙùý÷ßddd¤¤¤`– …ÂÁÁáÖ­[€ºººàà`{{û%K–œ;w Õj?ýôÓ€€''§ˆˆ@€]cï555K—.e2™*•Ê`%˜üBAðrA"‘ÒÒÒ®^½Šm^¹rKce³ÙEEE€ððp€««+f V«ù|>‹Åb2™|>_­V»&ø“_Ÿi¹%Ì2"øá‡\\\òòò¦{à” 844´{÷î)6+Ÿ&@  ²²R­Ö\»vûwÎùøü‡ÍÎôôÌb³ßÓÿg%#0GÒRP½Š¢ííí‹-BQ” —DgLB0&¾>ÄnMïŠ{8TUUmÛ¶ µ¦ÇdZÉÿÚ±cÿo¿ÊmlHZ-QWæço^¸Ð~Võ$'o-+;G`C"‘:::BCCÕj5…BÁ—E"‡Ãñðð8þüš5k6mÚ•-“ÉX,VaaaJJг³óØØ˜ƒƒCpp0ŸÏ×ýÖ^ii)ljD~~~(Švuuùùù …   @UUÕ¾}û¾ýö[ýJÝ:ŽA©"‘È××WWóóÏ?¯[·N&“!"‹===©Tê?þ¸zõjÌvvÌ8 @ `„ÆÆF>Ÿn˜<%~“øúøúú¸%hHee%¾_æù·ÏTêÒ††ÿçGÀÁƒµ³­ÇÞÞÇ3SÒR‚ƒƒ±'!––òñÇ„……åæænܸq¶ÓR "‰°T,U$55U¡P„††4ÆCt›ÎÎÎ&ž…8±å‰Ýâ±ê@€7óòòŠŠŠ*..f0Oì°¢¢"!!A¿þâÅ‹±±±ó`(46vëðáLÆ­¬¬íîݶ¶dµZcÌøÖ­ý,ÖÂYÕC"‘xw†NbccõÓR)//ŽŽÆÒR–/_Že,-{øOIKѯ4E?¾iÓ&ðOªHUUUtt´J¥:s挾=NØ€bdddpppZ×ÁfqkíŸ!ëVkΜ9#—ËÃÂÂFFFŒ‹Åb:NàmË–-Wk^|ñÅììló«·‹Û½ýöÚŸ~Ú'dgdü›Í^°µµêˆOŒõ¤¥îß¿?88ØßßßÜܼuëÖžžž={öÂT…Bf)1Ä4 `¾¬Ö<5€Þ$F£½q£{ß¾j.7—Í~?qh=“…s%-ãxzz&&& é$é§Š¨ÕêÈÈHGGGÌ€ 1„x²øú˜%ßÄZÁðð°~€Þ$í… V¬X•õ?ì¥Ñh‹…|ÆK|Ý >C&vk¬!O ‚O©Djkoñx'==³Øì9–G0_ÓR,…5‚›7oòx<ƒ1000e—~ °þÕš††l9W,›çMSn¼‡•—·åæ^ÔåXV1J¥²»»ÛÕÕU Lë@°¢@ T*KKKW­ZZRR2::ªoC>ìÕ|ÆK>C&v‹Ñßß_PPàáá]__¯ÑÌúý¦Ã\O`s1s=ó;-ÅRXK À›<ïÆZ­Ö˜ñ«AMMMdddHHÈ®]» {ûI‹äÎÎκ]3y%#p‹AìûKÿ{÷î™|mfÄü Ù@¿_,³jÀ`0[[[[ZZV¦€ê­Öü°WÇ,}Æk¢Û¡¡¡;wîôõõ………Q©T³œ™%,–/_.ª««ÿüóOÿ7ß|ó—_~1h9çVk´Zíµk×¶nÝŽ¢hKKKyy9ñ¢&byðËLÊd²#GŽøøøôööNÙ…×9WVk.]º~þüy•Je–ë3-€• Å­MC¿_,04 öaÉ\ǔߞ=¬íƳ6= ý~±–„3kOs4…)¿n9xðà‰',­ò¬%@æ%{öìù믿,­2•øøø^x_d)..¶´ˆİÑ8™!0@   œ,üâ‹/ž¾bA&www2™¼{÷nK©Ì2™lúÜè˜ô+ÆäÙÎ@   À@@ÿà'#uœesIEND®B`‚././@LongLink0000000000000000000000000000015300000000000011564 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__inherit__gra0000644000372000001440000001551212502417165033257 0ustar robertousers‰PNG  IHDRÐË׊{bKGDÿÿÿ ½§“ÿIDATxœíÝ{Tgúð7$("hpgQ ¨,—Ú£®õÔ YQ—V«H‘® ÈZñ¨€ÕS1åp¬¨­[Å¥Pƒ\‹,*xAËEŠ k—[=ÊE…„DH2¿?ÆßlLB &$}>MÞLÞy毙Éä5P0 CEGÝ€?  HESw!ôìÙ³;w …Bu¢µôôôΜ9ccc£îB&Fà***®^½êíí­îB´Ö•+Wüýý!poÉÈÈPw Z‹B¡¨»„7à H¤‚ÀRAàÞhjjÛ+k>ŸñÞ{ï.\¸ðÈ‘#"‘H-•L(¸qÑßß¿`Á‚ÄÆÆVWW8p ==}åÊ•b±Xáú--- _¦Óéû÷ï'±XRM Û"Ú$::ÚÄÄäæÍ›T*!4{öìU«V9;;§¤¤ɯ/‘H^½z…/3Œ£G’Z.‰4éŽB¡œ?ÞÑÑÑÄÄäèÑ£©©©¶¶¶Ó§O?tèB(,,,00_“ÇãéëëÿüóÏ¡üü|WWW===;;»ÔÔT„D"‰‹‹stt444\¼xñíÛ·¥Oaø-//oΜ9¦¦¦aaa¯_¿V؈Þ>ýI/§¥¥EEEáiÃM:5"""--MaW|ðBÈÜÜ\¦ŸÞÞÞÏ>ûŒÁ`X[[‡‡‡ã_ÆP(”ôôtGGÇ3f;vl\Ç|ìa‡ÃQ¥„ÐæÍ›ûúú’““B›6mêëëKLLDuww—”” a–––æää$‘Hx<ÞäÉ“:::Î;G£Ñx<^bb¢©©ivvv{{{AAµµ5B¨±±¯_ðððhhh¨¨¨`2™l6[a#†a½½½IIIxyÄrOOB¨««K¦þÒÒR333%ýã«I/ûùù¹»»777×ÕÕ9;;ãEmܸ±§§')) !ôêÕ+U†ŽÃá¨v4Æ—†®¦¦ðÁÁA™åÆÆF‘Hdnn~óæM ÃÖ¬YsôèQ ø\®®®î‰'zzz$I¿X,vrrúþûï‰nøáùÀÕÕÕµ1™L…ÃÕ9\àÊËË †’þñbyppJ¥>zôoÏÎÎÆ7Šº}û¶ô¾«2t$pštJE"„tuue–BT*õ“O>ÉÎÎîîî...öóóCݾ}»¢¢ÂÚÚzùòå÷îÝÓÑÑiii™7oѧ«««ü†ð…¹sç¶¶¶*i”G§ÓÍÍÍkkkeÚkkkçÏŸ¯zWb±ØÞÞÈd2‰5---¥÷]ƒhXà”óööÎÉÉÉÈÈX²d ~¢‰äÊ•+\.700ÐËË‹ËåZYY=|øxÕãÇå»ÂßfB øÑ®Q!??¿èèhéϤ|>?66ÖÓÓSõ®ÌĮ̀TjKK þ°¹¹ÙÊÊ _ÖÑÑØ§î·X É)•8}(\‰D¦¦¦fff)))øS@OO/33³««ëìÙ³zzzàÈ‘#¦¦¦¹¹¹……… ¯áX,Vcccee¥ƒƒCTT”ÂFl˜k8 Ã~ûí·9sæ,_¾¼°°°¡¡!;;ÛÉÉéÃ? …JúïïïÇÞ¾†óõõuwwoii©¯¯wrrÂ7:Ü8(º rJÕªÀa¶cÇŽ)S¦ôõõIwnoo?iÒ¤¹sçæååa688mkkk``°xñâ‹/Ê.99yæÌ™ c×®]@a#öv8¤—1 ãñxûöísvvÖ××wrrЉ‰®ÿ¡¡¡%K–ÈôÃårýýý-,,öìÙƒo÷{©8ULàÐÇÏÛÛ{ɯJMˆÙ"_w7ÏÒ’N\Àá÷~õôÞüÒ‚ŽŽNww¿¥%]mõi˜-2!!? „Ô]ˆæS*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@*  H¤‚ÀRAà© p€T8@* •Æü¦­­íÓ§OÕ]Å4!$u«»7lmm[ZZÔ]…J4&p eÏž=‹/Vw!NyyùÉ“'5å8jÒJðÁÞÞÞê®bÂÑ”¨áà H¤‚ÀRiUàx<^xx¸­­í”)S>,*ûë¹MMMÄŸw>ŸñÞ{ï.\¸ðÈ‘#"‘H•Žz‹ZC«·k×®ššš¬¬¬gÏž;w.///""!ÔÒÒÂ`0ä×§Óéû÷ïéVúûû,XðàÁƒØØØêêꤧ§¯\¹R,+\_zë£Û¢VÁ4BˆÃá(_‡N§WTTKJJlll0 kllÃ= _ºt©H$"Zx<Þ¬Y³’’’®?¶[—Çáp4é8ª»U©8›­[·vwwË´#„ÌḬ̀ÿ?üÅÅÅúÓŸRRRˆC…JKK›;w®‘‘Qll,†a‰$>>ÞÑÑÑÐÐÅbåççã+›››ÉlâÌ™3Ë—/Ç;ÏÍÍ={¶‰‰É®]»„B¡üÖñ—ôôôYíÛ·O (,ã pãB•À]¿~ÝÊÊjòäÉ+W®<~üøÓ§OñvéÃŒ/¯^½úÖ­[µµµÒÛ¸qcOOORRBèÕ«WIIIVVV×®]ëêê***b2™¡žž„PWW—̦KKKÍÌÌðÎ=<<***˜L&›Í–ß:¾ìçççîîÞÜÜ\WWçììÌf³–ñΑÀ U‡a˜H$ª¨¨ˆŽŽvvv¦R©éé阢ÀÕÕÕÉ´#„nß¾aØàà B¨±±ÑÙÙ9îâÅ‹JW^^Î`0¤;Ç0ŒÃá0™L…¤R©=ÂÛ³³³™L¦Â2޹˚8íùÐÀçó/_¾ŒZ´hÑ¡C‡êêê<©på¹sçÊ7ZZZ"„tußüÔææfgggâÙ?ÿùÏ!:nnnŽ¿5J«­­?>¾ìàà@l¥µµUab±ØÞÞÈd2‰5eÊÐ2Ú8 Ã|}}ëëëñ‡ eÕªUÃÝ­Px8utÞ™3g>~ü˜xøäÉ|ÁÏÏ/::Zú3)ŸÏõôôÄâoc¡††<=òÌĮ̀T*1Å£¹¹ÙÊÊJaZF{öÍÀÀ`ëÖ­>>>---eeeááá›7o&Vàñx#êpçΑ‘‘7nÜxõêÕ­[·Øl6~ -**êåË—îîî×®]kllÌÉÉY´h‘••Uhh(þÂÝ»w755=xðààÁƒ[¶lQ¸u]]]Ÿ°°°_ýõÑ£G_~ù¥ŸŸßïÚM¡îsºª ×p"‘ˆÍf»ººN™2eÖ¬Yû÷ïÇ?ú -Y²ÄÀÀSt=GôO\0áËb±øäÉ“öööÓ§O÷ôôÌËË311ÁWàñxûöísvvÖ××wrrЉ‰ :LNNž9s&ƒÁصk—@ në\.×ßßßØØØÂÂbÏž=ħT™2Þ92šu §9…ªö¡a åçç×ÖÖ333çÍ›§ü%ã}ËM!Í œöœRÇ\]]Ý–-[jjj***:¤î¢4ž&MÀ$YddäÀÀÀºu뺺ºììì¶mÛ¢ü%Ó¦M{ç:pš4ÅœÃálÚ´IÝ…L8>>>šrá” H¤‚ÀRAà©4éCƒ‹‹‹™™™º A!>*BhêT¾º A¡ÎÎÎúúzM9Žs[dï޽ϟ?Wwo47›Q(hþüNu‚BFFF+W®TwªÒ˜w¸‰ãáÃç«W‹ºvm¯«ëŸÔ]ކk¸Ëϯ¥Ñ¨4šÎ?ÊNRï±Xrùr¥H$‰$—/WŠÅuW¤a p#SQÑÂå¾™hÄåòîß׌ß,š8 p#““SM£QñeM''§Z½õhÜ ŠòòjE¢7s}E"InníÐâÿŽ ‚À@IÉùü×Ò-|þë;w~QW=š7YYÕTê[?Ô@¥êdgÃYu pªâó__»V/ó±T,Ö˼í% pªºqã1qõ&M$=–o AàT••U5ÌïQ23«H.FsAàTòÛo%%ÿ‹| (‘HîÞmøí·ò«ÒD8•}úÔ©SQQQä—1áÞáÆÖO?ý´}ûv:îêêVZZJÚÖçÏŸ/}_ ¬¬lÞ¼y¤m]NŸ1c†±±ñœ9s‚ƒƒ+++ÕRÆhÇb± Ö­[wñâÅ7nlÞ¼yíÚµçÏŸG>}úرcøšÀÓÓ³±±!TVVèáááëë{ãÆ „†a999kÖ¬Ù¹sçÏ?ÿ,}2ÅÏM¥¥¥þþþëׯ?}úôÐÐÂFôö‰XzY__?77·¯¯èêêÊápˆMTUUùùùyyy¥§§ã-åååÛ·o÷ôôܰaÃÅ‹‰Þjjj|||êëëE"QBBÂúõëׯ_Ÿ ‰$ÉåË—ýýý׬YóùçŸ?yò„èßÍÍíÎ;ÄYµ¤¤dùòåijò]½slB<ïèÑ£ü±··w||üàà t…ÁÁÁ _•J522n—¬á ©Q¾ÃUWWÇÇÇ'%%•——Ÿ;w.44455µ¯¯oùò奥¥b±!TZZjaaÁd2…B!›Í^·n~lŽ;& .\¸”ššºuëÖ¯¿þZ~C¹¹¹_ýõ‘#Gîß¿O ‡|#NÇŸ•^Žˆˆ¨©©Ù¸qcDD‡Ãéìì”îüþýûIII‘‘‘ÉÉÉ}}}QQQiii¡¡¡IIIÄ…NFFÆ_|áàà™™ÙÑÑ‘˜˜øÍ7ßÔÔÔ¤¤¤deeq8œàààÔÔTÿ„„¢ggg@ÐÜÜŒâóù555~ø!ñ¬|Wï[„Ðwß}×ÕÕ•ûàÁƒK—.IW(?øø B¡P  <þ<99yåÊ•!…»¬ð`))xDF8}}}„¯¯¯¾¾¾§§'B¨¿¿ßÙÙ™F£ÕÕÕ!„Š‹‹=<<(ÊÐІa`Ò¤Ižžžùùù“'OÎÊÊÚ±cÇÒ¥K-Z$¿¡ÐÐPkkkGGÇ   ¢¢¢á§NºvíZüYéå p8œï¾ûÎÅÅåúõë¾¾¾7oÞ”Ù‹%K–à•Oš4éܹsaaaÆÆÆ¦¦¦!>Ÿ¯üþûïëééîÞ½ÛÔÔÔÎÎ.$$¤²²òǔދàààÿ ®ŽÎ²eËð³jyy¹‹‹Ë´iÓˆgå»zçØŠD¢[·níÚµËÂÂÂÎÎîïÿ;1&x… .”||…   5kÖ¬]»vëÖ­ îîî!…»¬ð`))xDFù¡A__!D£Ñd–B:::K—.½{÷®]uuõ¾}ûB†††'OžÌÌÌLII™={¶¯¯ï¢E‹:::ˆ!;;;ù Y[[ã 666]]]Jå …Â²²2777GGGGGGÿï¿ÿ>!!k„±±1Bˆ8$4­µµõĉÀÁÁAº+âÛÀ/^lذhŸ:uªH$R²nnnÇ ”9Ÿ*ì _P2¶===‰ÄÒÒheeEì>^¡ÂÁÇ¥¥¥YYY!„^¿~™™¹wïÞË—/+Üe…KIÁ#2.ŸRÝÜÜbbbfÍšåââbbb‚zýúµD"a³Ù"‘èæÍ›ÌÍÍe0ÍÍÍöööø«ž>}*ßUkk+~Ÿ?Žçc¸Fy†ÅÄÄØØØà P( .ÌÏÏ'V ¼ýGì_¿~Íf³ÙlöâÅ‹‡†† ‰§ˆC>}úô“'OâGŽÇãq¹Ü¨¨(%{áââ200P___UU%}øv5ÜŽŒŒŒttt:::fΜ‰joog02ʾŒÉ“'¯]»699¹··W___~—,CCÃQ,o\>¥ºººŠÅâ~ø?/ „(JDDÄÝ»wñwl6yòäÕ«WÇÇÇ—––r¹ÜÊÊʳgÏÊw×ÖÖöË/¿— ù|~AAþ,±úHz/ˆ«{~VýöÛoétºò®Þ9°4Åb:uª££ã×_=wîÜŠ+dÖ‘|\oo/—Ëår¹/_¾¼té’©©)NW¸Ë Öè V° £xÍ;á£|ýúõeË–á-“&M:pà@bbâË—/--->]úûÖ?m œ···Í7ß|#3Õ 3çÓÎÉ)**Úºu«ŽÎÿFOOOïÓO?-**R8 ¿üÉ'Ÿ ·O©òsð’Š‹‹>úè£Ë—/ïx‘NÛ§££óÅ_TWW_¿~]º]ÉÔ#åÓäçäà_#Jac2™Ïž=×e&Pýë_ÿBegg˼d¸¹F?ýôÓ™3gBBBûûûÇzÔIÛ‡²¶¶>}úôË—/‰F%S”LB#™“C¡Pˆk8…³ªd(™k´nÝ:ƒU«V!„ˆs±vÐÎÿÓ°~ýú»wï?~|÷îÝx‹’©GJ¦!Esr f̘ÑÔÔ4þ|é~šššfÏž/«2JÉ\#|ˆtZC w !D¡Pöïß¿mÛ¶«W¯â-J¦)§pNΊ+.\¸ðþûï—qB¡ðÒ¥KD4U™@¥d®‘̼)m¢…§Tœ……EhhhFFþP•©G )œ“ÐÓÓ³wïÞÊÊÊÖÖÖ{÷î…††2 âÞ‡ÂYU@ºgUæií|‡ÃyyyÝ»w¯ªª 3õ(''ç(œ“£¯¯öìÙ”””„„„ööv wwwooo]]]üU2¨¨Tª‹‹Ë† þýïKw.?×h†abïRÇL ’ߥ5ƒÀ1˜@¥nŒÑéô½{÷ª»Š‰ H¤‚ÀRAà©Üø%~ €1÷Và-Zôé§Ÿª8U€wrppÀ—„@‘Ÿ¨Àøk8@*  H¤ú?r£-wulš˜IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption__coll__graph.png0000644000372000001440000001465312502417165032541 0ustar robertousers‰PNG  IHDRå»/ÎÆbKGDÿÿÿ ½§“`IDATxœíÝyTçúð7 ›¢d+(+©õ"ç D{iÝÙÄ ÜáZ *G)µbm­JKØDTõâŽÈEPõW®,n,*e !Éüþ˜Þ4’Ñâ„çszzfÞ̼¯“—I$ ÃA–w¼È+ È+ È+ ª¼ JVVV||¼¼«PdGŽ‘w##âþÀÚµkËÊÊlmmå]ˆbzñâEyy9!’@Œë+BÈÖÖ633SÞU(¦ÌÌLwwwyW!˜¿"¼"¼"¼"¼J«¾¾žD"ɰÃÞÞ^ƒñé§ŸjjjΟ?ß¾}<O.•äU>zzzæÍ›WQQSYY¹sçÎôôt'''>Ÿ/qûÆÆF†/kiimß¾} ‹ý€æ~–‚‰ŠŠÒÑÑ)**¢P(¡3f,]ºÔÊÊ*%%Åßß_|{@ÐÞÞŽ/Óh´ýû÷i¹ …º¾’H¤cÇŽYXXèèèìß¿?55uúôé“&MÚ½{7B(88ØÏÏß’Åb©©©Ý»w!TPP`mm=aÂSSÓÔÔT„@ ˆµ°°ÐÔÔ´µµ-..}ýÅ_Žóóó?þøc]]Ýàààþþ~‰èí×nÑå´´´ˆˆ<¬8uuuƒ‘––&±«  „ôôôõÓÕÕµaÃfddÊápðãžžnaa1eÊ”Œê1k¸¹¹¹¹¹¸BÈÃã»»;)) !´víÚîînüÜßÿýúõëÚÚÚ†¥¥¥YZZ ‹¥¢¢Âd2[[[“““©T*‹ÅŠ×ÕÕÍÉÉiii9þ¼‘‘B¨®®?\ø‚³³óãÇËËËétzdd¤ÄF úººñò„Ë¡¶¶¶Aõ—––N:u˜þñÍD—½¼¼jjj¬¬¬ðABkÖ¬éììLLLDµ··Ü222ˆ’bT)}^«ªª0 ãr¹ƒ–ëêêx<žžž^QQ†aË—/ß¿?†aJJJììì===|>ßÒÒòøñãÂnOœ8!ž×ššüÑŒŒ :.±q¨:‡ÊkYYF¦¼E¸Ìår)ÊÇñöœœ|P„Pqq±èsþ¸(¯ 5@ijj"„”””-#„(ʪU«rrr~ÿý÷«W¯zyy!„&Ož\\\\^^nddôÙgŸÝ¸qƒL&766Ξ=[اµµµø@æææøÂÌ™3›šš†i§¥¥¥§§W]]=¨½ººzîܹÒwõêÕ+>Ÿoff†¯Òétá–¢Ï]a(Z^‡çææ–›››™™¹páBüUžÍf ‚³gÏvttøùù¹ººvttÞ¿_¸×£GÄ»Â/r¡ÇãáªQ"//¯¨¨(Ñ»½½½111...Òw5uêT …ÒØØˆ¯644âËd²bžYÅ|VC±³³ãñxQQQ>>>x ‰DrvvÎÎÎîîîær¹JJJjjj7nd0ùùù/_¾¼téÒŽ;Ä» ©¯¯¯¨¨÷ööªñÍ›7ødzÐrDDÄëׯ/]ºTWW—››kccchh4Lÿ,K´%%%ww÷ààà'Ož<|øp×®]ø‹†"“÷„D*ÒÏ_…sµ¡–UUU»»»…{edd˜™™)++Ïœ93??Ã0.—5}út [[ÛS§N!±ùkRR’‰‰ FÛ²e ›Í–؈½ý³‘è2†a,kÛ¶mVVVjjj–––ÑÑÑ}}}Cõ?00°páB Aýtttøøøhkkëëëoݺt¨ç>Í_‰Q¥”y•Fxx¸§§ç;í2(gƒV‡i|?2ìJJÊë8z¿€Ãá´´´;vìôéÓò®¼§q4½}ûö¼yó6nܸhÑ¢¿ÒÏĉ¤i”aÿG˜ïà „àû£ÿ~!’0Ž®¯@@^‘@^‘@^‘æ~VcccBB‚¼«PL•••ò.Ajò¾,•o¾ùFÞÇé´´\¨Ô)ò.ãËû$K…÷³ˆ¥¼¼aժد¾²ûî»Uò®EÑÀüUörs+ñÿóxy×¢h ¯2Æåòrrî!„Þ¼é+)ù¯¼ËQ4WûÏjûúúB 9'‡8?ÇäUƲ³+)2BˆÇ\¼XÃfså]‘B¼ÊRooÿåËy¼?¾5ÐßÏ+,ü?ù–¤` ¯²$V„™LÊξ+ÇzäU–²³ïŠþ¦OP\\ÛÝÍ–cI ò*3½%%ùü·îaaváB¼JR$¼¹M¡ $\zÁ{€¼ÊFAAõPÄàñøÙÙðÆlæó„¸¾>®¾þDá*‹Õ?a‚•úÇå`¼þvaÙƒÏg ƒ­L¦ï_ÌySð.`>ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò ˆò S7oÞTVV–÷±ü“ŠŠ1™¬&ï*þÄ`0ä}ŠdCAþ~Ass3—ËÍÌÌ”w!¢Ÿ~úééÓ§ò®B6$¯8777y—ð!:{ö¬¼K˜¿"¼"¼"¼"_ye±X¡¡¡Ó§OWUU577ß³g‡ÃfûúúzÒ{ýmÂÞÞ^ƒñé§ŸjjjΟ?ß¾}<Ošß{Äqb|åuË–-UUUÙÙÙÏŸ?ONNÎÏÏg0¡ÆÆF&¾½––ÖöíÛßu”žžžyóæUTTÄÄÄTVVîܹ3==ÝÉɉÏçKÜ^tô÷q‘÷ `ÙÈÈÈæ¹hii•—— W¯_¿nllŒaX]] Ehh¨Ç¶°X¬iÓ¦%&&JÜ^¶£‹ssssss½þÇÒøº¾Nœ8ñ×_mooÇWíííŸ={†Z°`BHOOý﹨¨ÈØØøøñãÂWg‰”žžnaa1eÊ” „0 c2™Ÿ|òÉĉ/^|îÜ9|ã´´´ˆˆ …"W]]Á`¤¥¥áçççüñǺººÁÁÁýýýâ£ã{uuumذF£…††âSñ2Æyÿƒ‘ )¯¯—/_644TQQqrrúᇞ>}Š·‹^áðåeË–]»v­ººZØŽZ³fMgggbb"B¨½½=11ÑÐÐðÒ¥Kmmm………t:!ÔÙÙ‰jkk4tiiéÔ©SñÎ?~\^^N§Ó###ÅGÇ—½¼¼jjj¬¬¬"##%–1â³V¤ëëøÊ+†a<¯¼¼<**ÊÊÊŠB¡¤§§c’òZSS3¨!T\\Œa—ËEÕÕÕYYYá»ãN:5L^ËÊÊh4šhçxÙt:]b^¹\.…Byøð!Þž““C§Ó%–1âSV¤¼Ž£ù@ooï™3gB666»wﮩ©  “¸ñÌ™3Å BJJJøjCCƒ•••ðÑO>ù!¤¥¥¥§§‡_˜EUWWÏ;_677ŽÒÔÔ$±€W¯^ñù|333|•N§ ·TƸ2ŽòŠa˜§§çƒðU‰´téÒ¡n3IL™üÖá211yôè‘põ·ß~ü¼¼¢¢¢DïôööÆÄĸ¸¸à«øE!ôøñc<|â¦NJ¡PñÕ††CCC‰eŒ+ãè™khh¬_¿ÞÝÝýüùó·nÝ õððnÀb±Þ©Ã¯¿þ:,,ìÊ•+ííí×®]‹ŒŒÄTŠˆˆxýúµ££ã¥K—êêêrssmll ƒ‚‚ðCBBêëë+**ÂÃý½½%Ž®¤¤äîîüäÉ“‡îÚµËËËë/=Å ï ‰lH9åñx‘‘‘ÖÖÖªªªÓ¦MÛ¾};›ÍÆ0l```áÂ…˜¤¹,¾ŒD&‹ø2ŸÏ?tè™™Ù¤I“\\\òóóuttð X,Ö¶mÛ¬¬¬ÔÔÔ,--£££ûúú„&%%™˜˜Ðh´-[¶°Ùì¡FïèèðññÑÖÖÖ××ߺu+^ªx#>kEš¿Ž¯¼ÊVAAAuuµp5++köìÙÃï2Ú·Z%R¤¼Ž£ù€ÌÕÔÔx{{WUUõõõ•——ïÞ½Ûßß_ÞE)8…ú¼ö ëëë[±bE[[›©©éƆßeâĉ#n†AÂ0LÞ5È@ff¦»»»b<™[»v-BH1¾,ó@$W@$W@$W@$ uÀÉÉIÞ%üA “ÉyWñ‡ØÛÛË» ÙP¼ÚØØ¬[·n¨ð1>ŸtçŽþŒÚÚÃ}ÙfÌØÛÛã·€‚ÜÏú dfVüë_§/¶HKÛ,ïZ Ì_e/7·!Òõëÿ}ó¦OÞµ(È«Œµµõܼù! !ôïþ,ø‹ ¯2vî\5þ©B ò²*ä]Ž¢¼ÊXfæ]C ØÝ»ÏZ[»ä]‘B¼ÊÒóçí55/ð¼"„(r^Þ=ù–¤` ¯²”ŸJýóòù‚³gaJ KWY:{¶b`àÏ· 0 «­mmhx-Ç’ äUfjk[ëë_ãw„””(yyUò*Iñ@^e&/¯JYyðû…ü3gîÈ¥…y• ò²îr¹¾ÞÜÜYSóbìKRHWÙ¨ªzÖÒ"ùÖL dò*çÎÝGˆ¤¬LÿÏäæÂ]-ÙPÏgÉÝ¢E3©Ô?!aff…­­ÙGMÁWµµ5äT—¢Ïg ƒ­L¦ï_Ì–w!Šæ€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€H ¯€HÞúýÚ\.÷Ì™3G^Õ(’«W¯¾| æ¯rvvž6mڟ똈ììl¹Õ€$¢}ëúÊãñBÅÅÅrª €·ìÝ»ϤÌ_‘@^‘@^‘@^‘|pymnnvppUol6;..ÎÃÃcéÒ¥ÞÞÞ)))\.WúÝÛÛÛ£££×­[·lÙ²ÀÀÀ7nrpphnn–UÃsppˆŒŒýKi²=J¢8“Éôóó[¾|y```zz:ŸÏ—fÇÑ+IÔ—WÙ:räH]]]TTTFFFXXXii)“ÉjãÖÖÖ/¿üR¸ÚÝÝíïﯢ¢²gÏ&“¹xñâo¿ý¶¢¢b ÊT Bèúõëcpߦ¯¯/  ¶¶6 !!ÁËË«°°044T ŒX§†††‡‡ÇhW¨ày½yóæ¦M›ÌÍ͵´´¬­­ƒƒƒKKK‡ÚX tww WSRRæÌ™Ã`0,,,LLLÖ®]»jÕªŒŒŒ1({P%!WWןþ¹££cTÇ=yò¤––ÖO?ýô·¿ýÍÈÈÈÎÎŽÉd¾|ùòâÅ‹#Ö9iҤ͛7jyèýòêààpñâE__ß+Vœ:uêÊ•+Ÿþù±cÇBG=pà¾%›Ívqq©««CݺuËÏÏÏÙÙÙÓÓóÊ•+! Ãrss}}}—/_þõ×_ß»wOô})--õññY¹råÑ£G$6¢·_ŒD—ÕÔÔòòò„ÇÔÚÚZ8Çd2W®\¹råJ&“ÉãñþùÏ"„V­Z…oPRR²zõjÑ'îëë&\½{÷®———««kzz:ÞRVV¶iÓ&—Õ«WŸ:uJXLUU•»»ûƒÄ‚4• „ÜÜÜŒüñGñ¿Ÿ*>èˆçHâ ¡ÂÂÂõëדɦb„ ëÖ­+,,”xäEë=ì,kÿþý_~ù¥››[\\>spp¸zõª¯¯ï_|qæÌ™¡Ò5¼÷¼¾VVVÆÅÅmÞ¼911±¬¬,999(((55µ»»û³Ï>+--Å'=¥¥¥úúút:ÃáDFF®X±âÌ™3>>>àp8çÏŸ?yò¤¿¿jjêúõë¿ÿþ{ñòòò¾ÿþû}ûöݾ}[x2ĵ´´BCCñGE— FUUÕš5k FFFÆ«W¯„=geeµ¶¶ÆÇÇÿøãUUU)))¿þú+B(''!Äb±:::ŒE‹QUUÕÕÕ®Þ¾};111,,,))©»»»¯¯/""ÂÜÜ<---(((11±«ë¿0Ÿ™™¹cÇŽ>úHü ŒXÉç‰LÞ±cGeeååË—EKfÐaΑÄAñ§L§Ó:þüùs‰G^¼NÜáÇÛÚÚ˜LfLLLEEÅéÓ§ñö›7oþòË/ñññ===â§{Dï™Wwww555ggg„§§§ššš‹‹ B¨§§ÇÊÊŠJ¥ÖÔÔ „®^½êììL"‘0 c³ÙÊÊÊ...***ÙÙÙvvvÚÚÚ666þþþâYXXøûûÕ¨®®þùçŸãŠ.Ï›7/##ãðáófͺ|ù²§§gQQþÐÅ‹CBBtuuMMMîÜyë½~ü2F"‘F< .ÄŸ¸²²rrrrpp°¶¶6ëÞÞ^|ËÍ›7Ï™3‡B¡ˆ„+222Ú¼yóÑ£G_¿~-lfÐaΑôƒâA8•x:áñx×®]Û²e‹¾¾¾©©éW_}%ÜrÅŠK—.E šðHé=ÿž¼ššBˆJ¥ZF‘Éd;;»’’SSÓÊÊÊmÛ¶!„455:”•••’’2cÆ OOO›ÖÖVÑͦ¦¦âá ÆÆÆmmmÃ4Šãp8·nÝZ´h‘………………ÏñãÇ™L¦££#BèåË—¢/÷êêê¢ûjjjNž<ùÙ³g–––ÂÆÚÚÚŸþùðáÃxδµµ‘H¦©TjSSÓÁƒÙl¶¹¹¹hoøuZâA±Q+W®,))ùá‡BBBFt˜s$qP )S¦Ô××Ï;W´Ÿúúú3fàËÒùÎÎN@```€¯ ·¤ÑhƒÊxWï¿ç0-Z=mÚ´Y³féèè „úûûAdd$Ç+** ÏËË£Ñh fffø^OŸ>睊© Ïñ‹/ð| Õ(ðèèhcccü_‰Dš?~AAþè¤I“:dhhˆþ÷ê?h÷¿ÿýï{÷î&²°°ÇãáaEbWßþþþÈÈÈÈÈH[[ÛÑŸQð3$ñ hjjŽX‰‰DÚ¾}ûÆÏ;7â Ã“8è’%KNž<9gÎá–Ãáœ>}Z˜liŽüäÉ“Édrkk«‰‰ B¨¥¥©ø{£rÀÚÚšÏçŸ8q1B‘H$ƒQRRÒÛÛ;00@¥RUTT–-[WZZÚÑÑqç΄„ñ®bcc›››kkk“’’œœœ†jìíí=þ<þ¨pYUUÕÙÙyïÞ½ååå­­­=Š‹‹Ã/®!;;»ÄÄÄW¯^566†……åååáíl6_ðóó»ÿþ¾}û=zÔØØxâĉœœ‰“ÜÀÀÇ£R©\.7%%!Ô××'ºÄƒ M%¢ôõõƒ‚‚233¥t(õõõíììüæ›oîܹÓÔÔtãÆ   &¼i%ñt ª“J¥:889r¤µµõÉ“'ÉÉÉK–,‘¦$iŒÊõ•L&ÛÛÛ_¾|ÙÞÞoQVVÞ¹sg||üëׯ öìÙ£¬¬ìîîÎçóùå—®®.|=¨«%K–lÛ¶Ãá8::zyyá¯,ƒB]]]ħ­¢Ëaaa©©©‰‰‰ÍÍÍ“'OvppذaÞ³ŸŸ_llì¦M›H$’½½}@@•J5kÖêÕ«/\¸€ÒÒÒJHHˆ‹‹Û³g›Í666þî»ï,X0Ô³ÖÐÐ ŠŽŽVUUõôôttt ‹n ñ HSÉ ®®®7nܸ{÷îPƒæææŽxŽÄE©©©%$$¤¤¤0™Ì––}}}GGG777%%%‰§ƒB¡H¬3$$$66600PIIiñâÅø9’ ’èý‘ÌÌLwww™Ü—NJJzùòå®]»¤ß¥¹¹ÙÛÛ[8ú ÕaÁˑ߻w¯ŽŽŽðÅÆ|€Ëå¶¶¶^¼xñÿø‡Ì;ãœìóúÛo¿,[¶löìÙ¥uuuWWWiÁø@ŽühÍøëÆb>Àè¼"¼"¼"¼"yëý- …‚ƒo5 ¥uëÖ‰®¾u?‹Ãá\¸pAÊïë0æÎ+úÁ=’øçÕø`Áü ä ä äÉÿ;W,­[:VjIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MutexFailed__coll__graph.png0000644000372000001440000002035312502417165030703 0ustar robertousers‰PNG  IHDRÁ͎⃰bKGDÿÿÿ ½§“ IDATxœíw\GÿÇ¿×)ÒDˆ  B(¢æ‰%6‚ò`!kÑŠb,A±MT,ù=ŠâV,A¥‰DcCMDlˆ'JBG¤ÃåŽkûûcóºœÜq”=n)óþkvvvæ³3ŸÛ™-7CÁ0 PÉ€èñ !ˆ‚<„ ò‚(té —››+‹ÉRÓsÑÔÔ:t(ñ|ª««ËÊʈçÓ¥P©Ô¡C‡jhhà›yˆÃáÔÖÖ‘!¬ÓÜÜ\ZZªUUU555éèèϪ먮®611‘ï!{{{ÕJêñTUU½}ûVY¹éèètó&¸ÿ¾ô&!ˆ‚<„ ò‚(ÈC¢t¹‡òòò(JW—Ò!º¡¤®C'«*%«.BZ¡žžÞ¦M›ÈÕ£tZkœ¬r<$‹kkk•’U!­ÐÐÐpïÞ½äêQ:­5 N¶3JNNvrrÒÐа²²Š‰‰€±cÇÀÀ@$…‡‡6¬ÿþ_|ñÅ“'Oð£¤/ªÒa@lbbbll,®]»fffÆf³àÒ¥KÆ kll …;wî<>>¿}ûV–=Ãd2ñÈØØX¹âóù4MÒfñññ666†^|>rss׉Š=ÔfH×€t¼ìy988\¸pA’óÅ‹;á¡÷eúúú©©©éééæææ“'Oþý÷ß©Ô2)))qvv–l:99)ਨÈÔÔ”B¡P(”iÓ¦€žžž¿¿ÿ›7oðdÅÅÅ’Rvvvžžž Ib[[Û÷ïßË-º²²R$Y[[ã›666’”øå“Á`´§NTL›M€ckk+Ùâ¼òóó${?ýôÓNèé°‡¸\®X,¾rå ‹Åòóóóðð`±XÒ ,--_½z%Ù|óæâ %?t6›žž%%%G:uêÆñdƒ ***ÂÙ™™{öìQp8à¿?ÈÉÉÁ+NVPP€oæçç›™™áa¹­ÒMh³ päþZœ—………teggwBO‡kŠB¡¸¹¹ÅÅÅq8>ŸÏ`0455ñ] °jÕªààत¤ŠŠŠ›7oîØ±ßûáÇèèhÙðœ9s6oÞ\\\Ìd2ÝÝÝ#""Äb±¯¯ïÚµk/]ºtçÎäädðññÙºu+~©_³fMqqqk‡ãñëׯÏËË{öìÙ–-[/^,­PƒÁX¸páºuë ³²²¶mÛæííÝÑ Q=m6Aûùî»ïBBBnݺU[[{ïÞ½°°0UŒ©1 ‹µ¶¶VSS³µµMJJÂ0L L˜0A[[Ã0¡Pncc£¥¥5nÜ8üÂТc–s8œeË–éëëøûû7669rdĈ|>ð„„SSS‹Åãñ‚‚‚ ¤««ëååÅf³[;Ï<::ÚÂÂÂÐÐpíÚµ\.WZ¡té,ËÇÇÇÀÀÀÔÔ400Ëåâãɵ ºßxk« Z«jÙó‰D‡¶¶¶ÖÕÕuwwOJJ222j³t¢cêît­©Õ{HY$''gffJ6¯^½ŠßÓ(†è˜Ñ›`2™‹/ÎÈÈhjjJOOß¾}ûòåË;š‰œoÐz::::+W®$[EÏ $$¤©©iöìÙÕÕÕVVV¾¾¾¨º^è!ccãÈÈH²Uô ètúîÝ»wïÞM$Ô—!ˆ‚<„ ò‚(ÈC¢ÈSwÿÿÈIàóE|¾H[[\}:¬×é&h®©ëÑ”(¦=|ä!uuu …’““£b&99711wÆÏííIþŠRò‡=âùTWW×××wøH joh°î©Ynn`tí?•)Šººú?›XOž(11cõêºoßüE‹Æ’-‡4„P 'a@ ½ÃCÒÃjÖ¯]Cƒqá‚¿¾>9ヮ…Cg ÀÄØÓÿ+ã}R¨ßÛ“ò„§7ôe†ýú1¨T Þy¥¦†hh0öì¹N¶®®‚ß zv´ÌÒU×ãÔ0}+  P(Š‘i?˜Þà!*•2fŒ•­í ääõ‡}cf6`ëV_~yòòå;²¥u /OVˆ…Ø¿Ö 2qÒò¼hûE¨9C‹f:š„·8=û½½æÏhhhNI ¤R{Õ”gu…¼¸o²ÇšÛÓ]¦ï ×!¹ìÞ=÷íÛ²Þ÷´:m‰¾•Ƨ ºÑ¬s½ÖCÇôñ¿gOroz“_t¯®ôYýøMŸPºÓŵ×z‚ƒÝ1 ül!Jƒç‘e–Sô:“6ô‘K¯á\¼˜zå·ß‚ììä?ËîY|(n¦©S´’üýx z¹‡ÄbÌÃãg--õË—W“­¥×Ò›û2 R)?þ8/--ïúõWm§FtŠ^î!1â“ùóÿ–ØÔÔ{^àw+z¿‡`ëV††æ£Gï’-¤wÒ'µV%½|L-A(ÿûß>ùÄàÌ?²µt~ƒˆJ£ÐûuëŸz·§Dètê?xÞº•u÷®ÒVÇjª~Wä¯Äezú–‡LMõÖ¬qýùçÛÈÖÒ]«aårÇn0o?nܸNjŢR©AAA ‰ôõõSRRð4·nݲ±±Ñ××ÿé§Ÿð˜ëׯ9RSSÓÔÔ_FHz¢(y²ÚnOs³`üø=«WŸ#[ˆ"¸u‚s.¯,‘ݵk×®™3gb–””¤££3jÔ( Þ?®¡¡ÑØØˆaÌš5‹ÃáÄÅÅ@MM ‡ÃQSSóõõ}ÿþýùóç ªªJ‰30÷9aöÛo¯MM¿OKË#[H«<Ú÷ß(”Ýõüùsmmm>Ÿ¿aÆ-[¶0 6›>cÆ <Ü¿Ã0‘H¹¹¹ÍÍÍÙÙÙ "‘èÁƒx¤=Ô·ú277WW»­[ã„®§§s¹â¢ÔºÑ¦ M9³Q9RKKëÙ³g>üꫯFŽùðáÃÔÔÔ™3gJÒàë“H–æPSSËÉÉqww=zô™3g”¯X)NìqV[X>ýÙBäÓÜ ‹ZÝ»lÙ²>ŸºfÍmmí¢¢"|/È,¨ÐÔÔ¤®®ž””$‹¹\. ëR°´4\±bò¾}¿ÖÖ*s«ê+ï:ä’±víùääïGŽL¶–LŸöÌ{”Ï]»¶®ï¬x¯tún_†³gÏÜW¯Þ]½úœl!dBi…vÞ×=dkkêã3~÷îd‡G¢Œª×õe¤}"×Ú W;ïë€éb1öóϤýýCÄÇR·=ýo)Y‚<ººš›6͈Ž~˜]NŠ€Wg+šjc{ê%ÈC‹ut4ß¹3QõE×—ñ_®tþv –I÷úÇOûA R)»vy>z”ûë¯LýôÿJµ2F,í’„TòÐߌm9oÞg;v$¨òïeÏë î°Ç|oNeôà' ÈCÿ°m›GCïøqÍß(biûJOе˜¤«š»ä¡02êøïˆˆ{ïÞ)ç?ÅpkTeLJKèëÏ©[€ÿýÃÂÂðÔ)_²µôÐuè#ètê?̾yóõ½{Ùdké1 ë–/?]žš";e1Bt’î]ž••Nžül!=ä!9 ¤ðåáÿUVv÷¿t‡ä³fë€Ú½x‚b%‚<$uuzXØ×qq/”»ZÖ¥ªŠÌîøõ-‡ZÅÝÝÑÅÅvÇŽéõшPû7ýP)§¤Y)¹u‡ñŸÿxæäT^¸®„¼0x´¯ÄÈ^sØ,%äÖ@RÄ!FË—OÚ»7…Åj$˜UÞMVÕë†/6}"»äOOy¨ ¾ÿÞM]~ƒH&üѓåÃ< HYoµ«AjmmõmÛfÅĤefv~õ—'+„|ñ¿ÖôøWcrAj›9sFþ¹Õމ{¦_WÄ˺X5j…i¿½ó©7òPÛP(”]»<_¾,ŽщÃéÔá_Ø/è.K´(ô¾¬½„†^¹qãõï¿oÑÑÑ [K÷]‡ÚKhèL‘HüßÿÞ&[H·y¨½èéi†„̈Šz—WE¶–îêË:@ ¸ËQÊ 4ÀÒÒ’ìSï †1ÞÛ4ËÜþ¦$ín³¨¨(00pܸqd @´Æ¡C‡ŠŠŠÚŸžÌ'cÇŽ?>‰r¹råJ‡Ò£15‚(ÈC¢ !ˆ‚<„ JßõP^^žçÏ#2”{£w¾I&…´´´!C†¨  ‚‚‚Ï?ÿ¼¦¦ôôô6mÚ¤‚B€<¤4ŒŒŒ”³„J[H/ùchhˆ¯áB"ݺ/£P(§N²³³322Ú»woLLÌ!Ctuu·oßëÖ­óóûûCCCƒ¦¦æË—/ 99ÙÉÉICCÃÊÊ*&&ÄbñÑ£Gíììú÷ï?nܸÔÔTéë?Þ$%% >ÜØØxݺuÍÍÍr#áã¾£=ýȵk×ÌÌÌØl6\ºtiذaB¡pç΃622Z²dI]]žX ›˜˜ ¹2¤—ü‘ÖPWW÷í·ßš››ñx<¼/\¸`gg7`À€ýû÷+©e>¦ëÞf(bccÛLãååÅáp¢££`Á‚çĉPSSóàÁ@€aØùóçíííÅbqCCƒººzdddyyùÉ“'étzCCÉ'ŒãããËÊÊRRRÌÍÍ@²ØpssËÉÉIOO·±± “‰aX]]]TT.O: ™™™õƒïZ²dÉÒ¥K+**LLLž|x||<~ûö­$lkk[^^އoß¾íìì¬@# óù|–••…ÇÇÇÇã‚ 55UºÞ×9Öquë¾ ú÷ï £Eh4Úœ9sâããkjjîܹãíí úúú©©©éééæææ“'Oþý÷ß©TjAA³³³$O'''Ù‚†Šlmmß¿¯ ²5d›×ÓÓó÷÷óæM@@S\\,ÉÙÎÎÎÓÓ™ššâ÷tÓ¦M+,,l¿ŒÊÊJ‘HdmmoÚØØHRâËIêMétw)fþüù —/_ž0aÞCq¹\±X|åÊ‹åçççááÁb±ÌÌÌ^½z%9êÍ›7²Yá?hÈÉÉÁ+½µÈŽRRRrôèÑ©S§nܸ4hä¥fffæž={ð°¡¡¡Äˆl6;==½ý2LLLh4ZAA¾™ŸŸofö÷_$‹Pu=ÛC'N …»víòññÁc(Š››[\\‡Ãáóù CSSÓ××7888))©¢¢âæÍ›¡¡¡²Y­_¿>//ïÙ³g[¶lY¼xqk‘>|Àg-ÂP]]]ñ1 ‹}}}×®]{éÒ¥;wî$''€ÏÖ­[³²²²²²Ö¬YS\\Œç0gΜ͛73™Lww÷ˆˆÚZ,ùÃ`0.\¸nݺ¬¬¬mÛ¶áfUÐþnO¹@ûÆC-–â’ ¯Zµª_¿~GrTll¬µµµššš­­mRR†a|>×®]C† ÑÖÖ7nÜÅ‹Af<maaahh¸víZ.—+7ûx +n­n92bÄ>ŸaXBB‚©©)‹ÅâñxAAAƒ ÒÕÕõòòb³Ùx&gÙ²eúúúþþþre‚ &hkk·ÐÀb±||| LMMqÁ­Õ›zÕ˜º=lÙ²eÑ¢E:¤ÅòorWƒSâqD EFG=ÔƒŸ1òx¼²²²S§N]ºt‰l-}š<zòäÉgŸ}æëë;eÊ"ùèèè¬\¹²=‘ª§›ÈP ißäS(”ØØØ R:Bx£\¾|¹é{ðuÑM@ByAä!QÈS;::š˜ôà5—$`…Çëׯ_ÙB”Ãëׯ'MšÔþ15iχ6lØPRRBVéÊ¥¬L»°P÷_ÿªPS‘­E Lš4©C÷ËèÿöJÀÕ5<;»lÛ6Õ«¿$[  ñQŠŠj²³ËàêÕÎÌpÕ @"J\Üsƒ þYö×_dË!ä!¢üòËS@ t:íÚµ—dË!ä!B0™%¥¥l<,Š._~ÖÇ—ÈC„HLÌ`0h’ÍÒRvff/¹Ùl?ÈCG$_¹ò\ øç~žN§%&f(‰‡:ÏÓ§…µµ}*Šââž)k˜žòPçiÑ‘á°XMç‘¢‡,‡:‰@ ŠÏîÈpètj||ߺ;Cê$÷ïÿÙØ(g%2¡P|íÚK>_¨zId<ÔI^ÐéòkËmîSK›#u’;w²…BùoX1 ú”‡Ð;×N’žž_]]‡Ÿ?/ŠŠzpâÄRÉ^'§O,,zÿ4Ö8=ø¿Aä2v¬µ$ŒaõÀÃÃYAú^ êËDAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAä!Q‡DAByAUÌéyõêÕ'Ntu)$R_¯SZjnkû–l!]ˆ††FDDÄàÁƒew©bNÏË—/¿zõÊÞÞ^e‘B¿~,–°WOk~ýúuÒ<ööö;wîTMYˆ®àþýû­íBã!Q‡DAByA”¾â¡ÒÒReåæââ²xñâE6mÚäââRZZª¬R$eÉ"7¥ä;t²Äk­×ÑI***òóómllðÍúúúW¯^)H_^^¾jÕª¤¤¤N”uôèQSSÓ6“ikk{yyu"‚ô•ëÒ=z´ôínZZš³³¢5_Äb1‡Ãé\Yzzz>Fn2]]]ÿÎA„nä!—7n,]ºtöìÙ/^¼uë–——×Ì™3O:GŽÙ¿?ž’Ë庻»çææ@ZZšŸŸŸ››Û¢E‹nݺ†%$$,]ºtÆŒß}÷ÝË—/¥¯Õø¥ûÑ£G>>>žžžGŽr#áãë|‹kþ”)Sîß¿/éÎ>>3fÌX³fMv6Ñ¥Öº‘‡àÅ‹Ç÷÷÷ŠŠzüøñÉ“'bbb8ÎäÉ“=z$‰àÑ£G¦¦¦666</,,löìÙx¥ìß¿ŸÇ㥤¤œ;wnùòå111K–,ùé§Ÿd JLLüé§Ÿ~üñÇ'Ožà 7ROO/((ß+.—›ŸŸ_|ñ…‚S;vìÄÇÇã›W¯^-//?qâÄÁƒ322NŸ>=~üøÑ£GGDD°Ù숈ˆ­[·jhhà‰y<W ‘HÔÔÔ´cÇŽ¡C‡ž?> **ª®®Nn¹²ÅÅÅÅÆÆúûûÇÄÄøøøDFFv …äѽ<´páBMMM777X´h‘¦¦¦»»;Ô××;88Ðét&“ wîÜqss£P(Ã0.—«¦¦æîîžœœ¬®®·jÕª‰'Œ3fùò岘››ÛÙÙ-_¾üöíÛ­EjiiÍœ9ß+*•:iÒ$¼;{üø±£££ŽŽNûÏôÆëׯ766¶²²Z¹råÓ§O`íÚµAAA_ýµ­­­$ñòåËgHñôéS55µ“'O®[·ÎÀÀÀØØÛYеkפë‡x÷×½ÆÔššš@§Ó[„€J¥Nœ8ñáÇVVV/^¼Ø¸q#ôïßÿðáÃW¯^=}úô°aÃ-Z4f̘òòrÉP¬¬¬d 277ǃ®®®V©€)S¦„‡‡ûùùIwd-hí•vEEÅܹs%›ZZZ ­­=kÖ¬³gÏ MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Transaction.html0000755000372000001440000004662512502417164026465 0ustar robertousers MySQL++ Reference Manual
mysqlpp::Transaction Class Reference

Helper object for creating exception-safe SQL transactions. More...

#include <transaction.h>

Public Types

enum  IsolationLevel { read_uncommitted, read_committed, repeatable_read, serializable }
 Transaction isolation levels defined in SQL. More...
 
enum  IsolationScope { this_transaction, session, global }
 Isolation level scopes defined in SQL. More...
 

Public Member Functions

 Transaction (Connection &conn, bool consistent=false)
 Simple constructor. More...
 
 Transaction (Connection &conn, IsolationLevel level, IsolationScope scope=this_transaction, bool consistent=false)
 Constructor allowing custom transaction isolation level and scope. More...
 
 ~Transaction ()
 Destructor. More...
 
void commit ()
 Commits the transaction. More...
 
void rollback ()
 Rolls back the transaction. More...
 

Detailed Description

Helper object for creating exception-safe SQL transactions.

Member Enumeration Documentation

Transaction isolation levels defined in SQL.

These values can be passed to one of the Transaction constructors to change the way the database engine protects transactions from other DB updates. These values are in order of increasing isolation, but decreasing performance.

Enumerator
read_uncommitted 

allow "dirty reads" from other transactions

read_committed 

only read rows committed by other transactions

repeatable_read 

other transactions do not affect repeated reads in this transaction

serializable 

this transaction prevents writes to any rows it accesses while it runs

Isolation level scopes defined in SQL.

These values are only used with one of the Transaction constructors, to select which transaction(s) our change to

Enumerator
this_transaction 

change level for this transaction only

session 

change level for all transactions in this session

global 

change level for all transactions on the DB server

Constructor & Destructor Documentation

Transaction::Transaction ( Connection conn,
bool  consistent = false 
)

Simple constructor.

Parameters
connThe connection we use to manage the transaction set
consistentWhether to use "consistent snapshots" during the transaction. See the documentation for "START TRANSACTION" in the MySQL manual for more on this.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

Transaction::Transaction ( Connection conn,
IsolationLevel  level,
IsolationScope  scope = this_transaction,
bool  consistent = false 
)

Constructor allowing custom transaction isolation level and scope.

Parameters
connThe connection we use to manage the transaction set
levelIsolation level to use for this transaction
scopeSelects the scope of the isolation level change
consistentWhether to use "consistent snapshots" during the transaction. See the documentation for "START TRANSACTION" in the MySQL manual for more on this.

References global, mysqlpp::Connection::query(), read_committed, read_uncommitted, repeatable_read, serializable, and session.

Transaction::~Transaction ( )

Destructor.

If the transaction has not been committed or rolled back by the time the destructor is called, it is rolled back. This is the right thing because one way this can happen is if the object is being destroyed as the stack is unwound to handle an exception. In that instance, you certainly want to roll back the transaction.

References rollback().

Member Function Documentation

void Transaction::commit ( )

Commits the transaction.

This commits all updates to the database using the connection we were created with since this object was created. This is a no-op if the table isn't stored using a transaction-aware storage engine. See CREATE TABLE in the MySQL manual for details.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

void Transaction::rollback ( )

Rolls back the transaction.

This abandons all SQL statements made on the connection since this object was created. This only works on tables stored using a transaction-aware storage engine. See CREATE TABLE in the MySQL manual for details.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

Referenced by ~Transaction().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x72.html0000755000372000001440000001654512502417164023652 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- r -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TypeLookupFailed.html0000755000372000001440000002670212502417163027411 0ustar robertousers MySQL++ Reference Manual
mysqlpp::TypeLookupFailed Class Reference

Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::TypeLookupFailed:
Collaboration diagram for mysqlpp::TypeLookupFailed:

Public Member Functions

 TypeLookupFailed (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type.

This exception is not optional. The only alternatives when this happens are equally drastic: basically, either iterate past the end of an array (crashing the program) or call assert() to crash the program nicely. At least this way you have some control over how your program ends. You can even ignore the error and keep on going: this typically happens when building a SQL query, so you can handle it just the same as if the subsequent query execution failed.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Query.html0000755000372000001440000051157212502417163025302 0ustar robertousers MySQL++ Reference Manual

A class for building and executing SQL queries. More...

#include <query.h>

Inheritance diagram for mysqlpp::Query:
Collaboration diagram for mysqlpp::Query:

Classes

class  MaxPacketInsertPolicy
 An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...
 
class  RowCountInsertPolicy
 An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...
 
class  SizeThresholdInsertPolicy
 An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...
 

Public Member Functions

 Query (Connection *c, bool te=true, const char *qstr=0)
 Create a new query object attached to a connection. More...
 
 Query (const Query &q)
 Create a new query object as a copy of another. More...
 
ulonglong affected_rows ()
 Return the number of rows affected by the last query.
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Return a SQL-escaped version of a character buffer. More...
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Return a SQL-escaped version of the given character buffer. More...
 
int errnum () const
 Get the last error number that was set. More...
 
const char * error () const
 Get the last error message that was set. More...
 
std::string info ()
 Returns information about the most recently executed query.
 
ulonglong insert_id ()
 Get ID generated for an AUTO_INCREMENT column in the previous INSERT query. More...
 
Queryoperator= (const Query &rhs)
 Assign another query's state to this object. More...
 
 operator void * () const
 Test whether the object has experienced an error condition. More...
 
bool operator! () const
 Returns true if the query object is not in a bad state. More...
 
void parse ()
 Treat the contents of the query string as a template query. More...
 
void reset ()
 Reset the query object so that it can be reused. More...
 
bool result_empty ()
 Returns true if the most recent result set was empty. More...
 
std::string str ()
 Get built query as a C++ string.
 
std::string str (const SQLTypeAdapter &arg0)
 Get built query as a C++ string with template query parameter substitution. More...
 
std::string str (SQLQueryParms &p)
 Get built query as a null-terminated C++ string. More...
 
bool exec ()
 Execute a built-up query. More...
 
bool exec (const std::string &str)
 Execute a query. More...
 
SimpleResult execute ()
 Execute built-up query. More...
 
SimpleResult execute (SQLQueryParms &p)
 Execute template query using given parameters. More...
 
SimpleResult execute (const SQLTypeAdapter &str)
 Execute a query that returns no rows. More...
 
SimpleResult execute (const char *str, size_t len)
 Execute query in a known-length string of characters. This can include null characters. More...
 
UseQueryResult use ()
 Execute a query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (SQLQueryParms &p)
 Execute a template query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (const SQLTypeAdapter &str)
 Execute a query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (const char *str, size_t len)
 Execute a query that can return rows, with access to the rows in sequence. More...
 
StoreQueryResult store ()
 Execute a query that can return a result set. More...
 
StoreQueryResult store (SQLQueryParms &p)
 Store results from a template query using given parameters. More...
 
StoreQueryResult store (const SQLTypeAdapter &str)
 Execute a query that can return rows, returning all of the rows in a random-access container. More...
 
StoreQueryResult store (const char *str, size_t len)
 Execute a query that can return rows, returning all of the rows in a random-access container. More...
 
template<typename Function >
Function for_each (const SQLTypeAdapter &query, Function fn)
 Execute a query, and call a functor for each returned row. More...
 
template<typename Function >
Function for_each (Function fn)
 Execute the query, and call a functor for each returned row. More...
 
template<class SSQLS , typename Function >
Function for_each (const SSQLS &ssqls, Function fn)
 Run a functor for every row in a table. More...
 
template<class Sequence , typename Function >
Function store_if (Sequence &con, const SQLTypeAdapter &query, Function fn)
 Execute a query, conditionally storing each row in a container. More...
 
template<class Sequence , class SSQLS , typename Function >
Function store_if (Sequence &con, const SSQLS &ssqls, Function fn)
 Pulls every row in a table, conditionally storing each one in a container. More...
 
template<class Sequence , typename Function >
Function store_if (Sequence &con, Function fn)
 Execute the query, conditionally storing each row in a container. More...
 
StoreQueryResult store_next ()
 Return next result set, when processing a multi-query. More...
 
bool more_results ()
 Return whether more results are waiting for a multi-query or stored procedure response. More...
 
template<class Sequence >
void storein_sequence (Sequence &con)
 Execute a query, storing the result set in an STL sequence container. More...
 
template<class Sequence >
void storein_sequence (Sequence &con, const SQLTypeAdapter &s)
 Executes a query, storing the result rows in an STL sequence container. More...
 
template<class Seq >
void storein_sequence (Seq &con, SQLQueryParms &p)
 Execute template query using given parameters, storing the results in a sequence type container. More...
 
template<class Set >
void storein_set (Set &con)
 Execute a query, storing the result set in an STL associative container. More...
 
template<class Set >
void storein_set (Set &con, const SQLTypeAdapter &s)
 Executes a query, storing the result rows in an STL set-associative container. More...
 
template<class Set >
void storein_set (Set &con, SQLQueryParms &p)
 Execute template query using given parameters, storing the results in a set type container. More...
 
template<class Container >
void storein (Container &con)
 Execute a query, and store the entire result set in an STL container. More...
 
template<class T >
void storein (T &con, SQLQueryParms &p)
 Store template query results into a container. More...
 
template<class T >
void storein (std::vector< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::vector.
 
template<class T >
void storein (std::deque< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::deque.
 
template<class T >
void storein (std::list< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::list.
 
template<class T >
void storein (std::set< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_set() for std::set.
 
template<class T >
void storein (std::multiset< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_set() for std::multiset.
 
template<class T >
Queryupdate (const T &o, const T &n)
 Replace an existing row's data with new data. More...
 
template<class T >
Queryinsert (const T &v)
 Insert a new row. More...
 
template<class Iter >
Queryinsert (Iter first, Iter last)
 Insert multiple new rows. More...
 
template<class Iter , class InsertPolicy >
Queryinsertfrom (Iter first, Iter last, InsertPolicy &policy)
 Insert multiple new rows using an insert policy to control how the INSERT statements are created using items from an STL container. More...
 
template<class Iter , class InsertPolicy >
Queryreplacefrom (Iter first, Iter last, InsertPolicy &policy)
 Replace multiple new rows using an insert policy to control how the REPLACE statements are created using items from an STL container. More...
 
template<class T >
Queryreplace (const T &v)
 Insert new row unless there is an existing row that matches on a unique index, in which case we replace it. More...
 
template<class Iter >
Queryreplace (Iter first, Iter last)
 Insert multiple new rows, or replace existing ones if there are existing rows that match on key fields. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Public Attributes

SQLQueryParms template_defaults
 The default template parameters. More...
 

Friends

class SQLQueryParms
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Detailed Description

A class for building and executing SQL queries.

One does not generally create Query objects directly. Instead, call mysqlpp::Connection::query() to get one tied to that connection.

There are several ways to build and execute SQL queries with this class.

The way most like other database libraries is to pass a SQL statement in either the form of a C or C++ string to one of the exec*(), store*(), or use() methods. The query is executed immediately, and any results returned.

For more complicated queries, it's often more convenient to build up the query string over several C++ statements using Query's stream interface. It works like any other C++ stream (std::cout, std::ostringstream, etc.) in that you can just insert things into the stream, building the query up piece by piece. When the query string is complete, you call the overloaded version of exec*(), store*(), or use() takes no parameters, which executes the built query and returns any results.

If you are using the library's Specialized SQL Structures feature, Query has several special functions for generating common SQL queries from those structures. For instance, it offers the insert() method, which builds an INSERT query to add the contents of the SSQLS to the database. As with the stream interface, these methods only build the query string; call one of the parameterless methods mentioned previously to actually execute the query.

Finally, you can build "template queries". This is something like C's printf() function, in that you insert a specially-formatted query string into the object which contains placeholders for data. You call the parse() method to tell the Query object that the query string contains placeholders. Having done that, you call one of the the many exec*(), store*(), or use() overloads that take SQLTypeAdapter objects. There are 25 of each by default, differing only in the number of STA objects they take. (See lib/querydef.pl if you need to change the limit, or examples/tquery2.cpp for a way around it that doesn't require changing the library.) Only the version taking a single STA object is documented below, as to document all of them would just be repetitive. For each Query method that takes a single STA object, there's a good chance there's a set of undocumented overloads that take more of them for the purpose of filling out a template query.

See the user manual for more details about these options.

Constructor & Destructor Documentation

mysqlpp::Query::Query ( Connection c,
bool  te = true,
const char *  qstr = 0 
)

Create a new query object attached to a connection.

This is the constructor used by mysqlpp::Connection::query().

Parameters
cconnection the finished query should be sent out on
teif true, throw exceptions on errors
qstran optional initial query string
mysqlpp::Query::Query ( const Query q)

Create a new query object as a copy of another.

This is not a traditional copy ctor! Its only purpose is to make it possible to assign the return of Connection::query() to an empty Query object. In particular, the stream buffer and template query stuff will be empty in the copy, regardless of what values they have in the original.

References operator=().

Member Function Documentation

int mysqlpp::Query::errnum ( ) const

Get the last error number that was set.

This just delegates to Connection::errnum(). Query has nothing extra to say, so use either, as makes sense in your program.

References mysqlpp::Connection::errnum().

Referenced by exec(), execute(), store(), store_next(), and use().

const char * mysqlpp::Query::error ( ) const

Get the last error message that was set.

This just delegates to Connection::error(). Query has nothing extra to say, so use either, as makes sense in your program.

References mysqlpp::Connection::error().

Referenced by exec(), execute(), store(), store_next(), and use().

size_t mysqlpp::Query::escape_string ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
) const

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps
See Also
comments for escape_string(char*, const char*, size_t) and DBDriver::escape_string(std::string*, const char *, size_t) for further details.

References mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

size_t mysqlpp::Query::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Return a SQL-escaped version of the given character buffer.

Parameters
escapedcharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
originalpointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

DBDriver provides two versions of this method and Query::escape_string() calls the appropriate one based on whether or not a database connection is available. If the connection is available, it can call the DBDriver::escape_string() method. If there is no database connection available (normally only in testing), then DBDriver provides a static version of the function that doesn't use a database connection.

See Also
comments for DBDriver::escape_string(char*, const char*, size_t), DBDriver::escape_string_no_conn(char*, const char*, size_t) for further details.

References mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

bool mysqlpp::Query::exec ( )
inline

Execute a built-up query.

Same as exec(), except that it uses the query string built up within the query object already instead of accepting a query string from the caller.

Returns
true if query was executed successfully
See Also
exec(const std::string& str), execute(), store(), storein(), and use()

References exec().

Referenced by mysqlpp::Connection::create_db(), mysqlpp::Connection::drop_db(), and exec().

bool mysqlpp::Query::exec ( const std::string &  str)

Execute a query.

Same as execute(), except that it only returns a flag indicating whether the query succeeded or not. It is basically a thin wrapper around the C API function mysql_real_query().

Parameters
strthe query to execute
Returns
true if query was executed successfully
See Also
execute(), store(), storein(), and use()

References mysqlpp::Connection::driver(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), and mysqlpp::OptionalExceptions::throw_exceptions().

SimpleResult mysqlpp::Query::execute ( )

Execute built-up query.

Use one of the execute() overloads if you don't expect the server to return a result set. For instance, a DELETE query. The returned SimpleResult object contains status information from the server, such as whether the query succeeded, and if so how many rows were affected.

This overloaded version of execute() simply executes the query that you have built up in the object in some way. (For instance, via the insert() method, or by using the object's stream interface.)

Returns
SimpleResult status information about the query
See Also
exec(), store(), storein(), and use()

References str(), and template_defaults.

Referenced by mysqlpp::Transaction::commit(), execute(), mysqlpp::Transaction::rollback(), and mysqlpp::Transaction::Transaction().

SimpleResult mysqlpp::Query::execute ( SQLQueryParms p)

Execute template query using given parameters.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References execute(), str(), and template_defaults.

SimpleResult mysqlpp::Query::execute ( const SQLTypeAdapter str)

Execute a query that returns no rows.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), execute(), mysqlpp::SQLTypeAdapter::length(), and template_defaults.

SimpleResult mysqlpp::Query::execute ( const char *  str,
size_t  len 
)

Execute query in a known-length string of characters. This can include null characters.

Executes the query immediately, and returns the results.

References affected_rows(), mysqlpp::Connection::driver(), errnum(), error(), mysqlpp::DBDriver::execute(), execute(), info(), insert_id(), reset(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

template<typename Function >
Function mysqlpp::Query::for_each ( const SQLTypeAdapter query,
Function  fn 
)
inline

Execute a query, and call a functor for each returned row.

This method wraps a use() query, calling the given functor for every returned row. It is analogous to STL's for_each() algorithm, but instead of iterating over some range within a container, it iterates over a result set produced by a query.

Parameters
querythe query string
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

template<typename Function >
Function mysqlpp::Query::for_each ( Function  fn)
inline

Execute the query, and call a functor for each returned row.

Just like for_each(const SQLTypeAdapter&, Function), but it uses the query string held by the Query object already

Parameters
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

template<class SSQLS , typename Function >
Function mysqlpp::Query::for_each ( const SSQLS &  ssqls,
Function  fn 
)
inline

Run a functor for every row in a table.

Just like for_each(Function), except that it builds a "select * from TABLE" query using the SQL table name from the SSQLS instance you pass.

Parameters
ssqlsthe SSQLS instance to get a table name from
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

template<class T >
Query& mysqlpp::Query::insert ( const T &  v)
inline

Insert a new row.

This function builds an INSERT SQL query. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
vnew row
See Also
replace(), update()
template<class Iter >
Query& mysqlpp::Query::insert ( Iter  first,
Iter  last 
)
inline

Insert multiple new rows.

Builds an INSERT SQL query using items from a range within an STL container. Insert the entire contents of the container by using the begin() and end() iterators of the container as parameters to this function.

Parameters
firstiterator pointing to first element in range to insert
lastiterator pointing to one past the last element to insert
See Also
insertfrom(), replace(), update()
ulonglong mysqlpp::Query::insert_id ( )

Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.

Return values
0if the previous query did not generate an ID. Use the SQL function LAST_INSERT_ID() if you need the last ID generated by any query, not just the previous one. This applies to stored procedure calls because this function returns the ID generated by the last query, which was a CALL statement, and CALL doesn't generate IDs. You need to use LAST_INSERT_ID() to get the ID in this case.

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::insert_id().

Referenced by execute().

template<class Iter , class InsertPolicy >
Query& mysqlpp::Query::insertfrom ( Iter  first,
Iter  last,
InsertPolicy &  policy 
)
inline

Insert multiple new rows using an insert policy to control how the INSERT statements are created using items from an STL container.

Parameters
firstiterator pointing to first element in range to insert
lastiterator pointing to one past the last element to insert
policyinsert policy object, see insertpolicy.h for details
See Also
insert()
bool mysqlpp::Query::more_results ( )

Return whether more results are waiting for a multi-query or stored procedure response.

If this function returns true, you must call store_next() to fetch the next result set before you can execute more queries.

Wraps mysql_more_results() in the MySQL C API. That function only exists in MySQL v4.1 and higher. Therefore, this function always returns false when built against older API libraries.

Returns
true if another result set exists

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::more_results().

mysqlpp::Query::operator void * ( ) const

Test whether the object has experienced an error condition.

Allows for code constructs like this:

* Query q = conn.query();
* .... use query object
* if (q) {
* ... no problems in using query object
* }
* else {
* ... an error has occurred
* }
*

This method returns false if either the Query object or its associated Connection object has seen an error condition since the last operation.

bool mysqlpp::Query::operator! ( ) const
inline

Returns true if the query object is not in a bad state.

This just returns the opposite of operator void*(), and is required only because basic_ios defines it, so we have to override it to get Query-specific behavior in code like this:

if (!query) ...
Query & mysqlpp::Query::operator= ( const Query rhs)

Assign another query's state to this object.

The same caveats apply to this operator as apply to the copy ctor.

References mysqlpp::OptionalExceptions::set_exceptions(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Query().

void mysqlpp::Query::parse ( )

Treat the contents of the query string as a template query.

This method sets up the internal structures used by all of the other members that accept template query parameters. See the "Template Queries" chapter in the user manual for more information.

References str().

template<class T >
Query& mysqlpp::Query::replace ( const T &  v)
inline

Insert new row unless there is an existing row that matches on a unique index, in which case we replace it.

This function builds a REPLACE SQL query. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
vnew row
See Also
insert(), update()
template<class Iter >
Query& mysqlpp::Query::replace ( Iter  first,
Iter  last 
)
inline

Insert multiple new rows, or replace existing ones if there are existing rows that match on key fields.

Builds a REPLACE SQL query using items from a range within an STL container. Insert the entire contents of the container by using the begin() and end() iterators of the container as parameters to this function.

Parameters
firstiterator pointing to first element in range to insert/replace
lastiterator pointing to one past the last element to insert/replace
See Also
insertfrom(), replace(), update()
template<class Iter , class InsertPolicy >
Query& mysqlpp::Query::replacefrom ( Iter  first,
Iter  last,
InsertPolicy &  policy 
)
inline

Replace multiple new rows using an insert policy to control how the REPLACE statements are created using items from an STL container.

Parameters
firstiterator pointing to first element in range to replace
lastiterator pointing to one past the last element to replace
policyinsert policy object, see insertpolicy.h for details
See Also
insert()
void mysqlpp::Query::reset ( )

Reset the query object so that it can be reused.

As of v3.0, Query objects auto-reset upon query execution unless you've set it up for making template queries. (It can't auto-reset in that situation, because it would forget the template info.) Therefore, the only time you must call this is if you have a Query object set up for making template queries, then want to build queries using one of the other methods. (Static strings, SSQLS, or the stream interface.)

References mysqlpp::SQLQueryParms::clear(), and template_defaults.

Referenced by exec(), execute(), store(), and use().

bool mysqlpp::Query::result_empty ( )

Returns true if the most recent result set was empty.

Wraps DBDriver::result_empty()

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::result_empty().

StoreQueryResult mysqlpp::Query::store ( )

Execute a query that can return a result set.

Use one of the store() overloads to execute a query and retrieve the entire result set into memory. This is useful if you actually need all of the records at once, but if not, consider using one of the use() methods instead, which returns the results one at a time, so they don't allocate as much memory as store().

You must use store(), storein() or use() for SELECT, SHOW, DESCRIBE and EXPLAIN queries. You can use these functions with other query types, but since they don't return a result set, exec() and execute() are more efficient.

The name of this method comes from the MySQL C API function it is implemented in terms of, mysql_store_result().

This function has the same set of overloads as execute().

Returns
StoreQueryResult object containing entire result set
See Also
exec(), execute(), storein(), and use()

References str(), and template_defaults.

Referenced by mysqlpp::Connection::count_rows(), store(), and store_next().

StoreQueryResult mysqlpp::Query::store ( SQLQueryParms p)

Store results from a template query using given parameters.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References store(), str(), and template_defaults.

StoreQueryResult mysqlpp::Query::store ( const SQLTypeAdapter str)

Execute a query that can return rows, returning all of the rows in a random-access container.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), mysqlpp::SQLTypeAdapter::length(), store(), and template_defaults.

StoreQueryResult mysqlpp::Query::store ( const char *  str,
size_t  len 
)

Execute a query that can return rows, returning all of the rows in a random-access container.

This overload is for situations where you have the query in a C string and have its length already. If you want to execute a query in a null-terminated C string or have the query string in some other form, you probably want to call store(const SQLTypeAdapter&) instead. SQLTypeAdapter converts from plain C strings and other useful data types implicitly.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), store(), mysqlpp::DBDriver::store_result(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

template<class Sequence , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
const SQLTypeAdapter query,
Function  fn 
)
inline

Execute a query, conditionally storing each row in a container.

This method wraps a use() query, calling the given functor for every returned row, and storing the results in the given sequence container if the functor returns true.

This is analogous to the STL copy_if() algorithm, except that the source rows come from a database query instead of another container. (copy_if() isn't a standard STL algorithm, but only due to an oversight by the standardization committee.) This fact may help you to remember the order of the parameters: the container is the destination, the query is the source, and the functor is the predicate; it's just like an STL algorithm.

Parameters
conthe destination container; needs a push_back() method
querythe query string
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

template<class Sequence , class SSQLS , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
const SSQLS &  ssqls,
Function  fn 
)
inline

Pulls every row in a table, conditionally storing each one in a container.

Just like store_if(Sequence&, const SQLTypeAdapter&, Function), but it uses the SSQLS instance to construct a "select * from TABLE" query, using the table name field in the SSQLS.

Parameters
conthe destination container; needs a push_back() method
ssqlsthe SSQLS instance to get a table name from
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

template<class Sequence , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
Function  fn 
)
inline

Execute the query, conditionally storing each row in a container.

Just like store_if(Sequence&, const SQLTypeAdapter&, Function), but it uses the query string held by the Query object already

Parameters
conthe destination container; needs a push_back() method
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

StoreQueryResult mysqlpp::Query::store_next ( )

Return next result set, when processing a multi-query.

There are two cases where you'd use this function instead of the regular store() functions.

First, when handling the result of executing multiple queries at once. (See this page in the MySQL documentation for details.)

Second, when calling a stored procedure, MySQL can return the result as a set of results.

In either case, you must consume all results before making another MySQL query, even if you don't care about the remaining results or result sets.

As the MySQL documentation points out, you must set the MYSQL_OPTION_MULTI_STATEMENTS_ON flag on the connection in order to use this feature. See Connection::set_option().

Multi-queries only exist in MySQL v4.1 and higher. Therefore, this function just wraps store() when built against older API libraries.

Returns
StoreQueryResult object containing the next result set.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::next_result(), mysqlpp::DBDriver::nr_error, mysqlpp::DBDriver::nr_more_results, store(), mysqlpp::DBDriver::store_result(), and mysqlpp::OptionalExceptions::throw_exceptions().

template<class Container >
void mysqlpp::Query::storein ( Container &  con)
inline

Execute a query, and store the entire result set in an STL container.

This is a set of specialized template functions that call either storein_sequence() or storein_set(), depending on the type of container you pass it. It understands std::vector, deque, list, slist (a common C++ library extension), set, and multiset.

Like the functions it wraps, this is actually an overloaded set of functions. See the other functions' documentation for details.

Use this function if you think you might someday switch your program from using a set-associative container to a sequence container for storing result sets, or vice versa.

See exec(), execute(), store(), and use() for alternative query execution mechanisms.

template<class T >
void mysqlpp::Query::storein ( T &  con,
SQLQueryParms p 
)
inline

Store template query results into a container.

This method is not intended to be used directly. It is part of the call chain in processing calls to one of the many storein() overloads that take a container and one or more SQLTypeAdapter parameters.

template<class Sequence >
void mysqlpp::Query::storein_sequence ( Sequence &  con)
inline

Execute a query, storing the result set in an STL sequence container.

This function works much like store() from the caller's perspective, because it returns the entire result set at once. It's actually implemented in terms of use(), however, so that memory for the result set doesn't need to be allocated twice.

There are many overloads for this function, pretty much the same as for execute(), except that there is a Container parameter at the front of the list. So, you can pass a container and a query string, or a container and template query parameters.

Parameters
conany STL sequence container, such as std::vector
See Also
exec(), execute(), store(), and use()
template<class Sequence >
void mysqlpp::Query::storein_sequence ( Sequence &  con,
const SQLTypeAdapter s 
)
inline

Executes a query, storing the result rows in an STL sequence container.

Parameters
conthe container to store the results in
sif Query is set up as a template query, this is the value to substitute for the first template query parameter; else, the SQL query string

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

template<class Seq >
void mysqlpp::Query::storein_sequence ( Seq &  con,
SQLQueryParms p 
)
inline

Execute template query using given parameters, storing the results in a sequence type container.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
concontainer that will receive the results
pparameters to use in the template query.
template<class Set >
void mysqlpp::Query::storein_set ( Set con)
inline

Execute a query, storing the result set in an STL associative container.

The same thing as storein_sequence(), except that it's used with associative STL containers, such as std::set. Other than that detail, that method's comments apply equally well to this one.

template<class Set >
void mysqlpp::Query::storein_set ( Set con,
const SQLTypeAdapter s 
)
inline

Executes a query, storing the result rows in an STL set-associative container.

Parameters
conthe container to store the results in
sif Query is set up as a template query, this is the value to substitute for the first template query parameter; else, the SQL query string

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

template<class Set >
void mysqlpp::Query::storein_set ( Set con,
SQLQueryParms p 
)
inline

Execute template query using given parameters, storing the results in a set type container.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
concontainer that will receive the results
pparameters to use in the template query.
std::string mysqlpp::Query::str ( const SQLTypeAdapter arg0)
inline

Get built query as a C++ string with template query parameter substitution.

Parameters
arg0the value to substitute for the first template query parameter; because SQLTypeAdapter implicitly converts from many different data types, this method is very flexible in what it accepts as a parameter. You shouldn't have to use the SQLTypeAdapter data type directly in your code.

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

std::string mysqlpp::Query::str ( SQLQueryParms p)

Get built query as a null-terminated C++ string.

Parameters
ptemplate query parameters to use, overriding the ones this object holds, if any
template<class T >
Query& mysqlpp::Query::update ( const T &  o,
const T &  n 
)
inline

Replace an existing row's data with new data.

This function builds an UPDATE SQL query using the new row data for the SET clause, and the old row data for the WHERE clause. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
oold row
nnew row
See Also
insert(), replace()
UseQueryResult mysqlpp::Query::use ( )

Execute a query that can return rows, with access to the rows in sequence.

Use one of the use() overloads if memory efficiency is important. They return an object that can walk through the result records one by one, without fetching the entire result set from the server. This is superior to store() when there are a large number of results; store() would have to allocate a large block of memory to hold all those records, which could cause problems.

A potential downside of this method is that MySQL database resources are tied up until the result set is completely consumed. Do your best to walk through the result set as expeditiously as possible.

The name of this method comes from the MySQL C API function that initiates the retrieval process, mysql_use_result(). This method is implemented in terms of that function.

This function has the same set of overloads as execute().

Returns
UseQueryResult object that can walk through result set serially
See Also
exec(), execute(), store() and storein()

References str(), and template_defaults.

Referenced by use().

UseQueryResult mysqlpp::Query::use ( SQLQueryParms p)

Execute a template query that can return rows, with access to the rows in sequence.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References str(), template_defaults, and use().

UseQueryResult mysqlpp::Query::use ( const SQLTypeAdapter str)

Execute a query that can return rows, with access to the rows in sequence.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), mysqlpp::SQLTypeAdapter::length(), template_defaults, and use().

UseQueryResult mysqlpp::Query::use ( const char *  str,
size_t  len 
)

Execute a query that can return rows, with access to the rows in sequence.

This overload is for situations where you have the query in a C string and have its length already. If you want to execute a query in a null-terminated C string or have the query string in some other form, you probably want to call use(const SQLTypeAdapter&) instead. SQLTypeAdapter converts from plain C strings and other useful data types implicitly.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), template_defaults, mysqlpp::OptionalExceptions::throw_exceptions(), use(), and mysqlpp::DBDriver::use_result().

Member Data Documentation

SQLQueryParms mysqlpp::Query::template_defaults

The default template parameters.

Used for filling in parameterized queries.

Referenced by execute(), operator=(), reset(), store(), and use().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/closed.png0000644000372000001440000000020412502417165022132 0ustar robertousers‰PNG  IHDR à‘KIDATxíÝm @!†ÑGk™É7À-`&séts¦Àñþòð@åk}ª2€… P%Á_Ëþ¿N² .:0Dk¥‹Â›x" Ö›)¡xÒ5õIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption__coll__graph.png0000644000372000001440000001374712502417165032120 0ustar robertousers‰PNG  IHDRÍ»I¥âbKGDÿÿÿ ½§“œIDATxœíÝyXwþðOÀrB¸Yµ¬TjÝUäY±*ŠH·Ö QZ… ¬ë­>Ê"ËZà±ë³-VV@9ë‘­ÊBE”æ±?]9´ŠDE9’k~Ìn6&!„‚3 ý¼ž>ûÌ|óï|fò6sd–0‚„^1&Ý ßÌ¢æ Qs†¨À¦»(((HKK£»Š±ÌÃÃãË/¿¤·í×›kÖ¬©©©ñöö¦·Œ±êÑ£Gµµµ´¿Ëôž€··w~~>ÝUŒMùùùAAAtWçgˆ˜3DÌ¢æ QsÐÔÔÄ`0FqÀþþþ˜˜˜·ß~ÛÂÂböìÙ”J¥´T¢'0g£¯··wÖ¬YuuuIIIõõõ{öìÉÍÍ]¼x±L&ÓØ¿¥¥…ÃáÓVVVŸ~ú)…ÅRD/îkŒ1ñññ¶¶¶•••, ¦L™²dÉOOϬ¬¬ððpõþr¹¼££ƒœæp8‰‰‰”–K ƒùSSÓ[·nÀÙ³g§OŸ>nÜ8WW×ììlËå)))ÞÞÞUUUÊÇ)ò°UZZúÆoØÙÙEGG hl„—qÊÓ999±±±dÈHfff111999‡š3g888¨ŒÓÝÝýá‡r8—]»v‰D"r?äææzxxX[['''¿Ò}>šºÙ Ö­[×ÓÓ“‘‘kÖ¬ééé!¿°zþüù?ü`cc#‘H‚ÈÉÉ™6mš\.ïëë311IMMåóù™™™l6»¯¯/--ÍÎή¨¨¨­­íüùó...ÐØØHî rÂÏÏïÞ½{µµµ\.7..Nc#AÝÝÝééédyŠé®®.hooW©¿ººÚÞÞ^Ëød7åé__ßææfçééI®V¯^ÝÕÕ•žžÚ÷[^^ž>¼ËôW {ÎnÞ¼I„X,V™nll”J¥•••A$&&ÑÙÙiddtèС®®.¹\ÞÛÛ+“ɦM›öÍ7ß(†ýöÛoÕsÆãñÈWóòò¸\®ÆÆÁê,g555GËød‹bZ,³X¬Û·o“íEEEäJ ªªJyÛµï7=É™Á7ÀÂÂŒŒŒT¦€Åb­\¹²¨¨èùóç—.] € &TUUÕÖÖº¸¸¼óÎ;W¯^e2™---3fÌPŒ9}útõ¹»»“S§NmmmÕÒ¨ÎÊÊÊÁÁ¡¡¡A¥½¡¡aæÌ™ºõôéS™LæææFÎr¹\EO'''åm7†”3í‹‹‹óóóçÎK …B¡\.?sæLgggXXØ{ï½×ÙÙéììüÓO?)–úùçŸÕ‡"?TàÞ½{ä›:X£F!!!ñññÊW—ýýýIIIþþþºeooÏb±ZZZÈÙææfgggršÉ4¼wÍð*ŒT* %[ †ŸŸ_aaaOOX,622255Ý´iSLLLiié“'O.^¼øÙgŸ©µmÛ¶¦¦¦ººº½{÷®_¿~°Æ/^'‹*Ó±±±Ïž=óõõ½xñbcccqq±———³³sTT”–ñûúú”k022 ŠŽŽ¾ÿþíÛ·÷íÛG~H*ºÜÃ8?Sœ‹ 6ùÚk¯õôô(–ÊËËsss366ž:ujii)Ab±8>>þõ×_777÷öö>yò$¨ŸeddLš4‰ÃálݺU(jl$^>gWž&¢¯¯oçΞžž¦¦¦Ó¦MKHHƒ/‘HæÎknn®2Nggghh¨££ãöíÛÉ•¶íƒÑ“ó3ú+Ð1gºØ»woppð°Qɇʬ–Æ_g‡Ò‘žälŒÜ§‰DmmmÇ?uêݵ ÆÈùÙ?þ8kÖ¬M›6ÍŸ?$ãŒ?>""B—ÆQÿ·@/žÛ|žö!Ÿ§¥ý]#ŸgHÏaÎ0gˆ ˜3D½¸¯ÑÒÒrìØ1º«›êëëé.ôàÞŽ;èÞð²òg³­é.c&NœH÷›LÐ_ðÔÖ6¯\™²q£Ïßþ¶’îZ žŸ Oqq=ù¿R©œîZ ælÄbiQÑ-xñBpåÊ¿é.Ç`ΆáŸÿ¼+ ‹Å,*Òók9†ÂÂz‹ R©¼¬Œ'Šé®È``ÎtÕß?ðý÷·¥Òÿ<%;0 ­¨ø?zK2 ˜3])‡ ˜LFaá ë1,˜3]ÞPþzJ¥òªª»==BK2 ˜3tvö_¹rO&{é^A.ðè*ɰ`ÎtrîÜOêAœ9ƒ‡N`ÎtRPP§þʼn\NÔÖ6?}ú‚–’ ælhmmÝõõ¿Èå¾ c±˜gÏjø¨C*0gC;{¶a°/¥RYa!Þ°š^<¤ç±£ãxÅl_ßÀ¸qFlöþ‰ŽÅ¿Š7úðyasrÚžšºaÙ²CwEÿ…ÇMDÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3D Zýs“'O¦{÷h`b2‘É4¥» UÆÆÆ×®]£û”^ÿ}Úlß¾ÝÛÛ›îB Àš5k?~LwƒÒëœÀœ9s鮞Ÿ!*`Î0gˆ ˜3DƒÏƒÁhjj¢eÕýýý111o¿ý¶……ÅìÙ³<(•JuY°©©‰ñûƒÏ™v---çUŒÜÛÛ;kÖ¬ººº¤¤¤úúú={öäææ.^¼X&“iì¯\‰••Õ§Ÿ~ú*ªÒ[ú~_c„äryGGÇ«9>>ÞÖÖ¶²²’ÅbÀ”)S–,Yâé陕•®½‡“˜˜ø*ªÒ[cêóŒÁ`äææzxxX[['''Àœ9sÀÁÁì ‘Hbbbìíííììbbb$ A©©©o¾ùæøñã.\xîÜ9òˆ¦Þ“<ØUVVNœ8ñÚµk999±±±dÈHfff111999dÏÒÒÒ7ÞxÃÎÎ.::z``@¹åãfww÷‡~Èáp\\\víÚ%‰4nˆÁ£û m //oÈ>ŠéÕ«Wwuu¥§§@GGGcc£ò6&%%­ZµêáÇ<ïøÃgŸ}–žžîìì|ñâÅöööŠŠ .—KöWïIµtéÒË—/·¶¶@{{»J1ÕÕÕööödO??¿{÷îÕÖÖr¹Ü¸¸8åJ”§CBB|}}›››y<ž§§g\\œÆ •}E£±–³ªª*‚ Äb1Ù®’³©S§òù|rº¢¢bÆŒžžž¹¹¹Š'Ož$û«÷$‡âñxAtuuiÌYMM ‡ÃQîID^^—ËÕ˜3±XÌb±nß¾M¶q¹\2*ûŠFcíüÌÉÉ ŒŒŒ4¾úàÁGGGŬ¥¥¥X,öôôT´¼ù曃õ$'¦N VVV ‹-R¿¡¡aæÌ™ä´»»»bòóOÝÓ§Oe2™››9Ëår=µoˆÁSçgÀdjÛ"òÆüÖÕÕU[[;iÒ¤ŸþYÑáÎ;ƒõ$Ûo|HHH||¼òÕeRR’¿¿?9K~hÀ½{÷ÈШ³··g±X---älss³³³³.bpÆÔÆ ¦¯¯œX¹råž={~ùåçïïäÈ‘-[¶ìÞ½»¼¼¼££ãòåËqqqäºzO•1cccŸ={æëë{ñâÅÆÆÆââb///gg稨(²Ã¶mÛšššêêêöîÝ»~ýz•JHFFFAAAÑÑÑ÷ïß¿}ûö¾}ûBBB^í¾  }‡ì¡ÁðÏÏT¦%ÉܹsÍÍÍÉÆžžž7N˜0ÁÆÆfóæÍýýý2™ìðáÃnnn–––þþþ¥¥¥¶¶¶{ªœêÑ××·sçNOOOSSÓiÓ¦%$$â¿§_“&Mâp8[·n …Ê•(ÕÙÙjccãèè¸}ûv¡P¨e£F¸¯hdð9¡³gÏ644(f f̘1Â1ÕI=ÏÙo⸩Ç[¿~ýÍ›7Ammíþýû5ÞeE#4Ö®7‡k÷îÝ`ùòåííí®®®›6mŠˆˆá˜ãÇù c ƒ ºkƒÁÈËË[³f Ý…=ßW¿õã&¢æ Qs†¨€9CTÐ÷ëÍ„„ò™ý!—3™L9ÝU½ÎÙŽ;=zDw/‘Éׯ;N™Òic#¢»–—¬]»ÖËË‹î*¥×÷5ôP~~Ý'Ÿœ\¸Ð#'g3ݵìàñ‘9‹YRr‹Þ’ æLW¥¥·Øìÿí.™L~æ :u…9ÓÕ™3uÉÿnÏq÷.¿¹ù%Ì™NîÞå75=#¯4ŒŒX%%7é*ɰ`ÎtRRrÓØXõ»‰DvúôuZê18˜³¡QPpC,Öð·€?îâñôë›1ý„9ÚÍ›¿´µi¾…‡NaΆvîÜO cc¶ú2™¼¸ïn M¯Ÿ×ÐóçOe³ÿ÷wòóë¼½Ý~÷;krÖÆÆœ¦º >¯1lNNÛSS7,[6ƒîB 70gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*`Î0gˆ ˜3DÌ¢æ Qs†¨€9CTÀœ!*¼ô÷ÅbñéÓ§E"ýúeI=téÒ¥'Oð/mkãçç7yòäÿÍJ i« -ëÖ­SŽÖKŸgR©ªªªhª  ³¤€çgˆ ˜3DÌ¢æ QAï~§âñãÇëׯ­k‘ (¦ÝÝÝ?ùä.—;’1É ÷ïßÿ׿þUýÕ¸¸¸¸¸8Z®¥D"Ñ7ß|SWWÇçó'Nœèãã³víZ‹5ä‚£»Ï5Ò»œº””GGG9998qâù3ç#ñÇ?þ‘¼ Äçó?þøcÅ-!‚ Ö­[7ÂÁuÁçó###KKKÉY@5a„ˆˆ''§û÷ïgffÞ¸qã‹/¾`25µ”777Õ5ýœYYYY[[€µµuddäŠ+^¼xaee5ÂaMLLLLL@(’ƒ+^Ú¼yó×…\.ïééQÌž8qÂÊÊêïÿ;™*—Ù³goܸ±¬¬ìÝwßÕ¾¸¥¥å«®ùלŸ-X° ¬¬lÆ Ë—/?yòdyyùºuëÞ}÷ÝãÇÀW_}•œœLö …þþþð¯ý+,,ÌÏÏ/88¸¼¼‚(..Þ°aC@@À–-[nݺ¥|˜{üøñ‚ ª««CCCW¬XñÕW_I$ŠÎÊ j¬œÅb±Ùl333rV*•¦¦¦®X±bÅŠ©©©ä-Ÿššš>úÈßßÕªU'Ož¹\~úôéÐÐЀ€€?þøÎ;ZvŽòÚµï¨Á èëëKLL|ÿý÷=*‹5nÝŸÿügX¹r%Ù^QQñÁ(t7níÚµwšòâÊ㫯ÜK—.mذaÙ²e§OŸÖŽAüÊë€úúú£GnÞ¼9==½¦¦&333***;;»§§çwÞ©®®–ÉdP]]íèèÈårE"Q\\ÜòåËÉ7,99Y$?þĉáááÙÙÙ|ðÁ矮¾¢’’’Ï?ÿüàÁƒ?þø#ù®kl´²²Úµkùªò4ˆD"¡P( ;::233/^lddD¾TPPÀçóÓÒÒ¾øâ‹›7ofee ‚ØØXww÷œœœ¨¨¨ôôôîîî¼¼¼Í›7ggg‡††¦¦¦ŽÊŽÒXüãÿhooOMMMJJª««;uê”Æ‘¿þúk(**€¾¾¾ÎÎNõóN.—ûðáC;Myqeƒ­ýÚµkGމˆˆHKKëííÕ}~e΂‚‚LMMýüü 88ØÔÔÔßßz{{===Ùl6Ç€K—.ùùù1 ‰DB„P(466ö÷÷?{ö¬‰‰Iaaadd¤——Wxx¸úŠ¢¢¢\\\<<<ÂÃÃ+**k433S”§ <<< `õêÕåååAAAŠ—ÊÊʶmÛfggçêêqýúuccãÌÌÌèèh;;;èïïÿî»ï”ëÖ!FËŽÒX€T*½|ùòÖ­[]]]7nܨØê_Á`Èår-{R…–µ/_¾ÜÜÜ|É’% |¼Öѯ}ºL&ûöÛoÉã0Œ˜˜˜+W®ô÷÷K$6›mbb²téÒ£GVWWwvv^¿~ýرcêC¥¤¤<~üøîÝ»‹/¬±¿¿ÿüùóä«ÊÓ*ÌÌÌy…>>>éééOŸ>miiÙ½{wII‰D"‘J¥l6[,“gK`Ù²eÊu*ÎâGN½6›½`Á‚/¿ü’Ïç“÷&-Zdnnååå@åŒJ±-6lèêêÚ±cÇõë×[[[¯^½ÅápÞÿ}-{R±8IãÚGeK_Éç“Éœ7oÞ÷ß?oÞ<²ÅØØxÏž=iiiÏž=srrúË_þbll$“ÉŽ9ÒÝÝMž $$$¨ µhÑ¢;wŠD"__ßòc\¥º»»:Dž–)O«°µµ555íéé!aaaa)))}ôƒÁ˜7o^DD„‰‰ITTTBBÂk¯½ìëë»{÷îÂÂB‰DrôèÑŽŽ77·ýû÷“k#§^lÛ¶-%%%22ÒÈÈháÂ…!!!ÆÆÆaaa_ýuNNΖ-[®^½ o½õÖªU«.\¸¦¦¦ÇŽËÊÊJMMmkksttôõõ T\ô¨ì4‹¥¼¸‚úÚGeK_ú=áüüü   Q¹/œ‘‘ñäÉ“}ûö龈Ê]i7©)¸s=öP¿Ó8`kk›ŸŸ¯hýã¦X,æóùeeeúÓŸF}pd F?gwî܉ˆˆXºtéŒ#úq33³÷Þ{O—F¤>ì´WuÜD¿eT7R‡9CTÀœ!*`Î0gˆ /}@>ã;ØÃ[éníڵʳ/Ý׉D.\ Ch$fΜ©ü` Cãs&.¼‰wŠ¡ŸQò,9˜èììœ0a‚••Õ¡C‡œïÝ»·{÷îâââ’’]]]Åú&Lèè蘙™íر£ÏC*//wrrês·ŠôC_4“N§ËYúŸ†††>Œ!22rêÔ©"‘HjáñxÇOIIé‡Ö}úÖ¿&íöJõó>³$@HOO§R©–––±±±™™™NNN¦¦¦»wïDDD„††â5y<‰Dº{÷.   ÀÃÃÃÐÐÐÙÙ933 ‘Hâãã©Tª‰‰É¤I“JKKeGr|`¿páÂÈ‘#)JDDÄ›7o”ÁÛ³€l9++kÏž=²ÃÕ!Ch4ZVV–RW'NX[[Ëùáp8«V­²°°°··ŒŒÄ_{„~øJ¥6ìðáÃxÍŸ~úi̘1$ÉÆÆ&66VÃKzñâE;;;6› 8wîܧŸ~ÚÕÕ%‰¢¢¢,--W¬XÁápðÊB¡F£YYYQ(& !õEñ–½½jP@`` —ËMMM,Y²„Ëå&%%:::®\¹B&“…B!†aYYYîîÇã$&&2™Ì´´4"‘Èãñ’’’( ƒÁhkk+,,´··Hÿòð‚¯¯o}}}EE…‹‹Ktt´R#†aG:,IËø {ùò¥\üeeeVVVjüãÕdËÁÁÁ>>>?®­­5jÞ(ÀßߟÍf§¤¤^½zÅårõõõ׬YÓÚÚš••xñâ…ÜV]]Ýù6ø¡+V¬\¹òùóçVVV7oÞÄ0ì»ï¾sww¯­­­««óòòŠŒŒÄk:thñâÅÍÍ͵µµŸþùÎ;aôEé-S/ ¥úyO…UUUaÖÓÓ#Wnhh‰DÖÖÖ—/_Æ0lΜ9±±±†±X,==½#GްÙl‰DÒÙÙ)‹ÝÝÝOŸ>-u{æÌE…ÕÖÖJcsqqQjT§*…ݸqÃÂÂBÜ"-÷ôôèêêÞ»w·3 ¼Q@ii©lßß¼yóÇðx<±X|åÊÜ(§0Uäl6ÛÞÞÞÃÿå†9’Á`àåHËnnnL&/{zzÂè‹Ò[¦êRKÛUÔÏ{>Kš˜˜ôôôäÊ]]ÝE‹1ŒŽŽŽ’’’àà`€¹¹yiiiEE…½½ýôéÓ¯]»¦££ÓØØèéé)õéáá¡Ø««+^psskmmUcTÄÌÌÌÚÚºººZÎ^]]=vìXÍ]µ··‹Åâ#Fà]\\¤5mmmeû®¯¯___ïçç7vìØÓ§O+õ¦¸“Fvÿþý 6à–§OŸJãR© .ÄËMMM666øsè¬Y³žyòd@ Æ?¾6’e‚‚‚|||ëêêÜÝÝñFûÎf³ BQQQWW×öíÛUUUr³dyy9óm0 ‹Å3gÎÜ·o‹Å²¶¶¾xñ"†aQQQuuuuuu“'O^·nî$""Âßß¿©©©¦¦ÆËËkÓ¦M0ú¢ô–©F_®ÃÔ+ ðõë×q¹\Yç#FŒÐ××wss»pá†a==={÷îurr266ž4iÒÙ³g–ššêèèhaa±yóf>Ÿ¯Ô(wåžÒy<Þ¶mÛFE"‘ÜÝÝ÷ïßßÝÝ­Ê¿P(œ2eб±±œ‹B&“mll¶nÝŠ7ª´ïÇŽ6lØ'Ÿ|rêÔ©ÀÀ@ …¢É:ìĉŸ}öYOO†ayyy666,K DFFÚÚÚššš²ÙlÜ —Ë]½zµ¹¹9™L ëêê‚ÔÅ[¦ž>S˜&ìÚµ+((èN‘S†Òíœ>Üãéÿí"x|$}QªŸ¾ßÓmmméééçÎësçˆG߯ôoÞ¼9nܸ5kÖ̘1ãCü :4<<\cú |Ì}Q’E©X. êQªŸ.·1È@ CÀ) ¤0\”ìV$''÷ˆA@ee¥«ìæØõëוf~"pˆÄaff~ÚŽâ£ÆÁÁAnÇ•€ö&4g×.ÆéÓ×òò6{y9k;–Z‡iŠH$ÉË»ÈËS6 T€¦)W®<ärù€ÜÜ*¡PÜk}R˜¦0Uø"µ»ûÍï¿?Ôv8¤0èîîùùç‘H ÐÕ%俢‰RSÂ4¢¤ä¾tf‰$¿üR×ÕõF»! Â4"'çŽì¿L‹Dâ_U’óP)¬w8œîÒÒ‡b±ì¶!7÷ŽÖP …õNQQ­œE"‘\¹ò'›Ý¥•xHa½sþü‰DɾôO?Õ(r …õÂóç¯oÞlT|óaXNÎm­„4°@ ë…‚‚j]]%WI"ÁîÜyÊdrú?¤RX/äæVâÛ`Š`((@e/ òïûptt€)^‰$ÐØØ@zíŠõ Ê­x.^¬^¿þL[Û÷Úd fI\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0d0 >\ÛÝ‚‚ŽÉÀÀAÛQÀ‚F£Á”ïqmjjÚºuë¤I“`8GÀàØ±cMMM0<Ãú¦à‰'@rŽèsΟ?É3Z‡!à‚†€ R.Ha¸ N…=zôˆ û‹£L[[[PPÐðáÃÇŸ——ׇÎß•>ïT§Âú–W¯^3†D"Ñéô[·n-[¶,00ðÒ¥KýCcc£……^633Û±cG¶þ! ß5ꨨ(ooïÔÔTüã_þò—çÏŸ9rdöìÙýƒD"yõê^¶°°ˆí·¦?­a!==J¥ZZZÆÆÆfff:99™ššîÞ½Š×äñx$éîÝ»€‚‚CCCggçÌÌL€D"‰§R©&&&“&M*--•Að åÂ… #GޤP(oÞ¼QjoÏ>²åÜÜÜ-[¶È•––†—9ΪU«,,,ìíí###Þ»~øJ¥6ìðáÃÒ.+…B!F³²²¢P(4M(ŠD¢¨¨(KKË+Vp8ÀĉÖÖÖr±iÞºÖ€ñ¢@§Ó{­Èårñ±aÉ’%\.7)) ÐÑÑqåÊ2™, 1 ËÊÊrww—H$<ÏÀÀ 11‘Éd¦¥¥‰D—””D¡P F[[[aa¡½½= ¡¡ï^ðõõ­¯¯¯¨¨pqq‰ŽŽVjÄ0ŒÃᤤ¤àáIËl6Àb±Tu$88ØÇÇçñãǵµµ£FÂ]üýýÙlvJJ àÕ«WªŒ‡Z¼xqsssmmí矾sçÎï¾ûÎÝݽ¶¶¶®®ÎËË+22RÚ¼Eٲ歫'  ×jï6VUU…aXOO\¹¡¡A$Y[[_¾|ð9sæÄÆÆbÆb±ôôôŽ9Âf³%Igg§X,vww?}ú´Ôí™3gV[[‹¥Óé...Jªâd±X6›­ôhOO®®î½{÷ð w(--•í‘*£››“ÉÄO/..öôô9r$ƒÁÀ-<ÀËJöN­«žÂ´¹Ò711èééÉ•ººº‹-b0%%%ÁÁÁssóÒÒÒŠŠ {{ûéÓ§_»vMGG§±±ÑÓÓSêÓÃÃC±!WWW¼àææÖÚڪƨˆ¹¹¹••Õƒd·oß?~|www{{»X,1bnwqq‘º²µµ•í‘*cSS“ @ ³fÍzòäÉÓ§O¥±Q©Ô… ªŠí][× ï³d@@@^^^vvö”)Sð¹ÏçK$’óçϳX¬ÐÐйsç²X,;;»ššÿþPíýû÷]áô€úúzüÒ«2*eÞ¼yGÅd~ˆ3++K(’H$+++]]ÝÆÆFÜþøñc;;;¼¬££äÚ*-,,¤c ›Í®¨¨°µµ•¾„®®®>pà€ªÀÞµuíc`šÍ’Ò+«´,‰(Š••UFF~ˆÏçæää¼|ù299ÙÐÐÏçÇÄÄP(”üü|&“YTT¤tæííÝÐÐpëÖ-WW×={ö(5b*Öa†½xñ‚L&—••ÕÔÔDGG~úé'ühPPOccc]]»»;îJi”#""üýý›ššjjj¼¼¼6mÚåááQWWWWW7yòäuëÖI;ÒÙÙ‰½=cjÞºzç:L½Â0 [¿~½‘‘—Ë•žE§ÓGŒ¡¯¯ïæævá ÃzzzöîÝëäädll_©S½šÆ0¬©©ÉßßßÖÖÖÄÄd„ /^”b±X!!!d2ÙÆÆfëÖ­¸+ÍÆårW¯^mnnN&“úººAdd¤­­­©©i`` ¾ …S¦L166–‹MóÖÕ3¦ »ví z§Sä”!÷Qñÿ9ðö‘î¸ ‚¶¶¶ôôôsçÎi;ÄñѬßææÍ›ãÆ[³fÍŒ3>ÄÏСCÃÃÃ51" AÀd‘úÌ)@§Ó—,YÒçžÀoVvvvŸ{þHÇ0Ä ) ¤0\ÂpµÒ=z´••UŸ{Ö."‘.—k:lKÛô=uuuÓ¦Mƒ±Ò‡²öÍ7ß´´´Àð¬]š›‡2™&66DI¨íXú˜iÓ¦Azö‡2† J0 ?~o[gÓ&Ÿ]»¾Öv8´Ó”šš–¶6€Á¨D–šƒ¦)¹¹•zzº€¶6Î;MÚgÀ€¦"‘$7÷¶P(èééæçWi;¢R˜F”—7p8|¼,ŠŒJ‘H¢Ý Ha‘›[I$þ÷Z½~-¸v­^‹ñ ÂzG ÖÈZD"Á¨ÔbH¤°Þ)-}È翵&I~þ¹F l»b0@ ëÜÜ;::òß!ˆŠ‹•ü× B¤°^àrÅÅ÷Åbùu½Ž!7÷ŽVBX …õÂ¥KuJÅbÉo¿=ärùýÒÀ)¬òòªå;ø"‘ø—_îõs<¤°^¨©i‘¨Þùª®~Ú± HЛï^èîî Ex¹¨¨î›o~üãÿþ6‰d€¿JB¨â#ýo¶Iýÿ+LMIZh€fI\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\ÂpA CÀ) ¤0\Þú–Íæææ7 -ô1ÓÕeÜÞníìüHÛ|¼P©Ô¸¸8YË[ ËÎÎ^ºtéŒ3ú;.Ä àÅ‹<ûf`%ßãÕ_!!¿ÿþû·ß~+gDë0\ÂpA CÀ) —NaÏž=óööî+oÞÞÞÏž=Soy§Ö½eX¶lÙÁƒ9N_E«y|>?!!!00pöìÙË—/ÏÈÈèéééÛ&ú ô› oall¨¾N||¼D"iiiÉÍÍ KOO766îÏ0âââÚÛÛ÷îÝkiiÙÜÜ×ÙÙч1Ha2™ëׯ¿páÂûþÑaÚÅÔÔ4,,L}33³aÆYXXŒ3fß¾}666çÏŸïç0®_¿¾nÝ:WWW333ˆˆˆ²²²¾AŠD"ár¹ï}úû(ÌÛÛ»¨¨håÊ• ,8{ö쯿þøÕW_¥§§Nœ8qøða¼&ŸÏ÷óókhh”——‡††úúúýúë¯ ÃòòòV®\9gΜ7Þ½{WvÜÆ‡ñ²²²… ž8qB(*5‚·Ç|ÍÇooï’’’•+WΛ7ïÇ”=·¼¼Üßß¿³³pùò奯:¼yó***ð</66vþüù øÌ¥þrnܸ±nÝ:??¿Å‹Ÿ={V® ŠAH$R~~¾ôÆ{xxÐétU1ˆÅ⌌Œ¥K—.X°ààÁƒ<O¶ †%$$¬]»öõëבH”˜˜¸páÂ… &&&ŠD¢¿ýío€E‹irIyÏ1¬²²2!!!,,,%%åÆiii6lÈÌÌär¹Ó§O/++‹Å€²²2@½`Á‚ü1$$äðáà°°ð?ÿùÏÚµk333W¬XqðàAņòóó<sóæMüê+5š™™EFFâGe˽rýúõ“'O†‡‡'%%ázÂùë_ÿ:vìØ“'O²Ùì“'OþóŸÿ444TêÁÞÞ¾­­ /?~üåË—‰‰‰‡º}ûö¹sçz½\ÝÝÝ{öìquuÍÊÊÚ°aCJJŠâÂN1HVUUåïïO£Ñètz{{»´²b 999W¯^=xðà÷ßßÒÒ’••%­ŒaXRRRUUÕ±cÇLMM999L&3))éèÑ£UUU§N0 /©ï©°¥K—’H$___@PP‰DòóótvvŽ5ŠH$ÖÖÖJJJ|}} ‚P(Ä0ŒÏçëëëûùùäææ®_¿~êÔ©d2ÙËËkíÚµŠ mذÁÞÞžJ¥®]»¶¸¸X•qÈ!_}õ~T¶Ü+ ,066ž={6@n.ؼysUUUddäüùóÝÜÜzu%‰~ûí·Í›7ÛØØ8;;¯^½Z°šË¥¯¯Ÿ––A&“)  «««× ÇG§Ó?>zôèK—.]¾|YU ………kÖ¬qvvvrrÚ±c‡»»»Ôsrr2NŠŠ:t(n)**Ú²e …Bqvv¿uë–†WRï¹Ò'‘H"‘(WèèèL:õêÕ«ÎÎΕ••Û¶m˜˜˜|ÿý÷999Ÿ~úiPP——“Étqq‘útvvVlÈÞÞ/888¼|ùRQ²¯ÉLÓÂÂB6xYŒ¿þúë3gÎ=zTÿÖÖV[[[›Í–H$x`gg'MÍå"‰­­­GŽáóù®®®J› R ”——Ϙ1ƒJ¥R©ÔÓ§O'&&úøø¨ŠAzÅ¥žÿüóOOOϬ¬¬;wâ–çÏŸ/^¼XZaÈ!jú® PVú3f̸víÚï¿ÿ>zôhKKKÀ›7o$ItttAAÁœ9svíÚÕÙÙiaañøñcéYMMMŠ®Z[[ñBKK ™LVcT …B‘Ý›hnnÖÕÕŇ  êÜ/^äåå;Ÿ&”‚aØÅ‹'Nœ077×ÑÑa2™ø¡¶¶6\êyóæMttô²eË’““ÿþ÷¿+­#$†aû÷ïoll”?~<¾,Q™L~þü9nyôè‘ì,óÍ7ßüöÛowïÞÅ-¦¦¦YYY¥¥¥¥¥¥jú®!Pæáá!‹Ïœ9ƒÏ @£Ñ®^½ÚÕÕ% ‰D¢Á—_~™PVVÆb±nݺ•œœ¬è*>>þÙ³g>LMM5k–*cWWWaa!~T¶ìççwãÆ &“YUUuàÀ___==½^»€aØáÇ-Z´{÷îÊÊÊòòré!‡Ãb±:::jjjvïÞÍd2—,Y ‰ÞÞÞqqqL&óÉ“'iii3gÎìµ!¡P(‰ˆDbOOOFF »»[ý)FFF¾¾¾ß~ûmEE“ɼÿ~BB‚ª|}}SSSŸ^“Ïç÷Ú¥@ÙÓÑÑ™6mÚ¥K—¦M›†[ôõõÿñ$%%½xñÂÖÖ6**J__éÒ¥b±øäÉ“Ÿõ÷ïß/çjæÌ™Û¶m>>>ÁÁÁø˜/gp8œ#GŽàË/ÙòŠ+ŒŒŒÚÛÛÉd²ÏòåË5éB~~>‡Ã $‰[·n=vìØèÑ£MLL›6mÂëP(äädéT²eË–øøøõë×ëéé}ñÅxlê166Þ°aÃþýûŒŒ‚‚‚|||¶o߯þ¬íÛ·gff¦¤¤<{öÌÜÜÜÛÛ{ÕªUªb €F£ ‚‰'†‡‡Ëy×qgÏž]µjUhhh||üºuë´iÓÂÃÉDâèÑ£/^üóÏ?kréäP’VZZúŽäHMM}þüù¿þõ/ÍOyöìÙòåË¥­Ë}TcD|$àÙ;r‹Ý¾Ÿ%{zz˜LfQQÑ×_ÝçÎ޾WØüþå—_zzz~ˆŸ!C†Ì;W#âcÖ,‰øH?Í’„,ƒ0·âÕ«W ÷îÝ{ýúµ££cppðÔ©Sµ z4lc—Ë]»v­ATTTbbâ_|±oß¾Û·o÷g L&sþüùxY“t ÁÍ`Ã222ÆŒC£ÑðŽŽŽ,‹N§?¾ßbMwÑ$hp3ØÆ°«W¯Ê¾V¬\¹rûöíxYUvbzŒR£bf‹ÒÄÙtÙ<Í[L *…ñx<‹åàà k422’¾ˆT•]£4‡GѨ˜Ù¢41FUºË;µ>hT ß“U½ÌV“]£4‡GѨ˜Ù¢&1æ[4 ªu˜‰‰‰¹¹ùÓ§OeïôÇÿýï?~œËåªÊ®QšÃ£hTÌl …ªcäP“Û£&ƒh0¨Æ0ÀäÉ“étºì¦_qq±H$200P“]£tØS4*f¶¨IŒ‘ã][4 6……††ÖÔÔÄÄÄÜ¿¿±±ñÌ™3 Ïž}¿ìY3[Ô$ÆÈ¥»|xë”Á62›™™%'''$$DEEñù|‡à‚ིkdQÌlÑÑÑQLŒ±¶¶Všîò­PÐ{IDŸÞK"´R.Ha¸ …!à‚†€ R.Ha¸(ÙqÕükEYØl¶¢ñ-…yyy-[¶ ÿÿtâ=X°`œ… øe!D‚Öa¸ …!à‚†€ R.Ha¸üaìX>Åj…IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/sql__types_8h.html0000755000372000001440000000451412502417162023632 0ustar robertousers MySQL++ Reference Manual
sql_types.h File Reference

Declares the closest C++ equivalent of each MySQL column type. More...

#include "common.h"
#include "tiny_int.h"
#include <string>
#include <stdint.h>

Go to the source code of this file.

Detailed Description

Declares the closest C++ equivalent of each MySQL column type.

The typedefs defined here are only for the "non-NULL" variants. To get nullable versions, wrap the appropriate type in the Null<T> template. See null.h for more information.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption__coll__graph.png0000644000372000001440000001512112502417165033057 0ustar robertousers‰PNG  IHDRÅËQPÀ×bKGDÿÿÿ ½§“IDATxœíÝyTW¾ðÛ ‹€Òfç B£"¸d¢ƒž” ŠdbÜ—‰ÈqTÐÑLjãèƒÊ"â‚Òà"¨LT”H ˆ:úX:Æ E¡7z«÷Gåµmwuƒäj5òûü‘Su«êÞ[Õ_k뛆A&ÝïÈÀ òp‚<œØ´´š———žžNKÓ}„Ïž={Þ~» ZžïæÎ{ëÖ­ñãÇ¿ý¦û‚_~ù¥¬¬Œ–O–žóBhüøñ¹¹¹tµþnËÍ͈ˆ ¥i¸8AžN'€ä àÔwóTWWÇ`00V(‹FÕ¿ÿ±cÇnÛ¶M©TÒÒõÝ<áÕÑÑ1f̘òòò”””ŠŠŠ 6;v,$$D¥RQ®/¸\.9ÍápÖ¯_ÿ;ûÑö¾à“œœìààpåÊ‹…2dÈÔ©Sýüü²³³£££õ×W«ÕÍÍÍä4—Ëݾ}û[íîcÒç'ƒqðàA‡íÛ·=ztðàÁ¶¶¶›6mBÅÅÅ-]º”\S$YYYýøã¡óçÏ9ÒÒÒÒÓÓóèÑ£!µZššêããÓ¿ÿñãÇ—””h__ÈËÍÙ³g‡êèè×ÙÙIYˆ^½6iOçää$&&’a"Y[['$$äääPV5nÜ8„³³³N=mmmŸ~ú)—Ëuww—Édäq8vì˜ÝŽ;Þè1ÿ½:„‡‡‡‡‡w¹Bhþüùííí@Í;·½½ü¢æùóçß}÷½½½B¡ "''Ç××W­V‹D" ‹´´4¡P˜••Åf³E"Qzzº££c~~~ccãÅ‹ÝÝÝBµµµäî“S¦L©©©)++ãñxIII”…A´µµeff’ÝÓL·¶¶"„ššštú_ZZêääd¤~r5í騨¨àààúúúêêj???²Q„М9sZ[[333BÍÍÍÆÛ©S§èúdM=O•••AÈåréÚÚZ¥Réìì|åÊ‚ ¶oßNDKK‹™™ÙÎ;[[[ÕjuGG‡J¥òõõ=tè¦ÚÇë空ºš\zêÔ)GYh¨Ÿ†òtëÖ-.—k¤~²D3-—ËY,Ö½{÷Èòüü|²Q„PII‰ö¾?n4æÉ¤¯w¡þýû#„ÌÌÌt¦B,kÖ¬YùùùÏŸ?¿|ùrTTBè½÷Þ+)))++swwŸ8qâõë×™L¦@ =z´¦Î‘#Gê7äííMN 6¬¡¡ÁH¡>‡ãìì\UU¥S^UUõÁt¿ª§OŸªT*///r–ÇãiÖtuuÕÞw“eêy2.<<¼   77w„ äUL*•ªÕêÓ§O·´´,]ºôã?niiqss»sçŽf«û÷ïëWEž$B555ä‡g¨RTTTrr²öÓœX,NII í~UNNN,K ³õõõnnnä4“ÙK>)ZΊݿÞiÎí”ÓJ¥ÒÑÑÑÉÉ);;›\$•J---óòòššš222,--¥Ré¶mÛÏœ9# )‚‚jkkoß¾íí혘HYH¸"âÅ‹C‡8qbaaaMMM~~¾¯¯ïŸþô'™Lf¤þŽŽâÕû§ÈÈÈàà`@p÷î]___²QCÇÁ¸¢Öež‚X¾|y¿~ýÚÛÛ5[:uÊËËËÜÜ|ذagÏž%B.—'''<ØÆÆfüøñÇ×ÏÓÈårW®\)•J) ‰W?{íi‚ D"ÑÚµkýüü¬¬¬|}}·nÝ*‘H Õ¯P(&L˜`cc£SOKKËÂ… ííí]\\V¯^M6 yêB7óÔ7nŒŒŒ|­Mtr 3k¤°g0VÕM4æ©¿Ï”Éd?y8AžN'€mï AFF]­¿Û***hk›–·^kÖ¬¡m‡{‚ÁᄲÙvtwã5xxxÐòÉÒó¾ w)+«Ÿ5+uÉ’€ücÝ}1upÿÔµ‚‚ ò¿J¥šî¾˜:ÈSäre~þ¡/$×®ý/ÝÝ1u§.üç?%’N„‹ÅÌϧï>·—€}AK—Lä‰Zcc[EÅÏj5Å—Q,óüyŠS@'CΟ¯2ôŦR©âóáÅ&µ^üÿ·¼Q‰ÜÅe€fV$ê´´4c³ûç÷®üú~0¾ [\]W§¥-ž>}t׫ömp½8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä àyXÑòW÷ºtãÆ sssºÍKL¦ݽx)!!‰þ~æ“'Oärynn.Ý1E»vízôèݽ f¢y"…‡‡ÓÝStúôiº»`Ü?œ O'ÈÀ òpêÝy‰DñññƒîׯŸ··÷æÍ›e2™‘õëêê=úÛb±8!!aÔ¨Qýû÷;vì¶mÛ”Jew6ìq‹½TïÎÓÊ•++++ù|þãdz²²Îž=›€\.W}‡³~ýú×m¥££c̘1ååå)))6l8vìXHHˆJ¥¢\_»õžµØ‹ÑýŒÚ©S§ºÓ7‡SVV¦™ýî»ï<<<‚¨­­Å¸kñññJ¥RS"‰ ”™™I¹>ÞÖõ…‡‡‡‡‡¿¹úÞ}~0`À¾}ûš››ÉÙÀÀÀŸþ!4nÜ8„³³3úÿ+Ε+W<<<:¤¹ú0ŒcÇŽùøøØÙÙíØ±!DDZZÚðáà ðá‡^¸p\9'''11‘ÅbiÚµ¶¶NHHÈÉÉ!+?{öìСCãââ:;;õ['·jkkûôÓO¹\®»»{||>ÿ³k×¼iÓF³ffl++úytÓa¢ãUhgfƲµ}åì­¬,tJ€>¸Þœ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ^ù½ÃǯX±B&ƒCÖ%ðœœ~µ¶ÑÝ“3gÎÍì+yÊÍ͈ˆ˜4i ý½Ðýû÷'Mš”››«)¡øýÌÍ›7¿Å.^lË–-:%pÿp‚<œ O'ÈÀÉä~ÏþÉ“' ,())ÁR[PPfÚÜÜÜÛÛû¯ý+Çû=ujz¨]¹““Ó¨Q£bcc9Ž¡ ‚ضmÛ7 {Мþ¢†††ÔÔÔû÷ï›™™ >|É’%^^^¯µ/ؽûç§ÔÔT>ŸÏçó³²²ÜÝÝ·lÙ‚ñOŒ•Ÿ>}zýúõb±xÙ²e"‘ÁwTÍÍÍ—/_>|øpÏÚ …Ÿ|ò‰föÙ³g+V¬pppصkWJJŠ““S\\ÜÏ?ÿܳÊqy÷óÄápììììììÜÝÝ—/_ÞÐÐðâÅ ¼•s¹Ü÷ßÿïÿ»‹‹ËéÓ§ ­ÜÙÙ‰rttìY[jµº½½]3›““3bĈ5kÖx{{{{{¯\¹2 àøñã=«—žä)((¨°°pñâÅ3fÌ8~üxQQÑüùó?ú裃"„¾þúë;vkJ¥ÒÐÐÐÚÚZ„ÐÍ›7—.]:eÊ”ÈÈÈ¢¢"„A‹/ [±bÅ?þ¨}yòäIPPPiiéÂ… gΜùõ×_+ ÊBÍÊÚRöœÅb±ÙlkkkrV©T¦¥¥Íœ9sæÌ™iiiJ¥!tëÖ­Ï?ÿ<44töìÙäÇ£V«Ož<¹pá°°°/¾øâÁê¿÷Ê`0¦OŸ^VVf¨ò¿üå/¡Y³f‘+è7d|/t6¯¬¬œ={6ƒñò/>ÆÆÆÎ;W³meeeDDÄÝ»wE"ÑöíÛ?ùä“ðððýû÷Ëårʆ Û×ÒÃóSEEÅþýû—-[–™™yëÖ­¬¬¬ØØØ£G¶··Oœ8±´´T¥R!„JKK]\\x<žL&KJJš1cùÁìØ±C&“]¼xñÈ‘#ÑÑÑG]´hÑW_}¥ßЙ3g¾úê«mÛ¶}ÿý÷š|ú…'>>ž\ª=’ÉdR©T*•677gee…„„˜™™‘‹òòò„Bazzú¿þõ¯ÊÊÊììl‰D’˜˜èíí““›™™ÙÖÖÆçóO:µlÙ²£G.\¸0--ÍÐaqwwoll4Tù¾}ûBùùù!ʆŒsíÍ Eccã AƒÈEäš››»ººjÖÏÍÍýÛßþæííýïÿ»©©)---%%¥¼¼üĉFZ¡<àÝ×Ã>>ÑÑÑÅÅņ ­­­?úè#r©ö4B(:::,,,,,lΜ9EEEšE………«V­rttôôôŒ‰‰¹}û¶¹¹yVVV\\œ½½=ya‹ÅçÎÓîç²e˺sˆô+×^JÙP÷{{;A–––äl˜Í:Ë–-{ÿý÷ÙlöÕ«WW®\éâââéé¹dÉÍa¤DyÀ»¯‡ÏwVVV!6›­3b2™×®]óôô¬¨¨X»v-B¨ÿþ»wïÎËËËÎÎ2dHdd¤¿¿¿P(Ô~ÔòôôÔoÈÝÝœðððhjj2RhHNNŽ››B¨³³óàÁƒ;vìØ»w/¹è×_={¶fMkkk6›ÝÐаsçN©TêííM–755uÙORCCƒæ ¡_¹öš” i3þÐ`gggnnÞÐÐ@nK>ýuttLŸ>]³Ž‡‡B¨µµU­Vkzåææ¦sÄtz­c«ï¼/˜4iÒÖ­[ 4bÄ„Pgg§Z­NJJR*•W®\Ù¸qã™3g¸\n}}½æ÷Ñ£GúU544Ÿß/¿übooo¤°K¡¡¡.\ ‚¼í°µµÝ½{7™6‘HÔÒÒÒÙÙ™”””””4~üx…BA>Ø;;;wÙO„AçÎ7n9«_¹öÊ” ‘T*‹Åzþü¹‘}a0øÃ.\¸°zõjM¡Î;ò_ø{ï½Çd2…BáÀB\.×HC=;¶oäùnäÈ‘*•êðáÃä!Ä`0®]»&‹ ›Í¶°°˜6mÚþýûKKK[ZZnß¾‘‘¡_Ujjê“'O>|xàÀC…b±øâÅ‹äRíiÖÖÖ‰D*•’³™™™OŸ>ëÖ­;sæŒB¡P*•l6[.—ggg#„$ÉôéÓµûI>vÚÚÚZZZž?~çÎM›6 …BòŽ˜²rížP6dccƒ***’H$ä}’>M磣£‹ŠŠÒÓÓA]]ÝáÇ/\¸ ¹Jh°Ùì   ={ö…Ÿ~ú)++kòäÉF¢<àÝ÷FÎOL&300ðÒ¥Kd‰¹¹ù† ÒÓÓŸ={æêêºyófss󈈕JµwïÞ¶¶6ò&cëÖ­:UMžŸ¯P(öïßßÜÜìååµiÓ&òQ !ôÅ_ŽŽŽ#GŽÌÈÈÐ\×ô+×>ØØØè7TPP°téÒ}ûöåää¬X±âúõëÚwvv1bÄìÙ³¿ùæ„——מ={ÒÒÒÎ;ÇårÇŽ»gÏM´­Zµ*55uùòåfff~øaTT”¹¹¹¡†ôík¡ÿ„åÝô~ýõ×/¿ü²û›è¼¦|/Œ÷í9ÐÖƒc»eËíñOø¯wr¹\(þùÏÆ^90qøóôàÁƒ˜˜˜iÓ¦=ú÷ÔcmmýñÇw§`娾©ëè ÞÆõôe&7^å-Éd‡*// …óæÍc±X]nO]êsç'‰DóðáØ˜˜ŒŒŒ¨¨¨âââøøxµZM¹¾ö(›ùóç¿ÅÎö>}îütäȇ³k×.&“‰rww;vì’%K )_Yi±µµíæ—w}VŸ;?/Z´ˆ ÉÒÒrÞ¼yÅÅÅ”6´G‰hóЂ º|ùòâÅ‹§OŸ~òäI:öf}+Oä÷húã}y<ÞãÇÉiÚ£D´rãÆ½{÷ÆÄĤ§§wtt¼á29}+O†0 ÍýSwl(•JCƒ@f̘acc3uêT„öpÊ>¢oåÉÆÆÆÎή®®N§¼®®nÈ!ätwlB~{¯ÿ½lÑ·ò„š MySQL++ Reference Manual
mysqlpp::UseQueryError Member List

This is the complete list of members for mysqlpp::UseQueryError, including all inherited members.

Exception(const Exception &e)mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
UseQueryError(const char *w="")mysqlpp::UseQueryErrorinlineexplicit
what() const mysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection.html0000755000372000001440000014005612502417164031426 0ustar robertousers MySQL++ Reference Manual
mysqlpp::WindowsNamedPipeConnection Class Reference

Specialization of Connection for Windows named pipes. More...

#include <wnp_connection.h>

Inheritance diagram for mysqlpp::WindowsNamedPipeConnection:
Collaboration diagram for mysqlpp::WindowsNamedPipeConnection:

Public Member Functions

 WindowsNamedPipeConnection ()
 Create object without connecting it to the MySQL server.
 
 WindowsNamedPipeConnection (const char *db, const char *user=0, const char *password=0)
 Create object and connect to database server over Windows named pipes in one step. More...
 
 WindowsNamedPipeConnection (const WindowsNamedPipeConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~WindowsNamedPipeConnection ()
 Destroy object.
 
bool connect (const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool is_wnp (const char *server)
 Check that given string denotes a Windows named pipe connection to MySQL. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for Windows named pipes.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

mysqlpp::WindowsNamedPipeConnection::WindowsNamedPipeConnection ( const char *  db,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over Windows named pipes in one step.

Parameters
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in
mysqlpp::WindowsNamedPipeConnection::WindowsNamedPipeConnection ( const WindowsNamedPipeConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

bool mysqlpp::WindowsNamedPipeConnection::connect ( const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

bool mysqlpp::WindowsNamedPipeConnection::is_wnp ( const char *  server)
static

Check that given string denotes a Windows named pipe connection to MySQL.

Parameters
serverthe server address
Returns
false if server address does not denote a Windows named pipe connection, or we are not running on Windows

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x76.html0000755000372000001440000001057112502417165024663 0ustar robertousers MySQL++ Reference Manual
 

- v -

mysql++-3.2.2+pristine.orig/doc/html/refman/doxygen.png0000644000372000001440000000730312502417165022345 0ustar robertousers‰PNG  IHDRh ;ˆØŠIDATxí]y\•Õº~45%TL Q”PE"q–Û11±]8a„w*©¨(*â" ˆzÀè`8 ¨‰¢mÅ,’òà„p$%”œBó(8k†Ü÷ýÜû6lòö»§k÷Ç÷[ÏÞß·Ö;?k½ëßÕÕÕPxÑêÏ't´ÏùÈ€zÀÇÅ3_€Q4€g@œmÿ ¾ò‰âci‰ôçÿ{ ðÇð¬ù~½Á€4:õHcÂü ðŸÁ³„ª'ÕPÆæ P7^h،♠zb„cóP¨„ 3‚† Ò}çÿO²qÁºNkÝTÛ(É?d Ç~z<’«4Óǡ؞Þv­zµÙ¦õ¬ZâdÛ,Ë6Ók±]Fz< ¾ZçƒsÕ?ìƒsUø2SÉåwê1”c`[ì—}%ѽ.Ô¼6‚BLZ˜û!F8[ ¹…×TéÛ— »Þ#gó]å:vžu?‡vèbÙR˜?wùŽŸ¾ÊÐgbÑÉÌÕ$kF~Ê;عÆ•¢ïX®?ÉèlÆÙôõà»Nʪ¼­,ìHC§gAz•ÆlÓº­gÑú ]œjÎñåM…3ÓÚæoÒ³'=‘$Ò÷f}G•ŸS_‡öèco.Êȹ :ó£ Ãds®Ù:1=¼{ƒå9?÷ý…zqÛvîÓi‰D’p¿Ë šmÙíoÛâýaÖüEqÒµwÌ}¿~{òj€ç{ôºŸFNëí[ëOq·ÇOSúXO]°>‚‚muæÄ¾e¤“5Ë{¨JÕ¯£(›´«bÂçû’ÍlÓÅ}žïú`éUÞy„ac§Á†ÔCºŠóAkl‘±y¥†ô¢ùôs÷Aø¬7ÄõôoJ±äÄ ù.¥Be. Z¬Ð×ÇÈöå¹­ù'Ù-PëìŠyF.ž‚žÝÚ€lp&.êˆð•jò7’re’z19»ã§HGíø%œüq°ïüz׈c¬_k_")ŸHJnÐÑ~ˆÐÖ˜á´äÕ5 µÁq€ÿ5#¸·îà¶+9T‘‚ ðŽ÷Rܸrz“Ï´Ì =Ï…{ðáO£Èf ¡Íwg|Ž’Ü/¢Þ$÷¯¢ëðúÀ;¿à¨Ö™âÒÆ­]¯ÜW"Þ/< ‡÷DÏà°½üB}çyIEc^—ƒ=[V“Ýh²ëMä$l];Kû®¸ýr¦È*Åò ÿtÒõ$]•MŸ÷´;×I€1èó!‚œõ¸M õ¨(fÌæ<ÁÎÎò5~z¿ù¶ž mÌêÕ >–âÚ©âëˆIÎÞçz;ãu[i·eç^ÆÜÙÓ³NÞëF6B\}7†»+üŽÓ,Ã'a ½˜-yHY¿,‘^—ñfú~ß?Hcø¸…¸ñó{Z+4\såƒû·¯Ù·nߣð«íFÆ¡sغëû§D¾?ò<–Ævkx0ÅM±ælذÁIÓxÿd”žÜÉ÷EE»AªM«g*È£YEí7Û™^[uíý®v[wGå†=Ed¼n×¶ÆæÖÅl¡'¨pGÚk+‹æ¢À¬¨C8ªâš2 dz3H£ß ¡¨BÒûSÃÅù[wŘ ~xpçútÁæmö¤Å£¥iQæ­‰AB1ÉfÙ‰›4u¹ïìIÒ]Ë6äò%ÿ†† 1t.’NJph¬zÌ ÎR1Ž"3-"¸‡‹&ìó°1âüžìó[:‡ï„¼‘……N m–“W0®_èÜœ ×õ6ùò&»)Æìꦬýæ}¬ñ~»{múù]z½£M•ºP~^Îá:eQTÙ_*7ÕÄ9É8—·Ëï 3°¶47E•î¿u÷“SÉ»U¯ _ NíºôW¬e¸ÄNÓ|»;™¿;ŒæÅd"ȉôøòÞµõï¾®½"èÄ´ÖMM+bYµ‘_ÉæEÝüÎ]P»¹XKÐI½Þ¥oE<_¹(„EP±Œ|mÇÁ¡‘Ý,ŠÓ©ººZ±Îߺ§×kÝ,kÍMš`Äø…jzeU»æ ™Át3ÓÀ½˜6—ÒöùË·r¨¹Ñ}““wö:Χùë¼ ¿|‚TܵÉQˆKßç_ÁâÀ™œ”pÑÐóໃ¼Ydâ0!®àa –øöçW$ÃÁ‘Á$/\¬$ð 2ÞímÞLH‹Ÿ èd£HVÜ,:ò½»RÍZšJ­a„z*>‹_…NT(ù‚^SVF­U¹8ñEþôñ܈óùnd;«®8™\C]ø=Èêm¬Æ:‚´ÆbãDd=Áãßžˆ‹UU5O‹|]þð®Pèêv‰á\]2ßìÿ"yÈ[ïyʧz£g{Y«{„Ùø5©ÿ;w{N3é­nâĨw§Á¢ÍK¢Ý­ûÏ29Id¿’ì y)ìPÞò8ŒÅ©¯‰±@mPÔñwjl,6 áhWÕ˜d öà uõmÁp®.™á£Ç…twöR x­BδYcŒxg*vo  yò‘•“[¬?ÜVœ˜0ÒN¡O난~Žó’¯·h#´Hkýœ±8kÓß^Àq@]àÓ“ø,56´¯÷Í-κU»n…[>]@nîøÏœp›[œ6# €4tën¯:ŽÒþ}…—8äT9_žY$/´G’K™©ù†•(óÑ’Mø©`ŸÉdѺ;ùO‹B Ó&P{qöhJÉ+Úé–§¦l2«MïöÝ_1ÑÓ«’t¸½±l€ëØya ¦ô©«®½ÆL^¬žêñš¸ùy.¾Û½Š[ u/]½‹iS}øN>²e1™q‡jfÚ&¢©iT\=kÏ›ÀXô-.84V5ðu!TE˜ þ.ŒOH´¶4—zwTr.ï‰¦Ë xõµ·œÖ„HÆù£žÈHùg Ñhñ’T$ßyq¸zþ¨p¿´ë< q•ró÷š‰wÿÍÑð–I]´–æI²é²˜sÂ"×:Õ–bÕ¦“ÈÙL6¢9VÊÓWž§<æ;”3?ý©Mê3AV#µ±ËÞ¯‘ž K£UrÝ9!›qát¦H£Ù+6ÇV…/TS^pÃùqgLP'Ú5E ‚–ÀÞºîÄ Ën"2|Ÿ;®W»Îý"Ö¬TwÖâµtúŽO'› á+W Ã+¦âZÌ–<ÕÆ&nOÝ,IŠ£06.ÁZ.Çñúøh*INÚ’Oe½ÉgBXÐÔZóäøä9èü“hÒíDSš¥¡Ê µA¯/Ôc¸ö“`A§¯"zå|‘ €ÅŸ¨ú;HÍ#‚Î|%ÄOˆƒ«OàÌÉÐÜD ž mÜðâc–ƤÉÂqm¶uË&~÷núÒË £ÇÏ€ZÕj =«_n[‡‡÷nN§ÏÝ$_¾bE˜‚€Õ)ù8¾?6‘lú“ÍÙæÖ}#bW( œ³d-®•p&¡ý’œÖa”"9öõņÐ$’Ú›AÜ!ä;ÐÑõè{~á¹8‘ÛÞ£1ÛÓÉ0ž`²#´kÒuäNÅÖ Q¹bhæ ”8ûÓMáŽa›•¿”w±h²¢®qŠæ°(bK ‚’Z¾Ò%ÐÆémáãÖË(Éý‚ÛJ)@> þ›7% ï{y Á“¾ÆÒîohfòô>{pÿ.­_Î%±ÉèägëlZØ\B2B #™¸ÚüÒºp‚hÝšü®[¥Ü<‹#SpñÌA7’ãØHƒt4:Ÿ|g¨tÓL¶*($Æ©»ì…®ù’ó÷$;b›ÔÙ`=¶£¦M„MÌÄ5ò«·Ç¾“H·ÌH.¼žHeAîº5}r­dõ¨±)ÀT};€Q5iÖ2…O0ü…0óñÃ;óæ,Š´²µ냔}g‘£]‹7å9ˆà©_{üèîêžC>úhê{Ž .ÈìðIIð€?[Kswz6Òuíý¬;µ€ç§OåâJÉa˶zv°éd† ¤µâ‚l´é舊«Åüy¾c÷ÁèÖÍ'ràúÅ™TWÕôÓ°¡L €|ʽŒ¼ì­høBã ÝTëî'ò]Kø£ìâÏ(=¹Kx €¿ LÌ,Pý¤Êµu‡¹…׈ §Å¾÷à1Ý«Äý;¿pGDäxZYÛ kfæ6¸ùóæ7®œ®þ6·ÕoÚ¾ÔH~ò®Þ¸â 8Uø“p<ºw3¡a£ÏÑ’‘3èÏ"€bˆ-ÎܺÏ_ªÅ]+ËM©zü°s“f-êçhÇãÑýÊãôÿ5}ZQNb{Ó?å%ÿ\SUõعIÓæ}~}p[œoÔÄ„êÐMMZáNÅå@>Œ„²á6(?¡Åé âK½+ü?À%ÝÝ·/Ç1‚9áUø?B)”ÕèâÞlÈÒêÏ @=àùÄÞžk­®ÅIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetClientIpOption.html0000755000372000001440000002535012502417163027543 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SetClientIpOption Class Reference

Fake client IP address when connecting to embedded server. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetClientIpOption:
Collaboration diagram for mysqlpp::SetClientIpOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Fake client IP address when connecting to embedded server.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadQuery__inherit__graph.png0000644000372000001440000001333112502417165030717 0ustar robertousers‰PNG  IHDR“»îx;bKGDÿÿÿ ½§“ŽIDATxœíyTSgþ‡¿!"   a=V1lÅRÇi‹Ê9Æ9ã*P¡´U:*´ŽgZ7*L=˜Š"jµ„m,3BÅe´‚!QkÃR*B@à&?¶„,÷þþ¸3id+KB¼éûþxóæÞ÷~xŸ›÷.Y^A€  Fú€˜&ÈUAæ¨ 2GU3YY&“566â8®­4¿LMMœœfÒÂŒÌõõõõööZYYͤ‘_!ÃÃÃíííú4Gâîî>óF~U<{öìÑ£G3lç¨ 2GU9ª‚ÌQ•Î\SSFÓwŠçx#¾Ìµ´´°Ùl½lz’h&´´´üè£ô›g4ú1‡ãxoo¯^6=I4²ÙìäädýæÍl˜+++óðð`2™ŽŽŽçÏŸ€•+W€ ¨Tª””ggçyóæ­^½ºººš\KsŒÒ,+Šøøxkkk‡¯P(JKKíííÅb1\ºtÉÙÙyppP©T&&&.Z´ÈÊÊ*""B"‘Œ·:ÙxII‰‹‹ ‡Ã‰ÖL¨¹u‰DòÎ;ï°Ùl‡¸¸8™L4íË/¿tss[¸páñãÇg¡KˆÐÕÕUUU5ñ2&&&"‘(;;›Á` 466ª7ýÙgŸq8×ÑÑqåÊ;;;ò)‰DrúôirÍò§Ÿ~ºqãÆ'Ožðùü+Vìß¿Ÿ ˆˆˆˆÈÈÈÎÎNkkëêêj‚ RRRÜÝÝù|¾@ ðôôŒ‹‹ou2L@@€P(¼{÷.—ËMJJÒL¨Y÷óóknnæóùË–-KJJ"ßà ‹Å§OŸ€ÞÞÞ™÷Û/¢ss†Í™3'55U,ã8Þß߯R©4ûÂÙÙùìÙ³êåsss'ÞŸ\]]E"Y®¨¨X¾|9Ab±ØÁÁÁÃÃìJ‚ \\\x<Y~ô葺ŸÏd2 ‚€~ø¬œ5s:?ÎI¥RÇóóó1 ‹ŠŠZ¿~=†aš ,^¼¸¡¡AýðáÇ7Èf³Õ]#‹ïÞ½ mmméééþþþûöí#³³³kmm%ËõõõGŽ™`u õ€P($GìÑX[[Óéô––òass³½½=Y62šõs½™hŸÌ¾#•J™LfAAAwwwff&“É”J¥d7õ÷÷ñùçŸs8œââb‘HT^^îèèçbccƒƒƒ[[[<==wíÚ¥R©üýý:„a˜Mii)A‰‰‰@ ¬^½zûöíã­N†ñõõmll¬©©qrrJHHÐL¨ùú óóókiiîîî Äó¯30¤Ñ2//oéÒ¥ÆÆÆ®®®%%%A( ///sss‚ ”JeJJ —Ë533[µjù" žï/Ír__߻ᄏ`Á‹=88˜––öꫯÊår‚ ŠŠŠlmm1 “Édqqqvvv¡¡¡b±x¼ÕÉÆ³²²^zé%6›½{÷n©Tª™Psë†mݺ•ÅbÙÚÚîÙ³‡9õbŽFÌà³_ä»kÖ¬™É‹^ï455999ͤ¦ŠVúí…»û…˜$ÈÌŸ??&&Fß)¦ 2'##Cß)¦ 2GU9ª‚ÌQdŽªháS{3oäWÅÀÀÀÌ™‘9& gžCë´·÷ ß{oÅ øAqã{Ìèʋ̼³goíöôtÔw`˜Ç9¥/*úŠŠjõEW¦¹7÷õI °°N¡Pé;ŽN0Ls<^N€¡¡áë×ë;ŽN0@sCCò¯¿nP*U@§Ó sÀ4@s••Õ#¤R‰ÿë_‚ÁÁaýFÒh® à;Í ¥Ruõê/|B‚Šš9‰d¨ªê±J¥y©C+,üNot†¡™+/ç¨ÁqüÆÄâA½äцf.?ÿ;ãÞÂ?ÿÙ0º’Ò”¹ÎÎÿ«®n}Wˆ ˆ‚‚{z‰¤; Ê\YY=>Æ„ãÄwßý$If?’î0(s……µäeÜhÊÊ jÀÔ»ûL=µÉÈoø¯\¹2$$dö!&G~~þˆtœ£*ÈUAæ¨ 2GU^,sš3wÏÚXh«ñ Ðî1õëQ£¹sçÎ’%KfaC---o¼ñFOOXZZ~ôÑGºÞ¢›³²²²±±™… á8ÞÛÛK–Ùlvrr²®·8åÑ’F£9sÆÍÍÍÊÊ*99ùüùóK–,±°°8xð ÄÆÆFEE‘K ˜šš’óƒ—••yxx0™LGGÇóçÏŽãééénnnóæÍ[µjUUU•æC8%%%...'66vxxxÌJx~tšÌHUZZjoo/‹àÒ¥KÎÎ΃ƒƒJ¥211qÑ¢EVVVÉRQ¡PÄÇÇ[[[s8œøøx…B1fŒ•+W¹—hfH$ï¼ó›Ívppˆ‹‹“Édd~ùå—nnn .<~üøTüÍ*——7ñ”ºÚ××—••›6mêëë;uêôôôܸqƒÅb) ‚ .\¸àîîŽãøÀÀ€‰‰IFF†H$ÊÎÎf0§Nâp8<¯££ãÊ•+ð¿I½‰ÿM'  ïÞ½Ëår“’’Ƭ$ÆŸ¿êëëûŸ‡|*"""22²³³ÓÚÚºººš ˆ””www>Ÿ/<==ãââÈ%?ýôÓ7>yò„Ïç¯X±bÿþýd#WÑ,‡‡‡ûùù577óùüeË–‘ 88X,Ÿ>}z{{q&ãçDLÃ\]]Ar¹|D¹±±Q©TÚØØ|óÍ7A&''aØœ9sRSSÅb1Žãýýý*•ÊÝÝýìÙ³êfsssG›ãóùä³yyy\.wÌʉ£Ž·§ŠÅb²+ ‚pqqáñxdùÑ£G겫««H$"ËË—/Ÿ Y£.Ëår:þàÁ²žÇã‘€œ•ZÝo÷91–¹éœ[Λ7æÌ™3¢ t:ýü#Çëé马¬ € TUUݽ{×ÁÁáÍ7ß¼uë–‘‘QKKËòåËÕmzxxŒÞ““Ypuu}úôé•ã1ºSÈzKKËèèè‡îܹ“¬ùé§ŸÔ-»¹¹mذ,·¶¶ÚÚÚ’ç¥k×®ýñÇ'£««K¥R-]º”|ÈårÕKÚÙÙiöÛ4ÐþUAHHHQQÑåË—½¼¼È1P*•â8žŸŸaXTTÔúõë1 ³··ohøùG^>cJrç¡PHþ«ãUN•¶¶¶ôôtÿ}ûö‘5vvvê[ºõõõGŽ!Ël6[­_,“ÕO2†µµ5Noii!677ÛÛÛ“e#£÷üˆýq2£å˜óÕ«ËJ¥’ÃáX[[çääOI¥R&“YPPÐÝÝ™™Éd2¥RéÑ£G9Nqq±H$*//ó8çëëÛØØXSSãää”0f%1áqîÎ;¢ç!B¥Rùûû:tÃ0›ÒÒR‚ =<<@ X½zõöíÛÉFbccƒƒƒ[[[<==wíÚ5A6ò8ª9r†……ùùùµ´´www2ðx}8Ú9ÎMlŽ ˆ;vÌ;·¯¯O½V^^ÞÒ¥K]]]KJJ‚ËåŸ|òÉ’%KÌÍÍW­ZuñâÅÑæ²²²^zé%6›½{÷n©T:f刞Ò,·§¦¥¥½úê«r¹œ ˆ¢¢"[[[ Ãd2Y\\œ……Ehh¨X,&éëë{÷Ýw,XÀb±¢££ÇŒ¡P(¼¼¼ÌÍÍGdÀ0lëÖ­,ËÖÖvÏž=d`ý˜›  ›Ò*šÿíè‡TÎ>z‰1Úœ–¯Äe2YGGÇ™3g.]º¤Ý–#ÐòJuuõk¯½ö§?ýiÍš53igþüù111“©œ}^Ïýv:FËËËÛ´i“!Æ„”rùòeuÍ‹õ^bò sT™£*ÈUy†òÊ+¯X[[ë1Áq###\ß)´ƒ@ ðññÑ~,Ò¼ÒQ*U—/à€ihæJKëçÌ¡kÖ45u=~,ÒW$aPæ‚ÈË«Q(FN)nlÌ0¼Ó ÌñùOÛÛÅ£ëåre~þ=»[dP抋ëæÌû“5’ºº'³œG§”¹¢¢:•JelÌý@»r¥^ßµ‰A} kÇßÞÞ²ÜÖ†}ûmó¦M?ßnöòrÒS.`°ï”–ÖïØ‘ÛÑqBßAt…A–¿*9ª‚ÌQdŽª sT™£*ÈUAæ¨ 2GU9ª‚ÌQdŽª sT™£*ÈUAæ¨ 2GU9ª‚ÌQdŽª sT™£*ÈUAæ¨ 2GU9ª‚ÌQdŽª sT™£*ÈUAæ¨ÊsßY½víZSS“¾¢h—ú 33SßA´F@@ÀâÅ‹~üÜ´ ƒúò±:î!伇3œ$¡ >þøc¥R©YƒŽsT™£*ÈUAæ¨Ê‹u2ÙÞÞþöÛoWUUi¥5___uÙÜÜüµ×^ûàƒ,--§šD&“åææÖÔÔttt,^¼ØËËkË–-t:ýÑ)/–9­“žžnkkKDOOOZZÚßÿþ÷„„„)µ044´sçNrF]{{ûü1;;»¶¶655U s¥Î----.\Èb±\\\¢££kjj¦Ú¹sç,--Oœ8áéééàààííMNŒ~åÊ]žüðÃâââ_ì¢i ýë9###Ÿÿûß>>>d±±ñ_þò—S§N={öÌÎÎ.11ÑØØxóæÍ*•êÿø‡D"!‡Ñ”¿¿ÿ¾}ûd2™ŸŸ_xx896ލ‰D’ššJÞ4˰k×.²@£Ñ–,Y’””D£ÑÌÍÍwîÜyøðá¹s熅…ùùù}øá‡……… …âäÉ“½½½K—.=xðà{ヲ¦¦™™™999'Ožloog³Ùo¿ý¶@ 8zôhBBBTTÔ_|qáÂ…÷ßÿÖ­[ä¶¢¢¢ÒÓÓ·oßN£Ñ|||bbb4_‘cvÑ49ç£VÞåÉÊÊêììüë_ÿ:ùUFÜ=ófŠvï°Ì¥R) _~ùåi·0Õ.úøã­¬¬t8+µ\.‰Dååå¿ûÝï´Ûò ƒÁ˜¶6mu‘–Í}ÿý÷111o½õÖòåËgÒŽ™™Ùúõë'SI9´ÕE:-ZGç£%bÖ@æ¨ 2GU9ª‚ÌQÍ_êýzÄlÙ²eÜOÊ^»v­««K_ÉóÛßþVó¡ÁΨdð ãUAæ¨ 2GU9ªòÿ)©xJ¼µþIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadOption.html0000755000372000001440000003311512502417163026044 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadOption Class Reference

Exception thrown when you pass an unrecognized option to Connection::set_option(). More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadOption:
Collaboration diagram for mysqlpp::BadOption:

Public Member Functions

 BadOption (const char *w, const std::type_info &ti)
 Create exception object, taking C string.
 
 BadOption (const std::string &w, const std::type_info &ti)
 Create exception object, taking C++ string.
 
const std::type_info & what_option () const
 Return type information about the option that failed. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when you pass an unrecognized option to Connection::set_option().

Member Function Documentation

const std::type_info& mysqlpp::BadOption::what_option ( ) const
inline

Return type information about the option that failed.

Because each option has its own C++ type, this lets you distinguish among BadOption exceptions programmatically.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Exception.html0000755000372000001440000002550012502417163026122 0ustar robertousers MySQL++ Reference Manual

Base class for all MySQL++ custom exceptions. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::Exception:
Collaboration diagram for mysqlpp::Exception:

Public Member Functions

 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Protected Member Functions

 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 

Protected Attributes

std::string what_
 explanation of why exception was thrown
 

Detailed Description

Base class for all MySQL++ custom exceptions.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/sql__buffer_8h.html0000755000372000001440000000715212502417162023740 0ustar robertousers MySQL++ Reference Manual
sql_buffer.h File Reference

Declares the SQLBuffer class. More...

#include "refcounted.h"
#include "type_info.h"
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::SQLBuffer
 Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types. More...
 

Typedefs

typedef RefCountedPointer
< SQLBuffer > 
mysqlpp::RefCountedBuffer
 Reference-counted version of SQLBuffer. More...
 

Detailed Description

Declares the SQLBuffer class.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ResultBase.html0000755000372000001440000006766612502417163026260 0ustar robertousers MySQL++ Reference Manual

Base class for StoreQueryResult and UseQueryResult. More...

#include <result.h>

Inheritance diagram for mysqlpp::ResultBase:
Collaboration diagram for mysqlpp::ResultBase:

Public Member Functions

virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fields & fields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer
< FieldNames > & 
field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer
< FieldTypes > & 
field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Protected Member Functions

 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Protected Attributes

DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

Base class for StoreQueryResult and UseQueryResult.

Not useful directly. Just contains common functionality for its subclasses.

Member Function Documentation

int mysqlpp::ResultBase::field_num ( const std::string &  i) const

Get the index of the named field.

This is the inverse of field_name().

References names_, and mysqlpp::OptionalExceptions::throw_exceptions().

Member Data Documentation

Fields::size_type mysqlpp::ResultBase::current_field_
mutableprotected

Default field index used by fetch_field()

It's mutable because it's just internal housekeeping: it's changed by fetch_field(void), but it doesn't change the "value" of the result. See mutability justification for UseQueryResult::result_: this field provides functionality we used to get through result_, so it's relevant here, too.

Referenced by copy().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption.html0000755000372000001440000002565512502417163030031 0ustar robertousers MySQL++ Reference Manual
mysqlpp::WriteTimeoutOption Class Reference

Set timeout for IPC data reads. More...

#include <options.h>

Inheritance diagram for mysqlpp::WriteTimeoutOption:
Collaboration diagram for mysqlpp::WriteTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set timeout for IPC data reads.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InteractiveOption__inherit__graph.png0000644000372000001440000001364012502417165032654 0ustar robertousers‰PNG  IHDR½»¿ìzbKGDÿÿÿ ½§“UIDATxœíÝyTSgÞð' $!¬VÅ€r VG9ÊTAD)µ£u)  ¥ŠŠÌq¬¤VC)‡Qð8:­›Ò*¸D6Ç…i‘a ")¤è¼¥l.,aQÀHÈvß?n'†o17 ¿Ïééyî“›çyòäË}îMbBÁ0 ðЍdLH@ä¹DÐõÖSVVVrr²Þº›„\]]¿úê+ýôEÑÛõT```YY™§§§~º›lš››ÞžMýoBžžž|>_Ÿ=N|>?((HoÝÁù rˆ€Ü" 7€ˆÉ•›†† …2Ž ö÷÷óx¼·ß~ÛÜÜÜÃÃãСC …‚”‘èÙäÊÍøêëë[¸paEEEbbbeeåþýû333W®\©T*uîßÔÔÄf³ñ²¥¥å¾}ûô8Øq¦×ëðÿ1qqqÖÖÖ………4 !äââòî»ïº»»§§§oÛ¶møþ*•êÙ³gx™Íf'$$èu¸ãÊàŽ7 åܹs®®®ÖÖÖ .\˜9s¦……Å_þò„PTTTxx8¾§X,f2™÷îÝC]¿~}îܹ&&&NNN.\@©Tª“'Oºººš››{zzi® ø2qíÚµÙ³gs8œ¨¨¨ÁÁA•h蚢YÎÈȈ‰‰ÁCƒ355åñx:›Z¼x1BÈÖÖV«ÞÞÞ?þ˜Íf;::FGGK¥R|233]]]­¬¬Ž9òZçœL_^ºB(88X$¥¥¥!„E"þÅÓ§O‹‹‹Y,–\.Ç0,##ÃÍÍM¥R‰Åbcc㤤$¡PxöìY:.‹“““9NNNN[[ÛÍ›7BõõõøCÆ ~~~uuu€Ë寯Æê¬Ä0¬··755žºÜÓÓƒêêêÒii©Í(íã»i–CCC}}}kjjÜÝÝñNB~øaOOOjj*BèÙ³g£ÏÛ•+Wôùlbnªªª0 “ÉdZåúúz…Bakk[XXˆaتU«0 ëîî622:zôhOOJ¥êëëS*•nnn_ýµºÙo¾ùfxnjjjð[¯\¹ÂåruVŽ4ΑrSVVÆf³Gi¯Q—e2F{ðà^Ÿ““ƒwŠ***Ò|ì£Ï›žscpëBÈÜÜ!ddd¤UFÑh´õë×çää<}úôöíÛ¡¡¡¡©S§ GGGooïï¿ÿžJ¥655Í›7OÝæÜ¹s‡wäììŒæÌ™ÓÒÒ2Jåp–––¶¶¶ÕÕÕZõÕÕÕ ,{SJ¥rÖ¬Yø&—ËUïioo¯ùØ Š!æft¹¹¹|>É’%øê#‘HT*ÕÕ«W»»»ÃÃÃW¯^ÝÝÝíààðÓO?©ïõŸÿügxSø=B¨®®’FªÔ)444..Nóê©¿¿?11ÑßßìMÙØØÐh´¦¦&|³±±ÑÁÁ/S©üìèíÈ6öuJ}LÖYV(ÇÆÆ&==¿I"‘˜˜˜deeuuu¥¤¤˜˜˜H$’C‡q8œ¼¼<¡P˜ŸŸ¯óüÆÇǧ¾¾¾¼¼ÜÙÙ9&&Fg%6Âù †aÏŸ?Ÿ={¶··w~~~]]]NNŽ››Û;ï¼#•JGi¿¯¯z~âëëÛÔÔtÿþ}777¼Ó‘æa$p~ó’Ü`¶sçÎ7ÞxC$©ïuåÊ•Y³f1Œ9sæ\»v Ã0™L7sæL333OOÏ‹/ÏMZZÚôéÓÙlö®]»$‰ÎJlès¬YÆ0L,ïÝ»×ÝÝÉdº¹¹ÅÇÇ ŒÔ¾\._²d‰™™™V;ÝÝÝ›7of±Xvvv{öìÁ;…ÜüjŒ¹‹„„„¼Ò]´žo­ÍQ*‰ǦÆHϹ™`¯ûI¥Ò¶¶¶sçÎ]ºt‰ì±Lj|æ¥Ë?ü°pá­[·.[¶ì·´3eÊ”ˆˆˆ±TŽcûÿKôú9Q„|Þï5Á?ï§·gs‚o€€Ü" 7€È B¯×áMMM)))úìqò¨¬¬Ôkz{¥è“O>Ñëû­(––þtºÙÃxo¾ù¦ÞžMý]‡O,Aãúõ'·lYú׿®'{,†ÎotËÍ­Äÿ¯P¨È‹!‚Üè “)rrî!„ž?()ù…ìá"ÈÿþwíÀÀ BˆF£æäè÷|s‚€Üè]I£QB …*?¿F"‘‘="ƒ¹ÑÖß?øí·Š_?Å78¨((ø?r‡d€ 7Ú4Cƒ¢R)ÙÙ?’8ùіý£æ¿´R(TEEµ"‘„Ä! ÈÍÝÝý%%uJåko Ãnݪ!kH† r3Ä? ¯Ä0ìêUXª†€Ü ‘•U1üt• ;:ž“2$ùy¡­­·²ò±J¥ãzýºŽCѤ¹yáúõê‘Þ¬S(”ÙÙðà ìß3¼V2;»)êM±xÐÄĈNÿõOk"ËÑøƒ÷ÃGdo¿'))lÍšy/ßuòu ¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@䢷_ºÒrç΃Aö£±ñ›T*“ìQŒ†Çã‘õô‘öý~­­­2™ ~Nœ°cÇŽ=zôˆ¬ÞIþ^È€€r0q]½z•ÄÞáü¹D@n@„¡ç†¢aêÔ©]]]¯ÔBCCeü¾ë¼¿¿ŸÇã½ýöÛæææ‡R(úé =7¡»wï …Â¶¶¶‚‚‚–––]»v‘5’¾¾¾… VTT$&&VVVîß¿?33såÊ•J¥RçþMMMl6/[ZZîÛ·Oƒ}ÍÈzáèÊ•+cé!T__¯Þ,))±°°x¥ŽêëëÇëaFGG/]ºT¡P¨kÄbñŒ3RSS_w×ü¦Æ_jo4Ñh4‡ƒ—{{{?þøc6›íèè-•JGªT“Ëå<ÏÆÆ†Ãáðx<¹\ŽºqãÆüùó™L¦]BB¾'…BÉÌÌtuuµ²²:rä^™‘‘C£ÑÔ šššòx¼ŒŒ |ºvíÚìÙ³9NTTÔàààâÅ‹B¶¶¶hè:¥s:{4\dvìÇ›êêê¾¾>‘HT[[»lÙ²¸¸8ü¦ÐÐP__ßÆÆÆššww÷ØØX•šô‰‰‰6lxòäIMMÍï~÷»Ï>ûL$1Œ­[·¶´´ddd „:;;ñ~?üðÞžžÔÔT„гgÏzzzB]]]Z#,--µ±±Á{ñóó«««\.W«kͲΑïqô™!÷x3r£iÊ”)ø²%“Éh4ÚƒðÝrrr¸\®ÎJÍ'lΜ9B¡/Ì›7oppð矋ÅJ¥²¸¸ýwYDáá•#妬¬ŒÍfã½ÔÔÔ¨V×ê²ÎAêìqô™!77à÷§êëë¹\.Bh``àïÿûòåË?~ÜÑÑ¡T*gÍš…ïÃår[ZZtVj6õèÑ#;;;õ¦……ƒÁ¨««Û¾}»X,ž?¾æÎööö!###|ÓÒÒÒÖÖ¶ººzÅŠš»UWW/X°/;;;ã…9sæhu­6Ê µz4déü†Édnß¾½¹¹¹³³ÓÆÆ†F£555á7566:88è¬Ôl?0à1===@"‘òx¼ªªªÓ§OkîL¥jONhhh\\œæÕSbb¢¿¿?¾‰TBuuux†eÃ{4X` ]]]ííííííOž}:›ÍÞµk—D"‘ËåK–,133ÆžëùH=Ž„ÜóÒ~'‘Ïç‘Õû¸khhpvvÖçà D‘õ¦ °N¹S¦L‰ˆˆ {ú¹'))‰ìQèä¹D@n@ÉïO­\¹’ÜŒB¥¢R©*²G1¢û÷ï{yy‘Õ;i¹Y´hÑÆGú¤é”JJy¹‹K7‹%}ùÞdðòòÂ_ú#i¯8>¿âϾ¸|¹kFƲÇbˆàüF·ÜÜJ„(ÅÅ¿<>@öX äF‡®®¾;wêÂBÿøG5ÙÃ1DnܨÆ? ŒaXVVÙÃ1DøüU* !¤Ra?þøX(ì%{Dr£íÉ“g55ÍxnB45/ï¹C2@m׮ݣÓ_L‹R©ºz–*mmW¯VÈå/^îÃ0¬¶VØØØIâ äfˆÚZaCC'~%¥fdDËË«"kH† r3D^^ƒ¡ýº\®¼|¹œ”ñ,ÈÍ †eeý(“éø~‰ÖÖžššfýÉ`An^¨ªzÜÖ¦û’–*-›nÜø ! ƒAþŸR©ÊÍ…«ñ&À¿óÕ›eËæÐé/¾k‚ϯðôœ5mš¾Éb™‘4.Cï‡ÈÞ~ORRØš5óȈ!‚u ¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ÄïÛ’Éd—/_–J ô—ôïöíÛííðM¢!äçç7cƌۘ†ììlÒÆ [pp°fT†o B¨¨¨ˆ¤±õÅ_àÙPƒó@ä¹D@n—›ÖÖVŸñjÍÇǧµµu¼Z#€ðÑJ¥IIIááá«V­Ú¹sgffæ3{|'p$—} …|ðÁkmÖÌÌ,88øU[ˆˆˆ¨­­ˆˆHII -((ˆŽŽV©T:÷ÿí=¾ªIý=û*•J$½Öf-,,vìxå_ ?þ¼¥¥å±cǨT*BÈÑÑÑÃÃcË–-ùùùï¿ÿþëèñU9Þøøøäç燅…­]»öâÅ‹ß}÷]ppðûï¿îÜ9„Љ'Ž9‚ï)‘HüýýëëëBwïÞ ÷óó ùî»ïB†åææ†……­ZµêOúÓ½{÷4°øñ¶´´tóæÍëÖ­;qâ„\.×Y‰†œG:PûøøÜ¾};,,lÍš5—/_FýñD­_¿ßA¡P$%%­[·nݺuIII …oªªª*((èþýûeeeÛ·o÷÷÷ß°aÃÅ‹BJ¥2===((híÚµ‡‹ÅZͪsðàÁÓ§OãÉåòÕ«W "„ >úè#<48“7èœ="„ÄbqBBÂ|pæÌ™L¦s ¸NUVVž9sfÇŽ©©©eeegÏžŒŒ¼pá‚H$òöö.--ÅãÒÒR;;;.—+•Jccc×®]{ùòåÍ›79rD*•Þ¼yóüùóÛ¶m»páÂG}tøðááååå>|øÐ¡C?üðþT鬴´´ŒŽŽÆoÕ,k¹sçΩS§"""’““ûúúð'2''¿5++K(&''ÿío«ªªJOOÇëù|þgŸ}æààãì윑‘™ššÚÛÛ›••URRrøðáãÇ777gdd „´šÅùúú㿆QQQallìáᡳS±XÜÝÝÍårµÏårŸ¿Ñ9-Z Å¿þõ¯]»vÙÙÙ999mÙ²E½çèó0Ïo˜L&BˆN§k•BT*uéÒ¥%%%NNN•••{÷îE™››?~<+++==ÝÅÅ%$$dÑ¢EB¡Pó¯ÊÉÉixGŽŽŽxáÍ7ßìêê¥r,Øl¶æPµ´··oذA½ijjªî¿WKKËÑ£G%‰³³3~SGG‡z0Ó§OŸ>}úH]¿óÎ;ÅÅÅ3f̸{÷njjêHš™™YYY544,X°@³…††¼<–èééQ©Töööø¦ƒƒƒzÏÑça,^Ëyñ²eËâããg̘ñÖ[oY[[#„U*Ull¬B¡(,,¿ƒƒƒ±±±±±±žžžr¹|øå—_vtt oVÍÃÃC,ýõ׫V­RWêì4,,¬§§ç“O>)//oiiùþûï###Ùl¶úb[ç´hõH§Ó}||¾úê+¡PøðáógÏ®X±bìÓ2º×r¼¡R©^^^ß~û­——^Ã`0öïߟœœÜÙÙiooÿùçŸ3Œ   ¥RyêÔ©ÞÞ^|u×jjÅŠ{÷î•J¥¾¾¾¡¡¡ø‘V«!ÔÛÛ{ôèQü´F³<:[[Û·ÞzkÆ ·nÝB…‡‡ŸŸ4.Ÿ£HKKkoo?xðàØïÒÚÚºiÓ&uïZ›£TN*¤ÌÀ_|ammÍçóÕ5ã¿NÉd2¡P˜ŸŸÿ‡?üaÜbüsóóÏ?GDD¼÷Þ{óæý¦_¦455]½zõX*'™×µNÿ%úX§Àd¹D@n@ä1äõbüZ=|ÊL87nÔÜr.•Joݺ5ÆÏ±‚IeÁ‚šX’ÆÎo@ä¹Dü?YÓ¼*aOgIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/open.png0000644000372000001440000000017312502417165021627 0ustar robertousers‰PNG  IHDR à‘BIDATxíÝÁ €0 Ð׬ՙ\Àº€39—b!©9{|ðI>$#Àß´ý8/¨ÄØzƒ/Ï>2À[ÎgiU,/¬~¼Ï\ Ä9Ù¸IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/utility_8h.html0000755000372000001440000001042312502417162023147 0ustar robertousers MySQL++ Reference Manual
utility.h File Reference

Declares utility functions used within MySQL++. More...

#include "common.h"
#include <cctype>
#include <cstring>
#include <string>

Go to the source code of this file.

Namespaces

 mysqlpp::internal
 Namespace for holding things used only within MySQL++.
 

Functions

void mysqlpp::internal::str_to_lwr (std::string &s)
 Lowercase a C++ string in place.
 
void mysqlpp::internal::str_to_lwr (std::string &ls, const char *mcs)
 Copy a C string into a C++ string, lowercasing it along the way.
 

Detailed Description

Declares utility functions used within MySQL++.

None of this is meant to be used outside the library itself. None of this is considered part of the library interface. It is subject to change at any time, with no notice.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoTransaction.html0000755000372000001440000001464312502417164026755 0ustar robertousers MySQL++ Reference Manual
mysqlpp::NoTransaction Class Reference

Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used. More...

#include <transaction.h>

Public Member Functions

 NoTransaction (Connection &, bool=false)
 Constructor.
 
 ~NoTransaction ()
 Destructor.
 
void commit ()
 stub to replace Transaction::commit()
 
void rollback ()
 stub to replace Transaction::rollback()
 

Detailed Description

Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used.

This was created for use with InsertPolicy, used by Query::insertfrom(). You might use it when your code already wraps a given sequence of MySQL++ calls in a transaction and does an insertfrom() as part of that. MySQL doesn't support nested transactions, so you need to suppress the one insertfrom() would normally start.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherits.html0000755000372000001440000007254412502417162022706 0ustar robertousers MySQL++ Reference Manual
Class Hierarchy
mysql++-3.2.2+pristine.orig/doc/html/refman/noexceptions_8h.html0000755000372000001440000000741212502417162024166 0ustar robertousers MySQL++ Reference Manual
noexceptions.h File Reference

Declares interface that allows exceptions to be optional. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::OptionalExceptions
 Interface allowing a class to have optional exceptions. More...
 
class  mysqlpp::NoExceptions
 Disable exceptions in an object derived from OptionalExceptions. More...
 

Detailed Description

Declares interface that allows exceptions to be optional.

A class may inherit from OptionalExceptions, which will add to it a mechanism by which a user can tell objects of that class to suppress exceptions. (They are enabled by default.) This module also declares a NoExceptions class, objects of which take a reference to any class derived from OptionalExceptions. The NoExceptions constructor calls the method that disables exceptions, and the destructor reverts them to the previous state. One uses the NoExceptions object within a scope to suppress exceptions in that block, without having to worry about reverting the setting when the block exits.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1OptionalExceptions.html0000755000372000001440000003077512502417163030025 0ustar robertousers MySQL++ Reference Manual
mysqlpp::OptionalExceptions Class Reference

Interface allowing a class to have optional exceptions. More...

#include <noexceptions.h>

Inheritance diagram for mysqlpp::OptionalExceptions:

Public Member Functions

 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Protected Member Functions

void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Friends

class NoExceptions
 Declare NoExceptions to be our friend so it can access our protected functions.
 

Detailed Description

Interface allowing a class to have optional exceptions.

A class derives from this one to acquire a standard interface for disabling exceptions, possibly only temporarily. By default, exceptions are enabled.

Note that all methods are const even though some of them change our internal flag indicating whether exceptions should be thrown. This is justifiable because this is just an interface class, and it changes the behavior of our subclass literally only in exceptional conditions. This Jesuitical interpretation of "const" is required because you may want to disable exceptions on const subclass instances.

If it makes you feel better about this, consider that the real change isn't within the const OptionalExceptions subclass instance. What changes is the code wrapping the method call on that instance that can optionally throw an exception. This outside code is in a better position to say what "const" means than the subclass instance.

Constructor & Destructor Documentation

mysqlpp::OptionalExceptions::OptionalExceptions ( bool  e = true)
inline

Default constructor.

Parameters
eif true, exceptions are enabled (this is the default)

Member Function Documentation

void mysqlpp::OptionalExceptions::set_exceptions ( bool  e) const
inlineprotected

Sets the exception state to a particular value.

This method is protected because it is only intended for use by subclasses' copy constructors and the like.

Referenced by mysqlpp::ResultBase::copy(), mysqlpp::Connection::copy(), and mysqlpp::Query::operator=().


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1equal__list__b.html0000755000372000001440000002606512502417164027354 0ustar robertousers MySQL++ Reference Manual
mysqlpp::equal_list_b< Seq1, Seq2, Manip > Struct Template Reference

Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed. More...

#include <vallist.h>

Public Member Functions

 equal_list_b (const Seq1 &s1, const Seq2 &s2, const std::vector< bool > &f, const char *d, const char *e, Manip m)
 Create object. More...
 

Public Attributes

const Seq1 * list1
 the list of objects on the left-hand side of the equals sign
 
const Seq2 * list2
 the list of objects on the right-hand side of the equals sign
 
const std::vector< bool > fields
 for each true item in the list, the pair in that position will be inserted into a C++ stream
 
const char * delim
 delimiter to use between each pair of elements
 
const char * equl
 "equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
 
Manip manip
 manipulator to use when inserting the equal_list into a C++ stream
 

Detailed Description

template<class Seq1, class Seq2, class Manip>
struct mysqlpp::equal_list_b< Seq1, Seq2, Manip >

Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed.

Imagine an object of this type contains the lists (a, b, c) (d, e, f), that the object's 'fields' list is (true, false, true), and that the object's delimiter and equals symbols are set to " AND " and " = " respectively. When you insert that object into a C++ stream, you would get "a = d AND c = f".

See equal_list_ba's documentation for more details.

Constructor & Destructor Documentation

template<class Seq1 , class Seq2 , class Manip >
mysqlpp::equal_list_b< Seq1, Seq2, Manip >::equal_list_b ( const Seq1 &  s1,
const Seq2 &  s2,
const std::vector< bool > &  f,
const char *  d,
const char *  e,
Manip  m 
)
inline

Create object.

Parameters
s1list of objects on left-hand side of equal sign
s2list of objects on right-hand side of equal sign
ffor each true item in the list, the pair of items in that position will be inserted into a C++ stream
dwhat delimiter to use between each group in the list when inserting the list into a C++ stream
ethe "equals" sign between each pair of items in the equal list; doesn't actually have to be " = "!
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
././@LongLink0000000000000000000000000000014700000000000011567 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption__inherit__graph.p0000644000372000001440000001512112502417165033243 0ustar robertousers‰PNG  IHDRÅËQPÀ×bKGDÿÿÿ ½§“IDATxœíÝyTW¾ðÛ ‹€Òfç B£"¸d¢ƒž” ŠdbÜ—‰ÈqTÐÑLjãèƒÊ"â‚Òà"¨LT”H ˆ:úX:Æ E¡7z«÷Gåµmwuƒäj5òûü‘Su«êÞ[Õ_k뛆A&ÝïÈÀ òp‚<œØ´´š———žžNKÓ}„Ïž={Þ~» ZžïæÎ{ëÖ­ñãÇ¿ý¦û‚_~ù¥¬¬Œ–O–žóBhüøñ¹¹¹tµþnËÍ͈ˆ ¥i¸8AžN'€ä àÔwóTWWÇ`00V(‹FÕ¿ÿ±cÇnÛ¶M©TÒÒõÝ<áÕÑÑ1f̘òòò”””ŠŠŠ 6;v,$$D¥RQ®/¸\.9ÍápÖ¯_ÿ;ûÑö¾à“œœìààpåÊ‹…2dÈÔ©Sýüü²³³£££õ×W«ÕÍÍÍä4—Ëݾ}û[íîcÒç'ƒqðàA‡íÛ·=ztðàÁ¶¶¶›6mBÅÅÅ-]º”\S$YYYýøã¡óçÏ9ÒÒÒÒÓÓóèÑ£!µZššêããÓ¿ÿñãÇ—””h__ÈËÍÙ³g‡êèè×ÙÙIYˆ^½6iOçää$&&’a"Y[['$$äääPV5nÜ8„³³³N=mmmŸ~ú)—Ëuww—Édäq8vì˜ÝŽ;Þè1ÿ½:„‡‡‡‡‡w¹Bhþüùííí@Í;·½½ü¢æùóçß}÷½½½B¡ "''Ç××W­V‹D" ‹´´4¡P˜••Åf³E"Qzzº££c~~~ccãÅ‹ÝÝÝBµµµäî“S¦L©©©)++ãñxIII”…A´µµeff’ÝÓL·¶¶"„ššštú_ZZêääd¤~r5í騨¨àààúúúêêj???²Q„М9sZ[[333BÍÍÍÆÛ©S§èúdM=O•••AÈåréÚÚZ¥Réìì|åÊ‚ ¶oßNDKK‹™™ÙÎ;[[[ÕjuGG‡J¥òõõ=tè¦ÚÇë空ºš\zêÔ)GYh¨Ÿ†òtëÖ-.—k¤~²D3-—ËY,Ö½{÷Èòüü|²Q„PII‰ö¾?n4æÉ¤¯w¡þýû#„ÌÌÌt¦B,kÖ¬YùùùÏŸ?¿|ùrTTBè½÷Þ+)))++swwŸ8qâõë×™L¦@ =z´¦Î‘#Gê7äííMN 6¬¡¡ÁH¡>‡ãìì\UU¥S^UUõÁt¿ª§OŸªT*///r–ÇãiÖtuuÕÞw“eêy2.<<¼   77w„ äUL*•ªÕêÓ§O·´´,]ºôã?niiqss»sçŽf«û÷ïëWEž$B555ä‡g¨RTTTrr²öÓœX,NII í~UNNN,K ³õõõnnnä4“ÙK>)ZΊݿÞiÎí”ÓJ¥ÒÑÑÑÉÉ);;›\$•J---óòòššš222,--¥Ré¶mÛÏœ9# )‚‚jkkoß¾íí혘HYH¸"âÅ‹C‡8qbaaaMMM~~¾¯¯ïŸþô'™Lf¤þŽŽâÕû§ÈÈÈàà`@p÷î]___²QCÇÁ¸¢Öež‚X¾|y¿~ýÚÛÛ5[:uÊËËËÜÜ|ذagÏž%B.—'''<ØÆÆfüøñÇ×ÏÓÈårW®\)•J) ‰W?{íi‚ D"ÑÚµkýüü¬¬¬|}}·nÝ*‘H Õ¯P(&L˜`cc£SOKKËÂ… ííí]\\V¯^M6 yêB7óÔ7nŒŒŒ|­Mtr 3k¤°g0VÕM4æ©¿Ï”Éd?y8AžN'€mï AFF]­¿Û***hk›–·^kÖ¬¡m‡{‚ÁᄲÙvtwã5xxxÐòÉÒó¾ w)+«Ÿ5+uÉ’€ücÝ}1upÿÔµ‚‚ ò¿J¥šî¾˜:ÈSäre~þ¡/$×®ý/ÝÝ1u§.üç?%’N„‹ÅÌϧï>·—€}AK—Lä‰Zcc[EÅÏj5Å—Q,óüyŠS@'CΟ¯2ôŦR©âóáÅ&µ^üÿ·¼Q‰ÜÅe€fV$ê´´4c³ûç÷®üú~0¾ [\]W§¥-ž>}t׫ömp½8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä àyXÑòW÷ºtãÆ sssºÍKL¦ݽx)!!‰þ~æ“'Oärynn.Ý1E»vízôèݽ f¢y"…‡‡ÓÝStúôiº»`Ü?œ O'ÈÀ òpêÝy‰DñññƒîׯŸ··÷æÍ›e2™‘õëêê=úÛb±8!!aÔ¨Qýû÷;vì¶mÛ”Jew6ìq‹½TïÎÓÊ•++++ù|þãdz²²Îž=›€\.W}‡³~ýú×m¥££c̘1ååå)))6l8vìXHHˆJ¥¢\_»õžµØ‹ÑýŒÚ©S§ºÓ7‡SVV¦™ýî»ï<<<‚¨­­Å¸kñññJ¥RS"‰ ”™™I¹>ÞÖõ…‡‡‡‡‡¿¹úÞ}~0`À¾}ûš››ÉÙÀÀÀŸþ!4nÜ8„³³3úÿ+Ε+W<<<:¤¹ú0ŒcÇŽùøøØÙÙíØ±!DDZZÚðáà ðá‡^¸p\9'''11‘ÅbiÚµ¶¶NHHÈÉÉ!+?{öìСCãââ:;;õ['·jkkûôÓO¹\®»»{||>ÿ³k×¼iÓF³ffl++úytÓa¢ãUhgfƲµ}åì­¬,tJ€>¸Þœ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ^ù½ÃǯX±B&ƒCÖ%ðœœ~µ¶ÑÝ“3gÎÍì+yÊÍ͈ˆ˜4i ý½Ðýû÷'Mš”››«)¡øýÌÍ›7¿Å.^lË–-:%pÿp‚<œ O'ÈÀÉä~ÏþÉ“' ,())ÁR[PPfÚÜÜÜÛÛû¯ý+Çû=ujz¨]¹““Ó¨Q£bcc9Ž¡ ‚ضmÛ7 {Мþ¢†††ÔÔÔû÷ï›™™ >|É’%^^^¯µ/ؽûç§ÔÔT>ŸÏçó³²²ÜÝÝ·lÙ‚ñOŒ•Ÿ>}zýúõb±xÙ²e"‘ÁwTÍÍÍ—/_>|øpÏÚ …Ÿ|ò‰föÙ³g+V¬pppصkWJJŠ““S\\ÜÏ?ÿܳÊqy÷óÄápììììììÜÝÝ—/_ÞÐÐðâÅ ¼•s¹Ü÷ßÿïÿ»‹‹ËéÓ§ ­ÜÙÙ‰rttìY[jµº½½]3›““3bĈ5kÖx{{{{{¯\¹2 àøñã=«—žä)((¨°°pñâÅ3fÌ8~üxQQÑüùó?ú裃"„¾þúë;vkJ¥ÒÐÐÐÚÚZ„ÐÍ›7—.]:eÊ”ÈÈÈ¢¢"„A‹/ [±bÅ?þ¨}yòäIPPPiiéÂ… gΜùõ×_+ ÊBÍÊÚRöœÅb±ÙlkkkrV©T¦¥¥Íœ9sæÌ™iiiJ¥!tëÖ­Ï?ÿ<44töìÙäÇ£V«Ož<¹pá°°°/¾øâÁê¿÷Ê`0¦OŸ^VVf¨ò¿üå/¡Y³f‘+è7d|/t6¯¬¬œ={6ƒñò/>ÆÆÆÎ;W³meeeDDÄÝ»wE"ÑöíÛ?ùä“ðððýû÷Ëårʆ Û×ÒÃóSEEÅþýû—-[–™™yëÖ­¬¬¬ØØØ£G¶··Oœ8±´´T¥R!„JKK]\\x<žL&KJJš1cùÁìØ±C&“]¼xñÈ‘#ÑÑÑG]´hÑW_}¥ßЙ3g¾úê«mÛ¶}ÿý÷š|ú…'>>ž\ª=’ÉdR©T*•677gee…„„˜™™‘‹òòò„Bazzú¿þõ¯ÊÊÊììl‰D’˜˜èíí““›™™ÙÖÖÆçóO:µlÙ²£G.\¸0--ÍÐaqwwoll4Tù¾}ûBùùù!ʆŒsíÍ Eccã AƒÈEäš››»ººjÖÏÍÍýÛßþæííýïÿ»©©)---%%¥¼¼üĉFZ¡<àÝ×Ã>>ÑÑÑÅÅņ ­­­?úè#r©ö4B(:::,,,,,lΜ9EEEšE………«V­rttôôôŒ‰‰¹}û¶¹¹yVVV\\œ½½=ya‹ÅçÎÓîç²e˺sˆô+×^JÙP÷{{;A–––äl˜Í:Ë–-{ÿý÷ÙlöÕ«WW®\éâââéé¹dÉÍa¤DyÀ»¯‡ÏwVVV!6›­3b2™×®]óôô¬¨¨X»v-B¨ÿþ»wïÎËËËÎÎ2dHdd¤¿¿¿P(Ô~ÔòôôÔoÈÝÝœðððhjj2RhHNNŽ››B¨³³óàÁƒ;vìØ»w/¹è×_={¶fMkkk6›ÝÐаsçN©TêííM–755uÙORCCƒæ ¡_¹öš” i3þÐ`gggnnÞÐÐ@nK>ýuttLŸ>]³Ž‡‡B¨µµU­Vkzåææ¦sÄtz­c«ï¼/˜4iÒÖ­[ 4bÄ„Pgg§Z­NJJR*•W®\Ù¸qã™3g¸\n}}½æ÷Ñ£GúU544Ÿß/¿übooo¤°K¡¡¡.\ ‚¼í°µµÝ½{7™6‘HÔÒÒÒÙÙ™”””””4~üx…BA>Ø;;;wÙO„AçÎ7n9«_¹öÊ” ‘T*‹Åzþü¹‘}a0øÃ.\¸°zõjM¡Î;ò_ø{ï½Çd2…BáÀB\.×HC=;¶oäùnäÈ‘*•êðáÃä!Ä`0®]»&‹ ›Í¶°°˜6mÚþýûKKK[ZZnß¾‘‘¡_Ujjê“'O>|xàÀC…b±øâÅ‹äRíiÖÖÖ‰D*•’³™™™OŸ>ëÖ­;sæŒB¡P*•l6[.—ggg#„$ÉôéÓµûI>vÚÚÚZZZž?~çÎM›6 …BòŽ˜²rížP6dccƒ***’H$ä}’>M磣£‹ŠŠÒÓÓA]]ÝáÇ/\¸ ¹Jh°Ùì   ={ö…Ÿ~ú)++kòäÉF¢<àÝ÷FÎOL&300ðÒ¥Kd‰¹¹ù† ÒÓÓŸ={æêêºyófss󈈕JµwïÞ¶¶6ò&cëÖ­:UMžŸ¯P(öïßßÜÜìååµiÓ&òQ !ôÅ_ŽŽŽ#GŽÌÈÈÐ\×ô+×>ØØØè7TPP°téÒ}ûöåää¬X±âúõëÚwvv1bÄìÙ³¿ùæ„——מ={ÒÒÒÎ;ÇårÇŽ»gÏM´­Zµ*55uùòåfff~øaTT”¹¹¹¡†ôík¡ÿ„åÝô~ýõ×/¿ü²û›è¼¦|/Œ÷í9ÐÖƒc»eËíñOø¯wr¹\(þùÏÆ^90qøóôàÁƒ˜˜˜iÓ¦=ú÷ÔcmmýñÇw§`娾©ëè ÞÆõôe&7^å-Éd‡*// …óæÍc±X]nO]êsç'‰DóðáØ˜˜ŒŒŒ¨¨¨âââøøxµZM¹¾ö(›ùóç¿ÅÎö>}îütäȇ³k×.&“‰rww;vì’%K )_Yi±µµíæ—w}VŸ;?/Z´ˆ ÉÒÒrÞ¼yÅÅÅ”6´G‰hóЂ º|ùòâÅ‹§OŸ~òäI:öf}+Oä÷húã}y<ÞãÇÉiÚ£D´rãÆ½{÷ÆÄĤ§§wtt¼á29}+O†0 ÍýSwl(•JCƒ@f̘acc3uêT„öpÊ>¢oåÉÆÆÆÎή®®N§¼®®nÈ!ätwlB~{¯ÿ½lÑ·ò„š MySQL++ Reference Manual
mysqlpp::SizeThresholdInsertPolicy< AccessController > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionFailed__coll__graph.png0000644000372000001440000002072312502417165031701 0ustar robertousers‰PNG  IHDRÌÍ{bKGDÿÿÿ ½§“ IDATxœíi\GÇgspË! ¢‚(¢}ZñÖ¢±´¢âT¼ÐŠ'à-ÔB=ÐZ ^T@DªUJ«OŒ(-7"·$ ¹öy±~Òáβ!Ì÷Õììì~»óËÎd¯APžˆQ} É ¸MÁh2îPdø|~nn®D"!JMÏEKKkРA]S]]]VVÖõ8¸B"‘ ¤¡¡ÑÎòŸ˜ŒÃáÔÔÔá L•ill,--UˆÉªªªtuu» ?ª««MLL:i2 {{{…JR}ªªªÞ¼y£¨hºººJÞ÷îÝëPy8&ƒà4w É ¸MÁÜM–——‡ Þµt%”„ʰ³Š1YAAFSH(œU¨¯¯¿eËbõ(œ–š@vV1&“H$555 …² i4Ú¾}ûˆÕ£pZjeØÙΘ,))ÉÁÁACCÃÚÚúüùó'''@¿~ýb±8,,lðàÁ}úô7n\FF¶•ìy[6- LLLŒ„Bá7ÌÌÌØl6àÒ¥Kƒ®¯¯‰DAAAFFFK–,©­­mis,xbbâ!CŒ×­[רØ(«P¶öÚÚÚï¾ûŽF£™››ûûûóù|‚ .\°³³ëÛ·ï:wdq¥õ&ÀvðÏ?ÿ´°°8{ö¬tg›ïŠ¢‘‘‘C‡ÕÕÕýòË/oÞ¼‰KߊÊPYYÉ`0ÐVár¹êêê‘‘‘ååå§N¢P(\.777WêçŸ666Ž/++KNN655ÅVÕÖÖFEEaedÓû÷ïŸ={öÛ·o™Læ¨Q£¶nÝŠ¢è’%K¼½½+**LLL222P ³··g2™¯^½=z´¿¿K›cb\\\rrrÒÓÓmll‚ƒƒeʦ-Zäì윟ŸÏd2‡ Œ=`7gÎ6›¨©©iý˜´ç¸µ“¬¬¬¬¬¬ÖË´ÙXzúôé©©©™™™Òüæûeffvûöíêêê»wïÚØØ4±„\ FeeeûwªÃ&c±XT*õàÁƒl6["‘ÔÕÕ‰ÅbÙ=>K¿yóFšn¾9&†Édb™±±±666rM&Èd²´QãããmllP`ÇA rss[?&Ýl²6›@öÈæ7߯aÆ]¸pAùâÅ‹x˜¬ÃÝ¥ƒÁHOO777Ÿ4iÒƒH¤O‚”””8::JZXTTD§ÓAdÚ´i………}}ý•+W¾~ýzõêÕX±ââbéÍA;;;V6H ÛÚÚ¾{÷NnÕ•••b±xàÀØ¢´$v¦R©í9&ÝL›M€akkÛ<³É~åçç6LºvèСxî°Éx<žD"¹zõ*‹ÅZ¶l™»»;‹Å’-`eeõòåKéâëׯ[H£Ñ¤§ 6›žž()) Ÿ:uêæÍ›±b¦¦¦EEEX:33344´•ÍØ/““ƒÙ昘˜Éä‚‚l1??ßÌÌ KËm6%¡Í&Àû i²_–––² ”­pµ &CÄÅÅ%..ŽÃá*•ª¥¥…­âr¹__߀€€ÄÄÄŠŠŠÛ·oïÞ½[ûáÇèèèæéY³fmÛ¶­¸¸˜Édººº?~\"‘øøøøùù]ºt)%%%)) àååµcǬ7Y»vmqqqK›cùëׯÏËË{òäÉöíÛ/^,«P •J7oÞºuë ³²²vîܹhÑ¢Žî§Í&h?ßÿ}``à;wjjjRSSƒƒƒ•bà¢hllìÀÕÔÔlmmQ …ãÇ×ÑÑAQT$………ÙØØhkk3;µ ŸdÓgéÒ¥†††+W®¬¯¯?vìØˆ#Š¢ t:Åbñù|SSS==½ °Ùì–6Ç‚GGG[ZZÒh4???'«P¶v‹åååehhH§Ó7nÜÈãñP2ã0 |c2´­&héP7ß/±X|øðáêé鹺º&&&µY;îåGö°vÝo2E‘”””™™)]¼víöÇ«upøCT &“¹xñâçÏŸ744¤§§ïÚµkùòå ¯EÎC‹=]]ÝU«V­¢gØÐÐ0sæÌêêjkkk< šÌØØ822’h= …‚k-°»„à4w É ¸MÁ9å¹TŠ@ Ä::jÄÊèèuöÖáóùn‚ÆZ±º>YbÂ'&SWWG$''‡(5%))÷úõÜM›¾°·'ø¹Üö¿éÚfœêê꺺ºo‰‚š[¬T5«m\ª!¾ß@D]]½åÑžü}²ëן¯YsžL&íßï¹p¡ÑrCÄ—0v1> ddé_#ÈjÊ5 R.5ÅÁ¡?@,–øûÇþðC¢DÒƒ0¦á½ð†Ï¿Åi€¾¥º²9 ôt“ @ÓÒúxÞŽŠJ›??‚Ãá+©›©~]77›ÏGÅ(‰‚˜8è­H=Ûd‚ þñY1‰D’žž?mÚ¡ÂÂjbUuy·Y7|r\±D„ hvZD‹’CÏ6`Ô(+*õãÿ)‘HR^^ëêz8==ŸXU¸ƒ‚g'Ë;‹Pˆ?$bš ú‹Åÿý™‰Ä sçF\½ú„@U¸"j”¤l+|]P€‚ÿ†¡é;H“@a-¡&3o2Þ‹%b±xÆK¡¡7Uï¯%J^‘SĨE›]¦Ð·T'«)ã›ñ=ÞdVVÿý¥`cFD¤®\y–Ç" Øü„ÅÙïÿå¡¢¦?1vÐ&DU›ôx“!boO—»J"Aÿyüxj7K»þõ•BI3‡PÐl•q@TÀd€Q£¬ÔÔšÞ#“I‚xzþoéÒñ„¨ÂƒIA–Ö€@³^¡Jk2UxhÑÑÑB$K±×m†7?p`î°af„É“Ús® ÍMfý}¨DP/AÅŸŒú ‡(㨨†ÉdÇþd2YS“¢¡A½pa¥’ŽQº}Ý• ”ñ?ˆÒÇKÊy­CIeuKKš¦&•DB°þ‘ÁÔР††Þ$Z^¸â'áeVÎzî§XkAÄh˜òþ¢TÁd$2z´µ­­iRÒúŸžofÖwÇ÷Ë—3^¼xK´4\xqªB"B?_kjâ íqÑvÜVsª6™þ™2ÞPÂèÙOa´‚§çq.·19y#‰¤Œ—Ž:Mm!?n~¶ÓFsûù=fºU8“É%$dö›7eªwÝÿÑk¡s•ú»–MPY“ ÒÏËklhh’*=—Q”Z[ú¤nì–þH:=«¬É®( úƒh! O#ˬ&ë÷sTÞá—\TvL†qñbúÖ­WÿøÃßÎNþ]žÅ‡âF²:¢Óàw:ŠŠ›L"AÝÝÑÖV¿re ÑZz/ªÜ]H$ä§ŸæÑBÚ•€‡ûKÌt­§à¿;ç\ë]&£Óõ×®uþå—»ˆÖÒÿÞxÏÊå9m2o’?f̘ÇX,‰Dò÷÷ˆÅbƒääd¬Ì;wlll öîÝ‹åܼysäÈ‘ZZZt:›4NvÂ/ÜéØ'¹{>±cC׬ùh!­Á«þ6åå߇Jš¯Ú³gÏŒ3PMLLÔÕÕ5jŠ¢OŸ>ÕÐШ¯¯GQðõ×_s8œ¸¸8Àû÷ï9ŽšššÏ»wïbbbUUUÝù!ú^g2Eÿøã¾áÑ£<¢…´ÈÃýoc\˜‚zQóUOŸ>ÕÑÑ›6mÚ¾};•Je³ÙaaannnXÀ½{÷P‹Å€ÜÜÜÆÆÆììl.—+‹ïß¿ev§ÉzWw‰áâ2ÌÙÙnÇŽ8‘ßïxuORĨýl5ª%çsv#GŽÔÖÖ~òäIZZÚ7ß|3räÈ´´4ƒ1cÆ il.)é4Jjjj999®®®Ÿ}öÙÙ³g»e'>¥{¼¬lV[ZúŸ9óÑBäÓÈIÄ-®]ºti`` ®®®@ غuëÚµkuttŠŠŠ°µ ÙÜ6 êêꉉ‰‰„Çãx&묬h+VLÚ¿ÿ÷šE~‰SQ¨i“‘–[ÆÍÍíĉ£G¦R©ÎÎÎgÏžµ´´´´´l©|cc£@ PSSãñxAAAé—û!Ò–è¥&lØ0MS“ºÿïD é0Ó¦Mãóù“&MŒ;V Èö•ÍÑ××?tèТE‹lmm­¬¬,Xàêêjee5~üx:½;³ë-·•ä’ðÜÏ/&)iÃÈ‘DkQezµÉ³g‡ â7Öá2Ï#Л»KŒÐÐÙ/_¾½ví)ÑBˆiEÅïí&³µ¥{y IâpøʨzU_WFØ3•-ý+TTüÞn2@`àt‰ýåÂ^j PÆ®¢ÇGK‰€7Ðd@OOkË·èè´ììrB¼@$ 4,\è4|¸yPÐõ®LðòL¥ãwý´MzØ‹níš H$dχsÿÙÍU?>RªÝ:—‡Æ”h²|ö™Õœ9ÿÛ½;¡;_j*{ZW½ÁœDUå (Ðdÿ±s§;—ˈè¦oÌJDè£ý%ãõ,'êuODMöFF}6nüêøñÔ·o»ã‘Q^DEF«îx_Jo¿âßì¥&KKÚéÓ>DkQà™ì(Ò?̼}ûUjj6ÑZTx&“Ãòåg²³ËŒÀæ_n‡tx&“Þ=••Nz@´šL¦¦ú«Wyøð••ÊþRSšL>k×:÷í«£ÂßiïN É䣮N þ6.î™b§Î̺TU‘©Œ|ã 4Y‹¸ºŸ2Åv÷îÙù4»BÍ¿¼ôŸK9% ‰Öƒ€&kôÈÉ©¼p!]±Pðp‰‘½Ö௠­GMÖ-_>qß¾d«¾‹¡òn³ª^qÇméß|‚7•š¬ 6lpQW§†…ÝêJWœq¸t°»¡rÎŽ7Ðdm ££¾sç×çÏ?ÊÌìüLM/NUˆ’ÏתþmJ¹@“µÍ¬YŸ}ñ…õîÝ×;ww¤¶ˆŸu±jÔ ºfß^zÿš¬mÙ³ÇãÅ‹âøøgØœ¢Aò­¡ýÜ3ß–Â÷.ÛËÖ­WoÝzõàÁv]] ¢µô0à™¬½lÝ:C,–=z—h!=h²ö¢¯¯èu?/¯Šh-= Ø]v€úvâé–TÉÁÊÊŠè]ï Tª1…¢ú—ìØÖ„ý©.**Ú¸qã˜1cˆi‰Ÿþ¹¨¨H‰¼rãäääééI ˆ\®^½ªØ€pàÁh2î@“Apš ‚;½×dyyy ü˜ ®_*lÅîNôÒçðàÑ£G 膊 ¾øâ‹÷ïßôõõ·lÙÒ •vh2…addÔ=óaÉNðF£Ñ° ¹”¥î.9}ú´‘‘Ѿ}ûΟ??`À==½]»vÖ­[·lÙÇÛ;\.WKKëÅ‹€¤¤$ kkëóçÏ$Ixx¸]Ÿ>}ÆŒÃ`0d»¬ÇILL2dˆ±±ñºuëåf‚O»§ötU7nÜ033c³Ù€K—. <¸¾¾^$YXX-Y²¤¶¶+, LLLŒ„B¡\²¼Éj¨­­ýî»ïh4š¹¹¹¿¿?ŸÏÇŽá… ìììúöí{àÀµLQà݃ˆm³Ì‚ 8Ntt4`îܹçäÉ“€÷ïßß¿ßÐÐP(¢(coo/‘H¸\®ººzdddyyù©S§( —Ë=yò¤±±q|||YYYrr²¹¹9@:ï –pqqÉÉÉIOO·±± –›‰¢hmmmTT&O6 ÈÌ̬ûlÕ’%K¼½½+**LLL222P ³··g2™¯^½=z´¿¿?Vrÿþý³gÏ~ûö-“É5jÔÖ­[[цm"›^´h‘³³s~~>“É6l&0gÎ6›¨©©i³i<=====Ûß”m¢ì&{þü9Š¢ I:77W$õë×ïÏ?ÿDQÔÍÍmß¾}(вX,*•zðàA6›-‘HêêêÄb±½½ýÙ³g¥aÏ;×ÜdL&[kcc#7³u©-ý€Ùl¶¹¹¹ƒƒÖê(Š2$>>K¿yóFš¶µµ-//ÇÒwïÞuttlE–#M 2™œ••…åÇÇÇc‚ Cö¸µ~ÌQL¦ÔÝ% OŸ>*•Ú$ “ɳfÍŠÿþ}JJÊ¢E‹ #==ÝÜÜ|Ò¤I< ‘HŽŽŽÒ˜Í+4h–°µµ}÷î]+™-Ѽý°|}}ý•+W¾~ýzõêÕXNqq±4²‡‡–.**¢ÓéØ?ÓiÓ¦¶_Fee¥X,8p ¶hcc#-‰M'=nݲ›¬u<==®\¹2~üx¬äñx‰äêÕ«,kÙ²eîîî,ËÌÌìåË—Ò­^¿~Ý<vJäää`­ÒRfG))) Ÿ:uêæÍ›±SSSéèÌÌÌÐÐP,M£Ñ¤Ne³Ùéééí—abbB&“ °Åüü|3³ï­Hç$$Šžm² &ˆD¢={öxyya9‚¸¸¸ÄÅÅq8@@¥Rµ´´|||+**nß¾½uëÖæ¡Ö¯_Ÿ——÷äÉ“íÛ·/^¼¸¥Ì>`Ä&i@uuuŧ$‰ŸŸß¥K—RRR’’’^^^;vìÈÊÊÊÊÊZ»vmqq1aÖ¬YÛ¶m+..f2™®®®ÇoE[“ Þ¨Tê¼yóÖ­[WXX˜••µsçNìÔ®(°ëí }c²&S76Oûúújjjr8éV±±±TSS³µµMLLDQT ìÙ³gÀ€:::cÆŒ¹xñ"h6&‹ŽŽ¶´´¤Ñh~~~<On&úé@[6ÝÒ±=vìØˆ#Š¢ t:Åbñù|SSS==½ °Ùl,‡ÃYºt©¡¡áÊ•+ëëëåÊ …ãÇ×ÑÑi¢ÅbyyyÒéô7b‚[:n­Ð»þíaûöí .ìÐ&Mæ•;½hwÎ9Ú „ÈP¸ÉzðÅX>Ÿ_VVvúôéK—.­Ò=xL–‘‘ñ¿ÿýÏÇÇgòäÉ]‰£««»jÕªödv?J"£‹ö" ‚ ±±±sçÎ%¤vH+`råÊEìÁg2HOš ‚;ÐdÜ&ƒà‘ÿáÇ›˜¨Â|(Šðùššš D Q ¯^½š8q¢þ„]'Û´iSII Qµ+–²2ÂB½Ï?¯PS­ELœ8Q±ÿúá·0€³sXvvÙÎîkÖ|I´eŽÉºJQÑûìì2ÀµkùD^oš¬«ÄÅ=¥RI€þ)û÷ß ¢å(#Ðd]åòåÇB¡@¡oÜxA´eš¬K0™%¥¥l,-‰¯\yǸÍ&ëׯ?§RÉÒÅÒRvf¦ŠüeV ÐdG,–\½úT(üï²…B¾~ý9’”h²ÎóøqaMÍ'Ï@‹D⸸'ŠšðKe€&ë-ŠŠºò¤·t­ƒCKKÕÿÜ;éÁ¯Ä‹“Ó@iEATÔ}wwÇVÊ÷f`w Áh2î@“Apš ‚;ÐdÜ&ƒà4w É ¸MÁh2î@“Apš ‚;ÐdÜ&ƒà4w É ¸MÁh2î@“Apš ‚;ÐdÜ&ƒà4w É ¸MÁh2î@“Apš ‚;ÐdÜ&ƒà4w É ¸MÁh2î@“Ap§“&~ûöí÷ßÏçó.¨'RW§[Zjnkû†h!Ê‚ÝÑ£G¥‹4Ù•+WæÍ›7yòd…邨 UUUoÞ¼‘õU—¾~ÔeIUãÞ½{?üðƒl“Apš ‚;ÐdÜ&ƒàN6Yiié”)S°¦¦&$$dþüùÓ§O÷õõ}ðàƒw”ÎíÝy´¿CuNœ[é#gùòåcÇŽ ÒÒÒÊÈÈøñÇCCC?ÿüónÓP^^îë뛘˜ÐÑÑY°`A'‚„‡‡Óéô6‹u:~'€&ûÈ™3gFŽ€-ZZZ²X¬ØØØî4™D"áp8XZOOoåÊ•¢¯¯ß·oß6‹u:~'À·»œ2eÊ­[·¼½½gΜyñâÅ;wî,X°`ÆŒ§OŸ;vìÀXIçêêš›› xôèѲeË\\\.\xçΊ¢ ÞÞÞnnnßÿý‹/dOÚØ9üáÇ^^^ÇŽ …r3Á§'|ÙtZZÚìÙ³eÅ{{{bi.—»oß¾o¿ýÖÓÓ3""B `{—’’âííýÍ7ß\¾|YºËÍ3E"Qdd¤‡‡‡‡‡Gdd¤H$‹ÅgΜ™7oÞÌ™3÷îÝËårk֬̚5«‰¶ö×Þÿý÷Š+\]]gÏž}ñâEÐBÇ×\§D"¹|ù²———››ÛÚµk³³;3'îg²gÏžEDDÜ»w/,,lòäɧNJMM=tèМ9s&Mš´k×.±XL&“>|H§Ómllø|~pp°ŸŸß¸qã22280qâÄ”””ß~ûmÓ¦MC‡ÍËËÛ»woóŠ®_¿¾wïÞºººÐÐP]]Ý©S§6ÏôööÖ××÷÷÷Ç6‘¦¹\.‹Å²°° ¨©©©©©‰¥9Âb±"##y<^HHˆ–––··7௿þ:~üøýû÷<8cÆŒ>}úÈͼvíZyyùÉ“'1»œ9sFWW7--mïÞ½‚„……ÅÄÄøúúž8qbñâÅñññMv­Cµóù|'ÝVMM­±±q÷îÝÓ¦MÛ»wofffhh¨›››ÜÆj®S__?66VzäÃÂÂ:áÜþóæÍÓÒÒrqq,\¸PKKËÕÕPWW7lØ0 …Âd2)))...‚…BEy<žššš««kRR’ººz\\œ¯¯ï„  G½|ùòæ­^½ÚÜÜÜÎÎnùòåwïÞm)S[[{ÆŒØZi»‚ ˆÜ]‰D©©©~~~t:ÝÚÚzéÒ¥Òø3gÎÔÑÑùꫯҞ®yæ­[·Ö¯_olllmm½jÕªÇ'''ûøøX[[0`Ë–-ööö-ÀŽÖ¾|ùr7?~¬¦¦vêÔ©uëÖêëëåÖÕ\ç7d|çzXÜÏdZZZ …Ò$ ‘H&LHKK³¶¶~öìÙæÍ›}úô9|øðµk×Μ93xðà… Ž=º¼¼ÜÆÆFÓÚÚºyEæææX¢ººº•ÌæôéÓÇÀÀ ¸¸X¶±ÿùçŸ_~ùåÈ‘#G"‘˜ššbùfffÒP4MvZʬ¨¨í‹µµµ…B¡T›¥¥¥¥¥eKÚØlv‡j‰‰133käÝ»wäñxƒ j©"¹:E"Q›G¾M¾„1yòäÜ»woøðáFFF€ÆÆF‰Dœ””äææ¶}ûöºº:–ŸŸ/ݪ¨¨¨y¨wïÞa‰’’CCÃV2å2nÜ¸ØØXÙÛºwïÞ‰Dêêê$©¼¼Ë/++ÃZ´pòkž©§§Ã`0 FRRÒ‰' +**°µyyy111- ëhíÍill ž?þ¯¿þºaÆVJ6×Ù¯_¿6|›l2±X|îÜ9¬? ––V__/ )ŠººúôéÓ#"">|Èb±?~ü믿6^ZZúÏ?ÿDGGO›6­¥Ìúúúäädl­lzÙ²e/_¾üé§Ÿ^¿~]PPpîܹøøx¬_¦P(S¦L9zôhyyyaaá©S§°_û™0aBTTTeeeAAA``àõë×]\\¢££ 9RYY)-,;¢RHíB¡P$Q(@pæÌ@CCC;u~óÍ7²GûÇÖQ¾„A"‘&NœøÇLœ8ËQSSÛ¶mÛÉ“'«ªªLMMƒ‚‚ÔÔÔæÍ›'‹Än|IDAT?^[[‹ BBBš„š:uêæÍ›ù|¾³³ó¢E‹°>¥I& ¶¶&7Iëëëÿúë¯AAA<ÏÂÂ"44ÔÉÉ ¾~ýúððp___*•úå—_b¡ÚϲeËÂÃÃW¬X ÈĉW­ZE"‘ø|~@@ŸÏwrrZµj _¿~ÇŸ={öï¿ÿ.»yk×ÑÑY½zuHHˆ¦¦æÂ… ÃÃÃÛ£“J¥ …ˆˆˆšššîÚµ û Ü!ºô<ƒÁèĶMˆŽŽ®¨¨Ø¹sgû7)--]¼x±´ö&‹­dBºìQY_Ù] ‚òòò[·n}ýõ×Ê€à ‘&ËÎÎ^µjÕôéÓ»G[[ÛÝݽ=™B ¾»„¨ÊÕ]Bz ÐdÜ&ƒà4wºt1öæÍ›ŠÒQþý÷ߦYh§øë¯¿Èd2»éôïß_Ö-¼„´8&ƒà4w É ¸MÁÿŠ1‘ÅùæoIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/beemutex_8h.html0000755000372000001440000001024412502417162023263 0ustar robertousers MySQL++ Reference Manual
beemutex.h File Reference

MUTually EXclusive lock class. More...

#include "exceptions.h"

Go to the source code of this file.

Classes

class  mysqlpp::BeecryptMutex
 Wrapper around platform-specific mutexes. More...
 
class  mysqlpp::ScopedLock
 Wrapper around BeecryptMutex to add scope-bound locking and unlocking. More...
 

Detailed Description

MUTually EXclusive lock class.

Author
Bob Deblier bob.d.nosp@m.ebli.nosp@m.er@te.nosp@m.lene.nosp@m.t.be

Modified by Warren Young of Educational Technology Resources, Inc. from version in Beecrypt 4.1.2:

  • minor style changes to make it fit within MySQL++
  • changed init() to a ctor and destroy() to a dtor
  • class just becomes a no-op if no supported mutex type is available
  • throwing MutexFailed instead of char*
  • moved all method implementations from inline in the .h file to a .cpp file so we don't have to make the header depend on config.h on autoconf-using systems
  • made private mutex member a void* so we don't have to define the full type in the .h file, due to previous item
  • added more Doxygen comments, and changed some existing comments
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_rela.html0000755000372000001440000000406512502417165024070 0ustar robertousers MySQL++ Reference Manual
 
mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemembers.html0000755000372000001440000000370612502417164024364 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented namespace members with links to the namespaces they belong to:
mysql++-3.2.2+pristine.orig/doc/html/refman/namespacemysqlpp_1_1examples.html0000755000372000001440000000651112502417164026633 0ustar robertousers MySQL++ Reference Manual
mysqlpp::examples Namespace Reference

Stuff related to MySQL++ examples specifically. More...

Classes

class  CommandLine
 Command line parsing mechanism for ../examples/*.cpp. More...
 

Variables

const char * db_name = "mysql_cpp_data"
 Name of examples' DB.
 

Detailed Description

Stuff related to MySQL++ examples specifically.

mysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1equal__list__b-members.html0000755000372000001440000001007312502417164030774 0ustar robertousers MySQL++ Reference Manual
mysqlpp::equal_list_b< Seq1, Seq2, Manip > Member List
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1Comparable__inherit__graph.png0000644000372000001440000004177212502417165031262 0ustar robertousers‰PNG  IHDR•µ“ïbKGDÿÿÿ ½§“ IDATxœíÝyXW×ð“a$aGÁ‚‚µ‚ îÖåÕ¾Š@qAëò¶B­¢â† *TЪ¸£¨ ®(V«¥VD-T[ XQÀ@€°'!óý1m¾”„ ‚ç÷ôé3LîÜ9Cb³œ{)AB!„” UÑ „B¨Õ0#„BÊó7B!¤|TB¨ oß¾­è(PÛÙÙÙ;VÑQ eEÁç×RRÞÞÞqqqŠŽµªª*ÇStHYáõs„”USS“‡‡”S||<ŸÏWô‡)1Ìß!„òÁüB)Ìß!„òÁüB)Ìß¡¶ËÏϧP(rìðÝ»wsæÌ±²²ÒÖÖ:tè•+WäØy{HB²Ãüê*ÊËËœœ´´´âãã=zôå—_z{{ÿôÓOŠŽëã²fÍ ê’Ö¬Y#úNáø-¡®"88xìØ±QQQäýúõ+)) ÿüóÏØG¥°°ÐÅÅå»ï¾St è_öìÙSXXø¯UŠ®Dµ‘‡‡‡,õßpâÄ {{{:¾k×®3gÎXYYõìÙsãÆA¬X±ÂÏÏlY]]­©©ùäÉ‚ ®]»6pà@uuukkë3gÎÑÔÔtàÀ{{{mmm—””ÈËË#¿FÈ…«W¯öíÛ—Á`¬X±¢¡¡AâJacr§¢ËÆÆÆééé¢ÁWWW¿~ýš\®¨¨˜?¾™™ÙªU«êëë?xt-pýúõÁƒkjjïÚµKØ299ÙÂÂâÞ½{-5ˆµ±±¡ÓéË–-«­­ žËå®^½ÚÐÐÁ`¬^½šËåJ_âãã»æ7°ŒŸ+ÔÉÄß—®øéAÉBöüíííÍápÈóZOOO‡sôèQ(++KKK300àñxAÄÆÆöïß_ ÔÔÔ¨««9r¤¸¸øÄ‰ªªª555G544¼|ùò»wïnܸann.ž¿'Mš”›››‘‘akk»eˉ+ ‚¨¬¬<~ü8žp¹¢¢ØlvKâãã3~üøW¯^åää 0€ìJúÑI €ÃáÐh4??¿¢¢¢ØØXxÿþ=ÙrÊ”))))ÅÅÅ-57nœ°«uëÖ‰æï°°0ww÷¿þú+''ÇÙÙyݺuÒßÌߨU0#Ô}Èž¿ÉSj.—Ûl9//Ïçß½{— ˆ©S§†††Áf³ÕÔÔÂÃÃ+**AuuuSSSÿþýO:%ìöôéÓâù;''‡|5>>ÞÖÖVâÊ–âd³ÙPQQ!ñU.—«¢¢òìÙ3òÇË—/“]I?:‰466þùçŸ555MMMiiiâ-?Ø€ìÊÚÚZ4ÛÛÛ“ËwîÜvW®\IHH9r$yU¼¾¾^ \¸pÍf/Z´húôél6ÛÌÌ,;;[¸ÕóçÏÅ»"ÏG 77×ÔÔTÊJ‰f̘AˆLªËãñ´´´ŒŒŒTTT˜L&¹þÕ«Wfff2`³êëë===Ÿv£FâóùÛ¶móõõ%×P(”I“&]ºt‰Ãáp¹\555---??¿ÀÀÀÄÄÄ’’’[·n­[·N¼«€€€üüüÌÌÌõë×Ï;·¥•UUU‡ÌE—wìØ‘––æë뛞žž““³uëÖýû÷ïØ±ÔÔÔ¼¼¼üýý ž={¶qãFòR,šÐØØÈåri4Z}}}pp0TWW‹¶—Ò`ÕªU®,X ºÕ¬Y³‚‚‚^¿~““3yòäƒÊ'ßÂzÑ,++«yóæ±X¬öt'±¾ëâÅ‹r ûÃp!$²ßÿž¶´¼lÙ2MMM‡#Ü*>>¾OŸ>4ÍÞÞ>11‘ .—»mÛ6kkkmmmWW×sçÎØý﨨(KKK:¾bÅŠúúz‰+‰–Ÿ?'¢°°pöìÙ¦¦¦:::Ÿ}öÙµkׄ/±Ùl___“•+W Ÿ?—rt-°gÏž^½zYXX:tÈÛÛÛÐаY-5ˆ‹‹³²²244\µjUcc£èVgáÂ…úúúK–,©­­•þ¾Èrÿ;?¿4<üæ°aÛ׬‰—ÞRŽºÂýïfoG;@zzzqqqQQQJJÊ_|annÞÒ“A¼zõÊÀÀ@J‡uuuÅÅÅÅÅÅéééPüwïÞ­]»V^a7#þ¾àüß)+OOOHHHhW6l(,,<{ö¬ì›äççÛÙÙ ¿@šý(eegRxR$$$xyyIŒ­¸¸21ñ·„„G/^«ªRù|›[߸¸å˜?Wm&ß7ŽB¡äååÙÚÚ’?1f̘1cÆlݺµ{ï̘øû‚×Ïú¨5440™Ì“'O~õÕWŠŽåcWZÊ9xðîÈ‘»† ÙºsgÒ‹ÅÀç —d åäÉ“ #444&&ÆÚÚZWWwÓ¦Màïï¿hÑ"²eMM––ÖÓ§Oàúõëƒ ÒÐа±±‰‰‰@éàà ££ãêêššš*z š¼ž˜˜øÉ'Ÿúûû766J\ ÿ¾ê.å <…BY¶lÙ7È“’’ÈQÿLLLBCCÀÅÅŒÉ</00ÐÈÈÈÐÐ000Çãµô;Ý©ôßO«ºm æo„>j>üôÓOýüüƌӞ~zöì¹téRYVv&… 6»6*ê—iÓö:;o ý± à=ðùMŠŽëÃ’““=z””””““³{÷îòòòÙ³g'&&òù|HLL´±±Do7ZZZº¹¹EDD0Œ6wçíí-¾þÂ… 䃸m(+‹}ø0ÿÂ…ÇW®dÕ×sUT¨-Ýí>ܶ“Ÿ_k?Ÿ~ýú‰+ÀårÏŸ??}úô÷ïß“ã 8::’[µ4®yªÝl\ñ•² âðáÃÓ¦Mƒjý¦OŸÞØØ-ÞžN§§¦¦’§ï•••ÂëêíÔþnñþ7BHn„U:ÑÑÑÇÙÙ¹²²²¥ÆL&“N§Kéí‹/¾X¥3bĈµk×Ê?z >ûÌf÷nÏçÏwœ:µxÆ 'M•J¥¨¨t‡oæ®3®°X¬’’’·oߦ¥¥Íœ9³  €œ`MJ­MM ¹ÐA•ýr趃*ÕB­+Ô銑òk‚ ››ÛæÍ›[j/{¯|«»‰õßUUõ æÌ9jn¾ÒÌl¥™ÙJ“oML¾õò:Ôiu¿qDSž………Oii©0$ñZ7räHmmm²”ÊþfŸÌf;•þûií€8 B݇ó÷û÷ïÅ¿nšåo‚ Î;7dÈrY|FN022"H™Sú·¤”ùC¥wÛÒtéã·¼yÃŽŒLvsÛebò­‰ÉÊ.˜¿e±~ýú9sæ´j)ïµô•ÝÎ_‚j—ÌÌÌ ôïß¿ªªêƒ»~•Nvv¶µµõš5kºÚt#ææú_=>-m]jêÚ€€ ³gUtD­ƒã tÌß¡khhˆ‰‰6lØÒ¥K‡Îd2Eý uuõìììýû÷›˜˜XXX€xúŽŽŽŒŒ´°°8p`XXØ­[·dì<00PGG‡¬^·nŽŽÎÂ… €œP\z·&Lxúô©–––››ÛŒ3nß¾-t­ñR>ùÄxíÚ©³gªè@Z§{+ÐEàóç¡ ç2eʆ*û JQ¥cjjºeË– 6\½zuûöí+V¬HNN&ÿÈ@m6zôhrB÷ÖNëN244û¬¬¬¬¥ëëëɧ¨ †^\\L®'bß¾}Âiº,Ž.ªªÒ?@ÃãñDo–w&)ó‡*Ž«ß5áøçH¹1 r¸333rß½{÷¶4‰¯@ +ˆZ¢©©IÞé$/á § €®Ÿ¼‹J¥R©Ýáꢒw÷Ë/¿Lœ8QÑQ ùý÷ßÝÜþ5‡ æoÔ±X¬=zhiiIiCNâAæï¤¤¤M›6½|ùRWW7 `ݺuÂI|É c·~ýú3gÎ1þü;w¶ôÝÝl¡'NìÞ½»¬¬lÕªUfff›7of³ÙþþþÛ·oÿ`·²B]Ї‡‡¢C@¸¹¹5š¾“FŽAH6=š?>ƒÁx÷î]³—@lx¯ÌÌL===‚ 8Fóóó+**Š€÷ïß7¤),,ÌÝÝý¯¿þÊÉÉqvv^·nð%éÃ{y{{s8r,eOOO‡CN¦TVV&½[‚ îܹchhÈd2åó ÑÕÆOE­"}ü5„>¨;\CÝ‚B­‚×Ï‘âáð ­Ày šÆ Öê©‚BÝ ž#ÅÃáA¤áUCÉ]x?ÿ.Ñ!ÉÞ^—Kä!¥†ù)"YA üèõ!e"Æ‚wÀÔl°ô–Kä!¥†×ÏQWAíååu÷î]KKËfm†N.XXX¸¹¹‰Ò£G   rx·oߒù<$$$ ÀÉɉJ¥º»»Ëqx)Ý^¹r%<<|ÅŠñññ4­u]k0Àü ¼è®@ë%± “ÉÃüRjxþº5~-\1^5¨jA¯!@wý»ÄKÃXÑ‘!„P»`þFÝÁŠ EÂK1 ëzŽ@•4B)'ÌßHiU=v°îëWàäÂç¡—³¢cB¡N‚÷¿‘²ys Þ\²PÃжº+Ø--3EG†Bó7R6ì'PW½=îtÐ0Rt@!¤xýu1TfCÙжÓiŠŽ!„º(<ÿF]@C ”e@Ù({å¡©TµÁþ[Ìß!Ô<ÿFŠV’ )¢ zýÁà30Ã@×(*ŠŽ !„º.Ìߨ³p+%Ϫɯöèå ª=:=&„RV˜¿Q‡á×AY:°~v”g¿<*‚·lBHðËu€ìõðþ`?¦zÐ4º 8}˜äñUBµæoÔJ¡×§Ð÷ ‡½ BuCxýüãï  PÛ¸9!ΟP–eé`·z}*×àBÉÏ¿?&¼Ø ¿ƒó^°[ÖŠ ¹•PöÊBÙ({¼* Ò —3p«:,VôakÖ¬Ù½{·¢£@mgmmÍd2RV˜¿?e鱪ó€@ijëò÷Ëà÷m ëŒ‘`彆@O{¬ïR¸ÂÂB—ï¾ûNÑ ¶xðàÁÞ½{Rb˜¿? ï!óðæPU€hxŸ&¡·ËAÇVÂK¶K¡Ï"вèØ8QëYXXxxx(: Ôxïµæïn@îÈÙM\AÓßëJ¡®ÔéÀ~ü÷ü]ì,¨/£±0>EB?š&3B!`þî¾*ŸÁÃEPž þg>~žµ…ÀãUz9ƒå—@wº«âD!Ôz˜¿»#~ do€Üƒ@¡HJÞT54ÂÀ-@w^Î@UïôBµ æïnçÝMxôÔ—Ñ$1w¸ ÚìWvj`!„äç_ùû¯¿þúúë¯ j§./fØÉ2Ê•5ãóñ|AëªÀ544<Ø»w—’%..ÎÛÛ[|ý… <<<ð¡!ùÊÏÏ·³³“ãoõÝ»w«W¯NOO/++sppX¿~ýÌ™3åÕy{H ¼¼ÜÉÉiúôéñññ:::7oÞôööNLLüüóÏ’ !!áÅ‹®®øÜLÛ=xð !!Aù›ÜîÂp8„º€­Á/Öh*Õh*Qç—h6k6½Uo*£|²å· ÆkMmUç?ÿü³¼ã•?MMMMMM¨©©cccáK¡¡¡ É 88xìØ±QQQäýúõ+)) ÇüÝe¹ºº&$$(: %æééÙæmÛ:ˆ&êê(Tƒ*Ú€RÍñ¯µ}rõVe„gžO3¹“ntñ ýà3ým, 7E),«®®N––ùùù”.AP(”“'O:880ŒÐÐИ˜kkk]]ÝM›6‘ x<^`` ‘‘‘¡¡a`` ÇkÛN»éëïï¿hÑ"²eMM––ÖÓ§Oàúõëƒ ÒÐа±±‰‰‰@éàà ££ãêêšššJ¹¤Cþz?ùäCCCÿÆÆF‰+áßï…èò¥K—Dƒ>qâ¹\YY¹`Á:nnn¾zõjòNŸô£k)€¤¤$'''---ò¯:²åÝ»w{÷îý믿Š7 ={¶OŸ> cùòåÍ>Ò?3ÉæïWÅ€CëW¦9ŠOÕVt,í’™™¹`Á‚þýûWUµe×äääG…††%%%åääìÞ½;$$¤¼¼öîÝ[PPðøñã»w捻¤lÞ¼YtÛììlkkë5kÖÈç`:˜”ƒ={vbb"ŸÏ€ÄÄD›Áƒ×ÖÖzxx|ýõ×………7nôóó«­­ŠŠÚ¾}ûÎ;sss7mÚ4oÞ<ñ:t())éúõë7oÞ¦=ñ• ãøñãä«ÂåÊÊÊ’’{{{ѵµµ…÷k¾ù曢¢¢Gݼyó§Ÿ~ ûàÑI  ººÚÝÝÝÙÙ9///<<<((ˆÅb‘-#""NŸ>mkkÛRƒ“'OÞºu+)))99yûöí¢¡JÿÌ $w˜¿‘’ihhˆ‰‰6lØÒ¥K‡Îd2MLÚ2¼L`` ŽŽ™„Ö­[§££³páB¨¨¨€èèèÈÈH ‹†……ݺuKtÛ &<}úTKKËÍÍmÆŒ·oßò8¸Ž"å`GŒ¡¦¦öË/¿À¹sç|}}) —Ë555 .¬¨¨ÐÔÔÜ¿ÿ÷ß?sæL“©S§îرC|GááávvvÆ Û±cGlllK+uuu/^L¾*\&Ÿ=§ÅãñâââöíÛgcc3pàÀmÛ¶ û—þVŠ ®®ž½ÿ~ þ 6vìØ^½zµÔà‡~v/¡ôÏ Br‡ù)“äädKKË»wï8p ++kÉ’%ÚÚm¼Š ££jjjÍ–I………&&& …B¡Lœ8Qü<ÛÔÔtË–-L&Ó××wûöíoÞ¼iãQu<)«¢¢2k֬˗/—••%''ûøø€¾¾~jjjFF†¹¹ùèÑ£ïÝ»G¥R™LæàÁƒ…}4H|Gvvv䂽½}QQ‘”•âôõõŒŒþøãÑ•™™™C‡­««+--mjjêÓ§¹ÞÖÖVØ•ô·R<–››;yòä!C†œ:uJ´%yö/¥hWÂG#IüÌ $_].¿}ûvìØ±rì°¼¼<$$äË/¿œ2eʲeËîÝ»'ÇÎÛCâ‘¶ÿðSRRÆJ’ŸŸßžn»ƒÑ¯_¿ôôôû÷ïWVVvÜŽètz^^AATTTdddHlVZZúüùó¢¢"gggò¡9eäááqåÊ•„„„‘#Gš››@}}½@ ¸pá›Í^´hÑôéÓÙl¶™™Yvv¶p«çÏŸ‹w•——G.äææšššJY)ÑŒ3"""D˱bccy<ž–––‘‘‘ŠŠŠp¶®W¯^™™™Éx€Í¨¯¯÷ôô |òäÉ¡C‡D[’‰_JÑ®,--E_’ñ3ƒäKôù‰vŠ‹‹£HrñâEyíB¾º\þ–/‡³xñbuuõààà#GŽŒ7nûöí™™™ŠŽ«1âÒ¥K—.]ŠŒŒ€Kÿ°²²ê¤ê‹áå>Èé›ŽŽŽ©©©—/_~ùòeß¾}/^œ••Õ;š5kVPPÐëׯsrr&Ož|ðàAÑWÁíÛ·gΜéââBÄýû÷ÏŸ?O§Ó;"’N0jÔ(>Ÿ¿mÛ6___r …B™4iÒ¥K—8—ËUSSÓÒÒòóó LLL,))¹uëÖºuëÄ» ÈÏÏÏÌÌ\¿~ýܹs[ZYUU%|È\tyÇŽiii¾¾¾ééé999[·nÝ¿?y¡^MMÍËËËßß¿  àÙ³g7n$/È¢Y\.—F£Õ×דå6ÕÕÕ¢í¥4Xµj•°« ˆn%ý3Óf/_–„…ýxéÒc¹ô†¤ KO‹‹‹ÓÓÓ ø#FŒèš¥§Ý<GGG;99:88XZZzzzΚ5«Ù]«nF]]½W¯^½zõÒÓÓ€^ÿPUíà±ö¸•ðêÜ WÍ!ë[xÑq»0`À‘#Gòòòú÷ïïååõúõk¹ï"$$DGGÇÉÉiܸqŽŽŽÂG¥HW®\ öðð`2™[·n•~NÙõ‘—Ð9Ž»»;¹FCCãôéÓk×®533Û³gO||¼††ÆêÕ«¿ù曕+WÚÙÙmÛ¶íûï¿ïÊÇÇg„ S§NgβeDDDXXØÆkjj$6ذaÃÉ“'ëêêFý¿ÿý¯¬¬L<ŸÏŠŠúé§ŸàóÏ?_¼x±x®¬¬ÔÔÔTW—0€¹èïAö­>øÖÇÇÇÿ«`‘Ç×qÀŒ†òG@¡Aü=E©ª&xvF…•@ þ×É¿ñx¼fwX‚|#äR}»aÆÂ³gÏʾI³¡Çºæðd @ òû¶Yl¯_—_¼˜yõêÓW¯ÞÓh*<ž€làæÖ7.n¹‚"m‘ŒŸ@ …râĉݻw—••­ZµÊÌÌlóæÍl6Ûßßûöíþþþµµµd•`MM¡¡áýû÷œœ®_¿¾aÃò–ÇÖ­[}}}Á¡C‡|xÉ’%ÇðàÁ‰'–/_ÃápF}ÿþý¦¦&¸ÿ¾‰‰‰­­mCCÖ-[þûßÿÆÅÅùúú~ÿý÷ 7nÜ8sæÌâÅ‹cbbæÍ›·k×.ñ]½zu×®];wî|øðá¹sçZZ©§§·zõjòUárMM ›Ín6X˜¦¦&™¼`ß¾},ëÈ‘#aaa™™™çÏŸÿàÑI  ®®nóæÍvvv±±±Ë—/?~ü¸ðÖlBBºuëÈ÷Xbƒüñûï¿ßµkWVVÖ™3gDC½xñbqqñÑ£G#""ž?%%eÅŠ&&&666 .ö/åè$@£ÑNœ8áïïo``@þqP[[K¶\²d‰““SÏž=[jðÍ7ß»jv®|óæÍ€€CCC›¥K—>zô¸\îíÛ·—/_¾gÏžœ;wÎÀÀ µoß!C¢¢¢ÔÕÕ6lØðøñc¿&ÔTÀ”È‚óà²ùä“ö<i``°`Á‚¹sçþúë¯gΜٷo_DD„ðÊDKöχ‘M߃°.FÐòSDœ“žÕ\#a}a,¤ûbûVµ?9•æ÷ã·ÆèÑ£Ùlv6´µµM3†††GŽiÖFâÊΤð¤£Ó½Îýó“´œ—WjjÚå& ìÑÃÈÉ©T––²T04(99™œ…¬`üᇂƒƒƒ‚‚¦L™ÒÑŒ2’¥ôTø£®®n;w'E‡\x3fLHHˆ••ÕÀÉÁ–-[ø|þÝ»wׯ_õêU:þêÕ+aAgaa¡xWEEEd^óæðDSâJ‰FŒ¿uëVaª»sçŸÏWWW×××§R©ÅÅÅdÈ»wïd~¸Y[¶lÙ²e‹««+Ç»yó¦°%™ø¥4íÊÈÈHt/ººº{÷î%‹dÈ{<ÏÊÊêùóç}úô133#?:íQQQQXXÈb±úõë'Ëíð}·`ü„Év´Lh,ª:[nK…‘’îèô°”°£°}kÛŽØ'¹q׆Ä UUýìçòÓOϸ\>•Jáó[ÈØXwË–ÿvfl²8p`\úñðððññéׯŸx#—Ë=þüôéÓß¿OV0:::’[µTÁ8pà@«`_ÙAètzjj*yjJ)Øqûêü=hР¦¦¦Ó§O/Y²„\C¡P7lØàèèÈãñTUUÕÕÕ§L™røðá=z888äçç;vL¼«ÈÈÈU«VUWWGEEMœ8±¥•µµµ?ÿü3yÙ\tyÑ¢Eäÿýï555ïÝ»wùòeòF»ªªêرc÷ïßO¤|âĉ &Èx€Íàñx|>_UU•Ëå’£=ÔÕÕ‘'î$) >üí·ß’]M™2Et/£F:~üøòåËkkkÃÃÃíííýýýÉ›+W®\ñõõ1bÄ_|Ñ·oßV¼7@DVVVbbâ‹/¦N)ãEøïà©ÊB;÷›À΂‚3P \6PTáŸ9Qþ…½=ZSËS¶o¡}fñ…VôÐeàqB\î›Ã‡çq¹ü´´—‰‰OoÜÈær›¨TJSSóD®££1}ú`‰(PLŒ|&›V0 ïX“Œ±±±£GnVÁ¨««;lذß~û­¥ ÆcÇŽUTT4«`l¶²ªªêÂ… äesÑåö#ËÃÃ몪–,Y2tèÐÈ¥gq’¿©Tª››ÛO?ýäæö÷ 4-((èèÑ£ïß¿755 ¦Ñh^^^MMM¬¬¬$oñ†„„4ëj„ «V­jhh?~¼y‰»ÙJ¨¬¬ 's¶è²žžÞ±cÇ>\__ß»wï;v¸¸¸DFF’7NörÒfÐh´åË—‡„„hjjΙ3güøñkÖ¬!˯IÚÚÚ-5˜:u*ùĤI“<==KKÿÿbÔ¢E‹"##¿úê+ …âææ&¼gmmýÝwß-Y²äæÍ›[·nݳgO³÷ºwï^||ü¬Y³‚ƒƒÛøðW¯!Ðk8ï²Pp ÏASPT¥]QGp‚814šêĉý'NìîuçÎó„„Ì´´äÿ»=òúéÓ§Å+ß¼yccc#¬`äóù+W®d±Xüþûïç̙Ӭ+²V°¶¶ÖÛÛ;((ˆ¼ZÞl%üSµHælÑåö prr¢R©îîîí,#”®-õc²ˆŠŠ*))Ù¸q£ì›4«w’Xþ$¥&ªs(<€f‚***­ÚмІÝI¨#ñ8Pt b¡4(  ¢Þ9õc39Öu‹Õ£GÑËQBW¥#e§]‡Äú1Rqqebâo—.=~þü­ºº*—Ë5J‰ëÇdÑ]+?HõcRp¹Üâââ›7oþç?ÿ‘{ç¨ …ÒÚä bãÉZO°žãnÃÌwàü|=¬ä¼ ¤lp‚¸631Ñ[¶lÌ;«ïÝ úæ›ñ½TGÁ Æ6“þþóÏ?—.]:eÊÑÛ GÓ§O—eegRx]†!ôý&=€i|¸1êŽp‚89êÓÇpÕªÉwïöRt,¥{W0v(ùßÿvtt¼víZ6433½.­§§×lx–Vv&…€PWFÎ`6eÊ” :´=%Ží¬Ò!'ˆÛ°aÃÕ«W·oß¾bÅŠäädr2PÔ¥tï ÆÕÍÇ?Gu&œ ¡Nƒù!$78ABó7BHÎp‚8„:AgOü€:xêüR&ò¿¦RMÞ¦5AÕú›Yš£ ê¶ôôôV®\ÐÒ³cÍî_Šþ(º^ⲎŽÎÉ“'Ož<)±ç3fˆŽ=ŒP·$!'%%u~H.̵J͵J{©szÑ*zjÕ=TëÉ—‚B…B!(ÿ ³üàñï/ªª,ú(P©T*µ³¯óu§ âº8&“)qèL$#&“)qîYü+›™™©¨¨DDDÈ#*¤Y;À¹74ûÎÍÜ@°&ìREmëúWQQ!ÇcG! ‹ .tã­ÎÑæÂ¹åï#F“°"eůƒ?Ã(ÏvR$ŒI.‚ÒÓ–]“×Ya!„º¡ˆˆ<ßS |~­{QÕ‚[aJôr’öæRÕ Go¨kï®Ñ Ö¨’Q$š $®ZÀU øÕ^ì…²R'U>éééÅÅÅEEEÑÑÑÇÙÙYJ92“ÉÄâ"„rÁüÝ]QÀzL ½½(ÿ#À¤û0æØ,n%ü¾n‡]ÈX ˆP;ƒÁ066633;vì•+WlllöîÝÛRc@@ŽªBÊów·¦a Ãca|*ô°úW WÕº ˜N…AÛ`Üm˜]S‡O€ÑxÅÅÚF,«®îQ(”e˖ݸqƒü1))ÉÉÉIKKËÄÄ„œ°’œRV8‘%Ç 422244 äñþ5)ª,{D¡Ž†ùû#`4¦þŸE¨ê0ø@d`j ô€íW`í+¹‡¼ÃpÛž¬„¿ îMçDýA­šÞÊÎÎîÕ«WP]]íîîîì윗—Äb±ÈÑ7KJJÈÆÝ{n+„P÷€ã·|TµÁ9¬}áá"`?ÆÈÖmÞÓt@I ¼<Dh™ 0†ƒùA»•‹mÖÐÐpáÂ…ÈÈH·lÙ²ÈÈHmmmÙ7WWWÏÎζ°°ÐÔÔ$g³OÿÑÑÑ©©©ÆÆÆaaa»ví¾JÎmuìØ1777''§o¾ùf„ _â ***qqqí™#)V&ÿEHˆÒ•'6GòGàÍ%`ŒͶLé8/¬ûÀú‡Y§Îò.œÞêÿûŸ”é­(J^^ž­­­pÍùóç#""?~ ×®]Û½{wMM““Sttt^^ØÙÙ ÿ-hjj644·ÕÕÕ•øìÇ»zõêþýûß¿¯¹­˜Lf.Ž:‡‘‘‘›››¢£@Ê Ï¿?2*ôöhÇæª Ûtûƒõ½±±1::Z¼=NOMM%Óee¥ðºz3¹­\\\2·•M›GnB);¼ÿ:À³ípg$\è ?¹@Ö·ð:jÿ’KDzOoÅb±JJJÞ¾}›––6sæÌ‚‚râöÆÆF.—K£Ñêë냃ƒ ºúïAdkjjÈœÛ !¤„:BÝ[â¯ËÄ“ÕÄí‘Dœ&qˆ+DSƒ÷PQQ±gÏž>}ú6{IônaaáããSZZ*|uÏž=½zõ²°°8tè···¡¡!Ç9r¤¶¶6Ù€Ãá,\¸P__ßÀÀ`É’%µµµ¢_¼xÑÅÅåìÙ³r<„j¼ÿ:ž€O¡:¬|äß·@ TU;ïNÇÃé1B ‡ù)ZùCH™zƒ ×`ŒC7Ð0RtL!ÔÕaþFŠV_ o.BY”=€š ô´úg`>Ì¿Ptp!ÔEaþF]ICÉ߉¼ì‡ÁŠ!„º(ÌßHÙ%B]Ð]AP°!ô‘¯?¤lÊÒ!7øu ª½>º+Ð]î‚wÍB<ÿFJˆàCE6”=øç®9`BâPV¡æo¤üJ¡ì!Õ^åVM¯ÓcB¡Ž…ùuk.\Ð5=0øôïú4úpPÕRtX!Ô^˜¿Q·&àBñOPþèïÿ¸• ¢ Ÿ‚á´MÑÁ!„PÛaþF8¹PþÊ€ŸUt<!Ôv˜¿Á΂×ñ?ÐÞ¶)VB¨S`ýB"Yð> ^þô°úp »Ýô€Šcž#„º<ÿFHLS=°³þ .êßÁ m0`“¢ÃB¡ÿ‡ù¡©ý TÔ%S ê†XŸ†ê|˜¿j‡Û# ,4Mþ.NcŒƒ¡@UWtX¡îó7BíPû”=€ò (ËöpAMèÃÀå>þ†êP˜¿’“¦¨xePþ\Ï•¦è€BÝæo„: ¯~ .?ÓNÓWt@!%†ù¡ÎRWO¾ƒ²PW@žö@tW`ŒÝ~Š!¤d0#Ôéx(¬_¬û@w…17ÚÐÍÅ‹ÅQ䔘ƒƒÃþýûRV˜¿R(A#4–ƒ¦©„—j W ºý€¢"qSOOϸººvl„¨c¼yó&##¿Q›áøk)U]rò€ü(x¾ÔtÀ೿‡t5puÑ&®®® '’·„„///EG”æo„º*Çí`íû÷0pE×àù. г/ Ù&Ÿ+:8„‚aþF¨Ë¢@ÏO ç'`3€W ìL`¥C+Ç…ê0#¤$ÔtÀhSt¡.ªèB!Ôjxþj»üü|;;;9>DýîݻիW§§§—••988¬_¿~æÌ™òê¼=$©Ü_餤¤äçç+: %fgg7vìØ¶m‹ù!ÔU”——;99MŸ>=>>^GGçæÍ›ÞÞÞ‰‰‰ŸŽÏëuQŸþ9ŸÏWtJLUU•Çãµq[ù†‚Bm88øÄ‰äreeå‚ ètº¹¹ùêÕ«>xt-””ää䤥¥ebb*ly÷îÝÞ½{ÿúë¯â HgÏžíÓ§ƒÁX¾|y]]h¨</00ÐÈÈÈÐÐ000°Í'UÉŠ@)'6ooo‡Cž×zzzr8ràÕ²²²´´4GDlllÿþýAMMººú‘#GŠ‹‹Oœ8¡ªªZSSsôèQCCÃË—/¿{÷îÆæææ——G~ “&MÊÍÍÍÈȰµµÝ²e‹Ä•ATVV?~œ O¸\QQl6»¥ñññ?~ü«W¯rrr @v%ýè$Àáph4šŸŸ_QQQll,¼ÿžl9eÊ””””âââ–Œ7NØÕºu넇ODXX˜»»û_ý•““ãìì¼nÝ:éïK|||7ø€øøxEG¡¬ÚùPúOB-Ùó÷“'O‚àr¹Í–óòòø|¾±±ñÝ»w ‚˜:ujhh(Al6[MM-<<¼¢¢B TWW755õïßÿÔ©SÂnOŸ>-ž¿srrÈWãããmmm%®l)N6› _år¹***Ïž=#¼|ù2Ù•ô£“@ccãŸþYSSÓÔÔ”––&Þòƒ È®¬­­Eó·½½}qq1¹|çÎÁƒK_0£v~ðú9BÝŸŽŽ¨©©5[•Y³f]¾|¹¬¬,99ÙÇÇôõõSSS322ÌÍÍG}ïÞ=*•Êd2,ìsРAâ;²³³#ìíí‹ŠŠ¤¬§¯¯oddôLj®ÌÌÌ:th]]]iiiSSSŸ>}Èõ¶¶¶Â®¤Äh4ZnnîäÉ“‡ rêÔ)Ñ–ööö ¥hWÅÅÅ¢/š˜˜P( …2qâÄ‚‚‚–Ž!¹ÀüÐÇÎÃÃãÊ•+ #GŽ$¯Š××× ‚ .°ÙìE‹MŸ>Íf›™™egg ·zþü¹xWäù(äææšššJY)ÑŒ3"""‘r¬ØØX§¥¥edd¤¢¢Âd2Éõ¯^½233“ñ›P__ïééøäÉ“C‡‰¶$¿”¢]YZZоD§ÓóòòÈ£ŠŠŠŒŒ ÃCí!úüDûQDXYYÍ›7ÅbÉ«s¹ÃüÐÇnÔ¨Q|>Û¶m¾¾¾ä …2iÒ¤K—.q8.—«¦¦¦¥¥åç瘘˜XRRrëÖ­uëÖ‰wŸŸŸ™™¹~ýú¹sç¶´²ªªJø¹èòŽ;ÒÒÒ|}}ÓÓÓsrr¶nݺÿþ;v€ššš———¿¿AAÁ³gÏ6nÜH^*E³¹\.F«¯¯€êêjÑöR¬ZµJØÕ‚ D·š5kVPPÐëׯsrr&Ož|ðàAÃû ?þxWXX&¯ÞtéééÅÅÅEEEÑÑÑÇÙÙ¹²²²¥ÆL&“N§wfxÿ"Ÿ«ø¡N'ûýoáyaKËË–-ÓÔÔäp8­âããûôéC£Ñìíí ‚àr¹Û¶m³¶¶ÖÖÖvuu=wîˆÝÿŽŠŠ²´´¤Óé+V¬¨¯¯—¸Rؘܑè2A………³gÏ655ÕÑÑùì³Ï®]»&|‰Ífûúú˜˜˜¬\¹’ìJúѵÀž={zõêeaaqèÐ!oooCCÃfa´Ô ..ÎÊÊÊÐÐpÕªU¢[q8œ… êëë,Y²¤¶¶VúûòÁ{Ÿ¬½{ru 11ùvîÜcÒ{SPôýïfo\;‰~„‚nnn›7oî ½ãók}¤dÌß²X¿~ýœ9sZµI³o.‰_dòýnm… EKßÝ%%UǧM˜°ÛÄä[sóïLL¾51ùÖËëPçG( Yò7œ8qÂÞÞžN§ïÚµëÌ™3VVV={öܸq#A+V¬ðóó#[VWWkjj’!^»vmàÀêêêÖÖÖgΜ!¢©©éÀöööÚÚÚ...)))âA^½zµoß¾ cÅŠ W-ÿÙ,qîܹ!C†Ëׯ_>^CCcõêÕß|óÍÊ•+íìì¶mÛöý÷ß‹wåãã3a„©S§Nž<9((¨¥•,KøÀ¦è2 >ÜÄÄÄÜÜÜ××W[[;++‹¼ ®§§áããcoooeeåíí=yòd++«‘¦ $8—IDAT#G ¯™‡„„èèè8997ÎÑÑ1,,¬Ã~gâ#žy!¥FNÚ˜ è@ZB¡äåå‘—€ ˆ1cÆŒ3†<­—ŸŸogg×;¬È¹#Ū´”sýúo—.=ÎÎ~£¦¦Âç7¸¹õ‹[®8¥£P(r™?tÆ ………gÏž•}“fŸ ‰’.þÉié3 #<ÿFu ‹ÕlžMq eÙ²e7nÜ Ÿ»ÓÅÅŒÉÒgê”e]™‘QÏÅ‹ÝnÞü.=}ÃÊ•“,-é ªª¢è¸: V0¶æo„P‡ÈÌÌ\°`Aÿþý«ªª>ØXŽU¶ÙÙÙÖÖÖkÖ¬QöD¬¬èß~;)=}Crrà¶m3NGyøðá§Ÿ~êçç7f̘öôÓ³gÏ¥K—ʲ²ÛÀü’§†††˜˜˜aÆ-]ºtøðáL&S´¢æƒÔÕÕ³³³÷ïßobbbaaâé?:::22ÒÂÂbàÀaaa·nÝ}u„ OŸ>ÕÒÒrss›1cÆíÛ·å¥_?S›nûpYÁHŽrß*JQÁØ¡0#„ä&99ÙÒÒòîÝ»ÈÊÊZ²d ù\î5«²•8w§Ðgê455ݲe “Éôõõݾ}»ƒƒÃ›7oÚwdu9˜¿BrÃ`0úõë—žž~ÿþ})Ï“7#^e+qîN!gê,--}þüyQQ‘³³³¦¦fÛŽ¡. ó7BHnSSS/_¾üòå˾}û.^¼8++KbK‹URRòöíÛ´´´™3g|÷Ýw uîΚšrAúLàöíÛ3gÎtqq!âþýûçÏŸï®ågèc†ù!$g 8räH^^^ÿþý½¼¼^¿~-Þ¦ãªl¯\¹ìááÁd2·nÝÚªñ¶R"Xÿ²RŠúo@ TU;o¨G'[»+kgío!¯úïS;?8~*B¨Q©T*µS¯ó)Eòî6TTT¼¼¼¼¼¼ˆ²RQi{e?æo„Bm”’’RZZªè(”˜‘‘Q›·ÅüB¨ÜÜÜÂÇ Ÿ_C!„”æo„BHù`þF!„”æo„BHùàók)±_~ùeâÄ‰ŠŽµ>¶Ú ó7BÊÊÃÃCÑ! ¶Ó××Ç¿½P{àøk!„òÁûß!„òÁüB)Ìß!„òù?ô]µÐ¾o¶IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1UseQueryError.html0000755000372000001440000002613712502417163026767 0ustar robertousers MySQL++ Reference Manual
mysqlpp::UseQueryError Class Reference

Exception thrown when something goes wrong in processing a "use" query. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::UseQueryError:
Collaboration diagram for mysqlpp::UseQueryError:

Public Member Functions

 UseQueryError (const char *w="")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when something goes wrong in processing a "use" query.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1DBSelectionFailed__inherit__graph.png0000644000372000001440000001461112502417165032445 0ustar robertousers‰PNG  IHDRÅ»ZrÍbKGDÿÿÿ ½§“>IDATxœíÝyTSgúð7 ›ì˜d©Ê"KUt:Χj¡*CutÜ@DEg~*¸Õ<¢8ãQ±bÁm´"(›T­‹2jAkň­eG„€B!˜åÞßwNŒ$Jßà<ŸÓÓóæ½÷¾yrï7yo®$¡‘$‰À„®ëÀ{òp‚<œ O']ðVUUÕ›7ot]ÅÐC§ÓÇŒcbb¢ëBÒ«<555YZZëº!æÕ«Wvvv'5œœœØl¶®«bnݺ¥ëÞ‚ó'€ä ày8AžNïsžª««i4š®«x‡–„×ÏSmm-‹ÅÒuš(Whmm½iÓ&ÝÖ£UC>OA´··ëº M”+d±XÉÉɺ­G«†Xž ½½½MLL\\\Ξ=‹òññA1!$—ËSRRÜÝÝ-,,>þøã²²2j+åYF¹-•JìììØlvBB‚T*½|ù²££#ŸÏGeffº»»wuuÉd²;wŽ9ÒÖÖvÙ²e ·Í©Á <<<Ølvlllww·r…Ê÷.–/_Îb±œœœâããÅb1BˆF£}õÕW^^^Çß¿ÿ íVŒH½Q\\ÜÚÚªa¡Phllœ––ÆårOœ8a``  «ªªâ_ÿú›ÍÎÍÍmnn¾r劃ƒµH ¤§§Së(·÷íÛ·páÂçÏŸs8œ>úhóæÍ$I.[¶,<<¼¥¥ÅÎή¬¬Œ$É”””±cÇr8œ'OžLž<9>>¾·Í©b*++KKKÝÜÜ•+Tn‡††NŸ>½¦¦†ÃáŒ7.11‘$I„ТE‹ø|~zz:B¨½½ý·ï·Á4”òÄãñ 8Àçó ‚èìì”ËåÊGÈÝÝýôéÓŠõÏœ9£ù ãééÉår©ö7&NœH’$ŸÏwrròöö¦0I’¹¹¹Tû§Ÿ~R´U7§Šáp8TgVV–›››Ú}ªy@‹¥8`|>¿´´!ÔØØ˜šš:cÆŒ 6P«988Ô××Síòòò={öhØ!D…!TYYI͹ªììì Fmm-u³¦¦ÆÑÑ‘jÓéCé ô0”J§Ñh999‰ÄÐÐÐÔÔ”Z$ BÑÑÑ ---ß|óÍŽ;¨¥¯_¿ÎÈÈPm/X°`Ë–- '00ðèÑ£A¬\¹2&&&33³¨¨¨°°!öùçŸWTTTTT¬]»¶¡¡¡·Í©þ¸¸¸êêêlݺuéÒ¥Ê*ÅÆÆÖÕÕUTTlÛ¶-44T{»nðè§þ¼ngee¹ººyzz$)•J§L™bnnN’¤L&KIIqss333óõõ¥^0ÈwçDåvGGÇŠ+lll˜LfdddWWב#G&L˜ ‘HH’ÌË˳··çñxb±8>>ÞÁÁÁÊÊ*88˜Ïç÷¶95xFFƨQ£X,VLLŒH$R®PùÞy<^XX“É´··_·n5÷!¥9 ÁùŽFêÍç[nݺõá‡é¿W©®®3fÌ ïR½ÚoCi¾úò„“¥¥eTT”®«Ð%ÈNl6;--M×Uèä ày8AžN'€“~}^J Èd2]WNòdllÜÜܬë*Ô ò‹/Οïáèh¡ëZÔ Ñhúó!X=Ê“¯¯¯®KP¯´´æÞ½Ë.¡¡~º®EßÁùSßòòRÿ—É]×¢ï O}Hd¹¹B¯_¿))ùE×åè;ÈSnÝzöæM7BˆÁ çæ>Ôu9úòÔ‡œœ‡ !$“×®qD"‰®+Òk'Mººº¯_¯ÉäÔÍînÙ?é¶$=yÒD9L!:–“óƒëÑ'Mrr~Pþx¸LF?ëèé°$=yê×URR)—¿s€$É«W9º*IÿAžzõõ×U;I’¼x¦¼^AžzuéÒÕ¿'²´´¦µõµNJÒ'õš›6„šO0ôÂB5/]AžzSXXÞÛ§Td2yN\ØTOþ=X¯¼y#±··TÜ »ML þûô{¯¿ì7Ñ£Ïßé3‡uiiásçNÔu!úæ;€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€© º~d8¤ÓMu]6ÎÎÎZ:îÚúþÌúúzŸõë×ki|0`ßÿýÁƒµ4¸¿õƒ>X¼x±öÆCjóSáü ày8AžN'€Óûœ§êêj¾_2 ©ƒkp ð> mƒßÛøîÝ»çìì<wT[[ûÇ?þ±­­ !dmm½iÓ¦A¸S, O¿‚­­íˆ#ᎂhoo§Ú,+99yî Ïw4íäÉ“^^^¶¶¶ÉÉÉgÏžuvv¶²²Ú¾};B(666""‚ZS(ššš>zô!TXXèíímbbâââröìY„A©©©^^^¾¾¾ÅÅÅÊs5exxx°ÙìØØØîînµèÝù¥?sÍåË—ù|>B(33ÓÝݽ««K&“íܹsäÈ‘¶¶¶Ë–-ÔÊR©4!!ÁÎÎŽÍf'$$H¥Rµeøøø „¨ì*× –/_Îb±œœœâããÅb1µ¿úê+//¯áÇï߿ӑ(-]w_¼xñâÅ‹û\ !ÜÑÑ‘‘‘Z²dIGGÇñãÇBmmm·oßf2™R©”$ÉsçÎ;– ¡Phllœ––ÆårOœ8a``  ?Îf³sss›››¯\¹âä䄪ªª¢ Õ¨¬¬,--ussKLLTÛI’¤@ HOO§ÊSn#„ÊËË;ßE-Z¶lYxxxKK‹]YYI’)))cÇŽåp8Ož<™}Z1ì™3gTóÄáp¨¥YYYnnnj;5—ÚÛ³‘Ïç;99y{{S˜$IÜÜ\ªýÓO?)Úžžž\.—j߸qcâĉj£zm‰DÂ`0***¨þÜÜ\ª`„Pqq±ò~Ӽϵš'Ý¿¿³°°@öh#„ Æ‚ rssÛÚÚŠŠŠBCCB666ÅÅÅ¥¥¥NNNŸ|òÉþó:^[[;qâÛóööV½£1cÆP OOÏ/^hèìê¡¢ú­­­###Ÿ>}ºfͪ§¡¡A1²——×üùó©v}}½½½=õÞpæÌ™uuuý/£µµU.—»ººR7ÝÜÜk:88(ï7Ò}ž4[¼xq^^^vvö”)S¨YL$qñâE1gÎçèèøøñÛß`}úô©êPÔ!TYYI€Þ:­ÆÆÆÔÔÔ3flذêqpp¨¯¯§Úååå{öì¡Ú,KJ>Ÿ_ZZÚÿ2ììì Fmm-u³¦¦ÆÑÑ‘jÓéúrõ¥ŽÞL:U&“íÞ½;,,Œê¡Ñh999‰ÄÐÐÐÔÔtåÊ• ---ß|óÍæÍ›U‡Š‹‹«®®~ðàÁÖ­[—.]Ú[çëׯ©“¹m„ЫW¯ZÞ…"båÊ•111™™™EEE………¡°°°Ï?ÿ¼¢¢¢¢¢bíÚµ Ô ,زeKCC‡Ã Ÿ÷ÇÖ­[CBB~Õ&ÊÇ@õ¦†ÎÁ7øeh5Oz}=S,777Ÿ}º¤¤„ÇãÙÚÚNŸ>=44ÔÈÈH5lsåâÔ¢ÿWÝÑÀªÒ»þüðáñ±±¸ªâr¹ÑÑÑ!ssóààà?´>WðøðþÏwÖÖÖÇg±X¿ûÝïþñØÛÛ_¼x±ÇR&“éááyÿþ¯XÞ¹sgõêÕcÆŒ±¶¶ööö޽{÷.ƪ‚èèè ÚVVV‘‘‘„*^™ÚÕ<þ $Oþþþ×®] Ÿ7oÞùóç¿ýöÛàààÙ³gŸþøã²²²ýû÷O›6­¨¨èßÿþ÷úõë?üðÃêêê½{÷ªÞQ~~þÞ½{;;;÷ìÙcii9cÆ ÕÎððpkkëøøxjå¶*''§ææfÅM±X,‰H’looÏÈȘ9s&ÕŸ°oß¾E‹M˜0aÒ¤I~~~vvvÔ¢K—.q¹ÜãÇSÇþÔ©S³fÍR ¨ºÔÒÒ²¤¤dïÞ½4-%%åܹsÑÑÑ_|ñÅÒ¥Ksss{”wèÐ!—––&‰’’’LMMÃÃÃBwîÜ9zôèíÛ·80{öl EñŠmŒŒº»»wìØ1sæÌ½{÷–——ïÙ³G¹6eªuZ[[gee)GJJJoûPƒÎwAAA¦¦¦¡SSÓÀÀ@„Pggç¸qã 8B¨¨¨( €F£I¥R’$E"‘‘‘Q```aa¡±±qNNNttôÔ©S™LæäÉ“W­Z¥zGkÖ¬qrròòòZµjÕ7zë433›={6µT¹Ý§U«VÍš5köìÙË–-«¬¬œ>}:Õ?iÒ¤¬¬¬C‡?þúõë!!!7oÞ¤]»v-..ŽÍf»¸¸DEE)¦ÈÞ–^¹reåÊ•...ÎÎΛ6m;vloÅÈd²ï¾û.&&ÆÞÞÞÅÅeÅŠЇ}:--J[KKËÂ… #˜™™)¯ºT*•* 5jÔ¨Q£z«Ïç¡(ÏÑÑQñèX,RÚÉ=Šïñ8 ‰ÆŒ£a?¨Ö)“Éú<}ÒÊû;??¿¤¤¤Ñ£G?ÞÖÖ!ÔÝÝMDbb¢L&»yóæÖ­[óóóY,VMM««+µU}}½êP/^¼ Xcc#“ÉÔÐÙ$I^¾|ÙÇÇGu‘±±ñìÙ³322‰‰IRRÒÈ‘#©ýK£Ñþð‡?RkZYY;vìØÝ»wy<Þýû÷¿üòKÕ¡RSS›ššž={¦|r£ÚÙÕÕuåÊj©r!$x<^[[ÛãÇ·oßÎår—,YÒc)Ç{ùòeff&›Í¶¶¶6lX@@À®]»JKK¹\îÓ§O;¦˜ §NšžžÞÚÚZ[[»qãÆüü|å‚U—dddÔÕÕÕÕÕ:t¨µµU±²òÙBÈÀÀÀßßÿðáÃ\.·®®îĉÔùbÿI¥R™Lf`` ‘HN:…zóæÚ5Uëœ;w®òá Þ]ýZZy}¢ÓéÓ¦M»~ýú´iÓ¨##£-[¶?~üåË—;wî422 ’ËåGÔ,ž””Ôc¨3flذA,SW©×ÿ!@@¨öh#„Ö®]K5Øl¶··÷—_~© MySQL++ Reference Manual
mysqlpp::SetCharsetDirOption Class Reference

Give path to charset definition files. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetCharsetDirOption:
Collaboration diagram for mysqlpp::SetCharsetDirOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give path to charset definition files.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FoundRowsOption.html0000755000372000001440000002606012502417163027305 0ustar robertousers MySQL++ Reference Manual
mysqlpp::FoundRowsOption Class Reference

Make Query::affected_rows() return number of matched rows. More...

#include <options.h>

Inheritance diagram for mysqlpp::FoundRowsOption:
Collaboration diagram for mysqlpp::FoundRowsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Make Query::affected_rows() return number of matched rows.

Default is to return number of changed rows.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x75.html0000755000372000001440000001246012502417164023645 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- u -

mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x6d.html0000755000372000001440000001461712502417164023731 0ustar robertousers MySQL++ Reference Manual
Here is a list of all documented class members with links to the class documentation for each member:

- m -

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TooOld-members.html0000755000372000001440000000346712502417163027024 0ustar robertousers MySQL++ Reference Manual
mysqlpp::TooOld< ConnInfoT > Member List

This is the complete list of members for mysqlpp::TooOld< ConnInfoT >, including all inherited members.

mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption-members.html0000755000372000001440000001213112502417164031506 0ustar robertousers MySQL++ Reference Manual
mysqlpp::SetCharsetDirOption Member List

This is the complete list of members for mysqlpp::SetCharsetDirOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.2+pristine.orig/doc/html/refman/annotated.html0000755000372000001440000013667412502417164023045 0ustar robertousers MySQL++ Reference Manual
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
\Nmysqlpp
 oNexamplesStuff related to MySQL++ examples specifically
 oNinternalNamespace for holding things used only within MySQL++
 oNssqlsxlatStuff specific to the ssqlsxlat tool
 oCAutoFlagA template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool
 oCBeecryptMutexWrapper around platform-specific mutexes
 oCScopedLockWrapper around BeecryptMutex to add scope-bound locking and unlocking
 oCCommandLineBaseParses command line arguments and holds the results
 oCComparableMix-in that gives its subclass a full set of comparison operators
 oCConnectionManages the connection to the database server
 oCTooOldFunctor to test whether a given ConnectionInfo object is "too old"
 oCConnectionPoolManages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance
 oCDateTimeC++ form of SQL's DATETIME type
 oCDateC++ form of SQL's DATE type
 oCTimeC++ form of SQL's TIME type
 oCDBDriverProvides a thin abstraction layer over the underlying database client library
 oCExceptionBase class for all MySQL++ custom exceptions
 oCBadConversionException thrown when a bad type conversion is attempted
 oCBadFieldNameException thrown when a requested named field doesn't exist
 oCBadIndexException thrown when an object with operator [] or an at() method gets called with a bad index
 oCBadOptionException thrown when you pass an unrecognized option to Connection::set_option()
 oCBadParamCountException thrown when not enough query parameters are provided
 oCUseQueryErrorException thrown when something goes wrong in processing a "use" query
 oCBadQueryException thrown when the database server encounters a problem while processing your query
 oCConnectionFailedException thrown when there is a problem related to the database server connection
 oCDBSelectionFailedException thrown when the program tries to select a new database and the database server refuses for some reason
 oCMutexFailedException thrown when a BeecryptMutex object fails
 oCObjectNotInitializedException thrown when you try to use an object that isn't completely initialized
 oCSelfTestFailedUsed within MySQL++'s test harness only
 oCTypeLookupFailedThrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type
 oCBadInsertPolicyException thrown when an insert policy is too strict to create a valid INSERT statement
 oCFieldClass to hold information about a SQL field
 oCFieldNamesHolds a list of SQL field names
 oCFieldTypesA vector of SQL field types
 oCSetA special std::set derivative for holding MySQL data sets
 oCStringA std::string work-alike that can convert itself from SQL text data formats to C++ data types
 oCOptionalExceptionsInterface allowing a class to have optional exceptions
 oCNoExceptionsDisable exceptions in an object derived from OptionalExceptions
 oCnull_typeThe type of the global mysqlpp::null object
 oCNullIsNullClass for objects that define SQL null in terms of MySQL++'s null_type
 oCNullIsZeroClass for objects that define SQL null as 0
 oCNullIsBlankClass for objects that define SQL null as a blank C string
 oCNullClass for holding data from a SQL column with the NULL attribute
 oCOptionDefine abstract interface for all *Option subclasses
 oCDataOptionDefine abstract interface for all *Options that take a lone scalar as an argument
 oCCompressOptionEnable data compression on the connection
 oCConnectTimeoutOptionChange Connection::connect() default timeout
 oCFoundRowsOptionMake Query::affected_rows() return number of matched rows
 oCGuessConnectionOptionAllow C API to guess what kind of connection to use
 oCIgnoreSpaceOptionAllow spaces after function names in queries
 oCInitCommandOptionGive SQL executed on connect
 oCInteractiveOptionAssert that this is an interactive program
 oCLocalFilesOptionEnable LOAD DATA LOCAL statement
 oCLocalInfileOptionEnable LOAD LOCAL INFILE statement
 oCMultiResultsOptionEnable multiple result sets in a reply
 oCMultiStatementsOptionEnable multiple queries in a request to the server
 oCNamedPipeOptionSuggest use of named pipes
 oCNoSchemaOptionDisable db.tbl.col syntax in queries
 oCReadDefaultFileOptionOverride use of my.cnf
 oCReadDefaultGroupOptionOverride use of my.cnf
 oCReadTimeoutOptionSet timeout for IPC data reads
 oCReconnectOptionEnable automatic reconnection to server
 oCReportDataTruncationOptionSet reporting of data truncation errors
 oCSecureAuthOptionEnforce use of secure authentication, refusing connection if not available
 oCSetCharsetDirOptionGive path to charset definition files
 oCSetCharsetNameOptionGive name of default charset
 oCSetClientIpOptionFake client IP address when connecting to embedded server
 oCSharedMemoryBaseNameOptionSet name of shmem segment for IPC
 oCSslOptionSpecialized option for handling SSL parameters
 oCUseEmbeddedConnectionOptionConnect to embedded server in preference to remote server
 oCUseRemoteConnectionOptionConnect to remote server in preference to embedded server
 oCWriteTimeoutOptionSet timeout for IPC data reads
 oCSQLQueryParmsThis class holds the parameter values for filling template queries
 oCSQLParseElementUsed within Query to hold elements for parameterized queries
 oCQueryA class for building and executing SQL queries
 oCRefCountedPointerDestroyerFunctor to call delete on the pointer you pass to it
 oCRefCountedPointerCreates an object that acts as a reference-counted pointer to another object
 oCSimpleResultHolds information about the result of queries that don't return rows
 oCResultBaseBase class for StoreQueryResult and UseQueryResult
 oCStoreQueryResultStoreQueryResult set type for "store" queries
 oCRefCountedPointerDestroyer< MYSQL_RES >Functor to call mysql_free_result() on the pointer you pass to it
 oCUseQueryResultStoreQueryResult set type for "use" queries
 oCRowManages rows from a result set
 oCScopedConnectionGrabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer
 oCSQLBufferHolds SQL data in string form plus type information for use in converting the string to compatible C++ data types
 oCSQLStreamA class for building SQL-formatted strings
 oCSQLTypeAdapterConverts many different data types to strings suitable for use in SQL queries
 oCTCPConnectionSpecialization of Connection for TCP/IP
 oCtiny_intClass for holding an SQL TINYINT value
 oCTransactionHelper object for creating exception-safe SQL transactions
 oCNoTransactionCompile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used
 oCmysql_type_infoSQL field type information
 oCUnixDomainSocketConnectionSpecialization of Connection for Unix domain sockets
 oCequal_list_baHolds two lists of items, typically used to construct a SQL "equals clause"
 oCequal_list_bSame as equal_list_ba, plus the option to have some elements of the equals clause suppressed
 oCvalue_list_baHolds a list of items, typically used to construct a SQL "value list"
 oCvalue_list_bSame as value_list_ba, plus the option to have some elements of the list suppressed
 \CWindowsNamedPipeConnectionSpecialization of Connection for Windows named pipes
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1mysql__type__info.html0000755000372000001440000006377512502417164027724 0ustar robertousers MySQL++ Reference Manual
mysqlpp::mysql_type_info Class Reference

SQL field type information. More...

#include <type_info.h>

Public Member Functions

 mysql_type_info ()
 Default constructor. More...
 
 mysql_type_info (enum_field_types t, bool _unsigned=false, bool _null=false)
 Create object from MySQL C API type info. More...
 
 mysql_type_info (const mysql_type_info &t)
 Create object as a copy of another.
 
 mysql_type_info (const std::type_info &t)
 Create object from a C++ type_info object. More...
 
mysql_type_infooperator= (const mysql_type_info &t)
 Assign another mysql_type_info object to this object.
 
mysql_type_infooperator= (const std::type_info &t)
 Assign a C++ type_info object to this object. More...
 
const char * name () const
 Returns an implementation-defined name of the C++ type. More...
 
const char * sql_name () const
 Returns the name of the SQL type. More...
 
const std::type_info & c_type () const
 Returns the type_info for the C++ type associated with the SQL type. More...
 
const mysql_type_info base_type () const
 Returns the type_info for the C++ type inside of the mysqlpp::Null type. More...
 
int id () const
 Returns the ID of the SQL type. More...
 
bool quote_q () const
 Returns true if the SQL type is of a type that needs to be quoted. More...
 
bool escape_q () const
 Returns true if the SQL type is of a type that needs to be escaped. More...
 
bool before (mysql_type_info &b)
 Provides a way to compare two types for sorting. More...
 

Static Public Attributes

static const enum_field_types string_type
 The internal constant we use for our string type. More...
 

Detailed Description

SQL field type information.

Constructor & Destructor Documentation

mysqlpp::mysql_type_info::mysql_type_info ( )
inline

Default constructor.

This only exists because FieldTypes keeps a vector of these objects. You are expected to copy real values into it before using it via the copy ctor or one of the assignment operators. If you don't, we have arranged a pretty spectacular crash for your program. So there.

mysqlpp::mysql_type_info::mysql_type_info ( enum_field_types  t,
bool  _unsigned = false,
bool  _null = false 
)
inline

Create object from MySQL C API type info.

Parameters
tthe underlying C API type ID for this type
_unsignedif true, this is the unsigned version of the type
_nullif true, this type can hold a SQL null
mysqlpp::mysql_type_info::mysql_type_info ( const std::type_info &  t)
inline

Create object from a C++ type_info object.

This tries to map a C++ type to the closest MySQL data type. It is necessarily somewhat approximate.

Member Function Documentation

const mysql_type_info mysqlpp::mysql_type_info::base_type ( ) const
inline

Returns the type_info for the C++ type inside of the mysqlpp::Null type.

Returns the type_info for the C++ type inside the mysqlpp::Null type. If the type is not Null then this is the same as c_type().

Referenced by mysqlpp::SQLBuffer::quote_q().

bool mysqlpp::mysql_type_info::before ( mysql_type_info b)
inline

Provides a way to compare two types for sorting.

Returns true if the SQL ID of this type is lower than that of another. Used by mysqlpp::type_info_cmp when comparing types.

const std::type_info& mysqlpp::mysql_type_info::c_type ( ) const
inline

Returns the type_info for the C++ type associated with the SQL type.

Returns the C++ type_info record corresponding to the SQL type.

Referenced by mysqlpp::SQLBuffer::quote_q().

bool mysqlpp::mysql_type_info::escape_q ( ) const

Returns true if the SQL type is of a type that needs to be escaped.

Returns
true if the type needs to be escaped for syntactically correct SQL.

Referenced by mysqlpp::SQLBuffer::escape_q(), and mysqlpp::String::escape_q().

int mysqlpp::mysql_type_info::id ( ) const
inline

Returns the ID of the SQL type.

Returns the ID number MySQL uses for this type. Note: Do not depend on the value of this ID as it may change between MySQL versions.

Referenced by mysqlpp::SQLTypeAdapter::type_id().

const char* mysqlpp::mysql_type_info::name ( ) const
inline

Returns an implementation-defined name of the C++ type.

Returns the name that would be returned by typeid().name() for the C++ type associated with the SQL type.

mysql_type_info& mysqlpp::mysql_type_info::operator= ( const std::type_info &  t)
inline

Assign a C++ type_info object to this object.

This tries to map a C++ type to the closest MySQL data type. It is necessarily somewhat approximate.

bool mysqlpp::mysql_type_info::quote_q ( ) const

Returns true if the SQL type is of a type that needs to be quoted.

Returns
true if the type needs to be quoted for syntactically correct SQL.

Referenced by mysqlpp::SQLBuffer::quote_q(), and mysqlpp::String::quote_q().

const char* mysqlpp::mysql_type_info::sql_name ( ) const
inline

Returns the name of the SQL type.

Returns the SQL name for the type.

Member Data Documentation

const enum_field_types mysqlpp::mysql_type_info::string_type
static
Initial value:
=
FIELD_TYPE_STRING

The internal constant we use for our string type.

We expose this because other parts of MySQL++ need to know what the string constant is at the moment.

Referenced by mysqlpp::SQLTypeAdapter::assign(), mysqlpp::SQLBuffer::is_string(), mysqlpp::String::it_is_null(), mysqlpp::String::operator=(), and mysqlpp::String::type().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ConnectionFailed__inherit__graph.png0000644000372000001440000001403412502417165032410 0ustar robertousers‰PNG  IHDR½»¿ìzbKGDÿÿÿ ½§“ÑIDATxœíÝ{Tgúð7 á~5!\ "—b©Û³»â*Vª²ˆ««"" RÁ î ÖJ¼U Ç•…Š»]WºR” Rµ­¬(^ Z+Fl­Ü½¨’`&ä2óûc~'Ç”‰öùœžž7ofÞy2óͼÌ…†ã8àÑ©.¼’ 7€ È rÈ0¢vóMMMOŸ>¥¶†WNŸ0a‚©©)UPœ›‡Z[[›˜˜P[Æ+çÑ£G¿ÞÜ „\]]9ÕU¼bΟ?Omp}È€Ü2 7€ È ãuËMss3F£ºŠA °¤—÷J榵µ•ÍfS]ÅH4+´µµÝ¸q#µõèÝ+™ Ãzzz¨®b$š²Ù쬬,jëÑ»W 7UUU¦¦¦žžž‡F"„B*•*;;ÛÛÛÛÊÊjêÔ©õõõÄZš³ƒf[¡Pp¹\‡Ãår ÅÉ“']\\D"B¨¤¤ÄÛÛ»¿¿_©T¦¥¥¹¹¹ÙÛÛ/_¾¼··w¸Õ‰Á+++}||8NJJÊÀÀ€f…š[ïíí}ÿý÷Ùl¶««kjjªL&CÑh´/¾øÂÏÏoܸq;wî£Ýú’pJÕÔÔtww°€D"111ÉËË………FFF‰¤©©I]ù¿þõ/‡Ããñ:;;O:åììLÜÕÛÛ›ŸŸO,£ÙþôÓOÃÃÃïÝ»ÇçóßyçM›6á8¾|ùò¸¸¸®®.‡úúzdz³³ýýýù|þ­[·&Ožœšš:ÜêD1!!!wïÞ­««óòòJOO׬P³3sæÌ––>Ÿ?qâÄôôtÇB‹/‰Dùùù¡žžž—ßo¿4CÏP(d2™»ví‰D†õõõ©T*Í#áííýù矫—?tèÐÈO___@@´Ïž=;iÒ$ÇE"‘««k@@q q÷ññáñxDû‡~P·µW'ŠáóùDgii©———ÎÜÈårƒÑØØHôóxù„¸÷É“'ÚíE‹mÞ¼¹££ƒÏ燆†îÝ»ðøøøäää’’’êêꪪ*„PllìÇÜØØØØØ¸fÍšŽŽŽáV'ú×®]ÛÜÜ|íÚµ-[¶,[¶L³B5&“™’’ÒÖÖÖØØ¸uëÖ˜˜˜_n×ý²¨;Õáøèη¥¥¥ãÇ766öõõ­¬¬Äq\¡PL›6ÍÒÒÇq¥R™íååeaa1eÊ„Ë4Ûb±xÅŠvvv,kÕªUýýý{öìyûí·år9ŽãNNNB¡P&“¥¦¦:;;ÛØØDEE‰D¢áV'/((pwwg³ÙÉÉÉR©T³BÍ­ …ÂØØX‹åää´nÝ:bÎBszEæ)NéçΟ?ÿæ›o¾Òï£hnnž0aÂïFÊ÷›¡ÏSÀ0An^–µµubb"ÕUŒ5ÈÍËâp8yyyTW1Ö 7€ È rÈ€Ü2¨ÿLoo¯R©¤º ðb(Ή‰Igg'µ5è„aø¾}×.ôqq±¢ºh4µV¤87S¦L¡¶€áÔÕµ\¹rÒÇÇ3&fÕµ"¸¾Ñ­¢â:ñ¥£ºC¹ÑA.Wòx7BOž<­­ý‰êr äF‡óçï<}:€b0è<ÞuªË1DÊ˯3t„R‰9×JåTWdp 7Cõ÷|ýu£R©"n (ÏžýÚ’ äf(ÍÐ „ètZyùwÖc˜ 7C•—§ù±\¥«©¹#K),ÉAn ûkkïªTƒ^{ã8~ú4Ÿª’ äf/¿¼©Ý‰ãø±c0U ¹äøñkÚïÆ0¼®®¥»û %%&ÈÍ3½×¯w`˜Žw˜3ôª*§¢_-ÈÍ3UU Ã}*A©T•—ß¡þ}†ãéS¹““µú¦D2`jÊ42úÿ§Ök÷ÕG/…âÏO2gçuyyqóçO¢ºCó rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È rÈ€Ü2 7€ È ×.—Kõ£Ñ'7:Ýœê*ôÆÃÃCÇZŸßï×ÞÞøÑGéqL ß~ûígŸ}¦Çõü½o¼ñFDD„~Ç/×÷·8Âõ rÈ€Ü2 7€Œ×-7ÍÍÍ4ý}³9M} >ý>Š_|Ïþs\¹rÅÃÃc 6ÔÚÚú‡?üáñãÇ![[Û7ŽÁFIƒÜ<‡½½½££ãl𞞢Íf³³²²Æ`£¤Q0OÑh´ƒúùùÙÛÛgee>|ØÃÃÃÆÆfÛ¶m¡”””„„bI‰Dbnn~ãÆ „PUUU@@€©©©§§çáÇB†åääøùùYYYM™2¥¦¦FóÜNœê+++}||8NJJÊÀÀ€ÎN4x^ÍqòäI‘H„*))ñööîïïW*•iiinnnöööË—/ïíí%V(\.×ÁÁÃáp¹\…B¡³ŒÀÀ@„‘QÍz{{ßÿ}6›íêêššš*“Ɉ}øÅ_øùù7nçÎz:2/B{Žˆˆˆˆˆxîb¡¨¨(±X\PP€Z²d‰X,Þ¿?BèñãÇ.\`±X …Çñââb Ã$‰‰‰I^^ž@ (,,422’H$û÷ïçp8<¯³³óÔ©S®®®¡¦¦&âA»wïÖÕÕyyy¥§§ëìÄq¼··7??Ÿ(O³jhh茸kùòåqqq]]]õõõ8Žgggûûûóùü[·nMž<955•XòÓO? ¿wïŸÏçw6mÚ4BmÄ*ší˜˜˜™3g¶´´ðùü‰'#„/^,‰òóóB===#ïóÒÒRýkjróý÷ßã8.—ˇ´›šš”J¥££ãÿþ÷?Çò²²p …L&s×®]"‘ð¾¾>•Jåïïÿù矫‡=tèvnø|>qoii©———ÎΑKî™&‰\]]ˆ‰ã¸Ç#Ú?üðƒºíëë+ˆöÙ³g'Mš4BmDº-—Ë Fcc#ÑÏãñˆ‚B555šûmä}®÷ÜPózÊÊÊ !Äd2‡´B cÑ¢E<ïñãÇÕÕÕ111!;;»šššºº:WW×wß}÷âÅ‹t:½µµuÒ¤g?ò ½¡ & __ߌÐ9íCBôÛÚÚ®ZµêöíÛ«W¯&z:::Ô#ûùù-\¸h···;99¯ÅfÏžÝÖÖ6ú2º»»U*Õøñ㉛^^^ê%5÷Û3Ä×áeeeÓ¦M#f©TŠaرcÇ„BaBB¼yó„B¡‹‹ËÍ›Ï~»ðöíÛÚCO\„ÐÝ»w‰=\狺ÿ~NNάY³Ö¯_Oô8;;···톆†ŒŒ ¢Íf³Õá‰Duuu£/ÃÁÁÁ`´¶¶7[ZZ\\\ˆ6Nå±3ÄÜ)•ÊíÛ·ÇÆÆ=4-$$¤¼¼\,Ëår&“innÏår+++»ºº¾úê«M›6iµvíÚæææk×®mÙ²eÙ²eÃu>yò„¸ØÒF=zô¨k0„†añññÉÉÉ%%%ÕÕÕUUU¡ØØØ?þ¸±±±±±qÍš5Ä‹-Ú¼ysGGŸÏ Ý»wïµI$Íú™LfdddJJJ[[[ccãÖ­[‰0õô8çþúFýü®””dff&‹Õk•––Ž?ÞØØØ××·²²Çq¹\¾}ûvKKË)S¦9ri]߸»»³Ùìääd©Tª³|ªÙníÙ³çí·ß–Ëå8ŽWTT899 …B™L–ššêììlcc%‰ˆAÄbñŠ+ìììX,ÖªU«úûûu–¡P(¦M›fii9¤¡PËb±œœœÖ­[G<Ü~Îëp]<[¶l‰ŽŽ~¡U4÷µöÍ:ÇÞØ—¡÷ÜÜßýd2YggçÁƒKJJ¨® Ëà®oêëë÷»ßÅÇÇϘ1ãeƱ¶¶NLLMçØ32^†>ÏwÉ’%¡²²2} ô¥¬¬,22RÇÚàÎ7à•¹d@n@†ž_‡×ÖÖΞ=[¿cRÃèt:FuúÑÝÝ­ßõ™›×é“S*íêU'oo!‹%£º=°³³ÓïóYŸ¯Ã_'ee×>üðÈ{ïù¯¢ºC×7ºUT\GˆváÂOOž<¥ºC¹ÑáÑ£¾K—î"„#„Nžl ºC¹ÑáË/ˆ·÷â8~üø5ªË1DÊʾÃ0!„aøwßu½TWdp 7CÝ»×Ãçß'rƒb0è'NÜ ¶$¹ª²ò†‘ѳݢRaÇŽÁT5äf¨cÇ®)Ïþ܇ãø;‚––Ÿ),ÉAn¹sGÐÜü3ñJJÉdœ8ñ=U%&ÈÍ 'N|ol<ôoè …êèÑ«”Ôc° 7Ïà8~üøwr¹Rû®‡E|þý±/É`AnžùþûŽÎNÝ/¹aªróÌ—_ÞDˆfll¤ýŸJ…UTÀ«ñg îó š1Ã×Ȉ¡¾YVvmÊ”ño¼1ޏÉbYRT—!‚–³óº¼¼¸ùó'=Ñ_˜§@ä¹d@n@ä¹d@n@ä¹d@n@ä¹d@n@ä¹d@n@ä¹d@n@ä¹d@n@ä¹d ú¾­sçÎ577SUŠª®®îê‚oE!SSÓ¥K—ÿÿíA?Bo_Û†U^^þ,*šw(•Ê´´´—üÁwðZ V*Ÿ}C/\ß2 7€ È rÈ0¬Ü<|ø088XöôôìØ±céÒ¥sæÌIJJºxñ¢Qä]°.#ÿB"WÕëüÂ[,¯\¹òücZZš¹¹y}}ýßÿþ÷ŒŒŒßÿþ÷cVƒ@ HJJª¬¬DYZZFEE‘$''ÇÉÉ鹋‘Ÿ„×97EEE¿ýío¹\.qÓÝÝ](–––Žen0 ‹ÅDÛÆÆfÕ*2¿Fnkk;nܸç.Fz|^xž >sæL\\Ü‚ Ž9òÍ7ßDEEÍ;÷àÁƒ¡={öìܹ“XR*•†††655!„®\¹’ýÍ7ß „p¯¨¨ˆ‹‹ ûÛßþvãÆ Í³%qò¼|ùrllìÂ… ÷ìÙ£P(tv¢ÁgZÍvmmmxx¸fñqqq6l Ú‰$++ë/ùKDDDnn®\.']uuu\\Üüùó=ª~ÈÚJ¥2//oáÂ… .ÌËËS*•*•ª¨¨(22rÁ‚™™™‰!ô׿þ!´hÑ¢!µ~ëÃùöÛo?øàƒÐÐÐððð#GŽ afí:1 ;zôhlllXXØš5k~üñÇçu-dÎ7ׯ_ÏÍÍ=þ|vvöŒ3 Ï;÷ÏþsñâÅï¾ûî¶mÛT*ƒÁ¸|ù²“““———L&KOOONNž:uj}}ýÎ;§OŸ^]]ýßÿþ÷£>zóÍ7›››333µ7tâĉÌÌ̾¾¾ŒŒ kkëY³fiwÆÅÅÙÚÚ¦¦¦«¨Û‰D(º¹¹ihfffffF´wïÞ- óòò¤RéŽ;ÌÍÍãââB—.]Ú»wï… víÚ5wî\+++Çû÷ï'PTTdmm][[›™™I£Ñ²³³‹‹‹“’’öíÛ·lÙ27䡽ÐÖe2™T*U¯kll<00ðÉ'ŸÌž=;33³¡¡!###,,LçÁÒ®ÓÖÖ¶´´T½ç³³³Id€Ìuqdd¤¹¹yHHB(::ÚÜÜ<44!Ô××7qâD###>Ÿª®® ¡Ñh …Çq©TjllZUUebbR^^ž””Äb±&Ož¼råJí ­^½ÚÕÕÕÏÏoåÊ•gÏž®ÓÂÂbîܹĽê6ñ{%ÄÏ€kS*•çÎKNNvrròôô\±b…zü XZZþéOB©§íÎ3gά]»–Ãáxzz&&&^½zõÔ©Sñññžžž7nô÷÷n¾èÖW®\¦áêÕ«ÆÆÆ………))),‹Ãá „úûûunK»Î“'OjîyrS™ó¹¹9BˆøÇ,Í6BˆN§ÕÖÖzzz^¿~}ýúõ!++«Ï>ûìøñãEEEÞÞÞÑÑÑ“'O^^^ê1===µ7äêêJ4ÜÜÜ=z4B§6+++;;»ŽŽÍãwçÎÿûß»wï‹Å†9;;ý...ê¡Øl¶æ#®³««Ks´°°P(êÚÜÝÝÝÝ݇«M$½ÐÖ‹‹‹]\\† òàÁƒ]»vI¥Ò & ·!u*•ÊçîùçÒÿëð3f\¼xñüùóo½õ–½½=Bh``ðôôôªªª°°°-[¶ôõõ±Ùì––õZíííÚC=xð€hÜ¿ŸÅbЩÓÔ©SKKK5(éìÙ³J¥ÒÄÄÄÎÎŽN§ ¢¿³³“8`h˜S”v§MqqqMMMMMMUUÕ¾}ûX,VWWqosssqqñp…½èÖµ ¤§§/]ºôÀ~øáKj×éèèøÜ=ÿ\úÏM@@€J¥:tè1‘!„h4—Ë­­­íïïW(FFF&&&sæÌÉÍͽ|ù²P(¼zõê´‡ÊÉÉyøðá;w fÏž=\gÿ©S§ˆ{5Û 7oÞüÇ?þqûöíÖÖÖC‡ñx}:Ê:çÏŸ¯¹ç‰4/Jÿ¯ÃétúôéÓ¿þúëéÓ§=ÆÆÆ›7oÞ¿ÿÏ?ÿìì윖–fll©R©öîÝÛÛÛKL½;vì2Ô¬Y³Ö¯_/“ÉfΜCœÌ‡t"„z{{‰«È!m[[Ûäææ¦¥¥I¥R77·ŒŒŒÀÀ@bðµk׿ää$%%1™Ì÷Þ{jôrrr>øà6}úôÄÄD:.“ɸ\®L& LLLD9::¾õÖ[ááá§OŸÖ\ý%·nii¹zõê;v˜™™EGGÏœ9sÆ 999£©“Éd*ŠÜÜÜžžžñãÇoÛ¶xÑ÷BýÞFÓËû( ººº¶nÝ:úU>|¸lÙ²šš7Gèc#88¸´´tÉ’%ÄM=ÏSr¹\ œ9sæÏþ³~GEϹùñÇçÌ™3iÒKý,¥……żyóFÓ (ñ‹ÌSàõóËÎSàWrÈ€Ü2 7€ È Eósw ƒêr€áöswçÎÓüWÔ †æ[|ýý€Q‚ë@ä¹d@nÿ‰¶gØÂUIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadInsertPolicy__coll__graph.png0000644000372000001440000002101112502417165031517 0ustar robertousers‰PNG  IHDRÈÍr÷¨zbKGDÿÿÿ ½§“ IDATxœíy\ÇûÇŸÍÈ!ä¨ ¢@QD{¨ýz”¢”BiE‹V­hAZ¼ñ¦þ´ÞµV¬PðhQ‘jÕŠÕjñ¨GDi¹¹!‰áHȵ¿?ÖW!„+˘÷_³³³Ï~fç“É^ƒá8„º¡Q-Ñ7AÆB2‚±¤ÀP\ …yyy2™Œ*5½]]ÝáÇw?NMMMyyy÷ã F>|¸ŽŽŽŠ2¯‹Ïç×ÕÕ™šš’,¬¯ÑÜÜ\VV¦cUWW755t?yÔÔÔ˜››wÂXÎÎΤIê›TWW?{öL]Ñ 4¼ ®_¿Þn4ÆB2‚±¤€Œ… Ò•ŸŸaÙ{é(‰<¨ª¬zŒUXXÈb±ÔŠ$­Y³†Z=j§­& ª²ê1–L&«««SK(’PTÈb±vìØA­µÓVPUÙ®+==ÝÅÅEGGÇÎÎ.!!ƃ©Tº{÷î#F 8ðÿûß;wˆ­ÏÉŠi±Xnnnnff.‹ÏŸ?oeeÅår 11qĈ‰dóæÍC† 155?>Çkks"xZZšƒƒƒ™™Ù²eËš››*îÇã}ñÅ,ËÚÚ:,,L(†a'Nœprr4hЮ]»ºvdIEuüý÷߇ rìØ1ye[× Çñ˜˜˜7ß|ÓÀÀàƒ>¸pá‚ÚúM\ªªªÌÌL\% ÚÚÚ111‡f0 yyyòPß}÷™™YjjjyyyFF†¥¥%±ŠÇãÅÅÅeÓ;wîœ9sæóçÏÙlöرc###qŸ?þ‚ *++ÍÍÍïܹƒãøîÝ»Ùlö“'OÆÖÖæ„ÜÜܬ¬,{{û¨¨(E…Šiww÷‚‚6›=räȨ¨(âµÏ>ûŒËåÆÅÅ@]]êcÒ‘ãÖA²³³³³³U—i· ˆôG}tíÚµGÉó[×+..ÎÊÊêÒ¥K555W®\±··oa ¥dffVUU©.Óicq8&“¹gÏ.—+“Éêëë¥R©b­FŒqìØ1yùŸþYµVGGÇŠŠ "}åÊWWWǹ\®µµµ‹‹ ÑÒ8Ž;88¤¦¦égÏžÉÓ­7'İÙl"3))ÉÞÞ^©±D"N—7djjª½½=Žã@‘HyyyªI«Ý&P<Šù­ë5räÈ'NÈ#Ÿ>>G±€­­íãÇå‹OŸ>UÅbÉO \.7++ JKK£££§Nºzõj¢˜¥¥eqq1‘~ôèѶmÛTlÄ/rss‰£Ùsss:^XXH,XYYi¥M¥!´ÛJ-êecc£Ø@999êÙéÇa˜‡‡GJJ ŸÏ‰DL&SWW—XÕÐÐK–, OKK«¬¬¼téÒ¦M›ˆµ/_¾Œož1cÆÚµkKJJØl¶§§çÁƒe2Y``àÒ¥K¯^½šžžëׯ'zŠÐÐÐ’’’¶6'ò—/_žŸŸïÞ½uëÖÍ›7OQ¡&“9{öìeË–eggoذÁßß¿³¤çi· :Î×_qùò庺ºk×®EEEQ6xÇq<))iذaZZZŽŽŽiii8Ž‹Åâ‰'êëëã8.‘HvïÞmoo¯§§7aÂâÒ¢³WLóùü… ›˜˜5668p`ôèÑ"‘Çñ³gÏZXXp8¡Pfiiihh8gÎ.—ÛÖæDðøøx‹µtéR@ ¨Pqï' ÀÄÄÄÂÂbåÊ•ÇqPWæ±ðöš ­Cݺ^R©tß¾}Æ 344ôôôLKK355mwï¤ Þ5ÅCÙ3ô¼±ÔEzzú£Gä‹ÉÉÉÄŸ'Õ2xGô%Ølö¼y󽦦ÆÎÎ.00P]‡®ËÌÌ,&&†j½ƒ±uëÖ­[·ª=2ê ¤€Œ… d,) c!HAÉà]ó_˜”#IE"©¾¾µ2:{½[5B¡°ËMÐÌ“jÑÕ(¦Ë¼f,mmm Ãrss©RÓYÒÓóÎË[µê]ggŠŸ_Uýöf§âÔÔÔÔ××wzKê.êp®iÙ®m`šû.;†aÚÚÚí”Á{ó÷±Î{ðÕW t:mçN¿¹sÇS-‡2$BY憢âÌ—[øçhºõ#êt—7@*•……%}óMšLÖ‹$]¦©V|>ðß’|0²ÑÖWAo7ÖС,]ÝWç丸Ÿ~ˆÏP+©‡©yÚ˜2+‡[ Ä¥8™»èS­è½ÛX†õêY+™L–•U0mÚÞ¢¢jUõù—8çsE R™Àå¤Kµ¨WôncÀر¶Læ«ÿA‰¬¢‚çé¹/+«€ZU¤ƒÃß±™Šq Ȥ¯2)ŽŒ¥6\\ÞJÿû$‘H›ššgÍ:tæÌ= U‘ФYvumÑÃø À‡ÿ†•4|…ÂéƲn1f—JeR©tÅŠÄmÛ.ô½á¼€#Éø2·8“‡·º¤`d£M×Ò”7¼{½±lmÿ¿Ë!``,;ÖVK«å½):†a˜ŸßÛ N¤DLÙlcl§4€V=.Á5ÊX}áA?W×!‰T¾H¼f2j”õ®]³FŽ´¢L ˜Öûìô›yœ¿ö–Še¸ôµ‘»‰ƒ¦ŒÜ¡oKqüN§Ó `èè0Oœ26Ö 1‡ÚÀ`øÇƒp~w¹ð¥£½ºÜ 9×Ü 4HJ—±±a À¤Ñ0¢ïËÌŒÐÑanÛvj]d!jÞ‹.·u7ô92ÂØN0 Ã0Ó‘šõ+ê Æ¢Ñ°qãì-ÓÓ—÷ÝçVVƒÖ¯÷9uêÎÇϩ–F WÊ$ø;¡–æ.z¾'ÿiÍÔ£[¼¥)7sz÷Ó *ðó;ØÐМ‘±’FÓ”K;jW$Lù{VÞ÷®¿ßÞUjl§óæ,þ~"ôac98 xoÛ¶ô¾ô¼Cñ5^Ù½ú÷Ö¼iüi¸Ï ÂÃ=qöîýj!j‡û1å¶ï vÕ¬á”Rúì‹àäɬÈÈ3¿ýæä¤üê|ïâeI3]ÓLñ3þ¡K&Ã}|¾×ÓÓ>}ú+ªµô/úrW4öí·ŸÝ¾áÂãöK#ÔG7Œý†Ÿß;QQçššúÎcšOß7¬_ïÓÐÐý;ÕBúýÂX,–þêÕþøãµþó8<åôñÁ»‰Döá‡{ÞxÃ䨱ETké¢)Ž1ô¾ßïSÜ5 Ú7ßø^¾œýûïj› µ¸ûCÙ…àν˜ŽaX~~>Iz:N1Lœ8ÜÇÇuãÆ³"‘„j-¢úIcNj­Ë|s2‚“=¯V?2DE}Z]Í‹ûƒj!íƒËàÖÎRëñvSɈOö¼ZýËXF¡¡îߥ²ò%ÕZÚáßóµœ<ÁøUÖ-ò'L˜°oß>àp84-,, ¤R©±±qFFQæòåËöööÆÆÆÛ·o'r.\¸0fÌ]]] b20ÅIH¡ëŸrî47‹ß{oÛW_ýBµUxâ_Üÿµ·´õª-[¶x{{ã8ž––f``0vìXÇïß¿¯££ÓØØˆã8|üñÇ|>?%%jkkù|¾––V``à‹/Ž?ÕÕÕd´¼ß Çñß~{ba±âöí|ª…´É­Ï{°E’Ö«îß¿¯¯¯/‰V­ZµnÝ:&“ÉårwïÞíååE€ëׯã8.•J //¯¹¹9''§¡¡A*•þñÇD&ÙÆê_]!‡ÇHww§õëS$r¿#Õ5$Yq&ï­ ¦®’O¨3FOOïÞ½{7nÜøä“OÆŒsãÆÌÌLoooybî ù´9ZZZ¹¹¹žžžo½õÖ±cÇz¤ý¯+$(*ª±± ;zôOª…(§¹A"“¶¹váÂ…"‘(22244T__¿¸¸˜X ­æ5ijjÒÖÖNKK“ÉdЋ{{Ó¦³=ù2Oùýú«Üq+¬i̾v±ë?6lðih:ÔCß,•IðÛ;K‡L4´™lØ3{ìI±þÃÔtàÊ•ÌN¬®|¤‰C«d¬6ñôåææ¸iÓYÅù»CÝ¿‚¬ïÊø¥Íj‰¦á c©âÿþÏ77·êĉ,5ÄÂáÖÎRSgÝ›¨!šÆƒŒ¥Š¡CM/ž¼cG‡ÓØÍPù—8ÕOþ·æÖwõI±ÚaÅ mmæîÝ»DÔ ½³¯l„‰æÌÙL6ÈXí ¯¯½aÃÇ ·=êúÌ<WJD²wBûæmA¥ cµÏŒo½û®Ý¦Mçºv—‚W,Ì>Y=öK‹ƒúÑu|d¬öÁ0lË߇KRSÿîÂæ šÃ§&γ4zN%µƒîv”ÈÈ3/>¹ysÕZzèŒÕQ"#½¥RÙ?\¡ZHï«£éFDxÅÅý‘Ÿ_Mµ–^ê ;A/ý¦75÷…$ÕØÚÚR]õ®Àdš1}ÿÒyxxx7Û—²?ÀÅÅÅ+W®œ0aUmñÝwßw3•WVÆïççG¡„RΜ9Óý hðŽ d,) c!H A ý×Xùùùjü<¤Ú¿ˆ×AÔ[ 5Òî·“ÍíÛ·‡Ú;*,,|÷ÝwkkkÀÈÈhÍš5=°Ó΂Œ¥6LMMIœóHʼn»X,1é’¦¡Ñ]!†aGŽqrr255ݱcGBBÂСC 7nÜË–-[´èÕ­•††]]݇@zzº‹‹‹ŽŽŽ]BBÈd²èèh''§N˜0!33S±û z“´´433³eË–577+̈́׻žŽtCçÏŸ·²²âr¹˜˜8bÄˆÆÆF‰D²yóæ!C†˜ššÎŸ?ŸÇã…Åbqxx¸¹¹¹™™Yxx¸X,V*Cqâ.E <ï‹/¾`±XÖÖÖaaaB¡8†'Nœprr4hЮ]»ÔÔ2@-÷gº$%%µ[fΜ9|>?>>fÍšÅçóccc ¶¶ö?þ011‹Å8Ž?~ÜÙÙY&“544hkkÇÄÄTTT>|˜Á`444ÄÆÆš™™¥¦¦–——gddX[[€|Î"ááá‘›››••eoo¥4ÇqGÈSLÀ£Gê_‡X5þü TVVš››ß¹sÇñÝ»w;;;³Ùì'OžŒ7.,,Œ(¹sçΙ3g>þœÍf;622R…6bÅ´¿¿¿»»{AA›Í9r$!>ûì3.—uuuí6ŸŸŸŸŸ_Ç›RyÛusû®ï¸cÆzðàŽã"‘¨E://O"‘ <ø÷ßÇqÜËËkÇŽ8Žs8&“¹gÏ.—+“Éêëë¥R©³³ó±cÇäaþùçÖÆb³ÙÄÚ¤¤${{{¥™ª¥¶õ£år¹ÖÖÖ...DKã8îààššJ¤Ÿ={&O;::VTTé+W®¸ººªÐFäÈÓ"‘ˆN§gggù©©©„`ÈÌÌT}Bä”””È#;99ùúúéââb âå´iÓŠŠŠ:.£ªªJ*•6ŒX´··——$&“·žAÓ¥??¿³gÏž>}zâĉD'd2Ù™3g8΢E‹|||8Ž••ÕãÇå[=}ú´u(â§¹¹¹DK´•ÙYJKK£££§Nºzõj"ÇÒÒR~—÷Ñ£GÛ¶m#Ò,KîN.—›••Õqæææt:½°°X,((°²zõî†|~¹ž¤wkÒ¤I‰dË–-D†a)))|>_$1™L]]ÝÀÀÀððð´´´ÊÊÊK—.EFF¶µ|ùòüüü{÷î­[·nÞ¼yme¾|ù’ðµH@MMMåë€L& \ºtibbâÕ«WÓÓÓ `ýúõÙÙÙÙÙÙ¡¡¡%%%D„3f¬]»¶¤¤„Íf{zzXVL·ul80zôh‘H„ãøÙ³g-,,8ŽP( ³´´444œ3g—Ë%‚ðùü… ›˜˜566*•!‹'Nœ¨¯¯ßB‡Ã 011±°°X¹r%!¸­ã¦‚¾?xïëÖ­›;wn§6i1¤Ò)!Éž'²ƒP"C-ÆêÅH…Bayyù‘#G©Ö‚hI/cݹsçí·ß |ÿý÷»ÇÀÀ 88¸#™=†È蔽LaXRRÒ¬Y³(Ù;BD£œ>}º;Azñ ¡É c!H A ÈXR rð>jÔ(só¾0ŽcBယ¨¢ž}Y ±ºÅ¹s˜Lº|±¬ŒûèQù«ÛM±ºŽT*;sæ¾Xüß%ƒ~îÜ %iÈX]çîÝ¢ºº×ž–H¤))÷Ô5©S¯«ë´è 8œ¦¿þʧDFŒÕEÄbijêÅ~€Á ¥¦¢ÿ†ÈX]åúõ•Ì<(‘ÈΟ(Iz^’FŒÕEΞý›ÁP~ô‚æk×rzX¦ŒÕE®^Í‘H”ßrÆq@ÆB7¡»HVVAMM=‘¾¿8.îØØòµ..oØØôýÏÁ« ¿þE-ãÇ“§qââþðñqUQ¾¿ºB) c!H A ÈXR@ÆB2‚±¤€Œ… d,) c!H A ÈXR@ÆB2‚±¤€Œ… d,) c!H A ÈXR@ÆB2‚±¤€Œ… d,) c!H A ÈXR@ÆB2‚±¤€Œ… d,) c!H A êù¸mrrrlll÷ãôRêë ÊʬŸQ-„2ttt<8dÈyŽz>n{úôéÇ;;;«%Z¯cÀ޽=GÒç ¸páB@@€úÎÎΛ7oVW4Dïâúõë-rÐ A ÈXR@ÆB2‚úޱÊÊÊÜÜÜÔÍMŸo¾ù†ÇãuV‰››[YY™º$)EQ§··÷Úµk+**Ú¦Þc¥”¾c,µ’’’œœ¼gÏžššš~øjEŸ~ú©bŽ\çþýûqß¶m[»AôõõçÌ™CšFd, 4ÈÄÄÄÁÁ!((èîÝ»T+Éd|>_1G®ÓÞÞ>,,ìéÓ§MMMªƒ‘)³gåæævñâÅ LŸ>ýäÉ“—/_ž3gŽ··÷‘#GàÀ»ví"J OOϼ¼<¸}ûö¢E‹<<<æÎ{ùòeÀqüìÙ³ ,ðòòúúë¯>|¨xb'Îó·nÝ ðõõ=pà€X,Vš ¯w *::nllL¤ÿúë¯/¿üÒÓÓsæÌ™'Ož™LvêÔ©€€//¯ÐÐМ%“º¹¹]½zuÁ‚Ÿ|òÉ©S§ˆÌÖU‰Dãëëëëë#‘Ha<˜={ö¼yó`ÆŒJuÒh4J¥ÐÐаcÇŽO?ýÔÏÏïСC"‘¨Å!"J=ztöìÙÓ§Oß¾}{CCƒŠ†è=}Æúûï¿:÷×_>|8$$$!!ÏçO™2åÖ­[ÄA¹uë–………½½½P(ŒŠŠš>}:Ñr»ví …¿üòËâÅ‹æÏŸ¿}ûöÖ;:wîÜöíÛ¿ýöÛ;wîͯ4ÓÈÈ(,,ŒX«˜¡P(šššJKKããã§M›MMM›6m>|øñãÇCBBâââx<^JJJRRRPPPBBB@@@LLŒÒºÿùçŸ Ž­¯¯WZ5HNN®¨¨ˆÝ»w=Jl~úôéÈÈÈøøxHMMm­³¼¼üûï¿wpp8p ìß¿¿¦¦&&&fçÎ÷îÝKLLl-)99ùÆÛ·oß·o_iiéñãÇ@iCtª•¡ç5{öl]]]˜;w®®®®§§'Ô××9’Á`°Ùl¸zõª‡‡†ab±Çq@ ¥¥åé陞ž®­­’’²dÉ’I“&™˜˜Œ7nñâÅ­wbmmíää´xñâ+W®´•©§§çííM¬ULÀâÅ‹½¼¼¼½½çÏŸŸ››ëîîZZZ‡^¶l™‰‰‰™™466ž?^QO[½ÌôéÓõõõ?üðCàóùJ«/^\¾|¹™™™]pp°¼  3fŒŽŽN‹°r ,àóù7n‰DríÚµ¥K—ZXXØÙÙ-\¸P~ÉÈÈ ´³³:tèš5kˆ›rJ¢#«HOO„©«« £Eh4Ú¤I“nܸagg÷÷߯^½¸oß¾äää£GŽ1bîÜ¹ãÆ«¨¨Pü ÙÙÙµÞ‘µµ5‘2dHMMŠÌ¶8~ü¸••477'''¯ZµêÔ©S ãÅ‹{öìÇ'JÖÔÔ´«X,–b}•V *++gΜ)ßJOOO®YµNE¸\®L&³´´$­¬¬”Ö·ªªJ~Lllllll †è,š5xÿý÷oÞ¼yýúõQ£F™šš@ss³L&‹ŠŠJOO÷òòZ·n]}}=‹Å*((oU\\Ü:Ô‹/ˆDii©‰‰‰ŠÌvÑÖÖööö®®®æñxÍÍÍQQQŸþùO?ý´bÅ ¢ÀàÁƒÛÕ-~÷J«†††ÇÏÌÌÌÌÌLOOÿñljòrGvccc&¿ôP^^Nغ&&&•••D:??Ÿè AYCtÍ2–‹‹‹T*ýù矉¾0 ¿qãFcc£X,f0ÚÚÚ}ôÑ¡C‡nݺÅápîÞ½ûÓO?µ]VVöÏ?ÿȇGJ3322ˆµŠiàñx‡ÃáTWW'&&𙙉Åb‰DÂ`0D"1úijjúä“OõÿEÚEiÕ`Ò¤IqqqUUU………çÎk½­@ PœÁ`¸¹¹ýðÃEEE‡ž:ujëbñññEEEEEEû÷ﯪª"ò[7DgѬ9¡i4ÚäɓȢŽý²IDATûí·É“'9ZZZk×®­®®¶´´Ü¼y³––ÖìÙ³¥RéÁƒy<1Ùºuk‹PS§N]½zµP(tww÷÷÷':‚™ÀãñöìÙC ­ÓJ$0 :thTT†aúúú!!![·n0`ÀܹsÝÝÝ#""RRRÄbñ¡C‡êêê† ¶qãÆ¯¾úªÝÊ*­,Z´(::úË/¿Ä0lòäÉÁÁÁµµµò­Eüýý…Baxx¸P(?~|ppp[ ÑYÔó ß¬Y³jjjÔòØL|||eeå† :¾IYYÙ¼yó233•.ªÈD¨ S áææ–””4kÖ,yŽu…"‘¨¢¢ââÅ‹ü1ÕZú5ji 2VNNNppðG}äêêÚ8zzz>>>ÉD(E- ¡q]!¢7¢Ñ]!¢/Œ… d,) c!HAmHËËË/\¸ ®hˆ^®V­ZEu=TB§ÓÿüóOEK¨çrÑ4ÆB2‚±¤€Œ… …ÿ„CéwdäIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_45.png0000644000372000001440000000520712502417165024024 0ustar robertousers‰PNG  IHDR“3›­¬bKGDÿÿÿ ½§“ }:+]¡;;»„„öGþIBBÂ,u•••8¥ð¿9NW^^>+ý£ A­V‹ Rûœ¥B)g©PÊY*”r–Ê\T®«« A mË3Ý£˜‹Êý7ptt<{öìxg¥R)“ÉœJ~J¹é‚ÉdfffŽwV¯× M%ÿ_*‡ È­[·üýýY,Vffæ;w<==.\˜––HMM=|ø0úI…BÁ`0ÚÛÛ> °³³[¾|ù;wÐ\¿~ÝßßÁ‚¡¡¡uuu†+ ºàˆD¢+V°ÙìÔÔT•JE®NX966öÔ©ShP¥R999ÕÔÔ=zÄ`0/^Œ›_Ò<FÃãñ-ZÄf³y<žF£1>E†u‰ ¸ººþÕôÏPââââââàD8Ž\./,,ÄÇÇËåòüü|Ààà`CCƒ‹‹‹F£–””¬ZµJ¯×+ [[Û¼¼¼/_¾Ü¼ysÞ¼y …"??ŸÍfWUU ÔÔÔ¸»»$ Ú1´ÕÙÙ)‹½½½ÓÓÓIƒ‘‘‘‚‚´{XùÞ½{ÿüó^¯‡ŠD¢%K–h4¹\N£Ñ¸\n___II àû÷ï¸FÑ<†åË—/ïÚµ«···££#88øÜ¹s¤3CÌC:pÃ̶̦@ ÀqǦ+×ÖÖ!T«Õ¸²D"Ñjµ®®®ÏŸ?‡nÛ¶-33B8<|xèÐ!Fëì쌎Ž^»vmQQ‘‘1BÛ¹»»{ñâÅ‚ ùùóç &è_Hnb]#L×J\\Üýû÷ËËËÃÂÂÐ5P©TêõúŠŠŠáááÇÇÄÄ »¹¹½}û«õþý{b*ôë èìì\²d‰‘ )G(VWW¯]»Õ[©TÆÇÇóx¼¶¶¶ÜÜ\ÒZèsÂþþ~,Âd2% ú}—Édb±ØÄ© ¸‰u0]ÊmذA«Õfddìß¿ UYY)—ËÕjµ ƒÁàr¹<O$}ýúõñãÇçÎ#¦:yòdWW׫W¯.\¸°oß¾ñ‚?þD7]\9**J&“ñù|.—‹FT*•Z­¦ÑhJ¥’ÏçFGG±æÅÅÅr¹<;;‹ïܹóüùó===ÑÑÑ999&NéÀÑS …ÂÄ$$àVOÓ÷9ì 8^ùèÑ£t:].—cµ——Fóóó‰DBµZ‘‘áééiooz÷î]@Øç =<<˜Læ‰'”J%iŽ¿?A“““ííí ÉÊÊrvv^ºtinn.‡Ãa³Ù†U.^¼èèèèåå%‰° \.?tè“““‹‹KrròØØéÌî—Äk4š°°0{{û §š÷ Å.\¸˜˜8©*¸'ÝÆ'µ·ÿ7 UïÏ™…ß¿ ܺu«¬¬l:òS€iÚçZZZÖ­[Çår7nÜ8•<)))¦gdf¨uøçû–ñññÊŸS "Pi0¨ç––Ê´(7ƒC¡Pœ9sÆÓÓ“N§ûøøðùüß¿›«c‚øøøà–™­[·"ÒÕÕezžYñ¡p̹ß܉'ÚÚÚ*++{{{oÞ¼)‰x<žówwwÞûËd²/^L6‰qgf˜sÊ=xðàÒ¥KÁÁÁ,+<<<;;»ººÚŒù7oÞ\QQVWWGDDL6‰qgf˜FåJKK½¼¼X,Ö±cÇ~ýúEüÀ?ˆq‡ÜÜ\Ì» ïééAËDŸÅ¸ID úN"¶` …ÂÝ»wcgIÝAJKKýýý¯\¹Æ7Ñr2>F󀻿3Ë8z³¼iÓ&̈Áy"­­­III,k``W÷É“'nnn¶¶¶‘‘‘W¯^íîîÆN}R“ÈHÇ?~tuumoo‡ŽŒŒ0ŒÁÁA€D"!uÐZ»wï–Éd€¡¡!ã>”a‹µµµè÷L*•þõ|‚{†B4b<==!„J¥²¸¸xýúõAAAùùù£££¤ÕµZ­X,ÎÈÈX½zµµµuii)'ú,¤&‘‘Ž¡ ?~µ{JJJ"##±8©ûƒž­««ƒ6–q ×h?ŸÏwww‰‰yòä‰N§›ÄTþÛíU}œ!|ûö­úíKJJjiiA­N" …¢¬¬L«Õ¢‡z½>--ÍÍÍ =´³³3\-.\H§Óß¼yƒUGw#Cç½¾¾ÞÛÛ[¯×ÇÆÆæççCƒÇ­"‘(,,,00õƒ0å>}úd˜§n¤¤M«ÕjÔ9ñõõííí5e »mNnB ‹µråÊæææ¦¦¦‘‘Ò*ÂÄÄÄwïÞ¡‡‚lÙ²{1›è³˜b mll¬­­ÅâFÜ㎚)–Ó·oßÞ¿ß××L§ÓMé§q¦Q¹Ó§OcFÌÁƒ׬YSWWWUUõéÓ'__ß#G޼~ýWÅÞÞþÀ{öì©©©‘J¥ÍÍÍgΜáp8èY¢Ï2žITXXøóçÏñ:fmm½k×®”””õë׳Ùl,nÜý1©…¢×ëŸ>}ºcÇŽaSSSYYÙßúú?¸ß WË{÷î-[¶ŒÍfŸ>}Z¥R~@&“eeeyyy^€ hµÚôôô€€:¾lÙ²³gÏbkÑg!5‰àŸf“!X¼¾¾““ƒ‹ÝHfc÷¡ [ …!!!¥¥¥¸˜`†]ž Ñétè[Fæ›PÀÐÐ3OØâx¨Õê©·BªÜ´¸<&beee–72ˆ„‡‡;;;OGæÉ‚½›cv¦ªÜxw¾pVÿåzM?Ì¢å4UåfW!è½ÔL¶Èf³óòòf²EŒ9÷Ü’ÂD(å,J9K…RÎR!¹B‘J¥7nܘù®PLÜýö7KskkëÆÆFœRøw¿(,jŸ³T(å,J9K…RÎRùÚ)aVxAúIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/mystring_8h_source.html0000755000372000001440000030316212502417162024705 0ustar robertousers MySQL++ Reference Manual
mystring.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_MYSTRING_H)
30 #define MYSQLPP_MYSTRING_H
31 
32 #include "common.h"
33 
34 #include "datetime.h"
35 #include "exceptions.h"
36 #include "null.h"
37 #include "sql_buffer.h"
38 
39 #include <string>
40 #include <sstream>
41 #include <limits>
42 
43 #include <stdlib.h>
44 #include <string.h>
45 
46 namespace mysqlpp {
47 
48 #if !defined(DOXYGEN_IGNORE)
49 // Doxygen will not generate documentation for this section.
50 
51 namespace detail
52 {
53  template<typename T, bool is_signed = std::numeric_limits<T>::is_signed>
54  struct conv_promotion;
55 
56  template<>
57  struct conv_promotion<float>
58  {
59  typedef double type;
60  };
61 
62  template<>
63  struct conv_promotion<double>
64  {
65  typedef double type;
66  };
67 
68 # if !defined(NO_LONG_LONGS)
69  template<>
70  struct conv_promotion<unsigned long long>
71  {
72  typedef unsigned long long type;
73  };
74 
75  template<>
76  struct conv_promotion<long long>
77  {
78  typedef long long type;
79  };
80 # endif
81 
82  // preserve existing behaviour, char converted as signed long
83  template<>
84  struct conv_promotion<char>
85  {
86  typedef long type;
87  };
88 
89  // all other types use signed/unsigned long
90 
91  template<typename T>
92  struct conv_promotion<T, true>
93  {
94  typedef long type;
95  };
96 
97  template<typename T>
98  struct conv_promotion<T, false>
99  {
100  typedef unsigned long type;
101  };
102 } // namespace detail
103 
104 class MYSQLPP_EXPORT SQLTypeAdapter;
105 #endif // !defined(DOXYGEN_IGNORE)
106 
138 
139 class MYSQLPP_EXPORT String
140 {
141 public:
144  typedef const char value_type;
145 
147  typedef size_t size_type;
148 
150  typedef const char* const_iterator;
151 
155 
156 #if !defined(DOXYGEN_IGNORE)
157 // Doxygen will not generate documentation for this section.
158  typedef int difference_type;
159  typedef const char* const_pointer;
160  typedef const_pointer pointer;
161 #endif // !defined(DOXYGEN_IGNORE)
162 
167  String() :
168  buffer_()
169  {
170  }
171 
179  String(const String& other) :
180  buffer_(other.buffer_)
181  {
182  }
183 
196  explicit String(const char* str, size_type len,
198  bool is_null = false) :
199  buffer_(new SQLBuffer(str, len, type, is_null))
200  {
201  }
202 
210  explicit String(const std::string& str,
212  bool is_null = false) :
213  buffer_(new SQLBuffer(str.data(), static_cast<size_type>(str.length()),
214  type, is_null))
215  {
216  }
217 
225  explicit String(const char* str,
227  bool is_null = false) :
228  buffer_(new SQLBuffer(str, static_cast<size_type>(strlen(str)),
229  type, is_null))
230  {
231  }
232 
234  ~String() { }
235 
242  void assign(const char* str, size_type len,
244  bool is_null = false)
245  {
246  buffer_ = new SQLBuffer(str, len, type, is_null);
247  }
248 
255  void assign(const std::string& str,
257  bool is_null = false)
258  {
259  buffer_ = new SQLBuffer(str.data(),
260  static_cast<size_type>(str.length()), type, is_null);
261  }
262 
269  void assign(const char* str,
271  bool is_null = false)
272  {
273  buffer_ = new SQLBuffer(str, static_cast<size_type>(strlen(str)),
274  type, is_null);
275  }
276 
281  char at(size_type pos) const;
282 
285  const_iterator begin() const { return data(); }
286 
288  const char* c_str() const { return data(); }
289 
290 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
291 // Squish VC++ warning about "possible loss of data" for these conversions
292 # pragma warning(disable: 4244)
293 #endif
294 
297  template <class Type>
298  Type conv(Type) const
299  {
300  // Conversions are done using one of double/long/ulong/llong/ullong
301  // so we call a helper function to do the work using that type.
302  // This reduces the amount of template code instantiated.
303  typedef typename detail::conv_promotion<Type>::type conv_type;
304  return do_conv<conv_type>(typeid(Type).name());
305  }
306 
307 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
308 # pragma warning(default: 4244)
309 #endif
310 
317  template <class T, class B>
319  {
320  if (is_null()) {
321  return Null<T, B>(null);
322  }
323  else {
324  return Null<T, B>(conv(T()));
325  }
326  }
327 
333  int compare(const String& other) const;
334 
340  int compare(const std::string& other) const;
341 
350  int compare(size_type pos, size_type num, std::string& other) const;
351 
357  int compare(const char* other) const;
358 
369  int compare(size_type pos, size_type num, const char* other) const;
370 
373  const char* data() const;
374 
376  bool empty() const { return size() == 0; }
377 
380  const_iterator end() const;
381 
384  bool escape_q() const;
385 
387  bool is_null() const;
388 
390  void it_is_null();
391 
400  size_type length() const;
401 
407  size_type max_size() const { return size(); }
408 
411  bool quote_q() const;
412 
417  size_type size() const { return length(); }
418 
421  void strip_leading_blanks(std::string& s) const
422  {
423  const char* pc = data();
424  if (pc) {
425  size_type n = length();
426  while (n && (*pc == ' ')) {
427  ++pc;
428  --n;
429  }
430 
431  s.assign(pc, n);
432  }
433  else {
434  s.clear();
435  }
436  }
437 
445  void to_string(std::string& s) const;
446 
449  {
450  return buffer_ ? buffer_->type() : mysql_type_info::string_type;
451  }
452 
454  String& operator =(const std::string& rhs)
455  {
456  buffer_ = new SQLBuffer(rhs.data(),
457  static_cast<size_type>(rhs.length()),
459 
460  return *this;
461  }
462 
467  String& operator =(const char* str)
468  {
469  buffer_ = new SQLBuffer(str,
470  static_cast<size_type>(strlen(str)),
472 
473  return *this;
474  }
475 
481  String& operator =(const String& other)
482  {
483  buffer_ = other.buffer_;
484 
485  return *this;
486  }
487 
492  template <typename T>
493  bool operator ==(const T& rhs) const
494  {
495  return compare(rhs) == 0;
496  }
497 
501  bool operator ==(const mysqlpp::null_type&) const
502  {
503  return is_null();
504  }
505 
510  template <typename T>
511  bool operator !=(const T& rhs) const
512  {
513  return compare(rhs) != 0;
514  }
515 
519  bool operator !=(const mysqlpp::null_type&) const
520  {
521  return !is_null();
522  }
523 
530  char operator [](size_type pos) const { return at(pos); }
531 
533  operator const char*() const { return data(); }
534 
536  operator signed char() const
537  { return conv(static_cast<signed char>(0)); }
538 
540  operator unsigned char() const
541  { return conv(static_cast<unsigned char>(0)); }
542 
544  operator int() const
545  { return conv(static_cast<int>(0)); }
546 
548  operator unsigned int() const
549  { return conv(static_cast<unsigned int>(0)); }
550 
552  operator short int() const
553  { return conv(static_cast<short int>(0)); }
554 
557  operator unsigned short int() const
558  { return conv(static_cast<unsigned short int>(0)); }
559 
561  operator long int() const
562  { return conv(static_cast<long int>(0)); }
563 
566  operator unsigned long int() const
567  { return conv(static_cast<unsigned long int>(0)); }
568 
569 #if !defined(NO_LONG_LONGS)
570  operator longlong() const
573  { return conv(static_cast<longlong>(0)); }
574 
577  operator ulonglong() const
578  { return conv(static_cast<ulonglong>(0)); }
579 #endif
580 
582  operator float() const
583  { return conv(static_cast<float>(0)); }
584 
586  operator double() const
587  { return conv(static_cast<double>(0)); }
588 
590  operator bool() const { return buffer_ ? atoi(c_str()) : false; }
591 
593  operator Date() const { return buffer_ ? Date(*this) : Date(); }
594 
596  operator DateTime() const
597  { return buffer_ ? DateTime(*this) : DateTime(); }
598 
600  operator Time() const { return buffer_ ? Time(*this) : Time(); }
601 
605  template <class T, class B>
606  operator Null<T, B>() const { return conv(Null<T, B>()); }
607 
608 private:
610  template <class Type>
611  Type do_conv(const char* type_name) const
612  {
613  if (buffer_) {
614  std::stringstream buf;
615  buf.write(data(), static_cast<std::streamsize>(length()));
616  buf.imbue(std::locale::classic()); // "C" locale
617  Type num = Type();
618 
619  if (buf >> num) {
620  char c;
621  if (!(buf >> c)) {
622  // Nothing left in buffer, so conversion complete,
623  // and thus successful.
624  return num;
625  }
626 
627  if (c == '.' &&
628  (typeid(Type) != typeid(float)) &&
629  (typeid(Type) != typeid(double))) {
630  // Conversion stopped on a decimal point -- locale
631  // doesn't matter to MySQL -- so only way to succeed
632  // is if it's an integer and everything following
633  // the decimal is inconsequential.
634  c = '0'; // handles '.' at end of string
635  while (buf >> c && c == '0') /* spin */ ;
636  if (buf.eof() && c == '0') {
637  return num; // only zeros after decimal point
638  }
639  }
640  }
641  else if (buf.eof()) {
642  return num; // nothing to convert, return default value
643  }
644 
645  throw BadConversion(type_name, data(), 0, length());
646  }
647  else {
648  return 0;
649  }
650  }
651 
652  RefCountedBuffer buffer_;
653 
654  friend class SQLTypeAdapter;
655 };
656 
657 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& o,
658  const String& in);
659 
660 
661 #if !defined(MYSQLPP_NO_BINARY_OPERS) && !defined(DOXYGEN_IGNORE)
662 // Ignore this section is MYSQLPP_NO_BINARY_OPERS is defined, or if this
663 // section is being parsed by Doxygen. In the latter case, it's ignored
664 // because Doxygen doesn't understand it correctly, and we can't be
665 // bothered to explain it to Doxygen.
666 
667 #define oprsw(opr, other, conv) \
668  inline other operator opr (String x, other y) \
669  { return static_cast<conv>(x) opr y; } \
670  inline other operator opr (other x, String y) \
671  { return x opr static_cast<conv>(y); }
672 
673 #define operator_binary(other, conv) \
674  oprsw(+, other, conv) \
675  oprsw(-, other, conv) \
676  oprsw(*, other, conv) \
677  oprsw(/, other, conv)
678 
679 #define operator_binary_int(other, conv) \
680  operator_binary(other, conv) \
681  oprsw(%, other, conv) \
682  oprsw(&, other, conv) \
683  oprsw(^, other, conv) \
684  oprsw(|, other, conv) \
685  oprsw(<<, other, conv) \
686  oprsw(>>, other, conv)
687 
688 // Squish more complaints about possible loss of data
689 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
690 # pragma warning(disable: 4244)
691 #endif
692 
693 operator_binary(float, double)
694 operator_binary(double, double)
695 
696 operator_binary_int(char, long int)
697 operator_binary_int(int, long int)
698 operator_binary_int(short int, long int)
699 operator_binary_int(long int, long int)
700 
701 operator_binary_int(unsigned char, unsigned long int)
702 operator_binary_int(unsigned int, unsigned long int)
703 operator_binary_int(unsigned short int, unsigned long int)
704 operator_binary_int(unsigned long int, unsigned long int)
705 
706 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
707 # pragma warning(default: 4244)
708 #endif
709 
710 #if !defined(NO_LONG_LONGS)
711 operator_binary_int(longlong, longlong)
712 operator_binary_int(ulonglong, ulonglong)
713 #endif // !defined(NO_LONG_LONGS)
714 #endif // !defined(MYSQLPP_NO_BINARY_OPERS) && !defined(DOXYGEN_IGNORE)
715 
716 
717 #if !defined(DOXYGEN_IGNORE)
718 // Doxygen isn't smart enough to recognize these template
719 // specializations. Maybe it's the MYSQLPP_EXPORT tags?
720 
726 template <> MYSQLPP_EXPORT bool String::conv(bool) const;
727 
740 template <> MYSQLPP_EXPORT String String::conv(String) const;
741 
743 template <> MYSQLPP_EXPORT std::string String::conv(std::string) const;
744 
750 template <> MYSQLPP_EXPORT Date String::conv(Date) const;
751 
757 template <> MYSQLPP_EXPORT DateTime String::conv(DateTime) const;
758 
764 template <> MYSQLPP_EXPORT Time String::conv(Time) const;
765 
766 #endif // !defined(DOXYGEN_IGNORE)
767 
768 } // end namespace mysqlpp
769 
770 #endif // !defined(MYSQLPP_MYSTRING_H)
const_iterator iterator
Same as const_iterator because the data cannot be changed.
Definition: mystring.h:154
Declares classes that implement SQL &quot;null&quot; semantics within C++&#39;s type system.
Type conv(Type) const
Template for converting the column data to most any numeric data type.
Definition: mystring.h:298
size_t size_type
Type of &quot;size&quot; integers.
Definition: mystring.h:147
void assign(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign a C string to this object.
Definition: mystring.h:269
Holds SQL data in string form plus type information for use in converting the string to compatible C+...
Definition: sql_buffer.h:41
C++ form of SQL&#39;s TIME type.
Definition: datetime.h:347
C++ form of SQL&#39;s DATETIME type.
Definition: datetime.h:48
Declares classes to add SQL-compatible date and time types to C++&#39;s type system.
SQL field type information.
Definition: type_info.h:148
const char value_type
Type of the data stored in this object, when it is not equal to SQL null.
Definition: mystring.h:144
Null< T, B > conv(Null< T, B >) const
Overload of conv() for types wrapped with Null&lt;&gt;
Definition: mystring.h:318
static const enum_field_types string_type
The internal constant we use for our string type.
Definition: type_info.h:270
String(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Full constructor.
Definition: mystring.h:196
String(const String &other)
Copy ctor.
Definition: mystring.h:179
The type of the global mysqlpp::null object.
Definition: null.h:49
Declares the MySQL++-specific exception classes.
const char * c_str() const
Return a const pointer to the string data.
Definition: mystring.h:288
mysql_type_info type() const
Get this object&#39;s current MySQL type.
Definition: mystring.h:448
void strip_leading_blanks(std::string &s) const
Returns a copy of our internal string without leading blanks.
Definition: mystring.h:421
C++ form of SQL&#39;s DATE type.
Definition: datetime.h:225
const_iterator begin() const
Return iterator pointing to the first character of the string.
Definition: mystring.h:285
String(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
C++ string version of full ctor.
Definition: mystring.h:210
const char * const_iterator
Type of iterators.
Definition: mystring.h:150
bool empty() const
Returns true if size() == 0.
Definition: mystring.h:376
size_type max_size() const
Return the maximum number of characters in the string.
Definition: mystring.h:407
String()
Default constructor.
Definition: mystring.h:167
This file includes top-level definitions for use both internal to the library, and outside it...
void assign(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign a C++ string to this object.
Definition: mystring.h:255
~String()
Destroy string.
Definition: mystring.h:234
Declares the SQLBuffer class.
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
void assign(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign raw data to this object.
Definition: mystring.h:242
size_type size() const
Return number of bytes in string.
Definition: mystring.h:417
A std::string work-alike that can convert itself from SQL text data formats to C++ data types...
Definition: mystring.h:139
String(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Null-terminated C string version of full ctor.
Definition: mystring.h:225
mysql++-3.2.2+pristine.orig/doc/html/refman/sql__types_8h_source.html0000755000372000001440000011035512502417162025213 0ustar robertousers MySQL++ Reference Manual
sql_types.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2006-2009 by Educational Technology Resources, Inc.
10  Others may also hold copyrights on code in this file. See the
11  CREDITS.txt file in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_SQL_TYPES_H_MAIN)
32 #define MYSQLPP_SQL_TYPES_H_MAIN
33 
34 #include "common.h"
35 #include "tiny_int.h"
36 
37 #include <string>
38 
39 #if !defined(MYSQLPP_NO_STDINT_H)
40 # include <stdint.h>
41 #endif
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 // Suppress refman documentation for these typedefs, as they're
47 // system-dependent.
48 
49 // Define C++ integer types that are most nearly equivalent to those
50 // used by the MySQL server.
51 #if defined(MYSQLPP_NO_STDINT_H)
52  // Boo, we're going to have to wing it.
53  typedef tiny_int<signed char> sql_tinyint;
54  typedef tiny_int<unsigned char> sql_tinyint_unsigned;
55  typedef signed short sql_smallint;
56  typedef unsigned short sql_smallint_unsigned;
57  typedef signed int sql_int;
58  typedef unsigned int sql_int_unsigned;
59  typedef signed int sql_mediumint;
60  typedef unsigned int sql_mediumint_unsigned;
61  typedef longlong sql_bigint;
62  typedef ulonglong sql_bigint_unsigned;
63 #else
64  // Assume a system where C99 is supported in C++ in advance of
65  // actual standardization, so we can do this portably.
66  typedef tiny_int<int8_t> sql_tinyint;
67  typedef tiny_int<uint8_t> sql_tinyint_unsigned;
68  typedef int16_t sql_smallint;
69  typedef uint16_t sql_smallint_unsigned;
70  typedef int32_t sql_int;
71  typedef uint32_t sql_int_unsigned;
72  typedef int32_t sql_mediumint;
73  typedef uint32_t sql_mediumint_unsigned;
74  typedef int64_t sql_bigint;
75  typedef uint64_t sql_bigint_unsigned;
76 #endif
77 
78 // Now define typedef equivalencies for the other standard MySQL
79 // data types. There aren't serious portability issues here.
80 typedef float sql_float;
81 typedef double sql_double;
82 typedef double sql_decimal;
83 typedef std::string sql_enum;
84 typedef std::string sql_char;
85 typedef std::string sql_varchar;
86 typedef std::string sql_tinytext;
87 typedef std::string sql_text;
88 typedef std::string sql_mediumtext;
89 typedef std::string sql_longtext;
90 
91 // Aliases to match the rules MySQL uses in translating data types
92 // from other database servers into its own type system. From:
93 // http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html
94 typedef sql_tinyint sql_bool;
95 typedef sql_tinyint sql_boolean;
96 typedef sql_varchar sql_character_varying;
97 typedef sql_decimal sql_fixed;
98 typedef sql_float sql_float4;
99 typedef sql_double sql_float8;
100 typedef sql_tinyint sql_int1;
101 typedef sql_smallint sql_int2;
102 typedef sql_mediumint sql_int3;
103 typedef sql_int sql_int4;
104 typedef sql_bigint sql_int8;
105 typedef sql_mediumtext sql_long_varchar;
106 typedef sql_mediumtext sql_long;
107 typedef sql_mediumint sql_middleint;
108 typedef sql_decimal sql_numeric;
109 #endif // !defined(DOXYGEN_IGNORE)
110 
111 } // end namespace mysqlpp
112 
113 #endif // !defined(MYSQLPP_SQL_TYPES_H_MAIN)
114 
115 
116 // The following sections are treated separately to avoid making the
117 // #include tree too dense: if mystring.h (for example) is not yet
118 // #included, no sense pulling it in to define all the typedefs based
119 // on String. The separate #include guards for each section allow
120 // this file to be #included as many times as necessary to build up the
121 // full typedef set. This trickery is necessary because sql_types.h
122 // is needed in a few places within MySQL++, but we can't (and don't)
123 // depend on having the full set of typedefs. mysql++.h #includes this
124 // at a late stage, ensuring that end-user code does see the full set.
125 #if defined(MYSQLPP_MYSTRING_H) && !defined(MYSQLPP_SQL_TYPES_H_MYSTRING) && !defined(DOXYGEN_IGNORE)
126 # define MYSQLPP_SQL_TYPES_H_MYSTRING
127  namespace mysqlpp {
128  typedef String sql_blob;
129  typedef String sql_tinyblob;
130  typedef String sql_mediumblob;
131  typedef String sql_longblob;
132  typedef sql_mediumblob sql_long_varbinary;
133  } // end namespace mysqlpp
134 #endif
135 
136 
137 #if defined(MYSQLPP_DATETIME_H) && !defined(MYSQLPP_SQL_TYPES_H_DATETIME) && !defined(DOXYGEN_IGNORE)
138 # define MYSQLPP_SQL_TYPES_H_DATETIME
139  namespace mysqlpp {
140  typedef Date sql_date;
141  typedef Time sql_time;
142  typedef DateTime sql_timestamp;
143  typedef DateTime sql_datetime;
144  } // end namespace mysqlpp
145 #endif
146 
147 
148 #if defined(MYSQLPP_MYSET_H) && !defined(MYSQLPP_SQL_TYPES_H_SET) && !defined(DOXYGEN_IGNORE)
149 # define MYSQLPP_SQL_TYPES_H_SET
150  namespace mysqlpp {
151  typedef Set<> sql_set;
152  } // end namespace mysqlpp
153 #endif
154 
155 #if defined(MYSQLPP_NULL_H) && !defined(MYSQLPP_SQL_TYPES_H_NULL) && !defined(DOXYGEN_IGNORE)
156 # define MYSQLPP_SQL_TYPES_H_NULL
157  // We have null.h, so define nullable versions of all the above
158  namespace mysqlpp {
159  typedef Null<sql_bigint> sql_bigint_null;
160  typedef Null<sql_bigint_unsigned> sql_bigint_unsigned_null;
161  typedef Null<sql_bool> sql_bool_null;
162  typedef Null<sql_boolean> sql_boolean_null;
163  typedef Null<sql_char> sql_char_null;
164  typedef Null<sql_character_varying> sql_character_varying_null;
165  typedef Null<sql_decimal> sql_decimal_null;
166  typedef Null<sql_double> sql_double_null;
167  typedef Null<sql_enum> sql_enum_null;
168  typedef Null<sql_fixed> sql_fixed_null;
169  typedef Null<sql_float> sql_float_null;
170  typedef Null<sql_float4> sql_float4_null;
171  typedef Null<sql_float8> sql_float8_null;
172  typedef Null<sql_int> sql_int_null;
173  typedef Null<sql_int1> sql_int1_null;
174  typedef Null<sql_int2> sql_int2_null;
175  typedef Null<sql_int3> sql_int3_null;
176  typedef Null<sql_int4> sql_int4_null;
177  typedef Null<sql_int8> sql_int8_null;
178  typedef Null<sql_int_unsigned> sql_int_unsigned_null;
179  typedef Null<sql_long> sql_long_null;
180  typedef Null<sql_longtext> sql_longtext_null;
181  typedef Null<sql_long_varchar> sql_long_varchar_null;
182  typedef Null<sql_mediumint> sql_mediumint_null;
183  typedef Null<sql_mediumint_unsigned> sql_mediumint_unsigned_null;
184  typedef Null<sql_mediumtext> sql_mediumtext_null;
185  typedef Null<sql_middleint> sql_middleint_null;
186  typedef Null<sql_numeric> sql_numeric_null;
187  typedef Null<sql_smallint> sql_smallint_null;
188  typedef Null<sql_smallint_unsigned> sql_smallint_unsigned_null;
189  typedef Null<sql_text> sql_text_null;
190  typedef Null<sql_tinyint> sql_tinyint_null;
191  typedef Null<sql_tinyint_unsigned> sql_tinyint_unsigned_null;
192  typedef Null<sql_tinytext> sql_tinytext_null;
193  typedef Null<sql_varchar> sql_varchar_null;
194 
195  // Also do nullable versions of optional sql_* types, where possible
196 # if defined(MYSQLPP_SQL_TYPES_H_MYSTRING)
197  typedef Null<sql_blob> sql_blob_null;
198  typedef Null<sql_longblob> sql_longblob_null;
199  typedef Null<sql_mediumblob> sql_mediumblob_null;
200  typedef Null<sql_tinyblob> sql_tinyblob_null;
201  typedef Null<sql_long_varbinary> sql_long_varbinary_null;
202 # endif
203 # if defined(MYSQLPP_SQL_TYPES_H_DATETIME)
204  typedef Null<sql_date> sql_date_null;
205  typedef Null<sql_datetime> sql_datetime_null;
206  typedef Null<sql_time> sql_time_null;
207  typedef Null<sql_timestamp> sql_timestamp_null;
208 # endif
209 # if defined(MYSQLPP_SQL_TYPES_H_SET)
210  typedef Null<sql_set> sql_set_null;
211 # endif
212  } // end namespace mysqlpp
213 #endif
This file includes top-level definitions for use both internal to the library, and outside it...
Declares class for holding a SQL TINYINT.
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadFieldName__coll__graph.png0000644000372000001440000002023512502417165030726 0ustar robertousers‰PNG  IHDRÅ͇ #ÊbKGDÿÿÿ ½§“ IDATxœíy\GÿÇgsrH©  ‚ ¢=ÐÖ³(Bé#*ZQ°"B±ˆUñFlU´ö©Xñ¯¢"*—H½¥êOÅ#JËÈ I „\ûûc}¥B¸6„yÿ5;³ûÝÏÎ|²3ÙkE‚$¢@Ô è'ž@?Aðú ‚'ù@PXX(•J‰R3pÑÖÖ5jTïãÔ××WUUõ>NŸB"‘F¥¥¥Õ¾è?q¹ÜÆÆFccãþ¦&´¶¶VVVâ⧺ºº––==½Þ‡ê;êëëMMM;÷†½½}ßKR+êêê^¿~W4===o‚?ÿü³£"8~‚à ôO Ÿ xýÁ“>÷SQQ‚ }½—n¡‚’úŽ~>X|üTRRB£Ñp ÕGÈ+400ذa±zp§£&èçƒÅÇOR©´±±—P}„¼B¶{÷nbõàNGMÐÏÛ?eff:::jiiYYY%&&&Mš>|8@"‘ÄÄÄŒ=zèС_|ñÅDZ­äO¼òi‘Hnjjjbb.‰.^¼hnnÎf³III£Gnnn‹ÅÛ·o1b„±±±ŸŸ‡Ãéhs,xFFƘ1cLLLBCC[[[åÊïÃá|ûí·4Á`„…… ‚ §OŸ¶³³6lØÞ½{{V³}Šò&ÀðæÍ›#FŒ8qâ„ì`ÛŠ¢qqqcÇŽÕÓÓûòË//]ºÔÛΕ£¶¶6;;U ÇÓÔÔŒ‹‹«®®>zô(…Báñx………²P?ÿü³‰‰IjjjUUUVV–™™VÄápâãã±uäÓ{öì™?þ›7o˜LæÄ‰###Qõóó[¶lYMM©©éÇQ‰‰±··g2™/_¾tvv ëhsLŒ««kAAANNŽMTT”¼Bùô’%K\\\Š‹‹™L¦ƒƒCTTö@Ø‚ Ølv||< ±±Qyt¥ÞºH^^^^^žòu:m,=gΜ[·nåææÊòÛW||¼¹¹ù•+Wêëë¯_¿nccÓÆ ÉÎή­­UXÔm?±X,*•ºoß>6›-•J›šš$‰üÁŒ=úĉ²õOž<©\¢­­muu5–¾~ýº““Š¢l6›Á`8::b Œ¢è˜1cRSS±ôëׯeéö›cb˜L&–™œœlcc£ÐOB¡L&ËÚ/55ÕÆÆEQVB¡PXX¨¼NúÙO6| Èç·?.‡Ó§OË"Ÿ9s¦—~êvghh˜““Ã`0¦OŸ~÷î]éƒ NNN²EGGGåËÊÊèt:‚ ‚Ìž=»´´```øêÕ«àà`lµòòrÙ 2;;;///%›d+ÛÚÚ¾}ûVá®kkk%‰µµ5¶hcc#[;­R©Ô®ÔI?Ói`ØÚÚ¶Ïls\ÅÅŲұcÇöR[·ýÄçó¥RéùóçY,ÖŠ+<==Y,–ü –––/^¼-¾zõJy@&;°Ù윜@EEEllì¬Y³Ö¯_­fffVVV†¥ssswíÚ¥dsö»`•ØSSS2™\RR‚-›››ci…-¤"tÚ  mŽËÂÂB¾òóó{©­Ûµ† ˆ««kJJ —Ë …T*U[[+âñx€ï¾û.<<<##£¦¦æÊ•+Û¶mÃJß½{—Ð>=oÞ¼7–——3™L77·C‡I¥RÿÕ«W'%%ݸq#33àëë»yóf¬; )//ïhs,Íš5EEE?Þ´iÓÒ¥KåÊ R©‹- ---ÍËËÛ²eË’%Kº[!ýO§MÐu¾ÿþûˆˆˆk×®566Þºu+**ª¿Çã(Š&''[[[khhØÚÚfdd (*‰¦L™¢««‹¢¨X,މ‰±±±ÑÑÑ™_^¡üÞY,–¯¯¯‘‘N_»v-ŸÏGQÈ™€êŸÐΚ £ªn\‰äÀÖÖÖúúúnnnÆÆÆîÏñ¸ê#_ƒýCÿû /233ssse‹.\Àþ)Ïñ8D`2™K—.}öìYKKKNNÎÖ­[zPÁót==½   ¢U """ZZZæÎ[__oeeåïïß˪SC?™˜˜ÄÅÅ­b`@¡P¢£££££ñ û;ž@?Aðú ‚'ÐOþÎ7ßærùÄJêgê_5§,Ìg P J¢ ¦ŽºÄêØ~Bdܸ÷Ï6I¥ÒœœâÙ³÷—–Ö«ªß(ºÂºè_ äI¤bP@³Ó&VÒÀö`âDK*õý?±XZ]Íqs;“SL¬ª>OTgo)CÅ@*yßËK%(ôSoqtüH"ùçïŒX,iii]¸ððùó TÕ§ˆ[¥76–>O¨(@Á?CF„Œ 5„@a@-üÄh3 —H¤‰ä‡’víº¤~#t>Kœµ² ,›ƒ¶»&``¡IÖ ø½çï'Kˆä2°ç¾x‚Ï"¬/`—Ò–æ7üÍGÅm'$2bâ¨Cˆªd- · boOWX$•¢üÁŒ!x0ÔÃOòCr2™|þü ÑÒú„çGk¤bôÓ3SG¯3¶_D2¨:dúÇßiÁØÏ(ÁÛûך•µ–DR«OÑqJ)ßäOZ˰ÿF?¯ç'…DGÏýºJý®’ßß[ah¥5v¡Š~ Pmý4fÌp_ßÏwíÊT§'Ênq*7}¾á#DUOºjë'@x¸Š‚ýû¯-'Pð$®Êr†Áp'•*)DmÇOgÎäDFž¿z5ÌÎNñ5ôÅ»òV²&¢;œàçå• æ~’JQOÏ_tt4Ï[E´–A:÷w ùñÇ÷ï]ºô¢óµ!½FÍý?þ#oïO£¢Ò[ZÔçA•EýýؼٓÇk½I´õgPø‰FÓ]¿þ_¿ývkð—!Kÿõ¯}}dtâÄ ¢µt!OB"#”!æg?`„ö …´c‡×µky7oâ6‘f?ðè×ÊKAÝ{]A¢¢¢>ÒÓ)ƒÅO€)SFyz:mÝš&ЉÖÒ%ê^6ç§68ú™öEð>šÂiù õïº:n|üm¢…t*÷öT0&éYÍ2ì‹ø}4…ÓàònâòË/×kjÞ­¥þ¾ØÀ*äOZÇh“?yòäX,‰D H$CCì¬,lk×®ÙØØþôÓOXÎ¥K—&L˜ ­­M§Ó±é¦äçÂ>:< hm}þù®U«~'Zˆ2øÑï3_<Ø_ѾhçÎ(ŠfddèééMœ8EÑ'Ožhii577£( øê«¯¸\nJJ  ¡¡Ëåjhhøûû¿}ûöÔ©S€ººº>úªö óŠ¢W¯¾¤Ó¸¿ˆh!roÏ›S®La³¸}Ñ“'Otuu…Báºuë6mÚD¥RÙlvLLŒ»»;¶àÏ?ÿDQT"‘ [[[óóóy<žD"¹}û6–ÙG~\ý†««ƒ‹‹ÝæÍ)bqß~'©gˆùÒ²lÎÇÁtª¶‚/ƒM˜0AGGçñãÇwîÜùúë¯'L˜pçÎììlÙ:Ø|5²©Z444 ÜÜÜ>þøã'Nô­zÜ: (-­·°;~üÿˆ¢˜VžX*é°tùòåzzzB¡0222$$DWW·¬¬ +í&ÕhiiÑÔÔÌÈÈJ¥|>ÀóîXZÒV®œ¾gÏx~ª/4tÈHÇ-ãîîþÛo¿9;;S©T—'NXXXXXXt´~kk«P(ÔÐÐàóùÛ·oȾ‡ï—Á`û'Ï?Ì2„ºgÏD é6³gÏÓ§O|þùçB¡P¾³kÁþýû—,Ybkkkii¹xñb777KKË)S¦Ðé8?6Xî·($-íÙêÕ§23˜0aÑZÔ„Aí'Àüù±B¡äâÅÐÞÎû æþc×®ù/^¼¹pá ÑBˆé€„ì~²µ¥ûú~Éå ”Q÷²¹©Š°Çý:ú³ÖƒPƒÝO€ˆˆ9R)úË/„½#¢Ù[ËýZI”~úúÚ6¸'$ÜÉϯ&DÀ‹“5- ¢IkÕáS0ÐOàã3iÜ8Æöíéý¿ë¦*á‹ãµNß×1UÝ· ºôHÈÎ^÷îþñ³Ÿwýè¿•:éã—õÉCNýôÓ{>þØrÁ‚O¶mKëÏ×`ªž4•Ü`;ÿÀ QÕäjôÓ?lÙâÉã î§ïmJÅèý=#¦è[LÓïŸ=öÐOÿ`lƒC,ÜÛSal¯=ú+#¢©*ÐOÊ9Ò8 `ÚîÝY,Vs/C]aÕ½ä}±á£öSC©ÐOðîššÔ˜˜Ë½ "äI¨íiDøü¾} ôS'èêjnÙòUbâýÜÜžÏóühX(ý4D­nÕ)ú©sæÍûø³Ï¬¶mKïÙ½N™ ïLÝÄ•ô!ÃÔÿj;ôSç ²s§×óçå©©O{°9E‹4æßFö UqúÜ÷ïºJdäùË—_Þ½»IOO‹h-ª ôž@¥šP(ê|#<<¼gÍJØ?ز²²µk×Nž<™(ŽøùçŸËÊÊz¶-‘WD&MšäííM ˆBΟ?ßãmáx‚'ÐO<~‚à ôO¯ŸŠŠŠpüÆ!^ßwë.øEïQÿ;ÞýÆýû÷GŽÙ;*))ùì³Ï6lè‡vè'Ü066ÆzEÈO E£Ñ°ù}T•îï9v옱±ñîÝ»GŽ©¯¯¿uëV@hhèŠïï{ðx+òóó[¶lYMM©©éÇQ‰‰±··g2™/_¾tvv ÃÖܳgÏüùóß¼yÃd2'Nœ©D¶‰|zÉ’%...ÅÅÅL&ÓÁÁ X°`›ÍŽ466vÚ4ÞÞÞÞÞÞ]oÊš¬g›õž.úéÙ³g(Š …Â6éÂÂB±X<|øð›7o¢(êîî¾{÷nEY,•JÝ·o›Í–J¥MMM‰ÄÞÞþĉ²°'Ožlï'&“‰•&''ÛØØ(ÌT.µ£ß*›Íf0ŽŽŽX£(:f̘ÔÔT,ýúõkYÚÖÖ¶ººK_¿~ÝÉÉI‰6,G– …d29//ËOMMŲ³³åëMy£½ó“J÷w€¡C‡¨Tj›4€L&Ï›7/55µ¡¡áÆK–,fggçää0ŒéÓ§ß½{—D"•””899Éb:::¶ßѨQ£°„­­íÛ·o•dvDû¦Âò _½zŒå”——Ë"ÛÙÙyyyaé²²2:Žý7œ={viii×eÔÖÖJ$kkklÑÆÆF¶&6Ý”¬ÞúU÷“r¼½½ÓÒÒÎ;7eʬãóùR©ôüùó,kÅŠžžž,ËÜÜüÅ‹²­^½zÕ>öC` ÐQfw©¨¨ˆ5kÖúõë±333Ù ×ÜÜÜ]»vai&3%›ÍÎÉÉéº SSS2™\RR‚-››¿ýA6qY?0°ý4uêT±X¼sçN___,AWW×””.—+ ©Tª¶¶¶¿¿xxxFFFMMÍ•+W"##Û‡Z³fMQQÑãÇ7mÚ´téÒŽ2ß½{‡ æÚ¤õõõ5J¥þþþ«W¯NJJºqãFff&À××wóæÍyyyyyy!!!åååX„yóæmܸ±¼¼œÉdº¹¹:tH‰¶6SCQ©ÔE‹…††–––æååmÙ²;a÷7=ë&{èÚø©ÍTníÓß}÷Ý!C¸\®l«äädkkk [[ÛŒŒ E…BáÎ;GŽ©««;yòä3g΀vã§„„ ¶zõj>Ÿ¯0ýpü+Ÿî¨n<8~üx¡Pˆ¢hZZNg±X ,,ÌÌÌL__ñâÅl6 Âår—/_nhhhddØÜܬP†H$š2eŠ®®n ,Ë×××ÈȈN§¯]»ÜQ½)AmÇã]aÓ¦M>>>ÝÚ¤ÍT‚ gì£é» !2zã§|=S TUU;v,))‰h-÷ àñÓÇ?ùäÿ3fô&Žžž^PPPW2û‘Ñu{Aäää… ²wˆ°F9wî\¶Àç'ˆ ýÁè'ž@?Að„Èñø¸qãLMÕaž.E‚!C†´-^¾|9mÚ´žÇ »þ´nÝºŠŠ ¢öŽ/UUº¥¥úŸ~Z£¡!!Z L›6­Çÿ»á÷ pÀÅ%&?¿jËÏU«¾$Z ÁÀñSo)+kÈϯ\¸Ð“¯©ÐO½%%å •JüõWÕß×-‡` ŸzËÙ³D")€B!_¼øœh9ýÔ+˜ÌŠÊJ6–‹%çÎ=äãQè§^‘žþŒJ%Ë++Ù¹¹jò§µg@?õ‰Dzþü‘èŸk 9=ý’ú©çßÍÍ­°°pÿþý+V¸ººúøø\»v €¢hZZÚ²eËÜÝÝ¿ÿþûçÏŸËŸð±óÿ½{÷|}}½¼¼<(‰f‚; %™L644ÄÒ}zøðáÀÀÀøøø=z488811‘ËåNŸ>ýÞ½{‰pïÞ=:ncc#¢¢¢æÎ‹UîÞ½{AVVÖï¿ÿ˜˜èçç÷ÓO?µßQzzúO?ýôã?>|øPV³í3 °Rù4@ ðùü–––ŠŠŠ„„„Ù³gZZZ¶mÛ6jÔ¨S§NÇÇÇs8œ”””äääÀÀÀÄÄD__߸¸¸6Ad`G'ãÂ… ÕÕÕGŽÙ¿ÿ³gÏŽ?.+R“D"EFF>}úôêÕ«òÑjë´Ú•Ëè:ÄøiÑ¢EÚÚÚ®®®mmm777@SS“ƒƒ…Ba2™€7n¸ºº""‰Påóùnnn™™™ššš)))ß}÷ÝÔ©SŒŒœÚï(88˜Á`ØÙÙ\¿~½£L¬T> pww÷ðððóó+((pqqhhh=z444ÔÈÈ»¹ÔÜÜ|ñâEy=òÝDÆ£GäE^¾|yÍš5&&&VVVAAAò¥Jb F``àÁƒëêêd™ µuZíÊetbÆOÚÚÚ …Ò& ‘HS§N½s玕•ÕÓ§Oׯ_:tè.\¸püøñÑ£Gûøø8;;WWWÛØØÈbZYYµßƒÁÀ#FŒ¨¯¯W’Ù§N277´¶¶^¸paݺugÏž¥P(o߾ݷoŸÏ5j¶f}}}GzdAdTVVÊÒ555óçÏ—-êèèÈÒJbbxyyݹs'&&fÍš5XŽBmJª]¹Œ®£Šãñ3fDGG[ZZŽ7ÎØØÐÚÚ*•J£¢¢ÄbñÍ›77mÚ”žžN£ÑŠ‹‹­­ßÏ“YVVÖ>ÔÛ·o±6¨¨¨022R’Ù)ššš G[[;*****jòäÉ"‘èòåË€áÇwªG!úúúÀ ÇãñX,–¬¨Ó˜‚lذÁßßÿÒ¥KXNkkk{m½”ÑuTñú“£££D"9yò$vf ~çÎææf‘HD¡P455çÌ™søðá{÷î±X¬Gýïÿk*66¶²²ò¯¿þ’ }f677geea¥òi‡Ãa±X,«®®.))ÉÄÄÄÀÀ@$‰Åb …" ±qFKKË×_-¯G6Î픩S§ÆÇÇ×ÖÖ–””DDD¤§§ËŠº“N§Ënò+ÔÖK]GÏO$iÚ´iW¯^6m–£¡¡±qãÆ#GŽÔÕÕ™™™mß¾]CCcÑ¢E‰äСCëò£££Û„š5kÖúõë‹‹Ë’%K°Þ­M&€ÃáìÛ·6ɧ!!!XA‘#GFEE!¢««=dÈ—ˆˆˆ””‘HtøðáÆÆFkkë­[·®Zµª+Ç»bÅŠØØØ•+W"2mÚ´   ††¬hîܹ]‰éééy÷îÝ'OžjKKK댮ˆoþÏ?mß¾½÷Ï«$$$ÔÔÔlÙ²¥ë›TVV.]º4;;[ᢒLHÙ±c‡±±±üóO*×ß …ÂêêêË—/õÕWDkt•óS~~~PPМ9sœœz5ý¼ŽŽŽ§§gW2!8¢¢ýd@0ú;È€ú ‚'ÐO<ËÖÕˆFIDAT~‚à þ×3Ÿ>}Êãñp QAªªª°bÿ€âŠìV+d°~ýzyà|½2Èã'ž@?Aðú ‚'ÐO<ù±_/ˆ‹É8IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SelfTestFailed__inherit__graph.png0000644000372000001440000001344012502417165032042 0ustar robertousers‰PNG  IHDR­»˜B‰’bKGDÿÿÿ ½§“ÕIDATxœí{TgúÇŸ$Ü0!ÜR«ÜY”zºÝEŽ—Êb9Ô®ž"X(`‹‚ì*ý¹Ûº­¢UkÑ]ÏVZ±ÁÛbU­ÊZq±¬"`U h-·¢*Iä–ÛûûãÝ“F"d¨y?Çãyç™÷òw¾3ï;“a††‚ÉC§ZaR@|@ > `ˆfÆi¦©©ippÐ8m=OÐét///++«‰nÈH>èèè˜6m𥥥qš{nxðà““Óóãàp8l6ÛhÍ=\¼xÑ8 ‘ù€ø€€!> 0¿V477Óh4ªU<Æ$”4z&µZ[[Y,Õ*FB[¡½½ýûï¿O­ƒ™Ô>P«Õ===T« m…,k÷îÝÔê1˜IäƒÒÒÒ€€+++ww÷œœ˜7o8;;€J¥Ú³g··÷Ô©SçÏŸ_SSƒKiŸµÓ …‚Ëå:99±Ùl.—«P(JJJÜÜÜÄb1œŸßÙÙyæÌWWW¼J"‘ðx<œG;ýÙgŸEDDÜ»wO ¼üòË|ðB(>>>!!¡««ËÉÉ©¦¦!´gÏ@P__˜––6\q,&44´±±±ººÚÓÓ3==][¡v:666$$¤¥¥E Ìž=;==!‘‘‘b±˜Çã@OOϳ÷Ûx1Y| ‰ÌÍÍ÷îÝ+‹Õju__ŸJ¥ÒîYooï£Gjò;vldûúú …Bœ>þüܹsBb±˜Ãáàƒòññáóù8}ûömMZ·8#p077×ÓÓS¯är9ƒÁhhhÀq>Ÿïéé‰€ŠŠ œšššžÖm¦ç„Ð¥K—"##mll.\xöìYôø6eÊ”ºº:Mæ7nŒìƒ'îÉÛÙÙáøöíÛ †FŒ••U}}ýhŠc1R©g¸y󦕕•^´··kçVVV!øñÇqp²ù`²Ì¤R©Z­>}ú´H$JLL\¶l™H$ÒÎ0sæÌ›7ojoݺ5r…,KÓÑb±¸ººÚÛÛ333—,Y²qãFœÍÕÕµ­­ §ëêêvîÜ9BqÀ;ñؤ‹““ƒÁhmmÅ‹---nnn8M§O–‚É"‹F£…††ôööÊårssskkk¼ª¿¿Ö®]Ëår‹‹‹»ººþýïoÙ²¯}ôèQvv¶nzÅŠ~øáÝ»wAXXØ_|¡V«ß}÷Ýõëןúè£ØØØ‰ëºñÁç4ºó[nn®‡‡‡………¯¯oqq1BH¡P,X°ÀÖÖ!¤T*÷ìÙãééicc„PôøØ¡îíí}çw˜LfRRÒÀÀÀþýû_zé%¹\Ž*,,tqq‰D2™,--ÍÕÕÕÎÎ.::Z,WWžýâ‹/²X¬õë×K¥Rm…Ú­‹D¢¸¸8&“éââ²aà 0Äâ†ø€@|@ÀˆâñC|@ > `ˆÄ ñ€ø€€!> 0Äâ†ø€@|@ÀˆâñC|@ > `ˆÄ„ÿaÀ7`¹\.ÕªÇKËtº5Õ*ÆY³f°O y?R[[Û¼yóþú׿Žû6ž‘+W®ìÛ·Ï€‚¾'ë…^X¹r¥ae ‡Áo»"óñC|@ > `~­>hnn¦ß›Oiú¯ÊG`|·âY0Å÷êꥪªjÖ¬YFh¨µµõ÷¿ÿýÇÀÞÞþý÷ß7B£O…øà8:::;;¡!µZÝÓÓƒÓ,k÷îÝFhô©Là¸@£Ñ>ìçççèè¸{÷œY³fÙÙÙ}üñÇššš˜˜ˆsö÷÷[[[߸qJKK¬¬¬ÜÝÝsrr@­VgffúùùM:5((¨¢¢Bû\ŠO­ÅÅÅ>>>l6;55uhhHo?æœ\RRâææ&‹àäÉ“ÞÞÞJ¥rëÖ­3fÌpttŒ—H$8³B¡àr¹NNNl6›Ëå* ½2æÍ›ØsÚ$ɪU«X,‡ÃIKK“Éd¸¿þúk??¿éÓ§gddŒÓžÑ‡÷ W®\¹råʧf€èèèÞÞÞììlxë­·z{{<>üî»ï˜L¦B¡@?~Üßß_­V÷÷÷[ZZfee …ÂC‡™™™õ÷÷|X^^ ÕÕÕçÕW_ýïÿK§Ó[[[çÎý奸º yyyᄯ¯ïýû÷G‡n㸽½}RRÒ­[·RRRpäîÝ»ššýüüÂÃÃqº­­ÍÅÅ_k¼öÚk?ýôÓèetww«T*¼èéé©ÉéêêªÝo•×+W®,,,ÌËË[°`>ÛK¥RµZ}úôi‘H”˜˜¸lÙ2‘Häæævóæ/ßʹuë–nUøÀ€ÆÆFÜqÃÇJ{{{ffæ’%K6n܈#®®®mmm8]WW·sçNœf±X3‰ÅâêêêÑËprrb0­­­x±¥¥ÅÍÍ §ét£ì#Î!£4ý¢7­T*Ùl¶““Ó‘#Gð*©Tjee•ŸŸÿàÁƒ¯¾úÊÊÊJ*•îÚµ‹Íf …²²2½óƒààদ¦ÚÚZ//¯-[¶è ¢çUUUÂÇA©Tª%K–|òÉ'"‘ÈÙÙ¹¤¤!´uëÖ€€€úúúúúúùóç¯Y³W’ššÙÖÖvóæÍÀÀÀuëÖ  Ï?´Çˆ˜˜˜ÖÖÖúúz,x¸>ŽI:?Ù¡µk×N™2¥··WS*77×ÃÃÃÂÂÂ××·¸¸!$—Ë·oß>kÖ,[[Û   'Nèú ;;ûÅ_d±Xëׯ—J¥zƒèñ~×Nw„ìß¿ÿ¥—^’Ëå¡ÂÂB‘H$“ÉÒÒÒ\]]íì좣£Åb1®¤··÷wÞqpp`2™IIIze(Š ØÚÚ>¡A$ÅÅÅ1™L— 6`ÁσFÃæÍ›cbbÆTD»ïtGãË0Ø”ÝG’Éd‡>yò$U(›'ÖÔÔ¼òÊ+ï¾ûîâÅ‹Ÿ¥žiÓ¦%''&h|&‰ŒÑ`È÷ÚÞzë-ÈËË›=„g"///**Ê€}úký½‘0¾ˆâ€ÁÏTVV¾öÚkã+…*Ôj:®¦ZÅøÐÝÝmXAC|ð<ýå‚JE«­uñö1™2ªµŒ†Ÿ¦þï¼¼«ÿ÷'þð¿ãÇ“¨ÖB%¦>?(,¼@ûî»=¤Z •˜´<è»t©@IIÕr¨Ä¤}ðÍ7uøñ@„P~þUªåP‰Iû /ï{µ€Z¾ÿþ®P(¡Ze˜®îÝëÚ±€Á Ý V…˜®Š‹o˜™ý²ù*•úôiÓL×§O_U(~¹}„ºsGØÒò3…’(ÄD}p现¹ùg|¥ ÁÜœQTt*IÔb¢>(*ºnañä½T…BuêT-%z(Ç}€ÊÏÿ^.Wê®êè íÆ—D9¦èƒë×ïvvê¿D4Ù¡Á}ðÍ77hfºÿT*ua¡)^=šâß½/^ìkfÆÐ,æå] òxá…éx‘É´¥H•˜úïàêº!++aùò¹OÏúübŠãAâñC|@ > `ˆÄ ñ€ø€€!> 0Äâ†ø€@|@ÀˆâñC|@ > `ˆÄ ñ€ø€€!> 0Äâ†ø€@|@ÀžxŠ\.?uê”Lö<|‰`L”——wu™Ö›ÒBCCgΜù˲öG= (ÓE0.ÑÑÑÃ~ÏU©T@EEEÚFbÛ¶mx_k óñC|@ > `&Ý{4;::Þ~ûíñš«J¥Ò£GVVVŠD"GGÇØØX ‹‘›FíÚµëÒ¥KeeeÿùÏ>ùäÝÌ<ÏÓÓÓIÁÁÁºA½Û«Ñ3¦>1¬'Æ—Ï?ÿ¼»»{ûö펎Ž÷îÝûüóÏûúúRSSG.ÕÓÓS^^ž›› óçÏÇ—ÓB¡pݺušKëiÓ¦RƒP(\»vmqq±&’™™éââòÔ‚¶¶¶ÑÑÑ£låyÎ}péÒ¥ŒŒ ///°··OMMݹsçS}044l6,-----@*•ÀôéÓǪA­V÷ööjGìííGS]R’‘¾*iÈü 88¸¬¬,!!áÍ7ß|öïߟ‘‘sJ¥Ò°°°¦¦&¨ªªJLL ‰‰ùöÛo!TXX˜°téÒ¿üå/7nÜÐ>gvtt_¾|9...<<|ÿþý …BoP“Y» N[[[ivC@@>Ê@©Tfee…‡‡‡‡‡geei_OÿùÏ€+VŒÜzkÐÝÌQÖvåÊ•5kÖ„……EDDœ8q≠¡QµZ}êÔ©¸¸¸¥K—®[·î‡~¹!½8O¼víÚ’’’x<Þ•+W:”’’’““ÓÛÛûꫯ^¾|Y¥RÀåË—]\\<==e2Yzzú›o¾‰gddÈd²3gÎüë_ÿZ½zuNNN||ü§Ÿ~ªÛPQQѧŸ~ºk×®ššÜ;zƒöööiiix­všËå^¿~=22’Ëåæææjþ8??_(üðÃþüóÏ®®®[·nµ°°ˆŠŠR©T_|ñ…D"Á£ÝŽ;ž¨jÉ’%7n”Édøž€D"Ù»w/žh§7mÚ”““Ããñ:::‚ƒƒW­Z…kNLLÌÌÌ\³f F[´hQrròÇÇ´™º5èÝLggç9sæDDDœ={v¸ªlmmSRRvìØ1eÊ”˜˜˜M›6effަQsss…BqàÀžž?þ_¡Œ‰Ç¾Ç’——5.÷ò²³³»ºº>úè£ÑyâF˜Þûbã{·ÑdÙ¶m›££c^^ž&2þã‚\. …eeeüãǽrÂ1þ>øá‡’““_ýõ¹sŸé‹G666Ë–-MðìLÔ¸@˜Ìc\ ü!> 0Äâæ±û‰ †ypŠðœñ§?ýI{ñ±ëF™LvöìYüèáùæ·¿ý­ö/“ä;ß2? `ˆÄ ñàÿó¸âÓm²,ÕIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/tcp__connection_8h.html0000755000372000001440000000514212502417162024612 0ustar robertousers MySQL++ Reference Manual
tcp_connection.h File Reference

Declares the TCPConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::TCPConnection
 Specialization of Connection for TCP/IP. More...
 

Detailed Description

Declares the TCPConnection class.

././@LongLink0000000000000000000000000000016100000000000011563 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer_3_01MYSQL__RES_01_4.htmlmysql++-3.2.2+pristine.orig/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer_3_01MYSQL__R0000755000372000001440000000731412502417164032734 0ustar robertousers MySQL++ Reference Manual
mysqlpp::RefCountedPointerDestroyer< MYSQL_RES > Struct Template Reference

Functor to call mysql_free_result() on the pointer you pass to it. More...

#include <result.h>

Public Member Functions

void operator() (MYSQL_RES *doomed) const
 Functor implementation.
 

Detailed Description

template<>
struct mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >

Functor to call mysql_free_result() on the pointer you pass to it.

This overrides RefCountedPointer's default destroyer, which uses operator delete; it annoys the C API when you nuke its data structures this way. :)


The documentation for this struct was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1FoundRowsOption__coll__graph.png0000644000372000001440000001366112502417165031617 0ustar robertousers‰PNG  IHDRÅ»ZrÍbKGDÿÿÿ ½§“fIDATxœíÝyTSWð›…@(KØÑ¶T uw€£"ÈRª£Uk@D‡Z­à8X7NGOµÊ±lëÌ´*¨¨U£jÅ -nT "jÙ\X¢ €IHB¶7¼N³öÊ úûœžž—›—{ïæË{//1¡À„Nuà…y8AžN'€“’Q?¾{÷nJ†~Iøúú~õÕW}?.’×wÑÑÑ—/_ êû¡_eee”<³ÔìŸBAAAÙÙÙTþbËÎÎŽ‰‰¡dh88AžN'€ä àôòæ©®®ŽF£aì°««+99yÔ¨Qööö&Lغu«J¥¢¤ ½¼yÂK,?¾¢¢"--­²²rݺuGމˆˆP«ÕF×ohhàp8䲃ƒÃG}Ô‡Å>G”]/xÁ¤¤¤¸¸¸üøã !4lذ·ÞzËßßÿÀK–,1\_£Ñ|¸««ëŠ+º»»6¢'MºË|>ãÆd˜H¶¶¶ÉÉÉ|>ßhW!www½~:;;ß{ï=‡ãíí½víZ¹\NÎÑ#G|}}œœ¶mÛö\çüÏ"¨Àãñx<^«!„bccE"Qff&B(::Z$‘oÔ<|øðüùóÎÎÎJ¥’ >Ÿïçç§Ñh$‰µµuFF†P(Ü·o“É”H$»wïvuuÍËËkiiùþûï½½½Bµµµäæ“ ‘‘‘555eee\.wÓ¦MF ‚èììÜ»w/Yžv¹££!ÔÖÖ¦Wii©›››™þÉÕt—ãââÂÂÂêëë¿¿?9(Bhîܹ{÷îE=zôÈü¼eeeQõÌZzž®^½J„B¡Ð[®­­U©Tîîî?þø#AÓ¦MKMM%¢½½ÝÊÊê‹/¾èèèÐh4b±X­Vûùù}óÍ7Ún|X\\‡rtt,)))++óööž2eÊÅ‹étzCCÃèÑ£µ}Ž9Òp raĈMMMf 988¸»»WWWëµWWW7®÷]=xð@­V:”¼Éårµkzzzên»Å²ô<™Çãñòóó³³³'MšDÅd2™F£ÉÉÉioo_¼xñŒ3ÚÛÛ½¼¼®]»¦}Ôÿû_îÈB¨¦¦†|òL5—’’¢ûj®««+---**ª÷]¹¹¹1Œ††òf}}½——¹L§÷“gŠ’½bïwÚ}»Ñe•JåêêêæævàÀò.™Lfccsüøñ¶¶¶={öØØØÈd²­[·ºººž8qB(= ­­­-//÷ññÙ¸q£ÑFÂÄùA?>|ø”)S kjjòòòüüü&Nœ(—ËÍô/‹‰'ÏŸæÏŸÖÐÐpýúu???rPSó` œ?×cž‚HLL|å•WD"‘öQYYYC‡e±X#FŒ((( B¡P¤¤¤¼þúëvvvAAAG5ÌSff櫯¾Êáp’’’d2™ÑFâÉç^w™ ‰D²fÍ6›íçç·eË©Tjª¥R9iÒ$;;;½~ÚÛÛ.\èìììáá±jÕ*rPÈSz™§ÞX¿~ýüùóŸê!z9лi¦ñÙ`쪗(ÌS?¾ž)—Ë[ZZöïßÿí·ßR] ø]?9Ë3æ—_~?~üûï¿ògú0`@BBBo1öÿ¢¢ìó¾!ø|æsB~>“’g¶‚<œ O'ÈÀ‰²ë {öì¡jô[ee%ecSrÕkõêÕ”mð³ 98D1™NT—ñLÉ3KÍõ‚þ¥¬¬~Μ‹MþôÓ9T×béàü©gùù•äÿU* ÕµX:ÈS U^^Bèñcé… ¿Q]Ž¥ƒ<õàܹ[Ri7BˆÁ çåQwžÛO@žz›[É`ÐB*•¦°P “)¨®È¢AžÌéêêþá‡*ÕìîVýJmIòdŽn˜Bt:-7÷ …õX>È“9¹¹Wtÿ¥žJ¥))¹%É(,ÉÂAžLjoïºp¡F­~âA§O ¨*ÉòAžL:uêša#A99pÈ3 òdÒñã†oh4DYYýƒ))ÉòAžŒki鬬¼«Ñy3ŠÁ Ÿú¨‹íCT_#‚ÈÊÊêM%¡ÚÚZíÍ . 8𩪭­ÅµÉk×®Ÿ¿qãFƒ¡íÐÖÖ699™Ï瓇³‚‚‚áÇ»ºº®X±¢»»;00!äî<Þ-ÒèˆýÕ&ˆ§Ù?UWW‹Åb‘HtëÖ­””ò®¸¸¸°°°úúz@àïï¿iÓ&£º;‰´´´wß}÷Þ½{`ìØ±ÿüç?E"‹Åzÿý÷›ššø|>B¨µµ•wîܹ{÷îE=zô¨££!ÔÖÖ¦Waii©››9JdddMMMYY—ËÕZwÙhå†#šŸËÙ?õ³<é0`yøS( ãÆäjyyy\.×h£î9bÄ¡PH.=º»»ûæÍ›‰D­VŸ?ýÿðŠ*))!"MåéòåˇE h·Nohí²Ñ"Žh~f,'Oô~KoÔÖÖr¹\„T*ý÷¿ÿ=uêÔ»wï>xð@­V:”\‡Ëå655mÔíêÎ;Ú›d±X555|ðD"3fŒîÊžžž!+++ò¦ƒƒƒ»»{uuuxx¸îjÕÕÕãÆ#—}||È…#Fè ­e¦H½û‹þzþÄf³?øàƒÆÆÆÖÖV777ƒÑÐÐ@ÞU__ïååe´Q·rGBþUutt”••Éd²èèèäää«W¯îÚµKwe:]¢âââRRRt_Íuuu¥¥¥EEE‘7ÉB¨¦¦† ‡!3EŽØ/ô³¢ÛÚÚîß¿ÿþý{÷¥ 4ÈÅÅÅÊÊ*&&fÅŠ·oß¾qãÆÇg´Q·«9sæ¬[·îîÝ» **jçÎÝÝÝ …‚ÅbÉd²O>ù!$‹MU²qãÆÖÖÖ°°°3gÎÔÖÖæççxyy-[¶Œ\áÃ?¬«««¨¨X¿~ý‚ ÈF‰D¢ÛIEö?ÔnIÏpþD§ÓGŽYVVFÞÕÞÞ¾páBgggU«VÉd2£º'1"‘hÑ¢EŽŽŽÎÎÎK—.íêê"bûöíNNNƒ ÚµkWll¬««+ñäu Ýe‰D²fÍ6›íçç·eË©TJüÿô(33óÕW_åp8III2™L©TNš4ÉÎÎŽxò|Ühå¦F4ÅrΟ,â÷^³³³cbb,¡,êêê|||úrs¢££B–ð²~v¼ò„߀¨®‚'ü\]]322¨®‚'€ä ày8AžNôþ]DDÕ%˜¤ÑÐét ÕU˜týúõàà`ª«@ÈBò0oÞv¬œ’zúÈ“qA?~E¡0ò})ÍÍAcß—Ô/@žŒ»zõnK‹ñKpÈ3òdÜ©S×¢±XLÃÿÔjM~>\50Î">_`BBF0™|wJvvEPÐÐAƒœÈ›ÎÎvÕeéàó½âé¹*##~æÌÑTbéàxp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀé‰ï§S(ÇŽ“Ë-ôWÞ¨U\\|ÿ>|³¯¾ÈÈÈ×^{íÛ„ŽÜÜ\ÊêýSll¬n„žØ?©T*„PII Eµ~fóæÍdf´àü ày8AžN'€“Å}Ÿ}ssó‚ p½& 5lÄû‚C[°îX,ËÇÇgåÊ•\.ãX$¹\þÍ7ßTTT…ÂÁƒOžóæÍ‡"~©TºlÙ2GGÇ„„OOÏÛ·oïÛ·ïÊ•+_~ù%näh#  Bvvv±±±‹1ôâçÉÁÁÁÉÉ©ÇrrrJLLœ={öãÇ0qèÐ!‡íÛ·“éñööž0a¢E‹ §OŸn¸¾F£‰DäòÀ—.]бCÏrþZXX?kÖ¬£Gž={666vúôéû÷ïG}ýõ×Û¶m#×”ÉdQQQµµµ¡ŸþyñâÅ‘‘‘óçÏ?{ö,Bˆ ˆüüüøøøiÓ¦-_¾¼ªªJ÷ÑÜÜZZZºpáÂÙ³gýõ×J¥Òh£veݚ߉D’ššúÎ;ïðx¼ôôt…Baª‡ÐÐÐâââøøø™3g;v !¤ÑhŽ;¶páÂiÓ¦ýãÿ¸yó¦Ñ! “É´µµ55âòåËsrrBb±xêÔ©ééédç3fÌ(++3:c¡¢¢¢¿ýíoº»"›yóæœ¿ÿýï¡9sæèm—a=F7öi=ãþ©²²2==ýܹsŸþyHHȾ}û~úé§/¿ürîܹS¦LÙ°aƒZ­f0¥¥¥\.W.—oÚ´)))iâĉ¿üò˶mÛ‚ƒƒ‹‹‹:´zõê7Þx£®®î³Ï>3èĉŸ}ö™X,þôÓO nØïàà°víZò!ºË!¹\.“É´7Y,ƒÁøÏþÓÞÞž‘‘!“ɶlÙÂf³ÉžºtéÒÎ;ÏŸ?ÿÅ_LŸ>ýÌ™3YYYÚ²?ÿüsñ¤RéáÇ#""¬¬¬È» G ¸zõ*Ç»~ýú+¯¼RUU…ª««S(cÆŒ1:c*•ª½½ÝðœŒËå>ÞpcíííÍAß3¾¾‹‰‰a³Ù‘‘‘¡ùóç³Ù쨨(„X,ö÷÷g2™!T\\I£Ñ”J%A2™ŒÅbEEEÔ]_ïš»»{e[[[GEEݹs‡Œ¦Ñi4Z``à¥K—}||ÆŽ{åÊ@ˆLÌB(<<üСCÚ½BH.—ûí·ùË_z?9ffàO¾}.y9r¤Z­>xð y@DÑh´äää .tuu)•J&“immýöÛo§§§—––¶··———ïٳǰ«;v477ߺu+333""ÂTcWW×÷ßOÞ«»l“É ýꫯ„B!ùz;<<ÜÎÎ!töìY©Tjx¶¡kæÌ™ºe“¯B ÙÚÚJ¥RòtÊ舡€€€‚‚‚7ÞxƒÉdŽ;öÌ™3nnnnnn¦f !ßÑѱzõêòòò¦¦¦‹/.[¶ŒÃá¼óÎ;ffL÷ ÒL=Þs¹^@§Óƒƒƒøá‡àà`²…Åb­[·n÷îÝ­­­žžžŸ|ò ‹ÅЉ‰Q«Õ;wîììì2dHBB–-[ôº _³f\. ‹‹‹#wËz¡ÎÎNòüQoÙ”?üpÇŽ‰‰‰VVVS§N‹‹c±X‹/ÞµkŸÏ_¾|ùÅ‹M=vÖ¬YJ¥2==ýÑ£GC‡ݰaùJ‹‹ ›Í‰Däù€áˆ¡ñãÇ+ŠQ£F!„üýý•J%¹s25c!6›½gÏžddd´´´xxx„……ñx<퉿Þä0Œ7ß|óÝwß=}ú´ù03]½÷ÄïsfggÇÄÄ`¹~š™™yÿþý?þ¸÷Ñ»zkôbn\áí¿ú~r6oÞìââ’­mÁ¼S(B¡°°°ð¯ý+ö΅ß§›7o&$$¼ýöÛ£Gÿ©_Ûµµµ1cFoÉ&çyïÀË /Žwàey8AžN'€ä àôÄõqò3£=~x­yóæéÞ|âz\.?}ú4ùž(½1nÜ8ÝOXÐô>›ÀŸçO'ÈÀ òp‚<œþ­ˆ,$Äá¶IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MutexFailed.html0000755000372000001440000002637612502417163026407 0ustar robertousers MySQL++ Reference Manual
mysqlpp::MutexFailed Class Reference

Exception thrown when a BeecryptMutex object fails. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::MutexFailed:
Collaboration diagram for mysqlpp::MutexFailed:

Public Member Functions

 MutexFailed (const char *w="lock failed")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a BeecryptMutex object fails.


The documentation for this class was generated from the following file:
././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__inherit__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__inherit__graph0000644000372000001440000001155212502417165033230 0ustar robertousers‰PNG  IHDRË€* ËbKGDÿÿÿ ½§“IDATxœíy\W×ÇOH@Eeq´P•ÖÚJ- .ˆ¸!›€Rª K+ Up© ZWD­ .…ªQ×¢¢¥. JÁÊGÅGQ– Hˆ eÞ?æyòÆdHÂ2èýþuç̽çž;÷ÇÜ›™BÁ0 ÒPSuˆ^R‚\Â䂆 šäApppQQ‘ªBAôüýý]\\ćÉÏ’ eòäÉC‡UE`ˆÞÀýû÷­¬¬Îž=+¶Ð¤j¬^½ÚÍÍ­k£BôdŃöarA C R‚\ÂäÒ½öêÕ+ …Ò‰+++===GŒ¡¥¥5iÒ¤ôôôNtÞ‰ˆN¡P^½zExªMP$ÐÑÑqss«©©é´pÛB÷RXçR[[;aƒÁd2>|èîîîááqýúuUÇÕ6 °nݺv4ÌÉÉa±X•••™™™åååAAA›2H?­èM„‡‡ÛÚÚ&&&⇟þyUUUTTÔìÙ³UX›ÐÓÓÛ½{w;4hÈ!```°gÏžùóçwvhJÑæ{…B9v옅…Å AƒvïÞœœ}ú˜˜˜$''€H$ŠŽŽ¶°°ÐÖÖ¶²²ÊÊÊ’\ ð¥áâÅ‹Ÿ}ö™¾¾~pppss3¡>]G$Ë©©©!!!’Á‡‡‡'%%áe‡óý÷ßëéé¯]»¶©©Iá蔩påÊüÆi`` V…Bùý÷ß-,, B¡pïÞ½£GÖÖÖž2eʃZ»à’#’õ|>?44tðàÁúúú¡¡¡|>_Ö •JÕ××—¡ì)éY1˜Àd21¹€‡‡—ËÅï nnn\.7>>Þ¿ûöm]]]>ŸaXJJʘ1cD"QCCƒ††F\\‹ÅJJJ¢Ñh ñññúúúiii•••W¯^566€—/_â!á;;»/^äææš™™EDD1 ãp8 xxâr]]°ÙìÖ²dÉ’3fŽ;w%t +p¹\:¾|ùòòòò””¨®®Æ[¹¸¸ÔÕÕ%$$@mmíþýû%‡ohhˆ¿’qН ¡ ÃöìÙãììüöíÛÂÂÂ/¾øbýúõxÍþù§¾¾žËå>þÜÆÆfÛ¶m†FH8A­y–«««««ë'‚‘R2 +((À0¬¥¥EªüòåK@0dÈ[·naæàà°{÷n ÃØl¶ººzTTT]]H$ª¯¯ …cÆŒ9qâ„ØíÉ“'eVXXˆŸe2™fff„ÆÖâd³ÙPWWGx¶¥¥…J¥>yò?LKKÃ]É ÍÍÍEEE B¡ðöíÛ’­²²²$kŽ=Zvø˜ “òƒa˜¹¹9‹ÅÂ+dffŽ?“É*íׯ^™0B jͳ|dÖž¾¶¶6¨««K•€J¥:99¥¥¥½ÿþæÍ›K–,¬¬¬ÜÜ\ccãiӦݽ{WMM­¤¤düøñbŸ–––²5 /˜››———Ë1Ê¢££3xðàgÏžIóòò&MšôñãÇwïÞ …BSSSÜnff&v%gt +Ðéô/^ØÛÛOœ8ñĉ’­ð»”¸fYY™Âá"åJKK ð³fÍzýú5n+µ±±qݺuÓ§OÇ0Œ0B ’ã¹MtþgIWW×ôôô³gÏ~ûí·øÚÇãñD"ѹsçØl¶ÏüùóÙl¶‘‘ÑãÇÅ­ž>}*ë ÿó€/^àW¶5#! ,Ø·oŸätJJ ŸÏg0ƒ¦R©%%%¸½¸¸ØÈȨýcþ<ÏÍÍ-44´  àÈ‘#’§ð93bÄ…Ã'DÊèéé‰ÅTWW—››+UÁ`¬X±¢¬¬¬ººš0B RƳR·£|¬­­Á¶mÛ¼¼¼p …B±³³KMMår¹---êêê cùòå¡¡¡/^¬ªªºvíÚúõëe]…„„¼zõ*//oãÆK—.mÍøáÃñFÉòŽ;nß¾íåå•““SXX¸uëÖC‡íرÔÕÕ/^üúõë'OžlÚ´ ¿Ývæææ––:ÎãñÂÃ྾ž°f@@€äð·lÙ">USSS%ÂNœœ6lØðæÍ›ÂÂB{{û˜˜)?o߾ݳgÏСC D!áÉñÜ6$—LPn&Öuk倀€¾}ûr¹\q+&“ijjJ§ÓÍÍÍ/^¼ˆï$¶mÛ6räH---++«S§NÌ>,11qøðázzzAAA<Ј}ºS‘,cVZZêââbhh¨­­ýÕW_]ºtI|ŠÍf{yyéêê¬^½w¥pt +ìß¿àÀC‡=r䈇‡‡¾¾>aM@°wï^333MMM+++üö€}+Gj&Û#—Ë]¶l™ŽŽŽ®®®ŸŸ_cc£”555KKËÜÜ\¼!a„²ÔšgùtÂN_6nÜèééÙ¦&RÊ:”cDt+dÖÉO\›šš*++;vúôéÎõŒè¡tò>ìÁƒ_~ùåòåËmll:â§_¿~þþþÊÝé,j&“‰r\íduo~óè …!È) A.Har‘~ZqëÖ-‡£’Pº?†Õ× ûõëÍIu¤¤¤ÄÄÄä“äÃ1ô]\ùôíûù!+ÕÔú¨:nÍš5k$EõÉÓ „|.<˜—Wºs§Ë÷ßOQu,=´S–wï>üý÷ ÒÒþVu,= ¤0eIK+PS£`äç¿)+c«:œR˜²œ;—'Š€JU»t鑪Ãé1 …)Eqqõóç,¼,ˆÎžÍSm<=¤0¥¸p¡@]]|­°—/ßýç?Šs€¦$gÎ<äóEâCzñ"Z(•)L1—UTÔIZáÙ³уe@ SÌ… 4UÊXYÉyôè­JâéY …)@(;÷·@ ”²ÓhÔ  TRÏ)L”°Ù ²v@˜šú7þü!¤0¤§çË.‘8uusr^žBˆA SÀ …"J£Q©T*•ª†—qÙ]»öDÕvwЛo\½ú¸®î#^~ü¸ì÷ßïGFþÿ÷Æ6vl'|Y¼ƒÖ.]ú' àdeåUÒ“@«$‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\Â䂆 ¤0¹ …!È) A.HarA C R‚\ºîç^KKKoܸÑeÝ‘Á“'\8zô¨ªé}úôqww§Óé]ÔÖU¸»»wÑHƒBQ§Rû«:ŠN 55µËæ½ëîaB¡ÐÆÆ&<<¼ËzDbkk+º¬;´C R‚\Â䂆 ——Â***lmmU@»"é>Á·‰—Âz1,káÂ…ªŽ‚¤°^‚H$âr¹ªŽ‚€n§0[[ÛŒŒ oooGGÇS§NݸqÃÃÃcîܹǎ€Ã‡GFFâ5y<ž½½ýË—/ ''ÇÇÇÇÎÎÎÓÓs€aXzzº···ƒƒÃ?þøèÑ#É%_q²³³½¼¼-Ztøða>ŸOh„O—'ɲl§íˆ„°INNŽ‹‹K}}=ܺuËËË«©©I²Éýû÷W¬Xaooïìì|êÔ)øá‡ÀÉÉ©s§£ãt;…@~~~ll¬ŸŸ_BBÂýû÷“’’“““¹\î´iÓ²³³…B!dgg˜™™555EDD8::ž9sÆËË+22²©©éêÕ«¿ýö›¯¯orròwß}·k×.ÙŽ.\¸°k×®;w>xðŸ'Bã€Ö®]‹Ÿ— ;mG$„M¾ù曉'ÆÄÄÔÕÕÅÄÄüüóÏ}úô7ùøñã–-[F•’’˜ÀápŽ9iii¤LIèŽ [¼x1ƒÁ°³³OOOƒaooõõõcÇŽ¥Ñh………póæM;;; …Âçó1 ãñxt:ÝÞÞþòåË©©©ÖÖÖººº_ýµ¯¯¯lGÆÆÆ¾¾¾™™™­555ç΋Ÿ— ;mG$„M ((¨  `íÚµ .477—lB§Ó“’’‚ƒƒuuuõõõ ±±±“ç óèŽ c0@£Ñ¤Ê ¦¦fmm}çÎ>äççÏœ9´µµ8ðìÙ3WW×U«VR(‹eff&öibb"Û‘±±1^6lXMM£,„¶#Â& ¥¥5oÞ¼ÒÒRÙý;F+// óóó»víšâ ªRº£Âäcccs÷îÝ¿þúkܸqƒ €ææf‘Hqùòe‡7Ö××ëéé‹[•––ʺ*//Ç eeeºººrŒ²vÚŽH›@uuuzzúĉñåOªIDD„»»ûÑ£GW­Z¥äuS=Oa–––B¡ðäÉ“ø2  %44ôÎ;|>ŸF£ihhÌ™3'666;;›Íf?|ø0å&::º¢¢âùó牉‰³fÍjÍØØØxõêUü¬¸LØi;"!l‚aXdd¤““ÓæÍ›óóósrr$›ðù|@@£ÑZZZŽ??þ÷W|y<^'^êN¡ër+: 55µ©S§^¿~}êÔ©¸…N§oذ!>>¾ººÚÐÐ0<<œN§/^¼X(ÆÄÄp8ÿíÛ·K¹š9sæš5kšššf̘±dÉ|M”2‡Ã‰ŠŠÂ·_â2a§ÐÖHý¤§§s8¶zõêýû÷7NÜDKK+00pûöí}ûöõôôœ1cFXXØùóçÇçììüÇ<m£ë~…ÙÍÍ­¦¦¦S²w«ªª6mÚ¤|“ŠŠŠ¥K—feeÊ1v:]Ó‹lmm™L¦›››âªA[%[ZZX,VFFƼyóT B)z˜ÂŠŠŠüýýçÌ™3~üøŽøÑÔÔœ?¾2FDé‘«$¢# UÑ«è «­­Ý¾}»»»ûœ9sîÞ½«êˆˆ¿Ó´µµ­¨¨ <Õûèñ ãr¹¾¾¾áááqqqÓ§Oÿå—_òòòTWÛÐÒÒòððPu¤Ðóž‡Iqüøñ &„††â‡Ã‡g³ÙL&sÒ¤Iª ¬MôïßßÏÏOÕQB¹‡µ–BsçÎgggÉšÞÞÞaaax¹¡¡a÷îÝ .tuumiiE BÊTMžÁ[ݼyÓÛÛ{Á‚gΜ‘H„gL888¬\¹²¨¨H™ÑÉú@·hÑ¢E‹ÅÅÅuå×Ñ:HQa MCC›Í6l˜d;}ûâpðàÁššš¸¸¸={öäåå>}·ËIRX0youïÞ½˜˜ÿøøøúúúÔÔT&“éçç—œœìåå§ä`¥üÀùóçY,V||ü¾}û ð—E=‚£0ÂüQ žŒ ‹@ øóÏ?ƒ‚‚ LLL–-[&NÑ‘“ ¤°‚œäGGG--­Ù³g—˽té’dÞŽòë ”ÈÈÈ Ñ××Çß;=|ø°­PUôì}˜¶¶¶ŽŽÎ›7oÆŒ#6>þü×_=xð —ˉD†††¸ÝÈÈHœ#'AHaÏÆé „É3ééé²5ù|~lllmm­©©éæÍ›ñïkÀÊ•+%k¦¤¤ÈïÔÇÇ'::zÅŠ eêÔ©þþþH×€ÞKþë@ï%½ ¤0¹ …!È) A.HarA C R‚\ºô‰keeå•+Wº²G„êé²ÿ«þÓO?©z¬*•zïÞ½.›÷®{¦øw‚öarA C R‚\Â䂆 —ÿp†¬_Ô§IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_0x65.html0000755000372000001440000002340512502417164023645 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/graph_legend.html0000755000372000001440000001236212502417164023472 0ustar robertousers MySQL++ Reference Manual
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
././@LongLink0000000000000000000000000000015000000000000011561 Lustar rootrootmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__coll__graph.pngmysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__coll__graph.0000644000372000001440000001471712502417165033303 0ustar robertousers‰PNG  IHDRØËƒÊbKGDÿÿÿ ½§“„IDATxœíÝiXSWð“…¥d‹a­*¢Ž:âSQ)B‘N[7DAkUd+V…Z}Z´ÔGǩӔMi5.(‹V¬Xq¥XD[6­ a3`ÈÙæÃídB F 'éûûtrrrÎËÍß{/7—H’Éd]#뺂 L@ ˆ T] ìéÓ§›6m …º.Ä`™šš¦¥¥7N×…ôƒ]+**.^¼¢ëB ÖÙ³g׬YAÔÈ™3gt]‚Á"‘Hº.A 8GX€ ,@ ˆ D5êëë‡÷ŒžÇãÅÇÇO:ÕÂÂbÖ¬Yûöí‹Å:©[Ä×ÓÓ3sæÌÊÊÊää䪪ª;wž8q" @"‘¨ߨØH§Ó‰¶••ÕŽ;F±XÁôò!ILL;vì?þH¡PB'N|ë­·¼¼¼rrr"""TÇK¥ÒçÏŸm:ž””4ªåꈾîI$ÒÑ£G=<<ÆŽ›””tüøqKKËÏ>û !»aÃb$—Ë¥Ñh?ÿü3BèÂ… ÞÞÞ¦¦¦®®®ÇGI¥ÒÔÔT ‹9sæ”––* ‰#ãùóç'MšÄ`0bcc{{{Õv¢þ‡QÅ6“ÉLHH RH033‹g2™j§òññAÙÛÛ+ÍÓÝÝýÁÐétgg縸8âÃ'‰tâÄ ›”””Ýæ#K†™ÜÜ\MªB­ZµŠÃádgg#„V¬XÁáp222Bׯ_·µµ‰D2™ŒÉdzzzJ¥R.—kbb’žžÎb±Ž9B¥R¹\nFFƒÁ(((hii)**rvvFÕÕÕ5ÀÀÀÚÚÚŠŠ 77·={ö¨í”ÉdÝÝÝYYYDyòvWWB¨££C©þ²²2;;»Aæ'†)¶ÃÃÃýýýjjj¼¼¼ˆEBË—/ïêêÊÊÊB=þ\“M—››«Ù»1zô8ˆwïÞ•Éd}}}Jíºº:±Xlooÿã?Êd²ààत$™LÆf³ŒŒ8ÐÕÕ%•J{zz$‰§§ç·ß~+Ÿö»ï¾S bMM¼6777µÕ9PËËËétú ó=òv__…ByðàÑ_PP@,Š*--UüÙ5ÙtQ_Í! „‘‘‘R!D¡P–.]ZPPÐÙÙyåÊ•ððp„µµuiiiEE…³³óüùóoÞ¼I&“§M›&ŸÓÛÛ[u!www¢1yòäæææA:UYYYÙÛÛWWW+õWWWϘ1Có©ÚÚÚ$É„ ˆ‡nnnò‘ŽŽŽŠ?»žÒã .$$¤°°ðÌ™3sçÎ%¸@*•ž={–ÍfoذáwÞa³ÙNNN÷îÝ“¿ê—_~QŠØ-!„jkk‰w} NµÂÃÃGæñxÉÉÉAAAšOeggG¡P‰‡ NNND›L6ˆ7Q×»deššå‡!µm±XÌ`0ìììrrrˆ§©©i^^^GGGff¦©©©@ Ø·oƒÁ8wî‹Å*..V{ŽèççWWWwçÎww÷„„µ²Îe2Ù‹/&Mš4þüâââÚÚÚ‚‚OOÏ7ÞxC(2OO¬ÿ9bXX˜¿¿ccãýû÷===‰EÚƒo: ÍD™LýÚk¯q8ÅÉ'L˜`ll ùE"ÑܹsÍÍÍ•æa³ÙkÖ¬±µµuppغu+±(q¤hDMìÚµ+,,ì¥^¢ ¥‡ƒtjg§ÒžA4Ì ÚB¡°¥¥åèÑ£§NÒu-@#qž«âöíÛ3gÎ\¿~ý‚ ^ež1cÆDEEiÒ9Œóÿ1‘d˜ýý™3gBCCq«ÊH¤ÜÜÜ+Vèº~ sô`‚°AXÀôòMff¦®K£ » :99Q(=º¨A£y#„øü]¢) …"ÿœØ]¾Ñ/‰têÔÝ¡ššD2ùñÇ%#Î_Iyy=›Íc³¹·nÕëºýA|%gÏþD¥’ŒÈgÏVêºýAÔžP(**º'KD"iQÑ=¡P¤ëŠôQ{W¯>”‡O(]½úP·õè5¢öòó’ÿ‰‰DÊÏÿI·õè5¢–8á•+¿J$Râ¡D"½råW¾_TKD-]ºt_*íwåK*•ýðÃ}]Õ£ï ˆZÊËûIé ¬L&Ë˃£³– ˆÚèèè¹u«N*•*vJ¥²[·ê::ztU•^ƒ jãâÅjµŸ£H¤‹ï©öƒ!AµqæÌOJ'ˆ©T W¶µA|iÏžuÕÔ4 Dtï^SKK÷èW¥ï°»û\GG+ù "qMÛÔô÷oü “É=ŽŽV:«O?ÁÝ7¯**ê;„PFÆZ]¢ßàÐ °AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚° ßëââòäÉ]W1 *•Ž‹;u]È€\\\u]Åô ˆ$iëÖ­sæÌÑu!z©¼¼üàÁƒø¿Ëúñeî>>>!!!º®B/áAœ#,@ ˆ D€ "IµµõŠ+:::^j†úúzùGÿêx<^||üÔ©S-,,fÍšµoß>±X<úeè "BèÖ­[,«¥¥¥¤¤¤¹¹yóæÍºª¤§§gæÌ™•••ÉÉÉUUU;wîø€N§;;;ÇÅÅ …Â:åD"Q||¼ƒÁˆ‰D¡‹/NŸ>F£988$%%#I$Ò‰'<<ÿŸÿüç›o¾ùÛo¿µµµI$’ &cÜÜÜš››Õv*NõäÉùCKKKccãÚÚÚ7r¹ÜéÓ§+vttDýþÿ5[YYÙÛÛWWW/\¸PqXuuõŒ3ˆ¶»»;јýôÓððpµŠS-]ºtçοýö[MMMPPPZZZooo__Ÿ±±±@ ؽ{7B¨§§g JÚÛÛýýý/]ºTWWWXX8{öl''§˜˜bÀ–-[êëë+++wíÚµzõj¢“Ëå*N2d‘†F·gš@/yŽH&“½½½+**ˆ§Ølöš5klmm¶nÝ*Ôv*ž¨q8œuëÖY[[ÛÚÚFFFòx<™Löå—_ÚØØ¼þúë‡ZµjƒÁõ¿l¤Øær¹Û·o÷òò¢Ñhžžž{÷îåóù²ÿfgg?žN§oÞ¼Y ˆD¢¹sçš››Ëúÿ²¢¶òVˆ¾œ#êC‰Q_Œè%Cµô%ˆ†shz ‚8ªÆŒ¥ë*pAU #==]×Uà‚°AX€ ,@ôãïš§L™bgg§ëBÔãñÌBff<]¢^[[Ûýû÷ñ—õইmÛ¶555麊54Ø‘HhÆŒ6]¢žµµu@@€®«šìqvï^Ó¢E_"„.]Úæíýº®ËÑcpŽøJ.\¨¦R)T*ùûï«u]‹~ƒ jO"‘ž>}G,–ˆÅÒÓ§ïH$R]W¤Ç ˆÚ«¨hd³¿w‹ÍæÞ¾û7ná ‚¨½ÂÂ**õ÷¿¢RÉ……Uº­G¯AµÔ×'>¾Z,þý6l±Xzî\µH¤þ/—Á ˆZº~ý?<^¯b×{íÚ#]Õ£ï ˆZÊϯ¢Pú}7…B.(€£³– ˆÚàñz/]º¯ôk²D").¾¯´›‚ jãòå_äg‡ŠÄbIIÉ/£_€ j#?ÿ§¾²‹”—÷Ó(c ˆ/íÅ þõëÿ‘HÔ|4*•Joܨ}ñ‚?úUé;âK{ð eQÄbÉ/¿´Œf=†nzІâ>oëÖS¡ƒWÉ{,-i:¨IÏéÁm`RŒš‘Aø^š ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ ˆ D€"À`‚°AX€ ,@ú}uqllìÇuX>jk³GÙÙµêº=ãááñõ×_Ëö "‰DúóŸÿÌ`0tQøiooÿõ×_³§üÚ!!! ,Õ¢Àϵk×>ÿüsÅ8GX€ ,@ ˆ xý‡?Ïž=[½zuiié°Ìæçç'o»»»ôÑGnnnÃ2¹&‹ÚÙÙM:5&&ÆÊÊJë ¯^½úÅ_¨ögeeôÏ"7¼ï‹ZxqØ¥¦¦:88 „ø|>“ÉüüóÏ;FàÕ‹ÅŠŽŽ>þ¼Ò¢R©´©©)???22òèÑ£æææ¾\Éo¼‘ŸŸOŒüðÉ6Bh̘1ÃøS ^˜¹¹ùªU«†|É«0ðC³•••³³stttssó‹/†w ©TÊápT¥ÓéÓ§Oÿâ‹/Ξ=«ùË•˜˜˜?±[µù*udw"Š…YZZFFFŽèr/D??¿âââµk×.^¼øäÉ“—/_^µjÕÛo¿}ôèQ„Ð7ß|“’’BŒAAAuuu¡[·nmذ!000,,ìòåË!™LVXX¸víÚàààM›6ýüóÏŠµgÏžùùù•••­Y³fÉ’%ß|óH$RÛ)¬øBµ•S(*•jffF<‹ÅéééK–,Y²dIzzºX,h~.—›””ôÞ{ï…„„>|¸¯¯y÷îÝÐÐÐÕ«W#„–.]ªvQ‰ôî»ïVTTËËË7nÜ´lÙ²“'O"„þþ÷¿+¾\uÀ@k¸té’Ú-àççwåÊ•µk×¾ûî»§OŸFI$’œœœÐÐÐÅ‹ïß¿ŸËåjR˜âœª[CíB/K›=bUUÕáÇ###³²²ÊËË9süøq‡3þü²²2‰D‚*++spppss …{öìY¼xñéӧ׬Y“’’" ‹ŠŠŽ;qüøñ÷ßÿþýª ;wnÿþýûöí»}û¶ü]Qí´²²Š‹‹#žUl#„„B¡@ ÏŸ??räH@@€‘‘ñT^^‹ÅÊÈÈøÇ?þq÷îÝœœœæÿꫯ:::ÒÓÓ“““+++O:EŒtèüåj þ^5¸»»4àßÿþwZZZTTTFFFOOO^^Þ7öïßðàÁ¦¦&&“©IaŠÚJ ^¶*m‚J£ÑBaaa4-((!ÔÓÓãååE¥RkjjBW®\ $‘H"‘H&“ ccã    .˜˜˜äççGGGûúúÚÚÚΞ=;""Bu¡˜˜gggˆˆˆ’’’:ÍÌÌÞ~ûmâYÅ6B("""88888xùòå—/_ •?U\\¼e˃áêêuçεó‹Åâ«W¯nÞ¼ÙÁÁÁÕÕuݺuòJ"##§OŸnjjªáv366>räHll¬­­-ñ9*Ç{©ª†¬añâÅæææo½õBˆÃá­_¿ÞÕÕÕÅÅeÇŽžžž/µî [Ci! ·‰œ6ç4 !Dœ£(¶Bd2Ù××÷Æ®®®UUUÛ·oGYXXR<äUŠ5gDŠ”.ØÚÚ¶¶þ~£P}}=qhÖ|ÝA¶Æ+^‹þ z{{K$’ï¾ûŽ8v#„H$R||ü7x<žH$¢R©&&&‹-:|øpYY›Í¾sçNff¦êT©©©Ïž={ôèQvvv@@À@<¯¨¨ˆxV±­ÄÌÌŒÏç ⡯¯oVVV[[[ccãÇ|îÜ9µóS©T??¿¯¿þšÅb=~üøÈ‘# .T\>-B¨»»›ÍfwvvÞ»wï³Ï>c±X+V¬@‰D"±XL¥RûúúˆSR>Ÿ¯øòA ޏ6tùòe>Ÿ?ÈÙ*B(000;;ûñãÇ?þꫯÚÚÚ4)LNí¡…á¿@&“çÍ›÷Ã?Ì›7è166Þ¹sgFFF{{»££ãîÝ»CCC%IZZZww7q–¶wï^¥©.\¸}ûv¡PèïïN”:BÝÝÝ N ÛJÆŽK£Ñ8q:±aÆÔÔÔ7’H¤yóæEEEûÕù·lÙ’ššmddôæ›oÊ+!ØÛÛO™2eÙ²eÿú׿ˆž?üh0 ooïÌÌLâ¸onn³wïÞ×^{-,,Ìßßÿã?ÎËË“¿\í€ÂÂÂ!·¹¥¥å† :Äd27mÚtóæÍF†‡‡ …Âøøx¡Pèãã¥IaŠ3¨n!ËÓ„òýˆ»wï~õÛÀ²³³[[[?ýôSÍ_¢tí^í¥ü‘¾¾? Ÿq˜bö†ùÐÜ××Çb±Š‹‹ÿö·¿ ïÌÀ° s>|µhÑ¢iÓ¦½Ê‘B‚©©éÊ•+KJJÔÞ$6Ê÷J0âÿq¹\6›­zÿ½››ÛÓ§O‰¶ÒMb£|¯”ƒ D"ÉÏÕÞ™¦däî•2`Äÿ377·±±©¯¯W꯯¯Ÿ8q"ÑÖä&´‘»WÊ€AûY¸pá±cÇG …§Núë_ÿJ<Ôä&´‘»WÊ€AûY»vmWW×¶mÛîܹÓÜÜ|óæÍ˜˜:.¿F£öδQ»WÊ€Á1¢–™™™“““žžÞÒÒâàààïï"ÿK¥›Ä(ÊhÞ+eÀà³fMÁ'Ã>k˜‚ j nQDMYYYmÛ¶M×U,"À`‚°AXP¾Žèêêjmm­Ã‚ÀAWWWccã€ÿ½Å¶mÛšššF½*ðG´xñbŇ$¥ïì@'à`‚°AX€ ,@þ *ïƒÍðIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_36.png0000644000372000001440000000326412502417165024025 0ustar robertousers‰PNG  IHDR¨%Y5åbKGDÿÿÿ ½§“iIDATxœí›QHS_ÇÏýÏÍݵ¶…kI k©¨у’F/Y½T&JF*d(ÚCMdô`ÔSdd©TV¢bq)£ˆaÈÀæÂ6±œè”jÖÝ•Ùv½çÿpù_n»×kÎmúçÞÏÓ9¿Ýß9ßs¾žsîÙéñÏz Ydã%Šl¼D‘—( ÜŠÇã©©©Y\\\/521B­V·µµ¥¤¤°‘?ŒÇqüÅ‹EEEq&[úûûËÊÊ–5ž¡¯¯/Ž’dâ‚ aùŒ—(²ñE6^¢ÈÆK” güøø8ÿM$bH’¬¯¯·X,(Ц§§_¹r…¹¬®±—Ó(Š8pÀápDÜݪºþK6œñÑ¥¶¶vddd``ÀãñtvvbfµZƒ¡¡¡!¦]{½^¯×ët:ÓÓÓ‹‹‹£û{ØÄÄ„ÑhŒ<rèíí ‹Ä·ÛE ƒÇq¶:44”’’²öfW p»Ýlunn077Å®W5Q€ÞÞ^n$’ HWWWVVÖÖ­[[[[»»»-‹^¯onnÔÕÕUVV2O’$©Ñh>~üxþüyNNŽZ­Þ½{www7€¦é[·neeemÞ¼9//ïÝ»wÜMŒÙÓ0 ËÈÈ0™Luuu¿ÿ ‚?7@nY§Óݾ}ûÇLõàÁƒ“““aψg¹YB¡Õjݶm›Éd²Z­¡Pˆ?cJ¥R¥Réõz‘þü,7(†ÜÜ\@rròê D´â%%%AtttNŸ>MD{{;àû÷ïCCCIII¡PBøèÑ£ììlš¦I’LLL¼sçŽ×ëíììLHH I²½½Ýd2=}útfffpppÇŽ€°¿èÂÂB—Ë…ãxZZZKK‹`BøóçÏ{÷î1ò¸åׯ_›ÍæÄÄÄÇ_¿~ýëׯaëfÅáˆÈ`Ò¯]»vòäIÇãt:÷íÛרØÈ´ép8ü~¿ßž®®®.//g'Ÿ"8?Ü^ø }+>BãGFF „Á`0¬ìv»)ŠJNN~ûö-„ðرc­­­BŸÏ§T*oܸ1??OÓ´ßï_ZZÊÎξÿ>ÛìƒøÆ;NV[ZZš`P\-EQ8ŽÛl¶={ö(ŠÇCžñ"ÑÁD233½^/S~óæÍÞ½{!ï,×jµŸ?f%ñSçg#Ï`‚åêêêšššoß¾©Tª©©)æS»Ý~êÔ©M›6¼|ùBˆ¢¨Ãá`›eN„°æÓÑÑQµZ-\N'I’===E1U𦛛›Íf3ä/2LD­Vs=Öëõaí,,,\ºt)77—&˜ÂŸn/.—+ºÆÇä­¾¨¨èÙ³g}}}ùùùÌhšîïï÷ù|•••Ç÷ù|f³ytt”Íã7Å àr¹¶oß.ä!,--ýôéSEäÈ‘#EE0"‘F#ëñüü<Žãa¹æÜ¹sccc𿀟"8?ÌÃŒàéééd‹ã (вÙleeeLA‚ ‚Á R©Ôh4V«ðÙÙÙW¯^566ò›ºxñâøøø‡šššÎœ9³\ðׯ_Ì Í-kµÚ³gÏNLL ×××—””D0"A 'Nœ¸|ùòää¤ÓéÌcA”——oÙ²%))éüùó w[ZZÒét_¾|IáÏ„ðêÕ«ƒ!55Ã0ðç …òóóµZíŠ~ÁhñCSSSiiéªRÂ-Á3,º·üTýOá/ð{üY\\œ™™éêêêéé‰zã2Ñ"úgüû÷ï÷ïß_QQqèСµ´£Ó骪ªþ&Sâßcœà.ÿð•­L,ñ¹ÎÉl|dã%Šl¼D‘—(×¹»wïÆ_‡L¼á¾éÙív…B±ÞŠd¢B¡°Ûí\¯(ÿ¼$‘Ïx‰"/Qdã%Šl¼Dù–YÐ$¡É4PIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1String.html0000755000372000001440000025300412502417163025434 0ustar robertousers MySQL++ Reference Manual
mysqlpp::String Class Reference

A std::string work-alike that can convert itself from SQL text data formats to C++ data types. More...

#include <mystring.h>

Public Types

typedef const char value_type
 Type of the data stored in this object, when it is not equal to SQL null.
 
typedef size_t size_type
 Type of "size" integers.
 
typedef const char * const_iterator
 Type of iterators.
 
typedef const_iterator iterator
 Same as const_iterator because the data cannot be changed.
 

Public Member Functions

 String ()
 Default constructor. More...
 
 String (const String &other)
 Copy ctor. More...
 
 String (const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Full constructor. More...
 
 String (const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 C++ string version of full ctor. More...
 
 String (const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Null-terminated C string version of full ctor. More...
 
 ~String ()
 Destroy string.
 
void assign (const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign raw data to this object. More...
 
void assign (const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign a C++ string to this object. More...
 
void assign (const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign a C string to this object. More...
 
char at (size_type pos) const
 Return a character within the string. More...
 
const_iterator begin () const
 Return iterator pointing to the first character of the string.
 
const char * c_str () const
 Return a const pointer to the string data.
 
template<class Type >
Type conv (Type) const
 Template for converting the column data to most any numeric data type.
 
template<class T , class B >
Null< T, B > conv (Null< T, B >) const
 Overload of conv() for types wrapped with Null<> More...
 
int compare (const String &other) const
 Lexically compare this string to another. More...
 
int compare (const std::string &other) const
 Lexically compare this string to another. More...
 
int compare (size_type pos, size_type num, std::string &other) const
 Lexically compare this string to another. More...
 
int compare (const char *other) const
 Lexically compare this string to another. More...
 
int compare (size_type pos, size_type num, const char *other) const
 Lexically compare this string to another. More...
 
const char * data () const
 Raw access to the underlying buffer, with no C string interpretation.
 
bool empty () const
 Returns true if size() == 0.
 
const_iterator end () const
 Return iterator pointing to one past the last character of the string.
 
bool escape_q () const
 Returns true if data of this type should be escaped, false otherwise.
 
bool is_null () const
 Returns true if this object is a SQL null.
 
void it_is_null ()
 Set a flag indicating that this object is a SQL null.
 
size_type length () const
 Return number of bytes in the string. More...
 
size_type max_size () const
 Return the maximum number of characters in the string. More...
 
bool quote_q () const
 Returns true if data of this type should be quoted, false otherwise.
 
size_type size () const
 Return number of bytes in string. More...
 
void strip_leading_blanks (std::string &s) const
 Returns a copy of our internal string without leading blanks.
 
void to_string (std::string &s) const
 Copies this object's data into a C++ string. More...
 
mysql_type_info type () const
 Get this object's current MySQL type.
 
Stringoperator= (const std::string &rhs)
 Assignment operator, from C++ string.
 
Stringoperator= (const char *str)
 Assignment operator, from C string. More...
 
Stringoperator= (const String &other)
 Assignment operator, from other String. More...
 
template<typename T >
bool operator== (const T &rhs) const
 Equality comparison operator. More...
 
bool operator== (const mysqlpp::null_type &) const
 Equality comparison operator. More...
 
template<typename T >
bool operator!= (const T &rhs) const
 Inequality comparison operator. More...
 
bool operator!= (const mysqlpp::null_type &) const
 Inequality comparison operator. More...
 
char operator[] (size_type pos) const
 Return a character within the string. More...
 
 operator const char * () const
 Returns a const char pointer to the object's raw data.
 
 operator signed char () const
 Converts this object's string data to a signed char.
 
 operator unsigned char () const
 Converts this object's string data to an unsigned char.
 
 operator int () const
 Converts this object's string data to an int.
 
 operator unsigned int () const
 Converts this object's string data to an unsigned int.
 
 operator short int () const
 Converts this object's string data to a short int.
 
 operator unsigned short int () const
 Converts this object's string data to an unsigned short int.
 
 operator long int () const
 Converts this object's string data to a long int.
 
 operator unsigned long int () const
 Converts this object's string data to an unsigned long int.
 
 operator longlong () const
 Converts this object's string data to the platform- specific 'longlong' type, usually a 64-bit integer.
 
 operator ulonglong () const
 Converts this object's string data to the platform- specific 'ulonglong' type, usually a 64-bit unsigned integer.
 
 operator float () const
 Converts this object's string data to a float.
 
 operator double () const
 Converts this object's string data to a double.
 
 operator bool () const
 Converts this object's string data to a bool.
 
 operator Date () const
 Converts this object's string data to a mysqlpp::Date.
 
 operator DateTime () const
 Converts this object's string data to a mysqlpp::DateTime.
 
 operator Time () const
 Converts this object's string data to a mysqlpp::Time.
 
template<class T , class B >
 operator Null< T, B > () const
 Converts the String to a nullable data type. More...
 

Friends

class SQLTypeAdapter
 

Detailed Description

A std::string work-alike that can convert itself from SQL text data formats to C++ data types.

This class is an intermediate form for a SQL field, normally converted to a more useful native C++ type, not used directly. The only exception is in dealing with BLOB data, which stays in String form for efficiency and to avoid corrupting the data with facile conversions. Even then, it's best to use it through the typedef aliases like sql_blob in sql_types.h, in case we later change this underlying representation.

String's implicit conversion operators let you can use these objects naturally:

String("12.86") + 2.0

That will give you 14.86 (approximately) as you expect, but be careful not to get tripped up by C++'s type conversion rules. If you had said this instead:

String("12.86") + 2

the result would be 14 because 2 is an integer, and C++'s type conversion rules put the String object in an integer context.

You can disable the operator overloads that allow these things by defining MYSQLPP_NO_BINARY_OPERS.

This class also has some basic information about the type of data stored in it, to allow it to do the conversions more intelligently than a trivial implementation would allow.

Constructor & Destructor Documentation

mysqlpp::String::String ( )
inline

Default constructor.

An object constructed this way is essentially useless, but sometimes you just need to construct a default object.

mysqlpp::String::String ( const String other)
inline

Copy ctor.

Parameters
otherthe other String object

This ctor only copies the pointer to the other String's data buffer and increments its reference counter. If you need a deep copy, use one of the ctors that takes a string.

mysqlpp::String::String ( const char *  str,
size_type  len,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

Full constructor.

Parameters
strthe string this object represents, or 0 for SQL null
lenthe length of the string; embedded nulls are legal
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer. The buffer will actually be 1 byte longer than the value given for len, to hold a null terminator for safety. We do this because this ctor may be used for things other than null-terminated C strings. (e.g. BLOB data)

mysqlpp::String::String ( const std::string &  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

C++ string version of full ctor.

Parameters
strthe string this object represents, or 0 for SQL null
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer.

mysqlpp::String::String ( const char *  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

Null-terminated C string version of full ctor.

Parameters
strthe string this object represents, or 0 for SQL null
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer.

Member Function Documentation

void mysqlpp::String::assign ( const char *  str,
size_type  len,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign raw data to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

void mysqlpp::String::assign ( const std::string &  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign a C++ string to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

void mysqlpp::String::assign ( const char *  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign a C string to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

char mysqlpp::String::at ( size_type  pos) const

Return a character within the string.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.

References mysqlpp::SQLBuffer::data(), and size().

int mysqlpp::String::compare ( const String other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See Also
compare(size_type, size_type, const char*)

References mysqlpp::SQLBuffer::data(), and length().

Referenced by compare().

int mysqlpp::String::compare ( const std::string &  other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See Also
compare(size_type, size_type, const char*)

References compare(), and length().

int mysqlpp::String::compare ( size_type  pos,
size_type  num,
std::string &  other 
) const

Lexically compare this string to another.

Parameters
posposition within this string to begin comparison
nummaximum number of characters within this string to use in comparison
otherstring to compare against this one
See Also
compare(size_type, size_type, const char*)

References compare().

int mysqlpp::String::compare ( const char *  other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See Also
compare(size_type, size_type, const char*)

References compare(), and length().

int mysqlpp::String::compare ( size_type  pos,
size_type  num,
const char *  other 
) const

Lexically compare this string to another.

Parameters
posposition within this string to begin comparison
nummaximum number of characters within this string to use in comparison
otherstring to compare against this one
Return values
<0 if this string is lexically "less than" other
0if this string is equal to other
>0 if this string is lexically "greater than" other

References data(), and length().

template<class T , class B >
Null<T, B> mysqlpp::String::conv ( Null< T, B >  ) const
inline

Overload of conv() for types wrapped with Null<>

If the String object was initialized with some string we recognize as a SQL null, we just return a copy of the global 'null' object converted to the requested type. Otherwise, we return the String's value wrapped in the Null<> template.

String::size_type mysqlpp::String::length ( ) const

Return number of bytes in the string.

Note that this doesn't count the number of characters in the string. If your database is configured to use an 8-bit character set, this is a distinction without a difference. But, if you're using UTF-8 in the database, you will need to "widen" the UTF-8 data to use a fixed-size character set like UCS-2 and count the characters that way. You might use std::wstring, for example.

References mysqlpp::SQLBuffer::length().

Referenced by compare().

size_type mysqlpp::String::max_size ( ) const
inline

Return the maximum number of characters in the string.

Because this is a const string, this is just an alias for size(); its size is always equal to the amount of data currently stored.

template<class T , class B >
mysqlpp::String::operator Null< T, B > ( ) const
inline

Converts the String to a nullable data type.

This is just an implicit version of conv(Null<T, B>)

template<typename T >
bool mysqlpp::String::operator!= ( const T &  rhs) const
inline

Inequality comparison operator.

For comparing this object to any of the data types we have a compare() overload for.

bool mysqlpp::String::operator!= ( const mysqlpp::null_type ) const
inline

Inequality comparison operator.

For checking object against MySQL++'s global null constant

String& mysqlpp::String::operator= ( const char *  str)
inline

Assignment operator, from C string.

This creates a copy of the entire string, not just a copy of the pointer.

References mysqlpp::mysql_type_info::string_type.

String& mysqlpp::String::operator= ( const String other)
inline

Assignment operator, from other String.

This only copies the pointer to the other String's data buffer and increments its reference counter. If you need a deep copy, assign a string to this object instead.

template<typename T >
bool mysqlpp::String::operator== ( const T &  rhs) const
inline

Equality comparison operator.

For comparing this object to any of the data types we have a compare() overload for.

bool mysqlpp::String::operator== ( const mysqlpp::null_type ) const
inline

Equality comparison operator.

For checking object against MySQL++'s global null constant

char mysqlpp::String::operator[] ( size_type  pos) const
inline

Return a character within the string.

This function is just syntactic sugar, wrapping the at() method.

Exceptions
mysqlpp::BadIndexif the string is not initialized or there are less than i fields in the string.
size_type mysqlpp::String::size ( ) const
inline

Return number of bytes in string.

See commentary for length() about the difference between bytes and characters.

Referenced by at().

void mysqlpp::String::to_string ( std::string &  s) const

Copies this object's data into a C++ string.

If you know the data doesn't contain null characters (i.e. it's a typical string, not BLOB data), it's more efficient to just assign this object to anything taking const char*. (Or equivalently, call the data() method.) This copies a pointer to a buffer instead of copying the buffer's contents.

References mysqlpp::SQLBuffer::data(), and mysqlpp::SQLBuffer::length().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_24.png0000644000372000001440000000717512502417165024027 0ustar robertousers‰PNG  IHDRã3êÒ(4bKGDÿÿÿ ½§“2IDATxœí›{PTÕÀϲ€ ®<ܯZÀMŒ„A¤Q†L¡ Ó)ãQ¡0E£aëc F-1šiD¤Aº>P¬,De$@@"Ø ×UyDÀ.îC`_ç÷Ç™öw½÷î²â¢lÞÏ_ç~ï½ßs¾=÷ž{¾Kƒ Š9Ãã…UP™JaP™Ja8âŽe2Ù… ËP(( #99ÙÙÙù>)¼ŸäääÇ4< Šÿsúôi\fâçTƒÁ””tâĉÇ2> FÓëõ8!õžJaP™JaP™JaP™JaÌÅLíëë£Ñh6T¨ÑhvìØñüóÏ3™Ì¨¨¨ýû÷_Øg—+Vttt<¤ÎÁÁÁÔÔÔ€€&“¹lÙ²3gÎØd¨s™¹˜©¶E¥REFF¶´´µ··ïÚµ«¢¢">>Þ`0<²1455 ‰Åâààà7ß|óaÊ-ÆÆÆÂÃÃ]]]E"QkkkrrrJJJMMÍÃS*•²Ùì‡×3+à¾Z%%%%%%ÁÇJoo/q`3F(ÆÄÄèõz“D­V>|ØV]XÐÛÛk: ÏXáÖ­[Q®› …kÖ¬™ùÿŶžŸ1‘H„⎭ÌT@YY™@ `³Ùû÷ï///pssûä“O „ÙÙÙèJ•JåââÒÞÞ!À=‰ÖY¸EuëÖ-€R©D‡©©©«W¯–J¥‰$44ÙròäI&“!¬­­e2™¡¡¡& ÿüó‹ÅJKKkllììì,,, Å©Bsf‡ÌT©TÓ&À¬lûžj9S!„ï¿ÿ¾‹‹‹)$B‘HÄçóAuu5„P«ÕîÙ³'00Éd¾ð ?üð1S=úôÓO³ÙìììlÓJ'„æ—ÞBµZ››»dɃÁçóóóócccчž}ûöyxxðùüêêjÓ-J¥róæÍžžž,ë½÷ÞÓh4Ä8¢uV®ý ƒ››ÛÍ›7Ñ¡\.ûí·Y,–··÷ÇŒlwttÜ·o„P£Ñ8;;ïØ±Û»L&KLLôññY°`ATTÔ¹sçL§H’šI œN§[¹r%“É´úG€-3ÕòòòRSSè\B¾àÛä­jjêêÕ«£aÖQX i¦âëSmÂäääààà×_}ìØ±ÙÐÿð8;;GGGÏìÞ¹oÝ’Yy¡nii‰ŒŒÌÈÈxñÅF››[VV–5ÂG‰­¬£x hðþÏ7nP5ÿ&‰P*š°ŸO63ÌTÖ××gÛ¡»0áîîþꫯš¾À1 Ú¼bÇÞ½{i4ZQQÑìua™G\ï÷È;-shN%–œ¡b¹ÁÁÁ+W®Æ·ÞzkZ%;wB?îïï/‰f© ËØ¤ÞoN—ö™gVÖþ3Ãh4Ža%ÇËË àíí]ZZêçç§T*ÝÜÜ,(a³Ù³7áI$’¿þúëÂ… qqq===!!!³Ô‘9 V­Z…ª‚‹/þûï¿:ôòË/[¯„èg»Às*F«¬¬|öÙg.\øùçŸ#á?þÆ`0žyæ™ï¿ÿ u:ÝöíÛy<—Ëݾ}»N§CÏ”K—.ùûû£­|”šDèt:øwKp|||Ó¦Ml6ÛÏÏO(NNNš.3=¤ôz}AA¿¿?‡ÃyçwÆÇÇÛ¶mËÌÌDWªÕjWW×?þøƒØ×ÈÈȽ{÷ˆòãÇÇÆÆ®Y³F ˜¦UÒŽH…¤0ç+RáéÓ§?üðCì ÊÊÊP›Ô-Äè ÏsÈÏXÿ744Xp,Ëqlhh˜Ö“3÷}uf{T¸â1Ò?8]5ª#ÁvŠå”Je__߆ "##Ñ) …m¦ÆÁƒCCCÅb±D"Y¾|¹P(„’–#bíjmmMOOçp8ƒƒƒ8“Fc```II „0??ß´½IÚ©Ô¤¾"ΠÞ4:Ľ4äµZmc§#Š5¢¶¶e³T*6©°¡Ÿ­ÝT\ñiœ®š·ù„ý9999ÅÆÆ¢-¶™‹-ªªªB×tww£¶¹‚½‰‰‰òòò¨¨¨ððð’’ÒïææfGGGT@øûï¿$‰¹ŽH…¤ õ•9!xÀz?Òè3ùßJÇNG~~~ëÖ­«©©A™`™YÌÔëׯãä ‰‰‰óçω‰9þ<:Ë`0°ùçîîŽ,Ôjµ,S±Ûå&îܹ@ÛÙB±XÌ`0ˆe0(“plÙ²eëÖ­###ÎÎÎwîÜÿþîÓÓÓ[ZZpS,–>ú÷8Bp íÈ\ïD˜ó©Çã566b¶¶¶FFFj4R·@²è3ùßJÇ’ZÕCŠV«E¥g!!!·oß6w™iœ¶¬OÅ‚+#-ðVTÓYƒ…Â6,>>>2™ µ;::>ýôSÔ&ìq8œÅ‹755566š^(q ‘HT\\¬ú—œœäMÒŽÌõNô©¯Ì9pfõ~Ó–ö!ÿ[éXR+°zHîêêêïpqq±<rp™k“Z*Ò?8]5®ä ˜™S!Yañ§_PP&‘H$ÉŠ+Þ}÷]t/iÁ„P"‘dee±ÙìÌÌ̶¶6\uuut:û7½¶¶6@{{;iGæz'z€ÔWæø õ~¤ÑÁú÷³Æ±ÓÆ‹Á`¨©©yíµ×|}}wïÞ=00@PàQVý üàtÕt¸’3 ™J,l#:trrR(úøø¸»»§¤¤`_ïˆ{& Eqq1ŸÏ—ÉdXyVVV||‰ûþùùù2™¬²²ÒÜF£Ñh4::ΡÍvŠN§›Á__H÷ýŸ¬`XY°çàà`OÛ˜ÃØðZOV<¨‚=ûåÉšScccÑ"šÂîx²æT û…ÊT û€ÊT û€ÊT û€dE%•J9òè‡BAa ÜN@NNÎãÅ“Nohh˜fŠ‚bnB½§RØT¦RØT¦RØT¦RØÿ:œý #-IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadOption__inherit__graph.png0000644000372000001440000001332612502417165031066 0ustar robertousers‰PNG  IHDR•»ãfK^bKGDÿÿÿ ½§“‹IDATxœí{TWÇyAÀ„@Bj ¯b©§Û#rk ²V[+T uUÐ]¥UaÛíY…ÓêJ…mO+­ˆà»"áUå´°‚ÏV…D­åU*B@d’òJÈköÙM# Bˆ“ÞÏñxîÜܹóÍ|&w2ÉKÁq¤…jêˆIü‘äÜ ä†>ù.'ßÏï *•êîîÎ`0&ÓÉøkooŸ5k–••Õä»ú]ÑÝÝíäädzÀãñØlö”tõû¡ªªjò ó¹AþÈ òGn?ró4úkjj¢P(¦NñOa$“ùkiia±X¦ÚúxÐOhooÿÞ{ï™6ALæO«Õöôô˜jëãA?!‹ÅJII1mƒL“¿ÒÒR___ƒáæævòäIX¸p!8;;€F£IMMõðð°µµ]´hQMM ±–þ¨¥_V©T‰‰‰NNNl6;11Q¥R•””¸¸¸H¥RÈÉÉñððP«ÕIIIsæÌqttŒŽŽ–Éd£­Nt^\\ìééÉf³ãã㇆†ôêo]&“½ýöÛ,‹Çã%$$(  P(_}õ•··÷ìÙ³÷ïß?={Ÿ4•••]]]c4èïï·²²ÊÈÈH$ÙÙÙt:½¿¿¿±±Q·õO>ù„Íf …ÂŽŽŽsçÎq¹\â!™Lvøða¢~ùã?^½zõýû÷E"Ñ‹/¾øþûïã8ÓÙÙéääTSSƒãxjjªH$‹Å~~~ £­N„ nhh¨®®æóùÉÉÉú õËQQQÍÍÍ"‘hÞ¼yÉÉÉÄw¨aaaR©ôðáÃÐÓÓ3ùý6¦Ã†aiiiR©T«Õöõõi4ý=âááqìØ1]ûãÇ}`yyyI$¢\^^>þ|Ç¥R)Çóõõ%v(ŽãžžžB¡(ß½{WW¹:F$•¹¹¹|>ß ?¥RI£Ñnß¾MÔ …B>Ÿã8TVV  ±±ñ·vyüá8~åÊ•°°°™3gœ?üˆž1cF]]®ñ­[·Æö7ì3C;;;¢þÃ?¤Ñhº0 C,gu"Œ\.'Ô××3 ƒþÚÚÚô[ŠD"ƒã8üøãDåtú›ŽóŸ\.×jµgÏžÅ0lÆ +V¬À0L¿Áþð‡úúzÝâ;wÆîÅbévT*­®®€¶¶¶ôôô   ;w͸\nkk+Q®««Û»wï«! ˆ1|$NNN4­¥¥…Xlnnvqq!ÊTª)Þ NÒ?>ŽãH.—3ŒüüüîîîÌÌLƒ!—ˉÕ×ׇãøgŸ}Æf³‹ŠŠ$IYY™››Œyþ‹ kmm­¯¯÷óóÛºu«F£ úè£0 svv.))Áq<))É××W,‹ÅâE‹mÚ´i´Õ‰0 ±±±¶¶ÖÝÝ}÷îÝú õ_‹‘‘‘---b±ØÇÇg÷îÝøã¯90¿ñ377wîܹ–––^^^ÅÅÅ8Ž«TªÅ‹ÛØØà8®V«SSSù|þÌ™3ýýý‰þø^Ó/÷öö®_¿ÞÁÁÉdÆÆÆ 8pà…^P*•8Žr8 à EBB—˵³³‹ˆˆJ¥£­Ntž••õì³Ï²X¬mÛ¶Éårý„ú[Ç0lݺuL&“Ãálß¾KMå‚Oúþ³ªªªçž{ŽÔß555¹»»O~WLˆ)ÙoOãçgˆñƒüÌš5+..ÎÔ)žä€Ífgdd˜:Å“€ü‘äÜ äù#7Ssÿ L&S«ÕSÒbBL?++«ŽŽŽÉ÷3åhµø—_ÞXµÊÓÅÅÖÔY @¡P&Óóøó÷÷Ÿ|'Æ ººùÚµOO·¨¨¥¦Îb,ÌùüWXxƒø_­Öš:‹±0[J¥Z(¼¿ü2xéÒ¦Žc,ÌÖ_UÕ½ÁÁ! Ñ¨Bá SÇ1f믠àFµZ[V&’Ë•¦NdÌÓßÀÀÐ7ßÜV«5Äâк¼ü®i# óô§/¨TJAÁ÷&Ìc<ÌÓ_AÁ÷ú·»«ÕÚÊÊ{½½rF2fèÃ.]jÐh»fÀqüüy‘©"3ô÷õ×õ#+q?{Ö ‡P3ô—Ÿ}ä,Z-^]ÝÜÕõ‹I"só×Ñ!»qãg­ÖÀH4µ´ÔÀK“Ô˜›¿ÒÒºÑî"S«5æv!?5ß== *9œYºÅþþ!ÂNÿßaúTþ 椘‚û?Ÿf¸Üí1+WÎ7ucanãçï äÜ äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘œaó±$&&š:ÑTbe5‡Jµ6uŠ)ÃÕÕu˜¯áÿÞÚÚºpáÂ;v˜$b ¾ûî»O?ýtX¥ß/xæ™gÂÃç%bü¥tþ#7ȹAþÈ òGnžFú“­OŠ!¦ªó1˜Úg1æöûY¹víš««ë4l¨¥¥eÁ‚={{û÷Þ{ÏØ[ü]østttvvž† iµÚžž¢Ìb±RRRŒ½Å'?)Ê‘#G¼½½SRRNž<éêêjgg·k×.ˆß°aѲ¿¿ßÚÚš˜Ò½´´Ô××—Á`¸¹¹>~hhÈ`%<>^gì*))qqq‘J¥““ãáá100 V«“’’æÌ™ãèè-“ɈÆ*•*11ÑÉɉÍf'&&ªT*ƒ1.\ı¢ŸA&“½ýöÛ,‹Çã%$$( b~õÕWÞÞÞ³gÏÞ¿ÿ“‰þùYxxxxxøoN{ ½½½YYYðæ›oööö:t=ztñâE&“©R©p?uê”V«íïï·²²ÊÈÈH$ÙÙÙt:½¿¿ÿСCl6[(vttœ;wŽÇãÁÿçaÇÿ?ëspppCCCuu5ŸÏONN6X‰>Ù8ÔÕÕõ=ñPtttLLLgg§““SMM Žã©©©>>>"‘H,ûùù%$$-?þøãÕ«Wß¿_$½øâ‹ï¿ÿþÙˆUôËQQQÍÍÍ"‘hÞ¼yD` “J¥‡€žžž±÷ynnîH_OîïæÍ›8Ž+•Êa寯FµZíììüŸÿüÇñ””Ç1 ³°°HKK“J¥Z­¶¯¯O£Ñøøø;vL×íñãÇGú‰Dº'Àçó VŽu´£V*•òx<___b‡â8îéé) ‰òÝ»wue///‰DB”ËËËçÏŸ?F6¢FWV*•4íöíÛD½P($@ee¥þ~{Ÿô÷äï?mmmÀÂÂbXh4Úo¼! =zTQQ•••ÕÕÕ<ïå—_¾|ù2•Jmii™?ÿ×wôõõ¹!www¢àååõàÁƒ1*Gcä®!êííícccïܹ³eË¢æçŸÖõìíí½jÕ*¢ÜÚÚÊápˆ÷®Ë–-ûé§ŸÆ£««K£ÑÌ;—Xäóùº–\.W¿=ƺ~/,,ÌËË[¼x11*Êår­V{öìY Ã6lذbÅ Ã\\\êëýMã;wîŒìŠ8 ¡¡x£UN”¶¶¶ôôô   ;w5\.·µµ•(×ÕÕíÝ»—(³X,ÝA •J«««ÇÃÉɉF£µ´´‹ÍÍÍ...D™Jôþv`ŽüÔ=ƒeµZÍf³œœŽ=J<$—Ë F~~~wwwff&ƒÁËåÿú׿ØlvQQ‘D")++3xþµµµîîî»wï6X‰yþ»víšäqp×h4AAA}ô†aÎÎÎ%%%8Ž'%%ùúúŠÅb±X¼hÑ¢M›6ÄÇLJ……µ¶¶Ö××ûùùmݺuŒlÄùU,ŒŒ lii‹Å>>>DàÑöáhLñùol8ŽoÞ¼yÆŒ½½½ú æÎkiiéååU\\Œã¸R©üðÃ]]]mllüýýOŸ>=Ò_VVÖ³Ï>Ëb±¶mÛ&—Ë VÛ_úåÑŽÚ¼ð J¥ÇñÂÂB‡ƒa˜B¡HHHàr¹vvvR©”褷·wýúõL&366v``À` •Jµxñb›a0 [·n“Éäp8Û·o'›Òßxøàƒ"##'´Šþs¹8Fåô3ý1 ú3Êõ»B¡èèè8räHNNŽ1úGè0Êû—ššš—^zé/ùËÒ¥K'ÓϬY³âââÆS9ý<%1†ÿþü›o¾ yyy&ʃ•¼¼¼5kÖ óõ4~ÿ€?ȹAþÈ òGn \?\ºtiÙ²eÓÅhµT*ÕL&ïêêY9ÜŸ9Ýù©ÑPjk9“©0u–)ÀÁÁaäëÊœç¯ÊË»þî»§_yÅûÔ©XSg1æ|þ+,¼@¹xñÇ_~4uca¶þº»û®\iÀ ¤¤ÎÔqŒ…Ùúûúë:âöÇóó¯›:ޱ0[yyß³àjµø÷ßÿ,‘ÈLÈ(˜§¿û÷{D¢6Ý,Æ4µ¨è–i# óôW\|K7ç-h4Ú³gÍs5OgÏ^W©~½lÇqüÞ=IsóCF2fèïÞ=ISÓCâ§ ZQÑMSE2f诨覥åðÏ•T*Í™3µ&ÉcTÌÍŽãùùß+•ꑵ·KE¢¶édTÌÍßÍ›?wt¾T0Ë!ÔÜü}ýu=ÅÒ’>òŸF£-,4·«sûû±¥K½ètšn1/ﺿÿÜgž™M,2™6&Êe,Ìùûàr·gdĬ\9ÿ·›’s?o äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘äÜ äù#7ȹAþÈ òGn?rƒü‘›ÇþþöÂ… MMM¦Šb$***:;Íç—' ÆÚµk---ÿ·üØdtsûsj³¤  Àðü+Äì““œtaTZý믣 ó¹AþÈ òGn?rót½álooë­·*++§¤7@ +ÛØØ¼ôÒKï¼ó޽½ýD“(ŠcÇŽ]¿~]"‘Ì™3' `íÚµ4mB 3ý¥§§äçç§¥¥uwwþùçíapp0..îÞ½{qqq™™™QQQååå Z­áiA$Ék¯½F”mll"""&õ~ 3÷goo?{öl&“ééé[[;á ù'NØÛÛòÉ' ,àñxeeeÛkµÚÞÞ^¢lggkÜ©'&ìO ”••ÅÄļþúë§OŸþöÛo#""BCC9Ø¿?ÑR.—/_¾œ˜gôÚµk6lŽŒŒüöÛoÇñ˜˜˜¿ýío·nÝÒîÚÛÛÁÕ«W×­[·jÕª¨T*ƒ•ºÆú+LN£Ñˆòwß}·iÓ¦åË—¯^½š˜tW«Õž9sfݺu!!![·nýᇈ–åååÑÑÑúEŸ€”——Ìó׿þÞxãaaúûûSRR^{íµðððƒs¾ ‚ŠŠŠ˜˜˜•+Wž9sf¢.àÉÎ7nÜ8xð`UUUjjêÒ¥K³³³/\¸ðïÿ;,,ìå—_Þµk—F£¡ÑhW¯^åp8|>_¡P$''oÛ¶mÑ¢E555û÷ï_²dIEEʼn'vìØñÜsÏ555íÛ·oä†ŠŠŠöíÛ×××·wïÞY³f¬Œ‰‰±··OHH VÑ/€B¡ & îééÉÊÊ"æŸܽ{÷²eËöíÛGLR^^ž››«Ë“šš ýýý†ñùüaÁø|þñãÇ †üòË/ßzë-¡P8l•Ï>û ðŒŒ ¹\¾gÏkk똘¸råÊ_|qñâÅ´´´ÐÐP[[Û ¹x’ñsÍš5ÖÖÖÁÁÁimm½|ùrèëë›7oN‰DPQQL¡PT*Žãr¹ÜÒÒrùò奥¥VVV›7o`2™~~~7n¹¡-[¶ðx”ÉdCCCÉÉÉk×®ÍÌÌ|÷Ýw‰ÎÎÎó8qBÿݦB¡ÈÉÉY°`Áøó888P©T‰DB,vttÚ€˜$扙z¾¾¾æøñãÄ  %11ñÒ¥K*•ŠN§[YY½ú꫼zõ*†aµµµ™™™#»JOOooo¿wïžîÔe°r``àܹsÄ£úeÉd†aöðáÜœ6›moo¯R©Ôj5NW*•G€ÁÁÁ•+Wêç!ÞŽ@LLŒT*ݱcGmmíƒ._¾¼eË‹¥»H0R.—ë?:.>ÿüs‰DòÓO?eggçòÉ3õ×ïT*uÉ’%ß|óÍ’%KˆKKËüã‡zøð!—ËMJJ²´´\³fF£ùâ‹/d2™››[\\Üž={†u´sçN…BEŒ9Ã*@&“'ÿaeغu+Q P(®®®ÉÉÉ ÅÆÆfË–-{öì™1cFddd``àßÿþ÷‚‚•JuðàÁžžž¹sçîÚµ‹x'imm™™yôèÑŒŒŒŽŽ‡naaa0$F{þùçW¯^}þüyýçòÎ;蠟§oÞ¼ÙÂÂâ•W^!’OžÇ~—B¡LÉ÷GYYYÿüç?ǿʰ* ~r1 gL“ä¹¹¹Ä4ï0åã§R©”H$eeeþ󟧶g„A¦Øß?ü÷ꫯΟ?©Ÿœž9sæŠ+ÆSiBž† MySQL++ Reference Manual
type_info.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
9  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
10  also hold copyrights on code in this file. See the CREDITS.txt file
11  in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_TYPE_INFO_H)
32 #define MYSQLPP_TYPE_INFO_H
33 
34 #include "common.h"
35 
36 #include "exceptions.h"
37 
38 #include <map>
39 #include <sstream>
40 #include <typeinfo>
41 
42 namespace mysqlpp {
43 
44 #if !defined(DOXYGEN_IGNORE)
45 // Doxygen will not generate documentation for this section.
46 
47 class MYSQLPP_EXPORT mysql_type_info;
48 class MYSQLPP_EXPORT mysql_ti_sql_type_info_lookup;
49 
50 class MYSQLPP_EXPORT mysql_ti_sql_type_info
51 {
52 private:
53  // For use with flags_ bitset
54  enum {
55  tf_default = 1,
56  tf_null = 2,
57  tf_unsigned = 4
58  };
59 
60  friend class mysql_type_info;
61  friend class mysql_ti_sql_type_info_lookup;
62 
63  mysql_ti_sql_type_info& operator=(
64  const mysql_ti_sql_type_info& b);
65 
66  // Not initting _base_type and _default because only mysql_type_info
67  // can create them. There *must* be only one copy of each.
68  mysql_ti_sql_type_info() :
69  sql_name_(0),
70  c_type_(0),
71  base_type_(
72 #if MYSQL_VERSION_ID > 40000
73  MYSQL_TYPE_NULL
74 #else
75  FIELD_TYPE_NULL
76 #endif
77  ),
78  flags_(0)
79  {
80  }
81 
82  mysql_ti_sql_type_info(const char* s,
83  const std::type_info& t, const enum_field_types bt,
84  const unsigned int flags = 0) :
85  sql_name_(s),
86  c_type_(&t),
87  base_type_(bt),
88  flags_(flags)
89  {
90  }
91 
92  bool is_default() const { return flags_ & tf_default; }
93  bool is_null() const { return flags_ & tf_null; }
94  bool is_unsigned() const { return flags_ & tf_unsigned; }
95 
96  const char* sql_name_;
97  const std::type_info* c_type_;
98  const enum_field_types base_type_;
99  const unsigned int flags_;
100 };
101 
102 
103 struct type_info_cmp
104 {
105  bool operator() (const std::type_info* lhs,
106  const std::type_info* rhs) const
107  {
108  return lhs->before(*rhs) != 0;
109  }
110 };
111 
112 class MYSQLPP_EXPORT mysql_ti_sql_type_info_lookup
113 {
114 private:
115  friend class mysql_type_info;
116 
117  typedef mysql_ti_sql_type_info sql_type_info;
118  typedef std::map<const std::type_info*, unsigned char, type_info_cmp>
119  map_type;
120 
121  mysql_ti_sql_type_info_lookup(const sql_type_info types[],
122  const int size);
123 
124  const unsigned char& operator [](
125  const std::type_info& ti) const
126  {
127  map_type::const_iterator it = map_.find(&ti);
128  if (it != map_.end()) {
129  return it->second;
130  }
131  else {
132  std::ostringstream outs;
133  outs << "Failed to find MySQL C API type ID for " << ti.name();
134  throw TypeLookupFailed(outs.str());
135  }
136  }
137 
138  map_type map_;
139 };
140 
141 #endif // !defined(DOXYGEN_IGNORE)
142 
143 
148 class MYSQLPP_EXPORT mysql_type_info
149 {
150 public:
159  num_(static_cast<unsigned char>(-1))
160  {
161  }
162 
168  mysql_type_info(enum_field_types t, bool _unsigned = false,
169  bool _null = false) :
170  num_(type(t, _unsigned, _null))
171  {
172  }
173 
176  num_(t.num_)
177  {
178  }
179 
184  mysql_type_info(const std::type_info& t) :
185  num_(lookups[t])
186  {
187  }
188 
190  mysql_type_info& operator =(const mysql_type_info& t)
191  {
192  num_ = t.num_;
193  return *this;
194  }
195 
200  mysql_type_info& operator =(const std::type_info& t)
201  {
202  num_ = lookups[t];
203  return *this;
204  }
205 
210  const char* name() const { return deref().c_type_->name(); }
211 
215  const char* sql_name() const { return deref().sql_name_; }
216 
221  const std::type_info& c_type() const { return *deref().c_type_; }
222 
229  {
230  return mysql_type_info(deref().base_type_);
231  }
232 
238  int id() const
239  {
240  return num_;
241  }
242 
248  bool quote_q() const;
249 
255  bool escape_q() const;
256 
262  {
263  return num_ < b.num_;
264  }
265 
270  static const enum_field_types string_type =
271 #if MYSQL_VERSION_ID > 40000
272  MYSQL_TYPE_STRING;
273 #else
274  FIELD_TYPE_STRING;
275 #endif
276 
277 private:
278  typedef mysql_ti_sql_type_info sql_type_info;
279  typedef mysql_ti_sql_type_info_lookup sql_type_info_lookup;
280 
281  static const sql_type_info types[];
282  static const int num_types;
283 
284  static const sql_type_info_lookup lookups;
285 
304  static unsigned char type(enum_field_types t,
305  bool _unsigned, bool _null = false);
306 
307  const sql_type_info& deref() const
308  {
309  return types[num_];
310  }
311 
312  unsigned char num_;
313 };
314 
316 inline bool operator ==(const mysql_type_info& a, const mysql_type_info& b)
317 {
318  return a.id() == b.id();
319 }
320 
322 inline bool operator !=(const mysql_type_info& a, const mysql_type_info& b)
323 {
324  return a.id() != b.id();
325 }
326 
329 inline bool operator ==(const std::type_info& a, const mysql_type_info& b)
330 {
331  return a == b.c_type();
332 }
333 
336 inline bool operator !=(const std::type_info& a, const mysql_type_info& b)
337 {
338  return a != b.c_type();
339 }
340 
343 inline bool operator ==(const mysql_type_info& a, const std::type_info& b)
344 {
345  return a.c_type() == b;
346 }
347 
350 inline bool operator !=(const mysql_type_info& a, const std::type_info& b)
351 {
352  return a.c_type() != b;
353 }
354 
355 } // end namespace mysqlpp
356 
357 #endif // !defined(MYSQLPP_TYPE_INFO_H)
358 
int id() const
Returns the ID of the SQL type.
Definition: type_info.h:238
SQL field type information.
Definition: type_info.h:148
const std::type_info & c_type() const
Returns the type_info for the C++ type associated with the SQL type.
Definition: type_info.h:221
Declares the MySQL++-specific exception classes.
const char * sql_name() const
Returns the name of the SQL type.
Definition: type_info.h:215
mysql_type_info(const std::type_info &t)
Create object from a C++ type_info object.
Definition: type_info.h:184
const char * name() const
Returns an implementation-defined name of the C++ type.
Definition: type_info.h:210
This file includes top-level definitions for use both internal to the library, and outside it...
mysql_type_info()
Default constructor.
Definition: type_info.h:158
mysql_type_info(enum_field_types t, bool _unsigned=false, bool _null=false)
Create object from MySQL C API type info.
Definition: type_info.h:168
mysql_type_info(const mysql_type_info &t)
Create object as a copy of another.
Definition: type_info.h:175
bool before(mysql_type_info &b)
Provides a way to compare two types for sorting.
Definition: type_info.h:261
const mysql_type_info base_type() const
Returns the type_info for the C++ type inside of the mysqlpp::Null type.
Definition: type_info.h:228
mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x64.html0000755000372000001440000001472112502417164024660 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1CommandLineBase.html0000755000372000001440000004220412502417163027145 0ustar robertousers MySQL++ Reference Manual
mysqlpp::CommandLineBase Class Referenceabstract

Parses command line arguments and holds the results. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::CommandLineBase:

Public Types

typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef
ArgumentList::const_iterator 
ArgumentListIt
 Iterator into ArgumentList.
 

Public Member Functions

const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Protected Member Functions

 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
virtual void print_usage () const =0
 Show a message explaining the program's proper usage.
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Parses command line arguments and holds the results.

This class just contains common functionality and data structures; instantiable subclasses follow.

Member Typedef Documentation

typedef std::vector<std::string> mysqlpp::CommandLineBase::ArgumentList

Type for a list of arguments.

Public types

Constructor & Destructor Documentation

mysqlpp::CommandLineBase::CommandLineBase ( int  argc,
char *const  argv[],
const char *  opts 
)
inlineprotected

Hidden ctor to prevent instantiation.

Subclass interface

Member Function Documentation

const ArgumentList& mysqlpp::CommandLineBase::extra_args ( ) const
inline

Get reference to list of command line arguments past the last flag and its possible argument.

Public interface

void mysqlpp::CommandLineBase::parse_error ( const char *  message = 0)
protected

Called by a subclass when encountering a command line parsing error.

Prints the passed message, calls subclass's print_usage(), and marks the object as no longer successful.

References print_usage().

Referenced by mysqlpp::examples::CommandLine::CommandLine(), and mysqlpp::ssqlsxlat::CommandLine::CommandLine().


The documentation for this class was generated from the following files:
mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_26.png0000644000372000001440000000652712502417165024031 0ustar robertousers‰PNG  IHDRË3¶XkbKGDÿÿÿ ½§“ IDATxœí›}PGÇ7BHÛ„$C$4ê(ˆR†Ò–Žv|„`_¦t|¡SÅÚÚÛiiiéL눊µ•ÈÄ –¶¶ƒh‘)Ð@Ç 8%˜Z òb‚y)1/wÏ;ÞÄKr$>÷ùëî·{{ßÝýfwï²GAQ¸ Ù@òŒC:ŒÄ½#q/ž¸s¥RyéÒ¥Y‘B2ß¡Óé¹¹¹4í±(ú8¹¹¹³$äY ®®ç(üfµZ³³³Ï;7+úHæ5 Åb±à‚ä:ŒÄ½#q/¤ÃHÜ é0÷2ÖßßO¡Pfª4Š >>>+W®¼yó&A~E7oÞÌd2±ˆJ¥‰DL&sùòå.\˜)mSkÛùûû¯Y³æöíÛ“^5[ÌE‡Í8íííCCCCCCÝÝÝ`Ó¦MÿƪT*±X|ëÖ-xzÿþý%K–0 ‰DÒÙÙ™›››——×ØØøäª ‹ÅšÞµ°F*•ª¥¥AÍ›7;ËpàÀwhpÜÛ‹ìììììltV‘Ëåö¦ @.—c§ÃÃÀááaï¾k×.èHŒ’’’—^zéÉ…MµšX~\îÞ½ xðàÁSÐ@ @"‘à‚ÓÃ(Ê©S§bbb‚ƒƒ+**Μ9éïïèÐ!@qqñöíÛaN½^Ï`0nܸøé§ŸâããétzTTÔ™3g‚|õÕW111¾¾¾ÉÉÉÍÍͶC:á^xá6›]\\üðáC‡Aðøt@05xyyÑh4xj6›÷ïßÂf³÷ïßo6›“’’f¨««{ûí·mK(++«®®†Çããã………,‹Ëå–””Fg2(ŠX,މ‰Y°`ÁgŸ}ÀÝÈ^‰Õj­¬¬ŒŽŽöõõ]¹reGG‡ÃQ©T|E¬gàåW®\ ommuæ"pŽsq äååiµÚ“'Orrr´ZmUU`ll¬¥¥%((Èl6£(ZSS‹ ˆ^¯÷öö>vìØÐÐPuuµ§§§^¯¯ªªb³Ùõõõ*•êâÅ‹\.€ý°àÁË/¿,“ɤR)ŸÏ///wDQt||üĉPží1àæÍ›:N§Ó îܹsëÖ­XE>ýôÓ7Þ¹s§»»{éÒ¥ï½÷žíÏZ£ÑÔjµ³vÈÏÏOOOèî‹ÃäÁTÛc@VV–F£9qâàþýû¸ñÃ^É‘#GlgáÂ…àÑk¤Õjûûû7lذlÙ2WôLCÌ™™ùÛo¿éõúI]a?†Mßaׯ_GQÔd2áŽår¹Åbáp8W®\AQôµ×^«¨¨@QT­V{yy}þùçANgµZcccOŸ>ûí·ßÚ;¬»»¦J$>Ÿï0H,Õ&“yëÖ-,U( Á㦦¦Å‹Û6ºZ­h4‡%›L&*•ú×_ÁÓúúzLŒàz·¹¹Ù¶•p½k¯$::Ú¾qp5òòòJMM…“æ¤z¦¡×ÚÄ8tØôWú¾¾¾°†¸c•JݰaC}}ýØØØåË—óóóÍÍÍR©”Ë妦¦þþûï …bñâÅX™ñññö7ð@(Â5‡³ 3°U‹Á`(**Ú¶m–¤T*CCCásYFFî¡,000$$[õCþüóÏåË—ÿ÷ßÃÃÃV«•ÇãÁ8ŸÏÇ)Á¹BX+á°Wòï¿ÿ:k¬F&“éêÕ«|>0©žih€q¡Pè0¿+¸ëY2;;ûÂ… çÎKIIsßÄÄ‚ ßÿ½Z­Þ¾}ûÚµkÕjuXXXWWvUoo¯}QðgÉd°œ'…Á`öööb}Ïb±°ÞÒh4R©wÉ믿þÅ_Øz¥¦¦Æl63Œ*•ªP(`|`` ,, ÃUÑàà mQD­m¯$""bÒÆ±…@Ï´5À¸3GºnLs}–Ĥ8<¶X,l6;$$ä›o¾It:ýüù󣣣ǧÓéü1›Íþᇆ††~ýõW‡ë°´´4¹\ÞÙÙ)JKKQÂu˜í“×?ÿüÐjµð´¸¸8++K©Tvuu­X±b÷îݸ‰cdd$(((??¿­­­«««¼¼ðóÏ?ÃT‘H”žž®P(zzzbccKKKGGGÕÕÕÿ¹çžKNN†#Š}l±×Cì°I5ÌšÃ\áàÁƒ"‘hJ—àêã°z3û ‡dqè0üþ°Áh4ªTªS§NÕÖÖº£|’y„[VúË–-Û¶mÛ‹/¾ø$åøùù¹$™³PÐÇŸ¨srräW’i@¡P$ ´ÆÿÅ?ß$³È}:333X,¦ÓéJ¥EѶ¶6OOÏžž˜3 @*•b¶´´„‡‡Ãã’’’U«VA?Aôz}DDıcÇÐ):Œ`×A9Úæ8óØa###ƒTWWóù|l`X³f ÜW;AôôôœœAV¬X±wï^ìÚððð-[¶ŒÙß‹Ãá455á‚G]µjúS«Õ4Íh4:Lµ…@†Ã™uæ¥Ã:;; ‚ƒƒU*. ð÷ßs88QŽ3Œ±±1ÛÎëëëóööÞ³gOhh¨í½ÆÆÆ°°0ooŒÊÊJ8Ρ¶ëŒŽŽâîõÇ,X°¢Ãv Ù¦bk³¥©© náR(®ˆy:Ì'‡MLL|÷Ýw‰‰‰K–,©ªªÂZßØÙ»vízÿý÷Q­©©ÉÈÈ@íLPVV8{ö,îr‹Å"•J>G¥RÅb1úÈaöãG{{;‹Å²/œÜz·kˆxMìPŽÁÁÁ²²2.—»víÚÆÆF«ÕêŠ*·2o Ø hìl¸wAuëÖUUU¡v&ÉdÛrôz}mm-¶ÒBäСCaaað”Ãá\¾|w¯£G¦¤¤ØN€mNƒÁ°oß¾¤¤$‡©¶k³Çd2Á ,ÑÑÑwîÜqE˜ûpè°¹ø¶"88xÑ¢EííímmmãããÄ™SRRt:]kkkSSÓºuëì3`ßç`EE"QOO–á•W^ÁÞGäççøá‡V«žæååÕÖÖVTTäååM»Fö»†œA¬ÍžáááÞÞÞ»wï.]ºÔÇÇgÚ ÝÇ\tXBBBsss}}}___ttôŽ;®]»æ,3•JݸqcQQQbb"›Ív¥|&“¹eË–M›6]¼xQ¡P´··—””`*--½wï^FFFcc£L&‹ŠŠ‰DF£qÇŽ0Ãèèè=\¬”ŸŸŸN§ÓëõXW,ŠX‚ —.]Z¿~=ÛÚÚjkkÝþÕÐôÀisa–´E£Ñ9r„ÇãÙ/xÁ£‰æêÕ«€¯¿þ‡8Ü‹a±XÊËËããã}||"""87Þ@ôzý¾}ûâââèt:ÇûàƒRSS}çL9 Ü5DÐÄÚ çÏŸOJJ‹Å>œ´ ŸÀÑ,9?þ—DAOO·ìq“ÉtýúuøeÎ\Àl6?ѾS÷àðÉYë³)áááA¼ý×ÝÐh´¹c/ð„ÛšŸ.óÃasgf¢“-êÿO ö¤N"f.>K’ûͳöÙÝÄ]I’€ ÿÇ‚éÈä…@h  ¡Á1Ù–ÄbqGG‡É6÷"! M³-Ó ÑÝÝýøñc[[[“mñÅ@.—www¿€B€­­­)·øpûömSnÏ!(B…@h ç[ˆææf‹Åt “0ÒSñÑÚÚÊçó™Naý„öööÛ¶mc6Ïxx„ ¢··—é†ÐOÈçó÷íÛÇlžñ0é„(//÷õõåñxîîî¹¹¹ðꫯ€³³3hµÚ´´4OOÏiÓ¦½öÚk555ÔZújý²Z­NIIqrr)))jµúÔ©S®®®R©òòò<==4ÍîÝ»gΜéèè#“ÉF[j¼¬¬lÞ¼y ))ippP?¡þÖe2Ù[o½ÅçóÝÜÜ’““•J%°X¬¯¿þÚÛÛ{ÆŒû÷ï7Q·i* /Óßßoee•™™ÙÙÙyèÐ!‡ÓßßßÔÔ¤ËùÏþS ”””tttTTT…Bj–L&ËÎΦ–Ñ/úé§Ë—/ðàH$zå•W¶oßN’dLLLlllWW—““SMM I’iii>>>"‘¨¾¾ÞÏÏ/99y´Õ©0!!!W®\ñððHMMÕO¨_^³fMPPPKK‹H$š?~jj*I’!•J³³³ ··wüý6L.!$‰¥¥å¤R)A}}}Z­V¿‹===¿úê+ÝòG5ì´——Wgg'U>wîÜÂ… I’”J¥nnn¾¾¾Ô"IrÞ¼y%%%TùÎ;ºòðÕ©0"‘ˆªÌÏÏ÷ððQ•JÅf³u¹¤¤ÄÃÃ$I¨ªª¢€¦¦&Ã}bÖB$yñâňˆ›€€€3gÎô¿¹)S¦ÔÖÖê¾uë–a!x<žþáÐÎÎŽªß³g›Í~ôè‘n±úúzcV§Â( jºº:7¢mmmúKŠD"G’$üôÓOTå$brC( ‚ %I\\\xx¸D"Ñ_`Ö¬YuuuºÉ'Þççóùº—J¥W®\€¶¶¶ŒŒŒààà­[·R‹ …Â{÷îQåÚÚÚ>úÈÀê@íuhll¤†­á899±ÙìÖÖVj²¥¥ÅÕÕ•*[XL®n×gr%c±X!!!ÅÅÅr¹\¥RYZZZ[[S³úûû`Æ )))eee]]]ß|óÍ®]»¨¹¿üòKNNÎðò_ÿú×÷ßÿþýû"‘(44ô‹/¾ bíÚµ›7oÎËË;þ|yy9DGGÿýï§þ7mÚtÿþýÑV§ê·lÙÒÜÜ|íÚµ;v¼ùæ›ú uXZZ®Zµ*))éçŸnhhøàƒÖ¬YóìºnÂ0Ù±ÈÈC_~~þœ9s¸\®——WYYI’jµzÑ¢ES§N%IR£Ñ¤¥¥yxxØØØøûûS²$}XÑ/Ëåò·ß~{úôéñññééé ,P©T$I–––º¸¸H$¥R™œœ, íìì"##¥Réh«Sçää¼ôÒK|>óæÍ …B?¡þÖ%Itt´ƒƒƒ‹‹Ë»ï¾K  7LÀä2X¤©~uMÞŸ÷¯¿›››çÎk²N“÷Ûä2ÆA!ž[[Û„„¦SÕdÀ¤_Ozzú…B{Ý uoŠÇ³¤&-,,zzú„BÓ}Ç8yÀo;Ž@VV,ÓA˜ÇL‡ d4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(B…@h  ¡B tÆöBà‹/r¹\¦³OŸÃá3bÂàr¹/^Ûžã3¦ÚÛÛU*UAAÁÄ~dBX¹re{{ûØÖ×CÇV¬X1žÕ‘IžC 4P„ Ð@!ϱÍÍͺ—áŒÖHLTã˜ØO1~ÌôÑÆ#R]]={öll¨µµõ÷¿ÿ}OOØÛÛoÛ¶Í5â7M°!‚ z{{©2ŸÏß·oŸ 6j$ÏvÈ`±X‡ööövttÜ·o_nnîìÙ³íììvîÜ IIIqqqÔ’ýýýÖÖÖ·nÝ€òòr___çîîž›› Adddx{{O›6Íßß¿ªªJÿ0KuËÊÊæÍ›'’’’G¬ú!Ú˜Ãõ©S§\]]¥R)äååyzz h4šÝ»wÏœ9ÓÑÑ1&&F&ûõÑùjµ:%%ÅÉÉI ¤¤¤¨Õêc¼úê«@ɧŸA&“½õÖ[|>ßÍÍ-99Y©TR}øõ×_{{{Ϙ1cÿþý´gFgl78óóóY"##åryNN¬\¹R.—gee@OOÏ?üààà V«I’’$%‰¥¥å¤R)A}}}Z­ÖÇÇ端¾Ò5{ôèÑáBˆD"]6+ Gí¯E*•º¹¹ùúúR{ˆ$Éyóæ•””På;wîèÊ^^^Tùܹs .4ªÑ•U*›Ínhh êKJJ¨ÀPUU¥ßoÆtûäB÷F,¿óÎ;7n‹Å\.·­­š{ñâňˆ›€€€3gÎ$9eÊ”ÚÚZ]³ÔÈ2D…BAÍ­««ãñx#Vu8{öìa³Ù=¢&y<^}}ýðÅx<ž¾Ovvv²Q5ºr[[›þ’"‘ˆ ?ýô“1!õ?˘…`ø²sÅŠ¥¥¥‹-¢…BADaa¡D"‰‹‹ —H$®®®uu¿½ëöíÛÛ¢z…B¡Ê§¥­­-###88xëÖ­TP(¼wïU®­­ý裨2ŸÏ×í0©TzåÊãc899±ÙìÖÖVj²¥¥ÅÕÕ•*[X˜p7Í£‰:Bh4@àäätäÈj–B¡àñxEEEb±øË/¿äñx …âã?'Ožìì쬬¬ñ"00°©©éêÕ«sçÎݵk׈•¤ÁsˆêêêN:$IjµÚààà?üP"‘8;;Ÿ:uŠ$ÉÝ»wûúúÖ××××׿öÚkëׯ§IJJŠˆˆ¸wï^]]ŸŸß¦M› d£ÎQôQQQAAA­­­õõõ>>>TàÑúÐp·?¯CI’6l˜2eŠ\.×o|Μ9\.×ËË«¬¬Œ$I•JµgÏžÙ³gO:ÕßßÿøñãÃ…ÈÉÉy饗ø|þæÍ› ň•$}è—GûkIOO_°`J¥"I²´´ÔÅÅE"‘(•Êääd¡Phgg)•J©FärùÛo¿=}út‡øøøc¨ÕêE‹M:uH‰Díàààââòî»ïR_(!ŒaÇŽQQQOµŠ~'Ÿ4Piz‰1!˜¼1¥T*;::>œ——Ç` D&O*kjj~÷»ß­]»öõ×_O;¶¶¶ ÆTšžIã)Ûe‡ dÂç÷²™l  ¡B 4ÆuÙù§?ýi¢r0 I²€Å·^U??¿Õ«WkµÚ‰MÃ?þ8€ôò’2dbX½zµŸŸßØÖÅ—ÁƒLöøå—w²X¬††mm§0‡aðΞm I ¢²²žé,̃B@~þÕÿß̹Êtæ1w!ºº~©©i%I’ ÈššÖ®®_˜NÄ0æ.Dyy-›ýk'°Ù§O×^þ…ÇÜ…(,¼¦»VÒhˆÂÂkÌæa³¢µUÜÐЮw™EÖ×?üùg1ƒ‘Ǭ…(+»eiÉÖ¯±´d—•Ýb*ÏdÀ¬…((¸ªVÓî­©ÕZ3¿Ö0_!nßn¿¿wxýýû½·oñyKK6—ËòÏÒ’-÷ÕÖ>`:#3˜éãÜܦoܤ›¼|¹üýçèj\]§3k€ßv$$€¬¬X¦ƒ0™Èh  ¡B 4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(B…@h  ¡B 4P„ Ð@!(BƒöÀ•JuâÄ ¥RÉ` F(,l€+\™bjx<ÞêÕ«¹\îoUú¯è+..f. ÅÅÅúО1¥Ñh ªªŠ¡lˆ© ¤vº<‡@h  ¡B 4&íííÕZ áááÿøÇ?d2ÙÓ&  Ã9G›«ßfjjªþ5ÿÄ~ð1óâ?É6##ÃÅÅ…$Éžžžôôôÿûß»ví[#ú5l6;22r<Á~øá‡ªªª?þñãidÂyñ…°··Ÿ1c888ÄÇÇïØ±c<è?ž`áááÿú׿.\8¼eËXYY»téÒãÇûí·‘‘‘K–,9|ø0¤§§ïß¿ŸZR¡P„††655@uuu\\\HHHTTÔ·ß~ $I–––ÆÆÆ†……mܸñÖ­[úÇLêzéÒ¥èèèeË–¥§§«Õê+~¼5pìe³ÙÓ§ÿúëË—/¯_¿>44tùòåÇ‚ Nœ8¶iÓ¦»wïèý­h4šÌÌÌeË–-[¶,33SÿÊÞ@›+V¬˜9sægŸ}6üéÒó=±Û Ç0ž1žCܸqãàÁƒñññÙÙÙ—/_>tèPbbbnn®\.ÿÃþpéÒ%êÍf—.]rqqñððP*•©©©K—.¥zgÿþýJ¥²¢¢â?ÿùϺuërsscbb>ùä“á:yòä'Ÿ|òñÇ×ÔÔèºfx¥½½}rr25W¿ J¥R¡P<~ü¸­­-''‡z_ùãÇwíÚ5wîÜcÇŽ%&&fggËd²âââüüüøøøÜÜÜèèèÌÌÌ!èòŽë¢¢¢ÎÎά¬¬Ï>ûìæÍ›GŽÑÍ2Ц……ÅöíÛoܸqöìYýÖFÌöÄn7ÃxÆ(ĪU«¬­­CBB **ÊÚÚ:44úúúæÏŸÏápD"œ?>$$„Åb©Õj’$ —Ë -//·²²*..Þ°aC@@€ƒƒƒŸŸßºuë†o(11ÑÍÍÍÛÛ{ݺuçÎ­ÒÆÆfÉ’%Ô\ý2¬[·.,,lÉ’%111AAAÀår:”””äàà ```àÔ©SúyôGªW¯Ò^ÃTYY¹eË@àîîž ?×@›àææŸžžÞÝÝ­«1Û»Ýp ãã9„µµ5p8œ!e°°°¸pá‚»»û7¶nÝ Ó¦MûüóÏ‹ŠŠŽ9âééåçç×ÙÙéáá¡kÓÝÝ}ø†ÜÜܨÂÌ™3Åb±ÊÑ8v옫«+ ýío;qâ‡Ãyøðá Åܹs©%Åbñhytèhoÿí5L]]]Ë—/×MÚØØèÊÚ¤X¶lÙ… ÒÒÒ¶lÙBÕŒ˜Â@·Ža<Ïä¤òõ×_ß»wï¬Y³^~ùeGGG$"55U£Ñ|÷Ýw;vì8yò$ŸÏoii™3ç×·TÜ»woxS>¤:±­­ÍÁÁÁ@å±²²Z²dINNŽL&³¶¶NMMMMMõ÷÷W«Õ•••àììüÄ<#bgg÷ùçŸSÆô÷÷K$ݬ'¶Éb±¶mÛ¶víÚÓ§OS5ƒƒƒÃ³3†ñ<“û¾¾¾Z­öèÑ£ÔÁ X,VJJÊ… Ôj5‡Ã±²²zã7xð`ooïœ9svîÜùÎ;ïóyãââ222Ö¯_Ïb±/^œÐÓÓCÍZºt©1m†‡‡ÿ÷¿ÿ½~ý:Œ˜­´´t 1Œ ?Úd V­Z5!_çäätuu}ðÁƯÒÞÞþæ›oê¶>dÒ@%2fóóóW®\©«™ø!C¥RuvvVVVþùÏžðÆ‘gÍÄ q÷îÝ„„„7ÞxcáÂ…ãiÇÆÆ&<<ܘJdyVCò\`Š!y®A!(B…@h  ÚJ6› “á‡\ˆÉÐÿz †\v*•Ê3gÎ ù²ya³Ùaaa<OWƒ/ƒGhà9B…@h  ¡ñ? 8·½5_IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/functions_func_0x68.html0000755000372000001440000001040212502417165024655 0ustar robertousers MySQL++ Reference Manual mysql++-3.2.2+pristine.orig/doc/html/refman/inherit_graph_2.png0000644000372000001440000001442412502417165023736 0ustar robertousers‰PNG  IHDRtö/ùãbKGDÿÿÿ ½§“ÉIDATxœíÝ{PSgÚð÷$5rOH¸ßH‡ºm¡2ÕV×KîèìZÑR¥­¸¥vwÁ±-«¶ÝRÙ²#Þºã¥StÝKƒi·:jÖo,Èç¥Q¬ÄáÒ.I †[nï÷Çéæ‹ÉÉ$Èóûëøæœ÷}!d4=š””äë뛞ž^[[k~ÆDž@UWW'$$p8œ¼¼¼±±1ÊAôèÙ–ù²N§ËÏÏçr¹'??_§Ó?><<\¥R!„ÊËËÁÐÐBè믿þÅ/~Ád2CCC÷îÝëÌ;µŒ‰õÞ)?;ñ›»ïê`: „Þç‰ÊÌÌT«Õ¥¥¥¡ 6¨ÕêãÇ#„úûûëêêX,–N§Ã—••%''FF3gΜÏ?ÿ¼»»ûĉ^^^æøñã§²²R&“}óÍ7¡ÿÜÈ…U«V‰Åâúúz>ŸÿñÇSbŒJJJÈðÌ—‹‹‹_~ù厎‘HôÔSOíÚµ cüÚk¯½þúër¹œËå644`ŒÕjµ··wvvvWWWYYB¨··×á;µ¡­½S~vâ·C(Zç%ÈS`Vp2Oݼyc¬Õj-–|øÐ`0$''Ÿ:uÊ4í?þñë<%‰ÈW…B!ŸÏ§´jbbbww7¹|éÒ¥… bŒU*UDDDJJ ™ã0Æccc?þø£F£1 uuudß©míòspø¥P¢ÌSpÞÀÿóõõE1 ‹e„N_·n]eeeÿåË—7mÚ„ ¬­­­¯¯ˆˆxá…®^½J£ÑZ[[.\hš3%%ÅzGñññäBbbbWW—AJR©444” ‚ V®\ÙÖÖ† ÈÉÉijjzûí·ÉÕ¼½½ÅbñêÕ«Ÿ~úéS§N9ùNc½wÊÏÁNüãy geddTUUUTT,^¼˜<›1gÏžU*•[·n]³fR© ÿá‡L[555YOEž „ÄbqXX˜AJl6›<2"£êëëBG]±bÅ»ï¾K®622²aÆüüü›7o~öÙgãz³v‚±Þ;åç0®ÝÙy g-Y²D¯×fee‘#A¬ZµêܹsjµZ«Õ2 &“™ŸŸ_]]-—Ë/\¸°k×.ë©¶oß.‘HßÿýÍ›7Û$/!Y,¯[·n÷îÝííí"‘hõêÕÇŽ3ÙÙÙ¹¹¹ååå—/_®©©AiµZooï‘‘‘‚‚„ÐÇ|³”ÚÚ;åç`'þq›Ø9$3 rîú”é0ÁÖò¶mÛæÍ›§V«M[ …Bçí혘X]]1Öjµ………±±±>>>ééé_|ñ²º>UZZÍf³sssGFF(M+“;2_V«Õ[¶l d±X999CCCGŽyòÉ'µZ-Ƹªª*44T©TbŒ:ùÙgŸeffr8‡ïÔN„¶öNù9؉ßÊëSP Ì A… 6Lrž>ø@*•ž9sÆùM$I||¼éšÅí º‹{ƒ©¨¨Ø¸q£ÅÞ¡ž'N•Éd'Ož,//ww,³\ŸÀ) Ï<óLvvöÒ¥K'3ŸŸß[o½åÌ »xT0$8ﳂ«ÎûÀT£<ïƒã)€§ƒ<ÀdÉd²W_}5&&ÆÇÇ'55µªªÊÝQ3=aG„E÷/;y €IQ(䃾B¡ðúõ민òJffæÅ‹Ý×øìܹÓÝQØ¿÷0)Ë–-3ÝÁ¸`Á¹\~àÀ_|ѽ ›Í6USð@p<À¤œ;wnûöíæ#'Nœ —Þxã 6›ñÞ{"GeUœYÁVµ–3gÎ$%%íÛ·!d0öïß/|}}Ÿ{†[ïÂü¼Ïzd£–Ëôqx{(äÄýè@Ö{"ïü¦´iÓ¦åË—·´´ˆD¢'žx‚¬d€ì–Uq¸‚j-ëׯW©T%%%!…BqèÐ!ó 3äczøÑ{ÐIæ7‹[σmT’™ P×Ì^S”§È§mU*å«Z­–N§ß½{—ücee%Y­Ù-«âp;ÕZjkkÍ×Öf°yÊbl£’ÌT€º.¸X`` —˽wïžù`cccjjêððpOOÁ`àñxä8ŸÏ7HqXVÅÎ vªµGL¦5;;;V˜¡d1²QIfÚ@ž`RÖ®]{ðàAlv_bYY™N§c2™\.—N§·¶¶’ã---ááá“ߣj-UŸbbbV˜¡d]=в’Ì´ßû˜”¢¢¢¤¤¤¬¬¬ßýîw>>>UUU‡þúë¯B cãÆyyy%%%CCC~ø!Y]o’Ì«µìٳٮֲmÛ¶üü|ÿgŸ}ööíÛ}ô‘饾¾>çwJÖr9pàÀàà`NNNjjê‘#G&ùFÆaŠN2ðZ­¾¹¹û›o~ Ó}¦âúI*•®_¿>,,Ì××7--íüùó¦—”JeVV‹Å ݱcY­9* ãp'«µèõúýû÷óùüùóç§§§“A˜êQ9‹ëSÖ{¤¬å2 ® xÌ©TCI¯DÒÓÒÒ÷àADÒÛÙ©Ðë¡oO*„çû<Ôuáa­DÒÓÜ,‹{::ÍÍr©´_«Õ#„ØlŸ¤¤°èhVZZ¬@"„„…x{ÿÕÝ!ƒ‰ƒ<\I&èíU/\åÂ91ÆJ2‰Åòöv…X,ïéQ#„ètÇIHY¹2Y à&$„DG³üý™.Ü;ð§€k 9r¹´ô?L¦÷?þeÂóŒŽêLÉH,îioWH¥}jõ(BÈÇgNRRXBBÈóÏ LJ Ýuox(ÈS`²FF´¥¥ÿùë_/iµzƒÁ888¢PhX,§~KêéQ“Y‰òÓ N“Hz,¿_F&#±X.Ëe²Î@DTTPT+55vóæôèh–@ÀårýÝõFÀŒy Œ[MÍíââoÛÚúY$)„F|òIÍ®]gFLDDD ÇY±"™Ïçðxœøxd%0^§À8|ÿ}ËŸÿ\}ûv'Nûïm€–t:cDÄü}û2xm R‚vµ$&“ùæ›ovvvöööRFHù933SmªòÔ’%Kôz}aaaVV9BĪU«Î;§V«µZ-ƒÁ`2™ÙÙÙùùùÕÕÕr¹üÂ… »ví²žjûö퉤±±ñý÷ßß¼y³­ÁÁÁAÓzæËEEEuuuYYY×®]‰D{öì9|øpQQ2kWÛÖÖv÷îÝ©hW[PP€µ«5½}‹vµr3wJ¶«moo‰D«W¯>vì˜Å<ÅÅÅ‘‘‘ÁÁÁ”R~Avf`úXœ:}Ê~¿VŒñ¶mÛæÍ›§V«M[ …Bçí혘X]]1Öjµ………±±±>>>ééé_|ñ²º>UZZÍf³sssGFF(ñ£WpÌ—ñ,nWk>FKII©¯¯'7¤ŒÐú ²5³p} ¸Ü>‡üÁH¥Ò3gÎ8¿‰D"‰7…dñG;ƒÀsPö³`2¦ä>ÏÑÑQ™LvòäÉòòò©˜0«LÉõ©†††gžy&;;{éÒ¥“™ÇÏÏï­·ÞrfðƒúSÀÅ༸Üãÿ2`¦ƒ<ðt½0Í Ì` …×ïÜéº}»Óh4þûß;ܘ٠OÉÖÞ»÷Ó;?ݹóÓm--=lö¦wÞù’F# #‹åãîÁŒG‘§Z[[ÿö·¿M(`ik–ÉFd²Ñ®®aµÚ€1¦Ñò±vrŒ±Á€B|~°[#µ)66V*•º; €bccMÏ®Ùb™§"##Ïž= ?ü;èt?g BB¡Ÿ«b?ðyyÑíŽ%•JwìØ-uÝëûï¿ÿôSÇ­³-óÔÁƒ<85!ÇGW—êС‹×étB§3ÚZ “é=446þœé ÏI‹-ÊÈÈpw³š“÷¯XÞ?€óš›åûö}ûí·":f0ØÌV!ft4+:šÅ¸ !<ǽɋ ¡PHÞ0ÜÅÉ»íà::˜¸„„'¶Ü¸ÑþÉ'Õ m4a}öWVöæè¨¾­­¯¥¥¯¥¥÷Ú5‰B¡A1ôÈÈ ÃãÇÅqââ‚y¼`.×ßïx:ÈS`²ž~:ºª*ïêUqAÁ¿š›» ‚f4þ|lååE{þùD/¯GnÓÓé 2Ù€X,‹åí튦&YUÕÍž5BˆÁ ‡…DE±‚„„òø+**º–Îr§€k,Y"¸t齯¾úßââ÷õ©F„1ær,’BˆÁ “ç€+W&›‡ÛÛíí ±X.÷46¶•—×kB~~scb‚ɜ͸ „ûøxâ/0E O—¡Ói7¦ýæ7OýóŸ×º000’Àur[fJ 3%%Ò|ppp¸¹Y.÷´·+::—.5µ´ô’ÂÈ ^ä¥.2%$„Ι3“þ>{N…¢ D2ÍÁϤïÌÞÞ^¿ýíó™™Ïþýïÿ“2™©üý™iiqiiq¦òœ±£CÑÜüóiccc[G‡cìåE üï1W™¿"#ƒh48gœn­­­iiiýýý®šò˜óçÏùÖ»|ZÓ9ã’%Ó Z="•ö“Ç\ÍÍr‘¨ë_ÿº©ÑŒ!„¼½½bbئc.€›˜æç7×åsF£Q¡P¸pBxÌx~~óRR"׬Yøûß/?|xÓ… ïÜ»÷—k×>8}úÍÝ»µhQœJ5TYyã¬øõ¯,Xðþ³Ïþ93ós‚`8œyõÓ¥ì;ÞH(79þ|xx8Ù ³¼¼\  ™obݳvÑ¢E!²·kLw¡cÜdhhìήêê[Ÿ~zñw¾D …Bû› ÒO—r§ˆÄV¯Ù×^{íõ×_—Ëå\.·¡¡›µ  ìYkÑ À'«éCž³”“yj¦ôÓµÞé"±ÕkV¥REDD¤¤¤¹›å)Êžµ.ÏSpÞ€=3¥Ÿ®õN'‰­^³999MMMo¿ý¶Å®ítÕu!ÈSLœ‡ôÓ¥Üé"±Õk¶³³óèÑ£+V¬x÷Ýw­wm««® Až`â<¤Ÿ.åN' å&F£1;;;77·¼¼üòåË555æ›Øéª«Ñh\öA;s Àã9w}j¦ôÓ¥ì;ÞH(79räÈ“O>©Õj1ÆUUU¡¡¡J¥Ò|ëžµ:nñâÅ>>>¿'¯OA½0K¹ª^ÂŒî§ëö{â¡^S úéN¸>ÀA?Ýiç}`–‚:yžÀÉó>8žÀ•d2Ù«¯¾ãã㓚šZUUå™ž¹!B"‘P¾ä9 Oà2 …‚|ÒM(^¿~ý•W^ÉÌ̼xñ¢»ãŸ€€€;wº;ŠGÀut\¦  `Ù²e¦û›,X —Ë8ðâ‹/º7°qa³ÙäãÄžާ7[E Î;·}ûvó5 Nœ8A. ¼ñÆl6;""â½÷ÞEŽJ28³‚u¹r«3gÎ$%%íÛ·!d0öïß/|}}Ÿ{†gÞõ<!N—ŸŸÏår9N~~¾N§›ìêÃ;¬x,!'îó´…²hYùD©TÚÚjÓ¦MË—/oii‰DO<ñùL/²[’Áá ”å È­Ö¯_¯R©JJJB …âСCæ•ȧpð£÷¬’Ìïá´žc\\\üòË/wttˆD¢§žzj×®]û1ÔKÀ¾Éä)Jä£p*•ŠòU­VK§ÓïÞ½Kþ±²²’¬€ì–dp¸e¹r«ÚÚZó5u¥ìDž²˜cœ˜˜ØÝÝM®péÒ¥… NøCƒz L«ÀÀ@.—{ïÞ=óÁÆÆÆÔÔÔááážžƒÁÀãñÈq>Ÿoª`§$ƒÃì”+ ˜Lkvvv:¬Ù@Éb„T* %‚ ˆ•+W¶µµ99Õ„AžÀeÖ®]{ðàAlv7PYY™N§c2™\.—N§·¶¶’ã---ááá“ߣrdI“˜˜‡5(Ỹb³Ù¦C0•JU__?¡ØÇòãFY´!TTTTWW—••uíÚ5‘H´gϞÇ!„ ÆÆóòòÚÚÚîÞ½ûᇒõª&ÉN¹ Û¶m3¯”ðÑG™^êëë“›q¸ÓuëÖíÞ½»½½]$­^½úرc“#LøÄ€ Mâú”­¢c©Tº~ýú°°0__ß´´´óçÏ›^R*•YYY,+44tÇŽdýä¨$ƒÃ¬ËP®©×ë÷ïßÏçóçÏŸŸžžNaªÁ-®OYïQ­VoÙ²%00Åbåää MìcÄP/ûà¹OÏͧžòÀÓAžx:ÈSOy àé O<ä)€§ƒû<Á,åååe0Ü@t:]¯×Û_êy‚Yê»ï¾ëééqwq¹\‡ëÀñÀÓÁõ)€§ƒ<ðt§žîÿ-q°p{-HIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1SetClientIpOption__coll__graph.png0000644000372000001440000001371112502417165032050 0ustar robertousers‰PNG  IHDRÀ»¼[RbKGDÿÿÿ ½§“~IDATxœíÝyTSgÞð' ‘EÐ a ƒƒ…aÑ9ʨ§nA´Ó©¶"DÚÂx,‹GOJ)§3Ž­«RÔ"dPAhµ,BEDxõ°Ä†­HJ–ûþq}ó†ä²^$—úûÿ¸÷ɽÏó»7_ï’…Ð0 CL]Ó€¹ HR @€­ÙìéÓ§{÷î‹Å³9èkEGGçÔ©SVVV³6⬨ººúÊ•+^^^³9èk%''Çßßÿw \vvöìúš Ñh³<"\R @€ HyíÔÚÚ:³WšCCC‘‘‘Ë–-300pqq‰—J¥©D#^»Í¬ÁÁÁ•+WÖÖÖ&$$ܹsçàÁƒYYYîîî2™Œpy>ŸÏf³ñi‹uàÀY,ö•ÐÀmüïIll¬±±ñ7 BhéÒ¥›7ovttLOO R_^.—÷ôôàÓl6ûèÑ£³Zî+@Å#F;s挽½½±±ñÑ£G322¬­­.\xøða„PXXX`` ¾¤P(ÔÓÓ»{÷.B¨°°ÐÙÙYGGÇÆÆ&##!$—ËOž>>iii¡;w $''#„º»»üñG###‰D‚aXff¦ƒƒƒ\. …ÚÚÚIII§OŸÖÒÒ …ÉÉÉ&&&yyyEEE–––¡––¼|ÂÃã¹¹¹ººšËåÆÄÄ6bÖßßŸššŠ—§˜îëëC •ú+**LMMÇé_LyÚÏÏÏÍÍ­­­­¡¡ÁÑÑ!´cÇŽ¾¾¾ÔÔT„POOÏdvǛܳ13( ºº: ÃFFFT¦[ZZ¤R©™™Ù70 ÛºuëÑ£G1 ëííe2™ß|óM__Ÿ\.”Édßÿ½¢Û³gϪ¨¡¡AQ—Ë%l«Î±TUUÅf³ÇéoQLŒŒ0ŒÆÆF¼=//!T^^®¼í“Ùu³ *žÂB!&“©2b0ï¿ÿ~^^^wwwii©ŸŸBÈÐа¼¼¼ººÚÒÒrÆ ·nÝ¢Óé|>ùòåŠ>Õ²µµÅ'ìììž?>N£:‹effV__¯Ò^__¿bÅŠÉwÕÕÕ%“É–,Y‚Ïr¹\Å’ÊÛNA Ðø¼¼¼._¾œ½víZüÄ$‰äryNNNooo``à»ï¾ÛÛÛËápîÝ»§X«©©I½+ü0€jnnÆŸ­± ùùùÅÆÆ*ßs %$$xzzN¾+SSSƒÁçóñÙ¶¶6‡ƒOÓ锂fóp7ùS˜âpM8-•JMLLLMMÓÓÓñ‡D"‘ŽŽNnn®@ HIIÑÑщDñññ&&&ùùùÅÅÅ„×@®®®---555¶¶¶GŽ!lÄÆ¸Â0ì×_}óÍ77lØP\\ÜÜÜœ——çààðÖ[o‰ÅâqúÄF_ùúúº¹¹ñùüû÷ï;88àƒŽµÆßup 4q€0 ÑÕÕPî|É’%óæÍ³³³+((À0ldd$66ÖÚÚZ__Íš5çÏŸWPZZÚâÅ‹Ùlvhh¨H$"lÄF?ÙÊÓ† …ÂððpGGG===‡¸¸¸ááá±ú—H$k×®Õ××Wé§··×ßßßÈÈÈÜÜ|ÿþýø  U“ Ðd:tÈ××wJ«¨<ñ*³ã4NÏ v5y³ ¹÷B¢X,îèè8sæÌ… 4] ˜ƒÑ·oß^¹rå'Ÿ|²qãF2ý,X° 88x23Øÿï ›Å/fgg{{{Ïæˆ¯ÆãñvîÜ9k#ν#  HR4pŸ’’2ûƒ‚WdVÄáp ƺ¹ÕÓsF 7hºÉb0Š÷ÑfÇ¬ÞÆÏ-2™|Ù²h„PCC,>ç?¼üŠÀ5ИªªZ{{‡z{…••­š®…º @cÊÉùYK‹ÎdÒsrj5] uA€ˆ‰Å’¢¢{R©L"‘Ý‹%š®ˆ¢ @ÄÊÊ(B#KÊÊh¶Ê‚»tégÅW&h4Ú¥K?k¶Ê‚—–þL&Çge2yiéÿ ÀßÅ""põê}¹|Ô«r9víÚ}MÕCe ¹¹?«¼:†aXn.œÅ@€T ƒ••-r¹\¹Q.Ç*+[‚AMUEY UW®Ô¾îL£Ñ®\¹§Þþšƒ©ÊÎþYå'—ËáEu QÚÛûž tïÞ³ŽŽþÙ¯ŠÊæÞ·2^©în¡…Kq„¿–¨£óò›Åt:½»{Ђ¥±ú¨ÞOpðY„Prr€¦ ¡.8…R @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR(÷ʬ­­?~¬é*^ÒÒb#„¤ÒnMò’µµ5ŸÏ×t£P.@4mÿþýkÖ¬Ñt!”SUUuüøqª=_Tü#›«W¯öòòÒt”Cµèàà¤@€) @Êœ P(Œˆˆ°¶¶ÖÕÕµµµŽŽ‹Çû5¸ÖÖVÅÏNÉÐÐPddä²eË \\\âãã¥RédVœöˆsΜ Phhh]]Ý¥K—ž>}zúôé‚‚‚ÈÈH„ŸÏg³Ùê˳X¬Lu”ÁÁÁ•+WÖÖÖ&$$ܹsçàÁƒYYYîîî2™Œpyåѧ7✄Q BˆÇã¿ ‹Åª®®VÌþøãVVV†µ´´ÌàEDD¬[·N*•*Z„Báo¼‘ššJ¸üÌŽ®ŽÇãQñùÒtª& ++«Ý»wwww«´!„LMM±ÿ{:KKKÿð‡?¤§§+v=B(33ÓÎÎÎÐÐ0!!Ã0¹\ž˜˜hooo``àêêZXXˆ/lffVRR¢2Ä©S§6lØ€wžŸŸ¿téRccãÐÐP±X¬>:¾J___@@€‘‘‡Ã ‰D„eL4)“ еk×8޶¶¶»»û?þñÇãíÊO>½eË–²²²úúzåíØ±£¯¯/55!ÔÓÓ“ššÊáp®^½*JJJ¸\.B¨¯¯!$T†®¨¨055Å;÷ððhnn®®®ær¹111ê£ãÓ~~~nnnmmm ŽŽŽ111„eL¸g @“2™a&•J«««ccc FVVF ††•v„Pyy9†a###¡––GGG|uÜùóçÇ PUU›ÍVîÃ0Çår 422Â`0ñö¼¼<.—KXÆ„›LÍͽ‹è¡¡¡‹/"„V­Zuøðᆆ†C‡EEE.lgg§Þhaab2_þ X[[›£££âÑ?þñ!‹eff†º”Õ×ׯX±Ÿ¶µµUŒòüùsºººd2Ù’%KðY.—«XR¥Œ9jîÃ0__ßû÷_þ7FÛ¼yóXwׄO>j«/^ÜÔÔ¤˜}ðà>áçç«|Ï544”àéé‰Ï⇄Pss3žu¦¦¦ Cñz[[‡Ã!,cŽš{Û ¯¯¿{÷noo">Ÿ_YYáãã£X@(N©Ã½{÷FEE]¿~½§§§¬¬,&& çÈ‘#¿üò‹››ÛÕ«W[ZZ._¾¼jÕ*‡³gÏ|Å}ûöµ¶¶ÖÖÖ:th×®]„£3™Looï°°°G566~þùç~~~¤¶Ÿj4}U…&q $•Jcbbœuuußxãà·6‰díÚµúúúÑõ¢Å>-“ÉŽ?¾dÉ’… zzzã …ÂððpGGG===‡¸¸¸ááaE‡iii‹/f³Ù¡¡¡"‘h¬Ñ{{{ýýýŒŒÌÍÍ÷ï߯¸ S)cÂ=CÍk ê4¹‹èTXXX__¯˜ÍÍÍ]¾|ùø«¼ê—|Q3@sï6ãvíÚUWW7<<\]]}øðá   M5gPñe³,**jxxxÛ¶mÀÆÆæ“O> • L¸Ìk‚Šiåñx;wîÔt!”“íííMµç Na€ HR¨xíäädjjªéBBÃh!»¨««ëþýûT{¾(wÿÙgŸ={öLÓU¼ôðá"„0;»>M‚B†††îîîš®BåŽ@ÔÑß?ìät˜F£56~¹`®¦Ë¡(¸Óµk†äryqñ}M×B] 1ñx5ØË÷æj4] uA€ˆ½xñëíÛ| Ãärìömþ‹¿jº"Š‚+,¬g0^îƒ~åÊ=ÍÖCY b99µŠÏ"J¥òœœZÍÖCY |¾ ±±]éö»ÿù£G –DY w™L†r “É((¸«©z¨ D ;»F"õýe‰D÷b„ @ªššÚŸ<éQoò¤§©©}öë¡8ªË—ëTÎ_8&“qùrÝì×Cq Qär,'§Våü…“Hd99µr9¼ó3 h”»wŸ ƒL&cÞ<-•L&C ¬¯ªé©…rïÆk–¥¥áÞ½nŠÙªª6„К5K-Ž¡Ê¢0x7~<ÁÁgBÉÉš.„ºàHR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ HR @€ eÔ˜*++kmmÕ`5T““ÓŽòòâhº ±µµuuuýÿyL‰–üÅ;0---åÌŒ:Ñh´èèè7j®<@i?üðÃ_|¡œ¸¤@€) @ B­µ··ºE$G$%&&úøølÞ¼y×®]ééé###“_½§§'..îÃ?ܲeKHHÈ­[·TŠ$_­««k{û?à"‹“’’·nÝ’••¥ø%¼ñÍìÎ µ4³¾ýöÛ–––ØØXUQQ‘””4ÖÂï½÷žbv`` ((H[[;:::))éí·ßþòË/kkGýn¡¾¾¾Ï”JReBÃÃÃÁÁÁ> NIIñóó+))‰ˆˆËåö?ò¦á÷üÂÏO?ýtìØ1[[[„‹Å ûꫯ–ËåŠÙôôô?ýéO‘‘‘øìâÅ‹{{{y<ž‹‹‹b™… ~úé§S*Ie” ;wŽÅbýë_ÿ¢Óé!KKK—?þ¸¸¸øwÞ¿ÿi”7 S>¹ººlÛ¶íüùóׯ_÷ññyçwΜ9ƒúî»ïŽ;†/)‰<==[ZZB•••¾¾¾×¯_Gavùò倀€­[·îÝ»÷îÝ»ÊÇ[üð[QQáïï¿}ûöï¾ûN"‘6¢ÑÇjåi==½üü|Åuvvæñxø´T*MJJÚ¾}ûöíÛ“’’¤Réßÿþw„Ðûï¿/póæÍ>ø@y⢢”[”ÇRïßW¥¥¥ýë_/^¼ˆReüíE•””ìÞ½ONGGçÃ?,))!\E¹åò„BáÑ£Gß{ï=//¯ÄÄDüT®^Þ4LçvçÎÄÄÄO?ý455µªªêôéÓ{öìÉÈÈذaCEE~’®¨¨077çr¹b±8&&fÛ¶m/^ô÷÷?vì˜X,.**:wî\PPPFFÆîÝ»¿þúkõòóó¿þúëøøøÛ·oŸ?~¬F‹?ª<YWW·cÇŽÈÈH×ÕÕ¥è977·³³399ùŸÿüg]]]zzúþó„P^^BH(öööZYY)£««kbb2Ö>Qïoÿé§ŸN:œœœ<88¨<ʄۋ—ÁårUãr¹OŸ>%\e¬þOœ8!’’’jkk/\¸@XÞX[7ŽéÈÛÛ[OOÏÃÃ!äëë«§§çéé‰tttÔÒÒjhh@•––zxxÐh4‰D‚a˜H$š7ož§§gaa¡¶¶ö¥K—BBBÖ­[gdd´jÕª   õöìÙciiiooTRR2VãüùóÇsåé•+Wòx¼'N899]»vÍ××÷ÆøCÅÅÅûöí311±±± ®©õs–ø+­4mòûd¬·mÛ¦¯¯¿yóf„Є'/ÂíUG£Ñ×@“YE*•–••…††š››ÛØØ|üñÇŠ%§T¡é\ééé!„ð7Δ§Bt:}ݺu7oÞ´±±¹sçNxx8BÈÀÀàøñã¹¹¹éééK—.õõõ]µjUgg§òÿ-õ,--ñ +++@0N£:±X\YY¹qãF{{{{{{ÿï¿ÿ>))ÉÍÍ !ôâÅ å3Ôüùó•×500044|ò䉃ƒƒ¢ñáÇÿþ÷¿Oœ8A8ÜX²Ùlåý3>•MÓ××_´hQkkëŠ+”kmm]ºt)á*„ÝöõõÉår |–Ãá(–œRy„fþ.lãÆ·nÝúᇜœœŒB¿ýö›\.‰‰),,ܺuë¡C‡Ùlv[[›b­Ç«wõüùs|âÙ³gFFFã4ªÃ0,..ŽÏçã³4ÍÅÅEq¼páÂÌÌÌòòòòòòÂÂBüȯ쭷ÞâñxÊoú”””H¥RmmmÂáÆêpJ‡1õMÛ´iÓ¹sç”ï¹Äbñ… þüç?µŠ:CCC:ÞÙÙ‰Ïvtt๙jy„f>@ÎÎÎ2™ììÙ³ø9!D£Ñ"##oÞ¼944$‘H´´´´µµ·lÙ’˜˜XQQÑÛÛ[SS“’’¢ÞÕÉ“'ÛÛÛ>|˜––æîî>VãÐÐPQQþ¨bZWW×ÃÃã‹/¾¨®®îììljjJLLÄ?¡uëÖ¥¦¦vuuñùü¨¨¨üü|¼]$á÷îÝ‹ojjâóùgÏžÍËË#<ÏŽß!!Å(no@@@__ßgŸ}VSSóüùó[·níÙ³‡Íf+îÕ w‘JÿZZZ®®®ß~ûmggç£GNŸ>½iÓ¦qÊ›’™¿§Óéëׯ¿víÚúõëñ–yóæÿüóɯÒÞÞ¾k×®òòrÂÙq¦±iÙ¯üã###ÅÅÅùË_f¶g@M3 oÙ²eùòådú™?þ»ï¾;™Æß‡ilEö|"L|"Ì0 HR @€å/‰1 M—¨ŽÁ`Œú2ªòceeeÊš@©©©òì¨×˜*¸¤@€) @ ò¿<€)ðÂfNIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1NoSchemaOption__inherit__graph.png0000644000372000001440000001414012502417165032070 0ustar robertousers‰PNG  IHDRÀ»¼[RbKGDÿÿÿ ½§“IDATxœíÝkTSWÚðH×ê€AahG­ºFD‘Úaê ) ÕŠŒK«Ñêj‘ò²­õÊU©Z.YÂP‹JÅrDqtqSJ ärÞ§oÞBDä„úü–öÙ9ìýdçï9'7 `†xWT² „@€!ZꜬ¹¹yÇŽB¡P“¾WtuuÏž=;mÚ4µÍ¨Ö•——çååy{{«sÒ÷Jfff@@ÀŸ6@¸ŒŒ õOúž P(jž®! @„¼wjhhÛ+;¾>6›=g΃ >|X,“R )Þ»-7þüÊÊʘ˜˜ªªª¤¥¥­\¹R"‘(Ý¿©©‰Á`àm##£ýû÷«±ØqAÂÓø?“ÈÈHSSÓ›7oÒh4„ÐÌ™3W­Zåä䔜œ¼mÛ¶áûK¥Òׯ_ãmƒ­ÖrÇ&(Ê… LMM£££SRRlll ¿ùæ„PXXX`` ¾'ŸÏ§Óé<@]»vÍÙÙYWW×ÖÖ6%%!$•JÏœ9ãàà```°xñ⢢"ùS~ÉÍÍ5k“É PÚ‰†žnäÛ©©©áááxzpzzzl6;55UéP‹-B™››+ŒÓÓÓ³e˃amm½wï^üÅz …’––æàà0uêÔ£GŽëš¿;LÒÓÓG3#BÈ××···7)) !´qãÆÞÞÞøøx„ЫW¯nß¾mbb"‰0 KMMutt”J¥|>Ò¤IqqqçüùóZZZ|>?>>žÉdfgg·µµåçç[[[#„êëëñð†‡‡G]]]yy9‹ÅŠˆˆPÚ‰aXOOObb"^ž¬ÝÝÝâr¹ õ—””˜™™©ßM¾íïïïîîÞØØXSSãää„OŠÚ°aCwwwbb"Bèõë×£YºôôôÑ=cCCtÿþ} ÃÚõõõb±ØÜÜüæÍ›†­^½:::ð®®.mmícÇŽuwwK¥R'‘HøáÙ°/^ ššYm,KiçHuŽ ²²2ƒ¡b|¼GÖ¤Ñhµµµxvv6>)B¨¨¨Hþ¾féÔ M<…!„ BÚÚÚ m„F[·n]vvö«W¯nܸáïï266.***//·¶¶^¶lÙ;w¨TjSSÓܹsec:;;ŸÈÎÎoØÛÛ·´´¨èÎÈÈÈÜܼººZ¡¿ººzÞ¼y£ª££C"‘̘1ßd±X²=---åï»ÒЩæíí“““‘‘±dÉüÄ$¤RifffWWW`` ——WWW—••ÕÇe?õøñãáCᇄP]]þhÔ©”¿¿dd¤üs®¾¾¾˜˜OOÏÑeffF£ÑšššðÍÆÆF+++¼M¥jü¤ÎÃÝèOa²ÃµÒ¶X,f2™fffÉÉÉøM@WW7++‹Ëå&$$èêê ‚Ç3™Ì«W¯r8œ‚‚¥×@nnnõõõvvváááJ;±®0 ûý÷ßgÍšµlÙ²‚‚‚ºººììlGGÇ¿ýíoB¡PÅø<z äçççîîÞÔÔôèÑ#GGG|Ò‘ÖAõÒÁ5Л„aXHHÈäÉ“{{{åŸ1c†ŽŽŽ½½}nn.†aƒƒƒ‘‘‘666úúú‹/¾|ùòð%%%MŸ>Á`ìܹS (íĆ>Øòm Ãø|þž={œœœètº££cTTTÿHã‹D¢%K–èëë+ŒÓÕÕ`bbbaa±{÷n|R¢Qh4<èçç÷V?¢ðÀ+lªè|7c8Ôè©?@ï…D¡PØÖÖváÂ…+W®] ˜€ÑwïÞ?þÖ­[]]]‰Œ3eÊ”àààÑtŽáø>L_,ÌÈÈðññQçŒï …’žž¾qãFµÍ8ñŽ@@£@€! @BÂÓø„„õO ƉZdeeE£Ñ&Г[:Ý!Ôß_Cv!£E£Ñd‡ZŸÆO,‰tΜC¡ššH*uÂxyœÀ5ЈÊʺºúººø¥¥ d×¢¹ @#Ê̼§¥EÕÖ¦ffV’]‹æ‚)'ŠòóŠÅ‘HšŸÿP(‘]‘†‚)wëÖYh„BÑ­[OÈ­GcA€”ûé§{²¯LP(”Ÿ~ºGn= ¤Do¯ðÆÿJ$R|S"‘Þ¸ñßÞ^ø½XJ@€”øùçGRéW7¤RìúõGdÕ£É @JdeÝSxu ð¬,8‹)RÄåòJKë¥R©|§TŠ•–Ös¹<²ªÒX EyyÕJ_w¦P(yy‡÷¿ç @Š22î)\á¤R)¼¢8hˆÖÖîšš—#=|ø²­­GýUi²‰÷­ŒqõêßÒÒHv„¿–¨«ûÇ7‹©Tê«W6›=g΃ >|X,«¿ 1„*--åp8mmm………---;wî$«7þüÊÊʘ˜˜ªªª¤¥¥­\¹R"‘(Ý¿©©‰Á`àm##£ýû÷«±XµÀH…JOOã>õõõ²ÍââbCCÃ·š¥¾¾~¬îéÞ½{]\\Äb±¬‡Ïçÿå/ILL漢KOO'ýœG y4Édâížžž-[¶0 kkë½{÷ …‘:eD"›Í633c2™l6[$!„òòò>üðC:naaïI¡PÒÒÒ¦NzôèQ¼3555<<œF£ÉÔÓÓc³Ù©©©ø*77wÖ¬YL&3,,l```Ñ¢E!sss4ô¦´H¥3j:ró‹Fwª®®æñx½½½OŸ>uuuŒŒÄoò÷÷wwwoll¬©©qrrŠˆˆPÚ)ˆ‰‰Y¿~}sssMMÍ_ÿúׯ¾úª··WGGgëÖ­---©©©¡ÎÎN|Þ 6tww'&&"„^¿~ÝÝÝâr¹ –””˜™™á³xxxÔÕÕ•——³X,…©åÛJ+>£ê•Ñ„#ÙÓ.@ò¦L™‚ŸÑi4Zmm-¾[vv6‹ÅRÚ)ÿÈÙÛÛs8¼]XX8wîÜ'Ožðù|‰DrûömôgL„PQQ>Þ9R€ÊÊÊ >KMM Þ™žž®0µ¬­´H¥3ª^MùoeŒF}}=‹ÅBõ÷÷ÿý÷Ë—/ñâEGG‡D"™1c¾‹ÅjiiQÚ)?ÔóçÏ-,,d›†††:::uuuAAA|>ÿÃ?”ßÙÒÒ!¤­ýÇß 322277¯®®^±b…ünÕÕÕóæÍÃÛvvvxÃÞÞ^ajE*̨ù&Ø5N zùòegg§™™F“½ÝØØhee¥´S~üPÿïéîî.//7nd³Ù÷ïß?wîœüÎTªâúøûûGFFÊ?çêë닉‰ñôôÄ7ñà B¨®®OÃp*Š>£†›år¹Üööööööæææ˜˜˜>øÀÔÔT[[ÛÇÇ',,ìÙ³gµµµ_ýµ¿¿¿ÒNù¡Ö­[wàÀ/^ÔÔÔxzzž={v```ppPGGG :t!Äãø×™ÃÃÃ;;;ÝÝÝþùçúúúœœœ… ZYY…††â;ìÚµ«¡¡¡²²òàÁƒ›6mÂ;ù|¾ü o,r"!÷ ŠÞòˆJ¥:;;———ã7uuu˜˜˜XXXìÞ½[ (픿éííýâ‹/ŒMLL¶oßÞ×ׇaØwß}7uêÔ>øàܹs¾¾¾L&úò|›ÏçïÙ³ÇÉɉN§;::FEEõ÷÷cÿw‰“””4}útƒ±sçN@ ‰–,Y¢¯¯ ½ˆVZùH3ŽD®Èž~š(Æõ%¥4!@ã4hÌL™2%88˜ì*Ô 4f˜Lf\\ÙU¨„@€! @ùß ›={¶™™‰5¨€a„…Bþ·g”êèèxôè¹ Éo¦~ùå—/_¾$·ž>ŠfoßMv!ʯ\¹’ÜH>i²žžþÙ³¿¡P(µµÿ3eÊd²ËÑPp 4¢ë×k1 I¥Ò‚‚Gd×¢¹ @#JO¯Àþx·®‚ìZ4H¹öößïÞmÂ0L*ÅîÞmjoÿìŠ4H¹kתi´?‡F£æå=$·R.3³Rö±C±Xš™YIn= ¤DS·¶¶Uîé)öèQ˳go÷uØ÷H‰ÜÜÚÚ4ùmmZnî²êÑd %22*D¢!_U‰$ð\L)¢Ç[_¼x=¼ÿŋ׷ª¿ R”“s_áü…ÓÖ¦åäÜW=4„TŠefV*œ¿p"‘$3³R*…w~†€ ñàA3—ËÓÖ¦éèh)üÓÖ¦q¹¼êêf²kÔ,ã«Íjcmm¼c‡»l³¬¬!´xñ Y••1 ei0x7^•àà‹¡øøÍd¢¹àB @€ B @€ B @€ B @€ B @€ B @€ B @€ B @€ dÈ/˜ºuëVCC‰ÕhšÌÌV„··Ù…h;;;77·ÿ߯ähiÁo¼o ¥¥%Ÿ™!G …rèÐ!WWWòÊí×_ýöÛoå3×@€ B4+@­­­Cž"ãææ!Å÷ÆñAll¬¯¯ïªU«6mÚ”œœ<88¨zŠÖÖñý ,B¡0...00põêÕ!!!iii²¿„§ÚØ.æHþäÏÛoß¾]TT´|ùòQîêÔ©ŽŽŽÈÈHSSÓæææS§Nñx¼°°°q-R…þþþÐÐPccãàà`KKËgÏž?þÞ½{ǧR•üççp8!!!¹¹¹!}}}__ßñ®P³Ž@cÎËËëûï¿ïêêåþ¿ýö[PP‘‘‘³³sXXXIIɸV¨Ú¥K—ŒŒŒ¾ûî»>úÈÚÚÚÅÅ%..®½½½  @éþR©´··onß¾}¼+|ë¹¹¹lÞ¼yÍš5—/_þå—_|}}?ùä“ . „NŸ>}ôèQ|O@àééY__*-- ôðððóóûå—_B†åäälÞ¼yõêÕ;vìxðàüñ?ü–””¬]»öôéÓ"‘Hi'z¬V8n{{{O›6íøñãÃÿ¢ŸÏŽŽþôÓO½½½cccñSN¿zõªì1pvvNOOGI$’äädŸ5kÖ9r„ÏçËÆ¹wïž¿¿¿——WZZÞ#‹ãââÖ®]»víÚ¸¸8±XüÆuC•••yzz®_¿þòåËxgaaáçŸ.°ÑÕÕýì³Ï •®Æ?ÿùO„кuë–Béuss»qãÆæÍ›ÿñüøão›Ü»ªªªbcc·oßž˜˜XVVvþüùÐÐД””ÞÞÞeË–•””à'é’’ ‹% #""Ö¬Yóã?=zT(æçç_ºtiÛ¶m)))Ÿþù‘#G†OtõêÕ#GŽ>|øîÝ»²5Þidd´wï^üVù6BˆJ¥~õÕWUUUׯ_WüäÉ“\.7...&&¦²²òÊ•+!6›}ÿþý 6°ÙìôôôŽŽ|第¬âââ#GŽœ8qâåË—©©©²qîÞ½›˜˜¸oß¾¤¤$>þøñã÷ïßONN~ãºõ÷÷‡‡‡ÛÙÙ¥¦¦†††&&&öôôðùü®®.‹¥P9‹ÅjnnVºçÎCeggæÎ"„~ûí·³gÏÇÇÇóx¼7=òJ¼K€|||ètº‡‡BÈÏÏN§{zz"„x<ž“““––VMM BèÆ E$a&ttt<==¯]»6iÒ¤Ÿ~ú)$$ÄÅÅÅÄÄdáÂ…Û¶m>Qhh¨µµµƒƒÃ¶mÛ GêÔÓÓûä“Oð[åÛ8kkëíÛ·Ÿ>}º³³SÖ)‹oݺµsçN [[Û/¾øjþüùééé'Ožœ={öõë×ýüünÞ¼‰ÊÏÏߺu«­­­ÍþýûVcÉ’%ø „ víÚÅd2mmmƒƒƒ+**Þ¸n:::çÏŸ 311a2™¡¾¾¾‘ÖŸB¡H¥RK¤`¤;‹Z³f¾¾þªU«B²ãî[y—‹h:ŽÂß8“o#„¨Tª‹‹Kqq±­­mUUÕž={B'NœÈÊÊJNNž9s¦ŸŸßÂ… 9Žüÿ-[[ÛáY[[ãiÓ¦q¹\ª­]»¶¸¸øßÿþ÷®]»ðžîîn©Tjii‰oZYYq¹\¡PXZZêêêêàààààðÃ?ÄÅŹ»»wttÈæ>}úôéÓeƒ›˜˜ „(Ь§½½}ýúõ²M==½7®›––VKK˱cÇÞ©¯¯?uêÔ†††yóæÉ߆††™3gŽ~5”ÞY¼Í`0äËxcíêêzçÎ_ýuöìÙ¦¦¦¡©TqíÚµÕ«W:8CCÃÔÔÔ¢¢¢¢¢¢k×®á§Õ""">û쳄„„ýë_²þ+V\ºtIv¼A …Â+W®|ôÑG£_ ¥wv¤âßÖØÈÙÙY"‘\¼x?V#„( ›Í...îëë‰DZZZ“&MúøãcccKJJººº***†uæÌ™ÖÖÖ§OŸ&%%­\¹r¤Î¾¾¾üü|üVù¶< ‹ÐÐÐŒŒ |SKKËÍÍíÔ©Sn¼bÅŠÉ“'{xx|ûí·åååçñãDZ±±îîî!¤¤¤gÏž={öìäÉ“²k#¥\\\;::šššöíÛwõêÕ7.šH$‹ÅZZZƒƒƒø5S?BhóæÍÝÝÝ_~ùeEEEKKË;wBCC ƧŸ~ªb‰üàJïìK¥±ˆJ¥.]ºôúõëK—.Å{ttt8ßÙÙiiiyèÐ!‰DröìÙžžüZ!**Ja¨+VìÙ³G(º»»ûûûã^…N„POOϱcÇðKù¶//¯;wîÜ»wßܵk×™3gBBB´µµ—/_޵oß¾”””ÄÄÄÖÖVccc77·-[¶ „üýý…B!›Í …‹- V±gΜ ¢P(K—.U½3N__?444**jòäÉ~~~îîîûöíËÉÉ¡Óé ÉÉÉqqqmmmîîîÞÞÞÚÚÚJ—ˆF£Íž={ýúõÿùÏäÇWzgÇĸ|œ#))©½½ý믿ý´¶¶nÚ´©¨¨H馊Î÷)«1îçäp8ÿûßÇvd ™Æ8@Ož< þøãçÎKd===//¯Ñt¾·4d5à‰à-À'ÁƒB @€ ˆ‘ÿ’F#» éh4Ú/£ÊßvëÖ-Õïò`ff&¿IþQ=F®! @„ü/„Æòµs",IEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1TooOld__coll__graph.png0000644000372000001440000001220512502417165027671 0ustar robertousers‰PNG  IHDRØ€æŸ0 bKGDÿÿÿ ½§“:IDATxœíw\ÇûÇg8䄯t¥c j¢¨"bC#¡ ¨ð¢…4‡Xð `¡ Q0¶ ‚BDŒ ¨T}ÑÄPN p”îìï}y¿Íqwº{fÞÍ>;û<Ïì~˜åEB4¢€@€B„(D)€B„(D)P$*pwwwii)ŸÏ'*ˆ åã?ž0a!Ñ âÀÀŸÏ·¶¶&*ˆ•••DE'Lˆ:::Ä&! pŒ!PˆR…!PˆRð^ ±¶¶A¢³ø(ŠnذAUUulÝ’°¥£Dþ„X__¯­­MtÒÒÒÒ’œœ\UU5zWø†«««ÿý÷£÷IäOˆ|>¿££ƒè,¤…ÍfŒŒŒFï ßpmm툈ˆÑû$dâõë×§OŸ>nÜ8SSÓÄÄDÀ¼yó“&Mðx¼Ã‡[XX¨©©ÍŸ?¿°°; ç”E‚$''[ZZjjj:t3Þ¸qcæÌ™4MOO»äØ!wîÜ122š5k–ŸŸV“ÅbÑh´'OžˆÌŸ­ô p¹\:ndd¤££ãããÓÕÕ%ÁUWWׯµµµ CCCûûûÅ5ŠÔ ÑÚÚš››+¹‹ÅRVVŽŽŽf0ñññŠŠŠ,«¦¦Fvdd¤®®nFFFKKËÍ›7õõõ±]]]]±±±XA ¾ X¿~=“ÉŒtttôôôP©ÔÍ›7755%%%ÚÚÚ°C–/_~÷îÝ?þøCKK‹Ãá (š””dmmÍçóE6A\PÉ >|ØÚÚº¬¬¬¼¼|îܹ¡¡¡÷òò²··¯««+++›6mZxx¸HŸÃ^‘ÜÜÜÖÖÖa«½%H-ÄÎÎN%%¥#GŽ0™L>ŸßÛÛËãñð×ÀÂÂâüùó‚ú.\ð§%AX&ƒƒƒ€šššgÏž±X,÷çŸbFì²²2E¹\î¤I“îܹƒ¢¨³³sDDÄHƒJNàÃ?ÌÈÈÀöVUUae‘‡*((TTT`öŒŒ sss‘>%Ÿj”h!’úÖ¬¡¡‘››ûðáCCCÃE‹åççS(ÿJ¸±±qÆŒ‚ÍéÓ§Kéý÷XWª¤¤„mR©Ôêêj''§Ù³gŸ?_sêÔ©…uëÖeddüóÏ?999^^^#mšä^¾|9eʬlii¹víZq~Z[[y<ž™™¶innÞÔÔ$Ò'É!µÙl6ŸÏ¿téRgg§ŸŸßªU«:;;ñLLLJKK›•••Ãúär¹€ææf¼QHßl6û‹/¾ {üøñéÓ§ñ»×ÕÕÕõÊ•+¿ýöÛ‚ ¥o”4 èëë744`å§OŸîß¿_œ·‰'*((Ô××c›uuu"}’RçŠ ˆ££czzzOOÏàà ’’FÃv±X,@PPPXXØÕ«W_½zuëÖ­]»va{»»»ãââ„Êêêꀄ„„žžžãÇKˆ;00088H¥RÙl6Nôöö Õ±µµår¹{öìñöö–²9Ò'àíí½cÇŽŠŠŠŠŠŠ­[·¾|ùR° k¸%%%77·¯¿þúÅ‹;w{&D ¤#¢(š––fffF¥R§NzõêUE9΂ TUUQår¹‡677?~ü§Ÿ~úðáC¬EâFcûöíSWW733»zõ*À ÑC(A922RSSóƒ>8}ú´‡‡‡®®.ÞFPPŠŠJOO„ü…Ž’2þþþÐÐP}}ý &xxx0™L¡†ãÝvvvz{{kiiééé}ûí·l6[\£$CìA úœ´­­­ªªjñâÅ„DvìØÑÐМœLt"cC^^ž•••®®.!Ñ ^(§ô÷÷·´´œ={öâÅ‹Dçòž@ê1"i),,üä“O6oÞŒïÑ1—¦<{DYX´h‘Ðó;2#òÝ#¶´´xzzš˜˜¨ªªÚØØ\¹re¬<#R[[+n/:ÜššÔÔT‘½ãÓ§OEÖåjš÷`1Ž ±££{œ––VTTäîîîáá‘••õB»¦fÍš5 ƒÁ`|hnnþÃ?ˆó<Ô(ˆ’­««V__?¢s‹=¡-Bd³Ù sæÌ™9sfLLLoo/Š¢ØC+öÊa(#Z“"Έ¢P¼¼ÄÅ‘±¥=(Ц¥¥Mž00 ÎóP£ ÊåË—çÍ›—œœŒ>"àꛑÁçóù|¾¢¢¼Î€"ÒÑÑ¡©©ù6œs8™—dÃÕ7#ƒB¡È×Úc!.\ø–TäçÀ¡Èñ•S°¯± B@!BH"„@!BH"„@!BH"„6ˆ-mÏËË#*±¢ãþ}A4çÏ':‘1€Àï {³"_ÿæP,(úÛÒ¥€/²³œ5ÐÒÒ"êea="…By~d¥©°ýÏ?€Á†ƒ9sˆNGŽcÄQQ•žNQRRPRªº|™è\ä(DÙáq8ÏÿÏáð8œgW¯ò8¢3’c e§!/oðÍ—Jƒ}} ð%ò(€B”ªŒ ÁО¢ ð,#ƒØ|ä(DáôõÕݺÅçñ°M>‡Ss맯جä(D©ËÎæq¹ÿ¿ |§.'‡¸Œä(D©LOš8D¤2=¨|ä(DY`3™ yyè›û2ŸÇkÈÍe3™De%×@!ÊBÍÍ›¢ß£ HͼótÞ e¡òòe êÕ(ÊçÙmÙ€B1¬ÖÖæ’”ϱE›Š‹ûÚÚÞyRrü}ÅG8=MMÊ4š`±ŸËPÞ|ÞŠP(=MMã ú(S~!lõÍ{ÃõÀ@Àª˜¢‘oà­B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !¤ B  !äÅallLt:ò‡1•jL¥…üabb‚×Þ¿þ‡6‚ ®®®VVVæù/PUUuéÒ%¼ö„UÀÊÊjñâÅï4)Ž!$ B  !¤ B ÈõhÍÍÍ6lÈÍͽ«»wïîÝ»w¨=66ÖÜÜ\z?ýýýçÏŸôèƒÁ022²µµuwwWPP—êH›ÐÑÑUQQÑÝÝmllìååekk+}z°³³KJJ200¹EÑÜ¿?33Sd…±:RB.!Ž!óçÏOOO0Œ­[·¦¿ùIïÿýïÒ;yýúupp°††F`` ¾¾þ‹/âãã‹‹‹=:&IöôôøûûöÙgt:F£îÝ»wÿþý666câ_999iiiâ*ŒÉ ”ž÷VˆÊÊÊÊÊÊ6› ÐÔÔ”ÁIBB‚ººzdd$…BÚØØlÚ´)33sÆŒ£Oòܹs3gÎ Ã6;;;ÓÒÒÞºâ¼rLN ôŒxŒhgg—™™éëëëââ’’’rûöm+Vœ={pâĉC‡a5Ùl¶““SMM àÁƒ~~~ŽŽŽžžž·oß (zåÊ___ggç/¿üòÉ“'vvv‚(ÍÍÍvvvÞÞÞk×®=qâ‡ÃiTÆ(¹ ,+""bÍš5®®®QQQƒƒƒâŒÙÙÙ>>>˜ 1Æçîîž-°ðùüÔÔToooggç­[·>{öLdЮ®.ìÚã¹wïÞ矎·øúú~÷Ýwò´³³ËÉÉñõõ]½zujjªà¢ 5âZaË–-€uëÖIˆ5,"%²<¬”””DEEÄÆÆþõ×_ñññÁÁÁ‰‰‰===‹-*((àñx€‚‚===ssóþþþððpì‚:t¨¿¿ÿæÍ› þþþ‰‰‰>>>è÷ß?xðà SRRÄÕÕÕCCC±½ø²8~ýõ×öööèèè_~ùåÑ£G/^id±XCÇCæææÿý·`3===--- 11ÑÛÛ;::Z¨þóçÏ#""6mÚÄb±ðvÌ¿‘‘Þ¨¢¢"è¥Dæ ¸ÿþ©S§cbbz{{%ñU8}ú4 ##Cr,ÉÔÕÕ¹»»ÇÄÄ0 iêK@!º¹¹Ñh4GGG€§§'FsrrôööN›6MQQ±¬¬ ““ãèèˆ ‡ÃAQ”ÍfS©T''§ëׯ+++§§§ÙÚÚjiiÍ;×ßßh àà`CCCKKKA'4Ô8~üø+V`{ñe‘p¹Ü»wï~õÕWzzz¦¦¦›6mÊÎÎiçA>îWï]»†oH@@f¼}ûvpppddä´iÓRRR´´´ð~°\‚HŸ'¶ËÅÅEUUuÙ²e€žž F<*Œ¨ùxfÏž§¬¬²cÇŽââb™uY!Òh4€¢¢¢P@¡PlmmïÝ»×ÝÝ]RRâààPSS;vìXUU•««ë7ß|SVV† ƒÁÀw6¦¦¦Cb##£ööv Féa2™|>___Û400hooiTUUÕÔÔ¬­­òP[[kaa!ØlooÚ’’77·Ç‡„„ÄÄĬ\¹REEEÈššš††ÆË—/ñÆçÏŸ ˆL +kkkÜ9—`”²‚„X⥥µqãÆ”””¥K—&$$øøø´µµIy,ž±ŸG\¼xq~~~^^ÞG}¤££àóùáááׯ_wvvþé§Ÿz{{µµµëêêG544 uÕÔÔ„݉H£ôhhhP(Á­¤¥¥E[[[¤ààà€ïÿúûû/^¼8gÎeÒ¤IC¢®®nbbRYYY^^.tGÆ3þü´´4|/‚uÏÊÊÊâRb:Qq=«4$Ä’&“ÙÐÐÐÞÞnaa=⌔±âôéÓy<Þ… °{7A°°°{÷îõõõq8EEEeeååË—GEEtvv9sf¨«“'O677?þ<..néÒ¥âŒ}}}7oÞÄöâË"QTT´³³;~ü8ƒÁÀ¦cD¾¾¾L&sÛ¶mEEEMMMùùùÁÁÁÚÚÚkÖ¬8\½z5¾!ØC›™™Ù±cÇöìÙÓØØèíí}øðáêêê¡Éøùù•––8p ²²²¾¾þÂ… Ø(E\Jo™c¡(Z\\üóÏ?oÙ²EÑ“'OþüóÏ&L%Ž‘ …BY¸paVVÖÂ… 1 •JýñÇcbbÚÚÚôõõét:•Jussãñx§Nêêê255 Ü·oŸ+‡íÛ·÷÷÷ÛÛÛ{yya÷ !# ««ëÈ‘#ØÐ_GHHÈÉ“'ƒ‚‚”””–,Y‚9i¤ÑhgΜ9wî\tttKK‹žžž½½½«««’’’À›‹‹ ‡Ã‰ŠŠêèè033î ¶kòäÉÛ¶m ÈÌÌܽ{wddäĉñ™¨««Ÿ9s&**ŠN§³Ùl##£ýû÷Ï›7OBžo Ùbåçç§¥¥­[·ŽN§KHƒðzD:>úe`qqq¯^½Ú¹s§ô‡½ù~b ß»¼{Påóù D'2–p¹\Ùô———·{÷n¼öÆøÖ<88È`0233W®\9¶žåAÞ3‰ÏF#eŒ…øìÙ³ÀÀÀåË—òÅÃøñãW­Z%ò~ðVn͈dÞú­‘ (D)€B„(D)~X155ÕÐÐ 0!È&“Y__/ö»æmÛ¶566¾ó¬ ÿE\\\ð›ˆÌëv 1Ž!¤ B  !¤ B þÐþî½f8ÜIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1LocalFilesOption.html0000755000372000001440000002524712502417163027402 0ustar robertousers MySQL++ Reference Manual
mysqlpp::LocalFilesOption Class Reference

Enable LOAD DATA LOCAL statement. More...

#include <options.h>

Inheritance diagram for mysqlpp::LocalFilesOption:
Collaboration diagram for mysqlpp::LocalFilesOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable LOAD DATA LOCAL statement.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1BadConversion.html0000755000372000001440000005036612502417163026730 0ustar robertousers MySQL++ Reference Manual
mysqlpp::BadConversion Class Reference

Exception thrown when a bad type conversion is attempted. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadConversion:
Collaboration diagram for mysqlpp::BadConversion:

Public Member Functions

 BadConversion (const char *tn, const char *d, size_t r, size_t a)
 Create exception object, building error string dynamically. More...
 
 BadConversion (const std::string &w, const char *tn, const char *d, size_t r, size_t a)
 Create exception object, given completed error string. More...
 
 BadConversion (const char *w="")
 Create exception object, with error string only. More...
 
 ~BadConversion () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Public Attributes

const char * type_name
 name of type we tried to convert to
 
std::string data
 string form of data we tried to convert
 
size_t retrieved
 documentation needed!
 
size_t actual_size
 documentation needed!
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a bad type conversion is attempted.

Constructor & Destructor Documentation

mysqlpp::BadConversion::BadConversion ( const char *  tn,
const char *  d,
size_t  r,
size_t  a 
)
inline

Create exception object, building error string dynamically.

Parameters
tntype name we tried to convert to
dstring form of data we tried to convert
r??
a??
mysqlpp::BadConversion::BadConversion ( const std::string &  w,
const char *  tn,
const char *  d,
size_t  r,
size_t  a 
)
inline

Create exception object, given completed error string.

Parameters
wthe "what" error string
tntype name we tried to convert to
dstring form of data we tried to convert
r??
a??
mysqlpp::BadConversion::BadConversion ( const char *  w = "")
inlineexplicit

Create exception object, with error string only.

Parameters
wthe "what" error string

All other data members are initialize to default values


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1InteractiveOption__coll__graph.png0000644000372000001440000001364012502417165032143 0ustar robertousers‰PNG  IHDR½»¿ìzbKGDÿÿÿ ½§“UIDATxœíÝyTSgÞð' $!¬VÅ€r VG9ÊTAD)µ£u)  ¥ŠŠÌq¬¤VC)‡Qð8:­›Ò*¸D6Ç…i‘a ")¤è¼¥l.,aQÀHÈvß?n'†o17 ¿Ïééyî“›çyòäË}îMbBÁ0 ðЍdLH@ä¹DÐõÖSVVVrr²Þº›„\]]¿úê+ýôEÑÛõT```YY™§§§~º›lš››ÞžMýoBžžž|>_Ÿ=N|>?((HoÝÁù rˆ€Ü" 7€ˆÉ•›†† …2Ž ö÷÷óx¼·ß~ÛÜÜÜÃÃãСC …‚”‘èÙäÊÍøêëë[¸paEEEbbbeeåþýû333W®\©T*uîßÔÔÄf³ñ²¥¥å¾}ûô8Øq¦×ëðÿ1qqqÖÖÖ………4 !äââòî»ïº»»§§§oÛ¶møþ*•êÙ³gx™Íf'$$èu¸ãÊàŽ7 åܹs®®®ÖÖÖ .\˜9s¦……Å_þò„PTTTxx8¾§X,f2™÷îÝC]¿~}îܹ&&&NNN.\@©Tª“'Oºººš››{zzi® ø2qíÚµÙ³gs8œ¨¨¨ÁÁA•h蚢YÎÈȈ‰‰ÁCƒ355åñx:›Z¼x1BÈÖÖV«ÞÞÞ?þ˜Íf;::FGGK¥R|233]]]­¬¬Ž9òZçœL_^ºB(88X$¥¥¥!„E"þÅÓ§O‹‹‹Y,–\.Ç0,##ÃÍÍM¥R‰Åbcc㤤$¡PxöìY:.‹“““9NNNN[[ÛÍ›7BõõõøCÆ ~~~uuu€Ë寯Æê¬Ä0¬··755žºÜÓÓƒêêêÒii©Í(íã»i–CCC}}}kjjÜÝÝñNB~øaOOOjj*BèÙ³g£ÏÛ•+Wôùlbnªªª0 “ÉdZåúúz…Bakk[XXˆaتU«0 ëîî622:zôhOOJ¥êëëS*•nnn_ýµºÙo¾ùfxnjjjð[¯\¹ÂåruVŽ4ΑrSVVÆf³Gi¯Q—e2F{ðà^Ÿ““ƒwŠ***Ò|ì£Ï›žscpëBÈÜÜ!ddd¤UFÑh´õë×çää<}úôöíÛ¡¡¡¡©S§ GGGooïï¿ÿžJ¥655Í›7OÝæÜ¹s‡wäììŒæÌ™ÓÒÒ2Jåp–––¶¶¶ÕÕÕZõÕÕÕ ,{SJ¥rÖ¬Yø&—ËUïioo¯ùØ Š!æft¹¹¹|>É’%øê#‘HT*ÕÕ«W»»»ÃÃÃW¯^ÝÝÝíààðÓO?©ïõŸÿügxSø=B¨®®’FªÔ)444..Nóê©¿¿?11ÑßßìMÙØØÐh´¦¦&|³±±ÑÁÁ/S©üìèíÈ6öuJ}LÖYV(ÇÆÆ&==¿I"‘˜˜˜deeuuu¥¤¤˜˜˜H$’C‡q8œ¼¼<¡P˜ŸŸ¯óüÆÇǧ¾¾¾¼¼ÜÙÙ9&&Fg%6Âù †aÏŸ?Ÿ={¶··w~~~]]]NNŽ››Û;ï¼#•JGi¿¯¯z~âëëÛÔÔtÿþ}777¼Ó‘æa$p~ó’Ü`¶sçÎ7ÞxC$©ïuåÊ•Y³f1Œ9sæ\»v Ã0™L7sæL333OOÏ‹/ÏMZZÚôéÓÙlö®]»$‰ÎJlès¬YÆ0L,ïÝ»×ÝÝÉdº¹¹ÅÇÇ ŒÔ¾\._²d‰™™™V;ÝÝÝ›7of±Xvvv{öìÁ;…ÜüjŒ¹‹„„„¼Ò]´žo­ÍQ*‰ǦÆHϹ™`¯ûI¥Ò¶¶¶sçÎ]ºt‰ì±Lj|æ¥Ë?ü°pá­[·.[¶ì·´3eÊ”ˆˆˆ±TŽcûÿKôú9Q„|Þï5Á?ï§·gs‚o€€Ü" 7€È B¯×áMMM)))úìqò¨¬¬Ôkz{¥è“O>Ñëû­(––þtºÙÃxo¾ù¦ÞžMý]‡O,Aãúõ'·lYú׿®'{,†ÎotËÍ­Äÿ¯P¨È‹!‚Üè “)rrî!„ž?()ù…ìá"ÈÿþwíÀÀ BˆF£æäè÷|s‚€Üè]I£QB …*?¿F"‘‘="ƒ¹ÑÖß?øí·Š_?Å78¨((ø?r‡d€ 7Ú4Cƒ¢R)ÙÙ?’8ùіý£æ¿´R(TEEµ"‘„Ä! ÈÍÝÝý%%uJåko Ãnݪ!kH† r3Ä? ¯Ä0ìêUXª†€Ü ‘•U1üt• ;:ž“2$ùy¡­­·²ò±J¥ãzýºŽCѤ¹yáúõê‘Þ¬S(”ÙÙðà ìß3¼V2;»)êM±xÐÄĈNÿõOk"ËÑøƒ÷ÃGdo¿'))lÍšy/ßuòu ¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@䢷_ºÒrç΃Aö£±ñ›T*“ìQŒ†Çã‘õô‘öý~­­­2™ ~Nœ°cÇŽ=zôˆ¬ÞIþ^È€€r0q]½z•ÄÞáü¹D@n@„¡ç†¢aêÔ©]]]¯ÔBCCeü¾ë¼¿¿ŸÇã½ýöÛæææ‡R(úé =7¡»wï …Â¶¶¶‚‚‚–––]»v‘5’¾¾¾… VTT$&&VVVîß¿?33såÊ•J¥RçþMMMl6/[ZZîÛ·Oƒ}ÍÈzáèÊ•+cé!T__¯Þ,))±°°x¥ŽêëëÇëaFGG/]ºT¡P¨kÄbñŒ3RSS_w×ü¦Æ_jo4Ñh4‡ƒ—{{{?þøc6›íèè-•JGªT“Ëå<ÏÆÆ†Ãáðx<¹\ŽºqãÆüùó™L¦]BB¾'…BÉÌÌtuuµ²²:rä^™‘‘C£ÑÔ šššòx¼ŒŒ |ºvíÚìÙ³9NTTÔàààâÅ‹B¶¶¶hè:¥s:{4\dvìÇ›êêê¾¾>‘HT[[»lÙ²¸¸8ü¦ÐÐP__ßÆÆÆššww÷ØØX•šô‰‰‰6lxòäIMMÍï~÷»Ï>ûL$1Œ­[·¶´´ddd „:;;ñ~?üðÞžžÔÔT„гgÏzzzB]]]Z#,--µ±±Á{ñóó«««\.W«kͲΑïqô™!÷x3r£iÊ”)ø²%“Éh4ÚƒðÝrrr¸\®ÎJÍ'lΜ9B¡/Ì›7oppð矋ÅJ¥²¸¸ýwYDáá•#妬¬ŒÍfã½ÔÔÔ¨V×ê²ÎAêìqô™!77à÷§êëë¹\.Bh``àïÿûòåË?~ÜÑÑ¡T*gÍš…ïÃår[ZZtVj6õèÑ#;;;õ¦……ƒÁ¨««Û¾}»X,ž?¾æÎööö!###|ÓÒÒÒÖÖ¶ººzÅŠš»UWW/X°/;;;ã…9sæhu­6Ê µz4déü†Édnß¾½¹¹¹³³ÓÆÆ†F£555á7566:88è¬Ôl?0à1===@"‘òx¼ªªªÓ§OkîL¥jONhhh\\œæÕSbb¢¿¿?¾‰TBuuux†eÃ{4X` ]]]ííííííOž}:›ÍÞµk—D"‘ËåK–,133ÆžëùH=Ž„ÜóÒ~'‘Ïç‘Õû¸khhpvvÖçà D‘õ¦ °N¹S¦L‰ˆˆ {ú¹'))‰ìQèä¹D@n@ÉïO­\¹’ÜŒB¥¢R©*²G1¢û÷ï{yy‘Õ;i¹Y´hÑÆGú¤é”JJy¹‹K7‹%}ùÞdðòòÂ_ú#i¯8>¿âϾ¸|¹kFƲÇbˆàüF·ÜÜJ„(ÅÅ¿<>@öX äF‡®®¾;wêÂBÿøG5ÙÃ1DnܨÆ? ŒaXVVÙÃ1DøüU* !¤Ra?þøX(ì%{Dr£íÉ“g55ÍxnB45/ï¹C2@m׮ݣÓ_L‹R©ºz–*mmW¯VÈå/^îÃ0¬¶VØØØIâ äfˆÚZaCC'~%¥fdDËË«"kH† r3D^^ƒ¡ýº\®¼|¹œ”ñ,ÈÍ †eeý(“éø~‰ÖÖžššfýÉ`An^¨ªzÜÖ¦û’–*-›nÜø ! ƒAþŸR©ÊÍ…«ñ&À¿óÕ›eËæÐé/¾k‚ϯðôœ5mš¾Éb™‘4.Cï‡ÈÞ~ORRØš5óȈ!‚u ¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ä¹D@n@ÄïÛ’Éd—/_–J ô—ôïöíÛííðM¢!äçç7cƌۘ†ììlÒÆ [pp°fT†o B¨¨¨ˆ¤±õÅ_àÙPƒó@ä¹D@n—›ÖÖVŸñjÍÇǧµµu¼Z#€ðÑJ¥IIIááá«V­Ú¹sgffæ3{|'p$—} …|ðÁkmÖÌÌ,88øU[ˆˆˆ¨­­ˆˆHII -((ˆŽŽV©T:÷ÿí=¾ªIý=û*•J$½Öf-,,vìxå_ ?þ¼¥¥å±cǨT*BÈÑÑÑÃÃcË–-ùùùï¿ÿþëèñU9Þøøøäç燅…­]»öâÅ‹ß}÷]ppðûï¿îÜ9„Љ'Ž9‚ï)‘HüýýëëëBwïÞ ÷óó ùî»ïB†åææ†……­ZµêOúÓ½{÷4°øñ¶´´tóæÍëÖ­;qâ„\.×Y‰†œG:PûøøÜ¾};,,lÍš5—/_FýñD­_¿ßA¡P$%%­[·nݺuIII …oªªª*((èþýûeeeÛ·o÷÷÷ß°aÃÅ‹BJ¥2===((híÚµ‡‹ÅZͪsðàÁÓ§OãÉåòÕ«W "„ >úè#<48“7èœ="„ÄbqBBÂ|pæÌ™L¦s ¸NUVVž9sfÇŽ©©©eeegÏžŒŒ¼pá‚H$òöö.--ÅãÒÒR;;;.—+•Jccc×®]{ùòåÍ›79rD*•Þ¼yóüùóÛ¶m»páÂG}tøðááååå>|øÐ¡C?üðþT鬴´´ŒŽŽÆoÕ,k¹sçΩS§"""’““ûúúð'2''¿5++K(&''ÿío«ªªJOOÇëù|þgŸ}æààãì윑‘™ššÚÛÛ›••URRrøðáãÇ777gdd „´šÅùúú㿆QQQallìáᡳS±XÜÝÝÍårµÏårŸ¿Ñ9-Z Å¿þõ¯]»vÙÙÙ999mÙ²E½çèó0Ïo˜L&BˆN§k•BT*uéÒ¥%%%NNN•••{÷îE™››?~<+++==ÝÅÅ%$$dÑ¢EB¡Pó¯ÊÉÉixGŽŽŽxáÍ7ßìêê¥r,Øl¶æPµ´··oذA½ijjªî¿WKKËÑ£G%‰³³3~SGG‡z0Ó§OŸ>}úH]¿óÎ;ÅÅÅ3f̸{÷njjêHš™™YYY544,X°@³…††¼<–èééQ©Töööø¦ƒƒƒzÏÑça,^Ëyñ²eËâããg̘ñÖ[oY[[#„U*Ull¬B¡(,,¿ƒƒƒ±±±±±±žžžr¹|øå—_vtt oVÍÃÃC,ýõ׫V­RWêì4,,¬§§ç“O>)//oiiùþûï###Ùl¶úb[ç´hõH§Ó}||¾úê+¡PøðáógÏ®X±bìÓ2º×r¼¡R©^^^ß~û­——^Ã`0öïߟœœÜÙÙiooÿùçŸ3Œ   ¥RyêÔ©ÞÞ^|u×jjÅŠ{÷î•J¥¾¾¾¡¡¡ø‘V«!ÔÛÛ{ôèQü´F³<:[[Û·ÞzkÆ ·nÝB…‡‡ŸŸ4.Ÿ£HKKkoo?xðàØïÒÚÚºiÓ&uïZ›£TN*¤ÌÀ_|ammÍçóÕ5ã¿NÉd2¡P˜ŸŸÿ‡?üaÜbüsóóÏ?GDD¼÷Þ{óæý¦_¦455]½zõX*'™×µNÿ%úX§Àd¹D@n@ä1äõbüZ=|ÊL87nÔÜr.•Joݺ5ÆÏ±‚IeÁ‚šX’ÆÎo@ä¹Dü?YÓ¼*aOgIEND®B`‚mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized.html0000755000372000001440000002635212502417163030247 0ustar robertousers MySQL++ Reference Manual
mysqlpp::ObjectNotInitialized Class Reference

Exception thrown when you try to use an object that isn't completely initialized. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::ObjectNotInitialized:
Collaboration diagram for mysqlpp::ObjectNotInitialized:

Public Member Functions

 ObjectNotInitialized (const char *w="")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) throw ()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when you try to use an object that isn't completely initialized.


The documentation for this class was generated from the following file:
mysql++-3.2.2+pristine.orig/doc/html/refman/classmysqlpp_1_1MultiResultsOption__coll__graph.png0000644000372000001440000001356312502417165032346 0ustar robertousers‰PNG  IHDRÈ»¯ŒF¦bKGDÿÿÿ ½§“(IDATxœíÝ{Tgúð7 A@n!ÜÒvÕXájWÛê©(AJ×­7d)mAƒëªk…uõ´êòóXðtíî‘«® ZDQº¨Xñ²\E X=ÜT†›I \æ÷ÇtÓˆ–×Iìó9þñÎ;“yŸ™|™LB#0ÞèT^M,€ `ÁXXP5pKKˆ är9U¼ò¬¬¬8ðÆoP2:eÁª¨¨8wî\XXU¼òòòò"##uÁ"¬û||ÉÍÍ5ft„ЪU«Äbqff&BhåÊ•b±8-- !ÔÕÕuíÚ5'''…BADvv¶···Z­–J¥&LHMM …YYYR©4--Ãáäçç···Ÿ?žËå"„ÈÈFppp}}}EEÇÛ½{·ÞN‚ úúú222Èò4íÞÞ^„H$Ò©¿´´ÔÅÅe”õ“‹i·#""›šš9(BhÅŠ½½½¡îîncv]nn®qÏÆø3ƒ`UWW144¤ÓnhhP*•®®®?üðA¡¡¡‰‰‰Aôôô0™Ìo¾ù¦··W­VK$•Jåííýïÿ[³Ú#GŽŒ –@ ÐÔÆãñôvªÓP°ÊËËÙlö(ë'{4í¡¡!ƒQWWGöçç瓃"„JJJ´·Ý˜]Ga°LýTˆ²µµE1™L6BˆÁ`,[¶,??¿««ëòåË!‡’’’ŠŠ .—»`Á‚7nÐéôæææ™3gjÖ9}úô‘M:•lxzz¶¶¶ŽÒ9’½½½««kMMNMMͬY³Œ_Ugg§J¥š2e 9Éãñ4Kº»»ko»‰3ƒ`.,,ìÌ™3'Ožœ7oy‚“Édjµ://¯§§'::zñâÅ===wïÞÕ<êÞ½{#WE6Bõõõä³h¨S¯ˆˆˆ„„í×€ýýýIII!!!ƯÊÅÅ…Á`477““MMMd›N7«'‹ªC¥ñ§BÍa_o[©Tr8—Ç“³d2™••Õ©S§D"Qzzº•••L&Û»w/‡Ã9{ö¬P(,**Ò{ÐÐÐPYY9uêÔ;wêí$ \cñìÙ³iÓ¦-X° ¨¨¨¾¾>??ßÛÛûý÷ß—Ë壬_"‘ï±V¯^ØÜÜ\[[ëííMjh?Œ¾ëàË 1ƒEDllìk¯½&‹µW>eÊKKKOOÏ‚‚‚ †††&Mšdcc3wîÜãÇ Vffæ›o¾Éf³7nÜ(“ÉôvÃC Ý&B*•nݺÕÇLJÅby{{ïÙ³g``ÀÐú żyóllltÖÓÓÓéäääææ¶eËrP–±Œ –1vìØ±zõêçzˆN t&Gé|1ã¸*ãQ,ó¾A*—ËÛÛÛ:tâÄ ªkØÕõà7oÞœ={öçŸîïïÿKÖ3qâD>ŸoLç8®ÿÕF#(úÂêÉ“'ÃÃéý×€F£åææ®\¹’’ÑÍûˆL `ÁX@°ßnHOO§¶€ eÁòðð`0fô"œÅšŽP]ˆ± †æ}Æ—²Û æE¥RϘ± !$$Ðé¯Ô‡Ó1k,£”—7öôô÷ôHËÊ©®Å<@°Œ’—wË‚ÎdÒóòª¨®Å<@°Æ&—+Ο¿«Tª õùówårÕ™ÖØ®\¹¯ “\®¸rå>µõ˜ÖØNŸ¾¥ù F;}úµõ˜ÖÄbùåË?ªTjrR¥R_¾ü£X /n ¬1\¸P«V»#£V/ÖRU¹€`áÔ©[:wú‚8u Άc€`F$’”•5¨ÕjíNµš(+k‰$TUe X£9w®Fï}vvîÜÝ‘ý@‚5š“'oé\`‘Ôj5Ü)Ë ¶¶^à‰`¡»wŸ´·÷½üªÌ…yK«®.©»»½æ‹¼GjeõÓ7ÜétzW—ÄÝÝž²úL|ºÁX|þ„PZZÕ…˜8, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`, X À‚°€`,Lè/úMš4éÑ£GTWa…!¤TvQ]ˆA“&Mjnn¦ºŠŸ˜P°h4Ú–-[æÎKu!f©¼¼üÛo¿5gÓ´þ¸íœ9s¨®Â,™N¤Hp°€`, X ÀÂÌ‚EÓâàà°råJ‘Hô\khllÔü\ê/×ßß?cÆ [[ÛwÞygïÞ½J¥òå—a‚Ì,X¡²²2¡PØÞÞ^\\ÜÚÚºqãFª*‘H$³gÏ®ªªJJJº}ûööíÛsrr‚‚‚T*•Þå›››Ùl6Ù¶··ß¶mÛK,ö¥#LB(77wÌe4“ׯ_·³³{®QÆk«ãââüüü”J¥¦G*•þæ7¿ÉÈÈÀ=ôH¹¹¹&õlšßKƒÁàp8d»¯¯ïÓO?e³Ù\.7..N.—êÔP(ñññ...'>>^¡P „Î;÷öÛo³X,77·ÄÄDrI–““ãåååèè¸oß>²3;;{çÎ C³BkkëøøøììlòLWPP0mÚ4‡³iÓ¦ÁÁÁ9sæ „\]]ÑðS¡Þ"õŽhN¨NöÏqG¬šš‰D"‹>>»wïÖÛ©}ØHJJZ¾|yKK‹@ øíoû׿þU,[ZZ~þùç­­­ÙÙÙ¡§OŸ’ã®X±¢··7##!ÔÝÝÝÛÛ‹‰D:–––º¸¸£×××WTTðx<¡µÛz+9âè{ÆÔŽX¦TŠqÁÒ6qâDòÌ844Ä`0êêêÈÅòóóy<žÞNígÔÓÓS(’íâââ™3gÞ¿_*•ªTªk×®¡ÿyB%%%ä@d§¡`•——³Ùlr@@væææê ­ië-RïS –i½¥cŒ††‡øÇ?þñÁ<~ü¸³³S¥RM™2…\†Çãµ¶¶êíÔ^Õ£GÜÜÜ4“vvv–––õõõk×®•J¥o¿ý¶öÂîîî!&ó§ß+´··wuu­©©Y¸p¡öb555³fÍ"ÛS§N%žžž:CkŒR¤ÎˆæÅŒ¯±X,ÖÚµkŸ>¾ºº:%%E{a:]w_EDD$$$h¿ìïïOJJ !'ÉÃB¨¾¾žLÉH£9rD3b~¥‹D¢ŽŽŽŽŽŽ–––¤¤¤×_ÝÙÙ™Éd†‡‡oÚ´éáÇuuu_~ùeDD„ÞNíU-[¶lûöí?!!!²´´”Éd»víBI$­~çÎOŸ> ¼páBCCÙ3gÞ{ï=õëד lÞ¼¹±±±ªªjÇŽkÖ¬!;¥R©öJÆ,Ò\Q{&Ö†žó‹N§OŸ>½¢¢‚œÕÓÓéäääææ¶eË™L¦·SûBG,öÙgNNNëÖ­ëïï'bÿþýŽŽŽ¯¿þzJJʪU«81ü6‡v[*•nݺÕÇLJÅby{{ïÙ³g``€øß%Tffæ›o¾Éf³7nÜ(“É żyólllˆáïz+74¢!¦veJ¥,sõ–•^¦,ó;³ÁÂbâĉ|>Ÿê*¨Á‚Ãᤦ¦R]• X À‚°€`,Lë{…¾¾¾...T¢AÐB4š©ì.µµµ¦ólšÐ›Ð_|ñÅ“'O¨®Â "<={©.D?‡   ª«ø™ ±LY_߀¯ïW4­®îÿ&N|êrÌ\cåâÅ:‚@jµº¨¨–êZÌË(¹¹•ÄOïfVR]‹y€`­£ãÙÍ›ÍA¨ÕÄÍ›ÍϨ®È @°ÆVXXÃ`ü´£ ú¹sw©­Ç,@°Æ–—W¥ù˜¨R©ÎË«¢¶³ÁCs³¨®®Më¥3Q[Ûúðáó}ýúW‚5†‚‚;L&C»‡ÉdÜ¡ªsÁÃÉ“• Ű¯Ì+*xm8&ÖhîÝk{ü¸{dÿãÇÝ÷îµ½üzÌk4gÎTëœIL&ãÌ™ê—_`¤VyyU:çA’B¡ÊË«R«áÝ0ƒ XݹÓ"I˜L†¥¥…Î?&“!IjjZ¨®Ñt™Ð§L —ë°aC f²¼¼ !4wîM‡‡e™ øtƒ±øü#¡´´(ª 1p*X@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `ÁX@°,€ `1ì¯]¹r¥±±‘ÂjLY^^B(,̃êBLÔÔ©S~ž&´XXÀ_Ž/ÈÂÂB;KÃŽX4m×®]þþþÔ•ÌÒÕ«Wÿö·¿ig ®±,€ `ÁX˜V°ÚÚÚ†½dýeÖ¬Y£ó‡ì·mÛÐÖ¦ÿ'–ô Ý eÑ¢EúÓŸÆëÍón»\.OMMŽŽ ÍÉÉÑüZçøôbL+X㮣££©©I3)‘HîÞ5ê‡w…BáÇL¶mllV­Z¥™•œœ|úôéÓ§Ogeeq¹\WC¿œöІ ðùüðùüôôôˆˆˆââ⸸8µZ=æ:u6“Wúè£C‡!„¾ûî»}ûö‘KÊd²††„PYYYtttppðêÕ«/]º„"âÌ™3QQQ¡¡¡6l¸sçŽöñ™<\—––FFF.]ºô»ï¾S(z;Ñðc»ÎqÞßßÿêÕ«š#ʵk×,X0rÉ‘g‡?þñ¡eË–é«Á`0,,,¬­­ÉI¥R™ššºtéÒ¥K—¦¦¦*•J½ÛnüÐzŽ*..þä“OèôŸŸ>++«?üáÅÅÅz÷’¡Í‘J¥‰‰‰üqXXØÁƒ‡††È§øòåËQQQ¿ÿýï¿ÿþ{½>¦9bݾ}ûàÁƒëÖ­ËÈÈ(//ÏÊÊZ¿~ý±cÇÄbñ‚ JKKÉ“}ii©››Ç“Ëå»wï^²dÉ÷ß¹oß>¹\~þüù£GÆÄÄ;vì“O>ùúë¯GtöìÙ¯¿þzïÞ½7oÞ<~ü¸¡N{{û¸¸8r®v!äãã#“Éȳauuõûï¿oÌ6¦¤¤ „òóóGÎ’Ëå2™L&“uwwgee1™LrÖ©S§„BaZZÚßÿþ÷êêêÇëÝvã‡Öûp©TÚÓÓÃãñtÈãñZZZôî%C›óÏþS$¥¦¦&%%UUU8q‚ìÿïÿ{àÀ>ŸŸ––&‘HŒÙc:^$Xááá,+88!´zõj‹‚’H$>>>!tùòåàà`¦P(‚Éd–––!!!………&L8}útll¬ŸŸŸ““Ó{ï½3r õë×s¹\//¯˜˜˜ââbCÖÖÖ}ô9W»¢ÓéóçÏ'φååå¾¾¾'N|MÖºbÅŠK—.…‡‡kfmÞ¼™ÃáLž<™ÏçWVVêÝvãÇz®‡Óh4Í5–Þ]§C©T^¹reãÆnnn“'Oþì³Ï4K.Y²ÄÆÆfÑ¢E¡1ÏËz½H°X,Bˆ|cQ»¢Óé~~~ׯ_öìÙíÛ·.\ˆ²µµýöÛoüñǰ°°?ÿùÏ€F£ …Bíÿs“'O9—Ë%o¼ñ†H$¥sš³¡öyPÇs]}ggg—”””””\¸pañâÅšS?B¨££cùòåäkƸ¸8¡P¨wÛZïÃmllG¾mll|뭷ȶ1{©··W­V»»»““š%Ùl6ÒzZ_Àø_¼ûûû߸qãêÕ«¾¾¾ÎÎΡÁÁAµZ½{÷îÂÂÂÐÐÐ;vH$6›­ýzíÑ£G#WÕÚÚJ6žrUÉÉÉmmm<ÈÌÌ 2ÔÙßßþüyr®vû§-¤ÓçÏŸ¿ÿ~///{{{M¿ BèÒ¥Kz¯¥B2™lôµ¶¶Ð,æçç—‘‘ÑÙÙÙÜÜü—¿üåìÙ³z·Ýø¡õ>!ÕÛÛûÅ_TVV¶¶¶Þ¸qcýúõl6[sOAï®ÓÙ ‹€€€ýë_B¡ðáÇYYYäf\ŒÿçdÈ'òâÅ‹óçÏ'{,--·oßž––öôéSww÷]»vYZZ†‡‡«Tªôõõ‘W${öìÑYÕÂ… ·nÝ*—Ë#""ȵN'B¨¯¯ï›o¾!/­´ÛK—.Õî´³³‹ŽŽNIIÉÎÎÞ°aÃ7´çºººúúú._¾ü?ÿùÏ(ëììÌb±Äb1yIœœ¼víZ6þ|>Ÿ¯wÛ---ZïÃB,+==ýðáé©©ííínnnaaaš—:{‰Á`èݜ͛7'''ÇÆÆ2™Ì>ø€ÜŸãËÇf233;::¾üòKãÒÖÖ¶fÍš’’½“£t”ì%ì› …EEE¿ûÝïÆwÍÀ¼Œs°îß¿Ïçó?üðC#opbmm½xñbc:ÙKð R0à¤à%`, X À‚ðÐþ’!ƒÁ º`® ư/?kÏ»råJgg'U•³æââ¢=I{®OŒ`$¸ÆX@°,€ `ñÿñèëÉe6T6IEND®B`‚mysql++-3.2.2+pristine.orig/doc/refman/0000755000372000001440000000000012502417162017210 5ustar robertousersmysql++-3.2.2+pristine.orig/doc/README-manuals-RPM.txt0000644000372000001440000000023412502417162021527 0ustar robertousersFor more information about MySQL++, see its home page: http://tangentsoft.net/mysql++/ See the LICENSE file in this directory for the library's license. mysql++-3.2.2+pristine.orig/bmark.txt0000644000372000001440000002632212502417162017035 0ustar robertousersAll unit tests passed ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN simple1 OUTPUT ---------------- We have: Nürnberger Brats Pickle Relish Hot Mustard Hotdog Buns ================ END simple1 OUTPUT ================ ---------------- BEGIN simple2 OUTPUT ---------------- Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.10 1998-04-23 ================ END simple2 OUTPUT ================ ---------------- BEGIN simple3 OUTPUT ---------------- Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.10 1998-04-23 ================ END simple3 OUTPUT ================ ---------------- BEGIN store_if OUTPUT ---------------- Records found: 2 Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Hot Mustard 73 0.95 0.97 1998-05-25 ================ END store_if OUTPUT ================ ---------------- BEGIN for_each OUTPUT ---------------- There are 322 items weighing 416.85 stone and costing 1147.19 cowrie shells. ================ END for_each OUTPUT ================ ---------------- BEGIN multiquery OUTPUT ---------------- Multi-query: DROP TABLE IF EXISTS test_table; CREATE TABLE test_table(id INT); INSERT INTO test_table VALUES(10); UPDATE test_table SET id=20 WHERE id=10; SELECT * FROM test_table; DROP TABLE test_table Result set 0 is empty. Result set 1 is empty. Result set 2 is empty. Result set 3 is empty. Result set 4 has 1 row: +----+ | id | +----+ | 20 | +----+ Result set 5 is empty. Stored procedure query: DROP PROCEDURE IF EXISTS get_stock; CREATE PROCEDURE get_stock( i_item varchar(20) ) BEGIN SET i_item = concat('%', i_item, '%'); SELECT * FROM stock WHERE lower(item) like lower(i_item); END; Result set 0 is empty. Result set 1 is empty. Query: CALL get_stock('relish') Result set 0 has 1 row: +---------------+-----+--------+-------+------------+-------------+ | item | num | weight | price | sdate | description | +---------------+-----+--------+-------+------------+-------------+ | Pickle Relish | 87 | 1.5 | 1.75 | 1998-09-04 | NULL | +---------------+-----+--------+-------+------------+-------------+ Result set 1 is empty. ================ END multiquery OUTPUT ================ ---------------- BEGIN tquery1 OUTPUT ---------------- Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 ================ END tquery1 OUTPUT ================ ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN tquery2 OUTPUT ---------------- Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 ================ END tquery2 OUTPUT ================ ---------------- BEGIN tquery3 OUTPUT ---------------- Stuff we have a lot of in stock: Nuerenberger Bratwurst Pickle Relish ================ END tquery3 OUTPUT ================ ---------------- BEGIN tquery4 OUTPUT ---------------- Query: update stock set num = 70 where num < 70 Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 70 1.1 1.1 1998-04-23 Query: select * from stock where weight > 1.2 or description like '%Mustard%' Records found: 3 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 ================ END tquery4 OUTPUT ================ ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN ssqls1 OUTPUT ---------------- We have: Nürnberger Brats Pickle Relish Hot Mustard (good American yellow mustard, not that European stuff) Hotdog Buns ================ END ssqls1 OUTPUT ================ ---------------- BEGIN ssqls2 OUTPUT ---------------- Query: INSERT INTO `stock` (`item`,`num`,`weight`,`price`,`sDate`,`description`) VALUES ('Hot Dogs',100,1.5,NULL,'1998-09-25',NULL) Query: select * from stock Records found: 5 Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Hot Dogs 100 1.5 (NULL) 1998-09-25 ================ END ssqls2 OUTPUT ================ ---------------- BEGIN ssqls3 OUTPUT ---------------- Query: UPDATE `stock` SET `item` = 'Nuerenberger Bratwurst',`num` = 97,`weight` = 1.5,`price` = 8.7899999999999991,`sDate` = '2005-03-10',`description` = NULL WHERE `item` = 'Nürnberger Brats' Query: select * from stock Records found: 5 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Hot Dogs 100 1.5 (NULL) 1998-09-25 ================ END ssqls3 OUTPUT ================ ---------------- BEGIN ssqls4 OUTPUT ---------------- Records found: 5 Item Num Weight Price Date Hot Dogs 100 1.5 (NULL) 1998-09-25 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Currently 65 hotdog buns in stock. ================ END ssqls4 OUTPUT ================ ---------------- BEGIN ssqls5 OUTPUT ---------------- Custom query: select * from stock where `weight` = 1.5 and `price` = 8.7899999999999991 ================ END ssqls5 OUTPUT ================ ---------------- BEGIN ssqls6 OUTPUT ---------------- Query: select * from stock Records found: 26 Item Num Weight Price Date Tiny Screws 1000 0.01 0.05 2008-11-11 Needle-nose Pliers 50 0.5 5.95 2008-11-12 Small Soldering Iron 40 0.5 15.95 2008-09-01 Large Soldering Iron 35 0.75 24.95 2008-08-01 Solder Wick 100 0.1 2.95 2008-04-01 Mini Screwdrivers, 3 pc. 30 0.4 8.95 2008-03-25 Mini Screwdrivers, 6 pc. 40 0.6 12.95 2008-04-01 Wire-wrapping Tool 25 0.2 4.95 2008-04-23 Red LED, 5mm, 3000mcd 300 0.01 0.29 2008-10-02 Orange LED, 5mm, 2500mcd 250 0.01 0.29 2008-07-31 Yellow LED, 5mm, 3000mcd 400 0.01 0.25 2008-09-30 Green LED, 5mm, 1000mcd 350 0.01 0.45 2008-09-27 Blue LED, 5mm, 3900mcd 500 0.01 0.34 2007-12-01 White LED, 5mm, 15000mcd 750 0.01 0.43 2008-02-01 AA Battery, single 220 0.05 0.5 2007-09-19 AA Battery, 4-pack 60 0.2 1.79 2007-08-03 AA Battery, 24-pack 8 1.2 9.99 2007-04-25 C Battery, single 100 0.075 0.65 2007-11-14 C Battery, 4-pack 25 0.3 2.29 2007-06-05 C Battery, 24-pack 5 1.8 10.99 2007-06-13 D Battery, single 180 0.08 0.7 2007-12-03 D Battery, 4-pack 45 0.3 2.59 2007-04-01 D Battery, 24-pack 12 1.9 11.99 2007-05-15 9-volt Battery, single 90 0.06 0.75 2008-01-02 9-volt Battery, 3-pack 17 0.2 1.99 2008-02-28 9-volt Batter, 20-pack 12 1.2 12.99 2007-12-28 ================ END ssqls6 OUTPUT ================ ---------------- BEGIN load_jpeg OUTPUT ---------------- Inserted "NULL" into images table, 0 bytes, ID 1 ================ END load_jpeg OUTPUT ================ ---------------- BEGIN cgi_jpeg OUTPUT ---------------- Content-type: text/plain No image content! ================ END cgi_jpeg OUTPUT ================ --- BEGIN ssqlsxlat -i examples/common.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i examples/common.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i examples/stock.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i examples/stock.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i test/test1.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i test/test1.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i test/test2.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i test/test2.ssqls -o ERROR OUTPUT ==== mysql++-3.2.2+pristine.orig/Makefile.in0000644000372000001440000013146612502417166017257 0ustar robertousers# ========================================================================= # This makefile was generated by # Bakefile 0.2.9 (http://www.bakefile.org) # Do not modify, all changes will be overwritten! # ========================================================================= @MAKE_SET@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ INSTALL = @INSTALL@ SHARED_LD_CXX = @SHARED_LD_CXX@ LIBEXT = @LIBEXT@ LIBPREFIX = @LIBPREFIX@ SO_SUFFIX = @SO_SUFFIX@ DLLIMP_SUFFIX = @DLLIMP_SUFFIX@ EXEEXT = @EXEEXT@ LN_S = @LN_S@ SETFILE = @SETFILE@ PIC_FLAG = @PIC_FLAG@ SONAME_FLAG = @SONAME_FLAG@ STRIP = @STRIP@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_DIR = @INSTALL_DIR@ BK_DEPS = @BK_DEPS@ srcdir = @srcdir@ libdir = @libdir@ DLLPREFIX = @DLLPREFIX@ LIBS = @LIBS@ AR = @AR@ AROPTIONS = @AROPTIONS@ RANLIB = @RANLIB@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ ### Variables: ### DESTDIR = MYSQLPP_CXXFLAGS = -I. $(PIC_FLAG) @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) MYSQLPP_OBJECTS = \ mysqlpp_beemutex.o \ mysqlpp_cmdline.o \ mysqlpp_connection.o \ mysqlpp_cpool.o \ mysqlpp_datetime.o \ mysqlpp_dbdriver.o \ mysqlpp_field_names.o \ mysqlpp_field_types.o \ mysqlpp_manip.o \ mysqlpp_myset.o \ mysqlpp_mysql++.o \ mysqlpp_mystring.o \ mysqlpp_null.o \ mysqlpp_options.o \ mysqlpp_qparms.o \ mysqlpp_query.o \ mysqlpp_result.o \ mysqlpp_row.o \ mysqlpp_scopedconnection.o \ mysqlpp_sql_buffer.o \ mysqlpp_sqlstream.o \ mysqlpp_ssqls2.o \ mysqlpp_stadapter.o \ mysqlpp_tcp_connection.o \ mysqlpp_transaction.o \ mysqlpp_type_info.o \ mysqlpp_uds_connection.o \ mysqlpp_utility.o \ mysqlpp_vallist.o \ mysqlpp_wnp_connection.o SSQLS2PARSE_CXXFLAGS = -Ilib -I. @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS2PARSE_OBJECTS = \ ssqls2parse_parsev2.o SSQLSXLAT_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLSXLAT_OBJECTS = \ ssqlsxlat_genv2.o \ ssqlsxlat_main.o TEST_ARRAY_INDEX_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_ARRAY_INDEX_OBJECTS = \ test_array_index_array_index.o TEST_CPOOL_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_CPOOL_OBJECTS = \ test_cpool_cpool.o TEST_DATETIME_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_DATETIME_OBJECTS = \ test_datetime_datetime.o TEST_INTTYPES_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_INTTYPES_OBJECTS = \ test_inttypes_inttypes.o TEST_INSERTPOLICY_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_INSERTPOLICY_OBJECTS = \ test_insertpolicy_insertpolicy.o TEST_MANIP_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_MANIP_OBJECTS = \ test_manip_manip.o TEST_NULL_COMPARISON_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_NULL_COMPARISON_OBJECTS = \ test_null_comparison_null_comparison.o TEST_QUERY_COPY_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_QUERY_COPY_OBJECTS = \ test_query_copy_query_copy.o TEST_QSSQLS_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_QSSQLS_OBJECTS = \ test_qssqls_qssqls.o TEST_QSTREAM_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_QSTREAM_OBJECTS = \ test_qstream_qstream.o TEST_SQLSTREAM_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_SQLSTREAM_OBJECTS = \ test_sqlstream_sqlstream.o TEST_SSQLS2_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_SSQLS2_OBJECTS = \ test_ssqls2_ssqls2.o TEST_STRING_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_STRING_OBJECTS = \ test_string_string.o TEST_TCP_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_TCP_OBJECTS = \ test_tcp_tcp.o TEST_UDS_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_UDS_OBJECTS = \ test_uds_uds.o TEST_WNP_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TEST_WNP_OBJECTS = \ test_wnp_wnp.o EXCOMMON_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) EXCOMMON_OBJECTS = \ excommon_printdata.o CGI_JPEG_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) CGI_JPEG_OBJECTS = \ cgi_jpeg_cgi_jpeg.o CPOOL_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) CPOOL_OBJECTS = \ cpool_cpool.o DBINFO_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) DBINFO_OBJECTS = \ dbinfo_dbinfo.o DEADLOCK_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) DEADLOCK_OBJECTS = \ deadlock_deadlock.o FIELDINF_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) FIELDINF_OBJECTS = \ fieldinf_fieldinf.o FOR_EACH_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) FOR_EACH_OBJECTS = \ for_each_for_each.o LOAD_JPEG_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) LOAD_JPEG_OBJECTS = \ load_jpeg_load_jpeg.o MULTIQUERY_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) MULTIQUERY_OBJECTS = \ multiquery_multiquery.o RESETDB_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) RESETDB_OBJECTS = \ resetdb_resetdb.o SIMPLE1_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SIMPLE1_OBJECTS = \ simple1_simple1.o SIMPLE2_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SIMPLE2_OBJECTS = \ simple2_simple2.o SIMPLE3_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SIMPLE3_OBJECTS = \ simple3_simple3.o SSQLS1_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS1_OBJECTS = \ ssqls1_ssqls1.o SSQLS2_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS2_OBJECTS = \ ssqls2_ssqls2.o SSQLS3_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS3_OBJECTS = \ ssqls3_ssqls3.o SSQLS4_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS4_OBJECTS = \ ssqls4_ssqls4.o SSQLS5_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS5_OBJECTS = \ ssqls5_ssqls5.o SSQLS6_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) SSQLS6_OBJECTS = \ ssqls6_ssqls6.o STORE_IF_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) STORE_IF_OBJECTS = \ store_if_store_if.o TQUERY1_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TQUERY1_OBJECTS = \ tquery1_tquery1.o TQUERY2_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TQUERY2_OBJECTS = \ tquery2_tquery2.o TQUERY3_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TQUERY3_OBJECTS = \ tquery3_tquery3.o TQUERY4_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TQUERY4_OBJECTS = \ tquery4_tquery4.o TRANSACTION_CXXFLAGS = -Ilib @PTHREAD_CFLAGS@ $(CPPFLAGS) $(CXXFLAGS) TRANSACTION_OBJECTS = \ transaction_transaction.o ### Conditionally set variables: ### @COND_DEPS_TRACKING_0@CXXC = $(CXX) @COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX) @COND_PLATFORM_OS2_1@__mysqlpp___importlib = -import \ @COND_PLATFORM_OS2_1@ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_WINDOWS_IMPLIB_1@__mysqlpp___importlib = \ @COND_WINDOWS_IMPLIB_1@ -Wl,--out-implib=$(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__mysqlpp___targetsuf2 \ @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@ = .$(SO_SUFFIX).3 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__mysqlpp___targetsuf2 \ @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .3.$(SO_SUFFIX) @COND_USE_SOVERSION_0@__mysqlpp___targetsuf2 = .$(SO_SUFFIX) @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ = \ @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ .$(SO_SUFFIX).3.2.2 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .3.2.2.$(SO_SUFFIX) @COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1@__mysqlpp___targetsuf3 \ @COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1@ = .$(SO_SUFFIX).3 @COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1@ = -3.$(SO_SUFFIX) @COND_USE_SOVERSION_0@__mysqlpp___targetsuf3 = .$(SO_SUFFIX) @COND_USE_SOVERLINUX_1@__mysqlpp___soname_flags = \ @COND_USE_SOVERLINUX_1@ $(SONAME_FLAG)$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) @COND_USE_SOVERSOLARIS_1@__mysqlpp___soname_flags \ @COND_USE_SOVERSOLARIS_1@ = \ @COND_USE_SOVERSOLARIS_1@ $(SONAME_FLAG)$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_cmd = (cd .; rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX)) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_cmd) COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_cmd = (cd .; rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX)) @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_cmd = $(COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_cmd) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_inst_cmd = rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_inst_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_inst_cmd) COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_inst_cmd = rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_inst_cmd = $(COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_inst_cmd) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_uninst_cmd = rm -f \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_uninst_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_uninst_cmd) @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_uninst_cmd \ @COND_USE_SOVERSOLARIS_1@ = rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_PLATFORM_MACOSX_1@__mysqlpp___macinstnamecmd \ @COND_PLATFORM_MACOSX_1@ = -install_name \ @COND_PLATFORM_MACOSX_1@ $(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) @COND_PLATFORM_MAC_0@__ssqlsxlat___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqlsxlat___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqlsxlat$(EXEEXT) @COND_PLATFORM_MAC_0@__test_array_index___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_array_index___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_array_index$(EXEEXT) @COND_PLATFORM_MAC_0@__test_cpool___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_cpool___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_cpool$(EXEEXT) @COND_PLATFORM_MAC_0@__test_datetime___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_datetime___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_datetime$(EXEEXT) @COND_PLATFORM_MAC_0@__test_inttypes___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_inttypes___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_inttypes$(EXEEXT) @COND_PLATFORM_MAC_0@__test_insertpolicy___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_insertpolicy___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_insertpolicy$(EXEEXT) @COND_PLATFORM_MAC_0@__test_manip___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_manip___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_manip$(EXEEXT) @COND_PLATFORM_MAC_0@__test_null_comparison___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_null_comparison___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_null_comparison$(EXEEXT) @COND_PLATFORM_MAC_0@__test_query_copy___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_query_copy___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_query_copy$(EXEEXT) @COND_PLATFORM_MAC_0@__test_qssqls___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_qssqls___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_qssqls$(EXEEXT) @COND_PLATFORM_MAC_0@__test_qstream___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_qstream___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_qstream$(EXEEXT) @COND_PLATFORM_MAC_0@__test_sqlstream___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_sqlstream___mac_setfilecmd \ @COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL test_sqlstream$(EXEEXT) @COND_PLATFORM_MAC_0@__test_ssqls2___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_ssqls2___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_ssqls2$(EXEEXT) @COND_PLATFORM_MAC_0@__test_string___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_string___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_string$(EXEEXT) @COND_PLATFORM_MAC_0@__test_tcp___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_tcp___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_tcp$(EXEEXT) @COND_PLATFORM_MAC_0@__test_uds___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_uds___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_uds$(EXEEXT) @COND_PLATFORM_MAC_0@__test_wnp___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__test_wnp___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL test_wnp$(EXEEXT) @COND_PLATFORM_MAC_0@__cgi_jpeg___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__cgi_jpeg___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL cgi_jpeg$(EXEEXT) @COND_PLATFORM_MAC_0@__cpool___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__cpool___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL cpool$(EXEEXT) @COND_PLATFORM_MAC_0@__dbinfo___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__dbinfo___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL dbinfo$(EXEEXT) @COND_PLATFORM_MAC_0@__deadlock___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__deadlock___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL deadlock$(EXEEXT) @COND_PLATFORM_MAC_0@__fieldinf___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__fieldinf___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL fieldinf$(EXEEXT) @COND_PLATFORM_MAC_0@__for_each___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__for_each___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL for_each$(EXEEXT) @COND_PLATFORM_MAC_0@__load_jpeg___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__load_jpeg___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL load_jpeg$(EXEEXT) @COND_PLATFORM_MAC_0@__multiquery___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__multiquery___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL multiquery$(EXEEXT) @COND_PLATFORM_MAC_0@__resetdb___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__resetdb___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL resetdb$(EXEEXT) @COND_PLATFORM_MAC_0@__simple1___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__simple1___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL simple1$(EXEEXT) @COND_PLATFORM_MAC_0@__simple2___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__simple2___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL simple2$(EXEEXT) @COND_PLATFORM_MAC_0@__simple3___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__simple3___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL simple3$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls1___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls1___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls1$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls2___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls2___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls2$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls3___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls3___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls3$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls4___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls4___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls4$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls5___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls5___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls5$(EXEEXT) @COND_PLATFORM_MAC_0@__ssqls6___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__ssqls6___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL ssqls6$(EXEEXT) @COND_PLATFORM_MAC_0@__store_if___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__store_if___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL store_if$(EXEEXT) @COND_PLATFORM_MAC_0@__tquery1___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__tquery1___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL tquery1$(EXEEXT) @COND_PLATFORM_MAC_0@__tquery2___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__tquery2___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL tquery2$(EXEEXT) @COND_PLATFORM_MAC_0@__tquery3___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__tquery3___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL tquery3$(EXEEXT) @COND_PLATFORM_MAC_0@__tquery4___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__tquery4___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL tquery4$(EXEEXT) @COND_PLATFORM_MAC_0@__transaction___mac_setfilecmd = @true @COND_PLATFORM_MAC_1@__transaction___mac_setfilecmd = \ @COND_PLATFORM_MAC_1@ $(SETFILE) -t APPL transaction$(EXEEXT) ### Targets: ### all: $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) ssqlsxlat$(EXEEXT) test_array_index$(EXEEXT) test_cpool$(EXEEXT) test_datetime$(EXEEXT) test_inttypes$(EXEEXT) test_insertpolicy$(EXEEXT) test_manip$(EXEEXT) test_null_comparison$(EXEEXT) test_query_copy$(EXEEXT) test_qssqls$(EXEEXT) test_qstream$(EXEEXT) test_sqlstream$(EXEEXT) test_ssqls2$(EXEEXT) test_string$(EXEEXT) test_tcp$(EXEEXT) test_uds$(EXEEXT) test_wnp$(EXEEXT) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) cgi_jpeg$(EXEEXT) cpool$(EXEEXT) dbinfo$(EXEEXT) deadlock$(EXEEXT) fieldinf$(EXEEXT) for_each$(EXEEXT) load_jpeg$(EXEEXT) multiquery$(EXEEXT) resetdb$(EXEEXT) simple1$(EXEEXT) simple2$(EXEEXT) simple3$(EXEEXT) ssqls1$(EXEEXT) ssqls2$(EXEEXT) ssqls3$(EXEEXT) ssqls4$(EXEEXT) ssqls5$(EXEEXT) ssqls6$(EXEEXT) store_if$(EXEEXT) tquery1$(EXEEXT) tquery2$(EXEEXT) tquery3$(EXEEXT) tquery4$(EXEEXT) transaction$(EXEEXT) install: install_mysqlpp $(INSTALL_DIR) $(DESTDIR)$(prefix)/include/mysql++ (cd $(srcdir) ; $(INSTALL_DATA) lib/*.h $(DESTDIR)$(prefix)/include/mysql++) uninstall: uninstall_mysqlpp (cd $(DESTDIR)$(prefix)/include/mysql++ ; rm -f *.h) -rmdir $(prefix)/include/mysql++ rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) install-strip: install $(STRIP) $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) clean: rm -rf ./.deps ./.pch rm -f ./*.o rm -f $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) rm -f $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) rm -f ssqlsxlat$(EXEEXT) rm -f test_array_index$(EXEEXT) rm -f test_cpool$(EXEEXT) rm -f test_datetime$(EXEEXT) rm -f test_inttypes$(EXEEXT) rm -f test_insertpolicy$(EXEEXT) rm -f test_manip$(EXEEXT) rm -f test_null_comparison$(EXEEXT) rm -f test_query_copy$(EXEEXT) rm -f test_qssqls$(EXEEXT) rm -f test_qstream$(EXEEXT) rm -f test_sqlstream$(EXEEXT) rm -f test_ssqls2$(EXEEXT) rm -f test_string$(EXEEXT) rm -f test_tcp$(EXEEXT) rm -f test_uds$(EXEEXT) rm -f test_wnp$(EXEEXT) rm -f $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) rm -f cgi_jpeg$(EXEEXT) rm -f cpool$(EXEEXT) rm -f dbinfo$(EXEEXT) rm -f deadlock$(EXEEXT) rm -f fieldinf$(EXEEXT) rm -f for_each$(EXEEXT) rm -f load_jpeg$(EXEEXT) rm -f multiquery$(EXEEXT) rm -f resetdb$(EXEEXT) rm -f simple1$(EXEEXT) rm -f simple2$(EXEEXT) rm -f simple3$(EXEEXT) rm -f ssqls1$(EXEEXT) rm -f ssqls2$(EXEEXT) rm -f ssqls3$(EXEEXT) rm -f ssqls4$(EXEEXT) rm -f ssqls5$(EXEEXT) rm -f ssqls6$(EXEEXT) rm -f store_if$(EXEEXT) rm -f tquery1$(EXEEXT) rm -f tquery2$(EXEEXT) rm -f tquery3$(EXEEXT) rm -f tquery4$(EXEEXT) rm -f transaction$(EXEEXT) rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ rm -f doxygen.css [a-z]*.{dot,html,map,md5,png} distclean: clean rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3): $(MYSQLPP_OBJECTS) lib/ssqls.h lib/querydef.h $(SHARED_LD_CXX) $@ $(MYSQLPP_OBJECTS) $(__mysqlpp___importlib) $(__mysqlpp___soname_flags) $(__mysqlpp___macinstnamecmd) -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) $(LIBS) $(__mysqlpp___so_symlinks_cmd) install_mysqlpp: $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(INSTALL_DIR) $(DESTDIR)$(libdir) $(INSTALL_DATA) $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) $(DESTDIR)$(libdir) $(INSTALL_PROGRAM) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(DESTDIR)$(libdir) (cd $(DESTDIR)$(libdir) ; $(__mysqlpp___so_symlinks_inst_cmd)) uninstall_mysqlpp: rm -f $(DESTDIR)$(libdir)/$(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) (cd $(DESTDIR)$(libdir) ; $(__mysqlpp___so_symlinks_uninst_cmd)) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT): $(SSQLS2PARSE_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $@ $(AR) $(AROPTIONS) $@ $(SSQLS2PARSE_OBJECTS) $(RANLIB) $@ ssqlsxlat$(EXEEXT): $(SSQLSXLAT_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) $(CXX) -o $@ $(SSQLSXLAT_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp $(LIBS) $(__ssqlsxlat___mac_setfilecmd) test_array_index$(EXEEXT): $(TEST_ARRAY_INDEX_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_ARRAY_INDEX_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_array_index___mac_setfilecmd) test_cpool$(EXEEXT): $(TEST_CPOOL_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_CPOOL_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_cpool___mac_setfilecmd) test_datetime$(EXEEXT): $(TEST_DATETIME_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_DATETIME_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_datetime___mac_setfilecmd) test_inttypes$(EXEEXT): $(TEST_INTTYPES_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_INTTYPES_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_inttypes___mac_setfilecmd) test_insertpolicy$(EXEEXT): $(TEST_INSERTPOLICY_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_INSERTPOLICY_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_insertpolicy___mac_setfilecmd) test_manip$(EXEEXT): $(TEST_MANIP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_MANIP_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_manip___mac_setfilecmd) test_null_comparison$(EXEEXT): $(TEST_NULL_COMPARISON_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_NULL_COMPARISON_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_null_comparison___mac_setfilecmd) test_query_copy$(EXEEXT): $(TEST_QUERY_COPY_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QUERY_COPY_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_query_copy___mac_setfilecmd) test_qssqls$(EXEEXT): $(TEST_QSSQLS_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QSSQLS_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_qssqls___mac_setfilecmd) test_qstream$(EXEEXT): $(TEST_QSTREAM_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QSTREAM_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_qstream___mac_setfilecmd) test_sqlstream$(EXEEXT): $(TEST_SQLSTREAM_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_SQLSTREAM_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_sqlstream___mac_setfilecmd) test_ssqls2$(EXEEXT): $(TEST_SSQLS2_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) $(CXX) -o $@ $(TEST_SSQLS2_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp $(LIBS) $(__test_ssqls2___mac_setfilecmd) test_string$(EXEEXT): $(TEST_STRING_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_STRING_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_string___mac_setfilecmd) test_tcp$(EXEEXT): $(TEST_TCP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_TCP_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_tcp___mac_setfilecmd) test_uds$(EXEEXT): $(TEST_UDS_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_UDS_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_uds___mac_setfilecmd) test_wnp$(EXEEXT): $(TEST_WNP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_WNP_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(__test_wnp___mac_setfilecmd) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT): $(EXCOMMON_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $@ $(AR) $(AROPTIONS) $@ $(EXCOMMON_OBJECTS) $(RANLIB) $@ cgi_jpeg$(EXEEXT): $(CGI_JPEG_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(CGI_JPEG_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__cgi_jpeg___mac_setfilecmd) cpool$(EXEEXT): $(CPOOL_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(CPOOL_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__cpool___mac_setfilecmd) dbinfo$(EXEEXT): $(DBINFO_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(DBINFO_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__dbinfo___mac_setfilecmd) deadlock$(EXEEXT): $(DEADLOCK_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(DEADLOCK_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__deadlock___mac_setfilecmd) fieldinf$(EXEEXT): $(FIELDINF_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(FIELDINF_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__fieldinf___mac_setfilecmd) for_each$(EXEEXT): $(FOR_EACH_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(FOR_EACH_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__for_each___mac_setfilecmd) load_jpeg$(EXEEXT): $(LOAD_JPEG_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(LOAD_JPEG_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__load_jpeg___mac_setfilecmd) multiquery$(EXEEXT): $(MULTIQUERY_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(MULTIQUERY_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__multiquery___mac_setfilecmd) resetdb$(EXEEXT): $(RESETDB_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(RESETDB_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__resetdb___mac_setfilecmd) simple1$(EXEEXT): $(SIMPLE1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE1_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__simple1___mac_setfilecmd) simple2$(EXEEXT): $(SIMPLE2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE2_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__simple2___mac_setfilecmd) simple3$(EXEEXT): $(SIMPLE3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE3_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__simple3___mac_setfilecmd) ssqls1$(EXEEXT): $(SSQLS1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS1_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls1___mac_setfilecmd) ssqls2$(EXEEXT): $(SSQLS2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS2_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls2___mac_setfilecmd) ssqls3$(EXEEXT): $(SSQLS3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS3_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls3___mac_setfilecmd) ssqls4$(EXEEXT): $(SSQLS4_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS4_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls4___mac_setfilecmd) ssqls5$(EXEEXT): $(SSQLS5_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS5_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls5___mac_setfilecmd) ssqls6$(EXEEXT): $(SSQLS6_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS6_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__ssqls6___mac_setfilecmd) store_if$(EXEEXT): $(STORE_IF_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(STORE_IF_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__store_if___mac_setfilecmd) tquery1$(EXEEXT): $(TQUERY1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY1_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__tquery1___mac_setfilecmd) tquery2$(EXEEXT): $(TQUERY2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY2_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__tquery2___mac_setfilecmd) tquery3$(EXEEXT): $(TQUERY3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY3_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__tquery3___mac_setfilecmd) tquery4$(EXEEXT): $(TQUERY4_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY4_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__tquery4___mac_setfilecmd) transaction$(EXEEXT): $(TRANSACTION_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TRANSACTION_OBJECTS) -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) $(__transaction___mac_setfilecmd) Makefile: configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status lib/ssqls.h: lib/ssqls.pl cd lib ; ./ssqls.pl lib/querydef.h: lib/querydef.pl cd lib ; ./querydef.pl tags: ctags --recurse=yes . ctags: tags doc/html/refman/index.html: lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null doc/html/refman/ssx/index.html: ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/html/userman/index.html: doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf ; cp userman.pdf ../pdf doc: doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html @PACKAGE_NAME@-@PACKAGE_VERSION@: for d in config doc/html/refman doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ done cp -RL *.bat *.in *.txt abi.xml aclocal.m4 Bakefiles.bkgen \ bootstrap ChangeLog cleanmf config.guess config.h config.sub \ configure* dtest exrun install* Makefile.* mysql++.* osver \ Wishlist @PACKAGE_NAME@-@PACKAGE_VERSION@ for d in vc200? ; do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ cp $$d/*.sln $$d/*.vcproj @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ done cp config/*.m4 @PACKAGE_NAME@-@PACKAGE_VERSION@/config cp doc/userman/userman.dbx.in @PACKAGE_NAME@-@PACKAGE_VERSION@/doc/userman cp examples/*.{cpp,h,jpg,txt} @PACKAGE_NAME@-@PACKAGE_VERSION@/examples for d in mfc wforms ; \ do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/examples/vstudio/$$d ; \ cp examples/vstudio/$$d/* @PACKAGE_NAME@-@PACKAGE_VERSION@/examples/vstudio/$$d ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl @PACKAGE_NAME@-@PACKAGE_VERSION@/lib cp test/*.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@/test cp ssx/*.cpp ssx/*.h ssx/*.in @PACKAGE_NAME@-@PACKAGE_VERSION@/ssx cd @PACKAGE_NAME@-@PACKAGE_VERSION@ ; ./bootstrap nodoc nomaint rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/Makefile rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/config.log rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/config.status rm -fr @PACKAGE_NAME@-@PACKAGE_VERSION@/autom4te.cache abicheck: abi-compliance-checker -lib mysqlpp -dump abi.xml abi-compliance-checker -lib mysqlpp \ -old ../3.1.0/abi_dumps/mysqlpp/mysqlpp_3.1.0.abi.tar.gz \ -new ./abi_dumps/mysqlpp/mysqlpp_@PACKAGE_VERSION@.abi.tar.gz mv compat_reports/mysqlpp/*/compat_report.html ~/Desktop find compat_reports -empty -delete dist: doc @PACKAGE_NAME@-@PACKAGE_VERSION@ tar czf @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf @PACKAGE_NAME@-@PACKAGE_VERSION@ rpm-prep: dist cp @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm: rpm-prep rpmbuild -ba mysql++.spec srpm: rpm-prep rpmbuild -bs mysql++.spec ebuild: dist cp @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/@PACKAGE_NAME@-@PACKAGE_VERSION@.ebuild ebuild /usr/portage/dev-db/mysql++/@PACKAGE_NAME@-@PACKAGE_VERSION@.ebuild digest mysqlpp_beemutex.o: $(srcdir)/lib/beemutex.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/beemutex.cpp mysqlpp_cmdline.o: $(srcdir)/lib/cmdline.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/cmdline.cpp mysqlpp_connection.o: $(srcdir)/lib/connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/connection.cpp mysqlpp_cpool.o: $(srcdir)/lib/cpool.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/cpool.cpp mysqlpp_datetime.o: $(srcdir)/lib/datetime.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/datetime.cpp mysqlpp_dbdriver.o: $(srcdir)/lib/dbdriver.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/dbdriver.cpp mysqlpp_field_names.o: $(srcdir)/lib/field_names.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/field_names.cpp mysqlpp_field_types.o: $(srcdir)/lib/field_types.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/field_types.cpp mysqlpp_manip.o: $(srcdir)/lib/manip.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/manip.cpp mysqlpp_myset.o: $(srcdir)/lib/myset.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/myset.cpp mysqlpp_mysql++.o: $(srcdir)/lib/mysql++.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/mysql++.cpp mysqlpp_mystring.o: $(srcdir)/lib/mystring.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/mystring.cpp mysqlpp_null.o: $(srcdir)/lib/null.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/null.cpp mysqlpp_options.o: $(srcdir)/lib/options.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/options.cpp mysqlpp_qparms.o: $(srcdir)/lib/qparms.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/qparms.cpp mysqlpp_query.o: $(srcdir)/lib/query.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/query.cpp mysqlpp_result.o: $(srcdir)/lib/result.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/result.cpp mysqlpp_row.o: $(srcdir)/lib/row.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/row.cpp mysqlpp_scopedconnection.o: $(srcdir)/lib/scopedconnection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/scopedconnection.cpp mysqlpp_sql_buffer.o: $(srcdir)/lib/sql_buffer.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/sql_buffer.cpp mysqlpp_sqlstream.o: $(srcdir)/lib/sqlstream.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/sqlstream.cpp mysqlpp_ssqls2.o: $(srcdir)/lib/ssqls2.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/ssqls2.cpp mysqlpp_stadapter.o: $(srcdir)/lib/stadapter.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/stadapter.cpp mysqlpp_tcp_connection.o: $(srcdir)/lib/tcp_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/tcp_connection.cpp mysqlpp_transaction.o: $(srcdir)/lib/transaction.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/transaction.cpp mysqlpp_type_info.o: $(srcdir)/lib/type_info.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/type_info.cpp mysqlpp_uds_connection.o: $(srcdir)/lib/uds_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/uds_connection.cpp mysqlpp_utility.o: $(srcdir)/lib/utility.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/utility.cpp mysqlpp_vallist.o: $(srcdir)/lib/vallist.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/vallist.cpp mysqlpp_wnp_connection.o: $(srcdir)/lib/wnp_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/wnp_connection.cpp ssqls2parse_parsev2.o: $(srcdir)/ssx/parsev2.cpp $(CXXC) -c -o $@ $(SSQLS2PARSE_CXXFLAGS) $(srcdir)/ssx/parsev2.cpp ssqlsxlat_genv2.o: $(srcdir)/ssx/genv2.cpp $(CXXC) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(srcdir)/ssx/genv2.cpp ssqlsxlat_main.o: $(srcdir)/ssx/main.cpp $(CXXC) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(srcdir)/ssx/main.cpp test_array_index_array_index.o: $(srcdir)/test/array_index.cpp $(CXXC) -c -o $@ $(TEST_ARRAY_INDEX_CXXFLAGS) $(srcdir)/test/array_index.cpp test_cpool_cpool.o: $(srcdir)/test/cpool.cpp $(CXXC) -c -o $@ $(TEST_CPOOL_CXXFLAGS) $(srcdir)/test/cpool.cpp test_datetime_datetime.o: $(srcdir)/test/datetime.cpp $(CXXC) -c -o $@ $(TEST_DATETIME_CXXFLAGS) $(srcdir)/test/datetime.cpp test_inttypes_inttypes.o: $(srcdir)/test/inttypes.cpp $(CXXC) -c -o $@ $(TEST_INTTYPES_CXXFLAGS) $(srcdir)/test/inttypes.cpp test_insertpolicy_insertpolicy.o: $(srcdir)/test/insertpolicy.cpp $(CXXC) -c -o $@ $(TEST_INSERTPOLICY_CXXFLAGS) $(srcdir)/test/insertpolicy.cpp test_manip_manip.o: $(srcdir)/test/manip.cpp $(CXXC) -c -o $@ $(TEST_MANIP_CXXFLAGS) $(srcdir)/test/manip.cpp test_null_comparison_null_comparison.o: $(srcdir)/test/null_comparison.cpp $(CXXC) -c -o $@ $(TEST_NULL_COMPARISON_CXXFLAGS) $(srcdir)/test/null_comparison.cpp test_query_copy_query_copy.o: $(srcdir)/test/query_copy.cpp $(CXXC) -c -o $@ $(TEST_QUERY_COPY_CXXFLAGS) $(srcdir)/test/query_copy.cpp test_qssqls_qssqls.o: $(srcdir)/test/qssqls.cpp $(CXXC) -c -o $@ $(TEST_QSSQLS_CXXFLAGS) $(srcdir)/test/qssqls.cpp test_qstream_qstream.o: $(srcdir)/test/qstream.cpp $(CXXC) -c -o $@ $(TEST_QSTREAM_CXXFLAGS) $(srcdir)/test/qstream.cpp test_sqlstream_sqlstream.o: $(srcdir)/test/sqlstream.cpp $(CXXC) -c -o $@ $(TEST_SQLSTREAM_CXXFLAGS) $(srcdir)/test/sqlstream.cpp test_ssqls2_ssqls2.o: $(srcdir)/test/ssqls2.cpp $(CXXC) -c -o $@ $(TEST_SSQLS2_CXXFLAGS) $(srcdir)/test/ssqls2.cpp test_string_string.o: $(srcdir)/test/string.cpp $(CXXC) -c -o $@ $(TEST_STRING_CXXFLAGS) $(srcdir)/test/string.cpp test_tcp_tcp.o: $(srcdir)/test/tcp.cpp $(CXXC) -c -o $@ $(TEST_TCP_CXXFLAGS) $(srcdir)/test/tcp.cpp test_uds_uds.o: $(srcdir)/test/uds.cpp $(CXXC) -c -o $@ $(TEST_UDS_CXXFLAGS) $(srcdir)/test/uds.cpp test_wnp_wnp.o: $(srcdir)/test/wnp.cpp $(CXXC) -c -o $@ $(TEST_WNP_CXXFLAGS) $(srcdir)/test/wnp.cpp excommon_printdata.o: $(srcdir)/examples/printdata.cpp $(CXXC) -c -o $@ $(EXCOMMON_CXXFLAGS) $(srcdir)/examples/printdata.cpp cgi_jpeg_cgi_jpeg.o: $(srcdir)/examples/cgi_jpeg.cpp $(CXXC) -c -o $@ $(CGI_JPEG_CXXFLAGS) $(srcdir)/examples/cgi_jpeg.cpp cpool_cpool.o: $(srcdir)/examples/cpool.cpp $(CXXC) -c -o $@ $(CPOOL_CXXFLAGS) $(srcdir)/examples/cpool.cpp dbinfo_dbinfo.o: $(srcdir)/examples/dbinfo.cpp $(CXXC) -c -o $@ $(DBINFO_CXXFLAGS) $(srcdir)/examples/dbinfo.cpp deadlock_deadlock.o: $(srcdir)/examples/deadlock.cpp $(CXXC) -c -o $@ $(DEADLOCK_CXXFLAGS) $(srcdir)/examples/deadlock.cpp fieldinf_fieldinf.o: $(srcdir)/examples/fieldinf.cpp $(CXXC) -c -o $@ $(FIELDINF_CXXFLAGS) $(srcdir)/examples/fieldinf.cpp for_each_for_each.o: $(srcdir)/examples/for_each.cpp $(CXXC) -c -o $@ $(FOR_EACH_CXXFLAGS) $(srcdir)/examples/for_each.cpp load_jpeg_load_jpeg.o: $(srcdir)/examples/load_jpeg.cpp $(CXXC) -c -o $@ $(LOAD_JPEG_CXXFLAGS) $(srcdir)/examples/load_jpeg.cpp multiquery_multiquery.o: $(srcdir)/examples/multiquery.cpp $(CXXC) -c -o $@ $(MULTIQUERY_CXXFLAGS) $(srcdir)/examples/multiquery.cpp resetdb_resetdb.o: $(srcdir)/examples/resetdb.cpp $(CXXC) -c -o $@ $(RESETDB_CXXFLAGS) $(srcdir)/examples/resetdb.cpp simple1_simple1.o: $(srcdir)/examples/simple1.cpp $(CXXC) -c -o $@ $(SIMPLE1_CXXFLAGS) $(srcdir)/examples/simple1.cpp simple2_simple2.o: $(srcdir)/examples/simple2.cpp $(CXXC) -c -o $@ $(SIMPLE2_CXXFLAGS) $(srcdir)/examples/simple2.cpp simple3_simple3.o: $(srcdir)/examples/simple3.cpp $(CXXC) -c -o $@ $(SIMPLE3_CXXFLAGS) $(srcdir)/examples/simple3.cpp ssqls1_ssqls1.o: $(srcdir)/examples/ssqls1.cpp $(CXXC) -c -o $@ $(SSQLS1_CXXFLAGS) $(srcdir)/examples/ssqls1.cpp ssqls2_ssqls2.o: $(srcdir)/examples/ssqls2.cpp $(CXXC) -c -o $@ $(SSQLS2_CXXFLAGS) $(srcdir)/examples/ssqls2.cpp ssqls3_ssqls3.o: $(srcdir)/examples/ssqls3.cpp $(CXXC) -c -o $@ $(SSQLS3_CXXFLAGS) $(srcdir)/examples/ssqls3.cpp ssqls4_ssqls4.o: $(srcdir)/examples/ssqls4.cpp $(CXXC) -c -o $@ $(SSQLS4_CXXFLAGS) $(srcdir)/examples/ssqls4.cpp ssqls5_ssqls5.o: $(srcdir)/examples/ssqls5.cpp $(CXXC) -c -o $@ $(SSQLS5_CXXFLAGS) $(srcdir)/examples/ssqls5.cpp ssqls6_ssqls6.o: $(srcdir)/examples/ssqls6.cpp $(CXXC) -c -o $@ $(SSQLS6_CXXFLAGS) $(srcdir)/examples/ssqls6.cpp store_if_store_if.o: $(srcdir)/examples/store_if.cpp $(CXXC) -c -o $@ $(STORE_IF_CXXFLAGS) $(srcdir)/examples/store_if.cpp tquery1_tquery1.o: $(srcdir)/examples/tquery1.cpp $(CXXC) -c -o $@ $(TQUERY1_CXXFLAGS) $(srcdir)/examples/tquery1.cpp tquery2_tquery2.o: $(srcdir)/examples/tquery2.cpp $(CXXC) -c -o $@ $(TQUERY2_CXXFLAGS) $(srcdir)/examples/tquery2.cpp tquery3_tquery3.o: $(srcdir)/examples/tquery3.cpp $(CXXC) -c -o $@ $(TQUERY3_CXXFLAGS) $(srcdir)/examples/tquery3.cpp tquery4_tquery4.o: $(srcdir)/examples/tquery4.cpp $(CXXC) -c -o $@ $(TQUERY4_CXXFLAGS) $(srcdir)/examples/tquery4.cpp transaction_transaction.o: $(srcdir)/examples/transaction.cpp $(CXXC) -c -o $@ $(TRANSACTION_CXXFLAGS) $(srcdir)/examples/transaction.cpp # Include dependency info, if present: @IF_GNU_MAKE@-include ./.deps/*.d .PHONY: all install uninstall clean distclean install_mysqlpp uninstall_mysqlpp \ tags mysql++-3.2.2+pristine.orig/README-Solaris.txt0000644000372000001440000000334312502417162020306 0ustar robertousersFor the most part, Solaris is just another Unix variant as far as MySQL++ is concerned. See README-Unix.txt for most of what you need to know to build and use MySQL++. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so it needs the C API development files to build against. With the current version of Solaris, at least, a MySQL package is included on the operating system disk, but not installed by default. To install it, oull down the GNOME System menu, go to Administration, and then to Package Manager. Search for "mysql5" and install those packages. While there, you may also need to install the gcc packages, if you haven't done that already. I'm not sure, but you may need to install Perl as well. Don't search for just "mysql" in Package Manager, as that will also bring up legacy MySQL 4.0 packages. MySQL++ may build against 4.0 still; it's been a while since we've tested it. What is certain is that the examples won't run against 4.0 without modification, as they assume the availability of UTF-8 character set support, which was added in 4.1. It's no doubt possible to use the official binaries from mysql.com instead, or to build from source. We don't do that ourselves, though, and don't have reports from those who have, so we can't advise on how to do it. C API Development File Directories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sun's MySQL package installs the development files in relatively uncommon locations. The libraries are in /usr/mysql/lib/mysql, and the headers are in /usr/mysql/include/mysql. Way to be redundant, guys. :) mysql++-3.2.2+pristine.orig/mysql++.spec0000644000372000001440000001246712502417174017357 0ustar robertousersSummary: C++ wrapper for the MySQL C API Name: mysql++ Version: 3.2.2 Release: 1%{?dist} License: LGPL Group: Development/Libraries URL: http://tangentsoft.net/mysql++/ Source0: http://tangentsoft.net/mysql++/releases/mysql++-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: mysql-devel %description MySQL++ makes working with MySQL server queries as easy as working with STL containers. This package contains only the libraries needed to run MySQL++-based programs. If you are building your own MySQL++-based programs, you also need to install the -devel package. %package devel Summary: MySQL++ developer files (headers, examples, etc.) Group: Development/Libraries Requires: mysql++ = %{version}-%{release}, mysql-devel %description devel These are the files needed to compile MySQL++ based programs, plus some sample code to get you started. If you aren't building your own programs, you probably don't need to install this package. %package manuals Summary: MySQL++ user and reference manuals Group: Development/Libraries %description manuals This is the MySQL++ documentation. It's a separate RPM just because it's so large, and it doesn't change with every release. %prep %setup -q # Fakery for nodoc case if [ ! -e doc/README-devel-RPM.txt ] then touch doc/README-devel-RPM.txt touch doc/README-doc-RPM.txt touch doc/README-manuals-RPM.txt %{__mkdir_p} doc/html doc/pdf fi %build %configure --disable-dependency-tracking %{__make} %{?_smp_mflags} %install rm -rf %{buildroot} doc/examples %{__mkdir_p} %{buildroot}{%{_libdir},%{_includedir}} %{__make} DESTDIR=%{buildroot} install # Copy example programs to doc directory %{__mkdir_p} doc/examples %{__install} -m644 examples/*.{cpp,h} doc/examples/ %{__install} -m644 config.h doc/examples/ sed -i -e s@../config.h@config.h@ doc/examples/threads.h # Fix up simple example Makefile to allow it to build on the install # system, as opposed to the system where the Makefile was created. %{__sed} -e 's@./examples/@@' \ -e 's@^CPPFLAGS.*$@CPPFLAGS := $(shell mysql_config --cflags)@' \ -e 's@^LDFLAGS.*$@LDFLAGS := $(shell mysql_config --libs)@' \ -e 's@ -Ilib@@' \ -e '/^all:/s/test_[a-z,_]* //g' \ Makefile.simple > doc/examples/Makefile %clean rm -rf %{buildroot} doc/examples %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc ChangeLog COPYING.txt CREDITS.txt LICENSE.txt README.txt %{_libdir}/libmysqlpp.so.* %files devel %defattr(-,root,root,-) %doc doc/examples doc/README-devel-RPM.txt README-examples.txt Wishlist %{_includedir}/mysql++ %{_libdir}/libmysqlpp.so %files manuals %defattr(-,root,root,-) %doc doc/html doc/pdf doc/README-manuals-RPM.txt %changelog * Mon Jul 2 2007 Warren Young 2.3.0-1 - Reflected changes to doc dir layout in manuals sub-package * Mon Mar 19 2007 Warren Young 2.2.1-4 - Reorganized locations of generated documentation * Mon Mar 19 2007 Warren Young 2.2.1-3 - Merge of Remi Collet's spec file with official one * Sun Mar 18 2007 Remi Collet 2.2.1-2 - find perm on common.h - soname mysql++-2.2.1-bkl.patch * Wed Feb 28 2007 Remi Collet 2.2.1-1 - Initial spec for Extras * Wed Feb 28 2007 Remi Collet 2.2.1-1.fc{3-6}.remi - update to version 2.2.1 * Thu Jan 25 2007 Remi Collet 2.2.0-1.fc{3-6}.remi - update to version 2.2.0 * Mon Nov 13 2006 Remi Collet 2.1.1.fc6.remi - FC6.x86_64 build - dynamic (sed) patch for Makefile (use mysql_config) * Thu Nov 02 2006 Remi Collet 2.1.1.fc6.remi - FC6 build * Sat Apr 8 2006 Remi Collet 2.1.1.fc{3,4,5}.remi - update to version 2.1.1 * Sat Nov 26 2005 Remi Collet 2.0.7-1.fc3.remi - 2.0.7-1.fc4.remi - update to version 2.0.4 - build with mysql-5.0.15 (requires libmysqlclient.so.15) * Sun Sep 4 2005 Remi Collet 2.0.4-1.FC4.remi - version 2.0.4 * Sat Aug 20 2005 Remi Collet 2.0.2-1.FC4.remi - built for FC4 - spec cleanning... * Thu Jun 16 2005 Remi Collet 1.7.40-1.FC3.remi - built for FC3 and MySQL 4.1.11 - examples in /usr/share/doc/mysql++-%%{version}/examples * Sat Apr 30 2005 Warren Young 1.7.34-1 - Split manuals out into their own sub-package. * Thu Mar 10 2005 Warren Young 1.7.32-1 - Disabled building of examples, to speed RPM build. * Fri Nov 05 2004 Warren Young 1.7.21-1 - Split out -devel subpackage, which now includes the examples * Wed Aug 18 2004 Warren Young 1.7.11-1 - Removed examples from documentation. - Limited documentation to just the generated files, not the sources. * Wed Apr 16 2003 Tuan Hoang 1.7.9-4 - Added gcc 3.2.2 patch. - Packaged using Red Hat Linux 8.0 and 9. * Thu Nov 14 2002 Tuan Hoang 1.7.9-3 - Changed the version passed to libtool. * Mon Oct 28 2002 Tuan Hoang 1.7.9-2 - Updated the version numbering of the library to be 1.7.9. - Packaged using Red Hat Linux 8.0. * Thu Oct 17 2002 Philipp Berndt - packaged mysql++-3.2.2+pristine.orig/README-Unix.txt0000644000372000001440000001005312502417162017611 0ustar robertousersPlatform Variations ~~~~~~~~~~~~~~~~~~~ This file only covers details common to all Unix variants supported by MySQL++. For platform-specific details, see the file appropriate to your OS: README-Cygwin.txt README-Linux.txt README-Mac-OS-X.txt README-Solaris.txt There are no special instructions for any other Unix flavors. Building the Library and Example Programs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ uses GNU autoconf, so you can build it with the standard commands: $ ./configure $ make $ su # make install Configure Options ~~~~~~~~~~~~~~~~~ The configure script takes several interesting options. Say: $ ./configure --help to get a list. Some of the more interesting flags are: --prefix: If you wish to install mysql++ in a root directory other than /usr/local, run configure with --prefix=/some/dir/name --with-mysql*: If you installed MySQL in an atypical location, the configure script will not be able to find the library and header files without help. The simplest way to clue configure into where MySQL is installed is with the --with-mysql option. Try something like "--with-mysql=/usr/local/mysql", for instance. The configure script will then try to guess which subdirectories under the given directory contain the library and include files. If that doesn't work, it's because the library and header files aren't in typical locations under the directory you gave for configure to find them. So, you need to specify them separately with --with-mysql-include and --with-mysql-lib instead. As with --with-mysql, configure can often guess which subdirectory under the given directory contains the needed files, so you don't necessarily have to give the full path to these files. --with-field-limit: This lets you increase the maximum field limit for template queries and SSQLSes. By default, both are limited to 25 fields. See chapter 8.2 in the user manual for details: http://tangentsoft.net/mysql++/doc/html/userman/configuration.html --enable-thread-check: Builds MySQL++ with threading support, if possible. This option simply turns on two tests: first, that your system uses a compatible threading library; and second, that the thread-safe version of the MySQL C API library (libmysqlclient_r) is installed and working. If both of these are true, you get a thread-aware version of MySQL++. "Thread-aware" means that the library does make an effort to prevent problems, but we don't guarantee that all possible uses of MySQL++ are thread-safe. Note that this is a suggestion, not a command. If we can't figure out the system's threading model or can't find the thread-aware build of the C API library, configure won't fail. It just reverts to the standard single-thread build. See the chapter on threading in the user manual for more details and advice on creating thread-safe programs with MySQL++. Building a Static Library ~~~~~~~~~~~~~~~~~~~~~~~~~ As shipped, MySQL++ only builds a shared library. It's possible to change things so you get a static library instead. Before we get to "how," beware that liking statically to MySQL++ has legal consequences that may matter to you, due to the library's license, the GNU LGPL. Familiarize yourself with the license, and consider getting legal counsel before proceeding. Also, see the MySQL++ FAQ: http://tangentsoft.net/mysql++/#faq There is more on this topic there. The necessary changes are all in mysql++.bkl: - Change the tag to . (Remember the closing tag!) - Remove the tag - Remove the tag Then, re-bootstrap the library. See HACKERS.txt if you need further instruction on doing that. mysql++-3.2.2+pristine.orig/bootstrap.bat0000644000372000001440000000360612502417162017705 0ustar robertousers@echo off if not exist vc2003 mkdir vc2003 if not exist vc2005 mkdir vc2005 if not exist vc2008 mkdir vc2008 bakefile_gen %* if errorlevel 1 exit if not exist vc2003\mysql++.sln goto no_bakefile if not exist vc2005\mysql++.sln goto no_bakefile if not exist vc2008\mysql++.sln goto no_bakefile cd lib perl querydef.pl if errorlevel 1 exit if not exist querydef.h goto no_perl perl ssqls.pl if errorlevel 1 exit if not exist ssqls.h goto no_perl if not exist mysql++.h goto no_mysqlpp_h cd .. exit :no_bakefile echo. echo Bakefile doesn't seem to be installed on this system. Download it echo from http://bakefile.org/ You need version 0.2.3 or newer. echo. exit :no_perl echo. echo You need a Perl interpreter installed on your system, somewhere in echo the PATH. Any recent version or flavor should work; we don't use echo any special extensions. The easiest to install on Windows would be echo ActivePerl, from http://activestate.com/Products/activeperl/ echo If you're familiar with Unix, you might like Cygwin better instead: echo http://cygwin.com/setup.exe echo. cd .. exit :no_mysqlpp_h echo. echo WARNING: Can't make lib/mysql++.h echo. echo On Unixy systems, autoconf creates lib/mysql++.h from lib/mysql++.h.in echo but there is no easy way to do this on Windows. You can do it manually: echo just copy the file to the new name, and edit the MYSQLPP_HEADER_VERSION echo definition to put the proper version number parts into the macro. It echo needs to look something like this: echo. echo #define MYSQLPP_HEADER_VERSION MYSQLPP_VERSION(3, 0, 0) echo. echo It's important that the three numbers match the actual library version echo number, or else programs that check this (like resetdb) will fail. echo. echo Alternately, if you've also got MySQL++ installed on some Unixy type echo system, you can let its bootstrap procedure create mysql++.h and then echo copy it to the Windows machine. echo. cd .. mysql++-3.2.2+pristine.orig/libtool0000755000372000001440000110742112502417174016576 0ustar robertousers#! /bin/sh # libtool - Provide generalized library-building support services. # Generated automatically by config.status () # Libtool was configured on host ardahan.tangentsoft.private: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=2.4.2 macro_revision=1.3337 # Whether or not to build shared libraries. build_libtool_libs=yes # Whether or not to build static libraries. build_old_libs=yes # What type of objects to build. pic_mode=default # Whether or not to optimize for fast installation. fast_install=yes # Shell to use when invoking shell scripts. SHELL="/bin/sh" # An echo program that protects backslashes. ECHO="printf %s\\n" # The PATH separator for the build system. PATH_SEPARATOR=":" # The host system. host_alias= host=x86_64-unknown-linux-gnu host_os=linux-gnu # The build system. build_alias= build=x86_64-unknown-linux-gnu build_os=linux-gnu # A sed program that does not truncate output. SED="/usr/bin/sed" # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # A grep program that handles long lines. GREP="/usr/bin/grep" # An ERE matcher. EGREP="/usr/bin/grep -E" # A literal string matcher. FGREP="/usr/bin/grep -F" # A BSD- or MS-compatible name lister. NM="/usr/bin/nm -B" # Whether we need soft or hard links. LN_S="ln -s" # What is the maximum length of a command? max_cmd_len=1572864 # Object file suffix (normally "o"). objext=o # Executable file suffix (normally ""). exeext= # whether the shell understands "unset". lt_unset=unset # turn spaces into newlines. SP2NL="tr \\040 \\012" # turn newlines into spaces. NL2SP="tr \\015\\012 \\040\\040" # convert $build file names to $host format. to_host_file_cmd=func_convert_file_noop # convert $build files to toolchain format. to_tool_file_cmd=func_convert_file_noop # An object symbol dumper. OBJDUMP="objdump" # Method to check whether dependent libraries are shared objects. deplibs_check_method="pass_all" # Command to use when deplibs_check_method = "file_magic". file_magic_cmd="\$MAGIC_CMD" # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob="" # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob="no" # DLL creation program. DLLTOOL="false" # Command to associate shared and link libraries. sharedlib_from_linklib_cmd="printf %s\\n" # The archiver. AR="ar" # Flags to create an archive. AR_FLAGS="cru" # How to feed a file listing to the archiver. archiver_list_spec="@" # A symbol stripping program. STRIP="strip" # Commands used to install an old-style archive. RANLIB="ranlib" old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib" old_postuninstall_cmds="" # Whether to use a lock for old archive extraction. lock_old_archive_extraction=no # A C compiler. LTCC="gcc" # LTCC compiler flags. LTCFLAGS="-g -O2" # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p' | sed '/ __gnu_lto/d'" # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'" # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p'" # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"lib\\2\", (void *) \\&\\2},/p'" # Specify filename containing input files for $NM. nm_file_list_spec="@" # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot= # The name of the directory that contains temporary libtool files. objdir=.libs # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=file # Must we lock files when doing compilation? need_locks="no" # Manifest tool. MANIFEST_TOOL=":" # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL="" # Tool to change global to local symbols on Mac OS X. NMEDIT="" # Tool to manipulate fat objects and archives on Mac OS X. LIPO="" # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL="" # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64="" # Old archive suffix (normally "a"). libext=a # Shared library suffix (normally ".so"). shrext_cmds=".so" # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds="" # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" # Do we need the "lib" prefix for modules? need_lib_prefix=no # Do we need a version for libraries? need_version=no # Library versioning type. version_type=linux # Shared library runtime path variable. runpath_var=LD_RUN_PATH # Shared library path variable. shlibpath_var=LD_LIBRARY_PATH # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=no # Format of library name prefix. libname_spec="lib\$name" # 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="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" # The coded name of the library, if different from the real name. soname_spec="\${libname}\${release}\${shared_ext}\$major" # Permission mode override for installation of shared libraries. install_override_mode="" # Command to use after installation of a shared archive. postinstall_cmds="" # Command to use after uninstallation of a shared archive. postuninstall_cmds="" # Commands used to finish a libtool library installation in a directory. finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval="" # Whether we should hardcode library paths into libraries. hardcode_into_libs=yes # Compile-time system search path for libraries. sys_lib_search_path_spec="/usr/lib/gcc/x86_64-redhat-linux/4.8.2 /usr/lib64 /lib64 " # Run-time system search path for libraries. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib /usr/lib64/dyninst /usr/lib64/mysql " # Whether dlopen is supported. dlopen_support=unknown # Whether dlopen of programs is supported. dlopen_self=unknown # Whether dlopen of statically linked programs is supported. dlopen_self_static=unknown # Commands to strip libraries. old_striplib="strip --strip-debug" striplib="strip --strip-unneeded" # The linker used to build libraries. LD="/usr/bin/ld -m elf_x86_64" # How to create reloadable object files. reload_flag=" -r" reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" # Commands used to build an old-style archive. old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" # A language specific compiler. CC="gcc" # Is the compiler the GNU compiler? with_gcc=yes # Compiler flag to turn off builtin functions. no_builtin_flag=" -fno-builtin" # Additional compiler flags for building library objects. pic_flag=" -fPIC -DPIC" # How to pass a linker flag through the compiler. wl="-Wl," # Compiler flag to prevent dynamic linking. link_static_flag="" # Does compiler simultaneously support -c and -o options? compiler_c_o="yes" # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=no # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=no # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="\${wl}--export-dynamic" # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" # Whether the compiler copes with passing no objects directly. compiler_needs_object="no" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="" # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds="" # Commands used to build a shared archive. archive_cmds="\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" 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 \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib" # Commands used to build a loadable module if different from building # a shared archive. module_cmds="" module_expsym_cmds="" # Whether we are building with GNU ld or not. with_gnu_ld="yes" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="" # Flag that enforces no undefined symbols. no_undefined_flag="" # Flag to hardcode $libdir into a binary during linking. # This must work even if $libdir does not exist hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir" # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator="" # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=no # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting ${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=no # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=no # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=unsupported # 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=no # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=no # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=unknown # Set to "yes" if exported symbols are required. always_export_symbols=no # The commands to list exported symbols. export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" # Symbols that should not be listed in the preloaded symbols. exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" # Symbols that must always be exported. include_expsyms="" # Commands necessary for linking programs (against libraries) with templates. prelink_cmds="" # Commands necessary for finishing linking programs. postlink_cmds="" # Specify filename containing input files. file_list_spec="" # How to hardcode a shared library path into an executable. hardcode_action=immediate # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs="" # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects="" postdep_objects="" predeps="" postdeps="" # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path="" # ### END LIBTOOL CONFIG # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # Extended-shell func_dirname implementation # func_basename file func_basename () { func_basename_result="${1##*/}" } # Extended-shell func_basename implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # Extended-shell func_dirname_and_basename implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # Extended-shell func_stripname implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} } # Extended-shell func_split_short_opt implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=} } # Extended-shell func_split_long_opt implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}+=\${2}" } # Extended-shell func_append implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}+=\\ \$func_quote_for_eval_result" } # Extended-shell func_append_quoted implementation # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # Extended-shell func_arith implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } # Extended-shell func_len implementation # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # Extended-shell func_lo2o implementation # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # Extended-shell func_xform implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false preserve_args+=" $opt" ;; --no-warning|--no-warn) opt_warning=false preserve_args+=" $opt" ;; --no-verbose) opt_verbose=false preserve_args+=" $opt" ;; --silent|--quiet) opt_silent=: preserve_args+=" $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: preserve_args+=" $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" preserve_args+=" $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || preserve_args+=" --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_to_host_path_result+="$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) pie_flag+=" $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) later+=" $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. base_compile+=" $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist+=" $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist+=" $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command+=" -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command+=" -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command+="$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir+="/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then libdirs+=" $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then libs+=" $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds+=" $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog+="$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then files+=" $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog+=" $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi install_shared_prog+=" $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" install_shared_prog+=" -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs+=" $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs+=" $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs+=" $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir+="$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs+=" $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags+=" $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result libtool_args+=" $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command+=" @OUTPUT@" finalize_command+=" @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command+=" @SYMFILE@" 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+=" $arg" else dlprefiles+=" $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs+=" $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs+=" $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 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+=" $pic_object" prev= fi # A PIC object. 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_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects+=" $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result libobjs+=" $pic_object" non_pic_objects+=" $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath+=" $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath+=" $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs+=" $arg" prev= continue ;; xcclinker) linker_flags+=" $qarg" compiler_flags+=" $qarg" prev= compile_command+=" $qarg" finalize_command+=" $qarg" continue ;; xcompiler) compiler_flags+=" $qarg" prev= compile_command+=" $qarg" finalize_command+=" $qarg" continue ;; xlinker) linker_flags+=" $qarg" compiler_flags+=" $wl$qarg" prev= compile_command+=" $wl$qarg" finalize_command+=" $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. compile_command+=" $link_static_flag" finalize_command+=" $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command+=" $arg" finalize_command+=" $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) deplibs+=" $arg" ;; *) deplibs+=" -L$dir" ;; esac lib_search_path+=" $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath+=":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath+=":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs+=" System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs+=" $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) compiler_flags+=" $arg" compile_command+=" $arg" finalize_command+=" $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) compiler_flags+=" $arg" compile_command+=" $arg" finalize_command+=" $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags+=" $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath+=" $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg+=" $func_quote_for_eval_result" compiler_flags+=" $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg+=" $wl$func_quote_for_eval_result" compiler_flags+=" $wl$func_quote_for_eval_result" linker_flags+=" $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" compile_command+=" $arg" finalize_command+=" $arg" compiler_flags+=" $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs+=" $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 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+=" $pic_object" prev= fi # A PIC object. 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_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects+=" $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result libobjs+=" $pic_object" non_pic_objects+=" $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs+=" $arg" old_deplibs+=" $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles+=" $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles+=" $func_resolve_sysroot_result" prev= else deplibs+=" $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command+=" $arg" finalize_command+=" $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command+=" $arg" finalize_command+=" $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) specialdeplibs+=" $deplib" ;; esac fi libs+=" $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs+=" $pre_post_deps" ;; esac pre_post_deps+=" $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs+=" $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags+=" $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags+=" $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags+=" $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" newlib_search_path+=" $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" newlib_search_path+=" $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath+=" $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles+=" $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles+=" $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags+=" $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles+=" $dlopen" test -n "$dlpreopen" && dlprefiles+=" $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience+=" $ladir/$objdir/$old_library" old_convenience+=" $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs+=" $deplib" ;; esac fi tmp_libs+=" $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles+=" $lib $dependency_libs" else newdlfiles+=" $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path+=" $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path+=" $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" newdlprefiles+=" $dir/$linklib" else newdlprefiles+=" $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs+=" $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles+=" $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs+=" $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles+=" $dir/$dlname" else newdlprefiles+=" $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path+=" $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" newlib_search_path+=" $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs+=" $deplib" ;; esac fi tmp_libs+=" $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath+="$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath+=" $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath+=" $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs+=" $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs+=" $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath+=" $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath+=" $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir+=" -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) 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+="$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) 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+=" -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath+=" $temp_xrpath";; esac;; *) temp_deplibs+=" $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path+=" $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) specialdeplibs+=" $func_resolve_sysroot_result" ;; esac fi tmp_libs+=" $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags+=" ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags+=" -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) 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+=" $deplib" ;; esac ;; *) 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+=" $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs+="$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs+=" $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring+=":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs+=" $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist+=" $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs+=" $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" temp_xrpath+=" -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) 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+=" $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+=" $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs+=" System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs+=" -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs+=" $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs+=" $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) 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+=" $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs+=" $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs+=" -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs+=" $deplib" ;; esac ;; *) new_libs+=" $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs+="$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath+=" $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath+=" $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath+="$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames+=" $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles+=" $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result delfiles+=" $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles+=" $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs+=" $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated+=" $gentop" func_extract_archives $gentop $convenience libobjs+=" $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags+=" $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output delfiles+=" $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done delfiles+=" $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then objlist+=" $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles+=" $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles+=" $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated+=" $gentop" func_extract_archives $gentop $dlprefiles libobjs+=" $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" generated+=" $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command+=" ${wl}-bind_at_load" finalize_command+=" ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs+=" -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs+=" $deplib" ;; esac ;; *) new_libs+=" $deplib" ;; esac done compile_deplibs="$new_libs" compile_command+=" $compile_deplibs" 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+=" $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_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath+=" $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath+=" $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath+=":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath+=":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs+="$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath+=" $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath+=" $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do 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+="$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs+=" $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated+=" $gentop" func_extract_archives $gentop $addlibs oldobjs+=" $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated+=" $gentop" func_extract_archives $gentop $dlprefiles oldobjs+=" $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated+=" $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs+=" $gentop/$newobj" ;; *) oldobjs+=" $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result objlist+=" $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs+=" ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" newdependency_libs+=" -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" newdependency_libs+=" -R$func_replace_sysroot_result" ;; *) newdependency_libs+=" $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles+=" ${lt_sysroot:+=}$libdir/$name" ;; *) newdlfiles+=" $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles+=" ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles+=" $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles+=" $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM+=" $arg"; rmforce=yes ;; -*) RM+=" $arg" ;; *) files+=" $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) rmdirs+=" $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles+=" $odir/$n" done test -n "$old_library" && rmfiles+=" $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && rmfiles+=" $odir/$dlname" ;; esac test -n "$libdir" && rmfiles+=" $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then 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+=" $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles+=" $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles+=" $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles+=" $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles+=" $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles+=" $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD="/usr/bin/ld -m elf_x86_64" # How to create reloadable object files. reload_flag=" -r" reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" # Commands used to build an old-style archive. old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" # A language specific compiler. CC="g++" # Is the compiler the GNU compiler? with_gcc=yes # Compiler flag to turn off builtin functions. no_builtin_flag=" -fno-builtin" # Additional compiler flags for building library objects. pic_flag=" -fPIC -DPIC" # How to pass a linker flag through the compiler. wl="-Wl," # Compiler flag to prevent dynamic linking. link_static_flag="" # Does compiler simultaneously support -c and -o options? compiler_c_o="yes" # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=no # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=no # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="\${wl}--export-dynamic" # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" # Whether the compiler copes with passing no objects directly. compiler_needs_object="no" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="" # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds="" # Commands used to build a shared archive. archive_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" archive_expsym_cmds="\$CC \$pic_flag -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib" # Commands used to build a loadable module if different from building # a shared archive. module_cmds="" module_expsym_cmds="" # Whether we are building with GNU ld or not. with_gnu_ld="yes" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="" # Flag that enforces no undefined symbols. no_undefined_flag="" # Flag to hardcode $libdir into a binary during linking. # This must work even if $libdir does not exist hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir" # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator="" # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=no # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting ${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=no # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=no # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=unsupported # 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=no # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=no # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=unknown # Set to "yes" if exported symbols are required. always_export_symbols=no # The commands to list exported symbols. export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" # Symbols that should not be listed in the preloaded symbols. exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" # Symbols that must always be exported. include_expsyms="" # Commands necessary for linking programs (against libraries) with templates. prelink_cmds="" # Commands necessary for finishing linking programs. postlink_cmds="" # Specify filename containing input files. file_list_spec="" # How to hardcode a shared library path into an executable. hardcode_action=immediate # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs="/usr/lib/gcc/x86_64-redhat-linux/4.8.2 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.." # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtbeginS.o" postdep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.8.2/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/crtn.o" predeps="" postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s" # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path="-L/usr/lib/gcc/x86_64-redhat-linux/4.8.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../.." # ### END LIBTOOL TAG CONFIG: CXX mysql++-3.2.2+pristine.orig/HACKERS.txt0000644000372000001440000004566612502417162017035 0ustar robertousersIf you are going to make any changes to MySQL++, this file has some hints and commentary you may find helpful. Subversion Access ~~~~~~~~~~~~~~~~~ To check out the current development version from the Gna! Subversion repository, say: $ svn co svn://svn.gna.org/svn/mysqlpp/trunk mysqlpp If you're a MySQL++ committer, use svn over ssh instead: $ svn co svn+ssh://LOGIN@svn.gna.org/svn/mysqlpp/trunk mysqlpp where LOGIN is your Gna! login name. You will have to have your ssh public key(s) registered with Gna! for this to work. Bootstrapping the Library ~~~~~~~~~~~~~~~~~~~~~~~~~ When you check out MySQL++ from svn, there are a lot of things "missing" as compared to a distributed tarball, because the svn repository contains only source files, no generated files. The process that turns a fresh MySQL++ repository checkout into something you can build and hack on is called bootstrapping. Boostrapping is best done on a modern Unix type platform: Linux, OS X, BSD, Solaris...any version released in the last 4 years or so. It's possible to do it on Windows, but harder; enough so that we cover the options below in a separate section. Two of the tools you need to do this are commonly available on Unixy systems, at least as an option: Perl 5, and autoconf 1.59 or higher. If they're not installed, you can probably run your system's package manager to install suitable versions. There's a third tool you'll need to bootstrap MySQL++, called Bakefile, which you can get from http://bakefile.org/ You will need Bakefile 0.2.5 or higher, which in turn requires Python 2.3 or higher to run. To build Bakefile from source, you will also need SWIG, so if you don't have that, you'll want to use one of the binary builds of Bakefile. Once you have all the tools in place, you can bootstrap MySQL++ with a Bourne shell script called bootstrap, which you get as part of the svn checkout. It's fairly powerful, with many options. For most cases, it suffices to just run it without any arguments: $ ./bootstrap For more unusual situations, here's the complete usage: $ ./bootstrap [no{doc,ex,lib,opt}] [pedantic] [bat] \ [configure flags] Arguments: nodoc The documentation won't be considered a prerequisite for building the distribution tarball. This is useful on systems where the documentation doesn't build correctly, and you only need to make a binary RPM. That process requires a tarball, but doesn't need the documentation. Don't distribute the tarball or SRPM that results, as they are no good for any other purpose. noex The generated Makefiles and project files won't try to build any of the examples. nolib The generated Makefiles and project files won't try to build the MySQL++ library. nomaint Turn off "maintainer mode" stuff in the build. These are features used only by those building MySQL++ from svn. The 'dist' build target uses this when creating the tarball. noopt Compiler optimization will be turned off. (This currently has no effect on MinGW or Visual C++.) pedantic Turns on all of GCC's warnings and portability checks. Good for checking changes before making a public release. bat Asks cmd.exe to run bootstrap.bat for you. This is useful when using Cygwin just as a command shell in preference to cmd.exe, as opposed to using Cygwin to build MySQL++ using its native tools. Passing 'bat' stops all command line processing in the bootstrap script, so if you also pass some of the other options, make 'bat' last. The only options that affect the built project files and Makefiles work are the no* ones. configure options As soon as the bootstrap script sees an option that it doesn't understand, it stops processing the command line. Any subsequent options are passed to the configure script. See README-Unix.txt for more on configure script options. Bootstrapping the Library Using only Windows ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The thing that makes bootstrapping on Windows difficult is that one of the required steps uses a Unix-centric tool, autoconf. This section is about working out a way to get that working on Windows, or avoiding the need for it, so you can get on with hacking on MySQL++ on Windows. The thing autoconf does that's relevant to Windows builds of MySQL++ is that it substitutes the current MySQL++ version number into several source files. This allows us to change the version number in just one place -- configure.ac -- and have it applied to all these other places. Until you do this step, an svn checkout of MySQL++ won't build, because these files with the version numbers in them won't be generated. Option 1: Copy the generated files over from a released version ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Only one of these generated files is absolutely critical to allowing MySQL++ to build: lib/mysql++.h. So, the simplest option you have to bootstrap MySQL++ entirely on Windows is to copy lib/mysql++.h over from a released version of MySQL++. While you're doing that, you might copy over the other such generated files: install.hta mysql++.spec doc/userman/userman.dbx lib/Doxyfile Having done that, you can complete the bootstrapping process by running bootstrap.bat. It has the same purpose as the Bourne shell script described above, but much simpler. It has none of the command line options described above, for one thing. The main downside of doing it this way is that your changed version will have the same version number as the release of MySQL++ you copied the files from, unless you go into each file and change the version numbers. Option 2: Cygwin ~~~~~~~~~~~~~~~~ If you'd like to hack on MySQL++ entirely on Windows and have all the build freedoms enjoyed by those working on Unixy platforms, the simplest solution is probably to install Cygwin. Get the Cygwin installer from http://cygwin.com/setup.exe When you run it, it will walk you through the steps to install Cygwin. Autoconf and Perl 5 aren't installed in Cygwin by default, so when you get to the packages list, be sure to select them. Autoconf is in the Devel category, and Perl 5 in the Interpreters category. You will also need to install the native Windows binary version of Bakefile, from http://bakefile.org/ Don't get the source version and try to build Bakefile under Cygwin; it won't work. The Windows binary version of Bakefile includes an embedded version of Python, so you won't need to install Cygwin's Python. Having done all this, you can follow the Unix bootstrapping instructions in the previous section. Option 3: "Here's a nickel, kid, get yourself a better computer." ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://tomayko.com/writings/that-dilbert-cartoon Finally, you might have access to a Unixy system, or the ability to set one up. You don't even need a separate physical computer, now that virtual machine techology is free. For example, you could download a Linux "appliance" from http://www.vmware.com/appliances/ and a copy of the free VMware Player to run it on your Windows machine. You'd do the svn checkout of MySQL++ on that machine, bootstrap it there using the instructions in the previous section. That done, just copy the result over to the Windows machine to continue hacking on it. On Manipulating the Build System Source Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ One of the things the bootstrapping system described above does is produces various types of project and make files from a small number of source files. This system lets us support many platforms without having to maintain separate build system files for each platform. Bakefile (http://bakefile.org/) produces most of these project and make files from a single source file called mysql++.bkl. Except for small local changes, it's best to change mysql++.bkl and "re-bake" the project and make files rather than change those files directly. You can do this with the bootstrap scripts covered above. On Windows, if all you've changed is mysql++.bkl, you can use rebake.bat instead, which doesn't try to do as much as bootstrap.bat. Bakefile produces finished project files for Visual C++ and Xcode and finished Makefiles for MinGW. It also produces Makefile.in, which is input to GNU Autoconf along with configure.ac and config/*. You may need to change these latter files in addition to or instead of mysql++.bkl to get the effect you want. Running bootstrap incorporates changes to all of these files in the GNU autoconf output. While Bakefile's documentation isn't as comprehensive as it ought to be, you can at least count on it to list all of the available features. So, if you can't see a way to make Bakefile do something, it's likely it just can't do it. Bakefile is a high-level abstraction of build systems in general, so it'll never support all the particulars of every odd build system out there. Submitting Patches ~~~~~~~~~~~~~~~~~~ If you wish to submit a patch to the library, please send it to the MySQL++ mailing list, or attach it to an entry in our bug tracker on Gna! We want patches in unified diff format. The easiest way to get a unified diff is to check out a copy of the current MySQL++ tree as described above. Then make your change, cd to the MySQL++ root directory, and ask Subversion to generate the diff for you: $ svn diff > mychange.patch If your patch adds new files to the distribution, you can say "svn add newfile" before you do the diff, which will include the contents of that file in the patch. (You can do this even when you've checked out the tree anonymously.) Then say "svn revert newfile" to make Subversion forget about the new file. If you're making a patch against a MySQL++ distribution tarball, then you can generate the diff this way: $ diff -ruN mysql++-olddir mysql++-newdir > mychange.patch The diff command is part of every Unix and Linux system, and should be installed by default. If you're on a Windows machine, GNU diff is part of Cygwin (http://cygwin.com/). Subversion is also available for all of these systems. There are no excuses for not being able to make unified diffs. :) The MySQL++ Code Style ~~~~~~~~~~~~~~~~~~~~~~ Every code base should have a common code style. Love it or hate it, here are MySQL++'s current code style rules: Source Code ~~~~~~~~~~~ File types: ac, cpp, h, in, m4, pl - Tabs for indents, size 4 - Unix line endings. Any decent programmer's editor can cope with this, even on Windows. - C/C++ rules: - Base whitespace style is AT&Tish: K&R/Stroustrup, plus a little local spice. If you have the indent(1) program, the command is: indent -kr -nce -cli4 -ss -di1 -psl -ts4 FILES... That is, don't cuddle else, indent case statement labels, space before semicolon with empty loop body, no extra space between a variable type and name, return value of function on separate line from rest of definition. - Class names are in CamelCase, uppercased first letter - Method names are in all_lower_case_with_underscores(); ditto most other global symbols. - Macro names are in ALL_UPPERCASE_WITH_UNDERSCORES - Doxygen comment for all public declarations, unless there is a very good reason to keep the thing undocumented. - Perl and shell script rules are more or less the same as for C/C++, to the extent this makes sense. XML/HTML Dialects ~~~~~~~~~~~~~~~~~ File types: bkl, dbx, hta - Spaces for indents, size 2. Shallow indents due to the high level of nesting occurring in such files, and spaces because they're not as annoying at shallow indent levels in editors that don't treat space indents like tabs. - Unix line endings. Again, these are intended to be viewed in a programmer's text editor, which should work with Unix line endings no matter the platform. Plain Text Files ~~~~~~~~~~~~~~~~ File types: txt - Spaces for indents, size 4. Spaces because such files are often viewed in Notepad and similarly crippled text editors which use a default indent level of 8. - DOS line endings, again for the Notepad reason. And on modern Unixy platforms, the tools cope with DOS line endings reasonably well. Better than the converse, anyway. When in doubt, mimic what you see in the current code. When still in doubt, ask on the mailing list. Testing Your Proposed Change ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ includes a self-test mechanism called dtest. It's a Bourne shell script, run much like exrun: $ ./dtest [-s server_addr] [-u user] [-p password] This automatically runs most of the examples, captures the outputs to a file, and then compares that to a known-good run's outputs, stored in bmark.txt. So, before you submit a patch, run dtest to see if anything has changed. If something has and you can't account for it, it represents a problem that you'll have to fix before submitting the patch. If it gives an expected change, remove bmark.txt, re-run dtest, and include the bmark.txt diffs in your patch. This communicates to us the fact that you know there are differences and want the patch evaluated anyway. Otherwise, we are likely to view the change as a bug. dtest also runs all of the unit tests in test/*. The purpose of test/* is different from that of examples/*: - test/* are unit tests: each tests only one MySQL++ class, independent of everything else. Because DB access requires several MySQL++ classes to cooperate, a unit test never accesses a database; hence, no unit test needs DB connection parameters. We will never get 100% code coverage from test/* alone. - examples/* can be thought of as integration tests: they test many pieces of MySQL++ working together, accessing a real database server. In addition to ensuring that all the pieces work together and give consistent results from platform to platform and run to run, it also fills in gaps in the code coverage where no suitable test/* module could be created. - test/* programs always run silently on success, writing output only to indicate test failures. This is because they're usually only run via dtest. - examples/* are always "noisy," regardless of whether they succeed or fail, because they're also run interactively by people learning to use MySQL++. Patches should include tests if they introduce new functionality or fix a bug that the existing test coverage failed to catch. If the test is noisy, needs DB access, or tests multiple parts of the library at once, it goes in examples/*. If your change affects only one class in MySQL++ and testing it can be done without instantiating other MySQL++ classes -- other than by composition, of course -- it should go in test/*. In general, prefer modifying an existing examples/* or test/* program. Add a new one only if you're introducing brand new functionality or when a given feature currently has no test at all. Beware that the primary role the examples is to illustrate points in the user manual. If an existing example does something similar to what a proper test would need to do and the test doesn't change the nature of the example, don't worry about changing the example code. If your test would change the nature of the example, you either need to do the test another way, or also submit a change to doc/userman/*.dbx that incorporates the difference. Adding Support for a Different Compiler ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As described above, MySQL++ uses the Bakefile system for creating project files and makefiles. This allows us to make changes to a single set of files, and have the proper changes be made to all generated project files and makefiles. In the past, we used more ad-hoc systems, and we'd frequently forget to update individual project files and makefiles, so at any given time, at least one target was likely to be broken. If MySQL++ doesn't currently ship with project files or makefiles tuned for your compiler of choice, you need to work through the Bakefile mechanism to add support. We're not willing to do ad-hoc platform support any more, so please don't ask if you can send us project files instead; we don't want them. If you want to port MySQL++ to another platform, we need to be confident that the entire library works on your platform before we'll accept patches. In the past, we've had broken ports that were missing important library features, or that crashed when built in certain ways. Few people will knowingly use a crippled version of MySQL++, since there are usually acceptable alternatives. Therefore, such ports become maintenance baggage with little compensating value. Maintaining a Private CVS Repository ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You may find it helpful to maintain your own CVS repository. Whenever there is a new MySQL++ release, import it on the vendor branch like this: $ cvs import -m "Version 1.7.35" software/mysql++ mysql++ mysql++-1_7_35 (This assumes that you have your CVSROOT environment variable set properly.) Update the HEAD branch like this: $ cd mysql++ $ cvs update -PdA $ cvs update -j HEAD -j mysql++-1_7_35 -Pd $ cvs ci -m "merged 1.7.35 into HEAD" $ cvs tag mysql++-1_7_35-merged Then any changes you make can easily be tracked, and diffs can be produced with rdiff: $ cvs rdiff -ru mysql++-1_7_35 -r mysql++-1_7_35_equal_list \ $(cat CVS/Repository) > equal_list.patch mysql++-3.2.2+pristine.orig/install-sh0000755000372000001440000003325512502417162017207 0ustar robertousers#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: mysql++-3.2.2+pristine.orig/.bakefile_gen.state0000644000372000001440000006331612502417166020723 0ustar robertousersK.}q((U5/usr/local/src/mysqlpp/head/mysql++-3.2.2/mysql++.bklUxcode2t(cdependencies DepsRecord qo}q(Uoutputsq]q(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/mysql++.xcodeproj/project.pbxprojUreplacetqaUdepsq]q((cdependencies FileDep q oq }q Ufilenameq U*/usr/local/share/bakefile/rules/common.bklsb(h oq }qh U+/usr/local/share/bakefile/rules/version.bklsb(h oq}qh U(/usr/local/share/bakefile/rules/dirs.bklsb(h oq}qh U3/usr/local/share/bakefile/rules/format_features.bklsb(h oq}qh U*/usr/local/share/bakefile/rules/xcode2.bklsb(h oq}qh U6/usr/local/share/bakefile/rules/makefile_defs_unix.bklsb(h oq}qh U5/usr/local/share/bakefile/rules/modules/datafiles.bklsb(h oq}qh U,/usr/local/share/bakefile/presets/simple.bklsb(h oq}qh U*/usr/local/share/bakefile/output/xcode2.pysbeub(U5/usr/local/src/mysqlpp/head/mysql++-3.2.2/mysql++.bklU msvs2008prjt(ho}q(h]q((UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_excommon.vcprojUreplaceqtq (UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_uds.vcprojhtq!(UG/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_tquery3.vcprojhtq"(UN/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_sqlstream.vcprojhtq#(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_string.vcprojhtq$(UQ/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_insertpolicy.vcprojhtq%(UM/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_inttypes.vcprojhtq&(UG/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_resetdb.vcprojhtq'(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_ssqls2.vcprojhtq((UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_deadlock.vcprojhtq)(UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_wnp.vcprojhtq*(UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_cgi_jpeg.vcprojhtq+(UJ/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_cpool.vcprojhtq,(UI/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_load_jpeg.vcprojhtq-(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls4.vcprojhtq.(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls6.vcprojhtq/(UT/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_null_comparison.vcprojhtq0(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls1.vcprojhtq1(UL/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_qstream.vcprojhtq2(UG/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_mysqlpp.vcprojhtq3(UG/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_simple2.vcprojhtq4(UO/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_query_copy.vcprojhtq5(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls3.vcprojhtq6(UE/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_cpool.vcprojhtq7(UI/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqlsxlat.vcprojhtq8(UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_store_if.vcprojhtq9(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_dbinfo.vcprojhtq:(UG/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_tquery1.vcprojhtq;(UF/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls2.vcprojhtq<(UM/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_datetime.vcprojhtq=(UH/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_tcp.vcprojhtq>(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_ssqls2parse.vcprojhtq?(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_test_qssqls.vcprojhtq@(UK/usr/local/src/mysqlpp/head/mysql++-3.2.2/vc2008/mysql++_transaction.vcprojhtqA(U exrun.bat resetdb [-s server] [-u user] [-p pass] You don't have to give any of these options. If you don't pass -s, it assumes the database server is running on the same machine, and so tries to contact the server over some form of local IPC. If you don't pass -u, it uses your own user name when logging into to the database server. If you don't pass -p, it assumes the database user has an empty password, which hopefully is not true. The -s option accepts many different forms of address. The main one is some sort of TCP/IP address, with an optional port number or service name. On Unixy systems, you can give a Unix domain socket name. On Windows, you can give just a period to use named pipes, if the server supports it. All of these are legal: . localhost 172.20.0.252:12345 /var/run/mysqld.sock my.server.name.com:mysql If you give -s but don't give a port number or service name with it, it assumes the default, port 3306. Running the Other Command Line Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following examples use the database set up by resetdb, and have the same command line format as resetdb: simple1: Shows the item names for all records in the sample stock table. Try this one if you do nothing else. simple2: Similar to simple1, but it displays all columns from the sample stock table, not just the item name. simple3: Same as simple2, except that it retrieves the data with a "use" query instead of a "store" query. See the user manual for the difference between these methods. ssqls1-5: These demonstrate the SSQLS features. Read the SSQLS sections in the user manual for details about these examples. multiquery: MySQL++ allows you to issue multiple queries at once, and get the results as separate sets. This shows that, and also how to use stored procedures, which return their results in the same way as a multiquery. tquery1-3: Shows how to use the template query facility. transaction: Shows how to use the Transaction class to create transaction sets which automatically roll back if not explicitly committed. deadlock: Shows how to handle errors that happen when the database server detects a deadlock in a transaction set. Also demonstrates the need for BadQuery::errnum() store_if: Demonstrates the Query::store_if() method, which allows you to store the results of a query in an STL container conditionally. Think of it as a way to express rules for selecting records in C++, to be used when SQL's WHERE clause isn't powerful enough. for_each: Demonstrates the Query::for_each() method, which allows you to execute a query and call a functor on each returned row. This example uses this to gather statistics on the sample table's contents. cpoolp, cpoolw: Respectively, the POSIX and Windows threads variants of the ConnectionPool class demonstration. load_jpeg: Inserts a JPEG file into the sample database, for use by the cgi_jpeg example. (See below.) Unlike the other examples, this one takes anything given on the command line that isn't a switch to be a JPEG file name. We've included examples/logo.jpg as a sample, if you want to use that. fieldinf: Shows how to get information about the fields in a result set. (Types, etc.) dbinfo: Dumps a bunch of information about the database server and some of the data it's managing. If you run the load_jpeg example, you should consider also playing with the other half of the demonstration, cgi_jpeg. To run it, you'll need to install MySQL++ on a machine with a web server, then copy the cgi_jpeg program to the server's CGI directory. For example, on a stock Red Hat type box, that would be /var/www/cgi-bin. At that point, a request like http://my.server.com/cgi-bin/cgi_jpeg?id=1 should show the JPEG you loaded. The ID value to use will be that reported by load_jpeg. Dedicated Windows Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~ If you're a Visual C++ user, there are two GUI examples, too: examples\vstudio\mfc.vcproj: MFC-based replacement for the simple2 example. examples\vstudio\wforms.vcproj: The same thing, only written in C++/CLI and using Windows Forms. Please follow the instructions in README-Visual-C++.txt before trying to build and run this example. The MySQL++ library build settings must be modified and the library rebuilt first. Although these examples show use of MySQL++ in a GUI rather than command line program, that's not the main point of these examples. What we're really showing here is how to deal with Unicode. The MySQL server prefers the UTF-8 encoding for Unicode, which works naturally with most non-Windows systems. Windows, on the other hand, uses a different Unicode character encoding, UCS-2. These examples show how to do the necessary conversions. (See the Unicode chapter in the user manual for more on this topic.) We need two different examples because Unicode conversions and string handling are so wildly different under .NET than with the native Win32 API. .NET makes these tasks much easier. These examples build and run as-is under Visual C++ 2005. To make them work with VC++ 2008, you will have to change several paths in both project's settings to reference the "vc2008" subdirectory instead of "vc2005": o Configuration Properties > Debugging > Working Directory o Configuration Properties > Linker > General > Additional Library Directories If you want to backport these examples to VC++ 2003, it's probably not hard. The main difficulty is that VS 2003 supports Managed C++, which isn't the same thing as C++/CLI. Special exrun Capabilities ~~~~~~~~~~~~~~~~~~~~~~~~~~ The Bourne shell version of the exrun script has a few features not avaiable in the Windows batch file version. These features let you run the examples under various debugging tools. You can get simple gdb debugging if you run an example like this: $ ./exrun gdb simple1 foo bar qux The script also supports valgrind, in memory leak testing mode: $ ./exrun valgrind simple1 foo bar qux mysql++-3.2.2+pristine.orig/mysql++.xcodeproj/0000755000372000001440000000000012502417162020462 5ustar robertousersmysql++-3.2.2+pristine.orig/mysql++.xcodeproj/project.pbxproj0000644000372000001440000050623712502417162023553 0ustar robertousers// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 42; objects = { /* Begin PBXBuildFile section */ 00000000000000000000000e = { isa = PBXBuildFile; fileRef = 00000000000000000000000d; }; 000000000000000000000010 = { isa = PBXBuildFile; fileRef = 00000000000000000000000f; }; 000000000000000000000012 = { isa = PBXBuildFile; fileRef = 000000000000000000000011; }; 000000000000000000000014 = { isa = PBXBuildFile; fileRef = 000000000000000000000013; }; 000000000000000000000016 = { isa = PBXBuildFile; fileRef = 000000000000000000000015; }; 000000000000000000000018 = { isa = PBXBuildFile; fileRef = 000000000000000000000017; }; 00000000000000000000001a = { isa = PBXBuildFile; fileRef = 000000000000000000000019; }; 00000000000000000000001c = { isa = PBXBuildFile; fileRef = 00000000000000000000001b; }; 00000000000000000000001e = { isa = PBXBuildFile; fileRef = 00000000000000000000001d; }; 000000000000000000000020 = { isa = PBXBuildFile; fileRef = 00000000000000000000001f; }; 000000000000000000000022 = { isa = PBXBuildFile; fileRef = 000000000000000000000021; }; 000000000000000000000024 = { isa = PBXBuildFile; fileRef = 000000000000000000000023; }; 000000000000000000000026 = { isa = PBXBuildFile; fileRef = 000000000000000000000025; }; 000000000000000000000028 = { isa = PBXBuildFile; fileRef = 000000000000000000000027; }; 00000000000000000000002a = { isa = PBXBuildFile; fileRef = 000000000000000000000029; }; 00000000000000000000002c = { isa = PBXBuildFile; fileRef = 00000000000000000000002b; }; 00000000000000000000002e = { isa = PBXBuildFile; fileRef = 00000000000000000000002d; }; 000000000000000000000030 = { isa = PBXBuildFile; fileRef = 00000000000000000000002f; }; 000000000000000000000032 = { isa = PBXBuildFile; fileRef = 000000000000000000000031; }; 000000000000000000000034 = { isa = PBXBuildFile; fileRef = 000000000000000000000033; }; 000000000000000000000036 = { isa = PBXBuildFile; fileRef = 000000000000000000000035; }; 000000000000000000000038 = { isa = PBXBuildFile; fileRef = 000000000000000000000037; }; 00000000000000000000003a = { isa = PBXBuildFile; fileRef = 000000000000000000000039; }; 00000000000000000000003c = { isa = PBXBuildFile; fileRef = 00000000000000000000003b; }; 00000000000000000000003e = { isa = PBXBuildFile; fileRef = 00000000000000000000003d; }; 000000000000000000000040 = { isa = PBXBuildFile; fileRef = 00000000000000000000003f; }; 000000000000000000000042 = { isa = PBXBuildFile; fileRef = 000000000000000000000041; }; 000000000000000000000044 = { isa = PBXBuildFile; fileRef = 000000000000000000000043; }; 000000000000000000000046 = { isa = PBXBuildFile; fileRef = 000000000000000000000045; }; 000000000000000000000048 = { isa = PBXBuildFile; fileRef = 000000000000000000000047; }; 000000000000000000000055 = { isa = PBXBuildFile; fileRef = 000000000000000000000054; }; 000000000000000000000065 = { isa = PBXBuildFile; fileRef = 000000000000000000000064; }; 000000000000000000000067 = { isa = PBXBuildFile; fileRef = 000000000000000000000066; }; 000000000000000000000076 = { isa = PBXBuildFile; fileRef = 000000000000000000000075; }; 000000000000000000000082 = { isa = PBXBuildFile; fileRef = 000000000000000000000081; }; 00000000000000000000008e = { isa = PBXBuildFile; fileRef = 00000000000000000000008d; }; 00000000000000000000009a = { isa = PBXBuildFile; fileRef = 000000000000000000000099; }; 0000000000000000000000a6 = { isa = PBXBuildFile; fileRef = 0000000000000000000000a5; }; 0000000000000000000000b2 = { isa = PBXBuildFile; fileRef = 0000000000000000000000b1; }; 0000000000000000000000be = { isa = PBXBuildFile; fileRef = 0000000000000000000000bd; }; 0000000000000000000000ca = { isa = PBXBuildFile; fileRef = 0000000000000000000000c9; }; 0000000000000000000000d6 = { isa = PBXBuildFile; fileRef = 0000000000000000000000d5; }; 0000000000000000000000e2 = { isa = PBXBuildFile; fileRef = 0000000000000000000000e1; }; 0000000000000000000000ee = { isa = PBXBuildFile; fileRef = 0000000000000000000000ed; }; 0000000000000000000000fc = { isa = PBXBuildFile; fileRef = 0000000000000000000000fb; }; 00000000000000000000010a = { isa = PBXBuildFile; fileRef = 000000000000000000000109; }; 000000000000000000000116 = { isa = PBXBuildFile; fileRef = 000000000000000000000115; }; 000000000000000000000122 = { isa = PBXBuildFile; fileRef = 000000000000000000000121; }; 00000000000000000000012e = { isa = PBXBuildFile; fileRef = 00000000000000000000012d; }; 00000000000000000000013b = { isa = PBXBuildFile; fileRef = 00000000000000000000013a; }; 000000000000000000000149 = { isa = PBXBuildFile; fileRef = 000000000000000000000148; }; 000000000000000000000159 = { isa = PBXBuildFile; fileRef = 000000000000000000000158; }; 000000000000000000000169 = { isa = PBXBuildFile; fileRef = 000000000000000000000168; }; 000000000000000000000179 = { isa = PBXBuildFile; fileRef = 000000000000000000000178; }; 000000000000000000000189 = { isa = PBXBuildFile; fileRef = 000000000000000000000188; }; 000000000000000000000199 = { isa = PBXBuildFile; fileRef = 000000000000000000000198; }; 0000000000000000000001a9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001a8; }; 0000000000000000000001b9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001b8; }; 0000000000000000000001c9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001c8; }; 0000000000000000000001d9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001d8; }; 0000000000000000000001e9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001e8; }; 0000000000000000000001f9 = { isa = PBXBuildFile; fileRef = 0000000000000000000001f8; }; 000000000000000000000209 = { isa = PBXBuildFile; fileRef = 000000000000000000000208; }; 000000000000000000000219 = { isa = PBXBuildFile; fileRef = 000000000000000000000218; }; 000000000000000000000229 = { isa = PBXBuildFile; fileRef = 000000000000000000000228; }; 000000000000000000000239 = { isa = PBXBuildFile; fileRef = 000000000000000000000238; }; 000000000000000000000249 = { isa = PBXBuildFile; fileRef = 000000000000000000000248; }; 000000000000000000000259 = { isa = PBXBuildFile; fileRef = 000000000000000000000258; }; 000000000000000000000269 = { isa = PBXBuildFile; fileRef = 000000000000000000000268; }; 000000000000000000000279 = { isa = PBXBuildFile; fileRef = 000000000000000000000278; }; 000000000000000000000289 = { isa = PBXBuildFile; fileRef = 000000000000000000000288; }; 000000000000000000000299 = { isa = PBXBuildFile; fileRef = 000000000000000000000298; }; 0000000000000000000002a9 = { isa = PBXBuildFile; fileRef = 0000000000000000000002a8; }; 0000000000000000000002b9 = { isa = PBXBuildFile; fileRef = 0000000000000000000002b8; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 000000000000000000000049 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000004b = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000056 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000058 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000005a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000005c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 00000000000000000000004d; remoteInfo = ssqls2parse; }; 000000000000000000000068 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000006a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 00000000000000000000004d; remoteInfo = ssqls2parse; }; 00000000000000000000006c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000077 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000079 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000083 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000085 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000008f = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000091 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000009b = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000009d = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000a7 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000a9 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000b3 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000b5 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000bf = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000c1 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000cb = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000cd = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000d7 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000d9 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000e3 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000e5 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000ef = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000f1 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000f3 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 00000000000000000000004d; remoteInfo = ssqls2parse; }; 0000000000000000000000fd = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000000ff = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 00000000000000000000004d; remoteInfo = ssqls2parse; }; 000000000000000000000101 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000010b = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000010d = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000117 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000119 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000123 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000125 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000012f = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 000000000000000000000131 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000013c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000013e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000140 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000014a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000014c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000014e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000150 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000015a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000015c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000015e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000160 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000016a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000016c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000016e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000170 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000017a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000017c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000017e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000180 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000018a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000018c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000018e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000190 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000019a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000019c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000019e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001a0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001aa = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001ac = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ae = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001b0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ba = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001bc = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001be = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001c0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ca = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001cc = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ce = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001d0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001da = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001dc = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001de = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001e0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ea = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001ec = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001ee = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001f0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001fa = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000001fc = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000001fe = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000200 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000020a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000020c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000020e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000210 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000021a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000021c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000021e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000220 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000022a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000022c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000022e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000230 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000023a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000023c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000023e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000240 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000024a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000024c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000024e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000250 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000025a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000025c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000025e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000260 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000026a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000026c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000026e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000270 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000027a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000027c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000027e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000280 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000028a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000028c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000028e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 000000000000000000000290 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000029a = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 00000000000000000000029c = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 00000000000000000000029e = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000002a0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000002aa = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000002ac = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000002ae = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000002b0 = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; 0000000000000000000002ba = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000133; remoteInfo = excommon; }; 0000000000000000000002bc = { isa = PBXContainerItemProxy; containerPortal = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; proxyType = 1; remoteGlobalIDString = 000000000000000000000006; remoteInfo = mysqlpp; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 00000000000000000000000a = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.dylib"; path = mysqlpp; sourceTree = BUILT_PRODUCTS_DIR; }; 00000000000000000000000d = { isa = PBXFileReference; path = beemutex.cpp; sourceTree = ""; }; 00000000000000000000000f = { isa = PBXFileReference; path = cmdline.cpp; sourceTree = ""; }; 000000000000000000000011 = { isa = PBXFileReference; path = connection.cpp; sourceTree = ""; }; 000000000000000000000013 = { isa = PBXFileReference; path = cpool.cpp; sourceTree = ""; }; 000000000000000000000015 = { isa = PBXFileReference; path = datetime.cpp; sourceTree = ""; }; 000000000000000000000017 = { isa = PBXFileReference; path = dbdriver.cpp; sourceTree = ""; }; 000000000000000000000019 = { isa = PBXFileReference; path = field_names.cpp; sourceTree = ""; }; 00000000000000000000001b = { isa = PBXFileReference; path = field_types.cpp; sourceTree = ""; }; 00000000000000000000001d = { isa = PBXFileReference; path = manip.cpp; sourceTree = ""; }; 00000000000000000000001f = { isa = PBXFileReference; path = myset.cpp; sourceTree = ""; }; 000000000000000000000021 = { isa = PBXFileReference; path = "mysql++.cpp"; sourceTree = ""; }; 000000000000000000000023 = { isa = PBXFileReference; path = mystring.cpp; sourceTree = ""; }; 000000000000000000000025 = { isa = PBXFileReference; path = null.cpp; sourceTree = ""; }; 000000000000000000000027 = { isa = PBXFileReference; path = options.cpp; sourceTree = ""; }; 000000000000000000000029 = { isa = PBXFileReference; path = qparms.cpp; sourceTree = ""; }; 00000000000000000000002b = { isa = PBXFileReference; path = query.cpp; sourceTree = ""; }; 00000000000000000000002d = { isa = PBXFileReference; path = result.cpp; sourceTree = ""; }; 00000000000000000000002f = { isa = PBXFileReference; path = row.cpp; sourceTree = ""; }; 000000000000000000000031 = { isa = PBXFileReference; path = scopedconnection.cpp; sourceTree = ""; }; 000000000000000000000033 = { isa = PBXFileReference; path = sql_buffer.cpp; sourceTree = ""; }; 000000000000000000000035 = { isa = PBXFileReference; path = sqlstream.cpp; sourceTree = ""; }; 000000000000000000000037 = { isa = PBXFileReference; path = ssqls2.cpp; sourceTree = ""; }; 000000000000000000000039 = { isa = PBXFileReference; path = stadapter.cpp; sourceTree = ""; }; 00000000000000000000003b = { isa = PBXFileReference; path = tcp_connection.cpp; sourceTree = ""; }; 00000000000000000000003d = { isa = PBXFileReference; path = transaction.cpp; sourceTree = ""; }; 00000000000000000000003f = { isa = PBXFileReference; path = type_info.cpp; sourceTree = ""; }; 000000000000000000000041 = { isa = PBXFileReference; path = uds_connection.cpp; sourceTree = ""; }; 000000000000000000000043 = { isa = PBXFileReference; path = utility.cpp; sourceTree = ""; }; 000000000000000000000045 = { isa = PBXFileReference; path = vallist.cpp; sourceTree = ""; }; 000000000000000000000047 = { isa = PBXFileReference; path = wnp_connection.cpp; sourceTree = ""; }; 000000000000000000000051 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = ssqls2parse; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000054 = { isa = PBXFileReference; path = parsev2.cpp; sourceTree = ""; }; 000000000000000000000062 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqlsxlat; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000064 = { isa = PBXFileReference; path = genv2.cpp; sourceTree = ""; }; 000000000000000000000066 = { isa = PBXFileReference; path = main.cpp; sourceTree = ""; }; 000000000000000000000072 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_array_index; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000075 = { isa = PBXFileReference; path = array_index.cpp; sourceTree = ""; }; 00000000000000000000007f = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_cpool; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000081 = { isa = PBXFileReference; path = cpool.cpp; sourceTree = ""; }; 00000000000000000000008b = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_datetime; sourceTree = BUILT_PRODUCTS_DIR; }; 00000000000000000000008d = { isa = PBXFileReference; path = datetime.cpp; sourceTree = ""; }; 000000000000000000000097 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_inttypes; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000099 = { isa = PBXFileReference; path = inttypes.cpp; sourceTree = ""; }; 0000000000000000000000a3 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_insertpolicy; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000a5 = { isa = PBXFileReference; path = insertpolicy.cpp; sourceTree = ""; }; 0000000000000000000000af = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_manip; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000b1 = { isa = PBXFileReference; path = manip.cpp; sourceTree = ""; }; 0000000000000000000000bb = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_null_comparison; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000bd = { isa = PBXFileReference; path = null_comparison.cpp; sourceTree = ""; }; 0000000000000000000000c7 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_query_copy; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000c9 = { isa = PBXFileReference; path = query_copy.cpp; sourceTree = ""; }; 0000000000000000000000d3 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_qssqls; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000d5 = { isa = PBXFileReference; path = qssqls.cpp; sourceTree = ""; }; 0000000000000000000000df = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_qstream; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000e1 = { isa = PBXFileReference; path = qstream.cpp; sourceTree = ""; }; 0000000000000000000000eb = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_sqlstream; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000ed = { isa = PBXFileReference; path = sqlstream.cpp; sourceTree = ""; }; 0000000000000000000000f9 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_ssqls2; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000000fb = { isa = PBXFileReference; path = ssqls2.cpp; sourceTree = ""; }; 000000000000000000000107 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_string; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000109 = { isa = PBXFileReference; path = string.cpp; sourceTree = ""; }; 000000000000000000000113 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_tcp; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000115 = { isa = PBXFileReference; path = tcp.cpp; sourceTree = ""; }; 00000000000000000000011f = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_uds; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000121 = { isa = PBXFileReference; path = uds.cpp; sourceTree = ""; }; 00000000000000000000012b = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = test_wnp; sourceTree = BUILT_PRODUCTS_DIR; }; 00000000000000000000012d = { isa = PBXFileReference; path = wnp.cpp; sourceTree = ""; }; 000000000000000000000137 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = archive.ar; path = excommon; sourceTree = BUILT_PRODUCTS_DIR; }; 00000000000000000000013a = { isa = PBXFileReference; path = printdata.cpp; sourceTree = ""; }; 000000000000000000000146 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = cgi_jpeg; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000148 = { isa = PBXFileReference; path = cgi_jpeg.cpp; sourceTree = ""; }; 000000000000000000000156 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = cpool; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000158 = { isa = PBXFileReference; path = cpool.cpp; sourceTree = ""; }; 000000000000000000000166 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = dbinfo; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000168 = { isa = PBXFileReference; path = dbinfo.cpp; sourceTree = ""; }; 000000000000000000000176 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = deadlock; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000178 = { isa = PBXFileReference; path = deadlock.cpp; sourceTree = ""; }; 000000000000000000000186 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = fieldinf; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000188 = { isa = PBXFileReference; path = fieldinf.cpp; sourceTree = ""; }; 000000000000000000000196 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = for_each; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000198 = { isa = PBXFileReference; path = for_each.cpp; sourceTree = ""; }; 0000000000000000000001a6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = load_jpeg; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001a8 = { isa = PBXFileReference; path = load_jpeg.cpp; sourceTree = ""; }; 0000000000000000000001b6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = multiquery; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001b8 = { isa = PBXFileReference; path = multiquery.cpp; sourceTree = ""; }; 0000000000000000000001c6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = resetdb; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001c8 = { isa = PBXFileReference; path = resetdb.cpp; sourceTree = ""; }; 0000000000000000000001d6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = simple1; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001d8 = { isa = PBXFileReference; path = simple1.cpp; sourceTree = ""; }; 0000000000000000000001e6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = simple2; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001e8 = { isa = PBXFileReference; path = simple2.cpp; sourceTree = ""; }; 0000000000000000000001f6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = simple3; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000001f8 = { isa = PBXFileReference; path = simple3.cpp; sourceTree = ""; }; 000000000000000000000206 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls1; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000208 = { isa = PBXFileReference; path = ssqls1.cpp; sourceTree = ""; }; 000000000000000000000216 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls2; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000218 = { isa = PBXFileReference; path = ssqls2.cpp; sourceTree = ""; }; 000000000000000000000226 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls3; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000228 = { isa = PBXFileReference; path = ssqls3.cpp; sourceTree = ""; }; 000000000000000000000236 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls4; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000238 = { isa = PBXFileReference; path = ssqls4.cpp; sourceTree = ""; }; 000000000000000000000246 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls5; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000248 = { isa = PBXFileReference; path = ssqls5.cpp; sourceTree = ""; }; 000000000000000000000256 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = ssqls6; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000258 = { isa = PBXFileReference; path = ssqls6.cpp; sourceTree = ""; }; 000000000000000000000266 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = store_if; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000268 = { isa = PBXFileReference; path = store_if.cpp; sourceTree = ""; }; 000000000000000000000276 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = tquery1; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000278 = { isa = PBXFileReference; path = tquery1.cpp; sourceTree = ""; }; 000000000000000000000286 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = tquery2; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000288 = { isa = PBXFileReference; path = tquery2.cpp; sourceTree = ""; }; 000000000000000000000296 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = tquery3; sourceTree = BUILT_PRODUCTS_DIR; }; 000000000000000000000298 = { isa = PBXFileReference; path = tquery3.cpp; sourceTree = ""; }; 0000000000000000000002a6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = tquery4; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000002a8 = { isa = PBXFileReference; path = tquery4.cpp; sourceTree = ""; }; 0000000000000000000002b6 = { isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = transaction; sourceTree = BUILT_PRODUCTS_DIR; }; 0000000000000000000002b8 = { isa = PBXFileReference; path = transaction.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ 000000000000000000000004 = { isa = PBXGroup; children = ( 000000000000000000000005, 00000000000000000000000c, 000000000000000000000053, 000000000000000000000074, 000000000000000000000139, ); name = "mysql++"; sourceTree = ""; }; 000000000000000000000005 = { isa = PBXGroup; children = ( 00000000000000000000000a, 000000000000000000000051, 000000000000000000000062, 000000000000000000000072, 00000000000000000000007f, 00000000000000000000008b, 000000000000000000000097, 0000000000000000000000a3, 0000000000000000000000af, 0000000000000000000000bb, 0000000000000000000000c7, 0000000000000000000000d3, 0000000000000000000000df, 0000000000000000000000eb, 0000000000000000000000f9, 000000000000000000000107, 000000000000000000000113, 00000000000000000000011f, 00000000000000000000012b, 000000000000000000000137, 000000000000000000000146, 000000000000000000000156, 000000000000000000000166, 000000000000000000000176, 000000000000000000000186, 000000000000000000000196, 0000000000000000000001a6, 0000000000000000000001b6, 0000000000000000000001c6, 0000000000000000000001d6, 0000000000000000000001e6, 0000000000000000000001f6, 000000000000000000000206, 000000000000000000000216, 000000000000000000000226, 000000000000000000000236, 000000000000000000000246, 000000000000000000000256, 000000000000000000000266, 000000000000000000000276, 000000000000000000000286, 000000000000000000000296, 0000000000000000000002a6, 0000000000000000000002b6, ); name = Products; sourceTree = ""; }; 00000000000000000000000c = { isa = PBXGroup; children = ( 00000000000000000000000d, 00000000000000000000000f, 000000000000000000000011, 000000000000000000000013, 000000000000000000000015, 000000000000000000000017, 000000000000000000000019, 00000000000000000000001b, 00000000000000000000001d, 00000000000000000000001f, 000000000000000000000021, 000000000000000000000023, 000000000000000000000025, 000000000000000000000027, 000000000000000000000029, 00000000000000000000002b, 00000000000000000000002d, 00000000000000000000002f, 000000000000000000000031, 000000000000000000000033, 000000000000000000000035, 000000000000000000000037, 000000000000000000000039, 00000000000000000000003b, 00000000000000000000003d, 00000000000000000000003f, 000000000000000000000041, 000000000000000000000043, 000000000000000000000045, 000000000000000000000047, ); path = lib; sourceTree = ""; }; 000000000000000000000053 = { isa = PBXGroup; children = ( 000000000000000000000054, 000000000000000000000064, 000000000000000000000066, ); path = ssx; sourceTree = ""; }; 000000000000000000000074 = { isa = PBXGroup; children = ( 000000000000000000000075, 000000000000000000000081, 00000000000000000000008d, 000000000000000000000099, 0000000000000000000000a5, 0000000000000000000000b1, 0000000000000000000000bd, 0000000000000000000000c9, 0000000000000000000000d5, 0000000000000000000000e1, 0000000000000000000000ed, 0000000000000000000000fb, 000000000000000000000109, 000000000000000000000115, 000000000000000000000121, 00000000000000000000012d, ); path = test; sourceTree = ""; }; 000000000000000000000139 = { isa = PBXGroup; children = ( 00000000000000000000013a, 000000000000000000000148, 000000000000000000000158, 000000000000000000000168, 000000000000000000000178, 000000000000000000000188, 000000000000000000000198, 0000000000000000000001a8, 0000000000000000000001b8, 0000000000000000000001c8, 0000000000000000000001d8, 0000000000000000000001e8, 0000000000000000000001f8, 000000000000000000000208, 000000000000000000000218, 000000000000000000000228, 000000000000000000000238, 000000000000000000000248, 000000000000000000000258, 000000000000000000000268, 000000000000000000000278, 000000000000000000000288, 000000000000000000000298, 0000000000000000000002a8, 0000000000000000000002b8, ); path = examples; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 000000000000000000000006 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000009; buildPhases = ( 00000000000000000000000b, ); buildRules = ( ); dependencies = ( ); name = mysqlpp; productReference = 00000000000000000000000a; productType = "com.apple.product-type.library.dynamic"; }; 00000000000000000000004d = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000050; buildPhases = ( 000000000000000000000052, ); buildRules = ( ); dependencies = ( 00000000000000000000004a, 00000000000000000000004c, ); name = ssqls2parse; productReference = 000000000000000000000051; productType = "com.apple.product-type.library.static"; }; 00000000000000000000005e = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000061; buildPhases = ( 000000000000000000000063, ); buildRules = ( ); dependencies = ( 00000000000000000000005b, 00000000000000000000005d, ); name = ssqlsxlat; productReference = 000000000000000000000062; productType = "com.apple.product-type.tool"; }; 00000000000000000000006e = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000071; buildPhases = ( 000000000000000000000073, ); buildRules = ( ); dependencies = ( 00000000000000000000006d, ); name = test_array_index; productReference = 000000000000000000000072; productType = "com.apple.product-type.tool"; }; 00000000000000000000007b = { isa = PBXNativeTarget; buildConfigurationList = 00000000000000000000007e; buildPhases = ( 000000000000000000000080, ); buildRules = ( ); dependencies = ( 00000000000000000000007a, ); name = test_cpool; productReference = 00000000000000000000007f; productType = "com.apple.product-type.tool"; }; 000000000000000000000087 = { isa = PBXNativeTarget; buildConfigurationList = 00000000000000000000008a; buildPhases = ( 00000000000000000000008c, ); buildRules = ( ); dependencies = ( 000000000000000000000086, ); name = test_datetime; productReference = 00000000000000000000008b; productType = "com.apple.product-type.tool"; }; 000000000000000000000093 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000096; buildPhases = ( 000000000000000000000098, ); buildRules = ( ); dependencies = ( 000000000000000000000092, ); name = test_inttypes; productReference = 000000000000000000000097; productType = "com.apple.product-type.tool"; }; 00000000000000000000009f = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000a2; buildPhases = ( 0000000000000000000000a4, ); buildRules = ( ); dependencies = ( 00000000000000000000009e, ); name = test_insertpolicy; productReference = 0000000000000000000000a3; productType = "com.apple.product-type.tool"; }; 0000000000000000000000ab = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000ae; buildPhases = ( 0000000000000000000000b0, ); buildRules = ( ); dependencies = ( 0000000000000000000000aa, ); name = test_manip; productReference = 0000000000000000000000af; productType = "com.apple.product-type.tool"; }; 0000000000000000000000b7 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000ba; buildPhases = ( 0000000000000000000000bc, ); buildRules = ( ); dependencies = ( 0000000000000000000000b6, ); name = test_null_comparison; productReference = 0000000000000000000000bb; productType = "com.apple.product-type.tool"; }; 0000000000000000000000c3 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000c6; buildPhases = ( 0000000000000000000000c8, ); buildRules = ( ); dependencies = ( 0000000000000000000000c2, ); name = test_query_copy; productReference = 0000000000000000000000c7; productType = "com.apple.product-type.tool"; }; 0000000000000000000000cf = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000d2; buildPhases = ( 0000000000000000000000d4, ); buildRules = ( ); dependencies = ( 0000000000000000000000ce, ); name = test_qssqls; productReference = 0000000000000000000000d3; productType = "com.apple.product-type.tool"; }; 0000000000000000000000db = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000de; buildPhases = ( 0000000000000000000000e0, ); buildRules = ( ); dependencies = ( 0000000000000000000000da, ); name = test_qstream; productReference = 0000000000000000000000df; productType = "com.apple.product-type.tool"; }; 0000000000000000000000e7 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000ea; buildPhases = ( 0000000000000000000000ec, ); buildRules = ( ); dependencies = ( 0000000000000000000000e6, ); name = test_sqlstream; productReference = 0000000000000000000000eb; productType = "com.apple.product-type.tool"; }; 0000000000000000000000f5 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000000f8; buildPhases = ( 0000000000000000000000fa, ); buildRules = ( ); dependencies = ( 0000000000000000000000f2, 0000000000000000000000f4, ); name = test_ssqls2; productReference = 0000000000000000000000f9; productType = "com.apple.product-type.tool"; }; 000000000000000000000103 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000106; buildPhases = ( 000000000000000000000108, ); buildRules = ( ); dependencies = ( 000000000000000000000102, ); name = test_string; productReference = 000000000000000000000107; productType = "com.apple.product-type.tool"; }; 00000000000000000000010f = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000112; buildPhases = ( 000000000000000000000114, ); buildRules = ( ); dependencies = ( 00000000000000000000010e, ); name = test_tcp; productReference = 000000000000000000000113; productType = "com.apple.product-type.tool"; }; 00000000000000000000011b = { isa = PBXNativeTarget; buildConfigurationList = 00000000000000000000011e; buildPhases = ( 000000000000000000000120, ); buildRules = ( ); dependencies = ( 00000000000000000000011a, ); name = test_uds; productReference = 00000000000000000000011f; productType = "com.apple.product-type.tool"; }; 000000000000000000000127 = { isa = PBXNativeTarget; buildConfigurationList = 00000000000000000000012a; buildPhases = ( 00000000000000000000012c, ); buildRules = ( ); dependencies = ( 000000000000000000000126, ); name = test_wnp; productReference = 00000000000000000000012b; productType = "com.apple.product-type.tool"; }; 000000000000000000000133 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000136; buildPhases = ( 000000000000000000000138, ); buildRules = ( ); dependencies = ( 000000000000000000000132, ); name = excommon; productReference = 000000000000000000000137; productType = "com.apple.product-type.library.static"; }; 000000000000000000000142 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000145; buildPhases = ( 000000000000000000000147, ); buildRules = ( ); dependencies = ( 00000000000000000000013f, 000000000000000000000141, ); name = cgi_jpeg; productReference = 000000000000000000000146; productType = "com.apple.product-type.tool"; }; 000000000000000000000152 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000155; buildPhases = ( 000000000000000000000157, ); buildRules = ( ); dependencies = ( 00000000000000000000014f, 000000000000000000000151, ); name = cpool; productReference = 000000000000000000000156; productType = "com.apple.product-type.tool"; }; 000000000000000000000162 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000165; buildPhases = ( 000000000000000000000167, ); buildRules = ( ); dependencies = ( 00000000000000000000015f, 000000000000000000000161, ); name = dbinfo; productReference = 000000000000000000000166; productType = "com.apple.product-type.tool"; }; 000000000000000000000172 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000175; buildPhases = ( 000000000000000000000177, ); buildRules = ( ); dependencies = ( 00000000000000000000016f, 000000000000000000000171, ); name = deadlock; productReference = 000000000000000000000176; productType = "com.apple.product-type.tool"; }; 000000000000000000000182 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000185; buildPhases = ( 000000000000000000000187, ); buildRules = ( ); dependencies = ( 00000000000000000000017f, 000000000000000000000181, ); name = fieldinf; productReference = 000000000000000000000186; productType = "com.apple.product-type.tool"; }; 000000000000000000000192 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000195; buildPhases = ( 000000000000000000000197, ); buildRules = ( ); dependencies = ( 00000000000000000000018f, 000000000000000000000191, ); name = for_each; productReference = 000000000000000000000196; productType = "com.apple.product-type.tool"; }; 0000000000000000000001a2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001a5; buildPhases = ( 0000000000000000000001a7, ); buildRules = ( ); dependencies = ( 00000000000000000000019f, 0000000000000000000001a1, ); name = load_jpeg; productReference = 0000000000000000000001a6; productType = "com.apple.product-type.tool"; }; 0000000000000000000001b2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001b5; buildPhases = ( 0000000000000000000001b7, ); buildRules = ( ); dependencies = ( 0000000000000000000001af, 0000000000000000000001b1, ); name = multiquery; productReference = 0000000000000000000001b6; productType = "com.apple.product-type.tool"; }; 0000000000000000000001c2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001c5; buildPhases = ( 0000000000000000000001c7, ); buildRules = ( ); dependencies = ( 0000000000000000000001bf, 0000000000000000000001c1, ); name = resetdb; productReference = 0000000000000000000001c6; productType = "com.apple.product-type.tool"; }; 0000000000000000000001d2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001d5; buildPhases = ( 0000000000000000000001d7, ); buildRules = ( ); dependencies = ( 0000000000000000000001cf, 0000000000000000000001d1, ); name = simple1; productReference = 0000000000000000000001d6; productType = "com.apple.product-type.tool"; }; 0000000000000000000001e2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001e5; buildPhases = ( 0000000000000000000001e7, ); buildRules = ( ); dependencies = ( 0000000000000000000001df, 0000000000000000000001e1, ); name = simple2; productReference = 0000000000000000000001e6; productType = "com.apple.product-type.tool"; }; 0000000000000000000001f2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000001f5; buildPhases = ( 0000000000000000000001f7, ); buildRules = ( ); dependencies = ( 0000000000000000000001ef, 0000000000000000000001f1, ); name = simple3; productReference = 0000000000000000000001f6; productType = "com.apple.product-type.tool"; }; 000000000000000000000202 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000205; buildPhases = ( 000000000000000000000207, ); buildRules = ( ); dependencies = ( 0000000000000000000001ff, 000000000000000000000201, ); name = ssqls1; productReference = 000000000000000000000206; productType = "com.apple.product-type.tool"; }; 000000000000000000000212 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000215; buildPhases = ( 000000000000000000000217, ); buildRules = ( ); dependencies = ( 00000000000000000000020f, 000000000000000000000211, ); name = ssqls2; productReference = 000000000000000000000216; productType = "com.apple.product-type.tool"; }; 000000000000000000000222 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000225; buildPhases = ( 000000000000000000000227, ); buildRules = ( ); dependencies = ( 00000000000000000000021f, 000000000000000000000221, ); name = ssqls3; productReference = 000000000000000000000226; productType = "com.apple.product-type.tool"; }; 000000000000000000000232 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000235; buildPhases = ( 000000000000000000000237, ); buildRules = ( ); dependencies = ( 00000000000000000000022f, 000000000000000000000231, ); name = ssqls4; productReference = 000000000000000000000236; productType = "com.apple.product-type.tool"; }; 000000000000000000000242 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000245; buildPhases = ( 000000000000000000000247, ); buildRules = ( ); dependencies = ( 00000000000000000000023f, 000000000000000000000241, ); name = ssqls5; productReference = 000000000000000000000246; productType = "com.apple.product-type.tool"; }; 000000000000000000000252 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000255; buildPhases = ( 000000000000000000000257, ); buildRules = ( ); dependencies = ( 00000000000000000000024f, 000000000000000000000251, ); name = ssqls6; productReference = 000000000000000000000256; productType = "com.apple.product-type.tool"; }; 000000000000000000000262 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000265; buildPhases = ( 000000000000000000000267, ); buildRules = ( ); dependencies = ( 00000000000000000000025f, 000000000000000000000261, ); name = store_if; productReference = 000000000000000000000266; productType = "com.apple.product-type.tool"; }; 000000000000000000000272 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000275; buildPhases = ( 000000000000000000000277, ); buildRules = ( ); dependencies = ( 00000000000000000000026f, 000000000000000000000271, ); name = tquery1; productReference = 000000000000000000000276; productType = "com.apple.product-type.tool"; }; 000000000000000000000282 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000285; buildPhases = ( 000000000000000000000287, ); buildRules = ( ); dependencies = ( 00000000000000000000027f, 000000000000000000000281, ); name = tquery2; productReference = 000000000000000000000286; productType = "com.apple.product-type.tool"; }; 000000000000000000000292 = { isa = PBXNativeTarget; buildConfigurationList = 000000000000000000000295; buildPhases = ( 000000000000000000000297, ); buildRules = ( ); dependencies = ( 00000000000000000000028f, 000000000000000000000291, ); name = tquery3; productReference = 000000000000000000000296; productType = "com.apple.product-type.tool"; }; 0000000000000000000002a2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000002a5; buildPhases = ( 0000000000000000000002a7, ); buildRules = ( ); dependencies = ( 00000000000000000000029f, 0000000000000000000002a1, ); name = tquery4; productReference = 0000000000000000000002a6; productType = "com.apple.product-type.tool"; }; 0000000000000000000002b2 = { isa = PBXNativeTarget; buildConfigurationList = 0000000000000000000002b5; buildPhases = ( 0000000000000000000002b7, ); buildRules = ( ); dependencies = ( 0000000000000000000002af, 0000000000000000000002b1, ); name = transaction; productReference = 0000000000000000000002b6; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9" = { isa = PBXProject; buildConfigurationList = 000000000000000000000003; hasScannedForEncodings = 1; mainGroup = 000000000000000000000004; productRefGroup = 000000000000000000000005; projectDirPath = ""; targets = ( 000000000000000000000006, 00000000000000000000004d, 00000000000000000000005e, 00000000000000000000006e, 00000000000000000000007b, 000000000000000000000087, 000000000000000000000093, 00000000000000000000009f, 0000000000000000000000ab, 0000000000000000000000b7, 0000000000000000000000c3, 0000000000000000000000cf, 0000000000000000000000db, 0000000000000000000000e7, 0000000000000000000000f5, 000000000000000000000103, 00000000000000000000010f, 00000000000000000000011b, 000000000000000000000127, 000000000000000000000133, 000000000000000000000142, 000000000000000000000152, 000000000000000000000162, 000000000000000000000172, 000000000000000000000182, 000000000000000000000192, 0000000000000000000001a2, 0000000000000000000001b2, 0000000000000000000001c2, 0000000000000000000001d2, 0000000000000000000001e2, 0000000000000000000001f2, 000000000000000000000202, 000000000000000000000212, 000000000000000000000222, 000000000000000000000232, 000000000000000000000242, 000000000000000000000252, 000000000000000000000262, 000000000000000000000272, 000000000000000000000282, 000000000000000000000292, 0000000000000000000002a2, 0000000000000000000002b2, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ 00000000000000000000000b = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000000e, 000000000000000000000010, 000000000000000000000012, 000000000000000000000014, 000000000000000000000016, 000000000000000000000018, 00000000000000000000001a, 00000000000000000000001c, 00000000000000000000001e, 000000000000000000000020, 000000000000000000000022, 000000000000000000000024, 000000000000000000000026, 000000000000000000000028, 00000000000000000000002a, 00000000000000000000002c, 00000000000000000000002e, 000000000000000000000030, 000000000000000000000032, 000000000000000000000034, 000000000000000000000036, 000000000000000000000038, 00000000000000000000003a, 00000000000000000000003c, 00000000000000000000003e, 000000000000000000000040, 000000000000000000000042, 000000000000000000000044, 000000000000000000000046, 000000000000000000000048, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000052 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000055, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000063 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000065, 000000000000000000000067, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000073 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000076, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000080 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000082, ); runOnlyForDeploymentPostprocessing = 0; }; 00000000000000000000008c = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000008e, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000098 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000009a, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000a4 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000a6, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000b0 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000b2, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000bc = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000be, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000c8 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000ca, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000d4 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000d6, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000e0 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000e2, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000ec = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000ee, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000000fa = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000000fc, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000108 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000010a, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000114 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000116, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000120 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000122, ); runOnlyForDeploymentPostprocessing = 0; }; 00000000000000000000012c = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000012e, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000138 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 00000000000000000000013b, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000147 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000149, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000157 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000159, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000167 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000169, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000177 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000179, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000187 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000189, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000197 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000199, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001a7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001a9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001b7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001b9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001c7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001c9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001d7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001d9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001e7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001e9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000001f7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000001f9, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000207 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000209, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000217 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000219, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000227 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000229, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000237 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000239, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000247 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000249, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000257 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000259, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000267 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000269, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000277 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000279, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000287 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000289, ); runOnlyForDeploymentPostprocessing = 0; }; 000000000000000000000297 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 000000000000000000000299, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000002a7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000002a9, ); runOnlyForDeploymentPostprocessing = 0; }; 0000000000000000000002b7 = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0000000000000000000002b9, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 00000000000000000000004a = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000049; }; 00000000000000000000004c = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000004b; }; 000000000000000000000057 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000056; }; 000000000000000000000059 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000058; }; 00000000000000000000005b = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000005a; }; 00000000000000000000005d = { isa = PBXTargetDependency; target = 00000000000000000000004d; targetProxy = 00000000000000000000005c; }; 000000000000000000000069 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000068; }; 00000000000000000000006b = { isa = PBXTargetDependency; target = 00000000000000000000004d; targetProxy = 00000000000000000000006a; }; 00000000000000000000006d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000006c; }; 000000000000000000000078 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000077; }; 00000000000000000000007a = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000079; }; 000000000000000000000084 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000083; }; 000000000000000000000086 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000085; }; 000000000000000000000090 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000008f; }; 000000000000000000000092 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000091; }; 00000000000000000000009c = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000009b; }; 00000000000000000000009e = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000009d; }; 0000000000000000000000a8 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000a7; }; 0000000000000000000000aa = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000a9; }; 0000000000000000000000b4 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000b3; }; 0000000000000000000000b6 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000b5; }; 0000000000000000000000c0 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000bf; }; 0000000000000000000000c2 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000c1; }; 0000000000000000000000cc = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000cb; }; 0000000000000000000000ce = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000cd; }; 0000000000000000000000d8 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000d7; }; 0000000000000000000000da = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000d9; }; 0000000000000000000000e4 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000e3; }; 0000000000000000000000e6 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000e5; }; 0000000000000000000000f0 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000ef; }; 0000000000000000000000f2 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000f1; }; 0000000000000000000000f4 = { isa = PBXTargetDependency; target = 00000000000000000000004d; targetProxy = 0000000000000000000000f3; }; 0000000000000000000000fe = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000000fd; }; 000000000000000000000100 = { isa = PBXTargetDependency; target = 00000000000000000000004d; targetProxy = 0000000000000000000000ff; }; 000000000000000000000102 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000101; }; 00000000000000000000010c = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000010b; }; 00000000000000000000010e = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000010d; }; 000000000000000000000118 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000117; }; 00000000000000000000011a = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000119; }; 000000000000000000000124 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000123; }; 000000000000000000000126 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000125; }; 000000000000000000000130 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000012f; }; 000000000000000000000132 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000131; }; 00000000000000000000013d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000013c; }; 00000000000000000000013f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000013e; }; 000000000000000000000141 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000140; }; 00000000000000000000014b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000014a; }; 00000000000000000000014d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000014c; }; 00000000000000000000014f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000014e; }; 000000000000000000000151 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000150; }; 00000000000000000000015b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000015a; }; 00000000000000000000015d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000015c; }; 00000000000000000000015f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000015e; }; 000000000000000000000161 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000160; }; 00000000000000000000016b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000016a; }; 00000000000000000000016d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000016c; }; 00000000000000000000016f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000016e; }; 000000000000000000000171 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000170; }; 00000000000000000000017b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000017a; }; 00000000000000000000017d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000017c; }; 00000000000000000000017f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000017e; }; 000000000000000000000181 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000180; }; 00000000000000000000018b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000018a; }; 00000000000000000000018d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000018c; }; 00000000000000000000018f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000018e; }; 000000000000000000000191 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000190; }; 00000000000000000000019b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000019a; }; 00000000000000000000019d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000019c; }; 00000000000000000000019f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000019e; }; 0000000000000000000001a1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001a0; }; 0000000000000000000001ab = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001aa; }; 0000000000000000000001ad = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001ac; }; 0000000000000000000001af = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ae; }; 0000000000000000000001b1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001b0; }; 0000000000000000000001bb = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ba; }; 0000000000000000000001bd = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001bc; }; 0000000000000000000001bf = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001be; }; 0000000000000000000001c1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001c0; }; 0000000000000000000001cb = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ca; }; 0000000000000000000001cd = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001cc; }; 0000000000000000000001cf = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ce; }; 0000000000000000000001d1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001d0; }; 0000000000000000000001db = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001da; }; 0000000000000000000001dd = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001dc; }; 0000000000000000000001df = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001de; }; 0000000000000000000001e1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001e0; }; 0000000000000000000001eb = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ea; }; 0000000000000000000001ed = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001ec; }; 0000000000000000000001ef = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001ee; }; 0000000000000000000001f1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001f0; }; 0000000000000000000001fb = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001fa; }; 0000000000000000000001fd = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000001fc; }; 0000000000000000000001ff = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000001fe; }; 000000000000000000000201 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000200; }; 00000000000000000000020b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000020a; }; 00000000000000000000020d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000020c; }; 00000000000000000000020f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000020e; }; 000000000000000000000211 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000210; }; 00000000000000000000021b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000021a; }; 00000000000000000000021d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000021c; }; 00000000000000000000021f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000021e; }; 000000000000000000000221 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000220; }; 00000000000000000000022b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000022a; }; 00000000000000000000022d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000022c; }; 00000000000000000000022f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000022e; }; 000000000000000000000231 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000230; }; 00000000000000000000023b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000023a; }; 00000000000000000000023d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000023c; }; 00000000000000000000023f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000023e; }; 000000000000000000000241 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000240; }; 00000000000000000000024b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000024a; }; 00000000000000000000024d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000024c; }; 00000000000000000000024f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000024e; }; 000000000000000000000251 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000250; }; 00000000000000000000025b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000025a; }; 00000000000000000000025d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000025c; }; 00000000000000000000025f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000025e; }; 000000000000000000000261 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000260; }; 00000000000000000000026b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000026a; }; 00000000000000000000026d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000026c; }; 00000000000000000000026f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000026e; }; 000000000000000000000271 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000270; }; 00000000000000000000027b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000027a; }; 00000000000000000000027d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000027c; }; 00000000000000000000027f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000027e; }; 000000000000000000000281 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000280; }; 00000000000000000000028b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000028a; }; 00000000000000000000028d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000028c; }; 00000000000000000000028f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000028e; }; 000000000000000000000291 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 000000000000000000000290; }; 00000000000000000000029b = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000029a; }; 00000000000000000000029d = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 00000000000000000000029c; }; 00000000000000000000029f = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 00000000000000000000029e; }; 0000000000000000000002a1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000002a0; }; 0000000000000000000002ab = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000002aa; }; 0000000000000000000002ad = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000002ac; }; 0000000000000000000002af = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000002ae; }; 0000000000000000000002b1 = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000002b0; }; 0000000000000000000002bb = { isa = PBXTargetDependency; target = 000000000000000000000133; targetProxy = 0000000000000000000002ba; }; 0000000000000000000002bd = { isa = PBXTargetDependency; target = 000000000000000000000006; targetProxy = 0000000000000000000002bc; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 000000000000000000000001 = { isa = XCBuildConfiguration; buildSettings = { }; name = Debug; }; 000000000000000000000002 = { isa = XCBuildConfiguration; buildSettings = { }; name = Release; }; 000000000000000000000007 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = /usr/local/mysql/lib; OTHER_LDFLAGS = "-lmysqlclient"; PRODUCT_NAME = libmysqlpp_d; USER_HEADER_SEARCH_PATHS = /usr/local/mysql/include; }; name = Debug; }; 000000000000000000000008 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = /usr/local/mysql/lib; OTHER_LDFLAGS = "-lmysqlclient"; PRODUCT_NAME = libmysqlpp; USER_HEADER_SEARCH_PATHS = /usr/local/mysql/include; }; name = Release; }; 00000000000000000000004e = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = mysqlpp_ssqls2parse; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include ."; }; name = Debug; }; 00000000000000000000004f = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = mysqlpp_ssqls2parse; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include ."; }; name = Release; }; 00000000000000000000005f = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d -lmysqlpp_ssqls2parse -lmysqlpp"; PRODUCT_NAME = ssqlsxlat; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000060 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp"; PRODUCT_NAME = ssqlsxlat; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 00000000000000000000006f = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_array_index; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000070 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_array_index; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 00000000000000000000007c = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_cpool; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 00000000000000000000007d = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_cpool; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000088 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_datetime; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000089 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_datetime; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000094 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_inttypes; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000095 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_inttypes; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000a0 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_insertpolicy; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000a1 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_insertpolicy; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000ac = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_manip; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000ad = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_manip; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000b8 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_null_comparison; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000b9 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_null_comparison; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000c4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_query_copy; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000c5 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_query_copy; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000d0 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_qssqls; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000d1 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_qssqls; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000dc = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_qstream; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000dd = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_qstream; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000e8 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_sqlstream; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000e9 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_sqlstream; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000000f6 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d -lmysqlpp_ssqls2parse -lmysqlpp"; PRODUCT_NAME = test_ssqls2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000000f7 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp"; PRODUCT_NAME = test_ssqls2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000104 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_string; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000105 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_string; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000110 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_tcp; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000111 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_tcp; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 00000000000000000000011c = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_uds; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 00000000000000000000011d = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_uds; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000128 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = test_wnp; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000129 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = test_wnp; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000134 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = mysqlpp_excommon; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000135 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlclient -lmysqlpp"; PRODUCT_NAME = mysqlpp_excommon; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000143 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = cgi_jpeg; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000144 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = cgi_jpeg; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000153 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = cpool; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000154 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = cpool; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000163 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = dbinfo; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000164 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = dbinfo; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000173 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = deadlock; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000174 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = deadlock; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000183 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = fieldinf; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000184 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = fieldinf; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000193 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = for_each; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000194 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = for_each; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001a3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = load_jpeg; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001a4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = load_jpeg; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001b3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = multiquery; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001b4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = multiquery; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001c3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = resetdb; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001c4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = resetdb; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001d3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = simple1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001d4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = simple1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001e3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = simple2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001e4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = simple2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000001f3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = simple3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000001f4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = simple3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000203 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000204 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000213 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000214 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000223 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000224 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000233 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls4; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000234 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls4; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000243 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls5; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000244 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls5; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000253 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = ssqls6; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000254 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = ssqls6; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000263 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = store_if; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000264 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = store_if; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000273 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = tquery1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000274 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = tquery1; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000283 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = tquery2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000284 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = tquery2; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 000000000000000000000293 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = tquery3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 000000000000000000000294 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = tquery3; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000002a3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = tquery4; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000002a4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = tquery4; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; 0000000000000000000002b3 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp_d"; PRODUCT_NAME = transaction; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Debug; }; 0000000000000000000002b4 = { isa = XCBuildConfiguration; buildSettings = { GCC_ENABLE_CPP_RTTI = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "HAVE_POSIX_GETOPT MYSQLPP_XCODE"; LIBRARY_SEARCH_PATHS = ". /usr/local/mysql/lib"; OTHER_LDFLAGS = "-lmysqlclient -lmysqlpp_excommon -lmysqlclient -lmysqlpp"; PRODUCT_NAME = transaction; USER_HEADER_SEARCH_PATHS = "lib /usr/local/mysql/include /usr/local/mysql/include"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 000000000000000000000003 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000001, 000000000000000000000002, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000009 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000007, 000000000000000000000008, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000050 = { isa = XCConfigurationList; buildConfigurations = ( 00000000000000000000004e, 00000000000000000000004f, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000061 = { isa = XCConfigurationList; buildConfigurations = ( 00000000000000000000005f, 000000000000000000000060, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000071 = { isa = XCConfigurationList; buildConfigurations = ( 00000000000000000000006f, 000000000000000000000070, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 00000000000000000000007e = { isa = XCConfigurationList; buildConfigurations = ( 00000000000000000000007c, 00000000000000000000007d, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 00000000000000000000008a = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000088, 000000000000000000000089, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000096 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000094, 000000000000000000000095, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000a2 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000a0, 0000000000000000000000a1, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000ae = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000ac, 0000000000000000000000ad, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000ba = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000b8, 0000000000000000000000b9, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000c6 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000c4, 0000000000000000000000c5, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000d2 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000d0, 0000000000000000000000d1, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000de = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000dc, 0000000000000000000000dd, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000ea = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000e8, 0000000000000000000000e9, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000000f8 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000000f6, 0000000000000000000000f7, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000106 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000104, 000000000000000000000105, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000112 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000110, 000000000000000000000111, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 00000000000000000000011e = { isa = XCConfigurationList; buildConfigurations = ( 00000000000000000000011c, 00000000000000000000011d, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 00000000000000000000012a = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000128, 000000000000000000000129, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000136 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000134, 000000000000000000000135, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000145 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000143, 000000000000000000000144, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000155 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000153, 000000000000000000000154, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000165 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000163, 000000000000000000000164, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000175 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000173, 000000000000000000000174, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000185 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000183, 000000000000000000000184, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000195 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000193, 000000000000000000000194, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001a5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001a3, 0000000000000000000001a4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001b5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001b3, 0000000000000000000001b4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001c5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001c3, 0000000000000000000001c4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001d5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001d3, 0000000000000000000001d4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001e5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001e3, 0000000000000000000001e4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000001f5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000001f3, 0000000000000000000001f4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000205 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000203, 000000000000000000000204, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000215 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000213, 000000000000000000000214, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000225 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000223, 000000000000000000000224, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000235 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000233, 000000000000000000000234, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000245 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000243, 000000000000000000000244, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000255 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000253, 000000000000000000000254, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000265 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000263, 000000000000000000000264, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000275 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000273, 000000000000000000000274, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000285 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000283, 000000000000000000000284, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 000000000000000000000295 = { isa = XCConfigurationList; buildConfigurations = ( 000000000000000000000293, 000000000000000000000294, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000002a5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000002a3, 0000000000000000000002a4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 0000000000000000000002b5 = { isa = XCConfigurationList; buildConfigurations = ( 0000000000000000000002b3, 0000000000000000000002b4, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; } /* End XCConfigurationList section */ ; rootObject = "EE5B4FAE-1182-5E68-B8AB-0C713C7D3AA9"; } mysql++-3.2.2+pristine.orig/rebake.bat0000644000372000001440000000003112502417162017106 0ustar robertousers@echo on bakefile_gen %* mysql++-3.2.2+pristine.orig/ssx/0000755000372000001440000000000012502417174016013 5ustar robertousersmysql++-3.2.2+pristine.orig/ssx/Doxyfile0000644000372000001440000030171412502417174017527 0ustar robertousers# Doxyfile 1.8.5 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single 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. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "MySQL++ SSQLS v2 Translator" # 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 = 3.2.2 # 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) path # into which the generated documentation will be written. 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 = ../doc # 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 causes # performance problems for the file system. # The default value is: NO. 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. # Possible values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese- # Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en, # Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES 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. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES 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. # The default value is: YES. 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 and 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. # The default value is: NO. 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. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES 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 # The default value is: YES. FULL_PATH_NAMES = NO # 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. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. 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 list of 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 is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. 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-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. 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 Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. 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 behavior. 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 behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. 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. # The default value is: NO. 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. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act 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 = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # 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. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. 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. # The default value is: NO. 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, # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. 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 For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by by putting a % sign in front of the word # or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # 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); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) 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. # The default value is: NO. 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 will make # doxygen to 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. # The default value is: YES. 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. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES 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. # The default value is: YES. SUBGROUPING = NO # 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). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef 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, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag 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. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_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 respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. 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. Does not have any effect # for Java sources. # The default value is: YES. 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 only methods in the interface are # included. # The default value is: NO. 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 namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO 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. # The default value is: NO. 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 these classes will be included in the various overviews. This option has # no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. 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 these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. 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 then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. 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. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. 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. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES 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. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO the members will appear in declaration order. # The default value is: NO. SORT_BRIEF_DOCS = NO # 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 constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # 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 group names will # appear in their defined order. # The default value is: NO. 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 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. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # 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. # The default value is: NO. 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. # The default value is: YES. 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. # The default value is: YES. 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. # The default value is: YES. 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. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have 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 value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. 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. # The default value is: YES. SHOW_USED_FILES = YES # 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 value 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 value 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 command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. 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. To 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. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This 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. To use this feature you need bibtex and perl available in the # search path. Do not use file names with spaces, bibtex cannot handle them. See # also \cite for info how to create references. 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 to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag 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. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag 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. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This 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 doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. 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) # The default value is: $file:$line: $text. 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 standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is 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. # Note: If this tag is empty the current directory is searched. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. 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 patterns (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++, *.java, *.ii, # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. FILE_PATTERNS = # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # 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 the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. 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 # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */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. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be 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. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. 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 information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none 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 also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. 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 tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # 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 that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. 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. # The default value is: NO. REFERENCED_BY_RELATION = YES # 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. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES 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. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # 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. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES 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. # See also: Section \class. # The default value is: YES. 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. # The default value is: YES. ALPHABETICAL_INDEX = NO # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. 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 a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. 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. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html/refman/ssx # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = ../doc/html/refman/_header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. 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 left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- # defined cascading style sheet that is included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. # Doxygen will copy the style sheet file to the output directory. For an example # see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_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. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # 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 (see: http://developer.apple.com/tools/xcode/), 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset 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. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # 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. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_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. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # 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. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # 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. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # 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). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. 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 (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # 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. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. 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. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # 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. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values 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. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # 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. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. 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. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. 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. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. 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 directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. 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 may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # 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 # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # 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. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /