diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2007-07-05 16:59:34 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2007-07-05 16:59:34 +0300 |
commit | 5275cce57b26482baa54ba9935a36d9c93aa4e23 (patch) | |
tree | 2da1223bdeaac2cbf7f461d6bdbb9b9415155a8e | |
parent | 769ad04453840ad92cb2a438c6f0825a76cd01f7 (diff) | |
download | librpm-tizen-5275cce57b26482baa54ba9935a36d9c93aa4e23.tar.gz librpm-tizen-5275cce57b26482baa54ba9935a36d9c93aa4e23.tar.bz2 librpm-tizen-5275cce57b26482baa54ba9935a36d9c93aa4e23.zip |
Rip out popt.
71 files changed, 4 insertions, 17966 deletions
diff --git a/Makefile.am b/Makefile.am index 62c80f54e..4cf654c67 100644 --- a/Makefile.am +++ b/Makefile.am @@ -102,7 +102,6 @@ splint: -load lib/rpmlib.lcd \ -load rpmdb/rpmdb.lcd \ -load rpmio/rpmio.lcd \ - -load popt/popt.lcd \ $(DEFS) $(INCLUDES) rpmqv.c $(rpmb_SOURCES) .PHONY: lint @@ -113,8 +112,7 @@ lint: `make -s sources -C rpmdb` \ `make -s sources -C rpmio` \ `make -s sources -C beecrypt` \ - `make -s sources -C file/src` \ - `make -s sources -C popt` + `make -s sources -C file/src` CVSTAG = r$(subst .,-,$(VERSION)) diff --git a/autogen.sh b/autogen.sh index 27d4118b6..7e710fa10 100755 --- a/autogen.sh +++ b/autogen.sh @@ -38,28 +38,13 @@ fi # XXX add missing config.rpath, kludgery around what's apparently # gettext related stuff... -for d in . popt file; do +for d in . file; do touch $d/config.rpath done -if [ -d popt ]; then - (echo "--- popt"; cd popt; ./autogen.sh --noconfigure "$@") -fi -if [ -d zlib ]; then - (echo "--- zlib"; cd zlib; ./autogen.sh --noconfigure "$@") -fi -if [ -d beecrypt ]; then - (echo "--- beecrypt"; cd beecrypt; ./autogen.sh --noconfigure "$@") -fi -if [ -d elfutils ]; then - (echo "--- elfutils"; cd elfutils; ./autogen.sh --noconfigure "$@") -fi if [ -d file ]; then (echo "--- file"; cd file; ./autogen.sh --noconfigure "$@") fi -if [ -d neon ]; then - (echo "--- neon"; cd neon; ./autogen.sh "$@") -fi echo "--- rpm" $libtoolize --copy --force diff --git a/configure.ac b/configure.ac index 06c5026f0..34b3f9d75 100644 --- a/configure.ac +++ b/configure.ac @@ -650,9 +650,6 @@ AC_CHECK_HEADERS(bzlib.h libio.h zlib.h) AC_CHECK_HEADERS(err.h mcheck.h) AC_CHECK_HEADERS(pthread.h) -dnl popt w float/double needs. -AC_CHECK_HEADERS(float.h) - AC_CHECK_HEADERS(glob.h) dnl statfs portability fiddles. @@ -1294,11 +1291,7 @@ AC_SUBST(RPM) AC_SUBST(OBJDUMP) -dnl XXX this causes popt to depend on zlib et al -dnl # XXX Propagate -lucb to popt ... -dnl export LIBS INCPATH CONFIG_SITE - -AC_CONFIG_SUBDIRS(popt file db3) +AC_CONFIG_SUBDIRS(file db3) AC_CONFIG_FILES([ Doxyfile Makefile rpmrc macros platform rpmpopt rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile @@ -1318,7 +1311,7 @@ AC_CONFIG_FILES([ Doxyfile Makefile rpmrc macros platform rpmpopt python/rpm/Makefile lua/Makefile ]) -AC_CONFIG_COMMANDS([default],[[ echo timestamp > popt/stamp-h.in +AC_CONFIG_COMMANDS([default],[[ echo timestamp > stamp-h.in ]],[[]]) diff --git a/popt/.cvsignore b/popt/.cvsignore deleted file mode 100644 index d53c8543c..000000000 --- a/popt/.cvsignore +++ /dev/null @@ -1,34 +0,0 @@ -.deps -.depend -.libs -Doxyfile -Makefile -Makefile.in -aclocal.m4 -autom4te* -config.cache -config.guess -config.h -config.h.in -config.log -config.status -config.sub -configure -doxygen -depcomp -install-sh -libtool -ltconfig -ltmain.sh -missing -stamp-h -stamp-h1 -stamp-h.in -test1 -test2 -test3 -*.la -*.lcd -*.lo -*.swp -popt-*.tar.gz diff --git a/popt/.splintrc b/popt/.splintrc deleted file mode 100644 index e0277655a..000000000 --- a/popt/.splintrc +++ /dev/null @@ -1,44 +0,0 @@ --I. -DHAVE_CONFIG_H -D_GNU_SOURCE - -#+partial -+forcehints - --warnposix - -+unixlib - --unrecogcomments # XXX ignore doxygen markings - -+strict # lclint level - -# --- in progress -+bounds --bufferoverflowhigh - -# --- +partial artifacts - -# --- not-yet at strict level --bitwisesigned # 75 --elseifcomplete # 18 --exportfcn # 25 --ifblock # 202 --namechecks # 206 --ptrarith # 43 - --mustdefine # 10 --shiftimplementation # 120 --sys-dir-errors - --strictops # 16 --whileblock # 10 - -# --- not-yet at checks level --mustfree # 52 --predboolptr # 62 --usedef # 1 - -# --- not-yet at standard level --boolops # 112 --predboolint # 30 -+charint # 3 -+ignorequals # 13 diff --git a/popt/ABOUT-NLS b/popt/ABOUT-NLS deleted file mode 100644 index 5fde45a0b..000000000 --- a/popt/ABOUT-NLS +++ /dev/null @@ -1,324 +0,0 @@ -Notes on the Free Translation Project -************************************* - - Free software is going international! The Free Translation Project -is a way to get maintainers of free software, translators, and users all -together, so that will gradually become able to speak many languages. -A few packages already provide translations for their messages. - - If you found this `ABOUT-NLS' file inside a distribution, you may -assume that the distributed package does use GNU `gettext' internally, -itself available at your nearest GNU archive site. But you do _not_ -need to install GNU `gettext' prior to configuring, installing or using -this package with messages translated. - - Installers will find here some useful hints. These notes also -explain how users should proceed for getting the programs to use the -available translations. They tell how people wanting to contribute and -work at translations should contact the appropriate team. - - When reporting bugs in the `intl/' directory or bugs which may be -related to internationalization, you should tell about the version of -`gettext' which is used. The information can be found in the -`intl/VERSION' file, in internationalized packages. - -Quick configuration advice -========================== - - If you want to exploit the full power of internationalization, you -should configure it using - - ./configure --with-included-gettext - -to force usage of internationalizing routines provided within this -package, despite the existence of internationalizing capabilities in the -operating system where this package is being installed. So far, only -the `gettext' implementation in the GNU C library version 2 provides as -many features (such as locale alias, message inheritance, automatic -charset conversion or plural form handling) as the implementation here. -It is also not possible to offer this additional functionality on top -of a `catgets' implementation. Future versions of GNU `gettext' will -very likely convey even more functionality. So it might be a good idea -to change to GNU `gettext' as soon as possible. - - So you need _not_ provide this option if you are using GNU libc 2 or -you have installed a recent copy of the GNU gettext package with the -included `libintl'. - -INSTALL Matters -=============== - - Some packages are "localizable" when properly installed; the -programs they contain can be made to speak your own native language. -Most such packages use GNU `gettext'. Other packages have their own -ways to internationalization, predating GNU `gettext'. - - By default, this package will be installed to allow translation of -messages. It will automatically detect whether the system already -provides the GNU `gettext' functions. If not, the GNU `gettext' own -library will be used. This library is wholly contained within this -package, usually in the `intl/' subdirectory, so prior installation of -the GNU `gettext' package is _not_ required. Installers may use -special options at configuration time for changing the default -behaviour. The commands: - - ./configure --with-included-gettext - ./configure --disable-nls - -will respectively bypass any pre-existing `gettext' to use the -internationalizing routines provided within this package, or else, -_totally_ disable translation of messages. - - When you already have GNU `gettext' installed on your system and run -configure without an option for your new package, `configure' will -probably detect the previously built and installed `libintl.a' file and -will decide to use this. This might be not what is desirable. You -should use the more recent version of the GNU `gettext' library. I.e. -if the file `intl/VERSION' shows that the library which comes with this -package is more recent, you should use - - ./configure --with-included-gettext - -to prevent auto-detection. - - The configuration process will not test for the `catgets' function -and therefore it will not be used. The reason is that even an -emulation of `gettext' on top of `catgets' could not provide all the -extensions of the GNU `gettext' library. - - Internationalized packages have usually many `po/LL.po' files, where -LL gives an ISO 639 two-letter code identifying the language. Unless -translations have been forbidden at `configure' time by using the -`--disable-nls' switch, all available translations are installed -together with the package. However, the environment variable `LINGUAS' -may be set, prior to configuration, to limit the installed set. -`LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -Using This Package -================== - - As a user, if your language has been installed for this package, you -only have to set the `LANG' environment variable to the appropriate -`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, -and `CC' is an ISO 3166 two-letter country code. For example, let's -suppose that you speak German and live in Germany. At the shell -prompt, merely execute `setenv LANG de_DE' (in `csh'), -`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). -This can be done from your `.login' or `.profile' file, once and for -all. - - You might think that the country code specification is redundant. -But in fact, some languages have dialects in different countries. For -example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The -country code serves to distinguish the dialects. - - Not all programs have translations for all languages. By default, an -English message is shown in place of a nonexistent translation. If you -understand other languages, you can set up a priority list of languages. -This is done through a different environment variable, called -`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' -for the purpose of message handling, but you still need to have `LANG' -set to the primary language; this is required by other parts of the -system libraries. For example, some Swedish users who would rather -read translations in German than English for when Swedish is not -available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. - - In the `LANGUAGE' environment variable, but not in the `LANG' -environment variable, `LL_CC' combinations can be abbreviated as `LL' -to denote the language's main dialect. For example, `de' is equivalent -to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' -(Portuguese as spoken in Portugal) in this context. - -Translating Teams -================= - - For the Free Translation Project to be a success, we need interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -Each translation team has its own mailing list. The up-to-date list of -teams can be found at the Free Translation Project's homepage, -`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" -area. - - If you'd like to volunteer to _work_ at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is _not_ the same as the list itself, it has -`-request' appended. For example, speakers of Swedish can send a -message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate -_actively_ in translations, or at solving translational difficulties, -rather than merely lurking around. If your team does not exist yet and -you want to start one, or if you are unsure about what to do or how to -get started, please write to `translation@iro.umontreal.ca' to reach the -coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skill are praised more than -programming skill, here. - -Available Packages -================== - - Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of September -2001. The matrix shows, in regard of each package, for which languages -PO files have been submitted to translation coordination, with a -translation percentage of at least 50%. - - Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja - +----------------------------------------------------+ - a2ps | [] [] [] | - bash | [] [] [] [] | - bfd | | - binutils | [] | - bison | [] [] [] [] [] | - clisp | [] [] [] [] | - cpio | [] [] [] [] [] | - diffutils | [] [] [] [] [] [] [] | - enscript | [] [] | - error | [] [] | - fetchmail | | - fileutils | [] [] [] [] [] [] [] [] | - findutils | [] [] [] [] [] [] [] [] | - flex | [] [] [] | - freetype | | - gas | | - gawk | [] [] | - gcal | | - gcc | | - gettext | [] [] [] [] [] [] [] [] [] [] | - gnupg | [] [] [] [] [] [] [] | - gprof | | - grep | [] [] [] [] [] [] [] [] | - hello | [] [] [] [] [] [] [] [] [] [] [] | - id-utils | [] [] [] | - indent | [] [] [] [] [] | - jpilot | [] | - kbd | | - ld | [] | - libc | [] [] [] [] [] [] [] [] | - lilypond | [] | - lynx | [] [] [] [] | - m4 | [] [] [] [] [] [] [] [] | - make | [] [] [] [] [] [] | - mysecretdiary | [] | - nano | [] [] [] | - opcodes | | - parted | [] [] [] | - ptx | [] [] [] [] [] [] [] | - python | | - recode | [] [] [] [] [] [] [] [] [] | - sed | [] [] [] [] [] [] [] [] [] [] [] [] | - sh-utils | [] [] [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] [] [] [] [] | - sketch | | - soundtracker | [] [] [] | - sp | | - tar | [] [] [] [] [] [] [] [] | - texinfo | [] [] [] [] [] [] | - textutils | [] [] [] [] [] [] [] [] | - util-linux | [] [] | - wdiff | [] [] [] | - wget | [] [] [] [] [] [] [] [] [] [] | - +----------------------------------------------------+ - bg cs da de el en eo es et fi fr gl he hr id it ja - 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18 - - ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh - +----------------------------------------------------+ - a2ps | [] [] [] | 6 - bash | | 4 - bfd | | 0 - binutils | | 1 - bison | [] | 6 - clisp | [] | 5 - cpio | [] [] [] [] [] | 10 - diffutils | [] [] [] [] | 11 - enscript | [] [] [] | 5 - error | [] [] | 4 - fetchmail | | 0 - fileutils | [] [] [] [] [] [] [] [] [] | 17 - findutils | [] [] [] [] [] [] [] [] | 16 - flex | [] [] [] | 6 - freetype | | 0 - gas | | 0 - gawk | [] | 3 - gcal | | 0 - gcc | | 0 - gettext | [] [] [] [] [] [] [] [] | 18 - gnupg | [] [] [] | 10 - gprof | | 0 - grep | [] [] [] [] | 12 - hello | [] [] [] [] [] [] [] [] [] [] [] | 22 - id-utils | [] [] [] | 6 - indent | [] [] [] [] [] [] [] | 12 - jpilot | | 1 - kbd | [] | 1 - ld | | 1 - libc | [] [] [] [] [] [] [] [] | 16 - lilypond | [] [] | 3 - lynx | [] [] [] [] | 8 - m4 | [] [] [] [] | 12 - make | [] [] [] [] [] [] | 12 - mysecretdiary | | 1 - nano | [] | 4 - opcodes | [] | 1 - parted | [] [] | 5 - ptx | [] [] [] [] [] [] [] [] | 15 - python | | 0 - recode | [] [] [] [] | 13 - sed | [] [] [] [] [] [] [] | 19 - sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21 - sharutils | [] [] [] | 11 - sketch | | 0 - soundtracker | | 3 - sp | | 0 - tar | [] [] [] [] [] [] [] | 15 - texinfo | [] | 7 - textutils | [] [] [] [] [] [] [] [] | 16 - util-linux | [] [] | 4 - wdiff | [] [] [] [] | 7 - wget | [] [] [] [] [] [] [] | 17 - +----------------------------------------------------+ - 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh - 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387 - - Some counters in the preceding matrix are higher than the number of -visible blocks let us expect. This is because a few extra PO files are -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and -distributed as such by its maintainer. There might be an observable -lag between the mere existence a PO file and its wide availability in a -distribution. - - If September 2001 seems to be old, you may fetch a more recent copy -of this `ABOUT-NLS' file on most GNU archive sites. The most -up-to-date matrix with full percentage details can be found at -`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. - -Using `gettext' in new packages -=============================== - - If you are writing a freely available program and want to -internationalize it you are welcome to use GNU `gettext' in your -package. Of course you have to respect the GNU Library General Public -License which covers the use of the GNU `gettext' library. This means -in particular that even non-free programs can use `libintl' as a shared -library, whereas only free software can use `libintl' as a static -library or use modified versions of `libintl'. - - Once the sources are changed appropriately and the setup can handle -to use of `gettext' the only thing missing are the translations. The -Free Translation Project is also available for packages which are not -developed inside the GNU project. Therefore the information given above -applies also for every other Free Software Project. Contact -`translation@iro.umontreal.ca' to make the `.pot' files available to -the translation teams. - diff --git a/popt/CHANGES b/popt/CHANGES deleted file mode 100644 index db16a5fdd..000000000 --- a/popt/CHANGES +++ /dev/null @@ -1,46 +0,0 @@ -1.5 -> 1.6 - - add ability to perform callbacks for every, not just first, match. - -1.3 -> 1.5 - - heavy dose of const's - - poptParseArgvString() now NULL terminates the list - -1.2.3 -> 1.3 - - added support for single - - - misc bug fixes - - portability improvements - -1.2.2 -> 1.2.3 - - fixed memset() in help message generation (Dale Hawkins) - - added extern "C" stuff to popt.h for C++ compilers (Dale Hawkins) - - const'ified poptParseArgvString (Jeff Garzik) - -1.2.1 -> 1.2.2 - - fixed bug in chaind alias happens which seems to have only - affected --triggers in rpm - - added POPT_ARG_VAL - - popt.3 installed by default - -1.2 -> 1.2.1 - - added POPT_ARG_INTL_DOMAIN (Elliot Lee) - - updated Makefile's to be more GNUish (Elliot Lee) - -1.1 -> 1.2 - - added popt.3 man page (Robert Lynch) - - don't use mmap anymore (its lack of portability isn't worth the - trouble) - - added test script - - added support for exec - - removed support for *_POPT_ALIASES env variable -- it was a bad - idea - - reorganized into multiple source files - - added automatic help generation, POPT_AUTOHELP - - added table callbacks - - added table inclusion - - updated man page for new features - - added test scripts - -1.0 -> 1.1 - - moved to autoconf (Fred Fish) - - added STRERROR replacement (Norbert Warmuth) - - added const keywords (Bruce Perens) diff --git a/popt/COPYING b/popt/COPYING deleted file mode 100644 index b4c7ca876..000000000 --- a/popt/COPYING +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 1998 Red Hat Software - -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 -CONNECTION 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 dealings -in this Software without prior written authorization from the X Consortium. diff --git a/popt/Doxyfile.in b/popt/Doxyfile.in deleted file mode 100644 index eb92e865a..000000000 --- a/popt/Doxyfile.in +++ /dev/null @@ -1,475 +0,0 @@ -# Doxyfile 1.0.0 - -# This file describes the settings to be used by doxygen for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# General configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of word surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = @PACKAGE@ - -# 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 = @VERSION@ - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doxygen - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Dutch, French, Italian, Czech, Swedish, German and Japanese - -OUTPUT_LANGUAGE = English - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# If the EXTRACT_ALL tag is set to YES all classes and functions will be -# included in the documentation, even if no documentation was available. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members inside documented classes or files. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all -# undocumented classes. - -HIDE_UNDOC_CLASSES = NO - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# If the ALWAYS_DETAILS_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. - -STRIP_FROM_PATH = @POPT_SOURCE_PATH@/ - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a class diagram (in Html and LaTeX) for classes with base or -# super classes. Setting the tag to NO turns the diagrams off. - -CLASS_DIAGRAMS = YES - -# 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. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# If the CASE_SENSE_NAMES tag is set to NO (the default) 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. - -CASE_SENSE_NAMES = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) 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 the Qt-style comments. - -JAVADOC_AUTOBRIEF = YES - -# if the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# reimplements. - -INHERIT_DOCS = YES - -# if the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# the TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = \ - ./findme.c \ - ./findme.h \ - ./popt.c \ - ./popt.h \ - ./poptconfig.c \ - ./popthelp.c \ - ./poptint.h \ - ./poptparse.c \ - ./system.h - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -FILE_PATTERNS = *.c *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# 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. - -EXCLUDE_PATTERNS = - -# 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 = - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command <filter> <input-file>, where <filter> -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. - -INPUT_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = YES - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. - -MACRO_EXPANSION = YES - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. - -PREDEFINED = - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED tag. - -EXPAND_ONLY_PREDEF = NO - -#--------------------------------------------------------------------------- -# Configuration options related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES tag can be used to specify one or more tagfiles. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO - -# The CGI_NAME tag should be the name of the CGI script that -# starts the search engine (doxysearch) with the correct parameters. -# A script with this name will be generated by doxygen. - -CGI_NAME = search.cgi - -# The CGI_URL tag should be the absolute URL to the directory where the -# cgi binaries are located. See the documentation of your http daemon for -# details. - -CGI_URL = - -# The DOC_URL tag should be the absolute URL to the directory where the -# documentation is located. If left blank the absolute path to the -# documentation, with file:// prepended to it, will be used. - -DOC_URL = - -# The DOC_ABSPATH tag should be the absolute path to the directory where the -# documentation is located. If left blank the directory on the local machine -# will be used. - -DOC_ABSPATH = - -# The BIN_ABSPATH tag must point to the directory where the doxysearch binary -# is installed. - -BIN_ABSPATH = /usr/local/bin/ - -# The EXT_DOC_PATHS tag can be used to specify one or more paths to -# documentation generated for other projects. This allows doxysearch to search -# the documentation for these projects as well. - -EXT_DOC_PATHS = diff --git a/popt/Makefile.am b/popt/Makefile.am deleted file mode 100644 index 5e1341be3..000000000 --- a/popt/Makefile.am +++ /dev/null @@ -1,64 +0,0 @@ -# Makefile for popt library. - -AUTOMAKE_OPTIONS = 1.4 foreign - -LINT = splint - -EXTRA_DIST = autogen.sh CHANGES $(man_MANS) \ - testit.sh test-poptrc test3-data \ - popt.ps - -SUBDIRS = po - -INCLUDES = -I. -I$(top_srcdir) - -noinst_HEADERS = findme.h poptint.h system.h - -noinst_PROGRAMS = test1 test2 test3 -test1_SOURCES = test1.c -test1_LDFLAGS = -test1_LDADD = $(usrlib_LTLIBRARIES) -test2_SOURCES = test2.c -test2_LDFLAGS = -test2_LDADD = $(usrlib_LTLIBRARIES) -test3_SOURCES = test3.c -test3_LDFLAGS = -test3_LDADD = $(usrlib_LTLIBRARIES) - -noinst_SCRIPTS = testit.sh - -TESTS_ENVIRONMENT = \ -test1="./test1" - -TESTS = testit.sh - -include_HEADERS = popt.h - -usrlibdir = $(libdir)@MARK64@ -usrlib_LTLIBRARIES = libpopt.la - -libpopt_la_SOURCES = popt.c findme.c poptparse.c poptconfig.c popthelp.c -libpopt_la_LDFLAGS = @INTLLIBS@ - -man_MANS = popt.3 - -#BUILT_SOURCES = popt.lcd - -popt.lcd: Makefile.am ${libpopt_la_SOURCES} ${include_HEADERS} ${noinst_HEADERS} - lclint -dump $@ ${libpopt_la_SOURCES} - -.PHONY: sources -sources: - @echo $(libpopt_la_SOURCES:%=popt/%) - -.PHONY: lint -lint: - $(LINT) ${DEFS} ${INCLUDES} test1.c ${libpopt_la_SOURCES} - -CVSTAG = $(PACKAGE)-$(subst .,_,$(VERSION)) - -.PHONY: doxygen -doxygen: Doxyfile - rm -rf doxygen - mkdir -p doxygen - doxygen diff --git a/popt/README b/popt/README deleted file mode 100644 index 0b5205bfd..000000000 --- a/popt/README +++ /dev/null @@ -1,18 +0,0 @@ -This is the popt command line option parsing library. While it is similiar -to getopt(3), it contains a number of enhancements, including: - - 1) popt is fully reentrant - 2) popt can parse arbitrary argv[] style arrays while - getopt(2) makes this quite difficult - 3) popt allows users to alias command line arguments - 4) popt provides convience functions for parsing strings - into argv[] style arrays - -popt is used by rpm, the Red Hat install program, and many other Red Hat -utilities, all of which provide excellent examples of how to use popt. -Complete documentation on popt is available in popt.ps (included in this -tarball), which is excerpted with permission from the book "Linux -Application Development" by Michael K. Johnson and Erik Troan (availble -from Addison Wesley in May, 1998). - -Comments on popt should be addressed to ewt@redhat.com. diff --git a/popt/autogen.sh b/popt/autogen.sh deleted file mode 100755 index cded31195..000000000 --- a/popt/autogen.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -srcdir="`dirname $0`" -test -z "$srcdir" && srcdir=. - -THEDIR="`pwd`" - -libtoolize=`which glibtoolize 2>/dev/null` -case $libtoolize in -/*) ;; -*) libtoolize=`which libtoolize 2>/dev/null` - case $libtoolize in - /*) ;; - *) libtoolize=libtoolize - esac -esac - -cd "$srcdir" -$libtoolize --copy --force -aclocal -autoheader -automake -a -c -autoconf - -if [ "$1" = "--noconfigure" ]; then - exit 0; -fi - -cd "$THEDIR" - -if [ X"$@" = X -a "X`uname -s`" = "XLinux" ]; then - $srcdir/configure --prefix=/usr "$@" -else - $srcdir/configure "$@" -fi diff --git a/popt/configure.ac b/popt/configure.ac deleted file mode 100755 index 1aca20636..000000000 --- a/popt/configure.ac +++ /dev/null @@ -1,97 +0,0 @@ -AC_INIT(popt.h) -AC_CANONICAL_SYSTEM -AC_PREREQ(2.12) -AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE(popt, 1.10.2.1) - -ALL_LINGUAS="cs da de es eu_ES fi fr gl hu id is it ja ko no pl pt pt_BR ro ru sk sl sr sv tr uk wa zh zh_CN zh_TW" - -AC_ISC_POSIX - -AC_PROG_CC -AC_GCC_TRADITIONAL -AM_C_PROTOTYPES -AC_SYS_LARGEFILE - -dnl AM_DISABLE_SHARED -AM_PROG_LIBTOOL - -AC_PROG_INSTALL - -if test "X$CC" = Xgcc; then - CFLAGS="-Wall $CFLAGS" -fi - -dnl XXX lose rpm libs -LIBS= -addlib() { - l=$1 - shift - case "$target" in - *-*-solaris*) LIBS="$LIBS -L$l -R $l $*";; - *) LIBS="$LIBS -L$l $*";; - esac -} - -dnl -dnl if CC is gcc, we can rebuild the dependencies (since the depend rule -dnl requires gcc). If it's not, don't rebuild dependencies -- use what was -dnl shipped with RPM. -dnl -if test X"$GCC" = "Xyes" ; then - TARGET="depend allprogs" -else - TARGET="everything" - # - # let the Makefile know that we're done with `depend', since we don't - # have gcc we're not going to rebuild our dependencies at all. - # - echo > .depend-done -fi -AC_SUBST(TARGET) - -dnl XXX Choose /usr/lib or /usr/lib64 for library installs. -MARK64= -case "${target_cpu}" in -x86_64*|powerpc64*|ppc64*|sparc64*|s390x*) MARK64=64 ;; -esac -AC_SUBST(MARK64) - -AC_CHECK_HEADERS(alloca.h float.h libintl.h mcheck.h unistd.h) -AC_MSG_CHECKING(for /usr/ucblib in LIBS) -if test -d /usr/ucblib ; then - if test "$build" = "mips-sni-sysv4" ; then - addlib /usr/ccs/lib -lc - fi - - addlib /usr/ucblib - - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -if test ! -f ../rpm.c -then - AC_MSG_CHECKING(for GNU xgettext) - xgettext --version 2>&1 | grep 'GNU gettext' >/dev/null 2>&1 || AC_MSG_ERROR([ - *** GNU gettext is required. The latest version - *** is always available from ftp://ftp.gnu.org/gnu/gettext/.]) - AC_MSG_RESULT(yes) -fi - -AC_CHECK_FUNC(setreuid, [], [ - AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi]) -]) -AC_CHECK_FUNCS(getuid geteuid mtrace __secure_getenv setregid strerror) - - -AM_GNU_GETTEXT_VERSION([0.11.2]) -AM_GNU_GETTEXT([external]) - -POPT_SOURCE_PATH="`pwd`" -AC_DEFINE_UNQUOTED(POPT_SOURCE_PATH, "$POPT_SOURCE_PATH", - [Full path to popt top_srcdir.]) -AC_SUBST(POPT_SOURCE_PATH) - -AC_OUTPUT([Doxyfile Makefile po/Makefile.in]) diff --git a/popt/findme.c b/popt/findme.c deleted file mode 100644 index c4aaabccf..000000000 --- a/popt/findme.c +++ /dev/null @@ -1,51 +0,0 @@ -/** \ingroup popt - * \file popt/findme.c - */ - -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#include "system.h" -#include "findme.h" - -const char * findProgramPath(const char * argv0) -{ - char * path = getenv("PATH"); - char * pathbuf; - char * start, * chptr; - char * buf; - - if (argv0 == NULL) return NULL; /* XXX can't happen */ - /* If there is a / in the argv[0], it has to be an absolute path */ - if (strchr(argv0, '/')) - return xstrdup(argv0); - - if (path == NULL) return NULL; - - start = pathbuf = alloca(strlen(path) + 1); - buf = malloc(strlen(path) + strlen(argv0) + sizeof("/")); - if (buf == NULL) return NULL; /* XXX can't happen */ - strcpy(pathbuf, path); - - chptr = NULL; - /*@-branchstate@*/ - do { - if ((chptr = strchr(start, ':'))) - *chptr = '\0'; - sprintf(buf, "%s/%s", start, argv0); - - if (!access(buf, X_OK)) - return buf; - - if (chptr) - start = chptr + 1; - else - start = NULL; - } while (start && *start); - /*@=branchstate@*/ - - free(buf); - - return NULL; -} diff --git a/popt/findme.h b/popt/findme.h deleted file mode 100644 index a016b867e..000000000 --- a/popt/findme.h +++ /dev/null @@ -1,20 +0,0 @@ -/** \ingroup popt - * \file popt/findme.h - */ - -/* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#ifndef H_FINDME -#define H_FINDME - -/** - * Return absolute path to executable by searching PATH. - * @param argv0 name of executable - * @return (malloc'd) absolute path to executable (or NULL) - */ -/*@null@*/ const char * findProgramPath(/*@null@*/ const char * argv0) - /*@*/; - -#endif diff --git a/popt/mkinstalldirs b/popt/mkinstalldirs deleted file mode 100755 index 12ea679f7..000000000 --- a/popt/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman <friedman@prep.ai.mit.edu> -# Created: 1993-05-16 -# Public domain - -# $Id: mkinstalldirs,v 1.2 2002/02/10 21:14:38 jbj Exp $ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/popt/po/.cvsignore b/popt/po/.cvsignore deleted file mode 100644 index 557ce8da8..000000000 --- a/popt/po/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -Makefile -Makefile.in -POTFILES -stamp-cat-id -cat-id-tbl.c -*.mo -*.gmo diff --git a/popt/po/ChangeLog b/popt/po/ChangeLog deleted file mode 100644 index bc697cbd2..000000000 --- a/popt/po/ChangeLog +++ /dev/null @@ -1,6 +0,0 @@ -2002-02-10 gettextize <bug-gnu-utils@gnu.org> - - * Makefile.in.in: Upgrade to gettext-0.10.40. - * cat-id-tbl.c: Remove file. - * stamp-cat-id: Remove file. - diff --git a/popt/po/Makefile.in.in b/popt/po/Makefile.in.in deleted file mode 100644 index 7e54c8936..000000000 --- a/popt/po/Makefile.in.in +++ /dev/null @@ -1,196 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu> -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datarootdir@ -localedir = $(datadir)/locale -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - -CC = @CC@ -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = msgmerge - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ -$(POFILES) $(GMOFILES) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in - $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ - --add-comments --keyword=_ --keyword=N_ --keyword=POPT_ \ - --files-from=$(srcdir)/POTFILES.in \ - && test ! -f $(PACKAGE).po \ - || ( rm -f $(srcdir)/$(PACKAGE).pot \ - && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ - $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - $(mkinstalldirs) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ - echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ - echo "installing $(srcdir)/$$cat as" \ - "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ - fi; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ - done - if test "$(PACKAGE)" = "gettext"; then \ - rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ - else \ - : ; \ - fi - -check: all - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ - cp -p $$dir/$$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(PACKAGE).pot - if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ - cd $(srcdir); \ - catalogs='$(GMOFILES)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ - mv -f $$lang.new.po $$lang.po; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.new.po; \ - fi; \ - done - $(MAKE) update-gmo - -update-gmo: Makefile $(GMOFILES) - @: - -Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/popt/po/POTFILES.in b/popt/po/POTFILES.in deleted file mode 100644 index a1eddf79d..000000000 --- a/popt/po/POTFILES.in +++ /dev/null @@ -1,10 +0,0 @@ -# List of files which contain translatable strings. - -# Package source files - -findme.c -popt.c -poptconfig.c -popthelp.c -poptparse.c -test1.c diff --git a/popt/po/cs.po b/popt/po/cs.po deleted file mode 100644 index 20b4ec804..000000000 --- a/popt/po/cs.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-07-24 00:03+0100\n" -"Last-Translator: Milan Kerslager <kerslage@linux.cz>\n" -"Language-Team: Czech <cs@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "neznámé èíslo chyby" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "volba (%d) není v popt implementována\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "chybí argument" - -#: popt.c:1186 -msgid "unknown option" -msgstr "neznámá volba" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "po¾adovány vzájemnì výluèné logické operace" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg nesmí být NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "aliasy vnoøené pøíli¹ hluboko" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "chyba v quotování parametrù" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "chybná numerická hodnota" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "èíslo je pøíli¹ velké nebo pøíli¹ malé" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "selhala alokace pamìti" - -#: popt.c:1204 -msgid "unknown error" -msgstr "neznámá chyba" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Vypí¹e tuto nápovìdu" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Vypí¹e krátký návod k pou¾ití" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Zobrazit implicitní volby ve zprávì" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Pou¾ití:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[VOLBY...]" diff --git a/popt/po/da.po b/popt/po/da.po deleted file mode 100644 index f8e9e701b..000000000 --- a/popt/po/da.po +++ /dev/null @@ -1,114 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: Sun Jan 21 2001 04:30:32+0200\n" -"Last-Translator: Martin Hansen <mah@k64.dk>\n" -"Language-Team: Dansk <dansk@klid.dk>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" -"X-Generator: KTranslator v 0.6.0\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "ukendt fejlnr." - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "tilvalgstype (%d) er ikke implementeret i popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "mangler argument" - -#: popt.c:1186 -msgid "unknown option" -msgstr "ukendt tilvalg" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "de ønskede handlinger udelukker hinanden" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "aliaser er for dybt indlejret" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "fejl i parameter citering" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ugyldig numerisk værdi" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "nummer for stort, eller for lille" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "ukendt fejl" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Vis denne hjælpemeddelelse" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Vis kortfattet brugsanvisning" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Vis kortfattet brugsanvisning" - -#: popthelp.c:124 -msgid "NONE" -msgstr "INGEN" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Brug:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[TILVALG...]" diff --git a/popt/po/de.po b/popt/po/de.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/de.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/es.po b/popt/po/es.po deleted file mode 100644 index 36f029a67..000000000 --- a/popt/po/es.po +++ /dev/null @@ -1,118 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Leandro Lucarella <luca@linuxmendoza.org.ar>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "errno desconocido" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "tipo de opcin (%d) no implementada en popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "falta argumento" - -#: popt.c:1186 -msgid "unknown option" -msgstr "opcin desconocida" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "requerida operacin lgica mutuamente exclusiva" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "alias anidados muy profundamente" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "error en cita de parmetros" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "valor numrico invlido" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "nmero muy largo o muy pequeo" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "error desconocido" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Muestra este mensaje de ayuda" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Indica el modo de uso resumido" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Indica el modo de uso resumido" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Modo de Uso:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPCIN...]" diff --git a/popt/po/eu_ES.po b/popt/po/eu_ES.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/eu_ES.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/fi.po b/popt/po/fi.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/fi.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/fr.po b/popt/po/fr.po deleted file mode 100644 index 06bde25ea..000000000 --- a/popt/po/fr.po +++ /dev/null @@ -1,122 +0,0 @@ -# A French translation for rpm messages -# Copyright (C) 2003 Free Software Foundation, Inc. -# This file is distributed under the same license as the RPM package. -# RPM French Translation <rpm-fr@livna.org>, 2003. -# JBJ : THANX A LOT !!! -# -# N'hésitez pas à m'envoyez un courriel si vous avez des -# suggestions/corrections. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.8.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2003-06-22 23:43+0200\n" -"Last-Translator: RPM French Translation <rpm-fr@livna.org>\n" -"Language-Team: RPM French Translation <rpm-fr@livna.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "errno inconnu" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "type(%d) d'option non implémenté dans popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "argument manquant" - -#: popt.c:1186 -msgid "unknown option" -msgstr "option iconnue" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "opérations logiques mutuellement exclusives requises" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg ne devrait pas être NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "les alias sont trop entremellés" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "erreur en citant les paramètres" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "valeur numérique invalide" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "nombre trop grand ou trop petit" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "échec de l'allocation de mémoire" - -#: popt.c:1204 -msgid "unknown error" -msgstr "erreur inconnue" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Montre ce message d'aide" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Affiche un bref descriptif de l'utilisation" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Afficher les valeurs par défaut des options dans le message" - -#: popthelp.c:124 -msgid "NONE" -msgstr "RIEN" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "ENTIER" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "CHAINE" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOTTANT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Utilisation:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPTION...]" diff --git a/popt/po/gl.po b/popt/po/gl.po deleted file mode 100644 index 0f783f8ff..000000000 --- a/popt/po/gl.po +++ /dev/null @@ -1,113 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-01-17 01:01+0100\n" -"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n" -"Language-Team: Galician <trasno@ceu.fi.udc.es>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "errno descoñecido" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "tipo de opción (%d) non implementada en popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "falta un argumento" - -#: popt.c:1186 -msgid "unknown option" -msgstr "opción descoñecida" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "solicitáronse operacións lóxicas mutuamente excluíntes" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "aliases aniñados a un nivel demasiado profundo" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "erro nas comiñas do parámetro" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "valor numérico non válido" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "número demasiado grande ou pequeno" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "erro descoñecido" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Amosar esta mensaxe de axuda" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Amosar brevemente o xeito de utilización" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Amosar brevemente o xeito de utilización" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NADA" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "CADEA" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Uso:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPCIÓN...]" diff --git a/popt/po/hu.po b/popt/po/hu.po deleted file mode 100644 index 0cd41f260..000000000 --- a/popt/po/hu.po +++ /dev/null @@ -1,113 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2000-08-03 23:26+0200\n" -"Last-Translator: László Németh <nemeth@qwertynet.hu>\n" -"Language-Team: Hungarian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "E súgó megjelenítése" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Rövid használati utasítás megjelenítése" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Rövid használati utasítás megjelenítése" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/id.po b/popt/po/id.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/id.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/is.po b/popt/po/is.po deleted file mode 100644 index 4a117adac..000000000 --- a/popt/po/is.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-06-08 01:35+0000\n" -"Last-Translator: Richard Allen <ra@hp.is>\n" -"Language-Team: is <kde-isl@mmedia.is>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "óþekkt villunúmer" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "rofagerðin (%d) er ekki studd í popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "vantar viðfang" - -#: popt.c:1186 -msgid "unknown option" -msgstr "óþekktur rofi" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "beðið um rofa sem slökkva hvor á öðrum" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg ætti ekki að vera NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "alíasar of flóknir" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "villa í viðföngum (gæsalappir og svo frv.)" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ógilt tölulegt gildi" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "talan of stór eða smá" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "ekki tókst að taka frá minni" - -#: popt.c:1204 -msgid "unknown error" -msgstr "óþekkt villa" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Sýna þessa hjálp" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Sýna stuttar notkunarleiðbeiningar" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Sýna sjálfgefin gildi rofa í skilaboðum" - -#: popthelp.c:124 -msgid "NONE" -msgstr "ENGIN" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Notkun:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[ROFI...]" diff --git a/popt/po/it.po b/popt/po/it.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/it.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/ja.po b/popt/po/ja.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/ja.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/ko.po b/popt/po/ko.po deleted file mode 100644 index e50db5303..000000000 --- a/popt/po/ko.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-09-06 20:06+0900\n" -"Last-Translator: Jong-Hoon Ryu <redhat4u@netian.com>\n" -"Language-Team: GNU Translation project <ko@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC-KR\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "¾Ë ¼ö ¾ø´Â ¿À·ùÄÚµå(errno) ÀÔ´Ï´Ù" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "¿É¼Ç À¯Çü (%d)Àº popt¿¡¼ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "Àμö°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò½À´Ï´Ù" - -#: popt.c:1186 -msgid "unknown option" -msgstr "¾Ë ¼ö ¾ø´Â ¿É¼ÇÀÔ´Ï´Ù" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "¾çÂÊ¿¡ ¹èŸÀû ³í¸® ¿¬»êÀÌ ÁöÁ¤µÇ¾ú½À´Ï´Ù" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "¿É¼Ç->Àμö°¡ NULLÀÌ µÇ¾î¼´Â ¾ÈµË´Ï´Ù" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "º°Äª(alias)ÀÌ º¹ÀâÇÏ°Ô ¼³Á¤µÇ¾ú½À´Ï´Ù" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "¸Å°³º¯¼ö¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "À߸øµÈ ¼öÄ¡ °ªÀÔ´Ï´Ù" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "¼ýÀÚ°¡ ³Ê¹« Å©°Å³ª ³Ê¹« Àû½À´Ï´Ù" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "¸Þ¸ð¸® ÇÒ´ç¿¡ ½ÇÆÐÇß½À´Ï´Ù" - -#: popt.c:1204 -msgid "unknown error" -msgstr "¾Ë ¼ö ¾ø´Â ¿À·ùÀÔ´Ï´Ù" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "ÀÌ µµ¿ò¸»À» º¸¿©ÁÝ´Ï´Ù" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "°£´ÜÇÑ »ç¿ë¹ýÀ» º¸¿©ÁÝ´Ï´Ù" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "±âº»ÀûÀÎ ¿É¼ÇÀ» º¸¿©ÁÝ´Ï´Ù" - -#: popthelp.c:124 -msgid "NONE" -msgstr "¾øÀ½(NONE)" - -#: popthelp.c:126 -msgid "VAL" -msgstr "°ª(VAL)" - -#: popthelp.c:130 -msgid "INT" -msgstr "Á¤¼ö(INT)" - -#: popthelp.c:131 -msgid "LONG" -msgstr "Á¤¼ö(LONG)" - -#: popthelp.c:132 -msgid "STRING" -msgstr "¹®ÀÚ¿(STRING)" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "¼Ò¼ö(FLOAT)" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "¼Ò¼ö(DOUBLE)" - -#: popthelp.c:135 -msgid "ARG" -msgstr "Àμö(ARG)" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "»ç¿ë¹ý:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[¿É¼Ç...]" diff --git a/popt/po/no.po b/popt/po/no.po deleted file mode 100644 index 3872b9981..000000000 --- a/popt/po/no.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-06-27 11:05+0200\n" -"Last-Translator: Kjartan Maraas <kmaraas@online.no>\n" -"Language-Team: Norwegian <no@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "ukjent errno" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "flaggtype (%d) ikke implementert i popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "manglende argument" - -#: popt.c:1186 -msgid "unknown option" -msgstr "ukjent flagg" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "gjensidig eksluderende logiske operasjoner forespurt" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg må ikke være NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "aliaser med for dype løkker" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "feil i parametersitering" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ugyldig numerisk verdi" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "tallet er for stort eller lite" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "minneallokering feilet" - -#: popt.c:1204 -msgid "unknown error" -msgstr "ukjent feil" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Vis denne hjelpmeldingen" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Vis kort bruksmelding" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Vis forvalgte flagg i melding" - -#: popthelp.c:124 -msgid "NONE" -msgstr "INGEN" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VERDI" - -#: popthelp.c:130 -msgid "INT" -msgstr "HELTALL" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRENG" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLYTTALL" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Bruk:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[FLAGG...]" diff --git a/popt/po/pl.po b/popt/po/pl.po deleted file mode 100644 index 345d7c822..000000000 --- a/popt/po/pl.po +++ /dev/null @@ -1,116 +0,0 @@ -# translation of pl.po to Polish -# Jakub Bogusz <qboosh@pld.org.pl>, 2002. -# Piotr DrÄ…g <raven@pmail.pl>, 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: pl\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2007-06-12 00:18+0200\n" -"Last-Translator: Piotr DrÄ…g <raven@pmail.pl>\n" -"Language-Team: Polish <pl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "nieznane errno" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "typ opcji (%d) nie jest zaimplementowany w popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "brak argumentu" - -#: popt.c:1186 -msgid "unknown option" -msgstr "nieznana opcja" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "zażądano wykluczajÄ…ce siÄ™ operacje logiczne" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg nie może być NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "za duże osadzenie aliasów" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "bÅ‚Ä…d w cytowaniu parametru" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "nieprawidÅ‚owa wartość liczbowa" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "liczba jest za duża lub za maÅ‚a" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "przydzielenie pamiÄ™ci nie powiodÅ‚o siÄ™" - -#: popt.c:1204 -msgid "unknown error" -msgstr "nieznany bÅ‚Ä…d" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "WyÅ›wietla ten komunikat pomocy" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "WyÅ›wietla skrócony sposób użycia" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "WyÅ›wietla domyÅ›lne opcje" - -#: popthelp.c:124 -msgid "NONE" -msgstr "BRAK" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Użycie:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPCJA...]" diff --git a/popt/po/popt.pot b/popt/po/popt.pot deleted file mode 100644 index 670c404e4..000000000 --- a/popt/po/popt.pot +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/pt.po b/popt/po/pt.po deleted file mode 100644 index ecd8a3ba4..000000000 --- a/popt/po/pt.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2002-02-13 18:32+0000\n" -"Last-Translator: Pedro Morais <morais@kde.org>\n" -"Language-Team: pt <morais@kde.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "errno desconhecido" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "tipo de opção (%d) não implementado no popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "falta um argumento" - -#: popt.c:1186 -msgid "unknown option" -msgstr "opção desconhecida" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "foram pedidas operações lógicas mutuamente exclusivas" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg não deve ser NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "'aliases' demasiado aninhados" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "erros no 'quoting' de parâmetros" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "valor númerico inválido" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "número demasiado grando ou pequeno" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "alocação de memória falhou" - -#: popt.c:1204 -msgid "unknown error" -msgstr "erro desconhecido" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Mostrar esta mensagem de ajuda" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Mostrar uma mensagem de utilização sucinta" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Mostrar valor por omissão das opções na mensagem" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Utilização:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPÇÃO...]" diff --git a/popt/po/pt_BR.po b/popt/po/pt_BR.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/pt_BR.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/ro.po b/popt/po/ro.po deleted file mode 100644 index 83f797686..000000000 --- a/popt/po/ro.po +++ /dev/null @@ -1,114 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2000-06-14 23:23+EST\n" -"Last-Translator: Cristian Gafton <gafton@redhat.com>\n" -"Language-Team: Romanian <ro@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "eroare necunoscuta" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "optiunea de tipul (%d) nu este implementata in popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "argument lipsa" - -#: popt.c:1186 -msgid "unknown option" -msgstr "optiune necunoscuta" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "recursivitate infinita la optiunile sinonime" - -#: popt.c:1194 -#, fuzzy -msgid "error in parameter quoting" -msgstr "eroare la insertie parametru" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "valoare numarica invalida" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "numar prea mare sau prea mic" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "eroare necuinoscuta" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Afisare mesaj de help" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Afisare mesaj sintaxa sumar" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Afisare mesaj sintaxa sumar" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Sintaxa:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[OPTIUNE...]" diff --git a/popt/po/ru.po b/popt/po/ru.po deleted file mode 100644 index 728df7d65..000000000 --- a/popt/po/ru.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-07-05 21:00-0500\n" -"Last-Translator: Eugene Kanter <eugene@blackcatlinux.com>\n" -"Language-Team: Black Cat Linux Team <blackcat-support@blackcatlinux.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÎÏÍÅÒ ÏÛÉÂËÉ" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "ÏÂÒÁÂÏÔËÁ ÐÁÒÁÍÅÔÒÁ (%d) × popt ÎÅ ÐÒÅÄÕÓÍÏÔÒÅÎÁ\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ" - -#: popt.c:1186 -msgid "unknown option" -msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÐÁÒÁÍÅÔÒ" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "ÚÁÐÒÏÛÅÎÙ ×ÚÁÉÍÎÏ ÉÓËÌÀÞÁÀÝÉÅ ÌÏÇÉÞÅÓËÉÅ ÏÐÅÒÁÃÉÉ" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg ÎÅ ÍÏÖÅÔ ÂÙÔØ NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "ÐÒÅ×ÙÛÅÎ ÕÒÏ×ÅÎØ ÄÏÐÕÓÔÉÍÏÊ ÒÅËÕÒÓÉÉ ÐÏÄÓÔÁÎÏ×ÏË" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "ÏÛÉÂËa ÐÏÍÅÝÅÎÉÑ ÐÁÒÁÍÅÔÒÏ× × ËÁ×ÙÞËÉ" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÞÉÓÌÏ×ÏÅ ÚÎÁÞÅÎÉÅ" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "ÞÉÓÌÏ×ÏÅ ÚÎÁÞÅÎÉÅ ÚÁ ÐÒÅÄÅÌÁÍÉ ÐÒÅÄÕÓÍÏÔÒÅÎÎÏÇÏ" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "ÏÛÉÂËÁ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ" - -#: popt.c:1204 -msgid "unknown error" -msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "ðÏËÁÚÁÔØ ÜÔÏ ÓÏÏÂÝÅÎÉÅ" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "ðÏËÁÚÁÔØ ËÒÁÔËÕÀ ÉÎÓÔÒÕËÃÉÀ ÐÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "ðÏËÁÚÁÔØ ÐÁÒÁÍÅÔÒÙ ÐÏ ÕÍÏÌÞÁÎÉÀ" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[ðáòáíåôò...]" diff --git a/popt/po/sk.po b/popt/po/sk.po deleted file mode 100644 index aa48f9dcc..000000000 --- a/popt/po/sk.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 1999-08-04 21:40+0200\n" -"Last-Translator: Stanislav Meduna <stano@eunet.sk>\n" -"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Vypísa» túto správu" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Zobrazi» struèný návod na pou¾itie" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Zobrazi» struèný návod na pou¾itie" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/sl.po b/popt/po/sl.po deleted file mode 100644 index 65d6260ba..000000000 --- a/popt/po/sl.po +++ /dev/null @@ -1,113 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2000-09-05 12:30+0200\n" -"Last-Translator: Roman Maurer <roman.maurer@hermes.si>\n" -"Language-Team: Slovenian <sl@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Prika¾i to sporoèilo s pomoèjo" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Prika¾i kratko sporoèilo o uporabi" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Prika¾i kratko sporoèilo o uporabi" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/sr.po b/popt/po/sr.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/sr.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/sv.po b/popt/po/sv.po deleted file mode 100644 index 087dbbe09..000000000 --- a/popt/po/sv.po +++ /dev/null @@ -1,112 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2001-07-12 22:26+0100\n" -"Last-Translator: Christian Rose <menthos@menthos.com>\n" -"Language-Team: Swedish <sv@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "okänt felnummer" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "flaggtypen (%d) är inte implementerad i popt\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "argument saknas" - -#: popt.c:1186 -msgid "unknown option" -msgstr "okänd flagga" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "ömsesidigt uteslutande logiska operationer begärdes" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg får inte vara NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "alias är nästlade för djupt" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "fel i parametercitering" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ogiltigt numeriskt värde" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "talet för stort eller för litet" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "minnesallokering misslyckades" - -#: popt.c:1204 -msgid "unknown error" -msgstr "okänt fel" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Visa denna hjälptext" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Visa en kortfattad användningstext" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "Visa standardalternativ för flaggor i meddelande" - -#: popthelp.c:124 -msgid "NONE" -msgstr "INGET" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VÄRDE" - -#: popthelp.c:130 -msgid "INT" -msgstr "HELTAL" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LÅNG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRÄNG" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLYTTAL" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DUBBEL" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Användning:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[FLAGGA...]" diff --git a/popt/po/tr.po b/popt/po/tr.po deleted file mode 100644 index ab97780e4..000000000 --- a/popt/po/tr.po +++ /dev/null @@ -1,113 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2000-02-11 13:01+0200\n" -"Last-Translator: Nilgun Belma Buguner <nilgun@technologist.com>\n" -"Language-Team: Turkish <tr@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso8859-9\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "bilinmeyen hata no" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "seçenek türü (%d) popt için geçersiz\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "argüman eksik" - -#: popt.c:1186 -msgid "unknown option" -msgstr "bilinmeyen seçenek" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "birbirini dýþlayan mantýksal iþlemler istendi" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "adlarda çok fazla içiçelikler" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "parametrelerde týrnak iþaretleme hatalý " - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "sayýsal deðer geçersiz" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "sayý ya çok büyük ya da çok küçük" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "bilinmeyen hata" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Bu yardým iletisini gösterir" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Kýsa bir kullaným iletisi göster" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Kýsa bir kullaným iletisi göster" - -#: popthelp.c:124 -msgid "NONE" -msgstr "YOK" - -#: popthelp.c:126 -msgid "VAL" -msgstr "DEÐ" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "Kullanýmý:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[SEÇENEK...]" diff --git a/popt/po/uk.po b/popt/po/uk.po deleted file mode 100644 index 7864ad453..000000000 --- a/popt/po/uk.po +++ /dev/null @@ -1,117 +0,0 @@ -# Translation into the ukrainian language. -# Copyright (C) 1999 Free Software Foundation, Inc. -# Yuri Syrota <rasta@renome.rovno.ua>, 1999. -# -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 1999-09-30 16:54+0200\n" -"Last-Translator: Yuri Syrota <rasta@renome.rovno.ua>\n" -"Language-Team: Ukrainian <uk@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-u\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "ðÏËÁÚÁÔÉ ÃÀ ÄÏצÄËÕ" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "ðÏËÁÚÁÔÉ ËÏÒÏÔËÕ ÄÏצÄËÕ ÐÒÏ ×ÉËÏÒÉÓÔÁÎÎÑ" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "ðÏËÁÚÁÔÉ ËÏÒÏÔËÕ ÄÏצÄËÕ ÐÒÏ ×ÉËÏÒÉÓÔÁÎÎÑ" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/wa.po b/popt/po/wa.po deleted file mode 100644 index 6d6740cdf..000000000 --- a/popt/po/wa.po +++ /dev/null @@ -1,121 +0,0 @@ -# Translation into the walloon language. -# -# Si vos voloz donner on côp di spale pol ratoûrnaedje di Gnome (ou des -# ôtes libes programes) sicrijhoz-mu a l' adresse emile -# <linux-wa@chanae.alphanet.ch>; nos avons co bråmint di l' ovraedje a fé. -# -# Copyright (C) 1999 Free Software Foundation, Inc. -# -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 1999-03-18 23:11+0100\n" -"Last-Translator: Nobody yet\n" -"Language-Team: walon <linux-wa@chanae.alphanet.ch>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "Mostrer ci messaedje d' aide chal" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "Mostre on court messaedje so kmint vos è siervi" - -#: popthelp.c:79 -#, fuzzy -msgid "Display option defaults in message" -msgstr "Mostre on court messaedje so kmint vos è siervi" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/zh.po b/popt/po/zh.po deleted file mode 100644 index 217c95318..000000000 --- a/popt/po/zh.po +++ /dev/null @@ -1,117 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: popt 1.6.3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "" - -#: popt.c:1184 -msgid "missing argument" -msgstr "" - -#: popt.c:1186 -msgid "unknown option" -msgstr "" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "" - -#: popt.c:1204 -msgid "unknown error" -msgstr "" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "" - -#: popthelp.c:124 -msgid "NONE" -msgstr "" - -#: popthelp.c:126 -msgid "VAL" -msgstr "" - -#: popthelp.c:130 -msgid "INT" -msgstr "" - -#: popthelp.c:131 -msgid "LONG" -msgstr "" - -#: popthelp.c:132 -msgid "STRING" -msgstr "" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "" - -#: popthelp.c:135 -msgid "ARG" -msgstr "" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "" diff --git a/popt/po/zh_CN.po b/popt/po/zh_CN.po deleted file mode 100644 index c8ca6fb10..000000000 --- a/popt/po/zh_CN.po +++ /dev/null @@ -1,118 +0,0 @@ -# translation of translation.po to -# Traditional Chinese Messages for popt -# Copyright (C) 2005 Free Software Foundation, Inc. -# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: translation\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2005-05-20 15:53+1000\n" -"Last-Translator: \n" -"Language-Team: <zh@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "未知的错误" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "选项类别 (%d) 沒有在 popt ä¸å®žçŽ°\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "缺少å‚æ•°" - -#: popt.c:1186 -msgid "unknown option" -msgstr "未知的选项" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "éœ€è¦ XOR 逻辑è¿ç®—" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg ä¸åº”该为 NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "别å嵌套太深" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "å‚数引å·é”™è¯¯" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "æ— æ•ˆçš„æ•°å€¼" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "数值太大或太å°" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "内å˜åˆ†é…错误" - -#: popt.c:1204 -msgid "unknown error" -msgstr "未知的错误" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "显示这个帮助信æ¯" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "显示简çŸçš„使用说明" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "在信æ¯ä¸æ˜¾ç¤ºé»˜è®¤çš„选项" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "用法:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[选项...]" diff --git a/popt/po/zh_TW.po b/popt/po/zh_TW.po deleted file mode 100644 index 615bfb8b6..000000000 --- a/popt/po/zh_TW.po +++ /dev/null @@ -1,116 +0,0 @@ -# Traditional Chinese Messages for popt -# Copyright (C) 2005 Free Software Foundation, Inc. -# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005 -# -msgid "" -msgstr "" -"Project-Id-Version: popt 1.10.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-02-29 07:48-0500\n" -"PO-Revision-Date: 2005-04-08 17:52+0800\n" -"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n" -"Language-Team: zh_TW <zh-l10n@linux.org.tw>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: popt.c:35 -msgid "unknown errno" -msgstr "未知的錯誤" - -#: popt.c:964 -#, c-format -msgid "option type (%d) not implemented in popt\n" -msgstr "é¸é …é¡žåž‹ (%d) 沒有在 popt ä¸å¯¦ä½œ\n" - -#: popt.c:1184 -msgid "missing argument" -msgstr "缺少引數" - -#: popt.c:1186 -msgid "unknown option" -msgstr "未知的é¸é …" - -#: popt.c:1188 -msgid "mutually exclusive logical operations requested" -msgstr "需è¦ç›¸äº’ç¨ç«‹çš„é‚輯é‹ç®—" - -#: popt.c:1190 -msgid "opt->arg should not be NULL" -msgstr "opt->arg ä¸æ‡‰ç‚º NULL" - -#: popt.c:1192 -msgid "aliases nested too deeply" -msgstr "巢狀別å太深" - -#: popt.c:1194 -msgid "error in parameter quoting" -msgstr "åƒæ•¸å¼•è™ŸéŒ¯èª¤" - -#: popt.c:1196 -msgid "invalid numeric value" -msgstr "ä¸æ£ç¢ºçš„數值" - -#: popt.c:1198 -msgid "number too large or too small" -msgstr "數å—太大或太å°" - -#: popt.c:1200 -msgid "memory allocation failed" -msgstr "記憶體é…置錯誤" - -#: popt.c:1204 -msgid "unknown error" -msgstr "未知的錯誤" - -#: popthelp.c:64 popthelp.c:75 -msgid "Show this help message" -msgstr "顯示本說明訊æ¯" - -#: popthelp.c:65 popthelp.c:76 -msgid "Display brief usage message" -msgstr "顯示簡çŸçš„使用說明" - -#: popthelp.c:79 -msgid "Display option defaults in message" -msgstr "在訊æ¯ä¸é¡¯ç¤ºé è¨é¸é …" - -#: popthelp.c:124 -msgid "NONE" -msgstr "NONE" - -#: popthelp.c:126 -msgid "VAL" -msgstr "VAL" - -#: popthelp.c:130 -msgid "INT" -msgstr "INT" - -#: popthelp.c:131 -msgid "LONG" -msgstr "LONG" - -#: popthelp.c:132 -msgid "STRING" -msgstr "STRING" - -#: popthelp.c:133 -msgid "FLOAT" -msgstr "FLOAT" - -#: popthelp.c:134 -msgid "DOUBLE" -msgstr "DOUBLE" - -#: popthelp.c:135 -msgid "ARG" -msgstr "ARG" - -#: popthelp.c:548 -msgid "Usage:" -msgstr "用法:" - -#: popthelp.c:572 -msgid "[OPTION...]" -msgstr "[é¸é …...]" diff --git a/popt/popt.3 b/popt/popt.3 deleted file mode 100644 index 5da0c1f72..000000000 --- a/popt/popt.3 +++ /dev/null @@ -1,765 +0,0 @@ -.TH POPT 3 "June 30, 1998" "" "Linux Programmer's Manual" -.SH NAME -popt \- Parse command line options -.SH SYNOPSIS -.nf -.B #include <popt.h> -.sp -.BI "poptContext poptGetContext(const char * " name ", int " argc , -.BI " const char ** "argv , -.BI " const struct poptOption * " options , -.BI " int " flags ); -.sp -.BI "void poptFreeContext(poptContext " con ); -.sp -.BI "void poptResetContext(poptContext " con ); -.sp -.BI "int poptGetNextOpt(poptContext " con ); -.sp -.BI "const char * poptGetOptArg(poptContext " con ); -.sp -.BI "const char * poptGetArg(poptContext " con ); -.sp -.BI "const char * poptPeekArg(poptContext " con ); -.sp -.BI "const char ** poptGetArgs(poptContext " con ); -.sp -.BI "const char *const poptStrerror(const int " error ); -.sp -.BI "const char * poptBadOption(poptContext " con ", int " flags ); -.sp -.BI "int poptReadDefaultConfig(poptContext " con ", int " flags ); -.sp -.BI "int poptReadConfigFile(poptContext " con ", char * " fn ); -.sp -.BI "int poptAddAlias(poptContext " con ", struct poptAlias " alias , -.BI " int " flags ); -.sp -.BI "int poptParseArgvString(char * " s ", int * " argcPtr , -.BI " const char *** " argvPtr ); -.sp -.BI "int poptDupArgv(int " argc ", const char ** " argv ", int * " argcPtr ", -.BI " const char *** " argvPtr ");" -.sp -.BI "int poptStuffArgs(poptContext " con ", const char ** " argv ); -.sp -.fi -.SH DESCRIPTION -The popt library exists essentially for parsing command-line -options. It is found superior in many ways when compared to -parsing the argv array by hand or using the getopt functions -.B getopt() -and -.B getopt_long() -[see -.BR getopt "(3)]." -Some specific advantages of popt are: it does not utilize global -.RI "variables, thus enabling multiple passes in parsing " argv -.RI "; it can parse an arbitrary array of " argv "-style elements, " -allowing parsing of command-line-strings from any source; -it provides a standard method of option aliasing (to be -discussed at length below.); it can exec external option filters; and, -finally, it can automatically generate help and usage messages for -the application. -.sp -Like -.BR getopt_long() , -the popt library supports short and long style options. Recall -that a -.B short option -consists of a - character followed by a single alphanumeric character. -A -.BR "long option" , -common in GNU utilities, consists of two - characters followed by a -string made up of letters, numbers and hyphens. Long options are -optionally allowed to begin with a single -, primarily to allow command-line -compatibility between popt applications and X toolkit applications. -Either type of option may be followed by an argument. A space separates a -short option from its arguments; either a space or an = separates a long -option from an argument. -.sp -The popt library is highly portable and should work on any POSIX -platform. The latest version is distributed with rpm and is always available -from: ftp://ftp.rpm.org/pub/rpm/dist. -.sp -It may be redistributed under the X consortium license, see the file COPYING -in the popt source distribution for details. -.SH "BASIC POPT USAGE" -.SS "1. THE OPTION TABLE" -Applications provide popt with information on their command-line -options by means of an "option table," i.e., an array of -.B struct poptOption -structures: -.sp -#include <popt.h> -.sp -.nf -struct poptOption { - const char * longName; /* may be NULL */ - char shortName; /* may be '\\0' */ - int argInfo; - void * arg; /* depends on argInfo */ - int val; /* 0 means don't return, just update flag */ - char * descrip; /* description for autohelp -- may be NULL */ - char * argDescrip; /* argument description for autohelp */ -}; -.fi -.sp -Each member of the table defines a single option that may be -passed to the program. Long and short options are considered -a single option that may occur in two different forms. The -first two members, -.IR longName " and " shortName ", define the names of the option;" -the first is a long name, while the latter is a single character. -.sp -The -.IR argInfo " member tells popt what type of argument is expected" -after the argument. If no option is expected, -.B POPT_ARG_NONE -should be used. -The rest of the valid values are shown in the following table: -.sp -.TS -lfB lfB lfB -lfB lfR lfR. -Value Description arg Type -POPT_ARG_NONE No argument expected int -POPT_ARG_STRING No type checking to be performed char * -POPT_ARG_INT An integer argument is expected int -POPT_ARG_LONG A long integer is expected long -POPT_ARG_VAL Integer value taken from \f(CWval\fR int -POPT_ARG_FLOAT An float argument is expected float -POPT_ARG_DOUBLE A double argument is expected double -.TE -.sp -For numeric values, if the \fIargInfo\fR value is bitwise or'd with one of -\fBPOPT_ARGFLAG_OR\fR, \fBPOPT_ARGFLAG_AND\fR, or \fBPOPT_ARGFLAG_XOR\fR, -the value is saved by performing an OR, AND, or XOR. -If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_NOT\fR, -the value will be negated before saving. For the common operations of -setting and/or clearing bits, \fBPOPT_BIT_SET\fR and \fBPOPT_BIT_CLR\fR -have the appropriate flags set to perform bit operations. -.sp -If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_ONEDASH\fR, -the long argument may be given with a single - instead of two. For example, -if \fB--longopt\fR is an option with \fBPOPT_ARGFLAG_ONEDASH\fR, is -specified, \fB-longopt\fR is accepted as well. -.sp -.RI "The next element, " arg ", allows popt to automatically update " -.RI "program variables when the option is used. If " arg " is " -.BR NULL ", it is ignored and popt takes no special action. " -Otherwise it should point to a variable of the type indicated in the -right-most column of the table above. -.sp -.RI "If the option takes no argument (" argInfo " is " -.BR POPT_ARG_NONE "), the variable pointed to by " -.IR arg " is set to 1 when the option is used. (Incidentally, it " -will perhaps not escape the attention of hunt-and-peck typists that -.RB "the value of " POPT_ARG_NONE " is 0.) If the option does take " -an argument, the variable that -.IR arg " points to is updated to reflect the value of the argument." -.RB "Any string is acceptable for " POPT_ARG_STRING " arguments, but " -.BR POPT_ARG_INT ", " POPT_ARG_LONG ", " POPT_ARG_FLOAT ", and " -.BR POPT_ARG_DOUBLE " are converted to the appropriate type, and an " -error returned if the conversion fails. -.sp -\fBPOPT_ARG_VAL\fR causes \fIarg\fP to be set to the (integer) value of -\fIval\fP when the argument is found. This is most often useful for -mutually-exclusive arguments in cases where it is not an error for -multiple arguments to occur and where you want the last argument -specified to win; for example, "rm -i -f". \fBPOPT_ARG_VAL\fP causes -the parsing function not to return a value, since the value of \fIval\fP -has already been used. -.sp -If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_OPTIONAL\fR, -the argument to the long option may be omitted. If the long option -is used without an argument, a default value of zero or NULL will be saved -(if the arg pointer is present), otherwise behavior will be identical to -a long option with argument. -.sp -.RI "The next option, " val ", is the value popt's parsing function -should return when the option is encountered. If it is 0, the parsing -function does not return a value, instead parsing the next -command-line argument. -.sp -.RI "The last two options, " descrip " and " argDescrip " are only required -if automatic help messages are desired (automatic usage messages can -.RI "be generated without them). " descrip " is a text description of the -.RI "argument and " argdescrip " is a short summary of the type of arguments -.RI "the option expects, or NULL if the option doesn't require any -arguments. -.sp -.RB "If popt should automatically provide " --usage " and " --help " (" -? ") -.RB "options, one line in the table should be the macro " POPT_AUTOHELP ". -.RB "This macro includes another option table (via " POPT_ARG_INCLUDE_TABLE; -see below) in the main one which provides the table entries for these -.RB "arguments. When " --usage " or " --help " are passed to programs which -use popt's automatical help, popt displays the appropriate message on -stderr as soon as it finds the option, and exits the program with a -return code of 0. If you want to use popt's automatic help generation in -a different way, you need to explicitly add the option entries to your programs -.RB "option table instead of using " POPT_AUTOHELP ". -.sp -If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_DOC_HIDDEN\fR, -the argument will not be shown in help output. -.sp -If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_SHOW_DEFAULT\fR, -the inital value of the arg will be shown in help output. -.sp -The final structure in the table should have all the pointer values set -.RB "to " NULL " and all the arithmetic values set to 0, marking the " -.RB "end of the table. The macro " POPT_TABLEEND " is provided to do that. -.sp -There are two types of option table entries which do not specify command -line options. When either of these types of entries are used, the -\fIlongName\fR element must be \fBNULL\fR and the \fBshortName\fR element -must be \fB'\\0'\fR. -.sp -The first of these special entry types allows the application to nest -another option table in the current one; such nesting may extend quite -deeply (the actual depth is limited by the program's stack). Including -other option tables allows a library to provide a standard set of -command-line options to every program which uses it (this is often done -in graphical programming toolkits, for example). To do this, set -the \fIargInfo\fR field to \fBPOPT_ARG_INCLUDE_TABLE\fR and the -\fRarg\fR field to point to the table which is being included. If -automatic help generation is being used, the \fIdescrip\fR field should -contain a overall description of the option table being included. -.sp -The other special option table entry type tells popt to call a function (a -callback) when any option in that table is found. This is especially usefull -when included option tables are being used, as the program which provides -the top-level option table doesn't need to be aware of the other options -which are provided by the included table. When a callback is set for -a table, the parsing function never returns information on an option in -the table. Instead, options information must be retained via the callback -or by having popt set a variable through the option's \fIarg\fR field. -Option callbacks should match the following prototype: -.sp -.nf -.BI "void poptCallbackType(poptContext con, -.BI " const struct poptOption * opt, -.BI " const char * arg, void * data); -.fi -.sp -The first parameter is the context which is being parsed (see the next -section for information on contexts), \fIopt\fR points to the option -which triggered this callback, and \fIarg\fR is the option's argument. -If the option does not take an argument, \fIarg\fR is \fBNULL\fR. The -final parameter, \fIdata\fR is taken from the \fIdescrip\fR field -of the option table entry which defined the callback. As \fIdescrip\fR -is a pointer, this allows callback functions to be passed an arbitrary -set of data (though a typecast will have to be used). -.sp -The option table entry which defines a callback has an \fIargInfo\fR of -\fBPOPT_ARG_CALLBACK\fR, an \fIarg\fR which points to the callback -function, and a \fIdescrip\fR field which specifies an arbitrary pointer -to be passed to the callback. -.SS "2. CREATING A CONTEXT" -popt can interleave the parsing of multiple command-line sets. It allows -this by keeping all the state information for a particular set of -command-line arguments in a -.BR poptContext " data structure, an opaque type that should not be " -modified outside the popt library. -.sp -.RB "New popt contexts are created by " poptGetContext() ":" -.sp -.nf -.BI "poptContext poptGetContext(const char * " name ", int "argc ", -.BI " const char ** "argv ", -.BI " const struct poptOption * "options ", -.BI " int "flags ");" -.fi -.sp -The first parameter, -.IR name ", is used only for alias handling (discussed later). It " -should be the name of the application whose options are being parsed, -.RB "or should be " NULL " if no option aliasing is desired. The next " -two arguments specify the command-line arguments to parse. These are -.RB "generally passed to " poptGetContext() " exactly as they were " -.RB "passed to the program's " main() " function. The " -.IR options " parameter points to the table of command-line options, " -which was described in the previous section. The final parameter, -.IR flags , -can take one of three values: -.br -.TS -lfB lfB -lfB lfR. -Value Description -POPT_CONTEXT_NO_EXEC Ignore exec expansions -POPT_CONTEXT_KEEP_FIRST Do not ignore argv[0] -POPT_CONTEXT_POSIXMEHARDER Options cannot follow arguments -.TE -.sp -.RB "A " poptContext " keeps track of which options have already been " -parsed and which remain, among other things. If a program wishes to -restart option processing of a set of arguments, it can reset the -.BR poptContext " by passing the context as the sole argument to " -.BR poptResetContext() . -.sp -When argument processing is complete, the process should free the -.BR poptContext " as it contains dynamically allocated components. The " -.BR poptFreeContext() " function takes a " -.BR poptContext " as its sole argument and frees the resources the " -context is using. -.sp -.RB "Here are the prototypes of both " poptResetContext() " and " -.BR poptFreeContext() : -.sp -.nf -.B #include <popt.h> -.BI "void poptFreeContext(poptContext " con ");" -.BI "void poptResetContext(poptContext " con ");" -.fi -.sp -.SS "3. PARSING THE COMMAND LINE" -.RB "After an application has created a " poptContext ", it may begin " -.RB "parsing arguments. " poptGetNextOpt() " performs the actual " -argument parsing. -.sp -.nf -.B #include <popt.h> -.BI "int poptGetNextOpt(poptContext " con ");" -.fi -.sp -Taking the context as its sole argument, this function parses the next -command-line argument found. After finding the next argument in the -option table, the function fills in the object pointed to by the option -.RI "table entry's " arg -.RB "pointer if it is not " NULL ". If the val entry for the option is " -non-0, the function then returns that value. Otherwise, -.BR poptGetNextOpt() " continues on to the next argument." -.sp -.BR poptGetNextOpt() " returns -1 when the final argument has been " -parsed, and other negative values when errors occur. This makes it a -good idea to -.RI "keep the " val " elements in the options table greater than 0." -.sp -.RI "If all of the command-line options are handled through " arg -pointers, command-line parsing is reduced to the following line of code: -.sp -.nf -rc = poptGetNextOpt(poptcon); -.fi -.sp -Many applications require more complex command-line parsing than this, -however, and use the following structure: -.sp -.nf -while ((rc = poptGetNextOpt(poptcon)) > 0) { - switch (rc) { - /* specific arguments are handled here */ - } -} -.fi -.sp -When returned options are handled, the application needs to know the -value of any arguments that were specified after the option. There are two -ways to discover them. One is to ask popt to fill in a variable with the -.RI "value of the option through the option table's " arg " elements. The " -.RB "other is to use " poptGetOptArg() ":" -.sp -.nf -.B #include <popt.h> -.BI "const char * poptGetOptArg(poptContext " con ");" -.fi -.sp -This function returns the argument given for the final option returned by -.BR poptGetNextOpt() ", or it returns " NULL " if no argument was specified." -.sp -.SS "4. LEFTOVER ARGUMENTS" -Many applications take an arbitrary number of command-line arguments, -such as a list of file names. When popt encounters an argument that does -not begin with a -, it assumes it is such an argument and adds it to a list -of leftover arguments. Three functions allow applications to access such -arguments: -.nf -.HP -.BI "const char * poptGetArg(poptContext " con ");" -.fi -This function returns the next leftover argument and marks it as -processed. -.PP -.nf -.HP -.BI "const char * poptPeekArg(poptContext " con ");" -.fi -The next leftover argument is returned but not marked as processed. -This allows an application to look ahead into the argument list, -without modifying the list. -.PP -.nf -.HP -.BI "const char ** poptGetArgs(poptContext " con ");" -.fi -All the leftover arguments are returned in a manner identical to -.IR argv ". The final element in the returned array points to " -.BR NULL ", indicating the end of the arguments. -.sp -.SS "5. AUTOMATIC HELP MESSAGES" -The \fBpopt\fR library can automatically generate help messages which -describe the options a program accepts. There are two types of help -messages which can be generated. Usage messages are a short messages -which lists valid options, but does not describe them. Help messages -describe each option on one (or more) lines, resulting in a longer, but -more useful, message. Whenever automatic help messages are used, the -\fBdescrip\fR and \fBargDescrip\fR fields \fBstruct poptOption\fR members -should be filled in for each option. -.sp -The \fBPOPT_AUTOHELP\fR macro makes it easy to add \fB--usage\fR and -\fB--help\fR messages to your program, and is described in part 1 -of this man page. If more control is needed over your help messages, -the following two functions are available: -.sp -.nf -.B #include <popt.h> -.BI "void poptPrintHelp(poptContext " con ", FILE * " f ", int " flags "); -.BI "void poptPrintUsage(poptContext " con ", FILE * " f ", int " flags "); -.fi -.sp -\fBpoptPrintHelp()\fR displays the standard help message to the stdio file -descriptor f, while \fBpoptPrintUsage()\fR displays the shorter usage -message. Both functions currently ignore the \fBflags\fR argument; it is -there to allow future changes. -.sp -.SH "ERROR HANDLING" -All of the popt functions that can return errors return integers. -When an error occurs, a negative error code is returned. The -following table summarizes the error codes that occur: -.sp -.nf -.B " Error Description" -.BR "POPT_ERROR_NOARG " "Argument missing for an option." -.BR "POPT_ERROR_BADOPT " "Option's argument couldn't be parsed." -.BR "POPT_ERROR_OPTSTOODEEP " "Option aliasing nested too deeply." -.BR "POPT_ERROR_BADQUOTE " "Quotations do not match." -.BR "POPT_ERROR_BADNUMBER " "Option couldn't be converted to number." -.BR "POPT_ERROR_OVERFLOW " "A given number was too big or small." -.fi -.sp -Here is a more detailed discussion of each error: -.sp -.TP -.B POPT_ERROR_NOARG -An option that requires an argument was specified on the command -line, but no argument was given. This can be returned only by -.BR poptGetNextOpt() . -.sp -.TP -.B POPT_ERROR_BADOPT -.RI "An option was specified in " argv " but is not in the option -.RB "table. This error can be returned only from " poptGetNextOpt() . -.sp -.TP -.B POPT_ERROR_OPTSTOODEEP -A set of option aliases is nested too deeply. Currently, popt -follows options only 10 levels to prevent infinite recursion. Only -.BR poptGetNextOpt() " can return this error." -.sp -.TP -.B POPT_ERROR_BADQUOTE -A parsed string has a quotation mismatch (such as a single quotation -.RB "mark). " poptParseArgvString() ", " poptReadConfigFile() ", or " -.BR poptReadDefaultConfig() " can return this error." -.sp -.TP -.B POPT_ERROR_BADNUMBER -A conversion from a string to a number (int or long) failed due -to the string containing nonnumeric characters. This occurs when -.BR poptGetNextOpt() " is processing an argument of type " -.BR POPT_ARG_INT ", " POPT_ARG_LONG ", " -.RB POPT_ARG_FLOAT ", or " POPT_ARG_DOUBLE "." -.sp -.TP -.B POPT_ERROR_OVERFLOW -A string-to-number conversion failed because the number was too -.RB "large or too small. Like " POPT_ERROR_BADNUMBER ", this error -.RB "can occur only when " poptGetNextOpt() " is processing an " -.RB "argument of type " POPT_ARG_INT ", " POPT_ARG_LONG ", " -.RB POPT_ARG_FLOAT ", or " POPT_ARG_DOUBLE "." -.sp -.TP -.B POPT_ERROR_ERRNO -.RI "A system call returned with an error, and " errno " still -contains the error from the system call. Both -.BR poptReadConfigFile() " and " poptReadDefaultConfig() " can " -return this error. -.sp -.PP -Two functions are available to make it easy for applications to provide -good error messages. -.HP -.nf -.BI "const char *const poptStrerror(const int " error ");" -.fi -This function takes a popt error code and returns a string describing -.RB "the error, just as with the standard " strerror() " function." -.PP -.HP -.nf -.BI "const char * poptBadOption(poptContext " con ", int " flags ");" -.fi -.RB "If an error occurred during " poptGetNextOpt() ", this function " -.RI "returns the option that caused the error. If the " flags " argument" -.RB "is set to " POPT_BADOPTION_NOALIAS ", the outermost option is " -.RI "returned. Otherwise, " flags " should be 0, and the option that is " -returned may have been specified through an alias. -.PP -These two functions make popt error handling trivial for most -applications. When an error is detected from most of the functions, -an error message is printed along with the error string from -.BR poptStrerror() ". When an error occurs during argument parsing, " -code similiar to the following displays a useful error message: -.sp -.nf -fprintf(stderr, "%s: %s\\n", - poptBadOption(optCon, POPT_BADOPTION_NOALIAS), - poptStrerror(rc)); -.fi -.sp -.SH "OPTION ALIASING" -.RB "One of the primary benefits of using popt over " getopt() " is the " -ability to use option aliasing. This lets the user specify options that -popt expands into other options when they are specified. If the standard -.RB "grep program made use of popt, users could add a " --text " option " -.RB "that expanded to " "-i -n -E -2" " to let them more easily find " -information in text files. -.sp -.SS "1. SPECIFYING ALIASES" -.RI "Aliases are normally specified in two places: " /etc/popt -.RB "and the " .popt " file in the user's home directory (found through " -.RB "the " HOME " environment variable). Both files have the same format, " -an arbitrary number of lines formatted like this: -.sp -.IB appname " alias " newoption "" " expansion" -.sp -.RI "The " appname " is the name of the application, which must be the " -.RI "same as the " name " parameter passed to " -.BR poptGetContext() ". This allows each file to specify aliases for " -.RB "multiple programs. The " alias " keyword specifies that an alias is " -being defined; currently popt configuration files support only aliases, but -other abilities may be added in the future. The next option is the option -that should be aliased, and it may be either a short or a long option. The -rest of the line specifies the expansion for the alias. It is parsed -similarly to a shell command, which allows \\, ", and ' to be used for -quoting. If a backslash is the final character on a line, the next line -in the file is assumed to be a logical continuation of the line containing -the backslash, just as in shell. -.sp -.RB "The following entry would add a " --text " option to the grep command, " -as suggested at the beginning of this section. -.sp -.B "grep alias --text -i -n -E -2" -.SS "2. ENABLING ALIASES" -.RB "An application must enable alias expansion for a " poptContext -.RB "before calling " poptGetNextArg() " for the first time. There are " -three functions that define aliases for a context: -.HP -.nf -.BI "int poptReadDefaultConfig(poptContext " con ", int " flags ");" -.fi -.RI "This function reads aliases from " /etc/popt " and the " -.BR .popt " file in the user's home directory. Currently, " -.IR flags " should be " -.BR NULL ", as it is provided only for future expansion." -.PP -.HP -.nf -.BI "int poptReadConfigFile(poptContext " con ", char * " fn ");" -.fi -.RI "The file specified by " fn " is opened and parsed as a popt " -configuration file. This allows programs to use program-specific -configuration files. -.PP -.HP -.nf -.BI "int poptAddAlias(poptContext " con ", struct poptAlias " alias ", -.BI " int " flags ");" -.fi -Occasionally, processes want to specify aliases without having to -read them from a configuration file. This function adds a new alias -.RI "to a context. The " flags " argument should be 0, as it is " -currently reserved for future expansion. The new alias is specified -.RB "as a " "struct poptAlias" ", which is defined as:" -.sp -.nf -struct poptAlias { - const char * longName; /* may be NULL */ - char shortName; /* may be '\\0' */ - int argc; - const char ** argv; /* must be free()able */ -}; -.fi -.sp -.RI "The first two elements, " longName " and " shortName ", specify " -.RI "the option that is aliased. The final two, " argc " and " argv "," -define the expansion to use when the aliases option is encountered. -.PP -.SH "PARSING ARGUMENT STRINGS" -Although popt is usually used for parsing arguments already divided into -.RI "an " argv "-style array, some programs need to parse strings that " -are formatted identically to command lines. To facilitate this, popt -provides a function that parses a string into an array of strings, -using rules similiar to normal shell parsing. -.sp -.nf -.B "#include <popt.h>" -.BI "int poptParseArgvString(char * " s ", int * " argcPtr ", -.BI " char *** " argvPtr ");" -.BI "int poptDupArgv(int " argc ", const char ** " argv ", int * " argcPtr ", -.BI " const char *** " argvPtr ");" -.fi -.sp -.RI "The string s is parsed into an " argv "-style array. The integer " -.RI "pointed to by the " argcPtr " parameter contains the number of elements " -.RI "parsed, and the final " argvPtr " parameter contains the address of the" -newly created array. -.RB "The routine " poptDupArgv() " can be used to make a copy of an existing " -argument array. -.sp -.RI "The " argvPtr -.RB "created by " poptParseArgvString() " or " poptDupArgv() " is suitable to pass directly " -.RB "to " poptGetContext() . -Both routines return a single dynamically allocated contiguous -.RB "block of storage and should be " free() "ed when the application is" -finished with the storage. -.SH "HANDLING EXTRA ARGUMENTS" -Some applications implement the equivalent of option aliasing but need -.RB "to do so through special logic. The " poptStuffArgs() " function " -allows an application to insert new arguments into the current -.BR poptContext . -.sp -.nf -.B "#include <popt.h>" -.BI "int poptStuffArgs(poptContext "con ", const char ** " argv ");" -.fi -.sp -.RI "The passed " argv -.RB "must have a " NULL " pointer as its final element. When " -.BR poptGetNextOpt() " is next called, the " -"stuffed" arguments are the first to be parsed. popt returns to the -normal arguments once all the stuffed arguments have been exhausted. -.SH "EXAMPLE" -The following example is a simplified version of the program "robin" -which appears in Chapter 15 of the text cited below. Robin has -been stripped of everything but its argument-parsing logic, slightly -reworked, and renamed "parse." It may prove useful in illustrating -at least some of the features of the extremely rich popt library. -.sp -.nf -#include <popt.h> -#include <stdio.h> - -void usage(poptContext optCon, int exitcode, char *error, char *addl) { - poptPrintUsage(optCon, stderr, 0); - if (error) fprintf(stderr, "%s: %s\n", error, addl); - exit(exitcode); -} - -int main(int argc, char *argv[]) { - char c; /* used for argument parsing */ - int i = 0; /* used for tracking options */ - char *portname; - int speed = 0; /* used in argument parsing to set speed */ - int raw = 0; /* raw mode? */ - int j; - char buf[BUFSIZ+1]; - poptContext optCon; /* context for parsing command-line options */ - - struct poptOption optionsTable[] = { - { "bps", 'b', POPT_ARG_INT, &speed, 0, - "signaling rate in bits-per-second", "BPS" }, - { "crnl", 'c', 0, 0, 'c', - "expand cr characters to cr/lf sequences" }, - { "hwflow", 'h', 0, 0, 'h', - "use hardware (RTS/CTS) flow control" }, - { "noflow", 'n', 0, 0, 'n', - "use no flow control" }, - { "raw", 'r', 0, &raw, 0, - "don't perform any character conversions" }, - { "swflow", 's', 0, 0, 's', - "use software (XON/XOF) flow control" } , - POPT_AUTOHELP - { NULL, 0, 0, NULL, 0 } - }; - - optCon = poptGetContext(NULL, argc, argv, optionsTable, 0); - poptSetOtherOptionHelp(optCon, "[OPTIONS]* <port>"); - - if (argc < 2) { - poptPrintUsage(optCon, stderr, 0); - exit(1); - } - - /* Now do options processing, get portname */ - while ((c = poptGetNextOpt(optCon)) >= 0) { - switch (c) { - case 'c': - buf[i++] = 'c'; - break; - case 'h': - buf[i++] = 'h'; - break; - case 's': - buf[i++] = 's'; - break; - case 'n': - buf[i++] = 'n'; - break; - } - } - portname = poptGetArg(optCon); - if((portname == NULL) || !(poptPeekArg(optCon) == NULL)) - usage(optCon, 1, "Specify a single port", ".e.g., /dev/cua0"); - - if (c < -1) { - /* an error occurred during option processing */ - fprintf(stderr, "%s: %s\\n", - poptBadOption(optCon, POPT_BADOPTION_NOALIAS), - poptStrerror(c)); - return 1; - } - - /* Print out options, portname chosen */ - printf("Options chosen: "); - for(j = 0; j < i ; j++) - printf("-%c ", buf[j]); - if(raw) printf("-r "); - if(speed) printf("-b %d ", speed); - printf("\\nPortname chosen: %s\\n", portname); - - poptFreeContext(optCon); - exit(0); -} -.fi -.sp -RPM, a popular Linux package management program, makes heavy use -of popt's features. Many of its command-line arguments are implemented -through popt aliases, which makes RPM an excellent example of how to -take advantage of the popt library. For more information on RPM, see -http://www.rpm.org. The popt source code distribution includes test -program(s) which use all of the features of the popt libraries in -various ways. If a feature isn't working for you, the popt test code -is the first place to look. -.SH BUGS -None presently known. -.SH AUTHOR -Erik W. Troan <ewt@redhat.com> -.PP -This man page is derived in part from -.IR "Linux Application Development" -by Michael K. Johnson and Erik W. Troan, Copyright (c) 1998 by Addison -Wesley Longman, Inc., and included in the popt documentation with the -permission of the Publisher and the appreciation of the Authors. -.PP -Thanks to Robert Lynch for his extensive work on this man page. -.SH "SEE ALSO" -.BR getopt (3) -.sp -.IR "Linux Application Development" ", by Michael K. Johnson and " -Erik W. Troan (Addison-Wesley, 1998; ISBN 0-201-30821-5), Chapter 24. -.sp -.BR popt.ps " is a Postscript version of the above cited book " -chapter. It can be found in the source archive for popt available at: -ftp://ftp.rpm.org/pub/rpm. diff --git a/popt/popt.c b/popt/popt.c deleted file mode 100644 index 5226062af..000000000 --- a/popt/popt.c +++ /dev/null @@ -1,1260 +0,0 @@ -/** \ingroup popt - * \file popt/popt.c - */ - -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist */ - -#undef MYDEBUG - -#include "system.h" - -#if HAVE_FLOAT_H -#include <float.h> -#endif -#include <math.h> - -#include "findme.h" -#include "poptint.h" - -#ifdef MYDEBUG -/*@unchecked@*/ -int _popt_debug = 0; -#endif - -#if !defined(HAVE_STRERROR) && !defined(__LCLINT__) -static char * strerror(int errno) -{ - extern int sys_nerr; - extern char * sys_errlist[]; - - if ((0 <= errno) && (errno < sys_nerr)) - return sys_errlist[errno]; - else - return POPT_("unknown errno"); -} -#endif - -#ifdef MYDEBUG -/*@unused@*/ -static void prtcon(const char *msg, poptContext con) -{ - if (msg) fprintf(stderr, "%s", msg); - fprintf(stderr, "\tcon %p os %p nextCharArg \"%s\" nextArg \"%s\" argv[%d] \"%s\"\n", - con, con->os, - (con->os->nextCharArg ? con->os->nextCharArg : ""), - (con->os->nextArg ? con->os->nextArg : ""), - con->os->next, - (con->os->argv && con->os->argv[con->os->next] - ? con->os->argv[con->os->next] : "")); -} -#endif - -void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) -{ - con->execPath = _free(con->execPath); - con->execPath = xstrdup(path); - con->execAbsolute = allowAbsolute; - /*@-nullstate@*/ /* LCL: con->execPath not NULL */ - return; - /*@=nullstate@*/ -} - -static void invokeCallbacksPRE(poptContext con, const struct poptOption * opt) - /*@globals internalState@*/ - /*@modifies internalState@*/ -{ - if (opt != NULL) - for (; opt->longName || opt->shortName || opt->arg; opt++) { - if (opt->arg == NULL) continue; /* XXX program error. */ - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - void * arg = opt->arg; -/*@-branchstate@*/ - /* XXX sick hack to preserve pretense of ABI. */ - if (arg == poptHelpOptions) arg = poptHelpOptionsI18N; -/*@=branchstate@*/ - /* Recurse on included sub-tables. */ - invokeCallbacksPRE(con, arg); - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK && - (opt->argInfo & POPT_CBFLAG_PRE)) - { /*@-castfcnptr@*/ - poptCallbackType cb = (poptCallbackType)opt->arg; - /*@=castfcnptr@*/ - /* Perform callback. */ - /*@-noeffectuncon @*/ - cb(con, POPT_CALLBACK_REASON_PRE, NULL, NULL, opt->descrip); - /*@=noeffectuncon @*/ - } - } -} - -static void invokeCallbacksPOST(poptContext con, const struct poptOption * opt) - /*@globals internalState@*/ - /*@modifies internalState@*/ -{ - if (opt != NULL) - for (; opt->longName || opt->shortName || opt->arg; opt++) { - if (opt->arg == NULL) continue; /* XXX program error. */ - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - void * arg = opt->arg; -/*@-branchstate@*/ - /* XXX sick hack to preserve pretense of ABI. */ - if (arg == poptHelpOptions) arg = poptHelpOptionsI18N; -/*@=branchstate@*/ - /* Recurse on included sub-tables. */ - invokeCallbacksPOST(con, arg); - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK && - (opt->argInfo & POPT_CBFLAG_POST)) - { /*@-castfcnptr@*/ - poptCallbackType cb = (poptCallbackType)opt->arg; - /*@=castfcnptr@*/ - /* Perform callback. */ - /*@-noeffectuncon @*/ - cb(con, POPT_CALLBACK_REASON_POST, NULL, NULL, opt->descrip); - /*@=noeffectuncon @*/ - } - } -} - -static void invokeCallbacksOPTION(poptContext con, - const struct poptOption * opt, - const struct poptOption * myOpt, - /*@null@*/ const void * myData, int shorty) - /*@globals internalState@*/ - /*@modifies internalState@*/ -{ - const struct poptOption * cbopt = NULL; - - if (opt != NULL) - for (; opt->longName || opt->shortName || opt->arg; opt++) { - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - void * arg = opt->arg; -/*@-branchstate@*/ - /* XXX sick hack to preserve pretense of ABI. */ - if (arg == poptHelpOptions) arg = poptHelpOptionsI18N; -/*@=branchstate@*/ - /* Recurse on included sub-tables. */ - if (opt->arg != NULL) /* XXX program error */ - invokeCallbacksOPTION(con, opt->arg, myOpt, myData, shorty); - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK && - !(opt->argInfo & POPT_CBFLAG_SKIPOPTION)) { - /* Save callback info. */ - cbopt = opt; - } else if (cbopt != NULL && - ((myOpt->shortName && opt->shortName && shorty && - myOpt->shortName == opt->shortName) || - (myOpt->longName && opt->longName && - /*@-nullpass@*/ /* LCL: opt->longName != NULL */ - !strcmp(myOpt->longName, opt->longName))) - /*@=nullpass@*/ - ) - { /*@-castfcnptr@*/ - poptCallbackType cb = (poptCallbackType)cbopt->arg; - /*@=castfcnptr@*/ - const void * cbData = (cbopt->descrip ? cbopt->descrip : myData); - /* Perform callback. */ - if (cb != NULL) { /* XXX program error */ - /*@-noeffectuncon @*/ - cb(con, POPT_CALLBACK_REASON_OPTION, myOpt, - con->os->nextArg, cbData); - /*@=noeffectuncon @*/ - } - /* Terminate (unless explcitly continuing). */ - if (!(cbopt->argInfo & POPT_CBFLAG_CONTINUE)) - return; - } - } -} - -poptContext poptGetContext(const char * name, int argc, const char ** argv, - const struct poptOption * options, int flags) -{ - poptContext con = malloc(sizeof(*con)); - - if (con == NULL) return NULL; /* XXX can't happen */ - memset(con, 0, sizeof(*con)); - - con->os = con->optionStack; - con->os->argc = argc; - /*@-dependenttrans -assignexpose@*/ /* FIX: W2DO? */ - con->os->argv = argv; - /*@=dependenttrans =assignexpose@*/ - con->os->argb = NULL; - - if (!(flags & POPT_CONTEXT_KEEP_FIRST)) - con->os->next = 1; /* skip argv[0] */ - - con->leftovers = calloc( (argc + 1), sizeof(*con->leftovers) ); - /*@-dependenttrans -assignexpose@*/ /* FIX: W2DO? */ - con->options = options; - /*@=dependenttrans =assignexpose@*/ - con->aliases = NULL; - con->numAliases = 0; - con->flags = flags; - con->execs = NULL; - con->numExecs = 0; - con->finalArgvAlloced = argc * 2; - con->finalArgv = calloc( con->finalArgvAlloced, sizeof(*con->finalArgv) ); - con->execAbsolute = 1; - con->arg_strip = NULL; - - if (getenv("POSIXLY_CORRECT") || getenv("POSIX_ME_HARDER")) - con->flags |= POPT_CONTEXT_POSIXMEHARDER; - - if (name) { - char * t = malloc(strlen(name) + 1); - if (t) con->appName = strcpy(t, name); - } - - /*@-internalglobs@*/ - invokeCallbacksPRE(con, con->options); - /*@=internalglobs@*/ - - return con; -} - -static void cleanOSE(/*@special@*/ struct optionStackEntry *os) - /*@uses os @*/ - /*@releases os->nextArg, os->argv, os->argb @*/ - /*@modifies os @*/ -{ - os->nextArg = _free(os->nextArg); - os->argv = _free(os->argv); - os->argb = PBM_FREE(os->argb); -} - -/*@-boundswrite@*/ -void poptResetContext(poptContext con) -{ - int i; - - if (con == NULL) return; - while (con->os > con->optionStack) { - cleanOSE(con->os--); - } - con->os->argb = PBM_FREE(con->os->argb); - con->os->currAlias = NULL; - con->os->nextCharArg = NULL; - con->os->nextArg = NULL; - con->os->next = 1; /* skip argv[0] */ - - con->numLeftovers = 0; - con->nextLeftover = 0; - con->restLeftover = 0; - con->doExec = NULL; - - if (con->finalArgv != NULL) - for (i = 0; i < con->finalArgvCount; i++) { - /*@-unqualifiedtrans@*/ /* FIX: typedef double indirection. */ - con->finalArgv[i] = _free(con->finalArgv[i]); - /*@=unqualifiedtrans@*/ - } - - con->finalArgvCount = 0; - con->arg_strip = PBM_FREE(con->arg_strip); - /*@-nullstate@*/ /* FIX: con->finalArgv != NULL */ - return; - /*@=nullstate@*/ -} -/*@=boundswrite@*/ - -/* Only one of longName, shortName should be set, not both. */ -/*@-boundswrite@*/ -static int handleExec(/*@special@*/ poptContext con, - /*@null@*/ const char * longName, char shortName) - /*@uses con->execs, con->numExecs, con->flags, con->doExec, - con->finalArgv, con->finalArgvAlloced, con->finalArgvCount @*/ - /*@modifies con @*/ -{ - poptItem item; - int i; - - if (con->execs == NULL || con->numExecs <= 0) /* XXX can't happen */ - return 0; - - for (i = con->numExecs - 1; i >= 0; i--) { - item = con->execs + i; - if (longName && !(item->option.longName && - !strcmp(longName, item->option.longName))) - continue; - else if (shortName != item->option.shortName) - continue; - break; - } - if (i < 0) return 0; - - - if (con->flags & POPT_CONTEXT_NO_EXEC) - return 1; - - if (con->doExec == NULL) { - con->doExec = con->execs + i; - return 1; - } - - /* We already have an exec to do; remember this option for next - time 'round */ - if ((con->finalArgvCount + 1) >= (con->finalArgvAlloced)) { - con->finalArgvAlloced += 10; - con->finalArgv = realloc(con->finalArgv, - sizeof(*con->finalArgv) * con->finalArgvAlloced); - } - - i = con->finalArgvCount++; - if (con->finalArgv != NULL) /* XXX can't happen */ - { char *s = malloc((longName ? strlen(longName) : 0) + 3); - if (s != NULL) { /* XXX can't happen */ - if (longName) - sprintf(s, "--%s", longName); - else - sprintf(s, "-%c", shortName); - con->finalArgv[i] = s; - } else - con->finalArgv[i] = NULL; - } - - /*@-nullstate@*/ /* FIX: con->finalArgv[] == NULL */ - return 1; - /*@=nullstate@*/ -} -/*@=boundswrite@*/ - -/* Only one of longName, shortName may be set at a time */ -static int handleAlias(/*@special@*/ poptContext con, - /*@null@*/ const char * longName, char shortName, - /*@exposed@*/ /*@null@*/ const char * nextCharArg) - /*@uses con->aliases, con->numAliases, con->optionStack, con->os, - con->os->currAlias, con->os->currAlias->option.longName @*/ - /*@modifies con @*/ -{ - poptItem item = con->os->currAlias; - int rc; - int i; - - if (item) { - if (longName && (item->option.longName && - !strcmp(longName, item->option.longName))) - return 0; - if (shortName && shortName == item->option.shortName) - return 0; - } - - if (con->aliases == NULL || con->numAliases <= 0) /* XXX can't happen */ - return 0; - - for (i = con->numAliases - 1; i >= 0; i--) { - item = con->aliases + i; - if (longName && !(item->option.longName && - !strcmp(longName, item->option.longName))) - continue; - else if (shortName != item->option.shortName) - continue; - break; - } - if (i < 0) return 0; - - if ((con->os - con->optionStack + 1) == POPT_OPTION_DEPTH) - return POPT_ERROR_OPTSTOODEEP; - -/*@-boundsread@*/ - if (nextCharArg && *nextCharArg) - con->os->nextCharArg = nextCharArg; -/*@=boundsread@*/ - - con->os++; - con->os->next = 0; - con->os->stuffed = 0; - con->os->nextArg = NULL; - con->os->nextCharArg = NULL; - con->os->currAlias = con->aliases + i; - rc = poptDupArgv(con->os->currAlias->argc, con->os->currAlias->argv, - &con->os->argc, &con->os->argv); - con->os->argb = NULL; - - return (rc ? rc : 1); -} - -/*@-bounds -boundswrite @*/ -static int execCommand(poptContext con) - /*@globals internalState @*/ - /*@modifies internalState @*/ -{ - poptItem item = con->doExec; - const char ** argv; - int argc = 0; - int rc; - - if (item == NULL) /*XXX can't happen*/ - return POPT_ERROR_NOARG; - - if (item->argv == NULL || item->argc < 1 || - (!con->execAbsolute && strchr(item->argv[0], '/'))) - return POPT_ERROR_NOARG; - - argv = malloc(sizeof(*argv) * - (6 + item->argc + con->numLeftovers + con->finalArgvCount)); - if (argv == NULL) return POPT_ERROR_MALLOC; - - if (!strchr(item->argv[0], '/') && con->execPath != NULL) { - char *s = alloca(strlen(con->execPath) + strlen(item->argv[0]) + sizeof("/")); - sprintf(s, "%s/%s", con->execPath, item->argv[0]); - argv[argc] = s; - } else - argv[argc] = findProgramPath(item->argv[0]); - if (argv[argc++] == NULL) return POPT_ERROR_NOARG; - - if (item->argc > 1) { - memcpy(argv + argc, item->argv + 1, sizeof(*argv) * (item->argc - 1)); - argc += (item->argc - 1); - } - - if (con->finalArgv != NULL && con->finalArgvCount > 0) { - memcpy(argv + argc, con->finalArgv, - sizeof(*argv) * con->finalArgvCount); - argc += con->finalArgvCount; - } - - if (con->leftovers != NULL && con->numLeftovers > 0) { - memcpy(argv + argc, con->leftovers, sizeof(*argv) * con->numLeftovers); - argc += con->numLeftovers; - } - - argv[argc] = NULL; - -#ifdef __hpux - rc = setresgid(getgid(), getgid(),-1); - if (rc) return POPT_ERROR_ERRNO; - rc = setresuid(getuid(), getuid(),-1); - if (rc) return POPT_ERROR_ERRNO; -#else -/* - * XXX " ... on BSD systems setuid() should be preferred over setreuid()" - * XXX sez' Timur Bakeyev <mc@bat.ru> - * XXX from Norbert Warmuth <nwarmuth@privat.circular.de> - */ -#if defined(HAVE_SETUID) - rc = setgid(getgid()); - if (rc) return POPT_ERROR_ERRNO; - rc = setuid(getuid()); - if (rc) return POPT_ERROR_ERRNO; -#elif defined (HAVE_SETREUID) - rc = setregid(getgid(), getgid()); - if (rc) return POPT_ERROR_ERRNO; - rc = setreuid(getuid(), getuid()); - if (rc) return POPT_ERROR_ERRNO; -#else - ; /* Can't drop privileges */ -#endif -#endif - - if (argv[0] == NULL) - return POPT_ERROR_NOARG; - -#ifdef MYDEBUG -if (_popt_debug) - { const char ** avp; - fprintf(stderr, "==> execvp(%s) argv[%d]:", argv[0], argc); - for (avp = argv; *avp; avp++) - fprintf(stderr, " '%s'", *avp); - fprintf(stderr, "\n"); - } -#endif - - rc = execvp(argv[0], (char *const *)argv); - - return POPT_ERROR_ERRNO; -} -/*@=bounds =boundswrite @*/ - -/*@-boundswrite@*/ -/*@observer@*/ /*@null@*/ static const struct poptOption * -findOption(const struct poptOption * opt, /*@null@*/ const char * longName, - char shortName, - /*@null@*/ /*@out@*/ poptCallbackType * callback, - /*@null@*/ /*@out@*/ const void ** callbackData, - int singleDash) - /*@modifies *callback, *callbackData */ -{ - const struct poptOption * cb = NULL; - - /* This happens when a single - is given */ - if (singleDash && !shortName && (longName && *longName == '\0')) - shortName = '-'; - - for (; opt->longName || opt->shortName || opt->arg; opt++) { - - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - const struct poptOption * opt2; - void * arg = opt->arg; - -/*@-branchstate@*/ - /* XXX sick hack to preserve pretense of ABI. */ - if (arg == poptHelpOptions) arg = poptHelpOptionsI18N; -/*@=branchstate@*/ - /* Recurse on included sub-tables. */ - if (arg == NULL) continue; /* XXX program error */ - opt2 = findOption(arg, longName, shortName, callback, - callbackData, singleDash); - if (opt2 == NULL) continue; - /* Sub-table data will be inheirited if no data yet. */ - if (!(callback && *callback)) return opt2; - if (!(callbackData && *callbackData == NULL)) return opt2; - /*@-observertrans -dependenttrans @*/ - *callbackData = opt->descrip; - /*@=observertrans =dependenttrans @*/ - return opt2; - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK) { - cb = opt; - } else if (longName && opt->longName && - (!singleDash || (opt->argInfo & POPT_ARGFLAG_ONEDASH)) && - /*@-nullpass@*/ /* LCL: opt->longName != NULL */ - !strcmp(longName, opt->longName)) - /*@=nullpass@*/ - { - break; - } else if (shortName && shortName == opt->shortName) { - break; - } - } - - if (!opt->longName && !opt->shortName) - return NULL; - /*@-modobserver -mods @*/ - if (callback) *callback = NULL; - if (callbackData) *callbackData = NULL; - if (cb) { - if (callback) - /*@-castfcnptr@*/ - *callback = (poptCallbackType)cb->arg; - /*@=castfcnptr@*/ - if (!(cb->argInfo & POPT_CBFLAG_INC_DATA)) { - if (callbackData) - /*@-observertrans@*/ /* FIX: typedef double indirection. */ - *callbackData = cb->descrip; - /*@=observertrans@*/ - } - } - /*@=modobserver =mods @*/ - - return opt; -} -/*@=boundswrite@*/ - -static const char * findNextArg(/*@special@*/ poptContext con, - unsigned argx, int delete_arg) - /*@uses con->optionStack, con->os, - con->os->next, con->os->argb, con->os->argc, con->os->argv @*/ - /*@modifies con @*/ -{ - struct optionStackEntry * os = con->os; - const char * arg; - - do { - int i; - arg = NULL; - while (os->next == os->argc && os > con->optionStack) os--; - if (os->next == os->argc && os == con->optionStack) break; - if (os->argv != NULL) - for (i = os->next; i < os->argc; i++) { - /*@-sizeoftype@*/ - if (os->argb && PBM_ISSET(i, os->argb)) - /*@innercontinue@*/ continue; - if (*os->argv[i] == '-') - /*@innercontinue@*/ continue; - if (--argx > 0) - /*@innercontinue@*/ continue; - arg = os->argv[i]; - if (delete_arg) { - if (os->argb == NULL) os->argb = PBM_ALLOC(os->argc); - if (os->argb != NULL) /* XXX can't happen */ - PBM_SET(i, os->argb); - } - /*@innerbreak@*/ break; - /*@=sizeoftype@*/ - } - if (os > con->optionStack) os--; - } while (arg == NULL); - return arg; -} - -/*@-boundswrite@*/ -static /*@only@*/ /*@null@*/ const char * -expandNextArg(/*@special@*/ poptContext con, const char * s) - /*@uses con->optionStack, con->os, - con->os->next, con->os->argb, con->os->argc, con->os->argv @*/ - /*@modifies con @*/ -{ - const char * a = NULL; - size_t alen; - char *t, *te; - size_t tn = strlen(s) + 1; - char c; - - te = t = malloc(tn);; - if (t == NULL) return NULL; /* XXX can't happen */ - while ((c = *s++) != '\0') { - switch (c) { -#if 0 /* XXX can't do this */ - case '\\': /* escape */ - c = *s++; - /*@switchbreak@*/ break; -#endif - case '!': - if (!(s[0] == '#' && s[1] == ':' && s[2] == '+')) - /*@switchbreak@*/ break; - /* XXX Make sure that findNextArg deletes only next arg. */ - if (a == NULL) { - if ((a = findNextArg(con, 1, 1)) == NULL) - /*@switchbreak@*/ break; - } - s += 3; - - alen = strlen(a); - tn += alen; - *te = '\0'; - t = realloc(t, tn); - te = t + strlen(t); - strncpy(te, a, alen); te += alen; - continue; - /*@notreached@*/ /*@switchbreak@*/ break; - default: - /*@switchbreak@*/ break; - } - *te++ = c; - } - *te = '\0'; - t = realloc(t, strlen(t) + 1); /* XXX memory leak, hard to plug */ - return t; -} -/*@=boundswrite@*/ - -static void poptStripArg(/*@special@*/ poptContext con, int which) - /*@uses con->arg_strip, con->optionStack @*/ - /*@defines con->arg_strip @*/ - /*@modifies con @*/ -{ - /*@-sizeoftype@*/ - if (con->arg_strip == NULL) - con->arg_strip = PBM_ALLOC(con->optionStack[0].argc); - if (con->arg_strip != NULL) /* XXX can't happen */ - PBM_SET(which, con->arg_strip); - /*@=sizeoftype@*/ - /*@-compdef@*/ /* LCL: con->arg_strip udefined? */ - return; - /*@=compdef@*/ -} - -int poptSaveLong(long * arg, int argInfo, long aLong) -{ - /* XXX Check alignment, may fail on funky platforms. */ - if (arg == NULL || (((unsigned long)arg) & (sizeof(*arg)-1))) - return POPT_ERROR_NULLARG; - - if (argInfo & POPT_ARGFLAG_NOT) - aLong = ~aLong; - switch (argInfo & POPT_ARGFLAG_LOGICALOPS) { - case 0: - *arg = aLong; - break; - case POPT_ARGFLAG_OR: - *arg |= aLong; - break; - case POPT_ARGFLAG_AND: - *arg &= aLong; - break; - case POPT_ARGFLAG_XOR: - *arg ^= aLong; - break; - default: - return POPT_ERROR_BADOPERATION; - /*@notreached@*/ break; - } - return 0; -} - -int poptSaveInt(/*@null@*/ int * arg, int argInfo, long aLong) -{ - /* XXX Check alignment, may fail on funky platforms. */ - if (arg == NULL || (((unsigned long)arg) & (sizeof(*arg)-1))) - return POPT_ERROR_NULLARG; - - if (argInfo & POPT_ARGFLAG_NOT) - aLong = ~aLong; - switch (argInfo & POPT_ARGFLAG_LOGICALOPS) { - case 0: - *arg = aLong; - break; - case POPT_ARGFLAG_OR: - *arg |= aLong; - break; - case POPT_ARGFLAG_AND: - *arg &= aLong; - break; - case POPT_ARGFLAG_XOR: - *arg ^= aLong; - break; - default: - return POPT_ERROR_BADOPERATION; - /*@notreached@*/ break; - } - return 0; -} - -/*@-boundswrite@*/ -/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */ -int poptGetNextOpt(poptContext con) -{ - const struct poptOption * opt = NULL; - int done = 0; - - if (con == NULL) - return -1; - while (!done) { - const char * origOptString = NULL; - poptCallbackType cb = NULL; - const void * cbData = NULL; - const char * longArg = NULL; - int canstrip = 0; - int shorty = 0; - - while (!con->os->nextCharArg && con->os->next == con->os->argc - && con->os > con->optionStack) { - cleanOSE(con->os--); - } - if (!con->os->nextCharArg && con->os->next == con->os->argc) { - /*@-internalglobs@*/ - invokeCallbacksPOST(con, con->options); - /*@=internalglobs@*/ - if (con->doExec) return execCommand(con); - return -1; - } - - /* Process next long option */ - if (!con->os->nextCharArg) { - char * localOptString, * optString; - int thisopt; - - /*@-sizeoftype@*/ - if (con->os->argb && PBM_ISSET(con->os->next, con->os->argb)) { - con->os->next++; - continue; - } - /*@=sizeoftype@*/ - thisopt = con->os->next; - if (con->os->argv != NULL) /* XXX can't happen */ - origOptString = con->os->argv[con->os->next++]; - - if (origOptString == NULL) /* XXX can't happen */ - return POPT_ERROR_BADOPT; - - if (con->restLeftover || *origOptString != '-') { - if (con->flags & POPT_CONTEXT_POSIXMEHARDER) - con->restLeftover = 1; - if (con->flags & POPT_CONTEXT_ARG_OPTS) { - con->os->nextArg = xstrdup(origOptString); - return 0; - } - if (con->leftovers != NULL) /* XXX can't happen */ - con->leftovers[con->numLeftovers++] = origOptString; - continue; - } - - /* Make a copy we can hack at */ - localOptString = optString = - strcpy(alloca(strlen(origOptString) + 1), origOptString); - - if (optString[0] == '\0') - return POPT_ERROR_BADOPT; - - if (optString[1] == '-' && !optString[2]) { - con->restLeftover = 1; - continue; - } else { - char *oe; - int singleDash; - - optString++; - if (*optString == '-') - singleDash = 0, optString++; - else - singleDash = 1; - - /* XXX aliases with arg substitution need "--alias=arg" */ - if (handleAlias(con, optString, '\0', NULL)) - continue; - - if (handleExec(con, optString, '\0')) - continue; - - /* Check for "--long=arg" option. */ - for (oe = optString; *oe && *oe != '='; oe++) - {}; - if (*oe == '=') { - *oe++ = '\0'; - /* XXX longArg is mapped back to persistent storage. */ - longArg = origOptString + (oe - localOptString); - } - - opt = findOption(con->options, optString, '\0', &cb, &cbData, - singleDash); - if (!opt && !singleDash) - return POPT_ERROR_BADOPT; - } - - if (!opt) { - con->os->nextCharArg = origOptString + 1; - } else { - if (con->os == con->optionStack && - opt->argInfo & POPT_ARGFLAG_STRIP) - { - canstrip = 1; - poptStripArg(con, thisopt); - } - shorty = 0; - } - } - - /* Process next short option */ - /*@-branchstate@*/ /* FIX: W2DO? */ - if (con->os->nextCharArg) { - origOptString = con->os->nextCharArg; - - con->os->nextCharArg = NULL; - - if (handleAlias(con, NULL, *origOptString, origOptString + 1)) - continue; - - if (handleExec(con, NULL, *origOptString)) { - /* Restore rest of short options for further processing */ - origOptString++; - if (*origOptString != '\0') - con->os->nextCharArg = origOptString; - continue; - } - - opt = findOption(con->options, NULL, *origOptString, &cb, - &cbData, 0); - if (!opt) - return POPT_ERROR_BADOPT; - shorty = 1; - - origOptString++; - if (*origOptString != '\0') - con->os->nextCharArg = origOptString; - } - /*@=branchstate@*/ - - if (opt == NULL) return POPT_ERROR_BADOPT; /* XXX can't happen */ - if (opt->arg && (opt->argInfo & POPT_ARG_MASK) == POPT_ARG_NONE) { - if (poptSaveInt((int *)opt->arg, opt->argInfo, 1L)) - return POPT_ERROR_BADOPERATION; - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_VAL) { - if (opt->arg) { - if (poptSaveInt((int *)opt->arg, opt->argInfo, (long)opt->val)) - return POPT_ERROR_BADOPERATION; - } - } else if ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE) { - con->os->nextArg = _free(con->os->nextArg); - /*@-usedef@*/ /* FIX: W2DO? */ - if (longArg) { - /*@=usedef@*/ - longArg = expandNextArg(con, longArg); - con->os->nextArg = longArg; - } else if (con->os->nextCharArg) { - longArg = expandNextArg(con, con->os->nextCharArg); - con->os->nextArg = longArg; - con->os->nextCharArg = NULL; - } else { - while (con->os->next == con->os->argc && - con->os > con->optionStack) { - cleanOSE(con->os--); - } - if (con->os->next == con->os->argc) { - if (!(opt->argInfo & POPT_ARGFLAG_OPTIONAL)) - /*@-compdef@*/ /* FIX: con->os->argv not defined */ - return POPT_ERROR_NOARG; - /*@=compdef@*/ - con->os->nextArg = NULL; - } else { - - /* - * Make sure this isn't part of a short arg or the - * result of an alias expansion. - */ - if (con->os == con->optionStack && - (opt->argInfo & POPT_ARGFLAG_STRIP) && - canstrip) { - poptStripArg(con, con->os->next); - } - - if (con->os->argv != NULL) { /* XXX can't happen */ - /* XXX watchout: subtle side-effects live here. */ - longArg = con->os->argv[con->os->next++]; - longArg = expandNextArg(con, longArg); - con->os->nextArg = longArg; - } - } - } - longArg = NULL; - - if (opt->arg) { - switch (opt->argInfo & POPT_ARG_MASK) { - case POPT_ARG_STRING: - /* XXX memory leak, hard to plug */ - *((const char **) opt->arg) = (con->os->nextArg) - ? xstrdup(con->os->nextArg) : NULL; - /*@switchbreak@*/ break; - - case POPT_ARG_INT: - case POPT_ARG_LONG: - { long aLong = 0; - char *end; - - if (con->os->nextArg) { - aLong = strtol(con->os->nextArg, &end, 0); - if (!(end && *end == '\0')) - return POPT_ERROR_BADNUMBER; - } - - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_LONG) { - if (aLong == LONG_MIN || aLong == LONG_MAX) - return POPT_ERROR_OVERFLOW; - if (poptSaveLong((long *)opt->arg, opt->argInfo, aLong)) - return POPT_ERROR_BADOPERATION; - } else { - if (aLong > INT_MAX || aLong < INT_MIN) - return POPT_ERROR_OVERFLOW; - if (poptSaveInt((int *)opt->arg, opt->argInfo, aLong)) - return POPT_ERROR_BADOPERATION; - } - } /*@switchbreak@*/ break; - - case POPT_ARG_FLOAT: - case POPT_ARG_DOUBLE: - { double aDouble = 0.0; - char *end; - - if (con->os->nextArg) { - /*@-mods@*/ - int saveerrno = errno; - errno = 0; - aDouble = strtod(con->os->nextArg, &end); - if (errno == ERANGE) - return POPT_ERROR_OVERFLOW; - errno = saveerrno; - /*@=mods@*/ - if (*end != '\0') - return POPT_ERROR_BADNUMBER; - } - - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_DOUBLE) { - *((double *) opt->arg) = aDouble; - } else { -#define _ABS(a) ((((a) - 0.0) < DBL_EPSILON) ? -(a) : (a)) - if ((_ABS(aDouble) - FLT_MAX) > DBL_EPSILON) - return POPT_ERROR_OVERFLOW; - if ((FLT_MIN - _ABS(aDouble)) > DBL_EPSILON) - return POPT_ERROR_OVERFLOW; - *((float *) opt->arg) = aDouble; - } - } /*@switchbreak@*/ break; - default: - fprintf(stdout, - POPT_("option type (%d) not implemented in popt\n"), - (opt->argInfo & POPT_ARG_MASK)); - exit(EXIT_FAILURE); - /*@notreached@*/ /*@switchbreak@*/ break; - } - } - } - - if (cb) { - /*@-internalglobs@*/ - invokeCallbacksOPTION(con, con->options, opt, cbData, shorty); - /*@=internalglobs@*/ - } else if (opt->val && ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_VAL)) - done = 1; - - if ((con->finalArgvCount + 2) >= (con->finalArgvAlloced)) { - con->finalArgvAlloced += 10; - con->finalArgv = realloc(con->finalArgv, - sizeof(*con->finalArgv) * con->finalArgvAlloced); - } - - if (con->finalArgv != NULL) - { char *s = malloc((opt->longName ? strlen(opt->longName) : 0) + 3); - if (s != NULL) { /* XXX can't happen */ - if (opt->longName) - sprintf(s, "%s%s", - ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "-" : "--"), - opt->longName); - else - sprintf(s, "-%c", opt->shortName); - con->finalArgv[con->finalArgvCount++] = s; - } else - con->finalArgv[con->finalArgvCount++] = NULL; - } - - if (opt->arg && (opt->argInfo & POPT_ARG_MASK) == POPT_ARG_NONE) - /*@-ifempty@*/ ; /*@=ifempty@*/ - else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_VAL) - /*@-ifempty@*/ ; /*@=ifempty@*/ - else if ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE) { - if (con->finalArgv != NULL && con->os->nextArg) - con->finalArgv[con->finalArgvCount++] = - /*@-nullpass@*/ /* LCL: con->os->nextArg != NULL */ - xstrdup(con->os->nextArg); - /*@=nullpass@*/ - } - } - - return (opt ? opt->val : -1); /* XXX can't happen */ -} -/*@=boundswrite@*/ - -const char * poptGetOptArg(poptContext con) -{ - const char * ret = NULL; - /*@-branchstate@*/ - if (con) { - ret = con->os->nextArg; - con->os->nextArg = NULL; - } - /*@=branchstate@*/ - return ret; -} - -const char * poptGetArg(poptContext con) -{ - const char * ret = NULL; - if (con && con->leftovers != NULL && con->nextLeftover < con->numLeftovers) - ret = con->leftovers[con->nextLeftover++]; - return ret; -} - -const char * poptPeekArg(poptContext con) -{ - const char * ret = NULL; - if (con && con->leftovers != NULL && con->nextLeftover < con->numLeftovers) - ret = con->leftovers[con->nextLeftover]; - return ret; -} - -/*@-boundswrite@*/ -const char ** poptGetArgs(poptContext con) -{ - if (con == NULL || - con->leftovers == NULL || con->numLeftovers == con->nextLeftover) - return NULL; - - /* some apps like [like RPM ;-) ] need this NULL terminated */ - con->leftovers[con->numLeftovers] = NULL; - - /*@-nullret -nullstate @*/ /* FIX: typedef double indirection. */ - return (con->leftovers + con->nextLeftover); - /*@=nullret =nullstate @*/ -} -/*@=boundswrite@*/ - -poptContext poptFreeContext(poptContext con) -{ - poptItem item; - int i; - - if (con == NULL) return con; - poptResetContext(con); - con->os->argb = _free(con->os->argb); - - if (con->aliases != NULL) - for (i = 0; i < con->numAliases; i++) { - item = con->aliases + i; - /*@-modobserver -observertrans -dependenttrans@*/ - item->option.longName = _free(item->option.longName); - item->option.descrip = _free(item->option.descrip); - item->option.argDescrip = _free(item->option.argDescrip); - /*@=modobserver =observertrans =dependenttrans@*/ - item->argv = _free(item->argv); - } - con->aliases = _free(con->aliases); - - if (con->execs != NULL) - for (i = 0; i < con->numExecs; i++) { - item = con->execs + i; - /*@-modobserver -observertrans -dependenttrans@*/ - item->option.longName = _free(item->option.longName); - item->option.descrip = _free(item->option.descrip); - item->option.argDescrip = _free(item->option.argDescrip); - /*@=modobserver =observertrans =dependenttrans@*/ - item->argv = _free(item->argv); - } - con->execs = _free(con->execs); - - con->leftovers = _free(con->leftovers); - con->finalArgv = _free(con->finalArgv); - con->appName = _free(con->appName); - con->otherHelp = _free(con->otherHelp); - con->execPath = _free(con->execPath); - con->arg_strip = PBM_FREE(con->arg_strip); - - con = _free(con); - return con; -} - -int poptAddAlias(poptContext con, struct poptAlias alias, - /*@unused@*/ int flags) -{ - poptItem item = alloca(sizeof(*item)); - memset(item, 0, sizeof(*item)); - item->option.longName = alias.longName; - item->option.shortName = alias.shortName; - item->option.argInfo = POPT_ARGFLAG_DOC_HIDDEN; - item->option.arg = 0; - item->option.val = 0; - item->option.descrip = NULL; - item->option.argDescrip = NULL; - item->argc = alias.argc; - item->argv = alias.argv; - return poptAddItem(con, item, 0); -} - -/*@-boundswrite@*/ -/*@-mustmod@*/ /* LCL: con not modified? */ -int poptAddItem(poptContext con, poptItem newItem, int flags) -{ - poptItem * items, item; - int * nitems; - - switch (flags) { - case 1: - items = &con->execs; - nitems = &con->numExecs; - break; - case 0: - items = &con->aliases; - nitems = &con->numAliases; - break; - default: - return 1; - /*@notreached@*/ break; - } - - *items = realloc((*items), ((*nitems) + 1) * sizeof(**items)); - if ((*items) == NULL) - return 1; - - item = (*items) + (*nitems); - - item->option.longName = - (newItem->option.longName ? xstrdup(newItem->option.longName) : NULL); - item->option.shortName = newItem->option.shortName; - item->option.argInfo = newItem->option.argInfo; - item->option.arg = newItem->option.arg; - item->option.val = newItem->option.val; - item->option.descrip = - (newItem->option.descrip ? xstrdup(newItem->option.descrip) : NULL); - item->option.argDescrip = - (newItem->option.argDescrip ? xstrdup(newItem->option.argDescrip) : NULL); - item->argc = newItem->argc; - item->argv = newItem->argv; - - (*nitems)++; - - return 0; -} -/*@=mustmod@*/ -/*@=boundswrite@*/ - -const char * poptBadOption(poptContext con, int flags) -{ - struct optionStackEntry * os = NULL; - - if (con != NULL) - os = (flags & POPT_BADOPTION_NOALIAS) ? con->optionStack : con->os; - - /*@-nullderef@*/ /* LCL: os->argv != NULL */ - return (os && os->argv ? os->argv[os->next - 1] : NULL); - /*@=nullderef@*/ -} - -const char *const poptStrerror(const int error) -{ - switch (error) { - case POPT_ERROR_NOARG: - return POPT_("missing argument"); - case POPT_ERROR_BADOPT: - return POPT_("unknown option"); - case POPT_ERROR_BADOPERATION: - return POPT_("mutually exclusive logical operations requested"); - case POPT_ERROR_NULLARG: - return POPT_("opt->arg should not be NULL"); - case POPT_ERROR_OPTSTOODEEP: - return POPT_("aliases nested too deeply"); - case POPT_ERROR_BADQUOTE: - return POPT_("error in parameter quoting"); - case POPT_ERROR_BADNUMBER: - return POPT_("invalid numeric value"); - case POPT_ERROR_OVERFLOW: - return POPT_("number too large or too small"); - case POPT_ERROR_MALLOC: - return POPT_("memory allocation failed"); - case POPT_ERROR_ERRNO: - return strerror(errno); - default: - return POPT_("unknown error"); - } -} - -int poptStuffArgs(poptContext con, const char ** argv) -{ - int argc; - int rc; - - if ((con->os - con->optionStack) == POPT_OPTION_DEPTH) - return POPT_ERROR_OPTSTOODEEP; - - for (argc = 0; argv[argc]; argc++) - {}; - - con->os++; - con->os->next = 0; - con->os->nextArg = NULL; - con->os->nextCharArg = NULL; - con->os->currAlias = NULL; - rc = poptDupArgv(argc, argv, &con->os->argc, &con->os->argv); - con->os->argb = NULL; - con->os->stuffed = 1; - - return rc; -} - -const char * poptGetInvocationName(poptContext con) -{ - return (con->os->argv ? con->os->argv[0] : ""); -} - -/*@-boundswrite@*/ -int poptStrippedArgv(poptContext con, int argc, char ** argv) -{ - int numargs = argc; - int j = 1; - int i; - - /*@-sizeoftype@*/ - if (con->arg_strip) - for (i = 1; i < argc; i++) { - if (PBM_ISSET(i, con->arg_strip)) - numargs--; - } - - for (i = 1; i < argc; i++) { - if (con->arg_strip && PBM_ISSET(i, con->arg_strip)) - continue; - argv[j] = (j < numargs) ? argv[i] : NULL; - j++; - } - /*@=sizeoftype@*/ - - return numargs; -} -/*@=boundswrite@*/ diff --git a/popt/popt.h b/popt/popt.h deleted file mode 100644 index e36e0db68..000000000 --- a/popt/popt.h +++ /dev/null @@ -1,564 +0,0 @@ -/** \file popt/popt.h - * \ingroup popt - */ - -/* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#ifndef H_POPT -#define H_POPT - -#include <stdio.h> /* for FILE * */ - -#define POPT_OPTION_DEPTH 10 - -/** \ingroup popt - * \name Arg type identifiers - */ -/*@{*/ -#define POPT_ARG_NONE 0 /*!< no arg */ -#define POPT_ARG_STRING 1 /*!< arg will be saved as string */ -#define POPT_ARG_INT 2 /*!< arg will be converted to int */ -#define POPT_ARG_LONG 3 /*!< arg will be converted to long */ -#define POPT_ARG_INCLUDE_TABLE 4 /*!< arg points to table */ -#define POPT_ARG_CALLBACK 5 /*!< table-wide callback... must be - set first in table; arg points - to callback, descrip points to - callback data to pass */ -#define POPT_ARG_INTL_DOMAIN 6 /*!< set the translation domain - for this table and any - included tables; arg points - to the domain string */ -#define POPT_ARG_VAL 7 /*!< arg should take value val */ -#define POPT_ARG_FLOAT 8 /*!< arg will be converted to float */ -#define POPT_ARG_DOUBLE 9 /*!< arg will be converted to double */ - -#define POPT_ARG_MASK 0x0000FFFF -/*@}*/ - -/** \ingroup popt - * \name Arg modifiers - */ -/*@{*/ -#define POPT_ARGFLAG_ONEDASH 0x80000000 /*!< allow -longoption */ -#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000 /*!< don't show in help/usage */ -#define POPT_ARGFLAG_STRIP 0x20000000 /*!< strip this arg from argv(only applies to long args) */ -#define POPT_ARGFLAG_OPTIONAL 0x10000000 /*!< arg may be missing */ - -#define POPT_ARGFLAG_OR 0x08000000 /*!< arg will be or'ed */ -#define POPT_ARGFLAG_NOR 0x09000000 /*!< arg will be nor'ed */ -#define POPT_ARGFLAG_AND 0x04000000 /*!< arg will be and'ed */ -#define POPT_ARGFLAG_NAND 0x05000000 /*!< arg will be nand'ed */ -#define POPT_ARGFLAG_XOR 0x02000000 /*!< arg will be xor'ed */ -#define POPT_ARGFLAG_NOT 0x01000000 /*!< arg will be negated */ -#define POPT_ARGFLAG_LOGICALOPS \ - (POPT_ARGFLAG_OR|POPT_ARGFLAG_AND|POPT_ARGFLAG_XOR) - -#define POPT_BIT_SET (POPT_ARG_VAL|POPT_ARGFLAG_OR) - /*!< set arg bit(s) */ -#define POPT_BIT_CLR (POPT_ARG_VAL|POPT_ARGFLAG_NAND) - /*!< clear arg bit(s) */ - -#define POPT_ARGFLAG_SHOW_DEFAULT 0x00800000 /*!< show default value in --help */ - -/*@}*/ - -/** \ingroup popt - * \name Callback modifiers - */ -/*@{*/ -#define POPT_CBFLAG_PRE 0x80000000 /*!< call the callback before parse */ -#define POPT_CBFLAG_POST 0x40000000 /*!< call the callback after parse */ -#define POPT_CBFLAG_INC_DATA 0x20000000 /*!< use data from the include line, - not the subtable */ -#define POPT_CBFLAG_SKIPOPTION 0x10000000 /*!< don't callback with option */ -#define POPT_CBFLAG_CONTINUE 0x08000000 /*!< continue callbacks with option */ -/*@}*/ - -/** \ingroup popt - * \name Error return values - */ -/*@{*/ -#define POPT_ERROR_NOARG -10 /*!< missing argument */ -#define POPT_ERROR_BADOPT -11 /*!< unknown option */ -#define POPT_ERROR_OPTSTOODEEP -13 /*!< aliases nested too deeply */ -#define POPT_ERROR_BADQUOTE -15 /*!< error in paramter quoting */ -#define POPT_ERROR_ERRNO -16 /*!< errno set, use strerror(errno) */ -#define POPT_ERROR_BADNUMBER -17 /*!< invalid numeric value */ -#define POPT_ERROR_OVERFLOW -18 /*!< number too large or too small */ -#define POPT_ERROR_BADOPERATION -19 /*!< mutually exclusive logical operations requested */ -#define POPT_ERROR_NULLARG -20 /*!< opt->arg should not be NULL */ -#define POPT_ERROR_MALLOC -21 /*!< memory allocation failed */ -/*@}*/ - -/** \ingroup popt - * \name poptBadOption() flags - */ -/*@{*/ -#define POPT_BADOPTION_NOALIAS (1 << 0) /*!< don't go into an alias */ -/*@}*/ - -/** \ingroup popt - * \name poptGetContext() flags - */ -/*@{*/ -#define POPT_CONTEXT_NO_EXEC (1 << 0) /*!< ignore exec expansions */ -#define POPT_CONTEXT_KEEP_FIRST (1 << 1) /*!< pay attention to argv[0] */ -#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /*!< options can't follow args */ -#define POPT_CONTEXT_ARG_OPTS (1 << 4) /*!< return args as options with value 0 */ -/*@}*/ - -/** \ingroup popt - */ -struct poptOption { -/*@observer@*/ /*@null@*/ - const char * longName; /*!< may be NULL */ - char shortName; /*!< may be NUL */ - int argInfo; -/*@shared@*/ /*@null@*/ - void * arg; /*!< depends on argInfo */ - int val; /*!< 0 means don't return, just update flag */ -/*@observer@*/ /*@null@*/ - const char * descrip; /*!< description for autohelp -- may be NULL */ -/*@observer@*/ /*@null@*/ - const char * argDescrip; /*!< argument description for autohelp */ -}; - -/** \ingroup popt - * A popt alias argument for poptAddAlias(). - */ -struct poptAlias { -/*@owned@*/ /*@null@*/ - const char * longName; /*!< may be NULL */ - char shortName; /*!< may be NUL */ - int argc; -/*@owned@*/ - const char ** argv; /*!< must be free()able */ -}; - -/** \ingroup popt - * A popt alias or exec argument for poptAddItem(). - */ -/*@-exporttype@*/ -typedef struct poptItem_s { - struct poptOption option; /*!< alias/exec name(s) and description. */ - int argc; /*!< (alias) no. of args. */ -/*@owned@*/ - const char ** argv; /*!< (alias) args, must be free()able. */ -} * poptItem; -/*@=exporttype@*/ - -/** \ingroup popt - * \name Auto-generated help/usage - */ -/*@{*/ - -/** - * Empty table marker to enable displaying popt alias/exec options. - */ -/*@-exportvar@*/ -/*@unchecked@*/ /*@observer@*/ -extern struct poptOption poptAliasOptions[]; -/*@=exportvar@*/ -#define POPT_AUTOALIAS { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptAliasOptions, \ - 0, "Options implemented via popt alias/exec:", NULL }, - -/** - * Auto help table options. - */ -/*@-exportvar@*/ -/*@unchecked@*/ /*@observer@*/ -extern struct poptOption poptHelpOptions[]; -/*@=exportvar@*/ - -/*@-exportvar@*/ -/*@unchecked@*/ /*@observer@*/ -extern struct poptOption * poptHelpOptionsI18N; -/*@=exportvar@*/ - -#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \ - 0, "Help options:", NULL }, - -#define POPT_TABLEEND { NULL, '\0', 0, NULL, 0, NULL, NULL } -/*@}*/ - -/** \ingroup popt - */ -/*@-exporttype@*/ -typedef /*@abstract@*/ struct poptContext_s * poptContext; -/*@=exporttype@*/ - -/** \ingroup popt - */ -#ifndef __cplusplus -/*@-exporttype -typeuse@*/ -typedef struct poptOption * poptOption; -/*@=exporttype =typeuse@*/ -#endif - -/*@-exportconst@*/ -enum poptCallbackReason { - POPT_CALLBACK_REASON_PRE = 0, - POPT_CALLBACK_REASON_POST = 1, - POPT_CALLBACK_REASON_OPTION = 2 -}; -/*@=exportconst@*/ - -#ifdef __cplusplus -extern "C" { -#endif -/*@-type@*/ - -/** \ingroup popt - * Table callback prototype. - * @param con context - * @param reason reason for callback - * @param opt option that triggered callback - * @param arg @todo Document. - * @param data @todo Document. - */ -typedef void (*poptCallbackType) (poptContext con, - enum poptCallbackReason reason, - /*@null@*/ const struct poptOption * opt, - /*@null@*/ const char * arg, - /*@null@*/ const void * data) - /*@globals internalState @*/ - /*@modifies internalState @*/; - -/** \ingroup popt - * Initialize popt context. - * @param name context name (usually argv[0] program name) - * @param argc no. of arguments - * @param argv argument array - * @param options address of popt option table - * @param flags or'd POPT_CONTEXT_* bits - * @return initialized popt context - */ -/*@only@*/ /*@null@*/ -poptContext poptGetContext( - /*@dependent@*/ /*@keep@*/ const char * name, - int argc, /*@dependent@*/ /*@keep@*/ const char ** argv, - /*@dependent@*/ /*@keep@*/ const struct poptOption * options, - int flags) - /*@*/; - -/** \ingroup popt - * Reinitialize popt context. - * @param con context - */ -/*@unused@*/ -void poptResetContext(/*@null@*/poptContext con) - /*@modifies con @*/; - -/** \ingroup popt - * Return value of next option found. - * @param con context - * @return next option val, -1 on last item, POPT_ERROR_* on error - */ -int poptGetNextOpt(/*@null@*/poptContext con) - /*@globals fileSystem, internalState @*/ - /*@modifies con, fileSystem, internalState @*/; - -/** \ingroup popt - * Return next option argument (if any). - * @param con context - * @return option argument, NULL if no argument is available - */ -/*@observer@*/ /*@null@*/ /*@unused@*/ -const char * poptGetOptArg(/*@null@*/poptContext con) - /*@modifies con @*/; - -/** \ingroup popt - * Return next argument. - * @param con context - * @return next argument, NULL if no argument is available - */ -/*@observer@*/ /*@null@*/ /*@unused@*/ -const char * poptGetArg(/*@null@*/poptContext con) - /*@modifies con @*/; - -/** \ingroup popt - * Peek at current argument. - * @param con context - * @return current argument, NULL if no argument is available - */ -/*@observer@*/ /*@null@*/ /*@unused@*/ -const char * poptPeekArg(/*@null@*/poptContext con) - /*@*/; - -/** \ingroup popt - * Return remaining arguments. - * @param con context - * @return argument array, NULL terminated - */ -/*@observer@*/ /*@null@*/ -const char ** poptGetArgs(/*@null@*/poptContext con) - /*@modifies con @*/; - -/** \ingroup popt - * Return the option which caused the most recent error. - * @param con context - * @param flags - * @return offending option - */ -/*@observer@*/ -const char * poptBadOption(/*@null@*/poptContext con, int flags) - /*@*/; - -/** \ingroup popt - * Destroy context. - * @param con context - * @return NULL always - */ -/*@null@*/ -poptContext poptFreeContext( /*@only@*/ /*@null@*/ poptContext con) - /*@modifies con @*/; - -/** \ingroup popt - * Add arguments to context. - * @param con context - * @param argv argument array, NULL terminated - * @return 0 on success, POPT_ERROR_OPTSTOODEEP on failure - */ -/*@unused@*/ -int poptStuffArgs(poptContext con, /*@keep@*/ const char ** argv) - /*@modifies con @*/; - -/** \ingroup popt - * Add alias to context. - * @todo Pass alias by reference, not value. - * @deprecated Use poptAddItem instead. - * @param con context - * @param alias alias to add - * @param flags (unused) - * @return 0 on success - */ -/*@unused@*/ -int poptAddAlias(poptContext con, struct poptAlias alias, int flags) - /*@modifies con @*/; - -/** \ingroup popt - * Add alias/exec item to context. - * @param con context - * @param newItem alias/exec item to add - * @param flags 0 for alias, 1 for exec - * @return 0 on success - */ -int poptAddItem(poptContext con, poptItem newItem, int flags) - /*@modifies con @*/; - -/** \ingroup popt - * Read configuration file. - * @param con context - * @param fn file name to read - * @return 0 on success, POPT_ERROR_ERRNO on failure - */ -int poptReadConfigFile(poptContext con, const char * fn) - /*@globals errno, fileSystem, internalState @*/ - /*@modifies con->execs, con->numExecs, - errno, fileSystem, internalState @*/; - -/** \ingroup popt - * Read default configuration from /etc/popt and $HOME/.popt. - * @param con context - * @param useEnv (unused) - * @return 0 on success, POPT_ERROR_ERRNO on failure - */ -/*@unused@*/ -int poptReadDefaultConfig(poptContext con, /*@unused@*/ int useEnv) - /*@globals fileSystem, internalState @*/ - /*@modifies con->execs, con->numExecs, - fileSystem, internalState @*/; - -/** \ingroup popt - * Duplicate an argument array. - * @note: The argument array is malloc'd as a single area, so only argv must - * be free'd. - * - * @param argc no. of arguments - * @param argv argument array - * @retval argcPtr address of returned no. of arguments - * @retval argvPtr address of returned argument array - * @return 0 on success, POPT_ERROR_NOARG on failure - */ -int poptDupArgv(int argc, /*@null@*/ const char **argv, - /*@null@*/ /*@out@*/ int * argcPtr, - /*@null@*/ /*@out@*/ const char *** argvPtr) - /*@modifies *argcPtr, *argvPtr @*/; - -/** \ingroup popt - * Parse a string into an argument array. - * The parse allows ', ", and \ quoting, but ' is treated the same as " and - * both may include \ quotes. - * @note: The argument array is malloc'd as a single area, so only argv must - * be free'd. - * - * @param s string to parse - * @retval argcPtr address of returned no. of arguments - * @retval argvPtr address of returned argument array - */ -int poptParseArgvString(const char * s, - /*@out@*/ int * argcPtr, /*@out@*/ const char *** argvPtr) - /*@modifies *argcPtr, *argvPtr @*/; - -/** \ingroup popt - * Parses an input configuration file and returns an string that is a - * command line. For use with popt. You must free the return value when done. - * - * Given the file: -\verbatim -# this line is ignored - # this one too -aaa - bbb - ccc -bla=bla - -this_is = fdsafdas - bad_line= - reall bad line - reall bad line = again -5555= 55555 - test = with lots of spaces -\endverbatim -* -* The result is: -\verbatim ---aaa --bbb --ccc --bla="bla" --this_is="fdsafdas" --5555="55555" --test="with lots of spaces" -\endverbatim -* -* Passing this to poptParseArgvString() yields an argv of: -\verbatim -'--aaa' -'--bbb' -'--ccc' -'--bla=bla' -'--this_is=fdsafdas' -'--5555=55555' -'--test=with lots of spaces' -\endverbatim - * - * @bug NULL is returned if file line is too long. - * @bug Silently ignores invalid lines. - * - * @param fp file handle to read - * @param *argstrp return string of options (malloc'd) - * @param flags unused - * @return 0 on success - * @see poptParseArgvString - */ -/*@-fcnuse@*/ -int poptConfigFileToString(FILE *fp, /*@out@*/ char ** argstrp, int flags) - /*@globals fileSystem @*/ - /*@modifies *fp, *argstrp, fileSystem @*/; -/*@=fcnuse@*/ - -/** \ingroup popt - * Return formatted error string for popt failure. - * @param error popt error - * @return error string - */ -/*@observer@*/ -const char *const poptStrerror(const int error) - /*@*/; - -/** \ingroup popt - * Limit search for executables. - * @param con context - * @param path single path to search for executables - * @param allowAbsolute absolute paths only? - */ -/*@unused@*/ -void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) - /*@modifies con @*/; - -/** \ingroup popt - * Print detailed description of options. - * @param con context - * @param fp ouput file handle - * @param flags (unused) - */ -void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ int flags) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/; - -/** \ingroup popt - * Print terse description of options. - * @param con context - * @param fp ouput file handle - * @param flags (unused) - */ -void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ int flags) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/; - -/** \ingroup popt - * Provide text to replace default "[OPTION...]" in help/usage output. - * @param con context - * @param text replacement text - */ -/*@-fcnuse@*/ -void poptSetOtherOptionHelp(poptContext con, const char * text) - /*@modifies con @*/; -/*@=fcnuse@*/ - -/** \ingroup popt - * Return argv[0] from context. - * @param con context - * @return argv[0] - */ -/*@-fcnuse@*/ -/*@observer@*/ -const char * poptGetInvocationName(poptContext con) - /*@*/; -/*@=fcnuse@*/ - -/** \ingroup popt - * Shuffle argv pointers to remove stripped args, returns new argc. - * @param con context - * @param argc no. of args - * @param argv arg vector - * @return new argc - */ -/*@-fcnuse@*/ -int poptStrippedArgv(poptContext con, int argc, char ** argv) - /*@modifies *argv @*/; -/*@=fcnuse@*/ - -/** - * Save a long, performing logical operation with value. - * @warning Alignment check may be too strict on certain platorms. - * @param arg integer pointer, aligned on int boundary. - * @param argInfo logical operation (see POPT_ARGFLAG_*) - * @param aLong value to use - * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION - */ -/*@-incondefs@*/ -/*@unused@*/ -int poptSaveLong(/*@null@*/ long * arg, int argInfo, long aLong) - /*@modifies *arg @*/ - /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; -/*@=incondefs@*/ - -/** - * Save an integer, performing logical operation with value. - * @warning Alignment check may be too strict on certain platorms. - * @param arg integer pointer, aligned on int boundary. - * @param argInfo logical operation (see POPT_ARGFLAG_*) - * @param aLong value to use - * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION - */ -/*@-incondefs@*/ -/*@unused@*/ -int poptSaveInt(/*@null@*/ int * arg, int argInfo, long aLong) - /*@modifies *arg @*/ - /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; -/*@=incondefs@*/ - -/*@=type@*/ -#ifdef __cplusplus -} -#endif - -#endif diff --git a/popt/popt.ps b/popt/popt.ps deleted file mode 100644 index e744ac43e..000000000 --- a/popt/popt.ps +++ /dev/null @@ -1,7963 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software -%%Title: book.dvi -%%Pages: 11 -%%PageOrder: Ascend -%%BoundingBox: 0 0 567 702 -%%DocumentFonts: ZapfDingbats Palatino-Bold Palatino-Roman -%%+ StoneSans-Bold StoneSans Palatino-Italic PPCode -%%+ StoneSans-SemiboldItalic StoneSans-Semibold PPCodeBold -%%DocumentPaperSizes: Letter -%%EndComments -%DVIPSCommandLine: dvips -k -o "|./fixappendix book.ps" book.dvi -%DVIPSParameters: dpi=600, comments removed -%DVIPSSource: TeX output 1998.03.23:1523 -%%BeginProcSet: tex.pro -/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N -/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 -mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} -ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale -isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div -hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul -TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} -forall round exch round exch]setmatrix}N /@landscape{/isls true N}B -/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B -/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ -/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N -string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N -end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ -/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] -N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup -length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ -128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub -get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data -dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N -/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup -/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx -0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff -setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff -.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} -if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup -length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ -cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin -0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul -add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict -/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook -known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X -/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for -65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 -0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V -{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 -getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} -ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false -RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 -false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform -round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg -rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail -{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} -B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ -4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ -p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p -a}B /bos{/SS save N}B /eos{SS restore}B end -%%EndProcSet -%%BeginFont: Palatino-Bold -% @@psencodingfile@{ -% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", -% version = "0.6", -% date = "22 June 1996", -% filename = "8r.enc", -% email = "kb@@mail.tug.org", -% address = "135 Center Hill Rd. // Plymouth, MA 02360", -% codetable = "ISO/ASCII", -% checksum = "119 662 4424", -% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." -% @} -% -% Idea is to have all the characters normally included in Type 1 fonts -% available for typesetting. This is effectively the characters in Adobe -% Standard Encoding + ISO Latin 1 + extra characters from Lucida. -% -% Character code assignments were made as follows: -% -% (1) the Windows ANSI characters are almost all in their Windows ANSI -% positions, because some Windows users cannot easily reencode the -% fonts, and it makes no difference on other systems. The only Windows -% ANSI characters not available are those that make no sense for -% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen -% (173). quotesingle and grave are moved just because it's such an -% irritation not having them in TeX positions. -% -% (2) Remaining characters are assigned arbitrarily to the lower part -% of the range, avoiding 0, 10 and 13 in case we meet dumb software. -% -% (3) Y&Y Lucida Bright includes some extra text characters; in the -% hopes that other PostScript fonts, perhaps created for public -% consumption, will include them, they are included starting at 0x12. -% -% (4) Remaining positions left undefined are for use in (hopefully) -% upward-compatible revisions, if someday more characters are generally -% available. -% -% (5) hyphen appears twice for compatibility with both ASCII and Windows. -% -/TeXBase1Encoding [ -% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) - /.notdef /dotaccent /fi /fl - /fraction /hungarumlaut /Lslash /lslash - /ogonek /ring /.notdef - /breve /minus /.notdef -% These are the only two remaining unencoded characters, so may as -% well include them. - /Zcaron /zcaron -% 0x10 - /caron /dotlessi -% (unusual TeX characters available in, e.g., Lucida Bright) - /dotlessj /ff /ffi /ffl - /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % very contentious; it's so painful not having quoteleft and quoteright - % at 96 and 145 that we move the things normally found there down to here. - /grave /quotesingle -% 0x20 (ASCII begins) - /space /exclam /quotedbl /numbersign - /dollar /percent /ampersand /quoteright - /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash -% 0x30 - /zero /one /two /three /four /five /six /seven - /eight /nine /colon /semicolon /less /equal /greater /question -% 0x40 - /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O -% 0x50 - /P /Q /R /S /T /U /V /W - /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -% 0x60 - /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o -% 0x70 - /p /q /r /s /t /u /v /w - /x /y /z /braceleft /bar /braceright /asciitilde - /.notdef % rubout; ASCII ends -% 0x80 - /.notdef /.notdef /quotesinglbase /florin - /quotedblbase /ellipsis /dagger /daggerdbl - /circumflex /perthousand /Scaron /guilsinglleft - /OE /.notdef /.notdef /.notdef -% 0x90 - /.notdef /.notdef /.notdef /quotedblleft - /quotedblright /bullet /endash /emdash - /tilde /trademark /scaron /guilsinglright - /oe /.notdef /.notdef /Ydieresis -% 0xA0 - /.notdef % nobreakspace - /exclamdown /cent /sterling - /currency /yen /brokenbar /section - /dieresis /copyright /ordfeminine /guillemotleft - /logicalnot - /hyphen % Y&Y (also at 45); Windows' softhyphen - /registered - /macron -% 0xD0 - /degree /plusminus /twosuperior /threesuperior - /acute /mu /paragraph /periodcentered - /cedilla /onesuperior /ordmasculine /guillemotright - /onequarter /onehalf /threequarters /questiondown -% 0xC0 - /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla - /Egrave /Eacute /Ecircumflex /Edieresis - /Igrave /Iacute /Icircumflex /Idieresis -% 0xD0 - /Eth /Ntilde /Ograve /Oacute - /Ocircumflex /Otilde /Odieresis /multiply - /Oslash /Ugrave /Uacute /Ucircumflex - /Udieresis /Yacute /Thorn /germandbls -% 0xE0 - /agrave /aacute /acircumflex /atilde - /adieresis /aring /ae /ccedilla - /egrave /eacute /ecircumflex /edieresis - /igrave /iacute /icircumflex /idieresis -% 0xF0 - /eth /ntilde /ograve /oacute - /ocircumflex /otilde /odieresis /divide - /oslash /ugrave /uacute /ucircumflex - /udieresis /yacute /thorn /ydieresis -] def -%%EndFont -%%BeginProcSet: stonesb.pfa -11 dict begin -/FontInfo 10 dict dup begin -/version (001.002) readonly def -/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def -/FullName (ITC Stone Sans Bold) readonly def -/FamilyName (ITC Stone Sans) readonly def -/Weight (Bold) readonly def -/isFixedPitch false def -/ItalicAngle 0 def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/FontName /StoneSans-Bold def -/Encoding StandardEncoding def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/UniqueID 38782 def -/FontBBox{-158 -250 1540 946}readonly def -currentdict end -currentfile eexec -405149B573AEC9378BAE46685AAF7849E5C9A5C8C876748725589FB14A049808D39A75D55F6464 -11A9C3526F1887AA2BAE53EE4BA6377CB094098BB2590828DB96FFD3A289579524DBBC79D9597D -47A79192E01C360F06B93BFF89A3C642BC410337D743499A7F8B1E476FA1BDB0B198F67CAE3F57 -49A1ACC4879F6EBCD84740D62C5248595B530E6C3D3CDC3AF54369EAFDEDCD9848E2D38CD091BF -2ACAD10DF1C87872AABD086D60475ED6046E240F2232FE2F00259225931518B7B429137B14384D -15F582467A818C20C1C6316C56736C19F1D7464231D69800D94CF5013DC237DA1EC16FD63D3154 -4FADF83F152D1496E3E1B50E657D51952A65DA2224AE3C290A948226F005C37ABA2F6CAA732367 -9D03A1F924A332FCF713C3AFF685DCD14F950A9F50F46939759F915F780F68EB1E8A2A6DD370DD -DEF5A51652CD0C5DECBCC94396962904B19069ACAB227B6D4D14852A65362D2BFE3B3936D8AB3F -2318A99A46913D868EDF1984F868785E3B1107643BC4E58206E8E5E71E5E13A822A289A7C7559E -07BBD8822847C56EC0DDB12202633CACA990B5844B5253EBF7218C2C491211D1879A4F36BAD9B6 -9353D636506C52F24818E4464E02C41AAA17AF7BF09FBC37C335A7BCA40481C1371828D4ADE630 -8DF09DC08C641377295CD75485DC14732819C2DB21CC499733FECAE1CA94907A1F144F0EB9BFC2 -98E471AF304BC3628CD390202FFF59A7BD14D9F9CC99368826DE6446CD40A68ADEDBBE8C388798 -0FE574448B196E987C2A392DA865DA46E652AAC8F9A4826D5AD1776FE2E5D2DEEFA011507BE935 -9E19E2AF34643135691E3A221B4B0AB0D18DC3993F6465489CE5EFA0D2FEC087881927A434E51F -99683AA0463697BB9614B6CF5247330BB7393F836A789A3774629B27E1F82AE4C01EDBE95C237A -0EAC78A5A7FFCC2332DCDB725BDE9101A9DE53A6CCA64A98429471BA8018A3E3C2D287B6316FBF -08C3D2BB5A611D1BE846B17C2F0CAAE2955BBA7EE4D84DBFA6BB5D54B5D90E23C21D34562144DA -4F5A49E666C1E6F7F18B2B33B2BC4A7FE722440D272CE53354B39442F3BC89E5F939B7175448F0 -02D6A60BC297C770745222FDACC9D456B4F869E7BD4E802C01D517AD752BA533DF1ECF4F9A6CF0 -DE8306C55A90405F23D1834D76D2B4452E4504AA953A8B4DDA4F0C967329D922A68615B1B71F73 -E8BB682ECBE3C7417A218DC386B0095B38575EBBA55581F768BA5D5F203A7625FE78857EF2B919 -BAE4DE0116506FE2C476A6423414FEF5833DFE00D3EAD6C6B5F31625CD76FB0A49D04C1DD85A7E -692BECE0CC32C9A8C04AC209B5D1D77B7BD213B71855FBE81F757F46127E7253823E732A609DCF -16C79412D1F0A1517288A81B42165B47DA66ECA5E8E1F6A39A474486A3D4B669BC65CF63136AC9 -243E7A492CFE222CB4F55C2ED4BAA7556DEDAD425BD706AEED895EAC76704AF6366295EFB4A91B -548C2176D4A30B1026489E70D8D981D110DE46E0D5DF3A287059220142DB0100092FBD9E16484B -7CDFBAC2B595FD35359D65D5351D5AA1AF8EE94E6A259A568F3D6219F2538EB9E31E88D2A7D8B2 -15F88C581AFAAAE67AF587343AB6AB3636AE519CAB00CD0A79EAE4DBCB56E76E46F14DD7F03759 -D10A4F78BC714B60E3CC56BC04C4FE68C5549BC1A4577F2AF578F1441EEE9178E6788CE03EE16C -8C3E80DEE3F0D016AC09B0B62B46EBE547F0C10466E8BC9C3AC235F91F599B244F8DAC3B9FA661 -8A09D9A62E9E904CCE33BB1DA1F6FC81E1F97A1C56A2107F721F837180DF24FF110C7AED628E7D -0B465D5064A6DB0E178C400B65E23951E7562A8C890BAB0774C2ACCED07E487D54E688E5AF3546 -661B13336EB1A4EF484BFE4CAB61BFA47B7F232D46EFAF50D5E31A8305EF727DB091AB0B93430E -61FB938F721390EE271D2BA5D8B33BAFD5CB3F24C7A4ADEFF6C0E42D93E1B9DABD25F891811A09 -457BC94E13F1B71F628969679740D91C1971598A1D4C248F840BBEF2BCF74FB1EAC6D3D58306DD -607CAEB18A8B19EB775BCBC6602DED6DC273D4A0190EF8D30E05675BC7B3EE1F6D584311C681F0 -C9B7D60D25BECC3CA7BC83B17E7D42832D92CB66345668F455F86A39D59534B84967D5542D288B -0018FA183A4271150F549D0532E692C31077ACD8F905293CC16C9901DEAAE6B326680A59493707 -895264F881D693BBCA955A6F03B58AE0D81540E26BC9A2104D4AB20C5CD1D4FA3DB09A38246425 -E5B1FE1EFBE6C32AF609EBE71CA5DE4E24D8CDCAF1C3C84359126DAA6AD0098BF74284455943F5 -115360799F10BDD657D00FFBC2039816785AD6E5EFA8444F3AEAA8DB52E2F3CBEA815C4EC09076 -1D03E87401317A12567DA35A9DED959746FD5613E1D7497D04F80CAA3463D3F3EB7912CCB6EF87 -8B487485A275D154E2549F3C424A730F66F66AC9E6FAE099E71504AD5B76B4F97C7BE15D70E4A4 -3CB01E09CD47F41BF047757436C886A36B9C5F2C51B161A397DFC5494C2ECB5A4CCCC075DBE2D2 -E37B22F14C3665182200830F6796C1C9841F24453286515E3F6B701EF8C0BE65B8305A3D2A0522 -CA5A30CFE5CBFC50A9B6E7D3925E532AB5A58D4C6CEA5FAE1C1EED2E39C815E64BCC96DE2AF85E -F5BC1831EDA3B1BA541B7DB5EDF6E042246A8534353B20E99A0ADDB46B32AF11DEDC2FE1B32263 -F054E752F68427F5A1B71ED953FC272FDDEA55506CC8FDE8F35C619E37296048024FA6303A9FFE -6C9BE3EDE4BE5794AD1A8E761B3CDF137C7A29C64D0D8EE1CF071F9096DEE843ED40F1D4A543A8 -CE28F7043D38A74E929EAEAB6BA95CDD17E51BDD77691F0846F9EEE48CD5CAF905CE0814F3C7DF -A17F430384CF1B2004F31E07975CE4A6BC88CAD0A805CF89D167BDD15C9F0F8442166DE3DFA687 -5FC08A35D221A151698B803BD67064571AE57B67797B5F0618B6B8F3D14829B87ADA7838D65BCE -D527CE2FF9984555B8A6B915A68263E64141408FCB7BBF1FF7B8C043705A8803ADB84397B861BD -64A3A7BA781C44C847A68F1A9E8FF6ED7BE881B08C8ED3A2BAFAB919D7D36D36772DAAF812A74A -EC368EA622DB6903CBA3134E755C63B0020EE72EA699A3975BA4B1CF7030E66B36BDE8A66BD0B2 -70C7A2EC084B8383D023269B931B9CA036FCA362A9DA6DC9DDDFC11F715B1F2A60098C56B6B68D -52BAF33BF0AEE2D8551F0C8809342894F60D3490D9DAD1317AB2F70E313924E9D680C610D41CC3 -1924E1458AD220FFE0B384404DF3AA67E7305A0836C5C195513EC3D0686B368A65DD3DE9AEF5D4 -EA28376B4ACC1D00EB38F6D4EED7E025EE17A1D157C1E71879DE16BF46D58E1BB46B2CF9CBA082 -C0A94567A5C874E8E6477A3CD0D6E48F8CD4E4AC3730E33EC8079B4CCE0EBDDA5E48ED13626F90 -888A2892448DD075EA3A846D1C8E6E3F0FF03B8D63D04AEDFC659840A949275394EB21B85E544C -28BF0C2AB7113EBE4A8A3D0579EF48C15D9D82A09E96347422073A45E3197490D59FE5E9818697 -065A419E95768DAF768E1D938414ECDE5159281F4BB35EED8D65D3651906217FFC08AFBB075474 -D0F6B7519CE3668090B115A350DC3E90DB350A290822405C7AD6713F3BC29FEE0A4E32F9C85FDB -232A458F55DB1CA335FC94A472C390A322422CAD609443F5645E6C45238570B689A7AB307B63DB -B598FCF2EB2A70F6C4C9CB5DC3076938C4D2C400930DC2625285EB4483294509A4B018002B8261 -AEF571B06D8E9BD86E8AA40CFED8E92D055D1F653FF68F2EDF9463796B070A2B366BA274A07CA8 -283B30CF79231CDDE4A2949F47D8C18C1583673FBC5AE18E0A54D32B095322CFF5DF3831F91068 -E9DC713EF1B280D41C4BBEFB26095FCD57A5FF745E0A24C037B8093FFF2E10DA7F6F6A481260D3 -237158CE50618A8BDB1CE1CF5551B4598917E4D40137E67993D96D75D6C3850D92D5373541D7E6 -5E7CCA1478A5F3D117AB8EF2F80F02489E7D9899A46B4B1C30E61D657AED848A144DC24F11A1F7 -18202029C81926AA76D9F7E4B8CDE38848E702EC6841115A0F585334F42445AEAAE787BF272A26 -3594E4F62358E7EDAAAA63028DE788724EE04D1751A59BD95D9DC2F2EDF0256CB44ED3E2210A9B -AFE82833926ED6DABA60141D740DB0318FDD9A7D3B4CEC8F2C95E3FA6EF6013737F0B1D48D24D6 -FE389C2EF5BD12AD8C6D2ABAF9016EFC7DE8DBDA6FDA21727EF8E007B155D311D7B279757167F4 -D1B2473534C2408E402AA0504F853ACBBB5CEDE208137F2DA6C21230FE2715C45EF003AA9013F8 -54A5534F3AD3F8FF0550BAD3716449DFB3A6A4F460C72EFE3EC5AA220E902C3C9F062E8EB41069 -5B3D602545BBC24D616F0975B16E8C7D3415F792555367704B92CEC9BFD6A851C81F5D9714AF8B -E6F8C992AB1C13D51F46C5E32F79731EA32D9C526D2AAA0A1584692A024E0F85BF9E1383CDA1C8 -FC6BE36CA3C12E4FF34F11BA62D9596B39836EB59B61BC5F5DA97D803215BA1D4343337FBB5D72 -0CDEA081EC40329FF31057BEA7698AE4DE1F0B75D4D9027F741F587B4B524EB12287DFD0B90AC4 -BEB27538A7855B7966576B68F1682B990CB5FF4BA294F278DC98956C58FACCBAF383B708FE4666 -52761E94BB3E5E65C7E904643D54C68920C0B1072B790AEF99229D1F7745CB403F07C023FA6A30 -E0A00D4ADE7051A8B59ADB29D44130AB03B7FB303650E9EF55C49978A94A583974B6B91A0A4065 -B47DBA34BCEDA19D44A3FD83E7FD23CBEB6D1699023B704B8C0E2FA801CE15A98ECDBB0498BBA2 -23B444C0A75E0E4DD995D40AA4F9F03C0AF85BC5742182D628B3C0D1F76A1A9C7E02CB2295CF26 -A2F73760BC472E2278CAE54D9762FA27A9246965326A0CDBCAE997608D0A1D5326E78B6780E15B -AE688827665DD786E6275969448E303012486BCBE4130D848B46666D660D0793559AE3E984DDD1 -04C4D56A066787B4AA4E1DE8183B078A8DE42F0663D33D35BACB19A2D82A62C52BE6D3C6EA6C5E -3DC9C49BB74FB1E430629F437DFE67DB4DAC73590258873B6D808E8DAD4FFFE660F09D5207AA7D -7F45EEDE6ECC32EA8F8BAA075EF236C72F9759F44F59FDB478EB818768EF740B9C892398B35B89 -C6F44EFA1E3BAF384D4BEC68D817AE7C449DE061D53C7568F2714365D5C807298D6F72E4D5D8AD -B87ACE19E4057E218811ED12F84906F4FF9BED46607263AF1CE4E4FC1A7D06D59725BFAF9B191C -17D912C67726D88CE805ECF93081A1BEE281A0364EF0CEFBA92FCD6433B4A44AC83C44935901D9 -2E32184A31FE7661B7636B70FF62D97AE9D7440A3A612A68DFD7176445F07346FD25DA5D910070 -5B7AC6F906BCBCAFE2BB3A3E296D580660B5F7B2B829951D291A759CE5DABC47E9021C14AF80D4 -E259EE13169257EE24C0373A7CAC17B9549A3940FC658BC35FC6366C7A9EADFDB6FF15CFCE038D -B5F1E0B2A33CB8C45D78CE03E8394E0EA9D67708C11F7E25ADA4298D5C89D977BF17555AC70570 -BE07815C8CD204E3CCCD3E89A6A4B9BB1A05FD6DD4A56DDC0AE56D7F58381246095E86245055B7 -762D09811480E9A1700FB390BBD45FD05F1054EE65A9FCA82B28F1453D719D8EA1E38E1475D94D -3D1B16F65CC4582CC32CBF5B9DE90E96D92A39F667090B8B47E0EACBBE85F885FB55F83B19B030 -52D4ED552C1CA7780A4ABF0DB02F476D6A494B363998B4BE832CFDBDFB28E0D2F6DBDF04291E53 -F8CEE97D6057E668F359475FA575441BC77FA6FF3170621D1002B1AB40C155B8F40F74DC822B9A -9CEEF7662C9CECE1082AE269953ACAE2E78E3EB011F721E6D65B897699DF6BE1D143989FE07BE9 -E1EEAC4A7FAB2BB88841E33E9AF0E109A186F72B6D958D2DBD92E070B61FA8AC9DE60D3B0BE089 -50C597D02551B3B10A0E52E40571BF6AF4047B1914FA5651EAF0DE0D332EE959F58F4DDE1D8D4D -6D847DE50E4A47AC0C2EE73FB67CE7FA22F242D4E69EDF2CC050DADDB25F8959E9060AF0E2ABCD -2E0225A1B9C4792EE988517B3A567DA09F3E12E052ECDC91A5737C44026513E46D7B0C7399B006 -B1505F3B7F41883A14BA5B180E80C63DD5D37EC5E90C38F46DC88F11FD5C1570455941949606CA -598CA2010568DC0B49FE5E5EB5DFB7E3AF195A23F51F87F5898D10A34043F23409A95519356617 -073EC83CD312AF6961EEA40377EAB0B0C159C3906F0492E94414ABB8FF34F1FB6D33594DCB5A64 -FAA7A02C749799BC14552F205122E22208EDB633FA50311B398B98EFFC0FEB5CAE8B0953CD1D0F -05701C2919D5DE58EEA2CA4AEDD06444915B16925504D159F050AAA203473C29805EDF5A71AAD2 -06C601266ED2B909E68887F94B7614E723950EA9818F7793040BB8F7E3500BE44898B92E1BDC97 -BCCF312D35A85E667669F15BDB42884E7A258C36C7CF4947852864FF46EFCD56817C58A7BDF29F -3111A188A5F9F255FE04255B1427CCD9D0CAF6D9992C6FD493E11AAA81E13FC69C569A573A79CC -D3D2859B051B7EC7CB55A2929E515FC15B08ADA50369C10808B83EFB6445B4E57E8BBBD75D6A6A -62F722875C6A65BA355BF24CDDF4F5611D4918ED9DDC52E527C49A2843BA3646F37B0103ED0838 -5D68834783F29C21FC66F55A7B11CDD154810310CB0C05367D2F12D749F5BAFCA86AF16160E90E -1E6609DBFEB302BB7393237731FF90EF555E1A194F88BB05FCEBB6B057372731CF1D14CB47E47B -69A3E1158F1741DA4505541A832D0362CD4D16EC54BB16E40CC682CE6132E369C0BAA2ABD7A35F -C27999881B02D9C22DFDD56CD7520CB83A8CFCB4A17DC799043F25D69BF3460DEEBF18C2579F05 -2B69B9FE5E6B7467A15DAC10F3D3500B7EB0D41E8CBB0D3DD7A69D28458373C681FA763BAFFC57 -24E1B59F21AA8830E7391E8BF8CD649F7F3826264914505A3B36705655AF3C3FF506332A43D753 -D15BF0A415D6C7F8F653EEC0A66840E7B9E78C8AB0556417071CADB861D9CE959CD4641EF2CDEA -B450587752B4ABE8F1E61732C49C57241746E913B99D23568F627AA7A22B9D3372F24A9F1B8AC3 -427E598809084D4BCDCC8E29B975020E737FBDE1BE1AF74CD02BDD781388F39A189F6583075A57 -A5B21E1A5E93AD170C3767B543BFCC152E326B768D98BDDD403FCAC07EA395A019E645065B0DD8 -DDAD3398299AABE61D20D85E99FB81C63C15212B496A3E23F64F40ABE60BD8527F85A7890BB7C1 -A31F9FAD5776CBF852DDF9099630A0B110DD1FDB87FA074EC5493BB2188940F2979A01C1463ADE -B688A3C3339293B0E1EA7FEB5203335D2558EBB8BDB65F13DC2EB8EDD6C2784D902D6B20135F7C -88662991CDC91E2B9980FD68B17B62E44693984B766247A9F121A12E280AEC4D3C765F2857338C -887102660537AE28EBC7771D402BE381E6AC75D071D6E66BD53CC02EC96851B7F6ECA7A9464834 -70F2AF182592F53FBCF7F3D0878E14BD3A7263346187FB3250F17266F11062BDE774AA3997E810 -2BA9C7BC37A0B69DCD788070725DE7D8DDE804B3B538024F2D67DF7B9E009A20C23FFA5B36CEF1 -F23D7A12F667A1750BBF2B222C8ED82498A9C644AAE7AC259840F3881747F2B4EADE7D961E74EE -A17863B740E1A672F270972873EF3BCDA4294E7008AE3F470A89159005431D9CBD1BDEB0B34202 -41D418687BD044B9DEA09F4801BF1193B10A6B96478C938AA67CBE3580187F2CC2604912BE6AB1 -CC9D10E15DD2D02C55C6EF824E4E8DCD1C1F92871AAE4A33455F15D71B4359E15CFB29F8FFB1FD -F088978B92B436A8F42CF8061DC98694A7627EA06872DD24FD5F6CAE4A09106B82AF6D0A4F131C -1D25A062649FE8B6FA16929384D4C15C301875B05B78481391A497DEF3D6E24776985E7B9D0111 -8452B33EEE084A1A5CEB8866A8E7F7016D82D0588C9EC00671DB79F22BBC904204136F2A97B27D -B1E20A571A89312F7F1FDAE1F9AA66EEB6C7B473FEC90FFE75EDCBB53CD4F4625D3E09C79AF8A9 -08279757AC4995AB575DC4762B33B6608A8A85D5EB39C52C1CA452047ED183A031142AE061D2C1 -1C8A8FAC48B5239D27E196AD19613158C2B24BF66EF5EB040C571B67791996F18E7C5E4125B9CB -52591132501D4E3E9A43B111BE76EC06E70867494C4DD27C137E6BE35C32CAE9CA4F5CE3934ADA -865F18C152697C6B1CF0604517AD8C6D2AF4CC00D3E354E2D285EE2F06237C9FCB02A3A4A60157 -CCB0A0F35915569AAA64A95C7DDA00EE2718E2C6072F7E5D88A88B57021DE4FEC39C4744600073 -B2D81A668109A6516670A1F3EF78BF46518E95D02243089D89A49FDD78A8EE183594EF936F71A1 -8FB5F93318602D6496FF35FFFF79FEAE2236386F07AA84300B067A9ED4FEBF51B69FDFBB973FCA -62125FEE4463A06B8FFCF5C662984C1CD4CADECC275709268C4FFAE774E12B617973760E369D1B -8C79F00471310EDBB3569022BE0FAA2E9DEB12E81C40A8ED3803FF3E400933B50905F3EB231547 -157887148738845667817FEBEB00D17698DBA9D1E236D596DDF3EBDF46A3346757CC012657D0E6 -A0DC78399FF4CA83B2545CF3E374F16DB2A5DC36B3DF9AE0FAFEDAC9379F0EEA3FA175CA0E9FD6 -2E11F10369B21FAB99D721EDA9B13519822DF999B512A8061582F7C0E836112D023C4617848C2C -6F923F8BBE27017DE7CEAB3C857F6A151BD998266DF62D7885A3C38363F5986614191D68C29877 -567B1408D4DA1C5ADA91A75A1A5CB07C7D5843CF7246233BFB323FFF495EEAF72D96A8EDD8C320 -57674536B08E76040742EAF65EB0FEE50D4B0BFC661B1ED5A436D6601A813F360BC1A6C8D8DA34 -DD1560F864868C88A4B72C95C82A0328D416EA6A2A75E5F9AE658D6239E54E7866CF8C7E37F911 -7E9D940F1A2439924EA630C310416D1A1B95C3E8BCBD0F1DA6BB3F5AC9342FAD145EDD96C4250F -89B5B5E5F1067D4B2E2E52A182FA383AD44BC4DECA1D2074BB6EB1DFBE7DF25AF3B0271B027B11 -BF4B0F1B56E834A0667A8B30C9B61E3B44283D571A11667A4DC10F7B6E3B334764CB10357090B2 -74F7BF6B9A19ECBAEAC0A942F95F82A604C50DD71F2CFE5B1B868E69C077CDDF5C8299CA6C1816 -93AB0E43F89ADBF3BB94E2E3CFB01DE47BEC9FAA59EDC5B6D50765B6EB09995755C6074C2106A6 -FB148FB983CFE06EB4EABE827F98CF158375A7C9C745D3F7907C6952D0CBF28F5F1DDDA31A8BC5 -5A24FA35E5584F61F4ACA25773D86C46B7A042BF003086D8879505FB4E4A88B37724276E5AEE09 -FD82429814C0B601CE29F7681BB3903E64619BA57D4C7399E3BB738105C6404165D1FF2E4DB654 -272C11185886B9F9CBB94FE1D1F7CCBA6E0E4944D6C59EAB5BE7F69FDC1496A779C63391E1FA6A -38ACD11E86F688600FE1CB3984B527FD856DA02F8F0D1D247DCFC17221139C312498ACF8D9E812 -4A64A511ACB6501EADE9F8790D4F6E9C3B42BC04C23E6AD2A6E6A54178BC38DC684B00FB549A92 -81627056F46B6836A68898211876058394D5BB263201BC69E68F050DA038B7F86EECC117C37C74 -AAB0C9C4F8B4652E2F83F0927ADB2A7BE9033255C631956DDCB17DB2FE375D79BD810AC43A2FE0 -8B51D7BA961935B3D9BBC785B0DED68D84C90D3DC3B22541C2B3C1A53DE99DA16E6EC6D1476CBF -5514E3BCAD427C9C8875AEC591BB5E21A2CA43C14051D72C18BED73612CE5B88A8A71C114A5623 -7FEFC54583A3041A6E871C8E7DCB4CC457BAE7390DE674992EF2E3DC5ACC808CEF1B6F3D58214C -F5024417BD901343F2F096157CE31EC0EA6CBE808C8E508E6000F01670E552DE00A4EB4D7BD254 -F840CA6EE6C75BD96E944352D9AEDEE6941CE3EE8DA3E851D811309E3B5ECC610E98DDEE262473 -3D61DB9635312259CFDA8953DF4D01A9B857DB6532CED5DEF2ADB5830ACDAC3BDC89B95834255C -4413100B19CF49A5475C5C985F82D1C43750E933C59CBC3F92F5785EB54339CF742F44A2B4D77F -694592CE2F926DAFE1F3D2CE52F43C16A2331E027FF3E24C102D09411B578B143582B55103247F -7866B1B87127763EAE9BA063746B785E392ED11E8D4A6C25AE39DA7AF6F12506BF9AFCAB89D77E -14C6757A6E806C0F1A16A0E42EECDCE19996ADEDE43E477B84E503C7ADE84B1D79EAA8C3E0D4CF -943416B55EACF4D3E62178A29486A8F3119072820F37B204A1BD4825E758650E4B06609B867CDF -A36E50A8236CB9FC87FD813D8E847294B5B5DD63DB7A553917D58383EAF69BD096ED658536CA9C -B83DA967ECC467E8329EBFC450FC86C960D23ABFE0A6698287A5405F54083D5C6A949F73C05ECB -DF521BFD0A3583CD38AD7B2324FE57958212B44EC6CBCFBE6491D5F27F91A7C68BF7AE91239BC1 -06A37D144F728A9F9452A17C3E3C81501E6198BAE958E37C9B50C1AF27C18DFC14579772F9F876 -9D1C4BA1CE86A88B1EB0D5EA9F51DC08DDEB5737ACDD58D856698795B1B3EE25E7BDAC9E50C6C3 -D6CE65FB34AF4C93A49796324B7DB4410A50680392BFA5AADF234DF2586176BC99A04FBA7E2A07 -9F5F79C7D8AD68F93B2F3B7BEAEAC1CD4E4338A9CD0203D1E04BC0FC3165FCA4103EEB71DFD119 -50547340AC83605B885C2F2B235BB1FA1F8FA0CAC2EB64615DF5C24FB2CFA2554B7FC2C5CF7440 -3C5DCEFC22C719E98553B0ECA1D08481A130FDAB6199CFD5FCBF610D4E2F51A17632270A096A70 -F1ED2345E196844CAFAB1A979FA1CBA54518AFFB507C58E86E2CCA4178172B488D7AD610B532E7 -FB106F94E90C062FFD67FDD18A72B3F2652453807901737DB8859035884D289266E402BF8F4718 -53AAB6806BE1BC39FFD97552B02BB080926F9095D56F2EC2CB04980A76F6DED32B9F879034AE2C -A622E0E2147E33584EDEA5D003AF751255B51959956D1E27CA108C6EDA9CF5CAF53CC464986123 -B9582D0176B6689904D5744B925F12AEE17492ED3FFF048E076119FD1F8FD2A4A1B70A6369312F -64F44664D1AC519464A0F2ADF3018B39A88AF07C52B3CCBC9DEBD9937FB2330928C1E5FF56BD73 -C4EBB943A3003E42D913C15EFE52EC17F01C7F263F795462BE605A2910CEA79C6B72495CC58F81 -CE83297B2106319EC6097C38A7394378164B7735500453974ABA5E3BE04542893AE15CD5B34AD5 -032B8D1F2AB683C743B7DD3CEA1C39A0014E9264E7655651539003A2BDC587F31B62E3BE1B7F9D -5F134AE76949F5AA629D5A63FC239920180246EA1FF6176DD482E33AD258B155D55CD66B44A281 -723CD3CCB66A362F11E4D58F9DD006CF1651D6AFD903AF87E72544CD3725670232D7DDA8AB193D -2C08736A49D1FAAAE861A664A9DA429772947107F2917D7E7717A4535D464D34B3C65B1E77444A -470EACA68E4DAB122420F01F8A7D213D0041908A864CAA6A621F14C14E407F0BC5CC70CF0BC4FC -CD2FAF8CD0C5D5FB2080010E038C0F118D762C09898686D8DBFC29CCDD46F08EFD599328101BF5 -16A5736F20ADD4AC1C150BD3BEAD585D1D362261C735F24CFBBD4B64682E34926CB04F9D31E09C -A6335AEB3C47DE39D1600D7F62213A71C74A0F81965DC5B1B3D7227636690B882F38126D901A9C -E418BC6D3D923FBB801761FE7B81A55DE3F2E42688246A06441FAE14F23DDB993671901F97450C -EA6DB10B0DB13A23CE0E21C27C1CD6AB524D25EFC13DAA450FD80BBDC6376065A14D749D48EE1E -8C83B833B510027F9C89F7319B1509B699162B7F9C5B8A739ACC1006639C297C23B8A66213F47E -A873F87F1CC19F581EC026DE584BC049C49BDCFE89C001504F41DE17D84F973826886F4E5246BF -FB87ADF0726CEC7A4F167E0384B91526894C2D0090D38EAB1461C607EF359E74628854DEE1AEC0 -5DA8945995A3D68671E8BDD9946C222294B0C4680EF2FDC224A0C7AFA9E5466C7B1457CE3DC7B8 -7B0C3517DB833EDD302BACF3C37BAE4617BA6206D5D1C77DD53547A7BBE0C948D217246C294C70 -5B254A960CC5C2F5E35120036356D760452887237D70D1E2F3D6B64A0171FC578859ABB62C1444 -D3FE0719DD85E7A8812F7A5C0B8BEA7207E31C7C55280348172DC5EB275898044C00C2D92545A3 -362F7B42E073C75BF179D13B0BE76B4836D069FE01C287B367D02DDCEC9412C2FBEC3D4B327A10 -76586750C8994ACE0DE17327B01F74A3813D3EF9FBB9C9C5414F2E9CC1DD9D06297D174DFD2DE9 -CE7BC95F580B4F3F26832AEE535AC16A087A012DE47BCC692B7C05B6015CEE221323F7EAA191EB -86FA94DBEACF0996A8C8D013301A7BF64C2436135C3CCF2294B1E2246184261B9A6BD2F4B98A91 -E41EEF9BD07018F5CB9B0060AA76651CE1405E08E455BA689CD2E6A3127007BB4B311C23804689 -ECF60DA7972373D96525042C360F5DE09DCFF940E72CD5DC0A9154B631AC1F2E38AA2B8551BBC9 -AD5CB74CD86F5388AA75B6D92B1E37A4F875A6714908377D78BC96DFAB7EBE047BE4D42C416FDE -50A33FCA9E65600A2C7A7575D6059082C3FA0DF3C31E82D3FA3969CE43965EA49F0663CF2A2C71 -EE4AD5C7D853B52B6AA0F41AB3D47E510D8BF64AFB1E8B8F782C98CD287DEB9AFED39335520B72 -B8B5CFE2A6BB7C1AB0EB746ECF6F7AF86C183612B0DCD583FAC678D9602957E61C187F39B3A654 -B20C792BDA9D81FA974A9E8864C1A86F9AB72918FEBFE47516299AE1E9B27F46F3C2959C5AAAD0 -A5C3C3065114E89956F5FA36E16174470DB8DB2FE08396EA5ED7D50AF989D8D1433E0DE7115A41 -0115ADE0BA74E8A4DBCE3D9B87CA767AE380280D51FEA9A0F623AB175C3462B9482DF6D0BE8F8D -420782DBA63D5F43966A88E3752B270048EAFE8BA291E70B8BDF8FB433A5A57C669B4F7D35C8D7 -3C52700DEFBD4CD42E1F2C8E442D19C030CB35AD66AEF7EF0233BB4E08FCB48C872399AF859938 -A02BE5F96391FC64E297AC790D70302D51979CF5459F4DF2A41B27592D0538DBAC394C37ECF0E2 -C116D0A2A2C6ADAB5B0542F86CE5436CF989A869566ADE4D764E423BE583ACB1278C7ED362C023 -F8AC485529006A1893DD5A98D050565543ED6A4F3B03092E27E8913765E5DEC1FFFBA80982340D -AAADCA7A95A24EB5F392DA99FE3E6C34948DD4CBC469BF2B53A50F162D05963D73E79EC88A9D94 -052099431793CF8A0CCAEA5C95B17460616A13927532043BE9FA79FE0231D57FE861FC0D32DF90 -E9F3EA5D028E06281618E984A169F5006756341C1B2CCB9BB5C6CBD2EDF71A5244EE646DBECD26 -0F547B8CF03F2689EB7FADE56D3643AB8DC7B89A5194419818FB67DD5C66E7866EBB012C365E27 -BD4BEF4A6FA8ABE429BEE38715AF35AA3F2751E0FD980DCF6AF94A8CD6A7694B6FA71F2FC2FE61 -87884D029EA7BB951EC1FEC36C100395943C8A040E5F1325EF8EB668B08999F0431C2B36761FFA -F6E21790E51113526B92DF76AB22B9761B11A0A6673C8E093ADBEFB1B18FB7CF80F43D1D38F176 -78597B4F6390764D60A1C797DC0926DD01B7D09448C671FA5B51B93A58640EEB62E80C4F3810E9 -9AC99950D8AE3189152BA0AC7D8FA8431DFF1EA3CD4FD07B272A563E67C3FDC3188BD621BCF0BE -40AEE192A02BA5EC36C5A45E1E16097F4284B74AFCD8690B24ED8C14D25C7EDA7CB639043A2317 -8A58094733FE73887F7FBBC995150B6E54F5CADE65338A12A0F3824984F5B16AA0CBDFF330A408 -7116EFC179DD03CDFC2312EF49FCD501732875A961DFA75DF2AFEC0711DD8A215C69B9EFDE095E -B03261C63C88B6C66C3DBEDA2223420713192FC38AF0DD9C4E42F3BAD9E1306AC8471AFAB8951C -10CC3FA51E096AF28D73FAC5CFAF410F83EDC08F7AF86A280A23367743FECA7106EE0D460261C9 -AEDE826D3C1B16DBE4C0DE0EFF9F744CA26246DFF950B0FD6F14602503F58A4F3B776D94E3CF47 -CDA03C04D31E71BD0281C2A66F2D8021A5EB2500A70D73B55519AAB87DFD94143A623FB250D0CD -31B38D8ED2C5EE5C5A78DB0220CC5A081003F68D8367F350115FDB24F2A191AFE85B9F8C9DA654 -84C3FDC994889F42D561638404CAF88B831E65D6D2623AA8E82A050DA727F886EAA7DBC4012ACA -51FB15CC48016AAF9F82012ECC6B3A4B5C9F628795858DB725B8397722749C1BF0682683A8CD6C -55185A30C3A219136C8530CC32C8E57CD3F66677549EF3A9C58B036C2CE21EA3AED58900230176 -8FA1CFEE2A5AF414A09F5DC3CA77C70AC15720BA08B5C498A5C6F6C521C36475DB6E7677819295 -AEEF95E2FC891E1C45CE729C8A1032E02201C1E112DBD74C3203E2FBE389322D266DC2EE15519D -1E7F0907C615F228733D2427B55C0D3735AF25A15F0EB0A7F3374755454869CF8D825C98B8EFA2 -45A44FA726AC7FDCCA1B8585A6EE64897643137B6568C0D6EC985902C870783F2602D570176590 -0E79FC7BC5A40DC29E96FE65575CC63DF1E4F39425B0EC10CC37045A0B5FAED247C17EF9180492 -4C888A39DAA1D8F28F2A682A9A522D5B8AE6668C02E9E04E2FDD936E2A0CAD1DAC3CCD6E36F0AC -1D26F9BB256A7ABDD0B532B7B487C1BCB93A6114821A1FC85EA6DAE4FA889F555680A9EB893B2B -8E60F99734383EA0605A48A2BEA0752D0C7A42C36D0EC252A522E55361BE4409BEDBBC55004289 -ACEFC8E11CC989609521CF8F55612F25030C5A388340FCCA791F1E4C14F2AE3333581B0D81911A -A06D22E43A5CD564E81EFC098F3D8DCD107DC84B27B6CAADBF6CEB735783CF453943F60897660C -818E1457017A56512DAD80C6485F6749724B83DDDEEE0DC58A0FFF9EC71F0FCCD93DE9B2DF070C -766CF1CD3062962CF1AE2299ECD90924A8D7C48641A0764D000DBCFCBEA3205DDFF6465C146EB2 -2E99078EA6CB6F62D687BD731E56EE7081570935FB43F39FEEE8F86EF910FF0B944CEA878990AC -F46C486B976D8DFE8905BAC6F2B01C6954166F5086C44804C7FF640D689697E1BF6ECD2D6FF20B -1C695C96C78B923630B8C2064F4CF574249BD8124985ECC0D762ED0BFB52E2042EB900010DAB18 -135274109FA10157710FF3B695FDA0211F2D7E4CF7EA38DBED585FD4A5A6D4FFF460FA2C22AB15 -052D40EF60A35F36265642502FD0C37A2681301C86081A4016E981E3F6A184A5133F4A196F35D6 -23440CFDEA99F58C51A974C15A3A6B96EFCA25D17B0081E6441AB2EDFA2548565B9E71642290BD -7C1A7077DCB34616A8FFF35EE4EAE3627D2F1DAF52023E17B184EE4F74C2B6FBA63D21FA3433F1 -44B521564B81FC2B20D64236DE7FFC097835AC3F9E32362F04E3061DF88B6A9901C31840E31BC2 -C590706B4B734416543C3B2477E80DC0F4FE95187B36E5EBE02075350FFF86486C485443D48DCD -1FF4AF1862403011EA630A04034E0A34AA7DCD1926A2A4A1B5160B78B313445161F0A5BA656D0B -69A25F9CA32BADC2AB0A5076D4C6357C3903A4D45741D44A5E4000F85102FEFF45137595C438B2 -8FC2A5E5EC2A9DF3B48B08A99EC2EA715DE23C37AA603D9FC4FD76AAB1A3583263876544F7AFCB -9B699CAA51755B1C4871A8746FFB6183339AD853C28CE7207E772F3286F801908795BD8C701030 -0AF15345F574684D87807A8D0BF7B015030E92116E5A09CDB315460BC3B598D59ED7F3B551C1F7 -C96152DFF7BC8FD356B2E391B0CB9270FAFB986E11C8EA2350B672BD6AA36F0967F57DFE98CEBF -A9ABFBC7B5D2EEEE99539951699BF9EDC5CF21B4E7C66A92E1C48A0220A6DE1DC08435BE94B7EE -92AD6D4822963FFF8156E9EDF524132C17FD236E35580DD6D81A201BF80F2D893C9D56B536F4CD -2C063C0AA735CE8441017B49602753B776A28BA50E3342681C66A881BAED494C31D0657049E479 -1C0B18F7190B1CD4FFBD0A045C9704CAEA9292FBA6B62CFA2E5F8674BB14AF84CBCA42FF3DB5CB -B5A37F20926B170667111616309E2B0A4494AB2F628C9FC0D626F02CC9AA894CD2E6C4FBE40727 -37168091AB9536E3EE6D0D73F551E30538D7BD7F914D9E816044B3C37BB37B22F0221AD5F715B6 -F1288D7E4DF2FE4DAF4C65D097B2A757F0EA97565B8437B42F866FCC1B6EFD2EFDE8AE9D88814B -5BBDBABAAFB6067F1382ED5A59C803BE5A8F37DDA199177E1AD0EAA48E1249288B65D281DEB21C -051FBEA7165AE5EE8DA9C35896B5008A683C96ACB41F891DAF6B07ABD8F8CE8C0B60F0244D4F47 -FC30F84AD079795E6C9CD35D5255C60E8E0FF736EE58BBBAC019DDF370992F98D0E595FA92E911 -7659B7667EBC12D2B01158E78231E68936AC8003A1B60B20A85E89F62546110E09A7514B447C74 -447D6C7707FEDA3636F3B00C470CE0D4A23336C56BB8B3532C3D7B9D7EE4A94684DD78B7462634 -1F9683AD4D80A358B684F522E84975D1396F0163A4858FA2C175421977E62EB51E7A733758B76C -6F378BF235860E808D90433BFFDE01EF094803CDBE5853D6B7A4B30A85E83FEF5F4353FC1F8143 -E13A2556002169F86049446D92C54856D25A90F270EF963627BC7890A0156C21F3A2AFBDC45BD0 -0C7A4BCE6C04BBE19032C9CF72E26395D9A31E3C5DBD061C7108283830D4CB0CEE7D6DEFC0D642 -DE38333BB72132C9E956FD58DF4B48C74BAE5D8E9760ABEA97520994A6F98C42C01760011B19B9 -E3DC79789A9BE75052477C96F781D309C7CA44939A3D0A458EF25D5475F99380492E508CC36D4A -2BB1AF87B8D7B062750D8FC1F87C774A4CD5EDFA0A7A04E7F9F273F90317E2B0174C398F3E583F -085AB4E582008470352743572A76A6EAAA2DE3D0FB2517FAA832EEF087721D2092FA43C6165DAB -F090F59BF9E1DF2EA4717211285B51C7CECF3EDB98B4F417CA0156888F4A95DE67B73219256EF5 -4F553038D4DBDC64DF7B704F2B8EA7A36EA5A4670E3A12CE6E2686DB8EE651C6F5F30871835304 -54CADA03630DBAB407B45723846C399A2E47C9F7EAC95C86F4AD2119D49B616D28205CB8817E47 -4A91CCB58629BC9B2DE0A143E3EA70DE2429FF83A2972ADF4B8CEE0DBF0B22BF47AAE643627DAA -565FF473C4F1F7BDFD8D320ECE472352BF037152855FB9046705D8319D78C3E8D0D6A095565C4D -AEB2C2A621EF81616FEA46CF8B51D0B23A9A47A9B6A7046EC2F52E1A9F1EA612576E6B026CDE02 -9CB1A0168DDE4A729DDBDB7D9DDD253500C644E0D4D680F37A079319BDEBFC9C247C675E8202D2 -B09669E3D90F6F2DFC7C6899E8FC9E48167D291BA9D0B33BA0F1F331AB6578734F2A4D27B9BE40 -93C1A1351F950E99A805E2F16C900C61B7A1FCB3B3B66F66C5D07402159BCDBD15F30C59917316 -255B77E0EBAA3B4F81D5AED438B32BF815C94772FDDA123EA4BDF29081422CA934A8BEFBA9FAC9 -3EBA6194265AC59FBE0B5BB3BB056E96055A961D5629D0CA88EE0A672B9946542CA1AE83F1BAD5 -BEEC57336E491E8067EF260EB8BDE634E8163D2A263BC815968DF9EB7770486519C13207E3ADA0 -09A7580055D7E04FB72AE364FA5144122CD7A50AAF1870571A0A7F19B52805956C78062B17FB71 -58A3193F7CEEA96A18A05F6AE2ED484820C402BD0DFDFAEA48238E37F428371FEF79A1B93F1F2B -BC02F2FDAA126D8904E6E4CEEEADD7F6ED036A2E7D1B6F5DA7F598FDCC7AC7BB175DEC45D4FCDC -4A86E2E3A9A51D00B33945DC7E38771532F3A75B9017AEBE1FDD745356EEB54C1C310EF6C1B85D -B0D09B0C61BE3AAB080B58E279383D8627966802686283B507143022BA281165BD9955C833B1FC -69A3A2071A5F5D664A2E7E9DBDC85B64A48684A2DC6EE9913B5633A98F19A546DCA6727361010F -217E60ACD1946D0D1A2B0A31A6103D8E7438FAF554341192E2B33FC22C57757680B0C44147AA09 -27CB41E464E94E0E0DD8EBED1873F9FDCA312A4ABF1464822DE5E6CA723B8B2F3B23B7368B1DA2 -DADE8C2B58EF71B068BEBA33DED1B278D3B81D8AD44DFBAB72D4AADBCAC1D01FFA901CC3FDC56D -DBEF40BDEC4BEAB64916F9CFDF21F5B118433B672BE308267F1A8AAE85EF280834FF8FC6138A2C -41773FBA3761250AF744BA0686B6BE8DF369748CB2A30EC33448ACB1A704D1BA01C2365FB1207E -98DEFDCC61CDA54B120A74061F8B3244D12F6B31BEFBE2AC4629E6B8009C8239D427DB2AC9CC5F -70F54870D58C286C8DCE0DE89B6E2D0B6319AD1A10D91F13C8FE61D7A3B2E1EA19E38F12733BF5 -3732B4F3FC6A8E12FB01C0F03C38F645E81E64E163B4C3E3DB7B6DE0321E78726C0775E3AF0E65 -54B037B3192ABF1D688812BBBD4E643301BFBDFE27DE4C9CED8D9A705C94A22F599CD4AB72D512 -423B3D4396B42C901C42B958C46882672449440F0C78BB33236860770B96008D7863D374D05C79 -B221B20329064613A7B7FE1828E5A80EC45C64EB08563574F992B5673E53456CA3E8D4FDB81E15 -6A83869BA95C8A6E8EAB804438EB5BC5B6B73FD493E18E4C95E217B847E422A947D9ADB14FF0D2 -066F4325A50BA07F68802D86D51653B264832B4D6102107FE04994F8DB0464C37F3B0DC87D45AD -FCBF95B1BB20620F07AE420AA66D7585EE84A3AB73FC8F1E5FAB3CF2FF384DA9669DA91B0132D6 -9BCA7BC21EB7AFD82902CCD9F642849B0AB620A90B3B57554A57C17EEF51A8312F428022D5EBE0 -F23B52C06A7C3F17D4BC56700C6701F2E003BD1343B416AE36CBE6D6D062EACAE4569FD55B59D1 -55EB2E0801D8C8212113A9BB7BA5BF4AE89D434B2B838C911D84540CAE1E2BC95DD28A278F3570 -404D91D3C18BE468E6F54BA6B84D6307A2DD5587DAD230AB2383E6957E9AC1A75EC6DB0835F248 -C9EE480318E1BFB00AB0ECBB1F160300E0B6B2C562D1B856F549275F98FE1480B9409A26BB55DD -F5E67AEF16288B3F4C9FEA584A8AA61664B73BEE0A62A5D8BABF1844F97F7ABFB73B3CD19025F9 -FE7C089B9630BF55C22DD14849FB3543122CFB669B51533C29F78E51F53C494B2201CD5FDEA488 -F259C54F7912E765360A0D143B59F49B935006066209D11FF9F9541F11AE4F7C70ECC4FF78FE8E -0205E1F97D90FAAAD7D12E239C009CB97B1AA7F707B7D018F12563CFF65AC2FB14D7EA63901062 -2D5E3D2A74CB8EFBCA34DB240D10C9FC1F2EDCD48CE098AF1FC01C3FB49A27957405DA89307A1E -A877E1D4B0AFC98CE0235AC2C21D2D73B5DBAC68A0DD0796ACDA76A1928412EEA5053F1E2EC78C -65D44277C258A9B211ECB8A3D49C34C89ADA99482ADD3FCF5AC7495AC483F92CC8074AF6B57972 -6B497D5A437E7D37B4CC7913FE23047D886152C041AE3B5D70063649C8AA7335AD3BFC105B9140 -C5C4BEF7DDA3156EB8841A07064AA2A0EA5E7E6828A66CB2284A6D5D4189B6DF9BE74555B881B6 -F826917B2D09DF633FCAFA52B6E3A8B0E670623AE825A746BB7EA9EF3F52EE05F0A7E870A61401 -96D50B0FE206436714B74DC7B3673D9356F885DAA7F79A73676912B84579F0F4978F327CCBE063 -D09D22DB01222AFB4434045C90A17D0B526657958070F7A6AB555961DB6D78F479331E37305D5A -2072AE199C9C31B12DD61D10E31889E6DE5BFDBB51C90548BF7F501BD33DD33B5F679F8E846007 -BE09C39050AAF03464A57CA70FD083E2EDC2BAF5DD3E0CB375DD3A2782898273518D7AE09B5AFE -27F2560FD76891282F7B68909C6FB9F549AB9B4E664CA259E0652E66CC58C250D285FD2535660D -7C9F4EDCFD874F4AFDC67D1B909E0576D159DE69FBB4DA307FE37CCB01E7B7C6682872FAFFD590 -2F31BAC68E68CB3A03BB824B5F35616EC0EB43427BE7B3976906B6E72F9D70B8D69758D4D4ED1B -D9AB405B0E9E32400EB6C5E7FB006997D5AC5265FB5571DE4D1E3E3123A725F37153C874439407 -8D1786B9C246339903DF1855649FF1B97C919A818A3C986AEF298F2C901F47C44E726BCDD16ADA -2DE467F348F273364242E82E6C702C771B8B0612380BBDBE29760F190EA7EF8F1C2B9991B701DC -2D1838AA8282856F3EFCEA274718A393B129C768D50D71B5849ECA68CB1316FA6D1B83CA9FFBAE -C468178396258E077393F0EA6EFD239C554A72252290EC1CED243062B1C421473185D4E07FFBA4 -11A2AA16A0A64AA3550F97D778BD7FDA6962BDA0BD96F359ECEEDDA3506249FD0795EAD1B4A8D7 -68BFA198955F360BD1F57ED9D936E1A765EB2A13FD7392874D1AFB461600D077BEA83175F7BC4D -732334CE6F0C8556414C35E3A8F2626ECD852399DFB783520F91807822F34BF1C99AC5A89594E5 -5CE25CA47D9AB411D74C489842C85109C12AB25B0105F6D816CD963AB532323F9239CB3861BA22 -B11139F35A4E9B843D2D9B832DC81CEBBB06405B0F6F19832E97EBD56B58739C83D2B015CED279 -276C9EAC0C1D92B10986ACB410A46D0C3BD16B34B4A48C8E2D5E47461959DB03D0F2D76A375535 -AE8818EAEDEC1EEAD181B1930C5828751FD1002A18087A03D2874E20EB7C49A02901C92973C235 -0901DBD7F2965BB17ED78F3CD12568AF15BF04C9D366380DC3C184A97E4A72E9F8CC02CFB7EE7F -4956CA929A6E32AA2B2807AF372894AF2E9C37A372F51D9E45E68601FF6F06524210F0567B779C -976618A30B59D269B808741DDA7B003659072374691101D3D09D505C60ACBAF7C122BF8FD6EAD5 -7328E60B69168080719B6DBFBE65A31C27FA3C456F3CFF4BECD6B32048CB20BE477BFD3371A014 -0C22AEFE9B13B0C7189ABFB43699E43E5B2D4AD7316012F759EE6CD498284C81AA5ABA819CF9F4 -C833C7F62B2AE7794FE888F0CE0F0D7FA21A6C6A8CDB1AAD802FE6D85777ADB6DC1CC95587F2FD -A84AC265A1849F66873F14BE84753C499562579F2361751FB7AC809107F02CD3D953E47EEFEEDD -38178FDA90A2FD01B7FAE52395B970AB7B4F923175FAE29828CFDD824E21CE9FCCBDB9DF984B1B -F640D8995C1D32DC65AF28A899C5E97B828885704E68A0EAF6058191C1F6D7C6687F2019DE8A4F -B5F65A0469BD823E77E6EF6DF177517AC774DFE568923C474C9E7C5FCEAA7EC1241960093ADC9F -3ECEFA7B3344F5E064B8FF023E9E1DC18566CB1FF960DFBE470F4222210C5A41EC3E8D4C56CF9C -B99E68CFB0A26D9D698DBBE95D407FBC77F9AB3E33B94DDD2299CBE40B0F208672AAFBC36ABF07 -F39ECEECE3A2AE0EDA34A78CB38993668B60909FF1A9FB10EE7416D9A16A7711B76B7BA03D010D -AE04581FE01A379536E4A7C913B741E8A6135B6398300B22B8E07D3B14A93BA76195AC03A1EB1F -E0FE1DCCCD048D16294F365178FA853BF76E7B92207DF27A4D1EE5873C9A40EBB42E18CB7DE812 -1BA54A479EC96A727EE581DE55F46F536CD947FED706B0C2CBCB2ED4C2399FC8D4B649CA5CB8DD -6B3D8AD64D6BB395D945E133E24BA57377E4B82B77C729AC7D5EE9153B2E0C1AF4014CDA86476F -EAF1E56B7D86421814071886EE30DD8E6EF3F31B0B179367F745A5291CC6300A535E82912E84B5 -27A283DD1363C8D6B52CB2FC2FEE59D9509395A38A46F235A1B433843A87C2F07A66BC120066AE -CD6BC0936806051001BEED1A1359E626D77A9782412197DE172BA23D071E930D13E0DBCF59C3E6 -7967829F6C90B500D2D76AE3FB5E6C9240EEE88AFDE5F2CCB04B036B7C9FAAF679E65C8CC7C013 -339B56BE285D5F985408DAC02AEF10A865ED1FD34CFC03F087C175509B2EEFB3744C580B31B097 -328F360E99A480FBD7A877DDBE758E65749A753ED8801F6450488BB80C5303B05011EF5C6820F5 -008B71DA3E62761B559843C59ABB7E95E413688C40903538F452430B65BC1B9CFDC77051BAAE60 -9C413E0370E64B57C59E7E02B7B07768DA84326221C61E8ADC0B8F7E3B3F02897330F8397BA319 -94A075119999893505F5B665A93498E98C78EFA8AB7B267B99C7E070CE2D26929052498BE336BC -EE7A81FD448572E302D1779B413A8AAAFC1D005461E3DD63B64ED694CEA82CA9618421FF465B84 -69739A5F2BDD2F80FDCC64A2A6B77B164E8F0490A3FE7197971C0E27BD1459C7CB756B5A3460DB -F914C8736D7FD74A4371741F670840C7C154D70EBABB2B040DC864483CBA1AE8B630F38699BE8C -0316BF5E25E81ACE6482B084E70F000D6121F280437EA0E43B3F14B5052A61BF06C3974E753FF7 -557E11F70D70FE2965238AF15DE3A4A9684271358E81347ACDE824480D51006211840661D48E0B -758662086C5688065A7C5C03217124073495E3E7FED72383FCB8AA246F29739D3A83DAAF8CB964 -A023DFD131F022123BFCC782CC237CD7C8C0611AE1D8FD8CC15211FAEE13D69487F99695FC32FA -2D2D0EEFA3671F58BE5A10517F787FFBA050B9410D0DE4E4AC2F671A23F1A3730F9E53CE1F073F -F6D824FD4B742B8509CEC73A8BC3D7901981E5C4606E5DF31CC4208235FA0B0ED784D1B47172F5 -B8BE1AE460FE145F3DAD2835161C29694D087487DB7A23F81A21862609E7567CD922BC4390EB1A -698F0719AB66EA001E88F9717765164FF582E75B934CF66EBC1921A00DFE652940500C4C58B89D -B6A3485AD807B9053424966833847B9D9BB309530A81E1EA8180253E108E84EE70FFFE81880870 -EF69908DF92A48030BF62403067494C09D98A896240E848E3DC408FC45D237679F8C715BE9C031 -317DB88A8C1E3985580BEE4B9C1D2094CBB62FE6A5D6C5A37C38F80A410D267D2D0BD502F61C89 -E937C67F142AE87FDB1353CDF29106F432F9DA2410F69BC1B2A9F2F6E56F3BED2C37BAAC4A95BE -7746A98BD9ADF3F42E81B77C72ABA739195A18852145964A18EEE242F1DB858FB978AEDDEDB5A0 -C735F127E6F26B414672D727FD01754D1F4E6F1F763F6F14380D83BF01BFC4E525A510579C5AB7 -3040F7EFB1BA7E0AF11D81483E295C467F57600D9CEB1C9036513A51DD2D23FE5B461B9A6118F6 -8B506BDD1357FDDB254DCBD2F288B4DE89C305E02B654EF11AA0A8DE529B093BDF75BBF495A574 -FE2273C98036E3D990956C3FB832D8A52E848645F1F3703A907BDFE522A0E40A46F62C661C0B75 -E9266C9DADD811EC8ED6D6751F1DFE4E327CDCB0B3962C6A2B6D5AA780A0FDE819C1870111F788 -018DD53F1A7728B430EAF1D959B3E1A51AF26CCFD26EAE9C4083AAAB283D1BDF94DBFE17255B53 -2EAAFE1A0B9FB9535C3A7612CED818685447D04AD983C299BE0FF10121CB167244AF833BFA84A5 -5853718D75FD51F83EEBB99840701579C8565588C0FB4291B9B5CDDF19AF7B1C6793D74B0DC80E -468AB356715265055050F4AB55567C69BAFDD7E617E935BF6682F9E2C4CC243244CC2472670174 -6BA3E743A9603C43095BB8E6D98600717D452C5DADB237036889C9778F7BB8BB16D6C27B9D8447 -8E6905B517BBF627455CC21A52452D4D97BCE4CC389922DED1E950C66F833CA1EC4B135CA504A1 -F120995338D0C3A9A81BFC81D63FF9E6C53E4EF6A07C511214F5E4D7BB9DD6032454542AB649F7 -6FF1DA38FFF98F9D104F5E038C2074C2C4D972CF84D813C5D5136AFD204D10CBF2B5865040C03B -1889ADFD00C8AE361254856476B81FF8704C94D6EDCE7E9C644AD69791D51978F1E18F7D43F320 -00F61B06835233F9EC73AA1EFBB134583C0B2DE39837A5A3B652829CE3E3C4FC29C17C37925658 -CAEEF53D597C675E609C19CB59A05224F47C77D799A7EC5BE0F8EE94271AB4E0B2C55737FE5E35 -6927DFAF2E79F815C2FCB98C194F27612684E4C335B8A95FD79EA9A5C59FCB761A0D85C3D1FE24 -1863FADCB7B832FFF9B3B892A1EE1F00BCBB5242035E40D678F8552AB46105370B5DDC49D30FF1 -E38C3878102499EA9789A5E17670117CD4448E5A04DA68E66705C1B5EFC74B50AB556700834255 -29029CA07D645BEF30A0B14E17398D5BF4FE90A819EA00B07FBDC8454F90220386799C89D3F556 -BD6B0DF31CE7EB6D637BAC5ECEF42D4CBE437CA8C3E9750CFD597CD5A66119AE45DE3418702EB4 -7CD7ECC900E2183E0D3C9C139B8A7551B9D5BDBB4AB17EED765D1CABFA4B3F5134378B30FDF696 -FE060B6D823A7F6D35B866527610B29B5E69D5711FC834E2C60C11857888EBE2AA9DCDB985AD5E -44007AEB89E11DA08F666B0494ABBEE4C0348692A6A9902BB7E4D1474E48A410928D2155986968 -2B48BAAC10090F2F8585D46BB13612220241763766433A7F23599A462C5E39AEB8DB71299DC8EF -A268EE3B0B8A522B5A08619483AAD6A04CF107E268DA6751AB04954241CAB87F679FCB04140D1A -7B4E6EB6A75B76525A86A1E527CE56C546E6DE3F6C42C171537C8C86B046AFA338AA9A76C97FB1 -E7BFB161FA57EE38B3A75C23FDC4B49BBA3C34E3490A0A040E5569E2456AE40D28946784408E6F -1C75D8BF81319E3D3A946B2867E884B58DCC97F846674AC93F2570126480A0932D1CC3DCB94EC6 -E91AE1DC4C442A56B15BFC0B22AE5E86A403CB8A2E7EAAAC996DA8F8DA5F7D145830C06A7B50E9 -913A8DAF63D596871C232EBAABFD6CBAFC9ADBEDED8C7662EB39BD306A9E38C9CF9F71FD718FAE -D88B4409E64AFF7B6E07EAD81D3A50712193F9CC234303C55CFDFFB0A3A7829942C4FC55A89697 -79961AC53CF1FB2566A8510AD810989D6CF9067A4D72B20C0EB1E8F440394B71A083F864DEA2B0 -476B807459AEB77D0DC68454F226D04C3D4BEE54C9D1F7F9013A8AE01E37435CB90472F35786E6 -4FBB0771BDB2FCE0AD057F907DEDF18A9D8706A48A288D82A421D126DB42111C7BCA2333C7BA91 -0F79B673AC27DC2B1C0452621F0BC8EAF88C7EDDEE8EA88A31B3BD7AE509D68959102E9FF3CFA3 -CFE81BEDBCCDA6A742C3107D57FDC93D4EFB328C80A5F652B4C5B607A7D3685DA5FDD54F2F0D26 -F2B3D719858E3E902B7FB49E06B1B5DC7A3A3C2CE5DDC471816C739AFE8C5A617F6A109D6D412A -299B78AF99707A66D58EC406155BF9E1340B0CDC7ECFB4FF1AD3DB0A0D0519FBB5EC6513F98011 -DE0C37C65E97CB7CC6D68C224B1D4AD96EA971270BC9C2306D0FBD61F579DB318289EDCCB6530C -36834B3960DF38BCD0B7F7239E84A0A64EC64C1C6CCC087AB6858708687C8D008316863917306A -9ECFBBF7261FCAE77E10AA18112EF3C463CD86A6B8CCBFF9E497C94D142F4441CD30DF0777A115 -6E396EE054B0C30021F3DD9B5CDAEC67564264F3AA2F12A5900F8DAD85542EAE0344B086A6F17D -28C23FD9CA2FFB0E747B8F7B47AE99469E5AE89BC8D3AF806C37D3EBEE79828CEF262293650372 -83C96428B1A468653C1EC96A31FDE279681371C263AB5A18F0EA86E47111EF072C72AECAC25841 -3FD8E828F5CA38CC3FFFB847148C68DCCA9051CCC5A971C83F30987B874C66424FB910B5588196 -2671960A7A95A0D535D007980A56E5AB2A2CD05E994B2C71556F38964161D4965275E6712338C6 -14D4846FD86BFFAB7AE8D2BE1C58C259D46F7CD47DB33135B37E2CFFA757C976F8617B6BB007B4 -EC39B277958616DAD13C0C9FEFF88F4B0AE1DAF877D71081474DFA48F6F2577340A85EF71C4CD6 -8665D355229E84E308D762243BC0ED385F18AC14EB66FD31AB6F24FD75609F389B07C02FAA2F37 -6A8897C2869F0B4CF1607DE38FD41CFF171B0D4B39CE2A28B2C395A7FCE3E04F0D7AE6F0BB5D23 -9E620DDE79B2CFD5BDCB5540BBF3D2F7C5ABB1F4C376DB2D16BE823DEC48F64BF928EB89F1DFFB -22845BF97740C01D56B321312F26CE890CFF8985D163F406268AE4318B103125089319287FB192 -3F9FAA877DC3ED863861ADCFCDAE7618FAFFAB358111DE8420A5B6E59CE6A1B487A5EDB28FA813 -6FC573077B8F36FB0017E3119B56023B2E0E0F28F4423C11A264B9BEA5E6446AF7E9099B14FECD -B29A0F8884A8828087A60CFB69FBF6334C5C6E9D754EDD403BFE0075961AFF6E9745A047F6710E -4D94E2C43318E6ED0AA680B707C768588A6716660CB66352C8F6E4B8009BB761611D755E72234B -45BD35D84F57559441A571399830CE485008C2CD35C2F50BE38DE7443FE1862756E6577626E13F -38B0CFB5E904C6A5117E36A7AEA41A0BDACC25B0DCA61381AAE1359A98D398B8C04ED3060F9E69 -A81640BEE6D2D97C3003069B763C1A024F476C8215576763F4C8EA61D5182AA3E34B03E814C8AA -18A950C0F9F5E7212BB0823A697709DA6433E9E0FC8D86FFBCE94D8B0E249A605E4F3B38FC049F -BBF400E9A320ECBE127AC50CAA9FB1F5AC1207A9E6E7BF44DC94D008709E696711B87EF745E17A -8D5B38611D83E5E26D8720EEDF4AD6455E8794326E3DCCB04167935CB73984C72DCD036B24190F -2B4FA6896E01B01777DC6032C7017132829FE9B370C49C25620600A999F87F1A7C7790D047D960 -4EC7A0746BFD0D85E02A626D15130921699A33ED39D18634F56FC81402E589E6644D605412E53A -FB366D5A9977E2204FF7DC949FB7587E76950F0127CEFF8F3CADACD67D3D3B4430E375E80F3E17 -9C31E69D33F2034D62CEF97112A2230A4EAADCA36C7157C4894245C6D60753AAACEA6149F5646D -BEA6DF57918E3CE20A184D65C22EF37E6C1C7B61845743CF8C52DE42D1216C22870C0E7AA2F5C1 -81F7A15DDC57020A30AFF8D4F6462B38DA7E72C1E29021F0277235F8A199089B5365E7E67E5B0A -3FA6C22091BA0E96ECF49D7161D134B7FD1701350FBB2F99B54A51B418B567B5647D7F9AD7B4EE -5DD670DF8469FC18774E8AB4D6EF4B4F5751CF01220AFA5C3DEFA5CFCC29F7C181B667FB9C8632 -5BF4BAC10AF238AB2D2A744A509427F654F9B85FC908FDDA60B31CC92E837A78D38684C84DF38B -F014430BC49A304457B2E7D9B739B0902D6BEA0492D6C143B7DCB462BDA7DF0C54C3C76A52E355 -4F3A1749656D1520121948102ADE605E6597936D7CCCA51AB7D80A4DAAA09992B905A491099AC7 -120FEDA88CA561A199CAF3ECD6AEC7B99994A8416EEFBBF9A1BDCEC671A6B3FF8DEC59C9DFD795 -DDB249247B918BE637A204C275D43DB5506EE8DC787525B3E679CCCD3ED43B58096281E2BAB358 -C5303465E46DBEF697B5DD33EF8A648DD7053234A53B179539C455EB9E1A17B72F707FE30CB95D -0C28911F8643389CC6995C58C6B83C88AFD3C594052F37367882C26A8936A479E426997D89FE0C -3AB9091E480DAF918BC26A87CAEF7BD1C6582C73F75B85D59B708D9C76F953376341CBAFD20F1C -8876F6EE538F61283D03FDABB3CB2888C5F3942A670517E8DDC98B6204397038B951E023B4651D -8E3F19733C8D6610827348881B570571FA359C840568DEDBAFE941B9DC7DAD8C3E1B190606420E -1DACF3965337C51A6BEAF2F2E5EC60CDF839E2DEC9B130C23BEE9F65B46626D20273A3A5BD39E3 -BB247B1DE1CF9295C409B91AF47B38D47200E0DCD317B4DE3ACD751E967AAF9DA7F6C026D01171 -3EE0F875EFD7B31B73ACD66C6B95948492B54A7B9865B3F32DD722913F3D9EFB40E4F03FF9E928 -AAE3AC1C4F239DD88BAD50A2BB442D1A0661B3F47CE2BCCF1A76A8604C7910873BDE2C2EFB4112 -60C98C75198EDF5846EF6EBC1BF94250D34F646A43D00E3A42ACC4E3E1A44A2B0B7FD74003C61F -00ABC9114B6936A50C67544EF62FFB2F19CD1E5AC55EAEE547C46ED91A13C76025AA7AE95E0B0C -4D2408E53D7EC48409D21B2DEBB04C7121487C50AC7FA8790A2ED577A9AB6E4063F1DB7BDC77BB -4542EC15573C3F2E3CB767DE52DE2DCCE04F38A58F06F08F0A541A98D3538CB41AA5DAB04538DC -EAD1BD6B41C71542ECD834F82184A7F51A4B50B595E50E04A5234094049F10A1E91BCA8C2F7BFA -AB638BBADF6DD02D49B2CC406E9FD40B734BA772A0429BD99CCD01F112E1EE95CB7E9F48D5A9BA -584636A03B52F94FBC0724A1ED0E5E0520E5BAA4301773EB98709AB035AF28D615230D3EE0DEDF -CD33056CE8C22A1FC8B7B3C2256BF7B7C7C8D1CD669AB358E57A1F6A400D18FA59FD5DEB0C2601 -02C59112216BC6E8C0817EB5BE3420BA0C2A4363021E57FF83F09B5026526B949BFA3342A70DC8 -81DD588833BEA53E06D29254B4802018B002B06B63374A6C6F335562479D0347DC7C14E2E3872B -4C4C55E198EA28B35A3B94CFA88DD3F52C3C192475B6C8B6968B49D2FB1623855E1D166294E1EA -C8337B3DF9B1B3F28114286FA24C7A56731F05417C40872DF09C55C3E81D93C4DD017BAC9A2CB7 -4ABD13E9622D3C533EC60B4A6C03E253A3E586D831D70E47501A1B521E2DA5D67BB1949503CBC1 -693D693925130928BAEC639F80DB420DF10C8553385E79FF75D8BD970041474757184020FA03C7 -97ECE10C8B54E3AC56F330144F2253B816441D75D0EA55D7342E7CD74B3B5311896B43F4BD1DD3 -82A6A8A0C3799DF24BE4D658E6AA2AAC51215C3495A79CA323927A69034959CB01D5978EE1DA9F -B298845A4A2B40EFDF7B85996094756C99DDA3C835EAC39826C048FFD5C5C582D8698188048254 -66387EC1CB16BC506533D624BF2333CA56C37295BBD41EA5C87DAEC80C3687C37BC3E514BCE48F -B4AFE9BB5B16E36321B1C0A29A423AD9ADF15718BC946D720AF5C20C1922A68DA0F36838D02DBF -7CF4D017BD2CBB96AB1B54BC8B75130109AB57CE4E13712CFB4FF099CBE8282C07D3C614179433 -B263696E7E3E4543E489A9BBDE0AEDE6EC0F1723214AC0C1C8F662DC05586E7564D405DDEA9BB0 -9D727AF5E75D7A5F970FB410E1DAD52BB13E79FBFD73340150E2FA08EBA94C59100D7CC76BE3DC -5AF4C5811E175E4DA3C857320593C5E38D66E565F1C06FCFE9A1B8C885A01EC3021D4A2E6A7AEC -24CF832A6E731732835FC0B67E4D726D8F22FBECE5AA64EF972407DB407EC9F9876AAFF2FCAC35 -4BAFE47FF75F06A17D2FC0B05A29ED963C73F0461AA599E0051E47F5854C974724A5A53B738908 -24D0B458A299A994807596DCEF07A1E40C5FE7557E9499D6BFF774B7916F04D584B818F0DA128A -FF856B494385F9A9B2AEDC4680A6F972E2544CA24E95273D394FD5BE8D9083F9EA81A8FBF44EE2 -94771767D6FAE60617B8997417EC6BC796EB0209E6B8D878DACA641EC329B0AF94E303A0AD611D -5E2C2C8C900857730D1EF11E218DF7F0EACF7E55F10B5F7C56E6AF414B060453C0EBE48118B964 -56D38C8A923F42AC5797F13C86955F7C1FFE29881AB82449377F3C8E9E08967B6F66FE925E9B7D -474CF80BF4F9A24E41583484A0AEDB8EDB0075DD3B7569E3261A1706F8A95C6621C61EA99DC672 -7BF50CA75E34A612D004C7CB81941AA450FB826EF9A51AF8D3FA17DF1A184CEFAE33F9C7E63BD7 -04527954200FE436220F2CACF234BB088B5DEFB52B2449238C0875D395F8E22FEAEF096EDBF392 -AFD6FF6C07ED04288FB73C401E29AFC2A76D4C3D02C4F48955A8F32D323857333ABDF3022BAEA0 -AE6E4531C18ACF750416C54C834D25E246333C13456F2B866B958B929ABB8E497917622365B5E3 -86FF235574876767588CB24A8C06FE0D495AA32835CC6365A481788EA24972FB8BE12659ACD8F2 -287C231396647371351498647CEE9F62C2670E8EF48788530BB5B006D93A29CD4A2E354D2C85AA -0AB2C800AAFC81F24C80A58C6FBBB89A887260D00C59EF402176C80DB3CF44B0A281BC6042BDC3 -3AEE88AD8A57674F65290386C73193346082F9477EB04A921B3EE960349BDAB9E5326B5C57E223 -527B1A3173183393ADF86267F127B52C49320B6ED36285E8ADAD07C0C91E479373698E709A1870 -C3B9F6655DF4E5B96E92D0E2F2A15C5D6F3D88ACAF6F95E9BCC52241799EB711DCE15A68DD5244 -6E832F500873B045AABAB816EB68FAA75E0E18B5F32002F283D6BE121582758CA59A65CA43C28A -68BB9E407E8F767152A35E8A90E6A6DEECBEFEFA2CE779BCCB97862240FA72B92C2E3428294DC5 -4AD4F7C6611E2D6B25DB3EB4995E894D5A17863D4C88304E77EF696633AE6F224342D391F7E3D8 -2FDC24E2887F43F4834EBEC3F2B32AD1339995822553AC68FDA951DB4BC95B0355A996113E4800 -8A387EB8CDDA0C4D0B2409BF9CEE2B37E1F6F4B55E9BE2096B8DB5A617F1CFE12BF91A21BAC921 -453E42E4DD5ECB5A479078FF8688BCFF56A4CD5047ABE1BB4D3EAA9FA03CD48FB4A283FCE6FFF1 -1885DAE6AFBF1C72E8399988C0EE6010DC41DD596530FA76EAE5662CFFA35146A75E55444049DF -1B20C6A99D838B6F8C411BA022D50ACC847EF94E52908E83B6293E719C43E2C42C953A7EB1395F -D52AA1B6E66F7764B77CA3ED37C606EFB9317CD27929413345C76AEA4619C08A4A00EF770200B2 -6BE73815970961AF7F2F7914B64F84A1BD43F9D186ECEA8656B8EBDCC7EFA35AD35D5EBAB0CA02 -A199BF3F7514478D89EBA07B282F00B55BEA90D4E8543FEA7E6D489944054880B09EADA41DB4DB -0659B8D96CED67C8A7C18DD5C41C50D8149E85A90CC1787E86375ECC386369420DE75AB44AEBC8 -A1D034DC8045479389E231882BE69C17EE57EABE00848F12D404E0C44340E21FCDA95E7A7515D6 -F606C600A488337B4FE30FDE40B19F3294A8102DBF57109F494C2459E9325766DC71375C418B11 -4B00620BB7E2B38CEFA679010069DB5C6B4CEB7D31716AC05E0AB8C411C89918A19F89578D7BC5 -10CA86BA996F4263D2B7C98AB5C8ADE8E7D5B96D467EA484958C8B514E175741AF715187F0E807 -B9C5B19B632BB42B745187681714526877EBFB568B3133F4C86EC3DE0C6D7DAE1660F1E1044521 -CEDE6B8ED3B03C16031A7DFC67C32C87FA83A5E29898375A5A5C3F208BB3CA718AD06D0E7BF2D1 -07E7F67DC639C5D956B79FB22BDC372846646F60760855A4F9F135F6CB1BB0EFEED0033B09FCF3 -A34E1AA76560F361157E0C2A1675BD94E0BDD1C7293E7699516A1304CD3A0DA5646ACCC954856B -3A62D38EA879EB0B0726447D0E198535124551BF6F9821054D8B845C441A9C2481E1AC3E542AAA -553691D7D6E4B303859A5086A7ADE18106F174745F38F6E3182F9260FE9E9C19EEF45359D6B9DF -DD0031D1F87DA89151B1BE4AF54B6670EBD558BB318F2184ECEE9152ACA35E099940F094AA2AC7 -564835E69E5C9C47DC7D9625ACB1D4243FF1D993CF854639C126DD8CE21A0224119ACA731346A6 -4AC8C18AA22FB1A1968B0A6B05CF3A1D5B24D3EAA7C8D2376D422902643D3FAB3F8E7DC8B24161 -3DBABB170238A1A19B4C8A4703E2B0A2A033E71723F557C314DB42B159E784B1822BE1F990D167 -0E522B9FB1B3A602B10AE08A8E7E3B2CFE51236D76B744456E5A68995294758A42F1004E8863CA -0D3AE455ECAD13501669A1DB41F7E853BB1531A4B949AA5BF0A5E478A5705D5EE45104760C727A -068E7057A808DDA30CFBC03157E141AC5E9E0A315967C2117EEDB38F9C66A34E138B29E3DE6A03 -C34D0A37740DD04EF8F9D08E545FDEBC571043A02165E6086389DC7BA3BFFA52D94BD4C1A27B85 -9B8ECC67994EBD370270B5998B8F246EA4FE0EA6963AE3E3398845A62856068A8A878B6F894A7D -28041BD30CF4F0BBB5053AA7DD86A2B94F3794C78F615C669274629F392FB2D320BB82EDA9845A -66B0EF0384985B938FE8A3F47B00C2DC575949B8B932F3AF423E17F72BC3BB9B63A81945CA133B -CDA5EBC9CB8B8B969ADB5CE60CA6F746C63DA5C516DB410F86DBF878902E753A338D3FB08C60E9 -41AC304DD767BF47D49BA7FBA110398BE21E0F9F01B6DF4CD3256A7803E5BA935DD6CDE11750D5 -DEE0607C14A9A4DD037B685F830094C5BACD2283D5854F5360ECC924108F4C129176AF6E624458 -BAC41E0436912CC5281EA94AF791219F1D04CA3069F30B50AE79BD8B8576B9AB76E6033787CE32 -3BD25240C00FA03FAA253BD83EFB8FECD2DC45C1FD7CC194FB61CBBEC88047CE8AEDDBD920666B -C2676E21A3919986FD56AF5440280E7083F04987F0272BEECF8F3B5261007203702C9F82B640AD -2E6ECF9D0BA81E5DAA95688D654873DC9177A2E7162DD21A7B40CB3C85AB49469ABF8F133F808B -3C2DA2A5008E25A13A6D0E49FCFFC0C8D3E5A257A8C8D6B1124D7017CC0263CD94F50D32DAE125 -C66A0AA717839BDAFBE889083C01D5E41994B7CD52E63A5FBD4D89631A93B377040DAE99C5BDBF -68C2142FFF3F2B53DD5E182FF6AD34A0BF6DF19F58E0584501239815495DAD144DCE748744899A -656000E283A237E74ED58E2452F1B6E73A2DC626C3E52155036822984E5E72C667C2E3D790FFAB -5C0A4AAE0325872AE9488437762F4C70BC0A369C091EAB8A3E8F404464B99D26D6C35B042E10D8 -97E029A10443074CF73949EAD0DCB7E0B8D39BF3806F39D3E3C204527C17198F21FC76FA5ABD6A -BAFB21C942146413F03E0CDE247A8CCD7C726E993976F2D730E43054229A45C0FEC09DBCCA98FE -C2C49B2C6B015D34881254CF11246521D785DA12C48A4731C3AF1353F99B0DB96953F5E42B3C37 -EA460876FD7EB036F7BC5D8630354CA18901C561A46A9E201C30E62F23F3F7B0DDDFF596E13D7E -00D256E6833495BAFDE723AF59E70D841B5028261FAC723AE4E37ADACB02772DFD6321FEB65729 -D65CCD58B312FA68843ACFAB7EDD78D31ADDB734B647E87C7CE25A0436A0D49499FA272FCC88F2 -E0CE5D7382D8CBF7930467AA3C2B1BF67E683573DEB3EB57D9EEA5E185786DC9721A4B95ACF32F -09D5AD2C06629198D15A74FD41D8972E1FD77CB71A933D235E37E893E0A4DE1D50717E125365A9 -CBC2B8291D7375AE2340833939BB0F139FA392F293472766A2ED405095BD990660CC6F40954E96 -71F9557D584266C6F3BF41F4FF6E0BB7ABEB272AF99D0A4438BDB4AF6789B90431B7DEDCCB0D5E -35BF872600670B0F15C19F34BCBFC59C4A2BE3978F6A184DB4A4745B401BACB8C77DB62D3ABB85 -FDA212912325C55C5A6D33A24D76C7BF72A6A710DAA7392A7F7CB0A6339505AC935D346C9B5E2D -D2E85608392B3A25237337EC8F5856BF3F3ED6E1514053F4FACD12A94DAFD1C12249A67E3F0805 -08CBE6916B2DF3D9478C737A141AF7C54E8832DE822817364EF3609658C65923ED666D86380B99 -ADF7EA02C9DAE111DCF399878CEA60F5D5B7C18D244AE76D6B978BA17DDB71D3DFC12252202B39 -6B03E36E376A54E1305A00D074419A8D04D53C3DA828A36C8F40C439CD7D58A48962E7BE992A9A -A82EC8537B268AA13FD1B88275D87BF0244D7B61533B16730BB9EFA643A5B96C4E9C10755A85A4 -F4C71AC4C3DDD308DFFA066162B8B7F75F7BEC8DA40C5194B759736381349A621C407A34B9088E -9EBE34650582CD758E269847328AC43EB79B5725FD7E516B8A974289D8C5BE90C301323DEEFCC0 -A18AF6632AA8B80C8D188CEC275A93F68CF87FB7C6C19BFF2C0703CFD15ECCA16160ACD6E3E16B -00FBC27616CE003FF9A60569634DF6D43997A4DC23AFAA8C2CE9C446B673581FE9F30A9A2323E4 -C28C7C9FBA27A3B5EAFCCA82D85B05CDB6B39A7C6B3584F48F4E3A1F013ADE47023830E47ED8C9 -5CFF3F648C38BEA1AF9135E16C87A42311995E09E7FB51F06A87102BFA8263C32067B26B0941C8 -4F2F62035D58E9153D89D808AB71545A1BADAD1817D0DC2836C6204A0A0418A2D62EFC2FAA63C7 -A9D0A5CDAA5F0E491269B127B5C716C3D5CEE6BAE7FD8C4F86C0632AE757AEA55F15CC0F95D7CC -C41EE9B1AD9349C4F81F0998ED10B1F686272E373860AC2EBB986C2558DE989DFAD95DBBF9EB54 -56384A0078C133E91AC9CF5365A1E733834B0701B4FE43964517F0AA1C011BB6A7029F8D5A2333 -B67DA3E019F0D8D7D533AD3291C2CBB1EE920E953128D06BBC517C518AE9A2DD49B933E915AEED -9810C619035ABF9DC147F653ADB1268169002E032A42501200A685D19070F12F9137BB1D9F2A8A -45C5B52F5577305AF94D9C511E5E82AC67A22164833471CBB8668DDC88D9C500917183C5E14A82 -F1D9A0AA3DF2D7BE4DE844BEDE55700A2478E121555C7F6529FFBB052026C80776B447F1F5BE0E -85AAF2CF09BA3B0917252D68D671005D0FA328BD225553D98F2C476E080BE8E03AF4A7651563FB -FE08C230F3A956F2FAF7ABF868C08CE33A7FEADBB8E6D6AF38A821CCD8B4EFFC02FE23A37C691F -6927D45F5710DD5FAC7505FB3A0DC31C766842B482BB77DDB3990346F627E0E1657DA8ABC8EA77 -963D6CB838D9C4E58C943C3A272582B3E63771070A6F62BBE7A4B11B8CB550547E17ED5DE6EE16 -1BD9116CBA0E0EEE910F98948F740E7A5430176722BBCDC4AB66BD3541443B096063C839E53B05 -A55E72235BE223D286C4319FD5A516325C8BD480D1867F2013599844FD2478B3B52542815CE945 -FFC8FBEAAF9B072CB4988253EF70E42A1ED315FE2C7571367E5217ADF3AE4FB67575CF49B1A269 -15E653B5A86E3FAE1C7D04E1AC21CA5D7E7BDBEA0F58C9962B40A168FD7A24B4BF109645481EB1 -18D49BB99B3541756E0DAC0E2327D1FACAED9F7A7693FC1A15A5715F1FD1BFBCA7D232FCF9663F -B0CB352570A5807D170E5B6C6727F7828F87FDC9D9301A842C53A38C62C804CBD611992B3A1C8E -C7103E76294F7E6A50916B8CEA82BE5B7EB777AB2E7A8C955414C8C61EA330BD18C741D5EB6E15 -A6DA46B30345F4D56CEA595CC4838BBF99339BCE82582316847513CEF43B7DEAAA17C7F3DB82A1 -3471CE81BF7894721B80F8165BCC3F7601D5D3DF17D2F37C58C5E9D87F3990E838E55E8BFF7087 -BB79A1DFC321602B386F98D1D97CBB07F6D7B06F900A77E4847CCD689B23C277E6476300D4D9CE -2B5BB5CA2062BFF0EF2BB3D4ABE2A9F990DCF74568D7CDB717E4CDB07B97614508EF34EE901BAB -B477F75C41B2AAEA8F46B218DD0DE5BD82F1717F96E14ADF8D7366274F3C077681E0CF33ADD953 -8922D539077C56431909EE8C1EFF7467C9A5E215350278534E5A92C6BEC72D4C34D8D13CC545BE -543BBC371443F2D346737A3C390A0F7E284D9C4669D374839D3ED8A4023F1F99FD93598755005B -C2A34DFCC4D19CBD422ED4E857D419BE3B9E12E01D0327C51D3589E83325896018C9B0417FD876 -0AEBC5E0DC8367CBAB11B2989F4ECC1AEF87D935722912F180A70DFCE940DE3882A416E29BA14A -9C86E77380CE464583F385FF16F7FBDB607AA7455DA70CD8A0D9714963BF791D2D5E2E550D10DD -105F88DAB1BC1F688B1EE8B40151E533B6D56FAC3A4A98BAD8801864709AFF6DFB3D3EED5A532B -83E91CD8125A7A7AB6668F066AB79683C6A3F129C5ADA9431B06ABF37A724380CEA251D67B5FD2 -B9C97334297B9DB8E85CBCCD13911AF8DC2415D1D8E7804838D3D03F9D143B923F5C5B58E28B74 -8238665065A15A54B43CE96089B8E7DB9069B2B53210F5A03D1ECD2F83E1044AA561AE65683A43 -9FFA3E1FB60C1CB64F32FA71E3FB557DF3CABD87FD2F945EB3C6960228808E1F77B23DF8C7B5B1 -889BB4C2738EE5D607759C33D5D6174194AA9F8F90D969EA3DAE834B381A2E08E5DC9EB540679F -94D490F773A109D262E08CAE60E2E57690E8CF756F9AC112844CACE02AC96F51231FD83BB9FF70 -102FCFE3DCACC8BF9E99BD7A9C9CD9279B64B3602442624EFFA606326BF96DB9EEDD16A515452A -7F25ED3E78ACE15FEA2CF9F1D3C6A0541D441A9D94ED9FBE947AF35B70B21CDBC02529C265072C -99642EDC878D92A7664F37F5D9DC173F6C28F900586C48960241E2932F113984BA534FE2457F45 -16E7FEBC7A7673E8BCD4C8B05A8D9C738164A43DB7F581FAA8724D12035573BE800C032AADB23D -9A277BEC387E29F201E5F4091A4DAA4792ABFFD65762E6637E355B8834791370DB79FFBAE99108 -92036B5713F64A2875092825616C64C6827BFC60F8C0D1EB0FAF0516348A7846B657C809030112 -1FE3B0F1EB992ABE73F0842A5EE10D6436447471044EB7D9247B169C3F7C37B5109A5E7650ADD1 -16E52C21022FC991756B93D210C65F5B7F67CD38B4863F90D3A1742875DF8E6B24D9E27D726521 -432CBD225E0DF36DC33B8E8BED9FE897E77098832B9156725DC38EE82595481A76D166B37055EE -84EEF1899D249DE4280F7F15C76C044565949E9E4D438F327E05265E34FAF812E661770658F2F2 -BBBFCC933AEDAE7BE17A40880A153409C357F830F1F847D9111135468D7A36BCB1E69CCFF57E26 -20D97D988669D732A9A4F4ED0B1B6B542D729C9D2FE15DD8584ECD458A1305DC729C47714B6DA0 -33A0D0E221570397F61E67C056F66EF50BE591A6DC3E3246908B8EF4973F76C4403B17175B046D -230F17B98A217D346F0796A77B6F19B4B0889F09A03B4F7BEF3B241218A85B5C34C4420B87F0E8 -AD942D0A232B66FBBE49D2864F7AC2E5652CCE91C0FA6FAE79971F2D00E972151B61191190F9E6 -9CC7A51B7777AF0EFCAE0B2FBB626235D0B942134A85ED0168D2E0E58654D94BCFAD1D0EAADC00 -11939052259F193324DBA479BF57AFDE05237A08444888F08F9BA119175C776402490DB29FA96E -B0BDC684CAA8E0CB48ECC0F40A0C8F18E37ED04122007CE4E11E1FF389EBC7DE9F07888EC1DEB9 -A5C083E57830C1D303D03473CF649C83D03B17045F3B74A32458FB96C5856F02B72826B64D4866 -13C7F07D2A3441C71542ECC56D65F2A80B5744608D0DCDC14204BC00ED8EFB67F7C31794011C03 -93C64585EC8B7427B82467EA32A902FA1BDE691FC77CC61952C72F86B2FBA240D9D0CC565D8006 -4B0D9525CE09FBC1F7A6104EA5F5AF9CAC4A1C1892BF78ED5500FB5AFEC29532AE7ED991CEC28D -F9B076E95C64B91E0D262D4EAFE1C27E244C36B527646652F54C23E3BE59E6A0A2B123BB3101FD -D91BB2F3B313CA0B00B1132A3886172ADA0A234D805CD95B2D -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndProcSet -%%BeginProcSet: stones.pfa -11 dict begin -/FontInfo 10 dict dup begin -/version (001.002) readonly def -/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def -/FullName (ITC Stone Sans) readonly def -/FamilyName (ITC Stone Sans) readonly def -/Weight (Medium) readonly def -/isFixedPitch false def -/ItalicAngle 0 def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/FontName /StoneSans def -/Encoding StandardEncoding def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/UniqueID 38777 def -/FontBBox{-179 -250 1297 943}readonly def -currentdict end -currentfile eexec -EB7EEB89BB946F143739A83529DE3381F3784CC049D9A232E7E0884F0F277E8C6E6B0C95F5E3CD -DFEFF2F460CE06E2FC85C687B2452F666493AB6C55A2075C61F4DAFFB054763B9492E624F5E4A3 -8F11E3BC76EDDAA5C228BCD20F1BF2283E8133F07F5AA91BFF96808985D8C1736E8BC758781338 -F12CC618819D476B7674CBF6A7B3F1025A7291C7C074B3055F282498484C6F0FF8F641D0CF6FF8 -8E1ABD832961B8995838C9C0F6BD075924512885439B9369B37ABD9F474BF8646BF9DAD5C5EC17 -79AB8DE82C3D098E6A6637D9B4CC7174ABDDEFBD3180F0E62E1E650CF2DADAA7C7A6B1991EF9C6 -B5046693AFD8B1CEC70D85407027864F714E599DF9E4E6776CF8467214DAB6902ED5B40FAE4244 -82ED45A7BECB26941727281F8E0B3C15EC045133440070AD72736F4D87A96335CCAF8E6AA38229 -8CB7EDA49F963A9E119CB70B9520E5D7AAEDD5498F0ED1C8B3902637E71734A7D7E2412D5EB792 -B7B60BA9355628BEE3DFDA5E93B3026EC2886D40B22685C8E9BE5E38DE31FAB551A978D095C55C -E3FEC4D6ED65C708F3676F4CE5F83F614C02C8F109F1A7FE93C6030D303227AF0EF843C45F15B2 -2797852CFEA26D79AE2934E8B683732B306F9125ADAA1A802C8B82605D7395D0F22C77CD1B20E2 -02BC082015E293C8F1D8D78A0E4565540371EB3B51256BA7276B2FABA2CDF47D34C445D0255A4B -23A88CB443B997813EACEBFF51F5B8C9B1B8EC5968A18CA26BDAE2F00AE034DDBE4DDD598ECE60 -52A9BAEC420FE278B08F64BEF1069BD1FD4AB8B2A13ED3DDCFF8076501BC8A0156715EC132F636 -711EE9D0D8C89C932EE5D16F8096A9C456DCE7F59517F85FA409B6110DFC22A2391A005492BFF0 -C8610A9204D39AEE51271D355CE201A5719842112C88632AFB097C368EAB897DC1957B02962E2B -3E4732F6527C25BC76AC043B7300CB153F6971C0335FD3C6AE5AF7C5DA5621D03FAEFD3B8ADB98 -8272C6380708210BF140809E4A191193F3547B2E4D43D4E981F7140B94473B939BE458E3B69B89 -33ADBB82DA80BA01B2FF9878BE938D7E1E4A6E79B21C0B53EE510D6377E178E8E3556125E44D97 -32ECF7A7C591AD28B9C651629CC5A56BF611E2C2199DEC57D61C099E5DCEF5527B9B2299FA64DF -B3410193B77CF603A073D0785E1BA9CB1E3F0AB8859A87278769BB6FCB0C01EBCB40F80BEEC4EE -0283CB480E2B31863C2128ED5AA95944ED748805F9BBC70FA79F7A40C175F8A655C11C01FA9C2B -9E0A6A8FE5AF5D6E342ED1504BC332EA0F1788081808AB8A493A078AECABABB7D0D7183AD0ABD6 -576119456D0B50B0AC6C6C3DDD44C64D4D11A76D2C3F5FC53E626B12E92D22B757E89749A1CE26 -2C81F7646D9F24EE0350C309C0D9A65D134FBD216D3ECEB54845BE6FA7D67E2DD6B1F1262AEEF0 -A134A6E639A2E3A6C8110004057BF9DA48728F50D486160122FB7DE6587D432589600363CB7620 -728E10405C9B5CD7520F43F6472F4CF71FDF8CD95E78950422DEA82BBAD2A37EFC01B77C2960ED -9A6F213334183C34B5BC8F905BF35CA1604F593F1939B7582423B19864F33C720DE6D3B23B3D80 -674761CA59B1561F6094E433714EDB17523D29307950FE67B11FDE2AC1E48303DBFEF06EF1B00B -57201D7C78CA9EC0797600215132ABC35FC81840920A311E8C7B3B191C20F76D668D0838E5A2BD -713D8FEAB68CEAC365AFEB987480C5A742B3F85D2C6B3DDC46E2BC1C27B316F6C2E94489E6D6A8 -90A8C22B71A74B897210E143BFD17EFF558BB67EFD214F69BBA2A346AF95338409318A9C95D8F7 -76749854A7CC4AEF404CE41529C318C2165E2820DBA6B20E6C42318396522FAB8027289A93B316 -9FC3ECEAD61D09953D206A81630BF18B6F11E28C748F71B5FD105F913BE26FCE927F0611C7D202 -AABA714B47B754E8E8ACA58CFD7421C5B8793C83236D375EF5EC59BC71B5A63C2D4FD01AB72064 -634A3592BF1214E192F52389F6AB4A89DC4CBC1A9F4B267A0BCB6137487F813EEA0C6310CEECD7 -DAB781A8C18E08A1B20BD2CDF58DC72C9D57EC472254ABFB157EE54C969150DD97A30EC7A78B9C -F8C163FA6185B1E399CFD0B9316B70FC11A152F71DC4B9C902BD05F1AA7A655ECB1E69FFBF7CED -71B6640AA8C529AF822FD4D173CACF66DB19F35ABA3AEBCDDCEEEA061B06011553B86A129187F9 -26D18FD644660001C7C1EBB02C3344EF0E88F93ADC8F334EC4ABD15D45C33221A5BBEEC48A3213 -2BEC257F4A154E2B0401454138B8348C9B52789E1ECB5C01F7E8B0EAB2AF39B81FF4A7A0699643 -267D78C1B794243AE7E4A5E5972D2653BE8529FF3ADE15B8D2D9CEDB5B127E8EADD74D2E45FB4B -4704B2BC7DC6B900A66B5F19F4A92DF92D3433A7104B869E31EED01101DAF9AD5E424A855CBD2A -9F24042AEF767196166674AEA9B4D8B871F84EA776ECDF5F981AEBB58D139B33F188AB2A99B816 -1EFF8D88E6A57C45956E7ECDFAD1D35D6F51B3BD62F69E15FEA564355A05563A133DAE3E8251AD -6BBE5C2E59CD006D8F87A51BCE072BC40098DE0BDC3078C1705CA2B52C7A3629762F5997C62EB7 -92AD52E5F51A035A947110B41DAF2C3D40F45E5C7CDE09B53880B161590B706DAFD3A98436F82E -78E7F7C0DFCB6804B719EF0AE76637C38D02F8075DC63FD48D85AA8D6598DA1D489BDA2BD9137B -56EFB6BB37221F73DE7BBF07A1E6D4657AC56EE2BCA53565ABB572C84A0D023AC945681EEE5B8F -56679E554B713EF277D843CD9972AFE851D7A213824FEBCAEF2F159D1D944DEFD0C7F2FF014568 -5A0F7709376FA7755FA0E9E2EAF5827E2F23A452502F0C69C51A92BF01C3CCF947B5604164CEB0 -F6519224017D8F0AC8887C6E83F0FFCBD0DAA57523D209ECDC27C6CDC6A709D384AC24FA3350F2 -72593C5FC05FCFB4F2EB0D5424B958F3E5B83D2462C8E318A994B50C1E2AE1D0FF798837C6E5C8 -23D4D6F8D34043CFB2FE9A942711982BC114D1424B7E358F297B224DDCC63AB1303DC8675F12A7 -B38838D8F3495D20AF3D452026397A002E112B8266AA76AA4C8066DF43647FB2DBF74E8D371466 -EF6C05BB4CFF36C3B46D661BD0BEDCA753CB06DF07EC3E8F2F39488A87A77B9FD0DA47787D4E84 -3905DEAC2A83FEEFAA0C2F8A18D756855B3FF02188FDA6F555140E2235281F1EB0ED0E0F6F2645 -C36A423579A7ED352738AAD1B59FDC7262326E580D3926A6BCFB733DF70FE8A55CB948B7B9CA5D -FD3ECA598D7238033216C0384018317592F26E170859177D6EC285D368A72620105C4F64753BB3 -CCDDF78133952448DDEAF1D99D413A3192556D5ECDA605FF75ED0635D5874F3DCCA46FCBBDCC46 -B883F716B6C444D78CE26DF742A90D9C8687F4C7B939F46ACCC4D9281C21DC00A5C744CCB54CE5 -9292129F027AE072B48AB2F550C1FA4B36B990180F6EB6EF887660D516A5AD905AAAD94C7E892C -E8017CAB4108D1FF94010662DED658C6AB7B02600F84FE7D9907DB213C91C324B2515D831F99AE -5A1E0B8521B9FED12309EA0E6AA13D1CD9A5D6A4943A26473AA23F175349490A4F9DA795ABEE16 -B14F8BAC8A2AD6C6646AE2B482B8B2DC016AB1429DAA697CB315CB15B587A1B4927F345C778631 -99DD342D2E85C218F741AB44B821978AC869DE25347886D163A80CCCE3EBB841B7D66F9F4E1706 -FA90DC2A261ED49D69AA21E95C4F20436359877F390E26ED8E7AFD37163201BE434B89AA7144B8 -3E8977D40D873C15FCD136E711B13292C8FA0B594598ECF8DFF5A696EE868754C626281444C30D -3167DBF9B9440AE0DB8A937EA6A11834D4726A5C21388C9ABF54DA82FFEDA5B72FA53E6704C916 -387B8EC36085F419A3AC796D4CAF4C321EC5F5BED7612F5C8410F9F4C584E762C4FD61B36965DD -6D3C4A58F15BFDF83C565F457F56DE3F8BFDE36CFE964A70E8E05D31A6CB87B03A4A8CED980551 -5BC7F8535D23CD753CF9D1CDF90A7142045E5CEEB9D8BC2A8EE2F4B7A49CF6D6A0FFA204BB5788 -F7AC5BA57985BEFAA983150974FC1048E824D87506B7874387FED6820F0E812FA536DF5AF4D780 -449BA54D1B2A4489E0F881557200C80A7E9605F750BFC92A30A38943FF6C4D3972797C97C9327E -7E4D974D44044794B3667CEF0871CEE807C70C8A727DD93844B4EC636AF2208B1F4F40770F4519 -7C7C3BD36B0E1662FF507E6728E86D3599549839707397E1B6E837FB56E747DE68FF8CCABC8358 -95F95178428D165AFD9E63B4F33277731469C0F3BA2CF304EF696E73347CC336F538581E4E6FD3 -87FFB3A5160704577E0116E5327AF130219ADA85AC52CDE0884F0F73576F1504A020C752F8BF83 -8BCA1C6ED0B14B381FB02CCAE42C64A8A65A82B3C9EC9D8716C086121D8A6B18F0E411BFE177CF -B18F9B9BCD53C2ACF975A1872CFACAE3089844A8A3B6AE02ED3DE4D2077C7C3776946E2A5D0D3D -19072DBC148498F04F23F8B17F4B294EC939F36FDE1DE681453B77F7A1BFE2D7840A32481524AB -3186B06CFEA6D7593557AAA640618F83D8C22F3E05645C4785AEA94A736AC92BA08902FCDD0895 -EBF975371EB7DF013A59E51E333727EA160B5FCCA003E27BE7CF665F4CA4BBE7B14FC75815E053 -20DCEAC6D032D7148B9DBEA9D62724B5C52D499900207DAAADC0AE9B2CCD81B4C99B901B3488BA -0ECC27514A730AAB58A7A60937B55BE3D29F68B5B9C776DCBF4BC713FEA091BA6083CB20C9C0B0 -18D94C10122DD4CC7C042171B2554A84FD489009B86F080526B82073D98D1D36C411386242D600 -10A5844AF91DD3C955205AB0DFC8CAA1B29C0FBDB0EEBC69815D9D3C72B525582431C700F09579 -90FEC2A06E31679795FF0B0F83AAF834AA24862F0576D306FDC27F90330EB0430548D45EF75CF1 -859BA98439583F9FCDC02DA426C98955D6246E4D5F1471C4AC4FFB1947AC9FF7FC0CA41FBF01D2 -2B828CEAC7030A6F56F8B05764489653A77159ABA4DEE42B2110A6634DA1542188D5E577021950 -694B571AC3550E3BC2CB3A802A2E830A3B5C7DB77516BFAC3A7C827D79ABD75F10B7EA5BCA52B6 -90FD19E0426D2526FC591A3454266B4E38114D0F1651DDDE0995C4CE9A6DF8FB0EF02E74535C34 -F1F563EC948231CD159E2C172A8473E7C08BC59FF3D0810C0EC0D1D9D1038E882F05C7E3A0BE1E -F98F9DD2A60AF98C2DBF32B9F5003FE3B09BA01A7744BFA8C369B7B7F73CA6915CDEEBA1D71F84 -9DF4DA23FE0195DFB6AA471EA109D6E4D7E801AC77CFF73F4ED589D00906AA0845B84D44D78188 -9B4B5B94758F013EA141171525AE140044C8DCDB37476BFAC92628FA17723CC434C822EF307BE2 -4D72955220B4DABF37959B46AD9C52FC0F5FB3DEC72BE5F5E5F0BC1CFFC09D8DEF5CC6BC94A456 -F37AAAD9A62E705B6DD844C564B2708BD8B7FE5F3C62104B349A2D88FC10EBC1D4900A5EF6C53F -8C18250DBC4BC51173364B6033E1E5D3543AD95EDC3A07C60273E9B052C600431F63D1E4DE0BFC -E860537BE0537A0A2C9BC539114BDDB5A3951437D8CCF457DD1EC0B0FFB7B9AFB2405AFFE33AA8 -5F33FD06CD72B382D0A6C6DB40BEDD3A16C68DB98AE6AD82CBB60D1BC20DA932BFA4FA70333459 -A28D3B99966B9B4F2E993E8DE780B890ABEA37F7143F9702E99E1F59F8EE27AB15CCCC0515A2A4 -7DFF56DD8C39E14425FBB2B33115D7865ADB66973CD14446E5350B281CA2D855D2312D3DF5F58E -69858CBBB058096484ED8CA8DB534EF103834B8EF33834B8179D9A6143B88B244F5F8773728405 -8D35186A83A15CDC9CB32C8A5885B5EBA4F73B81EA4128D24481870B7223A0F0F2888E77DC01B0 -2AC8337846C2A5035724031D7437FD11806260C2BE7EF64409E7A75AD047F7AEB1CE3FCBD53DEB -0F39BA5A63B6C0EF90C9A3D21683396A250BAA37ED3C81DBDFDB2253EC0B09A188D791168222B6 -6A05F00C133F4220239F65A88112717E8B318E905BF28D58ED1849084719F1FB0176D26C56AC81 -28680D1AD07D3EFC11925DC45CB786E53F135B7DBBF610554B6D9BC0BD36226E55C23FC87351A3 -3C2416C8F2817B3CA69FB0D332CED8C0E33C6F40DBF85DEED10A7E9E2948513F3190DEE93132D5 -32045CBFF6E43DA145CDE2D561E3BA078B72F950A8017025AA5F2FCEE08AB4E79D8D17D422C978 -1656988AD6205DE69035EDBE516D7E52A8249B4FED4E5D177D87188FE3515C51B09E8DA573FC1F -86B3193EE935CE27E52131720D8264C580AC087218262B37A194EE8589B8AB308545C2E5AE23B1 -BE4EE3BC9E99C8890CD4A17CCCEB740F766D9195DFC958BC4CEBD291D04FE691DCC4BA7DC20CB6 -2938F0AA9C4A51FA7D6E213E1B36B0E319F1E98BBDF2999C9325EAEB86069F3158C2F2E79365F2 -28BEF0D90948D07E53B9C45F826F8A8783F49CF037D4CB2C92F2F6E66C104343A8995A86E3DC0A -A9A62577FFDECFECA2D7D27833E903FB049B91783E41D35D216DF3697FF03B51EC3ACCA17E9187 -C372377490839E490136CB3343C87D5A04AD6C137A5FCEAA91FCBECA2629C132CB2BABE3909C70 -EC55A8FF1DDA05B8B2A0D2A51BC7411B6A6F35609E6EE0C607DCC6EAF95E43E62F1042DD0DAF91 -E9ABC212D2E2A8FEEAD0D310BC8DF43202891540BF07FCA2EAD1A24BCAE5E4A617E726AC4E9215 -E01F7EA2CF768B7158110E3D16010D27B952E88A32E445743C6BF5984970D518998221CC95A47A -9F627AF0DE14793C97C1DE55B85A062816ADADF23CEBC43916B1C966EDAA1424B23A552E51504A -08AFBB8182E9A11124E129244B19C7BAE1CAAE2CE34906075DBF74CC87E478272541DFFFCD32E3 -C07CF960F654F674459FB136FE6D18121FED87B90DC05C2478DBD121D3A48A687DA0BF5A882A00 -1490B83ABC932CC011E458D64A6E3D2CE0F5C9B1D69BC7DE68CA0DF317362FF81BD27F6FD9961F -93D9B11499B8ECB95428EA007A4649B16033E8D591FFC7B4CB6EE07E6F70687996A3D2E85EDC31 -C1DEEB5D84C169079C16297540CA0CBA130924AA7CB75C357B592E08E47716205CEC9A0178F54C -928A30CDF5F2E976FF0174012508F26EED03417E397332FD806E11B486649BF17F2EE9A0B860AB -CA44C31784DF25B56825790847CB9411B2488FBAAF03B0B0FA2CC1B0C5D320B69FF98713A878AB -3F656AB45FC561F61D0090301FE7CA7CEEE6B76E57AB223D13AFD584384D0BB5F07E6991551E1D -2B3C5232039377A66F1143DAF25E823774B8689729176CE54F0D53AA21E7BF6457ABDA6710D593 -247E93A5CB23C24D53EB0D6C7FD73E94BA15B6D443B10A838D34D966AEAE81B8A20895E39B8198 -D07DF85FE9D0638B27454E54D849C83E31499C75B2D2E851D5B896608361FB5623FC0FA85C2630 -298B75D3BF1D53D7762119EDACC38EFAE4126DCF29B3D71C0EFC75AA2DF1E95672B6C7D1DF74F9 -388B7CD3CB21FA46F000E330D3A556326A6F37ACDE0045C0D8D00ABE8A868FB4DDC21C3DD9C7D6 -22F0B80165CC4D84227B7AE9927C936DF7FE8F893E319C45BB9F9DC5E61D37AEDF9E522CBBB20C -2405A137842266B48F2BEDDCB9320664BDD6679B72030E1B01B5E6979C592D649CA2DA56C019BB -09F6E139803AC012D3293B1E4CC91E86284AA6841B6B9EAD31D672714039D73336E02389732ABD -ABB8C147DA9CF40711405A1328EE19E0E6E1EA65DFA8921994F2BF310FB85A08F4BAA7FC59DBDD -350006200DF27C099F2229862CA5E9C0851BE4E32D00475F258334359010D8178CA4DBEE82232C -D21C3CF666A0EBF4BD20300C0A70016807E42D15F9EE24A194ED04B4C6AED884DC7088B6E37851 -FAFD7ADFCF7FABB0E633946B9029160F10B62613289B8C46B2B74FDD47BD4F4E7B53E96DF8F9C3 -69925508D342E15A4D0943B22365B8D8F9CB8F5D00DE6A42FCF9FF43D364C02DFD2F44F72819E6 -16B788A4DCBEC1B5F9AEBDE4F38A254B4EEA4A34DCAEA85DCB7F9F2BF47BB87E9552402C372628 -956EE58A01E86BAE1E083D7129B7837D6E57B7DE8C179BDDE6524D9F75618725026854C0B1A18F -A662CD6324285AF65E4D1F8665F1538F2D85FF7D502B3BFD4D310A3088A8EE6780D541D9AC4687 -31A27DD7DA80FEBB6F60C27BBCA02DC98AC540CF45E3B6D52DE46B7C6E98508DDDFCB020AC5533 -12F08C2ABF27B6C34AD9F841EB78373F2F367A28EE3E21D2BCFCE4C14C34C3638978C40B136AC5 -8D747EE06E197AB07ADF3709E73833BC786917D3EC0465EE48948E397F8F7256ED4D261794B28E -39D6D4EFFCEE6DCF0C14256DF68026BAA0D50A737E303923E6D956DF3FCE2983FF443BC1EE1595 -EC57E86E3770F73B802A152FBCF6B4394EE2DB30DABA69F0124E6A74BFED7715E469150C2553D6 -4FCB56786D334F335F4EC6836A613A261529FA85B53469585A683BB9CCADC24AC57E35BBA6B086 -F3881161327906B185E958E700A70BE82627A8F4F49DA22024BD5F6D0EF3357EAC2414615D4ED2 -130D3D8DF23C52D2B57372BAA68BF1901B863E6A36EA23094971BCE262FDD5A68B0B20F0E9FE0B -0DAE30CA56FAD94C9CE49875A4D06E774CDC46845866BCD61122887DB85B207E28803535687E39 -028F82D9439FB6B7F34FFF1BD8E3C8E1C7DF03DFF8E3C06028405F2E6AAF97A54075B2A1EBCE61 -3A5CF7C73042D74824A04D5B2066730348B07F188A8725EAB0F076BEF25DA8B82B36B061F866A7 -BF23E609780A8CA6C1E7A52AA2DF4D5EA22E6C6491B5C4A648F37838A7B1F7BDD98840653372A0 -86A7AFD56CE2B973B5FF224E34930ADFA3071DBD339618B245AD27BAFC805BF2A49A4E296F17D9 -EB25700F8E8F0C9E8548FABB23D2CD8CEBE8621DFB66115E60630A1FAE3897FD72269B27503841 -5943D7A2B5729A5DC87E2F8EC82586D2A2979033C3189EE5CECC97C276B751E7A269047C0B4731 -9E38C8A5EFCFB0BD90C545563971F7DDFB76C28DD5D297C7907D20C7D020F04557F557AD66E51F -9D42F796736997BC648883144CDD9EB477431AB9583C58A94FB7395E5F7CC0FF9434A97F591580 -48509B7008168B6E877CBFE14083C1CC2B197CDCD93068D035102B025D52A8AA4721E019DD02A7 -993E5C74A64CC4D422DC03210A264F7356514F13B555C373566A5D78E627065AD36C26513246E0 -01C9C15952357A8D8E7581ECC8C0A86A880C73AC519BB10C1B9720DF6501FEFDCE55CB1CDBDFAD -42C3F2148EA35861C391478B9A8D058FA121B4A2639E7A626550F6E18920DA07940F573AA299F7 -043F3ECBFC626C16BEF92D9346946A0E7BCAC528AE264EA379732957AC35E2C7DEFB417FDFBCF4 -B29CAAF11335C1BDAC50D95C0A3F06E367FA0CC48317ACD72DAA35A76CA3A1AC2975BA3E369015 -F4AB8CAAE9B804DC42B7E19EF9B73C3EF3968B4CBF4C7097A4ADDF8359DAB1C6E2C440788F8BCF -D272D8366C232B70D50E209E766134F0C1F1ECDEF25E05200D9E66FD6D0E6A6DF5CD1A62A4E7FB -DB54B495CDE5DB0FDA85EDA4D628374E0E6EA451EAE67459D92AC84E38FFB5156D1FC0ED264D9C -05319276361F5192B3FE3AC052154E2425D77666E387B88841F2AB8062F98CC11AEE58717BE867 -6C26ED1D06839FB862D2D6F14217EDFC44D3628090D4E4AE6D8D08C2925DEC62CC2DEE4CDEDA65 -F1FCB22D50D5734956692CBBAF25A518D2112F54E6D38F9C2B9CD66A38BCA0E82AAE3DDE45C3AC -E761B9A12B135772589E425A3B4E229E0E8249069328B6A222C46DAF4F7C61FDAC1967C7AF6E13 -C38293F4A0AE3DF700E40C2DE9F8BC802686F239F7F0C7B47E0261F4BE8B5C174EE86AFB248F08 -D0CD94578867F47316170A909C05019915343C6C4CE0C994AA105F70E58E576564A4B2B08944D3 -180CEBE66BE894C842C096F92CA53E6704C916387B8E374D1B71761F3930422B0DF8A4E24785C1 -4EEE920E3C8D697279814A6D0276FECD66EDF127411A07EF9D22EBAFE7AF43C6B6122CB0B14DDC -D3367C8AAC559AF893AE9BB73F784BB10E6657F344AD69330C24A4E3C446E86E07F5B596D2C984 -4C24CBDF51CCAEEDD4D62FF48C7D9F74C90451FC90F485F2C2F6C125556A5992BAD8C87DFFDD9A -7C092ADC9AC2220C0ECCBABA1B4C494A4DF40CE6BC412D37D27FAFC83F9554C664B7E15B2C4F9A -6BCE172FFDC885C8D5A6E4309D47031CC1A57D15CF30F413C700445A1180587836396ECF7A4526 -BB0ACA51F2906CE146F8C84A1B1FE2454EDEE16570D594E79B894CFC3AB160A019E507347E763A -B6CD3ADF46393E0579BA424DD850246B872E88169EFFD26E590A192EF3535DFFD7C547F2358042 -FC5C9838B3AED01F1096BBFA3565ABFFB6F13DA0880B562662EDDBD14FE710EDBE66A3EA1FD804 -85DA5390D3F9AA7D2FC7A6CE67AD78A181BB8524B7D2243A22D936D631FD3A38B6D7EE4210E3F9 -67E536D724B5E9506F2C2F8ED984D0A76B28CEF61809EF49D7C198BFEBBB91233026504A558CD4 -7B7985A1458B14A570F2B22B196AA0E939D5F8B4439C53D8C17864376C53751328E391BA09D254 -062AA26CBA634DAFD7EAB4A20697D9D66EF59A3718FF3BCA0A69A203EE0A70CC564264EBF4567A -71A95898634CB768E85C1C94194E6C8B0320735DFDEC860D110A9E0F0F1D0B3528B24DE5C85021 -7F28D4203F560BD19DCF145E8A28F9064C2459D4FC80AAA81AE12DE4BE12420641D1F82D60416C -DDCFE782984955A10B576FD1A38C1652431FBEA0F6A00C43DEF505B15777DBFFCDCDECBCB846AE -5701D4F94CBD835CEB98BED6EE73E101CC55501637EF6009357709493A3B3A1092F0AC896369FB -EEC887B2DC9CF507920634A6A7EA49C5D06D6A73D06FCD850B49375A0C6E94CDEACFE6A345D0F0 -2220E71FD289093B0301CE9D3A00062E1B16825F6B448E2B97631BF7EFE74AFF831571DD8C6D64 -340D2D74983EF1931B0E8B1D1914DBED22638B4202E414BDC090B26BF37E9900D8691CEE82BB15 -CB2FBD7D87120DC1BCE6086E6CBF6E5ECAA3B954D5FB14F987F178A4520F6C0BD631A3C9FC2D7A -27A87FD6466C71F99093D457B237807480A0BBF9B3E9A932F2B54DDE064DF608855B57293344B6 -EE678188C820AA974CC93CDD19C2AFADAB7109CC357CFB633C3AC6E94C377604A97143B2C46E34 -EBA624F9E8D0EE2F70730931D18EF48BC2E9D89BCCEDF440AD21BA0ABBF07F1F3AEE91C680BB30 -35E117FEA187699C643279553652859B4E4F14F108EC17C13BC4F4F0F1A4F3EB8E107070EDD80B -654968570D10DD96E3AF3D1CE7E91880119C0C13BA19596B2762F018E4B5131C929C7B210DA2FC -16100FCD8CDA361DCF91C9431D15CDF19EA61912DB91001A0ABE636DBB31BAEDCB65F8D40C7435 -CE8A188169F00D5CCAB0750EA37D20F18386072B5E053DD1F2C1C815E50430D084D226E108C782 -2BE4025C7B6FAFA4492D1A6B9AEC8CCBAD96398A3A028181059DC32901D9B65A4CBC970C11DEA1 -4564C832F41C5C278D97AAE899FD1581F0295EA908CDC45FBFE469730F76A665705B3FA8AC301B -4030ADC8B08206693ECCCE509FBC9C40163949E45D2E072BBDF6EC17B56E39B49C5565C4928833 -44F507E92684C64BE24D370FD1BCD2E804FC32C5DC3C6CD2D2C8C4221820E7DBF24285E0DF7663 -A348C7A90BBECBDEF321D9128DCFD1657680C06696084A2D1782CFA4F5F0A82CC85930147ABCF2 -60BC54181A50AB12BDF5249650415A26D09AA1F55A0BADF12B760A333D3D35F15DAE68BE585605 -76DA6E572711F09192B1C50572BEA623EC86E33D2D5158516099230EF8D4A03F4AE29CFE2E419D -ABE89C2EFF27B79A0117615961F8475F9AD70D2CA6FFD2B8CB629A2166106159095FDA78878083 -38E349CEB72069DAC742FC81267347D088CF9D76C993FE7078C8FCF3672C5688C6F6CADD6C1818 -17EDC6FA67F1D8B6E428608B667BF69C7D3B3E06E762756CD9A205102729A62BD0D065790E4814 -A2BE825BBE29467CF13439AF8DDBD712CAED51AE8023EE2EF3E82A32211C152A3B00FB59E3AD06 -169117FA059995B85827C70736E5C5B92A7A050AF586E4274E2B8EB301B1A44A78BDFB7A1CD5BD -20419B46A7BAC72D8B76AB79F43DDCF7388CE69953B07229CB08537841753A779F8DB35058BCB7 -9FE0B92C95EF2F5BB4FF92A17CCC17C7547EE812BE02DC87A97B70A07B47F25096CF7FB28EEA95 -93332D8FD4C05499C0F0B5DC16B60486C7945A24C8F5EF24ECF26BE37DC1BD16CE08D9F96BC485 -73C1D7A8872A390A4FD5E23765845C68ED59456D66EB4BE697F454B71BF6E976BFD7C7819BDFA1 -4D8DD7F777B499773AC457902DC130544A32957E723AAF0EE83D46DC6AC1578EE03C55B89F3FDB -AF60C8ADB5CE10DAB600BDEFB5F793B0AD8A4757A65AA493BBBBB603CFDADB0878CD83043370B5 -7F1C19E02D5EC43D7F2128C8FC9B2AEC4C8CB386DAB602969A06ED499954C0FAAA273BE17C2C70 -59895A7961C9105FECDC152A1CDE6814EBA6E3BFBA8CE110393E1046FD51A103BE194F4B9B5BF7 -12396DBA012BDCA0ED38F61394BDA8862DCD70C820D301A400B57F10F1117A4B09373E9BF4A72B -E6204C3F56CB9661CD175F72B2351A6CAA6401CB569CE3339429015AB1C6984F518C6C0D6064D7 -A3DAF6EEF949EC633A67070D58707D6E6E01F266D3F552B77721A0D59E8DDC86F98833009D7342 -8FD37CBB0DE9C894E99662819C196E8A9FDCCE47C4A4BA1F1ED1D90DC230A540B26C218B9B30E3 -8C226A23B28823DC6D84D49A6E346CB2F7F9F71FB106A5DFB36C16CDFF1D651A9756BB3B0F00EF -0A70D28DEC781FED5AD41784469E88ECDB870CF88CE99FF8B8C99478300A31DE8105455CD5A6B7 -6A3DBB519C87C1B61B15EF254B3848288968789C1F5D479B10AD9272FB77435766BA40AC988913 -07D8A40C14ED0B782934491ACC82A284A886D204D45F1D571AD143ACA7C7481FCADC2366F8AA14 -DE19B82574B2FD9EED7153A5B47877D3D579C74F8B91D5155AF0F34882C9E2C7EB3206B1B41209 -9E776DDD4E2E24FDAA98557E7C87347F56E1B1D6DB7861848966B6D0DD232FC2CCF89EBA52600F -20842317BBF4F8B44AC4ACBFE0A4B777228237E52D22DE4A3B8E3AD3F864567F785750B2064EAB -FF9657B3622E5D39F6BADFCB6903DD7DA935018CB36C69456D2C82ED6954E406942D0EE310CA34 -803309603D77BD4BA248C02FCE335BA95DEA94FF84DD80542966C5000B610A55918AC2CA86D837 -0C9C9F4B541287555D3B123A27A83545DF28C7970FBBDB7D7214C727AE687D03485EA555B4BEDE -C4588F41F1195BA7518C66FD454A95DA6BF1444C06BFEAA75470FC5A9196568A9FC73DB2849D98 -871CE0055312847F376D7C105B95FB41AAE629BFE241E52AB913BAA5A4F675CDF2564630041627 -E2A9D8CC14489083864E8121DDF31C6BE9E0C1F28F2E43716B48B2C850A6AE4DEFE4C72B43FFBC -7ADC307437041F908763BC8762C735AD2854FC4964B8789ED825B468FA72D2AEA6E0FB487E67B0 -8C30119ADD2C0DEDB0739870EA020C3AEFCC306B4657EF727C7B9D44E9EFA9D1E94EF45F0432A0 -1CA34DF372D1286639D3D621BBEA0A279DE17FABACF7C3700EE0AB96B91E9C65D00307AF5B7D3C -C5FE44E749CC99745EBC1DAD4EE4FA3209A8F6B79D51BCB14D16E716E57349CC7270F7563DD891 -1F61EA3D587E0A7AB6D5F52C51CEEE500E1A5B87E4698F85872A78D268DC589EDF2359559576BE -6DFC17ACB3AF21CCEDDE9E2EAC577921D4B664CB3A9916214F14E0EE0A5A794F52AEB2A85C1FDC -75448F6E8B28583C84995D2353459539FDBD3A78704047A9CA4F8BFEE8FC414E6BA85F0DF1D97D -0234DCE2ED68EE0E96ED572B66D1DAFD2DD2F0FE7BECCB4C851298FDB9F894CAD858AF4968CF9B -001FA15AE4C7E38FE246039FD834CCEFC94652ED013AE6D4FBF4A419C4D1AEE18AD681E8CC8672 -4B9EB1C5DB13E839B218BF6B71AEF9AB230D37D8494A69705C470ACB47875C3880946546A56944 -981602AC22B37947BCD1A3614F8695DE3147383302C0F1DBD3A41DAD361381E25F51C4922922E6 -4555CA63B2F506E4C1EA7FBCD707A1C2879EE4E9EC48C0AB93FA7C1C9D9940961B6EE73BA29D48 -07CDD8CFE05AAAE724AB718B2F0F3E6C50F5F53D9BA572FC14EC63878AECDAF990A7F50EBC31A7 -163A517F11721CC862F5156A689234860BA2CFF19D6FB30E6272F8AE9925CA6BA95F543233B63F -2EE746EDD725F5F2F51516F1DF1439F9062A1B2B3204434F2C21888D38A4FF676A6B850E3A6817 -0491F5323116EA11BE10A0490470F592044CD42AEE17491F2574DC22932E7583190E93D182FD72 -5FD6EE01A63BCB014019A690277E8E422CFA4B0A50FAE072E36F4C6F14193D544FBE216A78A3A4 -689A4C6ECB8BB149CB8F6EB6DB0029409A48CB7B454FDD796D638A7EC743A15EB5EE65DD93D6A2 -3DFDA04B8B040B856B766FEA465E7ACD05CAA8A3F13BA4D2B04AE5539D424BFA34227090FD1831 -7EAAA83528B3D40E5C108E39EB2ECFF231DA14E9903EFECE80713FDBCBAC9077344FA86D7F7732 -535A26EBD89A80649B26F247C710D725361278E7731870095AAEBCE9B9C04A73698A28CE509F9D -A1D88E9A8CECCD0203C3A3B8DBFC56063ECB17DAE60C26A80814F71FE12B23EB15BA5743B4F9E1 -24FCDC99D47D8A449A4E7BBE7DE8CA36D946756DD0B94438EE80A6743E683B57223EC6F2062B31 -042313ECE2A8E646361EE5E278EE597D79CD16DFDC24034C0F2E03C54DDA9132B37AD93D598651 -59DDA793C2CAFC765287F7B943191B068B520CFACC134F47D454121EF1753065678760D9A6B924 -C90D7C9D432967E4DE06BC5AEE12554DBCBE36619C0865B19C9E939F286677D4649C62DC79AAB5 -24AC9B6A8CCA66C46C8EE2E5DDD4E113B8BC0E356867B001AAD992F1C85940CB2573621C9986B6 -2E830E0823FA46FB64AE9EA7A67CEBF0B8AF5D3AD6AB366E52D60B5036222DF65F5078F70236A1 -25A65BFC345F6A400A81DEECD07183FB5D10A2640F6D21D98B8C2E0650C2DDB8AD539B7719D030 -B220B91E17FF3A5FFFDEE4D66D0C4586D9E4EDD15A64393DE612A8A2087991A726CBB59176AE3B -D48C79F0D7C884E833DAB2944995098257F300D27C4504E3ADA71F4CD9C306D82FA15C11FC7098 -1ECDB59E8DC578788317BBCABEA79DA888290734DCEB8E5ED8F7D51C64104281EE00D95077D4A5 -8CE902A8D3DB6297CFBAB9B4E0EF77DB323E34A52B1A938CE951A1989640EA4935A471D10749EF -728947386DA5EAA9BE0117E40CFCD805ADC01EF3B152819BCD332DFE5FACE16C23669371E61081 -94783614CD46A6885E543C00355B1B81AC917D05325FD395BF6195876D4F46CF739D7482657607 -C7AE98C7DE6D397F6055DF67F1884836E2D685C8064D834A7718EB41A843D994E070D5488E2842 -3A30068CDF01F84A34EA2C47A4341FA98C9011FAEE51CBD98DAB25C98B78C0957A0FFD022BCC97 -641F858DC445715AB461116AE956953F2048FB1A990D7752D3EF1CB67697583681F96B385FD870 -3CE35EEE611E80DFB0A992F87BEB5B724EAB130B2553F4B0599E795C4743AB312460B65CD53DFC -648E853C032F0A9D760F241F6174710CD1602CD78DC405316B0DA43D5E2D4EADA1E3688F32C6B9 -4F02EE29ED79848C459891187432957A0F428D256E015E86C12E68696AFA4D890FB842254822E0 -79AA320BC1BD480C0A2F276D833FB3C9D8746B52EEF4D0DC0B63D01F61F9512C0DF6E911A4125A -CEAEF49AC488F1A395843F760DF01838339AC5B53E760EBE256A04F092CCEBAFD9218ADD4169E1 -82D2F20753200859A776B236E6E5400C4255E7CDD22D1D6135480E16592FB680142E5ABB09BC0D -7B643BBE0888EE5D5A0008815748B2356E717813AB3AEB20A58C291C4559083EA547E6BDA07521 -342AE1D489F0EC7E9AB4A24AA98CC448AF3A198910E46CF829CB35182DB53CC04EA000E05F44BB -495A679736E1D3AD78859C18A9C82E9B6DA96ADF439DAC12269DE2B745841525C5B39DEF3FF4DE -405C7FFA30C29BF9EA979B9741DD9C0720C25BE42DFF13BAD91327D15FCF90E7588201B64C2E73 -DE8138737F1B4740B3C54B78FB4580815C5D47AB1870A548DBC20D118F8A8A7EFA5D5383D7069F -E0A3F7EDE43AF1E411F3E419F18F347ED5153D9B8AB2EB584DF2A8747060145C074CC2D308FEFB -B63841EAFE56C905B4A4B13A9FE80E9CBDE42DFCEE6A3F5BC986C2C740401B450939A6EC44E58C -CBA7955B7A29ED3DD28C7D63FBB04F8FC825A60C6399DA762D045C5182F240A8EE7AF4F4040390 -9942C8F533B3BC5C763B0DC95A834D1E5EF0F90BAD07EC07380E75A95F57B8C1C46A28ED6A455A -3CDB05C56981DA10068EB0BD9EEF0B3B31A76F660E9D340D377B3D8B6068A7228F7386D8F0D410 -3701DDFCE5F678CBF6E70FDAABAF86B95E2A731487DF06B4D011E38120BECD6B8C9DAE22C98C39 -1FF8D019FAC578069F6F9EAEEBDDC67AABD4126764D16B89E4F8A99C93A961B93122A4D9B389AE -1C664C3388E1E7F9071321F5A22D91802B5B96BB89AB7D0D853248B01EB77E52B26463AD317F78 -47C62881F21D2578CBB2855AA02A50BEF5579D09AAECAF59835E9E949245A1CF53983E67CD5F7F -CA5DBA5F4BA741E7E49C406522C380A50A3633342042EC32F80CDCFD725C9072B271AC83722F73 -4B3A98F7C516C7CDA806A1FAF97CE46210C4153A844A352791E6AE594619F51C656CF07B783D61 -64BFFED8809A1E502A533CA3C12727FFF4852C098D1C2F0F925B3A029EFB6FFF80DAB8DCF7C9CA -FA5F7D958A8504DBE2E7A2C3F261D736CD4894FE0009C6C24BC7F7A9EFD12E6AEB4D1A60AD6257 -4B8F8B7C54954ED1CAE95511F16886E5109A9933D84FF266EC4D94DA89619C82D376A63507CF4E -233BC70BE0D660B6EB472F4EB6B8D85C96108C5D02D0D39A6D02429D60D010E1C13A81E1AB0012 -9FDDB1C0900EAD7845B30B1CC795520A343E0FAB8BCE4D9F642EC7F51846F5FF3B87EEC40423E1 -A91931FDF73BAFDF383E55B255566679979F37E256D606121F0C3116BEE00897A7C1C2980C785E -A37E05F2E3070181F17D8DF9C1040221970F628202ADFBCEA6CCECDA61637E40ABAD6B0F639C21 -735298F35EABD37FAD3126247309EF9570AA4D7F2AFF959894C089D77878EB5D3705F8FCB748AC -00CD77535B672FFD36E162D85370139C0F8E7645A665C1D23C6C45C0CA06A89F2CF2F23C27A5FD -070F575439A5FF88D9235DF579D854962E025C347077256A5F4DD3C5FAE10A5C2801F93C08E022 -9600CE5CB001CBF71E813E116C56147304976CC25801BC0239EE6D12AF2D2A10E728A4BEC249E0 -BE5342272F6A508264226CA8479BD946E2BED405379D0748D4A707E0EFF6175D5E57117A04FD98 -C03405381AF44333FD7346DD7D46F71CF5AA1A87205EEF8D7B1CCE971F9BDDA467629BE1556CA4 -FE479DD77380F22E93685C12D641EC3227FA98C90D9265D7504B7CDB3CCD092F4AE0487E89CA75 -DC017DAF9C9C94778FDFC7CF2419D317AEF2D70857E527A5F49FA26FF3EE577A0A44EF541C7D64 -062F7DF3EFBBD0FD7BA63F5D4F1FFF4013F149215521F5E91092553F2973E0BE1AFF6B5876EE61 -3A081917A4198292455DF7A337954234E2A441275E5F4A47EB19B3362778BA70878847F478E341 -BE09257DD9823BB058512D588FA8266911C5846EA5AFC886549538721E4775EEB8354F64E20DAD -4B9129C6E9370241408BA4AE1E09059A0F2C5E4443FAFFC762D2ED2CAC9F6EC244666212178440 -A2D3074A8B5DCBD810FAC51627A81FC9D40FC32581CC1BA438B50865050765EAAE1F1E99C1D89A -A6CD3838A5459FBF8DEA20C9531801C037D5288F6CE19AB8073B5951D7699D3D3C7F937B5B521A -35AE12791102871A0C27AAEF9631192182A5C40B9C83959A96207802DEE92611FF3778664DB1AD -D309BFAF5EBAAE4B8A4FF008C0BE42F1151E9D1F460CCF018C42703E1A2836CCDABF26B4744DEF -9E111C4FB81FE89B4B9BC15E2880857EB34B21952C55F8C62E8254EC300FCE1CD5D46657B902A1 -D81ACDAE92E4CCDBE4C39DF747BF9CF8B1CFA3314C453FDE23F52E3AB1AFD66AFE12F6DD53FC5A -F236F1228EEC9DC8C8ADE81733D6BFABA66989EDC6762475F0E70228009D1301DD5AC6583BE108 -37D90EC1D0E4C543DDA6645969FF34C7BA21DF2AD3B9527EB104B70498EE9E61FFFB2FB3843404 -F8DC322C8946359464AC057370C76A90ED3C0254D38EFB516B8B99E1560857EBB5CB88566AD269 -56652F1D334F01FC8F018546A7F49FD17103BB5EF2A6A3B6C26F9CEBFFC7419D71F62AA5B222F9 -93EB5A227C73E310A3F34C19A3F7CE9A10536DE50BD81C4118222C163D0CEB8A16DF6B4EBF2B06 -840DED08106F28DF93E33AC2C4075B43723690F9C890D4F91CF5AC874B4CA7BCE2F2962E532526 -F4DAB744F83CF905AA4377BE6F05758EB44612BCBD52A5692B60BDE10586A1113005D915A74DFB -5E419210B2E5A86E5814ED34D5DAED6EEC3802851169615B6A2744A5BCBA5B67E933FE2D3D7398 -056D7A316A4C7D0A7790405C7A3D0517E174831AA7983A87FBB4C5D24F2DFFBF8577A8B30A209B -27466732F600B60FF503AE5BCEF08B29A9715EDD7EBC3DA4E15218B76D8FD60664B61E2B682B1F -56CE4B5B13AC1B0EA4EDD6AD77244AB166ACC23B103790FCF32F41B7C1E15D786A85BD3B81A44D -3774387CFBD41B43B4678AF42174ED76B9C70F4BC183D01C525ECA7560A7DC12E0804F8A6FCE05 -760361B90A156915EFB95CFC55AD4DF99D77A6537686A2A60D9F926DD9BA3FBD8B651D5B69BFD5 -ABED7D2C8B32539D75134615761FAF783A6EE4C31B47204808C9156A6EC2D70049DB35A7207447 -B346DA2435DBF46AF7B24C6E4BE1B75B30E5F68683A03052B05BB2DD75A5127CEC4FE11284F03C -A9C4102A9BB0130EB99933A7479DB597960640A3EB90BF0EDF89D93A8B73921E9E7C4F782EDFB0 -7233772D2343D90E1E581FF20F5181C67E050A14AE40EFAA16FCD62FD9AAD419E301D6893E2291 -8BBA31345A9D947208EA23924B9257EE753A7104E41EA10D72B6E72E507053AE35BC20AE5F369E -B0D780E537406780A55AE7C113A81F4E1008FAF276F598E276399B4DF11AFE51CF8D22A35B1BCD -247DA70377CBF7A96E8DCEC19658F88D6A214D3FAD356BADC650A41B36F12B11EC9B149FB6A491 -10DEF203B8F8672FCBA317974F17EBAF2C81CB398A06B62F635EE010E194A38ED4AB30C7E7079C -AD51EFBA8E069B811A35B459B3537D6801D747BFDEC5F89F465FD296CE396F8944922D5F82A12A -ADFAE34B6D723828C8A30292E9E8AD8FB8D97ADBD9AB22E5E45523BDFF4C1723688163BC7ECDDF -44052B696167C0ACA1B4A81135E0B837ACCD22DABB5DFE46765ED4BC0556B7FB27239812FD3089 -FA483EAE60C10CE6D3B8FB0AE33F07022F96E1B95DC818C67AEDA1D41BE11712548D0568A062B5 -26A4569B9BB5F6EAEC2D176F924ABFC9978E3AFC427EB2BA46C768F83E86F3B8178704E6AF4AD2 -EA4DF47E8989F327D85812790EA888CDC920D15B80E51F7CFC44A1189127D2C9468D50231CA805 -03DF2C2007EF27DA9C498C778F3837735EE5EDAC47F4A01C2A391BE023004156652349F062B1EB -504E5ABC82282A423E47342002009770D646EA50F933F0BC5E6143FA4B1733DFC6DF6ED7DE6DD4 -FB8388C7CA81C9210EA0A98B0275B74A0E0F510C90DF71C93B3A9FDB6A86DFF2921382352C8FEE -1A0A2E6003B005465C1F31B667F5BDD9ACE74531D0FDD56CEABBBF5E0A55633E28F750A7C2571D -27FCBE1B01C387F6F36D225A30C68BD185843F487C2E98B5629A6287CBAF2267880B2F48596320 -D7A1EC87DCE5C5283E034AF582F592B7E0B185209AB07480A98E676603F7F92F96F9AE6EBE80A9 -5E625EF7F4B469458B2A7DAA4B8FAE9103652663F353C35F88FFFEC41296809D52104E1D629998 -735E1CA4D36442BB8BD6C02EE6E27374B25CBAE97051FDE7E3EB81EA7F6D8CBDDA45F29232456D -C1C70B60869D63A509E9AA33DD00187BED5AA122AC8ACAE5B5A02C85A4C0B68193B2F4355EA779 -DF44F488272E92297DF1C8E7FAECC4EFB031E0232EC032F1ECD4F6C37B6707A28F1CF9A2683FC8 -3B9725F1948D020931065CB521B34934D2CEFE9458A1CC7EC5528A183F270AAC08CE8184B90482 -6221CBCA4DAFDCE880D391D6C4D8289BB45ECC73C94DEBAABBCFD529ED9B5FE55E5D6A48EB0969 -EA03E15B8D7DA8D54CB15E0370C8E39CB80158C6B7D40C2951D73345BF3D82E49C976A0E918B10 -1C22FFD551C685A3C7AD17DC9915A80815EB114550E9BADFAC2EAD17C29D0C834871CD88563F9C -C2CD8B190D02EE346A82C537DF2999722584A95845BB367E4F7D675FD067DC42FED595473C9B55 -1911A54B14DD130BC7CAD78C469DBA966096FA69FB9027C1542B8B95BDA4FC22683DAF22C8EBA8 -E358929EAE6C198C7F9730C5D3BAD63196515C4BEAAD27C26844398BD64D750BB06A240397BC91 -492ACE0DA7F6050BBB15740DCBBFC2DC67CC740AE8EE915192715BD472A45BBF33AA5E3E93FE6F -6C39E09D8EF3068D3E7D2BE768632B6C2F1F2B0F08844C5BD7AF2EFA6CED285646750F70EA819B -18B0371B3DF7BC4DA2B90E8FFB9E3DC066B9ECDF01A02BDBD882AB88EFD7FCF2467D4B8CC32024 -1FD68C6C9742C5E250BA662A856DA7194C0ADE36BDFB36562C29132DED3BAA0A87A761669CE3B2 -56E11A6CC42BDC6F0AE09F87C0D7FE688EF8948F69210ACB148A93F59FC2EF5B21B8E81B71D185 -D37E0CF36B2F33BBD77CD36047E9988704B0629FCAA318000ADFC4B370FA5B218A161AE7A8D99B -88907029BC83134CE9F92B21735BA15F0FE547EA79F5B2D8CC96D10E1B0373A13ED18500EEF460 -DDF2CAECB0F44A4F88A6090D660E879ACC03FD85B4909082DDFB7C90428E2A9FE8B60377DD1ECA -3D0885C5400473CF212DFC2EF3099C73A37B3886DA8C139FBEFF84911687D1DA963D0E9690BEE3 -F191A5E1F7B9D3FEB0A497ACACE68D42660D94CEA5825A19B65C1A394CAAEB68BED5B886F94D70 -8407C6DFE818448A49AC3A9BE10C8991BFA5DA3C94BF608FECCC0606BF6AA0F1ED1AEFEEADF0A4 -D5226523C4C6A77F0FC9A6C7318826AB8FA286324228ABCD26D1DF2FFF1650BD71879AE5D92337 -EB6EABF9A599308899752219FF8C97CA72C11246DD111F348646F23A62980F6445DCCFE035AA4C -5B2E973A787EF8EDA260BF8298794B76FEF7F6CF79DCA923F9ADC2B0524D9A2D4D4269EA709C39 -5D75E3F23F92FFDCF7E8BF8691D52DF133297E4AEB9B1668AC097409428411C7887427DE9C03AC -1F229BB983325258E3D36E93D300F3A31E1B4861A1A31D61731359044FB1076E98C2CAF24C77D2 -459356156E1D9570D9B7F8ED30E14C95D8638AF5410EAE34C41A35E552802248DA923BEAA153B1 -4E62735BD5E09E23E5616F10F5B66FE1D238EA59E293F0459043E42538E17AEC76BB09C4A6353C -30E4B756A89E40B9D9CA6FE1D40566769CC6FE3B14428997ED4A24B23961EF21A61D879A2967DA -CFF909180F52604AF8C4BD47F6A9474C42A752861E832B7B93161BC1224B8673A53BDC7F663BCC -DC71A9ACAA594486607C180C30384881C324554357685C149A0D96AF6A37E4E3D20D5021F11238 -1D4CB1F8674035071FC634638076C2480B0EACD306A62FD22EA859903F2F30F1F99C87F3245DFE -A4AB5141D280C5EEAE69F44D47D359A011A1D01FE8BEAF3B43478F8B47A4F37508861A2DDD7708 -B9D4742B6FFA156B64EBC0CD8FF5624FB80902DCE59B7806A43C862006869D0CFCA3EB13473952 -492CFDADE1E458A55DB078B1EF58DC5D6C303EAAA415F43DE9F19A508147FABFFBFAB69862E527 -19523DF01BDF22CA779D587055D37539BBF8D8BD6853E4E699E65F7EC6E5D096601D09340BD116 -38544A45AD6E58663A1C495DCC1FA79C8351D69D298B498382AE4725F18F86F315C588BED8BFCC -6655CF2E4ABB439281D199994BF21E47A2E84DBE37D3637DB32E961B5C40BEDB345C82197D324C -350BC344F2EF90E6B496BDBC1BB4A359B70633B0A35076FB86BE1343CBD39E6DD77671AF671CF4 -364C1CD9BC7BC151FC0FEDB137911CA590F377B35990099AF3756C1FF218656D1769B2E5ADE7F7 -571E7132CFBEFB6F0BCD9F4164C33738CA62934E138EE5A5FA5E81C3C1E04D1C1ACCAEAD8D15AC -4FCBB0FFEBE577342272A8BE5FDE606830C0289ADC41418C7282B0CB5234D8B75D668823A32B73 -E140228E8E803115DF38D1D6213718BFBFCB22B0405108A5C8BD3009D60BFEED1B15E7A5D21F11 -98F091E11B839C2BA809A22652F57B3007DEE6827AC22A96556394CF9051B91B1CC42A20EAFB8A -2D3F95B7090DA79AA3F4342045EDE247AC63D8D8006FE4C2A617C9B0AEBF2753042473762E5050 -20627409AE8F975E0547C07D414105ABFEE496985C3423E1F3AC71076FAAD97783CA4250951AB3 -379B4562F2A7744F41FC40E045A796A3C756981D7F35A38B6A57C12B8F8772EF0753591C65F632 -729732EFE7F053C27A4DAC9907FEBA0403CE8A902F71A278DE9A5616463256914C1BD117A66B8D -62928A00B7FBB66E33299D673B682BDB6A30790C2A2DD06F3D82E19CF49C1B9C676A4413CD4E70 -718F92FC0089A7257268F75CB3E53F8D4781C37E8D5E37D2C919C619A33B4C7141CA7107D1DAC7 -69016355C89C1DF2DB782723B71357CC0AF674F0F36E18485088AD08B8B995D5A9CDFD5070CEFE -37424C2909A38BD66DBE6440396D02DC2980F1C013E9C2C161F927C7B803B34EB7C57FB2349FB2 -788515885B7B2E5BCC7001A108FBD473F34810C2774E5493501FA2882BA5985EA9AE84AD076807 -AEFEFC8081AC8B99F8837197EEBD2D734EF78086F020091F44045823CF70462A856C5921583DB6 -B209473494E78D1D81F285B850052B1784373DB62FA6CE8EDFB70EACE4C2A01CCA9BB86EC61E54 -5E4399466233F7714392F53EAF823788E7F475E066E718A3A54A81805058B31244739B9E3D5BAE -D896901D9F014FF62728847AB719AD2CA332D98F99532D7A93C7030271F5BA5230095BEE8106A7 -D33D16D2D3BD76064AD26431922B7CF433BCF3AF02C53C59D39872478227E645828F2FF1C4B3B5 -9BED9F8061C74F79348AD639C4F3A67E27FF99959B909E3ADDDF985B719359F803938798E36DE5 -655448E65472CCE2D6A7537A5F855A5046C5D7C64D77F636E318592B3040981110E664FABB5FEE -B9B14C48D74E7A4582274D3BE07E8D67C2F294D2591796A2880C3253060BA26AFF00C503D614DF -72BF8B91E80E722C5F4F7496A17AD6B5357DE01C5AC8136A3F4B7F722D08EAFB3419CB76638A29 -BDF242BC6ED4FB7127D76F51B8E77850C77A3D9FFD94E814DD072C6AAE901F1CB99961E79324D4 -AD0D97CE00F7A4CDCCBFD7D5A9A82270B2FC7E88757747FEAFE917ACC9C07507F2C87530465B2F -7BE3B62047F11EEB0FE7513C9A7ECBAEFDB678F295CBF7B55CDD07FDC11A9764A31C1A77887D3C -F9C13DF7D987E725C4BD1E7F80A8438F54FC3668E2CCAE42A58A08354825BB87BD1424A1919973 -3B49B6A3A5467B3A99F70B63ED38549168DD5FEF0A6620BD5B8050968377C7ECC4DF6A43C852C5 -72339C0E54F99547240AAF9487B748CA87AB2278B162291991556DFDCB595C28DB05D6D5510824 -9613DCAD7144A1EC6DA259E16FDACE7122CE1A171FA0346A9155B25DCA8E6BA7300451891DC21C -7DB92E3AD2183BB4DDA70C669F1F55FCC191B59823B017E55D15E9C0EB799BBADBB8935AD90CBD -FBA156CB503A2333A4EBA92CA2DCE92C5B687A4E43F73BB7F09B62FA6BE7E1495318CE4E7BA343 -D08A7CB53E32B05F63D836D8B5629651AA4C2DC68AF2E13F49276450F66B56C1EF299604CF0933 -4C7B154C923D4107D055AC7EF0F28478FD06C54F663B170DD58A41F293904EC7AAF6C8E4DFDCC3 -7B08702BBD8FFB33B007044ACEE7ACE3464D5433A53AFB6B7EE754CED830A1C540EB5778C227C4 -5CC7BFB94850544DE6C0D1960874574284B1D0256BFB7E5483FDEDAF31ACF7822A2B9DD27EA1A2 -BA891D72C9AE28F074211D528758C6E168FBBB1274199289ACA037D1A641ADED7F300A4B27C954 -63BEF8A9BD49D496300655C1ACB70A2A3FF89E065BE79F5F292EC6F6BD6F8987B7A8E2F6642E91 -18ABAB71DC705981C30C51C7FE6A10828A8EFEFC43EFCBB6BCC5A8492E0169F03492968D7F0EA1 -C4339519EE36A1E91034670A85B193F5DB6037C59B5E46183FFE468BDCB794918BBC8AEB2BA715 -0908DA0B63653C0BDCCF80BB64F36D0E5E8D4685B80CFC7E3E6F4DA4FDD4BB8CA8DE4ABF16503B -D9F6C3C3B6F8F9CB292C9DAEFCC68EFAB16388AFF922B32B5257B033C9D8FC078AD296D49CB8A3 -3A32AF01FC192BA792C3A15E6C5B7A4AFB1C2FB00DF18076229550ADD4A991037C5D91B7CFD4A3 -5D08E8FA85D16CC2C48F3F32BA894CCBA2C6A3F964BDCB8BC4FB9226C7F8899900C267C70E3ED3 -C0797FD7377D3044D43C0E8172BB0FB746A706296D70CD23A5CE25885158C83FA2C9F10AC1E0BD -8C88DD6D581289CE14AA88B102A47D4E52546EC6FFE7E8450AFE3F01706B2E3AFDDCCE4DAAB431 -5638E28FA4668458CAB2466768C1F3F8881CEA9E9A7ED57AE7AFB53DC590E601AD11ECA0E5CB2E -4BEA895F6271B875D09EDB9D5B8D92647B67954824F0AD4DF1CC9E82F97DB638BB17322EA26C6E -C4A5E02433D11B6A37D2AC10DA6D1035B23F1C6C80B7C382F1EFAC4622C040D108EEE91C397CAC -E1EDC761C1EBDAFFCD6127B48621E666A5A5C33A3BD4F559C7C2CA7FF3C4BDDB288A3043E09441 -D35CB54F1218FFC4097D1FA60911189496A16B40D34EDA64A9225EF00B875885127D2A441DECEC -B2BF6F14F6A3815A780A4DFCB6227C7355B377EA61F928E94486CDC0D42EE92494D5063ABE2DCD -4D29E8967835BE5894D38F09399E70418D21DBD8AC679367EA9DEFA70BAF625F94F56CCD1DA6DE -ACF583E9763BCD0EBCD9EE5810CD9330FEAF5FE60BE3AF8A15A1D58CA2A9B0785BC09ABC53F86A -66CCBD8815F3F8B9B18396B045DE3B4A00D59D47F52B52DE7A52AB26F5DDA05E3B9751EE11A6F7 -926654FC7F909EBB7423295385044B8C44A2032031D462049FFD77CA8F31787268F64FDF00397A -A89494308AD9EF15DCEF55BA0C5AC4E4435A52D2225BFEB438C9230CC6912DB18FCD0A6D7D4C89 -BB6B69974B0CDC28D0974C94C05A611EECE866140A00F4BF9828C5363D9A6FA8FC974368370378 -2EEC189B4AB960A8BA75EF432D7F7B8051B2D012FF76F1A55BABA16DB9EE5C9BDD57DA9A87ACD1 -D1872EB5677A14CC20F83739D95AAD0B3F26506976B1C822AA8CB4A96960220CB2453DFBB6EE67 -67FC6C154EA927FA01E697D2FDE73F9840043480A584337E7F466F5248570841A7344A37232CBB -F088ECBBBA9ADA89A8B8D00EA7AD8FA02A4F79AF21FB8FC487528E3F7B31F11C3F2646FD78155B -FB10245978554D8C95BA599252815A4995A507026348758626CA386F31748F70C2DF1482B6C987 -5CB7546B3B1B756F3169EA3589A1D0A543FB165795234464243A6DE12AFA76D577EA55A4B764D0 -21BBB4F203ED66A4FEC3B51333A57776A2127DFC59EE28229200C9B93A1FD1E84B9D5BA8A22FC0 -24C844FF8351256EBDA28CD78C9DC782E5BB85D188B4FAE6A427C251BE2C794D8C77CA39296039 -9EBC8BE84DB9C78319BD38A441158A999A74B04C4C5246D6982EF7DCF8D8ADB304A8511267FFAC -C1ABE46C9EE1CBCAD63665AC606CAC7D56E9BC3609B3EF72176B49B63C90A0130CD183B90A6A40 -796E4CB9091BBA0FFC8D0F8CF2B016800B1B439B5DB6FEA0C399F8C1A22B1896E0487A08476F65 -F505717AE2BCA312EC891BAF95B43F49C5F71C3BF4A8B3E0E37D93A70D06C2FBBBDD77E7A0637E -BBDA27C27C539EA3AD7936E4544583DCCFBFAF737A61557B0FED52471B5A5733A1558C9B53FD57 -D361306945A6150D1C0FC5EDF521F17F4D724348D5EFB86E8FA808D2CF01977B431D3E9F4E8A3C -CB1CCB4B1750CA2936A362A610B05C73E382D76118024E58ED512B212B1DABEECDA7196C75BDEF -3049455278956F60FA00D450729CCD0F01B4A63AD30D92B0C14C158B183647B655AEDEA612CFA0 -BE89F79C22F1F2D6AAB20CC382355B1159D16B7C29EDBF06E6831B395EA7A4102C99E400F911A3 -F306589C5DE6C3FCCD402B4E25E85C65B301C396ADA09D6A4577F38D21EEA6FBA8D50B5FC31C95 -740A9A7446B9FCB5D37ADC301000AABC7D8EA8DD59A63DA0FA8F7038BB1D9B2948635424C80BD1 -CAFCB11FBB85497BC4C3BCAE2A24B9373CBD005681835D6FA7798A45FB01C51DB842B6D4737901 -8349AE7D8C5A4805028B1DB4F634869A3BCA06029E8BEA02832397627DDFE8BAA44B05D5EB55B9 -2655A387E3407308E34AD2038C78037995339E047D9310B8EEA85FE275636D6C5C19586701FA21 -EBB7434A4915CA71BB0E833C16712BC63DE98B5209B0A730180C5D6012FA81EAE001E1C1E14D80 -34CE642A31EFA12B3A15EA53BD89C492CD6670538B7BFDCC629ACBFCAEE4FC4CEA070CCFCB7560 -B4F933E3D9D259F70CC3697901929A1F1605EE8A0E01EE85D4FFFB167DE6D916F2630DEB8CF317 -F494C4CAC3EE73BE392EF96FBD232E4A776022EE04146552F0E1D66B4BC14302986FCEF76F1B7E -196753A2B4BCA87F804896B7392FF8E5183448899617F020386E688E7E26286CE5D060B00B485D -ED264D191A5B528A4E516832640354C31D61EC4F7FA70125B5C6349FDE30694E9504C0A080D252 -B922305874F39354A0FC1A196021E29C516D62A783AC2594C28F69F6803314F6745AE6685E381B -FAF83F14B8464D7DA4198BE48E76011BE6B3171EAD370CA699E7076071B2FF1856F6BDC61F3F01 -034ADDDDF56CC4914AD74282859C632B9B14293CDBBD9FF8FD4403CFDB761D3CBEFF84391E3D5A -06B5D932DEF0861EBE6DD885C9C31DA765FCF358847333C966FD39E5000E9835A35F3BA93FA20C -4C459A8F4DAEDE2C99EFBA13EC0B82AB546CFDF7A97879642D97F69C21737B22283B636494C9EA -129A161BD8C9DD565BFB2A35503B5BF8A95AA69627E2A1BBBBF5BBEAA74A58CCB11F7CFA420B5D -70B3E392D54A52FE59EC9A3017BD2D83B4E90E24D9FCC6D816E975544B96BB1F4443CDB81918A7 -7FDDAB25D9BF72D20DE17689121EC5757BB18324AC0D5F324DBD89B72F2271FA362BC8CCACFECD -CC25331BE8AB8FED46A6E691F3AA6B0701F582CA8753F648828CD3FAB6E43CC92A924F245FC608 -350F82CAFF77EC9E2E24F985436ECA4AD84EB24435A5C4B330198B23E825D1ECC7DC5582886E90 -D2EA7CBAC9037B11B156ADB8110B6FB795BFC6D397B39FF79D8FBBD42A00C6020C63B011CDE2DF -269F4754E89CF3F18F2B9DEBE3850A86AAC0F5006B528CE30BFF055110D8AFA688BA3B9F0D24AE -50143F09D6EE6926BFA2E460B5B3C486F3810C5CF68F67FE2A9DD7FE9B39BDBB24D6E59D12108C -5016007BB9FC22791622C044132BE6BB8F7F9C278C755DEF004E310EACD8F39933A6DF56BEBC5F -B72B4DC33EB255B645CEDFEDB900B6E8B1FAA4ED152222A3E6FEA8D8BFC7C477EF8D7557B70E48 -693F8C0DCD118EF544E782C23DD3AA3D66C90851AC05B5818831E3AAF1C4DE9529275DFACAF48A -2A87BEBCF4EE948415341227461D8627D2187CC9184DD3343F554DEBB268B65AD8314996BCAD55 -F75B5983F62EFDF10C580AE478B6C3C92595490A9E3AF8D279246AFFFCA3F3F7E79FEDCB652CFC -57CC31B89E18AA6C5F839DDC3ECCEA0264794CA316EEE24A93A25E2DD12F0115B6CB650227FB26 -30AF4CF55F7AE4701310E11636A39C9FD1D3436524C57AAF409D24276DCC0A5CBE47EAE624D814 -A3A094C5C960C3566778E850BA04CCB58E5016CBE399A201B788A448F9969CB1C89EBD958AD83E -4E9E2001D5A7120E73DF0D722AA3DC1CD06F11B2F8E911B794E50B50FAA29B49AE01B5C361F08E -27BFF8DBC16F4E4EC034B3AB15F06C08C9EF4B5B054327BB3A5D25E41F3EDD53E2FF4EF38413EC -F5E693225C255A9E1F4060B1FFF8E38357D06549C517F458B62A8E123985988726DB8DE3C9DB37 -8480DF0D731B1009516437512F2C7F898628330B0B2B2960CF815AAD9171E8097C933EAFCA026B -1EDA2FD5E1E5FEA1CD7604124234CD04F50AB59DBFF1318423E4FA6FCC6B7E91E4FBDA149404ED -E8E13993F65F12ED80B63FB137717990F4502A61C00DABD9345E94F043133ABEE22D2B7FF0DF21 -C4195C3E2F7ABD639941E47882470A6CAAD0B4A8C96B4E4E1DB918B8A926AB40E1859D719FD381 -FDA3F1490076EAF5D17311CBB59A26D198CF036B5D6A551664E2C206C910F8A7369183BB95329C -097A7DCB992507F479CF546D645D52F2BBB452EBCAB40FD4109464D160B97ACAF226DF763FB024 -9AC97B71F735CBFA56D2E6ACD7710CE9BC2189FE53F5BB41C58C0FF1A1C5442FDC76D21E6273F4 -1896D7394CEA6C7500950AB85FAC5C8D4CF1766680A0CFA243A00B7DE2D180DCD1417CF25D7A30 -5A1B17534FD1D8595FE704A36B402F868E534FE7CACAD039E13CFF4CE59D382C107FB9DD98623A -0FC04F9337010031AA47B7938F111335EB68AFCC86E477D5E76A1E4758C7319938944850E71333 -0F20E9A9DF969173018CFF594871676420136BB1A3E0CC89C2327F68B0A487D95463D183ECCF07 -4BA6870EA9332FF8B264AA779650A00A04CD5D443CA09453DC961D3193BD222D1F80BA0B9C4162 -D20CB801B1D6E8DD3D97CF05B841BAB3DF22DDBB06DD6A682C6A1E3CE595A28CAAD9840757EC6F -8BE66D6B9CA3F6EDD5BEB6324873C0EC7B8B108731F3E6BC6588D69E4C7573D47BBDD93D03E050 -076B9A0EEBD7C020BDC64127AB58424291B1BC70A9F3D326C67D93AD24F67CE9AE6BDC829D7DD1 -61EF3C1A47991F54A807C08AE0AF24D6B952E66CB8E9196EA00F3AFDCB1413A33763E24109759B -CDB59C2257C2864C458719BE17D929911C7FD72148815791A12EC2D2A3DD6407330CE0B4DFC3A2 -440FF0D6974B92B81FBF04B0FC4E4429B009C388FA8FDEA029AAD70151F5BF76B13933D3F55B5A -C00DFDCEA91ADC73D3DCEF29EC261E07B96421E64865FDE1F8EFB7B5AB1273D5C2BD5261ACEADD -7851504D19A91F295D664B440AA61636B62D02A341CEF145920C396C42244CF13EBB21D4BC85D9 -95A57563CBA0D4D046AC0B0D1B40D1BCDB26E5AB86A1720005504BE3D73EE22018F3642B1D8CF6 -4596A15ABA888916E9F12BCB15EB823337DE90015FFF5D1B87DE84495F696BA7E1704B428133DB -54916A4BB7E31BF36CC74AC1B1C1AACC176E44B45CE6864EBF724D28819CA80FCD1BCAC9C6E92C -E62D304E2D18A3C882074DEAFEDF1C55104F629481E6E42EE45072BBAB3074EB5AA1D4958BFFB6 -E541FC1849E6F5402165F5C4F750F72CFD90BA03CCED7C5014745B0F9642E271FBF6645AF430D0 -E92984BB4F96C993E3186C0D8C2897B692C0A0D198FF9E44C648FC2723F8D8A547F7ED08E89E02 -C00D26A50BC8A1C714BDE534580176C7F5D3153514FCA23C2D9CF3B6EFF7CF683712BB7AB3C7D2 -A3E66427ED0B625C088A2A57EEAA2C467FAF0AC5728495451ACA08AE5506F5410411D2B0912D3A -F6A391FC7A4D7108C1B2FF0D1F9D09C2396CA85ECB4885B386F5FF5061AB78D9D915B2D3AA05CC -192CE2751B8E1C99B043B24950F25D58BE9377DC1B9198C5DFB5FD6A0B91EB90A5F01257ABB15D -DE8B375B0DD55CB18B8A42594724844FBB89FCA2215536BD9CAD8661CA6C92E32AD432F581383A -90CDE05F34FAA585FDE7DA42889EB34752AB26D21D13918BBADC23D9C35B88C6FDE31EAC2A4295 -F4159CE1CC942B9830129A1B9474F154A175F3A71D86F1BDB4BBF15066948984B4FE902C3F8F3C -0A46E6A51D86054D683C0A11ED0F151F7905DE73C589339153E8B4708F6D94CE02581C837C41F2 -D65556F5A706C06FFAD43669CCDDB2FFFBE01DCD46380EDC16E08945EBD749AD2AEDD7CBC7C2E2 -E3E4F666AAAE7A718AB5FB6A67297D8F9FF768FD216E4DB4645383EC452F33C1043B23ED9783C5 -C76331017EDEA82E29CCA8F436DB73156A71333E8851CBCAF2A721B7A57800CD72AADF40B6620F -B932435AFE3FE986720FE713D424A3F0E936168960E171B9B5B8721B699C39B70E42C8E0430E66 -9BDD2870B7C4C66440C106DBDBA7665838F9C6CF6746E15DB725F500AD3D3E2BA2C7997FF0D513 -C91BB5C4824D51B89E7FF3CE26EED35E9A2DDA7420026D89674F7D3184E6C76D4B6D32F28B170C -A928B58CA925E69F04A22E85E1EBB862C5AB0996F05C62E6DA8DB0B6195B72D473EA23CB8F9900 -3C7F35D51D480D0547BABF993B9235493D447232B362D382FF92BA13559F69A7E95C17976A5A1A -979EA687227BD969D06E73018FB097319FA62D7CEC8B04419DDB4435972382C04FF9C5705DFBA6 -548561D31CE00457559534E531377193169A844152CD042223B47B7166A6CEED2B746AC21251EB -900F93FC6F625D8FDE6E1D5374950F4DDD817548EBDDEF20123FCED4C3DF7A7F7CE65E9B5FC3D4 -F079B281D7C03DCBE9B8D87935D42CAE3ECE54EEBE41C00CFC98E64780935AD675962BE9DD9905 -9BC1DB597DE778C168F4492C26167085032E511484ACE6FDC8CF885DE200FF0A990226D0640BF3 -D78F53576875200E856089B11A57A657D37E0BC5B6046670377114396B8C740B5C166E15ADD5F0 -9BDD0CC3BD11C342B69C2D90E5507D83D3F6FD3DC144A2D2C80A02F455143F15949B81374BD436 -0E3591F0EE260233F84B50CAAC5013D6AB612837119AC3ABB6B2DBF0ADC06EB4D4295E48F1B6DF -60E6C98332A380BB997B769F7C699827A6EACB9E14B79CFBF83E11AA8B96A3EE90A2AED4035296 -05834F1489CCE75443E75382D1B413D8E0AB4F8AA7C69A3E499FC0077DFC9C8AE155F5EB403579 -B6293E80BE372197F33AE16B3F41F75FD0350E3267D963D7D39AAE9F6741EB1D242B3F9CB3997A -0577421B816164A5259457F56724E7FD562AE67136D5BF75AAE92934F73240C98F289C566B8582 -EFFF34771E9A1C04FA01AA96C258A3C7055087721981F4343CB87F07FD49B9576C4F9429BCECA0 -20027987609F6A49D73984819C940AA1701A6C70086BDE720E1FCB0C6FFF14E15978E462A3D5AB -4D0F222A990EFB6D09EC67B467EFC88275DF2598F595186DE91F398AD8CA3D232EE6FBBF2B9595 -0735E0F625B709CD4ED126C063894BFA5FAC4F4B7A8091FB9D94D294E3C284781482184D9AABD8 -1F723B1F9D8AB2C7157F8E4A636F253CCE3EAD18A0F7D8C38B76B88913B8E8DF121902BCA1EE8C -4CA2B05EFB5FFD8C1EE4702885EBE96755A2D581378F71646886DC140216D13AD4C3B3F2C0D2CC -D8DCD4D9EF6995135D6214EC4E3D653FEB11C22F5EBFF43EE55230A86B8E78E312B7ABAAB7B749 -F7C73718504B28687AEAF731FB83EA4C0B9B5477CC52A5D0BD4252FAB095F558553FAEA5784B94 -1683E0DDE43A3C7B19A6C8A4D39FDFBE50F967095B202F5A184244C31C2149E73CCE7E0D32FEE2 -58425D0BCEDF9BD2FC249608C6ECBAD4B7EAA64D7D01F333AE334D173E859F163396A88A1E09A3 -96F47A3FD445731F18EA7BD26C621E349E314159B99DC4432ABC9FC2E5CBD8E162D9CBFC7F5D8A -90B7A195A7B517A91BD8AF517EB26A8EBFE30CE667BC376870E405F4DEEA3CF4331B1A89B142A1 -DDF343B52419528628040D173EB0828C7B00BA62BF5DE4956B23FE62F555DC6EADAFE18315F268 -15D3DE1AD5B9808F3A016DB66B1969992BE7CC676EDC26B87A11A89278A82DB04BF41CB21C805F -2D2CBB9B4E781F6B4DC755880EF054C74870B847332B344DD056F1A3D7319162E782A625E1110A -C80DE10CB26F7E670BF997EEEBC31C0DC875BA67BF7EE96C70347DFE02FC64F4F7632B2CD1D82D -026A2D7C14536E7C8ADD18491CF2C03B94BDF4A54511B7C9A515F3EFBF120491113E7EB58FED08 -1F16BE32EE7D1BD64CD134834F206E636F9DA1DF7E393659821490E92A81CAD875736713D6EB26 -93E0906C4347699F5632A7D3FEE62C5BD09564AEBECC0A09500F1216B2BCC8D9ACCE85910BC406 -71670117EC279DD3AE212329B50E55DE1DFA4D34EEEB533AF5407331CE8FCB2D39F2DC59654FBB -90A8145689145414A95951C2E41A64375B3B7C7EFE850FC152DB2226F511906CB01C4D487DC7D4 -667678482DA2A0B57728BBBE04FD7420C49289831DC8A627C82236B3764DCDA399D5C8EB0E0917 -0A1CA8E43B4CC2C0ABEC5B60A0AEE5DF738B76C08B354372BC28A1E398159B9B6863458EF40BDB -810731A45996A64EC80889B94A12C6C5E3CFCE7FEE0931AD3BEAD31C60E07B73B1828C86916979 -54602AA6226A830902BBBCC8D25494A7B24A67CE2B258A8050B9659D3FBD3E3B0499A7FAD90851 -0DAA4E0A8FC39BA6A871905BEC3535032BD2FC641F53274ED8A47B8D8F693E722E28480B33AF79 -780F246979C0BA9112071E45C735AC38E0A2FAE61ED8CEC4813065EBD1EB31FB5F0DF37322B3C4 -79D6D8ABE7D3022E1B10991F9DB03D3394BD71AD7763D8A287A2F11A3F4CB87F0A4D1DFC11C936 -7769660BF060965154FBC0255D6CD41E77ABF528922809D141A80678B1F564850937342011C2CD -A7193A4BDDCA3FB1773FECD40B37F367507EBE2C4F69778BDDE54DF9EF70583DC98F80EE984ECF -29646467A48115B5B40DC2C725100A5BDCF8524EE61B841A45C1583236ED7BD97F37E0A9486902 -55A78A4563F25BBC1957E267BCC2932B59EE9F62FD7EC053041AE90A165E4DC412F3B5525932A0 -5D1B729EE049E95FD7DDFC41289ED305430CB9A0BA0E2983C4966AD1E4C634E67899C15CAE84D6 -C6A0C2D6A2742D741EE5FB897E004FA6AA48ABA7332FBDF0971A4148FE73AF6D4094889A87AB06 -FEFB97E11ED78C3FAD76376C3620DEEF80BBF7B286290165F59B78E21F96FC2EF036D65B01589C -14DC300CA2BEF5E5C9414A4B7F4E2434DFCBAE0510C7CAAF5F86A917BDCC85A0C7D0BCA0ACEF48 -E54BE1D943324E826E1E9D3F0A54D36474F74300F94E0D7391A13884440915D1F91F5BAF310230 -9DC18A2A75E87DA722764E799A11CE89833205B9DFF25948E5D1F3A3CB1E611CE299DB7343F320 -00F26A10C4E6358358A5F655D15D381A6D98002D83DE29B1AC943A4C6F428D76E607702B7774CD -DAA3ED711F352F5A65DF01BCB0B7B25CF801E24A4E3977840D0C6C42D71C75AAA00F265CD259B7 -CA0EC27CF0B120395152F29EC1734FE5F40AEB4BCCB6D9AA0C5D38FE7324FEECAC5013446EB3BC -E7DD468047D0B7705FEC89870073E5EF829D4B782A8C67E134ACA1FD7FF4405E1D399F876F9361 -4EF88E2F65E13B1CCB0D9149C59129391843150AD4925CD95A3CD05787EDC236B5FB0072DDAB14 -A148053A4E06169980490BA0E5B8BD46DCCD063AEDF19BB4AC6F1396296435C49756D043B11CED -CE66E71108FB6A5F297A476EF414AF75D812D4E4830A80894809235EF1C43528D0AFE3938728A9 -5685049D31548CB5FBE281C3501D050E8A3EA525A55506FFA31F0164919B30A9B4AFC70225048E -93517E234B0D671A9F74AE8DD155D35DD72C6C8FD359B5023EF5BC74A59D159E26BA68F3D0D7D1 -D90F1B64A4CD270C1DB67832C814B44AAB2447DCB00F73C1DD5080C7616111ACB6289A0362B5FE -C39B09D62F924A98C37F1C3D3D18B7018E6F6D6F851436AF6CEB6669143D30C85F958DB2747213 -77B5B73738F9442586008C38B843E9A567F7EA876A3A33E1827F12B67516AB2A678F131D8FAF62 -DF923BD6C4C5C2DE0B9B229541A02E9185AB6C7A56F4DCFB59128881D87C7A8866140AEF0C6C4A -B253B190E048A310F524CE453EBA70D967627143843FC4D19E4E71CCFD3FA84B72C51BD211B2D6 -E96951EA3AA1E9B66E55E0117A43F0DF8E5CAAFAA6BFD38C71D68AEB84BE2AA3B8C0E451405836 -59703D79568B7DE8D955D1AF3146F514E5D87CCEE9F308ED802B49DAF342F8F4555309BDC09B3B -9A1D13EF3FE6DB875B775AA3A27B2C1AAF68398D1D7EC8750B7BCEC2B76F27EB16F5E496DF2A24 -D14B6D6C3830616E326BD0C4500DB16474F5703C9556E760E93F7101E251D14F1E425BA8BB73BA -12F576A778BDEF7742BEB228BAEE59D42E05656281C48E982FD069917825F2A06D917C39A6E990 -60B57037A8798A3C9BBF361C826F6D0E565CD4A465770908259DECA452D45922E87DBCF7CC9687 -AC7A2E57B39B9C916C00EEE3422B79529847A11ED8E3EA4BD652240339959B19961077219C7D3D -7AA153CE334B9288A4CFC5BD378C8D1AB42E6DA7AFE9A3DA92832A235D615AADB414DF33A7880C -4757587CCDC298137211644466C077618B6A8B54484D62400B9CFECBEAA1ABCDB7EE78022DF46B -A3BF4E36DAD7520AC16DBBD895FAA89CE06A3FC283153CC862DF5419ACBC27DF53A1C32B4B50B9 -34DD753227AAD35DAC0F77855524BE8BA3C0C11511E9E85AC4DFC9F4BB97BDA77864B162DBBB36 -2A9C08B76048A88E88FFD0987CD09D166954C59CCB66AC61A651E42DA851D7D7273E60FA8DC330 -D11A6D8087CB2765AF085C09CE05CAE89B110C6AD2C452FD4ED326CB66A48E0F09CD6D0C5287DD -DFEE9E7368BF41E1935DBA23267C999793F2EF9B8DF8260A73642F322E3BF0C79B1EB998076D09 -DE104F146E6EA6EFEFD842635631AB2AE364615CD32894CADDA2E679354BB4ADEDA35763FCB18A -2FE174762D316F10790EA888CD76726DA3D13458E7A6689A149B5709B455866567712D21E5819C -5A7B8C4FD95377A28B73033E10AC486C72076A616813F056B1B39CD9279B64B9A382B506F3F252 -FD0F5107B9CF36D78B5EF60DD9784CA70E0BDEEFF677F50F506EC83EF33F832344AFB67F9AB4D3 -3DB24BE3D7A00B8A60EECC7EB5FC913C05F641C71542ECC9229F67809B8AA0175EF31ECDF682DA -393A9343FA19C4AAB52E8FD310F1A2EA4987EF6ECA0D6EAFA414545AF99376FB13BD744D1A2ECE -30E2DD47B5878DE5E6312EA76D699AD6C217BADCF535B46E2EB7800A84D3083A6270BB2C5A5D1C -0057B424531EB48EEB29E445B1BAB27637FD4955535F62A1ED59C807F3816D46A96AA3B0160190 -5FC7F23AF175CCDBAA060ED6CC1AAE155F18C0FA0D8439BDB73C35BF41571142F8C8A696787041 -99B302C49AF02C4CD929D2CA7F0403BCCB6BA8B3DD12B081A9610487436274F0AC8C21B722C539 -22611009B8581352D989EE065FB2D1A8191C1B0B712C702C4FB566A19F382B4AC8E840DC2DC456 -BD91F7BFE2F1EB225F6AE1562F6DE9D4D6D46BB2426126ABA9E7BBD21F158B3FA9A040A18528D5 -946E6C5B4322070B392403AF18CE0DE9CA09FFCED6F66F7C646C3DF14F5121B34E41DBBA653370 -5497A448C4115DF01E7DF753EF61D9B8618796AA26E0A8E783A6DF -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndProcSet -%%BeginProcSet: ppcod.pfa - - - -% Generated by Fontographer 3.5 - -% Copyright (c) 1987 Adobe Systems Incorporated. - -% ADL: 712 288 0 - - -%FontDirectory/PPCode known{/PPCode findfont dup/UniqueID known{dup - -%/UniqueID get 4303738 eq exch/FontType get 1 eq and}{pop false}ifelse - -%{save true}{false}ifelse}{false}ifelse - -17 dict begin - -/FontInfo 13 dict dup begin - - /version(001.000)readonly def - - /Notice(Copyright (c) 1987 Adobe Systems Incorporated.)readonly def - - /FullName(PPCode)readonly def - - /FamilyName(P)readonly def - - /Weight(Medium)readonly def - - /isFixedPitch false def - - /ItalicAngle 0 def - - /UnderlinePosition -90 def - - /UnderlineThickness 36 def - -end readonly def - -/FontName /PPCode def - -/Encoding StandardEncoding def - -/PaintType 0 def - -/FontType 1 def - -/StrokeWidth 0 def - -/FontMatrix[0.001 0 0 0.001 0 0]readonly def - -/UniqueID 4303738 def - -/FontBBox{-1 -288 606 1046}readonly def - -currentdict end - -currentfile eexec - -D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0 - -F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE - -A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4 - -95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B - -F0A674D095697F925F532D1814BEA8F8A5B5223A32BC4A95402F2C843181758752FC330970E817 - -3977418EB4F64FD5E455C3E4165C9AB3D8504D946F6B5C3F4929D463E1D6E6B5810DAD6C7A6529 - -0CC6DB960A1F943400A8F6364DB3742BE96B5CB4B78CDC5634A9EB3C62FDC481C9C101E045C629 - -3CD9D491B77482D32797F4CC0BFF20576C2605ECADADD775B2165FEF0FFA0F4D88522D1BFBB05F - -BC5062AF54BB3FE2C0B371E8C7BEA0C644A32A3DAFFBC08BB63A97C18A266B310B1C1B92094348 - -60478D282D394123AE06D8EF457278BD26FD6EEF9B95B5CC7D31E1FE462D8A5FACAF5CE5F42B45 - -E1395A3DC60F37F5CC752CD81906F28D3953D61F55075081E14745FDD659B5B0A271C8A423A0F6 - -78B1CE24E573A24B10A5BC378A9E4410298EADD90C159525B358F72149D24291C923F2C91D77A1 - -32347F5F471F1139B9938E880CC5B3409B33859FE870D28B882B96D8B537BF229EDAFDE8C3F6CE - -7CF51F18C5B50E315E93E4896B85D998A43D47BC2560160139FA04813B3CC5C4CAD527A8BF8A21 - -751D1FF032610410865DC43C499080E3162C1BF74077F8FDD45418BA7D690C23FEBE5E9DBC7DFE - -0ABBA430AE206C166FDCCACEA3D4D346F919FF8293111FF626461C28A9EF2072B2957D98A12B7D - -4072EA28F07755AE9D83B5D86DF4B2EC81023BDB5DE262D1AF3FD844E9496FBFCB61DA20388909 - -7CC13CA9BC695FF8EB10B59ADE5384D2FBE0E741F97DD10CFCF168DF343075F34F63C2582A53B9 - -2CEAC572EDFFEF54B2F8FF5D617ACEDDE59046C4D2D7AAE0F147D8D2FC3769AE15904DEDE6CD4E - -1A944E5ABAB181450C36C74B93D8CFFEEB3B5876F9FA7B3530A0E6DF9670E2BA9CE7675F9F1346 - -EF3F5D38202A50A8CD6AD203250F2932EFC08C8A4F7894A4DC1C80F2B2BB2C71682D218D1481B1 - -18964F33B16F5BD3522D16F9F3739F063D8D05463037060433CE5F2F84231EBFD1A0524497555E - -41856D173C70AE0E3DB9E1BF4C2CCB9458B0C4FF393BF62FBE4E4E78C53F67629ED378ED695916 - -52083BFD432D05F8FCEA0FAA5BC1B4CE9EF698EC2345871944DF7AA4C4FC3616AD44E9785E2B43 - -B738159C84261FFD04ABAD0F82033F1D367737F04F70CB2812630D170A08E9D6976F134838E22B - -82DC60CB4B93215515DF5AE0BDD7D9F150B1364A49F886F7B196DD4A358715CAD8EC282F9062A0 - -6D6F2CE0BE1FB718F4F0C0242416FDA7A9CFAD1A67001DF7AB7AC3840F776A47D0519A7116374A - -D7620CF527DE6343948A7CE6763311FCE7F3180304C3DF53CCE7DF85E9B21A8A56ED2CB0070C85 - -56468DC6D6EC4758F34423F6AE9F1F973FEE394769B5ADA4A08C90AABD5D07E0F07E893580137D - -09CE94A6CF3B8CD2A650A6F8C42F33A5BF02A2F04CC0DA224FEEDFA59F313E8E5BA98A2B95C59E - -081047EA172DA8569345A62FC12ADE17DEE499CBE08ECD7B18A79553B3F391DD7C9699FF209B4B - -8174D217DEC328C0A8939197E6C40C6153F6A49E69AD7A7333386B30303FDAD868DB58A9E5A13C - -AC55EB76A2D241F93234508B436D0081783E64B9431260115720ECA10156AFC676E012A737EFA5 - -0EDFEA396E2C125CDB78BEC266F894FE814DDFBD24F2D1DDD68A9773334FD39E7A72C023EBE0CC - -A6E5D6E0E3C67F3187B4FAB906302EB810BBC5ACDEBD482E00F281DAC4A87C83FDF08F2E15BD17 - -8A77A4792F69C23486FED2344DF26043D76F4C9BBF54B2BF425180445D9563D99DD8FEE3F8D2C1 - -A660AAEBA6E0ACFAB5CAFA7742ABF17244EC9BD43B74E64659D03369F252851340976AA18BEA26 - -2B9287566460ED054923D82797A31C3E4BD14FCDF9F30C94B50364368C1BB18A10BCF47325D833 - -F3DDD815725F628E9242CC62155550D54E1B698FE66DF29B79817757E02D05190CEA5B78C35D05 - -FF87E5B2ACA9E7E91FD5233DAA7F5378919BD11028F25439E1E35A5DDDD8CE710F4DE16C1CC0CF - -FB1A9BB9F2B8635609DE6479E83BEE8FAA4DE3E28932BD18E07EDC326B1428901A77A3D23E8B72 - -66796CDB8B5B180E779FDD9DB73AEE5F45F72FB55CEA6B9E52A2F72497A0D8C12C4E176060F398 - -7584E5C0A8F6B74935349C153AFC56434F27F0E248CBF9E6009900A7B23315A0D835CA08DD3A34 - -697F381E3DF8CE655DC3B2D383B002DEB4E87B0B7BE14130F54CC3B433CCCC9034E021709B6F7F - -8C25DAAE692BCB399595DCB00978FAE3454D48EA1052369B0FBB4B340D3AC6C3279AABC6526F99 - -362C7693B0C0167A539CF4C8EE7C4B6FDBE6235D0669FF525E05E127A0E2FBEDAAFAA82E843EE9 - -0CC32A9A80ED98542E23D7819F5551D8B065628D4532081B00B728CE2C67855045475D9D1432C1 - -C83F12A3A628D302697B418D6699C9E4380704D05C0270A736015A59B2C4AF2EC384CF0F05496F - -01C977FD39C6E778F38D5E438DB5B6B05E333AA6F4D7DEECC6CB4B098E1E5138E9829D93B21F05 - -FCD3B5A316BB3452C516B2B8935B1BE80E64A7A7227BE6AE842AF11BFAF372AE4E41F8D99D2810 - -427F709B97E3CC0DE4C8CF59A4B59582F9B9385B4F8E822107A79CA447B9F885477DC4B65B7BAC - -30A40B5141A9A3FBAE99F68B27A3CECB7419103BADB770EF627B2AE0C4F6F368B1C5B9AEF0804C - -FECD822D6D8EDE9F42E17EE2A6D385FB06EB17C1DFFA25626E6699C4D3B791FD65F2EE5D69DFBF - -4CC6E06F7F4EDE642B163699B239830DE0D120E1F496F4026A31D469E86C35B01310D9B521F5D8 - -614AD281F159E197F8A66C5325A2946216CCCA969C4F6D2FC05080BD50AC3D43026B89C2E640A3 - -5964555A073495388D487E919C7A40086217B32FE8B5215A212204D44728E1F245C913806693C1 - -CC8FED12BFAF14C4DE4DE0BA32D76AF52F6B316E9E64538A72BD461DD2E24158C75362031800CA - -20F70387543BCFCFEEF0D1B3E7E108E106D8B172B4BC40F83AE4D58CF8CCB1230D6981AF00A712 - -9FA1ADDC1EEDF23A339DF93DF45A3FBD7829BD840CE86EA2CA24E020A0FDDC24664EA42BD15C32 - -A2CD1D7C327CF329480B7211926FDF44FF1F73FD248D980956CE170271C77DEE57164BA2FED513 - -5C3777E10956C9E382D02B888261BA22FBA3D5374BD2130013FF2EAFA4CE4C1235DD5128FDDAB1 - -63059F4A7B911B96C587526533BE7255749EFB41AD032CC00CAA20C2531E4DC09EAC48AFBE0425 - -431FC29CA48A3749AC9B012CBB209F77D931599EEC8645EF18793E79D35C63D4F1A7134284BE50 - -00DFB32EAF9021D3C8DEC2B119E376B3F2E94731B23FDBF8BF6D36AD9174F56756B90207511267 - -8DB30EF2F34F7921AEEB3A00B6EBE69D18F6D1D10C5B5F5CA5F37FEB97546191F17E1F897637D2 - -9AC366148A9D7F09B0614F630F829F155ADDA8E704EC5C49F963BAE89A9A6611177655EB85D2CA - -0075DF5658FD68641AA7B31B8E1EEC8F715D6DE9D422274BCD8382082D625BC812F5DC3F86EC0A - -376BB596C233F01C6F54780909671694E902CC1B96EFB0AAF2B42BC8BCA01FF6DB2348EF7DAD3E - -7E9661189FC27D69122447BF81F9466A73EF04D4D4BA628B63BFB84AE88B472965ECAFDD34F7AF - -8BCA51077C2CF364F152A65347488BCB948F87E99E10F430B2B0964ED6114CB69AC8186E486D37 - -6F57C438B8959C360FBC3550A3FC6B973B603F64D2EF99455C82E1107434A0EC3EE4E1FC1129A9 - -FF12A23246B410C74E13FFB07DFB6A6227A73A0B6B4518A0BA2FB6007B21AA81A7EC747C525F2A - -8E6C2569A9E950E0BAA17A5C9D9A1E5155147EEA4DDE831AD8CF69C7814D76B503933D91AA93E9 - -A97508AAF29839E177898D79BFD277005819AD87D9338CAF02ACAC44F891F92813E7DA69C82D7B - -6EA717564BCB1D470B090DDBB1EFB308613AD61F5D27338FDC8172B258009CB7A5FFB872E43C88 - -20FC3B8DAE2EACF870D7C5A88D4261982800AAB36E94968A4C5C24EC5B0E538170E8C6F9AD61D3 - -E6C713B6319E8DBE7074CC2228770AE51649228A9FC184AFC1BB7C67628FF30360459352EAD6B4 - -A2A69A3D39182E56CBB2864A2C1180A7C777E7269C5743D5A739B53D3A2C5BBC9ABE8337C35679 - -6BDA40101D11EEB43BB8EBFA73E4E7007A2EA443AFEDA678E1B14A2AA2AE6A06D12398E68D6371 - -A457859C0FF25A81C5DEC3AF48272CC5FAC044AF2E71D510E5BAAAC8A50542D9379880AE7C9D2D - -1C822B5477DAF5150B84FB9A1A062C9AEF9C03F89E0269637F056BF65A92CEADE31F2E3D4C9589 - -0701A4A064605CF79E933A85185B50D14A4766563A952D5A3C99C16CE7A50BA68CED98549DD395 - -F6698BE4F7976AD5A00E737AA33CA51F4C7308B66B10BF636B3C4DC8866F1509B081B178059340 - -BD9849AB487CAA004B8E60241125457C922340B1BC817885B703914B0FC58F1391016FE1E3DA04 - -AB5F2056AE0DC8A681C8DE6CF5FA125D2C7F5967DE841F076AEE8791E6C17D7F698F2052A9C641 - -04924F9FD85BBAF77D9EE8711F147D730A6F89DB2965CB450F0820402C2E52CB57977BA0A77E0B - -7682845F3E4266B77304F163AB2CFD49494917D2C5963A704CFE46C643EA7ECE441F82E272444A - -8242BFA6CB813B661CC9431DA9C1E1E9C6A861C6C0EB3053D1D62CB774209A7586F9694B558DCD - -625B55A0E9FBCE5C15A9A002BC9478908553E95302BAD1E4DC9C250AEF170495FC898FDEBA345B - -B4AF706334CEC5091F8AC4A23821D0FEDC6167A15F45633A30DDA88EC3C8C6E235A5A3C1BF1BBF - -03A896CD7804C297D6BAE134DFE4E388872A05B92034AE70DD0CEBCD571655B15078A2719AB32A - -528E613F2BE3D5AC5F3C938D23BA20DDFF1422560726B62BCB1B9EA09DA1A28EDB55F5CA2D4E05 - -50E1231157A81978E7B05FCEBC855E54A936DD4053A42ABABF820E3E4D37278909ED49E49C6213 - -9575862EDB983BE4EAFFA6B946CF4DE068FEB740927C19935D25DCB15E817847214774F290CF03 - -E862E76335CD1CE46188CA3969F0B3F9F1DE174C9E480C4782CD5DD6DA4F19B51F5F09B78CCBD3 - -D5AC80DE849278DD5A84BE0F9D67229113FC4BCC4829F89EF61E8EEB93D48F263098073996CE72 - -05435589588FBDEA91C18F8BF53C81DCD10C74A6139B5A68ECE7ACD3A485723224DF00177B1D6C - -48D7D92D0A5A9E550D5E061765B49616C65305916E9C0C527F6A8EB6CE031EB88311A9686158AA - -B526BDC7B0ED01EF2E84E495D10A50C7BF87536C4D4BFAC22CF95C58462A7DEE8E671752E98429 - -8DED64452AB8463A8D4D98CB7E2121DCE680D13CD52B4CADC738692F6C5C32AB378CB2FE4FFD68 - -11B2F99A6D0BB9BDEBCDC827DD77603BA5814226F39DB9AA83AE2B91C0C6020E934190DC610136 - -AC6CFC5B6B5E86A66DA2582406364FD1AFB14360CA16EBD4FEE6DD5B5C42E7ADCDE9B54661CD25 - -1464D5C7F89B62C99EDAA697A96AE85C1D280BEA6F700110B2E39C0D09BD14A548D2978881EF1A - -38DAFB197BD78D62A17C343873F279EA84155D79E17887C8C56B8E7DED38D064EB811A953BECB0 - -39C9EFA45424D6455B869EEA5A252D940CF0E43D5162EE408E75F2EF0BE2DFCEE6448DDA529BE7 - -57CE4DE31B80A4676D23FC0E901B89CF02AA0562BE66185F91037B1B56809FF1046A6FC39C9B9B - -7EC27BA4ADF238760A575A472273BB64C5E2CB776207F00315B73534A539764009372A74CC7612 - -9DA6188A383967DC1165C07C7B1F93B39C6C201449106A0EA1276634A6162AAFADD21C61C1D560 - -1BAA67902785CB90C87B611D3A6A3B947013BAD8C60A3D4D339A3025BEC74B6DD387B7AFAB831A - -87B7A71A37D251523C48642B1D479D8368EB31F8BB8355EFCCE5DDD1323FC99A56B1089B752A13 - -52770BC7E1821A398890B31650E8EE14B0D49BAA92458C15C2941E434787EC4BD034C40BB0E209 - -6CB29B175387729ABF0962EBD02424F0BB509687B03A39A3BE9658761F0703C5D839B60C4F98FE - -FBFBAE07202E2CA22AAEE145DDC10409010E2A59B934401EAF67B8EB499ECB92B375CFE8D54125 - -CB6B20C9968BAFC45D1A8BC65D98D7B702E624794EBA8C1EFC9433FF2BC3972F57D8FABF27CE44 - -2FA32AB83AE5DBADAE01EDD183403D272AE3FCD75BCC750C90DF7D0B5255518AAB0C92D30A0164 - -59D9821BD7E1D4C4F464E19B0AEB78276190D726C1D7674708D0A74CD05920C2A8FCCC8581FEB9 - -998D735D811623780F129F0AAAF113F75EB28F383C9B8C0C7A2221C3A4BF641961F38DE9DABD33 - -A803E9436E5B9842503581B3F5445AFA039CB10C936C8B0C08DD49BEAE1190AD611F3F23FA77BD - -71A80A1F91B7F3760F5FA35BCD76D8030FAC872C637217B07CAA452C72DE3F805F58820BF1ECCE - -231229FC5B68E5F1B20259DC92AF481FDA92D07F276077D783AA45349915B5F81C8C969739DB56 - -F4522D02D547DC76240D69CCF2D684242020DE60ECA37D7E2846C5045F6B2D105B7D5A3CA5DE6E - -73A56715D5DE5F3EEE3559E657A5EA13C9716E3A7AC0DE25E1720D52ECE8A84D5D1AEA04DF0F7D - -D846549BAEB5C5032CF3C251A5A63A99DF1A33D0548A72735FD9DA8267BB4B57A5C58D4457BB12 - -42B5152703E62B64C02AFA682C65C4112B2838D9BD8CEC6BD9D1BEA882E5090046E9F22087E6CA - -B69F5325F0C69A4874EE820D18B64DCCAADE6EDBA3AC758E54A7C9B6EDBC40550DBD4758017842 - -1A8C5B6967D858DB9836184459E26340BCCA7636A84B7B3CC9596A907528455F4646B5BD789E94 - -9DD0D1F40C0AF21E3971996FAAFFBCC14E19030924D0D38A948EA552971BA65045F2817564D593 - -4C2990C6CCDE26329F23D8B369F3AAF74A125CA1FD552BC7122D21109FFB36CFE387F22CD09CD3 - -CCD47EFDF7F671397CDFCB3F457B2E6FD2E2273AA268C4C394B36145131EF2D4D10729F64ABDC5 - -EBC7B20BD072EC170432982280341735297A7CDDCBDEF8483F34AF7A797160402B10CCA1C78AE3 - -9AB6170CF6DDA19EF0F22BEB283277E06544881B6B0D525936A84EE91FE0BA8C2985B6E32AF94E - -DF33E6CC70408F3BC67070A90E0641BC68B8CE8FDB46BDE2FE80BD7070F0A9505B0959B1509E84 - -CC666CA7CE4EEB631B6E8D19816611B5ACE957E104CCF3439C2C27741CECA6F2956B0C5E0BD7C2 - -B417C375B630D4CAEF428A88584A3D1962330A316B9058BB1324FCD908781ADB47B39425A9FEF7 - -6ADAF499775F68F98F65EAF80BBC9D4015D05E816D2EF9A1FA91B01E05B69B9E1BF75130B4C7D9 - -AB29D95C07A4C3F2DE00C7C2108F7BDD2F103D8A7BE02AFD12D1ED26A01AEF6B18CD6336765899 - -805618E0405C18CE7F06EFD796EC9532ECAF6966F76EE335419454FF647FF14162CFE1ACEADC15 - -A22FD4E6DC78A93D51A6076553C2D707399D27E5AF882813BD3248B9110ABA3CDE8D3E6BCD23F1 - -DA141BE6D45A9E6E36FAE1DB0C0819270676536536EA13DA4F07D5BB6277F7E4C609E4E16E2EAC - -8806F28F4191E71096E2495E64DB238E20E0D1301B3F34D9FB4E6E6106C03B6240E10C0FD01B6C - -352E9BB9300C246D0C020F2B418D76A0456784E58A75AA5C725E5F9269392A90D185DBDB5CE2FE - -AE31ECDB3B63843AB2958241BBFEC3C04CE0AA147C504A45DBE05503DD493A03857BCD7E4B37AB - -E8572892AFF4E271F510C7E0649C58B3E3CF75B8C3BC08EB34AB5F765813E99F99ADE259C45327 - -2672F9DC25F031797C4269E8CAECBC3E92D1A59FD1285B46500F9A2D679EBECE480945D79A50B9 - -D5D1AE90727DDFD6F8C5EB03B2EA70C169828FC755BC4193CD027EB52EA2DC7AF09C0865695106 - -5BD78AF57C289697655A3432A457792BBC88949C40F4BDC071793853F9E8777839C7D7F93639CF - -42F1E4520FCBCAEBC3BCC53C83334033C25E50C72A3BE0F337CD14996326C169B3921E3442CCDE - -1A444C94AC8D2ECE632908AED4A162A74021555CA73B235715B965CC867727E48C3B6B39B989E5 - -33B92BAE40A0FADFC8BCE85D2A7EB6A1C4CEE21472345421F9B80C5EE641C91295448A51306CAA - -41916DE9DB4A78C7381067314A8B39B13F54022882286724BCA2C10687988E4C4DDBEF5E2D36F4 - -36C9F6495E0D40AB6F35E7D0D5CB8C2A753B4C355D0CDADF49FBEEBA5239A90A56D826A9BE12BC - -62677F07CB1CA5AD3A8A39E10577E5FD95E82F2EECB4D4F7B55DFF835663822851B7B66FB4CA4C - -758763437BD7FFA955914B267C18A55D7C913C4B8BBACE885F5806BA7265167003198F3C3236CC - -982EBA78D01F4270AF563611B84C839F9F414A0FDB4CE0E3AC0A6629378741B5993B40CA190243 - -C30C55759CD545B2843404994D02ED271D807B212D4D39067624C5685D04935F7C936EDC0D6F9D - -DA112228AF05097780EF6B3F7E3765B7D3B9D9B292400D7E931CF98B84E5AE51D6FD741E6F8401 - -D026309DFA92510CD2254EB234E6B2A04AECDF39C03227D07096C4BEA57866D91099E8CF5F0E19 - -A587A498D6BB3B492EDCE600E463A0B6CEDD0C33C270F99FF12906EED6625C61442D7AE3A8060D - -85121920E6B940EB9E55037F40D977C675DF6E825CE46FD9A1A3938D9A1476C0E0A575270004D0 - -B56126C50A62FC211DE28D34C404BE017A823352676609A5000182EFC3DDA67D03A12CBB25C99A - -6182C6D3D92CBBB2F3B2D3F3B7FC90DF0C60144A233E71ED22D4113EFD9542081802AA7A678C9A - -F6811790ACB3654DFDF82714598756E365182A7BDEE311B7468FE07C2F9B829B65F287D55440FE - -32240CCE521E38D71999A84ABD6F6C1FAC23945BDE97D1B2EE8234A2A12F4F61AA9316C7949D74 - -660C459E2AF21699FD334FB41D5A2CB869A45551BE062EF3363808ACA5B861C5CC05A0F74DC620 - -B762CF1260100F7AF497555E3A387DA9B836F2B1FA44654CD5B9C3C6F11D5B5552E2D824B7B1ED - -9E2597B1849DFAC61041287E996855B0ECFD21EEF4A0AEDB4928569D34613C74B46D7F46B55ED7 - -5532217BC77B1E075A4B5F782D2FE5748F12B50F7146AEF506A41A6A3364854D8AE4CA18448626 - -6368E181874148970B89AF75967E61EA7212081F85AB17DFDEDC6F0FAF7F415B3CCDE75688E85C - -1DC939D767755DCBA622BDB3631E120BEFBA3733F8BDB0A9D4DF8737240385A6ED642A3B6BFCE2 - -D3B06B16F994CE49BDDF355A5E8F28C4DCB6AFAF6354A97D490B54B8BFB9EE2CBF5AAE669E3149 - -4461E70A60156764F25520EA13F12623F3280343822876660A7F6603B59AC39D425B38217AB4BD - -E12120EA6119F32E080CDE4AE8DFA21E23DBFAB037421B20C3A51F4AE2FB5DF4585ED289147427 - -683F43ECC822E0688E6AB47619038D4B9404CBBD9324BF32773E8C95F9CDB0CD68748DF066970C - -AD2BF8E4424940CF6C6E41DF2BA07DF4085A0E6DA6080FD43FFEA0A71AA7D00169D8283C910BC6 - -F00646DC8FA6522C85BF46A863836F64CE73A6FBC0538E30BE63930B0EC1E4AC40A1220A99640C - -39F811C42AB78325AF974A27A0C2A1A2785A36EC316048E56867A1F85F78B36171F126B77C114C - -B7A8E05AD92DC6860D5893964E898998C63836CB5CACE1EEA1C9C837A1E22AFDC4B35E149FB0E1 - -BF248A25847604DD6961DF3AECD1A9F61C36E3E1E4AE1B9F28FAF351FDA113664BBFECE0B7C5E2 - -3183F8425BE6906A56398E33913033E51E06408E001D9C862E36A93039AF47F5F301B6B5F3775B - -4B2D4258B866559001066C6EFC48C55F4C3F0CDDD8EF525EDFAD6FC06213819A9BAE2E5577D404 - -6E4656BA2F34227C5E37F0D77E964779AFDBC6840616CF02936F281FD353F2A5D8E7814AC6B28A - -71BB57253F852810B7DDD5590A522C50B56BE251DC7641E0D1E271F8C4CCEBAB65B6E70F86A7C8 - -32D55AA3E61DCAE504EC4ACDA7C274AFE9BC7E75610C861ACDDFA5DDC4E8EBCA24A771BF0CA3A9 - -8B88A6ECE52EFA7C8D55CF0EE850A99C9239A4466B558B6D020FBEA8D22BC6AAE4292B90C9A983 - -6F7F4C5A588E6CC3DA3313F5FEBD4E5D2F7E454EBCC9939742C67E7C01E510D507EC30C6E6D340 - -510EFF3493B2209A7AC43B484921872315657D3BAF59CAE38DEA48F394E4DF3A8C930C61C54610 - -300D66A423A4CE2392A7A422883EDF08766119C2D7B7C7384821BD6FCD1B77B1BEC14DB15F1087 - -E89ADF4672311FF368EAB60CBB6ECEAD34A7507A781B1DAD557ED19C7A5B5E334851268DC21824 - -53CFB7EF47D15BACA68453301E95125A5CD35FDFF1E6EDB85AE7C228180424A2842ED475B31AF6 - -240A480B6F6D7D3652808F8872F859843843D862E81E3594AC3AF577E79F647322392E4E63CC08 - -937C2976FF749E16C58DA39B9035D802D0F0A9D1DDAC1894FA71BA3E41849C133445191D41D25C - -B37A8337C876A5973EA13567389FF89C668E0D13E225964DDDC3DBC949B46E0E75A2BABB6E2AF4 - -53F65ACDCD45A394BF20630802BD9B9418459BC7736E37244F9215F2D6F534FEEBB1F841962737 - -D48DA7D6B30A71BC4173B6E00ADB4EFBA91CE6332CC517B39701E07670D3D1A9A86A7102E6A80D - -C1EC6CD644F5511D0938DA096F80B49CA3444C0D96DD79D3F8832D0410F0430128C6056DD09F34 - -4CD7E8D743789BF3AEDB8181DEB1A211AA5320FCF790489732CE6A982B1403CC9E2AE6BB9AB5C6 - -863C320929B3861AC1011FA62C44CA18B10CDD9DEDCEB73E9145B73C471C6F828DD188804F96EF - -DC3D226A2A5D7155F7F8BE7821DD39EF450B5DFB14DB6C4F568CADCFED8C702675BA1C04CE6D62 - -839727FE6F8AEF59693BA38A2B900D0D02C56D2C632833D2D360ADE07ADCD4CBB620517D7D0B28 - -E3462E6EE2D30856BDA53DF4D97FAB059B0657E815921ACB16E1AB6CC72FBAFB9290A1ED432A32 - -CEF7D8CA1938582785D12C9D9B108DC564A9F80B8C75B5B02A1E1C9C5B793526CBBAB9042F479D - -AB1D9EE9C18184692C81AFE2CDEF26CA418800474E6B742BB45CF02ABCD86C52BE10C777DFF981 - -464D624A7B6E455F6F8D5B7F84FABE288DE3FC4CE4A23766F3D771463AB1E555F2E1ECB61B6A2C - -987B43C53B636DD466B57EFAD09811C728ED313B950789B262A17EA932A745EF43A8EFDA16D05E - -9BE49D3B05D7EE630434645AD245BBB5600B8AACE3241F3706A3D5B9EFF0A793C56A8650EC4CC2 - -55E4A001356BF728103F59890540DB9B3F2CACF788495F63BAF1D36B4FE10B86287F213695E48D - -5BE20EE7025222C8AEE4F5A17D7633232460621F7F395A225D994AFF8D06C8351FC83F0C7FBFEE - -32352C1A3E35651D219713019CBFF78EBC3B14C5C3E25695BC44582008FC053F6E7FA8359E8554 - -A7C4EA90632259302ECFB9B5F1F9721A37EDE9B6ACE78BD7C68C73A960346D608CFF7152681EDA - -81656541AD4EF64B4B88FBE98106AFF6F2051A871F7AAC5337A8AA2A16F59B10447EADD084FB03 - -C36E5F0A4781E4D83402944714F176FC9420E21EF3A28FE65CC9CACAE128401BAB4E3322D6301A - -18FEC595C05BBF5C44C65D027FC3698F66A07A567937123D59F16B9290B70B838FBD4C6D12C460 - -69309881DDE50DE0224F10231A0FBBC19F57E7B6B288622F40676D53F4DAE27C6E30DD31759A32 - -EC0315875DB779486C9B4F7336516C52C537F6F25950DC671AF3C749E2357A48E99D032DAC9F90 - -25B162D672A01908842B28C2A9E8FB13BC5411CB1375A3B25871E7737C2B1FEE4D43949DB1567D - -E2AAE44C1505871690062358088294E4929D552847A6A94A075B7D0B89D7DBA645D26B86F7F7F6 - -40D7AE4B47956DD5AA054DE194A5756B95122F182D1D02504BEDBEE0ACEDAFCA0DAD84092582FA - -0603F025240375B11E8C252A5417FA1AA4C96DD1C4A369C2E594B2089A3EFB9D936224DE25A421 - -588718E6177C8E320679EA1C639ABD3E4BB653DC17AEE5264E991BFF63769A7C07EEF6B0E6C1A7 - -371B889B8BDD14DA43EEB252FCD82555752C25DDE92DEA11E3100C8BBB0E2D8D38C29E7ED42338 - -9811C21E4BD162FD75AB1A0E5A579352CFDE9CC8FCD3A4CC2B5C4D84CB5A6E2E52A52A3D8EF445 - -37C6F812694DA5119CE9B78A2C5F12454B1BA8AD6BE5D2088906C3A11A4CA80B2120434E92B526 - -173D07C530EAFF61A2712F7BCE3618197B8B6175CEAE93186B7308CAA90BD20054D9F48D13B40F - -2CB81A08D202195F3B03EB7E14A17F5415E44C981D47E4CEBD46FC2CE82B3D0F4EBD242985AE51 - -0BB6F3C1A702E86ECD278CA322575D75ECD86898F013499D0A7FC1FC127A6A69463BC44097D47E - -8ABC50ED36E4EFECB6E5553C35CB6CF6BB4779CF22F5F6970F15F54159FE5BAD7D57B5DD5B5BA2 - -B2E25069EE77B06977BEFF18D21594E6DDDE2D44C7DF12A80121FB9A23BFA16F4A7EC7AC2B2AA6 - -DBC7515E18CE39BABC04ACB1CB8C0A01A3AF169181C47AACAA0F0D803EE4C40FF0C0FA10963102 - -330F0BA056DEEA02A240568D8DFC3F01DBC42DA2AAD17CC9A5F1DF12DA33BF5CAF8B22BD521DE2 - -EA2B831135417E80412B244644B0E6DA40DD3E5C2A283A75950F686167719EA69AE1DBB00D7356 - -FAF3310D24066D4941EF70686DC859CD533BEAFE9D5BB4E470F38B09104FD6B63A1BC61CFB27B6 - -710EF092DEAC78313249BF66608DB507F08D8B9CB55BBEE1CAF79C83D616648163D56DF637E506 - -D06CB45CB70CDAB90CD87FED934E0AEADC8C56B70C687B44C30B84376A02C04870E0690F7F43C9 - -6536324092C7F4CF7B64990EA4C5DB456FDD7346FCF55121A5265A4B3169FD5D8ADC14A175F75E - -F8E86DAF70FC4F1E7A03181ADC6F0F9CDE42DD2B4A853E81E9A40E17AE8B0B95FC60E635C7B460 - -477B582E7F45B00D78A4703414A5AB2A33456DAB7247513CACC1370A02D3E0B1BBDF5991385FA2 - -9E03F7CA21DC18DAF612FCAFA8E35DB3663850181E046954938715B24C4F3F569442B5814F22BE - -89C60D912408D5051FAB8C57722FF6942D045A2D62B2A696867DEF3915EE1973561E8ED1654B49 - -3E99B2775605066B36BD156A1347E06B30DB129214BEBFEED880C0B58290C5F6295D243EC46C6E - -122F6E2EEF4C7DB5AD9EFA493CFB01173C8C92A76A5F900DF0203032C490208EE5E8C0088704A6 - -BC1D69B4CD2FE122FD8DE579801B110C76FD8FAC88C24558B127BB90743DDE71FDE97B1DAC7B96 - -4C4E5DD8EAD9F0E99D451ED92B4DDDF8B76643727F8D011F3E527A16A703CD8A597F18685AE00C - -D44944A77B69D092B3A61EC940DD8F64C1850AF7C8D17B690239707000BA1A0C0C1D23648838A2 - -1C0BFF9240EBA6DB5832214ACC8CF022BAD305F6594A9C5B7FBFC3881958A170B0267870E4B831 - -F68951BB9952F79107BCDF24BA4B41EE2FC31C07E4A4A7340B36B1CD121789D633AA958563B80F - -A6CB56F11EAC5B468839E95666A96B7DF9D3EB16F56D69BD3DD6DC6D34458B3D56D55EE9BB2E52 - -EB357887DB2B8C12D064EF31E2B53EC48A4964FEF00DDF0CB26E6B2FFA5F5866649BC3415C0E65 - -10C09814158C8B391B74A3D7A07EF7385193BCBAAF26ED086191FFB8328BF3511B4CD54C636877 - -A916866174DF0260801639B3024B9C965116B2A68DEC8E171A620AB471F673391A31B081665F27 - -826E9AC2A33DCB0565134E407C618715E146CECFD58EAF40D1575A805DF12B71AC3D3BBA4913CA - -D84185BB7FDB6A2EDC904EC0FE8D95255FC50174A506DF939FC0FE8C6DD4D27566C32569EA2339 - -583D4FAA82E00FF9DB8D3235D00AC3C1AC58306D2E02D65D54DEE6DF6ECF33726E2444F60DBFA3 - -DFF4F6FD4AE88376B507E721C9E9FE030D77B95AB29C6DB703FA45515A424B212ACF9D658D848D - -120883DEEE78345A35679BF82D7C26297259D8697A0C221E26C6EABF3A727D951221CEE74DFDF1 - -5A33360DEA36DD0063515B5DD17C204E0F4D4935FD0BBEE775DBFFAE232AA018A04A5E59EC63DD - -DD0B8B11450FFF9DA0D4894778877E0C63C82489D3F7CF67B61EE08A61130FB77E15B50B7E87A4 - -2F6F837D50FA3665528DF916B187B11955B0424A7603F1F6DC1E2BF41EAC6E98E9F0F5F44580A0 - -AB8C649EDD4F960F4759CBC2995DB0C0E07A8F773EF9F58EA54429779B7D085FB46A519CA89BCB - -0340AF843ECB37A8208B7736AC27481172728C360DB17CFE81E3635794CA918C2BBD6654D2D4B7 - -4006053EE17D1DD7EFB8EA882CD055BB5FC9BAAAEE63089A6F20BF88ED9EA643AC27DCE9BC1F1A - -B9F15B40172C7E4C0602D13D13216CF0F2D57E51B751AFCF8160835FD4E3D21A58898401425961 - -69271E2DC95D72E6F075F413C96DB7DD17B3FF2608809D0877E212A7D1D17E74CB4FF48B65645C - -B8126D05AEBBF1A6EDC704787CCF57F9B7CACD75F748A5A6A1C4EC863CEEB2BB1D9A4A207B4E0B - -901060D0E3A9879970AE98464D8D67F9B4D7C6E582F030B8D8D62E15FDDBBA25CCA8A9EFBC02EF - -C304CAEE902670819463DCB0414B3D185AA6DD370B81CA9145C75AD4F7A47411F2BD0CA1507488 - -117868458C0802010078CB4EC2BE0308C9DC22AEF5B2E9294EC00BB5568916164DA18CE69D170F - -A3641D29D0DFD08B5AF6E1F1951CD9257C0699B3FC1B6CC19422F433CEBCC7CC1E0D30CCA1C6F2 - -D3FFB1384F5A1D32681A5DDF49933629F7B044E45DD748DE8509257E688F1CB637FB766269CBFE - -E206B2C1560CC3A84470CDCE8FA0C74274DF5094D413D5A51D1ABDFAA66D9C9DD627D72C29A9D2 - -B0A3552789774110481FF3F7E0CB583C7AC5634F0922C53FD81601497E96B81008D9C5B49F4ED4 - -01FC2CDC9744C2E31941BB1DA34F6F6CB63DC2C23A4BE17D3D13D413188A2AF77143021D376E61 - -7EB1B2D30CF5A1C2C76EEDEBEB710C0C4158958C3D2BA289895F79E3DD45B030D90B12640961B5 - -030D1FFC621B54A8693493B5FBDD1905132ED26F9799370A67B0D90F7F9DFB080E141F643936CF - -DA810EE85201704A15B92C4419D65C0BD1ADAC4F157958D52B528A84BCC69F57A25123A04D2202 - -319067B8B8E80FEA80DDBA9FC075AEDC480E8209111F9444742A8707F576A7C7A1DDB894A33813 - -C2D6FFA7B08E2DDC1309EE20B1D80BC387F9DF1BB786BF6E82640D775F084ABCB86C07DF15413A - -0475F26FF62960ADD1B94F20FFB2A908AAE2C79AC4EC3899425855D80262B2758E76A4488D3A47 - -0058CE7BBBE7C991183499EBD2C550C2918EDAB5BD9D43273C44DD192024F73468BA0EAD2825D4 - -99EFF4A9B1C2FC64AE2222A17116C1F8CD61622B08BD573036C48956C3513A6A3B9F066915378C - -2A41B3163689952847ADB7F624303785E9F61ADD7C2E647D2A171A5A0471E76C9C6DE4909B015E - -3BDFC9836DB884492F5C9CD77F5E29DBBC80F5B836684E82900FACC7A2CC1D20E6FEE60BEEAE93 - -DB98DE238B66D13BDC858590654F960FD6AAA779F00DB7736C7F18808FFC167AE32421FB975E94 - -7FC49A2320DDCC4B6841F54EA228A58383D420A25C21E85C99664C8BB20AAC66390BA46B49BA7C - -6834E8F18CB31FDB92FCACF11FF1A9C53F06D6992B06BF0C01DA2082E6EA705224841A7C6AD02B - -015C2AAD19C8BBF1AE2506B08D57CFBC0B291402BDA5C95693AD65902F96B910D465CB935CCAFA - -D731C9F30B40EC59AF12446C1800C80AC60F4D4CE68B8044B5725727B3089ABBC6E9631A4BA5F6 - -589891A2085C74E31A4A2C4F057380016F5083AFAB6D089E4EDA177045BFDF1682E848BEEF2D1A - -FD4F8F9DF6831FCA22CD7C4A351CFE770635DA22FD11B3326FF9AA79DE76EAFE99B699FF1C73C7 - -12EBFFC1D84B0142914E1DFE990605E73CEE7D0E88B0498604C17966FF23C922FE70C522036200 - -F5BEA081CDF8BCA8559CB22F108DB527AB6ABAE1B452967E50F712CCCBD11250C55825741F4767 - -043411EF4D02A1B26E633CBB09E0DC3E68FEA33A257C26BC022769F71F2667776A57887DDC05B0 - -69C1424F908D8AF85968055739D0E766DA997B2E5C53B9022CFF01B004EB0FDD59BD59A030E6C8 - -291EE9D771DABBD55EF78B6F2C46B77A7DAF429037B45535865C7F2147D604491D39647E4FCCA1 - -B5668B1006B0C8F6214D7E5EB5519BE843927C3BE4C3C236F102A1A1EE8B82E5DF34BC8FFDACDB - -79B2DB91A52FEE4892F7F2452B903DD6361ECBAB07138F356959B832819C88ABE9A6B999BADA2E - -1A3C32B04F731E75C727472E231B1BD79E040BDB72175327250905570FCD9D9D71D627D7914AD4 - -FA536AA6461D5F512E2E1EB7475AF6A83C10930568DF48BF2794490B1FD7269473E8E56DB81219 - -5127ED78E500ABCA9D2603EB463248B1B3F6EE7E0C870083849AC7D83B848E819175C4075BDF51 - -40901761E951EAD19DBE2AB491AD9EB5D124A20CBABBECF05FAC7AD608A1ACBCE7FD1C8848E614 - -FC989A31D0010EC3A11CD6797EEE941D0546E0A594AAD95738EA0BD0BD7F55CDC0BF8DA082C0E8 - -CEF349971D13CCE9246B74B6C552479B1E51C7B309AC025897E910B00746C1307BE2C531217E0E - -76CE8A47072D08CDA116B65E7568154BBD2D67F5723C187FD46E541977ABBA662BB08079D93BED - -78E924C2482B39861FBE1AD338DDF1364736B6030DB2FFF1E8965DD7631276D516A96DDFFC89DD - -2D3480422AFB31E9AB81EF1557AC5C723051096C41EA7D40BC7A1A2902E782DF8872DE2F27CC30 - -0C645D4EF886716F2999815C1AF6372C359BF84C209C42B939185C6CBE14510B9DC029970BFDAD - -BFC7E2F4FB0F5060D69CFB0FF71026949BCC15FC179A4DC9BCA64CC4407B694EDBC54720323E4A - -271AD388529B07CF23B21886DE7D4CE721BDD11C18C8CD3D1D5261954840E2DEF872F0C711CBAE - -5155957BD2E9C4F927B7E8FC19B04608FD411C1301F46092A62F3F0A525436D9918AD9C47A7671 - -F40AA31896C6DE827DC12FB7E7C7B5A9EAF931BEBF1A4AA4F28F9287C16AB78085A44C56338863 - -92A9360C188383E33FF598CBCE34703AA4DB85B61B4B79D5387D5576128B22947976617B66FA9E - -C3D80E8A0EFE2570FB460060BDFBFD81FFA8A8986F56D26652AB29AD6EB2A4881FC48B023122C9 - -22DAFA65337110C76490CE3F41BA4AA05F63C6FCB31AA5C399ED01FFF3948AB690BF01A3A1981C - -B120DD5BD1C45D2C57297689AEE480685BF23FEDBF665178A1BB54F9A5DA23F72314EC9FD0C697 - -7CC96078461E48625C87A29D0D144E27A1D4D76E18024D0F6E90DBCEC4A13B7DB75A8E95E715DF - -3D73007071FB30FEE9F552D968BEA9B8FB822CCD6DD3383CA9A1E6FE8088C0DCEA9A5D38C0418E - -8868115A2BFE6D055580AFEFDF70D512C8488C3C1389F26ADFC767330451F77D20627F9563E919 - -E5182ED2C8E07DA540EE2C6925D1E5C6AE5D10FAA84DFFE90AD8B882FDD431DDFE36B513614543 - -18FB47C39FACA4D661785920A8BBEBBD72DBBCAAC1B66C944AEDA018BFF8F15CD5917BE4A1C799 - -D7F96C69B5B79F11AA36ACFB9A39639D7506E18800A8612D1D2C918F3CD4B977C1FCF1771918CA - -7CE4E550A24DC0F9A45971B27AF2D68A8641A4A209B4FD72857710BE6066B5DAB23146AC868043 - -A04E8152C51CB0FF7DFE41576CFB42998E63F793A33F1B61280BB61597C0E3B176DED299919E72 - -F6F3FA4C138D20E40B91988EF9DFAF307064C9C307C9F4F2E9AA4D52154E7BDD6196987C6F6E88 - -0543802347427FAD9EAF1C879928A5404DF240E865383DC007581DC29B28FC18F1E6BA840CB19F - -E639C67070A110B07DB6519A5A0729A7DE82A3CDDB03765E1A7C817EC62225A7D2850101E07D22 - -9C7CBCE0B46A2B335CA90372DADCEE984BD75B0CEF13F1CF7237E15925C7B54B261236E2620874 - -ACEFB5978C00E066A03A57816A73D8F559FBE006A944E0F026D8CCF319866693B4A62FF4810A2F - -D29AC35F429BA0438A7472DA76510937F799B42D962F3F196E15B2335996A92304C4BDDF7127EA - -2F09FB7C779525029B0EC86F86C7E415B81D5042714FDFBD2457FDBD5AC6C1D4382D593586E2E2 - -AE9660529DD0FF72D2C77A9E4B76689F8EE5C9BA72D300271B8CB2BBB36F10F57309344C3114D2 - -31762FC68BAA5C482B338F847E4EF63F50A9A71BBDD8214C67A9FDCD1CDE72CF070376D80B0BFC - -BEFBA9C930942D35E84CA28EA2857ADBA216D89775E45FFB47AC29B41138CA03BD79122A78B991 - -431714404223B0D01EE8F13800C8346AFFFD8631D4CB1A6AF4653A68819FC2545591D8CBA85E3E - -620C816F89B8AA543923139859E0DCF0830C02BEA236E6AC40069CD4BCCED8885CDA68DBDB9071 - -CE61C61718FE318090B0C2D6CD1058CF9F9A06B81D114215F15D3411327BD48AA846F18E33D9AD - -1425CA8487AFB33BF900B4AB8D9DAE545A4EF203F4844F7001C04EB3E5BBF668827A2D12BE4209 - -31CDE4E81A3AE0501EE4E8E7DA116DB6441152FF89F045150D3EE7929D88E345102EA7F20E714A - -0405B415972B1650D5C9202066C813703D202469FD0ED3483875D2CD955E75A892991E446F1418 - -5558431A076FF440F40CB59D0A9EE40687AEE1CC7336B9D7B9ABF172E4DC863F1591D4D24290AA - -8580AF3A3ED5B7E79D8FF6DAB6811B1027FDA887469877304EF1801E8186AF988D0CB892EFF7F0 - -6A548FF6D5A5A382FFC1A338CFD62DEC1F389A01E26D0F0526AB2B15A7252F1EB03C188D0FE73B - -6F4524B4F437840704040AAEA38154526039EFDB651313EFEF1682FD844D6B8126844FD6A19587 - -A134552833F7AA7E3681EEFFC2589677A4363E8E95469F3C6656E77CF69572D3408E9B6D8436F3 - -CDB926A3A57EA54276050C4B3CD8964678667AC0785C9E900991117627D435FF038F799DE089E6 - -DF28E2A40980D7F7256FAA2928EBA12A8D6FDD80551B0CF3AA442D840A11C951B444E519C19F2F - -D0F1DE472FAC0E2EA0BA899A3E70313D28B48A6AC362F9C7EA5D5ACF5D04376DE6C88436B760FE - -8BF694ECDD6C366AC31D34469000FBF31BAE9C14FB2030F15A2965B917021780EC469F00B0828B - -E2FB98E545B2E430921B855036CCFEC6EC9B4FF0EBB69A91495383154AB84F331A3213BDD95158 - -20BEDEFF4975E076AA8BD9A4899B5BE7ADB271C17823B18488D7B387B1AFC7106C87D219DDF96A - -E866F1B06760765BB2AFDDD952FE0BCDBB6318345F8DAD1A782AA536F7148ADC2D3BF5EF6C6A62 - -9DAC5A49BF18F9F21E9AD7DEBD237C229286FE2370560139569338D455D8D3A913D329E8072E63 - -A07660176FBEFEB9D88FC1C2D9D76C51CD30781E4EE59F8BF4F436D9AA13A39CED387CB57324D7 - -26ABDAEB30DB1B1E14769F5F4DC72ADC8BD757906FC443BF6DFDDDF2CDA866402363DFD9BE8B88 - -A68DA3D0E0B3BAA404A97F551A0B6C90D349FB9F17DE955FF5FCF807C3889FE10DCA11AC73E855 - -B7D92A26E64BE1971AB93582F7F53F1C7B1FE401D7F0EB0EB121266CFF5E23B3332D8B4102A4CE - -F30634C7107FF9780A8BFEFEB13FE5EA78D8E5C9E2E88E22353D24FC45889CA12FFA14D370900F - -257B14E761D49C74FC19B97412120E4BE4EAD094398E92BF1DEF4D34E1DC258A85BC623547B871 - -04FBB02F402204024A66BF66EDA4DB5F667FDFD7C0CB6FFD799288DB110EA1FE7D7C3CF3A130B4 - -29D2450D87507E68C68F2F130A3414B4478AFB1ED6BD55AF66EC53E627B0F27649D5C5AA59A791 - -92DE139AAC89A378F0DA22A328BAED591D66035B958B33971B67D736B119732A5244562CE932AD - -36ED9C9BF9A0756DD63E909527114D58061879508B9C043A7018AC3F1BCFD070C7C6DB879CBC5F - -305BCB24C16F43D8E9B77B5D2A0D3737536E645049A64ED555C99909AF80F60B2F2307EC58EF91 - -479E1C447A57EFA5AD0652F78F952E6508A768A88F8DDEC8549865B9266B54D03AFB1929F71DD5 - -177D05DBDB4553A8C3EBA11F284D9F6C8A235372F75C9C06A1359733978AE5F9653F015741E648 - -26EB92F4AE59D11405A59954475D559ACB8D098CD4C026A95D678AFD85A9F2031F6D242A285486 - -1385CD2BED55B6E54261AD3A95C6AB4626FBC5D6C4F6A60992976D406FEECDB792211CA133C433 - -28F8D43FAFAB9A4489DD1E1E8884B4BA0B258660FB8B8BEA218DE0A7D9E5DCEAE8BA1FFA236268 - -7AE463303E16C6DBAD3E2FBDC0C904B83DBA9134B3C72EC1FCF6855C08E973E00BA8D37E864EF2 - -0B6748A6625C854116C3E32D5B24F584963D5B492F6666A284D16A2F3E32E5D7792DCC1E5605B4 - -CDBE4E0D62DFE84B351B24A509A5DC9D1C2132B81C682096DF4ED7CE6A3D6DC517C6FEE8103DA7 - -3B5D841D2B4BBAADCD7D1316EAC6809F76B99FE16EA92272782AE3930F1A0052078D98AA17367E - -7041C383C730EE085D6089164AADC4637D3CC6A61F292E581DB0D37B7D1214A8F12852FFB636D7 - -2F2FD9E6AB2AE1F967E2A750AC0AD364E64207669A2BAEBD191E494D1B087448F6DBD8B2293A27 - -C115E34DEEF3DF79AE1AB33201E0AD653ACA72CC06AD15575314DE4B76009F761B8A1C6788A672 - -2D20DE46026772117F42171B5D09E5414A54EA45D760DD3FD47FB5458A78E5FFC83B59AEE4F8C2 - -4106E0D76B719F7C1295DCBC71AD46DEF7E2472BE922047D8B633D386102BCBA4964A90A5247C0 - -D24CCA298D38A3C513D260EE4821B58391984253385BC61429658E328D86DC61B5FE047705C8DE - -C93170F92376BB4CE94B4C92B8CE638FEC140832DFD8583430EE39137342CA0F529737A8F9E184 - -264AE2A1E172377E931C6A8C0141D36F6446011A9715D4B6BBE1DDCA53E3AC72A71F60ED86EC6C - -FDA227E05534991E76E9AA48522EA4261F4A5670276C8048A4AB9500719D92F04080D318B156FF - -FC216BC1BE00C8E3160752BF5B029BAA85780C51C4CA162C7840E74507D433CC9D71C62B4CAE14 - -A3AB4ADB2729C7538B2ECBEC4E69A1F77903BBC68CFED0BE0DEE9C690E7CE74B5BB9C27A5F115D - -B17015C39A8E60435E00056879745A41552F95F7A540D535A02F29061AE5D30DDEB8D30D9FC2BE - -B04CD49DFD2363C4C7FE8384E90F98BA8C26381D9D3428029CBB9933AB471CEF18F3F8EE585309 - -29731EB100908BBC1F074F399AA39CCF5D12DA38CA38F464C958887C155A4A77A002F91090DDA2 - -00B815AD1E02C03F44844628BD703E2E0D6AB53C819373A94ADFFFA6579160E69AD0F1EC130930 - -22F0B4D2F710CFB0F734B01F625E407F9F7E0F143131C1713D770144664EA989BE0B9ECC3B9FB1 - -45C1043F02B481D8CABCF21DC134553FC4C1D4353E7180EA4CB1FCEABEF74D6FE5BBEAC7F30B08 - -1D88EB0A0626622A557DF6E860E54537A8FE0D2ED0B974B994406AE52D47E94FB8E29EF6B02DD9 - -4A37DC770DA855A59B74BAAE1685BA3EAE24FEF55B06A6036A3D4F5109F1ED4B59AA6218629C1F - -455145479611A2B9FA83A7AB1C8A80C5BAEDE37E7BE195C68E36FD18E20BEC787BB13B8E1C9806 - -747D85C64A42181637E86CA28FF135CED22E4D4535CDE74E2AD4CA93F9A30E7940F28DB59AC1A4 - -1F8CA12CB965E0BB5C45A5F1D0A5DBCDA210433733384A75CBA8EB93BCFF05AEE3444587FF31CF - -6495FF8CAB4CECA16FEB0C81EB48571D30040A90CC422043B8EA732A4DAFE4E552374153124B4E - -B3D35C56EE5B4A146111BBC6D9630DB2C9E04D26EBDADB46139C259319C7C9A750FF2945134676 - -87DE68BAB7BA6DECA22FCAF2E5F20867A9C17AB3E3DCAC03A8DB896D2C0243E95652529875518C - -CE050A49DE34F59F3A3422C3C6E4A57FB343A0458858C6B676F920857EABD9941924C5710C6768 - -C5A0081FB8F47E9BC9ECB701BF097F033C4AAC3E18B02EF9222867D25FDA8FD291F930D163F344 - -5EE38B44FADC0E830F93560E1BA52EB9CE9B375E9F0DFD60627BFC8368BC0B7C4C443D8D91907E - -9FDCD0666EE6A9D9642809314652EFD4E5769A164B50DFF8486F208903CE4F5176C86C3642DB60 - -AC3FA2DE9C104E36BB76D56DA593FB796036C17A04A65F2BE8BB9B37055DCD6F79E18AB00BDCBA - -AAF3FA95C49A84A69EF4C11D60658C35205D97D3AC3003B6592EE366A16AA0D1F9D32E9EEB5B88 - -08AFD6123CF756C524E15C7E5DD0FE7CFEA135BE1BE85201EFEDF61F046C652A48D435A2F6024E - -A310E4FD3CBEE0A9C6B1CD02B1F3A1C8C973C5F281C86194501BD03EB5C3E2A30C9EBB8E4EFB16 - -63EEDC0969C48C6724A5C126E05B9579C0310869DD1EC88A7BF8562EED99C57C115419E6599BA5 - -8323324867E2BD6E972632380D2D271E332C52E1A87BB45C4F66C9F83693E6A9A25BC0B1BB7570 - -18FEE261F8D4529D93F23289C0B75CFB0BB6A55545712C945707FBC29CBB70A4C9C3976C1DD0F6 - -171E579A75FBAB3821A2C5DE45D8C17EA16FA4BE1069D7549E57E5922BFA18286A1BAAD644161A - -02AB843CD5626028C3E6A52BD3CDC7599627A49AD4880EA5AB56936656A87BADB828C6C9200E28 - -270D8041269ED78A655718099F099E9F17FE27A71DF161D4F1606090F192E561ACA5F32B827854 - -2611632F21CCEB3225334427D9EAF9AD3D9696AB3B0596598D2DA1912EADD2A7D0859AB26D6CFA - -2276B79C826353CAA0EA34F690D6396768EFA8BD8A65CAB43232723324CD05FC517F317D8C5E0C - -809FFE78C393F7E8BD88141D1AFAE885E02BB0203C7D726310F6EDDDE8B38C1FFFF342D4E81EFC - -1CC68D072F68A0FAC14BF5A90EB7F07604479489CC57209796969D62C92134B59ADF264EB1B158 - -56AF2B32CC769ACA670351EAD8D3E59117E613A4FD5845C38AA0AD375196F2628920F299B94EC2 - -363847CA4707A9506C8DE4EA9B0C38DA88567FCED40BC94E7465C39D3F627EF70429548C38C2E1 - -F007005DFE7BAA7701B183A2CFDEB36CF84091242A3CDD8C5947513BCF7FAA462A92F1E84B3196 - -E3CFB019320485FED7DB231ACBC56C0EEFCF344525F0DE150AA8933A4D1AEFC4C2699C4B1E5FBC - -15AA3A894023FD3F0C75D797E710FC1B41C48BAC6F5AA0BB2CB178B705C103B68F7E8436C4DD02 - -F054C2B4B6C38736D99C5BD8C57AFAE676FC8B4F078DB83EE6FEA0C97BD434061BF572F6615B37 - -419EF5250E32C4F0F48EE779E500E7E3C4D2AFF699A4077473A29CE8C2A2FB92646107576F42E4 - -8DE1233ABA4720564DE68990425D6B4990FD198243277457A42693457CC7AAFB358184F6AAA4FA - -1FEBC93C5733812A1B308DA509F473760D1F2E846F8EB2D52FD55CB220F4C198204BD21EA2DF0B - -31434616F86D529DE5CBCAC53FDB7EEA6972691E9B8981521087C25F1574576BF799569E3699EB - -74618DDFCD5F01E6BAB0FF513EC7E2B3003006D96E4095EF5009044A5F1C3B006AEB4D15ECDE5D - -53C1C76D35D87AF201BB47C94DAB1BCC182C4F48747AA7E1ED991C4B62D9F9D08D4283EED5D288 - -7EE21B7DE249F731509FB6B9089543F4791C41F3BC0EEFA197923DA86308DEC8D632BE0221294C - -A4AED2F61C297D167045E5E5A3012E223D6C348899712C550638351F12FEB3D67368959EAA8B00 - -90996E39EDDC5B3B1684E2DF4DFCDBC89A6A6F9B0AFCCB2115217316A48812C168B243734B57B9 - -CBD7F05A1CCE9E325F0FBDA791EAE7E666D1FD7F2D5F085165D2BB10387513ACF9A900F84934CE - -93A66CD1BED3F990714AD938BA8572A71E5B2557C294C1D1A20F27E51B355FB37112345DC33707 - -73FE750D5C2330781E0A05636DF0F283046B973D1B124D92A21A3E0ACEA879849700D5901093F2 - -7B3F90460D82194CDB01A2CF38FAEF964374EB11D0E150A2297D8CA4A5A5C55BEA93B00ECC919E - -7246C289404CAD3466EF6BF2810CF1EF740D285D3302B5B3363A607491871FCD181E8CED5C0C30 - -19FA33F165CD9630D130917C2A246F2D5003657DBB2FA8A7E3FA840482CF21E574AB74B9EB5027 - -387DA40FB3EBBA1894297CD356E20ACF7D956A3E142248A5899FE940A25BD5C812C0E8DC923EFE - -27E49644938E3BD99A086AD697F0AC758390B364B52C049BB1B32376F3AEFC15CB4DB333C148BE - -9CA5C18DB38B9EB1F39F07C3C2EAE2AFB0238F687583ED7FE04F55632541AC572E0BB7C7659AA3 - -999D8CA12D6267FDB0F1CD720C174CC28EE37C78CD803B876B8168205F36687C12C0A2D35D1DE4 - -B86F4E865A741E82EEA9C8E4383AEC599D1DB85C6BF3883C3218BBC0AB643CD51B8D51A34492F0 - -CB4C1BA4781929C2784C11F84DE699B0C84C35A504C35E672E941F1D6BA54960F6C519F11028DD - -CF0E0991E18A77F772C43CE95BDEDDA9C8D85633EA60A7358E0645D4B64F751B11AE8AE27ECB17 - -CB385DE259BA1FD78EA8A55DBFECC2670DA3C0140479B61ACD99A59ADC50849C6AA787C7A9B975 - -D84E2A30529AB8FAE0995DD66BBB5C6053E3B96C567156A4696B1736C2F6E1834B8B8EE42CDB90 - -315692D6BE299D714C6E43CE13DE4282B261C5188ED6C6D875B8D308D844152BEB15A3B15A8B6A - -924DCF7285FB858973671B972AEEE6774A57526F21FC7EED805693A007B2B43694D5D30C9DA604 - -B3FA6278114DD98744698D885FF714743BBE7F81F2FBABE454BFFD74CB601AE106AAE61E099486 - -1754E4CF312A1DDC7BD0F85D854D15FDBBF296317ABB0D0B2824CECE362E2137A2F5792279EF05 - -D0FA6B7DDD4FEF69FFF97AD07FA95F3CB393C4B0DB2311596AB63974B6B761CC98407731AFF2DE - -1A522753315EDC07F72CC73BF7B55D769E024A09710F141A21BF94E9B71C8812CDD8C7F7C3AC60 - -618ECCE4AC81F7D86B75E126736A904256F5558ECE41A471E8F77B5FBD1FE2FF4CF0FE56861223 - -24C1D13CAF1576306ADCAC1927686139882609FCE3367171FBD0F017DCEDFC909B4039643C3FAE - -F5946EA31312460BAA458F5AC3A3E57E5247AA390ECA4F29EA32324F06AA3C376CB5C680DD16F3 - -8434566DC54E7D4C6D6390124BB69EF6D9AB265D1ED2C68335870B09DF57C137E603A0F8D26E77 - -A4B18B7E7225B0A92AF92C4F22D43AE053EECAEB3F8981A8ED13D504E6467D266BF7244C0A1A30 - -A59700C1EB9E18131263AF51A9460C1B753316A1BC587FAFE3B5A7EC6E86626D5FBE6BA3113FAD - -E67631B83301424CA27AFC6164414F8262E3FE28270F8ADA96AF0232FFAFE64D37F510741EAB4C - -116E09780A2C64AB82C655B1EA221EEF257C667938E34A4F956B7DD951D10D2344D228DF2B59CB - -E9AB72822ACE270789F972426D56A03686EADE28431C07B3BD73F6BE22FDF7688E3B77128CF74F - -DE98734C3390EDB78740F24452ABC545AD08057CEF1323338C0CF3F0210A9D50CF7D4591D22DC4 - -76E429B462B76E965583146684B0E2A8C6D40AC7F42D595478C94C01F9AFC8A1ADBE2D4B13E02D - -D52A19886A3978CCF3C9C9E391FD66039C5622839CC60120408839E5558136C57E4BEA2761F38A - -6D00F4951267377F369B7782C92D7BF00C6F812962F86BBDAA43DA7DF4680EE852F4EF9D82BB34 - -5BC1F8F76A9B7C09820108BFE054C80AB56B88B438489D0CC0972081255C9EFACDAA08BC81E0B7 - -E04C201A1212D597628BB82894EA711D739161E513994A67C0C63597117736CF1A9048D244E09D - -4804C10483D047433F0A69259DCF999558AFFB6739D372221E490EA8B106D0AFC78EAD9BD50E52 - -FCDACA4C0F3ED13650B73EC4F8D0C6C4B0BE299B4AB253DD4ABCD28A96F762CE45787FEFA89D7D - -F5675D0DE092FA7097198538F031A75BFA2E91A64D1206AB59C5FDBC24C80FA54CD168E19541EF - -79736FC6D00896D75C64E79D93C6658A002A91B5BAC71583518C604973652220CF1CB626DAD853 - -8C16645C699F5785A8626BF1A62FEAB57CB263881B102891B5D886B09F678AE801CBFFACA29067 - -C1126BB0136ACDDE81D07F2F9199FE439D3553A8152E9E2C31EBA2E0754BBBA72DCF525A85B08F - -FC52CAB7135E2A3C849DFBCA86FA0C2217B9CFF755542FB4C145A561696D3561B5C53F570F617F - -60CBC31A1EE0F570099C4FC2C4703E1B2AE86C72A3EF8A138EE9CCAC2814533DA20E4AB5D170D9 - -BB2A2A4FE1C14A95E18DBF3EFB0400A835EC1F50004CBDA8FFE73347027B9151C0E00111C3DB3B - -15447D000CB0E6FD0FE985AD70AE5243EC8DCCE1E5E70018087A36A725DE1A6B6EA02A9CC323CA - -943BCFC546B5FF43D3EC315817DD6593B6AC7C52035E06629509EBE7CF9B5F9B24E291C06952C8 - -CC8AF9A5FEBDF8D16B22D7BB518E1191A1E0DBA68066F1CE159C5E7609EC3AC7F4A052EBE5E027 - -07124CDF8418DB9C026563402764B44B0E8AF31F2BD60DA60E42C0B329EE32C0344D409E155FD9 - -3A6F2995F965DF6855222AB0996B185DEC4790642BA10D3B97B1028D9AE6943B7DE5F2C7A9E15A - -D670FD350CB7A63316DF50950773AFBBF7F7BFC8BC910EF3A955708830C13C931E85CF7D165DAB - -7A927810963307FCC2254AC2CC9CE5B83293AFDFB9A5DD00800AC68B431C08B2E92BB2BFB6FF55 - -6D70512CA099BF840CEE70CF163131BAFDC2D36F9089E090DC660A94F170C0ED6F5BB6EE2AD769 - -BE951B40DC1E46180B2E557289C9F13CBD9D331F208462A20C269629AF7E181B9776335CD34A9E - -AB4B1D8196899BBBE946FD56C8180C42C178536E72A131A4D087ACD38B9662CF3E0BC2C04E9384 - -8263F8D64EDC6B3C511C30EF4A782DA27E530F96AA0E1CA4D28EA1062FF4643065DDF958DD9124 - -BD975D27D6BC79EA3A1963B9930B5DC0297AB9E3F02745BCFEBF83BB9DAB46E2D3423DEFBF0527 - -7013D6FCD08EAA5407CCEE0F91B8D6B4DC89E3A467759B81C81379952E3621D57E86B79605EC10 - -59A9D46BB301EBBECCCB615DF91D7A0A92B17EC4C8716C4F1E67DE7D069F7CA1E4566F6D9DB96A - -E3BAABFCB6E2DF6005182B7BBBA7F96F99315CA76E12497BB76B2C94B85543F7F1819D3F53F2CD - -B6DABCC5C8E7B80995DCD3D04A5F47EF30D725EB6158A7A32EC17D4970A1159455B23075774DBA - -95CF0DF8F15FCB4AADE80C8D0C92762597461A7B04384AC2556486B3A521B44718911083B06224 - -3BD1D54A4C8CAB43D207FA4661AAC7CF4A0A421C01111A02AEAA3A98EAF39B15298EB75E16C3F6 - -7BE08948F016C922EF7489B3369817780C7FBA1712B8F1260EFE02F0A7F112DD0E85C62026CF63 - -C30633F1C55843AB7EBCC38F38E2517E35D257D7220BFF5BE2C6CCE34BB73EC225CAD182E702B3 - -C03740D558DFCBC5FCED3DB10AEC7AF1E6AE84B54D5D4CA79F56DD690DAFC5AE7F9383EC2232D3 - -4BBD2B125CB78E2B2012712B3C51849867665C98CA25F3E6B9E02EC89B5B376D7905F7302CD6E2 - -8C33470C0B343160BF0F1B3A9CA0A47B6065B6537AFEBC1CBCEF795083CBC98CEAF9A60D9CEF8E - -E6F487CECD88484BB4F149807CC4B896F511C2C530EF292AA50A9D5E55C935209300AE63A15A7D - -7FDD1179B2F57525B70F6EF40036BD66B6C26A998077D5BB50BBC122B806D45AC248B52CAA6E4F - -B9E039E30BEB78CDADDE810534751F7A32356A51065CDE5424750CEA579D034A6C6CBCBA2B2638 - -89B767879DAAA9923F0FA769ADB474373CF8EAEE7CB465F859DFE1E70085F5FC946C31354F1E24 - -4F31C7E9B5F7903D92D73886ACAE7666F2CDD1CE3AAF67079DC4E919119230DA6B369AADDF240C - -E90DBCD8AB3972CE09E5710B95963C6A62EE56E09164EFA77ACA7E0EC5FCEF4D37A2DBC54A9783 - -DB9E21045860D59321743522C7BDD14F073DD55B613F7F15065EF97456D1C930E6B8FB5D9EC44B - -1110AC075443459EF10C48EF8E4FAC4493BE949B75ED0EBBCCB03E091144C18F1EA0239F90FD71 - -E24B2C06AF13BBDDCD58CEE4C5A2926C873099D187219D067FE727B61C1859716C3DF07CF14CE5 - -7D6A7925E329840D68F0AD61DB3FEF91B20DA41EB6F28352A9C49F7A141C6F43056A6CFC254E4A - -47A3F967AF9714F52459C5039CE105795612155576BE080701A77F0026FDDB2DA5B7F82D1CAC32 - -C4EF60268870566A6C3CCB2FCCF0E11AB60FD644DACA696895FFA2CF72270C190F482EAE5753B5 - -BFCD1AD6E2E8B10535DA012954D085C9A14DE998985E08F17446D8159DF61E0CDA6435147D4B6D - -8A2D2B115F49D2E10ADDD4EB66CA42161A5E9005A736D954244AB3D6520741CF1E3AC63930F40B - -3048F7801E18AFE557DFBF50C6E2C10D4F285F05B2C2C574D327C43A91501E6ACA45048C0DBCCE - -E966C28ADE74E461BFF1CF584F406E32BA473E0742B4329A76663D92B680E80A4BAECACCA837A1 - -8C98D88F12039D80E6A8B7B0B206BFF62B073AB5961BEE45DAADC5493193780DA81792BF4E76B0 - -A5542E5C973919D0EE1DA1DE5A5FA269862BB0D4694652849B612681CDCC7505CAC95B8FD72E26 - -51B7E4C955608060FD1B5E4F8AB8ABCA6809FFE151203A5CA905849F629BDDD14899A9BBE3B175 - -8AFDBFBD82ECA5B35F2C2B35D5C267E82E009CDDC6BE35E99E7918A69F28D1B7738B93916FB7BE - -CACB82727E263453F41D1CAE5F38B6C3709F00DE49573135553DEF7699FA6F96416AD567D971B3 - -1893714A09B5B356D44783393FA1DF7EC6FC33FE5018454EBBD5B2ACF6AA6080565FCE674F3DA1 - -DBD77DABF0DC6B34E1949BA2C010C5481009DA4337F7383D269DED79711A08E787228E09F0C3DE - -98C0EF82715C4FABFBC760775BFD1CEC7CCC8163331341A7D08209D3EDE45D78AB2A05D5726E2B - -D669043E02AF274385E1613F6A42E7E9B94B7662A5904C2669C827272ABC96ABE376DF7094ED2C - -21EC501CC30E631B2CD3B0F4BAB8C3CF2025130A99B93C704DF2F015A46874B5BCC8E65619FA50 - -0D1AE2BCBD4C27F92447CD9E423EC5B67E35DF04CE30ACD6628A13FA20C14B518DD0301D3BEADA - -0A9C14B8DCB278170C97E107B4BADBA1B25B17F268F8B52B89575627478E28EF59F2D856C8CAA6 - -0376C53E95BA854FC059EA938575276CE4716B7A19CD980998AAA79EC8ED57D56EE2EA80D2AB7C - -9B18100DA2A7EFA70ED40A32AB292129D897ADCD1CEBF6B30BB768ACABACC480AD6BF1E701E332 - -B1A9746CEDDD127441C695C3A424A6DD84BF684A90B027B68EFBDEC98AA5B9CD97FAFAAAFC195D - -DC5468876B28F56E2F3AAB74D97366441B28CBAC0D328EB8FD98DF06E9980E21CA7F62345F00D3 - -8CA82A1CBFE954CF8C5C77017A5E5CB6ECED90222B5B15D5D7310B3E24A98A64644EEAE0B0CB22 - -BDC7FCC983CA94104C3AFAE71A75A3510CED1C210379E289C721BD4EFF82673565275826A41EA5 - -3008BD6C1882E9C82346DA91E8DDBF092E78BFC009A0BCB0097E977881BF3C81BB6DE2784AFEF9 - -BB0FE52CA91CB1EBBF01024B1EF941144229B0127599284FBF6EA7809BF36FABACFABE3FBA41A6 - -CCDEEA1FF6656805CD945439E36F771DBF56F85AC6C9759FD7741FCA38CC362811962882428A9A - -29F9E788312B6751E4CC6AF15CB517E8F17A320BA4335D4C869C76FCAE7BDE59334C72B578B055 - -AF5850D19199F26388B46D9E9F2940DAC3D9A43F45C5F7643CBA2D391672509102A883AADB998D - -1CBCB888D5BB71D740582F7B2BE1EDE7D6EF4A914DDF5368D547DADA2BE55971619AFE8D3A6728 - -8C8F0A7FE9EC44E4E016091F7B14F79E81A4CD8C2599F6AE776136D38222AF1F61E18BD8BD6D6D - -23191E2D3AA63217C913C8D62A0940516E70996A30473621B8A257465D1E6B2966BAD8B447FA8D - -8E2EC2BE15CFAC9637A5BE198D2EFE6D8C204CDDF85399B98CA6911C9C8ED5F248F06CC8E9C27B - -6EBCCC8B2E54C4D15CE46A6BF3812CBDD67FFE2C83370EE792FB17C63C4222FB5EA5C363C296C4 - -F9D174E62A3E8B6B7FE35BF4663E3D83D921486909441F1FDC95990C9189837094455BFAD987D9 - -220E44CBFF2E4968E3D7D1D77AFCE67966B8E9FD11E13A66DE61C5F23DD00C6C48AE0AD7DE4DEA - -0BBB2C604E443FB88448FB6FC61D8AEEBD52C4937F5D28F611A758C111D1D57CBC262DBD0BC8DF - -A11E299C28240EDA643CC06A101FC0E45A3518E34F8BEBC4964DD5A84679F1E4C0A29284FD2C9A - -87E7DC0D1F3DBF68EB177C9C1CD6781A23372D3FBE655CC4DFEAC5134DEEDCC6F330176765D791 - -D495ACEE8CB6FC15ED913A28706B538D9F97E986BC628DEEB1EFC820936E431BD5D0914C1E08AF - -D179571600350488E4342F7277F789A7BDB974A3D06DD9ACF9BC645FD11C253A92773F95CDF4AF - -911A7DD810A717617CEF422F7E2079CA35D7996D5D52A50F220E9B26A65A0A17B7DA4A864FCC2C - -DDF5CC26FE1E551A202F625941BAA8093A40E42FEFFB17D0262277AB9A9E41723ABC73817FAB73 - -A7B59E306C148E2E9865DCA0DE0A03E46EA6938B53E030694F02F1CE0F8AFF7A89FAE33C8C7EA4 - -72AC3BA8680AC06E61C60026F1C589E8381B3A54A86155156D20332FF2E5573755F0B980967BB6 - -BE86A858B6EC486862BA702AD117185081B22A0359C811CEFCE9718AC2C3512A65AC63281BC018 - -88849D996D8E1AA12002732CDEF0B8CF3911F71D905D52D9BEECECFA4A2DF8290C8A47021A6FA1 - -146FF38E6424E588B4B4E10031F60C512DF082F09B539C18D08F18A4239FA9B64848CE318B0F9C - -B9F6A28D6BF1E788C16D6A7FB9201642206044F470D2AEC35DE8562C17DD7F522AB733E796B870 - -4E05485F865355E55EEECF60E4A2B4E4CFA8E9822685C87A60562AC1459E246C7DA17F174E9E07 - -2101975144EE4F24CDE6ED9254FB8ADEB415F895D3A71C68972628B39A058803DB85F07BC492A4 - -72283DD3D27DB2359F881E1038324B38FF7C4EEF91EF1A00B741B51158199736473984D2080099 - -CE737B03325F39D77EE2D5E7BBF1301207FEB963EDD88B52EAE4920A0CB758FCDCAD0411200A46 - -48E657C26A41E7577D7E876A6A9DE16B2879A6CC6DBF8940BA4CF861579586F7AB2381F1D24404 - -90BFD3FF6747FA93F3DED4671AECDF1C40344E75BC741CA78A2079114C7A94ADC560264E79464A - -2DDBA4D4E7848A2553FDE1CB51F51F9E6F10AB1AC4AC4D2FDF5D492AB9B8B71C6834F0DC3B239B - -E38621785C63DF6038B74D7D537BCB41147EA857BBDBBA40EA5550EA85935456D4BC945C7F56EE - -D375E22086CACA75B3E199125114EE9FA656FF5E9029566A72E9BA4C2DB5B83A5CA6CF2E1368B9 - -B8B2D0B1E2ED6EE8B6EC56E3518019D92B6C062A92F77C09CA192E1E527626EEC78E553876EFAA - -0CDF14EAF92512C71FF6F00BBC63D8BC5093C0C343B927A4F233C0A1ED7961426D7B0296698F72 - -51C051E3F28231FD3021485E3D8228C86299064AB9DAD2E63E59B995A4C6FA0F453114E83232F5 - -982866D16EA1F35437C64807F8A72FA8DCDA4DC33B31840EDE22CC80F9C32F08F11683EE696204 - -457280B39A2891ACE3433CCEA80465F0C07BE27115473FBB411CCEB8E3E532E8125AEA0026CE4D - -9F5054D296974F2D0A93D2E6526E88C266A54E937097572F03B66DD7F1939A82A8F4775EAB1CB2 - -47E9DFEAE00C8A859F39103B149CA33BC6F932103736E727420201F3D38959ABAED09D9D0BA171 - -F16344A49320062D4B0C30B82434A6482E23B0455E822358C76941E2EC6A8F574755551A771786 - -07011FA2F4D0FFA7ABCA64205B4301CC8C47B1CD035947BAC00C26C1255EC01A6D90C58F760EBE - -7D7B40DB25E978CD72CDB8CCD13255D5DEB867043AC221CD32D78F60F8D9ACFC95340546DD7B7E - -A6CCFA481052C58BB41B35DD03B8D1ACC9BD8BC0A8C80CA72D9617AA6A151715263574F9665D62 - -998818D755CD50A2D92DF966C05D28EA03FB5AE5709B93498EF66EA2D96681003E9F3316200A12 - -DA96964D6B0BB42077A5306B713C46349C18EE4228EC1A9C29C10BA58218DF587BD534F08C044D - -6F09A5F103648BEF06337D3834709A69818F3D6234ACCB4A068F96048819D1D7A023A56903F894 - -D378281BFA2339FE1A7483B72BCA52F6305A74A1421162BBA1253634EB7450149DF2FE3E10C6FA - -1235C24F82DACBDAF11986D3657067ACE1A8E2DE104EB4E101B6491FBD67EC70551DA5694BD122 - -E35443DF164D0BAC413DD3DC1787AB92FDEBF0806942163B26EB3D142B03EEF3581CD3C32E53C3 - -57205AA5214D723E4CE6939A9A093329C535621AD0E903411F755E71536C7E37A63B9952A9ABE9 - -E892ACDC24716EC93661BB9F5A327AD098464D92A180475EAE5F209F0EBDFD799F7E9827F657F4 - -8D39787ABD496491C8893E1C0633E5AC2E4F75A5A960CD535F0FC96E8F4FE555795C96055E05F7 - -A05E82F5376513452591618FBB94860D90C701BC8525AF9C1967D97B853BA4ED48D095E995F77B - -140C4E1569AE44DD12AABC68801C014987F88DCF2B0191AEABCED90CAC275BEA617387D0F7A1AE - -58FCDBAB5D752D318EA1482BF580F7EAFD882B6864BF03CB2E4D59C179A0146C1BBC701F78B715 - -5F3222AD0C1E76868106DCCA0D5DB602D83CD2DC870EE6E41F5610835B8F2FE2EC730EF9DE0BBB - -FEF4308A9AA0392BF0DF1C92CDE4F4ADE95DA0D13951476559CD3B4B7DEA14DF44597A9969BEB5 - -33D87C8C19518219C64767DDFA5FACF173D64CCF96A36F962D53EE1580B823AFCF9E6E290454FD - -1C6C31C45DDE4220F04F3D85343A2B34EFEA529364D6CFDE58A5F225F7EF5076EDC22350F86176 - -60DC8F9D72E7EB826A5E83CD1B2F0DACDF0195C67D4EE726870111F1A8766D73FFC89440046421 - -958479D56FD0C78CA5EA7801EB645E593229031821AAC4664B5C814A88F58DCBD1CD44F83364C2 - -2FB9EBEEDA09F97539843F54DB7FFD4AB3216DF6AC305F5D80EC63250C33E403385AE009B5AF1F - -5D831549B2ADD5ED946A694091D140F2C024FEA22BEA365E7EF7FF6F60E5F3B3769B667D2EE5A3 - -358DD5602BCE6196CF32EB0270990FA05D9523712ABC8D8D24B5DBC77F05F5AF74C174D375061E - -A5F97DA12FD34223D84D14B547EB49B40CACE1755A4B09AAAE1AC31C5F62B57911DA81BD2C3C47 - -FADCD221D9D04C2B4947E665A2B3D2A207DCB35213374C103A910DF8505ACECB1CD8349CF17ACB - -5EA463F040ED7649C718CEC21C6C82BCA30EE6CEB79C0A6F1FDBE16BA09CFAC34F7333ED1D189C - -1C0D872FD3182F329AAE3DF72BA0A0CDBE264DAB1AA8199CF5BC15678DB215657925C69DE05327 - -102970108B4A5C67C280FD6C50F731E89672BBA79AEEDD3E623745E576452EB6C15733EC62B3C8 - -D3D56D6FA18B50A21F6F318C2C36B5178E2D7E438D6590DA1C8FCBFDE177AD48E6673E1DAD7B60 - -F4438F1AB360F2D40F1A30A0F87D7BAF53E6EE78BBF5B5A9565CABAD7E825D03847430C6422E39 - -9F0858019AEB3056F2294EE96E4E9F182EC45FFC4EA98E0D499987FF218DC95D051EB30D65B088 - -9CACA6EC7CD83118AF21E4D77E2A25B21F721105960025213131BB9E0BCEFD8DD79ED1BC39B0B9 - -07A4ED456A9C51DDE3430010EC11D39A5317451B3777CC60CA9E02A50D3F66054DD668D016CD47 - -C80EDEFD4A2ABE850D4322243FAE5B169CDD09BD253F3F24AB0B69B2DBE9A79E76CD393B71B942 - -67883E9306E4AC25FC7C9BF66DC685B51348B0382F971242A764758437675D706FDFD6C14C0F0D - -DED0A5AACC1A23CF11ACD2F3B3098B3D2B4F0D34B045D78F98874EB2CCB25115CC47672C970844 - -24C65A68AFDA977DBA9E519F280C3245AF8E89D0A3AEF334480056A1F203E1BFA0208BABD9BBF5 - -0423E569F49BF4AAB4425E9D7C3C1FF9DCF6E32E53F881F2F880E1C0336D953A0D068B7DA33E16 - -3E35DA07B9B5A3B5B9CD266B61E1E4423311A03709840309FFDDDFF0D0035E2D4F5793E6E916F3 - -DBBDEA8E86C8C7381C16CC6901BA6C0D06DD0FF643AE6B59CA5506793D2B012A19CDE7A0D8B81C - -2FACEAC32BB2380C115F9A50FEF2E60AF7590E42138599F6E7637902B10571C4159EEA7B058E4D - -7392531DD1B2A3B1A5BB178454CF365AEE4997DE8267DAB239A8DDF7AB69F92CE805B56C336860 - -C26529AC6FB987488B844957870B40E2A8B3B29FC3FCAEF0B3A6C02570F8661F4E4E455AFA1AE2 - -52316BECB2C88FD34CCD6F6EEC6B703FBFFF5BDC8BAF056E5590F16BF93564722741FFF344CC8C - -86A1DE8AFAA4E2F58B5FD916D163D287327553EC1012183C46DCD9200011053ED4DDF774036C1C - -5DCF958B8E09B86CAE24E44B4ABCCB05DCACA0CF4B81998FB73E4E43582D2F204CA8D97882DFCE - -EEEF643AA39B5D4C9EB3EC3886A9D54E6ADCC2549E53AEBA70CA4CFAB465EC0D336D15870A2738 - -72810C24C079AAB893AC53C3A2B42F39A4935E10F1B3F299E9BB3486D00ED66A18F03BA2DCBB04 - -30DEC8D40D0077686CCBE52FC550EA96DA10223D1F1F098449643364615AE98BC26DDAF2D02508 - -F66AC81C781625A272BC836106422FBC3DA4AC1CBD775E4AC13382DC49FA54445D82E6A16BAF81 - -4035BD2B0C9F7E5FCDD50E3B8BE0ECEE39C5B983DFE84645392C40EAFCAAE07C10E209FD228380 - -5CAD7C989BDEE2B3287DB6D725838513F3F95E50D5A09FC34C62285C1AD743F0C9AD485861740F - -462AD426D6CC9741CD14D97DF79533032217E213C572AD9D6D2E179FB877FC5CCEE2D16DC40195 - -E3C8779A89B3164BBEC207F44FF66518E48CF96BCCFAF7A18F5F7E0FBB94E8D4F5F5A74E95F299 - -101632B5A24EE041175A0725D30CB9D6D5C57CF41465BD63ECB8A65C400445B095D14A1DF726E9 - -E1FE72F5EB25F426132783984FBA2AAE965106728C99F6B1F7D7BAFCABE55F09C476DA10D2948E - -4CF07E65D4B78DA6F9E9BBB5921BD2E753B8B692C315FEB2A10CA117584A65B6162360CFDDCEF9 - -17EBC862229E2EAA9097AECE9A591E9BADF8C69BC5EC02674D2B58B7BC7F5CFDFDCC7A337BE52F - -6CEFAAFDE5D1394A39B1C188F91ADE1ED940F539D5310EBB5F7E1B11E8F2B0522FC676AE772D90 - -F55C3DB9589466717F3BB1AE6163CCDF77BC0FD61F8BECE7491C13FA6ED8FAB9E02E39E4B4CBB6 - -3B15E5CCD4381B15899F601210A376C6246484B046B6EE619B43853D7AD133E4252662C6190E20 - -76AD846146A03CACA144C018C937FDBACDCC6809952FFD94A6F8E0C8042EF060F4182FE779DB01 - -CF8B80F3545122FF6DB429E6EAAD3BA9A9267A6227D337D60274AB361C082A551B0B7A32EA7C3A - -6E371EA6EA9479B4911D5841432E2F75BFF1099272955D7864DDBF4C88C29E33DBA0A90BFE33F4 - -4EC5C60A07514E78F9A72F8127A3A9EC2B575BCDB2302B9AD6549862C2A1F4FA9925B484D2B1D1 - -1D5E4600D97A1C64251D00F4DEB37BB96718226A9EFD6E6B07E5808E35E1D10065C6AF64BFDCA5 - -D413AE31FD92905EF6A15753902837120A1F978EE341910665A15F4DBBD7C06888A11A0C640661 - -0ACA8E025D381A8FE29323DA62A6D70E8ED434A48FFBDC96CC763664147C3DEEC58440854ADD44 - -8C4F25033AAC3401589980C968B2AE1896B4C495EF798CB46403F21E1918F2D251666D43D09C9C - -3F1A65D08BC55771EB3E6E4082B7F9B42440794240B24AEC9F4B9ECA0D79219C53405917D48123 - -69588C23133C985984EC4EA17BB0B85EEA7F629BC9E2E10A5E829E770B8810776779A33A833A4D - -DD24DE64AB6CD5A089A82E7F293A24874C8C4125CE45E86CE263ACBB108DEF685139208A592A27 - -774F3D7B92250FEB4A22883CC403C4D97DBA67ED0CEFB246809BAAEF201A54F921D34D222C5685 - -709ADBFC96A7774037AB2F2995B7C93D2308631281DEFDF6A657BAB09E193D0C9F759B03F3F50B - -4A5F4BF39F4118342F5186C4E9DE29DFFCB7A6D63E0C306777BB9243648A1BE25660F9184DF9DD - -32D1FBF11D09D09E71899538291790F889E5C7EA2328E5FFD88134D33719BFE0048B80E85C08A0 - -BF0C513D3FF7B870A67E6D22A06C7BF15F832F01FD8A435074AAA1A3B40B4C4BD374C8F566CC5A - -6527A447B0B225C216FD16F4F7402140D09DA108C0FF3DA5B26012B83F1D7083FE273444DE9639 - -089695BE2017631819961A63563DE94EAAA502461C10766A7CA9474A41E9297AF9C880DCA16E00 - -1A98170D8D608B6325FE42699CCBFD934B87D2315047964FBF11FAD2FD8A289C11606C25E99022 - -707C03B0945C407677A712635C3B50D7FFDD7A52DC849AC925D7A9DD636AEA9749678D6AB2274B - -6176548E3E7C34BB6CF289849EB77F7E1976291375F04B3FF3AA011F9A0B0A0EC8183A82581BDF - -BEA1BE4D6AC556AE8281216EA0A9CDE765E680BB4FCFC077194CEBFB76F60FC4DC37B77FAD7C46 - -4741E63E673157435FB5DABD170198280A17F4864D92EB0412174427EB7B9CAEFFD7DAF34D2D75 - -548D35E5783E5560DBBF5DBF736E1C10F24BE83F60A47615C4245A78395E0A83ED0A777DFEDD17 - -25FF5734167784A1743238FBA588FF933E4ABE573BF17EBAC0132309E4587D242BAE716E093866 - -5407784400508A0556CE0E23347CEA2BB550039E65E433F5E569D1BFEB47CD0068293924959911 - -B00641A69EE50D6BACAB05452C6A193C02CC9B36B7FA312AB51794A639DD781F1C8B9E1C0AA995 - -339C495588D88153661120A9ED50012A656ED0C9FF481639A51EA0A010B1561F92CAE1540C38FF - -DB9373A5C83643A135B6571D51287A31616F6AF105BD17C9B64B6A325C88F30E144DCB9D160F1C - -26E3DD65A6C3DC155052EBFF51B51381D022AB1DF1C2F34DCADC6561A251BACA0BA18C3B320FAC - -5275C70D1B5E13D5719A7BD7D1EAB3ED382EDC5CF062A063ADAEDDD15386BAFEDF60B935F948DE - -75064E94322F056395E95FB70980EF8C9ECD27B222A4990859A2B8FAC51F3DE1AC4BF7677CEE26 - -03269DB448319257794B9AD5E708505D0DA7287D530DDA959E08CD84FB971B99B8D1968806E7B8 - -B01F228A4E9A8934E661F403B63164A84713B901268C31A8062C005B00E63981E953FA3E6FA0F4 - -78E9D0B3DDCAEBB0AA0FAE657BE30AEAC18BCE7C83C2C68B0E32CBB159CA25B799304773BF8940 - -05FB893C1D6298A911B2DF1717A1B92CB7A2ED777070B8E293EEF4C7000E9E496A707000BA1A24 - -BE0F784FA98BA543585845B09D855C3AEA622714083F0B1F0501AE74A849345CEE19E2B7CD6D07 - -EA3681F07774F0F8442E7E38040E6E211D693944A30E27D6242181C2626AAA4A8F541215DB185D - -56384EB94AB0D4EDB49655D55DAB89F52663088884D24947CDCC0FD81A09AF0450C60FC665C736 - -49DEE4922E00C3EE943A01FB05F2983367E6BFC4BC418D7A51E14527BD0F5A0A955C9426F0FD56 - -08C00A464D1AB4B46969558626AF6ACE2D99EBED930628720BDAFDB59E8943B7C9598FF9478269 - -49D586AAF14F169DFE8EC9DA41582FF4832FF01642BED1EF244D46C308D4687822ACBC3DEB2E11 - -347473A74CFF5B58BA27D3D3D36AA3543F2DCA041D42B60D8C9D7483F13983B2E372078EBDADBA - -265C67A12243E49C35096198B50D1C5D45AAEEA72E4BC6EC92338E01CEB8491B4B72682C35AAFF - -935F8EA76C942EE4BBB31C8E45B17B829686C23D68F64442FA935DED175687B5C042857EA07651 - -324871B7E8EDC589805DF972FBCF79E92AD1CAA1AC6335D91F0119CAB046620A802475FDC75E50 - -1F2E6B77954BE3EA96F11E17565734A0EA702A4E8189D95795015F8B0F7E9CAC4492BF9B8D0102 - -556851FD5C68E589F99FCF51B5EA0DBA3D3889EBB2013ADAB0355740C8750B18285328F01D2DBB - -1B0768C2F15134BD6D42D43E34A9F0A870636E26F2455E3ED900F66B8255F3AF0A6F221526C277 - -50DCB86D5C2C9ED7C826B7EF29A11DFE45B0AACD6742081D2D80F769AB8B4638BA71BC4D987600 - -DD4D04CC52BA26F407441E1ADDF4D7273A7516EE189A2567EC8E55D1D3019CF717FFC996557BC6 - -1199BDD52F72EF3184698745427378A58C266FFAD746B397F0528C435DDFEE2C61C8E24C6FCBCB - -A30CA2C94A8A341E0B8879D6863C7A7FB805F12A2530BC9747B6BFA7EA057DA41AFCD8046ECF04 - -6C2552DA5E419F15E60339A6EC547383C4B639FC7A7E086EA69BA499F5A953543CE620E159D1A9 - -1BB2C6AD22D6F9770F9D2CF719D7AD68417C8F38E9C7911330ECA2E34F843BB97E69869316D993 - -649F91694F8FB9696DF7531F7B3324F9D9BFB52EBC276320C5832ABD9D0A3DA94D8013DB90EA2D - -F35D0E1CB37CD7DB05FFC514F510EB8935BF55C0AF6440464BFEA1D92EC44A821DA822E3870538 - -AECC146D3CDD5CDA324BD82CC9099C90F2D54CD124435E275AEBCCA0838C7FC25028D56DDBFABE - -30B0FBB1EB7C8BD6F948D5FA8C4FBA1C10121FB20F490A57C013C6541C56D0882A37339252274A - -B2777DCA09CEC4E499911DCE4532A6C4D35464CE5C15853DC1D29F02BBA5667B7AD3CB0518A908 - -1960356181C42760C10CEDBB46417FE0CFE1B545CA8B129B67F9254683AB5F8F5684B50E702D0B - -A293258D81F07557E83F6EDCB5F50B0A9D57F6A802178896383EBB28D2749DB397CFEEA8B3AC7D - -1861D489E7D8E02B01B477429D28209A16487327DC3C532E35E4F4AB1D87A0E1A0F8402A067BBB - -30D4D992B5F2997445201C78DDBBB31806EE302E96E353DB30E79A341B38AF3242B3EC8701A381 - -BD4EEDC5654231312D5D4D2555A2E8E2C2FB4C53679581B57EDB6F01C7AEDE0399C4CC5EFEC89D - -021301B96B168E3D3BA15E0A2C2516EDDF2E9B78BCE983C8200B18ADEC5CE6BFEA019397525779 - -2378C8BF841BD3332096891A3F82DE8FD460F43DC75CCC596B82EDF546F8AC025ED30DA6EDDE44 - -7EBE6A271739B51AAF5AF52460A86942D94F1D91816D2CFA059C04E3E73F278418492D54989EB7 - -CE1FEC9D311AE6918035144F07BF987909D6BCC2ED889178EAB7F33F589A711CE4928297D9F378 - -E50775202217EFCE83AA3C83B731C1F98CE4A78816E7F6D9EF2C58AD5CF26A4CDC84075EBF3A5F - -D978DAE6E50726670AA683FD3BD51D1F2A66A15D42E3788DF4C53F3CA6E2C59A0F2C1D6BAD369E - -2D468A8D5FB8D82C6B95E1DDC75071E563E9B43EB1F2F7B68D76D54E791D81BD11B0D4F88B4E24 - -B8E08A04350D03F577E228D7319ABCDFA4A29A7FA9FB2D99C5450A69ECF4748F601F15FBD9ED84 - -5AEFC029565FE3A98857F197E4B4A2C3C77121BA2D78527ADBC50120B99667816FAF5C65D2F0C1 - -5901B2968DD2DCC5335BD5DC870E637EFCCF3726FBADCF98F72C143909109DB1B89017A026F455 - -CD37D656C82A0CA07D5E9A31F28BB27E27C65B2B422BD9EC12FD0D6B5046CD8BC7D27604D3D146 - -C23C4093F6DF9402D31758D677C6BB5BC1F59B0B8A69E295516C640722196052792DC40E4E3C48 - -03267398D6144CB5C206999107D67F76794AF501D35B8B77482395F72790D788B076A417991BC0 - -C4A3602F19F2C0431616901DBD72680A9591F30745A6D4F9A8D4B9D69116B4E8CBED2FB8F08243 - -22156A60CE2FCA834B805E2F867BD06B69B566E09EF21C3B7C2B3E5BA34109C8B64F7B609DF6AF - -03C23CEEA4B8CB123BE7C9637AA4619C29348A1E71382C78A76B7D97E1C91E63278D257E2E2EAD - -8D16F62BE741D59EFFD606666ADB7BB0A319BBC9450C11EDEBE337C5E053CFC58112F8BE67EBC9 - -D7E87A768516E1A971E419FD4903143B6E1B5F9CF4755B5B5B9EA2AF6652A376AAB6FD54DD08BD - -31D3DA9C0BA7C28801C048B43D4BB689B3E2A7BBCEE9E9D80D3BD78A7D4D94893379A7228EE5CC - -932330B51B0DAD909D06DF4B9FF925F875D4EE1EB2692ECF1A0024417273969913AD25DDB8ED11 - -BA2401E5DA83EC452C78FC49E5BA3AF8EF0AAE2D55DBED6AB21B5C9358B1CE08A45E87C10C6F31 - -801F823E6BA0AD8806065DECBFE00B9C9AA3F300B2765D4D4E9C5D2AE87AF05FAB207CB5A901D3 - -DB5B284048A8AA2F0C8F50BC298356444D2672B6E11ADD136E4B6926F470763109FEF3AAF1E210 - -895CBF77137A6142EEE9583D32C06BD780550212CC9BCA18B494A0B0A095F23E4EC2CA622CD565 - -49ED8AE9A82B4E60FFD7C73F6D1C462094F4946E16418D023208D8BAF445E27C7ED9F39A7FC11B - -D4A58A0BC9967E1C581EC18F866F5AEB8698E710750FF4A0CD695C314CA2483BF3F5DF14888D57 - -58758788F0D3D3AF357E04FC45DB58EDE15AD64C7F06364E1B2C64DC14CC0346AD2855780A8CE7 - -FA539AF1728483FFCE82B389C546E554FE631406A791A01A1CF899555E34634B52F039AA95086E - -D64B50534DCA54012FDF867A4173D97D420E9F5C970642CB12A9FE90A975EE7C3D27C4357DB9E8 - -DB9A9AF78DFC5C0543C926856BD4BDA98338875FD95ABADA260C21858B378D0391F6BBF15AB0BD - -7025E657588D9E6364DE1EFA088107828FA4250E53E7487F8BF891962F2783FE305002CED03D24 - -CEFF5F6E9C3E3211E0D40FE7A9E83314FB9F72F1DAA7FD5B87E4475FE78F542CD22ACC4E40933C - -15CBF16B240040414AAFF829371A67B3F6DADCB7281410035E7024B56604356F8D24D879CF4B92 - -C312CE5538C27D326D56CDA2DB52D7BFA0184EABC7C1160DCDE65444A1F3D29387A8E2C41B632E - -778813D3F1E335F8A04F277F1416DC304315958E3641A7D7E5ECC68CD3DD54043CAFACB9B307C9 - -58D6239E6754920A0C80807835A2F137ACB3D1F828ECCBBDD9A55AFC646EF93EAC3AFF1136567E - -DA8F741E24604FD4322B20FBA39E03748BE0274DBC6AA8957D30D7853EB96A65A9878DD94E259C - -38C3A144E1269CACA56B0B956C5C40A6B596426F495E438ABF3A54B4BBF161299F594EC305F95E - -8BFF2FB788E066420B9C6EF72F6C28536D66E6F00309BB69E396FC864626E67E84D88DF4E74422 - -A846C2987CC18E70A5B41E26B897F2DE79EFDA6CD99F594564DA946EC13972AB6F7DD737DBB14C - -940928E7839DFCC0352F7FF60574C4284398159E47D0487D2D94D21E92BA35BFF04FC74C43652B - -26405133714CA12AAF211EA2E7C397AF11E9D775C61462A742ECF9992B69FED0C152FED5AA9707 - -2479F58F8D0E2829A1F79A52EC7A0DA312FAE6B2010BF70D0AF8CB998F626FD26FE3C53FE4DCEC - -916DF0E9FADFA2802ABE944F0BBFD166CD39EBAD3FA4CE2C9ABF007893699FF2C2106004F3F477 - -242068A7FCCAE79B8795F7394102536DDEFC1CBD662514233B5DCEF1C3F715637BD695B1E07136 - -E40007C7235CCDCA991BAF173D915D5C5F33C4FDF653D51166997B6A14E9D2F1BC288B34E44DDA - -A8DE55AA85627374988A08D965A3E1C8487C310AF32D2C0B8E5D377D4B6752954E4DEFE72FD701 - -1615D7C3EA25A6733EF7EDEAABC9996D7F6C2DD3CA62A247E2E3DA8114AB3630AF8728A9854E84 - -429A276126D18756E12454095E8D30BEE5D3327AED59C1BFFFCCAEBAB02444A38A89DE6DD3AD89 - -4ED7E4A5C761C8BB77CA39F4CC3DA7A70852E27E88A4D6200E922AEF593F0912263CF4381A12EB - -D8F94AE22EABBD239EC5E7AF03EA9120F4DC2E8253D5551CCE8CA6336714F7B4A4C4B4CE565F71 - -2685E13676A3B488311729432EF24CCF8BA48265ABEEDB2FBA53FF2087BB9CB9682E9DDC99918C - -008FB0EB28EB1B5D9FE67EA9D2D4FDE1A8FE1D87CB82F8125850A60D924161FDD4E7E7DA595430 - -2339CF6C6194894845CE5ADBC97883CAD7D3695746856ACF2EFA21DA5EAD33D4FF8694298FF8A5 - -AFE9CBB1C6FF1743179F3EE82ACE5AD2BF86489383A97F05FBB1809889D9EA33544C2632F33EC2 - -7119B3670824332E7FBCF59C71C080A8E59A3ADCA3925C69D4BF18F1E2B1F7F9C184FAF7B47DF2 - -1D7905B78EE91A8BD733D755A046626B2586516CD3527B6EC09A90784F5C22BE5465C24961E421 - -B8F33A14F280CE7BB0B23F9702360F58C37EE4CA98ACB47E3EF8BB1A8A73F9B083586309407BC6 - -1B34D67A54157E3728EDE5A6A9D2DA811BCA521D97C66FB44C7725B69AAC358528FBDB674B2555 - -7F02DAA19EB4EFC71423C89F8277372B00DB45E783DB261BDE6A737F6972018E58FC36FAB72B82 - -E4EB48BA45FBD6DA8078F758FDC1155C06BA7BB4969EB82A5EA607F257B0BB642B9235C414CBC9 - -DC882E4B0012B9A6024B584FE68ABCB0F60C8BCCF8E181ACB7783DAEC99BC7A3A8AF028BDDCD0F - -410C945F07790C06EA63899F2012327AD160562DD0390DE564D90040AC3037598C4443F095FF6A - -3F5250D4BE09418EA43158B27661BC2500EA7BBF3B911C47FE854A819213813684DC597FE59AB3 - -EDB4B29AE1E51AF8DF5A97EA5B2A385B0219CAA2413E77C8FFF0AC117AD07DDD1054474EF08CE2 - -6986CB7DE00A01089347E16F36C06D6083642EBBDE402A98AB48F87177AF5F6B8F0234E33FC98B - -02E3C78C0813A74677AD524A329233A4C89A691D7569BC5E25C5E46D160FCC69D95A9B1BC47CC8 - -06917EE441546FA3450A9B30CC4C4BB4E7CB461ECFEC7115891A252DEB29F206D1FB73309B5257 - -6A9C1FFA48C81739167A93394604B1A91E86CBBB6D164E5D76545C75152DE2E0B4B09F65BEF3F3 - -85B84F29FA7FD0C9434C93533D7ECC4DD8E1AEDAA8B1A231EFF6266B661EE5F4ECD4DEEB154FAD - -7026AC8FEE670838AC986D48ADBB160A873F9CC9F687F4F40A5B6A082710A63D10F92391F341D5 - -11477AFC88994E4016BCF6D1E7600D55AED6E02BF01B5CCFBF0DEFBBBB697FEAB3C9B012882ABE - -E024332330DB02CE61EB5C43C5EBDF96FF799249BF64102FF670B8DBA29F4815C1A4FBCCF23B16 - -5AD9E8E57F596A8BCF4C1DD10EE5A3DD10CA20B1675809A1D28AFF85A5C4E93D5020DC7A45A050 - -C722AF53D42EEC29DFF0E924F8A54F75F9611D6DF05E1A436AC01BEC09DC0143156FFD47F32265 - -9E0F6968FE2FD63074EE77BFE8A4A866132833930E128C91B1CCEEC71BC02BAE80DD2598452CB8 - -4B0D756E8D0DDCA3F64D2E64AB21C482FFED6A859BC3B5D61F1DB812FEE1AF0D482239FCB8A4C9 - -BEEF632069637AD48050DAE012F91AB4A244751403C980C50EE44BE38D33D766A2424268597BBE - -D36E39B595693EFA00CBB6482372B2C20ED89563983C6CEDD5D288196D49D8DFE4670C4B5F457C - -21CAF9D89CA7AC9E008B3F867763A0A23494D4F3DE229F983FC9A133525A5BA33BAB184B73AC44 - -AD85102FF1AA6915D62EF10B992E9B7154A6DCCC474DF36FA6641FE747B1E80FEA80DDBA9FC008 - -A71E1552A30F87956A6FE298D5737BCE285DAB1F746622B6140E56328DD0B343BB7F6EA4CB73A1 - -AE1448CCD1BBD1AE7B9F5AEE2A96C55D4B511B2C3489D964F6CAFB705B1587192C1B93613DE261 - -49F623A979B1FC8F840590CF22DA6BD562E61C116D6C5B5460029CB5F46C2663F814284F51C18C - -0AB1F994BEF08CC775B87E0660D8E396E48F754676836176B568034D26B5E32F9C00B5FC06CBE0 - -0C1005957D22C75DE14C8A65707F8081A12955D4EA5663F6AB823ED3C709627777BB77AACF3E9F - -7D44303AE7931A01AC33464911946FA792706A38AAA64502526C06548D2226B10FC45AB3378EF8 - -A2B7A9E7960E08D72EE08E71E63E149EA56A941ECCA938D7E0E4A9469B85FF3239F20E3FE90A9F - -359AAAB7623C8FA21BCED7B41D9397E7C97627C20E229F268D3FCBF543DEC734297153E916574C - -C4723CE548DF8CC187A5DF384484C81A921A90E91E6CCA0F9CB1127F03CBC0E018476242812FD4 - -C75A24E675EAD79F6261504E71CCA3E5235FC7EB47982540AA5A754D1E29621369D1EA8EDF0BE0 - -8D2094288D03D77CFEA85F04D17B3F41B07E6E576490BF131D3F78227D569F3691F0135FDD6FF2 - -D2B212D7D41211A1B7EA2C9FE2D2FB79065DB5301498802B6E1E81944C5799AA78E3DC6FC71B99 - -5A8C569501D4F24437DF3B510A238FBA8120AAFF58227285C6A10D0756F04E51710D34C5B3EC11 - -632A86BDDDA8AA12A8C5F48948E367FE5EDCD3D8EB85E3D295602DE19BC1F5DAE96E1A7A9CE192 - -F9F9DAD0B921A9572ED1D92DAA9AFACA5761879400FC1F11F3AC0C1D3EF9BE5EAE7F7BC963CC1F - -15A3D36B4A4B2725AA8DBC77C61905EA820AA3CC1EACAFB817CA530C32F6D281F0F9C45F18DE77 - -09ABF3051B58B5B857350BCF7D83D621B89A6917F2D31FCCA33D7F849A78A02411A16805B542CB - -BB9ECA087CF320DC8A4E4EF6A1B1913A543E62D3611FD1194B019987FC1B454037C74773AA5DB8 - -3A916AFBD587C03CAE2ED7BDE4A738706041B2D2332039A7DCAFCC47DABADFEAD27FCF70713DC1 - -751AE3681267961EE2CCA1B21599C2BA3F3448DF4BD0BF6D01D8ED2B2B70E6A42586D985DFFD70 - -A65B65AA2CE5AA16DB6F5B92284449BD7C72D802B384CB63EF7B7AE51ACF16BE575068005EA1C1 - -2899873E9FA76CBB626632AF47AD7A0FB3AA6499DEFF547629910A1B30078F23C65396446C5399 - -84BBD0E416430798CEF8196D093E31B5FA6650574F30D3FC479179F00A3507199BDE82BC7173B0 - -4EC8015675AE42E92E0CC0EF7D9D809EDC6FDB103658DA78DED075FC61CD2CAE4EAFF1458F1261 - -D9BE261642DF329C0B0DDB57103C38E823E3BF09C59881388AAF7E8E8BE4190B811CFF83AE84B9 - -664ACB308AAEE24253DB0A595203BD305A19F2A41A054A616CF02850AD4D00045EC034792A7012 - -6E7F10CD39C919C5E6B77B2F63108266AC3882B6FE5ACD730C4A79EB4549604D31B70BB81F9DA3 - -B3D8BFAE1C2A7A000A5884CEC025FF417D20362A9374ECF40936E93EB77362CE66370F16927135 - -74F60E956A69CFBB70BB59A0CC497BDCF9108748B54660ABAF3AF7BC57E70BAB19C4EC67381C0A - -36709042AFF9404CD6039CC2077C9BBA55249C65097978D20E5AE9CCE1A27A74752EBCD4C53546 - -3C74B8D6EA187C2D575E89D5CF9038DABA4E5B6B240C5A826235FDAE0F22E8B4D29E4A8CDF4ED6 - -A91876FF06F5A901B6F34C9C8132E27AC01B6B57AE1B312FC1C2780E9630286C933FC5AD84BCE2 - -CFD3DCEA1C7F621A1C9695D65895C32F9226D14EF31B461FBB98D4ED3C2EE62477D665B99993A8 - -0F42885A12E454CF8F45C96E002BADC7215DE3B1341C11DD5B78167D76D13546307B890F87A199 - -FC2CDB95064BCED8FC5E0B502E7A589EA6CC36F2B935E05D6B4CBD38E0C3BB71441F05FD1F234C - -549054AF7FD8065277AFDB89149FDB6CF64A4E5375D3EA609D90D945E87A8A2AADF7D59667ADD8 - -16E8C3D9F93B053488F4408177048EA77A05F8B383E249022ED3853D6FAFD875FA39759AD3BE7B - -EA6A28C49312D6820EF2BEAAEC2058CF9756C9EAE517FC06BFB98141266D70F1F651B90A069DEB - -3A2E6588D9BFCEB3F4B5A8E30C2E82829376BEC979A6BCF3E4DC69A6FE7BBBF05B6639B9719136 - -1AAA099F4BC409C179E252452E8C802A1517D9C6FDA3FB306ECBBABB2DD07174484776687F4EBF - -9A09AB5F3216D9EB85508125B239FA22867D8C47D2919390E6F5606DC9DDAC2A2C4E445FA8FCF7 - -4E73B06C6C88085B116EE2876E1DA820F2C4A2EC29E036068E5E52BD82FBEE47D671B040D75772 - -A93314AF9297753A01212FD2A7624DF89A306A194125926626491A3AFB70CCA5ED0FB14F6169A7 - -34FACC3D1BC693871985D51B09DA75DE927B0F5E5996BB3FE38532250D76A6B87678AF13331A0F - -F7A37700BAB3171C511DEC88E998D2500FE0D72D7E63DD35AFA982664065FD2FDC5998C9DF8E51 - -69C3F035299A5D7C54490B175CA41E43883839A6C8DDEC8210CE131695777A606133E23D36E643 - -330DE0D7205D53B88D6ECB5BE6D95790CC7EB7A33F545FA2B1B1FCD7E8878CD6CB5E042DEE4FE0 - -879CBB8F0B21C155588B0672DC6C8F832648E299519258016319B3BE725D58684C4BE5D692FD50 - -25891223A54FE34F10DE816C40E5B4947006ACD835DC01B2AF84BF4380A2D0D580AC3878F5D476 - -DE2564F315213F7DCD6678524094E85CA49BA82499A5CD69B597871ECCFB05CCC4791B8BBBE45D - -E820E1F402885D947F1AE6225451E5C33C8E65F7D7714C6A6E59131E8599A4B16EBBEFD2A86FE8 - -E26D9C76E35F85FD9F8DB6ED3760B12224ED38974CA38F894F0322CEF8634FCA6F4C5643B5EAA4 - -D9E65274BB5A2A381DBE8A128BC88CB4F6E04C2C5C4425F347479D86164BAA3F19000505CBBD28 - -B52CD3C8A33774F45999129F51A7BF18A54B71738C534C5FAAE501315EA5869C6D1CFC67D0AB9D - -584B40294425ABE35F2E923025A7227637876ED3B746B6674D52CC4DA679D5317DEF0ED57B3C4D - -930A96C0FB692DDD2CBCD113799FC4C80147197B7BC9F9514AA0A96E078C3601B32A9F690DC3AE - -70F481DD4968995AF645FC0E97AAA22C991AC11BF3A58DF46FF84CF8B76E248B23B9985038E737 - -0FE65E0AE557865F0EEC63ED7F4A9641CF02810E34B87675FD08EBC880368491FC6C7D1C9BD273 - -5544BDC95CE0DA3FF11BF88E9680A8C8F91EFD65FD04C0094DC94C29D006738CD340EAE0585F0E - -658DE2D9907218612B217228CDFB8FB489AEBF7D5C05C5962F67E0A39974C5665B332353FAE341 - -9B105839849CDB843E908EF184D0DEA3F4B1C7669A97C035A86FBECF2D2DA905E683831319D626 - -3895DDBE238CD5493C79F9EA19958545FBFF8B088E86F6D85BAB6CD7FA03CB86CB3AB905329B6B - -538456A1C68A260C137E497F2D7A627C38D57030271209DBE4BBF2A484745E6FCB9FA930ADBB61 - -9F64118E77620925449DD6BFA4AD8838AF81BEDD3FE9D0C15E37BA48B33D6201C6710BCC3064B3 - -16B535E07AFFD6065CD5A2739DFD061C1C464B4AC5526C4E93D4F32B1D09CA4200DACB79DC8DF2 - -8AEA6C1E9BE2446222E8FE141786FE5146A30801C0449D9E7143226948863D5402710AFEC43F9C - -30D85915E0354B96E9BF438E62F9FC3E74B5599555D0C72481FCFBB5136D4C2E064F9079E72552 - -15C9E4166EE130BAD8EA3159F1558E48A4D998DA8DA1B002C72EFC4F38E8DB7396DE031DE548F9 - -76DE8E0C11AD4CD396D4A11C5B73C8E04FE0746AC300D2CD04D7E9CEDC1D78FB9E12A84EE2296D - -856B8908EAA722DBCD9C7E72A2EA45751FE235B48879BA76129F41231FF3B6A31AA51E0F8FBCD1 - -65B88DBB7A353F0B04C55729BD3851A4FF32B75AED59CC9AD498511A6C105E49F0DFC5687E8291 - -C30A6A826DFD3C09A0CA876B4BE48A222CECBBA390C5DD83BF51E6D1C72AE463ACA5AF5DE93DE2 - -5727A4D70E7A267FB7A0C10D5EC341CDFADBD56905E74BB02F446F9198CC8DC903C51ABABE98F7 - -6E75857E1D8F1220109A8BC565D2CEB7E3B809E16D89A83DCA2D9DE0A155522502FD36E9DD8CC9 - -17540D4DEC8CE209F12C6D6078470A6E5D65DC685C30EA581E3AE53AFC872993940F0D0C89FFD4 - -1F74A8FA730BBA82F0296A9A8F133810B4BDD8903E722C5F95A887B4131E8C6AFCD14F29FF4200 - -6F04ACD0F2570C103F154DDD4A5CF09169AD56542855195091C05B71352134A655E6BC84F37643 - -93A106057B73F58D8E7F99DC9B0B16E1BED4845CCFAE63250299F0B456BB2CC8B90999E6073C92 - -A9EFD24BB2F239844E412A15C7780BE3A60FF2A686779440B11E9DE0C42547B3D89B055629C260 - -DA798922BAA55FFFF2D1253A85DA9389C9284A2E47B61F9A5CBB20E9E3C906AA94B211677F0716 - -707C28C39676943314E52FC250DE49E8A3DB1E042443B66568AA37D0709DF04EF1362E5B9BF083 - -D59CD3BCDFF50BBB26B7C8CE35A8C4DE96F2E40DBD9D3CC04C39841844F30B31DD25829BEBB731 - -8D2E1DB290960F54D1498095D20C6F05F7DB57A3A9FDCE5D154FFEBF36ED418BF5FC0965BF7BEB - -D16AA8DD31E562095B0CD721F8349C1476693D8EE368EE149C3D243698F54FBB5CF83F65A6F169 - -3BF15017754259994C993C676D5D3B5E0E805ABD5B5175EC55C3D1AEE6EE769BB1C614426D3E2F - -2A3167EAF2B0AF5BB68F024C35125487C3AC670227FC4B781BE2C5DDB6310B59817ABD82D5EAFD - -5ADD7BA4EC0C89DBC68D03C12EFBFC051218179494B0B01DA523165717D1DEB70656C573BF7002 - -A66CAE4E69B42AB76D22E6D5C2DA043103604F06A2945930F421AEF9BB28FF1067C297A6D10E56 - -6208A1E001BC8E2514DC6A94B559039F10381A5B031CFC73B959FE1D270E07FBC2C4D2ACBE88A6 - -88E1AA4D9F441B831B6E1E83ED4C1001B2F393264948235312E83F12FF24A33AA8A332292EBEF8 - -95269B793562730486747AFB79938BA78BEF925CE4C994D1D58C5115296D27D7275BC4358A9DA8 - -C8D521C2B55F5057C2854CBFAE0AD361AED083F8A63723F7E535C84FE255043984D5AC389F6550 - -20A3FBAE4883366AFFB9DC7D37F4BE42A3A40AA747721D763F3E8209385F823AC1D7076DB81C8A - -00A33998CBB2E574D9C65563E4C24429DFFC0B992BF3477A90891AD6C67BF26AC0DA33ED3A26BF - -9A523DE4A8A24A4EECA3581BBBA6B182961EB7AF4FC2F56904C27837A00373C0A49F8121B9BD21 - -97F0BC65592EE0F1EB1DF93E87F4514BC5D760576E3A39B18684682C0DD8496FAF939D5FBC907C - -F77683792DDEB86AA902C8B223ED2CD95D9AD9DBD52215AA05E690FA22831EC1E2308C97B882AF - -2F10D56DE08EC526B4ED696A160E139B5407268F1E17A710BA4F71A83DF53156A95B1224E5DD16 - -B4F3EADE07B57D9FA064DD487F4E84EAF04C69CEE2BB8DB8411849B883ED8138E2023B82CCA222 - -823E24F80B8816935AC30BCE18E9056B4E6098C7A78A252973AA19A6FD0A87D48617291C3E86C3 - -C6140CD225B139070B2E55F4BF2BD1E752DD2F7C2C0163938B1CADE6B80EE0E4A2AB811639157B - -01E8B11BB02F4C3D09F86F6A178D0DE5FDF804F102F48D66F5850CB685748FC3DE7E0A657EB77E - -7311E98CA80D96E7D60A6A1921EDE854415C36444FC1C4E90AAA32D675BF6B36EA87818616EA80 - -0CD1259EACEA4105F1FAF0D38AAFC1BC427A4B3AB9C83FB22ABE8BC2E607C1EE5D38720081EC4A - -63A2174E4CDB46EAEDC1D53771E72C763C7EF98F9CE9E6D93BE98E503571CA19910667E9900DC1 - -65D78EAD10F8748D2C6C7BD9AA5571DF798B626E0CCD391415EF22D78ADFB11AC182147C50A14A - -153FB3DCB091D37290891C3D1C44012716E84E7AA39B55089D1337181950DA5BF52E39707E1A75 - -435818E44FC0269F6FA4E034C18B94CC0C6D4750B4372D28F24B982927E5BCC910C66F8264F6AD - -B5DD11AA46534F6F057CCF650EFD8F1E56667C7B9958D5629B227E12037C098C7AB5D5986BC0D1 - -2AE5AE552981FFBEA1C00CB6CC5EA988A2944C7F3A238886831C48DC81F179B9F8F686D7D0D1AE - -436A0897AA6255D3041C1EFE7FC6AEE65AD8608DBACB2C40BA3C8E178E8F0BC04D27343E39C3B5 - -93498FAC8856ED317A15CEABB1D9880D1A156B4CA0E2AE90D4A42F2383523C21DECE7D1A92EEF2 - -09E811F44C4701C1737E7C8951C140F446AC0991FCBACB9A5D8A9A36C29A7DF9FCB5405034A98D - -556900B7238A29E4D1C46770FB85A1C9D345F54D3F01FA966F6A1DB9213C2142AE6C6E883BA5A6 - -307D428A5AFC0E09AC26171AE5B358ADD11AE6702095BF832A35C33A26E22C06B60E7B217E4346 - -0979399270F5559A38EA86986306211BF37D01BC0990C38BC4CEB03C76A9EE984A6BE19E096D33 - -CD5D1977DD237C9600F18FFED04BBBEFF024BB062C73EC12FB00E5E1D5EA32149093454EF270C1 - -4F94446B55CE56C9B700A12AE7119E7812A1472BC70B52B67E30608D8DA81331EC9E0F2587A8FB - -34F3DF3DF0476046832B371F210F6FC8268C67F07ADEAE026CFC1921BAE4052680CFCB37305806 - -529EBF63D8327A1D924A7EDEE1955B944510FEC9E243C872F10F5301B1D03C2BA248B57D1E1024 - -2B266A9A61691E1E9E0421A89E0D267C1C87DEDA11F25EAB86A6920B90DA63DA5245AF639CB69F - -C4E8F12C91CAA26610A1B321F91F90C79771C91DC4D2F6887868D82C928E4574C0A395CA1FD582 - -549D601F9274AE55DD6F146BD2A444088947EE9D191FC5AD9F5CE52D3A267FB165D55BF70A6A82 - -12343E7328FEFBF3083AF528FEC8396228678AE2153557F93399DE55B880B020A921687B4B4719 - -DE07EC57F00B2BDFE003A95E3211119BC72F468AED00ED92A1843A28AE104175231F8A246BD8C5 - -E0F2FEADF643547ED3120BF4950FCB71AB33C590C74006A8F829D43A9C72EADBC7E8A48EE3E4EF - -2CE847D275F1D06B305DCA0A7F0234D241A187A3A9D7CCF390EAD305E5D89110B5D0453B2E29DD - -2E0E5313F8E5F824DD52DC515C46A4CF4E7E5D622C590A8854C9DFE724CB377F268508677B701F - -4CDCFF3502D072E597E3F9D5F3DFED8BCD42AA7EFA96B6A93A42642088203B075EC5CB9732EDCE - -4483518EA6BC04A9BD531FA9D0ED65256EA3FAE0B1493FF2CB8FBA4C7E5D8AE1CC244C834E00E5 - -694594EE9A5A9325C8FE95C2F6FF849446E417918D88E00E86D59664E1D965310D354199BEDBAE - -5366C183DF1D5D1CCA5E64A434C50675CA4F1ACA9704215BC5A1FCD4C3A296CD22389DD808CCD0 - -87AAB921F5ED11F34D2D0334861F214083BAC9541C05D78ABE5AB9DF253E7EC40AB3A8E69CE730 - -AEAB610EF92AFEB93733C9CD9590B1B1D8A3A5E44D22B9528E429CDE7AC4123C0D7A8739ED8BC6 - -7C5583EED7903FA0395171EFF44973DB1CF052DFF83B4D7FCB6B9FEF7EF08A4D7C0FAB844F2F90 - -48513A6A3D39A407C33DD521409724A79F8E88DD6838298E17473829A20495C863867DB9729F83 - -92CDECD291B601ACB55BCF9BB18D873364ED03F51631EE887246D5480A1B601FC792DA6B6D398F - -FB580A32E659BA4B0764654023426E0F5E51045943D2EDF0557DFC8FEF287CB77B8EA3208E2466 - -330E762C53D8F19E173708FEC484CA6EF090A0A65A190370A8030F84CD4CD698F65E81248ED13F - -91A0C21C3B0D7C6337887BBCA9E5D65CA6507C58960367D36810E813B060EF9BE7D34D4AC15774 - -06E97640F04B87D203DF42BD651229C56681D296DA1BA7C09AF38583C090D0409828F445B6A9DF - -429A374CF2DEE68FDB5FA4A2BDD4D2CC25E46FE69AA3C34A592288DA4DC1702592FB052DDF00D1 - -4AFF4FFCE9E4B74DB410EF990CFF606BEB6B90AD35D3179CDFF285581A3D161D96F4DE69E5D40E - -B344E5D23D6F0B47ABA92D0A3EFF67C8F16D33DBA4EFF89C73B34450D13B48B4F04C87D167FA8F - -70E9AB17D603C4C1AD07873BF336760E655CBB6AC3A197D62551ADEA5B7C1ED5303D8598000FC4 - -B9E738E2679F5AA08DF07BA994253000366157FEBCCE0EA475AA022B046461187C1ECD85FDEB97 - -7B2DF4970EE03C99E8C24804484D7B7A426ACF82B05AFE51D5083CAD68F160ACC9033CB7706CBE - -68D44997ED54DD0D7523A032036EDE50B2200CD44F9B89A1DD0F541D977A17AD49E4F82FECB9E5 - -FF7C525196746E8F49906B9B2014BF6E1A9A6F356DCB5CBDB427394FCAD8588FF2A0ED67430F15 - -75B2E1617F7F7DD17E5F12E0406834B28002DC7E74C2C4EBAB48AFF4306CFB2D17301CBB238AC3 - -85A414CA84B988C5EC5AE293F3A6A947E70EC4C7F0956AE123EB78E46C8F9B2E7DFC75DAE6E509 - -19892249014BEDA7FD06645E6DB918A608EF4C373E7179921DD6FD94832C0FD9C15F56F784694A - -7788FB33B9FBA7EB9B1A19CFE576CA993F0FFC31398C89167D5F1D6BD886701B07E787851910D6 - -B0BF96B51CC1C8BD3D0BBA00FBD00857E4329C1E9092E20E4395909BDBD334B027250BA8597F55 - -79DFD55CCFB5721FC7A555412ABE49E3DDBF09F722120D681B6B19FA0026CDC30978976DE83887 - -69C68B3C321B6113D3AE32FD1BDB7C1F1FF8F4DDAE81FFC131AB8316FAB33B6FDEBEEE2F1C496A - -805E4B920F3816BDA8E41677DE36EE413E80C500B9FE4E3EEAD0114630BB1A955D0F5C7760183E - -68C226060B051729F6E1F46C75168392D0ADFCC3DC52F2903849C5C1F1CC4A39486FD84401112D - -C1F94EBEAA3A3BD4F282978AF8C2FDEA3364ACB1121EB5F593F332D8BB3E280530F9B1A58041BE - -6350704391190C24BF0DAA05FF8768F084E6870401FF346AC73EAC8A6906290AB2BB58AA7D2C0C - -901BFD714C45188C75096057AECE6CF453B98520AA7346E42E449549EBDE4B70B16F66F48655B8 - -7F0ED4935D108E9349F57C5745EDFA02D83EAA7EE7BE7D7FADBE66D6287A61CAA1F468DE9DF58A - -DCD7D4667A341F6748A35C19031767CC2E0B25B6010CDB31DDD3A81410B782B4A6CB5C9DEB3B09 - -26D2E86C69C63BAF17055ABA5AF39B237C53D3A79C5639C3AC638E1592A5C742B3F7A65C557F76 - -0CA2E68A0BB27D0DB493DF5353D75849304F3B15D42115F55717203817D1F6CE5567359CCE7085 - -371BF23A60851B9BC7DEE19BBE40B8BFEEB85D20C7886CB89B21BD4DD57414958ECD3B5CCD40F5 - -7825372CB8929AD26821F280FC5BF3F909B8454248665F39E87AC12679023561D2E4C17215CC80 - -163600FBC3B2A3637FE8AEC7E6E9143939A96F9AFF544944EE914BA054D6B5D0070C16C99D3EF1 - -0A5CA635C83A154D5799B7FDC311827C9E9DD651CBA5DE32A3ECB4327BAF08D924EEDBA059C33B - -3E7EDE159E83DE71EE0894C2A7201618AA39F39CC3574DFD644CB41618A668BD8D1BF07FCE3AB2 - -80E3AACBD9FCB90C4D8A43BE3B72AEB9E6785DEC6E09A6CBDD95A2AC7A0BBD49D86D29B08E8F2B - -99137B2C31EDC27DEE6A7F5FAA39D1FAF0BDB9E047C83FE596C958A01F835149369B0641F8EA6F - -F0DB303EBE57724E6B1048FFD7F31682DAFEBC1103852273DD19BC98C1C5452F841D5ED7C2F746 - -6893D23CC5D6DB45B53C9150845D7EB3F4227CB5363E3A3BF5DAFD68D415E2836B4AB53621125F - -D7CBD6B551B3D0BD14D6377DACD47787738EF0BE98F687C6CDDCEF0D780A1DD8CE08BC9C018E95 - -AE44424AF1080F5D245D42A3A4C17D3E19CE340E97C722BD7EC55B09735AACF13FB2FB9906802D - -0B34CAB1C02758CB4FE31FCF2758B3A6CF8353E3C51F399AF3ECAC2E109C999BD15DF1148E38D1 - -A3CEF647225CA8CC45B962A67731C7DABD9B756DAEE7DC5E4074E3DD818E3DE911C1FFA8B6C1A5 - -4F279C8704A61C629733BBF2F227F171512AD7FB5E72B267EB0A7B6C86C0EE6BECB416A9C4867D - -C3716826448DEC3B8B2FC172FEF52C39A0574B976B9F3BFC53422A20313F0B058638EF1870587A - -A02D9C4B96AF4F5536562FFF26C1CBDEFAB5A6CE81F25084E902F56B840318847B5E31883647A0 - -3063673BB2D0A7B2C128AFD261C434D1D4CFB08C50081C216927C28954A79149AF111705E57FFB - -F8C8A138AA343F16D540E138ECB9817F91B040FA65D90ADA642DFC98E414D3C909BEBF1A442F68 - -0AE92F829D0F10BD99BC1F00E7345D05133CA2F3BAEDCC63ED6DD92DA86DF4C85C9D77FB4B1D95 - -E64492CC0E8F0468D3E55D11D97595876CC2225416EB2D1042FD8FA07A6FDD408F619A0C84B65C - -20876A38638DBFE973ED7DCB6A8CE7ECAC0BC71349AB2DFBC8682C1D5E8AC8FAC86BA95A46E391 - -1135602A147C7205C4B4951998BB1D70BC7D30E7004F3C81CFA4A1364CA1CB728859F57095A068 - -33FA57B2AE6AE004592AE87D6A57BFEE4BFD39B77C34416E2316A739A27084E2FDB9A9A8A260B1 - -E928D144FB43AE5A89B05997380E30987D31414EC916E3BD338D0D8997529A17BED8AF01CAD6D1 - -CD4EE06CB6C0563E91B919903BB5C0EF8C79ACFBA7CD0DB8984603F729672DC47F6D840D911BCC - -3FF3F22F561AA5EDA2783B5DFF8DC573A06E8383C1B7420003FEEBD754B62BC461D314B383D483 - -CB33660B681B6A0424D4C16B730F9759D1C5B8CDC769D96E67817016CA5356C8D45836C297E5C0 - -CF80818E5DDF6FD6B3D96212A6E3F124AB2B2281C7E32B5A11F737C6CD9A886B2DBCEFCADE6D8A - -F8A392705B8EEB3EE7716BE865CA9946158402333E4345A143ABCC24FFB9280D22A2E538FC8C08 - -14A9F82CCBBB350FDE047DF917E34B7F9A3D520C9776A501225DFB8A5440F91980155C69D69C1E - -8B772AC1BEDD870F516A25628445A68793EB46FF327E233DE2EF2428505D78FBCE1E933500BC08 - -75EF2A659105BFB84D62CD8849B13A0A2AC5D32700C660460BBCBC508A644BC21C02915D44D071 - -E6997552F1A43E771C41D9A70E52FAFAECD73AF8F50F7F38D85F9E968E178FEE686F76C17B5FB5 - -C1235E74EC812433155856677C8A01CE329718B01E8469165B54DB6D861658E073D407FA7D295F - -69DFBF4CC6E06F7F4EDE5C9FE04907DE0EAF8BBDB73AE24313F1442614FA91CECDD1FEEAA36FEE - -969131B200334EEDA47A7B029B872A79EBF7CBD108388C90ACC3A2E0328ED70106CC5D962BA72B - -4FA1D5E01B7476375227CAAD08CC669F7EDE398FCD48E4C98A6FE592C60D262D9A814F364871AE - -8B9D881029CDEBEA22805E58C1AC88EA3D2A14C06C99A6995236CD5B66759521D1C63CAC33E631 - -8C9441B20AE51F6C5484CD5C92301CDEDBB6ABD32BECC3273921900D13303220DB46042C720348 - -F8F5660C96354994A9F4BC8814FD4DE786526E7629D41F523F92E612EDF64C0810600493369F06 - -32ACE4BABE4488FB2292BF6B5629DF5062FD7D2038CD9856A13430FCF7E9440267AE07A4EDEFA0 - -03B83DA367DBBC33F449F987AB4C90C6B54F2FB5DC614D50C803E6A85F4BDAD9F31C3C83F8C84D - -B51960F42978F59784756FF9D04C14899C601681615360B34077E110C6FB5EB7EEC81FD21C8ADB - -F5086B027D11DB853324339403A157DD593C0C482CFD6E41AD59E58C9A9481A391152151C5232F - -FC9F164757A08F5DBFD5F239E218915F410197D59AD84B43AA34B577E9EECF694086ADFDB4E8BD - -9255550D0E6DCC0F7F22C34E63678545F2B34400ABE7E4E3131D20CF0B01A3A266EC454E3F4D58 - -24E46732C9B304EB4B7F6AE660A0DEF74EB7A35624C4F8EB8D467A0176DE9AE457EF670B5564C2 - -749B545B284F63087A2EA02CA97C1142A7E6E81AC7F441D5C4AF68F37E85198CBBA2D509A36A92 - -95F02A4AB6C08E001E691577FE7512B7AE437BA23D023E26320FDEF262A5B7C32C51AAE5437983 - -1083D5CB84789619A605ADACB5CD0FA5DBE2A4DBB7A5287C151696D2DEC6BE0AB1122F19C026C8 - -9FE4A49BA8298C0528677326F0D41CFC2BB67EA9DEF70722D6E3DF3E738668F4A9CB2E6A97E81B - -A717B59718A78192C70EE9E7EA06CCDBB40EA7711D05DEE264ECAF9CA47CA542EC5B17D968CF0E - -E334272DE264B243DBEC490A3FCC3AA34638DB49C12C2574BE206F53331429E242061F029399D7 - -4850FAC2B14C69EE8DBB6187D782AA0F9A40C5B4C6E663474E7BF45C32FD4593BAF723BDB8B866 - -315A898E1D429A9BA89D618836430FF6603137334E7C9F03E7DB7A68CD78A1FF11566D55063A0D - -3BF30A87727130E7FB50293794AF5BC45F5818E8949A1F4B806924BF629EC443C5AA6E173BA126 - -22A346D8B071F91E1D305D1540FA83CA8DEA7F09DC80305B9D392BA31D6E71722D0B947C26F73A - -71661F801A9D08A7DE62886A390361FDEA22F1FE67EEC2153F999653DEEC688F25B4B9D58C815C - -A456804360DE294BFBBFE5D745B94511C304BD5388FBB84DA4B31E650178CC257316674C5A3EAD - -9081770D88683A103CCD12982465A7CAA1C903CEECA6EAA1169637BD370F1900C9143FC32DF44B - -BB2D6A4C4C88EDEEC16C598545208401D0985347AE8B2A16F98BF92CB495D0CAA9F137DD534D87 - -9D8902DF0B44848B3EAC1C381B8A771F9F826A1D33D12FD45C220E94D1C18B630C46D41659F485 - -16BF6C1A52E1951AED115AE9D4C65BA9F7D436802A5673923E65E8BAB985D09484607D6997929E - -09EB1DBA1DFB33BA2999AC6460734312C6827467C70EF061FF8509CD8D79180FA0C92A30B8FF54 - -59ED13CD5158AF3CB913DAB4CB70ABE18FE0366003499020F996B787FC5BB4A767EF25E3417B4F - -C66EC7706E689A551B0E4AA157565C4AC5EA44511D9084CB45B3A5F8EC1C827CA408B1622E5170 - -3A6720D74D1CB45B5C4EA56076203F3235B5D17E02F195511AC3B1D213C01B604529477E30B1C5 - -7751808676C3F3103918FA224B3C2C65E0338CC81E11A9ACD2C9F6F995042E654C3DEA26FC3CF0 - -A094BAF63822CB3004F2786EE74C86FB8FC6542BEF71D96183A1A4C94F01F8CDB0AE1DDAD192D6 - -1B7AD708D3498B0EE123ED66225976E91267D45C184148C61F99BCFC11DDDFD21ED76D0FC861BF - -79 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -cleartomark %{restore}if - -%%EndProcSet -%%BeginProcSet: stonessbi.pfa -11 dict begin -/FontInfo 10 dict dup begin -/version (001.002) readonly def -/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def -/FullName (ITC Stone Sans Semibold Italic) readonly def -/FamilyName (ITC Stone Sans) readonly def -/Weight (Semibold) readonly def -/isFixedPitch false def -/ItalicAngle -12 def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/FontName /StoneSans-SemiboldItalic def -/Encoding StandardEncoding def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/UniqueID 38795 def -/FontBBox{-153 -252 1303 950}readonly def -currentdict end -currentfile eexec -A62390F2B60376DE25E6D63CFB2BE19C185EE64A6BAC29C353295355E2953CB3AA6671B8B948FA -FE62D34F0DC7D617819CCCCFA9D276C723914F28DF9F5A1BBF644109266411A6B99CABC920970F -EF157AF4F67AFD6B8256D30B6EC249D3D2D31311F781E50A6CF1A677285290833E96072D8D1EED -B8E7402A588F7818A3DF24AEC6EF5BA6A37D1F478AB266ADC2F139FA5B069ED780AC237BD2D560 -57ADE351BB17DDDA706520BEC386806E3D20ABB33E703B0383CE7EBD20AEA40CD1F3AF80DC63B7 -5672BB9756C84BD572171B717974500FF4A18AEF19B1C787A742E6BD5239D4CE1EA9F43F4881B6 -2A36C01609947E97CEE999B0E57F752F0091BCDDDCE6FACDF38D98728FA069D326B0BF3F03061B -8FCE80D7B17E69BD16F034750BF510B9D36C193E853643A7968E043A0B6C68348297E52B7194DC -86390AA0A39414FB9F278A72BB4D38D3DE6F311EE0B4EC0C38AB490D3BAECC5F9C9C3CF970127E -8C31A6587F7B3A2AC206B60D81BCA82D7BF803849B86D987E5A0F487A25252D9F5F24FF52EB9FA -E8F5DD1D4F1AE6BCD7F119970D83662824A17F518F3BA7C0E355630ECF16D1B2930AB700F859F5 -F79B58D5AA5AFD043451EF0E21896E9BAC697C99A006F8502AAE0F32557BDF9C3E88B5866BF280 -AFBB6309C4A6C56DDC93CBDA5BAF9D4C9C33CC5CC9614236425B9170151C3BA70FAA2B8822F999 -2902B23E11A8DAE99CA765649FFFEE734CD45A096246CC418F4DA104A0E360D84AF8413AB6315C -F7B2D93458EFD2CF75CE8E429B4FD9A0D9E2625B56B2307C5BAA8AA4209ADF3AEFF11C2FF9CDC9 -8BC55A81AD0B8975D77B79259ED26DFDB7B48E6AC2BDA8C5DBCD573BE8BF758DCE552BD8D7B9C5 -C3EFFEEC0FEA01A3596C038750DBBDE019DD061AAC75C6DF81EA05D6C6BA940EFEBD0904EA64AD -CD9A299FC2A677BC166B910146703C4AC77A37D1E35275DF13F0C89B921C2B33905DFB79B21455 -B76CC84D7EFDCCBE9EAD6C4548AFF3EA59A7003A5B0BE359C8B5990DB15451748D00B6658F1C1D -3C02C9010E586E9EDA7403E03288F939C5A56E56B038BDEA3DBDDEED59953B5D5F3ECDBB9A7B20 -6E97E19EB486E666D22AF8E81C65ECA005599297CC09B83DAE12A4957252A92452C829A33E5864 -3AED6D1A5538BADB723346F28C1FFB55737AAC3B6B95AAB2BFC31B8CFEFC1238F36B24B5E0AF4E -201DC4B4F8C584CEE2B66A8BFEC755CEFDACC6BD46D1ADC9353BB4CD9F59867A8B9750BA0D836F -4126BFB96360523DD5EB41BDE2B6442D53B6DB3825AB19A5B8122D39AD6EDDFFDBE959A149E9F6 -5532FC70C32F297A56F4288E355D9E916225C80E4564FF3AFF4E04C65346BF983822CF047F27E9 -58AFE046332F5F8F122A687FD0BDD81032331699C60EFF44DAD7CFDD98EAB24D314013209467D5 -A80786375AB9285D7E4DA5D0B32ACC0AB990B4448822AF1D132563C579C28B38622BCE48919C23 -E4002D6563D365236ACBBC278545CE28ACC29A6DE5A9380A4AF6D2863C0283F75C864A8B5869BB -FDECA25E17EBF3CE78C0903B393A024C3807236C92B89611B70EBBB96D672132CD28B0A402F98D -D6475F2F9E471D9CF1D965E56EA4D0D6ED3344120D8D1ABDD8887EB839F7A2A9E0DACBF2555874 -A9200A29C081EB4562F10958353FB72F2E0486F479ADBD4767284E6339BC2DEA6A05556366FAC7 -D8C19CBC7CF415308FC33AC6763E2F450EB9FF4B86CA7ADB2A7BE9033255C445936A2C970D1FA3 -1BBD650E10EEEBB018212EAECC4D4D03046CD14B860BC6BC7FECB4C70BC60456295803399795DA -D15E5A7F2A3B8EC7BFF9558A0EFDDF178752D7D2BE6DF7CC32212E7F3C632B5ABCF9F440CA4195 -E50F3407DC05ED8EEE3C6EF5D927A304063D2C5927558E212087231C485A118433BEA5D0314C3A -B3DAA2631617367D5A8B79CF0C1E7982953C575C363FAE2DD20207D5F57398035825BAC5FB0280 -47C7D907B3F9529B9BA37245CA1F50488CB4F3106260D4C324D23E061A2E2E88941D56633B98C8 -75E93770FC0B33209248C5290539C23EC3E072AB079719D3417EFEC7272F496F0CED0AF2A58B93 -45F5A779AA54A0B05F80DB1908F6F4B91C0DF41AB56ECC0B54EA9BDF6929B1C791475CF0864E5B -A00DCA62280FFE6A4C62629117C989D332FFBC25530BDF4F08592741656B60D82F0CA39A3CF374 -5A626475D1E9783378E940659ABA7211587DE18504C4B300F40434CFE719CA3CDC3D89BB226F5C -1E345A3C9186716E03C222440EC5A9D9B585F9D10F9DA18A94F927EC32E73E8449FFE392F703B4 -18B525F5F8F765CD63824896DC2F81FA75DB733A417247F990FE6BF0861F1B463EEF1B727085AA -39E36B48F69CD2AF2F05A3D328B3F0565049C19481287AD0515A52B323C141789D08CE15D0D792 -FF2E8F498BA4DE090B6603D7270D993A152232F4D0E37739FE269E40E8EA92872180B67347522B -D93ADA3C3B4414004711C25276B1D845571181FFB4EAC47EB2B3E7412593A80D0AB953BBAFEB64 -A0DA73607A207B8E2CF3F1CB47B74F1D31BDFAA5F6E556D270E00DDFEFDFDFCD0BD59CD03C2590 -7A4EB0E2CBDE294AD274F29646BCBCDE44BE8AED41E878557F30E81A0842AB388637F7A212E953 -8AB2119B28C51FBFE4E75EA17AC233949A232B015F748A5C51B30ADB0918D69EC641BBAA574588 -CD45AA7791AF88AEAB4F82FFA0929BA72ADD4EAA58A00EEF780036B65D279A10240515ACBF696B -90F919ED5D9CD9B65D85450356521278D2F8367228C09507A6B52AE413183521BD2454A755E150 -784E446EAFE3CB12F35A4A92D7F5534260CB84A4D61980C535D23FD091706B2BAFC60047ED1388 -2D3DC00BB1E006A2D678CFB3C2F2921A30A8090F303BAB9225DC241F9CCFDC1860A062EA1FF404 -7A2706F42C1AB7893334548876ECEED621CB105D30E03EF0F5F2701824D1CEB599C47DE9CE2274 -A41E3D4ED68C56D8130877E21EE161E863CF27413FDC0A9FBACC6D518A767CDC7102B786FAA8BE -413F625031C79934879D9F0D0E82B5339BE5EF972F4B545293743F0E31647B6A022550B1CCEC31 -86297B1E8EF9A0AF76D6B144C84A2FFD5AE4BD4BBE6BE084BDB4E503216837D229CB80E4E2CC6E -3BA702B3E23BAE1E96309D919A3DBD5F30D78C57598EDC3BEE4A8374E4DB7623E2E6F1C3215B36 -31AE53A2911298A952631D88884A477BA09F526070AEB8E0E9E1FFB8E694DCB2CBBE4E531A7575 -DE9D35B8EB87DD5FE44D4044B674BCEC038F5D4D9324C5DCA1C0505DB20497C28F345A28313B11 -0BE19BF4C12A4242FD01CE385362C273D4A01F234642D9687DC930CD66263344161EC08B49C30A -0E39176E07272C5FFAD0E3A3489261A070DFEDCE9F27E5DBC8DAF699344C070B6C030339222DEB -C1F625AF6DB875C69FEDB4D6135811005354B26FAF284CA2B92F7398E24D8887C8E70A151A0538 -9883EC77EAE6F2F7D6CFA77C52D81AC221EB6711EE5F11C621EB3AD2ED5755F7B055C19744B937 -4AF98B9D178FF7AF4EAE1F54F49B4C9B76A3947D647941A5C3FB9C3E5B5C57E4EDEBCE7832B16B -DFE73FD84582E1AF57A393404FBDB07DF4344FF5837D825804ADBF5BF85682D9C2177ADA261501 -39B05AFE65678753EFFCAD4F871A3C7CDE919F7B677D93ADE141F0778C1DA0D25E4A8367089E09 -8C8E74EBC70BB5CB7B8717A2F23496BC24B00085E830EADA44B528E8A0CEBFA870140598F2F680 -40C237ED915D4E9C5158B1FB5D8ACE3B66E429E6B50C22FBC4D289A15BFF52BBCF71FDD36C6679 -5A9DA5303654B84EDD27CBF199A2C564F080D8F5781D39A32B21BEBBC978FF8C4C3694C4396725 -69811D60A95EC32A232FC0DF1276DA0DD6A2548FFB6CAD2197BA3C704D0A67FB83D05087C9C1F2 -94BBCF0F72EEE91833B9A625C6A749C3666C6A777010E05F26AFCCCC1A6D6CA26EDB8D12A713EA -43F0CB9692E6AAFB2470787CB207D7F3D297158E4E37CCFB67EF01177C36BACF5512919E62C884 -DA155BFE257B820AB36E88A9F8BD590642E6EE18D295A53B84342E7FCFAC64C21E681D3A974856 -9A1E33FB4633FEB2DE5727872201763A5E649991664C40C76907AC876DF566911F4F151C815091 -BF3116EE7C60CBD379D3737C42FC35CEFFD725492A80FF0AA17FAFCCBE5DBD30B3310319570182 -02E91FF3813E5BF41F7986BB970808FF802C02B31B896CB480A5082334BDF9A390CB20EF03C1BB -FB64288B244655AB9ECB8BF8B9EA61571AB2FD3B1E2916D38C247C21F4A4AE03F7E1CDD1A28307 -1AE0359B960FD9C45AE39794FCE5D73CA1A507FC6D0EA06CEED17A4083A5B6AD4AC63B9ECC0375 -0B799F3BB6F86E190BFD47CE7A697C6B1C89C3B55C2EC058F3CFEF2EB53B35CDE7749E79531D82 -0A1583DF38B2FC0A4EFDC5C30AA5D1DD77DD8196DE5170101A4AC8C8B9DDFDA93E9FDC07F3F572 -E1577A6E0BB03D5BEDC5B3AFACDE1F015534695942E9FCF6E3C8D7C70BE56738862E3A62922390 -F31AE5391D55D125680F3FC0DC392C7F696CB9CCE6EDFF20A3EA4C38EC16B2D33893E148DD373F -A3090AA01FFD3A37C1BC80531B4310AA42B7B0FBE02762A656C69A1285003093158CC2D13054D7 -A192DA888380C82D4EC01A77EE962B78D05373B37AC588BD5F8FCCDE19C800D68499E9B07BD329 -70691EB6AB21FF4CEDC94C96E55720728B5D54AE5F8A7905D6B18EBB184992C2D4B4ED1204D6F4 -56AB648076C24864A8A7E3ECA52D5C73E760A442F1D1A162F15593442E0C37855B51FEAACC4B20 -993D9D9B3EF693CC68CA75E449F1E32B00231A484F110AAA2066A4348D8DC5D6AC1FD374E404AB -96E308BB2A159901B6AAE12E1B5B6674C0D820841B4335CDF20F2C64CCFC7EB064FA0A0F07B125 -8CF9FA6DE9AF57B0ECF09E2DFE96F8F78B83C9F689F1A10D0BD87FE9930701583171FFDC30BB7A -BADBAB5B079086A7943A3C6EF5C9F652F9BF035916B76764B7B53EEEE54D8A33D5846FC6A6B64E -99FEF43C7FE90DFEBF83CE4356610C65C771426E7D28BB600E743A575F88E5A3F1A61B5F53D431 -151516B8D247E642574B409CE4191FB6EA040586F49FD9116FCC9B602F76F6298FA74221B350EB -F69F6854D0E8E2E8BA50D2DCF7C04D3B9B63C7022006371DC3FB8E114F44A501C28A5D63383925 -3896C3CA6A65A9C0B0976A9C5FFF29EE1D27B0B6A1CD2A33928F779CAB654187FF00CAAD0FE27C -793F5B1A1EAADB7574B2B007D9AC5F341E8AE471088DDFB6CDACD0437D1A75FD7530150DE40419 -E144C7772C5866DD09FFDF928EA4991963E0A5784961B467110E4B126D0F05CACF3AEDCC00B559 -9C789174F96D2018ACC8B58BCBCB827D694B5A4E1F8C4310F7FF5C50FB3E774173D21ECD4D276E -B02E08A6091D1201FC1176F046466E4D685692D97EABED3699AC741FD506C10B90DCAA6B936E57 -2A4D7E6862198B29AF57010188941CC7668EC6CE860F416D4AB95C44E0B1685804BFB329919D2C -0AD9837587A380C6FA3F605EE3C84A14F4E8E5702A1F5057317E2C3A70C4DA53FF1703BD88B18A -07A68C2622BA3AFD610A4C3AF73B7EA0965B34C69AF7216F9E9A00CB609AC4567EFFEAB245AFE9 -02506B811227AF036E8985A0D8931B7DAD9C0DDA01A88BD5E40C6DFE3FAD7D268A41D93EE38D2C -B5B8ECF6B7F295D107B2217B0555A439E9586B2B2526934DC922C5D75C4A5469F8B3ACB722BE01 -39318429105A4F5AC2657ABB4AF11ED67213AD16120EFC6026480FB15AEC28F3B0C0AC5B82AB55 -322A9E0E6DE39AC103C1B4EE3F6235ED6D9AF0AD4A2949C61C182978D99464DCE81462A75DBE9B -369F0DAEB667948727B721D4B6C7AEB0E72E86896AC6BE3F8948E5A8C3A2A04FB8867515ADB92A -B1D0C77B5A29D871B6E3406D44B6C4AF4A2907418BB99FF4912FD5E2171D141B09C3818595070D -580411ABC386329991F4D86FC7EDAABC817A74BFFE39093115F826345A48E966674B0D3290A6BF -1B6F634D002F7E17AE7C065DC6FB4A18897E2C25C96B9B34A6BCE88AF1F0D2A83D87C4F7EBECB3 -9F90AC1594D395F785CB0FDA4BCB7E16CC78E582525C5EA073E9611BB5B729A372DBB80ED0A53B -7D44E35E65BA5B50E383F932F7D0C38B4BCE43C7EEF4CB1DB16AD5C3BB741AE73DD00C0F5F949E -1C4FE879E7DDDCCD475197917D4DF3CF62CCCFCECB31137B0D807ACA9A0242898FAC954C382214 -66BB36BC54B1DD6B927924A5BE1EF65B6697FC6F0B621AB5499C03CE4AEE3CD7DFD1CA369DFEFA -F421BA01A8D5794F63B05625CE02513B4C84B8C0189DB3368E7A7568B422DEB07D7E34D10D37A3 -1CF59111FA54E490867BBB45EE635D4E69116F4F008120FEEC6FB7B7FDB5F921381CC520C816D7 -4DC29EBEAF41EA6230982E486E4916B285CC6656EB7EB2A1E13817ED22FE119E49452AA0BEA8CD -DF0457B8450FAA7CA6863B47B297F00AA6F039941D89626153D5FE7F54ED02FD02BD68EAB40836 -55C11306E38E89F4853E911696896232D12A0800113DC0066AEAC6E10AC5CFD56DBC4BB36BAAEA -B1A821CD7DD5FEF17884F46BE82040B53705D3541ECFFF57F379E9BE619F52436017F6C677E2A7 -8C105CDC276A7E12224BF30284A8BE1AE06231CEE80398F16040FC720934E33E46F4E4CFB410D6 -2B37C95CCF6A5D0B205865DFD1345204A3D2AF5AABE6C5CFC16E97FC3CF27BAAF54F4F3DCF1388 -1C9916B9BAF8D160DB5573F16C5A1F95DE88F878461BFE98ACF137C14268DD8882B20A0859914C -DDDE2899CAAA419F561C04FF0DC290F40E319210300E91628801ABBD1DFFBADC685040272DFE90 -7F3DC0C0A5C419FD17FBD4E7B60DC1EC1B69D83F4EDE8B8C6A4DCFD2D419BA88BDB4D9CA0504F6 -DC28F5071E73D2BA95D15B8AF01527B2321837CF1F66DCB58B6071349D5EC951E98B0A3E2945FD -FA928D6393D852024CE0D9F5AD1C0D4CD275328F1263A965B539F9F77A11D9601C70FEC6109E3D -525269B54AC7AE10ABD7E9DFE6D2C116ADCA04887F9A61236B2B6CF07BF6629B4F91272921006E -B73CA6695943828C8B6B6AE6C74DE26D00874B0CAC27B8B6CE2AC29FCEF2DD06520113482B9E97 -B0A65BBE14572E8ED5D698C4B30B31EF4A68659CB178DC79AEB9C37A069280F10E838075F383B3 -E59B8FA6FED1E85AE260C5C9612F65722A6EEA9E0E92188738019A3AAD25E746791DD8FD92AE15 -818BD278F2E27DF6F5E9F410E419935E8829990C1A46BA2912483D48DD5BE54A42FE3360417AC4 -86D19633867EACF8CDE5865F2A5DBCEBEBBBAAEA670AAFC86ECF234FAAE825A47014913BBC29A3 -FE6F4B8AE09F62D2F8B6E54D5D1691D8C1ADE6EBADD268DCFDDC4A58484BA72D6970F4DA7905ED -8070960225D73B77923C5DBBC359E34822348387C309B17E4F36324A2EA1C2F305D6E2C7573AC6 -63091F2F8396458371BB62B1BA041D418BCC0394B6974AAF6BE37E8E9AA7DA543EDE9F83F6DE06 -177E60C98680B8E4D6DFDCC921B6F044366539BAA9813A6ACD48D0F0229BB93AF244DD191A2B3F -26FE28BBF4CA9BA5D2E17CE8F45B35D595220E46BDBCC47484911869E700D8229BDE2DD45775C8 -5679A730C00766EB8E69BA8ACD2D903BF01B9F8164E3CC7C9545590C55B5CC1733BCABA7B07A76 -EA61A0315A077A53626EC56D1C2DF338DF09B4DD375FC15260808C2DB4F9659D52F56D474C588E -0A775743A7238461042BC9C40F1C4F5AC640F5467DF8C171E74FE670B331E57D7799F0A8D519F4 -88BDA299AAD86638A9983172D09EC8ACA7B7C0819CE7528FAF394569E04F54D5A6086E7588FAFB -65AF7E6904D5409B62DA57A2C3E26184D68D5FFF28E8A0027EB5C128C9C12F1C1CDDF08D8C9D12 -E057AD30CFD90F3A29CEF4525EBA05396370DA91A7802A51E40C331F5DE2DF4A39558CD6682640 -03D174A42C50B6A5B2AB72016B2B5E39FCBBF5029D39712BE03171F1208BE5E1A945AEC3AFCB9A -7A5E6058F70C3A1C2CDA74DB0C43A09422E11CD2A57CE4CCF0FE58E5E2E7E3051E401C1F34606E -616FFB4F4442DB141B9BE426BFBD43D14581EA4128D244818F85B6424C800DC117D6B7BD469321 -0D72550340B1DD1C432B05EC414922C899B75559D25A63A44223A149ADB574EA515320E678DF66 -6AA9D619B3C4831B00F96F1C02712C395381CD0383B63BC53C1FA4C5CD4D00862F6819B491D260 -4A4AE4955F7615D87C298396C8278075FDC008CAC25473C9F9CB28A507452B7EADFA56A3DAA7C9 -16AD4F090123C8C885D9D1ECBFF8D074C98BE8F18C0FDC2510A4305E9CC8BA571374BBB7BBF75C -F1CC9829D5A1A252E4730D1AE3210AB074B67B00C54391328CE1147F205502DFE3A6EC47A4D63A -B7D2637B2DB121E63FAC1FEC68888A2001840A05AC90B07B577E11D97644517394AEC07CD40D02 -CDB9BE567DA3F4135B0253D503D50EC566F422182DA173AD62E2B94D31A5B4F2099F9FCA252246 -6862BEF6585E1A189565958B38A64CFECA4BE515E6E2BD8BC5EE44FCA593A2B868544321948E7F -A4AFC1F5A2868CFFE363C7C6E88165444E13C8C47C65E72C9C8B28CA496B49A2E46D81B52B48C5 -7B3C8011BAB8E8DC9A14767153CCD8FF4A2166FB00A60402FE0AE3F0691B572766FA4BCE607508 -3B2B1C3E16CF4C9108462AF1E6A48F4D7A1A41645FA27677281022949500483B46BA23F1755B5F -EF0578E5F2E5BFCEE2F713B3324A8390ACE191D51408022C3C8F3A207766EACC05A14E3C3EB6E4 -85FF87CE4C62FAE3C6BAD0D26ACC8E7E584A8CD7A25A9AFB42DA6106F07A65C261671202ADAD69 -542EC6D1CC5B1EEB605E474BC949BA7B2E8A64D4F5BD7BBB326C06F9630D4F99B9729CF4205D29 -12BE9CF81FB114541EF8D7D5CE4DD1951CBFBB5B2FF5A9896202D438C7225B8B0F4C985B5A94CA -09448A46C2E3F04674A59F55BA9851BA61427380930BF2747CCA7CB932388561969DF7F5D9545C -5195E52A847EF2BF4FE33255606BAF3AD695544CA0FA7681034517640D5611AE1A5F1178CE695C -223E29C41A4017760F3651122B7BDA4E967BF5D76FB93984A52773C518BBC71DB32FC51FCC2F27 -BF59622C8907241A16D31079AAF1F310041D63C7750872F8FE294C06C483852399414A03D4B684 -44289717B3D097324EA791B963A273D0331714F1F912FD6262B81FC89A5050A5F341E91500CB00 -E970CEE22C6C28ED153A44CF43E9DA55FCFED8B953F9412A1FE477104DB3BC46A897682B4912AF -1DDE7F20A6B9A4365060CADBE5316B805AD0C5C32D55B8458C47B5D47FC1B4140E0F6B42B78FC0 -BD262313F96DFBEF9EFA5A4F590BCBA3C484A151C05113E4DB9C56FA187CE5D07BFA5DA8EBDE83 -3E75C6AE8D8E651654E11008172BFBEC0C59F83BC1D6AD9C4DE8EEAB779C1F8DC479ED084B76D6 -D582DCFE08BC4397ED71F2562575232D9B41EA2B5F23722DA40231E9AB85677C29A6BC37FC36E4 -DC4414661CC627EBF94AF2B13CA571DBF0105D08632CBF640BE1A6F4B33046238D62D1189692A3 -6EC37D0299B2B43D8DCC06D374EAF0B5D000A8B144A954A37CB7BA6B7ABA3617BE2F719FB95410 -5179899FD2187BC906ED19D54D8BAD2B970E7B62AE8EE1B17989E26F340BDAE188F7FF4213A1ED -758FEB0DE33A33FCEDD3B874791B6DA5F63B91A2ED5DCD67180D374562A2ADC73359CE9EDF88CE -824AAC15079441A95D8F0EAAA18E6CFE4016326A75A76C210347ACAFBB90C3E14C7732C8F5CE97 -CC4A9CC6E2F1444DCD170DB12A9BF832CA1A238A29C61E519E9F00F0F5090E84933F35FB7E717B -B64991ECBE650E4864B24ACA929743EB77591F64487789EBFF2A2BE399C5097D6C673B6C5A2179 -BB3E846F49F2F83F3B1F360FBB2DBA6AA4A516EA1BDED50A497ADF520F2D18846BB30AFA1B732D -761B6760080B448963D77676D9BACC127E5E033E4F1215F0DFFBF74247404B276201C39D187DB5 -9886A597E04E4CC05DBA500A24C9F2237D5BDD93F9089B92C653E47AF8EF00E62F5F22FF8AADDA -CCF1CEEE6350F3348792912DC6131FFC1DB93FFCACF5B88C96F5DEE570008CE39B1E002A24BBFD -C3B0A09767B24644216BF8905E02EC1FE6477575E3C45DA5A05BE475C20DAA7BCABB43B4A9F16E -6C5FF5483E0F5178E320CA3938736CF32569B61BE5BBC724D2AE0F970AC88A3B4AC2DBA8DE8ED0 -D42D0215D47CB49E69FE1D7D7E40E87D0354C835F45735760AC02A1324ED7816D9838D28578098 -DE0F1C6505133B000164083310573BECAEB20CC880EE592845B6CB4D3F2C94DD06E3AF43242499 -56C2DD51FE2D2208E32FC8A837B4705B71CA68D7214E92F2996066AD6BA8672A2B09652B3E1861 -7F6B1B60CE18F9EE5BEA3616C3EDEB9AB79ED7DBCFF05AE6C5E03F33C4B20C5D2AC8B049B09A80 -1EA83D3E1CC5C3CBF608B39FF2662369B85478EBDD4565AC7E6D79CDCE0A36E913FB6A6A098B4B -A16EDD7BF1415DBC0A31DE30909DDB588C573FA54C3A7C703D76BE975079B781073CDFD60EAE69 -6BF991B69DB54FE24CDDB02A44CA8C32F0935E77A5B8339F60FC8630A0E921A444643D68501E25 -F64813FD94AF45F9040B148BF0568C1963D9B26D70995169483B011D865DD264225322C45FC65C -5172DEC70D0B2B792594A9CACB21A225E8D07908A052AE4F0FBD3918F7F9AB0D7D2EBDA5F0E07C -D043048C5DA8F0A38C225D2C15A5E03689049D80463B7CC35A54E202FB2333707E0A3682B85150 -1BE15715A94AAFDB49BF6BE5F80D83FCAB28B0B800D685E658D41286D4BD421DF10428C40577AC -36386FC6B76FBB98BFB6A13FB6FA40C6837680CFB1520C0706254FCE622D14AEBF58781E0BF2A6 -222F54C43704D4E370D0AB3C91F4D5501DCF69FCDB8A08CF7706DFA456A11913C42F61A832AEA8 -B189409E146557338AB059AC7BA9CFEEF2AA969C5561B677414A91680649CC3DAFF576FE686F9A -B9931A749AD17F6C0C90120AF8A9584535F1F0B7C31134C09C8CB07D857395F00D98384D8BFAFA -FE27566AF9E96915870C87499EBF243D8EE8291E60DC73C8ADC2886E4D9808A39964D24B8EA30E -F93B04DFBDA5A5B868D29E3945030AC0A394EC4657B4FAD9D2E2C7965DC7EA916A3E20E67BBB7E -99D52554D224938DEB35B11676F91F5ED24BA6670F574537BFBCD403F09212C3DFC3B8F4DD9EEF -DE27656AFA41B69D9094FD23779B37D6E54DFB6A654923AA9093006B23CCDD68DE0D6DC6E8B232 -464DF25412DA32486A81887450891CE49172CF0033C3CE0206B02A9BC94FB609491BD3B8F2D7D9 -080102AF684EF93913160A07FE787B1FE843A9064DCE5E29612129DFEE055646FB5BD78019058C -8E32F297215AC6313022C40FF4BC9A38529CE8F574DBC54DCEC0FB37F1E99A50166F8D7FC40AD9 -283482952E0692D21C6B8FD7592B48D77BD3487EDFF6935DA9F4A926B5CB625C994B2365A39688 -095B9C4663254C7304617D2ED79F333F5769BECCF0B88287F1708FFA7211BC0CF9BB5715EDB733 -6F009A6A797EB3656F8B82AC930695A511B8E45E200BA82B81F3378BBE2196B4B6CFA19B829D8F -8FDDA6006EE028965C34CFFC5D71ECE1E9864D5C770B66828B9CF8783AC1413371FE27FAFAF46D -992047F64C1FBCDA55FC6525FE5CF16E681FCB6F35786E262034E1B1B4F09CC4AF3A478A30B408 -498D192C627B06AAF0D88E87D4FE13DC14A9A8A20F9EA404F8DC89C122423FFB5B0E3B88F25C4A -44C799449D13B169E28A60C86E1738477256CE22E016A0319B60DC8A9D0426BE137616962BC736 -6BE6780942955BDDE4CF4CEF3177E9FCE58E706B3BB8A013BAEE39506E7378A9C5A1F9AACA2EF8 -224186542501B765F002B6B35A79ED7A2A77DE1192250A3D119B687D0AD2CD269348C65075AFAE -D8DD82ECEF51DCBC18C374D8A092D99BAD3AB5C29A8FD28FB41C02EF3E4D095B7082E6D5EE1A5E -4306C9E877A7BE348FCA240527B4C349FF7FF84901A5D22428B27AC34B44EC507447644BBD5501 -8FBA01EBA3693418EA2F6906EF3C1577D91B63CD0BD2C519597EE07D98297942D80B0B65C25987 -949083FB0642DFFBBAD74C22C3C10102E57C7AC0DF4099C97873DEF713944BAEB920287B8E093A -BCE51BD52CE45DB3C6A737A55E1A00AEAB50E71F5D5B0CDFE61551DC7CC3BD03934DF272BE1944 -EEC621EAC02DAAD8E54E04DDD2C3F02CEACC947C799424EFD1A6C75C7A35BDCAD1DBCB9F19BCE4 -12BB019CBC7525536C5CE21E32E9B9AA0685C7D3BFF3D82EEFD684E8D63A526018F4305D137CF4 -6B97BDFFC1E28B7745C808293C24C849C9C61E93CC64D99820FFBC5F1D9F016DDA621C97FA8418 -A0410F78DDF4531885509464E55C2EEBE23AD17C60961699668EE76C6E44E0D0BCC839B808ABDC -B6FBB586C87A957136216953315981AFB2089C1105EF07DC47E5B3670EC1664CD13718B8DBBC51 -746750AAA374E71D4ABDC31F8E8AC3804E908597CAB8B3E70EB42AC67A0B5B1E2E628796BC3A69 -F3DFB63DB7DE4E40411CDBF98B86688AF4CCD8647AAE4E1D608A00E0834E7D34CFDAD8C95DF21F -AF62404643BDE3700514BDDC81BB34DF75C7F8EDA704B146D20E14EBC98B9D0A11218EC8578BF5 -239E5633605C769EF3EF6855F48DF16DD8DE5320E1851E7C17311CEB2F9A2811424DDCC0E6BD36 -E45BB5191D890197657B66FEE05B83ACB88E12BE1A48D66949188080A0F2DF71DA7A2E3B072B23 -FE94F176216AD5F8DBACE0791061056E5BA4364BB74273A93B853DB23E396116B8C1C3F3F8C545 -A42F02D45DA7DD2EAD34C01EDE163FC5B9400C0D39BF0CDE1B1FCCBB68D47B44885EB0AB14D205 -A30D1F2E4E1825D9742DA3EBF4E47F6F2F750562400C54330F792A998FFC158650940C0B115282 -D8C22CD34F8CD532ED3B94A5496C33B3802AC5D627B5F0A8706311191EC4252549D813C92A01A9 -804B39402660B489095F9441D958FE3873CD6E6FD3EA91EDFFFFABAF460B71F1C1EB9703A7D9AC -AAA34337C306B67E7460AEE1AF02E7E2E49A332599BA8CF2309AF2703631B4D91CBED26AF49410 -830CCA7023A7581E2ADB97387A7DBA23189AA993B86BEDEF59A72F246A4F58EBE354992D91514F -130AB2C167717A97D647A157BB6B1D968AC86C9A97E8FBDE9B2E141DA7A1EFCE2139D13F0B7489 -51CE73B1AE93B19E93B456C491363E045CD5A4C79EAE5174F332A36A9BC1001B793022983DA2A1 -8A8C7FAF236DA88415A4C7A262CA714E373A7333B366AB35B9E39C7389A9D3DC385EE951F66879 -188C6A50C3D9556CF70C19F3308ECAE12009C324F93F69E8208A2A8E9686EDBB141B1010368ADA -78EBF3E52BF05827E453A9B2318A7A31B681148419434CB738A5A36A9A3905DB00F459B265C793 -41331A9661352E40157221BF0D3EE9A3D7E109BD2FAED3FDFF58C8B17DD8D41EEA780A090B6A61 -E84CC84E0B5A07B7F176E3E3B21FA67A6E51B154DB1422AEBB3F11DE57E3A2928440BDB1005BC8 -58598D8D77F30628DE258F26674CADC2AC1E150981DE5FCDF9A8134859EFC953524A83C1E5F4B7 -0AB82678DA8798AB558C1981DC65545E9669AECC21EFF0F428709FC457833E593AF584435C6D49 -7239E2E6FE9F99A4456AB8CC54056FE1ABB9C591E11B8E1FA72ABD1C07F23BC65D83BDF2914F02 -7711C1B5405FC84371A9050FF9B85F1338CF24D44DB280A284F9DFD368816027C9B21F41BD7B43 -1AA73797585FC93C0A5EF1353B9012FDAB80EA8DA648A32BA684437E904793FA4BA37F83A86CDE -B9AB4FE06B5DB0172012CF27613FBFEFE108B459EF13ABD1F266E5921B51ADB35235A90B8E646C -FC94B8A2D25E295055827B734D965E91B5520601415F93BA0CA60767C60AEAAC82678E59BAE9F0 -8C33C925768CDA423369006B6A84E9ECF4A9576C94FBDFDAC3281E13E88603DA9913BA1E148A6F -9DDCD19E24E39B221001F6C824806A04747CB305F9FB7B22AC6C5EB18E68473959A5DB0FEB5EA4 -38AA8D7292AEAFFEA89E9ADE49034E0F03C2EDDB57D15C1106F2C50FC19E2760B8C8D1F3F21CC2 -306485BF437BAE4B710FC4DA3A7AA53F9A5B0EC13488649448249348B7A1618F5645404E04EB48 -D809DC0BD68CB12AD22F4B46FF2E9B8992B812F2CFC9F6B45FAC4B6180479E76FEAC7946FD6DA3 -965085CAA176FDA9881036220E289F6124632367CF7660E0CF5341E675A3E7914392421C1CA647 -103D4B9DD026337C4FC5A148C39F231151D9E0CD4413DE03379CF0DD10D829B95CFF70A88BF541 -6B6088529B04031C12B75E601BD72A1C1CFC52B5D377C5B80490105A0BDD5B6FE5821FF77E1A74 -DEE5AFA5ADEF8E473975360965C97BF48CFBF7F04DAC7878D0B2190A66596E10934EBC1DA5575B -B5851D04C34BAB17979B35DF56F5E3DD914D6DE19F22310854513C2766AB6A6C58481B0993CCA8 -95B73C3D45414803FDA3D413F9220AE10097FBE7A9A6CDD150CA0F8575F8806B7F8E35D17DBA0E -C9B5B827B8B28E634D4DFF5890D40268C96A752A8D03EEB11F06C7736EB608B101C21E71CEEC70 -73B54CB639C23D11344393FA857ABE72BDA7D0B8C1B47C92A18514EA4446E6BCF3C71305E53963 -9A0AE965D8E0E14B51DE79531EA5C3A1C0A9F8B8CBE42A24180E09AC811A85811A536C568DB390 -8F117D5A06C075C452CC2226A9DF157D84570A65DE6119CD69BC0936A0A4E2495330A023EC6C79 -EB8845454A88ADA1D22B3147AD972537CD6C8B7F1D41B4138FD6E89DFB65D12BBAA25C0E182077 -755AF5F0B4147DE8D18C59FF1EB4677FDDCAF2FEFCC49C0B3206BA2616118A86F85FCDE41058CC -F8BAC9045AECC291C5AFB4B92B067315BBA38295C256FDE9B4D77B99470DBB0B9240E682CE9DFF -ADC7DEA34BE240F6432DF291C19C1F2A4FFF206C0832BE628EF15672A3091B7AE7967980D10E03 -6EAC6DA540C09501ADDF9860C59E6D721E559F3BF80BDD9ED0F5EE3E95130ACF6C4EC7161B7190 -CA4D9F74FFDC060CC39FA20811C6A1725CDC2F61C080036181AA26C43E056D8FF2660F492C9989 -351B3844CC210FEF0694265282DAFBBB6AABFDFD6148B3F2982992AD34BAF3E34BC1E2DAF2F45A -BCFF9A9888412158C73F0289F44F7793B09AE11D7788B2DF2539EC09F0FC7EE91DFC836070A38D -F12DE1B86901966497AE0EFB1C403F81DA5CD37041F0242B55718A9B4855345EAF4DFEB6A0020B -3996618CEC58C0948B8D68042A87343E81FAA82A20F15AFDCE6856281D80E7082799B654355EB1 -C515B0EDB842F153A30EF109F3280EEAE70BD11079B3F339E218A77A5E73E55F7738A0C81D25FD -E5A24EA899FAD8D7D5F156BCA8DF019AB31BE0BE898D521D93E02BCA53F7AFCB1825A07BE7675D -44BB8868354416FA3CB072E032ED4E14397D89689D998AB3540F3851F4D271F0950270A726A885 -5FEB558AD353308D5E1448B3487F895CD02A9F1FCF7164D32747CFBFD7BBFA63470E84A40ECD60 -DDD9D4A140C1818C9B19A67F4BA7D4CC9582445E58F4A9E72BE3FA66F09FEBDDC41AE995525840 -94B372CFF3CCB76A6DECC20991E38C49B70834E1649CADED29C7A3368A93F19D19C8F7BFEE958C -021F54731E5E6379292C2EE8898058633DF19BC5F7463B48BC12DC2DE92C3AEBE2E7EF273172A6 -B064B6073BA7950D9B203119411494E694098803849CF3A2757ADD758C726291407085D17B054C -0B5AB36B843AB10E40BC1D556E42F6D12A4934AD98AA1DCE1F3B5E36B3CFE961DE91EF6D242AA1 -93D20582798DE7146964842BA49934D8117536BCDAA1BF4CFD39FAD56FD110128506F3911A2F80 -0CFA2AF2B6F7F931645F8F7A48A29341BD7D503513600E8CE18A086578C158BEF4222141BA1AB9 -748293483AB5BA75094CAC69D6B48D9A598A22843322D71FE4E54D016CBD139F1FB38730A137C2 -B56FDC38FDCF4B911AF65D9666FE871A0184EB3C8677AC77D20B658D211956B101396C72C63821 -5C21FCF514615F7FBE4EEB17DA9E79AA2DDB6BCD486A5B3DB522C49E78154749D9656EBDE63007 -21DDCF2D738EC88B96E2018A76BB47F71ECC6D2EA330796BCE78C1502AE033D1B936ACF4B14FA7 -DA665A97E4FA3AC09F9C269DCD5422C20B8E5E1E45322663041DA01CFA72787E903D4D3974790F -EE22666ECC6C89AAD89F01E5C683D31B69D298D5C82341E17737413B44B8CDD121705A4BC6BF67 -2CEEEB7C9F8B13E1ECB760A7EFFC1CE62249DAAD1A5F02D65FE2DD8D76B964D1EA8BAF9AA2428A -020CE6AAA48034D0FCE36CAD982A46428D2A2B2741DEA674C018C12713289A89A60860719463D0 -B35C76FBFF9C39A73B3277B357493C704E1BFBCFB86BF566ADF70F0DDC5D3E01A0413511358924 -2CC8DB3107E229733968608BE00ADC1E0DE80427C65C74F696BD256A9E74731EFA182028D00EF8 -E686A53676FBAE9870E93CDB7C3AE6AC9F4F629E40D209EFBB2961F89ACCDE817C4906DE2050E5 -DE9646B216E31A4FA02F9941A9A104F656807969E5ED4A639000C7BECEA5499B6BED13B00C7FD1 -1473BF322B3A56BBB290C230C67FD50EFAE3DA7C2D8FDA27B0BC66941F8012FD4A40D7E65E7CDD -4498B63C452F159BA17E2B938BFA3439BB0DC71F4551EB5DD196C8B7C0ADAED1C255883DFBF900 -94740283291693C9DC77C514F450552C6612222538C52B6474C077D71E1369263ECB4948194514 -CDA6A491EBA464C262D90C11FD4706D39EB5F3F4EEF27AAF150DF2EEAD7EA06E99358ADEE0F1D5 -9A24DCED2FB72DB849F4EACD52393C6EC86E9CDB78D36B6B3280BD7B1C3DF08DB3BE73687232DE -A4B6B585CBC3748164C055F3D7F53C33D9F76B5DC7AD74263EC362D9E2FA9BF9E4247BB900C4DC -60E9B4898530DDEAFE2E316827E1CB13E9E7CF88D9FE0E5043A55B8A5B10CE654D2D31504135A8 -5EB566691B4812D6E05F34BE2DC6C1BF70CA19A6633000732FEBCE0EBF4E28721B78A12F23F79F -AF43F2C600D41EB4E3690B7EA24FC1AA3092B5EA5AA8F479F4F54B2C7721351992C114B8A79636 -FD235EE91D6B5B1BD5CD918EB3436C929DC151CB5C42EF4F62D21604F0F1EB3E01AA78487B4B93 -85D0E09B8E2531D936F5D3ED4D8C244B838B8E72416F9D4716C41C89E2980DADA92B50AC976D38 -7F9E320775EC1E9B09AC93914E01A71566CA9343E853CD63F9C0ACE1FFC41E00B5003AC5FB68B8 -0DAE5FBEB6CD8419E2434DBE40D017FBCDF617F3A8B916EE5D8ACD3689A9FA438F54C5AE5C02E1 -CC6604C021400A437E729C6FA9BEF55A049C7056DF91C68DA0C2F7990B97994A10DCD49260FCC8 -BA315238CC2DEFD07651DA975DEC1889723FA502E4BFA7ADDD25138C84BC049E4ED25885B9AA66 -4BA18B23764C3AB41213A43393EEB6FB839AF29F9E4B7AF4317E455C7F37543C668AF9B8B6DAAC -068370E787B7D64AFD0E8C010CCE9BB2C0D67A6D8CA0CCD2F6DE3FBCDE1BC6CF9F7AE893F93AE2 -9BBE9AE62921C176C9D87DCA4608DAB3A42EE9C2E1F3180D200CFC2CC9706295BF2BC5B41F7641 -1E073C36D501F7B2F2A482D3DE67FE2A65AF72A909539D1109E70800A0126315441464BA5D1685 -0D04455746B4BBDC085E7D15BF2CA5CD8E717DDE8415C1766057473F53F74E544CAFBA17D5A4D3 -F784383FC5CAF153263794C8DEB9C06157407A0D65B0DFDCC20381CA0B54120E874D8154CBC016 -6F015A25CFCDD50A79929B2A9374BB734D3FCE5A72E270089CCF6ECC0FAE93FA7397DB79AC9303 -161BEC51B8C599881706B13A67324F029F62DABE8BD38D6FC5400FE28EB90033CFD5A1C4A2271C -8375AA995192E491436E96AC474DC3A055E5D0DB75116C88E3E4A25810B15E82CA0FAB77546305 -7AEC6DFDB569A2ABBF5F61EBFB535CFCC451DEDD1001DC891A73BBC3726592543D15A2C90D8744 -01B996B839AF5AFE5AD85A2781A769D69B079486D4B5BDC1019CDB69046E4192EF67EF3004715D -7E2D48FD1000DA93C2D7A963FB80EF45A0D53E7055D5A8EB872BD9191C8AA544B8BF2FAAD68531 -3909249571656A63EF113AB89AAF3D12F1A2793197962910D41C5C69100348C5B486EA8C35429D -11225142A70A578B5D4AFEA33D6C6A6C20CEE87CBA9CBC30835067EBD602C4B7EA3C7A41CF8061 -B337EE9C4E279E200C924B1DA0D81C70BE1830487DE961BB8943008D6FBA2F5F5C0A0E319D0EE2 -3C458A69D687FAA5FDDA985B3593CEB75D0998736EF26BE2DC2F7ECF417A5D140A51953D9F06B6 -F7EEFE5EF1B13DC525EAF8A203D4371144548DB8D849005BD175354B9E0834213EBF25581765DF -7B4D2214568C79A2E0E2DB79B6D9A330B5D58D9323CC21654ECECBDF7BA36ABC9F3025AA414A12 -F4A08034AF437BD4A184811B8C861D21D68C89E1D18E51AC98A308F91D7CDE402449FFFB4D92AA -7CC3EE25DCD81D03712C0CB1666DAA5669C7552C19679A2F1367A222634A3B3EFF7CB21FBBC0F6 -BC37C62BAC7FC3DA19533344EDB5CE57C8CDD8A6637A75CBBF8100B8049C1F1BDCB695FE052A13 -478D5B16E025975EDA0599E6BE78F345CCF99A3494F610FE4614CF6D7F495167F8624E5A837157 -41C98DCCE432A70222F4BDB2C946E804BF5901E43222D84FDBACB5059DD9BC9A874C498230D3F2 -5699F647C873D6017488990C25F4A84EC4C38ADD46ABAB93A0272201CE3FA3B1CF239FCA8FF519 -8DE7474518CE05F3F0D9E72DA446589CD7C084B3567D23BCE3049FE59F05F542A29728B08A9BD6 -E853F3637A4CC9865196A24C9C6C38B97E2D2005C2CD395E94260AA7530A6C136BBCFEC333D0FE -74014E6FF97BB72CD076ADA21B960462B0EC7097A7812EE3044B15293A02E3E0C71F76E10ACDA1 -73F29CECD6D9AAB7CFCA3405772463CBE2BA6D23A270755C3C740A5BC4AD27C35B95932BCD8B81 -5F2E8786A8FFA7746DA891C83A962A3D88A7B62C720A0C7360397A4AC79D32EF020C843A1AD856 -14FCEA427D7D452ED6D25227BFD6A7C49340E178906A09D616337FE7A3B44854B7B449A4856F6F -AD157366517850666FEF127EE87E97234BE5E8059E1975261DAE35308F31C3E14DBAC56FD7C055 -BDEA02837FA4183F158F87150821DA50FE1A57A76484FAB98F808C98BDDD40661FAD8BA00E64C9 -2517E259179EC40DF9EB005F517EE72BE7A3F3F2274C6FFE3712A4BDAA872E19D93D8C01056474 -41D72B163B460947977F93206CDA0282D63F3B5DB0D8911B5F921D5054081B460CF6B213D2547B -24BC46CCDBFA3E7AFDE74501B68A31BE5ECD011F4CE6CFFD3D762B2D90005BA732F15581AB6EF2 -E99264A0E055EDF3A2D8C9CFCFC0989ABE3B2E9B8FF08A2BA1EAE1FA92D49BDE5C447C5C156CF0 -E5D5EF4A45A1CFA72554B0AD77520C7256FDC2A7056492D52D6CB45FEDD5D627A28956397B0869 -AFBFA53B5D3D113E7ECEA051A0E3FAB7CD8E62BDC94F8B482EDEFE3FCF9D391E59777DE81E5609 -D92EB704435B291E31CAA685E21AF491ADCB2E2CB67E42803B9B84A6479C149206CB57503F6669 -323DBC71800844D05C335D966398B4BAB12079965768236D29994B9B4E3B5794D6A8976D2C87A9 -1AD31BE5D9603A7C3A061C3EC9827E6E48D105F093CF11E188F236815D7D04B879AFCF4536C9D7 -9972181F3B7741E48C7081CFEF5A7CF0E1927E80DD08E3EA3613F5C8671753A00718BE42EA6746 -D9532D5A9C6C705FBA16822E7A847E8B1C178024754B812F6B08CB7B679B5CE29D044E9A2F41E7 -CE6DE6B088B3C1D3CA882EE6692CB18DD9B5070CAC224C95BD3BE0F0FB07218947A9B398C40D55 -D0E09AFC788D43392F122DF3CD74612A2226FBD74A50C53456D344E3725E21DB2E2E196FE1532E -0EA5CD3772C9A0B3A3AE8C3C64DFEAE4C21D12F570A92A84C75A878084EBFAD870C1A5DA372DEA -433EAFD79F350EBB0EE20822E5A52C92730FD2A0D08F9A004DD087853A48D49507AA5B1A127D19 -921DBCE86CDD407B5B4358E098AEF334A9FF7E4AB3DE94D3414E47D758A4F37998BA6323A27385 -0DB0D41F9580341570A4CA7149EC6E4F5D952E5DF8024F86D2FB962D7A717AEDB7C95968D3DD41 -DE45F380836F03B9228401B5A0EA8BA64D7AB60C5B45B8A25050B985F63F66BADE6AF149C0BE52 -59D368ED1716D125BF6B5587D443C6D5ED7257C28CAA747120565FDDC0078D4D805BA937244772 -37927A822AB6E08DAD4A672F28C0A1159F061F46E41606A1E00AD0C9BFDC0DB57114083E319A71 -E150F6F2B5AC289425F6A7A440A83202D4AA8B4DE7492A95FD347B281D7EDF6342756511758D6C -FBAAE5E073F5D15A378F36DD1898ECAE4580C3BF89D6416CB521506F86A2FAFA04A91A93B191B0 -ABD5D7725EEDB2B5983C17333B78D7DC84EBFB7E4A849D3DEB1676A44DF21535931FC16D9D818A -0C5A8FE5E44279E12BC1CA2E8B2EBF90576CEBA9656E2EBED725643AB26341D9DA080EE57098A3 -26B69EE4CEC5EE684C61D03876FBEEBE651D980738CC23CCCC7376328314F5A6D1083552631627 -1C01A50150FE8547B4BCA181E1D887EEC465E2AF3CA26D4FFA699B0ECB9EAB0DA71A590AA1CECA -FB8DB0CCDA18AA76335DB7874BDC49224D1DA363011B0F7187D2E0D8FD19189A5C82C4FFAC4CB6 -0FA7B0521BA5194D1222D0779C74EDCE672848C275C8F8E9AF39E0DA3D8BE9B1BD4118D9B11DA9 -D233D9CBE8C5AE5D2A60FFF7D28565A660D27F515D6FA0897CEAD04C6D6E253E0ED5E56DC1F005 -FCE2AD618F79CDA6826875D91262CC6D6A64BFD70E7FDC965CBA9C6BD6F251748A5A42BEE4AB29 -0E0262A4DB580249A00C69D1CBDD49E3AC700CB973BC9358ABEF8A116CB5D8D4668C302EBDF06C -9504684D7D18E522F7C42EC6A77171552B873E753C1A1888666D23E6F9225D092C6DBF6A0D27C7 -6933632C5F1C5E01C8E139A9EB9BC084828F85095BD9E6EFA0224F86977DCFE653F00AA693623D -CE04693A7EE2384A285A6BD7AC8767166FDE75194E326CAF447FEBD242CBFC71B637486F9934BD -1AA8BFE3CB85F3DD258E079EE910AFA64770D5E30CA9B289A4D7FB7CFC48A7040774D36E8CD061 -AB06FCD9234D5032EF68AFC943850E53C1C3980017563C67E89393B8EE4D93585A4EF1533D5F0C -A40FAB6EBE8721F58D05AA69D6067C2D6CB03FDF0B83DBDB696D4D4AAF3130A98729DA58CCF546 -AB2202D0B4ADE6B4845A1202D3F2456E34A1100FD6D445203153A1D11F3A2511CDA83C936AEF3A -B05B5FB32B76029153B7FBE02057AF6993F47149E90080A3AF7CB29762148D6F94520A343E525D -9646C0C79F1C79E75470D232E2B2CCC04AA8990909E0D26DC540582B699A71BB516DC2860CAF4F -6F0BFC7B5292052DA41DB92BCD030863A117378B93DF7CD9B0252964BB4D80004EF8B3011E9550 -DAAE2D24F2D965E90342D847B3685DB05631D550C1FCD76C3B3903ECEBA1A2496F0DF28F4FA367 -C9A9FDB48E5E1410E815D7E93511EF7C94224686BBE827C833E4C121747AF79C69A27A0DCD982F -91AF0BAF9EF3F9921B795BF42B817D93DD4D816DC698D063AFB306CC2000B37AE93105AB2E6DAE -32F9DF44C09E7466A62B2AD48B216374610994CB120724D0000AB54F6837DC64ED4F6CE8684B14 -16D7EDB9D9A399D39274FEE6FD41D8E412B158A26C304FBD7CE0C4F96D01F5AB8A20B1FC4F00A9 -D33AAD2C656B31053198EB4704460D476FF2F505321212903FD21E2059C470643152B99B2E903A -491E8E394BBCB2C0411D6D86210D5C3A43BFC2E01EAFDEA712F6CCCAA90ADC2A358AC62718D482 -FC31914E0157733283BCD29DF6D2AFF094C2496BAB6AA72265215A4BE34363EB879889E7727AAD -054F90172C1D6858C8A338DF6C1EFCD64DCA8ACF46038F48392E75DD0BFBCFDE8EE0791CA2C0A2 -8AFD16AE56382ACCAFEE2BDFE97DCF38532C19BC5E36F9E5D82806D26171267BECC9FEAFF3000A -005686633FE25967BED0096843C464BCA03314F1C5971FDEC8E24B80D0FD97B7E5763B427EBD26 -FD8BD086A2C45FEDF23218CCD381BF364EFCAABE04DA6687241805E37AE866786DF98C62745FCE -9E0D6332F2BB90C0B2EFF14D08E8EEA6BCDF650D8996F48355D26CFBB859CDB418973A65AE2C3A -767758AB288A038807F4F6469A823A9EAD746560130A2A5308AD0C3675CA8642B2B9FFCA8382C6 -E61D7959D9BB369AFFAD1C69BE31E00F0B23FB8DF407C5EC68F3BF298A35351844EB9653C83A01 -EDBEE75F792C502DF53257121DC8A8F2670AF1FC747229B53B7100D02E73821E176CF5B7518D53 -B420B1BDA8B70CEAE801D745C66231E62797084CB320DDB021BD5830BA1D3F49E03864E6A6CD35 -34511FBFAE8A4EC4E3EC817228C40F7F87F524790C4A3C4C90C010CD965016345018C27A1325AF -E7F8F4A0F0342632D1C5F9E6728CF930F789A0F3C740FBE88015E052168A0D722B1621ED710BA6 -6842BE691E91F33EFB0708E3EA188DB42E8F4A54F77D61725731FA2E2D61F245745AC1DBE231B8 -460C3323CEC60BD1CE92CE7D1A2640D1594D24683D5E139164A26568544FD89F144F57905DB9B7 -EF81A36BD91999CCAE2192FC87C88F33B01C609A981D675A3AE8B13DD05E2622808826ECE05EEF -3A36E25D90EA3723BF34BC6D86CE95EDBC4DD3D088869BDB105A5334B5108FADF1F336605A734F -17044A5EABF468F4258F9E9A3E69551ECF0A4E8124EDB178B800D2708B95C2882A757568CCCC73 -C40671BA1B7737F55DE6ADACB84E87889738603A6D8BA0DB1D4C5B3730C169DA35017D477758E8 -9A33FCF009BE53F959C3F22973887E920427A968730DB8576A07C801969F89C93338A605B8A961 -54C62036EF908C81E65DBE441031994CACB043755E76A2E55BBAF6628B1AEBFEC81EB727662E1D -C9DFD4149217DFE632606ADD92D2CA4E14443DC01CFE7EC166A4A2BDE3A06BCDF16500E12CDD2F -6982F19E9951AD81302D2D0A20F070E75C0A3EDEF40AEB126DAF98250F6F3E38F4BC1B626E99DC -647644AE6E4EAB48DA046C826AC7FECE466C63F75B872EE71F4F3A2122A383BEFE7103107A6169 -76C4FAECB19EBB850844FBEBBC161506715C357B35B83DEE1852B7268C65F87F4C2F96C3FECE37 -88A902F46571F0994A6586E7E582AACD11EF5EAA69097CAE24C610BEB303387CBBA1DE0D075FF9 -0BD4BE7E07C795A248FE321B468E02B84573D7486D59CCDF8325F94033EC633D2BF2867A42C0D1 -E0B0745EF8D9049D18B2AB3172093793F4CBB9DA888AD43FC22C933FF5C4DEE3D890AE21B280EF -2DCBDAA03AE4EAB52F81A14412F26D2D3F0D49C8335D8EC4CAA6B3596238A28BD62261094E78DE -BB0ED51CEBDE25878E1AF705C61D37A71FF60AA47FA39DB6DDB5EBEB281584A5E67B971502716E -668FCD2A7589DA07917A048F796BD1C8512894F9DABCF712C8CFBD9B5C7760C6CBB3BC6031F288 -235BD791475907E5BCC6B1F300069EBCDAB1C3DC52E49D5C8D95994F880C5415124BFDD673C492 -CB6E77C8C44EFA04F7C5FD357CDAD23CA3642AB4359A52DFD2341072E368CC76125C0BD7607B11 -A7607D35F1A97F0B30BB56D4FBDFC9FF4BB4DCF7D670E7F5615AED6CE0BFF78E3180767C48ABB6 -18F85CF1328ADA21E937FDF0F4BEDF9688870775AD55A0B19B20948BBBA1B75C1DDEF0C2293B4D -AE1F54F4A99D98F9B40C915990A6A08D5464AFA2F33B186DBD382D01F8B7F4341914311CBE2507 -DA3D40A333890E08236DBB4060CEBEBEE427A4DB8169E748CCE7917C4632FB85434C2AB79DEA36 -5394EA461720AFE26B51367BFBBB310A3CBDF0509EC75C97D6EC15489F3E2AD54D5E76FFAD6809 -C8992975D9C694EEF17EC52E78EFC3669B570D69ACCE61E5A7D6E73FB37823D64CD9A16BDB485B -9642ACF32BEC3FFC593E03C3CB71867A0CB57DD13A93DCB093276E85D153CD83920D560DA50C21 -443C72B521DA546F12857BCFD5D372E71E0AF1C98EF482F04FE2A1B577505C602F0413A71B070F -131E9DEF87869FC219DE59A1CC19AE38EFEFDE2B69F52708B60E48EF686EB362C690DE5C031D62 -E9ADA7469297531BD01F6E39DC78B7C6830AAD04277AA98EBA1D82FC0C00F5A6A1E108CD6835F5 -53346E921D728F1B4EC0B9930255A68F3E9031F360CCBDF01C9681D602A5B9F0BE055269D419AD -73FFF504DBD4953CA30D4CC5B4C57E7921D6E648E57449E189CF7820BAD4274555CA45C66EF0DC -34DE52D3836812264986B454C9612AE8F4B1A93C86B5E4B7DE304AFBF080BCAEF1C62FE35BB3BD -335910FFD496760CFFD002A20637C45690466EDE85A4F28965CAC5C66F323D3960DE8389F1A758 -027BD0C3188F249FD61545C1EB9D78A0EBD81E5F5C2C8445EE82C0CB969D788F1FA267B18993FD -ACE99B21A214C69670C77D920617074059D92819D79FB4BB4497F4E2BE1D8243AE0DFDDA0603EF -E51D1F3D47135D354D9D7F756CAC72E35BD4E8DECB1ABD53CE2ABA5DC1526A10DA69DA2FBE9328 -A334381E0CB929266765898FD38B74039766985C88C2BB9C448B767264353A0BC63B0FD1645D71 -026DF2C08449A9F32F25C4F432119BD9A7014AE3B43DEBF621C9CB92346ACEEB5C2B599D553708 -2E054C3A5680A08191D7B87991C2ADB192BD11545BA9F5096CAF2DD7B7EB290E70AB4FDD3989A6 -B7CC123DDAE328E922100ED8C7FF95867E9A168F1C9752557AA023C8154E9BA970FA0219A9889A -5CA8D001AECABC4CA840322BE9EC9F6072E6E7363C258789D3096875DD236CC02B078B22484767 -D7A0CE87394536A796A6498708C287DA9691B1472D4597DBD49F4204A05191265F836EAAC4E5E1 -B1D7687BEC630C3CA744A044993C03D4B935E1CC730FCEA68A2C0F5CCF52FC1A274AA67B3B6177 -F4B87DCED4856E14FF00FBBE8DB4E027751B367722ED0B39CC88216177F2CA955958CCE0A9FE85 -71CF8A1EBF64D2BB3F177F3F0EBA581AF9ED746E16CA9CCC2B5EECED7A0A2254E766B36AB84A25 -4987727F130AA391B5CC2FBB9854AE66876FF09A387F98EEF39D3DDA94CA2DF149EBFB59EA4D4C -CBA5B5F464C4C094CF7D1F8970F8F5BF27E4C7EC99D5C8DB1CA55DDC6DC5C7DD72B62A7E5C7B17 -D5379A6CD2B6F666FF6CDA9BF690A8839E234EDF6E81BF3969F0DAE3CD69D48A6F5B0E57660BA4 -B57406CE46E3C36C0D348EB44C1116878449F9182F23BCB7F33F944D33D15BE83EF3989FB9909C -3D5DF3442D7CB7FF592CE9AFCFBF8B1CE63B02309212969E39B9C1A933628FB38AB7565C3362FF -803A159C82B0FB6D9C8F1E7BCE0DBA8C43C8A269DE2E684C9E20FC4818BEC7F307B6D34661D4AA -FF8A34AB31A2B3A349D706A34831BC61ADB414C7B75B78D08A6C748715B7B2FC84D94B73EAA2D9 -F1DC97E78A3A4D3375821FCBF80E1D329289CD698DEFE021DC2C620D1558F0D2444AAA9A18419B -CF2AD07529D307CFB11ACD08EDDF9371DCF540B2B9AB5D005068E50EBB6F9A0FBE98DF6ADE3D4D -F2F0733C8B094202AE749953495FEB3E9E9A645647CB6755B59E7349A1E338C4FA8E4BFEAF951F -407EB9F9CF1698C1B253D471FE553D8DA0C21829EC10CBFA7E4411DEC7167531B006BF1DC11E5C -8BB96793B69BB78081D677DB08C3FA70D050219DE116C05B3FFD88853496D73CA094E3F373C39D -F8D8F16BBF9F858CE416D17797EE7FFEEBB0428B15EADF7C2DC0DCB6532CEBDA1C07169820170E -13C5FC90DE91C9D95DCB23831370A5B4B798F0B748C3B80645EC427965D6A24FE712F199405812 -EFEEB8DDBA2AA91AB87EAD349C87248122B510A0DF27EE46408416D8CEDB7E69EE2138DD95E526 -37D44375ABF3B9C266EDDD81C562501AFF0D4241304A04E71346ED178289E1F1CE61772E1C7EC0 -01E94564CD5C9F3ED640D8DAF6C1082CD8844653F78F8000ABBC4F34828085291893D690403573 -888EF8347F6723A5F5B7B49AF74B93F731C83BE6AAB8323D2265932ED00046B5A825E1729FBBB1 -BA18D48413A9ECDA400E75722E01C74D6BE5DF26B17DDF10C370083A20EF2D1080BA9F2C2E71DC -9C78D0202B9D82EDCC7BA3A8940ABBA51BE105FD8516D8C092EB4BC9297768351FA0BB13722516 -110B2C72FB731641B3B15347CD68C894DCF2281D7A028BEDB6D3001D1D62A00A260989511C8FA8 -0C3F154B12B63BA7B639E6A111504D0B0865B08F0D9973500C3664B374916760F8588C1DA9A6AF -74E9827194A893D0E419164521AC72B2EF626E544C3461F9A29791BA69814944DDF7032D2D1BD0 -D173D18D3E06BA08C209B20C71BA776B7F44240187996B3F4C42A797CF50F1512047A6359BE499 -F65E639D59877E7263BB0CE25B005E7A387173483CAAFFFA0DA53DDB86CA12DDCAF8E415FFD59D -1E00855F837CC1087F18471F2146E0E0CC1901F9D1B968C13BA2209DE45FA7FA4863B159EFAC29 -982D64DC60F248DB16FA9F08F9959E6FB01543A77679AFB705B7E03995D309B901BBF9860F96AD -7715E7E3F0B66395C953DD21380D8CB1B1791F353D06CC045C457AD2FEE593C32D77DFE63FE9E5 -9F25556892714F2C5E319C7FC1051AF2E69A0A557F26C46A9F9B4F176C5CC1B10AA4F00CDCF75B -3541154818360F6063491BE10311BAECC1E27C38F7349B50ECD72B81F5BDBBE7C2F2994BCF843A -B06FF3FC7D37D6A5E83FB2B42F884E3BB14D7CE1B181142D558762DD7CA511A79DF94ACE080D91 -A001536BE0848CBB9B54FD29B1AD29AB5C7CAE5257AD8D5462DA2A9D2187267CDC5D71AE4899EC -FCBD408177396FC553884D50EBB82E5E490A646CE133F06FCA26733A5B8AFC13DE5F3ACBFCD267 -ABE6490790BF990FA258D7B1F5E513A92F5438C99D8158512001538C085259CE8552A617855AFF -7EBD71DDE3C0C04B15AF98F776E001200DB7E94D50E7812A5D32315AAFEC430EC116CA41489C87 -8E19DE768A2EE390E610F92ECEFEFB5D63113078420EE807194A218DA54D186C412C9906BB725C -D4380FBD73236A727895C0BE672D5EF49E5C2714454504E87A8D1B2AC808AD09BB47A8165105CA -27813EC651185F63C5A9EFCC9A7516DF4125E43893622BDBBC8973C8C321824AB1EA53090DA7F1 -B3EF9AC4BD5F4F7D65339D0B32884CC14826EF4860B28E0B1CC119BAFD0EF0BB890A020728DD1E -EF3D898E25610AAB5FCC83C9FD677387305D4BAF65A7CC9CCFDA17A42E24BA625580F0708FF9B9 -9A87CDF87452E87644CD9F59AF16A8E62A9B76BC3385692D4D3C0294EC71E3B662D53BCC95291C -3513C55594FAC96ABCF86A421674B92A8610251D3D6E0BCF60738FAFF64D2024538FCC4FBC588B -843665FC4FC64F6092C6EE7B682A3E5FA272E38C8FAA1CFEA55EF235F5D67D48A46A00FF58E47F -F96263D4FEF92F333C71AA3D6E0D3D0325DAB33F60234E980A5E0B8DB77F85D628A693C81A532E -BA7B90C071F8B7BB261947D43D70F7B54EDBD1D6F30B8509035FCF19F1AD8779C9088ECC6F9D1D -EA48694ED5F7814DFADDC430EB361CB26B9AEB430C31B2D8ECB1D995DCA939E2613CB48C0BF401 -F2369329C215B3814BD135E573471527958A3DD8971694A02B812A33F4F5588F06CB0FE949CB3F -648475AF8C778DDBEE0A7E522FC9309A6496489856BE72B91D6408CA7F0F388767C8A6B0710069 -23097353EF934B0C6A9646054B06B4FFBA632813676CB24CEEC3E28D3D63C8D13A041DFDCE0158 -72A4E2DE2B4735363CE09E06E4E7F8F6A9ECE06F8BF82937A8D893043B7438832F17F9D5E7B082 -92D68D0E0617B22E126E740E1B67F3595CEAFBA8DF47059EB6AE1FB15F2DA5A8981CC9B8805929 -F1564555CD055614CD94A5DB5487B39636DAC4FFBBDD59665AFDBC5253B475316EEA6888309F27 -AD14C2316F997372D5688DFD804F6B6034B57885B76705D2E3484CAA5078FE95592118C453FA65 -A99BFF295671C1E9BD2E6AABF1F48A71503613D3A98FB047FB5278A456A6FDFE328CED49A2121F -0D1285701F7400A96D6F11FB99C6A456CF1D792CED72652CACF93B60B273006C83DB3741441BB9 -35A5481CECB254F410103A6DD01882097C8D19EFE4990951CCA88394A0FDEE1D763F6381391C85 -F78B9A2986AE3A4622E9FEB55B38ECF4F0E0F83DAFF187A734C752F579906668A745D4E7DAC7B2 -C7731A61252E51B8FD85E077174BD9E623F7AFB78DC102CC6368E8E115423F4CD2CC4212F4199D -C5D6AE755191D6E6BC040EFF9DD381C15FC4659992FF8990A4847A4A11B50A241031194229B54F -00B1DDB9D1AC575529629A161A0F1C98B248C605ED6F85A9EAD6EFB098EEF9810C320AAD530901 -5125E1D5887C25E222450A0C606116F1DC2ED89D3F2D3A6C666171371E59F1DD1D5891DC3AC02E -572B135BADCC453EF126F15C986499CF1F3DC7B9F7C9AA47399022CF9DFA28899C679F76BE2B00 -1FB281208719E23C5301941786E1873CF7CB4DA0F5F92753624C7D8157683F6E957805EF570618 -6E9EB09162F9AAA04D7907990296F899F1621A4976734F9DCAE11CCD969F9ADA669D86ACF1FD71 -98D23A1BE3915D8ADE29D8CF640D5349FD3799EF45E6BF86FC60A384AC7D6F508CD17A4B274B37 -4B37645B25E34304C2D82B2A31170FBEB0A68966793674C1B3A4B6A117BB2F1E9F7CBD52E590ED -D32BBE4CC0F75D0861D37651754D3BB1F3FACEBBDA42355D301510C9D1C35B8DB1ACEB5DF35D6F -76CCFAC79F3BF0C5C7F797C894FED365267B0A33514B8F7600424CC7D6E7FBBE0B0D3C8B6CC8ED -3CE2B4520E2FBE35A154107E6B84CDF46828D6720F62235AE2457D0DCDCF91010BF15D3CAF95B4 -A236019BE0AE1A2E8F78F5DEA56FBF1016234F75423D307BE491D29F6C27EFDC11BCE180B20F39 -EF0C4A9C72F8ACB61DB425A5376330DCFDAC700910AF3BD767BC87C4B9691C3DAEC8DAC7C226AC -36AF7E444BD30E11EAFBC8BB77181EEA3264FAB7F63142BECDF37B8A5F63807249E618458D29AD -0E1FEEE567EAE1B4B513A447E822A688C5D87D64C8ACD804AD1C81815E287F50BF5630CC631A93 -F95C59CBA596DBAE1EE8502E3073D76525FB2D4F94C5203569B02F94593778E8775A87CBAD08C8 -256C51A19CF381C24180D4980EE17E94B01AC761F910D6AAF09C5027B79293FC87A1DC3CB7080F -6EC0AB763CDF14F6D7B1899D529C42A262B579A3BB96B693BD793F0BF7AFC8D1B60289BF239224 -35CC3DE78EAB44542EDEA0F24828922A702E7A11FCF529925FEAFF53751502F9434B72978AB7A1 -2B64E7BD6DA9917C9196EAACB3999225501410C818472B097C708523C310A3FAC7521BF6AB6A4E -9E1DB38DF4D93F9C12BAF67BC8B70AFD8D08FD6F898B96629A913DA0DE669678FA1EE7086A1C3C -0D45AD5C63433C574BDD8BA625897262A06F5AA47FDA71805868B9BBD7914D7BE697BC90C74785 -30DBE5F5576058767B5C302CCF7DC6460D44FB635B5AB595F216C13E7A4D54029C1E9281444B5E -3B1FB3D8C7D72BA0201C51F4ABEB9CA263D4AED86B5B0CEFD0EB142FADEE40A950CF441F547B7C -71427C30CA22C161DE130AF5210E5BD0D58AFD748D574B46A2B4EB4D6CCD31F4DAF0CCF94C7DCD -80B0268DCE4E69D97E6F3CCB731536528B5CFE9AC0133871CEAB7FD6B1EDA4FC19F8B3E7D9A92E -9DB50F198B792A13986A2368DE33CCE717ADE5B0FC6F76BE8B4EDE6AB157E014C6C48CFAC5D507 -53067E9330A2FE7737A0A8F259E5FFA7A030D85FEB857D785866CA8C6A5043ECE4C1CF30E76C0A -071FEF8FB30CC9BF26CF5DD8ADB87A0C03494876AA1A2E9AEFAA45A98CD71E78608F7523B6D686 -EBD8048BC96F91397A4CAB1D5A496B43042C5DE6C1C439B8D09F6381E88F825A08E818297AA27C -1D37FFD541F6A9E5D4B7E8DD8D13F8268C83135C9631A603C69DD22E6D3B76063E5B0BF7158C9A -BC9FCCB946AC24995228C48BD031D0A959944181482739EFF6CF2330A6A6C6FB906EB123E44488 -F42AC2BE237CB30C441B5051C028B94D9E6B7E57F5A3FF5504756D7EC411CF61073763A5E72FC9 -DDA6E3345F58646B69EA140E1C711D794E083623B84A4FE110256FB8543D32A2D5535B7DA0A73B -D171049412FED79B84BEB56962E1FFE1A12F9BE4FBC72CFDB9EF92BD60B200AE8D66AEA30B158F -E9FE278D8833111AC805ECC90D65909787737E1E1FFC88DE07B8D79996C9F5685F57102C65DA61 -97513F85B173200E3222876AAB83941CB066E3C642AD23958B00B17516A2CC8D8BCB0C802CF34F -A97851C037E656C30C446C740422991832129889EABB35F5661A430E5A503F99F5381C5F26692B -D8DB7E9F6D312A297B697E93831A06F386AE2BFA2BFD9361F2E366E18EBCEE56B82C16B2DA0017 -95CCD97D67ACCABD22DDF00898B3C39C7442F1488552BA46D4634CB330D428A19351E401F91819 -708A82D856DE3C29180FDC56C6CC7038302E55FAA5B777E8CC6CF4BE2ADBE59BD270658F168C11 -096178AC07B7B830C0E782D41F97EF221B7B91BBCBD1EFE3A7AC3BDC0CD61C74638DF410AA53EB -AC35A079D6D3914F380F4A376B50892AF20CF28F4FA355C6364C614A9DB092DB38D768211FA16C -A991684DFC8F257AB0AB3F18F3D7C89934FCCEC089E6709BAD37B935E875E34AE5AF4561138D54 -9A725F4AA92A66364DAD50D00B1E251FDEEA8C145DF1ECF74D59981948C6A393D7DE3EDD731D2F -EFDE29D89E9A4D94C69835050FC3D8513ED2C39E9FBFFBB741437DFB73277E227523A45E6362D9 -1DD5739D82821CE0DD3963D0A4F01563A82A94BCA4282563F1371322943A286FB67742953B9152 -7B377F49334141DE26AD5D170CAE36767A380A794C755A708E339635DDD2F6E7FEB4DC851502E6 -F4500CC83DE2F216304D0095190E3D405643D609921A6A895DE6F2EDD003CC4D30A5F131803822 -5EE6E072374BF755D5C0D3B59888F5B06D0167BBE0A6C5D8E5504000E4CB71C0F18E01CD5EE76F -102DC77084D2EFCE8D85A8C2C38867F10C945C8F13B12F1470B0260612C69D494AC06D92DD3EEE -A0CFE25CFDF09AE8C96ED32836E28E5583D60A8469AC220A4EF63123D4905890EE48B617C6F16A -7976BC855AE0BA10E37261AB4752C6C9BC43FDC20F2355E07BDFCA70F7F15744A973425A4B7DD2 -26A11FC9D40FC34A38EF3A05FECECB29D1AB4BE73CB14CB3F6D43542D3A4821D626A3D5EA1691D -C39F4E066C1B6C332E7611F13E27BBB6D7147ACDB573E9BCEBCF7E35FD3149BB0362E701FAC28D -7F4D114A358D286E750F364CC2FCE36D3E6E9DDF6739FA1D1710439B28F159AD6C53AF63CF1D9B -43D23CF6B8BA2A6F0EBCE50C5B730CC550ECAC630A328BB269E26DBEDA5FCC6C1AC14FE5485FF1 -8945D6C33657E86812E1483AFDDCCE4DA1F2CCD18703CAE39AFD732A4C26D65E29699848C2E396 -64BC127F88BB774A3088AC0A1414B0E44B194EEBA2055140374AA338D6B9D49B4BBB64FC859031 -9589D4166EF38F1B5DD8E4EEC2B39251FA156B8D00C07353C2B038322D130FC9EFFA6BEFD47BFD -D6CC1924AE5046C077AAC80B29CFFEEB825187DB1B72BFB4689673F10EB0DA0AB3B63A5E2E8C7B -39854700F3534AF6854E0C381A051301D24D4182A9FF745437639A4C61AC7C0505D62263A29E5F -E0C7DD0702459061330FC9F72DF43336BC1F6AA1B5630E74C6F723098DD22B7A1DF9D710C10D3A -96F90A36693D97F11F285CE3A4C7C799B3C3F28FC99504D54479A6C3D027B48D3B31EF23FA1A11 -24840092A41E72E08C3146E22B110346B2DA7BDB75505658E66F493BCC1250A8A7EB41836A2655 -DA0E9FED1AB3AB8065695873CCB358322BFFE548A17D79FEB4CF4D4E8A12E6ED79CD0065E1804B -201A45A6F757809D5CE810C02A3EACABC8C28E1C766501B886152AC027E75EFEEA7E1827FF276A -39ED79181CE3B2D94145710CB53538E8BF3B0DE5CD3EA0EC4F7D2BB917BEB5D8856C935A00A4E3 -4FFB22842279D7B2993B4213B01B71108D2B6516F1C229FE83CEB9D330B64A9CB9884339AD50F2 -14891BB3AA89A6B63193E54F641D0F8416D0D32A1D9E849B51EF1414A7214A65DEAA37C6559CF3 -A8E16299F42EC5CFA325B8B40712516E7C9DD6D9E3E1A62559FAF2A49D5002F6DD4113F5CD58D2 -A03C8DAD6B18960A806A3335B4D2A4A8BD7C09421B7B5DFBBBAA57A10E3B8034768A634565CE44 -B6C0F84FB5AC4DD6C1905F544B830DF14E56E5B8E33CC75917FCA0F4F8C878ABF607E971F8AA6C -E6BA24E970A7AE710E56331D3F9BB7C2EEFB6C09835DB23F1EE6942E464B7ADB1C9E08CE5194E4 -948223D4C3445D4D91A9D884BC57D305C1E71331FD869E412FBBB3701AB9F114837AEC737C10BA -624F1B234ABEBCE05B6D7DCF8C4FA44952DBC825FC41A934D71A23B4752DDAD280B5EC799278B0 -AEE5BB83051B5DA60F34951FA7B90189DFC0D53C0D2B7303EF0839EAEF0A096AB442E5176E91EA -A754466D1807B1290DA0D3B3A675EA2EF9D1AD02D177195D670AB368EBA57C4B75ABCDD4D603B7 -7FF892E2210DDEDD429D6B12FD7078A0A04C02ABCF10B169660D0A7E184CAA2EFCDC98A2212692 -EE0914895248F7FBB690CE2A465AC90971CF57271ED4DE777D8B345259AB02B0DACA97E184E319 -8ABB5DC33E9BC6F92744EAB9DB5C20DFFA36B6C0CE1041ABBA09E50D8BAB6B5B3520FB34DF68EE -B43B674879201EA95DE7DA8500DEBF253D5A81DD13AD3E7CBCB30200E003C27BEE141ED856C11A -2210D12B1470804733AE89A0180211F81E25C422A95406C8A8743798B4AF102EFEA47BFC2CC2DC -349599A4C00037A9EC03D2810B50A52AE9E5CEBEA3E2B4B6EAC0EA06046AF69CD718B57044DBF0 -DF5EA36A9B8DC51037C3396B2D0959DE97AFD35C17503FA02A313F5FFD50BEFB383E9BB672C535 -54154710BCBAD171A654C879F500BB7DAD189B1E307001B046D98C3737F906226342072DA7B7A2 -4FADAB5381426AFE402C42B338627709900EEBC77F90459492BE27041A126AAD9E44A12CE03C83 -09A407163A04F667F256CFB1066BF03F317179E57C2762DE417C5EFAA880B35E7B424BE96CE0A1 -1660F85B8FCBAA45E8F2262814ABC86C58864CF1E843F2733642C72D9AD13718A9A81C1CB4DEEF -130614E91B8852FC6793BA0F55C42867951A1E39F5DDB1DFD30270438FF363974633862C75335D -BB602C94FA037434DC319E6A0019350200782CCBDC96910DD18FBA2711A2534B08087E83A96C91 -3CB856FD45AA3658B76CE7041A57D46B019C76B3ECA0D757AFD0534B7C6CEF2939918CEB5DC524 -9B5601CA37D0FBE8D90EA9302DF998E37BAEECE630F4019FA8E602D460D6EB8682D115EB3F2C5C -8AB39639E1FBBB1109A31DB5A19F116068518C3C98FB4E91144B893A403E6601D4D81DB1C1F00A -80E837116CE3EDD313100D0B8BFD3193E20CA90AC3CB107733B6499A690F2C8D336FB29E144470 -2A5217E1E91852F5EE0B2F30B61CF661109D0ED6687D7DE2FCE90622DCDB176CBF18C9852FF3C2 -B02F9FD7AAAA692E9162349E766EC29CB98034D3A8731F4912193F1F480B657BA84E282540D2BD -7AFE547D10936B1739CBFED239A9C3FB8DF52E9BA1F38FF0F34E703B16F87C48EC50662078FAEF -9FC4EF4526F90740FAD6481AD3B4B5795C9E57DFDE09DF24CE8773B1FB4CEF1C95E73DA6F72018 -CA0E16DB42DDFE16C6697FE4D7E0AB517AB0A93C85EF5E7CE2C44137A6AB15159738728C6FC2A5 -BE3E799D5C832DAC601477C9FE8C24FB368AD1C6092C0DB6F516CC8556A481CDDFF1D26640647D -01516E38275E27B2013434E4DF83335EB166395405F9DCFBF6C2CE886DD59B1AE605690493CFB3 -708BD1295A114D79A26F74CC11F49EE90EE9A364B514967C0B379E676BE00FF0073CDF0CCB5756 -E66B04AA0FEE5EE376C0258E2841D90176CC6694F5CB6369BFE4453236B4F5ADDF98B86C6C8F0B -74832F6BB6684050D22CB28CCF9087B59ADB30838930E2BDB1FDB955C560D4D617EAE79064F742 -7F1DF3E2A20E413C7BA3E9AD26CA814295FB331D1080B45F006513F359AB822C8C9AFDE0B2CE30 -8936A66FC5C3033567C489565A58767D251D29DFEE44EEDDC59DEA50457A258FE68F7EA61208C3 -238C7EFD69F09A5C8FCD557380A6B4BD82D659B26CB4DCF180CF0057D120D6A6E0DC291C40DAE2 -833F4E84A18F10F2F32924BD93C5C70C207E5620B60E172E238EAF0198D7A1249FFB788D6C1AAA -4E7D0B433D58C79AEB3E5CAC751B78B55E2C2F2382F2F04A71C044B98330E16D9B74481FC55496 -AF2FFF408157D99115A38BF0767039211D6841345BE3F6D624EDAEA4602BCBC3A87C8013595D9D -09E7207197FE87FD585244060418EB2CB09EF369B785EA8B401798695B473AB58965057887EFF0 -A6585B3629E87D700C8E0835F1E35C280D61FB49871EDEC7C4E5C770C3D8DE717FDFAB7EACF7AA -E78A1A4F0772EE38346482F021A95688E1D3121DD80A88A349258ACCD8D094F403A674E1710F61 -46DE9507C73D51C77354C475B37F3E266ADEF2D739A17EA5E8BA5F65C314D57579BAD77D37E765 -DF196FE16397CC58CD8B21C21BF2E92A0D0A4893D679AC9012757602EE65A70B93CEA9D02F8DA2 -29C783474CCAB3F8D3A06B2DEECCAD27F621D6852932D43FAB8D81167A47D16D86837B68B910FE -3D97E07239B767FEFE692990A4F3600F7BFC55B7B137073467FB722D45EF59362B11B7AA72C101 -401FF5216F48329E7217AC572CC736B77BAD3B863FD622F46CF547EBAC0ED63BC0AF3DC86B816E -D1B862A0A172539AFC23ED6201627BD18A317F6A2C5797591EED54D9AC7E5336402DA66965E311 -768EE74D1DBA42FBE2C59848F405DB9CEA39C7AF0D13B6F0CB99160A2CBED0ECE55B21982FDB7D -59FA99649EF7F00ABFB9AF764DEADD60DC3BEA997C182A9E5857B1A9E3D1305A57F608807A12D9 -045236C18F174A63BB2F66F006915F701A7F6BED3120A63438B5B2EF4F7DF4A5F422FC1E61D395 -88F0A865B710D1E9165CF6D152210C7165B392E35B72D1239A18D59DE31A08676686D4C739D500 -D15D2DBF84C0C18880F41BFD757C3E2D15CF68A2444B863F6FFA3C9765637463FD9212ABFE1B5F -03A882E46D4236052D3A270D25A26457A4C9F348B6C8F0819F3BB5BA54B09071326369AC2E7CA0 -66D472F6F7DF7D4D1EA9FDDD0717973A72257DED260FCD992C0830581EBFD02CD4941EA7EEC4B8 -5C8ECCDCCA777FEB024288604350D53F97CE23A7C2EC292EB69D3B2B75DA47C65C2C0CFE3BE097 -F9287AF9C926292CE9385A45DCDD0314B2DBDE5AAD2E6A61964D96DCAE2217BC4B5A056AE24FAD -4A0708F63594BFF486CD18B55C44A8FDA7054B0C9A20F3C3799B8F7647DDD9B1E5A5E6579B95C9 -EA4F3E0DE8556789FB080C7019134841F44B7C9E526EF858F8ED5C0112CFD2E3C1C1F382B766D7 -310529696AA7A533D5B0B5D3532C11B3562C6DA713DEB04A5BF022058772C94CB22BB4FAA3295F -CCA609D18EA85146A89C046FC60B0DA65A416E2A71AB5CF8D536138F2A85DD04AEDA42AEF41754 -232C92F1F79B303DB4F2ECDD3018D9C683A4BD7D60A158CEAE71D5C231165962BC3E88C2C3C0F2 -9CA2EF9070F8C0E99BC9F3652FD5599BE3911750BCBA6E5C5934EDEB6C85074B11A895A874EBB0 -E59043499D026A6C062B4F86FFD4EAD2C9A31D4E63D09EA1F00C55653A5A68717D0BCDA0961ED7 -608398841C26E307749A5C2766B0D5671AD7407C0696577DC0347FFE8CCE0772750D4D6E13A690 -E4A5EB935FCCBFCBCA751BFED56FE38A181016F87A05B90873FD8C9D843748647894AF1FC2E48F -E408F7BA4CFC9C1A8898AC99ED230E985173B829DC2FD21F35C50103C053DDCC9F98357191CE1E -19D6566727996460781069EFF33CA451A1088E81956DEF8E8CF997E292FBC63F99A84AB2C23A52 -09922836B072AFF17EC0343CAD1B847851CC31510C8CA59913CC8DE2B0CDAF99846F7F341E23E1 -C7727550EF11476472B3D082ECC47EA7E2B56A747E6A7777E2E1AD4F4F2209B5329F4111D8F7E5 -383D76382F8B5FA0D65F7DB47A1A080567023EE270833CBD88B00EB79DF491674B5742D27E6875 -D68C127262657624764AAE5B6A8775965A179879D4ECE7EE9D77BA6DC8D917216FADD9A26CAE9F -9F5B135F6B6AA3DCBC7715B33EAF70717561E6C201513AB2303374 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndProcSet -%%BeginProcSet: stonessb.pfa -11 dict begin -/FontInfo 10 dict dup begin -/version (001.002) readonly def -/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def -/FullName (ITC Stone Sans Semibold) readonly def -/FamilyName (ITC Stone Sans) readonly def -/Weight (Semibold) readonly def -/isFixedPitch false def -/ItalicAngle 0 def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/FontName /StoneSans-Semibold def -/Encoding StandardEncoding def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/UniqueID 38792 def -/FontBBox{-179 -250 1405 950}readonly def -currentdict end -currentfile eexec -05D2542F9F75EC0822B36BE6F0DEDFC8DEA486830878B9EFC0865425093E0C2E69D6F33CC9AE23 -DF5EDBC1E5D079FB4764B9F54C1CB100A936A445065CB97D7CE6C0C4370B3ADE577ACD273EAED6 -15C410480C863CB75FFCE0E72EDB5035D97674731BBB8E694C0302E84C5CA55F405C83E06FA42A -DEAA89CE21DDD2BC9F048F7501C2124566D55A81E16EBD047DA68CCABDA9D52A3880295FD057C8 -C7900A8A31BA7C4990680FF1F74D5699C19DC8359898F7A25196FDBE5DA6A0E5C6DB74B7BBE88C -542FC0E458D64D52230079CEB32C6644A8809436BD133207FCB1E7165359DEC653C7EE65AE80A1 -92C83B6CF310F74AF760499DD67A4DCE97CCD1DD538308BFA46A992B18C02B8A332869E677523F -E7C2597865F352B2BEA414020204762126749DC095CC55AA76E9C67A97692D14826DBBBDF5538D -99E15D4C082726916270333E380EC6C71B2B79A5D15D9B928F63A48C4314E5CC3CE2BD2352533F -5BBA3DECE7526814138B51B898666E823291D0142ED689AA36B326FB41E67DC29C46A7CBCF563C -63B52680C9BAEE2BB55409547DCA64033DAF803CCD32E3768FBA08543D80A937F61B8C95927BC2 -A08F4A257D03AEF025F3877B798E55DFEA17A2C3A484BC6C6ABD60A2723446E2C67FE0BA1831E2 -D7D42EF86439263917CA19CD8F5A0A65AA7003345D13743E757A7B1D9BBCEAB6FE0022B4ABC17C -108C913B1066A7B5218861EE2942E39E1DABCE1D16CB666B14C7421B9A58F1DAA519E6E96570D2 -AC187446F67438F56E1A80DF7A72A6A76CFC27FA07D10B624E8E1C53F71720B3351A9649A6F261 -FCCDE6BC61C0587E7CC6217F98D04986EE9AD86B0BEB09C24BA7A3F4CC66482EC7FD60F4D93D4E -82272616392166AE09582F1A6146AF9932DF4AD2C45FB468B5D2B9E119E93B4E18EE963DAF1AF6 -FD876B362B31E36BB0A876A49D82AE89E0CAC13DE3DBF29FB96C8788CBC011CCCF04734C1CBA5A -6C18343EA1B0DCE808382C9FFB44F1A7752C5F9AC6E7DAA59C08130034A8CEDCBA8D48881E79A1 -7BF5749F136078DA9FEC9CCFB09C85C63FD964D722ADB32B1040DB91B1508E460CD08FCB7A9E42 -B74AB09EB3F836CF46648BDD92E8DD2D48F8EE8F80FB1EED24E901DC294DD024D25A72642225D3 -028FF69FBA04392FD415B775F0B132D75D56CDE9C0CEE44C29F8F1692EE002A973C5114B03AAC6 -D1AC009184D50790D83CF803F2B36D94A8D7F3E1C56A0C924447F56925F09395CBB1DE38C5F13C -1C7D563C43EFF5E8538C2BE12C8E214B774000FE4E2751DC6F3E2CC8DF5E4633E090E4C34C0CC6 -F06BD829B1105B50429205B2C4BA32480035CF513F4039B69EB475F16EA439E277D5CB93D7BA17 -41696ADBA069DF046232169134980DF13D2C75FAF57582B548FE67F7215D7673077168B733DCA1 -51B0A7591C1C2D7B1E93E485F54799AE111F272C49ACFDF6993996A7C5699B250CD2A9D82B7A4F -60F990865A5A21C394ACC4D61BE0D9DDBF8DC253D156265FAA5E5163DF739F013C1BE519F5A616 -6FCDC3938E14D17D7B4CE878481D5DC2DE545CC29C88CF043EE98C4BFA6E747DC626152B6807A5 -640EA39CE6802541E5B4E80F6AAB41B13F6E8C0906556279570D7B3C5509237EFF4A98680295ED -7BD3789DD532E12C47E9D26AB9831688E6A9D98715419BBA7AE390D6EEE7E913E98FCBA6B268B6 -C958424D98BAB18372C925ADC53415508AE4AFBF212D66A20066928CD81E5FFE5ABA34802522B8 -C49CD00CD0F7156859F14A254566578BE1E0986A86738BDD7E81EB8249A3C2B4FC522886C22209 -00BDB96EDA972558EF18E9408E6FA8B59B5E557CDBC6B9008E018089976A83157637EBCFB60E46 -0BE12F9E92FA8AE384E2E27B58A4DD46B6AEF078F17410B64296BC43BFF1AA720AC0D575B0A4A4 -685F533A846D1C8E6E3F0A8929DA9A4DD039AEC0908EEE629B28F8516836DDA89AA7E033974759 -7BAC32B7F65A47E875D6575930E4561B1077A8B6D4EBA710A60EBF8BD7F90D5966DDF217676838 -C714B7D0A1013CE649629797335E4F1E736A452FF105F1E31DB1F105F51C5DACFE14DAE5C385B9 -A493AF229268DE313F00275F6EF4E995D8E104133ECD3BCB1378B69FE0DDB100CD4481F3F7FFEB -6B696096BFDDEEF1268BD9ADF681B57381896F851EB12534FB05EDC89ACE59E7CDBEBCDD622953 -4E12BA0C675260841609CB656B05D37CC7FCCBCC92BEBC4C2C3112AE2CED5590518438B2775DD2 -78DF847B5F3677934099A8D34B98E9F793E6C86C76B1CB0E42EC4EA2E9ACB22EEBC084026DB163 -40F8CD9CE194D2F6EA2403255DA218EC31EF12888D3C4ACE4C84910C6DD17C8321533B65496C0A -67EF9AB8BB49D8A9DE10694D21FA679AEDFD56DF18C915FD82B3EAC5F279D4CCBF02183DF4EEF6 -11F5266108A01D054321E6F5922F2E1F78D48DA966549F37EA876C71BA109FE81719822315C2D4 -EDDC0B3B0C2564BF6D2E2BC3AA020B462F0A42C562C1FD135DB84A51ED677D2EC962C8A86DF9F1 -2B4487AF45584603D517D6BD04B66659ECDF446CAB71D768A9B4B3F58293A6DDCA895309CC045F -951AE11077FD1AAF79DC80C0CACD362EAF1744455DB964EAD2D65F03B4F7A01AB2FB41AF084012 -C199738AEF935CF46E659DF852A78D343063014A75399F5FEC92B75DE7E04C6E42DD6D6CF84D35 -820297B7D0A4E072D9F5944E7EDABFD4E309016B6BB3450E2942DD131E7420AA2CA3E766BE9CB9 -44C28330F2DFE1518C2FBEF785AF8D9080EEF0F9E1553C2E855AA68EA71D8F5A16815D1F210430 -25E893E408B006DE432D9A1F5F3E45531785B3F8CE6B175E2F39B99945382E63C3F31C748BFC26 -B7D14060043017B3ED93E27E1728E264303B21BE3F78DF47DAA1395361BA0B84BECF2F8568AD27 -67314C0BC80A9B733D96515CF586CF038630707D2933EAF664665C7692563B2B8707B2C21EAFE7 -33C96C5CBF7970C1310EAE671F9893091706FA128B2DAADA95F26D0EB2999BC294A22A61883E19 -4222815929D7DF0683B5C8056C4D1FA0E3716C155D1ACD225D6B68976EE1A42171592A90EBC10D -93FD735DE0FAAB691A4098239213F97BF81A8CDDB5880CBA714F22230D208AD96B9B73305B90D6 -C94697D3AE9FEE5A52503D844CDE1FC15112897C62A9C9EFBC3D775C40BAF7844AF7034669B332 -70533EA71BF0A9C27BC03A02D7040926DA1F10906D26E6431606907E8522BF6581A311A1EF1075 -B697053B59020B7FF83D0FCB0BFDF143FA8E645C5340B9226D1FB3D03E892BB24D7F5438D7B87E -FE337343C1876CC99495707F87D96E1234B58C71A450F62CA5CE3B895B52328AC1739D3967DB01 -26EE475B5A609982C31B8FF352E959E417E907D5B9C076A27018849AC10E6113C1A0F816582683 -727477CBBCDE1222F9EBBB5648D29517E72496D1F0A44CCDB34106A53521EE8F61358A267105EF -49577892389BFB701520AA73E6B8070DE634B853F3A61818A4B8B33264416C1C3C83FC0C8BE091 -F30252A8691D193456620B3BF471D4CCE9397558C7EAC8104C8C6A13CD716D916211A12C443F2F -04EF0C31FAAF043729B6159B57826CDBDD6205932B251089385E4E30C4D51744A45D96FC284097 -2007ED353D62D3CDB6FC755C11BE98E8FFBB40560C93CBCECBA7C09692F817DCE1BA4526A81179 -2F2C19A169C91C025938E2B26A803682CD9921844BF9AAB1A14514BD26F046E8769D79B3604ABE -0B786F60D424B2C6323520A982E906CC3E92D3B52AF04530708DD782134F4052EBF95339F50CF4 -5496B70B52B59CB6F54DF382CD9F4BB11F629861133B4F585B816EF197B60C5A2D9FCF7E20BFEA -366B42D5F9B2BB0F67B045A5B57C185F621EEC91932855E0C91770A5E4FBDE4ABB9CD137C88B4E -E499D432FA6DB2B87C71A03AD23BEFBBC5A8FB3E2130F451B0A0DD40E84783C26E573B43B15615 -4F7EEB8B381E1F97C54C48EB5AD4A1545391EC3F6650A0E43F4C23750DD58157AFAC738C07D296 -EB9AFAB0C0FAC38CE8566293C584B2256E79544A5B242834BDB31A8646DEB04C95EE80EBC2F845 -BE0536A629E8A0D23D355CE4D35E5F74A2D4E08CA6D47CFB1E0F4F98EDD2EF3DC779B69BADEEF6 -AF06F1C6CD36EED1C09E800CD723689A001000F4201D365DA557D11F057E858520DE75F5C8F354 -69A9DDF5A29D3651EFFFAF4FDBED2A9C1275DB764ABA6FF74B789DD65C8D082D9A9FC800873132 -FFAC9E782291EE6696D483D41C1398E8C65306DA0D306BB9EC713AFB4C3D55A4C38D865381DFB0 -E630628FBB7CF51922E547D8975301E2A81E0D429FAD1C65993544AA5431B880BE4F314C4981A3 -FEFB2A37BC1BEFB267FEC47737819C14C04486943CC1432135BD844A34617ED7E4140431AAE948 -E989C5C72B6B090AE889B62662E8D30D7C633110F08600F8F3DEBABE1B8272571B1550FE35C252 -818F856FFD8231E801321CFA4E088D1D6A4F56F2CA81A909D0D565B33F5B2574FC52FCA1107E4E -94E7237D994DCA0E5C13348B6ED835AD7279D78CE290B38FD42876FCE44471AE6E20E6369C638E -6E4B49B00B68497F912FA6518016ACE6DCA8E865184CD563E1713D7EADF64E52BBD13CE5CE54F1 -9EC5974E9F59D287F76F03F756AB42FA3CDFACA79792679B7ECA516D1532A1BF1AF2B04002A029 -AC8DC0F34527E917D6A559974DFBF9A5E13E2E1ED526F7AE17BEA04640705CAEB05F06544A17F7 -B44BF54B6B80594D71AEDAAD17079CFE2B6C65744655418B1527D51D4C45E5F321D52468C168FC -A515979287566DFF26C061FFD7039C232FE1ACD9377C58850C99BDAE145F949F4F504D74E4278B -3CB2EE53252AF7805F3143F0999C8C0D17CCD2E922375E563EAD698D9AE6D0DABAE5A8340497C2 -1238F9FC9FC05B76A47DA0CCFF8D108D1A188F5DB575E5C08219A04CF78E06AF124FB3FC3B4E78 -2677F3C09F9D892AB294B4EA15241CE2899514EB4D1BCF51D294737089EB4AC56AC7852E498217 -7B804241177353670637376D4D1BE4F13A6107A6A6E5A73679E687F5512801B07F67568F737B3E -00FF13F7F8DE9C73EB3A2865B07094AF6FC8710BCBF6915BE2E2416B9A866BFC513E29E92898FB -80F81130E4AB9E5C5D559576BEE4AE5B01BD28748240E7B2D7441E57053F934628A99CAC7F4C72 -F0A343B7937E295BBAB9DAE5CEFDD103DFF935B2454E4AE0AF39776A3C0F40701DFECB27C6DDBA -4D97972C03109A209C6F98C1E6FD3C81AF5CFCF5223866A5E58514FE8D5DEC95945865FB6F6FBC -51FDDDDADAB1DBC68F35F756426EB29A6A415AEC11D2EC09BC523713ED44466FBA3FDDEA873A14 -85D7C042E490BEA7512D46705A9C77B52BF575BB1C849C76D0E32033A9F59C62D3646725627CB7 -948C2F72EDA3D5D27E83C2F379B12CBB6D7ED2DCF3BDA29728F99126E56A36CC9D7FCD83F2A4FA -DBD5C188379CC6A56073F57E75221E5BA328E84EBB6ADCD9D258DE03E5ED83123DB1964511B792 -2730D692F96B2E93273AC148ECF069362F5EABBDD6C577D0DD1D724BDBD804250DB2EB3A2B5F44 -E7DFAC5457D117F3A1B132A68C61A35179B3349A1F412C0322CB415256FE517FCB0C206CD576D0 -181CF1ED3A068444F2A19D9EEB5324CE071472AEE02E225C747913392E43331C5DC96BA985E2E1 -605A3BC09FC92CDBE4A516E1BD248D34FD85023F9D738EE10B2DC23ED8A1A2FA207A1A474B94A0 -B78694D7B9C386302B2BC7029442E574B6258F9BAAD8A099C5002BE366649A771A94A533B4D336 -695DDD599DFB4FA963B04628C52D6DD937BBCED417FDFE925CA54B9CCF44EC78D2CEA9AFABBA6A -8D0D7479EE60204CF38D1E9B425BD3BD37519D0D64E154CC6CAE7CFC7209F4AF4E66A9DFBD1934 -E82D1209E12C44CBDF4C3E902931C6C983E712DA93F45DE79A58BEF6E742EB63D7D0C187D4037B -9C1FDE3F204509EDCDCAA5075E3B8B4C5E62C18C2FA01040A4D153C58F0D6AA66335ACF7C455F5 -855AB3DB0A1241287856574DB170DA0C55A9AE190FDBF3049987C8CE26C501D0F3A15E9915EB5A -9AE4A49860DA936CC61228A21C343DF6B0CCE324FA00C32653DE16F9BBAE85E9C7673159434D14 -2E25928D2EAD8021BFB2DB4F0AE93900577C5937A7A0E292546C66D9D30759EF06120604689FAE -F808522BEC56BA62621F728E9A4A4D31DB7F7D82DDDFAB127E50E72F95EFA44D40ED9A82A1A3D2 -14AE275930F795AD74375A989D78EF0F3B28138D35A20F516C8546081BA4BCD6B493B49FAB5ADB -C841C48AC8B22EDB9131BBAD00425D3601F4928F72F60AF6BA2845DFF2C1C46C8C0919481C2F02 -6E71627A0EEA7C1233BFC67B16DEA00AD0524FF2FD04E49266652DDA742E2770504C22430004AE -F8CD94E6E54D1E8989264B7C22D770D9363899F97A900B8637C42CBE9DA0CAF97D69FF39910919 -155CC68FC81208F9C7E9B7B67BBEF02D65930444E9319D98A3C063EE56B907CC5B2B054965BD22 -074FF61F8F74ED5734C46BE532C9BA883C55AA5FAAF5EE80853D1BF06E260679732E7712619C39 -9DFC4225E71B878CB758C6C3DEB5347C5AD64A22F0C6BF2C692F5EC354FE9EFB940AFEDC511F8B -1A12BD18C1FF14B354748DFA4553A396DD8457234FB1D6BBF2E58ED6A4BE5356E3402E69531BCE -0D57E7632D2D3D9A7E7B54499CBAB807514330C566D104C48A4FBFD7F3674EDE64D674DF126856 -1145F8D649CFF1C069414667867EA7B65A012658F1376E7EAB4525EE1788B25C348850809E61E8 -CCDD2FF708C1A61EE0E2D6B5D1B85B2095185668B37836FCAEC18D5444D0C00EB6D75E811D3C50 -9DFEEDBE86B8052D0021B187A93D1EA1FE0147D11D75DB5B63536410DD74040D77F930292D00E0 -8351F7DEB63D98D55F11AE5AEEEB05D00D7E7FDD769ED33F1C61BF087C300BF8D5BCE34B479D62 -8231B9ACEF19EFCF675BB4EC2833458A151C340BA5DAB949917CCD8C455D30F4333A834519785B -53938865FCE3D7D524C7152E03DE2F84D82F6F90682B0198BF688B2A63213CB432297AE92FCB56 -7D0C3EA22C28C373D3448D402719D0C68C3686CBAE4C45A6958D1E89E61EA8FBD3D1F63366AC59 -9490CC2118148017C72FB239F1540216397DDF36E41DC49BE4F3836B09C674454C1044A02704E6 -FF7FCF78AA85B1003C1B0EB2B5021F8F2640A68E4799E75CF40FFFC212AD560131330489555A48 -828EEDD440BDFF3FCBC860080992A3367E850F9D9D20AF1A0055D4AD13505245725BC3DFD7261A -B7770CC41C6B908872FF99758DF7EA19CCCB8120AEA32C5E5CEACC05A0C40300C8BBA3EA16ACD7 -3C9331026D850FDE83996CA03F642F5DE54818540014EF65571190394D94FC2973A6C92CF674DE -2AD9DDFEA8B93F556E59B61AE558E6E86824F23F6A0A72FC79A48CD14FD7BCC76011A39D8CC9AE -F8E72402DB96DF0DF48885881F508C7C59AF6D06102FAC84718630870516EFC9429A3E95376956 -314E65ABA124F92AE11682F9788E493379F83FADF340783150C51739EE87A866D352B99E6C1F4E -AD8191B7DBF364260CED3274A261C3AAF908D473C2175D15AA932D88DDE57C2EAD27B4D0F05C9E -5137A409334D0954180CAB64372166266FAA5A22506D85A4928E240AFFF318EF63B45C26D23237 -6C465AC9FCF64D9DCCF13B6D5103C1F66574CCC968EE0F6CCA773B28D53ED94BB7B42287A6D3EC -102143F52720CC5396EA524575C1CDB437487288B5587D24BFFF1B82ADD45AFECB4D747A628948 -623E61664F3655BBB1DE782B7ACBF256875DF5FCC20BB7506910D12BE7291EA0648298FD361737 -0458AD089170A005942639F7AE5BE8D1FB6B95662FF074FBCF92776E6F4C7D241D1EFAEEE40DDF -E8D88DC1EDE3D9E0768B8E0FD38BCD9310F8A74CC0C671B0FCD404739FBC68BB02B1D90BC4D91B -F5C24E72D98D1D36A0611BA9961B74CCE43411DA5BF2659414D74BCFE8E277EEC4A11F71342A97 -6291C52A21737F224178B619F048F2A44E9F42BD5530846E10C4F05624026E355FE623223DBF42 -90DD504ADC56051A92578CA2E00BEC120E0812E0EEEE934FB9E7FEA6B4925B4F5118F30C5BFF35 -F8A1F069B1FCC24694519FD9E817E01799FE1FB9FFBDD28222663A74E9AA253F573FB3631BAFEC -D327514A43947F04F31BCB22C98CF9E050732BE8574BCEEBFB9938AA74FC68A3B2ECD6ACCDF22D -E9F46AC3589AAB1C352538DAA0E1CA320694F79D7E5E6934128DE7EE3E3328D4D494B5E85EE40F -F2032E44AE58770E78188177FCF23CDD200280A39EDB76E4D7BA6F728CE8784507F7DA164F062C -349E325C145976D0102E65DA171F95A04A3D550EE3DEAA4A564767ECF3E7D0D5D2BD6D06CFABC4 -1D1BE5A5F1C478DE08343F2D9D6A74BEA3DAC953BF38183EB9BF9B188F88459496BC74A3EF6514 -12307AF69D68A1BD9678C642D11B75A7B5C113EA8036580596FA193F2FE45E52274F20583F6D0E -7D7C17CA09022D07573E33F52394FF499ED067EDDF122A4AA44B9B4CD53C04304BD53BDB734D78 -5866891CFCCB5CC4ABC2EA2BE6EB432BC0EB22D9EC45BD31EC11244F9C7ADF81BCA29A70EEE439 -4A3AC5C2BCBD2E82A26B06A348542A4C56D778D2DFF2944B5EE2B2CC32762FEEA2E95D18075847 -6E18E6596B9ABB3F36745BD8228EC356BD8DFE89F8180277C50DDA883A59F1D9A21704ED019070 -7E87D30672973F4EED6C744C2E71BA35E887C0EA1503A941EA20902177DB1F5054175A215A9D4B -FEBEC521B22F9A2924F76ACBE573E216B1C97D5D7ED322DFDFBDA1049A219EE3736B9B763538CE -0B1BE3E253175A515DB0EB877A547C4929C9EFBF4DBC586BB076ECD7575930E4561B10A56E0F92 -165E415F78ACAF1A99AF4A1A8625CF03B6FE564CEAA6CAF2FB247541CABA278DC1966B6DA19A1E -915024184832E33129DAA8F37C57EA8FA66B1D7C1E03945627F9807513EAA0F87CD55676460692 -E76A71885A1A37BFC0ABFDEDFF655DED8A9FC81F57912EA87ED5FB28E6FBF283FB6832C10704FB -B1B46D7E1BEC70B5DA8F5CDB58D19E8FAAB5702A3A726EB077895D36CB6338378A3412922016E6 -5C45D77C3D7439705970C5772DEE02821F1BD236AFDB9982C1986DF161665D7A927412507700FA -B2D873E77BF818713A257FC7FC29DD7D4987249D535E3582812CCEF3CE72B60D23F33436D1DA42 -BA60496719774783F395C42C1B44C77F6A66620F1F92367B56777A57BAC024874680CD1049EE3C -458B24210627C745559087033EDF0CFE14485FB79D541888D97CBF9AE6BBEF9CE0DC02BBBC83B4 -C2BC26313CCE46371C60BFC33758C6BD3343C0984E58D4CE5133511898D7860DAEF04DABC44731 -7AE3A18BC898833130CF72EDD91A4E42D85F4B897D0F9E9DB4477E73063189161916DE6F34FF73 -11FA695AFA2F897334FD81DFFC505BEA5C13A3AC792569C6935611E95B74D41D9DE36140620979 -205FA7859E1585B1124DFE4B04D880615CC2198A67D47B64851A642F40CC16A8E8AE202EEC55E1 -008E3879241A61E6673C9EDF77EFB2A43F7E85E196BEA0043898FED01FBAAA47894EE7392B1DB5 -2B9433D88980461A7F6BEABE6B752600B758F0F2529EA26D57BF2894910AFC67FC6D190F359058 -517766C9403B404D50865CF632F371AA67319B6262F09A92A65E86AEDEDAC504BA901B8A19FA14 -F7C6659B209845E9665474981EF9513115B93DA16991B5E31A70DF01DB06D47BF089EB184CE039 -3A1C2C08A2B05625CE02513B4C82D026C903DCCB3135FE88A6A4CECFD2D5808CCC99BFFC43DF9C -FA2EFE9875C3491320D62FA3A54558F298E3854DC3FC8D60EB09C534E6A14102F4953AF79A57E8 -7748A2E01C683B8ECCFE4AA681D943C3758FE70625227DE214CCACD35F15B4782100BA3C0AED4D -523681438AE195D5B58D4F61B9807EFB12B162FBDEE63C22CE05D99E4E289EF01463DCBD748D9C -6CA0270DB111495B0E7BA377CB34163DA6E3B7F5FE89FC9FED9960F3EB9FC42F1CD39BFAC8A36B -F0ED0CB3B6D8503E78432EBF42C0EC6D608241DDAB2F32540AB22CEFDDBBB10077154846AD5253 -835558E1A30C426F9E7A488B88C1699ADDE69F0821342C60042D0CD505799BF1A4D86D94DC49A3 -046236CDF462CA6367220E041FF8EFE18CA65B989E865FD237A7E120EEE95915295F4FB8D0508F -A98A2B7737D6088047521E6B740311BAA5FF402754CB1193C329B7A74AF5ABD596E5AB66C242C9 -F6F89DA12065DB01AFAE32A7CC6156B8DFF94B72C8A5F415C738963B112DF996165F52CC48C2AE -FC903178931044B9095A09A9691668AACA9118D67E122B70BC19A511759544CE3A9BFCB73A6504 -D77E24A350FE52FB0107AEE12F59AD32C120B1205B69D0165E7BF98C9F17A04DD46649EF7E363C -7F52F573A1B99733E5303BED19FA3CF306879C7498B18ED8EE01E8E87715A44DCEC5D259E95767 -0A469D3C4E5EC2043F6EE288ACE1E3B39084529455E1F8389186F7662F96E3E1B053073CF04D2F -F322CFDB6263588B3802327318A8DCB9A61C9D1B1DD2F8070F214DFB2198650D14A77C14FC1AA4 -06EC487149B86B997DAF22E30CAE968971664A10A0CC346961FA49062E617ED3DD0DF737B41437 -B1DC2B0670890F9ED97E406B46A94B05A538E8240572BCCEFDE21F41A66520CE5ECDD3C0CCDB3F -19332FD94654A9EB7D7D5175013094AC79B92D1FB0BA86F209A3283DDA9DB25B4F5A0A03E72FFE -A45F914757E8C50B8F0F8176FA8CF44C271A584F7BE700A0D36572FAE05EF6FF23C8BB33EF6BA3 -3186583E4F55D1256072B53B91047AF7868B31CB6150F5456FD4FFB8B4B2EC3EE1148E8DB34353 -B3BFA4F84B8C3001E575372BA3F7BDF1BB6C4B82C2FAD7575E12E287EB971ED3D91404221137A2 -53026C8989FC472143DDDE9E2D49A413F1D6A409179CDC3CBF544A093FA05985E0BE71CD6018D4 -2127D0AEB4388FA7ABC8558172396885A8A42F0A0C768A4B0EC2B4D1862AFC4FF363F3668A33BB -6F788A5D9E9CEA2BFADD7A4C611BA217D15A1F6BEB135F8F7C9FB011642B6240181494A6C192A5 -756766F62D7331C142C551AB0E64ED8CBC57EF3C295DDF2DDBD265816761F199ABA1D2E5349684 -94E676D10461C34136FB87B9FDC817DB731419278301DF86C91D21662BFB36615D4F85DF3793E2 -9BB4A86F1AEDC061B1593F59DF133E4C97B744F6AA19EE0E23ED826D0AAB5EC479F2F131DDAE26 -0F4482E8215F2A06C33152F1E26EB4F7EFE862846A37A084D6090216A1A9E111D416629AA37375 -C4924FD96E87673C5B41F627F5C1BF682E6C411725CF5414D7ED4328B94EB8EAD9EA991D0F120E -872CD1397D36D5C2DB03164F2E5D414519FDB61DDB3E27D5BC7017CABAC9EB67BCB6A5FC451C13 -E7A3B944C1795ADE61894809B085AB4D8C046486714D086043C8E504B57476C5AFFDE8473CB6F2 -2DE06BF6FEFD368D6F8D0E00292B825EEE18F1FD3DB34DA347F1B13ABF19F22F10313E6D646809 -90E4B8D166499128BA14D2F2200C86045C731B8ECFD52B2400C2CE1BDF0958C4FCE83EAC4B757D -CDE1F5CF4455FCB27259E3AA102E4CA642122D5DB237BE915E606850D47CD77AB07BE7B676DC86 -B5E0CE1FFFB177E2A84023F7845B5B570227433638DA173C086730C2C647096473C22DE7A47F1C -C33E00434946AD9847A55A6D54295BA6B2F80E80A055A02A8E80D28685FFA0B766430531AE79D5 -BCA0C699624502B43A3EA10D8E3FE63AFFD751828FEE69C0769BD331FF2F4367FC4F8AEB2C06B8 -7CA3D251DBC6E81F7159862845712248FB86A0F73B767EA8784EEDFB538E41334A8F4280B64E34 -9C2260B1917657651DEE10B78C60E941AC56992BD61B84200E942F341C37C7D73D9F2AFEE845A1 -A8ECADF6BF3DD77D17517AA99FD9A0C87E735F998C2B05716746159EFB439B619C7AAB02C607E2 -911A203FA36C15B3ECECC6C72037D49F15E550FDBA5DE6A7BAA71AF83459ED20A331037F0E25D7 -177CD16B4CB572C2257700F150F03FE9EB44E9C840EA81BC1D9B9E6FACF6D05C01C1709E5D78F2 -BFBEBBCE08C5E32067CDC71FD50042FF254BF62E5E3923B66ACBAC43DEB6541EF98E1CD9B122DF -C371CCB970C345006847880DC6814CCEC5B5955B63786B4EA225CA81C5A19487C518C8FD98568F -13B79EDEB465CC2B0FFBF5379C4A2C0FCFB018995107224DD43754E55F7017E973F4DDFC2A14D0 -97C8C5DBD92A5D161C25B6488D53E52C4EDAD89203B0A2B5048D55EE9E577FA75E46E7648B5430 -09523BE6D66603F7A2E317FA7AC44E45342A977E76D5384B6763FE2186383F10711F36E5AAB801 -11B02699085C3222F6622C201B1C1F975721CEE86419E9DF365F1603641DF7A5905BEA0C54D3A1 -8BDCE0C892C8CEAAD1F6AE0E727B792AAEDB30390CD4C17D072B82859C0B6E6574E8F2B4F4AE03 -DCFD278B90DED764C0E6F262CCFAD7257C7D2E2733D0E9BEC3C6DF0BF779B516E41506BC084928 -3724C876682C1C6F36340AE8072AFDB1F710C2810E808C8E789DC3962174978E020DBC1A16F129 -AE110E7C701601D120702B0AEA98FE3B9EA28CD175B9E445920BAF32BCBB13652BB33B62147859 -765CD15B51A63FEE61FF92F458AC28849BAB775FD42123658F31F6DC0F896F2E37CB0BD310B098 -E7B1A6F473D0624E3D8EB7BB91E00BD164A088EAC207F0ADE1D9150D546E00F3CD038D792F42D1 -9625A14D30E8B972B263433BCED195E8FE4F200C672A1F167F969B2E067E32B7D69765823620D3 -E68894BD03C3D5E614FAE9B173C21A946453428B22C009E0BD4AD69D94BCE76303775FAF74C151 -A6D0C5A3F8703CD5BDFCA2A469BF6A42A8FA8678390B9BD516C76C2D6F358C0A28BEBF971F4C4D -1D81CD15D913C4E3C1F934847081BB1897CA19DAF87B9D5EC72A7C26B65563514DC162CC129088 -0CF4FC0C115CF2768075CA07B04340F228E862A40F35AAD4484B109FEE50E26655A8C699205D70 -C2BE4D2368E3F7F927F64DA140F979B299B50DB1B9224E6750A7D1AA909A4921ACBE1F47C8B6B7 -0CD46EC98C9BD56C35D3FB61AE9BCD3CCC39141C92786B8C7CA61E06B88B9A1742EF6D5CD417F4 -282F220212D30EF97DCCB70CB1153E8912131C9E2E89B490BA9967CEDA089AA7D7E2925C4005AD -5624A294E63F54235F579488A705D0D13BCD668263122CC591D2417CEE1B1C220BF4BE45722F3C -4891858DCDCD88B67AA9E69D045F25841C0D8A4A8DE5078A22088425A6027A9FD1063F2243600B -AAB3479833220D38F365C95EAD2B8E37E6784EA29A4D54C4445C52F3939B1A61F05FC9E5DA8FC0 -84B9B5FF7AC76B07EBDFA6EAD5E70210CF795768EA6408DF4E7EEFA5FBEEB3FFF0357F61EA6061 -06619C14EC6E4EA347AC6F96F3C852459965CD29328C3FC164F570A646D514A1FBD9C2E08A4C41 -A0539C8D5C0849A1C6173E4DC9B2B039F7B5AAFB46A98A7A9431D70388D06AB90B58BBAEC86E75 -17F25C7674A633324E1CDBBA4827A775BD6CA1A9A8AC24A51E6FD163CC0B47A00AD11EB05B3AF4 -F9F971F04F4865EABFF9EF599DB3982C62FB91915916D87E40458552EDFD00A10FDC75F86938AD -E38ECEB82CBF2944ABA9E99BEB9856D58BEC9F1E0F52C64BC2B7B19D9B2999D16CAE02E5D12FBA -62B9ABDCF95C664FB4550E890AF732E7EF278ADB9A945EAB167FDEE52993986949551159B3FBDC -E8763E8795989CF46DCE7D53F9CDC713B79DD75F38D26813A6B31FE0E48777401F6FD86DA5DC18 -3F9625DD30EC75282B831CC151F4A90426BDC43EF2CEA37468363519CBC10EEDE7453F7FACA12C -0F927B78922A81C3E78212D89AEA5006C789425A01A0F382EB35E61A15846A7C934AA1F164D44D -E80418740CCA9364A9CB96CD01BFC91C4BB35F0F854235E98E8DFEAE7DDD7ABCD18AB84E78C00D -D39A4F53B52B14E570D9E5377328F43BDD82936E5992A745123B42FFEBBBCF196744F193F57A40 -38B5AF3D5B1769C10EB947B4C2D6FAC578ABE2C4E682F63971EF5346C62DEFE184DFFC039C233D -AA977CE3224DC9E989E49FFCCC73BADAE85B2A9BFDA4F848009237ABC481993FD7C358AAEB62E5 -2685C4597C9BDDC55C6CEEA1B44A2BC0A27061D08B4EFD8B97664CF2FB251B94D4900F135A952C -46F5FA13A30F6AA5C1150A186678B610526C764054DDCB5FFAAB0B31A92B8BE1AC60F5829A927F -006F619D10B59F59F137FA60D01ED6EE71E6544EA7CF8C8F81075767F7F88D7A2402EA33F8DF20 -9A8345776CDFAD3315FAFCF94A9776BB34697262D3856B8F72E238E8331F2CD4EBFA2CD0C2F633 -D67CFE012E32F7E1F199983EDAF394189E72D6398F48B8988668FBE0B6B1F307A9D127AB640767 -69F7856F28B8F979093B752A753AFB5E5371C66192D884FFF00A97B30FED991A46BB7F982B7858 -68BFCCE7593D432861C55AA6C48A2EDA8FAF4F9D23FEB5FD1F477AE532237A372D425664970BD6 -67080775EB9A3D080B10593CBC271FA9D8C95F9A7C89DAA54F7815F7C7126F640CD773E702037B -2FCFCFF8BE9C6AEBBEF95A50790D25D1B289F25B43B959E9C2F94F2BB66382F299FF5E88AC003F -2A04095AE808A6FC812C3F488B5783DACB58ABC15F81B8420C37B7797FF551B10DAC03FC1950B1 -734F753A722E9EBAAE5FC6140D800D1E3655D89B89726BB8100C00E57FB85D229E64EEF50CE010 -1699E721B94CFB42F3CCDDFE876B10B49A7A38FE69F8552D631DE6CFA9F0CCE3144AED6AD00214 -36ECD9044A3DF2B9944BE491C3F3282C38AD3839BEEC9485B30582C9D8C20986A9D2DEBA760B14 -6D541841D42FA9F46C329C5679C31BB32F89B7E4FB817A02B1CDC7ECEEEB84818B60540DBCCC0F -3144C673320E3DDBE6E31F1677479B75C18968B766C924461482B35754DDDB9E43C81D226C91DD -E21768A54CF64FE29980317C6864FADA228D2A972152ED1412F9498CE60B7C3B50B9890AED723C -795934409C5EB2C727A8872C6A0DA820CCBB506CF0D78AFAD64C06891A8B570732AF12F60D456E -17871E5E3ECDD6B3CBD8F86234C38E4FD00CD39457419A169E59EF4EE625DD40748BAE47CDC39A -9BAAF4B65FC6C5511D9061DA352E981880F6340D6B6A20B839754663D26F6F53EFCD6EA6EC963E -581E42331B236409F2F98C43445BA0D7D0EAA52150636AF735BFB6C475C904FD4754034ED58E1B -B4DFAC824B3669D3AC473BD833B3CE889323987BF1EB3CA1A0872ED5388460F360FE9D1400FC8F -10833946F68832978B0F75CB14E9FF75E7C5B9464512BFD5D5C4BDDD7530FAE0B397948FD5721A -0D7B38FD5B67CAE166EA2DDCDFA1ABF4F8E1195913D222AC3A7CD5BA9C07304FC477FD91FD35CB -C784826AFED5D80AB7C968036E868930508F4F1C6D7488094B78990BA4B79384C4E55E09FBD28E -CAD7764DF404A1832B243EFF8B0F344F46A3D772E6F0507A50CF120C74DD6674DE4A72531A33E6 -28A5B1AC079AE7A41D62C723D90B7A3E999486CDCE2B64BCAF7443BCC37A9445C1B4681BD26DDB -C451658A1981B327DDF00E3C9AC34735605595466472C34636749C436773BAA155E51ACE57A294 -62812D2F6E396F57E8A6CF5A739308FD478C69528D86B3CC1442761531D6BB1FF48A513DAA1BEB -617A418AF696988E29538D9EF0DD8E16588D9157E619AE1226F4C2F37146DC6A49685C492578F3 -EED7B8DEE2FCE03460ADDB91C37F7A29E2D3276198740B73C93161A75FE0D83F02ECBF1B5AED93 -086DA0545EF10000706305D2911EE39ADACECBE06C1B5FE941EA8BCC6C2B6E9485674E7DBCEF3A -65E8FB59E25C291AEC3158AE9D7C2FA661224B2CFB87970A84538F0370ED6DE4AC43BE23F914A4 -D67FC71AD27ADD384CE9099C65AD89980735B046C9F37CDB29BA5BFC3530CB1658DFEA94D70360 -F63781D87F4501875647342791EA609FD1CAC8A338BC25D296A80F4BE0A24A847ABE708BD8B7ED -150C3E071BF0F8469A994072DCFC16BBA90FB24A71CE8E7F76ECE95DAA5BF3E78D0AFC22435753 -B94EA390CD95C19BE6C739FCB37F7051A879915507F6F4CA85CB9C5C9B1DE6EDC1A59D0463EC09 -EBDAAC2E5969658111004711C2C3769609BE35F8461BA30BD7E68321505A14B30E0BE54B29DDA6 -4ACD1D186E57F16A15A1211EAD0CC317B8B7705060E18140358F950B050A232E2E24FDDF74F90D -F1D288F3171A38351A141DF305B3FD32F5A47C25337C252140D3D529700A391F5176134F6E4752 -7452F76E16B9D5025A0D9C4BC0A8873A9D8BA4AA0E323E1E635EE715E09E3782A64B1B578C4FB0 -489D594558A9DFDEC479A9898B3D2002EF6A3F0AACEFB4F4CD8261172C27D15D3C8A6D8BBF8550 -B5A72672A513F340492536A1C57EBA1E56138A6EB1FC138BAA1DEE14D8334BA2D8368E1B1BAEDD -F4413490723E24933659A2C2AA76918B347ADCEA2DA773F4A90399B0D12E6D9697CCA9743D2B9B -B2E347841AF2FFD3B2ECB2F52C6E84E249A98164940093C6B0F7F3EDC12FDB0E28458321EA539E -D53AC5A8A6581D13899666E387F45611E6DF6FB6A912DF34837CD02A7CBD449DB6D76AE8E0B9D6 -674A78ED831CC52B501783FF61B3D6012C7FD091F78BE568A2D9CE4F30FC6B5762295DCBDA1F53 -54569F381386187186EEFA58E583D9476A4C2CEDC6B952315BC3AAA66AC4A0FF34DC46268C5B47 -7F98F170B5CA4CE9188FB5A7DE9B6C706F0E13693EDD06B359EF8B71C9CD93A55DFD9E9FFBDE43 -A8992E61E8037865318C26858FD577096730334BF64D160FBAB4B4A5D0E126E1F74F866D5B84DB -3ED0283CC471ED7420D5C7029417256C39A3DAA6282A87C42EAF85EDED92D9D2C68B7508F9B401 -6C1C52576F20AEBF17D4FAC5D2C26C30E4F0B0DCF82914A294B01A711A06702946A90876AFD511 -E4DA8B1E2DBD6277F42BC77D6E51DCF5F682214D77BDDA36632D7024E05D01A80336C3BBA5D1EE -6668CE16AC8BC11AC5075376590EC99818AA74958B818247ED7313B3D07D0D5D8C303483F0F0B7 -5B46246F62AEEC7DC00DCE07F5C4659B18BF0D157736575022524B7188F8BF5B5F4615E507C9C6 -8605571DF81A00715BF3D4F9AB6BC5CCFCC10496FD7EAE80D65FC97A9A5A1B82D85BBDEECA1E94 -0ED39A49C5CD3263FF051456CC785663437D56DF6FB1539C46C351FC0FED4F6C3B53E1D6010F91 -2B925DF6E2A25A7FDFEB8BB6F7FC2839467EB15668B2195DE2083B17CFB9A6B1822833DB7BE3A2 -DB6A97DEB48813C13D4BB2D257459FA71A67D1CA5672F01211EF9ABB0C16F378418F20C77F5F76 -2FA56B0F84DA79EBDF728CDB72277CFB44938799CF307E6ADFA8AA564530716D5CA8677C8710EC -846C6E87E63BC962D59117B661D1EB2B16B8E13484DC1C7E6DF23B21C6AC4C69BF61C41ACF593F -D36A9119969F5075A5D428BDB46620CB9B3BD16ED48E3E78C8A900FCD978DF20D16E2F895B149A -53FE7AE1A14B0901BA3A9C2FEA002FAE3DD25BA0C1C1918FCF1C85751C4778B8D4FF71FD4275ED -9C3E711FA12D503B0C05469AE2F0F82E9D6F7E1CF0AD5BE1BA3985CB588524AE771AD942A6C2BD -8BBF08E9C77EA4BDD54820BD8A0FCB35A5C93C0E1A3BB507E003DB5941B7950940BBA323E45FDB -322585D4792B5BFA97BEEC138D4CA56FA3022D3AD99E30F80557D9B531747E9F4429BA9809CB30 -D20005BC24E3A3488178526464E8A950C7D04C787225FB6DF51C3A38229C33FE52848F4DDD9665 -7B61FF9E0690EA6BB963F879D170F2EFD592D12731890BAC9AD2FEA407B161DF19EB30D6B833C2 -7ACBCE55FA0556E2F991564C15ACAE23647C57BF1885C1FD0A80C1A9EF044AF1F6C6C20B3BB5C3 -0B94C38F718696C127F3D0BBFEB64F6D2CDD82620640D7E1A7BC954D97D19B1BAD7B6EA8965E77 -EF54B80632B9CD9F8BB6028DAEE40D5965299407A01E09CCA11CC830B66135F80D5CFE6BB4CB3A -6C8FDC309EAA940B1401C268C635AF7167B9CCCF3E7BEBA89F73B721000F8B0EC19B0F572A5B6B -262C8FD862DE10BF92854FE705A5C5911AD6D01E83B9F15A0B7F411FA37DFD64608D0611FA75FA -355737F0A5F1A2736D071AFBA31A2AC2F41F8748A9AC1D61AA643FF10DF9C7F0310B861F74B504 -C53739BF454C0BFAB07552B85879DBFE4CD367B3E96ADE0C3604A4AC44BA440055D572F06E86E4 -375E88A47DCE391EF8DE0C730D340AAA2BB2A486517D7A30FEF8E49B70094284FB20079BE3C8D5 -049F0B631B76D2DF986520063E0BC6AC94DBBCDEF79ACDFB022CB575C57AF8F4ACA52FD00F08A2 -BEBDDD5C7CE5F0121F2861B95C416F82BE06778D14275D4A486665A639DE1BE871DC7E2F8F0DFA -340DEBE03F9C33622B0BE67DCD88760CF15732527B29120BAFF09DAA09DA45E32DE6B8A2339D35 -0C94DAA47D0C749C250CE7CB211BB390C521404E68F8FFF10D8CC2EC293A1322A3A6F3E3818D0B -248A90D38612061328DE74A3D22D0BE467974BB7D3FB9A1937AC08A0955DE27876236AB3FB780C -CCCBB0419C81982DE65ADCEEEF7230CD442C4C4A9C093AAE35A02797FD96AC49C8694FC72D0C88 -1420112C26FDEBEE7A305AC36D0658F01E1D8E685479AA8924F3FE5088642C02658CE696894DE6 -004CF81CF629C9DBDD43EA44DBC758935838CE09BB1F91250DE21F3B1AD55F3BDC8E6C95271DCB -7811EFFEBE9CF3382176869B3A618E3B7BBAA72158B6AC5749118DDCF030AF00E74624F17D422A -969CEFBF127BCA9A3198C2BCA0C8CCA866A809172E90E464733C9A270B1C3D2DFCA7FEC58CD753 -9D077BD744B94C9554453BA9D1BF9E6AAA7005846FD4B55CF15D60C06C3F2445758F28BD335E23 -5556B5C01A38A730607C3517698B63AF6924074CE49F290DF73CF429E6DF2FAE37A2CBC2624F9A -6D0927C9D450BDB81C352FBE1D31871E7DDDBA1358532FE253371C8D2D8BF8C4CA863676D15E57 -C5321368FE4E7042937EC55138C4A8C27A6EA262CD0D91C0D2C685C0A066C21EC0209E391A5E2D -49E2C48FC53EE4BBECFF04A7F8766681837A85238EF4B5A9692F28830CC59D70B5FDA03F42E0AC -58A955D18D3596333C816F59D9E145095A83617021B47057885086A0348B573766CE83A8275C23 -6D0FD66F945C3648A154C23AFBAAA66FADAF1F8FE11921E4917558D001F26F984EFA75A37FCDFF -CFE38BC3A587D49FDD012653EC979E65B8A52E461772A6F0C50CD9E1948FBFEEB9F3B217B4FF7C -E5F2C86F011B8CFFA027499E5E2DA96D2C1C83E517B5B6ED1925259E97FCDBCCF1D84D0A63B4F8 -06B3EEBECBF6B25C52F78B81AD948142669990E80047ADDA3CB0B9125F1FC99F141581E0F98FFE -91006E83866ACEE9BD48C5D79D8476BFE670EA9A60B4713D8FEA9A1A75DBBB3C36C69E2E9EE598 -33458FB987DE5E00733C954D610DA3C504A678DBF248E061FD83DE507D44BAD90D8A4DD5D9D92D -B0C60AE2A706F7EF6FA4D17E1EE1F47AD5A399D5D53DBFBC651544EED9E39692749EC9D096B7C5 -E461B8AAF039F663B092B4D2E7A36C12A39A419CA6F3EF7F4D1D2AA1387B701030AE94ED8288C3 -BBA3D4514886BEC46BD8A25292A919E9893E7487512DCDF3B8269F6BACB5BB38CCF0801CEA8944 -F38209BBEFE1789B30069280119C67CC9BE0F77B19340466D2A2BA2C4B75F38A4F8AAA832F3063 -D93C514B7E1D22A6D63DA4CD7AEC46DCCF98E787BE93240CBF28E56EB757B3A8AB68486EC15134 -08680E0C765DD06C6339E87F8633653A7581C52FE8D0798664FEE6191F8CB5CBC9258E30FAB211 -6A6373890BB95884DE4BAECD590203EC4D8428007193C1113070C39DACE584F19363CBBF4DB4EC -D870BA78008B2BA2E5D0124D6EE28AFCAE0097A8C7836DF5F6B2ACE881905C5765C5D7C68FED00 -D71A5C713335947713FDD49E117866F02C1A4588FC1518EF6E1CD9406CFAD6B5A9DCC50514F5BA -F1B5259C93A8D917EA76E357DEF2B8D27DE40886959220898D59769523A74A73955842C0B44634 -7C9A1F335454A23C72F092DA2AC404CDADA9928530393880988810EEF73F80080011F1E6C3A27E -E2804DA5CB3E1DD0CEA4D5B484F631F63474BD9EFB277C12A1F92A071A52C5E986E87EE69A567B -44E6E1288E03D9023BA7A2222168D5FAB8D47211F7C52EE10C5DEABAC98FD192B609073F4225FB -D035AEFDC4C9C6A042BD0A6D13AF241117E9F20E8E7CB2C068528D21D0F89E342B892A4A72FB18 -195D716AD02571E213373C608E13038D3FB474C0630999338D65C637FECCC5F1AF4ED5F9190894 -585989C690A83C63A0EE07ABCF2215055ED665D5423111218FB924C0BCCAE7BE3D634C9510D118 -E87B8AB3B7D92B8044FF15B7A0C8E1DD8A950D94958CD2082E8101ABA7447B038CF39D3099A952 -7E76B3CD1A5736F76B44FB16DE786063CA53D7F72C17326DA5B257D73B6DB82ED224FBF8CD8AA7 -42B2EA5126072AB706ED6F008DD7B59A274412BCF6DA28F9A3909FBFDAECE3F8BC302A94A6E376 -BDFF98E2B9E5C476C01FCE90A4E92176EC88FDE2A09180E0E1A21F597412480BF19F4D02CFC87D -95343BDB16F1DA15BADFAE941A331CDADF42D591F0CB59F117DB2A1BB22D7C299936CB6DF37C47 -B37D4570C512142801E810BF82978CCFBA35761C64FB236D7CBA3755ABDB2FF5F94CFD74FF2C58 -E3B9EB02CBDC8EB3D1CF25D1460C3D8AC1FAB52410FBBBC323D2C1A99B54906E7ADCD33749F347 -51B9CACC97269AD7A879C646489A1794657BA4127F94CF8E266289979CDE7A3227742F1F4967F2 -5A49EBAB5E0B3FF4D78D558DC86B446553AFFF75B75590157EF4E4B670D4D5508ED790E39884B8 -9A0881CAF324D84772B53AE4080AC52DEE29C8506FE6F3AFDC9ADC7D1775DC59C83D09D9AEDD9F -BC849545D80B11FD15A4FDF2ACBC494EE00259AC37FE497C6F35A4EF51B25C67C5212AE50430ED -8D6BB73FC89E34F2E760296047AFAB9BFE89BD2FAB47E7639F04DEBB92208578E6BA025F180411 -1AE7985966A5D2AA7084640FD7C7F96578321D74E9B508903E6D5D3C16CD3FC9788FF487B31632 -5FE044A262CB14D4B97250A935124F8024D1340F58E6FD6D7B0411E3AD19E62522906BBDC9428F -E31F00E1A0CD96DBE93F1EE73119AFE7C71F059A90D9DDBAFE00A4173E1FCF74BA97FAE28EC8E2 -45B972AF106D1FC0ED3574D1C713E0E955C4917745DE163E12B345B00A832F7F7B70CFCEB76F1A -88C0CF050EC5D2C9331BA0D84B9BB9D0ACE85F021553DDB0EF3485B056421587241844DD64623D -30C7EA91B5685E61D6D713D0867D8FF904E254D89B3A6F6E44239E8AFB210C2A5D741E0976BAC6 -5F07CFF611153E2DD8370D4E924459F571CC9D8B9C4BA56C0BF6BC1F6D20AA042CDB0EDD617148 -22A7A57F3B7030A9D055A8B6D5CEC8E83F471D692278EAA138FC371AD98D772D210B0F874799CC -9D7F29C2349897B7C77353D86CE4D17F970531A57FDB7E7642702D853AB8DA5F580690262AC019 -BC2672A5238FE43BD2FEFF2D2338D71028EA1DA10A987E610F0C527D6C5E7D0960AAF5D8A77FE9 -88B1C30C6AE41A073DE7DE2053B99031214A3C69E66301B2B2C12770C070F80DC986F255D3C766 -7C4AC0C85FF653193CE6369C8AA8143B99AF8C21F58E08A77CB575369E455EB094F4D180C645C2 -0368477129CAE48C36F4396E82E18903313AD0F39E666479E88C7CA4F99089120135DBCCE047F1 -97FEA92C118A0C3F936E4D12CF469FF2C1546C6559ECDE6BC9ED971CE2ACEEE6B4541B97DB48C1 -491689E0CD883F221B58F2E3C13336176A1D2FD31524E4E56D5DE01527EA3BF596A9EC4163DC9E -E300D6D8FB2A806A2568FCF190903D5FF08442C191980ABCE30178BBB7A0D51DC2F39850D2CE51 -8F5DAC1055CD93EB1E67AB262460646A235A14B6A2E2DC1FDF9079877D90F1997A01D7ECE1E0AC -3C69979C7A92D318F6B93051CB55F1992A0A737A3520C553AEABADC17FF5603F23712E31985E40 -167EB338F9F96444B908723C5D906B67556B0DC088E808A239757304673DB8634E5B049A25BA86 -2491EB65EB2FD1AC1793BC94E806B22F06031902BB37F75B16E12FC28593E171F45E8B5C076370 -EB2522791038C864354C495FA67640FAE6296C953A004B68BAFDAD61F9C095768E4496B3120EB7 -718DCFECD3B6D6D506F32561E435FF2AD83FDCBB6CDEA0669F0345F651712FE000D80952151CA8 -CBE574B5828FA7D2599A82BD6B458B4F462A6C09F1D7F335AC4D8919DFC8D2BE73284691A78F83 -605E0E1818030DC666D458E168F389F9DC51A71F232C4BB3F1CEDAC17E9A751D2A496A49BE94A9 -D806656CFD620842FB76BDEE39576136D7D3B2DD8B1D2FF9A6A288EDB4128C71FF0A8BE2D140E7 -B2DE893BD3F1878631401D13156D6992FA8DF287978A8AF5052A33E7FC68EB9D2487D47B0AA43E -B25625953FED6F4AA641604367E30E94BB66CC4EB3EA2497DFE7CC0874CB031A0635AAB2ACB504 -E70FD9D9C1F1D634D041425688DC6D4669E9ACC514A08BEC99A7F5928E98943CEC9968A09BF757 -38AB42F50308407B95DE4AD69EC9EC52D1E9C589F8B52B52091AE3872812CD55F633DF67209A25 -9FFAB05696B34096EE79AEF64B59B589E2BB49E2908FBA309167DB66F7F5D47C3873E7BD213B1B -48E966145D40DFC0541FE4F3C382A8E15AE837DD4C7B92C53E7285DB1FE32F605B89AB71DAD229 -D4921534DAB151E4AF32840F33B9C7F3866ECCB6B53D232934CFD94C8C59BA87D62BDA859472D2 -B3CF283E94783B1D3BBD1B35AA9C10974011BA857A8772462F1B2AE8130E1263BFCE41489F5532 -3CF207FC6F8B299AF55E6762CA918374FECCA6B5B55F2732FD908D25AAC3E703A05C0D6A70289E -ED5329628E968989AB3FE634F471EDECAC8F7056685B61DCEC44772089482AFA3CF96204E0440A -04E570C105F1A79F592AC40F5559FA0D29178F424C0A051B92E4684B6E90DE462083F33A7A08B4 -63E12BFE98B2DC6021FA61140EB257FBD66F085AAAD4C6FB0C089B1FEF91FA820B7A2DCDA6147F -AA85C6279992741ECAA61EB6913F437CD0E9D94B54319C12BA6EB71D8791D04D40DD386558FF9E -DE3883C324528EF3F428D01A175B7DED3A48D184420DB29E352D025FEF804E16396F186FB68775 -5F6C9277A0555B1D4FABAB02A6D40AF88BB5C9D82C32E577CAD2054FDF64ADAC782FBD31593A6A -65DA02FBD1ABD742C73B7634FE90DCC689489780A297B29BB3C175B3448D331B73F307751CEF96 -BB6C0C48403B1A0C7977AD7839111486EFC50AE2FA28666A0AD657F686018464001811DF596F8C -E4ADB26B2F717A2C520AA033A184048ABD8C9DB5D0D518B00AEFEC2E6E0507FCAC2D5D09AD941C -8B04D61233C49770640BEF7CE0B1E1424F191680A0FC4E93B5CE99A406E262D325E952D3F96EE5 -A67E22C686170726A86B6C5C72F8A8511AA6F92BD57C9A7524CE47DB120AE506E577106DACE83C -52595127133D310397646E3E75A3B9D3B2F49C2E7DB6B0B0BE7F0392B897BDCA28461A272ED2AF -E554A375CDB58649C07E6FB9ED7EE571FA41B8B0A7A6EE02667449ED8C079B688438BB0FAF2169 -40AA668C7771D84D4FABE67A893048C3EED90182CC236CEB3A2EF960A92EFC282964EFD400EDD4 -DE7B86DF8D18E8100DA9409CE31FE6B7360D9238DAD7590FBDE2E6686CAA620E5B578596E810E6 -AE10CA734AEE65FACEC38270F72A484C6386F37BC9122D036B531682B16CCE84C2038A58324826 -D5FE912EF4A17B59075C8FCB2C949902CBC3D948B1F8EF3EA31F6CE0E4352F3D643DF65116979F -FB9C6BC403CF123AFD13364947D9C1B95ECA218B17F8C515108B9527E4390BCE3A9AC2C2100707 -6E97A45317B5B56FB1C582985C853A4C0C88FE31BC32E497DE73C57FBEFBE91E549C3BA19486B1 -60B5A5C3E05300E553E8036C4D831F4A65AE9D489BE07EE4BFDCB3543015C173A416B1696093E2 -DCAF9410F4A2DA057162B0193D3C03F600106F767E245191CAFBDBDA048CFE83C441E3DD223EBA -0863BCAB6A9BB64365CEF19CD8EB1F328B17E2A3536407DB189CB5D4C8FFAB9CBAC077F4041EB9 -A73AECFE166891570C0747E94E4EBFF4914F1B986364817231471AEA4D2136FE16A83BD7CAE91B -721499F40F7D7AA61FF7864FDC514CE91EC8608A135D8DAB5B0FC96F72362994E5E20E328EBA8E -58F0DB8835FCD34C1757B99A98202AF46DE08761C367B2C8FFAD3063CE2F1419DF8E01CE2AA8CC -C7148BA74AFC479746419CAF20E4E195AB8BA6950C24DF0BA732192FD61B2CFB8A65BB9B83A9FE -9CAC67FF11B57AEB8AA1CF29F05D3A8D5EECD156D6423ADCBE34C2BE9E6E7D6B5F7551763C5DBF -AFBD02021310B5E3699436F86F449A1B8A9C9E89C39F541FEAA3EF045E2E5088388618DFCF52A5 -7921F88D6C2D2DC2C50274B46EA6900D295720CCA3B23DC55E0B03C30A74CB9C8F77E95A3BEAD8 -8CD80B9118CF0E295CF02AD0CBD484AC35C804735A540E173D4955D033EBF28EF625403505199B -F1B82F35648B70345550BAC06F01696C4B81C27BAEFA5E7A6A0ACBEEF1D6F83B0707787D8E98FA -DBF67B75AD26538D7EEFAAC57DEC507158DE3EA39D3C88D3AC9E73AE988B1790C343E49EBF0070 -C3245FA4BE1480DD9E041087F87AD0520791D9BB20AA78FEEEDF0772E1749F5FD4F0FD46265B73 -815CCDA191731F7E973EB698D3FFEABB83956EC55D6A7517643906224EA5C8962DB69EB0EBBD38 -66BC8F4951F9C6CC0C156F514DC6CC91F4E0AD9AFDA4CE3D4A67E1D09D29D9B7AE386CE2428AAE -6255AC616F9681DAB06ECE72282B0806D82947C2A680E8A3B56B0538A39AB4C55B9DB329697234 -FED1FF4298DDBB758F5B79979109A8A37CE495251311BFFBE9E0660B80C41F9A61CF994F3EDA36 -DBD67A1E44FA9C778A34E5C974E82087958B23817CF594718FFFF3423DB1FE5E7ACD4C4922402E -2178531BD057406134E8F65CB088C3B9D40DCEA5BE9AAF5CC8E1818226852442A7F9E593688F18 -1CA6651D1073C402EFDB48F0A177E654B9CDF18B3EB01B8B70EB368FA25206DDA4AAD4131503ED -72F6EF1647101805A062140F08B74794CEA728087D532A5C96B89660E664024D1F0FCF96447261 -32733580D9EAC90466ACAA47F0BA5113B9E462C66F7B17DD46F6EE4E1CC446EF9287A947FEA7C3 -0F4709A72C88E7C9BEAA57FAD2A7FD53EEDCD929D7013803F481F982737A6CC1879E5D3080EF8A -4B6759E75A56443D49A8F2CA2CC55D1FB2DAD56D5B5A0D7C3C7D0A31BFC7BB377FB52DCE2C8E99 -CD3938DA37177ADE7F069E92A6DF8767377F30213677EF1C20B00A4F5DDF8E12121AA48171F7E8 -DEC03DBED1C65067784A79F0389C1739E633BA9D28EE2CA792314470255BE7248D40E3587C0A0B -B6DB277A41BE95AE6390273E8A0B07FB13E5B530E27227F48D1298B40ADDE2E7035F94D10A2A50 -AA3A3CEED67AE00BEEAB2D163396F3DA8F68828FAB9D5E9615BD0A302AFE9775E684BC97121D80 -AD3B42C18C37FB1DAD5903B97E892160C7464813D891856E08E1ACD27A40760B7627A49F58F7EE -8B3D3660C3DB676B6B9B71DF2968750B9F1A80DD62EE3BD32C3B47DCC6C140E5F11B27F60F7927 -F1840E9C6EADB2D6D77A1C4DEB0FA8F892B44EA91AA4094C908250B6F4F6AF2CD54AD502384C9C -AA119D4D06DA553B03FB85AFB400F78AC92D8788DAA55B1C31944556D5ACF3AE6B4C58066E5CC8 -D618A8A49B984F703C797755145EBC8662AEDF8313522DC68C6F14C053708FA4DDBA689C43C77D -05056D8E55E4AFFE1896E0A6C26FF013ED34E9FF62AD8C7379F6188CD1EC8AE0EF98FEA0908ABD -2BB72119EB4D4C747152047E26AD4B14DF75F09AAA6157BFF0FB8AA220D96F2367280FF2BB17C3 -A9A738428BFC2318757A70E80E6FE8570787969C8AEEAC42A75677FDDE995476986E9EC26D17F7 -FB5F3ACBD535FDD13853DB3BAAD3F2E24370A4E8837B3EB483C395945722B35DFD7E2FDB46F2ED -44909C5DEDA732C2039ED60989264739690320E034B23ECEF5828BB96F8F2BA4397C7B68B7F72F -F82851184FBD2C4C392F3B5C59E5B4EDD83353CB47FCD432AD7AFC3C7E26B55928F0064993DBFD -9FA7E89D665C7A041C18E1304D5DE61801A0DCF44D7E317954ABA6C94365661347030CCFCDFE67 -19E6722145F2CD8E1D92AE1D78C60E301EEBF94B631032E0452206B1F478B3363B7B683EEAF821 -3B8156D95EA88CD65E6844AFAE9BF59F61649AFE540A9FDE690FD5F5C328E302C9EB43456AFC10 -7E3296AEF81303FCB9CF186A6C96FDB7513D2F6F84BE3EE195FE18FEA6F2EDC04C44F266D8220C -C201A5C84B9A81C2437B8D2E85EB7992F9FEE955FB316EA6BD40E7292F6733B9C561BF467FDF52 -B7C54D3B05D6D404F3348748E3D0FA42E5BA7BC2811139A7162181B5B13E9921701C60B0FE3F08 -9EFD39BEF19E4C8216EC556225337CB50701612C86EA1E0B85B9447D30A850D9AF35E039A1177F -E44023F345DEDEADA693EF0FDC26468411ABAC5EDD43D9B81B42F6E4DAC35F4C68B25096004025 -87F4AD458294720EA0038D75092D449980584FE7136E22F9C170477CCB97E543CB997F84331A0E -5AB5051B7143E86E80D13F163FE9D0B90EE9C6604B71397210300A1A098E70A27C591941A20463 -C242F2087396954BF9193E634998AAD4EF62C4ECA6A5A6B4FA755E9680F427D86A06BFE58AC515 -ABF75AC0D8F2843B39699850402D84EA6231D69A9F74F7DBB1311358AB6EAF9B965F2135257F26 -A328482E47922F23364FEC67DB123B0732BBAAAA4F88B66D08D6AB23CC9B123AE8B652378741C9 -5DEAAB8C553857883C37890ACDA07DA6996B3BB11E8AAA56F7C0BF9896CE207928BA8478F99ED2 -FF729969504DC5901265184C5606EE177FB5ADEACC7B02388D4E960F0EC674726410D099B490FC -6B851CF9085D8BD736F82E76DF6DFFFEF79221D00370C6EED9C23EFED4FE3AB85D0A52B32B0C3B -3FD5987A39B2BF2C89DF867E07A3C767A25F5279136E1F2E0B8636F9ECA61F03789D2ADF3C9739 -5FBA915DA068B96AF8C8F12F1D5E509B873574ACD34F2593EC309CAD1452BDCBCC3C30FAA7D023 -F44F742ED67CDED191B8C6FD26FC85E9263D174B9DE982200E94A6E4F63FB0ED4398D4A3906D70 -796A29649F70D77A8D63B1970D609BC84B93B1E4583FB5D1849C46D6C00B9643ED635626A37088 -36184EF0FB6D0DE5D537CD398F9A9361BB33DDC174E2F9C4C6D8E05648F2DE96FA713D8502678D -D64FB9B5597F78778A22D1747EF5B40913390ED8D2704A83362AEEFD90AB39396273826BED27D9 -8FF6B4AF9700D3AC5688BC4327C8EB6973B85218C0D00020B59B57DE1735A2815372646625076F -5278E827179D08372B9BA679ED92F3FD55CFF8B69EBDF7F8093703384E48D974AA64C5CF88C1DB -103CADE052E80605E70F6ECB32C4639CA413744CA95E29F76DE480F988CF2B52C1DB780593C310 -7A4E8C7914DAFC82B98F853981FBB896DF909BABC9CC1A1C008C3ECFFDDD656D481D7DFEDC42FD -C71905F15F665F800AAEC67C03403A153D46B305A45A1E05AFE40BF394D3C8A071CD5EEBF305FF -5A371BD1F117670DF1A49C2B5D1CC83DB21FD5389BDC26601627D729D6D2BB18A843F361CCEC75 -D151A8CADCF2E49A33316165D44EDE2CAFB3179E0E2AB8B5E0A3DC050D986D073BC7413D036AA9 -8962867022EC234CDDF1EB6769054D8A2D165A873164946C614CB9AE481E6B55B2801D9D6114C4 -F3CC16833999E6662FA63B7FFFFFC21BD209B69FCEA1C26B905362105807F12C9E68F9FA012E6D -C8DDF21969D38A19EAD13C5D49407DB5380AC40902044149070F9D7D251895CC5F8A597F45CF23 -7692FA7FF33355A31E26E7BB97CCF0E0DD2AA36AB210268836E819E45DE8518C8EE54E1719B483 -1FF5D90DE03C4E4C864057144EB4654B908EB052772160C8ECF1F862C3F504504F9E15628A4A4D -16B01F543C677ADA28A132F8BF5F758CC086DEE7C146B83B4C6476C3A550C6218675F4C33F1ECE -DCAB0C3112BDCFDD94A3032A73C6124451397A08EAF12937E980425DF411FA762E7817755EB367 -1A999A785D410301145F7DF41CDD1E3C642ED64B3E3A352D1C65ED1E62B2C9F40C9398CB30F77F -7EA88CDED5A5D51106D81DA03475B3F2525DA1AD4AD55379682868E4B37897D04A8BAE8B474A8C -60A51695076E91FAF2FD3E6FDAE7A633EC5A83242E224E1546EBD0A6BE6A1C21619A5226BA46DE -C4A93E212FEA0531C74115BD39C52665E51001D9D0C01AB67FF7E3A25D4D644BABC17EA0300ED6 -70B5BF65DFB5F3DEE45189F185B494498A6C1ED336C60901A8E36AB95F56CB53410928DE6816E3 -CA8FCC48C1C30B86CC6E2B3E265EBD4C5C888574A9987A037053B98BD86AD429CD752C92E38982 -4E9C1E441828C53CC495BEDAB0FCC65612F4BACDF7566DC2D9794275D3C64E88E4A70886FA6C06 -F6E6CDA24F4C5258D56E3E0F647325C176D28287327B6486818334B4BEFC9226FD828184E13A7B -44CDE166E10D44EC74EB1FC336470717BE9CC57B6DBAEBA117730124DED41270AA7A20D2CC5E82 -6F8E3A56B246E9EF62CACC7E4DFBAE4FC117D6CE6BD747FAF7E65FFAB333BAFC276A8615E36B2F -9D2C245729CF4F37A85B67CB71C33998503C619321A3F1E965FA60CEB0409780BC2C85E141C044 -1A52DC12D01583932E878BC3898756C8B70615310AB72E0032D58452F0844553D86BC4710BA757 -E0F8B346F08CEF5E11AEACA08ED7923116591DFF79A2004AE9E36476CD523085E52BF5F584E99A -A8F98416F11E7BE5CF0ED19B9ED53A8F5FACBCFE684C67AA615C58969FC9778C170D5AA4B495C2 -7FCE92D4BBB4A6DDCC03D57FECC625BAE1F8EF1BB450A617828AB945775A9A453CE791D118D7E3 -82DC1777BE65E6E8B7C5D6D53BEA31A4849314E6AD576437AD7BF724CECB0C5F82ED0CCCCE6A2C -07064D4857001B3BC90DFD3CB563750C1F85E1BEF1D504351E02F136A6846F3E3766CE83A820B9 -B00E4030E0D0AE46D1259ECC0F222FC261A59D458FC690A4F3AA9CF130C75089706BB44D0E11AF -80AEE0D30AB29AAE0C4F15DC3EACFDB17F2C398B32F1BEF376003ABC5C20A093203D44D3C1D3C9 -6730A0E2DFFDEBA332266CE06F31A3682230593B1441D5293F251509B06F2A623997A6F2E9E4B8 -F98EF0FCEB693AEBA92FE01768EB6417610228D5F164775FC17579D231AC3F37A781B960B2D28D -F7ACA6DBE948731798A429A8B13A9E50B55A39CFD2538214C79C6A6AEA31B4A6E00CC31A59A772 -2B850CC0E56F624FCC9538EA5536A1129D3AA5A2982D4A09BE412E10263225FDA8EA1F8E42C57F -0DAB402551A3504DCC450516FC8BE30B4835849A969A30986FA1D70A35159DC3838ED699721F10 -2758530FB4DC7D09F9491D6651755EB0A2297B4ACBD7D39A5FDBB18C09860EBB8B758AEA34934A -E398402DB1E678368AC44F3EDA1D0D0D9D4F622098A7954DE9AF40A4BB212036DDA8A547883F09 -EB4928ABB2FE16B20AD3C4DA1E433DA1A6A79DAAAF015AC57988E75428D0FA0F2439BAE2D632C2 -46C9518D02D8AFCF2BCD48B6ED4ED70A6E84E3B41C0C4C0A3504BBB7C8B1EBF881211BEB2D6F5B -821A773211A4275A88ACB6802899EEEE4E749383F4C8B05C364A0FD51C0BD79A29A44D79614CA5 -88142C955394E2E6947EB28568E84EFFBC1E53126B0AA649C5DAB9FD3812A82F36938DB423C744 -787DAF1E3615B14346FC285AFBEFF55619CA9C42FFEF7249E963A4940BA5523B63440014470723 -D98680E944C61D52C24C93D8D310CCCA583AC522257F9FD187239C5CD8F6C8F3ED9147EF975ADA -69C88A6E9837FC60EBD23BF6353B191B9A60D35E783D9C404F92860FCACCEC13A520D874413DFC -9E49B9665C6B4E571DA5F798661428A59B3E85DA5C1CF692794A19AE33921341D21BB8D4781D04 -704D31D3698CD619E18F671E767307AAB05095A47BADD8A9F3119A3BCEFCFB96B67F19C285CD45 -04479B251D4C1848636F7AF7E4E2F3450523C66C06ABBF9EBE571BF6079C53ED599684D7017F58 -33CA60357274C5D77BA844613955DC41F1257B8934D89624C66297AAA60FA3D8FE51B8071A55C0 -2B974BF714A4787154E2BE39EEA83C9CCC78E179BEE40491A7B1A69E9769065173C888DA32BAE7 -1C48A75B1ECA34460C5E7FAE5A6A0897C716A938E503D7569EEE2267314934144DED48A7376DC9 -95F1C3B89CE79946A39FF428F16CBF65E8006C9A1CBDF2D7553D4B71F884408415964AE608390B -CA3901704E39A68928D810C8815CF7A86FA3DE326CA7D506FEE41CAE47731B2834048D25FA5F93 -78F42F336F89062F42FBC4ECE7A2D005A72204F28F0F0DEEFD83A7E2123FD8374E9B24109E00BE -717395EBCF0692924216E3BF281AFD254E2A68FCE1344196031455C86E3800CF42DB12F84D03BB -F9DCC70446B94AE2F67CC4847378F33FD748C76BD7D70AE4D03AE6C0230BCA80E436C2126940B5 -CC9AF92BAD3B7D52BB30A24862089644AB0E8815856B4AAE6A930240F8B6E357A040907A3D3F2D -8DA2BDA625F5D4A2C2D7DCBA663EE58EF285FE140BFA75D28FCFF911E4F19819970268494C8285 -EBB9E85A662302D91D5B5725D508F55C1EFD3090305A904BFC3D9A7CA9D80DFF1EA435A846437F -86DBCA41BE2F5B4C63588E3FAA3AA34EE18AB77680F551E0E81F94822ED3606A36409FF601B7B1 -2D5893C206B985F234EB22D8144DF148E73081A4EA57308D5CE68061B213862CF80C8798ED436B -98CEF59156CED23B0718D240B9964074BBCA5EB0BD2A4F16651755078C28851D9575DBB137C2F4 -3B4AFBC5AB51F921BD6D50CA1A12B2F01C0D6501324C929D2D8CB56A83C82FC5041A4277A07EC2 -08612B09BF3D963D3A19CA82822DAA99699CC068284878829A27BE978C031EF4CB21E0F8886FEB -70BA0EC4A6A906EFB02B9F03D0058ED7518F7343D1A6EDFF6D3912A82939B3CB06BC34F978555E -749AA8FA24A7F9FC2D594083D139FEE84EC6523D878172D8E65BBF5FAD490090094A49456F4CEA -EFE5413F93E50ED2AC3CB2FA53E498671F274EDE57B451C541B044282E4AF9A3760762EAEB0835 -7447709C3311E05978E4EE8CFE0802F52ED18C051690F1BDBFB0AB8FD9017FFA728BEDBDB2430A -147847EC3711232297B0A463A705C53A36D7C6FC08949BDE34D494F550256EB1E083BBE7F5C703 -514B16AFF5D1930B3DACA9FCD03CD06409E51FEA90E950C6D93A8A1E0DC7B2CA228F56EC206860 -C8697516327C9D31D23D59F80FE2E81726DF71B43D67E94D00E841B5BC14445DA2E194700E5A60 -98EFD9983507E8AA4CFCEECC8BB43E41671B0AE88D8B0F5397F2168A2A7F5C9B9F2A4338AC7F88 -701DE489AE5932AF0AE9E4817C4C72ABEA740489E344BDCBD832A3A8B6A9AD5BCFA6A93595D2F8 -E2A784D313E058C60F62535013530C77B8559CE9A91F2F1569ECEB7662C34CB86C0B1579C83A6F -71B3D80C2FFED3AAB2D76E71EFAF3287AC7710B9879D65298D28CFE6EE1E3714A96259D72ECB44 -838AE9623CA9D4F57CAAFCCC7EBE292C1D2960A51DE1B4AD960650DF179115BBC3B78BF5D90086 -A503818AE875F025BC5026061453503D3AA579CB0E9C809E31E7512480BCE4E0CC1C69EAE3F202 -B2D9DEC3FC0A23D11B906CD73E5B735422371413350FBFAFA051584E1463A94816DB6BB48ADE15 -5D9A1F366D3246E0645BFF4959C6385344A9A9FFD935A413A27BBE68CEF39C66DF14F56E36FC9C -90DE20E82E1E5AAEBB441EE68CFD766F410C1622F2C1D72CC428F12E99E02D2C733F238B9902F9 -CE1D502D85364A2C4096C4FEB1639CC9D69F92D12C7AEE78D074B8808CD0BAC8086C401B0F4CD5 -0E49304ECA860A49BFF8874F2318561689AB5F7B2E5F1C5272FB75D5ED19E4136A91A3AF905856 -3D4B83865CF15078CB0C2B967E3AA549DB591A3EA0C1521DD7B2E222C171BF8EBE765A32A4A578 -4C611BA2C61B241F2AFA40E49712C919401968D84197A731B799D5397BD2B937329D299C8F0047 -DA451992E606BFE30A8E1814907A87FE84119AFB93703D9787D4C1C413F5A76236B78AECD7CBB5 -90408A312F60BC1BB63423E10312C80A121A154722994138BFB16B0393A07AFEC716EA6977071A -22AB3ED600A094E5C6DD73F6D7F0AD132355E7AEC4E301E821E11FAAA66D70A8E3AC5253AEE552 -186B6F6378B62C14EC41AC9451513A4B27AEBD66959C41D778F3EE8C6597A0E2A48A4EE9D14F2D -A3802830D791A3D045E94071071E8BEA8233805BBF35906CE76DD68F0B738A042708D796EB4EDE -C17CA860D8578157D85F550F31D3BFA8D28B763E9C634F61F42FD978EC125E90C71E2F537EFAF5 -283D4F97E572F1664912F61F69A1BC5314076FA5211C400DEA3C4132AB9CB8192080D78B7EC39D -14FAAA15298AB6C80A800957B2BDA1B2705FE6EFBA0CE5855F7E746797F964799EEC86675CC0EB -30B447839C99713D0D4D665D0F1BAC68DAF266267A57AF2CA066FDE9600E4623613B4564C58A6B -7343AB9DB446DC7FD45795FBAC9E7A7031AEA78EB8507BACADBFD9390EB90FC198391CA7E15CC2 -9B7C7DC6964E210FAD7808E92397B86E25500354FE8F749ED4C9A98A48B6E5BEFF2B2D6D1AE9EE -19F82E1A144192CE87E28731AF8DF82CDD1953D73B63D54416A87F4FB927F6C99EA8EB5291B10D -C519E5E60F8C5DB071F46F1A308B8F7DFA353C6CEF2578034B31C3B7537568B4C23657775503CB -2F9E829D8B5CF892EC4D405F215AB48056C1ADC9E2D7195463DDBCA169F84060C6BA9D89D3CC01 -0A58D845F687B148F35C17CAE7D627E63616C3ED8E3F7FCA1A2A894E0A11918F25C97C608B02C8 -94AECDD3981577E0F550145E18FD99EE2ECDEE940C7166BEFF60771C04C8093A0E74BD30551793 -15358C2203ADD885313B9C4AFE031A15116B4DB5641871F6078BAF130457D50547A0FC4872A9EC -C4C8BAB98AEE3EADB728523F5A1137DD046CD438E3D6C1DEFDF53C667A76570EC5F2BEC0DBD668 -5E18B204685A3C29826E79CE98555295CD1B17B29B46D52AE264C5D713DF91E38161717BF1BC52 -FCED4EF0F9E8E7384351530E4E1FA42EE19403E64D2B8C335E4585A32FECC7D3860819ECC40484 -EAF73F3CD89A56C7D2EF439C8C4E773C136898AD7492444FDA8FDB8C35223969CBE88BB5998C2B -B30F46081A706ECA4635B16B0EDE89901B3A7FA30A87AC59F0E3242314229267537F9F4BBFB5B6 -29C9665AE09B0A3BBCDFFEA35422E7ACD6776786BC165811A457AF8FD7BCD4624FCEECC83B2416 -B225A6047E6103BB737A668E6EDBC8825302E013B73543A6114132CFFFEECD1F9A9E2FA449BCF9 -85BCDBFDDB0AF49E2E42AC2511D4767C9C63198F03EF3733F3965A2C057528644179793910DBA4 -E78749FC2D2DEFBA1974E3A16C06B97C32B0DC0BCAC4B76564F7A1E6959B26CA35C806C11B02A9 -8D32629F3CC7C90786DB3E1A70C7F3C43906860630BEBF14CABF8B6D694B27138D633A338BA1A6 -0EF170D8EF499E3FB9D58C3C723A4293D4248AC65741884D5929B77EFCB3568500A991C00B58AD -2BD6C4D7DD017B05D02FF6E21E1C0FE24824EDF08945C7C6DB0EAF97200D3F0FF3DEB6405A5E9C -DB4610837769F1DE543A137CB2508051E95C322328E550BEC8E72EF8CEEF6F8EC850326CE919EC -2D66D961A3A872F086340B00ED43E63D714F2B26BF48D1A934411D909B4C1BF3B5512638036326 -5E2C49843403EBC73B3D5BB924D285E9F4B2DA3ED5D25DF840F95A089ED664C47B4ED2067E7107 -D5A83C5C25E981DECEF5C42FC7E7E210A1415FA477A5BA8DF602E04B026303757CCCFF6C2EAF53 -A95F621469BB567842F70C2D26118A6B017AA2D8DEB49DFBA75E8CDA1A6980408071A8B3152B62 -8B5DB74790313CCD0ECEBA0BD8632C7192853A41BD44759009D034F25EB1AD27A12630128AB4AE -A7FC3B39B6BA97ADE40DD2B76AB10CADC51978D5F3F366AFCFABFA031AAFABC1B8309571DCE7EE -20710F7282C77DAD16C1917864109E40D1B789356E45F8180126FC628850A95FAFD346B9B386E2 -C5FDAADB80844361C5D65DAFA9E305136624E7AF744E8A6831639C06C74E1DFEE49E52C3FC77FA -601F194D97FBF6D8EF0F948F8197854CB5C7509375660EB1AFF2C385966225CD1F7566895033F3 -C4DE4CF0081EE470F4AAD53F3165939CE32132509671FC167E8168C8DEF6B595F7E32CE6EDD833 -976F27556545C800B400F31173570A54E824CA84093346AD43761204C2647F8A105A5646E7A5A4 -0697BEFB5B5E50355A84B9F0AAE34EDDC377F3AB3A6D922E2BCE9CD5420219D0D5DF8B1D26A719 -2E20D7A1CEAA433F058E34879748CF4CBC1E6A6725102D3375EF3D6785A753F73E92F78590015C -2B3EB46F173A4CAD6E397DB0C30BE0EE57DBF27622A21E6C465C5EEC4B07112FC2D3259214E034 -229E2CAB1076CFA2CFBD0902CCDC5492A3B4C3233CD4FE6786077898E47411256FED19766B5C12 -2EDAF0206AF06CF8158A38BA554C1F1024D781BACABCDA739C87ECAFA132301160822F3C58C3A4 -B760464A89D990AE9CCEA67D3A5406355E5339F699AC6A775F15172914E55E2C8F8BB2EAF2FDA7 -E7D78411DAFE61A15B9858E980183C13F082C69D4E996DC59D5BC53AE66C50B2713510A5346FCE -DC3A53FF738B3AB8F6E7F12DCE034394CE40490D95FD9F5F484B4E965B1A39996E3F0DD6E5FA6B -5C238E858B92EB4E9F4FA3310F5E5135E75A7806613414C6EB5191645FDDDE7DA90936E1D4AD4B -B096E47A5575094AACEDF7A8AE46C1572BF6C273CDC7DCD2E9845AFB9E5531E91C21BA0FD3AFF5 -02155654713ED807AF7D55EF534CAE7456FA608A3C270018A85D80522EEED986BAB71CA2FF56F7 -A5B1DD9205489BD0E19C14C585F56622EFA9DDACDF3D1C956B2BFA7469EB513998DD71B0C8745F -F8665F2926825FE1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndProcSet -%%BeginProcSet: ppcodbol.pfa - - - -% Generated by Fontographer 3.5 - -% Copyright (c) 1987 Adobe Systems Incorporated. - -% ADL: 712 288 0 - - -%FontDirectory/PPCodeBold known{/PPCodeBold findfont dup/UniqueID known{dup - -%/UniqueID get 4303737 eq exch/FontType get 1 eq and}{pop false}ifelse - -%{save true}{false}ifelse}{false}ifelse - -17 dict begin - -/FontInfo 13 dict dup begin - - /version(001.000)readonly def - - /Notice(Copyright (c) 1987 Adobe Systems Incorporated.)readonly def - - /FullName(PPCodeBold)readonly def - - /FamilyName(P)readonly def - - /Weight(Bold)readonly def - - /isFixedPitch false def - - /ItalicAngle 0 def - - /UnderlinePosition -90 def - - /UnderlineThickness 36 def - -end readonly def - -/FontName /PPCodeBold def - -/Encoding StandardEncoding def - -/PaintType 0 def - -/FontType 1 def - -/StrokeWidth 0 def - -/FontMatrix[0.001 0 0 0.001 0 0]readonly def - -/UniqueID 4303737 def - -/FontBBox{-28 -288 631 1046}readonly def - -currentdict end - -currentfile eexec - -D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0 - -F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE - -A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4 - -95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B - -F0A674D095697F925F532D1814BEA8F8A5B5223A32BC4A95402F2C843181776EA6DD8FF9EE5F34 - -89051FE34AE898ACF3201433CCCE8B93D5627B76114F999C81A0C554599F115C89AFA9221F963B - -6A2DA89342621244ABEB0E794C885F335E4EF8188C4B15B1E6630A405DA50578DDB37C96B3C8A5 - -6A7F70B55BC23606EC03C231B2380A83E0F0467A4C6F858A0548AC5AAC2F1117E7A4EA7A8C52D2 - -01B33626C2BEBCCA6DD9211D6C88F609BF2C6B133E55FCE6D8860090AFB3C065835D7B4F34AFF9 - -D8E0F4E0841E4367FF8604092704E1E3626FE8CB4A48EB13E45CBFEECBDFCBFCBE64323566C437 - -6AF858ACD9ACDC42A1C9285F253C3113122BC9AC460E2473581F9C1F210B6FE7B9D486E6C96BCD - -0CF9C52A89D2FA2D30D14D0FCC9A2470A3B91A0CAA9620CB376C417573860071332BF012305488 - -2289CF2A52934FB7F32BCD94337AD1EFE57BEB43E4A661FF8EF5DBA38FA3C924E8517AEC114103 - -11E79D6DF861159AC74C9620888EDA3AF4CA08A15623B5F3D1AEDA88B1BCCE8F057173C0337C67 - -CA2A599F1F4BA039BBB26179F54A57A8797A9C4EFAC228FEDF1E2C50A951EB19770525AF2C6850 - -5660A6C5F4E7C7AB39D5755DDDEB1BC4D04EB10CC09F907E6BFBB68807A874392E443C9867046F - -4B020E5D79BA450B63BDC0FB38AECDEA91251673C5327EEB74821505993A490133B73F7A4D90F9 - -9D4B3778E50274762FD18E87F7CA1D009DBF4EA8CDFDAC1494B7E78C17B43A9DBCAEE0CD5FFBD0 - -E0443DB5CB70E71D7C95AA35B42CF90830969A8C84802E49EDA9528B7D0FDD9175A6D41F7E3496 - -7B2E93815955A9B14B34D2A37E6E88F80C7C11DD39ACDFB1F10A1237A0FCB1BB37221F7160ACA1 - -9037AF794A3183554C07C03CF9DB3FACE33A2FB584A30A81578E99B6A625861D2D2957D5EB8789 - -CD0934A41FCA23C935BDB7094848B0FBBC592067A34FB3AD564BE71D20074C2A4B624945ACFC71 - -131694C4056E464D43E3249BA1FB106DA6E67BBC6DCF542801C73446A921ADABA4B4BCFE6368E4 - -543739A1AB352A54F734ECD3CDDBC89F014F59682E3C521B33CA0F9FBC23758DCB3446724DC4F2 - -45B6D123E904451D2030B0BA2FCBB3E58711779949740AED1F2E2B36C78EBBCCFBCBB6FA25EFDD - -0A9CA000C67D6BE7B0B3618E10ECF1FA5279A7D16462F5382AF104B5043777194F0138CF09DD2E - -F53D8F4735BBA9B1493FB2DEC4D33B35CF18813FF6BF9E9EE78E2AF93566F0FCBF4D6BFA7CA307 - -E7B29BAF1B4F4743B14074BF91055E3FF84C3AF83C6642271BAD1430C7AFB976832E88471FCD13 - -ACFD0E867F5BFCE3CEEDBE63EA33A440B1A28111E39EBED5D08BC3957C95C33C2F3BA027005CD6 - -FDE60CC4471657FF6FADD89450AAB5DC9668195FB9D8F7510F13CC8EEDAA6D0915898CC619DCDE - -8BAFD257D6B74F1ECC62599FF345702AEC4EE7BA242C73CF8A361C72595F6824240DB10F50A8A1 - -2E605636FDD4DEC8C7F7247E1924DD13FE0953677E86CFCB8A10F15E60C79DA019FFE0F748497F - -8D7D92B07FD2946BF908AF2B6CA40285C966D7767A14FF85E7F43B49E0F8EE1DA6B4E666347026 - -4743E0AC871379CF8A079EDC65C1D84896329990B60D9A33C724E01756DDBD8B9906AD18D1E11A - -095085675AF9723C0DE46F78E04790916CA89B4DD5EA57619B59E71BA530B694598648D332FC78 - -EDB34358805B64DF60C5D47AB82F3AC87B5385C39116B03017C3E4BB4556B96DE5F266B379EC69 - -9F4FC8A9F854C41E8BB03C9BD7C003883A90226992C67B2D02DBA92242B94D21566C83FAC1B4C1 - -2ADE6FFAA049BF6805AE76A6A6ED48144DACABDC8D2F35CB5C08158A73A0A1006667738CC471E8 - -29D9487E22DFEC30DB6DD281931E9BE9C84859D6FA932A76F9D85A1E99AFB5F5905BFED6FFD762 - -5654649757EB640B5B3C0D18019BECD629162091B69154DC0BDA1D08F0727AC851BB43503EE396 - -D3682541A730EE450C30F663187C3B5004D24173F962CFEA8E04F5DD664D5F6DD515224F7E256A - -4EA07B5CA823456D75708998097267BE5D77D20E71BBA0BEA3F327865A7A0C5746289AA653EE2D - -2157C2AF3330A45557F5F825A8D75284FC69BC15E1F73AC0F5A11B26D47210D195F557B265E9E3 - -0F6AC77C5D3AB084743E6B758365757B81D430549EF513E79AEBBA539A745F24D48AE8E728F028 - -4DF28984F5DB1203F0BD66628756565393F1629191C50347C0A48205DD807B0E6CFD353E22BA43 - -1CC6ACD8C6B4E97D691F743DAC69CD0881AA81CB3A48A08CAF9C32E4400A77F94A52F9AB18B4EC - -ADCA4F073DA5B3BF4079E0125B3064685FB783E1565D4A7779290BAA734052AE798F5CD75C9127 - -B338A49E2CDFFD9F0A429F662D170AA8851250713E3D19928D974B9A7CE6987DCCB07A53ACC32F - -D217991C80C5834BBAA796A7F9B206368542218701D93279E1E197D68CB0FD0313D7672A1327F7 - -06250FEA4DD4C623CD568F1F6BA0468D5C98B4E9C963E9E9B21BE58922750A5076449C8B9DAEA2 - -1C46E2384EF871C9456ECC739C1B3CCB5A85CDB66E90108C860B180EC7D4DD769214FA963F26AC - -66E28EF2DA1CDE21B3EF93714E42E7AAD53346F23EE3985B1A3F871D49CD56A0F041FD19A4688B - -5C18B14C93AC2D30E55B902ACC35DE79C6B3D3BC8DF6EC35570AF34D3472C24EECB4C07AD7DEEC - -6429F96942BFACA4B7CFDBBCEE6FCB8D5B542E289599F9FE1C2FE2B1E0E18F135722CB2118933D - -7743673DD8ADA0AEAFC20C36E0157B724771B00DC2FCD821C26EADF429ECF0A24CE808ED06CB80 - -EDDFFDD8300AC5FEB7C1B7CB59054D1A4F04267EFF030E171533ACEA869E8E93792D339FA96C6D - -648A9D4CC88C7D0C1B036DA7D452007A50EC5F0CF8F4C622C7078CFA3CF4BA424A63906BD510E0 - -A580C22AA1F0279F9BE03B7E1B6C714ABFA2FDF4EC8E14714970FAF1BCA49C71C91C46B2F31A8B - -C338180AFFE97E0A4FA6BC9FE4750A84620E2CF23AABC6CDC4097140480D2A09C231BD32738D57 - -26BF12435640C3978CD4C855484D6CCA4482834FD761EA4153B1984D0578B776CDB21D48918012 - -86B6466492608DE797A7B951A979A2DCBEFFD69297C46F2B372F8ED2CCAE9372BD4AF6455DA71C - -65FFAEA6E84523ED098DC49D560C5D6B60BD5C19F0E61BE5F7859665295150E152FC3E885800D8 - -C832757ED77F7C53B30FD7EFB7C2258DF6EF3AFE23109D7A342F9B348FD6F36EF63C9571A96F6F - -8DDA17837E72A6FE0598FFB8E0D5C220DA3D3938510923C93DB72B25726A57885D418E8D6C049A - -F6EDE3A1DFCA9B10B28EF6F1D077D4B375D9CB33CCABDBE849FCC158E603ECBE7A90622598C99E - -88B32C2DD4DE614CCFBCFD9C2726DC3B26544A3989F1E47398FA46ED9378FB048ADE2A5E4D3620 - -708AE4B210FB4D97D3D6FA9FA4403515584D86F7C3CBF2F743CF2A63201ACD67E589B6F54BB05A - -4EB85B91328B9F2375E571622742681DB4F9447A2E0FBC4B4CB51FD7F8BDE4AD2D5278A472D2BD - -B5D88B77982B01786C035B57F85E89DE40E6368728B7283F542F3A93D3F5A7B1F6C982BB43A5B2 - -FDEEF5BD8C61831865349BD6D41EB3D2B0F94CD10E6D75C370667831119311B9888D0BE9E84BE0 - -F180960AFDFC65AFADCA3A9C145695CDF8C8AF9150B7BE09E5C0EE64FA511B2C8C6F5C1B206297 - -E3C7C9733875DD3976A6D7A2CFFA5CAE810C02FCBF2349D346370B5C95F00FC99A7FBC91083A6E - -4901E21F99159BCD464196651D39E6209557B52F604FA6144437DACC5DCB92FE8F81913B2EE3F6 - -B4206E0DA6A01F381D34242902678BC68F4D8B1AE7FA11A799D06C72A376197DB2527F45E2A1D8 - -50D47D835CEC8F963A6FF0A80778E46917E6DCDD841DDE904E3FA961EDFB8E6A5B7B47275581D4 - -1EEC0452DB032189B0F40207B11607D1427D50211D76966122832C980F9B9715DF2A25DB8B7940 - -9783565A3A325C5CA68A248E7148944844EE8A2CDB2ACF7D8A462775555E348914DF3238F0EEA0 - -657623EE65C29B7AD07C8B6413F78A0A4E9FC5307E427305C95FEF098E53E308703D757F37F193 - -7489AD1131582087D24BFF50A916A0F8E6E71C335E50B31650CB2FE42388473C55213346737CF0 - -A5D880D0A56E3E19B753411E92045A0E5C0073F378E9002DDBE0B10EE177F32FD9871B98E023E4 - -3AA3666F4594591F6AAD8C3FFD37804A451F21C86E794E657FF50F549B9F32E4B0281C36ADEA91 - -854944606176A6B3B7C55DBCB560D82D57D0AC1341F03240AC56A15D878EDC113A61277C4DFE71 - -DB85C6D82658105052EF0EC3AF873F5F0D1881B97CAF0CE52167C819FE01E00DE7B448887A30DE - -453A38BFE37CFCCA4F41E7EEA5A415F33052FEE64F7D2108C09F79E97DBA6998A3E3D5DC37A352 - -9333CFB254FBCB62F90A0A80BDB3606FD94A5D69A32A5EA004E94E45976A514BBCAC041DCCD593 - -CA673BC3EE1B8E4F904C3BBA2E19E1B55518C7D69B662C115859D51137FBF2D3DC019A8CD6E6A0 - -C14E4311B15FA670091B9CF8ABB1C196B4E0FC824BC2EBA76C62A23FE8C8A38D313F992FFAAB30 - -594798EE9C5C216D6E95411A825FA4F29AE05E0D883C07D24C4F5108839F131395731DF39486CF - -4D8D668B85F7A55DF83F5ED35F9B494B0989878C33A0817B8C7537388C5C6A658014866EC07D54 - -C89A80AF83A7C4DA21DE447206DD4C2F21A39C8CDDCF3B58A332805714F82B1E966180F5ECA958 - -27ACDC40A4A6EC8FD9BB024D3068C94FEF25E4D6337E40D2A002494EEDC7905E6BAE38426B344F - -5B36EDE8FFE894652422B11A320285916F4EE5D61E5EC9869D49729A0CAB13873BB3E0F20FA518 - -B812E5D24A641796E38A1766D805A89D9D9FB642143C377B365EC45BA6C193B3124C069C525517 - -6F35EC85546C1933F25B093DD56C78AD86E502A235D2773ABE3B7BD49E3DC78A6AECF20CE9DA4C - -87AD7C7E75BB4AAB78797EB93819A5C8DE68638EFF281B141662A463135DDA0D2D236DF0EEB709 - -AAD9A549CABBCAC4E577B1955BDD8BEB42650780CE2B1EAA47C35993E1E1F05051145A94C89D2F - -4162BFE23A2C91B7844885AD346BB88E9C9F8FAEDD20B6D6E54A9FCFE3C185401EFE58F29CD4AF - -8D9DEA6EBFF427E9AE18DDD3D1BFFE2A17A7137B596E239B7426CE38B5C48C81D17FF85462B648 - -70A3A7C9F2F3AEE9884D03CDF387F90C5CDB807E222A744A617317038707BF3130ECAE267926D1 - -52154FB423E2FCFC438AB660738148882BC686DB56C50D092D60428D9B0371704D3FB8FBE75D56 - -9E22B0E9D767A5A8EB7702C34F7320C30FF142DCEB9D9157678645C51391647F9F7329B39C2432 - -00A8D0527940F8DA37A300C0182CF76F3220B1E62EAC18E8FE0A8C93A0A5A373386E38093B81BD - -3EC3CFD5BF2E88C51321D4540733173592661D85F1AFD04739543C397E368C73500456264B2625 - -37B8EA6D147D264E48E65FC6694D277E5970B0FB471D76280A74008B10CC5A216ED07F21A24BD5 - -DBCEA5A4E0ADA483F04ACD7697AB7A0A901C0192581D4FABBC24489E3CF535737040B0C15BF2CA - -997026FCC37E36088D513CC20B68C8D8709E5D5811B5C510D6193A81323A271620D239CFA32F96 - -3AF5F3B5857AC680D1491DE3F22A8BBD2952EEE5B49637F24BDE92B5A994CF5E0271CA9ADB47F5 - -C298A391BFCB60C630312AE893AC48F202568DE1B43DD986A38A0F478AE6465F83B0FD3ABD7FFE - -3EE06BF88D5016BEE2E90D4238722A604448708748D608295E3B435BF2B47C91FEF385F2731E95 - -1F73FABCC88CEB8BA48A087BEA2DFFA9301B60C4AB426BDC104A2411ED838085FC06CE3E4E6906 - -4D7EF3F301DD3CA3EAEF498E6A7B4B1A36E9790E7F69ECD5E8967050835CE779E3B44014C27AC0 - -456A96B9E28C71F30031B49FB00DA195A32C4175B6BFB279FE435EE92D4FD5963E42FE99D95438 - -7400706C17567B1FB65C4E90AAC10CA628032E0493A971BD55D83E1AD70B240BFB6EEDDD625D4E - -4CD6D4895668B1446DDD235E8DE44B694F3F93AAC2BC0D04C871FFBF5DBA1C7EEE0BF66C949A58 - -B16F55497E82ACD40BE356CAD3EBD707C0020ACD410DC6FFC7CC460525C2001A0B4A8B7B114932 - -3A65FB65BB7C20CBA305E53A312E9719A15C45C39C85A4F1F008C361B1757DC0BD8C10204B0218 - -AEAE29D3FC55C12E9985EF36A45046F46606924636F7F76480FEF7F8D264C73266C05A6DE699B2 - -37F6C1DF777306BEF1E0AC48A6B1548ED41B7EDCE706CC8A66B3D9437210C9FCFAC978C8F9FEEB - -8E220D024C04DAC2CE62DC8AFBE7AD4540B5ED3668E7B59FBA28A7F8D822DBEF84DFDB72566EC5 - -D6223A165959443A2F980F6D16C8187AD321C27AACF884336F7D8154D06FA46E3FF51D2DC26313 - -FA812F9F1507FD75B80411DEF69FE268B9A4587195E45B1FEACB0295C63BA8A4CFD47E7C711511 - -AEB00E93C0B359EA0DFDAFF5DFC0854E2FC63AEFD37DF473859C040D6E8D82F640C1815D3F9A53 - -AB3E1D5E1F0B0E125510F2C6D503C4CA518BD36892B83AD31B3734804F72600562F9246FA2B5B8 - -56BD55212CA27D700A7913AF505BBEB9BC3B2EEC13D7289997ABEC078808C79F65939B07A2619C - -0EFDE6FF7BAEAEBB3A4A321846F639A7096E4F7688E523DA1901EA3FFB6A71110B6CA2C45D1FC5 - -49AC32F03FA5AA7915EF43770A13AA68C43F4FA3DED55D2940F76648076D955B509217254128F7 - -46C3A2AC47D683FBFBE12057454435941CDE662220AA7B356E4718D591B81A06C04DCA83A814E5 - -AFBBB758EDF1E8DF1BF622D4E4BB637E017E4E66F6067CEF0650EED31BCBDC6947DADB3982329D - -E902E52062CEDBEB77715735E698E40448FEC00842BAE3BAA207D2B28ED3BFE1C1FE428439470F - -4E1D8358E35E4B97D61EC6A128B4383EA0276A947BC9D16794C3A3D7DB0BB59FF649875E0AFA43 - -E6586F8B4CA921C1AAFC0E2D1C970B380977CBA505B3D531F3789282E21D1B5D9D3376EAD7E4E4 - -00085C47CB858DA960B55BEA07E0B012BE3F5620DBA167C105B95FF9B5FDD28D5354C877E56710 - -1D45F9AA471D27183A55AB9B34D626815D32CD824A4C46772D8FC4931341E227309E8307835FD2 - -5359A10F84AD5744B8181DAD59176B6B466595B42331683F57546ACA60106654C9A1E5F1BD47DA - -F9F93598E75CF032198D69A1C4B152A29586209903C7BF126BDEE5A3806BA1766BB02F5D75E33D - -B2B011106FC3C964F8FAA9E9857BCAF903463FA7FC37294E4F0FF98BEA22FB44F7AE5E6789658B - -BAB5C30D6C32D5E24E268B54353D1245ED78D1D7385EBEEA49ECE496A4261F992F67B664776D6E - -CA1C8352499BF3CEEF365E152582F98590B8D903867B6557200B1070D91EA32EFDAB0580559EB5 - -56A835F74BF458693F093389EE1D1B1FC1BD2AC1146EA9C5E4B14BF26AB3EFA0BA0AA1813E6C61 - -B7011AC330B293A5CCDDB41412F97BA02D38E502D596912D165F6B0300228891210DB700E975BB - -47427388D5F3246D80CB9703FE5F2B2CD40873AE0521850D4D656174B52F24C06AF1D9FE4ABBF9 - -8B432B6150B0725E328E54BE382A16D5DF6C47D9DD14751B96E2DBCAF4C9858336F527238E263C - -58730C7E27DA1B21AADBB48154CE5E9C92660394D7282FC07917C91D0E91DAE3FF7DECFD5E8082 - -563E1673A15CFC069E08D554E3B8DF570209D567C65F3D26F251B405FAE5F6106637728BDEF735 - -EC2D5E7AA3F00434EB58C3307D221C12FEF6D741ED87081DD6B93D2E9282D09A7262EFFCCAFFDE - -CEE8C4E942AFFD8215B84FA57D41F5815F3A3191BC379EDC454252E688EB9788A551A17876AF1B - -0A5ED5A62E92E7DE332ED89A9B4F406552F9B706A6FAD59A433F72AB6D4401E25CC37C0FF91713 - -4C838E5CB3CD5AEB8556443B1BF513900F293B9BCF33F96608D1B108CF9BC7DE95F4B518A86987 - -28F20729D60E75E53476868220B64E905BBFBE8E26808EAEB0A46A1E096EF868EE4410EBC87D36 - -46037AFC6D177F42F8DAB8D5C88200AEA14388AF09EAF5CA24D72A172D654BE198CB426949C4E3 - -D23C7D49F4AEE4D20124B5830480D0A8CD0F7EFCA3FD251C609D124D0BB4E7A6CE89EA7C92E0E7 - -B9CB870E127E0337A2E645AEC27D1B0D85C57D27F0F7AA1E849CF1F4E9BDF02297C3E61290010D - -4EB0F30697D30ECCD1EDE1766BC137F2E2A3D7CED25B1BA259D100BA16AC3D29C01DF83DFE5B24 - -DCC9FFC2B80F61E91D2E41560241C00E79DA970A09D8AA229CC2F5C114E0713EAAB560442CCE73 - -993EB9882E7C0292F248C00717E3A1DA46ABF3FC716226EAAE35E8F20726B1A045A20F80B02473 - -8B7B93D0E79C6FA11780A6C94E64DE53FEAE019E4D838607A05C7746A3385C9728CA29D8F64373 - -B25307272A77028815D80451061B010EC8E82B0B70243F66B97ABED264F7B53B163DE8204796BC - -C593CA9BE3F43E26713DCBD9E3449FD300F6111A50EDD2F9CCBC6D0012A973B5F6A1651074FD14 - -76BF69456870C5228599FE7CC0959F6804497A28E3AAB129024816FBD3C0101A9B709DDE0A92AB - -F0B2948E096624D067F17A8CF2E8251A40969E857D86739883B6B46967EAC2286BD451F26B4A16 - -026FC5F3A087F4BE21A90D336B69C5117F3AD532AF6E3FE9C8A484D372A1C8C1A342264D3C3782 - -4F3B582D2885642D2B3442121A7F3BFCBCA35D09DAFC4B8AA8BA4E0C1139E3F29ABEDEA82732D6 - -3810F7FB2A462E11A32DF2E74904AC7C5704C545FD6D08D6D1F6F07C69BD5418E82F6B33C36A99 - -5044BA660ADDEB24C7AD10889CB785169960F8E6EEE9A321BAA78794AF0860DB5270193CDC9C0D - -5DAC45A1E67FD6063A1998D0624A5DDDEBADC8C42318929535A693677673B24CD2CD2869148DBA - -C1EA486DEB1B0D83E7785F1E1EE65B9AE3C839C7427108C13C4B7F657BA9669D1FD3E3BE5FEE50 - -AA20946EE173BDC0A9B940744AEEA3847D56DE7E86ADDD6F63000CB048407070AF65E4BC097347 - -CD82F6084D20C529E35490492E5293F97554F9979405CC6FF7F801CC3DEA50DAF9BFEFE8623B2C - -8C7560766C4115EEFA40BF980647F6D3187A689294060DFC214E22441044CBFBB2B6274EDD44F5 - -218057869A46C517138E4F848DAD69F24208896C8DF860F0FF71EF89310F2D82EB7ACE6A72928B - -07CC57A2DF6443761D91283B59BD006650CDFDCEF8BD64A0F626CEAD770572D489E916AFA1AC26 - -8F6D22F3F37B63928472B81EBD287F6619900AB5B291A047906AAEE2CD93F7FDBF1658DFEB8D8C - -D7EF987D0D1235FF8DF202F9E83AD154500909996FEDECDE0EBB2F95F69805EF1F774D4D143AAE - -9A50B64BD514D83D00F05715F163BC7F64B90663C5971D6A5393C1D6011978EEFFD57A7B93FA57 - -E6CE1CBBA31DD510696A344EBDFACDB87AFDB6F425BCC13AD245E9264467960F951AD797AE9D9E - -631265ED0F12D4ABB0F6189FD9433A236F00D01FA038D5BCFB3DF68397610708A777FC3021B685 - -448445D326EA7649406A88DA392857FEA6156684E3547E8C757BC38223C0CA2569BE438D03B575 - -70E815D58BD82C2EEC861020C1DBF073EFD9C8136ABF263461D3AF77D057F50214904DDE51C3A0 - -61A3A1E1CFE413E9A148F05A8108608EF7FDB96F392E74EEBC5A4D354BA2AE5678D28AEC014979 - -128630984EF3D5586DB8783F0603D7210782DE979C07BE8DD589C710DD44394569B8BDE770BD90 - -35FAF3CFA48070C5CDC8CBEA2B5AB2620D4C40818AD740966B733B99E8CBAB4909F5EF5B5575ED - -0A8CE4635FBE9D69E57999B2739F281CA4BEED6FF2948B8670446BBB30D0BA6679AA38C2DA2A30 - -960687F2DCF0C741539102968C8D6582E55974811630B0FD2091B63477747F45CA0ADC23221AB4 - -C2E94EDAD6F862119F127A79A2BC073254E941B37B830E5FB504B26E580320DCFD5B2D03A5A6BE - -3C9350031D7A58F7B351A9F917ADEFA72D81490B325C4C1E39175D1D3F7394A009D04A7B706E1D - -3B6F61BEA096CF4DC50E4C72999667EEC869125B3EB152E3E7240968F9B93BDC91CC5E62654D7B - -46E2E60A4D2260322B563C543D9E171D5F1E816E73222709A1E2F14112209089554DDEE17CCB1C - -F066D0AA1387524FC4B2BB47071407428903A1B9721D6CE4046EC2FE43B9CD9409BAC41B76A27B - -8D4CF3DA42F9DD8A8A751DAD103F169A1524D0780022F764C49FE9B44AF80FABFE48BFE40D62D4 - -1AA0618245AD7BFAD7C105A3C064493B109F765EB06BFF5C1C8138296C635AD6258FB0894C2DDD - -BD37C46FD22311D265AE50CF391C85F6ADF59181EEAB5B65D1F81149AA5425B1C11A432032CAA0 - -3EB2FA8204E9BB6736998DE9B12E9E37EC651560F4E906B342A725E21021B82B84249D5C0F6D96 - -33C4196279E569DB16585843D65FAD0B5D893BB0A9D381324F76B61DA88DB8188E59C4BA15EE5F - -B2892E7260F9EA9861E44921ECC1A27D79B25050615852C838BC3BDB4D9A3B81AB2DFE7667E2AB - -0592E4D8AC4172031E12760F14AE1C058F986A22699E024E6C6CB50A43066F1A0304AA67AC44CB - -379814C791103B6C2D4C1439FC3046B611F6326A5BBE697384A976D0D01815B933EB4734966D07 - -E1D509471BFAEEFBD3F9689EAF82B0E9AADC2368AE52AA48F0318AA1BCC81C3F2B89D48C08A1F9 - -BA4D7CE86C5E913A87A0563D7790C471DD47CBDB273AA37CD4DE6BFDBA407483DE275FF57FAF93 - -22591A8523E77A3343CB6100AFB6035223E05EF3530313885FFC63A8D72DE099C50A774A603098 - -59EDCB3C4E424C9073E0B5B32D988FAD04EB486E65A3EA7FF7DB3D2FDFABBC92DF6C742EB6F09D - -2A78387DC0CA8561743CB9C8AD949472DAEC66ACADD435C818D28127770A8DA2A5090CECCBE16A - -516D7985D7A49C7EE9D08854435008ADF25041E8BA5744591AB7E22D3705EACBD1D9C6378F172D - -B82B2C7BC51293F40064306F69103E6A0BC1C1046C2A0AFA2E038550C194354EB8E263085E5390 - -749E2C98F43EA68D466E40C5FEFE6764939CFF817814B85BA928C5859D20709D78CD50B957E809 - -0F37CAE36B181C37E80E9E8690D2B9F0C34D204B8E4A5A164CAF2FA4FC6ADCD77509EAA5236233 - -6E9DBFD1FDA1CF32A9E980DCBF4B7C338CD18399ACE5108435767FEA8414585DE7C3E08590B37C - -CA0318A82C69ADDFCEAE156E5D1FE3EF9526515FEFF356E0351CDD1D3AD340E7727A478264DF2D - -491259F05A6504093949502E8D10250556B87ACBCA7EB938C62BE0D0DDA4D02A93E18769B895C0 - -4E5FC1B229FF4A3D7070A0856290BBFF3460C5E1AF92346E7879F27DCCD8A5338791656C376128 - -421DA4B07A5F96160F0421AE10C1F1675D396A80635B7CD1BFA4CC564263DA5C0C84F3787DC8D0 - -8ACAEDE11486C155BB1B16806303B9D21974CA19516C63402A8F0067CEDAF682EB2A2127348DBB - -5A662B5E87A5375B396B1153B843303501ED93534DF7C7FCA09EFB0261311155FCBA2EA97668A4 - -65A7751F91BCA566E4946565BA1D664CD8FED19E84E7563205DD7AF77E2A4CBC6846EF5ADBD11F - -1958E086FD7673D5AC997867EB0217314F32D60342FAAFFFF957F60D9B0AC57E611137AC695DEF - -E313BEB5334B838F83A54C3ED76AC55C67571F367A409DA052A0354837BDEE4D11B426DC9DCC74 - -61A6F422B95DF3894A002B02BDDFE3FEBA8D8E3BB7556F501A83A10FB0137F428FC522260E0A4B - -1655399490DA83CCEACED148AF1F447C9BBFE3B159399C82EAB257BE568A4DAD68A664D7397342 - -AAE7D38223CD9AEFCFE5E399F1D70404D470A1CE10D46CAFF5D522352C50DB8FABD7348FC6CEC8 - -34D5A82C04DDA105F85F450E7363E4E989C6725E6BBCF7AA6680C97D128FAAF4D6E3859F03B0F5 - -A3A8A70E0C9DAEE84BB95F41931A30AA18D6C51D9DD3D3B0ADC7D0B5FF0D0A889A944C4468F96B - -9E59515BBA5C86BDC5394BC40B80CBDA19857E9DFF41E75802D2A2C0247122CE94A7D5DD8F5846 - -27ACA0BE5C042A02FB7362C34614BCD17350AFB1F0EFDB09AE2F1C37FF21E007CD4DF1729AD932 - -FA20A8F85C06201F9623D959B9E4A90CD04B6E4AE2C1795828B022D990D939D5D1992CB2DB807D - -072CEE580FA9A79F07FD6C4980C997EC524B57B350DCE4F9013B5BB07165DD6FA1902868328FA8 - -0D3CD770B783818DE508E59383C96A05FBBA840831E129F0DBDD7B4AB05801E99E968EEB7A0106 - -5AF04F11C641CADBE745EB6EA76CEE1AA8524E405F23A9D0683974A78879299600BDD0924FBF18 - -908625872A63C38B4DDBBC8C764EBD99F0877FADB59B5F1D4FD9FD2FC1FC8C4F068B7B21B3787F - -728CD8CF5F52CE4A760746241C4A696F6BDBAD58A4D35041D744FBABDA2F883CB475E5F75D1ECB - -9056C3E52878FA0DDDAA30357906543F8440D1FEBC000297676E3C5AD462F825F1D302A2C7021D - -5A62595363A791A8EDBB22EDB9DB968BA0EEB4DF66E4622A04EB9FDB041DFB527CD404D62E4898 - -D5E7ED464B0C24D58DAFCA7E891481363761D803A9457B7A2403E1816FC67167571D44E27469E7 - -B1BC3AB85CAF808BB4043537D1B80CC490970D87A20857D868CBE901076419436A4E3C95C7C9B6 - -0E3CEAC7DB19859EDE149FF3F07BA586BE12698F5C0CC9815FF2A6C62F7DD98DAC639084CA7003 - -C99B9196CE6A6DC59CA0B202C9AF54620E38A0712AAC6E01D2711D40D012F15DCC51647721D4F7 - -F31E29E6CD7EBB59842B01BFF8C7C424F0E58D4FD15D56DAE60A6450AF2254D368CCD09CC3FA90 - -123C44ED4DDCD7F09D46C1354E5FC1A6C1901EFBDFBD4D6AD80EE95EA1B726B2309C0720424CD2 - -5F72D9E5BF38B51271FD23EEA93013114B356370A3C9D438EBFA0590158654E2A3B7D4C887921C - -F6538D1BB294CBAC75CA66CCDDF0B7F7DF1748942A908C07EA13E6B809B1350B9D73CECADC98FA - -35933A81A34B7A6F8EDC7DC2AF60B2F0632962B401AAFE06CBC8EA4DC636406F2CED5FAE7AD0D9 - -ED5023813855A83119423E4A114B413C3A016969A7481CE45E4E061ED9980FD961404B895D5A7E - -167B4D32E153DC778FCF5DA5EDEDF68D5707671B23DF2871C63FDBD6F9B9BCA9E7BB776B37107C - -38484453F24B4A3421A21D8797DB822236CA1A15D8719726C59D51F7332259E7CF23F28F1D903F - -100F9B0E8D8DE56CA3A99CA5B40D0622CC4D5AE6BA77112CEA79B10D0D5A808DA20D76B56FC499 - -206587F6A0EBECA10AF73F8E091D82622BFABC52A28DCC8C295A24041869E6363CF589670D3471 - -1F3BE64D02C861059FA9D10081FD2A0EA137C39ACFB2A83DCC9486195E40E99C0F28418B2C29C2 - -9C01A8CE4D98F29A22E58CAA51E9ECAF4CA85FB59E18C2E53873A642E31BE8E47591DA6EC6D7C4 - -E13055B8D08D6D1F0608A1080A38831280C98D7D47CFEBD3258432AC396BBF95B77E9470BA4B6C - -9A052CC8EBD7277C3B78514BDC491570B7D7B473C15CCEECB4D312C775BD8D99E46EBECF6C3533 - -FFFD3E5BEF8D7B9424447999A91CE1880918D750EA345E6A10771DBEBDB1B4CCCE1474C07A9C4E - -A894017BC593024CC16B595DBC835F4EE8D9ADF7FE8671E0BDF36613FE7844C598A789CA784B9C - -97AD2361D7CDCB2E9BD45032A38D6B0EFDFC8F67FED8EB3CDE280D81C6DC9348BD48CC580D2958 - -5658ACD4C3DBF2D7D85A78BCE9512D7F7BC2EDF7B76699545F3B1BCC202F53C8123B15F46D8F88 - -1070F1232CC8FD212F15785FECFC6B83C0F439716A859B64239C1FA880D32F62376EEB12EC6C00 - -235C9D550AFE84C981329B4B3DF17BC0E57E72D89058D1D3E6EDA91ECFEC0ECF0B802D41B4AFCC - -8DD250C13AECEDEAA1A0A6EE26F3351572849FF5E637A898D7B0A099D87012E274396A27E29A21 - -DB29584ED72FB614A317E47C6177A9FBB2E5320BCD90CC086B7DCDE6ECEE01F597738AADDC7D9D - -33B02A09CECA2A389F16AADCD2FB02EF257BAB1265ECD97E25F0DE1C8E7526FB5F8C328FE37078 - -A9D0F30D81B90A97A752505C8A2F8C9C7226E248AFC5B4318EB407B6A5DCE33FF5309794073737 - -F72CB55D73FF66EE1C055B9A3E49302C11D7248F36CE257FB051674274D51CA4C0DE1F927A882D - -F54C567B73FF1D38556CD22716A3F269B9FDDD261FBAE4A916E0818EFA5C193AA00456DB6F7845 - -FE41F715A8C0000E6FA8151895B3F21DD9BEF98D9CF674A60C8A1088502C6E09899D6456F4AEC9 - -5875068E29E2199ECCB632F7A459324512A3BBE6E65132263EE3A4E2FB4205580F5DEE083FD84D - -48ABA8E3CFE81FB1465D3027FC69C260594ED380C47B6AE3DC2E35661906D98C0126FB7A80FA3E - -9A2DF727AE36048F6B083D8D8D8B1A8028B073B96CE4B5447050665BD926D5A1151F3E0CD63C60 - -FA77FF2746D4A9E3E0F295770408CF348672EAC4772458125A8976BAC75469025B5AE8BC55540F - -41308CE31D273690C95D1173F05D953FBA2902E364885F821E14FB8153C749EFF100247E4AB315 - -321D9C192E68B3FD7B51549B2224183195A549016D2A4BF943F37184743D6E5575F5A192E23290 - -CA227E29F9BF15ABF4FAD388A9FB689A807AADD44048193B5B5B81CA9F9D7195803AE02D1A6A49 - -00074E47313554A4F3B842F080510CE27645B65B57761A364D0F890115D8834EEBDFA247923AE1 - -33AEDF8A46F1D1D410296E25E79C01F664136D8D219D324FA9B3349B1D5D180C025481EF9E7BF1 - -100F242EE16EF433054913E0ECF29C4A0830E93FA9898F7B5505F87BDCC02101531C7C9C107BEB - -0BDECAE5A49BEB45D3BC0D869B441BB41A64A229DF5A40CF258B0178203F91318D97D529D922E8 - -A82D36F34FFF98F0B0DC0984903B9DFE86932D96BC16C766FBAA4EE8449DD1BA7DE9ABEAD68989 - -8BDC2155360C631458568E63B929DEF983C6E56B563394B25A44B25DFE2CBF86244D266E44B6D2 - -DA18ACB4B2F537DB64110FC5187ECE20A514CE61209956A6555B35818E40A7036B8402C6E7F957 - -0BA69BDDFD8CD3C77478ED8491C1B721DC66078C59097F4F328BA45D7711D5F105AB8E5C0D3C5C - -F88CC85A2AD9D61B39B7D5BFD41DD227E50AC8244A00D9EFD6C13679B415B0A0DAFEF87F2D0E9C - -E1FD835736DF865C151628CD950E7DBC216AB359D4575BC46D610D6D4A0B50351966541D60D075 - -D98C1E28A0602F0876C3877050292E2469B66C8473420266AA8555F39F01A8C1EA343E3B42E1A8 - -F362DEC13E6B1CA2150B54A2896D413CBABC37515587400994662F9D892B1ECC5617D309DE995B - -F881BB27B0D1EB7EC8318ADC767A76ECE369E01BA8DB3E4797A78FC81A0852DC3FF3758A51589D - -BB0C8981CBF74076E83F42109DB8E11C9FA042A13F7866D34137D02681CCC2A8A24BDA46E9DBAC - -BF8D771B9EFEA416168992D4A0C5489848C5FCEEB6FEED260DF9D39F576EE08492B5BE18E34D1B - -7C4F05A828B2A8205634428F0169B58C95D6019B899FCD1910B4518D0B62861FC1803083617858 - -3D3273555D54206AB9624DE4658CCAF3FF2DA8DDB07A006F569F05AE0EC5E8BBA69E336B5A1BB0 - -A62C4DEA0ACFAB694374484EB3F531805445023CCB2A58832AA92DA536F0563AFC31B0C539C566 - -82633366B4D9DD8AFFD07071B8A172123901EE104E0A6AE2E3FE7AF22F23C3E4420F3B1C26CDFF - -255186F1002FA7836BD49637C480DF686F2FCE81C3CAD72EEC91046A3F2573F3A6844418FA4333 - -96D24B40272E3B580B66EFB2ADA4DEFAB6DAD03B7C2BED09108A353FC68A77014365BCED57FB50 - -5FC75F59C2402FDC24A886CF7B64B9FA13AB380DDA7DBF27B6B04C7FF37F61C9997B969654F75D - -A9929395371BFFB0D5B4FFFAC278C1E3D26E9D02C81891E8FABEFF9935FB2B6EAA225B6A223D0E - -D3DA70173215D25D7A3EE298AC98B9B3433A7060B52B9B1783F85E18602832228D139A86B37C3A - -FFE85F8552437DDEF469ACB48B86FB731379EB31940B6835CD47C640600082F3EB2E526B22F49C - -504721A32906DCF84888E8D0612435994D7475E23B0D6E6F829A5997812E8B53DB03116767DCC1 - -90F373E1C58A786564AB2846C95CE3A63DA0C9BF7B5F41C2A16201E2F2232BF05E4E7015E0B898 - -E410C7934616D499B35E96E4FB738165B8ED6708F9028114F3EFBF5B4C9288422F206AD6324AEC - -120A3BC0AFB1EBBA7639C8D0209DB2C432155ED7124110F3599D8E6CB9167435A06057308743D7 - -DB1CB5CA1F1774FD4AA3BE52C7B8B04234CB4B92293DA24ACB5C03E38AD4ACF2D5BF78378A52B1 - -D0443A548FADE2ACD6ADDCA315674D917CBFFDD48FFD4360721A9F3FA0F9F9EAF194996A33A524 - -C8B374AACE6A364F15560886F4378F5679AF393C195C56817CFC26ADA9679180274303DDD38A41 - -820954702774A160227CD496E147859CF2523466F8951D1BDE79AA7D21195BBEBD2DF3DBD12942 - -2A11241FA8009F43421BF7973045343BC959CFE22530A9C3B9AE5F271BC9273756171B19885793 - -97D4863133AF782A9B15B2714C77C6FD56077C00902C057184AD01B10B5556A6E07B6B062647AB - -22C783519B87E2D9A2BE689E32A95DFBD2865E585CFB0116A4110D40DAFCD0DD87709DDEC40B87 - -4433B29CF6AA9F9406CE62FFEA07A59AFEF28E49E7BBA32C7F6066995414E9EE5E2048A298177A - -13DAC03E5DF94334EB6E124E86E837880746D2E63D2C49B4D0D5872991431447CE8E242A35DE34 - -6C1D2F3DE7443EA05C2ECAE2518B883A55DDDBF53BD64A7351930C6137D351D4A88908E133A914 - -4ED0D2001D7BF8F4CAB42242FD0B38BE90FA76816D816797A73D3B9891A0FB1950723BBCB97E15 - -1116E7DAA5B18FED8DBBBD2FFA0B6115E256EE6755E172DE0C8F2515A494E698CCBDE81D710514 - -AE7F732992096454BFA76172EA259DD9CB0FA5EC1BE1050C1553B34EE9C206B540DC4F53173C88 - -B80A88B183B63949CCBCFFC64E0B9C2A9C4BC838DBD2B48AAAA1BA7B40EF4311E0AEA51E8BB2DE - -3508BE43E33D63D13BE33FF9546259D0EA541CDCB46321AD22773DE75726823F32EC1D37ED1122 - -65BFBD416D0EF743B0420B73E0D73E1E8101D53E63279FBCC03B580E00066348440569704E32CF - -D40AED353FFC3ED3FE2D0A145867EE27FCB184E4FC03AF5F9F01767F9B2456281D326DB639BCA6 - -6223ABA7CC63CD678F663F61B0408F1A1976EDE9F96FCCFBCB0AD29C8E27CCD81CC6C5E697B304 - -97DD51F00F3FE7FE33F931A17FB7540263D7F749A34007D2C7CB2EE57A075C4333E2214B866661 - -743E487ED761B8774E076ACBF9C2DE66992C70189A1EEB61B49068F413CB3851E1ED18257407B8 - -ECB78EA381D5E423907B194E7FD9DA950C1A502A0A61ABAA12E71102792F7CF05AE65A7C631A96 - -37679B2C4BC651E21DEF22EE339204DB722D1FDB119F9798C718E4EC9439C472D89D99612F71C9 - -F49890C596C28BA324C5A79535AD77A5E36E1841F829DB7477CC63A944DC16DF273D376B230653 - -C50A97F5B9590DA325210B935B68DB01B80CA6596ED2AC5BB0243FD75EF8F6891EF0A3C01EBF21 - -FD96DAF4DAA83A5A89485490A6FC9BC693B28B0553EFFFE574A8B3C5BBEC36E657C2CDF4DF45F2 - -47C59AB1EE5980725C51C43DC289E21FE69791D9436B49DFC122C44BE918733E70E3844CEDE633 - -4932C5207898D707AFC2BE3AE1322CE0BC8A58F8101166B048CD6E94B392A54BA88115F08C1066 - -4F417025B8AD2756EA62C9945999E536D1576B5E1D3327D516609D1B371A0E9B0B9FFA934B8578 - -0D51EA2AD2AEA9FDB6419DD0485B95AF90A38B1EF5F68A1CC5C7319E4A53BD9BDD208FCD59B264 - -BB05DF3D7E571E81547EA4815683CFF432345F717CAF3E20E627CB39B9C434F659AF97760230C8 - -4D0C809A9F86EC721FF113D84D94FA2F37ACA9A8C4C6A2763E2F28C9A7C8220FE7F8A99209E094 - -ED621B684B69FDA9194A7CCCD51FA49933EA157061FA23DD5FB90265E4EC9A818C1379D5E50809 - -FC7EEE1F12D5B1DB33C6C21DF11F0D9B49A3A2D2A9F39E056B0604B6FE0FAE6F09B18F59B2C197 - -6592E58B746D3A99AF56B1D5F2AF93A40E43CF30E1CA184D1E898C94802FF9B2365AF38D0CEDEF - -638B210931772BC190E4D40F4C5A1212DB95EA596DB64C7C0609C6814459DFA2286EBB5EE178FE - -C6AFFC3B9B520DB8DDB4EB5D4222D869799FD198C5D64E4F3887583EDFCA2B8F511F90B0D29FD0 - -40D1427FF12F09664593E7EF1C0B426DC41061F34ECE69367F852FCD723499E564C77614CE2434 - -5C0D41011AAE7960ADCD3E2D63EE16177D198975EF288842FA5714AFF9E533597855A0827FA444 - -CC687E8027EC98CDB3606FEC5A045E2AC87E90EA0050768699C9598057B50310D387E91055E974 - -AEBB7C9136C6986B279BBE5E05AA3091E97C7104E1EEB0BCE9D3448D86644340A0D11D9AC4B6CB - -DB4BE4D6CFF130833FAE4F03249C45298571455480603F5EFE2C1892875737ED1D561C3938689E - -7CB30DF5E26D479083CA61017650592ADB01BF6DD12807B65F2BEB6C8FC949AC5A1FFBE8079817 - -934BC8897E251F4C6B27E7B6B5247F5E48C39C84AB8B70B14A868553B5F205F79B8160DEDE2172 - -A0FF07AEF0735780736E5EBEF7E8187645578989518E1337D352BDB192AF61858778D21D7B44A9 - -7C26F44564852788556E84D60619D1CC84E4B4A0F49CAD9B7B713930C957C632117674C503120F - -C564A3318560C1C57CC76F78B8E1FCA4E24EFE078FDE51A24D12CE1B799A07230441A08EACF0C7 - -9D514169E543ADE9B97EEEFBC6C50CEA20D5AF481E8F2D5B623C444B409FCB1CAED7C3EA7754D6 - -AD14BBE11D707D6FD3A70384E275DD06A809793B873E646BA143BE816971139F62FE007C313F7C - -C7370E1A3EFD18FFF7BDD8BCC1C67761A6D1EAECC7D953C58596C0B54113C8EB522FE6FD8068F0 - -02D60C7EE92491E2F8D509A6EB872197C9FED96D963C65FC98F3DDFA3748D33A2A82C22CA4DFB7 - -DDD49F7D622E859FE8F0DDF95144E6BBE906167CCED0D65EF05332E59D739066859809F0795E07 - -DF9064968C5648134F527337CC5F610D5B941F0AA975F6817B920A3118EA63DE7FFF3D59BF1451 - -E2474BFE57C94E03AC416CFDFCA559481BB587A9F8366260A884A22CE93FA8A172AB770C2DC5B0 - -0B73C9FD9FDF5E242BA9B845FA4DB9CDCA2149A4479EA77E69E9F3742AB5711517BFCDB1B3C194 - -7231C437D9E50C42218C3568ACD953D742D9E093DEFD04C07F2D5F151D00B1CAD086EFD5B10446 - -748524C070123F21A09EEA839E381527DF98DE1B735C1111628A0FCD75AD863AE47A34207DF2C7 - -8D1A50E7AF312BCC999DE49BE0F54AE7337B2B5D83C4F5507A5355C2CE2900CDE51D25A41B7407 - -2134074708F558DDC22C14C7424A611E281413FEF9A438C8DE4BBA6BC67A6F26F0E1ED9254513D - -20EFE361A7426B2E9BAD4889152298ED397C6AE1B7E0AA1F93A4A717C13439B02399C773DE87E5 - -A7ADA2B1514424939F44F114E0E663AEFFBF7BAED51670D789A671862566777C93E61E4BB5E744 - -FBFAED947BD896DA9E1C947A1E9D328D6B2B38B23CF0ED78BFC399B9BC395F08DBF457FAB6E43E - -84744858F94A729DE846AA8E888C1A215C23A297C2D7A69F3C60DA53ED12FAE643A7FC15FBB680 - -3A8ED275DB3D1E0199A71F203C8FE1F58F39289303BF7AEE928C0927EF34F1614C23C89E6FE3FB - -13AB6FB91EB3DC4718A8C031D3C7EC111F09AC79AE3F6245D0940A4284FACCEDA645A129A5241D - -91E81B627189E1809E4E4CB8690D7D16845C0E97EEFD7F88FEA959FB55F70830659CB2002C6913 - -7870DA6E061210344B5CC6B9D03AC7B5441BDAA81C25508E3D5DD7645F7FDBE1C0E9D2360045AF - -2D76F46EE26CD703717A7C2E83406AF63A4378F1340357735D13B6C6A1E9437087FAE7C42E3CC5 - -EB89EB2184DA87E6B523163D16CB221FB546C039774F1C7E4C2D19C648FF1D078691CB7A90524F - -AE0F1990289F3A01BE5B4BE31544102DB04EB64950A6D633E6DD1E70C1B5B50FE00D1270AF7DA1 - -C5AE22EE0BC7D63D6ED9EDBBC2DB21A657B7C6E39284551B66E959EF624DAE21EF0598E598E5FA - -D8DEEE0B87AE1CA77C8902CC8927E74B0599B8DF867DDB285F30817639243DB7F97191FC15AFCD - -34FEF8ACFAF926AE60C13DF70ADEEE70B4D2DEF56DD6890CACA39E94CACB2E01BDCE1A29E96643 - -CC9329028C931A5F748426032CD586E6D759033F1E46833E93EFCA0AD895CEF1311380B8782B6C - -15EDFFC736A939C6CA53BDF65F88484E4053B076358780D1549CD6FD0234587A4616A008E6FAA7 - -E5D9EC458FB293B143AF0858A8532FC6B9E6F69797CC27548F1961877B9C749362C2E3BD41056B - -68E284267156C72A8909A86037F6A755A82DF34999C6957C415212D060C15114D5FDAFDF01B3DD - -563428B401E85105D7BDD9AA98E54670561354D082B5AE3C370EF9E2AB1BF8A8E3BF61B4348C0C - -C6AD2795B453F8F81D36DBA8847143DD955203C9A0DFA23E32EC2355AFD6678A2B05FE6E46CDAE - -3E8E85ADB4AB71B7F84D1266EC92A846F08170694AD6657CA47F560535D0FF5725C41CD0FB3219 - -B9BCA5F9545658248D79896A8B5DDF1968D4D95A37ECEC7F44F2A4D6888214FB19541ADCA69F72 - -94BEF62C0520E95CBA4A2B14D12BAD004E6468DC136C89AC5065719B9175B8A1192C83A43595B2 - -66A196E820EAC6CA3547374FB3BF23CDF14D939B67DFC5DEA9F98D80545BF93CA67240F97A1A5B - -CD137F2A42BDEE7552968623E6CA659FA42EC5C2CBBEF2E2706D06E0E2CEA225482214B9B6C45D - -97DAF24899EE8BC6D8A980E5621075B9CE837B724340066B74C013E8AD806241DA5A18BC3E9657 - -EFFD4A1443704B90FEAFE0A407C7C2E880FE970560BAB064935F209B1971E03C33B2B37AFB4428 - -01A9C4D63A6A93910B607D424416620559E7B95A50E879A8A0607A2CFAB26D40858B955C8CBE4C - -C55B6736F20EB7439B1CB96CF00E91690659147C7D1608E5260A2E84D749D90708BFDA92BD5834 - -FC22619A51764DB4D8CAE6463AAE80503F42CB4E7830BE796E4DCB10A1EADD636C79DD1C174C26 - -DD44830C38E92BB25DFA70DFCBBB2D0B692D3C5917FB669BB36AB2C2C26ABF2B35C0B581F76D77 - -64644DF89EE87862DE3D5BC1EDC74912E4F2799836023EF89E5E817DF6252B4F953DA4FD0BC02A - -4E22FA762048837FA8C99439BB1FCBF5E215B5B4368575E8D6769E3D01A9A252D7B20327B9B315 - -95C01BACCB65A38FF04A5613698AF2FA63B36BC6942ED241E1ECEB7A9F2E8E381D300329CBD4E3 - -1B19BA0AFF6415569F8774B28CF9E6D343413AA0D41DC3C3F686843BB1B7DAA242A635CF345137 - -B3FD4B6162A9DEEA6BFF1E719DF602A8D79CD5A60BB11F26D437BE8B4A039D6C2D64ABED520C07 - -F09E8037A8D76D7E3ABB5946D4837F1B12274D0AFAB29A44E027B2A8C81574B846A7BA94756AD8 - -F33D2B76C79FE4D94CB3749A64ECAD8AE9D4D4EE219D5FE4524EC95CCB89BA3C73F219A88F674B - -2D40E2C5B4497903FAEA7BC3C7F22590F8F2D6B62151885382150E9611BBC33D9ADCE695FBF947 - -2AF79EBEA09169FA0047E09D9499D7A977ED74E4DEE3BFEF1EFE0193AAAF9B8A2E285ACE63FCB0 - -4DD5AA4FD311EB8005E81DF970D2C3927B9327C4093236BC98FEAC8E130001239A81C426D477C7 - -B68AAC466820F7E655251550CC979079F3200F12B6DC35C84DC5A19EB0630BBF3CBB2539AED37F - -4EABC464CC5A8BFE75593C7F3AA5BEBA6CEE1AA2DC43E40AA823232D66714C058F36A012A922EB - -0FA0B58510C1239004B84730C1C69AEB4A38084B6E465D9EA04580B8110C9B1B023CBD1EA44753 - -F7C87390A884BFAC825D84B93CE4AB5136264B8A1E0C3166E94E8EFA9072A10AFB760FF2265012 - -A254F0755F81E1E42ACE3CF03D443D81F237D7DD9555F2447155DD76DC076F3BFC492392828705 - -3EE6BE05DDFE30AF2016FEA53154ACA91A6089E9807455A536753078B7294411751450CE4ED63D - -0DA4C9907DA2136DE96A5289B783346CE7E6DD2C1D85395F91373C139B3CFFC5DF1A2C47F32537 - -232691820BE497E818BCA561345707AD98249DC40062E30D647FA979EFAF4FA50AD9CC270D47ED - -68E1E462F54EB69E6D734C6DDB41B5C2B1D6281AD3B9F497B3B96D0C94AF938E9E785A96DE5DEE - -9ADFF8340600B3C173B6939B5B06B8F1341276F727EA16933151D7DA8F254786EBD6A0372B10E2 - -79058D2327F2620B039C9453EFA9B859BB5BD459E7CCCC36B80221932668403F62BD00D1E31758 - -E647FEC1FB816B6C52451E6FFC50EA8D52277178E3C4AF5B2A59F383B271FD132E216945B69A34 - -B13650F5EEF129A972A695FF2BA138E10935A564AF918A66C2D51CD942DE7F843127A3DB82875F - -1A14662B0C3A15BE4BBE1D875F8CBE54C7488F4131074822FD47C59AA4ACF18DA9714E2619C8D1 - -8A9EBD5098AAAA1150D83681A6E8CCB070784B128F736BFB43CAF5F239E9934878C02328BD3084 - -CF52EEB20A26BC36E76A8DFB36C9C1397B16D16224DBB9C64ADED191E0E53C61BE7D056355F20A - -1AD4EE38E1EC8C1927C2CAFD36FFAC24240BF07CE01FF3B5CC5866B4A3FED0BEB8695E23C1E16D - -6DE2883B8A66A2400313B263EC2EE6348BE002BE0AC2B5B406E392C53FD41A144F7FF24BDE9892 - -7AED17BDE620D5EE8F0495A9E915FC0F7FC69F8655023F3D00E3309342340AFD3F00CE76D50B48 - -5E1AF9DCA4D3F2A40F7B02558949DDEB6DD69A5E67B8B5DAA3956EF97E710CC1BAA7476B8B534D - -48596240555C7A220CB029664AD274F478903E94AF66026F8562CD6C19837CE9265CB6AE578217 - -0336FF4C7A0EA5C28E069006CC760D3B535867BD376C0E6BFA43A9DE5F6D888211DB06B6F3E5DD - -AA666609CA7E2291EE0596731E4CE79F34FE0559AE8E1C29E8D60015A445C34F8E643B53372EB0 - -5331E58197096478DFC49B7F092A6209A2D209DC02EEB1B7D7B12E89A0551C06D1C3F3793D745E - -BC6D2D6C57628E5BDFAE09936976D7C9AFB653CE4E6E198572CE46180FF9EB009CFE450BA26BB5 - -705525051655C355B5D61145A7EE06DFA487B311DE72A975945FBB64810434F8D739FE95632601 - -A46C6C95C8BE365245A89CF7634735DA14CC68E23F4E9E82AC0E0F85ADE8628BA1BA4F9118F800 - -7237990280C19061A305B87BDE6FBDABE71A72740E338925AA871C918D927F28ABB19FFD2A1261 - -C82CD3A47B76248828300E14D71C75B777375D2970DF345C37F3BE01E56A047C99D27F41D81DF0 - -43C1103352FBA194EAAA50055DAB070346A20F39FB007BEBA34627337C1B71465DE82D2221194D - -D5A61B666683F09E21F76418A8086FA4B2ADF0C94D5A702A2BE6BBA71D2A9F8767B2A390229450 - -EB9867BEA6859EAD686C61FB52157036BA8F62468CB934E10DA07C43942B964A92C279E3DF2635 - -541FF403CC50F7DAF1F1146783B0D2906F674273388085A1F697E6DD821649569B8CEA2920830E - -95A966358FC6BD7F8BA0B93495D054967B4DBF8D92EB337F50BE0DD9A03C23D2F5B5D9C73DFA4F - -7E01125425EE62ED9CEF7810C88553CC671A7DF9295F50DC482440E40D65D093FB5A39C4084B5A - -39A7C13B426BD9BA5E8DE29FEFCF03915C4DF570CFD8546B274B875FD0F80F57F1A0DA69F09DCD - -F98D279C0001AE6DEACE32E3B2D3443524C5FE1CD2770D7F873201442B1CC63F3CC33D2EDC0E14 - -9327AE6C9E9720B346A3D783A0EB6D39E10C6D8C42E310C37AE06BE77056F58ED39D35BB2BE86E - -EC0BAABE99682DE457316B7226E0C968807D33772A20D50658353D2A6F0804E6F22584AF5887E3 - -6AA4E7EF9D470153A11759AD42DA6EB9FC0AB5496547CAD0EB7243D0371AF330E9DEF3BBDE115B - -C312D0784932BE630ACF1853BC7CB9724EF91B5BBC42ED211A9FBF9105ED50DBEC61EEA28858E4 - -B579EF2929F285ACC101311E182A27DC8F05A8BB074C559C37083D5AADA202B0BC3BEAFB7831E8 - -79916C5FAA116BF4B4DC68DF94403DB1134D96A72A81F70D2F16FAC5768B4BB454C8DCED202A31 - -221B25B2E3F8DC912C38FC8087F2C88B2A54F9937FD257110AB63FFED01D85D4B1161F08420F22 - -2725FEC4B5DC4D2AF65A8EDBD3B59E4ADBFC2478E9850B6ABA868553DCB23313BBF6D03D178FF2 - -FDCF3393B051F799D6C60AB7D57D62FD23A3F076915882B9BE1E3ED0A3DA893D6BB69A9BD15C8C - -607F0213D34673F8FEDA8187DF8C28E6E4A7B1FB92B11E92294203A36F95790EAD1B41CC833673 - -3FB6A0189356C16636BE965A20E8959474834794E4D8363443CA4678901141D8BFDCC31B94BFD3 - -CF9E54C566723BB52BFC868EC02AE2B96C657FB4FE9FBBAEAB700075588C874F559F3C85E007AD - -CF76B3E0372ED97E3E9775CFCE89DB79D3968DE2F396DDF4C6F2B65C909A191431F5E2134BB886 - -3A620E2D537719D2F82FBD802C388EA66C454B8DEC27B7D6624FFAA31F85C5B13DA941EE9A7C93 - -A5F9EE3C537B709656696929840CC05D2E60B285CE114018F19D856DE6A1408246C3A2ED085ABE - -E10C7B7D1A8080BDE2AAEC62F5D30C6EEDB6733EB97B626435C9CAB5FB56810E3E1924AB170102 - -AEB24699661DB27C5A92F40E4BD4A88697EA623A3F2F80E3F217D59B50649085753E9F16C55BD1 - -C45D2C57297689D12F55F62EA348B5FF6580B48DA85B9BA058349024D1DDC77BBA000AC0C2B635 - -DE122E3A9EEC3434BC9B97B3546BC7850C3A472101002CF05AECED688C38D5AB82966E45AC4CF7 - -FF266AE0F68669B5EA49C65A65ACDBF9A830988BB625A8263E570EA2C6D6A786277345EE7BD28F - -675AA6474ADD78E016D599B415B054F67EB1DE9BE57710DF2122405B482018D248B29619860EA3 - -A268C586775761E62651D1BCCD3775647DFBE84A97C4EB66D204CE839B6DF81E8970834C193FAB - -73FD40FDAD28D249C3A086759D0F7A23457B91240AA045FB450EBF2F5DF24E5123DFFBC7A633EF - -723081ACBBEBD8D99C41B7ABD6C1B3CBB52ECA4976F7487AD77808052D81CE6F128109881C32F3 - -827F5EF59022301AE7917B2D2E5C56FC82386CC1E0684FB6B43A67B51AE8B12E5B82C5214EB798 - -38A004A4D704E03BA65038B87399EE1F93EA4CDFFD2CBFA0AE1C1E81073BD88202015EB9ED570E - -DB33E01777343DE3F8598EBF0CE1C79F8DBF49AC9A6E26ABE56D4E36D7452E6BF7CD81A990B6AB - -B05824BA2C2988D509E98E9A9ECCE3F869E1A301E7A8D69C293FC60506C762A65E66A333731BB7 - -7886E82DFFAB187E264BB8E939125244A658DB0EF727428969C86E4240B8603F6CEF7467BA500B - -FB2A0461F8929E652EB7C684B6356A4F1B01317BDE4C0E278BC9C0D19D7F0F1066B7915C15482D - -347EA313239390884645B9D9216096257AA199425944B88B8E60D1C9D818E6C7FA57484E573FAF - -2681901CFFA7B03837251BDCA42963597D59F5C47CCF4FE61963D6997E88DAA6A80189F54108AD - -91A615519EBCAA0294CE0D2A3D6D51BA23AA538561AACB1859F9D8E7C7FBEEDFFA59FDA30C4930 - -F3C70288AE3B7DB6835613D7975AFBF1254ED80A293C286A400E74816D07AEB927730C397EB1CF - -041153FC821EE357CF8D9C1C55CA1B578B603A9946E8B623AB642F227041A18A987C8A826B8E67 - -7F8DEF5B1A7A896F2D04CA19703A9492C35748A0EB34614843CB6435E36650B1D0311D8862E78F - -A870CBCF6A1A6DA31FC1BCBE97B02B9F9D063975A8F4B681CEF8D7170C1D66C41BD8BBED7C4DE4 - -5ED8EA4D5DDE0FBC9B11349AFFFABF8C7C62CF72064F93CD36EE781E45938513E6517D325137B3 - -C8B07F6C85CEC99FEE73C19E3319C4DE54973E9F237FD4F5F522A1E247D13A5A3F76D9A223C1DC - -05DD98AF2F2870DDEECD1D17816F6362BA4E4C3E767823496297BD60D5AE5F3BB16C47946E1B9D - -599EE1945DE81896C20E0E1EE5BCCA3A817F140DAB9106C6A39396356440E28C8C37F09083C2B3 - -8C0AF322A5A6E9911963BCB674D63BFDF08FE2A7378DFC5292CAF29E29F2C6EFF00299E23673CD - -BF97B919E4DEAB76A52BB588CFF489D6C984BE6945121555D2D11D5760935A18C7ED5794A8590C - -A9EE7CC716E12E5E50604E4DE26AE7E8198EF72323B8B449C7059831FE2B32C0B7ED4F977D455A - -74AC42335F92FABFC69BF798F3505987E10E6EA4B1EBA7DACDF2D8F76A14031698506F920439B5 - -542E334FB3880BEC75609926EE99529C4E923E39369D453A4C86CAE241DAD49999819B6D3CC8ED - -7F99C4816DD01065DD385D47A56B3FED36E1FB26174E0428677D4BC535A2CB35646C17AC6214F9 - -3C68C7B702D168B4439FD66A44EA76BA805180535EB32DBBFEC29D4B453317C6F35E21CB482490 - -74F1C89B3DC6A53FE588F8DB408EBA1C60C9F2EA013F1517A8DB3CC9A097A2643C0CE53EFFE5A5 - -E5B26CF40D3A9324F0BD35B6F526E83D2A381E976E00AF14E7F4FE22ADBB71236A5068E297C7D7 - -0994672D86FFBDBED454659F54CAF5A364FEC8265ABA8F4F2A047D54B883E81AD48D094DE78A0A - -D1389F5F7BD0B36B3FA11F8864D21E57F453ACBE2A892EB6F126C9881799C021502428B0BF483D - -304777DC0AFB7BACCFA42AAE43121A245FAD4CE23248102CAF93C72016942B556CE59A2856BDD8 - -7CAB9A22FC690B30ECF8926699E101D8F74D98F2759E819148E54EED6392F0B22030AFA655E07B - -E6B0F6A58266D5AAD8365D279FA51584ED4BDF5E981E31732868789362A13F68D7EEC3ECCF46D9 - -1857482DCA018944AABF993F90635C6028012240D8C670BE48E4BAD29BBC118DA0B733E2019502 - -09F2C608798E3FC6CD3699B61D207753A5C7E31D5ADB610F7A9FF36C6E73442569F025EA5E8A4D - -FA89E43F10B44C907024316F07B4183B202E8677F4449520CC06361F075BCC065A0C4911373281 - -88FAC72EC24B9B52500D103737D40A311D5752EBA5F06EB593B56147F708914D474B7E67EC48C7 - -32D40AB7C8671E0C80295DE3B2CE69C9759B536520EBDA938729214C68FFEFCA119B865C2A4BA5 - -15986323AD149636791AD00B328E0E2D47AECF406A43D94FC87CD50AC65C5D4E55EB24F48938E2 - -8305E1DF0C6ADA42CA47691246860F50A2A6292F0590D6F8C4076F3C6325AD25FAA56A361C03C2 - -03694A39103DD209C04B85E5B740CEC222993C676750BF937448E4B0EFC94903FA04A658951108 - -DDDC3DECCB7B71B544D030E6DDCDDDD5D8ABBE90862E8CB4E65C298F2AE4D6AB773091F637CF8C - -CA75568E46C5C3F6D837954E7C1E4AED3C449FBDC85A31C87D457485D0C1FB4C97957925EABCAF - -80AAB9607881FD1EE9DDB9869273A69AE28EE67E694A7AC15B38BCAE76120E84A3A570466AF88A - -C140243B90CE2A0A206F726ACA103D4AADEF97E5B5E4C753FB08381820EC8056288BCAF86DD714 - -BC55BAE80E8670802A30B24361B4830E55563A74E5DB9862CE0C5AE972EF9188A9D961ECA5EFE4 - -45DD11FF240B19766D261CAC32F2FA24B8DF95DD9A5AE6BC5ABD66E0883DE81DAC808EC9E64D82 - -06BF34D3D418CD1502C1BF865FB89046BF228323C9B259FEDC44A24B41AFF7D4E6227F33CBC59D - -BB33633D31BA0F654F48762DE5D7B0A03079E67206C4661BC410F3D5F46DF102741C5949AF61C8 - -BDB8552BA01AEEBAA183ED57681FA2FD92DD4C40E8AB10AAD4857888DDEFA5B8490191A629C0DA - -6F099607F85ED12417E879D770E016D297ED31E4D36082B67002F833561227A28891B6D2BDC3CA - -CF3F6CA3D833E8B1E587B4900F5BCDB295DD1626BFCD5D9BC31B8CA086E264F25599BE42E07D58 - -ADA6E054970DDBEBA58D7185EB003AAA869138FB31EA477C881E556A0B35841AC095E226523B32 - -773E128F541068A77B43F61BA7891F37781FC627C39589BA4DBCA4DD98C7BFA311A7CB6EBC7EF0 - -A2A25393D7BD84D00D951D4CF9D9A1834038838830A50352DF68C9701D0CE7584626BA1ADF1D00 - -B592F34897EBEC6280DA5223E46A0DB875CB10BB772B7CD16F26AE19CB1F2E554374E89CD4F7F2 - -7485D9169FD48354317B1646578D956553430BFF2090217B15BAB550A8E0F36DFD6088A5E9D52D - -6B5303D9E2C0AEB607749384DF0CE76644334FF36C35387D76FF85B8064460C28FC895AA0B9994 - -C3670EA26E8335BF331F4B406836CB7EA457258912C6DF48042050C7D333BC02FEE4748909FB45 - -8DD5D55E7FD04497CE34DBE82E88D6AE641250863B8A57B11624E62CEDD80E05FEBADBA6466363 - -ECECB921D11DF5939891E5B5CABB36FBDF822EBF17D950EFF3F4E850CEDC5F0FFFC97AA162BFF8 - -A67CD77EEDDCF5D5FC48A303DEB2EE716B0C6F53469EE23B553D65FC4CDE004A2940C71E4BA72C - -1482B2FD2ABFC6E8A877A807486D86DA69611ADFAB9E76527E6AC15006E26DFDCC3314F24D277C - -53305160A9EFD4372258C69E8457EB24AE163AE997DA692DDBD6F9F6B4A0A80AC2C2AFEC71BEE1 - -3C8EDF43F7A622B2BF0C860FCD6405704D60B6C71642F27DDFC08A8A02C6108B9036B5F7CAFBA0 - -BC0DD2EE4AD2A3D063E2AA078FCE226B11467BAF992719B55DDF5FFCE2B34466D4CBFA8FC5647C - -222EBD11EE60BC567F05AA38704DDAFEC8937469A83D09643F7B798EB28E5DA823B9A06B7BC8A5 - -C05DC705F0A1194FE17D7948940395617AC25BC922B3C838C507C1CAA95B65A2A5F41929D75D3B - -1EDC261930CE41163219C8827803ED5AC50BF85AF7C69D57286E5120C0F08114BDC3278FCDF774 - -3FC7D8D5EA3B4D3F2B2F3B7B6C4D62D20A7D98AABDB9B9DD7739561B15FCEE8139B81EE60331D0 - -939E99099F2B167A0AAA9E85D803062ECC6ED36916C75EB58243C2825BE97F3021D23D73A15615 - -12EA904A94924AE1B66F5AA60AFE3E47E5A37E5BC53572BBD578AE923C5465F824056703DD1A1F - -5EFADD557CFA322C46BC944199190C9ABB2604DF2A7B55480C5D7035AFB7C7A7459A0A236573B9 - -91F462ADEF5953AB2F45CD837DB21CADA6D39CFFDBA3554C166BA7F1FD28953FC38B853627FA21 - -75537144A6627035A512B2D36DA71BDA234132D7C2CEC4F29750C14FB8196D256F05922F26A3DA - -E22E4E14B52196F8CF7261CE0CBABDAC1A2C2E0541B0ABBC8E09B1731DDEBDD541D9557AFBD90F - -3D84A8789EED596F6DEFD34E4651B7FF9DE1CC419FC7FAF1A3E7D7EE147D60686EFD5F55F5D911 - -EFDD55C4E0BA647AD599E0CE1405F71669FAB6791F465E7FC1C247AB4E52C64FB2E6A18D4463B9 - -95CF637998CB91BEB1B68A8C3E4460F8F1E35169F78FAC2D6677E243854D6F6C8685E5199D8FB7 - -25E383CF338B276FE785954434EE8768FB95311D47FD3273751E4CDECF0CDE3F77A7513B39E319 - -186B4495016FB97B4D996F4FB86AFD00EC9F54AC44AC519BBA5DEBFD5F39286817B25695750E1A - -4F210DC8C06A862F1F88CE3AD7D5764581E588D472B8B407CD074A5CCB39D6E138FC3E58C9C096 - -4B8C0195847A7BC0E58E796EE60A10FE003F26231EA0F0EB7E100DD6890F6AFB8C2290290A97DE - -4EF1F5BFFC07292D2B4D2618A430FF3E115BFB35116835891EEDEF4D9456DCC8A25DF5429BDB52 - -7151CA42570F44CF36D6FD31A10D58631F5966579495D6217A21DC436B7E26ACE1C03E62CEAEA0 - -7C09A6711FA6B7F34504C4E0799E797D4D2775FFD0E9C2CED9DCC8F64F8639DF8B20EA979708C5 - -81BFC54F08BABE9F5384E357885C54AC33E0FED272154843631CE03EFD93DF01D1600BE65877B1 - -51C41219367641ED0192E12F26F871B13ECB2582F75CA7F1BAB3DF0B89942BAD036E9AC7A4C72D - -6EBB0BDDBAF2F6F9AD284CFDDF2934B4EB86E94999D1433EFA2E278394DDF686188AA8E6C15179 - -AA232AAD24D5036A39A49C84BF33AC864FD76BC91D8E915F0A604B8A4AA99836DEE01D72E06596 - -88FBD19195D92F5C7FD98C86804E7D3F7E818CC61B377ED48B5DBD744351564FD4E82B6DEB1A73 - -B964684985FCBAB97AC903DDE810E01B27C44267B9D6C3CFDA7400CB922F6DCC6B711C045C7C1E - -BA276EE915936643A0A6CEB49C0DEA87B0D67B4294F21F30FFD59626D777D5E63B5400B1EB92A4 - -03CB688B5341C40A69C4D413FF4B317750531EADD11F88851F6345669F58C53EC8B764AA666BD6 - -E54B48E4743B2EEC13D7161C5203433FDADD9A4CB3E69641D3795A2E810A45BDAE3532B97A52C4 - -9DB552A876C1ABAAB2E3AC102C9879D203D62B1BD4C23BC52E3F0C94A557959C6C575155F7AF65 - -0542B5C10247CDB5409454C6BD7F56C13230C7F5395E211CF2FCD872FBBC1ACD687206EE59D6BB - -4EE63E2441869F875AE35680356EFE5A08AC504CBCF36F97743F06740E5137D17832DA142933F5 - -709ADF6DF5177A84D22BEDE4CB3E6D30B11B3C91BD0D202352BDC767106C4A8719DA2C75A355C3 - -53C67CC53775EE192E31554AE02399EC3E5CE779AED77D112F3C7059D3C6A316179EF3C3AE04F2 - -3ACA411387E1E9D0930E9C1F3752315D631E556936CCC6EFEE77DCB7E705779F8302848EDFFE70 - -D12A5C7BE23CB6ED65DDD47F0E0F082160A2538E1B032AAE17C97CF7F97217972F997CB20AF71B - -897B0CE19C8972A909EF1380692B82E9B09C257A0CA5CE07F272B56BD321D9EAEEDEEBD08634D6 - -B9EC03320D2CE208D823C0D02D5BCB9A991AF784FD705CA331662621D3D793C8C311F7645FAC00 - -BC8CAAF74F3FB8D3323639082601587B7816499FA4CD956628B7806CC407815BA0CB9E26145300 - -A915F7B546222E5B4969BD44D9DF5194D7719A0A7BF72B0FA4DBA8B23BA02DC8441A9E4C57C7DC - -CCC2F5BE59786F3D79D070C1F2D02003160BE4B02E6767C5876973C786E10F567A1128C675DEB7 - -46183DB34DAE298E07F0F78A48FBCBD6EDE2698639ABC2E5A1B2E467D93A69BD2D67F41F62593B - -8242C4A4068BEBC4FA7165B60BCD07A8752579FE46CE7D0494B06D0CC2E7568EDED60D0F9CBEC9 - -D3D4032E650741BC21A83962700144F1CBB68AF25BE0C0D5EAA9DE8DD8A68DA7E0F6AFF1BD8FB2 - -8278226A2EDDE7E0B33BA6D2A0514D4F90B48FD6300FFA9B7479DC934BF3AAAAB95B2AF9564E9D - -6EC39957E772FC5F24816637820B68B880CD84CB0C50B4DA212A20E904D37B360E29DDCA2CFB57 - -EF239A5FAE7F964C72B1FAF64972E4969337018D26C9CB9D68B6CAC4E3CD2D3893145C9432FC6F - -0FF8C062C3F0F1C3AB0ED8D6B5505BD16EE6A15AAE57BCE07333465501867F2DEFBBE0274E4673 - -8FFE8BD1B4211FEF4A8C28208E98CB4D72DEC559127AADAFEACBC0D98817239180BCB43DD239F6 - -91A3EEDE515A3370AF5739841AB9C91DB77B91441E4A6F0FE113B4DC509E4BC951C800CE788526 - -9E836A5AE595A7277AAC851330CD3CDAE4DD4569994E1F4CFCC75E459BC9E1BC7F215BC2D6926F - -5DD509A09CF22C506EBF22D2304870C3905D94609F8295D0C55B403A7572FF4C0DA600A74D3641 - -DE4DC0CF14AE350CE94E713A2AD831422F2171777187840069F414CBD31F3648F88287C50E4277 - -32054F5DFA1FABEA57EECB8FDC8019D37336D8D0E840FCECD0FDF19E56A386C3521E28726C3F0D - -B6DA49210F72C66BCC1E5CAB15FF19A8B25C5442A0F9E0D41FAF824078FC6F6EBB3778C6FFDE69 - -8EE021C353B2A00F83903E001A1716E75308A08A8A8978CB4A99D379C76629EEFF65B926EE3338 - -54144F43B04F838AB5003FC36505325D3E4E4B5FB75A1221B32DCAC4CFD3588FE0DA34AF3AAFAC - -A3955CAA04856A196ADDA16171AAB7E21C34CC447741E506F153B7F466871342AC72D798B63572 - -3F4947AF84E679D4A9145EC26064F02388C731B2DADA26977C56FDE09BBDE051AF895A9CC4A80C - -E9AAE79F06BF913CBAA69D445B12023AF1A7BFD584D44CCE04F50D77E92F39294AA1BDB08FC656 - -7218CB7FA34A09E1574F7AE40DE43FFB717625F2C5629AFD71ACD8D80B88832C24D8DF82279D88 - -32811AFCD634C52E321A4778FF066508A0A63CFB3905EA75F5821DD568B90D1128BBBA44223C7E - -75DC8F780568FB2E603962125CB02C1A492FCA0A0096A5BA8B7D0CB1051A94EF617DA1E5771B0F - -DACDCD877D0699E01650F8CAE7027A20AC308B7B71F8D2709CED981541B50456D7D1724D28FDC7 - -4B5FD05BF71A98DBA1B27D269436C9BC668FECBA8D660DDB7CF7F7F961BEF05FA62E49421619C4 - -4CA720C2426A1D486C95E026416DD8534C85AA200F95B8EBD4A452541629E1FDE2FE11D84D969B - -2AA01A9B7F546A64F598183C23E26D38D86F47E29C8289C5ABEAF1D5ACABCE10DE46C50E3D25D9 - -80D079E8BBA99515AFD9DB25CA8D34984D5D96ABA65E2850482F264D8316ED3868D5357AE02AE7 - -3CD5282DC1908A666F9EAF15FBB2E19D3EA3509C5781ED0690A20621BDD31AD2D80F7787C5E678 - -B7171B945C5AED7918DC313E011653D4AB5CA151B48144A0A6B2C2DCFF361F711811DB6F249BE7 - -6579A43ED363306D6811D6E5801D6A84D4C892956F0D00A98CBF568A4BE481325AC9F0972FBD5B - -6CE323B0FC432288501276BDDA4D50505BCEA44A5C7DFFE118F1EA9FB0A01CE3B7D8D042CB8C40 - -FA31C0C7F5D650D856C6CA864BE3BB46D88752D81EB1500923F9DB47C86B86998C8B1DA70776AF - -72BD3CEE2F22FF7F132DEEDF8E1FAD96D242863252F03322B458428A5D996852B1A862C57CF087 - -C1ADE9803FAF24D25ED54C9CAE1C3175E752EBF0DFDD3DCE002BBEED1A185F2B968F1789645D13 - -D83E3FB15F24DF44E85B303F32C681762D23ED813ABB75551A32C8D35C60FB3784E926AF187F45 - -E98DF1FE17EA91AD0A11EBCF14BB22BFF19BB52452E8E06CE322B2959CEAAFD992054CFE95C7F2 - -45F56ECBAC06595F4202A5272B7AFCD40C99EF3F78DC9FEBD552DD4913570438351CB76ED69147 - -B46AF589E77DC42EF021804940ABB395F549AE7661B0E28E180C8B24B82BDB77AA17D8FBB1BFBB - -B16ADD5B48DA8ACA8321A66B606E67F0D64215BC3E25E74E26E6908DB19E966F94B1F3FF872642 - -5380FD722B02C251D57E301016F29A98416D90B1945837E265A284FF2B8D655891D769DAAD74B5 - -EB5A3274FF9140D36EBFD08A5BF579BFE5B3BA96856ABC7C4871A0A8F76D0734725F6F1D42EB9B - -B1EC84AE290BBC3DE601801002B8E5F075A15D81F958EA446DD2DB8F5DA10E7729AEFF94D5CDE9 - -9E4B923722567B86EC81999EFA2F713E597AE8D971586DB1FB89AC63D3D4A6137053B4B9C9186D - -29994F5E4C70172153BE37E3AB1B9388A6765ACD2B02EFC8DEB50670EEF79FDBDB3494D32E9687 - -A193AE6DB2B7B73C43876FF32D8CE6420096D9B7F8A9850812881A1E18054D57B98403A323D05D - -DFF6CD7AE59F4EE5FE466CD63C27D7FB6FB63885D05F4AC74951392F0BAA27B08CF886860D4484 - -415E1DB8EDCAA39CE758F8DCB80F961BD4306E4A462AD7AA3332195002B32D53E5C212C01C9949 - -FE30E8A3EED6747E7657A567639006F3B411985444AC3E1BD133241D58DD32A27803343E8DA969 - -60AF85010E9B3B16AC4CFED28F3500D558CEA50C507F7A89A7F069B1FAE873584D6CFA0D4F1C29 - -C46207EB676782B203C55279B677716D754E0C14F15711975054D94ADC8210EACD30208E0FCE47 - -F84E120C545DC0F1A4861199D42E5A809B531D42AB092C9C42167DB6303C5A334DE18DDA7E79D8 - -ADC546A81AF4BF03695662A9CFCFE6FA469DAC6056242A8FEB87929F978909C6D4C93DD2D60BE1 - -60FEFDAB92638872C3E6518746C1B1DAE17AA967DE79876999615075B2FFDA67EE9B743E2CD560 - -EBBA5608A98A05DA37D8F21C1618C02D8E978423DA80D7C38CF562610E85DD0F1775D8021C9432 - -7CBB1F5C20EA41E8CA19A4E6D50A3BD5129E21101E312A9C8F470E1EB12D038E5AE4DE537F4327 - -B77091667D196C3612BC6925A24E66E2BBCFBF6A4C938457FEE36DC1FF74ED7A9C8F6483C58F2F - -27B7065F35663227EE4492E3F06B6071CEA45739ACB943BF0EFFBCB99D03233C5312703E74CFA3 - -5288182D9F371E3F22257964F86472AAEBA8061BF039C98C0B8DF14C70FC8A313DCDEB943E6253 - -5234AEE628B9F97660A768CFCD04701A0F4C818BA5C0219E70B37570DB0D625E4DE3F220EEAB0F - -A19422A17124B098EB4C9C9E71E2AA0BF536A81161C2788973EB56CA0A8064D6025E64C5726523 - -265C2E6AECF2E044D0969508CFD4DEA7AAFA7177FB797A5E58205C094BE985FBD4CCD2D249ECF4 - -B2D76689EC33F64889F2AC40092F47B9BC6D5CEDD1A9F83A0832096B81BF7629E46591C109F57C - -4018EAAB78FE716D76EB3C35129BB163C13F3AB7651E389713513BE66A06E082E90FD2BB0C5CCC - -51D229B3BE5AFDD175DC9791EAC0C2BA4B32CB0427AA15BB506BD677907CE43D58F929C0E711F6 - -FC95778515C25FE9B892BCB8448EC6EC0BE48861D1D57E0B36F62CCD687D82404CCD52A38AF266 - -E42D201953249DD0E84308C0CE4A6056B0952F25084C684D3EF20C608FA6F4C4E3A1A274307747 - -4E903EC46735429FCE1E1EBA363D509385AC067FEE1027282F6C735768B965F26E542C4A66A62C - -C134DFF94C692401FB96E63F3FDFBE3F531A26414275CAAAB1468E2B46049CB39989523D2268DA - -DB1B9DF4BFAE94F06F71FB2FBC496A687E62CE86572B9ACED7A6C65F9850DAA52EB296F7DE332E - -C44FF1E0EF2E2256A1B53BD9C55E75B81AA96830B1EDDA395C6FA74E0D2D509A5D77204BE7E17F - -8E4EE6CB1763728002991C68357AD3882B9C216B8A75746E29680B4A807386364E8E5CE44FD163 - -4DC1EE5BA8F95AC20135A4344E1A9A367FD474C3572818FF643DBCE8C8D0C00DD800CA9EAC582D - -C5EF87C4D13408759DBAB4E8AABE8E77CDE2CA89BB581FF57D7DD284BB8297985444DB074D299B - -3B71A8F9B586E153A23F750B66F396B6312CD221F44172A6BA22449582A9294ECDBDFDF0917B66 - -0A2DFA1E643188A0395C2E73B35FBF25A957A456791AABE4713C2BD33F82E0B3DA41D141FDF28B - -94B72AE08A0D3982864E8A565FFE5BF9DB4A49F721ED28CE94DC27DAF503154B2AEF8D4C3B52DE - -AFA794FBFA63941E9AA7F14D8FD4A3971D399BDA0797776D69C0F65FDEB09F54FB732C4EB24A1E - -74DF30F098C59BD853E4AEF3DD4719D883F38EF4131EAD84DC3E23B7A35825F39F603A1F8F10B6 - -FB7FCAF52A1A7E315E4A8B9DB9568C2F23482E9641F80073330E8D1B0280AA09793F1D93D8B5CB - -7841A1EA9C923275103B63215B439F7C23C2EE2A4CE38DB0B7FBAEABB44123F0FAC8A5FF1DD555 - -1F4CF7B3313D6A392B58BE872FCE3A867D502834B56AB141814BD0453D048D6D114F938C8514CA - -62060978E9B954F45FD68845DADCF5B8992BE49B25022BF659A06B65D4E7182565A3D9009B62E0 - -D1AF3E897D35CF76F5AC69752DECC7E3AE398832F4EC4208A1249F3175E65964F4E183C8DE2F07 - -ADF37CC73A111890AA07F12B9E5FA53CC3FEC2AFA98281D95DBBDA5AFE7709857B98F21176C381 - -5B765AD80E38658EA89A6F88354C3B1C906749F4770F1D97C1785998D591C001C437B231508398 - -1DD933C182F3FEFE22C6B9817715BD0B0929A1C96EC3342C31A2582B9F900CDD60F0835DB71597 - -4DD0844893C13D12728093531390082BF3ED1D4C7FF399CAF014BF996745142BB3B49CCE64613E - -5274252DD36C90C714EC02E6560E0AD5EFE5412B6784421A7C12A4C0EB9B079E0A2CADB5951A92 - -A6783053658AD4705F321A326164CFC717A214534EFD49097672A9076B3473560FC6D0BC1DE474 - -713D41F68B804DF99ADFD2E19382305989E25FDE33356E3D8C4574BA41FE107BE34D322A1C50B7 - -3B964707DDA438017226D5BB4E2FB498D50C9A7CE93E6D52473681008B733D494BBEC7683FED8D - -31F20172314B781FFB9FB79DEA628109340C92ACD967D4673126C95FA8C6E2A8035C919C3DC2CD - -A6787DCD041223A1F555BF011BF3A0024D8D3418B4CFA68389FBC545E1B37AA102D91EF40397F4 - -E2C4564FBD4CC394C0A1153C3A0D51433725D358253B37567EC595609B2BC0FEA0AE65DF4E1D20 - -73481EAB5035A7B91377E50C19A261EA0AE9BCFE4DCFC78E426646D64A546CC03A8F29B6A513F8 - -8496EF201D7A9A3345454A497A06F57BCF060C8064472A7A6C156FFB96A9CD663C807F4DFC6B7C - -7DF42A95FC91FBEF4E27D1AB6010C76B016AC1EECB98184E501C7750500819FA4A36A50EAAF09C - -A8A0282200D23F769418E8421A940B894208860A5FF525EDB804AAA456EEBDCA2D57D5E45EDF16 - -75B3A693F1D7A6961724420BBA61CE91F5DDC953C698ECF6CD185BB510B05E056F87E6EA729CAB - -38168E57A52153A5BB5938C085533E50E6FDF30AE4C5CD5F61B31BA06E5B069D76A95CDCC64E7D - -FCB162DFEE4836C38AB16CDCCCFECF1810EE561DAB5F5A9059D6321EF09863A1627F5C3F339A5B - -54CF627D5C45B794DAC46B9E57FEA489603A9D2315CB9A42CB24ABB75555BFDD2147E0DB0A7F58 - -0BDE81C7C70C3FF6FD6CA304D719C189D0D7D991CF3E87E15240411FA94237B9FB145FDD4380FD - -3A5EE1843BF55C6C9F640F7B9E42AAF1D96FFC44D53719B83F9C11CFDFFE51BC454F50F20D4F62 - -5516FE4FFB1EE798C85AFDA53319185A2CE94EB37170BD3B949582ACF20F43B0F1C4211843D50D - -4C0FB615107A5985F2CE49CE2F7B159C4E566E617B1C446198F48DEE3D31E9194AFCA71CE2870C - -6526AB1B0614C1B894FDC0DB2F2356082B8C311CBBFC4422AE45B90852326DE98A17CA8F5EB9D7 - -492404916C61367BB9DF4FAAC2FE30C6A739CDD73E0AA1ABD14BB2D7663C86BA2598AF8B553602 - -DF5A032CF80F79DDD04D3630DED47B48E58EE74EAC81A5BD90236954A02D98A3DB705DFBCBDBD7 - -598D774A29200632F546A159A2656B85982FFAD6E2668069663CE017D158B7CBC1310BBB867053 - -B300E8FF4A5BCF286D6D77CE5F5890D3E3FDA72C5DA30D7D72CA3E040DEC3792FEFDA71CEDDBF8 - -58F17396BD5B8DC99EDC09E9A2B98877AA79665E1E43CFF02030BEFDE9E1497C822AE458BB6B15 - -0F6AA44D7064E68294BB84CC34535060053D36A75B75B7DE664D281406FF31BFC907174B76FC51 - -1164602EAEC09AD19A0DD24F003C17FE377B75CDA898A38A4291EE50C5D9C69F4ACDC239477849 - -C60F0099822EDD6E3BB567ACC171F7AC87C775E56B079147BFCA802075DDD839B869C4A71F63B6 - -B2C65E4B9EB1CB8BDF55BD6EAAE1F290B52D712C14F365D3805E29A3B5643BB90EA7E1CF8D9B42 - -FD09FFBA06CE9941885CA6F91F0D1CFE91A94A9BC6164634FD7CA2AB88952FAA0D249FCF47ED81 - -B9B520ED9A59CEBA8993932D67C4F9ADB27871E711B7F0F3A4845510C423845F396AC3938DE83B - -0304054192A788E343D51381E622E5D46FEAD67D853BF1C8C269D90D21B6267409A20E24ECEA5B - -1E0838A434585814C7E5128BE6D0C248CAA2014165A8B97AAA6BA8A3BD868361E8AF0C120EADBB - -C229EEA78227188AB22D8E85F638373E74CBEA7197BAA9847D8EBF16145726AA706C0BA81EDA7C - -FF7E88B39F19609165640246A4A9B7F261A5C93A5AD64D933C4A8EF9D026F2297F0EFAD595D0FC - -87C1393EBB9581D91814C47A0A3B06E5CC450CC22EE1B201752258453D4F145567F7D83CD99920 - -B5C5C19B0C8BCDA6948298B6771A50CAFEC673F44A6080F89880EF0F766DFE9FE1D9C850B0CB7A - -6CCCA280698E832649CF604CB549CAEB31CD8356ED106F365321CE6809E2BF26C186497CDF2D18 - -698762E4749A90F6C1D95B8EA7EC96319113C87116118100FCEA0D550F2832C57A8BF5E1E1C847 - -F0C90EB114C7CD6C3AC2C2C5D7A7B56598739CD0CEDCF8D069EDC437C7CEAE5C0CDFD46BB57F23 - -BD0D61B1AC0B9205FF34194628D5FBEA6CF56DDE45943EA188825138341713796874E10896757D - -93ED98E7B60AD890DB2AB682330AE8E15572490001C91EB2A8D7B56B33BC7E0599D4DD3A5692DC - -D2E05FC5DEFEB9102505392A008ACEE79CE7B2BE2A2B0AB1E783F353183BE0FC9D19C00474E0CB - -8817352AD755C63145D7C965C0E742F1909653FAF30C41875C6B7ED342141DB4E74512EFCC5B64 - -A91468C89A8E692F0EBFBB4BAA6264E31702817C9AD8EB8BF75104E4D4ABDAD1FD5A81166FCB17 - -A54E71767343F36C47D47FDE07FA3B7F943C2074622BFAFBE75603A0A117C1BD679113900992DE - -63C0FFAD063B669BABFF040F372B03A3030D1D1AE05188B73933127E8EE73625FC75DF1138F055 - -C815FCA4AED0873CB6BC13414731FEFD7EFE52E3EF824C75E0A0561DD0D7BFDC5808F1B78B7D9D - -B562B3F0697A11379D087D49CBAEBABFFB60402E35DC6FD4D20D3C2FC88651291C379E4E8F1BC0 - -924BA435EDE740137583CE6241C8C2FE4DCAA17103C8C8F40A37D27428E81B370788FA30C814BD - -1501D07654C470FD5E94CF0C0C52B5FD6E510EAB08D8869B108849B9003E7CFE8A256DF7268EB1 - -DBF4ADE9FAFA0963B1A6A9B8AD40011E721B992A9FC9C998D26400ABA8C5B9D521C28642728063 - -D9D0668B2B639E625D4B4F2FA3786E57E7938F995C893E7D332621716C6968004F7C302889C4BE - -46046983225AE2D1BC276683744800DF9683E960A8689338789ED2D2FEA1D639804EDD686295D9 - -0128130940AF251D6B7803F0AD941F3F3D999C5459AAC5765C743BEB8CB02461B54EE0281A6006 - -3AA762187D3B03EDD3B0B1F4EC416DA20DDD0D89CF302F6377CA73A36FD44E86C4DC6DAE2F5A64 - -AFAC62536CDBA2C86D6AC1C6AC679E50B557045B2EB802C4C7AEBED40623B17A93ED24B65AFA01 - -0C3FD297B52B2647355A411ACED255CD4EE2ED397B3DBBA4FC2745960491AE76F826EB9C3442A1 - -661D656C27C486B3568A63F0D6DB571B17380652333C2D262A69FE1AC016D6D67C854A1AE0D72D - -ECA2AA38E6A3A3EF52B4EFA56B1913C0154BC1722016BCB3BE5B4EB5160DC9CBC068BA3EEF1F68 - -7B663D25789E03D465A88B93A47404AB2CABB24AEA4337A79DED69CECA3E5616F3A1BC6E923B21 - -2F58DFA41730543D0E484D43621E697DD091D3BE143A85895824C13FE5B2FC2AEC9CE8B4899197 - -8019B6AA777AB5EB24FA352CA317C7C7F1E9549501DCE4C016AB22CF3FE5F1B911C5FFCBBC7969 - -2D54AB0B0C92A5DC73A5BEB28FF8D2963CF66AFD981EFFC7A1246653E07A5A071442F0F5F719B8 - -D60022D82643527C424D74F130544FC363F9D4F771B846337902AAE901C881130559CFEC5630F3 - -767A1E1200A4DE082427A6D0DFD4CAA59DA510C73F7ED165A7FCAAAE1B541F1778A6B8FE223F28 - -597743986FF80C2142BB9E347892AF7AEFEDD29ADCEAC1498B31F5FCEE94BB9E48750ECAF7DD52 - -A39E793D99C03D875B9330FB1BE085B968C3B4EDFA0F050CF84405D3A42EC8732AF0DAC9C86661 - -337B70929CB485028EEE81C0B465842EB01DF15C1EC0BBA5805FF3E900576E749187C0D94FAEC7 - -E3F93F1F30D11242E7F65FE0EEF91676419B2E43223C0061E46C41FCF5FC82C011D2490D7A840F - -F0A8DD6CD0AB1CA81C273E1604A9F54AC6EA6BE04E6D14FEB14DEB14DC7CDF5878F35224C5EA7D - -EC76C8C5CDF816164BB47F9C6020D371F30419198AF45BAD5792D148F915BAF0DD0841169B77E4 - -5AB50CDF50B98B4C54CD0BF91269D9FA67F74EF71BCC462AB9EC71939D361EC20AB52BD906BDA5 - -FED00D420E32CF30AFB953C4DAAA807D5A5D3F24A353E9B0EDCACEBFC69A29E65A5CDD1B61FB66 - -5003FCBF372FAAA06019F9945FBF32D62C461F4F4E89A400F9E0B3A46BDCA99EEA1AEAC92B3ECD - -C7B14616345D9A3FD1837FA24F916881004CC27351A131400D7634ECAE7DBFEE4553C86A9B1362 - -E3BEF463D3B2923B45F5D8241F43533EC0E81168EA76DC28DC20F6A71508EF1C0EB6B946C220DE - -FA265F3E8F35EBA374D0865539B3857C9A21B1D43BED4EFF755B1E2C2EBDEF2A3652F19729DBE0 - -59D94FB5448BE1F8EF205E070199F7C1D55394968A1FF745AE925EFB7237FF79FBAA77731C6C47 - -F6866815020AA41F7F3051C7ED028518628522AE80FAD972B0A988F5793BE8D421444A2D2C0061 - -8C6061A4CE81A807ED81987248D637B525C4E2A3D24E8AB6EB11FD36E9BCFE5432E46B89B2192B - -AE685D7EEF494C82A45EABA1363D2F4B7973AF5B2050B3F5471B2027511F816F1A3775861673F4 - -B292E3425234A41A3D270A0D0C0139C105731A6F5F845685B77876B46F5ABB4DD64B669323967E - -D11E40E3A1837B060A6685FDCE58D2DD31D0C9A9AC68203E78A787FC6508B4604DF609D14D7AF3 - -0E0D2CC07A4905339F7AE4522D6061FA6A7E4CB7A5A8B2B5C49D7A72DA46892AB0C82AF7D3AE1E - -6D882BDA8C266984230CCCB95AD2F5A0E33685BB93DFA60D8FF703C76887C32D93E53DE648C72F - -25128565DF4F410D1B2E8C9D569B706CB99542A27BA685DF09C752286021C18F9BD2B9C582E827 - -745D6901DD99C4336C0268C0E8A85BE9C523DA1E4D0BA4571EADE80C88A14BF4E7450A1BCEA1BB - -FF95BDDF2AF1BEFEBBEE7429A4FFA5F72FD40A7AC1B70F8EDB8325AA8A611E37B0BCDC846C6C13 - -CAA9A830E1F090059C6E3405378DF90C1AF48288481268DB2AF862AF3AF7A9C71EB60DBE819839 - -6083CD2F545C7D78A37B90CC3B9F35B30F8D424EAC374DEB8EC893715791EE8B0CF8F899A4582D - -C9F2F738232B983AD8A77855D1E61065C4471EF0CDF72C0C8AC6AAAEEE1A767E8F7F0035DC77AB - -95BC1E2AD39914DF3E13725D8C3B5DE747B0EDF1FF3F80FD160D9A2055B4F2FF20F4626AB41979 - -5E1FB1F382A07639342A4439A6E2F18F3832BADDE63DA1D78FB63557261C6C86C6E99FC9D252D8 - -95A9B653782A4CAE61A6DE512CE97EC46442BE27746A90474800725E95307825739592D585054C - -07680680F1B60D37D64A5B0A69C84BFB05CAEFE941AFF94CD357A53C9C3E26FED2205B11F82F79 - -64DFD8FF16D5A3CE12905945BF41C8A56A599877615B23E436DAEBC71B45BF0163A4E6D13238C0 - -479C3DB9EC99FF0B74CD22248651F2E1BC7860ED0336E6C078D0ED4FC72F494D3F136528B25CF1 - -53D41DEAA0761EC1E8F31F90DF1D73EB3A5BA9B52D829EDAE98000B6116072AEFEAE4D861E8928 - -FF9DE376C856EBAB1A189F4248318A44CC3E073B855A13916073162D7A26C08BB55BB39A12033F - -93B55DB97CEAAAB975A7372C15D32D66578A6539ED61097D4E019CAE33119870E96C3E409E44BA - -E5F9C92F044BCBBD1B1041C5C68C45B766BC1FE51B57D74C11682E6FB6245DB5B24840FF1AD084 - -4B98342B17E18B42B9FF61430B3A703D97EF8FC75B5F8462F404CACCDB2E6D947C1FCE7DBB0388 - -DCEFF510B06216C218BE38F9460726FADC19D133E046C9057198C1C25DF85D45EAE84F3A66D339 - -D9A1C0CD7FB6A8C706A9BA062E6415BB11BCA1923732B2A9BA984FEA53490547A03063673BB384 - -D78CF48782AD45111EE91BAEC2128DF1A273F9143A3D28AA3E1F22DB7220092047E22268AEA219 - -D0037677A57AA98432E3749FD577DA26285AD0E67E231F5E208385F4757D217C7070692E6AEB04 - -EAD85FC981AD586A35293854C147A62230A8790822589C62C1BC182F9E07B7E0C5B1D02E9A73CE - -222AEBDB0AADAACA9685B12D914220637855F928B1C95251080DC17BFE674938D33E6C92C047F1 - -BDC22EDE502AEEB780D6FE78304E0AEB47F39A7AA01C8B3074FA0A423B603BFB29D99F1C125E41 - -42D310FFFA16CBF8EC7C2B09E7B088FC222706993BB4EF41C9329CF0AC1EF60DB5BCD8A7FEAC1E - -9DC111540A7E1633F36B0D94CB0B15A8E307CA19B3CD877BAC7AB9038CEB293CFA0EDC053AA4CC - -5049CF239A0841C6391A1ED537B49655EA5395477646BAAD042A98B61DD270973665497FD5CC42 - -4B30C3911C5589231559DBD1FB713E1A384DC62A16816558A15CFCA84CF4BAA29835107C113B60 - -04BD88E1D4B6F0EF035083AE58040791F8249B764C341064E95D788B90695E3FA9E547E456F5D4 - -7995046BC81D5473E66C374FC360B4410670E527BC95332D6FE7DB8B8DC47AC472F37E83240AFB - -3800FCF5AA3279E672B3DA63FD22384CCD852C2516271892E923B9932B6DD432BE49C90DC0B554 - -23EDEFD604A08963151679A94E3FB3E64340399F075A21DEF7843CBDC9D2D347D59CB072F12962 - -7BE7828A6E9DF46877235D035DCB1B38BBC44BA3E7E8FCA39B5B34CC649152D23095F93B74BB7A - -ECD3BBD7E4087854CB47132679FB573AFE2A091FEC294B2B9E730625F68291EE7DC28C3D554037 - -F62B30B05121A5A55D37081BA4E6DF3CD6E7347C8072E518250DC7305555487BA229F7A35CAE7A - -7E53417AB93E9630F6CED04F3A8C0B3B5417DB9E1D48C63EF34AF5EFD4F13AB7697F7DBB88B437 - -A26532070E89E418AEB58759CA2EA0403C3D4EE2260F1DBB3CE9F1F06EE4B9147F9DE988324791 - -E1C111877A6825DD08E8902A9555D2FC7B8B746C4B214AB4721F6A8251CA4D62F8E33CB4A7EB78 - -C6C55F215314612AD89D5DBD8D5F614C8DF58AA798C7C9324FD435F059A1E94E90B2BD5EDFBDB1 - -FDC906CEA9F5CC1204A0EE9FB244AC48B3F85593C45FBAC2DB4273AC81C68EBCD7B95E13B3D8D0 - -87399C5EBAD86963453E54A2DD3BCD91ADEA9F0B13457B456ED9432C9EC1F4A34AB0FA8235C26F - -23838D53275CAC1491BD8A45026446F39EAFF0CA3CDF787D3F75EDF0D90260801639B3024B04FB - -4D0DA03D4FD56A2C45AA94062D92354212BDB7E62DB57BA0F08EB3727D5452E5B70B6F0FAEB0C5 - -B8CD99011D992514D5C1D108E7E6E3DEBA9753D96DDE02BD87FCC830DF9AF89D97D6FDD9A6C77C - -489EE06A1B453F8A7B3776F11DCB71C9304899A22FF393F8DA55460CDD2EA1C8C70F4931FA109D - -5139EDD0FC9E323D0F8E323449D12470316A1D5022DD855EE9357A35C0673A093023DF988F52BD - -6438574B5FF0EDFAAFE12DF3747300456ECDE2814B5CB39EBBAC8198B3FD21D1FE47D7E9326A67 - -99AB4CD5072584F774E95C55EC967AD6EBC94C45E3E2571F982379234E5FBFCAF666ADF6C64763 - -B99496497A44A1E300928736B77011039A31CE6BA569B19AB447A6F1C95D5CB423D6A6A9FCEB77 - -4C184F45EE6105F702B25E6586296EE177A97F5C508393206A15C40BF1EE90C1DA654EA12BB4E9 - -C0F1D8074EBF22BC4FFE94DB00BBC01DA692DC6E72F3976C6184B7F17066B6C0B913577705EFEF - -F28C430A0D20E9CFBF3F1BA2F378FDD07CF7C4DAC021FF0A65E82A784F5B4DB061440032007E3C - -CBC4919B756235DB7988A17F76C9F16739F3202102D84484CBBFE5BC2927B020CC123121EE247A - -A03AC0859B54231C345116314A453E35E1C0E9FD30434915616F1B6CA42073D53EC446F4DE65A0 - -4060367D2AE61F4B71945D3F00438E98BE840AB4254A55FF730BD897F592C5308A41351EE39650 - -D71D24B8F2500392B68CF88C25DC357CBF0A515124336BBDFE42A9DA2AE5ADCF5F74B4B6285C0C - -6BF38283EC0CB48981C142E7072713506B6A38E991B507DF8F0927CB86CC86C7102446EDBB9DA4 - -019CA4754FB67324019837E8DB09C4FC33CFE423DA1F2FF32CC343409C2DD71C814B930F59FE25 - -E81AA8EDC97BCB05C03A51C48438020816EA31E6CEE57E394F6019945ADE3F9BBE5238F5AEE297 - -82896EAFDB40CB42876BCAB6F37CBF8C05B9A84AE9D7215774682C0F32E23FFE0D61A04CB9E74D - -1D04B3AFEAAEF7B94251576B80EB8F15619B409AAD454613FD50AA7D4F3ADFFAB7332595EFACFB - -9655039A8D13519DF9E8B259E342F45501FD9414D9A1CE8A1DB2170C0E635497A54BDD296E4414 - -46DFC16311669B81EAA99EF9E9F9DC6173ADECA4E9FD1D4D924A6FDF1A619D83D5AD745BE22CE0 - -74AA80A93FB804241573C4AA99B435C0C553B6A34C1CA2420D4AD5AECF101D0C220117F52FEF1E - -A6A7C2E6C5ACB12F4CFE0434D38A7B80D457299CAA7BEB22401F6F41BFCFF1B73074DB204AA4F7 - -4BF21DF02FBCFCED325450A316F3D0E19A9E578EFF6E36AE9B9FA83AC2761D9B0799760774555A - -CA3DC87F8FEF04FF41729AC36E78730AA4FDC9B200DD19E55A2EEB2914BC4A7AB668576E842FE2 - -4BC3171AC6FDE3B12CA0A5CE473CA9B16AAEEF1E038F3CD0CD46FDECE92D31989529AFF640EB74 - -4534262B1C4E74BE8E23D394A492BDEEFC7CF549C29298CCB93C99F5E7EF12F0F31F94BDD5571F - -A1393D675F0F7FD577F13B8A650627B83D1377E1D5BCA502A977CB56B3238D907336D392005BFF - -92FC98D953772DCB25A3353D07B7A21E21744A996725EBAA1C4E9359DDB16EA30F8B7B054F4338 - -D80BC231101800CF513329DF073BEE3A9E99ACC65C4661660AAA6B2466E06BE9C9123A663F9BD0 - -4705A874392E443C986778FDE4DBB2AB0AA855471E6D01BBE7B21F00725454FE21747084EDDA95 - -A23AFAB912899C1155F94CDED48C003C3E06755DDDE45BC868865D5B5E6B33F441848EF915146A - -843A1B0F83BE8A3BCDEC8F7C33D0A6C80C17A39CFD9E466A4130862C8C9C6213593ED513B82E12 - -7739B18A26A31884C99E43CB69082E710679FE9EFA6E57ED06B79BE2AD684EA2927843B289A1D5 - -E54BC9B5C03EA51F5150B1B1E878D467E6062CE785053F1BC01922BFA0EF1527758F2DC5C97E84 - -D64408424A58B069EC173390844E0DCDE2A14E874BB99D4A237BDEEF2867158C1DC360EE8D1CCA - -3578F9434A856C06722CF9FEA30AA6E923EB7FA1E4669732473F04A4F22282782B18B530C50616 - -807BBB1250E64CE29BC8EAD8023A47DFD73125952ADF218E0503E6B26F09629757773511B97661 - -28BDB57D2644C1AA9411C2BD09A1C184648ED435E61F0A8E6A3CFE2B19F7756604A32CBD27DE9E - -B083BEA7B9E505AB72E8A011BD3B38D71943044D552B8A2C6A9529C74C03461BA230DC1FA15BDF - -8EE5E8C00AA2519F2768CB41B29EE521879E4F5D33022E4F44E8BA54D9E952D730C60E283C0456 - -9B2A7E0293E622DB7AF03759F4F6C873CE2D389C99398524E8A277E0124F42A701EB9748232621 - -AC50CE70BAF6DEBA4CDFB47332DE090F1E6616D7457AB01CD96029F8E690231882F653F26FB2ED - -07DC43E96DEF70FFDDF5FF0802C87F60FDCD5C263A8AACEDD785454C63D7D1E4F0550081B30C1D - -460D7E7855548ACD4E31BF10893E793CA56A9E2B36E95C17E7B1ADFB825827FE2A6C00888BF692 - -FB608A4B5B21ACB5E539667DFA247A7C108118D73E45581E53A30924061EC53D1E8C96527FD228 - -91040578E10FA9B1B897230214B7224AA95BAFDBA6DB7DA9A65C6D19BB494D4C10E50425E88A05 - -8DF29637BD37DE8482816F8EA5718639DD5C80671E52B9EE96470204F17C938B861718430AEC84 - -04A67E719EDC2CFF1996B71FFEBFE745C5A3007545CB68716B04939633B6EADF766BD82AB8AA4A - -58917F66B20858E8B824432028EB5D44B20ECF9A394A7D2CF0C0AA6662C93442C8E081852C778C - -E8B3EDF6742CBB82412477FCDE7668A431F255A09D89558D6A95DB4C16E4A8EB40421FBA484DDA - -6371DFFA62972FEE696BC1C87CBC8A0A7854F9C53B52140C41F3E41A7CA5818821AF96C7DC4194 - -EC0CBC08B2E7B3457FEA3E52C46467EBB84C739FB61BAFF1EA3341E1CBB563B9B8A31474AA8A0E - -AEC04C792AE8C1EDAB97142259FF325918D503A884CDF665D0494FDCD6E8958FA02373AC28AFA2 - -62EC087EA4E120D22D291092834025B8D5D5B1FE22887017160C00A48BF7EABFBA436E2286EF68 - -3FD641B1BDEA05A364B62E434B9E28A15FF9BA9EC7EE3E280FFBC79FD45A29F41B40F09CFC29B2 - -688D662F156261913B3FA356A05EFC9D6CA122FB208B49BB38EC7543754CD60BB69C451E1CEE9C - -16A6C8900F6AC44EB8E8956B9E9FC43339F6AB2EFD67CC9943D3E9B957E2AC707FB9C035B89300 - -81DB24B6A862189ED78C6B265B5BA7E0F4BE520CA0C6D0AA4E2F06F2E3CB1000B62494E924D03D - -081FE8FA8041E6455E0D2BE15FD5D9839F8E9D1C449EFBF81340456A7C11D3ACC1F17ECD601AD9 - -83D228A1442FE934E61F2FEAAEB222A4DC974A49CA8AA64FA58A0E9CC64E1D19E8CBD37EA99E61 - -CC37399CE7A4B002F36128D90D48DD0D929C150A9B791E1380494723712D4E9627689B21CACFF6 - -535E6FFAD9CBB45FF42251DBFE4ABC9603ACC441AAA23D6D4CC515928A5B16A8E8EA265A3D50ED - -1570D38FA8CF1F52CED44AE32C669A6A334061D4C17EE9594B18EED1CF49C9DC20CE59CF966938 - -3A6035B828AEDA54CF8EE35AB11ADE0CAA017103EA1A16F8289DC481FE7A027E9D56170F6AB618 - -81FD9E6315E6F4AD853209C0720140237E3C444B714A417794975B942458C1965BF8BED420FF2E - -12C0BB6E977625AF3F10A16250E6033DC439D6962C59C77E5D9B99FAE6BDA21B09B82E4A832BC5 - -04B4065400697262CD99A9C38259BC9522A66C2E2F4EDC8928CAAF77B9BF050E361DBE9D4DE7E1 - -77F84C815F668F8BC2EFBD86E4C5C5F55CA9DC514EB07CE415BF56EE372335DE73D12DC9E67BBA - -6E5DFBBB7897D4AA214E51FA314E48DEADBA951330CFC54818C0205529520926A2074DF651C200 - -BAB99792B3FB589FA7A81FBB417F94BB0478FF5A0DCB3CC649C00DF54686D76B6AE61AD0BFFA96 - -F45EFBDB7EAF8D1CA349243B6126B26A8EFA36BF30904FDDF5D5FF102D67E5520B33989D196D70 - -03297395971793E0C20A3C12029EB0CFC829D37D775452A9C4479BF6CE9AD9C2552530DE9628AA - -6EA46FC1EF19DA37F7EB79DDA088186832C8176864EC7BFC5E18E5E75C57995B77614CA213C0D9 - -1F618C2B899E8BA93065C470475E0E914D39908C528CA0CFB179F7D88B369B0FE607020B2685FF - -308D779F2E22D9291A2B2BB5745E7311841F95DB8F929566A3A7FC36425891AFD5DE997A23F8B9 - -9DECFAA1EB0A65155677B5EB5133DB8F3DDAD0745DA9BA572519C915B353985676734A828C70A4 - -6A903A48F92C843C3C6BF42623C4281DB0B4294243A830EBCC4B4C722B9D795F875BDDA31AF7DE - -68640730185361F2B704F0C3ACE021A08A13393E95F0C153AC305BD3D6B1F9CD1BFD4E930AE7C6 - -6D92DBAE21878D307C5B03AD9AC113581E5625A05D195A503F8460C00093AD8AC2155898D64D56 - -07EF4022640582C97265A2F0D578DC7C33B2A8A28DC11DF55C90F2C39FE6BD29A5E0C2C9CD82A3 - -136F63E603E53791354EFA93AE3A60903A3B284D0555602352199046F7E6380AD34E593A473D6D - -DE2B28CFAD3A75041083AEE4FB12D9EB4B069E405BCFFF5A98E3C2223CAC88F773A5C0ECBB16CF - -12A483641862009037D5C54A82FDD90D40D8FD663EBEC7C91B5947DB2FBF4718A627B10C078307 - -699142374725125BE0A11DF893D8975D43BDF8AFB1476A2DFB2C8381E13CB69A8B494A6A8B0033 - -9253323E3E285E05A9835FCF4FE2AFCD4D782A03FF8311F15A51E7F50385C4A1EFAA23950E7919 - -D107F81C9DE9D4A10F64EAFBE8CAD85C0287CC4D4E815B561493D74FC62FEF72B5AE05812035CF - -4D8841974D9CE41B711DA438D00EC602C911274F7C7E0DD5F23035C5F1737EB151D12BCC736DCE - -4B2ACB25697D79DFD9F594B4DAF1DB7F540E11FA9D4A15C868C595BC35B4F74490624365948143 - -51A771E4864CEBD6E92378E709463C6FE7BEEBE0F325613BD93094EFEC8BAAC89772FBFE654075 - -351E62B844B80131E751AC4F39505DB26C8C34422C66A40316AFB198649802319D1FE4E1E66040 - -1AB234971207ADED6B4A806F0CFE971D3577C7EC801355E5F84ACB3A33CDF296CB33CF42E74ACC - -003117D8F700FBD84F34EB9ADA38EE0716E1AC8ACE9882C10BB4B3633A6D877DD6578C1DB035B6 - -DD9E4E2B2349350085E0428AAAC17759771BC4EDDA1A2D40FE0B15B65A8EBB4C28A526A49C56D0 - -C24FD235653C78F2C40379AEE793937ED6F0BF8F4CCA825C305C0F3FDEEBDE8ABA6352F1DBF049 - -55DF7695BFAA59E1894C1C57CBE29E48EC2F44DE77E3C449E13A25359126925E4C6C4649F0436B - -0188451E473513DF34C4FB2A9A37141E27811C6B33952D9C3BB0336E622DE192649C5BCB761700 - -CE9423E9B52B20B7E29B6CA470221D593AC0C5D8951EE2A56FED99A8A3D018473C0CA28E4A4831 - -D6A861A76C7165314BF7A299DCCB57F7D4CE2AEFD997AD21C55647DBE4F0FBBA1F413667B19604 - -69FE97B144BF2DD823CF23E22313E8B89AB25CE9C1746F141E2046DE217ADBE18BCC3BBBE0468E - -03F277D3F95B56CAF8E2C51A0AAEDCDFA2294666A853088EF97BC279FB51FA78419DA0AA83BF6D - -8EACB8118E0462E0401EA83023DBAE6AD5420BBD25E3DEA46FB3B7C9376373C8E362E74B01AE0C - -E9D59C6945E108E0E92C23F62661BFA54700E203627BCAD11E7895AD59BE1859A9FFB6F7B01685 - -23CB111552301916107D7D2A403543CB84AEFE404B8F170EE5B408981A88A65C335B3FC3454C00 - -153FA92CC442BE0590766F765E30F82FD41499DE688DAE2748D5709BA47A89E825813BEF4DA6FA - -EC5D7EF6E9CB0913B5BC6A6776BF9AC7668485DE88E6265F5CDF0A854FC86DEB070E40A41A1251 - -1291E1A6419C7694ECA5EBAC9DACEAC303C3E9FE8A62A64521E18B49B56B3ECA6EB0FFA148B2F5 - -E558857426424288BB54DE15453E1B321D4B04C8D728B30B756B0597AE61F92447B3A757131539 - -8701AA4F8A6B46B4283D50E26F5770EC6427592F16A66CAA8199AF84FF05A24A5FBFD1588B6114 - -E24CDF39A99E7A6CD0BCD44E0E8776C9465D86CA3E3CDE34B33D317EC75D953411C90450003B0B - -941881686C9B4A3260C1DC4FE31F0A53577D4A4750AC7CDD52EB3274B61597DD5C111AF441456F - -E090821BC7B29806714CAC0EF5B8DE2DC813D42CDC8530F6EB1DD82657EE1B6DC39B0E2BADC17A - -7A13E4EDF2A893B41CDA754D6EB684D6A8D496DF331401FFAFEDAF3FD80BF1A35C2ECA54F42BA4 - -9DB8C7CD73D81F5F1060515D47E6FC08717B9E9299B255536241DBFBC673945A38839B35D9C8EA - -1AA449CDA80805C4B14A54087EAE9E4EBF0E61C83A1BCC6C8243313F5C6FBFFECFC6BDC4368DEE - -7AFD489FD48DAFD34C59FA6D2DFAE7E2C8C95BE05D2AABA6D989D41C7F0A4307D118828963F2CF - -A652BCFAC33B22991E4F6D80D851C0722205702155EDB00053B5DAEC50744AE55E9184BEADA83B - -F76964F7D394FC27AB82DA1A65FDA56D3648D9F5AA1FEFBFA71BDC4B66E8C4A9DE4935F0FCBE47 - -958493161696480DED3314B7079901FE5AEB10F89D9F153D654A0F0E58D70B922ACB969BD800A0 - -F3CE421FCE37319D377D903741A60F8D83AE8FAB1C999BD8C391316A1C0CE6B3F181DEA3D2AFBF - -02ABE1237934194E9F42A973AB4971D3E3CB63ADDDCFE9A47BE78F24468F83E652E7E67D853F4D - -5020D7ACDBED250D1CDBE86D5801CD56913C20F8101F509C90F97263FAC6FFDD6C8705CBA0EFFD - -5EEAE1BE11841DC48401A7C41A5F0ED59FAC3CDFB8A2DFD2AC0F3C12CC0E964B25B344E1B6246A - -292D4E9EE6FA18BF71F1BB7A91EB5B8F0E20A4FD8593B803335980224D372417E3662D96305524 - -F200B70168AA3B485BD83DF7A42A5771882FA599F0FAD36C9B4632E56D751FEB579F530A6A4C20 - -A909765CADF9065E4BC80BC52FDA6A2186E22B2559017A626F230522DE708219012351E9205F6A - -45E968D94D4116EF55E13EF921B3740CDF45596206BDA272B14A8B2F6C6ED744BCCC8BFEAB9B50 - -6088DBB57D8FEC837B4B00F57959EF515CE8A9802F54AF1DE01F071146D9A68BEB382FE03DD7DE - -AA00AA32BD552D2FD1B09E92E31E3623434A5A34E702ED0375E1A97F8B09AA52DC4FAB8A15F09F - -ABF0BE47AD03D997236B6B556AFA9C4A3E4135DB4956DB38F914446D7E0FC6AA21D4232B0BF5EC - -66F43214EEFC8CF98854BBD625668144478959A983A01DCB4FA2BC8FCDE08F3D4DAB474E05C3AA - -80B91FE4F53F103EFDFB1A509696E0B66830DE466CFE8243292DE34D4E9AAE50EFD539C120BB3D - -C0F7D3EAD1C033EF7EABBE1294276C0F78C7C089C76A1024870EBB09D493D9A4F16A3E65B5C5C9 - -F380DBF5365BBE83AE13AD4E96C852274FA6CC8370CE8FAD45449D9050E7D2EAF352F169CC7EFA - -67B1BBECE485C2DCB608AA7B2B6F2762B7E4682BCC33EA0E305CC395A3D7A2C2F7E0EFCF2B1055 - -F30E631757BB5BEA22D9074FF2D73588F9E9DD12477D44BEECB9A03DD5439C472CFEEDE2BAED9A - -FBD67AFF806759BA0AE34CDCB12CA52332C9328633C42F1894DE5F9EC50136AA1293C9D8937160 - -0DFB14E2E95490853B0601AC7522BE8E519786C87AA5E1ED2B96CE221009AA9C55BC60AEA4E8CE - -FDB977B28F0551C306C22FF4016728BAB789B65CE07F611B9C84808837F8765E5D94B9C867C0E3 - -AFB0EA4A21A324CC0A3BC3501C39A9BA928B09E9A87408314DE63B783392D5BD9B3ACF56CCD70B - -4933C1724732379A616012DFF9A9E14D5A55F50D841333958D6F36B56926228F4796421E470735 - -4FAB7431899445114BCCE5D27117BFEA65EE1118505765132B7833FE9978899AAA1BE3E3F8AFCF - -0E9E1140A26FC9CA154A6BBB84C3E5FD6CD8B82732BE0179DEBACAC5340C79493A18FA2E5DF58A - -5F0C6546F5A5836BD61C904A8EBAF16CD933A9BC7FA72FA72F319A0A6EE86AD23C84E672D18CBB - -0696F22E1C69ECEFD15FA52706E5DCF3CB5311B28D9A614446CE033547EC0EF5FFAECF2A04F1A6 - -C3DE91ED2B3FBA94DD7796E45D26AB00B99B3E295751BD6473F0BF36EBCA28FFAB2451E93DF4E0 - -26BF0844FABC6A12EF15EBA64A5CA0E97C6DD06B94BA1CB29DFCDAD8C203C1CB6F7A1FAF4F3B58 - -5BDD0BF922549CB45DF8F2196C709F2B9A35A43DB0043E2BD0287A3C313EE3C33F119F09A5619F - -B350F4011A93100CEE0847F1BDE12FEE8E323C8FAE34D535DB5A0DC8475DE8299E3C9CD6D8B0CF - -D6481619C68E77D92FA10D9EBCC13E474AD22B1F47D3F362FC968CFC1B5B52EC24F19BA894967E - -ED811F37525C260AFE0E2F9B302D6FFD019754EBCC14E053A9EED1905F402BA7BD3D8AFB09D2A8 - -E94D0ADBC3C2ADFAFD2A4052256D58B221D0A20995F9C394F3A3AD6436CFE4F0030C7E8C2094E2 - -092F5191C2C721CA9433369AFC221D01872BF68298677841A0656772649E7EBAAC8B1B81A38E75 - -5B02DDA4D08B2F357C0C10E1060632FF74F7EDD5CFE7F9DBB232C3A231D128A3368C4D9872404D - -F45719B3EA0455836B893F07E07762F0A2FA9E011010A0872353F0CD2243E1860EC33F72E15EB2 - -EDEE1A91397FE6D2729FED1B3A66FD009EA8DDDADD1FFDC8CD3603876F8D0C7AD60164A96A6C73 - -B8A8B50985E1FBDA3ADC50018D341F285036B5EE255D975F6C3B5698AC4A94B2317BAC65889783 - -4DB7BF52E9B8D20FD4981515FBEF23963A7F8636D0897E7EA88901CFAE1FDD18DA86C246507A34 - -7672ABB116ED605AC9B4B6E899B9E8F6867140BE89DF5CD52C65C27E860170AEA6CAF303C860A6 - -80A85394DE6896CF928BED76171F8904C5BBF4196BAD906569AC5C7057ED1201F2AE8393CBF704 - -009124A6E5231D323C3FCE6C48CA239F169DFF496B951332DEBA5F06CEE48B6BCF824F0FB4BFE5 - -4C1147BF208C2A9D44132D0895FA7A87F6FAD780DDCF94545F7030EF1808B30EC659FA2B6EA011 - -A3C06070388BBAEBE45F8EAA75F72BA5B4E56380FB7FC3179BDB55A9A7CAF8D7FB60EAD6DA939B - -09E69159432671C88E22B34D115B6DEC54955454D622857094B70C3359D6A22C239FE03853CFD9 - -9B7FA73D4EE3CD34124486F01F5CF05A423FFD794F577F50DE6776779107BD58808EEFA24DE1BE - -94BB27F82A19068D7F9DC695EC8473341F73FED626A4A6E89B58D4ED2024F78AC7678829FA40B7 - -C8AA7400EE3CEFE125F64E1AB49CE67FA2F2D1B81FC322AA64F16463C134AF51AA9C3A154C7FD4 - -30BCF4531EA9B6211F92006AC1C61894A7DD5C38E6CB8CC68D6A05BB95B0BDAF66971D357EFCAD - -89BCB8109462B796927389567F797E58823706AB224FF927A7616F0E4527D90B0DB9689D850D4B - -4F147080CBBF3493E564A1CC43627075E79BF3C3091E4650B8E607F4CCCBCAFCD3F778B7A1464B - -14A4E229FD41B5BC4A98880F008ED63FD25AE4504EE8BD38B641F65D0F3F65961AC315F4D68139 - -7C2470E88813BCFC7E41FDA99AEFE170E274D53DD3D858D8BBDA154BFC93482C65FEAE4AD7E9A4 - -7AC9530F0A82FF46E8BF22EC64B3A8B69527E92245B3B272C311FCF9946E93476D838EC0AE54EA - -8CB899087794A67E6B4E96664AFDD619FC074FA089F83A02FA4FCBB5BE698E508F87BC0F48051A - -8AA4DE3EBF3FD93ABCF58C1FB64257027AF8FD69B7CEF07498F48F393B4B4E9BDD6519332A780A - -E72152CE168E399E75DB4414618B9EFFB4986B85A94CBD0B912E3D5CDDBA6B784EAC660969A83C - -CF3AF928B6E84586B5F1CF353EFDF022DA5DF130E7FFD1698A9A7C26C83F135FC39E9CECB8855D - -9601A08D9E5ADC5397EE9E639A198A61A79B3CF5960AFC41584B56B0EF5C604E42BDD021E716B7 - -3718AA7FA7002D329F22E3898B52F3111E975D5054C8C1BC491EDD67CAF876517901CB7805FA84 - -4279435B26A2B54C086FE443C079A373B630528664C8F262D147F44F19B3760D4CB4D3A38B8E7B - -8492F3FC910E45A201FFBB8B3F06F80CD135C321EF51B7A7C30AFB5A14D5EA851E4B23232B3F0E - -272603125DE99C6B1755C9D3E8B9E92D33AA4EEB55D07D06158FFF93BCEE921CBE6A9B6605BE3A - -D1C203AB903AED90A1F735D32846EE9BF7ACBD7BC479FDAD8204F0A5601477E2CA092C7CD57671 - -E2B179B60A72794FB3DEBEBE9E41EF333F97007BFFDC1A1C55C79EB9CF85AC2DCC23700F48D6EE - -621D02FAAB7D7E7C512B939362AADB1ACDB25B75FE1B935F15F922AE4E03632EC9AC1CCE112FD7 - -CC8510B86921209CEF5E66F52CAF4EAFD83E772A653B0B10EA7DE38174A6458228F90146A1C5E5 - -F057D384CB5CE531C02F7BF2BD20517F182597310157AED68C2325CCABC22F9D38A32AF1575707 - -DEA5139E0363677162DB6EE9D46619DAC88D9D97902D5C58339FF9B7E3DDBDB7226DED36C1CB51 - -B50BA744CB2DE5964126918879DBE7D2FA616FBA9D4D2965021EDDA8A88FDFC08853DC1FE99614 - -15C741B21FA7D79A6F0281BD054E49C6F1893A2A4B3708E7272F42C6AE8A5E7C95CD6879466150 - -CB99F4110B392DA7DF91419571EE31C926B3571DC0FD7302E271263C4AFCF7553525651D8D5587 - -7AA4E1333092ED52A9672990BF34A1B60EC243241530E67E9F1D7CCBBA1B511A24793F2511F3E4 - -763B02D4084CFF099BD83408FEAD0403E33A6BEFBCAD9564232FAB7BABC8BCAF785A6EA74AA882 - -B74DE229A6C9D140E617F10E988467704D31695637106825DE0F31C3BBAD7EEC317C2CBF7CA7B2 - -E25A5365C8234B9C57C9E3853C7A581972B3186AA87046C09DAA4429DCC56C7CF7F9750428B974 - -49E6D9E0EE104BB2E80D05797D61C71F7751C5726E1FD7C441176ABD32613B6D7EA98B4262F9F5 - -664AA8D4E9422AA0F44C4A1C79C32140F6F38ABD0FE9D7CD85997A357C999A37674F4603609349 - -BEBA4F86D818290F6D1E75CC70555D68A717EC063B92931F2278E460A24A53377D85322FAC03BA - -D008ED6402F3768A75CEEF4EBF73852A2512C1499B3D4502E05E9C4C77D962708DE7FB406265A7 - -A7B0AE38E879BE8922C585EF4ACDA2A4459C27DEAC5909ABCC15064EB6B974EED95702286F8C04 - -E59187241E357BF0FA2F1B1D2576366DD96B15E40891041435D3542344DDDCEA9982E7850BCF12 - -BF60093F0BB91279E8AC2A40DB5C7F0586422A9B7519B5A14F0E5BE49BC0818137D0D512A2BD6E - -475855EAFBEF470190721A6E90966CD8F47F801780B6181C92B6D401BB70A64C95B12AE7DDD980 - -D32323EF569C05105ADC3AB5DE127B421EE1453DF7FC5BE2275E5941FC9C7FEE09F931039DA70B - -920604D40703369B47D8014E95F827563234D32A08FCF8B99073FBF7E87A34D7FA1AF9E6B5C5C0 - -8802250ACB7E943DA108BB2485A41324819CE85AD51CA83FC7575FD5E8EE353AB8C6B9C2F3DB8E - -B3DED45F22711190321A2F6F95097DD6A0ED91E0DA54AAFD05A6B9D399239525CD833E9AA6231C - -D4F835B730E5459C399DF7693DC4C1CAEFAD6416BC95F8B9F0533C0A27D86B42D8480FC908AA91 - -C0468F0BF73CC5E260E5F00D82C439E9A581B19A61B5014606D57D186D9F9469217B4472DB1609 - -FED1949D29FF3E2E3FAAB536FF7949A26042B9FC5408B7B059EE35B0E287F4D8CEE50E540DB716 - -6802EFBF0FB60F18E5A1FA942A4E3E66EE68EA44B8FF66B3B0669E59A81C6166312987164E6DC4 - -DB7509B11444287A5BEC5BEA9FF656D5A42C0DCB10F83B14DF02BBFE729E9839E594895DA80448 - -B760D7AB5E58B675ADA42098929FBED35D62A54737FE6E612569B8DE4EB603F1DD6DBFFE8F79D6 - -AEA1B0599913AA70083EB94E251DB277BE9F492E4D13B2E42FCCF825B3589EC4F9427BA659A59B - -73DACC3C9D2E9CD77267DEFCFDCF2117F5207AEC4198130B1B585875A49B6E01C8A5FE5EBC4678 - -2BDBC438BE32A1CAF134E9B53D82761E9B682E0A198A812F296E193C296412596978DD3C5EEF0F - -BE7B353568C5627BC6467C767F9ED8412EE405C24F6DFE95AF72437D1AD9B992FF30459D232491 - -645E845FFF03214949D33E1A48EF2A99DB29DE6FF82E72050E0E6E08E863DB570ADF515D82931B - -AE70437E49C397767874E34513417A49234BBD89F19FFC3EE3CD9F5BA7112A4BEC07012C709585 - -97ECA5A501365E3524A500FA8A43A7BA90F91E8CD5825F65940825DE80F5EF11198952A258B5BB - -EC5AA244F8674BE1764B526DB6B9D244C886980B25C7EE4ACFEBF79349E26F2D2D65FA2810D1CD - -4B39233F9638546A3FF1E8D017EF458F182CF228392AD30A6E7DF715CD0B55FA377DFA6880F554 - -367A6E3728065DF65CAD30AD927943963973F6596C1C1DD29C2C84B224F81361D4CA2ED2CC6483 - -A59F833CB8A964C281B0BA2C834783C5752986B8E70583E6C9AA33132BFC67998B992F249D0AD7 - -6C02BDD2925B39501A69E4E00DD3534C474D0715C913E23660BB765C2E5FE37F445AC605F62DE9 - -C533EE924EFE205C528C372403696885DDD6BADAF602993F3DF49957E21B2EE409AA6336A8103E - -BCC0B33B8FFD8C818F2D25D22E3B0E4E874CF4ADE03F69C1B017DA9CED9EAFC6CBD86780C819A9 - -CE03C2AA203CABD299251B9090F2659C3245A845B50EB36BCBC07AD6FE0A191D3E8BD0C9B9700A - -706EA3028E8055B585A6D8F305C80DD5ADBE1DA433669E1D9F459EA105B5F6D756A9FF3DF71607 - -9FDA77312E447F764C0F178B7F128DA4ACE17F8D4F213864C2AAFAB0D5BCE40A19AC92FF21D7B1 - -F1F3CEC338951D7292147937ED0BDB0CEC2578D0BFE12F7F21B4D76ADD1F557E8A5761399591C2 - -D4A2CB1F0D9564586567AE9165451DFF5D61E08F0421A8606E49A552E19F8CCDC90CA92C4BC2AD - -2FC3DC29DFF6E56BA85D8E7B0388962DB5BB107CBAB4FD4170F24C21DFE2A3EF29DDB82C02EF32 - -4B9DB2AC09C1A5EA7C71B1547573B68FF8C3215B803CD3EDE122DE1D71492BD3B71C5A6DE52D50 - -8E98676560ED273403B9D655F239579007706C078EA3EDC120EDFECAF4F13379A4526FB3731A08 - -9690CF6D74F2E95E332D1DDB36DF458771F0F7BF321E524447B6E04AC33011E855A0E25582F104 - -69F1B6C19089AF013C38F2624826A5730641 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -0000000000000000000000000000000000000000000000000000000000000000 - -cleartomark %{restore}if - -%%EndProcSet -%%BeginProcSet: texps.pro -TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 -index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics -exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub -dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} -ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict -end definefont 3 -1 roll makefont /setfont load]cvx def}def -/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def -/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def -end -%%EndProcSet -%%BeginProcSet: special.pro -TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N -/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen -false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B -/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit -div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ -/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ -10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B -/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale -true def end /@MacSetUp{userdict /md known{userdict /md get type -/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup -length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} -N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath -clippath mark{transform{itransform moveto}}{transform{itransform lineto} -}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ -itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ -closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 -0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N -/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 -scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get -ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip -not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 -TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR -pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 --1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg -TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg -sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr -0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add -2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp -{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 -div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} -N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict -maxlength dict begin /magscale true def normalscale currentpoint TR -/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts -/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx -psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy -scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR -/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ -psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 -roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath -moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict -begin /SpecialSave save N gsave normalscale currentpoint TR -@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial -{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto -closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx -sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR -}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse -CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury -lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath -}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ -end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} -N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ -/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX -SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X -/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad -yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end -%%EndProcSet -%%BeginProcSet: crop.pro -TeXDict begin /cX 18 def /CM{gsave TR 0 cX neg moveto 0 cX lineto stroke -cX neg 0 moveto cX 0 lineto stroke grestore}def end /bop-hook{cX dup TR -gsave .3 setlinewidth 0 0 CM vsize cX 2 mul sub dup hsize cX 2 mul sub -dup isls{4 2 roll}if 0 CM exch CM 0 exch CM grestore 0 cX -2 mul TR isls -{cX -2 mul 0 TR}if}def -%%EndProcSet -TeXDict begin @defspecial - - /arrow { save 4 1 roll 14 dict begin /y exch def /x exch def /D exch -def currentpoint /b exch def /a exch def /dx x a sub def /dy y b sub -def /arrowlen dx dup mul dy dup mul add sqrt def /angle dy dx atan -def 0 setgray a b translate angle rotate /xp arrowlen def /m xp D sub -def 0.5 setlinewidth [3 1] 0 setdash 0 0 moveto m 0 lineto stroke /back -D 8 div neg def /up D 4 div def m 0 moveto back up rlineto xp 0 lineto -closepath fill m 0 moveto back up neg rlineto xp 0 lineto closepath -fill end restore } def /drawtriangle { -144 72 rlineto 0 -144 rlineto -closepath fill } def /cropmark { 2 copy moveto 0 -18 rmoveto 0 36 rlineto -stroke moveto -18 0 rmoveto 36 0 rlineto stroke } def /fillpage { .9 -setgray 0 0 moveto 0 792 rlineto 612 0 rlineto 0 -792 rlineto fill -0 setgray .25 setlinewidth 18 18 cropmark 18 684 cropmark 549 684 cropmark -549 17 cropmark } def /showpart { 10 -22 translate /StoneSans-SemiboldItalic -findfont 140 scalefont setfont dup stringwidth pop /sw exch def sw -neg -46 moveto 0 setgray dup show sw 4 add neg -42 moveto 0.7 setgray -show sw neg 0 translate /StoneSans-SemiboldItalic findfont 30 scalefont -setfont dup stringwidth pop /sw exch def sw neg 0 moveto 0 setgray -show sw 10 add neg 0 translate -600 10 moveto 12 0 10 arrow } def - -@fedspecial end TeXDict begin -37298252 46178789 1000 600 600 (book.dvi) @start /Fa -133[33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 -33 33 33 33 33 33 33 33 33 1[33 33 2[33 33 33 33 33 33 -33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 -33 33 33 33 1[33 1[33 3[33 33 33 33 33 33 33 33 33 33 -33 33 3[33 33 3[33 36[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }73 -66.666667 /PPCode rf /Fb 1 14 df<000001FFC000000000001FFFFC0000000000FF -FFFF8000000001FF007FC000000007F00007F00000001F800000FC0000003F0000007E00 -00007C0000001F000000F000000007800001E000000003C00003C000000001E000078000 -000000F00007000000000070000F000000000078001E00000000003C001C00000000001C -003C00000000001E003800000000000E007800000000000F007000000000000700700000 -0000000700F000000000000780E000000000000380E000000000000380E0000000000003 -80E000000000000380E000000000000380E000000000000380E000000000000380E00000 -0000000380E000000000000380F000000000000780700000000000070070000000000007 -007800000000000F003800000000000E003C00000000001E001C00000000001C001E0000 -0000003C000F000000000078000700000000007000078000000000F00003C000000001E0 -0001E000000003C00000F0000000078000007C0000001F0000003F0000007E0000001F80 -0000FC00000007F00007F000000001FF007FC000000000FFFFFF80000000001FFFFC0000 -00000001FFC000000039357CA842>13 D E /Fc 140[135 6[135 -3[135 3[135 2[135 97[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }5 -274.999988 /PPCode rf /Fd 144[37 2[37 7[37 1[37 98[{ -.82 ExtendFont TeXBase1Encoding ReEncodeFont }4 75.000000 -/PPCodeBold rf /Fe 1 12 df<00003FC000000000FFF800000007E07C0000000F801F -0000003F001F800C007E000F800C00FC0007C01C01F80007E01803F00007E01807E00003 -E0380FE00003F0300FC00003F0301FC00003F0703F800003F0603F800003F0E07F800003 -F0C07F000003F1C07F000003F1807F000003F380FF000003F300FE000003F700FE000003 -FE00FE000003FC00FE000003FC00FC000003F800FC000003F000FC000003F000FC000003 -F000FC000003F0007E000007F0007E00000FF0003E00001DF8183F000079F8181F0000E1 -F8380F8007C0F83007E03F007CF001FFF8003FC0003FC0000F802E267DA435>11 -D E /Ff 82[28 51[42 42 60 1[46 28 32 32 1[42 37 46 1[23 -37 23 23 1[42 1[32 42 34 38 37 11[65 51 4[65 2[46 5[46 -51 65 17[42 42 49[{ TeXBase1Encoding ReEncodeFont }30 -83.333337 /Palatino-Italic rf /Fg 140[61 2[61 61 61 61 -61 61 2[61 2[61 61 61 1[61 55[61 61 40[{ -.82 ExtendFont TeXBase1Encoding ReEncodeFont }14 124.999997 -/PPCode rf /Fh 134[53 1[53 53 53 53 53 53 1[53 53 53 -53 53 53 1[53 53 53 53 53 53 53 1[53 1[53 11[53 6[53 -29[53 4[53 53 40[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }27 -108.333331 /PPCode rf /Fi 134[37 37 3[37 37 37 1[37 37 -37 37 37 2[37 37 37 37 37 37 37 37 37 1[37 15[37 8[37 -70[{ TeXBase1Encoding ReEncodeFont .167 SlantFont .82 ExtendFont }22 -75.000000 /PPCode rf /Fj 134[43 43 43 43 43 43 43 43 -1[43 43 43 43 43 2[43 43 43 43 43 43 43 43 43 1[43 8[43 -43 2[43 2[43 43 43 43 2[43 2[43 43 1[43 43 43 43 17[43 -6[43 39[{ TeXBase1Encoding ReEncodeFont .167 SlantFont .82 ExtendFont } -39 87.499997 /PPCode rf /Fk 134[74 80 118 74 86 62 62 -62 88 88 84 88 132 43 84 1[43 88 88 57 76 88 69 89 79 -7[91 98 145 96 96 84 74 89 103 86 103 99 129 74 1[44 -44 101 99 69 74 101 89 89 99 6[42 84 84 84 84 84 84 84 -84 84 84 76 42 46 42 2[59 59 32 39[{ TeXBase1Encoding ReEncodeFont }66 -133.333334 /StoneSans-Bold rf /Fl 82[30 24[46 46 25[51 -47 76 52 55 30 39 36 1[55 50 53 81 27 51 1[27 53 51 30 -44 56 41 51 46 11[71 4[55 3[56 2[31 26[23 1[23 2[30 30 -37[55 2[{ TeXBase1Encoding ReEncodeFont }35 91.666666 -/Palatino-Roman rf /Fm 82[32 3[71 46[48 53 48 80 53 58 -32 42 37 58 58 53 58 85 32 58 32 32 58 53 37 48 58 42 -58 48 8[64 95 74 74 64 58 69 80 58 80 80 95 58 74 37 -37 80 80 53 58 80 69 64 74 6[24 48 48 3[48 2[48 1[28 -24 1[24 4[27 36[58 2[{ TeXBase1Encoding ReEncodeFont }62 -95.833334 /Palatino-Bold rf /Fn 134[138 149 222 139 160 -115 115 115 1[166 158 165 247 80 157 1[80 165 166 106 -142 166 129 166 147 10[180 180 157 139 166 1[161 194 -185 241 138 1[82 82 189 1[129 138 190 166 1[185 19[87 -45[{ TeXBase1Encoding ReEncodeFont }42 249.999994 /StoneSans-Bold -rf /Fo 134[181 2[181 1[136 149 140 1[218 211 215 319 -94 2[94 1[218 1[191 218 167 217 188 12[207 194 2[207 -3[181 4[266 1[189 263 2[233 65[{ TeXBase1Encoding ReEncodeFont }25 -349.999988 /StoneSans-Semibold rf /Fp 141[25 2[37 38 -55 3[17 1[38 1[31 101[{ TeXBase1Encoding ReEncodeFont }7 -66.666667 /StoneSans-SemiboldItalic rf /Fq 129[37 37 -37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 -37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 -37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 -37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 -37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 -37 37 33[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }94 -75.000000 /PPCode rf /Fr 129[43 1[43 1[43 43 43 43 43 -43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 -43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 -43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 -43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 -43 43 43 43 43 43 43 43 43 43 43 43 43 33[{ -.82 ExtendFont TeXBase1Encoding ReEncodeFont }92 87.499997 -/PPCode rf /Fs 82[28 50[42 46 42 69 46 51 28 37 32 51 -51 46 51 74 28 51 28 28 51 46 32 42 51 37 51 42 7[55 -55 83 65 65 55 51 60 69 51 69 69 83 51 65 32 32 69 69 -46 51 69 60 55 65 1[37 4[21 42 42 42 42 42 42 42 42 42 -42 25 21 1[21 2[28 28 23 36[51 2[{ TeXBase1Encoding ReEncodeFont }71 -83.333337 /Palatino-Bold rf /Ft 134[53 57 85 53 61 44 -44 44 1[64 61 63 95 31 60 1[31 63 64 41 55 64 49 64 57 -10[69 69 60 53 64 1[62 74 71 93 53 1[32 32 72 71 50 53 -73 64 64 71 7[60 60 60 60 60 60 60 60 60 60 55 1[33 45[{ - TeXBase1Encoding ReEncodeFont }55 95.833334 /StoneSans-Bold -rf /Fu 133[62 65 70 104 65 75 54 54 54 77 77 74 77 115 -37 73 1[37 77 77 50 66 77 60 78 69 7[80 86 127 84 84 -73 65 78 1[75 90 86 113 65 82 38 38 88 87 60 65 88 78 -78 86 6[37 73 73 73 73 73 73 73 73 73 73 67 37 41 37 -4[28 39[{ TeXBase1Encoding ReEncodeFont }65 116.666669 -/StoneSans-Bold rf /Fv 134[41 43 65 41 47 29 32 29 50 -50 48 49 74 20 40 1[20 49 49 25 42 49 40 49 42 8[54 77 -49 57 46 43 46 66 45 66 65 77 40 49 23 22 58 61 40 41 -61 57 48 51 6[24 48 48 48 48 48 48 48 48 48 48 32 24 -28 24 2[29 29 17 39[{ TeXBase1Encoding ReEncodeFont }66 -83.333337 /StoneSans rf /Fw 82[28 20[28 83 42 1[42 42 -22[50 1[42 46 43 69 47 50 27 35 33 46 50 45 48 73 24 -46 19 24 48 46 28 40 51 37 46 42 23 42 1[28 1[28 55 55 -55 83 60 65 51 44 55 65 50 65 69 79 51 60 28 28 69 63 -46 51 64 59 51 65 5[21 21 42 42 42 42 42 42 42 42 42 -42 50 21 1[21 50 32 28 28 23 5[23 29[50 50 2[{ - TeXBase1Encoding ReEncodeFont }86 83.333337 /Palatino-Roman -rf /Fx 173[33 24[25 25 25 25 25 25 25 25 25 25 48[{ - TeXBase1Encoding ReEncodeFont }11 50.000001 /Palatino-Roman -rf /Fy 82[32 50[42 48 48 69 48 53 32 37 37 44 48 42 53 -74 27 42 27 27 48 48 27 37 48 39 44 42 8[69 90 69 74 -58 53 64 74 58 74 74 90 53 64 1[32 74 69 53 58 74 64 -58 69 6[24 3[48 1[48 1[48 48 1[28 24 1[24 58 1[32 32 -27 74 35[50 2[{ TeXBase1Encoding ReEncodeFont }64 95.833334 -/Palatino-Italic rf /Fz 135[50 1[47 12[23 105[{ - TeXBase1Encoding ReEncodeFont }3 95.833334 /StoneSans -rf /FA 82[32 20[32 95 48 58 48 48 24[48 53 49 80 54 58 -31 40 38 53 57 52 56 84 28 53 22 28 56 53 32 46 58 42 -53 48 1[48 1[32 58 32 64 64 64 95 69 74 59 50 64 75 58 -75 79 90 58 69 32 32 79 73 53 58 74 68 58 74 71 42 3[24 -24 48 48 48 48 48 48 48 48 48 48 58 24 1[24 1[37 32 32 -27 74 4[27 29[58 58 2[{ TeXBase1Encoding ReEncodeFont }88 -95.833334 /Palatino-Roman rf /FB 134[149 149 2[166 100 -116 116 1[149 133 166 1[83 2[83 149 149 83 116 149 122 -138 133 11[233 183 166 2[183 233 233 1[166 2[100 1[216 -2[233 199 183 216 17[88 47[{ TeXBase1Encoding ReEncodeFont }33 -300.000000 /Palatino-Italic rf /FC 141[42 2[48 2[30 2[30 -3[42 3[48 13[60 11[78 2[84 21[27 46[{ TeXBase1Encoding ReEncodeFont }10 -108.333331 /Palatino-Italic rf /FD 82[36 21[108 29[60 -56 90 61 65 35 46 43 1[65 59 63 95 31 60 1[31 63 60 36 -52 66 48 60 54 19[102 2[36 36 1[82 1[66 22[27 1[27 44[{ - .167 SlantFont TeXBase1Encoding ReEncodeFont }32 108.333331 -/Palatino-Roman rf /FE 171[112 84[{ TeXBase1Encoding ReEncodeFont }1 -183.333331 /Palatino-Italic rf /FF 139[24 32 30 1[45 -1[43 1[22 2[22 1[42 32[42 4[58 7[37 37 6[37 4[19 44[{ - .167 SlantFont TeXBase1Encoding ReEncodeFont }14 75.000000 -/Palatino-Roman rf /FG 1 14 df<00000003FFC00000000000003FFFFC0000000000 -01FFFFFF800000000007FFFFFFE0000000001FFE007FF8000000007FE00007FE00000000 -FF000000FF00000003FC0000003FC0000007F00000000FE000000FC000000003F000001F -8000000001F800003F0000000000FC00007E00000000007E0000FC00000000003F0000F8 -00000000001F0001F000000000000F8003F000000000000FC003E0000000000007C007C0 -000000000003E00FC0000000000003F00F80000000000001F01F00000000000000F81F00 -000000000000F81E00000000000000783E000000000000007C3E000000000000007C3C00 -0000000000003C7C000000000000003E7C000000000000003E78000000000000001E7800 -0000000000001E78000000000000001EF8000000000000001FF8000000000000001FF000 -0000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF000 -0000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF000 -0000000000000FF0000000000000000FF8000000000000001FF8000000000000001F7800 -0000000000001E78000000000000001E78000000000000001E7C000000000000003E7C00 -0000000000003E3C000000000000003C3E000000000000007C3E000000000000007C1E00 -000000000000781F00000000000000F81F00000000000000F80F80000000000001F00FC0 -000000000003F007C0000000000003E003E0000000000007C003F000000000000FC001F0 -00000000000F8000F800000000001F0000FC00000000003F00007E00000000007E00003F -0000000000FC00001F8000000001F800000FC000000003F0000007F00000000FE0000003 -FC0000003FC0000000FF000000FF000000007FE00007FE000000001FFE007FF800000000 -07FFFFFFE00000000001FFFFFF8000000000003FFFFC00000000000003FFC0000000484E -7BBB53>13 D E /FH 82[25 51[37 3[42 25 29 29 2[33 42 1[21 -2[21 1[37 21 29 1[30 35 33 16[46 3[42 7[58 50 67[{ - TeXBase1Encoding ReEncodeFont }20 75.000000 /Palatino-Italic -rf /FI 82[25 21[75 37 27[37 42 39 62 42 45 24 32 30 42 -45 41 43 66 22 42 17 22 43 42 25 36 46 33 41 37 6[50 -50 50 75 54 58 46 39 50 59 45 59 62 71 46 54 25 25 62 -57 42 46 58 53 46 58 6[19 37 37 37 37 37 37 37 37 37 -37 45 19 1[19 4[21 58 2[37 1[21 29[45 45 2[{ - TeXBase1Encoding ReEncodeFont }75 75.000000 /Palatino-Roman -rf /FJ 147[26 108[{}1 33.333334 /ZapfDingbats rf /FK -134[37 39 58 1[43 26 29 26 2[43 44 67 18 36 1[18 44 44 -22 38 44 36 1[37 12[42 39 42 1[40 59 1[69 4[53 2[37 55 -51 43 46 20[21 44[{ TeXBase1Encoding ReEncodeFont }33 -75.000000 /StoneSans rf /FL 134[46 50 2[53 38 38 38 1[55 -53 55 82 27 2[27 55 55 35 47 55 43 55 49 7[57 1[91 2[52 -46 2[54 65 62 1[46 2[27 1[62 43 46 63 55 55 62 7[52 52 -52 52 52 52 52 52 52 52 1[26 29 26 44[{ TeXBase1Encoding ReEncodeFont } -49 83.333337 /StoneSans-Bold rf /FM 140[63 59 2[82 87 -1[43 83 1[43 87 2[72 1[66 1[75 9[149 2[92 6[141 1[108 -50 4[91 22[37 46[{ TeXBase1Encoding ReEncodeFont }18 -150.000000 /Palatino-Roman rf /FN 135[174 1[194 213 116 -3[213 194 213 310 116 2[116 3[174 1[155 1[174 20[213 -7[290 2[271 65[{ TeXBase1Encoding ReEncodeFont }16 349.999988 -/Palatino-Bold rf /FO 139[89 89 115[{}2 100.000003 /ZapfDingbats -rf /FP 135[133 1[148 162 88 3[162 148 162 236 88 2[88 -3[133 1[118 1[133 20[162 7[221 2[207 65[{ - TeXBase1Encoding ReEncodeFont }16 266.666669 /Palatino-Bold -rf /FQ 139[67 67 115[{}2 75.000000 /ZapfDingbats rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: Letter - -%%EndSetup -%%Page: 445 1 -445 468 bop 0 0 a @beginspecial @setspecial - gsave .50 setgray newpath 278 10 moveto 0 100 rlineto 132 0 rlineto -0 -100 rlineto -132 0 rlineto closepath fill 1 setgray /StoneSans-Bold -findfont 12 scalefont setfont 296 19 moveto 3 0 (CHAPTER 24) ashow -grestore - -@endspecial -299 355 a Fn(Parsing)84 b(Command-)299 654 y(Line)g(Options)299 -1557 y Fm(From)21 b(the)f(forthcoming)i(book)f(entitled)f(Linux)h -(Application)g(Development)f(by)299 1669 y(Michael)35 -b(K.)h(Johnson)h(and)e(Erik)h(W)l(.)g(T)-11 b(roan,)39 -b(copyright)d(\251)g(1998)e(by)i(Addison)299 1781 y(W)-7 -b(esley)38 b(Longman,)43 b(Inc.,)f(to)d(be)f(published)i(in)e(April,)k -(1998.)77 b(All)38 b(rights)h(re\255)299 1893 y(served.)c(This)24 -b(material)e(is)i(made)g(available)f(with)g(the)h(permission)h(of)f -(the)f(pub\255)299 2005 y(lisher)-5 b(.)34 b(The)21 b(publisher)5 -b(')-5 b(s)23 b(permission)g(is)g(required)f(for)h(reproduction,)g -(storage,)299 2117 y(or)h(transmittal)f(of)h(this)g(material.)299 -2329 y(For)g(more)g(information,)g(see)f(http:/)-14 b(/www)-9 -b(.awl.com/cseng/books/lad/.)299 2541 y FA(Most)41 b(Linux)e(pr)n -(ograms)h(allow)f(the)g(user)g(to)h(specify)h(command\255line)e -(options.)299 2653 y(Such)23 b(options)h(perform)g(a)f(wide)g(variety)g -(of)g(functions)g(but)g(ar)n(e)g(fairly)f(uniform)h(in)299 -2765 y(their)31 b(syntax.)60 b Fm(Short)33 b(options)g -FA(consist)g(of)f(a)g Fr(-)h FA(character)e(followed)h(by)g(a)g(single) -299 2877 y(alphanumeric)25 b(character)-7 b(.)43 b Fm(Long)28 -b(options)p FA(,)g(common)g(in)e(GNU)h(utilities,)g(consist)299 -2989 y(of)f(two)g Fr(-)g FA(characters)g(followed)g(by)g(a)g(string)g -(made)g(up)g(of)g(letters,)h(numbers,)f(and)299 3101 -y(hyphens.)34 b(Either)24 b(type)g(of)g(option)g(may)h(be)e(followed)h -(by)g(an)f(ar)n(gument.)34 b(A)24 b(space)299 3213 y(separates)19 -b(a)f(short)h(option)f(fr)n(om)h(its)g(ar)n(guments;)h(either)d(a)i -(space)g(or)g(an)f Fr(=)g FA(separates)299 3325 y(a)23 -b(long)h(option)g(fr)n(om)g(an)f(ar)n(gument.)299 3537 -y(Ther)n(e)c(ar)n(e)h(many)g(ways)g(of)h(parsing)f(command\255line)g -(options.)34 b(The)19 b(most)j(popular)299 3649 y(method)k(is)g -(parsing)g(the)g Fr(argv)f FA(array)g(by)h(hand.)40 b(The)25 -b Fr(getopt\(\))g FA(and)h Fr(getopt_long\(\))299 3761 -y FA(library)40 b(functions)h(pr)n(ovide)g(some)h(assistance)g(for)f -(option)h(parsing.)86 b Fr(getopt\(\))299 3873 y FA(is)38 -b(pr)n(ovided)h(by)f(many)f(Unix)h(implementations,)j(but)d(it)f -(supports)j(only)d(short)299 3985 y(options.)d(The)22 -b Fr(getopt_long\(\))g FA(function)g(is)h(available)e(on)h(Linux)h(and) -f(allows)h(auto\255)299 4097 y(mated)h(parsing)g(of)f(both)h(short)g -(and)f(long)h(options.)299 4309 y(A)33 b(library)f(called)h(popt)h -(exists)g(speci\002cally)f(for)g(option)g(parsing.)62 -b(It)34 b(includes)e(a)299 4421 y(number)22 b(of)i(advantages)g(over)f -(the)g Fr(getopt\(\))g FA(functions.)3232 4699 y Ft(445)p -eop -%%Page: 446 2 -446 469 bop -187 -116 a Ft(446)118 b FL(Chapter)29 b(24)83 -b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 -4 v 128 83 a FA(\225)100 b(It)33 b(does)h(not)f(make)h(use)f(of)g -(global)g(variables,)h(which)e(allows)h(it)g(to)h(be)f(used)286 -195 y(when)22 b(multiple)h(passes)j(ar)n(e)d(needed)g(to)h(parse)g -Fr(argv)p FA(.)128 407 y(\225)100 b(It)22 b(can)h(parse)f(an)g -(arbitrary)f(array)g(of)i Fr(argv)p FA(\255style)f(elements.)33 -b(This)22 b(allows)g(popt)286 519 y(to)i(be)f(used)h(for)g(parsing)f -(command\255line\255style)h(strings)g(fr)n(om)g(any)f(sour)n(ce.)128 -731 y(\225)100 b(It)30 b(pr)n(ovides)h(a)f(standar)n(d)g(method)g(of)g -(option)g(aliasing.)52 b(Pr)n(ograms)30 b(that)g(use)286 -843 y(popt)c(can)f(easily)g(allow)f(users)h(to)g(add)h(new)e -(command\255line)h(options,)h(which)286 955 y(ar)n(e)k(de\002ned)g(as)h -(combinations)f(of)h(alr)n(eady\255existing)e(options.)55 -b(This)30 b(allows)286 1067 y(the)h(user)h(to)h(de\002ne)e(new)-9 -b(,)33 b(complex)h(behaviors)d(or)h(change)f(the)h(default)f(be\255)286 -1179 y(haviors)23 b(of)h(existing)f(options.)111 1453 -y(Like)h Fr(getopt_long\(\))p FA(,)e(the)i(popt)h(library)d(supports)j -(short)f(and)g(long)f(style)h(options.)111 1665 y(The)29 -b(popt)j(library)d(is)h(highly)f(portable)h(and)g(should)g(work)f(on)h -(any)g(POSIX)g(plat\255)111 1777 y(form.)68 b(The)34 -b(latest)h(version)g(is)g(always)g(available)e(fr)n(om)i(ftp:/)-14 -b(/ftp.r)n(edhat.com/)111 1889 y(pub/r)n(edhat/code/popt/)111 -2100 y(It)33 b(may)f(be)g(r)n(edistributed)f(under)g(either)g(the)h -(GNU)g(General)f(Public)g(License)h(or)111 2213 y(the)24 -b(GNU)g(Library)f(General)f(Public)h(License,)h(at)f(the)h(distributor) -7 b('s)23 b(discr)n(etion.)-187 2541 y Fk(24.1)131 b(Basic)40 -b(popt)j(Usage)p -187 2626 3413 5 v 111 2888 a Fu(24.1.1)59 -b(The)39 b(Option)h(Table)111 3099 y FA(Applications)d(pr)n(ovide)f -(popt)g(with)f(information)f(on)h(their)f(command\255line)h(op\255)111 -3211 y(tions)24 b(thr)n(ough)f(an)g(array)g(of)h Fr(struct)42 -b(poptOption)23 b FA(str)o(uctur)n(es.)111 3417 y Fq(#include)35 -b(<popt.h>)111 3633 y(struct)h(poptOption)e({)258 3741 -y(const)i(char)g(*)g(longName;)f(/*)h(may)g(be)h(NULL)e(*/)258 -3849 y(char)h(shortName;)292 b(/*)36 b(may)g(be)h('\\0')e(*/)258 -3957 y(int)h(argInfo;)258 4065 y(void)g(*)h(arg;)440 -b(/*)36 b(depends)f(on)i(argInfo)e(*/)258 4172 y(int)h(val;)551 -b(/*)36 b(0)h(means)e(do)i(not)f(return,)f(just)h(update)f(flag)h(*/) -111 4280 y(};)p eop -%%Page: 447 3 -447 470 bop 2237 -116 a Fv(24.1)82 b(Basic)23 b(popt)f(Usage)119 -b Ft(447)p 0 -76 3413 4 v 446 71 a FL(Table)27 b(24.1)84 -b Fv(popt)22 b(Argument)i(Types)p 446 103 2820 4 v 446 -120 4 17 v 1167 120 V 2775 120 V 3262 120 V 446 219 4 -100 v 532 190 a Fs(V)-9 b(alue)p 1167 219 V 502 w(Description)p -2775 219 V 1160 w Fq(arg)20 b Fs(T)-7 b(ype)p 3262 219 -V 446 236 4 17 v 1167 236 V 2775 236 V 3262 236 V 446 -239 2820 4 v 446 246 4 7 v 1167 246 V 2775 246 V 3262 -246 V 446 249 2820 4 v 446 266 4 17 v 1167 266 V 2775 -266 V 3262 266 V 446 365 4 100 v 532 336 a Fq(POPT_ARG_NONE)p -1167 365 V 240 w Fw(No)21 b(ar)o(gument)f(is)h(expected)p -2775 365 V 688 w Fq(int)p 3262 365 V 446 465 V 532 436 -a(POPT_ARG_STRING)p 1167 465 V 166 w Fw(No)g(type)g(checking)g(should)h -(be)e(performed)p 2775 465 V 169 w Fq(char)35 b(*)p 3262 -465 V 446 565 V 532 535 a(POPT_ARG_INT)p 1167 565 V 277 -w Fw(An)21 b(integer)f(ar)o(gument)h(is)g(expected)p -2775 565 V 410 w Fq(int)p 3262 565 V 446 664 V 532 635 -a(POPT_ARG_LONG)p 1167 664 V 240 w Fw(A)f(long)i(integer)f(is)g -(expected)p 2775 664 V 652 w Fq(long)p 3262 664 V 446 -681 4 17 v 1167 681 V 2775 681 V 3262 681 V 446 684 2820 -4 v 299 933 a FA(Each)34 b(member)f(of)g(the)g(table)g(de\002nes)g(a)h -(single)f(option)g(that)g(may)h(be)f(passed)i(to)299 -1045 y(the)29 b(pr)n(ogram.)50 b(Long)30 b(and)e(short)i(options)f(ar)n -(e)g(consider)n(ed)h(a)f(single)f(option)i(that)299 1157 -y(may)k(occur)g(in)g(two)g(dif)n(fer)n(ent)f(forms.)65 -b(The)33 b(\002rst)h(two)g(members,)i Fr(longName)e FA(and)299 -1269 y Fr(shortName)p FA(,)25 b(de\002ne)g(the)g(names)h(of)f(the)g -(option;)i(the)e(\002rst)h(is)g(a)g(long)f(name,)g(and)h(the)299 -1381 y(latter)d(is)h(a)g(single)f(character)-7 b(.)299 -1593 y(The)21 b Fr(argInfo)g FA(member)h(tells)g(popt)h(what)e(type)h -(of)g(ar)n(gument)g(is)g(expected)h(after)e(the)299 1705 -y(ar)n(gument.)33 b(If)23 b(no)g(option)g(is)g(expected,)h -Fr(POPT_ARG_NONE)d FA(should)i(be)g(used.)34 b(The)22 -b(r)n(est)299 1817 y(of)i(the)f(valid)g(values)h(ar)n(e)f(summarized)g -(in)h(T)-9 b(able)22 b(24.1.)2355 1783 y Fx(1)299 2029 -y FA(The)j(next)g(element,)g Fr(arg)p FA(,)h(allows)f(popt)i(to)f -(automatically)f(update)h(pr)n(ogram)g(vari\255)299 2141 -y(ables)21 b(when)g(the)g(option)h(is)g(used.)34 b(If)22 -b Fr(arg)f FA(is)h Fr(NULL)p FA(,)g(it)f(is)i(ignor)n(ed)e(and)h(popt)g -(takes)h(no)299 2253 y(special)18 b(action.)33 b(Otherwise,)18 -b(it)g(should)g(point)h(to)f(a)g(variable)f(of)h(the)g(type)g -(indicated)299 2365 y(in)23 b(the)g(right\255most)h(column)g(of)g(T)-9 -b(able)22 b(24.1.)299 2577 y(If)42 b(the)f(option)g(takes)h(no)g(ar)n -(gument)e(\()p Fr(argInfo)h FA(is)h Fr(POPT_ARG_NONE)p -FA(\),)e(the)h(variable)299 2689 y(pointed)21 b(to)g(by)f -Fr(arg)h FA(is)g(set)g(to)g(1)f(when)f(the)h(option)h(is)g(used.)34 -b(If)20 b(the)g(option)h(does)h(take)299 2801 y(an)16 -b(ar)n(gument,)i(the)f(variable)e(that)i Fr(arg)g FA(points)h(to)g(is)f -(updated)h(to)f(r)n(e\003ect)g(the)g(value)f(of)299 2913 -y(the)23 b(ar)n(gument.)34 b(Any)24 b(string)f(is)i(acceptable)e(for)h -Fr(POPT_ARG_STRING)e FA(ar)n(guments,)i(but)299 3025 -y Fr(POPT_ARG_INT)19 b FA(and)h Fr(POPT_ARG_LONG)e FA(ar)n(guments)i -(ar)n(e)g(converted)g(to)g(the)g(appr)n(opriate)299 3137 -y(type,)k(and)f(an)h(err)n(or)f(is)h(r)n(eturned)f(if)g(the)g -(conversion)h(fails.)299 3349 y(The)33 b(\002nal)g(option,)38 -b Fr(val)p FA(,)e(is)f(the)f(value)f(popt's)j(parsing)e(function)f -(should)i(r)n(eturn)299 3461 y(when)26 b(the)h(option)h(is)g(encounter) -n(ed.)45 b(If)27 b(it)h(is)g(0,)g(the)f(parsing)h(function)f(parses)h -(the)299 3573 y(next)23 b(command\255line)h(ar)n(gument)f(rather)f -(than)h(r)n(eturn.)299 3785 y(The)c(\002nal)g(str)o(uctur)n(e)h(in)f -(the)h(table)f(should)h(have)f(all)g(the)h(pointer)g(values)f(set)h(to) -h Fr(NULL)299 3897 y FA(and)i(all)h(the)f(arithmetic)g(values)g(set)h -(to)g(0,)g(marking)f(the)g(end)h(of)g(the)f(table.)p -299 4234 897 5 v 299 4315 a Fw(1.)29 b Fq(getopt\(\))g -Fw(connoisseurs)j(will)f(note)g(that)f Fq(argInfo)f Fw(is)i(the)f(only) -i(\002eld)e(of)h Fq(struct)46 b(poptOption)391 4407 y -Fw(that)29 b(is)g(not)g(dir)o(ectly)f(analogous)i(to)f(a)f(\002eld)h -(in)g(the)g Fq(getopt_long\(\))d Fw(ar)o(gument)i(table.)53 -b(The)391 4498 y(similarity)22 b(between)e(the)h(two)g(allows)h(for)e -(easy)h(transitions)h(fr)o(om)e Fq(getopt_long\(\))e -Fw(to)j(popt.)p eop -%%Page: 448 4 -448 471 bop -187 -116 a Ft(448)118 b FL(Chapter)29 b(24)83 -b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 -4 v 111 85 a Fu(24.1.2)59 b(Creating)39 b(a)f(Context)111 -297 y FA(popt)31 b(can)f(interleave)e(the)h(parsing)g(of)h(multiple)g -(command\255line)f(sets.)53 b(It)30 b(allows)111 409 -y(this)e(by)g(keeping)g(all)f(the)g(state)i(information)d(for)i(a)g -(particular)f(set)h(of)g(command\255)111 521 y(line)22 -b(ar)n(guments)h(in)f(a)h Fr(poptContext)e FA(data)i(str)o(uctur)n(e,)g -(an)f(opaque)h(type)g(that)g(should)111 633 y(not)h(be)f(modi\002ed)i -(outside)f(the)f(popt)i(library)-11 b(.)111 845 y(New)24 -b(popt)h(contexts)g(ar)n(e)e(cr)n(eated)h(by)g Fr(poptGetContext\(\))p -FA(.)111 1051 y Fq(#include)35 b(<popt.h>)111 1266 y(poptContext)g -(poptGetContext\(char)d(*)k(name,)g(int)g(argc,)f(char)h(**)h(argv,) -1104 1374 y(struct)e(poptOption)g(*)h(options,)f(int)h(flags\);)111 -1586 y FA(The)26 b(\002rst)h(parameter)-7 b(,)26 b Fr(name)p -FA(,)h(is)g(used)g(only)g(for)f(alias)h(handling)e(\(discussed)j -(later\).)111 1698 y(It)h(should)f(be)f(the)h(name)f(of)h(the)g -(application)g(whose)f(options)i(ar)n(e)e(being)g(parsed,)111 -1810 y(or)e(should)f(be)g Fr(NULL)g FA(if)g(no)g(option)h(aliasing)e -(is)i(desir)n(ed.)36 b(The)24 b(next)g(two)g(ar)n(guments)111 -1922 y(specify)g(the)f(command\255line)g(ar)n(guments)g(to)h(parse.)34 -b(These)22 b(ar)n(e)h(generally)f(passed)111 2034 y(to)37 -b Fr(poptGetContext\(\))e FA(exactly)i(as)g(they)f(wer)n(e)g(passed)i -(to)f(the)f(pr)n(ogram's)h Fr(main\(\))111 2146 y FA(function.)50 -b(The)29 b Fr(options)f FA(parameter)h(points)h(to)g(the)f(table)f(of)i -(command\255line)e(op\255)111 2259 y(tions,)33 b(which)d(was)h -(described)h(in)e(the)h(pr)n(evious)g(section.)56 b(The)30 -b(\002nal)g(parameter)-7 b(,)111 2371 y Fr(flags)p FA(,)21 -b(is)g(not)g(curr)n(ently)e(used)i(but)g(should)f(always)g(be)h -(speci\002ed)g(as)g(0)f(for)h(compat\255)111 2483 y(ibility)i(with)g -(futur)n(e)g(versions)h(of)g(the)f(popt)i(library)-11 -b(.)111 2694 y(A)26 b Fr(poptContext)f FA(keeps)h(track)g(of)g(which)e -(options)j(have)d(alr)n(eady)h(been)g(parsed)h(and)111 -2807 y(which)h(r)n(emain,)i(among)f(other)f(things.)47 -b(If)28 b(a)g(pr)n(ogram)g(wishes)g(to)h(r)n(estart)f(option)111 -2919 y(pr)n(ocessing)23 b(of)f(a)g(set)g(of)g(ar)n(guments,)g(it)f(can) -h(r)n(eset)g(the)f Fr(poptContext)g FA(by)h(passing)g(the)111 -3031 y(context)j(as)f(the)f(sole)h(ar)n(gument)f(to)h -Fr(poptResetContext\(\))p FA(.)111 3242 y(When)j(ar)n(gument)g(pr)n -(ocessing)h(is)g(complete,)h(the)d(pr)n(ocess)j(should)f(fr)n(ee)e(the) -h Fr(popt-)111 3354 y(Context)22 b FA(as)h(it)f(contains)h(dynamically) -f(allocated)g(components.)35 b(The)21 b Fr(poptFreeCon-)111 -3467 y(text\(\))32 b FA(function)g(takes)h(a)f Fr(poptContext)g -FA(as)h(its)g(sole)g(ar)n(gument)e(and)i(fr)n(ees)f(the)g(r)n(e\255)111 -3579 y(sour)n(ces)25 b(the)e(context)i(is)f(using.)111 -3790 y(Her)n(e)g(ar)n(e)f(the)h(pr)n(ototypes)h(of)f(both)f -Fr(poptResetContext\(\))f FA(and)i Fr(poptFreeContext\(\))p -FA(.)111 3996 y Fq(#include)35 b(<popt.h>)111 4212 y(void)h -(poptFreeContext\(poptContext)31 b(con\);)111 4320 y(void)36 -b(poptResetContext\(poptContext)30 b(con\);)p eop -%%Page: 449 5 -449 472 bop 2237 -116 a Fv(24.1)82 b(Basic)23 b(popt)f(Usage)119 -b Ft(449)p 0 -76 3413 4 v 299 85 a Fu(24.1.3)58 b(Parsing)39 -b(the)h(Command)e(Line)299 297 y FA(After)26 b(an)g(application)h(has)g -(cr)n(eated)f(a)h Fr(poptContext)p FA(,)f(it)h(may)g(begin)e(parsing)i -(ar)n(gu\255)299 409 y(ments.)34 b(The)23 b Fr(poptGetNextOpt\(\))f -FA(performs)i(the)g(actual)f(ar)n(gument)g(parsing.)299 -615 y Fq(#include)35 b(<popt.h>)299 831 y(int)h -(poptGetNextOpt\(poptContext)31 b(con\);)299 1042 y FA(T)-9 -b(aking)44 b(the)h(context)h(as)g(its)f(sole)h(ar)n(gument,)k(this)45 -b(function)g(parses)h(the)f(next)299 1154 y(command\255line)34 -b(ar)n(gument)f(found.)65 b(After)34 b(\002nding)f(the)h(next)g(ar)n -(gument)f(in)h(the)299 1266 y(option)29 b(table,)g(the)f(function)g -(\002lls)g(in)g(the)g(object)i(pointed)e(to)h(by)g(the)f(option)h -(table)299 1379 y(entry's)18 b Fr(arg)g FA(pointer)h(if)f(it)h(is)g -(not)f Fr(NULL)p FA(.)g(If)h(the)f Fr(val)h FA(entry)f(for)g(the)g -(option)h(is)g(non\2550,)g(the)299 1491 y(function)h(then)g(r)n(eturns) -g(that)g(value.)32 b(Otherwise,)20 b Fr(poptGetNextOpt\(\))f -FA(continues)i(on)299 1603 y(to)j(the)f(next)h(ar)n(gument.)299 -1814 y Fr(poptGetNextOpt\(\))g FA(r)n(eturns)h(\2551)g(when)f(the)h -(\002nal)g(ar)n(gument)g(has)h(been)e(parsed,)j(and)299 -1926 y(other)20 b(negative)f(values)h(when)f(err)n(ors)i(occur)-7 -b(.)33 b(This)20 b(makes)h(it)f(a)h(good)g(idea)f(to)h(keep)299 -2039 y(the)i Fr(val)h FA(elements)f(in)g(the)h(options)g(table)f(gr)n -(eater)g(than)g(0.)299 2250 y(If)48 b(all)f(of)h(the)f(command\255line) -h(options)g(ar)n(e)g(handled)f(thr)n(ough)g Fr(arg)g -FA(pointers,)299 2362 y(command\255line)23 b(parsing)h(is)g(r)n(educed) -g(to)g(the)f(following)g(line)g(of)g(code:)299 2568 y -Fq(rc)36 b(=)h(poptGetNextOpt\(poptcon\);)299 2780 y -FA(Many)21 b(applications)g(r)n(equir)n(e)g(mor)n(e)g(complex)h -(command\255line)f(parsing)g(than)f(this,)299 2892 y(however)-7 -b(,)22 b(and)i(use)f(the)g(following)g(str)o(uctur)n(e.)299 -3097 y Fq(while)35 b(\(\(rc)h(=)h(poptGetNextOpt\(poptcon\)\))31 -b(>)36 b(0\))h({)446 3205 y(switch)e(\(rc\))h({)593 3313 -y(/*)g(specific)f(arguments)g(are)h(handled)f(here)h(*/)446 -3421 y(})299 3529 y(})299 3741 y FA(When)f(r)n(eturned)g(options)i(ar)n -(e)f(handled,)i(the)e(application)g(needs)g(to)g(know)g(the)299 -3853 y(value)21 b(of)h(any)g(ar)n(guments)g(that)g(wer)n(e)f -(speci\002ed)i(after)f(the)g(option.)34 b(Ther)n(e)20 -b(ar)n(e)i(two)299 3965 y(ways)d(to)g(discover)g(them.)32 -b(One)18 b(is)i(to)f(ask)g(popt)g(to)h(\002ll)e(in)g(a)g(variable)f -(with)h(the)g(value)299 4077 y(of)28 b(the)h(option)f(thr)n(ough)g(the) -g(option)h(table's)f Fr(arg)g FA(elements.)48 b(The)28 -b(other)g(is)h(to)f(use)299 4189 y Fr(poptGetOptArg\(\))p -FA(.)p eop -%%Page: 450 6 -450 473 bop -187 -116 a Ft(450)118 b FL(Chapter)29 b(24)83 -b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 -4 v 111 170 a Fq(#include)35 b(<popt.h>)111 386 y(char)h(*)h -(poptGetOptArg\(poptContext)31 b(con\);)111 598 y FA(This)c(function)f -(r)n(eturns)h(the)g(ar)n(gument)f(given)g(for)h(the)g(\002nal)f(option) -i(r)n(eturned)e(by)111 710 y Fr(poptGetNextOpt\(\))p -FA(,)c(or)i(it)g(r)n(eturns)f Fr(NULL)g FA(if)h(no)f(ar)n(gument)g(was) -h(speci\002ed.)111 1073 y Fu(24.1.4)59 b(Leftover)38 -b(Arguments)111 1285 y FA(Many)24 b(applications)g(take)f(an)h -(arbitrary)e(number)g(of)i(command\255line)f(ar)n(guments,)111 -1397 y(such)j(as)g(a)g(list)g(of)g(\002le)f(names.)40 -b(When)25 b(popt)i(encounters)e(an)g(ar)n(gument)g(that)g(does)111 -1509 y(not)k(begin)f(with)g(a)h Fr(-)p FA(,)h(it)f(assumes)h(it)f(is)g -(such)g(an)f(ar)n(gument)g(and)h(adds)h(it)f(to)g(a)g(list)111 -1621 y(of)i(leftover)f(ar)n(guments.)55 b(Thr)n(ee)30 -b(functions)g(allow)g(applications)h(to)h(access)g(such)111 -1733 y(ar)n(guments:)111 2007 y Fr(char)43 b(*)g -(poptGetArg\(poptContext)d(con\);)411 2119 y FA(This)35 -b(function)f(r)n(eturns)g(the)g(next)h(leftover)f(ar)n(gument)g(and)g -(marks)i(it)e(as)411 2231 y(pr)n(ocessed.)111 2443 y -Fr(char)43 b(*)g(poptPeekArg\(poptContext)d(con\);)411 -2555 y FA(The)15 b(next)h(leftover)f(ar)n(gument)g(is)i(r)n(eturned)d -(but)i(not)g(marked)g(as)g(pr)n(ocessed.)411 2667 y(This)39 -b(allows)g(an)f(application)h(to)h(look)f(ahead)g(into)g(the)f(ar)n -(gument)h(list,)411 2779 y(without)23 b(modifying)h(the)f(list.)111 -2991 y Fr(char)43 b(**)f(poptGetArgs\(poptContext)f(con\);)411 -3103 y FA(All)16 b(the)g(leftover)f(ar)n(guments)g(ar)n(e)h(r)n -(eturned)e(in)i(a)f(manner)g(identical)g(to)h Fr(argv)p -FA(.)411 3215 y(The)j(\002nal)g(element)g(in)g(the)g(r)n(eturned)g -(array)g(points)h(to)g Fr(NULL)p FA(,)f(indicating)g(the)411 -3327 y(end)24 b(of)g(the)f(ar)n(guments.)-187 3680 y -Fk(24.2)131 b(Error)41 b(Handling)p -187 3765 3413 5 -v 111 4027 a FA(All)29 b(of)g(the)g(popt)h(functions)e(that)h(can)g(r)n -(eturn)e(err)n(ors)i(r)n(eturn)f(integers.)49 b(When)28 -b(an)111 4139 y(err)n(or)d(occurs,)i(a)e(negative)f(err)n(or)h(code)h -(is)f(r)n(eturned.)38 b(T)-9 b(able)24 b(24.2)h(summarizes)g(the)111 -4251 y(err)n(or)f(codes)g(that)g(occur)-7 b(.)34 b(Her)n(e)24 -b(is)g(a)g(mor)n(e)g(detailed)f(discussion)i(of)f(each)f(err)n(or)-7 -b(.)p eop -%%Page: 451 7 -451 474 bop 2329 -116 a Fv(24.2)82 b(Error)23 b(Handling)118 -b Ft(451)p 0 -76 3413 4 v 421 71 a FL(Table)27 b(24.2)84 -b Fv(popt)22 b(Errors)p 421 103 2870 4 v 421 120 4 17 -v 1399 120 V 3287 120 V 421 219 4 100 v 507 190 a Fs(Error)p -1399 219 V 785 w(Description)p 3287 219 V 421 236 4 17 -v 1399 236 V 3287 236 V 421 239 2870 4 v 421 246 4 7 -v 1399 246 V 3287 246 V 421 249 2870 4 v 421 266 4 17 -v 1399 266 V 3287 266 V 421 365 4 100 v 507 336 a Fq(POPT_ERROR_NOARG)p -1399 365 V 386 w Fw(An)f(ar)o(gument)f(is)h(missing)h(for)f(an)g -(option.)p 3287 365 V 421 465 V 507 436 a Fq(POPT_ERROR_BADOPT)p -1399 465 V 349 w Fw(An)g(option's)h(ar)o(gument)e(could)h(not)h(be)e -(parsed.)p 3287 465 V 421 565 V 507 535 a Fq(POPT_ERROR_OPTSTOODEEP)p -1399 565 V 164 w Fw(Option)i(aliasing)f(is)g(nested)g(too)g(deeply)-9 -b(.)p 3287 565 V 421 664 V 507 635 a Fq(POPT_ERROR_BADQUOTE)p -1399 664 V 275 w Fw(Quotations)22 b(do)f(not)h(match.)p -3287 664 V 421 764 V 507 735 a Fq(POPT_ERROR_BADNUMBER)p -1399 764 V 238 w Fw(An)f(option)h(could)f(not)g(be)g(converted)f(to)h -(a)f(number)-6 b(.)p 3287 764 V 421 863 V 507 834 a Fq -(POPT_ERROR_OVERFLOW)p 1399 863 V 275 w Fw(A)21 b(given)g(number)g(was) -f(too)i(big)f(or)g(too)g(small.)p 3287 863 V 421 880 -4 17 v 1399 880 V 3287 880 V 421 883 2870 4 v 299 1132 -a Fr(POPT_ERROR_NOARG)599 1244 y FA(An)c(option)h(that)f(r)n(equir)n -(es)h(an)f(ar)n(gument)f(was)i(speci\002ed)g(on)f(the)g(command)599 -1357 y(line,)40 b(but)d(no)g(ar)n(gument)g(was)g(given.)75 -b(This)37 b(can)h(be)f(r)n(eturned)f(only)h(by)599 1469 -y Fr(poptGetNextOpt\(\))p FA(.)299 1680 y Fr(POPT_ERROR_BADOPT)599 -1792 y FA(An)26 b(option)g(was)h(speci\002ed)f(in)g Fr(argv)g -FA(but)g(is)g(not)g(in)g(the)g(option)g(table.)41 b(This)599 -1905 y(err)n(or)23 b(can)h(be)f(r)n(eturned)g(only)g(fr)n(om)h -Fr(poptGetNextOpt\(\))p FA(.)299 2116 y Fr(POPT_ERROR_OPTSTOODEEP)599 -2228 y FA(A)f(set)h(of)f(option)g(aliases)g(is)h(nested)f(too)h(deeply) --11 b(.)34 b(Curr)n(ently)-11 b(,)22 b(popt)i(follows)599 -2340 y(options)30 b(only)f(10)g(levels)g(to)h(pr)n(event)f(in\002nite)f -(r)n(ecursion.)50 b(Only)29 b Fr(poptGet-)599 2452 y(NextOpt\(\))23 -b FA(can)g(r)n(eturn)g(this)h(err)n(or)-7 b(.)299 2664 -y Fr(POPT_ERROR_BADQUOTE)599 2776 y FA(A)15 b(parsed)g(string)g(has)g -(a)g(quotation)g(mismatch)g(\(such)g(as)g(a)g(single)g(quotation)599 -2888 y(mark\).)62 b Fr(poptParseArgvString\(\))p FA(,)33 -b Fr(poptReadConfigFile\(\))p FA(,)g(or)g Fr(poptReadDe-)599 -3000 y(faultConfig\(\))22 b FA(can)i(r)n(eturn)e(this)i(err)n(or)-7 -b(.)299 3212 y Fr(POPT_ERROR_BADNUMBER)599 3324 y FA(A)38 -b(conversion)g(fr)n(om)g(a)g(string)g(to)h(a)f(number)f(\()p -Fr(int)h FA(or)g Fr(long)p FA(\))f(failed)h(due)599 3436 -y(to)28 b(the)g(string)g(containing)f(nonnumeric)f(characters.)47 -b(This)28 b(occurs)h(when)599 3548 y Fr(poptGetNextOpt\(\))c -FA(is)j(pr)n(ocessing)g(an)f(ar)n(gument)f(of)h(type)g -Fr(POPT_ARG_INT)f FA(or)599 3660 y Fr(POPT_ARG_LONG)p -FA(.)299 3872 y Fr(POPT_ERROR_OVERFLOW)599 3984 y FA(A)g -(string\255to\255number)f(conversion)g(failed)g(because)h(the)f(number) -g(was)h(too)599 4096 y(lar)n(ge)41 b(or)h(too)g(small.)88 -b(Like)42 b Fr(POPT_ERROR_BADNUMBER)p FA(,)d(this)j(err)n(or)f(can)h -(oc\255)599 4208 y(cur)28 b(only)h(when)e Fr(poptGetNextOpt\(\))g -FA(is)i(pr)n(ocessing)h(an)e(ar)n(gument)g(of)h(type)599 -4320 y Fr(POPT_ARG_INT)22 b FA(or)i Fr(POPT_ARG_LONG)p -FA(.)p eop -%%Page: 452 8 -452 475 bop -187 -116 a Ft(452)118 b FL(Chapter)29 b(24)83 -b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 -4 v 111 83 a Fr(POPT_ERROR_ERRNO)411 195 y FA(A)36 b(system)g(call)f(r) -n(eturned)f(with)h(an)f(err)n(or)-7 b(,)37 b(and)e Fr(errno)g -FA(still)g(contains)g(the)411 307 y(err)n(or)23 b(fr)n(om)h(the)f -(system)i(call.)34 b(Both)24 b Fr(poptReadConfigFile\(\))d -FA(and)j Fr(poptRead-)411 419 y(DefaultConfig\(\))f FA(can)g(r)n(eturn) -g(this)h(err)n(or)-7 b(.)111 656 y(T)e(wo)38 b(functions)f(ar)n(e)h -(available)e(to)i(make)g(it)f(easy)h(for)g(applications)g(to)g(pr)n -(ovide)111 768 y(good)25 b(err)n(or)e(messages.)111 1042 -y Fr(const)43 b(char)f(*)h(poptStrerror\(const)e(int)h(error\);)411 -1154 y FA(This)18 b(function)g(takes)h(a)f(popt)h(err)n(or)f(code)h -(and)g(r)n(eturns)e(a)i(string)f(describing)411 1266 -y(the)24 b(err)n(or)-7 b(,)23 b(just)h(as)g(with)f(the)g(standar)n(d)i -Fr(strerror\(\))d FA(function.)111 1478 y Fr(char)43 -b(*)g(poptBadOption\(poptContext)d(con,)i(int)h(flags\);)411 -1590 y FA(If)32 b(an)e(err)n(or)g(occurr)n(ed)i(during)e -Fr(poptGetNextOpt\(\))p FA(,)h(this)g(function)g(r)n(eturns)411 -1702 y(the)38 b(option)g(that)g(caused)h(the)e(err)n(or)-7 -b(.)77 b(If)38 b(the)f Fr(flags)h FA(ar)n(gument)f(is)i(set)f(to)411 -1814 y Fr(POPT_BADOPTION_NOALIAS)p FA(,)e(the)i(outermost)h(option)f -(is)h(r)n(eturned.)76 b(Other)n(\255)411 1926 y(wise,)31 -b Fr(flags)e FA(should)h(be)f(0,)i(and)e(the)g(option)h(that)f(is)h(r)n -(eturned)f(may)h(have)411 2038 y(been)23 b(speci\002ed)i(thr)n(ough)d -(an)i(alias.)111 2275 y(These)16 b(two)h(functions)f(make)h(popt)g(err) -n(or)f(handling)g(trivial)f(for)i(most)h(applications.)111 -2387 y(When)26 b(an)f(err)n(or)g(is)h(detected)g(fr)n(om)g(most)h(of)f -(the)f(functions,)h(an)f(err)n(or)g(message)h(is)111 -2499 y(printed)35 b(along)g(with)g(the)g(err)n(or)f(string)i(fr)n(om)f -Fr(poptStrerror\(\))p FA(.)68 b(When)35 b(an)f(err)n(or)111 -2611 y(occurs)26 b(during)e(ar)n(gument)h(parsing,)g(code)g(similiar)g -(to)g(the)g(following)f(displays)i(a)111 2723 y(useful)d(err)n(or)g -(message.)111 2929 y Fq(fprintf\(stderr,)34 b("\045s:)h(\045s\\n",)405 -3037 y(poptBadOption\(optCon,)d(POPT_BADOPTION_NOALIAS\),)405 -3144 y(poptStrerror\(rc\)\);)-187 3475 y Fk(24.3)131 -b(Option)42 b(Aliasing)p -187 3560 3413 5 v 111 3822 -a FA(One)21 b(of)h(the)f(primary)g(bene\002ts)f(of)i(using)f(popt)h -(over)f Fr(getopt\(\))g FA(is)h(the)f(ability)f(to)i(use)111 -3934 y(option)30 b(aliasing.)49 b(This)29 b(lets)h(the)e(user)h -(specify)h(options)g(that)f(popt)h(expands)g(into)111 -4046 y(other)22 b(options)g(when)f(they)h(ar)n(e)f(speci\002ed.)35 -b(If)22 b(the)f(standar)n(d)i(gr)n(ep)f(pr)n(ogram)h(made)111 -4158 y(use)j(of)g(popt,)h(users)f(could)h(add)f(a)g Fr(--text)f -FA(option)h(that)g(expanded)g(to)g Fr(-i)45 b(-n)g(-E)g(-2)111 -4270 y FA(to)25 b(let)e(them)h(mor)n(e)g(easily)f(\002nd)h(information) -e(in)h(text)h(\002les.)p eop -%%Page: 453 9 -453 476 bop 2298 -116 a Fv(24.3)81 b(Option)22 b(Aliasing)118 -b Ft(453)p 0 -76 3413 4 v 299 85 a Fu(24.3.1)58 b(Specifying)40 -b(Aliases)299 297 y FA(Aliases)18 b(ar)n(e)e(normally)h(speci\002ed)h -(in)f(two)g(places:)32 b(/etc/popt)18 b(and)f(the)g(.popt)h(\002le)f -(in)299 409 y(the)25 b(user)7 b('s)25 b(home)h(dir)n(ectory)f(\(found)g -(thr)n(ough)g(the)g Fr(HOME)g FA(envir)n(onment)f(variable\).)299 -521 y(Both)33 b(\002les)h(have)e(the)h(same)h(format,)h(an)e(arbitrary) -f(number)g(of)h(lines)g(formatted)299 633 y(like)23 b(this:)299 -845 y Fj(appname)42 b Fr(alias)g Fj(newoption)g(expansion)299 -1057 y FA(The)24 b Fj(appname)h FA(is)h(the)f(name)g(of)h(the)f -(application,)h(which)e(must)j(be)e(the)g(same)h(as)g(the)299 -1169 y Fr(name)e FA(parameter)g(passed)i(to)f Fr(poptGetContext\(\))p -FA(.)36 b(This)24 b(allows)g(each)g(\002le)g(to)i(specify)299 -1281 y(aliases)e(for)h(multiple)f(pr)n(ograms.)37 b(The)24 -b Fr(alias)g FA(keywor)n(d)g(speci\002es)i(that)e(an)g(alias)g(is)299 -1393 y(being)h(de\002ned;)i(curr)n(ently)f(popt)h(con\002guration)e -(\002les)i(support)g(only)f(aliases,)h(but)299 1505 y(other)i -(abilities)h(may)g(be)g(added)g(in)g(the)g(futur)n(e.)52 -b(The)29 b(next)h(option)g(is)g(the)g(option)299 1617 -y(that)d(should)h(be)g(aliased,)g(and)g(it)g(may)g(be)f(either)g(a)h -(short)g(or)f(a)h(long)g(option.)46 b(The)299 1729 y(r)n(est)29 -b(of)h(the)e(line)h(speci\002es)h(the)e(expansion)h(for)g(the)g(alias.) -50 b(It)30 b(is)f(parsed)h(similarly)299 1841 y(to)f(a)g(shell)f -(command,)j(which)d(allows)h Fr(\\)p FA(,)h Fr(")p FA(,)g(and)f -Fr(')g FA(to)g(be)g(used)g(for)g(quoting.)49 b(If)29 -b(a)299 1953 y(backslash)22 b(is)g(the)g(\002nal)f(character)g(on)g(a)h -(line,)f(the)h(next)f(line)g(in)h(the)f(\002le)g(is)i(assumed)299 -2066 y(to)28 b(be)f(a)g(logical)g(continuation)f(of)i(the)f(line)f -(containing)h(the)g(backslash,)h(just)g(as)g(in)299 2178 -y(shell.)299 2389 y(The)i(following)g(entry)h(would)f(add)i(a)f -Fr(--text)g FA(option)g(to)h(the)e Fr(grep)h FA(command,)j(as)299 -2501 y(suggested)24 b(at)g(the)f(beginning)f(of)i(this)g(section.)299 -2713 y Fr(grep)42 b(alias)h(--text)f(-i)h(-n)f(-E)h(-2)299 -3068 y Fu(24.3.2)58 b(Enabling)39 b(Aliases)299 3279 -y FA(An)21 b(application)f(must)i(enable)d(alias)h(expansion)h(for)g(a) -f Fr(poptContext)g FA(befor)n(e)g(calling)299 3391 y -Fr(poptGetNextArg\(\))33 b FA(for)i(the)g(\002rst)g(time.)68 -b(Ther)n(e)34 b(ar)n(e)g(thr)n(ee)h(functions)f(that)h(de\002ne)299 -3503 y(aliases)23 b(for)h(a)g(context.)299 3777 y Fr(int)42 -b(poptReadDefaultConfig\(poptContext)e(con,)i(int)h(flags\);)599 -3889 y FA(This)d(function)f(r)n(eads)h(aliases)g(fr)n(om)h(/etc/popt)g -(and)f(the)g(.popt)h(\002le)f(in)599 4002 y(the)29 b(user)7 -b('s)29 b(home)g(dir)n(ectory)-11 b(.)53 b(Curr)n(ently)-11 -b(,)29 b Fr(flags)g FA(should)h(be)f Fr(NULL)p FA(,)g(as)g(it)h(is)599 -4114 y(pr)n(ovided)24 b(only)g(for)f(futur)n(e)g(expansion.)p -eop -%%Page: 454 10 -454 477 bop -187 -116 a Ft(454)118 b FL(Chapter)29 b(24)83 -b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 -4 v 111 83 a Fr(int)43 b(poptReadConfigFile\(poptContext)c(con,)k(char) -f(*)h(fn\);)411 195 y FA(The)17 b(\002le)h(speci\002ed)h(by)f -Fr(fn)g FA(is)g(opened)g(and)g(parsed)h(as)f(a)g(popt)h -(con\002guration)411 307 y(\002le.)68 b(This)35 b(allows)f(pr)n(ograms) -i(to)g(use)f(pr)n(ogram\255speci\002c)h(con\002guration)411 -419 y(\002les.)111 631 y Fr(int)43 b(poptAddAlias\(poptContext)d(con,)j -(struct)f(poptAlias)g(alias,)g(int)g(flags\);)411 743 -y FA(Occasionally)-11 b(,)37 b(pr)n(ocesses)f(want)d(to)h(specify)g -(aliases)g(without)f(having)f(to)411 855 y(r)n(ead)24 -b(them)f(fr)n(om)h(a)f(con\002guration)f(\002le.)34 b(This)23 -b(function)f(adds)i(a)g(new)e(alias)411 967 y(to)39 b(a)f(context.)77 -b(The)38 b Fr(flags)f FA(ar)n(gument)h(should)g(be)f(0,)42 -b(as)c(it)g(is)h(curr)n(ently)411 1079 y(r)n(eserved)21 -b(for)g(futur)n(e)e(expansion.)33 b(The)20 b(new)g(alias)h(is)g -(speci\002ed)g(as)h(a)e Fr(struct)411 1191 y(poptAlias)p -FA(,)j(which)g(is)h(de\002ned)f(as:)411 1388 y Fq(struct)36 -b(poptAlias)e({)558 1496 y(char)i(*)h(longName;)439 b(/*)36 -b(may)g(be)g(NULL)g(*/)558 1604 y(char)g(shortName;)476 -b(/*)36 b(may)g(be)g('\\0')g(*/)558 1712 y(int)g(argc;)558 -1820 y(char)g(**)h(argv;)550 b(/*)36 b(must)g(be)g(free\(\)able)f(*/) -411 1927 y(};)411 2139 y FA(The)d(\002rst)h(two)g(elements,)i -Fr(longName)d FA(and)g Fr(shortName)p FA(,)j(specify)e(the)g(option)411 -2251 y(that)23 b(is)g(aliased.)33 b(The)22 b(\002nal)g(two,)h -Fr(argc)f FA(and)g Fr(argv)p FA(,)h(de\002ne)f(the)g(expansion)g(to)411 -2363 y(use)i(when)e(the)i(aliases)f(option)h(is)g(encounter)n(ed.)-187 -2716 y Fk(24.4)131 b(Parsing)41 b(Argument)f(Strings)p --187 2801 3413 5 v 111 3063 a FA(Although)21 b(popt)i(is)g(usually)e -(used)h(for)f(parsing)h(ar)n(guments)g(alr)n(eady)f(divided)h(into)111 -3175 y(an)e Fr(argv)p FA(\255style)f(array)-11 b(,)20 -b(some)h(pr)n(ograms)g(need)e(to)h(parse)g(strings)h(that)e(ar)n(e)h -(formatted)111 3287 y(identically)30 b(to)g(command)h(lines.)52 -b(T)-9 b(o)30 b(facilitate)f(this,)j(popt)f(pr)n(ovides)g(a)f(function) -111 3399 y(that)f(parses)h(a)g(string)f(into)g(an)g(array)f(of)h -(string,)i(using)e(r)o(ules)g(similiar)g(to)g(normal)111 -3512 y(shell)24 b(parsing.)111 3717 y Fq(#include)35 -b(<popt.h>)111 3933 y(int)h(poptParseArgvString\(char)31 -b(*)37 b(s,)f(int)g(*)h(argcPtr,)e(char)h(***)g(argvPtr\);)111 -4145 y FA(The)19 b(string)h Fr(s)g FA(is)g(parsed)h(into)f(an)f -Fr(argv)p FA(\255style)h(array)-11 b(.)32 b(The)19 b(integer)g(pointed) -h(to)g(by)g(the)111 4257 y(second)33 b(parameter)-7 b(,)32 -b Fr(argcPtr)p FA(,)h(contains)e(the)g(number)g(of)g(elements)g -(parsed,)j(and)111 4369 y(the)c(pointer)h(pointed)f(to)h(by)g(the)f -(\002nal)f(parameter)h(is)h(set)g(to)g(point)g(to)g(the)f(newly)p -eop -%%Page: 455 11 -455 478 bop 2154 -116 a Fv(24.6)82 b(Sample)23 b(Application)115 -b Ft(455)p 0 -76 3413 4 v 299 83 a FA(cr)n(eated)28 b(array)-11 -b(.)45 b(The)27 b(array)g(is)h(dynamically)g(allocated)f(and)h(should)f -(be)h Fr(free\(\))p FA(ed)299 195 y(when)22 b(the)i(application)f(is)h -(\002nished)f(with)g(it.)299 407 y(The)i Fr(argvPtr)h -FA(cr)n(eated)h(by)f Fr(poptParseArgvString\(\))e FA(is)j(suitable)f -(to)h(pass)g(dir)n(ectly)g(to)299 519 y Fr(poptGetContext\(\))p -FA(.)0 838 y Fk(24.5)132 b(Handling)41 b(Extra)f(Arguments)p -0 923 3413 5 v 299 1185 a FA(Some)33 b(applications)f(implement)h(the)f -(equivalent)e(of)j(option)f(aliasing)g(but)g(need)299 -1297 y(to)39 b(do)h(so)g(thr)n(ough)e(special)i(logic.)80 -b(The)38 b Fr(poptStuffArgs\(\))g FA(function)g(allows)h(an)299 -1409 y(application)24 b(to)g(insert)f(new)g(ar)n(guments)g(into)h(the)f -(curr)n(ent)g Fr(poptContext)p FA(.)299 1615 y Fq(#include)35 -b(<popt.h>)299 1831 y(int)h(poptStuffArgs\(poptContext)31 -b(con,)36 b(char)f(**)i(argv\);)299 2042 y FA(The)k(passed)j -Fr(argv)e FA(must)h(have)f(a)h Fr(NULL)f FA(pointer)g(as)h(its)g -(\002nal)e(element.)90 b(When)299 2154 y Fr(poptGetNextOpt\(\))39 -b FA(is)j(next)f(called,)k(the)c(\223stuf)n(fed\224)f(ar)n(guments)h -(ar)n(e)g(the)g(\002rst)g(to)299 2266 y(be)g(parsed.)87 -b(popt)43 b(r)n(eturns)e(to)g(the)g(normal)g(ar)n(guments)g(once)g(all) -g(the)g(stuf)n(fed)299 2378 y(ar)n(guments)23 b(have)g(been)g -(exhausted.)0 2707 y Fk(24.6)132 b(Sample)41 b(Application)p -0 2792 V 299 3054 a FA(Robin,)28 b(the)g(sample)g(application)g(on)g -(pages)h(274\226281)d(of)i(Chapter)f(15,)i(uses)f(popt)299 -3166 y(for)36 b(its)i(ar)n(gument)e(parsing.)73 b(It)37 -b(pr)n(ovides)h(a)e(good)i(example)f(of)g(how)f(the)g(popt)299 -3278 y(library)22 b(is)i(generally)f(used.)299 3489 y(RPM,)31 -b(a)g(popular)f(Linux)h(package)g(management)f(pr)n(ogram,)k(makes)d -(heavy)f(use)299 3602 y(of)23 b(popt's)g(featur)n(es.)33 -b(Many)23 b(of)g(its)g(command\255line)f(ar)n(guments)g(ar)n(e)g -(implemented)299 3714 y(thr)n(ough)30 b(popt)i(aliases,)g(which)e -(makes)h(RPM)g(an)f(excellent)g(example)h(of)g(how)f(to)299 -3826 y(take)36 b(advantage)g(of)h(the)f(popt)i(library)-11 -b(.)73 b(For)37 b(mor)n(e)g(information)e(on)i(RPM,)f(see)299 -3938 y(http:/)-14 b(/www)-9 b(.rpm.or)n(g)p eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/popt/poptconfig.c b/popt/poptconfig.c deleted file mode 100644 index e5cba4542..000000000 --- a/popt/poptconfig.c +++ /dev/null @@ -1,182 +0,0 @@ -/** \ingroup popt - * \file popt/poptconfig.c - */ - -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#include "system.h" -#include "poptint.h" -/*@access poptContext @*/ - -/*@-compmempass@*/ /* FIX: item->option.longName kept, not dependent. */ -static void configLine(poptContext con, char * line) - /*@modifies con @*/ -{ - size_t nameLength; - const char * entryType; - const char * opt; - poptItem item = alloca(sizeof(*item)); - int i, j; - - if (con->appName == NULL) - return; - nameLength = strlen(con->appName); - -/*@-boundswrite@*/ - memset(item, 0, sizeof(*item)); - - if (strncmp(line, con->appName, nameLength)) return; - - line += nameLength; - if (*line == '\0' || !isspace(*line)) return; - - while (*line != '\0' && isspace(*line)) line++; - entryType = line; - while (*line == '\0' || !isspace(*line)) line++; - *line++ = '\0'; - - while (*line != '\0' && isspace(*line)) line++; - if (*line == '\0') return; - opt = line; - while (*line == '\0' || !isspace(*line)) line++; - *line++ = '\0'; - - while (*line != '\0' && isspace(*line)) line++; - if (*line == '\0') return; - - /*@-temptrans@*/ /* FIX: line alias is saved */ - if (opt[0] == '-' && opt[1] == '-') - item->option.longName = opt + 2; - else if (opt[0] == '-' && opt[2] == '\0') - item->option.shortName = opt[1]; - /*@=temptrans@*/ - - if (poptParseArgvString(line, &item->argc, &item->argv)) return; - - /*@-modobserver@*/ - item->option.argInfo = POPT_ARGFLAG_DOC_HIDDEN; - for (i = 0, j = 0; i < item->argc; i++, j++) { - const char * f; - if (!strncmp(item->argv[i], "--POPTdesc=", sizeof("--POPTdesc=")-1)) { - f = item->argv[i] + sizeof("--POPTdesc="); - if (f[0] == '$' && f[1] == '"') f++; - item->option.descrip = f; - item->option.argInfo &= ~POPT_ARGFLAG_DOC_HIDDEN; - j--; - } else - if (!strncmp(item->argv[i], "--POPTargs=", sizeof("--POPTargs=")-1)) { - f = item->argv[i] + sizeof("--POPTargs="); - if (f[0] == '$' && f[1] == '"') f++; - item->option.argDescrip = f; - item->option.argInfo &= ~POPT_ARGFLAG_DOC_HIDDEN; - item->option.argInfo |= POPT_ARG_STRING; - j--; - } else - if (j != i) - item->argv[j] = item->argv[i]; - } - if (j != i) { - item->argv[j] = NULL; - item->argc = j; - } - /*@=modobserver@*/ -/*@=boundswrite@*/ - - /*@-nullstate@*/ /* FIX: item->argv[] may be NULL */ - if (!strcmp(entryType, "alias")) - (void) poptAddItem(con, item, 0); - else if (!strcmp(entryType, "exec")) - (void) poptAddItem(con, item, 1); - /*@=nullstate@*/ -} -/*@=compmempass@*/ - -int poptReadConfigFile(poptContext con, const char * fn) -{ - const char * file, * chptr, * end; - char * buf; -/*@dependent@*/ char * dst; - int fd, rc; - off_t fileLength; - - fd = open(fn, O_RDONLY); - if (fd < 0) - return (errno == ENOENT ? 0 : POPT_ERROR_ERRNO); - - fileLength = lseek(fd, 0, SEEK_END); - if (fileLength == -1 || lseek(fd, 0, 0) == -1) { - rc = errno; - (void) close(fd); - errno = rc; - return POPT_ERROR_ERRNO; - } - - file = alloca(fileLength + 1); - if (read(fd, (char *)file, fileLength) != fileLength) { - rc = errno; - (void) close(fd); - errno = rc; - return POPT_ERROR_ERRNO; - } - if (close(fd) == -1) - return POPT_ERROR_ERRNO; - -/*@-boundswrite@*/ - dst = buf = alloca(fileLength + 1); - - chptr = file; - end = (file + fileLength); - /*@-infloops@*/ /* LCL: can't detect chptr++ */ - while (chptr < end) { - switch (*chptr) { - case '\n': - *dst = '\0'; - dst = buf; - while (*dst && isspace(*dst)) dst++; - if (*dst && *dst != '#') - configLine(con, dst); - chptr++; - /*@switchbreak@*/ break; - case '\\': - *dst++ = *chptr++; - if (chptr < end) { - if (*chptr == '\n') - dst--, chptr++; - /* \ at the end of a line does not insert a \n */ - else - *dst++ = *chptr++; - } - /*@switchbreak@*/ break; - default: - *dst++ = *chptr++; - /*@switchbreak@*/ break; - } - } - /*@=infloops@*/ -/*@=boundswrite@*/ - - return 0; -} - -int poptReadDefaultConfig(poptContext con, /*@unused@*/ int useEnv) -{ - char * fn, * home; - int rc; - - if (con->appName == NULL) return 0; - - rc = poptReadConfigFile(con, "/etc/popt"); - if (rc) return rc; - - if ((home = getenv("HOME"))) { - fn = alloca(strlen(home) + 20); - strcpy(fn, home); - strcat(fn, "/.popt"); - rc = poptReadConfigFile(con, fn); - if (rc) return rc; - } - - return 0; -} diff --git a/popt/popthelp.c b/popt/popthelp.c deleted file mode 100644 index 5f10a5f05..000000000 --- a/popt/popthelp.c +++ /dev/null @@ -1,819 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ - -/** \ingroup popt - * \file popt/popthelp.c - */ - -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#include "system.h" - -#define POPT_WCHAR_HACK -#ifdef POPT_WCHAR_HACK -#include <wchar.h> /* for mbsrtowcs */ -/*@access mbstate_t @*/ -#endif -#include "poptint.h" - -/*@access poptContext@*/ - -/** - * Display arguments. - * @param con context - * @param foo (unused) - * @param key option(s) - * @param arg (unused) - * @param data (unused) - */ -static void displayArgs(poptContext con, - /*@unused@*/ enum poptCallbackReason foo, - struct poptOption * key, - /*@unused@*/ const char * arg, /*@unused@*/ void * data) - /*@globals fileSystem@*/ - /*@modifies fileSystem@*/ -{ - if (key->shortName == '?') - poptPrintHelp(con, stdout, 0); - else - poptPrintUsage(con, stdout, 0); - exit(0); -} - -#ifdef NOTYET -/*@unchecked@*/ -static int show_option_defaults = 0; -#endif - -/** - * Empty table marker to enable displaying popt alias/exec options. - */ -/*@observer@*/ /*@unchecked@*/ -struct poptOption poptAliasOptions[] = { - POPT_TABLEEND -}; - -/** - * Auto help table options. - */ -/*@-castfcnptr@*/ -/*@observer@*/ /*@unchecked@*/ -struct poptOption poptHelpOptions[] = { - { NULL, '\0', POPT_ARG_CALLBACK, (void *)&displayArgs, '\0', NULL, NULL }, - { "help", '?', 0, NULL, '?', N_("Show this help message"), NULL }, - { "usage", '\0', 0, NULL, 'u', N_("Display brief usage message"), NULL }, - POPT_TABLEEND -} ; - -/*@observer@*/ /*@unchecked@*/ -static struct poptOption poptHelpOptions2[] = { -/*@-readonlytrans@*/ - { NULL, '\0', POPT_ARG_INTL_DOMAIN, PACKAGE, 0, NULL, NULL}, -/*@=readonlytrans@*/ - { NULL, '\0', POPT_ARG_CALLBACK, (void *)&displayArgs, '\0', NULL, NULL }, - { "help", '?', 0, NULL, '?', N_("Show this help message"), NULL }, - { "usage", '\0', 0, NULL, 'u', N_("Display brief usage message"), NULL }, -#ifdef NOTYET - { "defaults", '\0', POPT_ARG_NONE, &show_option_defaults, 0, - N_("Display option defaults in message"), NULL }, -#endif - POPT_TABLEEND -} ; - -/*@observer@*/ /*@unchecked@*/ -struct poptOption * poptHelpOptionsI18N = poptHelpOptions2; -/*@=castfcnptr@*/ - -/** - * @param table option(s) - */ -/*@observer@*/ /*@null@*/ static const char *const -getTableTranslationDomain(/*@null@*/ const struct poptOption *table) - /*@*/ -{ - const struct poptOption *opt; - - if (table != NULL) - for (opt = table; opt->longName || opt->shortName || opt->arg; opt++) { - if (opt->argInfo == POPT_ARG_INTL_DOMAIN) - return opt->arg; - } - return NULL; -} - -/** - * @param opt option(s) - * @param translation_domain translation domain - */ -/*@observer@*/ /*@null@*/ static const char *const -getArgDescrip(const struct poptOption * opt, - /*@-paramuse@*/ /* FIX: i18n macros disabled with lclint */ - /*@null@*/ const char * translation_domain) - /*@=paramuse@*/ - /*@*/ -{ - if (!(opt->argInfo & POPT_ARG_MASK)) return NULL; - - if (opt == (poptHelpOptions + 1) || opt == (poptHelpOptions + 2)) - if (opt->argDescrip) return POPT_(opt->argDescrip); - - if (opt->argDescrip) return D_(translation_domain, opt->argDescrip); - - switch (opt->argInfo & POPT_ARG_MASK) { - case POPT_ARG_NONE: return POPT_("NONE"); -#ifdef DYING - case POPT_ARG_VAL: return POPT_("VAL"); -#else - case POPT_ARG_VAL: return NULL; -#endif - case POPT_ARG_INT: return POPT_("INT"); - case POPT_ARG_LONG: return POPT_("LONG"); - case POPT_ARG_STRING: return POPT_("STRING"); - case POPT_ARG_FLOAT: return POPT_("FLOAT"); - case POPT_ARG_DOUBLE: return POPT_("DOUBLE"); - default: return POPT_("ARG"); - } -} - -/** - * Display default value for an option. - * @param lineLength display positions remaining - * @param opt option(s) - * @param translation_domain translation domain - * @return - */ -static /*@only@*/ /*@null@*/ char * -singleOptionDefaultValue(size_t lineLength, - const struct poptOption * opt, - /*@-paramuse@*/ /* FIX: i18n macros disabled with lclint */ - /*@null@*/ const char * translation_domain) - /*@=paramuse@*/ - /*@*/ -{ - const char * defstr = D_(translation_domain, "default"); - char * le = malloc(4*lineLength + 1); - char * l = le; - - if (le == NULL) return NULL; /* XXX can't happen */ -/*@-boundswrite@*/ - *le = '\0'; - *le++ = '('; - strcpy(le, defstr); le += strlen(le); - *le++ = ':'; - *le++ = ' '; - if (opt->arg) /* XXX programmer error */ - switch (opt->argInfo & POPT_ARG_MASK) { - case POPT_ARG_VAL: - case POPT_ARG_INT: - { long aLong = *((int *)opt->arg); - le += sprintf(le, "%ld", aLong); - } break; - case POPT_ARG_LONG: - { long aLong = *((long *)opt->arg); - le += sprintf(le, "%ld", aLong); - } break; - case POPT_ARG_FLOAT: - { double aDouble = *((float *)opt->arg); - le += sprintf(le, "%g", aDouble); - } break; - case POPT_ARG_DOUBLE: - { double aDouble = *((double *)opt->arg); - le += sprintf(le, "%g", aDouble); - } break; - case POPT_ARG_STRING: - { const char * s = *(const char **)opt->arg; - if (s == NULL) { - strcpy(le, "null"); le += strlen(le); - } else { - size_t slen = 4*lineLength - (le - l) - sizeof("\"...\")"); - *le++ = '"'; - strncpy(le, s, slen); le[slen] = '\0'; le += strlen(le); - if (slen < strlen(s)) { - strcpy(le, "..."); le += strlen(le); - } - *le++ = '"'; - } - } break; - case POPT_ARG_NONE: - default: - l = _free(l); - return NULL; - /*@notreached@*/ break; - } - *le++ = ')'; - *le = '\0'; -/*@=boundswrite@*/ - - return l; -} - -/** - * Display help text for an option. - * @param fp output file handle - * @param maxLeftCol largest argument display width - * @param opt option(s) - * @param translation_domain translation domain - */ -static void singleOptionHelp(FILE * fp, size_t maxLeftCol, - const struct poptOption * opt, - /*@null@*/ const char * translation_domain) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - size_t indentLength = maxLeftCol + 5; - size_t lineLength = 79 - indentLength; - const char * help = D_(translation_domain, opt->descrip); - const char * argDescrip = getArgDescrip(opt, translation_domain); - size_t helpLength; - char * defs = NULL; - char * left; - size_t nb = maxLeftCol + 1; - int displaypad = 0; - - /* Make sure there's more than enough room in target buffer. */ - if (opt->longName) nb += strlen(opt->longName); - if (argDescrip) nb += strlen(argDescrip); - -/*@-boundswrite@*/ - left = malloc(nb); - if (left == NULL) return; /* XXX can't happen */ - left[0] = '\0'; - left[maxLeftCol] = '\0'; - - if (opt->longName && opt->shortName) - sprintf(left, "-%c, %s%s", opt->shortName, - ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "-" : "--"), - opt->longName); - else if (opt->shortName != '\0') - sprintf(left, "-%c", opt->shortName); - else if (opt->longName) - sprintf(left, "%s%s", - ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "-" : "--"), - opt->longName); - if (!*left) goto out; - - if (argDescrip) { - char * le = left + strlen(left); - - if (opt->argInfo & POPT_ARGFLAG_OPTIONAL) - *le++ = '['; - - /* Choose type of output */ - /*@-branchstate@*/ - if (opt->argInfo & POPT_ARGFLAG_SHOW_DEFAULT) { - defs = singleOptionDefaultValue(lineLength, opt, translation_domain); - if (defs) { - char * t = malloc((help ? strlen(help) : 0) + - strlen(defs) + sizeof(" ")); - if (t) { - char * te = t; - *te = '\0'; - if (help) { - strcpy(te, help); te += strlen(te); - } - *te++ = ' '; - strcpy(te, defs); - defs = _free(defs); - } - defs = t; - } - } - /*@=branchstate@*/ - - if (opt->argDescrip == NULL) { - switch (opt->argInfo & POPT_ARG_MASK) { - case POPT_ARG_NONE: - break; - case POPT_ARG_VAL: -#ifdef NOTNOW /* XXX pug ugly nerdy output */ - { long aLong = opt->val; - int ops = (opt->argInfo & POPT_ARGFLAG_LOGICALOPS); - int negate = (opt->argInfo & POPT_ARGFLAG_NOT); - - /* Don't bother displaying typical values */ - if (!ops && (aLong == 0L || aLong == 1L || aLong == -1L)) - break; - *le++ = '['; - switch (ops) { - case POPT_ARGFLAG_OR: - *le++ = '|'; - /*@innerbreak@*/ break; - case POPT_ARGFLAG_AND: - *le++ = '&'; - /*@innerbreak@*/ break; - case POPT_ARGFLAG_XOR: - *le++ = '^'; - /*@innerbreak@*/ break; - default: - /*@innerbreak@*/ break; - } - *le++ = (opt->longName != NULL ? '=' : ' '); - if (negate) *le++ = '~'; - /*@-formatconst@*/ - le += sprintf(le, (ops ? "0x%lx" : "%ld"), aLong); - /*@=formatconst@*/ - *le++ = ']'; - } -#endif - break; - case POPT_ARG_INT: - case POPT_ARG_LONG: - case POPT_ARG_FLOAT: - case POPT_ARG_DOUBLE: - case POPT_ARG_STRING: - *le++ = (opt->longName != NULL ? '=' : ' '); - strcpy(le, argDescrip); le += strlen(le); - break; - default: - break; - } - } else { - size_t lelen; - - *le++ = '='; - strcpy(le, argDescrip); - lelen = strlen(le); - le += lelen; - -#ifdef POPT_WCHAR_HACK - { const char * scopy = argDescrip; - mbstate_t t; - size_t n; - - memset ((void *)&t, '\0', sizeof (t)); /* In initial state. */ - /* Determine number of characters. */ - n = mbsrtowcs (NULL, &scopy, strlen(scopy), &t); - - displaypad = (int) (lelen-n); - } -#endif - } - if (opt->argInfo & POPT_ARGFLAG_OPTIONAL) - *le++ = ']'; - *le = '\0'; - } -/*@=boundswrite@*/ - - if (help) - fprintf(fp," %-*s ", maxLeftCol+displaypad, left); - else { - fprintf(fp," %s\n", left); - goto out; - } - - left = _free(left); -/*@-branchstate@*/ - if (defs) { - help = defs; - defs = NULL; - } -/*@=branchstate@*/ - - helpLength = strlen(help); -/*@-boundsread@*/ - while (helpLength > lineLength) { - const char * ch; - char format[16]; - - ch = help + lineLength - 1; - while (ch > help && !isspace(*ch)) ch--; - if (ch == help) break; /* give up */ - while (ch > (help + 1) && isspace(*ch)) ch--; - ch++; - - sprintf(format, "%%.%ds\n%%%ds", (int) (ch - help), (int) indentLength); - /*@-formatconst@*/ - fprintf(fp, format, help, " "); - /*@=formatconst@*/ - help = ch; - while (isspace(*help) && *help) help++; - helpLength = strlen(help); - } -/*@=boundsread@*/ - - if (helpLength) fprintf(fp, "%s\n", help); - -out: - /*@-dependenttrans@*/ - defs = _free(defs); - /*@=dependenttrans@*/ - left = _free(left); -} - -/** - * Find display width for longest argument string. - * @param opt option(s) - * @param translation_domain translation domain - * @return display width - */ -static size_t maxArgWidth(const struct poptOption * opt, - /*@null@*/ const char * translation_domain) - /*@*/ -{ - size_t max = 0; - size_t len = 0; - const char * s; - - if (opt != NULL) - while (opt->longName || opt->shortName || opt->arg) { - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - if (opt->arg) /* XXX program error */ - len = maxArgWidth(opt->arg, translation_domain); - if (len > max) max = len; - } else if (!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) { - len = sizeof(" ")-1; - if (opt->shortName != '\0') len += sizeof("-X")-1; - if (opt->shortName != '\0' && opt->longName) len += sizeof(", ")-1; - if (opt->longName) { - len += ((opt->argInfo & POPT_ARGFLAG_ONEDASH) - ? sizeof("-")-1 : sizeof("--")-1); - len += strlen(opt->longName); - } - - s = getArgDescrip(opt, translation_domain); - -#ifdef POPT_WCHAR_HACK - /* XXX Calculate no. of display characters. */ - if (s) { - const char * scopy = s; - mbstate_t t; - size_t n; - -/*@-boundswrite@*/ - memset ((void *)&t, '\0', sizeof (t)); /* In initial state. */ -/*@=boundswrite@*/ - /* Determine number of characters. */ - n = mbsrtowcs (NULL, &scopy, strlen(scopy), &t); - len += sizeof("=")-1 + n; - } -#else - if (s) - len += sizeof("=")-1 + strlen(s); -#endif - - if (opt->argInfo & POPT_ARGFLAG_OPTIONAL) len += sizeof("[]")-1; - if (len > max) max = len; - } - - opt++; - } - - return max; -} - -/** - * Display popt alias and exec help. - * @param fp output file handle - * @param items alias/exec array - * @param nitems no. of alias/exec entries - * @param left largest argument display width - * @param translation_domain translation domain - */ -static void itemHelp(FILE * fp, - /*@null@*/ poptItem items, int nitems, size_t left, - /*@null@*/ const char * translation_domain) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - poptItem item; - int i; - - if (items != NULL) - for (i = 0, item = items; i < nitems; i++, item++) { - const struct poptOption * opt; - opt = &item->option; - if ((opt->longName || opt->shortName) && - !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) - singleOptionHelp(fp, left, opt, translation_domain); - } -} - -/** - * Display help text for a table of options. - * @param con context - * @param fp output file handle - * @param table option(s) - * @param left largest argument display width - * @param translation_domain translation domain - */ -static void singleTableHelp(poptContext con, FILE * fp, - /*@null@*/ const struct poptOption * table, size_t left, - /*@null@*/ const char * translation_domain) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - const struct poptOption * opt; - const char *sub_transdom; - - if (table == poptAliasOptions) { - itemHelp(fp, con->aliases, con->numAliases, left, NULL); - itemHelp(fp, con->execs, con->numExecs, left, NULL); - return; - } - - if (table != NULL) - for (opt = table; (opt->longName || opt->shortName || opt->arg); opt++) { - if ((opt->longName || opt->shortName) && - !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) - singleOptionHelp(fp, left, opt, translation_domain); - } - - if (table != NULL) - for (opt = table; (opt->longName || opt->shortName || opt->arg); opt++) { - if ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_INCLUDE_TABLE) - continue; - sub_transdom = getTableTranslationDomain(opt->arg); - if (sub_transdom == NULL) - sub_transdom = translation_domain; - - if (opt->descrip) - fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip)); - - singleTableHelp(con, fp, opt->arg, left, sub_transdom); - } -} - -/** - * @param con context - * @param fp output file handle - */ -static int showHelpIntro(poptContext con, FILE * fp) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - int len = 6; - const char * fn; - - fprintf(fp, POPT_("Usage:")); - if (!(con->flags & POPT_CONTEXT_KEEP_FIRST)) { -/*@-boundsread@*/ - /*@-nullderef -type@*/ /* LCL: wazzup? */ - fn = con->optionStack->argv[0]; - /*@=nullderef =type@*/ -/*@=boundsread@*/ - if (fn == NULL) return len; - if (strchr(fn, '/')) fn = strrchr(fn, '/') + 1; - fprintf(fp, " %s", fn); - len += strlen(fn) + 1; - } - - return len; -} - -void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ int flags) -{ - size_t leftColWidth; - - (void) showHelpIntro(con, fp); - if (con->otherHelp) - fprintf(fp, " %s\n", con->otherHelp); - else - fprintf(fp, " %s\n", POPT_("[OPTION...]")); - - leftColWidth = maxArgWidth(con->options, NULL); - singleTableHelp(con, fp, con->options, leftColWidth, NULL); -} - -/** - * Display usage text for an option. - * @param fp output file handle - * @param cursor current display position - * @param opt option(s) - * @param translation_domain translation domain - */ -static size_t singleOptionUsage(FILE * fp, size_t cursor, - const struct poptOption * opt, - /*@null@*/ const char *translation_domain) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - size_t len = 4; - char shortStr[2] = { '\0', '\0' }; - const char * item = shortStr; - const char * argDescrip = getArgDescrip(opt, translation_domain); - - if (opt->shortName != '\0' && opt->longName != NULL) { - len += 2; - if (!(opt->argInfo & POPT_ARGFLAG_ONEDASH)) len++; - len += strlen(opt->longName); - } else if (opt->shortName != '\0') { - len++; - shortStr[0] = opt->shortName; - shortStr[1] = '\0'; - } else if (opt->longName) { - len += strlen(opt->longName); - if (!(opt->argInfo & POPT_ARGFLAG_ONEDASH)) len++; - item = opt->longName; - } - - if (len == 4) return cursor; - -#ifdef POPT_WCHAR_HACK - /* XXX Calculate no. of display characters. */ - if (argDescrip) { - const char * scopy = argDescrip; - mbstate_t t; - size_t n; - -/*@-boundswrite@*/ - memset ((void *)&t, '\0', sizeof (t)); /* In initial state. */ -/*@=boundswrite@*/ - /* Determine number of characters. */ - n = mbsrtowcs (NULL, &scopy, strlen(scopy), &t); - len += sizeof("=")-1 + n; - } -#else - if (argDescrip) - len += sizeof("=")-1 + strlen(argDescrip); -#endif - - if ((cursor + len) > 79) { - fprintf(fp, "\n "); - cursor = 7; - } - - if (opt->longName && opt->shortName) { - fprintf(fp, " [-%c|-%s%s%s%s]", - opt->shortName, ((opt->argInfo & POPT_ARGFLAG_ONEDASH) ? "" : "-"), - opt->longName, - (argDescrip ? " " : ""), - (argDescrip ? argDescrip : "")); - } else { - fprintf(fp, " [-%s%s%s%s]", - ((opt->shortName || (opt->argInfo & POPT_ARGFLAG_ONEDASH)) ? "" : "-"), - item, - (argDescrip ? (opt->shortName != '\0' ? " " : "=") : ""), - (argDescrip ? argDescrip : "")); - } - - return cursor + len + 1; -} - -/** - * Display popt alias and exec usage. - * @param fp output file handle - * @param cursor current display position - * @param item alias/exec array - * @param nitems no. of ara/exec entries - * @param translation_domain translation domain - */ -static size_t itemUsage(FILE * fp, size_t cursor, - /*@null@*/ poptItem item, int nitems, - /*@null@*/ const char * translation_domain) - /*@globals fileSystem @*/ - /*@modifies *fp, fileSystem @*/ -{ - int i; - - /*@-branchstate@*/ /* FIX: W2DO? */ - if (item != NULL) - for (i = 0; i < nitems; i++, item++) { - const struct poptOption * opt; - opt = &item->option; - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INTL_DOMAIN) { - translation_domain = (const char *)opt->arg; - } else if ((opt->longName || opt->shortName) && - !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) { - cursor = singleOptionUsage(fp, cursor, opt, translation_domain); - } - } - /*@=branchstate@*/ - - return cursor; -} - -/** - * Keep track of option tables already processed. - */ -typedef struct poptDone_s { - int nopts; - int maxopts; - const void ** opts; -} * poptDone; - -/** - * Display usage text for a table of options. - * @param con context - * @param fp output file handle - * @param cursor current display position - * @param opt option(s) - * @param translation_domain translation domain - * @param done tables already processed - * @return - */ -static size_t singleTableUsage(poptContext con, FILE * fp, size_t cursor, - /*@null@*/ const struct poptOption * opt, - /*@null@*/ const char * translation_domain, - /*@null@*/ poptDone done) - /*@globals fileSystem @*/ - /*@modifies *fp, done, fileSystem @*/ -{ - /*@-branchstate@*/ /* FIX: W2DO? */ - if (opt != NULL) - for (; (opt->longName || opt->shortName || opt->arg) ; opt++) { - if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INTL_DOMAIN) { - translation_domain = (const char *)opt->arg; - } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) { - if (done) { - int i = 0; - for (i = 0; i < done->nopts; i++) { -/*@-boundsread@*/ - const void * that = done->opts[i]; -/*@=boundsread@*/ - if (that == NULL || that != opt->arg) - /*@innercontinue@*/ continue; - /*@innerbreak@*/ break; - } - /* Skip if this table has already been processed. */ - if (opt->arg == NULL || i < done->nopts) - continue; -/*@-boundswrite@*/ - if (done->nopts < done->maxopts) - done->opts[done->nopts++] = (const void *) opt->arg; -/*@=boundswrite@*/ - } - cursor = singleTableUsage(con, fp, cursor, opt->arg, - translation_domain, done); - } else if ((opt->longName || opt->shortName) && - !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) { - cursor = singleOptionUsage(fp, cursor, opt, translation_domain); - } - } - /*@=branchstate@*/ - - return cursor; -} - -/** - * Return concatenated short options for display. - * @todo Sub-tables should be recursed. - * @param opt option(s) - * @param fp output file handle - * @retval str concatenation of short options - * @return length of display string - */ -static int showShortOptions(const struct poptOption * opt, FILE * fp, - /*@null@*/ char * str) - /*@globals fileSystem @*/ - /*@modifies *str, *fp, fileSystem @*/ - /*@requires maxRead(str) >= 0 @*/ -{ - /* bufsize larger then the ascii set, lazy alloca on top level call. */ - char * s = (str != NULL ? str : memset(alloca(300), 0, 300)); - int len = 0; - -/*@-boundswrite@*/ - if (opt != NULL) - for (; (opt->longName || opt->shortName || opt->arg); opt++) { - if (opt->shortName && !(opt->argInfo & POPT_ARG_MASK)) - s[strlen(s)] = opt->shortName; - else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) - if (opt->arg) /* XXX program error */ - len = showShortOptions(opt->arg, fp, s); - } -/*@=boundswrite@*/ - - /* On return to top level, print the short options, return print length. */ - if (s == str && *s != '\0') { - fprintf(fp, " [-%s]", s); - len = strlen(s) + sizeof(" [-]")-1; - } - return len; -} - -void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ int flags) -{ - poptDone done = memset(alloca(sizeof(*done)), 0, sizeof(*done)); - size_t cursor; - - done->nopts = 0; - done->maxopts = 64; - cursor = done->maxopts * sizeof(*done->opts); -/*@-boundswrite@*/ - done->opts = memset(alloca(cursor), 0, cursor); - /*@-keeptrans@*/ - done->opts[done->nopts++] = (const void *) con->options; - /*@=keeptrans@*/ -/*@=boundswrite@*/ - - cursor = showHelpIntro(con, fp); - cursor += showShortOptions(con->options, fp, NULL); - cursor = singleTableUsage(con, fp, cursor, con->options, NULL, done); - cursor = itemUsage(fp, cursor, con->aliases, con->numAliases, NULL); - cursor = itemUsage(fp, cursor, con->execs, con->numExecs, NULL); - - if (con->otherHelp) { - cursor += strlen(con->otherHelp) + 1; - if (cursor > 79) fprintf(fp, "\n "); - fprintf(fp, " %s", con->otherHelp); - } - - fprintf(fp, "\n"); -} - -void poptSetOtherOptionHelp(poptContext con, const char * text) -{ - con->otherHelp = _free(con->otherHelp); - con->otherHelp = xstrdup(text); -} diff --git a/popt/poptint.h b/popt/poptint.h deleted file mode 100644 index 5e75712c9..000000000 --- a/popt/poptint.h +++ /dev/null @@ -1,116 +0,0 @@ -/** \ingroup popt - * \file popt/poptint.h - */ - -/* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#ifndef H_POPTINT -#define H_POPTINT - -/** - * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. - * @param p memory to free - * @retval NULL always - */ -/*@unused@*/ static inline /*@null@*/ void * -_free(/*@only@*/ /*@null@*/ const void * p) - /*@modifies p @*/ -{ - if (p != NULL) free((void *)p); - return NULL; -} - -/* Bit mask macros. */ -/*@-exporttype -redef @*/ -typedef unsigned int __pbm_bits; -/*@=exporttype =redef @*/ -#define __PBM_NBITS (8 * sizeof (__pbm_bits)) -#define __PBM_IX(d) ((d) / __PBM_NBITS) -#define __PBM_MASK(d) ((__pbm_bits) 1 << (((unsigned)(d)) % __PBM_NBITS)) -/*@-exporttype -redef @*/ -typedef struct { - __pbm_bits bits[1]; -} pbm_set; -/*@=exporttype =redef @*/ -#define __PBM_BITS(set) ((set)->bits) - -#define PBM_ALLOC(d) calloc(__PBM_IX (d) + 1, sizeof(__pbm_bits)) -#define PBM_FREE(s) _free(s); -#define PBM_SET(d, s) (__PBM_BITS (s)[__PBM_IX (d)] |= __PBM_MASK (d)) -#define PBM_CLR(d, s) (__PBM_BITS (s)[__PBM_IX (d)] &= ~__PBM_MASK (d)) -#define PBM_ISSET(d, s) ((__PBM_BITS (s)[__PBM_IX (d)] & __PBM_MASK (d)) != 0) - -struct optionStackEntry { - int argc; -/*@only@*/ /*@null@*/ - const char ** argv; -/*@only@*/ /*@null@*/ - pbm_set * argb; - int next; -/*@only@*/ /*@null@*/ - const char * nextArg; -/*@observer@*/ /*@null@*/ - const char * nextCharArg; -/*@dependent@*/ /*@null@*/ - poptItem currAlias; - int stuffed; -}; - -struct poptContext_s { - struct optionStackEntry optionStack[POPT_OPTION_DEPTH]; -/*@dependent@*/ - struct optionStackEntry * os; -/*@owned@*/ /*@null@*/ - const char ** leftovers; - int numLeftovers; - int nextLeftover; -/*@keep@*/ - const struct poptOption * options; - int restLeftover; -/*@only@*/ /*@null@*/ - const char * appName; -/*@only@*/ /*@null@*/ - poptItem aliases; - int numAliases; - int flags; -/*@owned@*/ /*@null@*/ - poptItem execs; - int numExecs; -/*@only@*/ /*@null@*/ - const char ** finalArgv; - int finalArgvCount; - int finalArgvAlloced; -/*@dependent@*/ /*@null@*/ - poptItem doExec; -/*@only@*/ - const char * execPath; - int execAbsolute; -/*@only@*/ /*@relnull@*/ - const char * otherHelp; -/*@null@*/ - pbm_set * arg_strip; -}; - -#ifdef HAVE_LIBINTL_H -#include <libintl.h> -#endif - -#if defined(HAVE_GETTEXT) && !defined(__LCLINT__) -#define _(foo) gettext(foo) -#else -#define _(foo) foo -#endif - -#if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__) -#define D_(dom, str) dgettext(dom, str) -#define POPT_(foo) D_("popt", foo) -#else -#define D_(dom, str) str -#define POPT_(foo) foo -#endif - -#define N_(foo) foo - -#endif diff --git a/popt/poptparse.c b/popt/poptparse.c deleted file mode 100644 index a0dea8004..000000000 --- a/popt/poptparse.c +++ /dev/null @@ -1,227 +0,0 @@ -/** \ingroup popt - * \file popt/poptparse.c - */ - -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#include "system.h" - -#define POPT_ARGV_ARRAY_GROW_DELTA 5 - -/*@-boundswrite@*/ -int poptDupArgv(int argc, const char **argv, - int * argcPtr, const char *** argvPtr) -{ - size_t nb = (argc + 1) * sizeof(*argv); - const char ** argv2; - char * dst; - int i; - - if (argc <= 0 || argv == NULL) /* XXX can't happen */ - return POPT_ERROR_NOARG; - for (i = 0; i < argc; i++) { - if (argv[i] == NULL) - return POPT_ERROR_NOARG; - nb += strlen(argv[i]) + 1; - } - - dst = malloc(nb); - if (dst == NULL) /* XXX can't happen */ - return POPT_ERROR_MALLOC; - argv2 = (void *) dst; - dst += (argc + 1) * sizeof(*argv); - - /*@-branchstate@*/ - for (i = 0; i < argc; i++) { - argv2[i] = dst; - dst += strlen(strcpy(dst, argv[i])) + 1; - } - /*@=branchstate@*/ - argv2[argc] = NULL; - - if (argvPtr) { - *argvPtr = argv2; - } else { - free(argv2); - argv2 = NULL; - } - if (argcPtr) - *argcPtr = argc; - return 0; -} -/*@=boundswrite@*/ - -/*@-bounds@*/ -int poptParseArgvString(const char * s, int * argcPtr, const char *** argvPtr) -{ - const char * src; - char quote = '\0'; - int argvAlloced = POPT_ARGV_ARRAY_GROW_DELTA; - const char ** argv = malloc(sizeof(*argv) * argvAlloced); - int argc = 0; - int buflen = strlen(s) + 1; - char * buf = memset(alloca(buflen), 0, buflen); - int rc = POPT_ERROR_MALLOC; - - if (argv == NULL) return rc; - argv[argc] = buf; - - for (src = s; *src != '\0'; src++) { - if (quote == *src) { - quote = '\0'; - } else if (quote != '\0') { - if (*src == '\\') { - src++; - if (!*src) { - rc = POPT_ERROR_BADQUOTE; - goto exit; - } - if (*src != quote) *buf++ = '\\'; - } - *buf++ = *src; - } else if (isspace(*src)) { - if (*argv[argc] != '\0') { - buf++, argc++; - if (argc == argvAlloced) { - argvAlloced += POPT_ARGV_ARRAY_GROW_DELTA; - argv = realloc(argv, sizeof(*argv) * argvAlloced); - if (argv == NULL) goto exit; - } - argv[argc] = buf; - } - } else switch (*src) { - case '"': - case '\'': - quote = *src; - /*@switchbreak@*/ break; - case '\\': - src++; - if (!*src) { - rc = POPT_ERROR_BADQUOTE; - goto exit; - } - /*@fallthrough@*/ - default: - *buf++ = *src; - /*@switchbreak@*/ break; - } - } - - if (strlen(argv[argc])) { - argc++, buf++; - } - - rc = poptDupArgv(argc, argv, argcPtr, argvPtr); - -exit: - if (argv) free(argv); - return rc; -} -/*@=bounds@*/ - -/* still in the dev stage. - * return values, perhaps 1== file erro - * 2== line to long - * 3== umm.... more? - */ -int poptConfigFileToString(FILE *fp, char ** argstrp, /*@unused@*/ int flags) -{ - char line[999]; - char * argstr; - char * p; - char * q; - char * x; - int t; - int argvlen = 0; - size_t maxlinelen = sizeof(line); - size_t linelen; - int maxargvlen = 480; - int linenum = 0; - - *argstrp = NULL; - - /* | this_is = our_line - * p q x - */ - - if (fp == NULL) - return POPT_ERROR_NULLARG; - - argstr = calloc(maxargvlen, sizeof(*argstr)); - if (argstr == NULL) return POPT_ERROR_MALLOC; - - while (fgets(line, (int)maxlinelen, fp) != NULL) { - linenum++; - p = line; - - /* loop until first non-space char or EOL */ - while( *p != '\0' && isspace(*p) ) - p++; - - linelen = strlen(p); - if (linelen >= maxlinelen-1) - return POPT_ERROR_OVERFLOW; /* XXX line too long */ - - if (*p == '\0' || *p == '\n') continue; /* line is empty */ - if (*p == '#') continue; /* comment line */ - - q = p; - - while (*q != '\0' && (!isspace(*q)) && *q != '=') - q++; - - if (isspace(*q)) { - /* a space after the name, find next non space */ - *q++='\0'; - while( *q != '\0' && isspace((int)*q) ) q++; - } - if (*q == '\0') { - /* single command line option (ie, no name=val, just name) */ - q[-1] = '\0'; /* kill off newline from fgets() call */ - argvlen += (t = q - p) + (sizeof(" --")-1); - if (argvlen >= maxargvlen) { - maxargvlen = (t > maxargvlen) ? t*2 : maxargvlen*2; - argstr = realloc(argstr, maxargvlen); - if (argstr == NULL) return POPT_ERROR_MALLOC; - } - strcat(argstr, " --"); - strcat(argstr, p); - continue; - } - if (*q != '=') - continue; /* XXX for now, silently ignore bogus line */ - - /* *q is an equal sign. */ - *q++ = '\0'; - - /* find next non-space letter of value */ - while (*q != '\0' && isspace(*q)) - q++; - if (*q == '\0') - continue; /* XXX silently ignore missing value */ - - /* now, loop and strip all ending whitespace */ - x = p + linelen; - while (isspace(*--x)) - *x = 0; /* null out last char if space (including fgets() NL) */ - - /* rest of line accept */ - t = x - p; - argvlen += t + (sizeof("' --='")-1); - if (argvlen >= maxargvlen) { - maxargvlen = (t > maxargvlen) ? t*2 : maxargvlen*2; - argstr = realloc(argstr, maxargvlen); - if (argstr == NULL) return POPT_ERROR_MALLOC; - } - strcat(argstr, " --"); - strcat(argstr, p); - strcat(argstr, "=\""); - strcat(argstr, q); - strcat(argstr, "\""); - } - - *argstrp = argstr; - return 0; -} diff --git a/popt/system.h b/popt/system.h deleted file mode 100644 index c3d46cba8..000000000 --- a/popt/system.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#if defined (__GLIBC__) && defined(__LCLINT__) -/*@-declundef@*/ -/*@unchecked@*/ -extern __const __int32_t *__ctype_tolower; -/*@unchecked@*/ -extern __const __int32_t *__ctype_toupper; -/*@=declundef@*/ -#endif - -#include <ctype.h> - -#include <errno.h> -#include <fcntl.h> -#include <limits.h> - -#if HAVE_MCHECK_H -#include <mcheck.h> -#endif - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#if HAVE_UNISTD_H -#include <unistd.h> -#endif - -#ifdef __NeXT -/* access macros are not declared in non posix mode in unistd.h - - don't try to use posix on NeXTstep 3.3 ! */ -#include <libc.h> -#endif - -#if defined(__LCLINT__) -/*@-declundef -incondefs @*/ /* LCL: missing annotation */ -/*@only@*/ /*@out@*/ -void * alloca (size_t __size) - /*@ensures MaxSet(result) == (__size - 1) @*/ - /*@*/; -/*@=declundef =incondefs @*/ -#endif - -/* AIX requires this to be the first thing in the file. */ -#ifndef __GNUC__ -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX -#pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -#elif defined(__GNUC__) && defined(__STRICT_ANSI__) -#define alloca __builtin_alloca -#endif - -/*@-redecl -redef@*/ -/*@mayexit@*/ /*@only@*/ /*@unused@*/ -char * xstrdup (const char *str) - /*@*/; -/*@=redecl =redef@*/ - -#if HAVE_MCHECK_H && defined(__GNUC__) -#define vmefail() (fprintf(stderr, "virtual memory exhausted.\n"), exit(EXIT_FAILURE), NULL) -#define xstrdup(_str) (strcpy((malloc(strlen(_str)+1) ? : vmefail()), (_str))) -#else -#define xstrdup(_str) strdup(_str) -#endif /* HAVE_MCHECK_H && defined(__GNUC__) */ - -#if HAVE___SECURE_GETENV && !defined(__LCLINT__) -#define getenv(_s) __secure_getenv(_s) -#endif - -#include "popt.h" diff --git a/popt/test-poptrc b/popt/test-poptrc deleted file mode 100644 index 509e0135d..000000000 --- a/popt/test-poptrc +++ /dev/null @@ -1,12 +0,0 @@ -test1 alias --simple --arg2 -test1 alias --two --arg1 --arg2 alias -test1 alias --takerest -- -test1 alias -T --arg2 -test1 alias -O --arg1 - -test1 alias --grab --arg2 "'foo !#:+'" -test1 alias --grabbar --grab bar - -test1 exec --echo-args echo -test1 alias -e --echo-args -test1 exec -a /bin/echo diff --git a/popt/test1.c b/popt/test1.c deleted file mode 100644 index eeeb916ee..000000000 --- a/popt/test1.c +++ /dev/null @@ -1,278 +0,0 @@ -/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING - file accompanying popt source distributions, available from - ftp://ftp.rpm.org/pub/rpm/dist. */ - -#include "system.h" - -/*@unchecked@*/ -static int pass2 = 0; -static void option_callback(/*@unused@*/ poptContext con, - /*@unused@*/ enum poptCallbackReason reason, - const struct poptOption * opt, - char * arg, void * data) - /*@globals fileSystem @*/ - /*@modifies fileSystem @*/ -{ - if (pass2) - fprintf(stdout, "callback: %c %s %s ", opt->val, (char *) data, arg); -} - -/*@unchecked@*/ -static int arg1 = 0; -/*@unchecked@*/ /*@observer@*/ -static char * arg2 = "(none)"; -/*@unchecked@*/ -static int arg3 = 0; -/*@unchecked@*/ -static int inc = 0; -/*@unchecked@*/ -static int shortopt = 0; - -/*@unchecked@*/ -static int aVal = 141421; -/*@unchecked@*/ -static int bVal = 141421; -/*@unchecked@*/ -static int aFlag = 0; -/*@unchecked@*/ -static int bFlag = 0; - -/*@unchecked@*/ -static int aInt = 271828; -/*@unchecked@*/ -static int bInt = 271828; -/*@unchecked@*/ -static long aLong = 738905609L; -/*@unchecked@*/ -static long bLong = 738905609L; -/*@unchecked@*/ -static float aFloat = 3.1415926535; -/*@unchecked@*/ -static float bFloat = 3.1415926535; -/*@unchecked@*/ -static double aDouble = 9.86960440108935861883; -/*@unchecked@*/ -static double bDouble = 9.86960440108935861883; -/*@unchecked@*/ /*@null@*/ -static char * oStr = (char *) -1; -/*@unchecked@*/ -static int singleDash = 0; - -/*@unchecked@*/ /*@observer@*/ -static char * lStr = -"This tests default strings and exceeds the ... limit. " -"123456789+123456789+123456789+123456789+123456789+ " -"123456789+123456789+123456789+123456789+123456789+ " -"123456789+123456789+123456789+123456789+123456789+ " -"123456789+123456789+123456789+123456789+123456789+ "; -/*@unchecked@*/ /*@null@*/ -static char * nStr = NULL; - -/*@unchecked@*/ -static struct poptOption moreCallbackArgs[] = { - { NULL, '\0', POPT_ARG_CALLBACK|POPT_CBFLAG_INC_DATA, - (void *)option_callback, 0, - NULL, NULL }, - { "cb2", 'c', POPT_ARG_STRING, NULL, 'c', - "Test argument callbacks", NULL }, - POPT_TABLEEND -}; - -/*@unchecked@*/ -static struct poptOption callbackArgs[] = { - { NULL, '\0', POPT_ARG_CALLBACK, (void *)option_callback, 0, - "sampledata", NULL }, - { "cb", 'c', POPT_ARG_STRING, NULL, 'c', - "Test argument callbacks", NULL }, - { "longopt", '\0', 0, NULL, 'l', - "Unused option for help testing", NULL }, - POPT_TABLEEND -}; - -/*@unchecked@*/ -static struct poptOption moreArgs[] = { - { "inc", 'I', 0, &inc, 0, "An included argument", NULL }, - POPT_TABLEEND -}; - -/*@unchecked@*/ -static struct poptOption options[] = { - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &moreCallbackArgs, 0, - "arg for cb2", NULL }, - { "arg1", '\0', 0, &arg1, 0, "First argument with a really long" - " description. After all, we have to test argument help" - " wrapping somehow, right?", NULL }, - { "arg2", '2', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &arg2, 0, - "Another argument", "ARG" }, - { "arg3", '3', POPT_ARG_INT, &arg3, 0, - "A third argument", "ANARG" }, - { "onedash", '\0', POPT_ARGFLAG_ONEDASH, &shortopt, 0, - "POPT_ARGFLAG_ONEDASH: Option takes a single -", NULL }, - { "hidden", '\0', POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN, NULL, 0, - "POPT_ARGFLAG_HIDDEN: A hidden option (--help shouldn't display)", - NULL }, - { "optional", '\0', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, &oStr, 0, - "POPT_ARGFLAG_OPTIONAL: Takes an optional string argument", NULL }, - - { "val", '\0', POPT_ARG_VAL | POPT_ARGFLAG_SHOW_DEFAULT, &aVal, 125992, - "POPT_ARG_VAL: 125992 141421", 0}, - - { "int", 'i', POPT_ARG_INT | POPT_ARGFLAG_SHOW_DEFAULT, &aInt, 0, - "POPT_ARG_INT: 271828", NULL }, - { "long", 'l', POPT_ARG_LONG | POPT_ARGFLAG_SHOW_DEFAULT, &aLong, 0, - "POPT_ARG_LONG: 738905609", NULL }, - { "float", 'f', POPT_ARG_FLOAT | POPT_ARGFLAG_SHOW_DEFAULT, &aFloat, 0, - "POPT_ARG_FLOAT: 3.14159", NULL }, - { "double", 'd', POPT_ARG_DOUBLE | POPT_ARGFLAG_SHOW_DEFAULT, &aDouble, 0, - "POPT_ARG_DOUBLE: 9.8696", NULL }, - - { "bitset", '\0', POPT_BIT_SET | POPT_ARGFLAG_SHOW_DEFAULT, &aFlag, 0x4321, - "POPT_BIT_SET: |= 0x4321", 0}, - { "bitclr", '\0', POPT_BIT_CLR | POPT_ARGFLAG_SHOW_DEFAULT, &aFlag, 0x1234, - "POPT_BIT_CLR: &= ~0x1234", 0}, - - { "nstr", '\0', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &nStr, 0, - "POPT_ARG_STRING: (null)", NULL}, - { "lstr", '\0', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &lStr, 0, - "POPT_ARG_STRING: \"123456789...\"", NULL}, - - { NULL, '-', POPT_ARG_NONE | POPT_ARGFLAG_DOC_HIDDEN, &singleDash, 0, - NULL, NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &moreArgs, 0, - NULL, NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &callbackArgs, 0, - "Callback arguments", NULL }, - POPT_AUTOHELP - POPT_TABLEEND -}; - -static void resetVars(void) - /*@globals arg1, arg2, arg3, inc, shortopt, - aVal, aFlag, aInt, aLong, aFloat, aDouble, - oStr, singleDash, pass2 @*/ - /*@modifies arg1, arg2, arg3, inc, shortopt, - aVal, aFlag, aInt, aLong, aFloat, aDouble, - oStr, singleDash, pass2 @*/ -{ - arg1 = 0; - arg2 = "(none)"; - arg3 = 0; - inc = 0; - shortopt = 0; - - aVal = bVal; - aFlag = bFlag; - - aInt = bInt; - aLong = bLong; - aFloat = bFloat; - aDouble = bDouble; - - oStr = (char *) -1; - - singleDash = 0; - pass2 = 0; -} - -int main(int argc, const char ** argv) - /*@globals pass2, fileSystem, internalState @*/ - /*@modifies pass2, fileSystem, internalState @*/ -{ - int rc; - int ec = 0; - poptContext optCon; - const char ** rest; - int help = 0; - int usage = 0; - -#if HAVE_MCHECK_H && HAVE_MTRACE - /*@-moduncon -noeffectuncon@*/ - mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ - /*@=moduncon =noeffectuncon@*/ -#endif - -/*@-modobserver@*/ - resetVars(); -/*@=modobserver@*/ -/*@-temptrans@*/ - optCon = poptGetContext("test1", argc, argv, options, 0); -/*@=temptrans@*/ - (void) poptReadConfigFile(optCon, "./test-poptrc"); - -#if 1 - while ((rc = poptGetNextOpt(optCon)) > 0) /* Read all the options ... */ - {}; - - poptResetContext(optCon); /* ... and then start over. */ -/*@-modobserver@*/ - resetVars(); -/*@=modobserver@*/ -#endif - - pass2 = 1; - if ((rc = poptGetNextOpt(optCon)) < -1) { - fprintf(stderr, "test1: bad argument %s: %s\n", - poptBadOption(optCon, POPT_BADOPTION_NOALIAS), - poptStrerror(rc)); - ec = 2; - goto exit; - } - - if (help) { - poptPrintHelp(optCon, stdout, 0); - goto exit; - } - if (usage) { - poptPrintUsage(optCon, stdout, 0); - goto exit; - } - - fprintf(stdout, "arg1: %d arg2: %s", arg1, arg2); - - if (arg3) - fprintf(stdout, " arg3: %d", arg3); - if (inc) - fprintf(stdout, " inc: %d", inc); - if (shortopt) - fprintf(stdout, " short: %d", shortopt); - if (aVal != bVal) - fprintf(stdout, " aVal: %d", aVal); - if (aFlag != bFlag) - fprintf(stdout, " aFlag: %d", aFlag); - if (aInt != bInt) - fprintf(stdout, " aInt: %d", aInt); - if (aLong != bLong) - fprintf(stdout, " aLong: %ld", aLong); -/*@-realcompare@*/ - if (aFloat != bFloat) - fprintf(stdout, " aFloat: %g", aFloat); - if (aDouble != bDouble) - fprintf(stdout, " aDouble: %g", aDouble); -/*@=realcompare@*/ - if (oStr != (char *)-1) - fprintf(stdout, " oStr: %s", (oStr ? oStr : "(none)")); - if (singleDash) - fprintf(stdout, " -"); - -/*@-boundsread@*/ - rest = poptGetArgs(optCon); - if (rest) { - fprintf(stdout, " rest:"); - while (*rest) { - fprintf(stdout, " %s", *rest); - rest++; - } - } -/*@=boundsread@*/ - - fprintf(stdout, "\n"); - -exit: - optCon = poptFreeContext(optCon); -#if HAVE_MCHECK_H && HAVE_MTRACE - /*@-moduncon -noeffectuncon@*/ - muntrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ - /*@=moduncon =noeffectuncon@*/ -#endif - return ec; -} diff --git a/popt/test2.c b/popt/test2.c deleted file mode 100644 index afac1c61e..000000000 --- a/popt/test2.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - Popt Library Test Program Number Too - - --> "a real world test of popt bugs" <-- - - Copyright (C) 1999 US Interactive, Inc. - - This program can be used under the GPL or LGPL at your - whim as long as this Copyright remains attached. -*/ - -#include "system.h" - -char *PathnameOfKeyFile = NULL; -char *PathnameOfOfferFile = NULL; - -char *txHost = NULL; -int txSslPort = 443; -int txStoreId = 0; - -char *contentProtocol = NULL; -char *contentHost = NULL; -int contentPort = 80; -char *contentPath = NULL; - -char *dbPassword = NULL; -char *dbUserName = NULL; - -char *rcfile = "createuser-defaults"; -char *username=NULL; - -char *password = NULL; -char *firstname = NULL; -char *lastname = NULL; -char *addr1 = NULL; -char *addr2 = NULL; -char *city = NULL; -char *state = NULL; -char *postal = NULL; -char *country = NULL; - -char *email = NULL; - -char *dayphone = NULL; -char *fax = NULL; - - -int -main(int argc, const char ** argv) { - - poptContext optCon; /* context for parsing command-line options */ - struct poptOption userOptionsTable[] = { - { "first", 'f', POPT_ARG_STRING, &firstname, 0, - "user's first name", "first" }, - { "last", 'l', POPT_ARG_STRING, &lastname, 0, - "user's last name", "last" }, - { "username", 'u', POPT_ARG_STRING, &username, 0, - "system user name", "user" }, - { "password", 'p', POPT_ARG_STRING, &password, 0, - "system password name", "password" }, - { "addr1", '1', POPT_ARG_STRING, &addr1, 0, - "line 1 of address", "addr1" }, - { "addr2", '2', POPT_ARG_STRING, &addr2, 0, - "line 2 of address", "addr2" }, - { "city", 'c', POPT_ARG_STRING, &city, 0, - "city", "city" }, - { "state", 's', POPT_ARG_STRING, &state, 0, - "state or province", "state" }, - { "postal", 'P', POPT_ARG_STRING, &postal, 0, - "postal or zip code", "postal" }, - { "zip", 'z', POPT_ARG_STRING, &postal, 0, - "postal or zip code", "postal" }, - { "country", 'C', POPT_ARG_STRING, &country, 0, - "two letter ISO country code", "country" }, - { "email", 'e', POPT_ARG_STRING, &email, 0, - "user's email address", "email" }, - { "dayphone", 'd', POPT_ARG_STRING, &dayphone, 0, - "day time phone number", "dayphone" }, - { "fax", 'F', POPT_ARG_STRING, &fax, 0, - "fax number", "fax" }, - { NULL, 0, 0, NULL, 0, NULL, NULL } - }; - struct poptOption transactOptionsTable[] = { - { "keyfile", '\0', POPT_ARG_STRING, &PathnameOfKeyFile, 0, - "transact offer key file (flat_O.kf)", "key-file" }, - { "offerfile", '\0', POPT_ARG_STRING, &PathnameOfOfferFile, 0, - "offer template file (osl.ofr)", "offer-file" }, - { "storeid", '\0', POPT_ARG_INT, &txStoreId, 0, - "store id", "store-id" }, - { "rcfile", '\0', POPT_ARG_STRING, &rcfile, 0, - "default command line options (in popt format)", "rcfile" }, - { "txhost", '\0', POPT_ARG_STRING, &txHost, 0, - "transact host", "transact-host" }, - { "txsslport", '\0', POPT_ARG_INT, &txSslPort, 0, - "transact server ssl port ", "transact ssl port" }, - { "cnhost", '\0', POPT_ARG_STRING, &contentHost, 0, - "content host", "content-host" }, - { "cnpath", '\0', POPT_ARG_STRING, &contentPath, 0, - "content url path", "content-path" }, - { NULL, 0, 0, NULL, 0, NULL, NULL } - }; - - struct poptOption databaseOptionsTable[] = { - { "dbpassword", '\0', POPT_ARG_STRING, &dbPassword, 0, - "Database password", "DB password" }, - { "dbusername", '\0', POPT_ARG_STRING, &dbUserName, 0, - "Database user name", "DB UserName" }, - { NULL, 0, 0, NULL, 0, NULL, NULL } - }; - - struct poptOption optionsTable[] = { - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, - "Transact Options (not all will apply)", NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, - "Transact Database Names", NULL }, - { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, - "User Fields", NULL }, - POPT_AUTOHELP - { NULL, 0, 0, NULL, 0, NULL, NULL } - }; - - optionsTable[0].arg = transactOptionsTable; - optionsTable[1].arg = databaseOptionsTable; - optionsTable[2].arg = userOptionsTable; - -#if HAVE_MCHECK_H && HAVE_MTRACE - mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ -#endif - - optCon = poptGetContext("createuser", argc, argv, optionsTable, 0); - poptReadConfigFile(optCon, rcfile ); - - /* although there are no options to be parsed, check for --help */ - poptGetNextOpt(optCon); - - optCon = poptFreeContext(optCon); - - printf( "dbusername %s\tdbpassword %s\n" - "txhost %s\ttxsslport %d\ttxstoreid %d\tpathofkeyfile %s\n" - "username %s\tpassword %s\tfirstname %s\tlastname %s\n" - "addr1 %s\taddr2 %s\tcity %s\tstate %s\tpostal %s\n" - "country %s\temail %s\tdayphone %s\tfax %s\n", - dbUserName, dbPassword, - txHost, txSslPort, txStoreId, PathnameOfKeyFile, - username, password, firstname, lastname, - addr1,addr2, city, state, postal, - country, email, dayphone, fax); - return 0; -} diff --git a/popt/test3-data/01.answer b/popt/test3-data/01.answer deleted file mode 100644 index bd95a3848..000000000 --- a/popt/test3-data/01.answer +++ /dev/null @@ -1,10 +0,0 @@ -single string: ' --aaa --bbb --ccc --bla="bla" --this_is="fdsafdas" --5555="55555" --test="with lots of spaces"' -popt array: size=7 -'--aaa' -'--bbb' -'--ccc' -'--bla=bla' -'--this_is=fdsafdas' -'--5555=55555' -'--test=with lots of spaces' - diff --git a/popt/test3-data/01.input b/popt/test3-data/01.input deleted file mode 100644 index 157ed0557..000000000 --- a/popt/test3-data/01.input +++ /dev/null @@ -1,13 +0,0 @@ -# this line is ignored - # this one too -aaa - bbb - ccc -bla=bla - -this_is = fdsafdas - bad_line= - reall bad line - reall bad line = again -5555= 55555 - test = with lots of spaces diff --git a/popt/test3-data/02.answer b/popt/test3-data/02.answer deleted file mode 100644 index 309011ad8..000000000 --- a/popt/test3-data/02.answer +++ /dev/null @@ -1 +0,0 @@ -cannot parse test3-data/02.input. ret=-18 diff --git a/popt/test3-data/02.input b/popt/test3-data/02.input deleted file mode 100644 index ed577440b..000000000 --- a/popt/test3-data/02.input +++ /dev/null @@ -1,2 +0,0 @@ -# this next line has 999 letters. this should cause an abort. -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx diff --git a/popt/test3-data/03.answer b/popt/test3-data/03.answer deleted file mode 100644 index 085fe6a22..000000000 --- a/popt/test3-data/03.answer +++ /dev/null @@ -1,70 +0,0 @@ -single string: ' --confversion="1.0.0.0" --expires="19:57:56 03/16/01" --sessions="-1" --hostid="72738c36" --hostid="80b0cafb" --hostid="80c104e4" --hostid="80cf520f" --hostid="809fc805" --port="6666" --realservername="goya:554" --realserverip="127.0.0.1:554" --sdmux="0" --runtimeconf="1" --soc="1" --socaddr="127.0.0.1" --socconntimeout="3" --socqport="4110" --socuport="4111" --loadtest="0" --tunnelssmport="5541" --allowtcptransport="0" --realrevpkts="0" --asmrules="4;" --maxasmtime="10" --asmwaittime="4" --asmcalctime="4" --maxletswitchtime="20" --setbw="6;" --setbwblocktime="15" --asmsetbwtime="3" --setbwwaittime="1" --inputmaxsetbw="100" --encratemaxsetbw="100" --livesetbwdelta="2" --encrate="34000" --maxoutproberate="85" --maxoutencrate="140" --minoutencrate="108" --erprgamma="70" --utp="15" --nbalpha="77" --bbalpha="83" --tsfrequency="10" --recoveryrate="140" --maxbuffer="2000" --csmbuffer="12000" --probedelta="120" --numprobes="4" --probebuffpkts="5" --probeinterval="600000" --clientlog="2" --loglevel="2" --monitor="0" --testmode="0" --emulator="0" --emuaddr="127.0.0.1" --emuport="4200" --auxsvr="0" --mngsvrip="127.0.0.1" --mngsvrport="15550" --ssmip="127.0.0.1" --auxsvrport="14445" --auxsvrchkfreq="2" --auxsvrchkperiod="60;" --simulation="0" --netbuffer="5" --siminterval="3"' -popt array: size=67 -'--confversion=1.0.0.0' -'--expires=19:57:56 03/16/01' -'--sessions=-1' -'--hostid=72738c36' -'--hostid=80b0cafb' -'--hostid=80c104e4' -'--hostid=80cf520f' -'--hostid=809fc805' -'--port=6666' -'--realservername=goya:554' -'--realserverip=127.0.0.1:554' -'--sdmux=0' -'--runtimeconf=1' -'--soc=1' -'--socaddr=127.0.0.1' -'--socconntimeout=3' -'--socqport=4110' -'--socuport=4111' -'--loadtest=0' -'--tunnelssmport=5541' -'--allowtcptransport=0' -'--realrevpkts=0' -'--asmrules=4;' -'--maxasmtime=10' -'--asmwaittime=4' -'--asmcalctime=4' -'--maxletswitchtime=20' -'--setbw=6;' -'--setbwblocktime=15' -'--asmsetbwtime=3' -'--setbwwaittime=1' -'--inputmaxsetbw=100' -'--encratemaxsetbw=100' -'--livesetbwdelta=2' -'--encrate=34000' -'--maxoutproberate=85' -'--maxoutencrate=140' -'--minoutencrate=108' -'--erprgamma=70' -'--utp=15' -'--nbalpha=77' -'--bbalpha=83' -'--tsfrequency=10' -'--recoveryrate=140' -'--maxbuffer=2000' -'--csmbuffer=12000' -'--probedelta=120' -'--numprobes=4' -'--probebuffpkts=5' -'--probeinterval=600000' -'--clientlog=2' -'--loglevel=2' -'--monitor=0' -'--testmode=0' -'--emulator=0' -'--emuaddr=127.0.0.1' -'--emuport=4200' -'--auxsvr=0' -'--mngsvrip=127.0.0.1' -'--mngsvrport=15550' -'--ssmip=127.0.0.1' -'--auxsvrport=14445' -'--auxsvrchkfreq=2' -'--auxsvrchkperiod=60;' -'--simulation=0' -'--netbuffer=5' -'--siminterval=3' - diff --git a/popt/test3-data/03.input b/popt/test3-data/03.input deleted file mode 100644 index 34a73473a..000000000 --- a/popt/test3-data/03.input +++ /dev/null @@ -1,210 +0,0 @@ -# -# WARNING: NO LINE IN THIS FILE SHOULD BE LONGER THAN 999 characters! -# -# a vague real world example -# -# the vers no of this file. useful for debug -confversion=1.0.0.0 - -# date and time of expiry of this license -expires=19:57:56 03/16/01 - -# max no of simultaneous sessions -sessions=-1 - -# hostid(s) of licensed host(s): matisse -hostid=72738c36 - -# degas (exodus) -hostid=80b0cafb - -# max -hostid=80c104e4 - -# breton -hostid=80cf520f - -# vaneyck -hostid=809fc805 - -# port at which SSM should listen (unless -p) -port=6666 - -# the name of the realserver that we proxy for -realservername=goya:554 - -# the ip addr of real server we proxy fo -realserverip=127.0.0.1:554 - -# are we using an SDMUX to receive rev STP pkts? -sdmux=0 - -# allow run time config through TCP connection -runtimeconf=1 - -# should we connect to SOC for delivinit/update etc? -soc=1 - -# address of the SOC -socaddr=127.0.0.1 - -# no of secs before we timeout SOC connection -socconntimeout=3 - -# SOC port for sending delivinit query -socqport=4110 - -# SOC port for sending delivery update -socuport=4111 - -# run in load test mode? (ignore player disconnect) -loadtest=0 - -# port of SSM to redirect to on probe bw < desc bw -tunnelssmport=5541 - -# allow TCP (RTSP interleaved) streaming? -allowtcptransport=0 - -# enable RDT rev packets? -realrevpkts=0 - -# allow asm switches? 0=no,1=yes,2=all within maxasmtime,3=1 within maxasmtime -# 4=same as 2 but also whenever told by CSM after maxasmtime+tell CSM -asmrules=4; -# max time to which we will allow asm switches -maxasmtime=10 - -# time to wait after switch before starting below -asmwaittime=4 - -# time over which to calc post asm switch input rate -asmcalctime=4 - -# time after LETSWITCH within which to permit switch -maxletswitchtime=20 - -# change setbw? 0=no,1=block,2=sub w/1st,3=sub w/curr,4=tell CSM,5=allow w/asm -# 6=sub w/cur enc rate & tell CSM & generate setbw on switch -setbw=6; -# minimum time between setbw requests from player -setbwblocktime=15 - -# max time within which we allow post asm setbw -asmsetbwtime=3 - -# post switch wait time (secs) before we send setbw -setbwwaittime=1 - -# max setbw as % of [init/post switch] input rate -inputmaxsetbw=100 - -# max setbw as % of current encoding rate -encratemaxsetbw=100 - -# % increase in encratemaxsetbw for live streams -livesetbwdelta=2 - -# temporarily here. encoding rate bits/sec -encrate=34000 - -# max output rate = maxoutproberate % probe rate -maxoutproberate=85 - -# max output rate = maxoutencrate % curr enc rate -maxoutencrate=140 - -# worst case outrate. should be > encratemaxsetbw -minoutencrate=108 - -# max out rate = er+erprgamma%(maxoutpr%pr-er) -erprgamma=70 - -# the CSM UTP: % loss above which CSM will enter CC -utp=15 - -# CSM alpha for narrowband -nbalpha=77 - -# CSM alpha for broadband -bbalpha=83 - -# periodic sendTS? 0 = sendTS only at SR_COMPUTE -tsfrequency=10 - -# SReoc as a % of the encoding rate -recoveryrate=140 - -# maximum server side buffer (in packets) -maxbuffer=2000 - -# client side buffer (in milliseconds) -csmbuffer=12000 - -# probe bw > probedelta % describe bw for us to work -probedelta=120 - -# the number of probes to do at the beginning -numprobes=4 - -# number of packets to burst during each probe -probebuffpkts=5 - -# time (in microsecs) interval between probes -probeinterval=600000 - -# client logs to none(0),disk(1),soc(2),both(3) -clientlog=2 - -# 0=none,1=brief,2=detailed,3=extensive -loglevel=2 - -# connected to monitor? -monitor=0 - -# 0=none, 1=test -testmode=0 - -# are we using the emulator? -emulator=0 - -# emulator IP address -emuaddr=127.0.0.1 - -# emulator TCP control port to connect to -emuport=4200 - -# -# aux serv config -# -# start aux server? 0=no, 1=yes -auxsvr=0 - -# IP address of mgmt server -mngsvrip=127.0.0.1 - -# port where mgmt server listens -mngsvrport=15550 - -# IP address of SSM that we are monitoring -ssmip=127.0.0.1 - -# port where aux server should listen -auxsvrport=14445 - -# frequency of aux server checks -auxsvrchkfreq=2 - -auxsvrchkperiod=60; -# -# congestion simulation info -# -# congestion simulation? -simulation=0 - -# size of the network buffer -netbuffer=5 - -# time (in secs) between drop rate recalculation -siminterval=3 - diff --git a/popt/test3.c b/popt/test3.c deleted file mode 100644 index 8eacd3c13..000000000 --- a/popt/test3.c +++ /dev/null @@ -1,48 +0,0 @@ -/* vim:ts=8:sts=4 */ - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <string.h> -#include <popt.h> - -int main (int argc, char **argv) { - char *out; - int newargc, j, f, ret; - char **newargv; - FILE *fp; - - if (argc == 1) { - printf ("usage: test-popt file_1 file_2 ...\n"); - printf ("you may specify many files\n"); - exit (1); - } - - for (f = 1; f < argc; f++) { - fp = fopen (argv[f], "r"); - if (fp == NULL) { - printf ("cannot read file %s. errno=%s\n", argv[f], - strerror(errno)); - continue; - } - - ret = poptConfigFileToString (fp, &out, 0); - if (ret != 0) { - printf ("cannot parse %s. ret=%d\n", argv[f], ret); - continue; - } - - printf ("single string: '%s'\n", out); - - poptParseArgvString (out, &newargc, &newargv); - - printf ("popt array: size=%d\n", newargc); - for (j = 0; j < newargc; j++) - printf ("'%s'\n", newargv[j]); - - printf ("\n"); - free(out); - fclose (fp); - } - return 0; -} diff --git a/popt/testit.sh b/popt/testit.sh deleted file mode 100755 index b19f0d207..000000000 --- a/popt/testit.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh - -run() { - prog=$1; shift - name=$1; shift - answer=$1; shift - - echo Running test $name. - - result=`$builddir/$prog $*` - if [ "$answer" != "$result" ]; then - echo "Test \"$*\" failed with: \"$result\" != \"$answer\" " - exit 2 - fi -} - -run_diff() { - prog=$1; shift - name=$1; shift - in_file=$1; shift - answer_file=$1; shift - - out=$builddir/tmp.out - diff_file=$builddir/tmp.diff - - echo Running test $name. - - $builddir/$prog $in_file > $out - ret=$? - diff $out $answer_file > $diff_file - diff_ret=$? - - if [ "$diff_ret" != "0" ]; then - echo "Test \"$name\" failed output is in $out, diff is:" - cat $diff_file - exit 2 - fi - rm $out $diff_file -} - -builddir=`pwd` -[ -z "$srcdir" ] && srcdir=$builddir -cd ${srcdir} -test1=${builddir}/test1 -echo "Running tests in `pwd`" - -#make -q testcases - -run test1 "test1 - 1" "arg1: 1 arg2: (none)" --arg1 -run test1 "test1 - 2" "arg1: 0 arg2: foo" --arg2 foo -run test1 "test1 - 3" "arg1: 1 arg2: something" --arg1 --arg2 something -run test1 "test1 - 4" "arg1: 0 arg2: another" --simple another -run test1 "test1 - 5" "arg1: 1 arg2: alias" --two -run test1 "test1 - 6" "arg1: 1 arg2: (none) rest: --arg2" --arg1 -- --arg2 -run test1 "test1 - 7" "arg1: 0 arg2: abcd rest: --arg1" --simple abcd -- --arg1 -run test1 "test1 - 8" "arg1: 1 arg2: (none) rest: --arg2" --arg1 --takerest --arg2 -run test1 "test1 - 9" "arg1: 0 arg2: foo" -2 foo -run test1 "test1 - 10" "arg1: 0 arg2: (none) arg3: 50" -3 50 -run test1 "test1 - 11" "arg1: 0 arg2: bar" -T bar -run test1 "test1 - 12" "arg1: 1 arg2: (none)" -O -run test1 "test1 - 13" "arg1: 1 arg2: foo" -OT foo -run test1 "test1 - 14" "arg1: 0 arg2: (none) inc: 1" --inc -run test1 "test1 - 15" "arg1: 0 arg2: foo inc: 1" -I --arg2 foo -POSIX_ME_HARDER=1 ; export POSIX_ME_HARDER -run test1 "test1 - 16" "arg1: 1 arg2: (none) rest: foo --arg2 something" --arg1 foo --arg2 something -unset POSIX_ME_HARDER -POSIXLY_CORRECT=1 ; export POSIXLY_CORRECT -run test1 "test1 - 17" "arg1: 1 arg2: (none) rest: foo --arg2 something" --arg1 foo --arg2 something -unset POSIXLY_CORRECT -run test1 "test1 - 18" "callback: c sampledata bar arg1: 1 arg2: (none)" --arg1 --cb bar -run test1 "test1 - 19" "" --echo-args -run test1 "test1 - 20" "--arg1" --echo-args --arg1 -run test1 "test1 - 21" "--arg2 something" -T something -e -run test1 "test1 - 22" "--arg2 something more args" -T something -a more args -run test1 "test1 - 23" "--echo-args -a" --echo-args -e -a -run test1 "test1 - 24" "arg1: 0 arg2: (none) short: 1" -onedash -run test1 "test1 - 25" "arg1: 0 arg2: (none) short: 1" --onedash -run test1 "test1 - 26" "callback: c arg for cb2 foo arg1: 0 arg2: (none)" --cb2 foo -run test1 "test1 - 27" "arg1: 0 arg2: (none) -" - -run test1 "test1 - 28" "arg1: 0 arg2: foo -" - -2 foo -run test1 "test1 - 29" "arg1: 0 arg2: bbbb" --arg2=aaaa -2 bbbb -run test1 "test1 - 30" "arg1: 0 arg2: 'foo bingo' rest: boggle" --grab bingo boggle -run test1 "test1 - 31" "arg1: 0 arg2: 'foo bar' rest: boggle" --grabbar boggle - -run test1 "test1 - 32" "arg1: 0 arg2: (none) aFloat: 10.1" -f 10.1 -run test1 "test1 - 33" "arg1: 0 arg2: (none) aFloat: 10.1" --float 10.1 -run test1 "test1 - 34" "arg1: 0 arg2: (none) aDouble: 10.1" -d 10.1 -run test1 "test1 - 35" "arg1: 0 arg2: (none) aDouble: 10.1" --double 10.1 -run test1 "test1 - 36" "arg1: 0 arg2: (none) oStr: (none)" --optional -run test1 "test1 - 37" "arg1: 0 arg2: (none) oStr: yadda" --optional=yadda -run test1 "test1 - 38" "arg1: 0 arg2: (none) oStr: yadda" --optional yadda -run test1 "test1 - 39" "arg1: 0 arg2: (none) oStr: ping rest: pong" --optional=ping pong -run test1 "test1 - 40" "arg1: 0 arg2: (none) oStr: ping rest: pong" --optional ping pong - -run_diff test3 "test3 - 41" test3-data/01.input test3-data/01.answer -run_diff test3 "test3 - 42" test3-data/02.input test3-data/02.answer -run_diff test3 "test3 - 43" test3-data/03.input test3-data/03.answer - -echo "" -echo "Passed." |