pax_global_header00006660000000000000000000000064126171311460014514gustar00rootroot0000000000000052 comment=e59c2ac835ea928005df59af66e3e0c25564865d nfstrace-0.4.1/000077500000000000000000000000001261713114600133235ustar00rootroot00000000000000nfstrace-0.4.1/.gitignore000066400000000000000000000007071261713114600153170ustar00rootroot00000000000000# Source files generated by CMake configure_file() command from *.in files docs/nfstrace.8 docs/html src/api/plugin_api.h src/controller/build_info.h # Traffic traces from Wireshark/tcpdump/nfstrace # All of them should be compressed via bzip2 *.pcap # Compiled Object files *.slo *.lo *.o *.obj # Compiled Dynamic libraries *.so *.dylib *.dll # Compiled Static libraries *.lai *.la *.a *.lib # Executables *.exe *.out *.app # Astyle backups *.orig nfstrace-0.4.1/.travis.yml000066400000000000000000000044251261713114600154410ustar00rootroot00000000000000language: cpp compiler: - gcc #- clang before_install: - uname -a - pwd - export - sudo pip install codecov - sudo pip install --user cpp-coveralls - sudo apt-add-repository -y ppa:ubuntu-toolchain-r/test - sudo apt-get install software-properties-common #- sudo add-apt-repository -y ppa:george-edison55/cmake-3.x - sudo apt-add-repository -y ppa:ondrej/php5-5.6 # libjson0-dev 0.11 - sudo apt-get update -qq install: - sudo apt-get -y --force-yes install -qq build-essential g++-4.9 gcc-4.9 libpcap-dev valgrind libjson0-dev - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 - sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 20 - sudo update-alternatives --config gcc - sudo update-alternatives --config g++ - sudo update-alternatives --config gcov - sudo apt-get install cmake - wget -O - --no-check-certificate https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz | tar xz && sudo cp -fR cmake-3.3.2-Linux-x86_64/* /usr - wget -q https://googlemock.googlecode.com/files/gmock-1.7.0.zip && unzip gmock-1.7.0.zip -d /tmp # install latest LCOV - wget http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.11.orig.tar.gz - tar xf lcov_1.11.orig.tar.gz - sudo make -C lcov-1.11/ install - gem install coveralls-lcov before_script: - cmake --version - gcov --version - if [ $CXX == 'g++' ]; then export CXX="g++-4.9"; export CC="gcc-4.9"; export CXX_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage -fPIC"; export C_FLAGS="-g -O0 -fprofile-arcs -ftest-coverage"; fi - lcov --directory . --zerocounters script: - mkdir debug && cd debug - cmake -DCMAKE_BUILD_TYPE=DEBUG -DGMOCK_SOURCE_DIR=/tmp/gmock-1.7.0 -D"CMAKE_CXX_FLAGS=$CXX_FLAGS" -D"CMAKE_C_FLAGS=$C_FLAGS" -DINCLUDE_COVERAGE_INFO="true" ../ - sudo make install - make test #- cpack -G DEB after_success: - lcov --compat-libtool --directory . --capture --output-file coverage.info # capture coverage info - lcov --remove coverage.info 'tests/*' '/usr/*' '*gmock*' --output-file coverage.info # filter out system and test code #- lcov --list coverage.info # debug before upload - coveralls-lcov coverage.info nfstrace-0.4.1/CHANGELOG.md000066400000000000000000000020201261713114600151260ustar00rootroot000000000000000.4.0 ===== - new libwatch plugin that outputs statistics to terminal via ncurses; - add support of NFSv4.1 (w/o callbacks); - add experimantal support of CIFS v2 and partial CIFS v1; - add new interfaces and functions in Plugin API; - update manual. 0.3.2 ===== - new libjson plugin that outputs gathered statistics as json (via TCP); - fix endianess bug on mips/powerpc/s390x/sparc; - fix build issue on debian/kFreeBSD; - add missing dependencies to cpack configuration; - new `nfstrace` cli option: list available plugins and/or available interfaces. 0.3.1 ===== - new experimental `libwatch.so` plugin with functionality similar to the `nfswatch` utility; - logging system: - path to log is no longer hardcoded; - timestamp is automatically added to the name of log; - SIGHUP handling in order to support log rotation mechanism; - gtest/gmock integration; - proper location for PAMs (`{install prefix}/lib/nfstrace/`); - fixes in documentation, new sources are partially documented in doxygen style; - minor bug fixes. nfstrace-0.4.1/CMakeLists.txt000066400000000000000000000113031261713114600160610ustar00rootroot00000000000000cmake_minimum_required (VERSION 2.8.12) project (nfstrace) # check compiler and packages ================================================== if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) message (FATAL_ERROR "GCC version must be at least 4.8") endif () elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) message (FATAL_ERROR "Clang version must be at least 3.3") endif () else () message (WARNING "Compilation by ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} isn't tested") endif () include(cmake/options.cmake) find_package(Threads REQUIRED) # POSIX Threads find_path(PCAP_ROOT_DIR NAMES include/pcap.h) find_library(PCAP_LIBRARY NAMES pcap HINTS ${PCAP_ROOT_DIR}/lib) if ("${PCAP_LIBRARY}" STREQUAL "PCAP_LIBRARY-NOTFOUND") message (FATAL_ERROR "Could NOT find PCAP") endif () # build application ============================================================ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Werror -Wextra -fPIC -fvisibility=hidden") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--export-dynamic") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${INCLUDE_COVERAGE_INFO}") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} --coverage -O0") endif () # Read version string from file file (STRINGS VERSION NST_VERSION) string (REPLACE "." ";" VERSION_LIST ${NST_VERSION}) list (GET VERSION_LIST 0 NST_V_MAJOR) list (GET VERSION_LIST 1 NST_V_MINOR) list (GET VERSION_LIST 2 NST_V_PATCH) set (NST_VERSION_FULL "${PROJECT_NAME} ${NST_VERSION} (${CMAKE_BUILD_TYPE})") string (TIMESTAMP COMPILATION_DATE "%Y-%m-%d") include_directories (src) # nfstrace executable ========================================================== file (GLOB_RECURSE SRCS "src/*.cpp") set (LIBS ${CMAKE_DL_LIBS} # libdl with dlopen() ${CMAKE_THREAD_LIBS_INIT} # libpthread ${PCAP_LIBRARY} # libpcap ) configure_file (docs/nfstrace.8.in ${PROJECT_SOURCE_DIR}/docs/nfstrace.8) configure_file (src/api/plugin_api.h.in ${PROJECT_SOURCE_DIR}/src/api/plugin_api.h) configure_file (src/controller/build_info.h.in ${PROJECT_SOURCE_DIR}/src/controller/build_info.h) add_executable (${PROJECT_NAME} ${SRCS}) target_link_libraries (${PROJECT_NAME} ${LIBS}) # analyzer plugins ============================================================= add_subdirectory (analyzers) # testing ====================================================================== enable_testing () add_subdirectory (tests) # installation of main application ============================================= install (TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION bin) # installation of api headers ================================================== file (GLOB headers "src/api/*.h") install (FILES ${headers} DESTINATION include/nfstrace/api) # installation of man page ===================================================== install (FILES ${PROJECT_SOURCE_DIR}/docs/nfstrace.8 DESTINATION share/man/man8) # build packages =============================================================== include ("cmake/packaging.cmake") # coverage ===================================================================== if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${INCLUDE_COVERAGE_INFO}") find_program (GCOVR_PATH gcovr) if (GCOVR_PATH) add_custom_target (coverage COMMAND ${GCOVR_PATH} --xml -r \"${CMAKE_SOURCE_DIR}\" --object-directory \"${CMAKE_BINARY_DIR}\" -o coverage.xml 2>&1 >/dev/null WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) add_custom_target (coverage-html COMMAND ${GCOVR_PATH} --html --html-details -r \"${CMAKE_SOURCE_DIR}\" --object-directory \"${CMAKE_BINARY_DIR}\" -o coverage.html 2>&1 >/dev/null WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) else () message (WARNING "'gcovr' executable not found - coverage report is not available.") endif () endif () # documentation ================================================================ add_subdirectory (docs) # code style =================================================================== find_program (ASTYLE_PATH astyle) if (ASTYLE_PATH) add_custom_target (codestyle COMMAND find analyzers src tests -name '*.h' -o -name '*.cpp' | xargs ${ASTYLE_PATH} --options=${CMAKE_SOURCE_DIR}/astyle.cfg WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) endif () # valgrind reports ============================================================= include ("cmake/valgrind.cmake") nfstrace-0.4.1/Doxyfile000066400000000000000000003037051261713114600150410ustar00rootroot00000000000000# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "nfstrace" # 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 = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "NFS tracing/monitoring/capturing/analyzing tool" # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = docs # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a # new page for each member. If set to NO, the documentation of a member will be # part of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by by putting a % sign in front of the word # or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # locally in source files will be included in the documentation. If set to NO # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO these classes will be included in the various overviews. This option has # no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the # todo list. This list is created by putting \todo commands in the # documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the # test list. This list is created by putting \test commands in the # documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES the list # will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. Do not use file names with spaces, bibtex cannot handle them. See # also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank the # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. FILE_PATTERNS = *.cpp *.h # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER ) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES, then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- # defined cascading style sheet that is included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. # Doxygen will copy the style sheet file to the output directory. For an example # see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the stylesheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to NO can help when comparing the output of multiple runs. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler ( hhc.exe). If non-empty # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated ( # YES) or that it should be included in the master .chm file ( NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( # YES) or a normal table of contents ( NO) in the .chm file. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using prerendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /> stream x}Sn0>lH)!ġH C}7IChO}撚925g#TidA+|K·:e1?fכ,9“'Jss@ '$DAi^̔ݯai9C 9Lьltm!^'!>Z=sdK]mt q(uRDNaW[BTG%Ëأ :.[!y,/Cmh1IAg)R /4{KX3G߂#B{B'䳄t[`X  69EcM:38᷹gcHkfqJM;> stream x| |T~΋첄y+ Ȇ!AAP(h( VZ+jT%XODmRXj53O?~$;sgΝ;w;g,dAeO.;'2"e%0ǍV*UɅ"c˪fM<<{z1^|̪χlkP&OA㷧f,+ P$X˂%zV^Ըƶ@1-XJ;z@˒J҃y6-g<܋/xK<%Z;$l4-<"z%qwi}벦:މ?tEG_%zGwNTv}'߀&>Debr_OM%\ <0 3HZ .r>]o2'w՜S8]9*8\MO  @~|. ؚE쁟.bQP)r{*o\PPèQB]z-̔֠No>gR8d|,.J6sgnE)mX LqɿSvMz lrԛz_S?[mpB}y롍+JTυ=F˅ fF3a36iXw%80P"E}GXwoOp%1MaVNB|yn %$3@v2;́ lkj0 ohO3<3-}?()Ǖ(%0_c$DQ[⯸1og -į N̻7xe/|i C:bd"fBbq!1 _Bc~s` / Kܡs#~C`0b I|C!q C& }~$<&'$YYVUz!#V`  my'ᕊ^Ť<{ONG z!]U#U5Q^x2[HYN?q$y4 ےQMdU5MUV5զ #Oޖ}Xoc&z̤EL GQ E]T#J4IQEI]VTʨ>gP!)( 1]T4D䑦hPT#yvzLwA9]ej#ƀ#ɣِGf7l:%nu&%Ї6vfbYN?q[GlV1 n4CsؐGf G:uXK#,MJx\:JG$#J2L6 $nKt7 #2 H ]B/e0诐G8zg@.<<58!) $@t06aKȠK #'OQ9z&3wf}<:6z#͎<2nC4mG#MV eC<}<?HU6+Ō'DMv;E)vâ<vyd̆H5d7FޞX3S{ONAlV g~Bd>Ȳ۝Nņ챜0m9 efw(]:Vێ3W̴Ev#!ƀ'd˴Rr`-fZFS i7Ma*C(.vd3OE&=|- :!F2q9]nzTz! .p:12ejje9Y&2۽wfF"L#^tY>呉??|g84Y- Oܖ233lt_0+;22rb?ݗfl>0--=r|UL3zON#R.D:ͩӒxˍ̬_30w!yC1|QP0p3*ҲS*Νz޴3fΚ]S;MoY®oѮ#L`8 *j.+g3 %h\ȃs`m<6y0z13+S&OxNx:s16t~e:l*$ 'ݾamL\Q.R"0q%щEɀn3|JʂNi/I崊N*OꓘUNjĂ>%(i*>4*:jcz0ޡ,spbͰ":@*PS& WFѱf[Q>'f;&+446Yt ,-Eϳ~}i(Pa}c{bP QQ>6C؞xh5QIM^>T)`YQnHCcSeA&uwɺ9&:u3#1p&uȬ^T 1NaY vL.#0Ke ɲ0+2 |^Nبډ'ξxEKP^z"fԅM PCmDm@G=u.j-j5lY3QPgNGDzTsQ+PNF-G-C-E-A-Fm'L.IAl MF$?v!MF."dx&gdX&Cc hO!y4kɠXMrc4;&9: ͥI(VK94 jhEhIldf$36&*f$-6&X%M|i4Σ'6&ع4q*hML3VNG&X)MlD\T=2;:u٥#KP72{*j`ˈ--[Fiֵ>⦖-[EMdZM6Un^D [oou+]U^py|yuaS&6 ol+76d[ZL`. ws~t7Նjʨ**A _Jwn%xȮ_)|EW/kJ%U (d%;D%x@PJל|(CFIP+ (%RI?$+ɄtůxTLŮF"(JEQU*k#;XuV@̉urDUͨD7gTDGavxabMEB褢#j  NLf%ɝxh}hV%L/y}ݐJ-O| >Oc1 00o׼Ё?a'L"/L"% \'"wEx9 !l|uMհ[5Q-ʿnAǿEMjr>Z8Ok2 { B%/wuuuᲂVN k5q& 瀞x&q^ .9T&>K?]650E1,))BJ }%lR&v&L0'桼΃uK;1LԺK.[l |͏zRcȏ˦sHd<*y-DXPSʅlr(y]8"x~8{Y', )br I&d%$v"jݛ:v8 'Wא+'gx4>=S{uчu$^eSat( X\EHl 2Zj +@\!d'L4;hE PWp DtrUw~۵E8@L.'+W"JCDpYH*Li4G@B(jh^]bqrOU}`e^erO_3~U5]??)2= |=N Ԟ$<*L)UJJi-=/i׫V]+]:;f].yy1ڪ}&!>J[>ΧOΒYAͲ,eсe ϽmkgfIМIq%q-UHd ns@u:˜fJDӵ6|]**ڀ8NZwf܉zb]7s\pRJy0E=yyfݘu$mpBЛ5 䏢sSQ@ǺafzSک5uyګn?˖}hty/[LCW/ 3etFʛ}ܚў8AUtӁ-3fc!\3}YK+ ?hu{R`N2v1sQ%&kuK$/9coɂIS~6MU^͢"&c|*L5u0WU GݷGU]y͙癙d&ȋȠ1L@*GIȀh(M@bl) RGoV *Zk+a5EJ}Vj-z2^뜓￟!9s]k} <suJKZ7Jg՝,2y8P) oP9):s0_1L,hjs:G( U'{)+IXcq#5T& +atAZ|yr ;;g * 0RΌ"i;xp `3IO U2lisi{i%rEz%4WWvWTRʵ*?X%s 8'Tl++SߖoߵЅ'*Wge`0]jobpM f 0,_B5lHa!JB)"oi( "DaqA.E|E>fA2 \BbS,˅"Z a 삗 h *j&V) v4^'5nN|4rȮ&82'  , $:SR`a'hd %LaC:];;|ZxݔlJ(g2TLQ>5>׿?ۯ|QggL%RW&q7qO0rsh_3šޞQ鰄}]#:ʣM>2ҡV=ȍ?mx>GrܚݵhW>f3Lrf?q2{w ϤE>? ns'1ÝzG+=bŲH{[4 ) A &Med8QY4jLIƣd"8((z *D_m !)O㔣ZSω'($XH^b!y8%q$B%,>*6i 8]SL{X/ P4 I9EXBRH:Lk> O]#љ#0@|AYI&=UU_aiJ﮾178GAK/tZ> o})o8iXh7Yb_~߁Z?x3Fmf)31U$*Ԫ aW5bԊ.C5g/_ǽ~Ys_|ǝ2S" +TVΘU7K҉U[O]5,nk$]3", 䴀M>.ga1pf\&׌TF4/5K KmDJ K |5kD3S|=DS(w+FwՆ=; 6 =F(d|ւ{L(F"H.[;'3Ks4qe\a L.jԚP#k-:$*\26;nB[Ҝ"ˢ& =BheAW@P#VUbxY+Ro`,:.!50x%p(p,i"5t_f 9]U0:LtU}VYlQv)/+I{ǎ {b$hVڕnee=J!C3\w5YxN;qXW> EuaUFM@yQgg~_ p"8MdhxzhċnTմ*pƥk(br!q<2}鷦ز0b퍠.RF`׵%^nٍ1/#;'bp}jJL(Z +R^qtX۶jA:E< QHsp9\BtO :m6_[]i" Ț-qO=]=[1LgAy!FIW.B"@&b+P?'I'ޖ+(qNm^դ ۉ 0e1Kd̏7i~!]a7)M]Rst:(uװUl-4<ӣ2-#2 ,UnHs0_ m9dޝ#}1Ŋ''$'I*h}7tv.d3ϓLQϞ:(%0č_3! yyAF]=/;x΁GN7<mCΣHSLz̤MC_RԨ$k<֤X2H4yT[ژ87輆؈Am6‡mpFd7 h 99=>7(.#M!`<"iG9ƇsOn*%LnT:̑O}]-v>Dd/ +WܨÕ/p_L䄁f#+#"J͎FK QDnǿcKcJeY&+ Ϋ>S}~JC<nUKr2P4hHJEXX"1@-3~Iќ3T7Y7ΕcGs*/G=Jq c5RSIQ&5`tW)~\=A867KuFIߎ3ֵ{;ZqbJ=RT'RIbKI)Pc eNu =i=4ӐFg ~)o5ƁV]T\P˗% 7JQY̊"*,RR^?vޱliYob憖 u g`X:H.K%5Bň3NLK Ldc{:uvzAZ;b{bI+.f =Ũ)}BRs֟{gwuvgwW{_zZ%soyMZ*A24yyb3͖X/BR?Q 89$DHzn Ws' jP&rh@PӅ )Sk45t\Jʘ`|R0Rt;ߠ?=oTԔw;8ǜ+i74/o3OȟyW5UfM^Fݞ#ͧvSي>۸k$Lk{: TCpdh}2jG^i㵢Op &n^'j $\>x vԝk]ɀS[||M|8-v24֨\90ɎR/ r nuAVW7= |X}ㇻ.i<}yv5 Ude^-Lu cjNgXp=3Mxg-ިMH9ڻb2jxqs i1ZC48lϡ%R +9梜m=U$>)ts=ݝ^^^-f(Tz~PNF6b) TAMżJ= 2929pJGSutT,Ƹ<4VOF͈9@hED"q!h,c6[ !}r qmߔLNIv/ND"!uUP[(ȃqy>g2cn_7 O! |.1ҙj2N"b%Sㅋdayc~~S?}El~vWk\ ʥߛ8sAoL:gۤQyjOkr&5@|An \DG.m8+Gq%ޢLBW(ѣn[+;p92aXu~2jF82P2dn(hЄ̀`$h1c p NE^8+1 JK6[?~炻;ٰ[>>ys3ML뛟!¹^!5E&/qmQC\{z"C*AХ?K|}^C<[*S*N09^q 'S/Nexڬ7L6d0j%0tSgcM]Vc[E0Q >!f92G}|g[Z2恡q{HY,+ٙl\jOu-++RXM&|)Ҹ66Ӑe:22}=>'AFLy})o閒*=U 5ϏEEdh]цEִRjq'ΗOf2_r+Y2l[y^Zm1w]F [IgvByM#mgL.Nn+8# <wEy{3YVν9_Ϻ^UUeYS-ZlJ' rǸ *Ghv?|z|ä_l}Gsv?K/\feeWw/]q, 舋E,G $+g@B6bEf0dQh 0YWEL|&(M^?G6>ͿwES/3.YJ>^ݜ *'}3Z_S /;G>z*HeRP+B,T߷XvVx!ly9r9l0+(F9+vF(0g| UT2vb9>Od*8rS3wEꎦ339;L\$ƊC!XzN[-I)Z RZ֛$IlSyݟ% cQÓ!S0 #׬C5 ݗA9Gا x8ST:!~4$(%d ` []Ql R6=m>&,cۿB.l9qgl6Fb2j7T؈,*㬗*xMEbmŮ dˠ`eD++ʼnp2e[hy{ٗѻ s182%NgɕTKӇϦt:n{y;Oy⵳ʐEАPvsIu3Ё.~x38`!aC([sקڞy,/"anV&X1O.+G(QrHtC@ki5s1Tt(p==⦳^W}@\iXuShc Q7zKw_}oqR6o~eu>MV3.S6-*@C y)tkx}>dg&{};>Mm߾2<$wT:40#q1 Yhʉ{G".ۦ#,K#bnbQbyBD(%ڄ~5nB4$vwPnmåOwKu{VUe0݂B3'Zg-c0yr `Η^%ܹcX(#J.C:}p k6?0y&ohn:{NL,{-w(-Ӳ@ix7v+GF*uvyޭsޔE$m"ׂ26"B CpPu:ZWǯz8>Uz(7Pd, "%*bwJ /osxa,|nö+v*;.w;8ϝ)&הL5=ـU-\)jnU+ma--"~:B :RG.K qwr`fL"$Uڪ h+rŬk\dTJ]_+zV{xu>Ք\)k\)ezHw[ krG~IcatMKFY*>XXӲ^:_Ӣ?1oqum~ӦnY ՠK/:~6=_}o)IXS +OXml 슼-Т,15jaPoM^öR+v5i_t4ҘjR4y[t3{2SN v1+a9gҵ]*2O|-meҏwk|Hα3UWFYTVVW 6=c@ X`h7l-ɤXj^.kCC[Bq{BUCEPS䮉Bm9Ž\E")rx_| ƣ# [W'8HE˃Q}lWgNZ=dh[ eBF"cԟUsI.nq.R{Ν>kϪ~ϧh]}ݏ޴8uaݿ3EsǗ<ҊT;XM5){&>H6b[kxD*7pʤRdo e B7<c<Z?d{3<nCѦǃ1Qb4C(V % \5JTg9\_ux絋ΙWz7n78/ߛwՊcZ#qw_I,N5IҬI0[݀l4*cqF{v#1q]7J]ymq7PXT&.XcqKDO-e0 ={C8d+%_TmՂw [2olӲcn矞– }G5C!@mD:"} W"*Z`gP7(ș1M Cբ %ƀr#aR*f[8l50a}4^ȹPpnmW*=z"D8/I zN'ћ sǽf…,2 :egkssoØ)0/|\s^ۣc٭a{e?ы{MaZ0ģ1Zսe*0UU9Lĵ&^­37 "9{s-l[k8tW 9(n |qZφ&E5FPطc #vA2ڔ >~wǎ;.0! 52|(xVNj-¹0P-iZ֦ %[ЭI7aQi;ʖMФA:AE MTPC$ & uR, U,]}v{am?$@T{{_&sϙ33gsnn$ "Qn筸Tڄ퓥99pcu)s7G}lP`P[䫅hBZ1s4pO91k`jtM{XK;J=E}'c(:4u/;搶p$.aQhO5M<ћ|@w|{+m"s:ٟK6[y>hTL=R[Kqyu#Tݕc-ujV%K(Egd]q`AOk{i܌'[;^Z{vU? p|kL\x7,꼂b=7<`k6*FGZ٫^t= < l`hF)vWt\:꼤v T}z' %]N]/OB5H8ž *#3;0gc*OvM_m~{V#d+uƇ=~m?\VyqM0;l̹iYRUr9El{tnKRh2-`v" YgƂlg&4hF'BS4C}M@3QGIL=ACѧ71}HMZ޶qL{c2dkV] &Űش@$F=sZFj]fv!:{z;C^`#7+FW%5{V 7%LsM71lCYUegz'VyjEl6lEvvl9ps6qb[fseS7mnݺ0N7YYxBv/+0 F(/1v`|3=rsm_PA=憅ˏ@pQ#8;Wп.rHX@{y=r 7gGzbarC0(czAgo?`-+R|Afzn!h X;t Bx78&x/6R.ԓ #B>%6`?`|8Sx,O6 Pzr)@}[}_FAm!pC_v`cƃXChXPOPHڀ?#dF1r-9f,8 d <p,>܃eS p'mR<Rk%NԱ@%N JB<^.Y06V.&VZ ĵ!:p<V=0'(Ô:hD'K)2"T,K2XFQTLJD|I6?-FO 2"2:ΕtKv#8QRD"/2etp3eT 7S"ɤcYD7Ȓ @(%b+%2 LO&rO Z ɔx2B("rB@-2YT&&t%C+! tu#:dE鹄Бg$QX:' E/I<ʸ*ҡy'~H!H3Aj8G.  M+QdY2"-)?=a!%X1 {IX.I]ј ~E9PL/>~f#0M$X$&x@'ƤMe"ȅ!`"8NXO((KP'E{|u6d:fo`2$)QBi:ҭ;_CJ-8>!$|]m"!A`"ظ j G6 *z̅dd KSeTk)ړ"Y}Nv ,{\E<$IP 5~I.2r:4$@RRAg#HIZ Pә#;( xͩ(" GLESP93Q#g)KK:F=Ph-F߲cJ)z@Qdx (S#J" <ɗ ҷdJOdG1&9 Ӑd5H"@#/Tq&E:F2C7>(0E}Ḵhft_"*CVxJ;uPP{)>Uj?eV8vXWvEI~YUvz(ZRu.A.C>hE|foq|A8}{t3.Ũ5K܀痾,4( y컫Xsc)Ϡb3 !P2:"P;lK=<A]F!dy[5Su'Wؙu(/_Q}&\DYR8~Pcet9@+G3/&S+W'#N|Ie FG _OTO|G)HPnEXy讧Ud5)3(*CB)٨7N>e:P#5#Ghfll.2>Òa c f\O ,($(ΩV}?`3vB:VX.Ss|0cV=Z@Z41/\%"&FD9;v*-_yX\ɍk==`Z; ǩB=z^"ÆZ*8Moj.\]g]UBсu)>(W1$ocI7/'!ƚمa=JlԺmU}UwSI6fv1Q髂*x_zO<@@ [9ՅPCU{"v YDok9!GLK[v##\T2Y8)IeƆpؤ!2 KzDDr3#Ҁ*V7 ˒$qEt>GAZ#s,H3@HQ@%2aNpzT5XY#)܌LBhiSx^$áv==<ǒ*Fszlq|0Z*r!xngQ!Ⱥ";dE%y)%V D=Š\Vug4l.zkz#CUkE/vg S^lYMguM\k5qm{4umUez5~u`}:Nj)>4!oǍаz0q#zng*}96oV)fƏg dWؤX;qL[WXOhrJZMo4ZkB\|/5ᆼr:8ku"khw/Ͼ-h(İ,=PƱ#痮:5`j/˞eK"p$TqN*P/ːiCY&a)Y {Cg+e/4|pQ]ӓ8+Uwzzvʗlv]e´ y۳DT?nPjG{j1@| c펪rل罬wk9hىQ8Je<='nY6u(Kh[(~+&xOo-vd]GF;v[=['إtoKQ9`#)C,< IΐF҉t(+c`I<. ?c~!Վ2Q.y}xN-tiCKΝ;UȣI72KKoO01mf>(9sTA ]=jsj+f6n/ߥ[h2.}-;*ȹǪz?Kdy}jVN]mH,w1sW4~x´F &vTn|m&'WMv&LǏ%["c_|km V2@fGlkZ3s%ϑ~Gǒ4WcEV IW}X,#BdD(˥҃/ᐤ2=xOrߠ_i3{9a)Ǖ5N4jODQ+MH0 91_EkgewƤgolO&#MnqV/sҁv&£C%F~ 1d6w2z"uhV.kLРs2o-^v/`rb0IkՈEZEEſ+%>0_zyq cJuEQejFK=h,)CYOF_N.ۚPvsmw~=x;$oj7ϝZ-omݛ>?~-麀S G$zmH*V$-m:u3+lL,lKw#nMpǛ6na$v[T=uzѫқxM&-q'DUI]5Pg); zنLVğ=q7!GZmɩ59 ,fx`ݟs-YPkᡝO_X=}bJT/,jҕ ^KɊ>7pS5˪j72_ UڇQXA)6T;דa_9 .,WeKiB]yԝ =ЂpJ4 !:W9߼" Kf(nMwYꄕF1"a EnqsݣIu>X \/U?/ehsGVdfJ&Zy֗slE֏K&7;s./!6~saƐ8Ž23ijОеfjw xo7hOh[" p׵x )-E͘.w7GSK]wwXp||/ןkX)bydY:]^4<:u:HfCAh9ջ8=HZ6٧!q[;">r V;EJThsɤrn/7+W}9dᘖO1yhi +L{=B?}QXM4Q=vpp&G:Ӄ50N!QK{n\@it0srL”D={wgq؛+~(;-ɱ+EW6oquS[, t6Sllpa-BOSC:Wv1d1_r|U@^̨QW6m;uu F+~Vgg߷n(Islæ' }F@-!agZhRi{kY%z޿ђ}3 sr<ѺDN)9lYImg? endstream endobj 760 0 obj <> stream True endstream endobj 761 0 obj [ 0[ 500] 3[ 301] 10[ 160 367 367] 14[ 524 367 367 367 524 524 524 524 524 524 524 524 524 524 524 367 367] 36[ 590 566 598 613 536 525 676 654 278 477 576 506 709 638 674 558] 53[ 582 481 581 648 587 852 557 570] 62[ 367] 64[ 367] 68[ 525 557 495 557 545 370 502 546 285 367 504 295 830 546 537 557 557 389 405 396 546 490 744 501 493 475] 95[ 524] 139[ 713] 178[ 367] 183[ 367] ] endobj 762 0 obj <> stream x_e,  endstream endobj 763 0 obj [ 301 0 0 0 0 0 0 160 367 367 0 524 367 367 367 524 524 524 524 524 524 524 524 524 524 524 367 367 0 0 0 0 0 590 566 598 613 536 525 676 654 278 477 576 506 709 638 674 558 0 582 481 581 648 587 852 557 570 0 367 0 367 0 0 0 525 557 495 557 545 370 502 546 285 367 504 295 830 546 537 557 557 389 405 396 546 490 744 501 493 475 0 524] endobj 764 0 obj [ 333 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 667 667 667 667 667 0 0 0 0 0 0 0 0 0 0 0 778 0 778 778 722 667 833 0 389 0 0 667 944 833 833 722 0 778 722 722 833 778 0 0 778 722] endobj 765 0 obj <> stream x} tTDZh]f;H43Р ` I6!ld4H#$4B͓0a J;vl vy?&N~^8K̯{gt%lg>K]]]]]U}53f4-k^pe ݏfilZ|g\[=:|ބ[Vo^nkp_Z\Rc87ts6O,Ou5d <=+ 궆Zykn]-nz|~P wܐ}Q~*h)]&>ߊϹ=#{~HyC7G`x@i .?X/6 Xw[ĶX=Ip'# PيM/ o6ռ  |soӷNOl1jpA p`ā J,Q"lo4grlqt'O@7gՈ^'p8Vv~uB!,y4?yV%Sqp=vQ:?ડefY$qq܏rL>g+Ø۰;U_ki9 (ƺ]} &$vUnK5b*;YT^ޓ]Ґ4|G ɮHKHJ&PMc3Zpyq!N P1DQSPjAըJ(h5-ƚZMDIS1Ap`kGG5TTGU=^c:|HI>uLC.LyȬ: * z.hԣ H3=p`6GGTTG zzR$J򴎦#5ObZ"UP1T  #R$utzt4\جTGQ# L j6g`a6H!E$Oh>BpMA1 f)JU/n0D0Y4RH(gҐJ41-f *le[fmXnI(gz42io4*ꤪgt:h~N)%9=d! d{Mٲbljr尹蠟RPPBnߛO`~r\,HvHC>"(+<|OAAUBj%P[X)%4 i (K߆R>蠱̥*‚"zx-/**‚B,/H(ӐUΣoC)nXPPPAQQaA)`HPPYZZEEX^"QiHGueM~|A?]DAA,(-WT[UU JK`yiDIiHG+蛦|˯16-ZU-4eWŋ"E$! k7Mg4PIAA,V%55K&E$N?lXO4S\"WRPP-˗^ܸzRXtX4E$3v%}<tXfy]3=]ܼ,_޼˧~dO?po7؁g?攨~ЁpHˣ}lpr!`B%aaEeU5@͔m`PbF`6nbXaO#&WC %HcuV:hׇZFb%Esf}ޜYL۬)hJx<s׵T=hwڊ1>?V?`)OQyf59{sNyM 챆@2)hx)ǀClq(Q}׶@}o,[, }7J/rߧ@]DW4NCSa1aPcѼ5i @$ {TĹU͒MHLUSq}P8G}t ]&]y<|^}z*z:z|1;gK|=G}Oe}˱X[z>f q=xGb^ժӼ͍ C~Rh4'Y]”m͌FZC&t4]ᮥuzvW9E2cY_uu@xGZTI\J`vub5U4TxgVMSbb9b#pKr*6P!1>5wO'ƶ|+;pԦVlu:q'ps[C4k-mǦ#VntP o|C)VA9R|=ҝn.,6*HUJ'8@u<5m>]ʫn&0'g3{s.g3kę9|n(w|`, :Ok ufE]hh>lf^cVwstfFzMO={7B"=vd{Oct QLG0tAL0bڏl.#ʼ ޯʼ0beʼ1&wm{Ob ӧ7Y?ThFFí.!L1;hbڏZΰŻSY5&Lލj7pہ6` T:BuT09R_bǼ"Sa0c\S~AFniv 7x3<,#zvf7aZcd"ͦQWLZX˯U+4^"xJm*'1JX~iF޼4V\.V\6]z[ڰ4}4A!|47k״&gC<-۳56ȉ6" ?ȣ-c-G%jdR{jI;VsNiS< RC|p6) %^{?ŀ?}aIq_=|JI CN' y1aH^&_$pZRUuȃV2mrp$vRF{IrRG4w@^=S~Ijo[\.Dx|9Jr%(g I zDk-jhC=6%e%%jEv~ouw9A=۟msu؉ʦ"5V]%/%B&se1juu.Wx@Ϟm?b u˫˔RZIӥl9ݯ^+;'Br7N,;z,>&!wVDۯ;?E4_n;^?s끱eAg{(TBM~#+4M:AjVG8N+j*Ѯ.Z^t&DP9ފ#*#:AX˓y+lRi紼6܍v@mMmMM ( %HWTas ]y! ^zN5y1>+ qogmJ8'^:CE80:fM6~ r^-[/i7^-ty .0;\b~A1%tcsNn7p۸CG/[Ы>J[wA~OQ^Z-\071qh-P~U*ʙFnvvfD@kiE}QU?InϾ}mft=g?'=GBgc>L%vދ9TY I}B^TRX-D1Í5̈́ފ QͨޠM֠//)aQ1t]kLMƤd-[!&ɶ%0 *!,~7(_7[Pj QtwKW%| \"Yy*n/mNQreFNh|ipQJ5XyZI3N7f0{‚Rf"ZmL7(e1 ﰡs@bOp_z[%ijoAhDicyMhZ.qOLj3U jͥZi)"GZnL#1YGjf2w,T[hv![&o@~~m.>u8 G4D$.T6u/]`ІxІd,HlBp6jb'˳OE r#3o_Sȗ_D|wsD'>G6$~o'E-=0B>~E,4z j/8PlQ]ܷm+Y5.ѝ/Hno_{'^Mܶix?w'+i(n zfl}1yvC-Vd#fŖiX|U(Q<xۛuX5u@Ս)XJ LE%3Ar7O\(rU^fqx8w9OzۊYo߼TeXwɹY'{O6{PōUn pF> .{{M0x 4D&<$rFxN D(ƃQ1kov ~K?8?ʚlXFCC~sYsr(Kҽ&y4o< ǢWgVijjHl![VG(тYK&oKλ,>?O^V]SS]T4.}xwΫJ3Ckc j  e285hUs0'd͔ )2t;/؇Cٸ|sLhl`ݣ\7YGM]F~ i6D7>cYCvBp /?7.s>*4⠂_'bReN *D]DGPٱxUYyT d-9j~:M$ M$|ԓL;EVJ^FW" ]#z Ac?<j+UDM j`L}d JRƘd5x(!t[8_d^oM2/><v?uaM9V Aݠ1@F*OHвGhjZ:붣-Ec feq~W;;DNE/~)4)寢vlyWȍO[C+kL)CYqM: n\dmlã.g^>uK*8Y]NZAܥ,NYHB䧢WMK[~7UosŚ?|+PL>G!P\iuްw(ma1aK.?WkPXͺ;D3̎ ќ12cn1G8Tlp0޳Гg'#?JWpY^46U;ZYڞޕRק]d%IpWsx_' a[xD^Ϩ Ψգ'5Nvuj|5}՜WJ_]/ߣ71:r1bߍ'Ryf9`.'Ǽe,L c^8yu85u-PĿcxj)ڳ0,g1Mbނ%Ho.K2q'Uc^O?HynP|\ )^#!N(DZF1E22"kW15ض_Ķ;1+-XނU8YH.湉糒Bδi9{ ¼e,>kTPe҂oЂn+gcBCHq#U2CRI,*,,jhm2nF$nA~I 2\r3x.AEI#=q1\e װdw2T6rT 89sdu-もF77_UXBpf @)ZXʯqp?&zqh^qGڍ2y2nFSPqRq 7( ZcALʸ0܆VI(tT*w* L:Zq\6o8glE?^EWQ,FC2N)QYFFAAoP7WVZZ[DGF|uѡPx7:P[[׻gdط.2*NQ |K۱~ξІ06-,.`EZ}#CHxh/Cz|#X2;5G"x$:b͐3s`d72\ K`z! }#Xj`Ea %FW?n@4Ѕ@?/ILg ֗A)^UqD:r?J,cy/(ƚ%;em#0̞"x .̻>Xmv!4ߴayTbBѺHZg/&iqޅ=>fM{`=JZ<+1פc}(o˨OFEYP^+[cZ$HeftM!VЌNƕ$K\z݊kQJݬZ;]rꌴ<|S¾|70"*.6W+Cj% i~#g=5a=l,#l:YV?z \^YKYߔN0mj|Ll>Mq*QݣJe}Ic'˥5%)%t#gIjw\IXQ߆&Nyl 7&37S>#J?j.y/J6/E?{ucla=dR؁IRLͯ[R#2*0$K 8]#ѰaSRg}5Ni4z {SHMfa&!y {$)I2 gv.[1V#X-t KbF.#EG}#6V(žD{(J[I,,5NSAK=C:?Rj0_뱤Ꙇ6k5+]F!&qTW$ʒԿ͓MO"'W{ |drΔuzʋ)d=쨴{e9,뭬H*&Fw.ٚnIy#ȋLzNY")b6dDݲV{J,ej/_:^¬yeg|lV%%Kґ]̺PEdaf_" 3sT4{/Ye$W=GQY?̣-kuq@aR{$ݫ$Cw^zHS%EWDL;[Me䙴SQ`;q'8'5/vvUeuf4+/]dE=ODФH^'[Ձk04CS=$]7bݠ'dDdc4K>y>NXx.n|ӽt"r;'C Wc*3= n\`\rL>LK9Μ'-Nle3 a.ٓKv#/"8O\jdSUHQc풵t'#L;噭ae\7,Ugwg6Lc},-1,[7:ύlò|,3)%Af(`J?-g^.ђޜSi{SmTfچFR',Z)jeR-m$Y ɻ㖦t HF9n͐'SfR˒ddk#WS',"y߫h%k&`NfMW&䇘Ny=6;O*Ȕ%b;PҊZ1´"d+]zxò z 䓬RQ͑>F؇Wc?~j7Lo&􃩔.?#V •WȨav1I}-0H\_ZH"!}xosQ]~} `[ukWOܱovyR*c_bO8te}ww/漣ؾ=JEAtB!*U@:^@B"HAD)tTE"E)^傊""KuZe̜3gΜ䬂>Q_a6 }[ / K,3i!yd>, F24p(d80Ѐa`2YH~f9z6c o2F摷0 !V-Iu8~ؙ7Oe)H@9Etqā+%`B\ Ν_)ޙǚ/3Ha`' #i< !vf @" P>ۙQ__, ( 3@`0x ڂ"7AUAI&Ba P:!wm.ΊOʍrluPfN,瞙yX"OUz-)M4xDkC>rrXeFZ?N+d*YsX.p\Ur\ A>ͪ36)fW֊B} fWy N膽. ljn#aO7]L],~<]PI}R=RT .H)=͡?#juFW~q(S[yԁP9]两/۝2Q}纘ax2Q# հaOw^ѫ2hq&|xqVl AEr?]yIfo:qR;L @.V9,]괛u3갲"86N%ץe_(&Nn (Ǐjs+yy=SXigRPࡍAKggr(TpPT`/cn) W.G!$b*}A&A)pBY#9vA`xσ@9 B-夵rs~u?;ckU! ]Bmȱ]ȧ+JFĖ՝9sӿ'zX,e@ZM(i52F 7&X,M1qWY= "ra'܂j 6PԒ.ixz:6G>UPRx_EvX!=Hc}ES$}Uc.Gܳ2\](ToΑ}m0NSu )iK_SuT]#ì[&\/jMNq /t%v >e q@CGpZ(T9 Rj l[7wLK=B=/7%β~a2 zxStڼt6QW.H o~=һ{J4N ߾rRf Rȴ"zv45SQ_PU{{RK8 ,!PAךx"]*_m#A"DSBmGW>g"з5/SZa`x8hFަǎ!ޜB`l}2D1KmKaOm\lcV&k/ee5%RxjAgwdLKͤO&dr2'w*v$?( ٪_eպh@KgypJO󖒝$Wda]";zƺ&UݨQa#_j|xI.G#3ltbB# v||۹ dS>l^- 2g;zAF(2vBSу@x}SzS؟PӺc YTU7Og5ɮ;-n0tOIڹ5 H)\kllpsȑ:]K==OZՈêlaa"m1h٠,1a>~3I9,y\P9dDVbR#gV<.G,K@Ђn'xEb()~;e qY^? FPψCߡvh迼ooJi3]e{cnf*Wmx1 27tA?*Ȩ*Ŕy;̢T3-%8hӨEۨI-eNQ_-/[{RG -1xS&Rg j16^g{N5Kܽz[߅#rN+vې,Lxį x6:!HZ(|s:f}Lz(i;w7-F$ ’oEH~Al6_$)6J?!u㑽PeXuJS턡lvkD![ Jb1RTTTvCF]%_HD(jx -]{"ƒvݓ{{ړeXD`}6>N-EMjɰ\bO*m"έ(2k4. ++l=3tew׊sp<žli} K3߱imm HR%Nyqc:jLt@aԑ䇹k@#{['=B, z `r zر6/mGOюN ٬/B/![ } endstream endobj 766 0 obj <> stream True endstream endobj 767 0 obj [ 301 0 0 0 0 0 0 0 367 367 0 0 367 0 367 0 0 586 586 586 586 586 586 586 0 586 0 0 0 0 0 0 0 633 595 612 643 569 583 671 684 278 533 617 553 745 667 703 587 0 611 511 612 678 622 884 601 613 560 0 0 0 0 0 0 533 582 512 581 575 370 502 593 298 367 548 295 859 590 566 583 0 427 431 396 591 527 784 552 534 528] endobj 768 0 obj <> stream x|y|Ts̽g#CBPf%8% JAE l})b⠶j߸YD* "ys_J;{v=9 d@S]lxy4V5anMK#0C'NuxG~I줉wtҼk /~"`W8(VpZrO4~]|?<l(:%C^#^CTXxvN/`9W7A1kusg[t֍XHf^ 04{] >ۯjk_|97|gvNXV Mi!C̼zn`_% 5M~wE]^ڎy}gF,kxi'SREeE܏u5>PocSEQrSf&kaLGv"=;fè"Pao҉k)y XgbeΖs9$|e-ep^}Sg$.. +10z c.%vvx=~_ L7px w`瞄w|eLeXxэ`?{?} sAO49硙RYC3 C3-]^" gl(B Up..MPOsEIQݏg8]Nh>b(h[w0Qu"&gH:oRSX#%8q.u00@< z9>!- 1 H}وِxnb?0tx#P9Bb/z!ީS ~-S0q B,"bĿ`(NJ`0Ƈ@ b) AxA)pĿ`8A3(^ aH ^ , `t =2r +1P:U0&)E<Be8:8O O``"d0&cA©P805u W ΰa&@5`6ď`.Ny0aN"G:ī`>\ W>k, 5XX?_q ,Blňah߇q77{p܀x3܈9 MCp3oG|í?a9毀AXHwZx +Wp܍{} pOj?">`cpj':BO0Sxg"C|!"KG b ᗈÆ[+ؘz~< Mx~M-|HOY4lN$x q+k N3[? [gR óXEx%x>xa+WaD㿷Uؙ=`[ G|oD{Nxq셷1g?+p > S;@|wa8?Cx1|xcpė8|)|zNQ1?#qēpKm?g$isK9; _)ij~ ~pB@L!y-.0DzXzmMKDAx^X^%AA1GƔ]4V`e,'mK.Q#";)ţCo!Mt-vi<2ǡ9@ƔvH<eޅCKo78GFU^Ty)C3TGKUEEDEvBx( p NȩN4QQ $:LZ B|^4B\Eoax@hNCӝ. : *5X &郔GuBGY&#] 2\Z!rPj,ApHCDyЁ8f1K. x#B#ҝԜt+pȚSGo"AxҲf}iZ. p\Kw\v9&Hv> Ԝ/b\t*Uf}izr͐-9 pn#.+N]R\R@w`Ӈ^%rt&az-݆crugn.w.P]rQ7\(2.K([c:ylO=>lxA_^f{n{-g{#߁G>2Z ?r3 mb˝[uUG3x'+MZz$Cƒ}X^@|O=j9 pۉL=@tԄqaq|yy/+F`&&tfe= }&Zbgo2-YYrpXMs]]0lV__Ծ,%Y}ܖp4jmR<b$23=| p}eW#ǒI~*9  Zjvi[ mP:yp(b Si?8)yܚ9yxV^2275;RXO:˳h=cFtbO)gةt0#T5 t.+IgtԈPdAg5|K}L=GW">:"+oj-K}{&1\Ӯٵizbsuk[~2TΊ"'\c+b0xxnxj9cjbj´55"&P; B-I@:Ep us򴴔Ce-5-3 p檪X }mU5ʬdٝSzMNWi OȲObhVh6Fm6GȊt4+&şd3f=,-VeT-xmeV)geX[ XyRg[;OP[R=N<>gW ʝa"1LPaM ~ /r"/K\v Pl)ME ;hFbv?qhO"ъ}( :Ϙs8 Y+?B[v2{DDDdeB{= Gi 3 u\詳+[^X Ad{*$UuU.U6zY/H^h|LJtͫi3yh~('AKDq ACA$0yc5''Qs?U띿yYz{*u`C22uyӗeذ^Ypc3A.Wf7fސewo6dLez,3 .;=pr>k mZi0 'A\im8V}ֽH0JDidp~8\B %+ܳ7[:`~b~z~'W.yO g[Lja4)4S$v *J‚TB$*i44D))mm#(WӳqmD[@aRlcˆo.2WbWwȬ@G`0.ҏɔZHվ]>Ɨ)Z?Pn7`60CVghv;tԣA53|y>=uŵQW{#̳~&v]%2,҇ d"sĨ.up8Kfά!9z׊ky!BECLwgδO r~=/Z\c$-jMȬ@DCϗŭ7u #Ǟ4+ӪjG"Yz/- 9}fAMVL}Cm).-a3C xbBv3g*1v,V2g9GLJhWD,wC4Rې@6îIWyr4ڲ'6TbBŜꌒڬ2j0ڹ}j@tGgTjC::b!1\08}8ƚ"5y ۊY&FGF m8phEZ9:Ə"bFHaΜaeN1r#J'4r)@BZV٭5I rGXZ67FUԒFSV[.TQP=KWs^){Y 6'E [h;CemJ "U..* y!j ꗶ?_gkr=oWm~y6Iݰ5FyWL"#*-O ;рx0Qqi1 'R /n89h>KJǓil9ͪVռ|8v{P !{D{vTOh#v@dED(H SquaObs^ϰf;Yw#yr= +P~s((y!;р^j}Eߥӏ.Ձ@s dqUV}8"/3J/W3ٴLWj³OzChw%,YٌpI!pNƽqucϞi '̃}d_Qo`yl, Q?v2c᱑" ABed5WFE.px8D4ѲWfl l`{+q*@ޯ.Ov1h)Xox,xBnčoK-YmݞA o3R'sNɁ=Itd l&[4i99'hCb$bs:=8e wo~]ݾ|y[;QL VB*)YG0h$K?W dN4pWB%RCm=JDJ &Կo^<ױ}W\ ?Mw6s,f-iͥg5a+/ N/Sݛ:4*%MiIJ*a2LX%}ee1)PgsAPgsS yPV(I /nwc o:$Pp?Y(/`(,0R5+B\ *iBgr1.f]nawأ6sQ9 4JOJ^!MES5u7h$ҟB#cHH*szq,p2Ie${^G؟> ; -KEBﰾְb fIa'ט恵_rra^g{)/~ɲ+#p@G7ЀKHl[ʖ<!r TC"T4dkN0iD'2om r}gBI>[(=aagob>e׵/n.9[Lw>jkǣ532j9O ,$'K w, (siRVؽNkz/jM PJbvCfb㏎ƳG&F.^N K.B%*Q9=EE>|9!,=C$Ϩe#\=7Ѷײvy$OF x:;e0_$GWbSo&A\[X3 W,_0ޫ]W}i ,E7^Pbb&fKl?c>)WmY]?} XT9޹w6AeTAEELFTPFesLeV撕Vm?[LSWf(sdj}|o.{=,ysgPWm"*E hP0SCBt=kA$XdQr58x8 gILs'!&Q"TH8P% &^&hubhc䤕K+R3{޺+%sx.5w|_Mjgxs~`?=!{a !KFf=$2D 2BΊ['ߊ;DI $'.P1`Yo 6YV7"jxl [Q0.h`\('#p1"S+lcZbC5ĽHdJnN'"v ,EV #N`"Q`.Qj& tzHf/(8jAC3:h@SfH <&8l!U-TԲzN]k[á na5u13r0w{(8{=`@E͆(-z1#Rp }4-(}$'|12صHY4iF͍3O( oBòAYpNI#}MAJpWy*X}HDS c*U#iwX?i:x1*(d7{_^[eMv8L&Fr¼|oIcLۭJLܠܦl' 7`abXL1YxQ%A]?D'2=q>62c[3cI-4j{P`=΢ؘ\#X xa#L!?+THfp 9Ry@>dGiܑLY82p$SԲshnVs+:loL&t Ԡ!:a ep,&9. c=B2-BTpc>&7uyfNBC}>C/S`^fBvG@UHPbȮEg9ѸRΎ,9]xq):21X '%Mh ͜z1mK&ߎ{L=i)/~wwHG&ԫ9dń v\2IeXǐ :z9#șP/Lh x phҨC')O|L8E -/D))kfK{&{_T_!-ڴ{XssX@PN٨\\ܪ}1%8ơ㿌K2x+?G 5$U60U2hX.Y <233qc 2bM :LrVeD6}o mibѴ#IzA8~8-Gǃ_kv'wڹJ!D"[p YXDXEIڇ~fȰz 3T( &S*0kmB(, 2$iXMNɩ)e&D&4ob0,GoDWVsydxpK?(* {x`"~9g[_#'yFombEeL \q q ؆cCR^/6*Ȅ,[4,Ae,A[Mj^*pQ; }J:!&5vsPtB[މd?#lP0q[_Lwk Ƞ 1GyȉK$Kka ^[w7ϩqWm zf?t*;2ўP[s<1Z,STe2>JȑZk:aT+uY*r_x1=luNN"{]̗"|dȿ4v 5h>-`/1|7YQ*naQ]-"g]z$~2~YgYbSb3bcP[VL8P,MBV}oaR<ˬ!8"$Q!펻`3 dU)}lSN,8R@ҮLcYŢӈ&F@fpml  ܘBCB𝍦zٲBwwL7=Z8g7& x.~Ic'8Ɣy/WoOhڞ<%䦯{ɝ0{)#{jvnT4E-b0 2bæ ;M+ 9R*Ρ P*ZA~(hH% Iԙfya(OqU+rُZʈ\RxO%:^֠Ug0mz4׫z8}tX7{삥G|wjNN*.dP͉?FLo|&4L+rC0Aw&CmiRkM/z1 G)N&N?]R^E{>rvps$Ar%kB4 ! A*yBlf{dN#H!Kr q&|^ t\鑍#kD^؉{z-+anOy_oDh=e(:S5[mxe1Z/ص$!^CG) :4 tJ~aDGZqA?,An!"-b}Kz!tFn ҙXG+ 0!H)'-iqEJtOH"KID|lΔc+C7%>YYodV:Ǎ́aox nOo@"({R9L%\o% *y o?eMbHF0Ugs)wf-5 F3_\іJɺ}q&3-ƨ^=_BͲuL¹Fj D]9ދ~HkYYt"'8ŻjF\|n4G#Ny LYU:2qfo‚jpoZW&:UZ'tM˛',`k yDžy>oy{-ۿw=%#֢bpQ0֦Mײ1#W[6jjjZ^gne7I"GC-Z2^G(&\362ٵyvX*w*.~rmϛNuBWۅ`,<tk2ԄLY۔:+WRF(5- ;ns3lHG8D *C`zq|*hmDMAZx=~I3O6g?|詻Vmp媪/u&TMzYyd':rzV/0"]EZ8d1H$+}s`4GvaBG^W*HM3g6ޓe>f;|uzs=J I\fF_ &rKmvvn+Q)_3$`>[VBYI)R~w?͔Ka90hJz0n%c %@Zm!#f\9 9,2}poę'acnT c~֝!gkOj>_0EF-=vTXE&U>L3y17{=G|T7GbpH5 pNx1ьʻ%}>&njL`z0xf:L3S|?U*51ϩS42;NЪHV0Gfa)1c) U3`^C!3 GIUTm.puN)FB+8r5h,`vӴEt|K,k0SZZ=p;WZV|n-P B HLs1XT@\md׳Md+΀1Q|)\[D@Db[|_<~О mnhây-IE:V3Ȍ`*v^t ] 6!^ 2yAQPGT]TUkT?5Y:.j3u_{4t272\  xq-L+Mcu:998`> >ĢmF,DC}ZKm} `j]:( Z;4PHZ놆A<6h3-Ja>\M:W(I$fm3y`ַm]0~$hFGeA &8 0Я 9/i%*CZk-:6Z$h%ɼ½ 9}^Rw̡0֟P*K*F*F*{@o*; *@Q<Ɠ +eA=(zhh$%c_dGfu7{'J8LI8х ꏗpQ!N$\t뉸 ڙ'j9#ЫEݡEca Z&H!7(.Cdvs(8Lp P.gJ8Rˡ\<',8bU (5I8NpYmn A'$GfvQwf+P'Y•} W!|QB-fbkhGK8Gu*(PI8bdqcV)rzsz8 'W%^FqGQE@(7J8g(DkJ8׈ %8 Ⱥk$]ӋϕpFn '(M]La53)ޓGIYGg~WWW_-Esۜ*rWVWN*UB"v F<w7n!!7RsRxEyh T' ^C2dZ+{sm ֌c+ _iv8٠0iXp9~q&Gu„maݴ*fnY\v{a w.=1,ʩ MsVMP )sds8Ȍh5Q8*g@jH{raE̙֠TiGy a@e44*)kGr5IGʡ*WJd&%$Z{Yk\&&%&%I3:o9b1Nk"|WEQ\Bk7(ڕyQN7-UN(ԳsA #?Q+ljyK{uK w+?ڑ.ți{B/u/̪Lݽۥ=qdK볂ain 1_?v{3n9۸sbԄ89 5=JZd3}‡Pd㔝VNص>0u?ޫ?vak7o3XstfS7`X`usNY眰2bj[)ZYT]W tD(坎F[9ЦA,kM^kMy OX0v݄8¼n&:94cQʫ^X+mU /?ˑÜeYџհyk_t w׀7ys[wm?ի~^i?GXXJ̕A[s&I5؉nCe +k,W$hMii׿\sV$_i8iiÃ!CڷmuQiO4TQjnTymMX9c" Ot:;I^:|$lQgNI([8[uvslV~;뵟l#+?8{ b |ӱ.v#neE Ve{Ofo q=w孅z_k\yp~մ+m^?Mߌgެ,ƲfXp-\ח_䨭إfls3k>N :7vGt 4;M8{$GsM$+&kn&z^S]ݳ_?$$HVd5\뾖v>yߴ'ZeIl5v36_9tȣ4~`}̒Gľ=eݿװaqE]q$hEgOi?>9qoWx:nŽ_̸A'~Sc}nEŇ ١xk+ w50;o8ǫm?7"Po?9+.{`nRC\ZaՏ~j>nM|m+&⑍݅{O￟yқe\.T@th/z(5u]8k'*cTZe 72[ݴI.VYB5B\JyP ꡏ͚`$H~P?A:ߚrfުs~ ^^?uxջtĺg̼֚gSkOJ?m==/|Z;/۷甕+K>Q7֤,EK z`7v,)4w泓z֍-V OGVXsW&ɜ;W_z9o,OdmnYPz%e K$}t˶!uLMQ_dΘKo4;Ǯͳz_=zGY.o:+ 9[%r9+s֏˽=Lg>_Ϻ߯ܿqWYp:ïWRc{.sľ&K7>_q/F<3_s㣴o ?Lzغ|6`a]Ѻ+ïE>cSEZ27w%e{yqpg> sb~ǥ:d~֑y-{ܟwt~k k h}ų--ۆo7}S}4uOz/jPaSO%},vPиpʵÎPu*o㒚?YZ=p^'/Nc/H?_`+qA'9/e0Z b-.W `Cp8++}#Sndf"tivFI⍌ADC4j7/zl뀑?5{,D>&[羞<'ڷAYád601z[$4^!k͖bdHL c&B B*QDTh |C]xt}?]\9yιsTSf] U۬ۛIv tg `a"v͐FE?[7_=āi|v26UY"M\'rFG &[2mIG|" UJ,|5MϖFw Q~TVE):>xZlƧf{.@g3}vgyc 7%|+% {|Xx8׀a.\/_PQ]f?ҡb㞟ѕ䉝6Ȅ&34ݯx}=rc#G^nx3oܾ`1J~wehjFIA_hȊ!i)%$OdWI"s#ER@~$ ߄`i_#^\U^毲t˂j5%*yq~?N&DL.h{o~닝,JUg7Vy oXC9zx˔aCT6.<At&ʿ|ǥ1uAR)0'W[@; Ũ-v)bz ^=lRjڗA1YX:h0ߦ$p.vGLIVu$^s>JŎhV1Nc$!zZFP`o믦cN/K"fwq>8(纵s==h@h8 8` ˀ~59 `87s9p)~?z^\`m朽?|#*(r'һ5CE '~knyukLV޼RFE(&0h2#ztAPnC$1T>xnX #%qlr0>~V.fhT{Ș`LcR[K/̸x/ȩd$|>h7y1!}-mrkqo_@FE! 4M GOI%kD$[*53|T. STt0Lݥ3ިz2pWnߒ:L"izb\px5HRsTϷpQ&زWvl[p=;Nl]zMps?KwfϪiEݽ .@= h;q-U7ӑsdN`J;||^;0o-S[R!LhzRKXࠐ^P }})4i,nan])lasN LA<޲.0! wynM`?%.oO},LV^ b tୀ;R| 2*\-ѽӒqwC|q}5C Ucۼ endstream endobj 769 0 obj <> stream True endstream endobj 770 0 obj <> stream x}Sn0> !!>T HX^h" ݝw?P0㍄q8 izZ"JX"8A_v؟8Nr&b#Y}g˓4ЪFxz Fջi^+5 4S AVVDh֡*iОBSR^Եih`th>4:r[ ,NQUJ&9\1*C,K s]p:d"@ лwpTI0JWӟ|=?4@H z_>I 3z4;#YsE endstream endobj 771 0 obj <> stream x|y\Zy"("xd8*  j (ifB h jUo d o6k684xVl;()e{y7۽ye,Q ڳԐC؁oL v7I>ō)$^_0;ӍC }BsdJ+76wA!]DB7Z1a&0 ]?A]ZF'd\d觛ʑ.b0PD_Δt͔a &T\bBN5BGhtO%TJr:J4*h#&٨QMER7*46tt 9H.JF7Jŕh 7eZIĊH)J(W` 9ѻtqoMX"= Y=LD "FH%ȕ=W(a 5$0Km`;d. ų9膔Or>)y$gCwgS伫;Y{ +<+#Ͳq]Q4.aWt#夻1V(H fr1 'Cکڥܣ`ӡ70i!ȝF%X弋&NCx-"A410XlZ/P\Wz\Mv?n$"G p*0. %"1"(*0$5BꂓKWk7] 0oEԛbQ5XZ-HB6P.ZBQgCmiO^EAobPc6z^ޓDE:^X,B y?t{#h39X2.ZXeh4ӿo(J~ڌU^=Q! ȫW"_˥]ڔ-67bEv Y+;:]T|ׂcò@kP 188+{i%4BGq9<i{qH !|VAro3Z({H;I_˷a)~ cx0 # .ېZh~q*cw~nA$`::ո |{6??/Ajn HhuHa#: :gn=D@Chnǝ|en~_vH9(}  *c'$I{ 1<]WΈ9K[Bo%~_Q{ܡ(QL h0J-ώ_SJ<9Z4wxXA+u;y0l!s8"ųA%/9Uw1f}Xy StER}x.؅k[_+wo {YM.Y賦6[_ }fyªAh^_`R5p䉃DN,,8"ErA[ "\ak4Ekh/2&1_|Wi ?( 6އ^t;&+%˔Jz;t[H[ϕw V-Rgjzەg_vb B))Y'FAdiNS)nf1c, ;7>SO]gyؘy}vW<>tZ׊i[pAܳ$`C 3v7\^oFrt\k=Ao7ƙͲ0Zo XJ) %4x(Y^8Z:lp#XSYGW@BkvԫAw}~e?C  ބ) +#{MEpT֮@; eAĠD;fG}CW+~[&bJV y`$j>O,Iڼ{'!yrK[q%aWX$|H1_Õ0.*| 7:& IZ}FJ]݂d }>u6$2惢.'26& 9v5F+Z;Qk.$wb-^|DXp%]qT~7@'Yod8 $k£uKl1_N0too&7'awDK/I 'aOSqC"Eko;RKM_$J6p5Ν-4#)$OF:F^ lΧtPnkn3_:DS e}΁W5z`{^i剰aѝxD[#Q[qG M)VZ¯P* _Q}ZߓJA[q鈼T9 R#PPAع!ErC4oF)$Ö[-]W^yU_WY<+ose<+Q>'< @}K_ɓ.@JQ~d)֠?WUX B @%X}#=Sym8*ql"P%ĪTe dtFӧ,1J4}@48& +, )H)0ZC)^G6}kAZ`MX\p--#8q%>B+@K'Z ܨpUh3 G6ctn;[>Iˌ)4|6ރ­T|.m@7(8'Ww(|V _:X<p=dok/= mX=Whpx^hum-3mzx+<@ߡ'ӻI5RxjUXoҳ~L[~B)+m3^Q-8mOy/?'ꀧvRxvU <[c ?=@1^W?>?*_ /Л.6N2e-_?l6aaU6%?=ӦaMm*N[_n"Nwʁ}eVm5Fv8h",G}֛0[4X<:g8z&K?&Bn7X[ k޶]Dd1c6q ]:[={ҷ_g破tW`2tX#G3v\  'MrS~6qo@ZCw`b%\A΁KӻWݻ%'9vILldv>2]6a!ZZ~&]LI!EVw|[,H(nP"ie"UzyIJθS\CNr&'YV,')@,{}VG*BfCkvdYEleUEYh&Вi,$'Q%@y5*""Sk0(w=+ޞ%GⲋdgElInΜf/q};ءPWXgrkMRCՊ*)rn^<>B7dW4YpWh*;rUVUeuoS2&mRT5]sYћXVXe*g"g_=[]cu˪)DUiMڨ(W=lkU~Ngu 7moﲶ<'9&$#ؚH<Se,wldYȞp[Y1;_Bi2jcEf2BRe6ŅحU `?)$ROU pw*U?k1䤅ub}^Gymqajwf E%xqW)[$\nQ$s|9m˜J_Ns";4ym!d.玳玙T`ͮ*677O~I}iL'-DI gAkU U[wU) N5<6ANSb`Rov~,Sv"e'Rv"e'Rҵ:bEαz{ˈҶjm9.xp7\+U^my3`m:Wsz_Hhm6`T0 9 H_H_l]My#jySɰhco8QP+vOF6MoSYT8Uh*B\OWto\b0X6V{n6F<-Xm4e8JQHm G =a.ʅ!h9xB8 2 ͊1S'ПL0,IoW)S`Md- 2PÅ6\q@4- 9PvХ9(DONʉX'IhRMh' 0$%Sge+(ƊUZGc+#@%K\OAAA}A)ގ.P.D/+N cxbmd3C9aS:kcoՙy b{f&yR=AgK:Z,ÕTn vXps9l1~f,d3N"?]!G2'fAFsaX?ױg>a?8ϑ[ouw&0W7GV~A2iYt_9iٽްP){ C~D:Z`$15 {ɈS Io^}E?[*E2RUxYUO6rdzE,'O\ egl2TAyyLoS֢ 26?+w2-Y:|&s*ٳKE "ݕ%Vk=e-"dZ K4˝iϲ _|b=ܞUC jJjgۋ -uWӵ+u} [ePVVPP՗z7UvhE  y-riN) ׾ JHΐYe2z"E䧼Y!HYYW^.\_`LG 3hηXXciW(' H6_¥ƛc 2T* Rڔ?EB3$mH? vJpbq˟ɿM!p=O>!<t:~ӽiz\C1q9x;1:GI4ʌ&&^Bjwl©930]VͷQ2Zɧ5AbWÂ"F8Q+֦ܠiУGh?N:5n,754b4x*t FPIAbqRHo Un,JA먞^!b`NJq_>#(1R6aMXDmhy5d|p*N~V,Ե}8uj S_M!'hw=%g{,xKx,?gI|iڭk#xxFSMz0p$VMMFq씀fHQD.z u;Ra<b+F_\+j!͡'5hjTt0 _o_a{J'K:>8cƹ:/BbxV~WiouM4kn1FB48]($W~oО# GrG9< x.fR}w.>Ÿ7:CLO'5svC{W'=z~̯yňsKi|[SVM{4}f{SpE{`4c\I&3t`Ϳ,4(8V[&=#i+ky77^~幭]0^->µ6n{kY ] (Īa/Ρ\EI _\|}cgFF5|ASH2k)tz=zylZO޽ڵ ّ$b qޭ41(I֨(ة[7y#9kSޏ,ImƢ֦:q–ʱ )@񲫕5tOBM; v3~x湸466X]R=4ym:l -|[Զh4,>.'/)Wz)8y9 ,C댆N)* bTBD""jDf~Aki3gmvuٜlܙ'a'OgX>aɡC\] suJ sKE$8ejՉѺn F?J"^k@!$Rk2ikkqIN}Tv{8 ,$x9;DyQơ6ޠ| \ܥ]-컩}C.U܌cÿqj~|yulvX_7"91))ˢygEll1P8C"?ӦN1zFB㽓*x`sssLDy^@VlAπ}x`+n ~,""b[$+ԯO<;c zA3bg좖@=vx(x;}>"jE]DG d8z'9M]'FPE~hNSx MKiS>Ǣ/g._~&{Gl4*λ.$X32PuʴicRp*!̦+ NQ~:+Ra:5Ak*=!4[Q=p4;hC^&vi$J{-i@r6K鮬^ٳ ]GLD `Pou# AjvR7[n`GnV8j2<<ϓL~>NЮԵ᪩Ho0(uO׆QUX_X;=Cseۯ\< QΞ`OswGxlDӤΓ;\zaѦХS|d0E}ޯ{V.-Z$ܔqYo6Y iT^nEOe4҇qصouh#a7 /plV!p~52yJڍxdwN8ξC}/ucY`ߨ%ZRq(7Lr:D&HBj뱄*ʆν Vs S-/V+V^0HM< US+Mq8aȌ9Qxfk4¤a67 |$֦{lehXjJ=eձ }A|ʋ0[0['@fí5U}ztӱs-__{x{ f%+tf1q1G<AL|^z>O.:vc٘(8DQcQ%=vQtV6D.ǠxUQ0, >oH8ZUzĐeJbTݪiZrIJ_`.̏xA䩼I>n$tyw]Ңi B- Shh=^\wȻO 9}e꧲඙Z$9l,$v~E}Ekidm+:t3}`DjQbìmXϳx``df9WCYF|j@BõHC}|M$|G\NTz6Ihe.HAZTOk]tvAf3 Y|2SPqVWF1gUGWixdVhG?zϙ:].;,F r2OUN6h\r4 d43B#!ɛ|cs`2$i`P /Z2`"(`A-b޿r)'\Л|^ћ'߼7NvrFw{}3R@DQ.5'`4}X`t֨JHc%E%4T%d::PF-k%N]ڙԔDۗ_y)C[`g_~Sn;iEm[cug_kjup.>}֞kgğQZ @X$ݒ)Vhv H~M3p &d#n !INB]ڰκ"[+Q&!,Gil#vDC}_hOJ]BF퍮Ƴ4%"4DSD-4=:~$$}5ʩx6fM6Zo,>ˤUG*)FrX.-H^1%!:4$Gڐp4TK=a>u5?<*[J'i&[+M43[, t"' 4#QF71V'Ki;ZIs&౵rqyp؉^9%4]}[,V4ذꟿn(B8Çg"^ >y}>53̧t&+Z5zvĆ̽Gۨ=ap0UtlE?lndVM&cd, }coNDFS)ۮ+t- *JIM.K$Jvsrq, j5;L)W'Đ|Cyp&Ѡ&TT1N&HbW&%[3c 6GйL&= ;ɘ91`U GV. }nIOw1!epɥ\?>bԍ-޼[K__9GwV5,ٴo<E;EE~5g`!ņczh5j@,dY'AbW/=I$wU%Ǩ䔃m狯%9aJri`г(0`alTQGj,@@3%2 1B=c6O;z.>mIf #QxJ$(XVJ/il$iI(gD*;3l)B0 #3$` #1 6 ^5|TCք26zOϖg=lkor9߾~N-]fG龅>'.k S?_k?^~O; \&;n0Km-=k|dWT9fnFzq' &0Xf2ɲoxXV=bO>}]{BᎱ4Y,Uxκ#+ؖ&UG`~/KLKj}&amDe-`#Э]>*iL?鏚զpwzNx5ji=f9.qFDVcH>vi#ǐ? Ï#?Y P={"]QWrod~|="ЬfN6:Cq=2`\~7I&A"`?̲ ۫~;t̀5Bڬ}!s9z1Ii"_X"-ʾƎAdUxYיv:sk\GyiIQ+$bt;HBM1)tjЪК m YHz!D ~)dIks(O)RBa@Yb)m根`.癗 FMH& iM$$ LfO5zN01K#|NR/ KǵeEdW2#qc4b*b&%8#?CCC ѣ"A-m7il" VL c4-kQmg85oZ _Z݂~٤߿ڌ]~^޹3nP8ھm.uã! ! Q/kyTja~7f[?/8E)s+ 2>\ N$*(q{gs;imV2wS\sSُ_ɗKe.C3[7oɹ66&|sbMjmlJD( Tqw'^'I!Ǐ."%]JY!o $pQ)66y@@s;q'f3N58Bk(mtZmf1z%'8҇ic,Chm<|4CR^GY z3GB+jMh!= S"#gMӫ;Ŭy._+x]wϞ 0 Q}zWid͈KѨGsz3[l2yV6IAVtx\iRɟOHJgş VbCa)RLF7|=8mrr8WR<9*W(OWMmS!{Iҡz4/D ot#v4^82N>( G - 5|yD#CZ чV-R5lU}R:O{S-m---Թ갍3gxυR$lM&)Ai#iDAJl$ȭ(SA+Lqlk<WPg,w6"yC^߻ѻW!:BLj_^.} #)Aʻ25㥏Q<~婮{kKRUoC6S~[*`1{qd.7և_b3M晱LŞ9&*DTmsDR[3nn77 &\nHOtaoVPھ^*1pJ[;3\|.1LJ(66RܽzqiE k%E-o饛 ֿz0z]S;]uoX,):lx-ꗡ$nn W⟨f~iOQ%Sgy?g~(d!TTKvM&C,SLo@w01?g_Ey31{W쑓d*`QQx,R_U0 6X*ڂRH}gvs!~*;N ;s|>Jbc#Ϝpiֱ9pU8fov F_%^\#JgYe3x zAmlhEew2m2>4a[24PhAs202d+Yct=ZKٌP6p-OTp^V*Dw@8 _YKhǗ+nΚ/,ݴ YL;E(l˜׏>.%lc*,k|a!n'zu"ubnTCO-?r-`|N u> N“nMDOvkIV~w?uzN<:zQ3٭JNI~ ۛܮ:)B:3M+(i2;4ڽvv vVFeOLJX$Fܕ=.7>S %nQ ^C|>r%$*S|8ju9ÑZ{""H[Ȏ""Fbو挑}ÑZhq{LHC(" 7V83k>dLWKX%&.%)B"ng:$}x'oafY pBqmrWq+a?oCqEh̐BxVHxlVefq9lu'q"e1qdK;zs(Ч@Rm&Ż JZ$ ! &,Lƒh"i(UT(QN:Gq!ez_ȸvdGfC'0'¡' "t'FBj5H] @R ɉəɶ䡤2$Hķٙ6 q3e4C3_Q@юcpFΟ$8*È9RQFH#9 mTm18.J[ՀgHSN V˶zD lµ:$O݃W*Oow{z/_ ^==/w1*`-VzxL>^{xJ ݛ7iN>tnyAbQuɰk ] !k@^2`.seu}O?k|Y yzBkYm^e}ľǚZZ1t^ơk,u 㙱,UjhInjsĂ"6R٨ʆQSHCB8i `1Rݎ17Ą ]`8%\ VF{nlYlڭf;ި6^s-_{uio{قNޟ :ӳMf@L-0Ҟ{Ҭ+7mt~|Lc,wDUe L/W-˿\>˗_8U_hya'lhS;=GR|ϋS'@7$ӑ% p\SʩzCΜsskBg#=_ "BU^b$8j&(!.}2{2]+_SWOe3i2C@~.yHGῴK;Of2d uu(fa^B[ZL&e18S'(~S1wRn@%^4=7*R_51zsǟ ;>PU؄]{xݐ{C8{ bx0h!xBP+o%ȗ IUb^YI@7Lwq3 :E=@dB.a$^VQS~&)8C0|+##QꇑTFcfLȖ]^o[ ՋSWW|MVJvb*00XόO?]L_gVt_MŽ8~zirM|-WrLZX{nECG}1>*ssbYluc5h&H<5s؎ھCyLunMQ QXcN,w=k KUɆ1$܎ =kB3=mhBbU8GŖVŞ)bGAc(]r-\ 3I}+mR{:LRL)8KjrXT<'*ϛ5o)G;cc/M?֌o?jr>2^粕{[茇[xΕ#ߵ@z(y_qZå˛6Vp[(, <F|l0&+Сc\),W2]]3]6=:]p@'Jf(Ql9C򠔽OJ,g+K5\\\.s_VпWe\AΉs￈o8N.Zˑ oy7+ V@EE&zmsn™R-,S ì&̚7±~aZ&%wxhzzMDBPUC➂TaR[( Wp;Q2+R]V,s#-zqA瑣WJ|j;_xE*vI9zcs+ h?d.-vjS()Nud󊅫Qjċm6Wnm;;OY,,v% celUQvi^'剼BXGZtTݶ'mo{m^*I drØ9| d;h0()[FWM;ԇ_bTJ[|| v;x}=Ĭ"}<Cv&pv =v:$IŊa[ScIKHXp?>9W:I,tA塗b6;R b8â1Ό.FM(DYяYzDꞺ9oR,/$)X!ZA.( PLTP*(+ecȔ|3GxVO;R<Y#];%ЁR'l.(AȔQμg0rq_$:au􄍎 EAz`en} V!Yg#rfslq|g闟-+W-r~g _ͧO5 Td[߆hiW!M'6/rD̡Htj>W̯VNc/tO(ZпOS6@(u"JPN\ʖ?Qt3xUVWVVUՠ r%Ǜ-+gJH"xH^]0Wp" JIIհرIxĠ#(;]icRӉ± R-,7D CKL=Kcd/Q3#/%=X\Q>a=\(>&X/|oh d bM$d/W_ne]i.*{OO$MKڌQ"EQrrn([CҒ+q5efi`ԀQ匢xWp60> P4u}Nmp <);ЪP!; bfb`\f3fFˀ~0YčLOGݥ(#HQ.!7طc,R.TOāKLf. O!| 1G>&"MZTkBjZahѤ54gxjh)*&e9 )]qXN[PnK-th!J`mVG|+сZͫӔ٤<N~9ew[^ (@h$eF{ 5e+SqwS)h;rc>AY4ςѲjM6Kl{).?@1ȡ*iѼwh-yhLNBo8L~FK=iRUPZtpЙVE(I#vN{ *$!j$l&$I:F}Ҩ |q~yc "6l؉4p9<,g-g bYc1@I5jTJH1ۿ$<;`Ky8[iާ+ɰ*m7/v%ڱA=x.YncgDEyM:[*\[aCUWQu?':B)! (6byc|<,NwG&#ZBd2֠EGo'zkQ)Y( ;C-8jm+҂ߦ\ܡ<|M|^ e*7E 0Ɩz:Sc^|*\dz'Y.O*Mu;[;Ks BnpmH,y =KLJD=w1i sk*,snΫY?:oLl輫ę S@_`9Qˤ$ ׻̧,{7*m4ʢI*iY׿C/<qp|qᤘD[>9=,o*hX;?t~dY`\-uV\d̵/\9P('oR;8S6n{4VT] 5 y#utZNU:wɐЁx_w"Qi/=tl(AN`=8{_gb%6,M̠^lqNQ  \ˢ}! NWǮYk=s_#h̆Xgf@̖ Z~xUvc4xVU >MB*PB%}Ч0NF5iTD^BU #88|6~0aQ@6Fbo+NW &4t|š,E N0-߅S\|["e3:}_оhG<{Գ7߼Ğ_Kc%$/Jl΍>͛!(Nx\ta2҅k.kŊ5S>8Wyr%|Oa7Yjb5ջC6$mͰs7RIH'?hd{RUQ¯xsb k!n'b(ZZ@ Em=|U;ҽi"nrRlZDRؿO;hrH!SR *x`j+Py9Ey FP]ǪVMZ5}[ a¡f#\tjʸ+&s@7W}10I^F`U1y_/Uf=3C8VSOU(:_mA8Mz (JL ǻ/\2s3}*56<6"C;J, r+o]g`{ O=R!,Ҧd``5![]ݹ7vAt :zkKᢝBڬТ-X4hKxk6XWypgh"xuz=7÷}!垾#'{t 'Cq;z"M:7P_ӒϹzeWRDZ*9g+!1c[I{q"m[3+ \B  ݑ-!nxEB=6{˥q|i!w0͇4b@:QۑFqH fg[iAC7cFb-M& `0 Pk( x<<|`ۿr0ĨՂ1 LBFcPg76GEX5u]I*욭^uKWUƪƺ&ifa}KS}&ň/y|,cY +$b`Yo y%x~ʧ&CdZRL:Ϸ1-cƈ]J׈ EHV|>h*zsik=H;DtHp" 4hm"qgCr&0v Ur=EgTF(HPQBhktBQ/T(y uH 7 /^:e M*8aǿIX f<] ,s䑉χ J Gj'uC S9ott8"9jt#+'_7ely6KS/{Eccs`IB$SebإE].lWu9\'ֹ^I톛]%Cr.hZKD\#1 xwK+ɘ!&D\ ljp< |phv a\5iyP ޮLw"xcl;JVξY]{).4t)9imu8{.(˗3coLE묉%yP{욋onnKG1Ͻ}5n[osW?F€h XeY7hW曈++|By6"FAMj*.{Yl^[rd@BX&YA)|ӦܡUVW*=n;2A9c}v2'Fkr'61my܏g0,HQLZ1YNof-6mTxc8-D+g5qxccȢ5oLZ!ݖ3C\c*~ ]B;;?/qhځGc;#yvI{ JcWB8(B&ʫ[VjGS={UGkhL#אϐJKRY>yo3%Jc)cՀ$ՐWQ*m)Â#nsSnzh]vF)}&5MEuiwTHFU m<3H2I԰\gn^>6$ٿCkϸJapE?лozq6h óOvbXjuρ9 'uVO+;~^&Hʧ$[iz"66H9~0 MɶYkS2˲rp {Bpi8C**y5@渆8zǽOC3CR2hQ1aB?`e/CB@8%(A+rQrR48"=n),哋޽T+xc ^S+ {[}}4r1޷GUϜs~doI6g7M nHl$ AB/P ׏)Pkx"ЈRH)VT!3fjov>3sygf܋08۹j\NhHCf/A9Jm.KkP:&| 2Z] ?O;>?`]uEc׹ Np8^a )IZ.8ǒIM?Ո}}\GFrH40ÈW'gX$r]S\=;ysw{۸"@L_گ0: uQM"Yu9!$QYQ(٬fHD?yE!GEneQNEB$bHh|m-Q&&Rl`U(=(@d  1\@WShZQEœuI]=+v v[>7~o>#8 *]//Y ?uhǫ=(m% 6fA)rǩj=JDBrzln9$F/Y ݦuD,9!:^wF9TnaMiuret7ĩu+-KgIey!R6{wnzJPӸ'Ç|q˃u AN{&ީ:2AoKxڳի']sIs ^$_NO*)VK99WIW'LO.Iorfygg"-YY(ʔ*>B$t>.[JΆ (p8g*X 9ζP[u/ї{{B wWxΦ'>&,Js8 B{(QUICB.J7:)P(!$iҖDGJ: HV&#dɺd"LVWbŵWk]4U[WkgR1BYC<ɧl6FJ<p] +ږW4Fc_AuqҊLozﳏ=ُ@⳿>^ǒk$GMOKO=ֶܒ[3LUDޞ-3}{^Ff{ =yfO9|[̱-p|@`Ug NS#hrV D.0z2 :k)9j)ځc[)B|yXfgzw%S:UOlHa {tSiϿLflzz[m,c&wu? ? l( aYͥ LaO#QC_Q:-& [:2{Hk Ut' s¥w oIy?w5l2Ƹ. 7&B2ײӎg];»¿ [!Jҥ4A%QfrA\p!sk G,JAѬU(aǥ`Vx7ΏL \KԜ8%ܿ0쪬o_vEh%8>d I,-o% AanP#63ML`S5f#V꿃%$SnӋ YʏӒQ{U^{:Fܤ;^} -7Kr#N;;v?:NKwㅟ),Y1b}O)-S(<{Sb9s#8?'lp\.-R)bẐz,Zm2BMf#"%mZc[{>}G2 y ]r$i.awcݿU}.̃RCgBiq黄j4OLƜ_vB(}8Tz k|3,<8 '{n7p$pET-&q]oצlR!"Hޘy@"!i>C݄<xg e *7RvCjQ48>wZ3w`ˎsU:#-xN,rx 8.ֽv74niI]Q36M4Eͥ*YC[YHiSUb"4A":ߪ~SS{Y[)pUI}5fZv_SN7Sazsx'|++0fyjXaW7 ;D̦ {ꉬUfצR TB2C/* LRKq&\~)dl [;镹LEr6}.DSXSd*MXxo6W66U_*н^f-gՎ#:"a[Nn+u.Og!b.nK߭rħRnK (.0]nr=/O(jݖS&n}[nyS|ȦBAyQO ?W EFMB s1Z@&8O)S~7y_7ޞǏPάTԁ' AO.|ne^sN$o %Zڔ]裸al9~{A8bz 꽗Ũу}[`N \), -^0)~K24-#Q8^M(̹Z2Ri~1+)J[Ke]{#snc!#nҏܐB)u:lV1+.jnU'hl./\vn#D -SN\ f\O=( Dz^,eL*хftoSfp90a;bhij~ݮsFnXjTbòrFl'?rT;~y׳o\yx_-]I_ސ+\>SxKdBdBT-\SeeŏV4VZ+~86pUT_2C뒚񋞭mJ;t LsI0ks\0s\0s\0s\0s\0s; ealn31\ VZ"Sq)+ג+/sV9]LjL*"$D֓6 \R_;pfOCx3ÓF&6 wyn@L|yL n3? n@GXvMc&1FɕFcF}n[֘qδ䶙MKnn;ix!.IV|4*8Y ||t .nT5ńjJ4DԔiMD7$$Wh'Z X۬M Zcm 99[ ߤ qj"dv)۴#__k?nj& 1/5 ^i")ahfi,z4I.>t9I_coq'-i D>m:q75No'-:Z0 "x%dc&lYB$+jD#Ar|@>fZFc$zm-JAH=eFq|U9R}AnupSJz}Cq;x<]]}ZP^ t+s7羜?`M/WGGcG6 x36(?x8Ǚ.Ol,350P8܉QF#|53ʹ |8˿C;VXئpEU *a7po Y#|7` !gp x'OCڷ܍AUi+`?!Z?T,_l/?w[AQ C_C3tnΞtjb;֗ g#_9L͍oߟ ~ލ7ЦB>Yǁ۹=`cv|lvËȫGn sC}` iǼOnDYRx> {}Inx^u~ tϞRBNE3ն?g1py0ȪK&2}LjSejz_\ϖ>s,09P_^Z4^݌1Y;Tݙnリ`m:j` 1o_ +|9,> 3Px.#+IԔi~LVi6jfMejŚW:]Zh֮Z6@oih6Lkjk齘53MG7 OLך^?a`@%7 dt(ǁF]pKkG_.02.0vz;BDW,XX XU-=)l>EH5#1܏Ң Em.^ŢW-:Pth{}]'6D%f6GQ{x-8z{tYt.:vp*_ /("qh9E8E"6N;G|"y+A h$&7(r7D!/M I11111+]dWdwȑVDeTPnu" "q~Ә\&~أ13 nprkY!V N>>ҿE?@|#w_LU1O5'_fvw|q*9U1v_^aEfE_ |]:xMͷ0QGTo'^xxc+ۄWx/=|;߇ASynl 2(qrq4p4r4ON᭡Q5ڕWމmalϡ'j:Ѽ A جIJVbxqTOS4 }[BAC(/;BXEKKr7\͙#wpz*TWd 0Nx+$]j?OX~]/iJH_*B[&zB {_*ӳRB׋ $"r~D؈^11&a檛ͨyEt D/|C-o o_OqCHe>THrLE"N/5ea3{}טگ%Ƽ^5טZ;U~w(WXL|W+Hr 0sϽg=뛔o2oɬfY*d%SR[Hjj?Fig+~SyotCl֟^0DR֏hٯqA=Px"[B/[i]!܀b 8@Dq۲bbOei O̶R5gUxE [I*߂_f(<XcYq!C2Ux Cq ? y|Y.Q9搉Y lػ>'ss,V@`/þB*''B aU,/gY^΅=䭅`7c!3a5)KϠLSBVQFi>Yeޘ!gjpBcYKQedCfA Jf6,DcG 6eY!1xh X\5F/{6q;%sy7}k`eA ?6[ĐSd-,SlVzJE,Vb7w_.j.!o}?UcH۔a #RlBڌ;7aF!~oJ%e6I=P4 %jP3,ec%3UgZW+mjpR:CԱv62T!k6I J{ !]ah80h-=қpY[EOX f`i3ƱШutl\),e\yMoƅ!-9ouB>q`o!)`7u)sk!d +E`?,c5]ߪl;@ v7\l fiK鬌\ lrx_ ٙ*L![oFїa\(XmثY]¸),D(J (Ji V)l4att h xjڬRb-ڼSg&> I}@{MWM4s0|<;15^Bc@3!׈Chfo74bk 3EѨB'XSӲPJ!ic?al&1RD"-+ 9ZCV Et-BBbQ`2Ȉ1({tDt  #c"ZM4a;2&$<x**,4|ε kV( ŭPh.0Pi /W=6mNlZLJ4ZEܦobӷ1MO5ټqKSxՈ c?@ϞO` "T[HS+Ui gMKX"ƊIMXN-˹O:"-Z'xx?@:r|boL֢.3 :B.HҳY2ew ѽ",<) NOqbqd eh W Y ^W4%{R.6Ƹ;68 Lg8E%x-ހ7-xގwx?)|_WM|Ǐso{x1!=)IzKbM[@JHDH"1d<'HD&)dI%3H"3lC摅d1YF*l%eT9L @#3#WRϋx·v|{^zowM)ߋm|~ႪQ, B.D B0QH B0K+,  DX+lۅ]^aP%RĚl`al@F7܍"l6Ŧǽp/zNSq*3 g $pL<<<l8)x)jH+^ eGFx3ꀷHGjx'މ:=x+q%CHtVOHg/. |\C[=|G3d_¯~ߠ~"ccbA=R%Č!SbN̑ '"VȜ!}P/2 @Ğ#KDq!.Ț #ěx#K|QOQ_HQ?J{$$D"[M{́$";G=I ȁ$DH&>qI&ȉ^{0J"g2LGCHIC.$#WI2&ȝ"P2d.<yEd& #+ CJH N֒ȗl![od;َF]d#{^O1HrDTQ9i>H5F<9Ber: #i4%h yHp(wEyc:K^KTޜ7Gx M{Q*߇~|?4 #(P&?B- jh.Yf Qh"a0 * K2a +hFXVH,lFhS؉J=J*jp Zp_samb 6ux^B\WRA|<۸?O^ub/pbC;2 !^ĝ '~d !c82䓥d9YI֓NTR89MΑKE yAސ3NS^ڼƛ| *hB0Z+D qB,L9B', baP*l ;>J@Ddh *TJ I $ :$:$:tHt"2P{!СCCjCA:uQ]]  bbbt10/ƛ̀=^u `% Xn , ,r`#| = c`+p \ yya<`p`/07``6ll ۂm!P`[m4m - K[K`=l{x.«:\q>4>/k'U=&I?28gI܈AH0Mƒ\GBRLUl#;n湄1r%Ur!c&'4'7/*oFRˏŇB'a$ B0^ LYlaPX,,U:aU(ʅ pk0Ʊ>_xiAا }>`! g 3uI}>3`_OóAKpD`b`b_`b?`b``-0q 0hLt&:!Do]nGwPL/3À>OCC#Q@`h04 CGCCÁбqH`h04 ղtJ& Det=E:ciHBgb}0йg+l\>8b؃h>/xX 1,X-+ŊoZ -VOK֥rߨ"D {JY#UH2 >!*Dj D.t6H.Υ[&zȖ`E"CQ4 t^,O;C%`mεX[ `a+swqڋ ͥԗ[+ (p)CkҨpG?(.[6=[̭)KMHmAmmH+v En)7W!ޭs\%<7qyp7bt),7û4H.̿3Gp@A0mqOWѓn}sH'ރ5}pՀ,E4]^`' +Z?u 4KuyȞJQ'ۺyaEeE2%i6]32?ˉN4(LIt\G$AL7^$Yr"qCb*sΨ|Q05^fK+gbe^u5NU[[2H&Vqߊ1'⸶ݧOv >;@"RRbIi7%mIq앓Z!FZ֖Z-/yJv7ՐtnJטWMvhxGgLL턄𘸈Ir֖SSRBFt34mJ&n]-"p-2\HsbۼwdXxbyQ_]V7,/Qd^ٸ C'ޔx.;:.9Xz;mE .:rdtAA?D"֥/ mEA䰠Mi)+M\-jS0r'>$D9З[zf}^&;ҁae3;mKՋvAs#,+(Jizڋ> PIMmg]]1οϩ}oWiKeZIJw9LRIIj Mu8@x7q+t<*owxze69*X׫"I>N#,t"͏k66#[xG4F?YI1[;A]5vڍr_27MDNPqT$gwTVꪢJ!E' t-]hʛWk7ͻc=.foթjDٕ P)_Fg8j^ɑg*ێ]ZQ^1{bث *I1lՙ?d޶ K͒4ْQˌW9֮ -edoui{r_wo xvMg{x Yw%;%5:bXu;:匪?<_Hƃɓ2f_i72þ׺ oMOi; +kfftd[7悕5KFܟ\g QPGMt{JgԂ 7;qٖFwT^j֞/ԏ=XB|W|_O-c=%t uDe_ޞ%H-{e OHݣGH\d{HLTq,Gk{yцםI~KHzK~nKLfIII0,? \HeKEfsO;k|rrJ^n(dOgǦxtU1|ɲT.*oҧգr=D:ĥ8V6x$o':v_~ۣ=]Լ\|QrNBʚ@%K_ڨIvXcݷ.aխjb"РW\ iOwӸ >=\ܵRW.ީIz3\۬y;8ƻ'L|K/Z.j-T8>˩d4XaA-M1%֠gc!6J-XͿa:ֹm}뉁UOuuFf'f`jM[54̈́^;z觻d9zCj7mwJ}ݝE3O;ͅxpF37&KOol)}^_Z'%HiidckwD%2'ՐA^h Fvב? B\ۙV h7weH~NCΛxmInί痯eMNѥStqDU䎨ݎ?/5ЋbG:-X}f{Iyyrٕ=CX\Pr MAY]ء=*̹P0pV[Ja*m}[ɳgfiU˜!xήd콍܍wn℅e$Zzmàw u:gm.2h1gy:2N{Qa$oW| ԂQ }ãI,zQi23ٴi6%eᑁDiS#.""[oK[+3 ++[kGk3S=N1uLAiyű_*5P#Fe.||bbЍ.T'{75ִo&[vc6Bʂy<5AL$&;.Lo>;#}eO+~]?gIJQP%\%3'pH#>/K]u}-|'(|CiѠ"I9u؃dO]$J-ww-sD{$8mBkKjx5EYٗ맺LfkѦpA0>ټwco.oH/2RJ 2R) ѧsMT7Ŋe5ޙI{vud([uusv  &lK/.7WL}P~{o96.j\Y|ȑGov)z1<{Jb򣘆,M ձDdj|u#Ãs{͘Ε5ƽlڊ6 Y̙IH{so#Őgh};ՇS_$eW~Tx[I*ڤ*}4M*zN$fS_&\/N.Qn ER-g56T5wZ?SyITKZ2M){w3O50{,ޯ9Y~cc<&drI5iG—1n=uG[=dTď/9^ј8iAo*U%u D 9hM^'K&vJlx##')#.},֕iSSVK}bLYu-*pwUQvSg#^{3i](19Z[Jy;^4Zt[/StAט5ێ9V3;,Yq a[> stream True endstream endobj 773 0 obj [ 0[ 600] 3[ 600] 5[ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] 36[ 600 600 600 600 600 600 600 600 600] 46[ 600 600 600 600 600 600 600 600 600 600 600] 58[ 600] 60[ 600 600 600 600 600 600 600] 68[ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] 164[ 600] 177[ 600] 179[ 600 600] 182[ 600] 230[ 600] ] endobj 774 0 obj <> stream x׿  ] endstream endobj 775 0 obj [ 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 0 600 0 600 600 600 600 600 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 776 0 obj <> stream x]Mj0 >PZ !0L[Ȣ?4[(")T`'cK>~`;L0xrsX"8zR im'[SKCPu C9 =(s'}RJ5 8dЋfB۷Ntֽ05"K c9lhDUWR RBr{1,ӓŽg..̒> stream x \<0 , *"x h 'Ũhjb4mIM4.j I$gaI21w`Hok|wZa( eu ٽ zTVHecQ'ͻz3_mTޔss`[i8'R06!ϕy1/"k\Gr4JW9gN+1 KWfAϪ=~*>^3κP ;O6d\ 0>Hae54k_6i,2rm%%Yߍdq}_Sqm0/c] Iak/)@?\k1+|5ØXqȡog>:hN4&@?NFg>>p16xX9f 4lפ`VV~fIazD5AW, _4.fު98>آlg#Iv4 #\pgN:S@ @ @ E8~}@ @ _DLX4O͝?IU?g}4@ ZbIB~fTMJ@ <čE ϿB^ t) 0z6Bs@Q `PBQ=F0j04Aj8B@z "FA7hAC @B,jwC6G;jDAعTBި GzA_8/GNpBp$DHFuqu@HA05Tkia(HGM_Pzdp$\#PAjdzP0uB̈́,~0u$䢎90N=a PǢ~`2xGSP'J3 yPSOa LCB~ZfT(F*(Q?E΀Yq(٨P:k A\_P Qgٰ *ԏFs u,R?uׅ^T2*p"XaXz {V^uԠ^kQ 1XPWzUA}Zհ u ܈ZV߁ upz؂nQ u#lCoÍpͰ&Էf --u+ܩ `'pmp7{pBv{QwQ?D} :5n؋؇z/G8'xPz+8z?</1Կ{G}WYx>D} >B}WǨo§ogo w w= }F}>!||/81S BN~s8> '~*ꗄD}"2\! D>D B E=E IbT,16rU )^V.vU @K@ b{1:{@е0\s-y2@ D @ @݋>/չ EH{/W:^ΓQ:П@ ?Mȥv@ t1{@ h fڋoΓQKx//R; NUzTv/&S0H{yh٭;П@ ?R; zL;U Junka6S^M?N |] ^.{7t𽼝'?ZӁ@ i/YbKunka{x'r@ X.aVSxTv/&|/u #n@ E.NUR۽@ ZXfA߁/xl*%@ ~Q@ǴS5B^ t-z{yL٭? n@ ?@ŰtcکjPs] ͂AQhɨGx, v]ԽR۽@ Z}/m;[ _jA#_[N :{@еHHhౝ'_ׁ|@ ~K@ bX;T^(չ E~V|/7.EJ? _~@ňm@۬{1:{@еHL򐰋oѷ~G@ '@ŰwcکjPs]dh 4[ h;?(_K@ bwdACn#pU@nCAeZ0P{q?{ik<{҂Yd5ه~=1*7Ga )~$o Ǎ3:g=.OlhZ$'];ӻWBۣ5[tT%"EL,OjO%9{}}&׬Y`[}REoL3M|՟3 XWOLHN.6% r pI-3u`xVd* lj⽁G"pC[5;d{88ޢssz?v[vr9Mt:, PL1 좢nHuCp˜,y6yÒs%jæE͚pw§N}bloToEN-'c:}s'N,Ƣ2;Y\ej1:Ao-+-b˄9,(` m`k?ʵ6]gDw[ڙ"Fk7,{vH\͇^~p<mU3^o5 a`*Ess0j7nCj˞"k`es;ā!'nusb/zw ?>O>@>?GOqVa +Pa*kJ U}uDKE8M'a@YV>zYph s'6ghS:aQn#w5IQT>5p3 d$̬`'^}QNސ ^%kMKd4X m&3^q/9! &IHx-t9* -(Z+p=6cr0R'd1ʮǾϹ^}l [l(_ -cEY첇.*FOmv+|7ylpl/R5p}fCi] |#M]ӣ֖ɜG7΄Y=\7qȵ5\p]u\gr5k(Sף <Q=gwEFuUeEZ]忣x y Q.]2zQ9(QJ"ekVymf7RÃuqd)n!Nm >< 3 'K 0rrFjjo싎f5}}QQrj_p0+߆{T|M9/Čeʧ{ik|3-cx-oVAuK>UCdd8(vwyFug=i:.;='y[1;?.. OWOsG}Mߗ6 I;H$\VyLk,y)y3[[w'N#6gJGK;0nߦZ""2m2=o#>ߦ8o2hItY%mc%IÓry`A27.\{cW$q_| O tdτ4s!ʶ6Ҏi=}z+i+^k=sܢ7:=|^PG/7(I>c| Msv]^پ~žEYhIpvy1#"YP]٩Oj͐E:l]=06}Ѿ 6 8yDOO|1L`L#$&Zi [0t1&ctaLQH<{+IOo{==}a'{x{{ J rLDo7{qoٷj1kKכ)@c_;^ |uD= B3}~vo>"۹U0^9` (kNHAfcv‡Q܀)x10&iҼypZ9^Fy ,k/Ϸ[0o l=FX/ԙ;)p7ki,%0JVhh|kܻu>B[o Fsa1 >(Fy/9NjqLp. ;o@ f GVuz?L# 4ExG^*~e5H1 v}Ιҁc4OnUcd >`! &K>%h.YCΦtBt.g^|/- 2ξ&Ck)ɑ-Y. q#Fh>hO{YF"kS%YO(_e=Z^X dIǎdVŒ(!xSC˵1dQ8>8\$4 !g fEMP6&+ z"eĬ$D/XDS`)^‚7&Vlbi^n߇f>%;ҜNsz(qNN>0ꈃ툴2xIV!ToeTwCSZg y;W.33Ui+&|0Aq_%ݣJmHb l&#CΟ #q'=I\4p4p4p 3 +L1ARRp'YLr; vC) )Q)y^ZKDdJ`ŴK^=Zڵkŭݳqßh$ɻkOpuxݑ U/=8 qo6JEoBMÂy-s^˜ƿi(_~iq$9ٕbI+>Jz9]MT>G- e>gts! N,$vb,oAO(6n"3ɉgJLVmT@#GOFJui'24׉W ׎9eq 6 ܢNsρD;@oC<:h:#@f=DYI^$⁉V4#ӓkO=s;F %$,[ƅ;*OD+VV DKD&c,k9(S dɱhMVSHB! 23Rp'ق}.w$jv^ fScgƵ[wOn[eP4Lj3Ps zY^{ٖ䱑PMJvn+9ϔ 9Sfp>kQ<[(ÕtZcԻ"h,8ťd(3٣R^T4+G S6h gW;6=%g>Hgm&(6Q!v:8ҋl_'7~r}).VTIsr/㼓eWo=ف8!wEm蟣xa9&ŦY9֑:Ҡ#.A.z.`7v(G>$ѱ(++-# H$&N'tL=:wt+7*gq8?cWPIxHYѰ;Wf[9zOxd^ Ez"O4v47ltx;;]2^X> o7~;n}gdni)2u?|]YdalEh-(&.$(Ƞ?3A_k3 Y(J)]exsN}m{T# ܐjqP%Xo!Tamm{Z9h-D,d̛ eXVS-ڋQX3U)NѨy|z!K< =\[^=(Xͽb|\c#b%en[cӋpMKp;lH1o(0,!k_b |gs*;͚ ~mۥ]TMX+ʹ#ƹG߶EIӋ{)=^U~iV}]/+q\ʽ\Kپ=*f[m)?M{j˫ѹ޽٘Wɏs5yŷ=vӯZ,|M?V/,#_Wm#sq9-ua@ۋ][2oє6j+BGܵ]MʛkOikQi (JR.GM!F J0:g-C0NUfNS-J^`W\*?Vg˼Td~DTU57]!%ʄ3Mw]XIAeP R L)5JD4j4Fn4Ziwڃ8jvړ:h2#f&-^ZJgٴ9t.Gt!WJZE".ХZ^Gt%]EZC:nt#DoMfBmVzANE樂=t7GB{ѽtO胴ѿ҇#Qz6 Z|3p}`Ul-׃d\ǭ-ֆflmjnl~lmnnjnĿ}S]8snuW,$' ڠ~7CI;WdbVDHui5PYрX"eg{wǮy5fՀNH~*r흫-ܫD$)pgC$tg)Nhå)yIn3KÃ,*+_0z$;euK.&źp˸ʅU gU2VV,,G$R[^ثmbpwlTHRR;ɝNIN4)5[r0qrSuդg9#W#`~bڣܠ=6Ky 䓕Ö'{}]utP#_,z5+N :b'0g}˽W_ugqÌ5 cϾ1X"K2Kurb ؎%;3%{8H%'$Kh%BoFI=s?y~s_C6:?-f7Qyh}8bjUzQ*qo9.QvwN 0z7*_'nYYvJ`-Hn]?U+Ic:"ZkkU5s,Xױeo0B`(Zִs]u>C_Y{TExiEi-zjZ!**`Zgn}%J}Ms7| LEI c0eQ= [IV8^" 6L#!A?F+(@d1{Yu VtAJ2I$(p9eIv{ Q1p|/(c1Ehh菦p۱+;*rJUrY_Qxv$/=QpDl}ePh^hN[A]{zR:}-\;`3-wܪhb姷޶~wz2%QD˦`ʫF9MI4]4' }(1"[-B+bsŞ cde~l@NAuu@4D@ zˮFG!j:*Mt"- V6敽4rȔH]ȻIbԯ$F1 }egTBB#>~Ko;~%$((! %G^D_Jk{cq:h]A]4J刮2\?D vuK =PE)7 DDž):]NY3X#I<5u%@Q3;Ohj"̐I颼2,ٕJ]tW\[7&ywvl+E؊\A)6rh63xCh.ktkF`6<=qʭwxmxD^KCi%3tS{;.3f9 };#"DcͽD+DCr|Dv"|zw9:SIdR٭sZ"xhtW, /.)vJD =,cC>Pc,**n/,&]TC T>T=TpGҿe RZ;SLyڤCl߰ow8.-MY.Zp>cԠQ9\fU&}}н9ٽ(bc 5I?9a{/VC,ߺI\u5zIj& \#- ~esiy,ѱY}fŋo5z-<5% [-dxǨTerzڅO 831jTLA,.q!$wi%ѫx^}fstb\%O# Jw3Ek=7 7V*LJsin_/;s~$znU^㤠P9Deh^R"h4b:FW}1>^=w^r~}C g~$+;tNTC{9IZ;\z0T}b5NdXx`!QGD'3O"?b১@^]()4S1+1'Iztt1`n>K&hh}ٍ#IL]Y6rh_%zUj|_G+>?#DzϙeF 9V#-,}mi`{tA|N%-{V/?jΖ2RXM4YkY_Y~#d.NM>{`%>J¥Kbrx>{ 8=,o w)49_dc5Cpxzc/86={PV!({bֳ[tiooЭ4gUû epS˼OoaIz,aS# y~ Gpv)nԨy7-j9Ơ/68>ʌ WIޜ~^放cj%뺐Qz: o$R`rlqFZ閹c!{"tf*]S»#5);a4GCj |-!|W*8ξ |ߧT~2P}'KM\[L;EU|vsLAKJf;<5 +{R7?o@ PHV.d2ɡ<@9W. Ռ?3H>+=63\Ĭo %ʼCW HJTĘ80M%'9]~zQ7'ӇGuF4Ƣ^7⸾Giu͋X_ 3z_܃[Ti"C{sU/)k>ϩ YlB: 2ѻ"h 7t?ADe~oT2c]C+9 %Ƨm6h`o,iqT:+Cjd1`}&5c\)afYcgMYTdNb*Z~XR-OJt%LLSg|~*mM50OaYi\D_z\zH'ӜiA#gA)^!CV}'6~9qusNC'[#qB@OK=S̷j6upftL\6ͯ23.R+9R ԡ<.*}~ͥťAM@V5@;=mֺjϮp|vcN$OWЀ ^QHcqiQ'/zTڢ$YCsw$,o_&8aWWYj?wŋt{ŲQëlf{\,!Úfi%au+> stream True endstream endobj 779 0 obj [ 0[ 646] ] endobj 780 0 obj <> stream xc`  endstream endobj 781 0 obj [ 301 0 0 0 0 0 0 0 0 0 0 0 0 367 367 0 0 524 0 524 524 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 676 0 0 0 0 0 0 0 0 0 0 0 481 0 0 587 0 0 0 0 0 0 0 0 0 0 525 0 460 0 537 0 502 557 307 0 0 320 830 546 537 0 0 417 405 420 557 0 0 0 0 475] endobj 782 0 obj <> stream x} |TE^otNl$@'@6zDqy0eF:.CpATp388 }Hߩ{;Or:V}Կ9$ p"pXZ3b/&9 UC6SrJvq7x]\Q3cѭx蒚G̔k '}8ϜY:5tm|?2o{ `:];yPڼ{܁',i~~JWϿuIZ.]ؾ?&ois[y7?+ "^ߋ׃Z.mz~>k?M]k˯7geVcvs67z)+, ~7.nj6@*s ]0-8Mɪ]+6(Gb1t^̝3SQDc_LX6hQ [OX vqѩ np!&AR+HdD @*b*)H4tHG12b_B&L,b šlȎ}9_@. !~!1C q( Eb }a8XE #()X 0(?O8..Tq\a@b*N*XC9bP8Y)P; U0%1\xBbc.ip1tj}5*^53OLZ;!^YP;abXşl!sĹ; `./E< M0/̇&f5-Ќ} Z /Pg!4wB+rV[!Ck=Xbe*X;mpb;jhC\ X{V k⻘uõשx=Bp#\pj_*věw`7C-p:X{-Xm !c* #n;ba`C-،x~|lFF<[׈ M{a }[ߪpp?C5< ^G߀C"<ةc-<{Tvx Oĺ).g`Tϰ],32V<c/>؍T쉽Xg%WT|^U|^E|q/b{^x @<ob!?۰=8¡n8 o# `wKExE?P(T< ~<Ç]pa#9'@NbЃN /s 4,| !R+i/b8ثbB!>=JYeل= M&D6>ؕlx :9r q#Q=nd<<jr>^GB?Uy$ h'Ӯ<|y0iM6 MH2z`WN/j<jr>Q/2 <MQ*j R?IUD>DK AQbH]|GDyd3{ˀ(l@IYTW#IDgy$'4!84oH<2b DA^x$S%JY*k 2(%JCI8JfD^L({ HYXIԢ` ȏRloH:]?U找G)Gxtݢ(!^5U%JZHKgy.E %fzym @?Ty$Zy"N&3 ~YT%ZȀ<ۈVuG癸l#E=i'K&Ȇ%Z6߫ ȏRvȢ?;5#Tzxd8GFQd]uWq@'U46Oդ1H%dc_5a3L?t^7|T>G4M6OlWONM}քJX°Elx= t|fFXZ4U4? V (VCFk\m@X(Gڟ**xd ރ%0(=t͌l`Si JQ&8`s  vf∫ }0 y ͌tSuj hĿv jK`X]q9dX ,&KBC#~tSiIhGr$$fK j*&&gl-mWR`aw|C=`W y MoR %jJz=/iM 4teX°J cHȪ AZZ?մ4DEYfBxE:چc .76 L*΄${RBC|T}woIhAtc R<=qِJIchDˁ~9JT瘴& ΅GsHO 5e!-)-aE#2b4^Eʈ&6CW)~˗Fq@~ĿO,-̍| @ld?2Q,y[*fByE%Liӫf̬ цa_ Ffm0 WHP3a4rCQj̃fkus jʊI'ƏpcJG :$7;k/3m(f^'Ks,C`Hnpپʡ7+$T4FXU~Nۨy oi4YMxءCe>o"CXWjV/x=eRo4z"Wt5:IIMCSǢK\_k'G[6H6f͹42mzԓQ$^aRDT]@nvձKK}ΙsS[ѱ:bɏJ#y?p㐛"C|e|ެ>5s5B9"Y3a{_ q|Yn \Ү0 "L#mA[VˠSUY5;tZ_lFƹZyNST%H 9u/@98 C_k)`%-by^R\޲R|C;(vsx:$첎Х#鍞K!OF$P,H| ^8oi)ӑY7x::[X-GM NzIgtXoxO %AK/جI]'Uz2247?`g{MӦ-k*Mxsn0~~N"CYf:oVYt{#05|ȡ:U5!ukCUtZ_Vގ@:p[Gjy::}Ǝ9]Us}^YUZH6&=u'R.41ɗvjBc=*IOQgz{t;}dYSSڡC_sI10'u¶/za9[K ImR[9BE@b:ECD,ᛈiUlڵMMdbK<~y;YzIuB4݅8E q}y$޶ $$Ѓ/al[6mllV{{!I4Bqx$~{4,_'=8 /"RkF{vpl8/X[&V,hPڞ -Vz۽=yo2N& :]N'du[.Ykf 8)9)),j]tEedgbVzrn,sYtc)))t* BJS۳w R @-^!;EG{-#}b"ujDC22 feVqRȨT/~7P}?;;bWvՏmSދNQ'FOFC`}2=JFgL62bHdJ}H0P͒s&'L!D'E+v$GlIZSz T֋ R( z"q \te({ xD#g"HdI|_yv9eȽd]tYy(uр3F|FPu>Q XLV/J1TĽ/^EqJaQʟ2( "_*H%]+E^D pwa~> .b))g\zlHHNV2lZo7K肇z;c\pk`6u; ˓\; !Qb2F^Wj֗ 2UPkmnc%N^b'n\,MVꛜf 8v";Y!`)© ӡ{UԍJw63@熈>/XB` EBUwF?>@mYziEFw%>m5ڇz$1V:V.v@Vi36Xr@&LLvQ'PΥ]2~m3X7F7EWL\'$1^L\.<`QL3ib1O2d0z؈hmH-xuUn -5]}C*1j܆\C58Jc!%QnVTLKrW>(s~dgrnPt}#O;c$^3*ӕE_O i݇Iݸcz+s89TUEip8%>Ć?ѤDfylǙgw|}NWƎ>x7pqsr4ac2Zt:ÌM!N"zqz Z-n,bY-ci_qiYeAkR72k<==Cp:;3,AGPy 1Mΐ͔͇g>X]}a k*"5W{!uSg1%f4a0֎ _)%)7`Wˢ%`Wg\{ytᰙeO=j!hpT 1j9f+G3l)C ^cH`)$Ƈ[j/Tv懹ˆаh1/SO1|orC5RI`Tx:pCM!-v3k29j#R~ʲk73^fcXZϊ[l'%dݵt2+QDz/Z[ p`rѥ ʈKQJ“9¶,6=`,K3mb,"V41$] kf 0+VKIG_K6>мRh31ҕ={h/PI&YhߩC/qU-+sl"ݽ3z5ߵh/9=| Ծ0k5nӮ̦9+KϢ906nH#L.*jXp+J’lvEvmv[6o㱞6gsP1v,)(<](`2d5yIJ)ZG~Ԧ4RL#VN2ՃT;]SO:0φ=I3b~4 {=j=mNG_K~}_#kg )1y'N"VA7b^O{~>et?R1w• uQ;nu[ 1k͸0B2d9u:!eI^ԱX:٠Fjml[mm{mm`sKFZqt:Ek˕|mz{ZRrNfͰQe "Ehm)6M7@gC#k]܌G .Eczp=vYp edbR-rT!mg9V1AbW9Ӵo2,J%(e""WDuP8MA]oQS}~L.ԍ>HزjM~<xsjTCuz?YN2SpNP#Šb. #.v5j 6t 4tv%z"c}pמ%kQo˃W+sYYYYmY/g.Wj[6ZR$yI=hsmVIAYʆ`<Bv^a%ڲe5%)9dNl xLI0M1: SfiRWԏ&v}nD@"-.J< ^ n\jْ־!wX4'?7+2}̙WMQgṈWpѺqӣ'D&qZ yܞKL;IԢVm+KVxdLdlbh2n+Yc%V\Il`ұ$&)wV8kmNjVN h±>ӅEI0Rt~ B+q0Z͝vӮCH2K+kM=jmƻ.ܻWdCL6I lQ!40c)Gi$ Xke@cLOQHfm ۅZ|)AH2WլNL3Q7O]PRPzmD "XG)hf2f싯~{/$$l~'OIA3`њ_W5x+K(7pw BP(LD?\-n9: LLAI!>4מB1jgpr6C̎^HN;˵p;:}S%ßw3Ws&2fc6A;4l 2 f2r!l_$ٹٕٸI Ġ=eL\ϱb+9-#)z]*G>YmiuH= W l:a>SuN˩9\y^m#^Xu \vߌhW <3z`֢/:~ļ|WLxd%PM%Kf#@,^EPAPqİhA"$DeSQܷAFQAqq}oQA;;>tVWWuWWխ$G6Fy  1p7335H!R%(d܍`x0U@TbQ{e4z  dPTz5Љ 5޺.蜂##sE-, @jOͩ;v8Qv Fge1rTPSd\wJ9Kn^ȰcQ͈.s5(n54Ygw---wmws#`3vm Cՠm{jdPz|{SAҾa{@?Ժm!qԥO9!OH0$LE Hw4f zH 3Nmd. kY,'a0"a-J1hQLIP(C/ x[o(($LC)\A&)fB| m&%RO(bLҫ0".TA_j4 c[%@E$Dl)HX1!a Z  k"8s ?u )HX &i4TM7 Yįg! L- Ku$ r&S lg=BHW@kHpoEl=&\3} <{( <3hC,&ET3SEL3URgгT"_9`_ȗe9#JR\(9`W8#V.ø@$v 9]ʖPT8a8dO E|)X\2199!_(OgHyTH.s,NxXLc2@c<&Hr J-lTxo*8:/DŽ",9VȏU ^`AW$@O z P:`ŢTF8$DX:$f`RL. UH;y )rA.R!-NŋyByʑ u\(ǢIBKH6| r_cI"D7 ])L5NJ j9Z@EJx6 Gv!2HH`sZxP0K+!+x$PGv7繪RB92rL s7;h8zb>"8z P:DRϡ  bܹMA 2$8 ^ D@ҝu \@K*C(O [W>Mw#e`RF[VWJb 3q%c"4 VhI8!Og56Ҧ@3!dDÙrZ%9uZuMjJ10Ű'`;t-#5A!P ,!V9\eBr!7U<8Di@1h*HM HK,IcM`x(%\y!`6Eic +@M#SHJCGpCc 7 J+'v*",b?.$ nŒfNCeʬSʏ} ͸Z Bswv h؜-8s( *}$5ЧLS5 lRÓ8VMFDIxGpX }Fp,/Y.&BS@|R0Fȇ[{N_܌h !v>޸y/6q]p7C\:;9q2RlHn 6Vw *Yv4@QXP ؝ RU+(*Pm5( EJmovk]33Łg*MU|s.[/ z_hIymcįڗ {L(;ƙoy_O-wx;ʾ5ii39tc{}Cs^[;ur,2c*M'a9N#ѓj QMnUͱss|Ι,{_?'ϴE}6ܲ(t[[-Cg7g%?SAklA*0xU܅K(ƭ:q4Ø)'vTڊx;*hfi,\cT&E Yħ`Z,sKoW}SYA9_x5=!Ó_}M9KRs?؉6oس4LXY[V!~>f#ޙy- ߏp ,x=sG9H۹VKy=LS͊A=n:Ǥ_k󋜶AqMLv\AyH12vG%e}qwUw:JJ u}6~7/Ŧ-2I:H>ߺ}OstuȚ?".i|(0}jj~1o Ve 2:tT[R@sЂtlSyVD}3K#56[8}An4UюmΤ{|}U[^ |L(jRn0 2fdfu:?+zyh K0τFw~t.Hꎶܲy#[4z0**G'sAuxGdu$Gpg3ᶸMuUeO(<~F@F?@/=Xɵ.N=k>r5rpݓo&ܚwΨ_>\kaɀ3GM81lvk@+W+ꌲUMFeV~k<_Y9{߯8!ڋl,1 G~R?EbƦ!y<_({fgRtb]פckd>oѯ.c =Y|9ɟ߰ݸ08i cpWEDy jZVmUl*nX W@[jdGwf/U@tX*%1@3dsTIl1<\&vX,ǼbPJ!n8ndxp9N0)Ւ^DOJWW[m096wadt곝Ig UbKhqK]h}qXC펳YW~ޮf G]]۩S8>yM9L+҇?o0=.7sf/yrQ,8>%x]@yn6Ȥ *yn`n:aFɴk~)_ݶa~cIiGݱbK|?cXf2nlӷE_<<=gNysts lP~8 ُ4V1v}z:bSf<髳VՋIkzJaSJ ۬Fq>&g|̊6 ª}N&<{GAn-/~lLkN'EψgO|W{a geeY;`inT_0W;s^ڽw 3GT_vי&3qٔvo(Zgw);FK`Mr]oh *n21; 1+ӽVC)s& _pḹp\x!!})>nhLbA* rt-l6Ը(cd=i:_MnFՖhL>l$n # $LINc+5{>KUwIg-lC~:jlg?sxՍ{/R[TU 2;]RmtYxshO6 2M\d斿m>7RySGb$ʶ6iՙhH"9vMaF 0waLN_Qw{%YzÚ_ X5c w<lo3GOCoLS3kX}XwS3‹C܀BRܢiьh4nj4xwZ?;Ph,s $IuׄwƵ;,:N/*~ #{hj\PpR:7ogm76pP$õ'n|zW{O(S"hdW{`)41a3 έC+%hxFBG:Y#q*ϟ #<̑p; ܉R2{|Hf(nO<}c"a3Kr,̾t诙ح}=ƦȞ4OY( .])%"9k`뒪 75ܤ* ="kέ"mk}ʻΐѻnvS5'1p=󅬥M3 [<4i ׭uvd8w{9ؼ/CtOc*6>y}ƂOݻ??N,a ?WXXņ - n76OSPO?? ]p Q҉!6K.:R=9Ch᪭x4[7ZƯ5lR˜KU8xT>e3)^`!2)Pɟ=9~[bxLѕi 6W4 }5eyѡA4">rҶ 9Iy\`pFg g穿mv >7"[,Xq=?.܋rN9r78u u nAWY*~XĔ&?\@6jqwp'#CsuNYhK/)oZ|5rTo杻NXr k'_n|`qM{im"WW~geywE kP/9(`*@Q`2nj{]o:[m~nNNNW) M'lY+7+]ލ `xn25Wf;px-%}kێ^XsU:J5*ķ/Z8{#Wu7+n`?pH.-zں-+:;)>|q~ݥ}7UKGG,ģְ>_ҷn߄KFmξ0Ww\*s '/4i[W_lZ>5=bJFMO]~msu 5/J l^$鯘rZ* endstream endobj 783 0 obj <> stream True endstream endobj 784 0 obj <> stream x]Mj0 >L&)Y=c+a"Y0 lij{'l FOq +['OT6]lےph i@$€wJC4K߯1^qFJP z1`ΉvE068\Ȇ&TM%Bsj0oxw]uq߻+);(ArOx[S 1S o4 endstream endobj 785 0 obj <> stream x] |ݞyMȽaI8 7rpa!lM͆FAoDWXxRzj' y;!Pkmo?;3+0KŇ-,.5#cڻǘyƲ*^;y1L[t왟3vmϜQ\RpŘ k&ş0~}FoN7K7׎0_ߒ~A]^V#Wxe2f[RgP>1KVe%;z?;cF>9ܾi_q084<ⱁuu_Br:BM|*3L\Xˌ__ג=jNGo dqG}ǔpDyK(вnc9'skx]-[W'NeHy_ [M!ka zFv_9WAl3h9Y 0j.<f.hO{mU)EQ:E)^vG7ؼ2Ue^ gt2~~C)'xꕌ;~>S<_K1CX4{f`F!ľNWF*8(v$V韰~3jV:u%e-\09g͜QZR\4}wS&O8pÇ HIr&:lVd4u gJL-=j_bO9yj2٨d^DJwT#^SZm6`O^>x ׄ2d^و._Yؕ]X+b,XjPmW߹ɪ*5ΏJ"Iy!Ȑ e`ȁ0OqI$σ`s4#GCh,LH1ĞiB }C1lї]^VLcQ9UV2oA^ED%eIOtȒꕞlJ*cgD:0ڟAVVU :=4oK#b?6֒# bG <-trA XVUUEXeuVXK-,XEQ]F1B#V[Y^SqWj>krWv[*[8#ClEvt#7rťo QҲNsnh%! qE:Qh+"wt!'b COoy QKŽ:xBPChOEEa09SrsaSF3FBTx \kwNg΢ێ%'䨼rbQK\jZ';YX4{uX@baYc5KqyJթv;:z-%E ϬNOYd\DSlda8{mz8S-)*\)^w PjVEXQdT#c]xJAWwqYuB6)l"%ecqܖ5lשּׁUpQж|% 9 꼖;/怶zk*c0;(%?硫qfQ[YEtZdBqđ3ˏß`fqFb1$FnǼrtuY+ ?dYEɆȊ'[ 4_fG ZE-:Kr%φ,9R-EgIq(RlbhbmRht)ZhIF)X#iRNZ)RHQ-E~)*X-*)Nb+X.ER,b>)HQ&b)IPR̗bs#l)fI1SRJQ"EERLb^)J1ES,$)&J1AB)K1NRb)) ȗbäȓbC, )rȑb)H-*[R.)Ȕ"Ct)ҤH"E>R$K$SD)pHa&U f)LR0HB'"GZ8"ŗR|!R|&ŧR|"ߤKqXHP?K')(R/I;)~+ŻR7R#R%śR!ůx]פU)~!+R\xIxAIHOIS)HOHxLGxDxHx@.)>))Ib).))H)n6)n)nR$ōR n):))*)vIqWHqIqHqIS @!v):ۤ8OR+py嵇k.=\^{py嵇k.=\^{py!).?\py.?\py.?\py.?\py嵇k.o;\vpym.o;h5GOq :rgGOuP,3MHt~@@Dkڨ,LVOj!j&j"F5Ѿ%ӈDDuDѾŠjDDVQS)hr reDK|DKʈ-"ZHh>h<8l h2h$ V@O ##J4h0 KC1yPl"깉#K"ʊfeeD҉ȘJB>DDIT$J$cNe6"+D&"c4s!\ȨP1x71ͅD_/)D}X$QJ1a* >":D!Od#D\~O(;]Tw6[DoA.DEӗ~M_ %ѫd+D?'z\^"z/=O3Yg4SD?%:@$y>Alj=Fe=BƇ"z.rKtѾhTP4(Bt7]DwA'4vrѭTv D?&Fv]O(]CeW]EJp.'R*\Lt$vvuhyD[~й*Z9DgGS}h*c~V4uLMT}#;hC4#j'ZKF&j!~:QK4Lȳh iDAWOTG=&"U&ZE>zh z9ʉQwRC>h1Ѣh0"ZXM{~4e3h^4e8h.!MϢLd, ***tGKAӈDSDBѤ $$4&FfGAIAcl h0(MM{(QDC(`ADD9$1K<ș`*Eqz2SAQ*PzԹFJBԇ(*$Q'Dv򴑧"3HԓQGq"Nr KvMq p/` E|C(>P}B=wowa; 6o~ X~1+/ W_@ܑ~x x/3砟~qiGSG>xO| xx~a{=~>^݃}E@۶}mNFM=3?nnnnn w|p#m[:kkFkb] e%Ũww_h]Z>z{V]{3/t𝽧wo=|MܶɵiΦ36&oѺѷwƞ vߺ=V9;ٷvOOߖn}6>+٦a_׺'cP$  ),ĭ]\Kލ!t_eOw:,{j|ՅU>aou᩾U{N,\[gܷ K |{ Y[P87ys|s.雵goFag}}վ: s#\^Aa".]rb;Kɋd̳2/%fx3 +ML)7I/ei45M*Ɩ6oISG:/͓[SݩJ;It9_r*<1;Q&=17aDۡn.EDd_4)6kZT Qt\q'HgR}i|9]fxNļpEo䔉O-_Q *rhI$E?Zg͉++W1'ۛƦWjmk Ǫp9&ry(Ogyߙ ),݁/LVe3pp6 l6g:X a8h&hAjPTUVS `9PˀXEB`0YL`P @0x`20 L 8`,0 F#  `00rd* 2 HR $N HV` ~Z7>up?__ | |> #>{oooo^^~x se%Eygs3SO~1Qa!A D@  1pp#p \ \\\\ \\ \..vہNG6<`+p.9?csϱ9?csϱ9?883 883 883 883 883 883 883 883 cs}ϱ9>{cs}CxX1ud/dVցg+;]co*jna{=^"FfόcG2$\\z$G.v2&3Vס#|8W΃Nj|ln=il[Nȅװz̬a 5i&Y^ͬ0kck@rt-cv6>5Fl3Yx3gs4%,v.ylw~ԣ:vvOsRv]uq5$*vkF]ؽ.v7Oj͈Zm[01ͽzL3[gbbl^5Qxn'E l:i&vb ri?n=+eqMZ uZ)fUI]z|wk؏xjJ2Yn݆݁bwjo.(Ϻ4w}}_<da`NCɀ7LIR%R%iH8WCWE.':PwլƮC'eZǩq&MI+nM+bMMXG1>b NfwxSZ(# Y]syc}v?g$yi[3nu&8Zf ~aȰ2#ܾdǦ"%OH=#pThgJpJIG85GNl'=I=1Wh!d1ϜLcVRO)fps1 sի#fXxoes3]}Yf`0.5YM:j2t=ke[ʹYKł>?3s2{S'qk bV&835Aτc& 6cv`.M' t1]\/aa.fCJL$Mޫ9{fZzRlr_ {SRxfZQcQU^kJqgdɖ[6O-:fS213z=f}yV2Hb%e&Wm8%yhH_O[uϱѬ<71cC'&ab›̼}IPadY.MLUgH0a*6_1<6b^&65**Fٜo`j戱=dZ(ii'sdg븮*b14bz|趘mb3oW<(QgZ- .O(X?oVT6%kqsoFHQGLb#M6%qs˓jNdvdX,Cf^ͺvўdjBvfsegϴ2c祺I91k ^ՍXI#Ok[:bҶif9e#G. co*W\330FW,$KZLONH4[S3S,y'Fʁ:6DӉtÿǟeU?yn?3ğO?'ğO?'ğO0[SəQ| YA W0rkO杠VXN^v[f6%-LiƖދi;JI` Ư{Qd*f2)u,,g}/[t1me7IĘ6TSsL[2;|aY}scZOgJ<*[ [GY ^x^|` #FĪ|kI+A@ "zڡhKվZ_Usjh߭Ӣ4ǢkSxcf@,mvQQvi(En, ZD?첕Fif%&XV)gWD-Xwif̀}N=Wᰖ#3jEW6UuZ=mҢ5jk{[1@?S]3c]̧ aڞֈ%Ws5zگ:]nKc+'[cce<+=YDʚw ^]l]xKo m̅G5hfhua<-GvԉǢ@V`DXZmbUko"UhcU^{Z:nV1=`Pk#*øzh}S[ڥl氦gh- Yk]h#m,>N9yܢv`oJWMTTcZXw ߏ]&'kR#)+NzNj.œҎo}ҨHi+MY1@O٠zC[(z#ڻjanWG9F56׆բPKs67p8 UlUjcsM ԤZUkZca ׫mUᆀjnk 6յp QFn5BꬰZBV570ڨn6уj  dS[c @X ЪomDohhnWq5&5,ƁlB[͵jUN L ¨\WcԪ6֫m<;\jȏ6*ն "p3V ɯCԖz 70Q6cǏ>a!MZ#F zsa[o ZUQkPss>nXPޞ(ý .o__Pmn \5¯ S^mk qtH~@1jԪZJ|s4e~jM{jP3Vlmi@bZBA8T+WeMxC@ctc ~#XϿ&-Xw˿áow:5RW2>/m3~Owqx~tY 6 ^PVt^?Uy'_?i𚃲%'?C?%Z ?_Fͩ'_˿  k9?bl}ɛv2d6ۆΨF̜`z=7+ٰ{nmw{ܹ9s~,7o/6[g {}97K[]]0yGPHY+V"ёLLO zMzSw1i1gd)Bm%Dj쬍p3w-X@l1?g"σgYj~3?OԊzb7?;k~js|j~hӧg~:QRA; ;kV|HxK{XDY[7o>|"uF!tƺZ,T~Nږ6(I.%}:׭+$̵-aMS݉Dpbcb’؋>R@)M8ުDb'JCbҗ222,., ?l1VlU.4>R?uNیra;~4ԊXi8W_Im2+)=G)=92snqs.zwiY΢,ׇ2_E(Tހ׍үbg""m&R8h %}ЬŊa}U 1#RFyX=WOjQGF]f931ǣpޘZvuu{c{fg ~&~iOMc<7qʤL3i>fI<,M~cSVNɞri(ijZll,Gptns_M~$%u繭S;VNէV3=}ƞ3뮿sYtx@mX * 􅶅C_x W.|lƅ-x-XmI',EK/䵥3>Կa}e7,{oى7evͼ!3#sQk;2KVX(YѴҽʫV^rʭ+KV_5~6ھ*q|,{ָEYd:Vo]&s͎3W}||tl\17ϕߌIIssviUΟ;+]x4 v{ʞNK2ksydm)qsۍ -s&϶{1&|٬xsm~GW|Ըo>Sv?N8Lfkn#R[" [VF4o0{s7ۡvxo:;Ƕ_MO9pmNxQ渔IFs]]AkS KO99SwVc7l'툹ʌtJce1= ;!ՌQob95wj-c"g -n^Ҭh=n|m֙m?hv 0v 6lH- e|FM$ o^ /*YH( r̳9xE/\-|Gg7!>]m;_ wv"Mp@pٟj_|$Y=lvlg/?1}'g@?Ӝ<{88_Cpۿyng/Zl4gR=L]Y*]]O,vY켳OCh[j]}U#4`v\QVhc $`wom{buX !D:nbW>]ewqőr_,xTF xw,< ^lx^ ofxȈ{֙/zf)C_^qYn}we_[d(Vdy\a,GFliĦFliĦFliĦFliĦFliĦFliĦFliĦFlk,wM)pTHe9kx8B~3r؍ط6ru<\45޿}o#mľs=s=s=7>S_!xD_+~ү\KrW. j g=)'%?h. 83%ww] dW+w%ޕлzW3^g8/xqƋ3^g8/xqƋ3^g8/xqƋ3^g8/ @ @ @ @ xu x2cuӈ>-'cQ#* C0,W_^ڋW{j/jFjFjFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjdFjFjFjFjFjd@n"~q&"vn)B"tHB$@7&_DE_DE_DE~я"QD?G(E|A\f9n&x2񱖹.9cZ%#! VȆaȁFsbnt17]̍.Fsyżb^t1/]̋.Ebbă9Ϙ#f5x1bxOÌc7 1vC}F5wk]}F5wk]}F5wk]}F5wk]}7欙?oP"qq7-Y'Ϻ)D:ObڃCgp QG>(}D#JQG>(}D#JQG>(}D#JQG>(}D#JQD7yxgGw1cDH:2 d5 ..*r*r*r*r*r*r*r*r*r*r*r*r*r*r*r*r*q<Wױz)\{x@L" sxa.e;ryºxZX_4&Z ߉~<[3ɈV(U֍W_~o}Y~bb.n<p 0[X a,%rȄR~oDO+Y2L,ǭ)+ozbuپr5(WY`͆aX+:XyYy</& }.l'A< A[hItN4A4A4A4qQp5105p-\zn 0p 0[X a,%rȄR~"ldQT˭eV֓'"Ł&02GgyBG(*GYatVFgYatVE(GQ?Qԏ~E(GQ?Qԏ~E(GQ?Qԏ~߄M߄M߄M߄Mr:*r:*E(FQ7QԍnuE(FQ7QԍnuE(FQ7Qԍn16b&׊DԮD >%dzOu%ZWZWr%ORW|W|~|C#P(f337ȏG~<x#?ȏG~<x#?ȏG~<x#?ȏG~<x#?UQ%UQ%UQ%UQ%#De2BTFQ!*#De2BTFQ!*؏~<xc?8<qx8<qx8<qx^ `O.\k>k>k>k>k>k>k>k>k>k>k>k>9UMNUST59UMNUST5=at{F0=at{F0=at{Fˈs), +`  Qh. mJnfd̩\`2\Z VMcql ]/du7%|oq'փkEP%'{\P#4:Ec`Y\.O+Ca\!uepgH}<#ܿ@ 9cڝQ^~Mml߹@Ok>?HLPy ~\<> XBIzq}<>~%<*^mY#&T-ŧ(j5VT=%ZQUQSGzԬGzGzT5TPQCj,Eb,FR,F,AR,@RFjF,ERFj,FjԫF= 4F1 4PJC) QQQQQcJT5Ji(Ru\eH~R~r{ڊ*Z{ɳ֓ {wr yGQn.Qr>PG&Qz%d~e&o ^U5ؿ*Sno*3\+f%9sV/+O~~CIZ Z ˻,\rWU2aRlYgA>,z.o=+ޔO8*fb18V·| >>'F~Gdm&[Vm2o?_-qg>O$t'ƧevŹOp1;>qIthr ep\.;n;L%yd_nfov?83#17e&ft~n"'7r?>?zy{n ;g_\"kKc{޼{]{NvUX`#N{ϵ{ɮqf`v=av#ZY~vlE ;}f`|NTTj]M",I:V1QbLM*#>X /{@Boz2}aq>٣?k"h4fb'5ֺZ܂[q{"9"9"9dꜚiڙg8-fpm4@F})3Zo;gڹvr;%;v]`7.\h6u.11o1FE[e2/O3x_ī'X;kI\Y19מǫkdŬ23rfֶ^^ψ_3X8Eb΋7ś, ^XEΉ9u fYʯ5${l ,-??7۟O؟O؟O`K?q n De2{slD6["/ٛOf؛OKl~>O'9$o[_m姯r[j[|_WrQO.=ç ?VS xB{3T4]!EFADl0kZVlDAl0kEQAkXA+byQN" lhB*Nѩ :D:ѩNtVJQDh["Kl޲Bo.DU"*ѢYhEfJ[z+U/*T[v~`7 v|`uv{n/n/V.o˛fYM:.þcvY5ՎjGj'5{LZk]k6ƺαs;b]ZLc˧|wݼ|*/ʛ9ioc昫5j c=ԚZ7{Q95?sxn;1Zc|-cwBgپ#<7WEluFjdFըā6#3:mg]Xuu΢,jeQ+ZY5YʚVԱX˶FGiVii9,֨z[Coz՛mb^wmzޡuz^ubw}}^שVb^N=6eϋEb}l)aj)bj)fGbj߮m6O( OYԑՑYT=TO+HݴR7M+uJʹR3#%Jl#EJQRDkf]]o{މu]󶁍+ظ“;{+1,~0#l0{[]u|JMrymVzÊ[žfŬ3bZמZHi1-flb6ZDh1 -f,q4ƕƸc)բ5O#UFUJʲ聍h,dq4Gq4h X_&M Dqmx$LXFk<'EaP_v"N >#84|c8'p&,|gSO3,><p.—p2E^/-{u7²6w#xua15ٍ80,ECA_8'$/< e|o}>soF\c x,<7ͳ V܆q]^܇aUbyXTь+Z\_oVEҨB0A0);fNw<,/2\o xC>p>>ãZF|$?GF?zE?qn/K V<5agEY{,+:ˊβ謨 {:NꄲҲixx7x 3[㘅'$0s0{VT+4}y>OiOiOiOiOi2lgleej;׆ىċWduzcOk2]L7moyFGYY.+ee,岲\VrYY.+ee,%FIQmt%FIQmt%FIQmt%ݖT<1 a:~Ps9TUUwʢY4#fdь,E3hFȢY4#fd ә1ә1ә1ә1ә1ә1'wNn^ta ybmU BA&J&MlчYUCyq*Bʑ2}VEQPQTEAYEAeQHX׎s>b*@ S0BȪ< *ʣ(< *ppppUJM)q4u-FcLFM &&"gDȥ~]EyCWpTF.e-սԮ/ő8rGȩkµjjHN=@=\>+ʨk VX]LTꂘZEJ+/a NٞJ?k`\jfCv1p2jX [J*S=Dz"RA*0uEL 2jXm-bE14BE!Fj{COTi 4jI-FQK3RFWy~^Wy~^Wy~^Wy~^W穮ՕrTWQ]9+Gu娮ՕrTWQ]9+Gu娮Օ8|&Bx1Xަ $DpWbcx3hSom ;ۻ_ K`Z?Y.vʭS]lI, bw{Ķ?yr"OOĒnO?/ʣxzoVCFJ|$6 1Mh"D4Azd=:S&lCը\6s GH!JT!jdQ+̏ys܄ -CCBh(+Me $QҨD2F A荃/P#qc1aWʲ U| _܈ ~ 73( w܋p?姄yc. ϕ2 "yV}KޘeGĞ]MJސ$]dEd*|6dedUwS2R lqύ':\c,a-fqxOw9y=F-g\X|/`>`!^KxUױ$K6"Xc hB3Vy]T7Uz;cqNGCS㎷1չq~'e<)IumF-󮿀X؞/>ac{ ؆ +A84H8GД8Fyk0 qƣ!0TaS/}fXQ]Kק4<* +r쫪8"4e j3{~=sn܍{p/xbtƘy7x 3¼ /< e|b|xLI~p3~_W6܎;p'=~LT<˞P; \+mч}}Ѹ0-07bO( ~.cs~ϱ9V?Xcs~ϱ9V?Xcs~ϱ9V?Xcs~ϱ9V?Xcs~ϱ9V?XO|3Yլjv5k:t:tQ٨l,6}{]],/MK,/[d[ppppjv5\~* ꧂)V3jXb5SFN&jXЮhO KN|.Z@ߘߘߘߘߘߘߘߘߘvz^i1ڞ_M 1ӛU}짋Ts*MHS6f'11lޭ9}qd Fu:.Btfb~tYѡīkEu})}D.:ͼr8Y$zzaPbctv_.d==>7-ݲaѐtsI'~ ]9Ugee[77G8T;~= ſE>'>lq4wP fɳrWr&pFD5:{+:>JFC F%A5z(:$q w9F|:e:А Iu?Xx܀ !j!j!j!j!j!j!!j!!QCviQOd%Gv6'/kkeѱe )fr%44qy7.M(q]X?:#1%~b+}%3'yftZrptٺ4:Gt9::ZOz&o&<wGFngYTD*%Od_OVy2ĖoFut5z*unD܆R{9+[,*a~~yyyyw>/ I')RkKCguFhJ|q`y!7[i]],Z -b;XQ.r{ߢ5fS}ެaKwqּeW:{х}/:\r8hqYq=ׅ7OOz=.͒0[.,riIm'+zG_H_Kqyt|z fX v鸓m²=Ƽe'd1*7cˣK^zc7{c7{>K$t{7זʕ.%'_m1oNq J:\ťQ5kyzvockK⽵hRâ+CG=|Z%cxf5dVeV6ɓgG* :R#0?ď0i rA˅ĵF5F_mvPiFsR}]};UZYrK+Z)|-="u}]b_}(2:/qhp44VW[qFDFUjgߔMyi36=Oy/cOV54ݯ7Zzv-ݱ[\ْQ@ǹ7ȽdwhI6Ǚ"OpmQp}ǹP|=O{*՛]Kud_oO+g_%vq}gsm*VV8alUR|{%#,O@{xח͇jnr(vv?ݾáa|g193=33luʖШ;3}Q͎linq>4Ї U/^4cuyvml/D5U)Q?w}Ш~3#+:|j~S'$vvW8Gj'vo>&\)- NVtWFGbޛ$$;(MP]>;"P""R*JS@A`vPPPtޙwB{~v2;{3Z3/rd+Pb/ S[ZiZ}/ܑ#UpGx80pGѪ+qW*x%^ r!SGY\yU\EUD`i\ }T40`+Kr[h26t cܯ3En0zB~;_/a e)kțf1_Ú"ޒdּ5wy{ޞ5wؕ#ͻ :}֙g'|>UMod|wdSľ\P"d3DHa?4"",ʈl(/*j:["geŖ:.[)lh$ckEcј qmDsI\+nd[E q;%Qɛ_~VQ:?'?Oog/W/2w;ZFoKoJ&=2YEF˒B2ʳ٢'/%esy8KE]|J,ωֲ'n@q|I$CpNĽr#:>9^~(g&=7[)'P "\*ZA !1LMTi1NUTutuj$ƪX.T_bZ]-Vkյu^V-TkFݮڊM.uآQ]VUcSiSϪ<^^Qx)jjƪ^5^M񊪯LYRj:5S *MYAwKpnPk4 ye^J}叫wgpMpwwpSp!=h{0t:݃cAoKth\ y^`p0 g `Gv{/}^"70"QoPDGzC" oLX76R:R{+zMvM~mA]އ{xG;D&F>}}MvDM~[]m.D'dzG%K' L01a?"avMt/>}~@FtGI&κL]uWYXwO"~AuYI/z%kߑ#XOS%sliJN6?_uWY e+H/m M;>YЇd7}$$3!C/0CT}0] 3ŰdX^ +到gS {OQayz8 $LJ/e^8,&_ G1rR"OL%$3%& ]E4L6a!{G0.Y]eZ" ů3ɓ^`vaʧ8^,b1kAߘ<{rʖ[AS]xSnԊx.IH],<7c[u)qE+[M'4/0 yo])@nSkvXseq/3OĿgsq䇎n-D7Cӷq_nqLvyzO ;_GXI~υ ,rqԿ&6У'\>J8jVR䩂*ZF~5В@Gk0s[}.}\|a_~rğ x Sbqv91$ U{?}Tͪit#MKL:jjǯg>~?Ԍ,:?%<1j/4K̓7Pu_3#S+z"; 4 p MZnV.}MF)endmXz婳a~7@_H|:zoY量 ?H/XۜYۜ6OA(EC͢,ڈ[i7ћH֪54OSG~˩4K.i_MGsMG UjZbm:ZZnm:Zim:Zgm:`m:hm:om::9F0,bm:dm:lm:VHQcYXakӱv kg- [$[BA*kAfP JA{ 8/8=> XWkGMĺYuOx4?e-6D't6Ea*Ͱkm 5bkke`˭VY[fm l5AkGC֎`yb$1‰Ey4q_n8aNc84f0,! tzEA0J>IOzЪӪ(j&ҿ_)aв`տb%}lt ;>i? tYid ivR2N/SK_ʗR*_WPQt Zk1N_ ;}t 7*@) Zb]8>e8q1TQ6W6AVt%%KyKĽ5Z:o %x[]T$owJyq_i %_Hi"u%K|+T5EʕJRjFI9j- vBuL"LK*nV(Iݢn 5zQ!׋ ^ЋA{ꈔՃU'j:Enһ| dgP9\!\ R2D AKHA(g\#HQcPX5x& ]܇G3Oj25Z@kQ3Q )Z2*U'uk@eF wrBV5nS;]j$wݸGA^-٧J>C0j? QMMMMMMMMMMF'Cb ySYL! L醰{'%[d!dO:aAB ~KAeHX *J?(M֫)k*굸Nt^zތ[Vl SD|MzzdzP}DJij zPR P,a$R0!LC*\KEJZX2-Q[&baqȔ KQZX:,rʄe/|<>j8 G!p4JEoRa$,RECJbG؅CCh8aApPA|}S @+`AĜ|n>p8(v8X``Q3f:,%QZe:":!|=K!Pj%#@ɶ-J&88Lt7MT`T~$ģ"JD тM6}%[ڽfqR6q;$(CLzE-gu q"nM8tUs)݄F]Zu$-y݊8t:t!nS!];۫-q:!! tG#Uu|Dq  gR|}6gk#v:]m< w)t1q%ՈrJe2k0t 0sǞα-?xuΑSE[,?[?V39ʹ3wD ncfه?\S8Z5-33ci'Y׷qWnwǩ]߻sCNÌEA(3qjyovsԁW^f;,kNxmkG"'WȾ`ץ-{3ŅF_wrm9dG|*.l͊)KUsPS8Vb>43~qT}dWgswT+rf xJV \]iW,3-{<_eմ4'c 39;x2v7N\OM![>ܽ){8;J~\@5nʎ t2D/݈D?-ݱ'v![~Tt}|5iyO;][ZMyӌp~1M'X16s$U؊_Ҷs{G&ffџHd6!ͮcwBVf=7̋;c UjQs2W\ 0cLGpyD(>j"Tí9w1#_zI~ (\ٟ5 e6lWg\rgv/@q->kykYXuj;u*<͔c!C=d߹ŋS؞]`hRjyv_bs_ړ6q=nwl+vww+LWsHĴԴT|htqi`3/wf{[ VתTٍUԱg7oh3瓭-͊k㑖o:j9?1ܕ=zpd)?3fzm >;`D{5NuƳ\{$%$$ksw</8l|^_L<'8mr<瞻wl$js[q?vrYajuq8tϲgwE%{lMhNGSw:zٗl6M5xM4z|~>j<~9oJ xG -]#h)J&@D>6OƧ>Ϡ|&I;O|sϴsi~EHDHCa9_rU.AuY%:rΫ\'*Z,M"Z"[9nLMzzcwXOob4?e {cݬ7{c=7ƞw{xcC76xc76xc㭏76xcӬ76GOֻgֻw7[n\Yn<h׍ZnYn)*֣?ztZ7xэ7U֣ztx dcAB{IA2]5>]/&|_~pwj-hc5z)߲g33|B7 {z_ZkS}O > ς/`~/~ ~K%Z"X䛬W6zea|Yl&X$#RRHTi3EHH-Q*rvlQ:R/@4\ *F.\$E.\&G45""E ّ"EhhyzwMw7q&[xzk6Lµ =1zk_kďO[;6M~SY\@%eIP ,+ˢr +CBE WUɓd5J(,y֐5PZMY2d--k#.'!Y dP6&_6Cy )ymn.巒mP6rlr{WOMj|Hv !]|T>v=[zPN/ %QqJO'P˓I<%B-`T20ȁr ն<2P928 aPqGQGר yp0^G r+ߣ}W'ʉ;INB'r2$ 9M~_ʯ.7HV~Kgḡ{ r6$9h̕s_hO?B^(EA1+x70* Q6x` u`oor˴EQ˴i!Bp}v;P`'u!ncV0ʰ )A$#بF$"#"#ɑd)IAJj$F"iT;R8RED"=#Au"L))xHqR"RWKFJ"qp;!Bp;v!Cn!Bp;ZnG]Ckג^#~Co4tt,wC2ٟ'Lв@:'@" DRf}3֭t+*oѷP)ZrnCeV6}t;ȷ!s2{Ww>}d@NTaw]~AuOѽtoH>IG? Z!3XA(e 0U2G:RJzEU,s`c~]N7ۈ 3^wS5W?$ ?Փ2EOA .B]_ꯨZO Uo!g#ee z>z!dqu^r襈/˨X RJ+SIpT<|<|ʆOK}ZL{ Ry RpP8.|)TiJ|OST ̮ӗ8>,lqljtDnj/s njS31"u81{|'p{|w{OO;=I\4u{RfϿUO&zxsB3l2-S?L9w\v 開7`X@qIˀ1!B!PJ!bB!B !^JBHH?!FPx]yzs]u^rG\J]Q֥%wRysrfFW~(l'v1^Pσ"F6fކ""gO*̏`)Uo  UxAp}[%_*p0Ą 0Ą ѿ &Ri{SI口"OٟZ1v~ Sa_èګQǠROD0j1SPW"P'"/a}ūQG4w 5kQ['Cm!)F07 :uPT=b.vq*P1ZZ &ʛ8Jބ* Ǜq؊bToJ> &%7s= Or1MKP%oF\̀J.C"bTɛQ%WJ~Us/_R#9-T>.E}ʭBʸ fPAj /<De\-T/~u[Poy>y`_F\B O(Yb*xLSaX,c ST114KLYb"*mLKTLSa ST")bKXLTLSaXe9e7x%6ǿNNa+y6:=8uϳ=+y*e~L=O)!!<󼁞E 6_^i]&ºu_&< vpA=aRwyLݭ6R1t,Oc遺UmRz~hPPџ<d; .)t)OZװ>'OK$oި?yIę<$_wSLI:F߂3yah_}3yɳL=W|N}B}NէOOҳL Г'iT_PN/B;u&Ϫ?PkROR /$ς'%mI::zޗB'WF 04W}S} ZhR`zQuyy(摦]4;0O &f09b6i: >٤)yM>n}<|o2)OY Ki`f fc`f f\ Ki`6&fb`zzy Ġ?ߺ~+8mྞ@,F]߀c׳w u\Ʌ`ra&`ra6&* vįZm @ 0Dp2qx!v(```?8`0 8fs_@O.C&` GH; q$@* #r k^d_QmJ希Wj#Nj쏜c{izp"X/H@ H#p}Ү#שݲv#zp#(`ot(ʠ >vz>g%r'gW[~mvw[JN $iO ̯lϊ.?Y"=>دR#ޏ"@'k @{:`W]#`rCۼv`Z!x{O"hO t==Y{rVVar-sU푞b䲵ʁtv:pM;S3p-Rnv a}xG jmz\FԙOɕFUƧ:ߩ3V\b>/k,ȎyDo$7_5,7iL+rKd9< |oTL^پs}r jӽwtȯee.o^;L+}gd]:xͷd^y3[Cͷe]D8']NwKVC;@}yULy} A mӌXT\ګieS')dOp'Փ=EL:`xJ55ᩐC}y;@%Y5y<~O l:e:4-!Ρ3#і)Ӗ󚳖"g}悥T0]'h}islfR!OÕ\9 |sx3-O JeXUyn;4liZ)!s8sC\43-YD^^gzʳEK<'59ͲE//_#u-^w֣wFܵZbKX)d4y.]r)Ӻ.zU[=]?[灋ׁK+{t+%m%c)m>^Wm\g]n)b}62ӵ!m +,N_dKFNC%il9P]"`󺠭Z٪}׵ݾT݈xї-g(nv۶nk-a}6CMOZ#Q.eh+-L٬pehI fOkk,'}ٺ6/rpڶ_Ov_j|vзa;W~Nc p˔e^dNil/]'h[,}%j۴hx^q#v8Ŷn[βΕpmh krh(eRJ+Y}ZeQiAYJY)נ-w}Rpr iT3; R1Q*!In&2iz}=PcO3t}=w^g '#zC_b/֗W٫Z)> fVf8i}]翬ٍz⿦z_{~rDӶ0BۇAnԇ;ch߸ۮw~>{GjFi?1 $Fv<|QO/hO_?enu8c|~K_ 6nsɾ |šhWyGB Eݑ쟦W H@#sǑ#WN(PQ@qg"PFdG5tꁚw9" &EZi`8ti`38,wns:N8 ڒ~.q 2MGΝi=3q5Mw\3Ff>ǢvAr`n`utrA6:mq|ig"ngJ0.2vu:/8Ӷ`Fegn0;t&g8t^vd,up ;l۹쬄YF`nY,k,tR L-8R-4 SsSn_!)^u1А,._RGs3!׹?Xe(pc-H4;k e㑑wP需8'a97` 6y*jhr -ΩѠu- s<pDPEcUcq)GZ;1"0Hkp;oxLU&6Cȹ| [\npܰݹQ7F`:׸aexP+' ]qG1AW/pȕ |ĕa?S,,V!ay(ywȳ;>&޽?(§YsQQȗ]0k8|=u}{C3x{>Z_FKV^rQڪ{/nUGȉK^ vkx;q[,yubS[3o8[s9]vh9x̭q1Uq[ː+#,. ĂsF\H.rkxo Y1i@(^0Bw$(΄ޝ7n\Ԓ}]wzZ=\=6iT7cBgLRzQck,xތ9C)ޫtcQPF(Xѻ*0V.uwCeF7 UPͭD`;%e;]^0Y&ם;46wqHkq Ɲʐh I}~!xPM47cnmh4O ]n?b69JwKZі2}I{݆![%w6-WkJC}C2Gj K"{W_Pa֡^ʩJ Fq pO;NG+_s>L=P+CȯC8>>>g].EU[CƮ}!KwOy7<,1Jf]Cd>b±*#X5Y&zA6ij&d') -[!EK$EUz$~1IBˈ{d5ĵ8MJ;q?"q-ƭp4_&Jq$<@6&4yۤ|%095@~Ēɨ#&yaOdbZ.&fL.0c̷73?cx_>R:NWW>6یWƯ|WM&=&<<|MyBfX#变QOȼcT(?`U)o*+٣w>|EPmTmd*sSqY%IIf{g=ϕ2'<*VUs:q휞M fpNNf?}aF=fA>96rGopfY]eynrn~,6[f n!1wbcdP{11ϱGc^{V7bPǼG>1GUU<cN*b&b~H)c~3(s]Q/1x)?q}ˉdӧ+FH#jt@S3/p0*Og&ExEeu.q˵/1qx@e\J }| ||DX D;Q ]ag߇eGٿ#  D؟?#<> {=jt=k$;gD`kJd|r,EH&+R)$ݤQGtEd3`)*/L|*& x_$╣L+.epM!, ]"'D1.f¢X ebX#֋Mb (J[Ő]w{C8!N)qF9qA).58s9՜ٟ*lX7\h.}\*s-0- fd6º0{~s< 603Q>I I$I"yPb J,)TWaԡ]Ɠ"-$AIqGO6#$b'|҃ZA ;dy#@I'$ByI~q?dBy9 wJ7,%G~sPm{8;g*g!EL,}xaK exx9؛_\%1>Ч$^\o@t>z F"sɿIwyvpP(TEj f@+mSn0ي?\gVd**lܧALնapSBa KtSɴ"|ͦٴ"+͛6y:qu&I6dI-2$ ֳ[btɦ-$~Dcf.TIb]i"vvv :=7[m+퐨ˠێَOt6~mR|Y۹kkm4mq6KaջQ>L7l7% >bZ|X{X'V0}8R(%1^1!EJK]'qR"KrO@*K%BTQ)U 5Rퟠ^j?A) X QeǞ ɸ$9>ܒG%/  !)Y g ۥ5J;@s~/ۋ]AŘ"E)Ā4hˇSH#xa;aqiu;{>{s΍k\,ٺbۋv.kc󅴫ڻhQE ETT<7VkqVvָSJg j.ב8ؼ|t8h|PKʨPVZ+y( {hX<ѕ ./.^, %гx-yl>7q} $o:H-H+k@`Dn3{`LX}+>T\a_lǹvMӁYgs[Jq[_|5*%/ %0Im= ,Gs  lusNLښ[ O66o[Ãc }4Xiض,qxfA6.z[ غxQ`&^ccj3ufjkcZy1 uk5L[^ YD#t\GNBN#p6<>h sZyKy³Ma'"Z]Dls^T|Qc5W%u379t>oBw0=\.E c+x֯dr|ygK=}ѻshZ1V#k"=ApF-3z ;Z{okE@F5+x,b_B~1wDbOA5-=|!X Bǣ-ikhѡѫP)tu)tcA҂M `0dZij7M(lK]0%soۇ]]A=`[?`A:w^02߂gF+—k G&!׭= XrNOFg"I5\$BdhR$#'F<^>c!hB}dlS(Ldc~9b)LL+L,LZT84_fFY0X>ўpBdQavd BKd9,N,YS8'U(F90~*\f%呺•üͅk"#M vaEpK*rpG5汰:rj#a.pT.l,l)<WM.<M-l^`^AwD5$G'qN=6f5D5Vz]p>~dw;====ɝc4lYjhnwH/rX wvvʍwо~ AI^/ %k:_C)~_Ckk54rA!5R:_Cбҧ_oJ7'M[&:D'M;R6>o9&:DsM4D-&j7Q%nn4N73:2ҳ==l|~D+JN`[#)%"ER/uBvhĮӮWxK PHYP+UV(:eYT QҕXe4avS191Ќ4]f4_V,f`cGcvK#%]؄q.JڔEHXSkmrצ,w)+]3\35$ҔJk65'577e XS\ nXX*ZhJkkRKX~wS\\;fZֶwm]]Xs_rWj˷uftiW$5~n4LsxMmۺ7< 뒯klEDSFŬ$v&% mOĚҬ(Cc 3~^Z.+hYԮkU&9"Dd>ELSfrS9J$JlقJ8ք]ghF(q\u1tuqs1 UQc8Ra|'}g tIF]bY]F+SWQ,;յ ^D\_nU轫(NJIwSScrF;*UC=%[4E얺f-6U u+čT%x===S c}%]QbXE {}肒M9\n'y}ӣw$xݞDO'3ԓA{29=Y l3c<9T(ڲN 6Sʧ;!oԻXI.yWy׺J&V16NnGVzI|{dxۼW d;u4o$ɵ׋M_%z&b%77ĵݛi<ͮ3ctH7779|3|}NۗXZnvwW[}uUJUnj?O@'LЏo2JI^JtnVEmjjԜuκy'tl)j,kv=7mVe'afy*N4N4ze 8q1ab^\zakƞ>yr?N+H>J Ƅ9F9mtG[9_,n#[e}_wCGYt=Ȳ5:Q3jYOTA|ջRE_NjZ+id"u'al](ow`!Pz7vFv_Dr9 s|EA4r rм广9hn 4*h GڛznrP rr\lkhc Uv"бFt=D~tKtJtY;ѥnf_2]o&6uѮ^wœ5U{ɚF4-](g5EdJ eeuC$kN\z1Y_ӝw֏XϫN͊;YSk@,5#StvqߪBFb],<&22Q_<_T'k65I7D['l5ͺS׺[z6AlJuJRlEO~dl ;gc gKWy2GkJlh+f 1{ѿm5ٶ8 u]tC׸5ڹ^w;t50nYDڕ-C16Zlh590O6ZglEjyA.rlsO)ufi]sK^Kgni/|OfɶNFkנ3ZM1dۮ=e5kN'nq罄iʝtWq52B7E>=gj |fHMFb&똶J{#[VhNrlzfg߳=\NsFO%{Sɞ;f*ٛJq6mRM-g^nf}S: [ TKkR;0:d[|bjjy+ž6u&GP׽u_I%qu_ۣwfw;oXNٚ8t-?[󮼲svlgD-WD\.hN|bN9f7 7{$ce BdYu䜰Zgg)Nk=+֞U ?Afa_Sӷәξh%'j}=[DŽ:I{jQ"Ny-&jDtJ煟BNk:QrfmGwA"<4QGtcڇ9h_Cu:FwkTăB9hp?\y?࠽BM\8 '}q;(^]HtEU_/Zz % $"w&M#I4(K$ -"ZBh%DD[4ATMTKTGtQ3y흭_pLt]#Yz֪]i RF4B5a1'#DCdv%"Khr?Q(*&,&ZFTFh-MD[iםqטn}uܾꉎ':MtBw\c* bfM 5|=&^| ,ښkuXgXg[V7Zd]h-ZWX˭]~Ak3s KvMޖ`3mIP;Z-h-fMʹX+m6- ٖؖV*l[lUj[vhk5ZmmmvϞlOG's6OYvQb2P}}mɾZ`ߦԺwSg?`'֎ORkfj&P/G_Zv ŅŅ^3~q~q/~q!0Мb%=hmΖ]f4\`/=e_RKwͫJϘIK̇eL W|jFTYR'h%gI7G5jDU7n*UT5ݕ>{vhK;YQh}XG ~譆C6?_0fmDp{F*?qs/pWSoBVH?.Г@#tBM8H8Ѹߔd4>& #ja1rYQ`6F'KFn}DIca ~%F/][a~N0>֮Cw MuAOgQg `f݃(" Vw1!#߽[a+ :2&A~3{ȑTQo/_SԢ 3jZoQYS!|լ ‡Vj5{0~0Ni7 -JI&O6gzn9r 9Մ KQ:Pƫr -'zl؆ݧx)sOԐm>  &B>VI,=<qop y|א'L{ dk)?JF> ϡq(8޾x^XKdo7뻡[3|ȼ$ Zq ~k1=Zo'3dڻaԿi7Ƴv8sO=~ᯄk.YԿJ|}![{vLY&nĻ2*#ZdvXHv#kdя>cQ,]+pT` Z>9vLu\hѽ0 a4^~ y*5A9YS?8x9b ;G`?A }7K!HCVv gbg}Tg?#xCT H?o'vX | Mp lN)96xi [6!:GA^@#<v*X`IyMzda1d+Rw}8r֔Nq ~;8p! SRy\*F:rqe:e*2:5 jB^Bo"N>k ⓳<0g؟p#DzhQxxo7Yb0` A5`% vx Kn2^C5"rXB` Z0tJ sx/έFeë)ճO'xݑU o䕼_GU>y_u RxAޟ6aG kfCv5m6`mnFc 1a}*`xσf/!'2 {4\a !K8Q1{@+0a98b+EwAPƵTGkX ɚQ>C2M@S9c|*`^`_{1 pS -5`8X❛'h|xό#|x݃'53TC\e AO`]*DD*s`7_u1يaCy@ίGW kzC~WGE}㈕Aந %/@of!DZʕt5tV@Md_Gfo.W`+zʸr6qz5 __:4kr'H8mͤM22d@ o&/S[T2N48 3OڀM6` ؄፻ᥛ0t(oYW`р/'zr^ūϐe,1ywo>djg1W:#ǃGME{ Tc$zg_Y,Λm',?Ų g'Sx葋3$t:֬=|"嚐w{beD>R P # g sXo'X{f c ;qތ5n=TgKOYY߆Hl@y =al{/w>T?G.wKeZNnn"SQNw`Dɒ8(gd*ĩ$NmQ?$cއ\ ej)O]|7e:YȫPcx6gWw鿉7c^^ǩ_~n2Bg|*߃%2_gsC!x~{."iۈ)cZlc 1ʛP99#üqq!zfFk(Ų>|6 OӺW}#2H~VH 3  +_'|O4:σ|f7b ه9ݸ/|0o<`,r95p*p'egLix<8V[:O5]G>~ f9̣gP$bV' 'ȵ8SݥCGw/2oZ‚0m8 c< liuxV?]ž>+Q$ ͏~ ~@H5½ae'bt~NMϞ60 #mc_ϲeSGEC >~hWSq~?w}G^2OplZq0*?L8W^F򅨨8/ } <sW2pR~8olZ,|L_8Hpq{_0a{롙 ^e!'0.YlF0:'_N,@l<ī<>Ks8O1YfqGC O'Lck9ޠ9g%@# s"|u:2 ~-[60_ɵo7Cx!nֶ?c'CrӷpK(p"$QgB  n/x <{'n3$x~:$pofN?xC%$oA2-<<"4m௃7H!}XbI&DQ~i#{da Mbg%;/ݯWp^|yt@!1Hѫjc6ƕ@.³Y"?(6 jH/B$d`8I g3[*b3:!q#*=M4Fy,|07c z؀55 zrj⟱\90Ҩz` aD` Z Kȟ,ρ<(i5dM}B| fS,7wCW1"_wJFg tvKD`_MDL:&W)Q؉р,6!oqE&l0xJm<- "xk F3n"[K0^٠W3Pw7^I zMa]$rX \\_-71#JڰXzB&\hmD6z!MA{y @ah2RXUd #T`p"2"`+Hf ojbd*T ? ?^dmy(]c֝$0v-Pӱ_;_jɐvy;ri󖣵ݠp*mY;2ܫ♗>f#eNuSsahqپf s/iI:dZ : l}-!ӔV"0'F͈cZ 2pI;6-I ZEZ4h_4{ap&oz=5̮HAg04)cPbswg-pr;`y,d8tȠ7&#T8Ԋg^ `Fg¶fO+S;kPo)m Tg U}4پKkC[Ga ˠnzZa87+XƬyHuhu0cm浡P1Tan #o& bƇy%Уi:$QWd3 tnfio4둱@ c$2oW bA.GǞ:f,pA'~AadZ d`]tSH|;Š, $JV'A6g0A ֊(QX|n%`}KG-w!huayp>vU bSo@NFR>{1}퍑824vVxF 4|OAY`Ð ? z>1&lVAu X :g<0Ӂ;kۋ)sC|(؀%{ѐ? cՁ`S7*/d< ˁ߃^g6CCbػPڂoy7ý )%dPweі7 {=[ACR@ "^$kLB[^>|uw g?mz/;!9 z&= 2^Y׀.y }-i71s\"30Mx YE\<πr#hFЇ:1wDj!o6y=Z '3áӳ QabNو ֛hc|(YF<dup3?^D.r0pyu1Ÿ3F*X@5Dm/%@ yFǀMDĞ1Ok/E |Rii0euQZtM!y0(Z@=-X+GGaO2cQЗ/qzڶvdhoA={ڡV%Hn~ЋAOO8 XuAl<v | D_Wt$3iZv Brמ u X}g<0Ӂ;= 5XwGA'Q@ DC$d~XWVJN̳аA#2]) ~ψj/x1ڼbu+#q@pyq`C](tz`V=@W3˞ l_ޘDk@x n@xOc_GbNn cڄ71Uȣ 8|/l}#.P qx1h5d 7kOfF N*}Y`c-XZoB>4|)N 1mD@&;W@Qm{2ho0 !1@Ğ܆X;b5J(Rb?]m4;(j~q4a8 ߼`A Ӡ]tҳ=@wւ˞$mf#Ga Q3(uX,+vp8}fDb"t/7u ec"<$V T6+=Y{# !#d}Lۊ 5@AGP<8=m;!mPCO J_=̳~5t$1,jh΅{l\N  eVe#~_ɠf\j2O"vB75ЗU>LļD!}db<[ kt"y#Ni4HAOd8-H3&|A]tv$Key3_@_}W< ۀZ|oʠ{$#k~YH2_o:k#WnU?pҠ/ς ړiv7ƶ́!?W`^z6m0S(m9 LG:׀ /_z'Bm x.Y٠7$=R.뜱' cakN)Zm4N|.&@f}:7QzBLe1 !ԁԉ8*If{jP=z??h?O[*QUzjQ}jNRHҫԅz4ҷ.rCzjRmj@- 9@h(uL̷Lٖۖ_vvh:)'giۺg{^<<ڶm|n`a:j&ڭ ؿCmӁˀk&6.Gi[AN6 cua 0XXXXS 0 أ[v]! ?8p2p&ppqO=F2 :&6vp/Ӂ= ` , ,,߳g|@` `]`c` `;Id`Hx ˀ5&wOզg*&0Ӡ(٫{O ,>,=)+k_qsO?qd=BGYTRԿƙG[:_Dy71_FZ9nYU_ƻ20/c,e?y"*'A >E?u,N%W'^1KXN_m$U<͢evIJl+*f%X5V;+bfYˬ.뤕.lQXD(b8 ΋ rA.Õ7܏Sx"sд,q&pn(i`硙wW7t9K䐯E{|r7qN MUw0y?W<>G` r{=,;zn˧sU ?'?.ZVITlNy^.(/wh''qMEEQ$J4Yċ4E$^F}h{@1֋abmxJi%&NW͵%x ONgXikw; ΫΫVd=tzZ^N/QǪn=llm] s-+ =#5Mۅ;"C Q~u?REUQQUqKT%9*JszcC!ΫVs>UNUJT%U ʪ2ߣ*\HUUU^z :ߧjjZ|jZq':p1Qu⪋%T7ՍK\JRpzP@~PԻ].JQ)Ws95ZWPxNP5AMjȏj2WRST~LMWӹfjU5PUJUUՃT@UeWN}*QнQ(V>z _=ߢȿԳY*ZTBUmjS)zJ$DeTWՕPUwzP%dzHVj@jD5ʫajUP#JP#HzDRңjGԇCzL}> =&I:_OQS 5MMjAOOէfS55Wͥ3=TC-Rjj)=eTK} Q+ zNV.t\OuLjΞ fmmm:6V;tmv,ڥj^3}zxIkF3uXF| uE]ꚺFuu^V7 {yW% זֱX-jO^N""UUOOWW\mYcSYNg}=c \nJ2U:HBg}O_Y4f|ZJ+hmtyJWdPt_o+ıO[8&GıW {Gcwcr8ca8\ +z$DZOh}=^;z}Х5w(}|Ǿg&D3|L=24#}=2ȧGf{dyG>=B#|,==#GY{K#||{doX 3+}Ϭ=#:#?Y{dG6f#?I=6#}=_|=#{}=rA?Va3G|=s #'}=r#[>D#|=rE#|\=r5#iG{|=۾G2}dy&Hg癠<d3gH:wW3=7-#8 >'$|9>"_|5N7QvX;tSͯs9~z܎ۓ(Nd[_ rO!P'$+x+ņ ?] qv].nKin`wݻ^)M<`to⤿K%4{SKȎJ٥C=X;Ͼo oijWP1e؎eGA۵CvVv.;6]@m#'H鲊<^ȟz7񏼙-X@ i- Z×i9}C\VjZCZ^gh=mTHGG~-vA? ݴ>گsA:Da:BG8'$t9.ED ]k:]tA77ESݦLʢe0DC(ƢxA(D3\-E+xEmD[Nī$:D"nx]L~q@į8"c8!NS8#Ίs⼸ .rP\WUqM"]7o]d"Sd)ȼmlܐ7ܒ_܅_!.a*ڻ{oڇ_}>nOڧ}>o_/ڗ}N }ΰoۙv[VӲ|F֔Z#u󲞬/Ȇ2Q6e|Q6/fl![Vel-ȶ_{U,_I*uCɲ-Ⱦ O/ߒ@9H-w*rLɑ}9JcX'Gc9A~"'Ir"ir!gO,@.bB.KrJ~mV+*Zɵ{N 2UnrIn[6]?˝K{^OAyH*#<&<%O3<' $/+&-̐e̒EQ-ȹrLΗe!o߂}o |;88NpHPM;rvCܡ0w;MqsGﻣw;ɝNq w;˝qw].ut_߹kuzwnvrgwq){ν^qt{ͽfL7f(dDCv B'B'CBCgBgCBCBCBCWBWCBiЍo[CۡPV(S 0e8*p(ppLpppl8o8_ppp=B{ÅK''gg?  gc}&t ^r3nNLݹ;+t?O t+)[nu9ya^8A'h;1NU{2^&X~=8,8Iw[9qq..' ghs{}š5kfnNvz2+3zͬլ^FalH:zkc*_ ?\]_[ uq^*VWû0 um}☊ki#CG :R_6qSts ń  ņ *(:=0 MAr!`$(* b "áU1 "`v1b9sO w{}:=CO:󞪚iLPaP4RX* Nah;W9^nٟ.kZh >(|%yx4&?˨\ x+:59Tl.@k$AqH!RP !A'=a LIF0Y2 hfR"Hcfk:~&7`Xq]3g9{OC'H. $c%2~37VۨlzNٍكx.%Ǒk,52.9yBo"!fH3HZe }[$T>LOߘ\Q"$@.Eo!as iIWu![wJ./yw"|t?AVK=CPPR8RRR8$8Fq8$88SҠ8IqH!]Cz (+ރ(l.=BSh A.@:d!wɅ 3O-%P`30ľpk/e6cȘ1V='أNTFaehBeOhJe/hFeo2|TA *q2ZQ~T@02 :QYRe#kH&(j\L!J":;d<;eT4iQY'%*[h>`Hq#G0ڋDDXWc X@y`X'։Zm XCVmNvX 3BzKWM8Q-Càը ;d7PGIuLuL0Y b*m?2$d)#vcGYr38?'[/ >Mm!2 ND-V`o`Je('72PkuTC9 D(QG3Q !3r̂Y#*keTɬD7Q-+++[Hml1jr˨喋ף=O{܀!Ǎh7=DE]t!o0SoK\1}kG  EOdZ+dE@sHP|c!]!"C2 Oԧyaf3ɗHKC|q b+rkws{>n?w;ȿ^«,/UyW}હ\ Wȧggss[[;;W7 ULrB IpQ UpWx(<^ oEESE3W\BRJZF:ڼ˿1o‹k4#4c9ǘևQ;3:33:u4ܫdd-і!:MMDONy*@U\;1cA63cwS76m_"0 i!4vw ݡ4vݕp#h&ŨHK#GzG[I߱gXIho~ԦhLъjD5wQ)cDyĬы?^Az "R{ԞԞԞZԞԞ:ԞԞzԞԞԞԞ =nY7?XqS?%O)CToF5DVttPOf'RO}bl@gKNҎc$6b%ߘxމwᕼ;{My9ߒom|<'|?|?Ot~&?|_̗%2~_Ư~w{}?ƟOgs__k*=\2D9"WcoH>+vĽ2w=2_5_לә@_r^^w=o|G<׉̄3L4X7B\QױE\_56( wӟV.Q0|WPK Ə '-ߎP"`4Ci}ߧW߹r Ȳ|P&idf?dYVُirOkjo՝fG(fyi%i qa`,9 >3/63`+/30[l*3j]LjO a9b[5U`ͨyh2c3ڌ.}ljmۍ+cmcہq#H'8aۙ3B._qmG$ VG8eX @"a۲1t)#>c`l1ˎ87">x7e fZ/~jR՗P_Y껱G}#S yd5 OqaHo~ @9PA @9P{@9P @9P|C2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L(D2L|(uYbK5&Uv;uPes2@)Ԥ/aX"H9)@*šBgRQ&t9LJt"d ICM _\i.XԻWZҜ~}GUU)ْT+r%K`7%;]9׻k0MIW5T#h2."f`rJ̴JMOvIOM4L3^ǔim22b2S/,o&8fƤi%+ݔU(<\ 9;SrB(mƟIION0 7 nFpwr=OPЄ!aSRxcrڋݞcݡK?fj̠u K:5ͯ?މó+/̚3ݰ3}7zXn/n?޾Ώ+vXq<ɺmPnM a=K.Jt鮩fmqKI]^ ʙxUDI0UR+V#gPt`eE/rZG6hNPaͥ]s=LY-S6d2m$<#gm߀o- 4Lty]nx۲;oKK}3nE.=l<敂 熼}סɶ7{2ހ.K.?}N)gȖ<s:OK˥]L;Ƙ=VX/Nj8A[ }2%cݰjI tN9f0al=[|قƲ#`a)X|F_O0MIWdͭdC!g}~/ORs÷F|(6Eӊ#vbqg='O^bM':ɚydG7/ m{vC3'ߌ y{V[C_3nIǫ҇˜v'v-gٛ74tYm9с}Aی96|®0``=*VDu^rvҡk(NB`1B8 їѓщ{ NnJ'WA)P`=l /#S^osnGUMu=yOM'YEJ {GNyqk~j7aa7AV^PzvbaMk~0YSJߢVc.?U|}g}ȶ:z3#KNVbf?ӒlMrKN l~UpM]ɍmN׺XjZK ۞*RrGcϭ͠wz=W0f|8ӵ67]}tْ Hw>fmDٚ0׋6z⌗@_l |wR]N'\ ]P))q1 e&edfS0o75qsE0s|*7q!غB.ӂfkn|>׼qihM.Ůily.TxDp2oyrYywd0/PrMM8b 9v\t(ꕾ7lg-]10533g2?zɁYtR\.7Nϴr +D?[sPe-vxN;V-kkϺnjSܽN/}ۀSݧX"e /њL=%hȠ#>Ζ$(D+S qTsj*,0߯*5g'ߜӻ2e_ߤ˨(8Ja:ӆ-mfi&y{ qVZ},rAX[Ay+DN0m>]l|uGi-׺nw鿬ݻG=B# -3ʢGK ooۼ}v?l5MAʑŅN!stz{eꥒ76Oj2uWϞgsxP˱rMfTT5}Y~J: >h|zjFyFMO:ڨ.X6J;z[yKחWuqQG):<'2`j-״~<+"箖j2JٰzN9u!wC+[٤15Pyԣ #oBL>u)fUj.\";Wȕ"~?M-x " QW%=t^{AI+N׹lU`+2S0zz.,_LW͉/xde'N\}rMkҪ%f$]f;6e:u-q3mHa.o1u^6vY?mA[ecl3ҜҪ1KuryuH-M!ɦk~w [lH+7=$`yxauU=/+?LCo->Zș |s 9y?ߒE1q^_Txe^8'+uǾ֜=io+W:g螪aS7;.99l2ЖVw+0i ʶ y9frT=׶yNN}/ϹQ|)u+yUoN2}arK&9?n?gyJU#תʠ,Ctߺ=\/l6x w=>Bz mC˟;ϖnN.Ǝ;9ʚt86{ ávJٹK5Km\~qۉ6wpkѲLXj[g}LFw{yIm1HOHZF'rXw9zn볜3:ָw?rONj-n9 Sz`ްUc\U7py-5 {IrF\@;6lP?3)fkkgx>R?1>!lWw) I_[J{SkK}&uu}:6}۪,k~N{ҹI~n /9lOnȚhhI(el\ꛍ\FOiQ~"Q'{]Rmeÿ*5>Ͳ)^nQȃק41jwq)ׄD?+9J-`}y4ܲuʜZnEͻ3s5aqkBQgi)iqKΨUllI/l1tWvho5)X6rw6Z2P-NmK 0r{~|[uߒy#_mYwɇczorVIa&v:㘀S$b.pgAi9hĽWjIe}ҺNi22?޼3?} endstream endobj 786 0 obj <> stream True endstream endobj 787 0 obj [ 0[ 507] 891[ 498] ] endobj 788 0 obj <> stream xc`+@ endstream endobj 789 0 obj [ 278] endobj 790 0 obj <> stream x `E_Uw=ǐdH !!&0"G&ʑC@QQ*u]qWRɣJRR@b{KJOܐbye@Z+pE-e-OԅhJ>{u嫁,LHY_}ݕ_x E讜1m/|; QU9@5{1; N3cy={Ϙ=E6^9S+ Z?ٕMfTή?p&-sjIen'`}%}y䠬t1:`<$ݹul݉VЙ j[/|+[wz+b5+ (`-yt)4<@+ :52e-nE<tdE*0n:tS[Azj# Lf0Z A6ԟ l! !a!BQ# 5DAv DڹX?zƁ5.ԣP 5\Bo> C_5k?HBM7jHFB?4HAM0 :P3 ]5P/ِCo05PQQ G=:rQG@\!(@ Ea(:W0k \Z !#Qs .E-Q?F^z1hOԉP:d~ 0.CLrip9j\z%LP?\gDԙ0I fAWq*QgZ Oa.T΃5\ \D]PE=*`6p \&%\ku)G,PͰZu Pu PQNԏ. nXރ_ 7nQ}\ PWrmغ u/:#x@=܉ݨk`Cpè#kG^?oPqwxVߡ>)X4܏ <,^x}h5zxD}Gwa>x Gm֢OKꟸnQ73gQ_P:u^Կ@6Ѐ4uXGP ;4 Q/ /o[on۰ ulVp}^F}Uԏ.˵^WwǰulClG=;P?7P?]o_BC+أn_û{~;@Ç?GGQQzC+@U /|NO1/sg?9Ә:O1s9}_9}9}_9[_^Ŝ._ܜKNzNs;_0θ`0@|뼺Ϻp<;={QwcxO @"w^YT(]X_g5Et@ ݁9,)j"NU{PstO @q}뫎Ϣ]8@Нta}e8{QwР؞A ;:Ml}Յ7;Jp"W=:{:@ oE 8G?]=ŏjgt@ AHW.)-Ϣb}%8Gt8!=@ Awd++[Wւs.NZ %t@ Ad`juxzgt^mPo^tWOZ E@ AWw|zM NOWOZ @ ^Ḿ+kx SVpȽ2{:@ ؅7t^ś(]гyt@ A\^[_uMiX_w( 뫰y!@ t `0vMiΫ;>7[ QȳypqO @$:dtMiΫ;Zs'«WNZ$t@ A .0-#%fk9J^Eqޡ7C@ R%b 'yCIZp҅qI!@ tAA.:. ^?{Qwh]!@ t҅7t^Ps ^9?=@ Awk*wMi;,$EًCkO @̀.)Ϋ:]C+{:@ l› ;סdI iꕁg/C=@ Aw0WqGqiJO 8Eqa@ in}{t^ѡԅ@НtU.yk=@ A7!/OZd0 t@A0C{c`? DmR +sΫu(;u v'\i''C2LOK?_r_wR /HL튏s:b{c"#BCm d4uZ"K@BWQӛX]Ç'+*UTxXUnΎ<=~OO': +(p9}1ehU*wzq{$8Y9%Bouxz!ߕ_eH #FzMA# 3)7UPrRBa41e1qq}$k\y 7w|~&߫qdWw8ng)n4״ e^x#?s_}kTW9Ɋuu˝އƔocZ^}iBQE]N'.+/exJ'vUrYNޕQ7?:/.!:Ӥ@t͉qWCnuQgTǖVc-AdnoTq3xl[ks#)s5e0ʀ膔; ?^}~E5ճJpcMeF`IP&%!c}UmuFcVg`ű`[;_v”˽l>6Ԟli۽…#y=üĶ?A^4WۋK\c./sUCߞ!eR X4F8('9B+' |ZJ^CE^kpNs'z7?ӛXڡ!us1^vY>s ;8rE8Euu>viu5їuՅ'Om#[tg9 7zmLVryYgJ(yɉ;UE6PiVWT^;YG`'(:c9&dy2@J6&F:v(Th.z5 ux|18,5(7Yr9S:Q`^yf&KXoE]:̛0ŒՉy5[XK78 (7 !HØU8PS0< k0ky Mpop4κ:+ yrv`-6 _/ϿZ˶sp)/2F%"^TjXyf19`ބy'Ø5^Lя ~)s0OƼ&̇1k釨V2;3ZDG}>V!Mp GB >fÏ}pD%'#jِ&7$ pȆt;Ow3{܍g Ṇ1W`ƬAkZ{=Ō ՊIbގy<jΆ /p uqk^{Z,2큆$w$Gm3}Ԏ%*R{]JjH$R&vRKj=v#%Czz7]']c/jH #XG$Pctӧq`5$u4 kGvE3F;NLoc;^ODM63nKau&>q7T&`xc8>cnp'9^>1L`I] O_Jmvv6UWuh{ic`UgљtN:]Om 4TceT涕2eU6"N>5>['!V5xݎ.vB]$%%r{L11tsIآUX{)Ngj,bl[Y-wUx C't<5uÄҲ ʂaw8mJFs I`6RkEL\y^:ޡq74Z0DŽg3f֔˚bM4E44. 4Y5 pfO UT`[!. j{J94[bm$o:2UJR#buz}_?m> jF%\R JKf|b_5x5MjN# 2k>/X]jNvIm=6J3DaV(9"O1ƶ3X;/p2Zx̄gaL^p!#P}.ǚa,&#QzHa؁M $R2-k!ra4́%{a0\@5UԻ{?c$#DTL;ԯw -{ɽgE?Qի^v3`54dS&#XG`&rDz/YoR뉥9c R-sOWE\tbRRrBah=?!?Л0-^<`6>&$"i:>(qi0{#FkzDJ!i>L'7xՓ`6O$d1 2,&ɯdE>^EK3KrFYUCYkY+kAMUo18bʚ`'i/# 1 &'# n"wGZ$YgE+;r7-|a@.:0;1?JRJYR4Z.݃yc9Z)ϩJeVyZyY91izD҉Z֕ Տ! ?CWF_i~+qĭ .$lr d2%'o!c<ȋKy@GGaD\|{1I+ )LJI*itRJۥ}OT ;x9QvASSeM91hfkn4_SMvvvvvvGx^hwĤEZ*J4M%8'4i$őJגd=, CɥpDNľ~ӡHRLJ`?&T~ 7Y8$yDn5&hg!xοHe ޗ0]6r>!Q𒜭A{xNKni!NǗp^(%䨤c8Kf > ~GnH#Sx>5$MyΔhYT~nM$%n!՚=X;e|$=I##X2V.2M2$2Krn2 xw7<+ĚH93jLpq{2ހR銅 ok tFq>X.#֒e7@5.%{TdZGߣ%te{;DBwr;շqt_30XU~g.mKiZ$U1`z51Z7~^&^ PEǪ֙+<[ phlq|r< NjѮopcESGy,A)gi2 I9p$'[`&3 9 2OʢIf0= |/~;1k+i= >6*`BY֬C$[M}:xo;Ւnv`N`Lׂ hP:1ǴHxb#F>3J>:R*VkmC#QxM#Ptm!2''ѓ)zr{,6ヲcA%0q ( .Ķ&0G-V qC,}㆘}hbI瓱6y͝s'i8G Ll.>VVEllLi>ͯ~@X@"3i/)6Eyh9n.0+C/%tRZaحa#:ثš:wtVxVtqtmIi(t2xtAͧȷ+ ,Fk؍Z12@-(je#VVaH9<쾲S gX,+F6xmUmcDƶ7iwjjUhGi%m,;6Xv -&6^QSgܑN8DN·lc~ j\ӃGKBR LOtkW`+V4p>`ckoXy5DK-NJh~mNůB2qr>>^)ϗ5zNӛClz3H:bkD.BBh-iҏq.h'vӟ<6  )>DZ)M:>S\Nͤ}t~hֵzXpտ#,µYHB^$DI.mg%Is0r&H"$H"$H"$H"$/=@&eY\% l N$v> D Z棃mgmO~x|K&MV1`K"v> 0G[J߀m&㔹7e eҼmmf5nky7f'mRn}}}}v>>>>>>>d]F[0M-sbӦr;`ۡvQ|߱܎W;G;7vv23[.~]s՛N^˓TV)̀*s:5X6J=aK.\ cn:?jx Uuz=e3O%xyjuΙs20'RJ)LcL4Ji!ňCJ8͜$d29dfE#bňȍs17bH)RiA,)R=3!|:^k>8C\ekɗJf}hNQ59y½kiaXIsR c~<ܝ9`!]O8,W c*#60h::H ߓhyg M'Y\A<,X:k@[|ff׌It*cץܒϾR:cZe܆b]lC^D5~8y+q9#7Ef#R+`uKTPV}e1?vXʽx.5q+~}vXJk|GZ7_yqJ?JX]Uw[35TQ;Ll̘9\`4/ioЛ78 R>X]9ڦ7+*ʊ5u&sYwVT./u,37T}xgVT3YWȲT:0l~8}sڒrGCSC>NfXR0d5َRwM}񪪚J s~CYM9PW4ݼTwԔה,uWys3 NfҬUCn5M: Wtclt, sY3*uvGC\7 YؙN45j+0:;`wT6Uߙ,_QZ f+t8j0kEA(.aƊ0ZnwJ 3dluG(ge߃GSYHD?O梻 i3s/]ҶaJ>mW~hY 3 _6|> R ߢwC)~z3?6y>XQ."_Y">,>jH%Z hq?\c?#ɞT+ XNZIFq#)v +o_ D"_ >W oZI5J] >~o CUtih5x a&e r& ,y6I#ʟ?O&Ay\e FqOU#Vgl5v2;p4ci)$S) T,M?S;Lσkh=L_4 Mf={oy?@$UP}oPGFnhJĉt?|4h5cEFXhĊ|mюelFE4XBh0zj*6 _3~*㿃_X(]DD4?֒a+KK|-/ݯT-V1X˄ a늭g$mH.uQG(VYR$ _6Xb` Sû w] xgH`) Lb"Fx ez񶞷:oDAޮ:nmo_˖/뼽ZAmov2G[1T`mU oi ݍ| +O&}O.z `T<<é6jI]h:Ag][APB0GrHpFa# !,IV`v1><5S&ۢt(}p>YѺx=JsNFFf2.D)ϧ='$_yCB QZ㸜&fa6vuR-Վ^X{{٘ղ˶.tymgs)c̆aU憝7iag?fHc5.mh4GuhqԚ*JD΋Q9wqVjkHee b.EQ-:DJ\l^x['I2%HGph(48 + [ Lyt@>ZŮt+'%a,4IXPPPГpƘefoȊq (vZQ.YON0)BN0zFݾAw)1p~aGs f>`2oLe_P h!" VcVaVl ʴ&SZhZhqhAZL84CE2NFc996Wvlz"}E>#ϺrIɻq_CV1'Y) 20*2:SԅCs$G! {)HFݡهj&(lB.6󌚛9rf:H4#H":c,Et֊A4 An*Ep{:q_ 98fWV~/,b/E_T/" ^DE7|pC8q Xp77,Ac_Q?TURGi)h)H)Hq YNAhAh\yyq =OԋF0A<(H~qSɵ3R[7v")[|,rAs"bK"bN'?>Ƌu!SM3(IB5/@ /C8ƞ5BX ZJ`9|4X- _V`eVܰ2~DrU@xK9rOnLn2YV_aYŐy(_ TՀ }A.4þ".A,Jw Ϸ ^Eh0!/A gPO6 dE!AD?iG;:.q4ys.,..XW|EATqxeDVG(BcU7+VW%s ڏgqhEnY|k5Xv #cYUuŲwoVWX(de. zJR^LS^?Qt=s;^~-3j42~6`̏Ah3AGGfo>=loȐiH!/xOةp>!1,Όm{Y4%>N0G!}&rltGG f֛0tǻs)wM {"@)ľDcYȐzď@Ro3JVW(9ޡF>| 3n!!Y4^x[xޣtM "ʢL HJU1RQ(JNjixxM'у~TnBbJ3ũTYbN"|1[\DsZ(.'q/^,ZB5bXEO6dEkE;=-6Mxt*W+J\)j]l' Jþ 4 l!qt+i>`'1!jNgs"p܂$`,00t\1q l`1Є7eDn`Kt7O(oqd9 MG~U~ap5ok,jR9-kR/9JVvϱ:ñXdX4$sQ[_Q(wAOޙ?/_E%A:p˱כ͎n0n\G9n9Np\t7:N4N:Nqi‘k*nmƱiи~n;qiE<4=c>q38\xܸWس G!~pzPGLJ13 bOq5źk׳|pyO1_?|5f"O,_\1hj0#KAߴIaɬzkmR@xsj&'oG}Q yJAdp#ݳи 5u'W+~)b9hZ8Xm>ľccpWo4yoh4!;2p=♃qNl'Y@NbĨ}OS?I5[Mf>FAg GjTl7 y61zi:޹և3cXk;6k؏_Mc94 Mvg:[s6>ufdb#Cv~w]LSߙ#wI{̱{wo-?Ϳ1LoķDO)IAzPz XHzFH34R%"4T)$%I_VKki tM[4Im"}GJߥIߧdgJ?4ҏA?O O- zH/(Cs)BeJ~I_Iү_ss4Gz^z^^AezT^ q8HNї77)[Zz\:'oY4y:=-ϓD^$/9G^LrK<9Rj|r5BP.&Y5"r\L.D.!\&G+Ymk:je;eWeWv9(iôFnhB^AJJ^ErNߔkhN^Gߒ; ӷ zVƇ#o7FSʛM)o7-$w]}[Vy+@{hMF!oSCA?{^>Sm-?GR|PB%,LA-*JH{y|D,ɧS&"~+|Jooы{zI~W~ 'Ge:"]Р"(Ud%^SF(&:$*ge2PRStZ)zS3=ʽ>%+)J ]VRTzKIS2MFo+ӕtUIW%CɠkJ2U*s馒|>P++EJ )J`PJAVʔ2ASc(5IY P$ag~.=A5UEU{Uj&#Ց}*&Ij0Eup:V+$q§ !EN>NR' d,<&)45UMfijNS B 3 uWSKj/<BjQ-“jZ( _Q"SjZ"ej`U+ ASTZ jZ'<֫B \1pϣe$T9ĕවưh* Y`<{W;8.Ag;UPۘFЏI@2QmP8H6"Z7#6fn:@G+tS0I!Y-,b'v> <}'J;ujg7,8vH ki/j2mf^Wk!py@ .[kx[Ѳ5"m= m6O.UۤM:MZJՁ3nVnBpV`iDmMzV[6zBwFn=eۋ$psؼd}ˉX_?l!.,H3+@h_{ǯw~"riݬ8ݖ Σu.=lu߅uCx5gw?[}1Cc2IV=[&VMq&y][bp}?ts$D{=3Y]3z [cy+:ֿ߹7ob3gF W5^C;|[#^;o9Ҽ;$|OcΝ!s;' {P|;_u1oqk?2u&$:_->Kp+곬bY|zhs,ox_ P<2LHd\hf5L_*wM= (xߦ^W+zC(5ȕ UC"N ,V)XxxW.]/ĊNa'U;vk޶'[½p?;cûfwkL*u_lYҲ!}>‡>U pf?  [P|keku1?9e%U}:0b@*?;0'F;\=lO.\'OrvNug#Y65mER?+&q@25BA*!)͇dEh~{ݭ]vRuC1~PuJn%=%-d/0d_zڝ߈;fU]`{.՝tZ(ݦ SJ''["&68ǽ)cȂʜVx-j8y S-cJo;…қ䧌-OD#uL+-)*wv ?,_ 띾p;uYfO`SMcwoiJtvZ6`vt -PͲ5dq.2/v&, t׸P{WK ިk-%M@E]k{_, 4"]H @,ȭ*8PUCۄB " ?b:!1v° mCA0!1<0{{oqNޛY뭳wv>s QȞ{ B=C{ļ{q5}]Mm'bu5 #/=xoF=]ٞ~:(Jd 7η3ANKx`.kU֛]\#OA Qސo"y%ȷUjyɊ mwY@!t߃=kۈfސ>оQ޾ 4ooim= #~xq`{GC!Dأh?]@87%"]W3 {jab=|a]17!Vj?>g= (ok٭k?~\yOw_omW׉|ڜ~4-1&+|]<Һ'+5nOhl fvw_ë`lȟs®c'̳v|À|(upIs#i {f!*+S w[$JrtRǹƨc[;.4Z[t\:N Ev\mLm mZ|Jw-hcNdDc~TdƖFg-;7z[B)X޲XWXzӰN|7ix-4QKҖZ%BxȝR,5%, ~>;Hw$tjUՙ![;Fܙض7Yz:!=1hܿ{sc] st"访{ssѽI^T{n쬖ZH$^z^75MmxroF9gwV_2կyաP`2-0~iO4L0󆽆l+B;8!i$n J||~#%1i*WXuRþ<$2vc[؏{ Klap<̾smܯ;쏚jٟ4'4g 7 ͨ-Ψ[y >MЮ.pt78Mݛݰܧtqox^qq50f(3j㏌#Ʒ'6>_0)8}!}~~~~> # B)!Gs v o$| g1so7 3 }Kǻx|)3~ 3//0 s/_d+].ob}U0 ,ZK/y?nRH{%Wګz{;~m?jﱟ#15 m4sy :!T0 B $ iM M 3 EBE&lv;D:f̾HN.y YaP+ i\.2X-xmk/ ?wc." bOױgϰRg[>yi4Vml>G>粭O7O?^ԗap$e+ | \}>coh_4B`Xj/$ B# 'f P.T B-zYh nBpdg@+  a^__"^6_V# HH6XeeӐb/՗}g\\=+ d{ wwtϖĸgQI'yP '9^GS,O6ʱ,Rxy"9֣\SHXRysDOuC6bho6ۦǕ $VO"K'w]㣌 U@jr a_Rچcf ԩRzц`O89^Wy|cƼInk'<~u(yc7C~?.KX8=)ͻL1?ō KV\]9H+pɄߘ|Iϫ>D sLs4s(> y36JIW}*0^%yMi%wxwz yX)uco۟V3Rg43ާJs&:WMx: T}~@L ϷWy*ީseNx"Ԥ7wKu(ӹ̌;+ؾ#eѾ5Sry߰O=aSs/KX-u*K[1JEei~g"1Vb(- /+pm">$$l{l}%Bvܣe $ePN7|_ ߇mM>_Ez"=GyI7{'(eܢ'(G\:=\W\=> "AI\$\$( }hOKOl7ÝUH~΍<͘-ϫ$Ǽ\_ -H}WzޤA14Ua@m' 'dIxϛIRL>:e1#I`al#p &B21'-$",f @eְQHq\8ۡ-K}-^x%wjDdޡ©™̑ 3 .^5`єMw(16Z,)iKȽHL32{Db1':wDgT^+WDo$Y5}_k %2Gz$RX%h~yOMb5@b- CLnhĆ#yPV8%Qj)sOg 'l b_8{-hƈ@_ E~Y&5&Әx *E H g*-c‘oŜF1sySW7#a`JB -jןCc~#DZ̑q)YG*ZN2Rzr βDw$G\^3`xe3Y(HΜv9ly)Gc(sp9J [@kc{^As8ht8:w2sa]^1Uw5\]\ݮ|W\8:I 5θz\'^s?_NMiq95[ݰз\]k,6w6|X%plr2!yR/߱p8`|&wԕrͅ ./Β\ 9Fz+qz&]Y#}ޡGʸ8y)3g3HN 31řL/|hֶÙu,߼h !Ѻw N1}Ytt]ʲr SL*~HߑiTί)tW>' J-&u}|ҮÀR`*SҶ;rQNelUreU}|0J>WrëV}Mi99W/>y>\!)ω\@_sb,@K`[!03p.ԤYY>u-67UԯsY''( h/2JzB1VI Ǘib?/۷vr QEʗsU:n>sUL8U~0I5:[5ܖWc@/:!uɦ,;+׍12s!PuOC__ |Wť!M/._Syiy]ۧr. ] ugrM47>RL }rC9 )~^#~{zPT_^+VyT}Wj}_ \x *jjS/.PSrem=ny\+scI?).7~gI*-9=sUݣk:X6~%Wm{Kkx(|?l,6ڋ֟޲\brugqi./׬ Y/7:OMXK߼e?=[{M ? &Ƀ@C@@@ׁn+zH,/Ay6(RE1* P"P P\> (O @*rmQT%ET>T[;$w=Ք|:L]tL:|UܗL"27 }㤇eO%%ƨ*;/YDC;$5$k>G$ IA . 8Iߚ`2 3LR~"$$LLrdta$"y5g9Geq1;cM`&w3&KoYC;`DzK~gv9v- hM7sXӏiﺩu31'ZXӟI M(ǔD+$M`R,&ƂE=ɒbg,I,r51=O Oݺ̎ѓ !?d7Dwk (`Z؊2E(T![mF,49zC #|/ __#F }fM0',$>0=V'2["%^Mփˁ8}:;֋4e̟#O'YǐW>$[uʬ^m[nZI'zZn9"Y+sTtykZM[[6ku@%>)m&mZ,km֜PetO՞kdzѵi1k=k7YO-RQ6ڼLj*4N0Fo[fE63V+9f4~ybK,Ըef7f+>sz'Y(s h^ @d*ЄDkC>%jY&>s(],KVXtT\l|*V*tqM$p-9U![KE~27:5<81H,Bm{UUܘeȦ R\olܮ,]"؞9>heh;nL?Uw[*,UPKOu|J(5b4-[6 6ʍ1~h=GvגZͱAnc {ֿeqԣkYbd#Km%YċpUTYG I'h$)Kj;5&J}1d| \k/32|ཉ ٌ(:\!}TY k>dŤ4)%Kg)_pgIS*I^J刁DergUi~g'edg-+_OBd8Y@s9~al`2?goou:3[O`9!s~x:*Vߔy;gᠿgHY?o \8|s0*{SlFH-fh7R&|I3-oɆI6ȆTs ݣ2d;hUc{FJ +T|j俦/7Ue)_5ǾX[x)&iI/݃"3-}RxXX.,y|NKf +&Hfr@)PVl4@:\-tM*RZ6maUz?ΕPwB9Ȥ"0ø@!TYz=tR|/PPPt;VN,Z9ʇfV.5+07mZ9i62Qfhd6[V3II*X4'E@gNE[hiɎ9jVNdž>fvm]bdʕsMr^$_Cx$B?dĐ-)@+Rb;d+}y1RK-YQC[%NVH"h&ஐ*[sW4A|6gCM&\x <kʐ@p4ydiךe-̥Y~0eE`YM|8odA!<yWBa!.-F_}Tyu0'PA d+kT*$1x5htdIyriQeH0, _WH07EEj[("E6ߤ67I~E9^O>}t>J>nB\'|UQ߂&*"M|" [IKֺ%J2F| (a?ɻ w2v䩝iYYAmW條 LŝƨWi6Jȉq4a!#I"CPr^ HE8qfB a(4F:0#&l&_K:4t/@քi"q!P5xg)׵x& <H@wߒYJ(WDYtI#^"^R;9VݢV-$mÈxʕRIr 5K$D9̑d$x N\6LvHkNdt"](aԗay:iK7P_6hKKO9AX"x5a7Ky @ a٧eKXlZ#{]e@q5)XX݁$\yN*\҉Jн@޻ 6弗tf9=i#`5-X4稖K%D5%#Y[B*iޒl +I3/IxR(yQOCq{ %Rd'gR)F6şF.Ƒ$$q J$i&vj,H["8E;"ԅ| "Xz _&Axsl9K0cJ'y1Nޢ.wLU[mh )2)зzC=@do3\5("ichvȫ)2tpX-/wJ:F'cxϫćn C} Ћp/ȳyϺ$op>؀9.D6O/N")F=Ġtg̈́/P-Cw ۄ;HRB-//AĿ@ kq_{Fu^Gt* k@/?a>B5sH>J3J'L! ̢sB;:B:A Mwa4_G|ױH1sq?1jT ԪuuL؂}HW_g- w ="xiA~G4^j߉S{H o{1 G`qwaU~Ξ3` "("*< *"PDCTP`c ^bI]A{oKbf~s{{|׬f͚֞{sI941vb,F>M|F4Žs D >fyn #a@9Ji@p̐1h\#Ϯc8"覠 8C> }i@7>d'6@cȣځ~ՠ!_ 8c9A[,SrG v&1Fc_X"mkm,߈t{Я H ,ס-m1G6/s|C7µˡ,p"8?\(OpZACknY\@ ErqDd&gDoR">E7 *@# Ji@pxGGl+5*5 X, Z5)VEBA7̀e =YP$;JCh8@mR@3m@XnLQg*;}a!FV#ZAA.#-gvX9" r6W `I@\KBt ># 3 }-Gg|1̝&'.h x⁷W%pI%Q~ߖ E`; $7c V/`p O@Cx hh'tc!LRg>|Zg]vփxmD-r@?.$. @ ZVˀ)h9_29/#c)$C`y𫃏30vN USீ:Mj2챸〿KAؓ/мsoĎfH@,1jox{HYI{MXCjPg(d c`+4`bOoxy$qB4w|]i֋k6GFo=suЯW*`?/|^!뀣0!0>-#@_pL|rBY {epTQʞs!8wO!%8 =Co(ji(zh݁ Ew!% !yk&}<] { ٍxhevե "дRcC &ULf=[5'Q?QHyw&sv(j٠6*WB6?D_j)=cB[h=o",tC_e θXYGA{(4d.I=YX6hD;j9̾9Im?31Epj/[6vf H=2@_AU^ 4PMiY!8@soVL+]Мj!kn譅h%SG%[vB_anυ%-^ FMy=Zh"hY6U 1LK=b*>4v ]1Ym*1tjx'x@/B@cNW7NXmgd 3H\e(#6X<3@D/FsڿߧX t)M MMG8`=*J_K %B2@ z2p8 @ 48s@kWW@ &0m$/ } RTp.Fw 諢U6 $Z}N|3P^@AH - 2[E) ='CU|k6˱ ܁ڷGn ރgK-[u\BZE@{gȻ3zsr6Ѻ;2Gȏ{1 m NkIY=&\h8%ϸ_C!VB/@K/yC&aG/eK<5DQy@@[iQqȘ_#(5ue+Whsw  hV9 V pp$MdJ{=W YVF8iX>N2!xמǸ"]1[ 3 -3tOI=Hڀ v{͠3Ymq9H&(ZMQj-| XbIDR~#O# mEOBTdq^=f lZ4zBPP p"26 )xx :{q$ 9~#s >| xîx_QےƛܞhA#b?O7!7$ǰĭ4ҡWfr_ҵwrL'-1?*v w#UDĆؑ2đ؋33Wk)Eʒrā/ME R:P7C+7[,h7m&{A's+R{ )6Y'ԁi$,L${GR Ll @< 'F+RPᔰN+_(3k틎vM@t,C< "H8"HI"i$/! R$i<5Ym84F&k=/c*踁_Ǐ#ѩ㴇;o "­n+d0XQw%F !I$!]H҇d${n&Or l!~r%M [fBi)ߴ6ךqi;?s{M;p,0qiL{Yދc L?Lti??[˥o:ckMq\g:¥ךu\8NtuS\zxD2P2i|B3Eg9YcY/_~KG.{ku#7t=rKm#wG{X#GC<=X#Ou<=y{1M+31otw_)1G̊ #f&=bVG&Yzlx'r#3ƠlͶ#f;&=b1;HK KKHJGGGGGN2b̕g3"b.?fW?UtTRCw/uxHy`HM#tx{K7<{W:G,G#Gt=ROH}x$XH#!GHLcDL3Muτi&=#~[S؍;,~'HNIvW0GYZN֊@pYT S_@ :5AH0(GEFIkO=]tkOW=]tbN4q=Ղ?բVnY-mբVY-oբ'VZ-zf0Ί3_VW^WnAXdkQ__ЖDQ~JRV (skE\ W=/ hQ+D!Wd_m4ϟW.A﩮TDAVjzVԛZftD'tCүhͣJӵt=L;^)ZD5zz@'d>1kʚ0"XkɢY c]XWփb}Y:Ȇlòx6MbT6d6g BrRa&mg߳Gva')V~fveboYJUjR˨jEYVSUz>jQպjPm6S`nhf9he VU<5/Gj FZBkkx-A%iW+f*UiU>h-p/{y𥾼>Sh]Zt,KLtG ~FlsbGiD1|%|EJEt)CŤ,]FG>S+I9>[Iy>c"ĉfRwęNR^gsq!RHU>"R/ĝ%R5^n[GZ|O>&Sx($<|k_ք5!~,:9kN,<:‰?ZV$GJ$ M!xđ>3k$ $AR(f~%B|v rt4}&>vbGA70+=!Qwk3%WI]);{s!l܉nGAݲR!Bo4iR^T͝AJ,y%{kbLJnZ vy;PřKjk%#=@NH27Y}XnإOf=if{%kesrg[?Z\1z(wi08bo]C`&hT2h)q`8/:o33}`zJ[XzfFzfbV*hNi/76+_[f*-,]i2ve;nhlۮ}-K yZXjFLn-bC 4 _R]OG98g% lC)J@n9mn J:l1>{f1\Oҗ[֏uZmcS:9`0h-n}?ٶƪNjG|ӌ^\}!(nvb)߯zAǦ&|O;59fZ3>*<٨jMiv&,͗c_ bפCj=Ӆ 9Pm" k<;pp^yUeOùcl?Aݟ+*ڍs'-RV+Oy{;}b]#K 6#]``,׭Mw)Ž:e7bȵRaLA~Ȱ}vۍ~jlkici2İYY!uLJ~ŦUm{ן+w]?tJ}|&j_gkzsoˀO~pz|96sE]O9s?Z#~5,eM_RsK[ZDyҋV8QްٽC;Tnf翊9yjy33~PV򞿡ܝĘ9lͶ4Lq^m}vS ō/_'9N?zC͆>Fy}7CW^2VA[Wf픓 2oذbQRM&Ins2YO-cO2]YMs9r1:Q5MC.~qzNM}T>òl5V~v<霰ڹڃnVP|s }ͮpZYskO|ە^_z Gu/B[mn|W'Xre݋s:-zۦ!Bo5)Zjy,rPek=69qevB6opuOm^O^ص}P}\"ޭ5̨avs [.y? Sw?KTA<`yƔי͞Y>e^,+пnA))}%&&iWHOoo8T/BVK`./[G2d, J`J`J`YV*)plѢůC ۚsuN( w 3sBGM}vo^'*OT>dmoS2jZKZާ[7S>ue7.벞K훳cr \6=rSntcm7~hv?yb׽{xV|\nƁO<yJ_^qlM ո2Çzn4y9픞ݏ-4oNt]߼WC! 6fYRnw5Z2 fVg?I2T@+Y*:/oY`sb:W۠Q }υ۽?rI#S5Dm[F6uoM7}V1ȲnowFwVeqWMn >ĪA-x[}l\]~5uỎ˾>X̹^}I^GK\MYkðqy{}oI|ܥu8_PsoYwi_]xlM9OWԵ'sJ8TBK][Oݕtyg_kxnqw|=|~5s.~9uMISzH{0G}?8d[]}ϊ̅oIoX,U/ܮ\Yye:-χ+v'&8mpzvsY .\CG|!w.]`mʌbz5YMuT<<h][F3Olik?UkVq>k; m3%__؅RLOTӻ0}emsJ syWWݿCТܤLfޭrx{},mkvW|ƚݣ}\'z=}zғYW>MD-p}yӟoj>^tBe!2n(7g=7oM?1CbݺT+zklXZziR7' *[ݣS^wN'Z>17|?^/T,⿆M,,̲}1M̆<#@ x܆|Ȳ L#!P:l~eL>U2GugU$-|{eZy J+l;j6Ӌ3Rd[bFKxeQUW'4OЯr+4e;,{uuչ;?VܒmϹzYqDy[>rɈםOnI,gvnFv[9)qVu":Yx_\jomZRVR6W36j`ykyHoej{FJ=׏qDK7+oC+Wh\1s˵ٕZ} 56Tzvoԝ ' endstream endobj 791 0 obj <> stream True endstream endobj 792 0 obj [ 600 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 600 600 600 600 0 0 600 600 0 0 600 600 600 600 600 0 0 600 600 600] endobj 793 0 obj <> stream x\y|TE>uogOH@;MёMhl ! $HXhdd3(JpPAf&8N ⸁ʈ,8:#n(侯NwͼV圪uNUHQg2JF=6Z!?QyûFmG*(rxB/Iq'ѵGmѱ׸urW"y;BV Qͩ#eL[м;s _! 0}ތ9^[> WgT.GQ.3ΘtzK!*9DkʪC OBV&DBn k朅7ND9h*پ:x:y]wסyn51O%?Qy [WPuDrz$d\̳!$ߕecZXȫ(8p˅G0Z/Uk4~VH6(5C/);)ȞXJ%(0DQ8fIѹf>cKl2ABuԾǰS }4CF,S2zGJOb#o ̥;:<ă?)J=XrPO*ʦtԘ<=,[EwJz.v*/h> Z t(n?~4V?qMӃOJ \b @XSbYP | ibVId0$Nb:{dʥhIAxb~%O4swwQez-QQ,]޴zFf_HšFDVxDX6a*/È[D\#Fc@,H ӷ+@gz7 PJ"n#OmRRN1ވDjHaxN-i~+:Xd̒dSO+=B)K{t̀~R;ES|hI65aix ׏G0% ְi"bv\O̢yhR@<mf}+hI Sz}K0J7@_[(=(Xzdz\?` F@oGJ OM$[ME}wzur?U^Zly 58^_mc^mƸb3cSnF9fKX !JC!ŘA~)r?-׻,^hF ҊLKj+XYa+Fk/ZpJ|\,-ڏTKcƟ}኱[lOxQ)gb^>{={V}4>Y;|kK Ub";PExrESb#}ߨ#>?xV1*Xa,߯1Ȋߡ}tR+p&,;]sq^=JCro_I-3~GMS't/de#\ џ~@\alR)iz/{\cz HϻIUxc;#M8FK{#LC aFȷcOCndi׆3z--2:ȱ4!zBY? mmu3aދB]]V2.tz<)s*Vxo[х01X<֢*bʧ@+Y8nְK/&+!q0Nm8qΕg^8Y #"Hj"˒23rpۆZ6R1v[PEhRH±TD&faH pI,rD ҅*} Z/{F{qb`ƒ]O8V!X;[aP&~6C 5fz[N<;0wllp 9݄wv9 Y-a0QN=$w䳅Um? ]x%p6Qu'm@|znByB U!%E|BG1W. 84'Q̼''H;ucJG`1Ǣ'HNbDHNE\n'RxmǏ6 o%|g_n.åڞ+9ʷkB;=' uL?7}4=Dj۲Ekztٖo0~@߯' -|s.X\F EM\_X}嵖WXAߦ*A`+>4 :ֳM{&}PYznl.M1+&7 O |!3_D)>?T~VRy)| }<qNoW鏹:z0h ?'0JD-z>Bzl-X> 7|>< =H7>3)Ȋr Xᔁ2墓T>8uetV\F|Uȿk_uaAv ;NB=?OkX#`LCii׫ DzޙJeS:%b_@x ؅";E}].ysObNӆ6|Z8͆OD1J!"0^_“#+G' d4պƉ%VsI=g`;cJT"^̼pֽKto/g^AW U5t#Vz(4|Տj ;#{ppnt-KK\GKc>D[0?Hki~b~V*xGS +G_:oO:qxՂ?M73o} oe=aƼ߄{/&C?{ODi=N_oG;q AvQ=EݴQ __M = ~5z :=B{b A[M06}vAC黱~Qscџ&}2?fyӟ Nt$Ln?%O Sz|<}F?W_kz3}I=^IzCoS&4' p}s{y:,]z}Чw7|zWQӣ n?}اااg\O>}ӇOϼOb`>=}z\ا}z/>էOO`>=}$I{OOf>=Oŧӯ§?{}=|b1HR ۝jfNUk!M]~  (6$CϋOI^0phLq W~ru?^mtǍ-+-)SYÆft^a듞;)15b6=&[T.;u4Fv  0|pYKtiDZ6 .͌hf3/@闔txK:ZK 92V/jnǔ'=; "}7mo[˻E֑y-)#$UiP W@- a5e$ڳn)YrrN0T-%E΋\Hq?HO[ܤ3a*6"MfLLScaKZ&sj9]VLg٦j?ƨ3횈o%1.{jisXwĪ8|( \)<\3Fx"bJM)Y|퟇{n׼Z 6$*kkC7T-ڇX'UߨVԿ4*Sd5j.b&Cl9。At95Q3SKQS9iŃf@Jf jO O p/LBq/*͍cx- >}Z2E,; hg>I#krj7e6ꪜD4]'#Mq9f-Q8F;C Є=cx¡63"3"((yCN&eoc~WIeL1[ĆIA=*bA)0+pJ;pM`)(+hJ;hMP@:j0ǙI4sA1h1iƂ)ٳ(<&tF1p(pՃ5ͥe~6֓%ӹrLQh9GIU*9ըA( e=٬KMQ@UUnaÍ#MX~~ M7"F2^E`MC [\oE,JpŲR2V)7Ke-0UB`X)󀛀N nN nnD:Y:7pC:fnpC:ܬ npCu npCoˀ[8}!X ,yM|`s7f7R!vȷ|;!vo|;!o|;wC P`g6V`ؠ lP`X lP`+A lP` 6ȷ|@=a@=,@{ |{ J؆ɵJTtΟJ`*L&ɜ2(*ReX~3f=nqCzܬ =nqC =nq7 =n7z@e .i,Ӏ*SP L D`0S@0SJllTi krBcMNhrB MNhrB59 MNhr&'49 MN&'z'ɂ;t(TtΛJ`*L&ɜ2(*ReXw3(uؠ6谱tؠ6atؠ:latX :la@{@uxtxtx:<txexJEtlmF6V`3`\XJ&,&vH$^` kSf@tȬVZmG[7Uh8-E3 /LC{.fUM5@Itw ,kU\WS gaN]?Z i/aT;]I4WsY *d 8US<_ T]!)d d o$Q+!B,X%7ƒ,J%2| bǩS{|{Jr>t',C N}ma[~NwS"LX? HQDY4^ OlHZk"O4$PM{DPw-[,VzGh*@TM3Miߣ'E1@)y$Neaa%* a)! E*B{o.(C[}.LnBVԋ}#0>]k'h($nԌAc OdRF)j:A]֩O ZK_ow{E[Ld2d'3L C @P  y@D.>WEWt}GPѽz=U,,uו_U g?~vUuuU_#C0r4 (=GswDoƺ>_{qbc+{W8Iܻ)s`tCzA4*t 4H x!x+?_1s92d{kuIX:՚73Iߞfudu@at'ᙯ׀.W$,ly8OUx#~??2fRT0-R;̇9쇜k>ýB*3?AOo~pxsIZ;ޚ~;?\\N]Nxg9Ȑ ͌8x=PV# HςlŃȷ?1/d0˙%:Lճneہ׳O~3r\ڹ{_rUSTͪ5oR,{B&3x(2.SA~'?a; G_c8Bt~ =g{F:9fkx7 $c7_)wh7@, N[䠥wߎ/BL1~RIV]v)̗kͶ9oċcm7 mer AK]{ 0zyd%гЊ@{=Y~T/[Ef|Hw|Ca6ϚE__0wwE?U;='1sy4 K_~K`3T)ӝ8HhSy/|-ZUjj^5^U|*ʤq_sp=r8{KCmfld20Gb1o127a~(=3=!=>JNNz8uǩTOj;/~ 7aX4==} ͚7=! k,@à_]$v>X8!B'Ph/D?]A3AD>)Kc;g^Y`HŧO.ȊŅӾO?΅1^ SOB2]?MCїvÛɷg;gI0NiP00ӍL_Nh."#TE>F5Wg0RqYUYqiqi-‰Tm0\õ3>o)N[%[$V|=GSE`?C$V51*=B 3$y9z  ^!,$Nz=!Ḡq^gtr ZZ{ QrH2A}y~ &b+k%*KJ*j W'UWOI$"ʅ?,0tB>þ}40IRQZ QY},<2iY%RkN kO:U@ 8e z<\~>Ȳ`O'ozLGӰ |H~fP+JE#ͲNE^K[Zf %ᅩq ^T x:uT'"=4%db틱*ޙcw;9=Yb/prTTG$H H.d&cC mlnmA["E^<}>&z3rq!GnF7Ǟ"7?_ϜFTH YFIlff>NJi|eUsXm;'j#㸙Vȡ 8PAzKx&˲}2N sd|{o >q>8_HB~JpLz;4!nJLk s>-+Poi)XZTikop+T8-UV%ArM8q\nTUYJ?{rdrO>>9`)Yz7-dfк4=''WH!v L*BddTLN)@ CoYdG4H7-)Qbb3{'9H ;vZ6֧zq2MCׯGsJBPo\ YXδ `*? i%Ԋ[Q/6@9VDFm1.J|փS7%F? vUT<M}W%1kH~z /x]w4}-57h$Hh:Ug*,楖%Ex[-ͅ , ],RN͐%h7vbߎ|tm10;_Z;$-|zC$8=Cfgʳ21 H'eNRAS}ԇ A CDg"jG\HYdZ SDdl.mT#UҪ}А#=]PX$/GwoG.Lhԩoف.'ont# .ybE.[|aH,DпHa^cT'X{sP"9aQ,,Y >x:`P ]Wn)h__8Co$ OV-h_Zڗl^-Q-=y  vθ JBZм)`YڸrhXlB툖 _*-~K! AQ &kPqP*6xX;[D5GY5v>RlZe$3מP+{~qXf.'p*V` ْJ㤔 f9 lHy mAdnCkFwӂCzwkQ\(Y%›ݓdCv4vVlχOP #`S4D P=ӗP׵H.aҴ[h(Bbp+̙G'ؓ2鏶AICQW;#r<\ӯOl{S\)Jfө~s75,)`Dz#WEeE>l?i͛4uAD_I΃Z6gI]'gb#9*-_ bZV 0r|(Oc% ̃ltNQA3C{[U| D%gՌU' E}Љ!!"VygHTn|W}N}fϻW~+ZM_6&#@:̰GMGQG K >:u[EJbib~j`T //XI>I]5!R`KY!̚,F3ZYVi 3If2ya,EkPkE 3o&8'GF ՙw2 O -d/1X79yNJ O!}SOJmmG~$ḷx|nT:ɪ\f 'E!",8,D.Ylϸ:0s4]$syϕZ4Xnw'rqK;t&A.9Xy0$Io1^IzgHxBꚚ7-gi滅&cqt / z|/9O_܏#,WC2'I[5J6Oi'R$Փ\>][SOxAAx ynb @ 䩎g1IfV5\4|Pd ŢEɟ 7f82}myC[Cyک<+ud0uKIBf ,_2Y&FIQe2o @?2RnumP}{P3o'{٦W}KC1%K+\!Mv?? A@wrnNyc*A2!XX6pA G88Grm<{q&%aM4H"C9{qZ9M6dE}!Nzvl'ݰ'x;ۈjjiY h7fk]=K7Ph avV9ݹ]6pFȹl' /GqQa7=PyیW!< rnq̐^zOꦑzoLjy6)b%EN`2^~㧖s:>v~ޗ[;>]n2}8Ա7(9DwxԢns,}Ji/~nRw0Kv6o.HCH@":8sigD4=Vj;EQ?w&mB$P:$3@π8:^8*XwSj΍it 1{)ݰ;uߴuCo8v=V-|pmNQ'"'<W|REra,JFY(9Á0-eQȳ's}@J}yk> d,$TGDI)HDQ<$r/XtUuNv608H JЩB΄r!p:=%JHa/*OCV-/ CGDH0a?HRrܥ~UY.]rRK3'#t\Il"Yf kkq9ʡ=XrHO9:>uſE[yufzѝW>t鄭o|7"E`G 4]![8`7;ni+׼*b -q*p%tBl/ dT7x|u$J/È/͝%K"F~y2#vh#SaUj(RR<9 ћȻ#?M,0)E~~Eg ڰ!b[ yTߢH Gvv\ȠC\:&$#$3BN) D:Ur+uqRr;)]rqH'"p5T+ uƫkYN7tJ 5 jo _7 7HxTh;aB-oq5!|Iz 㖺Rb4=€ppHW5f.2fxlj"q珏sNI9ni>Q ^' ՛asCK%>rr6czDEReW >| {{DX]He%I6d $d佚PRTJ|9or&$4F+O)Ej3s9dI@VC!ry$b4 hQPves丘^]3["v?oц H-Н1|%w$O;{vޟrSmXR) *GB3L@0sqW^O1Д,E.xuWc;MzG(Dt>]oQz~S$o yg8i-/.=C@I  Lax6*X!&[[lj>_ &F/9 cΟ2.F.~MjUf}RU[Z5mҸT/<@؍Ki|]1; ]]xJT+? L_AS86g<Qg,&HV)[Hf.9\)O2FoYd|b'Ӟ zM~Pފa*hɏl`[%gGCBOSk9ЂUyp4 [\I{cS+nCne#yh1%uk Sҏe8oMbK9TjzIGe4ݭ/1VLQ[F4XKci,4XKci,4XKci,~|6%4g{K}X+'m8`xUȁS0yѻ#hP=`-ſSpep${C T (!AU`2f)G٪+FG ȨUpnVߪK"F9ߧX:N翡z^]`yVՄn&15PoP/W0YkXeXeXeXeXe#kWXvjwa;̡#(]go5sH}bs@d6&`AGӢ`j̡2hLNW  O5(x<&ʼ#GZL8@xP0T롸G{>Z_tk h"X3Q׌ZfԺ F7!×gb T hZڡlFݨ ^h-5Wzh;hԡNH"uK~^CWC=຃֊5PvOnP-?H(7:DD-W򓻠6LG˔.3꠽C̠0r5@ܝ[ƉBQ郖t]rg?I~LXMȳRS#k!u{DJߵP<$a }f? *zo @ }Zzߒ#*St-<=Q4 +O 26*dTοRҋ΢j?B~ d5#㐞Y1Ts]k{E]!SձtYJqVmU}}bKcH[־bQb %vt6Mݿnj w'.^C eIݝmիVhT,jX׽{I%ꕛ]svY&Nkl[нJ\hje; ְ_\Ri[OwZ:ۆ렵^uZOVfYekq6[lX ]a1jb]kŢb}U3cuezwJ{[GR}%k1S:+cuSWVuSۺtuv/P"y@tY/XN,k.h[QK肽*x=P]Pd^}}}ۙvәNeоIU9Jj>^xGAKF`ԣr~Б.: #,fB=Y*[/Q䂳D*JN&pӸ 84 >Au9a3#+|a.vӽ`HR~+xEK8$2@s|/}E3w2!l00GGyq_U!ֲQ:85#6vq.n 8VNSiP3]:z{`v0{= x}s HHer6S87 8pA\pqq xnkM<8<O-[q73U!ª"U)bUe|$~*bF 4~69sw__ 5|' ]jk5Y^7?j~^{|BXov=G_/\!FOlPDD13(0 ! @CS3%4C3533SS3##CC33333 `~Z{گ_g3s~?#TOw;,M; 5 |yFC(}R m$A1xKNK2_jR:\ޚ@G ~ij:RC+Jkԣ`xR< C{92{zY=BtOj\ܸb1&Z&& 7]twMB]OP= dzC!ɐima(1l2TPgᗍF1Θd0{mʑvmyМg-Y;=d CY6KzB^@~KO@:M78|TKE}!TKG#QD:bJz^5 f*1CZ萗"@ZiV.r}HUHG`x ,R5! m7   1@<8 gDo4 rTu1Q5Dӭ^~"YFDɒ,Ř^b QIQ6IѝEw `Zd9" :$wKrɑW \!'Iv;E->dbkhbk^#Y4ϕHk\Prw4kR8zh Z%@YRYQ.(K:T}l'|^5#: ا8eZۺo948jtبq?3z<IW@Ο"2\v~r0,u'i3(D:ݘff i~ȳ ZXiXYڰa[v >,Dԗ՗xSשPu0 +c+=ʝz(ЛMW鎗 )åWR{N7iW{G]o^ԯ7V?q1?E@(T*P# PA(D~ +jWuڲBt[uեR-^r^.d+ (1hoگnAΒuv=ƹ5 y_nӵW3~ct]go__8ϡYww6+h6kC _"R!z?3%+'R>y ˷fc,SHHGnSr?X]}j-Z0# jA7`= ;aPНo$gh68͆6k*?++) !}N#jn)}@`Z%EsIkm_'%%-VIQri*֤rm4I!M*ibIO:ݲ{6 {6P4j5:[-rQ?u\R{[5%ZO;rЪ1 jT-t-Wj_MHpu\Sc j8J6E99l5-Uw#{Zk쿇NJ F\O!EߴKY ݷo}]!l-7)>x9)>9xJwdgut(N..~wK?WG=(F{..1`{=tGo/WYEh]FX?GN5OӘR,Q,_蚪UU:P2ЯwVTE_T֞ũrթNj [Z`KVᚺ[-U^RW]BF]gzfu3w^ݍ㯧~V<~A 4PK=q8Z> D4Fa=<">6趴=6=6]|۞^D)V!j}뤅ҹhE"y+9:ivSI4blk/.:{8鲯_|#t&v4ɥڇ(Qipr wq7V!Nc?nnX8W}^օxl}#YrVE6`\YAcJ|at;Whnio&U~${P?~R-=i;wyi{2U۵bדԔ/rzI.\s$WEr[T^l=QF5H=f5k(e 4RP^@rq(9Q5&MA#Jc\A$9\1\maj%Z,"I2d7j=S+kS H駨d}6eH[7{.uju#~\ ʩ"ʽBsEjդB%M)ח_O}x\q=KzS:u͐хKYLugԺD(S=|;қѦڣÙW"?։xqY(\%i?һ%8\%D@r5ZYJe!˔eJYq*oFr+$*58DDj)דjSo,Y5{Ҫ_[r[C䋉wR֘}O3LnCϥ{\Nr"e%4OZ"VH2ˏAge:OjCy}'Y3p^|:,ϛyI~^_y߸Ch?dA=ܟx7ηT:}o/=w> 8FG|RNް!0}0xaa1ã`漑`;3 *%u%Ns)&z.\s.9h>΀ ^#c'} co'-u=H68xo#,ם߿[}9Zfۅ!,N ҰǸz$nqJݜҽ$iآ/BZ~$ TռHI5._[B+Y g+W/T+jQ&akDz|Gls7V#.0m6Q%e̝i(K:C2W\MP k`#pR~aNU%VW*=s )ԏPZH>StJIh|dL ~*tS:X! ,]̧.eRp\vj)qJ;N t)}锎>\ ^[{Z}A}cK1R嘺TʩIZKԕXL]Zu-4P׫Mw0雍@}M1Թ3ugZLgG-87c97߃Q;Ќ΂,nY;͗=+-K}hxWU e,X8`fe5+dST6`Y+f bl5[ֲlĶl};Ďc;ΰ;Ϫut}x1%ov~'x |G!0?'D>?ɟ>|__M6x9g ǿ?5MѸVOjfZ5\Ԣh-Fk:hwh~Z "@ %rP' h1V1U<@,KEX)Vb$b-e,[1܋0*333F$DŢkZ/&=ɞz)il4{,6 <6gq5l>xEl4d/^{ |* W+^eBc{ 7boASm@ {h>bg!d!}>0=W+0o7`b߱{=4g?`ѥ [/6nxּ5my[l;NК'DhÓx<'i< :tQ w, <wP>:<w|v(Hh1Еœ|I|< |t$BHSHSTΧЃ3''^|6 |b|)奼+JHkZo7Ao |d]| Eom'S9Ϳ? ' Nkj>Z-Vв,2E,rE%ƈqb.f"Q,%DebX/6b!'d y2|##Wi??#NI ?I~>䇼5$?M~ȇ/F5&?O~ CM "L+Wȯ_1_1_1_ ҜJ +W,(BMc뱄8z+zkByBy[By;By{ByBy<By#NBygB]DByByWB݄$=n{iLHM!,v', ,$"zy}y} y y2m2 mڲmmلB B`BBPB0B|~f!Țh֒]`ϰ9<[ƖM6{g'S9};VKetޞ'μ+Sywޗ<湼| /A]|3ߊu>aF~ ~x5į-o[bygkjT< Ab!bxFϊbX.^uux[#p#8y" tW!}>#D3"} }-}> /g%ElB_,%o mm ~۞؁OH@HHHDHؙx!1؅ؕx7!1x!!^Bb2oS == tM4ff_}tL'OGO >@$>H" fBBs CC !t$!!t}OYΓ^cp*fh:zȂF4D lni׮C֘`[p9 5F~ȑ w>2zQF?f nٮ-&fkcÿ~=cm1-cУB%uZPi* R,8ա{ӈeύʹ)]5߬yԐ0Wsbع5c>H;R%S,2;2D ^xiQe{;ovv=˪vegyS8π5_̊z4Es:,]۹X87+Z&uO/Pi;}wڟM+FοbA(kXv{/+W6uȥk'ͯYC/ʈ߻~yu^7<ԗ*C_>6%R E7ymsW0lҰ^|7̾ዣW6?-v̺7+mx!#+vRa;}OTY%wgpӊj6&|D*V㿈u2ܷk{q38M#z{?FRvoy}vSoz)ԗ~tm/;7S6md׋ϙ^ic99d٣_)܎;qNVMs?oUUdY]ymS=t/]? 쳲sӞ}dJ+d Y+[_ix>QSn3@ܷ? bb1ڪj1>2qoCxD7A9#FvV ;3{ؐ| =›=q׻+[sgc{Kwy]OW|wxrjE)ɋOξ7Eқ˶s|Y]gXw_^q./=ۭ٢^}[5 0W/58C{Ɯt^~uZy߄e=Z|<|[;u2ݦSaŎi_vx+?|S09z9C!?,|Ey{GTRr{~Y_L;Ӥ5[԰ƍ'MJ(6c|×#̧ʨWL6'g&KALKv.n˲%9#id4G'}4ƫcxbAX1շU5BEj-Yw8nW JnxGg?g ~?{E1SXnc;x_wN,h|`f1hWߩVldI//E\%Ύ;SB͈x"@  ~+;`0uh뱧'j>j^T˔kӍAWHVmO?I :! CDjS gn 2Sѻ'MZ%يjL=8TZ-a;mXjaiسF9#V4w;g sM^|$ z=惐.$ݘz0Jhv#L vԻotm|0&WSdọQxaU ,Hh3Sg@=и,Fb}2 DZ'AEkpA?GrpHI!w#G01vtvEZƽǪݙh+=PP#?81x"2f >]GE!JRxuM[yaGMl>6Ǎm m  !F&}In=Br;j;ȫ`]9ew;<VELws}z"WG%h WƺII;N)ӚeE)"[K:v*; J*vϓG<i]FI~2;&\O#!@yAs܏VW'":`Sݠ&tw;FlvVp{?Q^BĊLA蒼 ʼ')&ꏥ)iG8^(Do(tx` \ Srk|nh_(!qݬh~m~uqGGC3}y)Hu_i|02Or:_wzi ZH%},ΨduJlױ.1IVɷ`|<R- endstream endobj 794 0 obj <> stream True endstream endobj 795 0 obj <> stream xwTTϽwz0tzRWQf "*QD)  EbE Q{@QldFJ|yy=gs{ߵ.$/?./ '{#~<s P +=KE$^o{4+/ 6'%<2YSS %(by1'.gEv3;8 v[="ޑ-q~6#"JqEVaf"+If"&C]E) \3IKnnkˠ{qrR9q iLY2EE6601PuoJEzg_f : !$E}k>4$ v999&\D\?xCw$0nt!dqys8|O.2./Qn+\j? Z$J'@5RTP"@bv5Bmrq? Sb#958ğ%@TT&{܁ ,` `7*A 4.(,x !Bd)@j6dY@ hAP%B)@ʐ:Bz[(2CaPeGyP,T&j#U:jGnPOh2ZmC{#щt> ݀nC_B'Я1 xa0ɘu"L+Ư]~ M%8B Ʉ-rB %H \fb98 q$C2 bHB.y]K2Cv"G]FE#[ [bDDMxImIgUk%$OJHHt\RNIHISͥӤJO`etde2y2e.ʌS&ŕ¢lS.Q&.՛L-~CZʆˮ=#;JCh:4oZ*v6L{/",Ǒ)"wS.TUWhxIdh&hjvkjikjֺfh'i~]CgJW^[wn=^^m}>C?E  ɠ`6604BFIc&4?\ZѦ{L{M?Y՛71152eQeq{ yǒMK:4XcEnmƚob=megSm3 2E+h[MmY Nbolbd?Tw)giq C2e:;2;i:&9?w1sỴqsz qt+pwqst1ik׈7˻{gO/7ķ߯`r7an`fA'{C(!!M!C]BC ú%cDEDFFnōFG7Dϭp_oDUL~JݕW^]*uՙXXf8t\D\Sf9_?reg=c;KN g2!$a*!qotcRY ו[}\&% HBjDjk.-.OIWM_>a1i/soȂVfu >pp,{YvUۜ𜓫WV1XsZ_Cc^~ j7B7voܔib[[Rk[jk֮ھ7iUgd%;png.$^1힠K\|׹+]=uq>~hoa{kpٛ7/ruCˇÆČaߙzŽ{7?@?(x(l=368q~0lRmqb+N> stream Microsoft® Word 2013 Shannon Patrick Microsoft® Word 20132015-04-14T11:42:41+03:002015-04-14T11:42:41+03:00 uuid:ED0E1E97-D2C8-4155-87DC-2B5B858A0931uuid:ED0E1E97-D2C8-4155-87DC-2B5B858A0931 1A endstream endobj xref 0 797 0000000000 65535 f 0000000017 00000 n 0000000360 00000 n 0000000543 00000 n 0000000764 00000 n 0000001599 00000 n 0000001775 00000 n 0000002021 00000 n 0000003219 00000 n 0000003393 00000 n 0000003638 00000 n 0000004851 00000 n 0000005063 00000 n 0000007087 00000 n 0000008286 00000 n 0000008426 00000 n 0000008456 00000 n 0000008624 00000 n 0000008698 00000 n 0000008960 00000 n 0000009359 00000 n 0000012297 00000 n 0000013496 00000 n 0000013679 00000 n 0000013932 00000 n 0000014062 00000 n 0000014314 00000 n 0000014444 00000 n 0000014574 00000 n 0000014816 00000 n 0000014946 00000 n 0000015076 00000 n 0000015299 00000 n 0000015553 00000 n 0000015683 00000 n 0000015813 00000 n 0000015944 00000 n 0000016075 00000 n 0000016309 00000 n 0000016440 00000 n 0000016571 00000 n 0000016702 00000 n 0000016833 00000 n 0000017084 00000 n 0000017215 00000 n 0000017346 00000 n 0000017580 00000 n 0000017711 00000 n 0000017969 00000 n 0000018099 00000 n 0000018229 00000 n 0000018475 00000 n 0000018708 00000 n 0000018839 00000 n 0000019076 00000 n 0000019322 00000 n 0000019453 00000 n 0000019718 00000 n 0000019849 00000 n 0000019980 00000 n 0000020236 00000 n 0000020367 00000 n 0000020498 00000 n 0000020731 00000 n 0000020966 00000 n 0000023409 00000 n 0000024608 00000 n 0000024785 00000 n 0000025030 00000 n 0000025175 00000 n 0000025205 00000 n 0000025378 00000 n 0000025452 00000 n 0000025721 00000 n 0000028600 00000 n 0000029799 00000 n 0000029984 00000 n 0000030241 00000 n 0000032832 00000 n 0000034031 00000 n 0000038030 00000 n 0000039229 00000 n 0000039362 00000 n 0000039392 00000 n 0000039553 00000 n 0000039627 00000 n 0000039883 00000 n 0000040051 00000 n 0000040301 00000 n 0000040440 00000 n 0000040470 00000 n 0000040637 00000 n 0000040711 00000 n 0000040971 00000 n 0000045191 00000 n 0000046390 00000 n 0000051742 00000 n 0000052941 00000 n 0000053073 00000 n 0000056039 00000 n 0000057238 00000 n 0000062027 00000 n 0000063227 00000 n 0000063412 00000 n 0000063663 00000 n 0000066964 00000 n 0000068164 00000 n 0000068297 00000 n 0000069071 00000 n 0000070271 00000 n 0000188344 00000 n 0000191890 00000 n 0000193090 00000 n 0000196182 00000 n 0000197382 00000 n 0000201024 00000 n 0000202224 00000 n 0000206433 00000 n 0000207633 00000 n 0000208397 00000 n 0000209597 00000 n 0000309461 00000 n 0000312017 00000 n 0000313217 00000 n 0000313447 00000 n 0000313513 00000 n 0000313654 00000 n 0000313746 00000 n 0000313892 00000 n 0000314030 00000 n 0000314145 00000 n 0000314273 00000 n 0000314398 00000 n 0000314519 00000 n 0000314650 00000 n 0000314769 00000 n 0000314888 00000 n 0000315083 00000 n 0000315196 00000 n 0000315330 00000 n 0000315457 00000 n 0000315558 00000 n 0000315678 00000 n 0000315803 00000 n 0000315926 00000 n 0000316070 00000 n 0000316183 00000 n 0000316306 00000 n 0000316430 00000 n 0000316574 00000 n 0000316731 00000 n 0000316904 00000 n 0000317013 00000 n 0000317163 00000 n 0000317305 00000 n 0000317433 00000 n 0000317591 00000 n 0000317683 00000 n 0000317846 00000 n 0000317958 00000 n 0000318091 00000 n 0000318199 00000 n 0000318299 00000 n 0000318413 00000 n 0000318668 00000 n 0000319186 00000 n 0000321993 00000 n 0000322064 00000 n 0000322160 00000 n 0000322236 00000 n 0000322307 00000 n 0000322378 00000 n 0000322449 00000 n 0000322520 00000 n 0000322591 00000 n 0000322662 00000 n 0000322733 00000 n 0000322805 00000 n 0000322941 00000 n 0000323013 00000 n 0000323085 00000 n 0000323157 00000 n 0000323229 00000 n 0000323301 00000 n 0000323373 00000 n 0000323445 00000 n 0000323517 00000 n 0000323589 00000 n 0000323662 00000 n 0000323735 00000 n 0000323808 00000 n 0000323881 00000 n 0000323954 00000 n 0000324386 00000 n 0000324666 00000 n 0000324741 00000 n 0000324830 00000 n 0000324919 00000 n 0000324975 00000 n 0000325047 00000 n 0000325119 00000 n 0000325208 00000 n 0000325297 00000 n 0000325353 00000 n 0000325425 00000 n 0000325497 00000 n 0000325586 00000 n 0000325675 00000 n 0000325731 00000 n 0000325803 00000 n 0000325875 00000 n 0000325964 00000 n 0000326053 00000 n 0000326109 00000 n 0000326181 00000 n 0000326253 00000 n 0000326342 00000 n 0000326431 00000 n 0000326487 00000 n 0000326560 00000 n 0000326633 00000 n 0000326722 00000 n 0000326811 00000 n 0000326867 00000 n 0000326940 00000 n 0000327013 00000 n 0000327102 00000 n 0000327191 00000 n 0000327247 00000 n 0000327320 00000 n 0000327393 00000 n 0000327482 00000 n 0000327571 00000 n 0000327627 00000 n 0000327700 00000 n 0000327773 00000 n 0000327862 00000 n 0000327951 00000 n 0000328007 00000 n 0000328080 00000 n 0000328153 00000 n 0000328242 00000 n 0000328331 00000 n 0000328387 00000 n 0000328460 00000 n 0000328533 00000 n 0000328622 00000 n 0000328711 00000 n 0000328767 00000 n 0000328840 00000 n 0000328913 00000 n 0000329002 00000 n 0000329091 00000 n 0000329147 00000 n 0000329220 00000 n 0000329293 00000 n 0000329382 00000 n 0000329471 00000 n 0000329527 00000 n 0000329600 00000 n 0000329673 00000 n 0000329762 00000 n 0000329851 00000 n 0000329907 00000 n 0000329980 00000 n 0000330053 00000 n 0000330142 00000 n 0000330231 00000 n 0000330287 00000 n 0000330360 00000 n 0000330433 00000 n 0000330522 00000 n 0000330611 00000 n 0000330667 00000 n 0000330740 00000 n 0000330813 00000 n 0000330902 00000 n 0000330991 00000 n 0000331047 00000 n 0000331120 00000 n 0000331193 00000 n 0000331282 00000 n 0000331371 00000 n 0000331427 00000 n 0000331500 00000 n 0000331573 00000 n 0000331662 00000 n 0000331751 00000 n 0000331807 00000 n 0000331880 00000 n 0000331953 00000 n 0000332042 00000 n 0000332131 00000 n 0000332187 00000 n 0000332260 00000 n 0000332333 00000 n 0000332422 00000 n 0000332511 00000 n 0000332567 00000 n 0000332640 00000 n 0000332713 00000 n 0000332802 00000 n 0000332891 00000 n 0000332947 00000 n 0000333020 00000 n 0000333093 00000 n 0000333182 00000 n 0000333271 00000 n 0000333327 00000 n 0000333400 00000 n 0000333473 00000 n 0000333562 00000 n 0000333651 00000 n 0000333707 00000 n 0000333780 00000 n 0000333853 00000 n 0000333929 00000 n 0000334002 00000 n 0000334130 00000 n 0000334202 00000 n 0000334274 00000 n 0000334346 00000 n 0000334418 00000 n 0000334490 00000 n 0000334562 00000 n 0000334634 00000 n 0000334706 00000 n 0000334778 00000 n 0000334852 00000 n 0000334925 00000 n 0000334998 00000 n 0000335071 00000 n 0000335295 00000 n 0000335368 00000 n 0000335440 00000 n 0000335512 00000 n 0000335584 00000 n 0000335657 00000 n 0000335729 00000 n 0000335802 00000 n 0000335874 00000 n 0000335947 00000 n 0000336020 00000 n 0000336093 00000 n 0000336166 00000 n 0000336240 00000 n 0000336313 00000 n 0000336386 00000 n 0000336459 00000 n 0000336533 00000 n 0000336606 00000 n 0000336679 00000 n 0000336752 00000 n 0000336826 00000 n 0000336899 00000 n 0000336973 00000 n 0000337047 00000 n 0000337120 00000 n 0000337304 00000 n 0000337377 00000 n 0000337449 00000 n 0000337521 00000 n 0000337593 00000 n 0000337665 00000 n 0000337738 00000 n 0000337810 00000 n 0000337883 00000 n 0000337955 00000 n 0000338028 00000 n 0000338101 00000 n 0000338175 00000 n 0000338248 00000 n 0000338321 00000 n 0000338394 00000 n 0000338467 00000 n 0000338540 00000 n 0000338613 00000 n 0000338686 00000 n 0000338758 00000 n 0000338950 00000 n 0000339023 00000 n 0000339095 00000 n 0000339167 00000 n 0000339269 00000 n 0000339348 00000 n 0000339424 00000 n 0000339503 00000 n 0000339579 00000 n 0000339658 00000 n 0000339734 00000 n 0000339813 00000 n 0000339889 00000 n 0000339962 00000 n 0000340034 00000 n 0000340107 00000 n 0000340180 00000 n 0000340253 00000 n 0000340326 00000 n 0000340399 00000 n 0000340473 00000 n 0000340546 00000 n 0000340619 00000 n 0000340693 00000 n 0000340766 00000 n 0000340839 00000 n 0000340911 00000 n 0000341751 00000 n 0000341824 00000 n 0000341896 00000 n 0000341968 00000 n 0000342056 00000 n 0000342130 00000 n 0000342204 00000 n 0000342277 00000 n 0000342350 00000 n 0000342423 00000 n 0000342520 00000 n 0000342608 00000 n 0000342693 00000 n 0000342767 00000 n 0000342840 00000 n 0000342913 00000 n 0000343043 00000 n 0000343117 00000 n 0000343190 00000 n 0000343263 00000 n 0000343336 00000 n 0000343409 00000 n 0000343539 00000 n 0000343645 00000 n 0000343732 00000 n 0000343805 00000 n 0000344973 00000 n 0000345045 00000 n 0000345117 00000 n 0000345189 00000 n 0000345261 00000 n 0000345333 00000 n 0000345427 00000 n 0000345499 00000 n 0000345588 00000 n 0000345644 00000 n 0000345716 00000 n 0000345788 00000 n 0000345860 00000 n 0000345933 00000 n 0000346006 00000 n 0000346088 00000 n 0000346167 00000 n 0000346286 00000 n 0000346359 00000 n 0000346438 00000 n 0000346550 00000 n 0000346662 00000 n 0000346741 00000 n 0000346880 00000 n 0000346954 00000 n 0000347028 00000 n 0000347101 00000 n 0000347174 00000 n 0000347247 00000 n 0000347320 00000 n 0000347393 00000 n 0000347466 00000 n 0000347539 00000 n 0000347612 00000 n 0000347685 00000 n 0000347767 00000 n 0000347846 00000 n 0000347973 00000 n 0000348046 00000 n 0000348246 00000 n 0000348324 00000 n 0000348406 00000 n 0000348488 00000 n 0000348578 00000 n 0000348692 00000 n 0000348774 00000 n 0000348853 00000 n 0000348948 00000 n 0000349020 00000 n 0000349652 00000 n 0000349728 00000 n 0000349876 00000 n 0000349950 00000 n 0000350024 00000 n 0000350097 00000 n 0000350170 00000 n 0000350243 00000 n 0000350316 00000 n 0000350389 00000 n 0000350462 00000 n 0000350535 00000 n 0000350617 00000 n 0000350696 00000 n 0000350807 00000 n 0000350880 00000 n 0000350959 00000 n 0000351074 00000 n 0000351153 00000 n 0000351262 00000 n 0000351334 00000 n 0000352694 00000 n 0000352767 00000 n 0000352839 00000 n 0000352911 00000 n 0000352984 00000 n 0000353056 00000 n 0000353176 00000 n 0000353249 00000 n 0000353322 00000 n 0000353404 00000 n 0000353483 00000 n 0000353818 00000 n 0000353891 00000 n 0000353970 00000 n 0000354052 00000 n 0000354137 00000 n 0000354219 00000 n 0000354310 00000 n 0000354395 00000 n 0000354480 00000 n 0000354565 00000 n 0000354650 00000 n 0000354738 00000 n 0000354823 00000 n 0000354908 00000 n 0000354987 00000 n 0000355069 00000 n 0000355151 00000 n 0000355230 00000 n 0000355312 00000 n 0000355398 00000 n 0000355480 00000 n 0000355578 00000 n 0000355660 00000 n 0000355742 00000 n 0000355824 00000 n 0000355906 00000 n 0000355992 00000 n 0000356074 00000 n 0000356156 00000 n 0000356238 00000 n 0000356320 00000 n 0000356422 00000 n 0000356504 00000 n 0000356590 00000 n 0000356672 00000 n 0000356754 00000 n 0000356828 00000 n 0000356904 00000 n 0000357848 00000 n 0000357932 00000 n 0000358011 00000 n 0000358090 00000 n 0000358169 00000 n 0000358248 00000 n 0000358327 00000 n 0000358415 00000 n 0000358494 00000 n 0000358579 00000 n 0000358658 00000 n 0000358743 00000 n 0000358822 00000 n 0000358904 00000 n 0000358989 00000 n 0000359068 00000 n 0000359153 00000 n 0000359232 00000 n 0000359320 00000 n 0000359399 00000 n 0000359478 00000 n 0000359557 00000 n 0000359642 00000 n 0000359715 00000 n 0000359812 00000 n 0000359906 00000 n 0000359980 00000 n 0000360069 00000 n 0000360126 00000 n 0000360200 00000 n 0000360274 00000 n 0000360392 00000 n 0000360464 00000 n 0000360520 00000 n 0000360597 00000 n 0000360689 00000 n 0000360761 00000 n 0000360838 00000 n 0000360911 00000 n 0000361655 00000 n 0000361727 00000 n 0000361799 00000 n 0000361871 00000 n 0000361956 00000 n 0000362038 00000 n 0000362132 00000 n 0000362217 00000 n 0000362299 00000 n 0000362387 00000 n 0000362469 00000 n 0000362557 00000 n 0000362645 00000 n 0000362727 00000 n 0000362815 00000 n 0000362903 00000 n 0000362985 00000 n 0000363073 00000 n 0000363155 00000 n 0000363228 00000 n 0000363313 00000 n 0000363386 00000 n 0000363890 00000 n 0000363963 00000 n 0000364035 00000 n 0000364107 00000 n 0000364179 00000 n 0000364251 00000 n 0000364323 00000 n 0000364395 00000 n 0000364467 00000 n 0000364539 00000 n 0000364612 00000 n 0000364685 00000 n 0000364758 00000 n 0000364832 00000 n 0000364905 00000 n 0000364978 00000 n 0000365072 00000 n 0000365145 00000 n 0000365218 00000 n 0000365300 00000 n 0000365379 00000 n 0000365530 00000 n 0000365603 00000 n 0000365685 00000 n 0000365764 00000 n 0000365843 00000 n 0000365922 00000 n 0000366004 00000 n 0000366086 00000 n 0000366165 00000 n 0000366250 00000 n 0000366329 00000 n 0000366403 00000 n 0000366476 00000 n 0000366708 00000 n 0000366781 00000 n 0000366853 00000 n 0000366925 00000 n 0000366998 00000 n 0000367070 00000 n 0000367142 00000 n 0000367214 00000 n 0000367300 00000 n 0000367379 00000 n 0000367455 00000 n 0000367534 00000 n 0000367610 00000 n 0000367683 00000 n 0000367756 00000 n 0000367829 00000 n 0000367902 00000 n 0000367975 00000 n 0000368048 00000 n 0000368121 00000 n 0000368194 00000 n 0000368267 00000 n 0000368340 00000 n 0000368413 00000 n 0000368486 00000 n 0000368559 00000 n 0000368632 00000 n 0000368705 00000 n 0000368778 00000 n 0000368850 00000 n 0000369554 00000 n 0000369627 00000 n 0000369699 00000 n 0000369771 00000 n 0000369843 00000 n 0000369915 00000 n 0000369993 00000 n 0000370087 00000 n 0000370160 00000 n 0000370239 00000 n 0000370312 00000 n 0000370385 00000 n 0000370458 00000 n 0000370531 00000 n 0000370604 00000 n 0000370677 00000 n 0000370750 00000 n 0000370823 00000 n 0000370896 00000 n 0000370970 00000 n 0000371043 00000 n 0000371116 00000 n 0000371189 00000 n 0000371262 00000 n 0000371364 00000 n 0000371443 00000 n 0000371553 00000 n 0000371632 00000 n 0000371742 00000 n 0000371821 00000 n 0000371931 00000 n 0000372010 00000 n 0000372120 00000 n 0000372193 00000 n 0000372265 00000 n 0000372313 00000 n 0000372390 00000 n 0000372462 00000 n 0000372535 00000 n 0000372911 00000 n 0000372983 00000 n 0000373055 00000 n 0000373127 00000 n 0000373199 00000 n 0000373271 00000 n 0000373343 00000 n 0000373415 00000 n 0000373487 00000 n 0000373559 00000 n 0000373632 00000 n 0000373705 00000 n 0000373778 00000 n 0000373851 00000 n 0000373924 00000 n 0000373997 00000 n 0000374070 00000 n 0000374143 00000 n 0000374216 00000 n 0000374289 00000 n 0000374362 00000 n 0000374435 00000 n 0000374508 00000 n 0000374581 00000 n 0000374654 00000 n 0000374727 00000 n 0000374800 00000 n 0000374873 00000 n 0000374946 00000 n 0000375019 00000 n 0000375092 00000 n 0000375165 00000 n 0000375238 00000 n 0000375311 00000 n 0000375384 00000 n 0000375457 00000 n 0000375530 00000 n 0000375603 00000 n 0000375676 00000 n 0000375749 00000 n 0000375822 00000 n 0000375895 00000 n 0000375968 00000 n 0000376041 00000 n 0000376496 00000 n 0000403753 00000 n 0000405300 00000 n 0000405715 00000 n 0000405819 00000 n 0000406177 00000 n 0000406371 00000 n 0000420931 00000 n 0000422478 00000 n 0000422810 00000 n 0000443807 00000 n 0000445354 00000 n 0000445809 00000 n 0000493133 00000 n 0000494680 00000 n 0000495160 00000 n 0000495265 00000 n 0000495649 00000 n 0000495953 00000 n 0000509493 00000 n 0000511040 00000 n 0000511073 00000 n 0000511163 00000 n 0000511419 00000 n 0000527636 00000 n 0000529183 00000 n 0000529486 00000 n 0000606863 00000 n 0000608410 00000 n 0000608454 00000 n 0000608544 00000 n 0000608572 00000 n 0000649556 00000 n 0000651103 00000 n 0000651333 00000 n 0000683473 00000 n 0000685020 00000 n 0000687694 00000 n trailer <<971E0EEDC8D2554187DC2B5B858A0931>] >> startxref 691011 %%EOFnfstrace-0.4.1/docs/template.cpp000066400000000000000000000044661261713114600166040ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Place for description of module. A template for source files. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include // include language headers in alphabetical order #include #include // then include libraries and platform headers in alphabetical order #include "template.h" // include headers of project modules in alphabetical order //------------------------------------------------------------------------------ // place for constants and macros const unsigned int SayHello::BAD_COFFEE = 0xBADC0FFE; //------------------------------------------------------------------------------ namespace hello { SayHello::SayHello() : text{"Hello, World!"}, value{0} { } SayHello::~SayHello() { } void SayHello::set_value(std::uint32_t v) { value = v; } std::uint32_t SayHello::get_value() const { return value; } } // namespace hello int main(int argc, char** argv) { hello::SayHello hello; std::cout << hello.say() << std::endl; hello.set(42); assert(42 == hello.get()); // FizzBuzz for(std::size_t i=1; i<=100; i++) { if((i % 15) == 0) { std::cout << "FizzBuzz\n"; } else if(i % 3 == 0) std::cout << "Fizz\n"; else if(i % 5 == 0) std::cout << "Buzz\n"; else { std::cout << i << '\n'; } } return 0; } //------------------------------------------------------------------------------ nfstrace-0.4.1/docs/template.h000066400000000000000000000045611261713114600162450ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: A template for headers. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef TEMPLATE_H #define TEMPLATE_H //------------------------------------------------------------------------------ #include // include language headers in alphabetical order #include //------------------------------------------------------------------------------ #define MY_MIN(a,b) (((a) < (b)) ? (a) : (b)) //!< This is example of preprocessor usage //------------------------------------------------------------------------------ namespace hello { /*! \class Represents some entity */ class SayHello { public: SayHello();// May be uncommented ~SayHello();// May be uncommented SayHello(const SayHello&) = delete; SayHello& operator=(const SayHello&) = delete; /*! small functions may be implemented in-place * \return hello string */ inline const std::string& say() const { return text; } /*! Sets some value * \param v - new value */ void set_value(std::uint32_t v); /*! Returns value * \return value of sth */ std::uint32_t get_value() const; private: std::string text;//!< Hello phrase std::uint32_t value; //!< just a value for get/set methods static const unsigned int BAD_COFFEE;//!< Some constant }; } // namespace hello //------------------------------------------------------------------------------ #endif//TEMPLATE_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/000077500000000000000000000000001261713114600141125ustar00rootroot00000000000000nfstrace-0.4.1/src/analysis/000077500000000000000000000000001261713114600157355ustar00rootroot00000000000000nfstrace-0.4.1/src/analysis/analysis_manager.cpp000066400000000000000000000036171261713114600217650ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Manager for all instances created inside analysis module. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "analysis/analysis_manager.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { AnalysisManager::AnalysisManager(RunningStatus& status, const Parameters& params) : analysiss {nullptr} , queue {nullptr} , parser_thread{nullptr} { analysiss.reset(new Analyzers(params)); queue.reset(new FilteredDataQueue(params.queue_capacity(), 1)); Parsers parser(*analysiss); parser_thread.reset(new ParserThread(parser, *queue, status)); } void AnalysisManager::start() { parser_thread->start(); } void AnalysisManager::stop() { parser_thread->stop(); analysiss->flush_statistics(); } } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/analysis_manager.h000066400000000000000000000050411261713114600214230ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Manager for all instances created inside analysis module. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef ANALYSIS_MANAGER_H #define ANALYSIS_MANAGER_H //------------------------------------------------------------------------------ #include #include "analysis/analyzers.h" #include "analysis/parser_thread.h" #include "controller/parameters.h" #include "controller/running_status.h" #include "utils/filtered_data.h" #include "analysis/parsers.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { class AnalysisManager { using Parameters = NST::controller::Parameters; using RunningStatus = NST::controller::RunningStatus; using FilteredDataQueue = NST::utils::FilteredDataQueue; public: AnalysisManager(RunningStatus& status, const Parameters& params); AnalysisManager(const AnalysisManager&) = delete; AnalysisManager& operator=(const AnalysisManager&) = delete; ~AnalysisManager() = default; FilteredDataQueue& get_queue() { return *queue; } void start(); void stop(); inline void on_unix_signal(int signo) { analysiss->on_unix_signal(signo); } inline bool isSilent() { return analysiss->isSilent(); } private: std::unique_ptr analysiss; std::unique_ptr queue; std::unique_ptr> parser_thread; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//ANALYSIS_MANAGER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/analyzers.cpp000066400000000000000000000051041261713114600204510ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Storage for Analyzers, load plugins and processing // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "analysis/analyzers.h" #include "analysis/print_analyzer.h" #include "utils/out.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { Analyzers::Analyzers(const controller::Parameters& params) : _silent{false} { for(const auto& a : params.analysis_modules()) { utils::Out message; try // try to load plugin { message << "Loading module: '" << a.path << "' with args: [" << a.args << "]"; std::unique_ptr plugin{new PluginInstance{a.path, a.args}}; if(plugin->silent()) { if(!_silent) { _silent = true; } } else { if(_silent) { TRACE("Error in plugin %s loading. Already load module with silent option.", a.path.c_str()); continue; } } modules.emplace_back(plugin->instance()); plugins.emplace_back(std::move(plugin)); } catch(std::runtime_error& e) { message << " failed with: " << e.what(); } } if(params.trace()) // add special module for tracing RPC procedures { std::unique_ptr tracer{new PrintAnalyzer{std::cout}}; modules.emplace_back(tracer.get()); builtin.emplace_back(std::move(tracer)); } } } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/analyzers.h000066400000000000000000000070421261713114600201210ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Storage for Analyzers, load plugins and processing // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef ANALYZERS_H #define ANALYZERS_H //------------------------------------------------------------------------------ #include #include #include "analysis/plugin.h" #include "api/plugin_api.h" #include "controller/parameters.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { class Analyzers { using Storage = std::vector; using Plugins = std::vector< std::unique_ptr >; using BuiltIns= std::vector< std::unique_ptr >; public: Analyzers(const controller::Parameters& params); Analyzers(const Analyzers&) = delete; Analyzers& operator=(const Analyzers&) = delete; //! This function is used for passing ALL possible procedures to analyzers template < typename Handle, typename Procedure > inline void operator()(Handle handle, const Procedure& proc) { for(const auto a : modules) { (a->*handle)(&proc, proc.parg, proc.pres); } } //! This function is used for passing args- or res-only NFS4.x operations (ex. NFSv4 ILLEGAL) to analyzers template < typename Handle, typename ArgOrResType > inline void operator()(Handle handle, const RPCProcedure* rpc, ArgOrResType* arg_or_res) { for(const auto a : modules) { (a->*handle)(rpc, arg_or_res); } } //! This function is used for passing args + res NFS4.x operations (ex. NFSv4.x ACCESS) to analyzers template < typename Handle, typename ArgopType, typename ResopType > inline void operator()(Handle handle, const RPCProcedure* rpc, ArgopType* arg, ResopType* res) { for(const auto a : modules) { (a->*handle)(rpc, arg, res); } } inline void flush_statistics() { for(const auto a : modules) { a->flush_statistics(); } } inline void on_unix_signal(int signo) { for(const auto a : modules) { a->on_unix_signal(signo); } } inline bool isSilent() { return _silent; } private: Storage modules; // pointers to all modules (plugins and builtins) Plugins plugins; BuiltIns builtin; bool _silent; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//ANALYZERS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/cifs_parser.cpp000066400000000000000000000520231261713114600207430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Parser of filtrated CIFS Procedures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "analysis/cifs_parser.h" #include "api/cifs_types.h" #include "utils/log.h" //------------------------------------------------------------------------------ using namespace NST::protocols; using namespace NST::analysis; CIFSParser::CIFSParser(Analyzers& a) : analyzers(a) { } bool CIFSParser::parse_data(FilteredDataQueue::Ptr& data) { if (const CIFSv1::MessageHeader* header = CIFSv1::get_header(data->data)) { parse_packet(header, std::move(data)); return true; } else if (const CIFSv2::MessageHeader* header = CIFSv2::get_header(data->data)) { parse_packet(header, std::move(data)); return true; } else { LOG("Got non-CIFS message!"); } return false; } void CIFSParser::parse_packet(const CIFSv1::MessageHeader* header, NST::utils::FilteredDataQueue::Ptr&& ptr) { using namespace NST::API::SMBv1; using namespace NST::protocols::CIFSv1; if (header->isFlag(Flags::REPLY)) { // It is response if (Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::REPLY)) { FilteredDataQueue::Ptr&& requestData = session->get_call_data(header->sec.sequenceNumber); if (requestData) { if (const MessageHeader* request = get_header(requestData->data)) { return analyse_operation(session, request, header, std::move(requestData), std::move(ptr)); } LOG("Can't find request for response"); } LOG("Can't find request's raw data for response"); } } else { // It is request if (Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::CALL)) { return session->save_call_data(header->sec.sequenceNumber, std::move(ptr)); } LOG("Can't get right CIFS session"); } } void CIFSParser::parse_packet(const CIFSv2::MessageHeader* header, utils::FilteredDataQueue::Ptr&& ptr) { using namespace NST::API::SMBv2; using namespace NST::protocols::CIFSv2; if (header->isFlag(Flags::SERVER_TO_REDIR)) { // It is response if (Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::REPLY)) { FilteredDataQueue::Ptr&& requestData = session->get_call_data(header->messageId); if (requestData) { if (const MessageHeader* request = get_header(requestData->data)) { return analyse_operation(session, request, header, std::move(requestData), std::move(ptr)); } LOG("Can't find request for response"); } LOG("Can't find request's raw data for response"); } } else { // It is request if (Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::CALL)) { // It is async request if (header->isFlag(Flags::ASYNC_COMMAND)) { return analyse_operation(session, header, nullptr, std::move(ptr), std::move(nullptr)); } return session->save_call_data(header->messageId, std::move(ptr)); } LOG("Can't get right CIFS session"); } } void CIFSParser::analyse_operation(Session* session, const CIFSv1::MessageHeader* request, const CIFSv1::MessageHeader* /*response*/, NST::utils::FilteredDataQueue::Ptr&& requestData, NST::utils::FilteredDataQueue::Ptr&& responseData) { using namespace NST::API::SMBv1; using namespace NST::protocols::CIFSv1; //FIXME: code smells. Too much code switch (request->cmd_code) { case Commands::CREATE_DIRECTORY: return analyzers(&IAnalyzer::ISMBv1::createDirectorySMBv1, command(requestData, responseData, session)); case Commands::DELETE_DIRECTORY: return analyzers(&IAnalyzer::ISMBv1::deleteDirectorySMBv1, command(requestData, responseData, session)); case Commands::OPEN: return analyzers(&IAnalyzer::ISMBv1::openSMBv1, command(requestData, responseData, session)); case Commands::CREATE: return analyzers(&IAnalyzer::ISMBv1::createSMBv1, command(requestData, responseData, session)); case Commands::CLOSE: return analyzers(&IAnalyzer::ISMBv1::closeSMBv1, command(requestData, responseData, session)); case Commands::FLUSH: return analyzers(&IAnalyzer::ISMBv1::flushSMBv1, command(requestData, responseData, session)); case Commands::DELETE: return analyzers(&IAnalyzer::ISMBv1::deleteSMBv1, command(requestData, responseData, session)); case Commands::RENAME: return analyzers(&IAnalyzer::ISMBv1::renameSMBv1, command(requestData, responseData, session)); case Commands::QUERY_INFORMATION: return analyzers(&IAnalyzer::ISMBv1::queryInfoSMBv1, command(requestData, responseData, session)); case Commands::SET_INFORMATION: return analyzers(&IAnalyzer::ISMBv1::setInfoSMBv1, command(requestData, responseData, session)); case Commands::READ: return analyzers(&IAnalyzer::ISMBv1::readSMBv1, command(requestData, responseData, session)); case Commands::WRITE: return analyzers(&IAnalyzer::ISMBv1::writeSMBv1, command(requestData, responseData, session)); case Commands::LOCK_BYTE_RANGE: return analyzers(&IAnalyzer::ISMBv1::lockByteRangeSMBv1, command(requestData, responseData, session)); case Commands::UNLOCK_BYTE_RANGE: return analyzers(&IAnalyzer::ISMBv1::unlockByteRangeSMBv1, command(requestData, responseData, session)); case Commands::CREATE_TEMPORARY: return analyzers(&IAnalyzer::ISMBv1::createTmpSMBv1, command(requestData, responseData, session)); case Commands::CREATE_NEW: return analyzers(&IAnalyzer::ISMBv1::createNewSMBv1, command(requestData, responseData, session)); case Commands::CHECK_DIRECTORY: return analyzers(&IAnalyzer::ISMBv1::checkDirectorySMBv1, command(requestData, responseData, session)); case Commands::PROCESS_EXIT: return analyzers(&IAnalyzer::ISMBv1::processExitSMBv1, command(requestData, responseData, session)); case Commands::SEEK: return analyzers(&IAnalyzer::ISMBv1::seekSMBv1, command(requestData, responseData, session)); case Commands::LOCK_AND_READ: return analyzers(&IAnalyzer::ISMBv1::lockAndReadSMBv1, command(requestData, responseData, session)); case Commands::WRITE_AND_UNLOCK: return analyzers(&IAnalyzer::ISMBv1::writeAndUnlockSMBv1, command(requestData, responseData, session)); case Commands::READ_RAW: return analyzers(&IAnalyzer::ISMBv1::readRawSMBv1, command(requestData, responseData, session)); case Commands::READ_MPX: return analyzers(&IAnalyzer::ISMBv1::readMpxSMBv1, command(requestData, responseData, session)); case Commands::READ_MPX_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::readMpxSecondarySMBv1, command(requestData, responseData, session)); case Commands::WRITE_RAW: return analyzers(&IAnalyzer::ISMBv1::writeRawSMBv1, command(requestData, responseData, session)); case Commands::WRITE_MPX: return analyzers(&IAnalyzer::ISMBv1::writeMpxSMBv1, command(requestData, responseData, session)); case Commands::WRITE_MPX_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::writeMpxSecondarySMBv1, command(requestData, responseData, session)); case Commands::WRITE_COMPLETE: return analyzers(&IAnalyzer::ISMBv1::writeCompleteSMBv1, command(requestData, responseData, session)); case Commands::QUERY_SERVER: return analyzers(&IAnalyzer::ISMBv1::queryServerSMBv1, command(requestData, responseData, session)); case Commands::SET_INFORMATION2: return analyzers(&IAnalyzer::ISMBv1::setInfo2SMBv1, command(requestData, responseData, session)); case Commands::QUERY_INFORMATION2: return analyzers(&IAnalyzer::ISMBv1::queryInfo2SMBv1, command(requestData, responseData, session)); case Commands::LOCKING_ANDX: return analyzers(&IAnalyzer::ISMBv1::lockingAndxSMBv1, command(requestData, responseData, session)); case Commands::TRANSACTION: return analyzers(&IAnalyzer::ISMBv1::transactionSMBv1, command(requestData, responseData, session)); case Commands::TRANSACTION_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::transactionSecondarySMBv1, command(requestData, responseData, session)); case Commands::IOCTL: return analyzers(&IAnalyzer::ISMBv1::ioctlSMBv1, command(requestData, responseData, session)); case Commands::IOCTL_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::ioctlSecondarySMBv1, command(requestData, responseData, session)); case Commands::COPY: return analyzers(&IAnalyzer::ISMBv1::copySMBv1, command(requestData, responseData, session)); case Commands::MOVE: return analyzers(&IAnalyzer::ISMBv1::moveSMBv1, command(requestData, responseData, session)); case Commands::ECHO: return analyzers(&IAnalyzer::ISMBv1::echoSMBv1, command(requestData, responseData, session)); case Commands::WRITE_AND_CLOSE: return analyzers(&IAnalyzer::ISMBv1::writeAndCloseSMBv1, command(requestData, responseData, session)); case Commands::OPEN_ANDX: return analyzers(&IAnalyzer::ISMBv1::openAndxSMBv1, command(requestData, responseData, session)); case Commands::READ_ANDX: return analyzers(&IAnalyzer::ISMBv1::readAndxSMBv1, command(requestData, responseData, session)); case Commands::WRITE_ANDX: return analyzers(&IAnalyzer::ISMBv1::writeAndxSMBv1, command(requestData, responseData, session)); case Commands::NEW_FILE_SIZE: return analyzers(&IAnalyzer::ISMBv1::newFileSizeSMBv1, command(requestData, responseData, session)); case Commands::CLOSE_AND_TREE_DISC: return analyzers(&IAnalyzer::ISMBv1::closeAndTreeDiscSMBv1, command(requestData, responseData, session)); case Commands::TRANSACTION2: return analyzers(&IAnalyzer::ISMBv1::transaction2SMBv1, command(requestData, responseData, session)); case Commands::TRANSACTION2_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::transaction2SecondarySMBv1, command(requestData, responseData, session)); case Commands::FIND_CLOSE2: return analyzers(&IAnalyzer::ISMBv1::findClose2SMBv1, command(requestData, responseData, session)); case Commands::FIND_NOTIFY_CLOSE: return analyzers(&IAnalyzer::ISMBv1::findNotifyCloseSMBv1, command(requestData, responseData, session)); case Commands::TREE_CONNECT: return analyzers(&IAnalyzer::ISMBv1::treeConnectSMBv1, command(requestData, responseData, session)); case Commands::TREE_DISCONNECT: return analyzers(&IAnalyzer::ISMBv1::treeDisconnectSMBv1, command(requestData, responseData, session)); case Commands::NEGOTIATE: return analyzers(&IAnalyzer::ISMBv1::negotiateSMBv1, command(requestData, responseData, session)); case Commands::SESSION_SETUP_ANDX: return analyzers(&IAnalyzer::ISMBv1::sessionSetupAndxSMBv1, command(requestData, responseData, session)); case Commands::LOGOFF_ANDX: return analyzers(&IAnalyzer::ISMBv1::logoffAndxSMBv1, command(requestData, responseData, session)); case Commands::TREE_CONNECT_ANDX: return analyzers(&IAnalyzer::ISMBv1::treeConnectAndxSMBv1, command(requestData, responseData, session)); case Commands::SECURITY_PACKAGE_ANDX: return analyzers(&IAnalyzer::ISMBv1::securityPackageAndxSMBv1, command(requestData, responseData, session)); case Commands::QUERY_INFORMATION_DISK: return analyzers(&IAnalyzer::ISMBv1::queryInformationDiskSMBv1, command(requestData, responseData, session)); case Commands::SEARCH: return analyzers(&IAnalyzer::ISMBv1::searchSMBv1, command(requestData, responseData, session)); case Commands::FIND: return analyzers(&IAnalyzer::ISMBv1::findSMBv1, command(requestData, responseData, session)); case Commands::FIND_UNIQUE: return analyzers(&IAnalyzer::ISMBv1::findUniqueSMBv1, command(requestData, responseData, session)); case Commands::FIND_CLOSE: return analyzers(&IAnalyzer::ISMBv1::findCloseSMBv1, command(requestData, responseData, session)); case Commands::NT_TRANSACT: return analyzers(&IAnalyzer::ISMBv1::ntTransactSMBv1, command(requestData, responseData, session)); case Commands::NT_TRANSACT_SECONDARY: return analyzers(&IAnalyzer::ISMBv1::ntTransactSecondarySMBv1, command(requestData, responseData, session)); case Commands::NT_CREATE_ANDX: return analyzers(&IAnalyzer::ISMBv1::ntCreateAndxSMBv1, command(requestData, responseData, session)); case Commands::NT_CANCEL: return analyzers(&IAnalyzer::ISMBv1::ntCancelSMBv1, command(requestData, responseData, session)); case Commands::NT_RENAME: return analyzers(&IAnalyzer::ISMBv1::ntRenameSMBv1, command(requestData, responseData, session)); case Commands::OPEN_PRINT_FILE: return analyzers(&IAnalyzer::ISMBv1::openPrintFileSMBv1, command(requestData, responseData, session)); case Commands::WRITE_PRINT_FILE: return analyzers(&IAnalyzer::ISMBv1::writePrintFileSMBv1, command(requestData, responseData, session)); case Commands::CLOSE_PRINT_FILE: return analyzers(&IAnalyzer::ISMBv1::closePrintFileSMBv1, command(requestData, responseData, session)); case Commands::GET_PRINT_QUEUE: return analyzers(&IAnalyzer::ISMBv1::getPrintQueueSMBv1, command(requestData, responseData, session)); case Commands::READ_BULK: return analyzers(&IAnalyzer::ISMBv1::readBulkSMBv1, command(requestData, responseData, session)); case Commands::WRITE_BULK: return analyzers(&IAnalyzer::ISMBv1::writeBulkSMBv1, command(requestData, responseData, session)); case Commands::WRITE_BULK_DATA: return analyzers(&IAnalyzer::ISMBv1::writeBulkDataSMBv1, command(requestData, responseData, session)); case Commands::INVALID: return analyzers(&IAnalyzer::ISMBv1::invalidSMBv1, command(requestData, responseData, session)); case Commands::NO_ANDX_COMMAND: return analyzers(&IAnalyzer::ISMBv1::noAndxCommandSMBv1, command(requestData, responseData, session)); default: LOG("Usupported command"); } } void CIFSParser::analyse_operation(Session* session, const CIFSv2::MessageHeader* request, const CIFSv2::MessageHeader* /*response*/, NST::utils::FilteredDataQueue::Ptr&& requestData, NST::utils::FilteredDataQueue::Ptr&& responseData) { using namespace NST::API::SMBv2; using namespace NST::protocols::CIFSv2; switch (request->cmd_code) { case SMBv2Commands::CLOSE: return analyzers(&IAnalyzer::ISMBv2::closeFileSMBv2, command(requestData, responseData, session)); case SMBv2Commands::NEGOTIATE: return analyzers(&IAnalyzer::ISMBv2::negotiateSMBv2, command(requestData, responseData, session)); case SMBv2Commands::SESSION_SETUP: return analyzers(&IAnalyzer::ISMBv2::sessionSetupSMBv2, command(requestData, responseData, session)); case SMBv2Commands::LOGOFF: return analyzers(&IAnalyzer::ISMBv2::logOffSMBv2, command(requestData, responseData, session)); case SMBv2Commands::TREE_CONNECT: return analyzers(&IAnalyzer::ISMBv2::treeConnectSMBv2, command(requestData, responseData, session)); case SMBv2Commands::TREE_DISCONNECT: return analyzers(&IAnalyzer::ISMBv2::treeDisconnectSMBv2, command(requestData, responseData, session)); case SMBv2Commands::CREATE: return analyzers(&IAnalyzer::ISMBv2::createSMBv2, command(requestData, responseData, session)); case SMBv2Commands::FLUSH: return analyzers(&IAnalyzer::ISMBv2::flushSMBv2, command(requestData, responseData, session)); case SMBv2Commands::READ: return analyzers(&IAnalyzer::ISMBv2::readSMBv2, command(requestData, responseData, session)); case SMBv2Commands::WRITE: return analyzers(&IAnalyzer::ISMBv2::writeSMBv2, command(requestData, responseData, session)); case SMBv2Commands::LOCK: return analyzers(&IAnalyzer::ISMBv2::lockSMBv2, command(requestData, responseData, session)); case SMBv2Commands::IOCTL: return analyzers(&IAnalyzer::ISMBv2::ioctlSMBv2, command(requestData, responseData, session)); case SMBv2Commands::CANCEL: return analyzers(&IAnalyzer::ISMBv2::cancelSMBv2, command(requestData, responseData, session)); case SMBv2Commands::ECHO: return analyzers(&IAnalyzer::ISMBv2::echoSMBv2, command(requestData, responseData, session)); case SMBv2Commands::QUERY_DIRECTORY: return analyzers(&IAnalyzer::ISMBv2::queryDirSMBv2, command(requestData, responseData, session)); case SMBv2Commands::CHANGE_NOTIFY: return analyzers(&IAnalyzer::ISMBv2::changeNotifySMBv2, command(requestData, responseData, session)); case SMBv2Commands::QUERY_INFO: return analyzers(&IAnalyzer::ISMBv2::queryInfoSMBv2, command(requestData, responseData, session)); case SMBv2Commands::SET_INFO: return analyzers(&IAnalyzer::ISMBv2::setInfoSMBv2, command(requestData, responseData, session)); case SMBv2Commands::OPLOCK_BREAK: return analyzers(&IAnalyzer::ISMBv2::breakOplockSMBv2, command(requestData, responseData, session)); default: LOG("Usupported command"); } } nfstrace-0.4.1/src/analysis/cifs_parser.h000066400000000000000000000074651261713114600204220ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Parser of filtrated CIFS Procedures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFS_PARSER_H #define CIFS_PARSER_H //------------------------------------------------------------------------------ #include "analysis/analyzers.h" #include "protocols/cifs/cifs.h" #include "protocols/cifs2/cifs2.h" #include "rpc_sessions.h" #include "utils/filtered_data.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { /*! \class It is class which can parse CIFS messages and it called by ParserThread */ class CIFSParser { using FilteredDataQueue = NST::utils::FilteredDataQueue;//!< Packets queue Analyzers& analyzers;//!< Plugins manager Sessions sessions;//!< Sessions list /*! Parses SMBv1 packet * \param header - Message's header * \param ptr - raw packet */ inline void parse_packet(const protocols::CIFSv1::MessageHeader* header, FilteredDataQueue::Ptr&& ptr); /*! analyses CIFS v1 operation: request and response * \param session - session * \param request - Call's header * \param response - Reply's header * \param requestData - Call's data * \param responseData - Reply's data */ inline void analyse_operation(Session* session, const protocols::CIFSv1::MessageHeader* request, const protocols::CIFSv1::MessageHeader* response, FilteredDataQueue::Ptr&& requestData, FilteredDataQueue::Ptr&& responseData); /*! Parses SMB v2 packet * \param header - Message's header * \param ptr - raw packet */ inline void parse_packet(const protocols::CIFSv2::MessageHeader* header, NST::utils::FilteredDataQueue::Ptr&& ptr); /*! analyses CIFS v2 operation: request and response * \param session - session * \param request - Call's header * \param response - Reply's header * \param requestData - Call's data * \param responseData - Reply's data */ inline void analyse_operation(Session* session, const protocols::CIFSv2::MessageHeader* request, const protocols::CIFSv2::MessageHeader* response, FilteredDataQueue::Ptr&& requestData, FilteredDataQueue::Ptr&& responseData); public: CIFSParser(Analyzers& a); CIFSParser(CIFSParser& c) : analyzers(c.analyzers) {} /*! Function which will be called by ParserThread class * \param data - raw packet * \return True, if it is CIFS packet and False in other case */ bool parse_data(FilteredDataQueue::Ptr& data); }; } // analysis } // NST //------------------------------------------------------------------------------ #endif//CIFS_PARSER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/nfs_parser.cpp000066400000000000000000001102201261713114600205770ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Parser of filtrated NFSv3 Procedures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "analysis/nfs_parser.h" #include "protocols/nfs/nfs_procedure.h" #include "protocols/rpc/rpc_header.h" #include "protocols/xdr/xdr_decoder.h" #include "utils/log.h" //------------------------------------------------------------------------------ using namespace NST::protocols::xdr; //------------------------------------------------------------------------------ namespace NST { namespace analysis { bool NFSParser::parse_data(FilteredDataQueue::Ptr& ptr) { using namespace NST::protocols::rpc; // TODO: refactor and generalize this code if (ptr->dlen < sizeof(MessageHeader)) { return false; } auto msg = reinterpret_cast(ptr->data); switch (msg->type()) { case MsgType::CALL: { if (ptr->dlen < sizeof(CallHeader)) { return false; } auto call = static_cast(msg); if (RPCValidator::check(call) && (protocols::NFS4::Validator::check(call) || protocols::NFS3::Validator::check(call))) { Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::CALL); if (session) { session->save_call_data(call->xid(), std::move(ptr)); } return true; } } break; case MsgType::REPLY: { if (ptr->dlen < sizeof(ReplyHeader)) { return false; } auto reply = static_cast(msg); if (!RPCValidator::check(reply)) { return false; } Session* session = sessions.get_session(ptr->session, ptr->direction, MsgType::REPLY); if (session) { FilteredDataQueue::Ptr&& call_data = session->get_call_data(reply->xid()); if (call_data) { analyze_nfs_procedure(std::move(call_data), std::move(ptr), session); } return true; } } } return false; } // ---------------------------------------------------------------------------- // Forward declarations of internal functions used inside analyze_nfs_procedure // They're supposed to be used inside analyze_nfs_procedure only // ---------------------------------------------------------------------------- static uint32_t get_nfs4_compound_minor_version(const uint32_t procedure, const std::uint8_t* rpc_nfs4_call); using NFS40CompoundType = NST::protocols::NFS4::NFSPROC4RPCGEN_COMPOUND; using NFS41CompoundType = NST::protocols::NFS41::NFSPROC41RPCGEN_COMPOUND; template < typename ArgOpType, typename ResOpType, typename NFS4CompoundType > void analyze_nfs4_operations(Analyzers& analyzers, NFS4CompoundType& nfs4_compound_procedure); inline void analyze_nfs40_operations(Analyzers& analyzers, NFS40CompoundType& nfs40_compound_procedure) { analyze_nfs4_operations < NST::API::NFS4::nfs_argop4, NST::API::NFS4::nfs_resop4, NFS40CompoundType > (analyzers, nfs40_compound_procedure); } inline void analyze_nfs41_operations(Analyzers& analyzers, NFS41CompoundType& nfs41_compound_procedure) { analyze_nfs4_operations < NST::API::NFS41::nfs_argop4, NST::API::NFS41::nfs_resop4, NFS41CompoundType > (analyzers, nfs41_compound_procedure); } void nfs4_ops_switch(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const NST::API::NFS4::nfs_argop4* arg, const NST::API::NFS4::nfs_resop4* res); void nfs4_ops_switch(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const NST::API::NFS41::nfs_argop4* arg, const NST::API::NFS41::nfs_resop4* res); // ---------------------------------------------------------------------------- static inline void analyze_nfsv3_procedure(const uint32_t procedure, XDRDecoder&& c, XDRDecoder&& r, const Session* s, Analyzers& analyzers) { using namespace NST::protocols::NFS3; switch (procedure) { case ProcEnumNFS3::NFS_NULL: analyzers(&IAnalyzer::INFSv3rpcgen::null, NFSPROC3RPCGEN_NULL {c, r, s}); break; case ProcEnumNFS3::GETATTR: analyzers(&IAnalyzer::INFSv3rpcgen::getattr3, NFSPROC3RPCGEN_GETATTR {c, r, s}); break; case ProcEnumNFS3::SETATTR: analyzers(&IAnalyzer::INFSv3rpcgen::setattr3, NFSPROC3RPCGEN_SETATTR {c, r, s}); break; case ProcEnumNFS3::LOOKUP: analyzers(&IAnalyzer::INFSv3rpcgen::lookup3, NFSPROC3RPCGEN_LOOKUP {c, r, s}); break; case ProcEnumNFS3::ACCESS: analyzers(&IAnalyzer::INFSv3rpcgen::access3, NFSPROC3RPCGEN_ACCESS {c, r, s}); break; case ProcEnumNFS3::READLINK: analyzers(&IAnalyzer::INFSv3rpcgen::readlink3, NFSPROC3RPCGEN_READLINK {c, r, s}); break; case ProcEnumNFS3::READ: analyzers(&IAnalyzer::INFSv3rpcgen::read3, NFSPROC3RPCGEN_READ {c, r, s}); break; case ProcEnumNFS3::WRITE: analyzers(&IAnalyzer::INFSv3rpcgen::write3, NFSPROC3RPCGEN_WRITE {c, r, s}); break; case ProcEnumNFS3::CREATE: analyzers(&IAnalyzer::INFSv3rpcgen::create3, NFSPROC3RPCGEN_CREATE {c, r, s}); break; case ProcEnumNFS3::MKDIR: analyzers(&IAnalyzer::INFSv3rpcgen::mkdir3, NFSPROC3RPCGEN_MKDIR {c, r, s}); break; case ProcEnumNFS3::SYMLINK: analyzers(&IAnalyzer::INFSv3rpcgen::symlink3, NFSPROC3RPCGEN_SYMLINK {c, r, s}); break; case ProcEnumNFS3::MKNOD: analyzers(&IAnalyzer::INFSv3rpcgen::mknod3, NFSPROC3RPCGEN_MKNOD {c, r, s}); break; case ProcEnumNFS3::REMOVE: analyzers(&IAnalyzer::INFSv3rpcgen::remove3, NFSPROC3RPCGEN_REMOVE {c, r, s}); break; case ProcEnumNFS3::RMDIR: analyzers(&IAnalyzer::INFSv3rpcgen::rmdir3, NFSPROC3RPCGEN_RMDIR {c, r, s}); break; case ProcEnumNFS3::RENAME: analyzers(&IAnalyzer::INFSv3rpcgen::rename3, NFSPROC3RPCGEN_RENAME {c, r, s}); break; case ProcEnumNFS3::LINK: analyzers(&IAnalyzer::INFSv3rpcgen::link3, NFSPROC3RPCGEN_LINK {c, r, s}); break; case ProcEnumNFS3::READDIR: analyzers(&IAnalyzer::INFSv3rpcgen::readdir3, NFSPROC3RPCGEN_READDIR {c, r, s}); break; case ProcEnumNFS3::READDIRPLUS: analyzers(&IAnalyzer::INFSv3rpcgen::readdirplus3, NFSPROC3RPCGEN_READDIRPLUS {c, r, s}); break; case ProcEnumNFS3::FSSTAT: analyzers(&IAnalyzer::INFSv3rpcgen::fsstat3, NFSPROC3RPCGEN_FSSTAT {c, r, s}); break; case ProcEnumNFS3::FSINFO: analyzers(&IAnalyzer::INFSv3rpcgen::fsinfo3, NFSPROC3RPCGEN_FSINFO {c, r, s}); break; case ProcEnumNFS3::PATHCONF: analyzers(&IAnalyzer::INFSv3rpcgen::pathconf3, NFSPROC3RPCGEN_PATHCONF {c, r, s}); break; case ProcEnumNFS3::COMMIT: analyzers(&IAnalyzer::INFSv3rpcgen::commit3, NFSPROC3RPCGEN_COMMIT {c, r, s}); break; } } static inline void analyze_nfsv4_procedure(const uint32_t procedure, XDRDecoder&& c, XDRDecoder&& r, const Session* s, Analyzers& analyzers) { using namespace NST::protocols::NFS4; using namespace NST::protocols::NFS41; switch (get_nfs4_compound_minor_version(procedure, c.data().data)) { case NFS_V40: switch (procedure) { case ProcEnumNFS4::NFS_NULL: analyzers(&IAnalyzer::INFSv4rpcgen::null4, NFSPROC4RPCGEN_NULL { c, r, s }); break; case ProcEnumNFS4::COMPOUND: NFSPROC4RPCGEN_COMPOUND compound { c, r, s }; analyzers(&IAnalyzer::INFSv4rpcgen::compound4, compound); analyze_nfs40_operations(analyzers, compound); break; } break; case NFS_V41: if (ProcEnumNFS41::COMPOUND == procedure) { NFSPROC41RPCGEN_COMPOUND compound { c, r, s }; analyzers(&IAnalyzer::INFSv41rpcgen::compound41, compound); analyze_nfs41_operations(analyzers, compound); } break; } } void NFSParser::analyze_nfs_procedure( FilteredDataQueue::Ptr&& call, FilteredDataQueue::Ptr&& reply, Session* session) { using namespace NST::protocols::rpc; auto header = reinterpret_cast(call->data); const uint32_t major_version {header->vers()}; const uint32_t procedure {header->proc()}; try { const Session* s { session->get_session() }; switch (major_version) { case NFS_V4: analyze_nfsv4_procedure(procedure, std::move(call), std::move(reply), s, this->analyzers); break; case NFS_V3: analyze_nfsv3_procedure(procedure, std::move(call), std::move(reply), s, this->analyzers); break; } } catch (XDRDecoderError& e) { const char* procedure_name {"Unknown procedure"}; switch (major_version) { case NFS_V4: procedure_name = print_nfs4_procedures(static_cast(procedure)); break; case NFS_V3: procedure_name = print_nfs3_procedures(static_cast(procedure)); break; } LOG("Some data of NFS operation %s %s(%u) was not parsed: %s", session->str().c_str(), procedure_name, procedure, e.what()); } } //! Get NFSv4.x minor version /*! This is a fast method. It doesn't call expensive XDR's mechanisms & * doesn't create new objects. It simply moves pointer to a proper * place. * * According to NFSv4.0 & 4.1 RFC's it's possible to determine * minor version ONLY in call COMPOUND(1) procedure. * That's why only call can be passed here. */ static uint32_t get_nfs4_compound_minor_version(const uint32_t procedure, const std::uint8_t* rpc_nfs4_call) { if (ProcEnumNFS4::COMPOUND != procedure) { return 0; } // get initial data auto* it = rpc_nfs4_call; // move to rpc's credentials length it += (sizeof(protocols::rpc::CallHeader) + sizeof(uint32_t)); size_t rpc_cred_length = ntohl(*(uint32_t*)it); // skip credentials & move to rpc's verifier length it += (rpc_cred_length * sizeof(uint8_t) + sizeof(uint32_t)); size_t rpc_verf_length = ntohl(*(uint32_t*)it); // skip verifier & move to nfsv4's tag length it += (rpc_verf_length * sizeof(uint8_t) + sizeof(uint32_t)); size_t rpc_tag_length = ntohl(*(uint32_t*)it); // skip tag & move to nfsv4's minor version it += (rpc_tag_length * sizeof(uint8_t) + 2 * sizeof(uint32_t)); return ntohl(*(uint32_t*)it); } //! Common internal function for parsing NFSv4.x's COMPOUND procedure //! It's supposed to be used inside analyze_nfs_procedure only template < typename ArgOpType, // Type of arguments(call part of nfs's procedure) typename ResOpType, // Type of results(reply part of nfs's procedure) typename NFS4CompoundType // Type of NFSv4.x COMPOUND procedure. Can be 4.0 or 4.1 > void analyze_nfs4_operations(Analyzers& analyzers, NFS4CompoundType& nfs4_compound_procedure) { ArgOpType* arg {nullptr}; ResOpType* res {nullptr}; uint32_t arg_ops_count {0}; // Amount of NFS operations (call part) uint32_t res_ops_count {0}; // Amount of NFS operations (reply part) uint32_t total_ops_count {0}; if (nfs4_compound_procedure.parg) // Checking if COMPOUND procedure has valid arg { arg_ops_count = nfs4_compound_procedure.parg->argarray.argarray_len; arg = nfs4_compound_procedure.parg->argarray.argarray_val; } if (nfs4_compound_procedure.pres) // Checking if COMPOUND procedure has valid res { res_ops_count = nfs4_compound_procedure.pres->resarray.resarray_len; res = nfs4_compound_procedure.pres->resarray.resarray_val; } // Determing which part of COMPOUND has the biggest amount of operations. total_ops_count = arg_ops_count > res_ops_count ? arg_ops_count : res_ops_count; // Traversing through ALL COMPOUND procedure's operations for (uint32_t i {0}; i < total_ops_count; i++) { if ((arg && res) && (arg->argop != res->resop)) { // Passing each operation to analyzers using the helper's function nfs4_ops_switch(analyzers, &nfs4_compound_procedure, arg, nullptr); nfs4_ops_switch(analyzers, &nfs4_compound_procedure, nullptr, res); } else { nfs4_ops_switch(analyzers, &nfs4_compound_procedure, arg, res); } if (arg && i < (arg_ops_count - 1)) { arg++; } else { arg = nullptr; } if (res && i < (res_ops_count - 1)) { res++; } else { res = nullptr; } } } //! Internal function for proper passing NFSv4.x's arg + res operations to analyzers //! It's supposed to be used inside nfs4_ops_switch only template < typename nfs_argop4_t, typename nfs_resop4_t, typename IAnalyzer_func_t, typename nfs_argop_member_t, typename nfs_resop_member_t > inline void analyze(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const nfs_argop4_t* arg, const nfs_resop4_t* res, IAnalyzer_func_t&& IAnalyzer_function, nfs_argop_member_t arg_operation, nfs_resop_member_t res_operation) { analyzers(IAnalyzer_function, rpc_procedure, arg == nullptr ? nullptr : & (arg->nfs_argop4_u.*arg_operation), res == nullptr ? nullptr : & (res->nfs_resop4_u.*res_operation)); } //! Internal function for proper passing NFSv4.x's res-only operations to analyzers //! It's supposed to be used inside nfs4_ops_switch only template < typename nfs_resop4_t, typename IAnalyzer_func_t, typename nfs_resop_member_t > inline void analyze(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const nfs_resop4_t* res, IAnalyzer_func_t&& IAnalyzer_function, nfs_resop_member_t res_operation) { analyzers(IAnalyzer_function, rpc_procedure, res == nullptr ? nullptr : & (res->nfs_resop4_u.*res_operation)); } //! Internal function for proper passing NFSv4.0's operations to analyzers //! It's supposed to be used inside analyze_nfs4_operations only void nfs4_ops_switch(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const NST::API::NFS4::nfs_argop4* arg, const NST::API::NFS4::nfs_resop4* res) { using INFSv40 = NST::API::IAnalyzer::INFSv4rpcgen; using arg_t = NST::API::NFS4::nfs_argop4_u_t; using res_t = NST::API::NFS4::nfs_resop4_u_t; uint32_t nfs_op_num = arg ? arg->argop : res->resop; switch (nfs_op_num) { case ProcEnumNFS4::ACCESS: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::access40, &arg_t::opaccess, &res_t::opaccess); break; case ProcEnumNFS4::CLOSE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::close40, &arg_t::opclose, &res_t::opclose); break; case ProcEnumNFS4::COMMIT: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::commit40, &arg_t::opcommit, &res_t::opcommit); break; case ProcEnumNFS4::CREATE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::create40, &arg_t::opcreate, &res_t::opcreate); break; case ProcEnumNFS4::DELEGPURGE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::delegpurge40, &arg_t::opdelegpurge, &res_t::opdelegpurge); break; case ProcEnumNFS4::DELEGRETURN: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::delegreturn40, &arg_t::opdelegreturn, &res_t::opdelegreturn); break; case ProcEnumNFS4::GETATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::getattr40, &arg_t::opgetattr, &res_t::opgetattr); break; case ProcEnumNFS4::GETFH: analyze(analyzers, rpc_procedure, res, &INFSv40::getfh40, &res_t::opgetfh); break; case ProcEnumNFS4::LINK: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::link40, &arg_t::oplink, &res_t::oplink); break; case ProcEnumNFS4::LOCK: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::lock40, &arg_t::oplock, &res_t::oplock); break; case ProcEnumNFS4::LOCKT: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::lockt40, &arg_t::oplockt, &res_t::oplockt); break; case ProcEnumNFS4::LOCKU: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::locku40, &arg_t::oplocku, &res_t::oplocku); break; case ProcEnumNFS4::LOOKUP: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::lookup40, &arg_t::oplookup, &res_t::oplookup); break; case ProcEnumNFS4::LOOKUPP: analyze(analyzers, rpc_procedure, res, &INFSv40::lookupp40, &res_t::oplookupp); break; case ProcEnumNFS4::NVERIFY: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::nverify40, &arg_t::opnverify, &res_t::opnverify); break; case ProcEnumNFS4::OPEN: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::open40, &arg_t::opopen, &res_t::opopen); break; case ProcEnumNFS4::OPENATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::openattr40, &arg_t::opopenattr, &res_t::opopenattr); break; case ProcEnumNFS4::OPEN_CONFIRM: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::open_confirm40, &arg_t::opopen_confirm, &res_t::opopen_confirm); break; case ProcEnumNFS4::OPEN_DOWNGRADE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::open_downgrade40, &arg_t::opopen_downgrade, &res_t::opopen_downgrade); break; case ProcEnumNFS4::PUTFH: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::putfh40, &arg_t::opputfh, &res_t::opputfh); break; case ProcEnumNFS4::PUTPUBFH: analyze(analyzers, rpc_procedure, res, &INFSv40::putpubfh40, &res_t::opputpubfh); break; case ProcEnumNFS4::PUTROOTFH: analyze(analyzers, rpc_procedure, res, &INFSv40::putrootfh40, &res_t::opputrootfh); break; case ProcEnumNFS4::READ: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::read40, &arg_t::opread, &res_t::opread); break; case ProcEnumNFS4::READDIR: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::readdir40, &arg_t::opreaddir, &res_t::opreaddir); break; case ProcEnumNFS4::READLINK: analyze(analyzers, rpc_procedure, res, &INFSv40::readlink40, &res_t::opreadlink); break; case ProcEnumNFS4::REMOVE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::remove40, &arg_t::opremove, &res_t::opremove); break; case ProcEnumNFS4::RENAME: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::rename40, &arg_t::oprename, &res_t::oprename); break; case ProcEnumNFS4::RENEW: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::renew40, &arg_t::oprenew, &res_t::oprenew); break; case ProcEnumNFS4::RESTOREFH: analyze(analyzers, rpc_procedure, res, &INFSv40::restorefh40, &res_t::oprestorefh); break; case ProcEnumNFS4::SAVEFH: analyze(analyzers, rpc_procedure, res, &INFSv40::savefh40, &res_t::opsavefh); break; case ProcEnumNFS4::SECINFO: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::secinfo40, &arg_t::opsecinfo, &res_t::opsecinfo); break; case ProcEnumNFS4::SETATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::setattr40, &arg_t::opsetattr, &res_t::opsetattr); break; case ProcEnumNFS4::SETCLIENTID: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::setclientid40, &arg_t::opsetclientid, &res_t::opsetclientid); break; case ProcEnumNFS4::SETCLIENTID_CONFIRM: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::setclientid_confirm40, &arg_t::opsetclientid_confirm, &res_t::opsetclientid_confirm); break; case ProcEnumNFS4::VERIFY: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::verify40, &arg_t::opverify, &res_t::opverify); break; case ProcEnumNFS4::WRITE: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::write40, &arg_t::opwrite, &res_t::opwrite); break; case ProcEnumNFS4::RELEASE_LOCKOWNER: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::release_lockowner40, &arg_t::oprelease_lockowner, &res_t::oprelease_lockowner); break; case ProcEnumNFS4::GET_DIR_DELEGATION: analyze(analyzers, rpc_procedure, arg, res, &INFSv40::get_dir_delegation40, &arg_t::opget_dir_delegation, &res_t::opget_dir_delegation); break; case ProcEnumNFS4::ILLEGAL: analyze(analyzers, rpc_procedure, res, &INFSv40::illegal40, &res_t::opillegal); break; default: break; } } //! Internal function for proper passing NFSv4.1's operations to analyzers //! It's supposed to be used inside analyze_nfs4_operations only void nfs4_ops_switch(Analyzers& analyzers, const RPCProcedure* rpc_procedure, const NST::API::NFS41::nfs_argop4* arg, const NST::API::NFS41::nfs_resop4* res) { using INFSv41 = NST::API::IAnalyzer::INFSv41rpcgen; using arg_t = NST::API::NFS41::nfs_argop4_u_t; using res_t = NST::API::NFS41::nfs_resop4_u_t; uint32_t nfs_op_num = arg ? arg->argop : res->resop; switch (nfs_op_num) { case ProcEnumNFS41::ACCESS: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::access41, &arg_t::opaccess, &res_t::opaccess); break; case ProcEnumNFS41::CLOSE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::close41, &arg_t::opclose, &res_t::opclose); break; case ProcEnumNFS41::COMMIT: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::commit41, &arg_t::opcommit, &res_t::opcommit); break; case ProcEnumNFS41::CREATE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::create41, &arg_t::opcreate, &res_t::opcreate); break; case ProcEnumNFS41::DELEGPURGE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::delegpurge41, &arg_t::opdelegpurge, &res_t::opdelegpurge); break; case ProcEnumNFS41::DELEGRETURN: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::delegreturn41, &arg_t::opdelegreturn, &res_t::opdelegreturn); break; case ProcEnumNFS41::GETATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::getattr41, &arg_t::opgetattr, &res_t::opgetattr); break; case ProcEnumNFS41::GETFH: analyze(analyzers, rpc_procedure, res, &INFSv41::getfh41, &res_t::opgetfh); break; case ProcEnumNFS41::LINK: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::link41, &arg_t::oplink, &res_t::oplink); break; case ProcEnumNFS41::LOCK: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::lock41, &arg_t::oplock, &res_t::oplock); break; case ProcEnumNFS41::LOCKT: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::lockt41, &arg_t::oplockt, &res_t::oplockt); break; case ProcEnumNFS41::LOCKU: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::locku41, &arg_t::oplocku, &res_t::oplocku); break; case ProcEnumNFS41::LOOKUP: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::lookup41, &arg_t::oplookup, &res_t::oplookup); break; case ProcEnumNFS41::LOOKUPP: analyze(analyzers, rpc_procedure, res, &INFSv41::lookupp41, &res_t::oplookupp); break; case ProcEnumNFS41::NVERIFY: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::nverify41, &arg_t::opnverify, &res_t::opnverify); break; case ProcEnumNFS41::OPEN: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::open41, &arg_t::opopen, &res_t::opopen); break; case ProcEnumNFS41::OPENATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::openattr41, &arg_t::opopenattr, &res_t::opopenattr); break; case ProcEnumNFS41::OPEN_CONFIRM: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::open_confirm41, &arg_t::opopen_confirm, &res_t::opopen_confirm); break; case ProcEnumNFS41::OPEN_DOWNGRADE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::open_downgrade41, &arg_t::opopen_downgrade, &res_t::opopen_downgrade); break; case ProcEnumNFS41::PUTFH: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::putfh41, &arg_t::opputfh, &res_t::opputfh); break; case ProcEnumNFS41::PUTPUBFH: analyze(analyzers, rpc_procedure, res, &INFSv41::putpubfh41, &res_t::opputpubfh); break; case ProcEnumNFS41::PUTROOTFH: analyze(analyzers, rpc_procedure, res, &INFSv41::putrootfh41, &res_t::opputrootfh); break; case ProcEnumNFS41::READ: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::read41, &arg_t::opread, &res_t::opread); break; case ProcEnumNFS41::READDIR: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::readdir41, &arg_t::opreaddir, &res_t::opreaddir); break; case ProcEnumNFS41::READLINK: analyze(analyzers, rpc_procedure, res, &INFSv41::readlink41, &res_t::opreadlink); break; case ProcEnumNFS41::REMOVE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::remove41, &arg_t::opremove, &res_t::opremove); break; case ProcEnumNFS41::RENAME: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::rename41, &arg_t::oprename, &res_t::oprename); break; case ProcEnumNFS41::RENEW: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::renew41, &arg_t::oprenew, &res_t::oprenew); break; case ProcEnumNFS41::RESTOREFH: analyze(analyzers, rpc_procedure, res, &INFSv41::restorefh41, &res_t::oprestorefh); break; case ProcEnumNFS41::SAVEFH: analyze(analyzers, rpc_procedure, res, &INFSv41::savefh41, &res_t::opsavefh); break; case ProcEnumNFS41::SECINFO: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::secinfo41, &arg_t::opsecinfo, &res_t::opsecinfo); break; case ProcEnumNFS41::SETATTR: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::setattr41, &arg_t::opsetattr, &res_t::opsetattr); break; case ProcEnumNFS41::SETCLIENTID: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::setclientid41, &arg_t::opsetclientid, &res_t::opsetclientid); break; case ProcEnumNFS41::SETCLIENTID_CONFIRM: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::setclientid_confirm41, &arg_t::opsetclientid_confirm, &res_t::opsetclientid_confirm); break; case ProcEnumNFS41::VERIFY: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::verify41, &arg_t::opverify, &res_t::opverify); break; case ProcEnumNFS41::WRITE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::write41, &arg_t::opwrite, &res_t::opwrite); break; case ProcEnumNFS41::RELEASE_LOCKOWNER: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::release_lockowner41, &arg_t::oprelease_lockowner, &res_t::oprelease_lockowner); break; case ProcEnumNFS41::BACKCHANNEL_CTL: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::backchannel_ctl41, &arg_t::opbackchannel_ctl, &res_t::opbackchannel_ctl); break; case ProcEnumNFS41::BIND_CONN_TO_SESSION: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::bind_conn_to_session41, &arg_t::opbind_conn_to_session, &res_t::opbind_conn_to_session); break; case ProcEnumNFS41::EXCHANGE_ID: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::exchange_id41, &arg_t::opexchange_id, &res_t::opexchange_id); break; case ProcEnumNFS41::CREATE_SESSION: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::create_session41, &arg_t::opcreate_session, &res_t::opcreate_session); break; case ProcEnumNFS41::DESTROY_SESSION: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::destroy_session41, &arg_t::opdestroy_session, &res_t::opdestroy_session); break; case ProcEnumNFS41::FREE_STATEID: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::free_stateid41, &arg_t::opfree_stateid, &res_t::opfree_stateid); break; case ProcEnumNFS41::GET_DIR_DELEGATION: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::get_dir_delegation41, &arg_t::opget_dir_delegation, &res_t::opget_dir_delegation); case ProcEnumNFS41::GETDEVICEINFO: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::getdeviceinfo41, &arg_t::opgetdeviceinfo, &res_t::opgetdeviceinfo); break; case ProcEnumNFS41::GETDEVICELIST: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::getdevicelist41, &arg_t::opgetdevicelist, &res_t::opgetdevicelist); break; case ProcEnumNFS41::LAYOUTCOMMIT: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::layoutcommit41, &arg_t::oplayoutcommit, &res_t::oplayoutcommit); break; case ProcEnumNFS41::LAYOUTGET: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::layoutget41, &arg_t::oplayoutget, &res_t::oplayoutget); break; case ProcEnumNFS41::LAYOUTRETURN: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::layoutreturn41, &arg_t::oplayoutreturn, &res_t::oplayoutreturn); break; case ProcEnumNFS41::SECINFO_NO_NAME: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::secinfo_no_name41, &arg_t::opsecinfo_no_name, &res_t::opsecinfo_no_name); break; case ProcEnumNFS41::SEQUENCE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::sequence41, &arg_t::opsequence, &res_t::opsequence); break; case ProcEnumNFS41::SET_SSV: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::set_ssv41, &arg_t::opset_ssv, &res_t::opset_ssv); break; case ProcEnumNFS41::TEST_STATEID: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::test_stateid41, &arg_t::optest_stateid, &res_t::optest_stateid); break; case ProcEnumNFS41::WANT_DELEGATION: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::want_delegation41, &arg_t::opwant_delegation, &res_t::opwant_delegation); break; case ProcEnumNFS41::DESTROY_CLIENTID: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::destroy_clientid41, &arg_t::opdestroy_clientid, &res_t::opdestroy_clientid); break; case ProcEnumNFS41::RECLAIM_COMPLETE: analyze(analyzers, rpc_procedure, arg, res, &INFSv41::reclaim_complete41, &arg_t::opreclaim_complete, &res_t::opreclaim_complete); break; case ProcEnumNFS41::ILLEGAL: analyze(analyzers, rpc_procedure, res, &INFSv41::illegal41, &res_t::opillegal); break; default: break; } } } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/nfs_parser.h000066400000000000000000000045471261713114600202620ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Parser of filtrated NFSv3 Procedures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS_PARSER_H #define NFS_PARSER_H //------------------------------------------------------------------------------ #include "analysis/analyzers.h" #include "analysis/rpc_sessions.h" #include "controller/running_status.h" #include "protocols/nfs/nfs_procedure.h" #include "utils/filtered_data.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { /*! \class It is class which can parse NFS messages and it called by ParserThread */ class NFSParser { using FilteredDataQueue = NST::utils::FilteredDataQueue; Analyzers& analyzers; Sessions sessions; public: NFSParser(Analyzers& a) : analyzers(a) {} NFSParser(NFSParser& c) : analyzers(c.analyzers) {} /*! Function which will be called by ParserThread class * \param data - RPC packet * \return True, if it is RPC(NFS) packet and False in other case */ bool parse_data(FilteredDataQueue::Ptr& data); void parse_data(FilteredDataQueue::Ptr&& data); void analyze_nfs_procedure(FilteredDataQueue::Ptr&& call, FilteredDataQueue::Ptr&& reply, Session* session); }; } // analysis } // NST //------------------------------------------------------------------------------ #endif//NFS_PARSER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/parser_thread.h000066400000000000000000000064371261713114600207430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Parser of the NFS Data. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS_PARSER_THREAD_H #define NFS_PARSER_THREAD_H //------------------------------------------------------------------------------ #include #include #include "analysis/analyzers.h" #include "controller/running_status.h" #include "utils/filtered_data.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { template class ParserThread { using RunningStatus = NST::controller::RunningStatus; using FilteredDataQueue = NST::utils::FilteredDataQueue; public: ParserThread(Parser p, FilteredDataQueue& q, RunningStatus& s) : status (s) , queue (q) , running {ATOMIC_FLAG_INIT} // false , parser(p) { } ~ParserThread() { if (parsing.joinable()) stop(); } void start() { if(running.test_and_set()) return; parsing = std::thread(&ParserThread::thread, this); } void stop() { running.clear(); parsing.join(); } private: inline void thread() { try { while(running.test_and_set()) { // process all available items from queue process_queue(); // then sleep this thread std::this_thread::sleep_for(std::chrono::milliseconds(10)); } process_queue(); // flush data from queue } catch(...) { status.push_current_exception(); } } inline void process_queue() { while(true) { // take all items from the queue FilteredDataQueue::List list{queue}; if(!list) { return; // list from queue is empty, break infinity loop } do { FilteredDataQueue::Ptr data = list.get_current(); parser.parse_data(data); } while(list); } } RunningStatus& status; FilteredDataQueue& queue; std::thread parsing; std::atomic_flag running; Parser parser; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//NFS_PARSER_THREAD_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/parsers.h000066400000000000000000000044021261713114600175650ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Composite parser which parses both CIFS&NFS // TODO: THIS CODE MUST BE TOTALLY REFACTORED! // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PARSERS_H #define PARSERS_H //------------------------------------------------------------------------------ #include "cifs_parser.h" #include "nfs_parser.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { /*! * Composite parser which parses both CIFS&NFS */ class Parsers { using FilteredDataQueue = NST::utils::FilteredDataQueue; CIFSParser parser_cifs;//!< CIFS parser NFSParser parser_nfs;//!< NFS parser public: Parsers(Analyzers& a) : parser_cifs(a) , parser_nfs(a) {} Parsers(Parsers& c) : parser_cifs(c.parser_cifs) , parser_nfs(c.parser_nfs) {} /*! Function which will be called by ParserThread class * \param data - packet */ inline void parse_data(FilteredDataQueue::Ptr& data) { if (!parser_nfs.parse_data(data)) { if (!parser_cifs.parse_data(data)) { LOG("Unknown packet to analysis"); } } } }; } // analysis } // NST //------------------------------------------------------------------------------ #endif // PARSERS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/plugin.cpp000066400000000000000000000056051261713114600177450ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Plugin which encapsulate all requests to shared object library. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "analysis/plugin.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { bool Plugin::isSilent() { if (requirements != nullptr) { // Processing analyzer requirements const AnalyzerRequirements* r = requirements(); if (r != nullptr) { return r->silence; } } return false; } Plugin::Plugin(const std::string& path) : DynamicLoad{path} , usage {nullptr} , create {nullptr} , destroy{nullptr} , requirements{nullptr} { plugin_get_entry_points_func nst_get_entry_points{nullptr}; load_address_of("nst_get_entry_points", nst_get_entry_points); const auto& entry_points = nst_get_entry_points(); if(!entry_points) { throw std::runtime_error{path + ": can't load plugin entry points!"}; } switch(entry_points->vers) { // case NST_PLUGIN_API_VERSION_2_0: // Add 2.0 specific initialization here case NST_PLUGIN_API_VERSION: default: usage = entry_points->usage; create = entry_points->create; destroy = entry_points->destroy; requirements = entry_points->requirements; } if(!usage || !create || !destroy) { throw std::runtime_error{path + ": can't load entry point for some plugin function(s)"}; } } const std::string Plugin::usage_of(const std::string& path) { Plugin instance{path}; return instance.usage(); } PluginInstance::PluginInstance(const std::string& path, const std::string& args) : Plugin{path} { analysis = create(args.c_str()); if(!analysis) throw std::runtime_error{path + ": create call returns NULL-pointer"}; } PluginInstance::~PluginInstance() { destroy(analysis); } } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/plugin.h000066400000000000000000000045431261713114600174120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Plugin which encapsulate all requests to shared object library. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PLUGIN_H #define PLUGIN_H //------------------------------------------------------------------------------ #include #include "api/plugin_api.h" #include "utils/dynamic_load.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { class Plugin : private NST::utils::DynamicLoad { public: static const std::string usage_of(const std::string& path); bool isSilent(); protected: explicit Plugin(const std::string& path); Plugin(const Plugin&) = delete; Plugin& operator=(const Plugin&) = delete; plugin_usage_func usage; plugin_create_func create; plugin_destroy_func destroy; plugin_requirements_func requirements; }; class PluginInstance : private Plugin { public: PluginInstance(const std::string& path, const std::string& args); PluginInstance(const PluginInstance&) = delete; PluginInstance& operator=(const PluginInstance&) = delete; ~PluginInstance(); inline IAnalyzer* instance() const { return analysis; } inline bool silent(){ return isSilent(); } private: IAnalyzer* analysis; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//PLUGIN_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/print_analyzer.cpp000066400000000000000000004120701261713114600215060ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou (Alexey Costroma) // Description: Created for demonstration purpose only. // Copyright (c) 2013-2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include "analysis/print_analyzer.h" #include "protocols/cifs/cifs.h" #include "protocols/cifs2/cifs2.h" #include "protocols/nfs/nfs_utils.h" #include "protocols/nfs3/nfs3_utils.h" #include "protocols/nfs4/nfs4_utils.h" #include "protocols/nfs4/nfs41_utils.h" #include "protocols/cifs2/cifs2_utils.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { using SMBv1Commands = NST::API::SMBv1::SMBv1Commands; using SMBv2Commands = NST::API::SMBv2::SMBv2Commands; using namespace NST::protocols::CIFSv2; using namespace NST::protocols::NFS; // NFS helpers using namespace NST::protocols::NFS3; // NFSv3 helpers using namespace NST::protocols::NFS4; // NFSv4.0 helpers using namespace NST::protocols::NFS41; // NFSv4.1 helpers namespace NFS3 = NST::API::NFS3; namespace NFS4 = NST::API::NFS4; namespace NFS41 = NST::API::NFS41; namespace { bool print_procedure(std::ostream& out, const RPCProcedure* proc) { using namespace NST::utils; bool result {false}; out << *(proc->session); auto& call = proc->call; const unsigned long nfs_version {call.ru.RM_cmb.cb_vers}; if (out_all()) { out << " XID: " << call.rm_xid << " RPC version: " << call.ru.RM_cmb.cb_rpcvers << " RPC program: " << call.ru.RM_cmb.cb_prog << " version: " << nfs_version << ' '; } switch (nfs_version) { case NFS_V3: out << print_nfs3_procedures(static_cast(call.ru.RM_cmb.cb_proc)); break; case NFS_V4: out << print_nfs41_procedures(static_cast(call.ru.RM_cmb.cb_proc)); break; } // check procedure reply auto& reply = proc->reply; if (reply.ru.RM_rmb.rp_stat == reply_stat::MSG_ACCEPTED) { switch (reply.ru.RM_rmb.ru.RP_ar.ar_stat) { case accept_stat::SUCCESS: result = true; // Ok, reply is correct break; case accept_stat::PROG_MISMATCH: out << " Program mismatch: " << " low: " << reply.ru.RM_rmb.ru.RP_ar.ru.AR_versions.low << " high: " << reply.ru.RM_rmb.ru.RP_ar.ru.AR_versions.high; break; case accept_stat::PROG_UNAVAIL: out << " Program unavailable"; break; case accept_stat::PROC_UNAVAIL: out << " Procedure unavailable"; break; case accept_stat::GARBAGE_ARGS: out << " Garbage arguments"; break; case accept_stat::SYSTEM_ERR: out << " System error"; break; } } else if (reply.ru.RM_rmb.rp_stat == reply_stat::MSG_DENIED) { out << " RPC Call rejected: "; switch (reply.ru.RM_rmb.ru.RP_dr.rj_stat) { case reject_stat::RPC_MISMATCH: out << "RPC version number mismatch, " << " low: " << reply.ru.RM_rmb.ru.RP_dr.ru.RJ_versions.low << " high: " << reply.ru.RM_rmb.ru.RP_dr.ru.RJ_versions.high; break; case reject_stat::AUTH_ERROR: { out << " Authentication check: "; switch (reply.ru.RM_rmb.ru.RP_dr.ru.RJ_why) { case auth_stat::AUTH_OK: out << "OK"; break; case auth_stat::AUTH_BADCRED: out << " bogus credentials (seal broken)" << " (failed at remote end)"; break; case auth_stat::AUTH_REJECTEDCRED: out << " rejected credentials (client should begin new session)" << " (failed at remote end)"; break; case auth_stat::AUTH_BADVERF: out << " bogus verifier (seal broken)" << " (failed at remote end)"; break; case auth_stat::AUTH_REJECTEDVERF: out << " verifier expired or was replayed" << " (failed at remote end)"; break; case auth_stat::AUTH_TOOWEAK: out << " too weak (rejected due to security reasons)" << " (failed at remote end)"; break; case auth_stat::AUTH_INVALIDRESP: out << " bogus response verifier" << " (failed locally)"; break; default: out << " some unknown reason" << " (failed locally)"; break; } break; } } } out << '\n'; // end line of RPC procedure information return result; } std::ostream& print_time(std::ostream& out, uint64_t time) { // TODO: Replace with C++ 11 functions if (time != 0) { const auto EPOCH_DIFF = 0x019DB1DED53E8000LL; /* 116444736000000000 nsecs */ const auto RATE_DIFF = 10000000; /* 100 nsecs */ uint64_t unixTimestamp = (time - EPOCH_DIFF) / RATE_DIFF; time_t t = static_cast(unixTimestamp); // NOTE: If you ever want to print the year/day/month separately like this: // // struct tm* lt = localtime(&t); // // do not forget adding 1900 to tm_year field, just to get current year // lt->tm_year + 1900 const char *pTime = ctime(&t); if (pTime != nullptr) { // ctime adds "\n" at the end - remove it. size_t len = std::strlen(pTime); out << std::string(pTime, len - 1); } } else { out << "Create: No time specified (0)"; } return out; } std::ostream& print_buffer(std::ostream& out, const uint8_t *buffer, uint16_t len) { // TODO: Add unicode support const char* char_buffer = reinterpret_cast(buffer); // smb2 buffer usually contains Unicode 16-bit character // currently we do not support unicode output, so make English only variant for(uint16_t i = 0; i < len; i += 2) { out << char_buffer[i]; } return out; } std::ostream& print_buffer_hex(std::ostream& out, const uint8_t *buffer, uint16_t len) { for(uint16_t i = 0; i < len; i++) { out << std::hex << std::setfill('0') << std::setw(2) << static_cast(buffer[i]); } out << std::setfill(' ') << std::dec; return out; } void print_guid(std::ostream& out, const uint8_t (&guid)[16]) { const Guid& refGuid = reinterpret_cast(guid); // print hex value with preceding 0 (zeros) if necessary // ( e.g: 0x01 will be printed as 01 or 0x00 as 00 ) auto print_hex = [&out](uint32_t value, uint8_t bitShift) { out << std::hex << std::setfill('0') << std::setw(2) << (static_cast(value >> bitShift) & 0xFF) << std::dec; }; print_hex(refGuid.Data1, 24); print_hex(refGuid.Data1, 16); print_hex(refGuid.Data1, 8); print_hex(refGuid.Data1, 0); out << "-"; print_hex(refGuid.Data2, 8); print_hex(refGuid.Data2, 0); out << "-"; print_hex(refGuid.Data3, 8); print_hex(refGuid.Data3, 0); out << "-"; print_hex(refGuid.Data4[0], 0); print_hex(refGuid.Data4[1], 0); out << "-"; for(uint8_t i = 2; i < 8; i++) { print_hex(refGuid.Data4[i], 0); } } template std::ostream& print_session(std::ostream& out, CommandType* cmd) { using namespace NST::utils; out << "\n"; out << *(cmd->session); return out; } template std::ostream& print_smbv2_common_info_req(std::ostream& out, SMBv2Commands, CommandType* cmd) { out << " Structure size = "; print_hex16(out, cmd->parg->structureSize); return out; } template std::ostream& print_smbv2_common_info_resp(std::ostream& out, SMBv2Commands, CommandType* cmd) { out << " Structure size = "; print_hex16(out, cmd->pres->structureSize); return out; } std::ostream& print_smbv2_header(std::ostream& out, const RawMessageHeader* header) { if (header == nullptr) { return out; } out << "SMB2 Header\n"; uint8_t len = sizeof(header->head.protocol) / sizeof(header->head.protocol[0]); out << " Server Component = "; for(uint8_t i = 0; i < len; i++) { out << header->head.protocol[i]; } if(header->head.protocol_code == protocols::CIFSv1::ProtocolCodes::SMB1) { out << "1"; } else if(header->head.protocol_code == protocols::CIFSv1::ProtocolCodes::SMB2) { out << "2"; } out << "\n Header Length = " << header->StructureSize << "\n"; out << " Credit Charge = " << header->CreditCharge << "\n"; bool isResponse = header->flags & static_cast(Flags::SERVER_TO_REDIR); if (isResponse) { SMBv2::NTStatus status = static_cast(header->status); print_enum(out, "NT Status", status); } else { out << " Channel Sequence = " << header->status; } out << "\n"; print_enum(out, "Command", header->cmd_code) << "\n"; if (isResponse) { out << " Credits granted = " << header->Credit << "\n"; } else { out << " Credits requested = " << header->Credit << "\n"; } print_enum(out, "Flags", static_cast(header->flags)) << "\n"; out << " Chain Offset = "; print_hex32(out, header->nextCommand); out << "\n"; out << " Command Sequence Number = " << header->messageId << "\n"; out << " Process Id = "; print_hex32(out, header->_); out << "\n"; out << " Tree Id = "; print_hex32(out, header->TreeId); out << "\n"; out << " Session Id = "; print_hex64(out, header->SessionId); out << "\n"; out << " Signature = "; print_buffer_hex(out, header->Signature, sizeof(header->Signature) / sizeof(header->Signature[0])); return out; } } // unnamed namespace void PrintAnalyzer::closeFileSMBv2(const SMBv2::CloseFileCommand* cmd, const SMBv2::CloseRequest*, const SMBv2::CloseResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::CLOSE; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Close Flags", cmd->parg->Flags) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Close Flags", res->Flags) << "\n"; out << " Create = "; print_time(out, res->CreationTime) << "\n"; out << " Last Access = "; print_time(out, res->LastAccessTime) << "\n"; out << " Last Write = "; print_time(out, res->LastWriteTime) << "\n"; out << " Last Change = "; print_time(out, res->ChangeTime) << "\n"; out << " Allocation Size = " << res->AllocationSize << "\n"; out << " End of File = " << res->EndOfFile << "\n"; out << " File Attributes = " << res->Attributes; } void PrintAnalyzer::negotiateSMBv2(const SMBv2::NegotiateCommand* cmd, const SMBv2::NegotiateRequest*, const SMBv2::NegotiateResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::NEGOTIATE; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; out << " Dialect count = " << cmd->parg->dialectCount << "\n"; print_enum(out, "Security mode", cmd->parg->securityMode) << "\n"; print_enum(out, "Capabilities", cmd->parg->capabilities) << "\n"; out << " Client Guid = "; print_guid(out, cmd->parg->clientGUID); out << "\n"; out << " Boot Time = "; print_time(out, cmd->parg->clientStartTime) << "\n"; for(int i = 0; i < cmd->parg->dialectCount; i++) { out << " Dialect = "; print_hex16(out, to_integral(cmd->parg->dialects[i])); out << "\n"; } print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Security mode", res->securityMode) << "\n"; out << " Dialect = "; print_hex16(out, res->dialectRevision); out << "\n"; out << " Server Guid = "; print_guid(out, res->serverGUID); out << "\n"; print_enum(out, "Capabilities", res->capabilities); out << "\n Max Transaction Size = " << res->maxTransactSize << "\n"; out << " Max Read Size = " << res->maxReadSize << "\n"; out << " Max Write Size = " << res->maxWriteSize << "\n"; out << " Current Time = "; print_time(out, res->systemTime); out << "\n Boot Time = "; print_time(out, res->serverStartTime); } void PrintAnalyzer::sessionSetupSMBv2(const SMBv2::SessionSetupCommand* cmd, const SMBv2::SessionSetupRequest*, const SMBv2::SessionSetupResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::SESSION_SETUP; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Flags", cmd->parg->VcNumber) << "\n"; print_enum(out, "Security mode", cmd->parg->securityMode) << "\n"; print_enum(out, "Capabilities", cmd->parg->capabilities) << "\n"; out << " Channel = " << cmd->parg->Channel << "\n" << " Previous session id = " << cmd->parg->PreviousSessionId << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Session flags", res->sessionFlags); } void PrintAnalyzer::logOffSMBv2(const SMBv2::LogOffCommand* cmd, const SMBv2::LogOffRequest*, const SMBv2::LogOffResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::LOGOFF; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd); out << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::treeConnectSMBv2(const SMBv2::TreeConnectCommand* cmd, const SMBv2::TreeConnectRequest*, const SMBv2::TreeConnectResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::TREE_CONNECT; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; const auto plen = NST::API::SMBv2::pc_to_net(cmd->parg->PathLength); if(plen > 0) { out << " Tree ="; print_buffer(out,cmd->parg->Buffer, plen) << "\n"; } print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Share types", res->ShareType) << "\n"; print_enum(out, "Capabilities", res->capabilities) << "\n"; print_enum(out, "Share flags", res->shareFlags) << "\n"; print_enum(out, "Access mask", static_cast(res->MaximalAccess)); } void PrintAnalyzer::treeDisconnectSMBv2(const SMBv2::TreeDisconnectCommand* cmd, const SMBv2::TreeDisconnectRequest*, const SMBv2::TreeDisconnectResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::TREE_DISCONNECT; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::createSMBv2(const SMBv2::CreateCommand* cmd, const SMBv2::CreateRequest*, const SMBv2::CreateResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::CREATE; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Oplock", cmd->parg->RequestedOplockLevel) << "\n"; print_enum(out, "Impersonation", cmd->parg->ImpersonationLevel) << "\n"; out << " Create Flags = "; print_hex64(out, cmd->parg->SmbCreateFlags); out << "\n"; print_enum(out, "Access Mask", cmd->parg->desiredAccess) << "\n"; print_enum(out, "File Attributes", cmd->parg->attributes) << "\n"; print_enum(out, "Share Access", cmd->parg->shareAccess) << "\n"; print_enum(out, "Disposition", cmd->parg->createDisposition) << "\n"; print_enum(out, "Create Options", cmd->parg->createOptions) << "\n"; const auto len = NST::API::SMBv2::pc_to_net(cmd->parg->NameLength); if(len > 0) { out << " File name = "; print_buffer(out, cmd->parg->Buffer, len) << "\n"; out << " File length = " << len << "\n"; } print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Oplock", res->oplockLevel) << "\n"; out << " Response Flags = "; print_hex8(out, res->flag); out << "\n"; print_enum(out, "Create Action", res->CreateAction) << "\n"; if (cmd->res_header && cmd->res_header->status == to_integral(SMBv2::NTStatus::STATUS_SUCCESS)) { out << " Create = "; print_time(out, res->CreationTime); out << "\n Last Access = "; print_time(out, res->LastAccessTime); out << "\n Last Write = "; print_time(out, res->LastWriteTime); out << "\n Last Change = "; print_time(out, res->ChangeTime); out << "\n Allocation Size = "; out << res->AllocationSize; out << "\n End Of File = "; out << res->EndofFile << "\n"; print_enum(out, "File Attributes", res->attributes); } } void PrintAnalyzer::flushSMBv2(const SMBv2::FlushCommand* cmd, const SMBv2::FlushRequest*, const SMBv2::FlushResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::FLUSH; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::readSMBv2(const SMBv2::ReadCommand* cmd, const SMBv2::ReadRequest*, const SMBv2::ReadResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::READ; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; out << " Read length = " << cmd->parg->length << "\n" << " File offset = " << cmd->parg->offset << "\n" << " Min count = " << cmd->parg->minimumCount << "\n" << " Channel = " << to_integral(cmd->parg->channel) << "\n" << " Remaining bytes = " << cmd->parg->RemainingBytes << "\n" << " Channel Info Offset = " << cmd->parg->ReadChannelInfoOffset << "\n" << " Channel Info Length = " << cmd->parg->ReadChannelInfoLength << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; out << " Data offset = "; print_hex16(out, res->DataOffset); out << "\n" << " Read length = " << res->DataLength << "\n" << " Read remaining = " << res->DataRemaining; } void PrintAnalyzer::writeSMBv2(const SMBv2::WriteCommand* cmd, const SMBv2::WriteRequest*, const SMBv2::WriteResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::WRITE; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; out << " Data offset = "; print_hex16(out, cmd->parg->dataOffset); out << "\n" << " Write Length = " << cmd->parg->Length << "\n" << " File Offset = " << cmd->parg->Offset << "\n" << " Channel = " << to_integral(cmd->parg->Channel) << "\n" << " Remaining Bytes = " << cmd->parg->RemainingBytes << "\n" << " Channel Info Offset = " << cmd->parg->WriteChannelInfoOffset << "\n" << " Channel Info Length = " << cmd->parg->WriteChannelInfoLength << "\n"; print_enum(out, "Write Flags", cmd->parg->Flags) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; out << " Write Count = " << res->Count << "\n" << " Write Remaining = " << res->Remaining << "\n" << " Channel Info Offset = " << res->WriteChannelInfoOffset << "\n" << " Channel Info Length = " << res->WriteChannelInfoLength; } void PrintAnalyzer::lockSMBv2(const SMBv2::LockCommand* cmd, const SMBv2::LockRequest*, const SMBv2::LockResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::LOCK; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; out << " Lock Count = " << static_cast(cmd->parg->LockCount) << "\n" << " Lock Sequence = " << static_cast(cmd->parg->LockSequence) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::ioctlSMBv2(const SMBv2::IoctlCommand* cmd, const SMBv2::IoCtlRequest*, const SMBv2::IoCtlResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::IOCTL; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Control Code", cmd->parg->CtlCode) << "\n"; out << " Input offset = " << cmd->parg->InputOffset << "\n" << " Input count = " << cmd->parg->InputCount << "\n" << " Max input response = " << cmd->parg->MaxInputResponse << "\n" << " Output offset = " << cmd->parg->OutputOffset << "\n" << " Output count = " << cmd->parg->OutputCount << "\n" << " Max output response = " << cmd->parg->MaxOutputResponse << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Control Code", res->CtlCode) << "\n"; out << " Input offset = " << res->InputOffset << "\n" << " Input count = " << res->InputCount << "\n" << " Output offset = " << res->OutputOffset << "\n" << " Output count = " << res->OutputCount; } void PrintAnalyzer::cancelSMBv2(const SMBv2::CancelCommand* cmd, const SMBv2::CancelRequest*, const SMBv2::CancelResponce*) { SMBv2Commands cmdEnum = SMBv2Commands::CANCEL; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd); print_smbv2_header(out, cmd->res_header) << "\n"; } void PrintAnalyzer::echoSMBv2(const SMBv2::EchoCommand* cmd, const SMBv2::EchoRequest*, const SMBv2::EchoResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::ECHO; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::queryDirSMBv2(const SMBv2::QueryDirCommand* cmd, const SMBv2::QueryDirRequest*, const SMBv2::QueryDirResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::QUERY_DIRECTORY; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Info level", cmd->parg->infoType) << "\n"; out << " File index = " << cmd->parg->FileIndex << "\n" << " Output buffer length = " << cmd->parg->OutputBufferLength << "\n" << " Search pattern ="; const auto len = NST::API::SMBv2::pc_to_net(cmd->parg->FileNameLength); print_buffer(out, cmd->parg->Buffer, len) << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::changeNotifySMBv2(const SMBv2::ChangeNotifyCommand* cmd, const SMBv2::ChangeNotifyRequest*, const SMBv2::ChangeNotifyResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::CHANGE_NOTIFY; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; out << " Length = "; print_hex32(out, cmd->parg->OutputBufferLength); out << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; out << " Offset = "; print_hex32(out, res->OutputBufferOffset); out << "\n"; out << " Length = "; print_hex32(out, res->OutputBufferLength); } void PrintAnalyzer::queryInfoSMBv2(const SMBv2::QueryInfoCommand* cmd, const SMBv2::QueryInfoRequest*, const SMBv2::QueryInfoResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::QUERY_INFO; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Class", cmd->parg->infoType) << "\n"; print_info_levels(out, cmd->parg->infoType, cmd->parg->FileInfoClass) << "\n"; //TODO: Print GUID handle file print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; out << " Offset = "; print_hex32(out, res->OutputBufferOffset); out << "\n Length = "; print_hex32(out, res->OutputBufferLength); } void PrintAnalyzer::setInfoSMBv2(const SMBv2::SetInfoCommand* cmd, const SMBv2::SetInfoRequest*, const SMBv2::SetInfoResponse*) { SMBv2Commands cmdEnum = SMBv2Commands::SET_INFO; print_session(out, cmd) << "\n"; print_smbv2_header(out, cmd->req_header) << "\n"; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Class", cmd->parg->infoType) << "\n"; print_info_levels(out, cmd->parg->infoType, cmd->parg->FileInfoClass) << "\n"; out << " Setinfo Size = "; print_hex32(out, cmd->parg->BufferLength); out << "\n Setinfo Offset = "; print_hex16(out, cmd->parg->BufferOffset); out << "\n"; print_smbv2_header(out, cmd->res_header) << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd); } void PrintAnalyzer::breakOplockSMBv2(const SMBv2::BreakOpLockCommand* cmd, const SMBv2::OplockAcknowledgment*, const SMBv2::OplockResponse* res) { SMBv2Commands cmdEnum = SMBv2Commands::OPLOCK_BREAK; print_smbv2_common_info_req(out, cmdEnum, cmd) << "\n"; print_enum(out, "Oplock", cmd->parg->LockCount) << "\n"; out << " File Id = "; print_guid(out, cmd->parg->fileId); out << "\n"; print_smbv2_common_info_resp(out, cmdEnum, cmd) << "\n"; print_enum(out, "Oplock", res->LockCount) << "\n"; out << " File Id = "; print_guid(out, res->fileId); } // Print NFSv3 procedures (rpcgen) // 1st line - PRC information: src and dst hosts, status of RPC procedure // 2nd line - related RPC procedure-specific arguments // 3rd line - related RPC procedure-specific results void PrintAnalyzer::null(const RPCProcedure* proc, const struct NFS3::NULL3args*, const struct NFS3::NULL3res*) { if (!print_procedure(out, proc)) { return; } out << "\tCALL []\n\tREPLY []\n"; } void PrintAnalyzer::getattr3(const RPCProcedure* proc, const struct NFS3::GETATTR3args* args, const struct NFS3::GETATTR3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [" << " object: " << args->object << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all() && res->status == NFS3::nfsstat3::NFS3_OK) out << " obj attributes: " << res->GETATTR3res_u.resok.obj_attributes; out << " ]\n"; } } void PrintAnalyzer::setattr3(const RPCProcedure* proc, const struct NFS3::SETATTR3args* args, const struct NFS3::SETATTR3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ object: " << args->object << " new attributes: " << args->new_attributes << " guard: " << args->guard << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj_wcc: " << res->SETATTR3res_u.resok.obj_wcc; else out << " obj_wcc: " << res->SETATTR3res_u.resfail.obj_wcc; } out << " ]\n"; } } void PrintAnalyzer::lookup3(const RPCProcedure* proc, const struct NFS3::LOOKUP3args* args, const struct NFS3::LOOKUP3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ what: " << args->what << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " object: " << res->LOOKUP3res_u.resok.object << " object attributes: " << res->LOOKUP3res_u.resok.obj_attributes << " dir attributes: " << res->LOOKUP3res_u.resok.dir_attributes; else out << " dir attributes: " << res->LOOKUP3res_u.resfail.dir_attributes; } out << " ]\n"; } } void PrintAnalyzer::access3(const RPCProcedure* proc, const struct NFS3::ACCESS3args* args, const struct NFS3::ACCESS3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ object: "; print_nfs_fh(out, args->object.data.data_val, args->object.data.data_len); out << " access: "; print_access3(out, args->access); out << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " object attributes: " << res->ACCESS3res_u.resok.obj_attributes << " access: "; print_access3(out, res->ACCESS3res_u.resok.access); } else { out << " access: " << res->ACCESS3res_u.resfail.obj_attributes; } } out << " ]\n"; } } void PrintAnalyzer::readlink3(const RPCProcedure* proc, const struct NFS3::READLINK3args* args, const struct NFS3::READLINK3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ symlink: " << args->symlink << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " symlink attributes: " << res->READLINK3res_u.resok.symlink_attributes << " data: " << res->READLINK3res_u.resok.data; else out << " symlink attributes: " << res->READLINK3res_u.resfail.symlink_attributes; } out << " ]\n"; } } void PrintAnalyzer::read3(const RPCProcedure* proc, const struct NFS3::READ3args* args, const struct NFS3::READ3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ file: " << args->file << " offset: " << args->offset << " count: " << args->count << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " file attributes: " << res->READ3res_u.resok.file_attributes << " count: " << res->READ3res_u.resok.count << " eof: " << res->READ3res_u.resok.eof; } else { out << " symlink attributes: " << res->READ3res_u.resfail.file_attributes; } } out << " ]\n"; } } void PrintAnalyzer::write3(const RPCProcedure* proc, const struct NFS3::WRITE3args* args, const struct NFS3::WRITE3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ file: " << args->file << " offset: " << args->offset << " count: " << args->count << " stable: " << args->stable << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " file_wcc: " << res->WRITE3res_u.resok.file_wcc << " count: " << res->WRITE3res_u.resok.count << " committed: " << res->WRITE3res_u.resok.committed << " verf: "; print_hex(out, res->WRITE3res_u.resok.verf, NFS3::NFS3_WRITEVERFSIZE); } else { out << " file_wcc: " << res->WRITE3res_u.resfail.file_wcc; } } out << " ]\n"; } } void PrintAnalyzer::create3(const RPCProcedure* proc, const struct NFS3::CREATE3args* args, const struct NFS3::CREATE3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ where: " << args->where << " how: " << args->how << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj: " << res->CREATE3res_u.resok.obj << " obj attributes: " << res->CREATE3res_u.resok.obj_attributes << " dir_wcc: " << res->CREATE3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->CREATE3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::mkdir3(const RPCProcedure* proc, const struct NFS3::MKDIR3args* args, const struct NFS3::MKDIR3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ where: " << args->where << " attributes: " << args->attributes << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj: " << res->MKDIR3res_u.resok.obj << " obj attributes: " << res->MKDIR3res_u.resok.obj_attributes << " dir_wcc: " << res->MKDIR3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->MKDIR3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::symlink3(const RPCProcedure* proc, const struct NFS3::SYMLINK3args* args, const struct NFS3::SYMLINK3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ where: " << args->where << " symlink: " << args->symlink << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj: " << res->SYMLINK3res_u.resok.obj << " obj attributes: " << res->SYMLINK3res_u.resok.obj_attributes << " dir_wcc: " << res->SYMLINK3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->SYMLINK3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::mknod3(const RPCProcedure* proc, const struct NFS3::MKNOD3args* args, const struct NFS3::MKNOD3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ where: " << args->where << " what: " << args->what << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj: " << res->MKNOD3res_u.resok.obj << " obj attributes: " << res->MKNOD3res_u.resok.obj_attributes << " dir_wcc: " << res->MKNOD3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->MKNOD3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::remove3(const RPCProcedure* proc, const struct NFS3::REMOVE3args* args, const struct NFS3::REMOVE3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ object: " << args->object << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " dir_wcc: " << res->REMOVE3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->REMOVE3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::rmdir3(const RPCProcedure* proc, const struct NFS3::RMDIR3args* args, const struct NFS3::RMDIR3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ object: " << args->object << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " dir_wcc: " << res->RMDIR3res_u.resok.dir_wcc; else out << " dir_wcc: " << res->RMDIR3res_u.resfail.dir_wcc; } out << " ]\n"; } } void PrintAnalyzer::rename3(const RPCProcedure* proc, const struct NFS3::RENAME3args* args, const struct NFS3::RENAME3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ from: " << args->from << " to: " << args->to << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " from dir_wcc: " << res->RENAME3res_u.resok.fromdir_wcc << " to dir_wcc: " << res->RENAME3res_u.resok.todir_wcc; else out << " from dir_wcc: " << res->RENAME3res_u.resfail.fromdir_wcc << " to dir_wcc: " << res->RENAME3res_u.resfail.todir_wcc; } out << " ]\n"; } } void PrintAnalyzer::link3(const RPCProcedure* proc, const struct NFS3::LINK3args* args, const struct NFS3::LINK3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ file: " << args->file << " link: " << args->link << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " file attributes: " << res->LINK3res_u.resok.file_attributes << " link dir_wcc: " << res->LINK3res_u.resok.linkdir_wcc; else out << " file attributes: " << res->LINK3res_u.resfail.file_attributes << " link dir_wcc: " << res->LINK3res_u.resfail.linkdir_wcc; } out << " ]\n"; } } void PrintAnalyzer::readdir3(const RPCProcedure* proc, const struct NFS3::READDIR3args* args, const struct NFS3::READDIR3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ dir: " << args->dir << " cookie: " << args->cookie << " cookieverf: "; print_hex(out, args->cookieverf, NFS3::NFS3_COOKIEVERFSIZE); out << " count: " << args->count << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " dir attributes: " << res->READDIR3res_u.resok.dir_attributes << " cookieverf: "; print_hex(out, res->READDIR3res_u.resok.cookieverf, NFS3::NFS3_COOKIEVERFSIZE); out << " reply: " << res->READDIR3res_u.resok.reply; } else { out << " dir attributes: " << res->READDIR3res_u.resfail.dir_attributes; } } out << " ]\n"; } } void PrintAnalyzer::readdirplus3(const RPCProcedure* proc, const struct NFS3::READDIRPLUS3args* args, const struct NFS3::READDIRPLUS3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ dir: " << args->dir << " cookie: " << args->cookie << " cookieverf: "; print_hex(out, args->cookieverf, NFS3::NFS3_COOKIEVERFSIZE); out << " dir count: " << args->dircount << " max count: " << args->maxcount << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " dir attributes: " << res->READDIRPLUS3res_u.resok.dir_attributes << " cookieverf: "; print_hex(out, res->READDIRPLUS3res_u.resok.cookieverf, NFS3::NFS3_COOKIEVERFSIZE); out << " reply: " << res->READDIRPLUS3res_u.resok.reply; } else { out << " dir attributes: " << res->READDIRPLUS3res_u.resfail.dir_attributes; } } out << " ]\n"; } } void PrintAnalyzer::fsstat3(const RPCProcedure* proc, const struct NFS3::FSSTAT3args* args, const struct NFS3::FSSTAT3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ fsroot: " << args->fsroot << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj attributes: " << res->FSSTAT3res_u.resok.obj_attributes << " tbytes: " << res->FSSTAT3res_u.resok.tbytes << " fbytes: " << res->FSSTAT3res_u.resok.fbytes << " abytes: " << res->FSSTAT3res_u.resok.abytes << " tfile: " << res->FSSTAT3res_u.resok.tfiles << " ffile: " << res->FSSTAT3res_u.resok.ffiles << " afile: " << res->FSSTAT3res_u.resok.afiles << " invarsec: " << res->FSSTAT3res_u.resok.invarsec; else out << " obj attributes: " << res->FSSTAT3res_u.resfail.obj_attributes; } out << " ]\n"; } } void PrintAnalyzer::fsinfo3(const RPCProcedure* proc, const struct NFS3::FSINFO3args* args, const struct NFS3::FSINFO3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ fsroot: " << args->fsroot << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj attributes: " << res->FSINFO3res_u.resok.obj_attributes << " rtmax: " << res->FSINFO3res_u.resok.rtmax << " rtpref: " << res->FSINFO3res_u.resok.rtpref << " rtmult: " << res->FSINFO3res_u.resok.rtmult << " wtmax: " << res->FSINFO3res_u.resok.wtmax << " wtpref: " << res->FSINFO3res_u.resok.wtpref << " wtmult: " << res->FSINFO3res_u.resok.wtmult << " dtpref: " << res->FSINFO3res_u.resok.dtpref << " max file size: " << res->FSINFO3res_u.resok.maxfilesize << " time delta: " << res->FSINFO3res_u.resok.time_delta << " properties: " << res->FSINFO3res_u.resok.properties << " LINK (filesystem supports hard links): " << static_cast(res->FSINFO3res_u.resok.properties & NFS3::FSF3_LINK) << " SYMLINK (file system supports symbolic links): " << static_cast(res->FSINFO3res_u.resok.properties & NFS3::FSF3_SYMLINK) << " HOMOGENEOUS (PATHCONF: is valid for all files): " << static_cast(res->FSINFO3res_u.resok.properties & NFS3::FSF3_HOMOGENEOUS) << " CANSETTIME (SETATTR can set time on server): " << static_cast(res->FSINFO3res_u.resok.properties & NFS3::FSF3_CANSETTIME); else out << " obj attributes: " << res->FSINFO3res_u.resfail.obj_attributes; } out << " ]\n"; } } void PrintAnalyzer::pathconf3(const RPCProcedure* proc, const struct NFS3::PATHCONF3args* args, const struct NFS3::PATHCONF3res* res) { if (!print_procedure(out, proc)) { return; } if (args) { out << "\tCALL [ object: " << args->object << " ]\n"; } if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) out << " obj attributes: " << res->PATHCONF3res_u.resok.obj_attributes << " link max: " << res->PATHCONF3res_u.resok.linkmax << " name max: " << res->PATHCONF3res_u.resok.name_max << " no trunc: " << res->PATHCONF3res_u.resok.no_trunc << " chwon restricted: " << res->PATHCONF3res_u.resok.chown_restricted << " case insensitive: " << res->PATHCONF3res_u.resok.case_insensitive << " case preserving: " << res->PATHCONF3res_u.resok.case_preserving; else out << " obj attributes: " << res->PATHCONF3res_u.resfail.obj_attributes; } out << " ]\n"; } } void PrintAnalyzer::commit3(const RPCProcedure* proc, const struct NFS3::COMMIT3args* args, const struct NFS3::COMMIT3res* res) { if (!print_procedure(out, proc)) { return; } if (args) out << "\tCALL [ file: " << args->file << " offset: " << args->offset << " count: " << args->count << " ]\n"; if (res) { out << "\tREPLY [ status: " << res->status; if (out_all()) { if (res->status == NFS3::nfsstat3::NFS3_OK) { out << " file_wcc: " << res->COMMIT3res_u.resok.file_wcc << " verf: "; print_hex(out, res->COMMIT3res_u.resok.verf, NFS3::NFS3_WRITEVERFSIZE); } else { out << " file_wcc: " << res->COMMIT3res_u.resfail.file_wcc; } } out << " ]\n"; } } // Print NFSv4 procedures // 1st line - PRC information: src and dst hosts, status of RPC procedure // 2nd line - related RPC procedure-specific arguments // 3rd line - related NFSv4-operations // 4th line - related RPC procedure-specific results // 5rd line - related NFSv4-operations void PrintAnalyzer::null4(const RPCProcedure* proc, const struct NFS4::NULL4args*, const struct NFS4::NULL4res*) { if (!print_procedure(out, proc)) { return; } out << "\tCALL []\n\tREPLY []\n"; } void PrintAnalyzer::compound4(const RPCProcedure* proc, const struct NFS4::COMPOUND4args* args, const struct NFS4::COMPOUND4res* res) { if (!print_procedure(out, proc)) { return; } const u_int* array_len {}; if (args) { array_len = &args->argarray.argarray_len; out << "\tCALL [ operations: " << *array_len << " tag: " << args->tag << " minor version: " << args->minorversion; if (*array_len) { NFS4::nfs_argop4* current_el {args->argarray.argarray_val}; for (u_int i = 0; i < *array_len; i++, current_el++) { out << "\n\t\t[ "; nfs4_operation(current_el); out << " ] "; } out << " ]\n"; } } if (res) { array_len = &res->resarray.resarray_len; out << "\tREPLY [ operations: " << *array_len; if (*array_len) { NFS4::nfs_resop4* current_el {res->resarray.resarray_val}; for (u_int i = 0; i < *array_len; i++, current_el++) { out << "\n\t\t[ "; nfs4_operation(current_el); out << " ] "; } out << " ]\n"; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::nfs_argop4* op) { if (op) { out << print_nfs4_procedures(static_cast(op->argop)) << '(' << op->argop << ") [ "; switch (op->argop) { case NFS4::OP_ACCESS: return nfs4_operation(&op->nfs_argop4_u.opaccess); case NFS4::OP_CLOSE: return nfs4_operation(&op->nfs_argop4_u.opclose); case NFS4::OP_COMMIT: return nfs4_operation(&op->nfs_argop4_u.opcommit); case NFS4::OP_CREATE: return nfs4_operation(&op->nfs_argop4_u.opcreate); case NFS4::OP_DELEGPURGE: return nfs4_operation(&op->nfs_argop4_u.opdelegpurge); case NFS4::OP_DELEGRETURN: return nfs4_operation(&op->nfs_argop4_u.opdelegreturn); case NFS4::OP_GETATTR: return nfs4_operation(&op->nfs_argop4_u.opgetattr); case NFS4::OP_GETFH: break; /* no such operation in call procedure */ case NFS4::OP_LINK: return nfs4_operation(&op->nfs_argop4_u.oplink); case NFS4::OP_LOCK: return nfs4_operation(&op->nfs_argop4_u.oplock); case NFS4::OP_LOCKT: return nfs4_operation(&op->nfs_argop4_u.oplockt); case NFS4::OP_LOCKU: return nfs4_operation(&op->nfs_argop4_u.oplocku); case NFS4::OP_LOOKUP: return nfs4_operation(&op->nfs_argop4_u.oplookup); case NFS4::OP_LOOKUPP: break; /* no such operation in call procedure */ case NFS4::OP_NVERIFY: return nfs4_operation(&op->nfs_argop4_u.opnverify); case NFS4::OP_OPEN: return nfs4_operation(&op->nfs_argop4_u.opopen); case NFS4::OP_OPENATTR: return nfs4_operation(&op->nfs_argop4_u.opopenattr); case NFS4::OP_OPEN_CONFIRM: return nfs4_operation(&op->nfs_argop4_u.opopen_confirm); case NFS4::OP_OPEN_DOWNGRADE: return nfs4_operation(&op->nfs_argop4_u.opopen_downgrade); case NFS4::OP_PUTFH: return nfs4_operation(&op->nfs_argop4_u.opputfh); case NFS4::OP_PUTPUBFH: break; /* no such operation in call procedure */ case NFS4::OP_PUTROOTFH: break; /* no such operation in call procedure */ case NFS4::OP_READ: return nfs4_operation(&op->nfs_argop4_u.opread); case NFS4::OP_READDIR: return nfs4_operation(&op->nfs_argop4_u.opreaddir); case NFS4::OP_READLINK: break; /* no such operation in call procedure */ case NFS4::OP_REMOVE: return nfs4_operation(&op->nfs_argop4_u.opremove); case NFS4::OP_RENAME: return nfs4_operation(&op->nfs_argop4_u.oprename); case NFS4::OP_RENEW: return nfs4_operation(&op->nfs_argop4_u.oprenew); case NFS4::OP_RESTOREFH: break; /* no such operation in call procedure */ case NFS4::OP_SAVEFH: break; /* no such operation in call procedure */ case NFS4::OP_SECINFO: return nfs4_operation(&op->nfs_argop4_u.opsecinfo); case NFS4::OP_SETATTR: return nfs4_operation(&op->nfs_argop4_u.opsetattr); case NFS4::OP_SETCLIENTID: return nfs4_operation(&op->nfs_argop4_u.opsetclientid); case NFS4::OP_SETCLIENTID_CONFIRM: return nfs4_operation(&op->nfs_argop4_u.opsetclientid_confirm); case NFS4::OP_VERIFY: return nfs4_operation(&op->nfs_argop4_u.opverify); case NFS4::OP_WRITE: return nfs4_operation(&op->nfs_argop4_u.opwrite); case NFS4::OP_RELEASE_LOCKOWNER: return nfs4_operation(&op->nfs_argop4_u.oprelease_lockowner); case NFS4::OP_GET_DIR_DELEGATION: return nfs4_operation(&op->nfs_argop4_u.opget_dir_delegation); case NFS4::OP_ILLEGAL: break; /* no such operation in call procedure */ } out << " ]"; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::nfs_resop4* op) { if (op) { out << print_nfs4_procedures(static_cast(op->resop)) << '(' << op->resop << ") [ "; switch (op->resop) { case NFS4::OP_ACCESS: return nfs4_operation(&op->nfs_resop4_u.opaccess); case NFS4::OP_CLOSE: return nfs4_operation(&op->nfs_resop4_u.opclose); case NFS4::OP_COMMIT: return nfs4_operation(&op->nfs_resop4_u.opcommit); case NFS4::OP_CREATE: return nfs4_operation(&op->nfs_resop4_u.opcreate); case NFS4::OP_DELEGPURGE: return nfs4_operation(&op->nfs_resop4_u.opdelegpurge); case NFS4::OP_DELEGRETURN: return nfs4_operation(&op->nfs_resop4_u.opdelegreturn); case NFS4::OP_GETATTR: return nfs4_operation(&op->nfs_resop4_u.opgetattr); case NFS4::OP_GETFH: return nfs4_operation(&op->nfs_resop4_u.opgetfh); case NFS4::OP_LINK: return nfs4_operation(&op->nfs_resop4_u.oplink); case NFS4::OP_LOCK: return nfs4_operation(&op->nfs_resop4_u.oplock); case NFS4::OP_LOCKT: return nfs4_operation(&op->nfs_resop4_u.oplockt); case NFS4::OP_LOCKU: return nfs4_operation(&op->nfs_resop4_u.oplocku); case NFS4::OP_LOOKUP: return nfs4_operation(&op->nfs_resop4_u.oplookup); case NFS4::OP_LOOKUPP: return nfs4_operation(&op->nfs_resop4_u.oplookupp); case NFS4::OP_NVERIFY: return nfs4_operation(&op->nfs_resop4_u.opnverify); case NFS4::OP_OPEN: return nfs4_operation(&op->nfs_resop4_u.opopen); case NFS4::OP_OPENATTR: return nfs4_operation(&op->nfs_resop4_u.opopenattr); case NFS4::OP_OPEN_CONFIRM: return nfs4_operation(&op->nfs_resop4_u.opopen_confirm); case NFS4::OP_OPEN_DOWNGRADE: return nfs4_operation(&op->nfs_resop4_u.opopen_downgrade); case NFS4::OP_PUTFH: return nfs4_operation(&op->nfs_resop4_u.opputfh); case NFS4::OP_PUTPUBFH: return nfs4_operation(&op->nfs_resop4_u.opputpubfh); case NFS4::OP_PUTROOTFH: return nfs4_operation(&op->nfs_resop4_u.opputrootfh); case NFS4::OP_READ: return nfs4_operation(&op->nfs_resop4_u.opread); case NFS4::OP_READDIR: return nfs4_operation(&op->nfs_resop4_u.opreaddir); case NFS4::OP_READLINK: return nfs4_operation(&op->nfs_resop4_u.opreadlink); case NFS4::OP_REMOVE: return nfs4_operation(&op->nfs_resop4_u.opremove); case NFS4::OP_RENAME: return nfs4_operation(&op->nfs_resop4_u.oprename); case NFS4::OP_RENEW: return nfs4_operation(&op->nfs_resop4_u.oprenew); case NFS4::OP_RESTOREFH: return nfs4_operation(&op->nfs_resop4_u.oprestorefh); case NFS4::OP_SAVEFH: return nfs4_operation(&op->nfs_resop4_u.opsavefh); case NFS4::OP_SECINFO: return nfs4_operation(&op->nfs_resop4_u.opsecinfo); case NFS4::OP_SETATTR: return nfs4_operation(&op->nfs_resop4_u.opsetattr); case NFS4::OP_SETCLIENTID: return nfs4_operation(&op->nfs_resop4_u.opsetclientid); case NFS4::OP_SETCLIENTID_CONFIRM: return nfs4_operation(&op->nfs_resop4_u.opsetclientid_confirm); case NFS4::OP_VERIFY: return nfs4_operation(&op->nfs_resop4_u.opverify); case NFS4::OP_WRITE: return nfs4_operation(&op->nfs_resop4_u.opwrite); case NFS4::OP_RELEASE_LOCKOWNER: return nfs4_operation(&op->nfs_resop4_u.oprelease_lockowner); case NFS4::OP_GET_DIR_DELEGATION: return nfs4_operation(&op->nfs_resop4_u.opget_dir_delegation); case NFS4::OP_ILLEGAL: return nfs4_operation(&op->nfs_resop4_u.opillegal); } out << " ]"; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::ACCESS4args* args) { if (args) { if ((args->access) & NFS4::ACCESS4_READ) { out << "READ "; } if ((args->access) & NFS4::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((args->access) & NFS4::ACCESS4_MODIFY) { out << "MODIFY "; } if ((args->access) & NFS4::ACCESS4_EXTEND) { out << "EXTEND "; } if ((args->access) & NFS4::ACCESS4_DELETE) { out << "DELETE "; } if ((args->access) & NFS4::ACCESS4_EXECUTE) { out << "EXECUTE "; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::ACCESS4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " supported: "; if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_READ) { out << "READ "; } if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_MODIFY) { out << "MODIFY "; } if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_EXTEND) { out << "EXTEND "; } if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_DELETE) { out << "DELETE "; } if ((res->ACCESS4res_u.resok4.supported) & NFS4::ACCESS4_EXECUTE) { out << "EXECUTE "; } out << " access: "; if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_READ) { out << "READ "; } if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_MODIFY) { out << "MODIFY "; } if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_EXTEND) { out << "EXTEND "; } if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_DELETE) { out << "DELETE "; } if ((res->ACCESS4res_u.resok4.access) & NFS4::ACCESS4_EXECUTE) { out << "EXECUTE "; } } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::CLOSE4args* args) { if (args) { out << "seqid: " << std::hex << args->seqid << std::dec << " open state id:" << args->open_stateid; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::CLOSE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " open state id:" << res->CLOSE4res_u.open_stateid; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::COMMIT4args* args) { if (args) { out << "offset: " << args->offset << " count: " << args->count; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::COMMIT4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " write verifier: "; print_hex(out, res->COMMIT4res_u.resok4.writeverf, NFS4::NFS4_VERIFIER_SIZE); } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::CREATE4args* args) { if (args) { out << "object type: " << args->objtype << " object name: " << args->objname << " create attributes: " << args->createattrs; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::CREATE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) out << res->CREATE4res_u.resok4.cinfo << ' ' << res->CREATE4res_u.resok4.attrset; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::DELEGPURGE4args* args) { if (args) { out << "client id: " << std::hex << args->clientid << std::dec; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::DELEGPURGE4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::DELEGRETURN4args* args) { if (args) { out << args->deleg_stateid; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::DELEGRETURN4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::GETATTR4args* args) { if (args) { out << args->attr_request; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::GETATTR4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << ' ' << res->GETATTR4res_u.resok4.obj_attributes; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LINK4args* args) { if (args) { out << "new name: " << args->newname; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LINK4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << ' ' << res->LINK4res_u.resok4.cinfo; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCK4args* args) { if (args) { out << "lock type: " << args->locktype << " reclaim: " << args->reclaim << " offset: " << args->offset << " length: " << args->length << " locker: " << args->locker; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCK4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { switch (res->status) { case NFS4::nfsstat4::NFS4_OK: out << " lock stat id: " << res->LOCK4res_u.resok4.lock_stateid; break; case NFS4::nfsstat4::NFS4ERR_DENIED: out << " offset: " << res->LOCK4res_u.denied.offset << " length: " << res->LOCK4res_u.denied.length << " lock type: " << res->LOCK4res_u.denied.locktype << " owner: " << res->LOCK4res_u.denied.owner; break; default: break; } } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCKT4args* args) { if (args) { out << "lock type: " << args->locktype << " offset: " << args->offset << " length: " << args->length << " owner: " << args->owner; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCKT4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4ERR_DENIED) out << " offset: " << res->LOCKT4res_u.denied.offset << " length: " << res->LOCKT4res_u.denied.length << " lock type: " << res->LOCKT4res_u.denied.locktype << " owner: " << res->LOCKT4res_u.denied.owner; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCKU4args* args) { if (args) { out << "lock type: " << args->locktype << " seqid: " << std::hex << args->seqid << std::dec << " lock state id: " << args->lock_stateid << " offset: " << args->offset << " length: " << args->length; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOCKU4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " lock state id: " << res->LOCKU4res_u.lock_stateid; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOOKUP4args* args) { if (args) { out << "object name: " << args->objname; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOOKUP4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::NVERIFY4args* args) { if (args) { out << "object attributes: " << args->obj_attributes; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::NVERIFY4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN4args* args) { static const char* const open4_share_access[4] = {"", "READ", "WRITE", "BOTH"}; static const char* const open4_share_deny[4] = {"NONE", "READ", "WRITE", "BOTH"}; if (args) { out << "seqid: " << std::hex << args->seqid << std::dec << " share access: " << open4_share_access[args->share_access] << " share deny: " << open4_share_deny[args->share_deny] << ' ' << args->owner << ' ' << args->openhow << ' ' << args->claim; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) out << res->OPEN4res_u.resok4.stateid << res->OPEN4res_u.resok4.cinfo << " results flags: " << std::hex << res->OPEN4res_u.resok4.rflags << std::dec << ' ' << res->OPEN4res_u.resok4.attrset << ' ' << res->OPEN4res_u.resok4.delegation; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPENATTR4args* args) { if (args) { out << "create directory: " << args->createdir; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPENATTR4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN_CONFIRM4args* args) { if (args) { out << "open state id:" << args->open_stateid << " seqid: " << std::hex << args->seqid << std::dec; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN_CONFIRM4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " open state id:" << res->OPEN_CONFIRM4res_u.resok4.open_stateid; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN_DOWNGRADE4args* args) { if (args) { out << " open state id: " << args->open_stateid << " seqid: " << std::hex << args->seqid << std::dec << " share access: " << args->share_access << " share deny: " << args->share_deny; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::OPEN_DOWNGRADE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << ' ' << res->OPEN_DOWNGRADE4res_u.resok4.open_stateid; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::PUTFH4args* args) { if (args) { out << "object: "; print_nfs_fh(out, args->object.nfs_fh4_val, args->object.nfs_fh4_len); } } void PrintAnalyzer::nfs4_operation(const struct NFS4::PUTFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::READ4args* args) { if (args) { out << args->stateid << " offset: " << args->offset << " count: " << args->count; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::READ4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " eof: " << res->READ4res_u.resok4.eof; if (res->READ4res_u.resok4.data.data_len) { out << " data : " << *res->READ4res_u.resok4.data.data_val; } } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::READDIR4args* args) { if (args) { out << "cookie: " << args->cookie << " cookieverf: " << args->cookieverf << " dir count: " << args->dircount << " max count: " << args->maxcount << " attributes request: " << args->attr_request; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::READDIR4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) out << " cookie verifier: " << res->READDIR4res_u.resok4.cookieverf << " reply: " << res->READDIR4res_u.resok4.reply; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::REMOVE4args* args) { if (args) { out << "target: " << args->target; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::REMOVE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << ' ' << res->REMOVE4res_u.resok4.cinfo; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RENAME4args* args) { if (args) { out << "old name: " << args->oldname << " new name: " << args->newname; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RENAME4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) out << " source: " << res->RENAME4res_u.resok4.source_cinfo << " target: " << res->RENAME4res_u.resok4.target_cinfo; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RENEW4args* args) { if (args) { out << "client id: " << std::hex << args->clientid << std::dec; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RENEW4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SECINFO4args* args) { if (args) { out << "name: " << args->name; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SECINFO4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { if (res->SECINFO4res_u.resok4.SECINFO4resok_len) out << " data : " << *res->SECINFO4res_u.resok4.SECINFO4resok_val; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETATTR4args* args) { if (args) { out << "state id:" << args->stateid << ' ' << args->obj_attributes; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETATTR4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { out << ' ' << res->attrsset; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETCLIENTID4args* args) { if (args) { out << args->client << " callback: " << args->callback << " callback ident: " << std::hex << args->callback_ident << std::dec; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETCLIENTID4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { switch (res->status) { case NFS4::nfsstat4::NFS4_OK: out << " client id: " << std::hex << res->SETCLIENTID4res_u.resok4.clientid << std::dec << " verifier: "; print_hex(out, res->SETCLIENTID4res_u.resok4.setclientid_confirm, NFS4::NFS4_VERIFIER_SIZE); break; case NFS4::nfsstat4::NFS4ERR_CLID_INUSE: out << " client using: " << res->SETCLIENTID4res_u.client_using; break; default: break; } } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETCLIENTID_CONFIRM4args* args) { if (args) { out << " client id: " << std::hex << args->clientid << std::dec << " verifier: "; print_hex(out, args->setclientid_confirm, NFS4::NFS4_VERIFIER_SIZE); } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SETCLIENTID_CONFIRM4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::VERIFY4args* args) { if (args) { out << "object attributes: " << args->obj_attributes; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::VERIFY4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::WRITE4args* args) { if (args) { out << args->stateid << " offset: " << args->offset << " stable: " << args->stable << " data length: " << args->data.data_len; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::WRITE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " count: " << res->WRITE4res_u.resok4.count << " committed: " << res->WRITE4res_u.resok4.committed << " write verifier: "; print_hex(out, res->WRITE4res_u.resok4.writeverf, NFS4::NFS4_VERIFIER_SIZE); } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RELEASE_LOCKOWNER4args* args) { if (args) { out << "lock owner: " << args->lock_owner; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RELEASE_LOCKOWNER4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::GET_DIR_DELEGATION4args* args) { if (args) out << "client id: " << args->clientid << " notification types: " << args->notif_types << " dir notification delay: " << args->dir_notif_delay << " dir entry notification delay: " << args->dir_entry_notif_delay; } void PrintAnalyzer::nfs4_operation(const struct NFS4::GET_DIR_DELEGATION4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) out << ' ' << res->GET_DIR_DELEGATION4res_u.resok4.stateid << " status: " << res->GET_DIR_DELEGATION4res_u.resok4.status << " notification types: " << res->GET_DIR_DELEGATION4res_u.resok4.notif_types << " dir: " << res->GET_DIR_DELEGATION4res_u.resok4.dir_notif_attrs << " dir entry: " << res->GET_DIR_DELEGATION4res_u.resok4.dir_entry_notif_attrs; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::GETFH4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " object: " << res->GETFH4res_u.resok4.object; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::LOOKUPP4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::PUTPUBFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::PUTROOTFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::READLINK4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS4::nfsstat4::NFS4_OK) { out << " link: " << res->READLINK4res_u.resok4.link; } } } void PrintAnalyzer::nfs4_operation(const struct NFS4::RESTOREFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::SAVEFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs4_operation(const struct NFS4::ILLEGAL4res* res) { if (res) { out << "status: " << res->status; } } // Print NFSv4.1 procedures // 1st line - PRC information: src and dst hosts, status of RPC procedure // 2nd line - related RPC procedure-specific arguments // 3rd line - related NFSv4-operations // 4th line - related RPC procedure-specific results // 5rd line - related NFSv4-operations void PrintAnalyzer::compound41(const RPCProcedure* proc, const struct NFS41::COMPOUND4args* args, const struct NFS41::COMPOUND4res* res) { if (!print_procedure(out, proc)) { return; } const u_int* array_len {}; if (args) { array_len = &args->argarray.argarray_len; out << "\tCALL [ operations: " << *array_len << " tag: " << args->tag << " minor version: " << args->minorversion; if (*array_len) { NFS41::nfs_argop4* current_el {args->argarray.argarray_val}; for (u_int i {0}; i < *array_len; i++, current_el++) { out << "\n\t\t[ "; nfs41_operation(current_el); out << " ] "; } out << " ]\n"; } } if (res) { array_len = &res->resarray.resarray_len; out << "\tREPLY [ operations: " << *array_len << " status: " << res->status << " tag: " << res->tag; if (*array_len) { NFS41::nfs_resop4* current_el {res->resarray.resarray_val}; for (u_int i {0}; i < *array_len; i++, current_el++) { out << "\n\t\t[ "; nfs41_operation(current_el); out << " ] "; } out << " ]\n"; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::nfs_argop4* op) { if (op) { out << print_nfs41_procedures(static_cast(op->argop)) << '(' << op->argop << ") [ "; switch (op->argop) { case NFS41::OP_ACCESS: return nfs41_operation(&op->nfs_argop4_u.opaccess); case NFS41::OP_CLOSE: return nfs41_operation(&op->nfs_argop4_u.opclose); case NFS41::OP_COMMIT: return nfs41_operation(&op->nfs_argop4_u.opcommit); case NFS41::OP_CREATE: return nfs41_operation(&op->nfs_argop4_u.opcreate); case NFS41::OP_DELEGPURGE: return nfs41_operation(&op->nfs_argop4_u.opdelegpurge); case NFS41::OP_DELEGRETURN: return nfs41_operation(&op->nfs_argop4_u.opdelegreturn); case NFS41::OP_GETATTR: return nfs41_operation(&op->nfs_argop4_u.opgetattr); case NFS41::OP_GETFH: break; case NFS41::OP_LINK: return nfs41_operation(&op->nfs_argop4_u.oplink); case NFS41::OP_LOCK: return nfs41_operation(&op->nfs_argop4_u.oplock); case NFS41::OP_LOCKT: return nfs41_operation(&op->nfs_argop4_u.oplockt); case NFS41::OP_LOCKU: return nfs41_operation(&op->nfs_argop4_u.oplocku); case NFS41::OP_LOOKUP: return nfs41_operation(&op->nfs_argop4_u.oplookup); case NFS41::OP_LOOKUPP: break; case NFS41::OP_NVERIFY: return nfs41_operation(&op->nfs_argop4_u.opnverify); case NFS41::OP_OPEN: return nfs41_operation(&op->nfs_argop4_u.opopen); case NFS41::OP_OPENATTR: return nfs41_operation(&op->nfs_argop4_u.opopenattr); case NFS41::OP_OPEN_CONFIRM: return nfs41_operation(&op->nfs_argop4_u.opopen_confirm); case NFS41::OP_OPEN_DOWNGRADE: return nfs41_operation(&op->nfs_argop4_u.opopen_downgrade); case NFS41::OP_PUTFH: return nfs41_operation(&op->nfs_argop4_u.opputfh); case NFS41::OP_PUTPUBFH: break; case NFS41::OP_PUTROOTFH: break; case NFS41::OP_READ: return nfs41_operation(&op->nfs_argop4_u.opread); case NFS41::OP_READDIR: return nfs41_operation(&op->nfs_argop4_u.opreaddir); case NFS41::OP_READLINK: break; case NFS41::OP_REMOVE: return nfs41_operation(&op->nfs_argop4_u.opremove); case NFS41::OP_RENAME: return nfs41_operation(&op->nfs_argop4_u.oprename); case NFS41::OP_RENEW: return nfs41_operation(&op->nfs_argop4_u.oprenew); case NFS41::OP_RESTOREFH: break; case NFS41::OP_SAVEFH: break; case NFS41::OP_SECINFO: return nfs41_operation(&op->nfs_argop4_u.opsecinfo); case NFS41::OP_SETATTR: return nfs41_operation(&op->nfs_argop4_u.opsetattr); case NFS41::OP_SETCLIENTID: return nfs41_operation(&op->nfs_argop4_u.opsetclientid); case NFS41::OP_SETCLIENTID_CONFIRM: return nfs41_operation(&op->nfs_argop4_u.opsetclientid_confirm); case NFS41::OP_VERIFY: return nfs41_operation(&op->nfs_argop4_u.opverify); case NFS41::OP_WRITE: return nfs41_operation(&op->nfs_argop4_u.opwrite); case NFS41::OP_RELEASE_LOCKOWNER: return nfs41_operation(&op->nfs_argop4_u.oprelease_lockowner); case NFS41::OP_BACKCHANNEL_CTL: return nfs41_operation(&op->nfs_argop4_u.opbackchannel_ctl); case NFS41::OP_BIND_CONN_TO_SESSION: return nfs41_operation(&op->nfs_argop4_u.opbind_conn_to_session); case NFS41::OP_EXCHANGE_ID: return nfs41_operation(&op->nfs_argop4_u.opexchange_id); case NFS41::OP_CREATE_SESSION: return nfs41_operation(&op->nfs_argop4_u.opcreate_session); case NFS41::OP_DESTROY_SESSION: return nfs41_operation(&op->nfs_argop4_u.opdestroy_session); case NFS41::OP_FREE_STATEID: return nfs41_operation(&op->nfs_argop4_u.opfree_stateid); case NFS41::OP_GET_DIR_DELEGATION: return nfs41_operation(&op->nfs_argop4_u.opget_dir_delegation); case NFS41::OP_GETDEVICEINFO: return nfs41_operation(&op->nfs_argop4_u.opgetdeviceinfo); case NFS41::OP_GETDEVICELIST: return nfs41_operation(&op->nfs_argop4_u.opgetdevicelist); case NFS41::OP_LAYOUTCOMMIT: return nfs41_operation(&op->nfs_argop4_u.oplayoutcommit); case NFS41::OP_LAYOUTGET: return nfs41_operation(&op->nfs_argop4_u.oplayoutget); case NFS41::OP_LAYOUTRETURN: return nfs41_operation(&op->nfs_argop4_u.oplayoutreturn); case NFS41::OP_SECINFO_NO_NAME: return nfs41_operation(&op->nfs_argop4_u.opsecinfo_no_name); case NFS41::OP_SEQUENCE: return nfs41_operation(&op->nfs_argop4_u.opsequence); case NFS41::OP_SET_SSV: return nfs41_operation(&op->nfs_argop4_u.opset_ssv); case NFS41::OP_TEST_STATEID: return nfs41_operation(&op->nfs_argop4_u.optest_stateid); case NFS41::OP_WANT_DELEGATION: return nfs41_operation(&op->nfs_argop4_u.opwant_delegation); case NFS41::OP_DESTROY_CLIENTID: return nfs41_operation(&op->nfs_argop4_u.opdestroy_clientid); case NFS41::OP_RECLAIM_COMPLETE: return nfs41_operation(&op->nfs_argop4_u.opreclaim_complete); case NFS41::OP_ILLEGAL: break; default: break; } out << " ]"; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::nfs_resop4* op) { if (op) { out << print_nfs41_procedures(static_cast(op->resop)) << '(' << op->resop << ") [ "; switch (op->resop) { case NFS41::OP_ACCESS: return nfs41_operation(&op->nfs_resop4_u.opaccess); case NFS41::OP_CLOSE: return nfs41_operation(&op->nfs_resop4_u.opclose); case NFS41::OP_COMMIT: return nfs41_operation(&op->nfs_resop4_u.opcommit); case NFS41::OP_CREATE: return nfs41_operation(&op->nfs_resop4_u.opcreate); case NFS41::OP_DELEGPURGE: return nfs41_operation(&op->nfs_resop4_u.opdelegpurge); case NFS41::OP_DELEGRETURN: return nfs41_operation(&op->nfs_resop4_u.opdelegreturn); case NFS41::OP_GETATTR: return nfs41_operation(&op->nfs_resop4_u.opgetattr); case NFS41::OP_GETFH: return nfs41_operation(&op->nfs_resop4_u.opgetfh); case NFS41::OP_LINK: return nfs41_operation(&op->nfs_resop4_u.oplink); case NFS41::OP_LOCK: return nfs41_operation(&op->nfs_resop4_u.oplock); case NFS41::OP_LOCKT: return nfs41_operation(&op->nfs_resop4_u.oplockt); case NFS41::OP_LOCKU: return nfs41_operation(&op->nfs_resop4_u.oplocku); case NFS41::OP_LOOKUP: return nfs41_operation(&op->nfs_resop4_u.oplookup); case NFS41::OP_LOOKUPP: return nfs41_operation(&op->nfs_resop4_u.oplookupp); case NFS41::OP_NVERIFY: return nfs41_operation(&op->nfs_resop4_u.opnverify); case NFS41::OP_OPEN: return nfs41_operation(&op->nfs_resop4_u.opopen); case NFS41::OP_OPENATTR: return nfs41_operation(&op->nfs_resop4_u.opopenattr); case NFS41::OP_OPEN_CONFIRM: return nfs41_operation(&op->nfs_resop4_u.opopen_confirm); case NFS41::OP_OPEN_DOWNGRADE: return nfs41_operation(&op->nfs_resop4_u.opopen_downgrade); case NFS41::OP_PUTFH: return nfs41_operation(&op->nfs_resop4_u.opputfh); case NFS41::OP_PUTPUBFH: return nfs41_operation(&op->nfs_resop4_u.opputpubfh); case NFS41::OP_PUTROOTFH: return nfs41_operation(&op->nfs_resop4_u.opputrootfh); case NFS41::OP_READ: return nfs41_operation(&op->nfs_resop4_u.opread); case NFS41::OP_READDIR: return nfs41_operation(&op->nfs_resop4_u.opreaddir); case NFS41::OP_READLINK: return nfs41_operation(&op->nfs_resop4_u.opreadlink); case NFS41::OP_REMOVE: return nfs41_operation(&op->nfs_resop4_u.opremove); case NFS41::OP_RENAME: return nfs41_operation(&op->nfs_resop4_u.oprename); case NFS41::OP_RENEW: return nfs41_operation(&op->nfs_resop4_u.oprenew); case NFS41::OP_RESTOREFH: return nfs41_operation(&op->nfs_resop4_u.oprestorefh); case NFS41::OP_SAVEFH: return nfs41_operation(&op->nfs_resop4_u.opsavefh); case NFS41::OP_SECINFO: return nfs41_operation(&op->nfs_resop4_u.opsecinfo); case NFS41::OP_SETATTR: return nfs41_operation(&op->nfs_resop4_u.opsetattr); case NFS41::OP_SETCLIENTID: return nfs41_operation(&op->nfs_resop4_u.opsetclientid); case NFS41::OP_SETCLIENTID_CONFIRM: return nfs41_operation(&op->nfs_resop4_u.opsetclientid_confirm); case NFS41::OP_VERIFY: return nfs41_operation(&op->nfs_resop4_u.opverify); case NFS41::OP_WRITE: return nfs41_operation(&op->nfs_resop4_u.opwrite); case NFS41::OP_RELEASE_LOCKOWNER: return nfs41_operation(&op->nfs_resop4_u.oprelease_lockowner); case NFS41::OP_BACKCHANNEL_CTL: return nfs41_operation(&op->nfs_resop4_u.opbackchannel_ctl); case NFS41::OP_BIND_CONN_TO_SESSION: return nfs41_operation(&op->nfs_resop4_u.opbind_conn_to_session); case NFS41::OP_EXCHANGE_ID: return nfs41_operation(&op->nfs_resop4_u.opexchange_id); case NFS41::OP_CREATE_SESSION: return nfs41_operation(&op->nfs_resop4_u.opcreate_session); case NFS41::OP_DESTROY_SESSION: return nfs41_operation(&op->nfs_resop4_u.opdestroy_session); case NFS41::OP_FREE_STATEID: return nfs41_operation(&op->nfs_resop4_u.opfree_stateid); case NFS41::OP_GET_DIR_DELEGATION: return nfs41_operation(&op->nfs_resop4_u.opget_dir_delegation); case NFS41::OP_GETDEVICEINFO: return nfs41_operation(&op->nfs_resop4_u.opgetdeviceinfo); case NFS41::OP_GETDEVICELIST: return nfs41_operation(&op->nfs_resop4_u.opgetdevicelist); case NFS41::OP_LAYOUTCOMMIT: return nfs41_operation(&op->nfs_resop4_u.oplayoutcommit); case NFS41::OP_LAYOUTGET: return nfs41_operation(&op->nfs_resop4_u.oplayoutget); case NFS41::OP_LAYOUTRETURN: return nfs41_operation(&op->nfs_resop4_u.oplayoutreturn); case NFS41::OP_SECINFO_NO_NAME: return nfs41_operation(&op->nfs_resop4_u.opsecinfo_no_name); case NFS41::OP_SEQUENCE: return nfs41_operation(&op->nfs_resop4_u.opsequence); case NFS41::OP_SET_SSV: return nfs41_operation(&op->nfs_resop4_u.opset_ssv); case NFS41::OP_TEST_STATEID: return nfs41_operation(&op->nfs_resop4_u.optest_stateid); case NFS41::OP_WANT_DELEGATION: return nfs41_operation(&op->nfs_resop4_u.opwant_delegation); case NFS41::OP_DESTROY_CLIENTID: return nfs41_operation(&op->nfs_resop4_u.opdestroy_clientid); case NFS41::OP_RECLAIM_COMPLETE: return nfs41_operation(&op->nfs_resop4_u.opreclaim_complete); case NFS41::OP_ILLEGAL: return nfs41_operation(&op->nfs_resop4_u.opillegal); default: break; } out << " ]"; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::ACCESS4args* args) { if (args) { if ((args->access) & NFS41::ACCESS4_READ) { out << "READ "; } if ((args->access) & NFS41::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((args->access) & NFS41::ACCESS4_MODIFY) { out << "MODIFY "; } if ((args->access) & NFS41::ACCESS4_EXTEND) { out << "EXTEND "; } if ((args->access) & NFS41::ACCESS4_DELETE) { out << "DELETE "; } if ((args->access) & NFS41::ACCESS4_EXECUTE) { out << "EXECUTE "; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::ACCESS4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " supported: "; if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_READ) { out << "READ "; } if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_MODIFY) { out << "MODIFY "; } if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_EXTEND) { out << "EXTEND "; } if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_DELETE) { out << "DELETE "; } if ((res->ACCESS4res_u.resok4.supported) & NFS41::ACCESS4_EXECUTE) { out << "EXECUTE "; } out << " access: "; if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_READ) { out << "READ "; } if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_LOOKUP) { out << "LOOKUP "; } if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_MODIFY) { out << "MODIFY "; } if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_EXTEND) { out << "EXTEND "; } if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_DELETE) { out << "DELETE "; } if ((res->ACCESS4res_u.resok4.access) & NFS41::ACCESS4_EXECUTE) { out << "EXECUTE "; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CLOSE4args* args) { if (args) { out << "seqid: " << std::hex << args->seqid << std::dec << " open state id:" << args->open_stateid; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CLOSE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " open state id:" << res->CLOSE4res_u.open_stateid; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::COMMIT4args* args) { if (args) { out << "offset: " << args->offset << " count: " << args->count; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::COMMIT4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " write verifier: "; print_hex(out, res->COMMIT4res_u.resok4.writeverf, NFS41::NFS4_VERIFIER_SIZE); } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CREATE4args* args) { if (args) { out << "object type: " << args->objtype << " object name: " << args->objname << " create attributes: " << args->createattrs; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CREATE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) out << res->CREATE4res_u.resok4.cinfo << ' ' << res->CREATE4res_u.resok4.attrset; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DELEGPURGE4args* args) { if (args) { out << "client id: " << std::hex << args->clientid << std::dec; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DELEGPURGE4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DELEGRETURN4args* args) { if (args) { out << args->deleg_stateid; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DELEGRETURN4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETATTR4args* args) { if (args) { out << args->attr_request; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETATTR4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << ' ' << res->GETATTR4res_u.resok4.obj_attributes; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LINK4args* args) { if (args) { out << "new name: " << args->newname; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LINK4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << ' ' << res->LINK4res_u.resok4.cinfo; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCK4args* args) { if (args) { out << "lock type: " << args->locktype << " reclaim: " << args->reclaim << " offset: " << args->offset << " length: " << args->length << " locker: " << args->locker; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCK4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { switch (res->status) { case NFS41::nfsstat4::NFS4_OK: out << " lock stat id: " << res->LOCK4res_u.resok4.lock_stateid; break; case NFS41::nfsstat4::NFS4ERR_DENIED: out << " offset: " << res->LOCK4res_u.denied.offset << " length: " << res->LOCK4res_u.denied.length << " lock type: " << res->LOCK4res_u.denied.locktype << " owner: " << res->LOCK4res_u.denied.owner; break; default: break; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCKT4args* args) { if (args) { out << "lock type: " << args->locktype << " offset: " << args->offset << " length: " << args->length << " owner: " << args->owner; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCKT4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4ERR_DENIED) out << " offset: " << res->LOCKT4res_u.denied.offset << " length: " << res->LOCKT4res_u.denied.length << " lock type: " << res->LOCKT4res_u.denied.locktype << " owner: " << res->LOCKT4res_u.denied.owner; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCKU4args* args) { if (args) { out << "lock type: " << args->locktype << " seqid: " << std::hex << args->seqid << std::dec << " lock state id: " << args->lock_stateid << " offset: " << args->offset << " length: " << args->length; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOCKU4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " lock state id: " << res->LOCKU4res_u.lock_stateid; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOOKUP4args* args) { if (args) { out << "object name: " << args->objname; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOOKUP4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::NVERIFY4args* args) { if (args) { out << "object attributes: " << args->obj_attributes; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::NVERIFY4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN4args* args) { static const char* const open4_share_access[4] = {"", "READ", "WRITE", "BOTH"}; static const char* const open4_share_deny[4] = {"NONE", "READ", "WRITE", "BOTH"}; if (args) { out << "seqid: " << std::hex << args->seqid << std::dec << " share access: " << open4_share_access[args->share_access] << " share deny: " << open4_share_deny[args->share_deny] << ' ' << args->owner << ' ' << args->openhow << ' ' << args->claim; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) out << res->OPEN4res_u.resok4.stateid << res->OPEN4res_u.resok4.cinfo << " results flags: " << std::hex << res->OPEN4res_u.resok4.rflags << std::dec << ' ' << res->OPEN4res_u.resok4.attrset << ' ' << res->OPEN4res_u.resok4.delegation; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPENATTR4args* args) { if (args) { out << "create directory: " << args->createdir; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPENATTR4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN_CONFIRM4args* args) { if (args) { out << "open state id:" << args->open_stateid << " seqid: " << std::hex << args->seqid << std::dec; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN_CONFIRM4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " open state id:" << res->OPEN_CONFIRM4res_u.resok4.open_stateid; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN_DOWNGRADE4args* args) { if (args) { out << " open state id: " << args->open_stateid << " seqid: " << std::hex << args->seqid << std::dec << " share access: " << args->share_access << " share deny: " << args->share_deny; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::OPEN_DOWNGRADE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << ' ' << res->OPEN_DOWNGRADE4res_u.resok4.open_stateid; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::PUTFH4args* args) { if (args) { out << "object: "; print_nfs_fh(out, args->object.nfs_fh4_val, args->object.nfs_fh4_len); } } void PrintAnalyzer::nfs41_operation(const struct NFS41::PUTFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::READ4args* args) { if (args) { out << args->stateid << " offset: " << args->offset << " count: " << args->count; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::READ4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " eof: " << res->READ4res_u.resok4.eof; if (res->READ4res_u.resok4.data.data_len) { out << " data: " << *res->READ4res_u.resok4.data.data_val; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::READDIR4args* args) { if (args) { out << "cookie: " << args->cookie << " cookieverf: " << args->cookieverf << " dir count: " << args->dircount << " max count: " << args->maxcount << " attributes request: " << args->attr_request; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::READDIR4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) out << " cookie verifier: " << res->READDIR4res_u.resok4.cookieverf << " reply: " << res->READDIR4res_u.resok4.reply; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::REMOVE4args* args) { if (args) { out << "target: " << args->target; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::REMOVE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << ' ' << res->REMOVE4res_u.resok4.cinfo; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RENAME4args* args) { if (args) { out << "old name: " << args->oldname << " new name: " << args->newname; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RENAME4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) out << " source: " << res->RENAME4res_u.resok4.source_cinfo << " target: " << res->RENAME4res_u.resok4.target_cinfo; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RENEW4args* args) { if (args) { out << "client id: " << std::hex << args->clientid << std::dec; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RENEW4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SECINFO4args* args) { if (args) { out << "name: " << args->name; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SECINFO4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { if (res->SECINFO4res_u.resok4.SECINFO4resok_len) { out << *res->SECINFO4res_u.resok4.SECINFO4resok_val; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETATTR4args* args) { if (args) { out << "state id:" << args->stateid << ' ' << args->obj_attributes; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETATTR4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { out << ' ' << res->attrsset; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETCLIENTID4args* args) { if (args) { out << args->client << " callback: " << args->callback << " callback ident: " << std::hex << args->callback_ident << std::dec; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETCLIENTID4res* res) { if (res) { out << "status: " << res->status; if (out_all()) { switch (res->status) { case NFS41::nfsstat4::NFS4_OK: out << " client id: " << std::hex << res->SETCLIENTID4res_u.resok4.clientid << std::dec << " verifier: "; print_hex(out, res->SETCLIENTID4res_u.resok4.setclientid_confirm, NFS41::NFS4_VERIFIER_SIZE); break; case NFS41::nfsstat4::NFS4ERR_CLID_INUSE: out << " client using: " << res->SETCLIENTID4res_u.client_using; break; default: break; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETCLIENTID_CONFIRM4args* args) { if (args) { out << " client id: " << std::hex << args->clientid << std::dec << " verifier: "; print_hex(out, args->setclientid_confirm, NFS41::NFS4_VERIFIER_SIZE); } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SETCLIENTID_CONFIRM4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::VERIFY4args* args) { if (args) { out << "object attributes: " << args->obj_attributes; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::VERIFY4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::WRITE4args* args) { if (args) { out << args->stateid << " offset: " << args->offset << " stable: " << args->stable << " data length: " << args->data.data_len; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::WRITE4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " count: " << res->WRITE4res_u.resok4.count << " committed: " << res->WRITE4res_u.resok4.committed << " write verifier: "; print_hex(out, res->WRITE4res_u.resok4.writeverf, NFS41::NFS4_VERIFIER_SIZE); } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RELEASE_LOCKOWNER4args* args) { if (args) { out << "lock owner: " << args->lock_owner; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RELEASE_LOCKOWNER4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETFH4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " object: " << res->GETFH4res_u.resok4.object; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LOOKUPP4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::PUTPUBFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::PUTROOTFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::READLINK4res* res) { if (res) { out << "status: " << res->status; if (out_all() && res->status == NFS41::nfsstat4::NFS4_OK) { out << " link: " << res->READLINK4res_u.resok4.link; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RESTOREFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SAVEFH4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GET_DIR_DELEGATION4args* args) { if (args) out << "signal delegation available: " << args->gdda_signal_deleg_avail << " notification types: " << args->gdda_notification_types << " child attr delay: " << args->gdda_child_attr_delay << " dir attr delay: " << args->gdda_dir_attr_delay << " child child attributes: " << args->gdda_child_attributes << " child dir attributes: " << args->gdda_dir_attributes; } void PrintAnalyzer::nfs41_operation(const struct NFS41::GET_DIR_DELEGATION4res* res) { if (res) { out << "status: " << res->gddr_status; if (out_all() && res->gddr_status == NFS41::nfsstat4::NFS4_OK) { out << " status: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.gddrnf_status; if (out_all() && res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.gddrnf_status == NFS41::gddrnf4_status::GDD4_OK) { out << " cookieverf: "; print_hex(out, res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4.gddr_cookieverf, NFS41::NFS4_VERIFIER_SIZE); out << " stateid: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4.gddr_stateid << " notification: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4.gddr_notification << " child attributes: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4.gddr_child_attributes << " dir attributes: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4.gddr_dir_attributes; } else { out << " will signal deleg avail: " << res->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4.GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_will_signal_deleg_avail; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::BACKCHANNEL_CTL4args* args) { if (args) { out << "program: " << args->bca_cb_program << " sec parms: "; NFS41::callback_sec_parms4* current_el {args->bca_sec_parms.bca_sec_parms_val}; for (u_int i {0}; i < args->bca_sec_parms.bca_sec_parms_len; i++, current_el++) { out << ' ' << current_el; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::BACKCHANNEL_CTL4res* res) { if (res) { out << "status: " << res->bcr_status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::BIND_CONN_TO_SESSION4args* args) { if (args) { out << "sessid: "; print_hex(out, args->bctsa_sessid, NFS41::NFS4_SESSIONID_SIZE); out << " dir: " << args->bctsa_dir << " use conn in rdma mode: " << args->bctsa_use_conn_in_rdma_mode; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::BIND_CONN_TO_SESSION4res* res) { if (res) { out << "status: " << res->bctsr_status; if (out_all() && res->bctsr_status == NFS41::nfsstat4::NFS4_OK) { out << " sessid: "; print_hex(out, res->BIND_CONN_TO_SESSION4res_u.bctsr_resok4.bctsr_sessid, NFS41::NFS4_SESSIONID_SIZE); out << " dir: " << res->BIND_CONN_TO_SESSION4res_u.bctsr_resok4.bctsr_dir << " use conn in rdma mode: " << res->BIND_CONN_TO_SESSION4res_u.bctsr_resok4.bctsr_use_conn_in_rdma_mode; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::EXCHANGE_ID4args* args) { if (args) { out << "client owner: " << args->eia_clientowner << " flags: " << args->eia_flags << " state protect: " << args->eia_state_protect << " client impl id: "; NFS41::nfs_impl_id4* current_el {args->eia_client_impl_id.eia_client_impl_id_val}; for (u_int i {0}; i < args->eia_client_impl_id.eia_client_impl_id_len; i++, current_el++) { out << ' ' << current_el; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::EXCHANGE_ID4res* res) { if (res) { out << "status: " << res->eir_status; if (out_all() && res->eir_status == NFS41::nfsstat4::NFS4_OK) { out << " clientid: " << res->EXCHANGE_ID4res_u.eir_resok4.eir_clientid << " sequenceid: 0x" << std::hex << res->EXCHANGE_ID4res_u.eir_resok4.eir_sequenceid << std::dec << " flags: " << res->EXCHANGE_ID4res_u.eir_resok4.eir_flags << " state protect: " << res->EXCHANGE_ID4res_u.eir_resok4.eir_state_protect << " server owner: " << res->EXCHANGE_ID4res_u.eir_resok4.eir_server_owner << " server scope: "; print_hex(out, res->EXCHANGE_ID4res_u.eir_resok4.eir_server_scope.eir_server_scope_val, res->EXCHANGE_ID4res_u.eir_resok4.eir_server_scope.eir_server_scope_len); out << " server impl id:"; NFS41::nfs_impl_id4* current_el {res->EXCHANGE_ID4res_u.eir_resok4.eir_server_impl_id.eir_server_impl_id_val}; for (u_int i {0}; i < res->EXCHANGE_ID4res_u.eir_resok4.eir_server_impl_id.eir_server_impl_id_len; i++, current_el++) { out << ' ' << current_el; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CREATE_SESSION4args* args) { if (args) { out << "clientid: 0x" << std::hex << args->csa_clientid << "; seqid: 0x" << std::hex << args->csa_sequence << std::dec << "; flags: " << args->csa_flags << "; fore chan attrs: [ " << args->csa_fore_chan_attrs << " ] " << "; fore back attrs: [ " << args->csa_back_chan_attrs << " ] " << "; cb program: 0x" << std::hex << args->csa_cb_program << std::dec << "; callback sec parms:"; NFS41::callback_sec_parms4* current_el {args->csa_sec_parms.csa_sec_parms_val}; for (u_int i {0}; i < args->csa_sec_parms.csa_sec_parms_len; i++, current_el++) { out << ' ' << current_el; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::CREATE_SESSION4res* res) { if (res) { out << "status: " << res->csr_status; if (out_all() && res->csr_status == NFS41::nfsstat4::NFS4_OK) { out << " session id: "; print_hex(out, res->CREATE_SESSION4res_u.csr_resok4.csr_sessionid, NFS41::NFS4_SESSIONID_SIZE); out << " sequenceid: 0x" << std::hex << res->CREATE_SESSION4res_u.csr_resok4.csr_sequence << std::dec << " flags: " << res->CREATE_SESSION4res_u.csr_resok4.csr_flags << " fore chan attrs: " << res->CREATE_SESSION4res_u.csr_resok4.csr_fore_chan_attrs << " fore back attrs: " << res->CREATE_SESSION4res_u.csr_resok4.csr_back_chan_attrs; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DESTROY_SESSION4args* args) { if (args) { out << "session id: "; print_hex(out, args->dsa_sessionid, NFS41::NFS4_SESSIONID_SIZE); } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DESTROY_SESSION4res* res) { if (res) { out << "status: " << res->dsr_status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::FREE_STATEID4args* args) { if (args) { out << "stateid: " << args->fsa_stateid; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::FREE_STATEID4res* res) { if (res) { out << "status: " << res->fsr_status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETDEVICEINFO4args* args) { if (args) { out << "device id: " << args->gdia_device_id << " layout type: " << args->gdia_layout_type << " maxcount: " << args->gdia_maxcount << " notify types: " << args->gdia_notify_types; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETDEVICEINFO4res* res) { if (res) { out << "status: " << res->gdir_status; if (out_all()) { if (res->gdir_status == NFS41::nfsstat4::NFS4_OK) { out << " device addr: " << res->GETDEVICEINFO4res_u.gdir_resok4.gdir_device_addr << " notification: " << res->GETDEVICEINFO4res_u.gdir_resok4.gdir_notification; } if (res->gdir_status == NFS41::nfsstat4::NFS4ERR_TOOSMALL) { out << " min count: " << res->GETDEVICEINFO4res_u.gdir_mincount; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETDEVICELIST4args* args) { if (args) { out << "layout type: " << args->gdla_layout_type << " max devices: " << args->gdla_maxdevices << " cookie: " << args->gdla_cookie << " cookieverf: " << args->gdla_cookieverf; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::GETDEVICELIST4res* res) { if (res) { out << "status: " << res->gdlr_status; if (out_all() && res->gdlr_status == NFS41::nfsstat4::NFS4_OK) { out << " cookie: " << res->GETDEVICELIST4res_u.gdlr_resok4.gdlr_cookie << " cookieverf: " << res->GETDEVICELIST4res_u.gdlr_resok4.gdlr_cookieverf << " device id list: "; NFS41::deviceid4* current_el {res->GETDEVICELIST4res_u.gdlr_resok4.gdlr_deviceid_list.gdlr_deviceid_list_val}; for (u_int i {0}; i < res->GETDEVICELIST4res_u.gdlr_resok4.gdlr_deviceid_list.gdlr_deviceid_list_len; i++, current_el++) { out << ' ' << current_el; } out << " eof: " << res->GETDEVICELIST4res_u.gdlr_resok4.gdlr_eof; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTCOMMIT4args* args) { if (args) { out << "offset: " << args->loca_offset << " length: " << args->loca_length << " reclaim: " << args->loca_reclaim << " stateid: " << args->loca_stateid << " last write offset: " << args->loca_last_write_offset << " time modify: " << args->loca_time_modify << " tayout update: " << args->loca_layoutupdate; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTCOMMIT4res* res) { if (res) { out << "status: " << res->locr_status; if (out_all() && res->locr_status == NFS41::nfsstat4::NFS4_OK) { out << " new size: " << res->LAYOUTCOMMIT4res_u.locr_resok4.locr_newsize; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTGET4args* args) { if (args) { out << "signal layout avail: " << args->loga_signal_layout_avail << " layout type: " << args->loga_layout_type << " iomode: " << args->loga_iomode << " offset: " << args->loga_offset << " length: " << args->loga_length << " minlength: " << args->loga_minlength << " stateid: " << args->loga_stateid << " maxcount: " << args->loga_maxcount; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTGET4res* res) { if (res) { out << "status: " << res->logr_status; if (out_all()) { if (res->logr_status == NFS41::nfsstat4::NFS4_OK) { out << " return on close: " << res->LAYOUTGET4res_u.logr_resok4.logr_return_on_close << " stateid: " << res->LAYOUTGET4res_u.logr_resok4.logr_stateid << " layout:x "; NFS41::layout4* current_el = res->LAYOUTGET4res_u.logr_resok4.logr_layout.logr_layout_val; for (u_int i {0}; i < res->LAYOUTGET4res_u.logr_resok4.logr_layout.logr_layout_len; i++, current_el++) { out << ' ' << current_el; } } } if (res->logr_status == NFS41::nfsstat4::NFS4ERR_LAYOUTTRYLATER) { out << "will signal layout avail: " << res->LAYOUTGET4res_u.logr_will_signal_layout_avail; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTRETURN4args* args) { if (args) { out << "reclaim: " << args->lora_reclaim << " layout type: " << args->lora_layout_type << " iomode: " << args->lora_iomode << " layout return: " << args->lora_layoutreturn; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::LAYOUTRETURN4res* res) { if (res) { out << "status: " << res->lorr_status; if (out_all() && res->lorr_status == NFS41::nfsstat4::NFS4_OK) { out << " stateid: " << res->LAYOUTRETURN4res_u.lorr_stateid; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SEQUENCE4args* args) { if (args) { out << "sessionid: "; print_hex(out, args->sa_sessionid, NFS41::NFS4_SESSIONID_SIZE); out << " sequenceid: 0x" << std::hex << args->sa_sequenceid << std::dec << " slotid: " << args->sa_slotid << " cache this: " << args->sa_cachethis; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SEQUENCE4res* res) { if (res) { out << "status: " << res->sr_status; if (out_all() && res->sr_status == NFS41::nfsstat4::NFS4_OK) { out << " session: "; print_hex(out, res->SEQUENCE4res_u.sr_resok4.sr_sessionid, NFS41::NFS4_SESSIONID_SIZE); out << " sequenceid: 0x" << std::hex << res->SEQUENCE4res_u.sr_resok4.sr_sequenceid << std::dec << " slotid: " << res->SEQUENCE4res_u.sr_resok4.sr_slotid << " highest slotid: " << res->SEQUENCE4res_u.sr_resok4.sr_highest_slotid << " target highest slotid: " << res->SEQUENCE4res_u.sr_resok4.sr_target_highest_slotid << " status flags: " << res->SEQUENCE4res_u.sr_resok4.sr_status_flags; } } } //SECINFO_NO_NAME4args void PrintAnalyzer::nfs41_operation(const enum NFS41::secinfo_style4* args) { if (args) { out << ' ' << *args; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SET_SSV4args* args) { if (args) { out << "ssv: "; out.write(args->ssa_ssv.ssa_ssv_val, args->ssa_ssv.ssa_ssv_len); out << " digest: "; out.write(args->ssa_digest.ssa_digest_val, args->ssa_digest.ssa_digest_len); } } void PrintAnalyzer::nfs41_operation(const struct NFS41::SET_SSV4res* res) { if (res) { out << "status: " << res->ssr_status; if (out_all() && res->ssr_status == NFS41::nfsstat4::NFS4_OK) { out << " digest: "; out.write(res->SET_SSV4res_u.ssr_resok4.ssr_digest.ssr_digest_val, res->SET_SSV4res_u.ssr_resok4.ssr_digest.ssr_digest_len); } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::TEST_STATEID4args* args) { if (args) { out << "stateids:"; NFS41::stateid4* current_el = args->ts_stateids.ts_stateids_val; for (u_int i {0}; i < args->ts_stateids.ts_stateids_len; i++, current_el++) { out << ' ' << current_el; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::TEST_STATEID4res* res) { if (res) { out << "status: " << res->tsr_status; if (out_all() && res->tsr_status == NFS41::nfsstat4::NFS4_OK) { out << " status codes: "; NFS41::nfsstat4* current_el = res->TEST_STATEID4res_u.tsr_resok4.tsr_status_codes.tsr_status_codes_val; for (u_int i {0}; i < res->TEST_STATEID4res_u.tsr_resok4.tsr_status_codes.tsr_status_codes_len; i++, current_el++) { out << ' ' << current_el; } } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::WANT_DELEGATION4args* args) { if (args) { out << "want: " << args->wda_want << " claim: " << args->wda_claim; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::WANT_DELEGATION4res* res) { if (res) { out << "status: " << res->wdr_status; if (out_all() && res->wdr_status == NFS41::nfsstat4::NFS4_OK) { out << res->WANT_DELEGATION4res_u.wdr_resok4; } } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DESTROY_CLIENTID4args* args) { if (args) { out << "clientid: " << args->dca_clientid; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::DESTROY_CLIENTID4res* res) { if (res) { out << "status: " << res->dcr_status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RECLAIM_COMPLETE4args* args) { if (args) { out << "one fs: " << args->rca_one_fs; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::RECLAIM_COMPLETE4res* res) { if (res) { out << "status: " << res->rcr_status; } } void PrintAnalyzer::nfs41_operation(const struct NFS41::ILLEGAL4res* res) { if (res) { out << "status: " << res->status; } } void PrintAnalyzer::flush_statistics() { // flush is in each handler } } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/print_analyzer.h000066400000000000000000000564731261713114600211660ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Created for demonstration purpose only. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PRINT_ANALYZER_H #define PRINT_ANALYZER_H //------------------------------------------------------------------------------ #include #include "api/plugin_api.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { namespace NFS3 = NST::API::NFS3; namespace NFS4 = NST::API::NFS4; namespace NFS41 = NST::API::NFS41; class PrintAnalyzer : public IAnalyzer { public: PrintAnalyzer(std::ostream& o) : out(o) { } ~PrintAnalyzer() { } void closeFileSMBv2(const SMBv2::CloseFileCommand*, const SMBv2::CloseRequest*, const SMBv2::CloseResponse*) override final; void negotiateSMBv2(const SMBv2::NegotiateCommand*, const SMBv2::NegotiateRequest*, const SMBv2::NegotiateResponse*) override final; void sessionSetupSMBv2(const SMBv2::SessionSetupCommand*, const SMBv2::SessionSetupRequest*, const SMBv2::SessionSetupResponse*) override final; void logOffSMBv2(const SMBv2::LogOffCommand*, const SMBv2::LogOffRequest*, const SMBv2::LogOffResponse*) override final; void treeConnectSMBv2(const SMBv2::TreeConnectCommand*, const SMBv2::TreeConnectRequest*, const SMBv2::TreeConnectResponse*) override final; void treeDisconnectSMBv2(const SMBv2::TreeDisconnectCommand*, const SMBv2::TreeDisconnectRequest*, const SMBv2::TreeDisconnectResponse*) override final; void createSMBv2(const SMBv2::CreateCommand*, const SMBv2::CreateRequest*, const SMBv2::CreateResponse*) override final; void flushSMBv2(const SMBv2::FlushCommand*, const SMBv2::FlushRequest*, const SMBv2::FlushResponse*) override final; void readSMBv2(const SMBv2::ReadCommand*, const SMBv2::ReadRequest*, const SMBv2::ReadResponse*) override final; void writeSMBv2(const SMBv2::WriteCommand*, const SMBv2::WriteRequest*, const SMBv2::WriteResponse*) override final; void lockSMBv2(const SMBv2::LockCommand*, const SMBv2::LockRequest*, const SMBv2::LockResponse*) override final; void ioctlSMBv2(const SMBv2::IoctlCommand*, const SMBv2::IoCtlRequest*, const SMBv2::IoCtlResponse*) override final; void cancelSMBv2(const SMBv2::CancelCommand*, const SMBv2::CancelRequest*, const SMBv2::CancelResponce*) override final; void echoSMBv2(const SMBv2::EchoCommand*, const SMBv2::EchoRequest*, const SMBv2::EchoResponse*) override final; void queryDirSMBv2(const SMBv2::QueryDirCommand*, const SMBv2::QueryDirRequest*, const SMBv2::QueryDirResponse*) override final; void changeNotifySMBv2(const SMBv2::ChangeNotifyCommand*, const SMBv2::ChangeNotifyRequest*, const SMBv2::ChangeNotifyResponse*) override final; void queryInfoSMBv2(const SMBv2::QueryInfoCommand*, const SMBv2::QueryInfoRequest*, const SMBv2::QueryInfoResponse*) override final; void setInfoSMBv2(const SMBv2::SetInfoCommand*, const SMBv2::SetInfoRequest*, const SMBv2::SetInfoResponse*) override final; void breakOplockSMBv2(const SMBv2::BreakOpLockCommand*, const SMBv2::OplockAcknowledgment*, const SMBv2::OplockResponse*) override final; void null(const RPCProcedure* proc, const struct NFS3::NULL3args*, const struct NFS3::NULL3res*) override final; void getattr3(const RPCProcedure* proc, const struct NFS3::GETATTR3args* args, const struct NFS3::GETATTR3res* res) override final; void setattr3(const RPCProcedure* proc, const struct NFS3::SETATTR3args* args, const struct NFS3::SETATTR3res* res) override final; void lookup3(const RPCProcedure* proc, const struct NFS3::LOOKUP3args* args, const struct NFS3::LOOKUP3res* res) override final; void access3(const RPCProcedure* proc, const struct NFS3::ACCESS3args* args, const struct NFS3::ACCESS3res* res) override final; void readlink3(const RPCProcedure* proc, const struct NFS3::READLINK3args* args, const struct NFS3::READLINK3res* res) override final; void read3(const RPCProcedure* proc, const struct NFS3::READ3args* args, const struct NFS3::READ3res* res) override final; void write3(const RPCProcedure* proc, const struct NFS3::WRITE3args* args, const struct NFS3::WRITE3res* res) override final; void create3(const RPCProcedure* proc, const struct NFS3::CREATE3args* args, const struct NFS3::CREATE3res* res) override final; void mkdir3(const RPCProcedure* proc, const struct NFS3::MKDIR3args* args, const struct NFS3::MKDIR3res* res) override final; void symlink3(const RPCProcedure* proc, const struct NFS3::SYMLINK3args* args, const struct NFS3::SYMLINK3res* res) override final; void mknod3(const RPCProcedure* proc, const struct NFS3::MKNOD3args* args, const struct NFS3::MKNOD3res* res) override final; void remove3(const RPCProcedure* proc, const struct NFS3::REMOVE3args* args, const struct NFS3::REMOVE3res* res) override final; void rmdir3(const RPCProcedure* proc, const struct NFS3::RMDIR3args* args, const struct NFS3::RMDIR3res* res) override final; void rename3(const RPCProcedure* proc, const struct NFS3::RENAME3args* args, const struct NFS3::RENAME3res* res) override final; void link3(const RPCProcedure* proc, const struct NFS3::LINK3args* args, const struct NFS3::LINK3res* res) override final; void readdir3(const RPCProcedure* proc, const struct NFS3::READDIR3args* args, const struct NFS3::READDIR3res* res) override final; void readdirplus3(const RPCProcedure* proc, const struct NFS3::READDIRPLUS3args* args, const struct NFS3::READDIRPLUS3res* res) override final; void fsstat3(const RPCProcedure* proc, const struct NFS3::FSSTAT3args* args, const struct NFS3::FSSTAT3res* res) override final; void fsinfo3(const RPCProcedure* proc, const struct NFS3::FSINFO3args* args, const struct NFS3::FSINFO3res* res) override final; void pathconf3(const RPCProcedure* proc, const struct NFS3::PATHCONF3args* args, const struct NFS3::PATHCONF3res* res) override final; void commit3(const RPCProcedure* proc, const struct NFS3::COMMIT3args* args, const struct NFS3::COMMIT3res* res) override final; void null4(const RPCProcedure* proc, const struct NFS4::NULL4args* args, const struct NFS4::NULL4res* res) override final; void compound4(const RPCProcedure* proc, const struct NFS4::COMPOUND4args* args, const struct NFS4::COMPOUND4res* res) override final; void nfs4_operation(const struct NFS4::nfs_argop4* op); void nfs4_operation(const struct NFS4::nfs_resop4* op); void nfs4_operation(const struct NFS4::ACCESS4args* args); void nfs4_operation(const struct NFS4::ACCESS4res* res ); void nfs4_operation(const struct NFS4::CLOSE4args* args); void nfs4_operation(const struct NFS4::CLOSE4res* res ); void nfs4_operation(const struct NFS4::COMMIT4args* args); void nfs4_operation(const struct NFS4::COMMIT4res* res ); void nfs4_operation(const struct NFS4::CREATE4args* args); void nfs4_operation(const struct NFS4::CREATE4res* res ); void nfs4_operation(const struct NFS4::DELEGPURGE4args* args); void nfs4_operation(const struct NFS4::DELEGPURGE4res* res ); void nfs4_operation(const struct NFS4::DELEGRETURN4args* args); void nfs4_operation(const struct NFS4::DELEGRETURN4res* res ); void nfs4_operation(const struct NFS4::GETATTR4args* args); void nfs4_operation(const struct NFS4::GETATTR4res* res ); void nfs4_operation(const struct NFS4::LINK4args* args); void nfs4_operation(const struct NFS4::LINK4res* res ); void nfs4_operation(const struct NFS4::LOCK4args* args); void nfs4_operation(const struct NFS4::LOCK4res* res ); void nfs4_operation(const struct NFS4::LOCKT4args* args); void nfs4_operation(const struct NFS4::LOCKT4res* res ); void nfs4_operation(const struct NFS4::LOCKU4args* args); void nfs4_operation(const struct NFS4::LOCKU4res* res ); void nfs4_operation(const struct NFS4::LOOKUP4args* args); void nfs4_operation(const struct NFS4::LOOKUP4res* res ); void nfs4_operation(const struct NFS4::NVERIFY4args* args); void nfs4_operation(const struct NFS4::NVERIFY4res* res ); void nfs4_operation(const struct NFS4::OPEN4args* args); void nfs4_operation(const struct NFS4::OPEN4res* res ); void nfs4_operation(const struct NFS4::OPENATTR4args* args); void nfs4_operation(const struct NFS4::OPENATTR4res* res ); void nfs4_operation(const struct NFS4::OPEN_CONFIRM4args* args); void nfs4_operation(const struct NFS4::OPEN_CONFIRM4res* res ); void nfs4_operation(const struct NFS4::OPEN_DOWNGRADE4args* args); void nfs4_operation(const struct NFS4::OPEN_DOWNGRADE4res* res ); void nfs4_operation(const struct NFS4::PUTFH4args* args); void nfs4_operation(const struct NFS4::PUTFH4res* res ); void nfs4_operation(const struct NFS4::READ4args* args); void nfs4_operation(const struct NFS4::READ4res* res ); void nfs4_operation(const struct NFS4::READDIR4args* args); void nfs4_operation(const struct NFS4::READDIR4res* res ); void nfs4_operation(const struct NFS4::REMOVE4args* args); void nfs4_operation(const struct NFS4::REMOVE4res* res ); void nfs4_operation(const struct NFS4::RENAME4args* args); void nfs4_operation(const struct NFS4::RENAME4res* res ); void nfs4_operation(const struct NFS4::RENEW4args* args); void nfs4_operation(const struct NFS4::RENEW4res* res ); void nfs4_operation(const struct NFS4::SECINFO4args* args); void nfs4_operation(const struct NFS4::SECINFO4res* res ); void nfs4_operation(const struct NFS4::SETATTR4args* args); void nfs4_operation(const struct NFS4::SETATTR4res* res ); void nfs4_operation(const struct NFS4::SETCLIENTID4args* args); void nfs4_operation(const struct NFS4::SETCLIENTID4res* res ); void nfs4_operation(const struct NFS4::SETCLIENTID_CONFIRM4args* args); void nfs4_operation(const struct NFS4::SETCLIENTID_CONFIRM4res* res ); void nfs4_operation(const struct NFS4::VERIFY4args* args); void nfs4_operation(const struct NFS4::VERIFY4res* res ); void nfs4_operation(const struct NFS4::WRITE4args* args); void nfs4_operation(const struct NFS4::WRITE4res* res ); void nfs4_operation(const struct NFS4::RELEASE_LOCKOWNER4args* args); void nfs4_operation(const struct NFS4::RELEASE_LOCKOWNER4res* res ); void nfs4_operation(const struct NFS4::GET_DIR_DELEGATION4args* args); void nfs4_operation(const struct NFS4::GET_DIR_DELEGATION4res* res ); void nfs4_operation(const struct NFS4::GETFH4res* res); void nfs4_operation(const struct NFS4::LOOKUPP4res* res); void nfs4_operation(const struct NFS4::PUTPUBFH4res* res); void nfs4_operation(const struct NFS4::PUTROOTFH4res* res); void nfs4_operation(const struct NFS4::READLINK4res* res); void nfs4_operation(const struct NFS4::RESTOREFH4res* res); void nfs4_operation(const struct NFS4::SAVEFH4res* res); void nfs4_operation(const struct NFS4::ILLEGAL4res* res); void compound41(const RPCProcedure* proc, const struct NFS41::COMPOUND4args* args, const struct NFS41::COMPOUND4res* res) override final; void nfs41_operation(const struct NFS41::nfs_argop4* op); void nfs41_operation(const struct NFS41::nfs_resop4* op); void nfs41_operation(const struct NFS41::ACCESS4args* args); void nfs41_operation(const struct NFS41::ACCESS4res* res ); void nfs41_operation(const struct NFS41::CLOSE4args* args); void nfs41_operation(const struct NFS41::CLOSE4res* res ); void nfs41_operation(const struct NFS41::COMMIT4args* args); void nfs41_operation(const struct NFS41::COMMIT4res* res ); void nfs41_operation(const struct NFS41::CREATE4args* args); void nfs41_operation(const struct NFS41::CREATE4res* res ); void nfs41_operation(const struct NFS41::DELEGPURGE4args* args); void nfs41_operation(const struct NFS41::DELEGPURGE4res* res ); void nfs41_operation(const struct NFS41::DELEGRETURN4args* args); void nfs41_operation(const struct NFS41::DELEGRETURN4res* res ); void nfs41_operation(const struct NFS41::GETATTR4args* args); void nfs41_operation(const struct NFS41::GETATTR4res* res ); void nfs41_operation(const struct NFS41::LINK4args* args); void nfs41_operation(const struct NFS41::LINK4res* res ); void nfs41_operation(const struct NFS41::LOCK4args* args); void nfs41_operation(const struct NFS41::LOCK4res* res ); void nfs41_operation(const struct NFS41::LOCKT4args* args); void nfs41_operation(const struct NFS41::LOCKT4res* res ); void nfs41_operation(const struct NFS41::LOCKU4args* args); void nfs41_operation(const struct NFS41::LOCKU4res* res ); void nfs41_operation(const struct NFS41::LOOKUP4args* args); void nfs41_operation(const struct NFS41::LOOKUP4res* res ); void nfs41_operation(const struct NFS41::NVERIFY4args* args); void nfs41_operation(const struct NFS41::NVERIFY4res* res ); void nfs41_operation(const struct NFS41::OPEN4args* args); void nfs41_operation(const struct NFS41::OPEN4res* res ); void nfs41_operation(const struct NFS41::OPENATTR4args* args); void nfs41_operation(const struct NFS41::OPENATTR4res* res ); void nfs41_operation(const struct NFS41::OPEN_CONFIRM4args* args); void nfs41_operation(const struct NFS41::OPEN_CONFIRM4res* res ); void nfs41_operation(const struct NFS41::OPEN_DOWNGRADE4args* args); void nfs41_operation(const struct NFS41::OPEN_DOWNGRADE4res* res ); void nfs41_operation(const struct NFS41::PUTFH4args* args); void nfs41_operation(const struct NFS41::PUTFH4res* res ); void nfs41_operation(const struct NFS41::READ4args* args); void nfs41_operation(const struct NFS41::READ4res* res ); void nfs41_operation(const struct NFS41::READDIR4args* args); void nfs41_operation(const struct NFS41::READDIR4res* res ); void nfs41_operation(const struct NFS41::REMOVE4args* args); void nfs41_operation(const struct NFS41::REMOVE4res* res ); void nfs41_operation(const struct NFS41::RENAME4args* args); void nfs41_operation(const struct NFS41::RENAME4res* res ); void nfs41_operation(const struct NFS41::RENEW4args* args); void nfs41_operation(const struct NFS41::RENEW4res* res ); void nfs41_operation(const struct NFS41::SECINFO4args* args); void nfs41_operation(const struct NFS41::SECINFO4res* res ); void nfs41_operation(const struct NFS41::SETATTR4args* args); void nfs41_operation(const struct NFS41::SETATTR4res* res ); void nfs41_operation(const struct NFS41::SETCLIENTID4args* args); void nfs41_operation(const struct NFS41::SETCLIENTID4res* res ); void nfs41_operation(const struct NFS41::SETCLIENTID_CONFIRM4args* args); void nfs41_operation(const struct NFS41::SETCLIENTID_CONFIRM4res* res ); void nfs41_operation(const struct NFS41::VERIFY4args* args); void nfs41_operation(const struct NFS41::VERIFY4res* res ); void nfs41_operation(const struct NFS41::WRITE4args* args); void nfs41_operation(const struct NFS41::WRITE4res* res ); void nfs41_operation(const struct NFS41::RELEASE_LOCKOWNER4args* args); void nfs41_operation(const struct NFS41::RELEASE_LOCKOWNER4res* res ); void nfs41_operation(const struct NFS41::BACKCHANNEL_CTL4args* args); void nfs41_operation(const struct NFS41::BACKCHANNEL_CTL4res* res ); void nfs41_operation(const struct NFS41::BIND_CONN_TO_SESSION4args* args); void nfs41_operation(const struct NFS41::BIND_CONN_TO_SESSION4res* res ); void nfs41_operation(const struct NFS41::EXCHANGE_ID4args* args); void nfs41_operation(const struct NFS41::EXCHANGE_ID4res* res ); void nfs41_operation(const struct NFS41::CREATE_SESSION4args* args); void nfs41_operation(const struct NFS41::CREATE_SESSION4res* res ); void nfs41_operation(const struct NFS41::DESTROY_SESSION4args* args); void nfs41_operation(const struct NFS41::DESTROY_SESSION4res* res ); void nfs41_operation(const struct NFS41::FREE_STATEID4args* args); void nfs41_operation(const struct NFS41::FREE_STATEID4res* res ); void nfs41_operation(const struct NFS41::GET_DIR_DELEGATION4args* args); void nfs41_operation(const struct NFS41::GET_DIR_DELEGATION4res* res ); void nfs41_operation(const struct NFS41::GETDEVICEINFO4args* args); void nfs41_operation(const struct NFS41::GETDEVICEINFO4res* res ); void nfs41_operation(const struct NFS41::GETDEVICELIST4args* args); void nfs41_operation(const struct NFS41::GETDEVICELIST4res* res ); void nfs41_operation(const struct NFS41::LAYOUTCOMMIT4args* args); void nfs41_operation(const struct NFS41::LAYOUTCOMMIT4res* res ); void nfs41_operation(const struct NFS41::LAYOUTGET4args* args); void nfs41_operation(const struct NFS41::LAYOUTGET4res* res ); void nfs41_operation(const struct NFS41::LAYOUTRETURN4args* args); void nfs41_operation(const struct NFS41::LAYOUTRETURN4res* res ); void nfs41_operation(const enum NFS41::secinfo_style4* args); void nfs41_operation(const struct NFS41::SEQUENCE4args* args); void nfs41_operation(const struct NFS41::SEQUENCE4res* res ); void nfs41_operation(const struct NFS41::SET_SSV4args* args); void nfs41_operation(const struct NFS41::SET_SSV4res* res ); void nfs41_operation(const struct NFS41::TEST_STATEID4args* args); void nfs41_operation(const struct NFS41::TEST_STATEID4res* res ); void nfs41_operation(const struct NFS41::WANT_DELEGATION4args* args); void nfs41_operation(const struct NFS41::WANT_DELEGATION4res* res ); void nfs41_operation(const struct NFS41::DESTROY_CLIENTID4args* args); void nfs41_operation(const struct NFS41::DESTROY_CLIENTID4res* res ); void nfs41_operation(const struct NFS41::RECLAIM_COMPLETE4args* args); void nfs41_operation(const struct NFS41::RECLAIM_COMPLETE4res* res ); void nfs41_operation(const struct NFS41::GETFH4res* res); void nfs41_operation(const struct NFS41::LOOKUPP4res* res); void nfs41_operation(const struct NFS41::PUTPUBFH4res* res); void nfs41_operation(const struct NFS41::PUTROOTFH4res* res); void nfs41_operation(const struct NFS41::READLINK4res* res); void nfs41_operation(const struct NFS41::RESTOREFH4res* res); void nfs41_operation(const struct NFS41::SAVEFH4res* res); void nfs41_operation(const struct NFS41::ILLEGAL4res* res); void flush_statistics() override final; private: PrintAnalyzer(const PrintAnalyzer&) = delete; PrintAnalyzer& operator=(const PrintAnalyzer&) = delete; std::ostream& out; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//PRINT_ANALYZER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/analysis/rpc_sessions.h000066400000000000000000000100731261713114600206210ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Hash-table for rpc-sessions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef RPC_SESSIONS_H #define RPC_SESSIONS_H //------------------------------------------------------------------------------ #include #include #include #include #include #include #include "protocols/rpc/rpc_header.h" #include "utils/filtered_data.h" #include "utils/log.h" #include "utils/out.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace analysis { class Session : public utils::ApplicationSession { using FilteredDataQueue = NST::utils::FilteredDataQueue; public: Session(const utils::NetworkSession& s, utils::Session::Direction call_direction) : utils::ApplicationSession{s, call_direction} { utils::Out message; message << "Detect session " << str(); } ~Session() = default; Session(const Session&) = delete; Session& operator=(const Session&) = delete; void save_call_data(const std::uint64_t xid, FilteredDataQueue::Ptr&& data) { FilteredDataQueue::Ptr& e = operations[xid]; if(e) // xid call already exists { LOG("replace RPC Call XID:%" PRIu64 " for %s", xid, str().c_str()); } e = std::move(data); // replace existing or set new } inline FilteredDataQueue::Ptr get_call_data(const std::uint64_t xid) { auto i = operations.find(xid); if(i != operations.end()) { FilteredDataQueue::Ptr ptr{std::move(i->second)}; operations.erase(i); return ptr; } else { LOG("RPC Call XID:%" PRIu64 " is not found for %s", xid, str().c_str()); } return FilteredDataQueue::Ptr{}; } inline const Session* get_session() const { return this; } private: // TODO: add custom allocator based on BlockAllocator // to decrease cost of expensive insert/erase operations std::unordered_map operations; }; template class Sessions { public: using MsgType = NST::protocols::rpc::MsgType; Sessions() = default; ~Sessions()= default; Sessions(const Sessions&) = delete; Sessions& operator=(const Sessions&) = delete; Session* get_session(utils::NetworkSession* app, NST::utils::Session::Direction dir, MsgType type) { if(app->application == nullptr) { if(type == MsgType::CALL) // add new session only for Call { std::unique_ptr ptr{ new Session{*app, dir} }; sessions.emplace_back(std::move(ptr)); app->application = sessions.back().get(); // set reference } } return reinterpret_cast(app->application); } private: std::vector< std::unique_ptr > sessions; }; } // namespace analysis } // namespace NST //------------------------------------------------------------------------------ #endif//RPC_SESSIONS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/000077500000000000000000000000001261713114600146635ustar00rootroot00000000000000nfstrace-0.4.1/src/api/cifs2_commands.h000066400000000000000000002412521261713114600177310ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Definition of CIFSv2 commands // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef API_CIFS2_COMMANDS_H #define API_CIFS2_COMMANDS_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace API { /*! SMB 2 version */ namespace SMBv2 { /*! CIFS v2 commands */ enum class SMBv2Commands : uint16_t { NEGOTIATE = API::SMBv2::pc_to_net(0x0000), SESSION_SETUP = API::SMBv2::pc_to_net(0x0001), LOGOFF = API::SMBv2::pc_to_net(0x0002), TREE_CONNECT = API::SMBv2::pc_to_net(0x0003), TREE_DISCONNECT = API::SMBv2::pc_to_net(0x0004), CREATE = API::SMBv2::pc_to_net(0x0005), CLOSE = API::SMBv2::pc_to_net(0x0006), FLUSH = API::SMBv2::pc_to_net(0x0007), READ = API::SMBv2::pc_to_net(0x0008), WRITE = API::SMBv2::pc_to_net(0x0009), LOCK = API::SMBv2::pc_to_net(0x000A), IOCTL = API::SMBv2::pc_to_net(0x000B), CANCEL = API::SMBv2::pc_to_net(0x000C), ECHO = API::SMBv2::pc_to_net(0x000D), QUERY_DIRECTORY = API::SMBv2::pc_to_net(0x000E), CHANGE_NOTIFY = API::SMBv2::pc_to_net(0x000F), QUERY_INFO = API::SMBv2::pc_to_net(0x0010), SET_INFO = API::SMBv2::pc_to_net(0x0011), OPLOCK_BREAK = API::SMBv2::pc_to_net(0x0012), CMD_COUNT }; /*! * \brief The errResponse struct * The SMB2 ERROR Response packet is sent by the server * to respond to a request that has failed or encountered an error. */ struct ErrResponse { uint16_t structureSize; uint16_t reserved; //!< 0 uint32_t byteCount; //!< even if zero, at least one byte follows uint8_t errorData[1]; //!< Error message. Variable length } __attribute__ ((__packed__)); /*! * security modes. The security mode field specifies whether * SMB signing is enabled or required at the client. */ enum class SecurityMode : uint16_t { SIGNING_ENABLED = 0x0001, //!< When set, indicates that security signatures are enabled on the client. SIGNING_REQUIRED = 0x0002 //!< When set, indicates that security signatures are required by the client. }; /*! * security modes. The security mode field specifies whether * SMB signing is enabled or required at the client. */ enum class SecurityModeShort : uint8_t { SIGNING_ENABLED = 0x01, //!< When set, indicates that security signatures are enabled on the client. SIGNING_REQUIRED = 0x02 //!< When set, indicates that security signatures are required by the client. }; /*! * Capabilities flags * If the client implements the SMB 3.x dialect family, * the Capabilities field MUST be constructed using the following values. * Otherwise, this field MUST be set to 0. */ enum class Capabilities : uint32_t { DFS = 0x00000001, //!< When set, indicates that the client supports the Distributed File System (DFS). LEASING = 0x00000002, //!< When set, indicates that the client supports leasing. LARGE_MTU = 0x00000004, //!< When set, indicates that the client supports multi-credit operations. MULTI_CHANNEL = 0x00000008, //!< When set, indicates that the client supports establishing multiple channels for a single session. PERSISTENT_HANDLES = 0x00000010, //!< When set, indicates that the client supports persistent handles. DIRECTORY_LEASING = 0x00000020, //!< When set, indicates that the client supports directory leasing. ENCRYPTION = 0x00000040 //!< When set, indicates that the client supports encryption. }; enum class ShareCapabilities : uint32_t { DFS = 0x00000008, CONTINUOUS_AVAILABILITY = 0x00000010, SCALEOUT = 0x00000020, CLUSTER = 0x00000040, ASYMMETRIC = 0x00000080 }; /*! * Supported dialect revision numbers */ enum class Dialects : uint16_t { SMB_2_002 = 0x0202, //!< SMB 2.002 dialect revision number. SMB_2_1 = 0x0210, //!< SMB 2.1 dialect revision number. SMB_3_0 = 0x0300, //!< SMB 3.0 dialect revision number. SMB_3_02 = 0x0302 //!< SMB 3.02 dialect revision number. }; /*! * \brief The negotiateRequest struct * The SMB2 NEGOTIATE Request packet is used by the client to notify * the server what dialects of the SMB 2 Protocol the client understands. * This request is composed of an SMB2 header, * followed by this request structure. */ struct NegotiateRequest { uint16_t structureSize; //!< Must be 36 uint16_t dialectCount; //!< The number of dialects that are contained in the Dialects[] array SecurityMode securityMode; //!< The security mode field specifies whether SMB signing is enabled or required at the client. uint16_t _; //!< Reserved Capabilities capabilities; //!< Client's capabilities uint8_t clientGUID[16]; //!< Must be 0 uint64_t clientStartTime; //!< Must be 0 Dialects dialects[1]; //!< An array of one or more 16-bit integers specifying the supported dialect revision numbers. The array MUST contain at least one of the following values. Variable length } __attribute__ ((__packed__)); /*! * \brief The negotiateResponse struct * The SMB2 NEGOTIATE Response packet is sent by the server to notify * the client of the preferred common dialect. * This response is composed of an SMB2 header, * followed by this response structure. */ struct NegotiateResponse { uint16_t structureSize; //!< Must be 65 SecurityMode securityMode; //!< The security mode field specifies whether SMB signing is enabled, required at the server, or both. uint16_t dialectRevision; //!< The preferred common SMB 2 Protocol dialect number from the Dialects array that is sent in the SMB2 NEGOTIATE Request or the SMB2 wildcard revision number uint16_t reserved; //!< Must be 0 uint8_t serverGUID[16]; //!< A globally unique identifier that is generated by the server to uniquely identify this server. Capabilities capabilities; //!< The Capabilities field specifies protocol capabilities for the server. uint32_t maxTransactSize; //!< The maximum size, in bytes, of the buffer that can be used for QUERY_INFO, QUERY_DIRECTORY, SET_INFO and CHANGE_NOTIFY operations. uint32_t maxReadSize; //!< The maximum size, in bytes, of the Length in an SMB2 READ Request (section 2.2.19) that the server will accept. uint32_t maxWriteSize; //!< The maximum size, in bytes, of the Length in an SMB2 WRITE Request (section 2.2.21) that the server will accept. uint64_t systemTime; //!< The system time of the SMB2 server when the SMB2 NEGOTIATE Request was processed uint64_t serverStartTime; //!< The SMB2 server start time, in FILETIME format uint16_t securityBufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the security buffer. uint16_t securityBufferLength; //!< The length, in bytes, of the security buffer. uint32_t reserved2; //!< This field MUST NOT be used and MUST be reserved. The server may set this to any value, and the client MUST ignore it on receipt. uint8_t buffer[1]; //!< The variable-length buffer that contains the security buffer for the response } __attribute__ ((__packed__)); /*! Session binding to connections flags * Is used if the client implements the SMB 3.x dialect family. * Otherwise, it MUST be set to NONE. */ enum class SessionFlagsBinding : uint8_t { NONE = 0x00, //!< Default BINDING = 0x01 //!< When set, indicates that the request is to bind an existing session to a new connection. }; /*! * \brief The SMB2 SESSION_SETUP Request packet is sent by the client to * request a new authenticated session within a new or existing SMB 2 Protocol * transport connection to the server. This request is composed of an SMB2 * header as specified in section 2.2.1 followed by this request structure. */ struct SessionSetupRequest { uint16_t structureSize; //!< Must be 25 SessionFlagsBinding VcNumber; //!< If the client implements the SMB 3.x dialect family, this field MUST be set to combination of zero or more of the following values. Otherwise, it MUST be set to 0. SecurityModeShort securityMode; //!< The security mode field specifies whether SMB signing is enabled or required at the client. This field MUST be constructed using the following values. Capabilities capabilities; //!< Specifies protocol capabilities for the client. This field MUST be constructed using the following values. uint32_t Channel; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint16_t SecurityBufferOffset; //!< The offset, in bytes, from the beginning of the SMB 2 Protocol header to the security buffer. uint16_t SecurityBufferLength; //!< The length, in bytes, of the security buffer. uint64_t PreviousSessionId; //!< A previously established session identifier. The server uses this value to identify the client session that was disconnected due to a network error. uint8_t Buffer[1]; //!< A variable-length buffer that contains the security buffer for the request, as specified by SecurityBufferOffset and SecurityBufferLength } __attribute__ ((__packed__)); /*! Currently defined SessionFlags */ enum class SessionFlags : uint16_t { NONE = 0x0000, //!< Default IS_GUEST = 0x0001, //!< If set, the client has been authenticated as a guest user. IS_NULL = 0x0002, //!< If set, the client has been authenticated as an anonymous user. IS_ENCRYPT_DATA = 0x0004 //!< If set, the server requires encryption of messages on this session. This flag is only valid for the SMB 3.x dialect family. }; /*! * \brief The sess_setupResponse struct * The SMB2 SESSION_SETUP Response packet is sent by the server in response to * an SMB2 SESSION_SETUP Request packet. This response is composed of an SMB2 * header, that is followed by this response structure. */ struct SessionSetupResponse { uint16_t structureSize; //!< Must be 9 SessionFlags sessionFlags; //!< A flags field that indicates additional information about the session. uint16_t SecurityBufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the security buffer. uint16_t SecurityBufferLength; //!< The length, in bytes, of the security buffer. uint8_t Buffer[1]; //!< A variable-length buffer that contains the security buffer for the response, as specified by SecurityBufferOffset and SecurityBufferLength. } __attribute__ ((__packed__)); /*! * \brief The LogoffRequest struct. * The SMB2 LOGOFF Request packet is sent by the client to request termination * of a particular session */ struct LogOffRequest { uint16_t structureSize; //!< Must be 4 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved } __attribute__ ((__packed__)); /*! * \brief The LogoffResponse struct * The SMB2 LOGOFF Response packet is sent by the server to confirm that an * SMB2 LOGOFF Request was completed successfully */ struct LogOffResponse { uint16_t structureSize; //!< Must be 4 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved } __attribute__ ((__packed__)); /*! * \brief The TreeConnectRequest struct * The SMB2 TREE_CONNECT Request packet is sent by a client to request * access to a particular share on the server */ struct TreeConnectRequest { uint16_t structureSize; //!< The client MUST set this field to 9, indicating the size of the request structure, not including the header. The client MUST set it to this value regardless of how long Buffer[] actually is in the request being sent. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint16_t PathOffset; //!< The offset, in bytes, of the full share path name from the beginning of the packet header. uint16_t PathLength; //!< The length, in bytes, of the path name. uint8_t Buffer[1]; //!< A variable-length buffer that contains the path name of the share in Unicode in the form "\\server\share" for the request, as described by PathOffset and PathLength } __attribute__ ((__packed__)); /*! * Possible ShareType values */ enum class ShareTypes : uint8_t { DISK = 0x01, //!< Physical disk share. PIPE = 0x02, //!< Named pipe share. PRINT = 0x03 //!< Printer share. }; /*! * Possible shareFlags - exactly one and only one of the first 4 caching flags * must be set (any of the remaining, SHI1005, flags may be set individually * or in combination.) */ enum class ShareFlags : uint32_t { MANUAL_CACHING = 0x00000000, //!< The client may cache files that are explicitly selected by the user for offline use. AUTO_CACHING = 0x00000010, //!< The client may automatically cache files that are used by the user for offline access. VDO_CACHING = 0x00000020, //!< The client may automatically cache files that are used by the user for offline access and may use those files in an offline mode even if the share is available. NO_CACHING = 0x00000030, //!< Offline caching MUST NOT occur. DFS = 0x00000001, //!< The specified share is present in a Distributed File System (DFS) tree structure. DFS_ROOT = 0x00000002, //!< The specified share is present in a DFS tree structure. RESTRICT_EXCLUSIVE_OPENS = 0x00000100, //!< The specified share disallows exclusive file opens that deny reads to an open file. FORCE_SHARED_DELETE = 0x00000200, //!< The specified share disallows clients from opening files on the share in an exclusive mode that prevents the file from being deleted until the client closes the file. ALLOW_NAMESPACE_CACHING = 0x00000400, //!< The client MUST ignore this flag. ACCESS_BASED_DIRECTORY_ENUM = 0x00000800, //!< The server will filter directory entries based on the access permissions of the client. FORCE_LEVELII_OPLOCK = 0x00001000, //!< The server will not issue exclusive caching rights on this share. ENABLE_HASH = 0x00002000, //!< The share supports hash generation for branch cache retrieval of data. For more information, see section 2.2.31.2. This flag is not valid for the SMB 2.002 dialect. ENABLE_HASH_2 = 0x00004000, //!< The share supports v2 hash generation for branch cache retrieval of data. For more information, see section 2.2.31.2. This flag is not valid for the SMB 2.002 and SMB 2.1 dialects. ENABLE_ENCRYPT_DATA = 0x00008000 //!< The server requires encryption of remote file access messages on this share, per the conditions specified in section 3.3.5.2.11. This flag is only valid for the SMB 3.x dialect family. }; /*! * \brief The TreeConnectResponse struct * The SMB2 TREE_CONNECT Response packet is sent by the server when an SMB2 * TREE_CONNECT request is processed successfully by the server. */ struct TreeConnectResponse { uint16_t structureSize; //!< Must be 16 ShareTypes ShareType; //!< The type of share being accessed. uint8_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. ShareFlags shareFlags; //!< This field contains properties for this share. ShareCapabilities capabilities; //!< Indicates various capabilities for this share uint32_t MaximalAccess; //!< Contains the maximal access for the user that establishes the tree connect on the share based on the share's permissions } __attribute__ ((__packed__)); /*! * \brief The tree_disconnectRequest struct * The SMB2 TREE_DISCONNECT Request packet is sent by the client * to request that the tree connect that is specified in the TreeId within * the SMB2 header be disconnected. */ struct TreeDisconnectRequest { uint16_t structureSize; //!< The client MUST set this field to 4, indicating the size of the request structure, not including the header. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * \brief The TreeDisconnectResponse struct * The SMB2 TREE_DISCONNECT Response packet is sent by the server to confirm * that an SMB2 TREE_DISCONNECT Request was successfully processed. */ struct TreeDisconnectResponse { uint16_t structureSize; //!< The client MUST set this field to 4, indicating the size of the request structure, not including the header. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! File Attrubutes */ enum class FileAttributes : uint32_t { READONLY = 0x00000001, HIDDEN = 0x00000002, SYSTEM = 0x00000004, DIRECTORY = 0x00000010, ARCHIVE = 0x00000020, NORMAL = 0x00000080, TEMPORARY = 0x00000100, SPARSE_FILE = 0x00000200, REPARSE_POINT = 0x00000400, COMPRESSED = 0x00000800, OFFLINE = 0x00001000, NOT_CONTENT_INDEXED = 0x00002000, ENCRYPTED = 0x00004000 }; /*! * Oplock levels */ enum class OplockLevels : uint8_t { NONE = 0x00, //!< No oplock is requested. II = 0x01, //!< A level II oplock is requested. EXCLUSIVE = 0x08, //!< An exclusive oplock is requested. BATCH = 0x09, //!< A batch oplock is requested. LEASE = 0xFF //!< A lease is requested. If set, the request packet MUST contain an SMB2_CREATE_REQUEST_LEASE create context. This value is not valid for the SMB 2.002 dialect. }; /*! Desired Access Flags */ enum class DesiredAccessFlags : uint32_t { READ_DATA_LE = (0x00000001), WRITE_DATA_LE = (0x00000002), APPEND_DATA_LE = (0x00000004), READ_EA_LE = (0x00000008), WRITE_EA_LE = (0x00000010), EXECUTE_LE = (0x00000020), READ_ATTRIBUTES_LE = (0x00000080), WRITE_ATTRIBUTES_LE = (0x00000100), DELETE_LE = (0x00010000), READ_CONTROL_LE = (0x00020000), WRITE_DAC_LE = (0x00040000), WRITE_OWNER_LE = (0x00080000), SYNCHRONIZE_LE = (0x00100000), ACCESS_SYSTEM_SECURITY_LE = (0x01000000), MAXIMAL_ACCESS_LE = (0x02000000), GENERIC_ALL_LE = (0x10000000), GENERIC_EXECUTE_LE = (0x20000000), GENERIC_WRITE_LE = (0x40000000), GENERIC_READ_LE = (0x80000000) }; /*! * Share Access Flags */ /* enum ShareAccessFlags : uint32_t { READ_LE = (0x00000001), //!< When set, indicates that other opens are allowed to read this file while this open is present. WRITE_LE = (0x00000002), //!< When set, indicates that other opens are allowed to write this file while this open is present DELETE_LE = (0x00000004), //!< When set, indicates that other opens are allowed to delete or rename this file while this open is present ALL_LE = (0x00000007) //!< Combine };*/ enum ShareAccessFlags : uint32_t { SHARE_READ_LE = (0x00000001), //!< When set, indicates that other opens are allowed to read this file while this open is present. SHARE_WRITE_LE = (0x00000002), //!< When set, indicates that other opens are allowed to write this file while this open is present. SHARE_DELETE_LE = (0x00000004) //!< When set, indicates that other opens are allowed to delete or rename this file while this open is present. }; /*! * CreateDisposition Flags */ enum class CreateDisposition : uint32_t { SUPERSEDE = (0x00000000), //!< If the file already exists, supersede it. Otherwise, create the file. OPEN = (0x00000001), //!< If the file already exists, return success; otherwise, fail the operation. CREATE = (0x00000002), //!< If the file already exists, fail the operation; otherwise, create the file. OPEN_IF = (0x00000003), //!< Open the file if it already exists; otherwise, create the file. OVERWRITE = (0x00000004), //!< Overwrite the file if it already exists; otherwise, fail the operation. OVERWRITE_IF = (0x00000005) //!< Overwrite the file if it already exists; otherwise, create the file. }; /*! * Create options Flags */ enum CreateOptionsFlags : uint32_t { DIRECTORY_FILE_LE = (0x00000001), //!< The file being created or opened is a directory file. WRITE_THROUGH_LE = (0x00000002), //!< The server MUST propagate writes to this open to persistent storage before returning success to the client on write operations. SEQUENTIAL_ONLY_LE = (0x00000004), //!< This indicates that the application intends to read or write at sequential offsets using this handle, so the server SHOULD optimize for sequential access NO_INTERMEDIATE_BUFFERRING_LE = (0x00000008), //!< The server or underlying object store SHOULD NOT cache data at intermediate layers and SHOULD allow it to flow through to persistent storage. SYNCHRONOUS_IO_ALERT_LE = (0x00000010), //!< This bit SHOULD be set to 0 and MUST be ignored by the server.<34> SYNCHRONOUS_IO_NON_ALERT_LE = (0x00000020), //!< This bit SHOULD be set to 0 and MUST be ignored by the server.<35> NON_DIRECTORY_FILE_LE = (0x00000040), //!< If the name of the file being created or opened matches with an existing directory file, the server MUST fail the request with STATUS_FILE_IS_A_DIRECTORY. COMPLETE_IF_OPLOCKED_LE = (0x00000100), //!< This bit SHOULD be set to 0 and MUST be ignored by the server NO_EA_KNOWLEDGE_LE = (0x00000200), //!< The caller does not understand how to handle extended attributes. RANDOM_ACCESS_LE = (0x00000800), //!< This indicates that the application intends to read or write at random offsets using this handle, so the server SHOULD optimize for random access. DELETE_ON_CLOSE_LE = (0x00001000), //!< The file MUST be automatically deleted when the last open request on this file is closed. OPEN_BY_FILE_ID_LE = (0x00002000), //!< This bit SHOULD be set to 0 and the server MUST fail the request with a STATUS_NOT_SUPPORTED error if this bit is set.<37> OPEN_FOR_BACKUP_INTENT_LE = (0x00004000), //!< The file is being opened for backup intent. That is, it is being opened or created for the purposes of either a backup or a restore operation NO_COMPRESSION_LE = (0x00008000), //!< The file cannot be compressed. RESERVE_OPFILTER_LE = (0x00100000), //!< This bit SHOULD be set to 0 and the server MUST fail the request with a STATUS_NOT_SUPPORTED error if this bit is set.<38> OPEN_REPARSE_POINT_LE = (0x00200000), //!< If the file or directory being opened is a reparse point, open the reparse point itself rather than the target that the reparse point references. OPEN_NO_RECALL_LE = (0x00400000), //!< In an HSM (Hierarchical Storage Management) environment, this flag means the file SHOULD NOT be recalled from tertiary storage such as tape. The recall can take several minutes. The caller can specify this flag to avoid those delays. OPEN_FOR_FREE_SPACE_QUERY_LE = (0x00800000) //!< Open file to query for free space. The client SHOULD set this to 0 and the server MUST ignore it.<39> }; /*! * CreateDisposition Flags */ enum class CreateActions : uint32_t { SUPERSEDED = (0x00000000), //!< An existing file was deleted and a new file was created in its place. OPENED = (0x00000001), //!< An existing file was opened. CREATED = (0x00000002), //!< A new file was created. FILE_OVERWRITTEN = (0x00000003), //!< An existing file was overwritten. }; /*! * Impersonation Levels */ enum class ImpersonationLevels : uint32_t { ANONYMOUS = (0x00000000), //!< The application-requested impersonation level is Anonymous. IDENTIFICATION = (0x00000001), //!< The application-requested impersonation level is Identification. IMPERSONATION = (0x00000002), //!< The application-requested impersonation level is Impersonation. DELEGATE = (0x00000003) //!< The application-requested impersonation level is Delegate. }; /*! * \brief The createRequest struct * The SMB2 CREATE Request packet is sent by a client to request either * creation of or access to a file. In case of a named pipe or printer, * the server MUST create a new file. */ struct CreateRequest { uint16_t structureSize; //!< The client MUST set this field to 57, indicating the size of the request structure, not including the header. The client MUST set it to this value regardless of how long Buffer[] actually is in the request being sent. uint8_t SecurityFlags; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it. OplockLevels RequestedOplockLevel; //!< The requested oplock level. ImpersonationLevels ImpersonationLevel; //!< This field specifies the impersonation level requested by the application that is issuing the create request uint64_t SmbCreateFlags; //!< This field MUST NOT be used and MUST be reserved. The client SHOULD set this field to zero, and the server MUST ignore it on receipt. uint64_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client sets this to any value, and the server MUST ignore it on receipt. DesiredAccessFlags desiredAccess; //!< The level of access that is required FileAttributes attributes; //!< This field MUST be a combination of the values ShareAccessFlags shareAccess; //!< Specifies the sharing mode for the open CreateDisposition createDisposition; //!< Defines the action the server MUST take if the file that is specified in the name field already exists. CreateOptionsFlags createOptions; //!< Specifies the options to be applied when creating or opening the file. Combinations of the bit positions are valid, unless otherwise noted. uint16_t NameOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the 8-byte aligned file name uint16_t NameLength; //!< The length of the file name, in bytes. uint32_t CreateContextsOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the first 8-byte aligned SMB2_CREATE_CONTEXT structure in the request uint32_t CreateContextsLength; //!< The length, in bytes, of the list of SMB2_CREATE_CONTEXT structures sent in this request. uint8_t Buffer[1]; //!< A variable-length buffer that contains the Unicode file name and create context list, as defined by NameOffset, NameLength, CreateContextsOffset, and CreateContextsLength. } __attribute__ ((__packed__)); /*! * \brief The CreateResponse struct * The SMB2 CREATE Response packet is sent by the server to notify * the client of the status of its SMB2 CREATE Request. */ struct CreateResponse { uint16_t structureSize; //!< Must be 89 OplockLevels oplockLevel; //!< The oplock level that is granted to the client for this open. uint8_t flag; //!< If the server implements the SMB 3.x dialect family, this field MUST be constructed using the 0x01 value. Otherwise, this field MUST NOT be used and MUST be reserved. CreateActions CreateAction; //!< The action taken in establishing the open uint64_t CreationTime; //!< The time when the file was created uint64_t LastAccessTime; //!< The time the file was last accessed uint64_t LastWriteTime; //!< The time when data was last written to the file uint64_t ChangeTime; //!< The time when the file was last modified uint64_t AllocationSize; //!< The size, in bytes, of the data that is allocated to the file. uint64_t EndofFile; //!< The size, in bytes, of the file. FileAttributes attributes; //!< The attributes of the file uint32_t Reserved2; //!< This field MUST NOT be used and MUST be reserved. The server SHOULD set this to 0, and the client MUST ignore it on receipt.<51> uint64_t PersistentFileId; //!< The identifier of the open to a file or pipe that was established. Opaque endianness uint64_t VolatileFileId; //!< uint32_t CreateContextsOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the first 8-byte aligned SMB2_CREATE_CONTEXT response that is contained in this response. uint32_t CreateContextsLength; //!< The length, in bytes, of the list of SMB2_CREATE_CONTEXT response structures that are contained in this response. uint8_t Buffer[1]; //!< A variable-length buffer that contains the list of create contexts that are contained in this response, as described by CreateContextsOffset and CreateContextsLength. } __attribute__ ((__packed__)); /*! * A Flags field indicates how to process the operation. * This field MUST be constructed using the following value */ enum class CloseFlags : uint16_t { POSTQUERY_ATTRIB = (0x0001) }; /*! * \brief The closeRequest struct. The SMB2 CLOSE Request packet is used * by the client to close an instance of a file that was opened previously * with a successful SMB2 CREATE Request. This request is composed of an * SMB2 header. */ struct CloseRequest { uint16_t structureSize; //!< The client MUST set this field to 24, indicating the size of the request structure, not including the header. CloseFlags Flags; //!< If set, the server MUST set the attribute fields in the response to valid values. If not set, the client MUST NOT use the values that are returned in the response. uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint64_t PersistentFileId; //!< The identifier of the open to a file or named pipe that is being close uint64_t VolatileFileId; //!< The identifier of the open to a file or named pipe that is being close } __attribute__ ((__packed__)); /*! * \brief The closeResponse struct. The SMB2 CLOSE Response packet is sent * by the server to indicate that an SMB2 CLOSE Request was processed * successfully. This response is composed of an SMB2 header */ struct CloseResponse { uint16_t structureSize; //!< The server MUST set this field to 60, indicating the size of the response structure, not including the header. CloseFlags Flags; //!< A Flags field indicates how to process the operation uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint64_t CreationTime; //!< The time when the file was created uint64_t LastAccessTime; //!< The time when the file was last accessed uint64_t LastWriteTime; //!< The time when data was last written to the file uint64_t ChangeTime; //!< The time when the file was last modified uint64_t AllocationSize; //!< The size, in bytes, of the data that is allocated to the file uint64_t EndOfFile; //!< The size, in bytes, of the file uint32_t Attributes; //!< The attributes of the file. } __attribute__ ((__packed__)); /*! * \brief The echoRequest struct. The SMB2 ECHO Request packet is sent * by a client to determine whether a server is processing requests. */ struct EchoRequest { uint16_t structureSize; //!< The client MUST set this to 4, indicating the size of the request structure, not including the header. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * \brief The echoResponse struct.The SMB2 ECHO Response packet is sent * by the server to confirm that an SMB2 ECHO Request was successfully processed */ struct EchoResponse { uint16_t structureSize; //!< The server MUST set this to 4, indicating the size of the response structure, not including the header. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! Possible InfoType values */ enum class InfoTypes : uint8_t { FILE = 0x01, //!< The file information is requested. FILESYSTEM = 0x02, //!< The underlying object store information is requested. SECURITY = 0x03, //!< The security information is requested. QUOTA = 0x04 //!< The underlying object store quota information is requested. }; enum class FsInfoLevels : uint8_t { SMB2_FS_INFO_01 = 1, SMB2_FS_INFO_02 = 2, SMB2_FS_INFO_03 = 3, SMB2_FS_INFO_04 = 4, SMB2_FS_INFO_05 = 5, SMB2_FS_INFO_06 = 6, SMB2_FS_INFO_07 = 7 }; /*! * PDU infolevel structure definitions * BB consider moving to a different header * partial list of QUERY INFO levels */ enum class QueryInfoLevels : uint8_t { DIRECTORY_INFORMATION = 1, FULL_DIRECTORY_INFORMATION = 2, BOTH_DIRECTORY_INFORMATION = 3, BASIC_INFORMATION = 4, STANDARD_INFORMATION = 5, INTERNAL_INFORMATION = 6, EA_INFORMATION = 7, ACCESS_INFORMATION = 8, NAME_INFORMATION = 9, RENAME_INFORMATION = 10, LINK_INFORMATION = 11, NAMES_INFORMATION = 12, DISPOSITION_INFORMATION = 13, POSITION_INFORMATION = 14, FULL_EA_INFORMATION = 15, MODE_INFORMATION = 16, ALIGNMENT_INFORMATION = 17, ALL_INFORMATION = 18, ALLOCATION_INFORMATION = 19, END_OF_FILE_INFORMATION = 20, ALTERNATE_NAME_INFORMATION = 21, STREAM_INFORMATION = 22, PIPE_INFORMATION = 23, PIPE_LOCAL_INFORMATION = 24, PIPE_REMOTE_INFORMATION = 25, MAILSLOT_QUERY_INFORMATION = 26, MAILSLOT_SET_INFORMATION = 27, COMPRESSION_INFORMATION = 28, OBJECT_ID_INFORMATION = 29, /* Number 30 not defined in documents */ MOVE_CLUSTER_INFORMATION = 31, QUOTA_INFORMATION = 32, REPARSE_POINT_INFORMATION = 33, NETWORK_OPEN_INFORMATION = 34, ATTRIBUTE_TAG_INFORMATION = 35, TRACKING_INFORMATION = 36, ID_BOTH_DIRECTORY_INFORMATION = 37, ID_FULL_DIRECTORY_INFORMATION = 38, VALID_DATA_LENGTH_INFORMATION = 39, SHORT_NAME_INFORMATION = 40, SFIO_RESERVE_INFORMATION = 44, SFIO_VOLUME_INFORMATION = 45, HARD_LINK_INFORMATION = 46, NORMALIZED_NAME_INFORMATION = 48, ID_GLOBAL_TX_DIRECTORY_INFORMATION = 50, STANDARD_LINK_INFORMATION = 54 }; /*! * Provides additional information to the server. * If security information is being queried, this value contains a 4-byte bit * field of flags indicating what security attributes MUST be returned. */ enum class AdditionInfo : uint32_t { OWNER_SECURITY_INFORMATION = 0x00000001, //!< The client is querying the owner from the security descriptor of the file or named pipe. GROUP_SECURITY_INFORMATION = 0x00000002, //!< The client is querying the group from the security descriptor of the file or named pipe. DACL_SECURITY_INFORMATION = 0x00000004, //!< The client is querying the discretionary access control list from the security descriptor of the file or named pipe. SACL_SECURITY_INFORMATION = 0x00000008, //!< The client is querying the system access control list from the security descriptor of the file or named pipe. LABEL_SECURITY_INFORMATION = 0x00000010, //!< The client is querying the integrity label from the security descriptor of the file or named pipe. ATTRIBUTE_SECURITY_INFORMATION = 0x00000020, //!< The client is querying the resource attribute from the security descriptor of the file or named pipe. SCOPE_SECURITY_INFORMATION = 0x00000040, //!< The client is querying the central access policy of the resource from the security descriptor of the file or named pipe. BACKUP_SECURITY_INFORMATION = 0x00010000 //!< The client is querying the security descriptor information used for backup operation. }; /*! * The flags MUST be set to a combination of zero or more of these bit values * for a FileFullEaInformation query. */ enum FileFullEaInformation : uint32_t { SL_RESTART_SCAN = 0x00000001, //!< Restart the scan for EAs from the beginning. SL_RETURN_SINGLE_ENTRY = 0x00000002, //!< Return a single EA entry in the response buffer. SL_INDEX_SPECIFIED = 0x00000004 //!< The caller has specified an EA index. }; /*! * \brief The QueryInfoRequest struct * The SMB2 QUERY_INFO Request (section 2.2.37) packet is sent by a client * to request information on a file, named pipe, or underlying volume. */ struct QueryInfoRequest { uint16_t structureSize; //!< Must be 41 InfoTypes infoType; //!< The type of information queried uint8_t FileInfoClass; //!< Class of info uint32_t OutputBufferLength; //!< The maximum number of bytes of information the server can send in the response. uint16_t InputBufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the input buffer. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. uint32_t InputBufferLength; //!< The length of the input buffer AdditionInfo AdditionalInformation; //!< Provides additional information to the server. FileFullEaInformation Flags; //!< The flags MUST be set to a combination of zero or more of these bit values for a FileFullEaInformation query. uint64_t PersistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t VolatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint8_t Buffer[1]; //!< A variable-length buffer containing the input buffer for the request, as described by the InputBufferOffset and InputBufferLength fields. } __attribute__ ((__packed__)); /*! * \brief The query_infoResponse struct * The SMB2 QUERY_INFO Response packet is sent by the server * in response to an SMB2 QUERY_INFO Request packet. */ struct QueryInfoResponse { uint16_t structureSize; //!< Must be 9 uint16_t OutputBufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the information being returned. uint32_t OutputBufferLength; //!< The length, in bytes, of the information being returned. uint8_t Buffer[1]; //!< A variable-length buffer that contains the information that is returned in the response, as described by the OutputBufferOffset and OutputBufferLength fields } __attribute__ ((__packed__)); /*! */ enum class OpFlags : uint8_t { SMB2_RESTART_SCANS = 0x01, //!< The server MUST restart the enumeration from the beginning, but the search pattern is not changed. SMB2_RETURN_SINGLE_ENTRY = 0x02, //!< The server MUST only return the first entry of the search results. SMB2_INDEX_SPECIFIED = 0x04, //!< The server SHOULD<64> return entries beginning at the byte number specified by FileIndex. SMB2_REOPEN = 0x10 //!< The server MUST restart the enumeration from the beginning, and the search pattern MUST be changed to the provided value. This often involves silently closing and reopening the directory on the server side. }; /*! * \brief The QueryDirRequest struct * The SMB2 QUERY_DIRECTORY Request packet is sent by the client * to obtain a directory enumeration on a directory open. */ struct QueryDirRequest { uint16_t structureSize; //!< Must be 33 QueryInfoLevels infoType; //!< The file information class describing the format that data MUST be returned in. OpFlags flags; //!< Flags indicating how the query directory operation MUST be processed uint32_t FileIndex; //!< The byte offset within the directory, indicating the position at which to resume the enumeration uint64_t PersistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t VolatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint16_t FileNameOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the search pattern to be used for the enumeration uint16_t FileNameLength; //!< The length, in bytes, of the search pattern. This field MUST be 0 if no search pattern is provided uint32_t OutputBufferLength; //!< The maximum number of bytes the server is allowed to return in the SMB2 QUERY_DIRECTORY Response. uint8_t Buffer[1]; //!< A variable-length buffer containing the Unicode search pattern for the request, as described by the FileNameOffset and FileNameLength fields } __attribute__ ((__packed__)); /*! * \brief The QueryDirResponse struct * The SMB2 QUERY_DIRECTORY Response packet is sent by a server in * response to an SMB2 QUERY_DIRECTORY Reques */ struct QueryDirResponse { uint16_t structureSize; //!< Must be 9 uint16_t OutputBufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the directory enumeration data being returned. uint32_t OutputBufferLength; //!< The length, in bytes, of the directory enumeration being returned. uint8_t Buffer[1]; //!< A variable-length buffer containing the directory enumeration being returned in the response, as described by the OutputBufferOffset and OutputBufferLength } __attribute__ ((__packed__)); /*! * \brief The FlushRequest struct * The SMB2 FLUSH Request packet is sent by a client to * request that a server flush all cached file information * for a specified open of a file to the persistent store that backs the file */ struct FlushRequest { uint16_t structureSize; //!< Must be 24 uint16_t reserved1; //!< This field MUST NOT be used and MUST be reserved. The client may set this to 0, and the server MUST ignore it on receipt. uint32_t reserved2; //!< This field MUST NOT be used and MUST be reserved. The client may set this to 0, and the server MUST ignore it on receipt. uint64_t PersistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t VolatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. } __attribute__ ((__packed__)); /*! * \brief The FlushResponse struct * The SMB2 FLUSH Request packet is sent by a client to * request that a server flush all cached file information * for a specified open of a file to the persistent store that backs the file */ struct FlushResponse { uint16_t structureSize; //!< Must be 4 uint16_t reserved1; //!< This field MUST NOT be used and MUST be reserved. The server may set this to 0, and the client MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * For the SMB 2.002, 2.1 and 3.0 dialects, * this field MUST NOT be used and MUST be reserved. * The client MUST set this field to 0, and the server MUST * ignore it on receipt. Used by the SMB 3.02 dialect. */ enum class BufferingFlags : uint8_t { NONE = 0x00, //!< Default for SMB 2.002, 2.1 and 3.0 dialects SMB2_READFLAG_READ_UNBUFFERED = 0x01, //!< The server or underlying object store SHOULD NOT cache the read data at intermediate layers. }; /*! * For SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. * The client MUST set this field to 0, and the server MUST ignore it on receipt. */ enum class Channels : uint32_t { SMB2_CHANNEL_NONE = 0x00000000,//!< No channel information is present in the request. The ReadChannelInfoOffset and ReadChannelInfoLength fields MUST be set to 0 by the client and MUST be ignored by the server. SMB2_CHANNEL_RDMA_V1 = 0x00000001,//!< One or more SMB_DIRECT_BUFFER_DESCRIPTOR_V1 structures as specified in [MS-SMBD] section 2.2.3.1 are present in the channel information specified by ReadChannelInfoOffset and ReadChannelInfoLength fields. SMB2_CHANNEL_RDMA_V1_INVALIDATE = 0x00000002,//!< This value is valid only for the SMB 3.02 dialect. One or more SMB_DIRECT_BUFFER_DESCRIPTOR_V1 structures, as specified in [MS-SMBD] section 2.2.3.1, are present in the channel information specified by the ReadChannelInfoOffset and ReadChannelInfoLength fields. The server is requested to perform remote invalidation when responding to the request as specified in [MS-SMBD] section 3.1.4.2. }; /*! * \brief The ReadRequest structure * The SMB2 READ Request packet is sent by the client * to request a read operation on the file that is specified by the FileId */ struct ReadRequest { uint16_t structureSize; //!< Must be 49 uint8_t padding; //!< The requested offset from the start of the SMB2 header, in bytes, at which to place the data read in the SMB2 READ Response BufferingFlags flags; //!< For the SMB 2.002, 2.1 and 3.0 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. Used by SMB 3.02 dialect uint32_t length; //!< The length, in bytes, of the data to read from the specified file or pipe. The length of the data being read may be zero bytes. uint64_t offset; //!< The offset, in bytes, into the file from which the data MUST be read uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint32_t minimumCount; //!< The minimum number of bytes to be read for this operation to be successful Channels channel; //!< For SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. uint32_t RemainingBytes; //!< The number of subsequent bytes that the client intends to read from the file after this operation completes. This value is provided to facilitate read-ahead caching, and is not binding on the server. uint16_t ReadChannelInfoOffset; //!< For the SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. For the SMB 3.x dialect family, it contains the offset, in bytes, from the beginning of the SMB2 header to the channel data as specified by the Channel field of the request. uint16_t ReadChannelInfoLength; //!< For the SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. For the SMB 3.x dialect family, it contains the length, in bytes, of the channel data as specified by the Channel field of the request. uint8_t Buffer[1]; //!< A variable-length buffer that contains the read channel information, as described by ReadChannelInfoOffset and ReadChannelInfoLength. Unused at present. The client MUST set one byte of this field to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * \brief The ReadResponse structure * The SMB2 READ Response packet is sent in response * to an SMB2 READ Request packet */ struct ReadResponse { uint16_t structureSize; //!< Must be 17 uint8_t DataOffset; //!< The offset, in bytes, from the beginning of the header to the data read being returned in this response uint8_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint32_t DataLength; //!< The length, in bytes, of the data read being returned in this response. uint32_t DataRemaining; //!< The length, in bytes, of the data being sent on the Channel specified in the request uint32_t Reserved2; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint8_t Buffer[1]; //!< A variable-length buffer that contains the data read for the response, as described by DataOffset and DataLength. The minimum length is 1 byte. If 0 bytes are returned from the underlying object store, the server MUST send a failure response with status equal to STATUS_END_OF_FILE. } __attribute__ ((__packed__)); /*! * A Flags field indicates how to process the operation. * This field MUST be constructed using zero or more of possible values */ enum class WriteFlags : uint32_t { SMB2_WRITEFLAG_WRITE_THROUGH = 0x00000001,//!< The write data should be written to persistent storage before the response is sent regardless of how the file was opened. This value is not valid for the SMB 2.002 dialect. SMB2_WRITEFLAG_WRITE_UNBUFFERED = 0x00000002,//!< The server or underlying object store SHOULD NOT cache the write data at intermediate layers and SHOULD allow it to flow through to persistent storage. This bit is only valid for the SMB 3.02 dialect. }; /*! * \brief The WriteRequest structure * The SMB2 WRITE Request packet is sent by the client * to write data to the file or named pipe on the server. */ struct WriteRequest { uint16_t structureSize; //!< The client MUST set this field to 49, indicating the size of the request structure, not including the header. The client MUST set it to this value regardless of how long Buffer[] actually is in the request being sent. uint16_t dataOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the data being written. uint32_t Length; //!< The length of the data being written, in bytes. The length of the data being written may be zero bytes. uint64_t Offset; //!< he offset, in bytes, of where to write the data in the destination file. If the write is being executed on a pipe, the Offset MUST be set to 0 by the client and MUST be ignored by the server. uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. Channels Channel; //!< For the SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. For the SMB 3.x dialect family, this field MUST contain exactly one of possible values uint32_t RemainingBytes; //!< The number of subsequent bytes the client intends to write to the file after this operation completes. This value is provided to facilitate write caching and is not binding on the server uint16_t WriteChannelInfoOffset; //!< For the SMB 2.002 and 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. For the SMB 3.x dialect family, it contains the offset, in bytes, from the beginning of the SMB2 header to the channel data as described by the Channel field of the request. uint16_t WriteChannelInfoLength; //!< For the SMB 2.002 and SMB 2.1 dialects, this field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. For the SMB 3.x dialect family, it contains the offset, in bytes, from the beginning of the SMB2 header to the channel data as described by the Channel field of the request. WriteFlags Flags; //!< A Flags field indicates how to process the operation. This field MUST be constructed using zero or more of possible values uint8_t Buffer[1]; //!< A variable-length buffer that contains the data to write and the write channel information, as described by DataOffset, Length, WriteChannelInfoOffset, and WriteChannelInfoLength. } __attribute__ ((__packed__)); /*! * \brief The WriteResponse structure * The SMB2 WRITE Response packet is sent in response to an * SMB2 WRITE Request packet */ struct WriteResponse { //FIXME: size must be 17, but actual structure size = 16. Why? uint16_t structureSize; //!< The server MUST set this field to 17, the actual size of the response structure notwithstanding. uint16_t reserved1; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint32_t Count; //!< The number of bytes written. uint32_t Remaining; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint16_t WriteChannelInfoOffset; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. uint16_t WriteChannelInfoLength; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * The description of how the range is being locked or * unlocked and how to process the operation */ enum class LockFlags : uint32_t { SMB2_LOCKFLAG_SHARED_LOCK = 0x00000001, //!< The range MUST be locked shared, allowing other opens to read from or take a shared lock on the range. All opens MUST NOT be allowed to write within the range. Other locks can be requested and taken on this range. SMB2_LOCKFLAG_EXCLUSIVE_LOCK = 0x00000002, //!< The range MUST be locked exclusive, not allowing other opens to read, write, or lock within the range. SMB2_LOCKFLAG_UNLOCK = 0x00000004, //!< The range MUST be unlocked from a previous lock taken on this range. The unlock range MUST be identical to the lock range. Sub-ranges cannot be unlocked. SMB2_LOCKFLAG_FAIL_IMMEDIATELY = 0x00000010, //!< The lock operation MUST fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available. }; /*! * \brief The Lock structure * The SMB2_LOCK_ELEMENT Structure packet is used by the SMB2 LOCK * Request packet to indicate segments of files that * should be locked or unlocked. */ struct Lock { uint64_t Offset; //!< The starting offset, in bytes, in the destination file from where the range being locked or unlocked starts. uint64_t Length; //!< The length, in bytes, of the range being locked or unlocked. LockFlags Flags; //!< The description of how the range is being locked or unlocked and how to process the operation uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * \brief The LockRequest structure * he SMB2 LOCK Request packet is sent by the client to either lock * or unlock portions of a file. * Several different segments of the file can be affected with a * single SMB2 LOCK Request packet, but they all MUST be * within the same file. */ struct LockRequest { uint16_t structureSize; //!< The client MUST set this to 48 uint16_t LockCount; //!< TMUST be set to the number of SMB2_LOCK_ELEMENT structures that are contained in the Locks[] array. The lock count MUST be greater than or equal to 1. uint32_t LockSequence; //!< The client MUST set this to 48, indicating the size of an SMB2 LOCK Request with a single SMB2_LOCK_ELEMENT structure. This value is set regardless of the number of locks that are sent. uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. Lock locks[1]; //!< An array of LockCount (SMB2_LOCK_ELEMENT) structures that define the ranges to be locked or unlocked. } __attribute__ ((__packed__)); /*! * \brief The LockResponse structure * The SMB2 LOCK Response packet is sent by a server * in response to an SMB2 LOCK Request packet */ struct LockResponse { uint16_t structureSize; //!< The server MUST set this to 4 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * \brief The CancelRequest structure * The SMB2 CANCEL Request packet is sent by the client to * cancel a previously sent message on the same SMB2 transport * connection. The MessageId of the request to be canceled MUST * be set in the SMB2 header of the request */ struct CancelRequest { uint16_t structureSize; //!< The server MUST set this to 4 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The server MUST set this to 0, and the client MUST ignore it on receipt. } __attribute__ ((__packed__)); struct CancelResponce {} __attribute__ ((__packed__)); //!< Cancel command's results /*! * Flags indicating how the operation MUST be processed */ enum class ChangeFlags : uint16_t { NONE = 0x0000, SMB2_WATCH_TREE = 0x0001 //!< The request MUST monitor changes on any file or directory contained beneath the directory specified by FileId. }; /*! * Specifies the types of changes to monitor. It is valid to choose multiple trigger conditions */ enum class Events : uint32_t { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001,//!< The client is notified if a file-name changes. FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002,//!< The client is notified if a directory name changes. FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004,//!< The client is notified if a file's attributes change. Possible file attribute values are specified in [MS-FSCC] section 2.6. FILE_NOTIFY_CHANGE_SIZE = 0x00000008,//!< The client is notified if a file's size changes. FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010,//!< The client is notified if the last write time of a file changes. FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020,//!< The client is notified if the last access time of a file changes. FILE_NOTIFY_CHANGE_CREATION = 0x00000040,//!< The client is notified if the creation time of a file changes. FILE_NOTIFY_CHANGE_EA = 0x00000080,//!< The client is notified if a file's extended attributes (EAs) change. FILE_NOTIFY_CHANGE_SECURITY = 0x00000100,//!< The client is notified of a file's access control list (ACL) settings change. FILE_NOTIFY_CHANGE_STREAM_NAME = 0x00000200,//!< The client is notified if a named stream is added to a file. FILE_NOTIFY_CHANGE_STREAM_SIZE = 0x00000400,//!< The client is notified if the size of a named stream is changed. FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800,//!< The client is notified if a named stream is modified. }; /*! * \brief The LockRequest structure * The SMB2 CHANGE_NOTIFY Request packet is sent by the client to * request change notifications on a directory */ struct ChangeNotifyRequest { uint16_t structureSize; //!< The client MUST set this to 32 ChangeFlags flags; //!< Flags indicating how the operation MUST be processed uint32_t OutputBufferLength; //!< The maximum number of bytes the server is allowed to return in the SMB2 CHANGE_NOTIFY Response uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. Events CompletionFilter; //!< Specifies the types of changes to monitor. It is valid to choose multiple trigger conditions uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. } __attribute__ ((__packed__)); /*! * The changes that occurred on the file */ enum class FileAction : uint32_t { ADDED = 0x00000001, //!< The file was added to the directory. REMOVED = 0x00000002, //!< The file was removed from the directory. MODIFIED = 0x00000003, //!< The file was modified. This may be a change to the data or attributes of the file. RENAMED_OLD_NAME = 0x00000004, //!< The file was renamed, and this is the old name. If the new name resides within the directory being monitored, the client will also receive the FILE_ACTION_RENAMED_NEW_NAME bit value as described in the next list item. If the new name resides outside of the directory being monitored, the client will not receive the FILE_ACTION_RENAMED_NEW_NAME bit value. RENAMED_NEW_NAME = 0x00000005, //!< The file was renamed, and this is the new name. If the old name resides within the directory being monitored, the client will also receive the FILE_ACTION_RENAME_OLD_NAME bit value. If the old name resides outside of the directory being monitored, the client will not receive the FILE_ACTION_RENAME_OLD_NAME bit value. ADDED_STREAM = 0x00000006, //!< The file was added to a named stream. REMOVED_STREAM = 0x00000007, //!< The file was removed from the named stream. MODIFIED_STREAM = 0x00000008, //!< The file was modified. This may be a change to the data or attributes of the file. REMOVED_BY_DELETE = 0x00000009, //!< The file was removed by delete. }; /*! * The FILE_NOTIFY_INFORMATION structure contains the changes * that the client is being notified of */ struct FileNotifyInformation { uint32_t NextEntryOffset; //!< The offset, in bytes, from the beginning of this structure to the subsequent FILE_NOTIFY_INFORMATION structure. If there are no subsequent structures, the NextEntryOffset field MUST be 0. NextEntryOffset MUST always be an integral multiple of 4. The FileName array MUST be padded to the next 4-byte boundary counted from the beginning of the structure. FileAction action; //!< The changes that occurred on the file. This field MUST contain one of the following values. uint32_t FileNameLength; //!< The length, in bytes, of the file name in the FileName field. uint32_t FileName[1]; //!< A Unicode string with the name of the file that changed. } __attribute__ ((__packed__)); /*! * \brief The LockResponse structure * The SMB2 CHANGE_NOTIFY Response packet is sent by the * server to transmit the results of a client's SMB2 CHANGE_NOTIFY Request */ struct ChangeNotifyResponse { uint16_t structureSize; //!< The server MUST set this to 9 uint16_t OutputBufferOffset; //!< he offset, in bytes, from the beginning of the SMB2 header to the change information being returned. uint32_t OutputBufferLength; //!< The length, in bytes, of the change information being returned. FileNotifyInformation Buffer[1]; //!< A variable-length buffer containing the change information being returned in the response, as described by the OutputBufferOffset and OutputBufferLength fields. This field is an array of FileNotifyInformation structures } __attribute__ ((__packed__)); /*! * \brief The OplockAcknowledgment structure * The Oplock Break Acknowledgment packet is sent by the client in response * to an SMB2 Oplock Break Notification packet sent by the server. * The server responds to an oplock break acknowledgment with an SMB2 * Oplock Break response. The client MUST NOT send an oplock break * acknowledgment for an oplock break from level II to none. * A break from level II MUST transition to none. * Thus, the client does not send a request to the server because there * is no question how the transition was made. */ struct OplockAcknowledgment { uint16_t structureSize; //!< The client MUST set this to 24 OplockLevels LockCount; //!< The client will set this field to the lowered oplock level that the client accepts for this file uint8_t Reserved1; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint8_t fileId[16]; //!< SMB2_FILEID structure } __attribute__ ((__packed__)); /*! * \brief The OplockResponse structure * The Oplock Break Response packet is sent by the server in response * to an Oplock Break Acknowledgment from the client. */ struct OplockResponse { uint16_t structureSize; //!< The client MUST set this to 24 OplockLevels LockCount; //!< The client will set this field to the lowered oplock level that the client accepts for this file uint8_t Reserved1; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint32_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. uint8_t fileId[16]; //!< SMB2_FILEID structure } __attribute__ ((__packed__)); /*! * The control code of the FSCTL/IOCTL method. * The values are listed in subsequent sections */ enum class CtlCodes : uint32_t { SCTL_DFS_GET_REFERRALS = 0x00060194, FSCTL_PIPE_PEEK = 0x0011400C, FSCTL_PIPE_WAIT = 0x00110018, FSCTL_PIPE_TRANSCEIVE = 0x0011C017, FSCTL_SRV_COPYCHUNK = 0x001440F2, FSCTL_SRV_ENUMERATE_SNAPSHOTS = 0x00144064, FSCTL_SRV_REQUEST_RESUME_KEY = 0x00140078, FSCTL_SRV_READ_HASH = 0x001441bb, FSCTL_SRV_COPYCHUNK_WRITE = 0x001480F2, FSCTL_LMR_REQUEST_RESILIENCY = 0x001401D4, FSCTL_QUERY_NETWORK_INTERFACE_INFO = 0x001401FC, FSCTL_SET_REPARSE_POINT = 0x000900A4, FSCTL_DFS_GET_REFERRALS_EX = 0x000601B0, FSCTL_FILE_LEVEL_TRIM = 0x00098208, FSCTL_VALIDATE_NEGOTIATE_INFO = 0x00140204, }; /*! * A Flags field indicating how to process the operation */ enum class IoCtlOpFlags : uint32_t { NONE = 0x00000000, //!< If Flags is set to this value IOCTL_IS_FSCTL = 0x00000001, //!< If Flags is set to this value }; /*! * NT error codes. */ enum class NTStatus: uint32_t { STATUS_SUCCESS = 0x00000000, STATUS_NO_MORE_FILES = 0x80000006, STATUS_INVALID_HANDLE = 0xC0000008, STATUS_INVALID_PARAMETER = 0xC000000D, STATUS_NO_SUCH_FILE = 0xC000000F, STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016, STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C, STATUS_ACCESS_DENIED = 0xC0000022, STATUS_OBJECT_NAME_INVALID = 0xC0000033, STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034, STATUS_OBJECT_NAME_COLLISION = 0xC0000035, STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A, STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B, STATUS_SHARING_VIOLATION = 0xC0000043, STATUS_EA_TOO_LARGE = 0xC0000050, STATUS_FILE_LOCK_CONFLICT = 0xC0000054, STATUS_LOCK_NOT_GRANTED = 0xC0000055, STATUS_LOGON_FAILURE = 0xC000006D, STATUS_RANGE_NOT_LOCKED = 0xC000007E, STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA, STATUS_NOT_SUPPORTED = 0xC00000BB, STATUS_BAD_DEVICE_TYPE = 0xC00000CB, STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0, STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101, STATUS_NOT_A_DIRECTORY = 0xC0000103, STATUS_CANCELLED = 0xC0000120 }; enum class AccessMask: uint32_t { FILE_READ_DATA = 0x00000001, FILE_WRITE_DATA = 0x00000002, FILE_APPEND_DATA = 0x00000004, FILE_READ_EA = 0x00000008, FILE_WRITE_EA = 0x00000010, FILE_EXECUTE = 0x00000020, FILE_DELETE_CHILD = 0x00000040, FILE_READ_ATTRIBUTES = 0x00000080, FILE_WRITE_ATTRIBUTES = 0x00000100, DELETE = 0x00010000, READ_CONTROL = 0x00020000, WRITE_DAC = 0x00040000, WRITE_OWNER = 0x00080000, SYNCHRONIZE = 0x00100000, ACCESS_SYSTEM_SECURITY = 0x01000000, MAXIMUM_ALLOWED = 0x02000000, GENERIC_ALL = 0x10000000, GENERIC_EXECUTE = 0x20000000, GENERIC_WRITE = 0x40000000, GENERIC_READ = 0x80000000 }; /*! * \brief The IoCtlRequest structure * The SMB2 IOCTL Request packet is sent by a client * to issue an implementation-specific file system * control or device control (FSCTL/IOCTL) command across the network */ struct IoCtlRequest { uint16_t structureSize; //!< The server MUST set this to 57 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. CtlCodes CtlCode; //!< The control code of the FSCTL/IOCTL method uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint32_t InputOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the input data buffer. If no input data is required for the FSCTL/IOCTL command being issued, the client SHOULD set this value to 0.<56> uint32_t InputCount; //!< The size, in bytes, of the input data. uint32_t MaxInputResponse; //!< The maximum number of bytes that the server can return for the input data in the SMB2 IOCTL Response. uint32_t OutputOffset; //!< The client SHOULD set this to 0.<57> uint32_t OutputCount; //!< The client MUST set this to 0. uint32_t MaxOutputResponse; //!< The maximum number of bytes that the server can return for the output data in the SMB2 IOCTL Response. IoCtlOpFlags flags; //!< A Flags field indicating how to process the operation uint32_t Reserved2; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. uint8_t Buffer[1]; //!< A variable-length buffer that contains the input and output data buffer for the request, as described by the InputOffset, InputCount, OutputOffset, and OutputCount. There is no minimum size restriction for this field as there can be FSCTLs with no input or output buffers. For FSCTL_SRV_COPYCHUNK or FSCTL_SRV_COPYCHUNK_WRITE, the format of this buffer is specified in SRV_COPYCHUNK_COPY. The Buffer format for FSCTL_DFS_GET_REFERRALS is specified in [MS-DFSC] section 2.2.2. The format of this buffer for all other FSCTLs is specified in the reference topic for the FSCTL being called. } __attribute__ ((__packed__)); /*! * \brief The IoCtlResponse structure * The SMB2 IOCTL Response packet is sent by the server * to transmit the results of a client SMB2 IOCTL Request. */ struct IoCtlResponse { uint16_t structureSize; //!< The server MUST set this to 49 uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this to 0, and the server MUST ignore it on receipt. CtlCodes CtlCode; //!< The control code of the FSCTL/IOCTL method uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint32_t InputOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the input data buffer. If no input data is required for the FSCTL/IOCTL command being issued, the client SHOULD set this value to 0.<56> uint32_t InputCount; //!< The size, in bytes, of the input data. uint32_t OutputOffset; //!< The client SHOULD set this to 0.<57> uint32_t OutputCount; //!< The client MUST set this to 0. IoCtlOpFlags flags; //!< A Flags field indicating how to process the operation uint32_t Reserved2; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. uint8_t Buffer[1]; //!< A variable-length buffer that contains the input and output data buffer for the request, as described by the InputOffset, InputCount, OutputOffset, and OutputCount. There is no minimum size restriction for this field as there can be FSCTLs with no input or output buffers. For FSCTL_SRV_COPYCHUNK or FSCTL_SRV_COPYCHUNK_WRITE, the format of this buffer is specified in SRV_COPYCHUNK_COPY. The Buffer format for FSCTL_DFS_GET_REFERRALS is specified in [MS-DFSC] section 2.2.2. The format of this buffer for all other FSCTLs is specified in the reference topic for the FSCTL being called. } __attribute__ ((__packed__)); /*! * \brief The SetInfoRequest structure * The SMB2 SET_INFO Request packet is sent by a client * to set information on a file or underlying object store */ struct SetInfoRequest { uint16_t structureSize; //!< The server MUST set this to 33 InfoTypes infoType; //!< The type of information being set uint8_t FileInfoClass; //!< For setting file information, this field MUST contain one of the FILE_INFORMATION_CLASS values uint32_t BufferLength; //!< The length, in bytes, of the information to be set. uint16_t BufferOffset; //!< The offset, in bytes, from the beginning of the SMB2 header to the information to be set. uint16_t Reserved; //!< This field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt. AdditionInfo AdditionalInformation; //!< Provides additional information to the server. uint64_t persistentFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint64_t volatileFileId; //!< An SMB2_FILEID identifier of the file or named pipe on which to perform the query. uint8_t Buffer[1]; } __attribute__ ((__packed__)); /*! * \brief The SetInfoResponse structure * The SMB2 SET_INFO Response packet is sent by the server * in response to an SMB2 SET_INFO Request to notify the * client that its request has been successfully processed */ struct SetInfoResponse { uint16_t structureSize; //!< The server MUST set this to 2 } __attribute__ ((__packed__)); } // namespace SMBv2 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//API_CIFS2_COMMANDS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/cifs_commands.h000066400000000000000000000661511261713114600176520ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Definition of CIFSv1 commands // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef API_CIFS_COMMANDS_H #define API_CIFS_COMMANDS_H //------------------------------------------------------------------------------ #include #include "cifs_pc_to_net.h" //------------------------------------------------------------------------------ namespace NST { namespace API { /*! SMB 1 version */ namespace SMBv1 { /*! CIFS v1 commands list */ enum class SMBv1Commands { SMB_COM_CREATE_DIRECTORY, //!< Create a new directory. SMB_COM_DELETE_DIRECTORY, //!< Delete an empty directory. SMB_COM_OPEN, //!< Open a file. SMB_COM_CREATE, //!< Create or open a file. SMB_COM_CLOSE, //!< Close a file. SMB_COM_FLUSH, //!< Flush data for a file SMB_COM_DELETE, //!< Delete a file. SMB_COM_RENAME, //!< Rename a file or set of files. SMB_COM_QUERY_INFORMATION, //!< Get file attributes. SMB_COM_SET_INFORMATION, //!< Set file attributes. SMB_COM_READ, //!< Read from a file. SMB_COM_WRITE, //!< Write to a file. SMB_COM_LOCK_BYTE_RANGE, //!< Request a byte-range lock on a file. SMB_COM_UNLOCK_BYTE_RANGE, //!< Release a byte-range lock on a file. SMB_COM_CREATE_TEMPORARY, //!< Create a temporary file. SMB_COM_CREATE_NEW, //!< Create and open a new file. SMB_COM_CHECK_DIRECTORY, //!< Verify that the specified pathname resolves to a directory.Listed as SMBchkpath in some documentation. SMB_COM_PROCESS_EXIT, //!< Indicate process exit. SMB_COM_SEEK, //!< Set the current file pointer within a file. SMB_COM_LOCK_AND_READ, //!< Lock and read a byte-range within a file. SMB_COM_WRITE_AND_UNLOCK, //!< Write and unlock a byte-range within a file. SMB_COM_READ_RAW, //!< Read a block in raw mode. SMB_COM_READ_MPX, //!< Multiplexed block read. Listed as SMBreadmpx in some documentation. SMB_COM_READ_MPX_SECONDARY, //!< Multiplexed block read SMB_COM_WRITE_RAW, //!< Write a block in raw mode. SMB_COM_WRITE_MPX, //!< Multiplexed block write. SMB_COM_WRITE_MPX_SECONDARY, //!< Multiplexed block write SMB_COM_WRITE_COMPLETE, //!< Raw block write SMB_COM_QUERY_SERVER, //!< Reserved SMB_COM_SET_INFORMATION2, //!< Set an extended set of file attributes. SMB_COM_QUERY_INFORMATION2, //!< Get an extended set of file attributes. SMB_COM_LOCKING_ANDX, //!< Lock multiple byte ranges; AndX chaining. SMB_COM_TRANSACTION, //!< Transaction. SMB_COM_TRANSACTION_SECONDARY, //!< Transaction secondary request. SMB_COM_IOCTL, //!< Pass an I/O Control function request to the server. SMB_COM_IOCTL_SECONDARY, //!< IOCTL secondary request. SMB_COM_COPY, //!< Copy a file or directory. SMB_COM_MOVE, //!< Move a file or directory. SMB_COM_ECHO, //!< Echo request (ping). SMB_COM_WRITE_AND_CLOSE, //!< Write to and close a file. SMB_COM_OPEN_ANDX, //!< Extended file open with AndX chaining. SMB_COM_READ_ANDX, //!< Extended file read with AndX chaining. SMB_COM_WRITE_ANDX, //!< Extended file write with AndX chaining. SMB_COM_NEW_FILE_SIZE, //!< Reserved SMB_COM_CLOSE_AND_TREE_DISC, //!< Close an open file and tree disconnect. SMB_COM_TRANSACTION2, //!< Transaction 2 format request/response. SMB_COM_TRANSACTION2_SECONDARY, //!< Transaction 2 secondary request. SMB_COM_FIND_CLOSE2, //!< Close an active search. SMB_COM_FIND_NOTIFY_CLOSE, //!< Notification of the closure of an active search. SMB_COM_TREE_CONNECT, //!< Tree connect. SMB_COM_TREE_DISCONNECT, //!< Tree disconnect. SMB_COM_NEGOTIATE, //!< Negotiate protocol dialect. SMB_COM_SESSION_SETUP_ANDX, //!< Session Setup with AndX chaining. SMB_COM_LOGOFF_ANDX, //!< User logoff with AndX chaining. SMB_COM_TREE_CONNECT_ANDX, //!< Tree connect with AndX chaining. SMB_COM_SECURITY_PACKAGE_ANDX, //!< Negotiate security packages with AndX chaining. SMB_COM_QUERY_INFORMATION_DISK, //!< Retrieve file system information from the server. SMB_COM_SEARCH, //!< Directory wildcard search. SMB_COM_FIND, //!< Start or continue an extended wildcard directory search. SMB_COM_FIND_UNIQUE, //!< Perform a one-time extended wildcard directory search. SMB_COM_FIND_CLOSE, //!< End an extended wildcard directory search. SMB_COM_NT_TRANSACT, //!< NT format transaction request/response. SMB_COM_NT_TRANSACT_SECONDARY, //!< NT format transaction secondary request. SMB_COM_NT_CREATE_ANDX, //!< Create or open a file or a directory. SMB_COM_NT_CANCEL, //!< Cancel a request currently pending at the server. SMB_COM_NT_RENAME, //!< File rename with extended semantics. SMB_COM_OPEN_PRINT_FILE, //!< Create a print queue spool file. SMB_COM_WRITE_PRINT_FILE, //!< Write to a print queue spool file. SMB_COM_CLOSE_PRINT_FILE, //!< Close a print queue spool file. SMB_COM_GET_PRINT_QUEUE, //!< Request print queue information. SMB_COM_READ_BULK, //!< Reserved SMB_COM_WRITE_BULK, //!< Reserved SMB_COM_WRITE_BULK_DATA, //!< Reserved SMB_COM_INVALID, //!< As the name suggests SMB_COM_NO_ANDX_COMMAND, //!< Also known as the NIL command. It identifies the end of an AndX Chain CMD_COUNT }; static const int commandsCount = 255; struct CreateDirectoryArgumentType{} __attribute__ ((__packed__)); //!< CreateDirectory arguments struct CreateDirectoryResultType{} __attribute__ ((__packed__)); //!< CreateDirectory results struct DeleteDirectoryArgumentType{} __attribute__ ((__packed__)); //!< DeleteDirectory arguments struct DeleteDirectoryResultType{} __attribute__ ((__packed__)); //!< DeleteDirectory results struct OpenArgumentType{} __attribute__ ((__packed__)); //!< Open arguments struct OpenResultType{} __attribute__ ((__packed__)); //!< Open results struct CreateArgumentType{} __attribute__ ((__packed__)); //!< Create arguments struct CreateResultType{} __attribute__ ((__packed__)); //!< Create results struct CloseArgumentType{} __attribute__ ((__packed__)); //!< Close arguments struct CloseResultType{} __attribute__ ((__packed__)); //!< Close results struct FlushArgumentType{} __attribute__ ((__packed__)); //!< Flush arguments struct FlushResultType{} __attribute__ ((__packed__)); //!< Flush results struct DeleteArgumentType{} __attribute__ ((__packed__)); //!< Delete arguments struct DeleteResultType{} __attribute__ ((__packed__)); //!< Delete results struct RenameArgumentType{} __attribute__ ((__packed__)); //!< Rename arguments struct RenameResultType{} __attribute__ ((__packed__)); //!< Rename results struct QueryInformationArgumentType{} __attribute__ ((__packed__)); //!< QueryInformation arguments struct QueryInformationResultType{} __attribute__ ((__packed__)); //!< QueryInformation results struct SetInformationArgumentType{} __attribute__ ((__packed__)); //!< Set Information arguments struct SetInformationResultType{} __attribute__ ((__packed__)); //!< Set Information results struct ReadArgumentType{} __attribute__ ((__packed__)); //!< Read arguments struct ReadResultType{} __attribute__ ((__packed__)); //!< Read results struct WriteArgumentType{} __attribute__ ((__packed__)); //!< Write arguments struct WriteResultType{} __attribute__ ((__packed__)); //!< Write results struct LockByteRangeArgumentType{} __attribute__ ((__packed__)); //!< Lock Byte Range arguments struct LockByteRangeResultType{} __attribute__ ((__packed__)); //!< Lock Byte Range results struct UnlockByteRangeArgumentType{} __attribute__ ((__packed__)); //!< UnLock Byte Range arguments struct UnlockByteRangeResultType{} __attribute__ ((__packed__)); //!< UnLock Byte Range results struct CreateTemporaryArgumentType{} __attribute__ ((__packed__)); //!< Create Temporary file arguments struct CreateTemporaryResultType{} __attribute__ ((__packed__)); //!< Create Temporary file results struct CreateNewArgumentType{} __attribute__ ((__packed__)); //!< Create a new file arguments struct CreateNewResultType{} __attribute__ ((__packed__)); //!< Create a new file results struct CheckDirectoryArgumentType{} __attribute__ ((__packed__)); //!< CheckDirectory arguments struct CheckDirectoryResultType{} __attribute__ ((__packed__)); //!< CheckDirectory results struct ProcessExitArgumentType{} __attribute__ ((__packed__)); //!< Process Exit arguments struct ProcessExitResultType{} __attribute__ ((__packed__)); //!< Process Exit results struct SeekArgumentType{} __attribute__ ((__packed__)); //!< Seek arguments struct SeekResultType{} __attribute__ ((__packed__)); //!< Seek results struct LockAndReadArgumentType{} __attribute__ ((__packed__)); //!< Lock And Read arguments struct LockAndReadResultType{} __attribute__ ((__packed__)); //!< Lock And Read results struct WriteAndUnlockArgumentType{} __attribute__ ((__packed__)); //!< Write And Unlock arguments struct WriteAndUnlockResultType{} __attribute__ ((__packed__)); //!< Write And Unlock results struct ReadRawArgumentType{} __attribute__ ((__packed__)); //!< Read raw command's arguments struct ReadRawResultType{} __attribute__ ((__packed__)); //!< Read raw command's results struct ReadMpxArgumentType{} __attribute__ ((__packed__)); //!< Read Mpx command's arguments struct ReadMpxResultType{} __attribute__ ((__packed__)); //!< Read Mpx command's results struct ReadMpxSecondaryArgumentType{} __attribute__ ((__packed__)); //!< Read Read Mpx Secondary command's arguments struct ReadMpxSecondaryResultType{} __attribute__ ((__packed__)); //!< Read Read Mpx Secondary command's results struct WriteRawArgumentType{} __attribute__ ((__packed__)); //!< Write Raw command's arguments struct WriteRawResultType{} __attribute__ ((__packed__)); //!< Write Raw command's results struct WriteMpxArgumentType{} __attribute__ ((__packed__)); //!< Write Mpx command's arguments struct WriteMpxResultType{} __attribute__ ((__packed__)); //!< Write Mpx command's results struct WriteMpxSecondaryArgumentType{} __attribute__ ((__packed__)); //!< Write Mpx 2 command's arguments struct WriteMpxSecondaryResultType{} __attribute__ ((__packed__)); //!< Write Mpx 2 command's results struct WriteCompleteArgumentType{} __attribute__ ((__packed__)); //!< Write Complete command's arguments struct WriteCompleteResultType{} __attribute__ ((__packed__)); //!< Write Complete command's results struct QueryServerArgumentType{} __attribute__ ((__packed__)); //!< Query Server (reserved) command's arguments struct QueryServerResultType{} __attribute__ ((__packed__)); //!< Query Server (reserved) command's results struct SetInformation2ArgumentType{} __attribute__ ((__packed__)); //!< Set Information 2 command's arguments struct SetInformation2ResultType{} __attribute__ ((__packed__)); //!< Set Information 2 command's results struct QueryInformation2ArgumentType{} __attribute__ ((__packed__)); //!< Query Information 2 command's arguments struct QueryInformation2ResultType{} __attribute__ ((__packed__)); //!< Query Information 2 command's results struct LockingAndxArgumentType{} __attribute__ ((__packed__)); //!< Lock some bytes of the file command's arguments struct LockingAndxResultType{} __attribute__ ((__packed__)); //!< Lock some bytes of the file command's results struct TransactionArgumentType{} __attribute__ ((__packed__)); //!< Transaction command's arguments struct TransactionResultType{} __attribute__ ((__packed__)); //!< Transaction command's results struct TransactionSecondaryArgumentType{} __attribute__ ((__packed__)); //!< Transaction 2 command's arguments struct TransactionSecondaryResultType{} __attribute__ ((__packed__)); //!< Transaction 2 command's results struct IoctlArgumentType{} __attribute__ ((__packed__)); //!< Ioctl command's arguments struct IoctlResultType{} __attribute__ ((__packed__)); //!< Ioctl command's results struct IoctlSecondaryArgumentType{} __attribute__ ((__packed__)); //!< Ioctl 2 command's arguments struct IoctlSecondaryResultType{} __attribute__ ((__packed__)); //!< Ioctl 2 command's results struct CopyArgumentType{} __attribute__ ((__packed__)); //!< Copy command's arguments struct CopyResultType{} __attribute__ ((__packed__)); //!< Copy command's results struct MoveArgumentType{} __attribute__ ((__packed__)); //!< Move command's arguments struct MoveResultType{} __attribute__ ((__packed__)); //!< Move command's results struct EchoArgumentType{} __attribute__ ((__packed__)); //!< Echo command's arguments struct EchoResultType{} __attribute__ ((__packed__)); //!< Echo command's results struct WriteAndCloseArgumentType{} __attribute__ ((__packed__)); //!< Write And Close command's arguments struct WriteAndCloseResultType{} __attribute__ ((__packed__)); //!< Write And Close command's results struct OpenAndxArgumentType{} __attribute__ ((__packed__)); //!< Open 2 command's arguments struct OpenAndxResultType{} __attribute__ ((__packed__)); //!< Open 2 command's results struct ReadAndxArgumentType{} __attribute__ ((__packed__)); //!< Read 2 command's arguments struct ReadAndxResultType{} __attribute__ ((__packed__)); //!< Read 2 command's results struct WriteAndxArgumentType{} __attribute__ ((__packed__)); //!< Write 2 command's arguments struct WriteAndxResultType{} __attribute__ ((__packed__)); //!< Write 2 command's results struct NewFileSizeArgumentType{} __attribute__ ((__packed__)); //!< New File Size command's arguments struct NewFileSizeResultType{} __attribute__ ((__packed__)); //!< New File Size command's results struct CloseAndTreeDiscArgumentType{} __attribute__ ((__packed__)); //!< Reserved command's arguments struct CloseAndTreeDiscResultType{} __attribute__ ((__packed__)); //!< Reserved command's results struct Transaction2ArgumentType{} __attribute__ ((__packed__)); //!< Transaction 2 command's arguments struct Transaction2ResultType{} __attribute__ ((__packed__)); //!< Transaction 2 command's results struct Transaction2SecondaryArgumentType{} __attribute__ ((__packed__)); //!< Transaction 3 command's arguments struct Transaction2SecondaryResultType{} __attribute__ ((__packed__)); //!< Transaction 3 command's results struct FindClose2ArgumentType{} __attribute__ ((__packed__)); //!< Search handle close command's arguments struct FindClose2ResultType{} __attribute__ ((__packed__)); //!< Search handle close command's results struct FindNotifyCloseArgumentType{} __attribute__ ((__packed__)); //!< Search handle close command's arguments struct FindNotifyCloseResultType{} __attribute__ ((__packed__)); //!< Search handle close command's results struct TreeConnectArgumentType{} __attribute__ ((__packed__)); //!< establish a client connection to a server share command's arguments struct TreeConnectResultType{} __attribute__ ((__packed__)); //!< establish a client connection to a server share command's results struct TreeDisconnectArgumentType{} __attribute__ ((__packed__)); //!< Disconnect command's arguments struct TreeDisconnectResultType{} __attribute__ ((__packed__)); //!< Disconnect command's results struct NegotiateArgumentType{} __attribute__ ((__packed__)); //!< Negotiate command's arguments struct NegotiateResultType{} __attribute__ ((__packed__)); //!< Negotiate command's results struct SessionSetupAndxArgumentType{} __attribute__ ((__packed__)); //!< Session setup command's arguments struct SessionSetupAndxResultType{} __attribute__ ((__packed__)); //!< Session setup command's results struct LogoffAndxArgumentType{} __attribute__ ((__packed__)); //!< Log off command's arguments struct LogoffAndxResultType{} __attribute__ ((__packed__)); //!< Log off command's results struct TreeConnectAndxArgumentType{} __attribute__ ((__packed__)); //!< Tree Connect command's arguments struct TreeConnectAndxResultType{} __attribute__ ((__packed__)); //!< Tree Connect command's results struct SecurityPackageAndxArgumentType{} __attribute__ ((__packed__)); //!< Security Package command's arguments struct SecurityPackageAndxResultType{} __attribute__ ((__packed__)); //!< Security Package command's results struct QueryInformationDiskArgumentType{} __attribute__ ((__packed__)); //!< Query Disk Information command's arguments struct QueryInformationDiskResultType{} __attribute__ ((__packed__)); //!< Query Disk Information command's results struct SearchArgumentType{} __attribute__ ((__packed__)); //!< Search command's arguments struct SearchResultType{} __attribute__ ((__packed__)); //!< Search command's results struct FindArgumentType{} __attribute__ ((__packed__)); //!< Find command's arguments struct FindResultType{} __attribute__ ((__packed__)); //!< Find command's results struct FindUniqueArgumentType{} __attribute__ ((__packed__)); //!< Find unique command's arguments struct FindUniqueResultType{} __attribute__ ((__packed__)); //!< Find unique command's results struct FindCloseArgumentType{} __attribute__ ((__packed__)); //!< Find close command's arguments struct FindCloseResultType{} __attribute__ ((__packed__)); //!< Find close command's results struct NtTransactArgumentType{} __attribute__ ((__packed__)); //!< Transact command's arguments struct NtTransactResultType{} __attribute__ ((__packed__)); //!< Transact command's results struct NtTransactSecondaryArgumentType{} __attribute__ ((__packed__)); //!< Transact 2 command's arguments struct NtTransactSecondaryResultType{} __attribute__ ((__packed__)); //!< Transact 2 command's results struct NtCreateAndxArgumentType{} __attribute__ ((__packed__)); //!< Create command's arguments struct NtCreateAndxResultType{} __attribute__ ((__packed__)); //!< Create command's results struct NtCancelArgumentType{} __attribute__ ((__packed__)); //!< Cancel command's arguments struct NtCancelResultType{} __attribute__ ((__packed__)); //!< Cancel command's results struct NtRenameArgumentType{} __attribute__ ((__packed__)); //!< Rename command's arguments struct NtRenameResultType{} __attribute__ ((__packed__)); //!< Rename command's results struct OpenPrintFileArgumentType{} __attribute__ ((__packed__)); //!< Open Print File command's arguments struct OpenPrintFileResultType{} __attribute__ ((__packed__)); //!< Open Print File command's results struct WritePrintFileArgumentType{} __attribute__ ((__packed__)); //!< Write Print File command's arguments struct WritePrintFileResultType{} __attribute__ ((__packed__)); //!< Write Print File command's results struct ClosePrintFileArgumentType{} __attribute__ ((__packed__)); //!< Close Print File command's arguments struct ClosePrintFileResultType{} __attribute__ ((__packed__)); //!< Close Print File command's results struct GetPrintQueueArgumentType{} __attribute__ ((__packed__)); //!< Get Print Queue command's arguments struct GetPrintQueueResultType{} __attribute__ ((__packed__)); //!< Get Print Queue command's results struct ReadBulkArgumentType{} __attribute__ ((__packed__)); //!< Read Bulk command's arguments struct ReadBulkResultType{} __attribute__ ((__packed__)); //!< Read Bulk command's results struct WriteBulkArgumentType{} __attribute__ ((__packed__)); //!< Write Bulk command's arguments struct WriteBulkResultType{} __attribute__ ((__packed__)); //!< Write Bulk command's results struct WriteBulkDataArgumentType{} __attribute__ ((__packed__)); //!< Write Bulk command's arguments struct WriteBulkDataResultType{} __attribute__ ((__packed__)); //!< Write Bulk command's results struct InvalidArgumentType{} __attribute__ ((__packed__)); //!< Invalid command's arguments struct InvalidResultType{} __attribute__ ((__packed__)); //!< Invalid command's results struct NoAndxCmdArgumentType{} __attribute__ ((__packed__)); //!< No command's arguments struct NoAndxCmdResultType{} __attribute__ ((__packed__)); //!< No command's results } // namespace SMBv1 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//API_CIFS_COMMANDS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/cifs_pc_to_net.h000066400000000000000000000070121261713114600200120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Converters to LE for CIFS v2 constants. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PC_TO_NET_H #define PC_TO_NET_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ #if defined(__linux__) || defined(__GNU__) #include #define NFSTRACE_BYTE_ORDER __BYTE_ORDER #define NFSTRACE_BIG_ENDIAN __BIG_ENDIAN #define NFSTRACE_LITTLE_ENDIAN __LITTLE_ENDIAN #else #include #include #define NFSTRACE_BYTE_ORDER BYTE_ORDER #define NFSTRACE_BIG_ENDIAN BIG_ENDIAN #define NFSTRACE_LITTLE_ENDIAN LITTLE_ENDIAN #endif //------------------------------------------------------------------------------ namespace NST { namespace API { namespace SMBv2 { # if NFSTRACE_BYTE_ORDER == NFSTRACE_BIG_ENDIAN // TODO: rename this function template to LEconstant2host template constexpr T pc_to_net(T t) { static_assert(t == T{}, "try to not use pc_to_net w/o specialization"); return t; } template<> constexpr std::uint64_t pc_to_net(std::uint64_t t) { return ((t & 0xFF00000000000000) >> 56) | ((t & 0x00FF000000000000) >> 40) | ((t & 0x0000FF0000000000) >> 24) | ((t & 0x000000FF00000000) >> 8) | ((t & 0x00000000FF000000) << 8) | ((t & 0x0000000000FF0000) << 24) | ((t & 0x000000000000FF00) << 40) | ((t & 0x00000000000000FF) << 56); } template<> constexpr uint32_t pc_to_net(uint32_t t) { return ((t & 0xFF000000) >> 24) | ((t & 0x00FF0000) >> 8) | ((t & 0x0000FF00) << 8) | ((t & 0x000000FF) << 24); } template<> constexpr uint16_t pc_to_net(uint16_t t) { return ((t & 0xFF00) >> 8) | ((t & 0x00FF) << 8); } template<> constexpr std::uint8_t pc_to_net(std::uint8_t v) { return v; } template<> constexpr std::int64_t pc_to_net(std::int64_t v) { return pc_to_net((std::uint64_t)v); } template<> constexpr std::int32_t pc_to_net(std::int32_t v) { return pc_to_net((std::uint32_t)v); } template<> constexpr std::int16_t pc_to_net(std::int16_t v) { return pc_to_net((std::uint16_t)v); } template<> constexpr std::int8_t pc_to_net(std::int8_t v) { return pc_to_net((std::uint8_t)v); } # else # if NFSTRACE_BYTE_ORDER == NFSTRACE_LITTLE_ENDIAN /*! * Does nothing for Intel */ template constexpr T pc_to_net(T t) { return t; } # endif #endif } // SMBv2 } // API } // NST //------------------------------------------------------------------------------ #endif//PC_TO_NET_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/cifs_types.h000066400000000000000000000520541261713114600172120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Definition of CIFS types and commands // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFS_TYPES_H #define CIFS_TYPES_H //------------------------------------------------------------------------------ #include #include "cifs_commands.h" #include "cifs2_commands.h" #include "procedure.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace CIFSv1 { struct RawMessageHeader; } namespace CIFSv2 { struct RawMessageHeader; } } // namespace protocols namespace API { /*! SMB 1 version */ namespace SMBv1 { using Session = u_int16_t;//!< Session IDentifier /*! Represents one SMB command */ template < typename Header, typename Request, typename Response > class Command : public Procedure { public: using RequestType = Request; using ResponseType = Response; using HeaderType = Header; const HeaderType* req_header = nullptr; const HeaderType* res_header = nullptr; const RequestType* parg = nullptr;//!< Arguments of specified command const ResponseType* pres = nullptr;//!< Results of specified command }; using CreateDirectoryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CreateDirectoryArgumentType, CreateDirectoryResultType>; //!< CreateDirectory command using DeleteDirectoryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, DeleteDirectoryArgumentType, DeleteDirectoryResultType>; //!< DeleteDirectory command using OpenCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, OpenArgumentType, OpenResultType>; //!< Open command using CreateCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CreateArgumentType, CreateResultType>; //!< Create command using CloseCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CloseArgumentType, CloseResultType>; //!< Close command using FlushCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FlushArgumentType, FlushResultType>; //!< Flush command using DeleteCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, DeleteArgumentType, DeleteResultType>; //!< Delete command using RenameCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, RenameArgumentType, RenameResultType>; //!< Rename command using QueryInformationCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, QueryInformationArgumentType, QueryInformationResultType>; //!< QueryInformation command. This transaction is used to get information about a specific file or directory. There are several information levels that can be queried. using SetInformationCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SetInformationArgumentType, SetInformationResultType>; //!< Set Information command. This transaction is used to set the standard and extended attribute information of a specific file or directory on the server. using ReadCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadArgumentType, ReadResultType>; //!< Read command using WriteCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteArgumentType, WriteResultType>; //!< Write command using LockByteRangeCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, LockByteRangeArgumentType, LockByteRangeResultType>; //!< Lock Byte Range command. This command is used to explicitly lock a contiguous range of bytes in an open regular file. using UnlockByteRangeCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, UnlockByteRangeArgumentType, UnlockByteRangeResultType>; //!< UnLock Byte Range command using CreateTemporaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CreateTemporaryArgumentType, CreateTemporaryResultType>; //!< Create Temporary file command. This command is used to create a file for temporary use by the client. using CreateNewCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CreateNewArgumentType, CreateNewResultType>; //!< Create a new file command. This command is used to create a new file. It MUST NOT truncate or overwrite an existing file. using CheckDirectoryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CheckDirectoryArgumentType, CheckDirectoryResultType>; //!< CheckDirectory command. This command is used to verify that a specified path resolves to a valid directory on the server. using ProcessExitCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ProcessExitArgumentType, ProcessExitResultType>; //!< Process Exit command.An SMB_COM_PROCESS_EXIT request is sent by the client to indicate the catastrophic failure of a client process. using SeekCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SeekArgumentType, SeekResultType>; //!< Seek command using LockAndReadCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, LockAndReadArgumentType, LockAndReadResultType>; //!< Lock And Read command using WriteAndUnlockCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteAndUnlockArgumentType, WriteAndUnlockResultType>; //!< Write And Unlock command using ReadRawCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadRawArgumentType, ReadRawResultType>; //!< Read raw command using ReadMpxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadMpxArgumentType, ReadMpxResultType>; //!< Read Mpx command. This is a specialized read command intended to maximize the performance of reading large blocks of data from a regular file while allowing for other operations to take place between the client and the server. using ReadMpxSecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadMpxSecondaryArgumentType, ReadMpxSecondaryResultType>; //!< Read Read Mpx Secondary command using WriteRawCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteRawArgumentType, WriteRawResultType>; //!< Write Raw command. The command permits a client to send a large unformatted data (raw byte) message over the SMB transport without requiring the usual SMB request format using WriteMpxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteMpxArgumentType, WriteMpxResultType>; //!< Write Mpx command using WriteMpxSecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteMpxSecondaryArgumentType, WriteMpxSecondaryResultType>; //!< Write Mpx 2 command using WriteCompleteCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteCompleteArgumentType, WriteCompleteResultType>; //!< Write Complete command using QueryServerCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, QueryServerArgumentType, QueryServerResultType>; //!< Query Server (reserved) command using SetInformation2Command = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SetInformation2ArgumentType, SetInformation2ResultType>; //!< Set Information 2 command using QueryInformation2Command = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, QueryInformation2ArgumentType, QueryInformation2ResultType>; //!< Query Information 2 command using LockingAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, LockingAndxArgumentType, LockingAndxResultType>; //!< Lock some bytes of the file command using TransactionCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, TransactionArgumentType, TransactionResultType>; //!< Transaction command.These commands operate on mailslots and named pipes, which are interprocess communication endpoints within the CIFS file system using TransactionSecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, TransactionSecondaryArgumentType, TransactionSecondaryResultType>; //!< Transaction 2 command using IoctlCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, IoctlArgumentType, IoctlResultType>; //!< Ioctl command using IoctlSecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, IoctlSecondaryArgumentType, IoctlSecondaryResultType>; //!< Ioctl 2 command using CopyCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CopyArgumentType, CopyResultType>; //!< Copy command using MoveCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, MoveArgumentType, MoveResultType>; //!< Move command using EchoCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, EchoArgumentType, EchoResultType>; //!< Echo command using WriteAndCloseCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteAndCloseArgumentType, WriteAndCloseResultType>; //!< Write And Close command using OpenAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, OpenAndxArgumentType, OpenAndxResultType>; //!< Open 2 command using ReadAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadAndxArgumentType, ReadAndxResultType>; //!< Read 2 command using WriteAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteAndxArgumentType, WriteAndxResultType>; //!< Write 2 command using NewFileSizeCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NewFileSizeArgumentType, NewFileSizeResultType>; //!< New File Size command. Reserved but not implemented using CloseAndTreeDiscCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, CloseAndTreeDiscArgumentType, CloseAndTreeDiscResultType>; //!< Reserved command using Transaction2Command = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, Transaction2ArgumentType, Transaction2ResultType>; //!< Transaction 2 command using Transaction2SecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, Transaction2SecondaryArgumentType, Transaction2SecondaryResultType>; //!< Transaction 3 command using FindClose2Command = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FindClose2ArgumentType, FindClose2ResultType>; //!< Search handle close command using FindNotifyCloseCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FindNotifyCloseArgumentType, FindNotifyCloseResultType>; //!< Search handle close command using TreeConnectCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, TreeConnectArgumentType, TreeConnectResultType>; //!< establish a client connection to a server share command using TreeDisconnectCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, TreeDisconnectArgumentType, TreeDisconnectResultType>; //!< Disconnect command using NegotiateCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NegotiateArgumentType, NegotiateResultType>; //!< Negotiate command using SessionSetupAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SessionSetupAndxArgumentType, SessionSetupAndxResultType>; //!< Session setup command using LogoffAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, LogoffAndxArgumentType, LogoffAndxResultType>; //!< Log off command using TreeConnectAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, TreeConnectAndxArgumentType, TreeConnectAndxResultType>; //!< Tree Connect command using SecurityPackageAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SecurityPackageAndxArgumentType, SecurityPackageAndxResultType>; //!< Security Package command using QueryInformationDiskCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, QueryInformationDiskArgumentType, QueryInformationDiskResultType>; //!< Query Disk Information command using SearchCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, SearchArgumentType, SearchResultType>; //!< Search command using FindCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FindArgumentType, FindResultType>; //!< Find command using FindUniqueCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FindUniqueArgumentType, FindUniqueResultType>; //!< Find unique command using FindCloseCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, FindCloseArgumentType, FindCloseResultType>; //!< Find close command using NtTransactCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NtTransactArgumentType, NtTransactResultType>; //!< Transact command using NtTransactSecondaryCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NtTransactSecondaryArgumentType, NtTransactSecondaryResultType>; //!< Transact 2 command using NtCreateAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NtCreateAndxArgumentType, NtCreateAndxResultType>; //!< Create command using NtCancelCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NtCancelArgumentType, NtCancelResultType>; //!< Cancel command using NtRenameCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NtRenameArgumentType, NtRenameResultType>; //!< Rename command using OpenPrintFileCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, OpenPrintFileArgumentType, OpenPrintFileResultType>; //!< Open Print File command using WritePrintFileCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WritePrintFileArgumentType, WritePrintFileResultType>; //!< Write Print File command using ClosePrintFileCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ClosePrintFileArgumentType, ClosePrintFileResultType>; //!< Close Print File command using GetPrintQueueCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, GetPrintQueueArgumentType, GetPrintQueueResultType>; //!< Get Print Queue command using ReadBulkCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, ReadBulkArgumentType, ReadBulkResultType>; //!< Read Bulk command using WriteBulkCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteBulkArgumentType, WriteBulkResultType>; //!< Write Bulk command using WriteBulkDataCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, WriteBulkDataArgumentType, WriteBulkDataResultType>; //!< Write Bulk command using InvalidCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, InvalidArgumentType, InvalidResultType>; //!< Invalid command using NoAndxCommand = SMBv1::Command< NST::protocols::CIFSv1::RawMessageHeader, NoAndxCmdArgumentType, NoAndxCmdResultType>; //!< No command }//SMBv1 /*! SMB 2 version */ namespace SMBv2 { using CloseFileCommand = SMBv1::Command; //!< Close file command using NegotiateCommand = SMBv1::Command; //!< Negotiate command using SessionSetupCommand = SMBv1::Command; //!< Session setup command using EchoCommand = SMBv1::Command; //!< Echo command using LogOffCommand = SMBv1::Command; //!< Log off command using TreeConnectCommand = SMBv1::Command; //!< Tree connect command using TreeDisconnectCommand = SMBv1::Command; //!< Tree disconnect command using CreateCommand = SMBv1::Command; //!< Create command using QueryInfoCommand = SMBv1::Command; //!< Query Info command using QueryDirCommand = SMBv1::Command; //!< Query directory command using FlushCommand = SMBv1::Command; //!< Flush command using ReadCommand = SMBv1::Command; //!< Read command using WriteCommand = SMBv1::Command; //!< Write command using LockCommand = SMBv1::Command; //!< Lock command using CancelCommand = SMBv1::Command; //!< Cancel command using ChangeNotifyCommand = SMBv1::Command; //!< Change Notify command using BreakOpLockCommand = SMBv1::Command; //!< Break opportunistic lock command using IoctlCommand = SMBv1::Command; //!< Ioctl command using SetInfoCommand = SMBv1::Command; //!< Set Info command } // namespace SMBv2 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//CIFS_TYPES_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/ianalyzer.h000066400000000000000000002303201261713114600170320ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: IAnalyzer describe interface of analysiss expected by application. // The interface define set of NFS Procedure handlers with empty dummy implementation // and pure virtual function for flushing analysis statistics. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef IANALYZER_TYPE_H #define IANALYZER_TYPE_H //------------------------------------------------------------------------------ #include "cifs_types.h" #include "nfs_types.h" #include "nfs3_types_rpcgen.h" #include "nfs4_types_rpcgen.h" #include "nfs41_types_rpcgen.h" #include "rpc_types.h" //------------------------------------------------------------------------------ namespace NST { namespace API { /*! Abstract interface for plugins that collect NFS3 statistics */ class INFSv3rpcgen { public: virtual ~INFSv3rpcgen() {} /*! NFSv3 "NULL" procedure * \param RPCProcedure - Specified procedure * \param NULL3args - procedure arguments * \param NULL3res - procedure results */ virtual void null(const RPCProcedure*, const struct NFS3::NULL3args*, const struct NFS3::NULL3res*) {} /*! NFSv3 "GETATTR" procedure (Get file attributes) * \param RPCProcedure - Specified procedure * \param GETATTR3args - procedure arguments * \param GETATTR3res - procedure results */ virtual void getattr3(const RPCProcedure*, const struct NFS3::GETATTR3args*, const struct NFS3::GETATTR3res*) {} /*! NFSv3 "SETATTR" procedure (Set file attributes) * \param RPCProcedure - Specified procedure * \param SETATTR3args - procedure arguments * \param SETATTR3res - procedure results */ virtual void setattr3(const RPCProcedure*, const struct NFS3::SETATTR3args*, const struct NFS3::SETATTR3res*) {} /*! NFSv3 "LOOKUP" procedure (Lookup filename) * \param RPCProcedure - Specified procedure * \param LOOKUP3args - procedure arguments * \param LOOKUP3res - procedure results */ virtual void lookup3(const RPCProcedure*, const struct NFS3::LOOKUP3args*, const struct NFS3::LOOKUP3res*) {} /*! NFSv3 "ACCESS" procedure (Check Access Permission) * \param RPCProcedure - Specified procedure * \param ACCESS3args - procedure arguments * \param ACCESS3res - procedure results */ virtual void access3(const RPCProcedure*, const struct NFS3::ACCESS3args*, const struct NFS3::ACCESS3res*) {} /*! NFSv3 "READLINK" procedure (Read from symbolic link) * \param RPCProcedure - Specified procedure * \param READLINK3args - procedure arguments * \param READLINK3res - procedure results */ virtual void readlink3(const RPCProcedure*, const struct NFS3::READLINK3args*, const struct NFS3::READLINK3res*) {} /*! NFSv3 "READ" procedure (Read from file) * \param RPCProcedure - Specified procedure * \param READ3args - procedure arguments * \param READ3res - procedure results */ virtual void read3(const RPCProcedure*, const struct NFS3::READ3args*, const struct NFS3::READ3res*) {} /*! NFSv3 "WRITE" procedure (Write to file) * \param RPCProcedure - Specified procedure * \param WRITE3args - procedure arguments * \param WRITE3res - procedure results */ virtual void write3(const RPCProcedure*, const struct NFS3::WRITE3args*, const struct NFS3::WRITE3res*) {} /*! NFSv3 "CREATE" procedure (Create a file) * \param RPCProcedure - Specified procedure * \param CREATE3args - procedure arguments * \param CREATE3res - procedure results */ virtual void create3(const RPCProcedure*, const struct NFS3::CREATE3args*, const struct NFS3::CREATE3res*) {} /*! NFSv3 "MKDIR" procedure (Create a directory) * \param RPCProcedure - Specified procedure * \param MKDIR3args - procedure arguments * \param MKDIR3res - procedure results */ virtual void mkdir3(const RPCProcedure*, const struct NFS3::MKDIR3args*, const struct NFS3::MKDIR3res*) {} /*! NFSv3 "SYMLINK" procedure (Create a symbolic link) * \param RPCProcedure - Specified procedure * \param SYMLINK3args - procedure arguments * \param SYMLINK3res - procedure results */ virtual void symlink3(const RPCProcedure*, const struct NFS3::SYMLINK3args*, const struct NFS3::SYMLINK3res*) {} /*! NFSv3 "MKNOD" procedure (Create a special device) * \param RPCProcedure - Specified procedure * \param MKNOD3args - procedure arguments * \param MKNOD3res - procedure results */ virtual void mknod3(const RPCProcedure*, const struct NFS3::MKNOD3args*, const struct NFS3::MKNOD3res*) {} /*! NFSv3 "REMOVE" procedure (Remove a file) * \param RPCProcedure - Specified procedure * \param REMOVE3args - procedure arguments * \param REMOVE3res - procedure results */ virtual void remove3(const RPCProcedure*, const struct NFS3::REMOVE3args*, const struct NFS3::REMOVE3res*) {} /*! NFSv3 "RMDIR" procedure (Remove a directory) * \param RPCProcedure - Specified procedure * \param RMDIR3args - procedure arguments * \param RMDIR3res - procedure results */ virtual void rmdir3(const RPCProcedure*, const struct NFS3::RMDIR3args*, const struct NFS3::RMDIR3res*) {} /*! NFSv3 "RENAME" procedure (Rename a file or directory) * \param RPCProcedure - Specified procedure * \param RENAME3args - procedure arguments * \param RENAME3res - procedure results */ virtual void rename3(const RPCProcedure*, const struct NFS3::RENAME3args*, const struct NFS3::RENAME3res*) {} /*! NFSv3 "LINK" procedure (Create link to an object) * \param RPCProcedure - Specified procedure * \param LINK3args - procedure arguments * \param LINK3res - procedure results */ virtual void link3(const RPCProcedure*, const struct NFS3::LINK3args*, const struct NFS3::LINK3res*) {} /*! NFSv3 "READDIR" procedure (Read From directory) * \param RPCProcedure - Specified procedure * \param READDIR3args - procedure arguments * \param READDIR3res - procedure results */ virtual void readdir3(const RPCProcedure*, const struct NFS3::READDIR3args*, const struct NFS3::READDIR3res*) {} /*! NFSv3 "READDIRPLUS" procedure (Extended read from directory) * \param RPCProcedure - Specified procedure * \param READDIRPLUS3args - procedure arguments * \param READDIRPLUS3res - procedure results */ virtual void readdirplus3(const RPCProcedure*, const struct NFS3::READDIRPLUS3args*, const struct NFS3::READDIRPLUS3res*) {} /*! NFSv3 "FSSTAT" procedure (Get dynamic file system information) * \param RPCProcedure - Specified procedure * \param FSSTAT3args - procedure arguments * \param FSSTAT3res - procedure results */ virtual void fsstat3(const RPCProcedure*, const struct NFS3::FSSTAT3args*, const struct NFS3::FSSTAT3res*) {} /*! NFSv3 "FSINFO" procedure (Get static file system information) * \param RPCProcedure - Specified procedure * \param FSINFO3args - procedure arguments * \param FSINFO3res - procedure results */ virtual void fsinfo3(const RPCProcedure*, const struct NFS3::FSINFO3args*, const struct NFS3::FSINFO3res*) {} /*! NFSv3 "PATHINFO" procedure (Retrieve POSIX information) * \param RPCProcedure - Specified procedure * \param PATHINFO3args - procedure arguments * \param PATHINFO3res - procedure results */ virtual void pathconf3(const RPCProcedure*, const struct NFS3::PATHCONF3args*, const struct NFS3::PATHCONF3res*) {} /*! NFSv3 "COMMIT" procedure (Commit cached data on a server to stable storage) * \param RPCProcedure - Specified procedure * \param COMMIT3args - procedure arguments * \param COMMIT3res - procedure results */ virtual void commit3(const RPCProcedure*, const struct NFS3::COMMIT3args*, const struct NFS3::COMMIT3res*) {} }; /*! Abstract interface for plugins that collect NFS4 statistics */ class INFSv4rpcgen { public: virtual ~INFSv4rpcgen() {} /*! NFSv4 "NULL" procedure (No Operation) * \param RPCProcedure - Specified procedure * \param NULL4args - procedure arguments * \param NULL4res - procedure results */ virtual void null4(const RPCProcedure*, const struct NFS4::NULL4args*, const struct NFS4::NULL4res*) {} /*! NFSv4 "COMPOUND" procedure (Compound Operations) * \param RPCProcedure - Specified procedure * \param COMPOUND4args - procedure arguments * \param COMPOUND4res - procedure results */ virtual void compound4(const RPCProcedure*, const struct NFS4::COMPOUND4args*, const struct NFS4::COMPOUND4res*) {} /*! NFSv4 "ACCESS" operation (Check Access Rights) * \param RPCProcedure - Specified operation * \param ACCESS4args - operation arguments * \param ACCESS4res - operation results */ virtual void access40(const RPCProcedure*, const struct NFS4::ACCESS4args*, const struct NFS4::ACCESS4res*) {} /*! NFSv4 "CLOSE" operation (Close File) * \param RPCProcedure - Specified operation * \param CLOSE4args - operation arguments * \param CLOSE4res - operation results */ virtual void close40(const RPCProcedure*, const struct NFS4::CLOSE4args*, const struct NFS4::CLOSE4res*) {} /*! NFSv4 "COMMIT" operation (Commit Cached Data) * \param RPCProcedure - Specified operation * \param COMMIT4args - operation arguments * \param COMMIT4res - operation results */ virtual void commit40(const RPCProcedure*, const struct NFS4::COMMIT4args*, const struct NFS4::COMMIT4res*) {} /*! NFSv4 "CREATE" operation (Create a Non-Regular File Object) * \param RPCProcedure - Specified operation * \param CREATE4args - operation arguments * \param CREATE4res - operation results */ virtual void create40(const RPCProcedure*, const struct NFS4::CREATE4args*, const struct NFS4::CREATE4res*) {} /*! NFSv4 "DELEGPURGE" operation (Purge Delegations Awaiting Recovery) * \param RPCProcedure - Specified operation * \param DELEGPURGE4args - operation arguments * \param DELEGPURGE4res - operation results */ virtual void delegpurge40(const RPCProcedure*, const struct NFS4::DELEGPURGE4args*, const struct NFS4::DELEGPURGE4res*) {} /*! NFSv4 "DELEGRETURN" operation (Return Delegation) * \param RPCProcedure - Specified operation * \param DELEGRETURN4args - operation arguments * \param DELEGRETUR4res - operation results */ virtual void delegreturn40(const RPCProcedure*, const struct NFS4::DELEGRETURN4args*, const struct NFS4::DELEGRETURN4res*) {} /*! NFSv4 "GETATTR" operation (Get Attributes) * \param RPCProcedure - Specified operation * \param GETATTR4args - operation arguments * \param GETATTR4res - operation results */ virtual void getattr40(const RPCProcedure*, const struct NFS4::GETATTR4args*, const struct NFS4::GETATTR4res*) {} /*! NFSv4 "GETFH" operation (Get Current Filehandle) * \param RPCProcedure - Specified operation * \param GETFH4res - operation results */ virtual void getfh40(const RPCProcedure*, const struct NFS4::GETFH4res*) {} /*! NFSv4 "LINK" operation (Create Link to a File) * \param RPCProcedure - Specified operation * \param LINK4args - operation arguments * \param LINK4res - operation results */ virtual void link40(const RPCProcedure*, const struct NFS4::LINK4args*, const struct NFS4::LINK4res*) {} /*! NFSv4 "LOCK" operation (Create Lock) * \param RPCProcedure - Specified operation * \param LOCK4args - operation arguments * \param LOCK4res - operation results */ virtual void lock40(const RPCProcedure*, const struct NFS4::LOCK4args*, const struct NFS4::LOCK4res*) {} /*! NFSv4 "LOCKT" operation (Test For Lock) * \param RPCProcedure - Specified operation * \param LOCKT4args - operation arguments * \param LOCKT4res - operation results */ virtual void lockt40(const RPCProcedure*, const struct NFS4::LOCKT4args*, const struct NFS4::LOCKT4res*) {} /*! NFSv4 "LOCKU" operation (Unlock File) * \param RPCProcedure - Specified operation * \param LOCKUargs - operation arguments * \param LOCKUres - operation results */ virtual void locku40(const RPCProcedure*, const struct NFS4::LOCKU4args*, const struct NFS4::LOCKU4res*) {} /*! NFSv4 "LOCKUP" operation (Lookup Filename) * \param RPCProcedure - Specified operation * \param LOCKUP4args - operation arguments * \param LOCKUP4res - operation results */ virtual void lookup40(const RPCProcedure*, const struct NFS4::LOOKUP4args*, const struct NFS4::LOOKUP4res*) {} /*! NFSv4 "LOCKUPP" operation (Lookup Parent Directory) * \param RPCProcedure - Specified operation * \param LOCKUPP4res - operation results */ virtual void lookupp40(const RPCProcedure*, const struct NFS4::LOOKUPP4res*) {} /*! NFSv4 "NVERIFY" operation (Verify Difference in Attributes) * \param RPCProcedure - Specified operation * \param NVERIFY4args - operation arguments * \param NVERIFY4res - operation results */ virtual void nverify40(const RPCProcedure*, const struct NFS4::NVERIFY4args*, const struct NFS4::NVERIFY4res*) {} /*! NFSv4 "OPEN" operation (Open a Regular File) * \param RPCProcedure - Specified operation * \param OPEN4args - operation arguments * \param OPEN4res - operation results */ virtual void open40(const RPCProcedure*, const struct NFS4::OPEN4args*, const struct NFS4::OPEN4res*) {} /*! NFSv4 "OPENATTR" operation (Open Named Attribute Directory) * \param RPCProcedure - Specified operation * \param OPENATTR4args - operation arguments * \param OPENATTR4res - operation results */ virtual void openattr40(const RPCProcedure*, const struct NFS4::OPENATTR4args*, const struct NFS4::OPENATTR4res*) {} /*! NFSv4 "OPEN_CONFIRM" operation (Confirm Open) * \param RPCProcedure - Specified operation * \param OPEN_CONFIRM4args - operation arguments * \param OPEN_CONFIRM4NULL3res - operation results */ virtual void open_confirm40(const RPCProcedure*, const struct NFS4::OPEN_CONFIRM4args*, const struct NFS4::OPEN_CONFIRM4res*) {} /*! NFSv4 "OPEN_DOWNGRADE" operation (Reduce Open File Access) * \param RPCProcedure - Specified operation * \param OPEN_DOWNGRADE4args - operation arguments * \param OPEN_DOWNGRADE4res - operation results */ virtual void open_downgrade40(const RPCProcedure*, const struct NFS4::OPEN_DOWNGRADE4args*, const struct NFS4::OPEN_DOWNGRADE4res*) {} /*! NFSv4 "PUTFH" operation (Set Current Filehandle) * \param RPCProcedure - Specified operation * \param PUTFH4args - operation arguments * \param PUTFH4res - operation results */ virtual void putfh40(const RPCProcedure*, const struct NFS4::PUTFH4args*, const struct NFS4::PUTFH4res*) {} /*! NFSv4 "PUTPUBFH" operation (Set Public Filehandle) * \param RPCProcedure - Specified operation * \param PUTPUBFH4res - operation results */ virtual void putpubfh40(const RPCProcedure*, const struct NFS4::PUTPUBFH4res*) {} /*! NFSv4 "PUTROOTFH" operation (Set Root Filehandle) * \param RPCProcedure - Specified operation * \param PUTROOTFHargs - operation arguments * \param PUTROOTFHres - operation results */ virtual void putrootfh40(const RPCProcedure*, const struct NFS4::PUTROOTFH4res*) {} /*! NFSv4 "READ" operation (Read from File) * \param RPCProcedure - Specified operation * \param READ4args - operation arguments * \param READ4res - operation results */ virtual void read40(const RPCProcedure*, const struct NFS4::READ4args*, const struct NFS4::READ4res*) {} /*! NFSv4 "READDIR" operation (Read Directory) * \param RPCProcedure - Specified operation * \param READDIR4args - operation arguments * \param READDIR4res - operation results */ virtual void readdir40(const RPCProcedure*, const struct NFS4::READDIR4args*, const struct NFS4::READDIR4res*) {} /*! NFSv4 "READLINK" operation (Read Symbolic Link) * \param RPCProcedure - Specified operation * \param READLINK4res - operation results */ virtual void readlink40(const RPCProcedure*, const struct NFS4::READLINK4res*) {} /*! NFSv4 "REMOVE" operation (Remove Filesystem Object) * \param RPCProcedure - Specified operation * \param REMOVE4args - operation arguments * \param REMOVE4res - operation results */ virtual void remove40(const RPCProcedure*, const struct NFS4::REMOVE4args*, const struct NFS4::REMOVE4res*) {} /*! NFSv4 "RENAME" operation (Rename Directory Entry) * \param RPCProcedure - Specified operation * \param RENAME4args - operation arguments * \param RENAME4res - operation results */ virtual void rename40(const RPCProcedure*, const struct NFS4::RENAME4args*, const struct NFS4::RENAME4res*) {} /*! NFSv4 "RENEW" operation (Renew a Lease) * \param RPCProcedure - Specified operation * \param RENEW4args - operation arguments * \param RENEW4res - operation results */ virtual void renew40(const RPCProcedure*, const struct NFS4::RENEW4args*, const struct NFS4::RENEW4res*) {} /*! NFSv4 "RESTOREFH" operation (Restore Saved Filehandle) * \param RPCProcedure - Specified operation * \param RESTOREFH4res - operation results */ virtual void restorefh40(const RPCProcedure*, const struct NFS4::RESTOREFH4res*) {} /*! NFSv4 "SAVEFH" operation (Save Current Filehandle) * \param RPCProcedure - Specified operation * \param SAVEFH4res - operation results */ virtual void savefh40(const RPCProcedure*, const struct NFS4::SAVEFH4res*) {} /*! NFSv4 "SECINFO" operation (Obtain Available Security) * \param RPCProcedure - Specified operation * \param SECINFO4args - operation arguments * \param SECINFO4res - operation results */ virtual void secinfo40(const RPCProcedure*, const struct NFS4::SECINFO4args*, const struct NFS4::SECINFO4res*) {} /*! NFSv4 "SETATTR" operation (Set Attributes) * \param RPCProcedure - Specified operation * \param SETATTR4args - operation arguments * \param SETATTR4res - operation results */ virtual void setattr40(const RPCProcedure*, const struct NFS4::SETATTR4args*, const struct NFS4::SETATTR4res*) {} /*! NFSv4 "SETCLIENTID" operation (Negotiate Clientid) * \param RPCProcedure - Specified operation * \param SETCLIENTID4args - operation arguments * \param SETCLIENTID4res - operation results */ virtual void setclientid40(const RPCProcedure*, const struct NFS4::SETCLIENTID4args*, const struct NFS4::SETCLIENTID4res*) {} /*! NFSv4 "SETCLIENTID_CONFIRM" operation * \param RPCProcedure - Specified operation * \param SETCLIENTID_CONFIRM4args - operation arguments * \param SETCLIENTID_CONFIRM4res - operation results */ virtual void setclientid_confirm40(const RPCProcedure*, const struct NFS4::SETCLIENTID_CONFIRM4args*, const struct NFS4::SETCLIENTID_CONFIRM4res*) {} /*! NFSv4 "VERIFY" operation (Verify Same Attributes) * \param RPCProcedure - Specified operation * \param VERIFY4args - operation arguments * \param VERIFY4res - operation results */ virtual void verify40(const RPCProcedure*, const struct NFS4::VERIFY4args*, const struct NFS4::VERIFY4res*) {} /*! NFSv4 "WRITE" operation (Write to File) * \param RPCProcedure - Specified operation * \param WRITE4args - operation arguments * \param WRITE4res - operation results */ virtual void write40(const RPCProcedure*, const struct NFS4::WRITE4args*, const struct NFS4::WRITE4res*) {} /*! NFSv4 "RELEASE_LOCKOWNER" operation (Release Lockowner State) * \param RPCProcedure - Specified operation * \param RELEASE_LOCKOWNER4args - operation arguments * \param RELEASE_LOCKOWNER4res - operation results */ virtual void release_lockowner40(const RPCProcedure*, const struct NFS4::RELEASE_LOCKOWNER4args*, const struct NFS4::RELEASE_LOCKOWNER4res*) {} /*! NFSv4 "GET_DIR_DELEGATION" operation (No Operation) * \param RPCProcedure - Specified operation * \param GET_DIR_DELEGATION4args - operation arguments * \param GET_DIR_DELEGATION4res - operation results */ virtual void get_dir_delegation40(const RPCProcedure*, const struct NFS4::GET_DIR_DELEGATION4args*, const struct NFS4::GET_DIR_DELEGATION4res*) {} /*! NFSv4 "ILLEGAL" operation (Illegal operation) * \param RPCProcedure - Specified operation * \param ILLEGAL4res - operation results */ virtual void illegal40(const RPCProcedure*, const struct NFS4::ILLEGAL4res*) {} }; /*! Abstract interface for plugins that collect NFS41 statistics */ class INFSv41rpcgen { public: virtual ~INFSv41rpcgen() {} //there is no null41 procedure, use null if needed: IAnalyzer::INFSv4rpcgen::null /*! NFSv41 "COMPOUND" procedure (Compound Operations) * \param RPCProcedure - Specified procedure * \param COMPOUND4args - procedure arguments * \param COMPOUND4res - procedure results */ virtual void compound41(const RPCProcedure*, const struct NFS41::COMPOUND4args*, const struct NFS41::COMPOUND4res*) {} /*! NFSv41 "ACCESS" operation (Check Access Rights) * \param RPCProcedure - Specified operation * \param ACCESS4args - operation arguments * \param ACCESS4res - operation results */ virtual void access41(const RPCProcedure*, const struct NFS41::ACCESS4args*, const struct NFS41::ACCESS4res*) {} /*! NFSv41 "CLOSE" operation (Close File) * \param RPCProcedure - Specified operation * \param CLOSE4args - operation arguments * \param CLOSE4res - operation results */ virtual void close41(const RPCProcedure*, const struct NFS41::CLOSE4args*, const struct NFS41::CLOSE4res*) {} /*! NFSv41 "COMMIT" operation (Commit Cached Data) * \param RPCProcedure - Specified operation * \param COMMIT4args - operation arguments * \param COMMIT4res - operation results */ virtual void commit41(const RPCProcedure*, const struct NFS41::COMMIT4args*, const struct NFS41::COMMIT4res*) {} /*! NFSv41 "CREATE" operation (Create a Non-Regular File Object) * \param RPCProcedure - Specified operation * \param CREATE4args - operation arguments * \param CREATE4res - operation results */ virtual void create41(const RPCProcedure*, const struct NFS41::CREATE4args*, const struct NFS41::CREATE4res*) {} /*! NFSv41 "DELEGPURGE" operation (Purge Delegations Awaiting Recovery) * \param RPCProcedure - Specified operation * \param DELEGPURGE4args - operation arguments * \param DELEGPURGE4res - operation results */ virtual void delegpurge41(const RPCProcedure*, const struct NFS41::DELEGPURGE4args*, const struct NFS41::DELEGPURGE4res*) {} /*! NFSv41 "DELEGRETURN" operation (Return Delegation) * \param RPCProcedure - Specified operation * \param DELEGRETURN4args - operation arguments * \param DELEGRETUR4res - operation results */ virtual void delegreturn41(const RPCProcedure*, const struct NFS41::DELEGRETURN4args*, const struct NFS41::DELEGRETURN4res*) {} /*! NFSv41 "GETATTR" operation (Get Attributes) * \param RPCProcedure - Specified operation * \param GETATTR4args - operation arguments * \param GETATTR4res - operation results */ virtual void getattr41(const RPCProcedure*, const struct NFS41::GETATTR4args*, const struct NFS41::GETATTR4res*) {} /*! NFSv41 "GETFH" operation (Get Current Filehandle) * \param RPCProcedure - Specified operation * \param GETFH4res - operation results */ virtual void getfh41(const RPCProcedure*, const struct NFS41::GETFH4res*) {} /*! NFSv41 "LINK" operation (Create Link to a File) * \param RPCProcedure - Specified operation * \param LINK4args - operation arguments * \param LINK4res - operation results */ virtual void link41(const RPCProcedure*, const struct NFS41::LINK4args*, const struct NFS41::LINK4res*) {} /*! NFSv41 "LOCK" operation (Create Lock) * \param RPCProcedure - Specified operation * \param LOCK4args - operation arguments * \param LOCK4res - operation results */ virtual void lock41(const RPCProcedure*, const struct NFS41::LOCK4args*, const struct NFS41::LOCK4res*) {} /*! NFSv41 "LOCKT" operation (Test For Lock) * \param RPCProcedure - Specified operation * \param LOCKT4args - operation arguments * \param LOCKT4res - operation results */ virtual void lockt41(const RPCProcedure*, const struct NFS41::LOCKT4args*, const struct NFS41::LOCKT4res*) {} /*! NFSv41 "LOCKU" operation (Unlock File) * \param RPCProcedure - Specified operation * \param LOCKUargs - operation arguments * \param LOCKUres - operation results */ virtual void locku41(const RPCProcedure*, const struct NFS41::LOCKU4args*, const struct NFS41::LOCKU4res*) {} /*! NFSv41 "LOCKUP" operation (Lookup Filename) * \param RPCProcedure - Specified operation * \param LOCKUP4args - operation arguments * \param LOCKUP4res - operation results */ virtual void lookup41(const RPCProcedure*, const struct NFS41::LOOKUP4args*, const struct NFS41::LOOKUP4res*) {} /*! NFSv41 "LOCKUPP" operation (Lookup Parent Directory) * \param RPCProcedure - Specified operation * \param LOCKUPP4res - operation results */ virtual void lookupp41(const RPCProcedure*, const struct NFS41::LOOKUPP4res*) {} /*! NFSv41 "NVERIFY" operation (Verify Difference in Attributes) * \param RPCProcedure - Specified operation * \param NVERIFY4args - operation arguments * \param NVERIFY4res - operation results */ virtual void nverify41(const RPCProcedure*, const struct NFS41::NVERIFY4args*, const struct NFS41::NVERIFY4res*) {} /*! NFSv41 "OPEN" operation (Open a Regular File) * \param RPCProcedure - Specified operation * \param OPEN4args - operation arguments * \param OPEN4res - operation results */ virtual void open41(const RPCProcedure*, const struct NFS41::OPEN4args*, const struct NFS41::OPEN4res*) {} /*! NFSv41 "OPENATTR" operation (Open Named Attribute Directory) * \param RPCProcedure - Specified operation * \param OPENATTR4args - operation arguments * \param OPENATTR4res - operation results */ virtual void openattr41(const RPCProcedure*, const struct NFS41::OPENATTR4args*, const struct NFS41::OPENATTR4res*) {} /*! NFSv41 "OPEN_CONFIRM" operation (Confirm Open) * \param RPCProcedure - Specified operation * \param OPEN_CONFIRM4args - operation arguments * \param OPEN_CONFIRM4NULL3res - operation results */ virtual void open_confirm41(const RPCProcedure*, const struct NFS41::OPEN_CONFIRM4args*, const struct NFS41::OPEN_CONFIRM4res*) {} /*! NFSv41 "OPEN_DOWNGRADE" operation (Reduce Open File Access) * \param RPCProcedure - Specified operation * \param OPEN_DOWNGRADE4args - operation arguments * \param OPEN_DOWNGRADE4res - operation results */ virtual void open_downgrade41(const RPCProcedure*, const struct NFS41::OPEN_DOWNGRADE4args*, const struct NFS41::OPEN_DOWNGRADE4res*) {} /*! NFSv41 "PUTFH" operation (Set Current Filehandle) * \param RPCProcedure - Specified operation * \param PUTFH4args - operation arguments * \param PUTFH4res - operation results */ virtual void putfh41(const RPCProcedure*, const struct NFS41::PUTFH4args*, const struct NFS41::PUTFH4res*) {} /*! NFSv41 "PUTPUBFH" operation (Set Public Filehandle) * \param RPCProcedure - Specified operation * \param PUTPUBFH4res - operation results */ virtual void putpubfh41(const RPCProcedure*, const struct NFS41::PUTPUBFH4res*) {} /*! NFSv41 "PUTROOTFH" operation (Set Root Filehandle) * \param RPCProcedure - Specified operation * \param PUTROOTFHargs - operation arguments * \param PUTROOTFHres - operation results */ virtual void putrootfh41(const RPCProcedure*, const struct NFS41::PUTROOTFH4res*) {} /*! NFSv41 "READ" operation (Read from File) * \param RPCProcedure - Specified operation * \param READ4args - operation arguments * \param READ4res - operation results */ virtual void read41(const RPCProcedure*, const struct NFS41::READ4args*, const struct NFS41::READ4res*) {} /*! NFSv41 "READDIR" operation (Read Directory) * \param RPCProcedure - Specified operation * \param READDIR4args - operation arguments * \param READDIR4res - operation results */ virtual void readdir41(const RPCProcedure*, const struct NFS41::READDIR4args*, const struct NFS41::READDIR4res*) {} /*! NFSv41 "READLINK" operation (Read Symbolic Link) * \param RPCProcedure - Specified operation * \param READLINK4res - operation results */ virtual void readlink41(const RPCProcedure*, const struct NFS41::READLINK4res*) {} /*! NFSv41 "REMOVE" operation (Remove Filesystem Object) * \param RPCProcedure - Specified operation * \param REMOVE4args - operation arguments * \param REMOVE4res - operation results */ virtual void remove41(const RPCProcedure*, const struct NFS41::REMOVE4args*, const struct NFS41::REMOVE4res*) {} /*! NFSv41 "RENAME" operation (Rename Directory Entry) * \param RPCProcedure - Specified operation * \param RENAME4args - operation arguments * \param RENAME4res - operation results */ virtual void rename41(const RPCProcedure*, const struct NFS41::RENAME4args*, const struct NFS41::RENAME4res*) {} /*! NFSv41 "RENEW" operation (Renew a Lease) * \param RPCProcedure - Specified operation * \param RENEW4args - operation arguments * \param RENEW4res - operation results */ virtual void renew41(const RPCProcedure*, const struct NFS41::RENEW4args*, const struct NFS41::RENEW4res*) {} /*! NFSv41 "RESTOREFH" operation (Restore Saved Filehandle) * \param RPCProcedure - Specified operation * \param RESTOREFH4res - operation results */ virtual void restorefh41(const RPCProcedure*, const struct NFS41::RESTOREFH4res*) {} /*! NFSv41 "SAVEFH" operation (Save Current Filehandle) * \param RPCProcedure - Specified operation * \param SAVEFH4res - operation results */ virtual void savefh41(const RPCProcedure*, const struct NFS41::SAVEFH4res*) {} /*! NFSv41 "SECINFO" operation (Obtain Available Security) * \param RPCProcedure - Specified operation * \param SECINFO4args - operation arguments * \param SECINFO4res - operation results */ virtual void secinfo41(const RPCProcedure*, const struct NFS41::SECINFO4args*, const struct NFS41::SECINFO4res*) {} /*! NFSv41 "SETATTR" operation (Set Attributes) * \param RPCProcedure - Specified operation * \param SETATTR4args - operation arguments * \param SETATTR4res - operation results */ virtual void setattr41(const RPCProcedure*, const struct NFS41::SETATTR4args*, const struct NFS41::SETATTR4res*) {} /*! NFSv41 "SETCLIENTID" operation (Negotiate Clientid) * \param RPCProcedure - Specified operation * \param SETCLIENTID4args - operation arguments * \param SETCLIENTID4res - operation results */ virtual void setclientid41(const RPCProcedure*, const struct NFS41::SETCLIENTID4args*, const struct NFS41::SETCLIENTID4res*) {} /*! NFSv41 "SETCLIENTID_CONFIRM" operation * \param RPCProcedure - Specified operation * \param SETCLIENTID_CONFIRM4args - operation arguments * \param SETCLIENTID_CONFIRM4res - operation results */ virtual void setclientid_confirm41(const RPCProcedure*, const struct NFS41::SETCLIENTID_CONFIRM4args*, const struct NFS41::SETCLIENTID_CONFIRM4res*) {} /*! NFSv41 "VERIFY" operation (Verify Same Attributes) * \param RPCProcedure - Specified operation * \param VERIFY4args - operation arguments * \param VERIFY4res - operation results */ virtual void verify41(const RPCProcedure*, const struct NFS41::VERIFY4args*, const struct NFS41::VERIFY4res*) {} /*! NFSv41 "WRITE" operation (Write to File) * \param RPCProcedure - Specified operation * \param WRITE4args - operation arguments * \param WRITE4res - operation results */ virtual void write41(const RPCProcedure*, const struct NFS41::WRITE4args*, const struct NFS41::WRITE4res*) {} /*! NFSv41 "RELEASE_LOCKOWNER" operation * \param RPCProcedure - Specified operation * \param RELEASE_LOCKOWNER4args - operation arguments * \param RELEASE_LOCKOWNER4res - operation results */ virtual void release_lockowner41(const RPCProcedure*, const struct NFS41::RELEASE_LOCKOWNER4args*, const struct NFS41::RELEASE_LOCKOWNER4res*) {} /*! NFSv41 "BACKCHANNEL_CTL" operation (Backchannel Control) * \param RPCProcedure - Specified operation * \param BACKCHANNEL_CTL4args - operation arguments * \param BACKCHANNEL_CTL4res - operation results */ virtual void backchannel_ctl41(const RPCProcedure*, const struct NFS41::BACKCHANNEL_CTL4args*, const struct NFS41::BACKCHANNEL_CTL4res*) {} /*! NFSv41 "BIND_CONN_TO_SESSION" operation (Associate Connection with Session) * \param RPCProcedure - Specified operation * \param BIND_CONN_TO_SESSION4args - operation arguments * \param BIND_CONN_TO_SESSION4res - operation results */ virtual void bind_conn_to_session41(const RPCProcedure*, const struct NFS41::BIND_CONN_TO_SESSION4args*, const struct NFS41::BIND_CONN_TO_SESSION4res*) {} /*! NFSv41 "EXCHANGE_ID" operation (Instantiate Client ID) * \param RPCProcedure - Specified operation * \param EXCHANGE_ID4args - operation arguments * \param EXCHANGE_ID4res - operation results */ virtual void exchange_id41(const RPCProcedure*, const struct NFS41::EXCHANGE_ID4args*, const struct NFS41::EXCHANGE_ID4res*) {} /*! NFSv41 "CREATE_SESSION" operation (Create New Session and Confirm Client ID) * \param RPCProcedure - Specified operation * \param CREATE_SESSION4args - operation arguments * \param CREATE_SESSION4res - operation results */ virtual void create_session41(const RPCProcedure*, const struct NFS41::CREATE_SESSION4args*, const struct NFS41::CREATE_SESSION4res*) {} /*! NFSv41 "DESTROY_SESSION" operation (Destroy a Session) * \param RPCProcedure - Specified operation * \param DESTROY_SESSION4args - operation arguments * \param DESTROY_SESSION4res - operation results */ virtual void destroy_session41(const RPCProcedure*, const struct NFS41::DESTROY_SESSION4args*, const struct NFS41::DESTROY_SESSION4res*) {} /*! NFSv41 "FREE_STATEID" operation (Free Stateid with No Locks) * \param RPCProcedure - Specified operation * \param FREE_STATEID4args - operation arguments * \param FREE_STATEID4res - operation results */ virtual void free_stateid41(const RPCProcedure*, const struct NFS41::FREE_STATEID4args*, const struct NFS41::FREE_STATEID4res*) {} /*! NFSv41 "GET_DIR_DELEGATION" operation (Get a Directory Delegation) * \param RPCProcedure - Specified operation * \param GET_DIR_DELEGATION4args - operation arguments * \param GET_DIR_DELEGATION4res - operation results */ virtual void get_dir_delegation41(const RPCProcedure*, const struct NFS41::GET_DIR_DELEGATION4args*, const struct NFS41::GET_DIR_DELEGATION4res*) {} /*! NFSv41 "GETDEVICEINFO" operation (Get Device Information) * \param RPCProcedure - Specified operation * \param GETDEVICEINFO4args - operation arguments * \param GETDEVICEINFO4res - operation results */ virtual void getdeviceinfo41(const RPCProcedure*, const struct NFS41::GETDEVICEINFO4args*, const struct NFS41::GETDEVICEINFO4res*) {} /*! NFSv41 "GETDEVICELIST" operation (Get All Device Mappings for a File System) * \param RPCProcedure - Specified operation * \param GETDEVICELIST4args - operation arguments * \param GETDEVICELIST4res - operation results */ virtual void getdevicelist41(const RPCProcedure*, const struct NFS41::GETDEVICELIST4args*, const struct NFS41::GETDEVICELIST4res*) {} /*! NFSv41 "LAYOUTCOMMIT" operation (Commit Writes Made Using a Layout) * \param RPCProcedure - Specified operation * \param LAYOUTCOMMIT4args - operation arguments * \param LAYOUTCOMMIT4res - operation results */ virtual void layoutcommit41(const RPCProcedure*, const struct NFS41::LAYOUTCOMMIT4args*, const struct NFS41::LAYOUTCOMMIT4res*) {} /*! NFSv41 "LAYOUTGET" operation (Get Layout Information) * \param RPCProcedure - Specified operation * \param LAYOUTGET4args - operation arguments * \param LAYOUTGET4res - operation results */ virtual void layoutget41(const RPCProcedure*, const struct NFS41::LAYOUTGET4args*, const struct NFS41::LAYOUTGET4res*) {} /*! NFSv41 "LAYOUTRETURN" operation (Release Layout Information) * \param RPCProcedure - Specified operation * \param LAYOUTRETURN4args - operation arguments * \param LAYOUTRETURN4res - operation results */ virtual void layoutreturn41(const RPCProcedure*, const struct NFS41::LAYOUTRETURN4args*, const struct NFS41::LAYOUTRETURN4res*) {} /*! NFSv41 "SECINFO_NO_NAME" operation (Get Security on Unnamed Object) * \param RPCProcedure - Specified operation * \param SECINFO_NO_NAME4args - operation arguments * \param SECINFO_NO_NAME4res - operation results */ virtual void secinfo_no_name41(const RPCProcedure*, const NFS41::SECINFO_NO_NAME4args*, const NFS41::SECINFO_NO_NAME4res*) {} /*! NFSv41 "SEQUENCE" operation (Supply Per-Procedure Sequencing and Control) * \param RPCProcedure - Specified operation * \param SEQUENCE4args - operation arguments * \param SEQUENCE4res - operation results */ virtual void sequence41(const RPCProcedure*, const struct NFS41::SEQUENCE4args*, const struct NFS41::SEQUENCE4res*) {} /*! NFSv41 "SET_SSV" operation (Update SSV for a Client ID) * \param RPCProcedure - Specified operation * \param SET_SSV4args - operation arguments * \param SET_SSV4res - operation results */ virtual void set_ssv41(const RPCProcedure*, const struct NFS41::SET_SSV4args*, const struct NFS41::SET_SSV4res*) {} /*! NFSv41 "TEST_STATEID" operation (Test Stateids for Validity) * \param RPCProcedure - Specified operation * \param TEST_STATEID4args - operation arguments * \param TEST_STATEID4res - operation results */ virtual void test_stateid41(const RPCProcedure*, const struct NFS41::TEST_STATEID4args*, const struct NFS41::TEST_STATEID4res*) {} /*! NFSv41 "WANT_DELEGATION" operation (Request Delegation) * \param RPCProcedure - Specified operation * \param WANT_DELEGATION4args - operation arguments * \param WANT_DELEGATION4res - operation results */ virtual void want_delegation41(const RPCProcedure*, const struct NFS41::WANT_DELEGATION4args*, const struct NFS41::WANT_DELEGATION4res*) {} /*! NFSv41 "DESTROY_CLIENTID" operation * \param RPCProcedure - Specified operation * \param DESTROY_CLIENTID4args - operation arguments * \param DESTROY_CLIENTID4res - operation results */ virtual void destroy_clientid41(const RPCProcedure*, const struct NFS41::DESTROY_CLIENTID4args*, const struct NFS41::DESTROY_CLIENTID4res*) {} /*! NFSv41 "RECLAIM_COMPLETE" operation (Indicates Reclaims Finished) * \param RPCProcedure - Specified operation * \param RECLAIM_COMPLETE4args - operation arguments * \param RECLAIM_COMPLETE4res - operation results */ virtual void reclaim_complete41(const RPCProcedure*, const struct NFS41::RECLAIM_COMPLETE4args*, const struct NFS41::RECLAIM_COMPLETE4res*) {} /*! NFSv41 "ILLEGAL" operation (Illegal operation) * \param RPCProcedure - Specified operation * \param ILLEGAL4res - operation results */ virtual void illegal41(const RPCProcedure*, const struct NFS41::ILLEGAL4res*) {} }; /*! Abstract interface of plugin which collects SMBv1 statistics */ class ISMBv1 { public: virtual ~ISMBv1() {} /*! SMBv1 "CreateDirectory" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void createDirectorySMBv1(const SMBv1::CreateDirectoryCommand*, const SMBv1::CreateDirectoryArgumentType*, const SMBv1::CreateDirectoryResultType*) {} /*! SMBv1 "DeleteDirectory" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void deleteDirectorySMBv1(const SMBv1::DeleteDirectoryCommand*, const SMBv1::DeleteDirectoryArgumentType*, const SMBv1::DeleteDirectoryResultType*) {} /*! SMBv1 "Open" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void openSMBv1(const SMBv1::OpenCommand*, const SMBv1::OpenArgumentType*, const SMBv1::OpenResultType*) {} /*! SMBv1 "Create" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void createSMBv1(const SMBv1::CreateCommand*, const SMBv1::CreateArgumentType*, const SMBv1::CreateResultType*) {} /*! SMBv1 "Close" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void closeSMBv1(const SMBv1::CloseCommand*, const SMBv1::CloseArgumentType*, const SMBv1::CloseResultType*) {} /*! SMBv1 "Flush" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void flushSMBv1(const SMBv1::FlushCommand*, const SMBv1::FlushArgumentType*, const SMBv1::FlushResultType*) {} /*! SMBv1 "Delete" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void deleteSMBv1(const SMBv1::DeleteCommand*, const SMBv1::DeleteArgumentType*, const SMBv1::DeleteResultType*) {} /*! SMBv1 "Rename" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void renameSMBv1(const SMBv1::RenameCommand*, const SMBv1::RenameArgumentType*, const SMBv1::RenameResultType*) {} /*! SMBv1 "QueryInformation" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryInfoSMBv1(const SMBv1::QueryInformationCommand*, const SMBv1::QueryInformationArgumentType*, const SMBv1::QueryInformationResultType*) {} /*! SMBv1 "SetInformation" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void setInfoSMBv1(const SMBv1::SetInformationCommand*, const SMBv1::SetInformationArgumentType*, const SMBv1::SetInformationResultType*) {} /*! SMBv1 "Read" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readSMBv1(const SMBv1::ReadCommand*, const SMBv1::ReadArgumentType*, const SMBv1::ReadResultType*) {} /*! SMBv1 "Write" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeSMBv1(const SMBv1::WriteCommand*, const SMBv1::WriteArgumentType*, const SMBv1::WriteResultType*) {} /*! SMBv1 "LockByteRange" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void lockByteRangeSMBv1(const SMBv1::LockByteRangeCommand*, const SMBv1::LockByteRangeArgumentType*, const SMBv1::LockByteRangeResultType*) {} /*! SMBv1 "UnlockByteRange" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void unlockByteRangeSMBv1(const SMBv1::UnlockByteRangeCommand*, const SMBv1::UnlockByteRangeArgumentType*, const SMBv1::UnlockByteRangeResultType*) {} /*! SMBv1 "CreateTemporary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void createTmpSMBv1(const SMBv1::CreateTemporaryCommand*, const SMBv1::CreateTemporaryArgumentType*, const SMBv1::CreateTemporaryResultType*) {} /*! SMBv1 "CreateNew" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void createNewSMBv1(const SMBv1::CreateNewCommand*, const SMBv1::CreateNewArgumentType*, const SMBv1::CreateNewResultType*) {} /*! SMBv1 "CheckDirectory" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void checkDirectorySMBv1(const SMBv1::CheckDirectoryCommand*, const SMBv1::CheckDirectoryArgumentType*, const SMBv1::CheckDirectoryResultType*) {} /*! SMBv1 "ProcessExit" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void processExitSMBv1(const SMBv1::ProcessExitCommand*, const SMBv1::ProcessExitArgumentType*, const SMBv1::ProcessExitResultType*) {} /*! SMBv1 "Seek" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void seekSMBv1(const SMBv1::SeekCommand*, const SMBv1::SeekArgumentType*, const SMBv1::SeekResultType*) {} /*! SMBv1 "LockAndRead" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void lockAndReadSMBv1(const SMBv1::LockAndReadCommand*, const SMBv1::LockAndReadArgumentType*, const SMBv1::LockAndReadResultType*) {} /*! SMBv1 "WriteAndUnlock" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeAndUnlockSMBv1(const SMBv1::WriteAndUnlockCommand*, const SMBv1::WriteAndUnlockArgumentType*, const SMBv1::WriteAndUnlockResultType*) {} /*! SMBv1 "ReadRaw" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readRawSMBv1(const SMBv1::ReadRawCommand*, const SMBv1::ReadRawArgumentType*, const SMBv1::ReadRawResultType*) {} /*! SMBv1 "ReadMpx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readMpxSMBv1(const SMBv1::ReadMpxCommand*, const SMBv1::ReadMpxArgumentType*, const SMBv1::ReadMpxResultType*) {} /*! SMBv1 "ReadMpxSecondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readMpxSecondarySMBv1(const SMBv1::ReadMpxSecondaryCommand*, const SMBv1::ReadMpxSecondaryArgumentType*, const SMBv1::ReadMpxSecondaryResultType*) {} /*! SMBv1 "WriteRaw" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeRawSMBv1(const SMBv1::WriteRawCommand*, const SMBv1::WriteRawArgumentType*, const SMBv1::WriteRawResultType*) {} /*! SMBv1 "WriteMpx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeMpxSMBv1(const SMBv1::WriteMpxCommand*, const SMBv1::WriteMpxArgumentType*, const SMBv1::WriteMpxResultType*) {} /*! SMBv1 "WriteMpxSecondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeMpxSecondarySMBv1(const SMBv1::WriteMpxSecondaryCommand*, const SMBv1::WriteMpxSecondaryArgumentType*, const SMBv1::WriteMpxSecondaryResultType*) {} /*! SMBv1 "WriteComplete" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeCompleteSMBv1(const SMBv1::WriteCompleteCommand*, const SMBv1::WriteCompleteArgumentType*, const SMBv1::WriteCompleteResultType*) {} /*! SMBv1 "QueryServer" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryServerSMBv1(const SMBv1::QueryServerCommand*, const SMBv1::QueryServerArgumentType*, const SMBv1::QueryServerResultType*) {} /*! SMBv1 "SetInformation2" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void setInfo2SMBv1(const SMBv1::SetInformation2Command*, const SMBv1::SetInformation2ArgumentType*, const SMBv1::SetInformation2ResultType*) {} /*! SMBv1 "QueryInformation2" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryInfo2SMBv1(const SMBv1::QueryInformation2Command*, const SMBv1::QueryInformation2ArgumentType*, const SMBv1::QueryInformation2ResultType*) {} /*! SMBv1 "LockingAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void lockingAndxSMBv1(const SMBv1::LockingAndxCommand*, const SMBv1::LockingAndxArgumentType*, const SMBv1::LockingAndxResultType*) {} /*! SMBv1 "Transaction" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void transactionSMBv1(const SMBv1::TransactionCommand*, const SMBv1::TransactionArgumentType*, const SMBv1::TransactionResultType*) {} /*! SMBv1 "TransactionSecondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void transactionSecondarySMBv1(const SMBv1::TransactionSecondaryCommand*, const SMBv1::TransactionSecondaryArgumentType*, const SMBv1::TransactionSecondaryResultType*) {} /*! SMBv1 "Ioctl" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ioctlSMBv1(const SMBv1::IoctlCommand*, const SMBv1::IoctlArgumentType*, const SMBv1::IoctlResultType*) {} /*! SMBv1 "IoctlSecondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ioctlSecondarySMBv1(const SMBv1::IoctlSecondaryCommand*, const SMBv1::IoctlSecondaryArgumentType*, const SMBv1::IoctlSecondaryResultType*) {} /*! SMBv1 "Copy" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void copySMBv1(const SMBv1::CopyCommand*, const SMBv1::CopyArgumentType*, const SMBv1::CopyResultType*) {} /*! SMBv1 "Move" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void moveSMBv1(const SMBv1::MoveCommand*, const SMBv1::MoveArgumentType*, const SMBv1::MoveResultType*) {} /*! SMBv1 "Echo" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void echoSMBv1(const SMBv1::EchoCommand*, const SMBv1::EchoArgumentType*, const SMBv1::EchoResultType*) {} /*! SMBv1 "WriteAndClose" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeAndCloseSMBv1(const SMBv1::WriteAndCloseCommand*, const SMBv1::WriteAndCloseArgumentType*, const SMBv1::WriteAndCloseResultType*) {} /*! SMBv1 "OpenAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void openAndxSMBv1(const SMBv1::OpenAndxCommand*, const SMBv1::OpenAndxArgumentType*, const SMBv1::OpenAndxResultType*) {} /*! SMBv1 "ReadAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readAndxSMBv1(const SMBv1::ReadAndxCommand*, const SMBv1::ReadAndxArgumentType*, const SMBv1::ReadAndxResultType*) {} /*! SMBv1 "WriteAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeAndxSMBv1(const SMBv1::WriteAndxCommand*, const SMBv1::WriteAndxArgumentType*, const SMBv1::WriteAndxResultType*) {} /*! SMBv1 "NewFileSize" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void newFileSizeSMBv1(const SMBv1::NewFileSizeCommand*, const SMBv1::NewFileSizeArgumentType*, const SMBv1::NewFileSizeResultType*) {} /*! SMBv1 "CloseAndTreeDisc" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void closeAndTreeDiscSMBv1(const SMBv1::CloseAndTreeDiscCommand*, const SMBv1::CloseAndTreeDiscArgumentType*, const SMBv1::CloseAndTreeDiscResultType*) {} /*! SMBv1 "Transaction2" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void transaction2SMBv1(const SMBv1::Transaction2Command*, const SMBv1::Transaction2ArgumentType*, const SMBv1::Transaction2ResultType*) {} /*! SMBv1 "Transaction2Secondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void transaction2SecondarySMBv1(const SMBv1::Transaction2SecondaryCommand*, const SMBv1::Transaction2SecondaryArgumentType*, const SMBv1::Transaction2SecondaryResultType*) {} /*! SMBv1 "FindClose2" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void findClose2SMBv1(const SMBv1::FindClose2Command*, const SMBv1::FindClose2ArgumentType*, const SMBv1::FindClose2ResultType*) {} /*! SMBv1 "FindNotifyClose" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void findNotifyCloseSMBv1(const SMBv1::FindNotifyCloseCommand*, const SMBv1::FindNotifyCloseArgumentType*, const SMBv1::FindNotifyCloseResultType*) {} /*! SMBv1 "TreeConnect" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void treeConnectSMBv1(const SMBv1::TreeConnectCommand*, const SMBv1::TreeConnectArgumentType*, const SMBv1::TreeConnectResultType*) {} /*! SMBv1 "TreeDisconnect" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void treeDisconnectSMBv1(const SMBv1::TreeDisconnectCommand*, const SMBv1::TreeDisconnectArgumentType*, const SMBv1::TreeDisconnectResultType*) {} /*! SMBv1 "Negotiate" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void negotiateSMBv1(const SMBv1::NegotiateCommand*, const SMBv1::NegotiateArgumentType*, const SMBv1::NegotiateResultType*) {} /*! SMBv1 "SessionSetupAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void sessionSetupAndxSMBv1(const SMBv1::SessionSetupAndxCommand*, const SMBv1::SessionSetupAndxArgumentType*, const SMBv1::SessionSetupAndxResultType*) {} /*! SMBv1 "LogoffAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void logoffAndxSMBv1(const SMBv1::LogoffAndxCommand*, const SMBv1::LogoffAndxArgumentType*, const SMBv1::LogoffAndxResultType*) {} /*! SMBv1 "TreeConnectAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void treeConnectAndxSMBv1(const SMBv1::TreeConnectAndxCommand*, const SMBv1::TreeConnectAndxArgumentType*, const SMBv1::TreeConnectAndxResultType*) {} /*! SMBv1 "SecurityPackageAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void securityPackageAndxSMBv1(const SMBv1::SecurityPackageAndxCommand*, const SMBv1::SecurityPackageAndxArgumentType*, const SMBv1::SecurityPackageAndxResultType*) {} /*! SMBv1 "QueryInformationDisk" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryInformationDiskSMBv1(const SMBv1::QueryInformationDiskCommand*, const SMBv1::QueryInformationDiskArgumentType*, const SMBv1::QueryInformationDiskResultType*) {} /*! SMBv1 "Search" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void searchSMBv1(const SMBv1::SearchCommand*, const SMBv1::SearchArgumentType*, const SMBv1::SearchResultType*) {} /*! SMBv1 "Find" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void findSMBv1(const SMBv1::FindCommand*, const SMBv1::FindArgumentType*, const SMBv1::FindResultType*) {} /*! SMBv1 "FindUnique" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void findUniqueSMBv1(const SMBv1::FindUniqueCommand*, const SMBv1::FindUniqueArgumentType*, const SMBv1::FindUniqueResultType*) {} /*! SMBv1 "FindClose" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void findCloseSMBv1(const SMBv1::FindCloseCommand*, const SMBv1::FindCloseArgumentType*, const SMBv1::FindCloseResultType*) {} /*! SMBv1 "NtTransact" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ntTransactSMBv1(const SMBv1::NtTransactCommand*, const SMBv1::NtTransactArgumentType*, const SMBv1::NtTransactResultType*) {} /*! SMBv1 "NtTransactSecondary" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ntTransactSecondarySMBv1(const SMBv1::NtTransactSecondaryCommand*, const SMBv1::NtTransactSecondaryArgumentType*, const SMBv1::NtTransactSecondaryResultType*) {} /*! SMBv1 "NtCreateAndx" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ntCreateAndxSMBv1(const SMBv1::NtCreateAndxCommand*, const SMBv1::NtCreateAndxArgumentType*, const SMBv1::NtCreateAndxResultType*) {} /*! SMBv1 "NtCancel" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ntCancelSMBv1(const SMBv1::NtCancelCommand*, const SMBv1::NtCancelArgumentType*, const SMBv1::NtCancelResultType*) {} /*! SMBv1 "NtRename" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ntRenameSMBv1(const SMBv1::NtRenameCommand*, const SMBv1::NtRenameArgumentType*, const SMBv1::NtRenameResultType*) {} /*! SMBv1 "OpenPrintFile" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void openPrintFileSMBv1(const SMBv1::OpenPrintFileCommand*, const SMBv1::OpenPrintFileArgumentType*, const SMBv1::OpenPrintFileResultType*) {} /*! SMBv1 "WritePrintFile" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writePrintFileSMBv1(const SMBv1::WritePrintFileCommand*, const SMBv1::WritePrintFileArgumentType*, const SMBv1::WritePrintFileResultType*) {} /*! SMBv1 "ClosePrintFile" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void closePrintFileSMBv1(const SMBv1::ClosePrintFileCommand*, const SMBv1::ClosePrintFileArgumentType*, const SMBv1::ClosePrintFileResultType*) {} /*! SMBv1 "GetPrintQueue" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void getPrintQueueSMBv1(const SMBv1::GetPrintQueueCommand*, const SMBv1::GetPrintQueueArgumentType*, const SMBv1::GetPrintQueueResultType*) {} /*! SMBv1 "ReadBulk" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readBulkSMBv1(const SMBv1::ReadBulkCommand*, const SMBv1::ReadBulkArgumentType*, const SMBv1::ReadBulkResultType*) {} /*! SMBv1 "WriteBulk" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeBulkSMBv1(const SMBv1::WriteBulkCommand*, const SMBv1::WriteBulkArgumentType*, const SMBv1::WriteBulkResultType*) {} /*! SMBv1 "WriteBulkData" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeBulkDataSMBv1(const SMBv1::WriteBulkDataCommand*, const SMBv1::WriteBulkDataArgumentType*, const SMBv1::WriteBulkDataResultType*) {} /*! SMBv1 "Invalid" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void invalidSMBv1(const SMBv1::InvalidCommand*, const SMBv1::InvalidArgumentType*, const SMBv1::InvalidResultType*) {} /*! SMBv1 "NoAndxCommand" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void noAndxCommandSMBv1(const SMBv1::NoAndxCommand*, const SMBv1::NoAndxCmdArgumentType*, const SMBv1::NoAndxCmdResultType*) {} }; /*! Abstract interface of plugin which collects SMBv2 statistics */ class ISMBv2 { public: virtual ~ISMBv2() {} /*! "Close file" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void closeFileSMBv2(const SMBv2::CloseFileCommand*, const SMBv2::CloseRequest*, const SMBv2::CloseResponse*) {} /*! "Negotiate" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void negotiateSMBv2(const SMBv2::NegotiateCommand*, const SMBv2::NegotiateRequest*, const SMBv2::NegotiateResponse*) {} /*! "session setup" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void sessionSetupSMBv2(const SMBv2::SessionSetupCommand*, const SMBv2::SessionSetupRequest*, const SMBv2::SessionSetupResponse*) {} /*! "log off" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void logOffSMBv2(const SMBv2::LogOffCommand*, const SMBv2::LogOffRequest*, const SMBv2::LogOffResponse*) {} /*! "Tree Connect" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void treeConnectSMBv2(const SMBv2::TreeConnectCommand*, const SMBv2::TreeConnectRequest*, const SMBv2::TreeConnectResponse*) {} /*! "Tree disconnect" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void treeDisconnectSMBv2(const SMBv2::TreeDisconnectCommand*, const SMBv2::TreeDisconnectRequest*, const SMBv2::TreeDisconnectResponse*) {} /*! "Create" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void createSMBv2(const SMBv2::CreateCommand*, const SMBv2::CreateRequest*, const SMBv2::CreateResponse*) {} /*! "Flush" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void flushSMBv2(const SMBv2::FlushCommand*, const SMBv2::FlushRequest*, const SMBv2::FlushResponse*) {} /*! "Read" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void readSMBv2(const SMBv2::ReadCommand*, const SMBv2::ReadRequest*, const SMBv2::ReadResponse*) {} /*! "Write" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void writeSMBv2(const SMBv2::WriteCommand*, const SMBv2::WriteRequest*, const SMBv2::WriteResponse*) {} /*! "Lock" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void lockSMBv2(const SMBv2::LockCommand*, const SMBv2::LockRequest*, const SMBv2::LockResponse*) {} /*! "IO ctl" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void ioctlSMBv2(const SMBv2::IoctlCommand*, const SMBv2::IoCtlRequest*, const SMBv2::IoCtlResponse*) {} /*! "Cancel" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void cancelSMBv2(const SMBv2::CancelCommand*, const SMBv2::CancelRequest*, const SMBv2::CancelResponce*) {} /*! "Echo" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void echoSMBv2(const SMBv2::EchoCommand*, const SMBv2::EchoRequest*, const SMBv2::EchoResponse*) {} /*! "Query directory" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryDirSMBv2(const SMBv2::QueryDirCommand*, const SMBv2::QueryDirRequest*, const SMBv2::QueryDirResponse*) {} /*! "Change notify" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void changeNotifySMBv2(const SMBv2::ChangeNotifyCommand*, const SMBv2::ChangeNotifyRequest*, const SMBv2::ChangeNotifyResponse*) {} /*! "Query Info" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void queryInfoSMBv2(const SMBv2::QueryInfoCommand*, const SMBv2::QueryInfoRequest*, const SMBv2::QueryInfoResponse*) {} /*! "Set Info" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void setInfoSMBv2(const SMBv2::SetInfoCommand*, const SMBv2::SetInfoRequest*, const SMBv2::SetInfoResponse*) {} /*! "Break opportunistic lock" command "on receive" event handler * \param cmd - Specified command * \param arg - arguments for the command * \param res - result of the command */ virtual void breakOplockSMBv2(const SMBv2::BreakOpLockCommand*, const SMBv2::OplockAcknowledgment*, const SMBv2::OplockResponse*) {} }; /*! Base interface for all nfstrace plugins. * Extends protocol interfaces: NFS3, NFS4, NFS41, SMBv1, SMBv2 */ class IAnalyzer : public INFSv3rpcgen, public INFSv4rpcgen, public INFSv41rpcgen, public ISMBv1, public ISMBv2 { public: virtual ~IAnalyzer() {} virtual void flush_statistics() = 0; virtual void on_unix_signal(int /*signo*/) {} }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//IANALYZER_TYPE_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/nfs3_types_rpcgen.h000066400000000000000000000446361261713114600205040ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: All RFC1813 declared structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS3_TYPES_RPCGEN_H #define NFS3_TYPES_RPCGEN_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace API { namespace NFS3 { const uint32_t NFS3_FHSIZE {64}; const uint32_t NFS3_COOKIEVERFSIZE {8}; const uint32_t NFS3_CREATEVERFSIZE {8}; const uint32_t NFS3_WRITEVERFSIZE {8}; typedef u_quad_t uint64; typedef u_int uint32; typedef quad_t int64; typedef int int32; typedef char *filename3; typedef char *nfspath3; typedef uint64 fileid3; typedef uint64 cookie3; typedef char cookieverf3[NFS3_COOKIEVERFSIZE]; typedef char createverf3[NFS3_CREATEVERFSIZE]; typedef char writeverf3[NFS3_WRITEVERFSIZE]; typedef uint32 uid3; typedef uint32 gid3; typedef uint64 size3; typedef uint64 offset3; typedef uint32 mode3; typedef uint32 count3; enum nfsstat3 { NFS3_OK = 0, NFS3ERR_PERM = 1, NFS3ERR_NOENT = 2, NFS3ERR_IO = 5, NFS3ERR_NXIO = 6, NFS3ERR_ACCES = 13, NFS3ERR_EXIST = 17, NFS3ERR_XDEV = 18, NFS3ERR_NODEV = 19, NFS3ERR_NOTDIR = 20, NFS3ERR_ISDIR = 21, NFS3ERR_INVAL = 22, NFS3ERR_FBIG = 27, NFS3ERR_NOSPC = 28, NFS3ERR_ROFS = 30, NFS3ERR_MLINK = 31, NFS3ERR_NAMETOOLONG = 63, NFS3ERR_NOTEMPTY = 66, NFS3ERR_DQUOT = 69, NFS3ERR_STALE = 70, NFS3ERR_REMOTE = 71, NFS3ERR_BADHANDLE = 10001, NFS3ERR_NOT_SYNC = 10002, NFS3ERR_BAD_COOKIE = 10003, NFS3ERR_NOTSUPP = 10004, NFS3ERR_TOOSMALL = 10005, NFS3ERR_SERVERFAULT = 10006, NFS3ERR_BADTYPE = 10007, NFS3ERR_JUKEBOX = 10008, }; typedef enum nfsstat3 nfsstat3; enum ftype3 { NF3REG = 1, NF3DIR = 2, NF3BLK = 3, NF3CHR = 4, NF3LNK = 5, NF3SOCK = 6, NF3FIFO = 7, }; typedef enum ftype3 ftype3; struct specdata3 { uint32 specdata1; uint32 specdata2; }; typedef struct specdata3 specdata3; struct nfs_fh3 { struct { u_int data_len; char *data_val; } data; }; typedef struct nfs_fh3 nfs_fh3; struct nfstime3 { uint32 seconds; uint32 nseconds; }; typedef struct nfstime3 nfstime3; struct fattr3 { ftype3 type; mode3 mode; uint32 nlink; uid3 uid; gid3 gid; size3 size; size3 used; specdata3 rdev; uint64 fsid; fileid3 fileid; nfstime3 atime; nfstime3 mtime; nfstime3 ctime; }; typedef struct fattr3 fattr3; struct post_op_attr { bool_t attributes_follow; union { fattr3 attributes; } post_op_attr_u; }; typedef struct post_op_attr post_op_attr; struct wcc_attr { size3 size; nfstime3 mtime; nfstime3 ctime; }; typedef struct wcc_attr wcc_attr; struct pre_op_attr { bool_t attributes_follow; union { wcc_attr attributes; } pre_op_attr_u; }; typedef struct pre_op_attr pre_op_attr; struct wcc_data { pre_op_attr before; post_op_attr after; }; typedef struct wcc_data wcc_data; struct post_op_fh3 { bool_t handle_follows; union { nfs_fh3 handle; } post_op_fh3_u; }; typedef struct post_op_fh3 post_op_fh3; enum time_how { DONT_CHANGE = 0, SET_TO_SERVER_TIME = 1, SET_TO_CLIENT_TIME = 2, }; typedef enum time_how time_how; struct set_mode3 { bool_t set_it; union { mode3 mode; } set_mode3_u; }; typedef struct set_mode3 set_mode3; struct set_uid3 { bool_t set_it; union { uid3 uid; } set_uid3_u; }; typedef struct set_uid3 set_uid3; struct set_gid3 { bool_t set_it; union { gid3 gid; } set_gid3_u; }; typedef struct set_gid3 set_gid3; struct set_size3 { bool_t set_it; union { size3 size; } set_size3_u; }; typedef struct set_size3 set_size3; struct set_atime { time_how set_it; union { nfstime3 atime; } set_atime_u; }; typedef struct set_atime set_atime; struct set_mtime { time_how set_it; union { nfstime3 mtime; } set_mtime_u; }; typedef struct set_mtime set_mtime; struct sattr3 { set_mode3 mode; set_uid3 uid; set_gid3 gid; set_size3 size; set_atime atime; set_mtime mtime; }; typedef struct sattr3 sattr3; struct diropargs3 { nfs_fh3 dir; filename3 name; }; typedef struct diropargs3 diropargs3; // for compatibility struct NULL3args { bool t {}; }; // for compatibility struct NULL3res { bool t {}; }; struct GETATTR3args { nfs_fh3 object; }; typedef struct GETATTR3args GETATTR3args; struct GETATTR3resok { fattr3 obj_attributes; }; typedef struct GETATTR3resok GETATTR3resok; struct GETATTR3res { nfsstat3 status; union { GETATTR3resok resok; } GETATTR3res_u; }; typedef struct GETATTR3res GETATTR3res; struct sattrguard3 { bool_t check; union { nfstime3 obj_ctime; } sattrguard3_u; }; typedef struct sattrguard3 sattrguard3; struct SETATTR3args { nfs_fh3 object; sattr3 new_attributes; sattrguard3 guard; }; typedef struct SETATTR3args SETATTR3args; struct SETATTR3resok { wcc_data obj_wcc; }; typedef struct SETATTR3resok SETATTR3resok; struct SETATTR3resfail { wcc_data obj_wcc; }; typedef struct SETATTR3resfail SETATTR3resfail; struct SETATTR3res { nfsstat3 status; union { SETATTR3resok resok; SETATTR3resfail resfail; } SETATTR3res_u; }; typedef struct SETATTR3res SETATTR3res; struct LOOKUP3args { diropargs3 what; }; typedef struct LOOKUP3args LOOKUP3args; struct LOOKUP3resok { nfs_fh3 object; post_op_attr obj_attributes; post_op_attr dir_attributes; }; typedef struct LOOKUP3resok LOOKUP3resok; struct LOOKUP3resfail { post_op_attr dir_attributes; }; typedef struct LOOKUP3resfail LOOKUP3resfail; struct LOOKUP3res { nfsstat3 status; union { LOOKUP3resok resok; LOOKUP3resfail resfail; } LOOKUP3res_u; }; typedef struct LOOKUP3res LOOKUP3res; enum { ACCESS3_READ = 0x0001, ACCESS3_LOOKUP = 0x0002, ACCESS3_MODIFY = 0x0004, ACCESS3_EXTEND = 0x0008, ACCESS3_DELETE = 0x0010, ACCESS3_EXECUTE = 0x0020 }; struct ACCESS3args { nfs_fh3 object; uint32 access; }; typedef struct ACCESS3args ACCESS3args; struct ACCESS3resok { post_op_attr obj_attributes; uint32 access; }; typedef struct ACCESS3resok ACCESS3resok; struct ACCESS3resfail { post_op_attr obj_attributes; }; typedef struct ACCESS3resfail ACCESS3resfail; struct ACCESS3res { nfsstat3 status; union { ACCESS3resok resok; ACCESS3resfail resfail; } ACCESS3res_u; }; typedef struct ACCESS3res ACCESS3res; struct READLINK3args { nfs_fh3 symlink; }; typedef struct READLINK3args READLINK3args; struct READLINK3resok { post_op_attr symlink_attributes; nfspath3 data; }; typedef struct READLINK3resok READLINK3resok; struct READLINK3resfail { post_op_attr symlink_attributes; }; typedef struct READLINK3resfail READLINK3resfail; struct READLINK3res { nfsstat3 status; union { READLINK3resok resok; READLINK3resfail resfail; } READLINK3res_u; }; typedef struct READLINK3res READLINK3res; struct READ3args { nfs_fh3 file; offset3 offset; count3 count; }; typedef struct READ3args READ3args; struct READ3resok { post_op_attr file_attributes; count3 count; bool_t eof; struct { u_int data_len; char *data_val; } data; }; typedef struct READ3resok READ3resok; struct READ3resfail { post_op_attr file_attributes; }; typedef struct READ3resfail READ3resfail; struct READ3res { nfsstat3 status; union { READ3resok resok; READ3resfail resfail; } READ3res_u; }; typedef struct READ3res READ3res; enum stable_how { UNSTABLE = 0, DATA_SYNC = 1, FILE_SYNC = 2, }; typedef enum stable_how stable_how; struct WRITE3args { nfs_fh3 file; offset3 offset; count3 count; stable_how stable; struct { u_int data_len; char *data_val; } data; }; typedef struct WRITE3args WRITE3args; struct WRITE3resok { wcc_data file_wcc; count3 count; stable_how committed; writeverf3 verf; }; typedef struct WRITE3resok WRITE3resok; struct WRITE3resfail { wcc_data file_wcc; }; typedef struct WRITE3resfail WRITE3resfail; struct WRITE3res { nfsstat3 status; union { WRITE3resok resok; WRITE3resfail resfail; } WRITE3res_u; }; typedef struct WRITE3res WRITE3res; enum createmode3 { UNCHECKED = 0, GUARDED = 1, EXCLUSIVE = 2, }; typedef enum createmode3 createmode3; struct createhow3 { createmode3 mode; union { sattr3 obj_attributes; createverf3 verf; } createhow3_u; }; typedef struct createhow3 createhow3; struct CREATE3args { diropargs3 where; createhow3 how; }; typedef struct CREATE3args CREATE3args; struct CREATE3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; typedef struct CREATE3resok CREATE3resok; struct CREATE3resfail { wcc_data dir_wcc; }; typedef struct CREATE3resfail CREATE3resfail; struct CREATE3res { nfsstat3 status; union { CREATE3resok resok; CREATE3resfail resfail; } CREATE3res_u; }; typedef struct CREATE3res CREATE3res; struct MKDIR3args { diropargs3 where; sattr3 attributes; }; typedef struct MKDIR3args MKDIR3args; struct MKDIR3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; typedef struct MKDIR3resok MKDIR3resok; struct MKDIR3resfail { wcc_data dir_wcc; }; typedef struct MKDIR3resfail MKDIR3resfail; struct MKDIR3res { nfsstat3 status; union { MKDIR3resok resok; MKDIR3resfail resfail; } MKDIR3res_u; }; typedef struct MKDIR3res MKDIR3res; struct symlinkdata3 { sattr3 symlink_attributes; nfspath3 symlink_data; }; typedef struct symlinkdata3 symlinkdata3; struct SYMLINK3args { diropargs3 where; symlinkdata3 symlink; }; typedef struct SYMLINK3args SYMLINK3args; struct SYMLINK3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; typedef struct SYMLINK3resok SYMLINK3resok; struct SYMLINK3resfail { wcc_data dir_wcc; }; typedef struct SYMLINK3resfail SYMLINK3resfail; struct SYMLINK3res { nfsstat3 status; union { SYMLINK3resok resok; SYMLINK3resfail resfail; } SYMLINK3res_u; }; typedef struct SYMLINK3res SYMLINK3res; struct devicedata3 { sattr3 dev_attributes; specdata3 spec; }; typedef struct devicedata3 devicedata3; struct mknoddata3 { ftype3 type; union { devicedata3 device; sattr3 pipe_attributes; } mknoddata3_u; }; typedef struct mknoddata3 mknoddata3; struct MKNOD3args { diropargs3 where; mknoddata3 what; }; typedef struct MKNOD3args MKNOD3args; struct MKNOD3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; typedef struct MKNOD3resok MKNOD3resok; struct MKNOD3resfail { wcc_data dir_wcc; }; typedef struct MKNOD3resfail MKNOD3resfail; struct MKNOD3res { nfsstat3 status; union { MKNOD3resok resok; MKNOD3resfail resfail; } MKNOD3res_u; }; typedef struct MKNOD3res MKNOD3res; struct REMOVE3args { diropargs3 object; }; typedef struct REMOVE3args REMOVE3args; struct REMOVE3resok { wcc_data dir_wcc; }; typedef struct REMOVE3resok REMOVE3resok; struct REMOVE3resfail { wcc_data dir_wcc; }; typedef struct REMOVE3resfail REMOVE3resfail; struct REMOVE3res { nfsstat3 status; union { REMOVE3resok resok; REMOVE3resfail resfail; } REMOVE3res_u; }; typedef struct REMOVE3res REMOVE3res; struct RMDIR3args { diropargs3 object; }; typedef struct RMDIR3args RMDIR3args; struct RMDIR3resok { wcc_data dir_wcc; }; typedef struct RMDIR3resok RMDIR3resok; struct RMDIR3resfail { wcc_data dir_wcc; }; typedef struct RMDIR3resfail RMDIR3resfail; struct RMDIR3res { nfsstat3 status; union { RMDIR3resok resok; RMDIR3resfail resfail; } RMDIR3res_u; }; typedef struct RMDIR3res RMDIR3res; struct RENAME3args { diropargs3 from; diropargs3 to; }; typedef struct RENAME3args RENAME3args; struct RENAME3resok { wcc_data fromdir_wcc; wcc_data todir_wcc; }; typedef struct RENAME3resok RENAME3resok; struct RENAME3resfail { wcc_data fromdir_wcc; wcc_data todir_wcc; }; typedef struct RENAME3resfail RENAME3resfail; struct RENAME3res { nfsstat3 status; union { RENAME3resok resok; RENAME3resfail resfail; } RENAME3res_u; }; typedef struct RENAME3res RENAME3res; struct LINK3args { nfs_fh3 file; diropargs3 link; }; typedef struct LINK3args LINK3args; struct LINK3resok { post_op_attr file_attributes; wcc_data linkdir_wcc; }; typedef struct LINK3resok LINK3resok; struct LINK3resfail { post_op_attr file_attributes; wcc_data linkdir_wcc; }; typedef struct LINK3resfail LINK3resfail; struct LINK3res { nfsstat3 status; union { LINK3resok resok; LINK3resfail resfail; } LINK3res_u; }; typedef struct LINK3res LINK3res; struct READDIR3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 count; }; typedef struct READDIR3args READDIR3args; struct entry3 { fileid3 fileid; filename3 name; cookie3 cookie; struct entry3 *nextentry; }; typedef struct entry3 entry3; struct dirlist3 { entry3 *entries; bool_t eof; }; typedef struct dirlist3 dirlist3; struct READDIR3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlist3 reply; }; typedef struct READDIR3resok READDIR3resok; struct READDIR3resfail { post_op_attr dir_attributes; }; typedef struct READDIR3resfail READDIR3resfail; struct READDIR3res { nfsstat3 status; union { READDIR3resok resok; READDIR3resfail resfail; } READDIR3res_u; }; typedef struct READDIR3res READDIR3res; struct READDIRPLUS3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 dircount; count3 maxcount; }; typedef struct READDIRPLUS3args READDIRPLUS3args; struct entryplus3 { fileid3 fileid; filename3 name; cookie3 cookie; post_op_attr name_attributes; post_op_fh3 name_handle; struct entryplus3 *nextentry; }; typedef struct entryplus3 entryplus3; struct dirlistplus3 { entryplus3 *entries; bool_t eof; }; typedef struct dirlistplus3 dirlistplus3; struct READDIRPLUS3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlistplus3 reply; }; typedef struct READDIRPLUS3resok READDIRPLUS3resok; struct READDIRPLUS3resfail { post_op_attr dir_attributes; }; typedef struct READDIRPLUS3resfail READDIRPLUS3resfail; struct READDIRPLUS3res { nfsstat3 status; union { READDIRPLUS3resok resok; READDIRPLUS3resfail resfail; } READDIRPLUS3res_u; }; typedef struct READDIRPLUS3res READDIRPLUS3res; struct FSSTAT3args { nfs_fh3 fsroot; }; typedef struct FSSTAT3args FSSTAT3args; struct FSSTAT3resok { post_op_attr obj_attributes; size3 tbytes; size3 fbytes; size3 abytes; size3 tfiles; size3 ffiles; size3 afiles; uint32 invarsec; }; typedef struct FSSTAT3resok FSSTAT3resok; struct FSSTAT3resfail { post_op_attr obj_attributes; }; typedef struct FSSTAT3resfail FSSTAT3resfail; struct FSSTAT3res { nfsstat3 status; union { FSSTAT3resok resok; FSSTAT3resfail resfail; } FSSTAT3res_u; }; typedef struct FSSTAT3res FSSTAT3res; enum { FSF3_LINK = 0x0001, FSF3_SYMLINK = 0x0002, FSF3_HOMOGENEOUS = 0x0008, FSF3_CANSETTIME = 0x0010 }; struct FSINFO3args { nfs_fh3 fsroot; }; typedef struct FSINFO3args FSINFO3args; struct FSINFO3resok { post_op_attr obj_attributes; uint32 rtmax; uint32 rtpref; uint32 rtmult; uint32 wtmax; uint32 wtpref; uint32 wtmult; uint32 dtpref; size3 maxfilesize; nfstime3 time_delta; uint32 properties; }; typedef struct FSINFO3resok FSINFO3resok; struct FSINFO3resfail { post_op_attr obj_attributes; }; typedef struct FSINFO3resfail FSINFO3resfail; struct FSINFO3res { nfsstat3 status; union { FSINFO3resok resok; FSINFO3resfail resfail; } FSINFO3res_u; }; typedef struct FSINFO3res FSINFO3res; struct PATHCONF3args { nfs_fh3 object; }; typedef struct PATHCONF3args PATHCONF3args; struct PATHCONF3resok { post_op_attr obj_attributes; uint32 linkmax; uint32 name_max; bool_t no_trunc; bool_t chown_restricted; bool_t case_insensitive; bool_t case_preserving; }; typedef struct PATHCONF3resok PATHCONF3resok; struct PATHCONF3resfail { post_op_attr obj_attributes; }; typedef struct PATHCONF3resfail PATHCONF3resfail; struct PATHCONF3res { nfsstat3 status; union { PATHCONF3resok resok; PATHCONF3resfail resfail; } PATHCONF3res_u; }; typedef struct PATHCONF3res PATHCONF3res; struct COMMIT3args { nfs_fh3 file; offset3 offset; count3 count; }; typedef struct COMMIT3args COMMIT3args; struct COMMIT3resok { wcc_data file_wcc; writeverf3 verf; }; typedef struct COMMIT3resok COMMIT3resok; struct COMMIT3resfail { wcc_data file_wcc; }; typedef struct COMMIT3resfail COMMIT3resfail; struct COMMIT3res { nfsstat3 status; union { COMMIT3resok resok; COMMIT3resfail resfail; } COMMIT3res_u; }; typedef struct COMMIT3res COMMIT3res; #define NFS_V3 3 } // namespace NFS3 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//NFS3_TYPES_RPCGEN_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/nfs41_types_rpcgen.h000066400000000000000000002250451261713114600205610ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Generated by rpcgen with minor compatibility fixes // Description: All RFC5661 declared structures. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS41_TYPES_RPCGEN_H #define NFS41_TYPES_RPCGEN_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace API { namespace NFS41 { using authsys_parms = authunix_parms; #ifndef RPCSEC_GSS #define RPCSEC_GSS 6 #endif const uint32_t NFS4_FHSIZE {128}; const uint32_t NFS4_VERIFIER_SIZE {8}; const uint32_t NFS4_OPAQUE_LIMIT {1024}; const uint32_t NFS4_SESSIONID_SIZE {16}; const uint64_t NFS4_INT64_MAX {0x7fffffffffffffff}; const uint64_t NFS4_UINT64_MAX {0xffffffffffffffff}; const uint32_t NFS4_INT32_MAX {0x7fffffff}; const uint32_t NFS4_UINT32_MAX {0xffffffff}; const uint64_t NFS4_MAXFILELEN {0xffffffffffffffff}; const uint64_t NFS4_MAXFILEOFF {0xfffffffffffffffe}; enum nfs_ftype4 { NF4REG = 1, NF4DIR = 2, NF4BLK = 3, NF4CHR = 4, NF4LNK = 5, NF4SOCK = 6, NF4FIFO = 7, NF4ATTRDIR = 8, NF4NAMEDATTR = 9, }; typedef enum nfs_ftype4 nfs_ftype4; enum nfsstat4 { NFS4_OK = 0, NFS4ERR_PERM = 1, NFS4ERR_NOENT = 2, NFS4ERR_IO = 5, NFS4ERR_NXIO = 6, NFS4ERR_ACCESS = 13, NFS4ERR_EXIST = 17, NFS4ERR_XDEV = 18, NFS4ERR_NOTDIR = 20, NFS4ERR_ISDIR = 21, NFS4ERR_INVAL = 22, NFS4ERR_FBIG = 27, NFS4ERR_NOSPC = 28, NFS4ERR_ROFS = 30, NFS4ERR_MLINK = 31, NFS4ERR_NAMETOOLONG = 63, NFS4ERR_NOTEMPTY = 66, NFS4ERR_DQUOT = 69, NFS4ERR_STALE = 70, NFS4ERR_BADHANDLE = 10001, NFS4ERR_BAD_COOKIE = 10003, NFS4ERR_NOTSUPP = 10004, NFS4ERR_TOOSMALL = 10005, NFS4ERR_SERVERFAULT = 10006, NFS4ERR_BADTYPE = 10007, NFS4ERR_DELAY = 10008, NFS4ERR_SAME = 10009, NFS4ERR_DENIED = 10010, NFS4ERR_EXPIRED = 10011, NFS4ERR_LOCKED = 10012, NFS4ERR_GRACE = 10013, NFS4ERR_FHEXPIRED = 10014, NFS4ERR_SHARE_DENIED = 10015, NFS4ERR_WRONGSEC = 10016, NFS4ERR_CLID_INUSE = 10017, NFS4ERR_RESOURCE = 10018, NFS4ERR_MOVED = 10019, NFS4ERR_NOFILEHANDLE = 10020, NFS4ERR_MINOR_VERS_MISMATCH = 10021, NFS4ERR_STALE_CLIENTID = 10022, NFS4ERR_STALE_STATEID = 10023, NFS4ERR_OLD_STATEID = 10024, NFS4ERR_BAD_STATEID = 10025, NFS4ERR_BAD_SEQID = 10026, NFS4ERR_NOT_SAME = 10027, NFS4ERR_LOCK_RANGE = 10028, NFS4ERR_SYMLINK = 10029, NFS4ERR_RESTOREFH = 10030, NFS4ERR_LEASE_MOVED = 10031, NFS4ERR_ATTRNOTSUPP = 10032, NFS4ERR_NO_GRACE = 10033, NFS4ERR_RECLAIM_BAD = 10034, NFS4ERR_RECLAIM_CONFLICT = 10035, NFS4ERR_BADXDR = 10036, NFS4ERR_LOCKS_HELD = 10037, NFS4ERR_OPENMODE = 10038, NFS4ERR_BADOWNER = 10039, NFS4ERR_BADCHAR = 10040, NFS4ERR_BADNAME = 10041, NFS4ERR_BAD_RANGE = 10042, NFS4ERR_LOCK_NOTSUPP = 10043, NFS4ERR_OP_ILLEGAL = 10044, NFS4ERR_DEADLOCK = 10045, NFS4ERR_FILE_OPEN = 10046, NFS4ERR_ADMIN_REVOKED = 10047, NFS4ERR_CB_PATH_DOWN = 10048, NFS4ERR_BADIOMODE = 10049, NFS4ERR_BADLAYOUT = 10050, NFS4ERR_BAD_SESSION_DIGEST = 10051, NFS4ERR_BADSESSION = 10052, NFS4ERR_BADSLOT = 10053, NFS4ERR_COMPLETE_ALREADY = 10054, NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055, NFS4ERR_DELEG_ALREADY_WANTED = 10056, NFS4ERR_BACK_CHAN_BUSY = 10057, NFS4ERR_LAYOUTTRYLATER = 10058, NFS4ERR_LAYOUTUNAVAILABLE = 10059, NFS4ERR_NOMATCHING_LAYOUT = 10060, NFS4ERR_RECALLCONFLICT = 10061, NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062, NFS4ERR_SEQ_MISORDERED = 10063, NFS4ERR_SEQUENCE_POS = 10064, NFS4ERR_REQ_TOO_BIG = 10065, NFS4ERR_REP_TOO_BIG = 10066, NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067, NFS4ERR_RETRY_UNCACHED_REP = 10068, NFS4ERR_UNSAFE_COMPOUND = 10069, NFS4ERR_TOO_MANY_OPS = 10070, NFS4ERR_OP_NOT_IN_SESSION = 10071, NFS4ERR_HASH_ALG_UNSUPP = 10072, NFS4ERR_CLIENTID_BUSY = 10074, NFS4ERR_PNFS_IO_HOLE = 10075, NFS4ERR_SEQ_FALSE_RETRY = 10076, NFS4ERR_BAD_HIGH_SLOT = 10077, NFS4ERR_DEADSESSION = 10078, NFS4ERR_ENCR_ALG_UNSUPP = 10079, NFS4ERR_PNFS_NO_LAYOUT = 10080, NFS4ERR_NOT_ONLY_OP = 10081, NFS4ERR_WRONG_CRED = 10082, NFS4ERR_WRONG_TYPE = 10083, NFS4ERR_DIRDELEG_UNAVAIL = 10084, NFS4ERR_REJECT_DELEG = 10085, NFS4ERR_RETURNCONFLICT = 10086, NFS4ERR_DELEG_REVOKED = 10087, }; typedef enum nfsstat4 nfsstat4; typedef struct { u_int attrlist4_len; char *attrlist4_val; } attrlist4; typedef struct { u_int bitmap4_len; uint32_t *bitmap4_val; } bitmap4; typedef uint64_t changeid4; typedef uint64_t clientid4; typedef uint32_t count4; typedef uint64_t length4; typedef uint32_t mode4; typedef uint64_t nfs_cookie4; typedef struct { u_int nfs_fh4_len; char *nfs_fh4_val; } nfs_fh4; typedef uint64_t offset4; typedef uint32_t qop4; typedef struct { u_int sec_oid4_len; char *sec_oid4_val; } sec_oid4; typedef uint32_t sequenceid4; typedef uint32_t seqid4; typedef char sessionid4[NFS4_SESSIONID_SIZE]; typedef uint32_t slotid4; typedef struct { u_int utf8string_len; char *utf8string_val; } utf8string; typedef utf8string utf8str_cis; typedef utf8string utf8str_cs; typedef utf8string utf8str_mixed; typedef utf8str_cs component4; typedef utf8str_cs linktext4; typedef struct { u_int pathname4_len; component4 *pathname4_val; } pathname4; typedef char verifier4[NFS4_VERIFIER_SIZE]; struct nfstime4 { int64_t seconds; uint32_t nseconds; }; typedef struct nfstime4 nfstime4; enum time_how4 { SET_TO_SERVER_TIME4 = 0, SET_TO_CLIENT_TIME4 = 1, }; typedef enum time_how4 time_how4; struct settime4 { time_how4 set_it; union { nfstime4 time; } settime4_u; }; typedef struct settime4 settime4; typedef uint32_t nfs_lease4; struct fsid4 { uint64_t major; uint64_t minor; }; typedef struct fsid4 fsid4; struct change_policy4 { uint64_t cp_major; uint64_t cp_minor; }; typedef struct change_policy4 change_policy4; struct fs_location4 { struct { u_int server_len; utf8str_cis *server_val; } server; pathname4 rootpath; }; typedef struct fs_location4 fs_location4; struct fs_locations4 { pathname4 fs_root; struct { u_int locations_len; fs_location4 *locations_val; } locations; }; typedef struct fs_locations4 fs_locations4; typedef uint32_t fattr4_aclsupport; const fattr4_aclsupport ACL4_SUPPORT_ALLOW_ACL {0x00000001}; const fattr4_aclsupport ACL4_SUPPORT_DENY_ACL {0x00000002}; const fattr4_aclsupport ACL4_SUPPORT_AUDIT_ACL {0x00000004}; const fattr4_aclsupport ACL4_SUPPORT_ALARM_ACL {0x00000008}; typedef uint32_t acetype4; const acetype4 ACE4_ACCESS_ALLOWED_ACE_TYPE {0x00000000}; const acetype4 ACE4_ACCESS_DENIED_ACE_TYPE {0x00000001}; const acetype4 ACE4_SYSTEM_AUDIT_ACE_TYPE {0x00000002}; const acetype4 ACE4_SYSTEM_ALARM_ACE_TYPE {0x00000003}; typedef uint32_t aceflag4; const aceflag4 ACE4_FILE_INHERIT_ACE {0x00000001}; const aceflag4 ACE4_DIRECTORY_INHERIT_ACE {0x00000002}; const aceflag4 ACE4_NO_PROPAGATE_INHERIT_ACE {0x00000004}; const aceflag4 ACE4_INHERIT_ONLY_ACE {0x00000008}; const aceflag4 ACE4_SUCCESSFUL_ACCESS_ACE_FLAG {0x00000010}; const aceflag4 ACE4_FAILED_ACCESS_ACE_FLAG {0x00000020}; const aceflag4 ACE4_IDENTIFIER_GROUP {0x00000040}; const aceflag4 ACE4_INHERITED_ACE {0x00000080}; typedef uint32_t acemask4; const acemask4 ACE4_READ_DATA {0x00000001}; const acemask4 ACE4_LIST_DIRECTORY {0x00000001}; const acemask4 ACE4_WRITE_DATA {0x00000002}; const acemask4 ACE4_ADD_FILE {0x00000002}; const acemask4 ACE4_APPEND_DATA {0x00000004}; const acemask4 ACE4_ADD_SUBDIRECTORY {0x00000004}; const acemask4 ACE4_READ_NAMED_ATTRS {0x00000008}; const acemask4 ACE4_WRITE_NAMED_ATTRS {0x00000010}; const acemask4 ACE4_EXECUTE {0x00000020}; const acemask4 ACE4_DELETE_CHILD {0x00000040}; const acemask4 ACE4_READ_ATTRIBUTES {0x00000080}; const acemask4 ACE4_WRITE_ATTRIBUTES {0x00000100}; const acemask4 ACE4_WRITE_RETENTION {0x00000200}; const acemask4 ACE4_WRITE_RETENTION_HOLD {0x00000400}; const acemask4 ACE4_DELETE {0x00010000}; const acemask4 ACE4_READ_ACL {0x00020000}; const acemask4 ACE4_WRITE_ACL {0x00040000}; const acemask4 ACE4_WRITE_OWNER {0x00080000}; const acemask4 ACE4_SYNCHRONIZE {0x00100000}; const acemask4 ACE4_GENERIC_READ {0x00120081}; const acemask4 ACE4_GENERIC_WRITE {0x00160106}; const acemask4 ACE4_GENERIC_EXECUTE {0x001200A0}; struct nfsace4 { acetype4 type; aceflag4 flag; acemask4 access_mask; utf8str_mixed who; }; typedef struct nfsace4 nfsace4; typedef uint32_t aclflag4; const aclflag4 ACL4_AUTO_INHERIT {0x00000001}; const aclflag4 ACL4_PROTECTED {0x00000002}; const aclflag4 ACL4_DEFAULTED {0x00000004}; struct nfsacl41 { aclflag4 na41_flag; struct { u_int na41_aces_len; nfsace4 *na41_aces_val; } na41_aces; }; typedef struct nfsacl41 nfsacl41; const mode4 MODE4_SUID {0x800}; const mode4 MODE4_SGID {0x400}; const mode4 MODE4_SVTX {0x200}; const mode4 MODE4_RUSR {0x100}; const mode4 MODE4_WUSR {0x080}; const mode4 MODE4_XUSR {0x040}; const mode4 MODE4_RGRP {0x020}; const mode4 MODE4_WGRP {0x010}; const mode4 MODE4_XGRP {0x008}; const mode4 MODE4_ROTH {0x004}; const mode4 MODE4_WOTH {0x002}; const mode4 MODE4_XOTH {0x001}; struct mode_masked4 { mode4 mm_value_to_set; mode4 mm_mask_bits; }; typedef struct mode_masked4 mode_masked4; struct specdata4 { uint32_t specdata1; uint32_t specdata2; }; typedef struct specdata4 specdata4; const uint32_t FH4_PERSISTENT {0x00000000}; const uint32_t FH4_NOEXPIRE_WITH_OPEN {0x00000001}; const uint32_t FH4_VOLATILE_ANY {0x00000002}; const uint32_t FH4_VOL_MIGRATION {0x00000004}; const uint32_t FH4_VOL_RENAME {0x00000008}; struct netaddr4 { char *na_r_netid; char *na_r_addr; }; typedef struct netaddr4 netaddr4; struct nfs_impl_id4 { utf8str_cis nii_domain; utf8str_cs nii_name; nfstime4 nii_date; }; typedef struct nfs_impl_id4 nfs_impl_id4; struct stateid4 { uint32_t seqid; char other[12]; }; typedef struct stateid4 stateid4; enum layouttype4 { LAYOUT4_NFSV4_1_FILES = 0x1, LAYOUT4_OSD2_OBJECTS = 0x2, LAYOUT4_BLOCK_VOLUME = 0x3, }; typedef enum layouttype4 layouttype4; struct layout_content4 { layouttype4 loc_type; struct { u_int loc_body_len; char *loc_body_val; } loc_body; }; typedef struct layout_content4 layout_content4; /* * LAYOUT4_OSD2_OBJECTS loc_body description * is in a separate .x file */ /* * LAYOUT4_BLOCK_VOLUME loc_body description * is in a separate .x file */ struct layouthint4 { layouttype4 loh_type; struct { u_int loh_body_len; char *loh_body_val; } loh_body; }; typedef struct layouthint4 layouthint4; enum layoutiomode4 { LAYOUTIOMODE4_READ = 1, LAYOUTIOMODE4_RW = 2, LAYOUTIOMODE4_ANY = 3, }; typedef enum layoutiomode4 layoutiomode4; struct layout4 { offset4 lo_offset; length4 lo_length; layoutiomode4 lo_iomode; layout_content4 lo_content; }; typedef struct layout4 layout4; const uint32_t NFS4_DEVICEID4_SIZE {16}; typedef char deviceid4[NFS4_DEVICEID4_SIZE]; struct device_addr4 { layouttype4 da_layout_type; struct { u_int da_addr_body_len; char *da_addr_body_val; } da_addr_body; }; typedef struct device_addr4 device_addr4; struct layoutupdate4 { layouttype4 lou_type; struct { u_int lou_body_len; char *lou_body_val; } lou_body; }; typedef struct layoutupdate4 layoutupdate4; const uint32_t LAYOUT4_RET_REC_FILE {1}; const uint32_t LAYOUT4_RET_REC_FSID {2}; const uint32_t LAYOUT4_RET_REC_ALL {3}; enum layoutreturn_type4 { LAYOUTRETURN4_FILE = LAYOUT4_RET_REC_FILE, LAYOUTRETURN4_FSID = LAYOUT4_RET_REC_FSID, LAYOUTRETURN4_ALL = LAYOUT4_RET_REC_ALL, }; typedef enum layoutreturn_type4 layoutreturn_type4; /* layouttype4 specific data */ struct layoutreturn_file4 { offset4 lrf_offset; length4 lrf_length; stateid4 lrf_stateid; struct { u_int lrf_body_len; char *lrf_body_val; } lrf_body; }; typedef struct layoutreturn_file4 layoutreturn_file4; struct layoutreturn4 { layoutreturn_type4 lr_returntype; union { layoutreturn_file4 lr_layout; } layoutreturn4_u; }; typedef struct layoutreturn4 layoutreturn4; enum fs4_status_type { STATUS4_FIXED = 1, STATUS4_UPDATED = 2, STATUS4_VERSIONED = 3, STATUS4_WRITABLE = 4, STATUS4_REFERRAL = 5, }; typedef enum fs4_status_type fs4_status_type; struct fs4_status { bool_t fss_absent; fs4_status_type fss_type; utf8str_cs fss_source; utf8str_cs fss_current; int32_t fss_age; nfstime4 fss_version; }; typedef struct fs4_status fs4_status; const uint32_t TH4_READ_SIZE {0}; const uint32_t TH4_WRITE_SIZE {1}; const uint32_t TH4_READ_IOSIZE {2}; const uint32_t TH4_WRITE_IOSIZE {3}; typedef length4 threshold4_read_size; typedef length4 threshold4_write_size; typedef length4 threshold4_read_iosize; typedef length4 threshold4_write_iosize; struct threshold_item4 { layouttype4 thi_layout_type; bitmap4 thi_hintset; struct { u_int thi_hintlist_len; char *thi_hintlist_val; } thi_hintlist; }; typedef struct threshold_item4 threshold_item4; struct mdsthreshold4 { struct { u_int mth_hints_len; threshold_item4 *mth_hints_val; } mth_hints; }; typedef struct mdsthreshold4 mdsthreshold4; const uint64_t RET4_DURATION_INFINITE {0xffffffffffffffff}; struct retention_get4 { uint64_t rg_duration; struct { u_int rg_begin_time_len; nfstime4 *rg_begin_time_val; } rg_begin_time; }; typedef struct retention_get4 retention_get4; struct retention_set4 { bool_t rs_enable; struct { u_int rs_duration_len; uint64_t *rs_duration_val; } rs_duration; }; typedef struct retention_set4 retention_set4; const uint32_t FSCHARSET_CAP4_CONTAINS_NON_UTF8 {0x1}; const uint32_t FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 {0x2}; typedef uint32_t fs_charset_cap4; typedef bitmap4 fattr4_supported_attrs; typedef nfs_ftype4 fattr4_type; typedef uint32_t fattr4_fh_expire_type; typedef changeid4 fattr4_change; typedef uint64_t fattr4_size; typedef bool_t fattr4_link_support; typedef bool_t fattr4_symlink_support; typedef bool_t fattr4_named_attr; typedef fsid4 fattr4_fsid; typedef bool_t fattr4_unique_handles; typedef nfs_lease4 fattr4_lease_time; typedef nfsstat4 fattr4_rdattr_error; typedef struct { u_int fattr4_acl_len; nfsace4 *fattr4_acl_val; } fattr4_acl; typedef bool_t fattr4_archive; typedef bool_t fattr4_cansettime; typedef bool_t fattr4_case_insensitive; typedef bool_t fattr4_case_preserving; typedef bool_t fattr4_chown_restricted; typedef uint64_t fattr4_fileid; typedef uint64_t fattr4_files_avail; typedef nfs_fh4 fattr4_filehandle; typedef uint64_t fattr4_files_free; typedef uint64_t fattr4_files_total; typedef fs_locations4 fattr4_fs_locations; typedef bool_t fattr4_hidden; typedef bool_t fattr4_homogeneous; typedef uint64_t fattr4_maxfilesize; typedef uint32_t fattr4_maxlink; typedef uint32_t fattr4_maxname; typedef uint64_t fattr4_maxread; typedef uint64_t fattr4_maxwrite; typedef utf8str_cs fattr4_mimetype; typedef mode4 fattr4_mode; typedef mode_masked4 fattr4_mode_set_masked; typedef uint64_t fattr4_mounted_on_fileid; typedef bool_t fattr4_no_trunc; typedef uint32_t fattr4_numlinks; typedef utf8str_mixed fattr4_owner; typedef utf8str_mixed fattr4_owner_group; typedef uint64_t fattr4_quota_avail_hard; typedef uint64_t fattr4_quota_avail_soft; typedef uint64_t fattr4_quota_used; typedef specdata4 fattr4_rawdev; typedef uint64_t fattr4_space_avail; typedef uint64_t fattr4_space_free; typedef uint64_t fattr4_space_total; typedef uint64_t fattr4_space_used; typedef bool_t fattr4_system; typedef nfstime4 fattr4_time_access; typedef settime4 fattr4_time_access_set; typedef nfstime4 fattr4_time_backup; typedef nfstime4 fattr4_time_create; typedef nfstime4 fattr4_time_delta; typedef nfstime4 fattr4_time_metadata; typedef nfstime4 fattr4_time_modify; typedef settime4 fattr4_time_modify_set; typedef bitmap4 fattr4_suppattr_exclcreat; typedef nfstime4 fattr4_dir_notif_delay; typedef nfstime4 fattr4_dirent_notif_delay; typedef struct { u_int fattr4_fs_layout_types_len; layouttype4 *fattr4_fs_layout_types_val; } fattr4_fs_layout_types; typedef fs4_status fattr4_fs_status; typedef fs_charset_cap4 fattr4_fs_charset_cap; typedef uint32_t fattr4_layout_alignment; typedef uint32_t fattr4_layout_blksize; typedef layouthint4 fattr4_layout_hint; typedef struct { u_int fattr4_layout_types_len; layouttype4 *fattr4_layout_types_val; } fattr4_layout_types; typedef mdsthreshold4 fattr4_mdsthreshold; typedef retention_get4 fattr4_retention_get; typedef retention_set4 fattr4_retention_set; typedef retention_get4 fattr4_retentevt_get; typedef retention_set4 fattr4_retentevt_set; typedef uint64_t fattr4_retention_hold; typedef nfsacl41 fattr4_dacl; typedef nfsacl41 fattr4_sacl; typedef change_policy4 fattr4_change_policy; /* * REQUIRED Attributes */ const uint32_t FATTR4_SUPPORTED_ATTRS {0}; const uint32_t FATTR4_TYPE {1}; const uint32_t FATTR4_FH_EXPIRE_TYPE {2}; const uint32_t FATTR4_CHANGE {3}; const uint32_t FATTR4_SIZE {4}; const uint32_t FATTR4_LINK_SUPPORT {5}; const uint32_t FATTR4_SYMLINK_SUPPORT {6}; const uint32_t FATTR4_NAMED_ATTR {7}; const uint32_t FATTR4_FSID {8}; const uint32_t FATTR4_UNIQUE_HANDLES {9}; const uint32_t FATTR4_LEASE_TIME {10}; const uint32_t FATTR4_RDATTR_ERROR {11}; const uint32_t FATTR4_FILEHANDLE {19}; /* new to NFSV4.1 */ const uint32_t FATTR4_SUPPATTR_EXCLCREAT {75}; /* * RECOMMENDED Attributes */ const uint32_t FATTR4_ACL {12}; const uint32_t FATTR4_ACLSUPPORT {13}; const uint32_t FATTR4_ARCHIVE {14}; const uint32_t FATTR4_CANSETTIME {15}; const uint32_t FATTR4_CASE_INSENSITIVE {16}; const uint32_t FATTR4_CASE_PRESERVING {17}; const uint32_t FATTR4_CHOWN_RESTRICTED {18}; const uint32_t FATTR4_FILEID {20}; const uint32_t FATTR4_FILES_AVAIL {21}; const uint32_t FATTR4_FILES_FREE {22}; const uint32_t FATTR4_FILES_TOTAL {23}; const uint32_t FATTR4_FS_LOCATIONS {24}; const uint32_t FATTR4_HIDDEN {25}; const uint32_t FATTR4_HOMOGENEOUS {26}; const uint32_t FATTR4_MAXFILESIZE {27}; const uint32_t FATTR4_MAXLINK {28}; const uint32_t FATTR4_MAXNAME {29}; const uint32_t FATTR4_MAXREAD {30}; const uint32_t FATTR4_MAXWRITE {31}; const uint32_t FATTR4_MIMETYPE {32}; const uint32_t FATTR4_MODE {33}; const uint32_t FATTR4_NO_TRUNC {34}; const uint32_t FATTR4_NUMLINKS {35}; const uint32_t FATTR4_OWNER {36}; const uint32_t FATTR4_OWNER_GROUP {37}; const uint32_t FATTR4_QUOTA_AVAIL_HARD {38}; const uint32_t FATTR4_QUOTA_AVAIL_SOFT {39}; const uint32_t FATTR4_QUOTA_USED {40}; const uint32_t FATTR4_RAWDEV {41}; const uint32_t FATTR4_SPACE_AVAIL {42}; const uint32_t FATTR4_SPACE_FREE {43}; const uint32_t FATTR4_SPACE_TOTAL {44}; const uint32_t FATTR4_SPACE_USED {45}; const uint32_t FATTR4_SYSTEM {46}; const uint32_t FATTR4_TIME_ACCESS {47}; const uint32_t FATTR4_TIME_ACCESS_SET {48}; const uint32_t FATTR4_TIME_BACKUP {49}; const uint32_t FATTR4_TIME_CREATE {50}; const uint32_t FATTR4_TIME_DELTA {51}; const uint32_t FATTR4_TIME_METADATA {52}; const uint32_t FATTR4_TIME_MODIFY {53}; const uint32_t FATTR4_TIME_MODIFY_SET {54}; const uint32_t FATTR4_MOUNTED_ON_FILEID {55}; /* new to NFSV4.1 */ const uint32_t FATTR4_DIR_NOTIF_DELAY {56}; const uint32_t FATTR4_DIRENT_NOTIF_DELAY {57}; const uint32_t FATTR4_DACL {58}; const uint32_t FATTR4_SACL {59}; const uint32_t FATTR4_CHANGE_POLICY {60}; const uint32_t FATTR4_FS_STATUS {61}; const uint32_t FATTR4_FS_LAYOUT_TYPES {62}; const uint32_t FATTR4_LAYOUT_HINT {63}; const uint32_t FATTR4_LAYOUT_TYPES {64}; const uint32_t FATTR4_LAYOUT_BLKSIZE {65}; const uint32_t FATTR4_LAYOUT_ALIGNMENT {66}; const uint32_t FATTR4_FS_LOCATIONS_INFO {67}; const uint32_t FATTR4_MDSTHRESHOLD {68}; const uint32_t FATTR4_RETENTION_GET {69}; const uint32_t FATTR4_RETENTION_SET {70}; const uint32_t FATTR4_RETENTEVT_GET {71}; const uint32_t FATTR4_RETENTEVT_SET {72}; const uint32_t FATTR4_RETENTION_HOLD {73}; const uint32_t FATTR4_MODE_SET_MASKED {74}; const uint32_t FATTR4_FS_CHARSET_CAP {76}; struct fattr4 { bitmap4 attrmask; attrlist4 attr_vals; }; typedef struct fattr4 fattr4; struct change_info4 { bool_t atomic; changeid4 before; changeid4 after; }; typedef struct change_info4 change_info4; typedef netaddr4 clientaddr4; struct cb_client4 { uint32_t cb_program; netaddr4 cb_location; }; typedef struct cb_client4 cb_client4; struct nfs_client_id4 { verifier4 verifier; struct { u_int id_len; char *id_val; } id; }; typedef struct nfs_client_id4 nfs_client_id4; struct client_owner4 { verifier4 co_verifier; struct { u_int co_ownerid_len; char *co_ownerid_val; } co_ownerid; }; typedef struct client_owner4 client_owner4; struct server_owner4 { uint64_t so_minor_id; struct { u_int so_major_id_len; char *so_major_id_val; } so_major_id; }; typedef struct server_owner4 server_owner4; struct state_owner4 { clientid4 clientid; struct { u_int owner_len; char *owner_val; } owner; }; typedef struct state_owner4 state_owner4; typedef state_owner4 open_owner4; typedef state_owner4 lock_owner4; enum nfs_lock_type4 { READ_LT = 1, WRITE_LT = 2, READW_LT = 3, WRITEW_LT = 4, }; typedef enum nfs_lock_type4 nfs_lock_type4; /* Input for computing subkeys */ enum ssv_subkey4 { SSV4_SUBKEY_MIC_I2T = 1, SSV4_SUBKEY_MIC_T2I = 2, SSV4_SUBKEY_SEAL_I2T = 3, SSV4_SUBKEY_SEAL_T2I = 4, }; typedef enum ssv_subkey4 ssv_subkey4; /* Input for computing smt_hmac */ struct ssv_mic_plain_tkn4 { uint32_t smpt_ssv_seq; struct { u_int smpt_orig_plain_len; char *smpt_orig_plain_val; } smpt_orig_plain; }; typedef struct ssv_mic_plain_tkn4 ssv_mic_plain_tkn4; /* SSV GSS PerMsgToken token */ struct ssv_mic_tkn4 { uint32_t smt_ssv_seq; struct { u_int smt_hmac_len; char *smt_hmac_val; } smt_hmac; }; typedef struct ssv_mic_tkn4 ssv_mic_tkn4; /* Input for computing ssct_encr_data and ssct_hmac */ struct ssv_seal_plain_tkn4 { struct { u_int sspt_confounder_len; char *sspt_confounder_val; } sspt_confounder; uint32_t sspt_ssv_seq; struct { u_int sspt_orig_plain_len; char *sspt_orig_plain_val; } sspt_orig_plain; struct { u_int sspt_pad_len; char *sspt_pad_val; } sspt_pad; }; typedef struct ssv_seal_plain_tkn4 ssv_seal_plain_tkn4; /* SSV GSS SealedMessage token */ struct ssv_seal_cipher_tkn4 { uint32_t ssct_ssv_seq; struct { u_int ssct_iv_len; char *ssct_iv_val; } ssct_iv; struct { u_int ssct_encr_data_len; char *ssct_encr_data_val; } ssct_encr_data; struct { u_int ssct_hmac_len; char *ssct_hmac_val; } ssct_hmac; }; typedef struct ssv_seal_cipher_tkn4 ssv_seal_cipher_tkn4; struct fs_locations_server4 { int32_t fls_currency; struct { u_int fls_info_len; char *fls_info_val; } fls_info; utf8str_cis fls_server; }; typedef struct fs_locations_server4 fs_locations_server4; const uint32_t FSLI4BX_GFLAGS {0}; const uint32_t FSLI4BX_TFLAGS {1}; const uint32_t FSLI4BX_CLSIMUL {2}; const uint32_t FSLI4BX_CLHANDLE {3}; const uint32_t FSLI4BX_CLFILEID {4}; const uint32_t FSLI4BX_CLWRITEVER {5}; const uint32_t FSLI4BX_CLCHANGE {6}; const uint32_t FSLI4BX_CLREADDIR {7}; const uint32_t FSLI4BX_READRANK {8}; const uint32_t FSLI4BX_WRITERANK {9}; const uint32_t FSLI4BX_READORDER {10}; const uint32_t FSLI4BX_WRITEORDER {11}; const uint32_t FSLI4GF_WRITABLE {0x01}; const uint32_t FSLI4GF_CUR_REQ {0x02}; const uint32_t FSLI4GF_ABSENT {0x04}; const uint32_t FSLI4GF_GOING {0x08}; const uint32_t FSLI4GF_SPLIT {0x10}; const uint32_t FSLI4TF_RDMA {0x01}; struct fs_locations_item4 { struct { u_int fli_entries_len; fs_locations_server4 *fli_entries_val; } fli_entries; pathname4 fli_rootpath; }; typedef struct fs_locations_item4 fs_locations_item4; struct fs_locations_info4 { uint32_t fli_flags; int32_t fli_valid_for; pathname4 fli_fs_root; struct { u_int fli_items_len; fs_locations_item4 *fli_items_val; } fli_items; }; typedef struct fs_locations_info4 fs_locations_info4; const uint32_t FSLI4IF_VAR_SUB {0x00000001}; typedef fs_locations_info4 fattr4_fs_locations_info; const uint32_t NFL4_UFLG_MASK {0x0000003F}; const uint32_t NFL4_UFLG_DENSE {0x00000001}; const uint32_t NFL4_UFLG_COMMIT_THRU_MDS {0x00000002}; const uint32_t NFL4_UFLG_STRIPE_UNIT_SIZE_MASK {0xFFFFFFC0}; typedef uint32_t nfl_util4; enum filelayout_hint_care4 { NFLH4_CARE_DENSE = NFL4_UFLG_DENSE, NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS, NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040, NFLH4_CARE_STRIPE_COUNT = 0x00000080, }; typedef enum filelayout_hint_care4 filelayout_hint_care4; /* Encoded in the loh_body field of data type layouthint4: */ struct nfsv4_1_file_layouthint4 { uint32_t nflh_care; nfl_util4 nflh_util; count4 nflh_stripe_count; }; typedef struct nfsv4_1_file_layouthint4 nfsv4_1_file_layouthint4; typedef struct { u_int multipath_list4_len; netaddr4 *multipath_list4_val; } multipath_list4; /* * Encoded in the da_addr_body field of * data type device_addr4: */ struct nfsv4_1_file_layout_ds_addr4 { struct { u_int nflda_stripe_indices_len; uint32_t *nflda_stripe_indices_val; } nflda_stripe_indices; struct { u_int nflda_multipath_ds_list_len; multipath_list4 *nflda_multipath_ds_list_val; } nflda_multipath_ds_list; }; typedef struct nfsv4_1_file_layout_ds_addr4 nfsv4_1_file_layout_ds_addr4; /* * Encoded in the loc_body field of * data type layout_content4: */ struct nfsv4_1_file_layout4 { deviceid4 nfl_deviceid; nfl_util4 nfl_util; uint32_t nfl_first_stripe_index; offset4 nfl_pattern_offset; struct { u_int nfl_fh_list_len; nfs_fh4 *nfl_fh_list_val; } nfl_fh_list; }; typedef struct nfsv4_1_file_layout4 nfsv4_1_file_layout4; /* * Encoded in the lou_body field of data type layoutupdate4: * Nothing. lou_body is a zero length array of bytes. */ /* * Encoded in the lrf_body field of * data type layoutreturn_file4: * Nothing. lrf_body is a zero length array of bytes. */ const uint32_t ACCESS4_READ {0x00000001}; const uint32_t ACCESS4_LOOKUP {0x00000002}; const uint32_t ACCESS4_MODIFY {0x00000004}; const uint32_t ACCESS4_EXTEND {0x00000008}; const uint32_t ACCESS4_DELETE {0x00000010}; const uint32_t ACCESS4_EXECUTE {0x00000020}; // for compatibility struct NULL4args { bool t {}; }; typedef struct NULL4args NULL4args; // for compatibility struct NULL4res { bool t {}; }; typedef struct NULL4res NULL4res; struct ACCESS4args { uint32_t access; }; typedef struct ACCESS4args ACCESS4args; struct ACCESS4resok { uint32_t supported; uint32_t access; }; typedef struct ACCESS4resok ACCESS4resok; struct ACCESS4res { nfsstat4 status; union { ACCESS4resok resok4; } ACCESS4res_u; }; typedef struct ACCESS4res ACCESS4res; struct CLOSE4args { seqid4 seqid; stateid4 open_stateid; }; typedef struct CLOSE4args CLOSE4args; struct CLOSE4res { nfsstat4 status; union { stateid4 open_stateid; } CLOSE4res_u; }; typedef struct CLOSE4res CLOSE4res; struct COMMIT4args { offset4 offset; count4 count; }; typedef struct COMMIT4args COMMIT4args; struct COMMIT4resok { verifier4 writeverf; }; typedef struct COMMIT4resok COMMIT4resok; struct COMMIT4res { nfsstat4 status; union { COMMIT4resok resok4; } COMMIT4res_u; }; typedef struct COMMIT4res COMMIT4res; struct createtype4 { nfs_ftype4 type; union { linktext4 linkdata; specdata4 devdata; } createtype4_u; }; typedef struct createtype4 createtype4; struct CREATE4args { createtype4 objtype; component4 objname; fattr4 createattrs; }; typedef struct CREATE4args CREATE4args; struct CREATE4resok { change_info4 cinfo; bitmap4 attrset; }; typedef struct CREATE4resok CREATE4resok; struct CREATE4res { nfsstat4 status; union { CREATE4resok resok4; } CREATE4res_u; }; typedef struct CREATE4res CREATE4res; struct DELEGPURGE4args { clientid4 clientid; }; typedef struct DELEGPURGE4args DELEGPURGE4args; struct DELEGPURGE4res { nfsstat4 status; }; typedef struct DELEGPURGE4res DELEGPURGE4res; struct DELEGRETURN4args { stateid4 deleg_stateid; }; typedef struct DELEGRETURN4args DELEGRETURN4args; struct DELEGRETURN4res { nfsstat4 status; }; typedef struct DELEGRETURN4res DELEGRETURN4res; struct GETATTR4args { bitmap4 attr_request; }; typedef struct GETATTR4args GETATTR4args; struct GETATTR4resok { fattr4 obj_attributes; }; typedef struct GETATTR4resok GETATTR4resok; struct GETATTR4res { nfsstat4 status; union { GETATTR4resok resok4; } GETATTR4res_u; }; typedef struct GETATTR4res GETATTR4res; struct GETFH4resok { nfs_fh4 object; }; typedef struct GETFH4resok GETFH4resok; struct GETFH4res { nfsstat4 status; union { GETFH4resok resok4; } GETFH4res_u; }; typedef struct GETFH4res GETFH4res; struct LINK4args { component4 newname; }; typedef struct LINK4args LINK4args; struct LINK4resok { change_info4 cinfo; }; typedef struct LINK4resok LINK4resok; struct LINK4res { nfsstat4 status; union { LINK4resok resok4; } LINK4res_u; }; typedef struct LINK4res LINK4res; struct open_to_lock_owner4 { seqid4 open_seqid; stateid4 open_stateid; seqid4 lock_seqid; lock_owner4 lock_owner; }; typedef struct open_to_lock_owner4 open_to_lock_owner4; struct exist_lock_owner4 { stateid4 lock_stateid; seqid4 lock_seqid; }; typedef struct exist_lock_owner4 exist_lock_owner4; struct locker4 { bool_t new_lock_owner; union { open_to_lock_owner4 open_owner; exist_lock_owner4 lock_owner; } locker4_u; }; typedef struct locker4 locker4; struct LOCK4args { nfs_lock_type4 locktype; bool_t reclaim; offset4 offset; length4 length; locker4 locker; }; typedef struct LOCK4args LOCK4args; struct LOCK4denied { offset4 offset; length4 length; nfs_lock_type4 locktype; lock_owner4 owner; }; typedef struct LOCK4denied LOCK4denied; struct LOCK4resok { stateid4 lock_stateid; }; typedef struct LOCK4resok LOCK4resok; struct LOCK4res { nfsstat4 status; union { LOCK4resok resok4; LOCK4denied denied; } LOCK4res_u; }; typedef struct LOCK4res LOCK4res; struct LOCKT4args { nfs_lock_type4 locktype; offset4 offset; length4 length; lock_owner4 owner; }; typedef struct LOCKT4args LOCKT4args; struct LOCKT4res { nfsstat4 status; union { LOCK4denied denied; } LOCKT4res_u; }; typedef struct LOCKT4res LOCKT4res; struct LOCKU4args { nfs_lock_type4 locktype; seqid4 seqid; stateid4 lock_stateid; offset4 offset; length4 length; }; typedef struct LOCKU4args LOCKU4args; struct LOCKU4res { nfsstat4 status; union { stateid4 lock_stateid; } LOCKU4res_u; }; typedef struct LOCKU4res LOCKU4res; struct LOOKUP4args { component4 objname; }; typedef struct LOOKUP4args LOOKUP4args; struct LOOKUP4res { nfsstat4 status; }; typedef struct LOOKUP4res LOOKUP4res; struct LOOKUPP4res { nfsstat4 status; }; typedef struct LOOKUPP4res LOOKUPP4res; struct NVERIFY4args { fattr4 obj_attributes; }; typedef struct NVERIFY4args NVERIFY4args; struct NVERIFY4res { nfsstat4 status; }; typedef struct NVERIFY4res NVERIFY4res; enum createmode4 { UNCHECKED4 = 0, GUARDED4 = 1, EXCLUSIVE4 = 2, EXCLUSIVE4_1 = 3, }; typedef enum createmode4 createmode4; struct creatverfattr { verifier4 cva_verf; fattr4 cva_attrs; }; typedef struct creatverfattr creatverfattr; struct createhow4 { createmode4 mode; union { fattr4 createattrs; verifier4 createverf; creatverfattr ch_createboth; } createhow4_u; }; typedef struct createhow4 createhow4; enum opentype4 { OPEN4_NOCREATE = 0, OPEN4_CREATE = 1, }; typedef enum opentype4 opentype4; struct openflag4 { opentype4 opentype; union { createhow4 how; } openflag4_u; }; typedef struct openflag4 openflag4; enum limit_by4 { NFS_LIMIT_SIZE = 1, NFS_LIMIT_BLOCKS = 2, }; typedef enum limit_by4 limit_by4; struct nfs_modified_limit4 { uint32_t num_blocks; uint32_t bytes_per_block; }; typedef struct nfs_modified_limit4 nfs_modified_limit4; struct nfs_space_limit4 { limit_by4 limitby; union { uint64_t filesize; nfs_modified_limit4 mod_blocks; } nfs_space_limit4_u; }; typedef struct nfs_space_limit4 nfs_space_limit4; const uint32_t OPEN4_SHARE_ACCESS_READ {0x00000001}; const uint32_t OPEN4_SHARE_ACCESS_WRITE {0x00000002}; const uint32_t OPEN4_SHARE_ACCESS_BOTH {0x00000003}; const uint32_t OPEN4_SHARE_DENY_NONE {0x00000000}; const uint32_t OPEN4_SHARE_DENY_READ {0x00000001}; const uint32_t OPEN4_SHARE_DENY_WRITE {0x00000002}; const uint32_t OPEN4_SHARE_DENY_BOTH {0x00000003}; const uint32_t OPEN4_SHARE_ACCESS_WANT_DELEG_MASK {0xFF00}; const uint32_t OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE {0x0000}; const uint32_t OPEN4_SHARE_ACCESS_WANT_READ_DELEG {0x0100}; const uint32_t OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG {0x0200}; const uint32_t OPEN4_SHARE_ACCESS_WANT_ANY_DELEG {0x0300}; const uint32_t OPEN4_SHARE_ACCESS_WANT_NO_DELEG {0x0400}; const uint32_t OPEN4_SHARE_ACCESS_WANT_CANCEL {0x0500}; const uint32_t OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL {0x10000}; const uint32_t OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED {0x20000}; enum open_delegation_type4 { OPEN_DELEGATE_NONE = 0, OPEN_DELEGATE_READ = 1, OPEN_DELEGATE_WRITE = 2, OPEN_DELEGATE_NONE_EXT = 3, }; typedef enum open_delegation_type4 open_delegation_type4; enum open_claim_type4 { CLAIM_NULL = 0, CLAIM_PREVIOUS = 1, CLAIM_DELEGATE_CUR = 2, CLAIM_DELEGATE_PREV = 3, CLAIM_FH = 4, CLAIM_DELEG_CUR_FH = 5, CLAIM_DELEG_PREV_FH = 6, }; typedef enum open_claim_type4 open_claim_type4; struct open_claim_delegate_cur4 { stateid4 delegate_stateid; component4 file; }; typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4; struct open_claim4 { open_claim_type4 claim; union { component4 file; open_delegation_type4 delegate_type; open_claim_delegate_cur4 delegate_cur_info; component4 file_delegate_prev; stateid4 oc_delegate_stateid; } open_claim4_u; }; typedef struct open_claim4 open_claim4; struct OPEN4args { seqid4 seqid; uint32_t share_access; uint32_t share_deny; open_owner4 owner; openflag4 openhow; open_claim4 claim; }; typedef struct OPEN4args OPEN4args; struct open_read_delegation4 { stateid4 stateid; bool_t recall; nfsace4 permissions; }; typedef struct open_read_delegation4 open_read_delegation4; struct open_write_delegation4 { stateid4 stateid; bool_t recall; nfs_space_limit4 space_limit; nfsace4 permissions; }; typedef struct open_write_delegation4 open_write_delegation4; enum why_no_delegation4 { WND4_NOT_WANTED = 0, WND4_CONTENTION = 1, WND4_RESOURCE = 2, WND4_NOT_SUPP_FTYPE = 3, WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, WND4_NOT_SUPP_UPGRADE = 5, WND4_NOT_SUPP_DOWNGRADE = 6, WND4_CANCELLED = 7, WND4_IS_DIR = 8, }; typedef enum why_no_delegation4 why_no_delegation4; struct open_none_delegation4 { why_no_delegation4 ond_why; union { bool_t ond_server_will_push_deleg; bool_t ond_server_will_signal_avail; } open_none_delegation4_u; }; typedef struct open_none_delegation4 open_none_delegation4; struct open_delegation4 { open_delegation_type4 delegation_type; union { open_read_delegation4 read; open_write_delegation4 write; open_none_delegation4 od_whynone; } open_delegation4_u; }; typedef struct open_delegation4 open_delegation4; const uint32_t OPEN4_RESULT_CONFIRM {0x00000002}; const uint32_t OPEN4_RESULT_LOCKTYPE_POSIX {0x00000004}; const uint32_t OPEN4_RESULT_PRESERVE_UNLINKED {0x00000008}; const uint32_t OPEN4_RESULT_MAY_NOTIFY_LOCK {0x00000020}; struct OPEN4resok { stateid4 stateid; change_info4 cinfo; uint32_t rflags; bitmap4 attrset; open_delegation4 delegation; }; typedef struct OPEN4resok OPEN4resok; struct OPEN4res { nfsstat4 status; union { OPEN4resok resok4; } OPEN4res_u; }; typedef struct OPEN4res OPEN4res; struct OPENATTR4args { bool_t createdir; }; typedef struct OPENATTR4args OPENATTR4args; struct OPENATTR4res { nfsstat4 status; }; typedef struct OPENATTR4res OPENATTR4res; struct OPEN_CONFIRM4args { stateid4 open_stateid; seqid4 seqid; }; typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args; struct OPEN_CONFIRM4resok { stateid4 open_stateid; }; typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok; struct OPEN_CONFIRM4res { nfsstat4 status; union { OPEN_CONFIRM4resok resok4; } OPEN_CONFIRM4res_u; }; typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res; struct OPEN_DOWNGRADE4args { stateid4 open_stateid; seqid4 seqid; uint32_t share_access; uint32_t share_deny; }; typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args; struct OPEN_DOWNGRADE4resok { stateid4 open_stateid; }; typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok; struct OPEN_DOWNGRADE4res { nfsstat4 status; union { OPEN_DOWNGRADE4resok resok4; } OPEN_DOWNGRADE4res_u; }; typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res; struct PUTFH4args { nfs_fh4 object; }; typedef struct PUTFH4args PUTFH4args; struct PUTFH4res { nfsstat4 status; }; typedef struct PUTFH4res PUTFH4res; struct PUTPUBFH4res { nfsstat4 status; }; typedef struct PUTPUBFH4res PUTPUBFH4res; struct PUTROOTFH4res { nfsstat4 status; }; typedef struct PUTROOTFH4res PUTROOTFH4res; struct READ4args { stateid4 stateid; offset4 offset; count4 count; }; typedef struct READ4args READ4args; struct READ4resok { bool_t eof; struct { u_int data_len; char *data_val; } data; }; typedef struct READ4resok READ4resok; struct READ4res { nfsstat4 status; union { READ4resok resok4; } READ4res_u; }; typedef struct READ4res READ4res; struct READDIR4args { nfs_cookie4 cookie; verifier4 cookieverf; count4 dircount; count4 maxcount; bitmap4 attr_request; }; typedef struct READDIR4args READDIR4args; struct entry4 { nfs_cookie4 cookie; component4 name; fattr4 attrs; struct entry4 *nextentry; }; typedef struct entry4 entry4; struct dirlist4 { entry4 *entries; bool_t eof; }; typedef struct dirlist4 dirlist4; struct READDIR4resok { verifier4 cookieverf; dirlist4 reply; }; typedef struct READDIR4resok READDIR4resok; struct READDIR4res { nfsstat4 status; union { READDIR4resok resok4; } READDIR4res_u; }; typedef struct READDIR4res READDIR4res; struct READLINK4resok { linktext4 link; }; typedef struct READLINK4resok READLINK4resok; struct READLINK4res { nfsstat4 status; union { READLINK4resok resok4; } READLINK4res_u; }; typedef struct READLINK4res READLINK4res; struct REMOVE4args { component4 target; }; typedef struct REMOVE4args REMOVE4args; struct REMOVE4resok { change_info4 cinfo; }; typedef struct REMOVE4resok REMOVE4resok; struct REMOVE4res { nfsstat4 status; union { REMOVE4resok resok4; } REMOVE4res_u; }; typedef struct REMOVE4res REMOVE4res; struct RENAME4args { component4 oldname; component4 newname; }; typedef struct RENAME4args RENAME4args; struct RENAME4resok { change_info4 source_cinfo; change_info4 target_cinfo; }; typedef struct RENAME4resok RENAME4resok; struct RENAME4res { nfsstat4 status; union { RENAME4resok resok4; } RENAME4res_u; }; typedef struct RENAME4res RENAME4res; struct RENEW4args { clientid4 clientid; }; typedef struct RENEW4args RENEW4args; struct RENEW4res { nfsstat4 status; }; typedef struct RENEW4res RENEW4res; struct RESTOREFH4res { nfsstat4 status; }; typedef struct RESTOREFH4res RESTOREFH4res; struct SAVEFH4res { nfsstat4 status; }; typedef struct SAVEFH4res SAVEFH4res; struct SECINFO4args { component4 name; }; typedef struct SECINFO4args SECINFO4args; enum rpc_gss_svc_t { RPC_GSS_SVC_NONE = 1, RPC_GSS_SVC_INTEGRITY = 2, RPC_GSS_SVC_PRIVACY = 3, }; typedef enum rpc_gss_svc_t rpc_gss_svc_t; struct rpcsec_gss_info { sec_oid4 oid; qop4 qop; rpc_gss_svc_t service; }; typedef struct rpcsec_gss_info rpcsec_gss_info; struct secinfo4 { uint32_t flavor; union { rpcsec_gss_info flavor_info; } secinfo4_u; }; typedef struct secinfo4 secinfo4; typedef struct { u_int SECINFO4resok_len; secinfo4 *SECINFO4resok_val; } SECINFO4resok; struct SECINFO4res { nfsstat4 status; union { SECINFO4resok resok4; } SECINFO4res_u; }; typedef struct SECINFO4res SECINFO4res; struct SETATTR4args { stateid4 stateid; fattr4 obj_attributes; }; typedef struct SETATTR4args SETATTR4args; struct SETATTR4res { nfsstat4 status; bitmap4 attrsset; }; typedef struct SETATTR4res SETATTR4res; struct SETCLIENTID4args { nfs_client_id4 client; cb_client4 callback; uint32_t callback_ident; }; typedef struct SETCLIENTID4args SETCLIENTID4args; struct SETCLIENTID4resok { clientid4 clientid; verifier4 setclientid_confirm; }; typedef struct SETCLIENTID4resok SETCLIENTID4resok; struct SETCLIENTID4res { nfsstat4 status; union { SETCLIENTID4resok resok4; clientaddr4 client_using; } SETCLIENTID4res_u; }; typedef struct SETCLIENTID4res SETCLIENTID4res; struct SETCLIENTID_CONFIRM4args { clientid4 clientid; verifier4 setclientid_confirm; }; typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args; struct SETCLIENTID_CONFIRM4res { nfsstat4 status; }; typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res; struct VERIFY4args { fattr4 obj_attributes; }; typedef struct VERIFY4args VERIFY4args; struct VERIFY4res { nfsstat4 status; }; typedef struct VERIFY4res VERIFY4res; enum stable_how4 { UNSTABLE4 = 0, DATA_SYNC4 = 1, FILE_SYNC4 = 2, }; typedef enum stable_how4 stable_how4; struct WRITE4args { stateid4 stateid; offset4 offset; stable_how4 stable; struct { u_int data_len; char *data_val; } data; }; typedef struct WRITE4args WRITE4args; struct WRITE4resok { count4 count; stable_how4 committed; verifier4 writeverf; }; typedef struct WRITE4resok WRITE4resok; struct WRITE4res { nfsstat4 status; union { WRITE4resok resok4; } WRITE4res_u; }; typedef struct WRITE4res WRITE4res; struct RELEASE_LOCKOWNER4args { lock_owner4 lock_owner; }; typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args; struct RELEASE_LOCKOWNER4res { nfsstat4 status; }; typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res; struct ILLEGAL4res { nfsstat4 status; }; typedef struct ILLEGAL4res ILLEGAL4res; typedef struct { u_int gsshandle4_t_len; char *gsshandle4_t_val; } gsshandle4_t; struct gss_cb_handles4 { rpc_gss_svc_t gcbp_service; gsshandle4_t gcbp_handle_from_server; gsshandle4_t gcbp_handle_from_client; }; typedef struct gss_cb_handles4 gss_cb_handles4; struct callback_sec_parms4 { uint32_t cb_secflavor; union { authunix_parms cbsp_sys_cred; gss_cb_handles4 cbsp_gss_handles; } callback_sec_parms4_u; }; typedef struct callback_sec_parms4 callback_sec_parms4; struct BACKCHANNEL_CTL4args { uint32_t bca_cb_program; struct { u_int bca_sec_parms_len; callback_sec_parms4 *bca_sec_parms_val; } bca_sec_parms; }; typedef struct BACKCHANNEL_CTL4args BACKCHANNEL_CTL4args; struct BACKCHANNEL_CTL4res { nfsstat4 bcr_status; }; typedef struct BACKCHANNEL_CTL4res BACKCHANNEL_CTL4res; enum channel_dir_from_client4 { CDFC4_FORE = 0x1, CDFC4_BACK = 0x2, CDFC4_FORE_OR_BOTH = 0x3, CDFC4_BACK_OR_BOTH = 0x7, }; typedef enum channel_dir_from_client4 channel_dir_from_client4; struct BIND_CONN_TO_SESSION4args { sessionid4 bctsa_sessid; channel_dir_from_client4 bctsa_dir; bool_t bctsa_use_conn_in_rdma_mode; }; typedef struct BIND_CONN_TO_SESSION4args BIND_CONN_TO_SESSION4args; enum channel_dir_from_server4 { CDFS4_FORE = 0x1, CDFS4_BACK = 0x2, CDFS4_BOTH = 0x3, }; typedef enum channel_dir_from_server4 channel_dir_from_server4; struct BIND_CONN_TO_SESSION4resok { sessionid4 bctsr_sessid; channel_dir_from_server4 bctsr_dir; bool_t bctsr_use_conn_in_rdma_mode; }; typedef struct BIND_CONN_TO_SESSION4resok BIND_CONN_TO_SESSION4resok; struct BIND_CONN_TO_SESSION4res { nfsstat4 bctsr_status; union { BIND_CONN_TO_SESSION4resok bctsr_resok4; } BIND_CONN_TO_SESSION4res_u; }; typedef struct BIND_CONN_TO_SESSION4res BIND_CONN_TO_SESSION4res; const uint32_t EXCHGID4_FLAG_SUPP_MOVED_REFER {0x00000001}; const uint32_t EXCHGID4_FLAG_SUPP_MOVED_MIGR {0x00000002}; const uint32_t EXCHGID4_FLAG_BIND_PRINC_STATEID {0x00000100}; const uint32_t EXCHGID4_FLAG_USE_NON_PNFS {0x00010000}; const uint32_t EXCHGID4_FLAG_USE_PNFS_MDS {0x00020000}; const uint32_t EXCHGID4_FLAG_USE_PNFS_DS {0x00040000}; const uint32_t EXCHGID4_FLAG_MASK_PNFS {0x00070000}; const uint32_t EXCHGID4_FLAG_UPD_CONFIRMED_REC_A {0x40000000}; const uint32_t EXCHGID4_FLAG_CONFIRMED_R {0x80000000}; struct state_protect_ops4 { bitmap4 spo_must_enforce; bitmap4 spo_must_allow; }; typedef struct state_protect_ops4 state_protect_ops4; struct ssv_sp_parms4 { state_protect_ops4 ssp_ops; struct { u_int ssp_hash_algs_len; sec_oid4 *ssp_hash_algs_val; } ssp_hash_algs; struct { u_int ssp_encr_algs_len; sec_oid4 *ssp_encr_algs_val; } ssp_encr_algs; uint32_t ssp_window; uint32_t ssp_num_gss_handles; }; typedef struct ssv_sp_parms4 ssv_sp_parms4; enum state_protect_how4 { SP4_NONE = 0, SP4_MACH_CRED = 1, SP4_SSV = 2, }; typedef enum state_protect_how4 state_protect_how4; struct state_protect4_a { state_protect_how4 spa_how; union { state_protect_ops4 spa_mach_ops; ssv_sp_parms4 spa_ssv_parms; } state_protect4_a_u; }; typedef struct state_protect4_a state_protect4_a; struct EXCHANGE_ID4args { client_owner4 eia_clientowner; uint32_t eia_flags; state_protect4_a eia_state_protect; struct { u_int eia_client_impl_id_len; nfs_impl_id4 *eia_client_impl_id_val; } eia_client_impl_id; }; typedef struct EXCHANGE_ID4args EXCHANGE_ID4args; struct ssv_prot_info4 { state_protect_ops4 spi_ops; uint32_t spi_hash_alg; uint32_t spi_encr_alg; uint32_t spi_ssv_len; uint32_t spi_window; struct { u_int spi_handles_len; gsshandle4_t *spi_handles_val; } spi_handles; }; typedef struct ssv_prot_info4 ssv_prot_info4; struct state_protect4_r { state_protect_how4 spr_how; union { state_protect_ops4 spr_mach_ops; ssv_prot_info4 spr_ssv_info; } state_protect4_r_u; }; typedef struct state_protect4_r state_protect4_r; struct EXCHANGE_ID4resok { clientid4 eir_clientid; sequenceid4 eir_sequenceid; uint32_t eir_flags; state_protect4_r eir_state_protect; server_owner4 eir_server_owner; struct { u_int eir_server_scope_len; char *eir_server_scope_val; } eir_server_scope; struct { u_int eir_server_impl_id_len; nfs_impl_id4 *eir_server_impl_id_val; } eir_server_impl_id; }; typedef struct EXCHANGE_ID4resok EXCHANGE_ID4resok; struct EXCHANGE_ID4res { nfsstat4 eir_status; union { EXCHANGE_ID4resok eir_resok4; } EXCHANGE_ID4res_u; }; typedef struct EXCHANGE_ID4res EXCHANGE_ID4res; struct channel_attrs4 { count4 ca_headerpadsize; count4 ca_maxrequestsize; count4 ca_maxresponsesize; count4 ca_maxresponsesize_cached; count4 ca_maxoperations; count4 ca_maxrequests; struct { u_int ca_rdma_ird_len; uint32_t *ca_rdma_ird_val; } ca_rdma_ird; }; typedef struct channel_attrs4 channel_attrs4; const uint32_t CREATE_SESSION4_FLAG_PERSIST {0x00000001}; const uint32_t CREATE_SESSION4_FLAG_CONN_BACK_CHAN {0x00000002}; const uint32_t CREATE_SESSION4_FLAG_CONN_RDMA {0x00000004}; struct CREATE_SESSION4args { clientid4 csa_clientid; sequenceid4 csa_sequence; uint32_t csa_flags; channel_attrs4 csa_fore_chan_attrs; channel_attrs4 csa_back_chan_attrs; uint32_t csa_cb_program; struct { u_int csa_sec_parms_len; callback_sec_parms4 *csa_sec_parms_val; } csa_sec_parms; }; typedef struct CREATE_SESSION4args CREATE_SESSION4args; struct CREATE_SESSION4resok { sessionid4 csr_sessionid; sequenceid4 csr_sequence; uint32_t csr_flags; channel_attrs4 csr_fore_chan_attrs; channel_attrs4 csr_back_chan_attrs; }; typedef struct CREATE_SESSION4resok CREATE_SESSION4resok; struct CREATE_SESSION4res { nfsstat4 csr_status; union { CREATE_SESSION4resok csr_resok4; } CREATE_SESSION4res_u; }; typedef struct CREATE_SESSION4res CREATE_SESSION4res; struct DESTROY_SESSION4args { sessionid4 dsa_sessionid; }; typedef struct DESTROY_SESSION4args DESTROY_SESSION4args; struct DESTROY_SESSION4res { nfsstat4 dsr_status; }; typedef struct DESTROY_SESSION4res DESTROY_SESSION4res; struct FREE_STATEID4args { stateid4 fsa_stateid; }; typedef struct FREE_STATEID4args FREE_STATEID4args; struct FREE_STATEID4res { nfsstat4 fsr_status; }; typedef struct FREE_STATEID4res FREE_STATEID4res; typedef nfstime4 attr_notice4; struct GET_DIR_DELEGATION4args { bool_t gdda_signal_deleg_avail; bitmap4 gdda_notification_types; attr_notice4 gdda_child_attr_delay; attr_notice4 gdda_dir_attr_delay; bitmap4 gdda_child_attributes; bitmap4 gdda_dir_attributes; }; typedef struct GET_DIR_DELEGATION4args GET_DIR_DELEGATION4args; struct GET_DIR_DELEGATION4resok { verifier4 gddr_cookieverf; stateid4 gddr_stateid; bitmap4 gddr_notification; bitmap4 gddr_child_attributes; bitmap4 gddr_dir_attributes; }; typedef struct GET_DIR_DELEGATION4resok GET_DIR_DELEGATION4resok; enum gddrnf4_status { GDD4_OK = 0, GDD4_UNAVAIL = 1, }; typedef enum gddrnf4_status gddrnf4_status; struct GET_DIR_DELEGATION4res_non_fatal { gddrnf4_status gddrnf_status; union { GET_DIR_DELEGATION4resok gddrnf_resok4; bool_t gddrnf_will_signal_deleg_avail; } GET_DIR_DELEGATION4res_non_fatal_u; }; typedef struct GET_DIR_DELEGATION4res_non_fatal GET_DIR_DELEGATION4res_non_fatal; struct GET_DIR_DELEGATION4res { nfsstat4 gddr_status; union { GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; } GET_DIR_DELEGATION4res_u; }; typedef struct GET_DIR_DELEGATION4res GET_DIR_DELEGATION4res; struct GETDEVICEINFO4args { deviceid4 gdia_device_id; layouttype4 gdia_layout_type; count4 gdia_maxcount; bitmap4 gdia_notify_types; }; typedef struct GETDEVICEINFO4args GETDEVICEINFO4args; struct GETDEVICEINFO4resok { device_addr4 gdir_device_addr; bitmap4 gdir_notification; }; typedef struct GETDEVICEINFO4resok GETDEVICEINFO4resok; struct GETDEVICEINFO4res { nfsstat4 gdir_status; union { GETDEVICEINFO4resok gdir_resok4; count4 gdir_mincount; } GETDEVICEINFO4res_u; }; typedef struct GETDEVICEINFO4res GETDEVICEINFO4res; struct GETDEVICELIST4args { layouttype4 gdla_layout_type; count4 gdla_maxdevices; nfs_cookie4 gdla_cookie; verifier4 gdla_cookieverf; }; typedef struct GETDEVICELIST4args GETDEVICELIST4args; struct GETDEVICELIST4resok { nfs_cookie4 gdlr_cookie; verifier4 gdlr_cookieverf; struct { u_int gdlr_deviceid_list_len; deviceid4 *gdlr_deviceid_list_val; } gdlr_deviceid_list; bool_t gdlr_eof; }; typedef struct GETDEVICELIST4resok GETDEVICELIST4resok; struct GETDEVICELIST4res { nfsstat4 gdlr_status; union { GETDEVICELIST4resok gdlr_resok4; } GETDEVICELIST4res_u; }; typedef struct GETDEVICELIST4res GETDEVICELIST4res; struct newtime4 { bool_t nt_timechanged; union { nfstime4 nt_time; } newtime4_u; }; typedef struct newtime4 newtime4; struct newoffset4 { bool_t no_newoffset; union { offset4 no_offset; } newoffset4_u; }; typedef struct newoffset4 newoffset4; struct LAYOUTCOMMIT4args { offset4 loca_offset; length4 loca_length; bool_t loca_reclaim; stateid4 loca_stateid; newoffset4 loca_last_write_offset; newtime4 loca_time_modify; layoutupdate4 loca_layoutupdate; }; typedef struct LAYOUTCOMMIT4args LAYOUTCOMMIT4args; struct newsize4 { bool_t ns_sizechanged; union { length4 ns_size; } newsize4_u; }; typedef struct newsize4 newsize4; struct LAYOUTCOMMIT4resok { newsize4 locr_newsize; }; typedef struct LAYOUTCOMMIT4resok LAYOUTCOMMIT4resok; struct LAYOUTCOMMIT4res { nfsstat4 locr_status; union { LAYOUTCOMMIT4resok locr_resok4; } LAYOUTCOMMIT4res_u; }; typedef struct LAYOUTCOMMIT4res LAYOUTCOMMIT4res; struct LAYOUTGET4args { bool_t loga_signal_layout_avail; layouttype4 loga_layout_type; layoutiomode4 loga_iomode; offset4 loga_offset; length4 loga_length; length4 loga_minlength; stateid4 loga_stateid; count4 loga_maxcount; }; typedef struct LAYOUTGET4args LAYOUTGET4args; struct LAYOUTGET4resok { bool_t logr_return_on_close; stateid4 logr_stateid; struct { u_int logr_layout_len; layout4 *logr_layout_val; } logr_layout; }; typedef struct LAYOUTGET4resok LAYOUTGET4resok; struct LAYOUTGET4res { nfsstat4 logr_status; union { LAYOUTGET4resok logr_resok4; bool_t logr_will_signal_layout_avail; } LAYOUTGET4res_u; }; typedef struct LAYOUTGET4res LAYOUTGET4res; struct LAYOUTRETURN4args { bool_t lora_reclaim; layouttype4 lora_layout_type; layoutiomode4 lora_iomode; layoutreturn4 lora_layoutreturn; }; typedef struct LAYOUTRETURN4args LAYOUTRETURN4args; struct layoutreturn_stateid { bool_t lrs_present; union { stateid4 lrs_stateid; } layoutreturn_stateid_u; }; typedef struct layoutreturn_stateid layoutreturn_stateid; struct LAYOUTRETURN4res { nfsstat4 lorr_status; union { layoutreturn_stateid lorr_stateid; } LAYOUTRETURN4res_u; }; typedef struct LAYOUTRETURN4res LAYOUTRETURN4res; enum secinfo_style4 { SECINFO_STYLE4_CURRENT_FH = 0, SECINFO_STYLE4_PARENT = 1, }; typedef enum secinfo_style4 secinfo_style4; typedef secinfo_style4 SECINFO_NO_NAME4args; typedef SECINFO4res SECINFO_NO_NAME4res; struct SEQUENCE4args { sessionid4 sa_sessionid; sequenceid4 sa_sequenceid; slotid4 sa_slotid; slotid4 sa_highest_slotid; bool_t sa_cachethis; }; typedef struct SEQUENCE4args SEQUENCE4args; const uint32_t SEQ4_STATUS_CB_PATH_DOWN {0x00000001}; const uint32_t SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING {0x00000002}; const uint32_t SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED {0x00000004}; const uint32_t SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED {0x00000008}; const uint32_t SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED {0x00000010}; const uint32_t SEQ4_STATUS_ADMIN_STATE_REVOKED {0x00000020}; const uint32_t SEQ4_STATUS_RECALLABLE_STATE_REVOKED {0x00000040}; const uint32_t SEQ4_STATUS_LEASE_MOVED {0x00000080}; const uint32_t SEQ4_STATUS_RESTART_RECLAIM_NEEDED {0x00000100}; const uint32_t SEQ4_STATUS_CB_PATH_DOWN_SESSION {0x00000200}; const uint32_t SEQ4_STATUS_BACKCHANNEL_FAULT {0x00000400}; const uint32_t SEQ4_STATUS_DEVID_CHANGED {0x00000800}; const uint32_t SEQ4_STATUS_DEVID_DELETED {0x00001000}; struct SEQUENCE4resok { sessionid4 sr_sessionid; sequenceid4 sr_sequenceid; slotid4 sr_slotid; slotid4 sr_highest_slotid; slotid4 sr_target_highest_slotid; uint32_t sr_status_flags; }; typedef struct SEQUENCE4resok SEQUENCE4resok; struct SEQUENCE4res { nfsstat4 sr_status; union { SEQUENCE4resok sr_resok4; } SEQUENCE4res_u; }; typedef struct SEQUENCE4res SEQUENCE4res; struct ssa_digest_input4 { SEQUENCE4args sdi_seqargs; }; typedef struct ssa_digest_input4 ssa_digest_input4; struct SET_SSV4args { struct { u_int ssa_ssv_len; char *ssa_ssv_val; } ssa_ssv; struct { u_int ssa_digest_len; char *ssa_digest_val; } ssa_digest; }; typedef struct SET_SSV4args SET_SSV4args; struct ssr_digest_input4 { SEQUENCE4res sdi_seqres; }; typedef struct ssr_digest_input4 ssr_digest_input4; struct SET_SSV4resok { struct { u_int ssr_digest_len; char *ssr_digest_val; } ssr_digest; }; typedef struct SET_SSV4resok SET_SSV4resok; struct SET_SSV4res { nfsstat4 ssr_status; union { SET_SSV4resok ssr_resok4; } SET_SSV4res_u; }; typedef struct SET_SSV4res SET_SSV4res; struct TEST_STATEID4args { struct { u_int ts_stateids_len; stateid4 *ts_stateids_val; } ts_stateids; }; typedef struct TEST_STATEID4args TEST_STATEID4args; struct TEST_STATEID4resok { struct { u_int tsr_status_codes_len; nfsstat4 *tsr_status_codes_val; } tsr_status_codes; }; typedef struct TEST_STATEID4resok TEST_STATEID4resok; struct TEST_STATEID4res { nfsstat4 tsr_status; union { TEST_STATEID4resok tsr_resok4; } TEST_STATEID4res_u; }; typedef struct TEST_STATEID4res TEST_STATEID4res; struct deleg_claim4 { open_claim_type4 dc_claim; union { open_delegation_type4 dc_delegate_type; } deleg_claim4_u; }; typedef struct deleg_claim4 deleg_claim4; struct WANT_DELEGATION4args { uint32_t wda_want; deleg_claim4 wda_claim; }; typedef struct WANT_DELEGATION4args WANT_DELEGATION4args; struct WANT_DELEGATION4res { nfsstat4 wdr_status; union { open_delegation4 wdr_resok4; } WANT_DELEGATION4res_u; }; typedef struct WANT_DELEGATION4res WANT_DELEGATION4res; struct DESTROY_CLIENTID4args { clientid4 dca_clientid; }; typedef struct DESTROY_CLIENTID4args DESTROY_CLIENTID4args; struct DESTROY_CLIENTID4res { nfsstat4 dcr_status; }; typedef struct DESTROY_CLIENTID4res DESTROY_CLIENTID4res; struct RECLAIM_COMPLETE4args { bool_t rca_one_fs; }; typedef struct RECLAIM_COMPLETE4args RECLAIM_COMPLETE4args; struct RECLAIM_COMPLETE4res { nfsstat4 rcr_status; }; typedef struct RECLAIM_COMPLETE4res RECLAIM_COMPLETE4res; /* new operations for NFSv4.1 */ enum nfs_opnum4 { OP_ACCESS = 3, OP_CLOSE = 4, OP_COMMIT = 5, OP_CREATE = 6, OP_DELEGPURGE = 7, OP_DELEGRETURN = 8, OP_GETATTR = 9, OP_GETFH = 10, OP_LINK = 11, OP_LOCK = 12, OP_LOCKT = 13, OP_LOCKU = 14, OP_LOOKUP = 15, OP_LOOKUPP = 16, OP_NVERIFY = 17, OP_OPEN = 18, OP_OPENATTR = 19, OP_OPEN_CONFIRM = 20, OP_OPEN_DOWNGRADE = 21, OP_PUTFH = 22, OP_PUTPUBFH = 23, OP_PUTROOTFH = 24, OP_READ = 25, OP_READDIR = 26, OP_READLINK = 27, OP_REMOVE = 28, OP_RENAME = 29, OP_RENEW = 30, OP_RESTOREFH = 31, OP_SAVEFH = 32, OP_SECINFO = 33, OP_SETATTR = 34, OP_SETCLIENTID = 35, OP_SETCLIENTID_CONFIRM = 36, OP_VERIFY = 37, OP_WRITE = 38, OP_RELEASE_LOCKOWNER = 39, OP_BACKCHANNEL_CTL = 40, OP_BIND_CONN_TO_SESSION = 41, OP_EXCHANGE_ID = 42, OP_CREATE_SESSION = 43, OP_DESTROY_SESSION = 44, OP_FREE_STATEID = 45, OP_GET_DIR_DELEGATION = 46, OP_GETDEVICEINFO = 47, OP_GETDEVICELIST = 48, OP_LAYOUTCOMMIT = 49, OP_LAYOUTGET = 50, OP_LAYOUTRETURN = 51, OP_SECINFO_NO_NAME = 52, OP_SEQUENCE = 53, OP_SET_SSV = 54, OP_TEST_STATEID = 55, OP_WANT_DELEGATION = 56, OP_DESTROY_CLIENTID = 57, OP_RECLAIM_COMPLETE = 58, OP_ILLEGAL = 10044, }; typedef enum nfs_opnum4 nfs_opnum4; union nfs_argop4_u_t { ACCESS4args opaccess; CLOSE4args opclose; COMMIT4args opcommit; CREATE4args opcreate; DELEGPURGE4args opdelegpurge; DELEGRETURN4args opdelegreturn; GETATTR4args opgetattr; LINK4args oplink; LOCK4args oplock; LOCKT4args oplockt; LOCKU4args oplocku; LOOKUP4args oplookup; NVERIFY4args opnverify; OPEN4args opopen; OPENATTR4args opopenattr; OPEN_CONFIRM4args opopen_confirm; OPEN_DOWNGRADE4args opopen_downgrade; PUTFH4args opputfh; READ4args opread; READDIR4args opreaddir; REMOVE4args opremove; RENAME4args oprename; RENEW4args oprenew; SECINFO4args opsecinfo; SETATTR4args opsetattr; SETCLIENTID4args opsetclientid; SETCLIENTID_CONFIRM4args opsetclientid_confirm; VERIFY4args opverify; WRITE4args opwrite; RELEASE_LOCKOWNER4args oprelease_lockowner; BACKCHANNEL_CTL4args opbackchannel_ctl; BIND_CONN_TO_SESSION4args opbind_conn_to_session; EXCHANGE_ID4args opexchange_id; CREATE_SESSION4args opcreate_session; DESTROY_SESSION4args opdestroy_session; FREE_STATEID4args opfree_stateid; GET_DIR_DELEGATION4args opget_dir_delegation; GETDEVICEINFO4args opgetdeviceinfo; GETDEVICELIST4args opgetdevicelist; LAYOUTCOMMIT4args oplayoutcommit; LAYOUTGET4args oplayoutget; LAYOUTRETURN4args oplayoutreturn; SECINFO_NO_NAME4args opsecinfo_no_name; SEQUENCE4args opsequence; SET_SSV4args opset_ssv; TEST_STATEID4args optest_stateid; WANT_DELEGATION4args opwant_delegation; DESTROY_CLIENTID4args opdestroy_clientid; RECLAIM_COMPLETE4args opreclaim_complete; }; struct nfs_argop4 { nfs_opnum4 argop; nfs_argop4_u_t nfs_argop4_u; }; typedef struct nfs_argop4 nfs_argop4; union nfs_resop4_u_t { ACCESS4res opaccess; CLOSE4res opclose; COMMIT4res opcommit; CREATE4res opcreate; DELEGPURGE4res opdelegpurge; DELEGRETURN4res opdelegreturn; GETATTR4res opgetattr; GETFH4res opgetfh; LINK4res oplink; LOCK4res oplock; LOCKT4res oplockt; LOCKU4res oplocku; LOOKUP4res oplookup; LOOKUPP4res oplookupp; NVERIFY4res opnverify; OPEN4res opopen; OPENATTR4res opopenattr; OPEN_CONFIRM4res opopen_confirm; OPEN_DOWNGRADE4res opopen_downgrade; PUTFH4res opputfh; PUTPUBFH4res opputpubfh; PUTROOTFH4res opputrootfh; READ4res opread; READDIR4res opreaddir; READLINK4res opreadlink; REMOVE4res opremove; RENAME4res oprename; RENEW4res oprenew; RESTOREFH4res oprestorefh; SAVEFH4res opsavefh; SECINFO4res opsecinfo; SETATTR4res opsetattr; SETCLIENTID4res opsetclientid; SETCLIENTID_CONFIRM4res opsetclientid_confirm; VERIFY4res opverify; WRITE4res opwrite; RELEASE_LOCKOWNER4res oprelease_lockowner; BACKCHANNEL_CTL4res opbackchannel_ctl; BIND_CONN_TO_SESSION4res opbind_conn_to_session; EXCHANGE_ID4res opexchange_id; CREATE_SESSION4res opcreate_session; DESTROY_SESSION4res opdestroy_session; FREE_STATEID4res opfree_stateid; GET_DIR_DELEGATION4res opget_dir_delegation; GETDEVICEINFO4res opgetdeviceinfo; GETDEVICELIST4res opgetdevicelist; LAYOUTCOMMIT4res oplayoutcommit; LAYOUTGET4res oplayoutget; LAYOUTRETURN4res oplayoutreturn; SECINFO_NO_NAME4res opsecinfo_no_name; SEQUENCE4res opsequence; SET_SSV4res opset_ssv; TEST_STATEID4res optest_stateid; WANT_DELEGATION4res opwant_delegation; DESTROY_CLIENTID4res opdestroy_clientid; RECLAIM_COMPLETE4res opreclaim_complete; ILLEGAL4res opillegal; }; struct nfs_resop4 { nfs_opnum4 resop; nfs_resop4_u_t nfs_resop4_u; }; typedef struct nfs_resop4 nfs_resop4; struct COMPOUND4args { utf8str_cs tag; uint32_t minorversion; struct { u_int argarray_len; nfs_argop4 *argarray_val; } argarray; }; typedef struct COMPOUND4args COMPOUND4args; struct COMPOUND4res { nfsstat4 status; utf8str_cs tag; struct { u_int resarray_len; nfs_resop4 *resarray_val; } resarray; }; typedef struct COMPOUND4res COMPOUND4res; struct CB_GETATTR4args { nfs_fh4 fh; bitmap4 attr_request; }; typedef struct CB_GETATTR4args CB_GETATTR4args; struct CB_GETATTR4resok { fattr4 obj_attributes; }; typedef struct CB_GETATTR4resok CB_GETATTR4resok; struct CB_GETATTR4res { nfsstat4 status; union { CB_GETATTR4resok resok4; } CB_GETATTR4res_u; }; typedef struct CB_GETATTR4res CB_GETATTR4res; struct CB_RECALL4args { stateid4 stateid; bool_t truncate; nfs_fh4 fh; }; typedef struct CB_RECALL4args CB_RECALL4args; struct CB_RECALL4res { nfsstat4 status; }; typedef struct CB_RECALL4res CB_RECALL4res; struct CB_ILLEGAL4res { nfsstat4 status; }; typedef struct CB_ILLEGAL4res CB_ILLEGAL4res; enum layoutrecall_type4 { LAYOUTRECALL4_FILE = LAYOUT4_RET_REC_FILE, LAYOUTRECALL4_FSID = LAYOUT4_RET_REC_FSID, LAYOUTRECALL4_ALL = LAYOUT4_RET_REC_ALL, }; typedef enum layoutrecall_type4 layoutrecall_type4; struct layoutrecall_file4 { nfs_fh4 lor_fh; offset4 lor_offset; length4 lor_length; stateid4 lor_stateid; }; typedef struct layoutrecall_file4 layoutrecall_file4; struct layoutrecall4 { layoutrecall_type4 lor_recalltype; union { layoutrecall_file4 lor_layout; fsid4 lor_fsid; } layoutrecall4_u; }; typedef struct layoutrecall4 layoutrecall4; struct CB_LAYOUTRECALL4args { layouttype4 clora_type; layoutiomode4 clora_iomode; bool_t clora_changed; layoutrecall4 clora_recall; }; typedef struct CB_LAYOUTRECALL4args CB_LAYOUTRECALL4args; struct CB_LAYOUTRECALL4res { nfsstat4 clorr_status; }; typedef struct CB_LAYOUTRECALL4res CB_LAYOUTRECALL4res; enum notify_type4 { NOTIFY4_CHANGE_CHILD_ATTRS = 0, NOTIFY4_CHANGE_DIR_ATTRS = 1, NOTIFY4_REMOVE_ENTRY = 2, NOTIFY4_ADD_ENTRY = 3, NOTIFY4_RENAME_ENTRY = 4, NOTIFY4_CHANGE_COOKIE_VERIFIER = 5, }; typedef enum notify_type4 notify_type4; struct notify_entry4 { component4 ne_file; fattr4 ne_attrs; }; typedef struct notify_entry4 notify_entry4; struct prev_entry4 { notify_entry4 pe_prev_entry; nfs_cookie4 pe_prev_entry_cookie; }; typedef struct prev_entry4 prev_entry4; struct notify_remove4 { notify_entry4 nrm_old_entry; nfs_cookie4 nrm_old_entry_cookie; }; typedef struct notify_remove4 notify_remove4; struct notify_add4 { struct { u_int nad_old_entry_len; notify_remove4 *nad_old_entry_val; } nad_old_entry; notify_entry4 nad_new_entry; struct { u_int nad_new_entry_cookie_len; nfs_cookie4 *nad_new_entry_cookie_val; } nad_new_entry_cookie; struct { u_int nad_prev_entry_len; prev_entry4 *nad_prev_entry_val; } nad_prev_entry; bool_t nad_last_entry; }; typedef struct notify_add4 notify_add4; struct notify_attr4 { notify_entry4 na_changed_entry; }; typedef struct notify_attr4 notify_attr4; struct notify_rename4 { notify_remove4 nrn_old_entry; notify_add4 nrn_new_entry; }; typedef struct notify_rename4 notify_rename4; struct notify_verifier4 { verifier4 nv_old_cookieverf; verifier4 nv_new_cookieverf; }; typedef struct notify_verifier4 notify_verifier4; typedef struct { u_int notifylist4_len; char *notifylist4_val; } notifylist4; struct notify4 { bitmap4 notify_mask; notifylist4 notify_vals; }; typedef struct notify4 notify4; struct CB_NOTIFY4args { stateid4 cna_stateid; nfs_fh4 cna_fh; struct { u_int cna_changes_len; notify4 *cna_changes_val; } cna_changes; }; typedef struct CB_NOTIFY4args CB_NOTIFY4args; struct CB_NOTIFY4res { nfsstat4 cnr_status; }; typedef struct CB_NOTIFY4res CB_NOTIFY4res; struct CB_PUSH_DELEG4args { nfs_fh4 cpda_fh; open_delegation4 cpda_delegation; }; typedef struct CB_PUSH_DELEG4args CB_PUSH_DELEG4args; struct CB_PUSH_DELEG4res { nfsstat4 cpdr_status; }; typedef struct CB_PUSH_DELEG4res CB_PUSH_DELEG4res; const uint32_t RCA4_TYPE_MASK_RDATA_DLG {0}; const uint32_t RCA4_TYPE_MASK_WDATA_DLG {1}; const uint32_t RCA4_TYPE_MASK_DIR_DLG {2}; const uint32_t RCA4_TYPE_MASK_FILE_LAYOUT {3}; const uint32_t RCA4_TYPE_MASK_BLK_LAYOUT {4}; const uint32_t RCA4_TYPE_MASK_OBJ_LAYOUT_MIN {8}; const uint32_t RCA4_TYPE_MASK_OBJ_LAYOUT_MAX {9}; const uint32_t RCA4_TYPE_MASK_OTHER_LAYOUT_MIN {12}; const uint32_t RCA4_TYPE_MASK_OTHER_LAYOUT_MAX {15}; struct CB_RECALL_ANY4args { uint32_t craa_objects_to_keep; bitmap4 craa_type_mask; }; typedef struct CB_RECALL_ANY4args CB_RECALL_ANY4args; struct CB_RECALL_ANY4res { nfsstat4 crar_status; }; typedef struct CB_RECALL_ANY4res CB_RECALL_ANY4res; typedef CB_RECALL_ANY4args CB_RECALLABLE_OBJ_AVAIL4args; struct CB_RECALLABLE_OBJ_AVAIL4res { nfsstat4 croa_status; }; typedef struct CB_RECALLABLE_OBJ_AVAIL4res CB_RECALLABLE_OBJ_AVAIL4res; struct CB_RECALL_SLOT4args { slotid4 rsa_target_highest_slotid; }; typedef struct CB_RECALL_SLOT4args CB_RECALL_SLOT4args; struct CB_RECALL_SLOT4res { nfsstat4 rsr_status; }; typedef struct CB_RECALL_SLOT4res CB_RECALL_SLOT4res; struct referring_call4 { sequenceid4 rc_sequenceid; slotid4 rc_slotid; }; typedef struct referring_call4 referring_call4; struct referring_call_list4 { sessionid4 rcl_sessionid; struct { u_int rcl_referring_calls_len; referring_call4 *rcl_referring_calls_val; } rcl_referring_calls; }; typedef struct referring_call_list4 referring_call_list4; struct CB_SEQUENCE4args { sessionid4 csa_sessionid; sequenceid4 csa_sequenceid; slotid4 csa_slotid; slotid4 csa_highest_slotid; bool_t csa_cachethis; struct { u_int csa_referring_call_lists_len; referring_call_list4 *csa_referring_call_lists_val; } csa_referring_call_lists; }; typedef struct CB_SEQUENCE4args CB_SEQUENCE4args; struct CB_SEQUENCE4resok { sessionid4 csr_sessionid; sequenceid4 csr_sequenceid; slotid4 csr_slotid; slotid4 csr_highest_slotid; slotid4 csr_target_highest_slotid; }; typedef struct CB_SEQUENCE4resok CB_SEQUENCE4resok; struct CB_SEQUENCE4res { nfsstat4 csr_status; union { CB_SEQUENCE4resok csr_resok4; } CB_SEQUENCE4res_u; }; typedef struct CB_SEQUENCE4res CB_SEQUENCE4res; struct CB_WANTS_CANCELLED4args { bool_t cwca_contended_wants_cancelled; bool_t cwca_resourced_wants_cancelled; }; typedef struct CB_WANTS_CANCELLED4args CB_WANTS_CANCELLED4args; struct CB_WANTS_CANCELLED4res { nfsstat4 cwcr_status; }; typedef struct CB_WANTS_CANCELLED4res CB_WANTS_CANCELLED4res; struct CB_NOTIFY_LOCK4args { nfs_fh4 cnla_fh; lock_owner4 cnla_lock_owner; }; typedef struct CB_NOTIFY_LOCK4args CB_NOTIFY_LOCK4args; struct CB_NOTIFY_LOCK4res { nfsstat4 cnlr_status; }; typedef struct CB_NOTIFY_LOCK4res CB_NOTIFY_LOCK4res; enum notify_deviceid_type4 { NOTIFY_DEVICEID4_CHANGE = 1, NOTIFY_DEVICEID4_DELETE = 2, }; typedef enum notify_deviceid_type4 notify_deviceid_type4; struct notify_deviceid_delete4 { layouttype4 ndd_layouttype; deviceid4 ndd_deviceid; }; typedef struct notify_deviceid_delete4 notify_deviceid_delete4; struct notify_deviceid_change4 { layouttype4 ndc_layouttype; deviceid4 ndc_deviceid; bool_t ndc_immediate; }; typedef struct notify_deviceid_change4 notify_deviceid_change4; struct CB_NOTIFY_DEVICEID4args { struct { u_int cnda_changes_len; notify4 *cnda_changes_val; } cnda_changes; }; typedef struct CB_NOTIFY_DEVICEID4args CB_NOTIFY_DEVICEID4args; struct CB_NOTIFY_DEVICEID4res { nfsstat4 cndr_status; }; typedef struct CB_NOTIFY_DEVICEID4res CB_NOTIFY_DEVICEID4res; /* Callback operations new to NFSv4.1 */ enum nfs_cb_opnum4 { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_LAYOUTRECALL = 5, OP_CB_NOTIFY = 6, OP_CB_PUSH_DELEG = 7, OP_CB_RECALL_ANY = 8, OP_CB_RECALLABLE_OBJ_AVAIL = 9, OP_CB_RECALL_SLOT = 10, OP_CB_SEQUENCE = 11, OP_CB_WANTS_CANCELLED = 12, OP_CB_NOTIFY_LOCK = 13, OP_CB_NOTIFY_DEVICEID = 14, OP_CB_ILLEGAL = 10044, }; typedef enum nfs_cb_opnum4 nfs_cb_opnum4; struct nfs_cb_argop4 { u_int argop; union { CB_GETATTR4args opcbgetattr; CB_RECALL4args opcbrecall; CB_LAYOUTRECALL4args opcblayoutrecall; CB_NOTIFY4args opcbnotify; CB_PUSH_DELEG4args opcbpush_deleg; CB_RECALL_ANY4args opcbrecall_any; CB_RECALLABLE_OBJ_AVAIL4args opcbrecallable_obj_avail; CB_RECALL_SLOT4args opcbrecall_slot; CB_SEQUENCE4args opcbsequence; CB_WANTS_CANCELLED4args opcbwants_cancelled; CB_NOTIFY_LOCK4args opcbnotify_lock; CB_NOTIFY_DEVICEID4args opcbnotify_deviceid; } nfs_cb_argop4_u; }; typedef struct nfs_cb_argop4 nfs_cb_argop4; struct nfs_cb_resop4 { u_int resop; union { CB_GETATTR4res opcbgetattr; CB_RECALL4res opcbrecall; CB_LAYOUTRECALL4res opcblayoutrecall; CB_NOTIFY4res opcbnotify; CB_PUSH_DELEG4res opcbpush_deleg; CB_RECALL_ANY4res opcbrecall_any; CB_RECALLABLE_OBJ_AVAIL4res opcbrecallable_obj_avail; CB_RECALL_SLOT4res opcbrecall_slot; CB_SEQUENCE4res opcbsequence; CB_WANTS_CANCELLED4res opcbwants_cancelled; CB_NOTIFY_LOCK4res opcbnotify_lock; CB_NOTIFY_DEVICEID4res opcbnotify_deviceid; CB_ILLEGAL4res opcbillegal; } nfs_cb_resop4_u; }; typedef struct nfs_cb_resop4 nfs_cb_resop4; struct CB_COMPOUND4args { utf8str_cs tag; uint32_t minorversion; uint32_t callback_ident; struct { u_int argarray_len; nfs_cb_argop4 *argarray_val; } argarray; }; typedef struct CB_COMPOUND4args CB_COMPOUND4args; struct CB_COMPOUND4res { nfsstat4 status; utf8str_cs tag; struct { u_int resarray_len; nfs_cb_resop4 *resarray_val; } resarray; }; typedef struct CB_COMPOUND4res CB_COMPOUND4res; const uint32_t NFS4_PROGRAM {100003}; const uint32_t NFSPROC4_NULL {0}; const uint32_t NFSPROC4_COMPOUND {1}; const uint32_t NFS4_CALLBACK {0x40000000}; const uint32_t NFS_CB {1}; const uint32_t CB_NULL {0}; const uint32_t CB_COMPOUND {1}; } // namespace NFS41 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//NFS41_TYPES_RPCGEN_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/nfs4_types_rpcgen.h000066400000000000000000001075311261713114600204770ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Generated by rpcgen with minor compatibility fixes // Description: All RFC3530 declared structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS4_TYPES_RPCGEN_H #define NFS4_TYPES_RPCGEN_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace API { namespace NFS4 { #ifndef RPCSEC_GSS #define RPCSEC_GSS 6 #endif const uint32_t NFS4_FHSIZE {128}; const uint32_t NFS4_VERIFIER_SIZE {8}; const uint32_t NFS4_OPAQUE_LIMIT {1024}; typedef int int32_t; typedef u_int uint32_t; typedef quad_t int64_t; typedef u_quad_t uint64_t; enum nfs_ftype4 { NF4REG = 1, NF4DIR = 2, NF4BLK = 3, NF4CHR = 4, NF4LNK = 5, NF4SOCK = 6, NF4FIFO = 7, NF4ATTRDIR = 8, NF4NAMEDATTR = 9, }; typedef enum nfs_ftype4 nfs_ftype4; enum nfsstat4 { NFS4_OK = 0, NFS4ERR_PERM = 1, NFS4ERR_NOENT = 2, NFS4ERR_IO = 5, NFS4ERR_NXIO = 6, NFS4ERR_ACCESS = 13, NFS4ERR_EXIST = 17, NFS4ERR_XDEV = 18, NFS4ERR_NOTDIR = 20, NFS4ERR_ISDIR = 21, NFS4ERR_INVAL = 22, NFS4ERR_FBIG = 27, NFS4ERR_NOSPC = 28, NFS4ERR_ROFS = 30, NFS4ERR_MLINK = 31, NFS4ERR_NAMETOOLONG = 63, NFS4ERR_NOTEMPTY = 66, NFS4ERR_DQUOT = 69, NFS4ERR_STALE = 70, NFS4ERR_BADHANDLE = 10001, NFS4ERR_BAD_COOKIE = 10003, NFS4ERR_NOTSUPP = 10004, NFS4ERR_TOOSMALL = 10005, NFS4ERR_SERVERFAULT = 10006, NFS4ERR_BADTYPE = 10007, NFS4ERR_DELAY = 10008, NFS4ERR_SAME = 10009, NFS4ERR_DENIED = 10010, NFS4ERR_EXPIRED = 10011, NFS4ERR_LOCKED = 10012, NFS4ERR_GRACE = 10013, NFS4ERR_FHEXPIRED = 10014, NFS4ERR_SHARE_DENIED = 10015, NFS4ERR_WRONGSEC = 10016, NFS4ERR_CLID_INUSE = 10017, NFS4ERR_RESOURCE = 10018, NFS4ERR_MOVED = 10019, NFS4ERR_NOFILEHANDLE = 10020, NFS4ERR_MINOR_VERS_MISMATCH = 10021, NFS4ERR_STALE_CLIENTID = 10022, NFS4ERR_STALE_STATEID = 10023, NFS4ERR_OLD_STATEID = 10024, NFS4ERR_BAD_STATEID = 10025, NFS4ERR_BAD_SEQID = 10026, NFS4ERR_NOT_SAME = 10027, NFS4ERR_LOCK_RANGE = 10028, NFS4ERR_SYMLINK = 10029, NFS4ERR_RESTOREFH = 10030, NFS4ERR_LEASE_MOVED = 10031, NFS4ERR_ATTRNOTSUPP = 10032, NFS4ERR_NO_GRACE = 10033, NFS4ERR_RECLAIM_BAD = 10034, NFS4ERR_RECLAIM_CONFLICT = 10035, NFS4ERR_BADXDR = 10036, NFS4ERR_LOCKS_HELD = 10037, NFS4ERR_OPENMODE = 10038, NFS4ERR_BADOWNER = 10039, NFS4ERR_BADCHAR = 10040, NFS4ERR_BADNAME = 10041, NFS4ERR_BAD_RANGE = 10042, NFS4ERR_LOCK_NOTSUPP = 10043, NFS4ERR_OP_ILLEGAL = 10044, NFS4ERR_DEADLOCK = 10045, NFS4ERR_FILE_OPEN = 10046, NFS4ERR_ADMIN_REVOKED = 10047, NFS4ERR_CB_PATH_DOWN = 10048, }; typedef enum nfsstat4 nfsstat4; typedef struct { u_int bitmap4_len; uint32_t *bitmap4_val; } bitmap4; typedef uint64_t offset4; typedef uint32_t count4; typedef uint64_t length4; typedef uint64_t clientid4; typedef uint32_t seqid4; typedef struct { u_int utf8string_len; char *utf8string_val; } utf8string; typedef utf8string utf8str_cis; typedef utf8string utf8str_cs; typedef utf8string utf8str_mixed; typedef utf8str_cs component4; typedef struct { u_int pathname4_len; component4 *pathname4_val; } pathname4; typedef uint64_t nfs_lockid4; typedef uint64_t nfs_cookie4; typedef utf8str_cs linktext4; typedef struct { u_int sec_oid4_len; char *sec_oid4_val; } sec_oid4; typedef uint32_t qop4; typedef uint32_t mode4; typedef uint64_t changeid4; typedef char verifier4[NFS4_VERIFIER_SIZE]; struct nfstime4 { int64_t seconds; uint32_t nseconds; }; typedef struct nfstime4 nfstime4; enum time_how4 { SET_TO_SERVER_TIME4 = 0, SET_TO_CLIENT_TIME4 = 1, }; typedef enum time_how4 time_how4; struct settime4 { time_how4 set_it; union { nfstime4 time; } settime4_u; }; typedef struct settime4 settime4; typedef struct { u_int nfs_fh4_len; char *nfs_fh4_val; } nfs_fh4; struct fsid4 { uint64_t major; uint64_t minor; }; typedef struct fsid4 fsid4; struct fs_location4 { struct { u_int server_len; utf8str_cis *server_val; } server; pathname4 rootpath; }; typedef struct fs_location4 fs_location4; struct fs_locations4 { pathname4 fs_root; struct { u_int locations_len; fs_location4 *locations_val; } locations; }; typedef struct fs_locations4 fs_locations4; typedef uint32_t fattr4_aclsupport; const fattr4_aclsupport ACL4_SUPPORT_ALLOW_ACL {0x00000001}; const fattr4_aclsupport ACL4_SUPPORT_DENY_ACL {0x00000002}; const fattr4_aclsupport ACL4_SUPPORT_AUDIT_ACL {0x00000004}; const fattr4_aclsupport ACL4_SUPPORT_ALARM_ACL {0x00000008}; typedef uint32_t acetype4; const acetype4 ACE4_ACCESS_ALLOWED_ACE_TYPE {0x00000000}; const acetype4 ACE4_ACCESS_DENIED_ACE_TYPE {0x00000001}; const acetype4 ACE4_SYSTEM_AUDIT_ACE_TYPE {0x00000002}; const acetype4 ACE4_SYSTEM_ALARM_ACE_TYPE {0x00000003}; typedef uint32_t aceflag4; const aceflag4 ACE4_FILE_INHERIT_ACE {0x00000001}; const aceflag4 ACE4_DIRECTORY_INHERIT_ACE {0x00000002}; const aceflag4 ACE4_NO_PROPAGATE_INHERIT_ACE {0x00000004}; const aceflag4 ACE4_INHERIT_ONLY_ACE {0x00000008}; const aceflag4 ACE4_SUCCESSFUL_ACCESS_ACE_FLAG {0x00000010}; const aceflag4 ACE4_FAILED_ACCESS_ACE_FLAG {0x00000020}; const aceflag4 ACE4_IDENTIFIER_GROUP {0x00000040}; const aceflag4 ACE4_INHERITED_ACE {0x00000080}; typedef uint32_t acemask4; const acemask4 ACE4_READ_DATA {0x00000001}; const acemask4 ACE4_LIST_DIRECTORY {0x00000001}; const acemask4 ACE4_WRITE_DATA {0x00000002}; const acemask4 ACE4_ADD_FILE {0x00000002}; const acemask4 ACE4_APPEND_DATA {0x00000004}; const acemask4 ACE4_ADD_SUBDIRECTORY {0x00000004}; const acemask4 ACE4_READ_NAMED_ATTRS {0x00000008}; const acemask4 ACE4_WRITE_NAMED_ATTRS {0x00000010}; const acemask4 ACE4_EXECUTE {0x00000020}; const acemask4 ACE4_DELETE_CHILD {0x00000040}; const acemask4 ACE4_READ_ATTRIBUTES {0x00000080}; const acemask4 ACE4_WRITE_ATTRIBUTES {0x00000100}; const acemask4 ACE4_WRITE_RETENTION {0x00000200}; const acemask4 ACE4_WRITE_RETENTION_HOLD {0x00000400}; const acemask4 ACE4_DELETE {0x00010000}; const acemask4 ACE4_READ_ACL {0x00020000}; const acemask4 ACE4_WRITE_ACL {0x00040000}; const acemask4 ACE4_WRITE_OWNER {0x00080000}; const acemask4 ACE4_SYNCHRONIZE {0x00100000}; const acemask4 ACE4_GENERIC_READ {0x00120081}; const acemask4 ACE4_GENERIC_WRITE {0x00160106}; const acemask4 ACE4_GENERIC_EXECUTE {0x001200A0}; struct nfsace4 { acetype4 type; aceflag4 flag; acemask4 access_mask; utf8str_mixed who; }; typedef struct nfsace4 nfsace4; const mode4 MODE4_SUID {0x800}; const mode4 MODE4_SGID {0x400}; const mode4 MODE4_SVTX {0x200}; const mode4 MODE4_RUSR {0x100}; const mode4 MODE4_WUSR {0x080}; const mode4 MODE4_XUSR {0x040}; const mode4 MODE4_RGRP {0x020}; const mode4 MODE4_WGRP {0x010}; const mode4 MODE4_XGRP {0x008}; const mode4 MODE4_ROTH {0x004}; const mode4 MODE4_WOTH {0x002}; const mode4 MODE4_XOTH {0x001}; struct specdata4 { uint32_t specdata1; uint32_t specdata2; }; typedef struct specdata4 specdata4; const uint32_t FH4_PERSISTENT {0x00000000}; const uint32_t FH4_NOEXPIRE_WITH_OPEN {0x00000001}; const uint32_t FH4_VOLATILE_ANY {0x00000002}; const uint32_t FH4_VOL_MIGRATION {0x00000004}; const uint32_t FH4_VOL_RENAME {0x00000008}; typedef bitmap4 fattr4_supported_attrs; typedef nfs_ftype4 fattr4_type; typedef uint32_t fattr4_fh_expire_type; typedef changeid4 fattr4_change; typedef uint64_t fattr4_size; typedef bool_t fattr4_link_support; typedef bool_t fattr4_symlink_support; typedef bool_t fattr4_named_attr; typedef fsid4 fattr4_fsid; typedef bool_t fattr4_unique_handles; typedef uint32_t fattr4_lease_time; typedef nfsstat4 fattr4_rdattr_error; typedef struct { u_int fattr4_acl_len; nfsace4 *fattr4_acl_val; } fattr4_acl; typedef bool_t fattr4_archive; typedef bool_t fattr4_cansettime; typedef bool_t fattr4_case_insensitive; typedef bool_t fattr4_case_preserving; typedef bool_t fattr4_chown_restricted; typedef uint64_t fattr4_fileid; typedef uint64_t fattr4_files_avail; typedef nfs_fh4 fattr4_filehandle; typedef uint64_t fattr4_files_free; typedef uint64_t fattr4_files_total; typedef fs_locations4 fattr4_fs_locations; typedef bool_t fattr4_hidden; typedef bool_t fattr4_homogeneous; typedef uint64_t fattr4_maxfilesize; typedef uint32_t fattr4_maxlink; typedef uint32_t fattr4_maxname; typedef uint64_t fattr4_maxread; typedef uint64_t fattr4_maxwrite; typedef utf8str_cs fattr4_mimetype; typedef mode4 fattr4_mode; typedef uint64_t fattr4_mounted_on_fileid; typedef bool_t fattr4_no_trunc; typedef uint32_t fattr4_numlinks; typedef utf8str_mixed fattr4_owner; typedef utf8str_mixed fattr4_owner_group; typedef uint64_t fattr4_quota_avail_hard; typedef uint64_t fattr4_quota_avail_soft; typedef uint64_t fattr4_quota_used; typedef specdata4 fattr4_rawdev; typedef uint64_t fattr4_space_avail; typedef uint64_t fattr4_space_free; typedef uint64_t fattr4_space_total; typedef uint64_t fattr4_space_used; typedef bool_t fattr4_system; typedef nfstime4 fattr4_time_access; typedef settime4 fattr4_time_access_set; typedef nfstime4 fattr4_time_backup; typedef nfstime4 fattr4_time_create; typedef nfstime4 fattr4_time_delta; typedef nfstime4 fattr4_time_metadata; typedef nfstime4 fattr4_time_modify; typedef settime4 fattr4_time_modify_set; const uint32_t FATTR4_SUPPORTED_ATTRS {0}; const uint32_t FATTR4_TYPE {1}; const uint32_t FATTR4_FH_EXPIRE_TYPE {2}; const uint32_t FATTR4_CHANGE {3}; const uint32_t FATTR4_SIZE {4}; const uint32_t FATTR4_LINK_SUPPORT {5}; const uint32_t FATTR4_SYMLINK_SUPPORT {6}; const uint32_t FATTR4_NAMED_ATTR {7}; const uint32_t FATTR4_FSID {8}; const uint32_t FATTR4_UNIQUE_HANDLES {9}; const uint32_t FATTR4_LEASE_TIME {10}; const uint32_t FATTR4_RDATTR_ERROR {11}; const uint32_t FATTR4_FILEHANDLE {19}; const uint32_t FATTR4_ACL {12}; const uint32_t FATTR4_ACLSUPPORT {13}; const uint32_t FATTR4_ARCHIVE {14}; const uint32_t FATTR4_CANSETTIME {15}; const uint32_t FATTR4_CASE_INSENSITIVE {16}; const uint32_t FATTR4_CASE_PRESERVING {17}; const uint32_t FATTR4_CHOWN_RESTRICTED {18}; const uint32_t FATTR4_FILEID {20}; const uint32_t FATTR4_FILES_AVAIL {21}; const uint32_t FATTR4_FILES_FREE {22}; const uint32_t FATTR4_FILES_TOTAL {23}; const uint32_t FATTR4_FS_LOCATIONS {24}; const uint32_t FATTR4_HIDDEN {25}; const uint32_t FATTR4_HOMOGENEOUS {26}; const uint32_t FATTR4_MAXFILESIZE {27}; const uint32_t FATTR4_MAXLINK {28}; const uint32_t FATTR4_MAXNAME {29}; const uint32_t FATTR4_MAXREAD {30}; const uint32_t FATTR4_MAXWRITE {31}; const uint32_t FATTR4_MIMETYPE {32}; const uint32_t FATTR4_MODE {33}; const uint32_t FATTR4_NO_TRUNC {34}; const uint32_t FATTR4_NUMLINKS {35}; const uint32_t FATTR4_OWNER {36}; const uint32_t FATTR4_OWNER_GROUP {37}; const uint32_t FATTR4_QUOTA_AVAIL_HARD {38}; const uint32_t FATTR4_QUOTA_AVAIL_SOFT {39}; const uint32_t FATTR4_QUOTA_USED {40}; const uint32_t FATTR4_RAWDEV {41}; const uint32_t FATTR4_SPACE_AVAIL {42}; const uint32_t FATTR4_SPACE_FREE {43}; const uint32_t FATTR4_SPACE_TOTAL {44}; const uint32_t FATTR4_SPACE_USED {45}; const uint32_t FATTR4_SYSTEM {46}; const uint32_t FATTR4_TIME_ACCESS {47}; const uint32_t FATTR4_TIME_ACCESS_SET {48}; const uint32_t FATTR4_TIME_BACKUP {49}; const uint32_t FATTR4_TIME_CREATE {50}; const uint32_t FATTR4_TIME_DELTA {51}; const uint32_t FATTR4_TIME_METADATA {52}; const uint32_t FATTR4_TIME_MODIFY {53}; const uint32_t FATTR4_TIME_MODIFY_SET {54}; const uint32_t FATTR4_MOUNTED_ON_FILEID {55}; typedef struct { u_int attrlist4_len; char *attrlist4_val; } attrlist4; struct fattr4 { bitmap4 attrmask; attrlist4 attr_vals; }; typedef struct fattr4 fattr4; struct change_info4 { bool_t atomic; changeid4 before; changeid4 after; }; typedef struct change_info4 change_info4; struct clientaddr4 { char *r_netid; char *r_addr; }; typedef struct clientaddr4 clientaddr4; struct cb_client4 { uint32_t cb_program; clientaddr4 cb_location; }; typedef struct cb_client4 cb_client4; struct stateid4 { uint32_t seqid; char other[12]; }; typedef struct stateid4 stateid4; struct nfs_client_id4 { verifier4 verifier; struct { u_int id_len; char *id_val; } id; }; typedef struct nfs_client_id4 nfs_client_id4; struct open_owner4 { clientid4 clientid; struct { u_int owner_len; char *owner_val; } owner; }; typedef struct open_owner4 open_owner4; struct lock_owner4 { clientid4 clientid; struct { u_int owner_len; char *owner_val; } owner; }; typedef struct lock_owner4 lock_owner4; enum nfs_lock_type4 { READ_LT = 1, WRITE_LT = 2, READW_LT = 3, WRITEW_LT = 4, }; typedef enum nfs_lock_type4 nfs_lock_type4; const uint32_t ACCESS4_READ {0x00000001}; const uint32_t ACCESS4_LOOKUP {0x00000002}; const uint32_t ACCESS4_MODIFY {0x00000004}; const uint32_t ACCESS4_EXTEND {0x00000008}; const uint32_t ACCESS4_DELETE {0x00000010}; const uint32_t ACCESS4_EXECUTE {0x00000020}; // for compatibility struct NULL4args { bool t {}; }; typedef struct NULL4args NULL4args; // for compatibility struct NULL4res { bool t {}; }; typedef struct NULL4res NULL4res; struct ACCESS4args { uint32_t access; }; typedef struct ACCESS4args ACCESS4args; struct ACCESS4resok { uint32_t supported; uint32_t access; }; typedef struct ACCESS4resok ACCESS4resok; struct ACCESS4res { nfsstat4 status; union { ACCESS4resok resok4; } ACCESS4res_u; }; typedef struct ACCESS4res ACCESS4res; struct CLOSE4args { seqid4 seqid; stateid4 open_stateid; }; typedef struct CLOSE4args CLOSE4args; struct CLOSE4res { nfsstat4 status; union { stateid4 open_stateid; } CLOSE4res_u; }; typedef struct CLOSE4res CLOSE4res; struct COMMIT4args { offset4 offset; count4 count; }; typedef struct COMMIT4args COMMIT4args; struct COMMIT4resok { verifier4 writeverf; }; typedef struct COMMIT4resok COMMIT4resok; struct COMMIT4res { nfsstat4 status; union { COMMIT4resok resok4; } COMMIT4res_u; }; typedef struct COMMIT4res COMMIT4res; struct createtype4 { nfs_ftype4 type; union { linktext4 linkdata; specdata4 devdata; } createtype4_u; }; typedef struct createtype4 createtype4; struct CREATE4args { createtype4 objtype; component4 objname; fattr4 createattrs; }; typedef struct CREATE4args CREATE4args; struct CREATE4resok { change_info4 cinfo; bitmap4 attrset; }; typedef struct CREATE4resok CREATE4resok; struct CREATE4res { nfsstat4 status; union { CREATE4resok resok4; } CREATE4res_u; }; typedef struct CREATE4res CREATE4res; struct DELEGPURGE4args { clientid4 clientid; }; typedef struct DELEGPURGE4args DELEGPURGE4args; struct DELEGPURGE4res { nfsstat4 status; }; typedef struct DELEGPURGE4res DELEGPURGE4res; struct DELEGRETURN4args { stateid4 deleg_stateid; }; typedef struct DELEGRETURN4args DELEGRETURN4args; struct DELEGRETURN4res { nfsstat4 status; }; typedef struct DELEGRETURN4res DELEGRETURN4res; struct GETATTR4args { bitmap4 attr_request; }; typedef struct GETATTR4args GETATTR4args; struct GETATTR4resok { fattr4 obj_attributes; }; typedef struct GETATTR4resok GETATTR4resok; struct GETATTR4res { nfsstat4 status; union { GETATTR4resok resok4; } GETATTR4res_u; }; typedef struct GETATTR4res GETATTR4res; const uint32_t DIR_NOTIFICATION_NONE {0x00000000}; const uint32_t DIR_NOTIFICATION_CHANGE_ENTRY_ATTRIBUTES {0x00000001}; const uint32_t DIR_NOTIFICATION_CHANGE_DIR_ATTRIBUTES {0x00000002}; const uint32_t DIR_NOTIFICATION_REMOVE_ENTRY {0x00000004}; const uint32_t DIR_NOTIFICATION_ADD_ENTRY {0x00000008}; const uint32_t DIR_NOTIFICATION_RENAME_ENTRY {0x00000010}; const uint32_t DIR_NOTIFICATION_CHANGE_COOKIE_VERIFIER {0x00000020}; typedef bitmap4 notification_types4; typedef nfstime4 notification_delay4; enum dir_delegation_status4 { NFS4_DIR_DELEGATION_NONE = 0, NFS4_DIR_DELEGATION_READ = 1, NFS4_DIR_DELEGATION_DENIED = 2, NFS4_DIR_DELEGATION_UNAVAIL = 3, }; typedef enum dir_delegation_status4 dir_delegation_status4; struct GET_DIR_DELEGATION4args { clientid4 clientid; notification_types4 notif_types; notification_delay4 dir_notif_delay; notification_delay4 dir_entry_notif_delay; }; typedef struct GET_DIR_DELEGATION4args GET_DIR_DELEGATION4args; struct GET_DIR_DELEGATION4resok { stateid4 stateid; dir_delegation_status4 status; notification_types4 notif_types; bitmap4 dir_notif_attrs; bitmap4 dir_entry_notif_attrs; }; typedef struct GET_DIR_DELEGATION4resok GET_DIR_DELEGATION4resok; struct GET_DIR_DELEGATION4res { nfsstat4 status; union { GET_DIR_DELEGATION4resok resok4; } GET_DIR_DELEGATION4res_u; }; typedef struct GET_DIR_DELEGATION4res GET_DIR_DELEGATION4res; struct GETFH4resok { nfs_fh4 object; }; typedef struct GETFH4resok GETFH4resok; struct GETFH4res { nfsstat4 status; union { GETFH4resok resok4; } GETFH4res_u; }; typedef struct GETFH4res GETFH4res; struct LINK4args { component4 newname; }; typedef struct LINK4args LINK4args; struct LINK4resok { change_info4 cinfo; }; typedef struct LINK4resok LINK4resok; struct LINK4res { nfsstat4 status; union { LINK4resok resok4; } LINK4res_u; }; typedef struct LINK4res LINK4res; struct open_to_lock_owner4 { seqid4 open_seqid; stateid4 open_stateid; seqid4 lock_seqid; lock_owner4 lock_owner; }; typedef struct open_to_lock_owner4 open_to_lock_owner4; struct exist_lock_owner4 { stateid4 lock_stateid; seqid4 lock_seqid; }; typedef struct exist_lock_owner4 exist_lock_owner4; struct locker4 { bool_t new_lock_owner; union { open_to_lock_owner4 open_owner; exist_lock_owner4 lock_owner; } locker4_u; }; typedef struct locker4 locker4; struct LOCK4args { nfs_lock_type4 locktype; bool_t reclaim; offset4 offset; length4 length; locker4 locker; }; typedef struct LOCK4args LOCK4args; struct LOCK4denied { offset4 offset; length4 length; nfs_lock_type4 locktype; lock_owner4 owner; }; typedef struct LOCK4denied LOCK4denied; struct LOCK4resok { stateid4 lock_stateid; }; typedef struct LOCK4resok LOCK4resok; struct LOCK4res { nfsstat4 status; union { LOCK4resok resok4; LOCK4denied denied; } LOCK4res_u; }; typedef struct LOCK4res LOCK4res; struct LOCKT4args { nfs_lock_type4 locktype; offset4 offset; length4 length; lock_owner4 owner; }; typedef struct LOCKT4args LOCKT4args; struct LOCKT4res { nfsstat4 status; union { LOCK4denied denied; } LOCKT4res_u; }; typedef struct LOCKT4res LOCKT4res; struct LOCKU4args { nfs_lock_type4 locktype; seqid4 seqid; stateid4 lock_stateid; offset4 offset; length4 length; }; typedef struct LOCKU4args LOCKU4args; struct LOCKU4res { nfsstat4 status; union { stateid4 lock_stateid; } LOCKU4res_u; }; typedef struct LOCKU4res LOCKU4res; struct LOOKUP4args { component4 objname; }; typedef struct LOOKUP4args LOOKUP4args; struct LOOKUP4res { nfsstat4 status; }; typedef struct LOOKUP4res LOOKUP4res; struct LOOKUPP4res { nfsstat4 status; }; typedef struct LOOKUPP4res LOOKUPP4res; struct NVERIFY4args { fattr4 obj_attributes; }; typedef struct NVERIFY4args NVERIFY4args; struct NVERIFY4res { nfsstat4 status; }; typedef struct NVERIFY4res NVERIFY4res; enum createmode4 { UNCHECKED4 = 0, GUARDED4 = 1, EXCLUSIVE4 = 2, }; typedef enum createmode4 createmode4; struct createhow4 { createmode4 mode; union { fattr4 createattrs; verifier4 createverf; } createhow4_u; }; typedef struct createhow4 createhow4; enum opentype4 { OPEN4_NOCREATE = 0, OPEN4_CREATE = 1, }; typedef enum opentype4 opentype4; struct openflag4 { opentype4 opentype; union { createhow4 how; } openflag4_u; }; typedef struct openflag4 openflag4; enum limit_by4 { NFS_LIMIT_SIZE = 1, NFS_LIMIT_BLOCKS = 2, }; typedef enum limit_by4 limit_by4; struct nfs_modified_limit4 { uint32_t num_blocks; uint32_t bytes_per_block; }; typedef struct nfs_modified_limit4 nfs_modified_limit4; struct nfs_space_limit4 { limit_by4 limitby; union { uint64_t filesize; nfs_modified_limit4 mod_blocks; } nfs_space_limit4_u; }; typedef struct nfs_space_limit4 nfs_space_limit4; const uint32_t OPEN4_SHARE_ACCESS_READ {0x00000001}; const uint32_t OPEN4_SHARE_ACCESS_WRITE {0x00000002}; const uint32_t OPEN4_SHARE_ACCESS_BOTH {0x00000003}; const uint32_t OPEN4_SHARE_DENY_NONE {0x00000000}; const uint32_t OPEN4_SHARE_DENY_READ {0x00000001}; const uint32_t OPEN4_SHARE_DENY_WRITE {0x00000002}; const uint32_t OPEN4_SHARE_DENY_BOTH {0x00000003}; enum open_delegation_type4 { OPEN_DELEGATE_NONE = 0, OPEN_DELEGATE_READ = 1, OPEN_DELEGATE_WRITE = 2, }; typedef enum open_delegation_type4 open_delegation_type4; enum open_claim_type4 { CLAIM_NULL = 0, CLAIM_PREVIOUS = 1, CLAIM_DELEGATE_CUR = 2, CLAIM_DELEGATE_PREV = 3, }; typedef enum open_claim_type4 open_claim_type4; struct open_claim_delegate_cur4 { stateid4 delegate_stateid; component4 file; }; typedef struct open_claim_delegate_cur4 open_claim_delegate_cur4; struct open_claim4 { open_claim_type4 claim; union { component4 file; open_delegation_type4 delegate_type; open_claim_delegate_cur4 delegate_cur_info; component4 file_delegate_prev; } open_claim4_u; }; typedef struct open_claim4 open_claim4; struct OPEN4args { seqid4 seqid; uint32_t share_access; uint32_t share_deny; open_owner4 owner; openflag4 openhow; open_claim4 claim; }; typedef struct OPEN4args OPEN4args; struct open_read_delegation4 { stateid4 stateid; bool_t recall; nfsace4 permissions; }; typedef struct open_read_delegation4 open_read_delegation4; struct open_write_delegation4 { stateid4 stateid; bool_t recall; nfs_space_limit4 space_limit; nfsace4 permissions; }; typedef struct open_write_delegation4 open_write_delegation4; struct open_delegation4 { open_delegation_type4 delegation_type; union { open_read_delegation4 read; open_write_delegation4 write; } open_delegation4_u; }; typedef struct open_delegation4 open_delegation4; const uint32_t OPEN4_RESULT_CONFIRM {0x00000002}; const uint32_t OPEN4_RESULT_LOCKTYPE_POSIX {0x00000004}; struct OPEN4resok { stateid4 stateid; change_info4 cinfo; uint32_t rflags; bitmap4 attrset; open_delegation4 delegation; }; typedef struct OPEN4resok OPEN4resok; struct OPEN4res { nfsstat4 status; union { OPEN4resok resok4; } OPEN4res_u; }; typedef struct OPEN4res OPEN4res; struct OPENATTR4args { bool_t createdir; }; typedef struct OPENATTR4args OPENATTR4args; struct OPENATTR4res { nfsstat4 status; }; typedef struct OPENATTR4res OPENATTR4res; struct OPEN_CONFIRM4args { stateid4 open_stateid; seqid4 seqid; }; typedef struct OPEN_CONFIRM4args OPEN_CONFIRM4args; struct OPEN_CONFIRM4resok { stateid4 open_stateid; }; typedef struct OPEN_CONFIRM4resok OPEN_CONFIRM4resok; struct OPEN_CONFIRM4res { nfsstat4 status; union { OPEN_CONFIRM4resok resok4; } OPEN_CONFIRM4res_u; }; typedef struct OPEN_CONFIRM4res OPEN_CONFIRM4res; struct OPEN_DOWNGRADE4args { stateid4 open_stateid; seqid4 seqid; uint32_t share_access; uint32_t share_deny; }; typedef struct OPEN_DOWNGRADE4args OPEN_DOWNGRADE4args; struct OPEN_DOWNGRADE4resok { stateid4 open_stateid; }; typedef struct OPEN_DOWNGRADE4resok OPEN_DOWNGRADE4resok; struct OPEN_DOWNGRADE4res { nfsstat4 status; union { OPEN_DOWNGRADE4resok resok4; } OPEN_DOWNGRADE4res_u; }; typedef struct OPEN_DOWNGRADE4res OPEN_DOWNGRADE4res; struct PUTFH4args { nfs_fh4 object; }; typedef struct PUTFH4args PUTFH4args; struct PUTFH4res { nfsstat4 status; }; typedef struct PUTFH4res PUTFH4res; struct PUTPUBFH4res { nfsstat4 status; }; typedef struct PUTPUBFH4res PUTPUBFH4res; struct PUTROOTFH4res { nfsstat4 status; }; typedef struct PUTROOTFH4res PUTROOTFH4res; struct READ4args { stateid4 stateid; offset4 offset; count4 count; }; typedef struct READ4args READ4args; struct READ4resok { bool_t eof; struct { u_int data_len; char *data_val; } data; }; typedef struct READ4resok READ4resok; struct READ4res { nfsstat4 status; union { READ4resok resok4; } READ4res_u; }; typedef struct READ4res READ4res; struct READDIR4args { nfs_cookie4 cookie; verifier4 cookieverf; count4 dircount; count4 maxcount; bitmap4 attr_request; }; typedef struct READDIR4args READDIR4args; struct entry4 { nfs_cookie4 cookie; component4 name; fattr4 attrs; struct entry4 *nextentry; }; typedef struct entry4 entry4; struct dirlist4 { entry4 *entries; bool_t eof; }; typedef struct dirlist4 dirlist4; struct READDIR4resok { verifier4 cookieverf; dirlist4 reply; }; typedef struct READDIR4resok READDIR4resok; struct READDIR4res { nfsstat4 status; union { READDIR4resok resok4; } READDIR4res_u; }; typedef struct READDIR4res READDIR4res; struct READLINK4resok { linktext4 link; }; typedef struct READLINK4resok READLINK4resok; struct READLINK4res { nfsstat4 status; union { READLINK4resok resok4; } READLINK4res_u; }; typedef struct READLINK4res READLINK4res; struct REMOVE4args { component4 target; }; typedef struct REMOVE4args REMOVE4args; struct REMOVE4resok { change_info4 cinfo; }; typedef struct REMOVE4resok REMOVE4resok; struct REMOVE4res { nfsstat4 status; union { REMOVE4resok resok4; } REMOVE4res_u; }; typedef struct REMOVE4res REMOVE4res; struct RENAME4args { component4 oldname; component4 newname; }; typedef struct RENAME4args RENAME4args; struct RENAME4resok { change_info4 source_cinfo; change_info4 target_cinfo; }; typedef struct RENAME4resok RENAME4resok; struct RENAME4res { nfsstat4 status; union { RENAME4resok resok4; } RENAME4res_u; }; typedef struct RENAME4res RENAME4res; struct RENEW4args { clientid4 clientid; }; typedef struct RENEW4args RENEW4args; struct RENEW4res { nfsstat4 status; }; typedef struct RENEW4res RENEW4res; struct RESTOREFH4res { nfsstat4 status; }; typedef struct RESTOREFH4res RESTOREFH4res; struct SAVEFH4res { nfsstat4 status; }; typedef struct SAVEFH4res SAVEFH4res; struct SECINFO4args { component4 name; }; typedef struct SECINFO4args SECINFO4args; enum rpc_gss_svc_t { RPC_GSS_SVC_NONE = 1, RPC_GSS_SVC_INTEGRITY = 2, RPC_GSS_SVC_PRIVACY = 3, }; typedef enum rpc_gss_svc_t rpc_gss_svc_t; struct rpcsec_gss_info { sec_oid4 oid; qop4 qop; rpc_gss_svc_t service; }; typedef struct rpcsec_gss_info rpcsec_gss_info; struct secinfo4 { uint32_t flavor; union { rpcsec_gss_info flavor_info; } secinfo4_u; }; typedef struct secinfo4 secinfo4; typedef struct { u_int SECINFO4resok_len; secinfo4 *SECINFO4resok_val; } SECINFO4resok; struct SECINFO4res { nfsstat4 status; union { SECINFO4resok resok4; } SECINFO4res_u; }; typedef struct SECINFO4res SECINFO4res; struct SETATTR4args { stateid4 stateid; fattr4 obj_attributes; }; typedef struct SETATTR4args SETATTR4args; struct SETATTR4res { nfsstat4 status; bitmap4 attrsset; }; typedef struct SETATTR4res SETATTR4res; struct SETCLIENTID4args { nfs_client_id4 client; cb_client4 callback; uint32_t callback_ident; }; typedef struct SETCLIENTID4args SETCLIENTID4args; struct SETCLIENTID4resok { clientid4 clientid; verifier4 setclientid_confirm; }; typedef struct SETCLIENTID4resok SETCLIENTID4resok; struct SETCLIENTID4res { nfsstat4 status; union { SETCLIENTID4resok resok4; clientaddr4 client_using; } SETCLIENTID4res_u; }; typedef struct SETCLIENTID4res SETCLIENTID4res; struct SETCLIENTID_CONFIRM4args { clientid4 clientid; verifier4 setclientid_confirm; }; typedef struct SETCLIENTID_CONFIRM4args SETCLIENTID_CONFIRM4args; struct SETCLIENTID_CONFIRM4res { nfsstat4 status; }; typedef struct SETCLIENTID_CONFIRM4res SETCLIENTID_CONFIRM4res; struct VERIFY4args { fattr4 obj_attributes; }; typedef struct VERIFY4args VERIFY4args; struct VERIFY4res { nfsstat4 status; }; typedef struct VERIFY4res VERIFY4res; enum stable_how4 { UNSTABLE4 = 0, DATA_SYNC4 = 1, FILE_SYNC4 = 2, }; typedef enum stable_how4 stable_how4; struct WRITE4args { stateid4 stateid; offset4 offset; stable_how4 stable; struct { u_int data_len; char *data_val; } data; }; typedef struct WRITE4args WRITE4args; struct WRITE4resok { count4 count; stable_how4 committed; verifier4 writeverf; }; typedef struct WRITE4resok WRITE4resok; struct WRITE4res { nfsstat4 status; union { WRITE4resok resok4; } WRITE4res_u; }; typedef struct WRITE4res WRITE4res; struct RELEASE_LOCKOWNER4args { lock_owner4 lock_owner; }; typedef struct RELEASE_LOCKOWNER4args RELEASE_LOCKOWNER4args; struct RELEASE_LOCKOWNER4res { nfsstat4 status; }; typedef struct RELEASE_LOCKOWNER4res RELEASE_LOCKOWNER4res; struct ILLEGAL4res { nfsstat4 status; }; typedef struct ILLEGAL4res ILLEGAL4res; enum nfs_opnum4 { OP_ACCESS = 3, OP_CLOSE = 4, OP_COMMIT = 5, OP_CREATE = 6, OP_DELEGPURGE = 7, OP_DELEGRETURN = 8, OP_GETATTR = 9, OP_GETFH = 10, OP_LINK = 11, OP_LOCK = 12, OP_LOCKT = 13, OP_LOCKU = 14, OP_LOOKUP = 15, OP_LOOKUPP = 16, OP_NVERIFY = 17, OP_OPEN = 18, OP_OPENATTR = 19, OP_OPEN_CONFIRM = 20, OP_OPEN_DOWNGRADE = 21, OP_PUTFH = 22, OP_PUTPUBFH = 23, OP_PUTROOTFH = 24, OP_READ = 25, OP_READDIR = 26, OP_READLINK = 27, OP_REMOVE = 28, OP_RENAME = 29, OP_RENEW = 30, OP_RESTOREFH = 31, OP_SAVEFH = 32, OP_SECINFO = 33, OP_SETATTR = 34, OP_SETCLIENTID = 35, OP_SETCLIENTID_CONFIRM = 36, OP_VERIFY = 37, OP_WRITE = 38, OP_RELEASE_LOCKOWNER = 39, OP_GET_DIR_DELEGATION = 40, OP_ILLEGAL = 10044, }; typedef enum nfs_opnum4 nfs_opnum4; union nfs_argop4_u_t { ACCESS4args opaccess; CLOSE4args opclose; COMMIT4args opcommit; CREATE4args opcreate; DELEGPURGE4args opdelegpurge; DELEGRETURN4args opdelegreturn; GETATTR4args opgetattr; LINK4args oplink; LOCK4args oplock; LOCKT4args oplockt; LOCKU4args oplocku; LOOKUP4args oplookup; NVERIFY4args opnverify; OPEN4args opopen; OPENATTR4args opopenattr; OPEN_CONFIRM4args opopen_confirm; OPEN_DOWNGRADE4args opopen_downgrade; PUTFH4args opputfh; READ4args opread; READDIR4args opreaddir; REMOVE4args opremove; RENAME4args oprename; RENEW4args oprenew; SECINFO4args opsecinfo; SETATTR4args opsetattr; SETCLIENTID4args opsetclientid; SETCLIENTID_CONFIRM4args opsetclientid_confirm; VERIFY4args opverify; WRITE4args opwrite; RELEASE_LOCKOWNER4args oprelease_lockowner; GET_DIR_DELEGATION4args opget_dir_delegation; }; struct nfs_argop4 { nfs_opnum4 argop; nfs_argop4_u_t nfs_argop4_u; }; typedef struct nfs_argop4 nfs_argop4; union nfs_resop4_u_t { ACCESS4res opaccess; CLOSE4res opclose; COMMIT4res opcommit; CREATE4res opcreate; DELEGPURGE4res opdelegpurge; DELEGRETURN4res opdelegreturn; GETATTR4res opgetattr; GETFH4res opgetfh; LINK4res oplink; LOCK4res oplock; LOCKT4res oplockt; LOCKU4res oplocku; LOOKUP4res oplookup; LOOKUPP4res oplookupp; NVERIFY4res opnverify; OPEN4res opopen; OPENATTR4res opopenattr; OPEN_CONFIRM4res opopen_confirm; OPEN_DOWNGRADE4res opopen_downgrade; PUTFH4res opputfh; PUTPUBFH4res opputpubfh; PUTROOTFH4res opputrootfh; READ4res opread; READDIR4res opreaddir; READLINK4res opreadlink; REMOVE4res opremove; RENAME4res oprename; RENEW4res oprenew; RESTOREFH4res oprestorefh; SAVEFH4res opsavefh; SECINFO4res opsecinfo; SETATTR4res opsetattr; SETCLIENTID4res opsetclientid; SETCLIENTID_CONFIRM4res opsetclientid_confirm; VERIFY4res opverify; WRITE4res opwrite; RELEASE_LOCKOWNER4res oprelease_lockowner; GET_DIR_DELEGATION4res opget_dir_delegation; ILLEGAL4res opillegal; }; struct nfs_resop4 { nfs_opnum4 resop; nfs_resop4_u_t nfs_resop4_u; }; typedef struct nfs_resop4 nfs_resop4; struct COMPOUND4args { utf8str_cs tag; uint32_t minorversion; struct { u_int argarray_len; nfs_argop4 *argarray_val; } argarray; }; typedef struct COMPOUND4args COMPOUND4args; struct COMPOUND4res { nfsstat4 status; utf8str_cs tag; struct { u_int resarray_len; nfs_resop4 *resarray_val; } resarray; }; typedef struct COMPOUND4res COMPOUND4res; struct CB_GETATTR4args { nfs_fh4 fh; bitmap4 attr_request; }; typedef struct CB_GETATTR4args CB_GETATTR4args; struct CB_GETATTR4resok { fattr4 obj_attributes; }; typedef struct CB_GETATTR4resok CB_GETATTR4resok; struct CB_GETATTR4res { nfsstat4 status; union { CB_GETATTR4resok resok4; } CB_GETATTR4res_u; }; typedef struct CB_GETATTR4res CB_GETATTR4res; struct CB_RECALL4args { stateid4 stateid; bool_t truncate; nfs_fh4 fh; }; typedef struct CB_RECALL4args CB_RECALL4args; struct CB_RECALL4res { nfsstat4 status; }; typedef struct CB_RECALL4res CB_RECALL4res; struct CB_ILLEGAL4res { nfsstat4 status; }; typedef struct CB_ILLEGAL4res CB_ILLEGAL4res; enum nfs_cb_opnum4 { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_ILLEGAL = 10044, }; typedef enum nfs_cb_opnum4 nfs_cb_opnum4; struct nfs_cb_argop4 { u_int argop; union { CB_GETATTR4args opcbgetattr; CB_RECALL4args opcbrecall; } nfs_cb_argop4_u; }; typedef struct nfs_cb_argop4 nfs_cb_argop4; struct nfs_cb_resop4 { u_int resop; union { CB_GETATTR4res opcbgetattr; CB_RECALL4res opcbrecall; CB_ILLEGAL4res opcbillegal; } nfs_cb_resop4_u; }; typedef struct nfs_cb_resop4 nfs_cb_resop4; struct CB_COMPOUND4args { utf8str_cs tag; uint32_t minorversion; uint32_t callback_ident; struct { u_int argarray_len; nfs_cb_argop4 *argarray_val; } argarray; }; typedef struct CB_COMPOUND4args CB_COMPOUND4args; struct CB_COMPOUND4res { nfsstat4 status; utf8str_cs tag; struct { u_int resarray_len; nfs_cb_resop4 *resarray_val; } resarray; }; typedef struct CB_COMPOUND4res CB_COMPOUND4res; const uint32_t NFS4_PROGRAM {100003}; #define NFS_V4 4 const uint32_t NFSPROC4_NULL {0}; const uint32_t NFSPROC4_COMPOUND {1}; const uint32_t NFS4_CALLBACK {0x40000000}; const uint32_t NFS_CB {1}; const uint32_t CB_NULL {0}; const uint32_t CB_COMPOUND {1}; } // namespace NFS4 } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//NFS4_TYPES_RPCGEN_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/nfs_types.h000066400000000000000000000146151261713114600170550ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: All RFC1813 declared structures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS_TYPES_H #define NFS_TYPES_H //------------------------------------------------------------------------------ namespace NST { namespace API { static const unsigned int NFS_V40 {0}; static const unsigned int NFS_V41 {1}; //! struct ProcEnumNFS3 - containts all NFSv3 procedures struct ProcEnumNFS3 { enum NFSProcedure { NFS_NULL = 0, GETATTR = 1, SETATTR = 2, LOOKUP = 3, ACCESS = 4, READLINK = 5, READ = 6, WRITE = 7, CREATE = 8, MKDIR = 9, SYMLINK = 10, MKNOD = 11, REMOVE = 12, RMDIR = 13, RENAME = 14, LINK = 15, READDIR = 16, READDIRPLUS = 17, FSSTAT = 18, FSINFO = 19, PATHCONF = 20, COMMIT = 21 }; static const unsigned int count {22}; //!< amount of procedures }; //! struct ProcEnumNFS4 - containts all NFSv4.0 procedures and operations struct ProcEnumNFS4 { enum NFSProcedure { NFS_NULL = 0, COMPOUND = 1, ACCESS = 3, CLOSE = 4, COMMIT = 5, CREATE = 6, DELEGPURGE = 7, DELEGRETURN = 8, GETATTR = 9, GETFH = 10, LINK = 11, LOCK = 12, LOCKT = 13, LOCKU = 14, LOOKUP = 15, LOOKUPP = 16, NVERIFY = 17, OPEN = 18, OPENATTR = 19, OPEN_CONFIRM = 20, OPEN_DOWNGRADE = 21, PUTFH = 22, PUTPUBFH = 23, PUTROOTFH = 24, READ = 25, READDIR = 26, READLINK = 27, REMOVE = 28, RENAME = 29, RENEW = 30, RESTOREFH = 31, SAVEFH = 32, SECINFO = 33, SETATTR = 34, SETCLIENTID = 35, SETCLIENTID_CONFIRM = 36, VERIFY = 37, WRITE = 38, RELEASE_LOCKOWNER = 39, GET_DIR_DELEGATION = 40, ILLEGAL = 10044 // Pleause, keep in mind that in all cases we suppose that NFSv4.0 // operation ILLEGAL(10044) has the second position in ProcEnumNFS4 }; static const unsigned int count {41}; //!< amount of procedures & operations together static const unsigned int count_proc {2}; //!< amount of procedures }; //! struct ProcEnumNFS41 - containts all NFSv4.1 procedures and operations struct ProcEnumNFS41 { enum NFSProcedure { NFS_NULL = 0, COMPOUND = 1, ACCESS = 3, CLOSE = 4, COMMIT = 5, CREATE = 6, DELEGPURGE = 7, DELEGRETURN = 8, GETATTR = 9, GETFH = 10, LINK = 11, LOCK = 12, LOCKT = 13, LOCKU = 14, LOOKUP = 15, LOOKUPP = 16, NVERIFY = 17, OPEN = 18, OPENATTR = 19, OPEN_CONFIRM = 20, OPEN_DOWNGRADE = 21, PUTFH = 22, PUTPUBFH = 23, PUTROOTFH = 24, READ = 25, READDIR = 26, READLINK = 27, REMOVE = 28, RENAME = 29, RENEW = 30, RESTOREFH = 31, SAVEFH = 32, SECINFO = 33, SETATTR = 34, SETCLIENTID = 35, SETCLIENTID_CONFIRM = 36, VERIFY = 37, WRITE = 38, RELEASE_LOCKOWNER = 39, BACKCHANNEL_CTL = 40, BIND_CONN_TO_SESSION = 41, EXCHANGE_ID = 42, CREATE_SESSION = 43, DESTROY_SESSION = 44, FREE_STATEID = 45, GET_DIR_DELEGATION = 46, GETDEVICEINFO = 47, GETDEVICELIST = 48, LAYOUTCOMMIT = 49, LAYOUTGET = 50, LAYOUTRETURN = 51, SECINFO_NO_NAME = 52, SEQUENCE = 53, SET_SSV = 54, TEST_STATEID = 55, WANT_DELEGATION = 56, DESTROY_CLIENTID = 57, RECLAIM_COMPLETE = 58, ILLEGAL = 10044 // Pleause, keep in mind that in all cases we suppose that NFSv4.1 // operation ILLEGAL(10044) has the second position in ProcEnumNFS41 }; static const unsigned int count {59}; //!< amount of procedures & operations together static const unsigned int count_proc {2}; //!< amount of procedures }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//NFS_TYPES_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/plugin_api.h.in000066400000000000000000000122031261713114600175660ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou (Alexey Costroma) // Description: Unique Plugin-API interface header. // Aggregated all definitions for plugins' development // Copyright (c) 2013-2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PLUGIN_API_H #define PLUGIN_API_H //------------------------------------------------------------------------------ #include #include "cifs_commands.h" #include "cifs2_commands.h" #include "ianalyzer.h" #include "nfs_types.h" #include "nfs3_types_rpcgen.h" #include "nfs4_types_rpcgen.h" #include "nfs41_types_rpcgen.h" //------------------------------------------------------------------------------ #define NST_PUBLIC __attribute__ ((visibility("default"))) /*! Macro is used to register nfstrace plugin * * \param U - plugin_usage_func * \param C - plugin_create_func * \param D - plugin_destroy_func * \param G - plugin_requirements_func */ #define NST_PLUGIN_ENTRY_POINTS(U, C, D, G) \ NST_PUBLIC \ const plugin_entry_points* nst_get_entry_points() \ { \ static const plugin_entry_points entry_points \ {NST_PLUGIN_API_VERSION, sizeof(plugin_entry_points), U, C, D, G}; \ return &entry_points; \ } //------------------------------------------------------------------------------ using namespace NST::API; //------------------------------------------------------------------------------ //! Analyzer requirements structure struct AnalyzerRequirements { const bool silence; //!< Exclusive control over standard output is required. //! Constructs analyzer requirements /*! * \param exclusive_stdout Exclusive control over standard output is required */ AnalyzerRequirements(bool v = false) : silence{v} {} }; //------------------------------------------------------------------------------ extern "C" { // These calls implemented by nfstrace /*! Returns CIFSv1 command name by code * * \param cmd_code Command code */ const char* print_cifs1_procedures(SMBv1::SMBv1Commands cmd_code); /*! Returns CIFSv2 command name by code * * \param cmd_code Command code */ const char* print_cifs2_procedures(SMBv2::SMBv2Commands cmd_code); /*! Returns NFSv3 command name by procedure id * * \param proc ProcEnumNFS3::NFSProcedure procedure */ const char* print_nfs3_procedures(const ProcEnumNFS3::NFSProcedure proc); /*! Returns NFSv4 command name by procedure id * * \param proc ProcEnumNFS4::NFSProcedure procedure */ const char* print_nfs4_procedures(const ProcEnumNFS4::NFSProcedure proc); /*! Returns NFSv41 command name by procedure id * * \param proc ProcEnumNFS41::NFSProcedure procedure */ const char* print_nfs41_procedures(const ProcEnumNFS41::NFSProcedure proc); /*! Prints session information to out * * \param out output stream * \param session session object */ void print_session(std::ostream& out, const Session& session); void print_nfs_fh(std::ostream& out, const char* const val, const uint32_t len); } // These functions must be implemented by pluggable analysis module // Pointers to these functions must be passed to NST_PLUGIN_ENTRY_POINTS() macro using plugin_usage_func = const char* (*)(); // return description of options for create(opts) using plugin_create_func = IAnalyzer* (*)(const char*); // create an instance of an Analyzer using plugin_destroy_func = void (*)(IAnalyzer*); // destroy instance of an Analyzer using plugin_requirements_func = const AnalyzerRequirements* (*)(); // return Analyzer's requirements struct plugin_entry_points { const uint32_t vers; const size_t size; plugin_usage_func usage; plugin_create_func create; plugin_destroy_func destroy; plugin_requirements_func requirements; }; // The NST_PLUGIN_ENTRY_POINTS macro defines this function using plugin_get_entry_points_func = const plugin_entry_points* (*)(); constexpr uint32_t NST_PLUGIN_API_VERSION = @NST_V_MAJOR@ * 1000 + @NST_V_MINOR@ * 100 + @NST_V_PATCH@; //------------------------------------------------------------------------------ #endif//PLUGIN_API_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/procedure.h000066400000000000000000000032551261713114600170310ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Abstraction of operation (CIFS or NFS) // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PROCEDURE_H #define PROCEDURE_H //------------------------------------------------------------------------------ #include #include "session.h" //------------------------------------------------------------------------------ namespace NST { namespace API { template struct Procedure { ProcedureType call; ProcedureType reply; const struct Session* session; const struct timeval* ctimestamp; const struct timeval* rtimestamp; }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//PROCEDURE_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/rpc_types.h000066400000000000000000000106031261713114600170440ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Definition of Sun RPC (Remote Procedure Call) types // RFC 5531 2009 RPC: Remote Procedure Call Protocol Specification Version 2 // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef RPC_TYPES_H #define RPC_TYPES_H //------------------------------------------------------------------------------ #include "procedure.h" #include "xdr_types.h" //------------------------------------------------------------------------------ namespace NST { namespace API { using RPCProcedure = Procedure; const uint32_t SUNRPC_MSG_VERSION = 2; enum MsgType : int32_t { CALL =0, REPLY=1 }; enum ReplyStat : int32_t { MSG_ACCEPTED=0, MSG_DENIED =1 }; enum AcceptStat : int32_t { SUCCESS =0, /* RPC executed successfully */ PROG_UNAVAIL =1, /* remote hasn't exported program */ PROG_MISMATCH=2, /* remote can't support version # */ PROC_UNAVAIL =3, /* program can't support procedure */ GARBAGE_ARGS =4, /* procedure can't decode params */ SYSTEM_ERR =5 /* errors like memory allocation failure */ }; enum RejectStat : int32_t { RPC_MISMATCH =0, /* RPC version number != 2 */ AUTH_ERROR =1 /* remote can't authenticate caller */ }; // Status returned from authentication check enum AuthStat : int32_t { AUTH_OK =0, /* success */ /* * failed at remote end */ AUTH_BADCRED =1, /* bad credential (seal broken) */ AUTH_REJECTEDCRED =2, /* client must begin new session */ AUTH_BADVERF =3, /* bad verifier (seal broken) */ AUTH_REJECTEDVERF =4, /* verifier expired or replayed */ AUTH_TOOWEAK =5, /* rejected for security reasons */ /* * failed locally */ SUNRPC_AUTH_INVALIDRESP =6, /* bogus response verifier */ SUNRPC_AUTH_FAILED =7, /* reason unknown */ /* * AUTH_KERB errors; deprecated. See [RFC2695] */ AUTH_KERB_GENERIC = 8, /* kerberos generic error */ AUTH_TIMEEXPIRE = 9, /* time of credential expired */ AUTH_TKT_FILE = 10,/* problem with ticket file */ AUTH_DECODE = 11,/* can't decode authenticator */ AUTH_NET_ADDR = 12,/* wrong net address in ticket */ /* * RPCSEC_GSS GSS related errors */ RPCSEC_GSS_CREDPROBLEM = 13,/* no credentials for user */ RPCSEC_GSS_CTXPROBLEM = 14 /* problem with context */ }; struct OpaqueAuth { uint32_t flavor; Opaque body; }; struct MismatchInfo { uint32_t low; uint32_t high; }; struct RPCMessage { uint32_t xid; uint32_t type; }; struct RPCCall : public RPCMessage { uint32_t rpcvers; uint32_t prog; uint32_t vers; uint32_t proc; OpaqueAuth cred; OpaqueAuth verf; }; struct AcceptedReply { OpaqueAuth verf; uint32_t stat; MismatchInfo mismatch_info; }; struct RejectedReply { uint32_t stat; union U { MismatchInfo mismatch_info; OpaqueAuth auth_stat; } u; }; struct RPCReply : public RPCMessage { uint32_t stat; union U { AcceptedReply accepted; RejectedReply rejected; } u; }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//RPC_TYPES_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/session.h000066400000000000000000000043251261713114600165230ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Session structure. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef SESSION_H #define SESSION_H //------------------------------------------------------------------------------ #include #include // for in_port_t, in_addr_t types //------------------------------------------------------------------------------ namespace NST { namespace API { struct Session { enum Direction { Source =0, Destination =1, Unknown =0xBAD }; enum Type { TCP=0, UDP=1 } type :16; // 16 bit for alignment following integers enum IPType { v4=0, v6=1 } ip_type:16; // 16 bit for alignment following integers in_port_t port[2]; // 2 ports in network byte order union IPAddress { struct // 2 IPv4 addresses in network byte order { in_addr_t addr[2]; } v4; union // 2 IPv6 addresses in network byte order { uint8_t addr [2][16]; uint32_t addr_uint32[2][4]; } __attribute__ ((__packed__)) v6; } ip; }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//SESSION_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/api/xdr_types.h000066400000000000000000000034221261713114600170560ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Definition of XDR structures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef XDR_TYPES_H #define XDR_TYPES_H //------------------------------------------------------------------------------ #include #include //------------------------------------------------------------------------------ namespace NST { namespace API { struct Opaque { inline void set(const uint8_t* p, uint32_t n) { ptr = p; len = n; } inline uint8_t operator[](size_t i) const { return ptr[i]; } inline const uint8_t* data() const { return ptr; } inline uint32_t size() const { return len; } const uint8_t* ptr; uint32_t len; }; } // namespace API } // namespace NST //------------------------------------------------------------------------------ #endif//XDR_TYPES_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/000077500000000000000000000000001261713114600162755ustar00rootroot00000000000000nfstrace-0.4.1/src/controller/build_info.h.in000066400000000000000000000032471261713114600211730ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Mikhail Litvinets // Description: Contains program version and build information. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef BUILD_INFO_H #define BUILD_INFO_H //------------------------------------------------------------------------------ namespace NST { constexpr unsigned int NST_VERSION = @NST_V_MAJOR@ * 1000 + @NST_V_MINOR@ * 100 + @NST_V_PATCH@; constexpr char PROGRAM_BUILD_INFO[]= "@NST_VERSION_FULL@\n" "built on @CMAKE_SYSTEM@\n" "by C++ compiler @CMAKE_CXX_COMPILER_ID@ @CMAKE_CXX_COMPILER_VERSION@"; constexpr char MODULES_DIRECTORY_PATH[] = "@CMAKE_INSTALL_PREFIX@/lib/nfstrace/"; } // namespace NST //------------------------------------------------------------------------------ #endif//BUILD_INFO_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/cmdline_args.cpp000066400000000000000000000125621261713114600214360ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Yauheni Azaranka // Description: Structure describing command-line arguments. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "controller/cmdline_args.h" //------------------------------------------------------------------------------ #define LIVE "live" #define DUMP "dump" #define STAT "stat" #define DRAIN "drain" //------------------------------------------------------------------------------ namespace NST { namespace controller { namespace cmdline { const char* const Args::profiling_mode {LIVE}; const char* const Args::dumping_mode {DUMP}; const char* const Args::analysis_mode {STAT}; const char* const Args::draining_mode {DRAIN}; // This array will be indexed via elements of Args::Names enumeration. Keep it in the same order. Opt Args::options[Args::num] = { {'m', "mode", Opt::REQ, LIVE, "set the running mode", DRAIN "|" LIVE "|" DUMP "|" STAT, nullptr, false}, {'i', "interface", Opt::REQ, "FIRST-NIC", "listen interface, it is required for " LIVE " and " DUMP " modes", "INTERFACE", nullptr, false}, {'f', "filtration", Opt::REQ, "port 2049 or port 445","specify the packet filter in BPF syntax(see pcap-filter(7))", "BPF", nullptr, false}, {'s', "snaplen", Opt::REQ, "65535", "set the max length of captured raw packet (bigger packets will be truncated). Can be used ONLY FOR UDP", "1..65535", nullptr, false}, {'t', "timeout", Opt::REQ, "100", "set the read timeout that will be used while capturing", "Milliseconds", nullptr, false}, {'b', "bsize", Opt::REQ, "20", "set the size of operation system capture buffer in MBytes; note that this option is crucial for capturing performance", "MBytes", nullptr, false}, {'p', "promisc", Opt::REQ, "true", "put the capturing interface into promiscuous mode", nullptr, nullptr, false}, {'d', "direction", Opt::REQ, "inout", "set the direction for which packets will be captured", "in|out|inout", nullptr, false}, {'a', "analysis", Opt::MUL, "", "specify the path to an analysis module and set its options (if any)", "PATH#opt1,opt2=val,...", nullptr, false}, {'I', "ifile", Opt::REQ, "PROGRAMNAME-BPF.pcap","specify the input file for " STAT " mode, the '-' means stdin", "PATH", nullptr, false}, {'O', "ofile", Opt::REQ, "PROGRAMNAME-BPF.pcap","specify the output file for " DUMP " mode, the '-' means stdout", "PATH", nullptr, false}, { 0 , "log", Opt::REQ, "nfstrace.log", "specify the log file", "PATH", nullptr, false}, {'C', "command", Opt::REQ, "", "execute command for each dumped file", "\"shell command\"", nullptr, false}, {'D', "dump-size", Opt::REQ, "0", "set the size of dumping file portion, 0 means no limit", "MBytes", nullptr, false}, {'E', "enum", Opt::REQ, "none", "enumerate all available network interfaces and/or all available plugins, then exit", "interfaces|plugins|-", nullptr, false}, {'M', "msg-header", Opt::REQ, "512", "Truncate RPC messages to this limit (specified in bytes) before passing to a pluggable analysis module", "1..4000", nullptr, false}, {'Q', "qcapacity", Opt::REQ, "4096", "set the initial capacity of the queue with RPC messages", "1..65535", nullptr, false}, {'T', "trace", Opt::NOA, "false", "print collected NFSv3 or NFSv4 procedures, true if no modules were passed with -a option", nullptr, nullptr, false}, {'Z', "droproot", Opt::REQ, "", "drop root privileges after opening the capture device", "username", nullptr, false}, {'v', "verbose", Opt::REQ, "1", "specify verbosity level", "0|1|2", nullptr, false}, {'h', "help", Opt::NOA, "false", "print help message and usage for modules passed with -a options, then exit", nullptr, nullptr, false} }; } // namespace cmdline } // namespace controller } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/cmdline_args.h000066400000000000000000000043721261713114600211030ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Yauheni Azaranka // Description: Structure describing command-line arguments. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CMDLINE_ARGS_H #define CMDLINE_ARGS_H //------------------------------------------------------------------------------ #include "controller/cmdline_parser.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { namespace cmdline { struct Args { friend class CmdlineParser; enum Names { ArgMode, ArgInterface, ArgFilter, ArgSnaplen, ArgTimeout, ArgBSize, ArgPromisc, ArgDirection, ArgAnalyzers, ArgIFile, ArgOFile, ArgLogPath, ArgCommand, ArgDSize, ArgEnum, ArgMSize, ArgQSize, ArgTrace, ArgDropRoot, ArgVerbose, ArgHelp, num }; static const char* const profiling_mode; static const char* const dumping_mode; static const char* const analysis_mode; static const char* const draining_mode; private: static Opt options[num]; Args() = delete; }; } // namespace cmdline } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//CMDLINE_PARSER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/cmdline_parser.h000066400000000000000000000212451261713114600214410ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Command-line arguments parser. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CMDLINE_PARSER_H #define CMDLINE_PARSER_H //------------------------------------------------------------------------------ #include #include #include #include #include #include #include //------------------------------------------------------------------------------ namespace NST { namespace controller { namespace cmdline { class CLIError : public std::runtime_error { public: explicit CLIError(const std::string& msg) : std::runtime_error{msg} { } }; struct Opt { class Value { public: Value(const char* const v) : value{v}{} Value(Value&&) = default; Value(const Value&) = delete; Value& operator=(const Value&) = delete; operator std::string() const { return std::string{value}; } const char* to_cstr() const { return value; } int to_int() const { return atoi(value); } bool to_bool() const { return strcmp(value, "true") == 0; } bool is(const char* s) const { return strcmp(value, s) == 0; } private: const char*const value; }; enum Type { NOA, REQ, MUL }; const char short_opt; // a character for short option, can be 0 const char* const long_opt; // a string long option, can be nullptr const Type type; const char* const deflt; // default value const char* const description; const char* value_pattern; const char* value; bool passed; // is option parsed }; template class CmdlineParser { public: CmdlineParser() = default; virtual ~CmdlineParser() = default; CmdlineParser(const CmdlineParser&) = delete; CmdlineParser& operator=(const CmdlineParser&) = delete; void parse(int argc, char** argv); void validate(); static Opt::Value get(typename CLI::Names name) { return Opt::Value{CLI::options[name].value}; } static bool is_passed(typename CLI::Names name) { return CLI::options[name].passed; } static bool is_default(typename CLI::Names name) { const Opt& a = CLI::options[name]; return a.value == a.deflt; // compare pointers } static void print_usage(std::ostream& out, const char* executable); private: virtual void set_multiple_value(int /*index*/, char *const /*v*/){} void set_value(int index, char *const v) { Opt& a = CLI::options[index]; // if option argument specified - set it otherwise // set valid default OR "true" for no-args options a.value = v ? v : (a.deflt && a.type != Opt::Type::NOA ? a.deflt : "true"); a.passed = true; if(a.type == Opt::Type::MUL) { set_multiple_value(index, v); } } static std::string build_name(char short_name, const std::string& long_name) { if(short_name) { return { '\'', '-', short_name, '\'' }; } return std::string{'\''} + long_name + '\''; } static int short_opt_index(const char c) { for(int i = 0; i < CLI::num; ++i) { if(CLI::options[i].short_opt == c) { return i; } } return -1; } }; template void CmdlineParser::parse(int argc, char** argv) { // generate input data for getopt_long() option long_opts[CLI::num + 1]; // +1 for NULL-option char short_opts[CLI::num * 2 + 2] = {0}; short_opts[0] = ':'; char *short_p = &short_opts[1]; for (int i = 0; i < CLI::num; ++i) { const Opt& a = CLI::options[i]; long_opts[i].name = a.long_opt; long_opts[i].has_arg = (a.type == Opt::Type::NOA) ? no_argument : required_argument; long_opts[i].flag = 0; long_opts[i].val = 0; if(a.short_opt) { *short_p = a.short_opt; ++short_p; if(a.type != Opt::Type::NOA) { *short_p = ':'; // argument to option is required ++short_p; } } } // fill last element memset(&long_opts[CLI::num], 0, sizeof(long_opts[CLI::num])); // assuming that argc and argv are the same as those passed to program int opt_index = 0; while(true) { int opt = getopt_long(argc, argv, short_opts, long_opts, &opt_index); if(opt == -1) { break; } switch(opt) { case 0: // store long option set_value(opt_index, optarg); break; case '?': { std::string unkn{ build_name(optopt, argv[optind-1]) }; throw CLIError{std::string{"Unrecognized option: "} + unkn}; } case ':': { std::string miss{ build_name(optopt, argv[optind-1]) }; throw CLIError{std::string{"Option requires an argument: "} + miss}; } default: { // if short option found const int index = short_opt_index(opt); if(index != -1) { set_value(index, optarg); } } } } // if we get non-option element in args, throw exception if(optind != argc) { // quote non-option std::string name{ build_name(0, argv[optind]) }; throw CLIError{std::string{"Unexpected operand on command line: "} + name}; } // set default values for(Opt& o : CLI::options) { if(o.value == nullptr // is value still uninitialized? && o.deflt != nullptr) // try to substitute by default value { o.value = o.deflt; o.passed = false; } } } template void CmdlineParser::validate() { // validate Args::arguments[i].value. nullptr isn't valid! for(const Opt& o : CLI::options) { if(o.value == nullptr) // is value still uninitialized? { std::string lopt{ o.long_opt ? std::string("--") + o.long_opt : ""}; std::string name{ build_name(o.short_opt, lopt) }; throw CLIError{std::string{"Missing required option: "} + name}; } } } template void CmdlineParser::print_usage(std::ostream& out, const char* name) { out << "Usage: " << name << " [OPTIONS]..." << std::endl; for(const Opt& o : CLI::options) { std::string s_opt; std::string l_opt; std::string text; if(o.short_opt) // print out short key { char tmp[]{ '-', o.short_opt, ' ', '\0' }; if(o.long_opt) tmp[2] = ','; s_opt = std::string{" "} + tmp; //indentation } if(o.long_opt) // print out long key { l_opt = std::string{" --"} + o.long_opt; if(o.value_pattern) { l_opt += '='; l_opt += o.value_pattern; } } if(o.deflt) // has default value? { text = std::string{"(default:"} + o.deflt + ") "; } else { text = "(required) "; } if(o.description) { text += o.description; } out << std::setw(6) << s_opt << std::setiosflags(std::ios::left) << std::setw(35) << l_opt << text << std::endl; } } } // namespace cmdline } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//CMDLINE_PARSER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/controller.cpp000066400000000000000000000146771261713114600212030ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Yauheni Azaranka // Description: Class providing initializing of modules and control // of the application. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include "utils/filtered_data.h" #include "controller/controller.h" #include "controller/parameters.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { Controller::Running::Running(Controller& i) : controller(i) { controller.filtration->start(); if(controller.analysis) { controller.analysis->start(); } if(utils::Out message{}) { message << "Processing packets. Press CTRL-C to quit and view results."; } } Controller::Running::~Running() { controller.filtration->stop(); if(controller.analysis) { controller.analysis->stop(); } } Controller::Controller(const Parameters& params) try : gout {utils::Out::Level(params.verbose_level())} , glog {params.log_path()} , signals {status} , analysis {} , filtration {new FiltrationManager{status}} { switch(params.running_mode()) { case RunningMode::Profiling: { analysis.reset(new AnalysisManager{status, params}); if(analysis->isSilent()) utils::Out::Global::set_level(utils::Out::Level::Silent); filtration->add_online_analysis(params, analysis->get_queue()); } break; case RunningMode::Dumping: { filtration->add_online_dumping(params); } break; case RunningMode::Analysis: { analysis.reset(new AnalysisManager{status, params}); if(analysis->isSilent()) utils::Out::Global::set_level(utils::Out::Level::Silent); filtration->add_offline_analysis(params.input_file(), analysis->get_queue()); } break; case RunningMode::Draining: { filtration->add_offline_dumping(params); } break; } droproot(params.dropuser()); } catch(const filtration::pcap::PcapError& e) { if(utils::Out message{}) { message << "Note: This operation may require that you have special privileges."; } throw; } Controller::~Controller() { } int Controller::run() { try { Running running{*this}; while(true) { try { status.wait_and_rethrow_exception(); } catch(SignalHandler::Signal& s) { if(s.signal_number == SIGHUP) { glog.reopen(); } else if(s.signal_number == SIGWINCH) { analysis->on_unix_signal(s.signal_number); } else if(s.signal_number == SIGINT) { throw ProcessingDone{std::string{"Interrupted by user."}}; } else if(s.signal_number == SIGTERM) { throw ProcessingDone{std::string{"Interrupted by SIGTERM."}}; } else { throw ProcessingDone{std::string{"Unhandled signal presents: "} + s.what()}; } } } } catch(ProcessingDone& e) { if(utils::Out message{}) { message << e.what(); } } if(utils::Log message{}) { status.print(message); } return 0; } void droproot(const std::string& dropuser) { gid_t re_gid = getgid(); gid_t ef_gid = getegid(); uid_t re_uid = getuid(); uid_t ef_uid = geteuid(); gid_t new_gid; uid_t new_uid; if(re_gid != ef_gid || re_uid != ef_uid) // suid bit is being set { new_gid = re_gid; new_uid = re_uid; if(!dropuser.empty()) { if(utils::Out message{}) { message << "Note: Ignoring -Z option since SUID bit is set."; } } } else if(!dropuser.empty()) { struct passwd *pw = getpwnam(dropuser.c_str()); //get user uid & gid if(!pw) { throw ControllerError{std::string{"The user is not found: "} + dropuser}; } new_gid = pw->pw_gid; new_uid = pw->pw_uid; } else { if(utils::Out message{}) { message << "Note: It's potentially unsafe to run this program as root " << "without dropping root privileges.\n" << "Note: Use -Z username option for dropping root privileges " << "when you run this program as user with root privileges."; } return; } try { if(setgroups(1, &new_gid) == -1 || setgid(new_gid) == -1 || setuid(new_uid) == -1) { throw ControllerError{std::string{"Error dropping root: "} + std::string{strerror(errno)}}; } //check if we've really dropped privileges if(setuid(0) != -1) { throw ControllerError{"Managed to regain root privileges"}; } } catch(const ControllerError& e) { if(utils::Out message{}) { message << "Error dropping superuser privileges: " << e.what(); } throw; } } } // namespace controller } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/controller.h000066400000000000000000000061711261713114600206360ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Yauheni Azaranka // Description: Class providing initializing of modules and control // of the application. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CONTROLLER_H #define CONTROLLER_H //------------------------------------------------------------------------------ #include #include "analysis/analysis_manager.h" #include "filtration/filtration_manager.h" #include "controller/parameters.h" #include "controller/running_status.h" #include "controller/signal_handler.h" #include "utils/log.h" #include "utils/out.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { class ControllerError : public std::runtime_error { public: explicit ControllerError(const std::string& msg) : std::runtime_error{msg} { } }; class Controller { using AnalysisManager = NST::analysis::AnalysisManager; using FiltrationManager = NST::filtration::FiltrationManager; class Running { public: inline Running(Controller&); Running() = delete; Running(const Running&) = delete; Running& operator=(const Running&) = delete; inline ~Running(); private: Controller& controller; }; public: Controller(const Parameters&); Controller(const Controller&) = delete; Controller& operator=(const Controller&) = delete; ~Controller(); int run(); private: // initializer for global outptut utils::Out::Global gout; // initializer for global logger utils::Log::Global glog; // storage for exceptions RunningStatus status; // signal handler SignalHandler signals; // controller subsystems std::unique_ptr analysis; std::unique_ptr filtration; }; /*! Drop root privileges * * Drops privileges to the given user. If SUID is set given user is ignored * and IDs are set to real ones. * * \param dropuser - string with user name */ void droproot(const std::string& dropuser); } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//CONTROLLER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/parameters.cpp000066400000000000000000000264671261713114600211630ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Class provides validation and access to application parameters // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include "analysis/plugin.h" #include "controller/cmdline_args.h" #include "controller/cmdline_parser.h" #include "controller/parameters.h" #include "controller/build_info.h" #include "filtration/pcap/network_interfaces.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { namespace // implementation { static const class ParametersImpl* impl = nullptr; using CLI = NST::controller::cmdline::Args; class ParametersImpl : public cmdline::CmdlineParser { friend class NST::controller::Parameters; ParametersImpl(int argc, char** argv) : rpc_message_limit{0} { parse(argc, argv); if(get(CLI::ArgHelp).to_bool()) { std::cout << PROGRAM_BUILD_INFO << std::endl; print_usage(std::cout, argv[0]); for(const auto& a : analysis_modules) { const std::string& path {a.path}; try { std::cout << "Usage of " << path << ":\n"; std::cout << NST::analysis::Plugin::usage_of(path) << std::endl; } catch(std::runtime_error& e) { std::cout << e.what() << std::endl; } } } validate(); if(get(CLI::ArgEnum).is("-") || get(CLI::ArgEnum).is("interfaces")) { std::cout << "\nAvailable interfaces:" << std::endl; NST::filtration::pcap::NetworkInterfaces interfaces; if(interfaces.begin() != interfaces.end()) { for(auto i : interfaces) { std::cout << i << '\n'; for(auto a : i) std::cout << '\t' << a << '\n'; } std::cout << "[default]: " << interfaces.default_device() << '\n'; } else { std::cerr << "Note: Reading list of network interfaces may " "require that you have special privileges." << std::endl; } } if(get(CLI::ArgEnum).is("-") || get(CLI::ArgEnum).is("plugins")) { std::cout << "\nAvailable plugins:" << std::endl; DIR *dir; if((dir = opendir(MODULES_DIRECTORY_PATH)) != nullptr) { struct dirent *ent; while((ent = readdir(dir)) != nullptr) { std::string full_path = std::string{MODULES_DIRECTORY_PATH} + ent->d_name; std::string plugin_usage; try { plugin_usage = NST::analysis::Plugin::usage_of(full_path); std::cout << ent->d_name << ":" << std::endl; std::cout << plugin_usage << std::endl; std::cout << std::endl; } catch(std::runtime_error& e) { } } closedir(dir); } else { std::cerr << "Error: Can't access " << MODULES_DIRECTORY_PATH < 4000) { throw cmdline::CLIError{std::string{"Invalid limit of RPC messages: "} + get(CLI::ArgMSize).to_cstr()}; } rpc_message_limit = limit; } virtual ~ParametersImpl(){} ParametersImpl(const ParametersImpl&) = delete; ParametersImpl& operator=(const ParametersImpl&) = delete; protected: void set_multiple_value(int index, char *const v) override { if(index == CLI::ArgAnalyzers) // may have multiple values { const std::string arg{v}; size_t ind {arg.find('#')}; if(ind == std::string::npos) { analysis_modules.emplace_back(path_to_pam(arg)); } else { const std::string path{arg, 0, ind}; const std::string args{arg, ind + 1}; analysis_modules.emplace_back(path_to_pam(path), args); } } } private: std::string default_iofile() const { // create string: PROGRAMNAME-BPF-FILTER.pcap std::string str { impl->program }; str.push_back('-'); str.append(get(CLI::ArgFilter).to_cstr()); str.append(".pcap"); std::replace(str.begin(), str.end(), ' ', '-'); return str; } std::string path_to_pam(const std::string& path) const { std::string result_path; if(access(path.c_str(), F_OK) != -1) { result_path = path; } else { result_path = std::string{MODULES_DIRECTORY_PATH} + path; } return result_path; } // cashed values unsigned short rpc_message_limit; std::string program; // name of program in command line std::vector analysis_modules; }; } // unnamed namespace Parameters::Parameters(int argc, char** argv) { // init global instance only once if(impl) throw std::runtime_error{"initialized twice"}; impl = new ParametersImpl(argc, argv); } Parameters::~Parameters() { delete impl; impl = nullptr; } bool Parameters::show_help() const { return impl->get(CLI::ArgHelp).to_bool(); } bool Parameters::show_enum() const { return !impl->get(CLI::ArgEnum).is("none"); } const std::string& Parameters::program_name() const { return impl->program; } RunningMode Parameters::running_mode() const { const auto& mode = impl->get(CLI::ArgMode); if(mode.is(CLI::profiling_mode)) { return RunningMode::Profiling; } else if(mode.is(CLI::dumping_mode)) { return RunningMode::Dumping; } else if(mode.is(CLI::analysis_mode)) { return RunningMode::Analysis; } else if(mode.is(CLI::draining_mode)) { return RunningMode::Draining; } throw cmdline::CLIError{std::string{"Unknown mode: "} + mode.to_cstr()}; } std::string Parameters::input_file() const { // TODO: add file validation return impl->is_default(CLI::ArgIFile) ? impl->default_iofile() : impl->get(CLI::ArgIFile); } const std::string Parameters::dropuser() const { return impl->get(CLI::ArgDropRoot); } const std::string Parameters::log_path() const { return impl->get(CLI::ArgLogPath); } unsigned short Parameters::queue_capacity() const { const int capacity = impl->get(CLI::ArgQSize).to_int(); if(capacity < 1 || capacity > 65535) { throw cmdline::CLIError(std::string{"Invalid value of queue capacity: "} + impl->get(CLI::ArgQSize).to_cstr()); } return capacity; } bool Parameters::trace() const { // enable tracing if no analysis module was passed return impl->get(CLI::ArgTrace).to_bool() || impl->analysis_modules.empty(); } int Parameters::verbose_level() const { return impl->get(CLI::ArgVerbose).to_int(); } const Parameters::CaptureParams Parameters::capture_params() const { Parameters::CaptureParams params; params.interface = impl->get(CLI::ArgInterface); params.filter = impl->get(CLI::ArgFilter); params.snaplen = impl->get(CLI::ArgSnaplen).to_int(); params.timeout_ms = impl->get(CLI::ArgTimeout).to_int(); params.buffer_size = impl->get(CLI::ArgBSize).to_int() * 1024 * 1024; // MBytes params.promisc = impl->get(CLI::ArgPromisc).to_bool(); // check interface if(impl->is_default(CLI::ArgInterface)) { params.interface = NST::filtration::pcap::NetworkInterfaces::default_device(); } // check capture buffer size if(params.buffer_size < 1024 * 1024) // less than 1 MBytes { throw cmdline::CLIError{std::string{"Invalid value of kernel buffer size: "} + impl->get(CLI::ArgBSize).to_cstr()}; } // check max length of raw captured UDP packet if(params.snaplen < 1 || params.snaplen > 65535) { throw cmdline::CLIError{std::string{"Invalid value of max length of raw captured UDP packet: "} + impl->get(CLI::ArgSnaplen).to_cstr()}; } // check the read timeout that will be used on a capture if(params.timeout_ms < 1) { throw cmdline::CLIError{std::string{"Invalid value of read timeout that will be used on a capture: "} + impl->get(CLI::ArgTimeout).to_cstr()}; } // check and set capture direction const auto& direction = impl->get(CLI::ArgDirection); if(direction.is("in")) { params.direction = decltype(params.direction)::IN; } else if(direction.is("out")) { params.direction = decltype(params.direction)::OUT; } else if(direction.is("inout")) { params.direction = decltype(params.direction)::INOUT; } else { throw cmdline::CLIError{std::string{"Unknown capturing direction: "} + direction.to_cstr()}; } return params; } const Parameters::DumpingParams Parameters::dumping_params() const { std::string ofile = impl->is_default(CLI::ArgOFile) ? impl->default_iofile() : impl->get(CLI::ArgOFile); // TODO: add file validation const int dsize = impl->get(CLI::ArgDSize).to_int(); if(dsize != 0 && ofile == "-") // '-' is alias for stdout in libpcap dumps { throw cmdline::CLIError{std::string{"Output file \"-\" means stdout, the dump-size must be 0"}}; } Parameters::DumpingParams params; params.output_file = ofile; params.command = impl->get(CLI::ArgCommand); params.size_limit = dsize * 1024 * 1024; // MBytes return params; } const std::vector& Parameters::analysis_modules() const { return impl->analysis_modules; } unsigned short Parameters::rpcmsg_limit() { return impl->rpc_message_limit; } } // namespace controller } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/parameters.h000066400000000000000000000057101261713114600206140ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Class provides validation and access to application parameters // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PARAMETERS_H #define PARAMETERS_H //------------------------------------------------------------------------------ #include #include #include "filtration/dumping.h" #include "filtration/pcap/capture_reader.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { enum class RunningMode { Profiling, Dumping, Analysis, Draining }; struct AParams { AParams(const std::string& p) : path{p}, args{} {} AParams(const std::string& p, const std::string& a) : path{p}, args{a} {} const std::string path; const std::string args; }; /*! Protocol to analysis */ enum class NetProtocol { NFS = 0x01, //!< NFS protocol CIFS = 0x02 //!< CIFS protocol }; class Parameters { using CaptureParams = filtration::pcap::CaptureReader::Params; using DumpingParams = filtration::Dumping::Params; public: // initialize global instance Parameters(int argc, char** argv); ~Parameters(); Parameters(const Parameters&) = delete; Parameters& operator=(const Parameters&) = delete; bool show_help() const; bool show_enum() const; // access helpers const std::string& program_name() const; RunningMode running_mode() const; std::string input_file() const; const std::string dropuser() const; const std::string log_path() const; unsigned short queue_capacity() const; bool trace() const; int verbose_level() const; const CaptureParams capture_params() const; const DumpingParams dumping_params() const; const std::vector& analysis_modules() const; static unsigned short rpcmsg_limit(); }; } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//PARAMETERS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/running_status.h000066400000000000000000000073211261713114600215340ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Container for storing threads' exceptions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef RUNNING_STATUS_H #define RUNNING_STATUS_H //------------------------------------------------------------------------------ #include #include #include #include #include #include //------------------------------------------------------------------------------ namespace NST { namespace controller { class ProcessingDone : public std::runtime_error { public: explicit ProcessingDone(const std::string& in) : std::runtime_error{in} { } }; class RunningStatus { public: RunningStatus() = default; RunningStatus(const RunningStatus&) = delete; RunningStatus& operator=(const RunningStatus&) = delete; template inline void push(const ExceptionType& e) { static_assert(std::is_base_of::value, "The ExceptionType should be inherited from std::exception"); push(std::make_exception_ptr(e)); } inline void push_current_exception() { push(std::current_exception()); } std::exception_ptr wait_exception() { std::unique_lock lock(mutex); while(fifo.empty()) { condition.wait(lock); } std::exception_ptr e = fifo.front(); fifo.pop_front(); return e; } void wait_and_rethrow_exception() { auto e = wait_exception(); std::rethrow_exception(e); } void print(std::ostream& out) { std::unique_lock lock(mutex); if(!fifo.empty()) { out << "list of unhandled exceptions:" << std::endl; for(auto& e : fifo) { try { std::rethrow_exception(e); } catch(const std::exception& e) { out << '\t' << e.what() << std::endl; } catch(...) { out << '\t' << "Unknown exception" << std::endl; } } } } private: inline void push(std::exception_ptr e) { if(e == nullptr) return; std::unique_lock lock(mutex); fifo.emplace_front(e); condition.notify_one(); } std::list fifo; std::mutex mutex; std::condition_variable condition; }; } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//RUNNING_STATUS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/signal_handler.cpp000066400000000000000000000100531261713114600217520ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Handling signals and map them to exceptions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include // std::ref #include #include #include #include #include // for strsignal() #include #include "controller/signal_handler.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { SignalHandler::Signal::Signal(int sig) : std::runtime_error{::strsignal(sig)} , signal_number{sig} { } // synchronously wait signals and pass them to RunningStatus as an exception static void handle_signals(const sigset_t waitmask, std::atomic_flag& running, RunningStatus& status) { while(running.test_and_set()) { int signo {0}; const int err {::sigwait(&waitmask, &signo)}; if(err != 0) { status.push(std::system_error{err, std::system_category(), "error in SignalHandler sigwait"}); return; } if(signo == SIGCHLD) { // wait childern(compression in dumping mode may call fork()) const pid_t pid {::wait(nullptr)}; if(pid == -1 && errno != ECHILD) { status.push(std::system_error{errno, std::system_category(), "error in SignalHandler wait"}); } } else { status.push(SignalHandler::Signal{signo}); } } } static void dummy(int) {} SignalHandler::SignalHandler(RunningStatus& s) : handler{} , running{ATOMIC_FLAG_INIT} // false { // set dummy handler for SIGCHLD to prevent ignoring it // in ::sigwait() on FreeBSD by default struct sigaction chld; memset(&chld, 0, sizeof(chld)); chld.sa_handler = dummy; if(::sigaction(SIGCHLD, &chld, nullptr) != 0) { throw std::system_error(errno, std::system_category(), "error in SignalHandler sigaction"); } sigset_t mask; ::sigemptyset(&mask); ::sigaddset(&mask, SIGINT); // correct exit from program by Ctrl-C ::sigaddset(&mask, SIGTERM); // correct exit when SIGTERM has been received ::sigaddset(&mask, SIGCHLD); // stop sigwait-thread and wait children ::sigaddset(&mask, SIGHUP); // signal for losing terminal ::sigaddset(&mask, SIGWINCH); // signal for changing terminal size const int err = ::pthread_sigmask(SIG_BLOCK, &mask, nullptr); if(err != 0) { throw std::system_error(err, std::system_category(), "error in SignalHandler pthread_sigmask"); } running.test_and_set(); handler = std::thread{handle_signals, mask, std::ref(running), std::ref(s)}; } SignalHandler::~SignalHandler() { running.clear(); // send signal to stop handler thread execution via unblock sigwait() ::pthread_kill(handler.native_handle(), SIGCHLD); handler.join(); } } // namespace controller } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/controller/signal_handler.h000066400000000000000000000037131261713114600214240ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Handling signals and map them to exceptions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef SIGNAL_HANDLER_H #define SIGNAL_HANDLER_H //------------------------------------------------------------------------------ #include #include #include #include "controller/running_status.h" //------------------------------------------------------------------------------ namespace NST { namespace controller { class SignalHandler { public: class Signal : public std::runtime_error { public: explicit Signal(int sig); const int signal_number; }; SignalHandler(RunningStatus&); SignalHandler(const SignalHandler&) = delete; SignalHandler& operator=(const SignalHandler&) = delete; ~SignalHandler(); private: std::thread handler; std::atomic_flag running; }; } // namespace controller } // namespace NST //------------------------------------------------------------------------------ #endif//SIGNAL_HANDLER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/000077500000000000000000000000001261713114600162655ustar00rootroot00000000000000nfstrace-0.4.1/src/filtration/cifs_filtrator.h000066400000000000000000000136001261713114600214500ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Generic processor for filtration raw pcap packets. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFS_FILTRATOR_H #define CIFS_FILTRATOR_H //------------------------------------------------------------------------------ #include #include #include #include "filtration/packet.h" #include "filtration/filtratorimpl.h" #include "protocols/cifs/cifs.h" #include "protocols/cifs2/cifs2.h" #include "protocols/netbios/netbios.h" #include "utils/log.h" #include "api/cifs2_commands.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { using SMBv2Commands = NST::API::SMBv2::SMBv2Commands; template class CIFSFiltrator : public FiltratorImpl, Writer> { using BaseImpl = FiltratorImpl, Writer>; size_t rw_hdr_max {512}; // limit for SMB header to truncate messages public: CIFSFiltrator() : BaseImpl() { } constexpr static size_t lengthOfReplyHeader() { return lengthOfBaseHeader(); } constexpr static size_t lengthOfCallHeader() { return lengthOfBaseHeader(); } inline void set_writer(utils::NetworkSession* session_ptr, Writer* w, uint32_t max_hdr) { rw_hdr_max = max_hdr; BaseImpl::setWriterImpl(session_ptr, w, max_hdr); } constexpr static size_t lengthOfBaseHeader() { return sizeof(NetBIOS::MessageHeader) + sizeof(CIFSv1::MessageHeaderHead); } constexpr static size_t lengthOfFirstSkipedPart() { return sizeof(NetBIOS::MessageHeader); } inline static bool isCIFSV1Header(const uint8_t* header) { return CIFSv1::get_header(header + sizeof(NetBIOS::MessageHeader)) != nullptr; } inline static bool isCIFSV2Header(const uint8_t* header) { return CIFSv2::get_header(header + sizeof(NetBIOS::MessageHeader)) != nullptr; } inline static bool isRightHeader(const uint8_t* header) { return NetBIOS::get_header(header) && (isCIFSV1Header(header) || isCIFSV2Header(header)); } inline bool collect_header(PacketInfo& info, typename Writer::Collection& collection) { size_t length = 0; if(collection && collection.data_size() >= lengthOfBaseHeader()) { //enough data is copied from previous packets to see its type if(isCIFSV1Header(collection.data())) { length = sizeof(NetBIOS::MessageHeader) + sizeof(CIFSv1::RawMessageHeader); } else if(isCIFSV2Header(collection.data())) { length = sizeof(NetBIOS::MessageHeader) + sizeof(CIFSv2::RawMessageHeader); } else { //got header but it is not CIFS collection.reset();//dismiss copied data info.dlen = 0;//skip entire packet return false; } return BaseImpl::collect_header(info, length, length); } BaseImpl::collect_header(info, lengthOfBaseHeader(), lengthOfBaseHeader());//try to read base header return false;//continue to read full header } inline bool find_and_read_message(PacketInfo& info, typename Writer::Collection& collection) { if (const NetBIOS::MessageHeader* nb_header = NetBIOS::get_header(collection.data())) { const size_t length = nb_header->len() + sizeof(NetBIOS::MessageHeader); if (const CIFSv1::MessageHeader* header = CIFSv1::get_header(collection.data() + sizeof(NetBIOS::MessageHeader))) { BaseImpl::setMsgLen(length); set_msg_size(header, length); return BaseImpl::read_message(info); } else if (const CIFSv2::MessageHeader* header = CIFSv2::get_header(collection.data() + sizeof(NetBIOS::MessageHeader))) { BaseImpl::setMsgLen(length); set_msg_size(header, length); return BaseImpl::read_message(info); } } return false; } private: inline void set_msg_size(const CIFSv1::MessageHeader* header, const size_t length) { if ((header->cmd_code == CIFSv1::Commands::READ) || (header->cmd_code == CIFSv1::Commands::WRITE)) { return BaseImpl::setToBeCopied(std::min(length, rw_hdr_max)); } BaseImpl::setToBeCopied(length); } inline void set_msg_size(const CIFSv2::MessageHeader* header, const size_t length) { if (((header->cmd_code == SMBv2Commands::READ) || (header->cmd_code == SMBv2Commands::WRITE)) && !header->nextCommand) { return BaseImpl::setToBeCopied(std::min(length, rw_hdr_max)); } BaseImpl::setToBeCopied(length); } }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//CIFS_FILTRATOR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/dumping.cpp000066400000000000000000000066321261713114600204430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Dump filtered packets to .pcap file // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include // std::terminate() #include #include #include "filtration/dumping.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { Dumping::Dumping(pcap_t*const h, const Params& params) : handle {h} , base {params.output_file} , name {params.output_file} , command {params.command} , limit {params.size_limit} , part {0} , size {0} { open_dumping_file(name); } Dumping::~Dumping() { close_dumping_file(); } void Dumping::open_dumping_file(const std::string& file_path) { const char* path {file_path.c_str()}; LOG("Dumping packets to file:%s", path); dumper.reset(new pcap::PacketDumper{handle, path}); } void Dumping::close_dumping_file() { dumper.reset(); // close current dumper exec_command(); } void Dumping::exec_command() const { if(command.empty()) return; NST::utils::Log::flush(); // flush buffer if(pid_t pid = fork()) // spawn child process { // parent process LOG("Try to execute(%s %s) in %u child process", command.c_str(), name.c_str(), pid); NST::utils::Log::flush(); // flush buffer return; } else { // child process std::istringstream ss(command); std::vector tokens; std::vector args; // TODO: this parser doesn't work with dual quotes, like rm "a file.cpp" for(std::string arg; ss >> arg;) { tokens.emplace_back(arg); args .emplace_back(const_cast(tokens.back().c_str())); } args.push_back(const_cast(name.c_str())); args.push_back(nullptr); // need termination null pointer if(execvp(args[0], &args[0]) == -1) { LOG("execvp(%s,%s %s) return: %s", args[0], command.c_str(), name.c_str(), strerror(errno)); } LOG("child process %u will be terminated.", getpid()); std::terminate(); } } std::ostream& operator<<(std::ostream& out, const Dumping::Params& params) { out << "Dump packets to file: " << params.output_file << '\n' << " file rotation size: " << params.size_limit << " bytes\n" << " file rotation command: [" << params.command << ']'; return out; } } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/dumping.h000066400000000000000000000135561261713114600201130ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Dump filtered packets to .pcap file // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef DUMPING_H #define DUMPING_H //------------------------------------------------------------------------------ #include // memcpy() #include #include #include #include "filtration/packet.h" #include "filtration/pcap/packet_dumper.h" #include "utils/log.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { class Dumping { public: class Collection { private: const static int cache_size {4096}; public: inline Collection() : dumper {nullptr} , buff_size {cache_size} , payload {cache} , payload_len {0} { } inline Collection(Dumping* d, utils::NetworkSession* /*unused*/) : dumper {d} , buff_size {cache_size} , payload {cache} , payload_len {0} { } inline ~Collection() { if(payload != cache) delete[] payload; } Collection(Collection&&) = delete; Collection(const Collection&) = delete; Collection& operator=(const Collection&) = delete; inline void set(Dumping& d, utils::NetworkSession* /*unused*/) { dumper = &d; reset(); } inline void allocate() { // we have a reference to dumper, just do reset reset(); } inline void reset() { payload_len = 0; } inline void resize(uint32_t amount) { buff_size = amount; uint8_t* buff {new uint8_t[amount]}; memcpy(buff, payload, payload_len); if(payload != cache) delete[] payload; payload = buff; } inline void push(const PacketInfo& info, const uint32_t len) { if(info.dumped) // if this packet not dumped yet { TRACE("The packet was collected before"); } else { // direct dumping without waiting completeness of analysis and complete() call dumper->dump(info.header, info.packet); info.dumped = true; // set marker of damped packet } if((payload_len + len) > capacity()) { resize(payload_len + len); } // copy payload memcpy(payload+payload_len, info.data, len); payload_len += len; } inline void skip_first(const uint32_t /*len*/) { } inline void complete(const PacketInfo& /*info*/) { assert(dumper); reset(); } inline uint32_t data_size() const { return payload_len; } inline uint32_t capacity() const { return buff_size; } inline const uint8_t* data() const { return payload; } inline operator bool() const { return dumper != nullptr; } private: Dumping* dumper; uint32_t buff_size; uint8_t* payload; uint8_t cache[cache_size]; uint32_t payload_len; }; struct Params { std::string output_file{ }; std::string command { }; uint32_t size_limit {0}; }; Dumping(pcap_t*const h, const Params& params); ~Dumping(); Dumping(const Dumping&) = delete; Dumping& operator=(const Dumping&) = delete; inline void dump(const pcap_pkthdr* header, const u_char* packet) { if(limit) { if( (size + sizeof(pcap_pkthdr) + header->caplen) > limit ) { close_dumping_file(); ++part; char suffix[64]; sprintf(suffix, "-%u", part); name = base + /*'-' + std::to_string(part)*/ suffix; size = 0; open_dumping_file(name); // new part of dump file shouldn't have ./pcap header dumper->truncate_all_pcap_data_and_header(); } size += sizeof(pcap_pkthdr) + header->caplen; } dumper->dump(header, packet); } private: void open_dumping_file(const std::string& file_path); void close_dumping_file(); void exec_command() const; std::unique_ptr dumper; pcap_t* const handle; const std::string base; std::string name; const std::string command; const uint32_t limit; uint32_t part; uint32_t size; }; std::ostream& operator<<(std::ostream& out, const Dumping::Params& params); } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//DUMPING_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/filtration_manager.cpp000066400000000000000000000156211261713114600226430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Manager for all instances created inside filtration module. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "filtration/dumping.h" #include "filtration/filtration_manager.h" #include "filtration/filtration_processor.h" #include "filtration/filtrators.h" #include "filtration/pcap/capture_reader.h" #include "filtration/pcap/file_reader.h" #include "filtration/processing_thread.h" #include "filtration/queuing.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { using CaptureReader = NST::filtration::pcap::CaptureReader; using FileReader = NST::filtration::pcap::FileReader; using Parameters = NST::controller::Parameters; using RunningStatus = NST::controller::RunningStatus; using FilteredDataQueue = NST::utils::FilteredDataQueue; namespace // unnamed { // FiltrationProcessor in separate processing thread template < typename Reader, typename Writer > class FiltrationImpl : public ProcessingThread { using Processor = FiltrationProcessor>; public: explicit FiltrationImpl(std::unique_ptr& reader, std::unique_ptr& writer, RunningStatus& status) : ProcessingThread {status} , processor{} { processor.reset(new Processor{reader, writer}); } ~FiltrationImpl() = default; FiltrationImpl(const FiltrationImpl&) = delete; FiltrationImpl& operator=(const FiltrationImpl&) = delete; virtual void stop() override final { processor->stop(); } private: virtual void run() override final { try { processor->run(); } catch(...) { ProcessingThread::status.push_current_exception(); } } std::unique_ptr processor; }; // create Filtration thread emplaced in unique_ptr template < typename Reader, typename Writer > static auto create_thread(std::unique_ptr& reader, std::unique_ptr& writer, RunningStatus& status) -> std::unique_ptr> { using Thread = FiltrationImpl; return std::unique_ptr{new Thread{reader, writer, status}}; } // create CaptureReader from Parameters emplaced in unique_ptr static auto create_capture_reader(const Parameters& params) -> std::unique_ptr { auto& capture_params = params.capture_params(); if(utils::Out message{}) // print parameters to user { message << capture_params; } return std::unique_ptr{ new CaptureReader{capture_params} }; } } // unnamed namespace // capture from network interface and dump to file - OnlineDumping(Dumping) void FiltrationManager::add_online_dumping(const Parameters& params) { std::unique_ptr reader { create_capture_reader(params) }; auto& dumping_params = params.dumping_params(); if(utils::Out message{}) // print parameters to user { message << dumping_params; } std::unique_ptr writer { new Dumping{ reader->get_handle(), dumping_params } }; threads.emplace_back(create_thread(reader, writer, status)); } //capture data from input file or cin to destination file void FiltrationManager::add_offline_dumping (const Parameters& params) { auto& dumping_params = params.dumping_params(); auto& ofile = dumping_params.output_file; auto ifile = params.input_file(); if(ofile.compare("-")) { struct stat ifile_stat; struct stat ofile_stat; if(!stat(ifile.c_str(), &ifile_stat) && !stat(ofile.c_str(), &ofile_stat)) { if(ifile_stat.st_ino == ofile_stat.st_ino) //compre inodes of input and output files { throw std::runtime_error{"Input and output files are equal. Use the -I and -O options to setup them explicitly."}; } } } std::unique_ptr reader { new FileReader{ifile} }; if(utils::Out message{}) // print parameters to user { message << *reader; } std::unique_ptr writer { new Dumping{ reader->get_handle(), dumping_params } }; threads.emplace_back(create_thread(reader, writer, status)); } // capture from network interface and pass to queue - OnlineAnalysis(Profiling) void FiltrationManager::add_online_analysis(const Parameters& params, FilteredDataQueue& queue) { std::unique_ptr reader { create_capture_reader(params) }; std::unique_ptr writer { new Queueing{queue} }; threads.emplace_back(create_thread(reader, writer, status)); } // read from file and pass to queue - OfflineAnalysis(Analysis) void FiltrationManager::add_offline_analysis(const std::string& ifile, FilteredDataQueue& queue) { std::unique_ptr reader { new FileReader{ifile} }; if(utils::Out message{}) // print parameters to user { message << *reader; } std::unique_ptr writer { new Queueing{queue} }; threads.emplace_back(create_thread(reader, writer, status)); } FiltrationManager::FiltrationManager(RunningStatus& s) : status(s) { if(utils::Out message{utils::Out::Level::All}) { message << "Libpcap version: " << pcap::library_version(); } } FiltrationManager::~FiltrationManager() { stop(); // additional checking before cleaning table } void FiltrationManager::start() { for(auto& th : threads) { th->start(); } } void FiltrationManager::stop() { for(auto& th : threads) { th->stop(); } } } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/filtration_manager.h000066400000000000000000000050461261713114600223100ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Manager for all instances created inside filtration module. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef FILTRATION_MANAGER_H #define FILTRATION_MANAGER_H //------------------------------------------------------------------------------ #include #include #include "controller/parameters.h" #include "controller/running_status.h" #include "utils/filtered_data.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { class FiltrationManager { using Parameters = NST::controller::Parameters; using RunningStatus = NST::controller::RunningStatus; using FilteredDataQueue = NST::utils::FilteredDataQueue; public: FiltrationManager(RunningStatus&); ~FiltrationManager(); FiltrationManager(const FiltrationManager&) = delete; FiltrationManager& operator=(const FiltrationManager&) = delete; void add_online_dumping (const Parameters& params); // dump to file void add_offline_dumping (const Parameters& params); // dump to file from input file void add_online_analysis (const Parameters& params, FilteredDataQueue& queue); // capture to queue void add_offline_analysis(const std::string& ifile, FilteredDataQueue& queue); // read file to queue void start(); void stop(); private: RunningStatus& status; std::vector< std::unique_ptr > threads; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//FILTRATION_MANAGER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/filtration_processor.h000066400000000000000000000411321261713114600227110ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Generic processor for filtration raw pcap packets. // TODO: THIS CODE MUST BE TOTALLY REFACTORED! // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef FILTRATION_PROCESSOR_H #define FILTRATION_PROCESSOR_H //------------------------------------------------------------------------------ #include #include #include #include #include #include #include #include "utils/log.h" #include "utils/out.h" #include "utils/sessions.h" #include "utils/profiler.h" #include "controller/parameters.h" #include "filtration/packet.h" #include "filtration/sessions_hash.h" #include "protocols/rpc/rpc_header.h" #include "protocols/nfs3/nfs3_utils.h" #include "protocols/nfs4/nfs4_utils.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { using namespace NST::protocols::rpc;//FIXME: It is not good to use "using" in headers - should be removed using ProcEnumNFS3 = API::ProcEnumNFS3; using NFS3Validator = NST::protocols::NFS3::Validator; using NFS4Validator = NST::protocols::NFS4::Validator; /* * uint32_t: Message XID (Call or Reply) */ typedef std::unordered_set MessageSet; typedef MessageSet::const_iterator ConstIterator; typedef MessageSet::iterator Iterator; typedef MessageSet::value_type Pair; // Represents UDP datagrams interchange between node A and node B template struct UDPSession : public utils::NetworkSession { public: UDPSession(Writer* w, uint32_t max_rpc_hdr) : collection{w, this} , nfs3_rw_hdr_max{max_rpc_hdr} { } UDPSession(UDPSession&&) = delete; UDPSession(const UDPSession&) = delete; UDPSession& operator=(const UDPSession&) = delete; void collect(PacketInfo& info) { // TODO: this code must be generalized with RPCFiltrator class uint32_t hdr_len {0}; auto msg = reinterpret_cast(info.data); switch(msg->type()) { case MsgType::CALL: { auto call = static_cast(msg); if(RPCValidator::check(call)) { if (NFS3Validator::check(call)) { uint32_t proc {call->proc()}; if (ProcEnumNFS3::WRITE == proc) // truncate NFSv3 WRITE call message to NFSv3-RW-limit { hdr_len = (nfs3_rw_hdr_max < info.dlen ? nfs3_rw_hdr_max : info.dlen); } else { if (ProcEnumNFS3::READ == proc) nfs3_read_match.insert(call->xid()); hdr_len = info.dlen; } } else if (NFS4Validator::check(call)) { hdr_len = info.dlen; // fully collect NFSv4 messages } else { return; } } else { return; } } break; case MsgType::REPLY: { auto reply = static_cast(msg); if(RPCValidator::check(reply)) { // Truncate NFSv3 READ reply message to NFSv3-RW-limit //* Collect fully if reply received before matching call if (nfs3_read_match.erase(reply->xid()) > 0) { hdr_len = (nfs3_rw_hdr_max < info.dlen ? nfs3_rw_hdr_max : info.dlen); } else hdr_len = info.dlen; } else // isn't RPC reply, stream is corrupt { return; } } break; default: return; } collection.allocate(); collection.push(info, hdr_len); collection.complete(info); } typename Writer::Collection collection; uint32_t nfs3_rw_hdr_max; MessageSet nfs3_read_match; }; // Represents TCP conversation between node A and node B template class TCPSession : public utils::NetworkSession { public: struct Flow { // Helpers for comparison sequence numbers // Idea for gt: either x > y, or y is much bigger (assume wrap) inline static bool GT_SEQ(uint32_t x, uint32_t y){ return (int32_t)((y) - (x)) < 0; } inline static bool LT_SEQ(uint32_t x, uint32_t y){ return (int32_t)((x) - (y)) < 0; } inline static bool GE_SEQ(uint32_t x, uint32_t y){ return (int32_t)((y) - (x)) <= 0; } inline static bool LE_SEQ(uint32_t x, uint32_t y){ return (int32_t)((x) - (y)) <= 0; } inline static bool EQ_SEQ(uint32_t x, uint32_t y){ return (x) ==(y); } friend class TCPSession; Flow() : fragments{nullptr}, sequence{0} { } ~Flow() { reset(); } Flow(Flow&&) = delete; Flow(const Flow&) = delete; Flow& operator=(const Flow&) = delete; void reset() { reader.reset(); // reset state of Reader while(fragments) { Packet* c = fragments; fragments = c->next; Packet::destroy(c); } sequence = 0; } void reassemble(PacketInfo& info) { uint32_t seq {info.tcp->seq()}; uint32_t len {info.dlen}; if( sequence == 0 ) // this is the first time we have seen this src's sequence number { sequence = seq + len; if( info.tcp->is(tcp_header::SYN) ) { sequence++; } if(len > 0) { reader.push(info); // write out the packet data } return; } // if we are here, we have already seen this src, let's // try and figure out if this packet is in the right place if( LT_SEQ(seq, sequence) ) { // this sequence number seems dated, but // check the end to make sure it has no more // info than we have already seen uint32_t newseq {seq + len}; if( GT_SEQ(newseq, sequence) ) { // this one has more than we have seen. let's get the // payload that we have not seen uint32_t new_len {sequence - seq}; if ( info.dlen <= new_len ) { info.data = nullptr; info.dlen = 0; } else { assert(info.dlen >= new_len); info.data += new_len; info.dlen -= new_len; } seq = sequence; len = newseq - sequence; // this will now appear to be right on time :) } } if ( EQ_SEQ(seq, sequence) ) // right on time { sequence += len; if( info.tcp->is(tcp_header::SYN) ) sequence++; if( info.data && info.dlen > 0) { reader.push(info); } // done with the packet, see if it caused a fragment to fit while( check_fragments(0) ); } else // out of order packet { if(info.dlen > 0 && GT_SEQ(seq, sequence) ) { //TRACE("ADD FRAGMENT seq: %u dlen: %u sequence: %u", seq, info.dlen, sequence); fragments = Packet::create(info, fragments); } } } bool check_fragments(const uint32_t acknowledged) { Packet* current {fragments}; if( current ) { Packet* prev {nullptr}; uint32_t lowest_seq {current->tcp->seq()}; while( current ) { const uint32_t current_seq {current->tcp->seq()}; const uint32_t current_len {current->dlen}; if( GT_SEQ(lowest_seq, current_seq) ) // lowest_seq > current_seq { lowest_seq = current_seq; } if( LT_SEQ(current_seq, sequence) ) // current_seq < sequence { // this sequence number seems dated, but // check the end to make sure it has no more // info than we have already seen uint32_t newseq {current_seq + current_len}; if( GT_SEQ(newseq, sequence) ) { // this one has more than we have seen. let's get the // payload that we have not seen. This happens when // part of this frame has been retransmitted uint32_t new_pos {sequence - current_seq}; sequence += (current_len - new_pos); if ( current->dlen > new_pos ) { current->data += new_pos; current->dlen -= new_pos; reader.push(*current); } } // Remove the fragment from the list as the "new" part of it // has been processed or its data has been seen already in // another packet. if( prev ) { prev->next = current->next; } else { fragments = current->next; } Packet::destroy(current); return true; } if( EQ_SEQ(current_seq, sequence) ) { // this fragment fits the stream sequence += current_len; if( prev ) { prev->next = current->next; } else { fragments = current->next; } reader.push(*current); Packet::destroy(current); return true; } prev = current; current = current->next; }// end while if( GT_SEQ(acknowledged, lowest_seq) ) // acknowledged > lowest_seq { //TRACE("acknowledged(%u) > lowest_seq(%u) seq:%u", acknowledged, lowest_seq, sequence); // There are frames missing in the capture stream that were seen // by the receiving host. Inform stream about it. reader.lost(lowest_seq - sequence); sequence = lowest_seq; return true; } } return false; } private: StreamReader reader; // reader of acknowledged data stream Packet* fragments; // list of not yet acked fragments uint32_t sequence; }; template TCPSession(Writer* w, uint32_t max_rpc_hdr) { flows[0].reader.set_writer(this, w, max_rpc_hdr); flows[1].reader.set_writer(this, w, max_rpc_hdr); } TCPSession(TCPSession&&) = delete; TCPSession(const TCPSession&) = delete; TCPSession& operator=(const TCPSession&) = delete; void collect(PacketInfo& info) { const uint32_t ack {info.tcp->ack()}; //check whether this frame acks fragments that were already seen. while( flows[1-info.direction].check_fragments(ack) ); flows[info.direction].reassemble(info); } Flow flows[2]; }; template < typename Reader, typename Writer, typename Filtrator > class FiltrationProcessor { public: explicit FiltrationProcessor(std::unique_ptr& r, std::unique_ptr& w) : reader{std::move(r)} , writer{std::move(w)} , ipv4_tcp_sessions{writer.get()} , ipv4_udp_sessions{writer.get()} , ipv6_tcp_sessions{writer.get()} , ipv6_udp_sessions{writer.get()} { // check datalink layer datalink = reader->datalink(); if(datalink != DLT_EN10MB) { throw std::runtime_error(std::string("Unsupported Data Link Layer: ") + Reader::datalink_description(datalink)); } } ~FiltrationProcessor() { utils::Out message; reader->print_statistic(message); } void run() { bool done {reader->loop(this, callback)}; if(done) { throw controller::ProcessingDone("Filtration is done"); } } void stop() { reader->break_loop(); } static void callback(u_char *user, const struct pcap_pkthdr *pkthdr, const u_char* packet) { PROF;// Calc how much time was spent in this func auto processor = reinterpret_cast(user); PacketInfo info(pkthdr, packet, processor->datalink); if(info.tcp) { if(pkthdr->caplen != pkthdr->len) { LOGONCE("pcap packet was truncated by snaplen option this " "packed won't correclty reassembled to TCP stream"); return; } if(info.ipv4) // Ethernet:IPv4:TCP { return processor->ipv4_tcp_sessions.collect_packet(info); } else if(info.ipv6) // Ethernet:IPv6:TCP { return processor->ipv6_tcp_sessions.collect_packet(info); } } else if(info.udp) { if(info.ipv4) // Ethernet:IPv4:UDP { return processor->ipv4_udp_sessions.collect_packet(info); } else if(info.ipv6) // Ethernet:IPv6:UDP { return processor->ipv6_udp_sessions.collect_packet(info); } } LOGONCE("only following stack of protocol is supported: " "Ethernet II:IPv4|IPv6(except additional fragments):TCP|UDP"); } private: std::unique_ptr reader; std::unique_ptr writer; SessionsHash< IPv4TCPMapper, TCPSession , Writer > ipv4_tcp_sessions; SessionsHash< IPv4UDPMapper, UDPSession < Writer > , Writer > ipv4_udp_sessions; SessionsHash< IPv6TCPMapper, TCPSession < Filtrator> , Writer > ipv6_tcp_sessions; SessionsHash< IPv6UDPMapper, UDPSession < Writer > , Writer > ipv6_udp_sessions; int datalink; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//FILTRATION_PROCESSOR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/filtratorimpl.h000066400000000000000000000271701261713114600213350ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Abstract impementation of filtrator class // TODO: THIS CODE MUST BE TOTALLY REFACTORED! // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef IFILTRATOR_H #define IFILTRATOR_H //------------------------------------------------------------------------------ namespace NST { namespace filtration { /*! * Filtering TCP stream strategy (implementation) * Implemented via CRTP - Curiously recurring template pattern, * (see http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern) */ template class FiltratorImpl { size_t msg_len; //!< length of current message size_t to_be_copied; //!< length of readable piece of message. Initially msg_len or 0 in case of unknown msg using Collection = typename Writer::Collection; //!< Type of collection Collection collection;//!< storage for collection packet data FiltratorImpl(FiltratorImpl&&) = delete; FiltratorImpl(const FiltratorImpl&) = delete; FiltratorImpl& operator=(const FiltratorImpl&) = delete; public: FiltratorImpl() { reset(); static_assert(std::is_function::value, "You have to define static function with signature 'size_t lengthOfBaseHeader()' in inhereted class"); static_assert(std::is_function::value, "You have to define static function with signature 'size_t lengthOfFirstSkipedPart()' in inhereted class"); static_assert(std::is_function::value, "You have to define static function with signature 'bool isRightHeader(const uint8_t* header)' in inhereted class"); static_assert(std::is_member_function_pointer::value, "You have to define static function with signature 'bool collect_header(PacketInfo& info, typename Writer::Collection& collection)' in inhereted class"); static_assert(std::is_member_function_pointer::value, "You have to define static function with signature 'bool find_and_read_message(PacketInfo& info, typename Writer::Collection& collection)' in inhereted class"); } /*! * Resets state of the filtrator */ inline void reset() { msg_len = 0; to_be_copied = 0; collection.reset(); } /*! * Checks, does the filtrator in work now? * \param info - packet */ inline bool inProgress(PacketInfo& info) { Filtrator* filtrator = static_cast(this); constexpr size_t callHeaderLen = Filtrator::lengthOfBaseHeader(); if (msg_len || to_be_copied) { return true; } if (!collection) // collection isn't allocated { collection.allocate(); // allocate new collection from writer } const size_t data_size = collection.data_size(); if (data_size + info.dlen > callHeaderLen) { static uint8_t buffer[callHeaderLen]; const uint8_t* header = info.data; if (data_size > 0) { // Coping happends only once per TCP-session memcpy(buffer, collection.data(), data_size); memcpy(buffer + data_size, info.data, callHeaderLen - data_size); header = buffer; } // It is right header if (filtrator->isRightHeader(header)) { return true; } filtrator->reset(); } else { collection.push(info, info.dlen); } return false; } /*! * Handles lost bytes event * \param n - lost bytes count */ inline void lost(const uint32_t n) // we are lost n bytes in sequence { Filtrator* filtrator = static_cast(this); if (msg_len != 0) { if (to_be_copied == 0 && msg_len >= n) { TRACE("We are lost %u bytes of payload marked for discard", n); msg_len -= n; } else { TRACE("We are lost %u bytes of useful data. lost:%u msg_len:%u", n - msg_len, n, msg_len); filtrator->reset(); } } else { TRACE("We are lost %u bytes of unknown payload", n); } } /*! * Handles next data part * \param info - part of stream */ inline void push(PacketInfo& info) { Filtrator* filtrator = static_cast(this); assert(info.dlen != 0); while (info.dlen) // loop over data in packet { if (msg_len) // we are on-stream and we are looking to some message { if (to_be_copied) { // hdr_len != 0, readout a part of header of current message if (to_be_copied > info.dlen) // got new part of header (not the all!) { //TRACE("got new part of header (not the all!)"); collection.push(info, info.dlen); to_be_copied -= info.dlen; msg_len -= info.dlen; info.dlen = 0; // return from while } else // hdr_len <= dlen, current message will be complete, also we have some additional data { //TRACE("current message will be complete, also we have some additional data"); collection.push(info, to_be_copied); info.dlen -= to_be_copied; info.data += to_be_copied; msg_len -= to_be_copied; to_be_copied = 0; collection.skip_first(Filtrator::lengthOfFirstSkipedPart()); collection.complete(info); // push complete message to queue } } else { // message header is readout, discard the unused tail of message if (msg_len >= info.dlen) // discard whole new packet { //TRACE("discard whole new packet"); msg_len -= info.dlen; return; //info.dlen = 0; // return from while } else // discard only a part of packet payload related to current message { //TRACE("discard only a part of packet payload related to current message"); info.dlen -= msg_len; info.data += msg_len; msg_len = 0; filtrator->find_message(info); // <- optimization } } } else // msg_len == 0, no one message is on reading, try to find next message { filtrator->find_message(info); } } } /*! * Find next message in packet info * \param info - part of data */ inline void find_message(PacketInfo& info) { assert(msg_len == 0); // Message still undetected Filtrator* filtrator = static_cast(this); if (!filtrator->collect_header(info, collection)) { return; } assert(collection); // collection must be initialized if (filtrator->find_and_read_message(info, collection)) { return; } assert(msg_len == 0); // message is not found assert(to_be_copied == 0); // header should be skipped collection.reset(); // skip collected data //[ Optimization ] skip data of current packet at all info.dlen = 0; } protected: inline void setMsgLen(size_t value) { msg_len = value; } inline void setToBeCopied(size_t value) { to_be_copied = value; } inline void setWriterImpl(utils::NetworkSession* session_ptr, Writer* w, uint32_t ) { assert(w); collection.set(*w, session_ptr); } inline bool collect_header(PacketInfo& info, size_t callHeaderLen, size_t replyHeaderLen) { if (collection && (collection.data_size() > 0)) // collection is allocated { assert(collection.capacity() >= callHeaderLen); const size_t tocopy {callHeaderLen - collection.data_size()}; assert(tocopy != 0); if (info.dlen < tocopy) { collection.push(info, info.dlen); info.data += info.dlen;// optimization info.dlen = 0; return false; } else // info.dlen >= tocopy { collection.push(info, tocopy); // collection.data_size <= header_len info.dlen -= tocopy; info.data += tocopy; } } else // collection is empty { collection.allocate(); // allocate new collection from writer if (info.dlen >= callHeaderLen) // is data enough to message validation? { collection.push(info, callHeaderLen); // probability that message will be rejected / probability of valid message info.data += callHeaderLen; info.dlen -= callHeaderLen; } else // (info.dlen < header_len) { collection.push(info, info.dlen); //info.data += info.dlen;// optimization size_t copied = info.dlen; info.dlen = 0; return copied >= replyHeaderLen; } } return true; } inline bool read_message(PacketInfo& info) { assert(msg_len != 0); // message is found assert(msg_len >= collection.data_size()); assert(to_be_copied <= msg_len); Filtrator* filtrator = static_cast(this); const size_t written {collection.data_size()}; msg_len -= written; // substract how written (if written) to_be_copied -= std::min(to_be_copied, written); if (0 == to_be_copied) // Avoid infinity loop when "msg len" == "data size(collection) (max_header)" {msg_len >= hdr_len} // Next find message call will finding next message { collection.skip_first(filtrator->lengthOfFirstSkipedPart()); collection.complete(info); } return true; } }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//IFILTRATOR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/filtrators.h000066400000000000000000000072401261713114600206320ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Composite filtrator which composites both CIFS&NFS // TODO: THIS CODE MUST BE TOTALLY REFACTORED! // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef FILTRATORS_H #define FILTRATORS_H //------------------------------------------------------------------------------ #include "cifs_filtrator.h" #include "rpc_filtrator.h" #include "utils/log.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { /*! * Composite filtrator which composites both CIFS&NFS */ template class Filtrators { enum class FiltratorTypes { DEFAULT = 0, RPC, CIFS }; CIFSFiltrator filtratorCIFS;//!< CIFS filtrator RPCFiltrator filtratorRPC;//!< RPC filtrator FiltratorTypes currentFiltrator;//!< Indicates which filtrator is currently active? public: Filtrators() : currentFiltrator(FiltratorTypes::DEFAULT) { } Filtrators(Filtrators&&) = delete; Filtrators(const Filtrators&) = delete; Filtrators& operator=(const Filtrators&) = delete; /*! * resets state of filtrator */ inline void reset() { filtratorCIFS.reset(); filtratorRPC.reset (); currentFiltrator = FiltratorTypes::DEFAULT; } /*! * Sets queue * \param session_ptr - TCP session * \param w - queue, where we are going to write messages * \param max_rpc_hdr - */ inline void set_writer(utils::NetworkSession* session_ptr, Writer* w, uint32_t max_rpc_hdr) { assert(w); filtratorCIFS.set_writer (session_ptr, w, max_rpc_hdr); filtratorRPC.set_writer (session_ptr, w, max_rpc_hdr); } inline void lost(const uint32_t n) // we are lost n bytes in sequence { filtratorCIFS.lost (n); filtratorRPC.lost (n); } /*! * Receives and filtrates next part of TCP-stream * \param info - data */ inline void push(PacketInfo& info) { // is it RPC message? if (currentFiltrator == FiltratorTypes::RPC || filtratorRPC.inProgress(info)) { currentFiltrator = FiltratorTypes::RPC; filtratorRPC.push (info); } // is it CIFS message? else if (currentFiltrator == FiltratorTypes::CIFS || filtratorCIFS.inProgress(info)) { currentFiltrator = FiltratorTypes::CIFS; filtratorCIFS.push (info); } // it is Unknown message else { LOG("Unknown packet"); } } }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//FILTRATORS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/packet.h000066400000000000000000000273041261713114600177130ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Represents captured pcap packet i.e. PacketInfo + captured data // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PACKET_H #define PACKET_H //------------------------------------------------------------------------------ #include // for std::min() #include #include // for memcpy() #include #include "protocols/ethernet/ethernet_header.h" #include "protocols/ip/ip_header.h" #include "protocols/tcp/tcp_header.h" #include "protocols/udp/udp_header.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { using namespace NST::protocols; using namespace NST::protocols::ethernet; using namespace NST::protocols::ip; using namespace NST::protocols::tcp; using namespace NST::protocols::udp; // Structure of pointers to captured pcap packet's headers. WITHOUT data. struct PacketInfo { using Direction = NST::utils::Session::Direction; class Dumped // marker of dumped packet { friend class Dumping; friend struct Packet; public: Dumped() : flag{false}{}; Dumped(const Dumped& in) = delete; ~Dumped(){}; private: inline operator bool() const { return flag; } inline void operator=(const bool stat) { flag = stat; } bool flag; }; inline PacketInfo(const pcap_pkthdr* h, const uint8_t* p, const uint32_t datalink) : header {h} , packet {p} , eth {nullptr} , ipv4 {nullptr} , ipv6 {nullptr} , tcp {nullptr} , udp {nullptr} , data {packet} , dlen {header->caplen} , direction{Direction::Unknown} , dumped {} { switch(datalink) { case DLT_EN10MB: check_eth(); break; case DLT_LINUX_SLL: check_sll(); break; } } PacketInfo(const PacketInfo&) = delete; PacketInfo& operator=(const PacketInfo&) = delete; void* operator new (size_t ) = delete; // only on stack void* operator new[] (size_t ) = delete; // only on stack void operator delete (void*) = delete; // only on stack void operator delete[](void*) = delete; // only on stack inline void check_eth() { if(dlen < sizeof(EthernetHeader)) return; auto header = reinterpret_cast(data); data += sizeof(EthernetHeader); dlen -= sizeof(EthernetHeader); switch(header->type()) { case ethernet_header::IP: check_ipv4(); break; case ethernet_header::IPV6: check_ipv6(); break; default: return; } eth = header; } inline void check_sll() { // TODO: add support Linux cooked sockets } inline void check_ipv4() __attribute__((always_inline)) { if(dlen < sizeof(IPv4Header)) return; auto header = reinterpret_cast(data); if(header->version() != 4) return; /* IP packet may be fragmented by NIC or snaplen parameter of libpcap IP is fragmented AND it is first part of original (offset == 0) - Ok, pass it. IP is fragmented AND it is not first part of it (offset != 0) - DISCARD IT! We do not reassemble fragmented IP packets at all */ if(header->is_fragmented_and_not_the_first_part()) { return; // discard tail of fragmented ip packets } const uint32_t ihl = header->ihl(); if(dlen < ihl) return; // truncated packet if((header->length()) < ihl) return; // incorrect packet data += ihl; dlen = (std::min((uint16_t)dlen, header->length())) - ihl; // trunk data to length of IP packet switch(header->protocol()) { case ip::NextProtocol::TCP: check_tcp(); break; case ip::NextProtocol::UDP: check_udp(); break; default: return; } ipv4 = header; } inline void check_ipv6() __attribute__((always_inline)) { if(dlen < sizeof(IPv6Header)) return; auto header = reinterpret_cast(data); if(header->version() != 6) return; data += sizeof(IPv6Header); dlen -= sizeof(IPv6Header); const uint32_t payload = header->payload_len(); if(payload == 0) return; // The length is set to zero when a Hop-by-Hop extension header carries a Jumbo Payload option if(dlen < payload) return; // truncated packet dlen = payload; // skip padding at the end // handling optional headers uint8_t htype = header->nexthdr(); switch_type: // TODO: remove ugly goto switch(htype) { case ip::NextProtocol::TCP: check_tcp(); break; case ip::NextProtocol::UDP: check_udp(); break; case ip::NextProtocol::HOPOPTS: { auto hbh = reinterpret_cast(data); const unsigned int size{1U + hbh->hbh_len}; if(dlen < size) return; // truncated packet data += size; dlen -= size; htype = hbh->hbh_nexthdr; goto switch_type; } case ip::NextProtocol::DSTOPTS: { auto dest = reinterpret_cast(data); const unsigned int size{1U + dest->dest_len}; if(dlen < size) return; // truncated packet data += size; dlen -= size; htype = dest->dest_nexthdr; goto switch_type; } case ip::NextProtocol::ROUTING: { auto route = reinterpret_cast(data); const unsigned int size{1U + route->route_len}; if(dlen < size) return; // truncated packet data += size; dlen -= size; htype = route->route_nexthdr; goto switch_type; } case ip::NextProtocol::FRAGMENT: { auto frag = reinterpret_cast(data); // isn't first fragment (offset != 0) if((ntohs(frag->frag_offlg) & ipv6_frag::OFFSET) != 0) return; const unsigned int size{sizeof(ipv6_frag)}; if(dlen < size) return; // truncated packet data += size; dlen -= size; htype = frag->frag_nexthdr; goto switch_type; } case ip::NextProtocol::NONE: default: // unknown header return; } ipv6 = header; } inline void check_tcp() __attribute__((always_inline)) { if(dlen < sizeof(TCPHeader)) return; // truncated TCP header auto header = reinterpret_cast(data); uint8_t offset {header->offset()}; if(offset < 20 || offset > 60) return; // invalid length of TCP header if(dlen < offset) return; // truncated packet // RFC-793 Section 3.1 Header Format says: // A TCP must implement all options. // Here we skip them all data += offset; dlen -= offset; tcp = header; } inline void check_udp() __attribute__((always_inline)) { if(dlen < sizeof(UDPHeader)) return; // fragmented UDP header const UDPHeader* header {reinterpret_cast(data)}; data += sizeof(UDPHeader); dlen -= sizeof(UDPHeader); udp = header; } // libpcap structures const pcap_pkthdr* header; const uint8_t* packet; // real length is in header->caplen // all pointers point to packet array // Data Link Layer // Ethernet II const ethernet::EthernetHeader* eth; // Internet Layer // IP version 4 const ip::IPv4Header* ipv4; // IP version 6 const ip::IPv6Header* ipv6; // Transport Layer // TCP const tcp::TCPHeader* tcp; // UDP const udp::UDPHeader* udp; const uint8_t* data; // pointer to packet data uint32_t dlen; // length of packet data // Packet transmission direction, set after match packet to session Direction direction; mutable Dumped dumped; // flag for dumped packet }; // PCAP packet in dynamic allocated memory struct Packet: public PacketInfo { Packet() = delete; Packet(const Packet&) = delete; Packet& operator=(const Packet&) = delete; Packet* next; // pointer to next packet or nullptr static Packet* create(const PacketInfo& info, Packet* next) { assert(info.direction != Direction::Unknown); // allocate memory for Packet structure and PCAP packet data // TODO: performance drop! improve data alignment! uint8_t* memory { new uint8_t[sizeof(Packet) + sizeof(pcap_pkthdr) + info.header->caplen]}; Packet* fragment { (Packet*) ((uint8_t*)memory )}; pcap_pkthdr* header{ (pcap_pkthdr*) ((uint8_t*)memory + sizeof(Packet) )}; uint8_t* packet { (uint8_t*) ((uint8_t*)memory + sizeof(Packet) + sizeof(pcap_pkthdr))}; // copy data *header = *info.header; // copy packet header memcpy(packet, info.packet, info.header->caplen); // copy packet data fragment->header = header; fragment->packet = packet; // fix pointers from PacketInfo to point to owned copy of packet data fragment->eth = info.eth ? (const ethernet::EthernetHeader*) (packet + ( ((const uint8_t*)info.eth ) - info.packet)) : nullptr; fragment->ipv4 = info.ipv4 ? (const ip::IPv4Header*) (packet + ( ((const uint8_t*)info.ipv4) - info.packet)) : nullptr; fragment->ipv6 = info.ipv6 ? (const ip::IPv6Header*) (packet + ( ((const uint8_t*)info.ipv6) - info.packet)) : nullptr; fragment->tcp = info.tcp ? (const tcp::TCPHeader*) (packet + ( ((const uint8_t*)info.tcp ) - info.packet)) : nullptr; fragment->udp = info.udp ? (const udp::UDPHeader*) (packet + ( ((const uint8_t*)info.udp ) - info.packet)) : nullptr; fragment->data = packet + (info.data - info.packet); fragment->dlen = info.dlen; fragment->direction = info.direction; fragment->dumped = false; fragment->next = next; return fragment; } static void destroy(Packet* fragment) { uint8_t* ptr { (uint8_t*)fragment }; delete[] ptr; } }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//PACKET_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/000077500000000000000000000000001261713114600172105ustar00rootroot00000000000000nfstrace-0.4.1/src/filtration/pcap/base_reader.h000066400000000000000000000053561261713114600216260ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk (Dzianis Huznou) // Description: High level interface for passing info Processor. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef BASE_READER_H #define BASE_READER_H //------------------------------------------------------------------------------ #include #include #include #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { inline const char* library_version() { return pcap_lib_version(); } class BaseReader { protected: BaseReader(const std::string& input) : handle{nullptr} , source{input} { } virtual ~BaseReader() { if(handle) { pcap_close(handle); } } public: bool loop(void* user, pcap_handler callback, int count=0) { const int err {pcap_loop(handle, count, callback, (u_char*)user)}; if(err == -1) throw PcapError("pcap_loop", pcap_geterr(handle)); return err == 0; // count is exhausted } inline void break_loop() { pcap_breakloop(handle); } inline pcap_t*& get_handle() { return handle; } inline int datalink () const { return pcap_datalink(handle); } inline static const char* datalink_name (const int dlt) { return pcap_datalink_val_to_name(dlt); } inline static const char* datalink_description (const int dlt) { return pcap_datalink_val_to_description(dlt); } virtual void print_statistic(std::ostream& out) const = 0; protected: pcap_t* handle; const std::string source; }; } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//BASE_READER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/bpf.h000066400000000000000000000037551261713114600201420ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Berkeley Packet Filter compilation // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef BPF_H #define BPF_H //------------------------------------------------------------------------------ #include #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class BPF { public: BPF(pcap_t* handle, const char* filtration, bpf_u_int32 netmask) { if(pcap_compile(handle, &bpf, filtration, 1 /*optimize*/, netmask) < 0) { throw PcapError("pcap_compile", pcap_geterr(handle)); } } BPF(const BPF&) = delete; BPF& operator=(const BPF&) = delete; ~BPF() { pcap_freecode(&bpf); } inline operator bpf_program*() { return &bpf; } private: bpf_program bpf; }; } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//BPF_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/capture_reader.cpp000066400000000000000000000107341261713114600227060ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Capture packets from NIC by libpcap. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "filtration/pcap/bpf.h" #include "filtration/pcap/capture_reader.h" #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { CaptureReader::CaptureReader(const Params& params) : BaseReader{params.interface} { char errbuf[PCAP_ERRBUF_SIZE]; // storage of error description const char* device {source.c_str()}; handle = pcap_create(device, errbuf); if(!handle) { throw PcapError("pcap_create", errbuf); } if(int status {pcap_set_snaplen(handle, params.snaplen)}) { throw PcapError("pcap_set_snaplen", pcap_statustostr(status)); } if(int status {pcap_set_promisc(handle, params.promisc ? 1 : 0)}) { throw PcapError("pcap_set_promisc", pcap_statustostr(status)); } if(int status {pcap_set_timeout(handle, params.timeout_ms)}) { throw PcapError("pcap_set_timeout", pcap_statustostr(status)); } if(int status {pcap_set_buffer_size(handle, params.buffer_size)}) { throw PcapError("pcap_set_buffer_size", pcap_statustostr(status)); } if(int status {pcap_activate(handle)}) { throw PcapError("pcap_activate", pcap_statustostr(status)); } pcap_direction_t direction {PCAP_D_INOUT}; switch(params.direction) { using Direction = CaptureReader::Direction; case Direction::IN : direction = PCAP_D_IN; break; case Direction::OUT : direction = PCAP_D_OUT; break; case Direction::INOUT: direction = PCAP_D_INOUT; break; } if(int status {pcap_setdirection(handle, direction)}) { throw PcapError("pcap_setdirection", pcap_statustostr(status)); } bpf_u_int32 localnet, netmask; if(pcap_lookupnet(device, &localnet, &netmask, errbuf) < 0) { throw PcapError("pcap_lookupnet", errbuf); } BPF bpf(handle, params.filter.c_str(), netmask); if(pcap_setfilter(handle, bpf) < 0) { throw PcapError("pcap_setfiltration", pcap_geterr(handle)); } } void CaptureReader::print_statistic(std::ostream& out) const { struct pcap_stat stat={0,0,0}; if(pcap_stats(handle, &stat) == 0) { out << "Statistics from interface: " << source << '\n' << " packets received by filtration: " << stat.ps_recv << '\n' << " packets dropped by kernel : " << stat.ps_drop << '\n' << " packets dropped by interface : " << stat.ps_ifdrop; } else { throw PcapError("pcap_stats", pcap_geterr(handle)); } } std::ostream& operator<<(std::ostream& out, const CaptureReader::Params& params) { out << "Read from interface: " << params.interface << '\n' << " BPF filter : " << params.filter << '\n' << " snapshot len: " << params.snaplen << " bytes\n" << " read timeout: " << params.timeout_ms << " ms\n" << " buffer size : " << params.buffer_size << " bytes\n" << " promiscuous mode: " << (params.promisc ? "on" : "off") << '\n' << " capture traffic : "; switch(params.direction) { using Direction = CaptureReader::Direction; case Direction::IN : out << "in"; break; case Direction::OUT : out << "out"; break; case Direction::INOUT: out << "inout"; break; } return out; } } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/capture_reader.h000066400000000000000000000043101261713114600223440ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Class for capturing network packets and pass them to filtration. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CAPTURE_READER_H #define CAPTURE_READER_H //------------------------------------------------------------------------------ #include #include "filtration/pcap/base_reader.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class CaptureReader : public BaseReader { public: enum class Direction : int { INOUT, IN, OUT, }; struct Params { std::string interface { }; std::string filter { }; int snaplen {0}; int timeout_ms {0}; int buffer_size{0}; bool promisc {true}; Direction direction {Direction::INOUT}; }; CaptureReader(const Params& params); ~CaptureReader() = default; void print_statistic(std::ostream& out) const override; }; std::ostream& operator<<(std::ostream&, const CaptureReader::Params&); } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//CAPTURE_READER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/file_reader.cpp000066400000000000000000000040571261713114600221630ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Interface for passing data from file to filtration. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "filtration/pcap/file_reader.h" #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { FileReader::FileReader(const std::string& file) : BaseReader{file} { char errbuf[PCAP_ERRBUF_SIZE]; // open pcap device for reading from file in file system handle = pcap_open_offline(file.c_str(), errbuf); if(!handle) { throw PcapError("pcap_open_offline", errbuf); } } std::ostream& operator<<(std::ostream& out, FileReader& f) { out << "Read packets from: " << f.source << '\n'; const int dlt {f.datalink()}; out << " datalink: " << f.datalink_name(dlt) << " (" << f.datalink_description(dlt) << ")\n"; out << " version: " << f.major_version() << '.' << f.minor_version(); if(f.is_swapped()) out << "\n Note: file has data in swapped byte-order"; return out; } } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/file_reader.h000066400000000000000000000041301261713114600216200ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou // Description: Interface for passing info from file to filtration. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef FILE_READER_H #define FILE_READER_H //------------------------------------------------------------------------------ #include #include "filtration/pcap/base_reader.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class FileReader : public BaseReader { public: explicit FileReader(const std::string& file); ~FileReader() = default; inline FILE* get_file() { return pcap_file(handle); } void print_statistic(std::ostream& /*out*/) const override { /*dummy method*/ } inline int major_version() { return pcap_major_version(handle); } inline int minor_version() { return pcap_minor_version(handle); } inline bool is_swapped() { return pcap_is_swapped(handle); } friend std::ostream& operator<<(std::ostream& out, FileReader& f); }; } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//FILE_READER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/network_interfaces.h000066400000000000000000000203251261713114600232570ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Enumerates list of network devices, available to use in libpcap. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NETWORK_INTERFACES_H #define NETWORK_INTERFACES_H //------------------------------------------------------------------------------ #include #include #include #include #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class NetworkInterfaces { public: class Interface; class Address { friend class Interface; public: inline sockaddr* address() const noexcept { return addr->addr; } inline sockaddr* netmask() const noexcept { return addr->netmask; } inline sockaddr* broadaddr() const noexcept { return addr->broadaddr; } inline sockaddr* destaddr() const noexcept { return addr->dstaddr; } Address& operator= (const Address&) = delete; void operator& () = delete; void* operator new (size_t) = delete; void operator delete (void*) = delete; inline operator bool() const noexcept { return addr != nullptr; } inline void operator ++() noexcept { addr = addr->next; } inline bool operator !=(const Address& a) const noexcept { return addr != a.addr; } inline const Address operator*() const noexcept { return *this; } Address(const Address& a) : addr{a.addr}{} private: Address(pcap_addr_t* a) : addr{a}{} pcap_addr_t* addr; }; class Interface { friend class NetworkInterfaces; public: inline const char* name() const noexcept { return ptr->name; } inline const char* dscr() const noexcept { return ptr->description; } inline bool is_loopback() const noexcept { return ptr->flags & PCAP_IF_LOOPBACK; } Interface& operator= (const Interface&) = delete; void operator& () = delete; void* operator new (size_t) = delete; void operator delete (void*) = delete; inline operator bool() const noexcept { return ptr != nullptr; } inline void operator ++() noexcept { ptr = ptr->next; } inline bool operator !=(const Interface& i) const noexcept { return ptr != i.ptr; } inline const Interface operator*() const noexcept { return *this; } Interface(const Interface& i) : ptr{i.ptr}{} const Address begin() const noexcept { return Address{ptr->addresses}; } const Address end() const noexcept { return Address{nullptr}; } private: Interface(pcap_if_t* p) : ptr{p}{} pcap_if_t* ptr; }; inline NetworkInterfaces() : interfaces{nullptr} { char errbuf[PCAP_ERRBUF_SIZE]; if(pcap_findalldevs(&interfaces, errbuf) == -1) { throw PcapError("pcap_findalldevs", errbuf); } } inline ~NetworkInterfaces() noexcept { pcap_freealldevs(interfaces); } inline static std::string default_device() { NST::filtration::pcap::NetworkInterfaces interfaces; for(const auto& interface : interfaces) { for(const auto& address : interface) { // Do not compare string for appropriate IP4/IP6 address. // If pointer to address is not null expect it has valid address. if(address.address() != nullptr) { return interface.name(); } } } throw std::runtime_error{"No suitable device found.\n Note: reading an ip address of a network device may require special privileges."}; } NetworkInterfaces(const NetworkInterfaces&) = delete; NetworkInterfaces& operator=(const NetworkInterfaces&) = delete; void operator& () = delete; void* operator new (size_t) = delete; void operator delete (void*) = delete; const Interface begin() const noexcept { return Interface{interfaces}; } const Interface end() const noexcept { return Interface{nullptr}; } private: pcap_if_t* interfaces; }; std::ostream& operator <<(std::ostream& out, const NetworkInterfaces::Interface& i) { out.width(8); out << std::left << i.name(); const char* dscr {i.dscr()}; if(dscr) { out << '(' << dscr << ')'; } if(i.is_loopback()) { out << "(loopback)"; } return out; } std::ostream& operator <<(std::ostream& out, const NetworkInterfaces::Address& a) { sockaddr* s_address {a.address()}; sockaddr* s_netmask {a.netmask()}; if(s_address) { switch(s_address->sa_family) { case AF_INET: { char ip[INET_ADDRSTRLEN]{}; char netmask[INET_ADDRSTRLEN]{}; inet_ntop(AF_INET, &(reinterpret_cast(s_address)->sin_addr), ip, sizeof(ip)); out << "inet " << ip; inet_ntop(AF_INET, &(reinterpret_cast(s_netmask)->sin_addr), netmask, sizeof(netmask)); out << " netmask " << netmask; sockaddr* s_broadaddr {a.broadaddr()}; if(s_broadaddr) { char broadaddr[INET_ADDRSTRLEN]{}; inet_ntop(AF_INET, &(reinterpret_cast(s_broadaddr)->sin_addr), broadaddr, sizeof(broadaddr)); out << " broadcast " << broadaddr; } sockaddr* s_destaddr {a.destaddr()}; if(s_destaddr) { char destaddr[INET_ADDRSTRLEN]{}; inet_ntop(AF_INET, &(reinterpret_cast(s_destaddr)->sin_addr), destaddr, sizeof(destaddr)); out << " destadrr " << destaddr; } break; } case AF_INET6: { char ip6[INET6_ADDRSTRLEN]{}; char netmask6[INET6_ADDRSTRLEN]{}; inet_ntop(AF_INET6, &(reinterpret_cast(s_address)->sin6_addr), ip6, sizeof(ip6)); out << "inet6 " << ip6; out << " scopeid " << std::showbase << std::hex << reinterpret_cast(s_address)->sin6_scope_id << std::dec; inet_ntop(AF_INET6, &(reinterpret_cast(s_netmask)->sin6_addr), netmask6, sizeof(netmask6)); out << " netmask " << netmask6; break; } default: { out << "Unsupported address family(" << static_cast(s_address->sa_family) << ')'; } } } return out; } } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//NETWORK_INTERFACES_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/packet_dumper.h000066400000000000000000000050311261713114600222030ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Dumping pcap frames to a file. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PACKET_DUMPER_H #define PACKET_DUMPER_H //------------------------------------------------------------------------------ #include #include "filtration/pcap/pcap_error.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class PacketDumper { public: PacketDumper(pcap_t* handle, const char* path) : dumper{ pcap_dump_open(handle, path) } { if(dumper == nullptr) { throw PcapError{"pcap_dump_open", pcap_geterr(handle)}; } } PacketDumper(const PacketDumper&) = delete; PacketDumper& operator=(const PacketDumper&) = delete; ~PacketDumper() { pcap_dump_close(dumper); } inline void dump(const pcap_pkthdr *h, const u_char *sp) { pcap_dump((u_char*)dumper, h, sp); } inline void flush() { pcap_dump_flush(dumper); } inline pcap_dumper_t* get_dumper() { return dumper; } inline FILE* get_stream() { return pcap_dump_file(dumper); } void truncate_all_pcap_data_and_header() { pcap_dump_flush(dumper); FILE* stream {pcap_dump_file(dumper)}; rewind(stream); // truncate a file to zero pcap_dump_flush(dumper); } private: pcap_dumper_t* dumper; }; } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//PACKET_DUMPER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/pcap/pcap_error.h000066400000000000000000000033101261713114600215120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Special exception for libpcap errors. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PCAP_ERROR_H #define PCAP_ERROR_H //------------------------------------------------------------------------------ #include #include //------------------------------------------------------------------------------ namespace NST { namespace filtration { namespace pcap { class PcapError : public std::runtime_error { public: explicit PcapError(const char* func, const char* errbuf) : std::runtime_error{std::string{func}+"():"+std::string{errbuf}} { } }; } // namespace pcap } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//PCAP_ERROR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/processing_thread.h000066400000000000000000000044401261713114600221430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Manage entire filtration processes. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PROCESSING_THREAD_H #define PROCESSING_THREAD_H //------------------------------------------------------------------------------ #include #include "controller/running_status.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { class ProcessingThread { protected: ProcessingThread(NST::controller::RunningStatus& s) : status (s) , processing {} { } public: virtual ~ProcessingThread() { if(processing.joinable()) { processing.join(); } } void start() { if(processing.joinable()) return; // already started processing = std::thread(&ProcessingThread::thread, this); } virtual void stop()= 0; private: virtual void run() = 0; inline void thread() { try { this->run(); // virtual call } catch(...) { status.push_current_exception(); } } protected: NST::controller::RunningStatus& status; std::thread processing; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//PROCESSING_THREAD_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/queuing.h000066400000000000000000000121501261713114600201120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Push FilteredData to queue for further analysis. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef QUEUING_H #define QUEUING_H //------------------------------------------------------------------------------ #include #include "utils/filtered_data.h" #include "utils/log.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { class Queueing { using Queue = NST::utils::FilteredDataQueue; using Data = NST::utils::FilteredData; public: class Collection { public: inline Collection() noexcept : queue {nullptr} , ptr {nullptr} , session {nullptr} { } inline Collection(Queueing* q, utils::NetworkSession* s) noexcept : queue {&q->queue} , ptr {nullptr} , session {s} { } inline ~Collection() { if(ptr) { queue->deallocate(ptr); } } Collection(Collection&&) = delete; Collection(const Collection&) = delete; Collection& operator=(const Collection&) = delete; inline void set(Queueing& q, utils::NetworkSession* s) { queue = &q.queue; session = s; } void allocate() { if(nullptr == ptr) { // we have a reference to queue, just do allocate and reset ptr = queue->allocate(); if (!ptr) { LOG("free elements of the Queue are exhausted"); } } } void deallocate() { if(ptr) { queue->deallocate(ptr); ptr = nullptr; } } inline void reset() { if(ptr) { ptr->reset(); } } inline void resize(uint32_t amount) { assert(nullptr != ptr); ptr->resize(amount); } // Extend input element automatically inline void push(const PacketInfo& info, const uint32_t len) { assert(nullptr != ptr); uint8_t* offset_ptr { ptr->data + ptr->dlen }; const uint32_t avail { ptr->capacity() - ptr->dlen}; if(len > avail) // inappropriate case. Must be one resize when get entire message size { ptr->resize(ptr->dlen + len); // [! unbound extension !] offset_ptr = ptr->data + ptr->dlen; // update pointer } memcpy(offset_ptr, info.data, len); ptr->dlen += len; } // TODO: workaround // we should remove RM(uin32_t) from collected data inline void skip_first(const uint32_t len) { ptr->dlen -= len; ptr->data += len; } void complete(const PacketInfo& info) { assert(ptr); assert(nullptr != ptr->data); assert(ptr->dlen > 0); assert(info.direction != utils::Session::Direction::Unknown); ptr->session = session; ptr->timestamp = info.header->ts; ptr->direction = info.direction; queue->push(ptr); ptr = nullptr; } inline uint32_t data_size() const { return ptr->dlen; } inline uint32_t capacity() const { return ptr->capacity(); } inline const uint8_t* data() const { return ptr->data; } inline operator bool() const { return ptr != nullptr; } private: Queue* queue; Data* ptr; utils::NetworkSession* session; }; Queueing(Queue& q) : queue(q) { } ~Queueing() { } Queueing(Queueing&&) = delete; Queueing(const Queueing&) = delete; Queueing& operator=(const Queueing&) = delete; private: Queue& queue; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//QUEUING_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/rpc_filtrator.h000066400000000000000000000170131261713114600213120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: RPC filtrator // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef RPC_FILTRATOR_H #define RPC_FILTRATOR_H //------------------------------------------------------------------------------ #include #include #include #include "filtration/packet.h" #include "filtration/filtratorimpl.h" #include "protocols/nfs3/nfs3_utils.h" #include "protocols/nfs4/nfs4_utils.h" #include "protocols/netbios/netbios.h" #include "protocols/rpc/rpc_header.h" #include "utils/log.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { /* Stateful reader of Sun RPC messages Reads data from PacketInfo passed via push() method aggregates length of current RPC message and length of RPC message useful for analysis TODO: add matching Calls and replies by XID of message */ template class RPCFiltrator : public FiltratorImpl, Writer> { using BaseImpl = FiltratorImpl, Writer>; public: RPCFiltrator() : BaseImpl() { } inline void set_writer(utils::NetworkSession* session_ptr, Writer* w, uint32_t max_rpc_hdr) { assert(w); nfs3_rw_hdr_max = max_rpc_hdr; BaseImpl::setWriterImpl(session_ptr, w, max_rpc_hdr); } constexpr static size_t lengthOfBaseHeader() { return sizeof(RecordMark) + sizeof(ReplyHeader);// Minimum of replay&call headers } constexpr static size_t lengthOfReplyHeader() { return sizeof(RecordMark) + sizeof(ReplyHeader); } constexpr static size_t lengthOfCallHeader() { return sizeof(RecordMark) + sizeof(CallHeader); } inline static bool isRightHeader(const uint8_t* header) { const RecordMark* rm {reinterpret_cast(header)}; const MessageHeader* const msg = rm->fragment(); if (msg->type() == MsgType::REPLY) { return RPCValidator::check(static_cast(msg)); } if (msg->type() == MsgType::CALL) { return RPCValidator::check(static_cast(msg)); } return false; } inline constexpr static size_t lengthOfFirstSkipedPart() { return sizeof(RecordMark); } inline bool collect_header(PacketInfo& info, typename Writer::Collection&) { return BaseImpl::collect_header(info, lengthOfCallHeader(), lengthOfReplyHeader()); } inline bool find_and_read_message(PacketInfo& info, typename Writer::Collection& collection) { const RecordMark* rm {reinterpret_cast(collection.data())}; //if(rm->is_last()); // TODO: handle sequence field of record mark if (collection.data_size() < (sizeof(CallHeader) + sizeof(RecordMark)) && (rm->fragment())->type() != MsgType::REPLY ) // if message not Reply, try collect the rest for Call { return true; } if (rm->fragment_len() >= sizeof(ReplyHeader)) // incorrect fragment len, not valid rpc message { if (validate_header(rm->fragment(), rm->fragment_len() + sizeof(RecordMark) ) ) { return BaseImpl::read_message(info); } } return false; } inline bool validate_header(const MessageHeader* const msg, const size_t len) { switch (msg->type()) { case MsgType::CALL: { auto call = static_cast(msg); if (RPCValidator::check(call)) { BaseImpl::setMsgLen(len); // length of current RPC message if (protocols::NFS3::Validator::check(call)) { uint32_t proc {call->proc()}; if (API::ProcEnumNFS3::WRITE == proc) // truncate NFSv3 WRITE call message to NFSv3-RW-limit { BaseImpl::setToBeCopied(nfs3_rw_hdr_max < len ? nfs3_rw_hdr_max : len); } else { if (API::ProcEnumNFS3::READ == proc) { nfs3_read_match.insert(call->xid()); } BaseImpl::setToBeCopied(len); } //TRACE("%p| MATCH RPC Call xid:%u len: %u procedure: %u", this, call->xid(), msg_len, call->proc()); } else if (protocols::NFS4::Validator::check(call)) { BaseImpl::setToBeCopied(len); } else { //* RPC call message must be read out ==> msg_len !=0 BaseImpl::setToBeCopied(0);// don't collect headers of unknown calls //TRACE("Unknown RPC call of program: %u version: %u procedure: %u", call->prog(), call->vers(), call->proc()); } return true; } else { return false; // isn't RPC Call, stream is corrupt } } break; case MsgType::REPLY: { auto reply = static_cast(msg); if (RPCValidator::check(reply)) { BaseImpl::setMsgLen(len); // length of current RPC message // Truncate NFSv3 READ reply message to NFSv3-RW-limit //* Collect fully if reply received before matching call if (nfs3_read_match.erase(reply->xid()) > 0) { BaseImpl::setToBeCopied(std::min(nfs3_rw_hdr_max, len)); } else { BaseImpl::setToBeCopied(len);// length of current RPC message } //TRACE("%p| MATCH RPC Reply xid:%u len: %u", this, reply->xid(), msg_len); return true; } else // isn't RPC reply, stream is corrupt { BaseImpl::setMsgLen(0); BaseImpl::setToBeCopied(0); return false; } } break; default: { //isn't RPC message } break; } return false; } private: size_t nfs3_rw_hdr_max {512}; // limit for NFSv3 to truncate WRITE call and READ reply messages MessageSet nfs3_read_match; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//RPC_FILTRATOR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/filtration/sessions_hash.h000066400000000000000000000256101261713114600213130ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Hash for network sessions // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef SESSIONS_HASH_H #define SESSIONS_HASH_H //------------------------------------------------------------------------------ #include #include #include #include #include #include "controller/parameters.h" #include "filtration/packet.h" #include "utils/out.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace filtration { struct MapperImpl { using Session = NST::utils::Session; using NetworkSession = NST::utils::NetworkSession; MapperImpl() = delete; static inline Session::Direction ipv4_direction(const Session& key) { if(key.port[0] < key.port[1]) return Session::Source; else if(key.port[0] > key.port[1]) return Session::Destination; // Ok, ports are equal, compare addresses return (key.ip.v4.addr[0] < key.ip.v4.addr[1]) ? Session::Source : Session::Destination; } struct IPv4PortsKeyHash { inline std::size_t operator() (const Session& key) const { return key.port[0] + key.port[1] + key.ip.v4.addr[0] + key.ip.v4.addr[1]; } }; struct IPv4PortsKeyEqual { inline bool operator() (const Session& a, const Session& b) const { if((a.port[0] == b.port[0]) && (a.port[1] == b.port[1]) && (a.ip.v4.addr[0] == b.ip.v4.addr[0]) && (a.ip.v4.addr[1] == b.ip.v4.addr[1])) return true; if((a.port[1] == b.port[0]) && (a.port[0] == b.port[1]) && (a.ip.v4.addr[1] == b.ip.v4.addr[0]) && (a.ip.v4.addr[0] == b.ip.v4.addr[1])) return true; return false; } }; static inline Session::Direction ipv6_direction(const Session& key) { if(key.port[0] < key.port[1]) return Session::Source; else if(key.port[0] > key.port[1]) return Session::Destination; // Ok, ports are equal, compare addresses const uint32_t* s { key.ip.v6.addr_uint32[0] }; const uint32_t* d { key.ip.v6.addr_uint32[1] }; if(s[0] != d[0]) return (s[0] < d[0]) ? Session::Source : Session::Destination; if(s[1] != d[1]) return (s[1] < d[1]) ? Session::Source : Session::Destination; if(s[2] != d[2]) return (s[2] < d[2]) ? Session::Source : Session::Destination; return (s[3] < d[3]) ? Session::Source : Session::Destination; } static inline void copy_ipv6(uint32_t dst[4], const uint8_t src[16]) { // TODO:: fix alignment of src! const uint32_t* s { reinterpret_cast(src) }; dst[0] = s[0]; dst[1] = s[1]; dst[2] = s[2]; dst[3] = s[3]; } struct IPv6PortsKeyHash { std::size_t operator() (const Session& key) const { std::size_t ret = key.port[0] + key.port[1]; ret += key.ip.v6.addr_uint32[0][0]; ret += key.ip.v6.addr_uint32[0][1]; ret += key.ip.v6.addr_uint32[0][2]; ret += key.ip.v6.addr_uint32[0][3]; ret += key.ip.v6.addr_uint32[1][0]; ret += key.ip.v6.addr_uint32[1][1]; ret += key.ip.v6.addr_uint32[1][2]; ret += key.ip.v6.addr_uint32[1][3]; return ret; } }; struct IPv6PortsKeyEqual { static inline bool eq_ipv6_address(const uint32_t a[4], const uint32_t b[4]) { return a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]; } bool operator() (const Session& a, const Session& b) const { if((a.port[0] == b.port[0]) && (a.port[1] == b.port[1])) { if( eq_ipv6_address(a.ip.v6.addr_uint32[0], b.ip.v6.addr_uint32[0] ) && eq_ipv6_address(a.ip.v6.addr_uint32[1], b.ip.v6.addr_uint32[1] )) return true; } if((a.port[1] == b.port[0]) && (a.port[0] == b.port[1])) { if( eq_ipv6_address(a.ip.v6.addr_uint32[1], b.ip.v6.addr_uint32[0] ) && eq_ipv6_address(a.ip.v6.addr_uint32[0], b.ip.v6.addr_uint32[1] )) return true; } return false; } }; }; struct IPv4TCPMapper : private MapperImpl { static inline void fill_hash_key(PacketInfo& info, Session& key) { key.port[0] = info.tcp->sport(); key.port[1] = info.tcp->dport(); key.ip.v4.addr[0] = info.ipv4->src(); key.ip.v4.addr[1] = info.ipv4->dst(); info.direction = MapperImpl::ipv4_direction(key); } static inline void fill_session(const PacketInfo& info, NetworkSession& session) { session.ip_type = Session::v4; session.type = Session::TCP; session.direction = info.direction; session.port[0] = info.tcp->sport(); session.port[1] = info.tcp->dport(); session.ip.v4.addr[0] = info.ipv4->src(); session.ip.v4.addr[1] = info.ipv4->dst(); } using KeyHash = MapperImpl::IPv4PortsKeyHash; using KeyEqual = MapperImpl::IPv4PortsKeyEqual; }; struct IPv4UDPMapper : private MapperImpl { static inline void fill_hash_key(PacketInfo& info, Session& key) { key.port[0] = info.udp->sport(); key.port[1] = info.udp->dport(); key.ip.v4.addr[0] = info.ipv4->src(); key.ip.v4.addr[1] = info.ipv4->dst(); info.direction = MapperImpl::ipv4_direction(key); } static inline void fill_session(const PacketInfo& info, NetworkSession& session) { session.ip_type = Session::v4; session.type = Session::UDP; session.direction = info.direction; session.port[0] = info.udp->sport(); session.port[1] = info.udp->dport(); session.ip.v4.addr[0] = info.ipv4->src(); session.ip.v4.addr[1] = info.ipv4->dst(); } using KeyHash = MapperImpl::IPv4PortsKeyHash; using KeyEqual = MapperImpl::IPv4PortsKeyEqual; }; struct IPv6TCPMapper : private MapperImpl { static inline void fill_hash_key(PacketInfo& info, Session& key) { key.port[0] = info.tcp->sport(); key.port[1] = info.tcp->dport(); MapperImpl::copy_ipv6(key.ip.v6.addr_uint32[0], info.ipv6->src()); MapperImpl::copy_ipv6(key.ip.v6.addr_uint32[1], info.ipv6->dst()); info.direction = MapperImpl::ipv6_direction(key); } static inline void fill_session(const PacketInfo& info, NetworkSession& session) { session.ip_type = Session::v6; session.type = Session::TCP; session.direction = info.direction; session.port[0] = info.tcp->sport(); session.port[1] = info.tcp->dport(); MapperImpl::copy_ipv6(session.ip.v6.addr_uint32[0], info.ipv6->src()); MapperImpl::copy_ipv6(session.ip.v6.addr_uint32[1], info.ipv6->dst()); } using KeyHash = MapperImpl::IPv6PortsKeyHash; using KeyEqual = MapperImpl::IPv6PortsKeyEqual; }; struct IPv6UDPMapper : private MapperImpl { static inline void fill_hash_key(PacketInfo& info, Session& key) { key.port[0] = info.udp->sport(); key.port[1] = info.udp->dport(); MapperImpl::copy_ipv6(key.ip.v6.addr_uint32[0], info.ipv6->src()); MapperImpl::copy_ipv6(key.ip.v6.addr_uint32[1], info.ipv6->dst()); info.direction = MapperImpl::ipv6_direction(key); } static inline void fill_session(const PacketInfo& info, NetworkSession& session) { session.ip_type = Session::v6; session.type = Session::UDP; session.direction = info.direction; session.port[0] = info.udp->sport(); session.port[1] = info.udp->dport(); MapperImpl::copy_ipv6(session.ip.v6.addr_uint32[0], info.ipv6->src()); MapperImpl::copy_ipv6(session.ip.v6.addr_uint32[1], info.ipv6->dst()); } using KeyHash = MapperImpl::IPv6PortsKeyHash; using KeyEqual = MapperImpl::IPv6PortsKeyEqual; }; // SessionsHash creates sessions and stores them in hash template < typename Mapper, // map PacketInfo& to SessionImpl* typename SessionImpl, // mapped type typename Writer > class SessionsHash { public: static_assert(std::is_convertible::value, "SessionImpl must be convertible to utils::NetworkSession"); using Container = std::unordered_map; SessionsHash(Writer* w) : sessions { } , writer {w} , max_hdr {0} { max_hdr = controller::Parameters::rpcmsg_limit(); } ~SessionsHash() { for(auto& s : sessions) { delete s.second; } } void collect_packet(PacketInfo& info) { utils::Session key; Mapper::fill_hash_key(info, key); auto i = sessions.find(key); if(i == sessions.end()) { std::unique_ptr ptr{ new SessionImpl{writer, max_hdr} }; auto res = sessions.emplace(key, ptr.get()); if(res.second) // add new - success { ptr.release(); i = res.first; // fill new session after construction utils::NetworkSession& session = *(res.first->second); Mapper::fill_session(info, session); } } i->second->collect(info); } private: Container sessions; Writer* writer; uint32_t max_hdr; }; } // namespace filtration } // namespace NST //------------------------------------------------------------------------------ #endif//SESSIONS_HASH_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/main.cpp000066400000000000000000000034711261713114600155470ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Entry point of program. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include "controller/controller.h" #include "controller/parameters.h" //------------------------------------------------------------------------------ using namespace NST::controller; //------------------------------------------------------------------------------ int main(int argc, char* argv[]) try { Parameters params(argc, argv); // set and validate CLI options if (params.show_help() || params.show_enum()) { return 0; // -h or -E were passed } Controller controller(params); return controller.run(); } catch (const std::exception& e) { std::cerr << argv[0] << ": " << e.what() << std::endl; return -1; } catch (...) { std::cerr << argv[0] << ": Unknown exception" << std::endl; return -1; } //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/000077500000000000000000000000001261713114600161365ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/cifs/000077500000000000000000000000001261713114600170625ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/cifs/cifs.cpp000066400000000000000000000101061261713114600205100ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing CIFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "protocols/cifs/cifs.h" //------------------------------------------------------------------------------ using namespace NST::protocols::CIFSv1; using namespace NST::API; union SMBCode { uint8_t codes[4]; uint32_t code; }; static inline uint32_t get_code() { SMBCode code; code.codes[0] = static_cast(ProtocolCodes::SMB1); code.codes[1] = 'S'; code.codes[2] = 'M'; code.codes[3] = 'B'; return code.code; } const NST::protocols::CIFSv1::MessageHeader* NST::protocols::CIFSv1::get_header(const uint8_t* data) { static uint32_t code = get_code (); const MessageHeader* header (reinterpret_cast(data)); if (header->head_code == code) { return header; } return nullptr; } bool MessageHeader::isFlag(const Flags flag) const { return static_cast(flag) & static_cast(flags); } const char* NST::protocols::CIFSv1::print_cifs1_procedures(SMBv1Commands cmd_code) { assert(cmd_code < SMBv1Commands::CMD_COUNT); static const char* const commandNames[] = { "CREATE_DIRECTORY", "DELETE_DIRECTORY", "OPEN", "CREATE", "CLOSE", "FLUSH", "DELETE", "RENAME", "QUERY_INFORMATION", "SET_INFORMATION", "READ", "WRITE", "LOCK_BYTE_RANGE", "UNLOCK_BYTE_RANGE", "CREATE_TEMPORARY", "CREATE_NEW", "CHECK_DIRECTORY", "PROCESS_EXIT", "SEEK", "LOCK_AND_READ", "WRITE_AND_UNLOCK", "READ_RAW", "READ_MPX", "READ_MPX_SECONDARY", "WRITE_RAW", "WRITE_MPX", "WRITE_MPX_SECONDARY", "WRITE_COMPLETE", "QUERY_SERVER", "SET_INFORMATION2", "QUERY_INFORMATION2", "LOCKING_ANDX", "TRANSACTION", "TRANSACTION_SECONDARY", "IOCTL", "IOCTL_SECONDARY", "COPY", "MOVE", "ECHO", "WRITE_AND_CLOSE", "OPEN_ANDX", "READ_ANDX", "WRITE_ANDX", "NEW_FILE_SIZE", "CLOSE_AND_TREE_DISC", "TRANSACTION2", "TRANSACTION2_SECONDARY", "FIND_CLOSE2", "FIND_NOTIFY_CLOSE", "TREE_CONNECT", "TREE_DISCONNECT", "NEGOTIATE", "SESSION_SETUP_ANDX", "LOGOFF_ANDX", "TREE_CONNECT_ANDX", "SECURITY_PACKAGE_ANDX", "QUERY_INFORMATION_DISK", "SEARCH", "FIND", "FIND_UNIQUE", "FIND_CLOSE", "NT_TRANSACT", "NT_TRANSACT_SECONDARY", "NT_CREATE_ANDX", "NT_CANCEL", "NT_RENAME", "OPEN_PRINT_FILE", "WRITE_PRINT_FILE", "CLOSE_PRINT_FILE", "GET_PRINT_QUEUE", "READ_BULK", "WRITE_BULK", "WRITE_BULK_DATA", "INVALID", "NO_ANDX_COMMAND" }; return commandNames[static_cast(cmd_code)]; } nfstrace-0.4.1/src/protocols/cifs/cifs.h000066400000000000000000000316731261713114600201710ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing CIFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFS_HEADER_H #define CIFS_HEADER_H //------------------------------------------------------------------------------ #include #include "api/cifs_types.h" #include "protocols/netbios/netbios.h" //------------------------------------------------------------------------------ #define NST_PUBLIC __attribute__ ((visibility("default"))) //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace CIFSv1 { using SMBv1Commands = NST::API::SMBv1::SMBv1Commands; /*! Flags of message */ enum class Flags : uint8_t { LOCK_AND_READ_OK = 0x01, //!< This bit is set (1) in the SMB_COM_NEGOTIATE (0x72) Response (section 2.2.4.52.2) if the server supports SMB_COM_LOCK_AND_READ (0x13) (section 2.2.4.20) and SMB_COM_WRITE_AND_UNLOCK (0x14) (section 2.2.4.21) commands. BUF_AVAIL = 0x02, //!< Obsolete. When set (on an SMB request being sent to the server), the client guarantees that there is a receive buffer posted such that a send without acknowledgment can be used by the server to respond to the client's request. This behavior is specific to an obsolete transport. This bit MUST be set to zero by the client and MUST be ignored by the server. Reserved = 0x04, //!< This flag MUST be set to zero by the client and MUST be ignored by the server. CASE_INSENSITIVE = 0x08, //!< Obsolete. If this bit is set then all pathnames in the SMB SHOULD be treated as case-insensitive.<26> CANONICALIZED_PATHS = 0x10, //!< Obsolescent. When set in session setup, this bit indicates that all paths sent to the server are already in canonical format. That is, all file and directory names are composed of valid file name characters in all upper-case, and that the path segments are separated by backslash characters ('\'). OPLOCK = 0x20, //!< Obsolescent. This bit has meaning only in the deprecatedSMB_COM_OPEN (0x02) Request (section 2.2.4.3.1), SMB_COM_CREATE (0x03) Request (section 2.2.4.4.1), and SMB_COM_CREATE_NEW (0x0F) Request (section 2.2.4.16.1) messages, where it is used to indicate that the client is requesting an Exclusive OpLock. It SHOULD be set to zero by the client, and ignored by the server, in all other SMB requests. If the server grants this OpLock request, then this bit SHOULD remain set in the corresponding response SMB to indicate to the client that the OpLock request was granted. OPBATCH = 0x40, //!< Obsolescent. This bit has meaning only in the deprecated SMB_COM_OPEN (0x02) Request (section 2.2.4.3.1), SMB_COM_CREATE (0x03) Request (section 2.2.4.4.1), and SMB_COM_CREATE_NEW (0x0F) Request (section 2.2.4.16.1) messages, where it is used to indicate that the client is requesting a Batch OpLock. It SHOULD be set to zero by the client, and ignored by the server, in all other SMB requests. If the server grants this OpLock request, then this bit SHOULD remain set in the corresponding response SMB to indicate to the client that the OpLock request was granted. If the SMB_FLAGS_OPLOCK bit is clear (0), then the SMB_FLAGS_OPBATCH bit is ignored. REPLY = 0x80, //!< When on, this message is being sent from the server in response to a client request. The Command field usually contains the same value in a protocol request from the client to the server as in the matching response from the server to the client. This bit unambiguously distinguishes the message as a server response. }; /*! CIFS commands */ enum class Commands : uint8_t { CREATE_DIRECTORY = 0x00, //!< Create a new directory. DELETE_DIRECTORY = 0x01, //!< Delete an empty directory. OPEN = 0x02, //!< Open a file. CREATE = 0x03, //!< Create or open a file. CLOSE = 0x04, //!< Close a file. FLUSH = 0x05, //!< Flush data for a file DELETE = 0x06, //!< Delete a file. RENAME = 0x07, //!< Rename a file or set of files. QUERY_INFORMATION = 0x08, //!< Get file attributes. SET_INFORMATION = 0x09, //!< Set file attributes. READ = 0x0A, //!< Read from a file. WRITE = 0x0B, //!< Write to a file. LOCK_BYTE_RANGE = 0x0C, //!< Request a byte-range lock on a file. UNLOCK_BYTE_RANGE = 0x0D, //!< Release a byte-range lock on a file. CREATE_TEMPORARY = 0x0E, //!< Create a temporary file. CREATE_NEW = 0x0F, //!< Create and open a new file. CHECK_DIRECTORY = 0x10, //!< Verify that the specified pathname resolves to a directory.Listed as SMBchkpath in some documentation. PROCESS_EXIT = 0x11, //!< Indicate process exit. SEEK = 0x12, //!< Set the current file pointer within a file. LOCK_AND_READ = 0x13, //!< Lock and read a byte-range within a file. WRITE_AND_UNLOCK = 0x14, //!< Write and unlock a byte-range within a file. READ_RAW = 0x1A, //!< Read a block in raw mode. READ_MPX = 0x1B, //!< Multiplexed block read. Listed as SMBreadmpx in some documentation. READ_MPX_SECONDARY = 0x1C, //!< Multiplexed block read WRITE_RAW = 0x1D, //!< Write a block in raw mode. WRITE_MPX = 0x1E, //!< Multiplexed block write. WRITE_MPX_SECONDARY = 0x1F, //!< Multiplexed block write WRITE_COMPLETE = 0x20, //!< Raw block write QUERY_SERVER = 0x21, //!< Reserved SET_INFORMATION2 = 0x22, //!< Set an extended set of file attributes. QUERY_INFORMATION2 = 0x23, //!< Get an extended set of file attributes. LOCKING_ANDX = 0x24, //!< Lock multiple byte ranges; AndX chaining. TRANSACTION = 0x25, //!< Transaction. TRANSACTION_SECONDARY = 0x26, //!< Transaction secondary request. IOCTL = 0x27, //!< Pass an I/O Control function request to the server. IOCTL_SECONDARY = 0x28, //!< IOCTL secondary request. COPY = 0x29, //!< Copy a file or directory. MOVE = 0x2A, //!< Move a file or directory. ECHO = 0x2B, //!< Echo request (ping). WRITE_AND_CLOSE = 0x2C, //!< Write to and close a file. OPEN_ANDX = 0x2D, //!< Extended file open with AndX chaining. READ_ANDX = 0x2E, //!< Extended file read with AndX chaining. WRITE_ANDX = 0x2F, //!< Extended file write with AndX chaining. NEW_FILE_SIZE = 0x30, //!< Reserved CLOSE_AND_TREE_DISC = 0x31, //!< Close an open file and tree disconnect. TRANSACTION2 = 0x32, //!< Transaction 2 format request/response. TRANSACTION2_SECONDARY = 0x33, //!< Transaction 2 secondary request. FIND_CLOSE2 = 0x34, //!< Close an active search. FIND_NOTIFY_CLOSE = 0x35, //!< Notification of the closure of an active search. TREE_CONNECT = 0x70, //!< Tree connect. TREE_DISCONNECT = 0x71, //!< Tree disconnect. NEGOTIATE = 0x72, //!< Negotiate protocol dialect. SESSION_SETUP_ANDX = 0x73, //!< Session Setup with AndX chaining. LOGOFF_ANDX = 0x74, //!< User logoff with AndX chaining. TREE_CONNECT_ANDX = 0x75, //!< Tree connect with AndX chaining. SECURITY_PACKAGE_ANDX = 0x7E, //!< Negotiate security packages with AndX chaining. QUERY_INFORMATION_DISK = 0x80, //!< Retrieve file system information from the server. SEARCH = 0x81, //!< Directory wildcard search. FIND = 0x82, //!< Start or continue an extended wildcard directory search. FIND_UNIQUE = 0x83, //!< Perform a one-time extended wildcard directory search. FIND_CLOSE = 0x84, //!< End an extended wildcard directory search. NT_TRANSACT = 0xA0, //!< NT format transaction request/response. NT_TRANSACT_SECONDARY = 0xA1, //!< NT format transaction secondary request. NT_CREATE_ANDX = 0xA2, //!< Create or open a file or a directory. NT_CANCEL = 0xA4, //!< Cancel a request currently pending at the server. NT_RENAME = 0xA5, //!< File rename with extended semantics. OPEN_PRINT_FILE = 0xC0, //!< Create a print queue spool file. WRITE_PRINT_FILE = 0xC1, //!< Write to a print queue spool file. CLOSE_PRINT_FILE = 0xC2, //!< Close a print queue spool file. GET_PRINT_QUEUE = 0xC3, //!< Request print queue information. READ_BULK = 0xD8, //!< Reserved WRITE_BULK = 0xD9, //!< Reserved WRITE_BULK_DATA = 0xDA, //!< Reserved INVALID = 0xFE, //!< As the name suggests NO_ANDX_COMMAND = 0xFF //!< Also known as the NIL command. It identifies the end of an AndX Chain }; /*! SMB protocol codes */ enum class ProtocolCodes : uint8_t { SMB2 = 0xFE, //!< SMB v2.0-2.1 SMB1 = 0xFF //!< SMB v.1.0 }; /*! \class First part of CIFS header */ struct MessageHeaderHead { ProtocolCodes protocol_code;//!< Protocol version - 0xFF or 0xF3 int8_t protocol[3];//!< Protocol name (SMB) } __attribute__ ((__packed__)); /*! Security field for CIFS header */ struct SecurityField { int8_t key[4];//!< Somethink about security int16_t CID;//!< A connection identifier (CID). int16_t sequenceNumber;//!< A number used to identify the sequence of a message over connectionless transports. }; /*! \class Raw CIFS message header */ struct RawMessageHeader { union { MessageHeaderHead head;//!< Head of header uint32_t head_code;//!< For fast checking }; Commands cmd_code;//!< Code of SMB command int32_t status;//!< Used to communicate error messages from the server to the client. Flags flags;//!< 1-bit flags describing various features in effect for the message. uint8_t flags2[2];//!< A 16-bit field of 1-bit flags that represent various features in effect for the message. Unspecified bits are reserved and MUST be zero. int16_t PIDHigh;//!< If set to a nonzero value, this field represents the high-order bytes of a process identifier (PID). It is combined with the PIDLow field below to form a full PID. union // Depends on command { int8_t securityFeatures[8];//!< Somethink about security SecurityField sec;//!< Security field structure }; int16_t _;//!< Reserved int16_t TID;//!< A tree identifier int16_t PIDLow;//!< The lower 16-bits of the PID int16_t UID;//!< A user identifier int16_t MID;//!< A multiplex identifier } __attribute__ ((__packed__)); /*! High level user friendly message structure */ struct MessageHeader : public RawMessageHeader { /*! Check flag * \param flag - flag to be check * \return True, if flag set, and False in other case */ bool isFlag(const Flags flag) const; }; /*! Check is data valid CIFS message's header and return header or nullptr * \param data - raw packet data * \return pointer to input data which is casted to header structure or nullptr (if it is not valid header) */ const MessageHeader* get_header(const uint8_t* data); /*! Constructs new command for API from raw message * \param request - Call's header * \param response - Reply's header * \return Command structure */ template inline const Cmd command(Data& request, Data& response, Session* session) { Cmd cmd; cmd.session = session; // Set time stamps cmd.ctimestamp = &request->timestamp; cmd.rtimestamp = &response->timestamp; return cmd; } extern "C" NST_PUBLIC const char* print_cifs1_procedures(SMBv1Commands cmd_code); } // namespace CIFSv1 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//CIFS_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/cifs2/000077500000000000000000000000001261713114600171445ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/cifs2/cifs2.cpp000066400000000000000000000137311261713114600206630ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing CIFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include "protocols/cifs2/cifs2.h" #include "protocols/cifs/cifs.h" #include "api/cifs_pc_to_net.h" //------------------------------------------------------------------------------ using namespace NST::protocols::CIFSv2; # if NFSTRACE_BYTE_ORDER == NFSTRACE_BIG_ENDIAN inline uint64_t ntohll(uint64_t input) { // Network byte order == Big Endian return input; } # else # if NFSTRACE_BYTE_ORDER == NFSTRACE_LITTLE_ENDIAN inline uint64_t ntohll(uint64_t input) { return be64toh(input); } # endif # endif union SMBCode { uint8_t codes[4]; uint32_t code; }; static inline uint32_t get_code() { SMBCode code; code.codes[0] = static_cast(NST::protocols::CIFSv1::ProtocolCodes::SMB2); code.codes[1] = 'S'; code.codes[2] = 'M'; code.codes[3] = 'B'; return code.code; } const NST::protocols::CIFSv2::MessageHeader* NST::protocols::CIFSv2::get_header(const uint8_t* data) { static uint32_t code = get_code (); const MessageHeader* header (reinterpret_cast(data)); if (header->head_code == code) { return header; } return nullptr; } bool MessageHeader::isFlag(const Flags flag) const { return static_cast(flag) & flags; } void NST::protocols::CIFSv2::parseGuid(uint8_t (&guid)[16]) { Guid &p = reinterpret_cast(guid); p.Data1 = le32toh(p.Data1); p.Data2 = le16toh(p.Data2); p.Data3 = le16toh(p.Data3); } void NST::protocols::CIFSv2::parse(SMBv2::ErrResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::NegotiateRequest*& p) { parseGuid(p->clientGUID); } void NST::protocols::CIFSv2::parse(SMBv2::NegotiateResponse*& p) { parseGuid(p->serverGUID); } void NST::protocols::CIFSv2::parse(SMBv2::SessionSetupRequest*&){ } void NST::protocols::CIFSv2::parse(SMBv2::SessionSetupResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::LogOffRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::LogOffResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::TreeConnectRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::TreeConnectResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::TreeDisconnectRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::TreeDisconnectResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::CreateRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::CreateResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::CloseRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::CloseResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::EchoRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::EchoResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::QueryInfoRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::QueryInfoResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::QueryDirRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::QueryDirResponse*&){ } void NST::protocols::CIFSv2::parse(SMBv2::FlushRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::FlushResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::ReadRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::ReadResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::Lock*&) { } void NST::protocols::CIFSv2::parse(SMBv2::WriteRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::WriteResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::LockRequest*&) { } void NST::protocols::CIFSv2::parse(SMBv2::LockResponse*&) { } void NST::protocols::CIFSv2::parse(SMBv2::ChangeNotifyRequest*&){ } void NST::protocols::CIFSv2::parse(SMBv2::FileNotifyInformation*&){ } void NST::protocols::CIFSv2::parse(SMBv2::ChangeNotifyResponse*&){ } void NST::protocols::CIFSv2::parse(SMBv2::OplockAcknowledgment*&){ } void NST::protocols::CIFSv2::parse(SMBv2::OplockResponse*&){ } void NST::protocols::CIFSv2::parse(SMBv2::IoCtlRequest*&){ } void NST::protocols::CIFSv2::parse(SMBv2::IoCtlResponse*&){ } void NST::protocols::CIFSv2::parse(SMBv2::SetInfoRequest*&){ } void NST::protocols::CIFSv2::parse(SMBv2::SetInfoResponse*&){ } void NST::protocols::CIFSv2::parse(SMBv2::CancelResponce*&){ } void NST::protocols::CIFSv2::parse(SMBv2::CancelRequest*&){ } // TODO: This implementation currently copy of // epm-nfs/analyzers/src/cifs/cifs2_commands.cpp // const std::string NST::breakdown::SMBv2Commands::command_name(int cmd_code) // Futre fix: We need to merege these enums // TODO: Move implementation to some common module const char* NST::protocols::CIFSv2::print_cifs2_procedures(SMBv2Commands cmd) { assert(cmd < SMBv2Commands::CMD_COUNT); static const char* const commandNames[] = { "NEGOTIATE", "SESSION SETUP", "LOGOFF", "TREE CONNECT", "TREE DISCONNECT", "CREATE", "CLOSE", "FLUSH", "READ", "WRITE", "LOCK", "IOCTL", "CANCEL", "ECHO", "QUERY DIRECTORY", "CHANGE NOTIFY", "QUERY INFO", "SET INFO", "OPLOCK BREAK" }; return commandNames[static_cast(cmd)]; } nfstrace-0.4.1/src/protocols/cifs2/cifs2.h000066400000000000000000000227661261713114600203400ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing CIFS v2 structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFSv2_HEADER_H #define CIFSv2_HEADER_H //------------------------------------------------------------------------------ #include "api/cifs_commands.h" #include "api/cifs2_commands.h" #include "protocols/cifs/cifs.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace CIFSv2 { using SMBv2Commands = NST::API::SMBv2::SMBv2Commands; namespace SMBv2 = NST::API::SMBv2; // https://msdn.microsoft.com/en-us/library/ff718266.aspx struct Guid { uint32_t Data1; // unsigned long replaced by uint32_t uint16_t Data2; // unsigned short replaced by uint16_t uint16_t Data3; // unsigned short replaced by uint16_t uint8_t Data4[8]; // byte replaced by uint8_t } __attribute__ ((__packed__)); /*! CIFS v2 Flags */ enum class Flags : uint32_t { SERVER_TO_REDIR = API::SMBv2::pc_to_net(0x00000001), //!< When set, indicates the message is a response, rather than a request. This MUST be set on responses sent from the server to the client and MUST NOT be set on requests sent from the client to the server. ASYNC_COMMAND = API::SMBv2::pc_to_net(0x00000002), //!< When set, indicates that this is an ASYNC SMB2 header. This flag MUST NOT be set when using the SYNC SMB2 header. RELATED_OPERATIONS = API::SMBv2::pc_to_net(0x00000004), //!< When set in an SMB2 request, indicates that this request is a related operation in a compounded request chain. The use of this flag in an SMB2 request is as specified in 3.2.4.1.4. //!< When set in an SMB2 compound response, indicates that the request corresponding to this response was part of a related operation in a compounded request chain. The use of this flag in an SMB2 response is as specified in 3.3.5.2.7.2. SIGNED = API::SMBv2::pc_to_net(0x00000008), //!< When set, indicates that this packet has been signed. The use of this flag is as specified in 3.1.5.1. DFS_OPERATIONS = API::SMBv2::pc_to_net(0x10000000), //!< When set, indicates that this command is a DFS operation. The use of this flag is as specified in 3.3.5.9. REPLAY_OPERATION = API::SMBv2::pc_to_net(0x20000000) //!< This flag is only valid for the SMB 3.x dialect family. When set, it indicates that this command is a replay operation. The client MUST ignore this bit on receipt. }; /*! \class Raw CIFS v2 message header */ struct RawMessageHeader { union { CIFSv1::MessageHeaderHead head;//!< Head of header uint32_t head_code;//!< For fast checking }; int16_t StructureSize;//!< In the SMB 2.002 dialect, this field MUST NOT be used and MUST be reserved. The sender MUST set this to 0, and the receiver MUST ignore it. In all other dialects, this field indicates the number of credits that this request consumes. int16_t CreditCharge;//!< In a request, this field is interpreted in different ways depending on the SMB2 dialect. In the SMB 3.x dialect family, this field is interpreted as the ChannelSequence field followed by the Reserved field in a request. uint32_t status;//!< Used to communicate error messages from the server to the client. SMBv2Commands cmd_code;//!< Code of SMB command int16_t Credit;//!< This MUST be set to 64, which is the size, in bytes, of the SMB2 header structure. int32_t flags;//!< 1-bit flags describing various features in effect for the message. int32_t nextCommand;//!< For a compounded request, this field MUST be set to the offset, in bytes, from the beginning of this SMB2 header to the start of the subsequent 8-byte aligned SMB2 header. If this is not a compounded request, or this is the last header in a compounded request, this value MUST be 0. int64_t messageId;//!< A value that identifies a message request and response uniquely across all messages that are sent on the same SMB 2 Protocol transport connection. int32_t _;//!< The client SHOULD<3> set this field to 0. The server MAY<4> ignore this field on receipt. int32_t TreeId;//!< Uniquely identifies the tree connect for the command. This MUST be 0 for the SMB2 TREE_CONNECT Request. The TreeId can be any unsigned 32-bit integer that is received from a previous SMB2 TREE_CONNECT Response. The following SMB 2 Protocol commands do not require the TreeId to be set to a nonzero value received from a previous SMB2 TREE_CONNECT Response. /*! TreeId SHOULD be set to 0 for the following commands: SMB2 NEGOTIATE Request SMB2 NEGOTIATE Response SMB2 SESSION_SETUP Request SMB2 SESSION_SETUP Response SMB2 LOGOFF Request SMB2 LOGOFF Response SMB2 ECHO Request SMB2 ECHO Response SMB2 CANCEL Request */ int64_t SessionId;//!< Uniquely identifies the established session for the command uint8_t Signature[16];//!< he 16-byte signature of the message, if SMB2_FLAGS_SIGNED is set in the Flags field of the SMB2 header. If the message is not signed, this field MUST be 0. } __attribute__ ((__packed__)); /*! High level user friendly message structure */ struct MessageHeader : public RawMessageHeader { /*! Check flag * \param flag - flag to be check * \return True, if flag set, and False in other case */ bool isFlag(const Flags flag) const; }; /*! Check is data valid CIFS message's header and return header or nullptr * \param data - raw packet data * \return pointer to input data which is casted to header structure or nullptr (if it is not valid header) */ const MessageHeader* get_header(const uint8_t* data); void parseGuid(uint8_t (&guid)[16]); void parse(SMBv2::ErrResponse*&); void parse(SMBv2::NegotiateRequest*&); void parse(SMBv2::NegotiateResponse*&); void parse(SMBv2::SessionSetupRequest*&); void parse(SMBv2::SessionSetupResponse*&); void parse(SMBv2::LogOffRequest*&); void parse(SMBv2::LogOffResponse*&); void parse(SMBv2::TreeConnectRequest*&); void parse(SMBv2::TreeConnectResponse*&); void parse(SMBv2::TreeDisconnectRequest*&); void parse(SMBv2::TreeDisconnectResponse*&); void parse(SMBv2::CreateRequest*&); void parse(SMBv2::CreateResponse*&); void parse(SMBv2::CloseRequest*&); void parse(SMBv2::CloseResponse*&); void parse(SMBv2::EchoRequest*&); void parse(SMBv2::EchoResponse*&); void parse(SMBv2::QueryInfoRequest*&); void parse(SMBv2::QueryInfoResponse*&); void parse(SMBv2::QueryDirRequest*&); void parse(SMBv2::QueryDirResponse*&); void parse(SMBv2::FlushRequest*&); void parse(SMBv2::FlushResponse*&); void parse(SMBv2::ReadRequest*&); void parse(SMBv2::ReadResponse*&); void parse(SMBv2::Lock*&); void parse(SMBv2::WriteRequest*&); void parse(SMBv2::WriteResponse*&); void parse(SMBv2::LockRequest*&); void parse(SMBv2::LockResponse*&); void parse(SMBv2::ChangeNotifyRequest*&); void parse(SMBv2::FileNotifyInformation*&); void parse(SMBv2::ChangeNotifyResponse*&); void parse(SMBv2::OplockAcknowledgment*&); void parse(SMBv2::OplockResponse*&); void parse(SMBv2::IoCtlRequest*&); void parse(SMBv2::IoCtlResponse*&); void parse(SMBv2::SetInfoRequest*&); void parse(SMBv2::SetInfoResponse*&); void parse(SMBv2::CancelResponce*&); void parse(SMBv2::CancelRequest*&); /*! Constructs new command for API from raw message * \param request - Call's * \param response - Reply's * \param session - session * \return Command structure */ template inline const Cmd command(Data& request, Data& response, Session* session) { Cmd cmd; cmd.session = session; // Set time stamps cmd.ctimestamp = &request->timestamp; cmd.rtimestamp = response ? &response->timestamp : &request->timestamp; // // Since we have to modify structures before command creation // we have to cast raw data to pointer type ( in contrast to const pointer ) // auto req_header = reinterpret_cast(request->data); auto pargs = reinterpret_cast(request->data + sizeof(RawMessageHeader)); parse(pargs); cmd.req_header = req_header; if(response) { cmd.res_header = reinterpret_cast(response->data); cmd.pres = reinterpret_cast(response->data + sizeof(RawMessageHeader)); } cmd.parg = pargs; return cmd; } extern "C" NST_PUBLIC const char* print_cifs2_procedures(SMBv2Commands cmd_code); } // namespace CIFSv2 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//CIFSv2_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/cifs2/cifs2_utils.cpp000066400000000000000000000762541261713114600221140ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Artsem Iliasau // Description: Helpers for parsing CIFSv2 structures. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include "cifs2.h" #include "cifs2_utils.h" #include "protocols/nfs/nfs_utils.h" //------------------------------------------------------------------------------ static const std::string flagDelimiter = " | "; //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace CIFSv2 { using namespace NST::API::SMBv2; namespace { template void print_flag_if_set(std::ostream& out, const std::string& name, typename std::underlying_type::type& value, T flag) { auto int_flag = to_integral(flag); if (value & int_flag) { out << name; value = value & ~int_flag; if(value > 0) out << flagDelimiter; } } const char* enumToString(OplockLevels value) { switch (value) { case OplockLevels::NONE: return "NONE"; case OplockLevels::II: return "II"; case OplockLevels::EXCLUSIVE: return "EXCLUSIVE"; case OplockLevels::BATCH: return "BATCH"; case OplockLevels::LEASE: return "LEASE"; } return nullptr; } const char* enumToString(ImpersonationLevels value) { switch (value) { case ImpersonationLevels::ANONYMOUS: return "ANONYMOUS"; case ImpersonationLevels::IDENTIFICATION: return "IDENTIFICATION"; case ImpersonationLevels::IMPERSONATION: return "IMPERSONATION"; case ImpersonationLevels::DELEGATE: return "DELEGATE"; } return nullptr; } const char* enumToString(CreateDisposition value) { switch (value) { case CreateDisposition::SUPERSEDE: return "SUPERSEDE"; case CreateDisposition::OPEN: return "OPEN"; case CreateDisposition::CREATE: return "CREATE"; case CreateDisposition::OPEN_IF: return "OPEN_IF"; case CreateDisposition::OVERWRITE: return "OVERWRITE"; case CreateDisposition::OVERWRITE_IF: return "OVERWRITE_IF"; } return nullptr; } const char* enumToString(CreateActions value) { switch (value) { case CreateActions::SUPERSEDED: return "SUPERSEDED"; case CreateActions::OPENED: return "OPENED"; case CreateActions::CREATED: return "CREATED"; case CreateActions::FILE_OVERWRITTEN: return "FILE_OVERWRITTEN"; } return nullptr; } const char* enumToString(ShareTypes value) { switch (value) { case ShareTypes::DISK: return "SMB2_SHARE_TYPE_DISK"; case ShareTypes::PIPE: return "SMB2_SHARE_TYPE_PIPE"; case ShareTypes::PRINT: return "SMB2_SHARE_TYPE_PRINT"; } return nullptr; } const char* enumToString(NTStatus value) { switch (value) { case NTStatus::STATUS_SUCCESS: return "STATUS_SUCCESS"; case NTStatus::STATUS_NO_MORE_FILES: return "STATUS_NO_MORE_FILES"; case NTStatus::STATUS_INVALID_HANDLE: return "STATUS_INVALID_HANDLE"; case NTStatus::STATUS_INVALID_PARAMETER: return "STATUS_INVALID_PARAMETER"; case NTStatus::STATUS_NO_SUCH_FILE: return "STATUS_NO_SUCH_FILE"; case NTStatus::STATUS_MORE_PROCESSING_REQUIRED: return "STATUS_MORE_PROCESSING_REQUIRED"; case NTStatus::STATUS_INVALID_SYSTEM_SERVICE: return "STATUS_INVALID_SYSTEM_SERVICE"; case NTStatus::STATUS_ACCESS_DENIED: return "STATUS_ACCESS_DENIED"; case NTStatus::STATUS_OBJECT_NAME_INVALID: return "STATUS_OBJECT_NAME_INVALID"; case NTStatus::STATUS_OBJECT_NAME_NOT_FOUND: return "STATUS_OBJECT_NAME_NOT_FOUND"; case NTStatus::STATUS_OBJECT_NAME_COLLISION: return "STATUS_OBJECT_NAME_COLLISION"; case NTStatus::STATUS_OBJECT_PATH_NOT_FOUND: return "STATUS_OBJECT_PATH_NOT_FOUND"; case NTStatus::STATUS_OBJECT_PATH_SYNTAX_BAD: return "STATUS_OBJECT_PATH_SYNTAX_BAD"; case NTStatus::STATUS_SHARING_VIOLATION: return "STATUS_SHARING_VIOLATION"; case NTStatus::STATUS_EA_TOO_LARGE: return "STATUS_EA_TOO_LARGE"; case NTStatus::STATUS_FILE_LOCK_CONFLICT: return "STATUS_FILE_LOCK_CONFLICT"; case NTStatus::STATUS_LOCK_NOT_GRANTED: return "STATUS_LOCK_NOT_GRANTED"; case NTStatus::STATUS_LOGON_FAILURE: return "STATUS_LOGON_FAILURE"; case NTStatus::STATUS_RANGE_NOT_LOCKED: return "STATUS_RANGE_NOT_LOCKED"; case NTStatus::STATUS_FILE_IS_A_DIRECTORY: return "STATUS_FILE_IS_A_DIRECTORY"; case NTStatus::STATUS_NOT_SUPPORTED: return "STATUS_NOT_SUPPORTED"; case NTStatus::STATUS_BAD_DEVICE_TYPE: return "STATUS_BAD_DEVICE_TYPE"; case NTStatus::STATUS_REQUEST_NOT_ACCEPTED: return "STATUS_REQUEST_NOT_ACCEPTED"; case NTStatus::STATUS_DIRECTORY_NOT_EMPTY: return "STATUS_DIRECTORY_NOT_EMPTY"; case NTStatus::STATUS_NOT_A_DIRECTORY: return "STATUS_NOT_A_DIRECTORY"; case NTStatus::STATUS_CANCELLED: return "STATUS_CANCELLED"; } return nullptr; } const char* enumToString(FsInfoLevels value) { switch (value) { case FsInfoLevels::SMB2_FS_INFO_01: return "SMB2_FS_INFO_01"; case FsInfoLevels::SMB2_FS_INFO_02: return "SMB2_FS_INFO_02"; case FsInfoLevels::SMB2_FS_INFO_03: return "SMB2_FS_INFO_03"; case FsInfoLevels::SMB2_FS_INFO_04: return "SMB2_FS_INFO_04"; case FsInfoLevels::SMB2_FS_INFO_05: return "SMB2_FS_INFO_05"; case FsInfoLevels::SMB2_FS_INFO_06: return "SMB2_FS_INFO_06"; case FsInfoLevels::SMB2_FS_INFO_07: return "SMB2_FS_INFO_07"; } return nullptr; } const char* enumToString(QueryInfoLevels value) { switch (value) { case QueryInfoLevels::DIRECTORY_INFORMATION: return "DIRECTORY_INFORMATION"; case QueryInfoLevels::FULL_DIRECTORY_INFORMATION: return "FULL_DIRECTORY_INFORMATION"; case QueryInfoLevels::BOTH_DIRECTORY_INFORMATION: return "BOTH_DIRECTORY_INFORMATION"; case QueryInfoLevels::BASIC_INFORMATION: return "BASIC_INFORMATION"; case QueryInfoLevels::STANDARD_INFORMATION: return "STANDARD_INFORMATION"; case QueryInfoLevels::INTERNAL_INFORMATION: return "INTERNAL_INFORMATION"; case QueryInfoLevels::EA_INFORMATION: return "EA_INFORMATION"; case QueryInfoLevels::ACCESS_INFORMATION: return "ACCESS_INFORMATION"; case QueryInfoLevels::NAME_INFORMATION: return "NAME_INFORMATION"; case QueryInfoLevels::RENAME_INFORMATION: return "RENAME_INFORMATION"; case QueryInfoLevels::LINK_INFORMATION: return "LINK_INFORMATION"; case QueryInfoLevels::NAMES_INFORMATION: return "NAMES_INFORMATION"; case QueryInfoLevels::DISPOSITION_INFORMATION: return "DISPOSITION_INFORMATION"; case QueryInfoLevels::POSITION_INFORMATION: return "POSITION_INFORMATION"; case QueryInfoLevels::FULL_EA_INFORMATION: return "FULL_EA_INFORMATION"; case QueryInfoLevels::MODE_INFORMATION: return "MODE_INFORMATION"; case QueryInfoLevels::ALIGNMENT_INFORMATION: return "ALIGNMENT_INFORMATION"; case QueryInfoLevels::ALL_INFORMATION: return "ALL_INFORMATION"; case QueryInfoLevels::ALLOCATION_INFORMATION: return "ALLOCATION_INFORMATION"; case QueryInfoLevels::END_OF_FILE_INFORMATION: return "END_OF_FILE_INFORMATION"; case QueryInfoLevels::ALTERNATE_NAME_INFORMATION: return "ALTERNATE_NAME_INFORMATION"; case QueryInfoLevels::STREAM_INFORMATION: return "STREAM_INFORMATION"; case QueryInfoLevels::PIPE_INFORMATION: return "PIPE_INFORMATION"; case QueryInfoLevels::PIPE_LOCAL_INFORMATION: return "PIPE_LOCAL_INFORMATION"; case QueryInfoLevels::PIPE_REMOTE_INFORMATION: return "PIPE_REMOTE_INFORMATION"; case QueryInfoLevels::MAILSLOT_QUERY_INFORMATION: return "MAILSLOT_QUERY_INFORMATION"; case QueryInfoLevels::MAILSLOT_SET_INFORMATION: return "MAILSLOT_SET_INFORMATION"; case QueryInfoLevels::COMPRESSION_INFORMATION: return "COMPRESSION_INFORMATION"; case QueryInfoLevels::OBJECT_ID_INFORMATION: return "OBJECT_ID_INFORMATION"; case QueryInfoLevels::MOVE_CLUSTER_INFORMATION: return "MOVE_CLUSTER_INFORMATION"; case QueryInfoLevels::QUOTA_INFORMATION: return "QUOTA_INFORMATION"; case QueryInfoLevels::REPARSE_POINT_INFORMATION: return "REPARSE_POINT_INFORMATION"; case QueryInfoLevels::NETWORK_OPEN_INFORMATION: return "NETWORK_OPEN_INFORMATION"; case QueryInfoLevels::ATTRIBUTE_TAG_INFORMATION: return "ATTRIBUTE_TAG_INFORMATION"; case QueryInfoLevels::TRACKING_INFORMATION: return "TRACKING_INFORMATION"; case QueryInfoLevels::ID_BOTH_DIRECTORY_INFORMATION: return "ID_BOTH_DIRECTORY_INFORMATION"; case QueryInfoLevels::ID_FULL_DIRECTORY_INFORMATION: return "ID_FULL_DIRECTORY_INFORMATION"; case QueryInfoLevels::VALID_DATA_LENGTH_INFORMATION: return "VALID_DATA_LENGTH_INFORMATION"; case QueryInfoLevels::SHORT_NAME_INFORMATION: return "SHORT_NAME_INFORMATION"; case QueryInfoLevels::SFIO_RESERVE_INFORMATION: return "SFIO_RESERVE_INFORMATION"; case QueryInfoLevels::SFIO_VOLUME_INFORMATION: return "SFIO_VOLUME_INFORMATION"; case QueryInfoLevels::HARD_LINK_INFORMATION: return "HARD_LINK_INFORMATION"; case QueryInfoLevels::NORMALIZED_NAME_INFORMATION: return "NORMALIZED_NAME_INFORMATION"; case QueryInfoLevels::ID_GLOBAL_TX_DIRECTORY_INFORMATION: return "ID_GLOBAL_TX_DIRECTORY_INFORMATION"; case QueryInfoLevels::STANDARD_LINK_INFORMATION: return "STANDARD_LINK_INFORMATION"; } return nullptr; } const char* enumToString(CtlCodes value) { switch (value) { case CtlCodes::SCTL_DFS_GET_REFERRALS: return "SCTL_DFS_GET_REFERRALS"; case CtlCodes::FSCTL_PIPE_PEEK: return "FSCTL_PIPE_PEEK"; case CtlCodes::FSCTL_PIPE_WAIT: return "FSCTL_PIPE_WAIT"; case CtlCodes::FSCTL_PIPE_TRANSCEIVE: return "FSCTL_PIPE_TRANSCEIVE"; case CtlCodes::FSCTL_SRV_COPYCHUNK: return "FSCTL_SRV_COPYCHUNK"; case CtlCodes::FSCTL_SRV_ENUMERATE_SNAPSHOTS: return "FSCTL_SRV_ENUMERATE_SNAPSHOTS"; case CtlCodes::FSCTL_SRV_REQUEST_RESUME_KEY: return "FSCTL_SRV_REQUEST_RESUME_KEY"; case CtlCodes::FSCTL_SRV_READ_HASH: return "FSCTL_SRV_READ_HASH"; case CtlCodes::FSCTL_SRV_COPYCHUNK_WRITE: return "FSCTL_SRV_COPYCHUNK_WRITE"; case CtlCodes::FSCTL_LMR_REQUEST_RESILIENCY: return "FSCTL_LMR_REQUEST_RESILIENCY"; case CtlCodes::FSCTL_QUERY_NETWORK_INTERFACE_INFO: return "FSCTL_QUERY_NETWORK_INTERFACE_INFO"; case CtlCodes::FSCTL_SET_REPARSE_POINT: return "FSCTL_SET_REPARSE_POINT"; case CtlCodes::FSCTL_DFS_GET_REFERRALS_EX: return "FSCTL_DFS_GET_REFERRALS_EX"; case CtlCodes::FSCTL_FILE_LEVEL_TRIM: return "FSCTL_FILE_LEVEL_TRIM"; case CtlCodes::FSCTL_VALIDATE_NEGOTIATE_INFO: return "FSCTL_VALIDATE_NEGOTIATE_INFO"; } return nullptr; } const char* enumToString(InfoTypes value) { switch (value) { case InfoTypes::FILE: return "SMB2_0_INFO_FILE"; case InfoTypes::FILESYSTEM: return "SMB2_0_INFO_FILESYSTEM"; case InfoTypes::SECURITY: return "SMB2_0_INFO_SECURITY"; case InfoTypes::QUOTA: return "SMB2_0_INFO_QUOTA"; } return nullptr; } const char* enumToString(SessionFlagsBinding value) { switch (value) { case SessionFlagsBinding::NONE: return "NONE"; case SessionFlagsBinding::BINDING: return "BINDING"; } return nullptr; } } std::ostream& operator<<(std::ostream& out, const SMBv2::SMBv2Commands value) { const char* strCommand = NST::protocols::CIFSv2::print_cifs2_procedures(value); out << "(" << strCommand << ")"; return out; } std::ostream& operator<<(std::ostream& out, const OplockLevels value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const ImpersonationLevels value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const CreateDisposition value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const CreateActions value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const ShareTypes value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const NTStatus value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const DesiredAccessFlags value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "READ_DATA_LE", int_value, DesiredAccessFlags::READ_DATA_LE); print_flag_if_set(out, "WRITE_DATA_LE", int_value, DesiredAccessFlags::WRITE_DATA_LE); print_flag_if_set(out, "APPEND_DATA_LE", int_value, DesiredAccessFlags::APPEND_DATA_LE); print_flag_if_set(out, "READ_EA_LE", int_value, DesiredAccessFlags::READ_EA_LE); print_flag_if_set(out, "WRITE_EA_LE", int_value, DesiredAccessFlags::WRITE_EA_LE); print_flag_if_set(out, "EXECUTE_LE", int_value, DesiredAccessFlags::EXECUTE_LE); print_flag_if_set(out, "READ_ATTRIBUTES_LE", int_value, DesiredAccessFlags::READ_ATTRIBUTES_LE); print_flag_if_set(out, "WRITE_ATTRIBUTES_LE", int_value, DesiredAccessFlags::WRITE_ATTRIBUTES_LE); print_flag_if_set(out, "DELETE_LE", int_value, DesiredAccessFlags::DELETE_LE); print_flag_if_set(out, "READ_CONTROL_LE", int_value, DesiredAccessFlags::READ_CONTROL_LE); print_flag_if_set(out, "WRITE_DAC_LE", int_value, DesiredAccessFlags::WRITE_DAC_LE); print_flag_if_set(out, "WRITE_OWNER_LE", int_value, DesiredAccessFlags::WRITE_OWNER_LE); print_flag_if_set(out, "SYNCHRONIZE_LE", int_value, DesiredAccessFlags::SYNCHRONIZE_LE); print_flag_if_set(out, "ACCESS_SYSTEM_SECURITY_LE", int_value, DesiredAccessFlags::ACCESS_SYSTEM_SECURITY_LE); print_flag_if_set(out, "MAXIMAL_ACCESS_LE", int_value, DesiredAccessFlags::MAXIMAL_ACCESS_LE); print_flag_if_set(out, "GENERIC_ALL_LE", int_value, DesiredAccessFlags::GENERIC_ALL_LE); print_flag_if_set(out, "GENERIC_EXECUTE_LE", int_value, DesiredAccessFlags::GENERIC_EXECUTE_LE); print_flag_if_set(out, "GENERIC_WRITE_LE", int_value, DesiredAccessFlags::GENERIC_WRITE_LE); print_flag_if_set(out, "GENERIC_READ_LE", int_value, DesiredAccessFlags::GENERIC_READ_LE); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const FileAttributes value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "READONLY", int_value, FileAttributes::READONLY); print_flag_if_set(out, "HIDDEN", int_value, FileAttributes::HIDDEN); print_flag_if_set(out, "SYSTEM", int_value, FileAttributes::SYSTEM); print_flag_if_set(out, "DIRECTORY", int_value, FileAttributes::DIRECTORY); print_flag_if_set(out, "ARCHIVE", int_value, FileAttributes::ARCHIVE); print_flag_if_set(out, "NORMAL", int_value, FileAttributes::NORMAL); print_flag_if_set(out, "TEMPORARY", int_value, FileAttributes::TEMPORARY); print_flag_if_set(out, "SPARSE_FILE", int_value, FileAttributes::SPARSE_FILE); print_flag_if_set(out, "REPARSE_POINT", int_value, FileAttributes::REPARSE_POINT); print_flag_if_set(out, "COMPRESSED", int_value, FileAttributes::COMPRESSED); print_flag_if_set(out, "OFFLINE", int_value, FileAttributes::OFFLINE); print_flag_if_set(out, "NOT_CONTENT_INDEXED", int_value, FileAttributes::NOT_CONTENT_INDEXED); print_flag_if_set(out, "ENCRYPTED", int_value, FileAttributes::ENCRYPTED); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const ShareAccessFlags value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "SHARE_READ_LE", int_value, ShareAccessFlags::SHARE_READ_LE); print_flag_if_set(out, "SHARE_WRITE_LE", int_value, ShareAccessFlags::SHARE_WRITE_LE); print_flag_if_set(out, "SHARE_DELETE_LE", int_value, ShareAccessFlags::SHARE_DELETE_LE); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const CreateOptionsFlags value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "DIRECTORY_FILE_LE", int_value, CreateOptionsFlags::DIRECTORY_FILE_LE); print_flag_if_set(out, "WRITE_THROUGH_LE", int_value, CreateOptionsFlags::WRITE_THROUGH_LE); print_flag_if_set(out, "SEQUENTIAL_ONLY_LE", int_value, CreateOptionsFlags::SEQUENTIAL_ONLY_LE); print_flag_if_set(out, "NO_INTERMEDIATE_BUFFERRING_LE",int_value, CreateOptionsFlags::NO_INTERMEDIATE_BUFFERRING_LE); print_flag_if_set(out, "SYNCHRONOUS_IO_ALERT_LE", int_value, CreateOptionsFlags::SYNCHRONOUS_IO_ALERT_LE); print_flag_if_set(out, "SYNCHRONOUS_IO_NON_ALERT_LE", int_value, CreateOptionsFlags::SYNCHRONOUS_IO_NON_ALERT_LE); print_flag_if_set(out, "NON_DIRECTORY_FILE_LE", int_value, CreateOptionsFlags::NON_DIRECTORY_FILE_LE); print_flag_if_set(out, "COMPLETE_IF_OPLOCKED_LE", int_value, CreateOptionsFlags::COMPLETE_IF_OPLOCKED_LE); print_flag_if_set(out, "NO_EA_KNOWLEDGE_LE", int_value, CreateOptionsFlags::NO_EA_KNOWLEDGE_LE); print_flag_if_set(out, "RANDOM_ACCESS_LE", int_value, CreateOptionsFlags::RANDOM_ACCESS_LE); print_flag_if_set(out, "DELETE_ON_CLOSE_LE", int_value, CreateOptionsFlags::DELETE_ON_CLOSE_LE); print_flag_if_set(out, "OPEN_BY_FILE_ID_LE", int_value, CreateOptionsFlags::OPEN_BY_FILE_ID_LE); print_flag_if_set(out, "OPEN_FOR_BACKUP_INTENT_LE", int_value, CreateOptionsFlags::OPEN_FOR_BACKUP_INTENT_LE); print_flag_if_set(out, "NO_COMPRESSION_LE", int_value, CreateOptionsFlags::NO_COMPRESSION_LE); print_flag_if_set(out, "RESERVE_OPFILTER_LE", int_value, CreateOptionsFlags::RESERVE_OPFILTER_LE); print_flag_if_set(out, "OPEN_REPARSE_POINT_LE", int_value, CreateOptionsFlags::OPEN_REPARSE_POINT_LE); print_flag_if_set(out, "OPEN_NO_RECALL_LE", int_value, CreateOptionsFlags::OPEN_NO_RECALL_LE); print_flag_if_set(out, "OPEN_FOR_FREE_SPACE_QUERY_LE", int_value, CreateOptionsFlags::OPEN_FOR_FREE_SPACE_QUERY_LE); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const WriteFlags value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "SMB2_WRITEFLAG_WRITE_THROUGH", int_value, WriteFlags::SMB2_WRITEFLAG_WRITE_THROUGH); print_flag_if_set(out, "SMB2_WRITEFLAG_WRITE_UNBUFFERED", int_value, WriteFlags::SMB2_WRITEFLAG_WRITE_UNBUFFERED); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const ShareFlags value) { auto int_value = to_integral(value) & ~to_integral(ShareFlags::NO_CACHING); out << "Caching policy = "; switch(to_integral(value) & to_integral(ShareFlags::NO_CACHING)) { case to_integral(ShareFlags::MANUAL_CACHING): out << "MANUAL_CACHING"; break; case to_integral(ShareFlags::AUTO_CACHING): out << "AUTO_CACHING"; break; case to_integral(ShareFlags::VDO_CACHING): out << "VDO_CACHING"; break; case to_integral(ShareFlags::NO_CACHING): out << "NO_CACHING"; break; } if(int_value > 0) { out << flagDelimiter; print_flag_if_set(out, "SMB2_SHAREFLAG_DFS", int_value, ShareFlags::DFS); print_flag_if_set(out, "SMB2_SHAREFLAG_DFS_ROOT", int_value, ShareFlags::DFS_ROOT); print_flag_if_set(out, "SMB2_SHAREFLAG_RESTRICT_EXCLUSIVE_OPENS", int_value, ShareFlags::RESTRICT_EXCLUSIVE_OPENS); print_flag_if_set(out, "SMB2_SHAREFLAG_FORCE_SHARED_DELETE", int_value, ShareFlags::FORCE_SHARED_DELETE); print_flag_if_set(out, "SMB2_SHAREFLAG_ALLOW_NAMESPACE_CACHING", int_value, ShareFlags::ALLOW_NAMESPACE_CACHING); print_flag_if_set(out, "SMB2_SHAREFLAG_ACCESS_BASED_DIRECTORY_ENUM", int_value, ShareFlags::ACCESS_BASED_DIRECTORY_ENUM); print_flag_if_set(out, "SMB2_SHAREFLAG_FORCE_LEVELII_OPLOCK", int_value, ShareFlags::FORCE_LEVELII_OPLOCK); print_flag_if_set(out, "SMB2_SHAREFLAG_ENABLE_HASH_V1", int_value, ShareFlags::ENABLE_HASH); print_flag_if_set(out, "SMB2_SHAREFLAG_ENABLE_HASH_V2", int_value, ShareFlags::ENABLE_HASH_2); print_flag_if_set(out, "SMB2_SHAREFLAG_ENCRYPT_DATA", int_value, ShareFlags::ENABLE_ENCRYPT_DATA); } return out; } std::ostream& operator<<(std::ostream& out, const ShareCapabilities value) { auto int_value = to_integral(value); if(int_value > 0) { out << "("; print_flag_if_set(out, "SMB2_SHARE_CAP_DFS", int_value, ShareCapabilities::DFS); print_flag_if_set(out, "SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY", int_value, ShareCapabilities::CONTINUOUS_AVAILABILITY); print_flag_if_set(out, "SMB2_SHARE_CAP_SCALEOUT", int_value, ShareCapabilities::SCALEOUT); print_flag_if_set(out, "SMB2_SHARE_CAP_CLUSTER", int_value, ShareCapabilities::CLUSTER); print_flag_if_set(out, "SMB2_SHARE_CAP_ASYMMETRIC", int_value, ShareCapabilities::ASYMMETRIC); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const SecurityModeShort value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "SIGNING_ENABLED", int_value, SecurityModeShort::SIGNING_ENABLED); print_flag_if_set(out, "SIGNING_REQUIRED", int_value, SecurityModeShort::SIGNING_REQUIRED); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const Capabilities value) { auto int_value = to_integral(value); if(int_value > 0) { out << "("; print_flag_if_set(out, "DFS", int_value, Capabilities::DFS); print_flag_if_set(out, "LEASING", int_value, Capabilities::LEASING); print_flag_if_set(out, "LARGE_MTU", int_value, Capabilities::LARGE_MTU); print_flag_if_set(out, "MULTI_CHANNEL", int_value, Capabilities::MULTI_CHANNEL); print_flag_if_set(out, "PERSISTENT_HANDLES",int_value, Capabilities::PERSISTENT_HANDLES); print_flag_if_set(out, "DIRECTORY_LEASING", int_value, Capabilities::DIRECTORY_LEASING); print_flag_if_set(out, "ENCRYPTION", int_value, Capabilities::ENCRYPTION); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const SessionFlags value) { auto int_value = to_integral(value); print_flag_if_set(out, "NONE", int_value, SessionFlags::NONE); print_flag_if_set(out, "SMB2_SESSION_FLAG_IS_GUEST", int_value, SessionFlags::IS_GUEST); print_flag_if_set(out, "SMB2_SESSION_FLAG_IS_NULL", int_value, SessionFlags::IS_NULL); print_flag_if_set(out, "SMB2_SESSION_FLAG_ENCRYPT_DATA",int_value, SessionFlags::IS_ENCRYPT_DATA); return out; } std::ostream& operator<<(std::ostream& out, const AccessMask value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "FILE_READ_DATA", int_value, AccessMask::FILE_READ_DATA); print_flag_if_set(out, "FILE_WRITE_DATA", int_value, AccessMask::FILE_WRITE_DATA); print_flag_if_set(out, "FILE_APPEND_DATA", int_value, AccessMask::FILE_APPEND_DATA); print_flag_if_set(out, "FILE_READ_EA", int_value, AccessMask::FILE_READ_EA); print_flag_if_set(out, "FILE_WRITE_EA", int_value, AccessMask::FILE_WRITE_EA); print_flag_if_set(out, "FILE_DELETE_CHILD", int_value, AccessMask::FILE_DELETE_CHILD); print_flag_if_set(out, "FILE_EXECUTE", int_value, AccessMask::FILE_EXECUTE); print_flag_if_set(out, "FILE_READ_ATTRIBUTES", int_value, AccessMask::FILE_READ_ATTRIBUTES); print_flag_if_set(out, "FILE_WRITE_ATTRIBUTES", int_value, AccessMask::FILE_WRITE_ATTRIBUTES); print_flag_if_set(out, "DELETE", int_value, AccessMask::DELETE); print_flag_if_set(out, "READ_CONTROL", int_value, AccessMask::READ_CONTROL); print_flag_if_set(out, "WRITE_DAC", int_value, AccessMask::WRITE_DAC); print_flag_if_set(out, "WRITE_OWNER", int_value, AccessMask::WRITE_OWNER); print_flag_if_set(out, "SYNCHRONIZE", int_value, AccessMask::SYNCHRONIZE); print_flag_if_set(out, "ACCESS_SYSTEM_SECURITY", int_value, AccessMask::ACCESS_SYSTEM_SECURITY); print_flag_if_set(out, "MAXIMUM_ALLOWED", int_value, AccessMask::MAXIMUM_ALLOWED); print_flag_if_set(out, "GENERIC_ALL", int_value, AccessMask::GENERIC_ALL); print_flag_if_set(out, "GENERIC_EXECUTE", int_value, AccessMask::GENERIC_EXECUTE); print_flag_if_set(out, "GENERIC_WRITE", int_value, AccessMask::GENERIC_WRITE); print_flag_if_set(out, "GENERIC_READ", int_value, AccessMask::GENERIC_READ); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const CloseFlags value) { auto int_value = to_integral(value); if(int_value > 0) { out << "("; print_flag_if_set(out, "POSTQUERY_ATTRIB", int_value, CloseFlags::POSTQUERY_ATTRIB); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const SecurityMode value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "SIGNING_ENABLED", int_value, SecurityMode::SIGNING_ENABLED); print_flag_if_set(out, "SIGNING_REQUIRED", int_value, SecurityMode::SIGNING_REQUIRED); out << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const FsInfoLevels value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const QueryInfoLevels value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const CtlCodes value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const InfoTypes value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const SessionFlagsBinding value) { const char *strValue = enumToString(value); if (strValue != nullptr) { out << "(" << strValue << ")"; } return out; } std::ostream& operator<<(std::ostream& out, const Flags value) { auto int_value = to_integral(value); if (int_value > 0) { out << "("; print_flag_if_set(out, "SERVER_TO_REDIR", int_value, Flags::SERVER_TO_REDIR); print_flag_if_set(out, "ASYNC_COMMAND", int_value, Flags::ASYNC_COMMAND); print_flag_if_set(out, "RELATED_OPERATIONS", int_value, Flags::RELATED_OPERATIONS); print_flag_if_set(out, "SIGNED", int_value, Flags::SIGNED); print_flag_if_set(out, "DFS_OPERATIONS", int_value, Flags::DFS_OPERATIONS); print_flag_if_set(out, "REPLAY_OPERATION", int_value, Flags::REPLAY_OPERATION); out << ")"; } return out; } std::ostream& print_info_levels(std::ostream& out, const InfoTypes infoType, const uint8_t infoClass) { switch(infoType) { case InfoTypes::FILE: print_enum(out, "InfoLevel", static_cast(infoClass)); break; case InfoTypes::FILESYSTEM: print_enum(out, "InfoLevel", static_cast(infoClass)); break; default: //we dont handle other classes ; } return out; } } // namespace CIFSv2 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/cifs2/cifs2_utils.h000066400000000000000000000107451261713114600215520ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Artsem Iliasau // Description: Helpers for parsing CIFSv2 structures. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef CIFS2_UTILS_H #define CIFS2_UTILS_H //------------------------------------------------------------------------------ #include #include "api/cifs2_commands.h" #include "api/cifs_pc_to_net.h" #include "protocols/cifs2/cifs2.h" #include "protocols/nfs/nfs_utils.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace CIFSv2 { namespace SMBv2 = NST::API::SMBv2; /*! Convert enum type to underlying integer type * \param e - instance of enumeration to be converted * \return integer representation of enumeration */ template inline constexpr auto to_integral(E e) -> typename std::underlying_type::type { return static_cast::type>(e); } std::ostream& operator<<(std::ostream& out, const SMBv2::SMBv2Commands value); std::ostream& operator<<(std::ostream& out, const SMBv2::QueryInfoLevels value); std::ostream& operator<<(std::ostream& out, const SMBv2::FsInfoLevels value); std::ostream& operator<<(std::ostream& out, const SMBv2::CtlCodes value); std::ostream& operator<<(std::ostream& out, const SMBv2::InfoTypes value); std::ostream& operator<<(std::ostream& out, const SMBv2::ShareTypes value); std::ostream& operator<<(std::ostream& out, const SMBv2::ShareFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::ShareCapabilities value); std::ostream& operator<<(std::ostream& out, const SMBv2::OplockLevels value); std::ostream& operator<<(std::ostream& out, const SMBv2::ImpersonationLevels value); std::ostream& operator<<(std::ostream& out, const SMBv2::DesiredAccessFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::FileAttributes value); std::ostream& operator<<(std::ostream& out, const SMBv2::ShareAccessFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::CreateDisposition value); std::ostream& operator<<(std::ostream& out, const SMBv2::CreateOptionsFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::CreateActions value); std::ostream& operator<<(std::ostream& out, const SMBv2::WriteFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::SessionFlagsBinding value); std::ostream& operator<<(std::ostream& out, const SMBv2::SecurityModeShort value); std::ostream& operator<<(std::ostream& out, const SMBv2::Capabilities value); std::ostream& operator<<(std::ostream& out, const SMBv2::SessionFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::NTStatus value); std::ostream& operator<<(std::ostream& out, const SMBv2::AccessMask value); std::ostream& operator<<(std::ostream& out, const SMBv2::CloseFlags value); std::ostream& operator<<(std::ostream& out, const SMBv2::SecurityMode value); std::ostream& operator<<(std::ostream& out, Flags value); template std::ostream& print_enum(std::ostream& out, const std::string name, T value) { using namespace NST::protocols::NFS; out << " " << name << " = "; // Duty hack for fix issues in PrintAnalyzer on BE platforms auto int_value = NST::API::SMBv2::pc_to_net(to_integral(value)); print_hex(out, int_value); out << " " << (T)int_value; return out; } std::ostream& print_info_levels(std::ostream& os, const NST::API::SMBv2::InfoTypes infoType, const uint8_t infoClass); } // namespace CIFSv2 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//CIFS2_UTILS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/ethernet/000077500000000000000000000000001261713114600177545ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/ethernet/ethernet_header.h000066400000000000000000000052351261713114600232600ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of Ethernet family protocol headers. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef ETHERNET_HEADER_H #define ETHERNET_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohs() //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace ethernet { // Ethernet II (aka DIX v2.0 Ethernet) struct ethernet_header { enum { ADDR_LEN = 6 }; enum EtherType { PUP = 0x0200, // Xerox PUP SPRITE = 0x0500, // Sprite IP = 0x0800, // IP ARP = 0x0806, // Address resolution REVARP = 0x8035, // Reverse ARP AT = 0x809B, // AppleTalk protocol AARP = 0x80F3, // AppleTalk ARP VLAN = 0x8100, // IEEE 802.1Q VLAN tagging IPX = 0x8137, // IPX IPV6 = 0x86dd, // IP protocol version 6 LOOPBACK= 0x9000 // used to test interfaces }; uint8_t eth_dhost[ADDR_LEN]; // destination host address uint8_t eth_shost[ADDR_LEN]; // source host address uint16_t eth_type; // protocol (EtherType values) } __attribute__((packed)); struct EthernetHeader : private ethernet_header { inline const uint8_t* dst() const { return eth_dhost; } inline const uint8_t* src() const { return eth_shost; } inline uint16_t type() const { return ntohs(eth_type); } } __attribute__ ((__packed__)); } // namespace ethernet } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//ETHERNET_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/ip/000077500000000000000000000000001261713114600165465ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/ip/ip_header.h000066400000000000000000000056251261713114600206470ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of IP constants and structures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef IP_HEADER_H #define IP_HEADER_H //------------------------------------------------------------------------------ #include "ipv4_header.h" #include "ipv6_header.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace ip { enum NextProtocol // ID of next protocol header { IP = 0, // Dummy protocol for TCP HOPOPTS = 0, // IPv6 Hop-by-Hop options ICMP = 1, // Internet Control Message Protocol IGMP = 2, // Internet Group Management Protocol IPIP = 4, // IPIP tunnels (older KA9Q tunnels use 94) TCP = 6, // Transmission Control Protocol EGP = 8, // Exterior Gateway Protocol PUP = 12, // PUP protocol UDP = 17, // User Datagram Protocol IDP = 22, // XNS IDP protocol TP = 29, // SO Transport Protocol Class 4 DCCP = 33, // Datagram Congestion Control Protocol IPV6 = 41, // IPv6 header ROUTING = 43, // IPv6 routing header FRAGMENT= 44, // IPv6 fragmentation header RSVP = 46, // Reservation Protocol GRE = 47, // General Routing Encapsulation ESP = 50, // encapsulating security payload AH = 51, // authentication header ICMPV6 = 58, // ICMPv6 NONE = 59, // IPv6 no next header DSTOPTS = 60, // IPv6 destination options MTP = 92, // Multicast Transport Protocol ENCAP = 98, // Encapsulation Header PIM = 103, // Protocol Independent Multicast COMP = 108, // Compression Header Protocol SCTP = 132, // Stream Control Transmission Protocol UDPLITE = 136, // UDP-Lite protocol RAW = 255 // Raw IP packets }; } // namespace ip } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//IP_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/ip/ipv4_header.h000066400000000000000000000067311261713114600211200ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of IP version 4 header and constants. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef IPV4_HEADER_H #define IPV4_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohs()/ntohl() #include // for in_addr_t //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace ip { // Internet Protocol, version 4 struct ipv4_header { enum TOS { LOWDELAY = 0x10, THROUGHPUT = 0x08, RELIABILITY = 0x04, LOWCOST = 0x02 }; enum Fragmentation { RF = 0x8000, // reserved fragment flag DF = 0x4000, // dont fragment flag MF = 0x2000, // more fragments flag OFFMASK = 0x1fff // mask for fragmenting bits }; uint8_t ipv4_vhl; // header length and version uint8_t ipv4_tos; // type of service uint16_t ipv4_len; // total length uint16_t ipv4_id; // identification uint16_t ipv4_fragmentation;// fragmentation uint8_t ipv4_ttl; // time to live uint8_t ipv4_protocol; // protocol uint16_t ipv4_checksum; // checksum in_addr_t ipv4_src; // source address in_addr_t ipv4_dst; // destination address } __attribute__ ((__packed__)); struct IPv4Header : private ipv4_header { inline uint8_t version() const { return ipv4_vhl >> 4; } inline uint8_t ihl() const { return (ipv4_vhl & 0x0f) << 2 /* *4 */; } // return number of bytes inline uint16_t length() const { return ntohs(ipv4_len); } inline uint16_t offset() const { return (ntohs(ipv4_fragmentation) & OFFMASK) << 3 /* *8 */; } // return number of bytes inline uint8_t protocol() const { return ipv4_protocol; } inline in_addr_t src() const { return ipv4_src; } inline in_addr_t dst() const { return ipv4_dst; } inline uint16_t checksum() const { return ntohs(ipv4_checksum); } inline bool is_fragmented() const { return ipv4_fragmentation & htons(MF | OFFMASK); } inline bool is_fragmented_and_not_the_first_part() const { return ipv4_fragmentation & htons(OFFMASK) /*offset() != 0*/; } } __attribute__ ((__packed__)); } // namespace ip } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//IPV4_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/ip/ipv6_header.h000066400000000000000000000075411261713114600211220ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of IP version 6 header and constants. RFC 2460. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef IPV6_HEADER_H #define IPV6_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohs()/ntohl() #include // for in6_addr //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace ip { typedef uint8_t in6_addr_t[16]; static_assert(sizeof(in6_addr) == sizeof(in6_addr_t), "sizeof in6_addr should be 16 bytes"); // Internet Protocol, version 6 struct ipv6_header { uint32_t ipv6_vtcflow; // version(4), traffic class(8), flow label(20) uint16_t ipv6_plen; // size of payload, including any extension header uint8_t ipv6_nexthdr; // next header type uint8_t ipv6_hlimit; // hop limit in6_addr_t ipv6_src; // source address in6_addr_t ipv6_dst; // destination address } __attribute__ ((__packed__)); // Hop-by-Hop options header struct ipv6_hbh { uint8_t hbh_nexthdr; // next header type uint8_t hbh_len; // length in units of 8 octets // addition data } __attribute__ ((__packed__)); // Destination options header struct ipv6_dest { uint8_t dest_nexthdr; // next header type uint8_t dest_len; // length in units of 8 octets // addition data } __attribute__ ((__packed__)); // Routing header struct ipv6_route { uint8_t route_nexthdr; // next header uint8_t route_len; // length in units of 8 octets uint8_t route_type; // routing type uint8_t route_segleft; // segments left // routing type specific data } __attribute__ ((__packed__)); // Fragment header struct ipv6_frag { enum Fragmentation : uint16_t { MORE = 0x0001, // more-fragments flag RESERVED= 0x0006, // mask out reserved bits OFFSET = 0xfff8 // mask out offset from frag_offlg }; uint8_t frag_nexthdr; // next header uint8_t frag_reserved; // reserved field uint16_t frag_offlg; // offset, reserved, and flag uint32_t frag_ident; // identification } __attribute__ ((__packed__)); struct IPv6Header : private ipv6_header { inline uint8_t version() const { return ntohl(ipv6_vtcflow) >> 28; } inline uint8_t tclass() const { return (ntohl(ipv6_vtcflow) >> 20) & 0xFF;} inline uint32_t flowid() const { return ntohl(ipv6_vtcflow) & 0xFFFFF;} inline uint16_t payload_len() const { return ntohs(ipv6_plen); } inline uint8_t nexthdr() const { return ipv6_nexthdr; } inline const in6_addr_t& src() const { return ipv6_src; } inline const in6_addr_t& dst() const { return ipv6_dst; } } __attribute__ ((__packed__)); } // namespace ip } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//IPV6_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/netbios/000077500000000000000000000000001261713114600176015ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/netbios/netbios.cpp000066400000000000000000000026021261713114600217500ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing NETBios structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "protocols/netbios/netbios.h" //------------------------------------------------------------------------------ using namespace NST::protocols::NetBIOS; int8_t MessageHeader::start() const { return _start; } size_t MessageHeader::len() const { // reserved field "_" is used as part of "length" field when length more than 65535 bytes return ntohs(length) | (_ << 16); } nfstrace-0.4.1/src/protocols/netbios/netbios.h000066400000000000000000000045271261713114600214250ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Helpers for parsing NetBIOS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NETBIOS_HEADER_H #define NETBIOS_HEADER_H //------------------------------------------------------------------------------ #include #include //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NetBIOS { /*! \class NetBIOS message header in SMB-direct case */ struct RawMessageHeader { uint8_t _start;//!< In SMB direct always 0x00 uint8_t _; uint16_t length;//!< Packet length } __attribute__ ((__packed__)); /*! \class NetBIOS message header wrapper */ struct MessageHeader : private RawMessageHeader { int8_t start() const; size_t len() const; }; /*! Check is data valid NetBIOS message's header and return header or nullptr * \param data - raw packet data * \return pointer to input data which is casted to header structure or nullptr (if it is not valid header) */ inline const struct MessageHeader* get_header(const uint8_t* data) { const MessageHeader* header (reinterpret_cast(data)); if (header->start() == 0x00) { return header; } return nullptr; } } // namespace NetBIOS } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NETBIOS_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs/000077500000000000000000000000001261713114600167245ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/nfs/nfs_procedure.h000066400000000000000000000160321261713114600217350ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition and fill up NFS procedures. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS_PROCEDURE_H #define NFS_PROCEDURE_H //------------------------------------------------------------------------------ #include #include "api/rpc_types.h" #include "protocols/nfs3/nfs3_utils.h" #include "protocols/nfs4/nfs4_utils.h" #include "protocols/nfs4/nfs41_utils.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { using NFS3::proc_t_of; using NFS4::proc_t_of; using NFS41::proc_t_of; template < typename ArgType, // structure of RPC procedure parameters typename ResType // structure of RPC procedure results > class NFSProcedure: public NST::API::RPCProcedure { public: inline NFSProcedure(xdr::XDRDecoder& c, xdr::XDRDecoder& r, const Session* s) : parg{&arg} // set pointer to argument , pres{&res} // set pointer to result { memset(&call, 0,sizeof(call )); memset(&reply,0,sizeof(reply)); memset(&arg, 0,sizeof(arg )); memset(&res, 0,sizeof(res )); // fill call if(!xdr_callmsg(c.xdr(), &call)) { xdr_free((xdrproc_t)xdr_callmsg, (char*)&call); throw xdr::XDRDecoderError{"XDRDecoder: cann't read call data"}; } // fill call arguments if(!proc_t_of(arg)(c.xdr(),&arg)) { xdr_free((xdrproc_t)proc_t_of(arg), (char*)&arg ); xdr_free((xdrproc_t)xdr_callmsg, (char*)&call); throw xdr::XDRDecoderError{"XDRDecoder: cann't read call arguments"}; } reply.ru.RM_rmb.ru.RP_ar.ru.AR_results.proc = &return_true; // fill reply if(!xdr_replymsg (r.xdr(), &reply)) { xdr_free((xdrproc_t)xdr_replymsg, (char*)&reply); xdr_free((xdrproc_t)proc_t_of(arg),(char*)&arg ); xdr_free((xdrproc_t)xdr_callmsg, (char*)&call ); throw xdr::XDRDecoderError{"XDRDecoder: cann't read reply data"}; } if(reply.ru.RM_rmb.rp_stat == reply_stat::MSG_ACCEPTED && reply.ru.RM_rmb.ru.RP_ar.ar_stat == accept_stat::SUCCESS) { // fill reply results if(!proc_t_of(res)(r.xdr(),&res)) { xdr_free((xdrproc_t)proc_t_of(res), (char*)&res ); xdr_free((xdrproc_t)xdr_replymsg, (char*)&reply); xdr_free((xdrproc_t)proc_t_of(arg), (char*)&arg ); xdr_free((xdrproc_t)xdr_callmsg, (char*)&call ); throw xdr::XDRDecoderError{"XDRDecoder: cann't read reply results"}; } } else { pres = nullptr; } session = s; ctimestamp = &c.data().timestamp; rtimestamp = &r.data().timestamp; } inline ~NFSProcedure() { if(pres) xdr_free((xdrproc_t)proc_t_of(res), (char*)&res ); xdr_free((xdrproc_t)xdr_replymsg, (char*)&reply); xdr_free((xdrproc_t)proc_t_of(arg), (char*)&arg ); xdr_free((xdrproc_t)xdr_callmsg, (char*)&call ); } // pointers to procedure specific argument and result ArgType* parg; ResType* pres; private: inline static bool_t return_true(XDR*, void*, ...) { return 1; } inline static bool_t return_true(XDR*, ...) { return 1; } ArgType arg; ResType res; }; namespace NFS3 { namespace NFS3 = NST::API::NFS3; using NFSPROC3RPCGEN_NULL = NFSProcedure ; using NFSPROC3RPCGEN_GETATTR = NFSProcedure ; using NFSPROC3RPCGEN_SETATTR = NFSProcedure ; using NFSPROC3RPCGEN_LOOKUP = NFSProcedure ; using NFSPROC3RPCGEN_ACCESS = NFSProcedure ; using NFSPROC3RPCGEN_READLINK = NFSProcedure ; using NFSPROC3RPCGEN_READ = NFSProcedure ; using NFSPROC3RPCGEN_WRITE = NFSProcedure ; using NFSPROC3RPCGEN_CREATE = NFSProcedure ; using NFSPROC3RPCGEN_MKDIR = NFSProcedure ; using NFSPROC3RPCGEN_SYMLINK = NFSProcedure ; using NFSPROC3RPCGEN_MKNOD = NFSProcedure ; using NFSPROC3RPCGEN_REMOVE = NFSProcedure ; using NFSPROC3RPCGEN_RMDIR = NFSProcedure ; using NFSPROC3RPCGEN_RENAME = NFSProcedure ; using NFSPROC3RPCGEN_LINK = NFSProcedure ; using NFSPROC3RPCGEN_READDIR = NFSProcedure ; using NFSPROC3RPCGEN_READDIRPLUS = NFSProcedure ; using NFSPROC3RPCGEN_FSSTAT = NFSProcedure ; using NFSPROC3RPCGEN_FSINFO = NFSProcedure ; using NFSPROC3RPCGEN_PATHCONF = NFSProcedure ; using NFSPROC3RPCGEN_COMMIT = NFSProcedure ; } namespace NFS4 { namespace NFS4 = NST::API::NFS4; using NFSPROC4RPCGEN_NULL = NFSProcedure ; using NFSPROC4RPCGEN_COMPOUND = NFSProcedure ; } namespace NFS41 { namespace NFS41 = NST::API::NFS41; using NFSPROC41RPCGEN_NULL = NFSProcedure ; using NFSPROC41RPCGEN_COMPOUND = NFSProcedure ; } } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NFS_PROCEDURE_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs/nfs_utils.cpp000066400000000000000000000073051261713114600214430ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "protocols/nfs/nfs_utils.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS { void print_hex64(std::ostream& out, uint64_t val) { out << "0x" << std::setfill('0') << std::setw(16) << std::hex << val << std::dec << std::setfill(' '); } void print_hex32(std::ostream& out, uint32_t val) { out << "0x" << std::setfill('0') << std::setw(8) << std::hex << val << std::dec << std::setfill(' '); } void print_hex16(std::ostream& out, uint16_t val) { out << "0x" << std::setfill('0') << std::setw(4) << std::hex << val << std::dec << std::setfill(' '); } void print_hex8(std::ostream& out, uint8_t val) { out << "0x" << std::setfill('0') << std::setw(2) << std::hex << static_cast(val) // prevent implicit cast to char << std::dec << std::setfill(' '); } void print_hex(std::ostream& out, const uint32_t* const val, const uint32_t len) { if (len) { out << std::hex << std::setfill('0') << "0x"; for (uint32_t i {0}; i < len; i++) { out << std::setw(2) << val[i]; } out << std::dec << std::setfill(' '); } else { out << "void"; } } void print_hex(std::ostream& out, const char* const val, const uint32_t len) { if (len) { out << std::hex << std::setfill('0') << "0x"; for (uint32_t i {0}; i < len; i++) { out << std::setw(2) << ((static_cast(val[i])) & 0xFF); } out << std::dec << std::setfill(' '); } else { out << "void"; } } void print_nfs_fh(std::ostream& out, const char* const val, const uint32_t len) { if (len) { out << std::hex << std::setfill('0'); if (len <= 8 || out_all()) { for (uint32_t i {0}; i < len; i++) { out << std::setw(2) << ((static_cast(val[i])) & 0xFF); } } else // truncate binary data to: 00112233...CCDDEEFF { for (uint32_t i {0}; i < 4; i++) { out << std::setw(2) << ((static_cast(val[i])) & 0xFF); } out << "..."; for (uint32_t i {len - 4}; i < len; i++) { out << std::setw(2) << ((static_cast(val[i])) & 0xFF); } } out << std::dec << std::setfill(' '); } else { out << "void"; } } } // namespace NFS } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs/nfs_utils.h000066400000000000000000000056601261713114600211120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS_UTILS_H #define NFS_UTILS_H //------------------------------------------------------------------------------ #include #include #include #include "utils/out.h" //------------------------------------------------------------------------------ #define NST_PUBLIC __attribute__ ((visibility("default"))) //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS { inline bool out_all() { using Out = NST::utils::Out; return Out::Global::get_level() == Out::Level::All; } namespace { template struct Helper { static void print_hex(std::ostream& out, T val) { out << "0x" << std::setfill('0') << std::setw(sizeof(T)/4) << std::hex << val << std::dec << std::setfill(' '); } }; template <> struct Helper { static void print_hex(std::ostream& out, char val) { out << "0x" << std::setfill('0') << std::setw(4) << std::hex << static_cast(val) << std::dec << std::setfill(' '); } }; } template void print_hex(std::ostream& out, T val) { Helper::print_hex(out, val); } void print_hex64(std::ostream& out, uint64_t val); void print_hex32(std::ostream& out, uint32_t val); void print_hex16(std::ostream& out, uint16_t val); void print_hex8(std::ostream& out, uint8_t val); void print_hex(std::ostream& out, const uint32_t* const val, const uint32_t len); void print_hex(std::ostream& out, const char* const val, const uint32_t len); extern "C" NST_PUBLIC void print_nfs_fh(std::ostream& out, const char* const val, const uint32_t len); } // namespace NFS } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NFS_UTILS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs/nfsv3.x000066400000000000000000000355061261713114600201650ustar00rootroot00000000000000/* * The contents of this file are a direct copy-and-paste from RFC 1813 * with a few minor corrections to make it compile. */ const NFS3_FHSIZE = 64; const NFS3_COOKIEVERFSIZE = 8; const NFS3_CREATEVERFSIZE = 8; const NFS3_WRITEVERFSIZE = 8; /* * Since there are incompatibilites in XDR processing of 64 bit * values, we need to use the compatibility header to define a type * and an xdr routine for a u_xint64_t. * * Also, we need typedef for u_xint32_t to be an unsigned int. */ %#include typedef unsigned int u_xint32_t; typedef string filename3<>; typedef string nfspath3<>; typedef u_xint64_t fileid3; typedef u_xint64_t cookie3; typedef opaque cookieverf3[NFS3_COOKIEVERFSIZE]; typedef opaque createverf3[NFS3_CREATEVERFSIZE]; typedef opaque writeverf3[NFS3_WRITEVERFSIZE]; typedef u_xint32_t uid3; typedef u_xint32_t gid3; typedef u_xint64_t size3; typedef u_xint64_t offset3; typedef u_xint32_t mode3; typedef u_xint32_t count3; typedef bool xbool_t; enum nfsstat3 { NFS3_OK = 0, NFS3ERR_PERM = 1, NFS3ERR_NOENT = 2, NFS3ERR_IO = 5, NFS3ERR_NXIO = 6, NFS3ERR_ACCES = 13, NFS3ERR_EXIST = 17, NFS3ERR_XDEV = 18, NFS3ERR_NODEV = 19, NFS3ERR_NOTDIR = 20, NFS3ERR_ISDIR = 21, NFS3ERR_INVAL = 22, NFS3ERR_FBIG = 27, NFS3ERR_NOSPC = 28, NFS3ERR_ROFS = 30, NFS3ERR_MLINK = 31, NFS3ERR_NAMETOOLONG = 63, NFS3ERR_NOTEMPTY = 66, NFS3ERR_DQUOT = 69, NFS3ERR_STALE = 70, NFS3ERR_REMOTE = 71, NFS3ERR_BADHANDLE = 10001, NFS3ERR_NOT_SYNC = 10002, NFS3ERR_BAD_COOKIE = 10003, NFS3ERR_NOTSUPP = 10004, NFS3ERR_TOOSMALL = 10005, NFS3ERR_SERVERFAULT = 10006, NFS3ERR_BADTYPE = 10007, NFS3ERR_JUKEBOX = 10008 }; enum ftype3 { NF3REG = 1, NF3DIR = 2, NF3BLK = 3, NF3CHR = 4, NF3LNK = 5, NF3SOCK = 6, NF3FIFO = 7 }; struct specdata3 { u_xint32_t specdata1; u_xint32_t specdata2; }; struct nfs_fh3 { opaque data; }; struct nfstime3 { u_xint32_t seconds; u_xint32_t nseconds; }; struct fattr3 { ftype3 type; mode3 mode; u_xint32_t nlink; uid3 uid; gid3 gid; size3 size; size3 used; specdata3 rdev; u_xint64_t fsid; fileid3 fileid; nfstime3 atime; nfstime3 mtime; nfstime3 ctime; }; union post_op_attr switch (bool attributes_follow) { case TRUE: fattr3 attributes; case FALSE: void; }; struct wcc_attr { size3 size; nfstime3 mtime; nfstime3 ctime; }; union pre_op_attr switch (bool attributes_follow) { case TRUE: wcc_attr attributes; case FALSE: void; }; struct wcc_data { pre_op_attr before; post_op_attr after; }; union post_op_fh3 switch (bool handle_follows) { case TRUE: nfs_fh3 handle; case FALSE: void; }; enum time_how { DONT_CHANGE = 0, SET_TO_SERVER_TIME = 1, SET_TO_CLIENT_TIME = 2 }; union set_mode3 switch (bool set_it) { case TRUE: mode3 mode; default: void; }; union set_uid3 switch (bool set_it) { case TRUE: uid3 uid; default: void; }; union set_gid3 switch (bool set_it) { case TRUE: gid3 gid; default: void; }; union set_size3 switch (bool set_it) { case TRUE: size3 size; default: void; }; union set_atime switch (time_how set_it) { case SET_TO_CLIENT_TIME: nfstime3 atime; default: void; }; union set_mtime switch (time_how set_it) { case SET_TO_CLIENT_TIME: nfstime3 mtime; default: void; }; struct sattr3 { set_mode3 mode; set_uid3 uid; set_gid3 gid; set_size3 size; set_atime atime; set_mtime mtime; }; struct diropargs3 { nfs_fh3 dir; filename3 name; }; struct GETATTR3args { nfs_fh3 object; }; struct GETATTR3resok { fattr3 obj_attributes; }; union GETATTR3res switch (nfsstat3 status) { case NFS3_OK: GETATTR3resok resok; default: void; }; union sattrguard3 switch (bool check) { case TRUE: nfstime3 obj_ctime; case FALSE: void; }; struct SETATTR3args { nfs_fh3 object; sattr3 new_attributes; sattrguard3 guard; }; struct SETATTR3resok { wcc_data obj_wcc; }; struct SETATTR3resfail { wcc_data obj_wcc; }; union SETATTR3res switch (nfsstat3 status) { case NFS3_OK: SETATTR3resok resok; default: SETATTR3resfail resfail; }; struct LOOKUP3args { diropargs3 what; }; struct LOOKUP3resok { nfs_fh3 object; post_op_attr obj_attributes; post_op_attr dir_attributes; }; struct LOOKUP3resfail { post_op_attr dir_attributes; }; union LOOKUP3res switch (nfsstat3 status) { case NFS3_OK: LOOKUP3resok resok; default: LOOKUP3resfail resfail; }; const ACCESS3_READ = 0x0001; const ACCESS3_LOOKUP = 0x0002; const ACCESS3_MODIFY = 0x0004; const ACCESS3_EXTEND = 0x0008; const ACCESS3_DELETE = 0x0010; const ACCESS3_EXECUTE = 0x0020; struct ACCESS3args { nfs_fh3 object; u_xint32_t access; }; struct ACCESS3resok { post_op_attr obj_attributes; u_xint32_t access; }; struct ACCESS3resfail { post_op_attr obj_attributes; }; union ACCESS3res switch (nfsstat3 status) { case NFS3_OK: ACCESS3resok resok; default: ACCESS3resfail resfail; }; struct READLINK3args { nfs_fh3 symlink; }; struct READLINK3resok { post_op_attr symlink_attributes; nfspath3 data; }; struct READLINK3resfail { post_op_attr symlink_attributes; }; union READLINK3res switch (nfsstat3 status) { case NFS3_OK: READLINK3resok resok; default: READLINK3resfail resfail; }; struct READ3args { nfs_fh3 file; offset3 offset; count3 count; }; struct READ3resok { post_op_attr file_attributes; count3 count; bool eof; }; struct READ3resfail { post_op_attr file_attributes; }; union READ3res switch (nfsstat3 status) { case NFS3_OK: READ3resok resok; default: READ3resfail resfail; }; enum stable_how { UNSTABLE = 0, DATA_SYNC = 1, FILE_SYNC = 2 }; struct WRITE3args { nfs_fh3 file; offset3 offset; count3 count; stable_how stable; }; struct WRITE3resok { wcc_data file_wcc; count3 count; stable_how committed; writeverf3 verf; }; struct WRITE3resfail { wcc_data file_wcc; }; union WRITE3res switch (nfsstat3 status) { case NFS3_OK: WRITE3resok resok; default: WRITE3resfail resfail; }; enum createmode3 { UNCHECKED = 0, GUARDED = 1, EXCLUSIVE = 2 }; union createhow3 switch (createmode3 mode) { case UNCHECKED: case GUARDED: sattr3 obj_attributes; case EXCLUSIVE: createverf3 verf; }; struct CREATE3args { diropargs3 where; createhow3 how; }; struct CREATE3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; struct CREATE3resfail { wcc_data dir_wcc; }; union CREATE3res switch (nfsstat3 status) { case NFS3_OK: CREATE3resok resok; default: CREATE3resfail resfail; }; struct MKDIR3args { diropargs3 where; sattr3 attributes; }; struct MKDIR3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; struct MKDIR3resfail { wcc_data dir_wcc; }; union MKDIR3res switch (nfsstat3 status) { case NFS3_OK: MKDIR3resok resok; default: MKDIR3resfail resfail; }; struct symlinkdata3 { sattr3 symlink_attributes; nfspath3 symlink_data; }; struct SYMLINK3args { diropargs3 where; symlinkdata3 symlink; }; struct SYMLINK3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; struct SYMLINK3resfail { wcc_data dir_wcc; }; union SYMLINK3res switch (nfsstat3 status) { case NFS3_OK: SYMLINK3resok resok; default: SYMLINK3resfail resfail; }; struct devicedata3 { sattr3 dev_attributes; specdata3 spec; }; union mknoddata3 switch (ftype3 type) { case NF3CHR: case NF3BLK: devicedata3 device; case NF3SOCK: case NF3FIFO: sattr3 pipe_attributes; default: void; }; struct MKNOD3args { diropargs3 where; mknoddata3 what; }; struct MKNOD3resok { post_op_fh3 obj; post_op_attr obj_attributes; wcc_data dir_wcc; }; struct MKNOD3resfail { wcc_data dir_wcc; }; union MKNOD3res switch (nfsstat3 status) { case NFS3_OK: MKNOD3resok resok; default: MKNOD3resfail resfail; }; struct REMOVE3args { diropargs3 object; }; struct REMOVE3resok { wcc_data dir_wcc; }; struct REMOVE3resfail { wcc_data dir_wcc; }; union REMOVE3res switch (nfsstat3 status) { case NFS3_OK: REMOVE3resok resok; default: REMOVE3resfail resfail; }; struct RMDIR3args { diropargs3 object; }; struct RMDIR3resok { wcc_data dir_wcc; }; struct RMDIR3resfail { wcc_data dir_wcc; }; union RMDIR3res switch (nfsstat3 status) { case NFS3_OK: RMDIR3resok resok; default: RMDIR3resfail resfail; }; struct RENAME3args { diropargs3 from; diropargs3 to; }; struct RENAME3resok { wcc_data fromdir_wcc; wcc_data todir_wcc; }; struct RENAME3resfail { wcc_data fromdir_wcc; wcc_data todir_wcc; }; union RENAME3res switch (nfsstat3 status) { case NFS3_OK: RENAME3resok resok; default: RENAME3resfail resfail; }; struct LINK3args { nfs_fh3 file; diropargs3 link; }; struct LINK3resok { post_op_attr file_attributes; wcc_data linkdir_wcc; }; struct LINK3resfail { post_op_attr file_attributes; wcc_data linkdir_wcc; }; union LINK3res switch (nfsstat3 status) { case NFS3_OK: LINK3resok resok; default: LINK3resfail resfail; }; struct READDIR3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 count; }; struct entry3 { fileid3 fileid; filename3 name; cookie3 cookie; entry3 *nextentry; }; struct dirlist3 { entry3 *entries; bool eof; }; struct READDIR3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlist3 reply; }; struct READDIR3resfail { post_op_attr dir_attributes; }; union READDIR3res switch (nfsstat3 status) { case NFS3_OK: READDIR3resok resok; default: READDIR3resfail resfail; }; struct READDIRPLUS3args { nfs_fh3 dir; cookie3 cookie; cookieverf3 cookieverf; count3 dircount; count3 maxcount; }; struct entryplus3 { fileid3 fileid; filename3 name; cookie3 cookie; post_op_attr name_attributes; post_op_fh3 name_handle; entryplus3 *nextentry; }; struct dirlistplus3 { entryplus3 *entries; bool eof; }; struct READDIRPLUS3resok { post_op_attr dir_attributes; cookieverf3 cookieverf; dirlistplus3 reply; }; struct READDIRPLUS3resfail { post_op_attr dir_attributes; }; union READDIRPLUS3res switch (nfsstat3 status) { case NFS3_OK: READDIRPLUS3resok resok; default: READDIRPLUS3resfail resfail; }; struct FSSTAT3args { nfs_fh3 fsroot; }; struct FSSTAT3resok { post_op_attr obj_attributes; size3 tbytes; size3 fbytes; size3 abytes; size3 tfiles; size3 ffiles; size3 afiles; u_xint32_t invarsec; }; struct FSSTAT3resfail { post_op_attr obj_attributes; }; union FSSTAT3res switch (nfsstat3 status) { case NFS3_OK: FSSTAT3resok resok; default: FSSTAT3resfail resfail; }; const FSF3_LINK = 0x0001; const FSF3_SYMLINK = 0x0002; const FSF3_HOMOGENEOUS = 0x0008; const FSF3_CANSETTIME = 0x0010; struct FSINFO3args { nfs_fh3 fsroot; }; struct FSINFO3resok { post_op_attr obj_attributes; u_xint32_t rtmax; u_xint32_t rtpref; u_xint32_t rtmult; u_xint32_t wtmax; u_xint32_t wtpref; u_xint32_t wtmult; u_xint32_t dtpref; size3 maxfilesize; nfstime3 time_delta; u_xint32_t properties; }; struct FSINFO3resfail { post_op_attr obj_attributes; }; union FSINFO3res switch (nfsstat3 status) { case NFS3_OK: FSINFO3resok resok; default: FSINFO3resfail resfail; }; struct PATHCONF3args { nfs_fh3 object; }; struct PATHCONF3resok { post_op_attr obj_attributes; u_xint32_t linkmax; u_xint32_t name_max; xbool_t no_trunc; xbool_t chown_restricted; xbool_t case_insensitive; xbool_t case_preserving; }; struct PATHCONF3resfail { post_op_attr obj_attributes; }; union PATHCONF3res switch (nfsstat3 status) { case NFS3_OK: PATHCONF3resok resok; default: PATHCONF3resfail resfail; }; struct COMMIT3args { nfs_fh3 file; offset3 offset; count3 count; }; struct COMMIT3resok { wcc_data file_wcc; writeverf3 verf; }; struct COMMIT3resfail { wcc_data file_wcc; }; union COMMIT3res switch (nfsstat3 status) { case NFS3_OK: COMMIT3resok resok; default: COMMIT3resfail resfail; }; program NFS_PROGRAM { version NFS_V3 { void NFSPROC3_NULL(void) = 0; GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1; SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2; LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3; ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4; READLINK3res NFSPROC3_READLINK(READLINK3args) = 5; READ3res NFSPROC3_READ(READ3args) = 6; WRITE3res NFSPROC3_WRITE(WRITE3args) = 7; CREATE3res NFSPROC3_CREATE(CREATE3args) = 8; MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9; SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10; MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11; REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12; RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13; RENAME3res NFSPROC3_RENAME(RENAME3args) = 14; LINK3res NFSPROC3_LINK(LINK3args) = 15; READDIR3res NFSPROC3_READDIR(READDIR3args) = 16; READDIRPLUS3res NFSPROC3_READDIRPLUS(READDIRPLUS3args) = 17; FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18; FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19; PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20; COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21; } = 3; } = 100003; nfstrace-0.4.1/src/protocols/nfs/nfsv4.x000066400000000000000000001166471261713114600201740ustar00rootroot00000000000000/* * Copyright (C) The Internet Society (1998-2003). * All Rights Reserved. */ /* * nfs4_prot.x * */ %#pragma ident "@(#)nfs4_prot.x 1.122" /* FRED - the following constants are used, but not defined, * so for ease of use, define them here. */ const RPCSEC_GSS = 6; /* * Basic typedefs for RFC 1832 data type definitions */ typedef int int32_t; typedef unsigned int uint32_t; typedef hyper int64_t; typedef unsigned hyper uint64_t; /* * Sizes */ const NFS4_FHSIZE = 128; const NFS4_VERIFIER_SIZE = 8; const NFS4_OPAQUE_LIMIT = 1024; /* * File types */ enum nfs_ftype4 { NF4REG = 1, /* Regular File */ NF4DIR = 2, /* Directory */ NF4BLK = 3, /* Special File - block device */ NF4CHR = 4, /* Special File - character device */ NF4LNK = 5, /* Symbolic Link */ NF4SOCK = 6, /* Special File - socket */ NF4FIFO = 7, /* Special File - fifo */ NF4ATTRDIR = 8, /* Attribute Directory */ NF4NAMEDATTR = 9 /* Named Attribute */ }; /* * Error status */ enum nfsstat4 { NFS4_OK = 0, /* everything is okay */ NFS4ERR_PERM = 1, /* caller not privileged */ NFS4ERR_NOENT = 2, /* no such file/directory */ NFS4ERR_IO = 5, /* hard I/O error */ NFS4ERR_NXIO = 6, /* no such device */ NFS4ERR_ACCESS = 13, /* access denied */ NFS4ERR_EXIST = 17, /* file already exists */ NFS4ERR_XDEV = 18, /* different filesystems */ /* Unused/reserved 19 */ NFS4ERR_NOTDIR = 20, /* should be a directory */ NFS4ERR_ISDIR = 21, /* should not be directory */ NFS4ERR_INVAL = 22, /* invalid argument */ NFS4ERR_FBIG = 27, /* file exceeds server max */ NFS4ERR_NOSPC = 28, /* no space on filesystem */ NFS4ERR_ROFS = 30, /* read-only filesystem */ NFS4ERR_MLINK = 31, /* too many hard links */ NFS4ERR_NAMETOOLONG = 63, /* name exceeds server max */ NFS4ERR_NOTEMPTY = 66, /* directory not empty */ NFS4ERR_DQUOT = 69, /* hard quota limit reached*/ NFS4ERR_STALE = 70, /* file no longer exists */ NFS4ERR_BADHANDLE = 10001,/* Illegal filehandle */ NFS4ERR_BAD_COOKIE = 10003,/* READDIR cookie is stale */ NFS4ERR_NOTSUPP = 10004,/* operation not supported */ NFS4ERR_TOOSMALL = 10005,/* response limit exceeded */ NFS4ERR_SERVERFAULT = 10006,/* undefined server error */ NFS4ERR_BADTYPE = 10007,/* type invalid for CREATE */ NFS4ERR_DELAY = 10008,/* file "busy" - retry */ NFS4ERR_SAME = 10009,/* nverify says attrs same */ NFS4ERR_DENIED = 10010,/* lock unavailable */ NFS4ERR_EXPIRED = 10011,/* lock lease expired */ NFS4ERR_LOCKED = 10012,/* I/O failed due to lock */ NFS4ERR_GRACE = 10013,/* in grace period */ NFS4ERR_FHEXPIRED = 10014,/* filehandle expired */ NFS4ERR_SHARE_DENIED = 10015,/* share reserve denied */ NFS4ERR_WRONGSEC = 10016,/* wrong security flavor */ NFS4ERR_CLID_INUSE = 10017,/* clientid in use */ NFS4ERR_RESOURCE = 10018,/* resource exhaustion */ NFS4ERR_MOVED = 10019,/* filesystem relocated */ NFS4ERR_NOFILEHANDLE = 10020,/* current FH is not set */ NFS4ERR_MINOR_VERS_MISMATCH = 10021,/* minor vers not supp */ NFS4ERR_STALE_CLIENTID = 10022,/* server has rebooted */ NFS4ERR_STALE_STATEID = 10023,/* server has rebooted */ NFS4ERR_OLD_STATEID = 10024,/* state is out of sync */ NFS4ERR_BAD_STATEID = 10025,/* incorrect stateid */ NFS4ERR_BAD_SEQID = 10026,/* request is out of seq. */ NFS4ERR_NOT_SAME = 10027,/* verify - attrs not same */ NFS4ERR_LOCK_RANGE = 10028,/* lock range not supported*/ NFS4ERR_SYMLINK = 10029,/* should be file/directory*/ NFS4ERR_RESTOREFH = 10030,/* no saved filehandle */ NFS4ERR_LEASE_MOVED = 10031,/* some filesystem moved */ NFS4ERR_ATTRNOTSUPP = 10032,/* recommended attr not sup*/ NFS4ERR_NO_GRACE = 10033,/* reclaim outside of grace*/ NFS4ERR_RECLAIM_BAD = 10034,/* reclaim error at server */ NFS4ERR_RECLAIM_CONFLICT = 10035,/* conflict on reclaim */ NFS4ERR_BADXDR = 10036,/* XDR decode failed */ NFS4ERR_LOCKS_HELD = 10037,/* file locks held at CLOSE*/ NFS4ERR_OPENMODE = 10038,/* conflict in OPEN and I/O*/ NFS4ERR_BADOWNER = 10039,/* owner translation bad */ NFS4ERR_BADCHAR = 10040,/* utf-8 char not supported*/ NFS4ERR_BADNAME = 10041,/* name not supported */ NFS4ERR_BAD_RANGE = 10042,/* lock range not supported*/ NFS4ERR_LOCK_NOTSUPP = 10043,/* no atomic up/downgrade */ NFS4ERR_OP_ILLEGAL = 10044,/* undefined operation */ NFS4ERR_DEADLOCK = 10045,/* file locking deadlock */ NFS4ERR_FILE_OPEN = 10046,/* open file blocks op. */ NFS4ERR_ADMIN_REVOKED = 10047,/* lockowner state revoked */ NFS4ERR_CB_PATH_DOWN = 10048 /* callback path down */ }; /* * Basic data types */ typedef uint32_t bitmap4<>; typedef uint64_t offset4; typedef uint32_t count4; typedef uint64_t length4; typedef uint64_t clientid4; typedef uint32_t seqid4; typedef opaque utf8string<>; typedef utf8string utf8str_cis; typedef utf8string utf8str_cs; typedef utf8string utf8str_mixed; typedef utf8str_cs component4; typedef component4 pathname4<>; typedef uint64_t nfs_lockid4; typedef uint64_t nfs_cookie4; typedef utf8str_cs linktext4; typedef opaque sec_oid4<>; typedef uint32_t qop4; typedef uint32_t mode4; typedef uint64_t changeid4; typedef opaque verifier4[NFS4_VERIFIER_SIZE]; /* * Timeval */ struct nfstime4 { int64_t seconds; uint32_t nseconds; }; enum time_how4 { SET_TO_SERVER_TIME4 = 0, SET_TO_CLIENT_TIME4 = 1 }; union settime4 switch (time_how4 set_it) { case SET_TO_CLIENT_TIME4: nfstime4 time; default: void; }; /* * File access handle */ typedef opaque nfs_fh4; /* * File attribute definitions */ /* * FSID structure for major/minor */ struct fsid4 { uint64_t major; uint64_t minor; }; /* * Filesystem locations attribute for relocation/migration */ struct fs_location4 { utf8str_cis server<>; pathname4 rootpath; }; struct fs_locations4 { pathname4 fs_root; fs_location4 locations<>; }; /* * Various Access Control Entry definitions */ /* * Mask that indicates which Access Control Entries are supported. * Values for the fattr4_aclsupport attribute. */ const ACL4_SUPPORT_ALLOW_ACL = 0x00000001; const ACL4_SUPPORT_DENY_ACL = 0x00000002; const ACL4_SUPPORT_AUDIT_ACL = 0x00000004; const ACL4_SUPPORT_ALARM_ACL = 0x00000008; typedef uint32_t acetype4; /* * acetype4 values, others can be added as needed. */ const ACE4_ACCESS_ALLOWED_ACE_TYPE = 0x00000000; const ACE4_ACCESS_DENIED_ACE_TYPE = 0x00000001; const ACE4_SYSTEM_AUDIT_ACE_TYPE = 0x00000002; const ACE4_SYSTEM_ALARM_ACE_TYPE = 0x00000003; /* * ACE flag */ typedef uint32_t aceflag4; /* * ACE flag values */ const ACE4_FILE_INHERIT_ACE = 0x00000001; const ACE4_DIRECTORY_INHERIT_ACE = 0x00000002; const ACE4_NO_PROPAGATE_INHERIT_ACE = 0x00000004; const ACE4_INHERIT_ONLY_ACE = 0x00000008; const ACE4_SUCCESSFUL_ACCESS_ACE_FLAG = 0x00000010; const ACE4_FAILED_ACCESS_ACE_FLAG = 0x00000020; const ACE4_IDENTIFIER_GROUP = 0x00000040; /* * ACE mask */ typedef uint32_t acemask4; /* * ACE mask values */ const ACE4_READ_DATA = 0x00000001; const ACE4_LIST_DIRECTORY = 0x00000001; const ACE4_WRITE_DATA = 0x00000002; const ACE4_ADD_FILE = 0x00000002; const ACE4_APPEND_DATA = 0x00000004; const ACE4_ADD_SUBDIRECTORY = 0x00000004; const ACE4_READ_NAMED_ATTRS = 0x00000008; const ACE4_WRITE_NAMED_ATTRS = 0x00000010; const ACE4_EXECUTE = 0x00000020; const ACE4_DELETE_CHILD = 0x00000040; const ACE4_READ_ATTRIBUTES = 0x00000080; const ACE4_WRITE_ATTRIBUTES = 0x00000100; const ACE4_DELETE = 0x00010000; const ACE4_READ_ACL = 0x00020000; const ACE4_WRITE_ACL = 0x00040000; const ACE4_WRITE_OWNER = 0x00080000; const ACE4_SYNCHRONIZE = 0x00100000; /* * ACE4_GENERIC_READ -- defined as combination of * ACE4_READ_ACL | * ACE4_READ_DATA | * ACE4_READ_ATTRIBUTES | * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_READ = 0x00120081; /* * ACE4_GENERIC_WRITE -- defined as combination of * ACE4_READ_ACL | * ACE4_WRITE_DATA | * ACE4_WRITE_ATTRIBUTES | * ACE4_WRITE_ACL | * ACE4_APPEND_DATA | * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_WRITE = 0x00160106; /* * ACE4_GENERIC_EXECUTE -- defined as combination of * ACE4_READ_ACL * ACE4_READ_ATTRIBUTES * ACE4_EXECUTE * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_EXECUTE = 0x001200A0; /* * Access Control Entry definition */ struct nfsace4 { acetype4 type; aceflag4 flag; acemask4 access_mask; utf8str_mixed who; }; /* * Field definitions for the fattr4_mode attribute */ const MODE4_SUID = 0x800; /* set user id on execution */ const MODE4_SGID = 0x400; /* set group id on execution */ const MODE4_SVTX = 0x200; /* save text even after use */ const MODE4_RUSR = 0x100; /* read permission: owner */ const MODE4_WUSR = 0x080; /* write permission: owner */ const MODE4_XUSR = 0x040; /* execute permission: owner */ const MODE4_RGRP = 0x020; /* read permission: group */ const MODE4_WGRP = 0x010; /* write permission: group */ const MODE4_XGRP = 0x008; /* execute permission: group */ const MODE4_ROTH = 0x004; /* read permission: other */ const MODE4_WOTH = 0x002; /* write permission: other */ const MODE4_XOTH = 0x001; /* execute permission: other */ /* * Special data/attribute associated with * file types NF4BLK and NF4CHR. */ struct specdata4 { uint32_t specdata1; /* major device number */ uint32_t specdata2; /* minor device number */ }; /* * Values for fattr4_fh_expire_type */ const FH4_PERSISTENT = 0x00000000; const FH4_NOEXPIRE_WITH_OPEN = 0x00000001; const FH4_VOLATILE_ANY = 0x00000002; const FH4_VOL_MIGRATION = 0x00000004; const FH4_VOL_RENAME = 0x00000008; typedef bitmap4 fattr4_supported_attrs; typedef nfs_ftype4 fattr4_type; typedef uint32_t fattr4_fh_expire_type; typedef changeid4 fattr4_change; typedef uint64_t fattr4_size; typedef bool fattr4_link_support; typedef bool fattr4_symlink_support; typedef bool fattr4_named_attr; typedef fsid4 fattr4_fsid; typedef bool fattr4_unique_handles; typedef uint32_t fattr4_lease_time; typedef nfsstat4 fattr4_rdattr_error; typedef nfsace4 fattr4_acl<>; typedef uint32_t fattr4_aclsupport; typedef bool fattr4_archive; typedef bool fattr4_cansettime; typedef bool fattr4_case_insensitive; typedef bool fattr4_case_preserving; typedef bool fattr4_chown_restricted; typedef uint64_t fattr4_fileid; typedef uint64_t fattr4_files_avail; typedef nfs_fh4 fattr4_filehandle; typedef uint64_t fattr4_files_free; typedef uint64_t fattr4_files_total; typedef fs_locations4 fattr4_fs_locations; typedef bool fattr4_hidden; typedef bool fattr4_homogeneous; typedef uint64_t fattr4_maxfilesize; typedef uint32_t fattr4_maxlink; typedef uint32_t fattr4_maxname; typedef uint64_t fattr4_maxread; typedef uint64_t fattr4_maxwrite; typedef utf8str_cs fattr4_mimetype; typedef mode4 fattr4_mode; typedef uint64_t fattr4_mounted_on_fileid; typedef bool fattr4_no_trunc; typedef uint32_t fattr4_numlinks; typedef utf8str_mixed fattr4_owner; typedef utf8str_mixed fattr4_owner_group; typedef uint64_t fattr4_quota_avail_hard; typedef uint64_t fattr4_quota_avail_soft; typedef uint64_t fattr4_quota_used; typedef specdata4 fattr4_rawdev; typedef uint64_t fattr4_space_avail; typedef uint64_t fattr4_space_free; typedef uint64_t fattr4_space_total; typedef uint64_t fattr4_space_used; typedef bool fattr4_system; typedef nfstime4 fattr4_time_access; typedef settime4 fattr4_time_access_set; typedef nfstime4 fattr4_time_backup; typedef nfstime4 fattr4_time_create; typedef nfstime4 fattr4_time_delta; typedef nfstime4 fattr4_time_metadata; typedef nfstime4 fattr4_time_modify; typedef settime4 fattr4_time_modify_set; /* * Mandatory Attributes */ const FATTR4_SUPPORTED_ATTRS = 0; const FATTR4_TYPE = 1; const FATTR4_FH_EXPIRE_TYPE = 2; const FATTR4_CHANGE = 3; const FATTR4_SIZE = 4; const FATTR4_LINK_SUPPORT = 5; const FATTR4_SYMLINK_SUPPORT = 6; const FATTR4_NAMED_ATTR = 7; const FATTR4_FSID = 8; const FATTR4_UNIQUE_HANDLES = 9; const FATTR4_LEASE_TIME = 10; const FATTR4_RDATTR_ERROR = 11; const FATTR4_FILEHANDLE = 19; /* * Recommended Attributes */ const FATTR4_ACL = 12; const FATTR4_ACLSUPPORT = 13; const FATTR4_ARCHIVE = 14; const FATTR4_CANSETTIME = 15; const FATTR4_CASE_INSENSITIVE = 16; const FATTR4_CASE_PRESERVING = 17; const FATTR4_CHOWN_RESTRICTED = 18; const FATTR4_FILEID = 20; const FATTR4_FILES_AVAIL = 21; const FATTR4_FILES_FREE = 22; const FATTR4_FILES_TOTAL = 23; const FATTR4_FS_LOCATIONS = 24; const FATTR4_HIDDEN = 25; const FATTR4_HOMOGENEOUS = 26; const FATTR4_MAXFILESIZE = 27; const FATTR4_MAXLINK = 28; const FATTR4_MAXNAME = 29; const FATTR4_MAXREAD = 30; const FATTR4_MAXWRITE = 31; const FATTR4_MIMETYPE = 32; const FATTR4_MODE = 33; const FATTR4_NO_TRUNC = 34; const FATTR4_NUMLINKS = 35; const FATTR4_OWNER = 36; const FATTR4_OWNER_GROUP = 37; const FATTR4_QUOTA_AVAIL_HARD = 38; const FATTR4_QUOTA_AVAIL_SOFT = 39; const FATTR4_QUOTA_USED = 40; const FATTR4_RAWDEV = 41; const FATTR4_SPACE_AVAIL = 42; const FATTR4_SPACE_FREE = 43; const FATTR4_SPACE_TOTAL = 44; const FATTR4_SPACE_USED = 45; const FATTR4_SYSTEM = 46; const FATTR4_TIME_ACCESS = 47; const FATTR4_TIME_ACCESS_SET = 48; const FATTR4_TIME_BACKUP = 49; const FATTR4_TIME_CREATE = 50; const FATTR4_TIME_DELTA = 51; const FATTR4_TIME_METADATA = 52; const FATTR4_TIME_MODIFY = 53; const FATTR4_TIME_MODIFY_SET = 54; const FATTR4_MOUNTED_ON_FILEID = 55; typedef opaque attrlist4<>; /* * File attribute container */ struct fattr4 { bitmap4 attrmask; attrlist4 attr_vals; }; /* * Change info for the client */ struct change_info4 { bool atomic; changeid4 before; changeid4 after; }; struct clientaddr4 { /* see struct rpcb in RFC 1833 */ string r_netid<>; /* network id */ string r_addr<>; /* universal address */ }; /* * Callback program info as provided by the client */ struct cb_client4 { uint32_t cb_program; clientaddr4 cb_location; }; /* * Stateid */ struct stateid4 { uint32_t seqid; opaque other[12]; }; /* * Client ID */ struct nfs_client_id4 { verifier4 verifier; opaque id; }; struct open_owner4 { clientid4 clientid; opaque owner; }; struct lock_owner4 { clientid4 clientid; opaque owner; }; enum nfs_lock_type4 { READ_LT = 1, WRITE_LT = 2, READW_LT = 3, /* blocking read */ WRITEW_LT = 4 /* blocking write */ }; /* * ACCESS: Check access permission */ const ACCESS4_READ = 0x00000001; const ACCESS4_LOOKUP = 0x00000002; const ACCESS4_MODIFY = 0x00000004; const ACCESS4_EXTEND = 0x00000008; const ACCESS4_DELETE = 0x00000010; const ACCESS4_EXECUTE = 0x00000020; struct ACCESS4args { /* CURRENT_FH: object */ uint32_t access; }; struct ACCESS4resok { uint32_t supported; uint32_t access; }; union ACCESS4res switch (nfsstat4 status) { case NFS4_OK: ACCESS4resok resok4; default: void; }; /* * CLOSE: Close a file and release share reservations */ struct CLOSE4args { /* CURRENT_FH: object */ seqid4 seqid; stateid4 open_stateid; }; union CLOSE4res switch (nfsstat4 status) { case NFS4_OK: stateid4 open_stateid; default: void; }; /* * COMMIT: Commit cached data on server to stable storage */ struct COMMIT4args { /* CURRENT_FH: file */ offset4 offset; count4 count; }; struct COMMIT4resok { verifier4 writeverf; }; union COMMIT4res switch (nfsstat4 status) { case NFS4_OK: COMMIT4resok resok4; default: void; }; /* * CREATE: Create a non-regular file */ union createtype4 switch (nfs_ftype4 type) { case NF4LNK: linktext4 linkdata; case NF4BLK: case NF4CHR: specdata4 devdata; case NF4SOCK: case NF4FIFO: case NF4DIR: void; default: void; /* server should return NFS4ERR_BADTYPE */ }; struct CREATE4args { /* CURRENT_FH: directory for creation */ createtype4 objtype; component4 objname; fattr4 createattrs; }; struct CREATE4resok { change_info4 cinfo; bitmap4 attrset; /* attributes set */ }; union CREATE4res switch (nfsstat4 status) { case NFS4_OK: CREATE4resok resok4; default: void; }; /* * DELEGPURGE: Purge Delegations Awaiting Recovery */ struct DELEGPURGE4args { clientid4 clientid; }; struct DELEGPURGE4res { nfsstat4 status; }; /* * DELEGRETURN: Return a delegation */ struct DELEGRETURN4args { /* CURRENT_FH: delegated file */ stateid4 deleg_stateid; }; struct DELEGRETURN4res { nfsstat4 status; }; /* * GETATTR: Get file attributes */ struct GETATTR4args { /* CURRENT_FH: directory or file */ bitmap4 attr_request; }; struct GETATTR4resok { fattr4 obj_attributes; }; union GETATTR4res switch (nfsstat4 status) { case NFS4_OK: GETATTR4resok resok4; default: void; }; /* * Notification types (for notification_types4) */ const DIR_NOTIFICATION_NONE = 0x00000000; const DIR_NOTIFICATION_CHANGE_ENTRY_ATTRIBUTES = 0x00000001; const DIR_NOTIFICATION_CHANGE_DIR_ATTRIBUTES = 0x00000002; const DIR_NOTIFICATION_REMOVE_ENTRY = 0x00000004; const DIR_NOTIFICATION_ADD_ENTRY = 0x00000008; const DIR_NOTIFICATION_RENAME_ENTRY = 0x00000010; const DIR_NOTIFICATION_CHANGE_COOKIE_VERIFIER = 0x00000020; typedef bitmap4 notification_types4; typedef nfstime4 notification_delay4; enum dir_delegation_status4 { NFS4_DIR_DELEGATION_NONE = 0, NFS4_DIR_DELEGATION_READ = 1, NFS4_DIR_DELEGATION_DENIED = 2, NFS4_DIR_DELEGATION_UNAVAIL = 3 }; /* * GET_DIR_DELEGATION: request a delegation on a directory */ struct GET_DIR_DELEGATION4args { /* CURRENT_FH: directory */ clientid4 clientid; notification_types4 notif_types; notification_delay4 dir_notif_delay; notification_delay4 dir_entry_notif_delay; }; struct GET_DIR_DELEGATION4resok { stateid4 stateid; dir_delegation_status4 status; notification_types4 notif_types; bitmap4 dir_notif_attrs; bitmap4 dir_entry_notif_attrs; }; union GET_DIR_DELEGATION4res switch(nfsstat4 status) { case NFS4_OK: GET_DIR_DELEGATION4resok resok4; default: void; }; /* * GETFH: Get current filehandle */ struct GETFH4resok { nfs_fh4 object; }; union GETFH4res switch (nfsstat4 status) { case NFS4_OK: GETFH4resok resok4; default: void; }; /* * LINK: Create link to an object */ struct LINK4args { /* SAVED_FH: source object */ /* CURRENT_FH: target directory */ component4 newname; }; struct LINK4resok { change_info4 cinfo; }; union LINK4res switch (nfsstat4 status) { case NFS4_OK: LINK4resok resok4; default: void; }; /* * For LOCK, transition from open_owner to new lock_owner */ struct open_to_lock_owner4 { seqid4 open_seqid; stateid4 open_stateid; seqid4 lock_seqid; lock_owner4 lock_owner; }; /* * For LOCK, existing lock_owner continues to request file locks */ struct exist_lock_owner4 { stateid4 lock_stateid; seqid4 lock_seqid; }; union locker4 switch (bool new_lock_owner) { case TRUE: open_to_lock_owner4 open_owner; case FALSE: exist_lock_owner4 lock_owner; }; /* * LOCK/LOCKT/LOCKU: Record lock management */ struct LOCK4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; bool reclaim; offset4 offset; length4 length; locker4 locker; }; struct LOCK4denied { offset4 offset; length4 length; nfs_lock_type4 locktype; lock_owner4 owner; }; struct LOCK4resok { stateid4 lock_stateid; }; union LOCK4res switch (nfsstat4 status) { case NFS4_OK: LOCK4resok resok4; case NFS4ERR_DENIED: LOCK4denied denied; default: void; }; struct LOCKT4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; offset4 offset; length4 length; lock_owner4 owner; }; union LOCKT4res switch (nfsstat4 status) { case NFS4ERR_DENIED: LOCK4denied denied; case NFS4_OK: void; default: void; }; struct LOCKU4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; seqid4 seqid; stateid4 lock_stateid; offset4 offset; length4 length; }; union LOCKU4res switch (nfsstat4 status) { case NFS4_OK: stateid4 lock_stateid; default: void; }; /* * LOOKUP: Lookup filename */ struct LOOKUP4args { /* CURRENT_FH: directory */ component4 objname; }; struct LOOKUP4res { /* CURRENT_FH: object */ nfsstat4 status; }; /* * LOOKUPP: Lookup parent directory */ struct LOOKUPP4res { /* CURRENT_FH: directory */ nfsstat4 status; }; /* * NVERIFY: Verify attributes different */ struct NVERIFY4args { /* CURRENT_FH: object */ fattr4 obj_attributes; }; struct NVERIFY4res { nfsstat4 status; }; /* * Various definitions for OPEN */ enum createmode4 { UNCHECKED4 = 0, GUARDED4 = 1, EXCLUSIVE4 = 2 }; union createhow4 switch (createmode4 mode) { case UNCHECKED4: case GUARDED4: fattr4 createattrs; case EXCLUSIVE4: verifier4 createverf; }; enum opentype4 { OPEN4_NOCREATE = 0, OPEN4_CREATE = 1 }; union openflag4 switch (opentype4 opentype) { case OPEN4_CREATE: createhow4 how; default: void; }; /* Next definitions used for OPEN delegation */ enum limit_by4 { NFS_LIMIT_SIZE = 1, NFS_LIMIT_BLOCKS = 2 /* others as needed */ }; struct nfs_modified_limit4 { uint32_t num_blocks; uint32_t bytes_per_block; }; union nfs_space_limit4 switch (limit_by4 limitby) { /* limit specified as file size */ case NFS_LIMIT_SIZE: uint64_t filesize; /* limit specified by number of blocks */ case NFS_LIMIT_BLOCKS: nfs_modified_limit4 mod_blocks; } ; /* * Share Access and Deny constants for open argument */ const OPEN4_SHARE_ACCESS_READ = 0x00000001; const OPEN4_SHARE_ACCESS_WRITE = 0x00000002; const OPEN4_SHARE_ACCESS_BOTH = 0x00000003; const OPEN4_SHARE_DENY_NONE = 0x00000000; const OPEN4_SHARE_DENY_READ = 0x00000001; const OPEN4_SHARE_DENY_WRITE = 0x00000002; const OPEN4_SHARE_DENY_BOTH = 0x00000003; enum open_delegation_type4 { OPEN_DELEGATE_NONE = 0, OPEN_DELEGATE_READ = 1, OPEN_DELEGATE_WRITE = 2 }; enum open_claim_type4 { CLAIM_NULL = 0, CLAIM_PREVIOUS = 1, CLAIM_DELEGATE_CUR = 2, CLAIM_DELEGATE_PREV = 3 }; struct open_claim_delegate_cur4 { stateid4 delegate_stateid; component4 file; }; union open_claim4 switch (open_claim_type4 claim) { /* * No special rights to file. Ordinary OPEN of the specified file. */ case CLAIM_NULL: /* CURRENT_FH: directory */ component4 file; /* * Right to the file established by an open previous to server * reboot. File identified by filehandle obtained at that time * rather than by name. */ case CLAIM_PREVIOUS: /* CURRENT_FH: file being reclaimed */ open_delegation_type4 delegate_type; /* * Right to file based on a delegation granted by the server. * File is specified by name. */ case CLAIM_DELEGATE_CUR: /* CURRENT_FH: directory */ open_claim_delegate_cur4 delegate_cur_info; /* Right to file based on a delegation granted to a previous boot * instance of the client. File is specified by name. */ case CLAIM_DELEGATE_PREV: /* CURRENT_FH: directory */ component4 file_delegate_prev; }; /* * OPEN: Open a file, potentially receiving an open delegation */ struct OPEN4args { seqid4 seqid; uint32_t share_access; uint32_t share_deny; open_owner4 owner; openflag4 openhow; open_claim4 claim; }; struct open_read_delegation4 { stateid4 stateid; /* Stateid for delegation*/ bool recall; /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */ nfsace4 permissions; /* Defines users who don't need an ACCESS call to open for read */ }; struct open_write_delegation4 { stateid4 stateid; /* Stateid for delegation */ bool recall; /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */ nfs_space_limit4 space_limit; /* Defines condition that the client must check to determine whether the file needs to be flushed to the server on close. */ nfsace4 permissions; /* Defines users who don't need an ACCESS call as part of a delegated open. */ }; union open_delegation4 switch (open_delegation_type4 delegation_type) { case OPEN_DELEGATE_NONE: void; case OPEN_DELEGATE_READ: open_read_delegation4 read; case OPEN_DELEGATE_WRITE: open_write_delegation4 write; }; /* * Result flags */ /* Client must confirm open */ const OPEN4_RESULT_CONFIRM = 0x00000002; /* Type of file locking behavior at the server */ const OPEN4_RESULT_LOCKTYPE_POSIX = 0x00000004; struct OPEN4resok { stateid4 stateid; /* Stateid for open */ change_info4 cinfo; /* Directory Change Info */ uint32_t rflags; /* Result flags */ bitmap4 attrset; /* attribute set for create*/ open_delegation4 delegation; /* Info on any open delegation */ }; union OPEN4res switch (nfsstat4 status) { case NFS4_OK: /* CURRENT_FH: opened file */ OPEN4resok resok4; default: void; }; /* * OPENATTR: open named attributes directory */ struct OPENATTR4args { /* CURRENT_FH: object */ bool createdir; }; struct OPENATTR4res { /* CURRENT_FH: named attr directory */ nfsstat4 status; }; /* * OPEN_CONFIRM: confirm the open */ struct OPEN_CONFIRM4args { /* CURRENT_FH: opened file */ stateid4 open_stateid; seqid4 seqid; }; struct OPEN_CONFIRM4resok { stateid4 open_stateid; }; union OPEN_CONFIRM4res switch (nfsstat4 status) { case NFS4_OK: OPEN_CONFIRM4resok resok4; default: void; }; /* * OPEN_DOWNGRADE: downgrade the access/deny for a file */ struct OPEN_DOWNGRADE4args { /* CURRENT_FH: opened file */ stateid4 open_stateid; seqid4 seqid; uint32_t share_access; uint32_t share_deny; }; struct OPEN_DOWNGRADE4resok { stateid4 open_stateid; }; union OPEN_DOWNGRADE4res switch(nfsstat4 status) { case NFS4_OK: OPEN_DOWNGRADE4resok resok4; default: void; }; /* * PUTFH: Set current filehandle */ struct PUTFH4args { nfs_fh4 object; }; struct PUTFH4res { /* CURRENT_FH: */ nfsstat4 status; }; /* * PUTPUBFH: Set public filehandle */ struct PUTPUBFH4res { /* CURRENT_FH: public fh */ nfsstat4 status; }; /* * PUTROOTFH: Set root filehandle */ struct PUTROOTFH4res { /* CURRENT_FH: root fh */ nfsstat4 status; }; /* * READ: Read from file */ struct READ4args { /* CURRENT_FH: file */ stateid4 stateid; offset4 offset; count4 count; }; struct READ4resok { bool eof; opaque data<>; }; union READ4res switch (nfsstat4 status) { case NFS4_OK: READ4resok resok4; default: void; }; /* * READDIR: Read directory */ struct READDIR4args { /* CURRENT_FH: directory */ nfs_cookie4 cookie; verifier4 cookieverf; count4 dircount; count4 maxcount; bitmap4 attr_request; }; struct entry4 { nfs_cookie4 cookie; component4 name; fattr4 attrs; entry4 *nextentry; }; struct dirlist4 { entry4 *entries; bool eof; }; struct READDIR4resok { verifier4 cookieverf; dirlist4 reply; }; union READDIR4res switch (nfsstat4 status) { case NFS4_OK: READDIR4resok resok4; default: void; }; /* * READLINK: Read symbolic link */ struct READLINK4resok { linktext4 link; }; union READLINK4res switch (nfsstat4 status) { case NFS4_OK: READLINK4resok resok4; default: void; }; /* * REMOVE: Remove filesystem object */ struct REMOVE4args { /* CURRENT_FH: directory */ component4 target; }; struct REMOVE4resok { change_info4 cinfo; }; union REMOVE4res switch (nfsstat4 status) { case NFS4_OK: REMOVE4resok resok4; default: void; }; /* * RENAME: Rename directory entry */ struct RENAME4args { /* SAVED_FH: source directory */ component4 oldname; /* CURRENT_FH: target directory */ component4 newname; }; struct RENAME4resok { change_info4 source_cinfo; change_info4 target_cinfo; }; union RENAME4res switch (nfsstat4 status) { case NFS4_OK: RENAME4resok resok4; default: void; }; /* * RENEW: Renew a Lease */ struct RENEW4args { clientid4 clientid; }; struct RENEW4res { nfsstat4 status; }; /* * RESTOREFH: Restore saved filehandle */ struct RESTOREFH4res { /* CURRENT_FH: value of saved fh */ nfsstat4 status; }; /* * SAVEFH: Save current filehandle */ struct SAVEFH4res { /* SAVED_FH: value of current fh */ nfsstat4 status; }; /* * SECINFO: Obtain Available Security Mechanisms */ struct SECINFO4args { /* CURRENT_FH: directory */ component4 name; }; /* * From RFC 2203 */ enum rpc_gss_svc_t { RPC_GSS_SVC_NONE = 1, RPC_GSS_SVC_INTEGRITY = 2, RPC_GSS_SVC_PRIVACY = 3 }; struct rpcsec_gss_info { sec_oid4 oid; qop4 qop; rpc_gss_svc_t service; }; /* RPCSEC_GSS has a value of '6' - See RFC 2203 */ union secinfo4 switch (uint32_t flavor) { case RPCSEC_GSS: rpcsec_gss_info flavor_info; default: void; }; typedef secinfo4 SECINFO4resok<>; union SECINFO4res switch (nfsstat4 status) { case NFS4_OK: SECINFO4resok resok4; default: void; }; /* * SETATTR: Set attributes */ struct SETATTR4args { /* CURRENT_FH: target object */ stateid4 stateid; fattr4 obj_attributes; }; struct SETATTR4res { nfsstat4 status; bitmap4 attrsset; }; /* * SETCLIENTID */ struct SETCLIENTID4args { nfs_client_id4 client; cb_client4 callback; uint32_t callback_ident; }; struct SETCLIENTID4resok { clientid4 clientid; verifier4 setclientid_confirm; }; union SETCLIENTID4res switch (nfsstat4 status) { case NFS4_OK: SETCLIENTID4resok resok4; case NFS4ERR_CLID_INUSE: clientaddr4 client_using; default: void; }; struct SETCLIENTID_CONFIRM4args { clientid4 clientid; verifier4 setclientid_confirm; }; struct SETCLIENTID_CONFIRM4res { nfsstat4 status; }; /* * VERIFY: Verify attributes same */ struct VERIFY4args { /* CURRENT_FH: object */ fattr4 obj_attributes; }; struct VERIFY4res { nfsstat4 status; }; /* * WRITE: Write to file */ enum stable_how4 { UNSTABLE4 = 0, DATA_SYNC4 = 1, FILE_SYNC4 = 2 }; struct WRITE4args { /* CURRENT_FH: file */ stateid4 stateid; offset4 offset; stable_how4 stable; opaque data<>; }; struct WRITE4resok { count4 count; stable_how4 committed; verifier4 writeverf; }; union WRITE4res switch (nfsstat4 status) { case NFS4_OK: WRITE4resok resok4; default: void; }; /* * RELEASE_LOCKOWNER: Notify server to release lockowner */ struct RELEASE_LOCKOWNER4args { lock_owner4 lock_owner; }; struct RELEASE_LOCKOWNER4res { nfsstat4 status; }; /* * ILLEGAL: Response for illegal operation numbers */ struct ILLEGAL4res { nfsstat4 status; }; /* * Operation arrays */ enum nfs_opnum4 { OP_ACCESS = 3, OP_CLOSE = 4, OP_COMMIT = 5, OP_CREATE = 6, OP_DELEGPURGE = 7, OP_DELEGRETURN = 8, OP_GETATTR = 9, OP_GETFH = 10, OP_LINK = 11, OP_LOCK = 12, OP_LOCKT = 13, OP_LOCKU = 14, OP_LOOKUP = 15, OP_LOOKUPP = 16, OP_NVERIFY = 17, OP_OPEN = 18, OP_OPENATTR = 19, OP_OPEN_CONFIRM = 20, OP_OPEN_DOWNGRADE = 21, OP_PUTFH = 22, OP_PUTPUBFH = 23, OP_PUTROOTFH = 24, OP_READ = 25, OP_READDIR = 26, OP_READLINK = 27, OP_REMOVE = 28, OP_RENAME = 29, OP_RENEW = 30, OP_RESTOREFH = 31, OP_SAVEFH = 32, OP_SECINFO = 33, OP_SETATTR = 34, OP_SETCLIENTID = 35, OP_SETCLIENTID_CONFIRM = 36, OP_VERIFY = 37, OP_WRITE = 38, OP_RELEASE_LOCKOWNER = 39, OP_GET_DIR_DELEGATION = 40, OP_ILLEGAL = 10044 }; union nfs_argop4 switch (nfs_opnum4 argop) { case OP_ACCESS: ACCESS4args opaccess; case OP_CLOSE: CLOSE4args opclose; case OP_COMMIT: COMMIT4args opcommit; case OP_CREATE: CREATE4args opcreate; case OP_DELEGPURGE: DELEGPURGE4args opdelegpurge; case OP_DELEGRETURN: DELEGRETURN4args opdelegreturn; case OP_GETATTR: GETATTR4args opgetattr; case OP_GETFH: void; case OP_LINK: LINK4args oplink; case OP_LOCK: LOCK4args oplock; case OP_LOCKT: LOCKT4args oplockt; case OP_LOCKU: LOCKU4args oplocku; case OP_LOOKUP: LOOKUP4args oplookup; case OP_LOOKUPP: void; case OP_NVERIFY: NVERIFY4args opnverify; case OP_OPEN: OPEN4args opopen; case OP_OPENATTR: OPENATTR4args opopenattr; case OP_OPEN_CONFIRM: OPEN_CONFIRM4args opopen_confirm; case OP_OPEN_DOWNGRADE: OPEN_DOWNGRADE4args opopen_downgrade; case OP_PUTFH: PUTFH4args opputfh; case OP_PUTPUBFH: void; case OP_PUTROOTFH: void; case OP_READ: READ4args opread; case OP_READDIR: READDIR4args opreaddir; case OP_READLINK: void; case OP_REMOVE: REMOVE4args opremove; case OP_RENAME: RENAME4args oprename; case OP_RENEW: RENEW4args oprenew; case OP_RESTOREFH: void; case OP_SAVEFH: void; case OP_SECINFO: SECINFO4args opsecinfo; case OP_SETATTR: SETATTR4args opsetattr; case OP_SETCLIENTID: SETCLIENTID4args opsetclientid; case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4args opsetclientid_confirm; case OP_VERIFY: VERIFY4args opverify; case OP_WRITE: WRITE4args opwrite; case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4args oprelease_lockowner; case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4args opget_dir_delegation; case OP_ILLEGAL: void; }; union nfs_resop4 switch (nfs_opnum4 resop){ case OP_ACCESS: ACCESS4res opaccess; case OP_CLOSE: CLOSE4res opclose; case OP_COMMIT: COMMIT4res opcommit; case OP_CREATE: CREATE4res opcreate; case OP_DELEGPURGE: DELEGPURGE4res opdelegpurge; case OP_DELEGRETURN: DELEGRETURN4res opdelegreturn; case OP_GETATTR: GETATTR4res opgetattr; case OP_GETFH: GETFH4res opgetfh; case OP_LINK: LINK4res oplink; case OP_LOCK: LOCK4res oplock; case OP_LOCKT: LOCKT4res oplockt; case OP_LOCKU: LOCKU4res oplocku; case OP_LOOKUP: LOOKUP4res oplookup; case OP_LOOKUPP: LOOKUPP4res oplookupp; case OP_NVERIFY: NVERIFY4res opnverify; case OP_OPEN: OPEN4res opopen; case OP_OPENATTR: OPENATTR4res opopenattr; case OP_OPEN_CONFIRM: OPEN_CONFIRM4res opopen_confirm; case OP_OPEN_DOWNGRADE: OPEN_DOWNGRADE4res opopen_downgrade; case OP_PUTFH: PUTFH4res opputfh; case OP_PUTPUBFH: PUTPUBFH4res opputpubfh; case OP_PUTROOTFH: PUTROOTFH4res opputrootfh; case OP_READ: READ4res opread; case OP_READDIR: READDIR4res opreaddir; case OP_READLINK: READLINK4res opreadlink; case OP_REMOVE: REMOVE4res opremove; case OP_RENAME: RENAME4res oprename; case OP_RENEW: RENEW4res oprenew; case OP_RESTOREFH: RESTOREFH4res oprestorefh; case OP_SAVEFH: SAVEFH4res opsavefh; case OP_SECINFO: SECINFO4res opsecinfo; case OP_SETATTR: SETATTR4res opsetattr; case OP_SETCLIENTID: SETCLIENTID4res opsetclientid; case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4res opsetclientid_confirm; case OP_VERIFY: VERIFY4res opverify; case OP_WRITE: WRITE4res opwrite; case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4res oprelease_lockowner; case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4res opget_dir_delegation; case OP_ILLEGAL: ILLEGAL4res opillegal; }; struct COMPOUND4args { utf8str_cs tag; uint32_t minorversion; nfs_argop4 argarray<>; }; struct COMPOUND4res { nfsstat4 status; utf8str_cs tag; nfs_resop4 resarray<>; }; /* * Remote file service routines */ program NFS4_PROGRAM { version NFS_V4 { void NFSPROC4_NULL(void) = 0; COMPOUND4res NFSPROC4_COMPOUND(COMPOUND4args) = 1; } = 4; } = 100003; /* * NFS4 Callback Procedure Definitions and Program */ /* * CB_GETATTR: Get Current Attributes */ struct CB_GETATTR4args { nfs_fh4 fh; bitmap4 attr_request; }; struct CB_GETATTR4resok { fattr4 obj_attributes; }; union CB_GETATTR4res switch (nfsstat4 status) { case NFS4_OK: CB_GETATTR4resok resok4; default: void; }; /* * CB_RECALL: Recall an Open Delegation */ struct CB_RECALL4args { stateid4 stateid; bool truncate; nfs_fh4 fh; }; struct CB_RECALL4res { nfsstat4 status; }; /* * CB_ILLEGAL: Response for illegal operation numbers */ struct CB_ILLEGAL4res { nfsstat4 status; }; /* * Various definitions for CB_COMPOUND */ enum nfs_cb_opnum4 { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_ILLEGAL = 10044 }; union nfs_cb_argop4 switch (unsigned argop) { case OP_CB_GETATTR: CB_GETATTR4args opcbgetattr; case OP_CB_RECALL: CB_RECALL4args opcbrecall; case OP_CB_ILLEGAL: void; }; union nfs_cb_resop4 switch (unsigned resop){ case OP_CB_GETATTR: CB_GETATTR4res opcbgetattr; case OP_CB_RECALL: CB_RECALL4res opcbrecall; case OP_CB_ILLEGAL: CB_ILLEGAL4res opcbillegal; }; struct CB_COMPOUND4args { utf8str_cs tag; uint32_t minorversion; uint32_t callback_ident; nfs_cb_argop4 argarray<>; }; struct CB_COMPOUND4res { nfsstat4 status; utf8str_cs tag; nfs_cb_resop4 resarray<>; }; /* * Program number is in the transient range since the client * will assign the exact transient program number and provide * that to the server via the SETCLIENTID operation. */ program NFS4_CALLBACK { version NFS_CB { void CB_NULL(void) = 0; CB_COMPOUND4res CB_COMPOUND(CB_COMPOUND4args) = 1; } = 1; } = 0x40000000; nfstrace-0.4.1/src/protocols/nfs/nfsv41.x000066400000000000000000002522031261713114600202420ustar00rootroot00000000000000/* * Copyright (c) 2010 IETF Trust and the persons identified * as the document authors. All rights reserved. * * The document authors are identified in RFC 3530 and * RFC 5661. * * Redistribution and use in source and binary forms, with * or without modification, are permitted provided that the * following conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * * - Neither the name of Internet Society, IETF or IETF * Trust, nor the names of specific contributors, may be * used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS * AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This code was derived from RFC 3530. Please * reproduce this note if possible. * * This code was derived from RFC 5661. Please * reproduce this note if possible. * * This file was machine generated from RFC 5662. */ /* * nfs4_prot.x */ %#ifndef _AUTH_SYS_DEFINE_FOR_NFSv41 %#define _AUTH_SYS_DEFINE_FOR_NFSv41 %#include %typedef struct authsys_parms authsys_parms; %#endif /* _AUTH_SYS_DEFINE_FOR_NFSv41 */ /* * Basic typedefs for RFC 1832 data type definitions */ /* * typedef int int32_t; * typedef unsigned int uint32_t; * typedef hyper int64_t; * typedef unsigned hyper uint64_t; */ /* * Sizes */ const NFS4_FHSIZE = 128; const NFS4_VERIFIER_SIZE = 8; const NFS4_OPAQUE_LIMIT = 1024; const NFS4_SESSIONID_SIZE = 16; const NFS4_INT64_MAX = 0x7fffffffffffffff; const NFS4_UINT64_MAX = 0xffffffffffffffff; const NFS4_INT32_MAX = 0x7fffffff; const NFS4_UINT32_MAX = 0xffffffff; const NFS4_MAXFILELEN = 0xffffffffffffffff; const NFS4_MAXFILEOFF = 0xfffffffffffffffe; /* * File types */ enum nfs_ftype4 { NF4REG = 1, /* Regular File */ NF4DIR = 2, /* Directory */ NF4BLK = 3, /* Special File - block device */ NF4CHR = 4, /* Special File - character device */ NF4LNK = 5, /* Symbolic Link */ NF4SOCK = 6, /* Special File - socket */ NF4FIFO = 7, /* Special File - fifo */ NF4ATTRDIR = 8, /* Attribute Directory */ NF4NAMEDATTR = 9 /* Named Attribute */ }; /* * Error status */ enum nfsstat4 { NFS4_OK = 0, /* everything is okay */ NFS4ERR_PERM = 1, /* caller not privileged */ NFS4ERR_NOENT = 2, /* no such file/directory */ NFS4ERR_IO = 5, /* hard I/O error */ NFS4ERR_NXIO = 6, /* no such device */ NFS4ERR_ACCESS = 13, /* access denied */ NFS4ERR_EXIST = 17, /* file already exists */ NFS4ERR_XDEV = 18, /* different filesystems */ /* * Please do not allocate value 19; it was used in NFSv3 * and we do not want a value in NFSv3 to have a different * meaning in NFSv4.x. */ NFS4ERR_NOTDIR = 20, /* should be a directory */ NFS4ERR_ISDIR = 21, /* should not be directory */ NFS4ERR_INVAL = 22, /* invalid argument */ NFS4ERR_FBIG = 27, /* file exceeds server max */ NFS4ERR_NOSPC = 28, /* no space on filesystem */ NFS4ERR_ROFS = 30, /* read-only filesystem */ NFS4ERR_MLINK = 31, /* too many hard links */ NFS4ERR_NAMETOOLONG = 63, /* name exceeds server max */ NFS4ERR_NOTEMPTY = 66, /* directory not empty */ NFS4ERR_DQUOT = 69, /* hard quota limit reached*/ NFS4ERR_STALE = 70, /* file no longer exists */ NFS4ERR_BADHANDLE = 10001,/* Illegal filehandle */ NFS4ERR_BAD_COOKIE = 10003,/* READDIR cookie is stale */ NFS4ERR_NOTSUPP = 10004,/* operation not supported */ NFS4ERR_TOOSMALL = 10005,/* response limit exceeded */ NFS4ERR_SERVERFAULT = 10006,/* undefined server error */ NFS4ERR_BADTYPE = 10007,/* type invalid for CREATE */ NFS4ERR_DELAY = 10008,/* file "busy" - retry */ NFS4ERR_SAME = 10009,/* nverify says attrs same */ NFS4ERR_DENIED = 10010,/* lock unavailable */ NFS4ERR_EXPIRED = 10011,/* lock lease expired */ NFS4ERR_LOCKED = 10012,/* I/O failed due to lock */ NFS4ERR_GRACE = 10013,/* in grace period */ NFS4ERR_FHEXPIRED = 10014,/* filehandle expired */ NFS4ERR_SHARE_DENIED = 10015,/* share reserve denied */ NFS4ERR_WRONGSEC = 10016,/* wrong security flavor */ NFS4ERR_CLID_INUSE = 10017,/* clientid in use */ /* NFS4ERR_RESOURCE is not a valid error in NFSv4.1 */ NFS4ERR_RESOURCE = 10018,/* resource exhaustion */ NFS4ERR_MOVED = 10019,/* filesystem relocated */ NFS4ERR_NOFILEHANDLE = 10020,/* current FH is not set */ NFS4ERR_MINOR_VERS_MISMATCH= 10021,/* minor vers not supp */ NFS4ERR_STALE_CLIENTID = 10022,/* server has rebooted */ NFS4ERR_STALE_STATEID = 10023,/* server has rebooted */ NFS4ERR_OLD_STATEID = 10024,/* state is out of sync */ NFS4ERR_BAD_STATEID = 10025,/* incorrect stateid */ NFS4ERR_BAD_SEQID = 10026,/* request is out of seq. */ NFS4ERR_NOT_SAME = 10027,/* verify - attrs not same */ NFS4ERR_LOCK_RANGE = 10028,/* overlapping lock range */ NFS4ERR_SYMLINK = 10029,/* should be file/directory*/ NFS4ERR_RESTOREFH = 10030,/* no saved filehandle */ NFS4ERR_LEASE_MOVED = 10031,/* some filesystem moved */ NFS4ERR_ATTRNOTSUPP = 10032,/* recommended attr not sup*/ NFS4ERR_NO_GRACE = 10033,/* reclaim outside of grace*/ NFS4ERR_RECLAIM_BAD = 10034,/* reclaim error at server */ NFS4ERR_RECLAIM_CONFLICT= 10035,/* conflict on reclaim */ NFS4ERR_BADXDR = 10036,/* XDR decode failed */ NFS4ERR_LOCKS_HELD = 10037,/* file locks held at CLOSE*/ NFS4ERR_OPENMODE = 10038,/* conflict in OPEN and I/O*/ NFS4ERR_BADOWNER = 10039,/* owner translation bad */ NFS4ERR_BADCHAR = 10040,/* utf-8 char not supported*/ NFS4ERR_BADNAME = 10041,/* name not supported */ NFS4ERR_BAD_RANGE = 10042,/* lock range not supported*/ NFS4ERR_LOCK_NOTSUPP = 10043,/* no atomic up/downgrade */ NFS4ERR_OP_ILLEGAL = 10044,/* undefined operation */ NFS4ERR_DEADLOCK = 10045,/* file locking deadlock */ NFS4ERR_FILE_OPEN = 10046,/* open file blocks op. */ NFS4ERR_ADMIN_REVOKED = 10047,/* lockowner state revoked */ NFS4ERR_CB_PATH_DOWN = 10048,/* callback path down */ /* NFSv4.1 errors start here. */ NFS4ERR_BADIOMODE = 10049, NFS4ERR_BADLAYOUT = 10050, NFS4ERR_BAD_SESSION_DIGEST = 10051, NFS4ERR_BADSESSION = 10052, NFS4ERR_BADSLOT = 10053, NFS4ERR_COMPLETE_ALREADY = 10054, NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055, NFS4ERR_DELEG_ALREADY_WANTED = 10056, NFS4ERR_BACK_CHAN_BUSY = 10057,/*backchan reqs outstanding*/ NFS4ERR_LAYOUTTRYLATER = 10058, NFS4ERR_LAYOUTUNAVAILABLE = 10059, NFS4ERR_NOMATCHING_LAYOUT = 10060, NFS4ERR_RECALLCONFLICT = 10061, NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062, NFS4ERR_SEQ_MISORDERED = 10063,/* unexpected seq.ID in req*/ NFS4ERR_SEQUENCE_POS = 10064,/* [CB_]SEQ. op not 1st op */ NFS4ERR_REQ_TOO_BIG = 10065,/* request too big */ NFS4ERR_REP_TOO_BIG = 10066,/* reply too big */ NFS4ERR_REP_TOO_BIG_TO_CACHE =10067,/* rep. not all cached*/ NFS4ERR_RETRY_UNCACHED_REP =10068,/* retry & rep. uncached*/ NFS4ERR_UNSAFE_COMPOUND =10069,/* retry/recovery too hard */ NFS4ERR_TOO_MANY_OPS = 10070,/*too many ops in [CB_]COMP*/ NFS4ERR_OP_NOT_IN_SESSION =10071,/* op needs [CB_]SEQ. op */ NFS4ERR_HASH_ALG_UNSUPP = 10072, /* hash alg. not supp. */ /* Error 10073 is unused. */ NFS4ERR_CLIENTID_BUSY = 10074,/* clientid has state */ NFS4ERR_PNFS_IO_HOLE = 10075,/* IO to _SPARSE file hole */ NFS4ERR_SEQ_FALSE_RETRY= 10076,/* Retry != original req. */ NFS4ERR_BAD_HIGH_SLOT = 10077,/* req has bad highest_slot*/ NFS4ERR_DEADSESSION = 10078,/*new req sent to dead sess*/ NFS4ERR_ENCR_ALG_UNSUPP= 10079,/* encr alg. not supp. */ NFS4ERR_PNFS_NO_LAYOUT = 10080,/* I/O without a layout */ NFS4ERR_NOT_ONLY_OP = 10081,/* addl ops not allowed */ NFS4ERR_WRONG_CRED = 10082,/* op done by wrong cred */ NFS4ERR_WRONG_TYPE = 10083,/* op on wrong type object */ NFS4ERR_DIRDELEG_UNAVAIL=10084,/* delegation not avail. */ NFS4ERR_REJECT_DELEG = 10085,/* cb rejected delegation */ NFS4ERR_RETURNCONFLICT = 10086,/* layout get before return*/ NFS4ERR_DELEG_REVOKED = 10087 /* deleg./layout revoked */ }; /* * Basic data types */ typedef opaque attrlist4<>; typedef uint32_t bitmap4<>; typedef uint64_t changeid4; typedef uint64_t clientid4; typedef uint32_t count4; typedef uint64_t length4; typedef uint32_t mode4; typedef uint64_t nfs_cookie4; typedef opaque nfs_fh4; typedef uint64_t offset4; typedef uint32_t qop4; typedef opaque sec_oid4<>; typedef uint32_t sequenceid4; typedef uint32_t seqid4; typedef opaque sessionid4[NFS4_SESSIONID_SIZE]; typedef uint32_t slotid4; typedef opaque utf8string<>; typedef utf8string utf8str_cis; typedef utf8string utf8str_cs; typedef utf8string utf8str_mixed; typedef utf8str_cs component4; typedef utf8str_cs linktext4; typedef component4 pathname4<>; typedef opaque verifier4[NFS4_VERIFIER_SIZE]; /* * Timeval */ struct nfstime4 { int64_t seconds; uint32_t nseconds; }; enum time_how4 { SET_TO_SERVER_TIME4 = 0, SET_TO_CLIENT_TIME4 = 1 }; union settime4 switch (time_how4 set_it) { case SET_TO_CLIENT_TIME4: nfstime4 time; default: void; }; typedef uint32_t nfs_lease4; /* * File attribute definitions */ /* * FSID structure for major/minor */ struct fsid4 { uint64_t major; uint64_t minor; }; /* * Filesystem locations attribute * for relocation/migration and * related attributes. */ struct change_policy4 { uint64_t cp_major; uint64_t cp_minor; }; struct fs_location4 { utf8str_cis server<>; pathname4 rootpath; }; struct fs_locations4 { pathname4 fs_root; fs_location4 locations<>; }; /* * Various Access Control Entry definitions */ /* * Mask that indicates which * Access Control Entries are supported. * Values for the fattr4_aclsupport attribute. */ typedef uint32_t fattr4_aclsupport; const ACL4_SUPPORT_ALLOW_ACL = 0x00000001; const ACL4_SUPPORT_DENY_ACL = 0x00000002; const ACL4_SUPPORT_AUDIT_ACL = 0x00000004; const ACL4_SUPPORT_ALARM_ACL = 0x00000008; typedef uint32_t acetype4; /* * acetype4 values, others can be added as needed. */ const ACE4_ACCESS_ALLOWED_ACE_TYPE = 0x00000000; const ACE4_ACCESS_DENIED_ACE_TYPE = 0x00000001; const ACE4_SYSTEM_AUDIT_ACE_TYPE = 0x00000002; const ACE4_SYSTEM_ALARM_ACE_TYPE = 0x00000003; /* * ACE flag */ typedef uint32_t aceflag4; /* * ACE flag values */ const ACE4_FILE_INHERIT_ACE = 0x00000001; const ACE4_DIRECTORY_INHERIT_ACE = 0x00000002; const ACE4_NO_PROPAGATE_INHERIT_ACE = 0x00000004; const ACE4_INHERIT_ONLY_ACE = 0x00000008; const ACE4_SUCCESSFUL_ACCESS_ACE_FLAG = 0x00000010; const ACE4_FAILED_ACCESS_ACE_FLAG = 0x00000020; const ACE4_IDENTIFIER_GROUP = 0x00000040; const ACE4_INHERITED_ACE = 0x00000080; /* * ACE mask */ typedef uint32_t acemask4; /* * ACE mask values */ const ACE4_READ_DATA = 0x00000001; const ACE4_LIST_DIRECTORY = 0x00000001; const ACE4_WRITE_DATA = 0x00000002; const ACE4_ADD_FILE = 0x00000002; const ACE4_APPEND_DATA = 0x00000004; const ACE4_ADD_SUBDIRECTORY = 0x00000004; const ACE4_READ_NAMED_ATTRS = 0x00000008; const ACE4_WRITE_NAMED_ATTRS = 0x00000010; const ACE4_EXECUTE = 0x00000020; const ACE4_DELETE_CHILD = 0x00000040; const ACE4_READ_ATTRIBUTES = 0x00000080; const ACE4_WRITE_ATTRIBUTES = 0x00000100; const ACE4_WRITE_RETENTION = 0x00000200; const ACE4_WRITE_RETENTION_HOLD = 0x00000400; const ACE4_DELETE = 0x00010000; const ACE4_READ_ACL = 0x00020000; const ACE4_WRITE_ACL = 0x00040000; const ACE4_WRITE_OWNER = 0x00080000; const ACE4_SYNCHRONIZE = 0x00100000; /* * ACE4_GENERIC_READ -- defined as combination of * ACE4_READ_ACL | * ACE4_READ_DATA | * ACE4_READ_ATTRIBUTES | * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_READ = 0x00120081; /* * ACE4_GENERIC_WRITE -- defined as combination of * ACE4_READ_ACL | * ACE4_WRITE_DATA | * ACE4_WRITE_ATTRIBUTES | * ACE4_WRITE_ACL | * ACE4_APPEND_DATA | * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_WRITE = 0x00160106; /* * ACE4_GENERIC_EXECUTE -- defined as combination of * ACE4_READ_ACL * ACE4_READ_ATTRIBUTES * ACE4_EXECUTE * ACE4_SYNCHRONIZE */ const ACE4_GENERIC_EXECUTE = 0x001200A0; /* * Access Control Entry definition */ struct nfsace4 { acetype4 type; aceflag4 flag; acemask4 access_mask; utf8str_mixed who; }; /* * ACL flag */ typedef uint32_t aclflag4; /* * ACL flag values */ const ACL4_AUTO_INHERIT = 0x00000001; const ACL4_PROTECTED = 0x00000002; const ACL4_DEFAULTED = 0x00000004; /* * Version 4.1 Access Control List definition */ struct nfsacl41 { aclflag4 na41_flag; nfsace4 na41_aces<>; }; /* * Field definitions for the fattr4_mode * and fattr4_mode_set_masked attributes. */ const MODE4_SUID = 0x800; /* set user id on execution */ const MODE4_SGID = 0x400; /* set group id on execution */ const MODE4_SVTX = 0x200; /* save text even after use */ const MODE4_RUSR = 0x100; /* read permission: owner */ const MODE4_WUSR = 0x080; /* write permission: owner */ const MODE4_XUSR = 0x040; /* execute permission: owner */ const MODE4_RGRP = 0x020; /* read permission: group */ const MODE4_WGRP = 0x010; /* write permission: group */ const MODE4_XGRP = 0x008; /* execute permission: group */ const MODE4_ROTH = 0x004; /* read permission: other */ const MODE4_WOTH = 0x002; /* write permission: other */ const MODE4_XOTH = 0x001; /* execute permission: other */ /* * Masked mode for the mode_set_masked attribute. */ struct mode_masked4 { mode4 mm_value_to_set; /* Values of bits to set or reset in mode. */ mode4 mm_mask_bits; /* Mask of bits to set or reset in mode. */ }; /* * Special data/attribute associated with * file types NF4BLK and NF4CHR. */ struct specdata4 { uint32_t specdata1; /* major device number */ uint32_t specdata2; /* minor device number */ }; /* * Values for fattr4_fh_expire_type */ const FH4_PERSISTENT = 0x00000000; const FH4_NOEXPIRE_WITH_OPEN = 0x00000001; const FH4_VOLATILE_ANY = 0x00000002; const FH4_VOL_MIGRATION = 0x00000004; const FH4_VOL_RENAME = 0x00000008; struct netaddr4 { /* see struct rpcb in RFC 1833 */ string na_r_netid<>; /* network id */ string na_r_addr<>; /* universal address */ }; /* * data structures new to NFSv4.1 */ struct nfs_impl_id4 { utf8str_cis nii_domain; utf8str_cs nii_name; nfstime4 nii_date; }; /* * Stateid */ struct stateid4 { uint32_t seqid; opaque other[12]; }; enum layouttype4 { LAYOUT4_NFSV4_1_FILES = 0x1, LAYOUT4_OSD2_OBJECTS = 0x2, LAYOUT4_BLOCK_VOLUME = 0x3 }; struct layout_content4 { layouttype4 loc_type; opaque loc_body<>; }; %/* % * LAYOUT4_OSD2_OBJECTS loc_body description % * is in a separate .x file % */ % %/* % * LAYOUT4_BLOCK_VOLUME loc_body description % * is in a separate .x file % */ struct layouthint4 { layouttype4 loh_type; opaque loh_body<>; }; enum layoutiomode4 { LAYOUTIOMODE4_READ = 1, LAYOUTIOMODE4_RW = 2, LAYOUTIOMODE4_ANY = 3 }; struct layout4 { offset4 lo_offset; length4 lo_length; layoutiomode4 lo_iomode; layout_content4 lo_content; }; const NFS4_DEVICEID4_SIZE = 16; typedef opaque deviceid4[NFS4_DEVICEID4_SIZE]; struct device_addr4 { layouttype4 da_layout_type; opaque da_addr_body<>; }; struct layoutupdate4 { layouttype4 lou_type; opaque lou_body<>; }; % /* Constants used for LAYOUTRETURN and CB_LAYOUTRECALL */ const LAYOUT4_RET_REC_FILE = 1; const LAYOUT4_RET_REC_FSID = 2; const LAYOUT4_RET_REC_ALL = 3; % enum layoutreturn_type4 { LAYOUTRETURN4_FILE = LAYOUT4_RET_REC_FILE, LAYOUTRETURN4_FSID = LAYOUT4_RET_REC_FSID, LAYOUTRETURN4_ALL = LAYOUT4_RET_REC_ALL }; struct layoutreturn_file4 { offset4 lrf_offset; length4 lrf_length; stateid4 lrf_stateid; % /* layouttype4 specific data */ opaque lrf_body<>; }; union layoutreturn4 switch(layoutreturn_type4 lr_returntype) { case LAYOUTRETURN4_FILE: layoutreturn_file4 lr_layout; default: void; }; % enum fs4_status_type { STATUS4_FIXED = 1, STATUS4_UPDATED = 2, STATUS4_VERSIONED = 3, STATUS4_WRITABLE = 4, STATUS4_REFERRAL = 5 }; struct fs4_status { bool fss_absent; fs4_status_type fss_type; utf8str_cs fss_source; utf8str_cs fss_current; int32_t fss_age; nfstime4 fss_version; }; const TH4_READ_SIZE = 0; const TH4_WRITE_SIZE = 1; const TH4_READ_IOSIZE = 2; const TH4_WRITE_IOSIZE = 3; typedef length4 threshold4_read_size; typedef length4 threshold4_write_size; typedef length4 threshold4_read_iosize; typedef length4 threshold4_write_iosize; struct threshold_item4 { layouttype4 thi_layout_type; bitmap4 thi_hintset; opaque thi_hintlist<>; }; struct mdsthreshold4 { threshold_item4 mth_hints<>; }; const RET4_DURATION_INFINITE = 0xffffffffffffffff; struct retention_get4 { uint64_t rg_duration; nfstime4 rg_begin_time<1>; }; struct retention_set4 { bool rs_enable; uint64_t rs_duration<1>; }; const FSCHARSET_CAP4_CONTAINS_NON_UTF8 = 0x1; const FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 = 0x2; typedef uint32_t fs_charset_cap4; /* * NFSv4.1 attributes */ typedef bitmap4 fattr4_supported_attrs; typedef nfs_ftype4 fattr4_type; typedef uint32_t fattr4_fh_expire_type; typedef changeid4 fattr4_change; typedef uint64_t fattr4_size; typedef bool fattr4_link_support; typedef bool fattr4_symlink_support; typedef bool fattr4_named_attr; typedef fsid4 fattr4_fsid; typedef bool fattr4_unique_handles; typedef nfs_lease4 fattr4_lease_time; typedef nfsstat4 fattr4_rdattr_error; typedef nfsace4 fattr4_acl<>; typedef bool fattr4_archive; typedef bool fattr4_cansettime; typedef bool fattr4_case_insensitive; typedef bool fattr4_case_preserving; typedef bool fattr4_chown_restricted; typedef uint64_t fattr4_fileid; typedef uint64_t fattr4_files_avail; typedef nfs_fh4 fattr4_filehandle; typedef uint64_t fattr4_files_free; typedef uint64_t fattr4_files_total; typedef fs_locations4 fattr4_fs_locations; typedef bool fattr4_hidden; typedef bool fattr4_homogeneous; typedef uint64_t fattr4_maxfilesize; typedef uint32_t fattr4_maxlink; typedef uint32_t fattr4_maxname; typedef uint64_t fattr4_maxread; typedef uint64_t fattr4_maxwrite; typedef utf8str_cs fattr4_mimetype; typedef mode4 fattr4_mode; typedef mode_masked4 fattr4_mode_set_masked; typedef uint64_t fattr4_mounted_on_fileid; typedef bool fattr4_no_trunc; typedef uint32_t fattr4_numlinks; typedef utf8str_mixed fattr4_owner; typedef utf8str_mixed fattr4_owner_group; typedef uint64_t fattr4_quota_avail_hard; typedef uint64_t fattr4_quota_avail_soft; typedef uint64_t fattr4_quota_used; typedef specdata4 fattr4_rawdev; typedef uint64_t fattr4_space_avail; typedef uint64_t fattr4_space_free; typedef uint64_t fattr4_space_total; typedef uint64_t fattr4_space_used; typedef bool fattr4_system; typedef nfstime4 fattr4_time_access; typedef settime4 fattr4_time_access_set; typedef nfstime4 fattr4_time_backup; typedef nfstime4 fattr4_time_create; typedef nfstime4 fattr4_time_delta; typedef nfstime4 fattr4_time_metadata; typedef nfstime4 fattr4_time_modify; typedef settime4 fattr4_time_modify_set; /* * attributes new to NFSv4.1 */ typedef bitmap4 fattr4_suppattr_exclcreat; typedef nfstime4 fattr4_dir_notif_delay; typedef nfstime4 fattr4_dirent_notif_delay; typedef layouttype4 fattr4_fs_layout_types<>; typedef fs4_status fattr4_fs_status; typedef fs_charset_cap4 fattr4_fs_charset_cap; typedef uint32_t fattr4_layout_alignment; typedef uint32_t fattr4_layout_blksize; typedef layouthint4 fattr4_layout_hint; typedef layouttype4 fattr4_layout_types<>; typedef mdsthreshold4 fattr4_mdsthreshold; typedef retention_get4 fattr4_retention_get; typedef retention_set4 fattr4_retention_set; typedef retention_get4 fattr4_retentevt_get; typedef retention_set4 fattr4_retentevt_set; typedef uint64_t fattr4_retention_hold; typedef nfsacl41 fattr4_dacl; typedef nfsacl41 fattr4_sacl; typedef change_policy4 fattr4_change_policy; %/* % * REQUIRED Attributes % */ const FATTR4_SUPPORTED_ATTRS = 0; const FATTR4_TYPE = 1; const FATTR4_FH_EXPIRE_TYPE = 2; const FATTR4_CHANGE = 3; const FATTR4_SIZE = 4; const FATTR4_LINK_SUPPORT = 5; const FATTR4_SYMLINK_SUPPORT = 6; const FATTR4_NAMED_ATTR = 7; const FATTR4_FSID = 8; const FATTR4_UNIQUE_HANDLES = 9; const FATTR4_LEASE_TIME = 10; const FATTR4_RDATTR_ERROR = 11; const FATTR4_FILEHANDLE = 19; %/* new to NFSV4.1 */ const FATTR4_SUPPATTR_EXCLCREAT = 75; %/* % * RECOMMENDED Attributes % */ const FATTR4_ACL = 12; const FATTR4_ACLSUPPORT = 13; const FATTR4_ARCHIVE = 14; const FATTR4_CANSETTIME = 15; const FATTR4_CASE_INSENSITIVE = 16; const FATTR4_CASE_PRESERVING = 17; const FATTR4_CHOWN_RESTRICTED = 18; const FATTR4_FILEID = 20; const FATTR4_FILES_AVAIL = 21; const FATTR4_FILES_FREE = 22; const FATTR4_FILES_TOTAL = 23; const FATTR4_FS_LOCATIONS = 24; const FATTR4_HIDDEN = 25; const FATTR4_HOMOGENEOUS = 26; const FATTR4_MAXFILESIZE = 27; const FATTR4_MAXLINK = 28; const FATTR4_MAXNAME = 29; const FATTR4_MAXREAD = 30; const FATTR4_MAXWRITE = 31; const FATTR4_MIMETYPE = 32; const FATTR4_MODE = 33; const FATTR4_NO_TRUNC = 34; const FATTR4_NUMLINKS = 35; const FATTR4_OWNER = 36; const FATTR4_OWNER_GROUP = 37; const FATTR4_QUOTA_AVAIL_HARD = 38; const FATTR4_QUOTA_AVAIL_SOFT = 39; const FATTR4_QUOTA_USED = 40; const FATTR4_RAWDEV = 41; const FATTR4_SPACE_AVAIL = 42; const FATTR4_SPACE_FREE = 43; const FATTR4_SPACE_TOTAL = 44; const FATTR4_SPACE_USED = 45; const FATTR4_SYSTEM = 46; const FATTR4_TIME_ACCESS = 47; const FATTR4_TIME_ACCESS_SET = 48; const FATTR4_TIME_BACKUP = 49; const FATTR4_TIME_CREATE = 50; const FATTR4_TIME_DELTA = 51; const FATTR4_TIME_METADATA = 52; const FATTR4_TIME_MODIFY = 53; const FATTR4_TIME_MODIFY_SET = 54; const FATTR4_MOUNTED_ON_FILEID = 55; % %/* new to NFSV4.1 */ % const FATTR4_DIR_NOTIF_DELAY = 56; const FATTR4_DIRENT_NOTIF_DELAY = 57; const FATTR4_DACL = 58; const FATTR4_SACL = 59; const FATTR4_CHANGE_POLICY = 60; const FATTR4_FS_STATUS = 61; const FATTR4_FS_LAYOUT_TYPES = 62; const FATTR4_LAYOUT_HINT = 63; const FATTR4_LAYOUT_TYPES = 64; const FATTR4_LAYOUT_BLKSIZE = 65; const FATTR4_LAYOUT_ALIGNMENT = 66; const FATTR4_FS_LOCATIONS_INFO = 67; const FATTR4_MDSTHRESHOLD = 68; const FATTR4_RETENTION_GET = 69; const FATTR4_RETENTION_SET = 70; const FATTR4_RETENTEVT_GET = 71; const FATTR4_RETENTEVT_SET = 72; const FATTR4_RETENTION_HOLD = 73; const FATTR4_MODE_SET_MASKED = 74; const FATTR4_FS_CHARSET_CAP = 76; /* * File attribute container */ struct fattr4 { bitmap4 attrmask; attrlist4 attr_vals; }; /* * Change info for the client */ struct change_info4 { bool atomic; changeid4 before; changeid4 after; }; typedef netaddr4 clientaddr4; /* * Callback program info as provided by the client */ struct cb_client4 { uint32_t cb_program; netaddr4 cb_location; }; /* * NFSv4.0 Long Hand Client ID */ struct nfs_client_id4 { verifier4 verifier; opaque id; }; /* * NFSv4.1 Client Owner (aka long hand client ID) */ struct client_owner4 { verifier4 co_verifier; opaque co_ownerid; }; /* * NFSv4.1 server Owner */ struct server_owner4 { uint64_t so_minor_id; opaque so_major_id; }; struct state_owner4 { clientid4 clientid; opaque owner; }; typedef state_owner4 open_owner4; typedef state_owner4 lock_owner4; enum nfs_lock_type4 { READ_LT = 1, WRITE_LT = 2, READW_LT = 3, /* blocking read */ WRITEW_LT = 4 /* blocking write */ }; % %/* Input for computing subkeys */ enum ssv_subkey4 { SSV4_SUBKEY_MIC_I2T = 1, SSV4_SUBKEY_MIC_T2I = 2, SSV4_SUBKEY_SEAL_I2T = 3, SSV4_SUBKEY_SEAL_T2I = 4 }; % % %/* Input for computing smt_hmac */ struct ssv_mic_plain_tkn4 { uint32_t smpt_ssv_seq; opaque smpt_orig_plain<>; }; % % %/* SSV GSS PerMsgToken token */ struct ssv_mic_tkn4 { uint32_t smt_ssv_seq; opaque smt_hmac<>; }; % % %/* Input for computing ssct_encr_data and ssct_hmac */ struct ssv_seal_plain_tkn4 { opaque sspt_confounder<>; uint32_t sspt_ssv_seq; opaque sspt_orig_plain<>; opaque sspt_pad<>; }; % % %/* SSV GSS SealedMessage token */ struct ssv_seal_cipher_tkn4 { uint32_t ssct_ssv_seq; opaque ssct_iv<>; opaque ssct_encr_data<>; opaque ssct_hmac<>; }; % /* * Defines an individual server replica */ struct fs_locations_server4 { int32_t fls_currency; opaque fls_info<>; utf8str_cis fls_server; }; /* * Byte indices of items within * fls_info: flag fields, class numbers, * bytes indicating ranks and orders. */ const FSLI4BX_GFLAGS = 0; const FSLI4BX_TFLAGS = 1; const FSLI4BX_CLSIMUL = 2; const FSLI4BX_CLHANDLE = 3; const FSLI4BX_CLFILEID = 4; const FSLI4BX_CLWRITEVER = 5; const FSLI4BX_CLCHANGE = 6; const FSLI4BX_CLREADDIR = 7; const FSLI4BX_READRANK = 8; const FSLI4BX_WRITERANK = 9; const FSLI4BX_READORDER = 10; const FSLI4BX_WRITEORDER = 11; /* * Bits defined within the general flag byte. */ const FSLI4GF_WRITABLE = 0x01; const FSLI4GF_CUR_REQ = 0x02; const FSLI4GF_ABSENT = 0x04; const FSLI4GF_GOING = 0x08; const FSLI4GF_SPLIT = 0x10; /* * Bits defined within the transport flag byte. */ const FSLI4TF_RDMA = 0x01; /* * Defines a set of replicas sharing * a common value of the root path * with in the corresponding * single-server namespaces. */ struct fs_locations_item4 { fs_locations_server4 fli_entries<>; pathname4 fli_rootpath; }; /* * Defines the overall structure of * the fs_locations_info attribute. */ struct fs_locations_info4 { uint32_t fli_flags; int32_t fli_valid_for; pathname4 fli_fs_root; fs_locations_item4 fli_items<>; }; /* * Flag bits in fli_flags. */ const FSLI4IF_VAR_SUB = 0x00000001; typedef fs_locations_info4 fattr4_fs_locations_info; const NFL4_UFLG_MASK = 0x0000003F; const NFL4_UFLG_DENSE = 0x00000001; const NFL4_UFLG_COMMIT_THRU_MDS = 0x00000002; const NFL4_UFLG_STRIPE_UNIT_SIZE_MASK = 0xFFFFFFC0; typedef uint32_t nfl_util4; % enum filelayout_hint_care4 { NFLH4_CARE_DENSE = NFL4_UFLG_DENSE, NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS, NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040, NFLH4_CARE_STRIPE_COUNT = 0x00000080 }; % %/* Encoded in the loh_body field of data type layouthint4: */ % struct nfsv4_1_file_layouthint4 { uint32_t nflh_care; nfl_util4 nflh_util; count4 nflh_stripe_count; }; % % typedef netaddr4 multipath_list4<>; % %/* % * Encoded in the da_addr_body field of % * data type device_addr4: % */ struct nfsv4_1_file_layout_ds_addr4 { uint32_t nflda_stripe_indices<>; multipath_list4 nflda_multipath_ds_list<>; }; % % %/* % * Encoded in the loc_body field of % * data type layout_content4: % */ struct nfsv4_1_file_layout4 { deviceid4 nfl_deviceid; nfl_util4 nfl_util; uint32_t nfl_first_stripe_index; offset4 nfl_pattern_offset; nfs_fh4 nfl_fh_list<>; }; % %/* % * Encoded in the lou_body field of data type layoutupdate4: % * Nothing. lou_body is a zero length array of bytes. % */ % %/* % * Encoded in the lrf_body field of % * data type layoutreturn_file4: % * Nothing. lrf_body is a zero length array of bytes. % */ % const ACCESS4_READ = 0x00000001; const ACCESS4_LOOKUP = 0x00000002; const ACCESS4_MODIFY = 0x00000004; const ACCESS4_EXTEND = 0x00000008; const ACCESS4_DELETE = 0x00000010; const ACCESS4_EXECUTE = 0x00000020; struct ACCESS4args { /* CURRENT_FH: object */ uint32_t access; }; struct ACCESS4resok { uint32_t supported; uint32_t access; }; union ACCESS4res switch (nfsstat4 status) { case NFS4_OK: ACCESS4resok resok4; default: void; }; struct CLOSE4args { /* CURRENT_FH: object */ seqid4 seqid; stateid4 open_stateid; }; union CLOSE4res switch (nfsstat4 status) { case NFS4_OK: stateid4 open_stateid; default: void; }; struct COMMIT4args { /* CURRENT_FH: file */ offset4 offset; count4 count; }; struct COMMIT4resok { verifier4 writeverf; }; union COMMIT4res switch (nfsstat4 status) { case NFS4_OK: COMMIT4resok resok4; default: void; }; union createtype4 switch (nfs_ftype4 type) { case NF4LNK: linktext4 linkdata; case NF4BLK: case NF4CHR: specdata4 devdata; case NF4SOCK: case NF4FIFO: case NF4DIR: void; default: void; /* server should return NFS4ERR_BADTYPE */ }; struct CREATE4args { /* CURRENT_FH: directory for creation */ createtype4 objtype; component4 objname; fattr4 createattrs; }; struct CREATE4resok { change_info4 cinfo; bitmap4 attrset; /* attributes set */ }; union CREATE4res switch (nfsstat4 status) { case NFS4_OK: /* new CURRENTFH: created object */ CREATE4resok resok4; default: void; }; struct DELEGPURGE4args { clientid4 clientid; }; struct DELEGPURGE4res { nfsstat4 status; }; struct DELEGRETURN4args { /* CURRENT_FH: delegated object */ stateid4 deleg_stateid; }; struct DELEGRETURN4res { nfsstat4 status; }; struct GETATTR4args { /* CURRENT_FH: object */ bitmap4 attr_request; }; struct GETATTR4resok { fattr4 obj_attributes; }; union GETATTR4res switch (nfsstat4 status) { case NFS4_OK: GETATTR4resok resok4; default: void; }; struct GETFH4resok { nfs_fh4 object; }; union GETFH4res switch (nfsstat4 status) { case NFS4_OK: GETFH4resok resok4; default: void; }; struct LINK4args { /* SAVED_FH: source object */ /* CURRENT_FH: target directory */ component4 newname; }; struct LINK4resok { change_info4 cinfo; }; union LINK4res switch (nfsstat4 status) { case NFS4_OK: LINK4resok resok4; default: void; }; /* * For LOCK, transition from open_stateid and lock_owner * to a lock stateid. */ struct open_to_lock_owner4 { seqid4 open_seqid; stateid4 open_stateid; seqid4 lock_seqid; lock_owner4 lock_owner; }; /* * For LOCK, existing lock stateid continues to request new * file lock for the same lock_owner and open_stateid. */ struct exist_lock_owner4 { stateid4 lock_stateid; seqid4 lock_seqid; }; union locker4 switch (bool new_lock_owner) { case TRUE: open_to_lock_owner4 open_owner; case FALSE: exist_lock_owner4 lock_owner; }; /* * LOCK/LOCKT/LOCKU: Record lock management */ struct LOCK4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; bool reclaim; offset4 offset; length4 length; locker4 locker; }; struct LOCK4denied { offset4 offset; length4 length; nfs_lock_type4 locktype; lock_owner4 owner; }; struct LOCK4resok { stateid4 lock_stateid; }; union LOCK4res switch (nfsstat4 status) { case NFS4_OK: LOCK4resok resok4; case NFS4ERR_DENIED: LOCK4denied denied; default: void; }; struct LOCKT4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; offset4 offset; length4 length; lock_owner4 owner; }; union LOCKT4res switch (nfsstat4 status) { case NFS4ERR_DENIED: LOCK4denied denied; case NFS4_OK: void; default: void; }; struct LOCKU4args { /* CURRENT_FH: file */ nfs_lock_type4 locktype; seqid4 seqid; stateid4 lock_stateid; offset4 offset; length4 length; }; union LOCKU4res switch (nfsstat4 status) { case NFS4_OK: stateid4 lock_stateid; default: void; }; struct LOOKUP4args { /* CURRENT_FH: directory */ component4 objname; }; struct LOOKUP4res { /* New CURRENT_FH: object */ nfsstat4 status; }; struct LOOKUPP4res { /* new CURRENT_FH: parent directory */ nfsstat4 status; }; struct NVERIFY4args { /* CURRENT_FH: object */ fattr4 obj_attributes; }; struct NVERIFY4res { nfsstat4 status; }; /* * Various definitions for OPEN */ enum createmode4 { UNCHECKED4 = 0, GUARDED4 = 1, /* Deprecated in NFSv4.1. */ EXCLUSIVE4 = 2, /* * New to NFSv4.1. If session is persistent, * GUARDED4 MUST be used. Otherwise, use * EXCLUSIVE4_1 instead of EXCLUSIVE4. */ EXCLUSIVE4_1 = 3 }; struct creatverfattr { verifier4 cva_verf; fattr4 cva_attrs; }; union createhow4 switch (createmode4 mode) { case UNCHECKED4: case GUARDED4: fattr4 createattrs; case EXCLUSIVE4: verifier4 createverf; case EXCLUSIVE4_1: creatverfattr ch_createboth; }; enum opentype4 { OPEN4_NOCREATE = 0, OPEN4_CREATE = 1 }; union openflag4 switch (opentype4 opentype) { case OPEN4_CREATE: createhow4 how; default: void; }; /* Next definitions used for OPEN delegation */ enum limit_by4 { NFS_LIMIT_SIZE = 1, NFS_LIMIT_BLOCKS = 2 /* others as needed */ }; struct nfs_modified_limit4 { uint32_t num_blocks; uint32_t bytes_per_block; }; union nfs_space_limit4 switch (limit_by4 limitby) { /* limit specified as file size */ case NFS_LIMIT_SIZE: uint64_t filesize; /* limit specified by number of blocks */ case NFS_LIMIT_BLOCKS: nfs_modified_limit4 mod_blocks; } ; /* * Share Access and Deny constants for open argument */ const OPEN4_SHARE_ACCESS_READ = 0x00000001; const OPEN4_SHARE_ACCESS_WRITE = 0x00000002; const OPEN4_SHARE_ACCESS_BOTH = 0x00000003; const OPEN4_SHARE_DENY_NONE = 0x00000000; const OPEN4_SHARE_DENY_READ = 0x00000001; const OPEN4_SHARE_DENY_WRITE = 0x00000002; const OPEN4_SHARE_DENY_BOTH = 0x00000003; /* new flags for share_access field of OPEN4args */ const OPEN4_SHARE_ACCESS_WANT_DELEG_MASK = 0xFF00; const OPEN4_SHARE_ACCESS_WANT_NO_PREFERENCE = 0x0000; const OPEN4_SHARE_ACCESS_WANT_READ_DELEG = 0x0100; const OPEN4_SHARE_ACCESS_WANT_WRITE_DELEG = 0x0200; const OPEN4_SHARE_ACCESS_WANT_ANY_DELEG = 0x0300; const OPEN4_SHARE_ACCESS_WANT_NO_DELEG = 0x0400; const OPEN4_SHARE_ACCESS_WANT_CANCEL = 0x0500; const OPEN4_SHARE_ACCESS_WANT_SIGNAL_DELEG_WHEN_RESRC_AVAIL = 0x10000; const OPEN4_SHARE_ACCESS_WANT_PUSH_DELEG_WHEN_UNCONTENDED = 0x20000; enum open_delegation_type4 { OPEN_DELEGATE_NONE = 0, OPEN_DELEGATE_READ = 1, OPEN_DELEGATE_WRITE = 2, OPEN_DELEGATE_NONE_EXT = 3 /* new to v4.1 */ }; enum open_claim_type4 { /* * Not a reclaim. */ CLAIM_NULL = 0, CLAIM_PREVIOUS = 1, CLAIM_DELEGATE_CUR = 2, CLAIM_DELEGATE_PREV = 3, /* * Not a reclaim. * * Like CLAIM_NULL, but object identified * by the current filehandle. */ CLAIM_FH = 4, /* new to v4.1 */ /* * Like CLAIM_DELEGATE_CUR, but object identified * by current filehandle. */ CLAIM_DELEG_CUR_FH = 5, /* new to v4.1 */ /* * Like CLAIM_DELEGATE_PREV, but object identified * by current filehandle. */ CLAIM_DELEG_PREV_FH = 6 /* new to v4.1 */ }; struct open_claim_delegate_cur4 { stateid4 delegate_stateid; component4 file; }; union open_claim4 switch (open_claim_type4 claim) { /* * No special rights to file. * Ordinary OPEN of the specified file. */ case CLAIM_NULL: /* CURRENT_FH: directory */ component4 file; /* * Right to the file established by an * open previous to server reboot. File * identified by filehandle obtained at * that time rather than by name. */ case CLAIM_PREVIOUS: /* CURRENT_FH: file being reclaimed */ open_delegation_type4 delegate_type; /* * Right to file based on a delegation * granted by the server. File is * specified by name. */ case CLAIM_DELEGATE_CUR: /* CURRENT_FH: directory */ open_claim_delegate_cur4 delegate_cur_info; /* * Right to file based on a delegation * granted to a previous boot instance * of the client. File is specified by name. */ case CLAIM_DELEGATE_PREV: /* CURRENT_FH: directory */ component4 file_delegate_prev; /* * Like CLAIM_NULL. No special rights * to file. Ordinary OPEN of the * specified file by current filehandle. */ case CLAIM_FH: /* new to v4.1 */ /* CURRENT_FH: regular file to open */ void; /* * Like CLAIM_DELEGATE_PREV. Right to file based on a * delegation granted to a previous boot * instance of the client. File is identified by * by filehandle. */ case CLAIM_DELEG_PREV_FH: /* new to v4.1 */ /* CURRENT_FH: file being opened */ void; /* * Like CLAIM_DELEGATE_CUR. Right to file based on * a delegation granted by the server. * File is identified by filehandle. */ case CLAIM_DELEG_CUR_FH: /* new to v4.1 */ /* CURRENT_FH: file being opened */ stateid4 oc_delegate_stateid; }; /* * OPEN: Open a file, potentially receiving an open delegation */ struct OPEN4args { seqid4 seqid; uint32_t share_access; uint32_t share_deny; open_owner4 owner; openflag4 openhow; open_claim4 claim; }; struct open_read_delegation4 { stateid4 stateid; /* Stateid for delegation*/ bool recall; /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */ nfsace4 permissions; /* Defines users who don't need an ACCESS call to open for read */ }; struct open_write_delegation4 { stateid4 stateid; /* Stateid for delegation */ bool recall; /* Pre-recalled flag for delegations obtained by reclaim (CLAIM_PREVIOUS) */ nfs_space_limit4 space_limit; /* Defines condition that the client must check to determine whether the file needs to be flushed to the server on close. */ nfsace4 permissions; /* Defines users who don't need an ACCESS call as part of a delegated open. */ }; enum why_no_delegation4 { /* new to v4.1 */ WND4_NOT_WANTED = 0, WND4_CONTENTION = 1, WND4_RESOURCE = 2, WND4_NOT_SUPP_FTYPE = 3, WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, WND4_NOT_SUPP_UPGRADE = 5, WND4_NOT_SUPP_DOWNGRADE = 6, WND4_CANCELLED = 7, WND4_IS_DIR = 8 }; union open_none_delegation4 /* new to v4.1 */ switch (why_no_delegation4 ond_why) { case WND4_CONTENTION: bool ond_server_will_push_deleg; case WND4_RESOURCE: bool ond_server_will_signal_avail; default: void; }; union open_delegation4 switch (open_delegation_type4 delegation_type) { case OPEN_DELEGATE_NONE: void; case OPEN_DELEGATE_READ: open_read_delegation4 read; case OPEN_DELEGATE_WRITE: open_write_delegation4 write; case OPEN_DELEGATE_NONE_EXT: /* new to v4.1 */ open_none_delegation4 od_whynone; }; /* * Result flags */ /* Client must confirm open */ const OPEN4_RESULT_CONFIRM = 0x00000002; /* Type of file locking behavior at the server */ const OPEN4_RESULT_LOCKTYPE_POSIX = 0x00000004; /* Server will preserve file if removed while open */ const OPEN4_RESULT_PRESERVE_UNLINKED = 0x00000008; /* * Server may use CB_NOTIFY_LOCK on locks * derived from this open */ const OPEN4_RESULT_MAY_NOTIFY_LOCK = 0x00000020; struct OPEN4resok { stateid4 stateid; /* Stateid for open */ change_info4 cinfo; /* Directory Change Info */ uint32_t rflags; /* Result flags */ bitmap4 attrset; /* attribute set for create*/ open_delegation4 delegation; /* Info on any open delegation */ }; union OPEN4res switch (nfsstat4 status) { case NFS4_OK: /* New CURRENT_FH: opened file */ OPEN4resok resok4; default: void; }; struct OPENATTR4args { /* CURRENT_FH: object */ bool createdir; }; struct OPENATTR4res { /* * If status is NFS4_OK, * new CURRENT_FH: named attribute * directory */ nfsstat4 status; }; /* obsolete in NFSv4.1 */ struct OPEN_CONFIRM4args { /* CURRENT_FH: opened file */ stateid4 open_stateid; seqid4 seqid; }; struct OPEN_CONFIRM4resok { stateid4 open_stateid; }; union OPEN_CONFIRM4res switch (nfsstat4 status) { case NFS4_OK: OPEN_CONFIRM4resok resok4; default: void; }; struct OPEN_DOWNGRADE4args { /* CURRENT_FH: opened file */ stateid4 open_stateid; seqid4 seqid; uint32_t share_access; uint32_t share_deny; }; struct OPEN_DOWNGRADE4resok { stateid4 open_stateid; }; union OPEN_DOWNGRADE4res switch(nfsstat4 status) { case NFS4_OK: OPEN_DOWNGRADE4resok resok4; default: void; }; struct PUTFH4args { nfs_fh4 object; }; struct PUTFH4res { /* * If status is NFS4_OK, * new CURRENT_FH: argument to PUTFH */ nfsstat4 status; }; struct PUTPUBFH4res { /* * If status is NFS4_OK, * new CURRENT_FH: public fh */ nfsstat4 status; }; struct PUTROOTFH4res { /* * If status is NFS4_OK, * new CURRENT_FH: root fh */ nfsstat4 status; }; struct READ4args { /* CURRENT_FH: file */ stateid4 stateid; offset4 offset; count4 count; }; struct READ4resok { bool eof; opaque data<>; }; union READ4res switch (nfsstat4 status) { case NFS4_OK: READ4resok resok4; default: void; }; struct READDIR4args { /* CURRENT_FH: directory */ nfs_cookie4 cookie; verifier4 cookieverf; count4 dircount; count4 maxcount; bitmap4 attr_request; }; struct entry4 { nfs_cookie4 cookie; component4 name; fattr4 attrs; entry4 *nextentry; }; struct dirlist4 { entry4 *entries; bool eof; }; struct READDIR4resok { verifier4 cookieverf; dirlist4 reply; }; union READDIR4res switch (nfsstat4 status) { case NFS4_OK: READDIR4resok resok4; default: void; }; struct READLINK4resok { linktext4 link; }; union READLINK4res switch (nfsstat4 status) { case NFS4_OK: READLINK4resok resok4; default: void; }; struct REMOVE4args { /* CURRENT_FH: directory */ component4 target; }; struct REMOVE4resok { change_info4 cinfo; }; union REMOVE4res switch (nfsstat4 status) { case NFS4_OK: REMOVE4resok resok4; default: void; }; struct RENAME4args { /* SAVED_FH: source directory */ component4 oldname; /* CURRENT_FH: target directory */ component4 newname; }; struct RENAME4resok { change_info4 source_cinfo; change_info4 target_cinfo; }; union RENAME4res switch (nfsstat4 status) { case NFS4_OK: RENAME4resok resok4; default: void; }; /* Obsolete in NFSv4.1 */ struct RENEW4args { clientid4 clientid; }; struct RENEW4res { nfsstat4 status; }; struct RESTOREFH4res { /* * If status is NFS4_OK, * new CURRENT_FH: value of saved fh */ nfsstat4 status; }; struct SAVEFH4res { /* * If status is NFS4_OK, * new SAVED_FH: value of current fh */ nfsstat4 status; }; struct SECINFO4args { /* CURRENT_FH: directory */ component4 name; }; /* * From RFC 2203 */ enum rpc_gss_svc_t { RPC_GSS_SVC_NONE = 1, RPC_GSS_SVC_INTEGRITY = 2, RPC_GSS_SVC_PRIVACY = 3 }; struct rpcsec_gss_info { sec_oid4 oid; qop4 qop; rpc_gss_svc_t service; }; /* RPCSEC_GSS has a value of '6' - See RFC 2203 */ union secinfo4 switch (uint32_t flavor) { case RPCSEC_GSS: rpcsec_gss_info flavor_info; default: void; }; typedef secinfo4 SECINFO4resok<>; union SECINFO4res switch (nfsstat4 status) { case NFS4_OK: /* CURRENTFH: consumed */ SECINFO4resok resok4; default: void; }; struct SETATTR4args { /* CURRENT_FH: target object */ stateid4 stateid; fattr4 obj_attributes; }; struct SETATTR4res { nfsstat4 status; bitmap4 attrsset; }; /* Obsolete in NFSv4.1 */ struct SETCLIENTID4args { nfs_client_id4 client; cb_client4 callback; uint32_t callback_ident; }; struct SETCLIENTID4resok { clientid4 clientid; verifier4 setclientid_confirm; }; union SETCLIENTID4res switch (nfsstat4 status) { case NFS4_OK: SETCLIENTID4resok resok4; case NFS4ERR_CLID_INUSE: clientaddr4 client_using; default: void; }; /* Obsolete in NFSv4.1 */ struct SETCLIENTID_CONFIRM4args { clientid4 clientid; verifier4 setclientid_confirm; }; struct SETCLIENTID_CONFIRM4res { nfsstat4 status; }; struct VERIFY4args { /* CURRENT_FH: object */ fattr4 obj_attributes; }; struct VERIFY4res { nfsstat4 status; }; enum stable_how4 { UNSTABLE4 = 0, DATA_SYNC4 = 1, FILE_SYNC4 = 2 }; struct WRITE4args { /* CURRENT_FH: file */ stateid4 stateid; offset4 offset; stable_how4 stable; opaque data<>; }; struct WRITE4resok { count4 count; stable_how4 committed; verifier4 writeverf; }; union WRITE4res switch (nfsstat4 status) { case NFS4_OK: WRITE4resok resok4; default: void; }; /* Obsolete in NFSv4.1 */ struct RELEASE_LOCKOWNER4args { lock_owner4 lock_owner; }; struct RELEASE_LOCKOWNER4res { nfsstat4 status; }; struct ILLEGAL4res { nfsstat4 status; }; typedef opaque gsshandle4_t<>; struct gss_cb_handles4 { rpc_gss_svc_t gcbp_service; /* RFC 2203 */ gsshandle4_t gcbp_handle_from_server; gsshandle4_t gcbp_handle_from_client; }; union callback_sec_parms4 switch (uint32_t cb_secflavor) { case AUTH_NONE: void; case AUTH_SYS: authsys_parms cbsp_sys_cred; /* RFC 1831 */ case RPCSEC_GSS: gss_cb_handles4 cbsp_gss_handles; }; struct BACKCHANNEL_CTL4args { uint32_t bca_cb_program; callback_sec_parms4 bca_sec_parms<>; }; struct BACKCHANNEL_CTL4res { nfsstat4 bcr_status; }; enum channel_dir_from_client4 { CDFC4_FORE = 0x1, CDFC4_BACK = 0x2, CDFC4_FORE_OR_BOTH = 0x3, CDFC4_BACK_OR_BOTH = 0x7 }; struct BIND_CONN_TO_SESSION4args { sessionid4 bctsa_sessid; channel_dir_from_client4 bctsa_dir; bool bctsa_use_conn_in_rdma_mode; }; enum channel_dir_from_server4 { CDFS4_FORE = 0x1, CDFS4_BACK = 0x2, CDFS4_BOTH = 0x3 }; struct BIND_CONN_TO_SESSION4resok { sessionid4 bctsr_sessid; channel_dir_from_server4 bctsr_dir; bool bctsr_use_conn_in_rdma_mode; }; union BIND_CONN_TO_SESSION4res switch (nfsstat4 bctsr_status) { case NFS4_OK: BIND_CONN_TO_SESSION4resok bctsr_resok4; default: void; }; const EXCHGID4_FLAG_SUPP_MOVED_REFER = 0x00000001; const EXCHGID4_FLAG_SUPP_MOVED_MIGR = 0x00000002; const EXCHGID4_FLAG_BIND_PRINC_STATEID = 0x00000100; const EXCHGID4_FLAG_USE_NON_PNFS = 0x00010000; const EXCHGID4_FLAG_USE_PNFS_MDS = 0x00020000; const EXCHGID4_FLAG_USE_PNFS_DS = 0x00040000; const EXCHGID4_FLAG_MASK_PNFS = 0x00070000; const EXCHGID4_FLAG_UPD_CONFIRMED_REC_A = 0x40000000; const EXCHGID4_FLAG_CONFIRMED_R = 0x80000000; struct state_protect_ops4 { bitmap4 spo_must_enforce; bitmap4 spo_must_allow; }; struct ssv_sp_parms4 { state_protect_ops4 ssp_ops; sec_oid4 ssp_hash_algs<>; sec_oid4 ssp_encr_algs<>; uint32_t ssp_window; uint32_t ssp_num_gss_handles; }; enum state_protect_how4 { SP4_NONE = 0, SP4_MACH_CRED = 1, SP4_SSV = 2 }; union state_protect4_a switch(state_protect_how4 spa_how) { case SP4_NONE: void; case SP4_MACH_CRED: state_protect_ops4 spa_mach_ops; case SP4_SSV: ssv_sp_parms4 spa_ssv_parms; }; struct EXCHANGE_ID4args { client_owner4 eia_clientowner; uint32_t eia_flags; state_protect4_a eia_state_protect; nfs_impl_id4 eia_client_impl_id<1>; }; struct ssv_prot_info4 { state_protect_ops4 spi_ops; uint32_t spi_hash_alg; uint32_t spi_encr_alg; uint32_t spi_ssv_len; uint32_t spi_window; gsshandle4_t spi_handles<>; }; union state_protect4_r switch(state_protect_how4 spr_how) { case SP4_NONE: void; case SP4_MACH_CRED: state_protect_ops4 spr_mach_ops; case SP4_SSV: ssv_prot_info4 spr_ssv_info; }; struct EXCHANGE_ID4resok { clientid4 eir_clientid; sequenceid4 eir_sequenceid; uint32_t eir_flags; state_protect4_r eir_state_protect; server_owner4 eir_server_owner; opaque eir_server_scope; nfs_impl_id4 eir_server_impl_id<1>; }; union EXCHANGE_ID4res switch (nfsstat4 eir_status) { case NFS4_OK: EXCHANGE_ID4resok eir_resok4; default: void; }; struct channel_attrs4 { count4 ca_headerpadsize; count4 ca_maxrequestsize; count4 ca_maxresponsesize; count4 ca_maxresponsesize_cached; count4 ca_maxoperations; count4 ca_maxrequests; uint32_t ca_rdma_ird<1>; }; const CREATE_SESSION4_FLAG_PERSIST = 0x00000001; const CREATE_SESSION4_FLAG_CONN_BACK_CHAN = 0x00000002; const CREATE_SESSION4_FLAG_CONN_RDMA = 0x00000004; struct CREATE_SESSION4args { clientid4 csa_clientid; sequenceid4 csa_sequence; uint32_t csa_flags; channel_attrs4 csa_fore_chan_attrs; channel_attrs4 csa_back_chan_attrs; uint32_t csa_cb_program; callback_sec_parms4 csa_sec_parms<>; }; struct CREATE_SESSION4resok { sessionid4 csr_sessionid; sequenceid4 csr_sequence; uint32_t csr_flags; channel_attrs4 csr_fore_chan_attrs; channel_attrs4 csr_back_chan_attrs; }; union CREATE_SESSION4res switch (nfsstat4 csr_status) { case NFS4_OK: CREATE_SESSION4resok csr_resok4; default: void; }; struct DESTROY_SESSION4args { sessionid4 dsa_sessionid; }; struct DESTROY_SESSION4res { nfsstat4 dsr_status; }; struct FREE_STATEID4args { stateid4 fsa_stateid; }; struct FREE_STATEID4res { nfsstat4 fsr_status; }; typedef nfstime4 attr_notice4; struct GET_DIR_DELEGATION4args { /* CURRENT_FH: delegated directory */ bool gdda_signal_deleg_avail; bitmap4 gdda_notification_types; attr_notice4 gdda_child_attr_delay; attr_notice4 gdda_dir_attr_delay; bitmap4 gdda_child_attributes; bitmap4 gdda_dir_attributes; }; struct GET_DIR_DELEGATION4resok { verifier4 gddr_cookieverf; /* Stateid for get_dir_delegation */ stateid4 gddr_stateid; /* Which notifications can the server support */ bitmap4 gddr_notification; bitmap4 gddr_child_attributes; bitmap4 gddr_dir_attributes; }; enum gddrnf4_status { GDD4_OK = 0, GDD4_UNAVAIL = 1 }; union GET_DIR_DELEGATION4res_non_fatal switch (gddrnf4_status gddrnf_status) { case GDD4_OK: GET_DIR_DELEGATION4resok gddrnf_resok4; case GDD4_UNAVAIL: bool gddrnf_will_signal_deleg_avail; }; union GET_DIR_DELEGATION4res switch (nfsstat4 gddr_status) { case NFS4_OK: GET_DIR_DELEGATION4res_non_fatal gddr_res_non_fatal4; default: void; }; struct GETDEVICEINFO4args { deviceid4 gdia_device_id; layouttype4 gdia_layout_type; count4 gdia_maxcount; bitmap4 gdia_notify_types; }; struct GETDEVICEINFO4resok { device_addr4 gdir_device_addr; bitmap4 gdir_notification; }; union GETDEVICEINFO4res switch (nfsstat4 gdir_status) { case NFS4_OK: GETDEVICEINFO4resok gdir_resok4; case NFS4ERR_TOOSMALL: count4 gdir_mincount; default: void; }; struct GETDEVICELIST4args { /* CURRENT_FH: object belonging to the file system */ layouttype4 gdla_layout_type; /* number of deviceIDs to return */ count4 gdla_maxdevices; nfs_cookie4 gdla_cookie; verifier4 gdla_cookieverf; }; struct GETDEVICELIST4resok { nfs_cookie4 gdlr_cookie; verifier4 gdlr_cookieverf; deviceid4 gdlr_deviceid_list<>; bool gdlr_eof; }; union GETDEVICELIST4res switch (nfsstat4 gdlr_status) { case NFS4_OK: GETDEVICELIST4resok gdlr_resok4; default: void; }; union newtime4 switch (bool nt_timechanged) { case TRUE: nfstime4 nt_time; case FALSE: void; }; union newoffset4 switch (bool no_newoffset) { case TRUE: offset4 no_offset; case FALSE: void; }; struct LAYOUTCOMMIT4args { /* CURRENT_FH: file */ offset4 loca_offset; length4 loca_length; bool loca_reclaim; stateid4 loca_stateid; newoffset4 loca_last_write_offset; newtime4 loca_time_modify; layoutupdate4 loca_layoutupdate; }; union newsize4 switch (bool ns_sizechanged) { case TRUE: length4 ns_size; case FALSE: void; }; struct LAYOUTCOMMIT4resok { newsize4 locr_newsize; }; union LAYOUTCOMMIT4res switch (nfsstat4 locr_status) { case NFS4_OK: LAYOUTCOMMIT4resok locr_resok4; default: void; }; struct LAYOUTGET4args { /* CURRENT_FH: file */ bool loga_signal_layout_avail; layouttype4 loga_layout_type; layoutiomode4 loga_iomode; offset4 loga_offset; length4 loga_length; length4 loga_minlength; stateid4 loga_stateid; count4 loga_maxcount; }; struct LAYOUTGET4resok { bool logr_return_on_close; stateid4 logr_stateid; layout4 logr_layout<>; }; union LAYOUTGET4res switch (nfsstat4 logr_status) { case NFS4_OK: LAYOUTGET4resok logr_resok4; case NFS4ERR_LAYOUTTRYLATER: bool logr_will_signal_layout_avail; default: void; }; struct LAYOUTRETURN4args { /* CURRENT_FH: file */ bool lora_reclaim; layouttype4 lora_layout_type; layoutiomode4 lora_iomode; layoutreturn4 lora_layoutreturn; }; union layoutreturn_stateid switch (bool lrs_present) { case TRUE: stateid4 lrs_stateid; case FALSE: void; }; union LAYOUTRETURN4res switch (nfsstat4 lorr_status) { case NFS4_OK: layoutreturn_stateid lorr_stateid; default: void; }; enum secinfo_style4 { SECINFO_STYLE4_CURRENT_FH = 0, SECINFO_STYLE4_PARENT = 1 }; /* CURRENT_FH: object or child directory */ typedef secinfo_style4 SECINFO_NO_NAME4args; /* CURRENTFH: consumed if status is NFS4_OK */ typedef SECINFO4res SECINFO_NO_NAME4res; struct SEQUENCE4args { sessionid4 sa_sessionid; sequenceid4 sa_sequenceid; slotid4 sa_slotid; slotid4 sa_highest_slotid; bool sa_cachethis; }; const SEQ4_STATUS_CB_PATH_DOWN = 0x00000001; const SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING = 0x00000002; const SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED = 0x00000004; const SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED = 0x00000008; const SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED = 0x00000010; const SEQ4_STATUS_ADMIN_STATE_REVOKED = 0x00000020; const SEQ4_STATUS_RECALLABLE_STATE_REVOKED = 0x00000040; const SEQ4_STATUS_LEASE_MOVED = 0x00000080; const SEQ4_STATUS_RESTART_RECLAIM_NEEDED = 0x00000100; const SEQ4_STATUS_CB_PATH_DOWN_SESSION = 0x00000200; const SEQ4_STATUS_BACKCHANNEL_FAULT = 0x00000400; const SEQ4_STATUS_DEVID_CHANGED = 0x00000800; const SEQ4_STATUS_DEVID_DELETED = 0x00001000; struct SEQUENCE4resok { sessionid4 sr_sessionid; sequenceid4 sr_sequenceid; slotid4 sr_slotid; slotid4 sr_highest_slotid; slotid4 sr_target_highest_slotid; uint32_t sr_status_flags; }; union SEQUENCE4res switch (nfsstat4 sr_status) { case NFS4_OK: SEQUENCE4resok sr_resok4; default: void; }; struct ssa_digest_input4 { SEQUENCE4args sdi_seqargs; }; struct SET_SSV4args { opaque ssa_ssv<>; opaque ssa_digest<>; }; struct ssr_digest_input4 { SEQUENCE4res sdi_seqres; }; struct SET_SSV4resok { opaque ssr_digest<>; }; union SET_SSV4res switch (nfsstat4 ssr_status) { case NFS4_OK: SET_SSV4resok ssr_resok4; default: void; }; struct TEST_STATEID4args { stateid4 ts_stateids<>; }; struct TEST_STATEID4resok { nfsstat4 tsr_status_codes<>; }; union TEST_STATEID4res switch (nfsstat4 tsr_status) { case NFS4_OK: TEST_STATEID4resok tsr_resok4; default: void; }; union deleg_claim4 switch (open_claim_type4 dc_claim) { /* * No special rights to object. Ordinary delegation * request of the specified object. Object identified * by filehandle. */ case CLAIM_FH: /* new to v4.1 */ /* CURRENT_FH: object being delegated */ void; /* * Right to file based on a delegation granted * to a previous boot instance of the client. * File is specified by filehandle. */ case CLAIM_DELEG_PREV_FH: /* new to v4.1 */ /* CURRENT_FH: object being delegated */ void; /* * Right to the file established by an open previous * to server reboot. File identified by filehandle. * Used during server reclaim grace period. */ case CLAIM_PREVIOUS: /* CURRENT_FH: object being reclaimed */ open_delegation_type4 dc_delegate_type; }; struct WANT_DELEGATION4args { uint32_t wda_want; deleg_claim4 wda_claim; }; union WANT_DELEGATION4res switch (nfsstat4 wdr_status) { case NFS4_OK: open_delegation4 wdr_resok4; default: void; }; struct DESTROY_CLIENTID4args { clientid4 dca_clientid; }; struct DESTROY_CLIENTID4res { nfsstat4 dcr_status; }; struct RECLAIM_COMPLETE4args { /* * If rca_one_fs TRUE, * * CURRENT_FH: object in * filesystem reclaim is * complete for. */ bool rca_one_fs; }; struct RECLAIM_COMPLETE4res { nfsstat4 rcr_status; }; /* * Operation arrays */ enum nfs_opnum4 { OP_ACCESS = 3, OP_CLOSE = 4, OP_COMMIT = 5, OP_CREATE = 6, OP_DELEGPURGE = 7, OP_DELEGRETURN = 8, OP_GETATTR = 9, OP_GETFH = 10, OP_LINK = 11, OP_LOCK = 12, OP_LOCKT = 13, OP_LOCKU = 14, OP_LOOKUP = 15, OP_LOOKUPP = 16, OP_NVERIFY = 17, OP_OPEN = 18, OP_OPENATTR = 19, OP_OPEN_CONFIRM = 20, /* Mandatory not-to-implement */ OP_OPEN_DOWNGRADE = 21, OP_PUTFH = 22, OP_PUTPUBFH = 23, OP_PUTROOTFH = 24, OP_READ = 25, OP_READDIR = 26, OP_READLINK = 27, OP_REMOVE = 28, OP_RENAME = 29, OP_RENEW = 30, /* Mandatory not-to-implement */ OP_RESTOREFH = 31, OP_SAVEFH = 32, OP_SECINFO = 33, OP_SETATTR = 34, OP_SETCLIENTID = 35, /* Mandatory not-to-implement */ OP_SETCLIENTID_CONFIRM = 36, /* Mandatory not-to-implement */ OP_VERIFY = 37, OP_WRITE = 38, OP_RELEASE_LOCKOWNER = 39, /* Mandatory not-to-implement */ % %/* new operations for NFSv4.1 */ % OP_BACKCHANNEL_CTL = 40, OP_BIND_CONN_TO_SESSION = 41, OP_EXCHANGE_ID = 42, OP_CREATE_SESSION = 43, OP_DESTROY_SESSION = 44, OP_FREE_STATEID = 45, OP_GET_DIR_DELEGATION = 46, OP_GETDEVICEINFO = 47, OP_GETDEVICELIST = 48, OP_LAYOUTCOMMIT = 49, OP_LAYOUTGET = 50, OP_LAYOUTRETURN = 51, OP_SECINFO_NO_NAME = 52, OP_SEQUENCE = 53, OP_SET_SSV = 54, OP_TEST_STATEID = 55, OP_WANT_DELEGATION = 56, OP_DESTROY_CLIENTID = 57, OP_RECLAIM_COMPLETE = 58, OP_ILLEGAL = 10044 }; union nfs_argop4 switch (nfs_opnum4 argop) { case OP_ACCESS: ACCESS4args opaccess; case OP_CLOSE: CLOSE4args opclose; case OP_COMMIT: COMMIT4args opcommit; case OP_CREATE: CREATE4args opcreate; case OP_DELEGPURGE: DELEGPURGE4args opdelegpurge; case OP_DELEGRETURN: DELEGRETURN4args opdelegreturn; case OP_GETATTR: GETATTR4args opgetattr; case OP_GETFH: void; case OP_LINK: LINK4args oplink; case OP_LOCK: LOCK4args oplock; case OP_LOCKT: LOCKT4args oplockt; case OP_LOCKU: LOCKU4args oplocku; case OP_LOOKUP: LOOKUP4args oplookup; case OP_LOOKUPP: void; case OP_NVERIFY: NVERIFY4args opnverify; case OP_OPEN: OPEN4args opopen; case OP_OPENATTR: OPENATTR4args opopenattr; /* Not for NFSv4.1 */ case OP_OPEN_CONFIRM: OPEN_CONFIRM4args opopen_confirm; case OP_OPEN_DOWNGRADE: OPEN_DOWNGRADE4args opopen_downgrade; case OP_PUTFH: PUTFH4args opputfh; case OP_PUTPUBFH: void; case OP_PUTROOTFH: void; case OP_READ: READ4args opread; case OP_READDIR: READDIR4args opreaddir; case OP_READLINK: void; case OP_REMOVE: REMOVE4args opremove; case OP_RENAME: RENAME4args oprename; /* Not for NFSv4.1 */ case OP_RENEW: RENEW4args oprenew; case OP_RESTOREFH: void; case OP_SAVEFH: void; case OP_SECINFO: SECINFO4args opsecinfo; case OP_SETATTR: SETATTR4args opsetattr; /* Not for NFSv4.1 */ case OP_SETCLIENTID: SETCLIENTID4args opsetclientid; /* Not for NFSv4.1 */ case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4args opsetclientid_confirm; case OP_VERIFY: VERIFY4args opverify; case OP_WRITE: WRITE4args opwrite; /* Not for NFSv4.1 */ case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4args oprelease_lockowner; /* Operations new to NFSv4.1 */ case OP_BACKCHANNEL_CTL: BACKCHANNEL_CTL4args opbackchannel_ctl; case OP_BIND_CONN_TO_SESSION: BIND_CONN_TO_SESSION4args opbind_conn_to_session; case OP_EXCHANGE_ID: EXCHANGE_ID4args opexchange_id; case OP_CREATE_SESSION: CREATE_SESSION4args opcreate_session; case OP_DESTROY_SESSION: DESTROY_SESSION4args opdestroy_session; case OP_FREE_STATEID: FREE_STATEID4args opfree_stateid; case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4args opget_dir_delegation; case OP_GETDEVICEINFO: GETDEVICEINFO4args opgetdeviceinfo; case OP_GETDEVICELIST: GETDEVICELIST4args opgetdevicelist; case OP_LAYOUTCOMMIT: LAYOUTCOMMIT4args oplayoutcommit; case OP_LAYOUTGET: LAYOUTGET4args oplayoutget; case OP_LAYOUTRETURN: LAYOUTRETURN4args oplayoutreturn; case OP_SECINFO_NO_NAME: SECINFO_NO_NAME4args opsecinfo_no_name; case OP_SEQUENCE: SEQUENCE4args opsequence; case OP_SET_SSV: SET_SSV4args opset_ssv; case OP_TEST_STATEID: TEST_STATEID4args optest_stateid; case OP_WANT_DELEGATION: WANT_DELEGATION4args opwant_delegation; case OP_DESTROY_CLIENTID: DESTROY_CLIENTID4args opdestroy_clientid; case OP_RECLAIM_COMPLETE: RECLAIM_COMPLETE4args opreclaim_complete; /* Operations not new to NFSv4.1 */ case OP_ILLEGAL: void; }; union nfs_resop4 switch (nfs_opnum4 resop) { case OP_ACCESS: ACCESS4res opaccess; case OP_CLOSE: CLOSE4res opclose; case OP_COMMIT: COMMIT4res opcommit; case OP_CREATE: CREATE4res opcreate; case OP_DELEGPURGE: DELEGPURGE4res opdelegpurge; case OP_DELEGRETURN: DELEGRETURN4res opdelegreturn; case OP_GETATTR: GETATTR4res opgetattr; case OP_GETFH: GETFH4res opgetfh; case OP_LINK: LINK4res oplink; case OP_LOCK: LOCK4res oplock; case OP_LOCKT: LOCKT4res oplockt; case OP_LOCKU: LOCKU4res oplocku; case OP_LOOKUP: LOOKUP4res oplookup; case OP_LOOKUPP: LOOKUPP4res oplookupp; case OP_NVERIFY: NVERIFY4res opnverify; case OP_OPEN: OPEN4res opopen; case OP_OPENATTR: OPENATTR4res opopenattr; /* Not for NFSv4.1 */ case OP_OPEN_CONFIRM: OPEN_CONFIRM4res opopen_confirm; case OP_OPEN_DOWNGRADE: OPEN_DOWNGRADE4res opopen_downgrade; case OP_PUTFH: PUTFH4res opputfh; case OP_PUTPUBFH: PUTPUBFH4res opputpubfh; case OP_PUTROOTFH: PUTROOTFH4res opputrootfh; case OP_READ: READ4res opread; case OP_READDIR: READDIR4res opreaddir; case OP_READLINK: READLINK4res opreadlink; case OP_REMOVE: REMOVE4res opremove; case OP_RENAME: RENAME4res oprename; /* Not for NFSv4.1 */ case OP_RENEW: RENEW4res oprenew; case OP_RESTOREFH: RESTOREFH4res oprestorefh; case OP_SAVEFH: SAVEFH4res opsavefh; case OP_SECINFO: SECINFO4res opsecinfo; case OP_SETATTR: SETATTR4res opsetattr; /* Not for NFSv4.1 */ case OP_SETCLIENTID: SETCLIENTID4res opsetclientid; /* Not for NFSv4.1 */ case OP_SETCLIENTID_CONFIRM: SETCLIENTID_CONFIRM4res opsetclientid_confirm; case OP_VERIFY: VERIFY4res opverify; case OP_WRITE: WRITE4res opwrite; /* Not for NFSv4.1 */ case OP_RELEASE_LOCKOWNER: RELEASE_LOCKOWNER4res oprelease_lockowner; /* Operations new to NFSv4.1 */ case OP_BACKCHANNEL_CTL: BACKCHANNEL_CTL4res opbackchannel_ctl; case OP_BIND_CONN_TO_SESSION: BIND_CONN_TO_SESSION4res opbind_conn_to_session; case OP_EXCHANGE_ID: EXCHANGE_ID4res opexchange_id; case OP_CREATE_SESSION: CREATE_SESSION4res opcreate_session; case OP_DESTROY_SESSION: DESTROY_SESSION4res opdestroy_session; case OP_FREE_STATEID: FREE_STATEID4res opfree_stateid; case OP_GET_DIR_DELEGATION: GET_DIR_DELEGATION4res opget_dir_delegation; case OP_GETDEVICEINFO: GETDEVICEINFO4res opgetdeviceinfo; case OP_GETDEVICELIST: GETDEVICELIST4res opgetdevicelist; case OP_LAYOUTCOMMIT: LAYOUTCOMMIT4res oplayoutcommit; case OP_LAYOUTGET: LAYOUTGET4res oplayoutget; case OP_LAYOUTRETURN: LAYOUTRETURN4res oplayoutreturn; case OP_SECINFO_NO_NAME: SECINFO_NO_NAME4res opsecinfo_no_name; case OP_SEQUENCE: SEQUENCE4res opsequence; case OP_SET_SSV: SET_SSV4res opset_ssv; case OP_TEST_STATEID: TEST_STATEID4res optest_stateid; case OP_WANT_DELEGATION: WANT_DELEGATION4res opwant_delegation; case OP_DESTROY_CLIENTID: DESTROY_CLIENTID4res opdestroy_clientid; case OP_RECLAIM_COMPLETE: RECLAIM_COMPLETE4res opreclaim_complete; /* Operations not new to NFSv4.1 */ case OP_ILLEGAL: ILLEGAL4res opillegal; }; struct COMPOUND4args { utf8str_cs tag; uint32_t minorversion; nfs_argop4 argarray<>; }; struct COMPOUND4res { nfsstat4 status; utf8str_cs tag; nfs_resop4 resarray<>; }; /* * Remote file service routines */ program NFS4_PROGRAM { version NFS_V4 { void NFSPROC4_NULL(void) = 0; COMPOUND4res NFSPROC4_COMPOUND(COMPOUND4args) = 1; } = 4; } = 100003; /* * NFS4 Callback Procedure Definitions and Program */ struct CB_GETATTR4args { nfs_fh4 fh; bitmap4 attr_request; }; struct CB_GETATTR4resok { fattr4 obj_attributes; }; union CB_GETATTR4res switch (nfsstat4 status) { case NFS4_OK: CB_GETATTR4resok resok4; default: void; }; struct CB_RECALL4args { stateid4 stateid; bool truncate; nfs_fh4 fh; }; struct CB_RECALL4res { nfsstat4 status; }; /* * CB_ILLEGAL: Response for illegal operation numbers */ struct CB_ILLEGAL4res { nfsstat4 status; }; /* * NFSv4.1 callback arguments and results */ enum layoutrecall_type4 { LAYOUTRECALL4_FILE = LAYOUT4_RET_REC_FILE, LAYOUTRECALL4_FSID = LAYOUT4_RET_REC_FSID, LAYOUTRECALL4_ALL = LAYOUT4_RET_REC_ALL }; struct layoutrecall_file4 { nfs_fh4 lor_fh; offset4 lor_offset; length4 lor_length; stateid4 lor_stateid; }; union layoutrecall4 switch(layoutrecall_type4 lor_recalltype) { case LAYOUTRECALL4_FILE: layoutrecall_file4 lor_layout; case LAYOUTRECALL4_FSID: fsid4 lor_fsid; case LAYOUTRECALL4_ALL: void; }; struct CB_LAYOUTRECALL4args { layouttype4 clora_type; layoutiomode4 clora_iomode; bool clora_changed; layoutrecall4 clora_recall; }; struct CB_LAYOUTRECALL4res { nfsstat4 clorr_status; }; /* * Directory notification types. */ enum notify_type4 { NOTIFY4_CHANGE_CHILD_ATTRS = 0, NOTIFY4_CHANGE_DIR_ATTRS = 1, NOTIFY4_REMOVE_ENTRY = 2, NOTIFY4_ADD_ENTRY = 3, NOTIFY4_RENAME_ENTRY = 4, NOTIFY4_CHANGE_COOKIE_VERIFIER = 5 }; /* Changed entry information. */ struct notify_entry4 { component4 ne_file; fattr4 ne_attrs; }; /* Previous entry information */ struct prev_entry4 { notify_entry4 pe_prev_entry; /* what READDIR returned for this entry */ nfs_cookie4 pe_prev_entry_cookie; }; struct notify_remove4 { notify_entry4 nrm_old_entry; nfs_cookie4 nrm_old_entry_cookie; }; struct notify_add4 { /* * Information on object * possibly renamed over. */ notify_remove4 nad_old_entry<1>; notify_entry4 nad_new_entry; /* what READDIR would have returned for this entry */ nfs_cookie4 nad_new_entry_cookie<1>; prev_entry4 nad_prev_entry<1>; bool nad_last_entry; }; struct notify_attr4 { notify_entry4 na_changed_entry; }; struct notify_rename4 { notify_remove4 nrn_old_entry; notify_add4 nrn_new_entry; }; struct notify_verifier4 { verifier4 nv_old_cookieverf; verifier4 nv_new_cookieverf; }; /* * Objects of type notify_<>4 and * notify_device_<>4 are encoded in this. */ typedef opaque notifylist4<>; struct notify4 { /* composed from notify_type4 or notify_deviceid_type4 */ bitmap4 notify_mask; notifylist4 notify_vals; }; struct CB_NOTIFY4args { stateid4 cna_stateid; nfs_fh4 cna_fh; notify4 cna_changes<>; }; struct CB_NOTIFY4res { nfsstat4 cnr_status; }; struct CB_PUSH_DELEG4args { nfs_fh4 cpda_fh; open_delegation4 cpda_delegation; }; struct CB_PUSH_DELEG4res { nfsstat4 cpdr_status; }; const RCA4_TYPE_MASK_RDATA_DLG = 0; const RCA4_TYPE_MASK_WDATA_DLG = 1; const RCA4_TYPE_MASK_DIR_DLG = 2; const RCA4_TYPE_MASK_FILE_LAYOUT = 3; const RCA4_TYPE_MASK_BLK_LAYOUT = 4; const RCA4_TYPE_MASK_OBJ_LAYOUT_MIN = 8; const RCA4_TYPE_MASK_OBJ_LAYOUT_MAX = 9; const RCA4_TYPE_MASK_OTHER_LAYOUT_MIN = 12; const RCA4_TYPE_MASK_OTHER_LAYOUT_MAX = 15; struct CB_RECALL_ANY4args { uint32_t craa_objects_to_keep; bitmap4 craa_type_mask; }; struct CB_RECALL_ANY4res { nfsstat4 crar_status; }; typedef CB_RECALL_ANY4args CB_RECALLABLE_OBJ_AVAIL4args; struct CB_RECALLABLE_OBJ_AVAIL4res { nfsstat4 croa_status; }; struct CB_RECALL_SLOT4args { slotid4 rsa_target_highest_slotid; }; struct CB_RECALL_SLOT4res { nfsstat4 rsr_status; }; struct referring_call4 { sequenceid4 rc_sequenceid; slotid4 rc_slotid; }; struct referring_call_list4 { sessionid4 rcl_sessionid; referring_call4 rcl_referring_calls<>; }; struct CB_SEQUENCE4args { sessionid4 csa_sessionid; sequenceid4 csa_sequenceid; slotid4 csa_slotid; slotid4 csa_highest_slotid; bool csa_cachethis; referring_call_list4 csa_referring_call_lists<>; }; struct CB_SEQUENCE4resok { sessionid4 csr_sessionid; sequenceid4 csr_sequenceid; slotid4 csr_slotid; slotid4 csr_highest_slotid; slotid4 csr_target_highest_slotid; }; union CB_SEQUENCE4res switch (nfsstat4 csr_status) { case NFS4_OK: CB_SEQUENCE4resok csr_resok4; default: void; }; struct CB_WANTS_CANCELLED4args { bool cwca_contended_wants_cancelled; bool cwca_resourced_wants_cancelled; }; struct CB_WANTS_CANCELLED4res { nfsstat4 cwcr_status; }; struct CB_NOTIFY_LOCK4args { nfs_fh4 cnla_fh; lock_owner4 cnla_lock_owner; }; struct CB_NOTIFY_LOCK4res { nfsstat4 cnlr_status; }; /* * Device notification types. */ enum notify_deviceid_type4 { NOTIFY_DEVICEID4_CHANGE = 1, NOTIFY_DEVICEID4_DELETE = 2 }; /* For NOTIFY4_DEVICEID4_DELETE */ struct notify_deviceid_delete4 { layouttype4 ndd_layouttype; deviceid4 ndd_deviceid; }; /* For NOTIFY4_DEVICEID4_CHANGE */ struct notify_deviceid_change4 { layouttype4 ndc_layouttype; deviceid4 ndc_deviceid; bool ndc_immediate; }; struct CB_NOTIFY_DEVICEID4args { notify4 cnda_changes<>; }; struct CB_NOTIFY_DEVICEID4res { nfsstat4 cndr_status; }; /* * Various definitions for CB_COMPOUND */ % enum nfs_cb_opnum4 { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, %/* Callback operations new to NFSv4.1 */ OP_CB_LAYOUTRECALL = 5, OP_CB_NOTIFY = 6, OP_CB_PUSH_DELEG = 7, OP_CB_RECALL_ANY = 8, OP_CB_RECALLABLE_OBJ_AVAIL = 9, OP_CB_RECALL_SLOT = 10, OP_CB_SEQUENCE = 11, OP_CB_WANTS_CANCELLED = 12, OP_CB_NOTIFY_LOCK = 13, OP_CB_NOTIFY_DEVICEID = 14, OP_CB_ILLEGAL = 10044 }; union nfs_cb_argop4 switch (unsigned argop) { case OP_CB_GETATTR: CB_GETATTR4args opcbgetattr; case OP_CB_RECALL: CB_RECALL4args opcbrecall; case OP_CB_LAYOUTRECALL: CB_LAYOUTRECALL4args opcblayoutrecall; case OP_CB_NOTIFY: CB_NOTIFY4args opcbnotify; case OP_CB_PUSH_DELEG: CB_PUSH_DELEG4args opcbpush_deleg; case OP_CB_RECALL_ANY: CB_RECALL_ANY4args opcbrecall_any; case OP_CB_RECALLABLE_OBJ_AVAIL: CB_RECALLABLE_OBJ_AVAIL4args opcbrecallable_obj_avail; case OP_CB_RECALL_SLOT: CB_RECALL_SLOT4args opcbrecall_slot; case OP_CB_SEQUENCE: CB_SEQUENCE4args opcbsequence; case OP_CB_WANTS_CANCELLED: CB_WANTS_CANCELLED4args opcbwants_cancelled; case OP_CB_NOTIFY_LOCK: CB_NOTIFY_LOCK4args opcbnotify_lock; case OP_CB_NOTIFY_DEVICEID: CB_NOTIFY_DEVICEID4args opcbnotify_deviceid; case OP_CB_ILLEGAL: void; }; union nfs_cb_resop4 switch (unsigned resop) { case OP_CB_GETATTR: CB_GETATTR4res opcbgetattr; case OP_CB_RECALL: CB_RECALL4res opcbrecall; /* new NFSv4.1 operations */ case OP_CB_LAYOUTRECALL: CB_LAYOUTRECALL4res opcblayoutrecall; case OP_CB_NOTIFY: CB_NOTIFY4res opcbnotify; case OP_CB_PUSH_DELEG: CB_PUSH_DELEG4res opcbpush_deleg; case OP_CB_RECALL_ANY: CB_RECALL_ANY4res opcbrecall_any; case OP_CB_RECALLABLE_OBJ_AVAIL: CB_RECALLABLE_OBJ_AVAIL4res opcbrecallable_obj_avail; case OP_CB_RECALL_SLOT: CB_RECALL_SLOT4res opcbrecall_slot; case OP_CB_SEQUENCE: CB_SEQUENCE4res opcbsequence; case OP_CB_WANTS_CANCELLED: CB_WANTS_CANCELLED4res opcbwants_cancelled; case OP_CB_NOTIFY_LOCK: CB_NOTIFY_LOCK4res opcbnotify_lock; case OP_CB_NOTIFY_DEVICEID: CB_NOTIFY_DEVICEID4res opcbnotify_deviceid; /* Not new operation */ case OP_CB_ILLEGAL: CB_ILLEGAL4res opcbillegal; }; struct CB_COMPOUND4args { utf8str_cs tag; uint32_t minorversion; uint32_t callback_ident; nfs_cb_argop4 argarray<>; }; struct CB_COMPOUND4res { nfsstat4 status; utf8str_cs tag; nfs_cb_resop4 resarray<>; }; /* * Program number is in the transient range since the client * will assign the exact transient program number and provide * that to the server via the SETCLIENTID operation. */ program NFS4_CALLBACK { version NFS_CB { void CB_NULL(void) = 0; CB_COMPOUND4res CB_COMPOUND(CB_COMPOUND4args) = 1; } = 1; } = 0x40000000; nfstrace-0.4.1/src/protocols/nfs3/000077500000000000000000000000001261713114600170075ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/nfs3/nfs3_utils.cpp000066400000000000000000001531301261713114600216070ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou (Alexey Costroma) // Description: Helpers for parsing NFS structures. // Copyright (c) 2013,2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "protocols/nfs/nfs_utils.h" #include "protocols/nfs3/nfs3_utils.h" //------------------------------------------------------------------------------ using namespace NST::API::NFS3; using namespace NST::protocols::NFS; using namespace NST::protocols::xdr; //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS3 { const char* print_nfs3_procedures(const ProcEnumNFS3::NFSProcedure proc) { static const char* const NFS3ProcedureTitles[ProcEnumNFS3::count] = { "NULL", "GETATTR", "SETATTR", "LOOKUP", "ACCESS", "READLINK", "READ", "WRITE", "CREATE", "MKDIR", "SYMLINK", "MKNOD", "REMOVE", "RMDIR", "RENAME", "LINK", "READDIR", "READDIRPLUS", "FSSTAT", "FSINFO", "PATHCONF", "COMMIT" }; return NFS3ProcedureTitles[proc]; } enum { S_ISUID = 0x00800, S_ISGID = 0x00400, S_ISVTX = 0x00200, // Not defined in POSIX S_IRUSR = 0x00100, S_IWUSR = 0x00080, S_IXUSR = 0x00040, // Search in directory S_IRGRP = 0x00020, S_IWGRP = 0x00010, S_IXGRP = 0x00008, // Search in directory S_IROTH = 0x00004, S_IWOTH = 0x00002, S_IXOTH = 0x00001 // Search in directory }; void print_mode3(std::ostream& out, const uint32 val) { if (val & S_ISUID) out << "USER_ID_EXEC "; if (val & S_ISGID) out << "GROUP_ID_EXEC "; if (val & S_ISVTX) out << "SAVE_SWAPPED_TEXT "; if (val & S_IRUSR) out << "OWNER_READ "; if (val & S_IWUSR) out << "OWNER_WRITE "; if (val & S_IXUSR) out << "OWNER_EXEC "; if (val & S_IRGRP) out << "GROUP_READ "; if (val & S_IWGRP) out << "GROUP_WRITE "; if (val & S_IXGRP) out << "GROUP_EXEC "; if (val & S_IROTH) out << "OTHER_READ "; if (val & S_IWOTH) out << "OTHER_WRITE "; if (val & S_IXOTH) out << "OTHER_EXEC"; } void print_access3(std::ostream& out, const uint32 val) { if (val & ACCESS3_READ) out << "READ "; if (val & ACCESS3_LOOKUP) out << "LOOKUP "; if (val & ACCESS3_MODIFY) out << "MODIFY "; if (val & ACCESS3_EXTEND) out << "EXTEND "; if (val & ACCESS3_DELETE) out << "DELETE "; if (val & ACCESS3_EXECUTE) out << "EXECUTE "; } std::ostream& operator<<(std::ostream& out, const nfsstat3& obj) { switch(obj) { case nfsstat3::NFS3_OK: return out << "OK"; case nfsstat3::NFS3ERR_PERM: return out << "ERR_PERM"; case nfsstat3::NFS3ERR_NOENT: return out << "ERR_NOENT"; case nfsstat3::NFS3ERR_IO: return out << "ERR_IO"; case nfsstat3::NFS3ERR_NXIO: return out << "ERR_NXIO"; case nfsstat3::NFS3ERR_ACCES: return out << "ERR_ACCES"; case nfsstat3::NFS3ERR_EXIST: return out << "ERR_EXIST"; case nfsstat3::NFS3ERR_XDEV: return out << "ERR_XDEV"; case nfsstat3::NFS3ERR_NODEV: return out << "ERR_NODEV"; case nfsstat3::NFS3ERR_NOTDIR: return out << "ERR_NOTDIR"; case nfsstat3::NFS3ERR_ISDIR: return out << "ERR_ISDIR"; case nfsstat3::NFS3ERR_INVAL: return out << "ERR_INVAL"; case nfsstat3::NFS3ERR_FBIG: return out << "ERR_FBIG"; case nfsstat3::NFS3ERR_NOSPC: return out << "ERR_NOSPC"; case nfsstat3::NFS3ERR_ROFS: return out << "ERR_ROFS"; case nfsstat3::NFS3ERR_MLINK: return out << "ERR_MLINK"; case nfsstat3::NFS3ERR_NAMETOOLONG: return out << "ERR_NAMETOOLONG"; case nfsstat3::NFS3ERR_NOTEMPTY: return out << "ERR_NOTEMPTY"; case nfsstat3::NFS3ERR_DQUOT: return out << "ERR_DQUOT"; case nfsstat3::NFS3ERR_STALE: return out << "ERR_STALE"; case nfsstat3::NFS3ERR_REMOTE: return out << "ERR_REMOTE"; case nfsstat3::NFS3ERR_BADHANDLE: return out << "ERR_BADHANDLE"; case nfsstat3::NFS3ERR_NOT_SYNC: return out << "ERR_NOT_SYNC"; case nfsstat3::NFS3ERR_BAD_COOKIE: return out << "ERR_BAD_COOKIE"; case nfsstat3::NFS3ERR_NOTSUPP: return out << "ERR_NOTSUPP"; case nfsstat3::NFS3ERR_TOOSMALL: return out << "ERR_TOOSMALL"; case nfsstat3::NFS3ERR_SERVERFAULT: return out << "ERR_SERVERFAULT"; case nfsstat3::NFS3ERR_BADTYPE: return out << "ERR_BADTYPE"; case nfsstat3::NFS3ERR_JUKEBOX: return out << "ERR_JUKEBOX"; } return out; } std::ostream& operator<<(std::ostream& out, const ftype3& obj) { switch(obj) { case ftype3::NF3REG: return out << "REG"; case ftype3::NF3DIR: return out << "DIR"; case ftype3::NF3BLK: return out << "BLK"; case ftype3::NF3CHR: return out << "CHR"; case ftype3::NF3LNK: return out << "LNK"; case ftype3::NF3SOCK: return out << "SOCK"; case ftype3::NF3FIFO: return out << "FIFO"; } return out; } std::ostream& operator<<(std::ostream& out, const specdata3& obj) { return out << " specdata1: " << obj.specdata1 << " specdata2: " << obj.specdata2; } std::ostream& operator<<(std::ostream& out, const nfs_fh3& obj) { NFS::print_nfs_fh(out, obj.data.data_val, obj.data.data_len); return out; } std::ostream& operator<<(std::ostream& out, const nfstime3& obj) { return out << "seconds: " << obj.seconds << " nseconds: " << obj.nseconds << ' '; } std::ostream& operator<<(std::ostream& out, const fattr3& obj) { out << " type: " << obj.type << " mode: "; print_mode3(out,obj.mode); out << " nlink: " << obj.nlink << " uid: " << obj.uid << " gid: " << obj.gid << " size: " << obj.size << " used: " << obj.used << " rdev: " << obj.rdev << " fsid: " << obj.fsid << " fileid: " << obj.fileid << " atime: " << obj.atime << " mtime: " << obj.mtime << " ctime: " << obj.ctime; return out; } std::ostream& operator<<(std::ostream& out, const post_op_attr& obj) { if(obj.attributes_follow) return out << obj.post_op_attr_u.attributes; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const wcc_attr& obj) { return out << " size: " << obj.size << " mtime: " << obj.mtime << " ctime: " << obj.ctime; } std::ostream& operator<<(std::ostream& out, const pre_op_attr& obj) { if(obj.attributes_follow) return out << obj.pre_op_attr_u.attributes; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const wcc_data& obj) { return out << " before: " << obj.before << "after: " << obj.after; } std::ostream& operator<<(std::ostream& out, const post_op_fh3& obj) { if(obj.handle_follows) return out << " handle: " << obj.post_op_fh3_u.handle; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const time_how& obj) { switch(obj) { case time_how::DONT_CHANGE: return out << "DONT_CHANGE"; case time_how::SET_TO_SERVER_TIME: return out << "SET_TO_SERVER_TIME"; case time_how::SET_TO_CLIENT_TIME: return out << "SET_TO_CLIENT_TIME"; } return out; } std::ostream& operator<<(std::ostream& out, const set_mode3& obj) { if(obj.set_it) return out << obj.set_mode3_u.mode; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const set_uid3& obj) { if(obj.set_it) return out << obj.set_uid3_u.uid; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const set_gid3& obj) { if(obj.set_it) return out << obj.set_gid3_u.gid; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const set_size3& obj) { if(obj.set_it) return out << obj.set_size3_u.size; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const set_atime& obj) { if(obj.set_it == time_how::SET_TO_CLIENT_TIME) return out << obj.set_it << " " << obj.set_atime_u.atime; else return out << obj.set_it; } std::ostream& operator<<(std::ostream& out, const set_mtime& obj) { if(obj.set_it == time_how::SET_TO_CLIENT_TIME) return out << obj.set_it << " " << obj.set_mtime_u.mtime; else return out << obj.set_it; } std::ostream& operator<<(std::ostream& out, const sattr3& obj) { if(obj.mode.set_it) { out << " mode: "; print_mode3(out, obj.mode.set_mode3_u.mode); } if(obj.uid.set_it) out << " uid: " << obj.uid.set_uid3_u.uid; if(obj.gid.set_it) out << " gid: " << obj.gid.set_gid3_u.gid; if(obj.size.set_it) out << " size: " << obj.size.set_size3_u.size; if(obj.atime.set_it == time_how::SET_TO_CLIENT_TIME) out << " atime: " << obj.atime.set_atime_u.atime; if(obj.mtime.set_it == time_how::SET_TO_CLIENT_TIME) out << " atime: " << obj.mtime.set_mtime_u.mtime; return out; } std::ostream& operator<<(std::ostream& out, const diropargs3& obj) { return out << " dir: " << obj.dir << " name: " << obj.name; } std::ostream& operator<<(std::ostream& out, const sattrguard3& obj) { if(obj.check) return out << " obj_ctime: " << obj.sattrguard3_u.obj_ctime; else return out << " void "; } std::ostream& operator<<(std::ostream& out, const stable_how& obj) { switch(obj) { case stable_how::UNSTABLE: return out << "UNSTABLE"; case stable_how::DATA_SYNC: return out << "DATA_SYNC"; case stable_how::FILE_SYNC: return out << "FILE_SYNC"; } return out; } std::ostream& operator<<(std::ostream& out, const createmode3& obj) { switch(obj) { case createmode3::UNCHECKED: return out << "UNCHECKED"; case createmode3::GUARDED: return out << "GUARDED"; case createmode3::EXCLUSIVE: return out << "EXCLUSIVE"; } return out; } std::ostream& operator<<(std::ostream& out, const createhow3& obj) { switch(obj.mode) { case createmode3::UNCHECKED: case createmode3::GUARDED: return out << obj.mode << " obj attributes: " << obj.createhow3_u.obj_attributes; case createmode3::EXCLUSIVE: out << obj.mode << " verf: "; print_hex(out, obj.createhow3_u.verf, NFS3_COOKIEVERFSIZE); break; } return out; } std::ostream& operator<<(std::ostream& out, const symlinkdata3& obj) { return out << " symlink_attributes: " << obj.symlink_attributes << " symlink_data: " << obj.symlink_data; } std::ostream& operator<<(std::ostream& out, const devicedata3& obj) { return out << " dev_attributes: " << obj.dev_attributes << " spec: " << obj.spec; } std::ostream& operator<<(std::ostream& out, const mknoddata3& obj) { out << " type: " << obj.type; switch(obj.type) { case ftype3::NF3CHR: case ftype3::NF3BLK: return out << " device: " << obj.mknoddata3_u.device; case ftype3::NF3SOCK: case ftype3::NF3FIFO: return out << " pipe_attributes: " << obj.mknoddata3_u.pipe_attributes; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const entry3& obj) { out << " file id: " << obj.fileid << " name: " << obj.name << " cookie: " << obj.cookie << '\n'; if(obj.nextentry) out << *obj.nextentry; return out; } std::ostream& operator<<(std::ostream& out, const dirlist3& obj) { out << " eof: " << obj.eof; if(obj.entries) out << *obj.entries; return out; } std::ostream& operator<<(std::ostream& out, const entryplus3& obj) { out << " file id: " << obj.fileid << " name: " << obj.name << " name attributes: " << obj.name_attributes << " name handle: " << obj.name_handle << " cookie: " << obj.cookie << '\n'; if(obj.nextentry) out << *obj.nextentry; return out; } std::ostream& operator<<(std::ostream& out, const dirlistplus3& obj) { out << " eof: " << obj.eof; if(obj.entries) out << *obj.entries; return out; } bool_t xdr_uint64 (XDR* xdrs, uint64* objp) { if (!xdr_u_longlong_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_uint32 (XDR* xdrs, uint32* objp) { if (!xdr_u_int (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_int64 (XDR* xdrs, int64* objp) { if (!xdr_longlong_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_int32 (XDR* xdrs, int32* objp) { if (!xdr_int (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_filename3 (XDR* xdrs, filename3* objp) { if (!xdr_string (xdrs, objp, ~0)) { return FALSE; } return TRUE; } bool_t xdr_nfspath3 (XDR* xdrs, nfspath3* objp) { if (!xdr_string (xdrs, objp, ~0)) { return FALSE; } return TRUE; } bool_t xdr_fileid3 (XDR* xdrs, fileid3* objp) { if (!xdr_uint64 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_cookie3 (XDR* xdrs, cookie3* objp) { if (!xdr_uint64 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_cookieverf3 (XDR* xdrs, cookieverf3 objp) { if (!xdr_opaque (xdrs, objp, NFS3_COOKIEVERFSIZE)) { return FALSE; } return TRUE; } bool_t xdr_createverf3 (XDR* xdrs, createverf3 objp) { if (!xdr_opaque (xdrs, objp, NFS3_CREATEVERFSIZE)) { return FALSE; } return TRUE; } bool_t xdr_writeverf3 (XDR* xdrs, writeverf3 objp) { if (!xdr_opaque (xdrs, objp, NFS3_WRITEVERFSIZE)) { return FALSE; } return TRUE; } bool_t xdr_uid3 (XDR* xdrs, uid3* objp) { if (!xdr_uint32 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_gid3 (XDR* xdrs, gid3* objp) { if (!xdr_uint32 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_size3 (XDR* xdrs, size3* objp) { if (!xdr_uint64 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_offset3 (XDR* xdrs, offset3* objp) { if (!xdr_uint64 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_mode3 (XDR* xdrs, mode3* objp) { if (!xdr_uint32 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_count3 (XDR* xdrs, count3* objp) { if (!xdr_uint32 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfsstat3 (XDR* xdrs, nfsstat3* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_ftype3 (XDR* xdrs, ftype3* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_specdata3 (XDR* xdrs, specdata3* objp) { if (!xdr_uint32 (xdrs, &objp->specdata1)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->specdata2)) { return FALSE; } return TRUE; } bool_t xdr_nfs_fh3 (XDR* xdrs, nfs_fh3* objp) { if (!xdr_bytes (xdrs, (char**)&objp->data.data_val, (u_int*) &objp->data.data_len, NFS3_FHSIZE)) { return FALSE; } return TRUE; } bool_t xdr_nfstime3 (XDR* xdrs, nfstime3* objp) { if (!xdr_uint32 (xdrs, &objp->seconds)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->nseconds)) { return FALSE; } return TRUE; } bool_t xdr_fattr3 (XDR* xdrs, fattr3* objp) { if (!xdr_ftype3 (xdrs, &objp->type)) { return FALSE; } if (!xdr_mode3 (xdrs, &objp->mode)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->nlink)) { return FALSE; } if (!xdr_uid3 (xdrs, &objp->uid)) { return FALSE; } if (!xdr_gid3 (xdrs, &objp->gid)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->size)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->used)) { return FALSE; } if (!xdr_specdata3 (xdrs, &objp->rdev)) { return FALSE; } if (!xdr_uint64 (xdrs, &objp->fsid)) { return FALSE; } if (!xdr_fileid3 (xdrs, &objp->fileid)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->atime)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->mtime)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->ctime)) { return FALSE; } return TRUE; } bool_t xdr_post_op_attr (XDR* xdrs, post_op_attr* objp) { if (!xdr_bool (xdrs, &objp->attributes_follow)) { return FALSE; } switch (objp->attributes_follow) { case TRUE: if (!xdr_fattr3 (xdrs, &objp->post_op_attr_u.attributes)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_wcc_attr (XDR* xdrs, wcc_attr* objp) { if (!xdr_size3 (xdrs, &objp->size)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->mtime)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->ctime)) { return FALSE; } return TRUE; } bool_t xdr_pre_op_attr (XDR* xdrs, pre_op_attr* objp) { if (!xdr_bool (xdrs, &objp->attributes_follow)) { return FALSE; } switch (objp->attributes_follow) { case TRUE: if (!xdr_wcc_attr (xdrs, &objp->pre_op_attr_u.attributes)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_wcc_data (XDR* xdrs, wcc_data* objp) { if (!xdr_pre_op_attr (xdrs, &objp->before)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->after)) { return FALSE; } return TRUE; } bool_t xdr_post_op_fh3 (XDR* xdrs, post_op_fh3* objp) { if (!xdr_bool (xdrs, &objp->handle_follows)) { return FALSE; } switch (objp->handle_follows) { case TRUE: if (!xdr_nfs_fh3 (xdrs, &objp->post_op_fh3_u.handle)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_time_how (XDR* xdrs, time_how* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_set_mode3 (XDR* xdrs, set_mode3* objp) { if (!xdr_bool (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case TRUE: if (!xdr_mode3 (xdrs, &objp->set_mode3_u.mode)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_set_uid3 (XDR* xdrs, set_uid3* objp) { if (!xdr_bool (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case TRUE: if (!xdr_uid3 (xdrs, &objp->set_uid3_u.uid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_set_gid3 (XDR* xdrs, set_gid3* objp) { if (!xdr_bool (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case TRUE: if (!xdr_gid3 (xdrs, &objp->set_gid3_u.gid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_set_size3 (XDR* xdrs, set_size3* objp) { if (!xdr_bool (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case TRUE: if (!xdr_size3 (xdrs, &objp->set_size3_u.size)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_set_atime (XDR* xdrs, set_atime* objp) { if (!xdr_time_how (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case SET_TO_CLIENT_TIME: if (!xdr_nfstime3 (xdrs, &objp->set_atime_u.atime)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_set_mtime (XDR* xdrs, set_mtime* objp) { if (!xdr_time_how (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case SET_TO_CLIENT_TIME: if (!xdr_nfstime3 (xdrs, &objp->set_mtime_u.mtime)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_sattr3 (XDR* xdrs, sattr3* objp) { if (!xdr_set_mode3 (xdrs, &objp->mode)) { return FALSE; } if (!xdr_set_uid3 (xdrs, &objp->uid)) { return FALSE; } if (!xdr_set_gid3 (xdrs, &objp->gid)) { return FALSE; } if (!xdr_set_size3 (xdrs, &objp->size)) { return FALSE; } if (!xdr_set_atime (xdrs, &objp->atime)) { return FALSE; } if (!xdr_set_mtime (xdrs, &objp->mtime)) { return FALSE; } return TRUE; } bool_t xdr_diropargs3 (XDR* xdrs, diropargs3* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->dir)) { return FALSE; } if (!xdr_filename3 (xdrs, &objp->name)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR3args (XDR* xdrs, GETATTR3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR3resok (XDR* xdrs, GETATTR3resok* objp) { if (!xdr_fattr3 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR3res (XDR* xdrs, GETATTR3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_GETATTR3resok (xdrs, &objp->GETATTR3res_u.resok)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_sattrguard3 (XDR* xdrs, sattrguard3* objp) { if (!xdr_bool (xdrs, &objp->check)) { return FALSE; } switch (objp->check) { case TRUE: if (!xdr_nfstime3 (xdrs, &objp->sattrguard3_u.obj_ctime)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } // handmade for compatibility bool_t xdr_NULL3args (XDR*, NULL3args*) { return TRUE; } // handmade for compatibility bool_t xdr_NULL3res (XDR*, NULL3res*) { return TRUE; } bool_t xdr_SETATTR3args (XDR* xdrs, SETATTR3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->object)) { return FALSE; } if (!xdr_sattr3 (xdrs, &objp->new_attributes)) { return FALSE; } if (!xdr_sattrguard3 (xdrs, &objp->guard)) { return FALSE; } return TRUE; } bool_t xdr_SETATTR3resok (XDR* xdrs, SETATTR3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->obj_wcc)) { return FALSE; } return TRUE; } bool_t xdr_SETATTR3resfail (XDR* xdrs, SETATTR3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->obj_wcc)) { return FALSE; } return TRUE; } bool_t xdr_SETATTR3res (XDR* xdrs, SETATTR3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_SETATTR3resok (xdrs, &objp->SETATTR3res_u.resok)) { return FALSE; } break; default: if (!xdr_SETATTR3resfail (xdrs, &objp->SETATTR3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_LOOKUP3args (XDR* xdrs, LOOKUP3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->what)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUP3resok (XDR* xdrs, LOOKUP3resok* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->object)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUP3resfail (XDR* xdrs, LOOKUP3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUP3res (XDR* xdrs, LOOKUP3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_LOOKUP3resok (xdrs, &objp->LOOKUP3res_u.resok)) { return FALSE; } break; default: if (!xdr_LOOKUP3resfail (xdrs, &objp->LOOKUP3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_ACCESS3args (XDR* xdrs, ACCESS3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->object)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS3resok (XDR* xdrs, ACCESS3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS3resfail (XDR* xdrs, ACCESS3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS3res (XDR* xdrs, ACCESS3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_ACCESS3resok (xdrs, &objp->ACCESS3res_u.resok)) { return FALSE; } break; default: if (!xdr_ACCESS3resfail (xdrs, &objp->ACCESS3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_READLINK3args (XDR* xdrs, READLINK3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->symlink)) { return FALSE; } return TRUE; } bool_t xdr_READLINK3resok (XDR* xdrs, READLINK3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->symlink_attributes)) { return FALSE; } if (!xdr_nfspath3 (xdrs, &objp->data)) { return FALSE; } return TRUE; } bool_t xdr_READLINK3resfail (XDR* xdrs, READLINK3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->symlink_attributes)) { return FALSE; } return TRUE; } bool_t xdr_READLINK3res (XDR* xdrs, READLINK3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_READLINK3resok (xdrs, &objp->READLINK3res_u.resok)) { return FALSE; } break; default: if (!xdr_READLINK3resfail (xdrs, &objp->READLINK3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_READ3args (XDR* xdrs, READ3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->file)) { return FALSE; } if (!xdr_offset3 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_READ3resok (XDR* xdrs, READ3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->file_attributes)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } return TRUE; } bool_t xdr_READ3resfail (XDR* xdrs, READ3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->file_attributes)) { return FALSE; } return TRUE; } bool_t xdr_READ3res (XDR* xdrs, READ3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_READ3resok (xdrs, &objp->READ3res_u.resok)) { return FALSE; } break; default: if (!xdr_READ3resfail (xdrs, &objp->READ3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_stable_how (XDR* xdrs, stable_how* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_WRITE3args (XDR* xdrs, WRITE3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->file)) { return FALSE; } if (!xdr_offset3 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } if (!xdr_stable_how (xdrs, &objp->stable)) { return FALSE; } return TRUE; } bool_t xdr_WRITE3resok (XDR* xdrs, WRITE3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->file_wcc)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } if (!xdr_stable_how (xdrs, &objp->committed)) { return FALSE; } if (!xdr_writeverf3 (xdrs, objp->verf)) { return FALSE; } return TRUE; } bool_t xdr_WRITE3resfail (XDR* xdrs, WRITE3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->file_wcc)) { return FALSE; } return TRUE; } bool_t xdr_WRITE3res (XDR* xdrs, WRITE3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_WRITE3resok (xdrs, &objp->WRITE3res_u.resok)) { return FALSE; } break; default: if (!xdr_WRITE3resfail (xdrs, &objp->WRITE3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_createmode3 (XDR* xdrs, createmode3* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_createhow3 (XDR* xdrs, createhow3* objp) { if (!xdr_createmode3 (xdrs, &objp->mode)) { return FALSE; } switch (objp->mode) { case UNCHECKED: case GUARDED: if (!xdr_sattr3 (xdrs, &objp->createhow3_u.obj_attributes)) { return FALSE; } break; case EXCLUSIVE: if (!xdr_createverf3 (xdrs, objp->createhow3_u.verf)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_CREATE3args (XDR* xdrs, CREATE3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->where)) { return FALSE; } if (!xdr_createhow3 (xdrs, &objp->how)) { return FALSE; } return TRUE; } bool_t xdr_CREATE3resok (XDR* xdrs, CREATE3resok* objp) { if (!xdr_post_op_fh3 (xdrs, &objp->obj)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_CREATE3resfail (XDR* xdrs, CREATE3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_CREATE3res (XDR* xdrs, CREATE3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_CREATE3resok (xdrs, &objp->CREATE3res_u.resok)) { return FALSE; } break; default: if (!xdr_CREATE3resfail (xdrs, &objp->CREATE3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_MKDIR3args (XDR* xdrs, MKDIR3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->where)) { return FALSE; } if (!xdr_sattr3 (xdrs, &objp->attributes)) { return FALSE; } return TRUE; } bool_t xdr_MKDIR3resok (XDR* xdrs, MKDIR3resok* objp) { if (!xdr_post_op_fh3 (xdrs, &objp->obj)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_MKDIR3resfail (XDR* xdrs, MKDIR3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_MKDIR3res (XDR* xdrs, MKDIR3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_MKDIR3resok (xdrs, &objp->MKDIR3res_u.resok)) { return FALSE; } break; default: if (!xdr_MKDIR3resfail (xdrs, &objp->MKDIR3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_symlinkdata3 (XDR* xdrs, symlinkdata3* objp) { if (!xdr_sattr3 (xdrs, &objp->symlink_attributes)) { return FALSE; } if (!xdr_nfspath3 (xdrs, &objp->symlink_data)) { return FALSE; } return TRUE; } bool_t xdr_SYMLINK3args (XDR* xdrs, SYMLINK3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->where)) { return FALSE; } if (!xdr_symlinkdata3 (xdrs, &objp->symlink)) { return FALSE; } return TRUE; } bool_t xdr_SYMLINK3resok (XDR* xdrs, SYMLINK3resok* objp) { if (!xdr_post_op_fh3 (xdrs, &objp->obj)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_SYMLINK3resfail (XDR* xdrs, SYMLINK3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_SYMLINK3res (XDR* xdrs, SYMLINK3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_SYMLINK3resok (xdrs, &objp->SYMLINK3res_u.resok)) { return FALSE; } break; default: if (!xdr_SYMLINK3resfail (xdrs, &objp->SYMLINK3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_devicedata3 (XDR* xdrs, devicedata3* objp) { if (!xdr_sattr3 (xdrs, &objp->dev_attributes)) { return FALSE; } if (!xdr_specdata3 (xdrs, &objp->spec)) { return FALSE; } return TRUE; } bool_t xdr_mknoddata3 (XDR* xdrs, mknoddata3* objp) { if (!xdr_ftype3 (xdrs, &objp->type)) { return FALSE; } switch (objp->type) { case NF3CHR: case NF3BLK: if (!xdr_devicedata3 (xdrs, &objp->mknoddata3_u.device)) { return FALSE; } break; case NF3SOCK: case NF3FIFO: if (!xdr_sattr3 (xdrs, &objp->mknoddata3_u.pipe_attributes)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_MKNOD3args (XDR* xdrs, MKNOD3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->where)) { return FALSE; } if (!xdr_mknoddata3 (xdrs, &objp->what)) { return FALSE; } return TRUE; } bool_t xdr_MKNOD3resok (XDR* xdrs, MKNOD3resok* objp) { if (!xdr_post_op_fh3 (xdrs, &objp->obj)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_MKNOD3resfail (XDR* xdrs, MKNOD3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_MKNOD3res (XDR* xdrs, MKNOD3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_MKNOD3resok (xdrs, &objp->MKNOD3res_u.resok)) { return FALSE; } break; default: if (!xdr_MKNOD3resfail (xdrs, &objp->MKNOD3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_REMOVE3args (XDR* xdrs, REMOVE3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE3resok (XDR* xdrs, REMOVE3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE3resfail (XDR* xdrs, REMOVE3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE3res (XDR* xdrs, REMOVE3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_REMOVE3resok (xdrs, &objp->REMOVE3res_u.resok)) { return FALSE; } break; default: if (!xdr_REMOVE3resfail (xdrs, &objp->REMOVE3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_RMDIR3args (XDR* xdrs, RMDIR3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_RMDIR3resok (XDR* xdrs, RMDIR3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_RMDIR3resfail (XDR* xdrs, RMDIR3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->dir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_RMDIR3res (XDR* xdrs, RMDIR3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_RMDIR3resok (xdrs, &objp->RMDIR3res_u.resok)) { return FALSE; } break; default: if (!xdr_RMDIR3resfail (xdrs, &objp->RMDIR3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_RENAME3args (XDR* xdrs, RENAME3args* objp) { if (!xdr_diropargs3 (xdrs, &objp->from)) { return FALSE; } if (!xdr_diropargs3 (xdrs, &objp->to)) { return FALSE; } return TRUE; } bool_t xdr_RENAME3resok (XDR* xdrs, RENAME3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->fromdir_wcc)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->todir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_RENAME3resfail (XDR* xdrs, RENAME3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->fromdir_wcc)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->todir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_RENAME3res (XDR* xdrs, RENAME3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_RENAME3resok (xdrs, &objp->RENAME3res_u.resok)) { return FALSE; } break; default: if (!xdr_RENAME3resfail (xdrs, &objp->RENAME3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_LINK3args (XDR* xdrs, LINK3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->file)) { return FALSE; } if (!xdr_diropargs3 (xdrs, &objp->link)) { return FALSE; } return TRUE; } bool_t xdr_LINK3resok (XDR* xdrs, LINK3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->file_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->linkdir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_LINK3resfail (XDR* xdrs, LINK3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->file_attributes)) { return FALSE; } if (!xdr_wcc_data (xdrs, &objp->linkdir_wcc)) { return FALSE; } return TRUE; } bool_t xdr_LINK3res (XDR* xdrs, LINK3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_LINK3resok (xdrs, &objp->LINK3res_u.resok)) { return FALSE; } break; default: if (!xdr_LINK3resfail (xdrs, &objp->LINK3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_READDIR3args (XDR* xdrs, READDIR3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->dir)) { return FALSE; } if (!xdr_cookie3 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_cookieverf3 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_entry3 (XDR* xdrs, entry3* objp) { if (!xdr_fileid3 (xdrs, &objp->fileid)) { return FALSE; } if (!xdr_filename3 (xdrs, &objp->name)) { return FALSE; } if (!xdr_cookie3 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_pointer (xdrs, (char**)&objp->nextentry, sizeof (entry3), (xdrproc_t) xdr_entry3)) { return FALSE; } return TRUE; } bool_t xdr_dirlist3 (XDR* xdrs, dirlist3* objp) { if (!xdr_pointer (xdrs, (char**)&objp->entries, sizeof (entry3), (xdrproc_t) xdr_entry3)) { return FALSE; } if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } return TRUE; } bool_t xdr_READDIR3resok (XDR* xdrs, READDIR3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } if (!xdr_cookieverf3 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_dirlist3 (xdrs, &objp->reply)) { return FALSE; } return TRUE; } bool_t xdr_READDIR3resfail (XDR* xdrs, READDIR3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_READDIR3res (XDR* xdrs, READDIR3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_READDIR3resok (xdrs, &objp->READDIR3res_u.resok)) { return FALSE; } break; default: if (!xdr_READDIR3resfail (xdrs, &objp->READDIR3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_READDIRPLUS3args (XDR* xdrs, READDIRPLUS3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->dir)) { return FALSE; } if (!xdr_cookie3 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_cookieverf3 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->dircount)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->maxcount)) { return FALSE; } return TRUE; } bool_t xdr_entryplus3 (XDR* xdrs, entryplus3* objp) { if (!xdr_fileid3 (xdrs, &objp->fileid)) { return FALSE; } if (!xdr_filename3 (xdrs, &objp->name)) { return FALSE; } if (!xdr_cookie3 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_post_op_attr (xdrs, &objp->name_attributes)) { return FALSE; } if (!xdr_post_op_fh3 (xdrs, &objp->name_handle)) { return FALSE; } if (!xdr_pointer (xdrs, (char**)&objp->nextentry, sizeof (entryplus3), (xdrproc_t) xdr_entryplus3)) { return FALSE; } return TRUE; } bool_t xdr_dirlistplus3 (XDR* xdrs, dirlistplus3* objp) { if (!xdr_pointer (xdrs, (char**)&objp->entries, sizeof (entryplus3), (xdrproc_t) xdr_entryplus3)) { return FALSE; } if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } return TRUE; } bool_t xdr_READDIRPLUS3resok (XDR* xdrs, READDIRPLUS3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } if (!xdr_cookieverf3 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_dirlistplus3 (xdrs, &objp->reply)) { return FALSE; } return TRUE; } bool_t xdr_READDIRPLUS3resfail (XDR* xdrs, READDIRPLUS3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_READDIRPLUS3res (XDR* xdrs, READDIRPLUS3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_READDIRPLUS3resok (xdrs, &objp->READDIRPLUS3res_u.resok)) { return FALSE; } break; default: if (!xdr_READDIRPLUS3resfail (xdrs, &objp->READDIRPLUS3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_FSSTAT3args (XDR* xdrs, FSSTAT3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->fsroot)) { return FALSE; } return TRUE; } bool_t xdr_FSSTAT3resok (XDR* xdrs, FSSTAT3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->tbytes)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->fbytes)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->abytes)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->tfiles)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->ffiles)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->afiles)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->invarsec)) { return FALSE; } return TRUE; } bool_t xdr_FSSTAT3resfail (XDR* xdrs, FSSTAT3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_FSSTAT3res (XDR* xdrs, FSSTAT3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_FSSTAT3resok (xdrs, &objp->FSSTAT3res_u.resok)) { return FALSE; } break; default: if (!xdr_FSSTAT3resfail (xdrs, &objp->FSSTAT3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_FSINFO3args (XDR* xdrs, FSINFO3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->fsroot)) { return FALSE; } return TRUE; } bool_t xdr_FSINFO3resok (XDR* xdrs, FSINFO3resok* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->rtmax)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->rtpref)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->rtmult)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->wtmax)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->wtpref)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->wtmult)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->dtpref)) { return FALSE; } if (!xdr_size3 (xdrs, &objp->maxfilesize)) { return FALSE; } if (!xdr_nfstime3 (xdrs, &objp->time_delta)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->properties)) { return FALSE; } return TRUE; } bool_t xdr_FSINFO3resfail (XDR* xdrs, FSINFO3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_FSINFO3res (XDR* xdrs, FSINFO3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_FSINFO3resok (xdrs, &objp->FSINFO3res_u.resok)) { return FALSE; } break; default: if (!xdr_FSINFO3resfail (xdrs, &objp->FSINFO3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_PATHCONF3args (XDR* xdrs, PATHCONF3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_PATHCONF3resok (XDR* xdrs, PATHCONF3resok* objp) { int32_t* buf; if (xdrs->x_op == XDR_ENCODE) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->linkmax)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->name_max)) { return FALSE; } buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT); if (buf == NULL) { if (!xdr_bool (xdrs, &objp->no_trunc)) { return FALSE; } if (!xdr_bool (xdrs, &objp->chown_restricted)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_insensitive)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_preserving)) { return FALSE; } } else { IXDR_PUT_BOOL(buf, objp->no_trunc); IXDR_PUT_BOOL(buf, objp->chown_restricted); IXDR_PUT_BOOL(buf, objp->case_insensitive); IXDR_PUT_BOOL(buf, objp->case_preserving); } return TRUE; } else if (xdrs->x_op == XDR_DECODE) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->linkmax)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->name_max)) { return FALSE; } buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT); if (buf == NULL) { if (!xdr_bool (xdrs, &objp->no_trunc)) { return FALSE; } if (!xdr_bool (xdrs, &objp->chown_restricted)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_insensitive)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_preserving)) { return FALSE; } } else { objp->no_trunc = IXDR_GET_BOOL(buf); objp->chown_restricted = IXDR_GET_BOOL(buf); objp->case_insensitive = IXDR_GET_BOOL(buf); objp->case_preserving = IXDR_GET_BOOL(buf); } return TRUE; } if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->linkmax)) { return FALSE; } if (!xdr_uint32 (xdrs, &objp->name_max)) { return FALSE; } if (!xdr_bool (xdrs, &objp->no_trunc)) { return FALSE; } if (!xdr_bool (xdrs, &objp->chown_restricted)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_insensitive)) { return FALSE; } if (!xdr_bool (xdrs, &objp->case_preserving)) { return FALSE; } return TRUE; } bool_t xdr_PATHCONF3resfail (XDR* xdrs, PATHCONF3resfail* objp) { if (!xdr_post_op_attr (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_PATHCONF3res (XDR* xdrs, PATHCONF3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_PATHCONF3resok (xdrs, &objp->PATHCONF3res_u.resok)) { return FALSE; } break; default: if (!xdr_PATHCONF3resfail (xdrs, &objp->PATHCONF3res_u.resfail)) { return FALSE; } break; } return TRUE; } bool_t xdr_COMMIT3args (XDR* xdrs, COMMIT3args* objp) { if (!xdr_nfs_fh3 (xdrs, &objp->file)) { return FALSE; } if (!xdr_offset3 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count3 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT3resok (XDR* xdrs, COMMIT3resok* objp) { if (!xdr_wcc_data (xdrs, &objp->file_wcc)) { return FALSE; } if (!xdr_writeverf3 (xdrs, objp->verf)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT3resfail (XDR* xdrs, COMMIT3resfail* objp) { if (!xdr_wcc_data (xdrs, &objp->file_wcc)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT3res (XDR* xdrs, COMMIT3res* objp) { if (!xdr_nfsstat3 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS3_OK: if (!xdr_COMMIT3resok (xdrs, &objp->COMMIT3res_u.resok)) { return FALSE; } break; default: if (!xdr_COMMIT3resfail (xdrs, &objp->COMMIT3res_u.resfail)) { return FALSE; } break; } return TRUE; } } // namespace NFS3 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs3/nfs3_utils.h000066400000000000000000000415331261713114600212570ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Dzianis Huznou (Alexey Costroma) // Description: Helpers for parsing NFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS3_UTILS_H #define NFS3_UTILS_H //------------------------------------------------------------------------------ #include #include #include "api/nfs_types.h" #include "api/nfs3_types_rpcgen.h" #include "protocols/xdr/xdr_decoder.h" #include "protocols/rpc/rpc_header.h" //------------------------------------------------------------------------------ #define NST_PUBLIC __attribute__ ((visibility("default"))) //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS3 { namespace NFS3 = NST::API::NFS3; using ProcEnumNFS3 = API::ProcEnumNFS3; using Validator = rpc::RPCProgramValidator < 100003, // SunRPC/NFS program 3, // v3 ProcEnumNFS3::NFS_NULL, // NFSPROC3_NULL ProcEnumNFS3::COMMIT // NFSPROC3_COMMIT >; bool_t xdr_uint64 (XDR *, NFS3::uint64*); bool_t xdr_uint32 (XDR *, NFS3::uint32*); bool_t xdr_int64 (XDR *, NFS3::int64*); bool_t xdr_int32 (XDR *, NFS3::int32*); bool_t xdr_filename3 (XDR *, NFS3::filename3*); bool_t xdr_nfspath3 (XDR *, NFS3::nfspath3*); bool_t xdr_fileid3 (XDR *, NFS3::fileid3*); bool_t xdr_cookie3 (XDR *, NFS3::cookie3*); bool_t xdr_cookieverf3 (XDR *, NFS3::cookieverf3); bool_t xdr_createverf3 (XDR *, NFS3::createverf3); bool_t xdr_writeverf3 (XDR *, NFS3::writeverf3); bool_t xdr_uid3 (XDR *, NFS3::uid3*); bool_t xdr_gid3 (XDR *, NFS3::gid3*); bool_t xdr_size3 (XDR *, NFS3::size3*); bool_t xdr_offset3 (XDR *, NFS3::offset3*); bool_t xdr_mode3 (XDR *, NFS3::mode3*); bool_t xdr_count3 (XDR *, NFS3::count3*); bool_t xdr_nfsstat3 (XDR *, NFS3::nfsstat3*); bool_t xdr_ftype3 (XDR *, NFS3::ftype3*); bool_t xdr_specdata3 (XDR *, NFS3::specdata3*); bool_t xdr_nfs_fh3 (XDR *, NFS3::nfs_fh3*); bool_t xdr_nfstime3 (XDR *, NFS3::nfstime3*); bool_t xdr_fattr3 (XDR *, NFS3::fattr3*); bool_t xdr_post_op_attr (XDR *, NFS3::post_op_attr*); bool_t xdr_wcc_attr (XDR *, NFS3::wcc_attr*); bool_t xdr_pre_op_attr (XDR *, NFS3::pre_op_attr*); bool_t xdr_wcc_data (XDR *, NFS3::wcc_data*); bool_t xdr_post_op_fh3 (XDR *, NFS3::post_op_fh3*); bool_t xdr_time_how (XDR *, NFS3::time_how*); bool_t xdr_set_mode3 (XDR *, NFS3::set_mode3*); bool_t xdr_set_uid3 (XDR *, NFS3::set_uid3*); bool_t xdr_set_gid3 (XDR *, NFS3::set_gid3*); bool_t xdr_set_size3 (XDR *, NFS3::set_size3*); bool_t xdr_set_atime (XDR *, NFS3::set_atime*); bool_t xdr_set_mtime (XDR *, NFS3::set_mtime*); bool_t xdr_sattr3 (XDR *, NFS3::sattr3*); bool_t xdr_diropargs3 (XDR *, NFS3::diropargs3*); bool_t xdr_NULL3args (XDR *, NFS3::NULL3args*); // for compatibility bool_t xdr_NULL3res (XDR *, NFS3::NULL3res*); // for compatibility bool_t xdr_GETATTR3args (XDR *, NFS3::GETATTR3args*); bool_t xdr_GETATTR3resok (XDR *, NFS3::GETATTR3resok*); bool_t xdr_GETATTR3res (XDR *, NFS3::GETATTR3res*); bool_t xdr_sattrguard3 (XDR *, NFS3::sattrguard3*); bool_t xdr_SETATTR3args (XDR *, NFS3::SETATTR3args*); bool_t xdr_SETATTR3resok (XDR *, NFS3::SETATTR3resok*); bool_t xdr_SETATTR3resfail (XDR *, NFS3::SETATTR3resfail*); bool_t xdr_SETATTR3res (XDR *, NFS3::SETATTR3res*); bool_t xdr_LOOKUP3args (XDR *, NFS3::LOOKUP3args*); bool_t xdr_LOOKUP3resok (XDR *, NFS3::LOOKUP3resok*); bool_t xdr_LOOKUP3resfail (XDR *, NFS3::LOOKUP3resfail*); bool_t xdr_LOOKUP3res (XDR *, NFS3::LOOKUP3res*); bool_t xdr_ACCESS3args (XDR *, NFS3::ACCESS3args*); bool_t xdr_ACCESS3resok (XDR *, NFS3::ACCESS3resok*); bool_t xdr_ACCESS3resfail (XDR *, NFS3::ACCESS3resfail*); bool_t xdr_ACCESS3res (XDR *, NFS3::ACCESS3res*); bool_t xdr_READLINK3args (XDR *, NFS3::READLINK3args*); bool_t xdr_READLINK3resok (XDR *, NFS3::READLINK3resok*); bool_t xdr_READLINK3resfail (XDR *, NFS3::READLINK3resfail*); bool_t xdr_READLINK3res (XDR *, NFS3::READLINK3res*); bool_t xdr_READ3args (XDR *, NFS3::READ3args*); bool_t xdr_READ3resok (XDR *, NFS3::READ3resok*); bool_t xdr_READ3resfail (XDR *, NFS3::READ3resfail*); bool_t xdr_READ3res (XDR *, NFS3::READ3res*); bool_t xdr_stable_how (XDR *, NFS3::stable_how*); bool_t xdr_WRITE3args (XDR *, NFS3::WRITE3args*); bool_t xdr_WRITE3resok (XDR *, NFS3::WRITE3resok*); bool_t xdr_WRITE3resfail (XDR *, NFS3::WRITE3resfail*); bool_t xdr_WRITE3res (XDR *, NFS3::WRITE3res*); bool_t xdr_createmode3 (XDR *, NFS3::createmode3*); bool_t xdr_createhow3 (XDR *, NFS3::createhow3*); bool_t xdr_CREATE3args (XDR *, NFS3::CREATE3args*); bool_t xdr_CREATE3resok (XDR *, NFS3::CREATE3resok*); bool_t xdr_CREATE3resfail (XDR *, NFS3::CREATE3resfail*); bool_t xdr_CREATE3res (XDR *, NFS3::CREATE3res*); bool_t xdr_MKDIR3args (XDR *, NFS3::MKDIR3args*); bool_t xdr_MKDIR3resok (XDR *, NFS3::MKDIR3resok*); bool_t xdr_MKDIR3resfail (XDR *, NFS3::MKDIR3resfail*); bool_t xdr_MKDIR3res (XDR *, NFS3::MKDIR3res*); bool_t xdr_symlinkdata3 (XDR *, NFS3::symlinkdata3*); bool_t xdr_SYMLINK3args (XDR *, NFS3::SYMLINK3args*); bool_t xdr_SYMLINK3resok (XDR *, NFS3::SYMLINK3resok*); bool_t xdr_SYMLINK3resfail (XDR *, NFS3::SYMLINK3resfail*); bool_t xdr_SYMLINK3res (XDR *, NFS3::SYMLINK3res*); bool_t xdr_devicedata3 (XDR *, NFS3::devicedata3*); bool_t xdr_mknoddata3 (XDR *, NFS3::mknoddata3*); bool_t xdr_MKNOD3args (XDR *, NFS3::MKNOD3args*); bool_t xdr_MKNOD3resok (XDR *, NFS3::MKNOD3resok*); bool_t xdr_MKNOD3resfail (XDR *, NFS3::MKNOD3resfail*); bool_t xdr_MKNOD3res (XDR *, NFS3::MKNOD3res*); bool_t xdr_REMOVE3args (XDR *, NFS3::REMOVE3args*); bool_t xdr_REMOVE3resok (XDR *, NFS3::REMOVE3resok*); bool_t xdr_REMOVE3resfail (XDR *, NFS3::REMOVE3resfail*); bool_t xdr_REMOVE3res (XDR *, NFS3::REMOVE3res*); bool_t xdr_RMDIR3args (XDR *, NFS3::RMDIR3args*); bool_t xdr_RMDIR3resok (XDR *, NFS3::RMDIR3resok*); bool_t xdr_RMDIR3resfail (XDR *, NFS3::RMDIR3resfail*); bool_t xdr_RMDIR3res (XDR *, NFS3::RMDIR3res*); bool_t xdr_RENAME3args (XDR *, NFS3::RENAME3args*); bool_t xdr_RENAME3resok (XDR *, NFS3::RENAME3resok*); bool_t xdr_RENAME3resfail (XDR *, NFS3::RENAME3resfail*); bool_t xdr_RENAME3res (XDR *, NFS3::RENAME3res*); bool_t xdr_LINK3args (XDR *, NFS3::LINK3args*); bool_t xdr_LINK3resok (XDR *, NFS3::LINK3resok*); bool_t xdr_LINK3resfail (XDR *, NFS3::LINK3resfail*); bool_t xdr_LINK3res (XDR *, NFS3::LINK3res*); bool_t xdr_READDIR3args (XDR *, NFS3::READDIR3args*); bool_t xdr_entry3 (XDR *, NFS3::entry3*); bool_t xdr_dirlist3 (XDR *, NFS3::dirlist3*); bool_t xdr_READDIR3resok (XDR *, NFS3::READDIR3resok*); bool_t xdr_READDIR3resfail (XDR *, NFS3::READDIR3resfail*); bool_t xdr_READDIR3res (XDR *, NFS3::READDIR3res*); bool_t xdr_READDIRPLUS3args (XDR *, NFS3::READDIRPLUS3args*); bool_t xdr_entryplus3 (XDR *, NFS3::entryplus3*); bool_t xdr_dirlistplus3 (XDR *, NFS3::dirlistplus3*); bool_t xdr_READDIRPLUS3resok (XDR *, NFS3::READDIRPLUS3resok*); bool_t xdr_READDIRPLUS3resfail (XDR *, NFS3::READDIRPLUS3resfail*); bool_t xdr_READDIRPLUS3res (XDR *, NFS3::READDIRPLUS3res*); bool_t xdr_FSSTAT3args (XDR *, NFS3::FSSTAT3args*); bool_t xdr_FSSTAT3resok (XDR *, NFS3::FSSTAT3resok*); bool_t xdr_FSSTAT3resfail (XDR *, NFS3::FSSTAT3resfail*); bool_t xdr_FSSTAT3res (XDR *, NFS3::FSSTAT3res*); bool_t xdr_FSINFO3args (XDR *, NFS3::FSINFO3args*); bool_t xdr_FSINFO3resok (XDR *, NFS3::FSINFO3resok*); bool_t xdr_FSINFO3resfail (XDR *, NFS3::FSINFO3resfail*); bool_t xdr_FSINFO3res (XDR *, NFS3::FSINFO3res*); bool_t xdr_PATHCONF3args (XDR *, NFS3::PATHCONF3args*); bool_t xdr_PATHCONF3resok (XDR *, NFS3::PATHCONF3resok*); bool_t xdr_PATHCONF3resfail (XDR *, NFS3::PATHCONF3resfail*); bool_t xdr_PATHCONF3res (XDR *, NFS3::PATHCONF3res*); bool_t xdr_COMMIT3args (XDR *, NFS3::COMMIT3args*); bool_t xdr_COMMIT3resok (XDR *, NFS3::COMMIT3resok*); bool_t xdr_COMMIT3resfail (XDR *, NFS3::COMMIT3resfail*); bool_t xdr_COMMIT3res (XDR *, NFS3::COMMIT3res*); // Procedure 0: NULL - Do nothing inline auto proc_t_of(NFS3::NULL3args&)->decltype(&xdr_NULL3args) { return &xdr_NULL3args; } inline auto proc_t_of(NFS3::NULL3res&)->decltype(&xdr_NULL3res) { return &xdr_NULL3res; } // Procedure 1: GETATTR - Get file attributes inline auto proc_t_of(NFS3::GETATTR3args&)->decltype(&xdr_GETATTR3args) { return &xdr_GETATTR3args; } inline auto proc_t_of(NFS3::GETATTR3res&)->decltype(&xdr_GETATTR3res) { return &xdr_GETATTR3res; } // Procedure 2: SETATTR - Set file attributes inline auto proc_t_of(NFS3::SETATTR3args&)->decltype(&xdr_SETATTR3args) { return &xdr_SETATTR3args; } inline auto proc_t_of(NFS3::SETATTR3res&)->decltype(&xdr_SETATTR3res) { return &xdr_SETATTR3res; } // Procedure 3: LOOKUP - Lookup filename inline auto proc_t_of(NFS3::LOOKUP3args&)->decltype(&xdr_LOOKUP3args) { return &xdr_LOOKUP3args; } inline auto proc_t_of(NFS3::LOOKUP3res&)->decltype(&xdr_LOOKUP3res) { return &xdr_LOOKUP3res; } // Procedure 4: ACCESS - Check Access Permission inline auto proc_t_of(NFS3::ACCESS3args&)->decltype(&xdr_ACCESS3args) { return &xdr_ACCESS3args; } inline auto proc_t_of(NFS3::ACCESS3res&)->decltype(&xdr_ACCESS3res) { return &xdr_ACCESS3res; } // Procedure 5: READLINK - Read from symbolic link inline auto proc_t_of(NFS3::READLINK3args&)->decltype(&xdr_READLINK3args) { return &xdr_READLINK3args; } inline auto proc_t_of(NFS3::READLINK3res&)->decltype(&xdr_READLINK3res) { return &xdr_READLINK3res; } // Procedure 6: READ - Read From file inline auto proc_t_of(NFS3::READ3args&)->decltype(&xdr_READ3args) { return &xdr_READ3args; } inline auto proc_t_of(NFS3::READ3res&)->decltype(&xdr_READ3res) { return &xdr_READ3res; } // Procedure 7: WRITE - Write to file inline auto proc_t_of(NFS3::WRITE3args&)->decltype(&xdr_WRITE3args) { return &xdr_WRITE3args; } inline auto proc_t_of(NFS3::WRITE3res&)->decltype(&xdr_WRITE3res) { return &xdr_WRITE3res; } // Procedure 8: CREATE - Create a file inline auto proc_t_of(NFS3::CREATE3args&)->decltype(&xdr_CREATE3args) { return &xdr_CREATE3args; } inline auto proc_t_of(NFS3::CREATE3res&)->decltype(&xdr_CREATE3res) { return &xdr_CREATE3res; } // Procedure 9: MKDIR - Create a directory inline auto proc_t_of(NFS3::MKDIR3args&)->decltype(&xdr_MKDIR3args) { return &xdr_MKDIR3args; } inline auto proc_t_of(NFS3::MKDIR3res&)->decltype(&xdr_MKDIR3res) { return &xdr_MKDIR3res; } // Procedure 10: SYMLINK - Create a symbolic link inline auto proc_t_of(NFS3::SYMLINK3args&)->decltype(&xdr_SYMLINK3args) { return &xdr_SYMLINK3args; } inline auto proc_t_of(NFS3::SYMLINK3res&)->decltype(&xdr_SYMLINK3res) { return &xdr_SYMLINK3res; } // Procedure 11: MKNOD - Create a special device inline auto proc_t_of(NFS3::MKNOD3args&)->decltype(&xdr_MKNOD3args) { return &xdr_MKNOD3args; } inline auto proc_t_of(NFS3::MKNOD3res&)->decltype(&xdr_MKNOD3res) { return &xdr_MKNOD3res; } // Procedure 12: REMOVE - Remove a File inline auto proc_t_of(NFS3::REMOVE3args&)->decltype(&xdr_REMOVE3args) { return &xdr_REMOVE3args; } inline auto proc_t_of(NFS3::REMOVE3res&)->decltype(&xdr_REMOVE3res) { return &xdr_REMOVE3res; } // Procedure 13: RMDIR - Remove a Directory inline auto proc_t_of(NFS3::RMDIR3args&)->decltype(&xdr_RMDIR3args) { return &xdr_RMDIR3args; } inline auto proc_t_of(NFS3::RMDIR3res&)->decltype(&xdr_RMDIR3res) { return &xdr_RMDIR3res; } // Procedure 14: RENAME - Rename a File or Directory inline auto proc_t_of(NFS3::RENAME3args&)->decltype(&xdr_RENAME3args) { return &xdr_RENAME3args; } inline auto proc_t_of(NFS3::RENAME3res&)->decltype(&xdr_RENAME3res) { return &xdr_RENAME3res; } // Procedure 15: LINK - Create Link to an object inline auto proc_t_of(NFS3::LINK3args&)->decltype(&xdr_LINK3args) { return &xdr_LINK3args; } inline auto proc_t_of(NFS3::LINK3res&)->decltype(&xdr_LINK3res) { return &xdr_LINK3res; } // Procedure 16: READDIR - Read From Directory inline auto proc_t_of(NFS3::READDIR3args&)->decltype(&xdr_READDIR3args) { return &xdr_READDIR3args; } inline auto proc_t_of(NFS3::READDIR3res&)->decltype(&xdr_READDIR3res) { return &xdr_READDIR3res; } // Procedure 17: READDIRPLUS - Extended read from directory inline auto proc_t_of(NFS3::READDIRPLUS3args&)->decltype(&xdr_READDIRPLUS3args) { return &xdr_READDIRPLUS3args; } inline auto proc_t_of(NFS3::READDIRPLUS3res&)->decltype(&xdr_READDIRPLUS3res) { return &xdr_READDIRPLUS3res; } // Procedure 18: FSSTAT - Get dynamic file system information inline auto proc_t_of(NFS3::FSSTAT3args&)->decltype(&xdr_FSSTAT3args) { return &xdr_FSSTAT3args; } inline auto proc_t_of(NFS3::FSSTAT3res&)->decltype(&xdr_FSSTAT3res) { return &xdr_FSSTAT3res; } // Procedure 19: FSINFO - Get static file system Information inline auto proc_t_of(NFS3::FSINFO3args&)->decltype(&xdr_FSINFO3args) { return &xdr_FSINFO3args; } inline auto proc_t_of(NFS3::FSINFO3res&)->decltype(&xdr_FSINFO3res) { return &xdr_FSINFO3res; } // Procedure 20: PATHCONF - Retrieve POSIX information inline auto proc_t_of(NFS3::PATHCONF3args&)->decltype(&xdr_PATHCONF3args) { return &xdr_PATHCONF3args; } inline auto proc_t_of(NFS3::PATHCONF3res&)->decltype(&xdr_PATHCONF3res) { return &xdr_PATHCONF3res; } // Procedure 21: COMMIT - Commit cached data on a server to stable storage inline auto proc_t_of(NFS3::COMMIT3args&)->decltype(&xdr_COMMIT3args) { return &xdr_COMMIT3args; } inline auto proc_t_of(NFS3::COMMIT3res&)->decltype(&xdr_COMMIT3res) { return &xdr_COMMIT3res; } extern "C" NST_PUBLIC const char* print_nfs3_procedures(const ProcEnumNFS3::NFSProcedure proc); std::ostream& operator<<(std::ostream& out, const ProcEnumNFS3::NFSProcedure proc); void print_mode3(std::ostream& out, const NFS3::uint32 val); void print_access3(std::ostream& out, const NFS3::uint32 val); std::ostream& operator<<(std::ostream& out, const NFS3::nfsstat3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::ftype3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::specdata3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::nfs_fh3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::nfstime3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::fattr3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::post_op_attr& obj); std::ostream& operator<<(std::ostream& out, const NFS3::wcc_attr& obj); std::ostream& operator<<(std::ostream& out, const NFS3::pre_op_attr& obj); std::ostream& operator<<(std::ostream& out, const NFS3::wcc_data& obj); std::ostream& operator<<(std::ostream& out, const NFS3::post_op_fh3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::time_how& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_mode3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_uid3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_gid3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_size3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_atime& obj); std::ostream& operator<<(std::ostream& out, const NFS3::set_mtime& obj); std::ostream& operator<<(std::ostream& out, const NFS3::sattr3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::diropargs3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::sattrguard3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::stable_how& obj); std::ostream& operator<<(std::ostream& out, const NFS3::createmode3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::createhow3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::symlinkdata3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::devicedata3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::mknoddata3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::entry3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::dirlist3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::entryplus3& obj); std::ostream& operator<<(std::ostream& out, const NFS3::dirlistplus3& obj); } // namespace NFS3 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NFS3_UTILS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs4/000077500000000000000000000000001261713114600170105ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/nfs4/nfs41_utils.cpp000066400000000000000000005743371261713114600217120ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "protocols/nfs/nfs_utils.h" #include "protocols/nfs4/nfs41_utils.h" //------------------------------------------------------------------------------ using namespace NST::API::NFS41; using namespace NST::protocols::NFS; // NFS helpers //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS41 { std::ostream& operator<<(std::ostream& out, const ProcEnumNFS41::NFSProcedure proc) { return out << print_nfs41_procedures(proc); } const char* print_nfs41_procedures(const ProcEnumNFS41::NFSProcedure proc) { // In all cases we suppose, that NFSv4 operation ILLEGAL(10044) // has the second position in ProcEnumNFS41 uint32_t i = proc; if(proc == ProcEnumNFS41::ILLEGAL) i = 2; static const char* const NFS41ProcedureTitles[(ProcEnumNFS41::count+1)] = { "NULL","COMPOUND", "ILLEGAL", "ACCESS", "CLOSE", "COMMIT", "CREATE", "DELEGPURGE", "DELEGRETURN", "GETATTR", "GETFH", "LINK", "LOCK", "LOCKT", "LOCKU", "LOOKUP", "LOOKUPP", "NVERIFY", "OPEN", "OPENATTR", "OPEN_CONFIRM", "OPEN_DOWNGRADE", "PUTFH", "PUTPUBFH", "PUTROOTFH", "READ", "READDIR", "READLINK", "REMOVE", "RENAME", "RENEW", "RESTOREFH", "SAVEFH", "SECINFO", "SETATTR", "SETCLIENTID", "SETCLIENTID_CONFIRM", "VERIFY", "WRITE", "RELEASE_LOCKOWNER","BACKCHANNEL_CTL", "BIND_CONN_TO_SESSION", "EXCHANGE_ID", "CREATE_SESSION", "DESTROY_SESSION", "FREE_STATEID", "GET_DIR_DELEGATION", "GETDEVICEINFO", "GETDEVICELIST", "LAYOUTCOMMIT", "LAYOUTGET", "LAYOUTRETURN", "SECINFO_NO_NAME", "SEQUENCE", "SET_SSV", "TEST_STATEID", "WANT_DELEGATION", "DESTROY_CLIENTID", "RECLAIM_COMPLETE" }; return NFS41ProcedureTitles[i]; } std::ostream& operator<<(std::ostream& out, const nfs_ftype4& obj) { switch(obj) { case nfs_ftype4::NF4REG: return out << "REG"; case nfs_ftype4::NF4DIR: return out << "DIR"; case nfs_ftype4::NF4BLK: return out << "BLK"; case nfs_ftype4::NF4CHR: return out << "CHR"; case nfs_ftype4::NF4LNK: return out << "LNK"; case nfs_ftype4::NF4SOCK: return out << "SOCK"; case nfs_ftype4::NF4FIFO: return out << "FIFO"; case nfs_ftype4::NF4ATTRDIR: return out << "ATTRDIR"; case nfs_ftype4::NF4NAMEDATTR: return out << "NAMEDATTR"; } return out; } std::ostream& operator<<(std::ostream& out, const nfsstat4& obj) { switch(obj) { case nfsstat4::NFS4_OK: return out << "OK"; case nfsstat4::NFS4ERR_PERM: return out << "ERROR_PERM"; case nfsstat4::NFS4ERR_NOENT: return out << "ERROR_NOENT"; case nfsstat4::NFS4ERR_IO: return out << "ERROR_IO"; case nfsstat4::NFS4ERR_NXIO: return out << "ERROR_NXIO"; case nfsstat4::NFS4ERR_ACCESS: return out << "ERROR_ACCESS"; case nfsstat4::NFS4ERR_EXIST: return out << "ERROR_EXIST"; case nfsstat4::NFS4ERR_XDEV: return out << "ERROR_XDEV"; case nfsstat4::NFS4ERR_NOTDIR: return out << "ERROR_NOTDIR"; case nfsstat4::NFS4ERR_ISDIR: return out << "ERROR_ISDIR"; case nfsstat4::NFS4ERR_INVAL: return out << "ERROR_INVAL"; case nfsstat4::NFS4ERR_FBIG: return out << "ERROR_FBIG"; case nfsstat4::NFS4ERR_NOSPC: return out << "ERROR_NOSPC"; case nfsstat4::NFS4ERR_ROFS: return out << "ERROR_ROFS"; case nfsstat4::NFS4ERR_MLINK: return out << "ERROR_MLINK"; case nfsstat4::NFS4ERR_NAMETOOLONG: return out << "ERROR_NAMETOOLONG"; case nfsstat4::NFS4ERR_NOTEMPTY: return out << "ERROR_NOTEMPTY"; case nfsstat4::NFS4ERR_DQUOT: return out << "ERROR_DQUOT"; case nfsstat4::NFS4ERR_STALE: return out << "ERROR_STALE"; case nfsstat4::NFS4ERR_BADHANDLE: return out << "ERROR_BADHANDLE"; case nfsstat4::NFS4ERR_BAD_COOKIE: return out << "ERROR_BAD_COOKIE"; case nfsstat4::NFS4ERR_NOTSUPP: return out << "ERROR_NOTSUPP"; case nfsstat4::NFS4ERR_TOOSMALL: return out << "ERROR_TOOSMALL"; case nfsstat4::NFS4ERR_SERVERFAULT: return out << "ERROR_SERVERFAULT"; case nfsstat4::NFS4ERR_BADTYPE: return out << "ERROR_BADTYPE"; case nfsstat4::NFS4ERR_DELAY: return out << "ERROR_DELAY"; case nfsstat4::NFS4ERR_SAME: return out << "ERROR_SAME"; case nfsstat4::NFS4ERR_DENIED: return out << "ERROR_DENIED"; case nfsstat4::NFS4ERR_EXPIRED: return out << "ERROR_EXPIRED"; case nfsstat4::NFS4ERR_LOCKED: return out << "ERROR_LOCKED"; case nfsstat4::NFS4ERR_GRACE: return out << "ERROR_GRACE"; case nfsstat4::NFS4ERR_FHEXPIRED: return out << "ERROR_FHEXPIRED"; case nfsstat4::NFS4ERR_SHARE_DENIED: return out << "ERROR_SHARE_DENIED"; case nfsstat4::NFS4ERR_WRONGSEC: return out << "ERROR_WRONGSEC"; case nfsstat4::NFS4ERR_CLID_INUSE: return out << "ERROR_CLID_INUSE"; case nfsstat4::NFS4ERR_RESOURCE: return out << "ERROR_RESOURCE"; case nfsstat4::NFS4ERR_MOVED: return out << "ERROR_MOVED"; case nfsstat4::NFS4ERR_NOFILEHANDLE: return out << "ERROR_NOFILEHANDLE"; case nfsstat4::NFS4ERR_MINOR_VERS_MISMATCH: return out << "ERROR_MINOR_VERS_MISMATCH"; case nfsstat4::NFS4ERR_STALE_CLIENTID: return out << "ERROR_STALE_CLIENTID"; case nfsstat4::NFS4ERR_STALE_STATEID: return out << "ERROR_STALE_STATEID"; case nfsstat4::NFS4ERR_OLD_STATEID: return out << "ERROR_OLD_STATEID"; case nfsstat4::NFS4ERR_BAD_STATEID: return out << "ERROR_BAD_STATEID"; case nfsstat4::NFS4ERR_BAD_SEQID: return out << "ERROR_BAD_SEQID"; case nfsstat4::NFS4ERR_NOT_SAME: return out << "ERROR_NOT_SAME"; case nfsstat4::NFS4ERR_LOCK_RANGE: return out << "ERROR_LOCK_RANGE"; case nfsstat4::NFS4ERR_SYMLINK: return out << "ERROR_SYMLINK"; case nfsstat4::NFS4ERR_RESTOREFH: return out << "ERROR_RESTOREFH"; case nfsstat4::NFS4ERR_LEASE_MOVED: return out << "ERROR_LEASE_MOVED"; case nfsstat4::NFS4ERR_ATTRNOTSUPP: return out << "ERROR_ATTRNOTSUPP"; case nfsstat4::NFS4ERR_NO_GRACE: return out << "ERROR_NO_GRACE"; case nfsstat4::NFS4ERR_RECLAIM_BAD: return out << "ERROR_RECLAIM_BAD"; case nfsstat4::NFS4ERR_RECLAIM_CONFLICT: return out << "ERROR_RECLAIM_CONFLICT"; case nfsstat4::NFS4ERR_BADXDR: return out << "ERROR_BADXDR"; case nfsstat4::NFS4ERR_LOCKS_HELD: return out << "ERROR_LOCKS_HELD"; case nfsstat4::NFS4ERR_OPENMODE: return out << "ERROR_OPENMODE"; case nfsstat4::NFS4ERR_BADOWNER: return out << "ERROR_BADOWNER"; case nfsstat4::NFS4ERR_BADCHAR: return out << "ERROR_BADCHAR"; case nfsstat4::NFS4ERR_BADNAME: return out << "ERROR_BADNAME"; case nfsstat4::NFS4ERR_BAD_RANGE: return out << "ERROR_BAD_RANGE"; case nfsstat4::NFS4ERR_LOCK_NOTSUPP: return out << "ERROR_LOCK_NOTSUPP"; case nfsstat4::NFS4ERR_OP_ILLEGAL: return out << "ERROR_OP_ILLEGAL"; case nfsstat4::NFS4ERR_DEADLOCK: return out << "ERROR_DEADLOCK"; case nfsstat4::NFS4ERR_FILE_OPEN: return out << "ERROR_FILE_OPEN"; case nfsstat4::NFS4ERR_ADMIN_REVOKED: return out << "ERROR_ADMIN_REVOKED"; case nfsstat4::NFS4ERR_CB_PATH_DOWN: return out << "ERROR_CB_PATH_DOWN"; case nfsstat4::NFS4ERR_BADIOMODE: return out << "NFS4ERR_BADIOMODE"; case nfsstat4::NFS4ERR_BADLAYOUT: return out << "NFS4ERR_BADLAYOUT"; case nfsstat4::NFS4ERR_BAD_SESSION_DIGEST: return out << "NFS4ERR_BAD_SESSION_DIGEST"; case nfsstat4::NFS4ERR_BADSESSION: return out << "NFS4ERR_BADSESSION"; case nfsstat4::NFS4ERR_BADSLOT: return out << "NFS4ERR_BADSLOT"; case nfsstat4::NFS4ERR_COMPLETE_ALREADY: return out << "NFS4ERR_COMPLETE_ALREADY"; case nfsstat4::NFS4ERR_CONN_NOT_BOUND_TO_SESSION: return out << "NFS4ERR_CONN_NOT_BOUND_TO_SESSION"; case nfsstat4::NFS4ERR_DELEG_ALREADY_WANTED: return out << "NFS4ERR_DELEG_ALREADY_WANTED"; case nfsstat4::NFS4ERR_BACK_CHAN_BUSY: return out << "NFS4ERR_BACK_CHAN_BUSY"; case nfsstat4::NFS4ERR_LAYOUTTRYLATER: return out << "NFS4ERR_LAYOUTTRYLATER"; case nfsstat4::NFS4ERR_LAYOUTUNAVAILABLE: return out << "NFS4ERR_LAYOUTUNAVAILABLE"; case nfsstat4::NFS4ERR_NOMATCHING_LAYOUT: return out << "NFS4ERR_NOMATCHING_LAYOUT"; case nfsstat4::NFS4ERR_RECALLCONFLICT: return out << "NFS4ERR_RECALLCONFLICT"; case nfsstat4::NFS4ERR_UNKNOWN_LAYOUTTYPE: return out << "NFS4ERR_UNKNOWN_LAYOUTTYPE"; case nfsstat4::NFS4ERR_SEQ_MISORDERED: return out << "NFS4ERR_SEQ_MISORDERED"; case nfsstat4::NFS4ERR_SEQUENCE_POS: return out << "NFS4ERR_SEQUENCE_POS"; case nfsstat4::NFS4ERR_REQ_TOO_BIG: return out << "NFS4ERR_REQ_TOO_BIG"; case nfsstat4::NFS4ERR_REP_TOO_BIG: return out << "NFS4ERR_REP_TOO_BIG"; case nfsstat4::NFS4ERR_REP_TOO_BIG_TO_CACHE: return out << "NFS4ERR_REP_TOO_BIG_TO_CACHE"; case nfsstat4::NFS4ERR_RETRY_UNCACHED_REP: return out << "NFS4ERR_RETRY_UNCACHED_REP"; case nfsstat4::NFS4ERR_UNSAFE_COMPOUND: return out << "NFS4ERR_UNSAFE_COMPOUND"; case nfsstat4::NFS4ERR_TOO_MANY_OPS: return out << "NFS4ERR_TOO_MANY_OPS"; case nfsstat4::NFS4ERR_OP_NOT_IN_SESSION: return out << "NFS4ERR_OP_NOT_IN_SESSION"; case nfsstat4::NFS4ERR_HASH_ALG_UNSUPP: return out << "NFS4ERR_HASH_ALG_UNSUPP"; case nfsstat4::NFS4ERR_CLIENTID_BUSY: return out << "NFS4ERR_CLIENTID_BUSY"; case nfsstat4::NFS4ERR_PNFS_IO_HOLE: return out << "NFS4ERR_PNFS_IO_HOLE"; case nfsstat4::NFS4ERR_SEQ_FALSE_RETRY: return out << "NFS4ERR_SEQ_FALSE_RETRY"; case nfsstat4::NFS4ERR_BAD_HIGH_SLOT: return out << "NFS4ERR_BAD_HIGH_SLOT"; case nfsstat4::NFS4ERR_DEADSESSION: return out << "NFS4ERR_DEADSESSION"; case nfsstat4::NFS4ERR_ENCR_ALG_UNSUPP: return out << "NFS4ERR_ENCR_ALG_UNSUPP"; case nfsstat4::NFS4ERR_PNFS_NO_LAYOUT: return out << "NFS4ERR_PNFS_NO_LAYOUT"; case nfsstat4::NFS4ERR_NOT_ONLY_OP: return out << "NFS4ERR_NOT_ONLY_OP"; case nfsstat4::NFS4ERR_WRONG_CRED: return out << "NFS4ERR_WRONG_CRED"; case nfsstat4::NFS4ERR_WRONG_TYPE: return out << "NFS4ERR_WRONG_TYPE"; case nfsstat4::NFS4ERR_DIRDELEG_UNAVAIL: return out << "NFS4ERR_DIRDELEG_UNAVAIL"; case nfsstat4::NFS4ERR_REJECT_DELEG: return out << "NFS4ERR_REJECT_DELEG"; case nfsstat4::NFS4ERR_RETURNCONFLICT: return out << "NFS4ERR_RETURNCONFLICT"; case nfsstat4::NFS4ERR_DELEG_REVOKED: return out << "NFS4ERR_DELEG_REVOKED"; } return out; } std::ostream& operator<<(std::ostream& out, const bitmap4& obj) { if(obj.bitmap4_len) { out << "mask: "; print_hex(out, obj.bitmap4_val, obj.bitmap4_len); const size_t nbits {obj.bitmap4_len << 5}; // obj.bitmap4_len * 32 static const char* const FATTR4Attributes[] = { "SUPPORTED_ATTRS", "TYPE", "FH_EXPIRE_TYPE", "CHANGE", "SIZE", "LINK_SUPPORT", "SYMLINK_SUPPORT", "NAMED_ATTR", "FSID", "UNIQUE_HANDLES", "LEASE_TIME", "RDATTR_ERROR", "ACL", "ACLSUPPORT", "ARCHIVE", "CANSETTIME", "CASE_INSENSITIVE","CASE_PRESERVING", "CHOWN_RESTRICTED","FILEHANDLE", "FILEID", "FILES_AVAIL", "FILES_FREE", "FILES_TOTAL", "FS_LOCATIONS", "HIDDEN", "HOMOGENEOUS", "MAXFILESIZE", "MAXLINK", "MAXNAME", "MAXREAD", "MAXWRITE", "MIMETYPE", "MODE", "NO_TRUNC", "NUMLINKS", "OWNER", "OWNER_GROUP", "QUOTA_AVAIL_HARD","QUOTA_AVAIL_SOFT", "QUOTA_USED", "RAWDEV", "SPACE_AVAIL", "SPACE_FREE", "SPACE_TOTAL", "SPACE_USED", "SYSTEM", "TIME_ACCESS", "TIME_ACCESS_SET", "TIME_BACKUP", "TIME_CREATE", "TIME_DELTA", "TIME_METADATA", "TIME_MODIFY", "TIME_MODIFY_SET", "MOUNTED_ON_FILEID", "DIR_NOTIF_DELAY", "DIRENT_NOTIF_DELAY","DACL", "SACL", "CHANGE_POLICY", "FS_STATUS", "FS_LAYOUT_TYPES", "LAYOUT_HINT", "LAYOUT_TYPES", "LAYOUT_BLKSIZE", "LAYOUT_ALIGNMENT","FS_LOCATIONS_INFO", "MDSTHRESHOLD", "RETENTION_GET", "RETENTION_SET", "RETENTEVT_GET", "RETENTEVT_SET", "RETENTION_HOLD", "MODE_SET_MASKED", "SUPPATTR_EXCLCREAT", "FS_CHARSET_CAP" }; for(size_t i {0}; i> (i % 32)) & 0x1; const int bit = (obj.bitmap4_val[i >> 5] >> (i & 31)) & 0x1; if( bit !=0 && i < ( sizeof(FATTR4Attributes)/ sizeof(FATTR4Attributes[0]) ) ) out << ' ' << FATTR4Attributes[i]; } } return out; } std::ostream& operator<<(std::ostream& out, const nfs_fh4& obj) { NFS::print_nfs_fh(out, obj.nfs_fh4_val, obj.nfs_fh4_len); return out; } std::ostream& operator<<(std::ostream& out, const sec_oid4& obj) { print_hex(out, obj.sec_oid4_val, obj.sec_oid4_len); return out; } std::ostream& operator<<(std::ostream& out, const utf8string& obj) { if(obj.utf8string_len) { out.write(obj.utf8string_val, obj.utf8string_len); } else { out << "void"; } return out; } std::ostream& operator<<(std::ostream& out, const pathname4& obj) { component4 *current_el = obj.pathname4_val; for(size_t i {0}; iutf8string_val, current_el->utf8string_len); out << ' '; } return out; } std::ostream& operator<<(std::ostream& out, const nfstime4& obj) { return out << "sec: " << obj.seconds << " nsec: " << obj.nseconds; } std::ostream& operator<<(std::ostream& out, const time_how4& obj) { switch(obj) { case time_how4::SET_TO_SERVER_TIME4: return out << "server time"; case time_how4::SET_TO_CLIENT_TIME4: return out << "client time"; } return out; } std::ostream& operator<<(std::ostream& out, const settime4& obj) { return out << obj.set_it << ": " << obj.settime4_u.time; } std::ostream& operator<<(std::ostream& out, const fsid4& obj) { return out << "major: " << obj.major << " minor: " << obj.minor; } std::ostream& operator<<(std::ostream& out, const fs_location4& obj) { out << "root path: " << obj.rootpath; utf8str_cis *current_el {obj.server.server_val}; for(size_t i {0}; iutf8string_val, current_el->utf8string_len); out << ' '; } return out; } std::ostream& operator<<(std::ostream& out, const fs_locations4& obj) { out << "root: " << obj.fs_root; if(obj.locations.locations_len) { fs_location4* current_el {obj.locations.locations_val}; for(u_int i {0}; infs_fh4_val, current_el->nfs_fh4_len); } return out; } std::ostream& operator<<(std::ostream& out, const createtype4& obj) { out << "type: " << obj.type; switch(obj.type) { case nfs_ftype4::NF4BLK: case nfs_ftype4::NF4CHR: return out << " dev data: " << obj.createtype4_u.devdata; case nfs_ftype4::NF4LNK: return out << " link data: " << obj.createtype4_u.linkdata; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const open_to_lock_owner4& obj) { return out << "open seqid: " << obj.open_seqid << " open state id: " << obj.open_stateid << " lock seqid: " << obj.lock_seqid << " lock owner: " << obj.lock_owner; } std::ostream& operator<<(std::ostream& out, const exist_lock_owner4& obj) { return out << "lock state id: " << obj.lock_stateid << " lock seqid: " << obj.lock_seqid; } std::ostream& operator<<(std::ostream& out, const locker4& obj) { out << "new lock owner: " << obj.new_lock_owner; if(obj.new_lock_owner) return out << " open owner: " << obj.locker4_u.open_owner; else return out << " lock owner: " << obj.locker4_u.lock_owner; } std::ostream& operator<<(std::ostream& out, const createmode4& obj) { switch(obj) { case createmode4::UNCHECKED4: return out << "UNCHECKED"; case createmode4::GUARDED4: return out << "GUARDED"; case createmode4::EXCLUSIVE4: return out << "EXCLUSIVE4"; case createmode4::EXCLUSIVE4_1: return out << "EXCLUSIVE4_1"; } return out; } std::ostream& operator<<(std::ostream& out, const creatverfattr& obj) { out << "verf: "; print_hex(out, obj.cva_verf, NFS4_VERIFIER_SIZE); out << " attrs: " << obj.cva_attrs; return out; } std::ostream& operator<<(std::ostream& out, const createhow4& obj) { out << " mode: " << obj.mode; switch(obj.mode) { case createmode4::UNCHECKED4: case createmode4::GUARDED4: return out << " attributes: " << obj.createhow4_u.createattrs; case createmode4::EXCLUSIVE4: out << " verifier: "; print_hex(out, obj.createhow4_u.createverf, NFS4_VERIFIER_SIZE); case createmode4::EXCLUSIVE4_1: out << " verifier: "; print_hex(out, obj.createhow4_u.ch_createboth.cva_verf, NFS4_VERIFIER_SIZE); default: break; } return out; } std::ostream& operator<<(std::ostream& out, const opentype4& obj) { switch(obj) { case opentype4::OPEN4_NOCREATE: return out << "NO CREATE"; case opentype4::OPEN4_CREATE: return out << "CREATE"; } return out; } std::ostream& operator<<(std::ostream& out, const openflag4& obj) { out << "open type: " << obj.opentype; if(obj.opentype == opentype4::OPEN4_CREATE) return out << obj.openflag4_u.how; else return out; } std::ostream& operator<<(std::ostream& out, const limit_by4& obj) { switch(obj) { case limit_by4::NFS_LIMIT_SIZE: return out << "SIZE"; case limit_by4::NFS_LIMIT_BLOCKS: return out << "BLOCKS"; } return out; } std::ostream& operator<<(std::ostream& out, const nfs_modified_limit4& obj) { return out << "blocks number: " << obj.num_blocks << " bytes per block: " << obj.bytes_per_block; } std::ostream& operator<<(std::ostream& out, const nfs_space_limit4& obj) { out << "limit by: " << obj.limitby; switch(obj.limitby) { case limit_by4::NFS_LIMIT_SIZE: return out << " filesize: " << obj.nfs_space_limit4_u.filesize; case limit_by4::NFS_LIMIT_BLOCKS: return out << " modified blocks: " << obj.nfs_space_limit4_u.mod_blocks; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const open_delegation_type4& obj) { switch(obj) { case open_delegation_type4::OPEN_DELEGATE_NONE: return out << "NONE"; case open_delegation_type4::OPEN_DELEGATE_READ: return out << "READ"; case open_delegation_type4::OPEN_DELEGATE_WRITE: return out << "WRITE"; case open_delegation_type4::OPEN_DELEGATE_NONE_EXT: return out << "NONE_EXT"; } return out; } std::ostream& operator<<(std::ostream& out, const open_claim_type4& obj) { switch(obj) { case open_claim_type4::CLAIM_NULL: return out << "NULL"; case open_claim_type4::CLAIM_PREVIOUS: return out << "PREVIOUS"; case open_claim_type4::CLAIM_DELEGATE_CUR: return out << "DELEGATE CURRENT"; case open_claim_type4::CLAIM_DELEGATE_PREV: return out << "DELEGATE PREVIOUS"; case open_claim_type4::CLAIM_FH: return out << "FH"; case open_claim_type4::CLAIM_DELEG_CUR_FH: return out << "DELEGATE CURRENT FH"; case open_claim_type4::CLAIM_DELEG_PREV_FH: return out << "DELEGATE PREVIOUS FH"; } return out; } std::ostream& operator<<(std::ostream& out, const open_claim_delegate_cur4& obj) { return out << "delegate state id: " << obj.delegate_stateid << " file: " << obj.file; } std::ostream& operator<<(std::ostream& out, const open_claim4& obj) { out << "claim: " << obj.claim; switch(obj.claim) { case open_claim_type4::CLAIM_NULL: out << " file: "; return out.write(obj.open_claim4_u.file.utf8string_val, obj.open_claim4_u.file.utf8string_len); case open_claim_type4::CLAIM_PREVIOUS: return out << " delegate type: " << obj.open_claim4_u.delegate_type; case open_claim_type4::CLAIM_DELEGATE_CUR: return out << " delegate current info: " << obj.open_claim4_u.delegate_cur_info; case open_claim_type4::CLAIM_DELEGATE_PREV: return out << " file delegate previous: " << obj.open_claim4_u.file_delegate_prev; case open_claim_type4::CLAIM_FH: case open_claim_type4::CLAIM_DELEG_PREV_FH: break; case open_claim_type4::CLAIM_DELEG_CUR_FH: return out << " oc delegate stateid: " << obj.open_claim4_u.oc_delegate_stateid; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const open_read_delegation4& obj) { return out << "stateid: " << obj.stateid << " recall: " << obj.recall << " permissions: " << obj.permissions; } std::ostream& operator<<(std::ostream& out, const open_write_delegation4& obj) { return out << "stateid: " << obj.stateid << " recall: " << obj.recall << " space limit: " << obj.space_limit << " permissions: " << obj.permissions; } std::ostream& operator<<(std::ostream& out, const why_no_delegation4& obj) { switch(obj) { case why_no_delegation4::WND4_NOT_WANTED: return out << "NOT WANTED"; case why_no_delegation4::WND4_CONTENTION: return out << "CONTENTION"; case why_no_delegation4::WND4_RESOURCE: return out << "RESOURCE"; case why_no_delegation4::WND4_NOT_SUPP_FTYPE: return out << "NOT_SUPP_FTYPE"; case why_no_delegation4::WND4_WRITE_DELEG_NOT_SUPP_FTYPE: return out << "WRITE_DELEG_NOT_SUPP_FTYPE"; case why_no_delegation4::WND4_NOT_SUPP_UPGRADE: return out << "NOT_SUPP_UPGRADE"; case why_no_delegation4::WND4_NOT_SUPP_DOWNGRADE: return out << "NOT_SUPP_DOWNGRADE"; case why_no_delegation4::WND4_CANCELLED: return out << "CANCELLED"; case why_no_delegation4::WND4_IS_DIR: return out << "IS_DIR"; } return out; } std::ostream& operator<<(std::ostream& out, const open_none_delegation4& obj) { out << "why: " << obj.ond_why; switch(obj.ond_why) { case why_no_delegation4::WND4_CONTENTION: out << " server will push deleg: " << obj.open_none_delegation4_u.ond_server_will_push_deleg; case why_no_delegation4::WND4_RESOURCE: out << " server will signal available: " << obj.open_none_delegation4_u.ond_server_will_signal_avail; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const open_delegation4& obj) { out << "delegation type: " << obj.delegation_type; switch(obj.delegation_type) { case open_delegation_type4::OPEN_DELEGATE_NONE: break; case open_delegation_type4::OPEN_DELEGATE_READ: return out << ": " << obj.open_delegation4_u.read; case open_delegation_type4::OPEN_DELEGATE_WRITE: return out << ": " << obj.open_delegation4_u.write; case open_delegation_type4::OPEN_DELEGATE_NONE_EXT: return out << ": " << obj.open_delegation4_u.od_whynone; default: break; } return out; } std::ostream& operator<<(std::ostream& out, const entry4& obj) { out << "cookie: " << obj.cookie << " name: " << obj.name << " attributes: " << obj.attrs << '\n'; if(obj.nextentry) return out << ' ' << *obj.nextentry; else return out; } std::ostream& operator<<(std::ostream& out, const dirlist4& obj) { out << "eof: " << obj.eof; if(obj.entries) return out << " entries:\n" << *obj.entries; else return out; } std::ostream& operator<<(std::ostream& out, const rpc_gss_svc_t& obj) { switch(obj) { case rpc_gss_svc_t::RPC_GSS_SVC_NONE: return out << "NONE"; case rpc_gss_svc_t::RPC_GSS_SVC_INTEGRITY: return out << "INTEGRITY"; case rpc_gss_svc_t::RPC_GSS_SVC_PRIVACY: return out << "PRIVACY"; } return out; } std::ostream& operator<<(std::ostream& out, const rpcsec_gss_info& obj) { return out << "oid: " << obj.oid << " qop: " << obj.qop << " service: " << obj.service; } std::ostream& operator<<(std::ostream& out, const secinfo4& obj) { out << " flavor: " << obj.flavor; if(obj.flavor == RPCSEC_GSS) return out << " info: " << obj.secinfo4_u.flavor_info; else return out; } std::ostream& operator<<(std::ostream& out, const stable_how4& obj) { switch(obj) { case stable_how4::UNSTABLE4: return out << "UNSTABLE"; case stable_how4::DATA_SYNC4: return out << "DATA SYNC"; case stable_how4::FILE_SYNC4: return out << "FILE SYNC"; } return out; } std::ostream& operator<<(std::ostream& out, const gsshandle4_t& obj) { print_hex(out, obj.gsshandle4_t_val, obj.gsshandle4_t_len); return out; } std::ostream& operator<<(std::ostream& out, const gss_cb_handles4& obj) { out << "service: " << obj.gcbp_service << " server: " << obj.gcbp_handle_from_server << " client: " << obj.gcbp_handle_from_client; return out; } std::ostream& operator<<(std::ostream& out, const authunix_parms& obj) { out << "time: " << obj.aup_time << " machine name: " << obj.aup_machname << " uid: " << obj.aup_uid << " gid: " << obj.aup_gid; __gid_t *current_el = obj.aup_gids; for(size_t i {0}; iattrlist4_val, (u_int*) &objp->attrlist4_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_bitmap4 (XDR* xdrs, bitmap4* objp) { if (!xdr_array (xdrs, (char**)&objp->bitmap4_val, (u_int*) &objp->bitmap4_len, ~0, sizeof (uint32_t), (xdrproc_t) xdr_uint32_t)) { return FALSE; } return TRUE; } bool_t xdr_changeid4 (XDR* xdrs, changeid4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_clientid4 (XDR* xdrs, clientid4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_count4 (XDR* xdrs, count4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_length4 (XDR* xdrs, length4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_mode4 (XDR* xdrs, mode4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_cookie4 (XDR* xdrs, nfs_cookie4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_fh4 (XDR* xdrs, nfs_fh4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->nfs_fh4_val, (u_int*) &objp->nfs_fh4_len, NFS4_FHSIZE)) { return FALSE; } return TRUE; } bool_t xdr_offset4 (XDR* xdrs, offset4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_qop4 (XDR* xdrs, qop4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_sec_oid4 (XDR* xdrs, sec_oid4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->sec_oid4_val, (u_int*) &objp->sec_oid4_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_sequenceid4 (XDR* xdrs, sequenceid4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_seqid4 (XDR* xdrs, seqid4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_sessionid4 (XDR* xdrs, sessionid4 objp) { if (!xdr_opaque (xdrs, objp, NFS4_SESSIONID_SIZE)) { return FALSE; } return TRUE; } bool_t xdr_slotid4 (XDR* xdrs, slotid4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8string (XDR* xdrs, utf8string* objp) { if (!xdr_bytes (xdrs, (char**)&objp->utf8string_val, (u_int*) &objp->utf8string_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_cis (XDR* xdrs, utf8str_cis* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_cs (XDR* xdrs, utf8str_cs* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_mixed (XDR* xdrs, utf8str_mixed* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_component4 (XDR* xdrs, component4* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_linktext4 (XDR* xdrs, linktext4* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_pathname4 (XDR* xdrs, pathname4* objp) { if (!xdr_array (xdrs, (char**)&objp->pathname4_val, (u_int*) &objp->pathname4_len, ~0, sizeof (component4), (xdrproc_t) xdr_component4)) { return FALSE; } return TRUE; } bool_t xdr_verifier4 (XDR* xdrs, verifier4 objp) { if (!xdr_opaque (xdrs, objp, NFS4_VERIFIER_SIZE)) { return FALSE; } return TRUE; } bool_t xdr_nfstime4 (XDR* xdrs, nfstime4* objp) { if (!xdr_int64_t (xdrs, &objp->seconds)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->nseconds)) { return FALSE; } return TRUE; } bool_t xdr_time_how4 (XDR* xdrs, time_how4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_settime4 (XDR* xdrs, settime4* objp) { if (!xdr_time_how4 (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case SET_TO_CLIENT_TIME4: if (!xdr_nfstime4 (xdrs, &objp->settime4_u.time)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_nfs_lease4 (XDR* xdrs, nfs_lease4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fsid4 (XDR* xdrs, fsid4* objp) { if (!xdr_uint64_t (xdrs, &objp->major)) { return FALSE; } if (!xdr_uint64_t (xdrs, &objp->minor)) { return FALSE; } return TRUE; } bool_t xdr_change_policy4 (XDR* xdrs, change_policy4* objp) { if (!xdr_uint64_t (xdrs, &objp->cp_major)) { return FALSE; } if (!xdr_uint64_t (xdrs, &objp->cp_minor)) { return FALSE; } return TRUE; } bool_t xdr_fs_location4 (XDR* xdrs, fs_location4* objp) { if (!xdr_array (xdrs, (char**)&objp->server.server_val, (u_int*) &objp->server.server_len, ~0, sizeof (utf8str_cis), (xdrproc_t) xdr_utf8str_cis)) { return FALSE; } if (!xdr_pathname4 (xdrs, &objp->rootpath)) { return FALSE; } return TRUE; } bool_t xdr_fs_locations4 (XDR* xdrs, fs_locations4* objp) { if (!xdr_pathname4 (xdrs, &objp->fs_root)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->locations.locations_val, (u_int*) &objp->locations.locations_len, ~0, sizeof (fs_location4), (xdrproc_t) xdr_fs_location4)) { return FALSE; } return TRUE; } bool_t xdr_acetype4 (XDR* xdrs, acetype4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_aceflag4 (XDR* xdrs, aceflag4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_acemask4 (XDR* xdrs, acemask4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfsace4 (XDR* xdrs, nfsace4* objp) { if (!xdr_acetype4 (xdrs, &objp->type)) { return FALSE; } if (!xdr_aceflag4 (xdrs, &objp->flag)) { return FALSE; } if (!xdr_acemask4 (xdrs, &objp->access_mask)) { return FALSE; } if (!xdr_utf8str_mixed (xdrs, &objp->who)) { return FALSE; } return TRUE; } bool_t xdr_aclflag4 (XDR* xdrs, aclflag4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfsacl41 (XDR* xdrs, nfsacl41* objp) { if (!xdr_aclflag4 (xdrs, &objp->na41_flag)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->na41_aces.na41_aces_val, (u_int*) &objp->na41_aces.na41_aces_len, ~0, sizeof (nfsace4), (xdrproc_t) xdr_nfsace4)) { return FALSE; } return TRUE; } bool_t xdr_mode_masked4 (XDR* xdrs, mode_masked4* objp) { if (!xdr_mode4 (xdrs, &objp->mm_value_to_set)) { return FALSE; } if (!xdr_mode4 (xdrs, &objp->mm_mask_bits)) { return FALSE; } return TRUE; } bool_t xdr_specdata4 (XDR* xdrs, specdata4* objp) { if (!xdr_uint32_t (xdrs, &objp->specdata1)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->specdata2)) { return FALSE; } return TRUE; } bool_t xdr_netaddr4 (XDR* xdrs, netaddr4* objp) { if (!xdr_string (xdrs, &objp->na_r_netid, ~0)) { return FALSE; } if (!xdr_string (xdrs, &objp->na_r_addr, ~0)) { return FALSE; } return TRUE; } bool_t xdr_nfs_impl_id4 (XDR* xdrs, nfs_impl_id4* objp) { if (!xdr_utf8str_cis (xdrs, &objp->nii_domain)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->nii_name)) { return FALSE; } if (!xdr_nfstime4 (xdrs, &objp->nii_date)) { return FALSE; } return TRUE; } bool_t xdr_stateid4 (XDR* xdrs, stateid4* objp) { if (!xdr_uint32_t (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_opaque (xdrs, objp->other, 12)) { return FALSE; } return TRUE; } bool_t xdr_layouttype4 (XDR* xdrs, layouttype4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_layout_content4 (XDR* xdrs, layout_content4* objp) { if (!xdr_layouttype4 (xdrs, &objp->loc_type)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->loc_body.loc_body_val, (u_int*) &objp->loc_body.loc_body_len, ~0)) { return FALSE; } return TRUE; } /* * LAYOUT4_OSD2_OBJECTS loc_body description * is in a separate .x file */ /* * LAYOUT4_BLOCK_VOLUME loc_body description * is in a separate .x file */ bool_t xdr_layouthint4 (XDR* xdrs, layouthint4* objp) { if (!xdr_layouttype4 (xdrs, &objp->loh_type)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->loh_body.loh_body_val, (u_int*) &objp->loh_body.loh_body_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_layoutiomode4 (XDR* xdrs, layoutiomode4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_layout4 (XDR* xdrs, layout4* objp) { if (!xdr_offset4 (xdrs, &objp->lo_offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->lo_length)) { return FALSE; } if (!xdr_layoutiomode4 (xdrs, &objp->lo_iomode)) { return FALSE; } if (!xdr_layout_content4 (xdrs, &objp->lo_content)) { return FALSE; } return TRUE; } bool_t xdr_deviceid4 (XDR* xdrs, deviceid4 objp) { if (!xdr_opaque (xdrs, objp, NFS4_DEVICEID4_SIZE)) { return FALSE; } return TRUE; } bool_t xdr_device_addr4 (XDR* xdrs, device_addr4* objp) { if (!xdr_layouttype4 (xdrs, &objp->da_layout_type)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->da_addr_body.da_addr_body_val, (u_int*) &objp->da_addr_body.da_addr_body_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_layoutupdate4 (XDR* xdrs, layoutupdate4* objp) { if (!xdr_layouttype4 (xdrs, &objp->lou_type)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->lou_body.lou_body_val, (u_int*) &objp->lou_body.lou_body_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_layoutreturn_type4 (XDR* xdrs, layoutreturn_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } /* layouttype4 specific data */ bool_t xdr_layoutreturn_file4 (XDR* xdrs, layoutreturn_file4* objp) { if (!xdr_offset4 (xdrs, &objp->lrf_offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->lrf_length)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->lrf_stateid)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->lrf_body.lrf_body_val, (u_int*) &objp->lrf_body.lrf_body_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_layoutreturn4 (XDR* xdrs, layoutreturn4* objp) { if (!xdr_layoutreturn_type4 (xdrs, &objp->lr_returntype)) { return FALSE; } switch (objp->lr_returntype) { case LAYOUTRETURN4_FILE: if (!xdr_layoutreturn_file4 (xdrs, &objp->layoutreturn4_u.lr_layout)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_fs4_status_type (XDR* xdrs, fs4_status_type* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_fs4_status (XDR* xdrs, fs4_status* objp) { if (!xdr_bool (xdrs, &objp->fss_absent)) { return FALSE; } if (!xdr_fs4_status_type (xdrs, &objp->fss_type)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->fss_source)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->fss_current)) { return FALSE; } if (!xdr_int32_t (xdrs, &objp->fss_age)) { return FALSE; } if (!xdr_nfstime4 (xdrs, &objp->fss_version)) { return FALSE; } return TRUE; } bool_t xdr_threshold4_read_size (XDR* xdrs, threshold4_read_size* objp) { if (!xdr_length4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_threshold4_write_size (XDR* xdrs, threshold4_write_size* objp) { if (!xdr_length4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_threshold4_read_iosize (XDR* xdrs, threshold4_read_iosize* objp) { if (!xdr_length4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_threshold4_write_iosize (XDR* xdrs, threshold4_write_iosize* objp) { if (!xdr_length4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_threshold_item4 (XDR* xdrs, threshold_item4* objp) { if (!xdr_layouttype4 (xdrs, &objp->thi_layout_type)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->thi_hintset)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->thi_hintlist.thi_hintlist_val, (u_int*) &objp->thi_hintlist.thi_hintlist_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_mdsthreshold4 (XDR* xdrs, mdsthreshold4* objp) { if (!xdr_array (xdrs, (char**)&objp->mth_hints.mth_hints_val, (u_int*) &objp->mth_hints.mth_hints_len, ~0, sizeof (threshold_item4), (xdrproc_t) xdr_threshold_item4)) { return FALSE; } return TRUE; } bool_t xdr_retention_get4 (XDR* xdrs, retention_get4* objp) { if (!xdr_uint64_t (xdrs, &objp->rg_duration)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->rg_begin_time.rg_begin_time_val, (u_int*) &objp->rg_begin_time.rg_begin_time_len, 1, sizeof (nfstime4), (xdrproc_t) xdr_nfstime4)) { return FALSE; } return TRUE; } bool_t xdr_retention_set4 (XDR* xdrs, retention_set4* objp) { if (!xdr_bool (xdrs, &objp->rs_enable)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->rs_duration.rs_duration_val, (u_int*) &objp->rs_duration.rs_duration_len, 1, sizeof (uint64_t), (xdrproc_t) xdr_uint64_t)) { return FALSE; } return TRUE; } bool_t xdr_fs_charset_cap4 (XDR* xdrs, fs_charset_cap4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_supported_attrs (XDR* xdrs, fattr4_supported_attrs* objp) { if (!xdr_bitmap4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_type (XDR* xdrs, fattr4_type* objp) { if (!xdr_nfs_ftype4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fh_expire_type (XDR* xdrs, fattr4_fh_expire_type* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_change (XDR* xdrs, fattr4_change* objp) { if (!xdr_changeid4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_size (XDR* xdrs, fattr4_size* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_link_support (XDR* xdrs, fattr4_link_support* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_symlink_support (XDR* xdrs, fattr4_symlink_support* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_named_attr (XDR* xdrs, fattr4_named_attr* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fsid (XDR* xdrs, fattr4_fsid* objp) { if (!xdr_fsid4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_unique_handles (XDR* xdrs, fattr4_unique_handles* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_lease_time (XDR* xdrs, fattr4_lease_time* objp) { if (!xdr_nfs_lease4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_rdattr_error (XDR* xdrs, fattr4_rdattr_error* objp) { if (!xdr_nfsstat4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_acl (XDR* xdrs, fattr4_acl* objp) { if (!xdr_array (xdrs, (char**)&objp->fattr4_acl_val, (u_int*) &objp->fattr4_acl_len, ~0, sizeof (nfsace4), (xdrproc_t) xdr_nfsace4)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_aclsupport (XDR* xdrs, fattr4_aclsupport* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_archive (XDR* xdrs, fattr4_archive* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_cansettime (XDR* xdrs, fattr4_cansettime* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_case_insensitive (XDR* xdrs, fattr4_case_insensitive* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_case_preserving (XDR* xdrs, fattr4_case_preserving* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_chown_restricted (XDR* xdrs, fattr4_chown_restricted* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fileid (XDR* xdrs, fattr4_fileid* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_avail (XDR* xdrs, fattr4_files_avail* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_filehandle (XDR* xdrs, fattr4_filehandle* objp) { if (!xdr_nfs_fh4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_free (XDR* xdrs, fattr4_files_free* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_total (XDR* xdrs, fattr4_files_total* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_locations (XDR* xdrs, fattr4_fs_locations* objp) { if (!xdr_fs_locations4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_hidden (XDR* xdrs, fattr4_hidden* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_homogeneous (XDR* xdrs, fattr4_homogeneous* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxfilesize (XDR* xdrs, fattr4_maxfilesize* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxlink (XDR* xdrs, fattr4_maxlink* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxname (XDR* xdrs, fattr4_maxname* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxread (XDR* xdrs, fattr4_maxread* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxwrite (XDR* xdrs, fattr4_maxwrite* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mimetype (XDR* xdrs, fattr4_mimetype* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mode (XDR* xdrs, fattr4_mode* objp) { if (!xdr_mode4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mode_set_masked (XDR* xdrs, fattr4_mode_set_masked* objp) { if (!xdr_mode_masked4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mounted_on_fileid (XDR* xdrs, fattr4_mounted_on_fileid* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_no_trunc (XDR* xdrs, fattr4_no_trunc* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_numlinks (XDR* xdrs, fattr4_numlinks* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_owner (XDR* xdrs, fattr4_owner* objp) { if (!xdr_utf8str_mixed (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_owner_group (XDR* xdrs, fattr4_owner_group* objp) { if (!xdr_utf8str_mixed (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_avail_hard (XDR* xdrs, fattr4_quota_avail_hard* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_avail_soft (XDR* xdrs, fattr4_quota_avail_soft* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_used (XDR* xdrs, fattr4_quota_used* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_rawdev (XDR* xdrs, fattr4_rawdev* objp) { if (!xdr_specdata4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_avail (XDR* xdrs, fattr4_space_avail* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_free (XDR* xdrs, fattr4_space_free* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_total (XDR* xdrs, fattr4_space_total* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_used (XDR* xdrs, fattr4_space_used* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_system (XDR* xdrs, fattr4_system* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_access (XDR* xdrs, fattr4_time_access* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_access_set (XDR* xdrs, fattr4_time_access_set* objp) { if (!xdr_settime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_backup (XDR* xdrs, fattr4_time_backup* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_create (XDR* xdrs, fattr4_time_create* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_delta (XDR* xdrs, fattr4_time_delta* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_metadata (XDR* xdrs, fattr4_time_metadata* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_modify (XDR* xdrs, fattr4_time_modify* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_modify_set (XDR* xdrs, fattr4_time_modify_set* objp) { if (!xdr_settime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_suppattr_exclcreat (XDR* xdrs, fattr4_suppattr_exclcreat* objp) { if (!xdr_bitmap4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_dir_notif_delay (XDR* xdrs, fattr4_dir_notif_delay* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_dirent_notif_delay (XDR* xdrs, fattr4_dirent_notif_delay* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_layout_types (XDR* xdrs, fattr4_fs_layout_types* objp) { if (!xdr_array (xdrs, (char**)&objp->fattr4_fs_layout_types_val, (u_int*) &objp->fattr4_fs_layout_types_len, ~0, sizeof (layouttype4), (xdrproc_t) xdr_layouttype4)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_status (XDR* xdrs, fattr4_fs_status* objp) { if (!xdr_fs4_status (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_charset_cap (XDR* xdrs, fattr4_fs_charset_cap* objp) { if (!xdr_fs_charset_cap4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_layout_alignment (XDR* xdrs, fattr4_layout_alignment* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_layout_blksize (XDR* xdrs, fattr4_layout_blksize* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_layout_hint (XDR* xdrs, fattr4_layout_hint* objp) { if (!xdr_layouthint4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_layout_types (XDR* xdrs, fattr4_layout_types* objp) { if (!xdr_array (xdrs, (char**)&objp->fattr4_layout_types_val, (u_int*) &objp->fattr4_layout_types_len, ~0, sizeof (layouttype4), (xdrproc_t) xdr_layouttype4)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mdsthreshold (XDR* xdrs, fattr4_mdsthreshold* objp) { if (!xdr_mdsthreshold4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_retention_get (XDR* xdrs, fattr4_retention_get* objp) { if (!xdr_retention_get4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_retention_set (XDR* xdrs, fattr4_retention_set* objp) { if (!xdr_retention_set4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_retentevt_get (XDR* xdrs, fattr4_retentevt_get* objp) { if (!xdr_retention_get4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_retentevt_set (XDR* xdrs, fattr4_retentevt_set* objp) { if (!xdr_retention_set4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_retention_hold (XDR* xdrs, fattr4_retention_hold* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_dacl (XDR* xdrs, fattr4_dacl* objp) { if (!xdr_nfsacl41 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_sacl (XDR* xdrs, fattr4_sacl* objp) { if (!xdr_nfsacl41 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_change_policy (XDR* xdrs, fattr4_change_policy* objp) { if (!xdr_change_policy4 (xdrs, objp)) { return FALSE; } return TRUE; } /* * REQUIRED Attributes */ /* new to NFSV4.1 */ /* * RECOMMENDED Attributes */ /* new to NFSV4.1 */ bool_t xdr_fattr4 (XDR* xdrs, fattr4* objp) { if (!xdr_bitmap4 (xdrs, &objp->attrmask)) { return FALSE; } if (!xdr_attrlist4 (xdrs, &objp->attr_vals)) { return FALSE; } return TRUE; } bool_t xdr_change_info4 (XDR* xdrs, change_info4* objp) { if (!xdr_bool (xdrs, &objp->atomic)) { return FALSE; } if (!xdr_changeid4 (xdrs, &objp->before)) { return FALSE; } if (!xdr_changeid4 (xdrs, &objp->after)) { return FALSE; } return TRUE; } bool_t xdr_clientaddr4 (XDR* xdrs, clientaddr4* objp) { if (!xdr_netaddr4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_cb_client4 (XDR* xdrs, cb_client4* objp) { if (!xdr_uint32_t (xdrs, &objp->cb_program)) { return FALSE; } if (!xdr_netaddr4 (xdrs, &objp->cb_location)) { return FALSE; } return TRUE; } bool_t xdr_nfs_client_id4 (XDR* xdrs, nfs_client_id4* objp) { if (!xdr_verifier4 (xdrs, objp->verifier)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->id.id_val, (u_int*) &objp->id.id_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_client_owner4 (XDR* xdrs, client_owner4* objp) { if (!xdr_verifier4 (xdrs, objp->co_verifier)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->co_ownerid.co_ownerid_val, (u_int*) &objp->co_ownerid.co_ownerid_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_server_owner4 (XDR* xdrs, server_owner4* objp) { if (!xdr_uint64_t (xdrs, &objp->so_minor_id)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->so_major_id.so_major_id_val, (u_int*) &objp->so_major_id.so_major_id_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_state_owner4 (XDR* xdrs, state_owner4* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->owner.owner_val, (u_int*) &objp->owner.owner_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_open_owner4 (XDR* xdrs, open_owner4* objp) { if (!xdr_state_owner4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_lock_owner4 (XDR* xdrs, lock_owner4* objp) { if (!xdr_state_owner4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_lock_type4 (XDR* xdrs, nfs_lock_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } /* Input for computing subkeys */ bool_t xdr_ssv_subkey4 (XDR* xdrs, ssv_subkey4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } /* Input for computing smt_hmac */ bool_t xdr_ssv_mic_plain_tkn4 (XDR* xdrs, ssv_mic_plain_tkn4* objp) { if (!xdr_uint32_t (xdrs, &objp->smpt_ssv_seq)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->smpt_orig_plain.smpt_orig_plain_val, (u_int*) &objp->smpt_orig_plain.smpt_orig_plain_len, ~0)) { return FALSE; } return TRUE; } /* SSV GSS PerMsgToken token */ bool_t xdr_ssv_mic_tkn4 (XDR* xdrs, ssv_mic_tkn4* objp) { if (!xdr_uint32_t (xdrs, &objp->smt_ssv_seq)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->smt_hmac.smt_hmac_val, (u_int*) &objp->smt_hmac.smt_hmac_len, ~0)) { return FALSE; } return TRUE; } /* Input for computing ssct_encr_data and ssct_hmac */ bool_t xdr_ssv_seal_plain_tkn4 (XDR* xdrs, ssv_seal_plain_tkn4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->sspt_confounder.sspt_confounder_val, (u_int*) &objp->sspt_confounder.sspt_confounder_len, ~0)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->sspt_ssv_seq)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->sspt_orig_plain.sspt_orig_plain_val, (u_int*) &objp->sspt_orig_plain.sspt_orig_plain_len, ~0)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->sspt_pad.sspt_pad_val, (u_int*) &objp->sspt_pad.sspt_pad_len, ~0)) { return FALSE; } return TRUE; } /* SSV GSS SealedMessage token */ bool_t xdr_ssv_seal_cipher_tkn4 (XDR* xdrs, ssv_seal_cipher_tkn4* objp) { if (!xdr_uint32_t (xdrs, &objp->ssct_ssv_seq)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->ssct_iv.ssct_iv_val, (u_int*) &objp->ssct_iv.ssct_iv_len, ~0)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->ssct_encr_data.ssct_encr_data_val, (u_int*) &objp->ssct_encr_data.ssct_encr_data_len, ~0)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->ssct_hmac.ssct_hmac_val, (u_int*) &objp->ssct_hmac.ssct_hmac_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_fs_locations_server4 (XDR* xdrs, fs_locations_server4* objp) { if (!xdr_int32_t (xdrs, &objp->fls_currency)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->fls_info.fls_info_val, (u_int*) &objp->fls_info.fls_info_len, ~0)) { return FALSE; } if (!xdr_utf8str_cis (xdrs, &objp->fls_server)) { return FALSE; } return TRUE; } bool_t xdr_fs_locations_item4 (XDR* xdrs, fs_locations_item4* objp) { if (!xdr_array (xdrs, (char**)&objp->fli_entries.fli_entries_val, (u_int*) &objp->fli_entries.fli_entries_len, ~0, sizeof (fs_locations_server4), (xdrproc_t) xdr_fs_locations_server4)) { return FALSE; } if (!xdr_pathname4 (xdrs, &objp->fli_rootpath)) { return FALSE; } return TRUE; } bool_t xdr_fs_locations_info4 (XDR* xdrs, fs_locations_info4* objp) { if (!xdr_uint32_t (xdrs, &objp->fli_flags)) { return FALSE; } if (!xdr_int32_t (xdrs, &objp->fli_valid_for)) { return FALSE; } if (!xdr_pathname4 (xdrs, &objp->fli_fs_root)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->fli_items.fli_items_val, (u_int*) &objp->fli_items.fli_items_len, ~0, sizeof (fs_locations_item4), (xdrproc_t) xdr_fs_locations_item4)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_locations_info (XDR* xdrs, fattr4_fs_locations_info* objp) { if (!xdr_fs_locations_info4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfl_util4 (XDR* xdrs, nfl_util4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_filelayout_hint_care4 (XDR* xdrs, filelayout_hint_care4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } /* Encoded in the loh_body field of data type layouthint4: */ bool_t xdr_nfsv4_1_file_layouthint4 (XDR* xdrs, nfsv4_1_file_layouthint4* objp) { if (!xdr_uint32_t (xdrs, &objp->nflh_care)) { return FALSE; } if (!xdr_nfl_util4 (xdrs, &objp->nflh_util)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->nflh_stripe_count)) { return FALSE; } return TRUE; } bool_t xdr_multipath_list4 (XDR* xdrs, multipath_list4* objp) { if (!xdr_array (xdrs, (char**)&objp->multipath_list4_val, (u_int*) &objp->multipath_list4_len, ~0, sizeof (netaddr4), (xdrproc_t) xdr_netaddr4)) { return FALSE; } return TRUE; } /* * Encoded in the da_addr_body field of * data type device_addr4: */ bool_t xdr_nfsv4_1_file_layout_ds_addr4 (XDR* xdrs, nfsv4_1_file_layout_ds_addr4* objp) { if (!xdr_array (xdrs, (char**)&objp->nflda_stripe_indices.nflda_stripe_indices_val, (u_int*) &objp->nflda_stripe_indices.nflda_stripe_indices_len, ~0, sizeof (uint32_t), (xdrproc_t) xdr_uint32_t)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->nflda_multipath_ds_list.nflda_multipath_ds_list_val, (u_int*) &objp->nflda_multipath_ds_list.nflda_multipath_ds_list_len, ~0, sizeof (multipath_list4), (xdrproc_t) xdr_multipath_list4)) { return FALSE; } return TRUE; } /* * Encoded in the loc_body field of * data type layout_content4: */ bool_t xdr_nfsv4_1_file_layout4 (XDR* xdrs, nfsv4_1_file_layout4* objp) { if (!xdr_deviceid4 (xdrs, objp->nfl_deviceid)) { return FALSE; } if (!xdr_nfl_util4 (xdrs, &objp->nfl_util)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->nfl_first_stripe_index)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->nfl_pattern_offset)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->nfl_fh_list.nfl_fh_list_val, (u_int*) &objp->nfl_fh_list.nfl_fh_list_len, ~0, sizeof (nfs_fh4), (xdrproc_t) xdr_nfs_fh4)) { return FALSE; } return TRUE; } /* * Encoded in the lou_body field of data type layoutupdate4: * Nothing. lou_body is a zero length array of bytes. */ /* * Encoded in the lrf_body field of * data type layoutreturn_file4: * Nothing. lrf_body is a zero length array of bytes. */ //for compatibility bool_t xdr_NULL4args(XDR*, NULL4args*) { return TRUE; } bool_t xdr_NULL4res(XDR*, NULL4res*) { return TRUE; } bool_t xdr_ACCESS4args (XDR* xdrs, ACCESS4args* objp) { if (!xdr_uint32_t (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS4resok (XDR* xdrs, ACCESS4resok* objp) { if (!xdr_uint32_t (xdrs, &objp->supported)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS4res (XDR* xdrs, ACCESS4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_ACCESS4resok (xdrs, &objp->ACCESS4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_CLOSE4args (XDR* xdrs, CLOSE4args* objp) { if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_CLOSE4res (XDR* xdrs, CLOSE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_stateid4 (xdrs, &objp->CLOSE4res_u.open_stateid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_COMMIT4args (XDR* xdrs, COMMIT4args* objp) { if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT4resok (XDR* xdrs, COMMIT4resok* objp) { if (!xdr_verifier4 (xdrs, objp->writeverf)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT4res (XDR* xdrs, COMMIT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_COMMIT4resok (xdrs, &objp->COMMIT4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_createtype4 (XDR* xdrs, createtype4* objp) { if (!xdr_nfs_ftype4 (xdrs, &objp->type)) { return FALSE; } switch (objp->type) { case NF4LNK: if (!xdr_linktext4 (xdrs, &objp->createtype4_u.linkdata)) { return FALSE; } break; case NF4BLK: case NF4CHR: if (!xdr_specdata4 (xdrs, &objp->createtype4_u.devdata)) { return FALSE; } break; case NF4SOCK: case NF4FIFO: case NF4DIR: break; default: break; } return TRUE; } bool_t xdr_CREATE4args (XDR* xdrs, CREATE4args* objp) { if (!xdr_createtype4 (xdrs, &objp->objtype)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->objname)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->createattrs)) { return FALSE; } return TRUE; } bool_t xdr_CREATE4resok (XDR* xdrs, CREATE4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrset)) { return FALSE; } return TRUE; } bool_t xdr_CREATE4res (XDR* xdrs, CREATE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_CREATE4resok (xdrs, &objp->CREATE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_DELEGPURGE4args (XDR* xdrs, DELEGPURGE4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } return TRUE; } bool_t xdr_DELEGPURGE4res (XDR* xdrs, DELEGPURGE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_DELEGRETURN4args (XDR* xdrs, DELEGRETURN4args* objp) { if (!xdr_stateid4 (xdrs, &objp->deleg_stateid)) { return FALSE; } return TRUE; } bool_t xdr_DELEGRETURN4res (XDR* xdrs, DELEGRETURN4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4args (XDR* xdrs, GETATTR4args* objp) { if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4resok (XDR* xdrs, GETATTR4resok* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4res (XDR* xdrs, GETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_GETATTR4resok (xdrs, &objp->GETATTR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_GETFH4resok (XDR* xdrs, GETFH4resok* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_GETFH4res (XDR* xdrs, GETFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_GETFH4resok (xdrs, &objp->GETFH4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LINK4args (XDR* xdrs, LINK4args* objp) { if (!xdr_component4 (xdrs, &objp->newname)) { return FALSE; } return TRUE; } bool_t xdr_LINK4resok (XDR* xdrs, LINK4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } return TRUE; } bool_t xdr_LINK4res (XDR* xdrs, LINK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_LINK4resok (xdrs, &objp->LINK4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_open_to_lock_owner4 (XDR* xdrs, open_to_lock_owner4* objp) { if (!xdr_seqid4 (xdrs, &objp->open_seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->lock_seqid)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->lock_owner)) { return FALSE; } return TRUE; } bool_t xdr_exist_lock_owner4 (XDR* xdrs, exist_lock_owner4* objp) { if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->lock_seqid)) { return FALSE; } return TRUE; } bool_t xdr_locker4 (XDR* xdrs, locker4* objp) { if (!xdr_bool (xdrs, &objp->new_lock_owner)) { return FALSE; } switch (objp->new_lock_owner) { case TRUE: if (!xdr_open_to_lock_owner4 (xdrs, &objp->locker4_u.open_owner)) { return FALSE; } break; case FALSE: if (!xdr_exist_lock_owner4 (xdrs, &objp->locker4_u.lock_owner)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_LOCK4args (XDR* xdrs, LOCK4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_bool (xdrs, &objp->reclaim)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_locker4 (xdrs, &objp->locker)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4denied (XDR* xdrs, LOCK4denied* objp) { if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->owner)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4resok (XDR* xdrs, LOCK4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4res (XDR* xdrs, LOCK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_LOCK4resok (xdrs, &objp->LOCK4res_u.resok4)) { return FALSE; } break; case NFS4ERR_DENIED: if (!xdr_LOCK4denied (xdrs, &objp->LOCK4res_u.denied)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LOCKT4args (XDR* xdrs, LOCKT4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->owner)) { return FALSE; } return TRUE; } bool_t xdr_LOCKT4res (XDR* xdrs, LOCKT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4ERR_DENIED: if (!xdr_LOCK4denied (xdrs, &objp->LOCKT4res_u.denied)) { return FALSE; } break; case NFS4_OK: break; default: break; } return TRUE; } bool_t xdr_LOCKU4args (XDR* xdrs, LOCKU4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } return TRUE; } bool_t xdr_LOCKU4res (XDR* xdrs, LOCKU4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_stateid4 (xdrs, &objp->LOCKU4res_u.lock_stateid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LOOKUP4args (XDR* xdrs, LOOKUP4args* objp) { if (!xdr_component4 (xdrs, &objp->objname)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUP4res (XDR* xdrs, LOOKUP4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUPP4res (XDR* xdrs, LOOKUPP4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_NVERIFY4args (XDR* xdrs, NVERIFY4args* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_NVERIFY4res (XDR* xdrs, NVERIFY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_createmode4 (XDR* xdrs, createmode4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_creatverfattr (XDR* xdrs, creatverfattr* objp) { if (!xdr_verifier4 (xdrs, objp->cva_verf)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->cva_attrs)) { return FALSE; } return TRUE; } bool_t xdr_createhow4 (XDR* xdrs, createhow4* objp) { if (!xdr_createmode4 (xdrs, &objp->mode)) { return FALSE; } switch (objp->mode) { case UNCHECKED4: case GUARDED4: if (!xdr_fattr4 (xdrs, &objp->createhow4_u.createattrs)) { return FALSE; } break; case EXCLUSIVE4: if (!xdr_verifier4 (xdrs, objp->createhow4_u.createverf)) { return FALSE; } break; case EXCLUSIVE4_1: if (!xdr_creatverfattr (xdrs, &objp->createhow4_u.ch_createboth)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_opentype4 (XDR* xdrs, opentype4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_openflag4 (XDR* xdrs, openflag4* objp) { if (!xdr_opentype4 (xdrs, &objp->opentype)) { return FALSE; } switch (objp->opentype) { case OPEN4_CREATE: if (!xdr_createhow4 (xdrs, &objp->openflag4_u.how)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_limit_by4 (XDR* xdrs, limit_by4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_modified_limit4 (XDR* xdrs, nfs_modified_limit4* objp) { if (!xdr_uint32_t (xdrs, &objp->num_blocks)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->bytes_per_block)) { return FALSE; } return TRUE; } bool_t xdr_nfs_space_limit4 (XDR* xdrs, nfs_space_limit4* objp) { if (!xdr_limit_by4 (xdrs, &objp->limitby)) { return FALSE; } switch (objp->limitby) { case NFS_LIMIT_SIZE: if (!xdr_uint64_t (xdrs, &objp->nfs_space_limit4_u.filesize)) { return FALSE; } break; case NFS_LIMIT_BLOCKS: if (!xdr_nfs_modified_limit4 (xdrs, &objp->nfs_space_limit4_u.mod_blocks)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_open_delegation_type4 (XDR* xdrs, open_delegation_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_open_claim_type4 (XDR* xdrs, open_claim_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_open_claim_delegate_cur4 (XDR* xdrs, open_claim_delegate_cur4* objp) { if (!xdr_stateid4 (xdrs, &objp->delegate_stateid)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->file)) { return FALSE; } return TRUE; } bool_t xdr_open_claim4 (XDR* xdrs, open_claim4* objp) { if (!xdr_open_claim_type4 (xdrs, &objp->claim)) { return FALSE; } switch (objp->claim) { case CLAIM_NULL: if (!xdr_component4 (xdrs, &objp->open_claim4_u.file)) { return FALSE; } break; case CLAIM_PREVIOUS: if (!xdr_open_delegation_type4 (xdrs, &objp->open_claim4_u.delegate_type)) { return FALSE; } break; case CLAIM_DELEGATE_CUR: if (!xdr_open_claim_delegate_cur4 (xdrs, &objp->open_claim4_u.delegate_cur_info)) { return FALSE; } break; case CLAIM_DELEGATE_PREV: if (!xdr_component4 (xdrs, &objp->open_claim4_u.file_delegate_prev)) { return FALSE; } break; case CLAIM_FH: break; case CLAIM_DELEG_PREV_FH: break; case CLAIM_DELEG_CUR_FH: if (!xdr_stateid4 (xdrs, &objp->open_claim4_u.oc_delegate_stateid)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_OPEN4args (XDR* xdrs, OPEN4args* objp) { if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_access)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_deny)) { return FALSE; } if (!xdr_open_owner4 (xdrs, &objp->owner)) { return FALSE; } if (!xdr_openflag4 (xdrs, &objp->openhow)) { return FALSE; } if (!xdr_open_claim4 (xdrs, &objp->claim)) { return FALSE; } return TRUE; } bool_t xdr_open_read_delegation4 (XDR* xdrs, open_read_delegation4* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->recall)) { return FALSE; } if (!xdr_nfsace4 (xdrs, &objp->permissions)) { return FALSE; } return TRUE; } bool_t xdr_open_write_delegation4 (XDR* xdrs, open_write_delegation4* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->recall)) { return FALSE; } if (!xdr_nfs_space_limit4 (xdrs, &objp->space_limit)) { return FALSE; } if (!xdr_nfsace4 (xdrs, &objp->permissions)) { return FALSE; } return TRUE; } bool_t xdr_why_no_delegation4 (XDR* xdrs, why_no_delegation4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_open_none_delegation4 (XDR* xdrs, open_none_delegation4* objp) { if (!xdr_why_no_delegation4 (xdrs, &objp->ond_why)) { return FALSE; } switch (objp->ond_why) { case WND4_CONTENTION: if (!xdr_bool (xdrs, &objp->open_none_delegation4_u.ond_server_will_push_deleg)) { return FALSE; } break; case WND4_RESOURCE: if (!xdr_bool (xdrs, &objp->open_none_delegation4_u.ond_server_will_signal_avail)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_open_delegation4 (XDR* xdrs, open_delegation4* objp) { if (!xdr_open_delegation_type4 (xdrs, &objp->delegation_type)) { return FALSE; } switch (objp->delegation_type) { case OPEN_DELEGATE_NONE: break; case OPEN_DELEGATE_READ: if (!xdr_open_read_delegation4 (xdrs, &objp->open_delegation4_u.read)) { return FALSE; } break; case OPEN_DELEGATE_WRITE: if (!xdr_open_write_delegation4 (xdrs, &objp->open_delegation4_u.write)) { return FALSE; } break; case OPEN_DELEGATE_NONE_EXT: if (!xdr_open_none_delegation4 (xdrs, &objp->open_delegation4_u.od_whynone)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_OPEN4resok (XDR* xdrs, OPEN4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->rflags)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrset)) { return FALSE; } if (!xdr_open_delegation4 (xdrs, &objp->delegation)) { return FALSE; } return TRUE; } bool_t xdr_OPEN4res (XDR* xdrs, OPEN4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN4resok (xdrs, &objp->OPEN4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_OPENATTR4args (XDR* xdrs, OPENATTR4args* objp) { if (!xdr_bool (xdrs, &objp->createdir)) { return FALSE; } return TRUE; } bool_t xdr_OPENATTR4res (XDR* xdrs, OPENATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4args (XDR* xdrs, OPEN_CONFIRM4args* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4resok (XDR* xdrs, OPEN_CONFIRM4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4res (XDR* xdrs, OPEN_CONFIRM4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN_CONFIRM4resok (xdrs, &objp->OPEN_CONFIRM4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4args (XDR* xdrs, OPEN_DOWNGRADE4args* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_access)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_deny)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4resok (XDR* xdrs, OPEN_DOWNGRADE4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4res (XDR* xdrs, OPEN_DOWNGRADE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN_DOWNGRADE4resok (xdrs, &objp->OPEN_DOWNGRADE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_PUTFH4args (XDR* xdrs, PUTFH4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_PUTFH4res (XDR* xdrs, PUTFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_PUTPUBFH4res (XDR* xdrs, PUTPUBFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_PUTROOTFH4res (XDR* xdrs, PUTROOTFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_READ4args (XDR* xdrs, READ4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_READ4resok (XDR* xdrs, READ4resok* objp) { if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->data.data_val, (u_int*) &objp->data.data_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_READ4res (XDR* xdrs, READ4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READ4resok (xdrs, &objp->READ4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_READDIR4args (XDR* xdrs, READDIR4args* objp) { if (!xdr_nfs_cookie4 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->dircount)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->maxcount)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_entry4 (XDR* xdrs, entry4* objp) { if (!xdr_nfs_cookie4 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->name)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->attrs)) { return FALSE; } if (!xdr_pointer (xdrs, (char**)&objp->nextentry, sizeof (entry4), (xdrproc_t) xdr_entry4)) { return FALSE; } return TRUE; } bool_t xdr_dirlist4 (XDR* xdrs, dirlist4* objp) { if (!xdr_pointer (xdrs, (char**)&objp->entries, sizeof (entry4), (xdrproc_t) xdr_entry4)) { return FALSE; } if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } return TRUE; } bool_t xdr_READDIR4resok (XDR* xdrs, READDIR4resok* objp) { if (!xdr_verifier4 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_dirlist4 (xdrs, &objp->reply)) { return FALSE; } return TRUE; } bool_t xdr_READDIR4res (XDR* xdrs, READDIR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READDIR4resok (xdrs, &objp->READDIR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_READLINK4resok (XDR* xdrs, READLINK4resok* objp) { if (!xdr_linktext4 (xdrs, &objp->link)) { return FALSE; } return TRUE; } bool_t xdr_READLINK4res (XDR* xdrs, READLINK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READLINK4resok (xdrs, &objp->READLINK4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_REMOVE4args (XDR* xdrs, REMOVE4args* objp) { if (!xdr_component4 (xdrs, &objp->target)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE4resok (XDR* xdrs, REMOVE4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE4res (XDR* xdrs, REMOVE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_REMOVE4resok (xdrs, &objp->REMOVE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RENAME4args (XDR* xdrs, RENAME4args* objp) { if (!xdr_component4 (xdrs, &objp->oldname)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->newname)) { return FALSE; } return TRUE; } bool_t xdr_RENAME4resok (XDR* xdrs, RENAME4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->source_cinfo)) { return FALSE; } if (!xdr_change_info4 (xdrs, &objp->target_cinfo)) { return FALSE; } return TRUE; } bool_t xdr_RENAME4res (XDR* xdrs, RENAME4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_RENAME4resok (xdrs, &objp->RENAME4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RENEW4args (XDR* xdrs, RENEW4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } return TRUE; } bool_t xdr_RENEW4res (XDR* xdrs, RENEW4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_RESTOREFH4res (XDR* xdrs, RESTOREFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_SAVEFH4res (XDR* xdrs, SAVEFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO4args (XDR* xdrs, SECINFO4args* objp) { if (!xdr_component4 (xdrs, &objp->name)) { return FALSE; } return TRUE; } bool_t xdr_rpc_gss_svc_t (XDR* xdrs, rpc_gss_svc_t* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_rpcsec_gss_info (XDR* xdrs, rpcsec_gss_info* objp) { if (!xdr_sec_oid4 (xdrs, &objp->oid)) { return FALSE; } if (!xdr_qop4 (xdrs, &objp->qop)) { return FALSE; } if (!xdr_rpc_gss_svc_t (xdrs, &objp->service)) { return FALSE; } return TRUE; } bool_t xdr_secinfo4 (XDR* xdrs, secinfo4* objp) { if (!xdr_uint32_t (xdrs, &objp->flavor)) { return FALSE; } switch (objp->flavor) { case RPCSEC_GSS: if (!xdr_rpcsec_gss_info (xdrs, &objp->secinfo4_u.flavor_info)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SECINFO4resok (XDR* xdrs, SECINFO4resok* objp) { if (!xdr_array (xdrs, (char**)&objp->SECINFO4resok_val, (u_int*) &objp->SECINFO4resok_len, ~0, sizeof (secinfo4), (xdrproc_t) xdr_secinfo4)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO4res (XDR* xdrs, SECINFO4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_SECINFO4resok (xdrs, &objp->SECINFO4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SETATTR4args (XDR* xdrs, SETATTR4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_SETATTR4res (XDR* xdrs, SETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrsset)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4args (XDR* xdrs, SETCLIENTID4args* objp) { if (!xdr_nfs_client_id4 (xdrs, &objp->client)) { return FALSE; } if (!xdr_cb_client4 (xdrs, &objp->callback)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->callback_ident)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4resok (XDR* xdrs, SETCLIENTID4resok* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->setclientid_confirm)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4res (XDR* xdrs, SETCLIENTID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_SETCLIENTID4resok (xdrs, &objp->SETCLIENTID4res_u.resok4)) { return FALSE; } break; case NFS4ERR_CLID_INUSE: if (!xdr_clientaddr4 (xdrs, &objp->SETCLIENTID4res_u.client_using)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SETCLIENTID_CONFIRM4args (XDR* xdrs, SETCLIENTID_CONFIRM4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->setclientid_confirm)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID_CONFIRM4res (XDR* xdrs, SETCLIENTID_CONFIRM4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_VERIFY4args (XDR* xdrs, VERIFY4args* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_VERIFY4res (XDR* xdrs, VERIFY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_stable_how4 (XDR* xdrs, stable_how4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4args (XDR* xdrs, WRITE4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_stable_how4 (xdrs, &objp->stable)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->data.data_val, (u_int*) &objp->data.data_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4resok (XDR* xdrs, WRITE4resok* objp) { if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } if (!xdr_stable_how4 (xdrs, &objp->committed)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->writeverf)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4res (XDR* xdrs, WRITE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_WRITE4resok (xdrs, &objp->WRITE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RELEASE_LOCKOWNER4args (XDR* xdrs, RELEASE_LOCKOWNER4args* objp) { if (!xdr_lock_owner4 (xdrs, &objp->lock_owner)) { return FALSE; } return TRUE; } bool_t xdr_RELEASE_LOCKOWNER4res (XDR* xdrs, RELEASE_LOCKOWNER4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_ILLEGAL4res (XDR* xdrs, ILLEGAL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_gsshandle4_t (XDR* xdrs, gsshandle4_t* objp) { if (!xdr_bytes (xdrs, (char**)&objp->gsshandle4_t_val, (u_int*) &objp->gsshandle4_t_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_gss_cb_handles4 (XDR* xdrs, gss_cb_handles4* objp) { if (!xdr_rpc_gss_svc_t (xdrs, &objp->gcbp_service)) { return FALSE; } if (!xdr_gsshandle4_t (xdrs, &objp->gcbp_handle_from_server)) { return FALSE; } if (!xdr_gsshandle4_t (xdrs, &objp->gcbp_handle_from_client)) { return FALSE; } return TRUE; } bool_t xdr_callback_sec_parms4 (XDR* xdrs, callback_sec_parms4* objp) { if (!xdr_uint32_t (xdrs, &objp->cb_secflavor)) { return FALSE; } switch (objp->cb_secflavor) { case AUTH_NONE: break; case AUTH_SYS: if (!xdr_authunix_parms (xdrs, &objp->callback_sec_parms4_u.cbsp_sys_cred)) { return FALSE; } break; case RPCSEC_GSS: if (!xdr_gss_cb_handles4 (xdrs, &objp->callback_sec_parms4_u.cbsp_gss_handles)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_BACKCHANNEL_CTL4args (XDR* xdrs, BACKCHANNEL_CTL4args* objp) { if (!xdr_uint32_t (xdrs, &objp->bca_cb_program)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->bca_sec_parms.bca_sec_parms_val, (u_int*) &objp->bca_sec_parms.bca_sec_parms_len, ~0, sizeof (callback_sec_parms4), (xdrproc_t) xdr_callback_sec_parms4)) { return FALSE; } return TRUE; } bool_t xdr_BACKCHANNEL_CTL4res (XDR* xdrs, BACKCHANNEL_CTL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->bcr_status)) { return FALSE; } return TRUE; } bool_t xdr_channel_dir_from_client4 (XDR* xdrs, channel_dir_from_client4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_BIND_CONN_TO_SESSION4args (XDR* xdrs, BIND_CONN_TO_SESSION4args* objp) { if (!xdr_sessionid4 (xdrs, objp->bctsa_sessid)) { return FALSE; } if (!xdr_channel_dir_from_client4 (xdrs, &objp->bctsa_dir)) { return FALSE; } if (!xdr_bool (xdrs, &objp->bctsa_use_conn_in_rdma_mode)) { return FALSE; } return TRUE; } bool_t xdr_channel_dir_from_server4 (XDR* xdrs, channel_dir_from_server4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_BIND_CONN_TO_SESSION4resok (XDR* xdrs, BIND_CONN_TO_SESSION4resok* objp) { if (!xdr_sessionid4 (xdrs, objp->bctsr_sessid)) { return FALSE; } if (!xdr_channel_dir_from_server4 (xdrs, &objp->bctsr_dir)) { return FALSE; } if (!xdr_bool (xdrs, &objp->bctsr_use_conn_in_rdma_mode)) { return FALSE; } return TRUE; } bool_t xdr_BIND_CONN_TO_SESSION4res (XDR* xdrs, BIND_CONN_TO_SESSION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->bctsr_status)) { return FALSE; } switch (objp->bctsr_status) { case NFS4_OK: if (!xdr_BIND_CONN_TO_SESSION4resok (xdrs, &objp->BIND_CONN_TO_SESSION4res_u.bctsr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_state_protect_ops4 (XDR* xdrs, state_protect_ops4* objp) { if (!xdr_bitmap4 (xdrs, &objp->spo_must_enforce)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->spo_must_allow)) { return FALSE; } return TRUE; } bool_t xdr_ssv_sp_parms4 (XDR* xdrs, ssv_sp_parms4* objp) { if (!xdr_state_protect_ops4 (xdrs, &objp->ssp_ops)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->ssp_hash_algs.ssp_hash_algs_val, (u_int*) &objp->ssp_hash_algs.ssp_hash_algs_len, ~0, sizeof (sec_oid4), (xdrproc_t) xdr_sec_oid4)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->ssp_encr_algs.ssp_encr_algs_val, (u_int*) &objp->ssp_encr_algs.ssp_encr_algs_len, ~0, sizeof (sec_oid4), (xdrproc_t) xdr_sec_oid4)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->ssp_window)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->ssp_num_gss_handles)) { return FALSE; } return TRUE; } bool_t xdr_state_protect_how4 (XDR* xdrs, state_protect_how4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_state_protect4_a (XDR* xdrs, state_protect4_a* objp) { if (!xdr_state_protect_how4 (xdrs, &objp->spa_how)) { return FALSE; } switch (objp->spa_how) { case SP4_NONE: break; case SP4_MACH_CRED: if (!xdr_state_protect_ops4 (xdrs, &objp->state_protect4_a_u.spa_mach_ops)) { return FALSE; } break; case SP4_SSV: if (!xdr_ssv_sp_parms4 (xdrs, &objp->state_protect4_a_u.spa_ssv_parms)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_EXCHANGE_ID4args (XDR* xdrs, EXCHANGE_ID4args* objp) { if (!xdr_client_owner4 (xdrs, &objp->eia_clientowner)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->eia_flags)) { return FALSE; } if (!xdr_state_protect4_a (xdrs, &objp->eia_state_protect)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->eia_client_impl_id.eia_client_impl_id_val, (u_int*) &objp->eia_client_impl_id.eia_client_impl_id_len, 1, sizeof (nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4)) { return FALSE; } return TRUE; } bool_t xdr_ssv_prot_info4 (XDR* xdrs, ssv_prot_info4* objp) { if (!xdr_state_protect_ops4 (xdrs, &objp->spi_ops)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->spi_hash_alg)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->spi_encr_alg)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->spi_ssv_len)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->spi_window)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->spi_handles.spi_handles_val, (u_int*) &objp->spi_handles.spi_handles_len, ~0, sizeof (gsshandle4_t), (xdrproc_t) xdr_gsshandle4_t)) { return FALSE; } return TRUE; } bool_t xdr_state_protect4_r (XDR* xdrs, state_protect4_r* objp) { if (!xdr_state_protect_how4 (xdrs, &objp->spr_how)) { return FALSE; } switch (objp->spr_how) { case SP4_NONE: break; case SP4_MACH_CRED: if (!xdr_state_protect_ops4 (xdrs, &objp->state_protect4_r_u.spr_mach_ops)) { return FALSE; } break; case SP4_SSV: if (!xdr_ssv_prot_info4 (xdrs, &objp->state_protect4_r_u.spr_ssv_info)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_EXCHANGE_ID4resok (XDR* xdrs, EXCHANGE_ID4resok* objp) { if (!xdr_clientid4 (xdrs, &objp->eir_clientid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->eir_sequenceid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->eir_flags)) { return FALSE; } if (!xdr_state_protect4_r (xdrs, &objp->eir_state_protect)) { return FALSE; } if (!xdr_server_owner4 (xdrs, &objp->eir_server_owner)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->eir_server_scope.eir_server_scope_val, (u_int*) &objp->eir_server_scope.eir_server_scope_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->eir_server_impl_id.eir_server_impl_id_val, (u_int*) &objp->eir_server_impl_id.eir_server_impl_id_len, 1, sizeof (nfs_impl_id4), (xdrproc_t) xdr_nfs_impl_id4)) { return FALSE; } return TRUE; } bool_t xdr_EXCHANGE_ID4res (XDR* xdrs, EXCHANGE_ID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->eir_status)) { return FALSE; } switch (objp->eir_status) { case NFS4_OK: if (!xdr_EXCHANGE_ID4resok (xdrs, &objp->EXCHANGE_ID4res_u.eir_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_channel_attrs4 (XDR* xdrs, channel_attrs4* objp) { if (!xdr_count4 (xdrs, &objp->ca_headerpadsize)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->ca_maxrequestsize)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->ca_maxresponsesize)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->ca_maxresponsesize_cached)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->ca_maxoperations)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->ca_maxrequests)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->ca_rdma_ird.ca_rdma_ird_val, (u_int*) &objp->ca_rdma_ird.ca_rdma_ird_len, 1, sizeof (uint32_t), (xdrproc_t) xdr_uint32_t)) { return FALSE; } return TRUE; } bool_t xdr_CREATE_SESSION4args (XDR* xdrs, CREATE_SESSION4args* objp) { if (!xdr_clientid4 (xdrs, &objp->csa_clientid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->csa_sequence)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->csa_flags)) { return FALSE; } if (!xdr_channel_attrs4 (xdrs, &objp->csa_fore_chan_attrs)) { return FALSE; } if (!xdr_channel_attrs4 (xdrs, &objp->csa_back_chan_attrs)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->csa_cb_program)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->csa_sec_parms.csa_sec_parms_val, (u_int*) &objp->csa_sec_parms.csa_sec_parms_len, ~0, sizeof (callback_sec_parms4), (xdrproc_t) xdr_callback_sec_parms4)) { return FALSE; } return TRUE; } bool_t xdr_CREATE_SESSION4resok (XDR* xdrs, CREATE_SESSION4resok* objp) { if (!xdr_sessionid4 (xdrs, objp->csr_sessionid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->csr_sequence)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->csr_flags)) { return FALSE; } if (!xdr_channel_attrs4 (xdrs, &objp->csr_fore_chan_attrs)) { return FALSE; } if (!xdr_channel_attrs4 (xdrs, &objp->csr_back_chan_attrs)) { return FALSE; } return TRUE; } bool_t xdr_CREATE_SESSION4res (XDR* xdrs, CREATE_SESSION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->csr_status)) { return FALSE; } switch (objp->csr_status) { case NFS4_OK: if (!xdr_CREATE_SESSION4resok (xdrs, &objp->CREATE_SESSION4res_u.csr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_DESTROY_SESSION4args (XDR* xdrs, DESTROY_SESSION4args* objp) { if (!xdr_sessionid4 (xdrs, objp->dsa_sessionid)) { return FALSE; } return TRUE; } bool_t xdr_DESTROY_SESSION4res (XDR* xdrs, DESTROY_SESSION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->dsr_status)) { return FALSE; } return TRUE; } bool_t xdr_FREE_STATEID4args (XDR* xdrs, FREE_STATEID4args* objp) { if (!xdr_stateid4 (xdrs, &objp->fsa_stateid)) { return FALSE; } return TRUE; } bool_t xdr_FREE_STATEID4res (XDR* xdrs, FREE_STATEID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->fsr_status)) { return FALSE; } return TRUE; } bool_t xdr_attr_notice4 (XDR* xdrs, attr_notice4* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4args (XDR* xdrs, GET_DIR_DELEGATION4args* objp) { if (!xdr_bool (xdrs, &objp->gdda_signal_deleg_avail)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gdda_notification_types)) { return FALSE; } if (!xdr_attr_notice4 (xdrs, &objp->gdda_child_attr_delay)) { return FALSE; } if (!xdr_attr_notice4 (xdrs, &objp->gdda_dir_attr_delay)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gdda_child_attributes)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gdda_dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4resok (XDR* xdrs, GET_DIR_DELEGATION4resok* objp) { if (!xdr_verifier4 (xdrs, objp->gddr_cookieverf)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->gddr_stateid)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gddr_notification)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gddr_child_attributes)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gddr_dir_attributes)) { return FALSE; } return TRUE; } bool_t xdr_gddrnf4_status (XDR* xdrs, gddrnf4_status* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4res_non_fatal (XDR* xdrs, GET_DIR_DELEGATION4res_non_fatal* objp) { if (!xdr_gddrnf4_status (xdrs, &objp->gddrnf_status)) { return FALSE; } switch (objp->gddrnf_status) { case GDD4_OK: if (!xdr_GET_DIR_DELEGATION4resok (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_resok4)) { return FALSE; } break; case GDD4_UNAVAIL: if (!xdr_bool (xdrs, &objp->GET_DIR_DELEGATION4res_non_fatal_u.gddrnf_will_signal_deleg_avail)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4res (XDR* xdrs, GET_DIR_DELEGATION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->gddr_status)) { return FALSE; } switch (objp->gddr_status) { case NFS4_OK: if (!xdr_GET_DIR_DELEGATION4res_non_fatal (xdrs, &objp->GET_DIR_DELEGATION4res_u.gddr_res_non_fatal4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_GETDEVICEINFO4args (XDR* xdrs, GETDEVICEINFO4args* objp) { if (!xdr_deviceid4 (xdrs, objp->gdia_device_id)) { return FALSE; } if (!xdr_layouttype4 (xdrs, &objp->gdia_layout_type)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->gdia_maxcount)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gdia_notify_types)) { return FALSE; } return TRUE; } bool_t xdr_GETDEVICEINFO4resok (XDR* xdrs, GETDEVICEINFO4resok* objp) { if (!xdr_device_addr4 (xdrs, &objp->gdir_device_addr)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->gdir_notification)) { return FALSE; } return TRUE; } bool_t xdr_GETDEVICEINFO4res (XDR* xdrs, GETDEVICEINFO4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->gdir_status)) { return FALSE; } switch (objp->gdir_status) { case NFS4_OK: if (!xdr_GETDEVICEINFO4resok (xdrs, &objp->GETDEVICEINFO4res_u.gdir_resok4)) { return FALSE; } break; case NFS4ERR_TOOSMALL: if (!xdr_count4 (xdrs, &objp->GETDEVICEINFO4res_u.gdir_mincount)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_GETDEVICELIST4args (XDR* xdrs, GETDEVICELIST4args* objp) { if (!xdr_layouttype4 (xdrs, &objp->gdla_layout_type)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->gdla_maxdevices)) { return FALSE; } if (!xdr_nfs_cookie4 (xdrs, &objp->gdla_cookie)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->gdla_cookieverf)) { return FALSE; } return TRUE; } bool_t xdr_GETDEVICELIST4resok (XDR* xdrs, GETDEVICELIST4resok* objp) { if (!xdr_nfs_cookie4 (xdrs, &objp->gdlr_cookie)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->gdlr_cookieverf)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->gdlr_deviceid_list.gdlr_deviceid_list_val, (u_int*) &objp->gdlr_deviceid_list.gdlr_deviceid_list_len, ~0, sizeof (deviceid4), (xdrproc_t) xdr_deviceid4)) { return FALSE; } if (!xdr_bool (xdrs, &objp->gdlr_eof)) { return FALSE; } return TRUE; } bool_t xdr_GETDEVICELIST4res (XDR* xdrs, GETDEVICELIST4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->gdlr_status)) { return FALSE; } switch (objp->gdlr_status) { case NFS4_OK: if (!xdr_GETDEVICELIST4resok (xdrs, &objp->GETDEVICELIST4res_u.gdlr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_newtime4 (XDR* xdrs, newtime4* objp) { if (!xdr_bool (xdrs, &objp->nt_timechanged)) { return FALSE; } switch (objp->nt_timechanged) { case TRUE: if (!xdr_nfstime4 (xdrs, &objp->newtime4_u.nt_time)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_newoffset4 (XDR* xdrs, newoffset4* objp) { if (!xdr_bool (xdrs, &objp->no_newoffset)) { return FALSE; } switch (objp->no_newoffset) { case TRUE: if (!xdr_offset4 (xdrs, &objp->newoffset4_u.no_offset)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_LAYOUTCOMMIT4args (XDR* xdrs, LAYOUTCOMMIT4args* objp) { if (!xdr_offset4 (xdrs, &objp->loca_offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->loca_length)) { return FALSE; } if (!xdr_bool (xdrs, &objp->loca_reclaim)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->loca_stateid)) { return FALSE; } if (!xdr_newoffset4 (xdrs, &objp->loca_last_write_offset)) { return FALSE; } if (!xdr_newtime4 (xdrs, &objp->loca_time_modify)) { return FALSE; } if (!xdr_layoutupdate4 (xdrs, &objp->loca_layoutupdate)) { return FALSE; } return TRUE; } bool_t xdr_newsize4 (XDR* xdrs, newsize4* objp) { if (!xdr_bool (xdrs, &objp->ns_sizechanged)) { return FALSE; } switch (objp->ns_sizechanged) { case TRUE: if (!xdr_length4 (xdrs, &objp->newsize4_u.ns_size)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_LAYOUTCOMMIT4resok (XDR* xdrs, LAYOUTCOMMIT4resok* objp) { if (!xdr_newsize4 (xdrs, &objp->locr_newsize)) { return FALSE; } return TRUE; } bool_t xdr_LAYOUTCOMMIT4res (XDR* xdrs, LAYOUTCOMMIT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->locr_status)) { return FALSE; } switch (objp->locr_status) { case NFS4_OK: if (!xdr_LAYOUTCOMMIT4resok (xdrs, &objp->LAYOUTCOMMIT4res_u.locr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LAYOUTGET4args (XDR* xdrs, LAYOUTGET4args* objp) { if (!xdr_bool (xdrs, &objp->loga_signal_layout_avail)) { return FALSE; } if (!xdr_layouttype4 (xdrs, &objp->loga_layout_type)) { return FALSE; } if (!xdr_layoutiomode4 (xdrs, &objp->loga_iomode)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->loga_offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->loga_length)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->loga_minlength)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->loga_stateid)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->loga_maxcount)) { return FALSE; } return TRUE; } bool_t xdr_LAYOUTGET4resok (XDR* xdrs, LAYOUTGET4resok* objp) { if (!xdr_bool (xdrs, &objp->logr_return_on_close)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->logr_stateid)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->logr_layout.logr_layout_val, (u_int*) &objp->logr_layout.logr_layout_len, ~0, sizeof (layout4), (xdrproc_t) xdr_layout4)) { return FALSE; } return TRUE; } bool_t xdr_LAYOUTGET4res (XDR* xdrs, LAYOUTGET4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->logr_status)) { return FALSE; } switch (objp->logr_status) { case NFS4_OK: if (!xdr_LAYOUTGET4resok (xdrs, &objp->LAYOUTGET4res_u.logr_resok4)) { return FALSE; } break; case NFS4ERR_LAYOUTTRYLATER: if (!xdr_bool (xdrs, &objp->LAYOUTGET4res_u.logr_will_signal_layout_avail)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LAYOUTRETURN4args (XDR* xdrs, LAYOUTRETURN4args* objp) { if (!xdr_bool (xdrs, &objp->lora_reclaim)) { return FALSE; } if (!xdr_layouttype4 (xdrs, &objp->lora_layout_type)) { return FALSE; } if (!xdr_layoutiomode4 (xdrs, &objp->lora_iomode)) { return FALSE; } if (!xdr_layoutreturn4 (xdrs, &objp->lora_layoutreturn)) { return FALSE; } return TRUE; } bool_t xdr_layoutreturn_stateid (XDR* xdrs, layoutreturn_stateid* objp) { if (!xdr_bool (xdrs, &objp->lrs_present)) { return FALSE; } switch (objp->lrs_present) { case TRUE: if (!xdr_stateid4 (xdrs, &objp->layoutreturn_stateid_u.lrs_stateid)) { return FALSE; } break; case FALSE: break; default: return FALSE; } return TRUE; } bool_t xdr_LAYOUTRETURN4res (XDR* xdrs, LAYOUTRETURN4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->lorr_status)) { return FALSE; } switch (objp->lorr_status) { case NFS4_OK: if (!xdr_layoutreturn_stateid (xdrs, &objp->LAYOUTRETURN4res_u.lorr_stateid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_secinfo_style4 (XDR* xdrs, secinfo_style4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO_NO_NAME4args (XDR* xdrs, SECINFO_NO_NAME4args* objp) { if (!xdr_secinfo_style4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO_NO_NAME4res (XDR* xdrs, SECINFO_NO_NAME4res* objp) { if (!xdr_SECINFO4res (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_SEQUENCE4args (XDR* xdrs, SEQUENCE4args* objp) { if (!xdr_sessionid4 (xdrs, objp->sa_sessionid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->sa_sequenceid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->sa_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->sa_highest_slotid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->sa_cachethis)) { return FALSE; } return TRUE; } bool_t xdr_SEQUENCE4resok (XDR* xdrs, SEQUENCE4resok* objp) { if (!xdr_sessionid4 (xdrs, objp->sr_sessionid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->sr_sequenceid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->sr_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->sr_highest_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->sr_target_highest_slotid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->sr_status_flags)) { return FALSE; } return TRUE; } bool_t xdr_SEQUENCE4res (XDR* xdrs, SEQUENCE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->sr_status)) { return FALSE; } switch (objp->sr_status) { case NFS4_OK: if (!xdr_SEQUENCE4resok (xdrs, &objp->SEQUENCE4res_u.sr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_ssa_digest_input4 (XDR* xdrs, ssa_digest_input4* objp) { if (!xdr_SEQUENCE4args (xdrs, &objp->sdi_seqargs)) { return FALSE; } return TRUE; } bool_t xdr_SET_SSV4args (XDR* xdrs, SET_SSV4args* objp) { if (!xdr_bytes (xdrs, (char**)&objp->ssa_ssv.ssa_ssv_val, (u_int*) &objp->ssa_ssv.ssa_ssv_len, ~0)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->ssa_digest.ssa_digest_val, (u_int*) &objp->ssa_digest.ssa_digest_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_ssr_digest_input4 (XDR* xdrs, ssr_digest_input4* objp) { if (!xdr_SEQUENCE4res (xdrs, &objp->sdi_seqres)) { return FALSE; } return TRUE; } bool_t xdr_SET_SSV4resok (XDR* xdrs, SET_SSV4resok* objp) { if (!xdr_bytes (xdrs, (char**)&objp->ssr_digest.ssr_digest_val, (u_int*) &objp->ssr_digest.ssr_digest_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_SET_SSV4res (XDR* xdrs, SET_SSV4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->ssr_status)) { return FALSE; } switch (objp->ssr_status) { case NFS4_OK: if (!xdr_SET_SSV4resok (xdrs, &objp->SET_SSV4res_u.ssr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_TEST_STATEID4args (XDR* xdrs, TEST_STATEID4args* objp) { if (!xdr_array (xdrs, (char**)&objp->ts_stateids.ts_stateids_val, (u_int*) &objp->ts_stateids.ts_stateids_len, ~0, sizeof (stateid4), (xdrproc_t) xdr_stateid4)) { return FALSE; } return TRUE; } bool_t xdr_TEST_STATEID4resok (XDR* xdrs, TEST_STATEID4resok* objp) { if (!xdr_array (xdrs, (char**)&objp->tsr_status_codes.tsr_status_codes_val, (u_int*) &objp->tsr_status_codes.tsr_status_codes_len, ~0, sizeof (nfsstat4), (xdrproc_t) xdr_nfsstat4)) { return FALSE; } return TRUE; } bool_t xdr_TEST_STATEID4res (XDR* xdrs, TEST_STATEID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->tsr_status)) { return FALSE; } switch (objp->tsr_status) { case NFS4_OK: if (!xdr_TEST_STATEID4resok (xdrs, &objp->TEST_STATEID4res_u.tsr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_deleg_claim4 (XDR* xdrs, deleg_claim4* objp) { if (!xdr_open_claim_type4 (xdrs, &objp->dc_claim)) { return FALSE; } switch (objp->dc_claim) { case CLAIM_FH: break; case CLAIM_DELEG_PREV_FH: break; case CLAIM_PREVIOUS: if (!xdr_open_delegation_type4 (xdrs, &objp->deleg_claim4_u.dc_delegate_type)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_WANT_DELEGATION4args (XDR* xdrs, WANT_DELEGATION4args* objp) { if (!xdr_uint32_t (xdrs, &objp->wda_want)) { return FALSE; } if (!xdr_deleg_claim4 (xdrs, &objp->wda_claim)) { return FALSE; } return TRUE; } bool_t xdr_WANT_DELEGATION4res (XDR* xdrs, WANT_DELEGATION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->wdr_status)) { return FALSE; } switch (objp->wdr_status) { case NFS4_OK: if (!xdr_open_delegation4 (xdrs, &objp->WANT_DELEGATION4res_u.wdr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_DESTROY_CLIENTID4args (XDR* xdrs, DESTROY_CLIENTID4args* objp) { if (!xdr_clientid4 (xdrs, &objp->dca_clientid)) { return FALSE; } return TRUE; } bool_t xdr_DESTROY_CLIENTID4res (XDR* xdrs, DESTROY_CLIENTID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->dcr_status)) { return FALSE; } return TRUE; } bool_t xdr_RECLAIM_COMPLETE4args (XDR* xdrs, RECLAIM_COMPLETE4args* objp) { if (!xdr_bool (xdrs, &objp->rca_one_fs)) { return FALSE; } return TRUE; } bool_t xdr_RECLAIM_COMPLETE4res (XDR* xdrs, RECLAIM_COMPLETE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->rcr_status)) { return FALSE; } return TRUE; } /* new operations for NFSv4.1 */ bool_t xdr_nfs_opnum4 (XDR* xdrs, nfs_opnum4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_argop4 (XDR* xdrs, nfs_argop4* objp) { if (!xdr_nfs_opnum4 (xdrs, &objp->argop)) { return FALSE; } switch (objp->argop) { case OP_ACCESS: if (!xdr_ACCESS4args (xdrs, &objp->nfs_argop4_u.opaccess)) { return FALSE; } break; case OP_CLOSE: if (!xdr_CLOSE4args (xdrs, &objp->nfs_argop4_u.opclose)) { return FALSE; } break; case OP_COMMIT: if (!xdr_COMMIT4args (xdrs, &objp->nfs_argop4_u.opcommit)) { return FALSE; } break; case OP_CREATE: if (!xdr_CREATE4args (xdrs, &objp->nfs_argop4_u.opcreate)) { return FALSE; } break; case OP_DELEGPURGE: if (!xdr_DELEGPURGE4args (xdrs, &objp->nfs_argop4_u.opdelegpurge)) { return FALSE; } break; case OP_DELEGRETURN: if (!xdr_DELEGRETURN4args (xdrs, &objp->nfs_argop4_u.opdelegreturn)) { return FALSE; } break; case OP_GETATTR: if (!xdr_GETATTR4args (xdrs, &objp->nfs_argop4_u.opgetattr)) { return FALSE; } break; case OP_GETFH: break; case OP_LINK: if (!xdr_LINK4args (xdrs, &objp->nfs_argop4_u.oplink)) { return FALSE; } break; case OP_LOCK: if (!xdr_LOCK4args (xdrs, &objp->nfs_argop4_u.oplock)) { return FALSE; } break; case OP_LOCKT: if (!xdr_LOCKT4args (xdrs, &objp->nfs_argop4_u.oplockt)) { return FALSE; } break; case OP_LOCKU: if (!xdr_LOCKU4args (xdrs, &objp->nfs_argop4_u.oplocku)) { return FALSE; } break; case OP_LOOKUP: if (!xdr_LOOKUP4args (xdrs, &objp->nfs_argop4_u.oplookup)) { return FALSE; } break; case OP_LOOKUPP: break; case OP_NVERIFY: if (!xdr_NVERIFY4args (xdrs, &objp->nfs_argop4_u.opnverify)) { return FALSE; } break; case OP_OPEN: if (!xdr_OPEN4args (xdrs, &objp->nfs_argop4_u.opopen)) { return FALSE; } break; case OP_OPENATTR: if (!xdr_OPENATTR4args (xdrs, &objp->nfs_argop4_u.opopenattr)) { return FALSE; } break; case OP_OPEN_CONFIRM: if (!xdr_OPEN_CONFIRM4args (xdrs, &objp->nfs_argop4_u.opopen_confirm)) { return FALSE; } break; case OP_OPEN_DOWNGRADE: if (!xdr_OPEN_DOWNGRADE4args (xdrs, &objp->nfs_argop4_u.opopen_downgrade)) { return FALSE; } break; case OP_PUTFH: if (!xdr_PUTFH4args (xdrs, &objp->nfs_argop4_u.opputfh)) { return FALSE; } break; case OP_PUTPUBFH: break; case OP_PUTROOTFH: break; case OP_READ: if (!xdr_READ4args (xdrs, &objp->nfs_argop4_u.opread)) { return FALSE; } break; case OP_READDIR: if (!xdr_READDIR4args (xdrs, &objp->nfs_argop4_u.opreaddir)) { return FALSE; } break; case OP_READLINK: break; case OP_REMOVE: if (!xdr_REMOVE4args (xdrs, &objp->nfs_argop4_u.opremove)) { return FALSE; } break; case OP_RENAME: if (!xdr_RENAME4args (xdrs, &objp->nfs_argop4_u.oprename)) { return FALSE; } break; case OP_RENEW: if (!xdr_RENEW4args (xdrs, &objp->nfs_argop4_u.oprenew)) { return FALSE; } break; case OP_RESTOREFH: break; case OP_SAVEFH: break; case OP_SECINFO: if (!xdr_SECINFO4args (xdrs, &objp->nfs_argop4_u.opsecinfo)) { return FALSE; } break; case OP_SETATTR: if (!xdr_SETATTR4args (xdrs, &objp->nfs_argop4_u.opsetattr)) { return FALSE; } break; case OP_SETCLIENTID: if (!xdr_SETCLIENTID4args (xdrs, &objp->nfs_argop4_u.opsetclientid)) { return FALSE; } break; case OP_SETCLIENTID_CONFIRM: if (!xdr_SETCLIENTID_CONFIRM4args (xdrs, &objp->nfs_argop4_u.opsetclientid_confirm)) { return FALSE; } break; case OP_VERIFY: if (!xdr_VERIFY4args (xdrs, &objp->nfs_argop4_u.opverify)) { return FALSE; } break; case OP_WRITE: if (!xdr_WRITE4args (xdrs, &objp->nfs_argop4_u.opwrite)) { return FALSE; } break; case OP_RELEASE_LOCKOWNER: if (!xdr_RELEASE_LOCKOWNER4args (xdrs, &objp->nfs_argop4_u.oprelease_lockowner)) { return FALSE; } break; case OP_BACKCHANNEL_CTL: if (!xdr_BACKCHANNEL_CTL4args (xdrs, &objp->nfs_argop4_u.opbackchannel_ctl)) { return FALSE; } break; case OP_BIND_CONN_TO_SESSION: if (!xdr_BIND_CONN_TO_SESSION4args (xdrs, &objp->nfs_argop4_u.opbind_conn_to_session)) { return FALSE; } break; case OP_EXCHANGE_ID: if (!xdr_EXCHANGE_ID4args (xdrs, &objp->nfs_argop4_u.opexchange_id)) { return FALSE; } break; case OP_CREATE_SESSION: if (!xdr_CREATE_SESSION4args (xdrs, &objp->nfs_argop4_u.opcreate_session)) { return FALSE; } break; case OP_DESTROY_SESSION: if (!xdr_DESTROY_SESSION4args (xdrs, &objp->nfs_argop4_u.opdestroy_session)) { return FALSE; } break; case OP_FREE_STATEID: if (!xdr_FREE_STATEID4args (xdrs, &objp->nfs_argop4_u.opfree_stateid)) { return FALSE; } break; case OP_GET_DIR_DELEGATION: if (!xdr_GET_DIR_DELEGATION4args (xdrs, &objp->nfs_argop4_u.opget_dir_delegation)) { return FALSE; } break; case OP_GETDEVICEINFO: if (!xdr_GETDEVICEINFO4args (xdrs, &objp->nfs_argop4_u.opgetdeviceinfo)) { return FALSE; } break; case OP_GETDEVICELIST: if (!xdr_GETDEVICELIST4args (xdrs, &objp->nfs_argop4_u.opgetdevicelist)) { return FALSE; } break; case OP_LAYOUTCOMMIT: if (!xdr_LAYOUTCOMMIT4args (xdrs, &objp->nfs_argop4_u.oplayoutcommit)) { return FALSE; } break; case OP_LAYOUTGET: if (!xdr_LAYOUTGET4args (xdrs, &objp->nfs_argop4_u.oplayoutget)) { return FALSE; } break; case OP_LAYOUTRETURN: if (!xdr_LAYOUTRETURN4args (xdrs, &objp->nfs_argop4_u.oplayoutreturn)) { return FALSE; } break; case OP_SECINFO_NO_NAME: if (!xdr_SECINFO_NO_NAME4args (xdrs, &objp->nfs_argop4_u.opsecinfo_no_name)) { return FALSE; } break; case OP_SEQUENCE: if (!xdr_SEQUENCE4args (xdrs, &objp->nfs_argop4_u.opsequence)) { return FALSE; } break; case OP_SET_SSV: if (!xdr_SET_SSV4args (xdrs, &objp->nfs_argop4_u.opset_ssv)) { return FALSE; } break; case OP_TEST_STATEID: if (!xdr_TEST_STATEID4args (xdrs, &objp->nfs_argop4_u.optest_stateid)) { return FALSE; } break; case OP_WANT_DELEGATION: if (!xdr_WANT_DELEGATION4args (xdrs, &objp->nfs_argop4_u.opwant_delegation)) { return FALSE; } break; case OP_DESTROY_CLIENTID: if (!xdr_DESTROY_CLIENTID4args (xdrs, &objp->nfs_argop4_u.opdestroy_clientid)) { return FALSE; } break; case OP_RECLAIM_COMPLETE: if (!xdr_RECLAIM_COMPLETE4args (xdrs, &objp->nfs_argop4_u.opreclaim_complete)) { return FALSE; } break; case OP_ILLEGAL: break; default: return FALSE; } return TRUE; } bool_t xdr_nfs_resop4 (XDR* xdrs, nfs_resop4* objp) { if (!xdr_nfs_opnum4 (xdrs, &objp->resop)) { return FALSE; } switch (objp->resop) { case OP_ACCESS: if (!xdr_ACCESS4res (xdrs, &objp->nfs_resop4_u.opaccess)) { return FALSE; } break; case OP_CLOSE: if (!xdr_CLOSE4res (xdrs, &objp->nfs_resop4_u.opclose)) { return FALSE; } break; case OP_COMMIT: if (!xdr_COMMIT4res (xdrs, &objp->nfs_resop4_u.opcommit)) { return FALSE; } break; case OP_CREATE: if (!xdr_CREATE4res (xdrs, &objp->nfs_resop4_u.opcreate)) { return FALSE; } break; case OP_DELEGPURGE: if (!xdr_DELEGPURGE4res (xdrs, &objp->nfs_resop4_u.opdelegpurge)) { return FALSE; } break; case OP_DELEGRETURN: if (!xdr_DELEGRETURN4res (xdrs, &objp->nfs_resop4_u.opdelegreturn)) { return FALSE; } break; case OP_GETATTR: if (!xdr_GETATTR4res (xdrs, &objp->nfs_resop4_u.opgetattr)) { return FALSE; } break; case OP_GETFH: if (!xdr_GETFH4res (xdrs, &objp->nfs_resop4_u.opgetfh)) { return FALSE; } break; case OP_LINK: if (!xdr_LINK4res (xdrs, &objp->nfs_resop4_u.oplink)) { return FALSE; } break; case OP_LOCK: if (!xdr_LOCK4res (xdrs, &objp->nfs_resop4_u.oplock)) { return FALSE; } break; case OP_LOCKT: if (!xdr_LOCKT4res (xdrs, &objp->nfs_resop4_u.oplockt)) { return FALSE; } break; case OP_LOCKU: if (!xdr_LOCKU4res (xdrs, &objp->nfs_resop4_u.oplocku)) { return FALSE; } break; case OP_LOOKUP: if (!xdr_LOOKUP4res (xdrs, &objp->nfs_resop4_u.oplookup)) { return FALSE; } break; case OP_LOOKUPP: if (!xdr_LOOKUPP4res (xdrs, &objp->nfs_resop4_u.oplookupp)) { return FALSE; } break; case OP_NVERIFY: if (!xdr_NVERIFY4res (xdrs, &objp->nfs_resop4_u.opnverify)) { return FALSE; } break; case OP_OPEN: if (!xdr_OPEN4res (xdrs, &objp->nfs_resop4_u.opopen)) { return FALSE; } break; case OP_OPENATTR: if (!xdr_OPENATTR4res (xdrs, &objp->nfs_resop4_u.opopenattr)) { return FALSE; } break; case OP_OPEN_CONFIRM: if (!xdr_OPEN_CONFIRM4res (xdrs, &objp->nfs_resop4_u.opopen_confirm)) { return FALSE; } break; case OP_OPEN_DOWNGRADE: if (!xdr_OPEN_DOWNGRADE4res (xdrs, &objp->nfs_resop4_u.opopen_downgrade)) { return FALSE; } break; case OP_PUTFH: if (!xdr_PUTFH4res (xdrs, &objp->nfs_resop4_u.opputfh)) { return FALSE; } break; case OP_PUTPUBFH: if (!xdr_PUTPUBFH4res (xdrs, &objp->nfs_resop4_u.opputpubfh)) { return FALSE; } break; case OP_PUTROOTFH: if (!xdr_PUTROOTFH4res (xdrs, &objp->nfs_resop4_u.opputrootfh)) { return FALSE; } break; case OP_READ: if (!xdr_READ4res (xdrs, &objp->nfs_resop4_u.opread)) { return FALSE; } break; case OP_READDIR: if (!xdr_READDIR4res (xdrs, &objp->nfs_resop4_u.opreaddir)) { return FALSE; } break; case OP_READLINK: if (!xdr_READLINK4res (xdrs, &objp->nfs_resop4_u.opreadlink)) { return FALSE; } break; case OP_REMOVE: if (!xdr_REMOVE4res (xdrs, &objp->nfs_resop4_u.opremove)) { return FALSE; } break; case OP_RENAME: if (!xdr_RENAME4res (xdrs, &objp->nfs_resop4_u.oprename)) { return FALSE; } break; case OP_RENEW: if (!xdr_RENEW4res (xdrs, &objp->nfs_resop4_u.oprenew)) { return FALSE; } break; case OP_RESTOREFH: if (!xdr_RESTOREFH4res (xdrs, &objp->nfs_resop4_u.oprestorefh)) { return FALSE; } break; case OP_SAVEFH: if (!xdr_SAVEFH4res (xdrs, &objp->nfs_resop4_u.opsavefh)) { return FALSE; } break; case OP_SECINFO: if (!xdr_SECINFO4res (xdrs, &objp->nfs_resop4_u.opsecinfo)) { return FALSE; } break; case OP_SETATTR: if (!xdr_SETATTR4res (xdrs, &objp->nfs_resop4_u.opsetattr)) { return FALSE; } break; case OP_SETCLIENTID: if (!xdr_SETCLIENTID4res (xdrs, &objp->nfs_resop4_u.opsetclientid)) { return FALSE; } break; case OP_SETCLIENTID_CONFIRM: if (!xdr_SETCLIENTID_CONFIRM4res (xdrs, &objp->nfs_resop4_u.opsetclientid_confirm)) { return FALSE; } break; case OP_VERIFY: if (!xdr_VERIFY4res (xdrs, &objp->nfs_resop4_u.opverify)) { return FALSE; } break; case OP_WRITE: if (!xdr_WRITE4res (xdrs, &objp->nfs_resop4_u.opwrite)) { return FALSE; } break; case OP_RELEASE_LOCKOWNER: if (!xdr_RELEASE_LOCKOWNER4res (xdrs, &objp->nfs_resop4_u.oprelease_lockowner)) { return FALSE; } break; case OP_BACKCHANNEL_CTL: if (!xdr_BACKCHANNEL_CTL4res (xdrs, &objp->nfs_resop4_u.opbackchannel_ctl)) { return FALSE; } break; case OP_BIND_CONN_TO_SESSION: if (!xdr_BIND_CONN_TO_SESSION4res (xdrs, &objp->nfs_resop4_u.opbind_conn_to_session)) { return FALSE; } break; case OP_EXCHANGE_ID: if (!xdr_EXCHANGE_ID4res (xdrs, &objp->nfs_resop4_u.opexchange_id)) { return FALSE; } break; case OP_CREATE_SESSION: if (!xdr_CREATE_SESSION4res (xdrs, &objp->nfs_resop4_u.opcreate_session)) { return FALSE; } break; case OP_DESTROY_SESSION: if (!xdr_DESTROY_SESSION4res (xdrs, &objp->nfs_resop4_u.opdestroy_session)) { return FALSE; } break; case OP_FREE_STATEID: if (!xdr_FREE_STATEID4res (xdrs, &objp->nfs_resop4_u.opfree_stateid)) { return FALSE; } break; case OP_GET_DIR_DELEGATION: if (!xdr_GET_DIR_DELEGATION4res (xdrs, &objp->nfs_resop4_u.opget_dir_delegation)) { return FALSE; } break; case OP_GETDEVICEINFO: if (!xdr_GETDEVICEINFO4res (xdrs, &objp->nfs_resop4_u.opgetdeviceinfo)) { return FALSE; } break; case OP_GETDEVICELIST: if (!xdr_GETDEVICELIST4res (xdrs, &objp->nfs_resop4_u.opgetdevicelist)) { return FALSE; } break; case OP_LAYOUTCOMMIT: if (!xdr_LAYOUTCOMMIT4res (xdrs, &objp->nfs_resop4_u.oplayoutcommit)) { return FALSE; } break; case OP_LAYOUTGET: if (!xdr_LAYOUTGET4res (xdrs, &objp->nfs_resop4_u.oplayoutget)) { return FALSE; } break; case OP_LAYOUTRETURN: if (!xdr_LAYOUTRETURN4res (xdrs, &objp->nfs_resop4_u.oplayoutreturn)) { return FALSE; } break; case OP_SECINFO_NO_NAME: if (!xdr_SECINFO_NO_NAME4res (xdrs, &objp->nfs_resop4_u.opsecinfo_no_name)) { return FALSE; } break; case OP_SEQUENCE: if (!xdr_SEQUENCE4res (xdrs, &objp->nfs_resop4_u.opsequence)) { return FALSE; } break; case OP_SET_SSV: if (!xdr_SET_SSV4res (xdrs, &objp->nfs_resop4_u.opset_ssv)) { return FALSE; } break; case OP_TEST_STATEID: if (!xdr_TEST_STATEID4res (xdrs, &objp->nfs_resop4_u.optest_stateid)) { return FALSE; } break; case OP_WANT_DELEGATION: if (!xdr_WANT_DELEGATION4res (xdrs, &objp->nfs_resop4_u.opwant_delegation)) { return FALSE; } break; case OP_DESTROY_CLIENTID: if (!xdr_DESTROY_CLIENTID4res (xdrs, &objp->nfs_resop4_u.opdestroy_clientid)) { return FALSE; } break; case OP_RECLAIM_COMPLETE: if (!xdr_RECLAIM_COMPLETE4res (xdrs, &objp->nfs_resop4_u.opreclaim_complete)) { return FALSE; } break; case OP_ILLEGAL: if (!xdr_ILLEGAL4res (xdrs, &objp->nfs_resop4_u.opillegal)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_COMPOUND4args (XDR* xdrs, COMPOUND4args* objp) { if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->minorversion)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->argarray.argarray_val, (u_int*) &objp->argarray.argarray_len, ~0, sizeof (nfs_argop4), (xdrproc_t) xdr_nfs_argop4)) { return FALSE; } return TRUE; } bool_t xdr_COMPOUND4res (XDR* xdrs, COMPOUND4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->resarray.resarray_val, (u_int*) &objp->resarray.resarray_len, ~0, sizeof (nfs_resop4), (xdrproc_t) xdr_nfs_resop4)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4args (XDR* xdrs, CB_GETATTR4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->fh)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4resok (XDR* xdrs, CB_GETATTR4resok* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4res (XDR* xdrs, CB_GETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_CB_GETATTR4resok (xdrs, &objp->CB_GETATTR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_CB_RECALL4args (XDR* xdrs, CB_RECALL4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->truncate)) { return FALSE; } if (!xdr_nfs_fh4 (xdrs, &objp->fh)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL4res (XDR* xdrs, CB_RECALL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_CB_ILLEGAL4res (XDR* xdrs, CB_ILLEGAL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_layoutrecall_type4 (XDR* xdrs, layoutrecall_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_layoutrecall_file4 (XDR* xdrs, layoutrecall_file4* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->lor_fh)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->lor_offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->lor_length)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->lor_stateid)) { return FALSE; } return TRUE; } bool_t xdr_layoutrecall4 (XDR* xdrs, layoutrecall4* objp) { if (!xdr_layoutrecall_type4 (xdrs, &objp->lor_recalltype)) { return FALSE; } switch (objp->lor_recalltype) { case LAYOUTRECALL4_FILE: if (!xdr_layoutrecall_file4 (xdrs, &objp->layoutrecall4_u.lor_layout)) { return FALSE; } break; case LAYOUTRECALL4_FSID: if (!xdr_fsid4 (xdrs, &objp->layoutrecall4_u.lor_fsid)) { return FALSE; } break; case LAYOUTRECALL4_ALL: break; default: return FALSE; } return TRUE; } bool_t xdr_CB_LAYOUTRECALL4args (XDR* xdrs, CB_LAYOUTRECALL4args* objp) { if (!xdr_layouttype4 (xdrs, &objp->clora_type)) { return FALSE; } if (!xdr_layoutiomode4 (xdrs, &objp->clora_iomode)) { return FALSE; } if (!xdr_bool (xdrs, &objp->clora_changed)) { return FALSE; } if (!xdr_layoutrecall4 (xdrs, &objp->clora_recall)) { return FALSE; } return TRUE; } bool_t xdr_CB_LAYOUTRECALL4res (XDR* xdrs, CB_LAYOUTRECALL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->clorr_status)) { return FALSE; } return TRUE; } bool_t xdr_notify_type4 (XDR* xdrs, notify_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_notify_entry4 (XDR* xdrs, notify_entry4* objp) { if (!xdr_component4 (xdrs, &objp->ne_file)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->ne_attrs)) { return FALSE; } return TRUE; } bool_t xdr_prev_entry4 (XDR* xdrs, prev_entry4* objp) { if (!xdr_notify_entry4 (xdrs, &objp->pe_prev_entry)) { return FALSE; } if (!xdr_nfs_cookie4 (xdrs, &objp->pe_prev_entry_cookie)) { return FALSE; } return TRUE; } bool_t xdr_notify_remove4 (XDR* xdrs, notify_remove4* objp) { if (!xdr_notify_entry4 (xdrs, &objp->nrm_old_entry)) { return FALSE; } if (!xdr_nfs_cookie4 (xdrs, &objp->nrm_old_entry_cookie)) { return FALSE; } return TRUE; } bool_t xdr_notify_add4 (XDR* xdrs, notify_add4* objp) { if (!xdr_array (xdrs, (char**)&objp->nad_old_entry.nad_old_entry_val, (u_int*) &objp->nad_old_entry.nad_old_entry_len, 1, sizeof (notify_remove4), (xdrproc_t) xdr_notify_remove4)) { return FALSE; } if (!xdr_notify_entry4 (xdrs, &objp->nad_new_entry)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->nad_new_entry_cookie.nad_new_entry_cookie_val, (u_int*) &objp->nad_new_entry_cookie.nad_new_entry_cookie_len, 1, sizeof (nfs_cookie4), (xdrproc_t) xdr_nfs_cookie4)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->nad_prev_entry.nad_prev_entry_val, (u_int*) &objp->nad_prev_entry.nad_prev_entry_len, 1, sizeof (prev_entry4), (xdrproc_t) xdr_prev_entry4)) { return FALSE; } if (!xdr_bool (xdrs, &objp->nad_last_entry)) { return FALSE; } return TRUE; } bool_t xdr_notify_attr4 (XDR* xdrs, notify_attr4* objp) { if (!xdr_notify_entry4 (xdrs, &objp->na_changed_entry)) { return FALSE; } return TRUE; } bool_t xdr_notify_rename4 (XDR* xdrs, notify_rename4* objp) { if (!xdr_notify_remove4 (xdrs, &objp->nrn_old_entry)) { return FALSE; } if (!xdr_notify_add4 (xdrs, &objp->nrn_new_entry)) { return FALSE; } return TRUE; } bool_t xdr_notify_verifier4 (XDR* xdrs, notify_verifier4* objp) { if (!xdr_verifier4 (xdrs, objp->nv_old_cookieverf)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->nv_new_cookieverf)) { return FALSE; } return TRUE; } bool_t xdr_notifylist4 (XDR* xdrs, notifylist4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->notifylist4_val, (u_int*) &objp->notifylist4_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_notify4 (XDR* xdrs, notify4* objp) { if (!xdr_bitmap4 (xdrs, &objp->notify_mask)) { return FALSE; } if (!xdr_notifylist4 (xdrs, &objp->notify_vals)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY4args (XDR* xdrs, CB_NOTIFY4args* objp) { if (!xdr_stateid4 (xdrs, &objp->cna_stateid)) { return FALSE; } if (!xdr_nfs_fh4 (xdrs, &objp->cna_fh)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->cna_changes.cna_changes_val, (u_int*) &objp->cna_changes.cna_changes_len, ~0, sizeof (notify4), (xdrproc_t) xdr_notify4)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY4res (XDR* xdrs, CB_NOTIFY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->cnr_status)) { return FALSE; } return TRUE; } bool_t xdr_CB_PUSH_DELEG4args (XDR* xdrs, CB_PUSH_DELEG4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->cpda_fh)) { return FALSE; } if (!xdr_open_delegation4 (xdrs, &objp->cpda_delegation)) { return FALSE; } return TRUE; } bool_t xdr_CB_PUSH_DELEG4res (XDR* xdrs, CB_PUSH_DELEG4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->cpdr_status)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL_ANY4args (XDR* xdrs, CB_RECALL_ANY4args* objp) { if (!xdr_uint32_t (xdrs, &objp->craa_objects_to_keep)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->craa_type_mask)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL_ANY4res (XDR* xdrs, CB_RECALL_ANY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->crar_status)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args (XDR* xdrs, CB_RECALLABLE_OBJ_AVAIL4args* objp) { if (!xdr_CB_RECALL_ANY4args (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res (XDR* xdrs, CB_RECALLABLE_OBJ_AVAIL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->croa_status)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL_SLOT4args (XDR* xdrs, CB_RECALL_SLOT4args* objp) { if (!xdr_slotid4 (xdrs, &objp->rsa_target_highest_slotid)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL_SLOT4res (XDR* xdrs, CB_RECALL_SLOT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->rsr_status)) { return FALSE; } return TRUE; } bool_t xdr_referring_call4 (XDR* xdrs, referring_call4* objp) { if (!xdr_sequenceid4 (xdrs, &objp->rc_sequenceid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->rc_slotid)) { return FALSE; } return TRUE; } bool_t xdr_referring_call_list4 (XDR* xdrs, referring_call_list4* objp) { if (!xdr_sessionid4 (xdrs, objp->rcl_sessionid)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->rcl_referring_calls.rcl_referring_calls_val, (u_int*) &objp->rcl_referring_calls.rcl_referring_calls_len, ~0, sizeof (referring_call4), (xdrproc_t) xdr_referring_call4)) { return FALSE; } return TRUE; } bool_t xdr_CB_SEQUENCE4args (XDR* xdrs, CB_SEQUENCE4args* objp) { if (!xdr_sessionid4 (xdrs, objp->csa_sessionid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->csa_sequenceid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->csa_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->csa_highest_slotid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->csa_cachethis)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->csa_referring_call_lists.csa_referring_call_lists_val, (u_int*) &objp->csa_referring_call_lists.csa_referring_call_lists_len, ~0, sizeof (referring_call_list4), (xdrproc_t) xdr_referring_call_list4)) { return FALSE; } return TRUE; } bool_t xdr_CB_SEQUENCE4resok (XDR* xdrs, CB_SEQUENCE4resok* objp) { if (!xdr_sessionid4 (xdrs, objp->csr_sessionid)) { return FALSE; } if (!xdr_sequenceid4 (xdrs, &objp->csr_sequenceid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->csr_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->csr_highest_slotid)) { return FALSE; } if (!xdr_slotid4 (xdrs, &objp->csr_target_highest_slotid)) { return FALSE; } return TRUE; } bool_t xdr_CB_SEQUENCE4res (XDR* xdrs, CB_SEQUENCE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->csr_status)) { return FALSE; } switch (objp->csr_status) { case NFS4_OK: if (!xdr_CB_SEQUENCE4resok (xdrs, &objp->CB_SEQUENCE4res_u.csr_resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_CB_WANTS_CANCELLED4args (XDR* xdrs, CB_WANTS_CANCELLED4args* objp) { if (!xdr_bool (xdrs, &objp->cwca_contended_wants_cancelled)) { return FALSE; } if (!xdr_bool (xdrs, &objp->cwca_resourced_wants_cancelled)) { return FALSE; } return TRUE; } bool_t xdr_CB_WANTS_CANCELLED4res (XDR* xdrs, CB_WANTS_CANCELLED4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->cwcr_status)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY_LOCK4args (XDR* xdrs, CB_NOTIFY_LOCK4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->cnla_fh)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->cnla_lock_owner)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY_LOCK4res (XDR* xdrs, CB_NOTIFY_LOCK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->cnlr_status)) { return FALSE; } return TRUE; } bool_t xdr_notify_deviceid_type4 (XDR* xdrs, notify_deviceid_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_notify_deviceid_delete4 (XDR* xdrs, notify_deviceid_delete4* objp) { if (!xdr_layouttype4 (xdrs, &objp->ndd_layouttype)) { return FALSE; } if (!xdr_deviceid4 (xdrs, objp->ndd_deviceid)) { return FALSE; } return TRUE; } bool_t xdr_notify_deviceid_change4 (XDR* xdrs, notify_deviceid_change4* objp) { if (!xdr_layouttype4 (xdrs, &objp->ndc_layouttype)) { return FALSE; } if (!xdr_deviceid4 (xdrs, objp->ndc_deviceid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->ndc_immediate)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY_DEVICEID4args (XDR* xdrs, CB_NOTIFY_DEVICEID4args* objp) { if (!xdr_array (xdrs, (char**)&objp->cnda_changes.cnda_changes_val, (u_int*) &objp->cnda_changes.cnda_changes_len, ~0, sizeof (notify4), (xdrproc_t) xdr_notify4)) { return FALSE; } return TRUE; } bool_t xdr_CB_NOTIFY_DEVICEID4res (XDR* xdrs, CB_NOTIFY_DEVICEID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->cndr_status)) { return FALSE; } return TRUE; } /* Callback operations new to NFSv4.1 */ bool_t xdr_nfs_cb_opnum4 (XDR* xdrs, nfs_cb_opnum4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_cb_argop4 (XDR* xdrs, nfs_cb_argop4* objp) { if (!xdr_u_int (xdrs, &objp->argop)) { return FALSE; } switch (objp->argop) { case OP_CB_GETATTR: if (!xdr_CB_GETATTR4args (xdrs, &objp->nfs_cb_argop4_u.opcbgetattr)) { return FALSE; } break; case OP_CB_RECALL: if (!xdr_CB_RECALL4args (xdrs, &objp->nfs_cb_argop4_u.opcbrecall)) { return FALSE; } break; case OP_CB_LAYOUTRECALL: if (!xdr_CB_LAYOUTRECALL4args (xdrs, &objp->nfs_cb_argop4_u.opcblayoutrecall)) { return FALSE; } break; case OP_CB_NOTIFY: if (!xdr_CB_NOTIFY4args (xdrs, &objp->nfs_cb_argop4_u.opcbnotify)) { return FALSE; } break; case OP_CB_PUSH_DELEG: if (!xdr_CB_PUSH_DELEG4args (xdrs, &objp->nfs_cb_argop4_u.opcbpush_deleg)) { return FALSE; } break; case OP_CB_RECALL_ANY: if (!xdr_CB_RECALL_ANY4args (xdrs, &objp->nfs_cb_argop4_u.opcbrecall_any)) { return FALSE; } break; case OP_CB_RECALLABLE_OBJ_AVAIL: if (!xdr_CB_RECALLABLE_OBJ_AVAIL4args (xdrs, &objp->nfs_cb_argop4_u.opcbrecallable_obj_avail)) { return FALSE; } break; case OP_CB_RECALL_SLOT: if (!xdr_CB_RECALL_SLOT4args (xdrs, &objp->nfs_cb_argop4_u.opcbrecall_slot)) { return FALSE; } break; case OP_CB_SEQUENCE: if (!xdr_CB_SEQUENCE4args (xdrs, &objp->nfs_cb_argop4_u.opcbsequence)) { return FALSE; } break; case OP_CB_WANTS_CANCELLED: if (!xdr_CB_WANTS_CANCELLED4args (xdrs, &objp->nfs_cb_argop4_u.opcbwants_cancelled)) { return FALSE; } break; case OP_CB_NOTIFY_LOCK: if (!xdr_CB_NOTIFY_LOCK4args (xdrs, &objp->nfs_cb_argop4_u.opcbnotify_lock)) { return FALSE; } break; case OP_CB_NOTIFY_DEVICEID: if (!xdr_CB_NOTIFY_DEVICEID4args (xdrs, &objp->nfs_cb_argop4_u.opcbnotify_deviceid)) { return FALSE; } break; case OP_CB_ILLEGAL: break; default: return FALSE; } return TRUE; } bool_t xdr_nfs_cb_resop4 (XDR* xdrs, nfs_cb_resop4* objp) { if (!xdr_u_int (xdrs, &objp->resop)) { return FALSE; } switch (objp->resop) { case OP_CB_GETATTR: if (!xdr_CB_GETATTR4res (xdrs, &objp->nfs_cb_resop4_u.opcbgetattr)) { return FALSE; } break; case OP_CB_RECALL: if (!xdr_CB_RECALL4res (xdrs, &objp->nfs_cb_resop4_u.opcbrecall)) { return FALSE; } break; case OP_CB_LAYOUTRECALL: if (!xdr_CB_LAYOUTRECALL4res (xdrs, &objp->nfs_cb_resop4_u.opcblayoutrecall)) { return FALSE; } break; case OP_CB_NOTIFY: if (!xdr_CB_NOTIFY4res (xdrs, &objp->nfs_cb_resop4_u.opcbnotify)) { return FALSE; } break; case OP_CB_PUSH_DELEG: if (!xdr_CB_PUSH_DELEG4res (xdrs, &objp->nfs_cb_resop4_u.opcbpush_deleg)) { return FALSE; } break; case OP_CB_RECALL_ANY: if (!xdr_CB_RECALL_ANY4res (xdrs, &objp->nfs_cb_resop4_u.opcbrecall_any)) { return FALSE; } break; case OP_CB_RECALLABLE_OBJ_AVAIL: if (!xdr_CB_RECALLABLE_OBJ_AVAIL4res (xdrs, &objp->nfs_cb_resop4_u.opcbrecallable_obj_avail)) { return FALSE; } break; case OP_CB_RECALL_SLOT: if (!xdr_CB_RECALL_SLOT4res (xdrs, &objp->nfs_cb_resop4_u.opcbrecall_slot)) { return FALSE; } break; case OP_CB_SEQUENCE: if (!xdr_CB_SEQUENCE4res (xdrs, &objp->nfs_cb_resop4_u.opcbsequence)) { return FALSE; } break; case OP_CB_WANTS_CANCELLED: if (!xdr_CB_WANTS_CANCELLED4res (xdrs, &objp->nfs_cb_resop4_u.opcbwants_cancelled)) { return FALSE; } break; case OP_CB_NOTIFY_LOCK: if (!xdr_CB_NOTIFY_LOCK4res (xdrs, &objp->nfs_cb_resop4_u.opcbnotify_lock)) { return FALSE; } break; case OP_CB_NOTIFY_DEVICEID: if (!xdr_CB_NOTIFY_DEVICEID4res (xdrs, &objp->nfs_cb_resop4_u.opcbnotify_deviceid)) { return FALSE; } break; case OP_CB_ILLEGAL: if (!xdr_CB_ILLEGAL4res (xdrs, &objp->nfs_cb_resop4_u.opcbillegal)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_CB_COMPOUND4args (XDR* xdrs, CB_COMPOUND4args* objp) { if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->minorversion)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->callback_ident)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->argarray.argarray_val, (u_int*) &objp->argarray.argarray_len, ~0, sizeof (nfs_cb_argop4), (xdrproc_t) xdr_nfs_cb_argop4)) { return FALSE; } return TRUE; } bool_t xdr_CB_COMPOUND4res (XDR* xdrs, CB_COMPOUND4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->resarray.resarray_val, (u_int*) &objp->resarray.resarray_len, ~0, sizeof (nfs_cb_resop4), (xdrproc_t) xdr_nfs_cb_resop4)) { return FALSE; } return TRUE; } } // namespace NFS41 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs4/nfs41_utils.h000066400000000000000000001121551261713114600213410ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS41_UTILS_H #define NFS41_UTILS_H //------------------------------------------------------------------------------ #include #include "api/nfs_types.h" #include "api/nfs41_types_rpcgen.h" #include "protocols/nfs/nfs_utils.h" #include "protocols/rpc/rpc_header.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS41 { namespace NFS41 = NST::API::NFS41; using ProcEnumNFS41 = API::ProcEnumNFS41; using Validator = rpc::RPCProgramValidator < 100003, // SunRPC/NFS program 4, // v4 ProcEnumNFS41::NFS_NULL, // NFSPROC41RPCGEN_NULL (0) ProcEnumNFS41::COMPOUND // NFSPROC41RPCGEN_COMPOUND (1) >; bool_t xdr_nfs_ftype4 (XDR *, NFS41::nfs_ftype4*); bool_t xdr_nfsstat4 (XDR *, NFS41::nfsstat4*); bool_t xdr_attrlist4 (XDR *, NFS41::attrlist4*); bool_t xdr_bitmap4 (XDR *, NFS41::bitmap4*); bool_t xdr_changeid4 (XDR *, NFS41::changeid4*); bool_t xdr_clientid4 (XDR *, NFS41::clientid4*); bool_t xdr_count4 (XDR *, NFS41::count4*); bool_t xdr_length4 (XDR *, NFS41::length4*); bool_t xdr_mode4 (XDR *, NFS41::mode4*); bool_t xdr_nfs_cookie4 (XDR *, NFS41::nfs_cookie4*); bool_t xdr_nfs_fh4 (XDR *, NFS41::nfs_fh4*); bool_t xdr_offset4 (XDR *, NFS41::offset4*); bool_t xdr_qop4 (XDR *, NFS41::qop4*); bool_t xdr_sec_oid4 (XDR *, NFS41::sec_oid4*); bool_t xdr_sequenceid4 (XDR *, NFS41::sequenceid4*); bool_t xdr_seqid4 (XDR *, NFS41::seqid4*); bool_t xdr_sessionid4 (XDR *, NFS41::sessionid4); bool_t xdr_slotid4 (XDR *, NFS41::slotid4*); bool_t xdr_utf8string (XDR *, NFS41::utf8string*); bool_t xdr_utf8str_cis (XDR *, NFS41::utf8str_cis*); bool_t xdr_utf8str_cs (XDR *, NFS41::utf8str_cs*); bool_t xdr_utf8str_mixed (XDR *, NFS41::utf8str_mixed*); bool_t xdr_component4 (XDR *, NFS41::component4*); bool_t xdr_linktext4 (XDR *, NFS41::linktext4*); bool_t xdr_pathname4 (XDR *, NFS41::pathname4*); bool_t xdr_verifier4 (XDR *, NFS41::verifier4); bool_t xdr_nfstime4 (XDR *, NFS41::nfstime4*); bool_t xdr_time_how4 (XDR *, NFS41::time_how4*); bool_t xdr_settime4 (XDR *, NFS41::settime4*); bool_t xdr_nfs_lease4 (XDR *, NFS41::nfs_lease4*); bool_t xdr_fsid4 (XDR *, NFS41::fsid4*); bool_t xdr_change_policy4 (XDR *, NFS41::change_policy4*); bool_t xdr_fs_location4 (XDR *, NFS41::fs_location4*); bool_t xdr_fs_locations4 (XDR *, NFS41::fs_locations4*); bool_t xdr_acetype4 (XDR *, NFS41::acetype4*); bool_t xdr_aceflag4 (XDR *, NFS41::aceflag4*); bool_t xdr_acemask4 (XDR *, NFS41::acemask4*); bool_t xdr_nfsace4 (XDR *, NFS41::nfsace4*); bool_t xdr_aclflag4 (XDR *, NFS41::aclflag4*); bool_t xdr_nfsacl41 (XDR *, NFS41::nfsacl41*); bool_t xdr_mode_masked4 (XDR *, NFS41::mode_masked4*); bool_t xdr_specdata4 (XDR *, NFS41::specdata4*); bool_t xdr_netaddr4 (XDR *, NFS41::netaddr4*); bool_t xdr_nfs_impl_id4 (XDR *, NFS41::nfs_impl_id4*); bool_t xdr_stateid4 (XDR *, NFS41::stateid4*); bool_t xdr_layouttype4 (XDR *, NFS41::layouttype4*); bool_t xdr_layout_content4 (XDR *, NFS41::layout_content4*); bool_t xdr_layouthint4 (XDR *, NFS41::layouthint4*); bool_t xdr_layoutiomode4 (XDR *, NFS41::layoutiomode4*); bool_t xdr_layout4 (XDR *, NFS41::layout4*); bool_t xdr_deviceid4 (XDR *, NFS41::deviceid4); bool_t xdr_device_addr4 (XDR *, NFS41::device_addr4*); bool_t xdr_layoutupdate4 (XDR *, NFS41::layoutupdate4*); bool_t xdr_layoutreturn_type4 (XDR *, NFS41::layoutreturn_type4*); bool_t xdr_layoutreturn_file4 (XDR *, NFS41::layoutreturn_file4*); bool_t xdr_layoutreturn4 (XDR *, NFS41::layoutreturn4*); bool_t xdr_fs4_status_type (XDR *, NFS41::fs4_status_type*); bool_t xdr_fs4_status (XDR *, NFS41::fs4_status*); bool_t xdr_threshold4_read_size (XDR *, NFS41::threshold4_read_size*); bool_t xdr_threshold4_write_size (XDR *, NFS41::threshold4_write_size*); bool_t xdr_threshold4_read_iosize (XDR *, NFS41::threshold4_read_iosize*); bool_t xdr_threshold4_write_iosize (XDR *, NFS41::threshold4_write_iosize*); bool_t xdr_threshold_item4 (XDR *, NFS41::threshold_item4*); bool_t xdr_mdsthreshold4 (XDR *, NFS41::mdsthreshold4*); bool_t xdr_retention_get4 (XDR *, NFS41::retention_get4*); bool_t xdr_retention_set4 (XDR *, NFS41::retention_set4*); bool_t xdr_fs_charset_cap4 (XDR *, NFS41::fs_charset_cap4*); bool_t xdr_fattr4_supported_attrs (XDR *, NFS41::fattr4_supported_attrs*); bool_t xdr_fattr4_type (XDR *, NFS41::fattr4_type*); bool_t xdr_fattr4_fh_expire_type (XDR *, NFS41::fattr4_fh_expire_type*); bool_t xdr_fattr4_change (XDR *, NFS41::fattr4_change*); bool_t xdr_fattr4_size (XDR *, NFS41::fattr4_size*); bool_t xdr_fattr4_link_support (XDR *, NFS41::fattr4_link_support*); bool_t xdr_fattr4_symlink_support (XDR *, NFS41::fattr4_symlink_support*); bool_t xdr_fattr4_named_attr (XDR *, NFS41::fattr4_named_attr*); bool_t xdr_fattr4_fsid (XDR *, NFS41::fattr4_fsid*); bool_t xdr_fattr4_unique_handles (XDR *, NFS41::fattr4_unique_handles*); bool_t xdr_fattr4_lease_time (XDR *, NFS41::fattr4_lease_time*); bool_t xdr_fattr4_rdattr_error (XDR *, NFS41::fattr4_rdattr_error*); bool_t xdr_fattr4_acl (XDR *, NFS41::fattr4_acl*); bool_t xdr_fattr4_aclsupport (XDR *, NFS41::fattr4_aclsupport*); bool_t xdr_fattr4_archive (XDR *, NFS41::fattr4_archive*); bool_t xdr_fattr4_cansettime (XDR *, NFS41::fattr4_cansettime*); bool_t xdr_fattr4_case_insensitive (XDR *, NFS41::fattr4_case_insensitive*); bool_t xdr_fattr4_case_preserving (XDR *, NFS41::fattr4_case_preserving*); bool_t xdr_fattr4_chown_restricted (XDR *, NFS41::fattr4_chown_restricted*); bool_t xdr_fattr4_fileid (XDR *, NFS41::fattr4_fileid*); bool_t xdr_fattr4_files_avail (XDR *, NFS41::fattr4_files_avail*); bool_t xdr_fattr4_filehandle (XDR *, NFS41::fattr4_filehandle*); bool_t xdr_fattr4_files_free (XDR *, NFS41::fattr4_files_free*); bool_t xdr_fattr4_files_total (XDR *, NFS41::fattr4_files_total*); bool_t xdr_fattr4_fs_locations (XDR *, NFS41::fattr4_fs_locations*); bool_t xdr_fattr4_hidden (XDR *, NFS41::fattr4_hidden*); bool_t xdr_fattr4_homogeneous (XDR *, NFS41::fattr4_homogeneous*); bool_t xdr_fattr4_maxfilesize (XDR *, NFS41::fattr4_maxfilesize*); bool_t xdr_fattr4_maxlink (XDR *, NFS41::fattr4_maxlink*); bool_t xdr_fattr4_maxname (XDR *, NFS41::fattr4_maxname*); bool_t xdr_fattr4_maxread (XDR *, NFS41::fattr4_maxread*); bool_t xdr_fattr4_maxwrite (XDR *, NFS41::fattr4_maxwrite*); bool_t xdr_fattr4_mimetype (XDR *, NFS41::fattr4_mimetype*); bool_t xdr_fattr4_mode (XDR *, NFS41::fattr4_mode*); bool_t xdr_fattr4_mode_set_masked (XDR *, NFS41::fattr4_mode_set_masked*); bool_t xdr_fattr4_mounted_on_fileid (XDR *, NFS41::fattr4_mounted_on_fileid*); bool_t xdr_fattr4_no_trunc (XDR *, NFS41::fattr4_no_trunc*); bool_t xdr_fattr4_numlinks (XDR *, NFS41::fattr4_numlinks*); bool_t xdr_fattr4_owner (XDR *, NFS41::fattr4_owner*); bool_t xdr_fattr4_owner_group (XDR *, NFS41::fattr4_owner_group*); bool_t xdr_fattr4_quota_avail_hard (XDR *, NFS41::fattr4_quota_avail_hard*); bool_t xdr_fattr4_quota_avail_soft (XDR *, NFS41::fattr4_quota_avail_soft*); bool_t xdr_fattr4_quota_used (XDR *, NFS41::fattr4_quota_used*); bool_t xdr_fattr4_rawdev (XDR *, NFS41::fattr4_rawdev*); bool_t xdr_fattr4_space_avail (XDR *, NFS41::fattr4_space_avail*); bool_t xdr_fattr4_space_free (XDR *, NFS41::fattr4_space_free*); bool_t xdr_fattr4_space_total (XDR *, NFS41::fattr4_space_total*); bool_t xdr_fattr4_space_used (XDR *, NFS41::fattr4_space_used*); bool_t xdr_fattr4_system (XDR *, NFS41::fattr4_system*); bool_t xdr_fattr4_time_access (XDR *, NFS41::fattr4_time_access*); bool_t xdr_fattr4_time_access_set (XDR *, NFS41::fattr4_time_access_set*); bool_t xdr_fattr4_time_backup (XDR *, NFS41::fattr4_time_backup*); bool_t xdr_fattr4_time_create (XDR *, NFS41::fattr4_time_create*); bool_t xdr_fattr4_time_delta (XDR *, NFS41::fattr4_time_delta*); bool_t xdr_fattr4_time_metadata (XDR *, NFS41::fattr4_time_metadata*); bool_t xdr_fattr4_time_modify (XDR *, NFS41::fattr4_time_modify*); bool_t xdr_fattr4_time_modify_set (XDR *, NFS41::fattr4_time_modify_set*); bool_t xdr_fattr4_suppattr_exclcreat (XDR *, NFS41::fattr4_suppattr_exclcreat*); bool_t xdr_fattr4_dir_notif_delay (XDR *, NFS41::fattr4_dir_notif_delay*); bool_t xdr_fattr4_dirent_notif_delay (XDR *, NFS41::fattr4_dirent_notif_delay*); bool_t xdr_fattr4_fs_layout_types (XDR *, NFS41::fattr4_fs_layout_types*); bool_t xdr_fattr4_fs_status (XDR *, NFS41::fattr4_fs_status*); bool_t xdr_fattr4_fs_charset_cap (XDR *, NFS41::fattr4_fs_charset_cap*); bool_t xdr_fattr4_layout_alignment (XDR *, NFS41::fattr4_layout_alignment*); bool_t xdr_fattr4_layout_blksize (XDR *, NFS41::fattr4_layout_blksize*); bool_t xdr_fattr4_layout_hint (XDR *, NFS41::fattr4_layout_hint*); bool_t xdr_fattr4_layout_types (XDR *, NFS41::fattr4_layout_types*); bool_t xdr_fattr4_mdsthreshold (XDR *, NFS41::fattr4_mdsthreshold*); bool_t xdr_fattr4_retention_get (XDR *, NFS41::fattr4_retention_get*); bool_t xdr_fattr4_retention_set (XDR *, NFS41::fattr4_retention_set*); bool_t xdr_fattr4_retentevt_get (XDR *, NFS41::fattr4_retentevt_get*); bool_t xdr_fattr4_retentevt_set (XDR *, NFS41::fattr4_retentevt_set*); bool_t xdr_fattr4_retention_hold (XDR *, NFS41::fattr4_retention_hold*); bool_t xdr_fattr4_dacl (XDR *, NFS41::fattr4_dacl*); bool_t xdr_fattr4_sacl (XDR *, NFS41::fattr4_sacl*); bool_t xdr_fattr4_change_policy (XDR *, NFS41::fattr4_change_policy*); bool_t xdr_fattr4 (XDR *, NFS41::fattr4*); bool_t xdr_change_info4 (XDR *, NFS41::change_info4*); bool_t xdr_clientaddr4 (XDR *, NFS41::clientaddr4*); bool_t xdr_cb_client4 (XDR *, NFS41::cb_client4*); bool_t xdr_nfs_client_id4 (XDR *, NFS41::nfs_client_id4*); bool_t xdr_client_owner4 (XDR *, NFS41::client_owner4*); bool_t xdr_server_owner4 (XDR *, NFS41::server_owner4*); bool_t xdr_state_owner4 (XDR *, NFS41::state_owner4*); bool_t xdr_open_owner4 (XDR *, NFS41::open_owner4*); bool_t xdr_lock_owner4 (XDR *, NFS41::lock_owner4*); bool_t xdr_nfs_lock_type4 (XDR *, NFS41::nfs_lock_type4*); bool_t xdr_ssv_subkey4 (XDR *, NFS41::ssv_subkey4*); bool_t xdr_ssv_mic_plain_tkn4 (XDR *, NFS41::ssv_mic_plain_tkn4*); bool_t xdr_ssv_mic_tkn4 (XDR *, NFS41::ssv_mic_tkn4*); bool_t xdr_ssv_seal_plain_tkn4 (XDR *, NFS41::ssv_seal_plain_tkn4*); bool_t xdr_ssv_seal_cipher_tkn4 (XDR *, NFS41::ssv_seal_cipher_tkn4*); bool_t xdr_fs_locations_server4 (XDR *, NFS41::fs_locations_server4*); bool_t xdr_fs_locations_item4 (XDR *, NFS41::fs_locations_item4*); bool_t xdr_fs_locations_info4 (XDR *, NFS41::fs_locations_info4*); bool_t xdr_fattr4_fs_locations_info (XDR *, NFS41::fattr4_fs_locations_info*); bool_t xdr_nfl_util4 (XDR *, NFS41::nfl_util4*); bool_t xdr_filelayout_hint_care4 (XDR *, NFS41::filelayout_hint_care4*); bool_t xdr_nfsv4_1_file_layouthint4 (XDR *, NFS41::nfsv4_1_file_layouthint4*); bool_t xdr_multipath_list4 (XDR *, NFS41::multipath_list4*); bool_t xdr_nfsv4_1_file_layout_ds_addr4 (XDR *, NFS41::nfsv4_1_file_layout_ds_addr4*); bool_t xdr_nfsv4_1_file_layout4 (XDR *, NFS41::nfsv4_1_file_layout4*); bool_t xdr_NULL4args (XDR *, NFS41::NULL4args*); // for compatibility bool_t xdr_NULL4res (XDR *, NFS41::NULL4res*); // for compatibility bool_t xdr_ACCESS4args (XDR *, NFS41::ACCESS4args*); bool_t xdr_ACCESS4resok (XDR *, NFS41::ACCESS4resok*); bool_t xdr_ACCESS4res (XDR *, NFS41::ACCESS4res*); bool_t xdr_CLOSE4args (XDR *, NFS41::CLOSE4args*); bool_t xdr_CLOSE4res (XDR *, NFS41::CLOSE4res*); bool_t xdr_COMMIT4args (XDR *, NFS41::COMMIT4args*); bool_t xdr_COMMIT4resok (XDR *, NFS41::COMMIT4resok*); bool_t xdr_COMMIT4res (XDR *, NFS41::COMMIT4res*); bool_t xdr_createtype4 (XDR *, NFS41::createtype4*); bool_t xdr_CREATE4args (XDR *, NFS41::CREATE4args*); bool_t xdr_CREATE4resok (XDR *, NFS41::CREATE4resok*); bool_t xdr_CREATE4res (XDR *, NFS41::CREATE4res*); bool_t xdr_DELEGPURGE4args (XDR *, NFS41::DELEGPURGE4args*); bool_t xdr_DELEGPURGE4res (XDR *, NFS41::DELEGPURGE4res*); bool_t xdr_DELEGRETURN4args (XDR *, NFS41::DELEGRETURN4args*); bool_t xdr_DELEGRETURN4res (XDR *, NFS41::DELEGRETURN4res*); bool_t xdr_GETATTR4args (XDR *, NFS41::GETATTR4args*); bool_t xdr_GETATTR4resok (XDR *, NFS41::GETATTR4resok*); bool_t xdr_GETATTR4res (XDR *, NFS41::GETATTR4res*); bool_t xdr_GETFH4resok (XDR *, NFS41::GETFH4resok*); bool_t xdr_GETFH4res (XDR *, NFS41::GETFH4res*); bool_t xdr_LINK4args (XDR *, NFS41::LINK4args*); bool_t xdr_LINK4resok (XDR *, NFS41::LINK4resok*); bool_t xdr_LINK4res (XDR *, NFS41::LINK4res*); bool_t xdr_open_to_lock_owner4 (XDR *, NFS41::open_to_lock_owner4*); bool_t xdr_exist_lock_owner4 (XDR *, NFS41::exist_lock_owner4*); bool_t xdr_locker4 (XDR *, NFS41::locker4*); bool_t xdr_LOCK4args (XDR *, NFS41::LOCK4args*); bool_t xdr_LOCK4denied (XDR *, NFS41::LOCK4denied*); bool_t xdr_LOCK4resok (XDR *, NFS41::LOCK4resok*); bool_t xdr_LOCK4res (XDR *, NFS41::LOCK4res*); bool_t xdr_LOCKT4args (XDR *, NFS41::LOCKT4args*); bool_t xdr_LOCKT4res (XDR *, NFS41::LOCKT4res*); bool_t xdr_LOCKU4args (XDR *, NFS41::LOCKU4args*); bool_t xdr_LOCKU4res (XDR *, NFS41::LOCKU4res*); bool_t xdr_LOOKUP4args (XDR *, NFS41::LOOKUP4args*); bool_t xdr_LOOKUP4res (XDR *, NFS41::LOOKUP4res*); bool_t xdr_LOOKUPP4res (XDR *, NFS41::LOOKUPP4res*); bool_t xdr_NVERIFY4args (XDR *, NFS41::NVERIFY4args*); bool_t xdr_NVERIFY4res (XDR *, NFS41::NVERIFY4res*); bool_t xdr_createmode4 (XDR *, NFS41::createmode4*); bool_t xdr_creatverfattr (XDR *, NFS41::creatverfattr*); bool_t xdr_createhow4 (XDR *, NFS41::createhow4*); bool_t xdr_opentype4 (XDR *, NFS41::opentype4*); bool_t xdr_openflag4 (XDR *, NFS41::openflag4*); bool_t xdr_limit_by4 (XDR *, NFS41::limit_by4*); bool_t xdr_nfs_modified_limit4 (XDR *, NFS41::nfs_modified_limit4*); bool_t xdr_nfs_space_limit4 (XDR *, NFS41::nfs_space_limit4*); bool_t xdr_open_delegation_type4 (XDR *, NFS41::open_delegation_type4*); bool_t xdr_open_claim_type4 (XDR *, NFS41::open_claim_type4*); bool_t xdr_open_claim_delegate_cur4 (XDR *, NFS41::open_claim_delegate_cur4*); bool_t xdr_open_claim4 (XDR *, NFS41::open_claim4*); bool_t xdr_OPEN4args (XDR *, NFS41::OPEN4args*); bool_t xdr_open_read_delegation4 (XDR *, NFS41::open_read_delegation4*); bool_t xdr_open_write_delegation4 (XDR *, NFS41::open_write_delegation4*); bool_t xdr_why_no_delegation4 (XDR *, NFS41::why_no_delegation4*); bool_t xdr_open_none_delegation4 (XDR *, NFS41::open_none_delegation4*); bool_t xdr_open_delegation4 (XDR *, NFS41::open_delegation4*); bool_t xdr_OPEN4resok (XDR *, NFS41::OPEN4resok*); bool_t xdr_OPEN4res (XDR *, NFS41::OPEN4res*); bool_t xdr_OPENATTR4args (XDR *, NFS41::OPENATTR4args*); bool_t xdr_OPENATTR4res (XDR *, NFS41::OPENATTR4res*); bool_t xdr_OPEN_CONFIRM4args (XDR *, NFS41::OPEN_CONFIRM4args*); bool_t xdr_OPEN_CONFIRM4resok (XDR *, NFS41::OPEN_CONFIRM4resok*); bool_t xdr_OPEN_CONFIRM4res (XDR *, NFS41::OPEN_CONFIRM4res*); bool_t xdr_OPEN_DOWNGRADE4args (XDR *, NFS41::OPEN_DOWNGRADE4args*); bool_t xdr_OPEN_DOWNGRADE4resok (XDR *, NFS41::OPEN_DOWNGRADE4resok*); bool_t xdr_OPEN_DOWNGRADE4res (XDR *, NFS41::OPEN_DOWNGRADE4res*); bool_t xdr_PUTFH4args (XDR *, NFS41::PUTFH4args*); bool_t xdr_PUTFH4res (XDR *, NFS41::PUTFH4res*); bool_t xdr_PUTPUBFH4res (XDR *, NFS41::PUTPUBFH4res*); bool_t xdr_PUTROOTFH4res (XDR *, NFS41::PUTROOTFH4res*); bool_t xdr_READ4args (XDR *, NFS41::READ4args*); bool_t xdr_READ4resok (XDR *, NFS41::READ4resok*); bool_t xdr_READ4res (XDR *, NFS41::READ4res*); bool_t xdr_READDIR4args (XDR *, NFS41::READDIR4args*); bool_t xdr_entry4 (XDR *, NFS41::entry4*); bool_t xdr_dirlist4 (XDR *, NFS41::dirlist4*); bool_t xdr_READDIR4resok (XDR *, NFS41::READDIR4resok*); bool_t xdr_READDIR4res (XDR *, NFS41::READDIR4res*); bool_t xdr_READLINK4resok (XDR *, NFS41::READLINK4resok*); bool_t xdr_READLINK4res (XDR *, NFS41::READLINK4res*); bool_t xdr_REMOVE4args (XDR *, NFS41::REMOVE4args*); bool_t xdr_REMOVE4resok (XDR *, NFS41::REMOVE4resok*); bool_t xdr_REMOVE4res (XDR *, NFS41::REMOVE4res*); bool_t xdr_RENAME4args (XDR *, NFS41::RENAME4args*); bool_t xdr_RENAME4resok (XDR *, NFS41::RENAME4resok*); bool_t xdr_RENAME4res (XDR *, NFS41::RENAME4res*); bool_t xdr_RENEW4args (XDR *, NFS41::RENEW4args*); bool_t xdr_RENEW4res (XDR *, NFS41::RENEW4res*); bool_t xdr_RESTOREFH4res (XDR *, NFS41::RESTOREFH4res*); bool_t xdr_SAVEFH4res (XDR *, NFS41::SAVEFH4res*); bool_t xdr_SECINFO4args (XDR *, NFS41::SECINFO4args*); bool_t xdr_rpc_gss_svc_t (XDR *, NFS41::rpc_gss_svc_t*); bool_t xdr_rpcsec_gss_info (XDR *, NFS41::rpcsec_gss_info*); bool_t xdr_secinfo4 (XDR *, NFS41::secinfo4*); bool_t xdr_SECINFO4resok (XDR *, NFS41::SECINFO4resok*); bool_t xdr_SECINFO4res (XDR *, NFS41::SECINFO4res*); bool_t xdr_SETATTR4args (XDR *, NFS41::SETATTR4args*); bool_t xdr_SETATTR4res (XDR *, NFS41::SETATTR4res*); bool_t xdr_SETCLIENTID4args (XDR *, NFS41::SETCLIENTID4args*); bool_t xdr_SETCLIENTID4resok (XDR *, NFS41::SETCLIENTID4resok*); bool_t xdr_SETCLIENTID4res (XDR *, NFS41::SETCLIENTID4res*); bool_t xdr_SETCLIENTID_CONFIRM4args (XDR *, NFS41::SETCLIENTID_CONFIRM4args*); bool_t xdr_SETCLIENTID_CONFIRM4res (XDR *, NFS41::SETCLIENTID_CONFIRM4res*); bool_t xdr_VERIFY4args (XDR *, NFS41::VERIFY4args*); bool_t xdr_VERIFY4res (XDR *, NFS41::VERIFY4res*); bool_t xdr_stable_how4 (XDR *, NFS41::stable_how4*); bool_t xdr_WRITE4args (XDR *, NFS41::WRITE4args*); bool_t xdr_WRITE4resok (XDR *, NFS41::WRITE4resok*); bool_t xdr_WRITE4res (XDR *, NFS41::WRITE4res*); bool_t xdr_RELEASE_LOCKOWNER4args (XDR *, NFS41::RELEASE_LOCKOWNER4args*); bool_t xdr_RELEASE_LOCKOWNER4res (XDR *, NFS41::RELEASE_LOCKOWNER4res*); bool_t xdr_ILLEGAL4res (XDR *, NFS41::ILLEGAL4res*); bool_t xdr_gsshandle4_t (XDR *, NFS41::gsshandle4_t*); bool_t xdr_gss_cb_handles4 (XDR *, NFS41::gss_cb_handles4*); bool_t xdr_callback_sec_parms4 (XDR *, NFS41::callback_sec_parms4*); bool_t xdr_BACKCHANNEL_CTL4args (XDR *, NFS41::BACKCHANNEL_CTL4args*); bool_t xdr_BACKCHANNEL_CTL4res (XDR *, NFS41::BACKCHANNEL_CTL4res*); bool_t xdr_channel_dir_from_client4 (XDR *, NFS41::channel_dir_from_client4*); bool_t xdr_BIND_CONN_TO_SESSION4args (XDR *, NFS41::BIND_CONN_TO_SESSION4args*); bool_t xdr_channel_dir_from_server4 (XDR *, NFS41::channel_dir_from_server4*); bool_t xdr_BIND_CONN_TO_SESSION4resok (XDR *, NFS41::BIND_CONN_TO_SESSION4resok*); bool_t xdr_BIND_CONN_TO_SESSION4res (XDR *, NFS41::BIND_CONN_TO_SESSION4res*); bool_t xdr_state_protect_ops4 (XDR *, NFS41::state_protect_ops4*); bool_t xdr_ssv_sp_parms4 (XDR *, NFS41::ssv_sp_parms4*); bool_t xdr_state_protect_how4 (XDR *, NFS41::state_protect_how4*); bool_t xdr_state_protect4_a (XDR *, NFS41::state_protect4_a*); bool_t xdr_EXCHANGE_ID4args (XDR *, NFS41::EXCHANGE_ID4args*); bool_t xdr_ssv_prot_info4 (XDR *, NFS41::ssv_prot_info4*); bool_t xdr_state_protect4_r (XDR *, NFS41::state_protect4_r*); bool_t xdr_EXCHANGE_ID4resok (XDR *, NFS41::EXCHANGE_ID4resok*); bool_t xdr_EXCHANGE_ID4res (XDR *, NFS41::EXCHANGE_ID4res*); bool_t xdr_channel_attrs4 (XDR *, NFS41::channel_attrs4*); bool_t xdr_CREATE_SESSION4args (XDR *, NFS41::CREATE_SESSION4args*); bool_t xdr_CREATE_SESSION4resok (XDR *, NFS41::CREATE_SESSION4resok*); bool_t xdr_CREATE_SESSION4res (XDR *, NFS41::CREATE_SESSION4res*); bool_t xdr_DESTROY_SESSION4args (XDR *, NFS41::DESTROY_SESSION4args*); bool_t xdr_DESTROY_SESSION4res (XDR *, NFS41::DESTROY_SESSION4res*); bool_t xdr_FREE_STATEID4args (XDR *, NFS41::FREE_STATEID4args*); bool_t xdr_FREE_STATEID4res (XDR *, NFS41::FREE_STATEID4res*); bool_t xdr_attr_notice4 (XDR *, NFS41::attr_notice4*); bool_t xdr_GET_DIR_DELEGATION4args (XDR *, NFS41::GET_DIR_DELEGATION4args*); bool_t xdr_GET_DIR_DELEGATION4resok (XDR *, NFS41::GET_DIR_DELEGATION4resok*); bool_t xdr_gddrnf4_status (XDR *, NFS41::gddrnf4_status*); bool_t xdr_GET_DIR_DELEGATION4res_non_fatal (XDR *, NFS41::GET_DIR_DELEGATION4res_non_fatal*); bool_t xdr_GET_DIR_DELEGATION4res (XDR *, NFS41::GET_DIR_DELEGATION4res*); bool_t xdr_GETDEVICEINFO4args (XDR *, NFS41::GETDEVICEINFO4args*); bool_t xdr_GETDEVICEINFO4resok (XDR *, NFS41::GETDEVICEINFO4resok*); bool_t xdr_GETDEVICEINFO4res (XDR *, NFS41::GETDEVICEINFO4res*); bool_t xdr_GETDEVICELIST4args (XDR *, NFS41::GETDEVICELIST4args*); bool_t xdr_GETDEVICELIST4resok (XDR *, NFS41::GETDEVICELIST4resok*); bool_t xdr_GETDEVICELIST4res (XDR *, NFS41::GETDEVICELIST4res*); bool_t xdr_newtime4 (XDR *, NFS41::newtime4*); bool_t xdr_newoffset4 (XDR *, NFS41::newoffset4*); bool_t xdr_LAYOUTCOMMIT4args (XDR *, NFS41::LAYOUTCOMMIT4args*); bool_t xdr_newsize4 (XDR *, NFS41::newsize4*); bool_t xdr_LAYOUTCOMMIT4resok (XDR *, NFS41::LAYOUTCOMMIT4resok*); bool_t xdr_LAYOUTCOMMIT4res (XDR *, NFS41::LAYOUTCOMMIT4res*); bool_t xdr_LAYOUTGET4args (XDR *, NFS41::LAYOUTGET4args*); bool_t xdr_LAYOUTGET4resok (XDR *, NFS41::LAYOUTGET4resok*); bool_t xdr_LAYOUTGET4res (XDR *, NFS41::LAYOUTGET4res*); bool_t xdr_LAYOUTRETURN4args (XDR *, NFS41::LAYOUTRETURN4args*); bool_t xdr_layoutreturn_stateid (XDR *, NFS41::layoutreturn_stateid*); bool_t xdr_LAYOUTRETURN4res (XDR *, NFS41::LAYOUTRETURN4res*); bool_t xdr_secinfo_style4 (XDR *, NFS41::secinfo_style4*); bool_t xdr_SECINFO_NO_NAME4args (XDR *, NFS41::SECINFO_NO_NAME4args*); bool_t xdr_SECINFO_NO_NAME4res (XDR *, NFS41::SECINFO_NO_NAME4res*); bool_t xdr_SEQUENCE4args (XDR *, NFS41::SEQUENCE4args*); bool_t xdr_SEQUENCE4resok (XDR *, NFS41::SEQUENCE4resok*); bool_t xdr_SEQUENCE4res (XDR *, NFS41::SEQUENCE4res*); bool_t xdr_ssa_digest_input4 (XDR *, NFS41::ssa_digest_input4*); bool_t xdr_SET_SSV4args (XDR *, NFS41::SET_SSV4args*); bool_t xdr_ssr_digest_input4 (XDR *, NFS41::ssr_digest_input4*); bool_t xdr_SET_SSV4resok (XDR *, NFS41::SET_SSV4resok*); bool_t xdr_SET_SSV4res (XDR *, NFS41::SET_SSV4res*); bool_t xdr_TEST_STATEID4args (XDR *, NFS41::TEST_STATEID4args*); bool_t xdr_TEST_STATEID4resok (XDR *, NFS41::TEST_STATEID4resok*); bool_t xdr_TEST_STATEID4res (XDR *, NFS41::TEST_STATEID4res*); bool_t xdr_deleg_claim4 (XDR *, NFS41::deleg_claim4*); bool_t xdr_WANT_DELEGATION4args (XDR *, NFS41::WANT_DELEGATION4args*); bool_t xdr_WANT_DELEGATION4res (XDR *, NFS41::WANT_DELEGATION4res*); bool_t xdr_DESTROY_CLIENTID4args (XDR *, NFS41::DESTROY_CLIENTID4args*); bool_t xdr_DESTROY_CLIENTID4res (XDR *, NFS41::DESTROY_CLIENTID4res*); bool_t xdr_RECLAIM_COMPLETE4args (XDR *, NFS41::RECLAIM_COMPLETE4args*); bool_t xdr_RECLAIM_COMPLETE4res (XDR *, NFS41::RECLAIM_COMPLETE4res*); bool_t xdr_nfs_opnum4 (XDR *, NFS41::nfs_opnum4*); bool_t xdr_nfs_argop4 (XDR *, NFS41::nfs_argop4*); bool_t xdr_nfs_resop4 (XDR *, NFS41::nfs_resop4*); bool_t xdr_COMPOUND4args (XDR *, NFS41::COMPOUND4args*); bool_t xdr_COMPOUND4res (XDR *, NFS41::COMPOUND4res*); bool_t xdr_CB_GETATTR4args (XDR *, NFS41::CB_GETATTR4args*); bool_t xdr_CB_GETATTR4resok (XDR *, NFS41::CB_GETATTR4resok*); bool_t xdr_CB_GETATTR4res (XDR *, NFS41::CB_GETATTR4res*); bool_t xdr_CB_RECALL4args (XDR *, NFS41::CB_RECALL4args*); bool_t xdr_CB_RECALL4res (XDR *, NFS41::CB_RECALL4res*); bool_t xdr_CB_ILLEGAL4res (XDR *, NFS41::CB_ILLEGAL4res*); bool_t xdr_layoutrecall_type4 (XDR *, NFS41::layoutrecall_type4*); bool_t xdr_layoutrecall_file4 (XDR *, NFS41::layoutrecall_file4*); bool_t xdr_layoutrecall4 (XDR *, NFS41::layoutrecall4*); bool_t xdr_CB_LAYOUTRECALL4args (XDR *, NFS41::CB_LAYOUTRECALL4args*); bool_t xdr_CB_LAYOUTRECALL4res (XDR *, NFS41::CB_LAYOUTRECALL4res*); bool_t xdr_notify_type4 (XDR *, NFS41::notify_type4*); bool_t xdr_notify_entry4 (XDR *, NFS41::notify_entry4*); bool_t xdr_prev_entry4 (XDR *, NFS41::prev_entry4*); bool_t xdr_notify_remove4 (XDR *, NFS41::notify_remove4*); bool_t xdr_notify_add4 (XDR *, NFS41::notify_add4*); bool_t xdr_notify_attr4 (XDR *, NFS41::notify_attr4*); bool_t xdr_notify_rename4 (XDR *, NFS41::notify_rename4*); bool_t xdr_notify_verifier4 (XDR *, NFS41::notify_verifier4*); bool_t xdr_notifylist4 (XDR *, NFS41::notifylist4*); bool_t xdr_notify4 (XDR *, NFS41::notify4*); bool_t xdr_CB_NOTIFY4args (XDR *, NFS41::CB_NOTIFY4args*); bool_t xdr_CB_NOTIFY4res (XDR *, NFS41::CB_NOTIFY4res*); bool_t xdr_CB_PUSH_DELEG4args (XDR *, NFS41::CB_PUSH_DELEG4args*); bool_t xdr_CB_PUSH_DELEG4res (XDR *, NFS41::CB_PUSH_DELEG4res*); bool_t xdr_CB_RECALL_ANY4args (XDR *, NFS41::CB_RECALL_ANY4args*); bool_t xdr_CB_RECALL_ANY4res (XDR *, NFS41::CB_RECALL_ANY4res*); bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4args (XDR *, NFS41::CB_RECALLABLE_OBJ_AVAIL4args*); bool_t xdr_CB_RECALLABLE_OBJ_AVAIL4res (XDR *, NFS41::CB_RECALLABLE_OBJ_AVAIL4res*); bool_t xdr_CB_RECALL_SLOT4args (XDR *, NFS41::CB_RECALL_SLOT4args*); bool_t xdr_CB_RECALL_SLOT4res (XDR *, NFS41::CB_RECALL_SLOT4res*); bool_t xdr_referring_call4 (XDR *, NFS41::referring_call4*); bool_t xdr_referring_call_list4 (XDR *, NFS41::referring_call_list4*); bool_t xdr_CB_SEQUENCE4args (XDR *, NFS41::CB_SEQUENCE4args*); bool_t xdr_CB_SEQUENCE4resok (XDR *, NFS41::CB_SEQUENCE4resok*); bool_t xdr_CB_SEQUENCE4res (XDR *, NFS41::CB_SEQUENCE4res*); bool_t xdr_CB_WANTS_CANCELLED4args (XDR *, NFS41::CB_WANTS_CANCELLED4args*); bool_t xdr_CB_WANTS_CANCELLED4res (XDR *, NFS41::CB_WANTS_CANCELLED4res*); bool_t xdr_CB_NOTIFY_LOCK4args (XDR *, NFS41::CB_NOTIFY_LOCK4args*); bool_t xdr_CB_NOTIFY_LOCK4res (XDR *, NFS41::CB_NOTIFY_LOCK4res*); bool_t xdr_notify_deviceid_type4 (XDR *, NFS41::notify_deviceid_type4*); bool_t xdr_notify_deviceid_delete4 (XDR *, NFS41::notify_deviceid_delete4*); bool_t xdr_notify_deviceid_change4 (XDR *, NFS41::notify_deviceid_change4*); bool_t xdr_CB_NOTIFY_DEVICEID4args (XDR *, NFS41::CB_NOTIFY_DEVICEID4args*); bool_t xdr_CB_NOTIFY_DEVICEID4res (XDR *, NFS41::CB_NOTIFY_DEVICEID4res*); bool_t xdr_nfs_cb_opnum4 (XDR *, NFS41::nfs_cb_opnum4*); bool_t xdr_nfs_cb_argop4 (XDR *, NFS41::nfs_cb_argop4*); bool_t xdr_nfs_cb_resop4 (XDR *, NFS41::nfs_cb_resop4*); bool_t xdr_CB_COMPOUND4args (XDR *, NFS41::CB_COMPOUND4args*); bool_t xdr_CB_COMPOUND4res (XDR *, NFS41::CB_COMPOUND4res*); // Procedure 0: NULL - Do nothing inline auto proc_t_of(NFS41::NULL4args&)->decltype(&xdr_NULL4args) { return xdr_NULL4args; } inline auto proc_t_of(NFS41::NULL4res&)->decltype(&xdr_NULL4res) { return &xdr_NULL4res; } // Procedure 1: COMPOUND inline auto proc_t_of(NFS41::COMPOUND4args&)->decltype(&xdr_COMPOUND4args) { return &xdr_COMPOUND4args; } inline auto proc_t_of(NFS41::COMPOUND4res&)->decltype(&xdr_COMPOUND4res) { return &xdr_COMPOUND4res; } #define NST_PUBLIC __attribute__ ((visibility("default"))) extern"C" NST_PUBLIC const char* print_nfs41_procedures(const ProcEnumNFS41::NFSProcedure proc); std::ostream& operator<<(std::ostream& out, const ProcEnumNFS41::NFSProcedure proc); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_ftype4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsstat4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::bitmap4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_fh4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::sec_oid4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::utf8string& obj); std::ostream& operator<<(std::ostream& out, const NFS41::pathname4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfstime4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::time_how4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::settime4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fsid4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs_location4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs_locations4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsace4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::change_policy4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsacl41& obj); std::ostream& operator<<(std::ostream& out, const NFS41::mode_masked4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::specdata4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::netaddr4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_impl_id4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::stateid4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layouttype4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layout_content4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layouthint4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutiomode4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layout4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::device_addr4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutupdate4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutreturn_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutreturn_file4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutreturn4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs4_status_type& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs4_status& obj); std::ostream& operator<<(std::ostream& out, const NFS41::threshold_item4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::mdsthreshold4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::retention_get4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::retention_set4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fattr4_acl& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fattr4_fs_layout_types& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fattr4_layout_types& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fattr4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::change_info4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::cb_client4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_client_id4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::client_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::server_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::state_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_lock_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_subkey4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_mic_plain_tkn4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_mic_tkn4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_seal_plain_tkn4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_seal_cipher_tkn4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs_locations_server4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs_locations_item4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::fs_locations_info4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::filelayout_hint_care4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsv4_1_file_layouthint4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::multipath_list4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsv4_1_file_layout_ds_addr4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfsv4_1_file_layout4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::createtype4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_to_lock_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::exist_lock_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::locker4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::createmode4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::creatverfattr& obj); std::ostream& operator<<(std::ostream& out, const NFS41::createhow4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::opentype4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::openflag4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::limit_by4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_modified_limit4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::nfs_space_limit4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_delegation_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_claim_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_claim_delegate_cur4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_claim4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_read_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_write_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::why_no_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_none_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::open_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::entry4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::dirlist4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::rpc_gss_svc_t& obj); std::ostream& operator<<(std::ostream& out, const NFS41::rpcsec_gss_info& obj); std::ostream& operator<<(std::ostream& out, const NFS41::secinfo4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::stable_how4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::gsshandle4_t& obj); std::ostream& operator<<(std::ostream& out, const NFS41::gss_cb_handles4& obj); std::ostream& operator<<(std::ostream& out, const authunix_parms& obj); std::ostream& operator<<(std::ostream& out, const NFS41::authsys_parms& obj); std::ostream& operator<<(std::ostream& out, const NFS41::callback_sec_parms4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::channel_dir_from_client4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::channel_dir_from_server4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::state_protect_ops4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_sp_parms4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::state_protect_how4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::state_protect4_a& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssv_prot_info4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::state_protect4_r& obj); std::ostream& operator<<(std::ostream& out, const NFS41::channel_attrs4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::gddrnf4_status& obj); std::ostream& operator<<(std::ostream& out, const NFS41::newtime4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::newoffset4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::newsize4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutreturn_stateid& obj); std::ostream& operator<<(std::ostream& out, const NFS41::secinfo_style4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::SEQUENCE4args& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssa_digest_input4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::ssr_digest_input4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::deleg_claim4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutrecall_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutrecall_file4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::layoutrecall4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_entry4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::prev_entry4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_remove4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_add4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_attr4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_rename4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_verifier4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notifylist4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::referring_call4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::referring_call_list4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_deviceid_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_deviceid_delete4& obj); std::ostream& operator<<(std::ostream& out, const NFS41::notify_deviceid_change4& obj); } // namespace NFS41 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NFS41_UTILS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs4/nfs4_utils.cpp000066400000000000000000002643321261713114600216200ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2014-2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include "protocols/nfs/nfs_utils.h" #include "protocols/nfs4/nfs4_utils.h" //------------------------------------------------------------------------------ using namespace NST::API::NFS4; using namespace NST::protocols::NFS; // NFS helpers //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS4 { std::ostream& operator<<(std::ostream& out, const ProcEnumNFS4::NFSProcedure proc) { return out << print_nfs4_procedures(proc); } const char* print_nfs4_procedures(const ProcEnumNFS4::NFSProcedure proc) { // In all cases we suppose, that NFSv4 operation ILLEGAL(10044) // has the second position in ProcEnumNFS4 uint32_t i = proc; if(proc == ProcEnumNFS4::ILLEGAL) i = 2; static const char* const NFS4ProcedureTitles[ProcEnumNFS4::count] = { "NULL","COMPOUND","ILLEGAL", "ACCESS", "CLOSE", "COMMIT", "CREATE", "DELEGPURGE", "DELEGRETURN", "GETATTR", "GETFH", "LINK", "LOCK", "LOCKT", "LOCKU", "LOOKUP", "LOOKUPP", "NVERIFY", "OPEN", "OPENATTR", "OPEN_CONFIRM", "OPEN_DOWNGRADE", "PUTFH", "PUTPUBFH", "PUTROOTFH", "READ", "READDIR", "READLINK", "REMOVE", "RENAME", "RENEW", "RESTOREFH", "SAVEFH", "SECINFO", "SETATTR", "SETCLIENTID", "SETCLIENTID_CONFIRM", "VERIFY", "WRITE", "RELEASE_LOCKOWNER", "GET_DIR_DELEGATION" }; return NFS4ProcedureTitles[i]; } std::ostream& operator<<(std::ostream& out, const nfs_ftype4& obj) { switch(obj) { case nfs_ftype4::NF4REG: return out << "REG"; case nfs_ftype4::NF4DIR: return out << "DIR"; case nfs_ftype4::NF4BLK: return out << "BLK"; case nfs_ftype4::NF4CHR: return out << "CHR"; case nfs_ftype4::NF4LNK: return out << "LNK"; case nfs_ftype4::NF4SOCK: return out << "SOCK"; case nfs_ftype4::NF4FIFO: return out << "FIFO"; case nfs_ftype4::NF4ATTRDIR: return out << "ATTRDIR"; case nfs_ftype4::NF4NAMEDATTR: return out << "NAMEDATTR"; } return out; } std::ostream& operator<<(std::ostream& out, const nfsstat4& obj) { switch(obj) { case nfsstat4::NFS4_OK: return out << "OK"; case nfsstat4::NFS4ERR_PERM: return out << "ERROR_PERM"; case nfsstat4::NFS4ERR_NOENT: return out << "ERROR_NOENT"; case nfsstat4::NFS4ERR_IO: return out << "ERROR_IO"; case nfsstat4::NFS4ERR_NXIO: return out << "ERROR_NXIO"; case nfsstat4::NFS4ERR_ACCESS: return out << "ERROR_ACCESS"; case nfsstat4::NFS4ERR_EXIST: return out << "ERROR_EXIST"; case nfsstat4::NFS4ERR_XDEV: return out << "ERROR_XDEV"; case nfsstat4::NFS4ERR_NOTDIR: return out << "ERROR_NOTDIR"; case nfsstat4::NFS4ERR_ISDIR: return out << "ERROR_ISDIR"; case nfsstat4::NFS4ERR_INVAL: return out << "ERROR_INVAL"; case nfsstat4::NFS4ERR_FBIG: return out << "ERROR_FBIG"; case nfsstat4::NFS4ERR_NOSPC: return out << "ERROR_NOSPC"; case nfsstat4::NFS4ERR_ROFS: return out << "ERROR_ROFS"; case nfsstat4::NFS4ERR_MLINK: return out << "ERROR_MLINK"; case nfsstat4::NFS4ERR_NAMETOOLONG: return out << "ERROR_NAMETOOLONG"; case nfsstat4::NFS4ERR_NOTEMPTY: return out << "ERROR_NOTEMPTY"; case nfsstat4::NFS4ERR_DQUOT: return out << "ERROR_DQUOT"; case nfsstat4::NFS4ERR_STALE: return out << "ERROR_STALE"; case nfsstat4::NFS4ERR_BADHANDLE: return out << "ERROR_BADHANDLE"; case nfsstat4::NFS4ERR_BAD_COOKIE: return out << "ERROR_BAD_COOKIE"; case nfsstat4::NFS4ERR_NOTSUPP: return out << "ERROR_NOTSUPP"; case nfsstat4::NFS4ERR_TOOSMALL: return out << "ERROR_TOOSMALL"; case nfsstat4::NFS4ERR_SERVERFAULT: return out << "ERROR_SERVERFAULT"; case nfsstat4::NFS4ERR_BADTYPE: return out << "ERROR_BADTYPE"; case nfsstat4::NFS4ERR_DELAY: return out << "ERROR_DELAY"; case nfsstat4::NFS4ERR_SAME: return out << "ERROR_SAME"; case nfsstat4::NFS4ERR_DENIED: return out << "ERROR_DENIED"; case nfsstat4::NFS4ERR_EXPIRED: return out << "ERROR_EXPIRED"; case nfsstat4::NFS4ERR_LOCKED: return out << "ERROR_LOCKED"; case nfsstat4::NFS4ERR_GRACE: return out << "ERROR_GRACE"; case nfsstat4::NFS4ERR_FHEXPIRED: return out << "ERROR_FHEXPIRED"; case nfsstat4::NFS4ERR_SHARE_DENIED: return out << "ERROR_SHARE_DENIED"; case nfsstat4::NFS4ERR_WRONGSEC: return out << "ERROR_WRONGSEC"; case nfsstat4::NFS4ERR_CLID_INUSE: return out << "ERROR_CLID_INUSE"; case nfsstat4::NFS4ERR_RESOURCE: return out << "ERROR_RESOURCE"; case nfsstat4::NFS4ERR_MOVED: return out << "ERROR_MOVED"; case nfsstat4::NFS4ERR_NOFILEHANDLE: return out << "ERROR_NOFILEHANDLE"; case nfsstat4::NFS4ERR_MINOR_VERS_MISMATCH: return out << "ERROR_MINOR_VERS_MISMATCH"; case nfsstat4::NFS4ERR_STALE_CLIENTID: return out << "ERROR_STALE_CLIENTID"; case nfsstat4::NFS4ERR_STALE_STATEID: return out << "ERROR_STALE_STATEID"; case nfsstat4::NFS4ERR_OLD_STATEID: return out << "ERROR_OLD_STATEID"; case nfsstat4::NFS4ERR_BAD_STATEID: return out << "ERROR_BAD_STATEID"; case nfsstat4::NFS4ERR_BAD_SEQID: return out << "ERROR_BAD_SEQID"; case nfsstat4::NFS4ERR_NOT_SAME: return out << "ERROR_NOT_SAME"; case nfsstat4::NFS4ERR_LOCK_RANGE: return out << "ERROR_LOCK_RANGE"; case nfsstat4::NFS4ERR_SYMLINK: return out << "ERROR_SYMLINK"; case nfsstat4::NFS4ERR_RESTOREFH: return out << "ERROR_RESTOREFH"; case nfsstat4::NFS4ERR_LEASE_MOVED: return out << "ERROR_LEASE_MOVED"; case nfsstat4::NFS4ERR_ATTRNOTSUPP: return out << "ERROR_ATTRNOTSUPP"; case nfsstat4::NFS4ERR_NO_GRACE: return out << "ERROR_NO_GRACE"; case nfsstat4::NFS4ERR_RECLAIM_BAD: return out << "ERROR_RECLAIM_BAD"; case nfsstat4::NFS4ERR_RECLAIM_CONFLICT: return out << "ERROR_RECLAIM_CONFLICT"; case nfsstat4::NFS4ERR_BADXDR: return out << "ERROR_BADXDR"; case nfsstat4::NFS4ERR_LOCKS_HELD: return out << "ERROR_LOCKS_HELD"; case nfsstat4::NFS4ERR_OPENMODE: return out << "ERROR_OPENMODE"; case nfsstat4::NFS4ERR_BADOWNER: return out << "ERROR_BADOWNER"; case nfsstat4::NFS4ERR_BADCHAR: return out << "ERROR_BADCHAR"; case nfsstat4::NFS4ERR_BADNAME: return out << "ERROR_BADNAME"; case nfsstat4::NFS4ERR_BAD_RANGE: return out << "ERROR_BAD_RANGE"; case nfsstat4::NFS4ERR_LOCK_NOTSUPP: return out << "ERROR_LOCK_NOTSUPP"; case nfsstat4::NFS4ERR_OP_ILLEGAL: return out << "ERROR_OP_ILLEGAL"; case nfsstat4::NFS4ERR_DEADLOCK: return out << "ERROR_DEADLOCK"; case nfsstat4::NFS4ERR_FILE_OPEN: return out << "ERROR_FILE_OPEN"; case nfsstat4::NFS4ERR_ADMIN_REVOKED: return out << "ERROR_ADMIN_REVOKED"; case nfsstat4::NFS4ERR_CB_PATH_DOWN: return out << "ERROR_CB_PATH_DOWN"; } return out; } std::ostream& operator<<(std::ostream& out, const bitmap4& obj) { if(obj.bitmap4_len) { out << "mask: "; print_hex(out, obj.bitmap4_val, obj.bitmap4_len); const size_t nbits {obj.bitmap4_len << 5}; // obj.bitmap4_len * 32 static const char* const FATTR4Attributes[] = { "SUPPORTED_ATTRS", "TYPE", "FH_EXPIRE_TYPE", "CHANGE", "SIZE", "LINK_SUPPORT", "SYMLINK_SUPPORT", "NAMED_ATTR", "FSID", "UNIQUE_HANDLES", "LEASE_TIME", "RDATTR_ERROR", "ACL", "ACLSUPPORT", "ARCHIVE", "CANSETTIME", "CASE_INSENSITIVE","CASE_PRESERVING","CHOWN_RESTRICTED","FILEHANDLE", "FILEID", "FILES_AVAIL", "FILES_FREE", "FILES_TOTAL", "FS_LOCATIONS", "HIDDEN", "HOMOGENEOUS", "MAXFILESIZE", "MAXLINK", "MAXNAME", "MAXREAD", "MAXWRITE", "MIMETYPE", "MODE", "NO_TRUNC", "NUMLINKS", "OWNER", "OWNER_GROUP", "QUOTA_AVAIL_HARD","QUOTA_AVAIL_SOFT", "QUOTA_USED", "RAWDEV", "SPACE_AVAIL", "SPACE_FREE", "SPACE_TOTAL", "SPACE_USED", "SYSTEM", "TIME_ACCESS", "TIME_ACCESS_SET", "TIME_BACKUP", "TIME_CREATE", "TIME_DELTA", "TIME_METADATA", "TIME_MODIFY", "TIME_MODIFY_SET", "MOUNTED_ON_FILEID", }; for(size_t i {0}; i> (i % 32)) & 0x1; const int bit = (obj.bitmap4_val[i >> 5] >> (i & 31)) & 0x1; if( bit !=0 && i < ( sizeof(FATTR4Attributes)/ sizeof(FATTR4Attributes[0]) ) ) out << ' ' << FATTR4Attributes[i]; } } return out; } std::ostream& operator<<(std::ostream& out, const utf8string& obj) { if(obj.utf8string_len) { out.write(obj.utf8string_val, obj.utf8string_len); } else { out << "void"; } return out; } std::ostream& operator<<(std::ostream& out, const pathname4& obj) { component4 *current_el = obj.pathname4_val; for(size_t i {0}; iutf8string_val, current_el->utf8string_len); out << ' '; } return out; } std::ostream& operator<<(std::ostream& out, const sec_oid4& obj) { print_hex(out, obj.sec_oid4_val, obj.sec_oid4_len); return out; } std::ostream& operator<<(std::ostream& out, const nfstime4& obj) { return out << "sec: " << obj.seconds << " nsec: " << obj.nseconds; } std::ostream& operator<<(std::ostream& out, const time_how4& obj) { switch(obj) { case time_how4::SET_TO_SERVER_TIME4: return out << "server time"; case time_how4::SET_TO_CLIENT_TIME4: return out << "client time"; } return out; } std::ostream& operator<<(std::ostream& out, const settime4& obj) { return out << obj.set_it << ": " << obj.settime4_u.time; } std::ostream& operator<<(std::ostream& out, const nfs_fh4& obj) { NFS::print_nfs_fh(out, obj.nfs_fh4_val, obj.nfs_fh4_len); return out; } std::ostream& operator<<(std::ostream& out, const fsid4& obj) { return out << "major: " << obj.major << " minor: " << obj.minor; } std::ostream& operator<<(std::ostream& out, const fs_location4& obj) { out << "root path: " << obj.rootpath; utf8str_cis *current_el {obj.server.server_val}; for(size_t i {0}; iutf8string_val, current_el->utf8string_len); out << ' '; } return out; } std::ostream& operator<<(std::ostream& out, const fs_locations4& obj) { out << "root: " << obj.fs_root; if(obj.locations.locations_len) { fs_location4* current_el {obj.locations.locations_val}; for(u_int i {0}; ibitmap4_val, (u_int*) &objp->bitmap4_len, ~0, sizeof (uint32_t), (xdrproc_t) xdr_uint32_t)) { return FALSE; } return TRUE; } bool_t xdr_offset4 (XDR* xdrs, offset4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_count4 (XDR* xdrs, count4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_length4 (XDR* xdrs, length4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_clientid4 (XDR* xdrs, clientid4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_seqid4 (XDR* xdrs, seqid4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8string (XDR* xdrs, utf8string* objp) { if (!xdr_bytes (xdrs, (char**)&objp->utf8string_val, (u_int*) &objp->utf8string_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_cis (XDR* xdrs, utf8str_cis* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_cs (XDR* xdrs, utf8str_cs* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_utf8str_mixed (XDR* xdrs, utf8str_mixed* objp) { if (!xdr_utf8string (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_component4 (XDR* xdrs, component4* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_pathname4 (XDR* xdrs, pathname4* objp) { if (!xdr_array (xdrs, (char**)&objp->pathname4_val, (u_int*) &objp->pathname4_len, ~0, sizeof (component4), (xdrproc_t) xdr_component4)) { return FALSE; } return TRUE; } bool_t xdr_nfs_lockid4 (XDR* xdrs, nfs_lockid4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_cookie4 (XDR* xdrs, nfs_cookie4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_linktext4 (XDR* xdrs, linktext4* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_sec_oid4 (XDR* xdrs, sec_oid4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->sec_oid4_val, (u_int*) &objp->sec_oid4_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_qop4 (XDR* xdrs, qop4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_mode4 (XDR* xdrs, mode4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_changeid4 (XDR* xdrs, changeid4* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_verifier4 (XDR* xdrs, verifier4 objp) { if (!xdr_opaque (xdrs, objp, NFS4_VERIFIER_SIZE)) { return FALSE; } return TRUE; } bool_t xdr_nfstime4 (XDR* xdrs, nfstime4* objp) { if (!xdr_int64_t (xdrs, &objp->seconds)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->nseconds)) { return FALSE; } return TRUE; } bool_t xdr_time_how4 (XDR* xdrs, time_how4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_settime4 (XDR* xdrs, settime4* objp) { if (!xdr_time_how4 (xdrs, &objp->set_it)) { return FALSE; } switch (objp->set_it) { case SET_TO_CLIENT_TIME4: if (!xdr_nfstime4 (xdrs, &objp->settime4_u.time)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_nfs_fh4 (XDR* xdrs, nfs_fh4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->nfs_fh4_val, (u_int*) &objp->nfs_fh4_len, NFS4_FHSIZE)) { return FALSE; } return TRUE; } bool_t xdr_fsid4 (XDR* xdrs, fsid4* objp) { if (!xdr_uint64_t (xdrs, &objp->major)) { return FALSE; } if (!xdr_uint64_t (xdrs, &objp->minor)) { return FALSE; } return TRUE; } bool_t xdr_fs_location4 (XDR* xdrs, fs_location4* objp) { if (!xdr_array (xdrs, (char**)&objp->server.server_val, (u_int*) &objp->server.server_len, ~0, sizeof (utf8str_cis), (xdrproc_t) xdr_utf8str_cis)) { return FALSE; } if (!xdr_pathname4 (xdrs, &objp->rootpath)) { return FALSE; } return TRUE; } bool_t xdr_fs_locations4 (XDR* xdrs, fs_locations4* objp) { if (!xdr_pathname4 (xdrs, &objp->fs_root)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->locations.locations_val, (u_int*) &objp->locations.locations_len, ~0, sizeof (fs_location4), (xdrproc_t) xdr_fs_location4)) { return FALSE; } return TRUE; } bool_t xdr_acetype4 (XDR* xdrs, acetype4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_aceflag4 (XDR* xdrs, aceflag4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_acemask4 (XDR* xdrs, acemask4* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_nfsace4 (XDR* xdrs, nfsace4* objp) { if (!xdr_acetype4 (xdrs, &objp->type)) { return FALSE; } if (!xdr_aceflag4 (xdrs, &objp->flag)) { return FALSE; } if (!xdr_acemask4 (xdrs, &objp->access_mask)) { return FALSE; } if (!xdr_utf8str_mixed (xdrs, &objp->who)) { return FALSE; } return TRUE; } bool_t xdr_specdata4 (XDR* xdrs, specdata4* objp) { if (!xdr_uint32_t (xdrs, &objp->specdata1)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->specdata2)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_supported_attrs (XDR* xdrs, fattr4_supported_attrs* objp) { if (!xdr_bitmap4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_type (XDR* xdrs, fattr4_type* objp) { if (!xdr_nfs_ftype4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fh_expire_type (XDR* xdrs, fattr4_fh_expire_type* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_change (XDR* xdrs, fattr4_change* objp) { if (!xdr_changeid4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_size (XDR* xdrs, fattr4_size* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_link_support (XDR* xdrs, fattr4_link_support* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_symlink_support (XDR* xdrs, fattr4_symlink_support* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_named_attr (XDR* xdrs, fattr4_named_attr* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fsid (XDR* xdrs, fattr4_fsid* objp) { if (!xdr_fsid4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_unique_handles (XDR* xdrs, fattr4_unique_handles* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_lease_time (XDR* xdrs, fattr4_lease_time* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_rdattr_error (XDR* xdrs, fattr4_rdattr_error* objp) { if (!xdr_nfsstat4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_acl (XDR* xdrs, fattr4_acl* objp) { if (!xdr_array (xdrs, (char**)&objp->fattr4_acl_val, (u_int*) &objp->fattr4_acl_len, ~0, sizeof (nfsace4), (xdrproc_t) xdr_nfsace4)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_aclsupport (XDR* xdrs, fattr4_aclsupport* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_archive (XDR* xdrs, fattr4_archive* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_cansettime (XDR* xdrs, fattr4_cansettime* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_case_insensitive (XDR* xdrs, fattr4_case_insensitive* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_case_preserving (XDR* xdrs, fattr4_case_preserving* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_chown_restricted (XDR* xdrs, fattr4_chown_restricted* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fileid (XDR* xdrs, fattr4_fileid* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_avail (XDR* xdrs, fattr4_files_avail* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_filehandle (XDR* xdrs, fattr4_filehandle* objp) { if (!xdr_nfs_fh4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_free (XDR* xdrs, fattr4_files_free* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_files_total (XDR* xdrs, fattr4_files_total* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_fs_locations (XDR* xdrs, fattr4_fs_locations* objp) { if (!xdr_fs_locations4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_hidden (XDR* xdrs, fattr4_hidden* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_homogeneous (XDR* xdrs, fattr4_homogeneous* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxfilesize (XDR* xdrs, fattr4_maxfilesize* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxlink (XDR* xdrs, fattr4_maxlink* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxname (XDR* xdrs, fattr4_maxname* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxread (XDR* xdrs, fattr4_maxread* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_maxwrite (XDR* xdrs, fattr4_maxwrite* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mimetype (XDR* xdrs, fattr4_mimetype* objp) { if (!xdr_utf8str_cs (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mode (XDR* xdrs, fattr4_mode* objp) { if (!xdr_mode4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_mounted_on_fileid (XDR* xdrs, fattr4_mounted_on_fileid* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_no_trunc (XDR* xdrs, fattr4_no_trunc* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_numlinks (XDR* xdrs, fattr4_numlinks* objp) { if (!xdr_uint32_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_owner (XDR* xdrs, fattr4_owner* objp) { if (!xdr_utf8str_mixed (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_owner_group (XDR* xdrs, fattr4_owner_group* objp) { if (!xdr_utf8str_mixed (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_avail_hard (XDR* xdrs, fattr4_quota_avail_hard* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_avail_soft (XDR* xdrs, fattr4_quota_avail_soft* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_quota_used (XDR* xdrs, fattr4_quota_used* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_rawdev (XDR* xdrs, fattr4_rawdev* objp) { if (!xdr_specdata4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_avail (XDR* xdrs, fattr4_space_avail* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_free (XDR* xdrs, fattr4_space_free* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_total (XDR* xdrs, fattr4_space_total* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_space_used (XDR* xdrs, fattr4_space_used* objp) { if (!xdr_uint64_t (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_system (XDR* xdrs, fattr4_system* objp) { if (!xdr_bool (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_access (XDR* xdrs, fattr4_time_access* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_access_set (XDR* xdrs, fattr4_time_access_set* objp) { if (!xdr_settime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_backup (XDR* xdrs, fattr4_time_backup* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_create (XDR* xdrs, fattr4_time_create* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_delta (XDR* xdrs, fattr4_time_delta* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_metadata (XDR* xdrs, fattr4_time_metadata* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_modify (XDR* xdrs, fattr4_time_modify* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_fattr4_time_modify_set (XDR* xdrs, fattr4_time_modify_set* objp) { if (!xdr_settime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_attrlist4 (XDR* xdrs, attrlist4* objp) { if (!xdr_bytes (xdrs, (char**)&objp->attrlist4_val, (u_int*) &objp->attrlist4_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_fattr4 (XDR* xdrs, fattr4* objp) { if (!xdr_bitmap4 (xdrs, &objp->attrmask)) { return FALSE; } if (!xdr_attrlist4 (xdrs, &objp->attr_vals)) { return FALSE; } return TRUE; } bool_t xdr_change_info4 (XDR* xdrs, change_info4* objp) { if (!xdr_bool (xdrs, &objp->atomic)) { return FALSE; } if (!xdr_changeid4 (xdrs, &objp->before)) { return FALSE; } if (!xdr_changeid4 (xdrs, &objp->after)) { return FALSE; } return TRUE; } bool_t xdr_clientaddr4 (XDR* xdrs, clientaddr4* objp) { if (!xdr_string (xdrs, &objp->r_netid, ~0)) { return FALSE; } if (!xdr_string (xdrs, &objp->r_addr, ~0)) { return FALSE; } return TRUE; } bool_t xdr_cb_client4 (XDR* xdrs, cb_client4* objp) { if (!xdr_uint32_t (xdrs, &objp->cb_program)) { return FALSE; } if (!xdr_clientaddr4 (xdrs, &objp->cb_location)) { return FALSE; } return TRUE; } bool_t xdr_stateid4 (XDR* xdrs, stateid4* objp) { if (!xdr_uint32_t (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_opaque (xdrs, objp->other, 12)) { return FALSE; } return TRUE; } bool_t xdr_nfs_client_id4 (XDR* xdrs, nfs_client_id4* objp) { if (!xdr_verifier4 (xdrs, objp->verifier)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->id.id_val, (u_int*) &objp->id.id_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_open_owner4 (XDR* xdrs, open_owner4* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->owner.owner_val, (u_int*) &objp->owner.owner_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_lock_owner4 (XDR* xdrs, lock_owner4* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->owner.owner_val, (u_int*) &objp->owner.owner_len, NFS4_OPAQUE_LIMIT)) { return FALSE; } return TRUE; } bool_t xdr_nfs_lock_type4 (XDR* xdrs, nfs_lock_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } //for compatibility bool_t xdr_NULL4args(XDR*, NULL4args*) { return TRUE; } bool_t xdr_NULL4res(XDR*, NULL4res*) { return TRUE; } bool_t xdr_ACCESS4args (XDR* xdrs, ACCESS4args* objp) { if (!xdr_uint32_t (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS4resok (XDR* xdrs, ACCESS4resok* objp) { if (!xdr_uint32_t (xdrs, &objp->supported)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->access)) { return FALSE; } return TRUE; } bool_t xdr_ACCESS4res (XDR* xdrs, ACCESS4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_ACCESS4resok (xdrs, &objp->ACCESS4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_CLOSE4args (XDR* xdrs, CLOSE4args* objp) { if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_CLOSE4res (XDR* xdrs, CLOSE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_stateid4 (xdrs, &objp->CLOSE4res_u.open_stateid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_COMMIT4args (XDR* xdrs, COMMIT4args* objp) { if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT4resok (XDR* xdrs, COMMIT4resok* objp) { if (!xdr_verifier4 (xdrs, objp->writeverf)) { return FALSE; } return TRUE; } bool_t xdr_COMMIT4res (XDR* xdrs, COMMIT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_COMMIT4resok (xdrs, &objp->COMMIT4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_createtype4 (XDR* xdrs, createtype4* objp) { if (!xdr_nfs_ftype4 (xdrs, &objp->type)) { return FALSE; } switch (objp->type) { case NF4LNK: if (!xdr_linktext4 (xdrs, &objp->createtype4_u.linkdata)) { return FALSE; } break; case NF4BLK: case NF4CHR: if (!xdr_specdata4 (xdrs, &objp->createtype4_u.devdata)) { return FALSE; } break; case NF4SOCK: case NF4FIFO: case NF4DIR: break; default: break; } return TRUE; } bool_t xdr_CREATE4args (XDR* xdrs, CREATE4args* objp) { if (!xdr_createtype4 (xdrs, &objp->objtype)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->objname)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->createattrs)) { return FALSE; } return TRUE; } bool_t xdr_CREATE4resok (XDR* xdrs, CREATE4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrset)) { return FALSE; } return TRUE; } bool_t xdr_CREATE4res (XDR* xdrs, CREATE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_CREATE4resok (xdrs, &objp->CREATE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_DELEGPURGE4args (XDR* xdrs, DELEGPURGE4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } return TRUE; } bool_t xdr_DELEGPURGE4res (XDR* xdrs, DELEGPURGE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_DELEGRETURN4args (XDR* xdrs, DELEGRETURN4args* objp) { if (!xdr_stateid4 (xdrs, &objp->deleg_stateid)) { return FALSE; } return TRUE; } bool_t xdr_DELEGRETURN4res (XDR* xdrs, DELEGRETURN4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4args (XDR* xdrs, GETATTR4args* objp) { if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4resok (XDR* xdrs, GETATTR4resok* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_GETATTR4res (XDR* xdrs, GETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_GETATTR4resok (xdrs, &objp->GETATTR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_notification_types4 (XDR* xdrs, notification_types4* objp) { if (!xdr_bitmap4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_notification_delay4 (XDR* xdrs, notification_delay4* objp) { if (!xdr_nfstime4 (xdrs, objp)) { return FALSE; } return TRUE; } bool_t xdr_dir_delegation_status4 (XDR* xdrs, dir_delegation_status4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4args (XDR* xdrs, GET_DIR_DELEGATION4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_notification_types4 (xdrs, &objp->notif_types)) { return FALSE; } if (!xdr_notification_delay4 (xdrs, &objp->dir_notif_delay)) { return FALSE; } if (!xdr_notification_delay4 (xdrs, &objp->dir_entry_notif_delay)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4resok (XDR* xdrs, GET_DIR_DELEGATION4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_dir_delegation_status4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_notification_types4 (xdrs, &objp->notif_types)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->dir_notif_attrs)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->dir_entry_notif_attrs)) { return FALSE; } return TRUE; } bool_t xdr_GET_DIR_DELEGATION4res (XDR* xdrs, GET_DIR_DELEGATION4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_GET_DIR_DELEGATION4resok (xdrs, &objp->GET_DIR_DELEGATION4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_GETFH4resok (XDR* xdrs, GETFH4resok* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_GETFH4res (XDR* xdrs, GETFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_GETFH4resok (xdrs, &objp->GETFH4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LINK4args (XDR* xdrs, LINK4args* objp) { if (!xdr_component4 (xdrs, &objp->newname)) { return FALSE; } return TRUE; } bool_t xdr_LINK4resok (XDR* xdrs, LINK4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } return TRUE; } bool_t xdr_LINK4res (XDR* xdrs, LINK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_LINK4resok (xdrs, &objp->LINK4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_open_to_lock_owner4 (XDR* xdrs, open_to_lock_owner4* objp) { if (!xdr_seqid4 (xdrs, &objp->open_seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->lock_seqid)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->lock_owner)) { return FALSE; } return TRUE; } bool_t xdr_exist_lock_owner4 (XDR* xdrs, exist_lock_owner4* objp) { if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->lock_seqid)) { return FALSE; } return TRUE; } bool_t xdr_locker4 (XDR* xdrs, locker4* objp) { if (!xdr_bool (xdrs, &objp->new_lock_owner)) { return FALSE; } switch (objp->new_lock_owner) { case TRUE: if (!xdr_open_to_lock_owner4 (xdrs, &objp->locker4_u.open_owner)) { return FALSE; } break; case FALSE: if (!xdr_exist_lock_owner4 (xdrs, &objp->locker4_u.lock_owner)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_LOCK4args (XDR* xdrs, LOCK4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_bool (xdrs, &objp->reclaim)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_locker4 (xdrs, &objp->locker)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4denied (XDR* xdrs, LOCK4denied* objp) { if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->owner)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4resok (XDR* xdrs, LOCK4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } return TRUE; } bool_t xdr_LOCK4res (XDR* xdrs, LOCK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_LOCK4resok (xdrs, &objp->LOCK4res_u.resok4)) { return FALSE; } break; case NFS4ERR_DENIED: if (!xdr_LOCK4denied (xdrs, &objp->LOCK4res_u.denied)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LOCKT4args (XDR* xdrs, LOCKT4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } if (!xdr_lock_owner4 (xdrs, &objp->owner)) { return FALSE; } return TRUE; } bool_t xdr_LOCKT4res (XDR* xdrs, LOCKT4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4ERR_DENIED: if (!xdr_LOCK4denied (xdrs, &objp->LOCKT4res_u.denied)) { return FALSE; } break; case NFS4_OK: break; default: break; } return TRUE; } bool_t xdr_LOCKU4args (XDR* xdrs, LOCKU4args* objp) { if (!xdr_nfs_lock_type4 (xdrs, &objp->locktype)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_stateid4 (xdrs, &objp->lock_stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_length4 (xdrs, &objp->length)) { return FALSE; } return TRUE; } bool_t xdr_LOCKU4res (XDR* xdrs, LOCKU4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_stateid4 (xdrs, &objp->LOCKU4res_u.lock_stateid)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_LOOKUP4args (XDR* xdrs, LOOKUP4args* objp) { if (!xdr_component4 (xdrs, &objp->objname)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUP4res (XDR* xdrs, LOOKUP4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_LOOKUPP4res (XDR* xdrs, LOOKUPP4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_NVERIFY4args (XDR* xdrs, NVERIFY4args* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_NVERIFY4res (XDR* xdrs, NVERIFY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_createmode4 (XDR* xdrs, createmode4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_createhow4 (XDR* xdrs, createhow4* objp) { if (!xdr_createmode4 (xdrs, &objp->mode)) { return FALSE; } switch (objp->mode) { case UNCHECKED4: case GUARDED4: if (!xdr_fattr4 (xdrs, &objp->createhow4_u.createattrs)) { return FALSE; } break; case EXCLUSIVE4: if (!xdr_verifier4 (xdrs, objp->createhow4_u.createverf)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_opentype4 (XDR* xdrs, opentype4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_openflag4 (XDR* xdrs, openflag4* objp) { if (!xdr_opentype4 (xdrs, &objp->opentype)) { return FALSE; } switch (objp->opentype) { case OPEN4_CREATE: if (!xdr_createhow4 (xdrs, &objp->openflag4_u.how)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_limit_by4 (XDR* xdrs, limit_by4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_modified_limit4 (XDR* xdrs, nfs_modified_limit4* objp) { if (!xdr_uint32_t (xdrs, &objp->num_blocks)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->bytes_per_block)) { return FALSE; } return TRUE; } bool_t xdr_nfs_space_limit4 (XDR* xdrs, nfs_space_limit4* objp) { if (!xdr_limit_by4 (xdrs, &objp->limitby)) { return FALSE; } switch (objp->limitby) { case NFS_LIMIT_SIZE: if (!xdr_uint64_t (xdrs, &objp->nfs_space_limit4_u.filesize)) { return FALSE; } break; case NFS_LIMIT_BLOCKS: if (!xdr_nfs_modified_limit4 (xdrs, &objp->nfs_space_limit4_u.mod_blocks)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_open_delegation_type4 (XDR* xdrs, open_delegation_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_open_claim_type4 (XDR* xdrs, open_claim_type4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_open_claim_delegate_cur4 (XDR* xdrs, open_claim_delegate_cur4* objp) { if (!xdr_stateid4 (xdrs, &objp->delegate_stateid)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->file)) { return FALSE; } return TRUE; } bool_t xdr_open_claim4 (XDR* xdrs, open_claim4* objp) { if (!xdr_open_claim_type4 (xdrs, &objp->claim)) { return FALSE; } switch (objp->claim) { case CLAIM_NULL: if (!xdr_component4 (xdrs, &objp->open_claim4_u.file)) { return FALSE; } break; case CLAIM_PREVIOUS: if (!xdr_open_delegation_type4 (xdrs, &objp->open_claim4_u.delegate_type)) { return FALSE; } break; case CLAIM_DELEGATE_CUR: if (!xdr_open_claim_delegate_cur4 (xdrs, &objp->open_claim4_u.delegate_cur_info)) { return FALSE; } break; case CLAIM_DELEGATE_PREV: if (!xdr_component4 (xdrs, &objp->open_claim4_u.file_delegate_prev)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_OPEN4args (XDR* xdrs, OPEN4args* objp) { if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_access)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_deny)) { return FALSE; } if (!xdr_open_owner4 (xdrs, &objp->owner)) { return FALSE; } if (!xdr_openflag4 (xdrs, &objp->openhow)) { return FALSE; } if (!xdr_open_claim4 (xdrs, &objp->claim)) { return FALSE; } return TRUE; } bool_t xdr_open_read_delegation4 (XDR* xdrs, open_read_delegation4* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->recall)) { return FALSE; } if (!xdr_nfsace4 (xdrs, &objp->permissions)) { return FALSE; } return TRUE; } bool_t xdr_open_write_delegation4 (XDR* xdrs, open_write_delegation4* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->recall)) { return FALSE; } if (!xdr_nfs_space_limit4 (xdrs, &objp->space_limit)) { return FALSE; } if (!xdr_nfsace4 (xdrs, &objp->permissions)) { return FALSE; } return TRUE; } bool_t xdr_open_delegation4 (XDR* xdrs, open_delegation4* objp) { if (!xdr_open_delegation_type4 (xdrs, &objp->delegation_type)) { return FALSE; } switch (objp->delegation_type) { case OPEN_DELEGATE_NONE: break; case OPEN_DELEGATE_READ: if (!xdr_open_read_delegation4 (xdrs, &objp->open_delegation4_u.read)) { return FALSE; } break; case OPEN_DELEGATE_WRITE: if (!xdr_open_write_delegation4 (xdrs, &objp->open_delegation4_u.write)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_OPEN4resok (XDR* xdrs, OPEN4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->rflags)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrset)) { return FALSE; } if (!xdr_open_delegation4 (xdrs, &objp->delegation)) { return FALSE; } return TRUE; } bool_t xdr_OPEN4res (XDR* xdrs, OPEN4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN4resok (xdrs, &objp->OPEN4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_OPENATTR4args (XDR* xdrs, OPENATTR4args* objp) { if (!xdr_bool (xdrs, &objp->createdir)) { return FALSE; } return TRUE; } bool_t xdr_OPENATTR4res (XDR* xdrs, OPENATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4args (XDR* xdrs, OPEN_CONFIRM4args* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4resok (XDR* xdrs, OPEN_CONFIRM4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_CONFIRM4res (XDR* xdrs, OPEN_CONFIRM4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN_CONFIRM4resok (xdrs, &objp->OPEN_CONFIRM4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4args (XDR* xdrs, OPEN_DOWNGRADE4args* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } if (!xdr_seqid4 (xdrs, &objp->seqid)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_access)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->share_deny)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4resok (XDR* xdrs, OPEN_DOWNGRADE4resok* objp) { if (!xdr_stateid4 (xdrs, &objp->open_stateid)) { return FALSE; } return TRUE; } bool_t xdr_OPEN_DOWNGRADE4res (XDR* xdrs, OPEN_DOWNGRADE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_OPEN_DOWNGRADE4resok (xdrs, &objp->OPEN_DOWNGRADE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_PUTFH4args (XDR* xdrs, PUTFH4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->object)) { return FALSE; } return TRUE; } bool_t xdr_PUTFH4res (XDR* xdrs, PUTFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_PUTPUBFH4res (XDR* xdrs, PUTPUBFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_PUTROOTFH4res (XDR* xdrs, PUTROOTFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_READ4args (XDR* xdrs, READ4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } return TRUE; } bool_t xdr_READ4resok (XDR* xdrs, READ4resok* objp) { if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->data.data_val, (u_int*) &objp->data.data_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_READ4res (XDR* xdrs, READ4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READ4resok (xdrs, &objp->READ4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_READDIR4args (XDR* xdrs, READDIR4args* objp) { if (!xdr_nfs_cookie4 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->dircount)) { return FALSE; } if (!xdr_count4 (xdrs, &objp->maxcount)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_entry4 (XDR* xdrs, entry4* objp) { if (!xdr_nfs_cookie4 (xdrs, &objp->cookie)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->name)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->attrs)) { return FALSE; } if (!xdr_pointer (xdrs, (char**)&objp->nextentry, sizeof (entry4), (xdrproc_t) xdr_entry4)) { return FALSE; } return TRUE; } bool_t xdr_dirlist4 (XDR* xdrs, dirlist4* objp) { if (!xdr_pointer (xdrs, (char**)&objp->entries, sizeof (entry4), (xdrproc_t) xdr_entry4)) { return FALSE; } if (!xdr_bool (xdrs, &objp->eof)) { return FALSE; } return TRUE; } bool_t xdr_READDIR4resok (XDR* xdrs, READDIR4resok* objp) { if (!xdr_verifier4 (xdrs, objp->cookieverf)) { return FALSE; } if (!xdr_dirlist4 (xdrs, &objp->reply)) { return FALSE; } return TRUE; } bool_t xdr_READDIR4res (XDR* xdrs, READDIR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READDIR4resok (xdrs, &objp->READDIR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_READLINK4resok (XDR* xdrs, READLINK4resok* objp) { if (!xdr_linktext4 (xdrs, &objp->link)) { return FALSE; } return TRUE; } bool_t xdr_READLINK4res (XDR* xdrs, READLINK4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_READLINK4resok (xdrs, &objp->READLINK4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_REMOVE4args (XDR* xdrs, REMOVE4args* objp) { if (!xdr_component4 (xdrs, &objp->target)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE4resok (XDR* xdrs, REMOVE4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->cinfo)) { return FALSE; } return TRUE; } bool_t xdr_REMOVE4res (XDR* xdrs, REMOVE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_REMOVE4resok (xdrs, &objp->REMOVE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RENAME4args (XDR* xdrs, RENAME4args* objp) { if (!xdr_component4 (xdrs, &objp->oldname)) { return FALSE; } if (!xdr_component4 (xdrs, &objp->newname)) { return FALSE; } return TRUE; } bool_t xdr_RENAME4resok (XDR* xdrs, RENAME4resok* objp) { if (!xdr_change_info4 (xdrs, &objp->source_cinfo)) { return FALSE; } if (!xdr_change_info4 (xdrs, &objp->target_cinfo)) { return FALSE; } return TRUE; } bool_t xdr_RENAME4res (XDR* xdrs, RENAME4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_RENAME4resok (xdrs, &objp->RENAME4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RENEW4args (XDR* xdrs, RENEW4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } return TRUE; } bool_t xdr_RENEW4res (XDR* xdrs, RENEW4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_RESTOREFH4res (XDR* xdrs, RESTOREFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_SAVEFH4res (XDR* xdrs, SAVEFH4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO4args (XDR* xdrs, SECINFO4args* objp) { if (!xdr_component4 (xdrs, &objp->name)) { return FALSE; } return TRUE; } bool_t xdr_rpc_gss_svc_t (XDR* xdrs, rpc_gss_svc_t* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_rpcsec_gss_info (XDR* xdrs, rpcsec_gss_info* objp) { if (!xdr_sec_oid4 (xdrs, &objp->oid)) { return FALSE; } if (!xdr_qop4 (xdrs, &objp->qop)) { return FALSE; } if (!xdr_rpc_gss_svc_t (xdrs, &objp->service)) { return FALSE; } return TRUE; } bool_t xdr_secinfo4 (XDR* xdrs, secinfo4* objp) { if (!xdr_uint32_t (xdrs, &objp->flavor)) { return FALSE; } switch (objp->flavor) { case RPCSEC_GSS: if (!xdr_rpcsec_gss_info (xdrs, &objp->secinfo4_u.flavor_info)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SECINFO4resok (XDR* xdrs, SECINFO4resok* objp) { if (!xdr_array (xdrs, (char**)&objp->SECINFO4resok_val, (u_int*) &objp->SECINFO4resok_len, ~0, sizeof (secinfo4), (xdrproc_t) xdr_secinfo4)) { return FALSE; } return TRUE; } bool_t xdr_SECINFO4res (XDR* xdrs, SECINFO4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_SECINFO4resok (xdrs, &objp->SECINFO4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SETATTR4args (XDR* xdrs, SETATTR4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_SETATTR4res (XDR* xdrs, SETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attrsset)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4args (XDR* xdrs, SETCLIENTID4args* objp) { if (!xdr_nfs_client_id4 (xdrs, &objp->client)) { return FALSE; } if (!xdr_cb_client4 (xdrs, &objp->callback)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->callback_ident)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4resok (XDR* xdrs, SETCLIENTID4resok* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->setclientid_confirm)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID4res (XDR* xdrs, SETCLIENTID4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_SETCLIENTID4resok (xdrs, &objp->SETCLIENTID4res_u.resok4)) { return FALSE; } break; case NFS4ERR_CLID_INUSE: if (!xdr_clientaddr4 (xdrs, &objp->SETCLIENTID4res_u.client_using)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_SETCLIENTID_CONFIRM4args (XDR* xdrs, SETCLIENTID_CONFIRM4args* objp) { if (!xdr_clientid4 (xdrs, &objp->clientid)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->setclientid_confirm)) { return FALSE; } return TRUE; } bool_t xdr_SETCLIENTID_CONFIRM4res (XDR* xdrs, SETCLIENTID_CONFIRM4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_VERIFY4args (XDR* xdrs, VERIFY4args* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_VERIFY4res (XDR* xdrs, VERIFY4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_stable_how4 (XDR* xdrs, stable_how4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4args (XDR* xdrs, WRITE4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_offset4 (xdrs, &objp->offset)) { return FALSE; } if (!xdr_stable_how4 (xdrs, &objp->stable)) { return FALSE; } if (!xdr_bytes (xdrs, (char**)&objp->data.data_val, (u_int*) &objp->data.data_len, ~0)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4resok (XDR* xdrs, WRITE4resok* objp) { if (!xdr_count4 (xdrs, &objp->count)) { return FALSE; } if (!xdr_stable_how4 (xdrs, &objp->committed)) { return FALSE; } if (!xdr_verifier4 (xdrs, objp->writeverf)) { return FALSE; } return TRUE; } bool_t xdr_WRITE4res (XDR* xdrs, WRITE4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_WRITE4resok (xdrs, &objp->WRITE4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_RELEASE_LOCKOWNER4args (XDR* xdrs, RELEASE_LOCKOWNER4args* objp) { if (!xdr_lock_owner4 (xdrs, &objp->lock_owner)) { return FALSE; } return TRUE; } bool_t xdr_RELEASE_LOCKOWNER4res (XDR* xdrs, RELEASE_LOCKOWNER4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_ILLEGAL4res (XDR* xdrs, ILLEGAL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_nfs_opnum4 (XDR* xdrs, nfs_opnum4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_argop4 (XDR* xdrs, nfs_argop4* objp) { if (!xdr_nfs_opnum4 (xdrs, &objp->argop)) { return FALSE; } switch (objp->argop) { case OP_ACCESS: if (!xdr_ACCESS4args (xdrs, &objp->nfs_argop4_u.opaccess)) { return FALSE; } break; case OP_CLOSE: if (!xdr_CLOSE4args (xdrs, &objp->nfs_argop4_u.opclose)) { return FALSE; } break; case OP_COMMIT: if (!xdr_COMMIT4args (xdrs, &objp->nfs_argop4_u.opcommit)) { return FALSE; } break; case OP_CREATE: if (!xdr_CREATE4args (xdrs, &objp->nfs_argop4_u.opcreate)) { return FALSE; } break; case OP_DELEGPURGE: if (!xdr_DELEGPURGE4args (xdrs, &objp->nfs_argop4_u.opdelegpurge)) { return FALSE; } break; case OP_DELEGRETURN: if (!xdr_DELEGRETURN4args (xdrs, &objp->nfs_argop4_u.opdelegreturn)) { return FALSE; } break; case OP_GETATTR: if (!xdr_GETATTR4args (xdrs, &objp->nfs_argop4_u.opgetattr)) { return FALSE; } break; case OP_GETFH: break; case OP_LINK: if (!xdr_LINK4args (xdrs, &objp->nfs_argop4_u.oplink)) { return FALSE; } break; case OP_LOCK: if (!xdr_LOCK4args (xdrs, &objp->nfs_argop4_u.oplock)) { return FALSE; } break; case OP_LOCKT: if (!xdr_LOCKT4args (xdrs, &objp->nfs_argop4_u.oplockt)) { return FALSE; } break; case OP_LOCKU: if (!xdr_LOCKU4args (xdrs, &objp->nfs_argop4_u.oplocku)) { return FALSE; } break; case OP_LOOKUP: if (!xdr_LOOKUP4args (xdrs, &objp->nfs_argop4_u.oplookup)) { return FALSE; } break; case OP_LOOKUPP: break; case OP_NVERIFY: if (!xdr_NVERIFY4args (xdrs, &objp->nfs_argop4_u.opnverify)) { return FALSE; } break; case OP_OPEN: if (!xdr_OPEN4args (xdrs, &objp->nfs_argop4_u.opopen)) { return FALSE; } break; case OP_OPENATTR: if (!xdr_OPENATTR4args (xdrs, &objp->nfs_argop4_u.opopenattr)) { return FALSE; } break; case OP_OPEN_CONFIRM: if (!xdr_OPEN_CONFIRM4args (xdrs, &objp->nfs_argop4_u.opopen_confirm)) { return FALSE; } break; case OP_OPEN_DOWNGRADE: if (!xdr_OPEN_DOWNGRADE4args (xdrs, &objp->nfs_argop4_u.opopen_downgrade)) { return FALSE; } break; case OP_PUTFH: if (!xdr_PUTFH4args (xdrs, &objp->nfs_argop4_u.opputfh)) { return FALSE; } break; case OP_PUTPUBFH: break; case OP_PUTROOTFH: break; case OP_READ: if (!xdr_READ4args (xdrs, &objp->nfs_argop4_u.opread)) { return FALSE; } break; case OP_READDIR: if (!xdr_READDIR4args (xdrs, &objp->nfs_argop4_u.opreaddir)) { return FALSE; } break; case OP_READLINK: break; case OP_REMOVE: if (!xdr_REMOVE4args (xdrs, &objp->nfs_argop4_u.opremove)) { return FALSE; } break; case OP_RENAME: if (!xdr_RENAME4args (xdrs, &objp->nfs_argop4_u.oprename)) { return FALSE; } break; case OP_RENEW: if (!xdr_RENEW4args (xdrs, &objp->nfs_argop4_u.oprenew)) { return FALSE; } break; case OP_RESTOREFH: break; case OP_SAVEFH: break; case OP_SECINFO: if (!xdr_SECINFO4args (xdrs, &objp->nfs_argop4_u.opsecinfo)) { return FALSE; } break; case OP_SETATTR: if (!xdr_SETATTR4args (xdrs, &objp->nfs_argop4_u.opsetattr)) { return FALSE; } break; case OP_SETCLIENTID: if (!xdr_SETCLIENTID4args (xdrs, &objp->nfs_argop4_u.opsetclientid)) { return FALSE; } break; case OP_SETCLIENTID_CONFIRM: if (!xdr_SETCLIENTID_CONFIRM4args (xdrs, &objp->nfs_argop4_u.opsetclientid_confirm)) { return FALSE; } break; case OP_VERIFY: if (!xdr_VERIFY4args (xdrs, &objp->nfs_argop4_u.opverify)) { return FALSE; } break; case OP_WRITE: if (!xdr_WRITE4args (xdrs, &objp->nfs_argop4_u.opwrite)) { return FALSE; } break; case OP_RELEASE_LOCKOWNER: if (!xdr_RELEASE_LOCKOWNER4args (xdrs, &objp->nfs_argop4_u.oprelease_lockowner)) { return FALSE; } break; case OP_GET_DIR_DELEGATION: if (!xdr_GET_DIR_DELEGATION4args (xdrs, &objp->nfs_argop4_u.opget_dir_delegation)) { return FALSE; } break; case OP_ILLEGAL: break; default: return FALSE; } return TRUE; } bool_t xdr_nfs_resop4 (XDR* xdrs, nfs_resop4* objp) { if (!xdr_nfs_opnum4 (xdrs, &objp->resop)) { return FALSE; } switch (objp->resop) { case OP_ACCESS: if (!xdr_ACCESS4res (xdrs, &objp->nfs_resop4_u.opaccess)) { return FALSE; } break; case OP_CLOSE: if (!xdr_CLOSE4res (xdrs, &objp->nfs_resop4_u.opclose)) { return FALSE; } break; case OP_COMMIT: if (!xdr_COMMIT4res (xdrs, &objp->nfs_resop4_u.opcommit)) { return FALSE; } break; case OP_CREATE: if (!xdr_CREATE4res (xdrs, &objp->nfs_resop4_u.opcreate)) { return FALSE; } break; case OP_DELEGPURGE: if (!xdr_DELEGPURGE4res (xdrs, &objp->nfs_resop4_u.opdelegpurge)) { return FALSE; } break; case OP_DELEGRETURN: if (!xdr_DELEGRETURN4res (xdrs, &objp->nfs_resop4_u.opdelegreturn)) { return FALSE; } break; case OP_GETATTR: if (!xdr_GETATTR4res (xdrs, &objp->nfs_resop4_u.opgetattr)) { return FALSE; } break; case OP_GETFH: if (!xdr_GETFH4res (xdrs, &objp->nfs_resop4_u.opgetfh)) { return FALSE; } break; case OP_LINK: if (!xdr_LINK4res (xdrs, &objp->nfs_resop4_u.oplink)) { return FALSE; } break; case OP_LOCK: if (!xdr_LOCK4res (xdrs, &objp->nfs_resop4_u.oplock)) { return FALSE; } break; case OP_LOCKT: if (!xdr_LOCKT4res (xdrs, &objp->nfs_resop4_u.oplockt)) { return FALSE; } break; case OP_LOCKU: if (!xdr_LOCKU4res (xdrs, &objp->nfs_resop4_u.oplocku)) { return FALSE; } break; case OP_LOOKUP: if (!xdr_LOOKUP4res (xdrs, &objp->nfs_resop4_u.oplookup)) { return FALSE; } break; case OP_LOOKUPP: if (!xdr_LOOKUPP4res (xdrs, &objp->nfs_resop4_u.oplookupp)) { return FALSE; } break; case OP_NVERIFY: if (!xdr_NVERIFY4res (xdrs, &objp->nfs_resop4_u.opnverify)) { return FALSE; } break; case OP_OPEN: if (!xdr_OPEN4res (xdrs, &objp->nfs_resop4_u.opopen)) { return FALSE; } break; case OP_OPENATTR: if (!xdr_OPENATTR4res (xdrs, &objp->nfs_resop4_u.opopenattr)) { return FALSE; } break; case OP_OPEN_CONFIRM: if (!xdr_OPEN_CONFIRM4res (xdrs, &objp->nfs_resop4_u.opopen_confirm)) { return FALSE; } break; case OP_OPEN_DOWNGRADE: if (!xdr_OPEN_DOWNGRADE4res (xdrs, &objp->nfs_resop4_u.opopen_downgrade)) { return FALSE; } break; case OP_PUTFH: if (!xdr_PUTFH4res (xdrs, &objp->nfs_resop4_u.opputfh)) { return FALSE; } break; case OP_PUTPUBFH: if (!xdr_PUTPUBFH4res (xdrs, &objp->nfs_resop4_u.opputpubfh)) { return FALSE; } break; case OP_PUTROOTFH: if (!xdr_PUTROOTFH4res (xdrs, &objp->nfs_resop4_u.opputrootfh)) { return FALSE; } break; case OP_READ: if (!xdr_READ4res (xdrs, &objp->nfs_resop4_u.opread)) { return FALSE; } break; case OP_READDIR: if (!xdr_READDIR4res (xdrs, &objp->nfs_resop4_u.opreaddir)) { return FALSE; } break; case OP_READLINK: if (!xdr_READLINK4res (xdrs, &objp->nfs_resop4_u.opreadlink)) { return FALSE; } break; case OP_REMOVE: if (!xdr_REMOVE4res (xdrs, &objp->nfs_resop4_u.opremove)) { return FALSE; } break; case OP_RENAME: if (!xdr_RENAME4res (xdrs, &objp->nfs_resop4_u.oprename)) { return FALSE; } break; case OP_RENEW: if (!xdr_RENEW4res (xdrs, &objp->nfs_resop4_u.oprenew)) { return FALSE; } break; case OP_RESTOREFH: if (!xdr_RESTOREFH4res (xdrs, &objp->nfs_resop4_u.oprestorefh)) { return FALSE; } break; case OP_SAVEFH: if (!xdr_SAVEFH4res (xdrs, &objp->nfs_resop4_u.opsavefh)) { return FALSE; } break; case OP_SECINFO: if (!xdr_SECINFO4res (xdrs, &objp->nfs_resop4_u.opsecinfo)) { return FALSE; } break; case OP_SETATTR: if (!xdr_SETATTR4res (xdrs, &objp->nfs_resop4_u.opsetattr)) { return FALSE; } break; case OP_SETCLIENTID: if (!xdr_SETCLIENTID4res (xdrs, &objp->nfs_resop4_u.opsetclientid)) { return FALSE; } break; case OP_SETCLIENTID_CONFIRM: if (!xdr_SETCLIENTID_CONFIRM4res (xdrs, &objp->nfs_resop4_u.opsetclientid_confirm)) { return FALSE; } break; case OP_VERIFY: if (!xdr_VERIFY4res (xdrs, &objp->nfs_resop4_u.opverify)) { return FALSE; } break; case OP_WRITE: if (!xdr_WRITE4res (xdrs, &objp->nfs_resop4_u.opwrite)) { return FALSE; } break; case OP_RELEASE_LOCKOWNER: if (!xdr_RELEASE_LOCKOWNER4res (xdrs, &objp->nfs_resop4_u.oprelease_lockowner)) { return FALSE; } break; case OP_GET_DIR_DELEGATION: if (!xdr_GET_DIR_DELEGATION4res (xdrs, &objp->nfs_resop4_u.opget_dir_delegation)) { return FALSE; } break; case OP_ILLEGAL: if (!xdr_ILLEGAL4res (xdrs, &objp->nfs_resop4_u.opillegal)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_COMPOUND4args (XDR* xdrs, COMPOUND4args* objp) { if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->minorversion)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->argarray.argarray_val, (u_int*) &objp->argarray.argarray_len, ~0, sizeof (nfs_argop4), (xdrproc_t) xdr_nfs_argop4)) { return FALSE; } return TRUE; } bool_t xdr_COMPOUND4res (XDR* xdrs, COMPOUND4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->resarray.resarray_val, (u_int*) &objp->resarray.resarray_len, ~0, sizeof (nfs_resop4), (xdrproc_t) xdr_nfs_resop4)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4args (XDR* xdrs, CB_GETATTR4args* objp) { if (!xdr_nfs_fh4 (xdrs, &objp->fh)) { return FALSE; } if (!xdr_bitmap4 (xdrs, &objp->attr_request)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4resok (XDR* xdrs, CB_GETATTR4resok* objp) { if (!xdr_fattr4 (xdrs, &objp->obj_attributes)) { return FALSE; } return TRUE; } bool_t xdr_CB_GETATTR4res (XDR* xdrs, CB_GETATTR4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } switch (objp->status) { case NFS4_OK: if (!xdr_CB_GETATTR4resok (xdrs, &objp->CB_GETATTR4res_u.resok4)) { return FALSE; } break; default: break; } return TRUE; } bool_t xdr_CB_RECALL4args (XDR* xdrs, CB_RECALL4args* objp) { if (!xdr_stateid4 (xdrs, &objp->stateid)) { return FALSE; } if (!xdr_bool (xdrs, &objp->truncate)) { return FALSE; } if (!xdr_nfs_fh4 (xdrs, &objp->fh)) { return FALSE; } return TRUE; } bool_t xdr_CB_RECALL4res (XDR* xdrs, CB_RECALL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_CB_ILLEGAL4res (XDR* xdrs, CB_ILLEGAL4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } return TRUE; } bool_t xdr_nfs_cb_opnum4 (XDR* xdrs, nfs_cb_opnum4* objp) { if (!xdr_enum (xdrs, (enum_t*) objp)) { return FALSE; } return TRUE; } bool_t xdr_nfs_cb_argop4 (XDR* xdrs, nfs_cb_argop4* objp) { if (!xdr_u_int (xdrs, &objp->argop)) { return FALSE; } switch (objp->argop) { case OP_CB_GETATTR: if (!xdr_CB_GETATTR4args (xdrs, &objp->nfs_cb_argop4_u.opcbgetattr)) { return FALSE; } break; case OP_CB_RECALL: if (!xdr_CB_RECALL4args (xdrs, &objp->nfs_cb_argop4_u.opcbrecall)) { return FALSE; } break; case OP_CB_ILLEGAL: break; default: return FALSE; } return TRUE; } bool_t xdr_nfs_cb_resop4 (XDR* xdrs, nfs_cb_resop4* objp) { if (!xdr_u_int (xdrs, &objp->resop)) { return FALSE; } switch (objp->resop) { case OP_CB_GETATTR: if (!xdr_CB_GETATTR4res (xdrs, &objp->nfs_cb_resop4_u.opcbgetattr)) { return FALSE; } break; case OP_CB_RECALL: if (!xdr_CB_RECALL4res (xdrs, &objp->nfs_cb_resop4_u.opcbrecall)) { return FALSE; } break; case OP_CB_ILLEGAL: if (!xdr_CB_ILLEGAL4res (xdrs, &objp->nfs_cb_resop4_u.opcbillegal)) { return FALSE; } break; default: return FALSE; } return TRUE; } bool_t xdr_CB_COMPOUND4args (XDR* xdrs, CB_COMPOUND4args* objp) { if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->minorversion)) { return FALSE; } if (!xdr_uint32_t (xdrs, &objp->callback_ident)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->argarray.argarray_val, (u_int*) &objp->argarray.argarray_len, ~0, sizeof (nfs_cb_argop4), (xdrproc_t) xdr_nfs_cb_argop4)) { return FALSE; } return TRUE; } bool_t xdr_CB_COMPOUND4res (XDR* xdrs, CB_COMPOUND4res* objp) { if (!xdr_nfsstat4 (xdrs, &objp->status)) { return FALSE; } if (!xdr_utf8str_cs (xdrs, &objp->tag)) { return FALSE; } if (!xdr_array (xdrs, (char**)&objp->resarray.resarray_val, (u_int*) &objp->resarray.resarray_len, ~0, sizeof (nfs_cb_resop4), (xdrproc_t) xdr_nfs_cb_resop4)) { return FALSE; } return TRUE; } } // namespace NFS4 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/nfs4/nfs4_utils.h000066400000000000000000000467401261713114600212660ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Helpers for parsing NFS structures. // Copyright (c) 2014-2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef NFS4_UTILS_H #define NFS4_UTILS_H //------------------------------------------------------------------------------ #include #include "api/nfs_types.h" #include "api/nfs4_types_rpcgen.h" #include "protocols/nfs/nfs_utils.h" #include "protocols/rpc/rpc_header.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace NFS4 { namespace NFS4 = NST::API::NFS4; using ProcEnumNFS4 = API::ProcEnumNFS4; using Validator = rpc::RPCProgramValidator < 100003, // SunRPC/NFS program 4, // v4 ProcEnumNFS4::NFS_NULL, // NFSPROC4RPCGEN_NULL (0) ProcEnumNFS4::COMPOUND // NFSPROC4RPCGEN_COMPOUND (1) >; bool_t xdr_nfs_ftype4 (XDR *, NFS4::nfs_ftype4*); bool_t xdr_nfsstat4 (XDR *, NFS4::nfsstat4*); bool_t xdr_bitmap4 (XDR *, NFS4::bitmap4*); bool_t xdr_offset4 (XDR *, NFS4::offset4*); bool_t xdr_count4 (XDR *, NFS4::count4*); bool_t xdr_length4 (XDR *, NFS4::length4*); bool_t xdr_clientid4 (XDR *, NFS4::clientid4*); bool_t xdr_seqid4 (XDR *, NFS4::seqid4*); bool_t xdr_utf8string (XDR *, NFS4::utf8string*); bool_t xdr_utf8str_cis (XDR *, NFS4::utf8str_cis*); bool_t xdr_utf8str_cs (XDR *, NFS4::utf8str_cs*); bool_t xdr_utf8str_mixed (XDR *, NFS4::utf8str_mixed*); bool_t xdr_component4 (XDR *, NFS4::component4*); bool_t xdr_pathname4 (XDR *, NFS4::pathname4*); bool_t xdr_nfs_lockid4 (XDR *, NFS4::nfs_lockid4*); bool_t xdr_nfs_cookie4 (XDR *, NFS4::nfs_cookie4*); bool_t xdr_linktext4 (XDR *, NFS4::linktext4*); bool_t xdr_sec_oid4 (XDR *, NFS4::sec_oid4*); bool_t xdr_qop4 (XDR *, NFS4::qop4*); bool_t xdr_mode4 (XDR *, NFS4::mode4*); bool_t xdr_changeid4 (XDR *, NFS4::changeid4*); bool_t xdr_verifier4 (XDR *, NFS4::verifier4); bool_t xdr_nfstime4 (XDR *, NFS4::nfstime4*); bool_t xdr_time_how4 (XDR *, NFS4::time_how4*); bool_t xdr_settime4 (XDR *, NFS4::settime4*); bool_t xdr_nfs_fh4 (XDR *, NFS4::nfs_fh4*); bool_t xdr_fsid4 (XDR *, NFS4::fsid4*); bool_t xdr_fs_location4 (XDR *, NFS4::fs_location4*); bool_t xdr_fs_locations4 (XDR *, NFS4::fs_locations4*); bool_t xdr_acetype4 (XDR *, NFS4::acetype4*); bool_t xdr_aceflag4 (XDR *, NFS4::aceflag4*); bool_t xdr_acemask4 (XDR *, NFS4::acemask4*); bool_t xdr_nfsace4 (XDR *, NFS4::nfsace4*); bool_t xdr_specdata4 (XDR *, NFS4::specdata4*); bool_t xdr_fattr4_supported_attrs (XDR *, NFS4::fattr4_supported_attrs*); bool_t xdr_fattr4_type (XDR *, NFS4::fattr4_type*); bool_t xdr_fattr4_fh_expire_type (XDR *, NFS4::fattr4_fh_expire_type*); bool_t xdr_fattr4_change (XDR *, NFS4::fattr4_change*); bool_t xdr_fattr4_size (XDR *, NFS4::fattr4_size*); bool_t xdr_fattr4_link_support (XDR *, NFS4::fattr4_link_support*); bool_t xdr_fattr4_symlink_support (XDR *, NFS4::fattr4_symlink_support*); bool_t xdr_fattr4_named_attr (XDR *, NFS4::fattr4_named_attr*); bool_t xdr_fattr4_fsid (XDR *, NFS4::fattr4_fsid*); bool_t xdr_fattr4_unique_handles (XDR *, NFS4::fattr4_unique_handles*); bool_t xdr_fattr4_lease_time (XDR *, NFS4::fattr4_lease_time*); bool_t xdr_fattr4_rdattr_error (XDR *, NFS4::fattr4_rdattr_error*); bool_t xdr_fattr4_acl (XDR *, NFS4::fattr4_acl*); bool_t xdr_fattr4_aclsupport (XDR *, NFS4::fattr4_aclsupport*); bool_t xdr_fattr4_archive (XDR *, NFS4::fattr4_archive*); bool_t xdr_fattr4_cansettime (XDR *, NFS4::fattr4_cansettime*); bool_t xdr_fattr4_case_insensitive (XDR *, NFS4::fattr4_case_insensitive*); bool_t xdr_fattr4_case_preserving (XDR *, NFS4::fattr4_case_preserving*); bool_t xdr_fattr4_chown_restricted (XDR *, NFS4::fattr4_chown_restricted*); bool_t xdr_fattr4_fileid (XDR *, NFS4::fattr4_fileid*); bool_t xdr_fattr4_files_avail (XDR *, NFS4::fattr4_files_avail*); bool_t xdr_fattr4_filehandle (XDR *, NFS4::fattr4_filehandle*); bool_t xdr_fattr4_files_free (XDR *, NFS4::fattr4_files_free*); bool_t xdr_fattr4_files_total (XDR *, NFS4::fattr4_files_total*); bool_t xdr_fattr4_fs_locations (XDR *, NFS4::fattr4_fs_locations*); bool_t xdr_fattr4_hidden (XDR *, NFS4::fattr4_hidden*); bool_t xdr_fattr4_homogeneous (XDR *, NFS4::fattr4_homogeneous*); bool_t xdr_fattr4_maxfilesize (XDR *, NFS4::fattr4_maxfilesize*); bool_t xdr_fattr4_maxlink (XDR *, NFS4::fattr4_maxlink*); bool_t xdr_fattr4_maxname (XDR *, NFS4::fattr4_maxname*); bool_t xdr_fattr4_maxread (XDR *, NFS4::fattr4_maxread*); bool_t xdr_fattr4_maxwrite (XDR *, NFS4::fattr4_maxwrite*); bool_t xdr_fattr4_mimetype (XDR *, NFS4::fattr4_mimetype*); bool_t xdr_fattr4_mode (XDR *, NFS4::fattr4_mode*); bool_t xdr_fattr4_mounted_on_fileid (XDR *, NFS4::fattr4_mounted_on_fileid*); bool_t xdr_fattr4_no_trunc (XDR *, NFS4::fattr4_no_trunc*); bool_t xdr_fattr4_numlinks (XDR *, NFS4::fattr4_numlinks*); bool_t xdr_fattr4_owner (XDR *, NFS4::fattr4_owner*); bool_t xdr_fattr4_owner_group (XDR *, NFS4::fattr4_owner_group*); bool_t xdr_fattr4_quota_avail_hard (XDR *, NFS4::fattr4_quota_avail_hard*); bool_t xdr_fattr4_quota_avail_soft (XDR *, NFS4::fattr4_quota_avail_soft*); bool_t xdr_fattr4_quota_used (XDR *, NFS4::fattr4_quota_used*); bool_t xdr_fattr4_rawdev (XDR *, NFS4::fattr4_rawdev*); bool_t xdr_fattr4_space_avail (XDR *, NFS4::fattr4_space_avail*); bool_t xdr_fattr4_space_free (XDR *, NFS4::fattr4_space_free*); bool_t xdr_fattr4_space_total (XDR *, NFS4::fattr4_space_total*); bool_t xdr_fattr4_space_used (XDR *, NFS4::fattr4_space_used*); bool_t xdr_fattr4_system (XDR *, NFS4::fattr4_system*); bool_t xdr_fattr4_time_access (XDR *, NFS4::fattr4_time_access*); bool_t xdr_fattr4_time_access_set (XDR *, NFS4::fattr4_time_access_set*); bool_t xdr_fattr4_time_backup (XDR *, NFS4::fattr4_time_backup*); bool_t xdr_fattr4_time_create (XDR *, NFS4::fattr4_time_create*); bool_t xdr_fattr4_time_delta (XDR *, NFS4::fattr4_time_delta*); bool_t xdr_fattr4_time_metadata (XDR *, NFS4::fattr4_time_metadata*); bool_t xdr_fattr4_time_modify (XDR *, NFS4::fattr4_time_modify*); bool_t xdr_fattr4_time_modify_set (XDR *, NFS4::fattr4_time_modify_set*); bool_t xdr_attrlist4 (XDR *, NFS4::attrlist4*); bool_t xdr_fattr4 (XDR *, NFS4::fattr4*); bool_t xdr_change_info4 (XDR *, NFS4::change_info4*); bool_t xdr_clientaddr4 (XDR *, NFS4::clientaddr4*); bool_t xdr_cb_client4 (XDR *, NFS4::cb_client4*); bool_t xdr_stateid4 (XDR *, NFS4::stateid4*); bool_t xdr_nfs_client_id4 (XDR *, NFS4::nfs_client_id4*); bool_t xdr_open_owner4 (XDR *, NFS4::open_owner4*); bool_t xdr_lock_owner4 (XDR *, NFS4::lock_owner4*); bool_t xdr_nfs_lock_type4 (XDR *, NFS4::nfs_lock_type4*); bool_t xdr_NULL4args (XDR *, NFS4::NULL4args*); // for compatibility bool_t xdr_NULL4res (XDR *, NFS4::NULL4res*); // for compatibility bool_t xdr_ACCESS4args (XDR *, NFS4::ACCESS4args*); bool_t xdr_ACCESS4resok (XDR *, NFS4::ACCESS4resok*); bool_t xdr_ACCESS4res (XDR *, NFS4::ACCESS4res*); bool_t xdr_CLOSE4args (XDR *, NFS4::CLOSE4args*); bool_t xdr_CLOSE4res (XDR *, NFS4::CLOSE4res*); bool_t xdr_COMMIT4args (XDR *, NFS4::COMMIT4args*); bool_t xdr_COMMIT4resok (XDR *, NFS4::COMMIT4resok*); bool_t xdr_COMMIT4res (XDR *, NFS4::COMMIT4res*); bool_t xdr_createtype4 (XDR *, NFS4::createtype4*); bool_t xdr_CREATE4args (XDR *, NFS4::CREATE4args*); bool_t xdr_CREATE4resok (XDR *, NFS4::CREATE4resok*); bool_t xdr_CREATE4res (XDR *, NFS4::CREATE4res*); bool_t xdr_DELEGPURGE4args (XDR *, NFS4::DELEGPURGE4args*); bool_t xdr_DELEGPURGE4res (XDR *, NFS4::DELEGPURGE4res*); bool_t xdr_DELEGRETURN4args (XDR *, NFS4::DELEGRETURN4args*); bool_t xdr_DELEGRETURN4res (XDR *, NFS4::DELEGRETURN4res*); bool_t xdr_GETATTR4args (XDR *, NFS4::GETATTR4args*); bool_t xdr_GETATTR4resok (XDR *, NFS4::GETATTR4resok*); bool_t xdr_GETATTR4res (XDR *, NFS4::GETATTR4res*); bool_t xdr_notification_types4 (XDR *, NFS4::notification_types4*); bool_t xdr_notification_delay4 (XDR *, NFS4::notification_delay4*); bool_t xdr_dir_delegation_status4 (XDR *, NFS4::dir_delegation_status4*); bool_t xdr_GET_DIR_DELEGATION4args (XDR *, NFS4::GET_DIR_DELEGATION4args*); bool_t xdr_GET_DIR_DELEGATION4resok (XDR *, NFS4::GET_DIR_DELEGATION4resok*); bool_t xdr_GET_DIR_DELEGATION4res (XDR *, NFS4::GET_DIR_DELEGATION4res*); bool_t xdr_GETFH4resok (XDR *, NFS4::GETFH4resok*); bool_t xdr_GETFH4res (XDR *, NFS4::GETFH4res*); bool_t xdr_LINK4args (XDR *, NFS4::LINK4args*); bool_t xdr_LINK4resok (XDR *, NFS4::LINK4resok*); bool_t xdr_LINK4res (XDR *, NFS4::LINK4res*); bool_t xdr_open_to_lock_owner4 (XDR *, NFS4::open_to_lock_owner4*); bool_t xdr_exist_lock_owner4 (XDR *, NFS4::exist_lock_owner4*); bool_t xdr_locker4 (XDR *, NFS4::locker4*); bool_t xdr_LOCK4args (XDR *, NFS4::LOCK4args*); bool_t xdr_LOCK4denied (XDR *, NFS4::LOCK4denied*); bool_t xdr_LOCK4resok (XDR *, NFS4::LOCK4resok*); bool_t xdr_LOCK4res (XDR *, NFS4::LOCK4res*); bool_t xdr_LOCKT4args (XDR *, NFS4::LOCKT4args*); bool_t xdr_LOCKT4res (XDR *, NFS4::LOCKT4res*); bool_t xdr_LOCKU4args (XDR *, NFS4::LOCKU4args*); bool_t xdr_LOCKU4res (XDR *, NFS4::LOCKU4res*); bool_t xdr_LOOKUP4args (XDR *, NFS4::LOOKUP4args*); bool_t xdr_LOOKUP4res (XDR *, NFS4::LOOKUP4res*); bool_t xdr_LOOKUPP4res (XDR *, NFS4::LOOKUPP4res*); bool_t xdr_NVERIFY4args (XDR *, NFS4::NVERIFY4args*); bool_t xdr_NVERIFY4res (XDR *, NFS4::NVERIFY4res*); bool_t xdr_createmode4 (XDR *, NFS4::createmode4*); bool_t xdr_createhow4 (XDR *, NFS4::createhow4*); bool_t xdr_opentype4 (XDR *, NFS4::opentype4*); bool_t xdr_openflag4 (XDR *, NFS4::openflag4*); bool_t xdr_limit_by4 (XDR *, NFS4::limit_by4*); bool_t xdr_nfs_modified_limit4 (XDR *, NFS4::nfs_modified_limit4*); bool_t xdr_nfs_space_limit4 (XDR *, NFS4::nfs_space_limit4*); bool_t xdr_open_delegation_type4 (XDR *, NFS4::open_delegation_type4*); bool_t xdr_open_claim_type4 (XDR *, NFS4::open_claim_type4*); bool_t xdr_open_claim_delegate_cur4 (XDR *, NFS4::open_claim_delegate_cur4*); bool_t xdr_open_claim4 (XDR *, NFS4::open_claim4*); bool_t xdr_OPEN4args (XDR *, NFS4::OPEN4args*); bool_t xdr_open_read_delegation4 (XDR *, NFS4::open_read_delegation4*); bool_t xdr_open_write_delegation4 (XDR *, NFS4::open_write_delegation4*); bool_t xdr_open_delegation4 (XDR *, NFS4::open_delegation4*); bool_t xdr_OPEN4resok (XDR *, NFS4::OPEN4resok*); bool_t xdr_OPEN4res (XDR *, NFS4::OPEN4res*); bool_t xdr_OPENATTR4args (XDR *, NFS4::OPENATTR4args*); bool_t xdr_OPENATTR4res (XDR *, NFS4::OPENATTR4res*); bool_t xdr_OPEN_CONFIRM4args (XDR *, NFS4::OPEN_CONFIRM4args*); bool_t xdr_OPEN_CONFIRM4resok (XDR *, NFS4::OPEN_CONFIRM4resok*); bool_t xdr_OPEN_CONFIRM4res (XDR *, NFS4::OPEN_CONFIRM4res*); bool_t xdr_OPEN_DOWNGRADE4args (XDR *, NFS4::OPEN_DOWNGRADE4args*); bool_t xdr_OPEN_DOWNGRADE4resok (XDR *, NFS4::OPEN_DOWNGRADE4resok*); bool_t xdr_OPEN_DOWNGRADE4res (XDR *, NFS4::OPEN_DOWNGRADE4res*); bool_t xdr_PUTFH4args (XDR *, NFS4::PUTFH4args*); bool_t xdr_PUTFH4res (XDR *, NFS4::PUTFH4res*); bool_t xdr_PUTPUBFH4res (XDR *, NFS4::PUTPUBFH4res*); bool_t xdr_PUTROOTFH4res (XDR *, NFS4::PUTROOTFH4res*); bool_t xdr_READ4args (XDR *, NFS4::READ4args*); bool_t xdr_READ4resok (XDR *, NFS4::READ4resok*); bool_t xdr_READ4res (XDR *, NFS4::READ4res*); bool_t xdr_READDIR4args (XDR *, NFS4::READDIR4args*); bool_t xdr_entry4 (XDR *, NFS4::entry4*); bool_t xdr_dirlist4 (XDR *, NFS4::dirlist4*); bool_t xdr_READDIR4resok (XDR *, NFS4::READDIR4resok*); bool_t xdr_READDIR4res (XDR *, NFS4::READDIR4res*); bool_t xdr_READLINK4resok (XDR *, NFS4::READLINK4resok*); bool_t xdr_READLINK4res (XDR *, NFS4::READLINK4res*); bool_t xdr_REMOVE4args (XDR *, NFS4::REMOVE4args*); bool_t xdr_REMOVE4resok (XDR *, NFS4::REMOVE4resok*); bool_t xdr_REMOVE4res (XDR *, NFS4::REMOVE4res*); bool_t xdr_RENAME4args (XDR *, NFS4::RENAME4args*); bool_t xdr_RENAME4resok (XDR *, NFS4::RENAME4resok*); bool_t xdr_RENAME4res (XDR *, NFS4::RENAME4res*); bool_t xdr_RENEW4args (XDR *, NFS4::RENEW4args*); bool_t xdr_RENEW4res (XDR *, NFS4::RENEW4res*); bool_t xdr_RESTOREFH4res (XDR *, NFS4::RESTOREFH4res*); bool_t xdr_SAVEFH4res (XDR *, NFS4::SAVEFH4res*); bool_t xdr_SECINFO4args (XDR *, NFS4::SECINFO4args*); bool_t xdr_rpc_gss_svc_t (XDR *, NFS4::rpc_gss_svc_t*); bool_t xdr_rpcsec_gss_info (XDR *, NFS4::rpcsec_gss_info*); bool_t xdr_secinfo4 (XDR *, NFS4::secinfo4*); bool_t xdr_SECINFO4resok (XDR *, NFS4::SECINFO4resok*); bool_t xdr_SECINFO4res (XDR *, NFS4::SECINFO4res*); bool_t xdr_SETATTR4args (XDR *, NFS4::SETATTR4args*); bool_t xdr_SETATTR4res (XDR *, NFS4::SETATTR4res*); bool_t xdr_SETCLIENTID4args (XDR *, NFS4::SETCLIENTID4args*); bool_t xdr_SETCLIENTID4resok (XDR *, NFS4::SETCLIENTID4resok*); bool_t xdr_SETCLIENTID4res (XDR *, NFS4::SETCLIENTID4res*); bool_t xdr_SETCLIENTID_CONFIRM4args (XDR *, NFS4::SETCLIENTID_CONFIRM4args*); bool_t xdr_SETCLIENTID_CONFIRM4res (XDR *, NFS4::SETCLIENTID_CONFIRM4res*); bool_t xdr_VERIFY4args (XDR *, NFS4::VERIFY4args*); bool_t xdr_VERIFY4res (XDR *, NFS4::VERIFY4res*); bool_t xdr_stable_how4 (XDR *, NFS4::stable_how4*); bool_t xdr_WRITE4args (XDR *, NFS4::WRITE4args*); bool_t xdr_WRITE4resok (XDR *, NFS4::WRITE4resok*); bool_t xdr_WRITE4res (XDR *, NFS4::WRITE4res*); bool_t xdr_RELEASE_LOCKOWNER4args (XDR *, NFS4::RELEASE_LOCKOWNER4args*); bool_t xdr_RELEASE_LOCKOWNER4res (XDR *, NFS4::RELEASE_LOCKOWNER4res*); bool_t xdr_ILLEGAL4res (XDR *, NFS4::ILLEGAL4res*); bool_t xdr_nfs_opnum4 (XDR *, NFS4::nfs_opnum4*); bool_t xdr_nfs_argop4 (XDR *, NFS4::nfs_argop4*); bool_t xdr_nfs_resop4 (XDR *, NFS4::nfs_resop4*); bool_t xdr_COMPOUND4args (XDR *, NFS4::COMPOUND4args*); bool_t xdr_COMPOUND4res (XDR *, NFS4::COMPOUND4res*); bool_t xdr_CB_GETATTR4args (XDR *, NFS4::CB_GETATTR4args*); bool_t xdr_CB_GETATTR4resok (XDR *, NFS4::CB_GETATTR4resok*); bool_t xdr_CB_GETATTR4res (XDR *, NFS4::CB_GETATTR4res*); bool_t xdr_CB_RECALL4args (XDR *, NFS4::CB_RECALL4args*); bool_t xdr_CB_RECALL4res (XDR *, NFS4::CB_RECALL4res*); bool_t xdr_CB_ILLEGAL4res (XDR *, NFS4::CB_ILLEGAL4res*); bool_t xdr_nfs_cb_opnum4 (XDR *, NFS4::nfs_cb_opnum4*); bool_t xdr_nfs_cb_argop4 (XDR *, NFS4::nfs_cb_argop4*); bool_t xdr_nfs_cb_resop4 (XDR *, NFS4::nfs_cb_resop4*); bool_t xdr_CB_COMPOUND4args (XDR *, NFS4::CB_COMPOUND4args*); bool_t xdr_CB_COMPOUND4res (XDR *, NFS4::CB_COMPOUND4res*); // Procedure 0: NULL - Do nothing inline auto proc_t_of(NFS4::NULL4args&)->decltype(&xdr_NULL4args) { return &xdr_NULL4args; } inline auto proc_t_of(NFS4::NULL4res&)->decltype(&xdr_NULL4res) { return &xdr_NULL4res; } // Procedure 1: COMPOUND inline auto proc_t_of(NFS4::COMPOUND4args&)->decltype(&xdr_COMPOUND4args) { return &xdr_COMPOUND4args; } inline auto proc_t_of(NFS4::COMPOUND4res&)->decltype(&xdr_COMPOUND4res) { return &xdr_COMPOUND4res; } #define NST_PUBLIC __attribute__ ((visibility("default"))) extern"C" NST_PUBLIC const char* print_nfs4_procedures(const ProcEnumNFS4::NFSProcedure proc); std::ostream& operator<<(std::ostream& out, const ProcEnumNFS4::NFSProcedure proc); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_ftype4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfsstat4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::bitmap4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::utf8string& obj); std::ostream& operator<<(std::ostream& out, const NFS4::pathname4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::sec_oid4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfstime4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::time_how4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::settime4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_fh4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::fsid4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::fs_location4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::fs_locations4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfsace4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::specdata4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::fattr4_acl& obj); std::ostream& operator<<(std::ostream& out, const NFS4::attrlist4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::fattr4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::change_info4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::clientaddr4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::cb_client4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::stateid4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_client_id4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::lock_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_lock_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::createtype4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::dir_delegation_status4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_to_lock_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::exist_lock_owner4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::locker4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::createmode4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::opentype4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::limit_by4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_delegation_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_claim_type4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::rpc_gss_svc_t& obj); std::ostream& operator<<(std::ostream& out, const NFS4::stable_how4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::createhow4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::openflag4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_modified_limit4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::nfs_space_limit4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_claim_delegate_cur4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_claim4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_read_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_write_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::open_delegation4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::entry4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::dirlist4& obj); std::ostream& operator<<(std::ostream& out, const NFS4::rpcsec_gss_info& obj); std::ostream& operator<<(std::ostream& out, const NFS4::secinfo4& obj); } // namespace NFS4 } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//NFS4_UTILS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/rpc/000077500000000000000000000000001261713114600167225ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/rpc/rpc_header.h000066400000000000000000000112771261713114600211770ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Reduced definitions of RPC headers for fast parsing. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef RPC_HEADER_H #define RPC_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohl() #include "api/rpc_types.h" //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace rpc { using namespace NST::API; struct MessageHeader { inline uint32_t xid () const { return ntohl(m_xid); } inline MsgType type() const { return MsgType(ntohl(m_type)); } private: MessageHeader() = delete; uint32_t m_xid; uint32_t m_type; }; struct CallHeader: public MessageHeader { inline uint32_t rpcvers() const { return ntohl(m_rpcvers); } inline uint32_t prog() const { return ntohl(m_prog); } inline uint32_t vers() const { return ntohl(m_vers); } inline uint32_t proc() const { return ntohl(m_proc); } // OpaqueAuth cred - skipped // OpaqueAuth verf - skipped private: CallHeader() = delete; uint32_t m_rpcvers; // must be equal to two (2) uint32_t m_prog; uint32_t m_vers; uint32_t m_proc; }; struct ReplyHeader: public MessageHeader { inline ReplyStat stat() const { return ReplyStat(ntohl(m_stat)); } // accepted_reply areply - skipped // rejected_reply rreply - skipped private: ReplyHeader() = delete; uint32_t m_stat; }; struct RecordMark // RFC 5531 section 11 Record Marking Standard { inline bool is_last() const { return ntohl(mark) & 0x80000000; /*1st bit*/ } inline uint32_t fragment_len() const { return ntohl(mark) & 0x7FFFFFFF; /*31 bits*/ } inline MessageHeader* fragment() const { return (MessageHeader*)(this+1); } private: RecordMark() = delete; uint32_t mark; }; class RPCValidator { public: static inline bool check(const MessageHeader*const msg) { const MsgType type = msg->type(); return type == MsgType::CALL || type == MsgType::REPLY; } static inline bool check(const CallHeader*const call) { return call->rpcvers() == SUNRPC_MSG_VERSION; } static inline bool check(const ReplyHeader*const reply) { const ReplyStat stat = reply->stat(); return stat == ReplyStat::MSG_ACCEPTED || stat == ReplyStat::MSG_DENIED; } private: RPCValidator() = delete; }; template < uint32_t Program, // remote program number uint32_t Version, // remote program version number uint32_t MinProc, // min remote procedure number uint32_t MaxProc // max remote procedure number > class RPCProgramValidator { public: static inline bool check(const CallHeader*const call) { const uint32_t proc = call->proc(); return proc <= MaxProc && proc >= MinProc && call->prog() == Program && call->vers() == Version ; } private: RPCProgramValidator() = delete; }; //This template specialization for remove warning to compare unsigned with zero template < uint32_t Program, uint32_t Version, uint32_t MaxProc > class RPCProgramValidator { public: static inline bool check(const CallHeader*const call) { const uint32_t proc = call->proc(); // do not compare uint32_t with 0 (MinProc) return proc <= MaxProc && call->prog() == Program && call->vers() == Version ; } private: RPCProgramValidator() = delete; }; } // namespace rpc } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//RPC_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/tcp/000077500000000000000000000000001261713114600167245ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/tcp/tcp_header.h000066400000000000000000000063051261713114600211770ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of TCP header and constants. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef TCP_HEADER_H #define TCP_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohs()/ntohl() #include // for in_port_t //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace tcp { // Transmission Control Protocol struct tcp_header { enum Flag // bit masks for flags { FIN = 0x01, // finished send data SYN = 0x02, // synchronize sequence numbers RST = 0x04, // reset the connection PSH = 0x08, // push data to the app layer ACK = 0x10, // acknowledge URG = 0x20, // urgent ECE = 0x40, // ECN-echo CWR = 0x80 // congestion window reduced }; in_port_t tcp_sport; // source port in_port_t tcp_dport; // destination port uint32_t tcp_seq; // sequence number uint32_t tcp_ack; // acknowledgement number uint8_t tcp_rsrvd_off; // (unused) and data offset uint8_t tcp_flags; // control flags uint16_t tcp_win; // window uint16_t tcp_sum; // checksum uint16_t tcp_urp; // urgent pointer } __attribute__ ((__packed__)); struct TCPHeader : private tcp_header { inline in_port_t sport() const { return tcp_sport; } inline in_port_t dport() const { return tcp_dport; } inline uint32_t seq() const { return ntohl(tcp_seq); } inline uint32_t ack() const { return ntohl(tcp_ack); } inline uint8_t offset() const { return (tcp_rsrvd_off & 0xf0) >> 2 /* *4 */; } // return number of bytes inline uint8_t flags() const { return tcp_flags; } inline bool is(tcp_header::Flag flag) const { return tcp_flags & flag; } inline uint16_t window() const { return ntohs(tcp_win); } inline uint16_t checksum() const { return ntohs(tcp_sum); } inline uint16_t urgent() const { return ntohs(tcp_urp); } } __attribute__ ((__packed__)); } // namespace tcp } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//TCP_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/udp/000077500000000000000000000000001261713114600167265ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/udp/udp_header.h000066400000000000000000000043531261713114600212040ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Definition of UDP header and constants. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef UDP_HEADER_H #define UDP_HEADER_H //------------------------------------------------------------------------------ #include #include // for ntohs() #include // for in_port_t //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace udp { // User Datagram Protocol RFC 768 struct udp_header { in_port_t udp_sport; // source port, optional, may be 0 in_port_t udp_dport; // destination port uint16_t udp_len; // length of the datagram, minimum value is 8 uint16_t udp_sum; // checksum of IP pseudo header, the UDP header, and the data } __attribute__ ((__packed__)); struct UDPHeader : private udp_header { inline in_port_t sport() const { return udp_sport; } inline in_port_t dport() const { return udp_dport; } inline uint16_t length() const { return ntohs(udp_len); } inline uint16_t checksum() const { return ntohs(udp_sum); } } __attribute__ ((__packed__)); } // namespace udp } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//UDP_HEADER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/protocols/xdr/000077500000000000000000000000001261713114600167335ustar00rootroot00000000000000nfstrace-0.4.1/src/protocols/xdr/xdr_decoder.h000066400000000000000000000045511261713114600213730ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Alexey Costroma // Description: Reader for data presented in XDR format. // Copyright (c) 2014 EPAM Systems. All Rights Reserved. //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef XDR_DECODER_H #define XDR_DECODER_H //------------------------------------------------------------------------------ #include #include //------------------------------------------------------------------------------ #include "utils/filtered_data.h" #include "api/nfs3_types_rpcgen.h" //------------------------------------------------------------------------------ using NST::utils::FilteredData; using NST::utils::FilteredDataQueue; //------------------------------------------------------------------------------ namespace NST { namespace protocols { namespace xdr { class XDRDecoderError : public std::runtime_error { public: explicit XDRDecoderError(const std::string& msg) : std::runtime_error{msg} { } }; class XDRDecoder { public: XDRDecoder(FilteredDataQueue::Ptr&& p) : ptr{std::move(p)} { xdrmem_create(&txdr, (char*)ptr->data, ptr->dlen, XDR_DECODE); } ~XDRDecoder() { xdr_destroy (&txdr); } inline XDR* xdr() { return &txdr; } inline const FilteredData& data() const { return *ptr; } private: XDR txdr; FilteredDataQueue::Ptr ptr; }; } // namespace xdr } // namespace protocols } // namespace NST //------------------------------------------------------------------------------ #endif//XDR_DECODER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/000077500000000000000000000000001261713114600152525ustar00rootroot00000000000000nfstrace-0.4.1/src/utils/block_allocator.h000066400000000000000000000106771261713114600205700ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: BlockAllocator for fixed size Chunks of memory // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef BLOCK_ALLOCATOR_H #define BLOCK_ALLOCATOR_H //------------------------------------------------------------------------------ #include // for memset() //------------------------------------------------------------------------------ namespace NST { namespace utils { // May throw std::bad_alloc() when memory is not enough class BlockAllocator { struct Chunk { Chunk* next; // used only for free chunks in list }; public: BlockAllocator() noexcept : chunk {0} , block {0} , limit {0} , nfree {0} , allocated{0} , blocks{nullptr} , list {nullptr} { } ~BlockAllocator() { for(std::size_t i {0}; inext; --nfree; return c; } inline void deallocate(void* ptr) { Chunk* c {(Chunk*) ptr}; c->next = list; list = c; ++nfree; } // limits inline std::size_t max_chunks() const { return block*limit; } inline std::size_t max_memory() const { return block*limit*chunk; } inline std::size_t max_blocks() const { return limit; } inline std::size_t free_chunks()const { return nfree; } private: Chunk* new_block() { char* ptr {new char[block*chunk]}; for(std::size_t i {0}; inext = (Chunk*) &ptr[(i + 1) * chunk]; } ((Chunk*) &ptr[(block - 1) * chunk])->next = nullptr; blocks[allocated] = (Chunk*) ptr; ++allocated; nfree += block; return (Chunk*) ptr; } void increase_blocks_limit() { const std::size_t new_limit {limit * 2}; // increase soft limit by twice Chunk** new_blocks {new Chunk*[new_limit]}; // allocate new array of blocks pointers limit = new_limit; memcpy(new_blocks, blocks, sizeof(Chunk*)*allocated); // copy pointers of existing blocks memset(&new_blocks[allocated], 0, sizeof(Chunk*)*(limit-allocated)); // fill pointers for new blocks by NULL delete[] blocks; // delete old array of blocks pointers blocks = new_blocks; // set new array } std::size_t chunk; // chunk size std::size_t block; // num chunks in block std::size_t limit; // max blocks, soft limit std::size_t nfree; // num of avaliable chunks std::size_t allocated;// num of allocated blocks, up to limit Chunk** blocks; // array of blocks Chunk* list; // list of free chunks }; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//BLOCK_ALLOCATOR_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/dynamic_load.cpp000066400000000000000000000035721261713114600204100ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Wrapper for dlopen and related functions // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include "utils/dynamic_load.h" //------------------------------------------------------------------------------ using namespace NST::utils; //------------------------------------------------------------------------------ DynamicLoad::DynamicLoad(const std::string &file) { handle = dlopen(file.c_str(), RTLD_LAZY); if(handle == nullptr) { throw DLException{std::string{"Loading dynamic module: "} + file + " failed with error:" + dlerror()}; } } DynamicLoad::~DynamicLoad() { dlclose(handle); } void* DynamicLoad::get_symbol(const std::string &name) { void* address = (dlsym)(handle, name.c_str()); if(address == nullptr) { throw DLException{std::string{"Loading symbol "} + name + " failed with error:" + dlerror()}; } return address; } //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/dynamic_load.h000066400000000000000000000047771261713114600200650ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Wrapper for dlopen and related functions // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef DYNAMIC_LOAD_H #define DYNAMIC_LOAD_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace utils { class DynamicLoad { public: class DLException : public std::runtime_error { public: explicit DLException(const std::string& msg) : std::runtime_error{msg} { } }; protected: explicit DynamicLoad(const std::string& file); ~DynamicLoad(); template void load_address_of(const std::string& name, SymbolPtr& address) { static_assert(sizeof(void*) == sizeof(SymbolPtr), "object pointer and function pointer sizes must be equal"); // suppression warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object using hook_dlsym_t = SymbolPtr (DynamicLoad::*)(const std::string&); hook_dlsym_t get_symbol_func = reinterpret_cast(&DynamicLoad::get_symbol); address = (*this.*get_symbol_func)(name); } /*! * Gets symbol by name from DLL * Throws exception if fails * \param name - name of symbol * \return pointer to valid symbol */ void* get_symbol(const std::string& name); private: void* handle; }; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//DYNAMIC_LOAD_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/filtered_data.h000066400000000000000000000071571261713114600202240ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Structure for passing filtered data to Analysis module. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef FILTERED_DATA_H #define FILTERED_DATA_H //------------------------------------------------------------------------------ #include #include #include #include "utils/sessions.h" #include "utils/queue.h" //------------------------------------------------------------------------------ namespace NST { namespace utils { struct FilteredData { using Direction = NST::utils::Session::Direction; public: NetworkSession* session{nullptr}; // pointer to immutable session in Filtration struct timeval timestamp; // timestamp of last collected packet Direction direction; // direction of data transmission uint32_t dlen{0}; // length of filtered data uint8_t* data{cache}; // pointer to data in memory. {Readonly. Always points to proper memory buffer} private: const static int CACHE_SIZE {4000}; uint8_t cache[CACHE_SIZE]; uint8_t* memory{nullptr}; uint32_t memsize{0}; public: // disable copying FilteredData(const FilteredData&) = delete; FilteredData& operator=(const FilteredData&) = delete; inline FilteredData() noexcept : data{cache} { } inline ~FilteredData() { delete[] memory; } inline uint32_t capacity() const { if (nullptr == memory) { assert(data == cache); return CACHE_SIZE; } return memsize; } // Resize capacity with data safety void resize(uint32_t newsize) { if (capacity() >= newsize) return; // not resize less if (nullptr == memory) { memory = new uint8_t[newsize]; if (dlen) { memcpy(memory, cache, dlen); } memsize = newsize; data = memory; } else // have some filled memory { uint8_t* mem {new uint8_t[newsize]}; if (dlen) { memcpy(mem, memory, dlen); } data = mem; delete[] memory; memory = mem; memsize = newsize; } } // Reset data. Release free memory if allocated inline void reset() { if (nullptr != memory) { delete[] memory; memory = nullptr; } memsize = 0; dlen = 0; data = cache; } }; using FilteredDataQueue = Queue; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//FILTERED_DATA_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/log.cpp000066400000000000000000000123571261713114600165470ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Reentrant logger implementation // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include #include #include #include #include #include #include "utils/log.h" #include "utils/out.h" //------------------------------------------------------------------------------ /* http://www.unix.org/whitepapers/reentrant.html The POSIX.1 and C-language functions that operate on character streams (represented by pointers to objects of type FILE) are required by POSIX.1c to be implemented in such a way that reentrancy is achieved (see ISO/IEC 9945:1-1996, §8.2). This requirement has a drawback; it imposes substantial performance penalties because of the synchronization that must be built into the implementations of the functions for the sake of reentrancy. */ //------------------------------------------------------------------------------ namespace NST { namespace utils { static FILE* log_file {::stderr}; static bool own_file {false}; namespace // unnanmed { static FILE* try_open(const std::string& file_name) { FILE* file = fopen(file_name.c_str(), "a+"); if(file == nullptr) { throw std::system_error{errno, std::system_category(), {"Error in opening file: " + file_name}}; } chmod(file_name.c_str(), S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH); if(flock(fileno(file), LOCK_EX | LOCK_NB)) { fclose(file); throw std::system_error{errno, std::system_category(), {"Log file already locked: " + file_name}}; } time_t now = time(NULL); fprintf(file, "--------------------------------------------------------------------------\n"); fprintf(file, "--------------------------------------------------------------------------\n"); fprintf(file, "Nfstrace log: PID = %lu %s", static_cast(getpid()), ctime(&now)); fprintf(file, "--------------------------------------------------------------------------\n"); return file; } } // namespace unnamed Log::Global::Global(const std::string& path) : log_file_path {path} { if(own_file) { throw std::runtime_error{"Global Logger already have been created."}; } if(!log_file_path.empty()) { struct stat st; bool exists = stat(log_file_path.c_str(), &st) == 0 ? true : false; if(!exists && log_file_path.back() == '/') { throw std::system_error{errno, std::system_category(), {"Error accessing directory: " + log_file_path}}; } if(exists && S_ISDIR(st.st_mode)) { throw std::system_error{errno, std::system_category(), {"Incorrect log file path: " + log_file_path + " - it is a directory! Please set correct path to log."}}; } } else { log_file_path = "nfstrace.log"; } log_file = try_open(log_file_path); own_file = true; if(utils::Out message{}) { message << "Log file: " << log_file_path; } } Log::Global::~Global() { if(own_file) { flock(fileno(log_file), LOCK_UN); fclose(log_file); own_file = false; log_file = ::stderr; } } void Log::Global::reopen() { if(!own_file || log_file == ::stderr || log_file == ::stdout || log_file == nullptr) return; FILE* temp = freopen(log_file_path.c_str(), "a+", log_file); if(temp == nullptr) { throw std::system_error{errno, std::system_category(), {std::string{"Can't reopen file: "} + log_file_path}}; } log_file = temp; } Log::Log() : std::stringbuf {ios_base::out} , std::ostream {nullptr} { std::stringbuf::setp(buffer, buffer+sizeof(buffer)); std::ostream::init(static_cast(this)); std::ostream::put('\n'); } Log::~Log() { size_t len = pptr() - pbase(); fwrite(pbase(), len, 1, log_file); } void Log::message(const char* format, ...) { va_list args; va_start(args, format); vfprintf(log_file, format, args); va_end(args); } void Log::flush() { fflush(log_file); } } // namespace utils } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/log.h000066400000000000000000000053641261713114600162140ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Reentrant logger interface // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef LOG_H #define LOG_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ #ifdef NDEBUG #define TRACE(...) #else #define STRINGIZE(x) DO_STRINGIZE(x) #define DO_STRINGIZE(x) #x // TODO: DANGEROUS MACRO ! Passing custom client string as format to printf(). // May be cause of SIGSEGV #define TRACE(...) {\ NST::utils::Log::message(__FILE__ ":" STRINGIZE(__LINE__) ": " __VA_ARGS__);\ NST::utils::Log::message("\n");\ NST::utils::Log::flush();\ } #endif #define LOG(...) {\ NST::utils::Log::message(__VA_ARGS__);\ NST::utils::Log::message("\n");\ } #define LOGONCE(...) {\ static bool notyet = true; \ if(notyet) { LOG(__VA_ARGS__); notyet = false; }\ } //------------------------------------------------------------------------------ namespace NST { namespace utils { class Log : private std::stringbuf, public std::ostream { public: // helper for creation and destruction logging subsystem // isn't thread-safe! struct Global { explicit Global(const std::string& file_path); ~Global(); Global(const Global&) = delete; Global& operator=(const Global&) = delete; void reopen(); private: std::string log_file_path; }; Log(); ~Log(); Log(const Log&) = delete; Log& operator=(const Log&) = delete; // lightweight logging static void message(const char* format, ...); static void flush(); private: char buffer[256]; }; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//LOG_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/out.cpp000066400000000000000000000031471261713114600165720ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: User output // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include "utils/out.h" //------------------------------------------------------------------------------ namespace NST { namespace utils { static Out::Level global = Out::Level::Info; Out::Global::Global(const Level verbose_level) { global = verbose_level; } Out::Global::~Global() { } Out::Level Out::Global::get_level() { return global; } void Out::Global::set_level(Out::Level l) { global = l; } Out::Out(Level level) : std::ostream{ (global >= level) ? std::cout.rdbuf() : nullptr } { } Out::~Out() { std::ostream::put('\n'); } } // namespace utils } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/out.h000066400000000000000000000044011261713114600162310ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Interface to print out user information // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef OUT_H #define OUT_H //------------------------------------------------------------------------------ #include //------------------------------------------------------------------------------ namespace NST { namespace utils { class Out : public std::ostream { public: enum class Level : int // verbosity level { Silent = 0, Info = 1, All = 2, }; // helper for creation and destruction global level of verbosity struct Global { explicit Global(const Level verbose_level); ~Global(); Global(const Global&) = delete; Global& operator=(const Global&) = delete; static Level get_level(); // return global level of verbosity static void set_level(Level); // set global level of verbosity }; explicit Out(Level level=Level::Info); // verbose level of message ~Out(); Out(const Out&) = delete; Out& operator=(const Out&) = delete; }; inline bool operator >=(const Out::Level a, const Out::Level b) { return (int)a >= (int)b; } } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//OUT_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/profiler.h000066400000000000000000000063311261713114600172500ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Profiler class. // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef PROFILER_H #define PROFILER_H //------------------------------------------------------------------------------ #include #include #include #include #include //------------------------------------------------------------------------------ #ifdef PROFILING #define PROF Profiler<__COUNTER__> p(__func__) #else #define PROF #endif //------------------------------------------------------------------------------ /*! \class Profiler class. Just for profiling, it is not production! * \param id - identificator of profiler. For different functions we have to use different id * How to use? You have to insert this class in the begining of only 1 function (callback?) * ... * void function() { * Profiler<__COUNTER__> p(__func__); * // or just * PROF; * ... */ template class Profiler { const char* name = "";//!< Name of function const static size_t reservedBytes = 50 * 1000;//!< Reserved - calls count struct timespec startTime;//!< Timestamp of start function class Local { const char* name = ""; public: std::vector values; Local(const char* name) : name(name) { values.reserve(reservedBytes); } ~Local() { std::uint64_t sum = std::accumulate(values.begin(), values.end(), 0, std::plus()); std::cout << name << "(" << id << "): calls count=" << values.size() << ", avg time=" << sum / values.size() << " nanosecs" << std::endl; } }; public: /*! Constructor * \param name - name of function, which you are going to profile */ Profiler(const char* name) : name(name) { clock_gettime(CLOCK_REALTIME, &startTime); } ~Profiler() { struct timespec stopTime; clock_gettime(CLOCK_REALTIME, &stopTime); static Local local(name);// Time of vector initialization is not included into statistics local.values.push_back(stopTime.tv_nsec - startTime.tv_nsec);// Assume, that time < 1 second! } }; //------------------------------------------------------------------------------ #endif//PROFILER_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/queue.h000066400000000000000000000123711261713114600165530ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Special Queue for fixed size elements without copying them // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef QUEUE_H #define QUEUE_H //------------------------------------------------------------------------------ #include #include #include "utils/block_allocator.h" #include "utils/spinlock.h" //------------------------------------------------------------------------------ namespace NST { namespace utils { template class Queue { struct Element // an element of the queue { Element* prev; T data; }; struct ElementDeleter { inline explicit ElementDeleter() noexcept : queue{nullptr} {} inline explicit ElementDeleter(Queue* q) noexcept : queue{q} {} inline void operator()(T* const pointer) const { if(pointer /*&& queue - dont check - optimization*/) { queue->deallocate(pointer); } } Queue* queue; }; public: using Ptr = std::unique_ptr; class List // List of elements for client code { public: inline explicit List(Queue& q) : queue{&q} { ptr = queue->pop_list(); } List(const List&) = delete; List& operator=(const List&) = delete; inline ~List() { while(ptr) { free_current(); } } inline operator bool() const { return ptr; } // is empty? inline const T& data() const { return ptr->data; } // get data inline Ptr get_current() // return element and switch to next { Element* tmp {ptr}; ptr = ptr->prev; return Ptr{&tmp->data, ElementDeleter{queue}}; } inline void free_current() // deallocate element and switch to next { Element* tmp {ptr->prev}; queue->deallocate(ptr); ptr = tmp; } private: Element* ptr; Queue* queue; }; Queue(uint32_t size, uint32_t limit) : last{nullptr}, first{nullptr} { allocator.init_allocation(sizeof(Element), size, limit); } ~Queue() { List list{*this}; // deallocate items by destructor of List } inline T* allocate() { static_assert(std::is_nothrow_constructible::value, "The construction of T must not to throw any exception"); Spinlock::Lock lock{a_spinlock}; Element* e {(Element*)allocator.allocate()}; // may throw std::bad_alloc auto ptr = &(e->data); ::new(ptr)T; // only call constructor of T (placement) return ptr; } inline void deallocate(T* ptr) { ptr->~T(); // placement allocation functions syntax is used Element* e { (Element*)( ((char*)ptr) - sizeof(Element*) ) }; deallocate(e); } inline void push(T* ptr) { Element* e { (Element*)( ((char*)ptr) - sizeof(Element*) ) }; Spinlock::Lock lock{q_spinlock}; if(last) { last->prev = e; last = e; } else // queue is empty { last = first = e; } } inline Element* pop_list() // take out list of all queued elements { Element* list {nullptr}; if(last) { Spinlock::Lock lock{q_spinlock}; if(last) { list = first; last->prev = nullptr; // set end of list last = first = nullptr; } } return list; } private: // accessible from Queue::List and Queue::Ptr inline void deallocate(Element* e) { Spinlock::Lock lock{a_spinlock}; allocator.deallocate(e); } BlockAllocator allocator; Spinlock a_spinlock; // for allocate/deallocate Spinlock q_spinlock; // for queue push/pop // queue empty: last->nullptr<-first // queue filled: last->e<-e<-e<-e<-first // queue push(i): last->i<-e<-e<-e<-e<-first Element* last; Element* first; }; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//QUEUE_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/sessions.cpp000066400000000000000000000165111261713114600176300ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Structs for sessions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include // for inet_ntop(), ntohs() #include // for AF_INET/AF_INET6 #include #include "utils/out.h" #include "utils/sessions.h" //------------------------------------------------------------------------------ namespace NST { namespace utils { std::ostream& operator<<(std::ostream& out, const ApplicationSession& session); ApplicationSession::ApplicationSession(const NetworkSession& s, Direction from_client) : utils::Session (s) { if(s.direction != from_client) { //TODO: implement correct swap_src_dst() std::swap(port[0], port[1]); switch(ip_type) { case Session::IPType::v4: std::swap(ip.v4.addr[0], ip.v4.addr[1]); break; case Session::IPType::v6: std::swap(ip.v6.addr[0], ip.v6.addr[1]); break; } } // TODO: print network addresses in human readable form and // potential host name lookup may be expensive, to try to use // std::future(async | deferred, ...) and std::promise, to perform // this operation asynchronously std::stringstream stream(std::ios_base::out); stream << *this; session_str = stream.str(); } namespace { std::ostream& operator<<(std::ostream& out, const Session::Type type) { switch(type) { case Session::Type::TCP: return out << " [TCP]"; case Session::Type::UDP: return out << " [UDP]"; } return out; } void print_ipv4_port(std::ostream& out, in_addr_t ipv4, in_port_t port) { static_assert(sizeof(ipv4) == sizeof(struct in_addr), "they must be equal"); char buf[INET_ADDRSTRLEN]; const char* str {inet_ntop(AF_INET, &ipv4, buf, sizeof(buf))}; out << (str ? str : "Invalid IPv4 address") << ':' << ntohs(port); } void print_ipv6_port(std::ostream& out, const uint8_t (&ipv6)[16], in_port_t port) { static_assert(sizeof(ipv6) == sizeof(struct in6_addr),"they must be equal"); char buf[INET6_ADDRSTRLEN]; const char* str {inet_ntop(AF_INET6, ipv6, buf, sizeof(buf))}; out << (str ? str : "Invalid IPv6 address") << ':' << ntohs(port); } // TODO: getnameinfo call may be expensive template void print_sockaddr(std::ostream& out, SockAddr& addr) { char hostname[1025]; char service [65]; const int err {getnameinfo((sockaddr*)&addr, sizeof(addr), hostname, sizeof(hostname), service, sizeof(service), NI_NAMEREQD ) }; if(err == 0) { out << '(' << hostname << ':' << service << ')'; } } void print_ipv4_port_as_hostname_service(std::ostream& out, in_addr_t ipv4, in_port_t port) { sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = port; addr.sin_addr.s_addr= ipv4; print_sockaddr(out, addr); } void print_ipv6_port_as_hostname_service(std::ostream& out, const uint8_t (&ipv6)[16], in_port_t port) { sockaddr_in6 addr; addr.sin6_family = AF_INET6; addr.sin6_port = port; addr.sin6_flowinfo = 0; addr.sin6_addr = (in6_addr&)ipv6; addr.sin6_scope_id = 0; print_sockaddr(out, addr); } } // unnamed namespace std::ostream& operator<<(std::ostream& out, const Session& session) { print_session(out, session); return out; } void print_session(std::ostream& out, const Session& session) { switch(session.ip_type) { case Session::IPType::v4: { print_ipv4_port(out, session.ip.v4.addr[Session::Source], session.port [Session::Source]); out << " --> "; print_ipv4_port(out, session.ip.v4.addr[Session::Destination], session.port [Session::Destination]); } break; case Session::IPType::v6: { print_ipv6_port(out, session.ip.v6.addr[Session::Source], session.port [Session::Source]); out << " --> "; print_ipv6_port(out, session.ip.v6.addr[Session::Destination], session.port [Session::Destination]); } break; } out << session.type; } std::ostream& operator<<(std::ostream& out, const ApplicationSession& session) { const bool namelookup {Out::Global::get_level() == Out::Level::All}; switch(session.ip_type) { case Session::IPType::v4: { { auto& port = session.port [Session::Source]; auto& addr = session.ip.v4.addr[Session::Source]; print_ipv4_port(out, addr, port); if(namelookup) { print_ipv4_port_as_hostname_service(out, addr, port); } } out << " --> "; { auto& port = session.port [Session::Destination]; auto& addr = session.ip.v4.addr[Session::Destination]; print_ipv4_port(out, addr, port); if(namelookup) { print_ipv4_port_as_hostname_service(out, addr, port); } } } break; case Session::IPType::v6: { { auto& port = session.port [Session::Source]; auto& addr = session.ip.v6.addr[Session::Source]; print_ipv6_port(out, addr, port); if(namelookup) { print_ipv6_port_as_hostname_service(out, addr, port); } } out << " --> "; { auto& port = session.port [Session::Destination]; auto& addr = session.ip.v6.addr[Session::Destination]; print_ipv6_port(out, addr, port); if(namelookup) { print_ipv6_port_as_hostname_service(out, addr, port); } } } break; } out << session.type; return out; } } // namespace utils } // namespace NST //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/sessions.h000066400000000000000000000045211261713114600172730ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Pavel Karneliuk // Description: Structs for sessions. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef SESSIONS_H #define SESSIONS_H //------------------------------------------------------------------------------ #include #include #include #include "api/session.h" //------------------------------------------------------------------------------ #define NST_PUBLIC __attribute__ ((visibility("default"))) //------------------------------------------------------------------------------ namespace NST { namespace utils { using Session = NST::API::Session; // Network layer session struct NetworkSession : public Session { public: NetworkSession() : application {nullptr} , direction {Direction::Unknown} { } void* application; // pointer to application protocol implementation Direction direction; }; // Application layer session struct ApplicationSession : public Session { public: ApplicationSession(const NetworkSession& s, Direction from_client); const std::string& str() const { return session_str; } private: std::string session_str; }; extern "C" NST_PUBLIC void print_session(std::ostream& out, const Session& session); std::ostream& operator<<(std::ostream& out, const Session& session); } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//SESSIONS_H //------------------------------------------------------------------------------ nfstrace-0.4.1/src/utils/spinlock.h000066400000000000000000000042251261713114600172500ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Yauheni Azaranka // Description: Wrapper for pthread spinlock. It implements BasicLockable concept. // Copyright (c) 2013 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #ifndef SPINLOCK_H #define SPINLOCK_H //------------------------------------------------------------------------------ #include // for std::lock_guard #include //------------------------------------------------------------------------------ namespace NST { namespace utils { class Spinlock { public: Spinlock() noexcept { pthread_spin_init(&spinlock, PTHREAD_PROCESS_PRIVATE); } Spinlock(const Spinlock&) = delete; Spinlock& operator=(const Spinlock&) = delete; ~Spinlock() noexcept { pthread_spin_destroy(&spinlock); } bool try_lock() noexcept { return 0 == pthread_spin_trylock(&spinlock); } void lock() noexcept { pthread_spin_lock(&spinlock); } void unlock() noexcept { pthread_spin_unlock(&spinlock); } using Lock = std::lock_guard; private: mutable pthread_spinlock_t spinlock; }; } // namespace utils } // namespace NST //------------------------------------------------------------------------------ #endif//SPINLOCK_H //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/000077500000000000000000000000001261713114600144655ustar00rootroot00000000000000nfstrace-0.4.1/tests/CMakeLists.txt000066400000000000000000000000661261713114600172270ustar00rootroot00000000000000add_subdirectory (functional) add_subdirectory (unit) nfstrace-0.4.1/tests/functional/000077500000000000000000000000001261713114600166275ustar00rootroot00000000000000nfstrace-0.4.1/tests/functional/CMakeLists.txt000066400000000000000000000024341261713114600213720ustar00rootroot00000000000000set (ANALYZER "breakdown") set (CHECK_TRACE_SCRIPT_BASE "check-compressed-trace") set (CHECK_TRACE_SCRIPT "${CHECK_TRACE_SCRIPT_BASE}-${ANALYZER}.sh") configure_file ("${CHECK_TRACE_SCRIPT_BASE}.sh.in" "${CHECK_TRACE_SCRIPT}") set (CHECK_DRANE_SCRIPT_BASE "check-compressed-drane") set (CHECK_DRANE_SCRIPT "${CHECK_DRANE_SCRIPT_BASE}-${ANALYZER}.sh") configure_file ("${CHECK_DRANE_SCRIPT_BASE}.sh.in" "${CHECK_DRANE_SCRIPT}") set (CHECK_OUTPUT_SCRIPT_BASE "check-output") set (CHECK_OUTPUT_SCRIPT "${CHECK_OUTPUT_SCRIPT_BASE}-${ANALYZER}.sh") configure_file ("${CHECK_OUTPUT_SCRIPT_BASE}.sh.in" "${CHECK_OUTPUT_SCRIPT}") # Adding trace/drane/output tests for each .pcap.bz2 trace file (GLOB traces "${CMAKE_SOURCE_DIR}/traces/*.pcap.bz2") foreach (trace ${traces}) get_filename_component (name ${trace} NAME) get_filename_component (path ${trace} PATH) set (result ${CMAKE_BINARY_DIR}/Testing/Temporary/${name}-${ANALYZER}.res) set (reference ${path}/references/${ANALYZER}/${name}.ref) add_test (NAME functional_stat:${name} COMMAND sh ${CHECK_TRACE_SCRIPT} ${trace} ${result} ${reference}) add_test (NAME functional_drain:${name} COMMAND sh ${CHECK_DRANE_SCRIPT} ${trace} ${result} ${reference}) add_test (NAME functional_out:${name} COMMAND sh ${CHECK_OUTPUT_SCRIPT} ${trace}) endforeach () nfstrace-0.4.1/tests/functional/check-compressed-drane.sh.in000066400000000000000000000004151261713114600240760ustar00rootroot00000000000000bzcat $1 | '${CMAKE_BINARY_DIR}/${PROJECT_NAME}' --mode=drain -I - -O - -v 0 --log=drain.logfile.log | \ '${CMAKE_BINARY_DIR}/${PROJECT_NAME}' --mode=stat -a '${CMAKE_BINARY_DIR}/analyzers/lib${ANALYZER}.so' -I - -v 0 --log=stat.logfile.log >$2 diff -uN $3 $2 exit $? nfstrace-0.4.1/tests/functional/check-compressed-trace.sh.in000066400000000000000000000002271261713114600241040ustar00rootroot00000000000000bzcat $1 | '${CMAKE_BINARY_DIR}/${PROJECT_NAME}' --mode=stat -a '${CMAKE_BINARY_DIR}/analyzers/lib${ANALYZER}.so' -I - -v 0 >$2 diff -uN $3 $2 exit $? nfstrace-0.4.1/tests/functional/check-output.sh.in000066400000000000000000000003441261713114600222040ustar00rootroot00000000000000bzcat $1 | '${CMAKE_BINARY_DIR}/${PROJECT_NAME}' --mode=stat -v 2 -T -a '${CMAKE_BINARY_DIR}/analyzers/lib${ANALYZER}.so' -I - -O - | \ grep --color='auto' -P -n '[^\x00-\x7F]' | wc -c | awk '{ if($1 != 0) exit 1 ; exit 0 }'; nfstrace-0.4.1/tests/unit/000077500000000000000000000000001261713114600154445ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/CMakeLists.txt000066400000000000000000000022351261713114600202060ustar00rootroot00000000000000if ("${GMOCK_SOURCE_DIR}" STREQUAL "") message (WARNING "GMOCK_SOURCE_DIR variable not set - unit-tests are not available. Use '-DGMOCK_SOURCE_DIR=' param for CMake") else () # Clang and GCC 4.9+ cause errors on GMock/GTest compilation, so we are adding following flags to suppress them set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-private-field") endif () set (gmock_force_shared_crt true CACHE INTERNAL "") set (BUILD_SHARED_LIBS false CACHE INTERNAL "") add_definitions (-DGTEST_HAS_PTHREAD=1) # It fixes BUG in GTests in BSD add_subdirectory (${GMOCK_SOURCE_DIR} ${CMAKE_BINARY_DIR}/gmock) set (GMOCK_LIBRARIES gmock gmock_main) set (GMOCK_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/include" "${GMOCK_SOURCE_DIR}/gtest/include" "${GMOCK_SOURCE_DIR}") include_directories (${CMAKE_SOURCE_DIR}/src ${GMOCK_INCLUDE_DIRS}) add_subdirectory (utils) add_subdirectory (analyzers) add_subdirectory (protocols) add_subdirectory (filtration) endif () nfstrace-0.4.1/tests/unit/analyzers/000077500000000000000000000000001261713114600174545ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/analyzers/CMakeLists.txt000066400000000000000000000013451261713114600222170ustar00rootroot00000000000000add_subdirectory (breakdown) project (unit_test_parse) aux_source_directory ("." SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs2 SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/netbios SRC_TEST_LIST) add_executable (${PROJECT_NAME} ${SRC_TEST_LIST} ${CMAKE_SOURCE_DIR}/src/analysis/cifs_parser.cpp ${CMAKE_SOURCE_DIR}/src/utils/out.cpp ${CMAKE_SOURCE_DIR}/src/utils/log.cpp ${CMAKE_SOURCE_DIR}/src/utils/sessions.cpp ) target_link_libraries (${PROJECT_NAME} ${GMOCK_LIBRARIES}) add_test (${PROJECT_NAME} ${PROJECT_NAME}) nfstrace-0.4.1/tests/unit/analyzers/breakdown/000077500000000000000000000000001261713114600214305ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/analyzers/breakdown/CMakeLists.txt000066400000000000000000000013231261713114600241670ustar00rootroot00000000000000project (unit_test_breakdown) aux_source_directory ("." SRC_LIST) aux_source_directory ("${CMAKE_SOURCE_DIR}/analyzers/src/breakdown" SRC_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs SRC_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs SRC_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs3 SRC_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs4 SRC_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/utils SRC_LIST) add_executable(${PROJECT_NAME} ${SRC_LIST}) include_directories ("${CMAKE_SOURCE_DIR}/analyzers/src/breakdown/") target_link_libraries (${PROJECT_NAME} ${GMOCK_LIBRARIES} ${CMAKE_DL_LIBS}) add_test (${PROJECT_NAME} ${PROJECT_NAME}) nfstrace-0.4.1/tests/unit/analyzers/breakdown/breakdown.cpp000066400000000000000000000040461261713114600241140ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Unit tests // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include "breakdowncounter.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class BreakdownTest : public ::testing::Test { protected: size_t count; timeval t; public: void SetUp() { std::srand(std::time(0)); //use current time as seed for random generator count = std::rand() % 100 + 3; } void TearDown() { } }; } //------------------------------------------------------------------------------ TEST_F(BreakdownTest, count) { BreakdownCounter break_down(count); EXPECT_EQ(0U, break_down.get_total_count()); break_down[1].add(t); break_down[1].add(t); break_down[0].add(t); EXPECT_EQ(3U, break_down.get_total_count()); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/analyzers/breakdown/latency.cpp000066400000000000000000000070551261713114600236020ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Unit tests // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include "latencies.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class LatencyTest : public ::testing::Test { protected: size_t count; timeval t1; timeval t2; public: void SetUp() { t1.tv_sec = 10; t2.tv_sec = 2; t1.tv_usec = 12; t2.tv_usec = 4; std::srand(std::time(0)); //use current time as seed for random generator count = std::rand() % 100 + 3; } void TearDown() { } }; } //------------------------------------------------------------------------------ TEST_F(LatencyTest, max_min) { Latencies latency; EXPECT_EQ(0U, latency.get_count()); latency.add(t1); latency.add(t2); EXPECT_EQ(2U, latency.get_count()); EXPECT_EQ(t2.tv_sec, latency.get_min().tv_sec); EXPECT_EQ(t2.tv_usec, latency.get_min().tv_usec); EXPECT_EQ(t1.tv_sec, latency.get_max().tv_sec); EXPECT_EQ(t1.tv_usec, latency.get_max().tv_usec); } TEST_F(LatencyTest, avg) { Latencies latency; EXPECT_EQ(0.0, latency.get_avg()); latency.add(t1); EXPECT_NEAR(10.0, latency.get_avg(), 0.0001); latency.add(t2); EXPECT_NEAR(6.0, latency.get_avg(), 0.0001); } TEST_F(LatencyTest, convert_timeval_to_sec) { /* This test checks to_sec() function and rounding its result to smaller * precision via std::ios_base::precision() * * Background: * The sizeof(long double) may be different on some platforms. F.e.: * on Linux x86_64 the sizeof(long double) == 16 and == 10 on x86 or mips * So, binary representation of the same value are different. Result of * rounding a value to lower precision may be different. * * We use conversion to double (its sizeof is 8) in to_sec() for more * predictable conversions and rounding on various platforms. */ struct timeval input; input.tv_sec = 0; input.tv_usec = 500; const auto sec = to_sec(input); EXPECT_NEAR(0.0005, sec, std::numeric_limits::epsilon()); std::stringstream ss; ss.precision(6); ss << std::fixed << sec << ' '; ss.precision(4); ss << std::fixed << sec << ' '; ss.precision(3); ss << std::fixed << sec; EXPECT_EQ("0.000500 0.0005 0.001", ss.str()); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/analyzers/breakdown/statistic.cpp000066400000000000000000000066251261713114600241540ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Unit tests // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include #include #include "statistics.h" //------------------------------------------------------------------------------ using namespace NST::breakdown; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class StatisticTest : public ::testing::Test { protected: size_t count; public: void SetUp() { std::srand(std::time(0)); //use current time as seed for random generator count = std::rand() % 100 + 3; } void TearDown() { } }; class Mock { public: MOCK_METHOD0(mock_function, void(void)); }; class Proc { public: Proc() : session(&_session) , rtimestamp(&_rtimestamp) , ctimestamp(&_ctimestamp) { } Session _session; timeval _rtimestamp; timeval _ctimestamp; const Session* session; const timeval* rtimestamp; const timeval* ctimestamp; }; } //------------------------------------------------------------------------------ TEST_F(StatisticTest, statistics) { Statistics stats(count); EXPECT_EQ(count, stats.proc_types_count); Mock each_procedure_mock; EXPECT_CALL(each_procedure_mock, mock_function()) .Times(count); stats.for_each_procedure([&](const BreakdownCounter&, size_t) { each_procedure_mock.mock_function(); }); } TEST_F(StatisticTest, sessions_statistics) { Statistics stats(count); Mock each_procedure_mock; Proc proc; EXPECT_CALL(each_procedure_mock, mock_function()) .Times(1); EXPECT_FALSE(stats.has_session()); stats.account(&proc, 0); EXPECT_TRUE(stats.has_session()); stats.for_each_session([&](const Session&) { each_procedure_mock.mock_function(); }); } TEST_F(StatisticTest, statistics_per_session) { Statistics stats(count); Mock each_procedure_mock; Proc proc; EXPECT_CALL(each_procedure_mock, mock_function()) .Times(count); stats.for_each_procedure_in_session(proc._session, [&](const BreakdownCounter&, size_t) { each_procedure_mock.mock_function(); }); stats.account(&proc, 1); stats.for_each_procedure_in_session(proc._session, [&](const BreakdownCounter&, size_t) { each_procedure_mock.mock_function(); }); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/analyzers/cifs.cpp000066400000000000000000000120231261713114600211020ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Parsers tests // Copyright (c) 2015 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include "analysis/analyzers.h" #include "analysis/cifs_parser.h" #include "api/cifs_types.h" #include "api/cifs_pc_to_net.h" #include "api/cifs2_commands.h" //------------------------------------------------------------------------------ using namespace NST::filtration; using namespace NST::analysis; using namespace NST::controller; using namespace NST::utils; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class PluginMock : public IAnalyzer { public: // ISMBv2 interface MOCK_METHOD3(readSMBv2, void(const SMBv2::ReadCommand *, const NST::API::SMBv2::ReadRequest *, const NST::API::SMBv2::ReadResponse *)); // IAnalyzer interface void flush_statistics() {} }; PluginMock* pluginMock;// pointer to mock } //------------------------------------------------------------------------------ Analyzers::Analyzers(const controller::Parameters& /*params*/) { this->modules.push_back(pluginMock); } //------------------------------------------------------------------------------ Parameters::Parameters(int /*argc*/, char** /*argv*/) {} Parameters::~Parameters() {} bool Parameters::show_help() const { return false; } bool Parameters::show_enum() const { return false; } const std::string& Parameters::program_name() const { static std::string s(""); return s; } RunningMode Parameters::running_mode() const { return RunningMode::Analysis; } std::string Parameters::input_file() const { return ""; } const std::string Parameters::dropuser() const { return ""; } const std::string Parameters::log_path() const { return ""; } unsigned short Parameters::queue_capacity() const { return 0; } bool Parameters::trace() const { return false; } int Parameters::verbose_level() const { return 0; } const NST::filtration::pcap::CaptureReader::Params Parameters::capture_params() const { return NST::filtration::pcap::CaptureReader::Params(); } const NST::filtration::Dumping::Params Parameters::dumping_params() const { return NST::filtration::Dumping::Params(); } const std::vector& Parameters::analysis_modules() const { static std::vector Parameters; return Parameters; } unsigned short Parameters::rpcmsg_limit() { return 0; } //------------------------------------------------------------------------------ const std::string Plugin::usage_of(const std::string& /*path*/) { return ""; } DynamicLoad::DynamicLoad(const std::string &/*file*/) {} DynamicLoad::~DynamicLoad() {} template void load_address_of(const std::string& /*name*/, plugin_get_entry_points_func& /*address*/) {} Plugin::Plugin(const std::string& path) : DynamicLoad(path) {} PluginInstance::PluginInstance(const std::string& path, const std::string& /*args*/) : Plugin(path) {} PluginInstance::~PluginInstance() {} //------------------------------------------------------------------------------ TEST(Parser, CIFSAsyncParser) { pluginMock = new PluginMock; NST::controller::Parameters params(0, nullptr); Analyzers analyzers(params); NST::utils::FilteredDataQueue queue(1, 1); NST::utils::FilteredData* data = queue.allocate(); NetworkSession s; data->session = &s; queue.push(data); NST::utils::FilteredDataQueue::List list(queue); NST::utils::FilteredDataQueue::Ptr el = list.get_current(); CIFSv2::MessageHeader header; header.head_code = NST::API::SMBv2::pc_to_net(0x424d53fe);// Protocol's marker header.cmd_code = NST::API::SMBv2::SMBv2Commands::READ; header.flags = static_cast(CIFSv2::Flags::ASYNC_COMMAND); el->data = reinterpret_cast(&header); el->dlen = sizeof(header); CIFSParser parser(analyzers); // Set conditions EXPECT_CALL(*pluginMock, readSMBv2(_, _, _)) .Times(1); // Do parser.parse_data(el); delete pluginMock; } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/filtration/000077500000000000000000000000001261713114600176175ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/filtration/CMakeLists.txt000066400000000000000000000012271261713114600223610ustar00rootroot00000000000000project (unit_test_filtration) aux_source_directory ("." SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs2 SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/netbios SRC_TEST_LIST) add_executable (${PROJECT_NAME} ${SRC_TEST_LIST} ${CMAKE_SOURCE_DIR}/src/utils/out.cpp ${CMAKE_SOURCE_DIR}/src/utils/log.cpp ${CMAKE_SOURCE_DIR}/src/utils/sessions.cpp ) target_link_libraries (${PROJECT_NAME} ${GMOCK_LIBRARIES}) add_test (${PROJECT_NAME} ${PROJECT_NAME}) nfstrace-0.4.1/tests/unit/filtration/cifsv2.cpp000066400000000000000000000134651261713114600215300ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Composite filtrator tests // Copyright (c) 2013-2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include "controller/running_status.h" #include "filtration/filtration_processor.h" #include "filtration/cifs_filtrator.h" #include "filtration/filtrators.h" #include "filtration/packet.h" //------------------------------------------------------------------------------ using namespace NST::filtration; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class Writer { public: class Collection { Collection* pImpl = nullptr; public: void set(Writer& w, NST::utils::NetworkSession* /*session_ptr*/) { pImpl = &w.collection; } virtual void reset() { if (pImpl) { pImpl->reset(); } } virtual void push(PacketInfo& info, size_t size) { if (pImpl) { pImpl->push(info, size); } } virtual void skip_first(size_t size) { if (pImpl) { pImpl->skip_first(size); } } virtual void complete(PacketInfo& info) { if (pImpl) { pImpl->complete(info); } } operator bool() { return true; } virtual const uint8_t* data() { if (pImpl) { return pImpl->data(); } return nullptr; } virtual size_t data_size() { if (pImpl) { return pImpl->data_size(); } return 0; } virtual size_t capacity() { if (pImpl) { return pImpl->capacity(); } return 0; } virtual void allocate() { if (pImpl) { pImpl->allocate(); } } }; class CollectionMock : public Collection { public: MOCK_METHOD0(reset, void()); MOCK_METHOD2(push, void(PacketInfo&, size_t)); MOCK_METHOD0(data, const uint8_t* ()); MOCK_METHOD0(data_size, size_t()); MOCK_METHOD0(capacity, size_t()); MOCK_METHOD0(allocate, void()); MOCK_METHOD1(skip_first, void(size_t)); MOCK_METHOD1(complete, void(PacketInfo&)); }; CollectionMock collection; }; } TEST(Filtration, CIFSFiltratorReset) { // Set conditions Writer mock; EXPECT_CALL(mock.collection, reset()) .Times(1); CIFSFiltrator f; f.set_writer(nullptr, &mock, 0); // Check f.reset(); } TEST(Filtration, filtratorsResets) { // Set conditions Writer mock; EXPECT_CALL(mock.collection, reset()) .Times(2); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.reset(); } TEST(Filtration, pushRPCheader) { // Prepare data struct pcap_pkthdr header; header.caplen = header.len = 16; const uint8_t packet[] = {0x80, 0x00, 0x00, 0x84, 0xec, 0x8a, 0x42, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }; PacketInfo info(&header, packet, 0); Writer mock; EXPECT_CALL(mock.collection, data()) .WillRepeatedly(Return(packet)); EXPECT_CALL(mock.collection, data_size()) .WillOnce(Return(0)) .WillOnce(Return(0)) .WillRepeatedly(Return(sizeof(packet))); EXPECT_CALL(mock.collection, capacity()) .WillRepeatedly(Return(1000000)); // Set conditions EXPECT_CALL(mock.collection, push(_, _)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info); } TEST(Filtration, pushCIFSheader) { // Prepare data struct pcap_pkthdr header; header.caplen = header.len = 16; const uint8_t packet[] = {0x00, 0x00, 0x00, 0x68, 0xfe, 0x53, 0x4d, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; PacketInfo info(&header, packet, 0); Writer mock; EXPECT_CALL(mock.collection, data()) .WillRepeatedly(Return(packet)); EXPECT_CALL(mock.collection, data_size()) .WillOnce(Return(0)) .WillOnce(Return(0)) .WillRepeatedly(Return(sizeof(packet))); EXPECT_CALL(mock.collection, capacity()) .WillRepeatedly(Return(1000000)); // Set conditions EXPECT_CALL(mock.collection, push(_, _)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/filtration/stream.cpp000066400000000000000000000300351261713114600216170ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: Composite filtrator tests // Copyright (c) 2013-2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include "controller/running_status.h" #include "filtration/filtration_processor.h" #include "filtration/cifs_filtrator.h" #include "filtration/filtrators.h" #include "filtration/packet.h" //------------------------------------------------------------------------------ using namespace NST::filtration; using ::testing::Return; using ::testing::AtLeast; using ::testing::_; //------------------------------------------------------------------------------ namespace { class Writer { public: class Collection { std::vector packet; Collection *pImpl = nullptr; public: void set(Writer& w, NST::utils::NetworkSession* /*session_ptr*/) { pImpl = &w.collection; } virtual void reset() { packet.clear(); } virtual void push(PacketInfo& info, size_t size) { std::copy(info.data, info.data + size, std::back_inserter(packet)); } virtual void skip_first(size_t) { } virtual void complete(PacketInfo& info) { if (pImpl) { pImpl->complete(info); } } operator bool() { return true; } virtual const uint8_t * data() { return packet.data(); } virtual size_t data_size() { return packet.size(); } virtual size_t capacity() { return 1000000; } virtual void allocate() { } }; class CollectionMock : public Collection { public: MOCK_METHOD0(reset, void()); MOCK_METHOD2(push, void(PacketInfo&, size_t)); MOCK_METHOD0(data, const uint8_t *()); MOCK_METHOD0(data_size, size_t()); MOCK_METHOD1(complete, void(PacketInfo&)); }; CollectionMock collection; }; } TEST(Filtration, pushCIFSbyTCPStream) { // Prepare data struct pcap_pkthdr header; header.caplen = header.len = 132; const uint8_t packet[] = {0x00, 0x00, 0x00, 0x80, 0xfe, 0x53, 0x4d, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; PacketInfo info(&header, packet, 0); Writer mock; // Set conditions EXPECT_CALL(mock.collection, complete(_)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info); } TEST(Filtration, pushCIFSbyTCPStreamPartByPart) { // Prepare data struct pcap_pkthdr header1; header1.caplen = header1.len = 3; const uint8_t packet[] = {0x00, 0x00, 0x00, 0x80, 0xfe, 0x53, 0x4d, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; PacketInfo info1(&header1, packet, 0); struct pcap_pkthdr header2; header2.caplen = header2.len = sizeof(packet) - header1.len; PacketInfo info2(&header2, packet + header1.len, 0); Writer mock; // Set conditions EXPECT_CALL(mock.collection, complete(_)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info1); f.push(info2); } TEST(Filtration, pushRPCbyTCPStream) { // Prepare data struct pcap_pkthdr header; header.caplen = header.len = 132; const uint8_t packet[] = {0x80, 0x00, 0x00, 0x80, 0xec, 0x8a, 0x42, 0xcb, 0x00, 0x00, 0x00, 0x00,// msg type - call 0x00, 0x00, 0x00, 0x02,// RPC version 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; PacketInfo info(&header, packet, 0); Writer mock; // Set conditions EXPECT_CALL(mock.collection, complete(_)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info); } TEST(Filtration, pushRPCbyTCPStreamPartByPart) { // Prepare data struct pcap_pkthdr header1; header1.caplen = header1.len = 3; const uint8_t packet[] = {0x80, 0x00, 0x00, 0x80, 0xec, 0x8a, 0x42, 0xcb, 0x00, 0x00, 0x00, 0x00,// msg type - call 0x00, 0x00, 0x00, 0x02,// RPC version 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; PacketInfo info1(&header1, packet, 0); struct pcap_pkthdr header2; header2.caplen = header2.len = sizeof(packet) - header1.len; PacketInfo info2(&header2, packet + header1.len, 0); Writer mock; // Set conditions EXPECT_CALL(mock.collection, complete(_)) .Times(AtLeast(1)); Filtrators f; f.set_writer(nullptr, &mock, 0); // Check f.push(info1); f.push(info2); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/protocols/000077500000000000000000000000001261713114600174705ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/protocols/CMakeLists.txt000066400000000000000000000007771261713114600222430ustar00rootroot00000000000000project (unit_test_protocols) aux_source_directory ("." SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/cifs2/ SRC_TEST_LIST) aux_source_directory (${CMAKE_SOURCE_DIR}/src/protocols/nfs/ SRC_TEST_LIST) add_executable (${PROJECT_NAME} ${SRC_TEST_LIST} ${CMAKE_SOURCE_DIR}/src/utils/out.cpp ${CMAKE_SOURCE_DIR}/src/utils/log.cpp ${CMAKE_SOURCE_DIR}/src/utils/sessions.cpp ) target_link_libraries (${PROJECT_NAME} ${GMOCK_LIBRARIES}) add_test (${PROJECT_NAME} ${PROJECT_NAME}) nfstrace-0.4.1/tests/unit/protocols/cifsv2.cpp000066400000000000000000000114251261713114600213730ustar00rootroot00000000000000//------------------------------------------------------------------------------ // Author: Andrey Kuznetsov // Description: CIFS v2 tests // Copyright (c) 2013-2014 EPAM Systems //------------------------------------------------------------------------------ /* This file is part of Nfstrace. Nfstrace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License. Nfstrace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Nfstrace. If not, see . */ //------------------------------------------------------------------------------ #include #include #include #include "api/cifs2_commands.h" #include "api/cifs_commands.h" #include "protocols/cifs2/cifs2.h" //------------------------------------------------------------------------------ using namespace NST::API::SMBv2; using namespace NST::protocols::CIFSv2; //------------------------------------------------------------------------------ TEST(CIFSv2, check_CIFS_constants_helpers) { // pc_to_net<> should transform constant to LE byte order. // This test checks conversion of constants to host representation of ui32 // ui16 words written in LE byte order format. // UseCase: CIFSv1/CIFSv2 uses LE byteorder for encoding fields of messages // in network traffic. These messages may be read on BE platform and should // be compared with constants with corresponded BE byte order. union TestData { std::uint64_t ui64; std::uint32_t ui32; std::uint16_t ui16; std::uint8_t bytes[8]; } data; constexpr auto cui64 = pc_to_net(0x0011223344556677); data.ui64 = cui64; EXPECT_EQ(data.bytes[0], 0x77); EXPECT_EQ(data.bytes[1], 0x66); EXPECT_EQ(data.bytes[2], 0x55); EXPECT_EQ(data.bytes[3], 0x44); EXPECT_EQ(data.bytes[4], 0x33); EXPECT_EQ(data.bytes[5], 0x22); EXPECT_EQ(data.bytes[6], 0x11); EXPECT_EQ(data.bytes[7], 0x00); constexpr auto cui32 = pc_to_net(0xAABBCCDD); data.ui32 = cui32; EXPECT_EQ(data.bytes[0], 0xDD); EXPECT_EQ(data.bytes[1], 0xCC); EXPECT_EQ(data.bytes[2], 0xBB); EXPECT_EQ(data.bytes[3], 0xAA); constexpr auto cui16 = pc_to_net(0xEEFF); data.ui16 = cui16; EXPECT_EQ(data.bytes[0], 0xFF); EXPECT_EQ(data.bytes[1], 0xEE); } TEST(CIFSv2, bodies) { EXPECT_EQ(36u, sizeof(struct NegotiateRequest) - sizeof(Dialects)); EXPECT_EQ(65u, sizeof(struct NegotiateResponse)); EXPECT_EQ(25u, sizeof(struct SessionSetupRequest)); EXPECT_EQ(9u, sizeof(struct SessionSetupResponse)); EXPECT_EQ(4u, sizeof(struct LogOffRequest)); EXPECT_EQ(4u, sizeof(struct LogOffResponse)); EXPECT_EQ(4u, sizeof(struct EchoRequest)); EXPECT_EQ(4u, sizeof(struct EchoResponse)); EXPECT_EQ(9u, sizeof(struct TreeConnectRequest)); EXPECT_EQ(16u, sizeof(struct TreeConnectResponse)); EXPECT_EQ(4u, sizeof(struct TreeDisconnectRequest)); EXPECT_EQ(4u, sizeof(struct TreeDisconnectResponse)); EXPECT_EQ(57u, sizeof(struct CreateRequest)); EXPECT_EQ(89u, sizeof(struct CreateResponse)); EXPECT_EQ(24u, sizeof(struct CloseRequest)); EXPECT_EQ(60u, sizeof(struct CloseResponse)); EXPECT_EQ(41u, sizeof(struct QueryInfoRequest)); EXPECT_EQ(9u, sizeof(struct QueryInfoResponse)); EXPECT_EQ(33u, sizeof(struct QueryDirRequest)); EXPECT_EQ(9u, sizeof(struct QueryDirResponse)); EXPECT_EQ(24u, sizeof(struct FlushRequest)); EXPECT_EQ(4u, sizeof(struct FlushResponse)); EXPECT_EQ(49u, sizeof(struct ReadRequest)); EXPECT_EQ(17u, sizeof(struct ReadResponse)); EXPECT_EQ(24u, sizeof(struct OplockAcknowledgment)); EXPECT_EQ(24u, sizeof(struct OplockResponse)); EXPECT_EQ(49u, sizeof(struct WriteRequest)); EXPECT_EQ(16u, sizeof(struct WriteResponse)); EXPECT_EQ(48u, sizeof(struct LockRequest)); EXPECT_EQ(4u, sizeof(struct LockResponse)); EXPECT_EQ(4u, sizeof(struct CancelRequest)); EXPECT_EQ(32u, sizeof(struct ChangeNotifyRequest)); EXPECT_EQ(8u + sizeof(struct FileNotifyInformation), sizeof(struct ChangeNotifyResponse)); EXPECT_EQ(57u, sizeof(struct IoCtlRequest)); EXPECT_EQ(49u, sizeof(struct IoCtlResponse)); EXPECT_EQ(33u, sizeof(struct SetInfoRequest)); EXPECT_EQ(2u, sizeof(struct SetInfoResponse)); } //------------------------------------------------------------------------------ nfstrace-0.4.1/tests/unit/utils/000077500000000000000000000000001261713114600166045ustar00rootroot00000000000000nfstrace-0.4.1/tests/unit/utils/CMakeLists.txt000066400000000000000000000003331261713114600213430ustar00rootroot00000000000000project (unit_test_utils) aux_source_directory ("." SRC_TEST_LIST) add_executable (${PROJECT_NAME} ${SRC_TEST_LIST}) target_link_libraries (${PROJECT_NAME} ${GMOCK_LIBRARIES}) add_test (${PROJECT_NAME} ${PROJECT_NAME}) nfstrace-0.4.1/tests/unit/utils/filtered_data.cpp000066400000000000000000000002471261713114600221020ustar00rootroot00000000000000#include #include #include TEST(FilteredData, construct) { EXPECT_NO_THROW(NST::utils::FilteredData()); } nfstrace-0.4.1/traces/000077500000000000000000000000001261713114600146045ustar00rootroot00000000000000nfstrace-0.4.1/traces/1-packet.pcap.bz2000066400000000000000000000004141261713114600175510ustar00rootroot00000000000000BZh91AY&SY=p)`ZA)*Nd@ܠ|!":÷ǜ"& *8+U u  `=DɼMWs"<9G!ȊA͎H nfstrace-0.4.1/traces/2sessions-tcp-wsize32k-tcp-wsize512k.pcap.bz2000066400000000000000000013047751261713114600247070ustar00rootroot00000000000000BZh91AY&SYk-q3}h]4@eIP J@;e W+]" ـzP-y9۪%MA H N(8 T* lX*TI *PE!G'c{D Q;ہpbhҀ[жvcajD:r(4mlwpl H(=6;0Hdh] ;x@$9ݹE$(ph.=qvG-C sض `w;@l!l\a{3af `44 ۺW0P(`b :Pm 0& ; J@l1P H l2PWc P%BT%!eBTJD" Hk!!qe,4Qf %z%*`/AθTu7jVeƬI+i-k#L@{;D`ws6jAXtt6a6^&l3adV.Wc; {v$7[ lT lJ /0ȣFR;责UGH4j4ѦMAPF&ڑ@*@~T Tb~IH4`&Q3S4I75?T%6S&iLOS~OoJOޕUT"" CM24@4&4h$&` 4*B"3Tf(g1 =IQet3P Aa~ nռ kGgyW@xlE}#ݷՒşB^7tl0To]k~m*ªFԢG%A7ܗUzM6F E-{_jmyh9Gn#T,-ixW3V no[@U4oɨ*U&W~Yo^gwG,})j\+__F.*V ]srٴ]b7'yKh~k; L,9)bTyƫ#īVs2ӺO-XfrX A](/`P?m%2;vqK t? 3g9֤j紩/As7߼jmܰ js2YϷ6ٮ{Tb0Spr5uz,]v==]2[D}%sW]¦6OOGm\ չ wvo@dr1>wkg!`&']"lS5U;-c}^,%APMbbw6Wj,#W^SLˌ\g2L:4SފnY`ϢˠݞtmVt?.^[R0Ѯ:$z}GK:}Z@~|%RKiujޝ1޺S&hѧ^)n3GsՇr|6w&zZu廋6HVUx#L/vDTuH=8o*y:X ;[DZmu&5:>5 `bqƞ_#o GYh 靭D,얻(U&GcФp l;揮Mr_'vôPvkEW\3?B @}G~Fkv=TWi`WP._%ciA`wwl"=S|}þKW=)Gѽ; cK6\g#ߎṞoCo[ O{dj^?,6SoШxImXp*H[^3/ޢË}&57-PJ<>B=Kgyc]8ՅrYv&5b2.?bq\ǢI?0E*2vپo_lo~O{;Cyʍ_'g5<_t{j:C3KNz5{J赵_gϺeu4jn?4>Inx-ƳRmᦙ,^}oJ w7;9JE/AN%*[l_]kA31/yv{]^kvqwCwfFo/I\&= a1%t׶E<7XAe;^ʕ҃#=ώ9;=WEw/Ϩ;&|=³6F&F.{s^,o.0}%u6e"ǨGgsVy>NzqY+,Z_m=%o9:U61nfI%(GcnuלG[ D=—jWxmNŭ' k_rmV:k7$W)r==uٮ֥ϼ32mջ},EnT9Wͯzޞ'c!/-h[| gxB|*. >6@{{7OťkEѿy+6]ԗ@ΧQtҬ,d,{x;]UENF%ν,DYE1~6ְӴ~^8XMoOźOq]"..2سs) pX-U[{mW,ۦF?Fy~KҤMO>S$ZmN;K4*8:N!y ` q]Xdt;=W/Y#vZi+^/=v]yӹ-|)[羯G@MJgR62eB^ y M+Y%Hs<˟ Jx5)i}cb#E=)uzf}$For.sl,ESlTW?ZI1f[3Y4 U Ft}ڕSlxS#\?QY<4pLn*PQ\?jl6j=꜎'-!7{{^ܯk궐y}-A%Fn鑶x’J /zvztoN;XVfS SH[aAR!ꄾwWmwO2YT'cI4.OW{̴ڽ_Z%q,sʎ3xs]iiHxP]psh3}=U~F{1k;`616t<~sc1{ j \[23R@)lWwO\XvӜV~ΟwjoŭjEvWoo4BCkz;ǵ_̼i}'?3Rk*{|W;kZd-Ìt!5N\ܝ)N}K⧼f̮ީў9Yj\KA@?aDĤ.i2;7;un'ٓGbyu|Ԑhɲxּ9u]%_ic+鞭a.!s4xjogNj^(mvQrkñfvslNm>iQ:w| v6sATLή{?rH^]#vEz} (hEw=zm'1Rȣct8'AHn{"~Kwls% =)#o2|H-*}>=l`=@BC>AW,>kH I$0Z+0;v \||L!;؁ڀ|n^zD[ظD/-t$3]ybٜ͂Z~LeqB a!r[L/1e (tԘZℂ$YN)~׌ 0P 6r\^|nw;Yn\>ԉC$33(gSK 0w Y+>d.gߤԹfRN߲JO5!$=k BXp  b_98k>E^ãQcZtgYCQ|vJĿ?Pjuh{W@ ڔ6N::N%/>dJFB(}^[sq~42I ! !LTSUE<7y|m~߸lC Qϥ+^uY~־Y{^rI $!l:|W ;ïAe~8}~ſR1a95pzK4yl-7W3e lB*)?F^wƩ1>1kʦHCֹ[Dž3w\ٹ/J{-f) H0 nwZm Lxv{fQ8?.tcqٸ䤼t{M#6Ga# yб8S4Κ3镬i"}\d۝#3t̿$f~߽%}uX~^Ʒ?\#sQM4Z7Gqr>?f%p yet1$~{X1O忭 _qY}E>{.),2?*0]^yeJ񠺂z{+vMwX8ZsqZ|xDkKPPTkZ{w% ֨n\B/zl>G6^NO #߫?d&2 ׏O^nY u2jeb"/?ϕ$0}Uy^,Ǚ;(cKףm-Vq{?L%W.v2~zB޿]ǡmsVIf(V˟=ZW\vQo(5*hXc9@RQO5}|Ư'fao<[J+/Z9r/'Lc}$6 .k!޿pVS6|?!jBԻޭZk_oVf;"k@}{ԬU${e9Sx3/~).v=Cg}Lզ)n/+^<'#g+/=Վ| I_Q?\# URy߬Ɩ| 1OK;%IhsQo*`̑k1[[QtՒq_lH.U\T#_LžN/GFPM:{2eU].~F=.6 S2>W-xoֳn,{}k=Y=,ZWa嫾<=5Z)+fTZM=~i;G+zʛK\w3jOjtX(~?gs?V&fa^jo+#Y߿œПĕT֚8y \ %'Ia|ܴ~C ;Ol [Gғ_;,ޝO`#&5cmpһ2iXg~GZ讇.{{qv<,|nxGUUrCNWp:[(j;yxU*tJMM!u?54y}]LCUgxw !% W$3ۃD?7br`=6hpjW!.{\OPpYp ݮsU;Q}?:uhrIJiɦ a#߮/ww{M:lDoE&sG|_|+9Fߗu;XyW{ﵻ{Lw$t]}>7zЩjNC^;K\ y}^^T 6v [Fǣ iϟMWXs:p(?8gX*Ȟ2GڟzoښS"(mk琩EqneO3vO'c.j!yb~#\d\VH06n }AۇJKv3;ޕ{?,| ~&/K,8VcR {JTn/ 8zx4 ˲=mvogZҭpd,-Wcf8]pݝ0w*:NoE!8 c/9mJ 1c?g{joN; }G^1 wˍKL.iˆ[BUcP77P]~XU4z}us_)x]W KݳVݕ7)ޒP`rg:hp:3뎆s[yj.l呤Lt+;D3)3;sW??iV^i_(z ر2 -v]Uxb 2 ~%j~SץKԳJn.4]'d6[֭Z58D^VŒΕ_ b(r~]D&B~fPj[QVW>y6ӟtMm곛؜f}qK36=X8k]OγFP3_VT67#5铇I"'8PI=jar|9LE>*7łRHAcu RO#uZ-|y:;~C~N\) ^5|񺛬l|gg/סW^TK+~+G7we9Bz"BSQo8T~=ѩS #WzLmgѶ46GbGiݻ,2gOg=\_n6{/]?Of!drO3T/K#awXlT5ڷ|vu>2Mw|nKy✙C|zEEU;O4-V}Hև-ކX~1ՙ+{+=?HJcovR\W?h?YY 1[ ow7rhs5bUa[@F˺A6NKwlww#:䜩fM‰={xctx>i?QPPosfqڏ^veX&_TWޝ7nioM|m=ʝ /v VϮ_YsRE?~9/L\.cK].dmUw[鶺ߜrP;ckA W{-O%,~9NgB>\޻.m2s:Vۃ>}푵Cn"ZrzX8N]Ϋٷ3Д̔2#cEƭNz!iݕ<Y7掍0=ˊZ?bKrء]{j^P}4"$'~A*-~ 6EBqfȚ9kܦPNM1iNoZ^[mؙY_5ոG󬨇=,84l`'T]-NjY} Y7;Hh9t }m>'IQ,]џ,Ѽ`;Uz\VfUEIq7=wWTc!#fai7w=I&zqV\8xKUGt~*M7/ˏԭ}wbQغՍ|W^vyWۘh>l\2wwDoWVi;ZNk~ VVV#n߸S4W9]\}JJp.8KI>$in H~w*.W9{kĉȆO7[!W͑p);7GAat9+ORѿYANջi7 h ;rӯQGWpr,4 9LCRyZiaƁ1/瑱 }̮֝rsA2'#ϳeGszĻӨ-*jc?rӶ[q#uᳬ7Q=o:ie쬦Rթwb?GڴGSk7w91]o;m3҉ڛV(ћ@0aѩT20K-g~t_?t#$,'5;ٟWF ˩~.յ:ʆ?ߎ4i_s k+M򠣑g ߢ:kuzmڮMC-*LjV)[/R _Seݥ]ptzO*NYF#wkZP4/s:H?w'&]fP%O)O.' -u/v6ɇO,4PT]_oOtuYפ]6>e˴YeIGi'UM&=;mxƃlNVncښU%̮.5l߭`LC}CIQu;.U^ẍl$J/G787!?y]n?Z-nbWs_JryE>*|G ڵUGnd}qϷ2.>4#[Udv+^an Boݮ}'wW^e7\ct^n :\F*x 'x;x@H2"" ImqW?7%{yDZܑs7"I%_: K6 7U6D-jR@^*IhebrHBmSؐ@B]$0UCĒM|+!820 @ &C_@ s B2I`Ȁ6B 3mU.m7<nn>r3XؽsܒȇžnT:e=!$$2 Ørl< 2m ~;v@M(! X!$I&j@yZF[lG#Ȓ@ ld$Kף722!FM,IR^( ,8 3W#!$Dȧdevdie3JIHD2P,B]('[ F5:@d M~@L$6B6H% тM3dl $@ 6Ԑ $Hf Q5v`@ DR]a>ט7kd4I 2@MoI 7I K@  nKQYYH{8BB@$Y$)@D}^FL2B %<> }i0>fGGLCQߖbxX%y3t(ߋ^]l繮{mI 7"@mŋED G@!'.NNNNNPnnnn{GGGGGGGGGGG_󻻾n $ X4` $Ab`@ęƪV"-#  "'H!0p8E]|BiJ& ۆ'9|x G_|6ڬVӿ I+q/c;&4K<4z:ݶevuM:~G;sC 䯍cq轉ȯ 7쒢um˧>FWO M$%6v.=}d궋wȐNmN_U5?V~nvVTmF/]X`cAŹVni0"A 64k3vթmۍ+nvm ,bT*T ӠXZjMҬմ]wd HaCO$>0C} @_cL 1c_/$mګo[&Էە&kQ|]ZB/$ ̀@Ih2M.j[9[TmZ\UD|ЁA|ePB& -Wgd~_`&dCk $* ` @j!}> `AIB!n*䜔k=)x^K;y3ZFnplȰl.bPqnTTTTVl[mګn튵Vdkhڱ-hѲ,gudؐ r淍rbы+}\#A+Ec1XѶ56-ץx֊-F5EړmVZMU֢-bDkFڹsEdЕEcl4VQbhXQcj+Z5%hj1Tmj5Z-QFѶ-6c[1XܹFصbFcE9kS4Y#bƈ*[J5AE* 65dk%TF13EIYLlm!hQU9lh6m&\XuչT[EXcEX%޷uōQb5Ƥ*6(cDlQRV5EEQ1hj-QbkF6ŊF*-Qh b4QXhű *1kFEFV5Y'쵲-Fح-r]Gw=p$ xF۫۟bCS΂A H,jbrK,6HiAy5u/:[Z!-Hk"H{kۿg< 6pMwl>G-Ȃ&Cd uB[5""#R((~)o @ K֯8Da Ic}kRoֲH\,J`7~ CR@9,@$.[\imeo_찞@XO>>n^E!Мެv(S"P?X`)0) -4mb(+5T' X6@|o/ɷ ! `'gBkE  gπ[ŻX' :ǯ|8^D0gU?n!85b<`)-}'uuvGr`$ BM@:00X"%4hxZپ+;EFj#ecYeYeߩ0!~}6l$xj&ዞ5yY 0QlڵD{G~(|o_}C!!XmRLH@ޕ3G^ }3!l8a*ZDI$I$DDQI'pǬ3'YrCL}O:0@ $ BQ-QmTmmhXI$XB @ jڮ750s7KLRPUAB?D}/`4'5$U4ǘqg9pk$(a.`,)$c6-0^ւH.pt_b$N$deB-+x7l0g, {5nO |7*ߎE҅tuߟ")_-񭭨k~_a =aRR吇I|a_p%zb0 DaoifSqzJqt=MzMd 0bEuRd6{o}0!2@=NC2 ؐ` d7cvQ࿅£;Qu Dn 9gw5+)EszG[\^DyDޗE@x*@  K^}yCzg晊g 0IGoJ λ3 [32uek~L;&ɛ ˁnz{~In)1|ř볡uVCޅ!?S:N,Ra#v/ӁtEg{oG;B{} }<:?CA͞|=?ρXNJ|Ł=8IO:N{ikЛ\f<$6+_ZSIF?id coE~}y+}jsu4L:JZjs-mÕ_pJVg9Xw.םu"qԖb2fl6ֱ"?}.MsCߑyG}*;0p__{QEe\`0Tʹ5}[!%T hж>;:|en.~9j :$ /u/._1ԝQcKQ#A衇؄;W~rJ2(@5Pn}C[p|l=m_ym?~?@P1?>KNz?|X?{^=Ύ@vyٟq33^_xsC=x]Mn9ꅖN_3y} #/syێGZ.cN>#@>_$}Hfml!ٴ~I~ 0!9-M'ssV5o^䧖7+%䴧֯q)9IprK߾ W/<>t>s?/i-^ε/ 痰{v j-_asBS #s\ېgd^a^c?.^{{=×[n& .B. n][[[[?b `[[ZZ-v\P\\\{xax~__/aa``/^ a|ņT?AY?!~Vy}Ϡg?Yý?߾>$N =a|Cۇ ntCs܀nCrݫYMH" 8|? +M@-|3j'w`󁀟I|ߛ$Fp>Oww]ԝB{O='^ W!ž؃:6RCُHz!O }<#vp6b~d~`ydӡ=Tv6B4*{O菀>C? >k 3}˺ 0a9TBx+*o!x " M|w_GRdYH(e. | &<$)HI"$J%2I$ӠI'B >鐁E I BgI _V {fhPNIGW{Ub-Wɔ;VJP>1Bqf{CW5jѡ՗ii]^__?wwzkWF,G0>?o>?O Fff9"MBjό#0 c 1`A,~…L L` ll`߆?cc @r';>Q鞙s>L?>QO~C!➩|z~OTO(OT>A;~E?6ZZ6]\:vXA ohvE;/=C'?#ǩO~O7?ig?~= y@0-]¸=QA) İjwS}!&1zH, d H!}93D!=_{Y?9!$i7RI o:MyƊ㸀Oz_BnG}<kE :su5UjHT*u? 'g(T 1O axnni:<;@%HF˭BDɓ&LH\|FKMM!+g%QE;fl |E9KzD2ANWv{quO}qAT˖B(oUQS*gdXe9rzE٠Ct6G>#N"rIFӅg;I1]v?W׭`lר"I$S"[S\DI$jDR4m%K&J~r[BRi4]VuLF/Z9vK*+>#NDDm1 @0y*KhwpOU'EGKтb0V }G@8< ^wl}o~cNO?WU ())BCd?g?B~A o ?A>gapp_??~5N9 P?!~i6@??~?n?c0?!7"/w r;qEO=?Nzg=3?=9ϡ鞙Oz?~C<3>a?鞜OS~+Οz!Aǎ߳yIu͵A$I$S)]Ui$IkJKzmI$ԚK @ ~ki1պb,66PڭVBA d v ZK/o-ZDmI$Ka؉{Z}}SYx~_7б(( U%8Y}I-Xm[i-6Zg}e->-Zҕ7lWQ_:7%%BI$=% 6VށR)nʢI%I}ԚI,6I%FI%"fe$ jM$I$ʹͻ6ImmmI/ڵI`IeI$I$K 8m4JI$I$ $I.fe%ܶJI$I%HmIͺI$i$I$I$)$I+ވ4AtٶK &I$Jo=#_skzMXg2Nt&ts30@u'Tufh?q;?8oGbtGdrPvg888~B%/(}q;pG`p p@؀]p>ԡ7.p@4 )z t) bPl;b}Cd6L}^ax6}~A}Cp7vîw{A |,?^yn7߷]ct:Āwa':Ttz>wI3pw$HLq >yO!4z=c>})I 23#(533#zֵkҔŋJU556 qK e #սrl&fFR')#%WG{|O.(T- l6mYcC4(%@GkU9 t*>΃SqaI]˖r枅bfdKl6mI$nR^m$[a$m$I$I$I$I,Yk5 M^?M^?Q~3vյm[o:I~3-$ &I$IH Y n->gRқUlX|oShI$I$ DIu#I$I$I%dKضI$I$I+P˶I$I$[&we)s?^kTK}xrI$A%I$u2m$g<+n R[3osS ͻʹʹI$i$I`I(ܬM$I$Idh$I$J<KKa-I$I$Ig3 LI$m$I$Je-eI$mII/4I,4)$K8I^mIKo I$RWi$gL 1E ?>rrP ɰͬUdʋ1&{z`ޭtu!u7;ŘW7l9bebM6U~&N8Z8~#z|7ApCž sP q#ׄlM6lni=#z w:wt [-x]ۡ~`^zlj<w<\ ,W_OXS` 'ȈֈkĒI$IDDDDDDDDz`.>>>/K/K^z^r9G#r)x888888?,,,,,+,,/~w__ w_____________~7w;{{{{{{{{{{{{ |>x|>|>x<x<;{{{{{~Ƿ{{DDDDDDDDDF$I$I$MUUUUUUUUU]wwwwwwwww\UUUUUUUUUU8kZֵkZֵkZ{ֵ}kZֵk_]wwwwwwwwwwwwwwwww.)$I$I/n˻I$I$I$Ywwww.I$I$^%ֵkZֵkZ]浭kZשkZֵ}{ֵkZֵkZ79\'pOqCbWg3޿_}_z۽m޶[rurz~_gÇ8~Ç8pÇpÇ8p8{oﺺ}O]^_V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z~~Oz^Wz^S׫z^Wz\oO?z#+=_W|W}_/W[m׽;xlI$I$I$I$`Ȉ<Ghi$I$I$,;OpOI$I$,DDDGd`$I$OI$I$`r""#` $I>A$I$O;I$I$I'I$I$``I$I$,893=I$|rI$I$`0$I$I'90ONL333=OXqI$$xI$xw@I$IIə89a$I$ONOxI$I$y9333333333333333UUUUUUbI$I$I$I$I$bK9wwwwwֵEĖ_5$_5=}$K%̒I$I$UUUUUUUUUUUUUUUsUUUUUUUUUUUUUUUUWL33333UUUUUUUUUUUUU^UUUsUUUUyXIsI$I$UUU^uUUUV$I$I$dI$I.I$_I$I$I%www}$I$I$UUUUUUUUUU♙iəY$y$x3333333I$n$$I$I$I$p2""""#I'Iz"#""""""0sDDD`"#ǎsDDDDD`pI'9 $I$ $I$xw""9"0 $I$I$z8`I`TDDDsDDGv"0 $I$I؈I$I$I'Ok}_k}{om3_~_~g*$I$7}os_}Ǹ??q~U7e7c7)[aY7ђ|}5__UUUUbKR˻I~$I%I~_kRWGU}W_kU~({1=gm6g{=f׳{={=c~ۻf}7}뻻/?N};OƿUN+W˪̙:>""""! """#""#""#<\DDDGLDDDtq""#"""#91Ǐ``1 '=2I'@I:@I':@0I:@ $O@I$O@:@興:""""":ptDDDDDtI$I$=I$tI'tI=t0O@0zt|_/xB&cN%wKw\r}9ObUUUUUUVێߣz=o۪ꪪ<tͦ狠 I$IOӴ}>^g3s;V՘Kjퟙ+pRZI%smKmJ[ ZV$I$D6Ji$IL6(mmL̤I%r-$m%,7*K$A)m_q R$I$IU\RժW9i*)_$6_I I$Wi%32JI$I$I)I KZۼWkVfR[Km$IY&I%-2m$IrZekMdk39陭I%-teR% okfR[cozmToAJId[AX|m$tm6I$I$IQJQyVߤ/ u|mVK&I$IqK.[ $^R[onR!ȟ#K~o]޿r.M;}}v? t '/wŌQ~j<_Bx^pcUHIt3!Q2Rz^f` ;mu*'}pÐW/F_u]I]jXQRw ;ҷwqxp5| qxx<{o'/!6g3vw?/Y/>_?qxo nCC{m'vo@NC!@~ ?: 9 <sT 9L?'q>}Np@.`IHM5AFВIbI%>!͛,XfZ`$IO}]M:Ĵߧ5LpXE7SP5ںE?,IWIJLNrR>BLICLR[i$\M$I-3<M$I-zM$I I$I+$I,O{e$I$I mMm$Cm$ٶݷmvݷ?[lg=_v<Wi?s9gjڶI$Dm$Ikm$I$tI$V@*Y?IM&l$i$Km[~dΊ[Iq>:;ʹi$)$IlLmm^[m%l&g3kUI$I$P Um[xͿfI$mJܿI$D II$mPmڹ3YomJ[i$I$I$I$oI*;5*[i$mI$I$I-6I$IQ&I$I$3m$m$I+6o1-J4˶I$rY)m$I%A4I%VKi} Fxوi_^dC/1Z' ?v=kWA`{pk]^_Pߟ `6[Q ϡ gݺήy8{exA={~Q/<$=onSi] AbSt7v!7W7՚Wpuyζn6ÏF?KC}wvzCy=σϯ`Ip; $I$I$^6I$HI%FK_L*̦R\LI$A+rI$m6I$Qith$i\AZ-r?gI6dFDNSHis69z\:yɟ̻sVςkI-ݶI$P? >߯t~}a=uUf5yAfjL)]/ne3C#XƵn]qPC P6o3Rn~aW3{eǟo' =_3l/wE˯niߨR$:`a#ųUt|g}j |-Ek{ܮcwNmEn{n6Fim9Gow]?܇/|/~< \/@?>8H_`vRe!DzUo1Ԅ=vFI=?.Mp0@5CUl2<.ϖi&Ӱ$ŋFI-H'#O{d^7ad<3Ss⌍HH* $>o^FJ,Z$o 7xz\QY& I($Is?2|m?K:_Y=wCgII$Ifm 'Ri$KpmIUi$I$IxMmKw5)$%Q$]R]]J5FH|OEU_՟{~v4eQEAA-&mʹI$<ܤ+ jVmḙׯip`߆7}!hMIpͽXz:I-.uٛi.36I%6m$:3Sکy,9m$I$I$I&I$ZI-oon3Q&D$r MDI$KKD6$x$)m )݋h7 $%$JI$L}o=}ϸ~~vݒ$I'Nh$I$${i軏wwww}I'uH"vt9LS7>4^9XiOhsW[]3wUaݟb"b#c֗ r͟+BLM|_&|6/z|A`D~g?ae#~yOby޺"?'n1w@~7_u5~$;]f~}_|]^?ϛ>דn: _?ϵy[}@! .v AB|_V$X$;/ @<ԀHI8s8s8sIN0=za'a0 y]QE8 |K J"Fzz^Q?,!)($&..W)'j"QRS){py?̬,Ĉo|< ہ{ky Ómv4;~[ cCܼ ]YIs;1o Kh/,3#gUgw`F}~2A.'0d~n?~ !#~#?.`0L dZhK@8<)z"6\Al{4ği(i`/oe&oioe9ȗԷSW}}}}}_OfS:c<"J$=IB^_=QQ1Qn-nR2/00pp3T%QE֞>! >X E;!)J}> Q~,6⡵P 9CÌ̘>8䐜x^S !۴^D˽*e?"xx|Rg2{j̘cB$d8صlF^I/׊\nO;gx+n>oR\^(9T2@@!@$ @]g)FM9}=v鈔9n9]]\]\LfvpS!XdQ~ht~O)yu5vf`RzaȖAV_i*+œ^v.wK5~:꺮Ò'HK8pÅRjiJcP^"/*e&#%z:I'>g܄49o]=/w@tj7R? ^QށAd $HHAd!6b<;ͪ]OhWI%=ϧÿxl(YT)7"Ym2[w&5{Գ،)rP-M9W ֿo4̵}ll$e,gngE'L}woatMUecnѼh^f`U0pf /\vN7߀ A2*=*L*r8V+r? Q%Hc (Ǹ.@JBF|)<,(*~F%kn&hփE+aq5j>'a}LaKX@:,KpGa bSi=WnS4gMRqf>4QEvԹ= $w$ "F!f:@@,@:/Pf_fQQERw`;$3f4`]C찃,߻ׯ^ͻ6|O%4FmhertPpc)!7˕1\0cؤu4llM&&Jf_,1jMVf1Y&ht2Hd˧Q;s:̝*VbGʡCh{Oeyۻ)6uƷ|r=Bz⦝\a@r?iwc^>?ٕ\Z^U~۱*ey-.A s,V^^]]0=4DS^6ɬ)au 2RmfRrrr!!,$ޤO^RwKګյm[Vճ]b"M}EQEOc bh̝YW!6CWMrcY]}Q7݈3>ИϥBfekg'U*$˰,ȶf@gf˰[._q'(!=]XuA'ì;ApGhG Y(>OdsГ5=wl5l @!#z59RZU3@=^]ΑtDk:t{8p9ÚhVmqogÇAQvs%7Y@='7;ێIլ]!zjR3Z"/x B뫝+뫘Jgk:Z q (oUNa B qIqZwRyԘ-N>H!ީ)3L 2&R'r\)F6!FÅK=^F&ۘJ9%+.Lu3QyZ`hFa7$5M?>񿟢Ў NBLpsҧؿ܂qb-rF 1k[1} zdșEr>JDfAyf}` !jfg}n@dJE)TEG+e\y jkvo׵;okm)ƜMƿ)9m"eǸ}|{ww ~pv#}P߇0p;ɢ~@aUɨL5DNNExar} Ly[23ya`k=ơTisP?ONGNB ѻVW@@ 4h# 0&&&&&-]WuzZWKU9,eQYT{jE56Mn6o۶lm LNǽ#dSgc6Z^b>]>^rϬP{zCi{g4"b:2W ¬2INpԯ^Eh䄅V {$LƽbXCDZӊi +(LCv>aAg5T~GR*lN؟͙CK \Ҥ2@a , ,E-------m /:ZZZZZp-dBbC K/bd|}}""1nD7 UQ!}bGl팔U_W}_+ vQEj1 @b\P 5itNa 9Y&8wrwɱvF]FV^53 c)-qSͭ*,!Cد˒jhiǃ]VT>ZnX_lgoWe%)1?pœ*ô\de; V/jC&zʰ52%0 pq27}_<Pv-]?K{{x*z{{w;{qۍ*((g!gU#3zQq# QP =Fǩ\o}D?rruRz{ mMEQEU W@2q:7CIQH ZKTN;2 9kmi8WUOѩ7'l/5EqYP%'&m70`J40;rxMǮ]miڳwO&w}J 豜->uU+7Ѷ >!* @ BuJy=V6DWu| $$ӧQP:v 9xsdԤޤZUhw#!nNڞo9[Bɟ髕/*<)KySjH@ K9*b=(P/us\\\\VJ[c(("IR H$bkP2͞x.n#c6V7yB2=d1gkjN[i_K$5~^(OkU5\OC0wIUUW%EIşG7EVһeyT{ !g2\$q`}.Q4|-Y(ӫ-v5mVIE7anqOvs_=;Z;:Wl_X;P у@ 7DWѐ`NVX@ &ޝ/o8A)/$BhŇDEzz0}jd"uw|zS z$CO@R^̷V>hfM  ?'mK~}n_LIv=樀b~ ~E]lVoVuW>U}Ϥq@ bV{{:4vtv;9j;;:~ҿ:^8(0@`!0ωL)~bO&Zzm۷~6>0m2Sy0}N,Knwjmâv>Q~Xq"鰰S#ckI/>+.mk @|n*oqa XbFshmDó7#MP0*3^L: ~2@ލ/ϷfK .S3kLkjjkkkjjQjjjjkj $vl=Ä^o9Bۨ(\]XS1xPKu7Hc b00H0YYYYYi,VVIVVVVKvSvVVEQE i^$RyCIAΞ;6XqTgZ2|aYV}c8!7_3 ]6V NNpV͢TdAaMٲsK":jWIn2liƘZ@_e'OSQ!k&;]jC`"\^;<o OUTYHą#]26[#Ql!T~yxKW3]K9Gww7hp=ޟZ;úqq]CЏB=  gz1gPïPN'ZaՈ@ӧO쭏(qƚn ~-i(!T\ׄuSM4' ۶۷j!I$I$I%go϶]v \ @@It}UU–qqǏYeyr+,Ͷ`DQGR͖YQYc8㾃B  i>|yԪmؾ%)K /mYeVU4CǏӾAA mN9߿|RR)JR߁JRҔ)K B @  v yoA9JY .ii!DYR)J[)JRR)JR   >'}}}  b,@B9߿~T R)J[)JRR)JQAA1@gyu/<<<>0RYs[߿~YJR)J[)JRJR,@A1:^yyy}}ޘe)K@9$ **z*J#!#!##!"6~### {GAQfWNp)g3@eqE{t_& 095Bm.J͛1ع2ߚm'480?sH ߵmO~R_4jm*&t(=sT4'4u-)JO!' Qqgڃ\^Kh$<^Ӫ[ }lCKݡR/Òy <6:--AB%t>CoJ0>)4Ay<}vkv޷]3333:R5-BS]=H6c7bxOe2 B 0 ` #Ldɓ&LرX؞((QJ-ؖX`1=򢆅 ?΍e,N]h>NZڪ cF*Vr9Se:[u;~lxR#EuKxTr\-,T,.tnZc|CI}2gseԑ-\@"GV QlDNQDe(O^F1NUX2 `- U7Tvx]^+4Be O~?D 7/p[(&6jwF/nK\[Rj/6wν蓗' ZYWv:[6 Bg̳yM31ƐV!0.asdjkGkkkjUkkkjzZ&RԢS (ȗx( y܄F\JkH!ة6oZ_ZǮ=`ax212qp98Gظ1f ) n EU%*mֲBw:ZY&Y/:@l#_t d_j {D{L,]_k?41Z%g'''5lkwq4L/NNN=@ȩx+Ŕ`AL* -%'{BBCBCCCCCC CCCCBCCBQEQP B A<0_&a_=$Eu[;pu{_p]vF8z!qL4d%iĔ) YOTX)z!蔗yYM[J¸d)Qi5==ٹSf 6m%Aw6͛iW6mHCW h2;&x[6g?Ix> ijgjjjjjjjc4TʪIRD0{Ԕ$ /Odžo_(_6'("I:Rׯan]oߙF=o`%|o\4a>u 1, ֍l 4VL6{R*.هK#oejfXmvS-ܞ)p^_o`8p?('7&W?/sWf! ڤ1ʙzuJm)ZX;[_3(1*t^w19ҵ1,d@-d IN'#!!ɔ,U,r##"3"R'ٿ5u|j%o_ix//O,VSdl _~,84Jׅ(Jm&b999$4Z,CVvuvrvv;:k8(`¸aD̼ɡt-hl|||nwO|vǗ?V{랍>1a5N;170Su0_߫]Y3T15㊴2ms6/R{7՗ʷ*oW;;(Sv7/q,,ɤ4U֬r|-# / 3`=d B.3vw9wwwvIbbV:~좊(m^D=Y5X>Bo>&oFq  ɦ8e_L&/z졏,_1OUun/T Wi|J`cU5.]=W6Ae~L]]]]]\R BB#t'(A9 pDC~E-@  ,E Q%%%%%/ĠѱQѻQQERh2悌NZ?Uk;H|ϰ7v/!CN:_QŸޚ`c̜ϕ}Ot<Yzn6%0Wd!/|wgsdͩ425%͵777766K[JMJͷM*^4_[-Apndw^7yobqAABvvvuvvvuRvvvvrrvvvvu5540ܗ?'+]R;55\cx)Y/˰9V  A @XBZ@ i @ ]3{. <,V,jl͡@* 'B_ @ \1TZ55K>=9FwwRut;|q|b^ϼw>X><s}sǧO "w #& ]d߅S37v( 0cȹQS$ 6y i??ڡ|^=gcj9Q݅7O?7]iA1`崯NvM<òVh񅉈Vahu&!N|R8H_1ks?Huln0g_RGkMh uuuuuwm]KjlW1mmؤҊ( A>B&=ֵ[yqsop^?}D|}%ޭAݓn!$*V#5/I^8O9:OW3{kavk)^?WXpvWhᇥj|v3B~S]z*kjw]#妻?Z]57٨ޠ74j]3\3'c~:l,EtLD.DFF#"j###Lu\ӧa2r%=y9WxM.+OK1W|ݭW𚷰g"tr~B_d$e9ls;;2K;;98(" p@}3,f7*{t44F O\=\16acUH4MB"4׈Ź Ȧ&f L;3Wr8n-On# _EdgNҝ:tӧFt{z|||q'] wWܶRHZ# u㓔))))))T#T&TT>T?II+7PRjjiYFs-_FQ.]Y۾/aEG7^E>knn Yݳd+0pK"n I $##1D0F] )?Jʹ(O:[bi4 pD3xKD! AqJ]+6w5曲]|tώ} on+ O Z r_  K%KVD70ҲbR1X]ߚ"P&Brq,eAH-ZVVV[ǐL\mn۷\{wT 8>v:AuyO_]z9zZՇDʦL(_$ \?A!S~@ 3I#T0 Ѕ-30D)3[j,wɮKlJپi]Ä {iRbnΤ:u IIII@: bY#&$ `-@ ĔjXʊQI !M͗ p~Aiݡoxt}H{ɝ?᷊Qvf/uj-vǛ ۶]ap-b%`(sE O]s=) l29{2f<(aV _{].o%W1d;eeet]>6ή&΁,lx:B=)$ktD4QLfCR0G:Ҝ,! 1k7kjkkkkkkkkkkkk+kjQIQ2!1c}A_Nū/ݷΖ0QrEd:Ǣ\[ClY0JRpU()f+:Mn[MXU|<kk*ő>[^Ka:~< u4f=P~H]a-uk@:JMH-mbF@A#Z;ki&S⢢i驩F)]کbcdt RIkNF~^F 00QQQPQQQQQQQQPQQ5QQQ:QEQF1T ^H~|2?`SYZmlu/#i.q?D`,/29P\>"iWnoT`r2I`|1Y% dQa4i`'UXرHemN𘬙Q+IdC0?$q]Wcd5(m )<Vj#FK' 9ۢv{_y_]?m4H55#  d a\A%k}-8r>?qx:VиqzT(vW[|~Ulm۳G "\x@[@cM(5> 4e j}n|o|m_Okdصb(0 Y}CCjcd0 *****6 TTllbcccccccccccbEIEdYvӻnn뛶2zdr9G#9||| beXI3 /Zg2E% }RJ-m7Tɴn< E~%eY}oLl7NBHb׳N~L\K&3zGC$7MOuHM"?(%@/>p _0'Z3k/ec;^Z|I@1a^8qUPtd{ɍs2΃K{Rv|afҋ%ZeBA䬏' kwy.9+stӔDz`` ScU,WW> b!+A[`tЀ( "aD@%6Mi|\k5wu1ju7wwwwkWeQE`J0iejX Xz((dJ#}:Z  WErQYz$ g"RaX>i"`e3|J e̛LT,E!HYOb8l.I@LP,aXϗzCꉇTAģ}0ٞO8y_zazX,yNNn K6V nM٭lx1C?l]tKdA:7`>ukh~%Q&!r" ^ ?f.7R޺oD@~i"O6mqfͨ&m=D<<<:=EEDEEB|8̳OxvN mW[+meHaݔtqɌ:U= 9ZNn6@l'dMc=kcɤDZD:vӧNg:tJ(( G*b ~]6^Ƈ-7*Sbӌ:o~3 6#aV/zƿ _[oKtMdsSdR~ވHy3U5-X 4h6a6R!î ΄3)~2/?%/K)>w5ztqon<||=GI>3#ܣssď 1 Lp.ȕU4r8DZb,n`!Ќ [rvC zOǷ?GOөMВ8qxM&&2 q2,22.++#Q{{}sUoj9}1/|GMeTQHB}|ݑ<ϟt拫=??;UҠ*v2Sf;Y|eS$ܙḓVCm{ Ǖi'O{,QRbt*v?3>wewǴV *]pBffonoo]LuckBXyg~^c a@3ࠠsssssss'ssssrssssssasrQEQY9g|ohFjwhX;nnw)5n\c2{ $ ۤn@ /_xkb3;|h_v&WpI̧VH]=hD5oU*JUj=Tԙń\\[s$ MLúW%w|ǐ5 MMMMMMlHwvzM(+ :]Fxwwut^XkZKIngs1\;8WPpbz\vr>aԑD B8,"1\XwJ`ReeM̸t8+(,m}f_q·tsY.g9=3} ǎ\}Vn{u$ˁ/+li)~p{3R8ݫ:L =;%EE+Uw॓;Լ)%GzIȫŠkHwP?6@RZCd̝SDzĒĎ_sm((ݔ8(^Rԫ᪫@eycps~۷nnv;}O I}BM#N➙72#TƠ93ke2f$Z)@ۯ c<#66{ ÌcW(.,vHMmiDWXFR`*|Өޣ?[G_MdnV$E‡М dM#~~^4jD?X*/x)02*'p`HXԼg-N_g&ȁ9!:| ?0((((((caRE"aaLaQaa`aMaaTaa`T0U.qU@0 ;]ރ{||:gȣr~B(rUXxi@ysY fC 5DXz;%Մ ߞcow֯' -e=S*X\5nW\P])kvw\pyi1vvvj=:Nvvq'w@񠯶tH9N\cJLb;e!>j=ƌ=UQj5ש'[y=@1fb ]555555ٳf[ 6nAf͛((MtpX񗟃zAZv &Šz`C@_i tRcįtaK[oM3Ѕo;xs ;n4+S£A}D"g7/X*o H9Ápzm^EYjM}}| #z)Ӫ'N:tNNNNNLÒ.~6,u'$ad+!++++++#*ꪫ*+#k!+=g.F&!t!.ƪLNRka'tx0SN$mv?u9NUl+fLej7ONi}wۺʰ^(#yiPB.7t| (d?4,haF4hѧF"" 9ф aZxC pdB?_q1@lٳf͛6lڃ!t͛6lٲ(S ('*uq#C~>\ ҡXI`G^KH(1o9<%}!,A\a a1%"0J0Ya3aI%L ^ V,;9 Qr+15̷L?lRAK\^mmmq#CCyeYeAB rV:tyի{__3_0P|z2;]^0zx/z}~"z{=]`va9uoF͚ͺ+!Jk#XETi54$y6 P!Bcl!:WN2:mV8pyÌGDzGǜV(YÇ0yV7]z75gP>NG%B( k @5 M9ӧN:tӧNн:t 0`º( k piItP%5Fl#s/-=hpsjH"\ujK#\cqhhh >0|MSS&JɇU=d3hFAk4h-"#U[J\@QQUQ- l@%SnJJJJJJdl{g1??=A=?A?A;7@` ?yHieq'k\ \nplh5M8 e{]ʁכ9W1b#nwj* m=zݩ$_F[-홎]l+YK'Gj_җ֯tcp貼oށ-|/Jw1144+q׸oq{L7O᝿EO^^^@9Mfw%[[̶&e9o{8z'[ $Gww<{0:][w;n?~ GyNW_dg.on[ޗ] {fz^q}Q'pMf<說IUUUUUtUV$IUUUUUUtbI$UUUUUtbY$IUUUUUgBI$J%ВI*ϳI$JI$UUUtV$I$*I$JI$I$I*說ĒKIUUtUV$I$J+I$IUUtUV$I$UU]$I$UUUU$I*ĒI$*I*說I$說I$I$I,It$I$]ݤ] $I,] $IeK$Ywwwwi%ВIeݥВI,I$I$I$I%wwwvI$]KI$I$I$.I$K.I$IeKI$I,I$I$*bI$I$IeEI$I$_fI$˻I$K-.I}I$˻I$I$YvI$-$TUUU̪JUڪ?>ʯʯEUV$UUUUU誯jI$I$lI%wK$I/%4Ww_]w/$_]ͯ.Wwwwwwֵ]I$]je__SgN} Mmn.N_qku\}6n׳g}lzaݶљU33_>fffffIəĒI$I$I$UffgUUUUUUUUUSI$I$I^;zֵkZֵkZֵi˗.\r˗.\r66mmmmmmmm~mmm33333333333333333333331mmmmmmmmmmmmm[mmmm33333333333333333331mmmmmmmmmmmmm-mmm333333333333333333331mmmmmmmmmmmmmmrmmm333333333333333333333mmmmmmmmmmmmmmmmmo33333333333333333333333mmmmmmmmmmmmmoܶmmmo333333333333333333331mmmmmmmmmmmmmmmmm333333333333333333331mmmmmmmmmmmmm-mmm3333333333333333333333>mmmmmmmmmmmmmm-mmmffffffffgfffffffffff7msm3mmmmmm6mmmmm۶mmo- ff3?Vg򿗟3|m߽mmmmmmmߟB)DjyIo?߳O}mmmmm3mmmmm{;{{{{{˗.\r9r˗.\r˗.\r˗.\r˗.\kZֳ.\r˗.\r˗.^ߗ.\r˗.\r˗.ZֵkZֵkZֵkZr˗.\r˗.\rֵkZֵkZֵ^kZֵkZֵ]kZֵkZֵkZֵkZֵkZֵkZֵkZֵjZֵkZֵkZ֮zֵkZֵkZ׷ֵkZֵkZֵUUUUUUUUUUXݪUUUy+׾_}_W+kϯB/K~>#cG>(㏐=A䏕~YI$I$I~ C~S~1P9'gO˟?6~tϟɟ?F~̺1?vu_~e3G?|/|O~O>|>x<^?7|_'O7o~'~y??$I$I%wwjfsȪ<$I$I'2ƪ}UU33333333332fffg{jffffffI$rffffffeUUUTI$I$vI$I$3333G$IH"I$I;3$@$I$$I$I$Nx333333333?RI홙O}>~A?џ+*ЯGџH?g?YO??&~T[+ί__U}UUկ̪uuuuuuuuuuuuuuuuuuuuuuvÇ8oukpÇ8pÇ8pÇ8pÇ ÇWWWWWWWWWWWW.8pÇ8p8p{=o{=gz}7x|wv{~Wtzw7=/G7yI$I$JfyffffI9$NL '~DDDDDDD $I$I?؈0I$O$DDDD`I$I$zwb"""#`I$I$HI$z$H>ϊfffyI a933333$}y'Hsa$I''2I>I$<DDFI$I$O =dI$I$dHI$I'I<ĒI$$ 933333>)3333oa$I$L493333LUUUvbI%̪^ffffffff|陙ʮ8Ks$I$UUUUUUUUWUUXbI$%I/7i$I$^$Yww|nk9r˗#˗.\{>n\r;ZֵkZֵ}˻W|wdI$Z^$Ywwwwwwx}˻_^$UU^mUUUUbI$Ix{KUT̓ffffUUWUꪪ*>$?$pO;6fffff~g3333ߙyUUUUUUUUƱ$^$I$I,»ֆ{;wwvI$KO=K.^$I,kZֵֵk߼k5k\ֵkZ֮ۻIwRKI$I%UUUUUUUU32MLf{3333♙'I$a$Iə<̪UV$]$I$I$I%wwn2˻K.Zֵ~$YwwwwwwwwwwwwwvIUUURI/5$K.9wwwwwwwwwwvI+wwi.tI$J^jI$K֪I$UUU]UYI$I$I,kkZ֮,ֵ;ZkZֵwwwwww~$Wwwwww]񻻻kUwjffrI$I$UUUUUUUzUUUUU]ڜI$ffffg333<ĒI$I$I|@ 'מ$I $@p0"#""# p0، $I'I$I9$NLϊgΙ$̞$I$ffgd333ffI$$rfffff}l檪$I$zyS3333UUUUUUUUUUXKIUUWUUU\UU33LLffffffg333<3ݙ$Iəʪ쪪ͩəəL~ffffI$I933fr֪7ꪪƪKI$I$IyUqI$wj$I~$\$K%ֵ]]7kZֵkZֵkZI$Iv$K$IwI$=UUUUUUTfffffffdI$$I>/4y$I$I;!&gdI$I$i$I$OLL̒I$IeUx\UUUUUS3332I$I$32ꪪffI$I$fffgfII=I'@ $I$I'OՀI$OY$y$a$I$O1$I$;""# $I$y$I$DDDDDFbI$I$;I$I$I$#X $I$I$I$I'$O_Ey_xw7~67z?~kZ#?'>}/Wz7oQu˗(ڪ'EUW E^}Uf?&X Bk.W<<Iܤ뎖ARjvrq*rq.vq}oenYk5ͺ.>oS] X[ uBx$<N|ChRۑ;]jKgo>O׿QIy;.G07/6rx5twu0'!@`KoH| 4Gv'@>j<& .VK֎yT0JF="2W涏mC{떡ڹ>O>}[ep)p#a>yi=[4:zr݂7CYWmO4Dd]5T}HoT0}oNnTdwӌЮ,NG.|̼kvͳ_K 2#Θbô LxQE7  w'^uٳ^pBkH>(_q;@/|! * V< alft5Y98.5lBAi#Hדץ[GrN/OKUω'aZ8&R_䎃XWYC\?o]Q2}B35-%JJH̕Uu^sשg@qg$tzڪʪ**Zj5OEQEe?H0Y\pk[І<<.u :R//[.`Kb@K3@B}^ǺǸ^!U%<=HFu0*qdDIF;];~^M.Toك@TVvcIXXYXXYYYY'&&YYYXSYYs|w\7= lKDt

=XE@Gń0aaaa0?j!nnn.d.nn(+|_={wR-4w)qۍ򜛮0h-8!@ݺ=h{?Q )+J=\fkzN7UN@Gl/ A 7;::㔁@0rh)hWg rz$Ioo#sj`s᪚֏A%Iy2VulaF\0tˏmyE.p@B SS843TTT 21 jjjEUua?Y yDGJME#%$ޒ2([Tn'0|]ZE&O7V( $ ( ?`iN9& ]&ıǔ0I>@ BG*?ɉt԰!_]Ң͛&3&Wz:ct6H))i)))i)))(U"]rRતPJ } bP0B*EH0bAMMMMMMMLi⚚Κ556OX`.d1Ҍm 0yc\/c;w 7?)$ .xߧw,U?Z:Vu@"E8 oC;R`AIeڨs:vXY-noQ4%TKTCcEC">>>::::fU{p\>v-Bd:!mlBԴ̩/Sz{ =k0 0@kq[|TtBx/@ 3A@hNH  ONx[zYG%:le"j6Ⱥ?J[R >>ϬsQEM]]]4] fm*B%rr5tuurFJJJI~0L++LshyS>QEQ3N:tӧN;tӧfNQETǞydp &z0xv܍džzkcՐ ;@HO8i-rpmtõp\t`0Lbj7o%5 YbjX!L:QmM,틮]ywg=`_վ:\3B4c㝵)6uVJ5l[@Z>dExCZ)f?iw4n7Iƅƒ1"yPMG.Ίx%e,lٕcr:sqijmB Ct&&&&&,̼\YsJyyeaa{@8K5sIzOV͛6lg]mXGwm؛u֍k2 pX遡V'ig@"f/ zPe 7׹ѭ9]k׉<~[{rU6 7ƹNFS5c[f~FkSt+z;yyyv  #1?ly̌l~D0NS됫kLRWWWWMQWWWEQEQQ!L h8 obTh+=r)#+]V5+BpejьAv0XkwgQtm!z*Ob{' ^8_ru@2ϤP~V!U:]?#\]w8p9:vQjӯ2Oj{ϏF?Ϲ}RZaHG#\ @Q0'陙h$-mmmmmmmmZ-f-mmmmmmmJ(JRQ0-\+^ `4É=A`Qڂ(FKބ*uD9vtc- ATD M;42 ܭmAɯ,3xQ3Ԁ@Y,@Ax_C-n^kW0;cKopppZlpop00遀RzffffeSWzjZGo3?W7C3L90]W2^e $0 IhE PQ 41B)UD1&P CC441'x"T IRBCC"L1&*CB(B(hbH$PCI@D&hPQE2bH&QB(hiD(bR(hbL&h(P$P 1&QB(bQB(@Q%1CIQCLBJC4"(iD(E Pɉ"LO~e^UԊf Ԋ֌6(X؋ZlUZA5*UT&TYd&XYA bfP͊V k7ثk06pM6 k7Ƀk0ɵmddbFlՆM$mfܬY#k7Bf暋7\7\7+7$ w6!Zw NQ+KozfVA^J^7%q@bfy;l˱U(o%DlծN*qw\ \UWw7rDqWyx^nDx]7rDqWqn*rN뛺 \T \U$ܑ UɵqrH5Y#b,eu#quk+U;n" ,B6HP\n]P#qBUhTRR;4ԊU"Wo"~ jE]LTɩ@R+Yf*A@* @5n *:H4(EB=۽gn䢡dТ(lA$f[&J"A&IhY" $`PE Q  $P.Ep(](M(b D(:(X& @A$ЉriV^{C 3-dLLQI&C(2gFn#ӱg=;ng=wqN=r=n܃A$IЪ!FDM adeQ 9,"L2 E 4!Qt3{={.H9%YL_yS<_q3 u7\7A"bg?&A"*/ԼC$޼7\7R\7\0I`]u."A$lBu.!A\7\\C&.7R0E6,Ő`Y6v,w%y 07n7c$1M,Mqf,Y +;M#7ܮY7+ܮh!cidck.7UA;+ld]Ud*FB U*$B4* F١A~26JA6 @YUFY(&bҬ6JA6 +$ 6F $H6HY"Eō6A7\ٸѹ+A7\%cfɃes\$ilػMX ds rdUYYI]y^ ysfsDnX^WDzfD\I&lY",U&뮙d^*∨?-YHmec6J#dƥhB4HSR͍h%cb͍ 4 ՁV #Z+(Y,B6J6 X,lk6,b,a1c Xõ&d l Uk6M XQD*B SRLR$TԱS$]r,bԒI60b$EMŭ!EMHb+[PI&M6,lCEkW50ֳEf#kYԊXfmk16"2,TkY H&nȸ$ 1un2bBA뮬ոqH뮠V$un"$nn;#$n@.W$urňI6` &J&s@u " ,ثlQ rn(H66*!W\M\7 +bFk+bD;me;Dc#:ҏ*_q;PB$TN1ܥt3)5>?Fáf6[qGpsv$3}u/?]8zRo͓ʘEQj֖ՖԮyzsXhрf4%#/5YFJ],B\O/&Txd$-JʻZQumI,ǛSm?#{ɮĩOEޮkƚÎ$Y,G$uv G~rC N8_wb_kbhNɪpK e%U*yc2,"e4AO8,FbBm-;fHnٖbWBǦ􏵼lJBzp&1\U܊-塌"Sq_mmu bz}rɗcRRhym*͒f42tJp=u}Xכ>M| =_eQ]s}]kɤr3 rѱ/Wؗv#[M25+նQ1vxhg6=|+R:5eUl钼"N snZ61֥jY7Z6ܡ+UכGˢ,V%_qJlJ(kg(4̩2W!x#Σbo} [Tp 0NZc֣c*Im)ɹA t\ߧmMktU\#}{6/W4Eձ ~O4ګd4=#Y-"=QɶW(ˣ~.2aWUJ7k娖:aum#Æ 0>~p6ց~XLJY9T̓Wg n\Tt^h <[T:n Yiߜ`_Hևl$%y'.o jnd;{Gp`]FZE$o𻽘)P[VP?ߟW Tk2Mnr~'"Buۖk,4\F͆kd`Bkv⌥l)_a(qGLhj`snYոkl$دI yuis*N[g9y×ͨGɬEF )ƮY\.ݓqƣ#Nvb&o){,]^PI(z>4tvMSS-7e/cu=H`qhlj«3 L^iWEcϦmTzgom^:tەs 8ĝ鍦UNtmmn +Z#pxkԴHNyCsͥ)hj_~%_n.51ix^)s`ݮtVV<]eK+ZU;)q+񯘮%l N"o'7JjT+!u\Wii),y)U1-1J 5>(|F=l254tQr=*>KMh4gtEeeJRMvY+#MƋc0CfG=U=ַ|nssTcu8{ߏ&C{%-oMYy>z+;@?\JӕU>|ogw{W?ig~Oj=5!ήC!JfԔk=Ig!ր)8u8tǯb_D']oF(72;x!ätf'ԀU6x< i6rcf㏆|ٸroCauP.+#[oo%9GppT}^xpqAwx:3|si$]٨e#<2<*({ⵟpkÇ ۍ<] IoN]w4ucM4xE@"3 Zj7𺚛yfnySwf煢eΦi1Doٱ5*[.MVVkxf\&Oiy,{]xFeD3D5鳏~ˏjZsHufeYjۯI{?}f'5׾T{ Fs6b;Ċ!y63{+y~c@YÖϼFo$Q(齚f) !pɇ:x =zo7J^/rM,,~}0[`qQTkÇ %s;ƚȔ!?j'c@M3il114&([^aEUQW>n^ݺic\Kjۙl3-//K;K&vAB,PF v"6kH `H"9 8g`w\Y_Zr y.%87'93=7|Qf/ԨH5[|e8m)Ri8JK,ui&oV]bɝknO2LD$ (a"Q `I-!sKȤRd$ӅZU$ 9]eY5ǪF *tZ#DZOU9y+Mـf c]>i ?U^?Y}ٝ=f!<7&6iVf4r)ymٖ^۞[P+k:56vu'5Rկ_T\7oII9ݓ{xBo =CՓS7`6s%䳗jT7ͫm*:raB}RYst566KPY,M\EQE: ѯ> s Hw_![½דw`j@kE#we'uaՔp%Tz>_đ'%o%tV?{o/6H3r3%;3ܴu7w_AW! DBBBB7p6J =7SW{/sqi6mX9CF kiI$$@j($&@c`ĄπxB1 h` R!QEQGOCpn8pz"I08kH.$ xpЬVjBKŽC|..\'bE2,IdVHHRH$AL$ IIJAlY ̀{T9ALkI _@C $ 4E @ &),âHH)9d,002Ip$I fHHTڽ+ZV<֒uwU~Tjֹ[FߣZ5V_-VZŶhZZ~Q[mom] HE! HQD»^ڍ]vYFs1LNVƇ N;Ev6kr֏m֖ \lm---m*m- T]`^^*؋ǐ%q4HKI{KKKKKKKKKKH[KKKJZ(ق(]PO"9og7ӕnGbUzׯ{׳o͒3@/Xv.|nq]gK/Cy YuPL\\\Ltsل^(I@B !)&L2jѣF4hѣP&4hѣF% M(|Wa~z)wo /7c pGݒ[W' q/q~o k+sv 8dIB6I )$̙- o[NLWӍ)&%&'mi`ۣw.wVǿ% ՠoʄruvr-.II+;߼| XBHw:ѻ0_NBU e-eeeeJ$+!e?2䨰2XXXE2eeXe@3+Ck`*^%Xx@^P?7WoPnjPSiM݀MbC~0@"UIv=gl{6ΟfQE0 | !W-rK5qYqqq >0^ïDp}xX8XS d BSy;*Mz))(VWzzxH^^^i7lx#D-%BHDN|Jǧ{5ehk#'oT5nEח/2sKsa׳s]nyP;k;_CU/ٛ܁\:\2`.. 1777*LSPǠnnnV-#}y >)C!Х%%%%Xh,,,,,,,,,,,#XX&˔QE݅YصthlH,`w@ Ga8QLjcef(2^BH "Qt^F03x {*M#fc? p&4gοc9suA,=8'Ӿ62SӼN@/@21.-d)驩#&+4^p,a%O%%F'&K'&NLNNMNIEQEaģʧ@0EEFEEFEbŊQ"Ȳ( "NͶ[m]cvgL$PC.ars3WjNA]E2>mc@pc LLV@Kِ' ~eB=/0UP/EB}Kyae\%|٠GuB I"S4kR] ԁ 0|"j2utsutu utMKԤ]қm ^XӴٸ]~K߮{g;Kxȶ梿hr*,HFd5)+++%g++)+++()fK+++&{=$P2! cTI˪MUPP8xJRᎹRS!3bcJ(_(1D R͑$fI"}RLb0$0_N" CLf2/Fn(_d,a$Nwg<^ث|>b(J&? _g.gWSmC`5knyU̧Nw:uӧNU\x:uӧRO``+@ sTXSG?yw_*g`Pqonl*\9 O6/o&[b/ؗ`?Odշ mm“e~b;u+Nn1`b0j?-,gc33EAk5zk5uz pQmqsB#U?kTO%M_mGE5uCifv8\? [ʉ'2$pԒԨ]@ l_p~c.߶Pj-NO3mLQE%E@꬗z{=ƒv۷nݻv#}{q!w ?HԑQ:2y9,)A|H\,t٠VZ<~/f _*_>ޠfJ@ne/ݟU?X8r xзzrY{ )2BVfpoH&UQt'2 ;-(Rf,m'tnObQ :&hQo/]/ ~9l}I}|QEQP~!M$½P@F`<(}\WtH7wRe bƄ߸,ͽ?oȅ]:pmgo<<dEVbW!Ut<*<=?T=Lތ1}0@Q/=SO,њةEkQEQQ@f@kd_da_0657]uf/^8 #~( 8D̍/"7fKW*/ܹ/yPIEZ~Ofnp1G BGɟ_;C̍Ux?O4?-wtˊSqn{}ǧOZXXXXXXR.XCG&3GGX7XXXXXX7zjI6aai!5DJ******WWWWWNWWWWWWWWWٍsj636}g@$h$O#C{/p 3w?=Tx6C7gB19:\'5'g%áQEz|T~M MMLJnEEFuQQQQS QU O` @; P|7i۩i(*((םA>$} g=|"O<=?F1\PQLJԀ smp~l ft4= އX "m}HӮڹ3CkټL^iNs3-ܪ]>I]<(Q i br5hѦM4hѥF4aoz7R :tگDDG d  G@iiihiiiiiii,iiiiiiiihQEQVս)f0&#Qz.wׁq޺lܧ6$ mp[s?- ݽ9 iOmM?F%A~m} hdV3c9u>m@.e^h-m}S탇W}y`W XJ wZr~UhSElƆ3;Ο_2PQзB}Sv }O+}MSH:R39IQU\{c_ee-edJv0>$d8vK[,Ekju&+ܝL-UʶEK:FrE # ͪ*{4jnjnmk>iEQEf+'c^׍jիVZl+Oݠ.LG!݇zi<;@KpC:s?,g2tz;5/ZxWv`,/@E|--;e ꗓ96?ߝA}4OMwzsh{>=7]@ $6@~s+ l⿡q@x{Hb}>Qnnooo]%oo_ooo/o onQEQVEP~q @'C@x@oas_, l8ʃU҂iM(n <`~q6QE@!Z[H,ג ^p\#tmDx6i2}xēozRpNTs4K,i_g}W   BI`Ӥ!WWJ<}mM?Q:Yt k>/_o{\\.Lw ĮB̰]]]]]]]h*annz1P$-!ps`BЄy'oDŴ!|_HaŊĩw ]əsғ-V~Q6# .)| |FFBDND.BDrEBڎFFBhڪ,>V@D)Pv{tZڵڶںK BbcQkkkjkgjzԳ wj#0 Q'5%&L2f΁6*:QcSfQEY0b@"VT p1g0p{h% mzDb'.u2r?<|ٖ[BZ,`(EQT+'{/Mx]oUw{ŵHP5:[Ye>'Zb0k$TyVW)zʞ.WWX_=MƝKydz¶8p#&I,IHH88T ~r(s  @@#F@7Oˤ$6mٳf͛6no͛6QEQ^PPIb >y{[ 7F,65밦9n:QCz 914? -G" oIA AAAA@9@ B}rb"7A[w{ck #itg3 5hѣRP4jj ѣS0(ҍ'))Þ>)]?;3ju&꽔vNo&'Z @3EcQ#Z,b4ZmDjƴEMجj-EkmeN=pfbI2 { `JFZ[en+~ZEܸߗn1Kְ#1G].$[G]z2}-lέzצ\.{  wJp~ \\loUlS鲣]{ԜU%ji9L/>B>BOuAD]%+Wۑ97Y:|x{i;>3)iiiqv|Z8{/&r TBulv4 3I ____^ML1 H0 Y)@DRӉ4f H"iBS D%K۹ːnnF$L2 `#I]i6F) A"@C0d ҹn߽]"h"I$i븡zu)RXiQhiJ302f LQF١댅R(HRbBY(BBL.]&f$=tba"7Zhte(y܈e#,I!4Lȑ 4DIR @!B31((3(HgBe&KT- A2PC1`F!Fkq)r̈L)20. & DF.Pq!@yDAvI#$d,I3D!\T B%P(H0i; hbLM;qÇ 8pTx7s8pIǵQ ZIddef͸{6lٳfMz6lkeQElȦ6ubXrSXdd$^)@rKV`6O͗T2,ehgU9-Ac_ 8]bƻ5gy^n8y'ˑxi}&rZ14zF6cLl/󳳳a𰼺CI'gggg_'[g^[ggggggggggJ(*vM9P$ѻyĽ23;Pњf;VPDDTK)%ՆNۮ㫁TxB'1G]kpUW~a`/<`KL!DSzY?/-v ~ ͑Ȫ;wu9q^c{x]80L,r'Iȝ) P]KEomGUXTMUv7[Z? _HqcXyTZqU_ɾk#TrkoM4pK_:mO|'hg`&7|vx3#tɁm$7)ZڂQ,sGGUqGQ QEQV[ + i-HW߿~XClz&:Ҏ<܁BCcFPAƫ:$[0[<zuW_XEۻgߧM`Hܑa&l o//o/h#!^G"/ (*v ^ j>@z<.])7AJUa>wfiy^w h=Ѻ']91B8/,De G xX̐N};,Z||hn 4+FE> VA- ٜDYuѮ߅넚٧ɂ(,}މUppGpppLK87~/~/M~~QETLM@!Iik\[婜ÍӽB#pپfCÜRE$[143t tY{#-i+<P{J9">ﱍ)rÇ?}fJrd$SXOTͻzcM㞮紘<KD97GN4)R%BEuQxօCRzڌAlJ%4h;3FM~4j@ѩN&UwѐؔegK M pР}{ A/ MᐬcAeNGK8s%dlOfmGYz߱vݾ7M ]f52V 杀eGC]6E4ܡw_NI< 0 v&&&&+[WY[[U[[[[[YKZ[V(ypІ&@S.Fyu~H"c}`68o5ǔnbq@B :AyRrұo|vΨ座Ҧ밾` <_/ew'hd!WTdʝccbbcKccbcVl{Q7N8fbe>w>}^p^omSq{$G!"۶e0B Ե5550\\\Q\1ҳ\\5\\\7\\\\\:\\QEUGe'yve䭎ў3xv`]3}(bu}(+~$B-'TYD4U%n<6rb> d k6dL VqqaOԦǢ][{?N~O7kuyfƧ+T}{x69m] .vPmoP@F #rQJ x JHZɾ|:Fl$ўBǜ61[ N{ӃK³.о|ÿe>{ι_iH9S ;Uj 4]U1w0?Eݬz-W+|)daڕ:nkG;v YI@B,5mmme.mNTv[TSUkhv]~ EQEmT6_11-4jn`mf r Gyo3_F.Lj w l2O22pC $y$ܗǽ}: Þm){鑎} GNwMYȱ T}57+:{YYYXgq}ev_u^4v.eeDepE0`&8pkÇE@?8pÅQI'hB=$4R&Ky9 !ba Ă@ \+fHB]Uaz-KH Btsώ,\e? ~^K~Ľo-M'sG=TgtP\mnfٳ{'=#̧*m๖̓}T3ؖqutB[LSN@ #y =~Z,VND3.$3zU r'yZO~Q}=^@ &*g]{7I0e9E SSץu֑ WN )uDzV5ON>/UCd:9j}|U7Icrn}7HTgLO!!'s2MN7OZ=lE%9qM/5v>L\,w٨jʔ,əU6f+%p^ ]B PAP1鋈c( dYYYY[^%1WWwhbJ(*qDK9nr>CGi*౺wiqMg2@`?Ó#":%"<WD0|wٻ>ty.dl_76mMu[ۜ{nμ{}!B~ZTJuC@ԍ&RwONU;֩\"%oү//oޯQi4.[vݲS] s@Rʃ@LњUx>kNZ*| ;`sX)QV-[[[[qq3ETGQET|}@싹|Vz۳vݻ}F=xXD7B~N;#mÚߊ_rHu!4/ɶDjE!֡>sxKpkщ&KP*|XLLLmGo6}u/nN^†ZauTy1XֈiBE_8/Z\vQi4v;nB9Rn2͂H(5 1Z,"#j:cꝿ6(. RFz,&b-z밮봟2"DĂI^/lb,-2#;t"7K\(4<۔͌4v,lldAc{=E$) N0e G$k3JJ,d*1,M QP]$̼n>L2$i,V 4Q:%IFLPh6||@JI2J06"Ͱ=Raf)LH)un^u%4P|爉޺SB%^w {dh&ID, uCo^..n"P1%2|`T~q"S]oq3) b /r1e,DztC2YcQqI1ByAad-޼D_+c+îRLȗnIC-&nmq4%4D)0"HݏrZBf$$]V )4`xR1`-毶zA)F ̥)uM#CčI8- ,(If}K 3S3 hq{-[%)R`CB/sR$((E]c Y0EL1dɧzH/ܔ7[H+ˌC L@0c'd>ta@мp`ݣGX{] ɃDzWH7H+Dna0IC k AH ƲT}o;W"B BOwW6I 2;`KDY6IIb<ſPb1oo<܇͑2>?&2HOݿʸmlF3G~YX6~;;%1)]fZ/mǓT2b'm2N %t} J-k/2.wmLOi7PwWWWZY* %F0}iTxHPf)1`B:Cތ>TTTCTF>[Ԩ[[۫M9onRiESR.W }i}f l7At۹ ǢF,V(K̙&"Wh:FD~ 7: IOw0vHL+D (_IbW}ﮌ]d_is\cfduĈPۅ7ѩ f@>瘚& w"ku7ɤWwS_n'q|N$ߋdI2o(7]̌1cK73?Bbݯטy2ICFWILJ"R1+kqF2eΒ4݈,)d"RG\oƘ|oNb FD"x~=l yEq:Q0Eb)"*$m|}H)"h;r#vtQpTې@,Gd􋤑oڼD~^H)|}v e<ϮMDH"r=$H ϙOɻ軣_;?wʪãQ¶@QDED[wG\f`}r(I 2^LR0_;]Gĺh}G;1>Nv2I_\b^7ݳ|]ӮZ3)okTXU,hrPIs_yש@2䥒v褒)(lO9HD83}~I4tgù]gn4 ϝJfFq$a#p~ӷo 45o_pܘQ/u C.R '.81F}7Q{wIWGBv_HH:JID$\W7]2{}_~}b $ d RDJ/_1C5IݙpH>>bYA?;)5ə/]T$)A)ĔƉ3'{Bv$>>ܡDDWwn:YH) ޞf I7oɃyrrRMznݵŊ>GvI93 |!Lj=pIn۾U""NS{EFߠ>mu<7D,+Iֻ-^si;yZf*shU,1(0Nc 2 RRRRRuQ}omvX}.އnQEQKηTMՐ+0_sY7D{k0€<\h\ B M 9}@`81@qygP+2ŋ cIrY!ѵvpm<'K.dyx{a><7NGE9Q &c@ ̼%FOGy6s:o]ZG .qL;eE mՕ&|}/}}|ï8lkF,"DRchܫ.o[MpqTS`~~~vAffffffǚLJW_UǔVMMaufSG|Y7nݷnݻv۴xoN`@|X@6WoO=a,Q0"֑_1@dqνsq}.K~`9毁Q~齞q?oe poTTT-TT7TT>>>>e[eHF`1?-ď1]9^zI݀DQu^7BC { |0>#U:MTwP,Ph uPE'̶dm~4jTMOD)EE*&*******-$ IvT00Dmo!h(I`4ha#F4hѣF4hE&ʮRu;tJe'E?ty:݄twTkG~0G=bKbG-2Hm/S;ɫWscxOr]DEEEDCEEDjhѣF4hASFqx\3\pۗ%Uˤ Y b"T`90#!aDD Ç8pS8rHӅQE=/F'C?PHi?;t7~-sI?P@$qOS\#^A,v]=ٓAnaV|#.!EQ"@ctc"wYݕ/XysEF䴽!:Nܗ'W} ?d w #{{F:AD0,]|yzC\NQe%9+2T:wйRM;M'4l0w>\g[تY"vnY9ݙ=زSƓhê?T.i8m*WQ~ KX9д8tOIý<>rֹKj@h㛋QT$B```0gggJggggVRg_ggRE,js()ߦ >чB2{zKmnݻvNp!nޞxu`i(`'@&  &4)HL "f^p2$0do,8fZϙk?}޷;5B`H`'2߱ KDŽ}4 aR~x\'Yʬet>$%[ۯۼ۰i- -&&-L[O[qX,PĦJ 5Pe hKD++(y('(++*+++*+"(^v,{vE)_bŀnwKqt+#c$'N=-X\A=Gx_fF6e"{Rڵz:2\Ly6)_roL ` !''9%p],nfiQ 4:1Eކ (j+"núLh0ǨKKKKK{;QQQNQQQQPQ=KQQQES0Qd sx' ^ ƴ s6]:}fbt.hɊiʋ'Coר^+.[xAF處mYrlz?_e]қģbsf'O6ϱ&e=i>Ks;>>YGDOSFRZcuL{-SsMV;cvuZo屉 ܐ9ï~lYQ;?'{݃mIwYitH_ BĊSb+E{lǩ)dر"pb!QPb⦢Qjዊ늢J5MPŠ.,+$-lli` !#h.#J/ &*v3{=4^!N%ZW"Z°/͎MI>k*>qxcOXyƔ8#; :CsfͰ*J N=OOOONԅgLg1-FCcP">O@Y#f͛6la3fǛ6lٳf͛(()@f-.HRH*! D dAC98:t>@*,AcrQzK !- #H}m$#/J3'.Z(2,ٴt* }0w䔻jLW?z +넽NYXUQmkΐ`5666)5p61&,Q6Gyz:wϕ:n>8i "Jd9T7{KU{=gnz0Ǐ= xǩOSÇ@V8sQ q4EQM jC$ &` ֳF Q"7>] ƌ9=_JF A % 1Yi4z[ $cIaj\0@ + Oڴ0FP%.pMK~/.4>呍iT%(Tm=/ rɸj1muթ-*}]Z@+k+k++A3A"y"_,H C"EEG=1]FkLO ,E_7}gYp͛6lɳf͛6lٳfӦ(fP uZ"ĉ\ k">,?CFKH J(믗780D(U,$ ywH֏Mw~=i (MT]oi HYn=a wf ^i0 Vy1GZR,(h <5<_k+!B> k͒Q\Fy;ߟhf#=(HV8(VvHKuFC͏,Dw;ņ-Km8n1P ~zj p`{Нw<4,g)Z̅:FDt+՚(VVVVVWɡPr~tR)\G .1h^F﯈HVn7)22d׉$!awX=j+atw`q*>{aSSvSҀ'D D@ X[mŃKƚiiw~oˏ@$S~YJ0_Ÿ+ˆ7~2r'ύ^>CׯdBqE:iIx=tpBL)WK{SXXXXXQ,nXXVWXXMXXXEQE򪪪B^efCT,$?㋞1 6 RPGn0A>tI"dI!FɆH*= ČX)H"CH\1AýH~X(ֻtmdo?S_}z߻{Uibj>~8I۞+z5n"i}^:YkܶͲv""!""!PӥE|y荧bXg}kR&AD &G[ 0H+ UjBe]5]eaEQE7*(9ߋ mlNA4s2"3fXGN#Fk ^pF3Ăk86@-/6҄x@QنE+0H}}]K.`$ͱ_W>:`95It;k3rɾ9Z[OkbjPv[CP$`:tԳb:t,܆c۶;[q9MWmFqd ;]$3,*2 AH"q9999: ֲ2F(H;."la5% 7]{ u? :K{G3|FpgfCPBc˔ABX8ZlR`7}X$%@eDh "Xͨ &2 J]EP6@bYd})~pűW m3*za3R.)9{uԜ{nx o1eqypG-yΞ!ԊsuQjê u$ ]?3O>^Z͔^!p.^k; uM);n!u^9Pa@?wȩUjT:VU#V.j-UZ-ENT^ :a #UF[6ѢYGGѯDĥN%nH  qe˖ >>󪳳3ssN,FWXac:~͘pZ[ZٲMcxI,8f}5y(ap ȵmg }pPpѳL=t VB 7i(H"$6` %NVFAN(ePߩ,YG_o{gi:;4GF$)s ׇ߬P-]{ ukkkѣc+4( DNXjc[AōޘpDZ|5PA4syiNjxռ?UC0` "S d@A !0l8m:1L+% "Rh纤*ZRL,@Ʒf",TSdhpDV&vj,޹Β%#|?uw棎쵝rjR7>HչީᓽU5^OJ{ƾ LBB ؛Rђy|gʱ3cccb//'//c0cc cb uÎ&j||ĎW7U$QZR(6=.k5v=+S  E 0͜%k2]Rԁ`,Zp. G@ukd(@ Ja0PI v9CɰaLHz[fփ]a#)8sZHx"츜<2(-j1^"?wXGMkbBNI+E١yz[109iEWy1z՛D&hu]ҋwK|K4GתWTA ԓU :$RIK*GN:ttm . D $bЖ"bA: 6٘H((G>ϳz ǃv;u؝:tXN0`kD dH?PcS;Ӵ'}^G#X f$cƆ;v+08xVL-VufqrkXy;6|ne8uΖEMSu]emqîW_-͋Abq6>K]^Mq2x{,#j'd$$````Q``````````JUaFGIHHFj5ӳSSsQ*\ڢKѲ³V.Xj0A UIM@=i77^Sk}F|eJ6[ܦu1nd+Y5l+mD39,71q; h^8Ac" Qz(]Nc wWB}H?Y}?#pq'3C(xԤ܉9\ ,T(niPX kn)^]O)涶yj^Ͱ9E1l>8q!MBggI_H9Zp 6 U pȁ^LZ!Lgʊ5uՆ+kkkkkkkkLV֘(蓼x !C.7oCJVpI B)J1G4BX|c8h BY<ӤO4d^`ܤڵcHn:2ZVS r42#@cwI2az[kޖ^0uYnt$yZekA KRR&QiTd))))))QѠ ZT)i))))0XC@"`= NAE B/ܥ'fY::::8:::::::::8::::3 Qe0P RhA j5~/Mƃ/&[%78 ?#vaEAa tT{H/jn'>g$vQ,,=Ƚ.3_foˣ$* no$DPor?@)2b:ގrаI@q4iΊ&M)EECDΑE0kEQQ))sYWV?i\ZD/ul,2ѾK1f3G}u 0% UTq 6yYB#?8A1Jj6(/]t&h&@EO:.* ]! HI`O$ɸa7 AK/3:,8L-}l)ӰF<;v '=Ѐ;`hDX7,TWC|.hF]=ٳ`o ESSRSSASSSSSS 3luߣ2{W}_Z&;dLp ~XE.I IYa PR________^tӧk 0`EU $D+L@Ɏ,r:VinH۞G|_ .~Ecgtgx ÇbB̤*>qILYpi$cW%Qy X!Bh{9H!?!H20jTfC%|=>pzfsKlH?]IZʻi:9R7s]\fyomR] 1Z%hH  }ΝdX[{3s{D*tRغɆ}"V~;$_K˦aCo[v8YynhO GKК7 }nb;nWۿijv>_&%cl~?u[p :jfrԗ_\cZch1ql1Qxȉc`lٸfTfms&lop, F}\ BC6YC'!5#` 6=DL R _8}>dv;,>*CċL!ƥ.CPZa_U ǁwa#n^g߇;H&TT0P%}Bjጐ~DcG;3KO6)מa͊MtN#1B@Ru0$0+7ҧx&]2hD"NQVVV+V:VVV3im7mvݵ%ŊV16266666& 0`šYSfIr Hw dsL%/kdJJ%] 7)1M Ub)1nWHmtJ.aSPJG㥸L|a}mL~rK*M+tJ>zʊ#.r MgEAʜI9F8sC(qÓ^7qnYaS|gxu0O|b`mvi]U1#"PI}љ0C-MMMMMMEMML]JMMMJ|MMMMK1 0ޞ@2J]%%i;ߎ ãD+曢`TĦ#@J/ϨBFzv:{( `)2!{(8`8>M"(WUƊ̀dn䁌q5UiiVgJ1Zt;_͢s0uq7-9<;l-}T6?oе8AMJaD+lz)]㥼ÊΟ"O&te3nlTg-B}qmk({xuG|_akW|^ʴ,-4&UhꦕV6:Z 9H5XmDYˊ~;}>P%{ћL"PDc^{b7HǮgtvDe13AEw_M:-7z7f~D#|+,,;vpg|٣ w]M4,0`狇1{!TJR@r86Z-n?..ɷ Ι#ߒ|"~ݿ`Q܈wtGr""""""""""""""""""""""""""""""""" DDDDDDDDDDG~"""""""""""""?,DDEﻢ/~wD_""""""""""""""""""""""""""""""/|ȈDDDDG"""""""""""" ʈwD|""""""""""""""""""""""""""""""""""""""""""""""""""""r/[""""""""">'""""""""""$cӑr/tDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDGȈ""""""""""""""="~+"""""""""""U}"""""""""""""""""""""""""""""""""""u׫""""""""K󨈈¹|}痮興+#ώ"""""""""""""""""""""""""""""""""KDDDDDDDDDDDDDDDDDDDDDDDDDDDDD{9tDDDDDDDDDDDDDDE""""""""""""""wDDDDDDDDDDDDDDDDDDDDI}Ȉ9r"""""ûDDDDDDDDDD^wDDDDDDDDDDDD{]ȈwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxDDDzr""""""" $DDDDDDDDDDDDDD^DDDDDDD{"""""""""""""""""""""""#9-DD{Ȉ/¢"""""""""""""""""""""""""""""""wDDDDDDDDDDDDDDDDDDDDDDDG""""""""""""""""""""""""/tDDDDDDDDDDE_""""=""""""""""""""""""" lDDDDDDDDDDDDDDDDDDDDO^;sNRM_Zts O`ƷRs֚-\'7T I‘`3|p0;> ^8Ӷ^/nr{c5O?%It4Mxi]56-A|GPCsSBwl>[6fՁkz'"K B rņ̻ݛ 뭝m:[<5)Yٳ-3=N-1H܁X!p?$Dh@bJLJZ]mkEml%mmmmmkmkmnl;k5f{VFp!Ҁ1P`1HK:[KR&7fL_~`4?ʔ}!k-((Ä=hL9R+Ihp~)h@Š՜.hC43tHkuը/_@(yqE>V-%CB۱@Fx>}@`Q~APH68 } DpJІo" #|PIX>(Y˃cQNCC HJc3s@|HEA" ,DȘŔS$@oMWZ>OYQ{uWr֌ffۏ[#ÛV徽ڀ`13 dj3)R>DL$NOOL49)G $+d>xdvF~^cQV$7jP23\D XK. $~f'mf'zJR4C$ _()\ 9V!ViՍUcUXYSYYX5R.q?Ee gP MHiոQyko*0Qdm*˨(((%UUUUUUUDUUUBTM-UUUU0`ӔRU  S2gJbBYd (Xa3ρ:R*C ( 0@8aTdPP#ފҏ `ZhN,*87$ IHE<X eM/[V jb ϜG7F xy]k$ .g]s<oY;"Ӛ^`j24 v{d#HI(g$|e#g'Dbtb#b))$Zd)i) tHVGcdbSad!rp\ˈŢ~.\0 4:PLC$H$ >d q " jjgm [V*43F[_rz'7z0)A=EaK}86V=!JX1R."qdT UB$)DB z (B/Mz*!IbKb n5 HIK9<: (aBK5"2u^BŨ'/-i`~Hni* QYRc -yhh;:b57سD(i0'Tq5B8lGȅ[׃2ȓ cX1LӃ +AU a2Xp^mSgc.=pY-5IMqVw\'&h 7M{Q˭~~`ppx(}6)`2u`0ARϾ H{V)gRzX 4=շˎBoNlF -%!,+ߦ&|͘J[({ L9;>+.3k!k9kkk>ּlV=[M[ /0RF|Hs[ʔ>ڶEKEEC pM )=,(2L_|* ;;:;>fefezc&bI<ˊsY7 0Q6.?Z3u^CVlHm{ku}'zׯ4XXxD`vdA h>+OskD9Q <͛)$(D2$U"C"CPILY ;Pza h.05@&HU[:;ȅ=R,?^&# XC$!) #.ыxz ?Nv>]?{Dn▤Q0nrxD8ȍ#E 4 EkDF KA45Yd4LFKLDY٩& `=,?XD0N;зNG~n)/ B`i11111aÇ:9 qÑ')0`ӀD(iR[aGOؖ/ؖPC<]F*|}%tP@̂,ba&8F^ŸLd\2Z优o&̸`B0Wn`$;MV%ԈR2zDJulJ`e=s"}^'|o}nÏ=z+R-Rk#d|1|GA&9㿅.&)i)ɧ{GcH@tT^ :#Y}T0NjH#i2dqQkύhġ@ {#P&TcEPN{=g͛6l۩i͛6lٳf͘0`A=<%$cA?T`|9zx%0J)Mu1-W3eKD>L0 @" H %/^Iup͑6~&/_RrnF夵yżC`QIL JdSڄ6[g4V8JR)Cre߀'o{8G?'4}粿[zOɣ5\$&P-QJgc3 0?Bx˔.8pOCӳX [Ivu7;J[GvMxSm!%O۪A>kQ%Jg =ÜBU( r r:Sߒt^r8bb{OSԷ+X {FrRAK8VJ%uDdPh 2 ngvO5jǦKíeBؔJQl000!'00&X0*_U`````K80`I@WՆB% rPc,2)fQ(=.Hy) J6J 4U[Z.,Wg{gf=qE;~Ov N)Xaуmȧ5!oV$|3)\4`G2יUBC))d}:>O %Ml8 0~ !?:\4-PD=.{&  \[\?uWn#iMX*X7i,,l TFƧи0M@q D0]6Ⱥµnfxe׮/ EbpIquqѵuuupUquuuuuuuuuqV` :MOMT~LT`i[pO%^}nn)˚;>:-Ttk4i\6oeK!~(7$Ju͸jX`AhKR"9/ o({1h`-J8栈9MXk.lÎXpb6" y ;(D  `~2gWl< __,%&J۫rcz׻K^ޟߟy|lL;cuR#q%ChF[BBqd|N{rPlm[X Id|Ē$IϿגŁy$>554ƗwWIFJ1扺X\\V4 Yp,0F Sf&ۦ3mY/ٹڦǷF S(`  Yw+g. fEL!!! !eeeRz|#rvgrގ^-t'B1VGDPx*FzJt"EQF* Pi8WbF P8pÏ'P8pÇ50`)QXtUҾ76MӅsA nr6JAiz^~K[Ud/ N?.nbJOסmo40̀ҵڔbH4+KDK]iå0Pu. `4:EtK(ssΦ)n*ً [WBL0eja->C~V2~]<hlF }ί9>L=R:>;PP,l_bllXlR,bYllj XafallTlld'T x6[gb"3z^rticA CڢY -ۏ BtŽ5]U,=E(I $ dF6,%ʭp5D,$[w Gb.ggl3]p#{+ueS8PV+UH ޭnK%?[Wƒ|ƺ\).9kPY2-*k!F1ghu?Ee2Yi(?Ya|bȒPO  a7.HM WLUBg@ $BgrӲj,f50` ji`5@ `!-9Oz!.(1^?w<+L'_~Oe[-ed~݀ d*n0qᛘ"Fi*~,2lةKUw6QEU݅ R 0`*x)N'ࡢS-EN } ,; ̀&!~C>=\cz=TpUzWrA/%Ws0``%ql,0r%)4Q(Hz75Ԕ%thy=^F(11di|>'y oЁAA az;kt&Ɗ~WUQsz9*6ɹEm29MoVUY~;Y cծ~ЛW]L4ffR.]ekq͇/>d4[;ۮ;eL іz!rZ(٫t{IE%QNPXK`&.=e|(ai~^ qXJDi {8ص Ғk3FPGn1͜Kt?(cq uJHO_U{8ާe_?鼬JsAR(j $ʓMNqTh*[uRz3_AO>~܇-W& DKKEG6vzY_>^w7۴_7)Z6*UPJ}ls#WEJJK"sy+oZx Ǐ!ޠ(>So?T֓HC~gC`s= e8ywZȽƃ+Ğ(\Gj~>f^!>;^%םr>_6II$9$A$I$DʒII''͒I$H$p $ /I$I$%$I$A$I%|$I$A$>II$OI$I$"Kd}_o뤒I%YI$I$%I$I$D I$I$NII$I$~I$I$I'Aw]$K]$I$ "Gu %.I$DI$I$$aK_I$HlH Hܺ>I$OuO}I$DM{$II'tI$I$M2$I$I $I$I$κII$_sAI$I} $I$I$ %I$I]$I$$u$H$IW]$I$I$=$I']tI$I$IW]"$ $H$I$ID}H$I$$I$I$]0} $I"KRI$I$$AI$I $I$I$!$I$L $I$9I$}I$DI$뮒I$I$I%4H$I$uI$I$I't"I$}]$I$I$~I%>II%)$I$I$ IH뤿I$I'tO{A$g]'tI$I$~I$$H$V뤒I$I$?L뤾H$I':$I$I$]$H $$I$I$I%y$II$XI$I$K$IIDHI$QwЈÉQq+2``NyQz<񟇍O1iXt -1 ֙=JcA_MtP?H`M8C`i6فÀq܈d ;s'@dŐY<ɓ&Lolu}*5fZ8HW44LA/sC T.i:{]VE]G %]!b~cT= 2DYʅW 9;5xsEu۸xY74+>Br(R_w;B:C BfrNSSSR`"jjjjU#UxC;} w qœi,F쐬!<'5A`S) юGT b!SS^P I P-DR2$RH됼0m蒣D-GwTE5QvfKxWAwa} i-@\4|E8pÇ4pÐng@0Ð!vbյ׼/?3W@x r7&J=u`c[) /XHR.9XخXXشř2dɓ&]AA6#1$fwQHĹPN4 h SXc."Z{ƐS$(YZ2P3Hd\|^k^ 0D %@[E|3z.ƾ1C7N6#qz DMYzր.i @ {U,.aon{M5/.ޮcta,abV6;?qN)1NF*#%uA\^ {/=Ks˄Cuuruut ut\q&L2e9>dH4#CNނ< Qpc{PU Kzeʉ/){[7O@ͳ_r ?{0ǴLt#36&0бy)w$xZ3[y{J) Eʡ_2PPPPPPP08+t jxcoA-FH; BT $߀Pgjjjjjt-TT3 f ku$ic9 15E$F4iѧ7F=Lp4hYF2dɓ) R!#W$izrj^MOpշޝong\J!^0([|ƆB } L6;c1EFe˪hMޅۖG-MƐ*XlB/5Qu:,|zuAf]Ȳ*f2wcU Mf ȺZ]_[o!VÜaTdJK !%xň@$; cX/%r]/g4M4PL6zm5e^z@cHXȨD+ez??yɐv)^kAcg&e" 4~kxH[ ߇QH'@c4=&G֏d`n6zvxV6<) BI#|u_<;g.!2СG;׳)SYYY Y*il,L̺;}Vk^?֡"qu/ˤs:tç`:tSN;dɓ&LN DdF 7xo IW.DEi#a_ӯCrB_ [֧/ B@đp,XLDrw_cڸLEOu.q=HFn\!7Ԓ"aف+ʆ3BlLJ@`72~\ٞh[h4GGGFFFrdHFƂCBXcH44NU. 5fY{z2dɓ&L'3H b$D" fՅ'*6!Gg#UDӇPjoޑ+9?vaFU3 c֧idFRh])wT7EE3#+Lm㈡)IIGGFGGGGGGGFGFfFx3,t/  A,!,`A14hѣPf4hiF5hɓ&L2Q7Rңiq$\{{m *ҽNc[l68g#)΢2\)ސ*PPO@`|@$)hkD]kQJ;4rעcZl(8s(e9뫟sz[i4J/2w/"բnWۛdr[6' wE]ymyԜzxH:w@X50q DM.Khiĭaw[3aí6̮I0k YƋ7k]<mRqٺwh @Jd*9}& #H\1adJ:8ڕZJ/_(N%` d+&-%Ok9EGAma` ='<!s:KkZխ{,p B@,~T>9$4:Jm(P#A [0zO8=ĵUdtNl?K^-Dn)B- r+Fgf` 8|?d? aH,ill[llllllVᡡ`@v66,tS\{o;M?w;Cv #v8f>Ǐ$tc;K TnA ;1TvOޮq{Kݢo|s__KOuU]V7bc lmmm0?d M z#ey$FGHH.Ob׻FJMuh[v:Gc!ûIe\~b frnS\-N}OZYYXD甥-K/eՊ_%_k{|Šzb5O|b8 d.13ƽ|JaA=-%̙y 0`’zދ_y?|ƸN&sjs~Vv[`lB HjxlY( kZXƏ l'FK򿈮 2]8z-rEBS<K:c^rq]gEcھNn-ONzwkAAm lo0v1[߶R+.C'ҫ/n)0g*Ng}L"lR3a| {j_DTU# U;8ɋ=a\ ۤmmoy|tG^QhYΩsD@ 7%K^ sZr¿ʚA1 S$[p .^ʠ5vT}lvmm0`#3Rx0$AmG;f뢵kf^[Xc%l<6"r`:&ESɠCJ #$?#$qhTŢpO5wmE*_h - .0g"5qlv_?!;׍E0(p=x#lTnAKQx.GM]cb❠HzŬ':JͫBBB6A>ejm(xXٔ,g|`!2HgT8r ÇC8rÇ9Y?>蘜=t҇aB e{hΈS|_,ju Gj\.^XQ|mH!b-ư_BAff7Ȅ~WK@ʢB`*U4{>oYa}q5IQkg8bfzlkmjVK]raNEJ84RMrLGW8pb9S?\%F1eۄX DXGS}>QEU}}}}}}| }{܍}}}}}}|}}]fYkOg3l1,.Ӡ#7D:䠐} ԡ%ܖ{4# 8(,W&{Kμ'+GpSqQnuvaO^~}Ѥ{<)Kܢ~SYe@ !}!6(lٳk㥧&thHH884z:zzxzu'kbHCa v̀AdޒBmƵ{6-]$ @(FBdI 'BBIcEY\no7vv·zɓ&L2SD(6އˇ!a5%n^jy/zy| ՚ٶ7+{ 2E`9 1]yw'mcZFCUzfAF+WtComh>/9 F&s꡴2UZ:NmW'n gzܵ@@7_@젚H-rI HTS5>#8ߤ*QZ]O4Xa|1"h?-sׯO- ծuD:.:mz s2OikF 80 'cڔop0ђϞmWH.gm`k`DsIaS Hk{XAWٰpA0Aq@ )))))'_Νh:tӧN:vӼcyosS^x Bg=\B5)@$H<0 OB5 hIF5EEDhԙ&L2e=>h$@fWZOLCEXaA_OpWGPQ ^]A4ޜowN G$}rh$֨/XHCڕ܂j]^^íXMFe]Uy6_dbkOhZ\\n9)M\IKs>}-~nݫ`(TYz0i-$}xoIxoaaR0^ ;0aUUh,CGW Z_hbe23Ab'TMU>MOOܩJXCb'V`c l 0 ;;FNS'h*ڝMQScQU2dɓ&L1.*2cӮt^٨6| ?æH:/ne mM GrE߁u?uHz#g38z*=@x&=~gn=i׏CZd& I7Fkbmݞ5о_/Vy]+^~ "?1@U+ pt(688.ɸ8,88*86;Oƒ[=F۸du܎Wu.Q^)aXi%~I &n9ͱh,.K(HKظ.H=QkLT3h8,79Y2y$Qg"ʵC3y7W'f j C+ VA^/<]!&> ajx?vMv\U>|EίC|Rp84':yY's|8Ѳ>?qzH i[~Ϸ{.׵xuw.tWkkv.r/;Nӗ;NV wXx,>cŜv,Íh*6he  i;BAǞ5"XCl->AQ %i?t)tzzzzvjjm53~>>-[p7۞e`1}MMMMMN6KP%WWW#WWSW5WUWVdɓ&LNTR>2  Gr'V֣V8j&%tz^_r{M,7&  n֊-Is}w3^No-s,/fI[r[.o/u*9P{ڪ&ڌx +bkT[ Ѽ*' LV @ehpaRhuӰ`sW/ތmt쳽^l#^ޝ_^7O0qm]x7XZj~TMk{^@SE B?N\'ѹ|ƨccI222*1]r4JlӖ6*y  ˽>tWGLf:rq'uN?c{L{ N3 Gv21h -?_v+P$ YPY,VЅҋT{Rt4nέ{4}Λf6{;͞f^2dɓ)O0Lx;׊ ~?: f͛7x~TʡlTTJ=|9|sUgJ2fwsD^R4i:rfXB~IN3l~WDaƁPi%דּZּ_盛!Gd[0jjjjitttttL2dɔ J#R\E]] R\Z\3 sV2жgBE8[Cwy9\]9KRs\ R_ĹRQUs?ȷ JL&\%2LqJ0D8g{6f:٠wJn/ǹ!T7]HVS ͓ Z3Hy *J24dzϺR #.@ |L.f0PqcZh---m-------%%%%----ZV _# ,DQ&Ѕ%}ccS&-0 dbqÇ9v9qÇ2dɓ&L`0Q jj TNz[ѳW0xN;t,EES]DgA8RriЧ}qSsY†se| &F+Ipsyb|7jQ pTo>İB^lí3U8PḴTP1alf'_Tw/\.8:zcy}]5əʑŹbY)w&`zv+g -$KQ+(wV6;GQSh@y_ЗBabK Y ,!aa9a#VjmmoJO Sv0W0@bSIc@?'}fqz}#]>^s=oߵL}`t*EF\+? LLLI,S2(2122222, 2d)=xū))  Z$h -}M80` f_ d`4 e<R#xiQG.N=KA"P!IB6Ya~ y2Ifjil3ÑfTOe0ʺ{8gcnִGb%"vpĹ|EhUBc#H8xPִ<:zSi0M3\\BfBy!2b@!Hn5vF븥,{\3AԒV0^1tZ닋z;{tUٹiQTk"| 8r^E~^ٯ^uz#aH $T tuuuuWuutuuuuuu uuuutg?4 P4,5V9〠0&letɸy9&L%7VxA/WRW7=,ch &?p1A W]}v M_5m9O C:nMw,apm͛6l n͛6mޘɳ:U8&Hsf͛6lڟg|O䱄KX[ xűhB :XZZZZZZZZZZZWZ]!&L~pqgt*$u~#JШ'aM)^↧" /$>_sa'ٶP_ii5P>u?oO+Ȁ 6j^?SjFJVFfV9K0UbL~qJJJJJJo2dɓ&L̆Dv_+d)(0ezyuiNKl\:5 `$0`rW 鮫דlÁ0c'##96"s$T Y}}~_wwң~%}'/~Kszu˯xW>>qzkl0ۍ΄O%E| `S_, 0lBva =ow~+8"߈i#OL >>7粇ofRʇJj%E{W{a< >yIyg]ʌb+aL^HKYšIdUn:9\UjW/_P!W#b|MXG|7.ߓQn(씷+>izt͛ndtEyk-#wawvwvuuuuQ;vwwwwvHIIGIwvgwwk\"p+| ULI ns$Z0.dRD@ںچ.&\& 0fBB/`+\--O C@4`P.|nɺbtdҗ0$ ;5bp ,𤼞NT\:p}|=}}}y&L2e<8!x"@ 7P`p<^ WR [z|Xq _c-bs7^AIs{t;ץpܝAڲav-mmkEn]]]\\:3suuuuu?۾ ! /\B@H+`rzzzzzyF=54h!F4hF2dɓ&`N``0EEU?)~vc|y9nV9vtXN{3ɗ`OKP 9p?дv(֓FٯlFrj2\gƺtT&wz=>籹HL}6[ÅMq{YWJl}m;4CSt@LF<4|w)hw.}wXi%G)*w >Pthk]d;F=?#_c-Q3P?G,\hEtބ[ x \ڧAmIh\b6Q+W@w`lcu|_NWf-VR+p}쨷[;͍Rcf/oQd&h"_/9!fف:@6\()Zxxy'XX'g''''',,'t2`s# Džu ˿587QČQ+}F9poڂ:TjnH_!WBN\ܥ$-\\\\O#+;8S٩Y\\N*\x?|w;{qJ ,4D55]5IE@CCEG£}b1X@шBڦ UT 'b$6ǩ$0Ao~ߒy~dɓ&LN_ BprCF60&m}e, '׻v۷nݻnQO!Hؐ?[ #)!` oIlE P1RrB)@%@ɨK5[sbѶ+)JI.HEX!j K0 ʐ 2)5fr(JD/1P $~!x!FbA#Set[=54:KoyYOa0^? nǙfw#vvFpc/Z8Zh-Yqma]2 0( fff(`Cbb Y hY:7_Pə8E_VWx+# o;;;;;;;;::;-s;;;8 0e=>@ (E2Abb!\(G~~~(:{\bmi;2y۬?o~67ݳìf獃g;L_e'[Pa=Xr?LWJӻ{dE9K^^[ 54c8Lйq˫E֣Bssssr4i hnӢH ՝,ԢS b  0bZ~B ҊR"2vҝpɓ&L3ֵlcw'\`N-Mؽwz`MN( :8ֆЌ QDU(j|i#E=nhQO郒!kVN]qޗg jmr\mDb *$:**)**-s!كF#CC6*5.QQQQQ,t~gxOm@q0s!!!!!"ކꆆ<ɓ&L3 ZQw䟱CfmS|u7,v/\w/斝g;R6/ ㏂osSݾnNy{ޥ<'}S;yN ~7noo΂o=:hEH_D+ߙ_^|ug_^1b/MF*'7EɑP@ f:r1e!>K 1}jɷckjʝm8[1nWlֽX͛v-Z^݋TLUbkRx`fZ-jmjڵl[b-fKk,z5D[l\XIoi+Y<`ljk)&c+>&fm%g%w;~ׅyX۠c2B6buer=d]svŻGݸ-M=֫vcQ7Tn߁p^$e;Py@!N䳵NSbVBMKb$%Ψq>iTT*#U*#\QDTFʊ$""#4 I.%(Ïs*(cyVP@m]7G+Fۺfd UCXׇsƝ3DIc(I,fK`P@Ic$>X- k-QD=ڔ/hOR:^su#,ӊ6뛑c^Wƪud !æBqaj( "P?_njV7ߺNnjc};.M8a+Go&`鄚y4:bI7LuJTYJǗp3dL朎xEEa=JhnG7DV4St8iPʨ_Ky8҅/O!uO*_Vѡ'wĖ K`^||8wʦ;-:ؙDZy66V7wa4iPd!h]f(\ |ϙ>I)zt,ĒqIWC%G,E9%9}2rgkN$O$â^EvƁM<9rʚi uUS c1*YF1'~H߸~LNDK.),&!B!WU,-(! )m2Gj(H'H۱~ߙBh"Mv:9cz*5U#y.*{[˙YdžVj'9= 닐\cDvɃ1\,`/:%Z`SL1T2G~Wc\sK.$SK,8dӱzX1h-; iqS:7 WǞov]s !k_8Y3g8V>~ ˅ 9 !$C$*Uܐe WA1B^"UBU_" D%U Be_" huˇzh64'xcCK4Vcp|MH>-V) yId&Bqѥ#+MN.6!;g( aZr٩vg]a6Ys=xU8 k>**AgSHaӆL Ot֏tƫHagYXaî$˭V( En V:jUNDJ'8/g%B1D!bHuXHa:$D6Ie  ć C@q! 8|Hp$8_/|A#psowwf:\O+/*+YUu!B"~)qxa}=Gp.XKV8X,W[y`aنD}ӆH~k,\YRx5K)kS4,i[,!o$y%b^k^kS4S4,iYO$_I)e\{D4J}5wd5Omn[F2'-g"Bi#Ǿa68JIKX(g(EK1ʦ(#p˺siH*#rJ~VBe)1+ ) 1+ ) 1+ )R1["$(8*G$|6%FHTq,2Dza#KdHW"-"=\pS&|Ըޓ7kgI;vHr`ڭ{}w t-4R"#9edjݚpzt wgv~$ws>V>ɏsbv²wFͺ<ݾΫ3kE f"ߑtbORj?SNo!N6n"o}!Xd<DӋ<yNL' 鄘co my>uP

ʨd^I":D#F1#b0@t$::fFvqxygʑktMﻳlgg9G> tt利w;6zfQo=?z!Q<4z.9lu<Wש:Dy@޽?'ā2 S11#Os20Ճ~.V~vbvw7\8]w2W 6.!}Ø9^oa^9;,9wfB{ixG͉‹B82/ ?vs6$yeCHfvirԦ@X'hGqfE>yce[d}~HϾ nZZ-di Vl±f͛6tpB8lm]z/F$d;89"t+ҞQ_tP`(iy27o\8}GجwJ3[$*;H!Pq}-x* PF8VZjիVB3P$u3P PgvmCZZ3ML8i, +H- ntiZ ^/A0+@! aoZ\nO4a pA0;Q>ZR5ezlٳf͛7#>((CQDM"EYȢ3Eb(<:(QEYU U(3Eb(QEY*QVTQViQDb*ʊ(QEY,QED܈ʊ#QEY3r(EQEȢ"(3HEQTdQEUEf"FyQEQDfQE(7U1Q1EYEYU8UUTgV(1EYEfEFp"z((3*3r(R 5ll݀Զ]HP"+9[x%w9 ۪}1kZiiiVҶU TD@0 )B?L*WhѣFJh7_t-9( k%4 4ꢮ7r2;싧99? +r EGً؉"I8N'-[y~׃Ost3Â5)emf}fYk5΃oqo72wLn{'S)a+{EgZuʹcyo-hkj%FDʕ*T Rʕ*T4uܴoh::r)7@{TjRKDd"3Zm t<~;ϣ}H2?)Ňmg޴VOOOOOOOMES:SQ5FJ"ᕑdW^Im| bP2X!ΦY[[c'ܽTOU^ /?2;UJ=\jժWC \[^i5Nec&s3) iS FR>_V4x1|4ƭi@ɕ>Tl̡B} :(OB1]vư:sAh$UOz<x aX{oר_W8Ըde/)KX.\r˕.\te 5*,(4XQ͑o!$Y.[(<nfL!LӪoNӾ~bZ?H @?w%or_EAcny'zuPw^5T|}jRt3?<9ƾN2xoHY7mG'/q\mm hߞ 0Mhͣ!KKm/vM3.{#G.tS?v C@s|biE#I(#n}?u\L,(PwQhgECk7/˅Y'4J[Mv۷7t-]jէQG]%YSFB >οysy2vF)kM)QQ4444!hhIЪ"ݨVPм/_yv(mH#7iGw ^U{w$̻~O y*jLL Mat>ՐR͟0 ѫV^VZnT`TzZٕ+VZzlٳY%*fJku;<%3*T [4/spx {C\*H! :GL>uݶmK|CtC=0S\=oMo:xP``c^ѹn"9.\, )JZqs>%zkd|h0ꖲ|t]o?toʠ+Q5ʞ6------'$b+:555SSC{(di4ɗ`-)P{zMqn)xcǏmǃ<')W⣝)ks^i`k4̙1&L2dɮnA2dȢ=t MA+ғ/G*4q3DSVub2-OGTx,^)QbldC312\f9-KmD`ʭs*$VV ҕZ0X9hTTVDB*8ʈ(Q\KjEW+aXQ-[Dĸƍ1bLj Q2J[13 Qmlb*ZVbXB,[* fL0,bb -RUYHrJ(V,s2kJ,*UD-j`A0YUL,UƱbJVTʊb1j-ˌb3E*T r1X"r\bLʲ"ĈkUPA"2[2rŨhTmD&&+mQщKTPQXme!R[PS (VQr" ȬQm Ĩen[RD"VbJAdQE[LKV2KFsE-(3Pe咳[h**ĨTQīXLJ" b#)iETnfAEhccpkQX*\V5̱\)DDQkPƪ PQDF#)DTb̕*ZQU6ҊKmDKKR̵b 8T2PU\Qrؤ ܥA4rY`JbL1"" aJXP2TArmJ֪ eAbֈZTBڪ%neU"e*(Zjc*+YcclEP*F*PcEQUbRjQ[BF+ȪXQbZ#"FQEU-(r`Eb1UTD1V[+4* jXV(fdQf7 q.3G rn}QjwoovƠv mMdS&K &L{-2R9eg|[ JSBpQ&f$_gZZHOH;c7fMa$䔰⾜_~V[Q{>t>:M/G?F.VqL19'jɑ1ڟQUjv~%ku{"Œ$nlٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳfc[-g6MO3̸w3w]?-c}p>Ǖ}~D DZ/ŏp>?;tt7pd)S^o۾{7ϳW T`,"-2Y\_4ǛkAA./7zXW6 \ڻU[ 4ˌh5ٍ.s~l CdQ)JMA5={Mg\M<\B3 nRl"TBtUf EIjHc)vTS EG?R(P(̞ANrӦ*B!B!B!B!B!B!B!!BBhBAA@(((((((RJ*TRJ*TRJ*TR$I$I$I$I$I$I$SM4M4M4M4M4M4L*dɓ&L2dɓ&L2dɁӧN:tપB! wpYݝ<7-ZM(ye#? W^{=iוd-l\3( 9A^W…sG3,e}^ fK %+2jdH{S?ퟰQ0} o9eVJ.v)hRj'ʣ ev!Qpei\ Sf82rwo=EU2%͗ e;&_GM?q2RO+-=iY5AAAAAAAAAAAAAAAAAJ4hѣF4hѣF4hѣF4hѣF4hҴNg# 'NN p]c`yW.wr}7iR{-JtN tF!a@_Ǯ[lOto}_HǔT41%t1_|\ tE(SeMSի 2rY3A Q!)I+[Ou-@m_@O=ݯ׼ KiJ=wW'$PNNI ܁7$1/) o yȡX@&yo7Uil(ؖđNf}h| #Jtdbr<--@1!׃B,K$鳽T@ g^o@ @)!XO:۷]W}q=Ҍo=Jv(7Ο |么]fuɛtn&0,4ki^uDd_ӽ=Sb(Hsŋ:,X\s~)roS;.Cu;*Q~H>Ql@E;>-k Bk}Wٶ<\I*}0',6}UZ;4O [&Mjժ֭Z&z" ,A6H,իV Q2 c&DiI)ڨ(T?v ܢ̺_SKddxlwk[cM}9tz·b`?_r9}ǎ֫0 p܏z:X~~7~| k\;J][nq.-Z{DskHx_u;r?o\ BBA!K`*ʮ󿋰]aN%IC 깎.yxQi1B矠R"]H R']7Iz^ۃAg>gɭW`;@v HB?8 2 "X!!0jvGOĬV+0)FnmF?EhXc@2 HԃHPP81*0穬f3!4Dd ^Aa2a (a}.fx+*G:"} >d8PBXXA.\x˗.\玄 )ϡ̵TjztPӧ8Ll":v1 RWPJ XM]M@½C/_/owԨ^Cgܛ݇s#fA-ۿsnݻV۶WȖ 6-m-ڵo-eq-T/ RR1I(3dߝƬπw.WAԆFC "5P? E ÃZrBxگU% ܆/P } yKp wq# }n8"z]KJAPvE0óf͛6p9F D\Lez0x/z-nl-.-8ÇQYvV_2A)#.G0B(;/Ԏ'A$ͦݫV6R^^R @EB=aE%kj5۫_^oK͛)bx޶ժ`*0,)+ʒ(8:/ӕ;[?GeA;9zf9(n#=qV/sכqfݨݷmIӔOJIDSj!DG  n^9.WΑ"D=)'fRA3)yטa(y)TFѐ*2E }>|oϛo}SO>FS)Y&YfjB5 9oWLz`=rxC9l-zzp&?k)-loXއn0 xo3u귞\$$I:Y0'l9`mO1t6oUFat`RnjOf5,j6ejh n7xߐB3M*M{r..\h`KrPY!3_ nۭVB͐dnK.B,@,ץR!Cv~>z=ñw[MI~V^JԌ {S5:K ȨH#H7d?gfR3^VVNMv&=(S][ekhTRq|r欝e 'J'9.sR߁{ CΔ0&Fyq?' oӧAѯ0p\SPc& Be.pn@ xճE_x^/Lםg.t9#0ruLݗg{8=(Pr҄z$Ec)jO~@)J>NJ&$tRR2\R-O7X൛nv$ܼ" Ak Z%!)I|!L[AzKM4eDÁG0Ka/a&Nehڭbc+K=M>}/Mkh[[ ;]6ޚ6䦒b"(8a`M /$x-༗7ko տw^-IS,A$N6٫=G+  eԭdeZV8(ybrEH &r",-,MɓAB@t*>w`69#>PK,E]fW݊|`f ۃip. [nwТ9)8?JQ ( %skz(ҲM\[#Ҕ*xln_|7@6N`8~@0'qAL`0A0 0t1vIT^ӴDN~W m S_{DGɲ[T6[-e~9bE3DR.t$ &F2@p̈@70v1n) яz>_mk3M/U%7Ưagdv$Oq74 >C|q`bi32cc5&o3v}Otރ ppKf rcC@"A?_GR뙘t?#3oM"g]W5z!НQG$>/E}"g:}A~Ghtg8Z:QIW=5xP=ʂ>lr{Ys% x7t1$@&&\Л4rhAeRwBXsWr~:nr^W\$iyDi7pBʾs`AҒz(i?)p;z5AUr,Tʊedt][\5eF) Gt_t8k/ҠK?xF7N I979ki*~jʻo{E(K5%{aJ!Vq3sܛHƄrh2YfJ/mRp.~- t Qsԯ@#o84C%5 ;:aFn 7jqNA, {,p8p&#1ТOJ 胔>"~CMFp?o{٢찊MDS3QroJio ޞJ΁F1r)c\ Y[<({\[K2ˌcg~z^ȇV25* 䀝=xWn/+M:yJVennbKeY$}|S?ll-eioNk,fK2BSDW dn{~/̝`d+uFfLd *.OOON(2Fe^KqZS{<<n w}FĝJFEn+*wafV%s-+0CJx ,y5o4U~?;=ukUa\6.0.S4D@,Ahޚa)ڂeLu4#S9ؾ{<__~'M2#Z,ftipIHdPIP*SS aP0/ nbSg6Yزn95hq C++''"C"BlBJ:0KrSnW$f'u.52l)PsoDcd79uashm}?0>퇌O/xoy/44hVf&YIz6΢8AmEpED<·w= u5)]gTkПk 03Hxd@nu+[Nӝ<3"Rt`|",-N_V}Ґd0]3t,tDZkXͲ_F~?5mbfrUg3j UJU1TS*GU 1Z JmMޫ*3)Ir9>|ٹ:*ʕ҉-A X߁3c #""R<&kpV\mn7ˍ)%9g!'g].qդQ+ZZWt4AUyUMMCQUIUKSPcU F",t,UlsM&pr_$8 1JY2U q,XbŊ6' L83;13B,ZC.r_zSWmo8_sW+W Ex#h%&z5SIP2( 7!Afy?7,n;̄7_wHi& lno|&=?8x9=gdܞ p`Lf3L9+Ų^o|_xv}&>=(6ZaEl]k-N%fhh R  OJ>unP)*RJf0sHȏhGYc2G-fPftW.wYtā/>W?7B }NKB4anG7m33"2+IW< x<P4"#@ƆH[@JGqY\o>fr&I44|kǛ8eF Vfsى)w72 ͕Ni23PE~~c80M/3S&jnna"Hb2h@4QBF(PB7@ܨ10 %kF;c;n͉B'Mӆ^/¿n9%4* "Oy}>3w16)E A j%B 4&B:d7X_kumoT|T{4r Yyy0^7<c1t|&Լ303晁h3giJc9e7yɶ-ܠ{9dA837_< P[Bk]v۴rEAAG0'tF>cywysHA̹H*Xd(ø2Ed)t;W#wU-^[xؠ6 ?'uq.>˽fWJvt2Vs+ ӫxb**(""QDP(_ukIK"Q9L} Qμ9$ "{t@?n*Wy^7P dIO8rrx'ޏd205j_;^f#{=XGr7ក"$N%ׯvu[A!3H{y^do#e{6<^J[gnh]yvۗ܈ӁYfXGc2qHIF8pYPkopb=l2|(*|ouy}~(I$e$dcɒL2dɒ(D¹eT}Lf̌L7}pr1fg&sΔYRQ0s9ϊnb'<(^3E]">kxo;/Y N:tӧM:tptQP*6Dg(&8]Mׂuo=Qt 5Sw>gE޲> yM`q=|,XbG@Kh+t/aqfy6Ʊjs?)CrYdJ*֐d#x^}8>!ate}}[YS3Цe:tӦDYl,$r1hh!UQ;fIXH7$DU @}{Sp{lj:o**|ٟկfdA[.jիVZp'"J?`ӧ2,2rEd+%7`ւR"ƴ 䢨)Lx@sg5`(w:J `~ n SoCh7jT)K)R(BMZUV^+PEujⷸ}yl GƃȂ&3kVn[pO$B Ť,Di  ,h) P3ȥD!Ŋ,XŋG=5f.+WptHsz0ǑBs leCXϵcB|Zco}L ϱTj )k"5b/$HxDzb5xĈ f"C^׆ރ]uXk5jˮ5׾ D/""5AF"DH{!ĉ[C]u|a/ u u]xkᮼ5׾ U]u^|뮺xk f]˸]xk|׆.뮺므!1^Æ5Ug u]ۮzo={|g^:zׯ^zAˮAe׆5jˮ%ᮺ u]|D$Hĉ#dpH"D^"ED m$K$EDb.ރگ uCxK%n$7 3#]uCuᮼ5]C]xK|"1]xk vH""D1ĉ^$H/X%=kxTM~xk@]x]u^1Z u׃ uۉ?s$H"52gZjիDv d5q̓/7;:nnuMsvdH/Ab.O1ۯ_ v<>I]P|~ohd4䖥k@Ԕ@1,C|$7Ei1I0R5 |z~_Έ N6fb25h;ΤRbb/ k۸gM^{w"%NzRs}Ĕd\;(szsa^_]kͫ-G5(^nڭgl{=6kPgD]7 VۋqzXXWw?Kvb`%hhE/w)kZr :ouz~h@B tzh~ ?rkBdTmηn x6Hر^z)7, "" χ`+U>__Ga&>)T쬬rbŊ,XnHPPYްXcKrVC\Q*DuQh7UJL e)?oh_7*+Z!3>ֹk+V@ d kv]k |b@v6Z3HNަn}(,Ui2))bJP Q+O7b(_7p5{\m'w[?sSIRC}n4qhW; '{5jUM^W/W) Rl}u:Ji\3GЃqJfe+7s5@Y{;aZZ:-^FU$_ԓ;yn̒͘lٳb͛?ųbúׯ_A SF9WC?]3V?@/h#13>wvo{3z%M1jJ/r*TR.BrqM>cl4 Hf_azR=r[cT]2+őX|F0#£ 4ѣF3|Wh89x76R8 )iQ c$k-49؂Ȣn9 ;s;rͦbx*gθo7 ) 6w3}cGHtr0,o.1%2NO {?pQjS}Mf_Ǿ]߹KiɈges_CxoOW ^_c[[o7>5]FgSRcՂq&ou?v);ЎRoEQƟ~) d\q)}uϸΖ{~&kGl0}ԷuJb弃>g;we ˲K#Ŕv|˷}Qz{=W{[:wX>x\-4\l5u [a7ySA%M|ׅqջ^ 6_o_og'~ZާFPΔ7މONc?о>y8y]{]'EGS΋^s+ex.mȁ~(qcZ]M֬~҄ՖV'i}n&; 'K@<[Xms-Ule`3UTԲ~I4莾SV3y~itWDCyyl_]֞;t/^)Wiu2)|*i{E7ݏ0uAl>E_z+8+T:/O/^W%BKH}yG"8jل̀u߈/7?åxo+y1Lrʛ_``cJ<')鎻L#~[סa^hr֣]kXzyB㿬Ǧnm?9}G@wnbZn~?OY梋.famS fK=DP?]]Gf3_1)Co{zVmL52 B떣;.35^vmlj* E_ |(Ȃ=BD!" """+"/eRY$ ,"]-Kl$Y , EdE$5R"(fx =^-R[`T;ȰXw5gr7%@R7.3輳]l/?/{߼8 =8_sŽ15#+k}Kw(Ǡ]߿1yC|XŻsW߇QIWRtzcSwnnwrRk8Vhm] gqNt9/{zNթ}y.<6Z.k(fv^ q+go'=v {&o>ڏ)0YoÊ<0gs~n<s~^Ϙڴ+};"xu5on_E-ju+\c[e˰6nDy1aMlɩ]Yw̸Y,KZږhȳNv?+4{cŮ7ms92 vg' ǮcsC}ůk^ok6 ^%΋?^H_t߳%㮧Z;ի_ಷNsHS~a<}\7{6^^x/]Gkk|u3p[ר;xxV";k{E#x}$enO.!YVQ 㗹6 }}fiQҷ.xυ_S?avU|yq&yt>eSl}U\~?3 _]ށ|K𯿞mmq2^vwP׵8{j5gus8ij랯b zoQ_6U n0Vc)*~/}z~FoGgv o|)tt@xEd],=*q X+CG )Oh= (H) S5H@]PN^+R~x:~s j,NXaD·Lђv}g{Q=IvR׉"2 Ǯ|zz/_?:ߖ2Uf ux\V~U\Ds Y+iw'|6FcZ܏?pQ |0?.a桖1ycyɛqx<]P`AQx(0 ACå`L&0ܗL]|Eއk))#$I:I|pU:IrI p+J-#Ge87p.;?oz?R)Dw?zU$TRG*TDˌqKaKiǩFd22"Df@xjp8 Y,>JVvĚJ*pY!~.d3&L2dɺ^jgk `aK࡮$& [vAuD"R{7k [5f{Su:M!xt 'ָdяag竉i}Cg_|_,N] u[/L%uRM6]ٟfrcC~rKV00W0"?y||frywZ[Tq)6("JYBB8*TRJnY}sf~ JYԾuGtkvZ "x+bbA_l=e)e^ 3{ݎY/}:>g]zvC7j_Tj^Wjժ*zJup*|wjԩRڄO#6HNq(gy@_9TA)5t4 ep㇤E,RJ//ӧgRM:ot!p]1 ,AJ8 W<'a_s]Q~T*%1\PB(e[Jf4\A_l!J[NYO_$ۉLJv9=vyeZegρ #AP>>ك/j^3g'<84B򶍁p.7Ɯ$xTg RM MBp \gl~{{i[eX}asy};.|\+ceVne\yKs_i随mX(m_et9yZ E<Ϣ^/.~;4`XRpCjrȜbwG:#މOt^H0|T_r&$y  HN,6zt(7:p#yh~2>bʽm>8B`Jꆺ > ߐQh7!]NV.] 6pĂz<|ye?^f6Jc Ab߅Gyasd"nVޔ&zdnݙh|?'3k6?/?B/U-±Ep+t9<(fqxQmF`6/YSw\0owp۩G4739Jy?w#˾7<.Û96ڭN9} :7%Gf_E*0'1Km:S5xdqxKn4S4oJ97+9;wT+ST:* q-6,(+$k;8+$̏݃''x$]0`@c0+fk{dfn@v US ۻ{TXg.q[jfւ XXvo3s5ϩ Ζ3mޕs_<ˊnM݃τy}wm>x3Ӧaɶ+UMfMnU#MlK δK^timEtc"2l eeoJ5/{Q沽†V76b/yC5[+gj -3 nlH1d5Zq)Fcd J08bѭzm6ѭ%UV(t hcXLYZ3¬ll);.*xsB8>D6>qY RI ĕ$ IV$$TU%*,ň:171f.k5\.es5sXܹs.1.92fenes3.f\̶Z--n[[k[u3.ffe˙fff9nfffff[m[mkmUUQEQEUb(mfkZѭkZPJI0f& I*J$&e$`K1$$& 3Y,YK+b`,T)%U %UUbI:k5eTGHCsqUUUUUUUUUUUUUUUUUUUw-ZVm H@BRsN]㿅kZֽakZkZiJ1{SAl0 cjVֵlkQ^kZcZ^BR{ c88㈽k[ڵֵkֵQa|qKֵkZ/[ֵ)JQj+Q\qֵkkZֵ)JJtkkڶ{޷i[{׽kk{{{{9s{)J!azZ!;VֵoZֵkZZֵkZֵ{Zֲ9skVKZkQZ4 mٷ {=Cyexڲ 0C g8 _x ꡢ?D>۶zs* |D5B(D@=d hH EE:^> " ޿þ{?v7)"ux"ȸZ_m~꿏077+\AOkzm?~K`c>Ĭ<W[| C\Q@R1D"ePPQ" @2ߛ!c{7^779<)syD@0D]E( "'NI;$UUUUdI^PEn͜Nт``wvk׳uJDEA2" '-m#F<5Vi7TUDLFsQS*NNF16]co^ e(H!@צu3YeO'Ya|ѣFDM7b7,gmMh,BB"4Ŗ8=wL;[<")KZю6ѣ-9ZҙetѣN9&yM=huƧQt~"!8oŊ#D;~ߺ|q+OY6O5",_ |qRaҰ8 6 9'k+yV^Vk'9EkZ^9JQReY^'9SlrE~s7sͷqwѣ,h DD3N"ֶyhӧOӅ,i>.-9eykR2YgF4r5ZUі1գFsϝʖye DDщk3ѣF|e\ιF)r)7ѣFZѣgYXye[,󵭜Zl<\4SDgyh=6)Wgz4gy 4em1yMp_,<^$7%Fg$Fb A$N! $ԓ(, Vb@33(XC "\ ~0"C8 L ")pʤ2qpٔO6QT0Uʅ!20 0 b̡Q]  ,:;*A\*P,aCH3:$f`D.1pKU(%Z%ԂIãĖCAub䨛p G (X%I$P,*A@Ύȓ!`P C`H.H Ud)CA31G;p)\8$0`U f$1C CHe!P!P$+< P LͰ֮l4dL k > P(!Y*1bĈ0`D | X`QEC%B3`XAff *C 8@\DB 3ILPr`C],A ݐ + BJC+E3+A ,dw x8ZPT2UPOExYPP &]åu"-rDNj,|YwFf 6l\ٙYƂKG A 6Mf[ ]/cg@jv?jqO#=DrqIhфh۵G}g}58 _#g[ok}+B݄/A6>iT.7TTJDA TPC2( ՐAE{-ayQ+CE(,PDP++@ 9TB( QEJ 5P}_ 6R!  @ƨ@@$+BjeXfÁaVl/)mz R`AT`*4  B* $`0 *D%Ffm׹Yh X.DXPERWƸ7IOo!a$PX\BI33MA2# dB@Cn>wv~DB ̎hw ͦm 2`P,qlY -K)d,Qm6Zm-nv]beZڢJd-kXZ`&&'10&&bp..*,ajEjJQqkY,0 DJ%% "QZЖYBY+d,6FYP6Vhm-j[l-.t%.t/S p06KE--[cm-nږyx^7wv[ v,,-k XZQZk F9V@0_"l3b, !j0DAAAZ dP\;a.M[JZɢ[V66ضŴ J H-)hmm%UKЈ¤@@0j -v-__W^kۋb`ha !J ţPT@!DOנR`|&K)J@˪ bgb `\IyXb{I6K?*0dš/QRu„[H!%(}xaI>F 6r1+ Ka=W rJQZH~C$|] Sp;AJtFz2P =*Vj``BzU@~\ ϜcHcrddd rDK$}ƶ%1?L1g)B\8 X|"5)r-S|U.C W%ñ$3U7!j ?) _ I>n|%}A?p0@}R1)'thK WdtRdf~1!ӶHT)=͈1FT4ቲid?QFʇ~MZe'PZ9R9Ӧ#DFJ&D"uDp(TDPcVDIR$jd%:qXJ6e?Y%H{0C4c }r&}Ln,"uoVrSx/-@ꆂ~~p0-?갩 a0PvT?n[% ~Xc uUNj )CNdџy/i@|V)dO5ɉ`3鈥L a>0eUDANh(Om ?߀~[LȴqD!f*Z\*cSnQ VL;TB=bTLJ@}>0L[g,rL HOdvYM'dS;1jY'b[A(zc @ʈ4G(p 2%zתv3PѦ"R=Zd!T'nA[ꙃΪ%@sӵ2L(:/T֠ lUNF頊fl,H7hɂ>h&CMD[*dLuEXVu4(Z} 4i+@BBu ?E%h-jG!=JuXskXVdY:4!RDN+ 겅k -Zw5TgML"d"H~ezDu#ZMb)H=k &4_W!.u8d\Z`e6ʙ İ?"Ҍ*`a'a׶ %l떩ENm)duW%1ZD`[ [ p)YdX'dЙ28AQ( ݅`4BnL#'dG$ϋ$?͎4 ,Ok2>M >fe]A;=Vٶ(+Bzb0R=YhV[ zTf&']֫Yh=rvIaz԰:!8gZ]4jG %ġcN[l0İWJaY# D8[ V)``T)8D3 =V튡C@pyl0I8#ÌІNa%3(h-P>+0vr#`}k[eKNUAL :R1NXC!C(CR[GZ) U zZ@Gꪠ8L~q{ &F'`?:"[RRJAQAp)"vhQ0,pRrdBP Ydd_) vlu{&"DaO(q@$h$J Pe4.H͎>u S!&8iVuLg?A(P&u d( PhMr?-!E!T!}+}q>Nv~+8c>0_}!PA"X)53+D$US8 +@ k* HHT(0U4(PTDA-BD(P`DZ ĹL֋# v4*/6YXPԿ,JFD!uKw`R&oR R #D T"Aq^ &v5l/`4c2$\5Hı[ @YW(#~-Tle #d @-+i&--mKj[F6!l)mE *U@lY@ VR[l|)d"Ȗ@ o!hBKBm `[նm[m[ahJ0+!`D!lpx<|bc:&B;:fla@&QX (YiZE@XńFm !dP,EJƵ @RIX (TPR0XBa V/@s `dЀEʋdMlelele"YK(@hK@ZRЖ-hHl=e`d(*P B8 ;(z "/@((: \E|d@~nOskea`4/j席GeD?%K͗{k9&}!1ɗ1~x{^w)4}:\(U~: )+QJ^T΃*nod $إ^f 1Ō ~G-Yja@ c wP4v[3:4ju*" B+._Cmo3s}BH Nh<@O.ER*""R *^DP[DAWuܲK)(r*VDҀ{'ЪZĹg?:_ f"Z T7ZVAD}SGP`]].E@L">ݮ[j\Gb"d8퐁H*24Ko[`Q0v$ujj5FTlW Y]0T@&`%Dl@Tl* * Y bP`U" A E) A` ,H *E$ ?GҤI;㝮( .j}v]5|}~tz{/ y|O^ߓĸ.:+ww:ݿt/> +H㥚$IRXyະ1( ЗKq/$ b@gmѢ (-g}Ɔ() GmLDr({hoa!aBI0(F SA@9*(B9W?6uϡ#o_̚>{)q[~M Xp?XvQnGJ=quQ ܙF.N3ru+JL^'{V[uדñ)gfc3}Ɵjt>V7Ϟ>m?UBmq>?rj1TغN$=:H@ `}G='W,]BZ6_? m~Fyg=w{7x˹]zn\k-I~rH[pvXb˸.b„=Xq<{x-[Mql `v/100=-'#g6i#?rRi)~3&R}_}ϣweS&)+$+ MHhTd:^t: C U)aH "%B$X@60T B2E2RHg/qCWJ m%X,1}rRi?vڎ]!1,I*d+ R)Z _/m`(VɌSnQN@Pa{*貥J{afe 6t̙}9"( H)+DYw]uwW{6u u!黟{{zMY<9lp*CkRrl!dwuK[w_;~2oąNnOSi^><_/zolkvAET?DuxFQS.5:Ѹ)ZU@Aweg2y4-j:']6*8󮳪gVu[6xYwvz0 V wQ5H 1/^nHV'!b^ѻwt$̕yyPngyudp=5בvF>JeGN"DC&(8l͙"3fiv[.';V\xkg2]'1.o8|8x0%!%G8 Tgo]"@kj@pQr=~/qӭu߾_/<}t9fk8nv>Eӽ?-ȨQ.V@܇ ܬe,:${@ v,ťD%FڏT2T-s?Um UDCzഢ'b{ZԎUqhIbfFV7Ҡ(ݐ`fuE+~&f7K)XDl|9QesmWUC}; ƎT|+ڞWMs0v9N甩"r g瘦WNQO l+D@_C{99\[񾶶}/CNwƵgߜx[ 疅rV'+NX5{?}|-,VXag&ka@KGVΛx),.I\~PQNv^Cϵ @4_?d%L0^w}>@-+qy@@ L,?=+tY}\K;kpAZZ-w,P|v `Y/+=B}G|<育HbsvSEe pB+[`"2) NzN+oyy0%~ OUɿ~?7; s ێGr:׷^XqR/bXH 3Rmx} (8bel5ۿ>FRxXWK.l Uh?鮠O ʅ BN뺃UUpN\ wV.pBLDg*Kf{f_U_(qdqZ4(QA {ECQt:Cu .,B{_D-};{)ne;5tgu>>65^`4uUn * x_GK}g)Dnw/K=wι`<~ﻞbtS+_?ɜ݄ 9SZ^aFDc/cgDP B@Z"4D@AMgq?wg~vgѓu+P_W[cW<S{m'=n?c}CkZww{FÌ )@YQAQR*" " " ,Eŋ U#Qd"PQQXPPX(( AUT#PPYE`)Ȃ"EXD`PE"UE,UQbQUPEEV EB()"(@Y"IX H TP TPB)ŒAB DI$]q=/дO\r$߈NMn:Zq$!&,s. \V%QCW+*k}(b (9 qGʱ@$^>>;zw]Y, 䄁fLڥ;ug}*H "AjCd ">Gw/5d*oSl&yeM+icϵM'{Mz2=b3{tz{X[ppkYa-F~ř0Ikl\̬̬GO##d{]/c]ZJUn)Ekd]P +Eul!BI aLHc!$B$@R}|ߕ;cl[ߵd$Ȍ)t䰡A=|~P@!J '|X!Z웟|mGIѾ8xo%eG>Jպ-B[lF󥇥0Nx(ow[{]#d3B/U-&c<G\;?Kº}N_q}n?43@}+(+++++?/Y՟#[v_͕mγYYu<πko&НiI)rc…Y^e5?7[JF48p޼l(Zǜ o:ݝ5Pofğ=SsfK|ba:jG(ZC <٨!.vfHb |̺ җ.^I3:sH&q1R"3a$"ǏPFI'=9;Wkm" qa BܜF8_FB CjG.ldBH^v@iʕMM;W͇yzy~><+0dUw}ŷ+'++(̿^ޫt׮s_| PB.xD[%G67)H0`$,X+DX"bTQUbb""(@D# DF0EUX*DUQE""QEUDcV,V"V**(*1XEXQ"* U"(1("Ubb)1DF  QPEE1#"*#E  dTTPPX2HEmq?ccx}}ǻerd0l(`/RL}eo9pAȀlw\5+aљg*.76#"e}uB`| A`39Y~t/Ի2Gm3-> ` -jԸUZ]U01 v*T]*TM%6І.48rUBHP˿h_PTTDU BA!)E9SͩQ<{bx6_>=h?54TNZu*TЈR" % wӟJ{Kqm# ^9)?< >=ǽ;|n8EaSvz6톼nwxJaMI3C7777375fnkksSffX̏,Jn%e|@1RSg| _-Dvy{;n8@<P6@!!X ի+oZJq ۵Cl~d|T ̡z}ȧQdPpD!ܞ: fG<ߧG=N6l74 P* wġB=|COٝwj< HԆ^ 39H;1pB!j9K<^^V_0d#ӳ7;.Jl <-C,Ct;`"yH'ϟ?|; pDxE@X EAXR EoUhP@,)@ @8?A0P|gMOsհMu@ {l d3j+hղwᐍP ׏}'~w)u /ȅ!}\x\x؛2LbQ,2.Մ`BPG*AR获pn[yceM1sf)qoIj ,-ahQTP* sz8 S7r}ulS-I~;kI!zV^=zׂ1VJu,"q/Jb6Y:,b?|[=n'yN+ x(3<2 WFhѵF&P @B ᲩOOI*"nH^M Ez;UA"\ 2A퐼6U,xkcй]g6u8rCH"C.G iM C wxxxwrI$Фs"xK [ls KFvT}- xwwuuuytE  2i]UT1Q`$% K@q& "ItBw*]s[|Z_UQf͝(rd's̤R f ,VY^2d @VdD[jʱbD&uňw$ Bm*҃!J%q$8Rn I#wP}jK"ۆ(D;Dj#O{͏zGͧW;CiDGDĤ9C{~=ԗr!jt8XmN)ljl⊈@xЏhIѷIFu #oBGq%LLpH\"zaM7Pa!>999>/[L;0ODM"!z'q}lD[^xlLr,(Zay=#R _Ei@#Ё3vvvu)DMRPC`C%G?79 P'y$9ONꜯAh;/6}tvkMP?Hn?2ʅ|V{y|mz3xEs#N2a/7nScs e)q{.|\Xw$Ot󭑝$Pޢ#i2{ Ck7zw/?~wg?Wu0vFI voOq_{m~n""քg0L''t1x=_Gٻ>LS.]; mgN}Uץ[yKy #NjPk.z\]o/݃||ca;&L.W_2vq0ׯ^Wy+m`4hؽNHx]}I)`~^*9Rf sf4SaM.dY>dbJ%=E m%T>5IsKfز a+7&3݇qߪn4otA@Ť2蹛mw6 @XRH,%n6 nR7̿jPJ*ۏAx-y|}+>f9BOwm]7gm>l{j.EQp;?}>f@ s$Oع\oac{ݮChҹ+di\o-–)IIQ7?:qyPćKRŚo^nksga4coȱ]nnQNphdŒkBHԂz3>Z$   c("e(};@E7qHOi/۾BV?g^Jy SЩsT$Rp{q6>ۋ2ww?xuY<3G)q<3͸TRBee Yu;k$^O teYec>?{/嫗e[jY]1A9,@;Jy~_h[,9R1<7C#}kBBiVwp`ZSy {[V{mO#F{/nb׏T*]:.uxQEc`ct>dxNg!9QI$QIt :{.sdmhF΢6Ug~A?*RObYy u_?{7[d/}oﮠg-/ omowvFQ %gA 'hX^s|cDD eA؜cj5&?I_??_>;}x/*MU^s? Zz {=G' 6[$aal[+!/8mV?9;g]aF 8.aV$C0Cpr~Xrrއoqgkdܭakm^-a+j }zkZ{; G7j«N:tހ Z(01iB!\j D8{q_x<=βΫ;qLP[O@e^+׮zkFH;+@`l*Wu0YfSƋ0j5]K˷{@M&ޥ9DX)]DErP1'~o76ChÄ!Aqae,- qdi @"`8λc//!eV쾎o}L5AbA48X~=v * D@h\(Qn!qZm6&&&!P5B29CQDe0" 0"^2Em@VQ"B@۠B0"QZ) %H.P* ``QQF+P! kC@[:`-3\/jAWZ `@ NDD>/6 H!. E6ʩ>'[8n7UtX]Ew/X////&W6(֢  6@F䊎.-)J QEOva:{ (^a"@wXP++!*D>"j>PjG=-PÁO@:+)PTZ"9ɺsu} }KQ*@m "a%bR! 2ǰY@H͊@"-%a)%d HAd RHJQC1c\ផ" &a$$+VI;V}ίJVRWC nR\ܦUē:aK=χxnT{szMݝ!TɩRG*TqRGj r  "~VU*YY\o7yeT(f >uĘ+~OG[Dz4gѣG"7M1}?7%\f͛5P31w}%I EieѺ7[XbwS+gFAnF!MĞO(S] p@b_[u%%14dH"D9o^z-#y.%˗kk˗.\yq@yvK}%7;yKecpҶ/ojR~Imv48Sn9pBXJ,TR}p}!QaTR,7b 7z F4e3Rh[iDJ|{uG{3 Wԭޏ#Ϛ9nJQW1n͕+_<-VkHF1w=0}p<߉G9]4ju86Y|,f?)ߋ16K `m` ^ש-NWgM li!ٸ׉־؋Ñr:$׽#ho;;:>FgjTDqMiۂ\#!ȉTψ=N >OGgۘLdr227Ns"„i&Р(t'Gq 8ɓ&v:L2Clq&L6qdɓ&n:Lq(qTqt2dɒ&Lqӏ>8㧜q8y8㎠y,89aqy,8<9ayq<<~<1yy=yp1c1t1یc6 c  DcAA(!P" @" !P1Ac B  AAA _~}wZ>~$Jlɒ˖QEA1gt2dȑ&R0“#G[ auJuIu0` (|0`s `0`X0`zׯ^zk_!z`zׯ^zׯ=/^|f 0`+X0W`+X0V<﷏θ|0p7뛷mTm@6mZ'gYjQO<'//)"q=pP4:X蹖p}@Ek>h7:hm>S4{0<(>H|Ai-OSdI(i4ESgSgS]eS +xQ_QE|^W͵RŠ+rVRQEj䕬 ֖^Š|\\[MŎ\n8qSxݾlٵRٶٳ+vv-/gݿ%u 웲soѴlۡz  Xee3s\"(jIPBPr%DM4Sɍ4栞A{A1c|3< c< cgzc1c<1cAAccX1y@3@3<`01`qccn1cn1=cy1p1<<yyyq-:L2dɒqn@8<ܜqy#8ɓ]"DǏiO@~L+>o +  @PP0(R { (Gad)fj.32a{B PA/M(PBW:%p}h 2$g}M]!OPTzo?|T~M((ZXP`(PA_ ?~Oz>P>|G<=|}0zUρϕ|{{ܽx>}1p Af([OQ j5@ @, {RX 0`E߿ W0ic @.@|>F("_=yB\~W-U/N/9}m *|_{,gxO~?z=_x.g ;o&W>+ü㋞oOhJsپfL`2,2,ˆZ@7ĿZ]x뮻@3iUU crn Gsmh$])l$ A(2dɓ&4.dzyXzZ#P=ӭn..-nZ@ /gUz`[ !7Ǯ=~??w5o_F7<_wnp!QF @aa0d%[IuW_I0`23 P 0#0[( *Ws;; W!{ɗLt|1^HKUwڶ)őrevYf t2-*d}2lرFPF(׮pRTsF \%ڪ>"z__m~=ugt|g_S ,-C,,a^2rA&Xր;7U,Yó(c`$ROS2_??:آDAO.q#L4m--66Mq_L5@@4%ii)!΅-]gwl1_L s 晣!D'xSͽ /M'MέUJDWr>Out_kz8&њ3ss3bf½$8O7~ m6ᩣ8O A BA4 Vk_.++Iw{|wSn㽷}&u.& ɂM#,,Zc(dfHxCap666À|e=ѐ99997 JDM Nm]lr *TRAPTRL Sfo(}*IUZ@ғm6܂fk]BΠ׍ s2T|_l5Ixڢ9F-N C !t:`~+֭ZjիVYXQMhfe&0MT $b `8 7~Ǒ/Qes;)Wir~Guow?˰ndflzu=uc1|zënI]e{Wk9!fҺpעY5/cg^~_ɼGY?s1syuunޅd02~>ϴ{MeaЖ 3!wt.8܅BP Vg(`5D Zo80v(b@[R°>zfvwXXAEUPx:{U?OMںjP-@{usw;ߘTv 0FʚQVanfj7eGW/< GՁi|`ʡSny}@BP)$lv3N6tSZ4 `,lu FSbȕF)iYPEA,FHioJ\ں_~NZmiHlꎔ>W;΃ eR2_7UW# Hz۶mzu=CN5l|rػPA yVTX;2GxP,>+==YaXit. 8J9<-# 0a PX.tg.&Z[6p3w7%Gp7Svh߮m6rmvz`R(1Vrv ZJ-^)U Fϔ`DKH 7&[@w*\²ȿӣP}I"RE6+U2,mVYdܤ<ȴ v\w"͠o̲7YBAiM)3?uji\J2d8>aؐCjV,Ȋd@) Hv)H Ȍ]KjX׸ՒEm$$Y Ta"Y)  6!6!@!YXXE; 2MJ"Y *@PB,`) 4M0 (B1TABd cccŝ6&g̸"0B!b<4x {dPIE '"a8 ) B)'<m HT)$Y%HVdڕ Ma4؅`mC1REIJ6C2Y oCLlRMԅdA` ZXE$Ld $+$U$R_*k% "+T+a1V[,dڤ3) oC|4,o XEޠT"(Ld* "X "2)gUR81E`Es6! )"EPX)"QE TF"+"("* E"0QaQTdEX#"PX(Y`*^O] SPB(wt9  P刂 P;Pt9 (wt:8x"`"Iw@KA|DP;`CADB@(\8@(d@P/@…UT QAGGE2$R"1DwpA 8pP*BCyB8! >ĔBCA @ (IB (Ptt(!A%@P*A( ;ttrPPƈ*":;Dww$g dg8pAѠ)::9(P@BB IPT(  $@PHB(P xPP(BI:p@H{hR6(BMD:#B1tQX̤)I:R@E"%$""3 !2Dh;D::***:(AFN  `I cBPR.JBttP aH; IA:Rttq<" @=%#T (PRhDADapNRӌJ8SGGGL!xD#̐R# uTEDt4f"*8'cB@d) AE#GGB ȟ%0RDcBPBP#8(P0tzDF!RBD**DFN R(‡&dtGaGwRNCHh@$А$NAtz B# BSH4% "pJ)$"t<( #G@󈌜8B)$R(cR@3pt$̔M;pp%HjEP0"hp( },0A$` BBM4"N a@IRH"EEI0INB"4 B%'GuT"FNI):""(8Pw샂Q !L$ NԌ$ttT"%$fH"(0q9;w 8@psp‰03INR@dB0N() ":Ip:$pNqxI! 3BPLBFN<;:ER!"!&3$pBD()ЂQ J$pfnp cĶ9Yޮ~/Ǩ``+/_2Jɫ1@ ]0S@ӂT1$*b+YE;_/8u_oS:~6uo5*O鍸ҝӲr ӺB 4ڒ@3sqZf#7|oX#r|VVW1.N eXh3I IUXrr6x0"A.]uf^C@dp]7{/ޘSFg Wm5sOblט5봯^wH&@ جb,( x聺ODDS,%|r9Җ6{T@T*-WhΣ@lU@bMP+|^.TTk@P6n[LlEdjjjjj_b*%E+tٕbѢpx<p./ߩJ USP.n"nk! F(*"~(s)UUU<2(|((EQEEQN ("oEQN5UDO(r(M("((E)E"xQE6"8<(QED㘉EXE"oE"oEQEES|,D"qȢ)E"oE"oE"(QbP\bwcA~7E)Nb{y$ :k@ݷ+TfBD(ꩆMu/O"] )Ӧ:tS! #͑DH (qhӹAXPAi hkE<7s9|ラ9|7&ezb:須g8?@u^GWc".uUPUUeiD>-B&&}ؖs D [_>St>9'&I-zV\*իRZiժd dDAJ:URJroPi%z<-)JkiJZDIA/ʹp6?38y4*'L&aiIQ4& COOY:uwk8$!M~S}{T&Oz]-IUۣT\5>_8 =G1ߦ^Hh#X?{D@]u]u|`rű DA# |SitNű 0 Cj4:*W\24TpG=b0UU+ i>o wn? >j.5ur0mCDr0 0;cHei]u\,-lT {鷎v9U;Hnj=6׍%\y 袃,"þ 4 [^籒D[\Cf ի>Zi5+VI35QR r.p9a(lDĨ4t"1dp%c0Xs Y0 /~J (2d&Ldo qžO 䁖n"dˑBٵżh,8 $;ye`{xT J3 ! L?e5px_ PB мDQnIY0XT23x&0b(f&B9\k 넥y3 e6$6el _oMσpŸ5vgEyuCxZҥJ*4)>oHb؝9Q"8pcW]<-|`D-(Te8<7B //մjV!Q.EԒ:&4SSSSSSSSS4C@#$"%6}t@TA5uux\]]]SVz 4tJQ#"b3/ "Xc!ݨ%DЪ7W񝮷^VHRj0 I0<=& ($B݅(1"_v|=~7Uq! q87GWsあM`F!}#rT~NBCJvx!7hD0Xa{-K!(K RMZ !lDq!]DQ6C\n;e8Gf̠T}*o p&Se~z> l0±cz?i2>s贛hѼ/[||7͐> G=ݶr!v]e.v]eZ6bHxs}wNun2v}7r-[Mvd9mw6ɚ^Yoy+ao>.?۪}Waׂ";]יƾ_~yJjcWegW%!s.+݅`ޟX|e[F ѣF4hѡB9^b4X=hǫNV[%37v<F c/I}wwzը>kb1%uAcXQG^*eNG|ubl Ŝ8N:vӲfΜ@C)pYYYYR6ÓA6Cr~ \LknH"aFTbiiibijCQ;s:q8Nczh )"  !֬00HH"ȉ\U , d$,3g7f0pppla .B* ]Kĺ_],Rmqrq£ʂ.(kaRϫP-{{*~a`XacucDG"ܼ͘[:їG/$Eb2r2e{*DH4}6Ыc(eE}mq,W֯zV  uIO -\.2 h{֦:Eɓߦy jj{wx1Ծ TRF4huHNNvQݛC}m3o a$(%?Wi>SDQ^@(P. PoHAg8Q͵ kכNYME}E@ q켬z'":E2G¢)@]O=~A7}+6#Y|_i yUjݟQ/ЅNߑߋ5+exW<0ȷ_@#&x_ֳ͛9cUm0y|.{URǿZٴVcvpHCk6v|w޷ȉc>{}>@KF2/{{q3aϋ,_Gk6 ̆S:,>T(mzx\%VVVWewY22,'U<_O13/,9yns4YyypscgaJ~| x<*Hi6So.]Xqub˨.\rʽ8.\rLh.\T]UX.T˗*U]Xr˗K rB\UՉrBUuukXrJ(mz|cbIStDc4@i]5P͆!*5! Q$SJBT!3QT0`Pa5Uѣ\ٰgT9S6y٪g3??=V~~~~qٙʌ3=~f{5Yyʲ󳳕egg*΁?ћ<֌U 6lٳf͚l*h4hsELYg͚3T͜4h҂34i)6$ղL7lG !pٲMnSflڵISFʙjڂM[jy9rvT=˕EOҢ  TSr).eYneq,R9vӗJp[RZReŖYjrTL)7)7-QeܥN[(ꜹܥNg7,QESr)' )' )J6pJ5TݺMU7nvg.ASg.\r˗.\MnSf͛5ff*l٣vnݻT.r{9r嫅M7ofbŐt6V,ڬXjb6}xDmrLhۭuSSnmMNꎎijjTTuѪjcUn\o wڧϷ{oyWW9u˲(*bbR,x}񣭣uh֒9V(cZ9hVj-ZNE^֭xר[zׯk^-xdžkׯ^ֽZע|ȿ~'ߣ0`/(Pa(P…:Y-0T 0ŦLZ!B-! YVi!Ç l8p̈$H"D[$Jpᭇ.$H"D\Zؑ"DlX"-8uAl8p֦iM4M5h* Zae\#ZaPL1l(PBaa|kL0 0-0!\!BZ!!BZ! M h$44M4M>8kG4D' %>O= zmEEeyyyyyyymnm]]MWwwww6]EۥwWWWU775K\+:] ӸBWqqnmċFKRtI>՛sIss}WO..0nJTx$I%bZI =\Vz>ܩ_͛6olټyyq9Jٷ5[VZlٴr8pÎcv8qbÄl#fË6۵jխڸjF͛6[mSfͽF͛sڵի^{F"]-kڵFͳeo7eH".)8cH# QEsP)DK,TB˖өTt'NvڷrlVҹ|N([n:CVYe_8RDeZ)YR]'$ r,t:u^nY+,袩(ɋb͌G.\9sIgA˚U!E@ʳ()̈́[;74 (+VU!\.hVÅvn+pnݺj8~˕z ئ͓,MÊNKvϰWםaa`w+;y\W+}asytVR,,˳?&vuEkZmֵx5F"0Oh"B UT==G*NMJIg^}~{n>\y?c5ߤW>_I~+WU~[ |sY¾>fgGw7|~])ٝuѫyO7̽N'|W?'c?Wsf>MnW7^ss^?V⯮a?dO(ݮw w9L^> G3~s9kE=z|~3m/_ ?Sϵ#yoEYٱ{ygcܫ|Wt8ޛosȼWKbO?[^l^sv߇|fϕ]mO[-~Ww}_km)շ+g='է~]ERW,sMCU>bh,ƪkevpM 4(l&6; 33AdaO.k6 3eVZsl[f79q:aݙgfv>/o v@~vn:nx_wgM:oU}ƪ/ǞyoמUo1Kv5_{/=½w5yyi?=y뻅={15>}\]r8}(ߐUZ?a}|7<|F\sc.i^5[3t%辋<=藣~Nפuu|WHKg|O7:O(-ڴYEv~Ky=*Fy&j7<6<3:\xW?ͮt*7+=s[^/}741_;[ͫ/?~}6|OgA?~ÿóp=pKz|/qx;om-|~'}}?wWo/=/o|'*L5O`Fy߁:(uL^ᄀoYO9E<(x+7<]goš^ћ_VggSvz}i'}Vt_<F.f{LPTA:(Fˀ@h  3PK8N B|z#;8q$1?ℨ)~ HvHMyNQPn  eG(suAz}/@f"x^e:}\<yo3dino`ofܼ<:Yg>3~/^*o/^/_pWgt_xx#x/|'D~x꽫*~_~Gxt^zvꯐexGq:Nm|/^}z)S/U?w* '^~?;T*NL HVZSRJɓ)>|֬ׯ^zױF..l<<<<<<<<<<}>|ʟ>|쌌ϟ>|ϟQdOzmKS}>كk7yqw{l[ nG>Ё?Ž ļļ:H8w`?9Eb`Cy=O60a?35mi.nc[Z`pXظ#Z1[_Ùp$uo_ZAs)A輷콅 - PxX05, g^F 6ByyMͬlhPT1̡ 31Xoüƽm ROW&&&%&&$\˗w{s{{}{}}m{{}>qcѿu [՗e.`5»srP^2dUqr2.ǭ{ۻhux}NZ{{si{W#V-Ϳ}GS{ǗVoo8f/\%7qyǖmW]2:sm{w{uu};5,o'3[\Qk{xLq##O)C/.42GF9=s8tsQZrN Dt%*OMДn؈ӞD ߀tt?|&?|OGҔAbdBq $D! % BP,BP "="?~!~<`Z(%6÷eBbdulRF< 2|>BQhLEN9$B4bD&e rQe?߇c Uf٥I y? $?9%J J>ejp(Зoo6%ċP\7/]r";hNǿ-Zõ,aNsTEFLQsKęZfE(PtSf (c s=Ì6p(>Tr}JK1R t.q G8bp/o`9w%aƒyR/G,gsWϭn!BpCgϗB70oE\9 "=83u?<.WCe?Mu`&L?Cғvc`  :ϛE + g[5d$)(<)Ts3hoLOvL2pCK? ESF7A@(7(ԙ~vp|u_;;g3{I_ ;M"D.6aF`g6{=gw6v` CvavtGQ("qځR`hixSq\7\Ks?輺{xDϟ|/O1A87W6괥417m=i)CƠCLi֖ <:~& Mx׿R>.w!0W+A7鮔5ҔO&jjd=e]b:)Kot6$\G^_o\-#ʠ* ;:æUHr 򠙰@e&wW.` ,eYeZ*0D0 H"B|G'y~{W&sWvul\k5,$"!AXKZ> +^8lmFajjjfpu5559gxeO#(:(:$QDb#>`F|OE(EUUgDM"(4#>:(FuDQMTQVyQGuESE((3j*63H#7Db*(6*(ڊ*ͨFiFb(ViQVlEQEU(3EQEEeEFiQLM(:DQEFnQVoEQEU"*f(EQVn*QELV 33+[y@i0l0 0ƭf 5RLMyr$U2Qk]oYD\"&\@9d3~LYeYeWal!#Gx[#"<*FMh$D) L}h*p͏NT9;Lm!R+6{H0a|ʢQZjƧV&!#x4g6VPK$ C-huPEdYI"HFH YY$U@)Y"#$59$[< R X P =/TM_=z-A@KM W 2(\/zdC2"fธ&&&&&ĴHHH$  P *,""(P`5AFx˫7G#0CT#tvX{˙F=! ,ePB.5Uƨ '!AL'zbmNL 5}|#P`0T#~x~w8η3hPIssQ3775lKC _s]nmpDM;a_L I<Ktz_xjc ׳<%@kF(ѣFhs1?~_uNeYeZ9<)3kVZ9CƆ_]|[:ZG\Ѧq~?Ʊ`4 ˌFeF9"P%"nڸ|>V !(F5/{0@oX@. ebqJc Ĺސpc=R9:)RJTyRXD~,nXio;NnOdB&@HSRpP^=f]r_-yk xqҜ4fe8wzeï}9G.cIK Dߛ~˺OGkUqװ2Ǵ, a ٮmm]F5nlENo';01#6LsdnSnc.`&.&>5l$6at`~-eU7X!l7^ej k~|񞁜3e-󳳳3gP0(O|Nvvvvf`b B6b:h+A"&P˜MGmp_<1aɈ2dɓ/Ly30NE.,qN<:t恒@^FFE6 8q*aH_m z;߭{ME^[ ·BsL† 6Zسf͜7v]3eZ1G5]S, D1>..ȒBBliYW}g GxO$rz[Ldk ]VEqf͛6l·bL D{,Xcr+ ۻn[)~3&ءoO)+HoSy[YζP<oM74VVVVVVTlyXAc‘iRQh"nfdNiZ~ "z\c[E|5T1CA@PPB uB8uH L#7Uu5VW^{{{g2.{3@ 7 eFhK1D {ɵpSKx7tsZÜ%ASJ*RNK`bKo}7$c3ga#Pw|=̓0*37 17q|j xF]F'7mrd|/9XѼwx'~ %`;*0Zرc嵃1׭g\bׯXoޔ-!{u5L^Z%H&ZW۷~<&W_Є3P(YW.\"}1=Gˑ`ӧɢO??316=QΠm[ym=Nl>6(jۍ8ӃӃ/zZmaЌgyˎr?\ݟ9m˖c$om?.i\U-l `aWJ]#jrbY c"Ce[U~p"CK"w-;u$9֯?oWռ yQc47"" Q6[z-D`d!Q^ly#o~E)tv=xFzAJTRFQ`c/4y;L!Jn7ZjƫV|`0dw.nZ"EJf]dpFO^S\w[.8v{^oM!)JRw J#;#Wk$W9;l}᧻$f4+0`}wO+x ;1%A@L*TR뚒#:zjҥKSHA" (35L |}P /|\]?uݿ` X,J,,o|D ` d0*[@ yH B*](3=HX?!Ajԧۦ.U+*ҭ-QT\FAK[J*mXUJ-[SR\pjZ[- ŭ0s!"[ll26cKYRی- hƢQs 2kHR9\W1☷VT7(Kkm2)Z!\LK-e\krfdŠܸeV-0VhS”Z(̖cmW4-nf8\&)k1bfff1Fl.!YKJ#*\r[KkX,jYrҶiVckiFTcZ+J`mֲ1UE(ViP*%, -eiEF܎жEi-m("Lps.5 Lmhs.&[.1F㘮%2"ZLZQ\qS%Rek`h-k\.e-[1T[[rbJab-BȱrcղJܦ,\L)*4J433 IU.cmR#p¸3 Ę)DX\(JV+RfaZ-V[XƵXj1mK)h*[naC 32s+ RV-qUiG. T˔%(+X*VRj㖸fTV֔DƖ`b4˙)lmmXXQmffUbkj-QTXKq2Lr+D2F"5[qUEq\kjRZԭ`ť(YE-b(- iT,)2m(f`QDVږP+1̣k-*%ITjhe)f%eJ5m-J iU2f%iQm KQ֔KZ[EA kre SQr.fLh+mbZ. 6+lJif1j+m-[pʙaR.2YTlW1Ya-Ĵ[hmmF-V2,L˅%1c[kE-- 4JhTLZ-@qTPmĭ` ly]pFHkw''%N,@1sҶa>??Yx_ra# CTL}y nCJk3U\ip=nixjǣŏgQT"ZjժW* Aבm6Um}aYJh̄Պ1^؍'n$W@pfoYeF?`lrmqŁn}'e.\O;9_x۷i  ӉN'y/t}>Nz [mu:UD83yfh B !(@=!m?zΡhjSSԛ5~ D: Lr=3s^8>>/LXn~n?Q#K> 6.#uqVἯ9ewh7fؗoxw+q;WϛySSSSSSSSqv Õ>USjzz}e?OOOkv_~_6r)v;/>gYoYmAm6B{0άrd94YDi/G/=Zΰ5ćWU: K6wss ooA?7]wȏES#?:?s' %/+:Υh53rO;,ED'raJJ1mFŒ良!'M($WEJT ˱1% 6E&JtJbQ)>P 0 4BDbhѣF4hѣF"D$H"D$H"D$Hyyy(M Ӂ$I fѣdXbYDQf#K3>EyRGTe(& j1§c`\.Pղ{M"^ )Ѓr߈=w7IPw B/湛>Д$ QDAEDFg{$[*%H1N_hy{ bȁpGO>Dפ=^Xz[R{N\%+f1!?}r}{]v)~ϩJVQ'S;(g$bc#7y;sW(d>_SR=u~Tji BHFMB)Lp'o, y0ש/Ԟn9~oڹGd8쏧zgepeYe&R>?eeZVJ8P )L@ܐwܿgxxoúGiJS(@@d*}Al@jч߉UFw{鵭oxv~̟0sK},mغW'4e)Jycw3[ _YL{͝scq_ (:#J@w]Yqp濄$ Y-3Z~_.K_ۥBBAM:P}bqo^nW ...n;'<< < ;].#"D"H2zReVxg}iv\8 dx! hK-;sM\qWj9 ]Ď2TiۑfͿ h ߆zC*O6ÚRwKc빾WC|LhDЇMu6mɳ\b8ϧRJ+''&9ZBj;<}љW_^A- ThП>|@9 "b!5bAz 5k>'?&_~OMC0R6Lp[OzLG;1<33}rkZՌc5?I\ ,>Xye.gq|fxrv Ûn{|2D[Ȋ/;{!8@B } ڮϠ ܶO ]]]]yϳ7-O1i!ԉmre46wl C#ƍ{cz0{h[.\Yr7Hq10 éZև߯?q,[^/C 4#Ǎ=x7=@u.f<[M~FF6h6l$dcV| h\u$!ՒQٙaD `4p{i_j'8>|q8^AJϞ'N0]<,D ]f0uJ?s{$E@yB^NB'N:tӡN7 U9ں-MMNn7D4BGmClB}*| a zV q(r5Hr&eɚ&L2dɓ&8o FQ+d_58<SSF8\+Ah.F= V)s۵!RbwX!MPؚgC !]M"`@B.hпo gﻟC:-ջsﶳ'!jn%Cc.INGӆ-NKp4 >)\]K&TkijxTl\ `Q^s8נH湯koiePBeC`Ge P7VYGI۵I}!C|,# lo-^y?{{]e1֏z+VVjk8X("SY6=u4d jeD. cu8ar}]aq>Ʌ%)\RJV>Q@5A;0oy%'N"TF*UV,H*UQUUQQ6Eâvy$_>?~|mk^$~{ѓ|#HK$,LtB?sɊb>1l{N[p1>_t(t}Vޅ›oN[ (D,c Zs;6r47/߸3_.B 9=k= AtMQ/^+dm whntk5/oX '!:{U-FUܵrչ\t|oY.'g?WLQo{~:rAOKKJc-yhkt߽=OS(z.6xdpJV̱*nۂb_:馐I_s!qUUZAqt E/tRqX֖6K2/u[@^Yֶ}g ?y%,[_jfY@33233/3d!vBH2fQ ;&uxnr4FƋ$ o''.T8mt$+*v m^*}-o4/-R.F\W W7UrH`g/O*vt?Ё!($$$$$J3 n^*e |Z[GD.O][1#L'I#xaG2\#P'iZ}>Oӷâ 2JV9ZG̬0\!kMڕt-`SlorVJ/nmel33f6UۮRԲZ}|txy/ztiBa ,ŀ*$qiRhƥ@>߮_.?߻#𘋆NF۠kcđ????????>?=%%)e 8YL mcKka'0@#s>5p(SDDE䭶o̹9ncL $K3I%%fb`I$`I$I$bJI$10$I$K1%I,L $I$I$I$10,I,K+ĒI$ĒĖbIbK1%I0,I,K3ij10,I,I,I$I$YIb̬̬ʪ̫jmaUmI!"|Pw6*(>#ƈ%qDQS@ iSY{,_W^oavb{2Uf0%8J> M0 ( ?;<'>7Gv {\\ tA{Q'ԖjjGͳk]%z;؍ .5~_` Hd*X!b< ƿ_{]pOT)X͡Vi;?kLm%%,tq(֤"b<ҳ&y"nϠ{nl텱-[Ֆ\Sh?tNRӔ4bi|W C@X0=I* sWݽ,d3}}}}u 0 ] Df@ȊTҔ()7 uDr]ZNf4\ٔ**Q RFAM4fi]fv1`d#"bĐCKIb H.2 ѐldCo l9v<_/Ci{(DK"5A) D*D =KpG{J@@B <'bbbXpR |iT9s$[Ȼ${yi8~.KJ2J=pl~vp' =^WWϣU`?Ic dwxnsi{9^^;a>~#~n7Ar ! 01}H )b,g1G3D(10 j]ğ#+eJj< @+J"Y^a!UcgBa!&0@Gsq)UbM\\WWkQ;jAD#(tJPVHJ V<Lj?:L 1ѕ )Gʠ* ,1Ϲ\#AzEP[귳U%KJP =L%_ye}O4 pv\ά)69TڹŹetn^QP'Fةi4֍)C_($=PO@_'h0 Ւ@JZTTaH3Bk<0u:;i[#}>)8=|H#ٴ^͛6Yuf *Q!pA~QD;tW"- 0걺O7ddZB}-R Ĵ|hTt*xH)=j[[ÀOF$ 0rR}yk~ӻ𴶭!sj῏m&Lk5fYRaahBhEmTgQFB3m}_Ww+(PN8 TLoIIJ3~J4D@G(~oK9_`@޾-=Ғk>B&ٮK8Жo9_u{xQC"! ||[ګ->zN7EˀRplaC#hCGGGCGGELđ'cRC7i HPB- .S7SAqƳbrym<I6# N$U$ NV v+XUMU$AV}lF;MHn,YO2jx:8>!d.l¨-oXe/\achi.xo+_G<  {ŻFa-t,a B="xA ڿeڳa#0י])JCZ)CJm>hE^saH5k>r2t<N ~?!{N/uazZ-ͥ*ۡ?>?ka0L- (]/a ?  ܮi .Jӯ&}#]:l^\gjeUUUm@UVPa*U_jo Q `h* - `t 0`AU[аU~  U~UUUUU\~UEUUUm~"X`7  ZDZuus"<#ȻĈ$H$H,XbE'ŋ,X\9_*UU~n nUUUUW*aw]L60M@(dٮh- '>nJR(LVQEve͆makehXFo Yz+YTVZ+VIp_uyy۹nJ?o #\#l)hlkmm"'%(уJԇ47m}3Q$b4et,%!;eT%U]3@iؖT-NWno}#] p!aH@hyώZ'gdH8II$eݼe*Dzz~}{x"1o凗_OV~G՘&[67p!1'ӝ쿆xETӧM#d͎"= cm;Ѽm6E&`Ԇ! 6EUfmnz$H<+.)o[Msi9 =~߁f-L[8e3B Hׯ\]Mw`~ yh2L^* 7z?oh ޹X)>!1Ƙ<,uV1/Oż NR άfG3Ғ&gg#;;;; :;9OA ߔ<ڛkxTރ5׫`sѼ E0CxhAAA9M5u}/+C|#z03KO3"|o\O Dq4`($@q´U҉=ۂE2h"TJTVI5ԩ D1 12/mp=շz:! o,e% ң3dg}{{{vp/m:.JTh$  ⶱmzZ (R{?*Zσw|;N18 $I0 _!Z :ukZEFE (`xz3w2fͶr趋M}V[hUۮ)\%ZtR*O"징=o~Az8PVh* Tp|@@+nC(^U6-+S HD4"l+Y`YCV'0.2 B!(dEn0%69گ7w.K{n7YU/C{ 僷C^meWR &@D ZX6 Byv/q}kK l?h[J[yWzc3/gteW,]6"^$"dI +@7D`ZTV TT͇(( (Pf T4ߠ0i ͣZD:ЀR~WxJ:\ ==BHc@r`Qb**#d!&i0kn$X"! ;=JE1LS r1ܘ0>{obÄ"\ TsLM@3#9N?K>g?ܖϣC<3$s7)$A!9w {>=Wp@@@"3o7i R"#1l#SwFre6kz^Зwm4v[i*7P?ƅz *V2{s ̣c4 k&54{BJ. BRMAY֥-?j7{u(J%a {|V ng~z_!k7=` >#im6Mݦ2 bх6Pqv[-c&0d9)+("P" k܊*l*6E3k.!~R~+ho~*'%-"pD B/(K"|O{{_3(@:(5)CpF!bB(KE YRX4&efxY77^}a aj:*}tIC"pfou]ݻv[$mJ/){$pCM$4`&&t bZQ AhlE^x]bW?r $4 #


1 /9ovv6W>əEe-a>Hӏr$E(%R)A@(3 gyD2DOm>vy5`OuVdG5L9sy0DTl$G)2JN==""qμyakg\@CwGC{=SLs$(QΔ'4GH9UU`nQK΄;0S{>c۵eCv- H0Aj@AD, \;0pЂ0B]{믎z祆OrO ki^l` U$AȼWk ,8pwMAx0`'^_T>GNl=Ջ˻76Kh K_p[2z,,w~睿[y\W(bV V)Zj+;Y (DP!D"BDL {jMw͛6lȳgYL////aIsy`3)aչxBIIuQyf 9cn Tcg{9z°{5oeb`X"a ؕaXCyDr))Dׯ^իV!D+;ʕ +`FPw{ok~oC%4'mL|y㔿S0) }yK G;\;?)2zw>˱ ;fA5{ 127^FFFFFSA;À2TP=WG_]' =zx_Gx o L+Ѵz:PmcUL'l6;-?*WL2;0 ,-g rg;…K74rإ)MRC#| F oy^jիC%x!$Jrh͡m[rҪ+owQ @@tpU2JU3 Mۣy2d ~79N'iNʒ2F&Ϡf7i_ݧET'.`CKK)60}'lkxJ?F?.)? rf.E3;aXSBW8"<ޓ~+(nB$xݠ =台?Zq6xlrCVںEkI$G|M]*a,^ժg1KGO;bz]dwËlPU >.]Gp@O+v^f#zi1{jvRDL[ڪG[;v],XeshҚIXgo4ǑU;>!"&J4㧄㢞S,?lQX<8Lmq ~ njߝ};PMby,b!oW)]zy] 6rP!CK[Bp#V0oGEMML]_7?%\)^Y3a/SYN6Yz}sv^uinKD m2]lE5mÕ)Cmo|)Gv=Ύ]qsrra'wNJx }FSu^CM{U4OOn{8 T?z\S؝2M J[g͏m˓ahuǡlGc|O/)ulJz~s|yVdAܒӹpyfCgg'F;y']&jS/]-IyIW+.ZACcFŠS#iґBݰwtQҊjhMD 6/`ac{5b%hSt8KϺq8y !qcQ9q➐uErϒ}#Sv !;gHD<!q=ǓIx/}͞ pK,>_ƈ$A!΢>x,>?ݖteŹzy4(XjcQdLhIT Lml9ں=ȷ.Y' yw|~ˇ_-8,Twnτ{eB;8z_6\,H`* O6HOɭ]mԿAA -4?㢚G(j8Pky,e!w>,0鿏o}&{; <ޗt #~BO)۲:w>ۿ|aů_5Q:vG*sb5znL'^[>}8x__!zX k@I"p`9))nӟĿmt`]ٴ@'Q~C8.|OK ^Iv~"#F *&V{L\įχF1h7/>h u f K(s!-ݏDgHhMH~xMU/u͹~35˂l:&w-gU./ΆR ̀yGgrolj_!0p> gVӓ;xO#O/دZ}'kݵz Nj+H}! nlu_ģZ2]\X~xw]\^o},㧒CI=]. CX9:x_%%Ǻzl;]_]8O`N:pi'ޓ{ s~|,=F}T>se>w)x߹x^E{K+[<՘uRc6o"ʅǓA^#5*hG3Q| P *#m/UnPZaV,F `_A X%9<=TfT8PUWw)_dKgnK2>t9QrKj`ِa gEs~˯kHR`3XV'5VZj՛֬kl*FJd6;K3{\³L&dOC*6W'39{[z,wV *TRJTCpDG#WUҔQ+@ˍ7Ng4H 7ͷcy_JP"u'˼ />&ҭ]zW>.5wٲ,fpqssnA98M" QMW{ j%/|C螿=l>wy>׿Q:_{EDUQGڮ焸/_oX/ʻ,:V;W"^g-^֋ͦﻬIj)ݚuO=?c4[]]Wp.iĹ* _Rfyk- ܖ?~0Tw{}}QwZ־Po3lƪob)MԸvVwog5}Ww^أkXTMR?A{ż6f7Mv5;l;Օ?L9M5BiMk3%EWW=5Se|/͵MWe1W _w2kUg5A>Em::]QYn.Zm+|ٕݸ0]CZ&UN]n_Q]J#[2g1u/3G"N5[QFr-3ir7nG-Íݧ|t59壛xY/! @Mw7>Ԝ.?|"I][tjǗ>_9rWr@kNq@eCC٦@~%>:{8@K კM{ LC.x\^|@:%JD(@>@($ GC*! ǁ!BQ\ŵ#^U{<Њ"o7f30]q.P o^[3H8Ӎb8f3)wޫpn2%s}'jW^ew,y-]-ߦjL WHL-M[[ABeUqնdp>8z8-3&ُ Z ,֒h iꒁ  ("hTDm>lo]7Qg %\ "ՃZ\{> lao. bh!/)p (}4ZR6>_(H(uUK @oO(4 6T2%")BJSѥ)hФ*hJqA7IUU-@$6;n8=ρ{*E/6R%*)<4Q%B6J>Xyh*R@R*eJ)@R^T9p}ީ"Ix€Ҋz3mCo|X oLJΰա2"z!x?Rz#CSCSbz&ѦI&&?DICHѦd# #Ah6l5UPJH!Bhɀ&BL&@&` h0`0@4L`&@hhdh Li"Dh4`O$Oѡ0Ѡ4LOQ'A&4ѤiFh!#L4d6L)10PiHbbiOCeOU2E?S @ښ=MM4hF 6J~hhi驦56i$S<= =2=L#&6HژzJRD6IU2ɩmOi54=L=)S?R6Mh4z2=OPa6 M!4m!z 4hdz2mD@& =a& b M=044LИh)qTT$g:題=rj?2;9X՟rZIz: EZpZL54ֳ6z>+=+#,NV2űtVvů||eڏzc*&54VawJ텖Oz^ |)Jҵէyd͖xk;총Ι\NW3k֒$P@g:RY-])LW2XCL\f.f¢3Un(%W RUU%b4v2/a;CM"oZVW/UxpryZԭs7WUx32TQiNOa&z,k^u|aZΗggHlI֓i#P4횜iVEL)%>w6XqWy_)7<31c<-2-akZָ^ֶ3^BX1{k Zֵw瘰hRy1cc<󰵲yy{!#1y+C˷} ݻ04Zzhs=}oO?GD׿_>{4fu{1;jɴʒQ}%P{ .I$zl3{.#0/=~\?O`@@4g>Sp]f_)>]&gmLH31zZiEP4 (m~>tgOx:v:::;kZ U^*@<(O+ @x[3'ɓ3$^ul{o^txD@ @#&I$;\əf`$!$BBI$$I t*\/02YlM\ XXÐ !˪*H&̒` s" u"kkp[yk\Z+12 d"0dI$@I@>3N{Nӳ7;{{[yit/}vlٳf"Vtc-q'cgiQ""=d%|c[ۮJٳfh1{뮺i`_`lѳf-\a"vZ_nOwG)=&}7qQ[q'yĢ 4hLLB (oᶘƚ[*RO,뮹F{뮚i'D A=lcf͏zRMs]t`D=ٲ6lٳfyٖ[-ƺ".禔ŭ6lٵ1]u=6k]uivy宺鮣RfWٳMfI=u=u]-kM]uD.Erړam+dF%6жuyR73cFB"0H$I&H20C3&1Y,dʉ2nHa-Y3,fR)!$$JZ[P `SuV蛢#qMn-AT*u8ٌq7|Uڎ׵^ձ.By&F|[y6u|eY/7ұyeg(,ů]2rtЭtX>t 4 h4"i8 cEILrb]W+䴸qy)v|YӉ}(t64{祴:O44{c+^)yWʷUy[6%4:IFu2wO~o꛶Uu6mo72;o-5wynv|6 nK-OcSu^ݾlpjNyo0iuwp85yvρL8[xM6o 8xKs|3˃"p8QQLG S\yb3]m(|i絑<;ﯻ6;wv pwq)pwډslp<.繦q8WY2gخ0^4i801@}_?ׯ@@ =~ N;vӷNv۷p x/]=zׯ=xװv^]v/_zǯx^^Avǎݺxp;w#Nqq]:t+nݻ @^z׮=z_?_~Ϟ=znvo;㷮@߿ݽxǯ^z/_A/x^z󧎟>z࿂=zۼWnݺv /=z {^ma>yI[ Gl[-ZJZHWXݢ%~Qauf!(bI dA H%ÅV.\@$%LBp( .©b˻B҆@w P!ЂY:b$hY BWٱ(r/RRp ;;^8Wr(09""G:9g ] YpV7@w 38ʎI;$+$)8 u^E$+Bw$FaD+ݬ@p9!]Âd%Gq%!w!ІRH!<;A9v"N   hI-3t03P,C GxG!U ȡHp8pB! @|$-\ u.C!\;@w A""$6h @wPQ܂`Pv$N\8LM!]b; pBfgWI]pŃv!(l"D@qfMgx~XQC5$$$ Y2A`i"F `J PXD(pwqbR 80o@fvu!Ng!L V @#H2gp@$@ ! .A)3"afq@\ArH z8e!Åw  BUK1A!Ixg,A 1B%%"8xl!ĒIs! 8`!! D;pV!D<9!](`8gb rCjD wAt  XHHi3E$0]8!I.K8<A rHz,ws^!چ PK3r$ ; xB1H w.HZ"%'xbv %a#6@KwhH`ëzғ ;"XI,\fgFb v. (HAJBB&4˪-UB K= E̒j1Zut H@!љ  : BСQ4#wh@I.Av\9qȐ%`@!Y ̉LplL9R.C$9 EL *ԙ]$.A %a!p!2-H1,ܳ RC C䆐a ݈pX gfI0w" x;!І-C e@AwpC圱:ΰ4(aX2! ;6 _tTUQ0BJQeJƠbT3>[yE> 6v1S ;edY!YcJ+y;3zxpjZͤ*,UT>eӥe?L'8Г/KVok8SY3K2 N%\ZZ̵\T3,OE:֒reZ)PÕ2XW%zy^&YYcNɤfXEXAyb %AUTUe p 8xWyNK6hhJekpwx\.wƆ3J(]x^/ TqL<^*  C ({TоCf(mKEp',"DN;g:η|/^y܇̽w{o]wY9=\]6ee/XI_=ֻn(@Vp[mF5Ez\ܿ/W,)X5i&F"<\K&I,'*6M!=[JRJhqc!PXPxe) "`:  Ƃr|meI[3/cɿM3v}q3xp~2['ݬߥԞ6i,R rһ i=!6M3e$͙lg[Rѳx3fV\πf&HϾ\LsHVv"&ɶf~6ob3,ٛ.f~d$OH3eB\=*IYfL{13rL|vRV4VeRz*M) _%ROm?I,jP#d잗fI'Rٍ̓,RK$FAfIؖgn\dE#!d,"I;BMda{Si2^:MD*"\ODBeBaA;^0BvT#!A'bHQNʏHfY$xF$D\%\&l$g̲ۛ]ċX#*73sܙk ܛ&kO&&c%F;nH\鲒 2~Կ-N'ѻf乫G?jؑ2=L$oS551/UlfIgL3LH2~nD${e g6qܛ6ɲMf?-?wa#'j3ePC!2$?U*(/ЯठR5hVQQE)ٛڐ$٬'>$ 6M\F,?&ɸ5>ŐB5JdRC%K{/dW3D#%HԜgB򣼌-'yq2dI=qT$(MBɏ_ 2z_틛=2l׸&嚗$܏^6Mg[2ɫ#zds 33lIM뫍rMr7&T 5%@(T*OCOƐ?-cw&,[Y~"MdB$If}}߮LYDґBI`K $9ϙB= !"q%GmiJˆXP%푌hJF8R0FZ OcN6dDK>*.d{@ˆ7&>rIh=rOx&]I2~1&ن̻rG~ KGRPJbC;¥ RsG= Wr&Lܲ g,&B$݉feC:,nML?fl5.d~+*)B+|f,% |m d%*T"jִ=BxsŰK0}͓9&ʕ=Ѹ(E T?lPK^wxX"(ʋx "*UEA:U,Q[Ҟ.[1ǔD)Gx^%|t_~\8Kq"QLb!W1Eo)BxhI&8rRnnEll\7QQMt#E dbc&Y2Ѵņ$@#h i}/BBA. ~ݼ\+=LZD$@"Ձ[p퐚P w(1aDlnp-p8p=/kλV0]6V9 .:.K@jhF-&ji5Mq8! pWv ߲&Ӧ7P[Z-:S:Ut*tթ5ZJiZMQi5-T5MZq88#p8hsWhܭBPJyVUuzQxk0qQ\wUbbc5R!ѱC;(2"ȊI"H#"Us0} M!4JT|^zբjZ-)j5 QҴij\c)p. p;\8 lz_]mɵPZ±Jpi >!Y"h!D/YD)/E2BP+U T )i\fa&f, .I5U*Xcssf1'MpOL˼7m+y/-Ajs]gB~ jUo@6BĆID(%X4».TTW=}]EC/ozsWϻ~ߏ}O}ׁxn[ݔOw  <SޞP}cI{ qv.yH5u:?;&}Z~,_*2ܧ,XYeϱk:'ȉ;i{Пm+mdH;_?Zˋsemxv'[Bc"Űex[K~pX(_mF=~כ ?oku?gsL{5E|ν T0LT2=ϭu*.KJ9> =ǃUw<:tCU@YxlQUs@&_p_5˻>.6QD,l* 'Mv,:};BT\)>/}IrܩG-OVQ\@9\[PyW%̥Y/#TQe>Wy8CyUA>W UQPf>[$VJ*QGUDĒj6{qch&!H(Qp!PB M>fO=˔r-j+-YilӘ:uNS<>!:0GA|2m3HI` c0,00^t(_xUW"~nn/mݼ\|{.ƾǻ I"("HH# HC2afa$$0d$ BI I $Œř#23 132* "2 Ȅ $"b*k5ރk6Mo=&7oyZM8؍ݯ}¯_"qsh{FӒ rZMʚ<ƃ#/63mfcf|kB_}}J+߉~H} ݻuwyO5vWn`Q BVzU`s?{O|ǚYOy=eV ><8&v +lGO`m./_kϤ39C_F/7#3{(M.k?>g;%}׌sٿ6V7D)0DD kl_Llxq?5?SOR{R3lJx*{23Zĥ9w0"~ _[vX|I|CIc>P[jܝfp(@Yu}Yn:5}zF$ %9iNwK$wWi]Fh1ӅP4"̯Ue)R \S@ Gp~ ҚnNBM=tr w!3αKő.AW.?S#wv4Zem/%n6fb^zNf^߳f~ٍ'k?oSOp@)4}zb³: ؓYQ{KV3CʰvdkS =|+zp݇i-d!nq[8Cٛ-+uY]Ve\p_fdQx{5֜d mV,L܌$ՙcmLmrD["3!3Ѥ,ҰW? Lj)jTpUc ,۷Q=!OA%?W{k3jrb{dDo':('/sBaĐo ^1nSfyWxQĿy7ǂ޿b]ΎP mJ}>572g/=/7k+H% t)לeӆR3 *6TddQPE9)KBs\5csX;g0ph+ii9*qԹr!#.UkaGX&%, 4i5s\S湮 iT4K<rM(224 Q2Ґ+Zi.:bj6\mKbwxF8du+ZRRZڜa~U{98)jy)s$57?Lh2YOc٧f]s=~COt_={Rپ<ͩewUTz3;77;SNm<+庭&T8TQ݂AET9t@Mޯ,<}x'kO/pܦOcH1MS@9BCƢp|% {{߸>x=hsu?!4ljl,74R^rK{Ւ!T@ 8 8/ @{ǻzr 5^|֛Yג)KV nU^5^d0*HI %e&@o gcZ_ݴ)Bs tV}1 āǁ|l#_"~we+67#CS qa?>\4<)>dyL_Lz|}lbH~O↚| 9| />U#W(`fh3V@X纞:NLTAe,n#p^P)r>w7x}~V+zS<+Of+i6S=kU 0P9(&k3\3g390м~4_Z9Xq6lYH pkRC} 6(Kf(ihm6M~7+Nq]‹ssri5bhViU,'!x_xo~K/%Ϗʲ>䵘Sgv.}㫷_y1z Wcy8'jh&?y^NG= q)6!8y;;sdVfUص~mTƖ<ɣPttiX8`tiv>S]O_Uz>Kq1`9ͮlMm'm7_ҏΤn7 TD7}v{F\޼&s*>=}GANdަ>gҦ  9nV+fGN60hCfi(&TLзT ٍ@?p|On]]AAkJ<9l_|W{Cz>./OvGW60%v; ][|=iqwi;ma?l~o~FF}/Kna=m:Gr^SN1cq=a d]^llX6Rmhn.jl|:{BUCQ}s浚éS0wj9%drxr_q2gLcЙo8..T>&^ϡ͙^ܮw7`{>ꪓ89F߃kyz}Ǜ  QWH"t#Ë;։vQzQ;3|fV.=t)=o˵{]0s>Sjaǒ^RDҹbV>0(^Q}_,D^So) \)C7-Z^J WgpEbw|gǘ'9C~i p93uuN[/˅60%*Kq["'lD nn>w &-3(! &T4/z޺s.}{4z:NU9ʓ54ʹs"N1gD=އWȸx.kr2>^̣tdW27ƭ[9~2uG 6k' l-YѬ +IjQ]$i $um:ζ[u^yesƘ==ÝNzj8LQ`$SR&Hgz9]`t*1Ď )Y:T }M-VEh#t șH9 BMR"30mL(e^7,› vYzId)Aa'^'}UGiq4b`NȀh͞tnwMy;W_}.rˮ+a~.][j7:c=w~DZ?e4u{3ͽ[Oy&'[n˩({yN@v#3PhQMڞD:-W.T 11\˶v$+N6.7fY!zXR{l[𷰘u3tnIpL}f/ÇCDDlJ(~M܇ (jD=ҏ#rJ2zuwZӃE'U$sN]:%FH:%,II:TZuzγ :βDǝ>}x?PfI%n]s=vsd@8K/in5o^R+\5DDR{Hڽ[FHc1P0fW%V4[Ih~؀DHAJqT֓EGJ] &i5[%,g>6qMg){qT x @ y߫?o1~}G:]=&vˤt\AԺ.18urDټp}w7y?kw0^""! F "0D0L!B`HI 30aBBad2a$3 D"!!D111a2aHHa A#Fa$2a$3 b VBB2DD #!0"L̄-"$HHHI 2#2I&VJ*TH*Va$C$0 -ddŲ1BL 0$2BHTHd# Ia`faIa$*C"&Bd*UT;o臝׏0kߺQxQXU Kjlk5+.,<<B)J r\i:N#`tpD@M|_ӯ:p:ލzn(d My/x]AAJNJ)E)M6BD D$@&PJC{Dgx7E{׽|JR|RZw9("fJU&ڠT}*Z)pA?_~>!e2MEJI}Lzimӡxeke%S=_%lz qDLA^ߵ:_>g59;^@E,d/Ve]^CL;qmۗ#n`5842s Y !G9 NIVΤkR*m%MJJ( z}wo;5<#p B蹿5d |>z-$-55!ϥK?~ X|y3_{B/;OI 9zq\縄R?0P[at9Ҏ}|A4~AuZ._«iWED% I"ٞG|/71yzthr^++O+:wG7mǷs6asfg=KْotLi7D-#D71ӗVN}NDĉ&7+cP0a/mvW eUv/JQ2Nh(I$*E)2I&,' 9_37#xߪ}@ Q~K A)Ox u 3owe5̿ t8.K/-+CN;pN}dqǛgw j.P 4ҥ*B$0E 1 mzr̈́ہe𷠅򙊺:@$;f,;n}]l"rS)XDLYت3QEU4hk̡[5Ck=Go;yb(W\D_~CB6RY$Ć e!+&~T# "1  $d$C !!$ bDHC!HF&20b"2Db# a c#D$a2"$LD  D !Fc"! HC" "0$0!""0!1D# a DD D"DF$C1$ &ĄIB2@FHDfA0f10 "!O o/]|k !Do{CJl Q&Y~#~>T>we:O :} ҝG3S_TD0xIy\053"{zagz4tJ4;ݾ򶼋}H:}^;e5UT7Ay0y9= 3"YDs@ tQ*9B_K\ uI+dF8qMI*TC; ?)~dpo$?^oYY!J|f>R_; Z]V!d!/ -Pd͉:+ Y,d(./0 =>euJ>#d@CnbB D_7w;B@4xB|~gk_xHcY2].4.b) AJN^>&^.n*,5/mb" ! fp3oVyn_:/a΄AQ϶DXP3"}}c[| ^VzNu?ųb?z^%DE'!{ot|<;õan4La17X)aFuTQ;S1T$"$S8D2,x/.'?λWO(1dB9wN+D l˯^zf׭U/ZMZ&(KNNIx^zDYJ CDn)Jʩ뚣tZ.zEwN81J 0\B daayl>:tTi(S'-\w|/ ݔ3*Y0 S11d̳)fA%LY a,2 ȣ"2 ȣ" ۯ;[S?m7W]CwBLę2f3&K@f7L]{ܝÉӧNO|<||Y62P"fW33'8s-J Y.[wDU)SNݏ{X"Wկ^9Պg ԩNsR&f@ : +RgW  ;BĎj <,^pkEQD*}In+ dմZL!q;׾϶#K ,ݔ)q?32߸>Կ˗;jR.\Am9~7 |JZK!/R@W6ϐs].&rG_t'9>O?'k۠jmM}m /VӬ\ eh@Lr%68NJrwl7!=A>)! s߄@v_[}qo2~ɦu*43KKJ(4f_Aȵ*rLP(Va'M[e/d,a$]eoA TDHrNƪ+2Tdl0ڣjd&ҶFжm)Kkib 1p_+|UCuGQ`a,F2LfJ 3 i털Jo;:NalM~S'D`7 r⑆a;WҪ(;8hI oo6nL HCdW DbVH[.(Фd3q\?eXfL J)A9w}5C_7Xɩ<١?!w|A__k$4[ZHAvh썦ZC-!!rEm kfynu\-۸LI5DJQ )h)Ge"XD $xn^㑽H=,:!Mu$ C&]]oKngX81s)x - ucj 0 XȎTRd1HH>PʺAܥU`(4ߟ׳//ݿ=׃Ap9JtYDD $2X&&L9FblׄF8z"bs?FZ"Alt?籷ރ*lV黢%תC*{VZ2hQizzaxC(PqB "CPD9J:'@%禃1=DDA<>wW,ߍ"M"zF\Ydɓ$`L3 xDD ؚ3N{_'GL^ R)\1Mܹr8wn:/ψe߹QPqᥠ 2!ǐ k@}\0]yxB!o۪Fߡh6+([2 )J.\XˋGEtQmcEIoEhmp[c*˭Fz2 D+TAt*+ \ H.(qbˋˊe*լ]uE۷W ۫۫%˷W ˋˋ[Qr~t|Oabj ?W ] b* AQvvlXhhk.,AUÙXry~ccc.c+IF62\RRɏcFƒ=51Fɧi鬚zjY4Բie(Wdi,zzk==5GrFTQܬjK5Z&uWUuE۷W4]X*ꋷV.vqE۫%۫%ۯHz``b* @@QD @~ `ii鮍i!t]/TiEi(]4zZKJ -+ꋷn. Lu\>۷ EIrpsfT]uE۫}ō-%!E۷W](\4-%IE-%۫2UPIm%"--&AKKImc$+MD TD0W$  b0 .@tz|>]1}ՍMEj9Va K&.jMR騣OQaQcU.jjQj =5L]4ݭuWT]uE۫oֺՋV.ubꋷnE]Un?~%hyGx~CAEn3+qq&Kr ~VUJ[E4~xlFB4 =s$ X:>~ʄBMZoo̫Ux"-dj_OG "_ǁ IIrԫr`j aQ|]wu^S` ɤ~/_ƥ?i'|ɑuOF8X &HR]DiHF-_y^?X) ~*hsj]G%H Rm)JbA$ hVH$JQpYN0%J'Ŋ+ 'H)f8]J]NU@=voy߼|;Kdһ&R=#n>KU?Owm|v^^>4n׸1Re}O۶QQw:Ǎ}ƾ_>X~[Ysۯ~v_Xϛw4ɿF{.:;;)UT W^ɓ·Kȁ;tyra$n :x"H{ ',gXA.(jB B`PlO(JTiI#PI,a[5 gi#I0-Rg}~m B@-\$YD)n{?OÃN kCR"v\)J.54hbw`j!"He Rg@J** - T /Y \rx/{}p&T$xi/SYh *-+.2{--G r8.Gmx3 \1sx6?=O6Nf $) l@x? 8d@:UK(B8_nPx6=t@6 V7 RQԠQΩD]w[+ȜG(~kR,D-f͛]e_cYm Vv׊MydQ,XYJ/2*-̣{,)a3Wə 8M"lP4_N`R<7+jRRB4ǻeUQIYbbc{_#|k[,iJR⳧T~ Oq[]W޾N:t2}/gS7{E'є6Š6Smmvm_sꉰ5  /sa6j SH?^oۃ`!4$_&ixB7)i=O?|b}y89d!Ar"}L0WOU{|}oMǞVL|~ϸb/sBt{z_@"Qy~(Pq˼s++f]lU߳ -m8H6&N:|dc$ѕE{;| ,&xm神 ) P7SGLajoW/?``*p;OX*!9{F2D QQQ ul _h0k `@q{nw?3q̴̲̳wX6\} v{,2U|ӽyW ۏl=űԻswt}m9ߕ"WJgf b}>_1nBi0QPʹ螞 ǼM:F@?0Өc9 # Rٯ'sGN2p p.rٲ{w -0=tI*z׽[^T` $\dC4 c߸fqdn7 썓4 24(tyKaC*~ʵ%RyIi8D!-4)X֖RwrMϔdYR"2,L$na *Ja H- RH"2 EyF&UaX@`p z~g?qOPy&Ѵ=Kh8K.&'/{}&ECPf¸HBcfv8FH[l*C [iB2 B1uJe4ܱhcZQZfQ\J` Koç9K|8 0gޓP]mf0̉D%x[efnYk4oRe1/83OXE~l;AD͎aZjTqT^w|.tn ed Ahmĵ# fI@ρLhiwo Klc HVo R>"+ ]}$2b?C_0w~mзm#Aͻvq rW&ի86g͞OJEdRd|ݩ]L8XR1#`0!(|,勽bFY;E}6l#l_=Te$1c)\87 { 58wqD}=4U$P,&.~]a".@ ;{/{WNP2!L & D7Lt6żv" TCK2w&iEZ"2<Ԙz#i5UPPׄUMP SOYep[5eWJE~ F+g; uNfyg6K]x 7j{{gMvL8 EJpf q3TY)zb/+y^O+zH|%c,%^KbшP̤m #"72 "!"2Z9w(.C=|ψ8UkyQ H`BECOE$v\ D5's5'Z ?(Lh#47ymgm-`SN=[s|Glsa92+:Gfa]A:|FyIHjm-/s m-쌰>݂>mQeUɇQ_/:ύOuzwy{|nݻV4-۷[xzf o;JPԊb٣&R;V~ @7%sk(b#kkAPB gfΡ>0J/1ϟ=|3 !7yjgl5f; vJпL֪=?Mxx;/'0L2Tɓ&e̙3%{3f͛*lA pR;Bx$:^RF#'0/ffF؃}iȂ#Njdr˘dR)9y*RXe %|`EKY\;1bNL?lG}H4sbhVZ%jի>έG3/ۇyvKBvd=Jvͥlt u=GR*ǼoX'pʡ~Wag0@lXŕW_)I]])־%!6}Ǵ/p+ Ϣ_?|ǯ㱏Hٞsn.+|O59>bMM=fa׍{VMʟ#^lv^]˛f[[Z`>}}.?+5.~/ok7C;lZzO7@f7A(SoiÍqVq3HN>%F,c璁ye8O]PЦ4K.rP(=sL0 faJ 0 1SMhaamYc2,-BfYeX ,eYeYe,,ٖYeYl_Ye[0Yl,0eX 0 0 i88qq=q88qqg8}ap<8y՞y<Î8}YyՁA< ygxA*<<88M4M4Vqq8yqg<վo{o?.wn]'_sn6ms]][[[5jխeeegWV?=i={c6 5w{~{>DZ },,QDM4ԒEi頂84M4M/F4t449(P( :w6~}mծg>ׯz~ g>6Mx>ׁ7o;>34`px^m6>Or ܏mkUilvpiـ<@i? 0ǂ06|}_?K.^1?;Uk ǗZ(r@&yl w{w6/_FaG|~UI$ikh8 꽎DҧwBwH!ߠ~A 65\yW)0ɗ< ]"K |ϟ>lVRJ*TRd*W*R˖gf毝Vw~~~zM\QWqa?8h8'yϟ>qϟ:tI_ZI,N;Y]Aԁz*"y O$*AAa㎸?x $|I q`8с}H I>i$I$I#8haEQEQ@5Hy (qP 00? Ǫaay怂 !bAӁ<'N8H A8H>$0H. 0;o0 m$*B *}orː&K>mz#b}n\W0?G[}s?<6|?ә_wt/ldPGvdD~KK\sԉRQ\.x>?`GGTd$D uf S}PڂښzK((Y^۷n]QH(Rse}e1[Qzp#JiXc 4hyqFˍ5DD7'u67>Kf>u#rjV6LdcWN]@eJjbMHCX=8wp._ +rrݟ O˼o"xRI&tgRBC1JR =R" R/gyi[*86Z3l&C8cbxrΔ!HMk ]C騪P&pxhYl8{Zs}#I$\nWHWuIn[7[u\La(R(DYJP"y̴tmٳg}ojզO'aH&J+# skZvEIKQZ  J>?%mC|~KC2P&ʒRl(^);) -efe[!$ (Hc츝gl8%$$P veeg [A%Q^;wx [EHỘc &_cc,sQFr#=,P8JTR׻N)9gχA8%r˙2\ѧr8R;6lX5"D:6z۷lܶ[k6T ɢlCP(ּe;:kڳpbtӧN:tyӚ)",OͻRJ."!F DPrl3e':.N|S3tC̨9X7OfL&%SAgTR$ҥJ*T6MD BI$I#  @  @ @  @@̀! d&nIBBFdHf Ba1C0! HC C"3 ̈@H LfF$1d&"FB#L&`d02"F3 &C HC0Da "C1fBa B1HD`LFCC LDL f add& 2@#bJv &"VVի^vF** gEB"b){SflSˉ3 ȼ,EgwA"+{'}sQ6q]dW"=ezMg 6R BCe7RdɐIþ1_5)JU`#sGQ)08iFvvvNvt-"DxrT3QZQUP,WNk<}i)/,XQbƋ+_1=9L :^6W8Ajuh& I[ޙ^9]UKӧN9\Y6=DV\rʕ)0HCJ_Xt_@kp\ng.PKKjij(<{4:gʨրJ 6,bK!z*#HJR}Gֵϭ]_gF> Jmr׿c"'FCVG7O6Ecel[-XAsؠN1P Kc eym1111pbkyhG SٱoδDVQq>G!´1 )ZV:le k'\e<@{Bnݻvۯnݤؒ a nݹs&Y BaIBq1(}t/^ `3y%?Yƴ " f(,GG2t!!$"*J5(լ@Z" (AB*ML!@y@ $$IJa$$%B:R P!""d(?V t(A,!JJ $I"HDB$T@ Y D(PԡJ@#$%'I$iPAPJeR(P̡@,`LH0` &R'Xd('BVt  $H(H @7AhvP(o->~jЍ4lw4fZ3o)hY*>QPm LZl -hѢjP;@-h.x.ƌv.ৼpdl!AL, PZ͛6,fcWb.nVcj(]_k! CK@ ;`&W%RPʕO $$$$8xHB Z'd1OB'C<!B1C@DNY='BtN!O!O "uЄ!:C:Bt! DCBb']BBNNP']N'] G]:b'f!t!t!NB0!B(B(B(@!N!"u1BuЄ!;$!O! DBB'B|3N% sr W?Qߥ_QdX(f͛6lٳfŜMY`Q:1 wnGGGGz\qN:tӧN^߈Iz )", H  X>k.:͹kN0^Mܘ&_ER!HRJ-Oig=Ft˪ <^kga6b5רHR,nR. D g '좥.; I+xn*%'ߜ(aWLL{- u!!Z]Ο_3r-RHy2du&Lٙ[C__b"!PC5PB-u;I+)$4Ե3kn F>SgE"IB__؃DA jŪիRdSU&Xk{1a e $Rf^_,#Ré ~#RI$kr_'F fll|ٳfMnFZ!Oџ~ ?~&_&HII$ $ `JWsQFT];p<_¨TOʘf RJTNeJpM9D j+Vvwr@P(aUF%_&r9j_Q-]:q 3>\T( ( >|s˟>|$zL#W;uzokmVV{X̽[TS!uVSDmx'Uh=wsϤt(u 2+_gsع8ޏF@Jy$MiğBWn7^z5(WsVYYiBJ6{=3  /c3|9KKL_ 7$.躥.evjv۹M̮W|O2~I7DQ/w\D@FjիիUZMvzH*5)fB@RE" b ūxAP9NOރozEc;ShO|'~l>|h2H"%!رbM5I9p& ySO=FE!DX)XL, J "Pe@$S8RSyC,t-Y I*|3ÇWCh D]nA~GGX?gNzֵRtDG߹(o/}YVz _:{u&ܢjs]'%.hpOp~˘ěꢠ x47yn|,r-h]֛7;O^{*QX^79eKtYc@(J\F ~$?;}x/?O]E;MEX2P]5&[ YtktD I|kIB BC))s Чgzߍt˦Ҹ3RB4]&4hѣF6`H(:eby&I'hTRL<6xXYpL₍(hZڒ 0R|0Cﻬ'DIѵL~r)zK_}3G/[;ggr}yt]VN?/ó?(}^kk}< Bk,hXϿбbŋ4,XbŋRűbŋ/ˋd%&lٳf͛nV\Znݫv{K0-ڷnHVnݻvڷf-Znxݻv۾BV۵nZjͫVh+-Xбb%< ,Xбc M,Xbŋ0Bō /ЧcBŋ,` F[4,XbD(bō ,z [ڳjի6Ыjի6ZKmZfKVYjլ*4j՛VY mXj՛W[իVZ ZjVj/Pf͛6lٲhٱf͛!R͛6lٽ6lYfŖUkf͋6lYB6lٳf ZjիV*bիVm_ZjիVl؀*Yb͛6ofś6t,B,ٳf͞%ZٵjիVµZk ZjZd%ZjomZjիVljm7jիW*nݻvBKv۷nݼ)nݫvڶ3nݼ*_۷n՛6` IVڵj͛MBkVڳj/Zf͛w=OuĘI'xq;>s ;g)V녋y7&J-$[X+Y/1+7IĢωL1ɓ#L.cP22TqÒrsOiP)(a%kTrڭ'tZo UlI%9DXsř2d̹kDQC9=(hP  Ozwݻvos} bVU2 %(b0˜2)_ģj(ڶ A|_z:w;aӄ2t8#~n/z'}Ƽߍ|o}~7˨bdEA*SSRh?PDLmzzn =2#0"  VFo@Hi|GUxܯR~X%BnAGNv(ů2~~~BYלlȳg͝4۶T_^JM-ZR!bP`;!\S)glsg1P٫5SbDC EvG(x{7QGuEBF@}"nHB@4pW w[=&uX(f!** zb9~3w{]w2ɕ<\^8е+Z"=)A$S̳K̩,1A$FF@Y$E3%! !&$LdIJij30̦͆u<]_<XvQFccokj4e1ec)t!Ύ3J+X 3 i"FY!H!֙.=QL3vS]k?wsDm|{q.LJhLt?kIodPLotZjЇ.eĎ('RyՍ@bTho~oh\95Tn?ۖ>F.躣Fm)C`3#[gdΝ:vi#9ҥVKF_0] 6?ی΁wJ%J&TReJ)4C!sڭ!h *J*ht٘eim#B2acѢƌ3eA|ӮÝmM1Lkڴų]ku*RКBA(;;_~Y߱kα|Laׯ_utFIsu;Iwl,mVTUǹ.}_+ɵyv^ϜWEɤG]zz;o/e!a5nG~Yty\{on%K2#b;; Hfqb~ΧD(9yo|O>|KBz)ǐ4P{x(,#Ǘe9w_#wnݱ |~v4|FC,qr2cd {vT3r2ddt|Y99=d_d2Gu Yuz˫<0~0yz+)kYH_=ecnj|ʗMH|ϟee}ޭ^evR#/%G4hEVDt:BH!$HIC(Hɔxe3!!DƍT, R`"])rPq lٳnnxN'ٳnf{÷|?3Qq8N!m6l͛61hٳf6l͛ZlٵlٵAqcccb˕eeed}mvvg,kg>v}mZ--jqvM4n1 4Ǟ}yy5A2PA 簂 1J*LSkJm-1J*[]1Kk:tۢvI$$$I$^ARI$ԒwDA QqqqwB ] hh`jC *mT(PBtQES9_QV NUPC& 88ZǡBZ(UB {T9t(UrRV%ƩO>NW+?埞3iܟuuuuuuuudm2b&|뛝K,..9C|фb& S=z4< 8M,AA:T))N]:l"KQDdQh>|7NFtӬ'Nt擧N:vZI$J6ВI%IhI$`AЂ7X4u   qP &I6A !;v: A !BZ*I$I$ϟ>zO>|wO>|QEQM (QEXQE4(hQEogϞ{:tӷI$`{BI$l AX8qǰf 0 5 0˜8q_|0aq 0 a*9n ߅Tl鯂 adeqzj͙x+|8iy<y-~nn׿C}ϧkz?@q%[P߰:~);wRe%49OřE̔7ok~jwN?;~ϳ_.[0U|o~~J˯/ /%=+/_V<_N^Bi/ޗbV' ~Z'y*ۥ};<{~Yz/ɗ9'|o|7to%- ݯξؿs?;|Q{y~UŽNt|w;p;n_Dn#}zOoUx~GU~}ooSw::?IA{}}K>򾛿}G:>/_^};>_{Ʈ??!%qGy9ڔ~>o< ͹+ȿ/l{?O9U{|r?!WhagYiJrRr_&OCrs|SO999:}yNrbronRyC7u?dwO?񧋾Mydq>fwozuk[SkkWo)^6l|?>,>q{g}/~;y/ӹo_zdv{Wy߉}kv?&om&kKl_a5=즲wb|{߅[^qטi~x<.Ǖx{oy|_h Zp<]-M70M!ȍ+D><LB@sPp_ E/@.P.zNQ_kj/[ E9ytWh 8T=7RbMJijU9zjP=/uJVS?<}Sٞl ^L߻:z#ykG=/=_'?}w{Ӟ' }v~?Ǜ'y@N `x_'>t#.O}wc33m$?>qکNN|>zgN|_s<=wvdWbYQ픃=+-3C1zt-ua[ߋ"yޚv,ntͽoٷ3 ^pC)P"b_^[?'EAuc8o=Ƀ 0`o`Obx}ay0ȑ+B Pzf `͛6oO:lӱ |||yf͚SaÛ$Hq˧2dɞχ?>|(Xh3@RJ*U*ՠM6I`.\xԩRЃ RA*V4Rapç$H"C*$JY"D$(pƍ61lڰ'Nzײ<Ger?Cq.nx7.&#lj?.71tv#o<<߼yqLWϞɍw>/?}ؿ潌'N+xؑs]*;y1?;A;x1]Mw2-_H&V>,:.p13ą0'ϗ:=š>aL,e{^Vx!/06s/ 8"S;hV^򤌘sIfFvN,bō>u*El<|]|\ޕϻQI?D7C?o_%]U3G-{{8̾x*Jq!Cf%X "En}^b>@yc6MqQusR:r+}sCc[G޸ӥ:ZUtwǬwjSt-utUՍvk|j`~[8+®uW#*-tJ[b҇.J2U9?|םom~?󏬞UzOoteٽ}k7򰡽zϐ9rz;};/^yNˬqwz׋U=.ֱ"tNNȈD' !Lp>L&ݲe8HdL &IKȗԦpu$lJIfni%# F`5hsI&i4I$bI"C)8f"LJ!B:ή"e"r1toofLi`dd#$d Ӓ`eeᏎc>9J ɍ*JSJrrJ5ѩ\jRj%|L+Ji>1d2F(FI48biL|CB"D9RiKnqzcJqzGdtFq^ro.Ӽdf]Wuΐt<9yQ_>~zQ>莏着 :uv1Æ;Gx/]bL<<,V;C/n5{[W'/95~,7[&2{ 7dd̓D>vPo:]\qW㸭'yYn\O|{ֵLܣ*+wU3 <"5&T!"ee eƮN=!y6ݼ #%I4eH1q_u.^8<ɘxq 9tHN7P}BH N&b{&Ln'M@Km.trV"tLfԂKPC+(%lN1\.FT񫸥dRZ2erŁ1QYh'GCcCܧ/\r?:}vgtyok>f~'cz'B}.2:'>>?ro/tKԺ)JDAak^iWSDD67`}Kީ `m͹q`"UZNP h#:*TҥHĈa͌@v d^KAeQE?:H8ՈbE X1_?p??QCr?e{ðHH.cPzh5P" Λ3W6nv1HKX&fMtdFTHhtl:v6>wUnkؤRG:(ON:t賤N;*JB1D!A-B!BpP!\B"3!=0F !BB3B'B|B!Bj!!!dD'YDaCBFFB#5DgYBdc:Ȍ!BBuB ;4FϫB!!8B8BN!@'B#B#?dEw[di J P.,TN8erA[,|XTpT/*TNJ*H"0!%{枳Ø TvThyFx& 8QPr)4R\l3Hsݷ)&1<4Pߐ x1c*RRH&Ө2N5ā0BYXEd$REdV@$VEdT$VEdYYEd$&s]'sgҁE_̡͑B=Gփ|OaQBgA HHgq;_ e ,lv;c5;3Ŀa*aF2RX zjZx%8t$)$B-OqUw ]6; vАؐM2 ]ddskSapO ر@<_fMa>Fu-ZJջvI <}eym[[nbxd)q2dUsIۀߤ^ h"Y7<Iu?˱?*&Cbjtg::4ڤs8d|ʞ5{-~CVfs*zI(lex[V]5|.ȟ>lg3ԡ)kۚz&"8݀;QJ[5Ds-R6}E,"q==}o^gyBRJ*T-DHD%"J/O\Tqm5qJ%G$=[8sU!^}uz.7"'KJ% 6*TYJ6N7ь_П:tɒ$ E\b" 2l$ 6Q)W5La,yi* _uHj ]>OWYE갥?(^__s_kL B_]ݺMPr(AS>Q.y 2C9CPRʔV\2"=)[t+ѣDoHO+b\XzmSJ95ń_xFh}#+o\:n  ֹ\x2//-\"˗"\qbT^*ݻvm۳n hM#MM*B/CLQ#ZDU1|N/k߿egjkVZMjk5Ύ (*L&<LJ"Kaul Y5t0#Kv#>O"t+&E@FZzzZzzzyi鵒Sһw)(JB)Be Q `ҫn$ GDLn& r!LXv͒`a}&gOR)TQJ*4Rך", 9R:MorD293y|fum)[^]u+ >h{M]:+sF4LgˏhrXVZjէV 0ak'_ZSzji=Jp79f"/#͏G){]wjMMS\8$L/$ɓ&Ly9 CVClsvC2&E" xf"Ԭ|`Khc(

(p *ժZ՞DA01BI۸:9!B sH[Ȅ PȎLEy.=Z=Y X ʪ r[d K)Bb(sy]\?ߏ;JQ~ݟ}\Zާj^[7 Z:ܗ7o#:^q3h[^I\)mvmm^hjR ;tv )JXY?~ê|.XѢ^c;r"ƿ]hzNz1Fc$d_e͈_<9 .fdQORÁ yc>c =zЅj zqQ~6R9}!H8_;w;HBoY=o` dN+50AOfg?]ɟtµ|й=U+8Uf eCkrOk4Yۿ[wڭW5޷[un[|mv]kv]kv]-a?ehm^9O|fr(P)I?'-iv !R (oekJ B0i }HF$?R=R~_[*X+m9cz/Ѣ $nY-eryfSu\)x:|1݇ }7W 3>SĎgs]˼| SYƿ Tdd\//s+);7 ލ\e?C_ qyQ㽗 s<ϛC%Lb8c(⨚(qTpS p\‡ϣA7~sRsE.SD04~aaaaaaaaaaaaaaaaaaa00 0 0 0xmaaF0ö >hw\sC 0{{~{Ly B Or<~kg9?+R{SlT8]~}.!-z >kTۛ{C2>nS$QWf͛5lٱ!@ɓUEAiN&VkL']3uTdYGo\qUlʌ*B#.Rw5lv_x>;O7|k{@=˟~׵1Zuu[n.__~tPd1MZRoZ\Or3 4~({޲gcl+ AA3^tza $r/{Fp2vͯ,0@\cA_ow .d{9ɺp 3rS5 gtTA7 # H:3x7x!0P5(ʢ x:Z7RXo41ʣ$-ZgN֫[jK2ןn904W9$YHKDJS[úT{Ni +H 5%Α;'3:>vAˈbn)c6;]>~ `Lll\\z^}>[eQ &l 6/Cskkj_w]=*@Dgо4FUd3˗>{J^zjlJ) GJL,pmd-SP»Mz(8udpw?Ƒ1&!rM"|jVuYjհG$H$qoiӧS *T%'&ϖ)L o9 |@Js}2aDAР- &.P}AViB/΃0R?ԫGoGFގ+Z:4XKUzѭT؛ą# k;@ךзw" Oclo} 7٨^:fakӶJEqUUsZjjլrO' (Pkb[/`&v!JfwRb_@x;SpB7;ދv#t 1>~V~~ ,՚֣XRe<+DՂ,cmz>3P> 8$.]I&D!^~So;/F;G8KŤ6ihIGM';pz=H;N!gCiXrgsK˗.Hj˙#f{KM IXXY[&SClΕ&0pŭ`R`<~݌?*7Q> 'g{S YjիVZg̩U`˖L (q '!s!vPle): K G  R" G }/{H^WTr P͡B Z3F "{sT8!Eշ  g)ouf1l+*4eeF.3A 95ߍap2rq'em+4G)1qrYh9C CI?læUXt4f!L9Q0dQb%ʙ2d%EBZ޴\ui 0Ee?h]7BcCU5TjYZWC0s[ZC@ٜa'u:JYe$$<{BxBr(˿pyAs`Ҕ5%)JROuO!q[e[z˗ƈtϕt73˜Y;U|ipV";-l}mժ:D@QوrA8D;? ªlCminxw4C 1#y[5@lhrgr^sP۩jRǕ|0t-_| wb'6"}/oơ:hijb͛9l٧fJacu Cy:rY%3C hŴ?>~W3L;̓ o~Uc-#6l]Vk %!G#)”XSeI.:[`p .}n[i?=3g#C J*TMJeFj/"QvTM0A&'X̓64=T8z򳑴L¦EAn7ucPjիVZkTDo Vr%U?eZ8:LC2\& +f)L暹0 ;g^}-8- p$H;H!BE ΦvD=ID j&*Rå&)z7}^lP3 0f4hFˍ^'p@-iyzeJ*V&|yuZ5%SB93D=gx tAf5zsխ4R9A Z:t4+8BA EecM=CDσ\{7Y?m*u_fD֕*TRJ&ԽWBZ6 BJEsYcj|\89z͏<|c" ovٚn&a:Y,(¸3a$h aS j|/~[.?|qS) wЛqA%ykY nCCBk Oνg6VhPYՉ|{ Tg3g,6+}p=~;|ǻ|NY,=L>4Knݻvۻ@N1L-U-sr˅j«ȲȲddD̠4;t\6kE_ex9i5ӧM:tٓf͝1 ^qӘt$*)͂3PC KE [YW9oLY˫0Íw.Fb,g-|O~C{Z^Wj\tqq1rx"ͥ5:T~J\Rplnu8TBN!KPI /QB4/?A;/SqĠa6rCK%78Xn ~wr°!0aIJ0n),H۔qkqh}ƻix-*ByOx %КJ+.w\^oahtzI% BxkWTT*.lK6lӳf͙,LT5vljp?R@x*} ӥK_J*PH9J^+mH+J+텤?m|9_֙ brKs.^tr!VM{ kᶘ=va>>>66>61CgB?(PpT>JQqW+KC7jO{;2ϯ<0Q~~~~|u3tib3+s7kBc! %*b@Y`X% ,$RKqM~AwQ#рۢ /$+s٭6-)@ԊR cNtӗM(-fH*ibk?>g6z0"(KL+OKod8cN*DPBY^tB(=# y_K&!HdX߳_KijbZ^Wjp{fY#75zdt%8uJ/BB8@Rۅ ?#߷VC~9c-<ŧj*|ϟ9'u;^sj0իV*BȰ,ҟ{gy,O'q .%--i-f\LjC$qQPtIFMS}sFߚ4O4#VK9 ٳf͘٭f¬og܆4;O_kİ3Tj#s s  _WsAq7ր;﷽e; &^!Ƞ  ^رbfȢ;|DPyJP 0#?Pg6CL9'Sb+X;r⺏+8:*tjիfV"ZV &*:G)Zgo0RNz˦$ [ m.Qk_'{me1q)g ӧN94ӥODA0A:ɑ#7~}7mmq} m~(Py(PB A W(P1 80; 0_aa|va$04z 0 _1ؽA 0 1~ vb 1| 1zaw0; 0 vՆac-aafaaنb z(PB ZBb+{z&!B qڱ  L6c 0Lc^ 5b 0>a1b_ 0_);0;`aw0 0 4 cc a>cap=z׷_z񑔈)QAH)\R ['uߧR|x{?My? q|[oH{|]fs޶@VKw 9)H ,0<(>cNL+WQ KU8k^oZ -k5vqO~wm3y<3RY_]PB |RwBm:EK+|8@)ekFY%K<֥d2@0E9.Sn6ӑSފI‰V6lسf˗~" a 5k9>?mhZtҥI&J *ۆg@sʊ #o|~>;}60.yfA /\B^JVNDZn:mӠSM Rlv"a(TD_; pv"N"X/r;cU/ͣX^ ͭ^v BRKn|ʥZIӓwv__yٝ(~GI)zI9DM"pQJY`Ǟjw|ޭfaq磼#qVٶVV#yR T*SЬxx)I]!Y_' <{·'WuߚU ikVZEZC:zs5CNb'BLTlű^J5FD']_|7s9?d&!FtZѣB8ѣӧ7,p01 G+6pvY,\bQD,ByU/oy9?f][URUř |oJPP(f̛6lf•5Q|i}m۱Uɭ[}y^wt|˾}H]J^g"+y!!a=Zc^bTᯯCI&C$ S|45<~gȱb!g?@y*jmL ~f偙Y\)7rl1&}K~mߍLR ˦'U=p"#'BU n `p݉򅬭xa t}T;.=.th Ami625yڹA0Wa }}7?ד_m{ ӭ5@*t5x[3Yn]:R)R)%ZGPp"/v]={>\ 7 A1&P}IjD_W Όkeo0_en002/V4=qsi/|]AC$&WJfdj 9KCw~wx{_eҠ~iϱ;5Bq2Q @ Vni Y"ѷi-[4p0)k7Fu@̔ᢕ!dV^ Ayd  p8 m^?G".pܛzYp.NA$bS&}%!aCBޔ<󾧶yo_멝qSb^256@͞g?ڡ)!^T+&-sXj.=Uٻz@4HD 㻼DjlTJA+#' -Qhʐr.*" !=RXaqt]e flu*st7wZ QOzdRC2|JS"0,($QȀcoo6xD3 {RFy5?"7XvOr&U軝,OG9/O{9@ڿƶgz9 ;/^~Dߝ?/SjTs6 U>c_NJ7xmtmFϾKMpmq+Nqm~g^\{fa[oK6;?IrKjGm7\~oa_cM}l7G^lx9oęsM5/nm~zϹI N]MX_jgi՟zX<^%J]#|?_t^?ﭜ:^8b'_,Jr~L=}1<ϣm޶mn}_iu;t0CMcuٳ_e|x̼0|i._g dOe/7۱v^7&ߕLjچ-"|",JOMP^K_~x7n\qX*-jwݡ625xGgk/{n6A:Hˇ~Ӥ>痮%cs8V|WϬ4ȝFBkШ7ܮ'M13v%+o/zg~vy?m-Xgֹk8ZGU@!5uxh5jqezyJ)^pqNԁzúoҴmh݇<]Vreqo ki] 7qB)BgީJ#)<`#ae ZVL_c&B`\>Hf<_..\ PEW[V\)j juV̐x߻o[% j3iRD71 EELjR#J (̔d%`");Z U.JAnR*HHȌ("ۥ+) $$El+()e(((HDiJ ҔhA[q.1RH",2 H;NutLia !H=!DԚԚ{ CJ5xo/MQHI9M|dgHvg߿|bQuZ)AJXVX-~5v?'}#ҷrf/pm ? x՗*t>zy/<>o2-35kif9]2y۸\miku8?41 :C͚Q4/^]ӱݾϿ)ˊV~iHvï>_ȵ>p0ݏt7]ry?,ove!T=ݹrcP}ψ{#LN[_w[ӝ.nc-ʿև+Ud;FOuo== e[w{A 1oh7ϭ\GCNX=#y͞oSz}r!l-_%&nwYw~^8-?DoTF Ϩii%8M+-^oS$_o-Ng.Ge/!={iݥ3\YKᳬl; ./ì oϾƾ(CXY(PUV"6]2e'ɽc½ɺ^g]סy+4X12 tw=JT 'T$ēv6[c%d.쒤|U T'MluQ۟&#v\"A>6N1D7Y(l4JW95 dH&4͈6lblfli9Sd|kŽeݵ}w̩;u@3Q[,@I;[?b^ԁJUD*G(n }?Wv^FP, R *H J K@( nRQRȋ">AuyC8ˆHSO"RV`P%"/{~̛tCu ; *llS%22BB 6ş+LkC:6?J=uw~}/~˸Ww3|Z]`d&ocɯiknmmV;qqZ^7[c#K"6\Ï!֑So1Ӌ_/I\(lBoYA7]Y2cVaq={^lEMN%33nrǎ>}߯o8Y,.XnY|$^_1Ž&oOi>c-d9pn˶GgYQh@,3OޕzW yٛd0u'SErLj)JdUdV!!F+kK#dJdho?3Ӛ}eiҏMlaA"3w򫤯vvf?4/9Q$gf۱?a|1Oݿc=3X\z: NM-]IZ4@4M1ޑ&Usζ`76h(~>OT6}MU`ȝqt@+ GN_wG2 =zIIS:q:hO@/18ڽ:` 9Ki{k N5+&יiKL:0wt^Cf܁H[6srV+JKfuɔ+ lD21"揄'Ԯ%ṛLlW]e3pjx={xʮL3xǞvucVS~x£!1ɓ&L2a=m4l5V+MUֲ%O*<12azs++U{A# G$[ >]lth|ٽjA˜U pZm[. +AJK?oM'T x"JbC:JgJ{k햴2e2e(Fa 9<3{Q B8UYJϏr>swM$$9ۊ;7~R-Eo'~of/3Hb\kwq =$h4^=NZׂ%W4P fjd̏)4u0ށlTЀB a4[+?8ɲΤeZdbst?#{w=O$u9`AMz>[-lv7nKv5n "-I73sn+VڵkR3,GLڸ”0,2|rrn<:ΓKTk6ø!pB>J0}0> GN~<9\@Kd kŅ͖wP5m'lV@; Bm/ҁE+flMudv8[MbГ,tdŤRVmWwۡTDPȣT2Dnq uUUToQm}<^' ώ㴾דYoʓQFρPpܢ}@9;M&$&fgfS .uVg\h$RQ Q4E̹sF˗3\ ĂFbH#9364R)'>#< puONnJBE)K+;z7Dӗsg]D\=e|ٞt=z7dyzvd jTK X4KĸO;,_5zFCX-hGGy2vGTö|+g,Awċ ?o̥}q#u>ߴݏCe,[?Δ׈:m/S[ӣ},?u fdZ-~Id[fQ>9*8Q6jp8a~,(vteUzCPʫ*qgUW6uWԬ'Z؎=vП؈!>W:mgnYT/fLɑ*5ኲGV:ͭxxRV{:/ev=ñ}7c9)'q΅|W)#p}(0+X9z1lՏ^!$r#ڋc#O>z= l6.U]bk9P7 koz49 ~;avWX; }|SKQ0{#)c6l6?>v+:c/q˓GfGo^OOʯG}'"zz@5/)C:Y$>dV]nJD㣨_SMG,u?ee^Smlf|S3XK5:Zug[btnng }}'[1nv~!߁ fb$ ԩV[ִ)l-۽NR[)jZڶMlQFt:&\uNͶ[7nΧWYYUWe,lؗhHq p)_؏3$%(z]vȑֹo|]5.ݵ_Rr1', Cӡ@e53k[U`ϼ rl9IOlN=p-l6bUeLؚ}%)T$)"$AE${B`[ó/Χ8;D$OnԃZ+oUn- 2)B}zڢ}d`y{ξ>{7 Mn憴Whi`^)cd!&=PScMIIѣAcFA3A `0hcLUPJ$h2`L4Dd10b2d 4&ɠ2i#L@M h4 h2D##@!zi@54fhSOIiMdL'{DbLi&O&LSSS`2) j~T"iOԃIiOSM4z{?SQC@4lOM4@)A7oR#Mhѣ=f4ѣLCj2Q ?TH4OdѤ06S<=LyFJmGDgfxbSLLFSO$FFh5O hbfm'M4GzؓPD!4M1'iC m`iC&4OIza)OTو=mM2TJoBy T'ȏ' ^]`|Xj}o|r2TCW]SVk}uҸ&كsu_+{Ƃŵ}"}m\6/WWN2qccMtg]+{ k;`֑Uң7'L1Vq0\b[ZgJU#:J+Pn&\bNs3\V1gS@4+d1C V4^Z5[R[9^L[-BZhm5[R6F fմ_-!X dسZ+eYlc Iiu4=EW˾Z̋Fi]ou6koI֔zkKdm#Iv_]cV0 =/4U,[LbijFjfzE*նakksS)fo4|((}^ b"XS:ŠQP5wqXdMuΑk{خ#wzkX "H ,$UEAq@p{gudTtuUTZIatUL1[p,jH*IgTuulfҮ~XX b".d ʦm x.tP#Q44"h@@CFiǂ@q@t:pPP9D= վn|2Gz+] Kp J1D }E;:㨹.IøR/^>Y<ż1?29L9s&s $DFK Z;ww;D(QB% B(%)E(Q !D(QF+R*0U EpD GWTTA0T0TLCP0D0UpUpPTDTT0T0Q0D z QM@D8̑EITu]]k.:ꎺ庯qIsG~%mj#m`m6ͶYc3,-33Lfe-,443[qslͶۜrB@9$_9WWB HF" 3`mXMޯ3mhڔ_1cƺ뮹RzkZ5Ι8˭j]o[hjڶ̮cLsr/Iji}MsmW\u֔ڇիFl8/@=szvuv>^^'Ht[D-3S sdr3ƯF@$H@BU N\$.9rJ333I$wvvwvvvwwwwwvwvwʪB#"$%o^mok43L {EL24]:뮺c#93Zֵi\9s9sg9s9o{Vqc]t,3k[)JHL끍4g]s4Κ%RklLG "';==ښ%;iebŏk{L!ϠX>*s@Qo8J{sSE;}{:O(<"T݂A_8WaW@ ["@ DAV0D>ULŭW9{j?-[z7T W&û5ޥ\{ROZF>(*t02APw@G$];""_Q *fN-^ߺywwwr @TQC XEApUUU@@uomml+hv@)r蠀V  tI @AUUUBP@krqf1|iv1JR5 ߂ 9I$@*I$2DШP|VCf{FMw2ŗegAtJR ]wƺ>{gݿv۷g9l[cA46;\nݻ kcv݌nݼ"@FsvqMu]6o@tmݻ;mm>s>SG]K]ckm=^5ݻvc;nk[hMms@7L31muƸ1ݻv"" Mmg~mc8;n!߶ovݻ|om۷nwmh4߶ڷumq릘ݛVSM-1;﮹݌)K`* DHE:yV"!+; BβCu]s9sW"v*Y۸!eZ[Bȶ@lk*Q)`l`Bay?(L#Za?Uz^1ꞔoMIa}QG+]6{Ŕv'U͝mMi;cMis19v6FZ_kڇclN5ڛi]1ֵ+Ͷ޺^m4hY%dH`6>3k \clq  uU1HFCadh6W@ޏ"1ⴥݮ*ˍ5c{_mκC)o\kjҵіum6al6ll>ٌfs[kٶsIMY6m7ƙ3cE69tOuok|S5݌nۦDDŭZM6sMkcJڔ;mik׾v3|b݌k7m۳mum밽mpVnM5\^nmݺۯ}վ۷cv$ @뮹mk(~*@@L[p۸x87pv]3ۚ" DTJ Qm|\۱vZ洦sq3i:_mtvX4/ 9mic:Ηslۦtoimڀ"}c~mq5]m4mwkvJnv1gvq|@?^˷v_WOeoZ~[c; m]4˶/⸑zN /ߎ&5vds {3z<4κҙWFо\δmo^5ۢ99y^<??~@Yq+:׏sjF^>Fk<߹ }DoM6~ -x=z7'HqЦ9cZoԊںJy9rc}c´mKx[[Ʒ %8"ķ$XbD5XG4XĶ$H"Gq5X-čmo$H"Dmos,k\E,Xbċ,HbDooso%Xmʼn,H."Ƌqq$X-[D%HvE=[G4xǸ,xcGh*qJ AAADdd F@PYJ:;DPIT`(4*b(+ ch4Q鐝0L+fV PwmSӴAvgO&,0h`A\C,X$ ,AhbD]u A3CFvr !!\8!o,D P}T82HUTa80tx+ˣwĤH*\8R aH2EI%Hp儹 .pP;kDWp@D H2A!"dP RCU܅R : ;pP8.@ 0ATpK$`@p|ABL8w܆WF  h @i!3rL = ߡhE`%!";$v 39 01 Ts@A @01R. L/:v$3Cw9 hSwr E@.]$0RL$!,;ØHB\͢ 3P8wg$q fXFvr"@1@"!.]ewf)8xg*@Ys݆ K!.tHUrX;(XI!nyJ8B8" !)h"E0"@] @. @!a hxwB!8dUg Pֈ.A&!i33, g D!H&Db$8D@"" @B"0"f B@0 L& g $e"F Ȑ!& ," u 2H!pJ @ҴPQ@r38 0a V"(VD2" @U% A+"j0!"  , b½]bf&BJH$ZD .e! `!H/ ;,"b  5HC @%]e$@ fhHw"8K  4WxH0]) + <<i$Q&(UHq @洠H pL8f%#BC$4,k"HpV"4&"q) gPZ$<@tH"*$$- F  :<bCE zAÈHAgrDH2A &$ " A A&b$AB ;@L*DD@pC8]1! ewg2 @e !"w7 0% 2 -""b @WhHH I24"Vq]/. @Q(R(*r/Wi㩮}ٯ'|<_A $@Ss/!Goʞ}{\"Bۋw*j-EܠP @@Etfc(!EF/`"'O@\K˺g:}ҩɦ["`xfU϶ d E]G͆EGFkt= (A@dA$F@PI$Q 2*DA)T""1D` D"*TTAA H&"*؂ @:zEm A ڐAkZZP[QH^='`bhAVh BA܀  HAE* ,xhȪPDb*OJ"[kRֲ UaֲTP%ԨdH7`jONXTĮNn=9wN`FAh4Dh-(FWpԂ5o}&."/V@I=oݮ|lmpPPa=J, ~u%,DTW*WR*{wk,}fx;= PM54{P ]hCDLJ=qGp8$hD҅JQ(PQ(Q PQ۶[l[[J; 3r2211`jiLR)TEFS)#) j05k @nnᶖ7|7|_% EhZJQ((Z!@((Zl-h[ZJ (DQ(4(JRBBBD[-elTdg9S e2# e2g j^&NFFA#-# "1AE%oDP7@V@Ɓ~8ƂPF AJhh QJ EDh.}!Kn%TEYV0  !RTh".{ݻtFG ,۪~n@70 D DRPL+g%OC~d/\i>Cbhuu4C]mg,KޯyT` RSRY %ք,޲U\6%ђUY*Рg+y^^5}<˕_nu^^O} x#)y}eeFԁII#<_r֦v[/:[*uμq>eU*= "Q,.˻}9->^:Kםd[_ͣmyx];\QХRDT@U66$!!NC(.KˈKB$[ҪoMҕ.Xe(I!V{]`;H7϶ ,-)B>NOUK%$.avEYMuH=<_[,6>QUbH?[}fH/ՆvS7ZB<*'@%{lICw+מrMr-]|LDZ]t|7oN_yoE^WFvwk>'uҨ2lDc(_%bVRϻ6[@yV"\-ϐ^]FVyݫwJKU/ H0q(Ir\( w5'"B6K_[U W 2YOiujHbРI۫] xuvU@TSbC*PٵHgyI5_6nz輯/5m<'\Y,)-*MJz,ܖKPѱ>A#fJ>`}sw;湬SKֈC`P w,X9ߞ2)UX  }rsrwIRH0 xQB` muܙM +PA* `~.7>8i `fX 7qXAn;AfhY94yA|e,lHUPF(.\Pۈ]ZQh4ѡDhBPZ (4Z#@ _z+0q tqS, rrr((-VZ-  Eh(#Eh4;9Ǻa0 a/0=Subgnw<Ƅ S+Q4(QhH4c( @R*T\22.]T2VVE#Ah)@Z A ;ݎ* KgtY՝u=[\UE]Y֊ȩ #cBP6$$"m@v˧*99Y‚TSU @EhQ\H@@ "C.A0!Ex L}xG_eh<|5P%, }.w /B#s_v0 XbC ;_b|[N:GxW.r5]eLQC&UP A!l}H #ePT docjEAc (5 |*el%V+t&`Uu+~ٹ]3O7w00Ǩ]VlA# n4I @Kg*H 0 B @D7]@ *#UJ"@QI8xAS:γC:HFi+̀"UP 3`U֫ͺkEPU`pbӹLB^jUxPn(ǛkWpQq]G\]GuQEtE]uGQqwwqquqwwEqIquT]uEq,(ȞPnq[3^]߯tyobq7+Wҟ<7WeEFA%ZMi?Vu5-o`0qbb,nGvжٞ׺wom/izԱPcѷìV7oWK{ly^~WkeV DX@DZ@K(УgPhtGQ9K-G9 \-6\ 8 Uf5*P j6}'Em[-ƪ:Px3:{/(=6Z[٧<>H^a t0>4[Sшʑy$f)N<`tgMQw_ ʅPDWn Tr A[<-m^y/Ym F۠ƛi.}|+nFBaQ9|B߱QUxtp^ׯ<~߀||vyگ^$ f<~SK"pP2Dȓ+/%;;lƻq""WԽjh3or]c|"M~l vGUt1="^Q?򗈈 D o+ӄ˱ .fkHa{p>k WI]z?5omz&bYN\|;MqfQ<6y: u?"k'Mc@m2ɶ-CN~c8.C:Q҅oiɾ>?g_G{ 7݉˿{;0t}xKKs}HٜF)? G{qX_Zn/_Rw>w@|y*-#_[uŏhu#y>k3˵Nq;UD*_2_kpn?f|@y~u&ÿ4&cR/hpӦ1V kW@DG4F ȕvmP}W>̻ǭsLփˏuO)w~K|:MׄOO'8 ]S<@>͞b1h_x-.rsQ3o||U]_CHdHR.m] KKKJKKfWh}wC&V[}uq6c- Ub{~r{ A2@9pH +4,jZkw5YmcŚ[557zRcA+ɰaNV蜶7y_7y3j yǞ>7Gre^+/1!Tcz.b#G5+PTI HF B HJNʙLN-_O9Cgv^>|oc{6Y][k-7P-!ڜ^c缺7ۤ" Ȃ" ߯=N0̐Z/dc2bȘYǙl1hLxddgO^NU7t~}HĈxiZZ7U< yOGǜe2.r<K??V׳ܠ( YAQU~'Y ["3,DVg;M+Zl Z!PYP&Y{v]i$I*!i湭=m6MC]|R2$aPʞrZ҂Du]<4rʌV 3@>GsC'I=rV92=]u\Q8s8[Mn~Oj l H7U|ljj2$#[*dj_xZ Gü-h-ڣ Ejj u'` -0u1=R$Cş>^gvJ;W+QuWŕew x;^=}_*U* #!t-Fk t@Z2 D m?T*+h]*)=,my hc ?Ɖ*QU"YBh AZ"A xH4߷88/9u(_| W־5/?^k{q_z_oM{N)R~x4c*R}}zp/oN#l!͚V a3ctFh n S־ 2hY\Ĕ_}uFPTtNs/;aPg{ +3m,_uXG,t- +Pufw[tnW!һ2s+6@(s!b`аC8mfvy<}=lYs6Iy%/Db*z2*Ϧl/Ogx#oVb~J4`|yyK)ߝ41Rw+]i]Zɴ?c/ds|姚~NW*dUU" "Q_on=Go['/̯RY,M0`ɤg{4?F%lq ͐ZKK5AjHsyv}tʓi1>8|lv}6 7 %cMyuz5}s7O[U`daXK]3_g]6LDлAR\N**gYu{/YՠÇ40AHMe=|ޗDZ5^8*D9/˖`Q4w}ڪI11Ĵ BA8 XY*hJB `@A(@ѫ*so0c;j15y^ÿlt[n'_+GO;498gǙy5An2/?ߟ[O444tM)tilL }/1BO:.u~д}g*ӺfZ܎ }30ɟ6c}Ny$\*N +gi+Uھ;{z"7 pRDDDἷ}QThx.: Ͱ`=7||$VTkXcҁ[9g>ϳ, ёHdJM}>_,%S k'^lv:bt0xdQֲh%M$uDu@5L LxQ bxZglBɄV(=ops;sZjG,&?i:Z/8Elt^_tfbfj E'*W޽w}pa2/U/½Bd#mO̾<OK?Nk}/OU,= uoyl7c#8d<Ԑ1jO BR˘S6:jjz1ӿ=g_]1QC}|fn'~]ϐ8?.棥+OOdd-+ -9 ,z.=o&T1-C/v[m!ĉmB<ܟ?JkVb[q|MLng{z/Ymӎu;p G[Ay^Wв9^WFONH-{Oq.۞Ww~Eѝ8-U,h64:KŠY@¦DDxTgk]t]n}ۤy]'=r"H]]sFp!osø+R,HyY{'OH>->>ah&Ԁ$@IbsUU$Ep A9kkn]jHf9Cou{M?pco7 0`c-nD-VGI7a6Kqs2@v&A\P3ôhf*lPz DK 5x<=,Xqag@@5F:,~trᦫv'U3Nsw}kζ6dLmkmk~dZ@J 6ƞO6}d5 [g[k|dqb`Kp &ɪ|CCک1S鯊{'OoܳM>jjفL/OtTuYll]Xp_ #DP0"rY>ahvkq4Xpr/dÙ.+>zHHGqw'''GEQIINIG9'"rDIrS\IHtPWqqI$qE%$'$$EGGwEH8㠈".3:.(∢L"u::.ࣻ.r -$u"\\wQwwgUuVV\EuIܝqU!GtQER]%ItTm(":"+# 3Ҩ*ϹCǗ.7? =L9K+H0atC;$6P ,k)\tl!Q7ZN(FbZ0!jD'#01DH(4^p5oօw)}^[rDD]ϖtC paa n,]q shPuݾQN >"z 4GTM^iUvLQd_q,>OO:aK \s@-f\1œM8gA^zƙHuDMQb6JRmK /2H ,Z9_hiidWqWt (?78,AZ 4@@*;)Ͱq/E%j ¶qƇ y*rJՑK;QӞ?=M?0^...].(Kh -oqYnt:_Su9.w;q[A] ΜYEspnq_bn;A=Ɔdd &zy$ WMN3a=s5\oG_I-Ǝ @ CZb0tF?ٓٹ&8Z dͅ  5zyA(:h!; $$ 4%AZ ] Xp7Ǽxn}g~=xpd*[{K,2AT~*s}#p?;Յ{p`N&9(P'iiK?~KG=gk˓k%?>{2Ϡmk^s0+)w~~).uaSO {wSimfCĬ}6},z/ ~\s\bóia1ESϻyV?Lf ;ڳX2U ݛ ` V_C\!NfYj?$-Dž5.=g塃H0pAdUOa}vį|u=Ogv}Sׯiw^={T>{U=yzy컷$vvssȹ;xu|oa}{66'\^x,pv}$eCDDD'紣s}].^` #vubZ[-IlHeU"R*W]_r# 8$H9#NpC 8$JBKNN#!":$@訸N@˩!; R!pIs$8SG9D" Dtt$G!qADtP%@IDQN#Q\U(L8Ldcddc[3s@D!ԏ55+v[l6^(\I4ܜ"t3OUe8Y{}zJeɉB>yB%PᘼN`ul~F뉹$HJ:eID|'ǘ0/BQlM6mYkU_l;iW݃֕_}ؾiNhjAPgA{Vc(2R 2A"_4dWL%l__@ Eel"/n1wa kVη[(D&#oK |ンxOw:2\&T{t=%OOHEA 6=}O,nw(%gKI]n{عQj~ܞ֟餣}`:Hq GZYYw?Tt~24hmgΖ3y$\-?S{= SW*PƿT@@1EQ +QQ)Bqq}<߁Jxx AZJ@yh5EF *f[ߋ]>p wrtv{y@n^Qe AG$/ U'8_]|ewg 0JwF&GyVLOZinw[&EQV#7m$& ٭IH"^xp]~WD-F_ q/劒yQUQ]JۓmTSc~bS2$8I1Nx㎷x .#lqvX߬ A d2 j i h#x#l K<.r[C=JrAxfIcIBR'9+>hwH4_nnqé  op֥AS7ԟO`1 ta8}nѢGܿz_g t@ 8K:-Jǣ6 c~׷/wiA&K俿 aY u=+Kwi"h_io}|̴L9/~<[@~< >}Tݐ'#} hۇg?WPBUBcƞ¿`{FƟoyC5;U }[| &&&%"חQ*  lLe'D8p' W"[ES7RP[ aT\'!佺x >X}}Ery,2lXuc^ww)yvVN6 Spc1`a0x ^iwUm>duyy;p~'s( =z*>RnN^]o~gx:W!~G=LS#K1ҽFT;o"|\aO=9?&~1wU..뻍vUwu kNJ>TB1 yY"}hvӵו9v]\tW,Cϧ];NݝwpBz_YcZ~M hhcF='mlmjUmTlmjj6Cjj6mpڶj66ƛTlm66`ڊm6c#vMګmڍMjڣclmFڍQ[mmEvhv۶jݴڣclUmTllcj66lmQmFڍڊm6jjmUmQ M661cj66lm66mEmQViQ[mmUmFڎlvvj66lm؍Q[lhmUmFm6jڍ(mTQ6jUmQƛQՍ ڂTZjn6mlm660nUeUJVURVUTUbU**XUQ]j H,V *H#$ATAeUJQR*ڭZ%R*Tʪ[VJ*TʪU*TZZ*mlmV*-FUU*)VWUm j66lmTlmڊm6E 4AR -AX+`H$6clmQ6clmFVhm4`P45ͩvo4X:S|ɝ"T춒]q鐫!6Pj:N%W)|%&1궛oÃgS]= iF'8o_{Ses*ڙy{Va A*#B.w:LΓ)ȸI搐p#DKAtmlv;elOJ(Ggmmc;ZK]xGeJhpƆgډϾ'OXOtg$YZ: APh4D&A j<<>{1bkd|pG/97Yuo9& z2)TLT&swO}3wF[Z=s?@d&QKIdę5 Db?Q7[o8n7=#:ZUÜ tw)e]Ws+1keUq6.Ʈ_7rI0IO?B|7vQRKK ap 6榿CʴnH<7?{y D;n2 6 F5v]ͮj?Fb_%L< LA@ ihD3bY}fgNX1U8[1haDTIKlU+2s~~${&A}ޯ w p.[ Źp/Ex(vFAI:+;;;.Q d $U$ $IFزf69W3weR ߆RDCdXld8Av%Cblv;67! iyB "{)z?gֶ=vkkkZ-}z C4b10`TDKlD1B ШLe\2P5ԖEVac8ū#Y.V4+'] lkO>Ov=rz߆;tNA''AâTj5Dj5]uхʶ6 Yv6N NIX爚Pu\^s;sCX5tiΑ 1SpKc;ITQTU';WjVy i]'![Ղz.hHp涉׿ۭ cG=Z?E)a^9'O>w<WzYп/c8]Cvi(a]~$B˪ ץ!;w?nF$`(AH)H/Gh\9-KiÃ>G݅L__x1P **Y2g_Wkg[ſ5ua`ե/=hc2Y8pӌ)@.< Oy@WD*<Ң ji_hA5bBhqX3f7uX%^I,.J ir\%p/f!eyy2z49|Eţ%t9=u%aPPm;fC~gG<^?Vf:-dx!+@箪)o"a-VߊW"bŋATNhR dAȒC/&$q{_U5jP./vڽo Qׯ@0}'? OL|\e՚p.AL O kLhM_7r*:֨iBΊI ))&*:9')e^L3Lh夏DI *XQW/ / iV1FQmD1Qxe;MwiU>#ǘ~dhf29dP@&ܐmU`Ũ"dck8Nӹ~uzSNUAwӥp4?'<-Gx%()BEV9!_wbط"N* rM>U*a*QPcڪ$# bR5k`bxt87%$n:4KXC?J>?Z, X@ "XM]݃Ӗj d,`;>)lPDgX?wyJ^}hjƓp6.7$Z7x׭$ T"e&]%"f,o}j3*CAIn7;rDFd.~꬚2QEQ_ODL Ka> LK_pW 7.W짌y@uoRlD .(A IYbvK^ }8Eu[N3 ? ǧ chۼm\,fmLtX(/ {?1y֖ziiPE`e#Xf9E)58.IlfTiN [

2io ۾u'3]>w|/~5RMu"fT6c@{jAFa%6}ooPDIi4:u"# fDX ^>ѭM9bw@fM\c a? ~RD$Vii˖8r:pdi/ÒY>ϸ.V@ q"J@13@N oۼ&%9oS7"N ߔ~LKJnMR7;snw;GȖ>""PIPZ%n_?|wC@0cAOwͻƋƦǾqrܛ.|оD1KtaJV.xxfC&/:vG҂ [ŭV5k5Y2f *j ~ 4DLXj\mYhZ!n"S_YI?7̭(rY8UHpY*\7-$u#F]I#GGaHpEI nv|3 Nw0IOUNc{6Og=ealM.`IM&ZU "C}@g됒PHHA9_~=OG_mP}s-Q /{Khim a%ɉnoajuY{kqF90˜N@ g,d2NUrEql./+!BMӦ*lrO930tJLgX2|nAw 'y HA 4=x__~dW+=j׵^z12-Qޓ4}OOOON^sy6Ji/X׍k3W'ctXko^xT@6x!7! ˜tq8cp / E5,-(zDDA_Bf'bh6W;wMvˣkÜ[=]ݜ͞gXbID@sSe76flvEUlD/B 0TUrZK/A;aXɒ(}1*-@zFREjϙ'''ཻݗqqwAAo{#;qd/(GȈb(4W+y3tl\:7kS}ܓ4ײ_Rzyf}`TK&}j6xD_-0]8~߉ !'G7mwRc_K/ .+ؗuekS9=O2a rU,Qo AQj666顟-paL |j ޖf e@s{(ׅ2י's}^$O3%wZ>/vǻWkNwy疁[C{2 研xR]BO檪dqwvw{F۫;:ΠO?fooKW/f~[ZFHX7 Cۃ -I{c2RO$| nBsxЇNF{Y T5zܿͿp55Ń9|!yϾ{ze]9/rl;ۆE7Eii(dd%tu[.v Хn%]Cz;HM?Z߫MK˥S&LO6rs̈1dѣ^;JcR?!]hv,WnxjFX|c~04e1M7Aah>1hH4 Ap0AI+Q-UQX Ԗh*/ԥhD7{ 'qK=&_G8ߢs _oDQ B@KH^ |~G{^Ƴk u׈'UTU/u~W3s e>3yege`! dD1]pOC /z2I]OMkw?/Vr:[o@!o_JB}Dx?Bf x/O ]߄7KXD=$6mK ;{ۛ}o\E%"r0JlS -'6pwʋ" tTQ:^7k:γc{ [ŷc+T;|#/F|v0:aߕv~Y=$j!l\:ZÐ̕u{wD- }X ;`/Ik˓ɐA33f9 ˂ &9z-]][:-]Y R$X -hߏ@5>ie*-(*+. URQ hՌ. PW:!{ @0w}u`vPNw(85( #@:+Ñ(PB (PzSQ")m}6KgVZ'IEPSuZM& 6kKj2 5( JJ 2(&$P9qlI.mދw 7وSQXI6u?b9\;r|=.{=?Ox^1qpzJ{`=`?=ףn~$ 鞘0r_j_61Gr.!B*+?Lըq8u TXx@_ppіBOٍ+YRXX^Ԥ*:G6+\e˱\b[ kqm{h, 1!BVyK@1Ohc\? A + фO(Osgz'Y$˜?#_BO|3gΜ[K ꤭0kŹ,7B݅*?T" j?kai> <޹M@"tX}80HA0Gg!ϖqTO"d f8Ƶk7}^Nvvv{zuMw+u=prHg}zz"ҫt?IrM>a[&9+.^665NVP1qqqqi@__#[LrDkl+Wd 2/ @`cHJȄL Ci0^eYeh HZ[*:! x "ɢsiwo'Z~4J8tAAo[wǨ`NBBuk]l &`*.N3U?P#.3&/Jz $# 222Z@HD8ԧ6%"&!u7rי""C'?{?rh3{ޟ4_H s=|9  !JPR;vƫD;|.v0qtNysn7cYEѧ_zLf#J*T}R*"$@) ֲϭZ0z+חPQAQAյkbK J\Vco\LPFึqq =K~gS:#ˢ6ΌB" Nz|j4Wtr Lmkkq`>C9ZJ(ȼՊƧSu:|LS'9[RJ. [ jPQV3YC}{uB*# 8~iTB#'wZ4rGq˔rǹ1Z*իsmB TV>h7h[65IZ"ow N}afc#-AXA` h]8C3惻r`0a<"=cɏ.KC'iAmعq| b:nOWʖr _}c,9@AAӪj:M֦WVC؈3gM^3D*[ i( H@|{s=NRm"H:4UJJ To*:*ah@2\4dۢhrr<ΣOF֎ZXMeF1at kT!vC͞y@Wߋ٘ꯓ)1( Lf|Av8g(c^ u( p\.#p\,hEhI@!!M:*ժU* * _8. bI$DNC}ZְĀPUzp<{x$ H@P$:?r\qmx;}aP_BƆQSC L@!s:o tpSG$P RG *_@WED@LUD0C%WAmRI(){$jiUsqdAʱWbe`!%P- $M:@Z|P*@+ɕ 3F*QZ?P~(p0P" !vupPZvH2 v N$ .grss;VZECm@0Tm|qWjDi@T=~L z*Tzi*(&EQ"V\ߓGj&7OX\5P\s ̬̼!X>Tɓ5f(*`~թ" ҟR[0>ϲf akt}hyn-dyYRSh?W'g池[3ŵ[o귡@2Mc]J5t+kbR%Yacjg߸ m!.BVtYFƊI^) >#ͅ(b>|QE,QP_QE-ϟ>|(|ϟ>Ȋ(>|ȟ>|>D5O>|QEF|^?˿VXfbjaR_R?N/k0u m%w,7ȫkkEQEQk**)ԴrCڟ.:5,XbD,HPQQBEEEEEEj:8ttttttTT/hh_п~ z%uuJꚕ5+jgTԷΩ__TԷoSRަUKzU-jSUTԷnڮcQZ(VYYYX@4htѣ=";SFԉ5D5*Dl*SMJ"D8J"D$H"F[%J*TBҥ-*T-qmmmmml]v_[[9JD8J*TRI*TJ*VRHD$lR.cy-+W2$_ _Mߵ^]\вEuV)ܠ2}NOE虡3ɝhz>^|}0^[vY_0КnBq|<-f/K?%KîKiX%()j4um4f6m4^@PYj.ȱZ,Xb*ljؑĈAC 806lf͚ ]6Z'rN܂(- /#rܴa$NIhѣM͙hѠh8ٖ8494hsC I(%I$@& $@I$j͛6m`7nݹqp.x\sr;vݻC|~~o߂A  U UU \ϩ dV…[WBa;$!BgBZs- >j8) $}z 7uy/bwwWWHAuuss\\\77 ...."(bŋ%K0`vv0 h8F0 0 ae,X?8_<(ZX0 0 @~R[/U{[ ө<.\r͓6zQqI@+j6i.5kQtMQ5dMi7cbCL6᎐s[vwLٌ6lpY2;;\V8N2cӦLyXXXX1~wwvNɷXw& _;0;~,.fF4qNݻw|-Al cn[0!iglo^TR_J~ EQE(+HS ǟSnM:uˏÇKvpÇ9mڵjկ rI$vHѣAG8?g3g]d{:6].$nuH=U 6}ÎkK 4hԤ"11TJvڵXJդj3AmO4>>ƃ5Df,Xb6&L22d&Qf68hV1!HDA 44ՎsMSFH Y4DmQAzZ-f͛6lزj8:ƩÆpFrP.\l8qÇT˝K:.NtS:ԁۭN̛.\˙inݾvۿnݻvpXݻvnݹmv6ml6l6vݻv͚ZjիRI'JI$H $1JA#CFFGf>`\ڞ `?EEKi1~vdu@A Pg qZq tXgX>*x[:OƫƽÃD "{~ijDOg?q8QETWϠKq1!cB6/$ .Ywi{~>hjBtA|k @٫~|}MשcIwoc׏,OjD GT\ Ǚ^Hd;A:=G,LAIN*]*m[k=komx"_kkko:shm@M]E JIB&t @ 8%FC )܂ <ŏ##MI$%OK@w h7q"&L2dɑLG*"2f&L#u]qx4NI*VkŰV(fC}/A\ə>@G B2̼׈"f[Z:?C33&xlI a6Ÿ֊ IBE@04woeg\3%B 38\*x˗.\r~`h0p]:w>(}~]]Z:AEr0=X^wv[X>8!~ϫ{η6(,&1Dg3LKIeꋁCBp87x7l>@gtnBWs}hRdy˗.\[$6םe A4wW5zчbl窳)AO7Ki?0/#va%҂>sc-y!T&?a$]" 2e&x/ZǼʩemr}!%J6477ȻTG+'*iPO};ow[oC TYҥJv?R~B 3DrIVLbdIqv/K֔?<B `+WVTA9 vzL1 P5 J jȂ%!`h繋ԮEƊ`2: DDp6t9EUV + !bH]qux+ʫ.U$dPQ$DdU6 **Xm*Tk56Ҍ c* $H"TA $",Q?@REdTQAE9hn }Km/EWD*( >L*u o0@n: ..+$.:㸻#. ㎸ +w/um{ocbA 4 dd)+ I!d)XHH 0@%(&BBB22A D(!:y)+Z$ A"iCB4! S% @\A@+("0HI!C*"BPRQ"  4 @`*%"JOX*D%",H+he&@@eb @OBRI&I""I T@B2ADRz֔ Z)q BBEXD$ ZR",J (AJB$[ RRlR%j))6(Pb VD / E (EBY) fR҂D %Rb(If@ M(&@P*(!$JHBA( c&?,D(Q@%DA  KD@PPI$BbL0dd6(P<Ȫ )kMH5 XAYB@RED ((JP$0a QD3! @$J$82B:bVB@ PB)YXA, $E R@J!)J*T0`2)XA(R*BB`hABIf,0R,0&^HD9FIxnJ"j3C1>Țp*}Y̆-&A hȦ9\qcc¢ ^ ],0;Zf2d&n&3A+R]ksWhׇ ?C.W_o{Vw*"贼1w^Œo!kqW!_I0_BGhc֭XX IPo[B&GC5FhI*ًk޽Q^ÿWJ^,9%41Wic7FwڵZ|\3ӱ{%^QvCL9jg/&z0xvAUq>PiMMIzh,?;{^=7Ky>G|=UCyκIno F-nHK2oWjzίW $)WF@2J!aX9TUG VץE3 Wd%ؑd`J/h$TXciQƪޚ˖ pXɿP95T.4r:g:(8 4D!`VBÍb Q#ڰ@5˥n3p]-[ 9QV(y6z\Px}j}c,G>ePRq|, )S\kPf-Nk.s q(wX0M.UvMi,!!ȎKDEDrY}2"""9/"/H{HKK"/r]:߸vr_Ģ9/9=/p""/pG%ȈQeE#"9/H#"9/HDEKDD^9/#􈈽DD^D^""DG'KDr^""zDDDR^{DE#T$מQY4[ /,=gy]~`q B=ZXxjJ1/þ3EkWRsϭkźrMafXc (Vb$!A~-'CUB\(& ́rfu+B#wܒY~^;m Je3w[nPrCDT"hCCCCC?CCBNA4&8mG#hI@ b AA&jJT_Υ/Ve&Je g[?;=%ߊ_^?90ym+# g߹igH4l,<{qqq "nӐ/o/^>w^P՜{y/^ -?q\B"*d,&&&'z}P070[mʕ, !NKJ=8Fb)ǷOSy]_m%A#4|\a\(i2r6h TyCs<Ҍh5,::/펆y07Fc=F=e}G[#VUfGX4 gNjG˻LODgRAC,d=='ѳ4#@DyU`#Ezu斕h@Ezulz:zzzc܃$PDAx겚XkH]kVTķd)ƧQx_q7L?( p9G&nh3s^ffߐ_%UU;]pSNOMM2T\VC vcM5v! ]r6"XuP.#IV|&\ F.|_`oq?]?])l%PÒk<7zHArӥJ*4ӦBh*c!QU EUMx|#?̣.P2FpvS7M猐ay(4rݍnbfs:ۣD8;`@\n z 6 5aFvv:|,pEff41d [:,MkjGp k02 xEbZɁx rPz㬽=@K#/es,ĆY_b$^ ?3Ri" n XyMՠǾ~ˬP9 4ŕ\Vjՠ֭.`% 2 j#jo2s꼖J/Jɮ;e%:vNC3~iۿ蟖$Wej@sgzҰ {!33Zt߹!n=_oY{d1kğ뺉5ټ7^._kB _q&S!z~9D6HXh &.>b!ք~c3x3_Q)*DU.VLzvZ P  P @԰p0;\uʏI]bW'?n:wntq"Ax^DO|;v#Ǽƒ]WL{='@ cWWWUZe cTd`p'T96Cpջ]6.oѿ?mߏ*G R"*:%v -Dp5.]lp˗.[ꂪK$ЛB츊4hѣИL4zˈpG)prUVzrwU[ݽ?V!Bh[_OD"6}Kzu? "`<5g]"M\S___[_^ al^^MGB YF5\AgNָ&okWGoyv 6H1 v7;_fWh@_qBz_7o^_zYd}^6Ԥ({1;Lw/dlիV[ΫeVZllT(UZձBիVWhOgVJjղB}ZjիUUjf17UQUis䟸=x7ZʵmS[Fj>j\*մkVZk!(ֽ[GFmVZ KZmի;BjիVѭY'ժ[PnujհBuVիV[$gVZ(XUVZjVZիW sݡF?????>իUlgVVժIU[VujճB{ʵjVZAgVZjء=VիV[$I^7VZjճBsʵmn(Ym`,[m۰BuFmY5ZիVujBAF?????> Y6hPydlD??>}\1 3իRZHPnVժ9FNS?)!kSBitMŒK%ze,RƬB=o?o=埖VGyGy\#ȾzATD)ҭ}x#bl#w%D5\Uܪ&`Sb9d%^Vw\G^&'t911"@omI2)[f=c1f38#*@e|AAF|c/‹jeALa1[[UTA0R+AB2D"(D@|?HABZ)ZZ)d;=U7~% +@aWkgh-$Cⵡi~ C""NH 4̥t-Z?s}o|| r`P8O$ *VDnHT-֖.[m--+aۂ #s|na/N-8$cs[`6ΓIYU\bd`*." Q•]q]vիwu9QE$AFDE$EA 'QsR;ˮs$I$ ~/Eh~U[G Zg[ kN'uo;.ǹnO_]&{+ǰ\pHiȝqR v!tŖ Zb db%Gy*Y,b_ҮW_&Ĝ #M#&m،cCB,t&F_.8 0 !9=vwI@~L:4BlA\`rE"P( PBDϡBǧ0P"!rю(.aW>;8xf }g`\r.1L6xkʫXE;`4H,@ ("#Ÿs -~%xB 9h)FhѣF0TB$V̟= #~qU/!bO)m+*oOAm! 0a0sSdӧN:t'T8mqqqP|&"ɣ'~)!P"*O(FApU.! dJ TСN:t!P:!GfQ Φ,L\X.)bb!i,**SZVzՋ3DV*b " UцJPTEb1laTJRKJTSB)eJTX*^&q@ӈ1jND2f &ɓ/N: " XB*ԩR$UB)SPE 1TPJ*TX 2,jzB+V"jU2*A=Zj.bыZeW jZE X"ŋ0U<ŋņZծ\.r˖.\EˡE-ZłdDkjі,ET0FAe#KWEj  0:JT%*T:sRLDHDO36$U*TL"OB|DRF* 1TQRJ(T(GBj YjUVZjR"V:JRQDT(R( 0 ZjիV6 DN(T(P@FtꔘbZjժ R"ło=GǔC''iY99=48Ԕ^}F~SSY)jjzB^QA?\nC#[!|ͥG|ƒߴ2@/"p$4Ñ!7hφAm^@9  k=F .b8`}iqx#n7(Zn=C6H͞C=,V>#[=c_JBaO'!H_ϖ_Z|f g/>{hR``0o```g0003ȯ H 1\^fejffgxaxW333337n7;MMd;MM;r9A&NNN;-sOt'YOOOOOOOOoggwO'mGy?Dѡ4H  DK맏;ysdӧ\s:;zӧNiӧSGo]]^O(oOYWׯ^:iף{fi-eq2ebŌYqqp22&282&q1Lq0` p&qW_30sL/^r˗L\ϸ˦&Zeճ3 2uj .0 0L 0 i06URJT˺Rf_SR_*e(Q.:~,Y1N?:~*d);ɓ&&2d&1?2`'5B /P 8 eRf*xU*0o7Ŗ4ūV*Z aKV\*,X\ūv2Jʮi+++++6 YY]%eZ,U+*VVU<򲲽Y^ c*cyYnv,;JcIJJIkN˕~XI&敭'49FFJi$I/͒jI[FZjH`5kȓز3NDAI2$ӒeFCPH65bEc[t{ ZےIZjիXmoڵk$ր&o%~ٳi&ͻM7lٲ˱6^| ׯ^m0`67rI%ׯ_Frׯ^ڝ &ѱdIdd,zXdKKFŋ-Y21&LzuLhr1bʼn6,dbƁ&P2dʍY,hvW#"G####Gu125sqcccR0`; /yԋN`DljF]+ )/^z䗯I/_JZwMKI.2ejXb-i$_X^gmbņŋ$,2Ioibŋ,I+VZ.֖GJ?sTR)i`JYOʥ%K552jzzy()S{w݁QQQJMMMEK]][m]Yk++,Qgߊ+JٌJUϫʮ)}}}}|J@__͜]]\n*ٱEYQUտ~+S\nn@~E '„(P:5p:$DS1Ɲ $PE4&,Xb̙2dɓ',:!q6p3g qyq!qD8l838qD8͎8qᴛtC<6qq8ͳ88γ:!Dž!N$I$ Z"$ILI$L"I$L" DN4hHQI$AĒI3$"I$gAB">l DI$I'$I$I&tI$Q5$Iժ)I$ch j OoѢu[|qyıw]i^NS8>eu->3zqB!UUB Z\{hol,׆c`7@Ȉ}0釰`~¼>3?8ZDDc +={}?KWy`]ݻh_v|I}%OtL֕EqWYW%馨*˕Z{?m_yrl=ee;Z,?v5鯜~uKM]t!9MpGDé !k% h"Oh L!.;t&%apcåwrU|np O}Vj5UUuv:/0W[r_ά٫=X|ߟz{o>߼cخia-u[Z궪i]k*WJIk9jҺVN[|Riy$d.=*inxʴ:K:Ԟ%'{o}i-$ǔ :w'{Cy)]y~[T<]}JrVU/Ւ;;'wvڹ-{I;ǡWcw{ei>e+y=yI/-mzoyʷ{}=vIuCe q" :AN{>l;xuUdNڎa5ZfMhUUWU~E]׳q]Lko^×;utݭm[Ko~rwm.w7kki~c}޾a=[7_K+:)5.__\}xıTW"h 0nϦ q?d0|V 9E 9g Yy#2%ZG%}.$ j+3a%9Pv5s5!sVvա c;8ӒA \*H++ ?r<lijUsN?[v{Omnu·EjxyPs絒 :&yv)=0чl q |${\~Ϊ8a6CfwW 㵄8.ne͟37ʭxoGrV.:8'/_Kn,bp~\f֕-@8(b   jn P©Ɖ|چҠhˀZ w_=4 @K_ʃ>SO|_>O?\O'N?~?_ԃ8O;;}~1?}HُξOAT_>_/@_EWEh86Eut__DI|}"DD_TETG/}M|OO~m[{~_}# ODĿ^7>ߌ'|a“@|.RBv}ãt}K!9&CQN7O&ϑ>/M$黹&{:6/S$;>{vMgk=Y!8Mb|O<ͼw0hC >_d0$/~av;= `_0yoNxL)Iʓ|I}-Đ=!'w$4rl$pɦ'ܛ&nCF.aчG=aaaC ] UBq_L~!I\-2ni;o3-Oucv2s/&͗}g< ɟ'nI$>TUEXU,"y^Q}tcbXun]P-=%S9g~=_|G]b#yws*aj7\}{?7xyϯ2e[m|\~/׏9Zwqg1i<5i<Ż9Cj>\{H*::cM& ~z}uu=tc~ oѣF4k^;йĩFĹw777778,hѣF4lѣF}KDhѰFJ)qndH˼ɼ̓&NfffdR#Ǐ<{7ڎφRqDj); i7}Mϔ3{Le׋!6}n%}7_c{J \_@˿4un<.lg!]ACm$}- |4_2U8vwϟЋkvhɅ*;WVl`.c]d]Gue@#΋"3[X0'` aI&n,K_ ~nK|28ޘȂݎSSUБU| \sUPA[/&2y<?-m'| ~[,B@e9d''O>r^ʡz1[T/Psv+lHL2). 2ϡa3C5Ld/ĢZچIN~J˱]X-Kt@! *btäCgN4h,zB[{2h\(`(NtM9WzU؁=YuMڎ+*HYBQ#(/4RCRQH jR\g!&&JE!REeR"}}Ta߮ %\wncv]gi yY8Ͱ?½=w SqC5GG)<'c #|!=%7J&!b☸A0; / $$I$$>2Rr< 41<0G6 3JI'-$咥$k\c.9nxqoemk..0LanIzG%MHT2FYMF`;p [ڱXy=& }~Iʱ^~`xwm?|߃?P3&OY7zomjY{};LP1 u KLfr4,DAvV#|s.,R4 KފĴ"+( .0';ey_)hPUDYPk,D@pmum] -ZJ.+yȮ=g* (*s"lR Z2h b^v^7{I/GfJ֮X㌘r˗.6\rV| t75hѣ)oSJ*V*^&4а v^zO?/Q}(>=-?|]Iy06. .kP`5Bػ+"s Gb ^uzCpGoDx|:7ewswkw|9sy˹sΗhHj,ڛwf{$ULw ~Xy~[7< A@1 8J1.q;y݁ „XXY- ½ALSQQf4y; 71ᎀMہ/p;( Ȯld . i"#@* H9dm7 #= apMAӂ\a8y-̹rw.]$b"D,8wDAސwDd_DI߸Dq% DDDAޓqzDA"N%wD";s"k:C{<1Eb#F(**ªPJaUPQUZTTUEXUEEXUEEXUEUkWJQQVJ֮*QUZҪqUj**UZTUVqU **¢U]***EkR*QQVTUVqQVUCPJ@bjTUUkWJ֯UUCEEXUVtjZUEEZ**AVTwoqvK TUUdUEEZ*ZTTUEEZ*Z֯UUCEZ**QQVQQVQZUjjV)QVQQVJ֮*ZEةbX,YborYiiQ΀JKQ8MYU{DjE(Z sv'﷜gfF !ΖzZZX? X]qGIѣF4hI(*vvm0ۂ & _/Jώ}ZD/iuyD+m8P<_W^@L~6]6wFozb.vv>#SJ+}Ο>|7>|ӧN;2TTUFHPD2^(1H @55Avv.Kx( (PB .O\`R/-B%P%Iӯg4 80/:~G}aDKQ(ѣF4h]т}jk-*Ucr:Yٚ4\Pm2l re Y~RYgb_q9'w[hDAjeԪtӧN:tӃAiQˡ<СB4i cX̼VH!OR>=3_Z\Lv}(_|H}I 7 >ZkAO؟WuZw ?x~t|k~+L ^i;>g >{^ ҋk;Z?6q{ox={L ^p@/M~_bD008ԴBp1OFt.|ĻwȈzZ켞 @$!_ugv" #x}nW}&Z2 ťjճkVѭ[ K}h]~rZh ]CIĞ:uMǞ#z^tQYv}/q}7wӰ4$q{>|HLc?5pA67C(} ;ii ͺIwWg%&gzu~6sڽ|I0v2rQI6Rd8p8 )B5 ӕZ,;@~. ·q1"r448jlY&L6lzK˥e2NJ r @Op$=)ˋ+mЄ DT"0L 2221adddJȳ%8Rt;-{faB 'AbX p#r+TOiTS@%e K[ 5b$~w7׸Yr-1=oy{>ȜNN:tӧN;*l٤i:voȾֿ/^'$`!g+ 컅9^" 2ۮ[ ?)onJ7sa|oXJ+9SD4dhhhf$]xz Ὂ+.^jvs<__=λs2Cba5dffy~}ˮ,v;f͛_>@%&>`UE{٠)rq'(A0yOz~QA aO|ϟg*oY󵵵4r.$ߣ>ZHw!u#Zz5o_g8|vH}JH9|Wϟ>| :l;YIɗ1s!.HXVZn낃g`d}_wkX%eVT,%" "{IA&P5&÷}Nag*%2aY**SRJ*TĿ歵 vrggg)U`vyA,$S)pSO,_x #[n?1o[ zA{2p J}/uBߠ|x[@^K|_Y,7 kڟ qp"k'^xՋ/ڠmQJ?}&@[7$J}=?ot`8p7: >aOF.#G9N&erH^jX772.m{rܷvAN9LQk@A8\3`e ?YVӵӟ3ONeàQTgT >?OepW.RVz`>zā^8w>?\_*"̣++++)NVVVS! a ,ێ^']lټ$ٳf<ҹnm83H);]a[[xFOzsաk V}+4^2C mt˕sWg@eAA? "gxE~o@Tta÷8,oMdN{wHY)nP7ޖI,_$3!U{_%Wx*g¬ 4@#mMzTJ' {rys8YfMdٳf)b K͜(jG{羕 ~[Mƭ160b،;96H;G7&se&f;8H%mnmڶͻf%5656m kLmf]9ml0-iͷik6m4vhsnےKMYiQ"۔ndݛJ$a` fڶM-f"vXM&flӀcZl[5Yűck[;Yvmnijf-C[[ilȖ-3gk)-ivhMY0ݶmZ@6X͸'$ [nJf8m&mVnY͵M4X&ֲs6dܳnɺi5&# vٺ%ۘZ'k4[K')jmkq"mYiٵZG6րٳn;3C lݻ4q2Lkhrv͛e[Nbٚvv4֘ݚk 31ݶ[N4;lK9Nنc1QZCiSX&EsX֦ac`dsn!-I4Ki,4`1mnVC3lv ݲ۲f&i&6[fdfK-fݩc6[Mm ̖+ 2YDLF9[6!elۥfifL,ݱٷnl1lrӱIll'5l-fvȄ54;mklN4R̵!i,Nrہ4pL6vkFf۶lۆ-G6:I۶8mM[m-ÙX*V6`mی;f+dW:UQ3q@2!F~uhojw.:ܳLNuL&L3G6lٷ>Gm~ٰ:u:tٻiD-ml t0WR,aLN9Wɴ;4 ^17Yڻ8*qrg'h{)ԗ'_$>/ۼm;m<2>.]?l &/Qm7h=X[vIy`v 믏.Jոm}=؅8'tO>tϟ>}6a2fn~Q(0>gbؘ-1 @Gы̐< nO6]]ҞʁELA`Y~qt+'>n@+ 4²a4VѭZn&j颓>8Z3$Jaڲю)b|O}+?6} M< [[[[`=qP#)rYO Q,8KbPOq@"QgggPζ|̗̙2dɒrpTj.(!֍f3g8L A!ʟV%Pw>#jog#iWi5@r';>7CBA V;#mQmmJ0@ ((!*Dp6dŪF???== , (tx h8!#6tS鐁7XB5PCRB (&I߇7 (ݧ-) I"pggPC: flBtٳv!{|(bm/wOlsta|ߘ(Ϥ 1-H dC,LAO6#8߽yվ}gyZwއ 3sjL3>gw;Is5g3[aiurrrrrrrrrrrt>WWWWWWWWWWWWWWWWWWWWWWWk|}r{^{纉xn>^='`3E5Y9}[޲ڐԧӷT4=,NooGeN7; NXBxrπ^{\&T|[WZGT[V>h0o|s?'7f\} ??KZHѣTW~Sy{3دycRqb1iq]O]a] KW\H'G'D滰痶:h}HuA )Hw?ӝÍQ29;bt&>^ &4QVIC * Fq[h{t!C:0!1I$(1Bg|~"$@K3.$LFqsfsdrٴȝBBsG>ws>7c@t?>P`F2|$YT94;<$QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQyŠ((EQEQE ((АjƔyOe7w~g/*!D(up^|;x/5N`oa D;6pW~o>ߵDD./QusSx\>{˜O P7* r@#q[7>|z?=MOcߠ8Jʼ\څ:SIŠJ:47OmB,| r6s9-rp?}?秽ϰEAJi;^ ;>xŇ^ʯ^٨t] {㴸M>a"C11RU-zNi3 +YX;b}=_[n5\Qڦ@"{l/xz;m٧W`,J  3s~wy7{C_븯8@(v "Q(QBsѣEd(4Ϫ7R]&-8v!`Un篌!DeCv~Ol=}ojطlwy]iF 4s|hYȗz<Ϗ;0U*U?WA 3緃Aj")~t.kKJu6]Wܱ.XhB4rJjzW[Z$;{wpEUDVt>~W .;nӾj bjŎKMMH>p4if =#I2 >%h5 ((^.vioqKg=Oo^}8'$N6tӧanЇYlwJ)ӧ.)-( WPgo/ 3DaDDcJ>)O@=J*+$q(ѣF64hу}:!?^ (PC_8{ 5om_4k, H}o$MG?bSGƗc#E7exPkv)*TRJ+jPH^)hRz5J{G֊eAyRdΘ%4?)a.e@Ofإ%QXe{mmj\μϟdJ}nbdͱW;1 ]8 ÄFIӦN:tӭNAJQH[ >7±C]4hPB 3 TQEPXpBPkYos㷺K2gMC,p!QP([СB(C% Liϟ?СB [m_߹L.R02k}6ePD7N۴t7EETw7_U4z?|=S]A]JC&) ˸cË3W8޻}٫N>e(qϾxC;mr,gqTLosjH 2N')8N'減NY2lOç$v IlxÌ/"(v6fg|,"<Ȱ9Q_߈F19*JQE.>k,_6(P9;*C>[Tr{W+{{bp,W,`å55655555555sXTa_wYg5KШN`XQbr?/a1ܷغTWpXvim}थErX`nhͿ6lٹht:H"D õ:T g_at$h<h>>O- &b1D5%K+]ظdꋃMW : }r7B5 ]|׽;ٙOAT@f?"7oЀBdp/ 7ET/ppQamNX٧&=AyCŧa=i9:nfӬ}p]XQzPIo?????>??>R CQoCC'p4SGGFz E:!ve3h4PY;!cqum}c|󄶂u8宑m2ӧ6m7 %\[ KX^ !i Bc I;vW~cշG`TE8g/,Y4%bGFNŮd:1sթRN< gP!6~PhBM,dѝ%(}GdZ0N+d%}.\r͗.\Kp&rYӦL1RylL\?y>3>bRj)4pX/B)ȷ. "4v}K.?eW84.QqcFZjիVϭZـYt42442dm4442 PUET.gՆ1_|{j紾/tf\Uw`3y>1Ck._2a2flٹf`Çkk 5P1q\1ER<;]fVs>]lJ_y?zzDtx RJ*BRp[liC!c456mٳf͛6lٯLPߣ]v;]*Tt4ӣ Kd b/~2>]mKӅzװcn4q 6o_ Upдa>FhѢ Rm.$ݭ&QrDUX!ӉU^Dsʱ.a| 98=)-͘tIBHHIBA9"r E˒''"B!! GWomϵmm>}Z|5`|d>g߰}v~߿SG;_?6{10aϛI*Crܠ| ?y#;YtJQ-1$w}w}^p(P8TuBh @nvţAh\H_'>;;QQ׿ZXſ>:UӇJLD9w׶s#(?{K;G4C>N:qӧO a.oxT)Ͱbw.!t5;!UUT)>6mmmmmmmmmfͶmm6m6mfؐ6mm`lmmmmmmmm6m66mb'm$_⪕"kG MUl&_,֜-3IC ?YZ( \#~8 -qZƭZjիVY*Ы1chU:/2|F&u[]glx4 Fb4Ɉ RALL{]u31 ˦x#Ҫ*TNJ*T©R C.I&tMTt Ū&4PA*->ycR:e:vf|XNH %džnrqBKJ=]^;qx[ZJʊE*74RJ*Tͭ*TӸC˚D?z.!r\7dqq@D|~dU1to'mϛ6ln ]48]oOmyWgb[/:;O":OxHC$]ȑ"C#"Ca"D,B܋$H"D\"DID$Hvr$HtK,[/m"3Ư///,//$^^=h!D %͜$X$<"D.HhE܇!ԉ$:H$H"D$"]"D,"Ducw!rD$X!DD$XGr.Hu"EH$Ȱp.//////,Bpd^00Y*TPe1% &SPLIE%k%dʓ)В*SA(YR% y%$Y2XEy%%X| 2$K)-ɼI$iX5)e,LIRXR Bʕ),LRo%,,IDM$YL 92JruKoVL$))eJJĕ*SH[JbJ*TbJUĔ-ܩM$YLI+&XdJ-LJɓ%$2M䖒E䖂I&KA&J/KJɒļKżKI%$Y2XVL%ȻbHY KĻY$4CEh$, I "DѲL2\%,hcIY2X&KHd$,KdbIL."IbJ%,R 2Ip$KHXI2Z "Y+&LHVL$,I+y! ЗD5]M7|om#%j&׃zOBa Ee1`mjﶻ]i=8ETc0 ?=w2\}(!fոqiۃqͧڭ붺EF37F5>Hŭ[|MP0}ip -?_~Ʈfy=/Fd]7-~lP?ba]뭹f}p}֓MMm/o1yc_T}O u1K\ЎRȲ,q$@Kяc<)鞲]k` _1UʈڱmԎmmxLTQ *1R16ݍJ Q$d>$<UUT@-Lj-k=,v6뉇csR~^3r@qTy$,䉻#TYw|gx7 A2TYzY~;nq>}@{{xpḻxrwOTB:C8>2!"bN之$>8%jB!żK.9s NH(UQf1%qTS$ႅفvqr}w[oΛ ?fߐFpQͷ=W?=Uaҋ#dLI$S踜N'#px-C F3N&q9't`0f.6+aڪjʬ_-U\7H1S맿NgX,io}\Cgգ111111114wE}d4B(D`"+@ufMzy^qƽz=-"lc3n bTYuڔr% "βHʐj f͛6lɳfz8!0RQTA\(8QŠ.*iX^k!*vJSkOmro4m;A uf晘YM$MHH|?>mx{mq1ZT$$vL ɟ_jvO^~ JTg_ D{2beN8ГbĚǶ;ĕ=0aOpw{wv >>5 qp=7ufȖ$>BY} j*qbٞ2ŵŹ"ZpX1Žr=qپL{4C zׯ*zÙM _/i01]}Y"r;>1}}ǰ\|{\|||||ll|||wTkܖn7 F},<;YBJЭ3FarV?E+Ͱu; ΗOg1 LZ%ls|ϙ;b5TC,XLLN?)+^-,켴GwW"r]%cz /R(LyҸ]o_7=:7R߷ERB*4iRJ*TR;zvjtff^ا[p$ڛӤ &G<ₔ>WOo‹TZ" q4y`M.lٳf͛6lٷ%M}>y>tJ{S1ssY(!jr@ n/gs> 5oY@&VY,.4r˗\w.!|KeTP۶q*B M嵃 گC&TuThFJu'.>G/&m7tY| 7.vM.fev-e}(v" ZzuV4fML_ -  TX5ȎbeoY0u Gt'`DQb(""Z D AE  E @4W҅ږ t*H" A*AEPA@~䯏knA " x & ATD"hQ Q($ Mwmnmm~*5FHz((҈W4!rZ&4IR׍\ŢWz*N^o8?;Xc><\j^~{Gk=KR7,SOW\U_XkCtμH|5v1YhsyoͿ/Fx/; ~7Nqyf?ט3t1­17vO>=g<,ʊUϹ~cc=/J4})~ƽy>i 86/Ueŭe')ݾin2e»޿fݍc`O:w.g )g-/+wuk eHӤW[Fo|XPVȨ)U_z+"GW~xcjPuY!Q_-~9\wSܰC7dޣ\-9iw΍?WFeݧo=Wf$k[̟7Gއ UQm|޳WauUھ*q'??q3x5m-'>_D*:N?GyVu@}quzn^=ۭӯ1NÎ/3x͠n~^[e9e}`S`%#,%og;+WpEgg3UtpzuzŜ0.nM->auhoD u{^nxOa||o Zކ9;-9:(评Q{_wF߮<`9~_k<ΪQ*T*TDTzNu&'QwQ' mc-݈v +`>&;/ʯsQEȈ5P V JХ,VR1'o}QV#h""!HH ^*VH7Aj*HDJH um".G[jD*BE-*ʔhQr|oo7og!T@*ĒHSDI*lgtߡ:}THU !35Hl+lOIc=Q&四`[Φ?@cpG!>|?[%>}yR1;G3C2/.Wz >ioYqSk_k=;?< ׽a䛛BGnC{[;~ŻjP66jz.ߛA>&ӁΞ߃u3jO/Fk'/ou^ܜN.9zL.?[\C8g譪.iv]qŅ~jQ0֐q d>>r><_JuӒ$ϰ}_ȯ[Guy7M?[?-Կ^V;\WEj0n^bǙ=T _wGMf8>|M杕S8W/zdDs>?Ȕ4?ncZJ"ד5O}<}{} ncf ٸ>?eQơ{9z.\1?`;zm_Gy;-;׃\Q{~}oe {n,Ws7>ӺiMz>k\n?GC _WNo (|g߱aFǕ~xGt劺wjKTnXV]Q<h(M]Hu߀_ g-߼f~񾌷X]1j^Ǥ}jӜz"<%/gR݅nպw= Gs8aߔGI~sO⁾U.!I~]Qk3qxl-˭u> ̪D" Hg+HZs~Z" A $)P*"{PZ5YddQ@ @2DR j @ @T)`Ur қ[gݏcο:t;?gn:3s޹ zfKy^Bz흏㽢G]+Q'؆ Ĺd!L|_^_אַFyP٣USS|*<Ѳ*Yv ߽1T A`̇ѭN F m͋6:xɳˇz._j+/mr~I~N%og_WX࣪NM_}p(5Fl>~4ufRgaÛ=< X4~[a+$uCZt" IUYZ ɻ9y4Xŷp8k%B/"?ؗx2r6ԓt >:6!8>&Yۇ-iy m5bPsa7ÃecvZ:Xmq SO EŻ\u8sl݄7^#EOˋeszxqʩ.*확1Uޱ<ޯbE7ou?Ɂ8,gg./&vT<;Orj:mXcŅow`yvԻ/}^Zul_͍ۇj*>\x?q fA@T<q܍CbM&f͛6lۙ&͛a@dɝG/N7 7JRO򾗆h<-K3+>H&1kA""2f?-hY^V^^],?*&!#!W8D.\ؠξy,W<}ۊΞzqeV:TQkkY~=!'&ȷK@%NAז g4'!8J)dž~l ~7(S.Jҭ 5cUZo= S"WQأR!!:2-UБ$BQ*UQW[}{vvgokqw$4yQ:uX⪭;K{V\-a)Gq~,({o.xۡn۶iиikܝi֞7}WFedo2e*/k>0}a;%* IMN3%]?|ph'돴M(}(v鲹tGIOu3lǬYu.tΗ렔 Rgam__q` rPX0J5|p>]1 #:s:㓒Nס?j'^T:\gdI9N)#FΪ.'zqi98tg!k81?IGTSɓ i|ϩڧ{{X'!ˎ-v#w|myڎ rL` z>-<$=r KD('r9f!HRД0!)@ ;>az#:`直8FI%UT(-u^C*2 UopY24΋ep;v0 (YѝDͪJ3`2Zye86KOgܤ*UJÂLPPhEZdؖ+l!YZO-4Faz &K0ZQDoFw{_V* (#FV2ju'i~w8Dg 9Y,meHK {&L637G;1AY&SY r2O8uڪ1<y`fϽ`K j*h D@t@Fep֋}Nc09լއ3ݑw/xwo8,=]h[x<-6h-yws.0;w^%˺fmH(QQr|;OU>{;f3nn/;ۍۋlγ5jϪzzwuOtIvM{f˖G@ ͞JZwUɤ%x @zJPWVy:]ϻש(rسY2掞Zt&@Ζ-V7]yݼǔtmO@@yeVl>PnK;m.zJ: vt vBυ44 ntwסɛX4wxG*hFg<x`wgMyJg^&Ę&Sꑣ {AD`iC OP& < &L0  Fƪ%B44@12  10dL Ѡh24ɩ香440M4CPhшhCMO#&4ɄѐL jl i4i&&=O5(mIjI'x$fbj=IR$OD{M$z4?&jz C56MS Lxjx'm@)ډ?D̤zޢz 40蟩4$i4 4F&@& &QSih'&DfzL 4̀< & %" IM0L Dؙz#4M2`#L"z&= L6ji iOISlh&F 3T́!L{CD3ۓDq{bx[jw;^g^susk?TWW,VmϨ$ Sr~7ut{{^/{/{/{ܼO/m`!{API2RJBR )Ur"b"EB$EVD3LC'i Z :KMZR%'ҘM`k0U8cF𵖒kFk┊'GNvD^]uϟK}uUwY99xp]eoﳂT08~4ヲjtsLp=x 'l͛mmm66mmͶ66CDO>UBeffVfefdfVUe ̪̬ԈQ"mmllc6 !i͛6mmUefffP̬̬̬̬33`XٙC+3ffcfecfecVǎ;ݹf2fmfm$fa6ۻwvݻmm64llmlmmnwwwvݷsۻwwwnݻwwwmnmwwwv͛mͶͶmFFmmmmm IY~6|t>>?̝ zqb1aQQZւֵDE)b-k Zsq; 0[lpokZֵ. =kZֵ{[pTTTR⵨h13"/,qDPVkc7kXZ8`0¢h*1qi|+c{ZԜ9Jװp<+QZַ^ 1"b{^{{{{9s{{{{{{{{w Xb1qkL狇kVln1aqa cl5 @p)=?ǭ33.c7 D6"XN}@y*{ /Zx=1΃}*|CͻM󪈏 CUUUUU@ X"*TP)DP""xȠ((!v- _n{DDMʁpOw 7* qŅ2(|,n(B q I'Хo- $ lI$IE@ rh(@+?|?|/zkҔ8{ґ0@{ # H(T@lATbpb" ^֬潭ͽ֔e{Zg"PLAE5W^;:׫mmmLekZiy 6H! QAA@ `Wkmm~3ƙ=2=" @*b*- ,,,,+핛,LMD@Izis-4泾8a|mkgZgD@xe+Z=ZiMZ\,l<""zlg8^mlml{P"Ӹt=4^,ʴ,yV6M3Q Ee[kM3|k<ЁDC-O=YNeVզlKakakgXU󮚫,iզskg{z@43YM&lqڴ<</wAΉa)>74{{k6Ӽ;w6ux,c-]yp쥶cg x㱫=6wsjXQ>Y,-[<<o]mpokWm ګÌWq_Sp)6K-61j7Ow= }8ma-sџkk{sZ n 烙Zmb)Oc-ip.;;l-1Vի\ h寮v2 mlΛl&筶fۮ67{Uwpa17+]4N;g626wwrۑ9JR7wۦK^ݲ=ѩ%0һ+ rUսRW}7gikŽ  [\[ۿiomoomo ˛[k˛{k[ֶwpYxQeZins߂9~sy4jn弶[-ywy{@3A@uT(r`(H("2 $! #", ""*#@(p0@q/ViehLНz^ VnUUb(b("q ;?ê!+'rwAÃ5(J' N hB9/D3 pl\8DQԠ@004b`CG,!;+ ÅݙL3a PKë  \0U H&&hV#**BU%!8<wtEPP0cPNNLȮ*Rp䨬aû4 ]0P̨LÈF&((Ў8Cbbpá;p~R%pQ 8VUb@ cq%q;3;pؑ1g`p @ X*8p̌pj p&rС93fg #ɉAA(WV$$G'%vuwGBQx(Pà@`C8w@͉*`щə8pCUA@rhfwpCBFFY, Ó]M FHhs7p`0`028`F'(C2 Vx4BEiW$GVw`;V \3W'M`;3 HvfwpCJV! AHd Uú8f5h((fg 3;w\8p쁜0aV X \0gfww Çvg 0`΂ A+:+r:2ÇL*&"DC (̊7(BARFhW C&p8DU ëp VFJ gWvpB985 13l`CA%e ! (E4 ىu3+`Vbwc \ U@ƒWFĖAT:&'wVW TB!ݡHǁq R‡aV@X 4 !ceƊ +P j(CR`͂8bGDVU`Y¡qV +30<ٜ0Uu+2&p0310` !230:(frri up\xvs$TV U]0PB<313s;:6 jɝ ÃL#vFgpRp !Q†P33 Ĥ1!YI{^˨ AQPO4Q"6@^K E@ǻQLCJ =C>=Oe;RxR%kZ@ 6i4&&r;R:}WjF]px_)6Ȃ19P{͋PRr ĠD3h,$UUG}( iaX"""yMԵcS{gρyZ:[cWV v~mpW[?o9;==OѶ@:UY"g\7?>:ku1|LbEW; $PUFDQ+B*!N@`*1`"EKP 7"2 (e @  -"P=P (pEEAJ2AEh UQS)?MDo B   (+DU@9@% "bP 8KиU@n@AaAQsd.@(@(*B((ah՘uB?" fd/X!P81"o(aW 8QÖ.K nSXln*.A@ (RB=wiʜ>2L\%~€"Mmx`4 ^Bj9~Z4?dBȥE**)qy\k=ǁ?qQT1/(^KhCB4GtCq&!Ĝa0W a&Zc_1L. b ep.Er2b2kX[ J)^j+# #qKqlp, (EJ d+q@IJdYd2"CLA Iq1.!1$Ć$1f Cq:@tiHDƘWb\@bLKLCq8b\N,F% !q 0eXe3c0S !qC1s\ʪ18XbbX8#+T J e\1c/qq'- V x.L  @B4QiEHgiĎ LJ¸Gpa\ 22PĘ0ƉjBH8`ҹb@HiXRR `d z`l)`\H-TDYKD4oY:s[#eteO~Cv/'t5IreMIB׊qpg!I~wJTK' GSš*E!(eTY K'?W!uJHU(u{Pj6 tX5T_&BCT$.E=蔒TY#6H5aAE !@HJ_Ж(T _x#=a4W~YQ$n[0(|-Kif+S!RI=FyS$uttedHQUF`B#,ش(BxIQPX{vwZ$ X!iH>EHUY+BP_e!.Kb)>=B^𣽒,, l~ ɤS.^}'N]lCK)M XngbWE:){ 닪-!@!Ցi٪BAbP$TDR{TB,Ro$*IdU(QNM$'IӚ?yMnm9 6)OoU UGE%IdU+%JV~y K6(X,R? RK #~pW>DVdk*Y:i$Ϭzޝ mϽ!O4R>Ir :?RV)&d?hI4#['ZEK0ugBk,JTD$& HNBŽI,YQA JV?=49Ҩ 鲲0&Iѥ}-u-h{KuNi/;x5'IO%%JS,CʾBσ$>J9z # !7͂O|J X P-F%'U[^=f3HK&^¢]cm54?ĄzpHʻ4=iuӓY^ȈFn9vg'7Jk&"iwI}<3;Y7Nwٶ=-x**9Om?EV-l|p߈ QrB~0?JPuK^^ 7x "!FIrY(T[nĴ D@KBA ^ !!HP|]bBRE@@"rZ o_p\ส]rٴKHDg^V8hL0rY"QDo~]ux<|vqN\*,,,HP(}ic :=z,hrUX%CAhJ 003D2K fiD5b懆88L@ā ppC #X[G!Ę1 \aC1c3MBqޡxY\`h1Ɖ @Pġ * ,,4Lcp *aC1\L Ǻ429o:.N@Xj7Oj2Li2ҘD>7AE%ˊKz?[(!H@0`oKUwxԁc#ǣ hS@C q(bE˜G0aL 22}\bcLX1SҬԍZlo?'·z_@|>siwylǽo=żU@Ox U" $D0 {!q".P*7\hWC@>E%ŭ4*T S=wНBc?2?.tԈ[]`EYsa*dD7@K)EMP9|n|wrCH tQ@ -{,DQEXd5-V m(G2HJsZV! 2U!E<OEL ΋ B,2 HHXB[ e-%XIialBB[II$,[ a!aeBY!$H$Ȓ"??z񦷻n{O.wm_+ߏ)mknt b rZs߄\"+++;{}oe~y9sTX߇T~|*ǥ.)WqHg@ɽJU>,?-m:뛛6s3cw0<[~ f'żUkxw'D|~_Nps.7F@ͩv>'an[? fҢLbZdۈ /FUS/DfzUN]UV*Xp uy_P1۠vP/`w~S+^Snu/J o`|}L <%bbO~Y\wDE]K,!i.Xe引dMbƇ1vy&wO*w#0J. :{k¬_7>o/(׽3?;uرb_xWyjܻY`^xٟ/pplb*~nk? Qovo{|~gZㄾ1s s|uOwTI&>{AZ2Z9ɋӨ&n gb\ J@)4KL @/K:SpBnKǻr(Dr}hX4WyrDw]Gz[OR,U\E?p=ގi G=O4('Q?=5t,?4o=;ZWѾ)ix [l㚷wylt.s~OfgYf'Vra&nyhxl_s:LK)bbOϟMUwx1}?qa~+}\ߋc/[œ0BC?X*+hrU\T0V@i.eDi_=1]۟w~]Zwܵs~^Zm6J#WaQ|epތ|UoGp⿗>M/~1(Dy+,7$5<_mgNAWusiz"FNsfXM[yD.(t<=a7[`v_f7?翇+8>6v߂A UpU$>+_wyXx~lWwW/>~Oޛ۞LݗA3 @nONn w]9TW4DB;0" :*|iWsDBM7ǭ{'ZڿW&  g3D 8 o 'N@b P$B>II׋|/-okJ\Y$A-|s=c^g-)e ߸ȡ-z=w^< yVA||ma\DDL{Vx_;,]6eeƇż^F=D72?15h@_󩚈%Oxï}/E~?^]M&ejNW֖9η9]'[P :7׌!G[-x^/7"CGQao.%C<֔ ėtϜ3hĠghN.=fm-~a|W%wX0PTD0Xςt-ZZ?|7,nϯ\w_/wga/P ~d@K7% <ޒ]"" g^sjkE2U{?/Qr%Wcn6%n:+O. :32$3֛ug^I+rtUj[ 7s04)[)T߲v66/ ,5jVFyQA!6l@ibL$nI"$o---xhEkFD젖CWvq \CPm*9@ Ij 2"#DQ$U!NDhWW&Z hzH>ac>y?,k~SeAINrvoyOZRwBz3=[I"$tZz G I?y|`٢r 0K0wXGKSE}j<~D?7R&~ y[7E/ty]f73WkXr 6} E7Om7w/ݱJK ^|ǖ?z|qN[\˅z q2DGJrsQ*ޡ%򻝷U]WA K[ C:i  c)Mki*t@#"Ipy[~3[;}Η/yގS}'gN`cA*) "Yi㾇oN/<(V0tNusL~"lSQ}zR]_|`C!!0". Gs[ ?IH_e.a5շ~mLFҎu"-jw; MV<'ٚXWϊ<.מ8,{nѩp, lÛmW>Nd.Lᑑc^oa/?Myz̹~kqʊ-}L<=7&?WR dfX>H%>>Ǥ?r~kgv03m0f&hߍ?3O^nj`f#9w3tgmmnDI>m|I/t\OJme!t8 eXډ.0AH*mWgy^\NeY~{_-hadZm_#|>VƆw\u;Qzחej:>/?Uߋi d"dWBzF FkOR.xB?+MdZG,9fJB@ӅqD&n4 \K mF^!o}{< k:^gA[;;;~, \[[]$G5}7Kpö(ڪu%(w\۷? Rj')ET2%Gu^uާY[fc#!T87,/!JWgΜ#(Z7G[t FǸXxf+JݦR|t"BWmϊNd!6y(wo`Э*L}A|4 8 WEz*_Ma 'Yw?i77׾w-0Xo{oO:5EYfwL2c:ƻ'yNmDQp6 tpYb=\4&dlIw_w_M3w?z?ND86{]ݴke({38BG7n =CNk9l\ qf\fGW\gAtN:'Hțx717_6[ l?GZE>mٳV#m{nުw>f{ņo~oi?Ƨ__~WޟzKk6ܱ}8UVrQj;*12I?Jsfdl_X nIhy*}v; OR9Ѓh244&$ Pp/s=Ԋ#F;£B&)!J_IdOEnWhO)MZDY\)#O2Yep) NCʣ1t^;"!>$r~`zy[s{7{iާ׉w!gm./ܮ_r:ݻ< 9%I./u7ņ'ZK*Q97Z{)>Yuhf^\vm+{`sl, ~~,8˧qpq-?W.,/l3?~u[~WUe@GrͳW<gw;-U;uv-0_4u~un.7ooMp%Gfs>ߺ~ sD2O7= 9,^^X-E2`T6pNm"v_j}sKs4|63S[Oi[[?]z콽/NN0Rwkv.'\7Ax"o;䱻\nE| 8zȏ ލݟ{{C]3^k:GZ 8%CyGv\:E m*;O |gcsE>z6J9>RMRLy @\}͇U={G5^^?ŭ®]wþ֟B8rtԯU~9~tvf_bf dckv4v;B+F,XpO8:1 Rl6]6:quHp{D9jLBV³G+T}wn_qޛυ~G|6JY[0]*>`z$PhW[`k|̶6h\A'ߝCJiZW3! DBD Q"!BDTT!P@BQ IH$HD"DU$XH U BQ""DJO&B,.[22 BbRJ@@XX@dfC%RDBFe̲$!d$) I`EQT4BQHY($HXY $X,!JZZK% Y JXJXBɶ‚)I a B"R@R*1>iews_{ܯtWv;_ߒ@'m&T+` *,JDO;S̀wxPo [;B ?>`GKftH9:po7Lq8KdQ!@0 8D5s;a'yFnJ:`/Ǜwi)퇨n 5/sp#HEXEWKgvvs_1t45X@%5UR4|}W{]o5äz;nF%!;A $ J  al6Ջ|f: ׺&?&./#O+1;4GȈKO9-eaR!l_ TUV"D]_$H,H"Ȃ)djM2ff$yoq(1EE-mmzkH0q5SC8Fޅ_\esy?#mn-"f\27~82 jBU*ʫVڮZj_?XP9Kv\WCS}-B61K۴bpc<+iDhs5nӰT3;x[zί.$ %u_4  \S+BttxV}EzN%hRZFH.Ӛ|0?5\5'2lmS #ZD A^";a{/Pfy~e\DɨCPXw}_RgO )4-Ou|/3Ķz||D1ʁT;f}/W}Mo<."ep8Mp8 :9ɓ/Ѱr(TUrV E"vP"BB"BDUTT" ! QEUUEB()" R(T@"@Q@ Z%E@*B@HT*DT*"**$TQ(HB DD"R"!R(*B HTA@@B"A ! XXR AU qw?=Wnjv%7Y[Ӫ u; ´K1 >˗_oaOG/OęyH>>}ɧ} 8]K\߃ڥj04M9>nW:[>^ˑ3awxMlk̋SmOwn/Sp8iNF9١p;#oQH|IJJ-*ML")-%)IRIRe%)IRIҤ5IRIҤIV&)HJL" JRQiRhCj6nVյcj6m 666\Ǫ=Q^hzz1ʊ=z=TW6MjڍTQpڍڊm6clmFViF#clQmFڍlmj(mF؍TQp6m8m[VlmQUmQE ڊm mUmFmYÊJR)2L")*R)2?M?Eπ#`+|?z .΍";6zǗMUgCeeXcz1Ds|\uxgʏS| k{q=w5a=F? b/<`F30g $Ncq.G#Qn :UQFx&օ77$V-Z aȦqƜwP@ uS;!uwPRKG~0:ao쯍i025fY$="HOw>󑅇>Cx]lS[ԲE5Q\D8؄ 2 " YHYi-[!eIKe$JY)e$@RAI$$ATrC=%ZiHi䈉UU"T"ŋ,[8"Dda! IAR`@9-^Rj5C/oq 섬bJHQB]\ UT$DS VА5kao,Jz|a>oe&' $#92:9'48A'+}wxf`H<U8QC9XǐH:uH'J*RJ& ! * "HE`!H1X "R A!SGJ*)B-H%* @҃H 0;A q#q򱺉5 ϕצ?]]]\X%S}xZkaN0r:7uVږhLcF/ ^ l0Oт snpsk&)~&.C~ jֳjA6ϾpJv u5p^ߞs No4^_֑BC44 TuW0rxf>Uj ܞk@:EX{o{u?L$o:|3c]!oi~~lϝ>|!o D\,@+R>$Gm{B)) Ƶ!dͮymV_rCS9+A [K-A^u~X|j;BQL/@i r)ӧYJ8ӲG"f=q'pT(P"((:p@Rΐ BOTU= @ @<^7:jNEpFE,[ؑbŋ-N#c\~Ir۞ s'EE(V%m-ˑD^pd'WX=?WPpfo-sk1>{'77b [jիV[$Ad:TФZssju 3"JT?St y `'PwqީS))ӧ֝*pӧ'߈u!D@n}vs Ep9U!gX?l>zO̙nGE B  c1iQmZYeGn[Ο XĭO*G:4\VV=7t46K:w8:4ڨZ gRRT @ @x:".|NƗ~2ˡ :'?c `~>ϕuG\D'Vv^.q緣Н%;#NÆi[txOGlCߪ룣CoC_xN}/m(ZTZJTQJJARi*)N byV^h.8}&yejjj0\0gi'>ty=-5&bM T`6k M2OYk g4IĉӜNUUU"΍F2z& E54j)uFHu)p*Ti**RR*SRF*T-9Jvr4˜g)RAPQJ*)R SQQj4RF%B Tš鰦:lJtՅ1iSšܩ+$UKXW){ΛCUA׎ݧ㵣A"o>d @|%"zWxwkgQnI>|wnа&#^A tOM7>nK8W ([mAJ3 N~CLd:8;sw<?o;Z^ǫ Kp?RWu%R`VZjիVWы1}`)p>~IlX Qm'rz.zzȊ N~p&t޿kwFϒ_~vW!JZC[Kx*TN=Oڈ3K@`E3jՔ6m 4@tګ]O9dKy"@- @i~E\l9 ~K_δKN{:%AO)=TrDK 0ZO˟?}y# ,\)3m;Gx~%g绗N>^npo3jb-%Qd]e%~8Pl-U!7VV8"ʼhjN5GoCٱUijYb)ݛ/_{%GxYmb438S;*WW狰Z1@ѰuYl6SW.dr*FHV*c?AƇ#3OONL||aK\IPPUIUM VI dY8W'#,hƖ!9Z*iiyaw)/5| {qٴGr?Q#lDb`y9{XE$WnZHD/o 0 =/:mm1>9[wZw/3\"`c Z [n;lMW"FAkϼC?ѷVo>ߴxT]ƻ;۳i=socR. uښ8mtlww$4Qrjcu?m=CXXxPLp&3L9ncAS~"r_\w{j[,SaHdA֏mszCn7zr&Åꅠ +qc4?:{>?v庾"<3a7¨}zA uĒ}.'sw=o˜O :k";Կទ2>q?{?Xez~?MNO+Ǐ:ȳ v$ Ц&&k.e<\]W=!q}_Ksh֢ 0I$))pΤ<KǤ {s'f |m-eݿqԒRsi־w9(Y?X/y&(ddbTs/}\m?{1>Jz{Vj:_vwsž)~j]ܽhe}gM t&.uxcFoaw57Qdnc0r|<~cIUͧ9p`n.,U1aSfSuw76)IQYXawk~;nÆ+\tCYȐӘy$dcM0dĒl@iƜ;zP/,:iDCs$*rI+dY;/}nf9^Yͪ3g%Ll{ӊdJ__I,FHH"rÖo?;e> ИЎxO'>7ewko? YpfE /|< MfnZۭ`%q^# 6HL&G&l<Sy~s] ȑ+kĿ@KI"&n &E!"… NZrʹ"M8i/y6 srt /fJN(`lV췄xASRml==fc[MOEyy?vSv ȁufMqw86w47! #‧'@~h{m6|Nf]Li,Tm2|?CI&I DdD6ІF<)V͒ʼnT z >MOOs<h~P+zנl{h4b+>}.[*_ [t7CsE؟KNp@.yS6&XϽ/96srktqo}.X,礮X$!Yf:jv/\?YuYӖCq1#cM*_P,Ȃz?_N@0`LŪ??Ou_[͇>sy j?ƻl*VVQ,╬{J?t_3x~G^ngګZ/AԢp6|Y,aCඌ|c`.R,x~q{W=%3K3x2ey«S Š a$SBh4p|rLƊq Œ &hwݮA<*푝]"]"%zG4Q9VzB?L.c;><\Ϸ^Ǐ<2w8sR6/Zl~CCaء͒؏CPJB!\ rM9in%} ?`"&+Ggkkx2"eQ(Dĉ=$:3 JJwq5{:V[]]]]]ФWm~eeeefO! 0J=-%*a&.)14S5Ud+vNCaǴ _ҝxEpn۶an[KaɪD竉ڸʜ`n/c9|z[}f!E*B }- ~`ppxUp9K˸9dq7 A J%$ngf_跻 O//>o`H+ntEv k8PQWEm->q<0|rb9yFYVѳU}d6[L=O[Ce/smƆxf$-`-`-" ZMZ*6@S6{z= ASnx|YrmfwחKhtZ#=4Aea. #dt-(JʙģW /YEkm\R9*WfYU¤X"va"\ܡ8:p/ˆnc!YX PDK25>_#i;Mv99O 6B讏93YK<-vbVvv}MMMMKDx1/$"%D"ىf!b23s|y/xW-ng\ͽˣ -bE+%RB*,V w"fG$sFeM\ڮ煹Kʬ^F(D?=y~2mr;$״0h Bh4x1IV-K%rŰt qo_d!:ns@;K -ɹ3թWi,8OnFXN ]p\-G QǀWĹ&ⓥ`NN`!ax_7Qy)^gi'hZÑr`KO6%MLo%gje"w9yM>Hjs'yIaJL_q5o?cM1'1s?),+#㝝MKg{=r ci6[=-cc(%15PJ04hȄkhJ2.q Ug$*+o~w}]C_EU 9sJ9I&L2eɓ0 LTGV11Iy|4vfa-@Vѐ-jUZ TKD,Xez <`7\7օ%0Ci6[,tLJE_Je`ÿ#!"x! #"H,DBr*8P  BtӧNgΟ>|4DA)-P"Y]Q$* *""muσξ´CTH%*'T&7jVMbL, ]PH^?y.V'G H #/gtzg>;3J{[_l:YT&a0V͕iuǏG;'/eÞ8www0nZzSzw>|tR+_g ,'){ALw8vUy5a`qjXA<헧yr_=E]⬱BT;.w^Sڭzck;.lf|OW*xvuZWI\9BWa{{-SNKlNdE}At^KļXX;͛7Jpc*(Q"tLbˌLIzq( QET(QP`AP` 0`@ @6 0`;h0` ((AEQEQb(( (PB l,YiK,˄YeeYeaa8fa3 9p8pÇdц` 0ɣ 0,˚,YeYs% 0ɣ 0,.(PaB(L…(B0Q@ (P (PLBQ[b(EQEQ@(2;5TT444wyw[sMMMML33m~vM%ѣF~_~Mv[Qy&&L2hH<~$hѢDb$HP~O1ϟ>zS8 3ǏvUӗ.q8qnݻfͬ+kkkkZVִgadɓ"V6lEV 0Lztӧ^2k++%&Z:eӦLZeiӧN:tꓧN6"tɓ&L 0,Aeed}V'Xecb}{++++#MO8ӧ`u5GKtM/8>OQPϕ;|X1p@t4 %3tS40x%F׿o=zoI pI%>$I$2K>|̂\@f>} ?~ms@[ 7  0v  ?~f$O$I'nI$3`~I$fߒI;πKπI$߿Hw@QEQSp` o 0`@ ?~ ~?~I$II$&$Ϧ_>}2^ԯ@%$I ~߿$_>{0>$$ϟ>>zׯ^= ~ ~q)A32L4`ifD~G'A}_WGsSyƚiioL2dɏI4hbŋ,H!!Ç>)qK,,,(~M!$|Ϟ ~ OMΨTwteQUUUKzMefZjѣF,4hɓ$̙2dɒK5.Qle|E1(P -B PBwqp(PuƒB [PB [PE{{y (PDe F6|_/ek_/y9^1]\Ⱥuuuu&M̛7www~y HBrmS&L%++++VV66#Ĉƾ%}t8p]V"g&noe/"FO'Mg|={9=,cHrAv-ԭ[j,z^ҬM~oIal0~DzRSS bKuuu]i7wwzuu\>+딗7WW@8w@]sx8>絛oO<=8ixfX;L#pxd<%b 0TS> 1TUL|TRJ*TRLU*TRJ*TSW-z7wQҙvLDL~u}2ډ3qD0}q2D0E>.^w?x?Gx<1???^>9??O3M?=;g>?,H|H"C8{ˠ, pB+} 0``@ß|$I'$IIfLWD $'߿$~"I|_>/={֐@0V[!֎a1b3&LFdfl2dl1bL2t͛&@f͟ɓ,F6L>f͘33f>͞| iFZVlDٴ-m &ږ36h4LhѦfWb6lٳf7o....ibƗED ..NݻtM8660\[.\nN[@vӧNqpÀ8qqkcccccH@vݺti]:t֍Ӡh:3Ǐ]#h H%s`Xj*M7~*#QYEdYL"$pRmu_М9rrEtEj; .Uc*U7SA<|z]q0Z[KBYlYjT9gX,dRIIm-X~W9W#L2F%P!XNhnDdV@$PBAIK!,HKl$Ir[ _m4bRK hȁH%+]s3Sx6`x[3imF.7%Mr[Ż p_#"AM|"ꬖQIΆ R{2ضEiAmTQ vA<>dϱ' ~:wQ/G6Vq;"9Ӂ=q{+D,  0,t[WV\,Y{EMO[7gWzM 9$N'''''ɼ?!C01rՈ7;-sFw;̅K@  &ע℀@|ͪ.XHfc>^t q(N\k!^\:pBQqOuKy߯ P^^3LIW-X#?$:tӶJ*p)lPdaPicFDb*Iԭ `{UjիV^o/}k$M 6}v/?~'Ȭa<lw c\\F/`]DT/J= \/tRAR-`̽栔#ϫ9ifQ yXT'+~;kv`7q?&ɻP'p8p0I ɗ{k}X9 LPՆ]$*?e>JRb$Q_=ٞt{UvlJ?]w`?I{ywn\p Ip8#`%\V5?]V)#׮g7l|>~M*r$-^W-od.bi#*ZStﴴEɹ. KH xt씝CAʼnN=9^y/%gYr$Z[@Z[%na$6]IXshf1 "#@K SL6b[֮B:M:rǚyv\xZ Mm- e?A 7}it/9;/hb*BREJVTU]ibvlςH?}Ό4GimMImv\kvWF"3{c>9_`RDNR&&gᜅ/hֈvV J} }%},G7#k(n?k5PUL[?- UcX{~߻ +O黬5chE&___^~ξZޣe<(5р35F͆Èoa:{f9g%V=TUk1H;dž &}|eߓsDk Nay->ٻ=ރ&F50Xdɖ&^˙2dɓ#LG؀(_CO>;o4P/D}ed;b(*r":r"*u[*uTt$:ʝh}$a@)BDP)#b"8}wB?߃Z67mg?{!d#Ib3E@LM 4424%\GAOOdX(P @ @  R @)`ImUB"!b$),%"H%,% ,")d,,ZYKQ!B-H HEAa RXB")BJJXK ,--,%BRЄUE )H%)I a!$,HE@ A!H˶-HDK+)X&?p-| chѷЪ\i6%DE{0pL"D"3r>׫Va՘ ͶR/b ?;h *J@R`PPk6k2̯y'\fse~沎-RYXz˲`~ʞƆel[, ݕh>b@F#W#h v;5T2reekx LfPX` Ij(pGY6?C^ýZloET|I"stH97Z`1{R_3'rw UUa^\;jPix"۴)Ro)>+Nޭ^%d r"(҈%)wtaQl[+n! k^,Wj2 وp>w)tT:h`@EQAD~~}CY_&BIOןsmK۷ml eͶ@wn WW6j` o̤N{/o rQtc 1&dѳMA7+hޚ @֊sE hEF0)n}\ D2Cs]嬴hX"6UfzM$5Db,4Aj ]Dv!18F,'U3YuYdh6'}G'?8PLDZBEbT+ 'a,qp:OK_fНos\a|(1Q9խCPi\NԝSSSRSSR t> L$11!1g6P]==ކ]FB2 Tc'u+ $5lf:W-9eIAVcF_3GoyuM7HC^^_wA|yRm`Z/`_ݻ_Y_7fU03Ow8/n7Fp$ 6Oz-Zֵ.8kg:*ؼ_{fE\{k+)YJ1+]Y[̢RW?UN b;Bh~'׊t(/- Wp8t~ ,r8TEG Vs1{j/::CUWcX;xlxjD($J-RavJ܌|Y \N]åVV4/-ZCK;Ҥx ށ!;H*9A ld9?kպkM>;F,Zv.V ޾Z8^d69G#8ajt"l Krvf|"x+t$ @)Q XPƪe IhOie^z=5žRiTp#a֣@%$.Ywk2fYk/o4RL( AQ8X) Q-]K 4x:hQ$h;:پgD ȵUt!N OfnPY@ g.vKej)|+/VK+-2uu,\ \Y?D^TAƅ (PB} (?*ڢ +JX64ɯ5.VYC2!Qp W\ fJUBԙJ"X)LT0io! AXA7gZz@"#"(VQ-]ﻧ]s\zDWi$I B@IOE mm-mmnm\+PD-@T."DWԏNLl] AEmگqfoY+6%@.KJ)D% 8MD@*.i@iJ"% K  GU%"qPEx‰a"DBBD-(HHK a R)dR-T* "$$$%!!b,HdRH[HZ؉HHXI QJH-I*yuUAA΋^yk-uU{! @fdQ( v&%)H81 ̈A0" Dx  40 ;#0&L8'w0 r @AP%ArÄԄr!(3pN'8A9H;pؓrrBDpb"L9A $ H9 (L8`唃'tA33PPQ;31w"rrrpJwDpJ91! و1Af wwf`' 40`!8p ĝ ff J5<8sA"R!܄R)H^@r`-(;3`L$ 0 rf ؂Cr R8y0b`j 3;I@H0 @ԉ(tB B Ȁ ''fbf D8p"b&"wD LA998 BA 1;À9\uS|^ssM_,\P@ ffbb``04Eqqqqb`7p8'N :ADD0&耝 "99!!!9NSB@) "lRrryI9lSE0&)Vp  )@lLLL%''MA)'tBdG2R̠ NDLȀ  Ç0 ;1133"y p$9aXPPHHD0q9@'w0NREf"b&$r("La(rBgP"&X"%DpIݐO( ;!9''Iaə0@Ç C!p'o6b A99<0apfL 0P p)9;31 Ȝ8y0rQ9Ȅ pB!!! $?LH3 &34.A!F1y,c#1" ( ̈NdNDi $ A#% '0b<9``VH!!|r,L \!6z1WI{-4P;b]'{o^899m쏳u>I7UF R4V#jʫVZիU>PD} :@I?FJi?khgLL! +2 &Ә[&lbNx 0wzi}oql*ps_.?ោW;NTXXTO*:tTN:G] XGuiCuQ|[bbz|-i#)i{`X]i<ڈ _ U\8O|MbY '۴- +[[|Ob`q8Q|$dI $$$dYy/=k8ӏi%jjjihjj?KU VF[[[iC_t۸?gBYi"0 ) " JT) M}XgwB<,Gfۻȭ^7mQs/}WŷL>gqp]̬v^kڪc%ܾ"7UP*b+ l,u\uK6iXA#TC5%vgy6cVl|cCIBH hBpVܶm[.JgA$ӫQkkA4҈CM4"QGkT*^Tx9׷  ¨RZldOWª7$30! '!BxBD! D!"zd!HBP!?B! HBBD~D!B!QUB!2%{'?^^%a,x~}IFTppHmmmj|F,qccpr$MеWE`([[[W: \Oj[Wb3 -*+G#q|- xW. ~6j=>H- ??ȸ9.rXޛٿ#o]  s/74( l.baq:jDύ2jӝwx?'/ US;my)-"Ѽ5PCxBoyo7ymP8~g+wpTdCBC#m4% h@3I@1Udr`#Mgr#o[ߓ7/; xLnq{rF:tӳJ;t Gvr$Nүipi%jdhK.',FIȭ[+e,7mf-M#~/ ~;??q*1VҤbI'_Hx1*p P('4bQF4hȢ sT7=GCG|'cJрUc4t]Ju``5nMM !dHH}?<|Qh_r3.M 'eOd&cL2dɓ1O#$DT4lw>/|:[;36sr:B00b b0ؾ|x0Uhp3JDrRhO,@tGkhtzwۯ~L͏[(ֺ vEz,GAwBЙGCCFv**j׾xHmvDAsDUdD Y:Tcs%y%½#ALZ2i;PXSI| ?ߊ>/4ɷ@%~3?hyezWjE*bVSJJtӷN;Az1fOC>"'UWRL^#tTB)\ +L̴2Ln206ͫ]%ѽg~G5:/|Γ~6fEGNK8?!}rܶ,>.}rgo}/Ȣ E`?mV"(V5Val6ƁC A# <G=]Ux I p/ - 6m,Fꪾ$08,;(oA,Y@ː[I _&鴻]f0an6N{OaP62G5q*jq*8GٳfM6lٳfx# U Dp8#] AYnwթb%F6m84ۘh9Iĸzs[ԍEE*%EA_1  N"%@HHs@@h }ܟ[m>_~my뫂J?§q-uCB N$VV$:::::::;x F1$i$իV^je\vVN1F#hE%c@6ĕ***|!E\nj{"!@05Ot,O.:{OAʠ $ d?x* }CN\WCCCCCCCCCCA1F1y]N~}~{bNIp150'ֹ QhBV D4<K@NI d]t\v~<'3vt_F.AuDtȟ>|ϟf8DA"# 8p9?wKS6U*W*Oo _ZS#DTn(1)`pw]KYgF4AŹ$JI"N2dI&LxB=G  wO N~jaX鴽e0#=2,gc#1Ex "#iɾSq io/-ID?<~O,H 3pE\" TL4ḥF 8hyc'ϟ׍ƍPJ`1d\qs\9 y@[JS u2"2fIC\7}o)<| +:51Ƣ {>gj]q[Vs}988uD!?k{si辇}fkiY:#h|˃s.xiƨ?8qG7G#ќWcVX⼬^+++++0N"ǟ@%[8v_N'^Nݻ@}>K6uKyfX!z?~1+7Ơ$'MF+ ǖ^*磺nZcZrc[xuTY2=N[_O+Ogenit4ӽ@Z㢴ʼnsXwfδ+(b*cL[k90D,DSQ6^awMNBԌ9# AG.1E4hѣF?vCi_9vʅ/sJL6KG㈄p ,8Ui.vA T@ 7Y<\봂z?ꮿ6*ts̜}j+(%M\V*h)hѣF4hDDz֭ZverϫZR^$ TR*TX2ʕ*TR\T7J*UKFtҥ^,m-Z%kmAnvJmm-!2ۢm!*ۢm^$m7EݓmТj׶mucx|7s|ۖq۽e (Y(t=U}ᛝc' 7_%+]ZaZ\qt;=4ܷy99FHx+$̗]" tdRJV5g=eɦ* XV@l綳"Q3x,aC˕6gbb5!"S"(ZDd" B3_5ŷ*O1 @N\'+o<]b'8{!`1ؖ3clgv;cYA( $#$kn}i|\8meb"b2/*#LbEV2 'dT^/6Xk5ދyw:wUo8H1>8ZZQtxEbhF2IV(ay_Ez~/^Q<"kKZ֖" ?~𹹹W#[|.8_[{! ?7~ڒۡ?Yc3vJg> 5l2˽S{-cDCxkiJ畅`?y`ȡMAAd$$T$FBQ %O dBR ,Y [di1!))YKe-ʫ% --hXH(K*Vb$ H%4^L U^ sYq⸚?{>9d;`Qh6hO#F,hўొF_wG7de@.!Z?C[&ؒ͝贾 jn>ۭ/dɊp&!r^mZ%q@q>|5ϟ>|q$WFvnd؄tGCVAEACUPࠋ"bK@Aτ"aH` MS% SEA3bQ"&0CB/w3N.X!1lPPP6lٹf͙7_+z!%D(HbF($~fm̛F ȢEd3 *598: CUJND`E 2R__oӵZ3v١MIICҡ3fD[;[֣fV\ZZ^zَ3V[ wNd& UT## OM6efxyP0C\%pB# |(8xbC L,,+\,,$68(m0p\!; ,$2pᡴ\ L,$(ppm`#´) "((ي+|Z`ZT.s`\g7el39 i4af|"1]͹W___^~f}7~-}|0,!el,,,,W¯ zeXow\Gxa8anx988r9pruJJJA Iɤ4NΈ癑3SW)9g0N_,Gn]q] 9J3w;vؔ KKJ+;9^wSӈOOOON#AЂStaӡ݈3Hv;cGvؑ:x$wNv$wgHGgx$0ɂƐR׿%k,^Ոr_?.bK V+Z|^A,׬~"+XVZCի\0BZ-bj L`k ZE`ŋ\b טE0^E\rZEra\E RTY0ŋU-Z˕iׯ^zׯ^b-Zy0`C2^ɑ/d 3f{&LײdFL!1b XfW0ŋ+؈̓^ZZ\,^|0ZE.`$u\bŌf2el0f͘ٳfŘ@#F ٘3*LX=f3ٱh3&B LYƍf̈́bќa{lJdUJbŋ"au0oJ< }yUfۻѯ<7ͥط{Kȵ7fERMӽ/7W毯/000/{۫k뷚y{7ѣ_/X~n$E>{q{__ZĈJj&k53և&5 [!q&aÇ a3> X`رb6 X03f͜(lرn&ׯpy3U0M @ A! *,::>sj:::9z49J&44/QѢ}F:= &ۅGGGGGGOZp\.rapi8K'N'Gj46߽Ɓ~?r9vG#o&R]IyI־}zׯ^ͽ6zCϤH&l =g>A}6xI&CcM6L?~iY3%bfMpJI1q,frLXc @c2Y2dI(,ٳ,&L%dɒV[id1b|)w&,Xŋ Xɓ"f͙M'Z4)+VJm8dͦJnݻrqqqJS.\Ƃi˗.\˗.\xXӎ8pk8ŝo:ٳiͧ6m6ٱۂqyfڵj+fͧjnլF4$y3ٳf{FjլVjլ٭jkVf4hѣFm'g76͛7?g6lIƍ4hl[NjիVfllfƷnݹxssq:Çe;;-l62$KˣmF4xQF4h=F6(ѣ^4hѣF4h=4h#F4hF$vhqF2@==8^9B/DRAD@"xpdl,,hvQ _xǝѪVk]VMkhѣFٷf͛jmIlٰlٱ6mlٱ 6k5j͛65 f͛6lٰMMlٱ۷MœE+иp d8ƾJӣ]vki]wBkyAFd 0<5Fa5(B8:Qaq ㎔r"qt J0 0 jQq<qsh !) KB8AEJA^A BS{BAq( 0 (E9A JAF!)=z R ^z+ׯ^J 0Oq)8 2Sqǡqqt#88IFaaOqqǢqqJ0 0 aa 0Dah#ac-ǎ8㥠qK@8 *AR_ y{?ou3v}b "px7C#|Ob><& ZFQ9KWa1 Q 7,d̖ GV@LM?տl|:_CHWϪJ=VCD^g:_,u1a)7c.y>kjY@30d ~G?VߊL&C`A<}A-?]vfÔGۖ_ #8?hG^W^t;'.JWW U99JGyVLioW_/Oㄾ[$`pTMrMn5ʥ0㷐K 4 v= ul%2@rʔaE}"c}g.Zm5SUrk^W;r KUoʹʱ=ܨr9PAݛ~w2TGzTHbVVİ_m8sxy^k^a%B P>a~v(aMGB&y m$^4x^ګegUy*Uv$ehpÔ[$?Ĩ05m %nÔ X9J6mk s- OT~V;zm+Zp\T'*W)}IW ̬Ubp~ *RI:~N/)b73E]ʩ7_ǓO,ϕܧ}$DSɳ)t|:u>'^WɪG*q/gy#*#m۟lڳ*ݪ[܍?tC\zUqӞG~y;{z>?g? uQk|y֦{NzW* UܺXn8|` 4ÔZ.@iDѦ >zLp-sS5XS;/ѩUL;>U9,o/{=Gx~ӷy{n||< *$uPҢ)ެSMYYZOTPj8!ڿB[&ItY5d\t==$F[7FD:Yy+|Oߞs+ ɖIZK0j|Q-[ógZjAl%=o(6-(A5j5b/IPu`IP\P5Ң}p =^9KàQgRGxNk!tNƨ|[ʆA)T{x'iZ gE$s Dk ?˹}d̙$'!$<|<΃G>;l}O@[>\=|ϧ;6|\6|=Ğ4$'ʔo>_?{׽?w0{~F{@$h{'?z/ۑ=?>`~~ ݽԾ\r>}s[y~7փo[=oƟOپ??G~}}`}/Ϩl<zaޕ 0r֞ >}Yև?͇^V:,V_IUUKUUo>wgOUP?z=?Ї>q=? ?|#}6>{.I{AÍήNwY3szHs?<)?߰{W?BOS}S{{/ϦϥO?8as[t-m >Ga=0C+e*C줄}:돣מwy 몺WǪYҪmS[#;#HGϬ>!O_ZJ@ëZ@ aQ{[ëAyQ ;sp 0$t<*ns?:M>w'픩B)no ]]TrC\pB@ʦ$ U[v}P/ HW/>AIG#~%ۺݟ|wsZW{_ZY[M})#ry#;:+wsGWS}=7NǧX_dD`o?G^^^^^^t0?)}s 0000002rrp2rrb~7ӓn r}hѯ&ǽ́& b@#D$]ȏ#&4h @54yӧee_Aʅ*V <0}*q11"Dƛ6n>vFުתZrܫoZbvnbiGq;X0 c|-m{xA0"<㻫{k#:̈́"2>}*m =]ejl;exEy /f``a9 f,, LmÇ?ٰ‡m mCK~dŰujx`8Ͷe̻ MAʃB65f6-^II] #YZ&u1d` ObMܯ[Zx^I>[q־ &$8dG%dbeS9/'ԅ@v#{ӣ :ށ!:`9 C.[ʡKJt^DH潖CR41tE ?%lno([CBCՉh g Lk !ZKˁC|1 D5(jjJؖ\=ÄPļYˎA{۠N91>|QnfS V( !QA6TYĄA1INI)2uɖFPP)A3#%1H"` !@!C FQ_4Sߟ~);{y~w{ ^:yrx=w>;?9_-f _vIDz4]u=7\vN*Gè{C^duzu-_%|cgex^^%Ļ]%;\`X\9n3 LolmoAp2.)pXqnW,[8]4-CVh5m M7 Z\ACwtj-ig"nbqmirV(Z\qXBۅn/ WC6]Ծ6ể>gp^'LTᯌL&Y]%\W$LxDK;{ vYAuʒeML, -0/˂H0R2Ze%}z{1zF&ޙQ.yt]u$i$@dexW+FYcbX VEU@ A6rN2!wIy^^y^^%w  ai>zfN'eAL)~FVRNIWH9!62RA>J\KttE"A]!n30LĿL2ewv^Hɯq+$͗2j~[֕x7Kz>qپe7s[{+ Wc %T y pvU[XvVEuwcnzS}잗GroxkXoiYC{eO;j7Pgwwaaa]XczPw?ŵ&%|[s̹#.EZ5-,r?yc!%&~^EÕ{em%vщfVuI") <# Wֱ1e6>.ޙwGǶ0c1H&]V/ . "ȱǼ2sfːTB% ,L۲ȱ [6ϣW[:es2.4hw&\ ܜJaYcVbIX3Ly}a}}%CXP1b۫Cp}'+s?8ˤ9t c9QJ2 ]_;T׻Zkuw[9G{iyYFQ7g4îRM+3d,*}|_u?;gvX֛UQ4<  @ݨYH> Jwޟ_N]syGPr&+*ɟVf~~~~~}\ AhnNO)q"""Z dC7γ{^`eʃ,k`Dp+& AB'Au?|3Z KVpAT4Ik'L2dÓ&CF.C LaƎR b_~x;^|݊XK4OНru}|?:;r. Gk~x>&TU+uw;}e`L60=TNk}ޛ|f\;\\stwe:IT!_8Np/h{I2T7sp5VuqyP`j%RBh݅zBTh >͎e($k i :@Oǐ)8IRJ•*TRYh# |T?@,C`&[ 6  &굙a[/P0+%hbYs)AAb  ]9BD# i PI B#P5snjE&X 0Ko}wjKCdVof͛6lٓf̀C^UOk139fbfsf&g9bhSI139DLM bh&&139fs114)LsY&f&g9LsY39DLM&bbh&e14139DLsQ3A33Ԧ`61141140bs5bfsf&&139,LsYLsQ3A30sզbfsLsY5)jS3L5)LsYI9LSQ35114110f Nsbg3LM fss114̦g9LL 114)k33LML5aJbhS3Ԧ LF$RB39L0g}OOBDhB!!B(" 3`wI513Lu9&e!$ ƾ` ! Stv|w:CeAQnXCñPAʉ6lٓf͛2lٳ,baJ !ɐi  "   (0Bu&͛$6~}r=riV/E$MX`D d[ Jx^G`j.GoO4D HhRqZ@W9&g c;uwsF|pGvN:xåN;$y2(a8Mm6mᘁ E))OK4øuWD,..Βh3 yuB$H ĉ&lHYE ~7[^w }5[notf"H0''k$u*V]joj\O:uJW< oJkT 38q3jPˡ~Bt4p2~LjJBM$6IR<߽yύ˹%+_R?64Q]02֍hѣuF#7RvsSrIC #MCyL>4i^8!@* A&}o۟?ƏsaT3ssss3sssss3ss]!|!q~1D$H$^ȑ>QQmUϢ23_ϼ[h?aL/< S8ӧN:y ySn\. иt\QQUv%&UJ@ YWKASy(19ȼ~ˋ+r;@ል4hdѶF4hwGWTⳳי܂n4cAo4Aє(dY|  -3 >u|{*BeS3J AE /zF`CHpDӑ&UVZuJxi@\`št^X)XcyGaZ:DEUQO3IBE3蝟l:RJ"ԩRH2HV#7nF4eJQEUE |[ tl0Q+~gu_z)nT3KFnl< -*&"U ?;vO2fnW_:(mmmmkhˡ>L$,Kㄯ?|~yz O^33∙nՠ/6}U*YhуVB "J+d|~+͋f#os{ѵ"_A+ϻx L?%ֳM6DӧNxZ#SwâϟMw&"[cL9UטXC{ɰ9~%c nYQQ68F8(QF'jqaCk>nٯͲ#YUVKE70bVv8Og~!Z,ehѢƅ4hѣF>{ۈX~^f_g1v?qYmmmJB8+\M'2J' /`:Y=W=x=Ozۯw4~qH1}etr (4椊eTRJ,#e t;jtmRHdd.BcmT9UgrWi8E>5.Yh\V1WoeDHj?OMDa޹mMJyc^J^gُ5a[gm{u􇀫'Sd>O?G<7cO38+Jⷼ"YYwopuGHea+Ό*lv*:Gtiۓ@W7?c_-]aM 32LNN% =3N ӈ٘V-XxXXTW(+Up lAr߸jF""|M}`֒@2də&K2f8 瞢@wL3e c@hAIlKIS/Z58rDӰ7AY&q? oD2h (cСB <4Ar9?B<38^ǔQho` v˶e1rh 4mimnM8mFMCFѴGv969{ 0NMݦedѓtfwN2mmi7Fd;lfB^vݦfɐTRiMsmMid4wIfuNd2ڶnM#44"ۍtc$CCL6ݻ ;gMrnit ș4L;N t3Bh1΋iۮCtț;q8l6d2hjK '5mbmYۻ'diݧN[0v&dV263'wgNmf7m#gWGj;nm4^u\N]v\kۓmƨlmݻmil.D;tqˡwnmm:&nG.i5M]rfKgwt"LiӺm 6hdvfM6h٧8gvi7M4٦&elIwp&tӴ^V&9/Lhݲ`&c]NDl۹Q'6LFFNs.&TfFhۺiSrg'nmmlMvڍyyy9ytn۶dff]ڶhE]6w5"e׵h&L 14mF;v$9fԚ6bmلm6vˉ2MtM6tۙ&#tm4ԑ2N94C`#L 641ۓ$4M7t٤vjwT#qvݷciݩv6M4i 7nhNNjdbͦ:eݲ:hIedBi]#6mM#暴6\iyg:16hB\fLdMGih&v4X*026mHwL6N5-E6۶͋bkfhM0h3Ui9V&l&d&U[M;fTm#wn͠mZ\ڌM6m4ɓsH45URjpx5I]z_" *8_1qV0q|DXت>Lhؑbƾ4gkop).)+eJL2cĂ I:@j/ "&ej9W~ j0SbrGϞx@>|ϼBhk6>F vͶ bgC0[Iϑeb%O+}㷰%qh{'&͛6n4ٳ&͛7|l*(zSO>|H1I'HL'H1F|b Aj~?kR7TxG9RmT~ڕOk=/^w&r]K{CX2,'K% #mj tiUu| 4F~o,bG|Gӭe `r:Pq.]y˗.\x iϟP˗PC+Gfhę)WhXhDCqOxNy.g_m^fP&E3hѣF3%T0ې=J*T_âYVV6fY b /!Q >aJw_8]~NM7!0QԜ\O'ַO/=Kн}gAh?g +}?}huvEhKXΒi>'CK 3qz7C?ϋblf@خ%3ϛN)1?!|m8% 8" #sJo/wp݆;|16f(߂W!b?1B݀O^bb`P"A}WJ^b-t<: s>9E>DSN24HN6I8v]1@ (PB  ,,aaaaaaaaaaa8pÇ8pÇ8pÇ ,Xbŋ,Xbŋh۷n(#;N:uxGqpHϟ>|L@4M4bрU|?1Jg?3x:=bF|\Ww{m?ImP 㼨E~K&^4:?/ppz B ONL? !tCl_dW)?P{rq05?=f&& [EF{cI IJwŃP*)N۸qvm$Hߛɦ67,(E_'ύ4B&xp6,qHk M ')? H((((((((((((((((((((((((ML-==8(ԋT(ujER/O -78QEQy -0/G;qzנBqV9C[A@a5M(Z>\"/xLpk 3?^7Rȉ]ʕcJt5CHN* X$iI1C1I2Wpy#GӸjCk찅IKĔruKhI&͛2nɳp͛h&K:3ei1Lu2f..-8)TxiZuKZh8rw={|}/ճ<™ޮo@gWym)R,J*T.HU)ԩsR@BZs"sϛ\ei@GWzFחo1ΧWp-ocT9 ߢ#JD 5u554--(c%g.CDKAˍxO+cy_ȿFKAssH"fĉ$Hq, Ɨ~aӷ!:MNPBJ-mm_Z$aBÄ "UW'ֱ 4*8qwGY^ *(ᥟ>|sϟ>|K_c*؊bcʕ&N `^j~(ND؁Z{ s^eyOaRqlӰqJWä-mЎ7yRM:oR0z1)p(%" '2t%N!>/Wz^'.Ʉlٳf͛6lٳf 2/;:vٳzspy(OĴ-Vh  糶_ԯyI$RQ)J&TRɔ>b=GךhѸsfDFc.nnnnn] VZ"Q\`ś {0q;VwoZ>w>S,{!l@NCA\_}Uv=seM *<<0o]oiE&R q,< OۿL/ߙ6=mi<`q~G0CF랾?[\.^] @%yT9_o5738琲ӧeJ:tӧMcF NmTKnѹ:*؊.%h ;aZɒ1|?;^Ou4~ta06̀f͙7lٳ`MF W`p_kߪݍ/x ]!X|Gm#&giri]y2ϓ󼟃k=ϼЈg1a2D`q d;):'pWDwuq!r:8ˠ{*CU⸫^+#8+!grc]2NlC`[ AU358<4!_V>g~>#~_.&l{A0y_}e?WTR:-ԩRDED#L|.kV:pg;:hq Micp]TUawvIJh-EhiޟSo5; -%p rʗ.\rbu8HA*U2q$ɓ&LYb,eW)v5Y+. j3^B"9ͱ͹̲d_m a#Ǎ-}b[湈'J"!v7ݡˣ:%~Π &bL2ds%Lf"?c!"D~><{HThq㪲O] H04 8?xawXMܘ>.q:tfΝ:lӧ}27j~y|ώ!qq|X~>NOvݣ TDyiiwj][[y2ZXֈbr:kj⮫RWWWSSWWWWSWWWv!֟idkk&涵U &z1%EUVJ5!i6|VA2EdH"DlKXQGӑDD^\nﶭ+%J*L2dɓ&LPyooo@%UoER]z `r|%E|pOy׹ɄK.\r˗/\;=P8h"C'̼'OuyG6: %C6 (OB`˿ tUɡCաF%`n6fff^Z9 ӕXd߳]ohuzZ6߁ܯvYާ6 BRJ)ԩR:*;1q1¥=4h(D,AZ [J|4 1' rr-|o=+%[A"q"DH"<3+,9b>I|]]p >n i⊫^K83} ֻ=j}$vzf3jB/SSS fW8WVgHC04dl1r*p9ً?R^U>?Dzz|JcV!usq{yC xjB!I ""$D"PD"* E@X`&Zlj6;eoo_,c[߿ׂeo[è6oz+K:ψ<y>?s+Ww"FQ\s\/IPǟ|}x?=w~NAu]WU's7{c-?{DiectI UŬ@W߾ó-:HlQ-ejkkfAT)ZWqCq$1uImfB*7;sm1vr9iT 5p%Nf^1U!t >SWoqn>fmΚ5 cMA _K$- #D32Y >RsBS BrO 'Xi <$X "%/yeڴi~Ah~Ofg:̼Ui$jZ|KT7M!FۉFcmFmd[.Q$ ::`Jb2r/9?3=78ҸpHAcRK*SN2141pb#4hСB}Q0qXάS5"Zq-ֆY,f̗-`MΟ/scd_WP8s[3^$8} ӧNȝ:t9Y;2L=`u!sXCM b›:v 9#BaP xgsO'K?mٳfͶmmm` 6mml`"6lmmmmlKb[/91x" Fc02*TiRJu#T)bE3P6I P9".Mk {K#{ljQb>' lR CA=,Wi:[ť9jx>$Y x=:7?ro{ff__󝷲קI$>GO?Vƿ%/A\Va3oxu4$'Q /߇y6n*HC VVVk+++»}I",[TzE _Y"Dd!YJ)=6Qo++,l[>So]-? ]^`iQ6ġ")`(l-g{=g|ڰeU_44g3aWqg~sy#BJQBWTq] `q.` fߩ?}osy?[mFQB KR AQ\v% (PB (Pr۞7eOo7]Yogu_Sݷ} |O |lC>sKgֽoW m''a!0 ugc1] 9ĩJ܇ef&vW_o<0}oIp%ɸ|#5^n7Q?21 17;ϼw)ap$Q5cF#LJ?YU_CRs3#|s}ʔz'7r|{N(PB(P@3AeрX 1 f u t+X?O*TRƥIT +CHjP(muͦ3F#KH- HyzsuGϞd?q>yE@ D.8i3gggg;v&af wn:"]Rʤ (*4#ԙٓ]@sabkzߝogz;c6[5,nY,k!2fLr˗*dɓ=fR d uP0DBrP}_|[W8[ib*N ") _[/O_Sn/g(;ʅC$HҤJVAF'$uuu8]]]MmjC*\GIr@$&  1!pAKX-xzퟅtX3W,FV4ldc+UQs$';?Ku t4 ?b9Zb*ϷϲK5v ɝ  j #"2 xI#B;~~c֍C;}kGGEly\u-p>1h$$*,$ Hm%š##!A`Pj0Cb7yǏs C8.kv7U'ꅝ@r1{J;[C񜟒I w>ϖ%d6 #Wǩʟ˯7͛7+a6mX\ )OYn7 Jב+r郏Ur6_?=8/x٨>$O*TX2ʓ*TP* x^%b&eř3\a1C0#%.b aQoBǚR@Άbou ILr$ɓD0$ق"2c[Ӌ#M!*"UvZV7,G)!cZ(/oW7HhJ\QceDY8D[~ bGUʎ8/f>"s?敔qs: I6m۶ov pajOB 2PxV2U{o4t]!c!x[~#װk>'c,wvleK ;i~ RY<1]v6>__RbwgblT/󹟕/脧qZ|]uVk HGj:#60=8[q2xN'q. &7g)w{6Q7X9?쿅vऽ@x#M$,η悭jSJr}vfj\sKRr Qճll| V:LHIdXl)!pߢk%8_a>Lm]>/Ӭ0:jUVZ>1u^ggT%gnm Y?J+`"!53?7в^-'$vSϟ?| PAd6ڍyH4h9F+ 95 Dž^ccWHUoe~_o}qp{p(}CK`V)#"{>!*g@@ `^ZE$Z Dk?t9Y2 @5@MYD" _* A("_PD("2 *#hȫ|) C<k(Woym6|Mu;;`{iKlyu4j1T U/`q"{-w]Nv,ccS=h mdY.^;E*ae(7?wv{i吶utfkӐ~H;0{+弃=Y$Yǟ@}sCN;~ Ԩ^6ïs^OBN&6=].8NcO3f @S#޳=f_Ʉ2LH#oy乴x#o` vƜ :}Wsj/&H[k.;8M'Go:1j;ǙatifP:}ޗ2=p%}/V +mG;:}l\Ѽ[{'Oۑbc4ӡh6gpԡ Ms4YҰN y4֢|ǂNp+)ϐZys6&OJ:{7-,nǸΪؘ9_laՓ3 5[6W'p˚d|O%.k }ww7ӷ`a?<9x#>z~=qS|ְl}߃O ]faP^\3H'T}.cǎ=GN fc[PNxJ"xG>fqQti|Ppeكp"=w.ޱ'`죙ǢM[L4Ծz !G~!CM֡4qOzzy1ѿeP| Mg~GfY"R^OA˞\eUN~_3?+~ƗG/ x;^ñ]gG =g{S\ҭzvU[9T9-#хEυl~o81-Fa ©iTw}/Eɉ|JnEĹdxޏӘONV1Θ~R|u_֚w&3)NH)|~2)9_LWu9eN!twƆ ӎh&]غ۟Un Wc:S!O9v,<6eE:Ņhng={cE/f^9i?M5.#絍uC93xOl r>e9Rmn] sGW'fjΨ+Ӟ_eht,9|WeoeqWFBԻ۩?f31`Ʊ\\Sʌ➣ƌc,;{,Ɯ5ZWL|cWލjq9SOg)d DA"@ߑ/Am@$@=DTUDAKz =gA>2 rȂO<G#~Go{]EԠqKXՄsiۏ%#ϒ.M"ҏ\t;i#C罹XcXt$'[y!%[07=:_9'wkeyyT_z۷iJ ǥ6OMCl9߾=Ü=o\lCzW9ד9>s>oas6sD{ uussrl6hX|A J|{Cr>=9"N}sU+?IQpc`m~nB}VߴOuvOK~MvjzsӧiO&\]smiڼT3J{/ckKTB6v5[ԩmj$>5%.}w+ k66+$eOX>cu~ W+Mb&TH=v x?HNs:#S"'m_M~uNվ %V%j_.w(ojrlKQ+mQ4Q)=0=O&GFgM4ݧO)S:x 6m4'vޜi=)<yuWo#z <@}0y{$#νl\ʥ[s_0qoSG?lca8/vzN7e @o;}WeQUTtۮgNEO96F1pgӡM32z]t=wM'MYtZ|}_ AHb I3zL--^R SSO /̎3VV#?:r#aE;T6A?xX`_> :c:NO̧9o{G> >n>o"v@};ss?h~3=/w+ف}=qrp!\E R]H P>뢲P!p̆i]b.̞z @y:8=_'\0C% A3Ni :S:O!=jN'_9*$Kwe7=o|uȈrzroAD1 2)TyITQ xƻljB4ؕXs(!SJI#;wvPåX0SMy\"`Sᦛ᷇&uzAQD_ݶфĺ0<+ijVI 'z?G詶!4dѾUZT!S2MV=>x߾7I3\\ϢH (+$k58$g} 6ph@xG`}>7 U@RJ @ 1 -Y}tl㎻ rE0Լ'@zp/ݩ={h[nlz!y eJHJQ@o @@HpwR%*eV6Wp$ow;20ݏ{qŦ2ښ7vTс&ڤ6ų}`UͱKYE JlP]x((wXSf{i%w5)E)#őRRjBХ,%9^3`ZPh)@U$jhxIZK|.)RKptJ R'/x( zTOp2IM2a@ &F42M4a&j44ɞ#hH hM04SFjQD@a4db4`#F&O  `&M0F hd 4 2&O@ѠiA 4"Hёb)e &$`a4i)zdѐFaOѣdjmO 4C Iɪ =RF#l2hɣ#M44 14FSFcS5?(Mjb& fIi6mT!2ODѦ)"4zIiSɴd&zBm5MBmOMMMM=52h)Qi PhzhzSҡX+UHTUH7M7߾o߿~ G^ ;7g.wy;#KId 0%KS)ERujT<:]i.:N.Nuuu:u$ӢUU]>Ln#UWKN&O5W!( ۃwN'wwwwu]]wuwwuwuwNwww']t9ݻw] ݫ.:uwurpwu qӧwuܝuuwuBB 4Ej;UW"*U`:d9@9s< }AQUEUQUUUBYvwv~w.I$$w$$$$仹*%%%I$圹w$XKY.]˖$I$,JY˒KKǞyH!!#]ӝw]w<ٙT*Veff.$.\.,.IrI.K%˒HrI%ݝ;wpûww ;wpYC++++3VVs;뻻נ+\^@:A@hY`mx,, >C#4{}7<Y$= >ʃ%AdIeOF+"`"d(2YS?/w=.O(WAJZQAWcջc=X7hΗ=3ΉX^9{AD2`dʼn,XsqoauV͢%`gԦ4-Ż_cֶEFQ`RE#ҧ#[*V̫frb\fjߔm+eqٵ[}6I,q,,am20.Lqa ґ[+@nz"h2eZƵm[kUe2ٱ6eqYb6-oR]~6L)[i\FU=kSZVɲ9Er+mf2c,e|kJR ~9ZYJaY5+0ǩ61r9V2,fpfiB"2fX#Vf0,N[sr\.SN/kmVZgn ׯ^4D[0MexYoѷ+7pLimfŖXǂ8~{ne~r_cw >s M,׿~ݷ喽Xf޶NCpg ,ڷkc 7m7+aFX+nlv718 x)sglh]. ؝vpg{ww奄ln]h-|ac8/Ş:fK2wmpV֝vn[,a8[:pmzāg^c>W_~:xǎ}4߿?c?l\g^yϱ>{ϱ`={ 㷏66vvvvv7u香tM774؍SMoP؈;;;b-ښ {¿y"HtHB rAB pC#Cri!@1 !9. 88pPWDÂ@AʂA 88KJG羃s SfT|2@9I!$Ɓ 5tBq8JԪQlFRTGE멷871 b%I!-A |-ٰͤ>מ7ŜL#mH1tL'@KdN-{{r|9acC c@ƀ?'??a9*֐k!Jc106Tݐ  H=8P1BK\ϛD[ :{].++Viihժ44hիIe߽Z+QF#qb2 ZiVZoܮYrܷ+rܮ\M7j5ZSUj44iѨҵ5ZVL4-&UѪjZF4Z4KSUj5oo߽~{~iZժիZVoe~f+sCfJ"پpQ.9.:Su(QMJҵEhR4ҚoaOn4qT7MDB*RVUD Z$8!(O2$0P@c:pbIO>F6H$"_d:~&|t0HQ&$@lM2dHR$1KM<盩ZoOu5 fci@0d HE6D iQ i_q58.5k˗qP&jD8I=6--s%1&{܂JP#䑺D'βRHL O\qIμDxu_2y?'5׋t%m|ƺj_/۱7mOM}7y^Up(mxv_UUuUzq]s.֛>[of/Fҿ;.~N^^;j_k>Q%ʻ˵M\:Ji~QzZ_6w]ess+۾@8Ba yRvP(skvB?[u~uuJ<缻<_)wwZal[%)I†a%?#PJ;ksz%߱z5nwKC/5Ȕ_=|_e.yo^띬H[z~ǒu i> I4?Δ^\ݪswwm]ε^_O-:[o;j}cf 9yWULGyxͷs]Mo77m]5},oMyMWǒm7WnE'[u㶧6ӛwݷ$!;o^^myޜ9LͼT w*;R @.M1#;1.m>JןFz[>v}ζ^˻wES|s=.6ݤNom9# dDD"]BI!v|`ܑ@B_ïS7$u$ײG*yIگ8X6U|O0|疻m:Diau|蔷m}Rז=rdH|.7]cWo󤧖ɓx/Iyo7^y+zu-= v<.{)[+ҳd_mF軷wyo+˶Ąv3vy^^7mNgyلu_jaڿK?m/6Gmkw{6vyܼnedv _Czzc5OAF5=No˩U6&_A^Hus\yKm?&]oduN ]p$}l SL:צauw o*wkΉywOMk]>$q68qиy#1X㡴~w͸*ʀI-BB@0?Sfp_cݦ5QD<"` !+HW)턒tIFBD#I.!LP7.1)Ser+eMQf$C lf)qTm);ݛc( l`mL͋j6bb I:HL )c8ɰt@4*"HhN"dAUTN$ !I c,5!JR$3ch 6* :lnԔH><|LW+UFJ*ZV4CMe\A=U4..pGoVsj\sQi4h+Th4 &JjMmu#-Ҡs%̗19W0sW0dsQi5jMҚU5 F5MT,˚3䳺2SB LQ &J(%!" ]_x}u2bV$hrfkZvɩK(6 ۡwqwruݎ.ڻ;jMMhjM4SPjSD&2b1 WxqYllUʣmZ6X6 CHlVRHlưie2E_TUlěM6$@VvvvveznQ=TdR/4J GF2!MT&A~@fBH3g9leuFuk8ϣ_5[scZNB}cUN7G}99z>/P|ꯏ?';s}ha.8(CévcVY;Ryӝ*΅[umo}''xsh/3.ygh~?p7]m6;˘ -Pw%RC}W_" z7!D/|鄗CeP{??qBHnjDT`sDn[Co +H;ns qdydwٗrPf*-)@AFHHk XWM5 ^332o*TVbY1hj[cVƫ=H ( X,rµ$]7j[dp;:1(!AfQj(hƱTZŬ*Q*4mhضEhűXQ13qT?eŷ)o| }cŸ[r=Ar >/Q+{aC7g.&cK۔HN8Q%3:rub$R.-VOKJ\2\Mtt̬>SxyYypyViC\JXt!>W)>u70k3A3Vk?rXB Z|<^;yX$ @@0վ\@@Y6Str48'#9%Yb$)I=e*mdZmsV_$ *4ٮG伾OQ"%"&[&;.gTi)O\TpIlёZM﫭 m}/k4 W}1ӝzr ]'#wxLۃ݇>+W?Q[`c8>vDx9ЮQW'ecϑ Hx'+}%7sq3bbbebbd15B3*"}zO_Ͻ78}W l@޿hwH 7ICjp(ڛ]~ͮk,HHE$f-_s\lpu@aaUAU!X–(:IϋgB]gҹ+HAB@3uzm۶F']z7mssț_כ:ذ#﫾=3|os+j9tJ%/y?څB-Ɯ=3': ȅ RD-Bn Ƽ:|yW~lzo̸υ,_oλoVK0p>>8Jf6T.lK57o߉vw9 ̩bWH!"#yv!V!?$ XtA  w|xOA=CYaee౸LTH)$R(F21W$x[t,DDn~y<I ֓maͱ냾ǟNsԪq?5<=KiB{xNf;zk8.y5 {Gy6M dCKpy ϥT I~t߁CRfҤyE2pΡCq[&ο4nvDcyǢlcC'*fɓ|Ml<=0u7[^+e6 ޺ȝa~X<=-O[L %s9t4p&p:K>"A\M${K-^whrAYBI$XB8gwCoHB}!@~2@F5 )s}=tͷ>ܺ]/{ίvxp:/͜9p'.I~.f+03}<.;_?S;^d;/,Wt+X >_'lIe\85gg>NO÷y? 3:H!K! H`gRcg ڈZQ pڳ[lVb{m!!{VNiq[JM#Uim 4FI`yhh6MwěޗPbW`Z*InI&TPD$bu wiS D4`i,:h B$*Ў~cn.Qw Ǹ8jswǽ`>/O2޷޿vHAH#dxYԹr93(Ys%߮:Ұ[qWtg.-(J~}z%s4ʡ8ʙkW1~8łũXib%{$Zy]}]ׁ继|Ϡ_E~EOwUG߀XmZ Mqg #Hv7ֳN6T(&S+0YWUUi\7 ] 9/8o[o8&*sp/Fܶ%nm䠊X4u?ÍᄑfWLF\/e5Mؚ}!Krߝ-;N}NK&$O=S 4)"&=,7أ:' -(]ySC#%1XɀV}؏lW6l|[2*KcgG+xbd`y&ar(D.RC#+2e7Έޯ2w Axyٸ:O#R\׾ATwTwĻ 3}>,8M*vVkrz&MsƍNO[5:!(;xuOY.y^o..vvvvvvvt,2[k JW{&-8CwLK@x?ZMZ\܍<<[|\_^]`>ӏϏt[^0>Nc9vyP} 9Rd>~y+sCKţGRƥĦe#ɓgx~;6<|m,ll BoqߪtI w 麞뭲Mz<?VYH{ERmk[]kEgB0Nx38ΟVpEɉAe$ b NSo !.;{қ%ϯt>>'s<-͖~'^o{?/q;'5B߰{u+o¥o' 6V7y "k_'9t} z۪Yypc22]xg}&7?~ilܼ͜,W0,D63qƶpj`򲲵Ml/\tvw<,8T'ɝ΃<7ڂPك?vFFEzw⽷=""# ,|9K˾T iGmC<>2!x* 7tt}'I3:NGqpzNL+%ْvi[];m4v|D2L_7{|^'Ͼ9q^p/ݴVٮ*mk?M>|$ ɏmӭWN hΡ|t7z%߄ <rge ȸat~~FGXRŃnoc66Ċ {if?mevl޾r@B+mYs>[&mIyCm^6BBl {Pȿ?js(kx\xC-BX"LM47;!j6V#DЄEz?f0϶Kw{O7c$?'c<"4;.p~G'^ J|z_Ð҈<;(в̻ ˩ʋb{'bΜIwU)Fx*ehe(].:&5tZYfeYspM,Rcڸ^_NRw uEZlpT5RK~960} $Ēɠ)Lq\VӃq[L?`ZJunco|S+'qux*t}'It'I^w~Y-жDOoUjәP `fBp2ly;c7yD{ W2sm7&ʭ%@$@Jd }2>?{!}aL#83l&C&)J7J 8""})jWC76 [ Ý6-_w=s[Rl $2u.24 BHm1[fAFEMuv7zoÎҊ"00|QYUo<;iQ/'%BcN%)s2_t/_7I%zĖ r@5h*,c=Vux¿|;M$d!xOc)}ٞk8mR*VrS7?.]}ߺZ[ǎ$/MVVN뮺M? 0FP4@ (B&PI 0&A! $`(" FB ĄHA( ($61fb5EFѱ~IcFcF6-R%! %%F]F&H`b4h.nƢJhKJmFرF ),K܊f+"j(-̕b7+Ab%[m)bCcI6EMp}x * 5..Юޭ,=B5hRllIlc3RI-L)$K iWt%7#g.}G rB@ "0pPM]G]kI !"<7D}vUx f/Y 43x?d.C%fof@I%rK 2! %щظh xTY $/@|%$^ԩcw׊ |wxJPx<;==h-U1HEԤXRB/w-:ǝ'{a?཮dA1xS3 X55uuu) D"-+c6+;Y"7cMU,Hw z+) #3sUOt^,;r0AKm,3 .1K)& IhdLHa#IcTeɲbZlm6nap*$$l1߷d" zc5}>^+yggggggggN&bƼOl (yfs TYJB*lu)P (aC*1~P$%63i1  Iɐ @@2&IJf21QFP%4"  FL6BK1BXHRiJD" I "BIFD%"I@IH$`)(#AI2$@IQ)$DJP3!,BC&Ra dHaQB,I%͑CI J h2m|Yq^q~wm:NF -9%JWEP(UHAUD@Q~^۪w>f3,w)`|a d-ZͫVZEwKx9\$ljh/v|^nCY|KI3V;4ZO;i5i*`it׈i.U;( x9S%UY"ze qI LLI0B`|f$uv^H"Ēt5{/o~!#`EAzzAwm{,!Y,InuMvrv}ySV]|s?&s1{K'ĕu=^Y6-XC6ΥsKu}S pɾߣ[[]AVIt^+}!Gy;H[w+.r۳omZY4`p/@6IRPmAD@&!$9(EJ()HGAӓ%EUT4u.<* j w雎󋤩&_ֻSqqq Hx>0F:ͽBH;4iz^:^HH$k?(e>{9 SUJR9iRRifǓfhsKUQБ~K۠&R}Fl!"!PiW|:glFUn‚Vyt3A|tyQ!#=he=v8Rl=F6a]7kÆi_Ly0lz];_Ѯp ̝kDlJvvzÃ&{c541(1F i1EcF h`ƑF(clT`Ɔ*F i0cLQ+c11 Q(1FFFMEKFFtQt}N1+b6bQbQF1V1chCm1EcbQm(1F(V1(V1(lb`ƘXأclV+`ƘXأ4K0Upp[Sh0Z0T\U0LU0hb0cC4JbQbQJc(lbUX*& X*& X*`7#f  f ـ bb61Um1+b1*0` 0cC40cLQclQclV+`Ƒb1(1F(clQ+0cH#4#40cLT`ƘXب V1( 0cC40h.ZK嫕.Unn[f41*0cLQclRUm1*0cH# 1F(`1(1F(ch QXأ4b61bbV1-@SA 40B4ЦFSAtj:1Ѵ1(1F( QF1V1NWy^T?9d]vvQC TUWO0ݪ m!bWnW`;5I$͍VoTF+ɪ8 DB`ݲD6 l6M6a~a6PDBl5us7-us=v|󲞖ۮWn+~E1]k+u[/%&.COCG؍6\"8dAr(=SMI3.a& +E54/KX툅 :_S]0u. `ְkfGk5iěE |/ gn 6|C)/碒]͏]Bjq÷zR޼gqp[ᗔ0 (ڵ:ಥ멳`@slowv{wj`RTRT PeBzqR zviW.wh@S-ˡ/$qatUVL,rʄ*'(R"L "8 E7ܧ?6s8,~Di@n#Gfqh/"!i  g:Iu_pk~qN#l60e۷X(|=yMub`FaH Y,.YdA_%IhѣucuuYzQz eα3 al|QE̪n@}SR$=xCC8O@ 25 gu--,w=/ >k+l8ͨ"6Fe )0l[cm1[Qmk6mZ-X[FX[E@/P/S吉46sWq+gopDh(n:09o>7FEӡB zHaa[8 DDDG:Ͷi\r"FBv=>~M!Bq>Kӣ; .c3N*oiӧO&3Ɗc=(С}CIyHdR1ʱ>wnLJށn^.?'z/9\?:/G C~?QKiO*t;ߘj#w=ͭ,^Hz]ՏwW{g{!sؘgVåcW}_@q_C uU~$^RH0FDӴb}NDSku[kuߋ "Z=Ak|=wiM9l[m}kI)'jA 3UpXG.ǚ%s䣾OT7Z_ #:-*%֨WWWqջj !iZp49bDIn N66o< L{// @1],GK$K/"fĉ&0,O)I21VX U$lUMm!=:&l|ӗ777RlfǏР Nێ ϞcϞO ~G2Z. n I 6h20'DFl|?/_f@#bq8:tӲgNt,Y!:پuۺtRJ)b%o=,\^֢ u 5inǭp^> 1RbfTkkB֋3Y* CI nn55553u NM UT{Q=*Kpc!0lUjp[I'١;lwd @-7BC-f/&L#Uvv 'e-lٱf59lxb5+Zhȵjr%Hȫʠ.ėnV`Cc؂KCC?CCB4O!w-X)¬ka;ofY{GuSS0Fl7%=fs71whc F [/3#]86zfy#SkhTeʖl4YR͖*YeYi,K6ZK%-K6,6+i,X[ ,Xh bh2cF chQQcƆ)Ym(40R+1 cH+F 1m+:MBSKKI4 -& K-|bɓ&*1`ɍ.ca01ɓ┚ɳ[ ٭&h6[K*,ز,eK6lZTiҖZm-)jE,h)jՖʖlllm,YKd855)q[T]wkj4` (mJTRpFhQ(Ѣ(BEIZ(QER.3\"9 t鶅2:nSPRTf;Em)bզʖM5)IW궓44+I:sI48Rsͤ'NNY1II )2b&M5IZ&L5Ij*ժnEܩܴI,K %IbIdeK6,Xa{ % Xa % s<1s|yge6ZMgehxkʃ{C{mMLMiMiMMH0ZH$ Ѽ\ch~ilφDH )i @X ئIhlUSyѶbѼSoomm }g!Mmek&A V- ZhRզ*YeK,*WbÄ1f4 S!2cI2bl&LYs 2eR@iPMpUVcB+>?s$|gכ5#8>>ŝggWf߱YYʣӈb`QEl I *TJ*f a8Fx\(,! 84A 2U38Ra/RZZX%[afv=U*$hIAAL;wN \DӜ!ZN&\$ ;mb(]#f*6LʤU!)od4C`NC Q %E"{XJ⠣ܧѵ{g򽅲1$_6#L " -H0oEtYl3gxʫ+쫗llJY>ԫOks_5n?Unss.nyAUU깵Kꪪ K߭g,_P^[>w g}5&$CPC\mLi `ux}+9NRVc!l+ix."i!AÏm07BD `]ruݩJ 8%wʱ[3zh$ C6(sSRna;) jM}¨ֹj4hX_54Th魳y6A.,TnP D}[߷[0Vk?%}x~\׋=B@ R9ȶ4$#HtMŚ՛Wr#Zjլ Ɵ .] iwWWWV`LCJ®R8Dqpʠ[β7ya &)wtSɺN:uQB=0A8u?oj%=E^[Vt|Wfʫ9N@lNPD7w5|\9ܼWq", X `W?߅dɟ 5{u=k,]a˘а#ҝ@ǵ?;Ov)8.i&§ոfO췧NƖ_|O~rZu:+zҦЀA ZX*@)ՃV6Zj^u2z Jg-[ygOtSdɓ&L2dɓ&L|~6Zs%쾆ZG3_GA_ƋV19;(M^vC*W|7qp[_(TxB(M9[6m-ZYjիVZݵvō( Rp5#aa•! "Td I2e`@R71\OEWWQ@ .a"sw^=󸮬;o {a>舋ze_0:@,+U'hcbq-oщ[,"+}]ޯ8 FY̟K~ v7/WWW񪬪.ǵݪ>&8hpa ?0҆Vha 0!a UUUUUtjIUZ4{ۚMsTYGˇPs}kcõZy R3d؄bu҄5܉w+7_{x~Ww[GVM TK:-.e0!xČmܭUE/>nqW~Vqs$0 S,BTC'ϡqsB /=$tO.-OyOU{?mZ ZS۷nݻt `20T?=)w  <{ϭary9=5ys7a'Ԃ[LA֑RF1he_{tMЈ"HDj?qT7jՐJUU[6>+7].h/bҾr~O}gvg2ϞJX׶[=jrE XJ,X!MS{W{ZVE&y渷i!eƊ*law70l+gw`|6<#U]1&d)a:3YX? Plge-Af0cV룒Ά941x]WK\lz`emٸ? ^ootl= sEo"pOGZ:ڇxdsm mLn}xH4IK+QԨ΢@s| qHm07}ܩ?[8OV_3szW׳$0,IUp"1M$wGiT3E.Ti"DBHM4S4M5bM7XibŐnM6/M4ME,XbD,X?hŋ,Xb4ab4u 4M4M6Ii 4Fi 4N4M`iqkMi@ii84qq<< < AEQE5       E(Ej( GZ E QEQEQEQI$(EQEQEQEQA@QA bt9݀G=C?7z{ϚnCCɋ")"Ŧ"ŋ~v>Wԉo"W'?6X=0ζιZ[*bYQ++WGs'uTI=?FlBH#CZh˼!w9ݪ#|{nB2/CKpmH!v_CT\*J*JBPI$ (qER%(,˜, /^YeaDB,U 6xckM4c(qqOqyyA$"(QFQRQEQFRT &i(SM4ӡM4i&it)i@I$M4N~y6 4f)ilgSM4M0FiNu4Nu4M4ӝI$I-((K`I$ zI$I$(EQIkIQ((M &A<<88h<<ϛ88@q04qqq<` 'C򪪫9g/r>#=MMOxN'p<o}o>=q~;m~}EEC&Z:zzzzJJ::=h* ]zzyUUVURTRɓ&G:D$H74hѣFFM4J &i:ɦ#Fi$M$U$I[.Q;nSN;Wwq5yyy۷ow 丐׸ UPnw;Λsw~}m~idʟ)OOOOOOOOMMSRRh)))))(4{,el;~~}0'czy,ggggggggv'g`NV ` ` %!(8J<ADHI2I$dTʐYeYQ,vQEQEqqqqoooooonI777\\[ۑqpEŻ..}qqqqqqqޱpfK' X>n֓XһUoq겦VvoW*b=OoZ\WT|Bq-MWIqd\lfjq]U}|LXjwа,,>{ CFaC=hѧi4\ѥ OѣF W뫫vv5յ%mmo[+++++?N OO]./JaWWW'i"Di$HVD?$Hi"IifU=Oca?U3`$G(Ѻ|_K?ȟKÿ=)2RJIVQzVafKeE&XNn H I i"M%jwEi=šqbVH,Z@gH.$P\Ӣv̒6{(Gz`4*8=8eqeT\X+fC1#,%>kv]W'MEeT IlXSl*mF؄~<^k} G~dm,ﰟ̉Q $,EɊ 8H(){}F:F>otuGbVm ,B96!T; lX.cv;c'LIn1Y1hIKU}:iё+!`"!OSVWd0`tUQ66Kr`HYؒ/pBsDG)(2+*9mO{}G'Ʌu/m{!)now9;;;sg9-u^Npn z@7KKKGGGGG8HG' E˽@&HbI4z4ԿշбYce&L2dɓ&LK-O"O>N}]ѩR=JU*cnOשkkgR IRhgN€NbY& I4,H9H bIY׵Sp ՛=6> f,aCMrU@gm4$glZg g{=g!xh 1%4iѧMJTS=0?L8̸-X¢h#-%[g/y[O8w-t9MvXsbdYxk;⇄A}"8S8a7Q[nJ}>>u[64=yȈχx>>ǃz_' >>b\t?ϴ| >_>KB6mü[c7-0mn?sVEh[4`ZY" 0F'ySo kw'Ot7B! g{ώB fA(@Ɇ(n|_ _]u3)f 8k+E]J*D$&&'Jbn }^ɬ2xIއNGe=_} [pQ]Xw;soyIhH$e(Ü޷Oy66ۗsi0sAd/BEyKO#[KabY\Yi4SF_#AuHd_kKr "U (,h4 0A i&.Vʼ ͯlkeJ4݅\ΰީc.auqvoq38̬1LXI|T CPjƸ uw ߱?Jr&jt p W ~-ܽ CI %  Y2)d  H@BPJD  "@v,X&$Q !Dy$2C0F "<@ yDP (@HC$R`$  C3 H$@$@ ~x  L@f@ L D$"A (@ %"d`Dt$J @ BB22A HpI IB(@ (D 3 @PP@  !@$ABB) B D(a!  @! P(`b$$$!BP(BA (1 H E)H \wdȔP!2&`B $$$VD@QJHA!AHI2bDJBB@H@$@  B62JH E4XH2B (Om$! @ ,!&ILI B!!JB@H"(PزUd (PB`0D@!RBHHHNXBBB@D@0D@JJJ-R!@P`D@(@ JJJL(PJ@UHDC" @f@-уU()AA@Q)0 J҈""E&DCrNDN @6,I&htwr-4QSt(Q%-&>ScZpqW'=joCR뫩hcGK4u=)ҁ@;"ER c@J Pcmr F#q[p8XTUUКz5~7宓zo unw=RH0B 44 N9^K3OxzFZB ܘmd[7w._ˋg0ԛ:dEE,A>D kA=4OOr FfBb10ABR0]}lg {o}hDA8åA i}o(J%R.ԚM#Sv#?<=}O#༯4xs!~RIfx66564v-laIQBV mrܷOkccb61V?{)وn7jFsw{Dx'{}DptչM 4.4ڵKDaOA)̨{'ֺp?miYBzPE}p놫8f,feU[UbߋY,sΚ\,+u\?[&bM7#a"po7[7dR2g$)&~~zh:@GJq75{6N}7"&}q|Ё.&.jKkLSVb5.#m8//\-d&WbP["- h'Ay0'MlDKJZ-BZ▅4`/CN()X%ZnIf7&sw8f`) )f7p '?wöD [o7{ׯ\nD^ o7H4H C"D3Us]6T򚋠PN2_,1Z_9CFr" NE@1Pb(8&!1f|^~\V˫MC_zw=9GOvͭ '7Vˡ3d3M  Q/iF{[\?{?w`ݱfmCM~ש*wtsw#s'5CCq~d\8㤎=‚鵣9[YUBXQut'A.:${*#6^!:Fk})+dsYu(2@'q2'r3SD ЦS($ܥ)9j!pVCQFQ1]rAZ(R ) ]c.qu.=B?#g:CJ)*$HlIkÍJJv0LK!BLfxl4}{Xylp+"i %$nFC&hDH%nPd3DD΅T aT6E/DDd΢""dQ}""2_""+DDI|j""DDEFKDDDD^q^ڀ/jz舋DD_ ݣ%興Dd""DE""/rDDE¢2^#%""/j'^{dD\DDDD^(z""/Y{FK""""/r^/jڢ#%ڣ'^/rDMW (0أJ3""&p̦[u<8,0} w?P^:$cvNQ9yn>U圮SrsYYubU"k1_J%P^@x_dm}m>9boV dY16?<8!|mɧ[j|7!UZ`RǗA1#Y JЫiؤÎUu5ҖiO74z~;yqȊ*:vοs r3\rwwS}S5MLh6Ll62D|પv6?;OM^Y7ͷc\=ǡ?æAB{`;d!.u. p%Ȍnkqm&7k sxzڼpW;:i71 zk+{Y#hh&^07o7yΠQC BGlnI!6o omV[[U"eekx~X-IϚn?_Gy|nxٝgӃ]}۟ <^ 7۬u#jPmuGQuZ]GIuqj W"WA ufLƧr|/< ߼o/P=2@kkUh"ںt_'#?NFXJ.JlС*I^,zA/<ѿILni [ُlbS)09\#C$<"yÝ@N6(LD[Б-cƕ,} fԋGN/.U29àXCn 3ܯ‹U|8Bz1 ϟ:45+*URFzX*5U0EDV%a_hlnP)]wt|=y=nw9UP$5ʒSA:f'@Qej5Ei^vW1آa!Ub_ۨUʽGZFowWwh۷逥 8WnEPBLL̊J3 A&bpP(~X:q.6q湗svsfZeԓ6p|,A@@r|?ztRb.!.IKro^-,{o1z_?]#AK{$9SslkrJk&)>F'/Ή3E$G$> 逩ZAmSCgb&[K^~Dv9/JHAY5DQTʌuD)!d5ƞ]^E 7A)BȒP"qXtiȘG"NQJUz?]_1̋3+=Ua}YZZ%lAeBT\**6V`\5\oڼ0 | x3}o~L- H'T<Ф݉e:_=>vbfBDI$DVAa($knv۶7]^,0cMXJ 2Ryɹ)7R . /'/\+ʻHZ)R69|5w79o5H[)g;unn(YVljZC۴n'r]?|PRAA D}]YK_wszS"C\d7jd2~jZ_˒EX_ҥGnooo_yz*" _ z jB4@;Z}>n۶nѷw|QN ~~=%\$6Uʹ,mɩKunB&jdCCdEڝ?}6oC{w :,b,/FR:~b`qb :@9FI?7ji[ʝN5ud J e&N6~$DL(it]-KtZs& &A|Ss_ckkkjV* f"ͅWy3A DDp>iep*&swN8\IÙ×3L:tӧN_`_{AہFա||2{'7bS(O{>vTsۻ<'& nM4"G ߟ'_O~q6=~I]"%"UҥF*TR{~49m""&J6J|HC(]ݷ9pC.KMX\4C 1QQ8@#N}BErNAp\ 0q*0 A鰑!9 $L ǂy#< MdWhy#׻Gɑ{d7աz^Rlm/׏l ձl:7~MhE8LPG.OԾK b9b5fYZj)}g۠"6Q''St @jEG@2%{wt/؜}uwT~]6oqq?O}oyx7^ jŋ6,X^ŋ3 \,,/1(3Pf>MSWOuc:NSUBYt=Ni{8>t{Ձt}R}ìٻ_Qocpt12+1c/Vc2ؚ7^z!FvW^.z׺@лez׮ez𐣇]e{(W^vWwvP^z^J ]ׯt%:׶BvW]P^ׯ^.ez׺BvWevWt ׮2Ilc̬˰x1JefVcY(`2 Lc1HNefVcˤ'ݱc+1 c̺ 7lcz.{^&5{x^DhUځw!nnnnpM{{{{{w(l]m6Pۻ۝t6Fg.U-m}mmmmmk :յuu24'Vc1Bf2ˑ']21B}f1ct1cˤ(2c+2B镙Y23(acqpMc+12(cp$1cYx ^+׺ wl^{{~!^{,e%+,WbŊ,Xb{5 (n9QBwAoA@yɿ1"͐"` ܖ#K?]XK%W@ b?P -8(*F en|FnH[Zk%46:-HvY*իVZrÄrE fG.Q Ӻگ^V^ O "[Dۛ@qDwnH;f&t()@_̏~Z}3 1E*C{c[p^SpS:tӧN<B"_!D (p\GʥJ)S0&vbBr{r0n*\M659*}2-:xkb6n$߉"a}?/ߍʽ|,Z#9?*4=- =VZjիX!~q'-r8NA f kjT`z!ΉWs%?A !4 ŶQi*mEFFړk%-3[SLji@,ZY6V6V5iKk3k3k6A TOE $ )J"Z١"4"~;w$w_ξU~/ɤѤ7lٳf̛6l:/ETφo_3L[̀A+'W^z׾":0;@p7J-4hQ))TG3F h=Ut2 ԔNJ$Y[_=GwE СB (PHf* A"0cQFJ4pbc7[QvT”2v)_\ >0@H D5hmp3 Kb\G]'A *3es8tll < L Hf$Ґ4e(b5fYk5Z֠h4X!X愐s ,S0EH 邽/j\i^6%$62PDB0A C-2 IN-SCL餙zd3cw%X0EMAl0S Jm .6%00.wwwub4!TGÖk=OndJ**TRLiYY\"f$sbTV QA7%o{O;Cm;:㡙|P_k-OtuMc~~ަ[OXA8M~^L﫝 Z˵ _kAش{z~~Wswgzԑ= !UϡVuTm$0ɕyd,@^^I˦JՄPpBl\ITDvB?ȗ+ވ"nK?9xXZkv5K,.%uu +;#˺ <7&n'3~TX$V۾򳳼Sqsjggg7X_-*譽¾~mEhoպtuu!ӧB=xkKMtKoѿ[}m/#N:"N-tiA_-mOŽ[p˛7+lY9M˗+V(\p+S9m._߭Vr:Vw<[Wڄwo/Z8[yx÷mܭ[xÌ\8˗+\l˖V9ni[Zݫvn6ovٳ{͛ݶ[yuxjM[vfk[6m-l#Zu[ƷMo+[ssvԓ-:m-ݹ8pi[9ZKk.[^ru%-nkcV5*ޭl˖ָ9k@峛-޹loNpo[rkk o-nջ9pzV8Zi-piֶ[yx$lWWwGܜƷjAuZnf[6lڹV-ljWnUm*jݲnjm[xktqxk{֥x7 6rܟݻv[lۭlٳknjf6pᴅszKg.Vr˖VZݻW 1cAc?c*}=$ti((('gӳ݌!h(~CQQP\QeFhY]QPQQeh(*<<rtTZ]QQh:<e_l[R7l)hiiu_']{K==8BkX"/__Oԇ͔0Ҙedte(ʵ%B !BҊ#I.c'ӒQ$*qEed (I'*I3HÇ2~_%ǩ6C:+5mnޯm~ٱVÈ9sMpÂre,XA,Xv]rsss~ֻ]!77p-~ ~^N_l6gggCbK,ObŋرbK,sXbŋ#Ub0OO{X,Xŋ#===N<hNJ+}6ERe,0'7HR%g0 0 J$Jdi#M6q#:Q8r'ҝ8uӇ\(>R9>p=8q8y(ELQEQEU9EQSʔQSYeZYeYeӖYeZNYe8eYtNeYeLREYeYje1eYtREYeYtQT8AAS+8AKpqzQjaETa8N 0 5549pÆ4(PSB N@( A h' @L @~N?~g߿~_?~+ߞ߿M9ŜJ7߿~ 888384ppg0ppi_>}8WӏxmGG^z׾׼^zKׯ^z^zJvW^AKׯ^zׯ%zׯ^Jׯ_0~}q3ֲ  qR 8BI%4 4$4 TIޒI*E`OVcI$QJ,W38"DI"cB`"rL0QalaL"$H9Q"DV,Xf"ŋ1/"$ L @~6|3I~,,,Fǃ_>|ϟ>=zwWqvzKjzGϟ>}{09|;nјv۹nݻvø|wn8yo0:u0Ю52OtԿ҂I{# $ 6Fg03nݻw0*ˑ\r˗.\tR+.]\rڕ˗˗.\|rڈK]\rK.nt8pCÑ$QEC8pC(a>qp8q4qPG}pAAAB!A (A(KTdI$%")RT* 0al0:tac 0* 0 CQELQE`(a`0 0 fBQEQEVQX (ȡX (%Y# 0I`88 aaajEPf 5@QEZpQE(ᰇ ڈpÆ(pÇlÇ8l!QEQX QEV8pV0 +NQE3d(d(( 0 0 X2V(+ xrQE5aje 0 018`0҇f0 iC8;q<ߋ~P !iOkW﾿kUOw seodK;y^VaGj_ َY}z>o?5ZĤ"$2JJnBHh%=9.OynO3Ұ9| [$='nSzXVRAyu; #t'}FBN5Yb&F=FklBru}ʕ7jLKq=8mLU&eĿչɷ)_]´֟lw[˫:+{%{ueWK__ҏ:CyAf___q*~/G}<U^yOOx}WG>xy}G3Oχ'Y=ns&~ M.&s~Vì*u^UOfKCIp= mo^[4h=oԏ}[SOj51lӵ| R6(eouVLjV/IN޺HOCE'Fx7R]%-'C8OGmnWc^g:,u0~%zYVV~J1^jtݛoy7\;S7v=!طRtKK+雿Rcec:h3Ѩva=&#gW~ݪ+߿yX֭5k~nWJ{qL;a+\=~곮_vWc;\z2Cn=`ot.w|^?VV;ݟV}jU}.U_++J.!c[ v%W_V+ר-V/ׯa;V:땿{櫟|^*n;τ{ʧVUqQUw1Umk׸lۉ݊+˅۸qc kUpvumxMϟmOƂL'o337>gB4>ƊZ͢FI=3h-rܤool;7};'?EZwx` tN mKKwMi^PrY@}Pᛝz|(F?{Wõvf7[=oڭM|.[K| `JvmO~ ;Ow{_*m ,?Jv;//N{mU/U|o/X;ʿ3+bʺx3|X |]?31z G~1Z-aq{|N'/k{LȴC鹘%3b\'bOc\s{pů`k֍X&&MC1-ɛ 4r`{  ^X) *#zM#U]meWzʿ]W_UW^U]wɯ}_#>}?>+>y־ >Ꮒ= ~ >Ÿg/l}{Od{'>{?${#LJ?5<=R~p=G~~[oSzOg>/Wϩ^zzO7=^Rz3ޯW}yYj7Z՟ | }|{o53|/3]qљMffv`336ۯmfklWŕU?{}INs߾߽{=}w~w7l5&)B9wz/u뱟,QF6vz[4m9uk)OR6u?請F*[d{# յ ~;[Kkj 杉W}jqt>l|@ @?}ځ ?}=; @; cp`$Xr ҃ /` 8 @vvt 3@@K75~ٳ3?1s~\߿+Qb~@Ё @ vvnm ::1߿C_ SMP+J*W?~鿁^F[e&N~cׯ^{;HK4/LxRٸ-~D9 A;oLz8ʆgNd:u{Ӭ|-'yo1`clionDhhdʽ{3 /<,g'K}x.soۍ;َܼdy>JWߕ/B-HҢċ*LX1n>эёJ-Y8\H"DRggӟm'>ۻ1wu-gN˙oW<ux"$nY-%i snp=俩u#YqGM+9o94lH+Eb%A)Q0N%Џ{GI7jz2|;MOpw=@;o2=ّ HGxw'|4jw3N8f!d> @ q?}(%T/^>&"HLDL1yc!99GGl`3 |y1zA(3)" "BI"0OM$=bF hePΞ&$R!D1 GϳM$4%NuiM2IH2&VQd,2by !!!2eMD Ѿ3oOJk&XRdċP4b䢔Ry.oUOϱ$'q]^(TXQ~ @hQF(P|.l Nnn~'1S.I *lbpٜf+tvݙ8dFptt%5$KnKe$1 2bJD JC!aPt2Lll#kUnYW;dneaX3dL.EuO毥rռۄlcNӧN:xӿD?*" h|DDD " }"" (7""" ޲$f7oҢ"""MQ&J"MoDAU&(7&"" 7" DD%b$DtD7ˢ 47%"M=W DoYb AD{1Dz"$޲ AI7z" )1"a~?yzwyw{VK#Vlٱf͛6lٳg@IBiX W ׯzNB6^cCYeCF<%$Oyn   " DZ^~e|O; c_@:L 5~UZN jիVZ*T}|OA 4ؐFol1o*իVE6*4gg\PGm *1v_`V.R[2kFh.ƴ[4t4'$C hD@iw" IƗ/kKKK+'K 1IUZw7RE"j1SRXoGԥS㻛Kc/5vAllRy{ϝ>|c?`8l臁6op<)*lqnMkc1:tKktK9ELTQ5 )WQXg)! ![hЉ(gI+ۭmȻ0Dgԙ#yF}1֩5jD.e@$ HkzvzsxF4U թYUˁE8`Dds>ߋ轏Ŀ?SیW`9n=^ sf7w.neދ,}v=kvW.(g -埭>So̳RzM7~ I?g˱?$4kz,\5G$Ap.Yk5fʉX2Ŭ5fVjJ|FcªH%HDpApjyǏcٛxް3F"`k4}ߜN|_y}>ɤ /΄66656665666/w#HQM~d͍yu0kSQUU^vtvX`&IWW=w+ae`c4}ī"SU8ș)244. ;c\]:trf;g44յDz._-o MBJQH$~ ŜYvTm^oߖ%i?G3'D7RUI*TRJW)Ң P@Dп i,泛V=cъ+\RH]j s_Ty*_f{w㹩|sG;o' g44XXBƁMnt)bD a}yN $[~~rmԛ맑&9MSWWW+WWWk@-$6 ,XbŊ"7Z$~AX+ln"Ew֡yUa,ZH%"nk)md~ϵcㄳ=L!i>/-hjիVZõj_L#TR־+iX\UD9ϢңQ>|sTza4I AzwBI heoOZoYӟ|˯eΙ+^^zׯ^94IMz+X^QasxWNi X: Qu"~zXn] /soEc><>GyQ1ejի_TTEPOW[[cfs)`Dm"$G ą`)#KIU 9W!]6hQ?߄#!\ ϟ>tϞ| 2DM&e2KSKEmxI"b$$O߶=aE0bʼn,Xbŋ܈"'gѶ}W` ijKj^M6nn`**>|ӞԑL%5@¢YjEqܷ/ ]zɾ`jjիVZj«"!JB3́3>Jd/wM~lg{_|?.4Nцjl(- 6-V Lez_& )Ll)DN8}?~޾V|N"cΎev~/ajHO{y>_o'Tr!rC9C+@Gq͑Qұo}5 bLM%7rJhGׯ^w>k:w#5d &HF'Gs ܗW*k jjվ9PA[̣vҵuwdUAY)Zi}..QMQ@ߺ"yB9oy͡@RQ4hѣFls<[2NZj2O۷nݻv\J|SQOoG `1h7!s~A<댧9JbZjիVZoM$k:`Jy ժի/8}]tgoQ}zxM۠ y_%=9o$ c =RW=RD"okf=yZj՞^!SaJ(ٯr=e˳/]aaseTPirK|:t_qf]F'_j^1.ë.klF=Q)өR*i^}S"DK c:~),s#$1!\n-0 GIFDΤ̳Ln\nN2'74+$rs;P"HHqwp"(I"der$Lhٗ;NH.d]ېQ`1snpsr뤖#M0a9tJYI1;9t"Kj2]˷nJ7.ctsutDCNvvRb!iIsnWBsDw ܺ7wR@rwIw]Νw3Mwtw\eΆRc&$]797:dLw\̂ E8wq8)ܝ4I$\ s1)!"C%%ˉs)'tRIs)!Bvs0 (d%wurLKq;sW.(wEA97.#9B$ݤtv&$&Q&cDûq2K4D*nN.BswWGwSv9dHu\;$ɲSst wpܜ͹79"1Iq2squ9p@)Mˎni$Wc#nA34E ;u;eݺGc:BEkw]ntnwL7.rr軮\u.r̦+d '.:M!ۋ5̮rQ 4Le΄J)6`H wtf)[ܝ:I$`$fPN5?Tz> ƏWE7B2rPBB"ߺiJm׃Tujdԝ4 !"VU_yl}T~(ctzΞy/y<#yO#6}LSN:t§MNPDu>ЫU*ҫ.Zg\#֗0:'U\n^! ڱq/o|7N:tR&1c2Rc^ qw5#Eƭp _D 4A=Ϗ3|J > "MT WJ*TWEDArpp=bС>~2zfϻDulUk63x.-W*3,m=ȳϟ>|ϟLDLKÙ.\rȐs2 \ IKM5 6[2u۹ uvxlI'G~:BYV6U}aar\W+rZi  mD % (c(bfLT>|&=ឆTHQV/}i%|"d\d"ʄ`6$cC\0:2gFcȗAƀhJ*T RJ(/Fiu<,>".3ڐ"D 'Z2;M# `ޚ& {'*ޏ۹guNʚLHUE>zc@$%0MIU .)IR JS !wynH,A4ZaC#E ?_h ̻|6K`bŋ,XbkEo8 аM5aX&BHd[#E]b=}w</}/mz>fWK fFS,bʖ6ilm4ۋ7;.HW+Eo=YeRK}>~?/]Vygȳ33՗f"[ e 0=BqGüfsᜦcbX%c`kؖYfY5eafcCI-#"(!tg9^r\+z2W0?ǣ&kT_5j"URttӧN8D?x`MP@QB) wg]nw٠V+VVjճ+VZT%m Eh}jn̈́2@-5iC6%j\è#޲;*/1"pi ZZZZZZZZZZZZWLP89>K+'{w<)lAݎ67] }`_I$/{V`Ok{3u'>`>̪&~9 :N^ AEbzp>FKt].KmffffffffffffffffffffffffffffffffffIO8+yݷ }|Gog5m#-UZq˞ṵ-1]+{ׯ㸾ۡt>qF} %syAU>˲I'^ߏoVn5> t`8_?A y#SЖ~jH|/HyH\뉴ai WѧS/8ŌoTb&'߽g B*,(<~xi 'AdINLrwc#C$c$c:ѢzeĒ).*VJIqj7neHJ++&g2                           %e` \  66"uDA h'gٴA-{]hK[[[[^ЂuYWV  W^#1_~o{8z[ lao5@Ht_g{e;""yD bvK?ů0_/~M;w3C ~l;;E/ATSc fJ-U|_x wZ|v93W=z[YSf͛6lٳ&73/ӳB/G"|IS+US2a1E$ZQmxI ֌Cݾ*GY>ga{?ls%+>?\AoGWgLͻRH_;;5 Dl{zGGGGGGGE yH,33[IH?^W|moUU+@:޻v0(/z0ci}\#E^QtIY=&b ΠYRE>Ј+4U<rjT͸9p9XxǏGô챍mlӹU?[/.߅y QjղVͫZ}j0=(ăile?9y$RU( a 2Jp)Zv@HYy};7c |( =2.8 ɓ%̙2cٓ&L4_fwMWwEzbSQۼ'xqʠjvH7_Cq񊅝b~?EDnkvEQhtg39{~?G$n Ʀ6qn7.B&ȕSlُby(ʉX X(C6)$0,~XiH$ %3=W/8?2MtUNb31k"!ࠇ  RZb{T,V)qXYVbJp'A: XP1Xl'm{LkR0cѤ7m@H"_s"F̙2!&Yݢ? EU}c 1,Hbŋ,XcJ _Cݎ B~|B"a<3IUUț]!v J5:1?wp~;>h:nDӳeΝz|TCF V44,#R"C< 4`IU\8dFX^i΄)7Ŀ.o3O'ӧ?9ӧN;:,kͱ:tx=ޏS#q4T"9=e1{t@isl{Dk$}n7ƹ[0pB8wynkh+ƙ$i0lHlٳf͛1,ٳg߀*.Kӵؿ:*9(I=$H}PH7lԺ s1`aFlٳf͛6dٳfȨ}~A~թSSeqէ (**kVFUV9/ENc]w6x &{u80ٱb͛6lٳf· WիcU1 -"ZDLx(QUm!+Ē^V? oFgޫ2ǒ,#z$u\R)УJTRI"Ξ ̊%(M: 98NNN]0M(hXܑ|+t[Dg}驠c  CH"<1$L!g<ȫI br59@BH /POF_^Gqby'???>14kD)w,8dɂ +E h56N'st*8\w& *LsJP+MLð=lbJRf71.6L&+ude@N/FmrYLe7^$K MRFuE5lA6) 9-J'R)t6=gn\ŋW#9R(a+M#KtCB.i􍡬G՛e"8&gﯿߣN=-΂U<>\giZzi^32oc8Ă~CCsgV56cYQE~A"&խ@wwwwwws l6F mj=m;jT>Uꯜ*zI~E|7|קws|o^yPkcccc_bccc^[D@k8ǿflB%}Ui+UP"sGjO Qa.\zR˗.\r?)QK{ָSdș&J;mMUWJx"uX&5O_t8XOc'o d, Xb,Xbŋwc2y0 eee(XqE-ԿoiRjhU#3j þj<~q U*jիRZgUV0ӑqRrPQQU mkX_5jHUVxX\w|bʪ nDh!66C° `M8 u uS$imtxaoQUhZ c(ڂVTUDB(1c2,c@ZH2`P&i?Rg2m'qx^{>3.\2•H0BdY4}bB298"!$"`Ƃ &MX(e UeX̨RaSҲ$@_lk;̑ aȖM&L;wownȭ蟪[DE~~/_O"(2u|tM 4CJ*ɓ0&L2d L/U@"鹮wKuu׷K\r'\"(۸cm6lmote\e;R1xKw? kؽ@G׹wp~󻻀ww@=nwrNW""'w\""u޷r/wO_DQ+zDRDDk|nװuF+*r K j,ɓ&L2ds&L|}Pjl"wړfW&L&Axg$c*0iCKIcS4 (M0e:HFČ_SSd#m[6* ]6H"4y$abe#DB⪁' ҨР*TȟS_3;p (R%eJ׸LdXռ7v48F\eyJ.]\Wط[} r2-[1.AD!>{PBB(P[&E(Npƒ (PB| 0`C 0`D9` C~(Pa\PB P'*&7PùIUVVVVVVVVNVVVVVVSxNreB <1p …(W(xporrrrrrrraC8n1pÇ(pp2a DP… (PBB1cdddÇx pÇn>巷Y0ɇ'''&(0]!w (PaBC79999990o}{NM99996'" 7(c]Aȃ A PaB0Bl|(PB  ? (P(NS(PB70B Bȃ9}0r r 0`MҬ8w 8PۤwCn|7q>s +blۨFpWƋ5_D1mbD\… (P]!w '(PadBA0m"" 6 0m3PB.B  ?q +p} PBA0`&,70`p0`ǃ1r.. nI7M@'w~Jڶ8:4w#v&Is^^ ߼&{_>r"Jk4DuVlx۷q^bp/ 3UCzoߏO.yU!OUHZϵ6Z}X:͛8,HB@#A+bpw/nr/wt=w\!isf͛6lٺ3]L6 _'Vq2L ' sGR+=Fax׋v"y>8._s92}.|ߐA/z*TR%O?*ouO>$)Qe* G~tDMAn8z}jXngJm@@ sJܢ+Ͱ$ηKFGO=/:^>ר6S0kpj jjjjijjjijjj_D&'p!$#OʸjTyR@i2M9lC~]+Ӵ/q~\錗CZ&Jܭ-----,=). X#xOkqSs&]:sxV6Ze_obVG*BHϦKV ?0Sŗ/P)pyo7h@h ƞׯԤɔpC;r܏pȡ4"Kqb@$o߲daawIyWq_[fP?-VZjլVmfZ|AQ 5K\->sLdڞPE=?ۛ|%w^\>idjw!$T-m5~ͅǩcd_/e{Z[o*{w?}hٟt j2G vRիVaõfիQhc³µGI(׽2Ň.ʫyK %(|yϮr5^hϹ3/]0[^o3 WVu^^kJW{y{{^k].}dFcH 3JL??\ .Y^Swvۻl%2M["=NL&p5Ag|]{n5o߂x׮vi08l M9gK[czǸBg9ߨR 6`_מ&uT/VmPUUPoe·-LuG f>͍!8[B4-YBLH%QM))|Yyo}]:7žL?>luaw="}?cy>6`gȑL%>Da*? ^9߽eKXqRnPjJԩRJ*C7g${ٺOJ41Ș]ݷrҴ'T0+k bó1iqɣ)f̙2\ٳfͿD"}lw=stg}Y*)>'.66665ؕ+IUb+X`WhdMT ERϷ~awٲgt1u^>Zjr+;Z5Z0ޢ"5KGsFEB(jLhH-t&v~{M4Kc%]^9tyK:z!b4wzur)sAbO9qo9kmg]~FۿCv~~jc[v;b0 :a5F"zݹ/-yx.<X鹍]߷rYO۳j=xkkiip\h 1 bƽz=ɐx]Wh8[>ntA@E@HQyJձ֭Zjի_ihJSzj: UE0Q$d[a`(*PI>zOYzU b<&L2dɑ&LLL_L~Ou\)PC70e}!i}42d&L2W8%pC M$_b*ThI(%XXxqnh Ab TM}Xq#`$c^^7)4aXJ-ry,@Q4 _M2lٳaM5^#KZWZZVP4CZ\ܷEΑa4^ 5nEb hA-eNB<Gq4hѣFˍ4+E5|TM_ov52v&^˗/ ! Wu6M!3`q jU!u"s鹟.UˣfN.>UX |1fYdH_HD,sUSTT! PX3h7,ݝp;U$k&B_ߪOq]yn1aFDEDAt]|!۰. %͛6,رbŋH|F*oco*օWH%(/yfde/Y.B*]V;VXDFs|zϩqz#o|\|8IZDp,[}#mWxM!@Լ$iCg7o<~<L2XsxFzͻ+54J( ¾wrry6_9-rGz}жS N:TӧN88DEj-*Tҥ$ B^HJ3 ;h$"yt_Nm `$ =)A=?" l>YVU %I@J&Ie"B$ěHm5,S'e2K_m<3+G!>L158a rhm4Ɵ/o2|X rM 3 6mʼe#8Rt|1hlsF/WU`]Ui*^T Vb. |27ӱSN2aC`K Xc,!4wf{JVevVꦠ"X5(]YEZbk!,*TBvQ@_7 cǞHiI6L1&b,0Tb!`[`3(Ym*f [a,¿v& >yĆ"I"L6mjj5]ݫnjmQ[o-ETcZŭͭZ+XE[nVѵ 4AlmhFPDB ؒa-g B0P~"xI騷oEW|*OK(Je{qF H (*Ps̨>~37]Dz?<lWH5tW?pSONykwX';,wX6ߺK1k|mϐk E5A:+ 梃p8է؍˳%Ch۪cҳj~aIޒ8}#;nvm8D;b ?pv^ucٔ} ngZܣD=ԅw:Ʒ[w^̣E󗧠";_B>o7O"ߧ׌.fVg7 {qJvUM<@#WɛEWQJ.id}|H]׉w~r:GR~Iwe辬U.ͿhWQ!FځOoz$b󞟌M~Kۙ3횜JjҼoO{t-gQzDFx|N7=M~QxaSm̳~=Lò۬ڸ[Wo<}kٷ͟nۻ>KVۘ{3o1c7[(cb#kO"ۨ,(]Cm[y,ZyƷ[n,#aw~miT׺ۡ|q3ˎ3ė/!(8(}loY{n'r0˜vw|/G*Vt J/o{~sy{|[Ӿg~u'{˰3FKz+ƛnj?%\_q*g{߫gA^;׍3j^5zǙAS;j|׀>_h7}_eqwy ,75ϻw+(qn3e 9W~_Ts6s[%߉ʨuzl,;]`FwbXGt0{rxp=Czk#oaUl?%u>79++eŜ:Koosy7-;A}˗H9~\\z#驰Yi#{-݋R[8blĎSosߣ?Gr9k5}zܬ=_teS\BZUgI{5bۂ-9fj~w?םvg,o7WDPje&.Og;]przsڮ}8/=o;pK]㻣uʻ]?OOBz~99'O럛t9[ynOD~>y|>;2ʾXoXaT*+e^*0'_8^p}gyW.WnwI|tO>ϱ'}}wwW9/~WΓ+hݥ⣂w oBRS'Rm6<]e/kUK0 v]pW\ܑeE .( ^>;}A 4ZXy'ȕ%'p0q%79 uQ!JCfҋAp> S'k0QiWgfUQ~L UEX2*qe/<ϗͳ B Z{$$ ?s\ Ews8+Ϋ̡~_w}DӜzsVß*V8 D‘o^zQtn+zjrr%V FKd3#gZ3ot݄J[oMjo|/V\1nK{VYٯ4w}o'~[Å΍gS㗧WwKl>Wn{mG`[wJ}0!>#8OkkT -[һNJ_}ھoNܷXgvwՎlدz|w\pFM&4^fvx-o<_~13] O\xel<_+opswkٜaN}P2h&pQB PP :dNP:B T:Ndk7t[Ί"=U mnJww)jK|@. 7Ϸ /viJPlGmM|C@q*ͦf``s'kSj*N}ENx @jz֠LA)M6fflàw3fx.YfxТf"3==m. `$| "&2P$,O&TYN)J$v %%-QE.WfQ)m-f`ww@<6m UQQUUUQUQUUUQUUT(EUEEUUUEfdffffffVfff YYUUQUŀmmlٳff͛lrOm`zmmm`mmm6mm͛6mmͶͰ6m<<۹S)r`<((|O?M&iDJ?EU~:U_JUWU"t |US+YUaf1E Jf}" t^/J>"$%g/+d[?KS*J?\R@C*PVJKq;&pu"~QVAU_J +n0}NS~tϟ>~|1DHT:UbND'RUEK1Y Pݾ关ss16赥+Z־Zym"^Uz#EXW"-om8xvq +uL]w"$~ $^rFpT=@KW&I$3#Ёۧ^~! EYFw˯woo]l}17EI,_\yu]){k @m=14Mujڔi3DVŭ|ƺk|{3M4Ɵm/S~:s't>c=~M'+G=W~u7)A ͍:tSJ Kۧ׷)c˧wp^4ET+Z=uB]32il٦TSKj" DC8"gs]u]R+\cM6B˞x6g{뮺c﮹箛,+l-Vi-JZiRi,LJFUr,=@ !AV4SJԚUhK~ݒLV&YY%w'uupwWάsuw\Ōjimжe6j6#eMmMlQQPFi83/uV`^^^.rwy#hʔVj-d LgIZ׭_W~[7 9-ƻǽЭ˽7w~<8mon.G.n\SLx^wnŹDqp;l6roݛ]H|O;c<.nHܜ6Dq3m^-ݻ-ýW-=|;7vmn6ǽ禹떺is{n{of6rlnM]r%F4h"Ƌ4HcHDhF,X"ĉ,HcI.42$_Ƒc{eZrZKgf%Vޜ燤pUٳn]ݛ6r㗓>^LmǗN[mʵٮ͖ϓw.Kz J q__K$Kq"CLHQC 80_Ō>,\쌌'6qo^{/¡5zHjWUY,/%~(pT/;U~ž8 " Cx୛m8+uM :R(P箞'*RJET<ٽup}DXVd`0PGW {H' 8PY^2:  (P!3R`& T(`0W"BUb`a &]\0f\ICw B3*eD$wp$ĮjX*40HpNN0& $pbf(`jC '(Uj38pX Fj3;W"VbHx& `LP5WT8 jÆR%B3X4pLA(4Df p݉}8fE n(UV*DČ(L8vX7p]8w` U@gٙ0BU`U(BF ''vGp+ PLQ' 75 H(VJ*BDd "0bF @u ʠ [18DEuWpl8p3**EŒ:aEW+0i:# (bYWdnñ30p33(PB N9 * F0Ӛ!UUV& &wႰe ̪ ;3YU*13`0`IJHrp"1(`W H¹308PB`(8P6FՙCeBV  YUëX0Rpك0fPX)*2XG'wbUXY(Pl^X V̬*Æ&gDf (…W3`ˇwl*U 0@fn)# YBL# C%CRvWĪa\8p!8C8P0f !10br L(`&f #0b L90Ts#g'Ƀa6%8Wb 0p0PIXB6 áE0aDC0f HX3 qɉ(7$( T͉CdP$VRV 0@0b pљ0318 B3uUU1(A)D%X J0  !)1pU l  L0@B30`X"3  1#W ) LJJYf V X(Pś ͜ppL8 Dܞ @B*e ªAC0’+ HĴ6`ËURb )*8N,10D@B#EH!(( "UPLL'g'qT,%s}jipn8v۸t8U8o7FøBBDP٦ L7wfͼ_tK R TL+BV@e IH"E{U_A¢PvT Eyֿ7qYlݒ-!Z ڬtN+CIQ"ou DUw9#+Y+T`GWwnw?Թj siKQ39-ΓrA )Ht0ꌲ d5Hߏ'C33T0fd&ׁ7w! CD33u0hȪʡٱwDڻwuPlơ)@xxc3aY'0i7e0hI(8 6nfyy ǎ<_Q񈁀1b &KlOEv s8jݏڍ ?}N;7Ə9ny]w:'y[c5{P=d+M>F.VFxNp^e/=iK貾?'#%' tzYW|l+Q" w`""%×BO2Y't2uXcC{$<)tk!<wOȩŜ ?$(go@p' >P|tZt].aCb*b%dPyUZg0UrAf UQW|니N ﯾY%@R}}x{9}N丞K8jmIKzU7#fz|9=na9?FDn,^W9N{/y+Ow}D: ^6 |΋E}'Ğrkjm9~k:ciM=DDJH"""m);Jm^i|ߓpxC}}nwXv\R!@utɕ@EE}B腽%T{?e 'e(SFTz*bD 㺎:;.λ:(I"YI(TUiXZE,VC30YBAdE$-*Nw*, +eKz' e"PҜZB*ݪ5C*Ř,BcQ͙lTK񏉲7puForDtg;vWl흫9Sʹ\rNPNju((,01rEE1H-j0Yns˗#v;'g!;yIp88'̸G!9]v+v;d]Gh흴䜎ARȹĸiĺv;+ι]];y̹\˚8..Nw7[+ &bȁL )^sQJda֝RWWRu4$+uUx |+\\xõ]r!NUr>s꺶ߣxl(`a: Rb͛.M)mCaWHb3 ""&$/e3R+JZ֤.C;p[,'+yQ(/AN+B,$(79N׺#uݿgj-O:ujv^uyy)5ԯ+ukN]:!uo8U|kΝrN_yMo)E&̌a(; !:%B(U+_Ve[w[j7]O*O+3 yo'In|YD?;Nޝ};˯/8Kuqmo*xj9o.uP#FW +2ٻN}wvnYWϪZyuٿקoMZw_̲%B!=d( Hz- #~]_ֻ:w~zy:_Wyy_6w>O qo+ujQPy?]ye_l^9-*x}JUu=W{(kQ$UeyTXsDQKuOp]Olxs{yv|mW/~ykr[wWunKw_QxMuQ?qBFF["XFP aR,%ҥJR ?YR*JB4C5#%zW-utw}MhI#ITkޤ;C$*-N PQ+V|jk`2ut(UJ %(բ@?|ws $}n2\DREkqK~:>VwSว97wN.>u8$^yO;W_ tnN_uO$󻾺9ْreU_ nG e疮MUOkmtNM/e9׳sUn$]/e|>e^wy&뽝@{<9~媿y}NIZy]{/yռ{9k˼-[|=`Wo:n_q"vc޳ffYv t$RI s_󻼴Hw}ɭ֯)7]+\tA +ί/'&ިeG^wvy(+[뼯(#_[y7U+uόEm^wo'j|%+j|bNvg;U|k99nܗݯ*Hkˈ乫|e;]|=ėMR:Wya-wkv}s\ԤeB0~ym(rxԯֿT)CwU`4DO%XZiB֥V-c[9 ԐkVJR=gǸS-/O[?c;4֟Oo[lҖ٘Ϻ診MiЉ퀩U D~OvM&Mbb2B' "/\ܴ~_ x׶OV Szl\qUWG55z{SSU~-7P._@8aJ7t%[xݼxپ#rqb|>G \1 8imf7 6١SZpƱԪ҅H ZT4A)K(V(Q P҆R+BWpC%y@z/ _Gy.?/SyͧQR&fgojsxRL*t?mbyϣ'tt}?MvyT~_wXy?-קN-O7%7Gոjr-:olSdv?Zӿ`~i̢,^=G 9̏󟏥WAP}67_s~J1tWwӱm.4?TP8>g: ro XN nƚi^;}Es^&ׇORsǵqfΎ3֮K޶S\bھ?V?c}/ ^G?w:}𖦮I;os2N'nyGm7mf|=\scg ^˅sdd{SO]"݇)ܛ[o`(iCi)J5GG*_%] 1l9e[GyfNiv򛓖_oO,Wsayq.͕7ۭ7^Չe^)%pwŽч=zK~rD ^wsM841AⲅbcWiI7Yv kp\֦9ށ|e)HʹkL7.µOe&UZĖDmk6koӻZi5n+m함ʡe#IPfV@fOOz%EV!)$颼wdz[o^_0L5JP P1j[afNa!PUnvĝwRxN^x\'q.ugrssYif8ҪGiOBIww;N˙\Ӛý^h틐.T.Rʗ(ُMM5[iQնcCT$(Yea`!J29/ܹ<[n8c]}3ZQ5Z9U +) Ttr,JP҄ c1r5e}GQ/_aC?߫yDCߤr}#; >OÈ*1zΖ![ ƄLf2NrtIagFS,&{zbu; =E.-/֕s.[jù"uB|4sF|i/}}v{|g[nkgb{bv1C!e!#KQt;'ۤBIO_* "O?OHGF*:) tĜe l"E\ BiM*֪:tܢ `}OZ!^Rk)[3*uҬ?ɑGU6Mꪲ`c!MkB`f+0?URmD:EUfS}\3"?Z%k<k$qʺh6WkP(b:zVf.yoGFP>Ϸi&Sjgoυ6\̊>C?_G 5<XBl_3 8a#$ 'ObeO}Ϧ|zY</Dy?O~#xτͺW?K<ʹ.ިhݧSƟu8ϰ=|:cooa ]qOfi<|Tpu8M͵o?!7~k9nĝ|_39o|FwcO^is'e/ӷCy:!9 "wswG_e%~t(/ 7^CiQV=bc?|<'{q~{ƹkޡVi82lvI9;#6ZoNu8j,|!o~o%#=^v]5ڵ?|Gm̥i?0ѻ7V4|\L?(}7RIȡ2m4V2G%}rKIQ>q{ֲ갡.DE}g{y-yn&zNsqu2e~g{;H9N?6>XxRp4.8ߴťww͞%Oԯ\ҹÇrg#r\ c2_8-n~C'<rw776M~ gsx,s3>9CyU59|5=s%W{n&dS:} :} '+}Z^ߔ? R@@C?E-{s6̦aw! vdk@W>Yğ/~__u~#rUDSLeU~GMߠLv&*9"NKNBLQ||Y"$YS X3 |0UXsd+yk.CO;+߉L|T?:F'籿Q<1ϴ1oKxps6Gdg]%'70Hܹw֞6aܼr/R!'}}8MO.ߐϤ/SëngzhC@Jfv,/{;s떽~]K?q\wŧ{BL)/R]ϕWa|o>~N75F3d1xLP%JʁdӅn&Q+ꧥ$X&ZHd82#d7mvW838_B"pG#%$|v|WWu>> 7Uٖ&[foZ,e2-`TQ`M0p ro>~A}o)_wuG}gz>~| x{ SGG_[bb3)@Ɓc:Ǵ˃Ex"""" JY$/YjZd3%YY-5O`"[qFÈqGqFC Ud5%%E)TJq$x\3ǑPH N8NkxJ"նf+&RX2+J(H Xf|Vejłɉ3vґ6ifyNp |EkYn}ߙO{DyN/E>GF]'d\ZU4s7  $;ã>D6^|/~#ܧ=݂ ""0 exGWq\Sl3`Vp?s8 ,\I %6hc{s 2Zb_w^xH2tx3j<2{t?>4CK)cctl ^^mh>N˛26l\3٘88DBE=4-g13t kKw{_ߗ/ŏ;BHOڇɓz9:-?*?OGD^/IT?S*2=CՋG)c"g"ST*$̆d3&beUQVA:H?נB 6@lYEަ^e**ʋwos@]\uuxmmlmll}g3u#PL@p%oGks<K;_ŗu=I?QX&$?9q#IC&{/_v4i>oHy0Dw8ۮچ@L<)}M/˾AA?=ob}rWr.{jX匨N[rܵ˼-rܷ-` ]NSs\?hN4HF-$4FL 2SˆT?.!;z<=}_Ƕ&S^#}=OgI}"G#fF&lM,,G2OY0Ɏ#OHC?; 'r5z/̼ۖlc8ȋxy;8TDD"y1#n8xibZd}co@1QchoFC܍r)A2q4DNFhg&M9 (cGi{.W}O9L_.8F=a!FY?/??pK:ӮN#: iptތĹgƓ,qfffffcΛAW׃_`?;'":.[~lpdt@ 7}|}KK=-y~_jmvkGTB(U2@Y)PmtOe{>}S7cT=iǙ|-]gwx1}CeB \Lד1p'ȱ>w?){υT=~$u)w -/"m6k?OZCZ i~$CKgm5ͬݪmx߻}?d!@6{]:JwZ8-hpɐ8r]R*GqZG3BGG'$b8w9n_}nko4Q^>s T]R}U/[/5D8IPj3|ϋWg=SA'Цacl[kq./\j7^ k::,WکTdr V3@U^xQW>u-ERCo[ƃzMk2_O{5oob{Di LO.@fu[7KabeDo7 ]ЀWKV57uoBxrch "9mJ-%0ٸ0$$$\o*?MS&qnt^cp{F^L-~ [s %""T/.ׁ@奄|Gn} ș$k~x.-b!zA3`30`Ȍ :(N$rJ8 (BI98 8"pJJNNC) ) 8㐒 8$H88#_3 *::&դpsGF۸. @#E%&du'PSHt D't'p䄓'mQ 8pM;]aRTtgg*)6::::8 .:.r(B(裸.㣸ꎨ*ξ)Docvc׿{|eE`***Tb$Y$!FRRƨnpd-3ThPY 8"o訣O+2:*үYBPH`'$;`[g$q ɜ"+=gly Ɣb{O ZV'Z'qiUE"3(q~\ =o=I|P.saC5a#! #!YQ)y`Y)]b+ ##%oyqOi]} g /ѯO=Ԯ*_΂;QUESM{}U遂UQP( |_{o+sՊ$y*QZyBc#R6%!~ S-J_Q$o~mŔE? |3wG 1UXUd΍y:t.VS((FF43d*@8^-/". qġBBL((/V}J#fJRʳ4 3p_j:.BrL:۬rzR) qJ TƥG 4頊yq)RJUE4h!FK>939Ir%5iG2 >"PVVNVThYYYYO':r $%RKK4bŋcxt#1Vw n| o lU}QU_n=IZRny>uv=APjjjjj]jjjcj?32 xMڵ(үvBKt35ptY%E_~RAUx,R0$>IR7pꆚHqUDD6=1twX"jhd%6[3Ƃxbj*yQb1.\r˗.\8`af5"q&Bȟ4|_7^[@֡>Wf{4hTDUڲKM1T@Ugy>&LDJE' $p(* u@#pu>'{O/"$d<. 5`f. . ȱH*~/<zS7^ww%F|X/D0R  $;^9ԩ@e[~z[I++耯C ^Wfe{G>]*mnM۷nۤD.=*FHz-t9i}Qf_}?>'1zñr ͪ2XOSм:w:[Raȍ~,tz[>k~AAn]TmA7ws}}fux7p[wlz+o16?פ+^V %KsB/w*f7rmV!j.ݸ Fw fV`[̴Dy xIHqdn*hR2@`Q43)()(- ]Wx%<jU O}(jCNwTr'oN!Ǯ:5=5_j{:N: z;C9r卥5SM6Fʇ6T?S?SJ'b߹:-*nݻv[Q cjb66Um6j(}1j5ML5=OS=LjڂڴiAmZj[JZ-2ҥ-*Z-2Җ[VhJZUiZZP[mb66 661cjlmclmQ6ګmQFmjڍM6ګmڍFڍCcl TX0Zx_A}Q@?{~ߴ_X%~Rbl Ma l 6 &ͅ6]]T1l3aMa 66 l SaQM6›`b661`ګm66lmj6nUm66m 46j6Hm#clQ666m 660mEm`ڂHQƑ 66mEQ[mܶj6m#clF mEm66Vi-([m6[m[M66mF6mQFmm#clUmj*mڢہEmj+m66Q[mlmj6nUmڊmQTQV6QTUmmѤ J*V9Ն_qDQ"<9>H#(,x<` H9~H^G?VQ䛣\?W T/kqh%$!?CQE7yS^WyēQKIJG%KKCpoe)ɉ`p\ܞr$Nrj[m@, %PfNNK 2q(FVI%(@/@ַx/ݣԪ(‰}DF 9_ז2}Ž֓sy/[\{77mŖVr9ӵW.n.n?sccԕ|P5>{Q?o9y\w>Mo#if6~VwKccca=co^9{ ~ww]}=bv;.XX~PW]qQ\UWTQq]wE̪Y3"̈e2*Ȍ ,#"+ A8U?p*؞{ߑ;q}[p`i)) 7} ΋^,s(y]By]7ywݓny,G?ɒ5ߴgӨL>9S߼$P?#@qAHP (aTEw_wȯ\,DʹDyxN%="ջ,>ldI%D`뷯<L2VvaK6dɒ i $ 1>N,ȑ%T꽾EI=N-80(0Ţ_7>qvP,A+Ѿi:#<DX)ҢפM![ܳXMI% цDǏ/:]@1_(/ H _efB){OՑ!~#*yY~4p8+ C[>Fݝu2=Jh;<9}o'.'򺧕rkqr~W~*qC1o3e7m'81~Xwː~_HAA M:dQ@q.uW#d{)߹E_Q~2+?$#B"j(yy` Ě8nÚz#)ύs.]]W 1/DVp^˖nXnZ6(@Oyz?M?OQ:kh83_3ȄXbEF2! I{&v.OE  BE:tSuN:t>0 ,Y!Ia0b *ee,i;"YF)bI5L1&j,F  oӝgѳ@d<tۘTɺIC9†X.>G7|K苢hhч+G GGGG~ RCU (fb<>lAUu$X1PBDO#?_?Ua HF:+_[`AcBʼn,XcM4<4@&zaMmomn; 't弆Kx c>%b9Oʕupx\_`_{1߹XkɛcMW^zصׯ^TD(2O}k/r{KJp@_:~)z>ZΣhtuz;ƘoؚϥG{8oP; ;*>eC}IC&ft~İ74'p˅) m˗.jjj]!OQPSSQSQ肚jj0455SQ_eK .1.\V[ij4 .1)s%.KR6ˌ*TaLRJm%AJTNAR j-UbT/ؗPħRAPʢjJJEF%JZT kk05u)j)qr Rˍ%.\aqK\oQfR5h5 MFPbj[b[-+j[ķmlإlKvؖ)nD4ZJ*Qˆ,(QŠh)F AJ(QT*XSM%1JTؔ)V:RARFJR..j\r%QpsQŅ .0-Kˍr\.1.\[r\qmXh6.+A\au0qZUQMF5.\i/=V[. QSWWWWW)jꩫj5MVzE5(Mmf&IFh5k)kj.Abj괚5X5R˗!rˎqX  i&ˎUUUTRˎ\r..4 K.4  r\p%˚Q5 MMMG j ECSSSRޞؚk E554jt9TSLswĊ*EAW"vi;uV~a?_[fQ1F|WrJ:o0C jtYQ3( ;wg%VAHyCP*eeeNʁ C戜"8M=h֣F4'𽶦Wp/ˀ޹wj;wSW-L_)~A0 c7Lp2E ɡҡ@6GOn?n'<K,ɑ۶ݻvmsHdQ؈8sZZիZ)-3LCK>'fYA锸^KݓNYAwur~Mu#*""_ ^|[]BjhOWA؛0 1ȋTv n|DEJ4F$.7w;NaAJ YYPJeC}Npfaf9vAÛ ze+7BR%#Hp}seNJm1 !@ aDTidRk E"YҔr[% b&0%+DZRqQFsĦ ~LnT y^`j>vKA};Y&ߏi&~ڪ[9SzS77375ZoPIP g{ؗy깎nt}ݵ{] =^ۮ㞯a3rynO"en޶Ġ64{~m7 !%qkyf DqF<0Cr/TPJr۶LEΝw[a;<bÐ^Дy(BJ2RT)IYPj5i s9-7`7Ai$HHR&J֘ Qz$Y+N+_ur0:+_nG{c6'$.[+gBHiJzBLgJR[B5iB@RnB z]oWH$&  /3̑q(d£X2,JJWy--Kv۷5v|#@THDD\D^zիVZ:d#DH ]MUYA8o/q{Su>)/5~z ($H2(ȨH" &g >/ }&>u88e&Te: *""V &˗{CzgJim)..>:,dw;#Fk"6!/.D>~ߡIQ}\YafBY^]}LfN.)"NO'OʞoGEog.{߻wrn'P}.~g3DB+s`Yuw[:vw]i?v!9:g|FD(@h&"?89պsLe.u/OǼ~ +J|__qz! a{jQHmbY<\%xjh=`Ӛ vP_OϨW+}wiuL-/^آf\[H++++5u]egYYYYYYYX #f;g^6YV;3w̬q6Uus8O $M1챾bŏa7=,X^Ń,`2%GqcwS㢂9P ܬ^HRJ WAseee^Rc64= E% =p1o0(p?u 5uy'G>[ϟ`b-o5:9u*[G IE+$ 7eb*9_}ww|g,`N/7xgiL C3?tQ}+uROyTvUPg__׹Ct3 Q0>21v]^T! Uhp,l3v\;^߾8UEXbŋ44444c 1aJjTRRJwAHH$8> Ư>Xb'CU;ND%S e:tƒN:tߡL'k̾xWURMV Ϙ1JWUZB'oSgo}o !RQ\ʵ*«VZblmngMYתd kY(xS^q*nqq:mu}v OwvMW^,p_ʕ)o$U^Fw䈈/ ?g>}W_>Χ_w\>O1Ͽ_ȪWK>7]^uOYuugֽmn⋃kй)xnWļXq+}Oq94v\ؖxq[oxv! _ۏckjp&I?e 8I1ċ t4RHx#$2"ޚfؾvw00"Ə"$|%LČӷxyA/ME \3;P0 Vabfaa"a88Gqr8LTqiqʍ4@qʎ8M6xM@M4g4liibiÇa4M6xM4ii8M4MqqN8Dӎ8"D$@E,X",XgDbŋ?$@E~,H",XqgDDŋ?4hѣF4hѣFŋ(1gŋ,X,X"*$H ruWWWq<'p.}oww;ϧ>S~߶v{=scl)(蕫WC1Nktӭk5z'I$EQE$ȐyF,^LXb8M4 3e  )^$^K(+],LLKJ<<;+ <; <; v.l]v,ػr˕,Xb,Xō,,cWZ1agif K5Y({%(bŋXNbi٧ggNbk,XbQF D-,дӓkk  kh-@qqooWP.]]H@uq {{{{x[Ƕmmml]vۗn]vw7%ż{[XGT~: 6ס96Vzg4_C/Mi4âssK}Թ}0D Hmw/V<`q*Z.4=EqAOM]-'(>ggSRJ(TRE3+g=QJ%Q(QE=Rcm-|ͽQOn,~Kscǩal=k=nK {_aQJ8%6j(?4ߺu)%襸Ks^;QGx==([^өA!!ib A87-V0pݜ1vs\<# :!AIL@|d$!#Dqa$4h 4M4O84@M4 LM6| 13g0 LM4MDӎ8bPqiqljf>lN!q8g4iϚh 4M0i@iM2fd8s\(P˅>YeϖYs ,E(PPAPOAB  .(PYeže\`,,@YeB  х!B (!,BYeŸe\(PPaB (a<+1ow7y?{n_sn6UUMMOSSg i~{=l)i)>z*%jj((5S|rpSiui\dQE92dɑ"y4hصbʼn!hioe… 0 @+QEQE|I___~A=/"#{{zE ooH  (hhPVZhQ+BZTJի&M)4ttrh@KKKKKKJ}--%%tgQǤKKHZZZR)i)"ZR6lv#v;mmel 0Š,aEQEQEQE~(Fa0 ((h h998 8@.\,%˗.\jV%jդr^Zr׫-Zr.\Vm㴽 _"1Dz_^Yix77Wv7o$}v[g4}z~jb^qTRWߪ>`_vox^TMZI$Zx~(7ɥ~/P>( ~]׹IxIy{8I$@g8(/(<(QEbbh.w/p Q@0 ( (QEQEQEA4 0(74aYqq11%`8 z Q 6usZV.]R23 G ?K}zp[׫:rf*=vy=_qwr_B"0boAc|C c%[w?vixݺʔ"th^D:kK|K.\qg:r?9?pq~eXi!5rXP*ck6Z]mnDDDG!K ~*xN8N!džƒf'myE@aBB/s}>?k8GQ6.x}$&{>|OΟ>|v?a`a]?G9*T7`2#=(-bJY*iKdSfJ{M' mP*}UT( eɓoQ;;F o8"#$ 5ׯ^zի]!Vwdȗ+=hʩHf!XPHc\ 6p7 !pB)" 8k!"lm" y@>#6)Bq/?u(^HYaSd d"$\}?.a6Ma_l6CaП$P#{1:ׅ QL#T. ,1x9&^[^B{c  Ud ؕmfGEm Gj`\KzWIJ)T>$7Ћ쪯qi\[^ŏJQҥI*TEJRԸ(P"P2]h޽Unah$SDhEhqOׁ̲>_RDswyksO"D%N52WFOd~/6:nnBf^6Nˏ=%wY_`QA;~./{uv$R!T1SN*nӧN:oQS$НR_n FmLoMucҁEU~'\g.afR辍H<#qyˊXhZ46|Etj"ȀaD$BI$HH  @pDE@DDqrqB(9*)wq) wwtE$tQrGqTrpq'qQqNp%GqQQEqӎ:t@tGGIH\'R\QrGGGqERR\Q'NG䓔BN; !!$A.:0d#!$%(iɸ: k;qfBdd 9EUavVD7*ZO͡;~ڙSJ;tRJ:Y}F (P.N/ D`" UZ#c$4,v#T4`ssBH~ADžo??=A H'*{[UX}8 /ˈCӧNtӧN A4x[vc9As>y7_Lx^z^^KOquYuVl;5Ch)!8$2ww|;kOO/+N[~%zv?]6'G2e'w; zSvwoF*~[EE<ݕ~G`%kA$dFFE/qqw,*>e"R,{=w+6{=_gaĐddI|u\Q|]veAGQEu#wo^8sQ XSBddds$ Egp<9NSx\]7fw½3 ^ UҢ" d1Pe:"G$H 󹮟iv䖘b|ׯ^z'DOqȱb}פfIjN2;ptXoۯ`?nf}lm~KQP#B /hOϡB  ? pOɁV,h}} 7r2p"UCC<ѮBr KQ9NnÁbŋ,`Xbŋ.H~MZji31!¸m)aԏjS[/8? "(?ܶD_#f(fӑ.8N( x ";R" h«D8AED KT=5wψ|Ơ) D!CF \K%](O|i;k"|f%/-kTNf(MS2IRv*;ʢQ K5$D!$D㣄(!:"8N(#Bw;AJqΐRN8mF( P\9DH qrQ8(䈼5JQ(Rи[al%k.98%(ÇY90 P  r A@;3x1D ~c 0&;p$ 1 p5I`v@ etDP$!Ç !(wwH8Ar 3`L `O % 0& A9~A9LN9BAP )brbbb)A@P8p ԤĤø)Ma6'!8pÇQF`=P @p BAi@` 0qA8pQ'8`Ʉ`DÁ*99;0`Ğp") D 0b)ݐBF&&&&&P  0sA90`rp& :`!Wr@Q (@DpI`NN 0`O'9$!Ç' !8' ÇqV8r8pa0&`P0 NF8IIÇq&&.?rrpGrAÐ8sp჊M9 p00p&;L@8`B@L̘0PA`>0`%Wwlff!C DA"PE!1G $$pfA d;)9' yJ@AA7 9 10)D18nDRDC)bnDȤ4s8pN܃!ȘuAȜȦP LLLR `L IÓD Ç LLnb A9;0 L'&$9DRpN Âw  98)Jq0Nrprrp " ܦHÑ99 ANo @)g") Np''rp'"8q3#qsD@NIN RB@@rnDE -KKRal${fսzt.-&AP9H`+BJBRA(!8w'Á(@rp 9.)qn)pudu dR G""")) P0NH99;0`&I8r( 8LP@D@(pGp\iq\W|^A^ qC(Ai1t|]@])1 % )L*n&AK:wGP@D@V]fY;/.&\쬼2?2O4hu (Pϡ"b3dVT=ooVT:kc%RuZjVZjPxMTN[Swi:`^a$i(\i4?󼼟|^:i7EACUVZթ6X L@A).ߔ?Il4*#AU,plygdtBs%%sT+"/GKH{9=gٿvPX].'lK`8P2KkXsMy]<&U"^(o^~ Z|yԌԷ%LCq>o>neNչ;Vf+Wӧnݺba0к !c@[Ĝ 7@F ժ MAy@>.~Ϡ'KɸF_CΧ!1 a`i*(YµZj՞Ejի] ƌ!?U8]8W⸭]Skl |(2t26S)S,C8h~f U) z$@dMnņ?}o㕒Tz ,*8jň,Xb,Xz8Yw31}._p8Mhhh^!vKM4aNccF# b/~Y]D?ޗCW!Dh`b%o2T<*ߝ,@A&T}t(o/hN3EQH! uȏ= $ _P`##{>@4\ᰶn,ڝ8aK<_>8 K)d՛6p,ٱf͜yիl*((.*e\kpGl:8|{Uf.w}D /I?);Sp{a'gWf^4iӷ O/mH0F-mmmm[^X@II}u韐Mos[5=z3F43DYcw* s+S"E|s .ˡ]x<Z0ڪ4޲-zy,ZDF\]VP<9DC>D'zG3˓.N]}WQuٌ \g!L=3=Ffxi[Mkoj-\jxY˜x}V񑾻\/|ݿ8qB&HXx]Ζsn757>p8 3|tC+$3+0Ϳ" ]}f鍵8~p9C7GTGE`\w9)YZJYR蜀x?=y=`)faiX* aJK)  -E+\Nn?x_럆%jXF==;zwm2 $&xF)bgv}hﴲ6JS Y> ?WnڇxBZAq"Hȯr+pjMډc cO"A4T e gaS/*hrJj9T:o[;`K*nnz1Ϧ/x\x}Eyh &}J% iL-@V"0M;#csqMwER]5}u<>=O;U]=}@㮼 nY,oҽ P!eL= hH1|06R^:y{qon:KK!nN^,ǎ\t|&;׼d+ć>_>syp20~ s i$-hI)JMMVzc'S,\1s//1uHxz fp',t{,,:_eYmad!sҀ**̯/Kz…0X[V8HD})?T\DB\pibdפ)D Hƞ )B"1UCq˔]Q֨ӂffP +i@juu[7iV1 4H Ls([imY[*b/qI?|3?g95@`*TTTʠH:¢^wk d9o!"G@=O5J>lJ2 W&#M/h hhh={_CCB=K 31qGѩ'=;|M-1 04H!((Iɬ SUURn*|^8V,۟ҙ 0Sn8& Y !@yO!?g)ZusKgM4GutkZi'U6?ksw)ISw9/'.Avym}ZdYHf~dFG6>爹>zYH kҫYAr+i<0Xc ̅vdDDTgk9+d K.nkhlf =QV7#zj_C7O &bngbnq@fiy $*xUQ2}6-'Pārh]4{-w˽ T,|\\%I,[ JG︾N_d%;snmkO}j O9v[ ݦvgmi^m1؎n۔Dnݫv۷nݻvDЁnݻv۶,^[nm]杻v _Mzzzzw}v۷nXnݶۻ nݷAbݻm۷vvmnЬmixwmMBwvmmnzXnݻuжݻv۶ -zݻvݡ^v۶ݷWݻvm۷mn!nFWǽaȗV#ǏS@hNbU4 F~5CP=~'*uA_~*Q206~IR2j 98JF@z( D|JV\K6s,f͛6q&6*bsS GiSv=/۠Eh?E|> F#*b1#ёbb&LO/fdTViCI~2 3(ޤܷ;1U@Lˎw&ؾCp}r $T0# pr+@!`ٛ/~ [A냮,c$7I3% Ztj=f9>CJ.W _\׌,>@q24ǎ-v1,l}ùa܇q}a8Ep..yΙdyRӋdyU?/ۖcIjcTm4nF́]?]cLIcJOr<[77F~sWu[w &NQE)>D8ii 'q66+u>C#3뱷Wn}9JKUΉ;M,}eGm9?v97qƅnΨ 88^l҇/ >|c&0.2KUO/D Ow^q.0&W`4RR4HӺK s+)p.]+ktt]qrw\(!B@HQUR)ff%CK 1ӫ h~=N,9kG#˕ʺuW ,@eE3Tv/c7G}UͻiW}i+H`Ztᤉݽ==_Y_5-FDnNqm7}q.YXj1Kh28~WV|ݦcc/cm"!"i*(X߈! xH, -*+m Kh)s`Xvp@_ .p9 _vtw}?GnG|__ T&??9#rw[u>Gc*rXϵlO<& 11 ^-#Ah` q/QgATQ] Cڔ 8H?h{2$q=? V<)`dh r'wivz(j֕+VZkgJA(mֿmxǠ*AUTT=뀴/ct <-S;fotCJTƌ,Mn0 $ )/;V D"Y~b^&E4BO>~ɶ3I+IKtgoNf78~8f @3vd: ]=e[:;/S124J*uRP05{-ywk"H)L&`n`3`;&`p0^p"}^\EQ`JAJ- 4D9c923!v0Xv}rdfYCGnݒxoc Jӡ*D!SU˗.X d:>>>>NDIp0 `aeF؂YaX4 R%qʍڎ(N숑3dPL=sC=ǧ{kg_v?";{:iڻnv၆ Q2Nnco'y'i{H݅k|ZQl׵tQ>^ Fs2? v_%\VYO- {~['*AlOdzeRll\KՎm> &&"DS\+u6^K|&!'s+Vch1m&CVܱ"Tl)[V+gGU2'V8mڛ! 0[ZlU. uc%˗5  npkZU_k¡CC3B hULD)AƝ_rrr^_vzzx93ڕRU*U ?Pq*T*T9秧 9Lѯ'$=?kk5kkZ'C#^pyi/,!{ݸ0`.a"cKQzϟTcj0C2 Hm  EPez @ |L^2`52d&K2dLɀy|0ał, 1b W !`()$ &esrիVZfի8MVjAg Pڵ f&j& `۶lի&@ڴhшb6,TAdɓ, 0 xX8XXK&4&ŋb& 0` دbi &LXd@ɓVLkCdbI^+؇K bɂAI1d͒M$Ѡmѣ%4 6lb͛6ld6L2dɓ na`a% j .^ C`z 6 $0Z- 0ZNս&Hx8=4dy6l|YMLg~^_̡:њ nj 6m:ٲM6f6բ l6mlY۶C4Ç6BÇ ^p6-ܹnNv[tuA K\ 5EBݻlգDnݝQ4A^6t(4BVsw4lAmYft Z:Kv)ɡpZi]9ui9r廗-h5p4 F~w &NG hQf5 7M^к*f՜4Z4G5,x ,fFjYV/F? 5T\`0,tEwR+NWg{?۴m6.iv_v[eYk5ukn[ksst3yknsssoffSsof޽z!c/׌hq޽W?~wϟ>E[Z4+WRNW)u\eSN+9~ʧDeSܔR`+J9J(VQFO\@VQH0`W۷nv nݻEǟp&!B-ؘXȊ(QEZB0hCq*=8+LaQUjqEV(0(FY ㎬tiqXAr !]8㎑ + q ȧ A㎙BLI$IVI$$i$dI(ӒQ{NI$^zBI$II*$i$!BeKKKKKKd3c1S11f ?>|s߿~iE(ʲ(VĢEWMB(V٨L(b߿|﫬^{=ׯ^=z^.+>t /#@8.(EbK$.'B_;KA۾WG˗<8p&^]Çg˗.eܹs..:N]۷n]nbbayq[6lh흷nݿ'vBB͛6lٷVvZ4if͚M4i0ѢM8mVcV60ٴfܦR5fW5k]0&f% tFɆ|fϖB\ƍsGh5j\X/l'!hjժ17/F_۷n]yv֠ݿv۷o.~g%fͥ6lٷ*aVZkǘhhѥd6ligJ͘&a0cY2eXɓ d e%$2dcŋVCbŋ(2d03͛6h3f͛9~SI:N zjjkNfffdffff_̜TS333/fff_̿555555[54ֿ^U <80SL٧вeGp ,TTY`-8p᪇ 3*aSTa4ڪ&iqɪ$K DU$H5('p"*Rqq*0 0FRaaUaP 0U$!I$TBI$IJI$I$I$II$I*y5$N8w LX 4 X 4N0 80889   aANE0。' ) 5A$uLRIQI& DA M7^T/^Tׯ^I*& AA&I5DNTA5DB$I DAC:eC 2Jqq8㏆8㦘zȄ'/_9#֟ VMeTzcw?v} Pqӹ_x^1!iQyڝΝ~\_E@YyF+ke'E41"H t.<~Oxnv+ 6TS@dF]۬r֚UrDȲUsnDy^w:?DDϧFRIU27 KmB1W!ʀ$a@,jPf&Zȷ/C | }_188qKW7e,~? ~Z<[kesuuu߇\.OweyYM焋;G08 |>;/(C/]4)ҠQ3a|j%8pp0$RH^%$~IH@B@ !$I) ) Ԉ|d|ߧUtx.71 x]"-ntM^rTa I$a Iscz7}ϡٰso 0g __Ѱ]ѱ1VcvxwYh#;Y]^{{^su|Go2ǵgW)d$tRyߣ5=1'̧R~g7I=m >o[? w,IO)l_y%dΔVg?k kevە{kZ;,}'ߣri=o}zo7𥜥nv_־lI)6-y9IM|zS{;kZMۤ+e}lYMÕMòRtݳm򳣲jyOaJo{ܝKdIZiwkN6[ܧ_))қ:ޚWmm+)_MYmRx{= 38?nүRҫI +K=Wohknߵb]?v\V3NNֶos3VLٔzIs䒝 YɾM}Yi'!){?%,9}}NÅS٫8Ni-7tsv5Nmmqo۩?}US"?+x$t_?E>u4 l'ޢ ëނ꾜Ϊ/Ows35^⦞O?xfԟ:w?OTYXo NnlgaM CoSҲJCڛ-+hcSk>c-4{ef+:{+~]k4Ϣ.D׿]U6j^}ªw\wݓ]yIk+UtZK4] lEٜvIr;Yoc_)N皖\go-[)s̔=BùݽBw*iMi|8ץo> ]~f~*ۯoŪ /\5gW_^ K;{YI=]^o Y8n]K~=2zݴz~ A!@dJAiZ+H4r0mr06A6Pka\l^+Pr0wx;loA@aF k,@tp]nra͇snRl&NLl$'>``>t{`?1?|{{'O}bw>4K'u^pԝuRNx?I'aOG{'__ѾG}})dm}⏋OOL||/v?b}=ٿG|"_7a}Q}/ԏ}7>ԿVp|w82^g5'/$nJtټۺcp.jzuAu<__Ci-^ ߕVW)4evW-_Bx~v#x^d|N o*(\dԝrN/kZjظf`˗.^nnmffwB6lyۼ<,<<իVӿF͚4eK&\o7ouj_x:oV8^VS%^*?r6~_o;]OG}+%;ڝe3P2o+1y9+NE2?4Ǻr%RB,90q`o>U-)cǏ+ }Wx"͋9$I0_XÛ"&|7s"Ɗ|ѫ,cFEL||δiU} F>~LwxؐFAܙ0e(ZQ=cX3KJϣa%,]9$H} 6%:tH{FMD};7'Ɖ3|||ǟ/*cʆe̍5#FƑ&<,VbP#~;RcJϕ}')Neϭ/Sa>ʑ:Dk:xUM6|v;8׮u&1gSa;| ~ dxP?O֜fd~?7LcpMwݟ:y>~1}}о=Os6uZ譃W]|rA;+#r>{S]ݎ.TYuSuZnuxы]8&kssTtxWX1p^#/%u/*t&Tǎ9'W;+º}nW2:F&xlwPhRYR~*-Yt;T)1H$?g2ďgg/@/X(cfcfy/3l1 G8V Wp8ȩHɺ:) feT;++̒eҼʻ~d9@̀|jٳIpGl;,)dƓTDAD"X<[ʦ5ي?ÆBˋ}{Tc&$LLK`i/KŚ4K"Dg pn/D_ZtNװ7|]o,[oۼϗm?ۋsΧ3x}Bm2.G#WPs;{yo#}~)=^`V}WFQpR }0FFs .454to{6>;Gy&DLiPpm ƇRU[Ph0'K JޥK+e) I5!xFZ[Zdݨ"t:@{w@ !(>k'?*L>Z1kZbb`` +r" .-ṰEti.fXTNM*՞8q >%gdf=1](DݎJf!* 9#UAɲ<,VҔM1AgJU27G0úkPvv66p`~C #i50zL1 $D@ jwDr {z`vǯVKؑbĉ4 ZH؎{3f,y"Cp8w@: /|Ex<7d[QXn 9HʇJbI $p 23jCQ\$=]ߙ$Fwsp4˚z1n\Ĺj "b㗄[0c !'mg6u/_.xAADD!1 f2\k[hַ(m[l;ڸ8 e*T=?:o"bPC:@@BBZQ$tph!eATGTV0)f͛]Yf͗ ?fA>lC'4iR_/@Z.݀TI"q*GCoz]A ȠHW)2yu%p@i:8B1:7V,|=z2$/Q<7g/zg:洩i;N6լ$#ƈ'_uPm %tkiKQB؄ >A#W< /}߭NސEcL>T{]84qs9ד_____A`խ3OyQ*c2 *B+ "")"2+"ȬȬVdY3*Fd7KdhlJR<`^Uq )~g^B>Ӹj47 ea!,ũ &s'{ņl H4ijիVZjիFh 8QB1{2pbᑹaD1CUX-1 ?B )q6[V/JT((g4_W-5:}JYmoP\*2Rh3t *A$Sۏ }_>&9bH ›g0;؈:>~˒Ihhh4G&(tJ=2 @AQVw-hرbłc&aq Ngp7P t2LuwB`Yd`<#vȽ``n:w/+//.`4-V;g~:t7黧N8"bZhpZ#8@jij}&##h>glx?'Sg 58|rJ0A|0pmZv6\ͮk=2N$Dh5칭GLqR ]iO4iS1m֦"֤P2rj7:WraGr{'v:_'3۬`x/nv] 'Py֞<=;vށ q.j8=+T`ca1A6FA[ym?%dqH{Oxg=Iϴѥ,,!lرg{6l0ԁUU~> _¢cjjX i8?=h ks>Nխo~;l 0~;\*1NqN:TҧNJ>=gwr6Z!LUUQUuW7|>R \pL0\x%'L:fO~s5?BXMYk5%e>+g8bG޹gnOT nlchK$ n|3V4wvm :7VU^i.׬;rWK-~<'ArMsoo7۴7ZO NGWEӦ R!d?%:JiCN(;~g]n_;Ozx}r`daǐ|ifQV興U.d>}iSsxW`[,ϣl[-8NQA?xbq bWFG&`bKsӓh^@Zcm[nݼv۶#x8O5.="c%ZӅZ7Y*JҔb{Xpr 6|CדȈ4ak9 Dq;37:Vvvvvshck*n!8>M=8xm?t>F)Cxt A[QX>]^^^^[QX`D `Gqryvvvn?S?>|8ꨢF4HяxfiT=UNlF]B`\6QԮDa grz9KwzG"=A S"t}N7tSO 4 Y3??>Q]I*cbc/< 8w"Ɉt7EzN0.zRZ<'UhU*_^m!' v|5XɣPF۝P[ o]ӭ\ ___B{|fF'#1**[hQJԠ% Vz!\ 4Oњ?Gb|V)F,}w>Wɻ +^kL===9ztttyCgDEPttI[,TH4YUh"5,_AZbvK+~ nYt #ޗ3ƧtY1o[`ZPt^&g-/yoqnlDDX(xDz`d"!wDrʗ:?pP~ߘ}WӜo^otrPT<n ?ιEli"~Q38Ak6Y>Oel[-/x8Ԯ)9U}elZZ@( OŤ_n}_+?k`_s@f,gpd `?gz7cǏV}c y&`Aw:ABοu숨cT5gjܹDf ":j`kj4,0j Hj(Jj Ӊ3u4/i 6a6YPK \U^nĵ.|6Z-mmD̶̵^-"fPmGakkmmi5ͭfkBmZ[XMr9ͻZfBsO9Fխe1[vdX٫n9dv&ޞb96f۵mmfLֱGY83,mnm"eKm-k3rf[jlrHgelo6^VݳFadŢ2d6ֳ&$|yYs&v2loGb#2wm[h-p[4Q7<թƶ]mmjMfqDP'T33C?5@v;!iiihH҉&TQ(kױ.Ō a&S=0?4hILκJP訖XQpIr04DR΄q=ӈ]Ft6 bjի:Zj՟&b~ ڽk=3Er=Lef#);QOq:\1vSDf##veNAH!EV!,j_o9C:rc鐌k_#$aFֹ'^P:]8qNw Vv9Mo.b?p^4իos]{q[{ ${@8bϟ>L d t"T@F('}b/ŸS9C43X (dXxx#?EfsoR0K7qE jN=HON&q.%3eAJ*TR:*^Sb5]zyzHc i]a !@Sz[L@br@78 h˂J8+| pH@B@BB@ =GĽRACaK)A06 al.v 16AD(wH`C ͍ 5[>x@}>OpTC3$IHR `bF C5P(cBQh܀RrR [۵S~aX cp%qW^V2,PH*knjTquJ8bED`H؈9F(ܦ|@@RDu9'xDm뽆H4dHFZ2hЏFx4 'p<4ۓ CCB֑"G\NSrVWItN~(\ƏwW3+_ԐQ^b lGA4y˓'>Kyˮy@#햽el*D@:8Oillllʤ̑\$ L6y}qqt9JzO__{mm/ywSi=cݗ(ٷ^NJo[sYgyDEoC^o);]tl-q4aa~6G&8U_}rs*vFhx}>gkrKo8@(gH$ xHH)~NNnI H<& c-s'1\P@g!BR2(|!Hg1{>];g3&nA0#|&+촾6ʘWXH aX;l$A9 A# #t$B$ bWɗ(PU> )o2NumyBqhvSA `qC xIwd@ׂgqS?Sm[pZzzsH s:pR7Y2"JS{*uPt3ac}({8.̶`_72]s\Nu}A4yuUW.O_dͬڻ7Dz_Jo:4|_A޿Xbŏf-ZjիVmnkuӜ rznwۋy"8pK4zxΊM'- _t2?n|_d]7l8=+;sco> +Yn5l73.G{7V<^^z6~'8X?Qm]@;;wyk%ִ~ :OBc>6]ݪRpMuu#02DNce of',_N1bby&/[g_}#}$"OKf}HGRʥ  3&$E#+J@_pS9h@?_[[[[[Z&411Lf KA0evBTtB{jx*|\7Aq}4_;7DLRt[)G Bj554'jjijjG(-d ;SOq.Mr碁_@Cz7cbl\dZCyRLERYqA;~*: h.Ȩ,W+׭Zjׁ [m^VZ1SZX ,qCwN^jM)ȱϓ+պ^)_}yM}uoauO)cwlHE}Hu{sB3qKr˘Ν:L\|ϳ[hf.?|o>}B~c~ǫٟWDvN<9q|4*1PD@7{\w~EuJh7yL?fqyg,LO'^r;.S6^fSԺH],М("rH(/h]1Ȫ8Xq#+'+++)s*{ݘ>z4vthѣO/Æy&LD2j1U.dF/k3.LЌ>y~x].Ǵ=7HɻC]55uuu}@E2AAN3OOu#S D٪L!M+WTC3isqO%,Qe?Ѵ2=K/lwW/꬚g)%4tiii4 ĺ>55%{s3( t(Pe:GC.?LMޒb "C ?WsN9[>nO+>&+PEVYfTV'xv'ºf͌͋pBȰrDFW=)P¢f{k:w-qs>=.&IbM^KvoE iihfXDcEd+^JN2E`tc@iD5;nқm hgZv>w\\"Ư^zMU2Ue4I:::/?ևCC}Ɓyr1|"->W;ăw:XK?h f͛8lرbܰT9YCshm喓%[UtUFvηpwԘu$ԕs"e̼{ӧ3z*<9*cxX $,g_<`=DBC@xSc^tӯNɝ:uMaƄTsPT=zA:J ""诩U`Rq>_%4JM"N'dȝ:tϬ ~K$MuZj103E+z{O&Lܠ]"]ݍ $ !BDEBW79q[[xW?u9B`<20!zv u6YzWx([Yb&]6lDe9JP ~_- A(Q!(giƹ>4}g_@l%cLl^+(>buEz>͏ێpZʩ^7 aݿ{J{:;y`TҰq1YA,jZckKv۷n;vۼ (?PUA򆊍*1 1I9.+]h(BPto>YMB!D &>^_/i/!yMSxjƐ B*CVA 4%] (HI Gpw;L`3;lPU~uw]qG_s|0 =1c.v>U_,d]) &kklݞvg@d.XwNn"y}_ 0GBDL8Ε;:t ߐV~ܿJ"-3p(Bxgڍ 4@!k_&w=?3K*rCJtӧM$IS$f>2S%T*JI9IM)50U qOߞC,#}3S% 93ѣEDD#7J4hHNqwd#^HL9-Rt_/%!~"*[(2!|n?_vޱh8!0tjjU/SN0.Opr˗̵TVLTi1Gj-I"_n#O5?|7[Y㸠dD B@JjTJt§N:t1@!(Nvq=cCC@м)X0b XGaR(/]װקugzW"[a|LOvY[`vwmjn4e -Zs?o2)>""QTJBJ*SiRJ+*1v(F 1Gwkx-v]ԚPB(RhEnQ(8$D^5Qa{fY ī2Q@c}x&xW>cUq_i[z~Z^\ݶҽKLRGM4֗t*QfRbC1Fc>Wv:s[v9t9rsss9s;[9/Ss;vns5Ҭ+Z5l)FbF1kqΜ)nsKs9s9rs9rܥ}irrrrtrII׫[ :NNND筻NKzͻD9䓯VngmԼLjmP}Cj(nqUB"'JrzWZz7;8 6lJ! U/s]f?WWyt;DBIB 'СBhq qR:tӧ DKm1Pxqz/'t;MQRspcN /q#E>3_'tr׺F{ǝ]$7_>mJw6dٓf̛݅5Sf͛6&;рd)! &L o&L2%1Hf ɓ-ɓ&:IWS00fLu2 S&L1ɗh``hdɎMɓ0fLL3ds/r&L2da%ɓ0f? 0f9K .&L2eK2cu3dɓ&Lxٓ%M䩮̛6klɳfږɳfͺ 3]̛6l۰w6lٳnUٳf͛v̛6k&Lx$0f`̺ ̙2dɎЖf ɎD˹&L1o7FFFFD ## &,)XO >a;!RI&UrorrrrqBLɳf͙5^M6lٷaw2dHL0pf:eɓ0]0fLtnL2dɓ&LfD2f ˰1ɓ&L fL2dɏ2dɓ&Lv30pfL1^̙2dɓ&L2d(&C3dhHy2f ɓ&=U)锩RRUsgوa1!(|c?Giӹ\Z,H2YZs%.?sW9j"qXVWWZׯxB8ԩRE*Y3L7lhXy^ffeIx"U^ʯ"V" !ئb]\]EquqW2YYF`3%,2)UV* YC1UfIU]u]rP̆` ̌ʪfI]]uq]q2#""2*2"HȢ#"ȡ#"+ ,GW]]]UHȄ)"ѹ;ֳYue誵Z=Zc gf ՝WUyUU,STjZVSj2^VVQT/}1Bxw$rLy9997u>g~vnnD  @: Fz-"O?@E? |wf8<٭F*`_=S"=Dp5OZjիV@ȿhkaafR9N5q9ݾJhB{hjA?Lk`Ih%egїG/"-"Do3]yXsqMN2J( EL1 (Pxڿ2;ȟ@.z2s)ӧM>C\)ӦQ(A.rD#t#[zoe] (Pң/eX]40PMƍnDd6=)J5#"96%~3"JE$ +.ȴYhQd+ v?$o vW­^=zxC!ULeiA:(8PG b5VȭXVZ_ᩈHC/_CX4dH8m"%CfXu]澦{&4P,?bŋA2nmtlǙd2bBifa5fm|HCp܇Uzυv]eL8vPB (PzT 1Nw^-J*N*TUs.]jZ2|6ĸeM>:,6G'h)v'tߓRCh~`gŻb͒썖_el[)=E9M= NfP1cWK 6btWc#J/{&ßxuw/=캽\}ێwyy[?eϕ1 Ĺ2>'x4˪$$:H}7xw-!ʉԣ (掣{k?!mwwۧ~tN\v籴p58/Oa9j#Dz>Qg7R38Ȇd}{ /ĻLWkg8ڞl`XnǃE{! r/GBW*^w8+W^M'bc9_qh75W/?!(O y<'ϟ>|Ϟ> ^븺J# eg,j*6 ?k7?{t^gIǟ>|0Gya776U˙T- Ӗdz?|N3t4FPEkÊݟ:~HgmN:tӧN7]G ߙR,,&y+<\0'b"xUvot4'443$FFFCF #!<%Oq>nvvvZ.K%b\VUEAzcboppyL"(_hѣ~} 4hѻDA&gp'ϟ9ib$XyʳLg)gVNիVZC1YVlw%+6sL%}dUQXPtwܷW]o}TEZBJtMRJ b [>*6msM]r촸BիVDFL-\ \oĎKG2mBN_ bݰ?{B?sR|W/<(fcɻ;I't/|}Zl/Og?qa_랟V>V}J*:c  /N d cŸ*?oۿnOտE|ޱx_&]xWQ @4T@l }UQ >_7=?Gڲ{V-?|wx[E_y`e, IܢnT3ξTYR Ɣt+_"!!2aei[m7of/0{l i0hd)I4RP$+e?C{gkɻy7S4rmV*rZo} KI %( ek) nOSK~^MYuqߗZOw7dyPcHš>.zz4C00f4S @AujANf?9AHDrC(IRMw F5f& :qRPB@D$=K1\_Hs$eaGTJѐJ/1QLb8`s/piҘZbAč"5n:8۹ִQ~k!?Vwj$10K%+IR vI[//wiCq|0C>R!ӗ^<}^s 1lN qhд zD2?&mSO~~|d~h?h=(#ocyX*0HB&tJq+_ ޏ{? L7uB~X~-|{q及>,j4>LuGw||ZH>}ڏ'8>|i1xWWGXծSCozS1`Ҕ$[)A) ~ ^JRO+nΚ7$$)$i)mSߊ̏'$0A tB3V?h۰v%6RkT^k,fO'VkV)$R+FIK>Cdm^۞/;fsF31*)!\g,ٽQҡxyѺ7AP !$D[ǻaUY$DI)"5@JQ)T")8k驉MO JjJP);M慐4!P[.bL>]0wv$g@*mPV:neXvy[P$iUQ!*R*U&m) !Cqpu/@y0Nև^s6[+Zf݃rﻓsZ-NKm֗`'[L,2Me }kg{7eUBՀN=2k0:2}uw}6l[¾^(ȔJ UcE٣m9流|( ޛ4tk3/1>aonthSe@S[6 {dQ^, :Swއ8oQwW X>Η kbsrڀ|;Q;@c81bcs6ʧ]-ϻ13Zi`s:h-uݸlRhzt:4))7y·VֽuuYE̛[X pzSTҚh=קWI@J}ID8Q*R~L4ИͪLŵ;?ur~smT ~_twb(PTq 424JRހ ez߬"5η&%ͼt1^E"<}|{ڿ_fDւ ̀U 33 *2,P$F@Ad$$D6Uh~-v6v۷z~`lr K09lc;1yJQ+_TRJsbr)w 9%  33e|p]ł3C@T ɐXt ?mnFanۻnۻ 1K5IyM{*5MU5TSF[k5TDDFnnۻ|ۻf2aDE,ز0@.Y$M)4 c2#((82A11 pGT1P*.UiWg AEG12`d D@r` A2"QƂ4 DI қ3I}}}}|j/.\\-Zy߷kq!fU,V+b,20X ,` bbbbbbbbc, c1c1c1c1)JRc1c1c1c1c)JX1c1`֊A؀A E \]ùeaYV)-W(Sd&`H֫[P#SBYI$$甃Ӭ'][Y*_; E#R%eIH".ؤJb'iejdVY%cv;U\"JoM+f7zʔ 4sKYٙ^l !B<"aS bd1X_*/ mfnfhI]AMEuMt@ i-^/ez_?ԁP |<*U_8ƪjUUUUUUUUUT(TUUUTU QUUQQQT !"*"v̦VgHHB {\DEݷvwm֭ݷw7vkww[#ڈ,f,"""0*@*!2`33/1}G{oQ|@;[ NAJ[!j .;aaQK)҂bBB$%iKeYX =E0((('  qlZְFB) buBRXű{1c1c1S)1|_/_/1Z1|bw')r/c1_1c/JR+1|_1c1b1_)Dl[1c/û1cĥ)JR1c1c1c%)JRJB@1qZֵk`Z""| Zֵt׮:}mJv݊S\sxj p9PV !t.MʜؽW8*iI¶6eIM+-zc]|8srrW;Z/{r}d2ߣ7䶂"99tsۣzqs2l>y:46u5뷣m]۞tδz8s߆tͷʗ{ۣ6˦ύτrmy':g^O<7ٻnmѻrsS. ɳ~Mm^3>m4ϏS,|ٷ_ˣnNn^nK'Î+xּy~ێM^:9v>s׏Fͺ˻nܽrnn7tݳ>zuӗ\iǗiƶ6͗j}۸gk&΍y6tsӎϳf͛6rʔmMt㮹qٲr+C~nyvm:-/~{q{qώk9y5ٳ{ۏ./w 8tcyۖӟolZ[B02p32r3332//././/ڶ֭]iw`ػSl9^uP6PQf~゠VT8eX(U@BPY{PN"(pa )@YHKe5 (7w 8ĊD; N LМ;0UqPكU%RV''‡8a `Ä#xXA@DFa!"D8w AB!!B0*@aܠ3Aܕø(+eDIB0gPøP\*JûGp`Y{ ʢ ^4L_G6Di0p +pIU\8؄NP X;v8N''w L; )9 A))"p  Ԃ0RJR|(2P`@ bD  Xw(b0Fn Wp8); @7Cf0`HJ:‡p;(p1rq"]8p -+0CP`'pJ# Yq!‡ @Pp8Rp"Cp(WT`8’ ),H 8w ;T HL;0 0h ÇJÓCJHɃDbp0pp3 /8@`aÓ@l8g(RrrD(v UH(bjH Dh 1"+n;8u…Urrp0pCfpÄ&%@('pfp)!#&X `BP 椬Pp\(VWp 8 ,ࠢ"8BE 8P*Un p TDJ 2p3‡ & pJ(p +pJLy*4sJE!' #sw (GRh,8F( %ɜ8p8r JA`0Ç JúW J6hVXpE%N; 800!*0`n!(pIip3+pËY2Uy\8WNჇÃw NBR !1C0H ](Pðg0!‡ B8U);p r @R% JLAef +0`L`C@ʬ M# Օ02PXaX2pIdƒbF (% 3 2 %S5hnT+$Bb`ᑔ8`( Cf`B f`LEIT**#Pl3`*``(U@@V ʪ݉: U ā2ĮN05$c` +3*0pF# uX'bfJJ(U3`L(`j'Dul+j `"Tb f(&*H TwhT@}Q""`(""^oőh@@ U a;;nBoJW] !UDe3%cF0GcVie6fOz5zL#sbloQ$/H,QDU4)JHiB#H20YRm@yAFe <@g 6wSeYcY*:(5evU!p!F hdyMQٜIݚAQ a]6lEMNvl)G}I i3 fY%!a  GgEo޺1%qp▤4 DXE*& * { gs/^kz4:11wi&[\[=eO/_Ȃ׮PoݻPDDJC&vrg@3%IT#l"b {9wA}Q8ܨvob 8F)D"V#s@^ mļ`~}+Sh)zuݎv~SՊ5ƞn'ӱbR 2f~͏K*V̕+ڕ+iKSʔJD G_|,{yRˡ,vjva5;rfEyIpu`@TO3u?߸>{U` Z(!"*$PrEP,EW]TYŕ 0ʌ*3 ȳ YE."(%E^Z TIB*¨VeɖeB `Oaw,FdUSzEDAi PS( 4"*]UB(kqPfP)B )"ЁUrT>G.#4Qo* PaUP$$AHA DT? []/@>Z7:0^Q.uCq,X *"$V{|Iz~Ӧc0L* UHUP!=e-U(Wrw7p`bBGvݓLCTiNuIoPdN `4hVԺu []Kunu..t 2,ȆdY0d( \``^"Ȳ!ȰBJ*].ԺK[t7Bt7n_EÄ aT†pfΩ]K]B]nut@)pp aa:ts `[.t ݺ%/ aE*b-+(``("8+p S C PuKED.]3C<gEEg0zM#]ĹL,ZY! Ⴣ@"\4XCa| e~L&3s%Q.Y[F_n.pܽ?3NE%nf^hark ՛Eg32 g3%l@xQHrB BI $"PV5Y/YgRl4J[-Y#@e ja 9\D+k/9̉{uf._-jcs38[Ya2ma9HEHBBEk$#$ R̄$ 4nF4"R/HHH);,Kls1[X4ʕa%"B$"Ry."Y{s+*i҅d#4%&gVgFCRi$C9e,i^?\)IEI D6ze,t i #G;W33s,[D_Q~3V9se+l f\e'K# (F4cl0 +R/}e!(z#und*SFzz!$hV!)VG##D @1fٟ{sSoc?i |aۃ71#$JPhuIdJ^ޱSk/nI?·.Uo$etVc XJƔ+ÒBHNYsnrk3ofx=\&Jr"s3,`[0V dȓ?>U9m̼Kmʳ[vܹɛ{HXܱ_9J^(bKY|+s2t.e2ee^g+r~<->~Y e[93e)2FCdJc! 響R H4v@O\nr]+9&nf|N&[fo "P%Ł\_sYʹNY,Ky֋7Enb uE0I ,$,4Y$!ORDM !ɗR3s+}bA+2 3JK%*uC |<%̳/rg.`rmWġ@hI(Z?YDY,R$$% F4=9LR?;%6h G d!n,Iگ_ve̳&!$)Oh|[0bP¦KR)Y~,ŒU ]!VuDꨢA~?Tɮ\Y_{Yr𙜶&ng+}[e~ʭX(*(n2ZBhfgǃ2Le2[Vo10UmrxYx\lHګv2:[/*5(BR$zH= eːnUdEkۓe-7+its"@̯gGЖX؍ %}jIVJJNBFfoeafvIjٜ3P+c?ĒFqdNJzt>˥mrf{-%Sg-@ʶRdnf3ٿ\EH TQd,D}s?jپ@*A B8;!E9KTUjj. CJAn"*$  |+Y}_qK6*XT U*"yU7;ݿer]^VN|]`!B@@H_/RBPE +h)SZQD!|D* *BYHXP]$"Zo"(a~R\BaJ(@صk]]8(TTT(PP+Z‚zk\[caBbd h0"èPCa(]D b(a 1@rT1%KVn 7@..a@ĔQ.t-nA.DtK8 ]@-ԺuPnD0Da] h ˚Y Q,>4bR%HF.z C?CCލCCCCX| .T"*CIR࠹T4i1EtΘPr (h ."b*jQ5 R ]кuFKD0 F" Ѹ Q`8a!U2*D `EE9/^*&ԻrG7wt_}ORk/m=ww[fq7K.R))  -k|D`7>H|=zD}?z#螴R   0K zР[ozOy=w۫8.\s⢢dP8PB(*P*U@Rrl_@\ (46g9AO O]< Q);X0rUh0H|ĽT 2J j ^$,J hP" t,D$H7i=UFN ,ULh*#" j QT"Ȩ*F"H 5VVj՚um4]u-е mK򤪩$]u`}Q*wm9sAx;ޜ:w0/ɋ| 仾1qq}dXO^x!2gǞ>J 5Һc*nF_9]^+yoe$pb UIJ k@*#PAsJ#Q@*#Q@B!QLR֞JPBR-k)hkXTDu7Amj.TntAAFP!ɗ Qzp#z h ` Y 8 @JrE-AJQCڀ-mjE.m pVURI_<3<3<%pV$LjT$RK%IUr"sC:[7vݷt9t 9" /ʒre Ѩ DNcn;zNkTUBI$*\v;;+Mtddc^Kd.e*) F,ڼFJ\ YYk5 B%F5htjh1"UKi 75VK8wQ'~_{o6>ygMNG}uHZ`x'Vl|/קUɻ4UOmrIrUt'Qꌣ'eE_rLN=<{/&Ÿ$ U o7^[6ȟlBc#찞:9 ~ %J_܈j"gp>O~Z%O嘋ʯr ?13r}(~W/,=AGzv9Ӥɏhg_; ?q4rJߚ⨡~.ߤkv iUa=I4 Q˽|naR'C/i=ws?G&-uZo_Kyf20֘L):ԯu^OU%D55Oj}9G"+vk|>{?^S4W2kSSʎy*St~-l9 |Gx+ "H^~Cis9hӓj;ɏ_75/+OG΢Pd/E^2\|E;%+ E|[Y3x!_16R:f{օ~m&4G} k *I9sM|gp%+QN /%ܥ$S^+jgtëY )x﷗z~c?a3p^/{OWǝ?419x RaQ{/)_g-GQeEAX7(4?7<~g"6kriQ;8^O7ͤ} Îsx$` xSE\u7Q *z.^>3#"ҲSVN8sIFԟ}%]}>ki5{nyG6 38tc|0}~,5Et#1x^ӏ^Ϣ|!Bu:ʲ0B7!KӒ<4{~KvfOx]O۫Mܦ L=ںT=3&u2½v&Fw3sת(Ё@oJ_|N/':Es;fzV{r?{o~sh;4DBiH_&߽ՈD[xgW4iͨNRFJȠZ(Z bh h+x @( #t PH h%"/lz-=+mzg{P*{3\1ƤJD A"#QD KR5U@TR]jV"Z ZAV*`>{?yH5ZZֲl]lnu܉p)tPR TT+PDU$  D"Z +P!UQ%HZ UP%k"UBVZw_K}鼇@̲wmfVmyCwo)?>ǖ/+>2>zJL fYD$Y M,"6 @A UUhQ.2*2*22*2|c9 XҢh>dQd|{>WJ_x} ̠^DTkᅥuؔ *4sx1Qw<G1>Ur&NںtU?({ڱ1:ʟ^աuїW~Wٻ颓yMv9/oM5=8<gWKx߶`T~Sgqwˢn8D}1yS| s?A_?th}M:q{Ii_im!kߡQ!29<v|ٟOk 4|d]_=ɇmJ~v{48`?? PgrGN/nJMWgs~jMF"|/zݟro—[awy}>фd~b8_?ǀs̐:mDdC5V~u6+3 l36Uu OpBǍNas<:є$.ē;)DsB>W?)WPl 9M`@nc@]]k͓&f[yde%35P 1}ƨi\yf${My|G$#K\PmM?=@HܪIefI|$;Og};i럎i?@WUsۻ7eٗ>4Mz~jn՗y%}7(Gؠ3Ky>VO564o FQcڣMA0A>KRWf^Ce:X{ۤk|ms2/Hͼy9t rNnyl9L/+mJ߱% 4O%$ua۰Fy+.DnF._fgAnjTgPzT3ޛOoGeT:x<ܐp>_\k$j/j%9|:aUvT$רPVT\qN+ u*"~$Ξe:7>n+nn.c_yWW%߆ߨ8q$ mz>3>\(1IR{ǘqb`_az; 8c0whv'iOȸp>'@)DA Ϧtaj|zoǭǟus K~̈[WoPe#<85Vg""pއ}Ljbh# 6uh!a[PƊͨ+NH"q9?9m]1?W֒zLeS44@s0BZltf^3K6Z,ݑ vJO? 5;%]=~b&/V/|?\7+azqf^& .SgcXb4sݧɰۼ$;Q󅿿y> ߿q{&FNzjyaVԨ .[˪/c`»ø1)51s LJyyޟ8&Ƥ{5̾:'ԓjH$OHHkfIO%gleJnN&Lr^vN$wt"zj'|#75+0Ͼ6*|GG#`}N!"dudIcbx|4~omOJ[s{">k%߫-뱹¤IiH~ܭ싔k}?ҥZOWw7x^Y4 )YK:vRHctRă Y鳯gkgvy'ӡ+ѫtb9gjU;fNȯ,eddLn۬##">9n7&ds[X۲ﲙ["faLJص1LZtNLneǙU}PNFket=OylEWưF@zCFpA ):_7__ vaz, B#Pkz}~'Hm'n >`~_o}:ED6)7}aJH{(ؕENJ+y ATZ'kXZ96_Y9 ljΗ|G|vLP+!l,5S_r\Kf^@ɸ9v]\o)uurJ!=âr}&lduƓYg=)P*+tyfV}8}hMսCF:pgqs5 2AfQ3{& Qu+4 }o{w>tՙ~)=?Nr`Mp^>/QXxԌ:EZqb̦B-ގ `[aeRL"}|ȅr,XQfF"Z(* Bܯ<0WA}YLS!n_:>};OoF6mxWu]WUz/Su[,>IݸDXXT|u}_e]Av>G #VzL%-ˏvydC V Z01AlwYXqp|h9(p@wh+ Ȩ2*H""YUEEeddf`faU *-~-@*-@*H"QAATm<󝇹-o9߿_i?ƌzw=Fy8I^a}KS͂u}i_+ࠓ&QBp$\?faĖǝ3rps3?r_A΄B —GC}&Nl2yPY* ?z]vPuo ^\au938'rxxy>K#&NK q>A=FKSJf>y_?75OC.b;;&N FCL1϶gzOJW az"2R2BFG=ϣEx8p_/^y۹R;w~J >~Y='x}ԠwwϏmݺƷdt2;Yx_}K8PchPyZXظ.!a¥uXFJXFcX]vi𰰰<37 LC6\7%ɲIJ\S \Oi <~:"";j?moZ.q `$B`~'ϯy ޴94}6s>L6wwgFm'~Wx%wg}OzX}A9^{Ywr",?ӿrjko+kl:#.6B.sEs>ߢ.xy(f'P|þ3zK . ^Ti(zHH,d_ϸ+vkqƜ'O}$W1/̒Iږusb9o?=019[0lJG$T7`Z^.Vv$+81VU*))"e!`7Q?';S-˦l4sQr͖gi/XS)mJCmfsVׯXM]O'TAȁ;ݾ rr27)cKGۙ> <pO Biu6Y2̳ye2/.!]==LSș1*!;9_+x[y|£{;TA1F ޖPW-C-8/sm.rC\UIzߢ *m/>.}GKӺm5_%K V9u gJi0k2ވ:KLԪ)laRMOmhghY7==?Ch܇ißpowp/COoyg#6^^^7ȇLsTfz"3(fb6/㝜OO$N2 n6t1#yg#Rʼcq0z闻)|wyr(Gw7dGUE * : ,84bgffq+[,`سD(D‡1Wsr=W_s4TQD+ TsmZhۗaIfjD)7tFE/oFV: fY9m ;lIy|,/׋}i-),VW+}œ XG?ǡsvX[X[-(e\1uzugnTju-)WsX z#Ѻ:.u]}WS_{>|W~{As] ȱ_DhR ‚/Vϙ@ƎrVQ/KczT.W5Ӏ m8N' +]چABDHʼn@ZU0<)r7c'AO~g黙K9yxHԂKTiUKjuU`\[U5ޝ...1VVEk䂩UB* 귮Ƴ[~^cO9~ǯ&" 0Zߴ"""- jmo#@z~4's).BD3 EM1/'(U\_uF>2RQhx"\L2d{BM?t\OsmMׯ<yq^9:=vj?y6~ϙrue|Va?x$Jb>}A4;'}|Q5PHJ5FBBCT%00oy-h6(d$$d$'g!]{}K'߸KBx:Nc Ln_5!]jQ@BHʌB/$j&._/7GV\ao6խ/rMTǹM)xlªQd)l ج{яk#'=wwk12jo&-cen!*ѕ5FKBs˸ v *y7ֽOuTapᶁ^rKQ%}{Hx^^639Ҷ; w?v<*2)E)_2sL/Z~Vڐݺ/36107a$#lMhViܶe3 j3kU΂I(BZ[2}ShJّ^wyȃjUT0[}*%J*222p.|\ KPdʰΌ̵UoaÜ3q@+!ZBR9uT{ץgyg ZkPJtZSU[ʕt R%ky]]\ջwwO]:nss͋/ͳf͛UUcUUXM#CUUU{McttzXӦT6OU.%UI$UuT΂mvMiâAotp.t5rkI/y~co[WMݴUVazH.ɀ{ᡝVv%ЪDpE DRBf,ʩwEIBE,TĔ DA&fLXf YDaP LdE2@cQQY `&F!dc%Tf)Q)LPBaaIbcLB E%@I2*BJA2B(0Ȍ$3  $0,00# D30l]TUuV)8nǕ|Rؑ͒F KO>|_ [(UǼ^tIK{E{nj@½Ķ,0r io)15}ԊY-zx FC R")P=mݟi彜IUPt$ Z}RecRwF*T>MX*|5R;x FG2.j!UZI-R  UTT*.LP> @8()V(/4@^R" AIj8}{p( u*C{\En@+/s@ j@i#?ǔcٴ¥N^A.@`4OoO ˫Vx_yN\m^08`2}Pvӈ8)8C[ޯdVIt?@ ЫI_oWckGn 6ܺ" clp jy{:;;zg**z((7vn/Fj'3ʧOGo?Xwb>:iW0PGLO/ϑ*,ր!yy| t" p%Kr:t)ƍNe{O͎JVQǮ?V:S2Xu4&4ax]=}#.:w}ݮƝ=GC U=?auG1[(b9EE9-dC"L|zX Hq*88qEqƑ#WhqEQ\q[sٲeEeʋfE͝ѷ6m6{xMѷ6}EԵK%E,Y谫bE^äaX a`‚,XuaKjڊ6nQEmV갪ժUVVUTtJJV%R*UJVU] *8Z8(868WhqEqƜQQGqӊ88pq+488Eq-(88N(8`m mEQ[mVhmEmViUmVյmF66mmFVi`ڊm#clJ#clFʌcj66mEmVF6m vj6nVim[QEmMPm؍`ګmڥQ#clF#clmFVib66lm؍mEm6 660mEmlmڢۦm[m Cj+m6vۦmEQ[mQƑ mmUF66lmp(o-GGϿ6Fȩ՘??!)GţJ*S5^*3kI22fw3ƍ5s7{uWu?4~?3wMk>=zmo1&nS\gjy?fۋUz˾75<ڟܪxٿi7sW>'5?o/=/0ydVJmZSZ;^ܘY 0+翀4(p]awbF_ ; ȷBŞFyǞx%mc6^% C O<5!urW  e 8ֿG/,ϟ\eSo`<==zUkuUDWלV*:g5/-\ܐỊ' RErB|?AQ%E(HcA[iOokoB6hal-C^0XAKSݜG0OX@ 7E+ 330(**2,Ȭ2$P$REdddP$ @QT G;{t-3}Ew 8ѝ*&&\apN?b\^&!,OS#*X(((''''##la}/CyWVSH@~+?OP\5v |bOq? -=^6&!`={pdH)RS[-^uŻ<{9m4Γr6y<ۓn;NNW/v^׵zA rWq}& |%ܰR`W}o<{_kb8:_ʴa>.&Ņ,emfMnO!%Vk,Yq/1m:9Ţ7^f/[1S=ۯemk]9{>Wn7v/ -x@^pYo y9}~G8#ъB)͢AzTT8>&z xa|PgbgDFg <)=̿|<&v~?+ u){X 4H^$rP [oIU,D/lPZu:&L9]> y{=Ec*bAEmDmifhJZ{ (A8n]A$|&!'@tF+Çb#0/A3:^waEA?>;^)U|" 1A?&兡{#Ŋ1$\kSp){_Ҿ3 .myS9|zoz1BC dq ^C!\nջ&t_oA RH~;@k5&SM7oMpxZڠB6\qzqXtZn[ZZk @~~coB"3/v "c11}lM6OvkG!Sb*UIP>tW+H @ ABA$ H@2Vc32ffW,!"Sy9N%Mӎϟ<0`Q"BCͤ@mC4g܁<򻂱s_'z~}8}DG?]ˊrs]뼯_0ȸ3%N'_Fbi" ,!hEG݂T]|/37 ̅\;qϜQ|q8f..阑N:v߈@2AO"PZB2#t  CCI/eKÎ+>+{,r7Yq^'v=/M!iFN^`ZKC u;noԅF^lO6!:/*(] B/xmC \GJX>4[// tX? V,eXbŋQo{#ׅm;[WSlW|nHآ(AO6>rJ$N*ۙ)@ښb*Oh:b}uoSмc ,qLABQCkP\K:wu555.%9pV)bM`α`Y[4ygɞՑNJB(2A߯Q5tVjq5iLm_+^߿DDiF:TIơ))XwVhm:. `[Rt|dOXc$"<+JȆzg 7 p- p5 c~_&i[䷙Ъ CJű=1lr|}:~z{?{tvȊ >tu< ,48чU'E>78ؗf\Uo_^zZ L)*q}G]}}w׹I(((*0>@EP5(-a,!{Nעj{'s\qBuӰN͝,w!3bo};ȋ_wf812qg{c]OtՃ gȧ'9|2;} "_eA]=oq$_>/1>:ʟqwt'%Nyt/+C|0{H_붲,K,K6XY5YԲrAj0)gQ6Z,eJflcHY:6&Ahh փAPbOğBAAh5wzĠD`P3t?>|퐞aXPӤ(PZ !??:{'15 F>S ]Ubj SWWUѪja]Rzu Яju^vu׮0,+a`¸aBŋ ׯjuJv%z v%z]fj՚BerZjΐYeV`VZkD4S \]TW8)ZfjJ՘Vh+VZ՚ jj%aJի4WJի4YƂYXYYX+ ՘V1+VbVJfYe+VV+0}\Rv%zK}v,+bHX^ŋDK,Xtņ¥+ ,1,XbX,1,XbXKIaJdXeqK+,XV% ,VE,ٲYKv%aZ+bW+h+WV%X+u͕bYeYascI)j0TԳ555,icQjj4ZBf݋A,J,: {,XBL F+bˤ,ٰYIJYaYJWP^uZZ֬ f#j%aJ՘8j՚ j%aJ՘fsl*W^Ns 9g0S??=3 ??=oO'B|.eyd .g8cfk ,X,r}ySv2jk{\_C ӽ1CktLB҈{#{f7ז,γf 4{D[u`@ $0`\$"]!Bˏr׫zG A?/g}^gO׋;ϳuM/S~?GW/}G诽8?K` ryߧWk[:::yEQat|{R<ֵnj^Zϻӯv;L}}".%9BD$zC}|/t h>_ /K/va sp6^VyȎJc,M e;;&1[~z<-b}SUDADr"x>/k*01y( sssVWyʴ:O^ri/tIdRV4*ht}myt`c_4<im,R\2ʁ$DGພ>W]MpfO}_tB*^ӟu.Sۙ-/?·q S =WG|Ѐ@:R5(R1>Q,n&)@A(2rq|LV#7R[D:oD%7{IKi|gw[" T\"sfNTӧ"DD2 I=9jՅV:"A>6!M4)A.A/P>32?Oy/ӉǼy_;;;Mcj1տGwwjwiis3e !F'@; slv:pT# ⠋bdM'RWKkhG?}>gNS6iؠ w8x?GCGEFmO|nbwA=Z42& EC֪.n.,.+ݗh\8Wd,`Bkx{Ƞb.!"(,8/|߀!2! B>2(Gq2BOըws&?|{1Qdb꼝q.FGeۮ)@ '"2٫ .@bt9wknfk3ʹF-w2+gLi@NYffgV,A*ȫ"ȉh @ E- " $(D -Ae%Dm]*jUTyz/ErUڜާSj2/6mCn?n8{잨947}7pp/ߢH&D`4:pۈ}4(Fyo=+Nm:t'Nvu:tXVUmhwD 3A".*::::9֧kf:Nnu}9 \nne9sѠUqy|@nP>/-yo3wwz)9m7N\-;B ߡ>}LLcwϟ?sx4o$f D]7wwt?v7w/U^Q*KY}?z[!{-y-HG6Ѝ@@H@IzW\nm26maLj1H?zgM-D9陭H\7L/3>m1‰6\X@"" T.oi.&Uҙ*3bI>>DW.PCU_ .D>Rw͞wrnQD'냧 N:2N|o!]\ޠk[Yxo&Y̳30~O14sQ36Kֲ}G7aN/+\䩙RE4<ؿ 7*.Wa <mGhлVQOJm/?O촪ミ9bkcYepʺߋhG~ƘmvߋkX 7W.\r닋ˮ˻o= ǯoDhL654OiuPϊ'B#" X_@>@pWwoGlvX9w=fyd0G Ga 8C7#<ɋ]ΜOC&'j9T)!I}* P?c`;}:nP Vϋ>7,?4rwjdO^)qx_", H.9~__?7w~RConٯuB^&i'$m)Jⅈ3KKKKKJCzyI39 *ӫV7ln7>|MR0*Շ?WWV&t} ͞pڼo^G F1$Xoqco6[%\aV|>A'qM?mgv}!?~N_) ˁG[['v˓"WQCݴ=vkZNNIv|=%:o}b/~c~+xOnt1(q'I$Hs"d<6+>ޣ |nֿ|Ֆepm>q&WP>|U-q@"ճޣ|ffVOwsþUTs&W]GXLU~bԔ_ҩP]ݼcnY!wyj V Y2ҺlȻjUBnkn=dbpwE,,--~~K,,D ,adD4 0 0cM4M6X"ii@4Mܚi,i70 @0 @ ܚi7A 0 ;0` A 0 @l@M4eM4ias 0wiiiiL0 0  30 3lYeXYeYea 0 0'AׯZZjիVL TQGOKKGG B~~~_k}g=c0B h0M0>|ׯ^m^Q$:t˗.8qn܂l&LXwl0`z˦nn?kk[[[^uի'V]uuuuurzfWPjTTTUTT>*.׉=Eh|^QE=4hѧF=mthQѧA DKKIZSϥMKK-4ZZJH.DLu=1çOOO4*zzzzzzhNm=96EEAeTE=6tϩii))(R~=#6 ΙY,aۣ  UC1_:;n7\ūy y] Fg0pgvՆ.1z(,P`atؖ]MIlꋶ(na#\כ~ɑ$~լ/:|1eB248_A:6ׯ^zׯ^zץzǏSavO?|.[gudU'2TPA߱EDĈq…M49fYeY|^($I$:۷Nu8pA6m@٫Vh4hэ=UUUURmoUTuR W(PB \U\(PB \*PE -*(PB5HEEJ*TBTԡR(PBTQRGhjO>EMLNk:54*zzzzzx4`@ 5%$ ZBiJ*oZ74=}f:toZjF\q"o"zE#oi/^{?{wi*jn%54ƮbcYMK3TU'+]G?r}N?}ݷt{u61ݡ198!>uCƍĞ4hԑSFQ_5UQ>k}}|ѣ6lF}L0g4hٳf4}}| Z\6lز۷nݾ8pݻ}v ͛6<VۃˇPrv@t@l+Lsi}~~y{y_vPv>:`|<ߊL=agx;y ~:Oh1 ]v_oz, %E9.k7\$D'nݜ$+߿ az `y@m ?9?S) R)DyJ,ܪTMyDYJj\8Pcc:@\`̪+*<r"oª/k\!ƴ2دeQe\eF].Kz_"N!(?Dhb$\So"~C̛mQ'U͵lؑ(x?~AA D 1V(=ڢğ?śt{;m"?'Q?GrꙆ)͛JlX4Rzfnq``b&6ËSEq'>U fsB/"" vq>G.h L=Z %ll:8hӣF\5>'F(ZzpeAb|M<-tGG!*F]h~w$?LI+R $A e?/+*m:yu*TĩQeѣio=лٟ"" gXXhU1."\P eggj35,LLLLHx׷2lߝ7{6Xe c4Z,y}Xg5[ 5k@wO_G>UϢ}q떰X!2l[ͮkvmDTRBI , @@ @P@D̹bdI%EDEQ`PIBHL!(IDT%Q)Lb`*JAbCILR`!1a%0"b @1*bLDaEFEdc ĘIB%VARdd(E%dFabb2BJf$C@DaJ(dIC aRFס3۳?__CQԺdyBPp[Uk|o9\:?-iC4kt6,,fX6m\+,XC0qj284RL{ȞTA>8/o[K2Hl^i7A.+! G^߸U>3wGm-[kҠ/ &֡BM5GHXU0\q0r(PTEKC@F<_!IQHaD~ H@Kn# 5?A{j}#`UOUcJ1qgş>| /ꂪb 3:ȸۂ>V,]--(ѧ"ziPc1Ғ,*=T>r7wu\ yrc?Z8Oq<ꏦs"QITJ*U222`QF84DAii?APPT-a*)74mA*V?$;sOq 2̒?'cXL0bA'0m}Qg ӝ t:tݻ,ۦ4z_Ǹy[K+¹oa]\Jvs<]lHo@_@qB{ĶaWi DWg=x dn  @J˅Gr!PvbX@I2K@ B#*ij_5!e( pQvh9U!,"bL,1 "$d"E#!0"2H`R ɂbebJXJH&LHFJ`$)DJR&D$0 1 n֖P|8#pNN sHRMNEø#DP&pF @JpC/NTpÉÉA@DRx!@( '!)JE ČABRq@% 8((fFNpf&;0&LIrp' ZN@H̄Ó<"2pNN r;`MpNN8''(A99 8p"b& E'r ᙘ3 !L‚R`R&fbb+kkkkܲ+ƶ +;`9"ppA8! b 1"r' Rp8pʆ*IÇp`0fbhN10 'HC)C<b 1Qdr) &0`b99&dfn8S*)H *AA(D8BAʂS12A"99;4 1QpL3p_3R !0Àp0Y9HAARrI%HL@rrp07'R LL&!Ȝb" @ pNN r=< 3` L@RB D837g1(LpNN BNNNPdNNE8pC8r)wH09 J  9rD"G!"HHHxp i8rq17 R8 1NN 0`1O$JD1 A@)RA"‚ S MHHpnA;b A4AQ34f LLn8q bPAÇq&&&bNFdt0;p`PBPPN$r)܃rrN@ )8 f&i8wg"p' `@@( la0& AaF K&biȃp&%Srb`007'T)7ÂpNI8rA0b A0bQ`)%!6&&bf'O#r$(p" "rr,((/T 0`N,w6fi349࢔H83"#3pp:g0?`IÀrHJBL0v 3 8''9N"!F ' o"bnDSp @) ' $'%)9}rpAP' R33PP T)&&bv 091!!8 PRpp!1&!(H0&ܤf'!A7wvff2I@vl9'!17`ANrt$(JaÇLO3p @wAQ +?.BgoeYee np[wT7w8l B4*yJƍ<7hq+hB{V@?M/DDAg}Ͽ㵪tлP.ҁ$!>HPyl[9BS9nni6$"HYY9&D䦦XLUKC 7"!4.dnFK0v,+O_,9Y C-;eEW5 [u J"١B]6lO {kد70,PXhi(.@!kiz'g NWAiNct<ߺas"5&'% o_?ctBY~}Ϭj^%?Soi" @4. \DٵHI-"lv*b^)BL䡐/jݽ?6s((K.i^Zox]܄JoZ-hba飵dYMfEk5ؽf~2d0NG-?r3+ocw.w⺼4MiH4&% (PEMdDAz+?7.CæS\xxfo%FxYWγi%u\J*KY;h.77oTQmR9v3 qƻ 3d[}re7y| +u~OAw i$pG~)ҵCLlWzNv0JRZoC}&wƼ݇\k@-󿱾Rx;{ˤcϣzI4dlSNeTR4ADkQ҄B!B|t"i,hQa\{|KS{)䦄dxbҠ~u {='n{ZWw>ˑw~mt>& `d-) _X9өӧ;*t^3EDx3PTUis8foĈfDHA /F 궡V(Zx+7┩6}HHHHbȈKbqzDEQF%QD΢"dDDDI_`""DDZ#""/""".۩u"""1/"1/DDDDDDF'֢"""1.1/G믊ļj"/DExb^DDE1.1"?00>z n"?Iv?c;79{s_1M0OOW[al0hP(aHFBC*AZRj zmf?ܛNN cFs"Bl *$FTB,M-ZKQOuU6*-T$1nNdndrʍ Z1e:}Qz ߴ՟'sq%>vےƳ/G *B7*,઒*0`EU0*?6VUJ*TRcf$3mEu9KܷõMeѫonoɧ0r "*WLMgؘ"TM (CG{o&2p#! x]RߘqgIk:wK[7wxN*jj/ҲHI\WRb1 7_C~՗?7Ԗ]U5Əmy/j/4HV]]}mGGuPyNuJjTRJT\tx.`5j g({A)p-2J, `j6u]oqxãqp6}ח|DCdcM 5p[mm⃷ʇ "39擐U!C!8MRHÉjGIEDhH;!tO~?eGWs"Ir[ vDbTl*GKƿ_6 1q9"RI#H,Hct<\shЋrNJhC" JжUU`ș1h elm} -K[^?cer{[LcDt "ѼѾƏらjtT#u„w@8xCPSY%ZJƨŨA A'-K5p2?'AI!`Fz]{[M6m/yںmC{H) ( <-Oi[@Kr܄\%+%2K>rYUd-%u7'Bw<A㓄Kc=l+a- U *wRZjBdl]wDTJ7l'';rːzrRu x঒%dXV ;eaT*NM/B2дM6`n3_7evD0KG9_ɟ}3jVJThvh %p.nL8nk89"=Q "ypU)imu_mcm B&Gu~Iv_ j5t0e :5ljhoA ۔:eyxM TƩ2J*TRJYcGM "\bw mȑ  LC.#:0"x޺_5~q@.WcGGB,.K VW?g_gЇBbl%"#ɛ#Iw<Om]0ג3Gy#% $1R  lkZy|ʷ SunxNۭkmxk_cgoN[=߶u9Y@^\kUvlq^gǟuo֭o5ylT?"U9)r\_%ddkc7j{pLA3S6蜷-%`2~'gh ǂ.+sTEEkη[%o S.->Ŋ141Xbʼn/GIQ~vI`CQi'#E/ B>/}r`LxuZ\#"d̈&c=xUAR/K[oҷKwWgDbHD<~W'''Eqzrv ^f~l%CH`:6 u͟Fj[_N٥[ȄuF%? +8C<>ZoFUD+g ,>̡d`0_$\z^@ ݿíW__yy*H{SLn,;˦AqEinqQx}+k~'P[eWI[z|po*! Nt!ɵlꂔ*;hm$Ki-jǖa.q#~XG19oasrkk*??? v~~~~% :vl"%8d%0{Ǡ7n.4BG>&C-Ì!&*r5}{A V5oka /ѵ|E~' 0X_ڮ/ !V.^0j?ŵ>jի^իVnkq VZg+Vg+Vz!YjիVZ u6mr[m۹CFmn +mmtm݋t4qq,]wZjիVY՜JO+9Zjի\g]VrjիVZjVxgիVZk4k]֭Zn8/qmumknmmm Umnmu[p[m!nmm۹ 5*6vJݶkj[u[mmmimݸQmݸ ujUwUl% vu*UWmuһr8\+m-ӷqq.ҹqqCNmrmnUqmqoqn(UV%f88q89n\qr:D88n88n8Pqmr4ۻm.ӎ89b ;VZj)Z+V B" L}@z ~1zww}=)>D g2rsNo" YqB@%-VE erĚTuZ-*%UIaǼC@"̀dc^k;~*s'w^|2/m222222$-%}Ѡ"3/_niia]oF0FA~1< %Pb( e؂e5\AS5n/]#̄0~pCݝp66\r( rkDqǓSAw}EJ{wX5j`xX4F/f+d#sO+d}wxLw/QCH. wIHT)E¾J*T ̚:KR&8q!{pEV%! %j\)pZg O=EbԁxqTb;}ūŋo7u2Ì84fiikեK____^F8A&ZZkH#}$Ls+Ezq|\.<0BTEdFY^dFaS)*+1 )c*Kr(d (̱3,,23+Y*%2V1F1F1FIdT `&%Z(~^o=':^W7fϪpplo56so[zJ?!ۺ ]]5?i`Wd HG,*"4|M],CU!;0H:C^x_B/(; hxnVv|BrφC=]gOsԩw;aPT6{=}R);0}M4QPTŶQX"i'QWqUu-?eo-7$~7u\gu7?Ã##/h*z˗Nn}VϷ|mCmvH+b#NmVsQۼ <,,,6xiuuM!BçJ)JFdJ (^n.^9p)^ۃf ,evZi=- }MMLMKی}=顃ƹ}U.XP情E5EUZ/x+$. [={{lŸ~C,eƄAAR.^^V\Yxyyyo F `m3&ܦqoDO{Zׁ/ [}w0q8Nw#H *F4'm|LJ`|vIbLR^̕g JKْ[IE|iw>W~P62Zߖ[9nm *gRh.>}gUwj G?E$:Iؤ!"~)$qIILĉjPwWw5BڽH#=A*JJۼuTII3b޹ܑP9#:h*AON%1$7}S%گRD{.ՔҚjPQ WlZE իVR)*XU8"ѺE!+1_m% Y%TdRŒJ,"dRĎHB,[*VZiTPl$|bK(b+Ej +Y(XbXZoijERT,ZEt$4JT%M]]$$u4m-lmmlm$WAR }-z4ZikA^*jjjbTTTTTWSRb;}ls܋{xooi/ng39d|`+/yY|Y|V[-eÎǬ>zF2M`k++k ǫ2+Vt*̬0zѬX*k)`jRU*uPUWH,,!*U jT=TR#WqVVV@iV=hfj9-6`,s 0s yg^u˗/qǷTuV]ꖎ` Տle㬷XbaU,Zն'Y-d֭Wq+VxTmX`XYb=֭jիVbŖJk,,4kG5R,X::vkRQ#UR9PDVZhXlUj֎ؠ0KGZ,8VVKb%dyُed=ꖎPbP`ujW aVjT{R:Cת¾U5J =b*R„xV*u[c PCYb:v6+Z{b`, UzJǰ^=!)T:JX<%*֫Z88*UWS_sUUzWX*JkT r#^(`u*`XWuzeOz].GϿt.Sy۞D776wOzMgggut''&s:S13eLt'!MN\<:rr{)NKާSY{џu{v:ݎPPm|'qN_/W{Gr\趓CG}FZ -,9=---.oNb51~?߿,M7Ų/ǖ,/Ѫ-nbfe_a+V 0a鯽J)znvO0W`FU )0aa0#''''NNNNNNNN4, VܦW5m%%J)"RRRRRRRRS)))Ԥϔo))))Z9nA9r .ͯ/877nvG\ Gpsp]7w!8/ĿAÇ"˹sq. ˘].\˹sssr 7.p:tnݝv$I)~ EpN+L%%*\R&LrXbŌf/2ebLjS.#&L˲d]&R\,Xb dɔ&L2d)vLLpرbLj'L2e1bŌ2xrX1ɓ&XvLqYxL\oIu{E^^/ow1Xb+,XX,w'eܱbVXbŋ,J?2ٽi,ѣLDFJhѣH4hѣFK4i4X͛6AnH fٴBܐADܷnݻx=r (;v۷{nݞI$I$QE.QEQEQEQEQQ+>\rd/5/:EӤ]vwn;vӤ:tn&uEDWqJށ)@{v۷Kn߰Av6Gb!Dz-ZZjרի^[V'ٳg>ɓ&IRbŌu-[U[Ε+]ݥK +ׯ_VFzkׯѯ^Mr˴w_֏ssҸہc.\/^{ X0JeR^+ &|ˢ^Ezׯ/^T}dwzw}[/Rooozק%ŏZ-[ŋgV#N7:92dˮTŌDDdˠ&Lg>NK}}|ѣFChѧUFufU4ݴgg +NVsLygRަMwU*aհDF ^|TWt.LT)W.J˗E.\*j⯟_*)WTҮ\㞖z-[.rW.\ s͒_:| XN^zUW.]=e*E/kp|'(YϏ퀌&:,"&˗0 a!$f (1QS i{m^b>3oq{m=_H;N;ԫIT]%T֭Rs)k9ܪ;Sl%~u+=G*W']{m)*qJRM׍'Q;^ZxΞY>LS=OI+yVĮgӒ}Ix*S#+8NpbJS'm&ֹ'pmmI;: p[ZWْs{I_O-I4OkZ+Jk𤷇ͧi^/YW:°092hif}3e4]Wܺ~7ey/ [?8uw_q韷-ٽ?gT?+r~G1XrK9}E"B|Oww_ջ~Ye*c|K>7}%^OUIneR{{=?xkgGOq>ɾn?/nwίNu5ϖ~==z7t{WS]^ΧOizGY߂v9:;]v]M<|Wu'y_`u̱}Cf7??3>_dto~doev;SgǓoqΞɾb_sn)>SviὲHfښwDZ9{ku;4{T*^} ]?'XL~ O_RR_tfl?uv;-{O.=LqYU{ϭ?Pmaɯ6do>>ҧӝk8|/>x)|q/I_9^!_>zoz޹:`{eټgȻ?TvOc;%{zv_cuw_<`ݎu=_ȏE?4 ^|.v8]~:#u:랓O~NǛyp;W|!`zw`..k2ɝ(vk.<_㇁y@Ǔ}`~};?/wwo|Me&/;wA~@/Gٞw{c~^p*ݿq>OyN{nG7o˜^qٸUv;_DN@݄ g\u˼ڼ}Mk;#!Bً<} x|x.Ft.#qU}«3),=ܮm"qE$XuqH︉Xٗ/[*TY2dʓ*T>D2cʉ&N H7N"ŋ,Hbř3dɑs ,iYYYSPhѣFtӧ`ŋ$XrE?~oXyytEZN,bŋ,XbǍjիRJѣ'KKJJdG,]hPB$H0bD)lCO}_JǪ䏸ud>ݍWɂ|nϮlbqج~)pqv_`“sJ/G~^? ێSwljKǽ0_aF cˑk}H x3H~{x0qxXf[dfb`wq~[-<ƾŵȋ{ 6es.|y5k7AItH"ޔ翡wvt5.ܼH2f[˗ f[p20i}`Ηu /ݿ.I1A}G l /д.WXmh &h_M(Fn=w_`fB PӡzX!d2忽7wImگiI'Ske|7hMup﯊t#WVr>>X0B)ف?y*M^CsZ:PTтs^(B֯BCT'"HT> ~(`t}Z~LZ8Cס!Hc`z`hչR]gWj՜90 =T+ZFs9⍠(Ff $P B$@($e𨭂[J$ #-v A+ $%p(0ɹ\Sl>3o z<ߑԋ#TIݩM4[%=3y ?y3\GL1݅ a6LA-2ahĮ ?gx9~ONyv/˿vqv˳1MlwrcKy-[I{rH"E)m^ϔC{% mH`H$[QG&'{d Lr5Oeޠs&:^@xg!t2"&U*렭B P^/P%.ԵT%U@)`D⟃6f?G\6FDA -R-\}N@ rKX)[Gw7/c,1xCwϹp} bBDuvdBͽA-đPxTTFmtjZkkkkkkS7; \ V_ =1iY-~:hw2*VtRӧN3i41{wϑw \Aׯ[~Iv,b2AQaCETp5 ZZZl\DZM(KvT iWl6 _^ޗ *!eXְ"uϝ2ݘͳVLY>$QbsyI&i/{OaO_Ͻ*TX[f[#d5el[-ޗdIe٠5'o ҵeSv,r =1{ˢkӧZ[ l%3-{J``lA0ZYP5LĸL z @0.2 lvXeeV, VjWPLE^I"#"uCg )UT?>Dd=\8c ADyn((<_ AZ;}w}Yz FBBBy3,l$$gwpI& >鉘9jbhS@4)j&&fr&&!c&&%!QsZ~ԝog7tbILl&&fsLMLs &&143LsRfsjS3L513`9LsLM f Nsa39Jf sLL 13g9n&&f&&39DLsfsj&s13'9 LSRЦ&FsfsЦ&143LM f Nsa14)LM fsQ39Jf NsijbhS3 LsQ33LsU3Lpbh&&f Nsb f&g9j&bfrLM bALsQ33LM bh&bbhS&&39Jba&bfsLM5)j&&g95fs5A14114k3I f&&139Dh&g9_/;|/WfH $;mo!k^D௵ T#eY]mmff$<;wDL&e !?y?`mCpN5q$.ݻwrPPC1!P+1"v&ƚDhk0Eyح+16#E6K%ZizlO+Xq_W(}.+g;e򌩙SҩhZ%ihZZZgũ[m/ Ry/ ^51QJE(SB1_h445~O`z_[:ݮA|>l@h4At0L6Dї.ED82UyD0]uVvC K?^9}``\/Ի| ` QX2̰Cnī=qLgx0c5VX@@ y鴾|kUcO7ݬK}kZ=j*آZs΁n!,i,Ċ}|^O[W5*Vָ_ j5gk׻oalY43 s%1R`M3Lf1(ė\|D+SSk> " bhiF"+\-=DB0s(5 " DAXe꿵 G~w~Iѯh~S,, 0<^+b+!`0Yc2]'|;#kvlAKQexHϴ8.l7|yxΐֵ[cjW$YNiBT֓džOm3=g{IW"3iX4 kijjjv->ie&|'u4 @CEϞZ1mDm6i@hihByѰ0.m&j]W7Q Wɿx nR%/Un/uxW);O 쿐˕. r"!nyHf3f1TLj%+끔<7ʳRВG|yCamM ?h+6q?EfؖvZwn[7wwn-0rnzfzg Iɢ_^vӷL H=~|m ^6t^ OĞӣ9M:S) cfQnKvljs)ǶN4;˷=z#P`a@ Ņ TIQ1$-զ:S_OAlYv]z8pqJq^ruk5YO&PuP_z܌+2ö[kQ(.W$@bhfHo|‚?x:7 8׭.˳aCmjn7.)<38۸%i7ief&)4\`oo{z.p9wpUoOU֑\0Ī%&r{PD $9;t;%,7s!B$-KL8('(*!R++WgZQI*FsSۼy])y6;u^-HwnJHzM!J 5f`͑kIn;omɅَ1LC#"x3{mv >Ra5]Kf hAJ?H;wRVW]e %r]t*=@"+ VeFFB1xӹs}^ARUU+LŻR,{z$RP"b5[&:tG$m}g^pVs V~(TPN3V=KK"D)y%zF9VE칣|ߍ UP +[H }C[amC ~\+;yW,3sr<^^*ɟC#2i9<|}wp6`EIW]'-6zŸĻ9v?hG;u:fc0+YeğD3EATd36Y1VijDDCLNJ,h)#֢Uj)00Dµwm}sd TL偓" q-uu5wNk5k׾B)FJ@ rS%-awH _F3X]2q//t>i eld cWO8LϲIOÉJ|n-9b{@Gcػ7!:oo-ۺ,QQ̮3fd3+{E*Z>ZL޺N+Lwv5]iL\y&GQZ喲V8gO,V+,{Nۑl( 5B]&m}i+hx?{tItbd&b zv{(2KgMML"AgZ}m͚9+P5⧅z0z//|=Xv(ဵ"k{@ Z>zDgq,61:_׵V=uC{lBb?sy!ÅnA<^Kfckכ[_"<!&K-$$›]y?P +ʻ rlmY$k㬌}}m}fe¢1tc$Iՠxz-rwNU }^??xusNR|qy1\>y{fHa:u+T'dɣJ*Yü.38>gׯ("={|mE co۶1ַo}Jf ]U\nGR :,  /wNGy9>-ؐT;Y^[X-VKUYSnRwZȁo8}`wPb} }3D`U_-m^A:|+Tה< {'I}*U0jUW"Xjի}){ z·ovlҲ5#555$HDKYAuuUm H;^4KPyC琩 )d1ŷmnAG|D}yM*>Q2d{fNU.o:^&W/g;B5~jlи:uL#ANJ4'M㥾|J%J&BJM"0'aRznRuzF !4D[ysx_R)5224t.taii0H:ZO%.m>F5씼ɣ}VtCx~_)@)B (PBwf)Cm G6S=}P \UVzw)/Ly6&u纺ۍխsOaj+YL5FOGBW;WVήB8jt%pL,lfZDgm[@mB8B(Ћ1v=]&;IW~+~ M` i &a;pW]c"o=CAߓߴ #4i z զ}N:{ ᙼDF=;!W(n9fu/m*Q@gW!aU*MLǧNٓ"ӧN:wfom/^fo~㑜s#FAǐoQBf [jdJ[(`)ĐaFF%k7")n#[n2LK RaLBdIa(n&$a( "@QݴaCn( U$Bw-b-X"#V&Dbi $LnjcwpAթ K5 ma1JJ`$%0bո) 0J H"b, Cws͉0H$ճ7s@rݶF`%10bd6Z-jR1H`c[2D1,(LL&Z1&S @,BFFf$BI!HLSm`$LF H))M!(V 0afQn)D3[0`EaDHC[daB(c( Kwuj2PM[kYIn0nQ!FRE5$AkDLDb 2ZٍV&( ILjR[FEkl`tH H b$R$FaaYP4["L(0bDȈbjD " @L`$B210ŁnLI$12`HE`A֒kH%wS a*Ƶ$JI ,ZB j!S5&ŌDēBtղ )5@$[%1$HHFH$~y/{}0wW8`]\$㓜d㞬G9J*$Sa:*CJ- sw8;CI[_ƔR)RӣK32*4R8's#׺ VN쑀`e[HR|2ZZ` srOߛ O_LM1Os+VtO:֣E^mkMf͛0vz0j%z,*~:MZ?yOw]I.bTDA "lٸ]fM6lC]C~nۍܟCK[#KKK.CBM,XC6[$C}E9hF5'?Np.2dd0̯f͗`ٽ zWEmCK pi%_ꬸX='}7[E|?١]7}?q8k6)RL * D>tB[V#jsr5yoj1PUD(7xH:oNt=$3F I7rϓVYZXzoQa=kYՉf DJ.| ;w_'Gپ"ӲsgK76tv>uӟ>}!0{@AOnj`8^KL/0=E潯?'75ƺ\Mq777Lɳsssso1=v^qE8Pttcq;CON>`g94&CѾd8nVluz~{Ovz3q{sÄq^vY,^ D3u,fjYԾ{zhFkr{6lٳ͌0&7 h*I_^3 ~PQ o㣽/ {% \$woqXzL' ~훷y^Ĺ}9ԗ7|ﺿ˟*/>-64i\v}1R컪^60x\=?8g~`|"G!_Ū,88H=4!ʏrg>7-a Jn\9}u`v ULhAw;Ndd\8=ϗd걏bT2 @T1RQP3J`/| DE (wA" ~y*(}eW+6 qqTgvi(tk:]tjf{#Ez('Yjju~o<+yꚙHJ(AG Zb H1 GȋN:tSz&b{&}/Y\V89}3A'{ ?GN9=^%FO~? |q(gc`|ے?x{~fWf #˩533~-Ya MiWK{=6WPmKȶ/4 A5'Axo;ywdM>uz]pI#Çp;m?=J>a7<``ip"&!0a>~/d1(-M %]U k(@6(T4~j՟}]`~&Ĥ-p92X'ϯ_ =+כ]O%0I DTD|:׏j8/i^cZ h2 tr !UyEAGeH$zI`! _~/g|~;쿏{-5"%A siӿ̥N:xO/QcFF>a`ң@:^ٖ0pB_ݴU!:N QΣbP^NK}'e]qԏ3Ir˗7777751e!~ī?w~yZAP u0Ny|.Kz6'ޟRJ*TRJ*TRJ*qmlk^O9~_/Jr螓[N 9*'8+ǵJ[ux)1:@ՈMߔ8ەbH.#Y?*a{_pP{ۭo~].7AqzyNM`xrgᥡl2躿*ߔS⸜_uNmh_DfdEmS/~6X^Ω+a| +7כe.'!ۣBo~3{旭]\.kb ŸQ>u71{h=kiv =f[–\mu.EL(]uOBra"16"0ьh 0`qqqqqqqqqqqqqqqqqH"D$H"D$H"D$H,Xbŋ,Xbŋ,Xbŋ,X@<<<<<<<4hѣF4hѣFAAAA>TLM\'[VmNQ_tFHW@?4?vH]_+ g^]B= x(-/v\ 2egq|o>՝h!z >F zNEӾًRQ_DG$dN`Aw7_B?a?R,RhCoGy?[T}ܨQ? ǻ̳ŹaQAO-LH'r/'@BOXa!ާn"V| X *"{xckk]42 EX!"AAAAAAAAAAAAAAAAAAAAA  RA  B"܋!r˗.\r˗.\0` 0`WW777$؅dW_^B+ *gs7wU0=\~5˙۫B$a 0aaONު$~^ͽhVwYZ?J/ f8"eP@w=&Ekjq%1mJ+9|?.׃DE`/lf 6`K4A X"Yj-dۢ"v=c;M82q8+6tSgN:v)&*_g~O;0Dwb3F >4$t#xAtux xmQ}?/=zzJ rrjիVZCܡrFΝ?R8t!L1Y4@PTӢA#3#BbFY4W/J^||? 酲*:_W?=tᙘ[ mg+VZ513A 92AV8xrBP"U(),O)3INMڔ5ȯm}+fȿQ2"g5J;;>\ $V3?49 csqN\d[*|M^ҋEx|QT{-(\ B RUju%q~ )EOڭ|,(2Zx("EXU@AʤHn橮ȀtÉAkD7GsiҶ}s{ð_|rۢ'G8&ԻTA//7ynn7z2j*Dx7wqY\weey7F}MAS1Βk6ۍ KsyJBs.&D~ߎz+{} ctE&'29w:WxcmىWo! 0[@* D/7! f-e[>_e60W k!no@az1r|} M}|}}wybٙs6~fSSSR$MCSP{$|u Uk_t^hgTmsV;P=ZH|hZ}0Q bVST)fӧNt)tiӦhS!p^L*3Q@JR/W*W(k(nFNƻ f4 3583f͛6l׉|(CXwt'ggmkG>HdcWU2\+{*F`4i2]p}7ƈ[K@f:¡{LDvL(S`p$A/"et"FP29E3_gyq_bgg@ 0R~}fvtp03|ENM69&JZUKXlux iW66l͛77775HVT$BnvnlbÝ6B$E|#B@n5/؄ ڪVQ1 7oni6 1ɤiG6nLxf͛6lĖ3}3mСZѨOEC܀7Е#Eߒk)/k\ cf} *R;|z4̙N:t&4f{ L #6&M B?Lj+]e%R3Mb0;ɭB8Ҩz? R-ؼ^ 'mWSR4"1#^' 7[ZkkobZm_S8th8mbeGZ/GMiֽ1n>:Og7)Pwb-1{+qU,>6y}7o}o#65^ߊ8+D@wNU˾g6/V0m7wUzO&ƲA/{>"xw }ٱnjyl!p 亘XӨ:6 ]&=q.rtp=hM{uowhow J#"/z Nx. ^-?b&fM".=7{R{UH, 8­t{k=~3o DR6[FB,twݑ|VAy22McyANyIOjM}>^m5yA׸81?*[/|uγ8OYKb{Awss)sY=6m;Ӣz\EsZ=E[kZ-e <גv^uu\$@'O!~t??Y~O-B=݈"[G۹+\ϯm_>j̮&v߶6ݪ #$* EU"xfEE؊7wu &nwww@ ww[ RI$>nASBTLQK<_w@:]AP-T")~g~=Mfr;}h搙ְd* [2Fh,O!SblVnWeGKe.MelZ% hpd2Hi-@HTkPto'{-%;$ )*BTj*-0Q,:qZ"Y@a xpp߆$n9Zb|,z}]y2L Z`hBdi ,M^,X{DvE"?uZNxo5vvTnMD{sQ+s_{}[qW0O /'Ab'^ʉNb*QTq! ûK * A@h49 N~"l)94ӥN:t_"l]4@! H\ D¯ W\q|i@\;P dO24 04 *Er3q|^friD7< K(xE@ XQ֪{(v6*6/jO[^tr=㙀 q1h*-C@QCCC ] bQq:3=Ž-S[Tȩ/M=6K+'''-4z҅$LͤQ5겟ԟZ&g~@:?3ۙ,IOL(n>pW r*n8_2"RӅ ?6+2*jp1KtDDM ?҈Ua˷ UT@@dcV@ʀ;' v`@q7^ۮ!5E= Ta*Jk_"FV%y\)nJ 5 bUDSS+ik8. PH! ȦdEEիmWxs8xRXCh-_F(QBE2ʕUz,oa]3 0! \$SWUr-++//KQ&<4*HHH2! ]'35߻/++kx}XF d h"UՒ0G/2j*90R #rC6:NpBD4#"HhFFD4#$L̼ȑ233$^ADT@{,o~O]٣WKGeC y>\p(34aӰjRUcVifnZ^uCo!vfVe# ,,*TiQCʻMlK]agƇpMuzwA?u76Ch?.|HɒIXy*J%41%JYMLIR$$de˗hYlIR4\M$YLIRJʕ&S%JbI)Yrؒ@$i SDKbK-.[I-e[A*\Lm\Xdh$&TI2Z!dH$+<$@CA9ޯЎZu^wsg +{m7xEb6 {xDx\DSr?;it\ٷ$HID_HgŪhg=ppp^dDXΘ~HhCe}\4#ؐ$M1OOOI0_K}:j\5HŚ*#׎ݻbp'&'c$h#߄zuL3H_iAt8g}ŎS\4(ΪS$cӧO"=TSND2TʠCsFoKmN<Ȫ`@[MiQ1/Puś 쎩=@3x済|Omx߽-GPwYK&nmՋ93ٳf͛6^ {<!QF DA,@r:XDll\WB0׶ M>mj8X49 xKF 9 2PQEW]:e:Vbuw]嚻!``edCKAh?}EٹlG0pfםDTPUtr*"&8: ~7;ۭރ9 [ix<}BZXOʧRJ^J"[N R2 =3UUDPy3ȉLWzy[>p[~2) i%[^Xy=]g*`Njfq˕È,'V\+T(YC͛6lټL:%6,X,_hIb >'f2/ճ}f{'.YE{UoM}۳h~By]RϘ'ִWbJ?D52FT5\<}~ſ"{9\n}[mcKж_ѷ^ִE]x_*L-K QuPx}*Ė;q 4+& 2;?:2~ގs[z.p{[ctXQ2i;PV.?QuE&j_tW mG*dBdL^EֵQEh;m$'g)*p=ջ[Mu.I >ky,ͶwuoIoCf"ޛF!O]z5k xW|BU UjHz,8-nn^tbvvm}_z~_{o22?{ Hίx>сl}[w]>ƤN/eN;P?m s=L5v{/>&+'^g?ֹtv<{&v?tGMk]d nQHy=_lrgp::CqO:}9s|^z87~wC;bzcRwc:|s5];ӝ9Ӿ yyy)wǟ{n8;ӟc:LGTm.v*j !&E-?\qǾH} ~\o^9 !!֡?fxʡP>x(k0w  o'XRa@܃㏁<5@3:7` D>A3汗=[>m?'UUU|'Gy'Y;Z.ͤ/gD+Zuw'lTSUPIk5͕Upz]VOu׍4*T$w]wW 2~]$:b''~Xf>>;1^y}RUu#Y/%jL龕)*EUL)'&c7/a UB"[D戉QZXjaky#Bl@`$gm.ꫭK *4@L 1!vJf #(54/G{Ja5͌ٹsZq{" >C")0aS_K<`BO9t%1AY&SYGiHh$L=pрqDm@p&XckF=(8T()PQ$C: )Bԗqxy-7P3t> :r7| mzZu닟 ]fl΀nt۷w;bzͳ=N|ٖR(U60nvi6U]alڙd.UO vfN l`IMc0UY\fh{>nspx@@UPP.kn٣Jl_}D%Au{) [7wJ^m[f[6o}` @o>>v8e x.y)ivt-Tne;";+NL͍[LCqز՛=bdl͎{351wsc0@ovN9TiH IӠVJfm{m-[il4ƶw޵ˣMKlT6i z'(zSl10jz 4 M4hm2 2O&0Dfdiz4&0##2Ldc~D P M0 20M42iiA@ 2<izL4 FfMPh aLFM42d2ba&Fс0TxLi4O&i<44H%?R(MMOQjd4ф=SOTfi54ިѓO)jb bij{TM4imKK Y%K!%KA,$a HXVKtRaO bH X ĒSHHŤ R_*A$d $Ik+!TQ]u]  $/>KrcA,-19UUe)JR)hn@35)JR%)JRKJR)JR)JR)JR#1iJR)JR)JR)JR)H1cR)JR)JR)JR)JRR)JT)JR)JR)JR)JR)JRѣF4hUUCDV+3K(82BybЊuBVfk-Gi4+̯JtZ޹I5%S[Sl$lڔEZ▼)Ғ bc\Z@J9[9VG6ZT,&dCqv+ԲJvfAa1l+UvgAJ°R5W@m;Y׬tyDV-cm,f Dpz1Ww=7\g^K]w]uaL.&e|D@[:x{ىp7O07obmɧ*!(r༸. rW0 dqdń+ tq=+8Y\JtfffL0fC  UEUUUUUUUEUEEEUUUEEUEEEEUUEEUUEEEUUEElٳfͶmٳkmm66mmm@RH 2 pd/2_/;-F(33&qEsf۶٣l⎃ >R_~Zki|) J qCXeg rbbPh;EH HDDDF Y;JahV(""P1$$$$" EhQZ)Q(X+RT'1119%)YKk-mmmYe#9F2JRRҔ)m-)JR)1#K)JRҔ)JR[JRҔc1R)JR[KiJRR#9JR:RҔ)JRR J2-)H!BR)JR-)JRJRҔ)JR#1im*R1DchB륖YIJR)[JR)v\7VmOm|Lxu`ʢPEr "qU L,xXX|_8\l@bѬA# YB2O AHP"!"Y$!%3C{9N^mwzw39d̀)$ P 2$u Add$ _BNT́@xy  + EF}y$R`@BI}I#H$tB4ʷJ-Vڢc#"gk3;8cl6>M€ A#PM>mZiygӳF{6,!]ue&4a 4 [,$w)$  \|n8uku vp* G@90@ ٙp|2 پ[|p&L1ˆl" mC`!mxaUl~lӎ:GKJ-Y\sf͛ JWJ6a(φ8gu8qˎ8͛s=Y @pZ#d&h.ѧVLu]u&|p͟>" @_~/,U<]uٳϟ )J[9l.Lq͛;|a[&qիF:u[mU[m\r1%0uҖd6L2}neo&L" @grf͗]a=eF|ݒd,͓&Lg͛-G1̀m>gϟ=)J[UY2drG{)ff͛6uɛ6k,S 0 HDYU1L68{,,1dមX02՚-cQj۩uf::BJBJLȤL&!0d$Ru{ﱯ:Gqʐ@XDX@YdUHD.%r9swwqqUB\QTb`!!$=Zo}}<ja`Ҕó$TP-ˮԥSm($rvbYA8iIMl[HYr)J,w358*Wz,a0cxU:ª[u!llR =P!ޝ;{77 p8~  k)78ol[nnf>yUmۅW]wvd /kTvef 0•sT2Lq6\p ]Sɖk~,2W]ߛ69c;X,5V^[.LaeuyoɎq3 g˖L3c 3eufK,˜e˗7Y !h5fvLg>|񮻲dnM&Lrg CDLihFlٲϛ F6Ye}/1͆EǂcUգ>|3.g]UU}dɓ /2ͨ@hܹc_-ٳceU;,&L]3a}Pp0̔ sa,sYv76lj;2Y=v0͆\a5Ҕ̓ɍߎLٳfG.\R`0ɓ.c)YeO>LYf8.\0VeZAԷ=gφ|qJe̖g.ݹrD/g!2LqO@GO:=\ﺽaTDn0ݶ]F^Ykɒ1’M=Uշlھƭ1\lתl%o{ RnލWkjZ.uF;Z51!kUJrYݟS[8fezb{6cݓeumlWf˲:T~jsKjc:0Z[kN:d`.4mmUFbk^UVN[Zc>9tkԺ]6\r6q,v}Uק6d&X! rMWfKzo6#.`qST2Ӗ+'nUVS,-1=We.lUzzνˣnͨ֫UvcgBfZUݲykɗFۖ1slc 2[ iv[mO62v{ie {W}dٯ$ 2M.Y-yݒvlJE:ls&lUJvϧϣj,R&ݘerM:)9qg︉2ttekkki/!ӧNp4 #BHE *$"("2}*np#t@DI0@ DFޱfK^eukэv3Ub 1e͐4̂؜@Qۨ IhY ey$ M*p#+20v3`䊡X@5w N B WRPn02`IC̡ IXلTC`J0b%% 3"!%@V gg Ȋ J0  ̠(PȌP8 IX0`J+1`@0Reu30R B`d0g)PlHBB% #0 X!ʰ` 30RV"2; &wR 1*"(`JLl8V U2@Z&MX! LU( >ÅWX)PT`0$ *q%@;TX 64XB$CU X)*1*e #+3*)2VUV ATC+GP(`2a7"`NA3T0D Rb BFar`L`؃3fRU A0pnX2`@`ԕ ENfj@@LC(U (P@*#+CGp wW%``P*1*(T`̄7'0QFF& GHUك&H([33J( U)+2(6d`Ĉl̨Ƀ`+Ubg(;`CP3MBp8 12+Hbk ( X30R @33  a#X 119 Iȃ19f`JJJf`*AlI@U(32#6 0`&P!R`UU0fe la©4E HF *`"3 JN1+x+ 䌮#e`0;r U n§D +!32@0D`0b +`*3 "+O@H*1"  G RPC$F ʡ A EeUe%PY1"133dP\+B*@"FNJ1@VR%A @ȊL JU`v aQ!ɕUW&f`0UPbPl0qQrd6 VaX Pp( J UYA+EPĈL]rfp3!"`™#bV`Ȍ *U ACT"2"C0g&f X(Ue% l 0`т*`j`W  DTN20Pك # àvq6fp0P0 HI0U`(`U C(fPd`ԑ!  `@30B`j0#+ B*20BDbF 3 Ue )PP"p8tpBD L#o+200̎!*VjH(E@T++*3Tbf&`T+3 3  P1+UFFC0E`RV& ̠( 6fUW (`l0`̪J0P(`+ ``I %$bPPIX P(`(@bṔD 0`)RV&&fe ; I$!&HH$eDIf#!$$K@B ~(*A"BBKx >@`6T~2'W|{f`҃x,DZ<e# Y9ipꊭ/̈ %Ư)*Tx ')VcmZI3!6st(ҥ;Z0DUU;BY*CF*{ӧoฃo0F w5gq34V*&KETp ]XMqI :pY#MNHE7 FgH$mt.IlRH!{Ye9dY:6A$gi4$qV QtxSX$*X VaMՒn[DF&kaWjNPPTf `ѱ&]L0((?|HLC)@ *P*}'ΥDWaTDXd@!u?7ڝg<|J߿&=y6uN㼧f{=VwQ;|q\uͻ*:]O{{S"(hiU E@EbQ. Nf* #JVN?ʽ.V@hDEkB n DܾH,"eJJ"Y=EjRRlXUUk6-`-f*yUzjӦ89[ y{JʍPJ*hBCFFݿ CFab̈́]6Vddu*"5MH"[_r#wk?{04T.*lweV9 ^SX&B}@zl^Ma\M $P(6s(IBHpDr؊46 (;@0 TB b..#b!suΦt3L ]MMCP54<)مa ],V+ H\T3Bh4ѡЙg0˘;slɫj Lg @LW1W LWqS1@PQqq\pϛ23)S0f3f̎* & D1T D P1CqA1\\\EP1AC\T1A\@˭N uB5U `:4  tt:(k:pC\  @1 Aq\Ee̮aș3"G0a\JSMCSOKAѩ: Øs)L2ffh2"J!RK $ku P촶9yr%|efRު9Ga{2loh cUyRi aUsҳ||O?BKعz@)؞کG,X?Y`I K=,.^QE!+: *I7t_.Öb֕^!9}8jO$Ms&fyx)_2#!8kd|=%s rNu4R]cH;799!ں?j"́#!ՑyaAuHЄ_vAa)c) % 䎐WkkΫWnFR=|z6VCɢYy\yկwKۮz jYhB( Se7uۼA%E,"zBFRa䨖m}Mu&W97u\:Z[H8Cwn;G5߃p溷_J89nL蒊[UruWӹK]Z;殗;Wj~HP㹍aB2!)Hg5zIן5ܬP1BVS-WDw ~B^'eI> n^o=aLh?$ :KYhJ$ky~;ySԿ Tn_hRZS ?.%qfUwQ~sW;m.ׄkqG!w/v8}VLw_Urܽ^h%_tt\D_W ;UnwO8WZd?vwx7yX)'yvH$D f ~TBI@(l$H,m X\۪舭nםo!@'U]*hHluoHf ;]~[^u=njs3ZyUKws!B{~$ʽAUA=$$iOa`(_ye$h~TBŭHYQe+V-~,%SfZ^2 I@?hTlsw;sWZ=VujX~Mʒ2(}!ka) 6 $%RIyyۺc9ytK%)Aqo` JxB5Dl? *H{xRU|  Ȗ*+'hX H}  U ʢ @=TY@S 5|I>,$X"p[K]ڿlw^yNT!AP#Ŏ*H*T 5v;Z'nuB-V!ҟf(;fNw'kz:nWv-n(KU ˎ9nw-k$.'C𨨗-j i>GOBV sµF]/rדyռ۹5U9n_ɏV6(BD-e E}R̄ x9)6ܽ5vVז\N).VsE/ھ廯-*ם-o/yrw<h2B0)=(V_Bzuޞ+εUb HPyn_̜եrdd*iڭ*TS+jjd+xUTHZ͵e62u6ϟI.AFQ`JsT `" %EJĬt%.c3# ldt٬oi˽]/}}׉k_?͛%KHxIJ$S H: 9Y'ϟTb{#S*x" `d{&{%HEC(66kU *uDZcT~2ZʭQ@DT$,U84K`eW/-߂)I$+wpUU"!HHg+tLA-АT5u4e!EDkj cWec,U-(2QH[:—-0ˆ[P؉Tim[  \T!HIAGd#P E$H@H1T D P1CqA1\\\EP1AC\E1LEq@ZBC\Q5h4thM]u k1 D P\SLQ1qqq@ DqQU1\(l+,ZHH! 3$;Y y:vLٳf͛6lٳzn7!6tm-MCh3*Ƞ[%S#94k٭*(X$tTl^dvLN;+]&wW|olCLU11 DPqLPB G@& :ЩW@]d ZLDW2@%FjUD6MJ"Iޕ9%*e"=!*9` #@&NQ+vhww#%fs>=)Qq6gZe>ƥ&;/֓\ C@|_;äKճg5 0z%a9NB(WR3$э$B~'B6bpyDJ|; &64^.|@Џ[>xϟOk>{|?'πZB OҞ'|k%tcD_H!pbE1.]oFxgޡ!Prp>~$% SRO$iW*(6g OP.x/}e,mU.?Iʓ"qP(,@m@*C P1!tv&R3DQ[t"`~OeA!񪉤 BQQjȇX` y2AIu@kAAaI ={S]ծ`@ }Oy ^qлv[dU/g.E! %%98s2>P@bɤ9$#0br5Y-5fgyt$V'!݇a^Z.'PrJ~jT%~ 1'7wqrRhY$@xF@@o* 3Z" ABF#WUUUEH! PQ+vAtYU `;4"]D"|ϟ?ƞ h Z(PB (~.~/ $K?MR;ͼ=ݽ~z'I axދD)q_OD(Swh ?Ï$ C0f‹4$y~?OwIW(:2EQ}۸Dmy+OV/J̯dQM*W寻 '"~B*俅u _/䱯{'_V]*oz?&qL8;mH:|'//$|9;ў{;ܙmAח l2dή9ޕ3fy3@XA]U>ͯ t5FĻ%ȋ6F6 kv(u-6o2I&N4L➃mlhcGo21seb9<2O:ҷ?ow~7u sA'ܢεd0z.8˓G})|y8Os ^j^9-Zr9+Pf9${.}INPchl\3e*&pm<~?~1gf=!A}W4F }Yn"f8Smç1RHy{kgF3V!!0|d,gGLBI$, wVPq>|edz8m'WN?xRпY>yz9n/ ?u|^w~;Ţec|~7YV}j]Y}`¹_<|鷳ЗrϪ ^9} 1 0 0c=;,1Xa|ǐok2Uqo$mH뱆& q8G($H9K{OP}gGe3#q3Ԏ#^կ'X'0?' rE($ׄj ,`0Sy  n~6$ 0rb {Na" ""  2*(HHHH# *"HB* "J<{//;QBBH !U@("";8A^h-A Ez Si[px1ˆ!r$p̒ss 087wwH"!I!GR2Nd @56%s׈ |n7n?.}w3dLU&JWLPx[ye/Һ=; '6vZ3zqV /^7a{IU=ݳf?]7!g5nF~ܛZ7j~s-~=O諘gp Ϸ3w;9M)r汾 w3aZ=J0`2wpqVYW…YMkq>Y}! [&v֫韛}nvV:Iy&/=Yynm. ba_%>>3su'}_O ^7N3Q/-ǝqɝ5^sYyN;-ew_ۼUy-ױXyR ;*/ υhl8&g M3o 2YSVxĖ;7 =^ۻoh2x۪;*4֐B?#f^~jOAMp__S|`Uۇj,yBv 8x5p߉Na1J7 懯7%qYLDm%tX>Z9O?B [la.=FFG}:BtI7##s鏈TФ<<. KWZf且|'Eug)-g[wryݻ79nET[p篫z_5;~'wĦSj Eci}tj37e;Jz>NDz?}_%6Fl_8΁LQ$ħF>Ϗ6|)@csi6q:/QyY4w~!o-Z|A.!_:4Ԍx)Hv)/rL!@w 1n[ۛ}́7=&;:}g5xa漾k_oCPk [[/Ϲߤs#Gz-ekof͚Q6hNoD'/E>R'o>N =~N[ S 5B0LcHwedA}?+," "0WBE#AOG"AHC!(- Eb A"$E@D2( FL$#qin8l$Ą d$L}鮿]Q#e$$$e[)j"Ђ0@rH+/zw ~LS#wo_?ILB\ZtL=١bwm}5{4Q[l&tu]%PCW5Ê9DR5kzqtbw5?MK7Ys5<{Ig{)yn79#rϼI*' <$N:^q}Oݣuۛn@IWi{cϑ{yߴm}/Gzׅ] U;7=n&k}+&%gzl:N72^0NmY\Ùי*XGԿ xd\Zl6Ч=HKy Ȣgu3s/T2ֽ§._ Q953l H;y+82N|Gv>7<''UvW =7`8?56:YloeW6rYb b%3{b;㝌r4owtF~ppA|ZƔ}y*%塄{/1țU~.CG܂C Nuj9M-\灯s$P=-P~!*`gfXlKVJ ؂B~#{ixpU@_(~qQWa+ꛍ׶>}ɸ?U_N10uB]uqUعAy[kkjNaqɛz 6[/?[Cj83ztD?=|嚣ܻ*=~le~k> kV|δ %T=ȍx4 I*r;_9_闔uVx/7<98o+%۶{x rCǗ Vk33PTW@VAVQXE`E`HeE&I(8BB78"2>?yñ9\ַgE(Y+~W;oVt?>z+CG{H$>}^o|& |'HG*y߈>shL$!Wlk%M5ĥh/A;[ݍdۖ-Ɂ!m)JUf&f$Mmbl3(%{{x> lhAh?V\Tw^ =ᅦ&<˸n?ud^^61Foߌon(}MNAYM|~ڜݤ$ IHԩ1\hwO$YĄVީWy/ yQ"N+?p` 28| 8pc>08pa0`x0`{-}qǞ8y| 3_y:aKsj :ZAVZ:,1bo޽ёx2v\u9knM V1I$ z$#Yb=>|tZITlx6CiHo39ܱ!G/C{v2lmץ}v\K v;}+ǭ EЎϳk}xƌ|ϟ=7ɟ<}J^sx{v QE5wwKwCC@}J*H}"D9._CC7@<=wrîNWac<3O9\?`N.˲n'ě&Y#u!R.ϳmmEzl@KNJ# ~e(1 hx/K?,dd|/G||.ۣk.;%+ʚ7PoCd2@ $92C@Y7Axs>gԁ*GNYKܹp9o:z{/We&;j}-]gmO"\D4c|o;i?.oρC.Uv_r,i-QlWB€?¤TUGmS^ա>X%ssw'DnAfȹkЩnw"_7x16oҌ)R0HR;dBaP9p݇D[J+bRjSq0<@EuΝ Yd"u#8%HFl}?nh2}ޯ>,hOL9ݖW3;F;z χ!ĭlP:+5MuW8lU-f#K жr}B\"(B7Rl٢lٱ666666;}~W#{.vlc\nsh]S4O![)v|>R~nn9Ck/7k r/DHLcp&L3%m? {N MK].AmP&h/yfsq.t7$$X2Ŭ~؛47`c35O8g!`(5t~LGsm߫w[{;Vo^[|۽w}vX^<|YALxu2}#ܿ HD9BB꯭.6_]pj]}aӖabzqmtSݎ7 CrߍX,nAV5a-!ƍQbPE ~6Uo28zXwU~' C&Þ8ڈ@HM$Vr+I5Te+z&OB|z(_|E<ӭ@UA3 4w;qmͲq>/k5ޒI2Յ! A礀>xhI$<.[৻G!!/NX@ !~n/?ǖ" =ʊUu̟>TugJxtùm?tC'NC#Hp\. wR@:sЬ,>爏1Y*IJ h/ÌrPeڦI͹K Dj\c؅M` #cPi"_د=D >! @ȇW9wrӫ׿exW>=,^#8[Xgڥ)MOoލX2N;㣸"裋:;#$∝r#\Jw6BNNIVq64pHAڳ( ,rC#Ps")8tsf BAG8HS8%$RpIaQv IIX1i ~Dka lB-7ȿAA2o0<:Z}}+IRfG1]s9|g>; 裂U DaVDahte wp5w#|ƿ%Õ}SU`>{"WɤDJ$K(+F.tUHyfm`,Xbŋ$8p…z'Dy~'tB̈́@8C7|5~=u=^ERA-3}K}齿ÿ$+A> {]ep8^ˬu򔉭A~Z8S˲6҈$ sYH/~@C XX\2%so"=u`LD٠D7cIUg>|ϟ>|lRMٖA2 FI^oדd)JRP_.hc؆`,J(:2 #GEy  B]hލzhlQ`gLB=n+n WmgU{~oz+#(丯G_%RWݎ'9mE@!:9J:tJt!;r*:8N.*sN8'N:8(JN:'" .99."N:KI"89;# )9Np QHWtQUG;#].'".\)WEp'P2d!$nrQR&A9Qhx=ДBl?G̙*^S{QN~!VҞֱa,5bŊ6tl7 ̌ f ad!f$*<;ﰱEb0x<f֦nePA` Ϟ#0 Td!G ؉!r`t/O>#m""9wj)$*8a oN|A JSM"#EtUL E2@ͺ07]<[ynXs&a~|pj*SQ 7)xhIPQG(Լ%sN۟?y?Y k@HDP̦7!3$s! (9sssrvSp)ruH3&{FŜo"Wzzq!?BHHcVkYi4@Z&e3+a *%U5 h;uJ *("R"T i$XDE<-N:&TՀ 6u@gVr3Y@Oou,uHa,"UKh!" @ B}ԇD+D.Z]B^kR=mj\"H!Qj"H ,nQ~JhN<2"YQVuYTuquHj CH%D/m@WM56LC$rd@̀X m(-9X`$@o@!W,j"(^]zzwVhy rXk}U#SxǯJ$tH.g x-n7dG,1mHGW?&Jh+>!C>fX"! G>s=TY. xXƖ?$Is!y`>@E$Z-6VZŭYZNP E"0P5zMwm|iA (L޶%a@ z 룚:1Ǣ@C {c"?Ɏ'25`1s~'}-3 Ui9:̽3`7ɋW>رX3{*ӏ{bxƲc]Xnp u\0]p\]`0 \5]vd]s5Ys 5 ]s]bPRc#Rd̔aAH% Q R(‚J  0jRFFD`(Œe, 0jR5QR% (”J0`ԥ)P`ԥ)(”D() ()5)eQ()(U(KRYFJ B(R5F 0jPX(K ,`ԥ(JX(Œ 3R%!FPRԥ,gYKU4,db`BR0:X()F JR3)LŒR(VS #U`2 5!K(C"&JZFVcQթFC332'M>Qh 0 JXR()AH%5VYFUXc5)jdj:ՙJPRԨ)X0J BF 3Ueu(R±VPd`3(ŒSR(Œ)J () 2PR PB((!F`ԥ`Zd`ԥ)(K(‚ 20)Q)L() 0YXVA() PR AH% (Kf,J A()FF2QŒ()F JXPRJYePRaAH BR()LaFjR0aAH 3R%!F`ԥԥAH 3RQ5)eQRL()AH 20)()(‚J @Q()F JXPR AH BFdaJS vzbxg "! q[%d΂$1I$ }>=-h-Pg f, fP)u?1(=#gsHuXَU57juGD"B8b! 6A$.&DYAO T G#y[hb$>Ys ]XRĺRv:r뮻``/"Q!bŎ\m@ţ"F MMA1 Y13@d5dwoްvj~6BI-v[wڢvp.( I]&eJUe@qLRIj L: ""*իH2jpoݚWa 'd>ۅ=juI' V]̭ЕFj Ȳ$!qEwqW\uwqR" P@$D$E.;++꺋⺎:)H?U!x8lu=C"sOU zj&ZvjrЈJXiObPZÿ#o=Է2_\hzK~O)п^X{o|W]ɳ\?S|{ϡWOӴòpcބuf/Y{ĦOW~;%;70)r9{K=\#VÍE;?{^M1 *Gv8Zr<ݥ 鴌 ְ!\?r3a3C!1č X9c R"b"qTGc? '.GyxW(IMʎyL32Ɵs@|29ΫA 0(ɮ~JO ~$U  Z4.?B8Ï?ͪ[h/<{YGgVO:sx|흎wKnmv!>z >-_ן0?뺎u;v9#GclBBI!% ۅ !Bk!(P! G !LK PO (P$!B>$ W߼8gӻwnU;tӜ7-0p++rٻ8l0'`_^WVwGꪩUUUUT҈J*ZAs]=R>8ʏ#qxU}CR'Nb  b2$"Nw}Eow{4~izv}_WYgY3[^5>nװ1iD1ı-m립w]|xpÆ4[zͳ33f5c?UeNyӘxWک0RHF U@@ W9;|m*vJ$mtrzWKm"ҶfGFʎ+w3j>ު2dMPNb81xE9>}E}y\J:M$*v;g-TL?Eu/_R+q:A#(B&B(E&>2i%//K1K3RRg0%zJR9΁ޕ([m~]F隆NNPx;jwzG#-yqcGQ]qEwGGs>e vVA 0 +?>EhY])^H '1t<8O_q fdQ*/^E81"nt~=_`4]̙.dԩq{g5"A pD` }-n-^wq0ʆJyŮkSJRa#KPdQ߮K_|:l%:!<߫1?, gEu]DŽ1ufdNfd+95S 7Щקp" @():tӧNr86)! #pAcCci8J3e7C!$ؤ?>=o\._cSU ҭJ@VThяBhѣ.. YǸ҇qȯsڪ{^L̽}'''&=lqLZP)5T 33<B c/@3Gb̵}[-{C=sDƩN70ܙbDzDDE` DҦV-kk`#FDLpɑ8r ,iAD"(@) E n6G9TG׹ob ƍ4Xb+X|3%APX^)b{Zt0f\/#W3Z4 zD@ ^%)qǏXIy~@Q629WW9`=1 E0Ç &_pe632qom2[B2{7i=ZX b^"0/`0`@( aÅb ڷm v6Zf3mZX Z2jզ@;6Yd%ś dY@ XedYAYh+ + ŃAXh+Wh , z^ +:]`+&+u+W+AW]b`+a 0aL 0 La a& 0^Q ]aa` 0 0`0A0A0 a' U@׮ȅz悮+W]^X Uz\WAW 4I0d 0ȃ&FYu u=gX֏M;!:y]o[9wu!ALzva5N,$pq7n :֋}u?8"w3#;<(;ߴPv۷d]v,u%0D|=r2nmTO*[ⶔdKB!^@Z]%]!2קف (Ȅ2Q\\\]wtĜwQ$G;Qӻ@ cHfWf< ׍A7hxM"" 8 TXu*SRNUJ*K:Ga$ *z L*7ؐ*pH#,&O$-*)('@Dw+(N{$Ak&gREJ*M HP f澖Q9fr@GUTx:.9sԂ &+4i* HdSĵj=?j[f D$F/^v-כޡz'L2|C[m"էvTLBB''sMQ8eRM~P$I%tINp6ۯ';;`}w?(?uZpvKɗgM͗]ulْʼn&;S9.v:|>Ll^W@!L}LOܻޖ&c=urWPG fO';x|.'eFI6P) ,~I??ͦD]<"ï ?v%˱9}[NYG zn:܄:P^s,$H"C 8p„> `4 ̴ٽg-"$X T;QV & BIoon].mH Zoo >҂i HO=ցډL濈33A29DK>GVpJsYGom`r ]$YɏLy2cȲ&Lu'@H`[mJ)TOիBVX=,àİ0(Y%HY2.CzZJꇡw]uo=~/ I~yuXV?5W1 X0_ g)KPEOC3 ^zeo?ׯ>ړp TK Gb\pPE tJlQ5#;#K3sDHKjܖ䒈F< S3ڨD Wr1~*$fBZZĬ_mWmf۵)& CǑln@neڵjզd4du1lr%T#%) f D2 + u9-'@POh01e#$F `( lU1WWWWW1hu<.f֛pDEj Yi#v-I:s5gS:YIHBJ܉$Bڬ/z\td20'0!}LO]"זd;8L{c~y0&g9…2$R)33'*6gdQTzL.hfm;|3KO!`lxTp:]DY,XZߞ=l5'?U79KlwBﱵYl/6^"  O=~Qo=*9Й!^k11Mj ۻr˰h'a4O3E{2?I8J+UcBT~{$I1Ly$bB!q#x8f#9'A͈}n./> Zml 62lh%eC9$ Ș B)K 2U &Bqm-)h5 pu 0Cgf%7hk Eכ} '331 S_)>''u:~O4~q?gs?UO_,UUU{uU^WUUUjNP:#KX9 ߘjzYaLWXXVMs zeÛaM_MaͰ-XXTXXXXXXXXXXXTr,,,,,,:Bw6}~.2l@@"Q|w6}ƫ$IXsOn|,NFfgӻV8х 4k)<\4ݶg᳙Bʺ'c)J٫]\d\{NxZ#mAzZ˅t us^:{e+/g/E㹵Fk&Ԁ>*Lu&TA?ÅŖC'~@A+}?g(hYG ЄUOKzH4.Gz=R8i0A 9|n6֟~'U|q|oݓ|?'-'O?a> Oy矾<#8H槒/ވQi'S$=N'tOG$F֐`" 8r%c fD2PĽ~J_7C, Qj vUЈH/T'Hmé /nJahq"?dݓ=*!x5 Ҩ}^ҽ8Js80ӫZ&ff2̮R"5˕\Qr\l92lh0Bv`xĻvۍ2i\vˑnR$HЕ$ V}Bfks q^LBI8EF;&d6>/O걹/gx7o`=WnK.W?}7',x?p)ֱ:ۮҴ~v_c7/Z}c]|ꆎe xDZvn1VFs{ӟwԲpVϩԠYݯRcr/]d לpAK7NuSuՆD!DȊ5MG4c}BjQEhH xXwߍ"V++*,v/-;N+8$9JKn<܀w,o7;z?2S0ȅgڹse#JVVUdeRd30ψ粉dHq >gKtq&gκ^5Yt讻~tP΂K5NiWGL,"F ߿}X0[ p,8p%lCZ6[/571)+a33Pqݼt|_WS!!!ӛR:oLy?‹V)n^:]{VMIAaX`3fa>׊ͯ^,ϯE]v)NCf|;qm5+;ώ8\\WnݻuWWWWUUWVkzַoQPޢJo7] s8Y,ľs, A&_^v.-Z蒳h+OҪg23{|@d-[Fw9EE^/_cDlE+Y[$FUZa\yifyx%F{;.$hLs9\\nKqqx'5q775{7ͩ2W?';gss7>Ź5{.5?ss#svZs[+]̸yͰIj[BSh?礗E)ߏnT)i.ӮN:֦M}bbE:^ިk@Ke˭]᳽!.\V <3Z*7 ~ұ1UG<'Q UD"!V bh 0 0 0 0 0 0̱aaaaaaaaaaaaaaaaaaaaaaaaaa4aaaaaaaaaaB!B!B!B!B!EUUUUjիVZjիVZjիVZjիVZjիVZjիVZjիVZjիVZjիig3s9_.h>O5u?ϮiiO^>G?'46G]ͻϋpǛilmV6666KQxccpqqqxݻvۺs LLNF&ӹsѢ1p.0ooaﯯ-bCun2bUUU!j z6QwN:r˗.d8Ϸon<ٲg[6l|v۷nݻv͛)7nvpuvŽ\1ܹr˗rD*8QLHMZS:FZkU6mfgڵ5jիVh5kUlf͛Ɖ}vƁ2.X9Gn:{uhnn:::uxxxxcK111CvߴY'n.(w$r8|#Oւk6C( _ !@s< r-XNr&NJH/͸m?q|>8 =>&Exh$ӠUh⶷47Ko7wy/Lks)yy}׏{/[Yump}YD`3Af3H e 8αklG^glbʼn$Hpu (PfO"Ah h0AHc?$nTHe6mmw !7,H|l0 P)F 2>w] r@1&O%N&AICLALAF SUwM GigK}$XX-JTURZjթB}Zs`vM$k^V>xcHCs?yJ:if A3@@e%$?5'?D h;>}qh8xbi5~1Eyhw•xbdז~?8afe{ׯk^sz׿ aA>ի9,Xmcf@ ҐD+,F61Q}Hu+S!ce8VH$ @2pz=/{b4v7]aؿS @ azו^Ŋ,X@,r29a"%1Zn͛/l6c@rHB3xN;sӀcYI%xU0M-7p%IIr~?T"H H x4 ́uI <c0(TT)JVʔ*\WWkVWMJ:f 337EC5L33+\)sú~~yp02cٓ&G2d x}xޮbmY.ϟ?;n5 ߾|-!)af>͊_\\989ؗ I!̃2§I Pk+Hd }yCC0I HCFf_*{a&d %{a6ڵjիSTjr d J@Df F@ژի 0݆YR)Hp"(m ȊB0|H~* ":σB6(ADw#pE5Tzh ;oj+x4UjujիV]zժ訁"p P@ zUjlի8+7[TA^s^/EF9䋜"_ ;bkyC! zyҖʭnB )JR)JRH= $\ B!Im+E]wQ̩J{d@1h՛6l٣jҕjY"" oKB_-(W u{/tTBa&Tĕ :1"ffQv]W!g)""[[L2d&J2c^N~ :/q>{WL׮d. Œ6"BC ZRhUUP qA$ IA\ .=)@ztİdT۞/> vֺ+{!LL.Bff`!7() 9(4 [31nV[un\@Uߔ'q\ @  8 uvN8@t])ΜQC(p\Sē\tqssG#9P$tt]'THEDGpÔȉq:8#rRGQ$t'AG\RTpw)Eqt) @(G8EtrNE89"qqq$tA]9tQtDGqEQNrADqQDws]^7;wnwbLخؾ32XD̙a{pήm0Vfy0nnܱܽXȊ) }[7﷿~ $bBD)N$wUQy!t_Q@ BP$UUTw]Ê2ꙉ{ׇo+oI|t_dq$+pطbݷZO=unZXK{ ۲9s۶mz|=ug @O.p&^AI! WWC,.Ŀ‚"9N!>+>v}iobWbzך C\ۼ~3O/\\rLխO6H?~׶BG݉kR<̒_QRS,ǣ r:#IB;r&3~Eqd &^2I#M@Ks%)JSݼ&a "@ RZ4RTPVx#ƎK,3Aء$!4LYEQG*?+qyt#=?xxn?S{'w|W1ף;{UW!2hCa|~jժV^ܿ儦7v<ݺ̟`c'.Cx}ֿ~7eh7s1HR6.[flt9?7=Y $YzosB#$} I8 Zn~od>MJ ]PjPT↑A$HpÇ(PB Pp5;ެ-r1 |p?f~Fcl`<x߿~e._ܿm|/Ep_r8l (2r7U^7FN 03߂1yyupZ$D17g.,?"!b(=~u~YE:ˮd3d3f6t칝::vl q fa"W!!^|}b #Cf5^e3\ 0mYɊ)9eWJcRWVW5Ho;Z *ސZ~ ET!nzg c?{,` ,Dd*{*f׶iݢS?:/ ` g8p¥a;d9sA6y\խ4\8bb!&Q376?HRBe6T]ʼn 0`BJIn- 1sa$[$!$0mZ ]l/(HL9c$ )j+udwQsy舂G}@AB ɀTlu=N~>yԈ ZKe 2' *'fHFs`"D"!%UPɂ"y?(27Q2n(U*Ի8(RN"(H8@Irs Ctq $ÂI8"8r GE(DH:G'$N.J8"#DrJ$HA$ukOk\0š80  1I'@;qS1JÓ9d+8p&0  eBBe(0&830np\#fd'J!Çq6\L@@P Tw 3NJS8ľQD PUAb@@ @JBpDD9N"!P"D` J8qQ7 >H@HH@8aX1b`E1\((0@AA$BN8v`H0` 3f 0`D0sAÐfT"B&H"'`V Ƞ %w @9;0 (bnDPs a1S%!%! Qf`@0 0aȜPaJ@7%)b"Q)"sr 8pdR1B@d#M@@ JgDRp]L@ "&\99p(*LÀJ8qNLE7wy11)  %H@Á BM.a `9L.nbK'X@ NQN%BB$$ 2HB( A!`0fhb$(@87w,A;f&& F"CC0` ` (P ‚b`PxܘNLL1ř N4E  0'r,\n7 C!8Bpp8p!0& ! !f@)02I"-2!)2.EșN#P"rqH'"rr(wwDܜ98g08p 9EÇ8108 Rg2rNBB0BBAɉCp"nNPĘ10p!(?dp*wN+8@N9Áp$1DArCH110b``#7'Q ܦ0 T@r`%@@@Tbb& 4XL8!$NdnrpQĘ" @@ IÔEø`LÇqS3&`@0  D1FP1p z&WL499;X8@"PqY p8E`0u1(rrw&`L )t.$R߹SLȹC0`#(%rrpSb A!%!(` "n 8pQ 0a98 JD\rDX&&b`LܥPD0`$Q`L h@Q& 1 1 Ç"`0`0&  `''.9H0&H33E`Lܜ, 10(p B"LA3D\pA99D܃rrpp$!b)DF  8wb ABF"b%&"@ J\99;`d22\t0.RR`BB38!$ LL"b&&" b A9r')DAD QA; S A0b 1@1118p0` 8x`D0 0``"ۦL i~#ŃvR/isA9XP#i>5?w28*!,G%dQxJ%EntqpCrqFJJ F-%wxHOtǗs?IK>< _I&I:Eo5uuutu5(̙FH&oltݟ-"VνZE\5]d˜]Èfə@։v/ܡuI Mp{:"7xx۹Lxi6~n5'_^@J͛6q,ٳf͗ U;3&`ݾͻo-۳9p8)+|?(۰RuN&ܹXdN!#tkF6߯sO^d+D

j N'E}6=.JHI > S#;Ǹ̩&ԔXN Aa,C~ H}`d"Ȑ@ 1ի 0݆9ju@$ h ~-ݜ0pJHnUʖtS@&))/Av`9Oa=[i/w͐ʂAnˇ' ֢Yeed *ʊkdH$I:Ad VVVn3NJ R`@Z@/Mb 1#KP-W^""/rDG%E9/DD^dDE"#,DE""DG%G%""""/Dr^""Tr^92dq""#ת""""DD^{4DEQG%""HQDDDr_{DG9/DDDDE {]{$DD^G%興DDDrwDDE興/A}7ݾ| %W4Y>׶?>2 B˓y<'ŀشG#ry2KesFf H ~gf~> -}xc4NϿ?tU i+L6@@b_~;ӵjf~F^˽zkh:@Ʋfh{le/T-2PXvOyе0=X1-u˗.\U- e|0QAgh2`n@UV/GZa4)kp|PT# ܕ\J3kD}Hq7뿷f?CAvA*'$?Q*իVZj՗Vnm!*(Jƞ~UT)AmnYAbe3='I`{$0ƀ_Daf^}6~0?V{Ҷ@IP5MNa*ofxMw&333AWd!,f4,fk>{s_>'c0 ǀ=Mgxޫ=MAlo0x3}}|2 =|+JBbbg>o<~w՞~&z7OWl` 4"%g]tbgO^fgvf|~nj<al^1|mޛztӧF:tɑ2c333ff Ѡt,4H0~3X=MĞ|vwn6OF1С.uۺtgSOV̀Ỹ36HAR/<瀟y~Pc@0/Vd!#Qr)%7SUz"(w~*K뻝x8$ސm05.C-\ovl bLcD2y<»3309DaflS @R-S`+,Y1ooxK|E?+rLϑ`̌^iVõj^gm]i^#҆ZD #$uZi/$L2HI **I$j-y=W$ _h#|^y? QMin:ϾKpUrOg7Oo2%X5Fގm6v 4]ث{#"ͯ]yE#F. Avfi2$ ~[}둌{WYf^ R!$}O=u&tp\r.\q.7 \OcܹٵhN2 q+,{z~/m7+e{*2*SQbvճيf2O'tQ;&DDcəQzThQ61i#tNjĜkffPYf;fyu$^dm !%!'r;=C }G0fyϳsD^jfxU=ey:Zs< xNi K&k,[ QH"D$H1"D$G4퇄Ab-H REI7{t75;XF-1]Ώn@3AP02-h3J.` 05/}k2pA̜ B P0t(D: @҆< 'MgCA)^={[ H!σо\ɊaL, _*3)Sʝ9*TCO: >﵇? 1;^~G.\͗;Ɇnnjjjo,@C7m) `JUWǷ; d⮻  hhi$ aF%h Dh$BB=Jm%P@#y<ǭ$@-ܚ߾k(2E!J RF&tkkRN'9f41;{;4L# !p^ ٸRZ"7Ed440t?%n ?7=o?!8\nv;hqyq=i`kՔ% ~^OiHdVc<ӍN ~]uc 0 . R]]1OhaV ava1Oa0 0 Y u_u]u]uQj)JR fR)JR*:!AO)J!)UcATJV0ԥ)XRUjV.)T)JV-e)U)VRVUe)JSpS)JR)M L*ZՔ)U)Sr)X(bJR)L W]u]|rZV]u׬ B뮾 ]u2]u!Av뮻Bu. %.Yu^7!9”RѡR)U)JS`Br)JVRʬHORrYY)JRVR(9R)Xe)JRVQRRʬ jR)JUe)JS`)Vp)X2)JR)Kxe+رb,Xagbŋ,Wa5b{+ر^z,Wb{,X^{,XaJ)JYJR*)JRRjkVZZիVVjիVZjkVZjժ֭ZZkVZj+VZjkUVjիVZm°CJʿ~^ߺ< $rP/r5<|O&<]'pXx2T#GA a*%wIovR9Uʹujޣu'YW>?_ ːW]uGV髯[[[NaIREAT[IT/by'Ӻ%-I^wD8U@ta@'3!+H4SMNgEU^2>fL07}n޷iPfͣ_u s:_n5"f<6,TӢ{Rh&wY^۷nݻBju qՂ\YgrxsvcscBB[f|ϟ>|'o(ohʸ+vG )s3IY'f]}vI!dTb+ʐ*-uu}o[%*!}nq!aF¼ r+u.}}vKu.[%uJKuKYX}miu:kk`kz+z,gJnK%Uaeu dtVtk+ . eemeee]gSVdT_V ueuuqu@\). ^|=kXȸ Ǵ-oK.̻*+;*+;,r,˳-oZk핹@T7W][.[{O/>V㰅h]v.juwwxb7wݗ}|\$K___wxZ7ȣ~]}xbonK...؆_cq.1s~bu~g3]x21+ٕQ<'0af<7e)f2Ʈ# {.6,Y3dCFj4jݫLU lv[˴ynٳ۴nݽŻH4nݻmv[s۴nkYia6miJIJnݾͳ_n3idѣFmjiZ4Šc|լVvfFǸv5q"r\6xxUx[O22d6s̙9r͛=[?=&L9gHrŋ2LXcrlEf͛8XXNzM4hVZ4hѣFu4h3Vk6llxv1GTtqQϥ:^^^^]sw;&&-&&&&&&&9a,X%,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Y]4uϟ>}'@ Ǒ@BlEp&FFFA"Dbŋ,X4b4M4M4M4Ȣ(>PUUV"b(BB s|48:M6wSccHHcPbSSd)11$q9x|.\rA>⒑fԔXTȳgf͛6r,ٳgf΍6zc4 '4qdrzt,ٳf=lٳfϒɕ@ŏ'A0tuׯ^}˗._______~It)%З.\JUbŌ,HŌՋC$X0`Pd&LQȱb&LxXcFŋ29=rW.\t,)I~"ׯILXa`),X8214hZI4ŒvѣJ),,,,,*,,*(XXQxy,00`+K藯Fz0`’# U/_F 9rLDcbI2e$k6ll2e$ʓEcH !~Iё&TrLdxXXc#`% (Xc$Ō QF` %XbŊHe%E$ -&LXDRKׯ_IG%Q`p0|XMrW9W^r//$//$VJĕ쒜M9$Ӓw%``r˗'D|tkקE$%H׺` (0^IzˣI/={v _D7%r˗.]G.]unO7{w[unL1{w]o7yv1ffffmffUqfY٩3333/&fz3<|44ԩ&JMMnnW^g%_qʾ:p*qtN2JԾ}6AWϦ>}T<:GVqX0U>tSE ̄$)RNJʑI8p&FBQ"J$Xbŝ^4ge^zcM4M4ӆi=iʚijGJqӇqÎ8*qӆl6W^{6Ǒ^zG^{IϟNqJqNF88qҧtᲩiiiiiiM6PMP8M6PM6mM6PAqӒih8M4e 4M4M4M4רiiqr'(qqϟCWvQϟ>Uӧqϟ>|Jc߿~@ 0`AyyAA DA@B (PBAAAAA A (PBEeQEQEQEQÇ8p㣊+m#1ۇ~]re!C'f2z4cs/vH&wYbq0?Oy(Q"֊Bޱ80^ (] c>˧O~O>Ta=:{N ۣ6~gp߰t_Ϫԯ+u;nxl4>':TgLU;SF~U_꿈τYeG$Yv]E- (R,1 ,}s'}ϰJ//}.~eyfgG^.Q_F>?3UK.=R?=\,DE J>C 'G?$-}4p8$UDV=Eޤj_}4_N1FoiIȺ7ӗ_>j"&哼ONujVHU_A>%$Oޢ 3t?x]wB2C~H߃DA>y$OO"w*}:0"nX\0ӻ糳;v\v's'w|D~<3ğsE;wH|Ӹt4;O}曃5ԧ|>{S= n}?vڠ?]V??lfƧޚ1ݫvο{nջg?r}3>O}tfoo_oaó\F}OL׳v_ b3_N{vcVn O>sNh"AlD؞"q2qED#c~;oH|w8k}S"Em}~"]fv~|n\'}xK|x}&q[>J~tLz8y"J.jn:N%ia7a!q~ԍu}nw_'ɡy^}껯;=p4}=d=!Wϱc*b?#gvG&di{>ñ{؛/|OqR4]jP3USo{wW{޹hgvښ3<jM?Gj{F^Ӆqr^=i7~3>{_ޫ/o'N{;y*n9}NǝG:9${y'nKj羗om}։ H$nwFxV~IӗNK;D}ěG$IKF9'wF?qᓵOO[M5tPn~-7^oSv..YM%C,*m="^J_ޖE?v/?57"Zʢ"bK40K6fk! 2BgsQ2fوRj.uˮUIEVUUUUt/+URR% f0hUQ!`Q}==g@P+mmo߾ro>vg=߿~F ]1|-O|~-~>:N>lS<~l>}ǿ>>{|>4ϊOŞdB~qI='d=?{>s폶O_׽y]Gzhz\>L}|?\~dwsys37w|x.k۝Ze\p.jnsGpNDNq"O-Z͍|ѣF4hѴD4Xʼn545FZ4hѣF\Qĉ )r˗. 3&L 0` r˗/Z\r)L)JR)JRJR)JS[U/?./x\/ ^O_i^{_x 4u?ፙ =LPGƍ)X#G $OLhXỉ5XQzƏq} h{gȑ!i@4djhig4nB;lTS=:3+΍Ql2E4h&Gu3qsDlD#Xq? %Æ.ar0`&2#C fL<_6$LC",XĊ"ʼnV4hs!č91"ćLGmXDXbƌ4hbŕThY[Fq~xGb533hhbgϋ4gcb4xcuSQSxմLXɟ$":+,;b8ѡF;ŋ+bq!kDXÊ"E8q"Dž $Y"q" X'C$HC""ŋ6,hѢƧ&Lt34'GCcCBD hHF,MF~$8qر!8 /sahÇjQ_5$q!}&DMVĜ]Mek{&6Gj8{xnQ{vKxQn2~:.e׋xg_D6W}KwZR;;kvi6U]M(kW\fk;.ՆT V6S h["cc2w8`%Wpl;e+`J KK–[4QCSҘ%ײGFz=P=IG|OX\>_]ZÌ%I)- ,6K)#;p3\P!ېaJ)|NT费:[h|4ifl$ 3ƽ]r Ϝ5F7 pGq6DA3¤TER'G:\r~?*Z %`K@bQj6 %P'?dj(x5D XjZv>&ϟM7kC.p2qiR`k#\*՝DȘAjH ,^juT;g;?OiY>}aϲ5o=ni|R>>vᵡs7u#We=~ 6*e>mt"&ʔ$ BXQ1qF63{% So}$/ox[~쬴57h_Aqbڔ!d 3bmffmm'zn,*v;y9h߼NTQ&xL@Z.^f܁#N 1O"v=@" Yb n R%Ç8p„.Scmmܖ )(!@d Z2#㖔t6.z̃+61FCaݫJUCs&`Y,_=iWe I]F<f3&B2y` ΢ތH- uȝlR d"pDiEU*^B!5Y EGeڐрAdv7yK`1ys,Ќ\L)@m`JC$@/D.3 d+. dbI(J=2<*>7.:yA|ry3L_&.<ԻrIG "*yw0/Fu;*`0EDD3 &8 I z-!)#L_w)}V{e|>i3Oʹ)N_g,gϡ5zdWQofow6|Yn V{{}vFEa m?~T2 &uUxήw  R8U.XcA fOZKZOF! E\qw'U%\uqȬ Ȭ%uqwE\wqQqwrH rlq!\!At=+tBj/Z:w(eor: ^ˆe'0&d D󯚾HU@ Y!Eܘ F@2ٵ*իYvԵ@82hL^{; 2PȆLK+@aA* z.,gX{2ǏDzskpzΓzu52qO$$h.0ǘ9 xY"D$HÇ8pxA<0Ah Bh0 2s o{?vz//yIGmyI_9WQktg([͘=q$bbJM][6 1l>Gr|> Ȝ@YD'f6hyX#~hZl6[2}&~Z9w'y6?RPd:WZu7n]Ѻ۷gݨ-Zj}7>zWrԥkp@ B<x{o4g "9oFL\* #z^K5WlfB.G;1cyBʪ*.CUKRV^9 5ZN'R⢛Jp%A X>ņY 86nK߁[nMo7֡Y|?>k_/^-gtV78 (AVueօZMjs+P[/P5I d@W ;bƑ֒=u90]A3%6p ]1Ic)Жe.\R˗.\ir`i Dm y~I PBӵΛ:lX9ׯߤ@$E\YaT!P۾H"V}3c=n{b5$Vw%" xu۷ngv۴nŭwP4rBիVZ|˷nvu8pN55'qg7ezS-|uZζL5aiOs<<~s=:[w1op9׃qSy^XF"h@|}> n 4iƭ`@ʁVw"/750Nft=Eoh±/~{E(blfeωw:<e`KZ~Ǟv'C53yo //A㧲YloHYB/* LNX!Et]w`עmtf` >ozO2XTlqwqy4TR.TD0?~ 2_>{x hѣ2,Xbŋ,H:dO'ٯ P2Zb<_\4ބi-b[a=-o3œ8pdab0$k>ܫks[yx٘WJz9ipB/E6K,P Pu j2nR^JKbn@PazUHnpbb:P>G AvВ#d#2C_Qw_*իR#@ZhgTT%%fB`P&7_~>m"=yfxZ[?Qaz0 ki͚ì4Q!BƵJB^"bu *)aq: Z(!Q Ȑɀ ~ Pժ3E , e,<|1}]sZØ —]"02$dK! iukedt prR!'%S( nzbDpp╆n`ĂaIUW0# |9@CZCQoWi`"&A&g|2-[ 3A:&VU 3M,aHF 1badG2TX  a<4<=u27"k" 6(z9%;IuݧAȋ ɐDGfC4.]}aldE1VeH #~#L5"[o÷o4? -TV2oooooki6u^:͞ "'/cfh@BBSo5h9y_w^g*^P# KNY_OG Y8zx8[jbL{1 fyyc{Lj7Zh6=08k-P1=;;yxYɚU&&!r wTP<%@vC) 5xW;?!K=Nbf>t(wҢiHz.__䋭\蕌t]tUrD/D xd`^=bf<.O|E=U?oS}Oi1F ]h:<-[UI Hre2[{riXɅZd-]Eo"D Q<>DKJe3 |;[9xN*BA1EYþ os 6 Π1+ 8e|g{.8}Gt'%i\#2(8>fld [ 6""7 ?`>r{`r5.`5SQD ^Gƫa!Tbc@k ,p!&L-#Y^&>(~nX.&@ c3@f3fF 1hPѣGW6[FȂPi( DB2fJ CQo>Woϟa"kVЫW;yԎk:aV*iJp@M쎯6Lz &۾ZS[Z`tUVE }O.@MLBc-NƳhlgX&tC/B h!Yfa6mdcmmMڣe08͑1ʚ =7 bŋ,/a;[2T i* \c> 5 \>qu5|jk QTIn=sXi,\a&'9s")HHJ@ Z3@PN6,l 듄3"TQ1DVՀx{fn|}n2Ϟ_S3??D2gX_ )\;v-\3rL{պU:r|bTAу',!3FsCThw-ϼ$l^$ ,!">=W>Gox,[,>xq='V?*1!.%o^ɽ{bu 88l 4^,QfZf'ˏe 0+] RP11HX> Vag^gu Ѱ0"</:ļTϝ".aEb"dC\ZSĔd GO};WDb3%XKmMw]}%c>ƎNŎ|Kŧ|c$]RFdX8H,STH' ]]C$r2WcJaϚ}(Wc5fpk3fe5LSS) rcWIs9|wS1l|pӯx_w'x<砥ΰ+w0>W'c(c#=!PM@",Xbŋ$H"CvΉ6itt jW/D…8@)VP+Xr:4dm6;%Y':d] 䳢b@ѨhQGi+~*sQьsXu^zo#$ -OYbVUQ+.eE@RqIJb9[( H$yT>^,,,.uB#㘸U Qp6oĸ~:b,,D}F_hdģ>66666220#"J .P/qp^@_y e 2*թWkjez>S[lq%~IF-ҬSHٟ֌vLnQ 9sC":%^hm #JE4N)[pU)\L֫ƌh^|g錯s lfu# Eaaaaw(T[(- [ JR9l:)U=G>4d7w5j kɚ R$N]!0FW: "?Դ6Zl.:}0ϛK.S)2Ѫ3`  ςF˞kdkeUl yN\es,DTFW:'$$kpc>gEߌ 1FDs9*Zڪ"`[V """'\DbÊ^z͛]!9ACj_Cn6ȹ'3ZoCea,+yB$Suţ\+=/_O_ou?}Oo <u,^|8[\666656cz# P-٤5E 1Le <8 _v OǑ"w!Z!1E<" 1lPm^DD$H!Ç8p}ӏm0`˱d=pzzAJ#XWw uv4ފWgo}q "6a1U ƃ @G(48@Tkt#!@{3V۷'ܹr8.Y{v`c[3XT(ayj خ8t9% (߿Q!D< a WezE5!Q3 JUpOo>tϤҟ?]"dRrW=r29 iKVvZ*ն>|u"U 2ET:P@~AO6%q EY*J*[fK--l+,̡(,-|k~.X>~ܙ C\"[aÇXpٙ؂ЖcLh$(i0e`7 )U#F`lNxy I$*Xip,lO/'uX; M-WpԪP ?kpφZ@)@(TJ2dɓ&L0ώ`춿ʿE.Hќw#^2)v]7o" .nZ^]m\31@('ů8ا7˗Z`o@xWp;(̼Fs$ܣOR?Ǐi&eqY{Z=,_ÌT 6I3+Y3 !u%Lɡ93 в C7ht:)41XA0MIvjrΡe26H&Vk-%!1k*3Bśտ2>iP(VVAZ-9Vr{z^w]@'}kϓPM ZTYcJBn@B-:攮g|zxʂ @5h!b px<rx6dl#B@DGDH*=6&gjnlm>l]/R 2D6a$9Z'a `y&WR8#Bы R0h֬XmهA|)FFƄjhF654QDhFԽ(x1y)\V36Z(^Ys;Jxd7 ,eͅOXZFYN녗@MVVSSwm';@_y-Փ.0eC8^/xWV8vq6&ƹKS#P )` /" `\ *T)H Kj暖9AُJxҾ5gD8tCåC:D:0D N+ζcX3no[_cEv@оRp9!Ebf>_i A |lAj.?~?\{PKD(JFYQ)0 q}uw+2^A KDp'"rZ6$ 2_"Σz3VԾ=sW gtu|3Z dQڭy leO0W9DF|@܏EƸE YtѮo*5ae겶GVM) M0E;}?C:{U" ŊOE(`YZ͞yVl9Sn2\KrBͳț.R-aQ(D=1~ jTjDhFԣHЍ _xxB},:RӼF|q cC&L |bbծadj=g@qka7 WF5|OU^crkPzFpZA)c@j CPIRizQd}n@mmtMDoy31R8D[`* E"7Yi\}xn_sE'tl>Hc۲7]NûuVv۷⵷mtf;~!`u}p0EZnI&ҍXz7X;o==MNEqk N-۷f[v۷n}u-]ݎWoWR.ҧX)GM=-/Po|&a7CM՗YiׇL2dɓ&L2dγ73t'f8紹@&)16>%W?c;JH#cDͮX; >2)KT)JR중=<@^ c> g`Wq/ғD%eO/n%Mϙ~+?9?gH$lLVBtԷ:?7{ ;:Vgׁ^7K] 7> ]|MLG-3|it ƃ 5SO#y1gTOpFՆeQV47ps"Ѯ3^9s=5`$Q58Hܟ测UQ x< !K[CR;ۧ¿j>CMr8^~P"&Ɔ0 DJ(HP(($H"DbI$I$I$I$I$I$I$I$I$I$A4M4M4M4M4M4M4!B!B!B UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTu^_ΒmU6! vgq9/,FK<H$mxhst?#|Hx1]Y"ҿ&65z_v[x~7iB CFX>si!h*7ohjTku"SsX8 A_jQ5.1%3 FF;Y7 #gqEdpc'J t % 4jdhjܛyѻ8(/ncsHn`]?,΁/E8@Pσ6DQ D)`*Zڀh8`"4hѣF4h$I$I$I$I$I$I$iiiiiiiQEQEQEQEQEQEQ@B!B!B!B!B!B!B!UUUUUUUUUT߇sA#RӤKSo[~b[L!igedM#[]w*{w׎f t2 ?vE+'JLH9vOס§o;VHצ8^>uN0yw2<xby!Xt_I023އ *3]|)Iϼ{Nuf{? q t" 1_b񔛗'SGi4M$'''9?O듓j5FQj5=NS5=NSm/.II;5s=?+Ч(přϛ>^0= IChR<,ޤ[Ns7?+eR]-ggf/-\Z4hї,k0`d}^j*H6&4JWsHM6N Ӡ@ӿvPL7g ӠN:tӧhN9H2NO?׵BCL##X"ԡPwktLYG59:SOOOOO/_________G] η5hѣBY^vQQUUHFAшb:W6Yflgql'J[C.2*OMtC1f|F{Vۤâ#Y s$JuHYXYYY,1X":.2|Cs/ya.9q&g;cC':?Ol  RFaH!@f-d-  ɉsԲ'i1'!>0Cډ/jN@ } K2ڐ4La/z7D*GjYO Sro ·O/ppD>8X/[9v66&͛6l3f64 CD}>wCxr"MMUyVw`Ș\% V3=:SO S LLF DuvlW 3~A4SHսu|ׯ^zζh+۷x5<|[$04D(a!t>8L +Fs!) F :`"=93EYBldBnjrr\w.O<>@E2V6b@IL-yF ۓu^Q^]wJy~ ϐҏ=R AA_U|zR뮕]yv;R$c5j}0CL0 Ǫ&[dw@(B'jdC{|.'ύ:-G@ xcxᠧNݺL>ϡ)))))))))R5Px18g@%u߁Y?ҥ;3}k{8yر^ŋ,Xٱb`ׯ^`kb}Z6g &FGfj^b^}WA!|QXāOC0n;?vߚJB&c?.s̯^ 0 1^mzk`^~ 06[&14!=z\y|O:{ڻ< 0\DS r@-$6 >Vg"D$HpÇ 8yQ0l޽boo[~JFx[[[Vv^{z]VDmmmg޼]!$kz3d ` ЁJ؟_5mnLiӋ9RBlٳy#>{`3^EBJo}kl6fFA} b )F@dnsZܮݟ5vLjbطnݫvZkSbݻtm 2&DF`@ƱcZmlfWZ+z/% Rqn8|=u.@?/e2Oˠ>eoZpt<~-pO61 a J 0 0l9 ($}]"g@D\345I6d÷?*u|.o\U3 SӡF*TRN9q)R)*oVWKOtP$rL62@xLQBj8Z޶S I{7]!J*IJ*TRJ@H~v??O ):otžHbVRRJJJJIڈ4Hљb%fol>',TJsWMK)EnQ}N8˗.1r˗.Vz6otcr+Oz*=a|_ZE+}~}۾ظd#xhZOD< YCc@8ŬS3[/חuWu[B7"blZH! 3+;_r~  k ` _~ck+^a20`s?oTbbFJCRK8RB PvR'?Y^?wvnGg6j+ey Om~&ă }^m{W^u{.w;v]e쵺ٮ6 -*I'LUTrc<Ɉ{!|{=Wz4'~g'?1{3Yfsss{:52fzߚ fIg|o93=%}w|ǩ>k=7k;gom>yo>wmX{%Xl`xlIz@ QTW>jjKae teiQ 2I$q_~v_Sw^|3LiTm _žs ߝ~̇333,Afcg.fػ$ 7wj/׼{e{gǯ 8uAT  ls}?thDlGX-9UUҺIhfSQ$(Ԗ r *pb]+MВ̉HYɫEB Zm:ѵ^U6gZMޫr 1=O2\܅)4#0cvRY|>niDNMb CFg mQĉ$H1D$H"C 3 FXo]dx8x7u1OqյHt#0b 11;[T9"Bj+uhMV[bả& _O%n9eNcRn RA,@$RR !f; Jr豈2-3,8+w mpeXbŋ+رbʼn,Xpq(bgF͞rիVeS @1'YQ2#ʒϋ1f-¢"?ҼGV;L>U Z;צv.B,15ś9,ًf͛6Sf͗Zi("̋~.8BԣnޱzC RBOHff d0QB i2p [esX>CJRVZio)H V@I!d+?| Cd"!rYɻ4q7.X%U0 fv]n-wO E~@-$?- QU5T" "H "}*"z]d*hr?D:1^"(<s:'OCHa/iCv{DfL$B!2U̙̐0fE[h+u z"HU"OAޏ8߅}nEr羗>$\)J`JR0R)JR S `J`%)JRJR)~)J`)JR)JR)) R0R)JRJR0R)JSR)JRJR)JR)L0R)JR)JR)JR)L)JRJS)JR)JR)JRJS)L)JR0R)JR/JR)JR)L R)L`)JR)JR)JR)JR)JR R)JR)0R)JR R0)J`)L)JR)JR0`)JR0` R))JR)J`)L)JR R)JR) R)JR S)JR0R @0BL'\8h ####!D(PB ÈP (OB 0BJR)JR)JR)JR)JR)JR R2NC %N'dv'XZ3}:00Š&$= T9$'A^! 1k˟na=Vs?ʀf͟HΉ$JrVn[9}h2RTFV.'x'osayJ$[.c+}~qZoҍro~ZZ[oj::;(|HΔ:Đwyw:eڵtUi0ɀӶ>黝 wm_Gi3'd 3a*z!豇fkBJR)JR)Z~<-1hXs3ٕ˦=OA/ >.f)hIa B$Is}_'ɢBn@D&,SvZ۶r)zF=U jI.ukψ/C:-`2N7 {.u)UjJR Z쯢4C jyWʫVY55L!yf(Q$*Ӿڔmgl ^zvG tӚNٝ:vb(88"l]{Ouտ߮))6H0F 0LK?2&pL]fgTZGJQR `4tL6e{ԘWyd~k"'7^z^znk~F0v0̰*1L :u<Ēa勷+:}Dt2BH xy׮Qu%f~]`-:=Iiap8tpSK prˇ[Ls|Iq>ǃ9Hʈި 2Ub:jիUZjU׫V]Z@]G-D26mZvtV۷ݱk^z(3333mD!̙k :fuP<>912&$/C!&Pwwj7 n0)O1v/y&/tMM؅b87p-K^pb 4oΛw/wvr2(q8&Ź~rq-QdL€ ~s ̣o>|rj,حgs2Wx=m fƷZGA&9yˀիV ڵjիVVj#S) t ss-bh҂V)Pм'Q],ZJ9D hl!iTI?{o B|2X スr嫗.\r˔\Uˏ÷4 Ct ~?)Wܸ˔@ #ç  =+&c$Nۑ3Iƍk\_bz˓0x!U2F a؈ 1Wa(0òA"ͫ1[}Er{YyE|"6NNJI3RS!tsxdϳ9>; b]Pц׿ɿ. b# pzhoonC[M;mÇβ:BwN2b1HLq &8$f-L!͍Ó<Oi;hI@nJ m={{}w6P9V5#e}e quY|yvyßyI!D1{?~{Ou"A"G /(>2Όɕ|YA!uNe'_'mK,@Xb,Xbŋ,\tD[ ifh0]E,ZZ,€ A̺8Z44P1IpwVk d7f$`L p@gI_kֺSD8N')%)SJsKktY C@ב@ސGz>8Orin3;CarXCgD:t鳧N:tʝ:\J#@uP~dkV^6f.]y75Qy+uVw巡|2§e,k^z"d- Xk,X{be,Xb;v Pcl6TB:l""iDD>$@2: @" _F8ogy%%?'Ygne_5{kɈWP^S,Xbō;#ءbŋȊxvBP&A{o=gո~ s\/Z,`0ׯ^~2)  33Oe;)D7O~LEAJ1o2rgs6E:wFRBBSh_8pÅ|33H/#+8p>^'㙞GJyMT3UuT:Y2 NSmp&ƉݬmV`g> ~Hh:ܬaR.Zr˚.Rr\xz0d<^̽z3@q~pڵfBF!#nݫjnݻvnnm-@ 2#`]u宻cG,Fqlx}}M-tYCLHك %QpռH:{`EX`wmL׆ ` 80Zxœ=0`V/# ,NoA5KXWDZKBCҟު"A鹏%u!touÓDxQ9u]uد^ iŊq"bȅ'$NGt!C 0=N~OW׀FA )KfS[u'kdedHujѫVZjի09xfDmu/|]!^Gϻg:[}ކrrRW"M[YTm홛%u_߅sVq=:ߘ>Yv_o8E|VŻ(edv̠8G[;\o_gF#ʓti]`78wh>T\gJFE:0jވ%fڕ./xGR[@%gHQ ["ZD L  ȍXİ$E"chҟ"6.+4VT%O5_NH>Il }]sN;`xOٜt҅_ZƈV=RNqK5~ݹIxdp*rP?4,]D|&.nR# فߥ j,'@]A>iv`iaQ$,F{(~f t/#Bܠ;P Qs^Pb@[o`Y'%ܡCѡ=]e- *)_G[ifmŇNLiOk6yws9$  qfaE"Jf64wc?Q|1zc1GDT4(Tk4U@) Ba(!8B( &V ZSCKD"YezQ>3;SsY tܜ?ޝ!,x] 7Np~>:}Cy;=0X"M?vl̘i[i1}Z;7Hw H} UbВη~KݦylEFUSRU-.ޡA*!  I>* EUUl<6oMzx@ qWͲ)lfOlz[Y!lz;ꍵeE$[vf2mfD˙_w. yuz` I'WPOݍA^ևCB mvSl̎}mf^6)mkY+`l3AKRͶlsc#3c6o={W9w9Ŭpٜv1;3wqٛtYw;͜spkfWfGfUٲ-mnUe)*m&wH{#$&3"bmFCj&i24LM4LLh LBdɁ`"0 D hIM0!44#M1B0FL@ SM'< ih PhhdЉ44 Lb4Ml#M44Fh hCM0=61ILj42dOɦ%?R)(~f #F<'Q4 @ 44Fd6lS@4eac^q$$2 $@ I 3誢..;:㻎** *.J"*EPUBAT **T*ATHAT//EW~@~I"$_ I_U$* SpUʪ'\$Ř0&I!$HBH1oxUuֱuu@!ˣp{6̪ ,P (x)6З6N sx jfT*q.m`r]pbDGZ-[}$擘`-.XDD˭[l) H^&.\.11! uª7xI""+\./%j[m`w҉19uYFO>|t  H   G;˳7gq͛Rs"|ʫU,Smb̉Ok-X\=E/5΋;g[ed{iUl}Uiaw^mTk*U:(keusT*JS}6[c;lwܱhhҹԪk贱EejHUkGJwEa+!q+J`m?F Nw>3Dz&etNo?vJװB(PB&!0: %-xӘG08! ^!  f3Yviܫ# f_w@ H 9!$$?em6mm{bKK3333333331,I%$%$$$ŋ̪(P,I$KI$XĖ$$I$3333333ff$I$A$I$I$I$H$XY%, $Ė$$XI,K3333+mٷl}mmmmmmavmmmm؀T>v  0> {|% c)ux;t)JۮZ,t]+[}uJR±\E´k- Z$_!mڊ)l%rwve꾻UNg9N1)eVW)Y$]uhpX,뮺ۮs9)JR9s)J[U9DNRV+ضRvRsվV U}v_ZJ"-J]`+ h_emH YeYe,LIŶ kQ])]UJPDNvp";[Yl".m+T* #RvUbVڧ.%)*U`ըU]UR+K^+Ju""%툾읬 ʀ\%ZSt;KJQ[Ӷm %~{C ,KĴBBB]8E0DԒ٤պ&@R!Iw $8 . 4I^2 IĎZhPJ$*QEUAvq=Ё I$$$ IowªH_.UPDNTr%LыL93iΥ"γð; 驩鹹 n22fB$@)RHnAf!d0 $?f> %//)cPhL9Ec%ܬnݻUX* J.,U]x,@P$0@IΘ"2"H "2 "+ "`y^FÍӥ[,WƋr|bNj!"D} "Ç,.OmB0C/ΐ$YZHvg^T,Xc&.NN.~vvvNvTNYh0VYXPUUUUUi29qTWPP?NTVƨ CgN=ywQF\le4l0U*hba"XXpÿ8oW0`0 1c>|z(K %]u]u]ub1=t'/Ç uݮPE]xbA~X @UUUV(QUV,Uŋ 7חQXÇb]xѣFb62ΖY^h+*,06#8Y$f 30w 0D^ Š"A|,EDbt]a5Ygq`0 0X~ HXذFF4\hر"w 'a@ (PBYe]#DW 8k,FʄuW˪,,,1]Ճ aaYׯUUŋ$WϠ?h+,,b8pċD]u} u@]xl1^Ygh0VYeUXQV$HD\!H B@]uWtS#011FIdE@HU)s +" 62$CNs3h@A0`@׮1"B  Chїhظ8kbb,}`YeYeafc"' @>z\bWqD@u]uYf]/.DZ (uB ahP'A (PYeYhŋ, ]ݯ(pޮ#ϟCC D(O@0B  0 0} EY%~,ИabÇ hK*-5_9u]p\+ ""CYeF"b?u7a8pƇ8p؋#DDFﮯ.,V".#?`0hc`| ߼ 0_ 0 0c=" k+ b^(0Xŋ,X=z=z,b,؉DDk?}} Æ⮼h1,[z`uU]u]uYeb/p Hob8"1$ <7N@ @b 0 ^]s|E5u 7, ćOaBz/@ 0`aQV$H`ޡ]z/,UGU_A~ꪬ(PaY!ڀD?zu0/aBÅ )xqF}yuUXP]u]xˮbcB#˭zAw XbXŊ뮪.뮺뮺8lDhE5߯t. //i*_j],xys]a<^ד,^euߩ9R^'N{YEXѯ^ؠ˚L*ѫ|4kk0Rǚ˯v63ǣ&mM\ƾ5'WWWNnіmɫ[FMJkUiJdA[MypeŢy+uuKZx3ׯ,]3Þ4U[EwgӞũ,0asñXzeVѭש>i\ŤSM8Wea˩^vɱ\WWcN}}6[J=L`W6/ɭWDn9ۣFc2jhMLWzz# ͓2Ex,lpS1fœ:^}xFlͧ^|Yے[uر_uڙԯreǃ pk~Փ[_[.X׮L`:v 8PB]eZ5Æଲu 맮ba"ΖU- 05UBUeVUh *ʫ 5a'} > !„ (KUuZʬA|3˟S.mz2cɧNLZttFu-]]h{ w /bbbanἆO{ ^n0pփe_y "w [7(/Ut5C,Ux C˪0 O (oÅhk‡ UA%VYh,hPYUXK,(KB]xUYeZ 5]e.'8xx7ẀpjV:٭Kj׏uW.DZ[&_~4ç[MXP=x;vt'NuV~!`.wN:Rժjůvm> \:pañ`/~|ݱmhѯnW]uU(ɧ]um3S2Ֆ-8kjW:kfgí.i|Ú[b2l7U3;77[VVؙ0kLכ7gggfm^< (P B ՒjdY,IX  $$$؊|UI P$EUI @rQbzPjr!NG#@1i)DY HX0wՔXE勈;.ppA.\ f!.%܂tft!ܻ ܻ ܻ 8pC:3! Kg Bќ\8RKw8 $% upCg Æpøp,Ô.1%.p8v ÂG8t$û8.A. 8r+%Å%.٘pwr8rÇ݋ :2.)pݝÆ9urg.+R].`X;R\ܹp\.WFw . 0,]˸v:pó p9pᐇ r З!`DCHppYÆhm$Gr .&"!`;b9%WCÇ(3 p +!ApǑgQ  `\+\8pTV.rќ]. ,).A$;vwggBrCAv!ܐpC1.3 ᜂ )ʻp\q p\8pќ3ðpᐇ 1R< r?Ag0 0 <@`BV!,B e*!J1!,B)4gug0b;[ݵ׭oZ|m|zxZk^nz ddb$`(kzZ{z޽zk  bC1 PC##$31CA1ò!H(b$0 B21F`QQd,KX,ZŒt$:3f))F$0FBıe  #xWb%Ib%Ib3$,C3$d` `I 1BA  J0`$ 1G Abf#goW^{Mk^^zzZ{׭o[zݭޭo[^{4f,Q,آAA`C[{{ַz{޶#!@A!b)\3!   X2+ $G`º(H,śkխz{om׫zk^k^W罽kv{޵@ 1BAbA  XC( 2I Mkխ{owo[=;v^Ô $ 3$0  (X,ZԴ,PRXeIVPw8H~pT(pfP  23 *$f)6p z`:B UJC QA),$220 :w!  b #@$:8`@dd YA(UifֱhZֵY(E\ dIW'32w\Β`I tPC"Dv.@ (/0pa #O ^=F&TIq0`~ҦMĜ:bd!A\3 8 7Jqӿ!&2*< E xpTa*DB(#4!EA7QM3ԛEP e,D!g '2-|)zQ v XKX-R}#eѨp DXP#C_:D0@@$PU:@(rFA)V#D"E@EdAVDQ>xP'B^{3.h0i3~kYV*J Cd99,^&NU:uNԬ9ʡTt{BU]]z?nc2D)H9w3 bR4wۿ;4CQVc(^pe BZuJ] U!+몥ZlȚⷥr *ry,QEOUAiIIFTZXK8xyU&Y5ɢ''aYC3f;[$&|{oxbHUB*.LkF}m9JD}m4iP-a&'.ʬ*Bѕ&M }[ꮒLB)1$&T *"$ x*B+Ok`FUB 89d[G ?ʮ?w_]?sҏ٢WYޭu[fmW}NwD@\rڃۗ]&e;%jҢ}BES7@$BN$:zBHiy?J4m.OLVBn&[c $ɐ$ &E EQ1HȂ (o@PHH$Mw1ɐвǎH/R'EPDե@C`HIV$8C%@L0 QAIqA0QX"g H(H1\]uurHX zU**E2_׍uPha$Y,(B:P@WZ", ""F " y eTDkP?(# wT *@(3РeL z Đ7ݿke&ŧ>FL&@w\P |Bϰ0@4pJt]MF>~Q@9)A0$ /[@>(R2ExWLe# DNu!ԇP" D%" "$D'RIR@:tIF#aEEE"DPB(; (D$ S0F"RFd# (!@tRtCNtIԓRPPEEETDRNtIԈ҆  (`CB1CD7DIIԝ4dq!& M LJLRu!::$*IE@E"QP(EBN@N@C'RBD( ֍ DŽ7qqqA.V{DV uů@ؤ I! b}e;⨫;E,)#lj?!!$(JD[կ]{B׮rvp/k^7]kz]wh]@OHl ?QH%]mt'i*.$(¤l5d? TFV+RUFb뿐!ڭ~vO>`ZJkcheZ( RE6.cER20}$խz{[gw-~ ߥn_AZw-]'=ս-j' z^Hk~ݺhu}L=*Zr%ԍ!d#O=UUB` $?QaZ,OTBfP/)?u|<]~GD%u(swr~Oӥ}|`K]BOadBObJ*6"څ6J@'ePQaHSDaJ~HJ!!W@*f$~B"P%+G_K^׺n'!Eb0kI#(@YC|_vfͭzwsrL-wnr{}zK{쾔3սn#^;u۾V{z%k}/)]}@wN„Qa۔K ,ǰi?ʑbv|;uKW}ǫ-wS V.8];]\v_Gj[=)Z}CV8嫷 ]9НjwkwVbZ|NVu{NKwoHB /HB:kZu~_`RJB-}P/#KG{[#VFm!R!VHRS;[Rk!Z;VڴNT,b dmBWk$>]$i;{FRK}Vͧ\j~\;pQ)NCZ2ls m.O|)#T wRwEbu$(, >;f݅ jKu[.+]oZu]1"wnÐ:ֲF)ZBE?a P?hv jr+u37ݼO#վwwzjTUDK^L  R4$! _Yۯ@u[wO[5V+]kiZءZ2vHhl(UIxJ%֌(^vhߕk{HVﰜ^9;])>uORV#uZV~JpJv*Zߓ!"P-'%(zX2>a)nIq@.u_] u}Ӗ};u?oG-~ < =,ͳN޺_KwZPZ󕫵x JP?6< AjxF ~~6~%ץ)<l4X pqMtn}m|{A > V,OB-OABԁKHC H1vA-ݯʓuo@4$! $gfP "4 BB%! DMݯM\W_Iۻ @DZR(={ r|Б(IJE@ژ !>y) ;H_03m,^b%!A0(TEUܱ„;)OI)B!AJm=TVݹu)А(?ˋwYL.(Xtr< P (J)H{c \ Ahd z7y;3cu>__kDBG2q$8=ѾxZi'R?>r0xgyUh0UJI D W Z222 T`TT,? Lk H-!ŀabP YHS.˩* H("/h?AxF!AKbxPL7aTa KӒ, A мl\"z GFIG8IN: u": #ࣁ#ģ%ICD $蒈 QJ @AD$DDD" %:$BHN#̠DFր@6x@! ho>SN"0' L !p~ F )?(!"Sx8 Nty"y y%S{nvm9"Gr^G\4hq5{E?`VKr~FVVW~~L _q*CEZ0H<^ˎS x1I-LqHzY.C@+Ng}_;gН&*6Ciݩzە ]7 0f ys6 j>ݿ\:3ƴuOOO_OLpiphD|=yG|GycCC@hf@iK  .VOlik)0 $ #ƕX[ a! @I9L-@V t $H;yR#, ovRY7Ʃ%(@ xu[zhnA:D0K "znקs}nS2$*$Z e-X> H  =c}4-u~-]P`alQA lJ" yN9#dtpI$r `4i^XYŷ@HB@uwU~Ԯ:⨮*:*;":J먪)$ wIqF\]Y]u?iW}~T-sˡ=g~N;7t+{.~~ͿՍō{7Il?hcT~?43Sq`v;#a^8 cP#p~! fc C@$ch yyth>IS>}nSSA6j"5M=mnTo=0jL#z~>>^OO{YF.D'sbB$ #|2ׂ“괳* 7 kE@@k(Ҁ /F*'΀hRh%ܟAm֒vp `DT=ja 1[Y<5?>C<4yc~|>uf$RM|/WpwHKZtg~fcmrm?u PNVVVOGr\'ivԎ`6!MF=3JU Rȯ  "\&E/RI&^`d@FQ4Տޜ*a$P<'UcY7R;}E ŗ լukjlF)t܉n„mo3|>>Ό*zZD_c^&,M>cbWK>zq ro:+5-{FbH1q>S-_s\]tHq7/z].it\$䀠 y)ς# TCDOY;m%/m.Ku d)[i)O @UR+G DHVI$||ja@@-;|^L]~hwx}%#}vWɔD:*K:u`%~1 >:nM"M?J:av荭~X^#sx-@w!g4Эs//]@p ]&Hرr#i y%ԇe $ HV$T$$* X%AVDDVAFB%ANRI!=ϕ;s-: 2 2R̐fI!&xߛXuZ&N18S=u}wURt;f&aa`R  eP)i$ $ Hru䛞?!ݳ{?­Vd5"̒Y>n]}zܮVv]A\ 8eς"VjQy3`Q0&uL*3[n#-&:b(0V\7HTXϕIGt,CUUUUU?持(4=԰*+"*\HDR (H  " ""+"+ +"+ + + + +dVH"+P+ + + +" +uR#" $Ki`T@Dh"Q 3v]Jf&7G\NGk fchNƇ~nkOڧ}{s5Tw}볇fq _k؛6nO}wqMIEO|/煸6i0kW$b5{s*LsF.a>~:x.")HSsPG_}PR6D@nPj?Ծ:MLm} }G\;3OxkP<#g<.8WU~_QQ]O3䯥}_=?$mbHdb֧|ާ;N{ &r9&wc`C*ڿ^ӲFPBdUBdDOd ESZ¤&|_1pSM!=ldyOLDdDN0 2; :bCzHt CF"A-J?T* wAkԾ TDB 2[A%*ȪT[A@DGqu>zczK88~<:{a+WȤݟŨ;Q&H9A^䙃1fg>'SQ=5COp]ʺK`WU_1qs-REm']Ϯ+ i~/ERX%.ٮqU0y?3x?Q15+4fHefxowܻk/rSy]W{4ol }Y\%۩+m<<}nӗ kC6?eU3=zpWk]%T̳ ߂\DG~stu .M]Ud.FTP_SY g UnƃҮY c 6^1Q/tL+_;}v_vtMyvso@πOnap{t_w.3h..JNُUYۦgKנ!p$TNqiX}yMZw7Y^6Υ^k"USUB"Wá!_]iSk~M2=ܞWL0|L-'[[RFl ]mp\܍WqҴs.Px::Kw|ocǩ8_7ttAFzq7qF_A@wB [8!8.BC$!` AZR;mS$"d(Hp[6IRs5K\K CkO+ꡡ2x$I L8nߋ)c| ]^z{f[dz޲i>1~7S@h^HpB>0?o}uf,m뭑}zS,t 7+S5.aۯ*j]mkHu*g>zz)jU /oqIXWF> Gb2-Zk~]B[l/ң/8?] 67E/^R:?7㆝|>cr\jFUnwݶˍjYvjˌF:WK]X/p x%ƒȮUP+`7uE Wb-f|}eT7 `SO#`0C,d׿Ma\gWm߉R&L,ݓ971Րsks`.?^?vߛROVTZ?6y ~'ؕÖ^b<y{\GY} /8neyӶiql,xߒߠHi)|KWOMٌ0ew~x.lH3HCqƒĺs֯Mc~+o)ޤ:Y,aσ޸>fL(:K.\Cwod_ќ2Vޠʦ^&\ u݆&Áɪ9\>LG sK|fƵFdZ-QMY 9WZce{Kyq n߷#y,1KTkaNZo=l5;mtat_ GFQSamԿWJGʫ>uS9 s 6ɒ)MoI8]*?mLR WqL߿yNVOt#QDUZW/oy/%P.TB}|0EXcc $팸5UNd,; eژoxbR56)VkT㏈Z,ea%X0D _ Q@h:iClk|-v؞-m/`Q|Qf‰Zғ^>=G-(3ļ2~Q#޸o3G~yIR[!HN;d\.u`mgVټ7yMYxLxaG]oݰ45>Ÿ^n'\{ƨā_P,o&u9,諃>*xn r}Ec\4 r1vVUf]k)+x{9'ɵD6cYVE+ZUlyn+~VpW0y]mKvZー{_ſ%{z6|LUVrMsW7PaߗQiu  ÇowxJlg;1bkXG=bxz|n"<WWU,'.l27/Mezἴ[2CQ[/(Dz)`gkY(Zn~&h:G:[/^9RvUUP {på';( X/#?>mnwYmҲo9=] W;6q/Kv׏:Oggzޕv=gܶχtGb9Œ}GyXz `DAIp.{p$ k0 @Sꆮ41Ty܍̭g›,NU1bिGgNjUafVGR)9Y߾}h}y6k y##"t4r^<2G22FFFNO.\y$@r@.>2LݗCH#ZPI"v# ;ϕ@\NŰK?I[jvO! I"qa3F v7|3<֞:k],w+*39g3Pݖ mgpw2I&"9rsDd@KƠW s}WLhX[:?˅w?{y{?#ݨ*nVW&Yrv;LLXR"-CQfllT#&ׯ$%  W~?vCz; !:lNhK;8hJ4M9ӿ[,_4fM7_Q#g}ZTL?!Q򴲴N}֎nf`u2v^^eedq>88Jk!q6Y|YӻL $jf'hUh2@\_\qn0{#?Ks箕?]~+8 ?#_/"F[LJ>6"V*Pƀ^VAC@~>?eO/m&-#Arn@'D, IˏN.q/mmndȠ2='yu:+6_7=2"Tb*yg 0{?;Gmvݷmbb dF#J*Srdi S(b7(T$M̉ʡ+ʌ&T%U~d-C1`Hrjʢni n QW݆>Eu[Ko^^^Rs]/IݷS;=Llm-_7W+g+ Ɩ12^5E_6/ͳQ2),%fWѣ(IJu"O"C%-[z&a]oT/F}M``C-\\o8=9\''$~W"q?FGHN~,?N&ǖF3ÿ۟0#ɟc餜o`zGݦLGGC%ё4l +6%Pmt]-a$8 }{}wylkMh:M&%܍3$+Edc30 2⿼}|co?FQ2N1 G5f߃] ٟ[oGw^dY7} s> $^9Q~/uOGv? n0 ؒ;%ұخ"YAqH%yy+j]}YljL# rD;#~`mDxW Nyst}OS=Nw:kHT"P P) m0N D[ ww^. L{2us)` -UFa?`t&%@&@H=-߅joo8mϛ׃!!Z@8"9dPg#׼V(+:=xV:6РzF ثvPenȹ@JQ\pt\q!e%HqC9ܝ YIܗ&ۛnD#q$Du\Fg%CGr$uNE:2࣒)-ts8Cug$ADT)m"I :("B:".H";Q!BT*992ynSgה2mX/?[.kdUv>z $Ri;73W]/O?N1023Li&ܻG۔ݰIUUIH{-)',[/;e ]P;{P)t2@!&I$"ƙ JWFC"յKxU"s_ xD DeLӧNcTӧN:t T΁E@es8\. x<6FUJ. 礄Z ]pvVH@օ㿛i~/g+F Iu6kЧ<:tӧNv#"Aa@A7O)?R*Tۺo!&m5!(ϟ>( o7'@Ts$(Uy**ž7]nx69nG,E9NI$&verR wu]U'_aJ[DIpBpQ"I@!$9PA"A%GHrqp:Duw]QC?BI=Otw,nUV )wn!CH"4S)JR)~ }b`}ϏW"*}^.]*TtӧN(pÇ _cI" D1v7I{ ^j\1칣UAA$l$L$J5+t}Ug׻uy)Ïxp/w0+[V˗.f\2˗Xy}՛6w77777&Z:@CL!+hCy’I)&3V)ϙAD@#FƬS#5{leM'e{%~S@B0 Y$5@P T Ԑm&ޔ|?sdz 2].+I)6B@3_R6=d0 s$ !3 hA@^%=78~?zzt ;zU2diwMEzϋԄ8 fXI&, P|~=JI"K }㮬y~U6W%Q.JDz\˗$ܹq˗.vաjիV̵<@p;!5Td"#+뫯/o_Mw~y].8|Y_¦HT N X(aAͫQ G 'L?4oS?J{zVw-sdJO7gg>1*TahkP7jBFH0f,Y6lٳe{6lٲ޹F׉MGTHI& S#!!=cP!dmLŦ;~ߏ|lY) Rg(۞ju<~?qof~0pN8D$$~nr՗DY\{SS; vɯ5 SyG=i᷄i-Bt} hrG[)'wXNcIT9?ߖׇ<T{OqOHve<ΆPLPLB &l2@d͖Tdɐ2d2e d2d2O'Ϟ'<瘞'ys<=̧Q<=yz')z'g>zzyz=x'y9SL2f*C(&C(dW~/\2a!@Ƀe 2d2d2e@d͖T&C(d!!Le@Ƀe 2d2L2`eFL PLPLPɆC(dɐ C& 2A2A2A2d0eeT&C( P0l&0ld2ed 2@dʁ6YP2f*C( 6Y C( 6YeG# ˀɛ, 2`e@ee e 6YP ʁ !Le@e*C( P 2@d2d2!"j!L2.!L,3e&lN 2fT P0l ʁ& T&C(d&ld2d2e*2a6YQ 6YQ ʌd,2@dʁ& Td& B& ,!!!Le\g"|'Ϟ৉̌O='O0fsq<>zy=A<|`O2d2ʁ*C( 0, 6YP2`,ːe!@ɛ,20L$4)BLҕLRL$.L%@I0Ig0aYpɆLe@ɑYedʌdYe2@d͖T P0f Ye&0ldˀɛ,LP0aYp0id(0aYpɆLe\!L2.2d2d2Ƀ0fl,2a6Yed6YeE#:pH'A/MчFn(ã#22@d͖T&C(&C!L, &leLeFL2`e@Ƀe!!d2Ƀe0Ƀ0aYeIRI0iJR& 0fiJ\$RIJR$%&FILJR)04@`RIDL$3da3NJnbp9I'3`ӧ9cge&6Lp>"!>C}?>{a`l o(BBIm.ŗE.Ř-E! e6Mhm(BFi0Cw &mm6j6Аm~nm! o6ލ$$}oZ0u`wFu`gϟ> 2`Ye3BL$JR$a& ))4L$e)rI34)rII3JR)4L$Ν9.Ra& 0K>>>{\+YLVeUEU2yIS$ {cđY5qcU-q. )nID44yd}9ϔ~1Wya2fFpOhB Eܘ.p &,rKB!WMOrquB9P.䶡$mNGW+q %r͒3c2-T$*RHs}Ety^K=gGGI͔%$%I euXFSi!PՒfTKKi$Vtׯ] -@F PeÊҒ*CDq,]N i*$-$CZHnI\^k`U6;yBeniJ*3Qw̪I)JRY+/E!A|eA]A@YDBA $DYY$F@dVDE$$A@@REd:D $Qd@FEIIdQRDEdPVDV;:DIIEEU:-NNEu<^9|,E.M C~d{|;Ͻ|+! Bt30ScgNnٸr͛6lwxfH2dx@_|!*.hd0 ̆/7Ó;0pN0OYʩ̩RG*TR qqqqq`0_Ӡ(ra2n$4]t}nԌ݂ԫhRěoooooooooold|dxCJݻm۵jׅnݻv"N[$D`=9AA%J36Z078212oes"]$ʛj.#'\P8FƧ:g53@i)'[v-d}<E~Qv?bĉ '0./2Y\-x1tF #!=zdeB|"E yHw;ߏsֿ:ufC=7?#8o$|@qI*8X#Py?G̰|_3еBr3h,,-u-,!0FsӀx}Ze eGz^=.п=O'G'GUx}-'!s~ryD|hͻXs/'xo^/ő}d?u;/vt)./cD>߷~KUp fv{細?1x:22'{i-{vx3b=2#ׄd9! >@=rIꪪbG<:$\dbe: Uēʙi'Yf}WHR-kqCw=a 2AH5.bcY|]H~un[4Ps>0fXdDȋy}{k=wWvYg@*Fc"~S9gUd̿/ Fle4=&<{0J o@ؤ!zcdMll|mhƝ'Tt{|&"#'""5'Հnu]]]]]O8H7}M}ʸ"TY)a"P{7ㇷ84wĽFymW:kI=f bBي~u?L9/j_7xL aii'uX#' TN@b8 TNT^NЁ%VC(8H;'DTE'S^qK6@dɁ2~~_wU.I솨֫VWu|:իVyF A XRRX5 .xfn$$ H2@`#hy*K-o Yv/kw4^Sti&/K(\LJ>(|9z]Uܲ{u,|\nK lz|<+p888.KdD`HA!]:ļӜGHs)֝!ĒN 1@q]6C0DBnHdI,KrO E84D ƻΟl=dx<{XbMw^]zׯ^y(31| hZsscwwvv:};%*L^mʃ+[,C c@K7x0? ɤN>!&|cbE"=*YTi^cRJ*TR,gSԑ AE4mmm1h@A@"=SsaOi:tF5]u^ Pam#E>"@A@ 0#BjRBIi#>{MK/=h{d BGjͭV-jըvZiָ*(C 1'2իtjژe褬6]СOl# U>H@B|I$$[EEįLb-i5'jr&Gn 8^z6z|0%%mIL+33[:y;;;;;;%a$ *NKl1\4dD%Y~f{rZ{p\;" _dC#{{n˗.\s F 4r@ų6}I&t|9 `ŝ~v|?z5;˪9P^ JdϞϟ>|Ў |BΗt85*TܧNׯv/0%|6B{4UUr2"Glz58($+?މ/çZf+}kw9(ݾY0w_٘؎T:=d8|)ORy5>?wg!} ՟tC3Gx+)>s׬{$ >ZrV|CFS|g>e_cG{M;vY}e{..O'CtY@[ Zh,jҀZ-ZPi@ihZ@bՔH+B Pb͔,Pdś(A6P,lnlY,n= 4 PLh&YeBd0PLe,2 dY@k1=M40M(MiM)m6 4j @( T &P Ӑ' NANst8N@!M4ٛ5B M456j h4ٚcgeh M dlFDsLlAM)RP B PmiA6 ( A7BA@(P( P= 4MQFr 4lP( Pm ڀ6m@ 5b h* h&i@ mh&A6 ] 0 6M fm 6Pm@mmmmFP(PAB٠6 6jh&A6A6j6jfmff҄ѓSiSPH&i@Q Zm P A@O@ mm6pAmM m6m6m͵6m mml6mmiie,M~h M4 ɩi ?Ѐm6j`ɦmmB =6dmmm6aPmۂ PMn6 jHi$jz 2, ɲ˂ ʄմM4G4e=pAAp@M Ai4a( Ӓ4nV3{7ۏ7ok:K{٤eJ*NRh*T(*H*M7@HTaB@טSɊ 0dɊ&(&90k v& ` Af`kʗ.r!.\r܁,K.\ J9FpіӁd{Hj4 &ihiM4WD0H$& YeYJY 0(&L,, &L.YK,,L,,,8 6Lehii@h0iѴaAii=M+t ڠ.8pѻDL d#ǏIb, yybX)NGWk_:"Qƞɸ;mz>M(I&' _ r繝G_޿:kk2xqn47OB?Lw O aԯdqxBH d-1qdASQܷ4TE;tccGNn8$z߅V c@QJ+tRХJ*Oo< !~.ϸ!>=/+ۯu.\qUUUU`@ -sA~LI%d1ln6l0Xy-R œ4[ j|=vH *1Yֵnջn4۷n3 0b!GNNGP[hǶ]綧*F|뎢#Ʒӯ(- PYeAhdI`W+ W/|GLB8{iH3/cG2F|=X"!h~4KstnG9~w;Y%dHO N .ͦk5fYjLR Zq8q/fㅨ!D *-PPܥ $;:bOogzS}NYn*//%{oW=3: J"*nt]σg8iuvYb>c,/XҘtc01.>iq8lF:óz[rrM~Mɣ pA2THUuL."D(x.m{*NϭQr:ۭv1[]քN\6臁BAꈪ⢸뎻3 Y zej߯~N/sz˗.\+.(h ArYkgfg,Megϟ>|ϊ:QE$"8pCG3E~}>wN` B }ʟHޟ"YHԉīx33W #Gi_'9žweq?9ώ,vϫ:*qD7SG?=Oߍݽw.q3{C^sXlI{:-K/&[!y ZzmV˟n]F;h"Ma]G{'?L9-v3 {Ʊyb_]lGZu)(;}j5Oqm--ۉ8MԉBrBCo=f;Z$K(z6f3?A}Mcj5:~RK-Klz=KR ]d$KPr@v~\Q!U^g4g DeD0jŹeTt  8 54c~QO(;;)xGOegqyfSowu)G#`E_K@m$v?On}/η(>zzgāh%)Pjֵ Zal, @.Dț)X-?ZKK۝ٻ:L[\ƈc֙5ؑ%>S~N>zfQo\ 't``) 8EjuUXI!Żj5gk|~+}G-fJEEm}oTm„"pU ?N/FzXopssnƇs_7ͩ]Ti5z%?+{}ͼl6O[QrO~7~ZY~ k?2i?o kǨyO>L#{N#K\******.g3p8 hQQQop8~٥xTTTTU K ppm|> yq8~E.6<<<\O'ɖB|ɦZW|2*jljlVӹX `୧xjՍۭZŋLJMMbŘy-ħZbJu)GX!brWMLM552jիWbŋ2&,tZk4iS+1FXcǒ)==ϳ.m]ߥ}5Ǐ|tVVX5Jʽ hz=&?~nglm}ϵikdkp4(hmmt:C^wPWV/U?վ˶}Oig#Awu9h{a4>N.Emt;]h~N#]V =vZ&-D.Bm 6#Xscpo("D_g+OKg i gtB]~s͗u2~Cîh;/ọyW/>gyLY3Uq2e=Nyª~U65u_>ƕ{J8,7_7gK3}߻҅\m=f |I@kGeږtNUժ|7 )Ar7UαmySNi¿E Se6&4c=iAMTSvװ_Ƀ74ENL516h"0i @ٍ @%\+Wl[ -nZ0aip݂rPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB     =`IR&'"\ȗ6D%͕.lsfic1c1c1c0k& &&F11c1c1c0"""""""""""""""""""""""""""""""""""""""""""""""ŞݟQ.Geo~=uۛG8xxXXXXXXX]vmݻv۷o7nݻv۷nݻv````hx7774-5jիV4hPѣOGhѣF4hѣF4hћ6ll1bŋ,Xbŋ,X Xbŏŋ,X` R` 0`* aYPŋVL2bŋ-agl @2d` 1C"""cEifi992dɓ&LJ*TI˗*TRyRJ*TRdɑ!9$H<4D:DI$JL848pÇ $I$EQGLI$QE(!$IQEQF(P`(PB (P( $B8pÇ D8pI$9IIiIQҢEQ4(-(E4QD$I$!"iÇI$"%$HCD"ibD,Ç8p=8i$I@I%Ф8pሐሑ"CC8ix$( "GEB(EQ$QEEt( Ɓ 0`BEQ (PaB߉ @| @`0@T%-(PB…B  4`PA h D(|OP߿~ׯ^^/^^&z>}z׏h]w>˗..|W.r9rrˀ˙.\tӗ3\\霹r9rsrÇ88psp4nLiv4E[ <c뽯gs>ϯ浻Y뵾޷[Zu[ukuo?OY5fY5^""-jHjDD7|| D_yH>  8@0 @M0 1@4&! 6I>p jDDDDDDXDDD@B%A#B@Ʊ}_+2O P_v_kH 7T[0}o\RJK-i C@n>x5< sN5]uq8I`Qfjjj T[d .x!K|uT9ڠ}rlڟ~Uj\m|ifjLo@ s>cda]ZwA2zɬ6H@1r4" iP褒{޳^XP@<=Cv$WC>}wXm}̮=>:yu]8s+LppBO#\ ~P=6lٳtw,Pvi-lh92gSZ5<.baL2dcsVZ* 7GBGσ g׋$!$z1_7szS/~ǣ Ͳto'СB (cСB>'2P„2mPǜB 0eO/{WkJ%|.Ʃ^ ez/DЬ^x.`È|Y=ޙAZ_SSSSSZm y71X"aCߕ=t  UGV]ujիVV4*"xÎ@ @!6d @(CmuuK *CQx}V/CWkki,/"-Pu@dE@o2 j rMmU&/$@0 QNRU  X5`Wx(*gQD#渃{{\r07_ƾq $VLdY}YPC JP@NR8 !I0" dVƴtuյ }M~oo}_]w_: 8@@@@@@@\GpQD@qume%GErRTqqwQQrQQEQtwtEtqđEĎqE$rt'TG! DDIttDqwqEE:')(Jr!8 p"' GpAD'8AQ$DQ$8P"I\%$*Iw@RaCfR$@MD  Psd_nxt 0d`@-Y^h9I<着bCixgp`&ZjP"&$TKP_MGjZPdob*\A.ኲK$@D qRA@uӾ Z~%w|GҾ#33>D 颇' E2H3eL9d_QҔd|WD$_U=_W}_Wz^~I7AKc8s8xx^554^GA^!v8o'$\tTͺ>I>wtXX4yC:0Tr]{Zxߛ' *TJJ*TRJ>Y PGKSLSR0 ⚶1\}RMuUaaI `I$\ؽ ]zYeby&)ELN@2nٳf͛6l׳f  v|-xoPCS@P axA )(KXvS*}&Qcmv$Sm5ef^AmyY7yfgף&7֝P_u{7wo߅8w!؀D6wDoos*twGx^/x!+[B)9zLz$C%􆟸ìKn!!`]sZۚ:ژ\ko6E}p9[S|X~,Laǩذp(~~c]lm M f4vp!]/muއ0x:>_|)4.#b?-ZgNYk9sMms 3`F˔)S\^^/s9[3504.ߟJfuvI%;y[vDn4W{_/0vJ=U,`V*H;v_W nD7n;^2 5 Dйnݱnݼ2'NsriLʊ!3 -OߓQXh}o*yW9I˗1%p1>~ח8!h9ER׫VWy^իVZ^Nއ"_Ϧ~Woia <= sN' 0!?8+ikBӥ5IUW ;d h=ࣀN,^/)9hJ`W7"Ŷuz]<Jhf},ղڤ7D3 I@|0>pJ2fSV۫kikkkkkkmi#8Tm!7:_g[n۲t`0e*C . O 1БZ Ā=I6SMe Z? 0#ɫy! "E>3$#Q?3]$:DJ00|LGENvK,t1V{KpI)fA*BD $TAJ(N'?q8^/qx^.:)""g" (AD" |RlbE"TFDdT D@ o{/q8x^/&9 MMM=54(U*Q Pe*25 +ŠtQ yX!pA-^JFkP! @EP Z"T 7bi:wD?/( n.thW<)z`Np%)qs%$sPrwIAqtD@qTpwGqUq%GE9QuEtQԝwܝEܔt]GQGu'I8f@* QHB1v7ܠ"x!!A0gθp:p8 t @ t8D@;8pD$CĜ#p= pÉp@ttp # Ç$#tp I8GI:@pÄ$A!BBD#x;ppp8Çp 8GI#t!p@;8p8tpDÇp8ttt" @;I::;t!xX":ft1@H8"@=P '?S::::8wwĝ#GpIÇq'wy8p"MÁ9@0NI@$AÂ0r$ ::8tttp(wrRP! 8p!ܲ#":HBD$::{GttwIp:ttàD@@p$ãG@<۠H1@ P@RI%$tV wA:8twwGGD GGBB@pY }Kaaaaa,e mJ\C炟, Z',,/ c+!3֠۹ZRbk #hSMe}œk7]Y/9;%f6wB^3rrx!2, 7Zk6lٳfw>`3w.>[a2;m2hePFX<3DT$<mTjʜxN{C8'i}wPF&Sm:Ipd_<.YY^u٪Qc_?>Lv۷nݻz91pnE VwwwwvwrwZq/FTJ(D9IRA8E^q HAc%+l&He,!E߯ 99t:_yRf/~":5?=N:|Oe(yR5n!!r!wMk[nsrݷnA SQz2H)_6.0@ t,nωL%4R#M̀Q@Z]xBO {o- ^'/{TRJ*ZRKL=!B ՄեӡBmn@k5I*T!FJ<޾I%@e]0d+C&ݿX?p(v+ 0|nKx{mM4$&vH'`j$ "kzI$ILmRt #uܷ{\y> ݋?CxDmӛ>:8 g'ޟoo'ooo;SomWFZngá% =$ZzX9e7'E],XBD|C/4I^Q_?w*8++~*\"UjȫUZj+VZjյ d!@BZ"' :jvDdcX!wZ:.#sD B]KI8(K!a VY, nh\ aI!,!nu W $W!%??Ww~N^p,AAp6adP$ d+V^Zï^ukׯ^ u3ρb-Tڀ(mACPJV FAֲo3UuuxʺYJ"Q 0a"QfJ!= uHl JDNh, `e.m#P|!{HH񈈈Ȉ/%h__iVmsyjVVaa'2Cx뻣1P],tq=vz|wv"Cl 蹢F!(NpzxV7L|C`A À>۳EvO[{oNPÆ0Y,"!Y;{~puKUaz ty_íEFTzRA.xo;g0KeFG3hu/#ٴB|ſ*N;⛵)DS^ qF0loEt]Et]v@9!/@@[O7n-g|Ap(^&lG"('t sTKpwYn`!Irv}Y[^WM̏ӏ#-X8t~'֚pbY7=EP>Ith+V=Gb# ۟Cm 5WHk߯;S!K|= w0kY21g߅oKGX#pGz;FŊǓ&<| P8=aagy}av;ð U.T/ElaڥMN!9I{do5VP|q?FE =H;/tq7K>zs~?h}! P`Xm,XbeRXʂX Dd%5tP@8sbyqt]Ӣ-cstR%u%4"rxyȝq9J.n8?4xeaǸǙ]5 i۽imm)JeL] koo<YXIC&&?L uI z#0UUH^@w2C ,8muPCX, FpO`>(h+.-h7W|oo` Av^-|mAxN?~?Oqg8?zҠ$ |OY<^/xGw~'5314BBkYۓqlk'E!'5$-h.H6TJGUUUZd]nΨPdU6][6-_'gڽ9m]BvdBA8C{.:r~3نj52kVZf+VZmzy@cCUjդV&lutl]nW($6礒_x@SޕA*,, UH_#<O2Lc?IPġB Z(PJ #1 iz7t;Ocr5$@6I%^g NcTM?wt> ,@|>W:w]fΘtYemmm;^mmb  ;Ye:~! :hGPSs$oh!9%͈>:Z֭ xTuߞF~39o35Qb˧_},IΗ=/K/K.qs$*jo.Fdg4 BgGJիWum[[w@ MoqɵՆ+Rk$RClYyr>FmSJ1# 1%QT.IhHHNDBxhL֣rYf],N'# Z S6C Ay}$8k?'qʷ{ ,1*ijÃ!˽з\r뎚7fPQ€C 4C s g3o\yۙmӡnRꉍ>SKS{PSLx RDP w}}oZĎ4 pĖ%ԚA'|ss] =V)l є씢#blch@ !k!C*&gР]25(ѣF4hѣFE?&o]kLtaPm *m DODraFѠdyn]<j.:tb h8_ .kov6HV° UWzZ/SCp1#aS% ꐴ[a>m1ׄ6O6=~ރu;ʨֵDR2XArj30gw8ى5 A3I֣A# @CM.dj]؟ȍ?:~ a(W>49P&V&t0`v2&DR9ڕYpmѴ@6MUUU`Jk 0.C*i-J00`GFo>w-xLax}51gf38ěaIN2q:ɐG.cgIR.H-T=郠8= VիVZ](00z30 C CMBͣC+~Smxk$ HhL #@B D t1%k('7I$.4d\2MHdK9fd2H8_4-A7_|:؍ϸ!N**TRJ*>4ã1!on{j^-1A cFg8?pJ_2Dj3OOᅤz>a尿)A#Du5̛6lٳ`M6ntcv4 DM ]s=t94նoډd@ rHCuFy$a,dm sDݙ͗z.]}_]b:_?P d(M (PB (PCDQL/DooN-*T TR !Ç8p*[!€ƉL(333Nݙ CM}JЍ@ -sARYGʦ;>¿v20` >^r@dp@<|0åե/H 0d G3e3\Db\77 4(y߷1tx;L&_":bM;q{Mp{qBAj9?Ɏ, l9?7ynw!N@ 8r{n1s9g3l O;m4/PlU-i ^!I'!)7_?Ǔ׳mzf o?$=s++|?>,CZJ=!+x^/⽈4:#AlPOC}_CqQu39phJq8I%h,ߠ<Λzo jXu=S4@w1g(o9#x&wFL@Ap@bR8hPF9hѣF`!I#pq|YՇ,.f[N}jՅhUxUUa^WBuLߒ*Kر` Mx*./3U,O[&~I <d쮚MzhvO>|LA1#g6 ty6f9ӹnݿIr}.(@hB2"I$ O.+wETKxϓ{@"i xǒƣ(9cq^"zꞁOWݣ%ttϟ>|Ϟ0Pp c=?W]0uF4h~XbP1ZkSz$EF8חelk3K9b`?aŰj@E?{{B<;jE5ؾ Rx@2j7$*՟V%ZjիVך0Afsz-VQVZ##0/5Bڲrq IrZm -7$E˖klPWڡ`9{˼8oL8@t;;@b!8,dرbŋ,X(<AF;~_ ujժtIШSy :{54BQ<+,yPr|p2sI%YV+h2_3QőBiv>EC]SB?@( Onct(PF4c{׀ D@15M=`g 7AQAjH0"IsN˺;B8u99NgswwQS@$.#s;ΈwEGQ{ׯWW냤bF $"112HwQ΅H $E@ѓI)qNw\uqq]_ӨĢ8E_U&OL" e/JI^Arl4xbq>{x,|p-&iYmZmqNF.ѣF4hsG/ܒ2_=Wq{fNeuXbc,X (1Yeւ A !BCI} ioJj-ڒ̓D ऎ63'l@@qmߜ.Eh>Ԥ¡'&kܘV|(<-65- ﯁]ăiͱv^ߩv|'?~OicUMZ^״ËۿAKMsm~ϳ=wԛ[Ov89J_,??'''&{>k55A3O?gϘ1s~_ןz޶tW}n?;?N][xZnO=~X~Wjg^DGrIju:*}e{^}Dm&>>s:X; իO6%Smܲ d~ vyXd||DϒG,3ty-3ѕ:rG @{߿=Ohɣo}r{ڝdg͛6l̏hf͛6fٳ捛\|}ٳKpwwrǶ|}c[rO=nψ77I]7Rϕvxmv}[\tͲOfٳc6lٳckrաM\lS5̺>W-Oi:3ܞ١59͛ͱY٣&-Yٜ͚\j{iGJf{VыF͜Zjի6YթZś6'g!Hh||fɡ즴k)4f{FR%2h{){6'c%ٳa$H2dz OdLJ=#2e*S2̓6fb͛Cf,ٳa)6=6gfS3də0 lٰ=ٞ,%xdc&'a.c6,ٞ{6!(&>'bʼn-0`{ 7 Oa&.0< ->{{[{c-BɶA2n2\\Iz[I<[{ye2l+C[[J>V۟ggkk&M֖&Myvgڟkе>쏱QZcgg@':6=rlXYZZeiiic>μB-vqJZZٞ}x Sϲ>=-,>'}MYdZt<95F<ϯƾ-T +,|[l,k}WeaccDzF<#W___^u}mE֟]19>uiWWVTO_Xv^>eUeaꏭ>/ ꪪM>!pԯ_ ՟WWWSSQTϫaV#TrGWUG&_Rzϩ^YYTyugU՞yWYUYSR85ՕW;rE{iiiiiJ8hÆŋ XlhѓFٳhE[͛\d'yyyuyx8ѯﯯ#FnvxtӧN\u>RJ*TRJ*TRJ n[DDDDD\.!qȈ1cems֖;_ L^ \Lݻxpyxxxxx[.N}}|5oc_)_to``P6⃍+o3 v ďG6..../)pqpÄܹRHvnݦ۵.۾CnݻR۾CN:3N.ԻvOtKNp])t*&tѝ3džzׯ^Iϟ)|;ϩ^zK״Roߧ+ӥR;ׯ^zj_>{Ez7ϟ>|z״^!o|7߿~p @ll0 @4 @@N : @ @`Ȣ&I$2IsEQG$#EQ#9gIs` (PB (\PMEQJl8pĉ$H"DÇ9GyGyGyG*T*TRJ*TRJ*TRJ+ɕ*TRJ*TRoJ*TR~,Xc{O>O'|'l>Oŋ\XbQbŋ,Xbŋ,Xbŋ,XF4hѣF4hѣFŋ,Xbŋ,цNNNNNJqǏ6Ӧ,H0lO>h?bP$6ЮmsJQ`FpgSTcKpwgxeD̬6y;6Qfᛳfx6zԟl͘?ʓ 'H|'e )2F9s"uʍٖ]gY9Of?C? ?c_ᓛ!zwϵvfvgux#d^y? ';v&oYͷ7e:#mлybۯ;bٟη^K'8o8w 43ފQ(7_ezfw_i=fG]ogMϳ1V}kY3x[Y{͟ׯV_ڝ&j?X}x^࿬>//ZiJ{.7kC?h웾oḊR3pz"qg?kczhxf>[=P`4tikNyfmZJpo7|݌MTMӻ;nݟ3px^$QZL%.ǂ gv 3|~tOgoq|*M> ?Ó5Ԛp=K}7PO|ngGSxߕ}i<~Y&u/o]Qϰۮff4{4nEo3zb߁FfpOY/h1mf3c1cRw_bڃew,$Gg$=_sU× aOUZowc?cy&;jm[m_]/slfhoΟ]H;ꝄO{4u/J6pu!>v1'e_ !vN.m/D&3LKOI5ܧ{U>[ <[3N |c7wdIݝnOx] Iu'$wI$3:Xz[m$wU3$zq$$$y"OtY l9&n;zY N@ű}${IwY}'{bEqj$پY'v{.$IOIxI%0GwxnIwi$XO$I|?7Ii'KOvI~a$yMKv]4I$bI ;~nO=$$vx3'<%Hh9WxyWgco8M~g+⍞?ޥS^{\Gϝu?;ݗa 0 0 0 0 0 0 0 Daaaa 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"0 0 0 0aaav,]|oFG]&V_]mqSjjq5$et+77W/3#+#,HkUh0 vߗ%Ō Daqaaaa0"0 1!aa"0Fa0 Daaa"0Db# 0I5$H"D$jH#Q)JR)0 1]/= |^?w_~ߥok3e^O˃ravAɥټl55խ[?bvY\=NnwWz4aϜgԔwy~C c {Wo|篿~&_ #p}77߮.wU] hA@āǃwlǺF}ibƍA ?w[ ({PB%Ut?~}_C֫~ԭ U] I2ώAf@SR2aHBƑ"t̗* RA&L--(0`lA7:d͘0B ,Y{8U]==YӅ2f+sKʼʏ靺tfV>6>zRB`@,H jkBӛ#3_6F  9Ia=zNϟ>zNɚs{ z۷'=;yy_ҫGXRtRCWoXC#fp~߂@sObX|\Xj9a< e`h[/v!v_*`g?Iy}g_}7徟Fcuy$2Z+szeĘ1X6F2ŗ1S.f+HZE̚lҙ8)e)dVBY(J!,Eu)uѣ$vyb60v=F@|eH#'$dee,4˸1zPF-1 p%PUKGD-2h D)03qg Qp=(03%z2 dAJd5*\Y2KR) y4M\5LդlK<+JFpTR-K?< pg$,a3,Z`*!d?8REЕ r YQ] R-ЖTA,YY$B"uZ $"@[K؉r@P-PAPJ,b8Ś9G,qQ|r!prF3@B!4@R Rτ/q dZr,j.1t璂LbZ("(AtY25/5sD2UAGzw꨾$ɻ0>Z1އp0;zr4RXQ#VU2#˛>D@d ԹRSRSEXC $"w.]:w:u:TwKʂF "=$O5 ڣɞ^v"!_WޢЉ9Ww`-Y[lUoW)]v+UV һ=gz_{n.z9_lG;q-ǃԻHLH-& +JLq=Fdh7OcŊDB|FlfIFŁ}gkF4i ]ZuupK㮭]iuznŃ!廽}_l MH9Q/eWL^F jƔZr;:pc.AP؛/gC14"hD4"lD!׏>4݈5g=])gFU.p_iLWV$'ozlLu3&D=nΦ}v3$]]i.Ybs_ WtUw8X,gaf yA̺x (cj+D]h΅ (Jdv5tWqqFnnj/Zׄ._ {C&~xwRv;k:b,8di_uYJVmm8We>OW{OȀAv>&qMޛT4DD!r912ɴ]e6̫NEqnpaF@RĂTmxK=wH5٩İ9ZU!$>՜| <|>yyouׯz&I2Tܫ6w;MMMEAPKjJ*CA,wÎʢ7>I$a:**!QIcZ/==+#F"RcRI$`$g䑰7W,s A~YǣTY NݹN˚.\r˗!~z?s7r;BCW.\rr.V328R WvK[/jnobw Ƕ Y<16~v[G{wd5k-b>~ci=SLA Xou!O_UiRQZY!r" d:T0U)}u=]F6[Kh:cҙH苸A.08>aT$\Bkw&ɵqtw̎:[lh":8/? o^b::J+x8Νq]$$wxۋ)}gE[].##..:8#ĢQV`kT0JH88gmAqtItp]Gpt\ |%h;$$Y xn`Jn Di/sxA`X1"., gnѺ$$}fծ/];QDDDDDDDDDDDDDHyBjgaߓs-9y翟tszyvgE1| N<> =C @ P*Hs".7iuw:3ݍB"zXEpK[pQ?z'.=:DSzz ~C dxƿ$_TVeJ{{{{znݽx2H8Pi Zܘw龌(q:o6l6lٳf 0d`u]u^M.$v^\ 5$xDrU }=u'54nC9x&&؞JPxpp6u]J| Bj]j:.y^wcږ]y D$Edxs*;***룫*.**N9HA-.ʶ+PI% }VμmDasj?P6zobŤLy8HAr%r~яguG|p~O-YG;2FD.ewc}oܞ}̃C5IQ@ʪ@D<gLs ]}3%Lw} '{,sI~CRaڗ{-ou`.p=F<!B䌉9!RkϯodzJZr ,Qt1uN{[[[_ԝi@C) py4(cPm13ARHNAFi?ArDJ"__UUUbrpøof$χ1oEϼs/aߑ2;_<#;dɐMTuJ*TRJRCF@BڥKNTItAtwuj̉G|>I~Hp殇~$@lUUUe'92ڄ8k`{d"eJ?c l;'NY8rNWwv.ШJ(ѧRJ*T͕QaB$9r$ _S[ZjիVY~6BE%Ƞ$~ G$8_vfUQ~= ) L0M_ [ |'pH@@n]$16WWWWivm|zE >G5dEUTG09c9c9cL2d YO|hFݤ(30fGF- 0>QqÈ\@cs$Ykb9ߥmF}LJ>ϵ8߲W2՝+EYn_}g{tW@y6Z\{K0{Sϳ0Fl՘ժYR䥎c$2XʺH [wǶHy@='xic~0QOH;>G]GzK;~o*y>o7^KסP88ϝያ.;.h@o7hjjqv554>]K.0z0lE+ojBz]W C ^Bsi)I9`I 3JI$" ß<7_ `yp#tݜzD ?gruUЪn<3szσo׊.moov[]ud"I]rZii|Q=z g,ټ:lٸXں;Rs/*ŭI$,_셭݈aXԹ@sp"#ơͺEW8nNpfze/[WZ&`݄f罆kAbJIk 4Cԇf  00נ`)$9~k&YY6/ Q9~ úR`C &~IL:N=ߡ}?dޖ{B%8yFqلe ,XJ-̢w6BO8U,K777771(kk@A x)vClhLC\) dYQO$Yk.̰bJΠgP3n/ Q%9՘.W}32G%]?O/{9\"`گ^zׯ$5A%(J0aE,WZ{{{x$0d!  '~irɒ8r;J8/< y! >h1xWZNdimmwN@〄BDγ8 ؝;agdS903" jHO՚ O8<,˜ųcĂ eG91t"Tmmkmmmmmi:<|)Ozޣ[Ӆ 5m"k ``EIi1C9i}[IuQ%TA'\}ʠGPytOǣrW,[l#tGn;Cv/qmZt֭ZjիVK@"2pTvZb1*SO`l`ttu IBp,٢fUUWH' )jף׸$=ͧzrd8QvY)+{ ^댋km{y+@+ŠJ|~ ϾOY'dK>j|ܻ @@zPϖyk-|G(:,(  20mdt?EAGSvsڸU쯴 [$eynӛyo70P c(;}\+yQǏ'D 8tGSzI?B-HAt}-v t/e Ow>daӭCZVwZjիVZ`0])I@""" bwuSUuut!|336!MНpZ`ʾo0NEhE]DEAiiilBcwչb֫6x1`WSHKYmgޟ,帿g5ևz̙>>>g{>cx $97%[Ha{}(kC͐y:m7726D@č#1ss338̀ zQ#mp2?Fn'g*w~[>7>׺ESJ*T{S3J,yG{OqH]nGb_F&7B4ḥG_.@E >+Ǘ{Nm MI`v ^0$ C[(hB}H 8$$G"P 9H *[WgWcE[v666666ll?y(ߵ{,,,B`hk,,?#>y ib鏖eJ--KUT-e ۛNݵK6,Vm g^;V{[[V<秜n,ٹ5Lo{޷jl5zo7弛-&Ŷޢ{׽j֛v;wܳhVղlљe[l{YvyfM{lx <^m{xnͯ/tSNڙ6zlleD=w/{۽{l`e5ݴ+ks;{6[veO[ͻ54y{oi,Hr,9{כ{Zmken=sZMXݙ"{ޛ$6;eYٶZݻkvcl{ykOzҷGhBhqk6o'mٶ͚5ky4е7޷Nzo7=ZalkYsWz{^yұu&<-5l駯gxlj,۝y{%tssmgٖp-^Ҝkۗx`Zzͯ+g۬{yֶb)rw{Y=z{4&mŖ-׽7Yv`,mڼg^wr3dն'[޼&vZ{xyjykmo-0"yֽ͖gzͶvL ebx+4d={<׷oi׸O{=kYYmzo2Y7mi潭 yz۽z-jDXlbDbi/=kKnflӓ;Ic4P <խI0r'y G |h㈿,&c0Aimmw "R$Z߾gУGG`/zp#>^8!ѫffgϟ>%O̐y/k_u;1 ?;J u*T{/RJ6mmbJ5է!5i[INeHwXQq|_`>GW%"i7 ^lٳf͛6lٸ@gx~7{?4hѾF4h>|9fg粒I%Dr~[: 7J/jMI١1dle~Mj!ez'<و,nnXv%rڟ37kkjP'Y-uI6|{]UUZ84Xt/,!`PM$GgV!BZjhիW`k0 iGʏAH+<=333G,}N\^u{?|0llL[anL~ߓk}7:'oKztPR"Paa׋$)339: .#*y.0 ?jla(D=mEq9x`o.+,Xb6,XbŇ@z9=G*mZիfիWZi"H2)(P; ݟvI$)""N9ky>=m^^W*ǑOw`~NVKb^:jcÏ?|N6We6}޶#JS>S.^KG~Ҹ/C8b'~H2C\}=*{\Cp1L5pqgyLƓPJ^ju/{,WIc 3ga;wzn2ɐ2fs }38`@; ____'&EBabi}n\aLQȈhI-&@w̆`.&GE]榠0l$2 tgw|{x Q¬q⾦MЧN:tSN:yΞBASJ 4h{ _՚$fDvvRIɺ 3 'iS6(F31x$Z+gk:(`[ccccañ܀Gs3wu'S_'s-ڦ)N:z*6 @ƩS33WJD 't7|.c hDrMRHHۥ;uYݒlˇ1L"ZMVnݻv۷/`> ,WgW^jիVzɸ!m5 lmi7ܻs?$P,N\8و |SH E=ϵV9 -^M7,sd<. vdVիVZjխDܱ`XV2.FВWc4r RlMq7$کkJ-E%6+o~>D"wIE>5ߒ/?B{mbmmytum4dʐff~h)`tYUTmqCvkE @ 14 " HC)Ы')?&'Ͼx91aF9(=7cxzxD*ȫjW!Y8f^35=|_EfM=apK y HHfBSZ H@ T333=x .o-r~ [s*S".E/s'Au::D K6]],whZ-j[~ ޘy|Zr5-əaU!:R3=zUXJmWm$mt9=wyc\WUȊ #_GȔX@las92UQJs% F% A%4CJq8tɜn7b3'(ˆffiN#xRTpG6$ƒO~> 5b}r""D"@L᭲mlVʥHqɪiY[Ra.k|RQT;x;*y_w4UkxGc~?@ SlTn~\{hbwW\8z<aL8Pa0 0 aPaH d`5K/ej37̙cY}0V1pl1A V< B9gЈDVmE-mUk-VD+*!pNb\6bxysYv.?m{sVy.>zQv[|?ܭ?Ý/kqhkW#ظ| H0CnļY7΍y9e2گKﵷv./>픨x'bMB/?Se&G`slD..~+5/Urxu|::::::8h9O%.6 jիVZjիVZjիVZjիVZjիVZjիVZjիVZjիVZjSSSSSSSSSSSSSSSSSSSSSSSSSNXbŋ,Xbŋ,Xbŋ,YgOOOOOOOOOOl_{gx!|8j| 5%&݊Ho8laoKP)?  894/[_\c,{w}ʞ^p^~w{\%*Pw]}ûrs=xyw'=?9v)bjx/S&D93F=Ku/qsˠ=CnǴ_{*W^~^俧^ˑt^riߞ3[#J6/?Of&_ELl5v8 2R:EɁbۡt_cM'^a<;,+W 7 rȁ:V>4FNDdHLd2qӌ@ѣF0@$J( N iiiiiiiiiiiiiiii1c1c1c1穿exϜwJ{'sKQX;,WwŁB='? wI(B/]￟~Q e G|0ir8r9uƒÅ F 0]mu0^^Rvy 5uهvjU!cTv\lˁH]b|ߜw[|L?|'oBLj1# (z(:w]r;%i:Y=D9}Äx 9~|oHOɝ#yxxK_SƝ3D)d{7̓*1BOUG|-f4϶\T^lEc{9;+j+Ǜj/lN7{pwI}>Lt, cKsK'СŬ^>5qZzǭ*DXzN1ӓ|4|I2%8y x.9H*Q)r$Bil nݻE(}q ?z_~?כ罿 lF(01q3]Ay7wo>־ۇj:v$:J>'k/e;rfYbE‘͙#ec)gC¾†}dl}\G~'?oRJƇsxݶY#5 $Nb1bclտGfCb]Q:M^W_jK7~=5􌃬d`d4bm~I2 ak7\u$\x3Mz2 TYiȦM2 3  cH$%`Uݱ׭곝:o/b|?HyP1$?r?U!,Uy BP(JD JLA:[x+Z{ ]6jNӝT^{+΋{^^p8gzgogeh.u>?Xue( (뾛{Qs`bb3Fhh HZVyf.ɐ7wdeȗfhKn'{{RI&DxcbƋ n}n?7=GQu%,sf`Č+- K>y.6_aOsyr=c=̡>OYzȶ*50KKX,,AbX`%W8ManwSp\FznqF˦RLHi[n}@N@~A~+fFxi^9қ9>?uF|s=V5&5@MTR>T)6{ V%QmAaawٷvD1fi'u4{[s)7ee6(6jeq)ESP5c }a_ _[VVNl쓐!l?< ߒJjD.oJ{͇{.|`|M`e )c F ZH"h m[hHjičbto~^׽Ye)&),qH(ӜfZHe}o7~juؙXӣ[Z,p^wu8 z^l>w1/i0l5 al4L@I,Qah J2ԉ-Y`Sy[,s77%nn$]ƶ$$"130ؖ7Foq 4]+ (JQCDt:)W}k0 `&rl.`_A(O'ۛ fc aP<5еr(Po - s6to7I&m$+RRLJyY@ӿzNz[&VX"QCB4hѣF5>i?.0Zu*TS{{{xsB뮺 ipC[fffz u>̋! "SZ-=߫}|ooyGy>g O7{|shq]ew/}]@A!^a #r'.\r&C7@5ηC$QCAZ!=:ϼfÙxd49uz:]SG]‚MY[5p6&+l &#ћY{Meeپbm7lMWR6E<>O*'Ǘ۵uL ooo-S3Hi0 Z4ĩ BW"<=KY Y2w{qev'ge#$" ec ffP C]u%j$;_|peVbеkV9GL8SL8F˜SVNVee-,0`'xB ~_v-.lj CJ.a۴+&KqxuJ+g\\W+Ol 2K$eXa20e[_My~l20̴%UQ]9O}wPne3?;3c33&d{;N*`tRy*ŋ4~/+G׈tћYƍ:fѭxilZ^K8jùrm˗.i\>A02$KƖ2r8gp[n| Mϓ&=a#v 0nA?=! ! !i i':+,Q}~#(2%/A}^-:=zPQ]uou*fe[M_W-pzژr3peU4wU*ZzwOuG8Nѽ/,,i,(8ţOqqn6>,3 QtG@DD0 17z͍;ŋcHP 33YE5M'.S]ÇB..Hf2ojE Dp;QT8$A ϱxmp^q3a:}}>{}zvu/.|{GIks9cgA?:Y$5j Ijw;Bgq8N'2'KGWPBptR|*se85ⓧ  X+V3Y A"HLΔ&EO_E[s ZIٝӇ; YT#F,z*TRJ13rbR28f-eß>|M4֡5}hֻuU$ܱ4瑇\)mu7k}kuER)p5 0CD2X JtJIњ)7PHST S:\a /<1"yfO&|ϟ>4) X1b`F1F," N~vQFu ?] (MYeZ _A39'&bkc<_'3& bb8 b JN ‚$d"4xÅTeNīeQ5Vz(x.|qԌ 41f͙Եj*-Zh(Q +,O]ms1buz*T֒C\ЄYPDE2LN*!&}UUUUT6V t0^*W}?/1g{]f)W/sMuxU ׽[|KQeSVAP` )D Xr >8DoFGmͼ[߇ݪ/!]|K`G1ՄO߾@W~S:<GJ Ԯkʐ( &Ov_q>1-338{;gg{=g;!Ak)"0:):#@ G_ڎ3_:O;]$]ő$BKy:АsIQnB1A$,}KAQ`qq%ٶaL@8c@AZV`V+VFkS+8-ULjXkEs^߿aL^)Uf]nb_fab_[ei@syb"s䑥Jӝg?kj QA $R(_@S3aiQҤ&RJ*XD@ CdC[wUUQUN4D*#0[pEq*)Ŗ?E$A  YX;֎(Pg,΁^D85Z "NsjL栤-SW *d" tPij`>1g4!,SC$9F _Kl_^ ooX3 x&uO>:~j:t: Ah9> !Đ$9"!Q7 &A0!D? }fA  %RcP'&&ԘI4hRa&Ԛ 4&$Å c))-9T!un9X^4rxĺAm_\vWۂ[l }/-uǖ}"\aL^;lİNʁA:@hUw]ֆmp a%а#82xw~=^>DXDef X"1`3F`f=6lٳgȵjͧnĉ`h]kv +f8HP$g$1q){f ttUIUT?x6Bj"`H;P懺<VtdA! BPBBD""]+9;wOo1w濪3lM7h]>[yFE8ў?]DpoG_o7  ! ڤ xcfpݶo{?PX&DH1`HAF`;(@( tH~@8>ǫ^T ʬrdhʧ6\x5D SM] _rx@nG?qx/"lvU97ޗ ˖u?  8[jȏY @$@ 1z=ZֲmɉF)w|Q38 7h>FgI$`8!9gv,I90> f[3ٳfͯ`X(`\gd3 E3 U> f͛:y[M^ "0;3I)Be׻м4JH$˅t%}jy¬pD${=?97\5y$*뜆&=nAL5g܈?bibD]l1# &S$g>PQRi`:]4?{f(j;PFgft"M7>lٳ^< c;1=F7I?*YԺZtӧOFF@eYeb^љ*Y mN޵hA6E"D$в ߟ?JBG.tn/~HQG/vZv?[{coNQb3YTjj^VU=VUk$J"Uyǿwh,&qkBt"@ZiS餒K:hDfB@ }Ib:ل@Ygo}߱G8 Ji͜~k9FRfA%/קk~]-GԹrE/\6T88= [0N" blgo6W~y<׆yqm ]UUX53O?SǝT 6X &mmmt miz4h$`GjkSOmI9ʙ!2BΒ TPPB!*ah緓&Z\n7r\rK /]_<.ϗJJ*T")RK44hѣF8g/A>H)!; <|Duv$Kw<ߜ;Lq?}͟1a@e[xojm[omX{neb2}IY*>=o^ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Faaaaaaab# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1a?Qbŋ,Xbŋ,XbŊXb,Xb 0 0 Daa"1"""E8SSP?~oMc?~P? 5sϞ5M\uY}G}gEt\@#&^i"T@ChDK6Y4SUUT%$"% B"QBIwE6O|z|g$}o۟{d,;Tw=8qgyW7lA?"ջ_w?V_2Yy 0U.q" ! .q]TkK|֞,ω: 2fN1}eU'b4LI:棙?h`.]V &`㱸f3g6n7G)1sbZ驩nO@k9Hi$B@ ƈӑMU5TP?!6D~ϰ9,{AAC/fëPk /oVrTvlH+dd"|ϟ>|`fD)mCB ho5E>"8#ޣ;ޣD D_(@]K.HԏLl^/I}k.\f< ͙يA$8snKٛ{,Co( @/-fkPb (P @@Ө{M4%, gi Wk뙡B|&ӣII|$My7Ϟ`r=Xa /u6{G]H-m?m}?_?w=o<$nnnHݬV:wmA@ $D"@QR/InzN^/F錑sWjIl[;;=I6lJDh0h @B,d?6ds%$\j~&*+A0'{xǁ)#`.|^ THzog;icyZ&8  m;oοkk&̖D],kkZh(HJ̩GVBJP%$.+g!jAWo^n]>Lx(|5*ʵjΫZj"jebTVNMNI2-`hzz4tttJje y\ldƟ=u!!"'ࠐ]? ߶8p M3t&{6lٳf͛5tY;;;;;f͛7e,c݂r ͙2w$EE+FGJ,\r.\r˗򼞃h"R !, @h@A I<@F{mJa"`DaߏO},{f&) *TRb*TRJO?8 H8(PFG3MMPIK51k^pϡ OҎʨi_P^)|)g9lVۿO}靘;.|i".|.aLEYe .bߢz@e@~dulp6f2.?K~M{G\?oy:U“Jy Fӑr2FzHlQWW(]DM0  V?2PM3 8  >_Tbs*(%'O u|;?A\!E0333+tӼN<|/& KG]B/5=$sDeɠRdq &ۜyK<.B[UUUUUUV5j!zȹݖ>wvg+sQ4hPILɊ: J`cXV.9|{}l ݳf- [6rٳfˡ mڵjկkq7Ik9g6&|lqI$ ?gЗ@'`]0L$vE2Σcƹֿ74 PC(PB x=EJ*RhTRJ~-@qD $ffg vOv`$}׃ʪ4MW#[đs:QOa^R* [[[{y{{{{{{{{nXL|Y[.{MVlӳf͛6l٘TD$HrG 6@I$pEjgKl_58ߵ궾2Qvs/AÑazn_nnnnnnJx>^zzׯESv_ZyەTRj&G}̢=}/ᐻo/;"2Ԟv7Ì,NIG_UXdq01t7[c*,Xbŋcs6L =ٳf͛6yVN _T\_-p(1+b0B͓6g8H8\R_XC\cphT(7C (P^9柀B4hPBo,䚺]3Fl :pCWH"*/c|Òdp^ KKWWWWWW[[[[$Ǒ3ILDٺ  ׵MI$ujpR' rs`z˧ͅ*?x7y#kOGMA ƯɺCtTS6FT$4f?CȥKN j0Flak#*MWdhÂMN~H؆I"U'I m?7XrOfJ̐wT?a"HU~w?oc'F3ZjWJjսd@2`A@ίE꾫W-ZVָڛV*)5~sM P bo`DֵUUP,+$R6R=Z3cݔ{V c)k*g}2^[vk3"`Ȃ fB10R8mm۠/t`0h ?38@4ȟ?B|1LRFSZTsUTUUU%Ц DDKLkH|)QFgV1DF랺ζ1=mbdbq0v332ٛ*sӧN:tפ1f`faC ̈3m_?wK/ wJ:TrRZ%4zMcڰ|͠AI FOb|ۋ |l&nfvm>ayۀg{v8mk'$'?[>$m痝ü9dQ>?y?gM;M/lmi Z̐OlsX$Kl3'2lvHƵmkb9{e,mO'Գ_9Ze `n?}_L6 zPO)ܝYh*Z2׮S>>>eedm|ggTU rV(7-cwF'PMeuvaE:W=!nVǸ:A.~qczkWps^r\S [h/hXKMw- z=ڟq'Czp4\v,J|@2;NWo=?sazE:w=4zsk}pi9>3g3dv l썁Ey&L3#BF'j> ve%*Jʋ]U%k[vmz>l[ /i=|t2ﻦ_ 섰]Ǐ*UrOer8~aޯ“9RA:G=Cү9\Rx}'IǨ50O-HO޷=x㷃b\s\jt&>S~!!jx}gUxĥwq]wrĚec ==KsºZdD~2(AgAnz(+$k#;d2O+? +L{ϐԀ  <( A((AtR**@AMH=#l8R@ @J֯h4THH!Yg|ֳ~i>Y,.Q=K:]gusj=iKTyᚌZ%2ya *3ң5fֶlS>Y1'>XaY9eп rYf663Kr=7i3leLc!C H H(H) $Ȭ*H2!") gh[ b!!J-aB2ZC@n0`02.o^};\y*-ĿL^Yw–aN߸<:L<<.O~F1166mfٶmfٶmoyo!nCy!}\Dn,­Wr{0-3;cE^Z-\zbJ!|B높ޣ \e_Mz&}&0''P \>B (,%"} } ءΒFdP<_xËgMFQ?zfW[߷ zuOǣwi(:UԮO+yUD@7r~ w{nv~-|Ͼih|uy.OD.ѳҡ ˫h>1j+^z϶հPjl?Јo ~["{-r_.vn|w,s٦RƮ*u]YTrvгhXpT d2ne]L9av<g)oEbSs~jz7K=XS.F\QxlŽ71&jE_^O7iiǰ'Q_|XsHE"r-j[ͨCː*9v0|M3;!GlkLHu=vOgI.KJD/JZݶUC6Ro/;K}AhtEquvzG֣B|Q1]iO?tcB#_~v2"< sn3?}WZHȒt\9tJZlăq:?=+cb9GZ'YVދ׈h='{ƀ,C[E  w2}=e:^SsX?1;kr:m;+^,_ Cs.h}I΅;#7+sơܶ+r1=8|&w͏1qd$7^lҨd]x ]YEwzG}?JO'Nr|g3tTv7{}6s:z\cfϋWv{L}7Qcʛlɾ1ū5q5F ?ۃΛNuƦC1;z*aDuԷLť^Lmkrx:_n@-bH3 "鏛h=If_?a'!uO5qn}λ`ꤽڇ\:+=K t1=C]FWO]!/UyI;,߯[@""U۪:h[W{k3,,{̾K|}"HubO))Q7 l]V5iOIR,:Aj*;鏊Q/QGqzY#S?PD`EjـRuuC}xڔNeTn0+5*ߌM$sfcK>Kvwg%Χէqۏck$6u\FϿ s>7pد2tpݍ^% _;j:ޡ_C_9yV N%?a78ӿ_{DG-jo¬?hvoجlspMC/vҥ9>7iYdo l_N>H۪|n^A]X0yxV=QgTVJiomƮR궞0sx3h ?ѢHQsdi*)꘿Wn: -&ͺUh01lיu_/Ve_TO6[?AV萨]3ʝfo?NfKW_sKlTq{+&j6޸},QM(~Jq]*sqcT~R?V%6׳DM}~Lo= ,Kz$3{gsGDɄmAC хC7TwǴS;kܯ˥f{kViu3h\fyu4]jS~^wʺj'#Uy-z%ogLf\.3׊Gq+:U f[3ͯwl3R~F§}3Ǘoޏ 'mH,WۣbWʩ:];{?|ݝ:¿^|떖87m7;* ]̷Vn?܏£kjouVʚN_n/zEtGO|^vؾv4vSY}L\stw2{j dlfh}-\i O7~$8Y'=7 ~g>w$@AYs@8YE㈠Oe1z'_x,b>o߉10  PnIv::ΌZ_zy#|8.-V ?=p-mi9 MKˍKL L-MTQ,xqaËQjtښ?xֺ=P0>V P(N<@8DM10+13?mPN<^Ws^b=w>>~5u?~~uWYp!h=d@YJ:덡nռ?$($/ TQnx4;{3^=1O{4FnhƨQt^2J *1@$TQ@@UT"TDP$m*%@PP$up *0^NAQ@E**Š1Z(A,SDXTD.**1D mL@ ~dTdRAA@G=/Q`7qM  jd$gmDBJO;M7+/쬬S}1eBiBziXJ"/)?R ======;3jjYeYeZ3( @`p6] ~ , R1@~9 ]]\,(Fq EYۑDB.uEEI{=ga*)%b J67 d]L p 0B a,qqyJ6_|}ϟBYeYeYea qqK6YeYc8@uyϲҿJ]`BMM؁[evvem6UYeYeYT@7@x͛6j͛Fn88<D@gEA]WWuϟBX88@7Ҋ$IٳW6lٳfѬK,,gϖYe\ ֥YeYeVkZ4$,,lYe2,ϟBYeYeYek57|ފ "" $DpTƮںn,qqs(=p@<0 ~l 0 0ƣ^YeKqq 00 3eYc89TgqƘq͛zKq0Z֥l$qqʞұ  @@Ye[Ϝ0 0 4 D7}ҶFYdYeYeYLD E},q$}R]~8YeYeY_}}~8Yc8Y\u1$,,ֈB@# 0 0 ̖88:@[Vϟ>zgϟ6}--D,,z`#c; '峫"Y\Ԥ)HRIRTIBIIRTPJDJ)H JT! R$B*T)Q$J")Rʕ%JTT)Jʕ)RI*)*RR%)JR^$J*R,*Tr!)JPWJ%JDJIBRHR) J*K!*RD%*TJ!B^۽ùۻʷn#+J)JRR! JRH2T!;Ik)6*]HJ/R&Q*Rɕ2H!(YQ*G*)DD$E x$JR(Bo%)ITj(E""$DTKRPș$JRޕ)D"^B%" L^ Yn)M^LJdE!\J"*%eIO (LJ%M۷*RcB$!"T^IDL5&D%29]KJ%DRe;JBD/%\HJnIRʄJ{hǹo]7܏[`wY0b 3`LB X‹A1,VzTfKH"""̌3'Xb""+H~Rn[" ]\G{g/|vͬh ܊3s}Z}08|O@t9{w7/k?~ȥy;>Vt19ypxLs9]Jt JmNz=,\;:glVu4;{8Zz[{{6l[m[95λck4uҽo]l\ٹnn7/]o0 UUUUUUUUUUUUUUUUUTUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU]ꪪ*| UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUsUUUUUUUUUUUUUUUU_UUUUUUUUU@.PUUꪪUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTހDDDB~p0|^@=د_x}UU|E_~Ī %^"Waox|-U\U^z%UUq\w%{ U@͌̊zׯ^rݝZ.|~s;@_q8vCas_uFv< d_eP!A4tkza~_ߴ@2> 8A |:> otYZDEP .w*(D]=@N%@x zD TC&,OJl.0 !S!>\&'C(\(bXK#JH#@R p~R NOp h:} -ߩTQ]/zs?Qt(n)9*}1[6%?  5hr*7 6<0RⶠBRGpEsz S`w11 2,eg|60`-U#)i,Z =sG99Ü7۝67tƸNxx>?ϟh?Il( *@U7ڈ &H%qRoU Dp@wX׃{èS;袲!R,30JCR9 "H%*Fpȉ@x+L't AV $QQn$" )B !( R(> @?e 㸃Ϲ E(9}8~v9&v*+A.(#A/1@DNA 49E] (pP B7`Mi4Њm(p= U9eqGy%E6t,ArL-S,T2La@& 3Jn|z(^U"*DpTQ2HPM " /+C C"Vw?='Y~9&1Nw]ڭ#!G ,H({IeD,D?L6UE KD?vDCE*(8pI@v1&ji[E4TC> ^(E¯(F &Dn@8B N_ 0u*qM !Q!nm_J ;jF (Q1vJ*πb$@MT-93p[KuJ QS^ހ2ll)bvQ H %A3 3v6FQvW/!1c1@ |v%¸ [3ReKMp{4np*g4 Ja3qZ*(ۍCz)8&Ϸ`pxWTFN#rNOFa޵DWp0mZ)Z3ׇ8" A4)leiWLL54rKZt1S i4qG@qeLT*PXeZ媆ZeZ倹jhj9h e&ZeZr̀9+ 0"gp A2f)""(„ "$DDDDDDDDDD@DDDDDDDDDX H  D$D  L$H  D @"  `$  PPPPP@PdPPEdYEaaQXaaETXaXXefVbE&1¸몲Vu\&nDπtupkΤ/2jKPQM)vq Q4P3QϢW>0)pьl Cp A| qv.;а*Fdq5k8 "qD(Ɉu;fyv4g SLTaۮPA(FvoDK|UKɬM )5bn] șԘwE毿c/<ZIɜnU#K#]C4q klQjP;yEEZ](7Mر@˷w4;_@ƃNX wFZ(Lh4b(2 ;)b( մ PZvr PZ9@mhb5!Hx1hqkdOs` P\Z6ԁ@tqiJv%w$(-aj@7hq%1hSZ^bR|i<8BkvJ˭/c@J喗E#Š>eL P-4 P-!j@=Z=j@88{Rԁ@whk)->1b)}(a%) ,RA-*'|A([,\xU!8%k 1퀼F+{=%LtY^C1qOP"]HdL* 9es\<(jpj'> Zчaq ֱՂuZb7!W:b1N\u.Q%idW %CYި`,%3K"󋱮ôm²$fV(MsG~v ^4aqp)c8L: '/AP0v.!6BS3 d!/#cx;>QŐc)=ϭ]v Тi;]g6ᔹ "a$ԩm9 "H%*G F7Ξ2qۯ b xea!PA8卹KqʴaCM #4E ƤHNqQaBѬAtb$//,\^HEEa@L@xS4`*8@@dd" F`H1("/"E 6童h#_W((" eoDHAvI bz0W//a3]a$d 9Ǹ3q;0aɫ%>892ꎚmv%[&VI&VJE&4 MFӑ!9 "P]*KԐڡU!Bh%J+*!J DXg1L7r/T&$*I!lZEa@qKulx3QC:+C@*gNURrZC7_:(``9Q[@m?`V΅( B!`RcVHACr;yOm=q=<(!+rrh aCZ&"4UHAQJFrR(r7m dPQ ۃ}x::6zni: tݏ4[ =M.Ƈӻ|TJc C̀&c})e5kKz#ATX6]Ok11 Me*pv޹xO'ڝ u  ! ed]>ioK35<~=T0\ͱLrz8t\^(~yB sS~ Yph(H5<>2CQ;|9OITQY,S>$XI]T~i~~! (  @ d4Cdž8cٜ>߶?pEU`bv:Y SZ Am4ZGc=w,% = ?f{*8@h`WBX}ӝ]8G}|?: 輠P ȰaX+Q {ҀqAJ"; (#%C2!KHw,o3)찡K FlpO 0F;ZZzd X`A(ƍNjꐾӺTJ8[m;1M-x* 2*b }srZhL9~Buur?"aWD@Jj$I$I11`Z+( w9@!؜K?>>'A0i{}=?yN<*Df}5ݟ b`! 1Cghijkz,ދjd/@r |& 1. Dܐ%|'J"v!z6?锂1uݮBk>. NܸX@WCYAXB"PE jE_`!q%Q gvd-[7cy>}'=@9^t\l?YrSzK+o9wm3I+g\^2-/6i{Juu!C zbgT-;fKOSygan\amytlm\eewsqm~zvyDCk^_&]@ {NOiDυؼ lw JDV'#_B E#/lԔO%4@E$Aθ$V29z:o-{g[vbPh1:th?^׍`x<e ce 2<ւۃYy@6ר9ϬFc 5WSݶ+s6{0DWΟ3WDZb)iR۩f g}5֛prNjgv ~E箌M|7g;p{\͡Y~Ca@ <y xWmޮS7IJJJx52DSQy|Mff{JJ}{[[[w#Bxe Ɗh? Ta?_&-O8!A'\/W0NǗݳ8brMBj |lp7? bs6uPh\OAM|o]{"">nzg. +*nwh䀅 'CRy:j@0_nw.׵Cn oSC\n"$ X+" y)6e|r_/w?7ywxgY_9UEj扉kW+B@2uCN#yCnMmm]Z|\ A@Hb>(""pIw3.ţ!hATqX١ʫAĘ{ܢ!Р{K )'T aQ@8CEF&ھt膷oF>9#Re+!!?^B`ߌG$%U'{DVRU~YYa1lm&33)]M^{ymIsK˦STXTUdUVor++vuf d6 5h*P\.rb:+F' 4WaUWZd6BO#/}%vù[{峳۱!)IXURo>H#VdGRO4l#؃.]2l W:dUzbZDňH/ kKl? bN~l~&Ž< -DT!MfXMSn Q)|! șDsJҦr~hu(‰uQXM@^y|>q߾[x$U@EHjT x>t{=LKAle! ag]?[P ^z5zMKO@|^Bqtzwͭ5mno8zOk\]kKdO/"yhyy=O>Vퟶf z 2YVEpcʹx"LIHDG"8B!BXHJC%22]^!X͕vxmjBV͕*Ģ oAMIo-W\Ey~*rW1(I |KK6Mڵp~k"zjP.QZ(hĝ|3')RH?˲^$A Bq G*<%c7hϳq}+{gB }>ϙͅ]E^ꮻ~:?Q֝;5 ?6U𵙺ަ'~2r}Cf{fg>|R\r%>o6T_R__b/.\rE ݗx<˗.\|m}^sv4yQPFp#\緇W&ƖiեtW@t`rN ^>8@Lf0aGGa4aaaa34燇kiiiiha)ggfs2nD 㔈фhYc>Z*h`'O]IBשhp  @px-oo:M/h>O>ʎ QκHLl~/?X.b(B;T3^ Cae_52~t9:̉Ѻ}at_"=?˪]:&?2tܯ'cW-ux53ߗotZNr;ˎ̌45ړjx>_I##HtttN;JtfFFFGK篯|ϟ ﵣW_^p8ߥ4EqCw/ۛ[]͵;ܿ??n_;a[wVn[h]un[Mu={[;" b4ҚSJm9(D._5rMzL2M>\s"4AA@$$LF+!"P"7" N;r_u;׋wUkicn>yIIZIom-----------$$~+t?˺b;kR,3_ՙQ^QRvs2rr'g&榦榹|_/˿sw{IWrw].zPB,-,4+UՕU4t2Loa'eՔQOP%SNڭR ]bR%j>g|O]G=k3@LYgH?B: "AW#, &0,&e LP($%*)hA0ɵ9iUBhwr$pl m!7yH lm\ Ev?J_C?#r eq Fy"5bZDC+@!AoӟSP{{^eS#l([-jž1D}Uz݆N˾GeTTx[OrC]mTWt4WA]mW_e!ĊVBA@3?30nژ|6 o퇍n8~OC7+ReeIbh%w;}a:ZO~>KdrXyv?akc{liz-NFt;*p^.9xZݍ>kZU'z;MmMḾŃc{`g|}67?`y=~30v"9>7+||zY~_z;}/ϭ>~{»\[ZYXWVUt|wCs;eR+>؝{f F򿳾{,,ZTLD<:D,'ƂAq`X|H88,8'8t =gRp5ރυPX=7qhw\;+* Z1|g7Ѳy[j}}zӶپ>>B!zjի75jՓիVZ6=Vͽ[׽u#ӣᄋ?Dߦ˓bƷ fַ}1l6>Uffy1Zזi\kGBiU_/?O_ J64x{{{{{{{{y@'88_~uRtJޥnwii+u=LDQyR1R1R1R1R1QR1Qoo˻+7/F+#qk5-g\F|V-gݟbQ`۩/c)c*-C*CcCCDcDܱܢ˹aq/_e!{o߀%@  :2*#g:%::9ɤ٤5*QrІ! >ȨȨȨȨĨĩ[z] ޺Ð[IwT0|~&s7:cT'?ɖ#y1y>QS5>O'ln&6/G;GG>8I/a>߈+?q&=z~׸ϧ7lK5= ^CO3L[/Eb{O_ڱM_-b.nzSv{ ȠaT%Cc~4x2'K)nܡdϱ)ET]uz>ufY鏆\[uf:ݼmT VֲծA:nKFI}ub+bC`Q}feP~?Iqt܊w{*3}ɓWdWrbbe"9џ/J_]11i3i5i'i8x˸{hzwWq^\<{xǏ=vz뾱m&n{au͖S_jzƻl>0?e9'G( pxh?H@[`6"-- !9(H>StodgXxeLsu=9b h!i,X ݉v.Mz e #<5Gڪow,=þz7x{v'Fkhqx%ԮiV6}“ÉnܙnwgA[0WyzOAbupD&NznpmL o[>>SŲ:]/+Av|L[eh,e{ &owt[uz}hju8kl{wr6rsr̳^v݋}ͭ=} Z:ni{s^F{{Eͽ""""""""""""""""""""" 興DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDF""""""""""""""""""""""""""""""""""""""""""""""!UUUUUUUUUUUUUUV UUUUUUUUUUUUUUUUUUo_DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD UUUUUUUUUUUUUUUUV }1S)~j{ϵ_{>TOSA'?=m?_q;q@PyP{"?!*j*KKKKK#6K4 :@XX@@ ˀ]} " HXQa`t h><_A<߉8C-=C wy<~5uW:=-{Ǣq0[ {ߒ}WqwyP衷CITlP EEShVBJU6^NOUk`Yd@.96XBf1քn<%E@h GBDIE=tdO#rwzAu.J@Xh?'iAT3rIh޺ίߦ$W&\CdmMsyyD]fz}*`e;:u~]oU -zD \'lmPr 35iD(A? 6 `BZbcֈV@٘hlw*Ee"gVk> *BMmהM i&G|5CべGL+z*\kZ^qZc3wΔ 0I FWKVRA >.^mi.)$<챸BJH/{;m.B&A,?Uu) E`N;pGThmɦCq1R$ ؖEC)뭰ZpH<=g~DdPoA SPv8IBE ,QG23>?'_|-vB'B |޹ʅq@B@$vŵ] J}획.yָVWl{>^SqbW+٭z}~ab${˭=GXZ^oq=7(r*K{'=?ۿ`ex2)|)Ͼk7֜Ng'T =(9T~>~9ϟ>|SS Az;NOo)m))Jx/!m _k]\[ZY=ӊp!-BycONw0"! Wz|=\6O)`EJ@>ߍ-b?}h/7~>}t z~7u^5A$~|%qSU,oС A6$HV]w_n#.FAj)-.$ Zh`^@ ?28CB 8K@3 Ch yY+Sd"2h6 9\g:} >37;c28ɩr#TJ}f+א@@ {-hS ״$$$'fC|ϟ>|>~EO٨o R.@MMW3)$j:2ଅ:"RUfLh8}ڷwW7fZ* d&[hɝ(xVƩs@OH:(|Tr0\8sܪ[9Z&ps?og D "H{])H ^4.=)~߾c$$Q=( MB2$2#qX:_].Kp! /É I>:8(L] CP] $ E>E FSA-iRtzizngh9}6gUo9@ ,/\l4N{̤yXo7Xw 퀶@ R!TBπT@?nj7TT[M~ѲJJS{٩[~Say˘t ՘ r}^A]2S_B^=[7;䤭4{c~gg~ |,$^si瓧dd8ߣ*33` )C, so75:UZ)Q15)oyY>P>}m3=.?hm;ˬz-J%f+vי_c,<|y4 Hyotn -hwA1LEEIå?;7ͷOh@F.&,& 'DDhE>q+S0em 5T @$ p02$Lco 'c]R57'Tukc }Q `WZ6-`P?j-}].np| j nM(CZ Y$`O}% Иb+T"k&:$.H 3s3G{E^˓Ԛ*BEƹK+h%D?**Hb2'M$ĂԴ ( ;l:V_V cOF(rvz}]{{o5?vQe0-X_ 8DUFn5 p%3P ~kRJTK*;)G_fo\źRzA -+bވ !,ZXҵCKܐ.k!IH検p2?~ aDkAc/?2@A `H n1448zao͸N6gԅJ@*:h*U=}^*g^_UR4![80&H]{,S3t}?I:z_oT"M2Kw8/ۤ9&v7(lBo".[`}V]~Wrr+ Pt&ZѠ~^w930jX}lkDy{A$B=!kEStsy{<ǞW2 C%|-#L9 t5B$H_dw&8٥ HL#BUt7Mޘ`Ń@Lx`CKи9Bn$ng}~ɤm8"Sc1Ȑ DSK- |q,}t9]019걋\ pؘ2&u8e@}U޷ XbB`L1,`"&@6>kslQt>qo)k|k4Q$D\ qOyv;hN}n_{Wm<|>T; fklBp'r;%r_3G%2_g.|\G)^;0LO))(qQ:RR%S<̖F`1>TmzhO湮kry4VF9:_uB4eTflxkns\G~W8nϘ CcUsWTW`:/P ̇^ysmߴ3><:D?;x|ܷ][n^И" ~/A<,j$68qG) )@1A_t GvZGpssۨR;'i6gGwֻzA7Bp&QP-42ɆԐOO}qWWQWWI)@ HjHabY_}9LY!P*H<-uahw{^ל<}·'R<`)DHdr+6~.Z~qgjhR7AB1"Ta0~ ő@I b*3ΣvdlV0kPZzYҼ:g3QƆBl/]vdkPDY.jx-^Ț&S4'gX8W.&ld5 iN;#ܽ? WGD(G4VH-ꜿtھbrL:'OFglKE&uZ)f!F6%(@aS֘C{ ;Cx/vUI|&70Ovun'9@dAUI&HED=}_~>B6JD?;Hu!$}3e2)[7{kЛI$v8}N A$h@)&40C5u_]@D ٷM{?Vs)%9om7{7diiPҌBp&@X3.ȢtO͙jKKY4_~V"e]KK||'Y[Rkg?/w/z/wʩBI#-,qZYZZZYB!,wgG&}GàxMjY2|,t+ZbS+ml?2era[Hk,aqovCt>1D?O~OȕNTe҈׌Z4XbAض.ſcPA$4$t6IPhjTQ7zu'+3pl!mr似ø׶P[ ўGD7GG36<Ϯ.qI@ u\r>S C[QM[$/4`8$BPoIS܌wo wݿ{m"zdɓ*Lg2f̈́$㜪m;rTkVVߕ$),^hѣFB4`&e/m)[D撐!h`P`BT7JJJJrx#,"6)[B+M Ŕ3G#]ЯIm+]}LՍbWΉdIh8 ` +=f1 EY5YvӻG e ]`@Ò0!a $p 0!yOxOa^H$ox~oB"" B"QQD` $"((W]ub"QQD b"QQDw^H/////.!y"^^ss;q9s{Ǘ;q9ss;{#=;!s~."9\D9sC9\D<˝s9ߋ9ys{/ew!s~."^^^˝s9ߋ9yscsC9\Ds;!s~."痗;q<9\D9sC<ߋ"""""8Ěٝxɒ{NלNG TkC^(7aa#l0yD#D6"tv.yއGv/!@$tgv\rnj/ habndyI}olm wϦXB}&Tpw^B pO H1Y:mf^۫/^5?Bhk,w2D7ٲ<[am8fD9},FnI PFK)M|v]:*333*S33&fe$p*@$L 5m:WFNNM2NL쟵C3߽)8`1&?(V#R>G5sX19:C7F_sȕL#5Κܵ=@FH6D1$+0ɹ8YGK Z$%6ϔW$8JlsK'"'bM1`± Vl1Dbe8uyri˗HrJV=82 فB>("R\9 }O?P=(C>$Es=# MlK_"u,x]H ;'z?&}9^+,BAYdAV@d 3 ,,Ȳ,eQ3 "ʊ3" EDY$AEx3$қ(Zpxh]hz.o$:4hѣOjFj@rs7ß4hѫm! 5=^8w ^_k`HG]HjBK¦Wp( nSJ]r$!;C40 ]!~&000ڈYCwDpY۝ipm,btZ`%Sc~,)!oÿ>KH8 $!QJڧh((Bqpc[IFIlj I@ˁ'v*/P b\)16((!\ LB{N^x~kc>gIi%ChJj vs{K -۱ow|! yݾ73!KtīKdJ`~b8xd*/QiaF0 1'O[AA1؋6sRlΧ;зW A7)aMz-{D9 @uB%ӊ )xD9' UH0Sm:T*ZZZZZZW1tRāP>C{ƿ:e7nrw5N{ohē~os{y1=1 C`_KFz̪F( ~oRWRԮ@ĸ>v^knzֵU А_ĖS3CΖ7AS=*q ,Sְ S~giq~=Rv ݜpMB cJ}׀sX:ts9EQ^E u;OT^x>s}G]d)(dnxqT`seqY3JitM&G=2y~s9wKvًdRy>Q]An,r8@wvv6RQ(~Õ6LgbEIxհ5;mJƣ}_O٘:3lvKBҟ펥I͹yaɑߗcҬ˱wHGaBdr%FB%FOsDR贺-Dp]hP"ʻ'_Xdl3w;lO|xwJzPj@GXV@R4Txyx"!"+"+"ȩ"*H%1smÜsG(- UXʿNKo\n]aǘOJ[ʐ9:uM #D w 06JJG1NSxPH0ᒺ)ٖVg$PEn%1G<iJ؈2f262=̙X]2f64ɗ@@;41*_c(6R[naw  %/֚ѱOن"KF, rDb іI8U\ -l1$j1t-ֽ qu hhH5ˌUEEu?z5IJTF<xx 8 T|V4~_"+hĥ7ΦNΨΫp#@&hQ[ϞE?`};mhvIOD@&B`JIP ,@= Ct]~)^|UIm_̭  kt`HADDD@zM~=EO+Wh&㤙{08Sj)AOhcXOQ8pE " ݹn6gioCV7^ $ M H`*0#V l|2%D ~& +/Q|\Ntf@)>|Cϼ;rd?uANۨ3`TiԒZ͛6Ъm!?r `( "1RATUqX~mֆkI_q}!Z6B)KXNGcиzl؞DCH[5!}8NHV:tӮԣR++~oG3i:,;iOg @htNgZ*T(w%!@i۷NΉC177e VcU_mTMO[/ٖ ۭsL/.o4Ϡ=0QJF#x<( $-Gqݑݱ՚ nj񧀞.w/ v'FX@+A a!Q4@@ǽ jzDٔ4qqqp^<4CY07*Z㍏BjžѦY)+ܕ,4h5 oAܕF1˳6w~ه:g'+Жv&r$?Gy]tx'ËE$<n\_Q9992reDE rs#g< GMn]"Lbx!R /@U&?Ii43+{2Bi3,6_/n9(}=\lP|_y[!Xr~E~F D3l=1 gdu[c&L2x_ޒ8@ fJȀ@CcCHUҜH7SBLq ZCNSΚw2f70f[i:<V'35ՃR4{Zgp1ȇ0vܯZCCB0s@$0Ԍ(ͲSORłeqNw:ƋPΝ@ @cm4|||R|||lyzW۲2ef4R2e'SK꾋JZ\! E $D@B+#23(̢,1y._tELmf&"&Vh$/m6=ke! `8-]" 0#;p-xy@-T)ͧO=yYt%5@U%#ϯѕlz`L[cQ㒣Ҹk>U^)|TJ8t~+⸮/|/Anʯ/Uy0._nMWN?0Kti9§?ĢDcL܄ ZdVGXn<3m꧷݄Ȧ~J0~^N  =UvZZYVZZZY[z!3ބ)q"JǛ=B"x?"7G{_ ~LcҚ3MM]uR4X'sgJAw$LnOSw!!D0%v̫|UHm.8hf:+6!Z3V?aF$ Ǽ9P(8oNz]۷˻]م{F,=d"_߹mjZZڿZ$^AcО@4>lf+fJm[}548@kw}|VX| P?^vJ g^&c=n,Lw15 |* ~[m/-rڙ)*{hO`|a[]tr8qqi=ڊ6 :gYdP`6lٺD# +'EłE%%%?rB@ƞǽ0=):+{ܟױwR/͎뜿4Cì5W$kwj۩K.Ti4^t!l,M} Q($q$)JnCbHG?{í}?i<&bܸE1cOIVQVPRXGA%7Q"NH~[n̓֍fO'h_aЛsLޝe5%Ĵ5Y}'Z%Ͻ>}ݤp9>}<~TױW&Xk.xW,ɟ9z\J}jX]FEomuu}]M\~/osakkZGc]Us:J}g[w6>ocZ}aݧ)JRb9:~͞M^Mo:2y"߳m힟YS;_ϱз6n^nd+OϋWװQ)UM&V7z}F꺫uWRܨlklkZUJZojѷZۭZ஭[`-[wۜůOwi34k:Os8.kխ7[?5R֧ܵlu%k泭m5;ݏsdY~O7vv}wnZ~Mз/j:6mq+Tp޽\+{M\K\[XvMn'[_S:Oir}.3r':'YųqqpvxrY5 ڜ3J|]::ty4y<CPox{W |ϑpӥKR4h.B (PBv 3PB t7}b (P~G.5ӔǐFǂԾ{^܁\oIްnt6 Vy07?G|zKTӧGNC p}2/....;{:3J\rz?3gUh*tu NA A19fFr^ (N[z꛽wwwn??u/-}~y:w102Jjoxs8σk׋؍}+>F+WH>_.m{_g5 􈊈~z 5_Hϧ鯊}*OeMu뫫c֧ST<> -Ëx|>k֭ZjիJRZwcyؿ4rYVxu5uWWVֽ6lZhiYҵj۷@nܺam]yN-[m]g͇TsUUUUUUUUUUUUUUUUUU@UUUUUUUUUUUUU_~GoiiXty|Z3zU$mkhez NOέ9XxToMuk_S9-$haaabfjurkμA=ctGd3u:-<[W zۂ`opno6NggMsKk\ [S;4 A?3}ޟG6;x|ltU8|:4/n߶c]rڷvv6?իZWSO-Cq}>:z^Oyyyyyt^nk¥[/~~xw}w|;/#*R:y~Ƿ_U{M4ii}ܮ뮺뮺뮺뮺뮾{{!B {{{{]u^c/^/_z/_܊,ll?WЯt+ qt}v_gW/ 𩦚ii~UUU4M4M4M4M?Ru]u]u]u]u]u?J=c !_637!~.p3xnsdft;WWcf>N޷}$3Ƕm_$6m >|Ǥ䤤ddN6j>>8rqQQ1pPP0+Rs!B! 8?9|d paBt&BBA{?3?3w?#< PQ !KKKK/KKK?KVwwwxxxx^wwvvv>eڧSOwuح0qMqnHr zetR bf,Cbr?x6F œ[?e=:. '􊢂yC'3}g[?t~i={M;@Um'_5x |lZxbnMƓ;B0$?>^Ἇ$I!ӎtkkqfa Mm I Qen%B(IHf<),:ځٛ e1x <R?»C^{YǭaVU9~o Xr$_8HHy?>%n/ԄH c$… U~No/s\#PH"J&jfwuތf33vĐNIV-5ȪnIqj//iPL'nt;㦭`i34E#שt]|;/`8pÀskm/ݱs:JPcnȢv\X 컬ػPllF?Pxш]/G갛4)ۙ2;y m˔巏G[3H nzhn-cmh=~Kٻ=j) ̏Pnnqpp0=g 3ѐr7/w7!Z/M"W ۤPO۫i%J%)B,TbŊX*\p˺"qpiU2&eQpiF߭8`zZ2=[w~xF7`Zt+v`a݉W1BEU///.ڋ.y^]y*&UEͪv}@"jrQ%)?Cxz4)?A\B2H -qq6VDZEiPG9sF8k)OtA`{gre^0njq޼{꺪@Fqn7A&R6(k{Y4a}GݒpeOn< ( x=E}bj14*" r+^Wy^W@P Y?쿿9g^wvz+~w:γ4wc}Kp9HUٱI"EgvWWm:`y=RtZJX*p2kuO\+rCi[iˠ~E)4w]oXO@.pa dB' O "(h=A0m@2>|~uQ';^u)12jٙvT&LsBk9\o&hݶ}jY~7ωEDEEED}RPm/fdB#|(H  E@rR< )@ \ozL|{GI; K($BJjV(EdE%N?߼4^';^l&~5JGs(@A><_#C !G;^p@Jg{ OHUJuJM5Kvlq% sဎZ12_hYSKRxseuZ'm" 2ٓI@$d AMMMMiuVeO)QEP> #od\#DP+ ?i(,PJHuv+UDJn ,;pܔR |2M<]97߱c{ߤ9AycaAy->?qG2e%%%%% S*w¥YPc1A}'~ <012]wFXq_D?6 HZ/fC m$-ًA|#(/W?/^LIcR«$0@X4<)|:%%%$$%%%$AL=^X^ɩ9x͛6\ٳfxd)0 m$.$G3*׃B~zI^>:pE%~w~Q6’Q2RQI.QRQ3ʺ y(ؘІ6l.~לNӝ񐑸(w <S33331++T s]pBiC!(XIy|Nf W!Yׄy?=Ac9믍ث2H0=~qw 8M`:~Z`227BThlzl܋ꌀ vWJ1|d)ʁ-`AhkA}N5(*SˠN;b`AEui"86wv݋M\zzzzyN+Xİgi4F2m" c "A!B@Rlj**IM3/Ι4/{?`Vui1Sv 6kx _$:B>$W gIРg+-$B{Rnt$Xp3IBGox&y/u7v}Nck_z+w4 m.ґN=]FNaJ`' d4it+vΡ vG}Sr_]s}.&<]ry {E)=W7g]CzMW&]9m/סS+?ܳswۚT%r\NKﹼiismlRkhklPC,o{Y]rghFـ 0dQ}2I"H7a/wC&M61aMv^^'q9oEDJd g#"Ȋ0("ȋ Ɉ ""30+۬ $A ( e"(`0@57v`Y Z-z^O"ݶ7t7mċ"+;|ޭы(A Q iZJh&IM DI h%6ei4L2% B@,Iڄ (2MC B-&IeB0QPe)$a0i4M2YI (D ޶Ѻ--ۭ]:ֵn[ Je($W\wwY szn3[m]n+Mn6nuEj  "@4(A $A M6D(F mECM!u]]u Sf I$`1  N4ޣĤ& Ck0 $rB;ɣ//O _uj%Γ?xl&z-iMϰiLћLZ昱2k_~,y #&yIY&6rW4֞7M1dc1cSx0l~&E#cdk-ym2i1GY1dL#;'SNkO9~z2+I 6LS1,5 #c),NCeLi4&LkKYMlbH66f8S.e|.b\b^(ӊb\_kla3A %c me_* Y1k 3щk^3&kRdy"1l&Z3#8l_Mlf#lٍ<Ӵ&ka2KZK;,M氍_6s9PTg'Ǣr: '*'i; }q;)ӗDN9Omv'}וp]439O)|_̳AQ}l8J`OÀ> l h,ӷ6-egdτF/C3W4<~ȠiTNNӴ4Fe5)|2_[bVhM\ĻM~Mo!stgm{\LG. avn4'5Ykr8g׸hZlXMc=V3_+<()AQLp|kK.\q˄F ='π>wpXK֣T`ΝyD淩|S7e2}濪y۞rw9O4i&덞llZc|#.vc5/SOS?q:yߍ蜨sނ3x蹤_;k柦\NwtPzo7=>0U \Dt;qsJљ61k#kb3i##a3X̙kr 2g䵽y\d> LVY1.i|Mkǚl\K{ gŒ1<ZrsLىy9Ҝm?(VMdŭy9!5NLsq|eZ^2D dLa/ )#kZ|^6HRg;g&42YY5~KYZk/+73Ldyb7 3 `L3r9͘G;vMq5 aYjֵ]1.i,zYZ/͙ZGo4M 2;Mi5MF֛9XcKHuNɽN& a_$Ĺr;rkVco1Dޖ؛ksSsL[[Օ97Ki5lc2^U5Zsg͑l&i2<Z4LkHm5f9Ʋ[,L,flSK䤾_G/6rΗv--6?$vZ ;SfvO5'StT%'_L_ JD/|ר5]}az^_eQ;VcO ]YY4핻wK&ꡙ5QUʜۦVku0[P6`\aƟb1=}e}s| Y/dc ؕ$O]Eֻ%m02\8'G$mZ^h%8Re4apKZAH՜åWFŞYE⯉]%V,shVyez-qMo#xȣ4ək Rsb}>J w^xsٓ碓EE<fJ>r|P6~:N9 / dh:vT`  zb_4^ 4 A` lrBL0?UE͒GqDfPgxUj.qP@BMox U=:Xwm&N)䠙@FF?4 D}j  D><eI 5뽷`|pH|9MD͖vyII)mf׳x5u.>uyս`:UW;Ä/!@!TQB`&16 \Jб-b`ӱ|̪çKɌ뜙4 vzq5ci 8N|ٸ0gw;CY E<1 B "@}fM6QȃCpL!`]fɽ ]QekK` aW=z7Kd5O,xZ\\3U'q0):B 5PeFHDh˫&Oݛ|oA:3qhrVQEfE5 ڊ,W~ uuZ.:Dbw;& 6;PK}PH)  (I#(>JJJsfͽ+6lٴ@@ RR TC~=:Nw{~.E}dO'ހg⦧"~߁N+{1 ! שw9 }G}Gfvd8JQ1=}K=Uj($,* h h]yb~2 ]\1* ndv>(w6# yt6G)dDłPUϰnR 嘊TnV*"5rchDZ) ȠE[E$5=amF:M 4M&L| Iq LhtE{ H(*JKA\-B ]*(}H*0@%"Z(k" _1P _J)"h DQD*ȥD j t$@9|)w D)P ?b" 蒡 A_nuUU---UPUUR–{5jZZZZZZR*iZZZ((((((*( ZZZZZZ(iij( JJJi(( iij( ZZZZZZZZZZZZ ( iij( ( iii))(((( ĂY[뀲|i$#%J,O12Q̊* B^ &]3@01 |]0@Ch /Wپ/}t6zn54Zl;Vu_M}.JJJIJHJDTR9qEB;06OW/W,ٿ5v 4dcM BkH4 hjAHr*$|UPJwz0J"]?& Kkr>N ?+҂ rK.](o>XǞ@ e 1'333!BUMϟ>|<+#; Q@" /7 ւJ|xo}[se>P%w6D\]Ӧ|I*$$I+IIHDOHQQQ>>ku-ofx!ٖhvxUәSc4̴4__ \REoГA54455554Y@!DOpJʾGO-&{?V,3~_>}CPCb9$O 777677=:x'I {Q 2 @A?>L^]$5|ju"q?Msd|q]W~:GQg s߿ݧ܁fꃘy+Xؓaj=oS=)L$[(eA-IPR{߆E(^x% IIDRáHM:d؄a). H r ɉ$IThd1B%Ųa@-3&bVZE$r$UȒ$$$ +%%)EA)J$*H&"E(Շ)$ M!5I 2AUkzUM6kS71)ޮfҮگ6gC&P,5=RRRRRJgs+[*7@&?c'ǖz]vzjZ( 76K uh0_}\6!@M^=y.{~w/sWd4켼^nTPis䂵'z*doItɇٌݖòz˔^Kav^jP9`B#Gũ#|2yWuw^Rt(Շ)Yێp[0o;~_wi#(#P"Մ1]5Xlgv]0 (3qJݶK3Y]]}k`LvLܺa^t͒VmizcX}G[^U3V7wwGLL3Gm!3  ،-Uxzz۷[ P} 3(`ԣJ!Q@QUS*uսB$n Ԙd]nm&[j 3 =P11%N ;:Yz6Yfhj nˆDKVdžs.nQnAM7][ZOZw[֔m-g[Mzu0^!:ݳsrI1eu.M"H4!(nL_u쑦UI}9_)ilvs%xl#[@@{; H2B*i[-sd?Lzou뮟wc{<-ɶf[8@pH(NzutM |~b'nl[翯p1p-SPV1 w M#oW¤fu, m;4v86[z^h&OࢥB $ M:OTʹ![TT$HDSH0 @yX^\#xd8xn~/[7_DΒ6PJTt B @0 57k]&ZH3SlML3LANxԗp|5CرI_/]DW,:e]k_r|܍=KyDl8P- :;-sj/%4?afIҭwL@p)Ç.wjzIGFƾ$-P*@@bTxE̦H1(@ Ŋ p(+mÝF=`B"n4$ubZB]%Pڬcۤ6wpoPC,!I mJ!餣t%5`) /0k#_/%x',euEEdʦu7Z&޻GU)C gAI563!"$T@0 B( >RO0EF L??9P1SLHQPOaA}M?ᥗ}!{]1A^xq눭EWNREA>1bl ^C{}SFVa\vh7% R  DF K@u-o k(0$`H+}6Ýyy.__^a, jT:.&sU|~.H*[GKzZ`k%| ȗ:Y S&! \c֮Q=CCB &::9:9:9Ϲ؞@'CjmneNNM@)h8`Y@`V@~$f4Q%TvSx4&"1~g\+ͬ_[i:x$ 1 ũ={plzGv_.t9,/M4 ov'x[h #qOd|@Ϭ:&Pc =-YVnJhpCP@% KmmI8Ǭi@w)/hR`@g:֗ku2\Ǖ /H/ w*+j.>=*>>>>=7McWc?@dX'Cm86ȇ-"~t.z޷z~J:~H! ă! Vw! vN( 7~7-gxU @!1o#,)W\XFkÇ8pJI M?]H2ɸCfM"))EFJ"uɈpjDP~kx~^C`S=?>BNL|}mO7~n: '0`X%%!_DCd<\#v(.!1}DMg!J&4(/I9G& `eC2.s/TYA,(+ MGxP)vIHjiͳrNK?9Ó eB'Ą`C@184 ~| cZOr5333* 3333, fi uvҺW M)>" ]\~@|gD&`Rbcݮ/S#ǗPͰBcS-G k5ZϣFIJI*!,H0_H(T1DDգc߁ƒA\r˪TDMޣ_S_>83iGN:t8J%+F\ D+x0/(#Gs----kp9EgS~ Yv{y_eΏGh^ *]7uJYF;HH:CV=5brr;*0C,2$3T3EP4 Q/ E{ggT-AT1 ` Ttտ &?-gh}Kx5{:6ƫҔp8+"+u@@@rCH { e8u o/mטʀ@6X;@Hx |$7#NV*o֖{+gC!BEݾ6ӡvW,q6?5Vn m@Bš^!m#:`1奥b&nx*i8k_[%V/ktAm].vySxC!! 2^a"_N ېH|bql#w3ů}HQf6LMv /6ǚ[0y||[ƭZY$dddSd`.VA,0v#i))))+-*8d1"-4[O[[[/ i }huK7h!?8(NEUrq|vFo$u 11tF.Dg+$8.JL>ͨ >Ki ,/fR!B6lif͛c%4   mK:1QDJW:t飧^^[#ɀHQ;n3U}g"\b%r<.L}m %auGљ۴z;̿'-n&!I³w %T1>5GEY|_鸸՘($]ZK:F<\3 _hT8+iEsCB=`"+67d|+$D-mJ<[8<Jߨx(@Mw=fsml7oDNSM_Do؁w7έ3]!͛p6lٸ!m~ 7=IAE =-#ժ>LXU]nZhe~U¦)_4k58ð# =ao ֒a{Kjaz>?_^ > 7߳;iv/CV wRvR.>=>=>>=%H5MBvR]!ӁDEڃ!E:pӻ[vݝo*B'i&Fᯤp}GQl>fG%Bk]+#[ bhtW"E˗.\[r B`aX[@x|h[9_ V\\]>ݓ? m:ʸI%e,Cb+AӧNC `$Q {{lo1 ?s'ڞoRQ $QG&&6MD:u<ӧNO``;?"2BZOiЎSDQ@=@2HBW"U"XT~-ݵ;@׶Y0`I &4͌IS4l,,-nWqxǏ9=  ; (WP# .n^Z^^_9i&JaV|x2u7gp4ڋ+V3ﭜgz< 䔌K# ҳ|1y\YUׯ^/˝iR2hɈpC)AOi&]À-\덿[o?gy}m{>e\TRS1!v|hhjԁeFMAlW]&'"};]_WF WoCE~S+HxI DYlΉN4e^\|/ZSv 쟧ND@!kVj a}(ˁr˭.Ш&䂠1fI'sZm}PEF7MLfrIҔ%$h~I,3v}zDi>QY33+ qX? .?n!x!~GQ4hKF5z""O޿}< /wWI,dTj)ط8KŜlg}g||8b(i9NH+K%kWuk%Tҿ_W/|_2_9/iz^/Dr___пRB_&_GIE7^a뼞^R?y5Zץ'ۥ H+M2_:h崗+ qJeJ.&SQSJVfX2Ҭ# ֟$Ww>uuoF>76vzՖD7ghړg=3=}+M~eLWs/?Wr΅n+ӹOf\;&{ErsrR:%ڔvoܧ>;gB#ގv$~s_=^^5m̚/fu7?Gnnj;)у{\1hɛܝweGӵE ~.Vŋzhht{w#{n'%zaجu]_\Ϊ{֦y#xwn^]_,7k'Nͯ>۝Y9Ӿ铯,[Nc7===zZ:.ۋntUs_r;U"Sqhbe ړ{+HϤ9V8MJ%M䫶MbBMh[K]kjpyͲ,pWϏ Z&pxp v# 8шϟ6Lxg6Z^bJںYw"ajIMg2ֺazhцih>2 - @J`kfI_m͡W69h=פ-ے2ѤtKƢՈ :~k0+W ȽNZa*%3f Z=Bv99h)YbHfvѢh= 9/]:gFl5pvDxoZTZXѣ]vZ3dc1}.zc61sƖ=3 fusНk\9\(,d+V:Y ][8(Viџ,:ᅦ th7m,ou*t*ْ֞3|W!c4ަ+#.7KYǽik4{9WTiu2M)\e3}ٌn4dݖ7k#vlf<͞ wջõLII"K<ړ\8kÍ㵚mVҗS=vmvS8 fqӪ+BԺȩGT_V(6T%ٍ-]Vq23xnҪE)"՜rcK>v*y:Tu5-l("8~ST-JjXQinVc+zn3SFfm{3_K-!~Xj7F:gr;JZu>S~1pK]zH/1\۫z͛ǽ+z㽯edoصswRYcnխ[;k+^Tvv_ssݻlbg3|Z=W CCC9z|r+2RP] *H @`CгmgKZ]UhT&ZSv=O{_Ѿ>?/g\G8f:p ;QHO#}@ޯ ~^zх r%{MfQ8uӽMW[4Waxv2~=%%ޖyNr/e@ wf˛F72y<.q}}w KJ0JP*H Ki-Mή09nOƠHRk':sTQt*2ǪᙡT;ImN[i_9=@@ n!B5j?T zi^g %$ x"" s*ؚƉ$D$T$gsvA?>4I$OHu͙$IyzzζKL| $_YI$N~yߔIOo$nˉUI=)h9xNm_wo $ $ N/OfI$o $O;Ǹv_s׼4q:O4jnNvw{&Ŏ廑4-\ҹsjjjjZkr}}Er˛[[W/nT""""""""""""""""""""""""""""DDD ~3|.W"@ !AO܅`oRʒZ-s}׌w:~z}"uɓ)r9NS=%hd&ēϲJ+=9[lQ$%{6QQ57C`g{>||Ѐy>aZ?i_>G~~g om뮺?͟9c{_?_?/O (8qݎ۱ݻ8㏊wnݎ:9sx0|8/qohSMݒ?#5mN&nշ3oLMB<~xͳ_]2k9ʇxΎt3r }v=yrׇ/c]>`e^Z^Z^X^X^Z^Z^Z^X^X^Z^Z^Z^Zbh1oG !$B֕0 \% \Wm,%pwh>sM/}_ϟ>|ϟ>|ϟ>Ye6l:4f͖YhпF2ak5nϞֵkZֵkZֵj+tSSOOOKEkkZֵkZֵkZ祥>lekZֵsֵkZֵ͛6lٳf,qʵkZֹkZֵkZ0͛6lpƵkZS*Җ)jֻiie,”)JS5iLե-Zg旬ͤ0k mkZְKo?{k@ѣFFH]]k7\ ]SPW^+Wd)Dl\WW"3y:Uv+/8>>۠>O~n?O雘a7DH64 /.Or3G[fWOx>Qs^o2zyI Z֧R&,Yz`\xPIsq:"-iB)䘜{鵽=;r\_?4 {+&]$ !PZNe(0N˨W_E,LC&{{+~w^gzةƦu4qЬeZT}N~f<4,Sw?{?JSSjA7]hpBhnaaI,^~nz|`!^Y[qGHhwWhHܼ}$]d:J[)n(0$b mD o135QJk$U94x;[ֵA(%bŻLՋ"Paiw)Ʈ>n)?<Orc}n|dA>]齇{-nS ¯jPɬl=jĖ ]6M#:߅ҹ^on~' hp4ѱm Q P a ܮ~鞶oo̶vc͉1PZ%]$ju t[hG } (0*з$& 飆 ;ޏuݜ&'@SݕVm,!IAiɠB734ٔ .TG079_9՛ Sssff&BdI&Vh A \*}.vp\,/7KtKr7*ݟE8΁410D h5qA|J[}|#8 id2#!y3!=) dD\0CG]m@jb, *`si0Fa@ʘm 0SJV$x"(cB6aL2Fur| d$Yk;<-: P%!% C  siK{$I,$DH"-xӺNGPmBBӨϘSj=Խa-h)jHddžmEw;KDY5xuv݋ 'maoQ\8ߤ=Q,E&sS9SfaS2 A]zQW]ءD7Xmv]m+bH hooV'EY`\})D-ΔJvMQ`->^0j`s!tu3Ѻ񪮗KN`"Njfi"6gu- E qSL bVB`\^cE/=1aVj1qz/`N#u]7wWVVPqn y}u9a؎\q^~#d!\o- PP2@ryh= @;(FspQ Gv ̽I~{} л}}/*:B#|^w~y/:K'9-T+?JAh I|*Xgh!G"aqMZu1.%kPgbƸ '/  H"(hbO4EL R*b3AE o,Cb 0@^B T1CXX>9 Ĵ$.' #8m~_=v,/̬,%t-ؐ~|-:QR=+uvRܙ 9Na:y]sOKtN?h :5::::9 ؑ[w~o?gr7I(8Rw`3 $ odm}_Gn:ͷ22 #@[ nC{>ϡt+sez kvߚV&߁c6 g={GO_h8 6r:L¸l#IL(^ů-JGD!2ImȺdinkLRf;A@7>F;ᘲd0'm6QCI[c!k,D2!7"?_Uc ocbu %lH;Nݨ8'Cclb9※?o}Gu}i6q8iDBe _XGu[TaWD>P 7.ݙC;saJ eJ'Au8wwwWrs|;ʼn0SԎȨk؈U~w бaQm NXH:@HTTHGKAmP?a"*6(6!Q}O>{Ѥ5?$}^<;GOcb ޥhXZޏoOz----,m\d{|Eb7W7#HII #% σ PR$ߩ26J6]kF =J.bg]_+"~+P:ʥS ȶ Z H$ 8oоSp"i8pÍB7 %;xh[H۝ԛQmf͢6m%%(\B|8 j夺S}OQޅUZKFE6^_po; u| dɓ&L{20Pf$\(P%1f&(Ȫ˗Υ`>Tˎy>}}1%=yt0%H HTBsY_mE7{s}N ۛ4v.-bvtaP*\ރt|W߻EeNFFE2El@g ZlMܳWůII?8III=$ ޖ~tA}5bE$x eeeeTx6嫺+-f(!UY[b P Sx J,8}Uze3D2: 5LA>4{.?.uI0 &&F!>?)>e^'dɜTZvx'j>l+ eUʿ2(7Z,a \[yԙiاVAqQ (ܻ1@[F]k/+q'""sQ҇ J֟?㜌:ݿYc D7})45Xe(Cdt ;$S6c|{G͖嶵W2˗.]bpWfg!d!wkQ db4ddddcOPU *6gpDPQ湿Eg]:i0Fs+AETݝ~O;᷁ax )̖>sҟX9B΂J 2E@R IBfON((XF"-w]aV zhc$O'ۓrrrrrrqk䁁umh}$e$ K*V&VVVVU+-P™ѳ'='eyW-b0{/?UyݿmË*Udwi`Fq_LG5aڝ^av/4b}(\M먕*0"gN!C!7Y~_EF` @2 eLAz-.sRZmL|ѣOƘM|FNJ{x $C"' |sibB^KDr"gkvܨ# /Gt(B?Lj7ښ>"DA@.J k5{Z݆YK~#KLYq~Dݎ2&G3Փs AMP;~M:w6}g#8ӛݤ@s4ӚHm7ҒPYAA`@)Ȅ%Nv+`6Q^NbY_F_ٿ^Bu(! X]>D@T̉7s~;t^hutH;mʟ0Z& ײ{wqO$9Sgb$O]dt^rŅA1,8o7Yy~x+k(8!i_~S/´ ! mgEuv7-g=_PyӧNf2E@0f(P (A$@P'9ᣤ#6$$J~l*8oO9& K.~t4 LrcIl+ݾt3tmB HH6wٷϳrrgkAX%Q&տln6/ZVe̬glX֝X/X徏I0|@P#~3.&'/o˿ddd>+j{;o$9DPٳf͛^{FTdzqb=|=#C:}G|}'[//+1sqs7"THc匓`̧9J"ha7oqs0pkPpppppkB pz*xl6f 8nm7Nl{9vGyGyϓɊ:ϬUE+Uy !@TCUN6#zKJH)A-L9?n 0K`/<gtsg5Gsv@ h6(%6ŋX+[R-w8vKpЊB!ZW綏{æ+|YYVu)YYWV:װjؾ!۳U8gdw IDl:}VU~wKER @ن@  f\c7/dۮrT@BR"6LSyB-Qkxo 8+p\>shi0C'],W_6cu]d1}(Pzʔ|sGOBf/֦p&D !~"S/G@iQYie"}iDNB /AKظsa*ІC:JB M+QdBAMv5{Ko5"Bg1&w;'|}28@+{Iti @n>|="hHȼ!ITAlFL`y$;PTorbvF=uJenyysәyyH0101114x 1W_|ڨD];>wx7]9=vO+)ss+fwjt;)?f[ZbKdq7:QqPU79#~ n>~rHрBr3{;zV ѷYgwo}q^v`f~to{jzq~tlyr=h]-$M5*$ϋ>_y'ʋ11΀?r+Z|2Q*y_uu>\Nxܫ9;~M--}/ Rۏh]]\13ZUaY f 2l  @ X}or Qz|Q,ţ6wWi |NܲTjj i} -6%7COa;1 >Ofgpeg!j- =D(G%"U}S Drt Jt5PhNOH YǏ.\r˼?rK. &8EkK9sԈ[՗[M6rσG(28-Ut?z[1u<-_n58h1&\~-!YQF2@A(I\URe:1(@ 8pÇ$!HBV4ffDCQ dD᾽:8$|?.RB 6"J&aH 2]n64 r7= #sܕgsFPEp(Zm,*E# $I0x@՗LMGl@Eċmy{<Qn6^]KHU 6$k} FmcPd$TB$dk()2[r!Q F bolٍKV!d@5tz=8E54sQf* QIIBee%^l GR>NMNHfOq:4PrR4޷_C *39~{L!N;sk]э )Su7}.󦏏UbWkNOs)^EϟϪ*$;CNbGrts\t:X8`5 UhE˾lDyRA(%!ϣEw@x= @!pBe[I^{BC|i\t'˗Rų E1C )ψ5cs#fmo6|p -]§ _HB#Qz$ ( Y\x)Tpv7}o1 u4kRSٝĞ~"b>Y ĭ>fF|@G ̇FdS,vxq^呵աy taC@ B$C@$ȅ}z"!mF 8O{]@RT۳[>WixYhRqu--2=I-aW65J~5w:R%iA, ƟXXXؗTe*j*yVXW {Ǟ_Dƛ)1/۲n.f6:&Sm4⶚j$ɣH1KzBU{XܱQn%JJJ5?+h@@%mӥd%T6 CIIsܹ/ V>/–Q/Omom:3O/.?p ub;rcH(ۉzQ Ё ӕV=2:tִ.ԏ&qn LLLJLLLJ+fBus:'?yK63T0BB-7{>G=Ww3('kQ$+cf XZ'vz2 ?\<N% M/lRJݟ,7:o>&gOЦ{#WG( %!%Wv cRfrm؃;jzl>TY "Gu M9Me5S H)x.k E &d9Q?K?67EQ|*WIyª>|)Ϯ%}#P;pqE8Rw&TQE-֐P>LHMNHM䥽jGFo#W2ɦ;Zh'STw}Ը慠"f6!z0 LͶSz"b-@`5T DBX6g}Opnczz>1C =Ʌ(Am 8"t@ b @H^@6k 7l4B oCt@4lD- 0ku)bj`g1o+B.DY`IY&6TQJ "oƛg\a2e}Dɓ&L!"N:kh\}}43\243=0l~)R@-P yF1ݚ3~>>DLS%|8w{-x&"<ΚJ0ϊ\|!_">0L3m Qkag{f.HDǢNjdZ_+pǓbqSI=i"N5v,ʭlj|. X%?7ֽ}Ps#n<_S'}ρohqO޿ o#ᐏ3#5 @/ tBK~]pWgw*8#yWO/:X:=ĵBE9F?iv/N͎o1б/_ع~N>oئHN-$!LJ$H0"ALr"bʺSi\%Ӵ-ixqv{i}{FeMfpؽw4|PG +wz"fgsr =A{[ nMZА܇ɞG/K*XEA  3P❠(ꋳ<@h]˨,.\x=OB_)Ftd&5Rw|{>||$z,>k15/)cc:[tB*(] wW83*'8RU@4y= q`X#f,@PsoN%t~Ʉ,.C(!k҇v~mm04݀ś:WZ "P!<D&a `m K 4i=DѣO)ur;9 GXN:u_qAXManh/T1Q3Ǟ ~)Q2VSwql).{嚘~"uurc%tr;@f%5Q4fZ"" q!q:-埧nϥdeצTp>C]RLWD"?@ ?ϯ*/=_IBn&`V]u| ]gvѣKL^B~|\.r+9[H]Bf >o3?((:D%%e|kIծ6 fC" L OO;Kh Ć̱@(k~Ƿ5_zb( 'k'9y,]u K`$B09~3rR?[ߎޅ̳7K`zǣ+uMDRD;s+&L!uvZ*$a3%Ju _q=##s05V5fq^Á EQ%3hW@xS*HHSnHaW;Zgm:|COBZكZTѣF4j߳Yr%WC`i }pIvr1g%$%oDuLeB$w~o}F'CLNO@ (X%HҔ ~%:zxOK kl*/'oJbyиCz'έeM*fffe>9;3L9PG`lrm2yUj٩~Ow0%Px:>XsYK,IEܹt mKRjɵ@RT! d! Hk~Fߪ⼤WNˤYl'~ڨJj鯚?X kmWq?i `bb#bb}ΣhlG3aMk2.p4׉d?/Ż|3Wyuuչ_}cyNVm}*#q)uq-q1Xdkw#ZZjիVZjիVZjիVZjիVZjիWR+V-j9{=m^uv;bdddd999;YYYYYYYYY[yuV33333-ׯ^zׯ^zׯ^<<<<<<<<<<@b{S4 9eek$3'%((Dϱa[;?ӄ#X#! G? a.`{:ٿ@E}>Oɟ"#= 4(  ZJ5 A Vb&d#DB@  W Kyd;ʥ;ڨj 23nn3=Z?pQΞWb1 E7Rseߎ9 \ޛgvc NW35֞ZxmUocϟ35wy^}o;5N]| nnV{X=o)JR)JR)J^JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)KuwTz;kw! _k7e׿.Х:0#ЩRSI+Lкl\=g:7RɃE='M>~(4ٲhH AX_H ]#9/Cs=gr;Ӧ]H`;B w-Q)('8@GDp<]~xS @oC,(a՝R~s` xq]t!l@k@H+:::;"5V*X9~9-.:*-/~. B}#s1_bd !f{$n&Ê 48Alo֮?O^2etɓ&T^TD @ dddds:{=p "{^{ ]Dss;uь "EBQ|$E_˝FKmUA=.2r%'c}̪s9;g0r˗.]idd-ሰgY!!! "p(?d^k5oo{G^ʔ৩ jPL)u+ON('{fP8HdME÷_< wWA^%+~~}#9|r⻛OY !yQ dlrZ]%`eᒝIM%z4 z *1HV A Yb+qqqZݧGNg*I,rJD 4$"$OJ%@$!R)˄ǕLYHVm dpQ`[}LLKDJDLJy^ g] r=+u/.އ83,@1bH r"}hgJ޹vlF4֏~t>+eaxdHR!RH=G '55 ΢^bo<` ,zJ _rm@"eC5aCJQX%p"5@M%_aa3z]`J@%KB-C ЊwI*Na"$`8uwIU}2ˑKHƍM5QsUT_?#[Ury* S+brW L 29!0`5&Gzw?H<}V<S>}K)*:,K:z>\۫{3@hF;8Pl]U /fkoV=i8-}k0@1u+ 뀰Z3SƆR'QɟU@G5hJRӴ(ZTL=czEƢ12D,xǏ= +wHZl(G bώRo] Xu`ևC;,?\Yn:5]_b3`Oڠ"C=pm_?aitȵY %9дVgL\:}kV6{CHU+EGH 'gbYi{_]oP#jzF瘡}ϞZ|SbhM y?ZIp+VI9-NҰï ծo3=|fV"a-  ] p@/(\\3xdN4H "I"2W6}D>(k9=&'=6지բxpp*gUUSUPw7q{ՠ)R@""%$@"$_U|Nv-/?k;x&7&MMMP|Rk0tn#B#>A$-7 A1$kqW Y @-~YNf`X"Abo&EO2Ѐ .}j>ѤCF 4kNjC+oՔFX TDDDDB\DC6tŠrOBIve$3`$0  X8HHD-o9܂:Uh@I|Eu `8Kf g@ >)|4$aށApyoW~=y!ti푑џ̘??f?GuJz.WhaFz2EWC\e^1kA `@A@ZM8pΪ2:9aS]Kb}4#brzyK;[;sq 9 Yi=,$BP"J#(2 JX^{i001M OեBrdzo"[E.ގRZF6V+GC}s8/wGaɁd1h7FICO6iPNς4e[2xXK_vB{ ۇ}P_ ZBT_j?wvUqPyZ&)''sd<˯R__EXiŷJZ ]>Cyl[y)y9ܭQ}pǛ##"###"N W)_4 p0I6R͛I1k:Nyh++(r(2+(r+)qrk]$rVVT+ \uw" |d(&o3|ۚ!nS%$MWOA`^*qO(((#o\vH$ree& Ɗ's;<8V} #Zt¼|4s±XL7FwDU W.=]R_]u烨g9\qsggqsg8QʟleT]A?b {˶p~#JgglhH9xtGDԞ"Iu ,h/yۣwwy!O $0kI  FdkU6m>ad3)*ugq~ľ>!%=`].E_'/Kfu|? }Y4noCfnjifkfh+btp]mĕDu6]}"8WiKmƔcz?sl[-lK0) Dn:$򤏶 f5uuES @ȁOton6%SRlFk{CHbJJ]M!MJMM+##|Xp_~^9(]fEz4˯{T|?`T?/+@A5dpuos )95`VV1''''!VA6]k+p^sqGS$ӧN« f+Śh 6$+z Q\(@ 0H0ݾm{λmFڐe&T`0i ]WaA))9:963nyߓ4fFDm޹yNI4 SSNV}U"{ حg\_ gЧUqa:O딣n:,NR:>mȞT˩y{Y"ڊ"@d77y98ͷz eHV@)%Ivn>8"58/8n :)'-˘#kuu@`Ij@ AS!C^\s%#1%.^ҭ}с%ۡz\zv%aezLvz[e.ڵk!l6 NӯEEEEECC C3k)sؑ2|OZzAqʓ!<vR{;|sW*UV9/crbmGEj.u+̾# dxYHh"jFE| :*ԈIV(*Ue=경??۴;9ܹqWUG+朷^.D)7Dc^PUUݙH"K!V(J+c}6[uS3 %m??&hI@hoa$۽R$Uy*C&~'ۋf9_=aZb#L;K0`%@ثe~SQ h~COܦt!eNl:t43 ?1MQdBqPٶ|l"/ok2wW;kEk~зZ_yj ; 1z|* /?w a2 @;qVpwpK* M,-ίp-/gw7gyRԯ+\Q C {b@ Utí[,ո}>%p/2rr ue%$Id(4 J"B#Lǜ;揉,]ȑ)AfVX0LHĴti9Iaq>1({~f 889898i@z)gKޞ7_M= G"N6/]hjiCFV0Q8QQ#T]|Z ѐ bdb,r@dTN6-G#HA|$RM,RN;QoP ,  oF !˧~nCxy6$wS նIEoعMN:jw9ORZYfL4 {JA\b@B`oe1?m.QhL! nP,2p sq/6aLj"P ]zUx?=E-\)D:D&GڅĂC ) ->_׊kETZFERFFEEty躛{괖SKEwz͛6lٴwݬ%tE nV>٣΋=cn;YuH  9Q؁݇呬(d=W9_88dɓ*q&b ԕ.Q(ԩ^Mpؗyz&VV*V"!F4h‰sĨTL 1cv$P"###9(E4]Bja [X=(%' (czPb+u'cLɎ\KH}1POp $hQwWEV =`0 5DmbFE&FFFEI5Hngej4I, _Q7 3.5 |PkHr@ٸU#}P/1>0.xPR %Op8%y#P8? B bʋ.f}noAg}8 u żfS('*`bD[6+p[]w~M 9yWe ZQF"@`;]h}Z!$ءP+ٷwyNq̌l  $y@VcAII v<b&GEך/? '_cjL2goZT[58JHi1yjv}5q1stj<>5(@瞘-?7co6qK㭇!o@ A>u&F˦DR$ww&ėG7!H f -_/JRQcN:wV-V$<=VJR30<{/v.Y5 @8pË2BBC0 6@W VGN"9i/_sS#G`68il7Ū\f>̶ 4rߏ̏әsQ0Sj듒{ϛF(A R RXiMIP(lg.551 e4WsD¾G)˴@*8Hq}%@1$e@ujw r9*Rӕ8=!XI8=U)bllb[RT|u[_Q:G)Oиan@7H](TcUo"m)ɨ]sBT(  $aC#3Јi\A#b$qׂV] ! l-q{+w?w@ AxD$T U/d5Q uHbJJʸB@*hă d t\o )())BBXچY 嘰!Q]/S"66 < ]4.J`;P  @"@'6wֲ 2 4um8]<<:<<;Jbn;gC1ÉĀ.$#[s_v_;͗4(A,RߢS/gDHQs{,%wA*.3|p=/} ]P`ӜU KNLTSff>~AHq Fd% q Ca*+aܽ:uLӧN8,ZyMj?.cb5ԟ 1"4i)(pA`ZB5'hA-Af`n䄄E]/|7 ?f&z?mRB( p@mQ,Pd_p_rQ#fMPs6m8-wom+xhGN:tӯ!FQk\krvt?f =/r& *U"P=w*Nrݍw!.g &c CH|r$˅o\^!]3PX3V_(=@L#=PFq_P7لވ_x~ն=Rs!{.[=$lfmϏ]OO0t||xP,1 A1 (B O Q`1 Bc|ھK5]y{y>uxǵ͏ OIKOWۊ1[nݢmqw0uF×sdy X~y8ru|ٟflc:xƌLc7/˰߳"}2Gt'y (܎Ntp-%0 _o hag; 'a3aȭbe*0F*r"icEDEDe9!= Z N92Y4>Pׄ}&bߠ߭g"am)5`@Ai11n9ˊ$uIQQQNI$o_'&^;cX'ddQ @}=ըo < 'vs̯LU]&]k݌P1D"(OƸHÙK[զ@[4hF4, i>V홀Z5êqLLfc*`04VBC:/|7׹Ku>^_ /OOO6]KtRsۧKD1/_K>N~~lK%R^YADA AA ۶ff&gӵXIT}zs (J*0J2$!QaaaaaAO ADAD`ADDD0>5`&XBQ E&}ի (BPBBBp00L$aa涷vE;mj(,,j(((""""""""""""""""""""""""#ᶢ""""""""""""""""""""""""XQ""""""""#"""""""""""""""""?DDDDDDDDDDDDDDDDDDDDmDDDDDDDDDDDDDDDDDDDDDDDDDD#Yj; FQ=M,(!aB!aBFFHXPaH}#-P"(5EQF<7X~YbdFRVk3Y%CRaddQA@޺````nfuȨ2 °ʒ2,,( 3","2K( $ 2*0J Ȃ,,zܮE%Ff&df%FFF&FdQF@aFFf`fae%Hdf!&ETAaEdXFYXDFfaPfbb`YDffAfXdaeTYfE$aEfH |kBaa DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwj""""""">oHS KjKk" (e(DEQ5EQE7mDDL#$) bXd j5      DDe gϮO}C6]K4>>>^/g?G: SgM}2cO~[[n|g Ez6:β B~}JUH_65S7O Ӭny^ Y߇Y{pH 5:bm7L\n'i<;ɘuJtQP$>2 iv||RqC:'\&ͳwf2>[vbZP4Z?@2v`zU@ ,X54K %nA_s`]8"z~mZ.u;&8S^~/u|+{܅ B ]>=O?:$ @ W ,2 SI(Hw3hIX_"񟎍M0B@Eޗz=Ns]>K|o4 >  4 KOTݿ~KE?|4OH@5PC P"& ӡ}Ez^׵{fفL `6YM$Rٴx$P/" \YoEZ Nx?˶qq iniHfi{].ǛT4m!ikJV4Ұ_{boN9޷[kZgÂ78ҥ:V mKZfkS|֠SkQopbm[­VfƓj֥K+Z UK)Z*ҷ+aeYkS|/ZVkIojV3Yi&Ҧ֭&fi[ښ֪nZz][ z]r^/v{ ;R+Qxc5TP~JYYʯXxۑ%X̫řZ̵EFU$*2! H2(ԲTYXfaQaTedUdffXUdYEaaYQfEaaOqڵXeWK+UafaXVZTYVaFEaVYFQXQfYEQFfTde*ՖQVafg2ʑ) *$AI* 0^ ]BAnfstrace-0.4.1/traces/eth-ipv4-tcp-nfsv3-4-readdir-75k-entries.pcap.bz2000066400000000000000000314742311261713114600252710ustar00rootroot00000000000000BZh91AY&SYLmMy@}0(@ր p0 ,F `hW{-h{oUJCZ-<R5K_>\{ӗq'sn2{kyOxsgnxUۮ9Ƿ;{ws׳w7^ywo[݆޽lݽNzz[g-w7׬{s]n=w|&s=sw޽wuqݺcF{mӻox3nnzrwS{sM }@OL]'< }v+ {OYG`>پXm`yw _}n> iZO;ܯyy>@=훻{GNWys76齼!sMo{k׻i(}U)_c)'J>{{ϟ\q7t.M潼|()E(P%@B DUTUR=0$(BQ"(*TE(y֚=nw#ޜn]zׯ<={{o{3s>^\6^z:bݚm۹76M>*%wZT}\ڷlpn|9KӣoZ4=b{}'&@z䧡}^owqמ޵־xjkՎ5ݼ]=owv={oo=fyoVݓޗ@%0d.-ݛW,v컟nys'N-{o5/+מmg{{޽}u2y&M;f(P[t|wݥw<Cu{{ו-u Fl AKG5ڣ~t K(Hjޠ"C+WVu!!Eeu(yA $A@RE>@_/%%yMaM؆/XȮwE;{?>gv>ϵ\Nsxga[KҺ5S$Xq84/?k{y_'yZUQg͗뵮Vk>o^8Þj8dhٓef1sFtռ;ź0wFxck޺G ,͚2YgXf cw kjݧ4{ms+YGCkx0s Y9]+.<4UJRp-p3D]AC$ UUUQUUUUUUUUUUUUUUUUUUUUUUUUUUQUQQQUUUUUQUUQUUUUUUUUUUUQUUUUUUUUUUUUUUUUDDUUUUUUTEUUUUDUUUTEUUTEDDUTDEUUTETEDUUUUUUTEUDUUUUUUUUUUUUTEUUUUDTEUTEUUUDDUUDUUUTEUUUUDUUUUUUUDUUUUUTETDEUTEUUUUUUUUUUUUDTEUUUUUUUUUTDEUUUUUUUUUUTEUUUDUUUDUUUUDUUUUUUUUUTDDDEUUUUUUUUDUUUDDUUUUUUUDTEUUUUUUDUDUDTDEUUUDUUUUTEUTEUUUUUTETEUDUDUUTEUUUUDUUUTEDUUDUUTEUUUTEUDUUUUUUUUDTDDEUUDUUUUUUUDUDTEUUDDUUUUUDUUUUUUUUUTEDDTDEUUUTEUDDTEUUUUUUUUUUUUUUUDUUDUUUUTEUDUUDUUUTEUUUUUDUTEUTEUUUTEUUUUUUUUTEUUUUTEUUUDUUDUDUUUUDUTDEUUUUUUUUUUUUUUUUTEUUUUUTEUUTEUUDUDTEUUTEUUUUUUUUUDUUUTEDUUUUDUUTEUUDDUUUUUTDEUUUUUDUUTEUTEUUUTEUUDTEDUUUDDUUUUUUDDUUUUUTETETEUTEUUUUUUUTEUUTEUUDUDUUUUTEUUTEUTEUUUUTEUDUUUUUUUUUUUUDUUUUUUUDUDUUUDUUUDUUTETETEUTEDUTEDUTEUUTEUUUUTEUUUUUUUUUUUUUUUUUUUTEUUUDUDTEUUUUUDDUUUUUUUUUTETEUTEUUUUUUUUDUUDUUUUTEUUUDTEUUUUUUUTEUDTETEUUUTEDTEUUUTEUUUTEDUTEUUDUUUDUUTETEUDUUUUTEUUUTETEUUUUDUUUUTEUUUUUUUUUUUUUUUTDEUUUUUUTEUUUUUUUTDEUUUUUUUUUDDUUUUUTEUUTEUUUUUUTEUUUUUUUUDUTEUUTDEUTDEUUUUUUUDUUUUUUUUUUUDTEUUUTEDTEUUUDUDUUUUUUUDUUDDUUUUUUUUUUUDUTEUUUTEUUUUUDTEUUTDETEUUUUDUUUUUUUUUUDUTEUUUDUTDEUTEUUDUUUUUUTEUUUDUUTEUUTEUUTEUUUUUDTEUUTEUUTEUDUUUTEUUDUDTEUUDUUTEUUUUUUUUUUUUUUDUUUUUUUUDUDUUDUUUUUUUDUUUUUUUUTEDTEUUDUUUUDUUUUUUTETEUDUUDDUUUUUUUUUDUUUDUUUUUUUUUUUUUUUUUUUDUDUTDEUDUUUUUUUDUUUUUUTEUUUUUUTEUDUDTEUTETETEUUTEDUUUUUDUUUUUUUUUDTEUUUUDDTDEUUUUUUDUUUTEUUUUUUUUDUUUUUUDUDUTEUDTEDUUTEUUUUDUUUUUUUTEUUDDTEUUDUUTEUTEUUUUUUUUUUUUUDDDTEUDUUUUUUUUUUUTEUUUUUUUUUUUUUUUUUUTEUTDETDEUUTEUUUDUTEUUUTDEUUUDUTEUUUDDUUUUTETEUUUUUUUUUUUTEUUUUUUTEUUUTEUUUUTEUDUUUUQUUUUUUUUUUUUUUUUUQUUUUUUUQUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUQUUUUQQUUUUQUUUUUUUUUUUUUUUUUUQUUUUQUUUUQUUUUUUUUUUUUUUQUUUUUUUQUUUUUUUUUUUUQUUUUUUUUUQUUQUQUUUUUUQUUQUUUUUUUUUUQQUUUUUUUUUQQUUUUUUUUUUUUUUUUUUUUUQUUUUUUQUUUUUUUUUUUQUQUUUQUUUUUUUUUUUUUUUUUUUUUQQUUUUUUQUUUUQUQUUUUUUUUUQUUUUUUUUUUUQUUUUUUUUUUUUUUQUUUUUUUUUQUUUUUUUUQUUUUUQUUUUUQQUUUUUUUQUUUUUUQUUUQUUUUUUUQUUUUUUUUUUUUUUUUUUUUUUUUQUQUUUUUUUUUQQUQUUUUUUUUUUUUUQUUQUUUQUUUQUQUQUUUUUUUUUUQUUUUQUQUUUUUUQUQUUUUUQUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUQUUUUUUUUUQUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUQUUUUUUUQQUUUUQUUUUUQUUQUUQUQUUUUUQUUUUUUUUUUQUUUUUQU~?90" d3 97A*@8g8퀇πW$$ ,sa0TE`1d22~GJ[9>0wZ'}^f7J>}{Ҟ l F!?Z\&@! RbI""! $$3HIc5,aF$@ Ƣ٭a+z#=Ijg1T,!K\W#mpߢ3䮪D~CW[k7Ԕo!Ql5=š s ` oiC? \kpxha`ʗ[[1}_~*`aj)uZ>冀ߨ2nóvlI=ƒ'EGU]ϋ15yHqRyG} Dk?;<e?YsSϰu7z} AX' Y4ܾ]?Ӿ=gz {An=ko9D\rpַl`Bl)OcZ ׃J'n,A(wπUiV.T`7dx|;B1mlӠnᑛLm:?V$Q/ X?4m{.JB!T;ۚjhDՆDMV먎&\E\gN@HzWsL11b.χL,s٬L#br<ٳcRg|V2?cN djlnon4miP_*oozuη*r'CfުdXʻ`l;Hq'W&38+O6!KHcۭJD,ݐ^4i7:A]Xi^A?kBRYDGOhnY]2aGF>bw\Z찘 [y5eS-}JɨyemZ4&lrӤZcT'ဤL_fbRDze+7-s w ܚ~מo7NG*ͺjjD&#snbIop3PR'(azl'\|k 3&h 5m]7i%cg.6#,s`lmP[~#{60/_`g\4t}9Sk%3={U?i}O*_g{[ޥp!'?Nus\e_Dw+q5^ ^/T18ʿ?a}̴ $=C3{w.ǀ .6G{h3OG*Vл̸>!p5/q]8i42 dDZ˕Mk)ٶnR#7">}Wlң(44 JVa M7Y Qr!@΀OƝ$~vOaV`LxyUi6q+\⤧}_)**֦tY|_#귴[ }|:$_ HL(?l-^Bʵu*E j(q`Er=Gݡ^չ(a{~V|Q+tٶDiʛh;4v`ANcʷ7I8-8ŨڨulKLY6xAMC5QŒq=h I.ɲ6@/DE!D^{,7WBx]D7"kq9 Z3>~_*Jsrj6}sҚyl؇SMp=Ija[ףы{H3lR! k\/Yh VWx ;4\VjO;3[͍exzǸރIۣh:CWw&|u.v%jQPX*ݮFסެA;9?uBueI@ٰwkg[{*@N0ިN<W{ & VD}>{~?@m|eEɜr~ 1R}]`/hK -A8sFM۬9`}x|Z[π?ZS^H˶N3MoxW53'N[U\㺥voM=$vC,>#g yH9&12Kg2%XgӁUHjꬓ"7LE0Dc>[j'>qGs|-KnF)co$(M'^wWr^lmpKLj FX CX2}zIhH<$4o͗p%QVnC-IlAv;=2'17.Bk壊֎"ձvҸ~G\ˋv2Z>x9]#_. ]{j9S)ze0+4ӧo|X12 1U06,⤵L5ua6'T-)D_4iRcm)掗#Y-l !|3ߐ{X#嫉DFJfluԝ;^ o t כa[ARy.y{Ou f~zoԵ\m;Z7G DTo+;#.J)}דQ$K[PGx=NniNn,i#m,z&6YJu+ů(-r 'uc+9]jĜ|D_Ïɯ<똼5j SV :MkV 4;HncT:5RK8 R;2Jk%[iWi#{堫1F4oKm9^$oیwsIm *?B*)Xy}|hp +vzH/zsF/ĢJ[|ȡ8sbV !aȬsa~q5)c-[QG{;{:GuB#xH~s |M%m\h-4Յo+ʜa7)' S׏@^|@ڏ_+U1H MU0KF="1|Ek]|mDyFci~=[쉉:`ͫ`9-.On:Qk9=2Tv l6~ȼa;k^I 4aV#vȟF%3~E!Ino7QoX5|wAu 'RNB2^ 7?40jYj7*S7%?V3CGh筆&d#N-p{٪w-_ܱx(\}~>'9a Osx*[Z,V|,cv/CA K**MX=|L0MOApznZ!y~4lu݆^lW)KAD|)RlKѰݽf {:_ƚIt0<:{=w-Z,6CV%66x} p?=]+./C>>#| aW40yJ >C!)\O;@PeQ):bt>ьf)`C굸P>,JBzsҳ)j#W63Jö\` H=tY+2_xu>h- G܌ZWH=U 횖!CuCޭɜfct' 7 >~yabj_O%Aӭ)>uƗ.GA.<7 ^%!bL2|hjan gJ^1PW㍸4.2mޣe/Zp`?;M'_)? y? nZqǛtN\^1~䵃荻o+}/mUtRgJ(ў~;95am,R1<Ci%'a>+9ƒ<hTou+[\"uc`=5I~1\ ta,fSn8˪LbI\ӄ4۱vxJi .>`?!מmCYa H p|۬(}ECbGpTSܟ̤&{#SRPPVT76U@yL) _󩡁x鞔=Upa~@Iz\EiyX+d0a(Y*x̼=ϱ N[8!=XAW鷏70n4<|V=c#xۅˊ^?CX{żc9:̯t?EN*7jȬ6y;C"]|xD,x,~=S}AwtvMA>Dvx]5r;.9\rY]2|8Sдai;Эq3E`qǭޓ灼Wa?I{nk7vOV`[K$wq\DyeVnA?ez^J*ۂdb=EwK֎:"FoVD$[OZ.i \vϡ0< & weC3]R7XhsRŨX ~W>E(ȍ3NF߁䚱Wmc49:c̅D۷Kkߎ I"ng)8ZHXJQ2ϜL:.6)L\x.@ V!=A~G_"r _N}Yp&lCr V09WW=GTYY~Lrv۟ݫk]e'W_`_#qV6xp9nuHA~PwyPƌ%oEZ(1{wK+;s^0kTs>g{(FOXLۼ2{}E0cWVafbȇ3Bq{nOj8K:{]$|f~fJ:%Mpk|C]U[*d9= hk0D n 4py ի#? ١( eq0&y4kW=6 rLrOP}mC:yoS5|Irq`ӫ5[W_П/DYh_6㵠tk碎MiLAuj"R5 oEmW~()ĀxfRlEMz2U@wT Xv n>6lMsc(VN[VTWԆ`ZWz'M1hs A[s_.[kV>ZNjA]?sf7'cR\gTݺLO>Klq8Rx_ok(e n̙wؒ!~4ٍT`E:%o,Tp~Y+ L-}>l~Gxp8U]"wLD^.S p8pF xaN2^T}}Gm܏19]ps?&KFY_a.Toyx 5^]vf/QaxݗRN١Fϫ/.O?*.hѪ`{U,9U&dAzZa͜wC& vy ^5lrnLy"/1Ps.ް;1o`(t%S_nr{Q;=M?ỹm;+30Um82F(9M-Xٖ 4aTAڽyuaIzݖ:[y-Séj+OO5O6pL]y%g֫ݎE#2>h|5v4 Y㭔F^R4閕:7NM/9T{)Md)Cz2c/LFoKm;#?KtJ|+e:͓O:uE wc‚.R2c/YcӾ Jjmh]T; Y㏳Ɖ萸r eH$Qm^L Z=+ 7Dt4Cy;dMM L+#! a@Q)hzU.܌KtN+RDE =u R?t@YZ8xBCG/#g~v Vgv`wp3We2 ՓQr)fod_4LM|E= \2 G}:C~Pp4Q^m} ]M ÖaK")hUfu낡c[戮WZ1l57t#e HO,)r^6k3؈͖vt2{S󆠽1fNlDɢteېˌ!7?ߔ:zt=![#Š=;\N9 T˻8>8cwy@xU9ExHj*k <`Lup$k潫.8@-Xk eeCW֝*v1A@0"&qs Po(D/-G|IzԲ?`5^žyE镟W_ץƪr9 4nwa$>-35|>_xȯ k2lx:W Uf:Xx4hoSdr}"oy1Z䒒\0QL7Q~cʬ? yb~n QtO{-Hډٌ*2 4A3gUfCkqΫ)ec#8q~z%E3x[}Y|dyW(6чytGC俐^:ȝ᥼yf 0>?)-f^WORj bA&yo+JPm3>coͼ1+i;n{L _VH /;U\L< U Ј#z4pDjۊL+u])m]( K@͝ϫ?~h﷞C;{^=&Oc |MJuwej<Ϲ;y[޺rvw@BB$@osZ@/NxyDtE^{W4w=Ư=foNo.+s;;;՚(%(鮸kzsX9Iu9mlk: `lA% E< $ s];O69<3s={Z7uzōu892Yxp(s;Sv歼w;u_1w sl *$%Bz(@Mdݣsx;5jr9wyσ= Wxߕgf! Kט|h~8y^9YGuF̘sxw{tvWCEl<,}rb5]s\q޵oX]f;]]9ޱ\|ɓ6to_x+;ʬ]*;3sFqywu}7|ᣇE4hY{Y]K2s[t󽾚oy%o.wd`ᣇ4t`otg9Ko:эuޝ3 WFw|2lS[8="2C1i#@9_F_̿xcGgV~; w5 Vwgqa/YyG|y`l`8_%1CLߕ|9nV3!7c[33w{LX(ك}2gxkWuXևmay~cwZ`L8t:`o/{^ugNۣgyf;sF{X;s&DŽ%Ɏry%ccns9LV9sq0pJ(ɓsz9͚5y淺o\үUtƳy~jwr/Za$wF =ѳخvkfKW\ۍzϛZxojs5\Wxp`O~^`D=%gg|{7~w|X+ˬoެCN9*{r}:tFw{+4-svWUkݻ9TgNUc~cѳgL yUvs7Z7V`η[Ѭߗuy6ѳBl|^Gty^`:uw*fXggxovs^S7o7;wgy' ,0`}yg5W׆̳U+MwzbæÅF9[w7}>wv|޻]_QcN0lёdѓfKXӌ}y]]X=uMvek|9wkE 1Nzۺ]/:{jO/x1ݾN|mrW OWfC3 { >l52ƹ{su{{yK]3'wʮo2c 0p6m7{k~BI D?B`+%*ŋ+yuz^{$$+y{eHP TVRTa1%N9!Nn۹Fq* }Sa?M)<Ó }4=ϖ,{CұvC){!ܪs<<@|?y19/ (Gd_;ak̚EPifc؁+Cm,5̨O)|#&yQ#kQMk>^p9 7GHD~B.6Juՙso=J|h'UNJI zCR"]=>ul}N~9%3Y>7VF>~T> N:׺y1ch442eaBy.<@kG"}YɟDNZ!`:7nddg${v!s8 ̵?ogzlyc)C-vϯ7tfB,3֏ne}oߔWԃVw}Tr3s`m&qe-8 Y 㘍~/dM8cᠬ%]9@}PS7)1Y!`^?Ȝ ȁ0Ug綾m^w_q3hJz|7t_Ԇ3G48ԯ2Uέ݊-Uu$ H:/KtwTja{Rszj.5' mbΧ)s𬏣~ {Adֲͅx_HόfzHQt2zaS RS`kw$g<f:=Ѐ}Uڢ@]HzbN^[Y !6!![g&} V#e%% ߴ|%W!Db%nꖧCʻП%iWQȃv;.֊_)~![qjX[.Bkso"O]O{U9;~99lo(R?ч?5NŃZ:1bsx3+>izҘS'pXn3pG#P38C]@Oo;b;m}LG}o@iﭳR8!\z{ZM8!V7b:tw^*q5`9g)o$vܾWV' j㞜)džw]6Kg[Uͮm_EC3(jp؟< _zlc F/ riG5({lhw7> eA{E kӠ7^C}霃Uw>M?k6a~ Ի*`5zfHߍ8z6r;]doz_q%?d{o>tƦbIIw<o}\ǣx%;qdװ[y̬&^ȻH0nJ3l}ьuI4f8: W6UR}Dx~Bsm|Gp揗r}+ {EoM}_@o Vjb6Ty~žG2/6uڨmZM덮>ր3YIYzogZvp 6ޒcd88tƤŠͲJ9vۖVSUX Q!bt }v /\߆i h)h6j7"fgl{M`]S~ݽ?:|uOG_Q5mbQCv8?_L{鶥oktbq{P~ތLJ_gr%Y*=OLLml(5r\̎>.7QA8ڴ BZ[>KK{2F`a8\Sk#ywb(~BSσa2vK9\kZ.N7!9>Ȼ-_d;M!OX*8.mX61_ м6aj?_-O=w cdF|ļU؝G3w9]ة=r;߭lh[l#=(-hhfԟ=Oz}3~&\&с3Mޟ0ğΒ^Eg!'vgLC[eiJjzAϒ4N;UOmJm&g&BFlf:{DTIjkg(l[u^OSu>R@4gHի(mWtCW" N.I+j=PL k$f1 \o樨atˡme=:p >_/3aůg&I9M[㈶~s9#"{fV'{=L o3I^ށVU3f~x?aSt1oY-Όs}z1]1~}mw֫CٹLyrtco?5 oln~^x%üҙ6R'#tRWW^4ԫ{fA U7tvcXf{qcI|0PL:>ko_&9^PyĄ @)(dH.@4ET**HQ9W<@F@.C`hGz;P~~( ,BHP'Z~#?Ժ2_ }|Ã2HO`^$ ވ @9#n V1#$CN L `ӌ 0 |dC`!Yt"΀A2F& btD %R 0"K3I9Iuj_`]޲eMimg~pXW맮,Ҷ%Em;w7͙9QoanW,~%?|^iQ-"4Fȹv`b>W2Um9쑊LL.aܭF$Ϡyz7 p6  rܽ˧Ӡo Y+;v6Ÿ3Aaaeï1V ef $|$*( !${$ $8."  @ /48 qX@J2h@!$8IhCQX{ I H0y ! AR'hPmn1D:>!$@e)eJ IPtX@CC*2$DbȄDF~U^MHd !`e4dvsџɹ[6DD~Q;rѕj^(ëX\>s[H]m[)?ַ\þU-hLIAfE46gYo|? 4͵\q[i`rxṡO!T w?}Z6d @ XDK`e08d89e< | |!#!);p𚚐w0z D4%&4&$'{ BT!>ЛX>[qXA~;8?$q xGbV8-'n1Hc7v\g+37ΫGǜtB: [Dw!5\J**ڂ~q\@Ir][[KH< ckw8]Mƙ(fwn}-mpXg( Y7o-{s_{˄Y){{焽~0H@oR@BAL$}݄C zHA $`E#2!@$ZB~?tD ) |- @:$$ I$L%!"'Ot@0n@g { @=U!$@HSQ@H$D,6%2@@0NSD4 dف@\0ąE(AB "( Y~\ =2"̰@--%$)HJHI8 HaLYD `$#$@@ $QAr !h $!BAI !L @0HI" ")BC %! Hme&KHy!a1p&j5``=R|nE#PR~~Fd$`K욊H_ M~:2zIEICB|CF),6.HTgƲ $@Q>f\ID9)>b'-SPI>z@ dUR|`}SlEqBI$(0#dF,>I>چ$),uLJ |^ɂe4"J'0'_3*%s,"2P% @K ޔB6+(c@1~vT{G(Sږ20I>~YL}!Z0XQзD(]RDEJJ? JOO TVSU J5(-|x3籗ҊdTIY Zb+bQDHφlU,"a!wIUR' >di 2~dJM.X)hC&hXD*|iYQ22IH%>Ɂf_ʻ~k_&v IOG9b0EIĤF~Œ)&fX~Bfm)YpTKT'ĺ1>:fiA BM2QI4>rťb;[nVzFbgs*<<FLPY P%,,RDADd YH)duL)*J30&|9Q~ӚRpp!O9PaցBB :~C@48r AR'%\d _* b#$%@FPL K !?LT,ABJO L.Ud-F ao'kOeR*z2JYJ*eQQ$?zD B)J 'AC] D`TEU6ZhD2J>FZ;EQiQL E'Y0OaoNE!'ۛ2HRDR>aP >ۛW?CLw/Zfv\%3q~p1Q(gFaD|Ö Zd>+?hZb@-4,)EQʟACJ?qQzWREF`T 1>cj~2f"5)(wHjcl,DY*HbȲ.:FDEl ͉vQE!Gc?fOަ ,#HPȉ )XP1*2 #i%XP)>}c!D Ot$?Igh8,ldZj-ze,?STLԖϥ탯8Q'ZI>S2r-fģtg??o5"XǢ)tUZY~+qIR>(Z`B8?!ZȀO}|HUWR( ",BCSƾw%da;J2@AAU'i}]&mԮTi\xf`a)vTYc((gt1#.F_D( DJЌ虩HAB $e "HWRەQ@d´0rA9" 20jPJg BCA7'"\&Ĥ%!Vgޱba0%FXTbϧ FN1 U>ttT*/څ 0Q5PVSg$ FLuј2v %)uk>RA'?`\0D=k * aAhQPF2jRU)UD HY%4TEвNLoB|I zB4^2Ju݉LRTOib5D4n1h,1~"R,(<Hl7('ST{*Cl?ZQaq* = c`=D >~!(>=Xuccc-Q3>z $@$*"??A$R}YIu0b.Jic oUgtU "3L q(R)ڲؿʈgcQ!e=HT*|DTIB )bc)sԝĐhfꨲ)(U5t)ϯn (KdJ`v23(a?8XTj()?R&(*gʔg$dWZ+O™,JCC>dCz*b\ +I 2P}Tȱ^!Sm>>'cH, ("aB @R@!BEX Ad E ,"YYE$ $X@XH,RX(I`IE$PP"E "ŒE )`)AB"(EE,I"E ,"IA`,,$)$Y  U"$$P,R@Xd$X AH"dUYE)E B(EI"()$PPH@RERAEYaX*E , `ERE ,dB !E$,$T隽 L &Jh__oyegˋj{ UӕD/Ѧex?%G"  @=Dp9\lOccڔFR,mH2%'f9 @<6jA9C"< +El!#D B&FpHNaŽ2f  tky^!z̆>#W(es?.c&7Ɏ8 x8 bqMrfl{ ]<_j"-1kØ!/z>H&b~S~@&)rU#L)*ܡ%DyzcFS( D)bL _2uLdt dr,Em 3&q<)TXb4L)2?$\"q2J}4U#!*9/ќv6UYw}PD#;x z d. ρ dm&O߂d C䀬 K7J$!2EF$$*$ \9Eb5cKK]ӻf_[nj%vP Ϟ`> @-9.k^pi_QL RZ|o^E8gm\eQ%f5Lkp<2kwG;imWh뛯o*M:zxM?LYI@Mk\4 '$X2 jax~z>cW~"cJ@.(L7ŔUfYGȎ $!DOyHn6FNv'Nk' x a) %UɑLgvaC+$EمL@ppAZDJ c &oC)&(.L(PC(cK.\3HE"ْS rΟ5-a'A(/9r&J=Fr\5Kt&ɹh\Scve]\9HR %(phyEfpK3)9n Z^骔%,l\0ihI{u;x߰6gӸC6LmHox ,1 ꛂ,u"(2CWNjJeP30>-Vt[!,JGG=Ce^W==YՊx``_8<1#-,Z]Pzi >UG/zpuf1oLCLCa]uXM51, E:-9DzɆ' _/?$Z7Sj'Anb_§>61+bEd<1Upqb6D+ °5Ʈq+E 0%*y:n+m+cт8*')bT9NNHDWČy}6l\r%X9<}TIqF1LP%ǀkJ*WxY5)O$7Zϸzh^[U$ٖ̽UTwwH ^`/QsȫYdIy*r%{;ew xǏ8g7PuHB@*cӭQ*9Dge {eGzQWå8DU>>޼ Ҭiu!1doRA%ZϘO59grnkw^ڌ ؟vE9˾)A7Lބ1Po>Luz3O.dj,80aSSOLZ= 7JiODE$zNqmثepCH2QRQ5YL({0.[K|y)д109n+yEejK9'rǻHHd,,{qEܢPВ?"DpL]D!|WR] 2^UєOXbe(XO& ҟ)b3b%x'.ȑ#ZY#L2e~AUEĀ0Oˎ'Q"2snŋNg(ʅH$9>FV"/ynFA_NbV}>!8&Yz<0-㾟O8M18\u`%eˀHQeaNr7ș-Jn>KD2ƺ7N&9T>Vc{&-bڌTP-ze˾0?:9=#abƘıC=)μsBBHP~*`W쟤T}ꄌ$`c _<$ pª!+jѵR#šMIZ~n*2ߌX*7EtAl7ݽޮ3́OR|,glQ<6ga{vV$@ąB aE5 bIMR(RDTHPbT 'i/8 }ɏzZ00Ӈy#B506N;ak)D7cfAw5'|I;e>j'i޻~7j\O2?(2iOi{ (#WF @HyKKqr~\æjx$`::Uz%j)Gd{DF1>tscH80tޘ%΂G9 cCU[񼸄̭XvRڧsp z`&?Ąr#ot|IFV7-tt)|*bh(g&68E`Z+S-|SOVORC0Ñyif YZDd݀Bpz'BY@YXֹ1e n5UtrcH2^;-I8&i/IfhRYe?6] 1&Ki̙KI4JA>"~ XLG+" TvNd!JUFəH8!%a(]%2\Q[QeYi3n%˵h~) <'|("9$heO9(>N]֛1Ўtü;6 Nθ2yn~5~ѓc+ȇ^:ۜG=tucd(@k'< 3)3yBMFF|jqwj%a\1#}Y 0,Y'pTnL҇4z*#.YN~ :4ÖrʈeUs\ELdQvdĜ>g[R>=O}(>ě@k$&&'}/J6`N*c*Oi9@Rv5_9ɔˢQ*z;ڴ֖V{ǔ@tMM9WSV:xЧa׀ #d9SnEbڠ^Ӆw`|;a9\ėS6\wv]1čL^) yB[l3 H$=5 2e468ˬPz. *W^\/l|W#M\TɇD5QYSF =k#=7d{)k9e_DsB9$Y*nO6Ҍ##} O})rКBAƔkc0_g iv5 N&R0n*FFٹj[1W fTsyNX\3K2vդ3ZH5 :67c}O//*Miq9"Ҙ,-^2"Iz®0-VZDqaR ?}zFPGǽ$ 2 |8YKj|X+.Ҟr8Tvdhѭ_&b~/mP^SA`Fc2P6 )'E9& L H #N>n;SX!wh3nw{;־v9 mg:8/,H 0EHO@jcOXu霿{FDxxrưpA>k;kȽLV!y<v *CLVgW&\*Kp>1hƃi7Z.RbJJ=< e hMumb,WHV!w03G/[wTQŴNZ5cMU*1 %d d/PbN/"'."1K#u1I#5zKqR}7TS\ɣ~ښq0wbqX^9G$ ou} I/J05'qW@TڤŝIH R@F֧U>, P1B:" $iw~ŸcR1%nS^hxKQ'--&ʉ) Ufؓom< $`|L~ I0$$?Q$ `dT(xT X>P|X{(YD>- Rѣ;"#>d)[iP,1` +8-}ƈhM."gk1A_Z(azDUs(YmOUg.h^L>ϧo}17%Mw~(Sz_!E/K!!!… (P(0`0`̔BN?f@q;@++$ [#jF ]=4<1b!%'efz&ljyU\|vzW/ꏂJR.bb-HA#GO8e(ќ@/ vT1Eq$ZxDtAu ֯練C<hO}S^'3/N 2[er=OMȅEMIn)e4_̼/zF涁ghσm032Џz3DQS]_"G#C:#?eΞhl!~fb(R\x1㸠|ajfT4h5`݀kRz_oEfqOl_TrC r8"A 뿚+@;CЁ=[vAt/-\U5['V|bWIz<;M_no̱$׆Q2o~锄֤uPh6Ù5 W!~(đ>DuqI6`M瞂uLߨcԅM)zWڞa(caXV6 zn#I"x9r4J̽oPCs5gPxEXԅ(r6$eZ`j/Q H'!! LeD$$"'_?+Q.߈@mz"Ĺ >>UNj(ި-H :Gz]K82almqIKMA3R=b nM=DJD6XG:絡iіhf {?B^*JV L/1 XQ#H`fR焛ni$pEa!F(Sؖ} }+}jLYY=;rܶZRa^/°6^fuXnb+zjsbz*/I=㜎Q;DϒTvpY2@Yu0RjsbgCt<ރT/@\=sp?RCϫ*-س/ ˎL4X(|]Trr0$dSu6m#?z_Or|;j-ty>-Wr+a(~G{mh/1O8r2"ĕ{|~<$qnXN!lY٧ rܸ)2<t_CO.JSl#u&̙7>*[tfEw<ϖRĉb<|~X }]pZ@' yzcOm-#2xofpЬybGt,mHrITgl|2+T"6Y%=4A~է !(P Ƨ8a=iM^([!lC|?+;H#xw6f,ZvG_Lu?QGm=s(cUoX3h&~30G1N#"{Ӌ2—^j:T"N̪[xj2dYndvie{+BM)ތƓ`3aDhXlf^A E鐄*XA.ive1]a3\Z{/'h*ٱ.o9<-D8{?WGd*Fq$lʚS&tjq(pѕ$;(x?="ey4'~Z-p1EhH59R5L䁼L-עXZXtyNp?2B>/ U,D iyC@Z䙄&Կ?4 t3ys`6&MDI/o.X:-w@Nj_4{6K%WVUĭg-$fxu QUg}A^ؒd7Gf\y_ihb#dxӾqx"A:Omps)*@9-2/DV% rvpemX1]rHg撗P${%)K`V'RP 9\SD/2TV#Avbd3V|ӈL&k>zyXiŤB5>jBMLps#FC VƟD6tAdҗ4DkC\-Y2Ejr@KzhVr?C嶻ќ§6Hɷ'Rx`ԧ"@Vr߉V|C!kEd'&T) snE}wg VZ wk)-yURǿJW( ҉#(Q_!m?%u*$Hutf egGxd0o47CgOK_$a*|æ+׽ci=‘O;㦏{X!M8{3ŬR Q,[mJe}KĔ `? 'K6a=9+b mA2bJ$UƜvv+bW#DWy Ws8ߙ̒?a &jFF{ZI@4e}ME1J/s~h`P ZgB f;gNS [G ݫO9}k)P(>P8DO\81wfnO~i(C;;vd_7=GGaj ]]y'Xig-o7ҏit<(Ndϊ^MOڟf٪hx->6߅>R}SUbMB*nU~ %OJ*C:STTQD*rʪM"SV}eaGiMmYQQ6mKˋjl-M6A]{:#JbId %sj/E0{QD}^ @Y۴{X2Xj3E̝qz3_J)6|jdbRߕY]WD|3I1^F$lb:^BbR#&ͤzܬGBy%FW>O הBV I\H)eDCZ-=mwI0(  PAX|<4.ثRTU\4Uf#ʉNyIm&\0qQn~ f9?^&.FaSSLj4;nN7sB~1ފHkgc^s?}lc-q ޢV_#CT+E7K<_Gw.Á}GEjQJ#R#xoШ ko(Se?<4wwSI]# (@zaS%k>DJ.؞GzO>GG.n9:ZJ* iU?7%II|ľ[v/9/vR}Db^b]U\RB:uul\E-u%ut8 =u:5kc./.x$Gݫ1qEDo FK!cbQk z螎Ҟ=6Ƙ# C0IҸ#Po=/Kc)}jcZ)16d!ckُ?Q݊?ʹK'KHI-r7ƍ${O!.>#I?2 s8"?BϠG܌\S|-Hmx8q<=3>8b5 iר %dﲵ.µtD)T|蛅!oD/Mm QwtGO2`[PU6F`^ ڒ1@U+F˜ȿfEt&ў9 /$،$38UX2uH#6}b6Lh'! NDn~8-AN+M P9H1S4OѾ^n,Y\Wlh-~Mq/)@{H|Id([WXC0dLxB'!L .OjnJћ c(S_R-2JJE<;#F{FAO\.灓>#W)&$LP~ag՗6fJH?fٰ^lpmզ$9M2_sy?X$)؅ccfYZlB/bZۖҖі E BGA=_«EWޛBMԚ FB RUwU#02:DC@Txd֍rmH)}u3l?U%v#)B kG^-FVsQO{*R,ViD Ξ*MrU V /d! YQ^F9pwe~'yadzb<99#G3[5-~y݅]cRω"pS8ŁȫRiu䯇BF )s ;Y-lpFZn~hx_(R%0C4 ɛUB1+Jo&Wm<"?.u|A CI=#;L7ţ[N)u[? kvpL1^ȏ' $$,P@fhS0\TeW?P-̌x,%GΉ('2˥<Cdq|{$:Yp/#?<M5(-[YrDmmm-(Y?I|Z1zZ4E~/R:f(epg]3%` \[4#@Si-:!F{/7hQM ULt;#mTff1.#1@y: *)ڄ8U t&o/@i ^4nsOf+QŜcL 9 }FyJZHb#y#@uTEo8Xbt؁n0u`X9vX@40kS5tuy܏g~w.X췃 A\3ݍz>c|8G=E.1u Zߗ[RnTRuZih|PәvY䘣ޅR5tpfơ[#DL*˫fU?Gg@W߿(# "N`QuVCk[TkyùS}L[xRF2a b%Ѫ'уo#VKK5*[^'Աž?Z2%hU{FQX4Fg1/Ҝb*Sm #uO8l[>$4Uy)G=`ɩ؛Ƌ&~(6' cɲ〒c%s59jS:yJ~ePHS/|Ou~&WOkվ(Gn:z$p%$R I$H]]e 27̍_ Jw%y2@Yi!ڈD.xPà L=ZలsO0U`%/xyl+*Akߩ6mZ{]F. ;4pƒbȴfW,.7keaZj9Y g>,e5| }:(e31'WY 0Jۡv)M4U߹c1:22.'ezjՌmۥ_ .Lʫ T'w uhˠP٧ud-۹+AT̴qC/fײ= 3)Eqfܢ0%fP2TKRFEr[_:>vc(ڲ8?$j#/?)s Wі)?%:;*YR!k ʞu9k_a}8̓ڮվ>&E,V pQZbp;m‚.#/ZE} Oj`24dOeXOM~52`3߿+y;a\p5vbq:p ~B|Yľ>A1YUnvە*D/@]AIPS]G#  @!KԽ .Cߚ`D ^\wXXwԲJ[r"sЕ6ԑ/pHezYHq(%p*#Ħ2dxNw_xL"Y,J3UwE*92 gKoΐVH;*$+䟠06D{,_7-i, 9W tu#ls܂կ2أB;B4;}TrEq!$?zW󽖷FtTbiQA/+_&$WC䉲yXg9' noO((n86;5u/QCSb&0T[T`W}$hX')IJmԜԒO>sO>SO>O>O>GŸ |)Ÿ |)Ÿ |)Ÿ | [)l[)l[)l[)mX<(7CPkm/F<>,SO?>-qʿ>*|TŸ |)>SO>O;Ÿ| '| '| Ÿ | 'ċe$I&$6$ؓbI&$bI&$bE$XbA$,H"ċ,H")❊=@:nhoALM.+KU0r,0ØSbUJZO{DbDrB} 6H!,p2H͹W;Ƅ\nM :!=ιYDtZb*YY*[WS\\q#uCLr(;WsC+_yS:BӏL_4!$A vh AѕMs&WCD#p݄3AoGX A.iWo,EfV:@ޛ<.pWLZer**= R0O*~Me+Q8҇?tEڃE?(I;z99U(Mw ȷ_Py}[gE8MQ PmGy>[K+b,Gi)d|"EϑN;m)>>`EٺԡQ@NoEQ\MB#-p=:Nbq?k[mor"is]-ǖׅW  tEas \f &D>:~&΁ 'D9_˻ kW]2=Ǯ;`]q(H 7&G,v,,~M "I~Ł~%MΐA,=h O`d'Җj-a,:GY~E^v3bhF̃CiИ\bHOeUL$eW;#P.[/lOʤmg>EL mEX,7צP[d4z_Zf|E٪j?y_+Ñ 2V,jsc+TD 5XZe먛$&Id$&0a3&d3 vТ$SOqouO,> Jt+. SnڂGk@/ 'К%&&3:bBKCV#)jyw,Ҝ+Ÿ5d3˄9Prχs-y}]omc}VqN9yR0jy*X+cCq&RfA)>˪VHQ;m= Fʸqy0"2@WȎ@2G #HFPo'*[O*'! ׍(͌nsn9(s? 6!eQU^q}O~KmvV9+'H4D3CצETr' >2Xs#viTAHb%A qLZg/uUsmٶ;ڽĕ"3);o>j2@VovִS2fDP״e9ͲX=ROswX{Z@!P"(&ܝP-Iޮim~rigfafbyNuh{F:NT{/~wg@هA~/!#D0{ho4LnhH@$أynhOjd<]/<3mK[1ĨHV p&;mÿ q!]6,B^ J+- Ja`aB`YEr6Ԙ:D4!bGj`{WreQYFD0j!*چ?G*|WPƍ] 8 >.QR_B1$Ie"IݙF۫}i@a]`vbG%Qd49vǿLJ/²\*ʩ*ӳ\X2Lyȯ׾W!pEc=dw8ݹ!>7ZK!U+݋])o OưFOD*\S!aT!H`61AKA5,b׽婉.y2v#rr[] m2szOˆڂpVE~5R9Ϙ9~%>uy,[Ω 0#hT ɂ:k^J!A7Z[ 2磎f'BNn42ɓ)o ƍOO xK2^vlU~!+h "wO]?);|9:zsTP9(U B{$vc.@2f"-ځ&dB `X]N8Rcvߪc lXoz*cao1g~'OʝY%]5EY1M؎86\)_b_g,2ufŖUģ!FAB#ݶ5~Ԋ{GGٯf֪l4ݺIכR!^ZUi0g^]Eu_,xW RHw>.Ce$N\nXM{;ݵ uUXBO( E0~DIʙ;ΟF"1"ebU-RH4ߖiRTb'Kɟ73 ,T;t"EoWx: ]"wPAȗ."3<1ZinZ<Ŗ"#G9uv8):>5̗EM !L^AVĽ?t-YbHiqQG_"z~6ZaE}0=sR_fqI孀DddtRu{ߗ%=hG4$wo#~Q mx^d: )U*SVSy73*Ks 9XQ?Ӷ'l|O'*x"o^9RiDL}2a} VPwg#'UNzHynN:Բ ]sqe`tᦌ_-4pQHd֛"8H)& 7ZW[;_,.*~t / (qA@}G1J6E7B6LD]SyJXzpEWv{bd.5J/DmB;tOFt F0J_k%>ا`x Zf,󆿸-~$5^ 21XxxG cJY𷴶 Z}. i b/~+ $nYn[_`=D^TK](s˄)R0Q;̷‰2Up)S^aXVJPglBě堢vV3;MOW*}ڶj%o\`˃IbVu5^=P59_.DNЗ٪4E.evv^:ϧ{V݉0Z,f4ߢZw_`EoO,Z1_7vd*ٚn.7">Ճf|oμ=wң,N;C%+6M$"z¬Ɣ`..N?]+0f~8]D)$QVO6r%=}1EoIw9ꢖt1DԱ'Qq0*[9uD blTe32S$ofh D=^SE]s,~ ,8dztgB(ī}Sl(ܙ9꩘rC`%8$J5]- c-Y*-e1v/ԖEW9>p :lWrW|w.S'Tօ19o2owKy]5<${mihsl8}n|S %7!z«ԍnC\"o`by[{)vkZ?*Qh11L3cFJ) Zg^4Sf\'rDv ߺG14 1q?y\)ghWGe:V=mc?<8^E CbrQH] K3GU!77OՈljFٻdqsrH K] ^ 1? Q2&D*0qW[* lKrU%Kr, ;. b,pU[qqDIG[F6·cFr~cBXi6t;, ݰtX+/6282:Gh$%_(>$2*ZJXv 9%nTJߎ=Ng^6F}w1յд5t*KgǶot~1.@6w@Pvh [;(7up?dsS?",ڔj9-`0_UFǶeDGj#0%rGlpѽ/#  pOT>>  ?D1~tT>A0Dgq ~HH1Cc"1hbE#fF" bDAbDC*0DgӑbDP' bDAg" `4 Ĉ40bDbF1>J*F1(1" ХF |zRQ@?WIB `$5MJ" ğT@Ĉ[rM):X,QDNZKF{m*R܇9q×zkjbzXI 4a$pBC@P1gՋKpQ8 'Iz;E' Ԫ)#2x,rNJy.e?o*g?VDN2ɣ9fg6}OJTRG;;XF/YO] $;HqEɐpfJU|SZYaAVT/osyԳ?Yc3z:'|/k|z TIԷH5e@["`rf3E ssڡ$.ܽZOpÙTVϱyL;Ԥ_2# Fqfb>Jgs%ԏ6s,oa<{pWW |n2LؗXt?*`VI @g,Gt@m/,>ܱ+?3q>] #Im鸢aLnF{&Vf2b[ž}^ǽN"}=:/m8̳6+ x$6a`֦goJKXٓ8e$ Y[ϰzD^0j\%Ha3& I>=!6;.FUdA?BwV 93V`~3Zʰʞ볃[G{xّ$C%sbQ\!"\S[vLzbzc ܫvm3'&_>fG b1cw\kqƴf&\c6|V3&2u<ahA{ R,C\XrC/!1Lϻ [nuWU.u챑Z8kPavǙ+JQ29c!enAl|COKik,gQi弗Ll:s 08(OYSMhQ]̶̺}q2!>`2]e|10|#lD{W "OS @kOT (Ld%s߿|\CGPO!Ȋ-H8\3{Tp(PhNI6Ҙvz'KLVfCY\rICce{Qգ׍|z̰uF?UK#L]Լ*eUHX Rc "W_\m;BG\5iFzon4ZMŠK8ߜ^ۮ$hWU:ut[o#ʳvL:y%]^A!c*fZ%rb.fDNc1-VLCP."xQl${-R&m F]ygR+@8/#:njh3Li/zL&IN֓IsH|w[88r8*$ LrtC.FqT̙8߿`k??w|KsjOw0"CFؖ'.&n@#0Y~M=~a'*[MCtUpopVAʼ@7`iEuhUfQ3<+ufc)7w1\Lŏ#!그<V 6"FJIR6J9<'`w؟fHs?7͇.gAMp@ӵl#pq:-黒'BYqSy35TB92]E8y ${#hrחh@5~'qs[?H1ˎ<J&a<^ȱ(|"]l2+&ƪI7Y模ʚ~~s"p@ gZ?._PĕNph[:_8ӇP@E82CdK"ld"dq d찘e$f6͖zjD&˭y@7Ԋ-ݮgQ/JJL޺D'Ԣ̈1 zKFk9Fû;SE0Z6JOZ |c:B9 .;wl6czJMW'o ݶZ$ԕp +%ܕ+{|&&*e/Jߙ#N2)ض^m-](^22=3I}8E[Ac=,~S'a~]ŷy_9֛iqm%X0|g;lQTpBEWLIBE⥮mO /iV g=~Dlqǡ8M!~I3 .BC2!%dLvX )v~/ŪT# `pV_&jzSP"nɶC)i޵-r 8tөQ(z _WYP܏voMDNi b1f/VqfŌc f2O~vR&ն=Ze{h4ϬWo*vF1fĭO=Q&<2L\3oZڗɶ]uTĔvjf ԗ-'kK5'iI}sAUOup,yXkzsWoޏɼ̻~,eWv6ՀC0NF0F?9#}m]\gq}qv>/CgO‡m)槢|VνunOAEDWsj`zҢ*ݖk~\uwu=/Ɔ]rnhz]7o[yҕҰ4rso|_O>7t®[;`ŭD]aÿ Ϲ2F91|,D@e &f]2\8 P$hXO=0sbH a6gY`΀As؄6G(!&Ćv<},`8> 9!Me?Aţn}:]}g,Rb؇8mmmn$+l "Y__LWؖAccdD̬_Є$"??ik4:&3{a_ɉ?YJb+Ϊu>,Oqm._B!ݺI__nlVČZ a㇪N$jb\Z)_FXY1^TnΉ lMX/R/(/튓R3ɌoZ\! he]նTk(e7u36zm0DK(iRnDuHã.spew"0'2plIB*/d'{]|f]|2C[NCCŸ f|ox($ H"!lUıΏveO{"ox& WM)bDƫySnz+wGHH:2$q-x%Īq!-%}L1" (Hڦ̲bWֈG-) X5/j%@ؓ k$NY"mK,7vA*`P?!!>7€F/X4X^2fH̖Izdy3&^Bیձ܆*g[+˹O8`!:GpHe0^~-j%fڔ7C3Vm T.[Q˷E/y:B},xU10{#ѲHn !$$FOd &iٌ85]7au4DR_O#!?[8.N !^\>1:'~jƚu` BwYdTĴNa&TDPXdc2 /]zO}*X7qC$]Z_i)fbv0m ҥes*dpJz>,Y+g o7uF ǴZE ٕEɫl-0LVV*tt2t? %үwJs[f^[ 3 Tf|Uh b@ 8c!.[D, 8}J58t =J#veS<9^EtT)lQ/A̓7fpнn7XPXՕ܋ ѻ@Z-r06MHWؑ`-ɝ@?$\"$t;TX6}R,5p uDuoJT6kںȩfZ3'1 MZtBt. ,b, YI]ઞTQ/s7~fPҡ!Ts-N!wEI |ܱ>N鐼*NJ yXY\ ̫;~22 4)MmܞfQlG9C"/=P}~u?Rr@62D*W_CKd9'l_]n9)B樾j:;po{cg<&|ys4![/Q8]+^YDy+l~=䓐Ad .JzOd{"Я@PJ Hx2#sP;nӜ̸#WGb/z#MzOZ9ZE)ˇZpxW}4e2dn"V8`%$([ .&L @ba!Fz$$*}ORg_eorǵEBBVNoVEwLD:.[vO@  `Cl)򤍍FZ5-:cGK2}~]8-OCbnd2͹1vu/-+[޽S/pOtjEmaKy0@Ven29֟zLFfxtEsl5@BŐqyﻂix#yb:ÓԨt.D$8ZZ]u(V]WaXxj%@T2y(-LG:bÊC,Hs3=&j X"dZH1huX`MY5}?W=萜`Nj`n{cwjG3޳XNG59ΦYuU*_:eɼz ^MoTks³6]u}vUcQO>w׷uѭⳊ+]3ӖUWn57&7;a1^ h{ٍeeYkLJ]lbo\T"=ܘ1^}:0Yq+7Y{-ѯvpαiKouYtff^ _L87e]+{tdv۱֜^ngW/#?Wp-ن5T~Υ[=1qE EaCFէ^V2cFZp9p)yu~[Er$z|̙˙,aqyAd%e~\'\\H`n<̌4S-@-F ^-}#Č6)F܏r6NXTȮZV|kE9ZF P?ix$cZJPnB ߇"`y('x5|Q|"I`>`c & & x"ܘ(:դR]A 3)qR:Z2RJL q'=U8Q+'pTL?6>;)oj+ƉF@10f=ص5qOWWՔHuv濵-rFpYPV5Zeϔp߮bhszuܵN/?C(T`LYgR #|;f_?̽ǯ(^z4kLƌ@hk]؎j`ظݚB{gSKY ָb}o5s9I82vJ X\k?TЙ M͢biT-6aDJ=N&4pu]:&{paɎfo_G}t` J{=UVXk:s]yN|{u燅Ʊ}wUzspq%] c{9TuǝֹUo wۮgx EJT޴[wVk>/}g- 9J(TJUMz<0yǶݗ]y2Wz42u{o'>y~z;LNV~y-?p8yoե[ [ aUTzT^)\ߏ-z:\iEg[ۏI嫪ū\N#_SL#[/Y%+ [p erZ]+d-ͪ@X-^Dmr)LqO:XW#be 0RHݓ]"F#أlkJYm6JHsU%Vb|LAΦIkkB.6$<s-?AM5(rhVgg: 8{KS59RSN!%'9jkD8I jh.-4Wh$-H!wDbz{+m}ާ#ǧOxîJЏ93;8aeTZJ:W)Mfyw7E5|3UEӝW3_.EkwwGL/n93+^hnڭd[jΧ,6l^Xr]Vm3.Ƶ8pwߛ2^m;nj1یrfڔ 7e̙'80ǙS)k֓{e՛571μ{ZʆX2Wh|*ɱM3~^0q ^0s5Z]c)y (il+?(s+y\7zGrf񪢙uqw뛝m]LXebϬǣ+ɏ7*6am_)Si>mz+Ǫ}ΰs[[^]g2x$0e:׳\f|c9_cotJs/*g9f5 >wZS,$6ySwBwz9,g:jˎA̾o w!gTJpsve6hhX~oyԉY(Sy95ыXV 9zvY7F7G}yxyƽ|vUw=޼lߎi GJcx%Yϼh%%dٽb[OHNOPΓmxݢm)[Ō !mAt-nm6?^f F.Sΐ&.K`. ]g%s96*0H!1DA3ATC6+!YR9zE4);UUE!0̽Px_=iJQ /F Edm@</^.[` 5Iw&uZ0f=W<KQH-#yC˨[9ӽhlw]t{iZLa-Y.ίaAżBn7x%*g'!KWaD[tϚ8?>™<>:y?JڞCc!ǡ+koͤծРEU5!-imb_gMkk[g=9;CKalflF W6ZQ]fev,ZY4ib/ 2ikA3 Ah;h>_եPj2mr_0E,V%5A|TJm6ц*ϑ4Z9tK1ZJ/Ow]{>7=UꄅвPX%d0B}cbw7A!؞׺a9i1Qa +T 4,QY`d&2WK ) Ùc.︭YaάÝi yQf*`]197M滆~tᝧ7gzpg}nxg&Y8(|goֳY}ֳs^ooj~t<8+w`Es)C (CJ{^ز·O䂀8Z>9@\V}3fܿk=f9SٴkZ=+'#+'H\YÞ|H>?SD2QQGĎLvVqh8Qu,~roGฃ`r%hacbZ-5(w9ioSc9;o< toAKalJ/۽ldɁr&zZ9fzM tk;vwwrog/~.&aT:o>0La0 vjjnky=IWрx+Ѵ5·o,V3bߟ1EFzg=o:9dޏqFuyɛ67^kxVF=lmfofveVy1uwurQymL+Y2eM xo.BsGq}tW1^YV|&;淘eƊ&FKs /Y1n/-L <ٱ7ǘ/,S9=YNeU|kVw^5Uѳ97Xŧ/|uۆLc{5b2y0nZg2a%L0gXw\ֻyٞZ?皭lڝɝg+kGN"h(^2:s+ytn kE]sZ[b8rCYƷ0V+>v|jIi.\沫{=b*.#1F 9BI0K@Drvm6}sa97]:C+Qo{Ts}i(6ϵo0-g~hBp6oߣ[뾽EvzΧ'{הk?ת~׹wLx [4m\V*..JBrWcj0Up-Z*MͫQ^RukԪVŋU,-\KK; ;K[ +KLJΪ1X#ʞ+CXURڽYYQ^ES-/hV N2+|N5?'-kcMv'$ǣiX n.qfyu+(VH UmvҐUt?.< C1gk)7h{&gHw~t OyȪcB+)Z\[Mn}|+k:&٬릱޺޳L`unFMsvc&7s!{kG, "F4F5uU)U $.UX.SɫѷlkNWS:Mfә5AN9l˾s?ԙ{6z^tg nY^7{{]V+^1u^9uw=ֻoڒxٯ/^to.<(]Q|Cmk>d<ωm!X/f7)\㺘9ь7g(Äw}=O9~V؜s>luo6pWg98(sSƾWW}޽`Wv読oK=-/!IjoPg{78&,/T,~/yu%;|2f|c8W{{:l57֎Y=3&o818o%h{ X3cFf/Xֱ'O1UF9f<*]v:xfoFښp9NgΝ߃60­Q *!tZ0idzǂDKX*HlhPDGD@+ź{csoXΨ.P"A'%!rQ; 7*]"irQ2z$3,_T22Yc'O :\L'v~zj .i9֫-:dDL*Jm%SH6p+BROPj)ys@Sx&x(KWEb;Μjuwd{etvo'&]ϽL7p{<Yy湌oW]1ß57j"ˆg[ޤz{,*ґ $M0##°ox*(U߰ʯ KbˡD.0غc4&MhQ+x*)FT!y.1<yh3LfYj7&3F/ڜ0nd37wb)2:g_ *m'7.^; KuӹotVr'l{ǣ^v7x/nO1gIikڬC׷y( =RgG'pmڈ/3< yf54c7èfA?`9:2mт\&p = a"A.f,, Pf8gDr8N>/t?2X/=,x܃Dh 1LcV9)1=|&+<o9q@8-P#I4Y:mz&~j־ѓ^92);Cc6nʻK 'EzWŕkFʲFk#KmG:.Ȱ--9x>-TLY64a &^~aO|Q)'Ub9'eYL^;*EcvKlSPɋӀ\,;c^+O;ע"ZJ 1 $.ʌ$C(]UPaSVzua5C7&>y\}fuFkE) *(UU+EH:nv,{煍933zo]y4sxcntd81VkSz%GδU*4rjv9w᧺֊.ꌜq57|GF. 8o'Lw:Vٞ.`ɞW5FZ.K|9uܜ0]{5sb' dQ"F:( ;g4X6؀ZK(Q|0Q+g>v_0ҨAPP}r_yZ5?wdU4=eYtZ/%򶳂95 D2A;Ⱦ@'{~߬vf8eZ6WMkb|9*y~8=g/zUc8gės&4F1pD]cw/s:z(t]yƊSkz=zG"{ ro^nOb^wSgpym9Ytm3V<|Zmwp,7z95=^\YuY߮ow ִ0&2g- ˳9X]lѣ(ruX5\6M>{a_3oLG 泃ux's+aޚ5<7Uڱ3g˭eͥ;w(jۡ2;Y:FWYLopg IFlrtXyט<ۭ<3/}C5̡^޶d˲ͺŜdmbxVwF3XszT]=>Fnt=w8zm281=W^niL\;ZfXO޻a[wG,V=g$x-6g5V9_5{{{yw{{8֌ޜJ[ 3.wW燘FyF}2֨wK l>z0y~U;YrqUeۆh^s5|9Vzݕc3Q;ٌeK~|RL I9[5u^\)RczAP8;j]D8$Fv{e+|zt"I%UU`P0P`(d]ZYSeVj=αy&M޻is0k^n*;4]u59^&F=q5U 7x(ju}5ɱky^qppӸ͝x'3۹ƲI7F]s\e CX+>6kۯ1ӻ`2oyo713gU=l3|+={*n+wEG<7%oV{٬(yXmY!9Wȭx YX2QPjҢʰaB:TC q՝7pmڭm,KPONZ-/.&# eWQ *( 쪲E97vygg5L(\dN;37fj;x\kw6޼9ꍝoӽә{:tcOsʼk;wѷͭYgwwp/Zr%faQC]B|=͇Ps"ƪ Q#$DKbE%V׻eT*t@D iuxʅ|b(a%U9;SaH;PbV$ۖo$𜣄MǚE)]8x <`f ]$O\@4b#$ fl+FDc3#N;;/x yvo4Suy-y5ZNTWytoq1޻hkZx`qgs ~k:;9W }6>gvw{^5wӜ;xw3wi}ǬpWefL_uXkEyk}0ofo-j%j\xUl󜣔4o9:ro_qz_='p `D5gO6>6[ UƲUIYeDzW%h6"u|c &X;2~%3O&p* ֆYHrVs-eAwoCb4Cb ^FpViވq؛ozsIlז\~s{Ɋ;sfzuś'_VÞuX7qyJibMo _H>#SWmHiגQ($[ˍh:(\ZRWQL\i~U֢k3)C!c)̠?Lfj/Ɲ\fg3#YX~ZKg,?z<s_M/zǯ9.+ ]oޭo02fʞes>%Wos(TJ1'-p={Nѓ#4 ģ@ 9{/!II2oGBtx>o nηQw.^xGd&)>!`tZJrR*"g|ZX2n/EXI%N%;N8>7 zųf B (XoZN‚`_Ǖ*PN!˰ϖq ntSl4ߣ:o}.yܪpyb[k~ժFmdT Ю*J1=ccb[VteZk;*U'\6ꗒd6|4= h,yc')9H#-eާE30una넎g;X`][ݨ$l>9|s*~42 -|k4tgNd-5ǂ Q[  %KJPxqAř`00;rsUvt8:O'xfͮs0kTVx=J/h0h1h VcWPGŪ%PS^N'KbI:yR&^qau79g`7x02> +h ~kS8+)n.V.u;I fgEb@r2c6]-QbYm}OkpeUw}޴552 GE#`P—{qLJ3O 7ϙ?%(,k5ư˃뫋"dA+,G¤rMdˉ~8GoԢG!(ǩdrp.觜‰")g]uk4*onXҼbs=؅#A괬,qɤ36֍/q\=llڸ07^|y|Ic¯%e _IK?+!4 vt9+޲i8aN3Oiv懏(*5bO^;]/oFdErZ}@APpʖ.6oU6i6kBnb*6˵M𶍵MggvZ]K6hϜ8pÇ8pÇ}G!>}_}aU}pNMvzqkz\ch2e@Q@Qb+TV*#2,E@U"0XEEUg."EcQ( bł QR*" U)VEDTŊ,YDȌPTF0c""b$F (,*T#) TPQE, 0,"+"(,E(DA"("Ȳ,$FH FA2,PU A *D`+X,X"D (()X#VF0F( bb0A""1H,QdY"b#",EV(TdAE0FETV(TAb b,AETPdRF+Tb1QPQ@EUbF(DDTP,*0PQ (,"E((Ab0A AAdD TbEXEQEX,AH UX,(*EE(XE$PPdDQ *aEFDDTAI EA@PPPF(#" , T"  aXHH,X,HaAHYUDQDATTYA@F V, AI AdQH"#H$UPTHAdb (#"TQUXX" *" " *EbŊ)2,F( F*A HU*"E`"TdYH (0R*A0@R"AE T$PADb*`,"`#2 0̙!/<F_7Oj㑯]'_oz0D@SwT8Ϩܫ+حV|QO75Ls2:<. !l=MgFHZ櫳oҖ_W7tyl]˺Il׵jihV*2w- ;&%#7ԧ}#i'1di OPw.szZ ygrwԸǞ:op۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻvgɶ{LJύՏH~dlyZP>u{p;v_mZn,K-aq+xmv OPG{ۧשɨ{))4*|z?ڟOOƧƧSSi?ORQONONq>؟On&&'_c|?\gi^z"*2222*22*22*"22"2*2*22&2*:?h{5~^ߧKkjj{?OS~uuu_=___um_[_[[___[_[__[_?m_k}N__{Uz-jmwz۾ν+__gʳעp59G~EgӓWr~G[қ2?㹔s-nܾc{o=8piP(F@ E0I31HjSh.4*!\9zrcNc+@ӧ*bVyŻQ} k%u`rdgL:I<.$krla.=' +yv뢎@iw`&v)b!8>mi**&{X\g_`-~&_sy $Dd20WQ#wVkmB8ִBͳsXf(HfK" !J G'%ݎ=}i ˔oCi@fr3BS0ٲMF qgGZ6m#Pycr ,͐} }Nz B&gJ߲*}w>0VQY{~搄5E9Suv!LOd첊.=/{8n< <_OD[!S) 8Xɰ ;A;N(mtavC}s >_S\!9E`dE"x}Sa_0OT&F*|WEgW^ /~'Шn6Mɂ?OW_{ȗcF)VgB6:)]\Õ}b9Y\;R9Z N/G5.Y'\KIpuF3lv%( 9R+§% g+bVċ@,|Ln3;@&YHFd(b~HI)ꏭ"m8!!h$~ rСm[Gvw'-fN;q"no}W9ďW>ib`>6Eu nMY)q"/c >ÄDps iI?)Z2!v  a( "5)LRj/vLkdncc)9mZ~SsB >\u}Y5 ˆY&*U t9XJ,2> BOd8*XYX3"|^0#=H絆pv$:}Tf J@:YjC^3,(bxQAY8]9WM}iA=eJI;Y̚Z{oy.o1 lnLՄ 6/>CwLhBwCu›1Cv!m'cO~STef:퐢ˮE-@R-<:Ta吳I^h)Vaѕ|:\4Plz[ƹf+~`ths'O+!9vOcnd%T0\9p$by2;; dt+klIr+aa`ıÝȹ~c(䑸.€1ڢ'T]p%ɪ OI*o Ɖ+/705^Үϗzq|?<%scCs{Iwkw!5HR < OBuCZv_r:QU,F (D9Xt&p7v [@[ f3hz/#l?u׏$@SEA YmC'/ZF@0"BԏȰrN&)o6pwQsUB$3)mU2 ꢦ C؟E2}uq8x^OWc2OjJ^SF~>qGPЪ 2AP%===:R_*(RQAsq!* >)X*)bcCƤ*/wh}C- fc0! 5.M <.$]*Iޏƶ؃4K "|Bba^4qx^QVjթ^6O=.Luqv˹Iyj:4psp**&oK(oRŠr_<_kVLK/PqyBõH;0Ez|zxv1k8PEd89qid'ƍb>fSrvCɌS!햸-WDU#)WZ liZ8gblyϵ \=6-zLėx'Ch<3AװF@E'*z ~^Z;D}Rs |<7 ԩ:*t'ʀ+q.dM G%&_u2S[[6(lS:ڧYoqyb=$$0R!$>b$vNqdнFЎ# BͰГ#OcJѰЭ?1bj#!$0Qg#뻒U)8A} }|}}}}<"u hoZFo_Q#7'! F[G 9$C)DմeۺN+pQ̖V[N 9mnY!a7T*r!5VJ2'|310Ny uT|8+ \2gLCV0E?%*@ye8ÿuc-(֞%''.\=HWp +3BꏕK?ْzHQɥڞb¿_6o-|p>9A.(CG>@p3gL<@-%5X.n|K K>I$b˔r߼Vɍ`{Q\u p ױj6C+`ɓ)MlólEaOC,d& 8_pv::Puǝ]|OMʮ< kdp2'8הedEp?{-iRO>?X5j.v]դK`j1ÍFLbq3j J8jlaJ }X }reuWrrpB1qUg$6_$zI0PsF1Tu'It ÊԴXYT̛ui8o )+JJ4c<Mi/wζ_eq>YUp׻gGk3<@Z0YUI ;fbVr# .* )6NIQy1i-PW7WoS✣{0cʝ91Y󨦊i-* NP=%'GJgED(ܿ9P~n_zE"v-t:m#)vE$T]8SYDa*HB^*Ǹ݆ꝼ;UaTN`y(MбϸofޛcfDE$D(#}٭Pc6E {o W(86WT%PR&5MrĺVE"WV008HP\ʷ{ )ȉO(6'vY ?`z`Y10+Dg3w 0h|xc[wt/ Vԃ5܂Ni`.§t jb Dz[Jz6J3}lRRy+L+\(nPS-ȣ^c,ڱXTąJXP%Jیr N`LbZHmq`L%UEw3K}~Kc*#vy Ciլ! ;rJT\8%<*:3HgB!gԍu,}7CMBO.2>3QĭĤnsEmwqI>aU v ]-#!못LGZŽND27[EwOswSsmQ9^[:E\Cwnh/GG~kCۢk\`a/!$ۢ|߄fkdȺp>hۼE}~#`Epo ;?i A䂔g0ɿ c8>Ť!IՍM"ϲ'Ŷ~4g=|9+>7(yxqeāsu~5FқBv <֝)1R+sryh=vgނ{\Wgv.yPPu'hjjoiR9'Q@ /ưm8"c=Ĭ .`V{3QYZ4c_l+86}8|4ڢF~LOn^[gCh{I=t.AI2kyB7wfAic肢UI]mDe AQx{RIBR9ßqErqkN2OX E.-#K t V?9mk_E?ۮػZ>;d8r AWO%MQ^]ď,k#ÂnƚmGN;T^[b6`<^}LE$cMtSz$`nq]FF~'n+\iI'k9>x\9S9!ӶաLX~``$OabV:o*J$g^Sbfp\qmgW^՞4#ax|yo&\~7˾.$O=n7'RZ?򲙡y&r|7l&drx|>Q Х[jA484):'܍%%Qk .4w`n0l>xzi׬7qS|STFnjQ{P <㝷 }&xTi}J}U6OM2hHv-HZbίw><8zFxrb4Z@َP44ohl%c!6)jb.'}xCThwn):8D # Ɗ!cCŹ |M.Zur,ﲺX]|O pr].7 jQrW;[xL61 |\\Nn$4>mpZ~cx7E#Xgk}r{ܮyY9^{]C/Z,F !e^ɕ.ΤΡ)׶ʘJwYhvkxrCA []NUNݗ;z4Vn `_brg8Kp=¹wG+vsS:w!18mp``_w4FY-X3k/(qki=m[Ǘg*z]Oxog1mQ:݋$t~;s l|hqDm_?v2 MMY{;Kvrq Ă|o>\ `bxgo^ Nj WK;bs{ͰP{dR]8k]85R,mi7^ITU9p7|]luYdr8Fte ~ʼ# 2j ׍I,n;q+>PaH3G k璝ycWAI&nX}Y(l.%q j6 ӽ]/z 6iX8ue"Ks+Uy|l}_9f),xA;u|v=dd&8cEeݨk]W{!$Ca[S$rr$At;Kjiizz۟m{D~/-|L kENC&qc}g&b~3#m|эkgc2D7mJq!+$-\[z\V2on}VGY .ؼ޵p]Wv8㚍|荽ȳFlA+f&u7"2Ky;aܧ ϞSm^s弹7 5lwdg{Pٓ{n.΃z檨_ҐHy6tp1Pr=BINS χϒ,09) ǬÒ/3TX"r[Zcjv9^"R>noŜw;{ׂ&k)7Gn`MC Y _Q⡕7Wv-ޣ}a`)¨{^^:l+Yua0/T߃7c~>~n1cpR/~Kq٧,![SɵFlƕ/J8Huד)OA%6T+׷44xgqN%l\SV[FUxqGڽ))tL~ X$tE["A!݇C9CN ?SQd{۬SK-.fɜ@`4Fcaz?dy @nHnf^{fU;S4 ^hwϣ٣|ku;X;E}ܼa6a\w GFE;tN!͡(w)/vӱ B^@|O<ȱ[?7{-V~3bܡp`0v/ W?մqhpeXƏ,VfMR{fUo-t*>c3CtBANw-Ùޫ=Z)b;ڦ9;m&LU\alw;|.3,}ـb:]x F/~lh^~~[iqNޘͲi[^^Q/ M`}XgVDSCwC0xW:n\8 =msGezLZ.!zi5,"~ "&N'#4ؒ A >ހ#uIFDQp& >;p$ПHD_Q +L%AL"]dT8H|! B}!4iIqpGDTBi ~Ä` i "0<хaE`72!&Ā~A!?xdI$L'Kx+La>tHB H%XJr}|#3gh ݏ,PX~$ v%0a4d&ACa0"1{`B( " ʐg,`&D>!!!!zcÐ H](`ad2}aD䐻HAdA !xd2C쐐I?! " |A$|'P=S2S,KQEɏYфr$#f*a D"VF$&P'c6$A8L $aHx{l$V!+S$ﲵ̒Q#J OӢ ~t@$I$z@RH}^? ~%!i;$ф<)[p"I," .s XBM]y֏k /o/I3nں1+lNT׿ _^viAajҶ9 l^-}~Zc$h7*H^MF+,1QCQk$K?V_U]!B%d[Y<;aD=O+,[v!#?H|"RzU{x7IHK IyyupM&eXBc D'NCIN+ZE@Slӹehu!3,r# PSMp~ !A3ZTu3 .n`RCH2P%V=%)JMh-O C*féhVdMXWIG_Q0L,P]M}5242$z4  d\lC (Ȳm1M$Zz'(rzjbhPOHZU )+)jWTŢ.j);*TR PJ' TQDRDB0}10 KU/[U/# T8#̱9S0ziGԵ/@I}'_K#/IJ)Qt xM%ta`ʱuUPgRZ*C i]IƄ!Z,kWWSB0l&#G Ʌҵ/5^" EfzLG))nuk,ifrqi*!ƋD2&i:Ma=#s RjfUpjVU۹iOG0Re. <d1@EIQ9J-cs.#9M('jJyhu8p_1,*jv-5јi} E*j&_N5r]4B-Cgk)$ 2@QBOgl,AɄA!P Qv`KgpD݈%(@$>" aڦ0(l 1}LǶFŀEI%J`J03!Bd 4CBC"C"I>LO@{ |("10 5v)pKIX<$zl ,SGE~|sm_OKfPB{JXʠe׽mK’XUG;B!Ά܈`J7H)D?RH>HNĞ "2 #̍L[{X/=sS0qoᖵT;~UxPNȑRZRNTG1Üe?s;wW1scPgQ7,:VUcB-[S53ynkQg?ݰH{ ULO}37kG]*Y%WQo۱TvfbDj8B^j( ]Ī^G/0G_g5LV7߷uPΙIC_&}F3.F {4wUTi$,X/QwNәBKbYRl&u}~*\և&bByA# |x| Es]4;M,ɜ]&dcd,WԳ |&>W?)9>[3HW`0"_E$H8Ť(T> l_ d2"~S2%BoEG"xeέIY xџcsȀ+8$ ưC-3fTZbv|{h.g`< Cc+n刜뾂FOL]eNa2鲆 L ɐۆL{LT܊Ba(li@];JC [92d>ȹ "1Tqj 0,Q,cpZv)VZ1m3w0ؖ"ƾ·e:PU5ymEN!U(D]˱Rq_X;,Q.aC):zi!kfɌ/oEI z sY,%4/}6\{~F~y丗.56]7WQȥle Қ aE`o<}"zC!y_NRRKג'΀Z_ xLYAS}[1#sWLQ̻Ͱ2+RX"fw,y4fCϓx ㆄ@dNfaN?)} wa؁<=Wx{_nYad[AN>URRQu$%XJRQONSՒUEMYUXVCg2Be^ӷJkڕ]>;:dMVaN%X9[l !vɒ %-o1QpF@p`::4wX *zzba?O8S銄LT+HK  *K+95|'_~(I$5J *_#RE^zL$Ùǰ)\V#wb'csЯ~Kd6j U ↨]ܽ(課>_4!)F@m$!US2J"ƕn)w?"ej}G ?'ZltGLuKQM8xnZ1u؜y`F8S|(M^O-PͥjMkKh@NIN1od$)#,`#5RRhuɀܼVH{CNS;^kܷ+sY.1Fxjsg̠V¨l7ِ/Lv ɍyy}~~zz~~ʪʪ75@\^ufo|SZ2"`wVcWzB,ReETr[0fBh=Ђx.gF>Lwsbah,EPVD7Π8r% *'#oOXsGoAYi'Is9.~ހ[62lF=0Vl^]&oތGOc1C>ƉM'M@/K~)}T2s&E,'A<oa'p+SP0qYq}=2U鮣ݗy2Jc)l%e(ecfMe%0" 'G %)7t yq,hJOE6Ё?%D ?'_YO3&G |aArq=7pYnaİŖNI<ؚNӺJ~ݭHtSe4AOg茶h0 +ƍ$3=o<$iYTf/:ިc( hԟ#nOc ,{ln\{6b͖cCjO$ׇd!iIpSaL)76A?SWyΜC0\sw3Oxlf6BAZS]>{qbX n8e1Ny1.8zMrDh]P/PIJ Ĝ $C| 8"bPY'8F:rHYȿH& 狨 ~gٷ;2@x hvN ahc7&jM>8Q8cE$(F`B͐!yC3̧zn~(1C;-$;NsCtcs*8eٻ ݙT= M/vH~WRr|NEU |u>ٙ[s <ƂEÖ|0fjvuClj!CIgC,c,R; {|1??x4>8xN/~g/ zCh:P M!m?ڗ=P.'`s388Pxv9$yVbBǜ\sr]ܭMaNzA0=q{R߼T`dud@SBs|.؃mb9}IQ TNe*/@xHMl8VB_|Âz[qPr"G@K3bTr^F1Hɟ \p >1혇øR?ņ)?.ϫ%÷Hf̸hUX?!3:m;CZn. ||Nlnjv  Ku>AC+s-ԇqa !oN)>ؘp=oVgF!$|li1Q Ì p%Hp#g0^"ԫlGX)?5Q""쏆=JR t3G AI!C9ě/,ɋc]S=~;w vaalSأ OGs?è֍w㬐.% wgq ]Sr$˗}2쐴9ceuj{_.IA߈v(`yl]Lz 1j;;&Cp_tH[B&P%(>޸'T;<3>ZP·l9rA4_dwj:DRnKCܓ }jϿ3}K6(+CdD^%߰+7ȡQRN=:tLM`ErNI,"2"tbP2|[9䡐dm͔v涊˒k?1c KS  $*P$=} c3p>W|UEeEs<|k6"`|»+ X/vu+C&;c-BA}B\ M[AGuC?D}@?B5PB5nGjcHo=RȩУF~7/>[s[nt5+~CI&4ѐyh 5C0{i&Q6(zX 0n$$4G#9sŸ,=Ȟz 3_k7a"56}$Z``pٱȞ.['\|6c}߄wuBhC3]2_x~jQ!g+B3rLhG\,=i?]PF& zCŮ#s~q?2& l T =yxpSE$Ĥ㳅˜ >#bt xyF(?chuKK>7a\6=@vw]?<L4`>R pXo_!M1Gv*ɚ#GweGRT?EPDsFӰTǃ0JÁ̓x!Ngs/9c?)T*g9M~&$ߑCzޟ?~ Fe% $2@* /q f\Ϡ&<_$>1 ]')ygkRFt[3;l'dJW(lHߟ$ia@F%[5qy p:@𠠔}plR1 5㜁j{!~HA(C W8#k ?1#xj,?/?}`(Vfwf;DsQzrrFv*'f,! T<倠!6= D)=] \qb?{%:=ȧ14j x2"O{ZLWp TFкڡY>O#dXa xRۑVa(ȣ9~~ڟrXIwbdqY c& [G16=.ssTPI4Zb9)"e,hKD.#4&1<Ʀ,k <[kʋyh0 r(H() 71;4 EL a:HN9`x.G*Z Kᗞ!:c/O?lzFsWp=7!3A R^8b`R!/Ptu 4YGz`5tLEhb HSq.*Ov?s N74|g+#i9[>סc)c'Q3 0L'=! /$M{{3w@=ǖIя4praa!XmoC#OrSrbj8E?YݜE'.4f.*$fnMeH15Ațfa cMWhKLhrKCSF{C2\[rE37:+Tbl.Ϡ Qj98z5ҀhO'@gfa霐;dT2mxc"`vNX?4'@=;F_o:*0>(S6I޺8ӲL`NˢDyR MAyKz{1h7"Pf)_uv$W+E;TXb7eSNb}!>)iJCu06(yqq0o3CuّͤܚˎY 3_Niۗ!98/\oMpC0?}EI8_6mtL}A8g+0+\[nä(!\ iݍ^(!n9}Ѿ (Pl<>cC0)KLۀ ׎~_ }@/|mtS5+ oڴꟙAZM;/)?,aB"fsՐ'1}j11g:|zoNA|jIofx`A"{{&i9d?^CGT c} (g,٫ aSY1rL9Tp"7~ G!9`D'apS \ FI{7_[ݸ.`w?`*x+Fi (7ktc(x*ׄ ")dLm`X*;ףwTxH wu@}S }6:(j\S*ۓcibOHqzSp?cfdzvz.0P&T|o,׍ Q<:  :5,x"BSӄ!6HI eW{)r GO*<ޞx"z~*w X03>4ra+kuQM\`B%(-[T=5mq0^@hQ1\1(?$6H.أ 2Ÿ6gt)&a*Ÿl`D`.Sc_Ymn=(Hj -П#> r %E8nځ(z5AxoT3FpO7!/?neg/0GAkAv\}]$- Ǐ/ lV:̑s:|2g\{t+sAwk@x&LqɽfFw:942A9X?rpv9Ig*>!eM==a%_+ cZ0NΜS6w&>֍=a/8 (c??g*PS}s'֏]qObDNհs[:Ɯ w䦸 6ۋ<gNd+rg_QtNM8`ktGHr)lbG͘qHx3ↀfCL+ я{0偬:% *S̀XT(Ch1Wm@|y e?Ein4Ǹ{;~=(FPF?v=HU!QP@*pn3g Пxs(ߨd%6W\' `A?҈)#So&nCȌeߏ`AG:,j[(;#*ヵ=i Lh~1BKf8ڬLoC_@n{m쁷%);y%! $~yL#?\CP}(ǹl܄`M])S٠TXa!Dh><?kYZ@4p:!o{#n8-G_K"c,Ƙ8w&WNy:cS y >t| "g<;?o$~Ӌ9i?}=N}Gw?8~_%&~ Su/Q-NmkO $r I&ol\kM#S?/m 5߁򚯼!2&de5Aٝx2ꆤ@)G[i .`Qk*)3l2痨X ~\SLџ ?`nB@xEhgA-ƉP='n?/T/)S@{:3ջ d(6~&85qLOV:Fhi/s vTggӢe0$kS+N`3Bp0 :̏ɟ1QG$R"T!uP2EC J!5f{ {㥲& {t7_+U] ٘ !9ՒFБ֚|)wd=ni 5x&zi!r tQ~ڃa?8t<@f/V `/[y\nE>S/%iaM:X1z"}$#{N`DЃ ! :!@0E8:;>4> La;Q[z="$q/j\?L0Q=c QM6_E}B_[)ϞD~*~Ñ. &1sUne;u{^ K Er. 46ANh7q<%tp9}`dO&!Jp$GpJQJZ?Cvs)~czHr>adpJ*%A#8M=ƌnӀ31LBtM]ꇏ) Qq0c/(gd30* uGMX k 8["C4#m80YC'G#`ٚOsѨ!v: Oٙ[Na 6ݳLG2Ĕ>O؞3 "rO,a(v]hJX}d&jE $Iw'7nA05DlI@P,eY? y:cQHk3V7R![a?b&5RD/ *?b]`O #x9Er(;כRz˽c9Ԇs8񔿹KBY?ܴ3LidAlͩ2I#ue`6@lc9 W= h, 6q CL|8]Sz e.k˴8ikv_+ ID} ʰCh#.Oh܂֚_~hVK 7˞̴ƕSrX w9D.=-Qܰ6f $~ ,qP^{ot%; Dr)LuEږpk~3d POY^}pAf>iFj7'otdck<%&0]!h@L|}@&y1s7I x}!F, ³9&$ *BWg82Ї9:O)`q0$| dTwҒ ,k7=y4yêŠ;,DX-ABb+1JߢB %txirCnK_}Е^|=Q!#mBp PW&$GL2ԄZʲjtw aТ'sIfA=V͹ݳU4~8@YI9thg qH@7q^bK{bS 9JܑC633$z|=~'zBtz%}II )7_dԐ3cb](x>_pC r% XnFjw?0<:bPmTQRn:avs|U0kXO; G!%V$$P cpFx5 @#}2 G{M]za T~W3uKwyNja1y~A}xu (k V2|1ޮڃi8 aFDbhoQ4Gs:2Y꟰so>z=rlbOðmro+x(-CN %tKj1RA P9ֆ/mv#$2G|C2 X|Ei 5L1-鳰o VA+Xh0mmp@s/P&QxP1#juhtlF8`\âOhq³P; &!EJS1W1B!ϡ 7o wO A T:}*=e~gtha3GdH䌎Pqy$}ԗ?@҇e~;;(?B֨ɁX3rAҁ87K,ۏ{CJ%\摹+Ko$&Mφ2^+<`lr0f;$LI&/;*-Aw Q]/sIN}{3ud;AP3VvW Bu8Dl^5:T 9 pc1ȗ=?=3ltg C:DѸhYVof ! 2n2~[ĥéO%ƌ|'<}CH2p 91:W?_Mzoo]d}>9$mz. V83g}p`$,xuBpO50F}fe Gh]djiox fO6+.u涹 2=lFM230FYiōFo|<4@8^)ag׊|ck2}}L) 5͐3Ւ1blfɜɓ?C$I'XJ_}|Si Dh)Qcy| OFdR); aX><֡K8?Cwx?%7;$z#1Hb| d6BUS(Ӻަ Cpȡ a?˕_qHb0ed춣/o4{iؖe[Md >`: B3 밞,>/EsnԪPGΥd=yn۴ֽ?B;SuDz%!+‚6#PN}InФ >!YX̕vb ZC Wcwzrhϋexro8.&[8>3FST*aX(JTE MVc.6ܙ$乵qT`^:d<~+=J̘}G(R "dCm{\AGOH,UUPPK<};mG8'EL/豮E PqDFvN;+C.)x,.[ Aܨaw 0ʷ)V&`al@po] ;*.=qX?uykw9n< xz(?}HXTb*k963]J>jdRk}@֞oGONݍYzW4{l-MYDpψH6=BgQb#0eu"!>̫2!fb[ E#Wpj=spٵi[[$VNR: cgg~&P0pUcrf65]3JT$ЕBBޔrQ9fqM- 6n =;ɠ(r=jCҌW|O0ҞYy~KQ. cVj3)X O^.wKa@;|!MbJHٰ`ҭNin¤eSh=a!|V+{"?˨,rtFsgl?5֒Sԝʹ ElR@{S +p+J~ȃ]IlE{wqbKZl.w7^eP~}30ntI jBq*+9*Gڒ)zxpx)ʢ|p**ՔjYokJ|$.% fGNzF!P !)t4e :ʠUNJNOCsu1V'8jѫQ/?IVbf+s_X:/bh+ >2xl{'J29x8,KցJ.j/.Z^ zkSm ^DӔԣNoGXHURI1>[ ti2OV 1!?t5i@ç.CI^Q\Omd׹5_z?#ltEr t0n!19,_TOx%n/'κ 0a޴ ]4M ]XWJӆj" Q `Hʥ} ί8l{_a>#ԫ+ R V q:DV+ ūװ>v4#1CO~M~G"LqķJ=GylY๘OS%Pb Qܝ8Q:dSp'ʠf45|C=sNj_F]DsfI:D( GdoCш]hFaS?XN6nS|f$9U* Z( _ (%C͝E9m'I( b^.17^d` P^FhH=,:!HxXU:^.ݘ1 G.m5P @']ڙ Vm҉d } <23F2o «cɿm#gj)1$hm&/ӔQOOPTTUMJZqXU `ҥJda3H&PG<? *t{>Nfvg ag7ܝ̚j3eE¹| jB痨w$M<r`{ӖkD)OjlrXlBlQL~JŽ%OPD"@J.{fXy6͠;8#N G*sd{(f[ajr'uk*+Qo+lVꌹO|JH'/_tM/>]&2`;Q]!sX%BLlȻ,XF8-c}w Q%}~#hɉΐ**ɲܝ*}]ZpL_^&C`bNal{)z5`>S\OM6-LJV_o@J9NZݏ-9w@֊?E 9](>8!34VvžG⸾s@Z^ {X ;8 Ͳƒ6qo1 Q K2b8ǥ*侓xޜ7^Ȼ^~^9OK'6eqwguZpbFСvKyi&\[ک kla|%5<lS2|/.+w@|U40TҼ3x2 ެud.~nS-Z""BL8[pV*U>/9C"xh4kOyQKQF+Jתت$,6(ц'|b s}[X1S\aLm~ =BZ#! $=40Ew|w]N[48Wa\qo& }~0ǢRnFbLuBj^L.,!Xqtky\{MsJVL/4i[hI}OL$ 0rtuG;m v fbbV͐K*vqU*J]WT(;ȒK.}pﳼiJL3,'*i~w?ֹq ൗ7"ˏ~\*} jV*UVXX,,Z_2q *\!"6)*~ry/c֎`PJX*qUk7o_<8R?Tjfmd}h?^is]Q}> بoH . Y_ /8d'Yhg[&;w-hKh\{;瞗ӭÆ/)n*9^3 #5s3߿s?)X3A?},L~^t[W)bڱcZ_ќ}{LVkFA\Wz2K-Qb8Q"I2žY!=F 膚ּکd9~x1 c>$6Ak:}*b

ï{>kZ&/J/#\)lJJDL{E/8{ F?C "h77{mSIԝnY,QTQ/ ؽRZFܘ+#v3hQ#[q+ۀ,dMABSP$!V ! Ndv I IK!%K&XKĂmdBo@tsBnBrc.d%v˫hͭAc #R\6`0bbرc+c5#Bhl* Tw$LCM#J(CsDb*r$ɎЄ$Td5 L־Փ>tD'AQz!  L½C;I1 A ʖZP+,fWܼ^ֳ'%b$IJ ACbVػokHIM)0Z_z #{f}47ǘK'{f.=VɬĈOLD1')QEw>+,q @ۥcxYR #STeЍHu3fJEx5YuѥFUxy:WX*$bzR,JQ%N&NU 9<888>zI9"qQ#Xȡ@dsd`*lHVfBA 0 3, !*`I^2uEY!za 8l$ a2[`ڰ_[JDQXBCA,#2)kH;쐋$8&B0$\$WY l:,>&H#d|o)exeu,L)7`3\?s0OX刟 jʾkc+bʯJIQ l!}*t0|珻/TOBA 1XJKJDm};jp݌o)wr/mZGdX@_fQIkVR, 0x_]#`Z"oʘ|juчWJJ]H;y|2[6md$y$z TF-IZzc"D!d˄z5C|xڙ=X84UJwpo&"^ȗ>XW4yb\OĒO0)le3+wwHt<ߗU6#+?Z+ Dyk>iR8$Ja`+Rb`qGFsњx:50V\)9pEr7!go`?L~>I|p%n8>. b4 + f ~35$oѦ_3QyHYUH>(AѴ;h $ e#+<'hmvf3y?břcw`_C ӾC>{g{Eײbb<*?K,NwxȨN j%|r_>w^ʺi׾_u7$A]mg8-"w*( <2ڏ1UU 8"!6K?MrnT m»,TRQ`_UQ+rcKrLEPPRN =xReHB.Ϊ˛9SZa\i>G[C1(b0T;S!v;NKż62Gb81Mg93s  02rNar\LS 8+%D#hpxJqsKfM6AGyS]h맹 ;R*<]0Q1D@,VHӇoׇ0SmIŘSV@j_2ŚPTǬ[U$m7q0r{ u9: p^, yG18R ]ܮQB07"[q'$YIrj>5>>$1dgzp&;~94A @EBǃVU1(T; U V,%;8Uì: CfT,!\;63%\L%UO9Tf̖EL< I0)*18NaC+Ի}vBeě9yv4/ Ⱚ rdWq:r /Յ+m%%qc$\(e7ocǗLdXvAa ,i'$jxV&Hs/Z/U1DbiwS# pp g &ӅP?tW@(m݌uߍF?#,^'%{;}ghQ7pb=ÊBP :1z3O!gpe<4ӆL"ܭsf>%a,kO!H`%H._C$>%rD|IdH݄YQ3>>%$3 N<"8p8E|mIENS>3g{$| Qp"15%%"•IT%LSAY:* X5B}q!]^rE"iTxBـjm;3qtOt>TŲ7lV"0̑20&C A0a5  Ðn,Fle E%D(%H$70IwcWph2g':}Q+'V0: {?/v0^]bkKC L#emmC0O. rǓL2?kO03(F O>a4 ('맴IW1(#_cE=g˜)Q)9!]NܓFAڏ]Àa|,ԦX7R&)|xX" :n^&>;\PƐ`ĀDH"ǔbX,Z-U L"q:u*ǀZ.; ūp^/0b&X}dOx\/֖շUdG#nj6qr jd*c$VZ2%dVscYnէLLQ1!Q ? B$U-NDȸ9T:~Pnu11'x:0XZM|~{>;kTPt ̒y[Y r\&wJ x\A lR{IS"JgDa˂LaR/r$rdBF*/cer2\pa_~q? 'p }zJ* $>`l7~0Ql9b7o[5H["Z mjkm^ `9.Pg_Cɑ #1{hNH\/iDH1-a ob8KP)cM x7m#×wb1r.W/: `T[iq UHʘC} kHk-C#|KRtx !sj*Yuo{FĶ1A- }DIJ$s b1CkpQ]Oh\؆ bZM[$Ǚ^ Q1>a AX1id G߇¶ ¿2^DX0QddDc%8D6*4V2 nFIW']PFi*ۈyLE񑨊3#s "1c"؇Gpߣ=ERD) c,eJ9c) 尩w`cE9}c/+ :?2EN|j @;a+ˌGP!Ќi2<94P)[7²Ss\dmg/U`9Fx H&e8wLi9#COQi )'4>dUHz>"iYi&L1P`e{ A"ܱ0+63Acy-ս"Cd9PTITҊʪ%%ZR'wQ.dȹ+7u2B2K]pW@QqLø- < gP;#S1`A#S&YC&2l9%JZp3jeXeNW%1EM6#0\';1rqÿI>^6Q (C2-w# %`bN*#W r氃`6$)'t%g 5&ϔ9Wp J %ǃ9O_/oӕ]yڜ =u[̽7U,PV*c Y]wW_Q@0zO~4פ#s(U\.zcI{-DO C'93&Bd0gHڈ22Nna%Q>^bJfk(VɇIx4ĥ2!:r /11+ղ>-oj)ZE= k16,DEe/ljY`ԩRMV:kGpX!>feD!JDUe=kPKyRALJq\;)ޕSgS'_ęfX !<1~ cy AzQLÙ iØ0&Q((o1|ԯ5C}[ 9N} } W>ERi,2ٻ'e1_(0ϗ! rKp{s 890<9A H0pdFL8A>L,}Yw$R\P9U(ILRE"ŞY,UI?#Rؤۜ[0uǰj}ddF˰a0=x@Xu KO7)a a!80E1=x9ɐE}3}PՉS {2Ozœe(*ΤV'Gܫ-#?sg/VK,&y`ht{Ń"]=ZX{*6}#WÈxAA O~;vOP*Ž($$F\awDŅr(rЙ;AdOёxm'2G9͏+Z)bj3yfH4 "饂C̈la(;<$StFO煾90_U'CtCc~WWB0Y3ׇON۬|=FM(_4AГr߾2GBDs%b {odբ"bS",:,"]i%*8s I<{OI1֊`j~覨`W',DfqG(IE PlZ%ńnBOTeDJC/a37=_L\ ){ٕ!u(өQ1b A{p>A3( F0=X}*~:ş>#dED]JO4F>)1$@[\e(B'ؐo>}f%@pa #} 0L9iK7Q́ɅUۀɂWVO&^A.5bLOe X˩P?m$'rb&12Ě 9&d1Y,g?RUT)0yLo*a-4łqz~B@A9˱ayX;OR7-.9sS,k٥Y#JL02 ZsnA ;/8L #2C m&%[OBe|1r(@Y\07 P<$##&eDrJer; 9SҦ'81?@ܻy9V2elf@ 49)Sc,"P bBE(L2,d#$"vRB(,[IH(,JJI$Y  Q XODzZC $Y ,sd(Io%2HL4X  AV(dX*@SY $(@IE$X HT@Kc!D*)"Y"/(T2( % ,$PXE)"))ɆS XAd?Pa( 2 H,)ZdR)uH(H%~-R ȰABE aRR,PlL",E'Y ~ #@b2,QLP!Db"(JaHI)PI]P E$XYE dER#)4FEE",PP QdH@Y$HJa@QZ (m"JH4ffa ԡ@$EJ,$m T<920X &O8 V;(DrAaB?ՙhLt Ӝˍdf- r36t}0' *?v^wF)pI&9a8 MDzИc9uup93 UU<l -paJ NK:I+Z"مx <2`C"6#㮵;DdmBtR#LMWV()8л75`19DW!4;dq8ռd%W(e"  >[8BŌO썙m|B2vNY\atCate:6{O dmp}A:gNxJqfa99(N3p__F aVjP s,d,j6ׯVXd2fТ ѪA%+`ή8J3 *ڭpaqGO {Ne|jqLcҹO3'Fhs?wS}?⠏;dtoZ-zhd| =wi\j&f 2 DfnAFθղ1IK$od,w%ߏFDf-_럊!v8>SfVE8K20%-tF Bq=nNEkqUg)dD|BU$+ي @`'&y"IU)a/rXK]ݏM] d͢4FbPҙcoӛ[ xkƍ0>N>%+ *$-qcR\aLˆ@8mWd8KsrkHk84SGbblxf!.f6Ħ*%p2"N&3x#ZƱ-!U\%Zc\Ɉ-F͉9ޭ~';>M\<{<\Ni$D1bİZl/1^Xa+HrW ] 4~ UaV%\b|BX# "#t7qsqU}%aEejv% TO )hxGUPr:rkG#!q8Ȧ0%%*kƝIOx~:EKġpL .raӅ:P'1LS'M5|#gM"s W9S^&WEa(;ϱg TC4trATvsXN~k|KWm?ұƝ;K{ܽwc*/(d^gm& &!M@L+kEӵü 7B 9O܂by4j}NFϽ*wL$|p)ȧՒ)6/D%|9)p$ΆLd2+r{S m-DμslЇ܉b?1.ieJqeqCWnrDY`0.b/ xxָ6, y`XLY OlIr*lO` ) RU_Eb)ȄÜI(9KșLsx?~0` 0`tbE% HX(Yum\Ksp^HĽRT~y=IlSY+V51gƊg d @;p^űW`)dnS#ЊgԔ&~a3 (I22@Ҟf ~rmzr ~9>y- &[V9i8Aa\ 녡e*H']>w1\ՄW>?diP(ޒBUضSG/&3ݳJJQ~/Zq%Ry%S;/Y30cdWto 2b ]zrD 紶#)2]hpγi(6'i]OV-] "24fܐrMO~Mp3.LTfeMȮ4P!ͮwrτ-$·d8O{vxX -* na{nB6%녵bhد+1\F꼕m`lJH),$Gd<OPy]?ɘB[3?,kKa(/#d?ey3Mŷv^9S{8}ǀFh2h?KpxOJ:=jbp3.rq5ƞ\Ts0fYZUO#ݖI_BL ?rp:t [H]y>`W]!u-Uj)s?"@N")?V!?]u?ev!Z']@n\'gnYKX >2c)V8P T!kALX"UT$V`~7a)N d}H0<ɷG*ܚE}k z)SmEF;vz֓Ĥ>=ges15\v:AXԡ#1naQmϤ@܈\yKQK}#Ceɂa/'.&Nb |KUL  }<'`b3 }( I2IPER#qKb`x +X&*q a5;<#/ w|I汣6h5۟;8JqزUZwO5cd`o GW}\_EP.s EӫE")"H#UF{@VX!*)C)'eQ"aDO\O,W2aDs$ps^)Ho$HĚǍB8ap0>&DMɖ">s']'2&EexL illPYyڑyNFZ<E2vO'K=񸼽!y4>J sGrwJM%aD7' 0,5&|dQ/ Ɂb)҃e(y=U㔗!G*"(Nxy1WaDS`?ՆO8.v7[S|6bCTl? .RA !^@zBJ(s1PDDָpulVgJ qOEdGx?8d|0W91xKJ \[YT&4LB}+r1IL<7b@ I"\x 8Qrx >hROz>;~f]v2  uƵ K'm6?=vi5 APe Z ѐ!:t,ґH})Bc%hjX.\8WuгO9S"2' pLs BCdDa8 H@Q fX^XzRU z'$(;Af 5D7r 'M(gAyH2s )q%3TO{ThODzqq|+=>hw7đ'@w^O}J:֥7]T^ua8}<+~bbCeljB<=x[_J к`3gA)- =mFIq'QH8mYbk Po0첃0 V⵸U, kTbϪ >+^7`X]]*4Hy&͸:vӉSll'/R5I%y1 9y 5J p\UϚR< (G&41?9!ڣd2pߌW]u\:0Bhl5Vֽ+_`NtArT'|sGdY lkUqOX|!V`PHl,Q/-Y%KujOWg Mjo5ˮ0>Q)*+NH .l:Rn%‡{L&>հ@V+HapZKߗDxNg^d' z}c/{b0mBӇձjq33XJR^6īMv/G~uۘ!w. 8~'g0Xx%N @ߗj%u=BG*"Bul:A36e RH4@4;$@ $g&6"k;)/;ٗ /2YPL>GL`"b e`+j: a}YNGFEqI3ptb\R]'>鯬t4^l jDFr"VGw痽 cV;|[8c60چBq}sHRtʅ{_Al+XbveTjOLpg{:Sn!S,)_.lZ7HTn&Z\I-'ɿ%v*l+G~{*:2G<*IkA y[xC MX7>`(mi:[Uɫ{h|r##1"+¢ iq@x\mw4Q eCכ-m2t|rQ0~ۑH|ߨR)8u~'^(SMF'1t=%csU./j8[G/= uO^PQٔEy;b@RU&H8G3ɾU:둻(HyХ9n4Dt>倦RXd-p 1.^a^]ѡur>xov>cTax<eBޥK! QB,2JzVvX_g' = (>8f+G뇣cB B2x~!;12Mhntk'4YDcƈ܈ ZAnJMVff3*UUU*7?S'>HvbY'Rd,K*$Qly٤x6J-`TTIrmS{RtqmP6MMGЈ%%pXR]㡈̻|R:464lmm\^Gg''!&la*n97&%]mF%WW#M1b~ Qm5G]2A<CZr_5/588888888888888888888888888888888888888888888888j H]H$\\9\8Js>ddMqI{:*ߩ[X7xjRXQ~QW5A&ydzܳ:z9w>8Mt鵧>>>4-I%ޢ#TSͷ[F*mGeEe"rlp[VOXo(((\ՑYiԥVj']qz8IWXǑ[inZlNHtGh阤Zkd'4Mj<Rrc+IG'kWZ (몦'&ؕUԳMܠjRj,yT++-O>K REܢom31D b h-7H)-.?OMY6>'ČzHi Gp_vԫtN#f8yС?~4=˸*lv{;+1d@Z9,l/J~H}*9y RMX x t6}w̔ ~ӹ]^WL_\th&8^h}_lQ+W3\,NpRL7W!USX\ctYu"w̺NB5MizS-9 = .d, d[ʂa7'vTaWZc_P h6 `4_>6]|e v\_mstmo0>ǝ`,ɛKԭnEv6):eBf3f͜9G,L  T  H+ɗƉa z[3Eu`߼!; pv[ViTppTmkЀ5/`lr z#N;0l¿UUa6+L0⅁!gO+np::XKd |V@kBuL& Т1:gDA%_Cߣ5P;o1Ph؄i28jκDƄ|!nH6ݼ42AEE)VUEUSRZbrXJ))3.x3D)Y|~YrRA[+ ص DHxpJ{^|EӋ*'fz9IB*>sDmc'\IoU( r9'T']EKb]M1m~=]9~ 5q;!G}WLWE cJ΂gWgȌ;'C'?wg1޻y@Mwci)" : ^F ZXұ$GH,'~yzɤZ-w4LIL<ݙ`MbB0v$:D#w57嵑ٜӥQކ7OLv2`V%AdyA wg(s#o;PC! .7CU vc= kW5zP8$7鎸#O@Ւ!H_u6LU ۓ$a" 2iBt +2l = UB Lf`~18a"'= 8D.\/3H;O+wc$tVv>>GXb"QV~)G9XsQ3&hf3͛6k[ c{X|+Sy:SD];;)<d}T? Òytsq)C: ;ua-dx`}!}؏WGURDhosD]NV$rd|a /+ᐷU G `YLcHWn9E6j|=7v\]JD_ޫ5`15^z4O2w׀@ kc91MjxZX3؞Ǔ+эRvb{XD tw*PJ4&5x(aݚXqwGfOYTݤeir;>wPa (`d?/bm^FB1Rdh? H~!jPe6zFƂ2[X&h'/G~2|( }[O'+`Ay0շCQk\9ST}SQPIzd ҩK}rHʤQDz@{~Zm E񮥤Р,*a-fVѡT1=J`vȗ~g˜2Bl܋j.zowrlcs/WGXžYVNl$;$?TZ4mb`&f;gzgUhŪ ֜ęn7.K1:Z0E;|l6I󻾤t=wk&<׷Fq'Z a Bq8H EojիLbZՎ۔Lf:6hҸ!M?zХU}>" MZv @@1P\RMKWt{ɦOzL52g 1-mꘫvT{Bz8HcVy#|@6>JF\y~IV'\G#@"Snucs<{Nm)=WS_}ocYcZft.yql\/K_wk )d=ti(vK)R!n;F'cE`}?xfCiPFH椬q} t!~gfdE d9-r]vLN!Qƫf07͐ EPraK8=}a%%0n׊؋`T 21m8T6Gٴ)DOtM͏[Ƹga}ikGH7/ <yggggCga#ggtow~ (PB ߨZBDq~ K(MCZ$gjP))4*[a&8C{~G91Oi%q '_#2qhN-t{ϊN]fmaC7g C g/ܸ6j踡Mǧz-]\>2_npe݄4Qd:#,G\ X$bYf ֕J䄡vEI&rIH^u~TxbQՖFZb["p#f])>9[ΦzPx'q0Z\T) dh*T0Gd%\MjzlF̤ߦ5?U A4A2U%X~A{rӣ/\2*Snn`=Nx3#fB")] Ɔxdm}m,ye0R.zyF;k_WfԚg^tBveQ󕙿]ҏ؏EX5U)!lZȤ)W-9=̀֨r5#_}lYi̡_ И)(ܞKYLN>G!v,D]{{L 2_CQtf]*\zR3G?Z=Ea+St|܈XȬ0"kFbjEu]q*A{2mf͠ȐâS@}wg*!V_BE>U)wK$j²o'${g6:l}nˣh2}}SS"?hYyCrD;N6<$ωሾ `T& ~K#v(.BT5 DK5͒7/œFBt!Eo*L9}שBS_2Pf6}KeH(1w"'Gޑ|~6GUN:)b*&XxxpGѮ\\B#20ȗ0LS& sꏻ1BGnQ YH(o Hz:[J5 u MnⷰXb>hoӞ?~e3rlu5DHnuR\%m !"P(fJm!v#B^/Rkf;!?ݱ (ҩ6; 53;6wKk4O~[V?uݗK.6r:ʹ;atdӐ*/a9`t2n5i7!W$t'.]G10,|B5DL4ьGԛS/&T#ae5X1LG2=C앟BXMѤUL`]o}?_q1Rrf*Vi  g|4hʮvɇ,ܶc` WS.Sd}{ wu֩k'|dDj,m V1,)"-c>cI9 5ll {'%Nr׈{ױ 2bިd}Ltkۘ&SӔck/K2eo9y礓O3`h<獨ѪUoLy;0ƃt~M9A%8AQhpߵ)j *P =cd$:mri<#L2 O1#ѱ/9.8Eދܞ ƨt;bA D#*UU֑3bxd3/@'B@H$BD^A>r{yp'S2ڍ~U ]3Eijؾu ]) [ +l=[@wQNM[PP'pV@, h§?5Sc3<8C-&qkQḺDƺˁ: 5T񍭀tTaQhK*V՟&9RhX i߲ $<ݳѶAQVo^}[Gkšov1QůY!Hw' [:q45_:2V@5ݺ &jE0eP ×&Y n TmI/t`Z!Sq ^d.'qӯceZ مc),qc1m0 6+bj}\ˢL:]RL_='p+ #!Q J~И]E#kzhQvߺZvi/[2wO5}ڌxiEI8^xCZxHs19lLőΎUdD3krͣ[F͈P[†dtgW)xҩd+ f~'!Em9!+Z]n1cms>PŻ;^?)p[7(korcw#{Tb߽R:}j%QyYrtO5QY?lʈWy+ΈOъB8 pJyxTWIm9"J>/u&2GH߁Dny_JϰhtPy}p~D7XX`  3$N1b1ʌ ɕs26c6c8ʶۀ,oѲn,T'3օ[r񽥝]^VVt\e>&± JZ`jڴo@`Tڼl^UQe3T5K;SY.#˷ ]!QV@{:竄v c2 N;יLKs`=t!,%eɫУ|⡍fHݫ b4wϷrhk IauҴy!Iွ502Vfm` @`0+uS^B\250d,#0B I I0ɑ @S̒f0Mډ_O0z1{$hdBacNF0?a8D ,`=C,' (UCAI'P OZвD T3h}h$9Z'"HiVCSL(Oa!>i3ڀRI܁~J0"`A'pl!1&'YH[$)!0)wRkX2A$q2с<`FA 9@b|8X(fxxZs1`be9 2f3f @F !IC&?T$hOa0[ >!Ɔ}Ii?YD u$6ϯd>왴‰؟q,aBfOס-$ ~tz&R`S0F0M atY! ^NVon5+)$k LP@Iq2- Z:?jD!}!B|>H|$ x0>!`}!0)"BaiL1. ~ 6D7Lӱ}*FGH'2&V{ƿ?zo¨THf fRIz0 '>i 0?F H~`~g(?|'Oa&d?a$> (@Ih?`S e|Jܖd>?¢,C >, eZ@:|[ _O`#}N,)-$) d@^!} ?Pΰ@~5PB~F1`-!z_ם>_N1Wy[~N˪wh9Q+ VkF1K3326+2Ă0Z HC# y]c`n{BڻR+')Vmڋ'Y*/d8[ZJgЂB/v ӂSg<*0rFq_*T2Al Keh,XWani 'àx^Q}yڮ.؊ՉwZ.6%AQZ2f- DlA6#tZ1JڝtO".M*tApMx #ٵQaCc$ y8s-%TuX;B%h5} ʯL6F<˱$^}3QQUJ/S/Cqܝc1{<+Z< KeS}'F<,Sdnf^@f[x@j&L[ ĚIԍ&] e"\JCh羑YEV(~m9n4Aۚlؘh~o0\:-wȻN9zfıL&M. Ťŋ WBnL&HDwPUr[ Zdi\^i^e{A64XXM$09\ePF 2 sUFOӁ= >!~FRdB_Su53mC4xȧsq F~Թx1+7$L0 xJ3c#y1PEȽϛ ZLKhWpbjNϠXX /jK+#4.︹B( | o'qb,ن-YFw"6AjJX!pʭ;˻R'6Kn/.I CIJUuaQ}QRz*j'+a6$P[m-u} ͗VLh!ҩܪ1IeQ'0j;Z>戗.7CR|/%=45Ȥ!]t9U54r\AdECCjkJՎdC/HƗu ?0CW []GEGm'7Ū*L(>hM<<3^*OSg09PrUDhܴCxTzɖ+qWm%^@P| c 1yudוS7]ӱ «C/7TNͷ}^!Ϊ4Q $_W|7D 1fiƇ?zi[ָ?oWRH41,*UFtV `c5V VK Aŏˌ7XX"d:qն-p8W/R,/"-k}DLH\2|Nl )kW`9ju!SL9On iuQ#xV X&%DCY)V+ukL`O5  ;*ac4Juy5Ӡ>hm߉ih8<㷥ޓO(X[T1js1cH1b(рGօ96ќӿ}Gܸ6ҡ|&楪!^kp cTF=_~[,$ eA/$7OE mݛƈO[p?DsdTQߙw( ~!* ( L0tnhuͼ(f͓# iP(MIԆ)ѶOJ{FXdo6tXdMքu8Ԗ^ʴ+%jn{^UL։.)һ.iאVr!%'N/ǚ # )WkQL6!XϿANHϥzɸ䅰6f+O}M}Z4i=dgua>0۩| _/J):t}{ ƅH͜ HlٳfեlZVּ!>UZ+`rccvN$K(wYӷCݬ_NP65UͰ$ԯ`FQ4 HAИ7Mٞ؝\;ğn]<;?d;hɜ$vӳBŠfo*(ớgޫv>feΊcu}3?2$Զ׽4/Asos~B{QZVW&QC&6eq\6+dK-z1dأ禚#,u0$wj8L+U{qqq/Yh1qUQ&c)|Gćt{s$,V>.hG1.J Bˏ8the~grizRYOg1c+kߛ^,WC^k8^泦NO@ C+f?50xK{!1]r˝M5n "6Lt{qj8虽ϔ@ D%F|za>Pq"j]P[(Pkukjsa3[v=|!D^K܉Iw_6yqSxb8)҅F.Z2(LBJTpROʕ?/`9f H3 "'e} ʤL*K{5zYTd=MC.FT G"Q@S(`11  a6ѐ.Opv7IYS87&i>_ܕ=>%{17V<7Q|=L[ n$eY-L/A7wjuzW`,NE k]/u >Kzx49 GUlNήb8vYW܉:C.ƜR~wz@ #%rC`?uVL:8%c<(%@M%oz[&yGwgݚգ B@ pKVrŋE1s"qdd2z$eM彩H,~xf#>Yj@m,V9`ق k+`L b9Jz+ t@H..盞=Hvv_ C)+猏qGi*rp b}]k*wYۺAwV# ,l?0R9O %g _οբ\7qwUsi5@o]Ssǫm Iq5 396;2%3X FINa<3!0kIxD*#>AOK:RXA;*Y-.(7gEo qV{/"c0~ T- O!`aXhV ٍkO&M Vbh {tunrQ&&>fɾzX:K# Ta?:G E:sW/S`x0n^EqoU{طX|ڴ6ԸZفah38etܰm P*iB"UQ•D)XY݆_=bEZ|ԾRLx*cHvh1*CaTd]ՄB%o'ج<Bcop-㋆wf@Jӫ d=_z7d}ӿgP.D $Xҁ)YKoE:}3#g Ut|$/S9 80u_q' ~D"jܴUzBU*剳K Vf_[7 ih `5y\z)N}V”i3Ǥsd_t[Y <h}y>1i93:Cxu;ף.\k' ^&W \/bŪ<)pEok_pX);j\a˱hBBT?Я7=Um8)qAz7 zHI [ᑽN5>qfl9/{y6GQλ$lcJ[X<]X۪ѫd14SS]ult\͊骎@ s }[HaKXlo

k_b_?!*;:'^ckSSTǰ Pgg?ZEdB9ßhb䋵P3f=Aee\o .˹:/Z >O}ZdWenfa燘]% ~Zn2U"pAxv!bo/j BY^B1π^~g{F ڍiiV]?M2ik/u;7'muu97ɁJvGzgލ`NH^Z,K6hYPO'NYDa Kd Civ ft9Y1(:l~η2zF,f-*rp~L&H=% ZQ2euTReʊŗK:5{#BFWE76̛ ոy׋巯<5hVV$| J A9p0 f0cTThg}n${5{>Sme+$FTLTzv&OO' HB@u31_CN*04 ׽FaMAd&-XUF:+ O =M]\r^%Mͽ %(շ=_wϱ,0d wb-'}'wC;>'hhz??לorzo''iy|yt|NKE2 ᅨ^_FǏM$88/Ы,'fbL}Zti(t̓Tqbiyڞ~Xvz^p1ecN&\5 -Yw\.0c6laT!/<7&sۙ+@o@ԹGk^q ^)OZ<ʹ>sf#otuԗhl1ڋׯyv'SU|ͬL'E>lcUI9G ssͮta=#o Ŀy7}U7o]ƴYWyF ܉ kU>=Yݨ 4|tuQky"1NpXmo;ڰ5>;붱dzz(5$2-;t*wL^;re_[[*T߷a68&јnT 7Rfz[GuT&ylm'MHN JuHC BB)H=(Gi(5o{cJ9>/9͉f$cU*©TD@Ċ&"owFJ:FerWzkT:}JF0b$fԺi3i^Tk[2Y0M ~ L12Z{ItI&Yj3镕LtYTֺM?ʙ D?E"!Z8I$4b_PWuH{`!/Fo{xxjXnA;TwC\{~'?8YӶ繃\WT!<+ڢp .{ ݄`tNu#F ^m3X.&v:b<G4k*L8Ʊ#Sk'={ٹ}ĔkV .f}6&A^2k7C&v w2z}DPT9OI3y_i^Dl EFU7Y"CYC}ht وCe/]]Z4X-&N8jKZG, I _N핉Mya=1k98qteע>le N# )c; *q:q)jp]Dfb"}on|%Ȼh"?$I7ĬgNy?esVUw|O:mq2 ):`"jk3/(kyر^ůwiОUb=QC] $OR̅*Jqˊ}A!\atrLqN2g MȖ|I4_"D* {e Pi5̹*|>K!Kj^s.%?6Bb>mxͮˢ7H_:>Ep[kGbAoA{WLq*4Pyݬ uqU/XVmTz(ѻC%D b0=~ai.];CL|}J;8$o偳YzbͥϽc=i,eH"P9ϕ54%YU6UaP+JP'V+N *!Pv{d9shHB:S)yIMkXAq{1c'SRስl'X*+cӱۧkF4Ӳ@-\?>Q_Lp*c/ʼ5ؓ|#ZxT kŗccQ"eo* ^sVeeYGvZ񖣁ƨ,_<-mYrkZzdؙa#-wc;iZvWkWk<+_:c砹ma'(?& J8D] &w(]^?/!̋}ruHiOnK;ˬk  uf,T3}^,,ef_,D0," ij(uD筙I\=׆>v_rgԉK$;kWװ*{op0` ,G.'l}:5+] '*ЬOQRRR5 Vlzlby9T=JN32Q-un 7KF{I'i/ҶJl'H. ϸ avia{V?ᨠ:pͥzC@r졪bI}b `iYE9$JtŇ- wcJDޗ-ܐuqcMA>Vf1@:JJ Ó j>q K̎@G10_aSmg| ?SPauD=Y|_?]ǟ{3Ԫl[resٴ_5 0Ly?z^Cc.ͭ.O-w鎢5e4xq`_xwp80*=c/I>Lo#7wT5(f>F,%ܔ؇D,AJ)`{|9L7m`s-i .o(?Cq)A$Tg;m`;-FȳA˔:BC^}-\vr _[c5A? hOvYDs>K{W|a{OJﯹ6zȣM )]SU/zCl)v)lύ}27K 㪅D~?6Đ[G?Hm;f梭|f; wf kƓϱDu&c{]j 7ar%FN}^*Lܿ/DsMl2Z_듚- .;*2Ys/Egg!RdD| ̇U%y[پxZ9Fܽ &`77~>PGŝޜ^p\2ܵ}3Eh+)G,|[5to,tU6<*UQ/dl<"v &'~cg. 2IhL.0xR7~7:+"~[tm監K}*Gd@Y&{ pVY|zJ9WzhM[xWO3``[K7?TQgm] C<9gq$_i ׾|F_N.ۿZibF8 &o͎dwV9 Qxm;#Բ~71f0,5vx]*4Ù:C0'u22llp:-v.ώ$Vq.hj=rK~) wַOcx[II4NS a.r Puz*|JxmTh vɣ2t i21[:^~)9;{#tqy08G Ǒt '<9JDo]jhx]7#a!67] ދX]V󤷴Mj[#Y:3P蛍/Ȍ7=p|hO7T1؜Xգ*GK6en?6 rOFP'{&A'PXEwzc|֮ E^v(Q;9kx>Z G>zE쎏f8}hNKs#g y=8v# Sxj>vAuN|E秸@Xz&FrKq9T̳..o,\l b65t 'e2p 'Ɋ_{͝Ah&4v0fDŞ?y6+8)X^WyH7 ({OCp&AM%ѩ^ q"CLb{y\lm/ߋܟKb݈I#dש;[+c9Gijpd} T 5߭At]M7Kol٭3e^h0cn=alX6mDGc{ÿ(zS+׹=S6/ic%EXD-1ѷ<:dX< \Z}I :Y6ۮo3ěf뾖WLc~ Fu4#v s7& ð4q٤_y'M ( ,HujսtM~ }BĔ`v>{-ȖGoR90M"vN>bdv;4+jq];](Uķ6! 2*E:ykT\t=N܇Y]宗&I% )Y mv2H7~ CE\bJ^|+/ۭ<[--w F=.pL`jk68 <偬TX"pr<^_+[TBP jz;|~%4J%Hcݦl0Lu\,Yi+W\:i$:P[ Jޯ9Uo2>]iMgsX4Y*{O1+,k!ylM-uGntǛVyI08<-"k,K)gxax%@8O,!qs Kؼ[m Kb՜/pZIەEf}2?W=&=ގ^Brٽb.ŪFy{#b`-A߯C8_]b=N&y{mɾAA!5qSpԑRH_7fnרj$hiz{~Ŵ"zp/ZNRˏV)4­Y~`7w[C31 pp2G_CϮu"{-oٺ>sIj~>9 #t|kwF4/ 'U:0oDH!|(;NcOLh'Uj1QWz"OT652 *!YANPSa(v]kÃ;A;z-+J.y:⍢+iW*%Ku;m]X* KځQ[i9MoEPFn=pCVfb5/3RbzLNHKNPZhۮ2*WM3L&h]v`KZ)ڧf հ5\L}ňx ua(ω>~ty {!`- } Έ&opmÅěcO'6A)0_J_F\^:}&*돝JZ >yV4 -$N>"[Ҷj)n>}wMXca!/~?j|}#4W+LT'!ӶB][W o3~O@lL𹈘ez F8iF&0_*-ٸL('{7t q,qŁEns޴ǒcC)))*ʙ~ -/y*`h9jMЯ= /Uw>2r&`ޅ 1fr|:P͞A|3X>-F%Sduas,wi!*n.d;*иPf@)2,@T1gLX k᏾eXֻ5$&{Hl+i﫻2:``{u>xkJ@Ō12dfeW RWzc W}xVƜhKsfI'q򸏽$t&Yñ|(m8@Nlg^c@'i{{22G^ʊ- L䊸W? Kütқ~"BEvfΣZR`b8Bsu ^G9kRbawXjJb Yx&_(" #a2 C1{dD߉i]8tyaVgEf|>Tt:\P2=QqaN>l_NKL]{df3݈|uD q;aG+ǏdVTB`/ ,|O^Mź'cm{kOH@FY44 Z̕nHZZrkot W n1֙j.F 8kVR32x36?juO)ٓ0)B/ }6YJEW]gDi;_yCQ}XU^_$^O(A=mЭ9aj--11T*ӉK"&*'NQ'"#؜$BMDDC3dGV-#9r3a"%:t}8O< tF C7[+P}[i237Mmb&>fq3g>=tT~^4Hs7SAoM1y }(_7F31X#iŞyZy0%2N rx-xjnw7hteKgEQ@+0,O| q_:fia`POo]YV7TT!^ʵ{F۫E7>]+{c:; YNȝ\X3. Dr|eg!JOX2_"jz!Ou1!҉B=!D&gLfUa> &8+B` ŐhjV0bk!&,F3P~ 1cs3!xFRCVk2~jܳbSvo#|OZ$=ҢÔ45r(2<Qn|]h?E3@Ƚ(2y7S穲{lX)'g5ēi [9ޙew1.'@~@|lBzrRU1sPκ&t6|Vp%EyF` fRar̆cGhP%Uң,$TU}Hr'L;XLbAw(oLJ>_u˜@aO~u7 !h[ISxW?AKak5Õ*[-& XwB'vpGyp^8|O'u?ibԄ{YX s쓢*/Qs 5'x7߄?K7g~m%@J *pۗs~c=5XyvUIo`:Z5.]Mf ݸt?\'NgKzyyH(UeR ABJŢn+Ţp_6"_iĒӑ0 6=ܒ sOYp.WJ"/CqK[4ufrB(/Ӕ(ӑT]-"Eח$§=Z]6E=h J(QI|S=$Z/D]$DL愵tԳ7| '^*^#2<vq'f "+~*dlk5IМ'=(l︠lB3F*pNac|5tV1m畋ce9I P"pQk1eqiVue"y /&pc?'(cst܁z n's+JS<)ZN `\.]Xr ?G }. _B[:D{ͮ6+9GIgEЖ/whպa0r^go9Y?>q+e!|-ܬNh,MM~ĩ;nO2ON@w( qdpZ,ilE[7<||6*;`ɳ-O\A$PL*WI" ;ȮYehɤ QtG^GDsQ|;aF=񃚍`<-L`~S` y 90c퇩TQqRA~dFuh=GZ}t KuޱIXs_my><]t^,~2y'EPkDx~ T6OcyPCL﹌p=3:u&֭''tPYX @qm e&I.ߎbh&p. l%w~+I iIv_UėybFc>MC")bT!,#N*<"BZZj֋9ai1U1GG]K̏1Pƣ#RETw`H?Wgyvh_18(pL鐌%M/d=M 4{QfwS#(4T{|}^X`K6P7M|IymM`CX֏ci#kOʚ.-p )M;b7>/|0[XLqU!W^sj7OdFEfr, h6!ۢˍg2I.W|5%]amyW* ֯KgW[Ђ]#,xQkI{en$|pt._6O  r#,0&'rGу0̤"?>q/2.`W/OFc.ޑ8!cM1IU$6f^ BnaA,tF63nvU+$&J˕DWk5j.ѺYWĴ*pNU<*ʵdJ aRT^+\-01"GL1xx̨oi]id ;0LZˠZ2Xt`n{lcE^Bwt= DzX{9M3o{Gorؓlx&OƹD79!M H7dе.,>C{Ệ䰢^&Lip,PyJpu t1s&xc3"ţ!,W*(ؙůTXwǝbEymJo`/Y^͏ "$\,uBjVÏѫ"Yνjx彛36zo T EN;ȝf0Ta+ω[L9!33{1fʐw4ZI*6GQ(1}ت.k1 R0lI Kb'2Iϖ[eS zl/S@)4E: #F ZH,U0Hp,aJ3@f&JD%\ e*n\P1·qk]W&BZOq۝J!})G,uRd?+0j+ ii-pڂlp3qG0Q^V&Ø:ZCQ-ʆV1#xZ^GyonS1 ޿wFrkDf^s'! A@V³:Q;Fx#MԄtn n&W)}]=^MQ?Zcu8~~k=BQ:R{ f7.A_?9vXx/cwɾҴ+dC쏿qkS|ёe }tRChC$c(rz!;\dMOmK+GoC? Vjvknm& j_@&Uz>jӧn{!|H><@J}sBWٞRӲ̜}i*ߐ&(@ߊ?[ϸ>u7Yx>K}DN1 *T+Bc Z͔̀c,s0=?_c]z=OW`WM0,F-,+3 DL(L/ч0Y~L K NA&F~2{{#8^u|D3naw[EC+C ]@acsedVLQUJ.Ű*yɔ93Ed"_+  pMyl(n2ڑ6F+ 3Yߓe*;6)4y,ʇd,?_)oOcV6\qgWM;`lTk+lP'T;㣚QF0ts9;Dd}_塑+}~}؞8ٯZmP>NQs!b3lLj!l- Q,:"֕0Bu o.OK;2aZ_2p^[?{=QZ'PU]Y]p2G$E'+@1j1#d F|RY9pqB%[~ 6:,2fx(20d̉/e/&\:; D3%urڝ gDZ_kl6/$>4.S{STGq].1"jb-)@ ,ICxd2s FXv oQ̗+'Ͱp|F^|^a[z9vI=&ϪWu Lȋfw*/P'S\q_t҂fG 8Q/$Q>`,7NhE- ! T\c{!O2<3WH MLO{3؛m[8ʧFjլ˘ i.1Ō\ѥ5jָ+k캂MX^] Owgdtj!!|~so[k*;wIIQnǐM^њP YB9rG>n Amny;e^v"EV]Wwd QLdGb~ZOwSsÉG$e݄سOuÇA:3] )hMg*q$.б(K.#r F2 ryxl  |<$KA^5ʭt؍q7Pfӯ HAؙ.# X?6//y]B=H녌ٸT9<3cp%EA͊*qƘb.0"Mnw,9n!*0:YWj,8$K17όM6F<)v/rkAO~ܑ7I7 7"r ix:)>p XO vu`W0G|v7BC({ؚ̚;{`*=RVztjNb }985},MO >[ =Gm&+X%ÓL&L $+rF0La؞.ZR]sCwb1Ckk~СVfT:E'cDEr*.q$͒?K3 ~޶lFIh1~TF4\;3Fnc]gNbS>ג^fZ] &#l"YbC[4 z.c{c7DPW{ |\2.o6a/bC©{X_RV#^NpobhRWK0#cZhp`E!6llF#\1Dmf+2/MOpVk,ϕk%\Z^aLwh^(TxGR&u=,>4AmtEPPI%B[xL|/Q෣󬽪@G.]B{kpY2N}n.{f%Wr-N=^~ȴ;^X:ȫ$oMK1%D$sܕN7G]7ja.UQ #^8m\γ:S<5ٸқz&Fqv&|Yk+;BҜBҫ*Ħ|׺*r#ϕEr{ՙ2w&]@40yk=#4K.dPYl9*@N20zWlbŎ(c׍ڊ6:6+fX_`6I7ytP)yx^-}/=U}O_3<8%4c.fMT]rp15dzy7Ԏ>~) PMb\a%(Sb6D1WB&IyK*6ެQ sI&L8jg@ P:FGn;9^O{2%a$pX6tz0[ hFVKJkQ֬ ځp|@_֠N"cɽU7Щ7qKN |dTP!+^yF+>Tp^$H狜O<$ܜM'~ I"+ڱbSdJ;~ӝI 3hT”z!nz~{VsQ$ø/.|'O߿?l, l9%$h=""D{>FK#I ;YDz58p] ]pGl{uze6*?b[e[kWNptkCpRc㨃F`_EbpRm#dDOa5VQ@0XC&v+wӞt^qk"1K@{Sr}lV00=F??oyca82Q2`d.oJ ,JYNc>_[} GRщcǏ[; ŗ ݣ}q!xKw.cQϿ%Rp:պt ҪlKx1.zoof~x@4lcR‾|HI/F'+ 8VLnI4;)8.j|J8l5 ȁ+U3n\vУ-- Zŭ-K[uRYe,>|-~h}+J%h8eG{F0jSk#h|IBսT,x05<%|(* mtLQ}ȊV~=n)i<)u[>rݭ2pˑHʯE z F`E(:j GbcCў*ǘ}Ka&ke5le"nf+tղA8 &Tr'ӕlyh(Hb\Yy(4S7#3_2\$=3;/]qčFcD&U1L4pjEl6lٵ1Z@>GC+G_ S P:f2+9.Mrշ-{љyH7EeBtFv{:('c7H&^.)Ծ`d0~A뗉dN%؏X( `6[Dȵ(L3`vlk+lFV(jVc{2Hޡ\׌z1!ܤԏ.^bK5wuS P4.yfKJw~~N6 rw^D7e՟+%W5`Jߚ)gelX'(|_w (^9},鳶%A{@X]#$|pb+ F`/#&LtpDv:&**mj;JnW7d@$H| ~bGw11bjh406]!gJE߫4E4N(cHHDNQQ:  "`s7FyGAq='saR9xvcoC,m[[uGP> 喇 L1ek/}JݍCkX3֔E=Ӧ9>>}#) ck1 dqb~ Jx\ /!>lpC)ɺkΟ _IX{ :YkÆHH"H&R2J\*bA,^a@^`bj44iP5mF4vĔ)GLwO6p٩j8DcG@5ol<;! cgv.%QA8= vEƣk[|*?T/xZa)U<k:@MÌ4}^`F(o10 %DEX2uuжFd*[pU1AwiGM`"A~2 Vmk[z eUV 768Tq*m1B+$!tg͉J6P\RQ)'I^QRPgO?l~wxI2ukWQ/'+Mtһ[ՊAYBxUJPY,,[d-~!~ARAc%ESq]v*A63Bx:BRW@IOĸtNU_M. <`Ve}`VgThZ-w_V+"m:NalZ@[/b(,SFƔosީsVa_{8݈ƀMτOa+M6r =Z6ZP\P_;1 f$?&ĩ.QtK3*h!puⷆZ4+lp^d,ajӆ}+}WȈC4hЊ1 ,׏clsalHٳjZ$+S6%d}9]Ε]x8 _CBɝ|a0q75C*hG208ߩy;t"'ǨAG5&BHqngc{;eFk?R>E^6mO oc< Sȍ?greOۉզ\U6l{!xysq}1&eļa?^jeBzx(E5. \# @&*G#>F_-|lQۖ ~,Gv>b|NRXAcen4^u#PF}tz9f?[t$c$! {Dah's%U~7.7 @~x翕8sh@,Μoнϋzq4Ve̮|~w1>&z<3Z7@ Nb*Z8XE2q$!4jmjHFZõÜ=$)ŚT}P&?+_jwN3 *y[+kRԑb1eB*mэ~P(S\Cnc8266zgY"S5/z 2 GDH%.cf[ȟ_UE#GUe҂$"H.Ӌ^`/hGbCƸ2 2fեkիRlL.+^BFHfՎ0u={DU@yȴ\qC+ܾ\h ޴jxɩRn V9!綸&8P;=> m}\SRAGKڲq@2(FaAUb}4 ԗ=X<̀B bٌ`:*7dfk_}c*r;DZMʘPGM1{b?@R_p,*h[.qc 9Ƙ7!p[=@K/f;C Sg1C\sOK12~Zk=N:-T2| `@&P&* ^6RQRbПWP+ZcVDDQeѺ Q嘄25w\+"v^O_D4t:<}%PbYL|cKǚk tM%}WW\%L8yFl>'_jiu^8nLЉT LIn~H7/=C3U)ζg~+}5]$f* 3a5T$n\<+h; rJ d2(}_|(w4p:M˂WCApt}9p}&oXcp? 3:k _:9җ=sYq.2\TmO _L)@b5`UXn0 % fbD{c>1?>8 ;^̗{G{^X(@2, {ɗcJWwWA{?7CY=wxWyW}0ThAhן8mC|v08gr$c*#Y ueҪ֝j5/ՄFngEg1 \1G-~d⍿L`~1N_mXGΉ[S3-wץw𜴷6柖 De*L'T(%Pjւѐ`!ac4_F͉㌐5Ǚ|*=^Nd`֋ElmaGiJ/Ca $$yPS[hֲqMwg}Ϋ>?v/8 ~lY,(KM&zfYV `*x |ƮҔy5>xTKf&J%țM\/")>aɨNs<nם[o (fв!^vӯIx9 {,#>^DŽS{.=* 6Fظr=P%{x=W_oor\p 6_oÞiՆΖw O^ 1+y*N$t)qӾODe7"ӽؿ`5m[[foXNޮ)zcqt}_*Eddwt(dP޼1 _:ZS9Jʆw c4[dZ6Vu<=;35La+ r!jOE\](#R iq)E@ (1,e;>gQ^\TTh=i` }**EM?7O8TkR&vpT 5**tKR NaŴ5`e" !I6m|2߭7|F(ؕ[m 9kloH}QtN-7#ZkFֺBU^ь˶z] ÆNoʽ(a2b躽5ߵ}UGP)%Q੏ X6[7vCk gfϭ 48ˡc"T8=fOtkǦ$J48ZIEeeQ&V"# a8% dL'xَIFXʡ'Qq1XXX8>|ϟ>}Н%EXbL\mm̥c=/8]O[0=sJ rS*W"!J!?׭@xwA'͓~8 C -{:P1JI1iGYWFΞ<ܑK[컽p}g9QGQp ߰DUd/_55hG6,Uy _ҰVVV'̧&OO[ĤDq=8ʣiF;ϱׄs ѱՀrQAtWW<1}9{$ͳ!f$ ݢ1f 8uU70OtD'VF"gPW +n^ }E5BpK56cլ+r*LhP=ɇ>BoIuf1NXÎhf|ѣmAE|-;`u|s@X@5"J}4՝ q( O^qhHי(ϧX% ;v71^wjHeųmo&2rw $pJxQ.*7"EX+`-"%W F  4Lg]p&FnUHU6E p%97L踪X^K\1fak3%c(-*!H݌ = ޥw~4Wyߑ~RyD `q 8aɺ4Y>G1,!R{3lnQ6810i2>ԥtUg ?ɩN罰yrM` ޣ[h샫~(;qȡBcpS=*ۧ]ٷ ==7b~` g4~O{@iUB1 c1E[s}ϩP,[ iR( ]1AkUfĉJ3''WCu+_ ;Pu¿'Hx3°>k婠$z!RoPr3y,٤YQCs:9"Qon2:3+Km VωѢ9@o#{1"'[&Kƣ'\eO%]of2ؐvpK&R]"T!ک"Pb ̜̗i[-MG`I:]*s1J/佦ew  G|Ho;?BڏKp1>E>,,j4 Md&c:R&Y5j6,SRiQ$(5 )G=8,$e,$F=ԟ\f~wQ"7 4^\d v!énZT9e+F14j}<8!8~1'Ob7Juxξȡ^]oW%exRȉ(eOwQy}{a%zx(xgwp4ϫ5)CEs+;:⌶$mJ}U >g":m]PR#KK*|,{4v\X$F>z_Lq5 ?o T(PqB4*Q**T*TW (JP|1?]X1Y$eдRK+#c_\ #w$TdFvjñ&ύǹIM#Y%;2I(ߐdC2Z rh7g2=@V3Ne*δ϶X_h+wїPϞZ]Y7pODCkJUTC:d?wu83)ju,-ahd5bwT?&kCą/lN^0:^@V.V[۶nVJa Ӂ,ܹ$C4r  2 &4tWSޭNSzJHIB84N:u$9(R)SPxlZOM‹Z(ι,8Z(Cc?[*쯎kZ^1VߛK7NU죽gϹZz4xX~u%jol|~E5E*yU a; oj@~+hx_wg޿z6Bݥysa ?:\&n7"1w 4 daΔ`F%$Ocz]7om0b|lſ@7_a$Uv%CE<xi,H2E*7=Yo.d r|ӄ-o+2;x, koXW'nnʂT!XKA`R)TU UIi>-[F''7~7v4G>P4(́ ?jv?~cDC#KҾ 剑}U {]Ljvʖa^u;"ˠO9V ~jK->e])c}lx$.K,28c\8=3m {Z>H3_ nY?f1OfѫP1z9(\Йu3#p{{X?nzn.'`n}9\dCԔOC%=XyKn6l*ǻ1L5w{VGe3J?۩bY揞)~S"'N//S E5Ji(+VQXjH,ƌ G޻ZuPhus$B 5!aneFسi[K~Ohq99+S`D>^b?bHa*Mir꼇-bSƱ"ID+ɤ2X?mp A&QB/QX8 "ku謟](gR2PAPj-,Iv7"=J|㿁}J\.x,ƻP6'1=nw2cC4!1 PSP ↄac"b5c1{1Z5lV[`0ǹaUWw~ZSe2GZu974ʊuV qWwXUHwaׁ-ރBA֧qroySO FO0&S.M.K'ec 7{m-9Ti@x >45\pnoMB^|Ow-# TN} NfzREד=-K!5Va$ a:gYBq5>s֔IVNcqzetQ~N5)S7G9 0E:_6CjLn!0ĉ>{5Lo6#tRK¤<ʼƺ5?d; h<.="Ljr1 ho Qx ')V{'1>Uiy;AyX>Lh|l)(RhUPQʢEXJ5ICET'm]՟f*BSQ%JTUTڡiUJA-JeR4*,E P-"ĥZTJ(RTDE-h[Z2軤YE((bHU ARhPܡZJenQiQ*Die-*R0TIe1E!LBQM(mVEDijZ5B%!AT֘ѽU5O^L0t0%Ls }O^+[&Lz^5W 瓨'4,F2=x|3l9d jCe5e@9:@yEZh1✔s^T^?o/l3i7w\:WbXo3[qd~bNxf7 yc&:*[J!N>򌟅e`_&1Jo嘬#Hoٕ.Fvo#t"`M|Wճsj4(OWZ ),As:oXs?_5?l[EsN|mQ堩{uMX l!bQ[[\%8k8w7MY Za(ʄ6IΖfx{Ӱ\K u18L&=|q2V' n @ ."A/s{~yQ8u# TMF { nχ3CO~i'&2.G^^1|hB*Z읹6T73GiYZrnןmf>NRM~ϥAh!I ú2FWfﭔ<ܟ5eBYP0D#^h˓"7OxqD)I3eWoU'ڗMο4]8t-8B3ϙ#mi|=Wq;" ճ G dZfN2 2h65lEni5A*Vn NV_ֈ5> x}ngwC$K:sLun)sPb9j{ˎ0Ů,'(w H)'A*1*npHܯ3OiHPR % LJOmfuO\yz$?//mֹmn]gUjQ!@~JF:UNBtx퐦()*DPtk](Đ#P! e5 sR'feG%2$?Jώ9#Dnn=1%MJb)WWW4uiRl-ҥJ(ө =[(`=G)^k2SwKߦxH#"&L ب*?uDU¶ݯz u uZ&8~Sq\'iɣ4ŠE.;XO%Քu|_DUI1zuOދ῅:oG/Z7!j9zûuOե zQOڱK}jWR7)ROyJ˧&dZ7 7VVPʘ l5Zb\;fT4Wg_tE9l|@w/${M/;[|+Ch\ wZ황% sU%JI`(:`Xb\ ӾbLQShǩ*-~9*SFa^Pʤ }l՛au2?` \iϣu'CuT[ge SwPKAGXɓ$RβcwA?KaZHt,KC;E-nF1tHn'Ա'ܶTy ,);5x0_p0o]ӎSۧ\t%㰗2hHLvNkrebT]/Qy޼Lu#]NpW}sGkQMN? (-1جŊ b5#(b>գ(cavUZ½'*D0#JFA0L5`= ٶm;Bϛ5 %ym= 6qwH4XNlc_e\b09N(߭ 46Z_y]Q08PiGa u/cUgw^/~O2 0jk)MJYz!IIIY%s[Sau=L٣s I#'{@\=rsϚ i"gdy' a8{Qz˥Y &߹ϰ,DSԳC!C,ģZF-x ʁ|jW6EI*+Ji \W{Xm6[I; R9Lm=-+nd8S\dT u\GO _ 7ycjNCUKXcr˴1zôF ҁv꧍cRQ#>#*9ⓨQ;Aq070e%?ӂNO:U4Vm;')F^}UaKV ÀNhO~V˳ n;=kYњ 9) & N$<Y5?wq/^7 r lxb zLGSzknގ's?fC {w DgLcG SihE'!Eb͈AQۻԃꡲT(&f9A?hwm?T j ͐6z}yK6=a\/AWfWV -ڸ_VGfdxل^y`s۠?黱„ ]},lsi:TUF/-ׄbvz_n(,"ѷf͏Dxu=!=ӡrᴥ@x;4 ;[;ExcA ᙒ*FbN|j55 9\U1IҴ+t3RڔT~/Qv!shI{B&{:ۛ\,ҧcDQ yaL(>ܘ@R\fZ[X}- .Z4dlr( ̸Iuz3?#(\jBZ~O}}mjQh,-M bra1818vQHiHDލFNk{c2z\TUG߲z6| %rӿE*V2hkk'~dbub=qJcz49C㌇v ж%BFf֎U˾EvCT+V_ `E GQth9xwRgu":TB2n*7 u1;鍷Dzo>9E:jOo:v7AԎP#H+B| ]Z>OGrflBv9drtmoZ{Ռ#i DtT"EVX? ⋢"Hw]= fEM;0)dtVYBwV&|^辊"TT XԁT\ZprmRJo~0Z/ŘCX8ߕO$d)SG T`ʚXZG¾b߃1yBp?$#ۏW葨I]9+&"Js_p{d)ih&'aB޴Z:eV^[HqnVff7nL⿛D0ɥp; ߁N&pjaqiwW֔]yصjAYoAJDh* YLڛ 8P4i fW -p{xK=Yĭ`%9ѼO.Mxx ہ\p[_BVʷ?|XQ0CZixp'F#3@@ c2 F3Q]b[% sY% Ԗݸ'V78_j^0TZp9 ҼUrVO~K`2m݇ IVqPiYk}))Egvd|!lľSp8ed;GgSjyʰ#Ft. WE؜OfͣcK߷$|YPq0`OxxO\row/8^MI!Pn2&S W5!Gm0)&{!aS +勽6^5?nF%ROη8 pyy t]٢xlw뷣I<1<*> ( 1쇒UEDPTxՉA@`0b. J$uxq0($ўf{7'&y=WջL  (?Xʾ4>hWmrPIa@}qp'iU&Z|Pߤ'Q Tds\/A!N=کݙotLb}ﻻ/Mu}CՉ* /^xY{{Ux`6W]KA 3*pcr]R'ksx"xj{XbUYxX6&lAn! pk:砍N.f;/+1%~$x݆T@|R Gmo#1rgۊ⼬W/ch9Xw3.,5M0$MgW]2p`=t9u@RE^Tl]jteŘ3pMtkxb 3aE?i8׈Ɖ04Nbw>V3i}yFO ЬV4*dhF=phX N-`.\d2 cHf>3i cX;٥=s5c5ZSUa8QbYHV(ɆU?Ϳ'C&7fPqZL"}|y_qiqm;tO>Ɯ,W1Byڈ[YPY{3T<\{\?3<-G-|4Mݏ?y#C<4}#bP0 zr7 #^cf6fQ_~WvUa;wSݥu҇|(Ed*b|JI@J")7(8!!JWbN ;(ҷ; wʎi%;6PU2&ƄXZk%˗DХ P4fUC6$m˾Ɖ"뜒kJKz_^ߤ;~'KP-VV: udx*i!b 54fa;tM,4R5%C*BJ.uYeXPuˤ&sӹG(j/3e/]gʩNGM {vBR ,`_yb  !eQE) 1?Ƽ*Iqx;y r>6ѳalJa 0t<[mωi)j |6$hNȕῳ8pJYO%&l@qdG5:]o["V"iЮꐵ[/&^^pyR 4xT g:WGXs<6ϰ(z&Gڶ$r9Xi/Geь̖TTNCoڦ85~(e[S 71M=;^.bU̯ mS(Fpwd fRhDϼ/Q\g3 I0&X/ *{*U2"旯,6\9XiTJwÃ,0? aGw|~z bCu\,& i!($iν]lPzuN:rnQ!CJp'AHU,r*Z@N&"T*lhW&_Ӈ9~6ZyH]Wa~q٧/e?gX>× ޅ܁P:A;CXm}ΕwOdlNai'BV"K/P>ڟ͓+ɩ/@Bm9]cTz`Ay1Y ˼=ϛ{8g,ߐX3؄rRו3U5O`8 =cg15C1[ {] gRJ^PS,{SP 2f%J }qUZȠo>LE60%u^ؗ+^Ԁc\ "a%gX/'K+PS> )o=APTB`{Q(} eLB0(>5@pΛ P0Sj"z6u|]}ZzyYh$թ73zބA߳ħZ^V^^!oأћے7GrkzݟlapLjg~ fj~*te˼7/K?Me^F16ZɌIc^zsaVQ~O} '?i"pGk{kd|ۉ!b"I,JNi%r5¹ۛh6s 9r_#Pr20g.]O@!SiYM&Qg?xWO{i¶"%@b9 rٶy&E$?#P S%RI)"J/. <[t8=S |8:DM2@+:@iS%Ah풖x ?i`SR=5BCHlP"q소> kBErƊ F Ac@輌x}~fW_X:s!oGM}->ce>lz%b3)Ao NQyzMf@Y`_L才5 >w@'+f]Vԭ#w`D~[B ]!oj ՓW:IB~p$އ[N='zn0RёSѿbn{Sސ̵%Wc )2w_&"8Cыb၇ &YmD7FRܻ.'y&qcJq4*X,)cDH?@_jH)Ҩ*̞*!6Uxuг'v+IVqR/$7cj`a{~o |1b+ 5RlNHGZEZv|Ej+Q:2cio~eGf[O8}Tʮd#br?#3P#4McQyoD9;eSWIƨ-sH@gP .Q{|%ZHuep W8NHJ԰`*l ؃5v[9Ua2lu|^1 LR_աbABFپ,'gy[x3+nת %c3!:C`t0]zxGIUI 'X(gWjB5*ȴ^--^e炣=n+( mK.ɾ ~,ߤ&Vy|]Qp u˄W2.:{VW|XTŇo/PAH^:ޤzr|IOP{%\M=dLJe3jg{)*&9_f?BۤCoco$ g|u%="X,s\6 ,,)?ށ24>x]JP4@qSXhOxoG ;糼tvvPvzoXuf yMKR5no\ \= 'Ynxgɢjݻ;6Ec]TڮZwזKGw^YUsy=4vt]e#sn=ky׀!;Fn]6moizǭwewٱrnSHw;j];ooټ)N*#X\x=8u{٣xgk`E&skMx:/.uqܬksuI"UH@BR:׷봻, .g6vNtݽr,9up P@pγ_}cwǓvnSUc[j6Mjjh͚J[j6-(6mi*UMPJJEe#9!Eמݛ3qݮG\3Yvn'/9vׯqzךa/%BӓRWX*:h*nt#KOWN\l=WL^S,gЮdSj|7QHP?OO[ w}ݱ:cXjbӾl@oNj]\OiB1as =ƼA'maqv-@ZpGkG(vPŔzKc7?Gī&k tS]qw!s %Q]e0gn2a]Vki4guiw} tU,c%{JutZx'fy ]CWy9]]./,|W H$ˬi7cWu ZjVcTqdm:^E.njO9N}@+N23>99`Fi?{a}[O*$)p篕F}E׸^܈DlIm1^&Q3i.?: }IEawښFD>Ql;X~Tب?vR@ |\Bf5.LؑNґIvh}$DC/R#!q5f֖ɄEd?>:aqoH }l$Dp->}ֺLǘ[+<8I̭Z0])4yҢu l_\Pfd3[ h{&b(H.E|A0!b :QCy_Gu_müe(z `O?Xah)}sLנ|nVM&em %=d䉫G[حb$*GΖê#EÇ\=F%yxm% S [I~Ϝ,'!qY圊џ߀suoG3]@~t$>Lyj`l }nX_.1tsii8C&Rbߴv ,[H}w*DƋ']ł[(m1F'ϣgT aH[BG?|t6q&3A_H(Ǩ?`fS'kUh z2?+a3Z(>CСGwF RØQqdS-A-%9aKEDvG@00d l3D)Z7}Sq0IQC- =oUW1L!qcƴv*DL?SP*J{b+xvcO&jR.:-˱}q_+ڰPW-0ޏWKnSp} [U7_(yy}]lޮͯ6FmDoqH ͯwx+(|r>}-a:f)GySϪ DJ4rd7]iFs{ȥ0uCGC[֙t01 yo Tqqcf?{nJߦ]o|X;$' M ˒Q99՚G^[@BsP}t_s)7IjskZ"~AڅhBk[G1\kE<3+ v$úI'EV|nՆ >/7wXZ {]À }Oq^+$#i س윃 .h:&9xv'y>V!Pd\#UQVfj9T7^r?c9\}pcl1>3зQ":MR lÞMe aSKZ0\#eS{Qt-pfSZq#1&\C \[.akAſ˸f_zY=)9~Kܻ!Xyq>{;?TCR 3 T|LO]`r/IsW2-_#MK?VЧEQ|iRY3G2e9uI7p䗸1==6:nnYJ#l<:fsnpl'kMbX1Aei;ƩO&^6w]%5CLO<|v1 K *}^?g78lDʥ,hݑ߉rGOE-Fpt\V OtXt&t3]^[7h|$tk|+;1!fIzԪ(XeΈPPatJG8K+Ķ.VKűy٦\e Lj}ݿK,,$~F =῅~th%oLdۙpsr렻( 8#[殦 R{y&E1yk} S9Ɲ+ ̉_4'fjDnX* =,w}#2Y m]wxK ɼ A֋eD;zGN4#YHeba*Sq1U)|v5F b1C^Ϟ]q(Vb`qO/]J[1&¿[4eBXŏ q+iMćnFqVDwd Cw*w}iK3i}4㊡6>ӊ9?J蠻xh`ō‡1{NyʻjA@]BvAZ q_Uze&`GKC)G7njxNx|D,&B6r_ ֧}) +P_F0+N5/AC-}UmaK~C#6{FMqr4HTǀT})TK Pꐦ 1%'ut4EHۆ=6s:o/Oq(.ju=`1P/2,ϱ#A# ._Y?\4uSWC9B97MUV!,G{7p|I@W<;LdaUm?϶JM ő BdJ }5,]IܜoFSdz6}LݭhoV-nB w}]{*=N;6a$Nc#cyb0(K>rUtTwfE6^J;Jqe+*%+!ܼʽ¾}H,TNOL<ŃTΆXg҆!~*wsZ:kU.Ee _*V Os Ob4gtL;'|K~ow& DsIOB㕚U񱲆0mF 8ک ­{%4$2iK7iaܚe75]Je~( X-@YӺ9" -WҒCPmRqy9(T$!8__k,5]-^Ba|Y3ǵuƫ9onUR0`s䊝*.|~,XQŠ?WGv =2m\y70Th]@%υ{bB0j].\:O5g&} ԸL?flv/zV>ߩ|lC}WQr|qY7}tG<> *ջczZwmLT<{\2#ggM,jߊiQGuفLa e37rFCuce-Ap! cz08dzۑ98-7_8 ٟORXAcg7榷BI7 ?\N,"Ur$!w) j=nrKy)4 8q\"Xvm-V@5>J?SEjT@H3IA۫}jA 9\*҂5>*W/>R>}́-3dZ)ãcoL^T|ntH5a;$^H[^LriR>dr2R=Ucga{E1f|O)ufL+LC9qgkz.NDz,ZMܠf@O@?(>Ѐrct 7iN%|~;VK4-cGORPÖM=+v )7<4ۺ6Wx_Y#M䋹ao>xg7(Yk~{@릕Ņ-vZ$E| nWD.w6cGL{aW?ͩ<1bCaϝV<2XS+cJ&Mf<}161C-#LoB9_ʻHg $n=#ˌ'&mJ^lrEIL&Pͳ`uD=߃t~/1D#^#P/]w4|W^r φ5vuyu#lk^2 n_•M`I[d7-O9&-Wsc% jJ¼\ 41+7ضh@+{GyȾםzĸQ~)ܙC.[tf>W&罜?B\x6!%7O)Xd+c:z>&l7U 3a#\gTvq?vG/x υ';ڨrZD- ?5et.Qs.A6Lg 8wI0_ E%Yi 'h42ũ”⊐VAAy}`Z>G &Ju@0N}Y}URW/ ="c~-X3 ㉼(.['k09S R"J'&;a.7<_"C䨈;%ѱ9FO=5ԚavWSϼ5uNtp1~OǏQ|䵛¥K ,d~,RZ), }? !QTrK(qʂ0gd=zO\I{@St06d{켿pm?ȼ\(tjֳjX ?n" -ւwFiOsz)W}y{VDf ;loXtcz`W㋘~ R㦣2` Fw ^,{&2sGu抃T'=.& gC] # dVW|\O?*̳u6d럺$K

5zyAT/ǧ#D '(#?P/vᑼC7Jr \ȩ]KH6AE78t[sO<* (҈* `*栏PFl( ۨ#OE~5iz?"p^c"oŜf.KT!r-SS]vLj{VE.̪]:.ZjKTQ&M;v`z" V׳\\6㕵i<̓&;͗,T'P­&_mz}3mv>vo'|ʭRjZڥZ-PnfjץuŜlFvQMFe:++XZ#1H}玥yZ\-~~ֱ-?hYR9=2jKJK%v+zޝg90M7-\L\!BU,PAhRC?U]y3cX(h+\:u֭U[}ڟ1ЮLz&t60:E PG-\R*и_BOT4Nz2A>7^=Z,N ,QTQ]kNDTKEV)~BIJ"bH\ իNgNf\s'sQI2_Z/rV.Rjfzʙ."_~&Lt8wYY1*ԴmvT-ZB*\Rw6Eʼ%yzɗz'rbDcXP,RJ!fQWydrv:9o2.oMI1=CNut/-\/ FmI ܸ{=^>;B+unn\ZՈN+2o<ĺɫ䚧F]eW'AsݹНBRa!YNUKijuUjfoJFRhO Oګǔz~Wyt\v(\MZ\+V%L5ѭoeEVe@(YECާ3rQpUZ ӫX*\:ܤI[eɄV\^utL 4X#Ԥ䃶H@Cp.i\EuνqST8_:W?vԼR B%JTYt& ,)Bᐐl5:۵wmyվj"e\\햩J)BW*::'PZʞ"j[;Uҋ[wu*'觚{IXJZ+SsM#=N^,4U}W쿻VxfT~;bij֪Ml Q**td0|q_>6$\.bV5{0 5\.AT-({AOߝײSS]>|ޓ.6`v nZuoh^l`5MMV; ;d//ሀ=2c;&H8O B@Y݄Ε F?,3]ۅB]YY0 K&.3ۍf,걠o8>aU]BA)PphO38|8Nx|M>S!"_} ~"ܷ>{ LL{3%u=HvZ=D -|=x**!@LF#H>|.N$-9OjXYϫXSgѥMWq>T3Nxw) }2ϲ4>DFW䭗ufn`1L&u螭-($iB\4J7m_L7@yך& ުSRBT:뾍2:dS]VBʇߝM^<{[׷PBk.KSN[7:;3U3 ]E( ~Ӯ֧BKR"I7of\;7UFbx|y|]Z.BT'ZaӲ3ܟV\ggfvrWOu: Zj+BPLX:_?{L-scjL8Ħ.8*$!x壘QETဲ,ِJd,ᐲC*rRɍ_#=?Ʒ-;s/V/bxORv{"/$P>}<E R{UӁJoRگW ?}-4LAɉ.na__5m*/ (z9FFLY0\[(Қ%wƕ5#ڨwv NB?}?;pU0ƛDw44דL͒c<:COyguP4e㕁Ƴ?pػs]c:U('rt"T)_4O;:Z2!˽F mꦦ8-RGSv) ܫ;+&B-Rsx9 1V%n{3ʔe\@ŅYJۭh{gVF|'u/-^ey9/40~4J?R)xr}!4:oW`>xck]{o\Y#h/nsG[ѮoȜ$v~"ΐ.FGi{ o{][Ncֳ'1¼k]~6Z\mWa"LR*R<Q*\L<4f$}_(C1 f;Ot{CJR]Q]6~$*JOW] z6)|ۚQU6 Ĩ9Y8n[7<(`8׏&hEc]La-$?gG=][t9r(L{ŹǬEWUr*:oBӽ汱_QTT$X/0SGĺ),|vj/Hk ]>R2'u};2uMK÷^A wvL*D]&#.b`\yysa lg՚gœ{FE*wQ6[6vRҜF4(j n I+Z7-l$˥3tU,X] YZ?VC`9pO8ҹu,6 ܞ|W|O-.qcoY>u~~LgyqlCJ>/̾8sjCY^}uCWO{roAZo M)(Mj>ט(x P>*ųϗaQL EJ;ɽ_\TSaʰ(h~(xP~Y=C@.S>E^)N~[ /*^7}~)`^>h-6`B-iK/ob矏E, ^ykxE|{Jm|_pEԨcsfޅ3Ɋҭo\oGSPy m[:\qs׷B%) (Zc\STYK̲35&(?`Ur`6a$ރ?/ xVnipQ~-#Su&X(n~}g;frF{2|) '~|5k66f\S*p-_7 v~Y|8XrX_P@iak~gD"eNnxdʸG+HDE_I{"ՒUT/^kJ1|z(9<ɞ~Wy!ŷ{ZaP(M\ggNEsH>9& xRH$$j[m9Tkr{>aR\ 9N]Hqd"ro]Ap.ee577|W/b%IcY?l^XSDǵoߍk@Йfh?]h;dRN=!f9jhpN o o{f%IgF0Oe"}N|Llzk/2ֹU ZYj4nDT}l~AJבJbspyz=wd".KĿ]uݐٗ % nIcKGc؂V0_̌ 뻺.3xEtB/s7UibfggWffGat? \dzvԎ\jAԥwkGb8؏.Rf?հ&zzLcP2;nlh,%)$=-:K0-`^?β8+r+z}YA4 KBe]]D>kVVpG5Z'~[[A틳WDQG~*1|%QBos"b)j~j=֧tuw׺z+y)JNbKP[+{di]5ݮwL*` J4[ & wuXP;ͣﱌYRnn}>ИKcW JPZWz$d"m`;']~d ,g҂?!>: UUʜק6lL6/7^䯌u8N͂nOlO ]J…gʴ`jwGmBeWɊFґid#rSWVL^R a? LmVZڀf4ʒO-dܢ=+x+! 4(@#[6P/]yyҺ(rc?\^)zES"Giy ׍7? .:AsM~?G󴭫O$Btܜk$)?C7h`Ҵiٌzh“H)28+Zu0]nD0?^VC!Q!ZthъmZڿE3Ao9;m{–oP^_iח:_2nzKryQCp9rUaŔu\D#yW|7,#j$q(Lubj͋n70kMXʅhet࣫`DqK3yZ7>q]1ÐQZ򬥳wh3E%?6K~_)®>)8 Bc*z@1r%r$S-ŒIb˜@ STM>1za<-d i/w߰+KfX8S=(n`"Neh/8nכYCb CÍt~DTR A wl׏,j'^)4^5  y^#ݗܪ{a[DO,8<'"9mMB\\"6>Wc0ِkïKl}itچW~aWuRNBwRi/8\/y 9уZY8$dݿМv=YH漿G{4${Hd;(STN7KU/?Α~22vr}ʤW(3Z>A\PG*dbdV6E#+ oh( rUS񴚏v,Vqh紐7P譅;M3 7RO1;O!GK_b; `3CgA7V. ̝hp2#ݥp3xg^ \?)ugOud뉻=RG6=wa~SwWS1I4ݳ&6qxw:WƙU]RsTUJhQbQj)_YL4! 4u2wkN۬l'V_Rwj t6Lv][ APֻUU !T3OnӼCSuwNaK4Su0ĺt4êTIH_!RB_)zk4C @Py%zQ T֢pU"DqS AwaE4.XQ8 (#$TKEdTܻy? [HJ@uߡ֡÷pC$b؉P#AFIٙMcXk;Ȧh5Ӫ4 ZkAR"(l*@U wU ߋeQ 0Ä'z,(#!bAA0:"  HvqTqbEd vGDn:*ih E Ѻ,HA5a.AY/EFIM"^O A1 D t/CPFDdT$@$P$FDDD$AAKѐAāQ hcbER7dTSPGPF(# K(#j@2#ƘoF?Q$!DY2D00"m3B$ 5 $1,'a,; )qC :qX 2˷VH(#Eăe@Uv!L oCAfpt$ `0 :*h ܔ%nK1.}/{E2'HȲ\j" mכ Yn춄$*3&pk%)ȝB!hH?E?;A pR* R0M@*I mnOsAT&B 2 <1$umlJ2{lUD1w6D-a`IIF+5."%4#@ 0" qx..Y 5j I(iB@ *_@.$&{ǥ8xwvL!YPzX&*)stg"T$4AdGWy"R&a7ۂDd={cn'C\T((zB+z2 >ɉAݱ D E-|"]BBHu6HB $B &ZIݲ"$"ڊd?{HJd"H'Q%F.-#$m^ b aEI@ddAAdAEVFFDI$A$EDI@EVYdEIEVEdDD@ABII$IdVAEAI$d YA!@VDDDA $@$$d$EIBAIEDIdIII@ dFBDIdDDBEdFE$  EddU$FD d $DAA @IdA!dBEYE dQ II IdF@IA$YA$d$@dd$@$d V@d  dQV@F@$dId$BAI d $$UBd1+h|-Wɘ5_]%f>|D.4Md] :z<3t5=7f"fTUJ!֪VoVE@msz/z^5Y*9A%bCP%*ԍ>.oAˣCo=r`p|8ЍԹS5M5P۷oӏ6o W][k:wBYdH1gk1yy8L>><>4=>^FŇCDlCDCCCCC!ao!53"3x}ϤFFT=D>D>>>>>?ч~?>9o#˅WU49 룍ͷsW+95*Dܼ x닄}}|]2vYTj*fLLLD<6,<. ff^TTSzch<'34"|@A?S.ʪXH 4#⩂P$A\ys^ rhf;7p-GWKDS 4slאS[.F&BHI.zWW눣0T_xNlfYNEo[즙D1dOfUdO úҴ,E_ZrOPE I@!(ZBʘynF3g,<( V 8z)8Й31m{|0C :²(R>ֵ0NI)E_lJV`ݱPjee&JƮ; Jf@ʜ!5u- ˋĭ+W/Z,1őOi*/34mϷ'ujsޭBBDI UN|8>Yۥ*y-ʺju@Q4_iQ.i񢠠pf]#ߟ6G䃶>#Nd훓$ /:*&M*pdvT k}pST^G* _@#fŒhs)?{:5zg{|~o (ș"]+6:J1zVi>n+6rv2̭ ȇRC͑CC"h!!!mqPڣP㽈uhg&ȻYqZZZ?|; 99Eк[nS{ @j.rZjMx{U,jGH4Bl<|]ݿgJ}x:^dOx.`2&p*C`(9I@rn0iK o*rop!,>/9>|;ʜ|Fm6ν݉Ώ?{x !-8"Y4cp k ŜpKp씣iVDDHH9HP]qpU*r՗B-B?'dNJT쟮j[BEgn-$\a-#n1O^`9&)XVV.w)IwJ~xYu~Hކlf¾VqB|b%WFvC]poi˜Cص W!/N7:D-tZI|?02W{kyS׽}jK6yi QӒ rfH4بQy[ g>|j?oHz# SL {zÖYnwb "*hwGcw|WUuSloIVwW{VO5UZzz|_I&YmY-jӔHkGe\$qSQn}eKKv죎(#ѺwLx3y\Ņfa%t0T/_R(cl~q6'6O C&w's Nz:arK|\!(Kpɋҗ]J`UiG-T?"(dݘ oM! ʝ`_v lj݅ރfVq@T+7s_(6k¾ biOڵƙ Tx֘cn/d`++Qdз^GTPɓ6"Ӗ#O ѫv{+gB8L;oӌgz}/g帝!,06 ąLپ_NlݟrҔׁG )mf0 ?w_>oN6HpaC50x?2%#%@Oʀ&O9U%Kqc9[h 5xj{gm[~{$oƆ.!4b f1Ǒ1 sC li xlL1){y2l寵oSΘsU^=Ш> Q)~_$U &nPN>nFr@;MƧEhPvr_k0~2t)9P7So4&ouu !8?>8ϔGS_( wir&~¥*_|$tiRCLnPH:`]{9=iHpyMhk㯝MRL󓒅6W?!wb-@Po8ϔ#]I G01#YfO߲d˦Œк6h'3aO0Y|p/>klQl/e/PәPSU|1=֧ Ix4{3A`{nk 0?> ?MɞMY{E}έuDIA !Qʎv{.ŏrKvm.ƧRl3x3~Tf$ux? P3q0"s&-ԯB8S;&4 Hۼ=OH$ؼx\Fwϕt;Zqi-Ž#@LXL H0%4ti4ZX&4S&Zkuf#G)3HHK QFpAFhH\>㧱 h R3Ò3[<$ˇ<41IcG~SOtaCCȥ$xHb˭^H ^rW<ԻV#N1 4:C|N:tӧN:vElC= R>Z jR/UV~vfӍUи1rb :&dH8D5 m1>/}u- lֱ ޶w0]:~Bژ݈*-ESgx'& P4סU魐ȣ2c h 2 6d< L_Ӆ;'y|L|If13p୊CGcLٓ^䆨O>ak*j3dQ;O&3>\ɺ[?pT 3Qwb=}H~Cp:AJ@_).jI*r*g+#W<2TIw3pi8nM@5)+l:z웁eJ!"9ihQպۏ|(#xhטrwڴoP7(xH4r@(# [87PU7; ! MxvfF0/?Iv8DۊrW&.(C(J!۰ΆvesG2v'An<ɠ}/3 K{!+0ć~p4BNN:~ڷahYItϤ )Xϕc*=QFA#QJ l|Fjg@.sa3fIV R5\,oc W!MC)1L81cS 1gqqcdd_bw_0eA0fMuK*8D킧0bn¬/IcM/gxYl uq S i( l,LjFF~xcEom;׬ oF^E<.I (!ЕmM`tf#> R Jɋm itTUz32s @Z] 9DH /U|~hm+002&Tej>Le}!_LJi km}ewXbvŁߪ鐜Mr;(@#s)@n ! 5Zr%-RpQ)[G Kal X%p.@Ϋj==K8ɣu<ݡ {qUiX] k͏|< Tg67evtu٨9 B;<gid۰}9uKph? tȸ>MqJN >=vٗNS']zt4$R #!F@@Ep$ ψq3EE{!sKÎbq=,)M04Աz>bܘ0o-gp%pN[7e˛#+p2D)ϊΒiB_9P( )w6_%3)՜/^aE|H|kh}C^] w/Ӊ"{6[FFf0M%ttmfnBb| Y^'cIb [}Q4r04汊liGmzK;l] gVV+''0.s14v#̠9 YTy#]mfkn! trk]X? VƨHٵx!@)qdЙ#0@}&Eya_~UCKF&q |W@D0! xY։\ mbRV&!`)owwi6Y?vb!]o/&S5'ci,O=hj+ﻟ߇n^?s}vۍ?G;l1μMtӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:t=er8P-Xmb' B̕&kZkOe5nS5=-|A3Q4ZݥRBE;Y6?esE3ֲn&&m7J5?)W=sߕq%^xZI,\5NLloi>ڨ)d^jmɪ4Y*jR7sֽV%jִ%34_AV5lckykƿʥ/O9ٜղ˝lQf(|p?պ[7 _O^5BWg +]*+uM1kL 9mfAefHIVLD6{y% DI[5߇ͯKx~z}_3?i6=̓*geDB2bG-&&z~u nۿOU3QA4) rl+q\2p :;޹psJ=d@2<]T9%WSf&QʶLx~̷߆,u?XQAp,3&t#;Hްk7(E Nq2wY V)*U ~fxCe: D8M˶3,͇fEa-%3Y>ǚd36sG اz2h'lou(HHxBq0aLD~<&BbA\i-"LeZ#.h6UiT1äS6s(|Fw/L^ww]sTh]w5%TU E@7ǚ| C ?N>xcp\` Xg4W`[#ӳr*':k9F>[; 'g0O"&NM|]~u1ˉ cau\Zݾ |X 䗩irQrA+RO|`C/&n)!27smdJ|?""un lG\o'/.|f{]r!09362d9yu}3r-Mz^545S+*΢ aԲr.4lwP7S*Eƅ^#Z:'Cs4f1125IL9p 1khe Eo}f&A frgSa9w="Vk-u1PzNc @H䟾2 Ŧ)_Scl7ذZ Ѷv'Noj^mVw;kr 5m%-h0ЦF}^anzH#O'עLs0*[ lc3l-႑Fƴ I˰狯ej\1N}k=$00 )kck 1GNePqY W 2[&hI_nQ1H>T',/\\Yo5(De ?Su@r >lm5y1 6(}Z(' _XA!m/8Q֛;3>7} hյmfUb`ugWnfFFu~=$rr. dlm&m≳XVFEkq`cm~-0bǀkZ5Co-N4LLJfT/͝2?S'& rcs煬r/CvӍOFTI4͌F!,KtH4*" BZaO]=Tﴺ!mw/S##:YMx6-HN>Ki[Eo4RwG6S1ʥL[)Ulha/ 1h`gJ@@>P^<ݨ*S}əpN!S Jz8VFB.%X0R܊FQ'2 xք=Ul=Wi0;AoL'lAj _XE>h~2{_Kx/}/&sbډ"R74Xlc7uB3|Cwq˓QbZcelAALmh9y_#"㍎\ظl&Uqqq.j;73bNxҶ=p Plt.6zbEyX'Ͻ9>8v9yy6͆33!/Vt!bljAąf@e\{DrV=XCh |(Z!5հqx9eǵ)Lf--շQxܺYGZ_EV}؉^[Σ37'Xi41ڱ`܂pA^oF_ʚ){cؘpq FqS7SXT ~QFrylࡽ,f;YvdhZZBbV˘`M`kSy3*RE =ͼG4 XƤ']{xf - e]=L٠^믟n! ͥ%o:,NDz4"|j`+ه QL ,%g!4$5'7]bG&U5A[1.N`"URi wGpw{tޱrq!4])1H kCcHYX{iN{ ťqTǟ4iSF84ly{Cֶ9Rq7c:Ҭ8zW \sRaÿX wj£TilOjcz_B"awx2AN{N>zL_< ($}0UI R?1 qAT^~!VAK|?:< PW3+SLͱg9To]``] k r9П}(r hoOj,_K8V($"|h6&)TVv tl \QRt-l)ǦzڍmGKA&}WN(|8kgWac߄>0uL1L ٙ@@tz1aZ"m^ǯࣘGNm\ƨ}_9]P.'*e3fT]!Ҙc99XEᒐ$+]aF&)2f(LSc!UbӁOVEppcL==Ҟ*s}Oq6\0z]xD62G0#ji scAE bė}|ُѝ̿F0¯b5G{Vf~Y>%Y{q?"*d.?ܩ4LډٝPO@x.ط[j߈g͓ (4 )ws\bVɟ }*1soRcG)!̂=Hp2 ^mLv BڣunOdN?i^@1NR_?|D"~wo4hOR\ZIųImmmmnWF[/. t%-YƤG {MWVܘn͟mfv-zBjV2Hi^Z '; H)^$/83FFsÄQjN#xv݊ZP~?fhݷ]<GL},t%B *DY#>z-X;jۺۄkUStN맒dY>Ͷ;F妑  ^fqbl|0ZhMM)5*k! ˞h:SF/I0 r!YQgxZnwud|гHe׷{!07I1\ɌGisEnV.B/%EW L`@l :sy~G+'\:`׮l*2'%bEGVIaۃ(0%͜vlMq7F2 |E='S/0k'W Z:c{,5ScllvJMMWr)痱&IDªZ<6 s9a~'JuM|ѿ6\#IPP[wԷ3*'_:w_MO#:&yTQbe"R躺Uz_Az^0AAI^g&BGaBOoܾSQ70 2n V2Ù^+<*rNH[hZ3ȣU1 vMo^/ oGBױYI$ ;秮8ǚu!>=/xX]r ƣ14ͧl(Wq8~Э_Fp6?"ԪVD%4AW)\ʪ]R)»|] eK6)^m7f|RDˊY9 XagU9V9ZB[Q>Q/W:3i-Qɠ(?5Vt0m\4EMҴxڵ-jlLSbXVL :E)^Cq[5Vr%v(I>7wY%4=av D',z>'_Ks+lXBǜX߮<8Ģ4 /:Udk<2:jIG_LQbNL֒/ w/X˳2L`xt%`7qJPwD$뙙SCXc{_ш pz2i):~RFjOpzTZi\]ż\&EO?o ;袌WR!M̷c]U{I߭mUED*"(G+ V8|88tmoWa\7J7X9 $>s_=ryG^aF0{%k~𣢝]QD*N@7޼9/}o&r?|&_UmqaE7#- ^OE7jd#hrOdχ$xU,WER݁s>^@[.C>Dc-`8ɔ cd,>u+lޮ/0fL}rf  f.ɧPiv{^O߇^w(80nMNnVHZe WtK2譻'mkqrU\k.w9:m !W?uŮx'@Ԛ1i. \e;5(U- Z}+'_ Oo.H.(B< Զ<ےp.<]N/2zWylԊj\fBwr7ر6 *'JL]4 @HU?eG+K\ LUG5Uv[-?"19*>3KȞPM'Ea`W6rL$=!2=/#B{P:7Yt}t=£ɕohZ}?'K,y{ǟpm͊ϻZQ@u.{Ĭj|wfE鐰l c,2sEVbx9X<8bXq|5y[K͍T¤+bnC>k[bK~`3v &*%:6i|L}~rӛxqx@9-B'.pnoޖ5_2S*=J*; <ׇ‹uHܸ@{ ^v,|Q`)r./rU\DF&6YOEnJ,z C@3A^fYՊz̜+I/EpR0G12 aWN=<!![ jC(vka =,9_ݠEXJZr'@mm 7BP@M&!~/+Ol hMsncpzf)Tk8,-*1V:#|F#G;fFWZf Eo?_Ì؞1*9ԃaPIҴY*Vj~/bE>‰<tQ;reMP$1k"߃eD' _FXqfmu|ܫoyDP--[X+b+oЗ7(0 /oo,0 d7**I>LAnyُw=Ce99ڍ].}_,#x?Ws2yg3&o3X7='zׯ^z׷ S8`FI|Ⴃay*~I(wSp@BC#/~CKBvUVrCt~"uplj-Uѫ5%Bt`X*ZiTrjjI95&#0?cTO*ܤn |y2(AgwPdf5>XPdpK|,érf߆"yh?zJ.Uݮ_PZP/Y֍ycUPn.˃#pM5-}d$L/" Ef;g|w'}[ }9lAOme8HA梯?[mgmskv>wƖ,P{Nq霕6dL* F{vˈGg> Q=~Yd1ZT߂62l0}!մpiNxwOkޭm#J_qGFs wdKq< 0pS1̃ k[Nl:uGUtW2%^"/Oh"WmkE$sZ,uEoi tWl1 鳘ϼ낛p.OL`TÏ~^tb(=J.rj\N-@ nE;)W|(RsRf~7jG7{=7[ tbF}_me`:WzܓL5là[cąVOL tBg՞[_E]ƒ4{)N ;f-UEU% :UNn?|-WAdUx'vY^4XSG,H:L,vT|?kvh{LX;,<|!/{ m gY #,æU`т "yof4Iis1 cט#cim(I}Ҟwb nlUASdyMG7rI)fdph_2^{oȕ6t3ХG[~UDvq8+ E`nrZ KSK멗^K)ޯ_.:X9hT-h1e|__W<y2~~ɨ"|jQU`4(?L7q١0uKwW ;b#>Rx;h>E*.xc\s_e4US q+W5imPu` Ȝާ<҇mgzKUGUyy"  + 1iv&L?G3 D>;xl0͆d3! fC0OR````````\2 e.pˆ\2 e.pˆf yU fC7͆͘l3a LgC:Άt3a fC2!!! e.ppQ!!a0C5.e͆l3a f6f gC6͆d3!!!^ĕ` 0C0C0C0C0C0C0C0C2 e.pˆ\2 e.pˆれ     32fC0C0C0C0C0C0M   3! fC2̆d0C0C0C0C.p˛v;<~w#:,ʓ @eagjئfӬRфy^ CVT{}oHt EpuAlXfة&S0,/m[EkE׽] ~SlVvd]ŦBJ*-wt+b%9'F9cf4dX@4+^gGX\my0 cS;/$4P'1 s\BDGșP tH?w;EFM EQ0}6VK _!y?w7oHש^?y0ݬu3l?:GeQᬠƫ?(~mDfj-,J"4늛ZNQH0q>ѣMaQ+hW׌噯|]UEq^*KPoH̙E튷z6m=5?YO_WFu^`L#3YmYeS%S#Vع]r+[vUbsy7_2L~gm¥zc&x>bhĊJ#[-RZa0:+Aw1dLMK a]r[Wt˄h0#5ǥ |4X 8Pc4G!R2;]'IH_\x P7|˽}/]f` ^$`ċaEW*eln9mkS]bXK*ʪ:E j!9F{ {pӨ;˯z]3!Is/PYaYӖzFs!)掜wG|q|vEnTǫvߏ}~=y@G!ڞk]AD'Wa] ToZ{X 6בeUHY`5*঴?z&$B )"]UZU`-At1=)? zTڏTzDH-rUi_ Fjiz?ɉSl5)p9nس}GGΧQi*n1GA_o)myg ,J)k|?w" 7͂&@psW%8=zy& [!TF*튱e̊0zQQS%T«=.Tl6"8bVXZfQ~i^^o0(hbeb:abKrA朱s<5hl}~Ħ-b3>]@Sۈ_`.GuTCȑ²Ygx a?e]y WwSLo $[l< MACimiZ3gcE]K;5lJ%8<*mFGGH bҞ 'іͅYy*&G sO8/,_ qpq&$m3rPrmc嘿7]dOArz=)  Q!8^p˕ݹv_XB扟4'f~\]OgEUDct=w9NNcD g*!Ti[#e~@vine%inntwv[_l_24ޔL̾WLLz_jR-ҔnֱaN(/ڢV18CdlJnÏC ԎXX+0ChM%"3Z[i%[ OmRН?1/.f"Po)R-S9YZLQP;C2&`$uE>\}ns;;aavK?eQ 7@Eƌ0]Ӷ(C_z4w@JO=sM =0hœΦ8-X t{l,zb0Ȏyvq$8COgP7 aD}! (n'l>LumM?`s{܋wL\U]M.HP&%yOGZJ-0l9n~q|yS%z+YjދE";L08rjqGSIYə47F*Kږ{~Op={xqt`l\%W&i@rs"]u;Š[%GR=A@`V3+L*P;SB,3h8XP+: Ƀ7)c 2LQA8 ȚBoA蚪p aXHm!=9;raWj55 C(vBn,BkPfG%g `-BPacc$krȲ-KE]t=]]C5EZ?ocȣ^7}_qs?]t]>p2;Ƅ?}:1+&qRT'+_\U}-R[DWG+[bBD^T$1! Z~ qM/j̗r-כ.Ss`"zeQO=awG.PmK=[_2eI컱@kʳ\ VXJ-z:EPLNu {-v=&v Ds]: >:r&#~^^e/ //1`-0!Z3̲eUt|bN2z&OjTbhr+'ꚹ>SYp+|lkSs{'Jb wOXD]RaƈEͶgOqDVUl 3zG|W,=@ MVcD 7A{ Z "S/KnFפȻ K&PTER#լi9`EoXw;USTz&W{i^ot!ŏ?ٵjBۅ`YV@]D{QgFoO#.=y/xs׻֖A{uu< UìO[ّ- $0.$Z$S  HybNvPY /e0Аv*Ǟ#<:b [+FVB]Ō&s}+Xja(0p@`0)1ʄ䐢#U bB`~0:#;:bB`pĄHĄd F,#:QA151!0c(1!>ڙLXF0ajĄx d#nha1aLF0ax4 gB)r=S9+eLfa3zxsowqP퉾6~e%P@ B`9=@AU4͎er8?ep[C犐+iWU/՗28; (_-a2hl NZr?Hc.F*7#:sfmgcc_?i?;~>#"(O/{}RUVwbh-?CtTETFΖZݶvz?@E؎w2l3KBY_SMP掇lӋHWL0*n{-Z-:z(qdgLOLwcל' h[Xدy=3 }b:U9&XCeQ0~+㘑JğW"Ѿr)ګ~\/ӑ m'8 <+&;:%]Blw#ST.12VWfVr>,៲Eh)QBZ^*˱{4"'pp#uw[OC> -yI@y1cn~3&Klz#FsZo2vl"B1 {]u9c7sΖEjYec(@OdYG?xUb)03ys> 6=7;X@j5[ -IC%L/܊H{t>XU#*2{ϾD&zY_?Bߘ.Тd< )b\Oi[7'EOO;Hb6G/amRQ+KOT`)&ƌL'Obyh3 n׷d y?J/.*I9m]|ϟHĝqPmߩ"o4CB~B ֐[XPROS[wwG׀pY^'/)] ! 'wk^{;\DA+UsgYDT3X4'ӆQZUlݑy1:;êBT}HnpdW9b+xy 3>xeӨEÿO!+ U׹*hFfܑcq;T9y[]DX2KLվgJ%} BWėlEXR7w7I~ ZSSa:Z?ihuO\n5pЭ>[U79b@my:?b~B8:VfщD6rdG2в,` "д,Kunqbpl+pH_H)N>4 &b6c0Mbug{ ˧0! v$&?s8pd?}u qV@'i)d38VL ~pސ!eE4qZ]JsmnkV*P *Ei4$)gy4ۏupx鷈.hlTFsO!lg`1m.'_̂[˙ߨVlԑzl&t|a;6ji>A\EQWnyxv!& "ElH!3ǷX,J<]c>Qd25RUQy",y5xՖktdpаM!і4k c @o`a*P)4$`B̏ aX-PXCB!ksA+@ג6/;q]䢾č~Ǡ'XhaRJ_p, ^Vb(xϹ,&~/tmXrx `|9{_,Ϣ>on}eA9B"(8Wb">z*aAPAF" 9 c<( *"* "pY½}QmZ'}~>/@FA zh(=Np̶ BŴ6+=WQ.JnПz Hy__k`@N][ Aڞ闑~1Z:ŝV4v/׃ӓ5.ɰl]2h[F/o_&lE#6!sE>bP? ܳy s{ǭz[v{=P0cn"'O.vM=ΥمﱓwsDYmZY9f;xR#Mx-@ki.Z*gΖ~x^u|_a4Μ9]yՈ"Dvgں!}^_}() PSX# 2 -}UZj,:y]|5I}{HmϮX֞DHlKs:%}4_BY^bafmUcDP֍Gmd&'Tnbe[5,=ʑ#NЮe0:o7ÄW0]XWrGvqM%Q=]^&2emhxG/Fߡ;XS 3g >&_nke@.&著4wޞɻf޹n.'{]]&h[ ?U⟋bYc1t+)-?L)I}埽ټʥf?b*yCW]}Ki~zw]y5 O?W;OEЈqF*+W }ےEuwR\Ujݓ.XbZ< F$ P#`n9lV=gBC V9cdtnO̭jLҴw4cJkRG„ 62JF1[I0ns )JZ ">yU N 7Q0K *|pig6nV|S(4m%"bє2Fombk2%d.aL5V:/k 07.cbH>Ul k'[QRK%gʋ-?pz/ɉ1g7W;%.C5Vm?;tw N~0C_x 0K 0Ҙd͆Y)}nesEqT)-LSü&2m~ğ8`!ڠYh*١  NxƊ !X&˔eD4:tx'DbdEn~LG|l小? 5$ Rp[e*Ky-qҬpYb 1 a԰-Tؤ\EoO%]+`WX߻Lk!4B{b+͝Hv -^YH2vX%`?PΩESY+DY얟Wݟ-x)^M=Ʌ ?jzK95:ݤs~cbru!3Ri, m{2TُmO󥫦Tj~s[b?z_qDI 9(i‚vR="2sr:Qց\wj=Vw_6زRBVՆeMԭB)gBشډ{$FQaܝ2ɋ;݅E7ϭ@.ݸ{Eg4ecN>,Rk~fH/G VW۫>.&(01\FL;A e!(#ddzp @vu|J,&eX˅*+\gЪ8anp 9_$ ad77H=J}Un$_Vp:#v[ϓEk?>A9w=cp=HSej2K y\GvK|;_ `~(d!>v{o&=&rt1#,;!1I~q剰ϝs8V w6 a3qi< how,8]wHGm*2.p;aNn0n}\|Ys},/f)ZL+S>, 79RKe:e]qpB,4y(UY@Pr>)pg'WG Q.BAi݃7Ɓlَb4ZҀhO\'zxHdp>heyq- ôC Oe7h'V%2"^ Aȝh(=4CE44DHen< ^ ੼]˽^J%)uR5T멗QI3% RfnSY O슛D1n1=>;ߧŶ~=~e8U̕ GuUGTf66;dg0krN [yF퓟k_!?r.$Q N,1k$jmYf8U,(I];Q5$b>;-aHF41מi3{25cKW:uU!0]aLԮn=ӿ}r5Mmo!rdtdPQWUHqVʦdgNTֈ02hUBb)N_/v-U!zmEy pȉOJ{ט'5̩.Hd,*;En?BcJJ%:{YuU|UswuG4?FUZY‹uV5NrGh2(RPfB Kjg~vW7!Q]MJR # _v[cF  `bbVC؈TB*1;B)}rq6ǮO/e+2ۅrЦ՝U:_Yw`9lN=+TT8fS\"~mfe( ^vJZyV]R|x*,}O9ԋœVf%LʮQmAcڇw[Qѳ y_M.1WssZ]U IohS +|D]9*uAMnhəTWXY&,I :%ˉ]}Z~ڳ<>ԮUkǩ޷.X1^5_ׄ|ʕbΥtPN]GuSmU*.uD!jP[NELMB)s#Udi6xnT|})2P}|T^Dآt0mJⷲ5ŭcBz̾u(P~P;ū>"5"[{j07\vФ=Ce2҇_ C#?]&ĉ-OV:L_{  m9#H?)?rx+sB|QVuS)V1H*j֥ EK5ۮmșRgT;!]).,6wWeBwΘ*-=&ʍڨ^]jKuRPTXc"Ӫ`ٜ]S!Bߎk.jWrԨlQtKpٲ쬶?5_W&D!pb⒈ЅWYxEm Y(:c<h3vzQGK ntC.n-һ",Lpp=9C OHR$^"D<7KP[t!Ga9>rvIϠE8WFW\H J(&TLg4Y`!*O "q`eLn_^xcpt.2^T1ꆒ%!+T:agj]j8ؾt:_QvLثy;VniΠWIfT_5+[|]Bu"!#j8۟Z":Yn'TlS!yȩ_mҢi:o9y]b7/OɧV+-kܷrWƁIQ0!J)ʖ{!I](lZBT$ j|R1Lj܄M[ZSOGǦY"?"?%_?!W˝tlWtE FRx%Vִzb\P}XD'CxVh?6nd\{WiySy7Y3 {W>N<ő sqs yߺU7 !O(G!ҕ5Q()V*BKEI}vYًҠJw T@O?ϰb =PV'v^7g'Z²[#m﫼RP(> ^JDTyNrᑓYJ+SpعL "{(˴Mޯszg䯹RLQYBZ_m5Q֖Uˍӫ_غ_ud2|OS;ӊґU¯J#8Bzo57~#iW?5.o?|L~F^By? S|pSM tR9 #vih)bH᪝22*:JuJ$JkF@ Ląٜы:ّ7i#CVEE4=^$6IQ-r$јB)2!Tᤡ:HHkMW&k2eߚi5B[1 V~3gZbOxK A7{Z6ԖG_a2EbT\b~B2'&F 5 s23 Ip+wPyق0:凯ļ˓:!:q`9EF^K7i_5&UksR**jQ3QB3@:*^H+:Ӌu.$˚#Xpv&V8[A-dD $x@H`GrViFQۘoޟ O:։+p(( VUPQ_y=RyXN{{&#ӉH!+G$0YXaYrzBh#Fmz[RR;B3΂@ "&.-ӓF)Y>[/LbvVZ7],bɐ&}ߏh 'r Iv|Ft>h/e3ϸZ$ 3@p~~߹;bwT>Zǻܷu9ޥOR2׺zZ2 RS;{YVRT Qk(uRzT G! ~*r)_>ܾ&TF}}t/(+]=ԙ` V \Cb`.Sס,jٚojǵˎ$ܩu"W>:c*{>Yw ϘW30FkPQoSJ}v2ʺn4S9=v6ڔ(}ZRbᴧxBgw~ݛ ];N+tz?ݫ(D]^'C*E̺P$ /KL:Vya (IjU$4[,9>OIo{x^X~"Vk>|_^jbG˭ {x^^o䲅֨oU<,0gEfݴ Gcz ȹEwl~ߑ~_ycULmk+$?i^Q%E\B!e^L6>f^ jOĺ]Bܥ_w_wB?_2 %9~~yJ' [KM٪JA+_YIzPVbu=ڇt1?Z-;oGL,u{*6]rΊ3m'eʹYwifr8oWAdt䪉QXRC4Of'~{uV{^U+ ]]6Or)^%q%OTqL8Q5L =a]*[1$ZwdQ[Lr3\ylmoœ+n[㖟]Mb :)]FVXbw2vM+!WS2a8䜼Rqٯh/6Ƞkb0([p]h7h&[Bw|³"6)W‹c`!qHp$Cyya////(xx ٠{` ??f'A:~ ùWDsWS{X(-kN6~K7ёItd40 w>oe{#g!j./8T5mNҭBJMltb36?,y–Z %-mg]] ڙfƕmUOkmyiהּܱзɾ}ou4:;NQ $ oKr82vC1~;qW 6BS)Ο@M,=}6=>jJ"hܱ4>.B+iE0v+kRMuN/Vœ%n咂7!jWU{j%)䬝kPc)RNpiZpQ=T8s_Cu6Ft dX yO2qByȨf%HXê.zeYi֙??[23ѳT=oi{QQU|+Y(ao= +WebbW1db YX.w6/3Kujy1svVDGrȊ{z]/}7y{bdQOrc SʩutT27+g=Ŷo-Kbt㿐7jҾ>usa 6Aa_x/-z`~>*d~+8$] WX@pT%v)lBU%0[2c3fe K6QT ̮t@g,6VEE/B6/tozrC n~?3S/tNFO! ~!aRJz}I˫0 +]ݭ*s#&%< ;n:%i/?haB+A/ -DZ |ֳ^hQ뾬51'yصs«ڋ/j~BՒ/Ԋ~&{X.)y)fڨG+eerzM?:3Xb]ҍPrr^NG/w~7u缞xlBt2u6ȇ^VI} 2.%f)] {Uν.nd 6!KyVR>_֯/RN!)sTUEdO) |,|uO5u77 G_B+(ˆR)n4;T'Kv^=^X4 o~3}O tURZ+hSPx8 !MZuumR}Rv{) HX,ʋg.Y{u]) kw\5S͸6xuK1q.Yв7_Q6*za:Ncbe>N WJD4+hZU%2D%TEΊEK]4_SZۖE蚵kT\j K3z%@ۑkMPo.ӥX)pe/^Q0Y.R+#&/'n-bw5͏GxoOmL|jTVY%c*bv %q,+WHWT2¡cb yf+E^.Q{~zv/k-YPJei1jj(һ HlU9qS"4XaA>[}ϰz8pήbtPj/9T.OV]HJg`- |Wr|X7,1>VϽZDo#=asa%؃ʒ Мͣ3+O(z8HYBz^R8Tͬ~C*^!L{*5viUXa5 .hpCbo/ۂ(4%͟x>|>fBn3G1BMݻ3V(O6[[KSQǃPGkcז;!9q=nDd֪W$*][?)|Z̧wBv{UJSWիǧ[U/ D >n]•x[vLg%*輋u}߻!*{R (wT~tfB7_Wgun۵NE2ވ&cWgW;gerrq{˼f{*=ygu)X\ŢV%*+^N\ol'qpsM|'kePS+uZm+t|+/%Ud&BEվmFIf?V$y C )n8J.yycxk w&D{I yUpȤo^,{vobRҷX:P)0Jgf\%V[=إ eKryb#T׭չy[Mީ@L~Y?-ctWǜtg5R*Exw aB.DM '?>Cs9i嚻~|[./?G o\|O+;uOKۡ\m@? CiYjFUQ,z޽dTT'/  骤=R$_}~5cckk;uEb%?/A-ң)_JȦwK'Sۧءa:RN5ivmߝj[Z<>cU*6u E +=XߡG$lj=Svn ^W:sB!^/fu)S/m/em"!luJjȫ.rsͲPЦKu쪝''vy0LRd҉vЏ5݅wau'i2{u J, Lq !Gb07S, @Y7/z ̔h<]9A>ȧH$ϥv"FHy.rV`̘E1P3X%iIlH`sX5䕰/,/ܖr*J` ],_ʨYmxþwa_7etJ&0^$^Kn,t0өɽ=~r*)LY ML MjFLU'țWeB/;v5e %LI+FQS~+[57 ]ϝgkBr=i=iC{5x6Vj=.{򎪫X˚:}>]&VNNCr×)=Ƕ_OMޓo kcx=n4Z~׬ ,[]ϖ6]L?-Bޛ%oKΰ|DKR7!ڭG]lUE'U/ձïusd3iiJ[97X4xKo21|̞%o7 ns{t>_ϑv%Jn"Y\Ƕփxre1SD'RONU4}^^'X:Kj?v|2^5&*TnL[Ju-]4ؓṘzٵik3ut뮈U]7쭛QNz+2U=Q7jp+gs/V~3 !DD(Y,6ePJ~6yXRq ( R!.b6!pb刴+ H<7-ԭ}Ŧ ߹Gw.K]S{tQV:GU13A0\R8g`{FdLsBb\K7bd/6+UElٲaTiX¿H֭[87 tHsZ 1@+VCOPlUVպ'/DZ`†%Q|趗K8 c\cyJRztUΊSTFrvHX)T%usܱyJs&gdUecٶoκ?Tt )I_5?>~#bm|)BOK䤓 T3OCST8 sQҏ}oZw}}N>>ǚ- ~!|8<`\0mSjݕ U<왋+5 ཀྵd}?Xe?JObv5|wwSoqrUJ6V\dE#:ؿ{Ӳz[n줼0z4vYԺĠ},N/E]!i{ |T-)GŔdWyJտm_ۨuI[N}[6;_v&VFZNW"UjVn6&*\cV\Пٓ^LZg-Q݌jOFy{oB  Bʫ7V+[{P^O׷zy:]”*lxI `{ >:ݿɯZ!N)v029 Sِn[ùowmF\ _S`uqH:_A ׆IP ƼlF* W(@֤.𷥺:܍]D'$ԕICFͭڳ*]TU:E,YB{VT RLR|o|&Pf ?K`> QthJ#0`%ܘG|7?WXm;L+DLZ31';/i?gYT-Cȸv}.*R?ʤ6TQڞib2jjVRv~RjjVJRI1IA7797IV+u  B>!FH}s)°-VnILT^:,6zS 2X'VSɓZЪ6"5FᓫŧFϲgZU͌ E(о6+b[4NTAGqD@w,)7{_=bsui© K Ɓ@2Eeʁe% ޚinv[wi`{Ё,]Ke`"j LW0_Gǵw#f+|NStF|zqo= о]h]VsӉXj,̢ X9)mmϋD(_}?5DuP|9wcQ3H~%QG!WqJ>|,OR} _f&E祡 A2Z+ۊEP慦4ڷܷ MϨ{RZ|^ [ )@o>$W+neGkCe,*3zJ^ U(r|Cڞsw3=bYDfԲumΨQ϶%X+YW\(NB5"_uZSp/Rq:ۺe+={m*`CUTZmrOM7MLr \e?| CbΏ$;qKU"b^DB ED*]aJPE=C;{Q6xv챊UR 'WdbHhRYe;Je 2ZKw(O@z[ ^WGE`+9vsx{!w}ۛ 1*0Pz _ӚFW 5diV% zXJ/[];)nԧնZ/DtP{6x*4U;|^ݷxQS?]ѓ@[MT)> ջٺq=DW^8ܵĉxL̚ݮT6 C%@T63~\W ݑ SIi|˨?uO&ƌ\/\7Xk[l;/_ŹYnd-?>/"BٴPԦz'?_?M2!Ai'ml~9߲_zsN|ǎOK]Y!_WVTCGɊ,kk=G,NE8QN5MUUn/3wǥ%gJæ y4nN myzhb[oy;ے JE:ˈkS:V/n* o0>MGUW)?#NCKC5۲*a3m! a[jL? X*; l/2_//nbpD Gȥxߕ~_?? QP{y*]՝TPEתN›S91eX:uWjŤ5JR4Nw,W֪T8gBJ.M/ͮW]pQ?kKDj٢JzJMevxM oB2 ֩Rj|$MJ2ε^^vZbX> /'wqʩKYc@։\T\vҿt̪ڕT]w~F{ߓWJ/[[WΞaZwEECUDu!:EݙniA7t񨽭A}>7[2@I\qђz*3Jsa2xL!ff~k+4t9&49+3(RO6N"A*:z5ux 0#(C>`Tl6eh~bfpzBrv0c^-iIza_4[$\W/$O]5L@gUJ R*勵贺].A*snMcxKIзkͶ)֯2_K'VQs]Nx\G0~pw2' lf?Jo†MW WB_mãv\P>@cCNOuμBXf4pE/r%OzS :]r-zďܑ4+ƒ,w/U]u Y @guۙ6qfz7,AL8HmL\`eLPv=EYpJ*$Jp1N×N)Ba @UX>Q ԛT*y`[KVLU~VNex1,17HTv[m{*9)e~`Vv?/27gV.TNZ 3 Q3EǭԲ'ʢan+ca..ja-Ud]T9j~T/|3}qprx=swVUQ9zs߹^>{YS};{VBݩYJ'ؼ}&67_{Kĸ(-׽.Sb[ "oe*RtL_uSP+QKܛULV#%(D=.hK^غgo/&ev:O=>[ 쯊|vUٝwOMϭcW_-05jٿ)yPyYSmMw[TV;y_W6_o>Jy?!Tj/6l(:l]'?u cE>)B+~VSu .}_t=+DFruvh F*Usj)?yl7.ū=yrsrg%+TBVE3k &3sՋ2z;0 ]'"g&sQcMߢfva,3G iќ*A9isx4әDd*9 O'>?{1zwo*7s4`$\ZWt+ZXb'x'$.ҝKuPU.mn%YAd{ȲyVWSyY{kbs{ɶGt24lL*Z8݈ܼ{,&u1`dqfeTx|z~k>K{0 ZCR´/§Yj#=KuDe6HsV*TPUneis? DB,/4z_L9ªkY;o7,~c_5o\jy)6<].ʕDb,c=emT.)GSy)[Tʉnj(\M?N܇J/UB呇mT8ӬEJ]7*eu =tk%K\:ZU6,S$Gwцєu}\e]ÊbDJLluhBuv.X?/}[(\f_)C?D]׼{?kWiwrG(`Q!X`0xTle7o)P(2Uyb;-S ݂H2%Ixl#PU檂0{N2Iiiѓէuzk5K5}TfC4pOtFNNZRaӈH_ibEYjS?vٳ*sAq\nB{Uܪڭ&W<".?zBo^y<2ui',P7TjTjD՛#I<ϑ盟OV]Fm']]z+FҚisW]z4yO*],DrWJ{Z뱮bWX,uQ^3(7">}n%GwBW]}xQmOF.?5]i~7ڲOc(is_hZzuַ.-B*MSҫ8d;{DltZ<*U6Y§XnB-aN0 J-.B5MZQO^?yaQP+ޥ qDTdI弲m;_&,Vs| řP_?#f22Ǹ|Nк<~տX7}M.gzBzzq\KVYtPT(6n0%[ Ķ8yzY -,fJZ:.&vzw(_)>ˋ_"V%F#D"ziw /p"4iK)ziL#CSGT|PhՈ\MQHN~E,=AaBH۷%I1_!@-W]lKoFT]:%{۠g5TwY6v'{f oz7]=FgҖI 覩\RKU]5x_mdV[aC0}Pf6tӣݍ%ƈU QO!j _WR9?yWX UL v'gJ`_qY!Zv&̇&"qMKzɮ GN(7U,9f\-CO5l6e(DFvA%MEQ֦vj⋺Y횒͉=*|yVJG+ V`mE<4$,TL_E_AVc"f+5/dm_]m[tL| U7 e|MTяYU`&=-$["1  3TQ BJE&W/b%5N/^@.*e|w*)^}'&ڠn4Z>cZld jP!3&SVml{rӉ`\)bxe|IdM̲1!MS~+%^o$W=Z2A8$=t;ø-ȧ#+jr ѯc qnӍGwaK:CѪ8dU2A]6m\$__?$4%ob|[vcLܦ$Țn_q:#)/^6ÀnU&kS[+!#TYbE"'XbE\U`S,]1熄͍G24 a ȇ?G7=*c2%Ds0^/ f:暜$H:XL˗6eXZFveglCikPn\ \o2h8/ӡJ(Oiƍ+c*=FR\}DPv)0y̥g?V֣G?%Ӫ{2VT2ne~Ӡ\ %"jog[;]#O96 Pl(ڭl.VÉܷ̓\p=}7}-ٔ>LRfy>h2RŽq~]-^~eA~_X֗K].6)!,̧̲JbPhqS^n-_d> D(XN ;Gрp}20A8Y/Pau({ne{`< M_o]3j1(l~ۢP ^7ʀ6CQwL3"'R ˙jQ ,G 'L*MaFan{=J+sv>|Ǵl{%)uCIXME_qp Edkp5Gݰ5ggME<]%W!:WP)1&*?&PDŽWKs菉1aqw,N#W7E䭥f5c0Dj[_bYtpq56Bί<2i(v {f6Ȱw3`u+R,RBmԝـzMEI bzo wἁkF1 evZpx3vLh %RbPVA_^'3"e"NR*ĄR$}3zBz~dU-i{ύ :O7/ ӌ^A07=Ɩ2A=>St2 M3W}GF:i/2Ga@ CtĀI d6^M߷j0tpMSC]*Ӿz'?7BU< @ L`! `Id @$$$-@F$2@d$02! $ 3$!& d!"H! #B H 1$"IHd Ba a @C!Ca@$ HB`fHȡ $"$H& H@ $!$  L#$ "HH Ȳ!"0 $  f! dd2B$! @HH!"2HHI"H1$"HHHȒ! $`HB)#$bH0023! 2 $!$d@@$ AddFdI2 !& ! C,"0 H2#$a $2L $ $$ HF$"H@H@#! H2 @$ $H d$!! ` CL H L$! !F@IHA$a#a@daDXFABBB@ E#$dHI$!$YVI$dd$$IFAI!FEd$$RId  dVI$HdA$$R"@B 0! 0$ @́0&@ a ! $a000@2@ &d!# Ȅ!D2`0 d$$0222H)H1 F) H+ #!"0$! ``I`&@%#"#1 H$$$HH$! "B0$"Ă  # HHa##$2 # $ @!  !AIdd dd d 0&a$ $$IFAdA$I@XD0dd!$ 3! !HJ $!I npkE}Ԝ?-?,_OoHEl 튤F"Т>~/:=sּ0b xrney 'v|Kffs:/9g㈖ņzG3j:V勫 Oݱ-7*7}ŸzSqw=ӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:yI,$Bmd]JTrNFVTNLF  |~~y{ҿ7?jmmnmmmmnmnmmnnnmvv7766w66w76w6[{[{[ͭͭm%iAp#$qUC_Ce|Cbw*$X;X}e[p`âuq/S"ZP hq`i/^w4xu}O2~X}$1`5 >t0skfϭrd*f.4Lk-"@$vۛ+uL)v!Jc5Y"k2Vم!7c??r)2<髷/3`}RxGL(*x+5vXbW݁xu_ݻg}݀TѾ a/l*S_Ur= =k½|mٷoԝqSL5=!tie/>^dFRoB9Pr1EjAy}JᮒhkrC?O&R{RTL1Њ{epxUaSY1c^8<d _lF3 z3wguh{̞z{p(ޫWhD+^44.44ŀphԘlCT>;ٱ}ʔ}ZbpZ\߷y^m81Ek)75UeGa*2{YB]WʸMNx`Ͷ^&pZ ;o/[*\Siu]O6)ʤnJg߬z9a#~l%S57DYCe4XBb8~wW;Kw]|%mU<)ĥ[Z+(k1F1+c0)ԋE+kubV"EY%]tKRz%px$G4HMqUa [ &I72b=SR>{wI{NڰRM#y Dq e9S+Cl&.ƿSQw_%@}a7qHKbt[ɞm!.uq |Oك_X'<$S˕@W9pX[6# ukUe'N_m|jֲV6JIO8~x4 M'$?pl'ȈfpdnΫkb4S!̵$RnR]f$.q88SR\̨O!9m8ckif8>>QXrrHL%)+%jqRRXPH,WYvPZTJKsoԟ/\v\(}xO\E !ʃ pmi40^ 0I !SdA}jrs0Yog9]0!3Va[E͌IY'&s{Tiz+x@\{;f†MY{o"r>aNg~%O^}mV^Z&y[GH cus^Չx޷_hk*x2.jU矱g§Ci@SXB؛3K: C`qJٺ5IjA u~]=S@'xj#քiVʉ4-.b03F cdHy7$xa4C]wVǠm en^Xz/X CꙢ4dңUxSB_?jo{:M95f sxI}͗$cM5קO+,G 1=Q Լ(v꼸.:_λlOYܸTo"td{fFrbq1 1HHo{SW#tnwq PyE*Ҿ+?yw4t0N *&:ȠI {ڛX JB;pF;[{=YM{SIf&bzx=˭ĭ7p_{(ip%cp}cEϏpqw}#7ِ *h=Ɍƺ>ʼnV5j5l$ff͇O%܊fD=eH̟}P\1ݼ`$WdK"A w[C+u9sV%0j;,I4}OVh;$6O6p-T|1DTٽ[JWXq$5ystoiϜ8qjD7[:f*D6@F݃c nw?;s uO=A6N &uQӳQxmqP/heB!pLʍZ&j)ÁNzdx%nCalR{2FUdLCqv.$Vd 9w7g=|}lkv|k+NVLz} {a<^fGCl&g w>0??kfLwT%<lw_Ƣ^hX>TYy{~\c̹3^/?287bd;7z7PG HB9B-,qCI izkosr6)M[B=N_q;Sd-@ik G~C?^Q9(<&w7aѿ*~=~Vy_;4NlT-.\1/0`bS!6!qfm9/Ec(aw!75h:>qACn6 NO 1$ݼST+mݤg^ZqT r\ac_0Q5&uMIۃe2(]RC=\I# 7UYuP#@C֗Fu>y>s{3?gу]MR_SܸEGj$ԘLOğZFvSoE6g q'QPqzm |s4{~N z:}u!nk+;U(Ѡ8۔콘!a{Lӵ{o~UΪ+x=CJ=ڟx#6(Y3JIPR>Qy>DLj#=5:#PTEk{B4caH 3-K9J9rei=r:ÊC"#17s2"k!Ҙ'^bg:$6+k꽡yA <..[FDWWKJr #iPEifo@iq$Oϳ!t֪"3!_/|α̦v@N-u̲Ǎъ)D!\1mעDcoGt/k_ `'jNY6|Si*w l;")?[߯ a pp2-䏈Ȏ+(5MU ?ϟg7 />hdTmk TH pPX16Rk̠y34/dI XY/y!xș<}s9!𰸹D1\qn5~Wwm $5RV*ǥ;̭)= $CTY/g/Ge1?䄧/w**+=X BۖRߔc*čY)QE2A&(*rp Q7-Ձϧ&+u {kql (~jw5zl|V]_JKZ8G$x?AvkLbY:lqG>YU0Jci~bAX^]CzS봽ؔBpZUۀ}Ӊl?[9f)G7Z@E9Y)V3NX5kY,^,Z^`hF##9@~ }G~X;#? _g,m~ /86 Sl5enwz;\y~?GԹ^cR@.f}v '_' BĀ G ,*RȌ^h! UEV7q?Cfwyu[򡋉*Z`~QCAԟpLIscdBƋ-7}v/olj Θ;ILs??ES${j3'x8ڍ샠_g/Lj ~*.40aQx8s/rGD: Q܁9/J?ئ{28rC;TDd0֝w8"j֖<tg ?/BÑ9d.oP/8Ȭ) oH5t)<,ϕfB] !}X$7'XP?3ZW q{y,NxeÈZ ׇ9 [M|q1U?7 %Z44r͚5`>.hZ2|20a9yts?P&t zԳ>Ξd]/F e(Z!j;-?%(rAU ^]!XGh((1RG{3̝G;8 sycFPq"G$ ׈8,BfFQ8d(_7[9yx GV|N|_$x1c:J'XXq{%ňJmI{[u O ]MMu10>RnSagBfݒZAGKZ!)݅Q'osGeGVXЪ's9 gwp)yxa9A #|ǻ`S_$/[~,^ ^z~O E?ڇʌtx1L#23M_l%-<3[Y/,22Gfl}cߢz\oq|g͋b7?-LpZ6M+dñ_wF+)h%)gtBQw/ cl&`,k324b-V;K {pAȗ(sX'ܒ`͂Dz{:e2[eϦ>;tT1jk%?GVI2>cȡϖ,[zUH8i )?5O鹲}@²:ʣHEX_ rc-J|5>2]uiB: KK|#h9IS^T E1aW#ST7Y bdD* 2gx>Dhwd?hĹJtP,Svҵ!״4740`M ίϿy?T6`>ڬ8O1(hU` !._E2'x bÁ9.:ÏUNBHJ]#r"2ܔ Z {ѠJ`nb/Zr cJlӟ8c_f"xa21 @~VH4L"l"塗dn'MS@ÕBSbAX=Hs031#@=OynOYȭ_n}>~ʒIAioϙ 9$>w8O<[,*R8p9WV1P)Z)pir;vm\cò7ZַgW#V[B?G5$r, ŔOI5`a08ҤDqqb|4˚Ρixo |rcN {XtJ#Oh].9CYm?KÎ8wf߷yERߠ:Qb Ggp_mJv,VOCAPsq\6#7a\.z BHQ<(y|{eZO2:Ev4=e(F[V߀F0ʺA("IApp})G@ugr:OEc?ʓƌx֣q)تžVmo4$&zO59J c>øfBz C !s}:]Yt3)/32l  hqFxzڇ(ht7Fll"}-b7J`Jz҇q(b V ~W3e?x & FKBO~jGcN b;߿%ш\O XA4+"ֶB[ڽC"ʹoH;0a>*^AY-i/}G#b+m}LiʱRf_#F/,ϝnp4~+E@d'nF2U^bL;qȳQL/}k ѬpbL`VtW-tdek %pq"2i~GA EN3o5q?>W{Cw2%k,O9g_PXEg]A+y /v4|ztC!Au0G֐En@:v'T3 OoA A Zr Ԁ2 EUA=4,p9R+~,`C`>e'hv<щ`LX`$"]À{ k T6"j1D}. r~ 7sp4PA3 HnEu倅< `;YKnN@v a0B;݉ k zfȰ:x蟜sM4v|gGhͧd>L%AtqT 8-A  *~, )u"yرBLL2 @| ƈ"<AZ b$̀|Hz*C @7@F<T><@t cƠd}?%TD8GAɊ~ 7#aF!~+ |/ɂ$Y?:=[2?6 @=P԰a.@vBf9|@GA8B!`@ uj AMP W: z! ( @#q /%ȀBc@ dPD$ACc 6s*DE;57;w#{_l E%Z;V^ 2tMKWhgy--+.] A\l}4A%yEňpM!Abozų۸'*$ԲNEHH(e=gɶ rpf˜ 2G37y48 .(5.!YUXs3" WqGj~DKWUh Sy4S,m<ĝԼ zie=N)I?!X%PƩ4Ӻ0:pA|M4'KP""͈:-bR#`>e5 1z(}ա-(R3O4Dz":+'; |**\oJi4E6mZ>ZN.М6zF+Q3PĊZȊo7z dRfJJZNeX)6D̒OYq8ڵ )fkSuhJFWmC'>:ЄTIK= (JA5*' 9!Y=ji1p\I8)SLa1?n1? өx(SuXruP}(\<sa1 'bfeܴuxڳz(H0TLTT"z}GTt4YjT5v'c`UEDHU ֨[QD+:^^j켬Mjr~éijF AXM {OHw#"ZJ Qĺ *!y*[OU?ZӁB(zZ~Aˇ"IHTDQWh%jU-^|AoMJMQZ61ʒ5y)Q4B9WzIȦ%ފpé@ļ A?M`#'X0SoupN:j1ȏA;X* U;(d h{(tڰ` Lx@8h+aE3@78xq"t @<2 e?@ |hW0Db+@CH tr`$0.`gܡ@pk`{Hz+'V4y%t+(S!'l!w{ ȿ2BO ]䑐2m4"gO啔s1=5x0^m&H[hҞǣbo/n[ *vߝnT7-C 4d?\b;L{d  ʁtB´>UgIo.:wSN7#v$4:Oȱ9GZ[^͘el¤:!ԫ-K{5! B"nʕ\uĵҋ\D/mZ?ҩ}郾tPk˴_!V(`zj-&2'\!$R))- oJ^l:B?إԌDKz歪+R?_h5ٶgqxQ&\K]רH(|v]u)w<my|==wAyy=6NF,#lblXC%a`5,,K nYTYZYٿYգwDS1,lݯ40i&BÍ', 0iS./ ś;:zafnx~h}C+l70%!C[7?sC 棌Dt[BE95 Bˎ3̄KƝTǜToNW(0 Z1&q iRcD|;w+ s}Ko 9zvu*[SphW(SOvHVSk>pd"+8]CO^bcrGP !$L uM`֋˳.|oL綝7w1UMO(I,:T,Ȳ\Y/ʭ!W !y<&)F$yd2;V#(0Xqz=8潈qSvE`cߚ@jt^^2a~eJN|[):o5B^N;D?<f%8B 1 O*Hq#TB'qUBG&.Fqڻ'wuD?!@/pxP?_tӋQ;J稓% !?׵҉FRK3z'5b@S_(׏r ,'-%Io%`IA7I\YJ&ynsAxS_=>ݰwz悳,u >#O`P}3 C{#xFޜ~yRCe8^>!DsҝvVkCc1r6~Ol8}x491CMkHhW8D~+qQƌA0\F4ܧ|.P; $\15utIɕ%` :DQSgJR:i*AfT [R^!y ЦC7S@}oGT8oG0h!ʻC <݈Lni:zT&VVOH+OnV$6)6Rs(drHM6I#A;UUn$oSqL8iaЗ]1 1FWs^{$=sCKpfH=n Ip J`-8SsZO>x yyN|M?=4K)7)e}39܈nt놁>Y-.JLAB6-nq UPB0h4b`dY8W/jg0|gSuRG=臯aX`+$׊ի`1@\#ʂtj`b٧:톍q* *7!/ɟ||! $n<鮪b2{nn F'=b}{x'7U)sL1K UULvoGc e{lJ&ÛlZ׷vOd:D8{ɾDt ~Ws dhT)%z&x$ j%y،ZxeHT B1Ĩ@ Ź{Q23mIbyEHAZ)o8xiLNՁ Y.\~}7תeX>T gNhUQR)]JիːA4+`Z-\-X6%kV=x_Eck6'j_||sf-olqpR2NanL HQ\|Dmפ7ys\ n2F&qG0woӷ \Gl@p<ܟEog+T%_ԪWA3ϴ40ӯqƵk^ōUܦ()[xџOjnZnb/ L*g LOuN|J@|F塬ݱ+ raQne& !oCn҄lnrѪ/.:XYOse~f˻^]4 &;Qr-~UbbQ^S'&BQ\VQ h E`^i4氟Ӻ/hkLTny6TzAӣ;P:t=g(˖N&lՈ?"'fjW 1c"oY38J vN̰Jr̓(ջRhIG+rUBMIi5t槒omnzǡxJy@r̮ n 6 \iM3@[?P969?*oSjHSCx=2k,s=067 P6hi] E?pb)듺B?9,᭢n(s>hߎ$:Q(=À_ns0 3 2YMj.d!ֈx, ?Tn)<~<'1erȯŘA쀔SΆ$# F;bD=y+aRXyU+fNGH x9fhJIrI|@mM蒷g4s|{y$LojN_G=:=*1dv!/ϣ6^a|::PIsd2\~~>XG0YFpC-0:hk@S KÂDmY#<{5Z.Ay{y{u9xy@#1ܢJ|{Lm e`͸ CXR0a+lZ 9 ,1*dqXA3Zr"8G6TzE;%1UQY=`Ҵ&b8˥o sKMLi><^v9$:#oDݞh:6=`*v /_a8&.P P&Пx29BDrE4 C3fҍY3KhB4ڢJTFoFAOGFLm|21v~~ і>XhsHC 6`CnHtlDžGOЁRS^NM_2._l:3}Z+Ug>huSxHGu(`A7p/4oDQX[a0틀?#T"~26Dbx!y&E[º4Հ){׃a,ddRZ֬gneu{~gdWk)'C-\~:}g"*'}ZZFݙ^w;;Cm=a/C{"Jxs]>'0ҔgN}aCE}Etgz_Xt;3,~ѓN|37*vg0vΖR9&|~Xhӷ\3Y~tG4hIQJAԃ nGl1W1n2`C(5spMɡW LThcw@dŒ8@*<8΅Y}Yd#,\28QL:dD q|ԂP"uaq80 K>+}@z 7a< ɣH-(syk,oLߘ]eE' J*%;!QSv\@ܫD`.;o+$EȀ:Z 8$^_m*RMgof6 ]f55*A/P=5i 8My,<'|chdM>0}õ9Ypąnr%uîLkNފ?0V0Fvuq2|C@RXWY p6=¸ pi ' =')>jBF_!|n \'ۡrcOaғm?#Irr ;~a;û1xz$ 9qq A8?ryNrLU;v5FM> A!}[30=uzhΐa3܅ Ol?큑d1wB(LMYC6A F|$ :77 32z4'8C)Gz60sHh5 <3kJQ&~e P,-J~'FvVՏuNI-iNhx3Jɢ-?.\E&zucv$b@Btu mNDzTH F\nۅ0:a/Gs؏='lkuLEFL[#5T#ve%,7}SwP6Ƀɰ>ΩXӅf?362IHmMi \6p h͌lN5.ǭ/n$Iaި_Q&:`ee:#RC\cD^6( <주bkT}~+ڄ՘_;f*+M&8{H:8 F/t "B^K5CY:nDpEϤD =1GnN[C$Hw&D=ʛ=3!GBqצ"@b)O=g1nr$"LNd63mb{2GL;3 s5FxaTIJx#A;e\ȓ;sqL_!dvbNw({D 8{]!^<8 bC}8`]*Hg M-H, S n~$OyDy,[[!pjwՋ8Fp ↺ ċLC?Ma FHh1<<ǥ>!0]=Q(b_P0{NF'\(:C 9bm i2hϯ_P/ؘX0G8wc@4t x`y1G \U(9bAT/h=6ct=3 2)3e`aHH*`+z0QF> ]}PzkAFXz Gzt ?#Ғ|p%{a 0r2d>q.;/i=> F Efv(}Ɇ;oc&!$L MXq]]qGKrÒ$c]=vߡK,$mj}" pQ3 k! ( -"EX:F.ă!mH fm{i{!e͙#(}R啉/zdoY_Ӹ8oF2 9tRk̇Hϊ,F;>Q ,$#;чcC~(E>|55'nv =0KٳYdř'nJL7(EAɄ/cJC ⬹~4ا5O㶾Sisd`[O;ͩN8>tW،З Dʣ (N P|}#qFBpɡK#`⚋bkN9M;i&Kr7}WЛG< gyr(~/=k{8Q ɘ6W=P&Fw0w@sIq`[)㤪`qe Z qn40|-ǎ1KF ^qJ8t25H`g)d~)0+ូEʽꈧ!@]6xܞ; qi`}3m8i ({Z6E@'n1h<y"4l?O?x2i 8[Gt^Ezq"K{M~#63&̔|'42GE97Ӵ;=02kσY3t'DvSâ )Xm|p;`:>ѧ8Ob#9z\`XI'͕djgO{a_v 0̡nR`;Е.#cy>qIv0+ < pcz#qtHg^ 5%&q'@@28|CP#*?c<]ct}.zc10#E4_pػa5uBt{ ݑL^r?×$̑&>-K?0gLͽI>%qo خA 2k\Zvi wn>cp6o<!7졗ˡ5CCNY7X|G~,34EeLm~nwAJ|UW0-Q-Ob&W2,Mt;8::ӱ}1<5"? yc!=A0!:f4F9(\%pwL Z 9l{sۀü6yChˆ=U{ ύ8]&otPI)vÄx>=$_ 0%2 vSEĆ(@CV<#;1!v¬{pqs11+Pz:i |d7^QKY'CZJo۸ 53ql_SwMКN E/<$ .Xj 8. oz?.ȄV!~,%כYNT3jBhlͶ4r&3g&'=-\eH H݁P1֒t߸W% Pq& vQ"L ~%1# CT@] Pަ3R*ght ,`2D<:XO(+E: 2{IgGPPBooơqHpG y2CO%zoh=l*_xXPk#!~(f6a y.&h<!\vjLA9o~[987a t֓XF&>~a葦$!?&ݩڡ` nꝉɛ,1싸rwkl&C>Tn,tR IG 7dpl@7~= 3a&EWF|Gg-x[!ks_t?AvL8ꇎpGU P]9!pnH |=y/' r|dYSsLoBimQəAp-d{֔{7pIAh &pe k2ç }Eھ,qӑ 1(2CPoDHu | La.Q{G[RzhKL#K3ݩ֏Z#F j!. goh<֬ʀNEğIad h曆!9ynpZ0`%/R>`I0Q_P^"տQ1[s i&-Nz7>Mٖ?3o>_*fBC yi_6C?HjCuَGPɉw_@^LѠ7p&=.׺폷r?"yȪ6fFG 9Kyʳ32TQ˲Nu&^$k_i QG;@7>s;gohfW6z9Vh']Xxwߣ$3F_V{Zkr G1n*BqW0<eVܯVRB5}Bp5vKUELxQ1Em<~ۻ< J>nFH\*xv= İ06"wC]ϥ,UV 02jƧ;s@18z m:PXU዗QT2 &FB($OO C3k,Q,R=5m0?g wF?xj6#zgù4:<5И=+.m OÂIeeE \Pz \JvG^fv'q9s=qTar~<5skm77z/Cb)~<y" ?>TÛ78y0fv$# "s|pe++ʼnInŒ'T g\KE~zdQZT%gު73%8:bXϊ~^^|f(b=3 ެpIF3e#o{ \5ʐ`P?DN: +@TSD\q8aW1fщ̪=cuc\W*. lpuMPPO4J" 㺎ٯlt"P^wF689(&9c 4m09I`b _`(,cqh p|ņʝnK j22 X(5zU wC @@ȩj.ŋ( rdU(.ܿ BÙ {9Շ!~ IM!z1R%OBklOх14 .;_8_S #'j`u8A_DZz@OYA:}aڼ@ `Z0T‘I7#89ƀ(i~̬ssT>qBcPG0@L1 *>74>QQ,7C>pa\6u6#LwF.'8Phk$vGi.q~}32fO>~*H͵2*EgxYM߃qLBD?3/\(/hSJhg4K\`cqLce 0v:>ϥi}<)gvq؆|넑?;?t}X8~s8d :C;q䈬`|0$ct@2ވᣮj,ƚ8 kC{Jd+^K.+SNVňKfiѡ .V.'_$5fK␉-ESki"G`PY%񴆁ѪәyCnj}˝sgMNvw/(xptD@;8yT2܁JzJs7t-fiVNCD߹#'\e|er_D.vw5~i {5;zq+180ّSͬgka\je `4#zG0~by\iP@{/thR-xtA-C>qe?G1F|}h51ĆSt,-k"c"p F#oMV.T &t?z/ 1PC!‡:xƌ+ @͊m L~t{C\9O:VEl /@1DIB00hda봣ldGAd6 s7bskEj Lb#a+-4ޜ.O7Bc#G<ůbs ݕ:SeKk6,f5 (KyFVmΕx2>2@ ¸3yq*d{}f 3)C,Ax{ #1aipZlY3(^`dFfl6ͳ^h 7+w*u>ϋaMpG.?ښ\Ej!E [p#9 äBU<O'' 5N !ɣbJ2ݶ244: "Xŧ;nO&T],iڋM(7Pղ7#$PPiZiy פN2ؖ;٨ٰ Or@; m| ,_^o rU;{,]av[;zT-1 ϩ.Ndl{gB`l?ƭ'?L߫oҖcˢ-zZ `qB Okr9rT4CXhx(z)5_f<HIށk0X $i)aIwd mVLߨ|3!' E z Aݱ ^u)իCɴl%'!=\sTGpʘn*T&їwRÿ@aա YpAvq\Sng;9 WЩU5^依G9aHRQ7U*ۚ`BhQ JEbSƚg[7co/w^ q3, 3;;cn=Ywh^Y.[;88p^`Co7ܘkstbPKIGֲN.m4G3~v:fc6A@ѣaVvI:'}to}FF~j~bss˗.\]o1a=Mc)SN(\9q1`1RrK|v oXxW^*g=ГNByez $-h  ݑ4̞]9[r Bgц04W[gi Ί!T+͓b7? ~YJ|Zi$7ߓX:; n[c^\xcx*j=q1Ux!5XwQ17k(1ёTغwTB@3ރ*) [IAؾ[h ΅}#SmUhϚ!Q1g0}4}~\ P'NP<03jy)`)V,8䜏._L./3RbA8P2a +hdK?t&,Qͬ#{)`2fE;d\S 4:pp^_,>lGg  of'MYsG,xD田E*x}{o, ɩdRYr|m21*CJӓʜcla]&P| :ؕe5V mgX0}1M|0 ڡ|{ǀee?cFdb[p.d/^Ȑf1b1befI{h4^4jhưclSm|۰3(?jcL5}#5V˝1we Oba,Zo/Kܬ d4ݝ{|(7/e?a?D>~!E-@Ft?wU/~mT[6cH?H?Qz=>>gC]Co}lXƞv'.E'jz5J9>t pbV?ks:L ?xaFlhcZБqn iR *wS@{^Sx\Oje2"!Pl-r0,FہFM?F3hxn73@jX'x?ЄoSws⟅ ǟ7L 9]~(3P!8¦YEUn-А76uŵ_<5`=ܘ~? Cb,*dDH39n$rDz*լH5 or)@2'/I {8Z6|+"%T(xp0SNJ!zBsi4,͑JYӾ(j[#ѽ: %l}.ePdFI9"&Ji1z \Tf|8!~'$\U0 1C3]a;Oz!UqwDgnÃ4}mDMyCA*U?XS[bUkԌƧK 2rI' b76gDАBT",IttayBHI?0&GʆvI9WxH Leㅘ*1h[1725,ǝ h/[@nUt|#fOQKS=*LOt~kzRLH ^b%^}Eq"xied"01`@పC<|3okƅdClEόtVtyAom-[V?jrKMeu-FWVDւ#_7r5u"<<.Rbպ:ԋKl$pW\ _M@/TwGŷp.ʟmd/6HY-KGIRdYm|m\<LZl.k33}3SmHj%bac:l]NIE x-OA4Dj3p4n8366rreISvbz5=rU ;R.b\dfMkǩTB&PuhIћ.2hPԪ**9a,jvnUrn2,1?`cL"o{ce~=Dq/Mcܒi.lq= e]9*%`|Q4>:vB{Q>}(7LrEbt*F̝dHJ.>]py7gPrSht>b`_}Z/َ7}e\0G Hfǖj :+S#4`\ r\4c<@tRb:_c2=zHP.߾N<ٕuQ !A}Ţ@QQLt8h _ Ŕ. Aw(^>Y"N8@IDV[1g$;x+j~ۛ<7S@w8MDA0Mk%u foGqmg=ϭn/;+PeC$KVͧ~z9BL=p}@ͯX,3p7>op @7Qke0z1X]]A=yp;gΟ6α ׸4|3SfClz^RNo9ת { ԾzbUv,wyy[K\žW$AN1pAV}o?co^egMɰLNCx[=tHS3ɧ=B'B)|ѫt* ?4Upp禿l6hwzS26LğϺTtQF Vf?qEݴq+tX'ąmyK]9^R(t :p{=v0҆aHS8Gdz6?´((ql\+0XeYlw%SӶhdnr,jAVь=AchA]4{^"!֚=I^\K61?}(~T08or ^"}՝VH >'}Z~׸eK:J:@ E+j ftopʪ_؏V Mvw!6i81VHт+kŠ\}8vU3/=Y3j+ id?H yB4Hά+Z"curP 'I*c#i. ~ׄs+h>8:^|#!ChF1 %E #1c!g RgZ+DJH_PA%5źCQhn0bGO8cJdc<>8g6|xĤ폟8mV!ZG5kD.Xd#8Qg{CKyCaz[R_-*oX"m,r#Oy<؋L] }d:]wj^nA! @=<qPh|_TJPF: (|"G=z6[" =.[#>mnrj!DDgR֤+D2UˊqI#"Bbbe bMrˣM+wΥ{H^R#Uk uuw`f$͚EE)O鍧8ChuǙ<`H H1! ]!|Op/?y|%(z`wJ@ (a{KFSk:EcW[ Nl`qvuጔ>oʦ Gc,Kf#HmvR?׭LS\]|%ZfM\(o-گTY=qfAjaPog6:aTUT&.*^Iǧy*u'aPhzlVSMQ=Hᱥ@ cRIfZɊ'ytiKqшg@zG@u(`4`Ѡz{/u\\Z>;X\q\2}?t )q &9aY{Z[[&~2l/st]^չyxe "2܇-\}pʁ2 JI".p0Cp7(Èz*D0DT 'C`wا_2nEpaO xrQ4P=lDA5,\Ȃ/ق w05h 'ڂU؀<D`($%7 7QxU'0.w?T,%m38':?⁰\z1آK;PYu^WG1L&jDICZc_؏/n1'se e`NpybV3Ɗ]D+mJ6,gYU!@'ڡ\+Vm㪹ۺn'jd]x+BgV.</?"h@+FW`cm"OO<8PHQm)Wl=FGݥu\'lY~ٓWěvD>}"OƆ݅ZAee-CmEq1y<=Up3䎛8i3 nc-;<yadE"Ylqܵ-k࠹.N煻$Q#n둾yzMbq8N'q7zׯ^z7͍ŘI^CXhꏹ!(#$o[nlwWݏs-StM1C s?v92rK468U˻qO試. f($LSbM83X2QP°jO0JxُY-` vȆBXj q$u07L8ϯ&:ϳ7V̎Apg%Fpep_0i9YXir0OtztYX&O^8E{R%bKz?@y7;;|X#EhdT by:Q*i rf@~Pѱ:s+> Zs12!+6?U'|5w]́`[D>ĸyo ߫~~^ˊr8JQ틺sk~BNs$%\ޫyb!a2QzbDnl>pjwOCOH°y={G4u7|.3t7QбYGOPJXqd10G#l&SЊ! U]*:9$ÍTR*/TBI^UtuO㜘@&ڨU UeqY˕zY9W@6,<1`S)|Y|fkyh.Z?FყpZu*nڟ3of9?VEΨ\z ׌ƅ<1cA͜4Z(ͨͧ,GDF 7& BO%(*l^M΁_j(±}ۿ\58[6-sgJ&V(`] ~4>>2b2D)Rsٮ%0* ~XcjvĬWF"N0)ep۝7F?m7=V2p݇%haBM9O6`? T9#ɺLmd/8>Ýw:Uag3RyE`r*UW=U4{`4u_9 ]T7fg1gίJ[ bعxs`lq9@6"t^rn%!q[{<]%Ço"vOyK88Z0\}u+`en 1f;c+}"4 RXW+ ʧ!B$b,^.>D # * AEz$ܑr'_x<|B e6WRy[J>Tb;ҷLMâbyXоG?`&tiգPA K(&.7%66;Y>F=T>U}u; !Z\|bث+Q (Λ}D0@DY 2fwR+a,=S|l÷<;6}mA;wo|X(r?Ssٟېl߃|l3⵨X(p ș @^(L pwvƷsꘉ^`u@~B} v#a{/ʗ $A&*8Kk̉Yƃ3&9 ځ6@p̰r99N!CsA8 (("=]@/lضz]Hqן>O X7GWIME]C3 ȏѵ<qcF7,;*xN$4ea|Wph0Sbi0b x%vK+ǿ|[07OO#Gc/YT ixYnD5<0lǿ}gԯgC9+:v2H`s!ֈ><?e叁?rW;B,m:1qzj0[Ԏm8X*bTW;h԰zm& [~ )А!:J86u!|är4-6QRӲ?0Xy!{>+|}aPQHq]G.D<.S+V>38PtN?ur)vSw&1`ξ`>~?n*ݦ~ݶj-RY9)jš̰,bccbAXlbbЍB#RGp`zWghwvrXRi2RTs)yH|bu>\ǟ I x?l)MC{( !r.0ydɺґS9 ujT.LAUb 4d6A`j!aC `ȱ@y˘[|ujX })Ă>Sݰ#~ ެ}p}-! QuCca H}Xt¤?Ho>$Qd"TDŽSaE0!X7x;|Sv>Ցst0OxCŒ=IuA)v~ZDWhI• ~:LxyrH$WR69x~wp']fӬ{K1IKSz"vEs|! D/F1rFS=AT=ޠGHs|(Y~8fR^3/!xG10՞FE:B@CPo}:|q`}LsnO;_[b@H\L\/R-4jZ?4voYS"($!/2h5;xLJ'i!R_!Xn>;#alU[$%!EH 1BҟP1:w n0ݛ8M{kr"8?ăh푄́*v;7^%~Š&Cv=k=} طȏB1G!w'j 2k^`rkmp߆y Y4S=΁79.wwV>d6TlMZiws^cIXN쀨E2dd$)YiHZ l}preZ-"T-ePQ[-9 ^A0Li?0)؈Ki !C1[GvCl}vڷ3jWܠ<.{һ5ZO~̎|ʸV);TBqdyX: 6ct4A- G7׆f0pi/pΚfߏk.!1loZU|; 9>UA9[H+Ѱ $$Y3«R9$P$BgĨ  ±y[[VW/iLAHOʆI`){H!'  Sy۩">CWvngZ>r=|Q#R2!GQ\8هn_\ ~{cX'zqHwv)aDRaaJ\ ?b B4ujF =>Z&1A!pPYj:4)F76#45#:8>td"S; ͦJ w$1c(pN$!>uGgXf;SsBAPy7Krܕf (b)@b+&{4FCpLH9t1#%1H7/m{fF8ГֹxU޷wCNAlyLL5C΢OmBd7vBaӹ*;Cַ}0#@OK"a#CC*% WPfY4bF+CM70,?cٲF.-p?s؍Yc\sϞaٻ,Sc=}??# 5q=^,5aYnEisI!~B"jD9Dtq 尐Gۨsё!~1PXjyO梅CC^q QH/Ib1lo(Ä&(ќ wS4b =_XCǑؾM5q˰H>Wb'ÊD9tCsFM 8)3N1`xΟ;` |Y[=٭o w9s|i) @T7yOKo)(aCu7Fhx3ߗsCs'Hg[B i}COHqlc:܍8#~ޝB#A_Q ‘ L_Rk0v<T/G2Q4 ! ԀjDO()(Br`[*f h8⸮+4ɞvrC0:b5CZYoj !"'9H,"B B$! ) !h@dRAjd! EdRE,DI@d$?,@-@dBEdTID!A$$SFEm $"#! * H#"ߢ$T$$P $RBDAE!HEB@ $H@%P!hH B# 2'ሕ$FTEI$@G%Ad!E$~:PH$`0!" jH",bHH~ Qaѩ HF!"H ȬH-*NTȤhD TIdDF@P/D'ۋR1 DdD$F@d@@hȑ $Hj@j$ B2! 2 BH #",T!$E@IAd@FE$VARE$d 0d 2fwt  $dh#jFHH :R$  IY$$D?LC %H$ T 2B, $j!hED$JA!$ZEdDJ! dB@D AI dK$ȅDG~onQ r7 ai;d8U"&. Dˀ Aʃ1dv1ÁnD}B.۵c=wlC7yP`T-H}@;{Cds<j }m!F1/5o' n3vyw t~w#exu ~`MD1~.+L%wsȋ vf !6ޛ{ňr99ؖ–: LU GZcKIj T$qhS6 ñO){P5S[,;YiccQHc=R(WWQ)}cH~XjV::ϱMetfL"ppCb!uOu",ˉ}ss7>ef!b 1 ;Cޏ,~es\z,D;|=sXV竸5޿§5@:zm7Ryo=f*<ͩ sk}닝r0ȡkzaz\sCQߤPx2w}xC/S/##Gq!^oo 6]wRψ\ʭNKy> _AW* T[]1:b} 4U$cƧcCYC@ 㬫/c[K:ഀIB * wB6,\ѫϢ!hGԄ/S8gk07 n_is^z8 ˗, 2S7#eƇbvea ŒR}T_iv=O!ɶ*Ru섢A #B@H{d5,Ai ]fYȱǎl4Y.,lrEhhZD{QFswC{)C.!8*AU  \ޞpe2;@oֳu##r?)Sy9M9g''''''%۷nݻxlA1m h Nͮ>vb4Y7G~(A1' ߫?Go5/:Sd" iIlI֧|bXƔ 6L/ӥD-} B 7G}ʽa ^|]CPu'kH^Ġe}a`?>fJCQMmM/>!v'p.;ݰK0}Xmˮ qGڙAhqJynI+1f]|c˳\TbX6{ޯьnjf  އc~Lki-ݿėw|;`11oS_L.5m`v&ϴ6poJ۩N 6RY<\&c"ʆPTA\ J/$u'A@*HЬPC]̡pR]%6SC\7<8!)! dCqfɟ#[:¥J`ЄB@%D Fl %)4 s f!D<24}Tw8 optg4_:k΍$=O k0m.Bhy7Fk_bذ>~#)?!1Ha A0h~m2?+GF~oA$ ft Xai,p|fvpEg~xAugpkhT >RxRߛ4w6xz~804d}=C &!x hl]^x=W?0}YF4%~]zgYontt[PH4bϩ! t zExͺG7?Ljo\9<͈:mnB;/"&] AmM?fW0l3&-FC&<ʳh4̐mDMsiA r3PޝHAn0P=97n0xpU3./PzS3iʣ*u1);f[=?Š]$ &+N-s0ֆ;ޙ:|9*|s vMN-n=.(|k^P ~VtŽy2bGe<"vM3L'GdI0-PS3ʉ?׸]X:I`ϯ 2cW{K*MZC`T6"7 ۜE"`U1JS`sTrG׼ >gSq6"vUcsّ31\ו~ːhފQjMU\L2d"bRJȢGh;!hz5G-79OE' ӄ*TV~vzkO*Z7ǻZܲRU$_Y o"&'Z./!qH1N~Ƀ>4kU)-P?hS7gϷ+K8XW= &98].@")gOu6フJdWr*$}{deBqS(4b޻2Ua,p:OEuƪM gҭZ>TK:bBrFxΔ'48 tbP:?%rv0oh%VQLפ&-\؝ $~?aD!'~^7w/6[PQ:HZرpVؕⱨ- p68 !xwXGpVr";l?{odȱ3wT=݋F yQר82Slt|Áɨ(8 &v8):?J4 xF-Kvu/M\2=~-hJŤ~X[?8Sn} H%k-he ]<4|gςJ%$x_^. wP<ν{~ŷ{74vU4&pRUG8uP?YEEϺt-"Q^@ Er2jCvPˑX_ Qק%#!4d "‡(dA{"ylQ9/8-2qUٹ~?D-nQ}wAKz03 i"ѣFFAcr9ZnLR9j|= 6d[0bi{6am6>;,a(laL4J(KVj`Szhi2+ȶWsu Yb{_'d>YL炿:ns QkE{A*Bgͫd-j\gţ=j( ]+ "` U1 !<nB%)bO pq(+|1ϚNq)%]2uy|;Պ1A؝2vpNZUD76aRޣ=~X)@GHXVYh1[H'jWy PmmY)̽Hl.A!% "!_d`lJDa#Rce?L9RvM OP"9/ɠa!HrUlmᮋٻq:8$"+i _ȶ`FDVЛ4=P;j/RDWp@Teq7Hj@` Q`|n);/&83>{4'-ܱ NcE_R-sgқgS>ksYfe߹zL( fyr}L~MM4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4Mp_=gV6ik:ln&㒖;_>^VNGFXjF$VPQ(rD,>o"@ calmU<,j5\P v 5> I].W ”* 3YB 7 mș2bN,dvMNy8mWb7z׍AfjO7{7ymGƘ3tŖꝆø7x='MJsg?]jʿUMŁDֺsv8| `pjZ1 m4V‡'BEŊf[ʿ2J`p?%l8u?ف_ӆp/xˣd=He""p/h۹mNPFqS"'U0 w= ӲŬOGm^uC:;¦?D[`ވloTSEDh{e/#:]w]7*ItS>>Fvb64D##k5˗MZ!,Y 2h5&4hѬ<7l:X%΢ ]? O1 ;c]+ )L4@jڷIKy(F+jWY[VvP,HHAkNMB9% 6ӏcdKNPfI]R8\~$\k<3:mhąumxͥt3Ԏl\͙dVٓM5m&&Xa=jԂ~FPW+yDѿ0i֮@c{t/" 6 ԧý~m+?O|>' Jz ,Z5xj6͠Ѥc\& FmuGԽHwO>(* M8<-Ufy+e/1` 1Kl1f+'=gі)ORpaMXY"Թd$#`wǚNKoc +hա^(cq4D7{<ҽ$/k7Ojt01lrs AJ>SGj Ҵ6l❘nAEU:D@ w6>f17呂nˮJ:/ju3!8ޝvW{rz5ktAT^N+@((+"qbVaiL-[3&yb M8z~RffxBr(r7ǥMDw"nmpJGԿ.bziKiLHkwI7YJNYDvMQ7YX\x70 b!y oȄOBS>N&gѧ?Xw槫P 欞!1(E))y NX,FmzI̲gvfP'kӻ?p˲ [y4NÃ5"t0"]Qt[4ygy |g52c.VPTKqfeg!ud <1>͓AFy4\ԙ}$F3CbbHl,.lv,1k>N؝DGI%KIGWxt91:BW!<"JBFvXb>9W{oE+ oh9}~1Hlۯ|:C;J8n$Zs3dA5pPאiZ X#|ZRNr_"K|‹Y5!?FW L|g>ܧsJqT=ao[Ȃee8Vҋ#RUՑã\+%ⓋU H5bR`fxu].Nޭ%R>ǯ%D*其i2cMzr˄cjv0*qO M6݈CD$+RgQA[uh8Xt,WGG218G3l$.ol3!uL:e4>(XY|[DǨkoG.i(}my[6l4!},07?Khj -PirPzڷQ:^b̮.T-&گ7 RoqNR p?"ܱ !cv/ &-K%x1./.^zL^6¨(!€Z¬u0+GijpÁxǏ*f[hkƄ]8lTBt 7=Mxߟ:gAR5@Ҷ~bqD :2u|__Fڶe4*xY2ӷ驒/s|Ѧ)Ami.~Q+bC`y-,R`-u* DCc [> \[&ZFuX[AÌW}|rES?$2`<Q+kkssi+kueLNX+2%5 ѵ9&mޑ2BG٣I=p$Rקks]iG)i-|6!aOc!@".Fח^ۡø3[szڃCLJ?+Ka\F/υBnKt?23,WH)X54iX7Ɯ鎟g$NMhωbTx93uǡTd׺Jq7C6eD$4sv" o^) C[N' GdAt,;1|piE=a7ݣĵ9^qo7;2 x߬_Wϰs7hň7P7c7 ًAЍ)\\˹z&Xui.}E0:.OC +Rh\iPQC h̝ɳ|C1[=e]E 9*Jn`8dK 1睕E{}̍-ꇗдLﱪj͝@W5Ht+PV:~~RԦ⧙9cbgg1~UJFHfU1!/H _kg7nmiD2:6һa̶zZbNhBnhƜЇ/miNCp)m[q2u۝|rΌI~an{ n.fFBw_Qu}oL:Z?qPzT*Z`T'O&(Z)RM@)S%rt|d+tǾ|GyIC.L3srsu KÆ87A{2Z箆C9k3L 33`yW"{f053;$t?>|x Cϕmu-U`~tqr룟zakeW3NiV]\3S&vO\/zK>{hr_Eֱwb9MSe=&KԶH(j㈐c]t\ [f,PMnOX֨($9{E_C;0^VWH;OU[ګR=>vnÈ!:%2EAZWuur0TT|P JT)*UMEwHHqB+7Bie Mwjw?"La@p)}Sy?ʇZޯO-F c>{; &EW$% _. @ׄy`s1e&bq_ `[du_:_yOUŌFy3݋pfyoڙVI ?x[RmTEBh%o|ni藻Cx:Uw(IJueb6cKYOF[zp-}zNDډ@y&9)˚d+ЈM6 wǙƅZժf)R)dLIZሴfM.̆c FlVs6}w4k3_֙/7Zw^RSlmy笑(G3t B= Vi}?ǿo3De*~PdwC13KS%WYl11P__5a@q5L:@.?mI,!Я+jHBr-R2>% E`)"AB؃Ax!|bV$M"':Jq=C0T0dT;xa"\@= [!6 !A :K %7$'C*"?YuQ5 .oa ') dNqA[˱`L?f h(\޸JPk^T bA?du"{r Èك,p gVxk)b+Մ6S! 1A` @ 6Hȱ^ j3ň% 1],bq.a`$w~A v胬a66̀ AQ"j2 @@5!@Ki~߂/=ctY#)@W Xb:TT~CdUh_PEGhzSG@\Q~ow7^|?]&4:xqDW`lb&~ D𻂠E!H+!2QJQq "DDA4$]V}w*rX"XN8{fq  @ @NEj"g^yDH{:_ХYmS Ab.zx$@AsYNs_ЛB]OֳlܪUHޕ>h@csawKK"ʷݮc:\Pٹ:%`r#1 IGj#o-zV/RW_UQw\Q^o*'Edo"[Xek'*x&"rYZt@PY%oohWwQ5cb,o]u[IUHjLBG;1K"}% pmZ35u_ ͖Y1VHQaZ@p3ׯ '`4C eB% lF᫂܎A#"vwI.1cO2vmR(&֤%P;cʑ@V>i[ ?h,x&ҦXk8>78D 1T@BP4'J iqV |UD"%xwWδ:?[)5"HlJJYD0-&%-% *8>W QSs<9[rsxWO_Ҩ$UWp$C UHRZM7Q.B )E% +e<7m;P찇'٭t&ߠ;eGVwG/RNVN˝7wF_N(yy*[M'}ncօ.Ͱ iAm D w%]|Sr2,(b(2ʾO{|!o_3%>~ QV-_W@9mg?G]#@*v;qo:aN9o{ >[KwUYVQchVݯ1!G+IO^h1|viDOz|,FUGؾ'}cQ٫^4_NO4#Xىhr=5@ԅHpi}W hѐBڼrmH.*Y{tS+^_?7%.5*x3ygfk>\wxMeܙ)i.B๲,̵zYvveAgp\}LQLޗe~_}|Y}v_V/NP|6+\ -Ӏ4i:9of[?"(@}81,yv" 6+ApMdG|XLJ.e@?aOϦPI.*zR 6m#:#MT֪tVC 6٠m>F>L8n}[ \Qgz\TogHrь՝*^[c{mn1I+ qaD#9S6sWSvnF8ᐖ>|H=ƛ\7tAw'zw9s% 7ӧtbā.}T.؀ ?I֣e]~_qkMlI"=O .\sdVPVY654Eh&q-VquverF|:uvgxY*Ïg\VևD_h%^{<;et JKƏ6#Jal9z 6ۚ8岙5;3ܗ~ ℒȣkK6 Q򻽧axWh<ҲҴgE OnVݶZY 9;y w,\y+2ˌqMƥ-_g/'Y08!}KDSEpBY,2ˌEC2Pf2`2fP/qDHg`zhF ,q".=i^Sw?ϵma1[a۷YkV4_T=YD lGB_c23AAA$E8S Δ>F?,@`gF˨Wr揉s*˂AJsNk{Ӎ3W2balW*b##{- g2pS#'lo"U*6qx^w` 2/0?U8P쫿>Qۨ͢(EYd:) hˑh"<% 8kAOy#z,)mkCIijaЁ*!0W 0WWyb&L2h2ɓDo1>$Q5mqn\q.=i}UQ0(fj;";@$%Ћ'pwB?٭o=$M03UJc ŲbIec3`Nlvad6 OcMvyGvݮkڲӧN:tӧN :z|ڟΠ}9Cx6[[َbe; Gj۬Vzgqn N+Eu .d u5y'C5eY8b[SJUf9fDՆ18ぽuUx'E!ra؞nΑjxʡ@1[}Ɪx?e}kwUҿ.yTo=|zLX:h]8Ǔ7 4}ʿ)xnmSK ɰ+0 ө  sdE*JQYCȇSRx7vh+CC:%ss}U9l0Q퐑Jzai59k iqYΝQTI{pkA98HJGߢ%]!FΤI@5Hbf\Q'iD8"A9{RD=a{/nO6Lsmh2o;RV҄V>]b4ۑB?m3y< jvqꭽbL;VJЧWig꼦YD\(- )Z)n IInH>XÕOάi%I qJj07JFa3د쪬.Z'd_jq6sPdzc1"2-6*U\YՇ6ei/h-Z[[[bNw06i6#3]W` ;ah^*uVOYRi98,zkYhKucS7%)V>ZّO)/b{4g(ʉzo8vLvSt94<䂈*O^t=D:N$gȷ_wLo;~-3O"xg:Qp?oRaU *|Y6dwtd?ΗX%=7t2P_ 1`GN--DVuc@Z@T;EA,ֹVbgZbvjbQf~,+)f+B [|pwb 2k #bL \<Sb'+{f(,~WT0ZkUwmxX"P8OMyx{͜Ŀa:G.BpT0ڽD+3BFNÜT-m`_{I~ڙ'00_'xߌNJ6y= ظhP2lBA6?Zn;("<F(¶w~}hy7>:xZ3y`ͭh;@Oi `AO((Xw`hTTZ (m)4j4\<١z3x_(;m]Y]lʶnY0g xC~zl2z 7{>i mO"NA<|ӑżO )"mX:9t_\ng-$/;Q۱.σ[8񤲢LMSuv;^p=-]O-.0cG\D^|s z&R76,R`ꧥxTgetWkSwBY{u$b^#w_1i!AzH)̀$I l˭*{|/A/ZvhM( ~l 3H'oZ2uյr@y$0D)ΊUXJhjK= =m{22zp5#ڃSr`No>SE?HrɅ 0O`NW:߭ZY$ ]|D.Km0ORp[a}wgN6S3@='ݾ9xï(*xR-"l*ggﺁZv`kĆ~z j{) Q1\+Jq#6qVT2P5+ub*U K-DH=)G;Najܤ||I]39Bu>XޭK"FV]ZQf~4],+kEٗr*og9JN~ HlUW["g#ԯiƭ+&?|6T۪;QfwQl<)ZyA W Aδt CoBtt+$. h0^`m ^őyG x!>&Vwj('.=Maˮ`/캯}9ʏBWSA1t$G >~}+ 3m~ !( z:N#V>H5KfC9\'Aŋ1$ ٵʂz䢊sWTQ vaĴcTp7vאד LGH|ƈE&/1A`aG bF[{I̞=dbrQf$t[x9(7[PM]TGg̣ "K^{mf%P l"CgV t9 V=EN,:!M>De&jqgWX+&iS> d(HP|.tqQ{㹕F՞o]=;]cqyu 1G6 . ~0`d1ɃcQFթ(ElZIWL6^aUL[3(XR@wpc 0'>"ezjae#Z9i,i@Iu|E|ô lzg)S6* NGԄL50 U2WyL+ F"!^ecQٙD;bLU67iE@l±hz8sn2܌tƁZ~oWoc;6ݣVq yҖA(@:[ǼVl5^xM[*Lt2!05EX8|c կ6^dޒ2^(2e;c+NyXrL, mD gW{yzrwtEK`4d(P-hJPSRcњ,(]#a!j \jbj[BI6Џ * W;E@/|p("%V7ׯU~kX8+ nϥÊH6+;>޴e.|cZ̝S"~̝DFh Q.⏙ qϐ1IyM2-=.my+oフULOJ,z7(eJ06֖(3Sq6%kS d<(Ej"6C&;&>E&e.GD$cyb40 e Nⵅ!3 @$d`H{?,-3i'JBj*h+`E #A<* LP IerVJ/A5c .޾&0%RMT[%O vN,J0&8Tr埘b[N{HMl=>uP1qlw;tZ =rN̨?`nft1!muP% d%>uQ{*|sZłHШ3xJ 2bz>-A),iX`>뷅}0dýL:+)íIi'eOL}f̦..y3r雟M}ccSӦc#7D)zbbSkp d\e/#S%L8iy /bVLD&4Sical=qʱgjNr[ -5zР+{ȅ WՖ]JsK~ f"a0/~UWx{St>i- G0;g*KZ LRm ?ך,$;], y%c;ym{] VYqDm1Դ$:Pz?_FW?U1 {X<7AaIW7a9|Z7߫B~b1cNSv/ m+`w!ahxJC{nRTk_=6HW|<A >~!AGl?x}Y)dԉl+bqPa0Bi4KEŒZT(6Y{)_pK+28D% D+arbKI7<(VH%\\,<:پGl7O?>ZOqm_b>q; L<9Zo j^Ei`ddUVhbt7NB9ip6W$ᥟ`>yCā4ZM RBlF>]\o`Fo OZ7"L*ѭRu2\3؁iѦvwBbyA$RMveThLhb$6m# 9dFxL3*03#n=u{AO}O77_!Kh-*3e?`Y=W L>-#6Vc.S?"5[TB>GYB.:OI <` k9VhD,dR'sP#'5K?>ZT>d\‡)du y֛~Fa,SyICB={lz Lg>ϋy{oD{dª-&a3oçy̶Z]pAQ*gy2nݤ';?@Aü? sF<b`U-KjDf\wR  PE )xpf,TgdMͺJޕW,+w;۲#=%LvqaSRN4$I - uPP P2#(!؃!Ȓ<7{h/%U_5!*i*|$0*n9eQ'z7 _v'W/Hz Saa7+xłĻ|jinRرr'i %?OӍ5Er( |c4gp3S@Bg0w癩CF` `F-.CIP[*x.{/9 bQ >&Ƒѳ])WKOƹɞZC /[Z.;r¾L6M~)7qvǏdG4"h|nwvceV8C{ 0zq. Tv/iƄw!皴 Xoyqj$RH\QLi8!dRJ 6ˋjPdA~!=|A3_YU=& pb K}u8컛cBr 7. .U"{ֿKmp5t拟A<${O>},#r[ $uCII}Ph(aأyYtJdr?u_(kw4ZWcKƌlhÖ'JrW AcH~zeaw/ h<<;n=7+p P[h|D׻KM=&>&Dw9ox(]oGXDQfyGw;%ցgՕ`R˞cjGk>b CY(V>WijWt$>!o' ̦|O]#ģ e=^*a-4q {Hia.vȔDel y/?.?{):9cCjzA'=v$Ja9IUIM!!7o(t=^Xq0LBBY dk4ZIN .}c)g|tX4aM]"?'b*uWC voJ^}үjdzS0x1 IOAdtيhAAuvɘ俋zO7.1\JZK{zc*X="Ʊvg;xq佰TXIӽi eJV&$r(hψo2\I Q~Gl/zx,KBB徑t)K~(jwZ|z!G%nxwTsL>,$R@㵵U=W ^QN<_XafIt)+$(,Gvbw1RbɃ>W}kYfl+*_L`wR>{$*Zp9,@ Kmo{K;Go{S+X=ӆ9p7w5A?غ1Y3e\x߿s/ ՍH ܮs-Fg ~sG <&{7EIv{؞HkY< %W,ѰH-=PV?T.Pin< :YjG V7p+.4$o :oXMzO8g vVv[LkDD>Sc͟|%.4t0O0'XhMb;Yյ/-FAEԷ Va+G|QB H@WȰG{g?^YG˽AZy2ï^eZ6C<΅i4Cp$x8ry|? !iUZlc[Gu<[i4~;d(*'0Kiu@3w[v/!B7[$Yo]UК95"%wiڪIA2ӛ5Vp~&.i5Z.04aqG)/97\>SR:Ƿ;{l~" JG}ۓ18,Ih=β5Ff2;r;ﵲuQo /'2t<]ql>_K\*Y jMirCfgVz=_=Gcܣc^륓G)ըn|5I#6r¼oQ./;;m-GTNE(R^0p+D- l Rb%MƁ'~T1Y{DGhiZ|];:}ihfcqMy$ pz~]1^O4՞[dEU 45{Zx>,f}\Wm.>APOɔjp՗L/A(Ao GnDګNqO9 џ.wS|LFҡƟy`QtD,}ocnD$R>[G~s7Lb zk:ⰉQ|.s+$WY7{H ǮC~/~~ו UTߟ"ݑCRNX*Ǽ64H1JQ7$un3f|)ɫ[y1~ĜҮP+*ɩanN~efZD^6\'gB7v!dBf."b%Ug3CRjNZ:[J D+rs)cuOY/1a#D1WWaK..:"k *f4XPϮ0fgb+ȏMrm 7요5B:njzCj[Q2,69Um+dogְѶ+UKC8צLj 5&ѢU͹mMeޯ9:ݪUf3^Q8sJA[6G'-3a7`:^hSOD /> P4x`TT5!EQS,0?qcQ"F*σ234p)DD{2Q] *\N'`ljhRJßnUiam51<ČE0V,5iYzyĉhBzv%C_}=)NT}삯d:F)VE@s j5lժ SC:JLU(EE*"8UJ:f6B*r64*f&%@G:~^Vo1H%X$!MW`TK)YMCh&ddEQ>d2$F﹌cMQҷb^h<ᴰ_cdj;qEUF#P<哓)YgݙMvjmˇŇɉ}*ڞ3"U]ݖjmp"+[Rh 60FTޠ7֮}N< #6I~_z6^}VVa1^LV-0' qhqh0/*ww!*No$(؛|M=?yqŊgj#-0a(dYsF&4TJT; ?J(9닊S,r^e&"4AI-mɅ(1Z:=6<5 J>Jӿ^o(M'8Dz"R|5Qy-bN +F)rjVy*ҢnHiCې P*P"s&;%h[6z'\}2\fP#nd1v  B* tQQ0^z#0`d33]~2DTqZ*ޱ^OѯCtv 6a*TO;" ;ܹ W$ V̷\Wg "@ p#8ѵd{F v1tCْkPT+`Ԏ8:$@{"SwVB2.RCv8GyZK'So=5Yi]w3QׯQ Rc,[ޗ;i ^VPX| 䁏~8cˤ j e 낤iy&԰n`z'es/ %:J4J*f/%V,l&j5 bpln8Q#>Ϙ;_.M&'֓L{HH8 CA͠XVW1y)ldeS:Y+3RO\vJTƊDҾ ӵ\.J^aϿ12W(G6UIђGNo1>|fd=<9BKE{#zo.IȠl צ'?MN/;ea\>'g,+!4'`E(> %QL@ɸ~q#/Eә.Dy0}[\c8Xç_pP|a)Nqiom-MQ)!y>CfIUOEqLVHm$UC$lE0^Rrlݼ.ALfU_WFA<f⿫ƊybJxeNP-x!i/w_^[@g&ҽ!=GJ)s|N䢅Bh)5e(d !:dɓ&YLc@hEFRؐF{8*,o4OXt?am#7zdM2!ګbX)b i9otu덇 ̛<^5F:\ÁCּM)Ѱ )tipz\@R'~V hO~ɾٜ_1vҳBchśRk3V[ 3o9w0}{n2rE?JPFGQ#W7&;@pǷv(s1?<. t `2` ?pn.HϠH3 ߄Sk:oINa_t͔'9crQ<ڿ p6Fτ\){V[%vd?%̤" g & b},9PZ)"ja(x5 K5D5YenI ;'.0F/0a0˂g!4Ϛ0{'׌[Z?N6Ƴ?ݟSF83F8#} rDHMݫUz'M0խ"^>B/;QQ8cqzoq=@g(?Nj{쟟\Vm'?o?(M":P{V&QdZx ( 9%E$ FM6 @1-gŸl[0}(%`p֟pq!-<8OwsP)PU&V*d%IY+ °VV}mGMZSW #9hQPF] xk|Ͱ{]W\s3 ;K(Qdzhˬg WI@ow\=K.|x uCAViS< +<Ǽ u8OKByì[[T?TͶwE*+1nE[vU8K ,Ō:f{pG\W\ }0OH? ҟܻY%uؠKZ уX3 h"z QAFّK~[Q~WG۟:IlxW:m|<$,bW&{P( (R=12e">feß/ђ#{đwд_2p⬑í]S |0xFHH ǭ=:?+0ʿUm^9Jty( U0J֫[i+w+xXUԺ/j+K A򪝳t6tح*uXuY-ы & p{"?miǯs$-t6h|fe70H2y ˬz+JWM"4 b/E]JYBJaE"_NLǫrk>;ѳ.P̤knԚ~l4rtuI 2"V/D2*\T'Q8*qVea*֫9}c,keXDte# V70n>x;^u|xQY 2 T"'۲S·偯SkZ{h7gz8J8ӿBT+uzF=R^.R7bԷ"u?EvUzNϳ$~sLvwO, a]s*Tpg*} ԰v21m"F"d{S^"zFct 6`n:BO+99AZ\MYO%amJ5oV2!JG!b=nD!p뙌Q#ʙjS4* CF'G\hcpdcG&gHC&cGpeV `Rb: bG oIT s>]+u  [K"` [i$&CSj[%&lQ%ixV-O + *8[‘kߌw?KG2!!-|kw.λ~ D9BӑS/!F^ T\FgV;;۱|FlQUU$K>tZ1N V$ҔYܕ,hoכae& YVq#P_s-m< ~YM:i3OKoB1jk?L|zIO:7=74d$)7aG?'l_"MZY EhZ]6Ew&y_N;P`Q<^uo*WE{ Cǟ"+$G)8&Ǐ{Kv:RkO@Gl<: cP48%! 8l1-uy:>ȻD4|6~:x\(Eg%3u,='w)4W7GgcHlqC,8:J7Oh,U"4~3Ald󭰟2gf3hfpʖ^X1 Zٜjdžt"g P72]=CA_b}m=Hb !qMon5kj[ h9r,(l R-EEQ.K`HϖĹR|OEf] Ppp%D؃UZE90P6 Ĭꀫ_CR@ zĔq?f\ng3aӦX@ aWCX.z [2E$^Z xG$yV]i$A$>6דPP&⹑w@b˗s9-U|=d>Y n '%(N*[M(woAEE,_gA`TK/1#R+ :h&̠yS@ x/·:_*?vшt3i) n<5E\"&'5V:+8DTYZ^=nAA x4ګcDe/GF\9A`N|Z9ڗ6Z 9F™?mE[߳zY@xm?O-DܞqIV]ZpN 6VB0|'P(QQ#>rG5&@d vߛѩF+zaqs,b |݀D/YϮrϳ$9Fa코,?ϔg͔Y $kpܷ8iqOx;Z];:d{&c{.av4[2r#G;x}ewOiuk1ߠvqM/ H,N#agUvI$D^!؍A=mTˑVAKTM <5+&8r&}@l1.OL@bASh88zL]b .J5LML~t/:WXP 􂢰 rNUaSbb,L P "uJ))FUQPOy GWuo2H~ɏp*M H7"ލq&mOP?裸SA뉐s!S<ɄpuBNJ/-2lDn^<^$Ihi?~jwajl0d6w,aڲ"˽Th퀂L:?*pw+6[ڬye,zh\v*=ݗ~!sv:VC(͵%{RiCe-j.-[!?teN*Ъ+¶+ @'R?s}Y.G-kbPmWyHniމ}Ĺ5nvڽ})X>DL50uѵkϼnY*5fS4B 5v$KjysV.`+ @J7٬m2T *᫰(k&2BZ ef.`uwLY5[F\NJ_9XbQSJJ,uT+]B%ytK|p-UBA!ϼʮ w2S_g7ڳ[ZJU?E!(y,وcŌR1,Iɘl5ˍJkI: W%"gnW8[f4x3u'^|-#l*8PW1DQt?elþk-eI!h6cY/D_buiI\9veit ZcC~c޳ޫ &o)dUMÖw0*Z!|tbbQF/# 㑦&][hhl*_\߶'r{y ~TCƬ}_3wDs20hm9o;Wq:ygthw6< ?K!{ט3sK|Tpi'ԱDLyKZOZ;T.ϖv)2.&G%-.T)z*&Gʠ)i H~Bs\ۣk/\{[\Tv- jvM_AM~#*2x-q:ШNL,0rg47|%,L&a@0-<~s᭖w$9md$sYݠEC?W%ޏ/Ҫ}A\om8=Q֭7*{eH80տ @xLM3d`=-@`+l3z&pGQ$܏@[?^(qPш[/!qњǃOtDHN-]p~cZgo 8A TRxRIUg լ3&A&ݍaF/M\ H4P|O^ꅠe<^ksz_;avt6b™L4^uyX 2hHsϜ7+x#\n$] %TqoOop+}>r:럇GA$G|G1lRa[p(xHռ9(v\ۙ4:Zu0kG$cO"fiǾ꺃8TA̤q`(f2aC-nV_Tw*pJf߯{-7tVMV+_Can=+̌#gT Qt,]AOB3I\?GzH*qbV) J ~ hT+*_-&EΝq Cmw}AXAa!v(cPG^۳6~.{H9Vk#ɹl4;__qNý׋2kXEMJ6,ar 67sSS ZOX>cБ>r0?d2Bfh,')CB dyn LFK\|Ҹˌϧ@<ڨ^$Qy这cts1~`=fz mc5S\PU|?!砇ta%H[Crx?YBub\'::C`;M<݈v~_ΏgMqya,r죀wL8s(۟fW o73gXpBE.Y^>Yd)/ 6刐~5è6#³9ʹLkyG~B%I╴[SF[AA/jX l vN ѥPԝKh%zB/<#lz`GNEM+YW/oA.Έ(Oʿ)Z^wW? L(Dk1,QmktZx׊WgOQtXE!L$CY% [\>coO=oD澓.ROΟq3J Ŭ˗ě1ؠ ,6%5XLjIVOJ Is-/H5[ ]MսEB$‡1khr席4M4M4M^t5AVWwVSK8 $LL>?yQxl8\T1 8ʫe:]]D͠+=W⋂'nAhlbw'"{fpfuov&\k7'\S}%^ئ0Ն.CX !(7!~+#Nwaus%=0ﮩ8iPEy v=#d}u&vnJ"w&zjիV.`1& 3$Ϊ2I~&!}}*ujM*͂`]=3{(sB JRHJqJ74"!&t4ᡔ@[nQs&g&x.hc9v2gxcVyg6ǦAu @[{w,*DYkq;km,)C,U),*z=fXW \۶=Wz% ? t`L!}ɔ.r [r6(Z_5ňP«nWWgМ!CdJ?M; 36']jQ``G7Bsj%ҠF 'I>.-r)h\`E.ww^H(^iO"G ّmDN3Tsw}10$iP79x*Λ$@dT}~$a,('•%!3 J^1\1Ã2 >` ,ڴB]aWIHXV*y&Ƹ{7v>q-=,le:Y?5]68QwK\8Rl-dm(  GlǑF'Qta~A\r>At;w[XF ]MɽZl'2q20]:t6ް! Z$&hx~VClƲ]+ nKX @Ō`ő}t' oNocќ<';!P YCstQhStkJ Yj]k`2B{%"vSW@2ۀJzOtxLdv}Yjzu bK-2u܇=RAםzn4:{>A^GjپY)r';k;N,745j~SH6jĩĄCxnK!M (pA)\_e^Z aSa=b{ ҢbhVǵQ7Oj +uC!k&__KIۦ;{)_Sz/+TW !H LVH -Fsg! Z#EkRZnnñy;|Gvܟ8Gaȁrue 8.F\X)ݩdqr[1<3%q<MtDE SJVɊ'] y{ UG R1aԕB'/! 6x4 H7Pa! 8_Y8^?c}2nC8̭aUŝ.Vx\lS1`P tin蒴Q6A̡Vr Xc̔Ǡ >7SyD)}2G0ѯٍ懽v2y r] c}>Ӫ&Yb$*01=S(U4Hh3'\M"?51Pz@uj7[/=irU /t1;6/fY)swmoupNLD,XWƩ6*\ϛ0~ʹ"o$Q`9۹&b"9A8BZ2E9~}>q}}fZ.石'`=ccVutNV)^`.(9:=D\uq=Yo{ c 6OB9n̩Z>rh~vn szdu0s0ѹxBM "лb(8UDzebͦ\L,̨+sKZekŋWeˢ*[L$P ܟ#%w~(\}ja$.1|29pr.*ܗ{P ؐ|O"}~'Zb- t)I)F :CgMGy:w2^{lR~wv+;I{)͛|YBpMp/ 1n9g=@O^6>NFKkmFP]M2Dw@nj0h&(sQÍ !ִj8#ҾX<ˣ?)a~/2a`0`iʕrdɠh(ȂՊ!.,%'nV:4?{9w/q- Cx lq,9A׶ʰlmN>fG܉9@ޤ W&.d_j1ɎQЯM^L ~=fJFJZ4 'U>gwuإc-x и !^G'rxQx3!"L,V5\?M..,]N?p)->促1 X1C05#YOheFMkM(#Lq7mo WYių]TwkڦǓiiiiһ*2pae\]Cc,NǙos.#\ߦ4̦غ `ZYfVMx5w֏u=_</Q"T3<~})7d s`R'3,O6wyOӕ1,.Mtݞ9xW- ~O({A_}^h0~;1 VacQ7MEiWwP)OiDgM|r/$q2e1E8و ݜ fڷp0 BHĊzgk`g\J`t-ljy z  &C,cAEHOԩt;%|'#wwզut* T.!c؇\B#==α:/ka3̑ai~X,\4;:>đ$s?Au[`lOS"WKX-L x?_wø?n:}0iVWI]@澞]RZXH[TJ~tlzDh:Pi|3t7_g?z۝~ )⢌\ZeY:UѸue U5E8>S 㻡7C ܩx?XwEQ(hE^0g J1}1ŸW<v`(/0 eF- F)Ĺ[Ł>.zi::W:A0EQѤXԳ-[2(']-n-BVdX+՜?Y6r6=,7(@BH~6d=+@@:DO>U n$C1}abup%a̴GϷYZ0=Ot-ɰ:veRBFN^TΔ#p\>8]lXp<6d^*Do*8(WIA!WaD0_c!/[iv18=]藝%;H}EJ- : 9_{Ϫ>ՂM& y `X*DQW)n]Ò[ pR#ob}ͨrƜ>|^TN! ;^LT'N_HJyFE+Dϋe]x52-3A`{.vjIl}3 {uagn\j#Wz]+\ jÓcG!RY3|ۺ嬖,rp\ߧgg2 D=mdJs ϩי3|eJ!D##tpǯh˃73yf/k2Mmm 㾟l]ϗ[owz=Y9up+NuJ{KnRyRD#k%vuvFQH1gDP\qG凙.>9Հr.P OOpw^;9]ͮyu]Y%Sۛc" Yi pp`; _êar49\T=U E{@i tYBz8=~(S3[X;]Jd*1]]'xFlf P ͗=PU Zvݿ,M@S1U'Gn;Wn7-F֕=.#cPt O'IkM1rAU/vl~U| C= pEsŢြbNHŋDO UH{<;WBa|˫k NJ\, 2Tl8[70Jwg>iTsP;!ӧ^s “nr/S–j$qORߩde?6m_erF6,Sc. pʊ#r*q@dӺ-P^C.. hM|"``7e?hܷMo|xYrn1B*\-b-`>f 6lڍ+Z"Jxln7nqfBR&}}AEb~C+^Wq}U68ݖؿ 6Py9q}_LwؼF52CX>NuvctyA-wc* UD_t KCCZ#^}cA?}Y$pdksU3T,3]ض˕=[<OPW2K}wxVy> BOXXbX-BZ^x<;zj!<.M{]+k\pa_c(Sa5ޞH$_27lz{*+Pe\[YFDLWK qIѪ**"2CHF/%!,D8X 4OW ±/F>ǞVK-0U[e 'xTLj `M$ #|bjF"!4a?)~O`OuhUEFz+?;[d Šђcu.CUkP;d}"]&}ÝYIABN25hy ߖ ՘3t$뎼WT+Sl\n+%ʿj:e_D'*J ־6Ln[orE*79i-;AcMS1P',%7mꃤ~thڷ 9kSP?Hzi$Dxف;l4S+Cښ#o . #O[:_ O=, yVUC{Y+!v)(s@vrN;v_*pNƐhfZurrzzClOɎ.pKqN2xFh@,bG;0v}, l*6ߔ2 S рQvu.d&=Ej* ^Mv.46R2Gm!>k̹rDس,lJXk{+b赟->\\WS\C\]뛢W!uYXkJ-a>$!rh$Ec\ aFbV%Vjr Byj^ >t,.(T5 n۶D"^BE"6`Ny 9q%*y^8́u@% ~aOUqOr!FgWupR RªV{FP&c8I*+!dX8r3}^O<gkxJxRE!r%Ȋ lNl? j߲cJʠ! ϪY9s&]r^EIl"_Vsm^OZlIq;VKُ9ؒ ҍ9J 2CF!4hjjjֈl4ɌhҲ \FsDӝli*Ќ~ 7[bd~u 1h9Qv-æP$_Gk,f- b%wdAg79m>4SgfHF2F&ӅBcڳ胘_>K2$2j\?ptGGc\6-˜ͧhLyf>jQbލO+:B:@ T;$H!qb3<%Ձʅz] i`eo ˥RT8n!G2ND־3=f ͸>*+̊1_8|*f|_wz1v?wE轸4رd /cG#VZѵj0,Gؖ'{h+.-q;;+*  ^[tHlѧFQq@kq~OFŲ] }yz񈒖B?DXX CX2 S{#y{J A{ 0c/0ϣ0=//%dͯV ԻWIg"@_%@ BYaX Ih: E0;W:ZE,Pognj ( x}*T &j譟teK}PͲXR^#'oDJNO; ⷿ۽ _'Mp~]@Gi6K1|vc~rxI !qn<Sr7D=_7p0(c ~VPgi0," fͫi]ȧoKp>̳ N5$oyW1CxL<*"t]f^~;xB+xk HUe5.os&^ޝ8z #~:23  _ccϔ?Q؜`nэ)$;RCi e ƅgrUuqY3 յ{܎&w1p$QHK U"AbX̣&Sݝ\xQ{̖iI P2&S&B0+tU]x a>uv .كF6f1lu`3n,ѝ Ѯ0d#4c)dxa?AWXRCZ˺VⳂHH$~5F:`bf|#Q̟j2?%[ڸB?y ZW刽 )pd0.q 9:Cze|MtVs-6PfǏ3tW~PѧYX@,]9\5fu٫ { `p DB|\Q܂m1C:RU:G{D."v0 wJ֧7[1m47 m;b"!{f͛7&yK2Ȳ Ë2ԋ ;R eʒ4H!]&= Wj $lq)@UtkJ:e%8**U-t/WT.й7o $ @9|5pٖGDD{[ DQv"떰3|)>p_ɳ`xdƆĄkc{P1Ud.}GA`.=u:?.G'r{6C:WJF*\M'+RhV|KʏTb_ MUP0EjÑx`|&d`7 SaZ!+!0w '"  hNz>ׇ edz7x6S Mի8{_qRBC*YX͕ͧ+ Ӊ+Bŋ-&v|m$=w lY݋>0:FբIM00q|0Y<`ۄ`.VE޺:YW ⎮K{1$+x>1~.OĬwLm&׸{4"XFO9-a'?|5(dE})1@q Gtql 3֪G +!5ju 8A2OR#hkLgjOw fgkEB}0#B[ALٌNŋ۩ʒȶ]_ )=6mX\6N%EC~Dnut|9>:n!P>ZJw3~jX0<y3` ߑ!@jDL ȩٞle"PSu,*U]3Nø3yש9^?T4Bf\w@--g޼Yv[.Bյ̞|+M`څ YXD(`QRĴC;Ԡi<~=D374KH9Sf}a!eXgFcAPP\03rc!hZuZ CQl=jآss{R=z|SW:ۦ1{oip6[ii:edx?_\VV/* śnG]=bu.-;KURa~&ƂLkNVJQ#/}+)PNYΐjw 1(F/Ut"u.)WJdfE藉Yl9C9+ѯ?̸Y!5w1+9=r{*%@^8H/sCU?k Dg4KL5'_}U)o݈~Y#!ٮɗL&S;i[s"u dDVśQH{"N+eQ)%τVɂѼ(O4SYie@WW;CBQ8\$P=cƜ:MS{5!+6 ?ǠdcTf͛6m)`sʨR+JIJ3iJjmNtVnCo,kGyGNJ0p>c$6 RL81WXߢv^Xo IaZh䍉3 "8"<+3˫+ٗr d"Ĩ2)nD;r#RrF;%CpMMN'aqxsd{CĂ>c:Gd]>Ee~{5q:qAd4@t'՝;\w(>ziCg7{EܚC<ɜ@/PUpё+JPN $Kay= _Wӡ~2JiWh@%KX$k3 BG.vE ORC2 `9,5ާvڣPT>_;~8l^ї=R ٿG8ѹztBxTH ;{B]*&XDUfЩA~\U"Yn*Qfm9kqBF=A27gϟ^L2[h ǃȧmEP`:̯lj,\V R|'PPZs9h(.^T|`])j%=u%g%,1E-n o+ (SH_F Ti_Vv_޴C2:Zɉg#SMzΊ%E*T0 E``. ׷3 R(dFU Nz39뗬̦nG*ߜ[-@a 5a\]F#X<~.FpÐW{=+)utHVڄC9[$2"O51z !ӗ[=B Jj8Ovَ !4x͋ QU4m:D.GN-8~f33ZiK~'u(8PS2T#E mLy]b2ibla2ńbc'lwu_ مϟb6Cp6Bsb~7ERTuodxP*2dtԂ";ݒRI D4,DQjڸ ;Y>Tj;V^^*󗤷S&Wg:(1󟰣1~ٜ^'̡A)(PލR#G"U_{NL`xEyW4hP&+I+Ҹ+odf HsƿE{ m$1HNX٬To\w->vX|و 1Vs)ŤfiL0/A{ຎP,P,WӝEOsٴ\gmuu]\Z@JLȣ#B-V<:lSЮ:%L7iFhsFFHGET8᳊k[scO7>1n +T-6Mk# Aow'gg#h{.+ь_=qT4\ (/n%xdztA ]–Щ?P "ºқ!{>"S\.Nбx=D. PV KzUi![>wl_"A(ʜ]([ǜ/"LG+"(%,gNjaΈOOxh^ QxBv|[K_KA_"A |H^pTSdbXX/-e酲Ul8. FǑyro6Wg>P2a9 npD\N~kE-i-{TdjCTOP#EO(#?c+Բ!&8D9s!q/ÌiA{1XiDԯwl' +ۉB9g&Q"DTx]CiqksC$Jq}Чލ]>ߗa‡Do :!};2G׀C-U*ZsR%5SEnúp]ܑ˺/<LN8 e*,P`?_jl#sܾ3%zT-`E,(uGq[{Ӟ8].'b4hR46r-ik%Ja̱M`ZflSEP45sTAP)o+0vdO#Fٮ.+zS~d*_n%7وU05v"&PBr c"k&~sF.%*צR_(;M+U mJ7hӆhOtdu ̓E@)KFװ;pDjH 1Q DZ+)ҷ1Tz[4Ep՗ /*q'q$2aR*t@Cm`N n 90,on.$vhy6CK^{.S h|e}8#RHאxxh0jeEVHYk2U͐nqżl$tJe*F$Įo2Lz@t,'^Ͻk0v>k,g7u&*@!b)◓y67ȍhhno^EنQV5yGN&P] - gT.2`eށ6Ym߫U_kbVV[e7@23LجuxuͷU'닙|sS# 2_SfS+mmTwF| Iۡ:WW@9;*us`>Pn'vÆ ģ*.o5d)QJkC9ov+~7}C ȔGg v\NRW׿&LhdɄɔ  M O,^wBWCs'z"F7_K~ 8  gCݽJzDӵG6j Z;5 t;-˰Wpi+lDY?PEaWA 66#%ǩ1(sKؿq}+KN!}Tv6b{),fuݕDѹUכ0xMhi€;`x< (P?F;o˜{D^M~|(A{wo3aq1l,>! YXzxex8V*-pr/? 0ڠdn1W\eR:Lh"&6Z V{Y.5>x< N CQԉI:6w3z(q2VV؃|*=s3S.>Wl/ŞrBX,n_9R==ӯY4W_Zu"Oo*]t#[EX73Vaᮎ N KүR[Q PnOn/PL'2Zv¾|ח:JGMDLc]{=U>MP390C7~ u \@ՙEo z'+vnFu*q~80614#A;0dNUo kyVu.w*Mrj š~nKxyFlSc(#]w_?ύ{}l**іfLavn5!F ꕱ^6;M̸͸Pܜ2dHռE\)-LP C yכ^~ }?ah;d08x;nݻv۷nݻv&ߔA7pZ^'K ER}Fdgca~'Ȁ[T!+?$,Dy#Nzr&.6c=*\#CR~ C&KV4,|(#Al㐒.j ~[~{z7MO(sV$'}C#wmC^f?<ܑ%uP0 h,Rx6 ?0K~Є'Wc*c&_K|GtPbLhlk6YmP%;[=~oC<3/ "3gSeÄ;$S!Qdbm.&C`g0 [K_#F5-՝C/%m 3X6y\^(ZB@GҴEfS{slc3Uw1{DmEi(>*P'o(SQ*0hR綄}DLo;YC$^ 9<X("e|񠒯]\ zj.6H/p:lu+z`ه+]S:П^XM@Tov&ccnAFj':@G@s "~f,y ?.[ )]~j7:W9.&@7'Aw_f.xEUD%gs|w w>ɔ!:ODF/]pYwfKYKMϑ:̭} U­ Uku#uKh2H_S4Fh~6ᄐ-To4R|-Z~1n‹Vd#?yp#Y}g/.MpMv_Зa0kH+D$&vUSK7Ӻ-$NZ튳V)Bi .)ӊ8p24X?`s̺z<9Ez;eO5ЯOĠW̺ss{qpI{f,(AC i^eL\Klb_++k(QH&1a0t/HЁ 7G!w9`L^>zɬ2{1$eo؉F^L=>SàUeeb6V2q8NX)Z*ZU ծ Wp]ro--]J2vVwٻw:RBΎ[Bxn~+~18*zXNR2a  kcFz/1W ӈ4 3sڎ^C쭔~cb#l-B̪Ø=> -άq r!I=Q xu`";r#("sAP`IXdDc?苞#$c߉cH$'#pB*3F-|c7@o|n 'V`CxGTnUV\eGkF@Y'Ν\ AN߿)oْ@ݕ,:دq9ߑ^FGK.ut:Gs@CZݳb+, ",Ef'bԷ lDt#Ɏ-Da;Z mY)r $|\+<'&SZ/rz 6"`FM-A nz[ށ׏&jŵWݽJwZp6M8CrZʖ?@yOw. ZU5Pat!nʋu qF•f[~pA)w< $o >FA5y'ܰ~x^6P<p讁uvޙ!8'j΋= b Hށ[;b02e14R sy>{wA#$'[ 5M/gn+{&N` RB(Vjő1bv4( J1Q#?Qc<yw[i~Wv`R<^FP7nTO@@A61 HH𤜺E]=ڪןV_c_i `a d9@kAi.F z5e}N` '0~ !f)nh UAk@v>Y>kt Qe5k@cp&4)@Ph zX >/M0w5]g{y.tvKnkM]D;f7clb# i^zЮonkmC;`] wG]s"wܒ- sGw{Yymfε\͝iwuZcUٛl{M7[o\unfrwZ=n.-eީ{M ;>=N]绳u>@v]=`4oXyu N>:=z/,nJ۹3]OQ$)( }ڳz,2nULNێc9Np(07,7yⱭy"PD dD2kJIk $Rւ (H4[`m$E[q {/zg;ٷeu[nnw\m[wr975]nfo^N7wNʲw޽v[g.9gv݃l4{73hobq퇷il{׸A `v;.T=/a{(H]o^ܙή\޽vtWnNӘj`gw9ٹ;3ct/oarg{`wyesw<eSs҆v裓cӻrZk]wLs:{;\9λחs5sp[{sn;NM*@HPAJP魠o;3ܣ.˳^'ynknq76mw6Z`vsUv72Mn뮷Rfr;YvnԹnz]wn76=ެrdܯwWݶ9nnrweYM9nunZkn-vWo^O{5SdM0f幵rnkG:[v녹V˶]gCr;湺svN<]wq];v9qvhr7mɻ76ݝRtr˶lsu7ZH 4biF4F h10M4ɓ&hd`10L!4i`)#M10Lbi& S@2dɦh&M44i@dɩ0LL4e ɠ 0& 10 &AidME=OP$ɑ=OB=Iꆌ#Dڞ2hѧHڏP6!S24 I$ @M04&iѓM2iM4 O4 JDh h M0ɀ L&OɓMC@eN߃-J:?˃۸@:![u^uA<$I$I$B B B     !BB!B !B  BB B   BB  B @@!@!@@!@!B!!B@!@!@!!@!@!@!!@!@!@@!@@!@@!@!@!@!@@!@B!@!@!@@!@@@!@@!!@@!B!@!!@@!!@!@!!@@!!@!@!@@@@!@!!@@!@@!BB!@!!!@!B@!@!!!!!!@!@!@!@!@!@@@@!!@!@!!@!!@@@!@B@!@!@!@@!@!@@!!!!@@!@B!@!@@!B!@@!@!!!!!!@!B@!@!!@!!B!B@!@@@!@!@!!!@!B@!!@!!!B!@!@!@!@!@ALBTC(#(#*`PG(NA $ qW[/K3,,ix;D^kE9 欥NE [NK[?Di^F1ЛzQ_(S5tZ kW$Vpσ2#oqܻs_|Q~П'QhUty-Md-R:c?amZ `KGAsQVSmW(2ފn(1{0'b,Tj~46x@m/5 2W+*[dξx'9㰯:D.Ѻ\mPڅl֑ҕ{%x_oqO<|T(U*I.nu2M{͗}XhE-]yP!'@7vvl;ʯf^_kS ^m;08|(}+Txcq ݛ8|/N {v8P^tܩ~h^&a.vbyƱ/~!f(Ћ47"hͲ2{q)V#kvo8QLW`4ccq]zwsyAέ+ ߯ߚG+(-a[FľW?)ɩ{[45~q(/uDR<NMk4HdqBfbc5y^o0R7EH0796cY]؀ktϗl̘/5G͞8~h!j(c2o/?|RkՌ~ ŊNӑ$}oMf|]w+rL7i <҆ekb'E0ibgQM_oFcؑPȓs|K5oٺܻ}hоZG]c5諉࿺c#5g #x^O+:z}-8 Çuս {!v*`Kw~ś(Pv̜-dWzw@?4R#M(wO CoMQ(qjX13N7lhw<~>?9{g82-L,Jb$98 # ϝ ŀg2?+ǁk2U*&6`T- qyV21܏p?i.Vð^H[ya9;9Gϼn\8a*G UiޗwJkkbh빬'gxq-#g|'Iwm d>\N[[ψl[9?fPNG`0׿n̟I&$rW=tW*mV},zTavZ~?_smyz֢-}VIJ$>ˆArl|*oc%--p|e6TM?qZAC zdGRTp>(熿lL~$ɺ=jrecݥ&|E=f^aNoQ:Tn B=/<6&; =_(qy C\ɿKi1b^=ܤ.^F5 ۞-1z̯k:>biOsJ[[uMc01KHW>ѕ#9سCש4B?7+Z4%%U=;SeHa[qc>CjL= .("8[؁5<#3+~=C;aW)K< . ^{#9ݍ|@lRVZ)|aq߸RypG|I^<#߯I:WT6pCx_ony'_rBD=QLtHvk"`f_cxxH1as.0OY&ҫ jeـ,ux:.TAD{䗈bm4>.`Lv]٭];_G3'D;^{|_Vc<}GNvQ|ZovjCmW'kӦ췩tj[6*Nn$܄wb(;hE TE44k0#wRaLiW*g$4 X苟%Dn{|ͤm՜Y{^<_dK ҕZ67j[Q*IdZw߮d{)sMp-9`/a!:˚h>{F>cC/#Q Әa%W?rUςf<rX}eqarpڍ͛\OQ5 <@24K"G(Å1sWZ:oHp zo_9t|)X bŠgDO1Ug";*|/dcz`Rt3Y -CP%MA +1t"c[^{>V[(IoI}݄7.tC/O_m]kqc[;gճQJcaNsRϿ?"Ayd&w+5JkeAEK{:zԭ3 lxWˤǠL\^kQ$7Xd~70iGvhv\ M+AI~ Z[] rn5>YY1׏wn4 |2΃Umz;q</ Z`Q76C: =sہu8) q220{&-ũ ;įS̿L\و[uc՟1ڤ_'puoF6f`.*=8Fz2'PH[(Ưѹ/18I:mt\ =p0Q1/ح\MYdU}ʗ~J>״f=gT?)=m'LX' 觠!F^˅-+f?|?޸ _Xi_ňL%*v`'עܛ"͛%>p !c7mf*+4E-aAiVÛygs.;p2.BS94F~2Lu|8q6"Uǿ,% ;:'" csEHn>dZÀ8r-0MY\Brϑ7-R3Oq Q;T.sQ勦du8/힆IPW%iTq׺= @m"|RG]bo`caIo"3{&ig쥃~0MLJQK*/رƥi,XE84:ߎt$xN?}VU:l_,_QsH7}b,̟s&A1חS^8Ejǜr~tl{ UJn>G(; koUJe}fnu6Ћb(7le.qňxmLu|?dl@T/_~w5o:~2F0hʴO!Tg[6y{*kA*m/ɝ]6 KԤQv&pE["b+Шf:hg>Mc˴/[}fQ$Sw>^X藿.~叚._K4r9*Y&g:j yHW cC~>12?f^2c}9~Le}8?~H阿߲ ;cOX_m~HkN@|W&gL~̰` bƋO)r:&9ad o 츖$Zϭu;֜*}um|7gyps8]n`m+dJVstolܞt2䦉 ϓ^sޙ&^G Ifl X1OQ3g-7>~T3=뽃C9>n>ͳUyUWW /IbDS Y 5)/'4n'02&B$Ú}#{R5W1 E~CC(g}kѻԐ&؋MCvk{̦U9ъ ~rAg>aDam!l%vb'Lwsv0p̙z{TNl޶9ճ?>~ᅜbw#ąbi𮼢#SDi?q9S c m=c E-/Cz[)@<x|ϞfD|Yc\u>h > 4##g(7덥jnHO df" %3J.O29a]{7h F檅]E7%b.Hf :O(_r [Մ4 VLlwc2'ɓnd bvu=\A8,~P7P]FOBax*s_a '&m(6cT';3eZY˷d>a>&WއqvW ?&=&"#AjCУYi?ܦ+ԏRbfvkɳ3Z dQpAj7çX>LC4e'd{gtQi/]* m[Em GhQtsWn7aA8fy5./iѠ J2HXv=qs3A^n2ŝA)d38o/tG)*mg:B14!Q!;v{kC d`,l뤢k>g|cʭd 35fѱf»}&({k^4|RWU%slDtk~.l Sӫ;>;;$ ie}G;O&$x-o$ % W9 ;<5SX~ozXх/8bH6cq[ⲟc5QFL3;٫s»!F!i},Rvurċ1Ru8f_?ꮱ ?㫬@Thb pg3l===6m[Tv~9l(lqcf+)>܉!Z. ͍#w/7o̧"'̯fr/!}rlm@rSV6Gӂi* eiPpu"D[f~M\f׈֑|){;{ز{^ ѣ#AaܙitЄ ϊ;3G /xvB#Dh?1. &|A[.>҇6>xO+Y%Fϟ4Wsi,O !~6DWk־B&SU/Sbq_^ qm=4kH_?ӛNp W*ʎMB(_>57L)IUUG H \g=xx M +N&ߌ90ź_ɷW|G5#k+oV!(3<0VVCrަjGhGkKOL*ݖß_<\qʉx}=_O[6[xXY7-NS |r1?|Cpj연<獀i^_0 C\qCk/ ̿ۘ\ai[̺a3{(Nzh߁Fi| -3ChTݑ澗ryό?NO4gm:0CDG u,gF^m*X+uI<6RFTݒ= %E5cNhMXv%'5%YEX^i{ikSr/ޞLG7t8s ࢴj̳I&QNSww!Ĺ5C ؏,.=#wǷ4@;$1/\HЫ PM)y~w1άjL:\ʠ; /~>l'JœViz ~1Y+ӻRjFT9ɟ+Af Oǥ~ɾo?x/nYr#1bf[nn\zU#TZ0}D˭ ' H4e?͕\KUr =q&_3u֋ Ɖ wThlDvhFFh(<yCeo}`} +1S  m۪)_mr|rЎAН<~LwO~û/۟jBfN.E{&+G;$x=O@HgȮδ9_v:ö8kr3(art4{>Dyq'z5A1N#2$i̽g44K;V|a>\btkq= [~tkFts-t,+KM4" c*3Oz󩟅 =4ioaGm"S). em+|mLp3. L7W/:me)3m{^_v3'-| "xPUT;x (#A*}ubE( G΃U]@F6qٽL7_b gkmM)תގIC+ Z6̺|.e!ǡҥy|'0Le$-n?3< ^ b\!g$.W]r4Km?8u7f |B:`]XanwmvJtvG|+Gnx"̮WGDe;MH[|«/,Zb7=S֍T3 7&I7X^8A0lq1}L}bu_Z:|RU596yöPXKbL޻<_FM 4^/re#$L'p 7zot\ $F& j;ˣDY[5"`,?okeU$Is_SC"_Uw0VuS4ꗟGd3-^F|5TE,h1v~On*R5ePl}{ɔktE6hagG]bO!^r Qfc(Dn]/Ow&x;c9.h36A7QMTOiݳF?s!w|qmm1qs9ddݔ{GTSr:i^Ԅ,u0w92,>[BO\o{VfQW8 7ґ^_W.F6Y sA_=qI}~q ؅<$1tߔ.&~W* xtn)9hi_*^# +K[m8!Υ$0FpObBcEa&5`KYĒ6-țU3#S3G"z_wlk)UWIqajVϹӝVVa\[sXQ iaIiGvk A p!2+^vȫma8'?JvBFwxe$ۻ2dhH+5NNrWZUy*ձ D̮_Y4QE*=\oQLzf#cv3}|_!R;XeBVncUmSt_fnՋ:h\ v:ОoV2r0PaVp1e'O?Oz)xT,7qMMMg?,44W=/<ǧV 8XH.^Za#7W@MpׂKB֦|ނԶkS߭m^͡x6IU-zF X{Cq4j-k,;C:ٰ>Mjӭ _6 >"b]$Z>ͼU`Ǯ"ET03'#f 'Edn7C9*g>&w``q|ݣ1, !Y%F?shiMK LU&12LD4e? ;<_w()^nv[ , .j}m[Pv5'lSL;;]FF5_'׈&;iãt9éW<͖ ^nZP%ߘw~=ó$sqf̌01 IW,>8 u*) g?i M\D)nڜ dT/f'Xdplgp32~/S$3({C:|27<F|?*| x_Ǔ(Ň'ưǦ Xi} 7ӱΣ/48>U=!4n371:ZE>mͤu hۤ_{B+Ak^Æ{-Ot`wxKn"j.6]s` j^iѿrEZJJ'?B?箢,ayYۺΐiv Y I[Ǯݧ޶;HhpxJT_|wǨ8v2U}ڥ=ЪgC]Ī[>N%gF+ᑐ? H+l~ ǻ fJP!~Gif;o/agAB=fIJtOuQ^]>x|} 9ˢ f%JZ_充h^^{G _5aJ1F6!cMt/ŸQR-'Rt4Xx(?,jRbh2pX_;%m6Ւ':13'Ux}zZߏ~89=ʎ#`o-H)V]1݈7Bw=x.)4ou * @i\AjGDnލ]g0 Wú^ V[KeV c%mB_'qOŏ%0$tAz6b\8c8j8;f X03Y2wW#j?Fixk (ڻG(dž6/Ta.hQjA+a#t[J{UWO3@$nyRSD(q o3da0W!yPu"|],tJGk{xb-'tlAxbec#=k+6o 31L6"b`M4(_df#.~~n"\dC.4XNxy6A,i\5ݎ,sc5@b"?Ƀyvg}?ZSK\Ȇ>Bh\/M_ؿ>fyJ ʇ0z}M^+r}?OZ)Z}7aZJQ١Ǹ6wc0is.{.51м q]"7A2|Gf[-gD`kТ}`T8(ޯ,UFN|bF0Nuze{WPbI0W^fQ6W_8 Ǎׄt(mG,#)<u>_WFڿoq^eKss:"ӾƏ2>Z^ܨ}ǫޜȌ=O[& eht涪ފʚ[Q|yF; IvJR~Q%vY-(UYi v˕VZ+BzEUȭOmd`rK.Prwcx\v)uxodmDnY*媔BJҦ1z:S;ᏅZۊӶbnNگ+;ʔꔪ\'B ![UJz!?lo㩌\Is-3;Zː F^ݼE[mzd#Eh"͛,R(X,]HQu eQ0W]>wwT=}!joZbTJ\DeLnL֢T3 zLgCm>­XB\Rw=AzT1?* !L늎{+.]ߡ1r˖\JJɗ6uoj&\g=L3Yo1{˨|-VZlPmdVVdV[ۜݵ/*!Rzn:1uk<ɚĄ(Tb +'罧/ 6Wp_T鍍#l>Eb]tsZui֪+ReyEj]gc,Qڲ(wW*\ԧNTo;ddޏس0s&D޽DRs"v'TRhX!8:WT^uFOQ\AS՛O)lTJX:2!o;:2U')Q2)BKURb}ZfoKD[XWS{7]$;VZʓNKb7==wf@eeod ޛY&MΣ|eR˔!R)>ﰋ;uʘǽY۵*Kuq <{xxi+N \]gI"u\x6"(!bŊVJV<,w;.ȌU]YNE"/ TRR*J殄J_l]/*վbP3\;F`rСBt:͛ת][/8S*v&>o.nS¾j.Vyru e<}]7ۥHvM(XRr|]&f>D1}9rjdd&\QsDu#HHP-TZ ;5ŝټiq43աΩ:,{hY)v+R: (QAj)@}\'m:lʮ|r`ϏQKPZu<=>a};tWq".6(]57{ŪUZ\*__bܲ&+s)2v҉-RMKXr=[]"\kp+4[=KXZ Pr|XU}Us[[i9̓&&fd{_ezGO?32PTqPUS{>ԗ=ҍٹ5T6)Bg#C\c{Ҝoqg_$ |zh.7u:[M?/V;p{7F![S}ufU.fbsc3!g(\%׬Z:|2":̙4jƬ;nWZyLur*sջJ\##6r۾jY[f{ꢥkm~-*JvNӻ RD5m:У"K*]:gV%NL1.ur<4Tc!Fڝӏ.h>rmאίm\3 1nӳ۪2SЄwC1N`*K P1BvnȘkBneQ uݔAD,(#DA` "*=tT"\EO( LjʪyJÝPF٨#Ep H"PF4 (5tPFRQ*ZVPA#RB@PM 5z?֯*(#Ax(#U(#]fJ"5$ITK/w_CXĒ`C 1lET@ P ĉr k( $$I%uHQ[A $ R ڙdE b"| F@ h BE^ DE D"tdD$I@^%Ѩ!D,X *HEǢ2 ,&XtB! .~dQGct[ &4H&4mPỲ!Q9 TT̉h#"H7DKШAoF6C1ފ2 "$&<*  ɀ@DpAqHh tPdBAF(j BDDL\X‷EI@ɈAY-LjXH%A E d$Lx-A$UW*dqbHP@D,_.c@hbӂ8*j`AqXB* DĈ b"1l1J8%F T!մ FA< E(W* ;Ct=C15֐E1.8 DKBnPG  IX7T=xdj̢ $P4lI& f)b ,F A&HS#EHQBz $I ?(˖)"J)*l!PO(%АY"@dCF(ZMh/ xt5(9ؖ $c H0FF# 5;vXJWj@!OǷ 3D-I $ME!ı D*HTEQ@D}3f`lQ!$ δ S% I$IdaX0+-BF!)VHH+ HȨrFH$t5ˈFHHT?QTmt?DHkoR"HH<Ӗ(A?b^+RzBHR!Q D FѰb!`rlJBD`U (+ }I?ddB1gjZ[kn 0^RFL߬9*Q%MEfAC生\rG';oepl|7L:D {/G:];79A5Ϭ66V>hkD ƇUĖ#<Xn jbM!+ǖRLC U:ؐ,0HFⱱaҊXW )5ˀ6rd)bgKYeWޓ ."SGLhP(@@:WZ_#{yUU8T RbER||ȵ ӞK7[x74nhfUY<ºk\n}3_^N1ƛP?Gb,B8ğN59cq= vIm LB]` _uFf[45! DGrA]48CV@({p+ p?6Jأ>YAS/izuG|η߇phkPhEh;:ߵ? >Dr׹s.7/S#-  ;t&dR-Rק])nߧga?] Q5vc2^#w'CƯ8rr88l's}5?7/Ƴ9I^$TOQE?JʸJJ60q 2Ν )' 'dTkUɈy$ĻvUӷڒo~W_<S&x1iռ;~Nxʏ^ݬ `TYI$.L%TLc'Jmb&Ap>!kXzXPG_Aj2bҋ4ܠமDT0Tn?65^ڃp~VmH\\hGfε.hME (db>TwZqƐ.| 49@cGG韅9v@i{|f1~JC(d+WS+BVvdC*E2YʺHsnc(WHYbg? ΫZ`rYL+i\ ¬!0LT a#COn}1?$Gi[a[(9@(rqm OEj))]J(;eu덥Z$IWÞZbjhB4˯C y]x7li;8{4YUyrNvjcNW UAys bۮSty`wq8ymVxlwn8xh!c@$oq/ÿV>6¹Ks_6r  D)Ci(LkX Y#j嗚V>4ϯfu! *z XCwUq ϝ~ \]Wܘ%-w$jwCA:CZZ]2a4]At\F.›edzB2]UBEINUP=$.VS;7C$w 9ۑ_XN R!UAҥ--X79^ki-4BBѺ&n;~.kza^UP^|י{fS֟P+9+<)*oNhEwJ e=#98{VxNf)pեZŶg:6RC6'|\OH,wR4M]}}vŸ%Ѵm&\)׋G;B\!7R%H= \, _!X'뎫*Cx>nVC dz\**9&HgtyBGkSűgKpfth.oJƘe^{{(8ҳ2ˤ:[34JQ!%M!eF?ESI4Py Ĵc!1BlXDf#k߰!.?Y_r=l mHz҂?3e_Bfv k7mmVѷ"(_s&'H`zw_6[tц{=+c-@^.թɻ>ڐc[1QCa`aGрUj=!&5\,MD]a=zP~BU0M:r_PlTuOL} >L\ki$Su{Q*'zdDQ Bϧyoolm6sXvv:ʜ+,E[Vڬ~e~`m|~weXW7M}u0uͰYh4ojf3xNwv}w8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇh@7 NcN nㅄka0zLeux]۾f^}gPPi+|m|gxtOO?Ѿ+v/ߛ~7;wJWZ;?VAs}mn[j|}=ۚg⁡\xlh`o [T)utmiaj11sk1z\ [)%^=>{scu.vJ:Icgx؜x؟ӻurz_ ^@7)7_Z_6:Zda3K'RB{:]=?)s+ٳ7K8L~l"T\&4{jEkI9ҹﮫ9kPT7*u~,HhG8D㐲|}9SᯊxTLwVÉEjSz/2lҒY@RŲS\ .y+uTH.dArк҃>>gQSAZFЪz?3X\ (*3hh~7YҒ!Oǒk`5fD,ϟW[K'/esTsnaƓIc^l]qם\^Ɲy#/eB;۹@>;?~:ݪ6bBdo|/I]fʂ0ff\{%8|E_0u 1p p 8(749_] k;r1E@_c( G"YHc lyK^:س)Bl( [ApE^]kAu,^8I uc:+}USXv3n&|e ā .չ%b\V˃鉢=q[l3z3КDhƐbQ>&˃v <ةzH+CV+ >*ӃN|5EL/b2 *y(ޠHu_֡*d! S45ҋиk0Gސ5a~krjƢ2f1sɏff9MH]_K0 :#Π8P R6"ۉ79s+V#l=sssݏ=?TݽC'-]NF-qaYlaDf\eQK8}s3_ߥܒLe"CTmTAzލY[IY!ol7Brhzeӭ|"p'Sp˻#Y28SU )`RХU5W 1di35ÚF"7翌79_9p`ITJt%B~kV4FtS>r\ٓ*pac? 0}ջU&><06P$P<⧠nFDZ0s 0+cc>?f%gn [L\s]Ac~ጵV9LŒ%=ϳf.ZWԋ.Rr:@ A/P5+|]ճRh$1oS*܁Ś:iW$ZcZ}7º3 B_ w߱]_ie,BR7*`))lh 1GzLzfV~@q&e^u!i LurZncI'\Ǘ({dE2p` }^c˫'=m]eY?`uTu%t,cGq)%}d)S #lК4"3V{]w\7Pٿ_ R}aNF^~nsu >C0f$B r* V "엙yhއ_L %O [K0,BwG["Р]ŷ˩uXS@L<)o)gU?̙Zn'MWT:R"` @)=U@u&4§; җ]4;(C v94[LK+ /Řm܄۫IXifIurGQBzdj EułAě@s U!;A;A_׉jktr"jzY3ў3<y11g zCb@mD;k"FX|+unā,~n~3٣fćh"pA,>(p3loFZs%6C#]y#o>tj* ʌM+*cC Ka !,)y&0S aDh9,I3+(8 82t裱Xa@#X9cxcCo[D m xBql=hbeɑ_ˤ p}|k[y*1NÉ͚]Ōy5 9hgGkkz<岮81F.'Ϙ|H;?u;Ѳ :,f^_lqi\u 4̢@_A 3쎇k`1Ӣ.aD@ZtyռMMDI k6Zy6Q.0nuuT'ͭ+HbƮحmo[uQ|7& ITB_;.;&݉Nf[[&UjuLJ3&!^շYUӳG̍R1i=&kzԈ FU6BeC"3 lM>iF[v\*\8K!RH qpP-u%?JxzduR%G!x{ag947ҋv[R*ސL|^?=}?kMqVIg ;u3K | X eYA$1&'-fs=9O,pR-Sj(Q|Nra^׋`~"AܹLRs9F~aX9;IkIOa/>;CYTv(Pgg_ m!o3*ԙP<]uaų?i 95t5eepwv8qjS]c'fNZ 37nŹLHKd*:+8ua2 ?\rb@j`t}`kW+s3o?ԇ+ {!:ߦuG2Vɯәb 3ej!1.$ 24wX( D\I@ǏqhD+fNGܧC33yJQLQr Z:Fk+*&õu9ͩ¦FEZ|W 9$ Ly?>丵Ä`1:cCXf$'&ŀ6: "!!ǩ eSI;I kF3Gbs;+sP D>>rL7bO[vwHWgKAX>sl&R?{vKȾ~?UqPP<;~]P8܇ṛu( e:4TzB{86AyZ2"/*Ĩi*4SEu) fZQdED8I: qk##ҽM~OC2Cw?jRh2331;w:BGHPx b#Y.ߤ՚J!v Qx6o/o7ʝ\4)9 ی>N5T*}|W^r*))c=L9”jrQu :u.s~/[e̓i}0##GB2fHCBAJA 3Ǘ3)?4|1aa9ɶ.lb3;@sEeŕ&8L08Tz"xNZS"۰R>=/=OcBS\ޛ֤|!Ϲ^OEW{eA5<ރ+*0%^:y2a#"^`nYl+faW<'f>=j{}! *Ć>=4D;1ʍٹuSlXS]T{M692#0sh֕2 Ŧ9ARҀD"NM"}dr)4HR&BK(D.zl_۔t s斊57EO3mT>%?7<` Z$7ӷ)Ç.+6 wxK4&< xbv r5|~Y-eNHađ&Yk= LJ?8LX8C{5F94sM?+^m ? ֫\1KأTXnZg6EJ+ #uQyK"C֋͂]-;ް\x? Y%)kq LzTb[ O Cto"21ގzY\ۇ\ 4:9V ԩ(~Q$x:-nqD5 љ[/`vdžxP}'[Qƻ#"ŷ v,Lq0̇G~.:'6|;.գ0N6FU)w{~lkl3[T:B&nmX9qXq˘F]К1(c(%:q}z>( A?a11ˬɴsuNU͙5B gE_׎팔e)1Pb ,[Y}gtϐ&;z φ}V0hI ~==` "sPT(Fݹ(ԫIg1ޙggSem (E65;5Sdr9vX4yv ~&SN5P#"ݩQȪ&14dܹ#KZrԅ#z>>QMf3stw?<#kS/'ZѶ̬]JkMQ`0ʈd!ǣ t1sEM^z~ccbӜݻ``H,,_cs e]2GC պNt}Z&\pNTk9ߙ2dd^ζ}q&+m&~Lq$q&FM,OvN }m̺b3zgU2mFE:I3>0X3#fq1bM1o=ihg8l8oXf%>mbjBAó3.|=_OWǶ,::d5ql ǭ74Zו5E!/6=KkA-AqñtjWZZgSq:8E K BNh>*7Қ=k~˝;E'!0xrkpΆUzX)omG[f]aN3i1!6ˉ8h;=^ 9ĒVW\dahtLaǚ 9켻Xr?cOk4&IdgTX7Bj4?<齡Zw[1ruqqu*ffkVq'tꆅaiU"[J7_<2gc-NyU {(}TT劉52u ]aa&3J✥ny0 R30L eo\).ddd<۩;8'4? v̱Λ)#smd!lfl:hkvx}NlCMp i &]@C7+*̹:hZ̎Q|^mq&fg9/F'W4Pbrj}!en(&p$(ZCEʜ5sUdAFڤ 0@==7 ҋ}/Xvtp^-!kryKX!4HOhN01k^/F< ++ly!q {+vd{9g:㉉UJn\z>ՇG&7.?&l˯KTh^]A*ŌXPwD7<8r?+,es+=$6򼼿Z'%E:aڅL?泰vw~"Vhc&Gy.}YfIJGN!zм s#㜨3 MH H9HznڊN;ɠ-e}l96>@~a jva' _(4¬.@<)bwrg[n枯qHk 7xÆ .s%fO-<ڸ߶j2{_&3khꝕ*7/X""C.Y~M%`f.}dt$_ ͸Ҷzr|kƭqvs|։x0YeξKyHc}aJ-b0%{ݾJuyf% @MX4',&:W_L ~„!0ftzyvǙ̮">sgLy1RNC4ԧǹ@#>˓Kp!\꾉sY8kkۑlg̷2'!eɔp$b8YUq;<'` Hy fCc]&gt r0qZIڏ@F>ܦ;1΢p 65׈y km0gE px!O./ڼ4$8rc(/f{ر$BBD˗3S_|ܳH LP%#G"l|N:H9$~ C~fz#ʟ/۳0UԻv49eۜΎc;;|ɘ?^|0ܽ@zkc%k(pe \[Xqiֿ4VUSaA_Pg:Bئm994z{ kSm#@xcփUo#(a8SȆdLJ [Q~dنcA@XAӽM2rw|{?Sܶg_DL{(P:tb7fQߤ,nuKRg'y'{fـs۱}v78ꄄ=o>O{ ;>1 2̣FNk}~S9eŒۋY롍nEXş2N[8(טõ޺Q&Ur8Ƃ3ܝllzV?O!uN.e8Cٵ޻^5#֏P62ǟm~ZmkMR'g:.4I w0{E۸I[q&\v[^KZ>4vlMTHPyۖGRQ .16+o6%2q2|nR6A$Dے@1+|>CSu҆3Y/&L{3A| ɛ͋l7t71 D$BDz͎%9ݖ*B7U65&"hF(@vQeكEAMt#~R`ǧ狯=[X4GY3}~ A6{"]8bbeO*?&j ȫ3G̸ȧM8^4Ν2 :tb+>h(l;g;@9. lѾ!`݊͞w@q>%zbس5p4 bE&z=ff,l%#{_rRA+-cҜk '%٪rx<T eECCaj.C,a }o< = u z$b ]oǕ̸fat 1ӥՖ(.,ꋇ [ M PnP5?=BJI;RPLⰴ_vǑ% f 3&dpX2]Z歁ח :U3jah WJG1mfWȈAD`;#w?\a6P~ 1tt`1)Pyяyz lk)w>(߾Υ?|wϝ 6sTt++ j V a~MW?EKWe;XJlN[ޯ`Obwn+}s2OT) Ms <~YrDꅁ0~+j|x("Y9g9oKF HD14.gR}(I#BQ5 ۄm4}3e{ҺQPuwc~8S.PJUÏGJY'&5]'40iȓ ` Î亂8=yd»I|ep|\p s;>fWKL+ǕѻPc#c"I8ynj]ڦP+_ET5ōv*6>hW3LGAnʦIE:Hgz&H(&zÍY%# W.KሔVXlÂ@ON)S'D L-!&' I0ܩ9VN%~0|=3~fi9g}2>|ϟ>|EV%Ј|HfMЁy Vzѭq~ux9J]K@?ĤIs*ѷ;\ WR*SݟOZM[?ȡ~DsQ6}5S㙀}?ƪ?TC)~$͈P≠ ԈxD`tνr9B@> Z+UɀOF{7Тl/;Ba3iI$T[.ִRKѩs=hLY6"{}:8 "!lLg@&"s xߴ;?vN>O{?icɊ`# 8z+Q?=|Aey9:`pa]Dkrf17| (h3HO[ۉ@q1R{wP{ԇV($9$xr-ܾ=,iut. {|__s$?tkD_EB11WZ ytm9T]cVRt /gJP[Ӣ/crk2b2֮oBy貁\3m>|Zlpw̰P({XbYCcx^~ 4+Jm#})y dfyU"0!pH,PB?Vl4H 2Iʗߺ[zt鷟d^Es]Ԭ,ɕ/DӚ#UKM*$wAug7ApP[ K Oe-øoHL!h4N(KTPv~x 3 E懸!#Lmխ>\녡EV79(Rnp%M\mOJ!0j#.Sm0  )yߘGܜV(͏ b7"tԓ r5:%ń%P^tw}lڜy`o? VU)hDe(=Lolݷ:|6R(ZGsъt#169XgCJ9ќ,aQ`R99(ӕEvd=PXyH EJH 20-L)U]m5@ Mk">jj' 1R%e\3i6ؘhiӖ25OGx;poERv[CdLȯT.-'PC4K@;sV韾[[~7f(~J|WÅ*1b\v\J#Z?P~r+SUX3Kc9/DA#eu}( 1&+Z6FTcZݦ8jZbo+ XSIO,Yj҉LṲ,-F PTMR 82aa9QUrr2Yv;[u k>q)iiiiub 1v".JCGp bt828)k*u>c3$TZ_UU͔Q8Xr0F<̗ۿ@B2g/p y=T1b@eYq2"?.iV1*$3H|vpd:a?=R!?,pB_67ܬqXwPx(X]^a)zR7˓8CZڪz7 ONӢ04B)d~~e(eeC?- qύ̈ٛ}Bv鳃Eʔ*г*`S:MʱG+u\KvT=SQt Nf~JW\K7[P땽TnTeMېp"oF*.G8D7?g{#&iOU{ZrZ( &Ic:vqיpzh/J-;+^f̠2> 3,)_g`CIpfG[?x8d]vG -- Ȱ (\]7Cu|]|_(1 Q! ҙ죠:U3Xm2ҽ1CHRX-/P٧7\'[(XrIuxQcV?G#}y2@[@۱:s/b DaXΘ?<$I0 l:xuR8S.fҬa*nߏJ#:;ߗ&ޱx`dh Ps=4 :BGUVE .a#l,yOS8n_`7_y( fCVfT9*|’0ꗈPT5\3eլ@dq%#6'BiX۬QR\~oƼLO.)S۽d8A7uV<'TR )Ut˭x-o`Yna&7hcӞseŬe`5':}30(3卂=+r:Bqas(Sc]ntef$;b*NԦ.ٍnb[Sz$^cECP])3LHzy7etk~9wn)x^&//!Q|]e0eʢ\ 㞏{Lx*Q4MҪ3x\|- bYޘZ eZ)SaX@/bjiYq!Tbmchqo<9٘kld NQ6):Et̻ ,va!B?z1h꣣sxA8"m6Ğp9@J:thfv8Ɍg7[uS9Q:5UC~l2]40miy\5CX́c~Vdjx2872@Ǎ ¨p/;Op7c wbnqSX\E`vOW 4}ґA_xWz@k0^'5˖d`JScS/LB-R~EZ52FsjWU~d=<"T+zBu*\eJT5 zw2o)Fd=2A$E=ϟ\Qw;&]M3u \,Mj?Z]E]sx7 Ȃ&`bOИ0LVA-.xܷ_6v\ҋi}Sc{SŌ!W e-L= C- /}TFSB+'in,9iG#v1RWߨK%5eYDi3Rj+o}@E<0>=.xąRL#W!5 ڭB}' `9?7=HB8|D s.`*9N?S~+Pә2jR?~QUo?ğZSg[4w4\w p=s+ Dǝng+C;)bhG]`N~@nVG9<3 q z^@ezBƦI]O!∩8J? #zYO96Z*[#%Ό$]㫒qٮlj1PiirZ |ս\V^W7eK;[u(^3#5|Hk?,KaA Ig -J1ȚP4wFp {"O ʍ%}Cdorɟ-ӭieA !~cy);0u)lTӮ4+/}}bq<$wve IU4g5˯+%Qj6 ׅ9czZRlXSUN^p m~>x>UgQ4=3935 ݑ6TX !ŊP$4\wpqaE]c,_.mŏIQş84\Ui\VgvRz.P8f6YMrE 'fk"L?kʴ[T2~},ˢ F Z r+S4NNlϖ y&(h K:abT})JcB`-ba4WÊ0/6%Ф."KXȅurc c^yy]ѥ0t,ܔ0m{U[zcUc TA4#"ZT MaN07&4q|6 ڙ?66zj}An,|i#d@#)̎iyr5TDP2Y,ۅL(3 [eTVq40#EP3Lۊ%PE4]Œ[޹XzG^jn`Uvc9 g,Y7+-6z5Z0y^;,YN :Zl7>@cG1.Ǔ˽|Y!" B5WtquOu(qQ"ܬ 1 M}p6ȩYsI+ &y⋑P@1?0Ȅ(p&L_aJ3;xX8ll7)՝A S%ڶv\~./фV Ks/K0c})cԗl|/m-7M0d_UpLpEUTT!޾r8{G۠5L7%W@tFSVGb)/cBOpyE.:́ !TS<.TÊ!^W9j/i W@_;VӋNd<-)KthK&!6F+Hs_-RfpA$t37rƜ4k:Zx_8S;n %,̴4E./%@g4Ymy;Nâ%W ][Vg^j~ 7 [hvxÓ+GFҷ"a5ǘ}*= "!x*08 A Xbq8{1f,9w&znr,\‡5*OKt/+M; /&\ _ޏ`* UxێvgSR˼\R1ˆt]D5\։J+8ݰ(?T0D{z" [?P1HtIE`'Ѧ$bB51!0aƢ1`aa(0a$$bB1De#!$bBӦ$ F |*bB$bFIE` {%#!1!:`1B^J#0颡E;ZÇ`}52SK,#a1:1`X~╞Z!o[8SZi&M)i߇KŒCwvLS?krH/1Vdq6v2"#D1^$gs/cew]FٔaSzծJM[}BH"PªV d{FXWKbR"8'W!;T&9k'{'VQjȟC8|Bn΄@=b槭>Yt IxFw~ _enL޷R]bZ_]N2Pye1003F (F@04BM*caT'x,qϔJZ8+pOnw9XX¤xYdu_KY昨CV!kD/2XMXq8r^;;=sC(q3k DyN袎p4P$ - =O-;k0~6dQ p-ĺWunR4M:; 2-ְIQzP(x[,鎑^I\4==Pb*X:QLQr'JĆzσ5~ƒތMKHK=cvřbe861%K+# <Ve*Y,I"hgE$No.sXM1ῂf68YjU3& fDe;275>*[mՔVt\Vmhpw$QL +D/Z8,זw~FǑquML) L 3H-0R4L ַkB6JMs샻R"ŇMq T}r)ʻ;12|#dsfRQR)+cTn(Z !+1\I8 'z\.*d 4k^sn#tZ~[Tlj67vt?*)GLm^q1_<n/p[qKjqpBjʭ.MJQG8\uձ8 /l@fgBvԘom}`Y#a$?3:/MaH5*£aƳYID:($gULNBUd (.Lɗ3Fk5U4mR ^(*&0( Til.BYDZ#\rOAwfNGC!5͊Qos$ {u&ܝT' [-!B9?TZHߪB$%GX[/b3Zt,%MlvG.)0$ϔQ:uz])ww*0yJD&UQfH 1,kNdfDOJ- 9q0p ^kS0\,/ _QrCFё9G#7iiiGƝ4JMETZ |;^YqL"ΐ8zwp/!' XJE:ËcGUftx9 c9;Hp"W]1Y֜ZedGm[x 9æT"묦<|b sa^M9fxI aă" n+#a5(Pw_ Y_S@ґUdʨ>H1~]ϹQ%$EyNQ {^)b.ek!ā o`ڦ'!7Ϻ MUKMF(\ŕY"up>?]S9IO1w=wMֻnȓ^9!EC.Uy%2{zZRe?._ߪr˩VA ݣa3@ׄ)v{=Xwj'-, Q>v9 #d|$eZ q*t?2*zhO{'g6R 4iqekkX'kΘG";QH?鈬eq? Tu O|#?hӢo.|o^tb~aˋri')sTB #V-h 7y 4#yoE/Ms+>~/[%y;1H6-{nݜWDo6]3hbJs4v!dl gdW(cjqrpGdtլ(IgW씡tEW B0fm#5eY[\b Ȟ۔lE0T#Zz N` # 㞃}ö 4p=JS8[_r&;нWכSOi3-n )2HME<^Pc1fS2, љњY0 000&R$Hd MY\8FȣRav*0͹ώ>E~Ui:0 AC"*ހ"'!=otfsl' ;c̼8#?<=7Qo@lj-ZZce~iOkqtJ*W+OߑSzJ:@iDRD/JŪ_An;-] _YD4Hy4\$>aJFpc?No-YnF(~[Z>\.fw.~1j8VTؼ 8%ugl 9w+̮NW?`RSlg45 @Z>dzT6g0+pshno`c >9s)qou"p?eؒeج%d/_z˘y4*uh&4>a9O?n(}wH\/jc+#*![@Ũň Yběvr6FXpȷz",K0 gggh~FQDŽQYZSd]Us ~bɺM+>mfy~.b ]Kқ%EIj~I<ʃ$ "(Ut쌼3F2͟v(sQl[\d>O#xE)><Ȟ~hă~?2j|P)J\k$Ǹf32:Q/oj<3( {q0<~c&E@oWDJW#wm⩟nz ~+~NI+ l;|+/u~~z0_ŧ"|RH^J"r .Ӿ1>'k:ӽ @AH;pkABVX˳ֽGr:9n]:6j;hT7s8 !u乊 $8`$}8!6 SDZj#Mz1Q>N=B +bj贺kWRc(/#/KzTTJW[y&@ ;`$!PLĩJ-gPp"\|A"w$U3>Yeg8\\[yĞ3WAPdv3XMDv!Ȥ #?`o5IÚNN;]ӶrD<[mR z'*/O7(u50xqN^~c@;gΨ} "?Yg߮כ{ 3b:SVz]VHa$EРI)Pǃ F_aᄈ44/*FIEk3%ڸD{3榁/SAh'S{:} .ۼ#_g~2m?>,m+e)Da>𔟫4Sg2[n|:烟 T_ 9-RE !Dʅ]̔)Q9Myz[8Ȱ!p:1 DSYB-<}g~=Ϲ&ptu߰v1p^wއsDd4W;1>2nH.$į`B+hXtILaĹA*%65l DT.t+5wvu:R[vS G'䷑.`ީXP-KәC郮ߖLE}Wӏ4+{v-St;30˩= l|ޙ`YNp Q'QvR;.Q=" W˗(/iAeǓ3̙"_j\O"JٗUMCUZLnVcbz(Zs@P\6MjMj%5uP!eG,~>r֚ȃ&(NiI H'Ar*AF2u-q[H@ HLQ5R"s5Y *Zf'8w.HuX~K~O(,-ˀ<)0Sڙu/ɉw[AϢ]Hr95D,ؼnMZ|6MR?ՀV `>ӑR"wrhF?l:Fzl'TZJ\7'SZlaʂ@ _B"|ã՜.p'1eAF ;73.ڨuws uO,pe90xɪ b [ƫy:hkvB:?=5,K_{\zćq\'(4ԥ^K}*^ >/wv10`C4.3Oh7z]mGZ<=p1һkΗ pg}G,'h`P;F"#ܬ31#0\PlRI_SL E?TrT5 P@q.`GDWivꭼ4m9-K>8ddZ f1G)kjl-DʖKY4pV]Ӭ7EC[(׃ }&R~Vί=}Nډl+Ip ^;7Kj;n$o7.cpQ9> 99%z s4%Z-I"]ԒNsYbeN@-%|$z 'ksz!td,}Fާ7 F wP7UdoǼAG1C=—K ךJx}v6dHfs"vfo-$Nrb!FAbb8uW Җ8cKhQ~;&,rV@ǭM줩q>aL&G]z#Y+1떝 c4CFN.Ho# PEZ}լQl "j@սȯCxU/UM1Aj˖3ybU[ano«APRIvgɣ<1Xc  FWܳص?ZBkEX윊j<*}]Gsj d\>lƱuڵaWx?3u-H7'#NCa$Q( Ud!0{ M*2 xD'>VxpF(K(Rj֡E**:z&CP,DH9rWpbqהWƒwQYܿ]̯@M<dbqiUϦ^9:])9DRxCM޾E)+ \ /eH/7s/0BXg`$ !zȁUxIY\ŖVI)E5PM\5!V̶:5[(s)ȷdԪ{ОL̋5N!I/z%lOk5x!WLKL`6j_qݷ!"#P| %eU|wJT嶭Up."gskӇzh-‰Fw! *h(M'cq9‘V{>_ |rR2+vs @ h7!ݐ+pY }_Fj0,Ge5݅<(r)҄(qT J*TI/|lmSuo<-L(gVF꘷ʌبQ^*_LC`K̯wxwP fU8U t(dB.che:T]!K/˂m)irY~c.)v?B@Iϻ^ "𽔛{ dM;nˏmhplDTH%lYV`XebBa>K tPpjtTLwG6Vu_э:ׅWzfYXv= &É!"xx l#Cg>u sѭ.ˏYs_k,e23d;k*M W Z`rHʑԞ=TfaKƛP=^]n\)nNYW<%(4coegn6>˲;`+hq gaj'&;ud߳9#,Dk>~3ycC}+S3W.?c! b-R'Bxu9ndPqF|U9]<^rUrdA2g_TU?y|1r`ob})w"^˾wrrQ ao^:v]6ï;2^U\_q8OdOds6ԹzRvĮV ,nnQiN2&p-pGL`?=M!;գ&zpx|¡B&YU I`iHY\.pA]WJO.AQ?1e7.uWR6quӈ}Z@Fd#yiɴ"m *NPO, RL8Hk|!J-;\:mv{b! xkuPYe6R˥ a`Jӓ"NJ]7}~ݩ)6 W  Tn[Bf%:z_]l`ܽVx^ǥ|"KS5&u/Z d\ X1}L  VbqcQ* OSM;}J7v'OiHӊnUuJqXڈ|ѱ 6\ײя~%Kt量Oӱ5n /7q?mI(;L L=b. .D֭]MtzH8yY#QM^d1q2}~We4-_#Y\DJWM,Z  Kuj7P%}y(BP{J99?<ļRn:yWd-7>BKD\U+Pğ_crwyxz0{#cs0w̤!?@j~sٝ.?dJܩe- )lBu׏_J_ɜM*3R%})qhNa;$vD; Y% kRZ{GZ:Ud&1W* Ow_!gŏS}6&5oq jiP~~a_]ԕSb;ΜkBRtWS[}G#몣ҏSwjUGSFeBxETZuSKJ+^|yL;6v'yO?m.zS9Z};HOycӋgUWZ% (k6rYb6#zS74$*2PǽetQB]?˟Ia"kCF34ȴUbk@JYaQ:e"wE63?/MwoNi3419}KL0( H{.p AXb$Y1e}3*dU9^fS~eʼC67bh35D-&Ⱥ(~b$).((Ȃ24&? 'D"1}jxu8^j|m1}!=w|-mJPb7/قv2C=)4&uRT= aDPeW5DQr9Sdsj혘R\ծ,U3.vlr*Z E˓;VZ$ȩ) V8RĪyOvbfTrY:'N&XU w^⿏<ηO>FFD(Uw 5*5<맻[4 GsM_?_ݛ#UZM $eԳʦO)SnLdJRUQ}2!׸B"K  BꊮC)Y Iģv`J4C?Ę$[0 6#zS =JW]oEQe^5mM tn7j{sxo.QP-)ґ]bJX\rfbw Oҩ,"䛈Tj7S?HrЉxB6)[PB|,ʸ{NhLQ FA %KRi7$}ik7}?+{ȟHaOT?%oܬm>/|}3šeWVU@g6ADD9%h܄tYU)7%^n__>wSuْj셏7"~+'FtmX Mq8 FN+RǷLwp>O3~ _a^d2[7w)O)(Qȵy=Һ#+S2e;ESv? uxNәZÉytqiCjT*^XJʴ5:SSy?|g Wx5mN~3Nz_ٯO2)MRoT(Ero%uyq0UD k(V(_ϹWr?u?m7]/r>U7bd~oł)ZҼJ*TO Io jUȺk!O j-DuV:hW_|)>w}uA.jqmժ׼Yu|]CȔ㩔,Pω`ΣeTt#뽵ʖGYғ)>J{-|-c5L?ELĉcV{kޑJoSҥS Ō;BHz !UyL(_7E7ܱ}rs﷝ ~"2b'%~xmʧV~hpKi6(M24 R^PJyY3%Í% R.7Fr5PR!&S" 'noclϜ֦c CģԦ$oEE7el11v8g :g@gAװV C{(eQ!K}A]M!\]vӒ=e]p\qS=Kp|`F<7t 7wlTO_E5DK/'iBU2\5f똻\X~6iY i, ,7|_*zc|%4i&kn?LI̟n%ήŞW}mIǼ`l+Ƨ㝵+ bdT+ZuUSQaU,Kϫ NN 5 l&D-[V3Jlz<د g iDSpo[Eh }Ŏ\=oEUk:g^ռT.Q.5d)tV*j+Ns܌ŖСr..ʚ[w=Jռ>Zab[)UHkybk75;Y/uMudC楹zj<[{QqVNN]fךӪB޾ӻ)uv~73Òr7A4ܓc6\T8aab_1v `l1~DvAn='Ha'dhU*ȼԹUt]Fשc|4|S# hD")gw^CA[)Xe>ԥ>'.%jbwC;q$:D?v3tQn*_iӉD!I8'\n 4J4MI6^5!;;.;כFGǤA3Q2k)ཱུUp=؝7*ʺ@Οֈ̆Vfq^5a׸8]++(Y;{Ujﯾ%YSYZb7#i8Sd(jJ(*:WZY y\agˆ+"Sf'3T(r+y ug/,U̜~rQmw!ÅF>(DztɷR+_P>Um_/L.UeCbo1:C%>yn+ iSwP&*2 {P{%\iqc #>!uV}njm]a  P=wԱ~~ u(T6>U{{q7价S:sfx{u'X J} w?yԣDe"1Q5պkʴ( WĮS hVvV]bHz΍޼NZW3 b^!^Jĩk.rn5K۪BD%uG1ZD-Geoz ,MjSsczCWKediݰ]ܞu &ڔn컪[n5C[:YP)vUdO5xk~嵾뾾)\OOU(V*-kӧRd'7#Bz ۬c+%]C`f)al%v-`6t<\e~B+y,ҹL@*ȏV*5zYR\[6oڪ:RNҍȱWkV㮂pO-{olP*BweF';gs`[d_io=Yu> ߋ_FII|V:SbŪ!rU(8 ]JyZzޕ,iϜW`J隋 l0 U^ߘ@Y $T/ǐ"f..%GVP*YZXUZJ2 o@BXeP!P0_M6oQU9%7L-w=U[l] ^0={\vUoJҺݸZKt'T.<҃ .a+wtf)By 1 Y,?D߬?סM}?ֹ1֡תNIe%0 _NKa^).)Xb.]Za9OSS.ތy^qf@L~:o"WO[W ^ З hLvBPV^-ݷ&9D%+nB? MgvBKZN{/Tm;B~1vF_h4S uN/b]WvRt&^Ch.vK|ǤުެK1T^b{ڄ5ytY2SqR+VN1:^I_(vrAi:jpٕ [zPTgQnڬ̳u Th9ef:?C/ԍQb[<{MX2r]?Z)T]]rvs~j)_]RUjS6瓄V!׈\*W'K4t*K^ZǢmkpB똮;9(Bj@0 }]kth|omq_jYN|sU~Ҟ{Ӂ LO/2{਍l"+oFSr-o{˧7z>g:We>Kӫ}LHݤrqY9.r-i'RjGŗP l4UZꖈtn|u7>X֫IQ-j ~;W\; ]G7OJBf` *dc?7Wt@M @Ho Q.CIwQIc1Q(Κ'{n⊜o ZK@IPٹPLřNWu=J)ňѫ˿.D[ؑM}k9I+P'2țgR4=NuqWh"3lqý.=**m}Wz"wm0<S̴ &k/Ҍלa}'[_7\f~Ng4?2mOuz/V-- F螟[?Axk^6<|' g7}c{;I){Ns7?iXʝlFҪC&G_3ҧԧ̥f{5;9WYYi]}8+}yR~Ѡx=4mʘr:MnooM a⪨6zۻe{&XȸW)ظF)LT$ 3$ԤOCߚyc=TUqq4~8:4ﮂBJb~^[A/Q37U3OUSTRUURRUմ CFad9 ă)zdG3_c$Cwk7.Z^*$u,Xl-wKlF T} 3]O`|9Eè9IQD #wFAa#Nq.RkbE.sfu.+W4^i77]~HgDSˇص ;$:DԿ=)yu:يz<:U'xޗuEJ׽$蛔3I.yU]QIp{ܡCvRǺXi.|9듨~ا9emݫa7(| Zdmڅ5Y}}0\wObYըNdϫ R{QnyM8zFv@5>P{T_oG`m#,n~IeݼF`+{|N2"A1H&YX!XBUeG!C~B}-¡4ܼSp]s ({Y3ey]l/,H'P+Q1Sn1\Lc[ ?TNXeK4XTЁ33(TPON "Bj3{Ir)K{_y^Υ< :N.Dݹ1jTBwɦP:KRP V,;-ts^>']gĔ =(,lVLZU;UˮR3!J(wuPr1/toX.zjyeg%/;()o}HV]LtE|]&%);z N8>™tn׵R3XڋPϔ W:H~~_Ny ՙpwVk\.ٖxE='C`z[=te;걢<ثjV8! &V >(g8U_B>bR=>Bb.ȆDZh7q).,^vW"eO"]8+=UhK'A1b{,Kt{eEIhJ .~,Q~Nk ;sү6g&kfI;=іCTrWcúouBiW6___KUiUS}iUSG'sOMu-mJ]bՖ$wLLWNuY*:s gEhIve-G:~t:Y+pJRTQ!ub⺨ilM&:>#dU~ܕWYu`pZB|_55_@U{{ou0hv%R.rf3XE\pfr,Β <CRfL!BBYitM+ìQn ̝@ٗi9< U2yn~Qё+kHtXvHL Zrv_E)Aa)p`f7 'ufX-WDŽxwP*wYv&ʲwݷnm=xg;a ^29-<18e5-P(X`*k0˲zSUhc|hXcsU{b*I@{~:Q\?&ʪ%s$FiubQ c>Fׇ "Q;㊧dy@4Y5q*P8HJ6>ùVl0q΋zScT錰s E;ֻD2wY1S*);cYX/䞳&ж1jN[z6(ʺT˭Z!rn'ub~]>(aBN]Ϲk=(/晣{)ۡkf-OoF֒y Nnq>yթTJ/zGDuM˧o#bl'HQ V{-k_/忖o8d7J**ݶ X.7GZ0g==Cv82`E DB(d)f5F8neDtJapuȄ6S쬿Ä7wݟ ɡ/YX&MV@Qfx(j?EuˬRe'։'.ENn: &UMF*►̨JUYfP=D?jܷo^kPY'享N@7 cB%GeIqeQ ڍ'^UssqQ۫T| WܦHɶR3XsZJD=I6n!Y=9tԬfBߐx+_y{"]g|X46H^zyTzƵJ哩Udf"T){]lwyBb떢#Z2/,_zb~g-Z_.=◦>Ş>bPݰuyFd{WV5?5:L\'9n+4aƫViBeD@Vj֕θK܏3-٨)Wn,-DȅQ,e'wZ4BRޯ$ukc]#v|V*TZ6CLt *Cb ļHH4ŧNu/"ם^/lP>Uiv PvId݋#rBR!eMW-7͞(\t kCn]Q=C>o+ mB+ܼD`#1t‡x܋nW\A8 {`y*J*jZ{1DV, x~W-=j\7W֕:ZI pJ~6 )XB~HHlQFG(2q A6iydOm-޾(wm薵 .dAcKE6bs2V|Fщ#Z P@  NJ6\pgr`Nd28> <zSӹ;dB,<ܑ`5bʋ_.JFy Pe__d,MJd\^Q)Ss>8RW |C}_Dc_ZjjDa+ʰ*FқTKr'?J{͎cT{Hc]qv&nkA%:%;VRu+nVHB%!tGT3M.z{϶UT3׷4sޣj]U̯2<,ϓҽ%T>#7#v멙ؙtJ܅KrT'֮=RjNŊKN76;qMé\WUe*Su˳Y8PRRyG0v/U8fz5r<*&R|Zp_)Ւֳ}ӑ5QLj[:b@;<д|RyE0ҷKzot٧>ڍTOr\OJOyzL{YKۙ8_èiPʙYW􋵋Ǖ|>n$FY9ON>O=|\HT]S%eK"is^&"yJ\VVEs͍41Bcךq:lt( +gu("/K't8q^Eo3߿vLKP7n䷊7Lf4^`'"¬!Πg9 `fu~&/vbm.dyQO 﫴¦4TCYGP*%u.B,|Le)U8U- _.kkYso9wfl]28Ap ٵmąc~;>g6KCק0%EV_S o.$<}edž-R5 hZ3&r{ޑq݌.ܜuݍQ NwN< -ugeDꮙ˭Lݨwc vyw*bb;r!D(ܿnyz(ˊDŧUX:xXUW.؍P<]tTNڃUۗdž\^Eldgs:! "`*U*TavYP=3Q>n_0s_.H\,ȱnǘn$dCBEd"U-G\e- ܲ՘zX;]OÜ LWt>"0 .۰}ӊCE:n5G(2 N{ `_dMdSJk0F_vX"X2 +U]_Z6"cjݿ+YY)dF?Y'|5C8l7TWy.~Qmᒾ+ɲ.^)Xn)հm4uOʻ"SkEo_{ _o;q} ^dlj[hUݱTZ)yM%MV5Ui*Z^ ݽtz<87Ӊ>]"&hWQ.{3)Pm]ҾklU9Үo7K_rϸOc>f}1G޽dC9~v|ZBD)l[G@DM̗B\UyWHŚ>G|!w,<9 q)*#$Eůq{,@S23tAnx49ȹ C"lb7r]tۚpokc4_LpREx?\:hp5߄=[B5ɛ%+&rckA2Xb#L2=vf N?c䉳o h?*8Q۲j 4q0˩*w43*(P;rPďycK?K0\q>2+;{Qȸ#z=T,W=[ :iX[y(8YPY& #lal/T!de nB<>n "p`&(pfKrf7vP? )DH_as4 5_Lu?-r`hz[.gK1%NX7{s$H0d66 ru,Dֈ~֤"J_^lCURnW)wu; D_&4L#Gl,6B,O}ؓh$ ǦȌɞDFOCRcif%@}B?}+*<%C!/f󊙿ĽsNVP$ 1=03'x#G.59t6bN tǠ:UM?fqx_؈>%oZW3>  DNs_pr\ (aB4CRQQ&9{fp_<|}c I5 }637#K<5| aՈx%jщf60tN ]iz~xaG׋頢2bF!:kry҂ݍ!=i=C(!zH4X9bnT,-)hq &Y"*u0ӡ E+6y0+ ZO1)H&jjY[uFV](5fX_+e`,\bJ~CF9 P(ԐĹZ a}p8Q6D+ &iU[ ?1r0`0b1 :F&M a^ͩ9=Ǎ_ܷo#m}Yz0s2R2LN -O-i&Ghve{͍мOܓX%RKäcOFx)N{f{;(\~ڊX3 Bjk*Ao"!Q< l=ڿ3p:) 0:x*ZqoF (?ѿ5!3(] C0HJ{9=hx~p{ $/J;BIe\GۂW_҉sEV*FEI]{gp1ΛX[cNycPl;BF8g^?v,6Wi˰` Ӡ]B]M>̑@l/EJl~-l"+[~7P%} S^N/IQxbq"*ZA )(0 r,7̍\OjG9VrxŦń%̗StL„0˝@m}Dv澈^GһÐEWqBR`D6b9bj.V"y205~*"/j o`͛jmh `9r?@6EIF8\]cķ &Ϋ&,7u %w`珬dRpUV$}4b(&O{9(ѹd})C [f{yT@[{q7튥_Z0B* /?u/_&lőwuZ}$~@9_^aAeNyOTu}hkuZ^uyZ-#ً?)XW]v;@ @$dI$BD`@!!@ L   Iv|F !"D$ 3$ H0  HB! !!&a H$HHȄd H0 2H  ,!$!@$ 0 C20@ L2@$ Ȅ"F HȒ$c B2B+ HH a !0B !&!Ec2BFD!d& @3H!#$BD!EF@@ !2C $32!&@@! B@̆@ I2`` $0 H HH 2HBdd$FFA#$dXAHD$#IHFI$BB!0f `YdID!DdY $I!D$I @$IH @a @f@$ HFDX$II0B! @L! $$ L0a@$0! !E! 1Ha$X$I $a I!B@$BEYBDa0 $FD$cFA$cI! ddHI$H2a! f@0$  2 0 dBda!$! C! a @!@0 fHBaC!a@ & 3 H& PY!$c!IdYHAa I$$ d@!"$`H BB1I!`f@0 B0 HIL!0&B$B&aaF!#$# a@́2 A$ 2,# )$da$H22 c" BB" !! 02@/TWxL5 ;Vw >+J0D|fw&‰\v (+<+3/#[T?nnOÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÎ{wm2ff,R&Fi"٢QPoa}>LMh=/ rsg~}׾MVO:j-vVXP@dds9߹9STS]SmS{TؔTߊo6}7қMMwMæƦ֦SeS|iiu9UYyuzcegikf$$#!nHdtTd:::B>!!!!!ttZZm/޾kkgogookokoookkkckkooocggoogkgogookokookkgkooocۦ6Y dH|w. Eu!o W.(`wdʢF2Zя4</v9t-@;#|:@CGaQe@y9BP'$ mk3Ly_isZ#'$\YX0f/ia-q?R&%Y-WR4b+wo ZTr?K95 obpQbNAje2pR*c=ɸۭ F(sϛ!ǚlSNܡ6 T9.E݃rP*?=}.%y17VW)ǒ ,е'z>_۪nW xoY p`i'jٌP(Q6-*Jkr(\>]d|`ۈ_oS#e(1t`^`ځݘ*}=~9OZ. ;L8:SZ6S*^&OzÊG&A|7':u V;Y~:Wmdw/q+64jn`᝛7_!MXF|7E_bd2#B'В})@Bi%%9?A^H弃B9PE ZG&vr,D/v;l``I^;<(f jAtr|hh.I #G{ v WN3Vfղh+ZHrI6&=00Ì9) bjD3fhѱjOg/\W' %TBOeZS% 5CrS>]߄}# iE{zMVα ~ 3BO7FTn||bt tj<{FZ_ q<;*z>xWTUi hK&'J 7;FYR٠.ivu(U(r߯|eٴapaÕqym}3e*QwK4tasTQ[AGѮ cw_eT$enidOs E|'8mQɚ>Pduk_DžRX "C(+>4D7uVr!Wg8*tWj^K W/LA`Z- 65@ XgvŴi02N蕌HytBK作G& *ڮeUF]u/JLX$*&2!z8dj;eiMQ5Vx Ay#U?ͶS+#034,J0Cq+ -T4f(9)ɴ7q B1 Bx}Q|>SQLrV:ҭ; Xdt::^Ł+;!$tJYa;AyhT42NR[*6i*'7j;`x5H@+J`Q5e`лݔjW)UX(Sw5Wh>_..{lϙy~kSBz&S#A*(KR)&F$TUPQ8;o&ۣwplO Pq0iZcF#w-?p8qz.%F#p9YA`J})͍ xsOM|omM{1q̒?BTQ K'9SĹFÖ2b4UL-2~1/[>}ڿy3v :^ld$ ˆO:đbpn ^ ;w5G.2>]o?{>Ԓ@@w/ t;rQN\}V+VY4+bȽn-)uz49# rkkkjjkkkgkkc,ZiiiSUPȉ&F 㴲2UF^k1ϴvf@2\OdB/"P!8zEH[+H|u&ŠZ8> َZ6CJ١CF#X6#+" G@+o}ȝ* u^rOH+lVͥ5<_=r`}zZP|:axsg9/Sy4Ĕd0EFŲD21^iN"}FĭGL2eՊ"to&,i ۟T;^H=R!YHITUDLaar)J )[X@TYH33vl%ߔɽ4kmИI)~Ϛ?5p`P|CZKmS07M&TgCad>y(cL0K]0`y yȯ 9 cYGŪ)BۄVs[')CfF+,57M6=-~v~.G2ӆlpm._0b <0(UHIz|r!j 88sn1f!IV+E vEm .\u؊قF(ѓnuaXyд-ʻbWR O Gb.aaIy^&#@L')a :0K 9TcBiBh }#I_|M3k|z> u_ը_}Y eOJͥS~0cA68TϤV\J̚o142G^VXe(dWxM~IP!01/G;}4L0&na@e x~}gJwo#G$ D D4?><1蟽 <жr W&:sb9c"gS|p6F10eX6 6l4Iė'D~B73jJ3,O(N?=8|(N`K.<~ɝY@uc2V}BێQ?H/yC=,+C'K;gzeYؒi4\퍬jMMUT5 RJTWYW Juy\WWFFB f"A.-X9>37m(/!z˞TOP9+e~wFR]OE.߫l_1̋˃q"gT1oմɚYr>(}]J o70VH7Z^R+֩30YS*MA&Q B}K: H8+gۛ %EVBPbM\1WƝڇg]v2\#'YLJp 6~*(zLO0nxs| hBRw=.MW5R~Хuվ<<uL+>z놐u S*=۝pW 5Ny C迨|X1{sy봪-/r/>ŏ.DVt9uq=_MN-+c0V׺t "?/-m3+]qC֧z?/`*wQ)BD&?3`6%P֦P^3MK|!)R܊J2EdC Þ(({\]0{ p`ad뤈 <<ؼAc*w2LjDk-H#wɩ>sy֭sKH1IAE4mC Ov:T mȅ2@KNj*!cJEɌgq-fyyeUâ P.mK1g:+rҬD"8Tdž;ܧګ#yPҨ:Y ׅ1mz]Huc9UwmmU8ڄu]OiC0vlH}2'W}lO8rQQ=$pϏOWRG5Mrڹ_N*CruǨ4;ofN\,$"˓+᪗[9[Xp\>p}/)`kn.sVnӉ w3^"[,[xnlG06/K=Oz6|6OOˋH=#*^1}D6 <8r;^_|g='D>\ Ǧ8a)2sO= VO9921GnJ,w\h k~cW>Qs]#-DBB gb[WB')Y:Όy:4Tø;oZV]9%#t9up5l6#:u*z:V'$)=&kW"uҷY.ik RBx6!quǽ̡WO,21tԷ?d9 $Q1}CUvnm[-LLzdU@e|G-h$r4,{T"~bc't5uIӀhqvqj{mm {|67>ʆ m̩Exy@^jdt{akhSk*:I쨆\ws0%+o&~Օ&e?g͢7t. LåяtX0kY0~=8D;~S;C ;jFռ}P}Nh.-*Va`e\.|O5$CxF./̌HX]0a/uNMq{K~k*k ܵ%$n)eoK-:^= !`m(GUww"#BK+wj*;Rb$z -h0vyFAḏ* s& E |ZDGwkpuy:A;Ƨ3#̺q$"8mCRy"-[ҕܟ/k%ϐKT6aо"C--]ǖ י˂,*!F紐T>bB?{_Xjt꬈R*Ni'{3'xZIc(\H&Q"4H.>c2{rG%0p^zݔhJ oVjO<'IBTy|p!Y]#tkC2z0YG_߭L=5==7VgQxhW4'!d?FyS/0  Yc5΋r[aT\| |Y#.2JNm17a}ᒫJ@z <]j(Rk0jOJƍUFo]sb>څo* { 7 ~b!s)s " L,K~G>+D rt2GͺD9+xP[]9Br:PuoA8\sB#PY)w- 7b+\p'cv !+mDŽ&J-̅{{F mH ц`Tvf\8`ů(_F$"o s> 6Qg`_ %`i-bGM!Hy9b)s#a:Bp=;;0޻r2|MجvNkQ ܼI>)`Θ齝\Hdd0 Uџ$Q3x1co,tIN;$Qa:&x80 f4#F%mzz.FhC6݄(bP;ȷV'ݹq?cB “os8EMts4#`4kh}-x.~.nI{PgxXDk$_1=K`.'t:I~mωooTLL"cUCObƑˌ%C _9* Usp?VzW/OIwȻ١5meUzl/#*7bPzC.1z4X(+)Eh*~ʌOFȶbK}KFn;nj+*1z/omkB[!ilJѣs`i4\r"'ć#'T)079= W0.bPl V@G3FAa DM csb>1.$^XT=#th>)iDz!Lc^kCA <\~Z`y<: l(M <@lL{hEO4w7G2`":8baUz F8. '>%;a(*A8!A& Ղ`E0 O`$2K r܋M0 0BZ,qQ˻b}5v!d H(nP b 9@;X G~B xPS" ^\@_>,t~ *#Lh<8 D{x(qpc!e1Au8 +AYaDʊba"O.tF`J(`Sh "  #ЪCO@_r>f]ku72nߡ ԸBQ>+Ƣ+ P^ Wq4KE, +yT81!,.qYg1C%D^&r%?OG,TGO, Ձ8'g TxH. e O"z&h⪄ RG&FU++&%+jQ9ZAD=tK11 !=&U"KIni:G}LHWXpDCw.>A/OL\ӑFTDSQF`7UP'&k+odP*ἤDTuy)2Wh=Щ#JޒV%ī&(k$9VK;xt…R(3GC91(]4C3PLF⁁90ciz923S/[œ>p!A`T&B2mgU¹WUgR4Dl@qG-=7+V$>An C$՘r3 4o]L2sq3P%!E[JL6] 諤Q4lE ࡫а)D "u]zrB6^vr2A:hoZL}i 2Ujb J?IzmELUJѳ3lB!Bbr؊oUDS!ʦN`9|!4]EUL53"?V`.02BsJl89wWZ Q1,4qS"0Gz7 h"w $`yu?Z;b w5H.y edmpX@>`?t,ED4L8X*XaC}  ! Sŀ]l.ఢo1AA4&d@~;9QAMC "{s|cA,noKS|&14C&DAx L,3+PJ9&L/qٳfFlydf|zMz"j^ED&O_rt?ݒ~U[K4x)ͰH`ilf.d}}=;*CgׁCC ID^7i6bلC Wo0+Ё$\BSԷX`QUK`^,\vw5ǟD}3wP=6Xk#N~Bn]X\5ٞ.ޗc|iC YqfojOo-y0(›R!qC?:n&D:P9o,Si 3G8ģVW[)Ef6x+VEB$b~KVHZx^^^P`|j CX6' ۷x>o$xfs,g_ð1TѬQXZ2o4U+Šs;LUX{o-E=ia8+~9gugW焣 M3{hv&}uc錀t߬P#a .Pc%̸;$Boͻk⛆ujMO8%nv:i,!=T0 #R҈wIlIM)zM?"2P ĩ"%p#4*l#6ġo\.9 ߠoχ*dZX8Bhڕ0U_n\9By<9KJZ@ # 99!D!0$' EAP U Ucp.`/`fd"&S[;|8C5pFv7Nj}=E1vZ104wN#EH+͡=iAVޠğ>3~mg"} } U>t*؟飘Ǿ#P$&C4D5\s{M|}3CyfYzNm[I!i$C1:ng&ael4仔:ڢJӠ#Ҟ9*éw_8!jK: x?;O*P~/~,y}@҂+bCԵ<ʄYg!pyZxtps"=t[4;@r80 wI! _xJċݜR?SPmٙ_ u$(wpVIJhGè):--,Z0KULy߫͛ \\OK{ $ DݢzIKk9NxQvԏ3Ue|d(!Б=%(eNO[ e uΜ~!`}39?Tmcٔb/Rm".$*J]؋z .m>݌1ge t݂rlۍɂ40R`uoy:qSݛJ-cXkWYg(#Q\:c1j.h/ 1 uB ijիVaØ&iQ*:֔o!(^:?YӯwA l]S%Qab{Cb ] &H ƹa&9_ 94@^{[{yG?GZ;Ƈb#1 ##>7,x CG`7 !N!S## =CdcD`G&7D}h;CQH>B,W`|+1 l~QbfF`7,R9BA '=g2eEАdsT޳ɤ;_͈kG2`*?-yDB1\!dR vCNFp[%AݠjLPz[9/&0:r2&JVs&MުPf$Xoy- p. ꊏ̸Gi "d TRL zZōFC,XwfIAloE=B$?ţǤ2*-ԨN.J|JqP|VeUjLnڦ@6Qj۟[CG*9Ao\;z)3z3n gy_:6ť3Q@!~v@ta*k2\ } 4bᩯjx)˶.DZI;!=)4a݇/}AB;3r5*Wn}θ\M7Ǝ},uTv7g[Le ]ʋx|$dDX.T໹(PWB\)>՚.0QMÇͷ(]S{Gy<v+;0'Np2cʱJXTQ$XZlբIyaO"H^x0Dֳ7 .4I 0m -q U! כe`d2eQ(ux?d?OyU/Nh.ʋcAb1w]F.`/6n_$mgqG+$/aHz8<_wrЈ`"sKh"^ ۘ) -y3"Fgg"݋kw?=s u<#ʯGNDPNz}qK"mӑ/(t-:uNwp7 K2^6)hs4!90rذ'.s:=gh?]ꎥ9ؚ 8]uxwH} )|I=#TػV] Nԁ)]J4y|k&EԿ ͒LA1?(T'@JBs?Bd1s3 C44H>b ]qF_# h}'.cXV' N$ys딾rmLiSgf9?q2_DluNpշ7"vr{32-lB84,ccQ/H/zoJ- O27 s4d}c\Ĭ`mJD'kcۘn?gӵ((?vC+ߔ|Q#i3Dfc}^0 5fhlvh{ꏀoPżr 6"K袖Ep A&c! 3曝ٟ`0JN}eT)Hk!=ꎓG_qOL@ XZc#aW 8z@ĆF,{}[ֈߜ)'lk;P!Ĺw#vO8q*3} c`w|bfN |ӟ: joB_~DoB1}ʃ0wmBbE3Hia1"qh8:$ /PXȀpKMPOy e(.pR]eg!>z]Je.XxPKtrLiCC\2^n,1?M{/({$iv15H}ѥLQ>[_b0>o :F6sG*iK_ĵEs~'O9(=DflB͑~rc ʟΔAz:3w/:iMdg$}k+π}8s1%şGO3=*&?d]1?O3)'R>KȐ$%C(<;c ~:Y= @z Ô&=?-ygu,-1}5=Ѧ"ƷK I |H#vW8΋T^,b', [Ao yu| à|"_A(,& ccQ=POÊ{)#<+  ~RF~j+a~ؙC"ƌ(Q4IIAB(_8{q?Bw*ȫjqΈjJA>bpqnETʯlIcc3 zDD_Pq,?=S漗brw5-xl~ûtg }D g89Y7z 2jEP?g;tBIaʆ qGlg0vol@󏠺pL&/x]jgSQ>ox5_nFQj`>Tl”ؓ7r>quVAzafUa~X~sضEq3´@ A2@#}z@`$e)E .V u)q j<c ,cH<Bzemv{c:8b9݌#a#So2f0Ѐ.~ Z`Au wQ;l$ =/I{sw?I1ZҦ;Ϡh *ΰXI+{;7{F\\S`h :;b/v`./aUO4/r{WϐVK[c>s4^Tt$~x+_; !O w.Rv8d+# v7 `~c8${F@rxy1Ǜ7y ǯ_0y+Gn%0aEgGC%|zp{,# jp&o-Ag5{O,:BLF̆ 2~{v8 D=>+v)u1ZM7Xy'9&ݘҾ` r9$9ig $- Hp}a;?I—./O1ilr縜* c q1GDP7Ō3w =cYV3 t)BpK]*#kȵ2 S KՏt9 }B\ ⁉p @4=ҭchF5PA5 PP.xe҇V:B.Es̉U agMf{?`&ARc0 1bw'B|5ŷpFR~%YIiP{ \-$ܟ3~GGorBYKFYnJy➩qMs t@;"r3z1BQ >,|l~ v4Ը3$^Wl7d66$R%?k⋌kIMI+ 5d EDCqt>恧,÷L3 dpY87g\F% KAқ nO7# zij8=jB8A"kv<3ϼHEdY  1~TRH%!:ա\|vo k##!?K8t?z<rB0}ؘL?Vd %1:yQ#\2Xۡ P԰0]b8җCP#Pb ځȨr bn4GTx|fꉞ133")#=d|;xs)&ez &xӮrw:1÷#)E '*.;NCM$fZ$Fg6"Cߓ4  J#Q|yZb+~YE)BVnȯj%Oנߌ2;_aGo,[!2sDr`-;3p Od`5+;]CqG򒟩# 5ƎVL\x@ZA`j9և OŨOwDr}SB{YD^$k+SK0E܋?)+t>hc/ /h_ߞO8D&̬!CE ¸MsU7Lz9=4I֒͞Z# 7&H m%LJ+\4=GfRGr1GysEp=C- QcB* I~),%,VYo?-sV F=u? \O Qq*?"d9 :A&1F|Uij!¾9+iOP|15RH9Е'I/JRlI!w>W4n0z@jtz'?)!aط0Am x[My8#u2`k)w0@{R~0)cu[k.hڳ((7t4 9=êG70ޤhdY3T!f`g> G uB @>b9d}Bd͡&}D~U(<nBM:eo3?[ vǘ?;0ʚixO7]#Eӏ kf&e}a43ciLY_ 9hVAecE$h?%l.p aKNRE\nukB@LLzJ 'Ĥn9h"F/0skD60Ul2 g#0\*gCjxt?$"c$ Я,δ^@-7ܲ_EtI^ht!`AΟyPibvd)P.@W )paH G%uqUZvh#8a#C,{4ғx"9~p) Mb.~ [7Sz~0pvBTbp-:S(y )P}Y S8RoP/Me9 G 'kI(ܱ -L\HI+|L>pSSv.+fn)IS1 *2MP a4|L i^";E< f2~YƚISUl6co$rŐPGȴEߘy,<2r\jfX T/ + opIҤY C:h5Y$ R=p "1Ne ^Ha2 1VL_6;o5q1˄6Vn{X1PXo'sMJ9nZi$?rnp){g-|}3156/ I.G^ B;"*50 3hA2$lʍܠ'H쫝 5bU}Drt|7a^=rw}i; yhkLnH hxhMP6;1' hB6^!@ ]Wy±@܅/X˔ >1cCӆ9Wt62r}9Utxyݼ}1:0ٝE#;n3 Ë?E-Q6O 0M͆Ĵ܃*z U</]E_ W{?!Ty:eQ64 $l O[M1F{Tk NAyfKም #tv3lƋ@o."HiFc8ofb<5yz*NmrMVs<,m4["-1z8>I@+>Sytѧ*9h%DPÝ]\n=66ǽ5o~<b 痊I$'evD =ً~s%G^l{H?@}:bo-țdwD$͟?5su>փ5E&CFQ98}#796c;a;hۅMA 98LiB֮^[XuI Acc͏rbEWEtڳGP1 ͇" aʀ,!&8ɣfL) aUT<@ 'LÐ0R<4<*8Hp =V~y)Bcgť?(@ү/>&Oh7x_nk-ٸٙW{'K?JXOݔI"3xs".X9q];m`@.Y8.C n) 힖<ђz 3]dl*Bo`!0fwGSN(Fߟ51[ 36DW ^iSka>&>gـ11395$^@Xd8|*(3fzah'\37 pQf6TbxP?P;&oXXh%3E$bP#dzge5rQg$q*7'A>pIEN`ӟxcO2d!̩S}pnI3(ԭ-)A7!0 t-JȽ,e;d̽nS)4R{3{6"\`#0Ars?s;YCОdΟ[j~%ʸ/?Zvr,H_u2TNMx8j'7ڕFCǸs?4 f>z&f=u}qVi)L0.8?@up | qRߊ%An⛇QIGC!8ۍm>֔IF)tw=¨KK/LL9ԍG*s",5IX3= ɧӓuyØyD9#Ĕ,A%B'f)j*jxFօ\/el7j:w9<0֛3R@R qxE@]JV#c8m_oVwў `Pd/H|&" a ʧ6 ΨgQFuq/1a cb72b{D6nXx BH˜q\̜5^88>>KC%9PHptΑCAבO=AJQ?a: K.D9淀 yh9_Yz+H\RLV1ehY ;~8b戟xvv_᧖#:U y놰 X|ǖO:h2Q٧>@I֞(&Ezx@QWm``8 `@GR!ziq6݂pPЩXU #~JI.Cdauj.TP?|6/hSjߠكӃ؞` 2 ]a \a/d}ef,<>v?lQAK꤉v<D75<4AОj̽ p2?cW@A-*!le΂ dGER72KHG;Tui C!R(fBx4Cjo8z2>شdgt!NdT}t%G~s`@,G_=/4݇}.Xa "l0 A7}_@kSq, CPb&F@a !x n_8%l p?'x#& c3Go:kn.0_0*Ύ<~:rCFG7ovF-Р曊Sȵ%9FUQQ<7t[#xtA93^ŹNxaPlsr}͓G fLԈpo:xIԉCe+cv2us1 G@VxFd軂-`2{(#:O_ٵ>o'q8Yc.4r`e#MNSCTYSlk~:xG>ZYg_{' Y Xpˆ0zT;t6|93˷<\;Fn&d^#`ƗP/0* QPsA ЈO dńj S/ DV uxL h8EqGrh[~1>o3`{VTаagDjq&;dώC* H0x{mۮQ A`>Vڌ~O~)8St]8R &;#s:aLa]eǧO)ޏ`p{ħtkPh˜Q̀VA PdFxȴF"jZW)*NTA>{9P#s48H!0v^LTgi#MJ$ltr?xkq&Zr̯8"yRZM+ gϼ׃˛4RxS*>ݠ4&Mbstcdu|ܹP } ;0p>!^ )w{*k|~ٞq ք9> n~f?ڂwFcq>ox.)V-sNrh%%<m3b MY0)3w)lNJq@ ,P: Q@eR0=\$ PF@e Gm,Ѽv5_)Hgb_` 䗲էl~H@+nkP3:QJ͋]Rz09V"wEe 4"ڿV<*@kC+6'u@ _&m+B`wAXbQǎBĐ$wiI娱Gpb'cf hB]  C˞ C?6Au؊C&<}_}#y>4YNH84o.Nc}XirHkRr{_h;:v*Ģd3^C9:ɍrv^!oen9^^4莰a𸫀 Ssx㥆8Թ)?mjpP>3Ѫh^5u=p/eΗ59{ ]aSղJaFt2 9FTt"β$qOJC]v^#G$==<4O5XU55/%Xc⪫x++B+J͈zj-Q,%ȂO&`T';n~H6\\;߀YO}1ZZ'jV Gk {ΛnJex̰&Ÿ́yKZTq~/TZD%$^v9 ܽ ;BlXy ߲s'V=]?s]pmupuz3J(# G|8$(ȰGDGZKAIȑQLN@NX: (# [ k匤mxGܐ|E ۺ#.!p 5}3 UHtr|L{}#ƻϾ[H5pJ-q XΦZ(GY 2Ȭ 6lNcdm xeˬWG*9EaÅC베'tF9*hNɃ0ۛOx.}2d2Wj|+=g!`JfeUO%~AD\, l9fMM2,a|Era˹GC>"M!_|sY3pΎ;,?LP73rqXn7^4WItE\g?UѴC1e `L%j^0%Yl deBJ)JЋA{eMC <3E{T7N[Ow+|4^hXʽc0 ҁBmC1cwk9رw9nvK+a@W2ُh)[g«X LAL.Ksٰ ݚ9s/:WxQ0l ϧyJ MB!ޙQJQi%^r/w>q K"ą}y%PJN'OJ V`:eaPX?ݞu?U%jq4F Ɯ݋bUL3f÷(.kn+[*NUm@ET ͮI ZG'a~;{L(>a+Ⲩ5c,jˬ>~+Zb5,5KSa]=W _򁹡 {*Ggc3mIjEw~N#~/JN4FhӰT9 S 7femZQSnFޛ-:p^Zwi0ѫ0 qH/3>&B ka˄A1qRqhu0>ھIR8,CHw@1vca`3Qd3ɰm8YgdF$Gr0yR.~ۮ\ۓN;u?S, MDX khQ~- rS p}qjp-Wp j ]oVwVCr/ 3޿پJק/܃u /Ya+BwyjZC3:_Gݵ!7Cu67եSaT<,'jS|M.WDre5°ퟥAeTWvP47ޅc1o-NkP^h@F=PcPlB-q7/6QsFj *@49a{GG`GAU1U<m Kȥ#$񫌛{]}Zþ{:އf}Vk7kLTe@&R樣`Udx B"?!L[r[dxx2,VSD[.jyEeniys``N{rg7%PN]C_CFo/Ń O?*^HW# W6*6C R- !':%|z%K/j9/@VPӠYA$4TP/R`N4"H@t_CF1EMsőfI=5 8<*bX~s%iE$,=R<سpmi:02"Z*(RJh-s1@\aA1tMatXƁ|=)_䯢bb4,p^rGxq7Ž<5X_~etp3`< jxH3uR.B]]5eF|o^DNlB4$縄Vc_6oj?xJV'?FcX౾ $ͷP Dsӧ'RdִzH.9<8Z <Η0|kbp`ǝqDQ|8k(%9vz4YOiXQIRV2Dm4y]P2:T J/xp׾FbA.ekçE4u;9Ξm{BH|p7a?!c* 䣅]= Z3U1UЉo}Z?MyU'ymkC0;Q/Tj9零?=fήN,Ҵ kjѣR$X>=mZ/&IP@W lniS8Y1%2e܄0eUR)v51As)Gm5!/\$L0N*XX0BrUx`0f2 솖CVfMcd5eROd̳;d)@̬8ᵞte0WaI'IEI(nl||߈. ٧G<if03A9A*;p̓s7#V3j:o`kyp5VF-=ݬGJ?DV:9Y=ӊQ="q:hC(u W@B)7j ŜٜKz*nh Ԕe/g/ADahܟB5$8>m,#fmNS0ļB>1hjC|c?fsz^a!|.B2/^6/#N2lfl9XP [AWoiiSE[kQ|ݛZ·?e\X :^_UH_4X[P"|@zCBxS֋g4?wDqbޞS0 >' P;|XQ (O8)(ZR-p&NdCj#{uRg\ kYe) ,4 ׮NZ^arqYG1߻Ȣ }?ǃ7 %uP0` ĩPr#[p"ڈ@= BfT!8}'~eLv&$>!dw)}M+TSּ(XLZRI9)Ӭ)"X,@%*QD$G'0Φȶ:Tq#嫧ui[Ǭ tS]9i`zF R5.aXB`M-3 L N>:]"b1 PV'CcTaJ7RFĨz'Rl=$kU-S~10igʞdֿ&be˥?M^ķZ,8`q:v9{,|xJ{'dDžص z}XV틐[}Y|[f, HUvBT)[Ųv>YyF#r L|\䥵Ӳ^G)J9+׶z )4 l?BJ} gKUi\~ lpj` YbER)`Q5kɦ".^1 fv&R0povYĚ9M4M$3px]BՒbP- =#7QL.TYT#1/DWh я`OWits@t8"oLC޾ db0đGrI.@ޡ%I kC?]˩9` r4?R511+N IWRz _ݣl|xq轰`ܘ/R}w36sE=x͹N:u櫅j;Sj\T$ ݻ[ȗ2x=nUG+51p(c'>1ɴ_ t+ȟfY }6W_fj"69$X$ 2a2d+Ja:FLUdV+Z,ŕ"łū#9x`s\9DЁö7 _Щۍ|:6n拌 G69E:}xp4/̶Pyʏ_!rZKX\Ax0vC'@!}.s/cýF_ FybR9>Ih]!T ߊ}0 |*m@WHr8~Pù핑2^fF^r1[\`k4DZiV-WR]%_7Ye}Dx#8fSF>!Pj0w+klf4Рhr:h#xV1x4yz6s@ ،#/H]az\0Y=g@-31my(i/,9D89mldsCy^s&(s  +m/-%Y`jֳULL  90:=Bذ 7(~RחSKn7 . +O9ZKHcdm09ɷDZӾnPL^=׿{J@SK(Ț ŗi͗5]S(]ÿ_dRIXWH0DMνyߒdX-ͷ-Ek̗-"Գ--- KBjܷ-[ܒwJ7 [ҫ(6y$WS0/䶾9 #t/;&1c9e '^nx(Ȍ1O]t4@t$4Ϩ2Jߓtկ*c2eϏ\է\kW7/Dx WygU3s_#ag F~~ DզTQ9Gޤ=dmn73Ga0. JekL(Nu* \0.C?Y@j׎ n(7_XD;WȢ&(n!H>`QMw-rcfs-h،c|aI#ca"VDTșb1bfQFCECpjּō[f{"%\dn]_5v[7dZ+AdpBI6njyv\dG*%6 7SAEXQ|V8֨)֗ QʿkslRl>B/`"^zzP".dpA_m," gޠ؀r1F˗h sevR]P3q9>iD$^7|5k@w*\r#R">$TE$+wϭԂ~]*SOdQ t;(0V lW,aRR0'4Wh൉Y vxܲ~ Me"|Tg>:\&p1`TғJs\V%֋D X+kE}ЎA!!:[mI"? wMr"5x @3X:(DNv T̀qPQݠ|pTb(@Q= GpA"~bDG(b+@Q6ب'ON3"OytS@"(}]n !8("29ܺ{Ek cS5Osп4}t\l09r"ILPۚ`*1:  2;<ܿȃڇ/c_4烑 إX^cfb8ֶYB)qj͘Ӄ mewcdT^obaݙ,.n?m&A[2ĂatD!~D= VmmajZee) RԴ5okR[W82Q tS!"Jtەܡ&.e+Ugpl6ņ𸗖iii1QLhg?(h$#kr/R3C<!#*=W} ?f?h  yMnrT0楽#}.%LP?7;\Kw~W3For󵿹moՇNaP'oi`WqvVRbSe5\7 (&db tiǯlCTCqwzQl*BэT{S(}y"M^˾գMv9*}/:H}[1%r`r+,Q b8Gi, H3fu Rzi߭i$büh/}_}j m\wH!_ GJc x-]00k:y<5]PV~NH.):`Dpayў*~1\TLM1c!gAJo]`P\#efڦCrRqʤцM?J*NW`UU^!F hu29OWV\U:qSR#Uj[' 8/ddnRIu B-崆L_qZ@JU|w!k̙ܸ3g*sR")>uqPQTɀٌCJ 7Vz(x&!H`CT/f #oW1@A$Ság̴ņʋDO"SaA"5zO }5Oɩ JO21J1LR˻*ƒKpXs$XO|~x~iل|a骏v?-L'*:feGXZqf b 7X~!路i/{M{޹{\cۓ4եg7-7jPI&P7F v`I>6@~bV__f$܇]:.f!A p䱭 E] dL(A!WdgDh.nOXU"s}Dy%k {7'^`q{þb3]k 2<|eZ,KQNm5ǥӂ\CIy? \P3CoQOMs`tNU9l=8UYdk<!=WANLlL_KBܬN}ӌ@)Wʽu`c땄^: ɧ'R(V K-"U #=;xsjn\>(zp9uÏE=G?{80[#+ "~0i(Gw~uG}Qu,DGd4= l2;!=O8ÐEtkG@֢A̍Fv_H]5Q?0F͡4v=n3)Y[s"G`,"n0)oЛS)_LkAPR67.t.(zGܴYWy68.'^hn2gNPg#8V>@[7;wF=%^4dq"`A0{G)i!}nx(;Od\!b7}`>!驄͎:,7+gkX/-jeE@Iv@IըeI;>߬ BbGD]M;q1ď ŽJbI칤q P.K ƦLжGa>`j3mƆ8<1 <ũ 4;{_8v.$b1sٰ,8B( @z) l爆Gal0ay0gtu SLxŦwH `aIо'hg~١B_Ra$BgO4<=,CGqW8L\=rD88,W6t`{wݸ-CsO#۾z֬Sz9{ X<8^=sF⩙~%m>{*Wi h\4N&fڽ2 QصY&ج9X 0RC ƣqѰթjհݺ""YFa_)]O+!õ!/SٱA P6֩,9۹N$w8)t%묄<TB-QP L BkchR~P_z =  ceS6l CS,$.W0Ts lICZ"ήP38*5 CQ<9 $UMt֧3-56 gnj7Fjͷ~NDjoT =!xa}쎇bb7iu+U5ӰYہvE?[15 ֋xM G%C"/YkgĻE:P^y~ oP']ǾFs @p9|]};Tߋ}ERddiXkoֱc1B h,l,P#r ycl Z&MdF$(!"A<70FIɋ`-OܩA݋;,epÉnlyڧI@QrMPΫ*yt1~ÊB; 6܄Ʒ+p]%1l/Y+!myzBtPQ˶AE4 A /k[g+;챨j3}JWO.k>!V^dU籃B me>7GbSD%P@ȮX|B!ڙjx*t6n֍xj! Jߪ2{ }od;_?иqaN(StOU]TVz˯na4Wd%3 ^4X+f++lu]?|s<ڱYp{nx4 0^duG8׿א}7qԆjr^JFAH9kx6l] OWWk1[7׽=yINnn8ӃlTtnuΐ@ Lzx0_{O\ l0k\>ѓm+>]HP}Wݵ>edd:t0W}HiՊ{}m,ѤRIڞHj604 Wz^*ab=tìe61qHF϶plcB~ay])γ\WToFC(@j5.VdR iAlpZXap4UqG?T 0L YBWus$ JhN',,JTbtyQ`a$8ER-Zw$!!<)rG ?HofU+#0 +xD/@=>&[e>+>G.a)e},'M^(҂4KӌA*)gR*`:bL<ԬkG1@.C6:}B3=FQB' 1Clśϵlכhpv6:=iB@:k2 Ҟ <ttQ֊ C 9o^+MwdR\_= k*3KX=}QA縲&:c۾%G0ȡrQHhtzX?_rlC{AK/3YY~EI}k/cb >('~qlc}Wq/7;k[pRQZRuSKO4>Cî쎩I>oG!UE1Ƕ&Rdt#& XjFbV`jѡ>.]@4,˦c4dڍ#ڍZ]| #ESGF_2vW5 !"h!^{FQ?NCYx~dCV#08u0,|!/1lvÀP!)zsW){*y>&hz8l:h `!;!H?% L؉K7x3n -@4*b(`*7rpg2UM:JrFQ3*iWl^:/8)6~ξF&p m: ryNVW!^=:jVFoi gDlzb\[d9*BPHl6PYa{웝I4c;»=i6HXs /XާjÃtְ8OB1K z0QlAmN0R)UW ڍ&_̭%Np _bDJXŁ011V)F4b$9.w|*j;C73o)pfgaB3Zl9[`w ݼ'G"+C^"?̽r'"@9Lڨy8]!^? 2!Ev=n_[κE~ظY;Gi)_{!#|z>'my[vs ZH]Rj~p3 ]'&*Ĺ=i10}~R/K]Ϋl%,0 6|X7u_o߾CkX:= ,g1н rϧH*FxTjCglZv.֝;P\ xFr3NPs| zT ×#H/k c1}lV4z!A1Ǟb.6 &0%CJĴ]ܔ@gt~8io eFݝ(+Q/7,4‡a"YQ24a ;Z?5qn&C*05ys1-MjGQnii(lTf?Y({yp6ChP=Ub6oQ:7~z! eU jUB5<{ZCɵ+ͦyCuG$lL^u|?A ƧN-؍xG_kj$1s5C6xev>~ 6vw޸h=d߳C;<]Q^scn~}fhi s} kZﺐ(kZ~iy y8#(b7r%rqOXИMTb)U£뻴+i>tY=%a~B)(GAP)ȾXUY$7q 4b *T C*c [!/'b_ p/{ilLXzvK~UwN`~pa`@ߎ, JCL0C|C̝3܆b#ae ;7CX4e8;dQN~>7au1М0LPX`,Y%Bf4X`a! j1#:!ABä5p;\Uiw|!D'C#Wd3 .)sP NUe_(/# Snݻv۷nݻù[ 4CmR' _C*I}X@{}{zg ~a6E?uX+^os!Wj!O!ɚr)䣦DIdc(q>\;άjwYg*Є$?~X 1V2_ڳ5,UO]F@q7>yrH!3Gœ#y^t"h2C1Q:>}c^u8=<VaАq<rCaw昘4"VqKpVjY7$M a%gmX`Xbŋ\_ F1tM (a|^w~:ŇoӯatÎҿ)xi)j)F(x4ggQ@mȉY!`ddpԟUh~q( @2x:[@q{e Nwyz @ $J5C7yl1^y0$A:WwwzF`[ܣ}ҮY]$eTD v P)׽{3057΢Zba[渰mzp(" ~y#V$ j4~NUTbU5O.US;T0hY C^7|GLGC6"};h tIY_Z!cta~xHƲ%qVkf>C\})3gYv=`NAi4ӬSzHWAKhTI% Q&XApX(2!bX^Xl$@ت: z:&,-1TJAO;ʠq ͞~ao{1>8ҔC+si'19ȊpC 3rթq ,0RXRǙGLlZ<љwv~wXA(lj+? }Š_"̓\n|{jAT:nAc4n#j1 r!zk}tz낳,2!Pz9cjǔ2;=Er#ʦT2>_÷9Ԟ?+v٪xA+Y<űGW)n_P.,mʎb & (* W1}"Sy{<䄾) sk'ЏK'y[{:.ۻSGV-_r鰮p~X9eyVgԵr a9>&X :HS狎EPb r7*WMAjpmna~*/l'*,*4 dh Eev0Zs^[h`38= K717vDLZU'zNLOEkBqLPt^n4KIi6ZWi2mN,s04y>&R:BX/KbѸsx2 {ePvI.1Q#VY a/Pb:3mϴӘ$x1),UM,1$.8( ⫡>B0~n3on,bloXh.֡/D(?Fgj=q%z/W/sd 倁Yώ+AV:o {6j-щƊEd_ >nxKi/rΨZ@ LZߔ8;ټjh<\8v JwbF2UO,2lt|r_b|DdEpcT].>so.99 45,uCs/X ai%8Q5j6,́,YFZkZKB.SVU^n5YDn!BAA ggqd1)+%uJA nIrPJol!Kb6ЋaIᔎ$9lOL<B6=Ҵ5V[.qFt $j(T_OA"fUe~Zv^V[ƛ'?&KrdT253N}฻4 ´vQQj?'g//Yԗ_f襶F;eAlT pQ@"԰7" aHIGOq#v &#U!tD˕))qchr s*epuT\*l?s шBCN~f!Nfoϗ|D B@"qdHȠ!%ƃ&L2d͛5c8F jămu&֗ڦRWN }ΣI\!j#{ y6^U:kt7Z_ݏ"v>UdރD2%[YfaJJ)S2g`鷖i4љ9M 8'LdvP79VgI3[Ñ)D0`!uΔ. S- ~YW<é=B\HběQu.39/@@HjPP?5>VٶA*ȷma}̻OQ^anZɸ2Sm{*FOs \ 8U 2r&MZ% L ؽZu(jJ,ṭS Ap־x\ .Bx<'W1T)~S~|4e`wW4Qn8sD@ &ps5lUHӰƎm-<WTZTO>0腺W#TD`fHI"TN5 AsG# )AQ{5!fdYdLbL=}b߳?J3#ĵ76!>cTX /"hG4/<rq͍ak%6:7jLæg5:g ޾7`Џ+7h{L\unzZz&Hcv+Zlˎry CV2ʂry4TN1 L0EQ YA4iJYɀsurHS$DvVȭԧ9HV<͎736:#=wί~DARɩބlcW=匌a$ܽ!xkoj:{z)[D!bAB!%udJͭQ+F9ђx>n'yq8rb臙ZҝY/Fy҇*soz' T4"!L;KFU%Q"ޡ%$]{U~""/+KQ`xG(#"DE (MQ _Q 1_1-Oͣ O+=Xvw+9<,,Z6&$MW|i= g9z.McM4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M4M5DX#_5|cc3wŎ-CԒoazkISvZ-iqOaXw}ZϞv+֐bcE|Up+5l-K7/,gm%3ITONEËgu$xe)TVy9 ZrkҚ{nzhlJCe#x܋ז)Ɵ3?&zvCj]5?HNJfewJsKVtyy׫ͩSSiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiFX1; aV7Axrɱ,s: `k3;dLA~Y0m[YH`Ug tZ\{sX7E s0KԻ@zNH\(C|fŵFCާ"`fD8* 5]OYv88;nW^2bM~A7.կ@iȰ0:jtww>g򜲄'.~r"d~EVfg XA}#k>kA ϻbӰ=g̾ yeێ#G()vUT;wx ]O{RaN?>6-='9麴R|L4azQ60\=>xkٳ*S$W\X\4!&VOD~Xwq0z$ 5_kuܐi(hhj ]GE!(R59*ʊ>OKD^BQ-D?H\LXUuLKp3Mw@\^'HߠG>)$1}tHaFc?T:$sJ`wp1a 4tNe@ ^ڬ u}ͪfxpeOcXalTՌ m t[6NaŸ?Fzs|CP˕eףy_[eC]|T$&%N_s-G*;z%kviη OJvb 2>۲Ֆ;/i)7 .(<~qSQmm)pNUQG(yɁ:t1@>@ PF E#-c0aLT ̨̛)1 \uTUd/V&$ZuWS݋hЌ}_t(@(%qgBEyyZ>Pf sSstDOp {%?W$ҤTz2PhҢ#e2&Ʃ#DԶQ%RjʆVEx8 a/HڜI ]qo?͋ !fO<+C6eOU+ qqk*Xg` ( QQ-ڇ|JB,YC[qp|д4 @id=5J6lݍed̎UצN4`)x̚PW C 'CmXkDd*}҈ꯥ@2*]XM 5ۈ eBYk)EU.MDbB@$2"mW-!X+kfߧL\IuThˊcF^9x":]8ޤ ?BJiݨ ͥ66fkWa4Đ E'Mℕ=8aI™<جxb6C2{/>xLu tF[_;|wp^cFqฦ8w(.3/tpR%N^MjS2*ы[NgDGXvNȺ/unj2Rq/(+=o,f%殄;~Fyxѩٛ igbM+@z:}+4fnMx^$0Fv`\FER1L(6-VpYs؛P;lw*HtC /t {A3|l8hqwWW)}ξu{/@o.Vеxe<Ӛ}Ϙ鏬`($@*.jS͖8l'>GIs2E ddP;Ǥ&d]nPv3إ˹ƚw=҈=, ;K6_#Uuo=ko!jZVC[a`m,ȡمehԮ%@,;bԵ-s4)ltӖN}>SrmJLP\^.csط_2/QMTdT4ޓIvO.7|D)'Z9rApxSٔl17aϴ?M3oKa5U ѩ8Nj|:G,JB| `QGB~\L,!{#͆.O3w vHD3_>ѿ/B'xf[ZxV^5Bn"Wfˌ"ʽzrWkE AJZ-b/`aх ɓR}lI"P6+;G0(EˎM}3ՓšEV#O f%lh# |޺~t4(}]&,j'7jo#v1X;'z" (,*! Ұz5b;:@|}%u킔l-x(1y2 |\1^kllqi޾;'[;u _ֶk:ڂX~EYozSj`h`ώm(nvt PǃqoE 3@?ǂrimJB|1.WORBʟwRilџ+Nϳž8UIzowzqT.^RZx1D,\.0 qi+,^;eaU1nPƄ2:B!טD U`#Z>͘ц͉bY3 ;6lڍ4j6m۔H~=vY ˾w:d}3cXՃj#eUp]⸃b[p8k/L҄etvgjwvrT c+:+ᅥ~5C)#m*IxSlSZ ;Kѿa,К?T+d)" \3o2Ȝ5Wn_9_*64Nw6kJ@WO|^4R~bdvTQ^H sɞd?q~A`Cz!=<$"i'|FtZp0Q&5~K@p8_R }y]>L0cd rr!&L5+kQ4DŌyʬ0C#opT~OMzY]R՚y8o/|m8]2T@X%\z;* ;ޠ+Xn2MOXO۲[@=~ka\NQcWJ.>fޕ"0af5 osyU=˷!}a?o@0N4zp V1ngLtm[ ~'˨0v?NUE=TX'- #(cV20ggyF4avQ!_SE1PBAؚ! 6d%}bF#4ЉhUpYSQ~?yp-=?x~$K cĭ0}]_\J{aEB ly*yNO0ӧ$l; 1ɯ1p330\RǽmZKt::L!  a,Dq |VҮ7u`ΪS_0EWFZ]o[Gmk3j@эUn >dJmBd.rSՃ9ښVǂQ mn'~@8f3`f/bӬ(}Bnm`id7،X,s#!i64mzvE;fZRF[e=G5zKyL~UОͱ;@j# >[tPE"B( *=Kk옮D T`aT|iʸ8I^SX"f^T/8=lI8S&IO3.kqyKƘV5:Ii;\ iA>IjxQ=oBCEN;}MesMpJŐo,#X xTl ^&B ̀`CZ`_C]MDSuDm 1 Ă6ar RoLBu& ^32(%.>A,]јRUO J;bE`%4UVjF|#卅x:>;=$(OWV|<i-3w<w2\njK Pb`ŰɘbX[ ûuz7he\IC/J{KbF+mh/唎lAoA@M_˶7Dګ}$?o\xh{A2k6c%$e NSy7!V8i<;"uz^xAe" @ʜ/ΔkO7Vwp7P,(.X~ͥd&:?۾[hXvFmEz'٘bm8F\Srٍ lkn3S iJ|t y:.KѰ0s`|Twea-usCϝݤ /kwڬf$jpɢr-:XxUL+Z- ..bJ01%%,W1$br.Xv5 ,ːx>Ë3Wz |̰ߪ==0UFKf V7D7Wm#{Pd*Zyu@lm*ZBn8'+E; B/zK Z>b r6: & h1*7~g-JKM6Ts?CoӬ?ۃ I(O/BŢZ^D/^]ۮɐrIKGMh|>.^l£ zhK)u#>rG֎4ChrAFV.(ujqG i;jA-Dtɂ<)fW4WDT *K\ H$b@V HL޽⫣eHJ\JvUqKо}OXѓ\5֑1/̈́ٙ3Y!=$A )3mk֡O{Oa?iC;/,a fqYvRòbX.j&`0nՒ?_\7l=ov͙nZ+qU}9.Ӆ*~P#&k7VWVqߺ%ߨ¾0JF~! [YZ:yRȩw|a_"I2ӑ.'i]z-.O5J*kqFݚ]]ZЕD%,>[@]4ۆɗ)+.+~X-|v`8>^pJmZ)&z(f Bx/ G [iQ[:b *4Z\hbTxIrMbS~YnÊɦK+ j.}Npmmxc Y\QΨ'rM^ .I/ eDfNj%B +ZG׈_sqayQұf&"=5d!@+Q(^B W /+ Pqx1LӚBA'dflXU)TYZ;J-BC}қ#g@Y/E5MT yuy" iId6[v_|eD t!!ܧN>OU]4^}6u(cz4{'ݷkMr}h5+ G.hu*}VCXx)vvB_JyAPU!""Uہ\Y?WljU $1ue+l"RY6S;Q@$JnnPrEr]sJCrE }k]]'RwOtd 4T{ "+*<sY XWB@5T.6z T'׃},gJ%@x[A_qLd/a.!B;q*e {fe%X.*F ކd_F`1w;g$EK)d,, Dc^ EPV-R tKCfRʧ_Es0!w ˣ8ڻ &\(Isv¦>0٪1("-9؛澏FQi`.Dj B07e"ӧA|tիlO $6p+P(P9eZ޹!S ~ݎg'7Ъ9t(gpY4)5܍R2E} 'ik = k*u"qah'uW3i K.}X^ w1 9Bh@Cg䥼,\o;Ԥ'*Ux?TD値tڒN( I1LD/u掟0[>EY~R WJ :tDvttXQN3'\S&#' hFxn}I 1RػUS+Ia㕛!2O4\yHC'b'@rP%O(qc61YnVu۷dᦚ~ӆQ SReMZE,XEPuӕ\nyO.&+QdP9\ʨdij C6p-^$HA]HrbbA0ӲU,l 6{ׯ^zׯ^g.H f%F}lG|kqmxq 5On^Tǧ7׮nH?zȸa}Ҍf\& *Ka;V6@ |*[ìNX:Zpʢ:8fL/C HĽ!JExY呆7+&Zѳo} øql1*ՖM=Ղ}V*JAhT' pTcUY< MŲR+њG wg,q=R/Buh̲[8u<0f@cږeĎCfbǖ%Weg֢͢xfyqtFQ+"VT~l7+2ޑ|,Y-Seѻ`q'/])l_,oKR$lFNrPXpD%|G 䢈2 sdiDa_o}io 612h>VhrqqV]Ӵn7Qhsq%pPc(]|Ctgߨ5M8OBs*.&}/# BԊV bŒ܀&hZ0 !OJ'B_#8cbo4 ]H 8_(&t#Wxh#/0?YDTh",W΂eTY1?w ,YZJ4KoKaXJQGMG߮Ϗ=0Q-ˉ`Ph:2̈́y1ZD^cx popб +z8{~u/d3l>58WUMO3 Q8^!\g:D{m `F#0l.Jȩ@K@},J,d]Ci*>hETa AQϋi.\Yq8#jvSmHogi13UenE*c2V[!bѐ^`:2F9sQ#FYHVpp @oAi;0 u&W}xG`&Apg0B-)spCG|yx"`_3Bۥ|JYXL]ο+<ޔk*w^Uq#V&uR 1=ߛ[OPn=(kыA@/r,Or߷SFMԃ1y`j`;|\ŭ@B뿡Mghn[׷beD*`r( 6+|eɺ/ *wT$uvT!(P0vco슣oNC) D1~$s~h wyzA?m}7$iOSs;487pmÎ3L8aRpYp [6Djp ey]WW=W DS "yPJATJ*TC*U4X-q#7D&#qẉ USPztҞ8 $XVڅa#cC9Mgv6Û~P w}w@/-T(ˮͱcti2dܸ0 .Z& JA9H",$Z(O6$M;~K:,!dFIܼqHƃ~D^oN. ,}(ʌP f ]zVQVS?;ίҷ CzE$AG;QTY>3i[%C?ATNǍnok/9MȐ;!_Bg~^sW"~ߵ4Haw?׉u+rpx dɓ G )T\:$lbLmMQPBt oJ^n:CH3g\ZTM:>ٜ?@x'2'*UUE>*<>ձ!q?3S>|9%OW 0/&7) d^+F'\wMn`b/+گ8N3V[U]V^oV>t+MyB_00sZL\8Wәl3>B Mⶦ&2 1` MFG(5sZ{Nv¢K|gXM~>rsaHh 1.*' eEcU+(Lᖰ]\\dQƲ'F3Y FL.^F'h%|kcG:B?O#h]o|u,j\S~tnqX[rjGAEeW*tKݺO׳׆RN4lh$?C֖Ԛ*!q^*r5J*qǩA7pNV- *S04br55V~y&w}>;`M (tq{5ca#Iϋix)( 򹒒(!cL0—u::c߅jXT Эd6b. 36hv#Fd7%lKZF*NLq=ի+, rc>"$[ؿSrxg0b{ =?|OhxO]Ŷ-جǤȺlV鍇qhtUgxlyNwd-]m1Q_=!UD> JM04[j^_[&) @L)Iיm;ri}xŝȼ- ;E 9xQ0=g$n/_ ה~,Yv&pk ## , _(& yu,ubd‘XhiP-!B#hMħ{E<^l[56o ڢ/8.rQ/|Z5$O|V *j[(7enR;_aruP@@:nH+̓wbM4tjq$]Cg wMȽrnt!0Wt=QM|H?uҝ(r"@?6 Ka -(_P &jk}›1NYIPX7MyqeNr:+hGΦ}z t.4~dXVVbAP+ W H%T)&ʉ t"R`f99sY$00K|.$Ğlk{6Z^~Cq_ۊ'Z̠+t7Ms`U.C ;`}Xw3v&N+{a^;n[G3׵vy]rLpw||䡎aۙð0tb]çY[Xի#VѪiH~ͷhN2;VsW?/\Cg`Y毇t+b%*|bLJPNV }Kk'+}%fGwI1-lGuy(*ƛ1mSk#Sl8Nrd v}o[U9qfk!uX{0څL3)dƶPܴ- lIh--%QhVږn|:2FDV4~OvJR$-Xjʣ^E^rP0p7TɦN a~:RVFH ZkI*`'&*vjR]"),#n(&TU)4T 8'(Gn0oz{qZ%$ќ!b-ٿzMa`@K{G~{؃ [֊Z/BK!ivNhPrz_,>9iipg02$)Κ8a#2eImޡNQE p2,5,^DReU…)ac +QMσqvIB=ծT5_G8Ԧm>~'̍dO(hkr/FWqPBS|[Ȯ[|Whζu$ë 9oB;إ {ܫIEV,ގOQ_ t4F(boC] WAZ6U w*E dn=N^wv6Ԙ\~ sM}VP›9)T-lUdHֱQ[yQqۙ"0R]B^ ]BTTJDBd6De`h?ھc68jYDaĞs [1f4bB́ cɠX͛afͦbFI=vYr,ZCiɤ6f6.yvk6zykwBۆ_.|Ά2AIm,:er9(a|}ԛ#N\lMxY1z4`%?Ny M7AdKaSLq}34pu6G*4O$aoJ9e*H giU|Ja'ic76ڄ 90󼠙 OuShXl{%*zu#A0Dr[$:aZ.! (rgյ3.~ pD\c[G]\^ fLQ/t~r-C/E}g4S'O EjRT h1 %?#J1b1h34;HQ(uj^U<(ޫ) !8,Չfne$l*W8E"ƅtm>_z=:/ŏ#,o ^I I1A9hgBR^O3[Wxvr"aDxDnߗ') dvf^oڮvz0yi >zJ] G.u[;59@{fղ7lڇ7 ݜȘ^BnlGZ[nGSN a>msfDrcw@7C*bG>; 1 ͔1k4# ;?պd?s$/!5j۹ND`O,Ń6s;H-΍#*w#`a (0܋l6ۙ4tMORE&8ub4bNS;;wF.A)!Gb$58E Jaq />3mWatrK +wul[a}Q5 {[nz#P杗PWa:xwEίÖ܏d/U{zVҩ[~uw;3-GrҊQrQ/sulF ϕxȦ?͎ LNW԰Zgu'R^ :p(Po}wp9ޘ9!hoޚ pK흦hWWږ n:LƶjLgMZro9p}r\[K-"5yF8,[a Ĝ<Ѱ-p, wt/@7ίc֯d|{๜)bHߣp`9NmCs51O毖M=<<|[[=x~+NHVPVN/7qK;%\(dyH?zՏmٰ3ژ65_ hK^@7H{6NXG=nWYƛ/0qׁG;:SC>3dN:7]uYlHq<.-#Jwgl~(?Oxrϐ\enV}9Ux6Gՠ ^k[Ijb8><E#M0%D'Js/&WSv9 c6E2rH;SǚJzFz6LL]\b)J[:=Ŕ5KZȂ0( zD8iBA$qqxüNUYܸd"p(*t{.^/ GXTbml:-_iA 5H-ڒ? ]4$i?`Y䨜p, ]{wp`yV7CfSj,<7QQ{ܣi Sf[e qD.!7,ӗϝ(!<oSʚ9Sމ7$ "4gΣňZow^E\s_ٴK!IouY^⧚W#Mk)[6WWs|:ovRIWnaI.O!/K_iY,fɻl=tHU1 0#~PP<-01=2xJljz]5|ѻ%yk/R0:97V|vC{ ٌEj5K7yBܶƫcgN\9ށwKB`"s:%Ə8" C7s_]W6e=j(~+)ͣ1$g 9p)"*z/م2J92\;ea1@oSn7PYo>U.}>aʸLB 7nՇ}Tj>{uoAGADHDCcW p9,!_})DŽ0 U.[X{]d= #[nS LZN_O-o oαS[᫝W^䅲,3ڨEиATݟcD,DMRQ!nV ۯ/j>.U ՙؚA/.{t3(:I|J4.y̔S|bg&+-U ~ry^u eJCzV|99)QkyN/!q++%:ҽ~ AvJX-Q1/WՈ_;nG_n*R㲴;-&tH'<'핑ίyl2S-M;'fd#bg[F{6 LIOߓ$p/| \bd{ NKCc\G 4d'qA6猎C UثtcbJ۳~6IXoy }x}5݁ddŕ] QLEhpL_NY>me ph0SUrT Z)nqhn=NC͐̓ܓEPdf~H99ĝ 娢K <*j^5ӣLr(lGg "BVYf/V{z)*w"V<\llNxiCMtM{tɓ@rK^^ɾljtA|=Uܤ)0z׏G .Ƽ6-u>ɥn.?E[{` )|cv)!z?[4-pSi2ߛF!ɩn^w'fXVagˁ [.,eIN6O(U * >ɟV xs5%J >؛af?-Q8UCCjy*Q)Lˌ):un~/}p׏`-;Ҳ:%ݧG ި.T¸,xK6^b٠0O>/mKN --=!Yߠ 2or>OţړRJPԊVb\bʱ'7h'L<ˋҗELzɇzGʁ)!\YqH- vI6-'9Ru%L**8I\SBw476z<#7G5@#S#uf9;x:{MK`ƯdzgqK&P#83nOu._ȅ3e{f%8TC{{eQS?-,=oet@r?+~=/}׵ ee6Ru=YhhХkiqO弮 ^b>Qʼn~ % zW[ .A'C"f0Vg*Srf׸2O67E6Þ7v&߼L((mM9ic[ɭ+ܰ!Q CZ_,~*Mh4iҞl oLNP] L}κXv~낀"0Ȓ9'K=\N$.m'M__;ҼYw$7aq-,(e>}o-SN"=mGjbG - OB܊w8C;OUI4hc^嚝ZF!q1K\~jR cfT$;F M}sd֯(*RNf˚'c XUOwG^ E`K* *w3 ef!{ S2 UΉ.Lr&uߝ7B%ezY6FdZu`v?Jv~%j܊5V-P.8)STGC~ = 6v:IU( J>:  ̽ TZcbĻ`?YjF]lLǸl&'bYRHUZ:}䍌DPlPj)]o#bu9eRZ0)EPE#i$Wi,SDɅ%% UfT̻q*x,G;H@fۤ(T*JSĺGW: K ޸]ǷVʫ(e*JQO'٤I؃{~UX%dRF6RY#i^R+A ݙ2gNlϝ Y )k 4Tt2|BF>F+]au;yXB'QQKG׬Iکj8TD۪)7+UeXAvxKIK,"CqD10)]rKψXډ(2m)&܊Hq骨mȞKT~V-5bH(嫮"8o:vJ"!'*A܂y b}xC&[B~ GCZHMG3H>"BGtKZT?ҥ1uZ\5u_ bEqa#a|eaL=Z̳6w N%_fr[n=dzRgp:@ŽI9=x!vxn /Cᏹ9pIvtNթM`Ԯ@L WxGvlqӫu/h!z>! v9 C2MvD1g >_rMZfl!C&i8@_7uCfv Z0@̘o7ب7\Ś rw=YM-E!(龯*NřGpXbłłUp/'*GfOIp*!qן@jԌdugH|>7vR`ChG@. !Eᔖ&OGW4~5翨x 5@1}kcK.2\,,SvHNbg,kQPflup醫 ɣFQGS{C+QDaՎy%Vֳܨ]'`ޚͮ Lv_yP/8 ?hO$E#ɆtBe+ҏ%ӯtJkO;MyjWxfॢ)"ulP7OQC M0n7l8vZo[Y>'w5JJ$k6-?_͛Fo}NT~)mH2L.MFm 歂mb$BY,I"Y_-`grssMɲy-Gcxs {UZFc~OJkb0wIM)Dw1V~HUWML51Dv'n}r$?y+̉ :aFþQ{=&hz{3X8T[ (8+3Oik6aՋ}F,&x3Bdm1{UhQ5 }\Uwf'9*NAȧ }F'^H+8 uN5Ny˴g#ބᖂ+]emu/g*Ի4r3v N>ko"{(h1eAr_f7k1def"zvFޚf0TuJt)Wxy%6jOK~x$UG{EΥMqk)}mn[ Q!LA^{ė"态4U<&{2  [ʈB6.ȍjєgݽtkZ4 y>=B!jx~+M*ϛ@ |#e =0a~ @ J9ˁԗՊaCR]\![| @:Q,"BxfU*(}﷒vn]/ų3|[YA5$SS$NEQX%+k:0N ,ug-;H;Ns4OHS(LEl+unSl ,}~-=@[ym<"pG+Ծ"6q͈tq눁B`fY<qZ `DsxM7~u1VXfK^*Lw9;nG5]cSo FSH'֪6fN &Ju>x<զ`pDSSE:-4lWIƆvsbksc;Hww|u":i8EMl"t6$sT~3۶D+i}#t8#FϕvgW_/>)aC$`!{SŽ0`0jbfeZ B2hbO}բHb($`dDΫG ^a j/> e 0 8{訂Oa>^k'Hg-t^s3B쒘:ڐL٩`_Yp笷\< 8i^NُRB!BoA k}Fu6F ^|?37x}oYd,pJ;:[E__+}8v!A H_+ @x?ȋb(1ػzj-i5`uœ$Zl#I@U񿮁-\K66ɿ٘AMM}i^_f1{G^e()pO:Y.XVXW(I*U,#gńYgr({!Y,F#89{s\V 62[K፿M-#k?{gU8lDLED^.*/Xbc,^Z{|z Hmk[akx/WGrq D Rl0Aه?C]Ag MJ`=y]tiXXxb|RQ;uCMiGh?"rft(P%MJrJX8c򓵵K`LTB`LP'> h5wP J]iDnƹ}#n hx|-î_^ůy?ôE% nȓNITS }PQu}]S29a0Rz26)dbin5\ $I>8r ^1hUbHoTMOJ|]TTGtT9ߝf˻=OP*t9mL偖gVXЪ}AQD6'/ީۧ[ T/E3NÃt Ƚ1';QPUoμŜ0W~1WwxW" [ʾp-زR$/1`B12"1PB"R *UDP c1y"100`c2eaQRT,ҊiO/EUb:ڽCF0qI"ZT4a+—1Da}Mhzߋc̥ ۿdYgLe StCV Xv1G8 n-ny~%!l({JM}Oˀ>"Y\{'~tTvhfx;"}Qn8t9f{]gbh9qZϫf<74RMX%M֪q];5dѹ8=p! NDԩ3*0<ЀdIK,- ^EaG6 xsHr EJȍ@-[Õy<ˋMh h3HMqibU2bek!͉h2 F\ѣa9k#ma L}(-/h(]PHtāHq|rZ`I阸lSBcM9ܟNxE=?<_G[!gx4(wN8'(o{7]>&3o'v6S ^4>1YV~]IcCB^Ac;ɿ;;Wt> 7SP8.]vFR,H_R,n}Px`n)U"+aPha >OGp2 V "vlgPo.L3:OuSb?cd, nUNM0DXY_XsQr玔7}7D>JzZpBX2%VLC"DVge\z. -=]rP n_!9i'?:j9EVͧGW9-a^-q ꛶|ב8hs:V3t뼵O/.8y*izVgIfrƨS5`Ca/@(dvȎi{7!-5ipob>?=j^Ek?г G@+Q .Uh$՚1gDzji/HQU4ơ0$W+nEbTTjUq07s͋9ټaJ:%Ο*b%C`1MC|q"5(dK]$sr|j{:Ma?h΢lOcGC{T @V潏,)v ϋe.vcؔ*GX|T $0shoɕ>P="Ea Ǵ0u107meE?g Y?9!uN-?qޠܩݬ M,-Lgpps9˖0i GHнϣy~ء0PWqbUSBl ei|td y%N ʊMHlʼn] Av)|nQ˯w_gهCi+)S&[ͮPxVOS[w@ɦ0*]eD#nQ*н},:`8H8 4=bܷ0}ZuVD{{ah,h:+ aT7ѵK 0e.u_uZ+=nY+t{}D)։2dc dT0  dk xΊyhرͲb",YR9F{Hwt'e; }(VTҫqQC [pXޙ*v d:ɥZUWΠQ[菙pQ\PKhj̟ɷ|֠oE0\4>ѧ0d*\r?fFgSi?〰cF^u^o6cOh I6 eU0ϲ'cZm"{jH](Rmguc9]9*vi'MSo17>:пNo|;ϟu)?6]o R [2sh5+ T #Ơ kj ah /\z*Ufέ3Q%Y6[e6okκ[ a.9 s'*O61N kSͦ^Nfn}̼xǏ,*$^T#XYGdm)P4<:Fib:lMe!YY> U]`^qH(x1*Íc+hf]-)H(7ẐDP}؆GV .$Z,1 | ep%`uEoDCr0O 0# ;;Čՙ~-de݈αR`C;8u\ۘߏ/%^H!qHmwRzI6Ѓuec4p:ƒ\ WguEfU5&Y-ϳ& 'SK ~D/jNso}rtAG.CjzIahPʝ#w @ {MH9X_ 85^^ĝ[Oߌ:1FRT* c1h2R\: "cvBAѣPjV6w]87Q>RE i!-m xŠڠ# j0E3I?*Ļ02DW,<1`#`_ڷnyÍ=c2Ce4\SS#`+ӃL.)M~EY@bǛ'(;̂kBnm͐R`^uݝ&w,v"(Wt{k"fdrJ+skfX2Yg#苩Sf$RއqTnW $ ڱyyte:@kNLDBi)Ho ϔ 8moҲ d|(9|\TV\\4$Hc/ތR&O 􄪩hTyrTVR~gWMi}̴&-tJ7 1`b#?|fA&VRm a {zRҊ?ݯFM\Kw/-mq\=՞S lK<ю:aFqq͆Բ{ 9<@ɍ}pĿ-XN\:RIN:!p- բش/+/?G-p*oRx6/5̤yy{p>0 6c@zp^T5#5J8&o(<8Ů5#M[,uZyy,)74O LkE2C$=7RÈ.< r)k\tEU#TNw ݨ¿nd8FLjٖ*Es_Ty#iӂ.dn!)t|mtrk1.XK2y * e֡Y"-iuƨHYv^v"5=NpUV6);r#wX$%Onik6zd{'瓰N ӊ`JdTlAp\db 1dS+w=:h rt e11(`})I ҵi@PKs^3une*N'9mDX >r=H+T,d%N a@;"?YNr)))4]:6ZplA([2R"$r@]^lai}h# Y̫:u V}ZBnГ߭K[}wǸ3ɕOX}ՃO#hǶqSioZi9ZZ̓RDߪ CSP:"BA+ a/=A9kJbiӣߦl @;4+NWlvrp8&5n2֖Zp:JAbD=_(NAs||P#6T,tvtE.^w3V})^:ߦKocvfƇX2 12aXbcAq21@{4`ŋB-heF]ɱHz8d:i>ԜOV(K[&Ъ/\eY%;i&`,Mxɓv-Q4w #Pk!ljzMeioM%* H8`I^^QP.XW|rr?DEr)ɰ.:T  FyaC<3CuDݐI>`zc>'opɣѥz< i}5 );:=tr|W=aU3c F\o5Qe\(_zȨObWW|;|)z)!SXǁnMAj t}SaCO8ۃ?XTQHLIRV KGZHYaA|\U=k褝u>NE,(/*!^mٓgyև嬇ŨlsoTh<-{( C)Tw Uī;hf;-%t)s j{hq f߇Y.Y(giVt}J]G$8jX>]^rV 'I]uZE*1}m'J'GNJ"iIIW:w{'YK_A[)iޱ734B婶QqF=̿a8[))&Cŝ뺿 V"bũg%YؕCի`lyK4p\,YBKpFX"= 'А{M#R2"h^6X YR&R a<4NKkU ٱ˓Mk3QAge!&^K=Q[vDQC&|` |of SK] GHA|N@<y |´wM7͑@w/`Vdy-cwgC{1IDnj}>aX3iU;R2=΃ fUɤ:Tr?<Zàz nOr+JVg .O.A3|c,ucE[TeaYzG!+YXȭ_g_PM%;82 a#^ǰ,%,dˁ>XN`zuy![iJ-#eE)3IbJLsӈIQ!!!v:xD ԛhh?$*82GŠK4"(xOY{\\\adGwXY%GL|.)[Fj̎aLU/N&il?J?%o=1lRpRxw^IO{4$A<]R|S<6: ֬(Gq& 2. jd9Fj=gn̪eTۣ^~]Ru@h*,_tîҊ^g*UҹhNrh0}sf.+ cZqݧG'f񒫿Ia4D\ G!ܲ f,hZaf,O51jMgb8&lDt }kL-HQv;f~W!q7,$GyA YӸfc1m&.!.XaH`~f?kՋ)%|f""#C bk^ϐŹԪptXyP.;1KcΝh@~9"ʠR.Έm10WŬb9*od#",eahۍ>ʤ/Ý9Z}d5pqFgm芑$G7o?Ňt!kv9dNV^7cXθE"-|xKR9ш-/fsݽH1O[0hC%68?k7V:xr xۢ7e a88QF6Uc n,pFnsl|g2:'|'PVZ3պHR B.PS* UքH@er2*Rqpa;++ݜar\.,Q,6`I wÖ׵Ţ({xԁ;$Ϗw6kw0ں{4eySg'+7Rg#C'k-Q%/#Bvr SAqXC I%{^ ~1qq Fdv&'vw[ƞplm1ᇞ=aa9`|fYtƮǯLb8g>9R! tP.EP2@/MHYIUr}eHu|諶i[pYъo! ;!޷HӤɐ+%}y^-'Eba2:i&HbBy\. rDH:(Y$̈́_Hi*3hPeGLwUT ( !`0Rz>z&aBMntb_m<|9DHmHEI:2/J*ܫS|c>,UDD?Qr+f%3 E=\PK۾{X#FᣳkpQroK,HۜP] t+rkh.w$8Q[Q˃1;\zMM ĵ-:'VT%J׬{{mEqւE]eXr`ju 'PH:te8*ίq#8y1~˓GL<-ѧw06<[^WBJ@ +D68Ʃ)*dYHذ{ԣLp[׺%̩3{ oE5$d2B{&y1G* ֢ub#ž\T ddJ#{[6Ҡ?XfN$N H `;hvr6?e]~aDTD[F=-/"/\)e*\PJVz=uQ`F c+ Di J-B尢㋎B{#C5 婯bd<,ر%cdYSaĒVv0*Jgi g& 1J-=.W"yEY6E & U7/鄈oM|y?`nI=Ӈ `gA b=PtIj_+ٯ6~lDh0jNj{ gfN]bTIc}zFuufəqnMV)T\Z=]h[Ղr~E|G[˫+CwUWUbxI6筴j71pfND*lA nx _ʳebߤKE cɿeV`$nTma[* &oŠЪ]wKuCl j,Vr) 3JDq\*,éX-K zXK1 F,IddQwLqdHT(KsY 8~7vYSQV_%*=lN_|%gc3!`Ɂh1!BLd p:.dIl,8GA}N5GP߬eFRZi\DxU t*8M ^jxPāHgIX0;AX7:jkz;tPM[T n,WEJQ8hU,bߧ%TU;#Hcy;NDpP#UC*R>,B@|xC,]<^|sc~9_<$gucXo=oߗ)|\5nO{[GC3",\bB  ŋ8#2.SQ"fd}!WAJzVޡTOϟ]Txp~rʔndR\nϏ6dם+W~*,Ⴙg#6d{Q ^x&CqA ?*real:'><ޕ4LPg 4I"˨ŝ+qtTAp^&79h<pv^> S1}*QmY٩O&T5H`mSxp独[;ꅬ]MH6,!Ur,J̐*.[l wAV bnʇLz(5܀ 8O|"[#FxQ(20Ʊ*/`h2A֘k)-3>aCw+z55ST lJ;Q(]ߛdzW=% [ӳ !f:fӨ uY?e£\*wY rUi^#9BhOBDP!,#~1˓HKlI{EN\>-nJ uRr:ZaJ}*>(׿5jmؼ|U2p15yѼ8jHMo/Tb>q-vTT{MrSJ&Ӄ/ ݶ*| tc Z7*UFHdaJBQPIć8ItȭB\Zс"o;@i8(s)H{\+Vhm ѐ+1*g )wmQ#y"\$py54Sr=c cn>UUnuh h`dYHߴMٹ c%Z]aw]v.jtsBfTcVd1aLisBF[(4ꣅ|SeMHڸ/±W6SnY]3 cx7@:ԏ״I [ڼI%I<⇗Ela ϲ6Ocԧˁc=Aps?s~?\x EV^SʄaEv ݌?-:(n8@iԺHWl%=o;{M(?FUhj݊LW%&Z*ԉ,`r D⁄Y4,G#/Xhr?1=Q ͸2WO<3l{N#jw g߆ _[Co#/J`TU!1x@5鉶󻀻H8_ey~s*TPu mڵM*Nb9=;Dqkܦ2]d-F~<HUzkE ;:'"%bdžg+1gcyB#$}s>~`aƶʗJP0 rs,-2*EbJbn!Ěk^ +((:#D$;~/M!-2Hu(CHWG)Dܷ%5?(|zdž G|{zaaȞ 9]Z;k{}YYЗ3jr;*z۶(A 6=(c;௭, . V㴹3EJN]ǭ/\ J{O=Xd=䞱Lp͘c-gD㲇 xS ?'?}RSEڻ,d:(']a*eE%ɵ$DYjJE1Hv$yAU} |Z;( |Yy:TѷWv|oKv/sh㎰EJH@C(RBņ90b0 ,̋&C0SM9l]=io1Hϗ;yP5uuy7'_륛s ٍ*ν:&ϞM]lC86JL$[)yK4ȣ4XBa9k}91޶3j9nb1VzP"NFkgepVAoAW#/'fPg#=3醦Ltp_rwY,{^u CmVtʄBQZOvHS{F|_TiU?yj :)Bb0 U2e`/c7ͨyWvWY Y^J[<V!-R)BToլY+ʓ$I $a8;7Qoݦ4_$@0i//(3aG|S/bi6*nj5clۦ[FtZ.mmۢË0Ty1@0d"BѶt);=hgϪes<֬/zУ?1f9˛XG,&@T5T Ƽ^5uonZS^].dG{tӧN:tӧRB \v1HOyH6hltua5hk'61W虫JohYeN/|*j鸈qK űQ7:M"KA;&tšCd{_Go_DJV9lو=NIOtd:%(]dO GK0h ϺJ򫪯S17<8@̋6#3"@$o e@`zjM ؤ[qPQg/)vRKIbxǕ_vjy|]̪C3?&yBindf%- hΆ ܵQͰ X'SC]:6$$Z;j–/ ՛#YzC0!.l2+2uj}pr F87QͧVvop9I7ѳGoG2:!.ln@g5]*i)^7hn[E}1ҼC9/ZH{EW*w\f| =/qvo|Kn\&:!,TqzEҡp2=~U"QM4Y^e^62[DTǿ,=`XTu}_S%Q +zlB±ɗ(~Ϩp1Ayn^q3sT@aFaDnυtSۆPx[L;[^.ݽ7̣k"1w]@2fJ֣f>ٳf͛1j1i$Ҵim# $RM 9'Ta,_Xt/H/nJܭœH!^D!XX܇#?# rzٟyaBpBW]Y1.a7@ޓUWEQ_ԧsYjݏG'B$+`õ[w#BLAȏd<K; ĵDfݡAl"2x X9Ĕ#G$8-Şpy~sϬk[A$c W }#՝H-uۃm!(K-.qq|a1T] ]x:MjCliSoygFtj~r|<Ș,*H*)d $rk aWpОPu 6K[=Q5HzC1ūvxI'?: Gv߼<Gx e ̐Pgv04!zF"A1~ל nC㻲e$f %yz4D_waPmܭ0)款;훪2E_~9&KT&YE_0{O*cӶSj-t1P`8*.r9C]D F:S1$9+Fou)9Xt]ϧS2UQA MiF}ŌTA];SmMԱJ9beVϝ㛩{{G9=֬coпkGvQ=;5#odƯ1HGNG:I\D%bRWX_^WR8 BPSߦ?Tx9Ms'3Ŭðe6 1[XE#E wԩR0"VjɳV/׺ QaԞLcOEaOlμmjȪS(ӡ?wji:&B԰9{lC8P#0S}9$n$9L9,}ieh(D[6pb]Luts;a&*J0sK*3!VGW4n(M3B}/C(&ٳэ.&|.޸uls2z;0v\0{c/r[sy.H@vߢ 2hPЙCQg_,4رvw9kpwg?5, OJ/}pZ,6WD&6xî4oa{wؾӁ|إ=lE`1c7q8c6lٽ'ƣZ n6"ۍKȲ̄hўFFlPT|p(9EY9.]hXT{AT~H ^z!O$4z7q9qH?ʭ-rBgbIz=`ioW4T/I瞨ڌJFZNWR>.NP<'#j̎w\0rC<"ȀG}-ZK^E5~REd>'Ay7TNA# yyB0X~dh3J7#LmsċAڄD] Ux‚SrKe,#>{6Kj:__#0{I|SLi1UH:{Gt< /֓ؔr_Tg&Fbc־g7p1v=6R ~b²]gGKG\E-!#d{}l1EˆK`di@Eӎx۶#Q(Eʻ؂tM!UۋIPWpLh0GRFPLSqe++Ov`~K3#T'@ ?$k6@M@A)ͽ2)#Mhu~8(ѿ:ҋ\:', u;_ J t(Z@*$¹Q >4َ%[ ,=I*{6e? !ɻ$]-ɢs]!L)giX5=8,/}]췣`TUWZVSKEŀ*TLI.\opƎg$؎te;лucsS<V .6^(]qn<3l] {~5g*]d$I{ѳ x|;; Sl#WViTbg14)[[ĥOӥ)vwTDz!GKezYb،Wfo'5(NI,avp"w"q]MIG5pKT{L~МjΪ:؊ka^_' uML "4%R{MZ~Pn ^5+'lj8 \jhRX, %%VR f%'%E̡) ~8z, 5GhE3y64(FCmLz:(K;5 pwOG8Fqpۗ!<ǥ8qêe }Yt£ŦܟՈґv`T[(߯\3%$ ?5ߥ8'W|"|wTl] 3wϡ=8@rC{Oy]Vد@H,[|#?mՕ0 DW{ٜd=o-^ U_!Qgپ,%]iQ-uU8Wy٫#QYѓF08V9آu#NeV-[DkQ!-`ԮbŌEk@dɓPh4^Z i L}'ٓHz@\ ȧn {֟*Wu-lL #꺨Ӣ܍H*ýD/Ke&C|.f56nRguBUz4bhg[jPhV-:뛠k^QN1O~.#n-: *h 0D>"(䏺olEͳä5?}-J4*x虰;4`E@[ _2jQ[W?"j֐18Wo }9<2Q-Y@\bӞ6HK* qɽ 5ϔ<;x1ޏSd&/Ѩy`26~yv=ɱ wuTKIqNTu خT\P񍀪jaE}>ٳ͙6o@RR2/d`:~ըcäS96Hn+OAc>T* yi+S'+?ԵƀZ d.2e7? GB i~HaՋj``vf U ;u  PvKW5_s[HKT2W$wC|O&xH+auO[/<%9oAN QQ>TT55UTUV VUVb3#WnIuLyejpL謱{Or-$Ll"⧉L@)mgm+V/M]2Bo8Fj_T;5k]ͅ,W͘Xl+aF3CSP$ɥɚrs T`c탍q _oxSLq#{a9Ȫ Mw[ў$-.ϘSY?\.7OVi[`/D|{c`WWUBLWBC޸Xv <~3֟ptP) P]1JH WEmw^n$%7Fr )5OYJ?w>ceI!( )jJ)SXB]i]ya`LIܢd:Ueǜ"qflqD}DŇsp4OFlÎ&L)&0 脸҇:IT[^]=\cbQ"a/4f|%eʣwP)AE4{`Ӟni~{ѿ[60l0sn `#1l@&4"XFdû@o5ōD{{jJdf$R$&8UߒVC߼(E#M5k}{\z2íhc7{;AQӥܩEM ȑDCg1.}(^i(@}k>~QS ϴ i8MzTX*F7,Ɂzܫ*Ha}S+]v83Yx ݮI/нģ)Q O.ljcXzÂu ȩ9 S_6h T+l0T5S RrHc 0N<'rTfn@dE>}#,.m* d݃X6|C\ak:(1ŹPe7Kߣ|s.vwtLG >R#4%'Mmh|,*J+Z[-Z-Zz2bjNQ'XJ͐6lrbCͺ1"L>4 9R8eQS7˟LIsue:gRBټ&>@YK!]܆oݸp]k@w.0&.M:P;JE=N"va'䐉,:܎G{ZDaL(+>,8/%+P]ppwi[ਃjJ_-Z>vM%5`\*4DE nY͟ٱ_:Ƽ𱚆q[Ϗ %P`\NLLK{zR&g۪QgG Ke<181IS&Tsg^݅~=E]qACV bʡ}8Ы6cc:Vx}wq^{(͜'9.c0Q%}߫]k˗Ev l!^\|X[!±2dLP+QX  *CVt8VIR*aJNz4㻻j:dةF%deK]|VDW/3yG݇ĈiE-qi~e\y2*J_T"۔BN6`p竃l#=FX>Ȳ)~&*Ƚ~bѻS(8GB%],MF8p.+t>p[3Bx&m} vS(r #¨Qg kIЗ -"$÷_*,1K NNaR]VͶ;3tg6% Ĭ\D\=AB|9B ^?[)Ep *AC_K;E69X&HkxZBR.Z,X¼y 0PH_.XhY,Ҽbyd *(H!/k"ʴTxj&\S|tIzV%|[fDzh53+`)3"XYb%:&p:=E. [˥Dd,.…dr4-)o7(iیj(\dttIҡj俞iPmJŚ_Y ke1&O*~ pLmo4{~:N hW m/&o:Rֱ3ySjO(OkG4G a4ym g#ؒ~ka%jZ[ '!Gxs㣀t)D{~_5zaܫ7_,Yݘ3u lpj- XI4CɁ Y ۍiV6Gt4YzPOa)CDO8_5ZPzn87 /i0ZcF <1%"9q:&=Υhz OlfbB|_qljVtV' j^  DP ifGʽƷ0ż#rs|59s,cVX 0#1s),Z m4n6۷3.45} `QC8<M]ZPUnx}\4Gxr0jaκ mJj?LD;0y=~7bpF L~ N+Ɯ]zTǤ`oy`9Gm?}\c8]d(}ݧdVŀ@ʠ&jpܹ93LVco5L_.zTbOmqymܾ熅3N`E-]ذTT#*i|!` uǒ†K`kj%f qOt63@ ,,?zmG6 P.k~ sޫ|PDIVӐU5.QNUWeyZl dޒ|u(ܼCAJf܇&P-*@AP+ofIN/w(;'$g_ۮoOýȱ~,989m"dE2:nk]*@{xVa (WyQrH%cqQzJO ͂Mxw8ZM.Oq{99ewa . T,7F1Uř8d$nѦD'NuO$ZV+VʱV)VaV2شEo~/Vj 6 _A,b튻-cEc+2cGl!I.^QS21Z9&D[aprF "M Eɠ<4j5QDh14X0;,[l0b!MQ aC$|VYOW¾]hQ+ƅ?~FӔ#]Bl@bɧJRx1IS.b6Z%ͫoL?ݙgn^T_xm:wkTS?2m ~$b禵BQ=׉}Na=*\`g0 G9M@ 76JKE ՟N~`.zrܝt:s)~ۚ L}r㐢KM;crmѥEri-p\+{iZ\ݹ2Xr\%˙ss_|$tH$"y՘ٓ 軌RI-SzdQJ\_>F2NMG\cֲp-GLDʸ?AGǙ#Hz]H0@F`o|Zt$ H?\rP3t`[ 8`xGk -DU!㮟0d^O't@{7 Alo;{;șlNn'Ʃ^m*kʠ#r Z +m6}iԿ(4{󷿟 Y7Eݗfbs3iʜ07|$qћ{HH*2bP LzZ* &Y,PRZҥi e. _Z#c< sg!<}(i($ $(zѧ=3 8=hC/o,PAR5z*.acA}Lr <]H "v*L2Z[_kM~NScug{[ *~-B. J ӟ8Kj5xsFy?+~ A џS}sÀ5@XbE{nc>oCWGݕËMm4!ʴ6ܕ+yj꼠ǞU ~ҹ3'jFz44cNY0O$_0Wk` 4 ~?0ΫGXӘq) RR;%WW\a+ԢzbN(T"L3gN̄ sK]%4V=/ KRBLǚ QN @$ qZTF.vGpqu'!O/fe/϶M눘;?\?٧!UfN"BUǂ/߂U,Q!i >#1iIjM;{ka}$Ҡ0b\28O乍~NwnJL*=~MGX{ -UA"J ,yjbf~㉞_3Ě%C@pws?"7oͻ_18ճf6$a=d_7R:nSGY0c]^PrJA*,,," JNR) +#%b{ht#R~u)v2VpZfd2x2߹ˍh1 NV A43G*S4a.:sėP` Hu_f-7DV;ŝxLފhW1(h/ۣsɛS&jSgU (U/:\܄ey?m7Q91B7]^2>2 uAC"A_fFJ$t)|EI;pA"E1cVÏr|[Mn63w.f_6"Tzgkؕ󺄻Pɠ"G[Qy%k9E |"@xC0l&Yٙn5v2e!cbRbKAgggh*yu NF:,v87 W8aVQyv pq;p4OiS%wKKK:ֿ>ffϊQs`nYIsіK +6r=AR0)Jd-{ 8pdv_)g,ωCCA| %Ô=▗Zȭwho]_|Kb?5$E|4q[{ˤ>0ɟ9u䗻&>03E ;EE%kI4=U 4cF/U*1Cas''U{?hE+MJV)#, 8*((ӊ 4>" @iүÈ~tg*Þ_w?q1S-F=֧T֝EFden(0K>sp$x_Y0CO ,N4ɛ!z Ԓ ||`BcXld!d)gM~Ccc[P2_\}Qx&2vY ? A?1x!RT:upio>xIЂ etBջ}FJ_bT Bf` :Nkn ;^|# M9jsGr]a/Gߟw%|; ZiGN'N:wAV]]jaJCƚv$zF-ҕޭQ݀Z#SQ'Ӻ@U#Ϳ.CJ>BB<ӖX^&LdJRZkظ\xqS6!4)H+0A/YLW^)%n.3;*7ru.2tKeX"y^3rdKۘ~Q(EO&E}hU6QiPVIAlP?L(t@ n,=pTEJ 2[뭾U=sXѝ^gs6s=0nr 緶C\qLhVUv6M;^=[. ZwswMn`Og  @[Fv bݍYtS97L[ ZZݠ=9oooS|ުl9ѻpWovg)ٗ/omm{7f;MfZ9ݛX+v[-ӽ8@ z o{}l`}} p }\ b`}>>fxٹmy{moqӲ4; P }.s;6g'rm{\@4@ P{˺G3|69=_ֹװz:րfcf4*0ѡ@RmUJͲ4*K@lZld$(o;ԛrnT{yts9N7G.s9r[76ιwWzvyǷ<[v9g3\o4/`r {{tCCǠ=v @w) ) }7a֋ҁv=mnmu6uiwmldw3eϹ1h{49V. 8p+çMƅ򗨉玼alY哭>_h~2Ap6}WT-lah:2e]ׇx^j^>k^b:Fϵ`o|^@s|0B[ w>!qIXʕQi"ޱW]g〫:~rhXk`5p̓tVr2=ۨZfd7l 0 '|^^v,Xf ddn28D_FzDD qN] F! t7se> c~6ǞOrӷ-4m4]?VfzS0ɕNx|w0~F-kUq*2֩)!7Cy/Nz%G,,LSSCq8 dmng/iÙxkn<(1`p# 1o;1usvYvl}Ƞ/B)v.ˉԑ^sv4 bUjUmt36JC}BO})xyc2B3в$r'Oy{Wv˂s<ѦX{R 9_(5-ϋƖDzf ΕrF7 vN̲[6ҧcMy*k;!QE5bsfu(_E{5}ҩ>酯&N$2]g|ζ> At[;K;{Au= ϵƁ>p5 |$#Z d`CaάXy9Qmn>1\C0;!/J1P_{{*R$󺂍@w|`i1ؤTڧ'xJQ az7uސPcsl鰋2#q}TwV!b.Q3bD/|4nʜy; OI)7ĕ!kvc)'^HiYy:p36h?0ʦ|qV *ע](8꾾 :B,O҇JZW%DfQF=# bό[d>+=hgVAܫg%Q H0~:Eȥnj\yKm9rucTu;mJGEr(IO_ڳYR`:%q7 ElZWtQ>6>8ZqIqPN,W{X=9l.cf),~0F7e$Rpwȁur+|-:>#y.-"ETWlCМ|"0& ~PÜ z"20'Kd seUOp Q KBLw127bт?9 $1%^d z(ϳ_"13h{Gʀ#}{*Kf%ywq |;9ʜ}*qtoxihx-l{|.^.E{Z73!bm&k34h-OjmD#&1';ylu dw|cupDj/wྎS/|agb{ %E'QAY2 59ٿ_;*`_{du2?q{`4o]ps:jW~ǻ~69J@߇/Jǫ.K@{0wF? ԿEER_ ۊ=pPA\uű|C_΄\ ۻ=M/_ xlA3E[3SrV_e=oۖ:O2x)vxBҴnz8{nUE×:]L?(sA$Gؒ _}(PplX .7+\mn+⍠$}~b!Gb4r‹.5xdx"-KVpbOڼD~?(I33cBWݜ4zGZ]XS箎~r>r#g{ܟJAۘqh[O6>X-6-#gp{ʸh_|kڽԷeT];QT 'oړa97%/?[ǏSǓ*zϰLo.G+υ +_u,?Y\ Yaf~?|G ȼ&z 2_y>ߡ/ ntЭ-*Ul4B/b;!c%I2tgG`ow Cם6isۨ۳"J< ^|YԵ?Z-z>1#rn<^[vc*yB=\7|-Ή& zAӋ^t$g+u?<~A7_1筬/Uiwy+OÕ'#RDܧp$;` _k֜4(Ь/S77[3ܥ G::XA^={f[9ذt| m-\/={:?gKl7?A@s&nKg[ }0Ψ*ϋWkJp?n2`: FeN*Tz S!vv䜲vޭ2Ab,n?5j7twm%ɶ/#~N*U;iΑʋHm5N&i+ߜr26/bUq^pzga1߿\yo3LK$\-S;^9Շ=7r(=8|#m&H/Brx<-0=/`eH vUAx"[i=%bKbJ~3^Xj}b߽ ^h+A H1َ:J 6 _jȓ_dKR2/e Yu9ְJ ^sKnů3 B9 joUfo;ik(wNB}ބıFc8(]px9&.\\mǷ7!2n}3v=_+W8eJ ǎmmrt!eM@c"]ii$Q"t3#0X݊f,~ A\$?K8G;w5T ӥ卐z]&ybκ}MTocX#c;KQ㣝[m6ï\? 躞ejLYlfcUʁQ'b]Rj(؋Ocke uY+tw}t>Poܵah,J#\wӎWOے'w8 vB +>dPV 8F&  T] f&Z{pR7;c=[N">`BsKI9*ߪ~6.תb!m\WryH& kx0_+oV=;$°:8 YJ~?_۟>ni]@3ϞT88nElohQ+ϣ*_Eh;Wwbt$΋UZEU5jM§uÈF_u <8r}T5DX?qsݟ4F|GqدiyF[Kmb̺؟1``(I(>~!o3 _$aܵ?nz7@mJw3hw0kd$l(p iLSZ`_Lʿfj;$  ;LN$cs•_ <_N-׽1m}jG|Y].p]Ε3[|:Atp6a7Ŭ=^u{~q1 iA7$;9ŭ9?Tj4h +(~;lJE7?\-uy\!d`g03t&G`e桉vZ ^3+Cj$|/$vJ^d ~֥Ư-_90:`#r U?hD,^*Z#`;cೲ~r7>މh/~̪uB c&I0uc}]fS*}?zȼDa8.MI%r0o%|菷:hMBpiuBHρ]jƊѫIX9T_NDY !K0c$#w"/m F.-gJȇW;h܂}aZehYkxS?eM6cҤHoZ5fYQۻJz"AQV7E=I/1_D5Q@HGڇRK8:"uA"}J߮%]+9?G:!eFSuŶ?-#B2=C]P'C8ibV^Tz0rP Mؼ?7s^V\CI< j?im\/Ubw'S}{$n>(hqG`%&~=} s+_+Pu\!E 7\8~Ӥfb"?_XfIh da-:O\ !]&zb͛1GѓxWJp"8i{-EBy^,,#LHa&_4>Al毱>tAN*{+/Vc,C$׃mӝp.4JJ) >]WbCs2!v%W=M /W#xg TJ}GM}+;猜RN?RjA <!<簷>J  0jWV>yI \_mI_YXX-݅VQe ި)Э.4eʁqMY~;1Ck|;(9F,8A1cr=}Z @_ >dҸ~;GRWתG~8g %%C̛_ o?떟]1io`쪥tW<[ xĎ͙ }c}|>` uMЗKkmPlg1 qD ۸:$L*ƿ]fm#1⢛S^u>tq'Њ 1s5&A:*'d*E4G#Fwd3( ylpo4d[q9}>je\ qN yY0Tx0#rYEexŤ퇣 #O*j/ھW땽tw.Hw8eܙ[ckٶRg/~ߧ/{깭J,DԀ3)7sy4:)l\P(Ш-4/BHigD{} G ;+QMbW٫}.W+&Re<#Nlؕd }NN@~\A\Z:ACJ4ĔASG73ϳ~tj^Xݶ_+ f]i!!s8')z5-=^*Ns^,dj~$zS7{;lM鿇[]Iaj. ч N0n~wXӗ+y>bCI{ w&2-f >kgSSЩXIŴȑ'0j"+Z7Bύ¤`xy+w>ܙ?p㰭UTfTrT?#fqjtG+Yvzzx:#玨;0!/i6ɘ)F<1}x/UnKEٟBebՒ3C[ۗȂ? hM~ WH~1Aťi[~ us=׵{2dQ1Cjvo0r[~;K|Ju<9[ Yv>.[رF?o}Ư{s v-.=R=wT24F쒓nʝ3c1b ^ޣJ24X+Z=r0LݽWOc#5f'J5Xc hr_pC]n%zl,?r"?%bd3h;NwJ|LWimga1ԑ?4 dӤKψq}{c++?F:cũlh6{Gr%^7ʷAAh=\Aht*R ΉSbtrF,7k:uD>ߠ< Aaӗb\0 Vkjqw,:]1 e}~cw>LxѡvlZ{޶T*\6)&-EuqvUV/177\ s3V}Biܤ..̰`ؿHCĎ#,)Z|޳JM Xԇ*Ki-Cw-D>7C56zKk:?T6ɽqtfcFLu;1w<ȤlkYY:=N7-u$[rKު_Xn۹邵Bucksep N5q{l9Sͷ*M.jgnu8&րg%%ɲdg>rs}EQ ATCoPDQr;6PFʀ0PDT>z?'NrgН>QŝFfÿA-7 m/ogellf/OSR2_׭?\Ϝrp£, DmgEQ8ȣ˙ ͎Ս:mtsB ;ŸϠaLwU_A"$rGbٖ+{uFqVed*OIZø-3ÇߞqEћo^*!?u?7~>d3LqjbKW~~~Mu ?OipCUg[d{Ɇm#[x8Cf Q[$ />|ͼXUc\`PKӍQ_<(>^r9z|ԧqVSfd3(3DSU`}!\Mg?dx<k5+~_>QyAa /W:ӭЃ,м`}d0t`bWnk}'|KxҸ ṙkcY[VкezفkmXӪ#e Qq{L?}#ca~W~䇝#h3o glEW_9 3J>kyyxf˂@9@X}TMӿd#UR6;9m%L㋺ࢬ넾mrղf~E6_%ԎTr3FyZy}c1`y'Wד *ndѾw 9؍5ΞufaBbebO~u_ ^>|Υ`Dg`vTcVx.7Ƣzyqkݏg%l6h2ٽs{qyKY j~yr3y]oUg(/ݔPV5>r/)q3d p$ wv^V<2+9s{K|h]Ab+]Tk L`9F-gH7),^/Μ4utq_ϊKpkձ(8Hj 'ْnN_k yd TaVӣYĬ7UlU̅Qf[zNtMtVuv7n ) c=Y&bgGDžhhjF.M%k𭚈yP;8O8{}!o?섧(Sn~&#^"i(2Ҥa)3^댨>NEi6Qé3R w?xsTTOe0?PAP=UH"*}?uжrYt)EK -yOV!.PDs  C@qRwc{kQ|MY-DC;Lx\L̝nˍgfdo00mٙ_ќ\?h[;6gRN|||=glZB1(w!_+~kK9ߓkU֢}f=̵9ʙ jiYvms8PNt"Ւ;_>KH346 M(<;XD9gj~a8 FI 4C79BlatG/π\ x8 hQqܬrtNJ)>jл8zMd3pQ8Rev e/ q; f/Ѵ~޺ 8'I."ѫO#̶mY'ܨ|?֯iG9|Od(ios9˻mI-hvvjic Jڿ98c;KpfOeZ;JtԍxZV.`ݶ8$Dr;uW4QQ~7X/LIl+7'.Ҋ|a1us?lBFcDfZ~0Qm[C bLvQѶo-mCvEaoEqA`!>tJQBFJϑ6^xv &a{f8gpn;԰r{BUϿiy= x? 0~~7멼rrf^I_.aǟ-FuP_6ngx,P߶hZX:HxB9< ^5eIMUU <^sƝ љ]e K)/_[@9] Rj@Yt8#VPf㺣K==].ҹD9[q-6Cmf>ҜҿKqmd_6tD z=~yJ'Tb}hv2k,Q|Ir{kǑ2?>nhGo[vy Zc`ĞHu!4N7Ng87œ-iifß׍)? WHކ7b< Ӊߌ>b~z:lg6ּ5#{/_5[sp.Zi؂'q:j=__aKn<ф~~­tr_Ϊ}"9gC+_MnXgjr?l죣nb{ZؿaukhrT˼/;h9 F&`}_0g$9'3#xy3c~:MM EhQ 4TY:M=J2y"?$JKƨ{W(^MJֻӷZprz3 W.Uo i {Ҩ]mh_2ѻв&M{=g^N>kwHHk+z&@)z2>1A7YO3nqfmԝE-#"8G ܜ{:7/e݆GcvZkpyG/wھr[HED5?B|!Go~cp9!#0OZx/@Ͱݟn i΁o_3 j=${3K{'+еxF QpQ 96f g^;caEWP9Dz-Sj~KCFGUOz_sĤ4;6m((K楃ģrv{I*.lʁ s\qSD~;,ώJYababwE 焿sG3Ll3CC6x\<(OzCMlYjojʥIg-h0YB!;~]o/Z1J7Vpr''U3@3U1v r{hӽ0~1O)o楶?0Kƙ,(9Fku71T̾ESa v;hew;Ms]j䬄 s)yI[i荹wNAG[Pa`I뤈x11 V8+HIkiWm=S^\1Z)8U`H{}=T:[|͋ˤYf"'>P~[&=e@U o0X! 0 `4DXFdDdNUi/jD#"*(Ċ6acG߱pkG8{dc B& Z@j$kpHHQ"C(B@IjސU vWe),I>fJiPF`¸(!PҪ5h4i T4'Ěi>79T Ba(H H "BHH"Qf#hbE=n2$sB̉ {=?Y7eԴRKY_r"D% awL TSKta$MPR$S%,5F YӡJ|:N S$)`WZ?@S_DC[ ,a$ ! 㢊"BtP#0~iѥB=$$;[T]ؖd$$q#L=2B6X>O.ID@+B dHI$2A|6@c'PP$L DI BHHrZo1!'SK60 H0XnbDy<츊P #:<A_ź5H2DBD dQIBm!]FpԒHl ^4A~410P=qxZ?dM:U:Atiȁ¡ $&pw 2a"2ٌI"H>ʥFZČ#DG–@jFB&=EDB!!>z޳hm') #d:eo4E+~#C` kI>fXLm$R%J7@ He"2H`l1 $ !"0̰/ÂS=($~Ȗbi"jH PJ `3 RJ"?^Y"Hqf4HC`lKBEd X!$ A  @Xu B Q"*kL%(P9łhhLa>az.kt(+ :O`7k0BYj4@~0\50/B$Sle) F?Fij`L*B(~̐ HBH]5EִZ:Ӱ!u! !@kh*H kwlHZAeaŨ2O@I!BAd@RD aBE  dVDEEADBAA$PI $AY$AdAI@ AFD$$ $@ $$$@dRDBDIBE$B@VAD DEFD DYIYE dE$F@ dd$EFDEAd$$Y$I$A$EBEEIEY$EY Ed$FA@a$Y@$QAYADdE$Id@$RD AB@IF@@TY A . B](HH H(H 222#"" L`! &cگQ֞)q~2`=_ÙR_iI?B'O3g{nŞ\n-?^qET5} 'W+vp+W@Apr.a6r¿$i&&E0+."޻ Kok >oN ;;q<~|<ƿXbx~3y1<ԛq׻XrӖhTWʇ܁5/\}Y$ %` &AHJ!}鲵mŴۉ1./ ̹w.uv/1ewv^^T5QG 2GqBY7PlݶhGs`mʟC;sI}E8Û}Af|\|ޚ]XJH3:.ƋbXɈOqm- А $^%zY5r3uׇE؟\5'YTunnjW^pQ1aoU=]-~OPXϤ_h|tܽ(3ah օ=ڙVEOB8oW-7~2z+UQTȠ[ܟD>3H9?\炼8<@d<;RF%L:~8zfO=6'>QH|/\Tw6+E".L aj]%ox[%ĸ_/SbZb1a]9S WIh:J 7 9cmVӥ .w㷕$UF| D L+atvl}g҃@F.>&,2]_-.--ęR%ӥӥط6I(Ȫh#]⒂zJ}eeee51i^e-2uwsm2`BI/}M?*ʘWN.tգjx˽7gvϊ(#ſ;i? gpZLBDjO%W>oeG?=m6~B~Nc!CDȥ[aJk-I5\F֚FטiyeЄ'Y|N3(s'N [NXp+ڇV@>k qO DԌn~js+q{Lz\xνs[Key~k&;K-ZҎlSgl2 >Sd-y·a*hLs&8ޫ ;\הoUR3J`JCW󜩇mT<\IWBW~a>9 Eu3w㲏=T?a|Ek$O3me|G8\6N^`y̜<Ϻ*6L+1 ONA# b&" E}.eU=g.ә{{Ѐe#+Q޴K޵9o ~v'ixP}'_{IkD_o(//($ <ǵKҋ}a}j\BW?m䈲PDU1"j0nl"'tFtO#Vǯkv^.-)6ؾ׫uZJzU՟rNB:66׻]t^qʷsQ{=f AdZVTxhg%;xlllll{(BRg,HkWc2!-@t`џ4d **yFcB)qmU9s$IZU ΁յ0m5PN{#lMvxچbMv,׼+D7o@*V5|=QsE{uC[>*߶d)"C$* ą183{(E7+f'V3t/šMta}vg>MO/xtQ=1?/X Z~P&rVMҀw9nôaNJm:GrYm޷EEJ|ƻ55(|׉ntk?OߴvOwݡ\2nyr/p;Gv*G)y+Bȗz%>:%7%]UUuҿ)[줥UMrJ5]^rjRJ2~nf^q1 1* 3~zi^[S () P"ŏdBShVP>HÛXV-V,#d z .A闸Ax:_g,rcC?Nhx`̛Pr[ y4 $^},$|MǨIb(U1# ~M94ZsGG4:0DiƔ5dXMK~_fX=-Q]i:tYe"&w|V?@&$pGLqFKeX)b!}e>y?=7f#[&ϔux}#8!>DU a6yLs{4\W@i0T.MR5r %᧹IݚݬPmQԞYa20MߛA;I^TP+h^GOԌPȟS2B.Լ;6R ˱OJC<< tE,w.ћ|euKgLXrFL9y~Qڜr, ^kw* N,S_(}Rr|qnPsv/5 l! FТ !Af6pl{l&++bXmHFe[KqզE1'MމAUס8ۖ}WC>h^j,"DG߳W&"'rƝr Rd 6b,t?".r'=IRJ>,G~`Sj/(CqueW*igjGPxɞP?;Îڲ^ !A>4w!MiN*}$jorF~vq@|Xcep{)u fX1ܴ8h iH{tE =oׁӎ}7UQ nQ&xKHkjO{Y{Zo6T$ $[~ o7j K}(UiY> [%94J{tvB5 Bf5jSq|N?h_?>yv53f49;-wS1 0>pP,O̷|D߿oL0BI4&|~Fχn^//>)bY6uğxסhS8flڕcFBcXQB|ET(D݁g |Wz>gkO\ii_Zr VVZ;"dvg]«$_ڹATKNnOt@@.\f5>Y`ҟߕx0y ~Z $$M1xUw9dd 맳|q,D5[֘?Yc jnc^`A aZ:q,7sTJ.6C pxp~ChO/ * jYX\;3r](=;J1/t@dڍBj.<)H7Ɛ-lG8?6]QG*OXKv(_1gȋe)JErI̓LYzxk>Ӕ]v{322uUpHE8WUc[z9 k;x>;l{0P˫e⼨"P2K@,ħȅxyJp0%DSϯou`;1t pW:9)j oI)\`X~aNPxNd=YMeWy[˚ܹȍbah=eDԵciʟ/mk4k/f`?~=}oi+a>H-\z~| v۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv@ Gv<!.گ)B+䖍/M%q.ds޶w;ɇg(~~u;V=ϯP{Y{$_p-$y|C_|}~o'"ASZuc]UVlq/^ӧXK<{.+zެ#Mn+$_庭:亩٩2?W}힖%29ȾZ_g]?SE|y%;/S1b9[U={݂k*W^vEZN|׿fN~ |m{7 o[z/S,,麪D*]Mp8W\+Oj kMت:},*[~[_޺jiUkmUbXy#: j(+|W0'h?=nayx:S|Le{3ALo8;-޵d߿w5q>Ӳ=b-qursa'Z{T @L('UMhq?L `nɪW ai$o'j*eАԣSʆCKؘ$>@z]i,+ڬT!j6r1K ΞGtۓ.?r2d4R?PI釘]ͨ bؗ#*j5C< Oi? x*2a="OziK/9된Mvr%pp+ZȯJqiR%3u;܅';9rN_Y?*Gm#dR 0!ͮc˨r9yRHZ/puVOD%WugG0C/~MI1hWbsK]".>#^{Iœ)ǯX =dg?'=HHc:尛'xC%r'¿{YN(l6Q6KJX͖4* ^w0/ 6m66,rZݖd^ssv]\e*]ݹސD軋fјT/2n:Kț>,( [X{f} -hzA{>)ܔP"L0 d5qo,&vh(jOjc!Fߢb#t})p*t6]Ϟ"a((bWn?*iRCHX&Pm']T^ _о 6#V)phcTbY(r~)YBwYSj G(32XDoWFNnBa7&^Y|aR["k/1GϗI;c67+ EaM )D63B˭bGcf*BLW)Z"LPOYYYXB ']'l_4 S4f T9|sF5|E`8b+pޡ1[uZi!<_.f+vY,#s C8MGC"ز,rx3o+ $B,*[B{ j GB|r-1EE`KTкq?r2Me=] Đ| zUAhW-,\;\n<;=F y}1&afOn@s3RelJbޕ}pyX:ַ$"K]0}d+jLޕx?rF(ƞ⬼k<䫕`ap2"xn{=ǚt4];kU=Eu=@ÛOE:gk_GDHS./.f,.rgx]!y|^øSK<'E#R)*?M]ԓl`Q:`dիb6,p5$C΢eזJ0*5HHȼ~4g< n <MT b(H  ݁DYHP*fӎ[eL1>ўά:YSG8} iLV%]nUECүJvS!b!J)ItQR Q<ł9?o^>t?nP#CKTߨ,b{XWSc]n_ڛc¦4~N&|T1jo[g.(ASWs`8هAI]^7ϰR1Q -A3'Pۛ 2,!^3.=* /.n$asMIP(L=36`]p_av~,f}Ѝ_,)zͬq'5 9POɑsr+= +c,` FjYaMyu>IwY`yZDeWIp$v'wDmEk{+lHD֑X$-(rP Nd$asA*, XTu+6C%쇠˓T"@CV;_!6(>N)[|\o ٌ ?G0YNaF*fu iN=Pe<ȚX#{, H"cZ;ut_1ޯ%u{ĥGPVEj.BhEMX*R8%:YIdy:Ԑ^Řͦ[ȩT Xo Ɲ0Wh+Tfi Q`@qvB*?%W$2`dKSF\S@=UN[<`cE#?/{|hUޣr li)Cً+6iPf d5}QMX+v\_s:=Pae/|[|\f^c;DZӯhZ< PM^ցQ$xrZhdPlÔ,ki8EJNfteYEo-sU>k|R.":"aJ, ? b. %bੌM^du~]E|6.GԻ]EZu&;W 0 c}͊h!ub=(Oi5ec5#%[022C5>9ˑ-fQ`BYً$Blp!B֧ow]#;=}vbV (؈^yu`wOc PTAZUa.4?}1ȯ̹e{.IXLD2mnA6Hˬ/Op|t#|Pǃapny}0CAX{}ߖ~;#Oglw4,&K{6akK!\Xuu#}tvbq(97ޝA6eB(덻I zc,8w9t8uFF*u)]\n]CoQ9Ooq^O/XyS'eT3Zsel ```ep§&6u˷/qE%4N*l2ث 49"UDouZ]SqjٽjEAo:|#Xpa{ 00"Qٮ4N1E#*,H渶n 4]zj߅_j [%#{{)nZzAREM/Oa4t %w\T▂ށo~@&ꪬ8u"kKQɋ@} `Ъ 4F]"4AR;"vXJzISb{=Cg\NhHjgBgdneE>>`h<} RVKK+b ET#a 6SQ_s|8[g_L. /wLݐ aJ^JDS)@oyTwZ-'u8x|-G?%ho17$Lm`, ;;;BLNaHb . 2.qGs:T:Ȼ*NYx+K0'דTFfL=FHl% p܋"x\ËΟu:j8gRT,NԚ,2}l1Sأ\o@ ?}A A3^%s%I2Q>lT{:'+P\rTn]QL.,"甏zda8:h`Kml@IZw C\mxfU߮mYGFS7[]a(|V (`y !6kj/EH,МeVڿC@H{TbqFGI_v^nFրqaG[!T[ 9F)״itm<ˀ[u*`*Z6Wq@O^`ꚽ Zx&k0rw4 _8sk|%\ cz[*BcOVTA_*4c C \CmM((pgX5:%S𑘒b "4%Quun$h$Y'+m$.FIXw.B. ±("uBUJZ'yCDku ]fA(ս Q3kF?Ү*-~08nIxx h}ɧ@?qLw+fyr,ڗ6bZmP ]I(j㔃I1yRC$=caWYӎcLhXd"@>3gNb\t14ŰX/y M3I3R Yhq6y{rrP4>&Tԑ^E`y+\U#~J5*UQOfTS~Zzn#*ӳ*~ 8?QŇ<%VMtL!-?~@=]#ZeXnPE3%!is<]x]Łg]P >dGA*!XL4 [ 񍟆2lZӬ`Ѯr J˫)`G T @{d.uTIG9 L'Uezާؤϡ4L& ƛ2+!^b&egrkZz 285z8'vW}~_QB YCleNggN332_Qk!kvgDxDɗY>Ty(ajT%g2-di{8)L&R|ѷv_!(| "㱉=uba̓ ]gIA(K&`3o>DƂ}b?y\R^Ǫ#i\Pߢُ?w2mVK!P0?ms5If{J(Œƭkx'cw y W|'ѐGO7[Q:p7}:Rñކe˜! j:J<%t=a'4MNmX8h!Y]ǣ|ʱ7P}w8굦[ފD!© {]QzV>0!T"XW4 ydN\߉Lؿ>y_;Ar. l4ať-iMXqp{r'h%C=Um۱)+vRD/#2(R?not0aX`n嶺= l{:=lsKO$4A9c9;M.ʹ#1ɉ:a^m%:NJ%dU#"kѥ!~#E[CaFNN{ݎd3 3GTUIC}& Ti5y>$dQ&jMTiKmSԡ_xva069<- fF ddP.w 6ۋ:AѶuT;O3vcr[9n"0d!Ͽu>rw3NMlGYq!058)I\!gwwI혛sT99?ajZ6˜aCB !>#NG5<-39cnvf9f\h 9Yu9F*#(|1y;-8~~a|z\uy {ZCc-npfN0}*b˛-oʼ/BHx}gz6=^$+X62vh0x.!_;An,Q;=m[NP#DZ|==St|m|>e % FE%TX4QqjcϺqst#i(6k.G6KJ }ٸыu`c>J.b^ܐMZo8eo7[&8JE1J6Jۭ8 T:e`h cцKYm3a!=pl0[~>>qXeFf(hCX*IM@tCW@G[~8wQ Jݍ%ccxDر⦳stGnǀAFڦ99,^Ț6it2]B O>[Zfn4l_g5i58xpĆk_lvn,0LC D3)rvDM?E$j3yEL\9t\Bn#+cqk`{t˜et{{Gö2BMfO֙z8R^_qsjv0%[D7ի\/VrŒ;aʘ߮qRuo|[oA!M cNa , æ4 %c娇 ӭsUv`AG3lex(5'bac`r8C '1fuD9S8Vh %0~k )LFۃʹi693wY=56f ^mLPE$:Y?HR@B $ WĞq nBrY$ۄ]q[|65.3nh;[oqD wi^>6r:&J֩5h٧~S!L퉷G93vz9?wM_Ipܓob~'k:3<-C!ᆶÇ+ ʙ1YXi}֧1N6꜇}Ҍ3{5aC%w6os?9vѻl4cG%^ m܋3=PD$vy{hH/r:+ԏ^2kq#uיAv5Əf 0bʡ" d1qv顅TT~l%(3fުj̨3g뜒SXJ\7?FALLwi(/:g)UNܘ`r89&GbԞ,Cu{HqGɣ=v%ikRc"qid ۯ3ɼptgC&&WMNloy:˘Dޣ͐e:hud4p$N_isIP ҠB+FpoO } ИSzؓkUƤ w 6_g}&L5J*"zLɘC[11e{:x:Mu<:6Pjhh0ϑ1g" [w >Aɚ7n\ѕ'xM L֝XcȆ\>D1vlfUNLdxtgxv~&v6 7=Tɸ5k/kG:Apr? S0} zaܵY~l%b}~O}_/>'>O}ST>~}Y~O}D'>}~H>Oo> ST>O}rO}TAO>O}d'?Ud>O}GcO}_>O}ST~/>O}SD'>O}~O}SO>~O}ߚ˱ e5 3PC5 4Lˇm_W}g}f߲}T>O}~OV}'~u2 3p7 3pfˆ\3S)TSt3?? Fz'BNJð0Lzƴ_ V,du47s1Ɇ$)—4Q=ֲaC'Jl[(F H`rOޮN?Ug>&pr_&b>O;7 >z^s1h244\#$$$xaZ}"qK9q9!L6ƧBbKP;w9 XǝG0ut^Myf15}UiƄtjA;-azϼ_[7QG89'@F{f30i )CHq>fs)bMO"zA98"pN[c?'1!vnM w1bGnžhYXp#c RM?pbѫViXjPC^y-ޭrqS hp\Wv>VFn ] vIQ?+7^eZg3YRm=V 93bbRfNFT~8uqݟ_?2rҧ5ո|bj{ -BTB&5&̬!qܛͻu V9y98˜= ,i%]Q^ϴh|!lui'@јۘW 1Xg}o;>fBPě[4 ٚ-}13@F ؏ G s.Ҿ) &)<4&qSt$9%a@]"t8N|/:^>N2:SƘŰwM467ZN!¨amgWn<<ҡׁa*e e^#O̪:_ȒMM*rRN/_IEM0L]AQa.`+ȨzfH{)÷#9m )ȱgK4B92g {Psm8 A9iG/wtP +MR_Go:ykaVv%@Wox6:MaOנm!G/eJ8{3ڥ#(=P1 ʩhiNTh Ȥ>Ƅ!X;( /zʂJ 혜ÊOmA=)յUxt{ `Y7x \*dQARk)4WXuB! !Xy@p Bt~_Nn?{2!츋7p.V/xl 1溳rvUb3_vf&~(tyiOKwc }ҹvz8ty>!@p Rp0tM6 Y+k{Iz^q#39sHm.5G#QmV3)^bGq;7 zƀ3l~ ^?,:ɛ+2L̕[ߗEz4.ȗ/Pd_̒"2,Xczn.軨$G)xweS z>LU-QL%z2ܣ 6|NvRLĠaA{|R\%,&UV-f1'Gˀk"{Ϝ꛰#B?>B;{ŞUM(H*%;`OY7*():yXMSD)(b"A: W~1S&sހ⭦0)c㤫jh (N{v=m{?5+򟂈B}=AgMiv{0 .{Q.j9}5y^-:RX=S2BiLm'4U{7#|ZV, H?EWr6~\`ɵa9xLP;Q :+XayԬ}%'ZAUg^[OCێ`GƮ;hEb)JcFD]j:JvN}Do'c2oO:JR6oZN4jRxQcCvk1ʢw(8zW=bxĕ"PW8YobaM~w/ȗMsF?4^9lI@ٙAUmw"W;kW_P<L a?Nkdn~eGNPf0})2W40/F1`8$ )6=S6VV"F(Uۋᙣ^o,u @]A7w6:)YZo;j.qmY+\p ̀.~q~Nb=Cv>>>?|'n-GMuw9wΝ#A X(1+%F~gӰEX fZyis5QXrp2憬kׁ3k)b ՁpPƐ$b1kZҀ-bx4u,p^٫_W]<>j] 98~ۢv6oֹNI|^c]́B$N(̋B-Lo9ʡ(GKޚz`/_Nqvov#=5hN@_>n8%^:2bS6ضs ,,,PBڮP v؅WmY25Ou wolQf8@7rаy1]D pq޿2Js<j0=+rp j| E)'lEM!Bghr3f̽KukUv~@i5V)J3^_SHX̵p=[ɉ2fs+# #2u58/K ҈UaLXƟGmi8Lt#02M6#Ȯz6@-Emh0_S}^q\^ݛXIb_>ПC|`QK]9atye'ds}XCiցx0nFC̉ńאtDZߵ\J'VRG2#xeKCfPB4?xr͛\ Ç?Fb,poz6A'k?V6]} 2Զ\)iq?m^/n`>yX31h\<5Zi}zn앮qgˢyߺqޜ&U.d:aA%l\&kh!:Wk}_|hBקQ~Qe0}#k] ,zCR' p/$|C׋.7Oߗ{߳=}w$]1!/-vf)_ahws.{w&s<`ʑq`L0!+OY|W8';/WłUěpsZ]  õ4n A]P?cCmݮ_|԰||~E[n[b1?[ תR,s_@U,bby]0rG3GQV~=Ma9}^xXcuO)A&lNJʅpծ+ j_iֳ‚0LvIi,{&ۡS?7h{|'}8*X;7YŤN4'Sz SPY;T}}IŚMo`IF4>I> P46gg g c.gcM9e@ аOwԒMq 1JsրZ}a}{!ؽm7a{G3ybH@e!#>aF[@Bgeh}Ad=h|`Ec눬-L*ѕ_U:ph_d~ ъ? sXKz#_{d`cm (3d&^|,]5?et i3Bx}Q*_=b;AD9/,z^.ym+H^riI,ZcE5NfPqTyMJWS&a[jTWL摮+'x$ȟlxQ^xB6f)'L>Kʱ&0}2rnY6LHc6'ѻҌW S'DV?E`śAj,ϗSѽ905 eY*35|6/ &YqJšaeJrZ)sq2f(neE\-bk^%)Kˊ!D. zUf];bpLqqG^Y,'"Ŵ.A停 PSl1РڣX;fVߏ@9-ata3z0ڇ*wCOKhF<>2vp<666D=ymrOcpd".( Aqq;p\u]ؙr&سF Mua[Źz*i?!|1'IgҰ*zQy2x>Sa)O.nrIDC Ƙdx$_K&xwסpj&PH<wOg-4bf$+Rؠ N$9vs}:om8 Rެ 3ħ]~ַ'|aA('¾ TZ{t~y݉4υ;{AdN[߆]SE$Cg<ǯ:>>Q :}c"H= V;H,>^E?6o~8^=KIXH}@JkgƏ3"TFU2gz .W[l98\[rw X!e6 ߫| g~;ݍ->A5sQ EPvw`R[7&e A_14 +*eaS^آ7R6dzUWqTu!I,r< FE}Ծ}I*[Ax)};" qƒH*#;@t ?&JH\ QϚБ9!۷WwFwo^[{Gr,p2Iв$T'BPG"blgR7ySC+JlVg{PsA4ҬW@ M$DȶWwJ5tX;1kJ/?`dgLUZc^Wx/}]B)`JF+` kD y4jl_Ÿzx [itC0zfStXk? z`7Q7G="ƞ)`Y*>Y:1˜<2SK<|2h\:nz,>>h )#d k!k}PQ<8:Aʊ*C1FR1f]x肷-\[| $˫!Z9a6*S!9_SLh}4K$E7 amb{*tn<!,牄' 3f{K L/q{ma< iJ6F:aFVZ6{nZHb\tSb WrE*7'f9~|}vڂMX&mh!X+t"vro_?_/]o4F"0nruZX( (9S^a X1¢AXn£=:Z:?9B-`#*El%_e@CXGX=eҚ>}otk= 5[uiΦ[SeҵCnNkw0)sQyݳ眉\k4[yx~?Lz3k2u7I,\$"7ͰI:h  <Wg̠Ə>^Q Aey A@sa_>U8V.nnǼ^O֧cFìc:T 4,SBz@ L&C1̕Lњ3fl g]gjˁċ^r=6ͧ\|cKj>J,‘;-dGI# ğH$GfrjW5f,/m۷mm#5f&4Zh,{tܣ7w<˱؜>%ŔuZ~sgb)YmKY(1DBN^i  `S% 0 #&w W"Lҗ!OV rOCR{RXwgQCm k!Ce+SKGtY\xͼ faty ݶ#ځnH=ЪUD[&;~ץj@\RoNEZµ` <)8KSR*p˰hQ{zY|qqc9A}P~89~t2*1CuAz`GDJJ23C2{BTx@ѐՋyos)ɖ&d=iKFCJ]]dn̑z^_0#$2Ǧ0kq ZƨeNܘTfC Y̧,WgBtnZ~Zp}E6?E0hkX*2F37D><;Gsc0>O_ E#Tj _X"7xpqߚ36jX#(Hi(!hK(i^~ax(=f1zWE*8B7\ZNׂj(]@3p_RЮ. YIu9"|,v_r>\Hw&探jmل)1pgLݙh ugvz83Rb{3R&LխF(>aXFTWҠ@Ok1&޸N4ÞqϔM$ ܏:%!| +ʌLC_%`I%LYޘq/`NBǃgՄ .-=_7dN校%1kQw|k ql}Ὗv?@$`)ˢ ɕWOg~^^d#cC'~8ETRrYe#/:kZܤ _BzD3j *wpUׂ(PPF@L@BED)Q@BEUCj* ":4bb\TR!ߩs*1# `dRʔ~b~:()lb'NO_+>`-i\P=r:U;Ϛ, }@Ќen؛Y|$',.UH۔i.F3.|tUp 87 z|5Bn&%E 3Sc''{ 4z.\^'7(=t6Zְn -`Gs+ .5ZAڡyseyC!5&*7~jt;9/r̃XϞ~evzFc:ܹw[E:%k '&!UHOE}*SjA<|ǒc"ikJ>3tqu]0C"ni%qhXcτϏ8X½GϠߎH)Yϩ()R(NKl-[fH].lKǒ/ ɛ&02P'"-ۣ?wӀAe+Ͱz*mB5|h"?z/кhc̈́_qf靎  qNI PȸMT?)=6MOZd+偞_C&zO]&ӵp]}t!HCblxN0$*؞M=&6vW;%QqԆȡ8g*Ɲ6h駋d _0+Q?mj>e`M8.yx.M[/vԙ0vn"?dndf/4Jԋ/ȹOf9E$2hYY Oy}=[`iЀdM7"tOaEaM‚𵡽 ,D 0F7y5'<`^Ŝ.V`fkڰ~g QJL#R~\E[իz.ժ?\ Sk""JJ5+!`r.V\uT |8о23eUseB PX F^&`JB$[.O1i_YEt-].l,9TDEP/+8Ƌbl W<p%Oo#޳;P{*o`ۮ1ѕ k߬.Y-$N?0-ڡOcҊ khC 4u}BN'8,#߾1ÿ_wj,BH7G -eu$)lWJ-eB )C*@DBۈ2Lgћx(ΒVB`UOBم2JeRґR TYTR壶* v3 y_ '}iU?UY0aId ۅS` Ѳ1·#B/J멡^kβQK+:&2"SnTD mj_ ,&}T?CMO[p>tÚB1GRjenxJ9P}F54. as︞>V3xBQ:̱@񋌤u+Tuin-sIr"|G;M^o6ɦz[3ba):1S7#rLkVXnдыP5/Q0`,#{`L *&)ܯ f `ɞ?h9ShhM W|0CRNtԝ!8'4̘ ,Q(*TQYÀh޶yܱ\5WՑ<̙TQ}@it~kt3bz~2iqYT:ibD59* 1ՍL27mM2|5^V`F.:+ʡFsv,fG?aђ9%N]km~ 6ChN&ºFtA%?I\j`cϔ|⬇zőw}rΖG08$x:.C`)yl=XYjX ѨHxi>ֻ=NvOŭQH0(:v1K.}n*O 7m~m7t6*,QL"#˸vV`WL/]Q "ft03&XjWlFߚ{>N/BC֣P5fCo:Xǵ|5+9>^tVKe#|gL7y%wMz.r1+7f,t_CvSpGD-g3`C]3:{ !QxJ;[p#DYմ, +8#}Q;lx똴uQçAn&T(L A33>_*(,\>i!vC8 S:f摉uL֭Pq6)T,J2+$IA?aMHMS؊(C;dD_r]4 "Nl^AGN4e0KqHnsDI\QRI0l[ T)n8zkE alq[s8]гL1ZMhsA>~t9sָ'H$)QL`q@)2qq6EV7( u w>#5  x!U#pogٰ`r!^v%= gF7nw~[JV?{mVm0U3M{V?{{+^A?a&lU]ȤfՁlLi]Dpb(2O /(l>CFP)ϔeOl`.rf Tڈf2P*3)AO; `~tZ* 8ٔ il~cDnWt7?tUUFD?-|_umr&З2+4jIt3뻋~VRwq̙2wb]%z/E[/Wԭ,oKU3e&Kp3}ÜSlw.X;WqX/}h#ymZW~5@D1S tZ7E4C:Cn}úAΟ~Qs_xlUo8JX\MygN(Otf@O`˓ע0@m -u\2 s 4d &gA^ ncoM?5?&}ó R 3zF5pQ:!:L\`D@LY+~B?!1s[x]sq3u<%ټ7{$^"rs:l{9*N?ӍWO7ɑ&w=iQs?d3xlȪ#59IY;;|٪+6o{߆E]>yU[77=ɾѼwU̺$Vev78\S'/7=-"\\Mn3zvGrLk'wErw;qy5-yn[ösw%NzEA7U5ugg9 Lb1.}z9E]$Q:Ky ٝ$j9]g.*Jsds*'S]vLOnW9&}s(QGrtu=فQ7)o2ddsw9ܬ-ms7<'z9z7oˆ2Gnn:Qs͹Y1YL᚝OzI'g.˺:Q3;԰텱坁K*yeD)k3xT-3pQeLp"ry5 .X̊n;Ü9؍˽dk9lvO79wsa5o2v9|0'\gb[ͲYE@ \ ( eĹpaGpJ[$d6@$jM#Gn[DZVEaKiV>:}LRe( F_,:Pr0&`fEv*-sX.2TA=6s6ZmMM%9u; -" o(D i]9^E{1l_g,p?5ь±%&{/ȳZlV<L)1[v]& ;QfrNؙ$ 9!Ų< d׍c ?S\hȒ`Zp8b, G:(} y&qw, \6S *`alYy: dLD6S*<"J(~ez&@o>k _,1CrP.?brN6%egauX0YuCLӝx;po[ٖoq-qyw+vsQYf:hA3^rjf\VOFޤJ93'&w5ƨ̿77B5/Ly-wZ鼢 'gpfS+8\Wsz_,0 71eg*U^nŠG.FlNlRY .YEUU8_P2& ( w`$5D7ްu&k'I};vr.Ờ+Dߣ'^M;VfL;LTc|(h6&:&ut7koHաCfˍ@g 2s2c \$F| LJ:{=NuWj GqN/j{+{kY&EA<vsH]pJDfWP@]Bq;d[\Lv:z:yYuٔConr'~>ܞ*e'{F.V&;d1:'"`ٞdf>f鱻uno,W?feyUuYglv]IDFgMy[ 1lr+?xz<"`{@lp{ơ}}R$&&7G Ɗ;2ݛ$:.$yhƷR\7/pB묕YX 4ؓ {4/gwcÔ p&iZ۫LSΊaô{`5G,4a'R@ӌZ8eL,eg24c-l~Rˈ2=*,_5jڅuW4y|& {s7_9XC~=+c}t- 4_m6މ>YxkĀ7gv'4ȑ.EԨ.L|_/徟vC\XtISIzaK[q>*:*:¾. T,V- }Z?zV -,/VL63*𮺜pb6 #3V)WGSB쥷$_;I̢ЕJړ|p7w9%4Tڡi糺%"M33ߝEKkIp,Nդ)IWUʘ כpy置;3:z S9S0Sxs|M2'.vWw29躨pە˯$h}'3EUofw8o98sæ9ԶLsg{k^a"Q>l'6Vv%l|9wΛ[ʙ:gsdg4J+׏wэ2t_ JmvڷE;6<>B@$ossgd0{pxVX`Li^ˮڋUQ]bqLjy+I*BC4EȞ\B4aeX`5>XK ޙ.CPd&pzNRΗ'&ٸg8fDBGmCN-i%bſ97 a{tbܚ.yZyԵI7EPcg2΢ z^Cu!;U|:] >7;OcQ)\}ȖU2M]A×:);u"t967|NH_Jդ'H)Ļm!13r:Tޝ>^kޮ޼q=CFq";=VMw}>DDv 75y֣I#Ē9&xs~Fn5slf85fQ<<>PG$ m4ޱQW`oۙ9wV+K[!x߮j.|_](7pG͢0J$8EyFxPLD󘧅Alnws),1e;bhµ'\HMacMhAybhwlrsssջ9VmIΓ:˯0+ePЈ".Z;ZrdY,] oa(Bp,f৓ǵuz0u稪'gPi*o/|hNd6Dd퇗^q5?ԡ^{͚V]eY˥t(`2]-g}3-PpNv̅\ Fb%߯ K8ڡ 'j~ mdi9פ#FD!b ϔa3$@fטN a6P &YkSnUB~>¨ZJ Oj]A<,q\!weIv_/guubr[_~NNquB EJ7ײ\KHhz#?ޜO~fF;^g.P91Ȉls^Ε] 1L -D\*uaxLUpoOwsN9>$"3q%U&<|*<"oAxo;gyQ=TgwU:Oud ں[ɻ`fr' a"G,zrjȎ~.u5,õ(ƴ؊[}5|O"{dt(u+;ՆzL\/2"=Y {,zC<ۊki˷ΠtW3Ȓ ռcO5 }\^n--)G0ͤ-3C.;sNgG|o|8-IWjrNF{g:yӽOԼ<0`O-۬) F9ȾY|7 D^=͒|;[Ҏ\9%;:VK77\huO ʸo+Vm/Yy߸8>?wbGn'< &#U|1ȌVg ;3+:3Zucgo;wN6ʎYIẏY-zcfhJQu6^ǯ~QWNN3kTC#YI[4 TPq5ݜu&o}׼y¢EwxnweI\*=kQ6Q<"+4/XL_{7أ_^^CIYˠسgj<7>#wgQpq# ѩ;SpmָPUDžFԤD}xAp:3w\ ٱןn lfb߿qNIkL\[;p玫s'hWџF$pFz`[ZD 7gSQ#scxpBs͐94bmyRfs g2$}~3h˪`큃R) @%YS"FPP"/B/q N_D oe,fT:XyQޕaXn֩qy0/FtNUJ4 6_\~W~2%T.EO1Ok!8/rPn_cL/.5A<Ϯ%+SII[WҮ0*>!NxV'J+Ynz|)I5T [99[j[|+|V 蠩3iZVBX Fsi.tv€tYa{ja 7? ?s{+~ZJ~ ˥eX%YpccsO qr{.ss^F9Uq\c4Gh.s;%lL󝙆cw\s;pk֣Ǒ97p^7}6^;!L3igMN=wX'WO%qxYFUcLNeyFgw̕ı/Y٘ȭwdYvw<}ؘr<ӱ%MD\Ke`*}g aJ"o7-}6{ע~>`)QSI7 .=)l41^ˎlGȳ$:nbX.5Z:׭MJtFxa}vo7޸둼.Ŧ>'[X 3dم*ȓ+qSۂY9Xz" v.GyM t)K6 ͔\h5xVˉC7'Z{>/es-[fe_^i>}L0Tq!NȓȻ7 rPv-v'`teUzs'wۿ:z>Q>S|6^Yp3漘2}亷CCn5y"s3N\w/]zdh͑if:%97G߯^>yx{M߮N*.yΜ#5jo ]&5']C"90P9s{2?=|ߧ/=Nh>b~ O6rg7ɺ+{|ZW9^뱚HEvIs[6rs"z`%NxΨ}[9܃L#DtNo} =GBc>?IVlk'27$[ GlPDWQ}kw9$g.sRG\PzyΈ[!n<<}U{ק>l}.M3dk4zNTIh۱% w3nCc>'dő'洞zye@Τp֨<֩j3. zw +mM loVЧ(2R9>a:螞m.Y8DQJbF[W.|}̱J-;q~'ZzBW89/JPdF?n_ת:8j_*φ~Ժ [@GGU{6=qc$XH^iݭꘘ]>PvAe)|QMYS{άu6%kJEA1lr&50Q p\Jtwfe!W(q D a'q-ɱW:c~1zI///& 47j?(S^(G^g{X _8($8wxٛ8&,ӌqc@ʽ.gzCS^#4Hj'oE˯UEBL ̊?kֿ.07qlDrbb( Migw/ĜC:r# y5SâuTo`ޢɬ+F W os+y&A |cκK"jug'v&y0Tʫ0|nf{L#8IoI]_nl9yy/sUUp-F6=5g,U{˗x4 زKfe#DRMTH*ɨQlP,ʎҪs . * }]U\ oтX tś% Cҁ10aDQ+EDBY`U@ҩAYI F<9٫.AעG8oAy_5wf R{`{pHMa˽ݑgs)7:Vy?S||zIչ?3=sNRUk\6Ea#δX;۔;;nХq2̈ՒnJTj>_.\su1{lLvN+ O$ʪA 4._j`&l\zuY Qs aYoՒwo"zRu;:s~M2Bcdnof%(uYlSJ˭ jHԜBQɢ.:շ΍y27ɣG7^M 㧻녥 qzZQ-M>0p&rH:PdKdE\k]H@kLs0Xbk>lXѮ2Zg\~k}}G{.罷"7$_Rw_ZiqLׇZ15-WцQ:d?TLtLk\b[yQs&A,=8G3ѻ%ku|'Q& D";F ޴;wV:"3p^fogTךNۨ65>O5R.[&;ȗsz΋gf;Ƙu[9"a8OuL`{i ǵ_K L.g%[I,_;!F<+FH":- m.̘^^ N"u &ف)E"-a+)s*pJad+jJbK6&[v ea}BL{Lcr撜qh :ߏ&Epb T9'ϒjYR~JT2j1yL_uM'J Ƭjl2Kkx/GVIԥY뾎KxU㿩 Iϴȴʙ)Q!"kJ5sei82=C=P4L^SzdGaw`527;>x?zadS<O-7 l-I0nMqتW8B:Ofl!.݌W}YfrGy9 /8I{Qg `%ܸNi$ \clDpD@a7;uӹ]쪾a8KΗXv\ cuO;wȮ;9Uw"1yǕY9bpKC[7~>=xI}n1rfo?eOkšlS 1ԩR,t"u>|) f ˖I5J5xPv Q37,L#Z3T02Y]uV IK(43LCpq#0nF劃Bᨶ2/BD̑/ .T!)]UY]dlAy7˪ToecKo7j9ٛavf!~D968+&qdo"e;zw]MsʬA8A͌:p$RQT30h$Shww*{4VUudO+Yѳ |:b;sr7U7ָj21ֻq*y+UwpIMFrf! a6ˈEy:9HC<,{sx^ȉAI<"<*f9|nw<'cF;̓c-hߑRQS$FQ54A/u'CZOs*8#{dh|ؾ?n 8z3!*I;V ]k E '[¹5 ~/gƽ/*jc?#0ȬVj2{̾tvs~X8A&;iѻ2:r7u މ&ꂓ:t핳bInuwYZ:YUY}ClnG,l+F ȹ72|;sQS:ɨwt^sA7[;^4!1b}~2q#*u]ODV ĪD~Zs&8m1}Y"*`=G]#O0tY6]o"5pZhuwۥ7Sw0͖UB*UV ^u wǣ߹N0ۈCD҅+[_EJkk CՖQ~4δ Q-e<(p2 *C\!<:\fLgC}v[F njdEܕL&"**q&QL}-ǻ^<<1~v6aZNW 3Gmcst&7c2;[yp8A(S$k&)H!=9e\R0% IChi~{lN'Eaqeżs]BŶvvsl5z߸-_Xeo[U\]s39tH}ĒEN|y^O^ViUVJfBp9u/uޣǫ˙\W=7?ߧ`sk0?7UZ ~}Wy>?֎;mVR@׫bc%X{UjvLuQP Г+]k[RWv&y.\ %}qn}. ?v:^V7m<1SׂgwKވ?z"7rXg۩: +;TdU~6>߷EeG][w _Vϴ*a^蛋[+(u |_sxgI[[. |!G|!Gȧ?@9k-WBMbug#'/R9W%y2c.oɴpJkXs֔<6Z] %Ip ( ,8Qz.`l'mvGK{囮vtG|kG;9fy忢 #r\1ENjbdr]*c[FFy1wf8n"12fku0Oj,6L77Ppě'o]nF9ݻ6s;/ruJ}/$UJxh&+ESԶM.žR?*Ծd2M1 9 ]*%e=\q#~p8!_`&o~M.=-!?#Uap>Gt?:8l 58`ϟXrTc/ݒʛˉ%/3-0.!,(B U?gy!h㪞s f4ʸiBV7&\`Bjsr3^C~DFF;cm'<ߝ/W;/LLw^x#n^d֭w%q+~Aם*=ʍkz#WZk>aؓ(q ;uk,\Q$ rnfkU>~tAܹ:{؝͏jHs4pmY#ؤE5[BuӖaml45'#5򊟜|V#;sx_ϲ۲^_OUI z{YڇzAyVdr9Jv0u=ɞ Us#:ty;_2 'yFm'~Q"{qRthwV+߃amF6v̇g n]޹ +d.Rτ)f;If& ̶ͨ4&97aMN[s//8"}x\w'Le 1-dZ ?XM'9i S6TOƕ!~|T@TҒXj,p~^cbYf"p{2<+B"<!x \eGh07ċϟ>zϞ} pt10@C+n2C5beF_%։չ:fQ4QRK!o1xrivxHM%6 T.K'2&i8ɪehܩݛ˸78,5Aִ5x|*/Vkx\YȪ*dnA ?oJCv ~_ü|GLuw|9Wɜɨ0}yYxvC]6s"\nS{^TYܵrc81wgl̩k#H7rx^;n+Fܙ*7|y+2aN1אy1;G_z9y_/G~-wMg;=N[7#^4n9b'2JIwOnN;ްtaT `o_g-C FnZkc爴T QX9~)S\VTR]}љj榕I%\Ue5~=ʬ,Jk|İBՏ qԂ@d:rPa !ƃzXz1bR'R[vt {uX]!C%Sݨ'5K*ŸfaFX0旅MNe$/1#.$Ϋo:7cJ"?<S]X$DBl<.t%nN:.0E-rWԵ3_qu9p<+&9nf +vg/:c81;˽ Ϋg;nIEta[ܬΗ濄2*:Q,Uy;3Elg+Io'uY;wܥgtt:wq7RWo3+vhqnvp2y3;0fx5ױU/w G'31tɓ%vV@J BQy`-&6 7{pk~NёhR:669t'XUHUÅҳBTe Ve)/ gW|Q]$^-/98K4w'>dp8)Uhsr̨tH %En礏NsTE!TL ctݕn`?/~ 5;|(ɩ$973qAgs#ssKSDef¸y3|99<7~y`ޤ߭Dz_G ku޹==r5䯗(v|L_/urctلR#e϶w:=Uǣ /9>DyS <^cDZqW|z':;ש32[}Noy}KA\;9}f4ld=ٿ"ك'ߓ<#\+yVܝx{OS^ǕpW lu:[S2L' ̌}Wu|s=YNg\727k ;+Ln6fcӛ; 9DNv:32e:{s/*ዿ_=k,۲ȝ۹íN|y)ٸFC{X  DDHLI>`i-: wcQ⟻U77t6jm^4ܮ!+WΈ҅!m1F|6t{|ڄuޅ8cz͊L JU41*aLly*;i<1{hcJos$wzs7һ]F h(u&!.BRru@xs]ij;RncC߶B(m- kx\ѳbʂ>;0ɗwwoIK&v=d|a~6ʗfnoUp;7Mt !_E2xϨ5Y CLV 7~y; :},#? [Ewol|(_i>X_@gUDV 'I]7>ҎOSФzHٰt݇|~iD}I@Ʃmc>u * Sa> m &AHq1D'gŹtUh50zGYkZJ0 pNX(Úb\:u12s'5KE#'- Al|s\L˹vbBsvEeeݡܕkTk:CF)3.!',CzɽB̪*GʹT˜SZ~"(BuQEM]Ok p+z0G`0lmE0L+C?5)*fK(m>}#F0 ;>M1qjDqѾ}eP..HMW?C`8U}cFh֪nLsbo7yz$HN"(F4}}[>fLZ!l3CHg i'02)0 f` 0뺟*۩p{ 6ż+zߖ:1J\'Zx|pV |!V)g7=7JUܐ9B'Q t,JՖ@{G7DT}zht,jJq@Ab"OB"ДHU̸NJw>[_8T)D#"P#=b_*lptjasrk 80=:ڋf+Rq7%f/۾I5U>3u\Fۆ@۩bZ+QMZ;NS5B:|FG W1eH_2F0BBk'@H/]r?XW (A-Na`Kɪ=%CcX<Ր3dzP.$^4(i)⳩ 3C{ʧԻh;㛗34/3R$dp0]Ŕi4ƾg^J^PZm\FN}Hc4t^"ez ,~b;C 1T wᅱ'oԫ yoK^N=;B׆ 5hihP,{_rT A_z {!vGv.F]GRׇ&' ʳ.)BְQCᤄLfsR5K=X+ͼjqwj}u16Vb X^!e |`'2's_ '<;^qv J-;6&cf?3"0 ! ؅l [YH?>!DZP#!lX'+ytK?ٱu}{W HiDZs'd|'Y`l74|Nrb}(&/-oޏP+>&)wBcYA AXrhu ~yBa[\.|M!cV=^cK F'm1} .Kץiuq]?9ppX|{YS5c~o\_'OYQO8lQV[kp+nhT.ɏFDWy'5Q| q{cU0ksKTts, YWvG %b31ӿW7\-?ۿymW'dv+8Q)C;ԋ 9cb,^V JETbi^tR!Rq9)&{#-?Jm70Y4k}Vq GS9&[CȓƋV.^كB{QŁT-ZL^~$fPX\]k 04Dmnv @`mauPRj^];7FLD$A!$FFAB .Z]SBQEЪ#*iDQ).t(.E օE4]HuQӤ](.5:ҋtiEТGZ].ѥ֑4.@$$YA#$d`E$$ASHҮFBU4Uҋ hSKM* tt:DtЪ HDUкUGZG@M*:Q:TUM ttDU4" ЃQU ")UH#$B$+ H2,!,a +,#"(@SJEWK]tE.PТSJ#ӥt#(tU"M.GN@ +)APSJhSJit" ֗Z]*"h]""(Q UPQAMDE4PUWB *HJAM.Nӭ.#&H:Ҁ.AAҪ(ZPңWIt .Ҋ("AtЎR#! H$$$"]iDT:J .҂:GZ]] ]:ҋT]*iAҚ]"BҮ.:QШ*:]i@]iM#WH ֗B!A..Pt֔i@QEҊkB(:кTtET4("DttD]*ШPDPUJTEtD]tWH:W@Ўҋ4Nӥ]hWJ.BNZQt UUQҺӤGFF4.TAtiӡt*QH.ҠNSJ iM QSNBuAtB**Q tiT4Qt iAUT"t@GZU.]("@Z] (.uB 4BETҨEM i@.֗HK.NuEZVYBDdddaH"ҚEU"" ֔ҚSJ#UEкҊ]* t+TСHH&'uSv+cW+z?=0;чꦂg$7o u HkI`gwvYo[jpTGqj/FSĩUίSѡX: v}/~m6_auu#=._x~Dytxt=^_;SSus{//e8۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nxy@w:9dBBD{p^._MuΝ'KEѥbs׺GNm3(y6NoCֵuuuӧЧʧʧΧSSSSi|=?ƟOOŧȧԧǧƧȧ*?SUWYӮ{^/W៙|u~I鉩ɩi߄~~SGG}?߯k~:_uu}o[____W__[__kkk}m]}]m}o[W__[[_[_juu

N3(qS1vc9A7/ t;?]55S鮝*5m6qG[?{9S;ϻmp?䲼Ej"/tF8pd ?R{uXL2X V16uCqƙݳDK1x-WC>ѩ> f&^NTV"ҭ(k>Kaϲu+/\\ T! z6 |&T0wG!ˣ;ŞcDqT3M/Ai#QAVs$c|Uln=ZT{F ,\?8u:>%Ov7jHs1&+;僼2pWɪ"֝7t +jYPEkk߈ٻ8dɕ jիVL!ETn-+uǍ1@ւ}T(6MI| D,j ḁ,O~vr67(͏'>cCǩrE`ߛQjRk_Jq@=#Ou-MKI66"*crPB ED$hNXQũ#"JO{QH]h{[ڐ0,7;kŇ>b[6JُS/cw̵G5gWl ?%#p9;Ӻx2y֗o,bU3 'JE g{җoE늍4=8죩jO a ;W_ϙ^N[0J|]x]/2Ln4{ϧƗtQ=G=6 ./;ͥJ81*٢Q'~.LqB?,,گfx&][?3N)cy?!Ut%oGuHDL*\JhV>ċW7YZZU CF ,\WJXYJT-h/^:ڎ-FchѣFAROiIc>c8_C`"E#D:At>tve0nӢO#լBq6Vq=u>U@Uqg0*BIGKC6_\*dTxRiIE}.đRVi,'z_ea9Vj>XKm]4$ӆkfcqnڈ}n|=6[-qɅR"l]z-)3IoP;S.a5(kܙlׄkd1wspC{Y@˲tY0rliΎ{yz}܆e$Kf'1$M|`|W0 ЃΓp7*ebӓ4B2UwCj7'yKu El$>Ʒ@H2<VjOofg^_u{TIBu%98+Ư'SI|VXx(ׯwA9!>Ob0?r':+UwGBL,D2ݳ.87/X+08fcEVabɗeɇeĄ5m;۰iL q B㉙^+|w꟟$*H(w?j] t^yváN $AAG;4E$~k22m7;d[nMox"m;Hܧ4/X=-z/hV&5{OY uh'ɣ>kAM ‹:[?>B zCXIӅA^b<1Vʮ0~'ϋb2 rJg 25Zb\b-0FC!(1T &T#TT$< NsE@t8)+Q(6ŔUWE2j>'M~E|EF Dn))#@lN~vkj1\_mSbg-QkdzWTH ~,0.׬4 pgn BU ty'~c]Cj{fޮ.Ww[r /=B|ڽVprLwz%6mzxv5IgzDOܛgPMdw)6r*n;l5r[Vk6mܗD@oPqE˕p0l(ªZU?x#h΢~ǒ8<#F+ Ox.6G1t:mbERBwI7ٺYlVQ;}wjpu\#C[Li U`8\Lc5;֌#W#Q?ИJ5z]~fP0ːߣe<=[c-jP1 ބ}tԹtu(;.{W᱐S[ˣ*PgsWӳLȴc[Q@-Z:WS;ͻ^5hccBu4}it asE}[pdrppqU ? v/}Y$r w;I|}8͡RwZ4y+{d (WAa#֫zA)2SD̓ O1kAKzφc~C#^eA:ȳ:UQEQ1Q ,Cwk/CCQ$b׶?|!{ ^35 ᝉA88ʎnU$gZ[eqӇ4.RdLc)ZHИ`93C;x@t;Gaj>`?PEu"?]k)Ad:V|Q}Gb3f0۵XtīZ:NCD|[աˌ;F/"fӖ9{tܤ~=yGWs] d6d;1S;.mwiV{>~ lKmā1op(駺 *nw!\zڦ$ۓ&kΎAzQY/"T+,OE%߄{ cjZ\n<*!EF+p]s~_'/=6)OO Ȗ; 8n؞<Ӱ>nGMֻO!'Ai0c"zq3J=~}X#֚wO_ů(B05@|@tTet.;/|)ʅr̗ G(DO]FNf{<;t#>ry?LTS?7n/u~qk}A_ 1>xJty*o9s]57F+y_M@Zt+}9\<5Vz bMڑsLg goTWoe!nlx?^hP}F"wod_K{H2c"F4V&{}|i;ηcvnqrzӋ̥J R_թ4li- <{1W}ZwLbyGOOV c'7D'kWZ׵ς S<_m_{"=2wdn<;/9* /@@_^^%\;!wh梳D]C_l;. ˾z }0nnޏp39ܣuu4iqkHv՚+&nFcC"\[}!N@$ N.5K8 /R{ CXgƤVKUL%*׻GA'MJT{ڂWAB@F}:d,uqa×]M'xqg\:(ZYڜWeM?meE!j%QΩt t K7=p۩yWځB%:^8V?.IZm*F8exfqhpl-l}?/arlM3P;e1ǡzBw\j!+Iz 9Un(yYvG![6 jz^(gi]zY'm}0UP7/`}鋩([u,pKd;˳Ώ*y'iG6lx: \هƝ#Oi݊lSw||'W:*'w~$7m{i:_ݳs;^Sv7ȇKB%ϫ|yV*cHBpi34 ;_WƷKPMXpy<Z6]l3^;_Dt<=df Fxx7>Bd3LRg?=^"o>@Ͽ#]󵮧+w}5#pV^c^pGJ%m]ľ;H ܳ}#zٔ i TmT 6ș^K ~jW`wcF=Azu0G qB?%t˫?r:l&h#+t S[MLRO;.cwjT{ngjB:\Χd$ǵGag IP J{;rLb<<Ui` 8npa=(ހg 1@_Np0G&? ] 6'ztZ{@X 0B@5Xg}46X.eTއQu |0!A86 OB5<?A5!4y"D:8C*AB; 4W7="[wIUH m@؂@/Z.sM||]ԧl:D(A0&8ثQ@PE"xB;) FLOc wp@S^&@5XD` y0d6"'TP PUy(;*P!Ҁ#wf,+E*"*(J@{T !=>0EAIt !u×;uzë́XgR릗LQvyYں0{D m/!'{{k+ 7ݛqĽ+GLO)򚨉qL-wqD|.3%?i* 'aqhA./;]od4&B@FSeͿeY ùٔM>z$4~4<\*ɘ4bVrb\8aBIJ)h^E #"Nbd>Zrjnz 3.NJ_O&""%%U9KK8TQu2fa.DNZf8N=(r`ʯ nxCɵ0ZjHNr"?QN밋H;Q35 83UpLM \n^ih("\Gq''/M *cE TQZ=4"#`E&VNDSji#? q@-)\q6_<`NKb.x>yF#"Dz'ЊHxuUijhJ9HiT̻V :^~PCHB3Rb$`i3)V-ܣ/UBNmK)WhREB X/}v..~K>^M KY̴dlИZBnR~6^%92u,u JBPs)A% Au;VQA`Hq4Pg_OЪdeإ8s],8q$u?C0H^GBp+0,Ax6EȐ]P4U aã`ȡ@b! .4BEα(05";\ z 0@O<@7T!W+`8R`X 0lcG3Kp;'؈wNWzNͰ:gLĐf D0V'۹h$,fBErtN'ڸ:wqX~ ?j9gg,8 ,Wt⏌^Js{(/ͦp-}XQsc:Q$2a84Qۤn-jXQ7) IZүFyG<` Ī2VwۥYމ ux .E%|Ƕ B͔/ZhE"(b]Qy˻82:JҠ1'`yF ؆,[NTYŨw}Ev Ʌ qSbưS`/c["x{~_$x(|28 =?47wY 4̟4\ yPޜ|Apʎu_wӢn]I~,//jw>tkihA3KY@̐ΌEA\^۴X,-H<^rcXXSFV/X?Hf0/rP!-2ӣ#tO? 9}.\9~.c6|4{L$,E'-ê2X> DɤG JN`W:+X,2"ȵڵvQC%oicK! u^|߼A$(1V[ ܧlHX 0' j#D`KD$TTdIt}C{6x`8f?lvN ɛgXߪ=&&R h9|0hupo/ ~ (鈇(cQuUkZ / `jD%Du]HU.#K##iZ"]B\Qϱj%!!RCA?"7P9Er!_@uNgLX1(އlmE^,y=8Sb Q (>gaj:^Œ_XI!e+řɸ4G}qza Z>zs8 DUǥ|7Ȅ ~Q-!Ź`*Bˠ.{>pӛI2>fxXu2t^mxML_r\!_~ߔR nI1``GMnnT PU1T)RLkzJ+]&v%K1K<`[`Kd)ñ@aKi-SZST[S ZX\P ;2 2ZoM^3+?c`zwCU6d 7}9^qpNO2 _l:Qߑ͜o3r4u>z9uW*3|aj v-r9KmJhMxk$7"ρ#9$[VYuNknzTL"6!r0/.ʡhɖ-a\Ek$i0nrdf$W s!¶Juɏ;q_*N'z8+44"zl2dɡd6kdYVf<FRdYt9ٵ|ôƟ1 */bTҖ`*#|.|{' ~pfzb˄lkU 3v /: ~O,d 3$ @wTs}4:ď9-|Tρ8z,ꢃLM4y>oK9@^b-}%{w܆6x:;Ƀ[3<$ 5ŎP6Q֗llauR`'C`&(vDS)Ri|*Zb6IلY?80/{C/Yghwۈc1IXN8IZ%:uQ>+Z(YHy2:. }Q{O;xN$r`Zڞn#SLD@zg0P0[]LMH9!ĐCxKٜ-ilC 3™ワ pDJ>!t"E$> _ֻ[ef Vr-In "8vf֝yEww}Sit6dm!zSÐ3G5H6OzfC`1{jTCC IOw3]͗% E|bbq_H̋#&A{1"6utl6 9T IT Hɲc36\hRaXj-Jz9:kczϗwPJ(˜,1O;ߤ=Vtuzi{GXhEϸebYt 4m罏b:l1.y!Ɗn>)=3uw̖ꁹɪtfdw)I$/`;pG& 'd/_h, I On",}""0C@"%Wk9SiR-7 A(50q-Pp8gr\GԼ;Ф7`4wI1 9g^f%H :QȴGa \0 )+CSRc>V'1?V`=sa#r_IICE#D[t4P\Ou<!HJѣ1wƂx\ML[\B$?3QAjkH5< !?;g/4<UDkCQؗI'˩KNḢlfxJx5 kD*8?>#'C˛Lk 3옿 7}`&S^b͸HoI-#ٻ;]-W,@ן@I7麅)Z>9Ĕ&8GNuT;ruۮV9#̄躑7cm|?H#^,A Ȯ YorXDUb- 0o&/Lrnɶh:39'|y&hZ+d^)eΓG$ST+E2v{$c#$G..>P+c!ߐc +nD׈~X jxb^?’32wc+C=,!_Tr  A _lXԅA5 o%RpNYzqa%u 7}`+3r;u:%ϖ,9q!6*وXbt,\˅'Cq9pV+c|ȿ64-ZMPDoh"׈AXk9'B̯mwfpZn|11'IѰѮc_~ɔ P3(:c1NLXPWs>T5>sk?q:Q)ܘ$FCwQl5%-!Zotslxyet87'A o\C@ >g=5xyNIS1هm||>/ljQ@n5F(zœֿ-ONp޸8+|iGIJF'pf^T F>U(ùEmV 8d2 L=#ܤE5c~!~ \sxAP$w/E uhƘm>948nEװmPŚR?= O=^q͞\ˉ -ןr#B%`1qumܨtC{:IN@h #77x<" /CՇ<=^F=# -A_tF/ܹ1q>k*cS6W1>&uLURb{O܂ f" ~G~^,>|9GsPquӊĉ@A qx>Jdu6>g\Ɂ1 O $ߎ{7Iq;1<ɬ3ŏT]IEHEZ־ƛ^ p(2tC9&9~<[0|nPxz[s1ϟ4q~THq(1q?pECGٍlhNщk=k )"&t[<̖f_(HC-!`:أ3ހo?i\T) ^#<~{iG,r-u! g>LL92 G:{Bͳm"Xrj~~Y>|p~%Rޞ? I-lgt$Ԑ13sbêQyais}ypLwU R&5a6~<,>ɗ(\߄6Uj? ցhr_ *qePUa' B48G 3&WGXc=I^rL~pr`8bm 8^Nt9[p*2T_!l,6~كꎚu;Σls/7V/g a <-Lwy-fDkυAz#ٞG?am9.'/EyTGt.NR!Tcݙq9ˢk>2SӤhrS3J}thz^"W45Z&Le#BO܉P;v+sPekxF2&PǑhKxcP7JX1HM-/DHXT"!Ů0_X QD9yl* яVbP/ l/l~a{ܱϜlMG5~.x0J9H ,\U :F3C@Ÿ !\kg,= 2Gl"i!xFU8IѷPqDt ` a 'P~eEr \g~-}9\f/5>ؖM5wL/3DwlؘyL?ͩ:" bG=ˠ}<, [CS rdXzƜGcL.㏹$#J.T#[jr=7p%Ph- HA>dn :h (sC7X\j 4;d!CH:ysƹ߹?: 2^GYq3ZnW+?7:7JŇ h>hx2a7EO>x"4788F2p?Nc @v|j)`;0PkT`|Jjߜ5'l7 p4 ,rE/h„܊f-~栓FE󵳫T];8iQg=ѢƢ=vfsʯ!J'8$*rrQZSHOۘ|r%"؝كm->bӗ QS:ޓ_Xû7A\7s" yr$wc, RSx;57dEs'Kʟ7&p?%%5A>69B ǒHF1=͹5o9gk I9^e(xA_2B\7YnrbG8MH'~t&r\5wHΔÚDKM:xWI|3qJwOcCSQ!S8(Cg. ,Yњ%NXพL1wΦH>҃(*z$!#q?'CvWxJHKu_e>c?mݲ2|6SvQyouFa6rbl)>?qbkz+m: |/ I|A9QDD8r ‚3 a9IT[^ߓ1>fm {6G쐚ٝE #?AcOc,z۳C(OMC{|6mǏ4Lw:GG*4a!6ttђk ƠfMȫ?,yu 2h9wJzA;$e!Ga5/=c4leEZBb4Ðf95;?8FRF# }!4z!FA1%tE0 ӡD+:1\&Oz_=e0TQ eY3)5f7-T5?}!=AG i< _'ȝck@6 TxQY1 W8OP Aĩ2ؚ17p#v'vr0xOکb"`81^ ǐ@n |4sQVj|_>!v.FL)˚.5vR ^[`!&K|2”Րv0}0!"Bmy7.8\-H(T 1CKaͦrѐG4# #@zl;F6q]ц lBNoʨv_~8fr|#_p ay N / A quq Sa; F#Tq\uƩ"I=d:ά˂F{A6(TAAfLo Y7@AT dϳqY~2R`XJ}6&2b3K8ݟ)?$`IzV`.^^PpEbդ(^1 $dh9Al?isdT l;f*W=3o?6}26̯z\ tȈ^9ߛQojm~$BDC7Cɬޚqfܾ N3A~3絶/>#w%2#cYN80hO=o sOdj5ÑɒIJ 1^8y? p:@̓ƌaat<);hrHz:38p&Δ?Y$eTM1󼧢h9U$ka< NO8bi!5FB}'QۏR4\5G3YkQ-I혘7١?lJ^Ƿ+uSf bG#Jȑ#{&0 "EYV]N% ˑN0/|c;3 )`{<.Gb}3\NՊIA nl.ycurg sKfY=؟{ : ߢW;b!M#E3AI01 >àQ O C O_#zs;&L %[?I[ ]07Edm\dt ޜo ,xw燢, 8&`^E(`W=G3vAP' xe1LC=Aȇ x?N{C;{#cSw,Jm/ 58?,pfb ~FȖ:P<.As@7YaÕ)ax'3*K5%f=d%) 'w};gP̌2߀S횙{³@j#%vwb2zѼ!hX%*l q93¥y!am\Lƴ\|n%OE)>Oz,g`Btyޡ60(ϐoBܕpaqbjip}OaeC~ZQt}]dׁ/ϢO t>] g!1CF;wҠ؟Kq*$hٟ) Nd94A<{^Id`3I0.H3)F 3FE<g(8]1ĉg[Jo5I='=Q;NQL~`uOȿbi60&b&İH[8&lʜ\ٛS5:29-%8gxb@"7 &^q7w$V y`WBPy"rhdP0XU !X^ {ad";ቔZ$Sha0FHmh̙֒gƞ+2oOA*鍝o}3⌺c-ٽӒjyY*'$;]Hb1촽2blW$,a{'['&{D30p+!O{XRE7dOV*.zU# C9!r1LN _q6!(v-c /m*G`\&^ecW,F%$fkBLh~E=vw)g9Yo |/i(C),O$r3o/\ Ћ,z-^F{9B sSnHw 6.ehZ ~Ax3|Y#iG!D_pŸHzhꄢ%*>Ek4ħctplZH8j[FIs⥖^$WT}!;$*XJ CzQkN|,-u|fS j)p}l?#-:ɲP*b',dn|D<&'R|?>b ysRPJG2 E]{:3.K!m© mAc8u$i{w{U^OjbqɛUBTX+!,V,D&bqUuD1(&?@;`Mf[Ȭ<:x}5ʼj>:j1|ڶ>-oݪ+}-1yQ'H2ԟ fط"{.Cڠ}CQA3֝ҩq솮7u[jg x.ɳgyO+|)75*<9{^n.D,x6ۮb°+t8݃3KPBf`Zax;d ɖ0\0NZ8;lz\bbT9AqxvxѺo ɔC1JbRsb+b,Xٌ( r,X-F7`'yf#+sdBLqa9Whho ,}6Նal6 0ǽ&.=k}:aϐ]d˅ְ15yVSP̴_4f帻]ĉSwzwCaQ+͢kJ3Aw;/=䮙q>5X\șPt1ݞŬ9Ř-\1U]D3V1/ Hr TB2z.6ࢭ׽&H6F^O g~'>̘`"H\; #@hG3j4NA[dDX61޲H3Hd<&99t_ +3M_c ,nTeߡco*oȭ#O A:b"CHu'&V"Z]6[?Թij-j`^bjETfwZ4s՗чv;͜]ǫQǯ7E*hsCQU}vޡT/f ˣo!?%rG$ %gAsŸ ?C~~O3~ zoZh C P3Bˑt4FlꠋF@Nccú3`LP$:G.>q{\|Yo !ʱԲ;CѠгڶYY4eދ2!!kqu*Q}1be!a @ pvT- cmuWO-{PFKn+|Uj:/Q!뮫ߣ7ޑZcDɨq>!PVU'Ǧ b0a3WY6ShRrb\(}}&C^-NRۿ~prXΘ[[kc)]{t(>Ǡ鮷(#&)ЀF-?0ǘ"py=C[ˊ矄pk1۱* _e%TaW6%Ph|mtkaşOsSvwl>mf9j9́0YK,~K/Ndp%)/{1hh(,0 9?ԝwRpMd% qK$I ciaT"QJ"6JBC`# \/9du6⬇&fZįV2( 0abj,,h6h444ö$EVe]Nz!dzNF#sn< F Ku vOݫ;ekی!̇yPe7[qg|l"|g3CzFJ aq_!6iӏ|0D P#^SK,XPN2R%%dՎ_ C{rƇJC.?7GXF4fmڭ /ĵҤh4=rOUtʚ,ku5]ZKAM՞lq.ˍ,@Dn;J 9YZ3(?G0՟wj)ҝ'ԜE`P(\1U0 ƂƢւZAbŰl4jS5klF]ݏp#q(s>^泚?xp\0'\l. ®|MKa{,DՆz-K[PuYprXAOx Dȟ|˲ _X;~Z8'FMm*}U1b/H"z#~$3#ŸL(8/DŽ1O׻اʉb1Qk_êz(z=Ua^"LӹFdk6}wPo+=UJ 7f sk#-zi5>) q^j$ʐw?xpo/:pt*7>xMP4Xs{Q3b{,}ӟ pAX#v['잣,Uھ3>-06o, xa`$0h;Ej9RΏ3e9s$=`S 8 Ə_)3m*$fγzkd^(b`s11b2N#AM.gGH}7E;./az?w5%WشM)ER}w " { U2T&4BrT~NV=lgLFK&`5= 7 +Q ilB&qE," CA,?HЍE_4l]NBG &"OoZ^رnTM>$QE/٘tm4נ$;6#-_ VMܭRXr%rP*!ƈpڍnp8JA= 4`$s+BE C!{d*`U+`^{3dI$ MD5sA78 Z}Ϻ_p*yo2Ԭ23&{MbnDƍ9xGPu/mR5f2*./$j)]hX Ķ`Äa7C.N\  I(~;=Wr'(yeo7r?6YM8xδȌK_rwr}4H=ߎ4p*7N 9 Bw*hAdA.~gb]38oN &wg!}y'QlTÂy.kJ̟Wcz5j,,i`M{ԩ jY`XM bL)1ꍪHUjQvkxbLC U˱,2MA?UaS!ŏoYzq=q;vLH(~&{תl=k/H>HNv9EW[ #i c*u3uF .8C1HD4u* NʾWqS:oJ˂7˹;n*\'}=U&/ t9:Oe|VCI\8 M\At@̂:5nؘvwYIT7s ]XmN9ţzc_X%1*+3 vcyt^`}g%%pL(v)(yơV=ލI0eiO\W%J EԟHyBPX,} Ncxj1;2C:$ tC$ vIb-,2mz" 4zٴGUw?]ɲх{O=d2(I|(ρi,Őͼ0]v$jv16Aw0䦰cœL׆Bџ8(m[ޕ_)m>:w~L[gW? sGD"v .Z(&oXFUL]/MI݃-=gGkx|h82 m5.Z o $(OF,2J;Eӭ}]CmP^*-E,˗.Œ"G9i^y>ɕE FH" /인8h"8{Vr7tńyO&s1#P~ɽ 'Tu8sljCi\Nř8Ѵao"[`?x7e1A ≓z`/Ő`C-7ҺdcF'6}h~τo 3ACeo#g2);'u WӄBa 70_U#lġ%k`/X`NB6KmLWQ>yyAڿ>,K<+ބŀL8 gɓ&L5֏Z8!rZ0=>٣FyN x7]+%k3gB҈@tBk2I 3p!|_>֘QLE?I}ˣ=9~L`F#7"2,*TtaͬCa nj0`mmDV@䅀2c X=\SPY Q JNNJEDo@܌J `V-Z̢^F{, UĔfCI3gRjRd4`Y"PZEٱA#t>2kAvt6Oh>o/AtB;:'PŇe=/iJ,Wcp|-H7фY" rde g5ӭ;3:G:i^Sԧ=_53,ڌf =nLSlTfaţv#w]Vq\[fS2y+ zK@HTܟ-Qb]T:IE 6iToT1A@o06xb@"&f P>PC\DU>E~A&(!Pf*PPtpU:x ~H%@Ӡ+Xv2k; *vOHv(O1ID;m1;~&fa`%ŔS Z*.L5D"Bqr( ^?nB3\\<Bu)LwoC1ݗF˻TI |5|Tī:N 6i/OKmu?lЍ"J-^D7k^pd:h:\=%DM FhF;`fD,TY[j!@(b&jɱ;y+[s͂!*q+3f6Nw]'SPaq 3c>$b0#A/^Ȍ41j"Jƈ)`lJ蝗N GXRvuѓ=Mݧ=^ť"DcCG9۰n05L37VxJUOj܁5Y?ߚ4؅Do>zoj1Sx}(WZ_ʧ%M٘ H>SĂz2?8u?؞4e/jڏ ]Dl~y~XLG*(iyu>ʎY~N[*K0:r=!), ְ>wpZlee 7]k'63ece>Yn&)FlS6ⲫxSx3& r|,=*TW픴&2L=Y[2 6\J Io{{M*}cn&6T"h){Z6;N{mь)TTȲI(6+l^3ڕrѣQ9.EY ,:&+E6eʠK`mTM?trN:OB)ܓʝ2JH .^.[tn.GcB 觳׬` M᏶eΧȱOyZccxyIi(oڍhukf uqؤS/!)7Џd]ڲl$>i7߶`w&!K}r&!^ mOrx_MA_.9f3;fEYc43i*=lfkmJZa48~zP;?:JS]lCtЛ^F&60O0o9u.l ~IFeI2jթk-Z \Či՘FcAyh)J0t:2Ϳ _;abXayDQLfx߾ߺSD.yC CL3&p ҤKOlʠt&wUo(h2 )PlB lAbj6"ig#Pd~oev9g1d&ar7u\uyi}θy#bgpeyG\E !#V,:7ݯ^5qjAqGE:X[ 'A,oB "iF\H#> *Z(\ KOeД!?6I"X^/^+!XEN[?^Cm_:cknYDC*xz =ThH7 B}R4?>5 ^oj(T i]fAcPd➎o9yebl6GK)CQj.v~xpy_] .vM'~+Uj)shD3Qeوk`HOԿhM-1dq :>ޑf2^ǜ{s(ĪA-^V l5 -|jgq_UoYK zagTbqg}68Y45V|Cb׆]q8/ {#-1 7yߦ@^:'8{Ŧ0& T\u=ū XTQ Beezk0δ7>Ijy~~[z1 Tmҵ]r9?жrĪu9s_{qc> iRF)IQ8 x; Ael]MMb춶-K.mas^/WN3YևY֩EjBk;1J.o׬-d1Lo[o^nG{?r_ˣ)ȵ9TaU+jnj=uSZ-ԅɵ4 Zf;={|mE|R61doAڸˮVAmgP1Nz`8޺<±f3w˫3?7 @sHVA\6[arBGqh,YTc@qv  uIJ6DSX)910 @Aprރp`Ϫ6CG<\@BSmx68cqyot@PY2e7L"OLGV@xrql5*#I@ "ii dx_CÙBhho2–C]XzGy7!ufPDw>һ4"kڟ'xy¢ np+4wt1+Cǹt!|bP6=؂9ЋbʛF,C@ $H!H3+Eޥ]l6 խqgm58۸Ӎ88\l&}`I"icWPuHy 5YAfzT#<؇a8?S:׏^V`uH#) ΢Ξ/+B10Ɓ`LQ6saVo.$r+Gv}𣥈lQ[C B{L)tUΕrvg/ O>ǎ,ȡAw:Mf }YC f1,76CWӢp؉~a=9܆TigIdG,+% i׈}q;kpE oM,ntz6ݏTHe=UGm1_Cn,'{HCl0C85(ͱK6.l#.Fq Ѹn7M] C1츋#bw &-0. : :u_W]z)IСpÊR~HJ%LJ,1?Ù j4;Ґv!G5C^蛑.>a(]8>C7mpxXlYS=N|;D0WV3I]D%.`_ 3`}[FzTԮjpmԯyӸ=vSRԪP0Ͱu:-!7zܦf udO=ha䈆A&0m:$)Pl!;"}ndr+>Mɶ-joH?mmrU:YLV=#46S*itgq6byuvhL'BGvc>Eje 9-Ölιe2GNc_Cm=닖p9Ԇ#~zʀ8Y%|qy!1@_C}j|뭿w˙|Sz4{" y/_Z1vFB fkm`h ׸F[f8Z6ehд#mz{ǎ(wuV0zB=@}i 3\|J)d(NG2sp:tǪCD tFu "VMjdD.(?uHgH !JhŹ`*uf{sQQ%APbb0Ci{8?Tz|5&~:aCx=ĽMEj!!WO YٯZt׸ 3x0;3ȺøƐ<+#ڐKN/gETʖT " Kkh>-ԏvUOS Zlw̗% vWqms[@MV%a? `+un( >̍G;@?evu2=.#웨}kwFxiך<F|YZqۨz^x]R]~˞ EZXu^^cc˟a|8FFO4zP(! c8A.`XSx8b"+Wf11ňd2YCn08͐8:{vYcjw!QTR5Wϗ?|<>GXvbH<0-⹋Er`׋7G=oGr7uTIV=VLj5J0)⊖ ?{כd܅D-X]s6Rmx=8s_˕=|,&aцk/CKehmy-nokEכ @yكo!-oH7v]>ͿHkm &pEf-Sz7k>O_ȗ7Vʃo쭨rmCZC4D*!1m)k{q;/巁 <z9rtzSZg(p_lmLcK7w߼g9z4-6c~) Ѷ@ ):&sMn_|+Y = j!ty+{/!Ο2iƷ}6nB@AH(7  γ[O1r;;w S?YzAg-H (jӏ~WX+?\CֳlVn:zk2 H" :"Xzxب~DvS{υsv} 3xW ludmsVݦfb 6-re-8<*W( l31vJz]4l~etNO}_j`nlvp؅cvjˑ}ö/R^Վ+jPSؑR.M! 7̪B^xjo~,AϹgdsX\Qy;Xyi՛wGpD管U67A#Dսç2tW$0|O{=SuzȬ ..Pp* Ev \DI21);)&SLC C:H`c xq 1OXbinf|—J7q] Wwc!t?*!,HMgx/B6*0\܇>QcD nƾuW4x 1"g,B)i1?>%T `v!LB0L|R*\~s=5\|!QE2qS&#4~ׂo|.fi08>TJ`|40\ M!)ȄHg8Αb"q0t0#SA"m8!f١4 Fi 4F]vD7bboF`v>)G¹zo!4P9M:Ӳ4:gzx#D8"gM•Mp ov4ǒS8s}g^:FH9?ޛ%yj'{"xvY\~pou_^u(7Zs Am>c|CriLW;k>ޜ7ܺ`?{h¢sh]!72\KS&aY.C3|Gho5` LJX ?OT-fRͮ"/6> D B$%tVkN$efjWZVx*ʮBݛ{9iLL|#Ő$Y@d$DD \dd!dR&˺ A5U C!Т`t1!D&SJ""H "碕 "hFM"h *SBB!4:Q5@UѡdRD^` FI$aT5e|'&ڭΛ M 44 3yt6|]EHJ"T0Q n.TF缸}}yQ l!=UӃe͇y Cv_i%b QI=b jY3 ڽ~lG=.v3׷66 ~ ¸G4f<<$?dY?dpު#7M]BۻnގWҼ0\W82;0ozR5BmcYu隸,=?l'p8Q^ZKtWm] azpvkDUvm~#a+.K`PRM]hH96m'+"ւ,(xD \/ P/LwȤ|ǣ)3N9/a;;(~\r!Ǻ;c0QY#`yt\~^Ј_"Eh{@S6:ZkGPv$ i!xϐx~AHDC"4PCԃmɀAFiﵔh[֤xƠÌl_w݊.P>DUsd7ޏ9Pr;;ėv|jsȼ؅pjQ{Ħdʼ۽7$r-Hg뺮]20b\}ؽrY\7ڛ']aZ)aƮ #PxA2rlcӄ ;ςc ؏o ?4r8{9%@jGx;Mѳm3.^@,mNF]|}'Qb4sV+oqf@T7! >$VA l9+SQG[1 cKcH ۶Mnk8QTѽNxyޛ\RԮ9]MivkBЇ㺘FGM[=OqX;7 L"!Өp,<-r8*d|ߛwV @ :m?,<] ˈ$\{*j!=ozDZ, T>+k8UxH/X\ Wlc^`ƘbR{bN$deVJŒTTva`44 ffen|ةExG!rŊRylߏSN BG#^r/8ۇ ;Nc5t{m/ceeá 4?PGAo#FȞʡVW6J?FFK-OAmCv)sdstV >П\3T ȆVW\Xj3͋v*n)r(dC0{xq#2 tf4 4eٽ6#Y*fU=BQ菅4jm:uD3o&5Q`H$,'OY$ d:LVhߗ&sa?{}K=CrGva}޺#o;N)s͜§c&RRo5p]{ê4;a9aG:v :,Y& !\x.l”hZ@3~f-:! LfA=qS{(!c0lbP2NSPA !'<5qU5GjAɅ-i٣`;zط`n0jo? nXp`Dm}gι7gfS`ܓW:2U݇zc`4 4}FDn }&0&}ߜf梃h^vpjUy\yA7À*J||_rd*^Qj%PUJ .2|Y[] -mQD*/ [mXv IsB[C-tp.],Ds&SLY(LV3ըRg\t)zBAT/$sE:o֣Q; bM>nt*3Wف1_Cl9S>*fݣ&u7vݘN2 +,iV ^+2wJS?T&YpKpq?rQYAo= {yȌ~DO}~TF5{]/'*%2ûQ&{KE@,͈zCaਖ਼rP\N[.9bGmK?߷`ockTEN_e^"{E;Ǟ, a`Ny@R\+Ei-^ p_V*Sg9Y)Da2$+FтL>ɈޛyG>ih{uQ.k{FCi54c1.2wY;jۏ a-76u晌EtKww {=G #Ĩy9~ti)R^/ڤ,6aN*&e;/r<=Pc %6~R @L/VH'M*eKb zӧ_pC4qڳº!iWXZZZ**DIS Ial"?$w=-{p7PSd|A˵D9gFh] 3F%( v 3 亸<=r5VyDɪ]E%ׇ u*P EgsV nIBa\ ;BfN/Y aԎ8tx~b^/Ҹ.uSC'^<;6xM(͞VrVC+dފn-2bZ:T$_ڰ,c˃NYS©5b6Oh}'OM\KBp]Wi\k= +(!ml5*x( _ }'ނ*QdVVH͗%n hl6,r\űmnG1)3r"V搤'"<F(dIF0y`]!LUj_Ǯ#L<{+ve!D_PQ6QΘ@O7ZČo_,K?bWw/6;A8(so!,CLg\0S )2/D:;)Ӈ 3!j-Ů x3xyUJ1MKwRm~6'7oo!N_t11 bsks(ZYVEAf.mp8 ]+ ri\g+\t UZR!2情UoӂbK :"6gF$o!GBhsRC9.ҴȠ"ؠ㓓S.ғI䅂H XRQ.8zsl_{ ڣ3J"h! Ē x؈ qE#`##%O;Zsl2xI-GeQL9{gcHs>fw*)#l)(6XI C?r ʵ?_?dVWG>]SU\|[xҌv۵rl2˦j%̺Qv(4۶i!ۗ.\Ӵ;vʭb;#f2wbb>a>jt?, _\mXKKӹeSy9!bܜتw`dX ]KLD.tG2g.ƙ9<7 !$,a()bޚQxJ{<]ll5aV``WR9zηL6^"'.oktr}7*}KE6G=`Ä96j(yM TAI9 ]7Gr<,oMA"!{Z5գP.a=AY}$̩R(| }a3)^` kEK \؃yWC&Nw2qz ^c/?{ Cu͛9G1lwy4DDY[|b=jdZ.n$ئLy 缐o@`e5E6S]@8?>GaƞAZ|]N6xC.ǯ<6}7"bN *^\}r#B2@= ٳhLCO^3#7y["ȲDBд-6h| !,&6&Qhlgxd(9HؔO!)Cap_O<ܘX/{x08)ijk!G2WVwȎ3=\@o*d`:a x}|.J ӍfNvQ9)!wEA)8 uTGBÝBLyI ⒳~ [IMl``EQTg*+Jr+#,Ky+ ,X8L3I|c4ȟ™PJU2g> 5n+AP(~ X!rLBAXшNGO'ˏhSWhЁ =frcwx"ch6 *N΋|?YaMH.[3ӋV9(|.R;]m֑'up{Bʦ_ў*|5!@PSSӦt0Z x?/zVkQ%)űm Rp19J=Q]QH}eF¯u oq.jo^VfFoUdry7@A_VͶr]g$m!MƱ .?#UNt3b>` @Y"&\#&?xh0@PtIͣl@싱p bؘzY4d*yH^%Lqɫ+tW1{*T:tzFNPKZh ա\u.@ ^0_DP|)^&@4p[XQf܎^} Ujrkp1_&Á4=;(Þ1v}OHj@ک}SS6յ Ddzغা1Z?F0fxȽMOsŃU"?U qdzy_^p%60+ >s*u;ꙛ@(*G(>p4B-x h>/^@1HKA6cRuieVhyS*+N8LB3늀q㇯-TQ"Z`A,`x85vdy'ϟ>mӷ|vFa鄎wW"ؖ(pبI6|w ~Iӿt>ĔYklc"߬3$6SX+odxN';੊-y5B(HV,ǝ,/f Jvvvrٟhؗ>D=o5] s-ĉ296 Q&c@(J +A%pik02sNt//3Ox_nDV4ca]jbō fal/[Bh3Z3f͝ت >8")qb%'I+*ĩ@k}璠ӄ57gLv3QcK'<*===f0d@1-Rip+SZ eOj5%[G+a2Sin3sS~`LUC~9Tˣ}_{]zU "T*hٲ)u]_ YaO55\YsCD) q<\Xa:)?K&CqXN=1O>9˛&ȫԊ/͎prDcfVZw|v g|za}ݍ ɣyʦC!d,T T'NxZ)Z,  3~X {<>2sq38ƛw: DCr!j lzroٛr; Xc .ピpoqʸ <~G-%ğO\s3-;(*X2M{>vatGk\6Xl__Kqdb3{.V x9(nt]sذ0 ^݆pL~g.!+t8I!!*Ƞ01ѿ`X swqͱ(uJ7Gp=ç+!"jtɤDɆ#BTX-`F BӣQЏѠIq=A|FA\Fp}1\ Kri֖_>ݵ>LdDx@ H(~ag8qV+9ǎhlbq(2{ځ gZ7 @T$,t)㋢< ty4ջs{S)cM¨e[\7w+M &f5No|- H]Tu+3rhBYJkPe*;(nn\ Tabc # +$bH0JuZ[ʦ(_%B=|#Z9ȶpq; KtaQ, ؛,L{{Ta)F|dɔ 񢂬Ďȍ[B$2*ttYRJg^:iڌ{,""x3u9g3|a1@vk(vesF"B%%124'lO*|r@}|Ξ408)$J=*\ux$ ni!$ΓO\t/y6|4wu/M݅OC-|G_cօNLbW7 ,Ҕ{yg囶C=Gx`щ òiĕ&P 9YGw$~L%sC`chNtWSZ}|6-e[<]Ӡjb B1SIhQ(2YM aZ¤+B%l "Daf=l78j6|鏯ˎLᢛԓYoD?QfEuO{} M]0%,&L6 */̹K7cMckɲ3iɯ"#Yr5Cyo0-D yb?a6YS@㡙q;o D ,5EE u(;GoL֧)ўݿ[ߕ[\3аw/yE[pΏ;*J!Y&"H դ, i8'Zb-CdT:}. >7߾؄\_Kc\ |+XMөbp3͝wݾ׺3* ?PÂҮ ab)d$U1(Պ L2${8tḌ_6{D4;.[Fvhn6V"x#FeΥa?2R!T2z ٞ7#eS6SQ,6fw C 2Oq^ Ec.$I^ RGďcZ{),QGaHR4IS**ңRxȱƑ\M"0 gkYvԣAxx"{̏H2uK662uDM.KXyO7ڱI?P!8f\'寈+<RW`1g"󅎵mDt'}fnJyt 3:6uWMl;yNuhᶸNuQZcHX lCs>]`'#@0щQ1WH e[Ne&$@f]m@>b^ "kq7Ț~o3,ĉ-Gz݃0R@D 3,D/GU@ З'`"0E\41',%q9uɯbz F,/Aum=XĚ  {*|X M,˫bcS@1DLU(hЬj,bH _BB;vГˊ6"QEvF " "l" t"ȠHk'+0@NZ=*(s {IPSh ~^>?|i᠗IM5;@;T | ܏AZ.+?#_ aX C"Y$G?SϗT~EƘȅ?z[D/-Ib`#@М*}(gRʢŸ{zYra *z /@ɜo]Gmz}[8B ?}s RUUVްNPBA@NU Tmjtttτ_Jc? ݲ x? TK%[Ę|ΗWk,|.@i0s(YWn&m"1rN.mÝV͆ڗg^@:d=⇉HN7^7MY<d]&z;g»_OInG]YUq‚i͐E4ҞCu[Oҩ.ˌnV6M(ҴoN~[,қa?pH}Coߔ и>*AW`VVVW60 ",lbɄɓEsED`2h`uty@B/+6"T'Cש  o+RS#o9(+}a!$.&*Eit&au w^їddw y'곷CYO Hjc::NY_h72'͏_ O&w+55vO<<"?D6>oV,%w): HDavyO:JŠ_|&~0]8 )K'10fbp X ?- Y>Zsb(G#M=͟xG^ٯBH{K_ʵ{0RI bED"Za02l0NX*bƬY"+suzd:KLBHtM75qd۽ l;X OҲ1 ٲ.-k{0t BRpډw'c F?r:0N(勖3&`F$Ct" TsT9>EOI-0%o "x!AGқTD9BSa; /rzb؂RX v> fNBKa"U[9K[hUC8Ҫb{RY* n[k0؜dCh +˗.OL.1k{*xrpzXݜc*ߕO|;l/yN}5.緓kT R w^_hEI,$~iz[(Иm^4r.^BVZ*'2vRr+j\+ [KS骜im5Y4dLeDc|VQ6Q/p.K!k[rW?4gmd]pVs96>TEM:HaN$y L+.1 hY Psy@hC ohҲqW,iڛVtÜ#ZgU*!=VӓiX"YpŽ[<#hrxhc=A ?C]R[lb] n0Q&Ƃؖ%`Vo]]D&+B[["$.O[-.U3eXNje@LU2U=]E d)X~%ZYҵkWՔׅYa!?#ZBUe3W.UDS Z)l)9.L|FUT = y󿑥lB}B/RdیfC*)WKDCB]ID4 oU@z]w$efR|RW kެ!s@SQILD/[Gn E0?5~ kD//pjXnD Y]z`lۧa$wy=8jV4-J|QV{U5#2_`VMaxV~Cfr"tQRG_~(cwV8x_T=Ya{;)(!+iI/ٙtcPJa|-'Cm? ib ᄯqo_;n5}4r߹Ub38D8\xccϟ>&Q:=LmolwɘCHsk'Z/n%߳啴e 2HE.m >|u u9[HKeBj㩚71zAsDg;yڬ淪Onœ&~QRR ;FwED 3t*, aBeWᅅ̍y[)~IQ(՛G [HUP)l/ E.L=;!NC']/a"kmq8@hοFi٥> 4Y7x ~%m9)] `RZxįC(`0$l6NG ͑c4xs3ynmO=7D儡#7k`8ƠZ܇6y J>s%čܷ0kb~C(:54>q<%ž@ky{s $cm 2D2 \AAɼ@c({Ҙ.ߒj jP9:`A9A{*>S ]2=e56rم^qﶼ7~:Iy.ҤÙTqiwd H'*ara,8ؼs3fsþ9$A ^JD_0y9Hı5dj !;nrsg!ANAHVi!NA)E8A"WhT+_V%!4b3h4i6,`pl(5`ԓ(0 E{kak31^72)Gד=V7 k24xf}_Д&Ξe SYݲP]r>YThf*ɖCB P!N0 `CVd<.ٻMwyLtq? Ѥ,UY٦,Yq$]8'- AťhGb<):vf@E^DH$?L/:8zc1bHho^Ar H7,%dYd[aҷǡV&:6 _(~ZVi<&OHS6q{$|ϟCI`0ɯ4p$͇k؎MCBrtC7}9C`[!$߮36VOc^qz.gv3RG'@svmeb&7kp܍{X[|_b4m Z nBY$ey")g{4&eXlFS!*(5͢/9Poo,q!ȁpR)GB k jp+Vb0 "R9/QRPisaC=kF!ⴣ74/]_[kc6v28LqSaȼiYM ;H4{FEHqT}b6'KZ\;|&V>4Em|}+,}[X$7U!g/r3jby -yzY::]e kOWK,nw;nh ҤL8Kı1"Q01Ta|CO$|qV3gV64Jɲ0( OVqS·Jll@7Xq8,+-4 gd%W47F&ι p9O;ofZb^La$$M=uurPI d’k ,EbZxXǒ~"1c$᠅oto&RDhZȤA\x;A3JXQwwo7AJ|Z;P]y=dI:UoFSfW[hWʣWN\9Xs %d~Ӣs\J67\@$AXY}?Ꝓ %[!"s8VPt[݋_0x;q;}k5: kwB,oe_me7 ݳz?y ]aީ~lFDzb.04z~8e{:Ic $Bw \vnt'p&#Q _N@?85p׼#گ!@*)E`T'VSR-԰RJ\,,XD.n.r41䨅p$Ry;\dt$Uy=w7"]A|W ZЄtl>I^4Hj3pOO@`hYDNsnY0) Sl'sGj]>Cr[tB'2yhޏ"Tn^es|~f6rš9G |6 k;@c!&Qo:w7Cw,K34ʫSN^ɇ9 H*ə :9`Dmki>o 5ߝF1 _y);mmm, rR&PK')өN"HxRL bUQ;53#3wOّqEQP[F5a^4V2;|&8r:U`CUbxPhq s;¾}!xat2W qA.3dصnKLF?~ 9`;֘C֔]烀* ދe>.@ݝ] /??рfoiv=(򻾇O]jr8vJsO˄Op69ٻI\y狀=Jt@ |Ihi-Ħ>Ș)9MI&Oa!~i<}:_ɹLLJcM30eS&*)2I\B3Ni0iS5&fOLtgn|&s9MaSTrS/\LTRyR)O]L $ĦUM7 %D&!j*QPH&4iLcbu0L-R`4jdLi184Ħ=0R0La]2109Lcef\jCP)@ΦefiS:5j9]Ld"\ ^\!BM㆟Rj,%`G7S]y )GdˡLPV1c--,T.8Jc.q,?z~%B.l a G%#楤n@%AckS_4K(b9!;矊plW4|8>ǃN4,0j]H[?Ȩ|̴Ӳp>'AI!?ұU.O2ȥ}f?ܫJ MiUJwˇZm|b΀JcG?b$gɴ~ޟGEAT? rW퉆1ꘫĔԬtRZȥ1"VXL;/ ׯ^B<nj "J%: c5?P9%9!-Qr}g >} 8BB pNu 쯡?0UTt`(UŨ.)8sDօmSN`cxF3ܯ4tm>|1fMtjCv|]v?T|Mwoٻ&8sx{BM,7du_v43V/ZB5)4#GJr-`Eg4sem=6 ͬf iۈeG8 @C(:w+qNwf6ݘfv c45@!Sʼ J0ZTHqB ltq%vS_D[zk W.Zahe!_Ylzgr۴3>C=\#{MCXl 41{a\.6h^UQIQ:C= ,-jn](v!F)_(TRC\;/RD%S>oUќ͒q}ros\;2U5QզR:hVnBJtwO Ѹ(7u)J6(ێD& om2~qccumw9>|MpMT -PÉ M2cD3 ˄\|)yt?K8L;FS!>i;ٸ>Ġ#~UI2[b<*wzv3iJ3RNz.rQˀGWdŷBENԵ%#w?gLni?m1n|kBfs9ۋ;ńK6%*v K0j4ۢrJ*#zEG2y}s<|5߶7V*7^y{c RMsЀpsb,xeM5c6NZl0c>s;  ;d5Mϒo+uA3Ԫn:bwʳuW] *fő׸[(  GM"rP3-A\6̺wyI'.\8 ?گ;GwuEwĞ )C;#ړ:5Z6=]d?eHD_j:ɧ?,X\z8"tKrzX}ߢέGlzFB4IuXB`fPHڴ4k]#9뚊!Če9xQYOLO*3|ŇHO_˰X]MpҋtQwGW: ::0m=E;fle r9SP1+rɗۇiq<ㆵGdmB-{.}Lۭ^sO8j"6 y}l']̇Sݝ.zм9OIw`Br(6Xq,e o{|4N|;k[myg|6Y0uۖ6pFEbiuTc҄ ^}n!94Cuf^7$)E;IN8W^>z6/jBSp&m{"{(p?,}-Q^ZowNNQՙR7j<;}-䏍fK(%zg[vGz3 ;6Yj6+"\n|ld9.J}5קZ:(< |a'/37e%\n7KbN\6~J-@#;od|\ubKZECwƁ=a|I{ETڌmIxd:b80Jd`a,8P.׋|p=Ғ䛼J>E矲 cF2rGz6+vBӞ1Ea!cmBɘz]9v7|M)+Yoy7/%|,]#.vepqUGՃ-8Ȩ=؊5Bf| ǟ3\Y(ʎ߸¶ەKd*=8GAM+,YKt6MY:~5u`!Y~W [!]Gu] en~L?\aYYu$,tc M#Tr :7s}7lX~%#+eK,_%d>2>|@֍r}X;1r,-5X Tju!㵾}CDmy#cJZJlLiM ebcER\f(Dk)a0{=x#.Iy뉔;٥Y˾yKOn*<\<@;04' fIc݇?iK"]x@,]A:s^GqH%ȭwq <|vڶݷ [n)UXoR-C'˴f:~•X?xCCR\UiTPjWʣ.ƻVƕ_vD!(z<]rrSbu$gppݹagyqxpMVvǓDͼuX ӽff-v5yܒ6s0yܩّ[T ZsWBSĻ $! `Z)# /Aimݪj" qg[ ôOuZ@f0_vh=?GG=Ht kq_o'%%}5q&">O;2;l7S@Q:幏jp]`c͢Cy9dgQ/xνkk_޺zߧFҐ ̞K\oի!s52CPg|帱pC;JK6 ę9ľu-Α;Zº-deflV)=J~e21LE ]_(fι>dТ/o(SB67w[Ӎ}D()Ҕh9)y[\3HmR0жoߺeM$#Z?U# H;i O)P7sMY0<<}|*dɨ ^+fv+`>1+d*}7Î؆vdܸI hWB݄pGZq9X)I1v09~,݁A64ۧw2y7"os|qHO=7ef%+Zݡ0(]K9}7n/,7bR@@gF"< pkGe:+[Q;<#I\oy x(@lL7!0\eE* ,iG]2,#i߱!ٺp*r6%~M=l8.ǖaԡs܀>RO׶)lo&eK4r~y9أCzee%E_I >Pחj1ve5Cq1e[a6y'n]|C@!}YWsua&{yҜtĂ%o&=(!T}VQ6ZeX3ɽA T wjEgSfT0a֩3!؟g|7ŧ{pR^hdoMKY|Z|LRBj%LJQHGṁ|?3.]meFJ*.:2RHB}nT"dej$D%q:O/KSS(P«,j&`lO9 dJ|Y.LEm'_*Q!czbk@;5+!at'6QN%aX֫WRHL3QI4,DO=RHFT`0fuSukXVK?<<Qr&2DHj]3R5(Jfb!`JQ]7 :bU,W"-XHlvA<*]${MMʿZu!N%bdLK:sD"ц"V9К\dsвҔsв-ת)w(` 蹵J3U =038P0"rfA%& ?/ԕ)ّ$,3隉dWfv[ZtŠv.>mU,+HV{`K֥k5ijHښW/E6y W_HP̙75 lxb5וB# ){4(#(LUZduI[1@_ȅWbdDXBMvn&R5OvlRbZ]M-pN exdu G\)MɻVA*%A^aKֈK-HLh)5Uy0DZTbqhᧂKTHIM٬`# b\%e|WS>Gd ၖ̑3I=!Vfܤ"7X ߊ{ˣk&ts'`N hb퐸'[&si8a棳ttp< T+Du#'b`hg{ ؠ^$I|zl>ﹾӵᨮM"׌Gll½4Ag{F̟6L">5sVAhFvD&n!jhi+XN1)j4W:YCeM*ro .|@XBpiV=@U$asPHĆ Wị̏G?-MJ_ӝ R4+ԋ‘9U 'V(^*# #`b`s7bNm0^!{FZldz!WTq|%=PsM ' P-5rn[*l+s_I K9=8,qɧF>.ݫE(20ݸ|I YFG ߽Лaǡ<&Om/JxvzNT=3߹8 ` *v^̳B)EH BW*[.:B,-^{c\Tg%fȺGvAшR-( x Οr ?_w}9oIp%J]KG¤ (Qc`CmcdVbZsu&L篑b!є!5sag},:̲|ͼ/ w$ex9k$$,- ޯ/??<kd*e)kD}- f+ NQ}=(8bҎ8Y %|ǧ}$Fb{/aOrz?zGlsZAQZ b؏dɗNfД&D;#X8=N+ \j&:xGbIZk0Ta5N Pr7 w/v_}錦 +,‘`bh $a0AEЉ EIh Xҩo m Sc?=UR'Hf OeHL%r 5q4zrQ_v(@4؃@RZ[lL:߃TIh? Dz;_ Xfli~NovJlZِ0ؓ-*vUJJm8`Pt$AN,R<ЅwLToXrDlHV~{gHyM}ѵwz^_]?!D:Dr\\1(__h ,Yi>fqF[Q*YY,,KbCXS~|.&`=͓x#Fg(ZZ kYr"yK9aOxӾү/ᾋ&Xa'jɉ<ǭ[oudɏdZ[dN:p㷎K,DXk~VҺRuvT nCBݘ*qwٜ̙xYabL@_$6"JR9?g]n^*慫7?6{qd[C4B#ŠQ[jQf6Tֻ't5PZA=jzTDdP['-cbx𷝌Iwե2 .d|%Ex~_9vF'yzMXƤi\R)pz0`dɓ&T앲H ʼnr":aUp*t+7yD4 2ZFq*GcsZRqvǽppMBwY 6Ϧƺ}ļwxY9O`P [ay[v4VK.DIm׍ax .ܧķM9 xnwl#(I ߶yYwWPΖy?s<\N@G37N+rC$QH?VdQ?mnZnm+&>"*)H2FYYX I{-lKw~N& lGA9l`m,5-?..-(hU\GZ=haKӹ?'ǹi ޻9C_jL -6q/5ɲj]v,4짃Ҍ\yE]!jG;{֗|W l]p A 9|7stc(LGJ)< :u$M@L܅| ͣ9Fo OUs~@ޣ} ]Pڃlm tA~oL(zOZG}ZW\E-_ ƂquWO"vY,-p6F8+#O8b$z6`}Zkv*n+Ѵ7sn8ӿC>CsQX^@WxI}Lk&ʪS(|0ݖiEeB:N g] (0P-Gv5es)D|&cݟEI]|!՞HM\g8yOgТ|My% gӾJw]0E }j1c<$[k+DnsX$̆$EtJ<< )YBn"K9{^2}$ǂ0$l 26F%zŝsOXv4)|Q~L  - ےnb|w){ӉDN؛bG~=J0a'첚Sup7ёanFL\;cK9t}^}{>j>\s1!'Xgmꐜ)J"!}D..$\U7 z[ע79q 9( Y^iS Xh ?A7F-P8Xb.o-yIy Ok|'dG1D~}~BY Nf,Xjtb"ZB͡>@ -ZA cmSA`>^Y7G̚qo=rF@JW 2X ل;inB+jfY=nMzL[GؓjsBEPzq>L'ҝIOatFg5cG+4P!P#ulvϡYvxB]@ ٗ-XEԱDUp[;!5P!/ moKZě~,\vrgZھN;ɠ՗D2`92ke_/b]Q/zG/2ӱI8,㋑AR:5#ȫ#&ᥳQ}%8^6 .%hHP(rkB$Z.^nq"Ο9ؿ~i1c~^ O9„%hۮ|FR4 /ؾ\>k8پ>IyYLߣ$>An <׈+Bpq&p]bIjSḵI0.؜ )r@U%`2cMA)\w .~vmZwV5]AS+Oy=ȩ7ǂ:w,>-"9Fܣw ْ3kb0p4k*q%Q\ ㅶT|^xw1# -҅ZˌN5@?cp3Aw{ qz=r'Փ:Q p\2*W ˢ¢v(f/b0`ȒbJfDO̥UOyIϘbY}a4Til*ٛ/eWU[FC5~3O~P"y=^V ]J mr?ez>|89H@gaʎ~ ._8v_l@##$@X-] u{4rvaYĎ>/W+4'OeO('ʫʋGrA3*om @"Vks͓XL.Y%q>lb񶅔Y*%&Ld9wCli={>aﵔXVn-8k_.6q <Žَhn6ײ9[/ˀÿ]NK5Piw+J4 $ Ħ@(9px4~M|2JZkoCs.9 LyL44CJ׊j,_[7C1jU#K!%U?j]B€Xl,K>n/Gj0;H a8_?K -ͱf5Wd,`Y- BҖ'P8)OxbWǟl,xԝ犮-;c`0V _^z뇏[v[`\~fWv/j0loyOA^$914ĝ"3ْ 쬈"gL)!ජ"Sa!]l"n:p;r+DG7W_`VkJ> LLe?X͚y.SOqo}okm*NLҦ$QYqgpT5C|z|uRgؖF_$% Ѹ]>B4CºAX:p| -e9Vk6˖~ '}=W7[=_C@(j5 #FBtZ]cI6ba NPd AaGAڲ)O;@gITl4.!qcPYdU?܄Jl)9O) YPU?#!\w_O7polMFm(QT%i^w-);pyGp"2('<U*_bgV$eC_;s-*'Yi2@2/ȤHJV§ţV:OB|5-gA&JC \B ?li qX`K0DѪz'(mC{g>EVRl`*Bµpjը0b,XdC F!z3p?F kD4#OM3+T&xѭef4sa9͔ec32 GvKQQTJԙ%\ZDoeݚ pX{PLJ-2|@;dRت> ͚~xt#3B=ya&B(CASz^,7M;)nY@ \ܖ"dhW-ʏOx/9ul⋃;quB;UC;{3v^z$*Λ)KCD1>c8쳝Y#ē hCt*KFs⍬ägBfdú1db/5*?n Smi@xώA "_DxW:%C._\'Oq$U0+C>Ő}uKjO4]C0Ie.RփS?C|Rd4( `[#Bڍ8Lh@?i[@icwq$-!7pye_;:C7'!؃ԍ++:[/i;k#;q@Յw5Vsfhw߲E ewh arLXLuE1A*vM+9KXqRrk2iwμ@vKBVHZ BX)jJ$0Q+VVZq`I# ZYb%H{^uƝ\\3vN0<\`KcVo*z>i WvҦ:vj['۶]ߵ`jxjӧ/UiH)jv=L!;|v(PK7_4rAb)G]M;«1ΕJz!|aaG¶<_zn_o|fC{s$E# wfPuH KȨ3Am v&EdaR_\  @\u ][glԝnK@?I?8B ֕QXTAXV+Jy $PT&LN'V U*TYUZbuT6 OD8? B`B|VI&1hC{?z; ; [_['Izb۩;ls65aןL d8^RW'A:ovoivjmYմ=%*4X5Uj$=_=$嗨/jn;E6'ouvYhi7;D+=^R0Z rq 9)וSD?u2PMnct\&eƬ I3<Á=Ń 2@H|e ;dC7=`,v6ĝϬ& _[S^b?'/Qh!$LF^KщH2> H2M hK tl6 iJTO/${'$a\.nbVՉ[C CPpD9U٢IzqIZHg4"2!yQ Tf?=2컫 ꀕT`Yu7p孫-IH~ =>qQ}3hZ:6DQ385nh]lN.{>@~=!{Og 7;֟=9X>"ݭE.C k (lѮ(W6X|Q _f)c<g y(EW/(nXPv=a^=_Z@$ϡI`. 傱HX TL(65bbbauzTO-xh`a; ̨T;?ehS'ZW`p0YFZ֒U5ܸK3TNwsdZ=M[0 q y2C@ eaT,lǮ5ÔW_͞lP@.68|{(Gʨ">$sz{k wwW R΍>uCֲ; &{CY >"-W_n[.BOguOPdݑ.Ma,yûM@@ *P[`(%20Jȇ T +盓LIgy`AZSHL0x>i3}o}nn (CbMFF-iNp0JbXhJ,`bū.\,%s\T|_I8 L$~b ҙuNM'Z'? ]")tZP4ڈbatCY==/1$C^q}p~֪Y1% b"XP)H YNMy" 0b1b?-|P_>V (3R~@{%N4u0;9fmK{=jѠ>᮰|{DY:fзt_E8oFݑSh6fWa:eL2f7AH%Q(r㺍;"_. BG׊ *%&0y[䁷motKf%q8NynHh_'yjSSCAIB{xg 1 Pu[}j`W lTOpA1s2w jF.wg |(`3DWQgftTP>@>WR$H 8BOӳ/9 ב_,*Yjڀl(Ȼ< ,,lc;2mYXR{aJ-Rv&?:0[,ZSc (*0i if- l7k, #!bv2aL2Ұ.P 'CH oD4P$z-Y EFw. |oxdkp2fC(V)>h\,^/ Me!hЪ"eq_Eq? SFXQ|N~6**7$6GqMFtӵ8<_YִR~m2BtX(Ta\ɔv%lOiN9PkCv B֫hp$e# Mq2&\< G<75#ɃwgX79~Dh|.FG.~m3;Fq}_|1% g0iFKdY> ׆e%GdǩI\g:N; ז,ʡM77uQ2y P!$818)$ybO)I4FMZ'@PBULhh+X.675:DOehG뉱ZGag 򻖪O1e;]F5"vg%$;0 bc(P{Nf'^]md,tv9bg{JDFMȏ!vZ[hwJ6Z?&F!lM 0|e|WgMAO TUK.g}?*[FZ0~ǡ40.gŃçFS\4FwVTmv~|ή,<Ѧ?y?]ݺzoTn)nj]n"Tu`T FR)+ (l+ͷ#\C|R< pWV9FkSpx͆m]xh |rOz0foOi6$|UXi4ʆq9zs1906{vܸ,.]>wƇ5=^U6 [sD uz[ߣ[V t>3\OO!]E嘾* ء{##=H3{p55FUdY[3F#p\(flaSEjc A>f<" n gF#SR+}SbcgC`^  S=oߛ\{l}p*"*W pTW$  VV /"Hx0EmMq`HҜ\5?c>~*:Ƌ zW <>8`O'>he>hߐNN|D[sM?W l]Gwe/ܹa[%TR1L[I_ԫ&:cu}{:v)6;׉Rg6f>\jڠ.+NV~cL~=jJFkw @fC+1u'jI^fc3i姩Jg2uph#izC@[$mz&#1#%`vn IJNBw x4e8X,)* 0Tu.f/d$c1))͛rLWDtPZOn1_0{[X?HSR1<+VɸX,Vyrhd1cL~MJȞos"ثIC|J t,u]I`X3V~ Åt:L0]\mn5 xNxH㍉ޞ?$CW? ޅ!m ` ʘs@u`reEۖdM˄7SޱH+n@|y~X mS}ueCۃ]Xfz΄v#-;/M>Y$GӰ7Ol * lxFt؍e=Wnpc抏FS\3s3DF|i 7ه:?O)sh%d.#sCR#2͝AedYt/Q##(rd(d/\~mSU dmҝ Xf *ᾎ$~ zXL(OWxBY B)iKg [Ѿ-j6'[l)sϼP9eZ)O"l'A^s4 s֯ fpc'2 K(;F]z);>~mSzoi 4=M5O-*p=C>v|y'z0ƌ )bPr&{h$Y00\'|˃FW9(@Pk~ :>V.11fpX<|zzB{!)Kf̓*Y)ᓻ͝^`7#j=FG9#NT( .~L^ڶ[hd6g'sxv!4uf`kѝ:?$ðPŖ0)^Tę/yZ5}@n1vـyB'u s^Mr]ceӌ[^:9!E'd:d}$^DZ,rCsGllQoقtlӣl֎)?oΫ WU]8X-a'&[3ܣ,ecgwE [D)#H$ -SSSRVI5P2UGT5rnbhq[b,Eu&:3 lF_j607EѼd.1,9$#CO pfr.|>>nm$Yd$= ;¯8P\LɃoݱJT)R.K},}wÑ|FhUÐEs"K㙆E}6%P&NbS @xHpJ蛏>ƛ?2cӕ_mE3$ЙVz\0W rAl[s'/|M7ftˤn+3q?y''#%K@:]DWTh\CS!, ā^_qm7~387{X*B~-^jJ ;p䊰&nϵ7n'MB?:tW$oca杷۷]\PCsյa[?y90 C`Uhpy@O2 w%!rǻ\m9Av,<[*AA20XP_D=b8qK AQP1ٳcek ,9;9K7^̌<l/L)qd&* SilmjAb eJ&Sm( J͌HP뤎#hM]D_`aƳ7($t!;БX~"y?X[%ҥ-m9⮪Ƹ"[37njIh MQS/YVM~14;~ؾM8˰n1l>x+~7&*Fڝ Sؑ>EHOn.u{J2%G¾bzP@n[_m3O7Fx/8`$PgjP0ِGLqJ V偔>: .t\ k%ʤ/iΘyqί6W}.)bQZfY20 qVe9gjZZZaAĵ-r8<^E.9E9bQasݵP0sх܏zx^!*P(7-a!63ŢVGgeѥ/7K*NK+عȞms}RȦ a-eϣ`+q,!Es3Xo?IUib]w+TLQueJO)vH\;9-"X@{ڼ"4A^@w!?m9;-rrCUS\rxLI[6 8޾Yrj7_~=f.*ZA!nU7yo*DT o Ǿ!F8plAAeW!hn!]AJzbyX!F>*c5X.ċ!β?k =h`0+,Pbŋ"ghSVi&؏ ٵYveZ8au2(," `wUoV<+Wݞz*E$0czHlfC{yB>xJQeQ/a4YqH=tڍuķ]34>oLY@f mɘ[Tx*+W!9"𾏔^CF?-TZS` މgOOfXQFȉSVĶ#6Y541  L8^.\=**LF>19ve#a 2Q!%$:H&R~bj|mC0uЁ:PH$wc|Be!41 sE=)K~,8˕M}}XIf Հ҂R(S>okΕ?!&bؓ 485gY!c Y\c#x*BpF'N!Vs^VKs(9Dlph#ʄ~g9C6S_ǐV=Ll9.r8Psnyo.I‹ :)lD^晢T%5ݒsjO3ba3o2q6oTkg&ߑr#ƠH\TqVzU02]T*JEqj ТN Q!LS3Îd\gK*BpRjk~;\`0 EP 򓙡iԤ/; y5s45h>tY%Am'r{qblx\OS~OIy,fWUDuLi:RANŇM j ,qGb1C cL bv GbM5(VCFn!In?3LXP:LDcG2\uݵݮ 9/x|= bUl[#keRPxnݻv×.\w9G 瓋xJ_D/=.yl(IkT?Wh#YHDzhC`H]*LxL*HPūqhrGA@ ߍZGN[)'I{ {]+dRSzI{7_]=Kk`ؾ d?KjT>y#}t-i0^V*zcGs#g7y}6…axE Z11l*dNPޭ7(2fX{O*rLns֣XDCI"xR#C8N( JJXKUddA* !Bm"Ơi=E3> mXksw VTk)=XK>}(~Ԁ'02# Iخ[2sÓB{ޛ{in8-ik }K@Xt5'{Gm|B]ͰCv Ve+L-+-2Yo}6ޮaݥ w2u?ύQ}Fg_ Y9gӥcfj ־ A`2[37Jm% !G|LY2̛8GpPRX:vJFKpV9;-8:ݒ] Sٳ</%jRpvT()+T?f.yi7$>*Ly@ a"7m8(杏:ʟ|Ҹtrqq*7IMa/(,)LM`,ZX脴Oyk#l\=,{*^*VyzU8)ʛ1*qՍy>hB̀BkuclaJq@Ozt@6zX_ojGGGG)GGGFQINSX򜧊N\=RZLp8L>񕗼vC2]v|#ԵK̂lIN6(ڞ :yA\X!zUO0Lgz?e P 8Լ91*z'r^5jCF%V\X5ӎs|P)F6HS"ۊku HaD* qJH~JDC^"80l.`}A̓ ߝ *6}e$YHJOrdlS>IC0sRg2  @VW^_e-ߋ }Kh%בf"̿:CQ2?cO!Eu<`Uizά'wώk|>qQS\|[x6l%CY~';Zq=[Gӆr:} &.}1>o-0 e:SЙkRHF;TX<9΀ =sT~Lym{KAA) A^LzFY;6Ԅm ǁٌƻa{֐7PN<)bz`၉/'*1݀t$ا 5+X̀ـ4L)eǬXlf_`>r{3#{b[u*v4@mOur\~'S| z]]l@oԍ͌0\H߹J0'6^7FuVzyF`W}PV9;-TaS on`jXv(p%*hbTC,-) r`M"j6Rg [ :& W*Tp-'x8 W˗zzA5z0cK2;N|VDƒ[D4VEY͍ f 29ҍT&"&TWRʧ)ժpvORwREaB!'3c].aR6s2{l[Z2ϼԥZb5-Ѫ>e7uLq?)<.X,~M+GCaVӫo bS@#|U9&f<}|m*x^[ȱ򰰹4PQ2,ѨAߐ1CX0DP0-%H%Kf󿬚:kCuz LC=X+~_r#d0rz(XX^ʼn10<22s <"NDV˹~4C,<(>gysL2ʰ Ԋ\K쟱>U(ʔ?˻mWJ~rUeB # V~ TzU!OY}Ʌ'sne&&W H™x]%)8wL:,fn-|c\_`A U vy>N$G_>S{Sqf,ĝ˱` g9a j a*,,A])x/h) Ν>_ʗYmvf_~qqYGÇ:ES(Ӽ MMb 1}y`X6)Ș 0Qp Dr%D&׋>?O{V_8|K dClb1#D5lL%ϻ~I4bڢcp۔_$14}+2;,u1! 86`*!}e%V L W۲KQ w'V#ֺ<V]vsWZ]u4~iSC]^\>jiaٰ݊r`ޔl@Ee""&o'_074Yfq!ƛG.U~LJ.#ydQ>dF /Ca.ɨlؠ6Bˢb9 8 og]7k>1o|3P7j{!=,9ѢNCB*!"{j⯠iwm_Fnc{{_>ayr΃6zI=QJ:yk2s/`{."X͖nAFA ٵpQdx#Ekp(2o9)Df\kQ̙ qtF@닿wTUv~jQ)xliW4i@u:-{.* /::y',ĊoI}Vf@y"D fh~w+D't7vgod>l&-骹ԩj9eocr71O%SQ7ASN{B%2r-k>-f]k#M ;wL ܪ͔"Gβuҍp^0ː`MXhƙ-lX%J+7ŋɸ-TaR~v_ikLw=q(c+,[Oo ڕ 1Q7z~Ɵ{NBcu_ c"kAcsf ݛiq Tw*弉MhA^I 8r颓?Ap9o՝7B'ts8iz/P`, ȱDa*0aL0f1APDl6YIv\X2$9uE;WNx+iO 1TϬmŤC=ٷ:;:ns͌4tLR*Tr]JS ~݄ A&]-X "<4ƃж&/^` ]5UU=~Oˀ#*Q >p)DuȆ_'quwJdC C"c _q̓úk|)VscFDY“^a{D!R2h/[!xevcıfO=k?7T 7|O|ʽcFUv)0e9 sӨ}/LA<{ݨzp~nCCAa@I)#)>+Dr֕T3YH m <{ D:0-m(\3~T_ݙT>>P:ʝ&!dmu]!}M__|=AxT*`G ',^B1`0'eV`Ɵ3ݡT'p\'Ei`!x: (U݂6ΪveDG]1i)bxE0-.BW7Lfu:nh<`•744c\X9[փ^?hN-{οj|l8Ֆ~\GXS4rrb;sJj{FR?"(j0D5&r;70ﻅpaŻHbW=5r?Ow! ; fSgLlNInSw'_ȏ-64~nH?&_ pLe 5W8Pnfx>;M:D| Ͻ<AݐflD(8. p2<6jY VoKBз!k[hHM u[>iɷ)0s5q.*HDsiH`tw4P(G -:v>aݡ*{*TDIcǁe͚[fo2@ Q8EӄrEZ)0L? Vє ~i5`5i\E=CvnJ3kbC`s֦eΘL/ggM$a9cJ:}uc,@Nܺ{NrVEh^D4<^L5n)aM>\IUWpk)8G1xoadQ~1u\ YdjyPƕz -r#w~ǪSZ[ bJgvۀ>| ӆV4!E!_R/^/`A444*,z! LI@B3 =NmgJ[&͛LC!- ^ׯ^m=mMoc2(/8قtvWŠR𶞅T 8 n6jܔwPr21дpIH5=ݑ̸xL_Oy2 5^F.90Ǚ{>vvW=665bjI.^ kvd-h"TV}Wꇻ;)~QIHOy Q~rXcōŎ.+e~Se}1? ;vtSj־8vX6z aLpK U«|߾SՇ(EޱHURXī$,aB" 1% qfI1̀@Q9X8$Qͅ]<Ù.V9) qP( euPzVHч@}ݕvl u' -ueA;૒{|QHft9_ᩌ9|>Ǥ,wSҎuB=E3G 8/`1 @D2P!U@6fœP"~ْž+ty[-5&ćt(Sq cvf^& y>/ C{l oFW*U׼99sR$%\uIR$,WaaabXiDbJ*9]D"P$)Y\YFnp=sM4cPF7Ư3p bRfSZJ5fR IvYD~ $ɛX_8,>cmnzx[Vܾ#WkPҟ(cBe12jy1#ϒ#]0ץJ` 2eB"y^YHߌ2ϻW/s}J5L5 cZB!T R AVTokj)OiЭHܦXD啮ω9UWҾ~3@3sfy"+C26lj-08 raNVy;9rֿ7}>v* |9Q(Q qOh䑤[ߴ `~NjJlqxF6_n>/*\%'%5\HL\0-j`H.` 0` 5*i,#7!} v3k(m3,p^e\a$}HN WA0r~`%=&䉭M?@Bxiێ5(τ~p`n{pSGyfɠ3*2Ua+V#2*tMXLjX#Zsg2C⨸g iDy ZEc W>YKt@$0Z$O*qKy!v w$oV1+7="V0 QCԩIJbMW%h@`&@v;Wd`y![FTõRR)", qV0B pbdOVL:vnadY_}| _NU<7uңM=ϦR홄:Lz* Y]9j4JO瀥cbWBT`\x%}Yb!j;(saū=´)#5%,c;/5QPTw\"Xtz_U~6@A_ܻ٘|=BYi\X*[̓V 53yYvIg4T$zF-bǖbQ̲}G F") O1LV5]C į`YUܟIWr"g7e+!=v b_d9yn ߵVf 5Zwb# g+r_L:#OwBx9)2[ 푤cOV." qQv^UB;+1(ng~7%Utr=1dPs.x(Z2tC2̿6ɓɰ|A'Pco$$hh ք* }A,glbVt?S|;|k0̋m"meq]l"[NbS6 TTVLDXUUei^K0Ru\ey{;ݼ QJtTSq;4Q;a1wazWP4p_(Q ^s qA6:ڧ 8(ܱ (h ^]뢒p¹yi@Mn`HW40uc_ C*2W@ ,N5؇PߌĘl8ڽ²о*nv%냍?g#N 8zGH׾'0ljs?o32-Y u;ݑ 2;9@k;Q;H޲ke]gӒ"zaAUMA{z)z X ^;<>{tć>k7C"XⰭU2YPNh*\0@.\).') ׯ` JH6Ku@aH߇*'èm=⁩~2IfK 賅C5Q }:QHsDhI'/4p8}F;6r$8<( .J@䕘PE4T~lGHeH2;ʌ$Iup-u댜tU=(j ;7~c=6BNfLnlq;_la@H k B{^2F±=f#xP5 ']<@뷋P1)Nq>cw9#lh ? Daެ9 ?:肈BHza:u\8VbP/j ŅaƗ[џ?Hy qjW?R ķ ~g .Yf^m^Xy{|޷S'oL`^W<`"n=)ͳcOK\MX|(`zBfCX;_E3b&Gq</"#g:]_Ծqg|$8:Ev|ߨu;oNR[6Faٶ4f& 潽Fdn+|b3fE@6zñS|`.iG> Y_\z1Ȝ+#)" UY}eqbH;zf}s `7"\\,k-{ pv9$(Ջ09w ] a>-S!Z ЈVGK7g` vYֶdjJ8aEF6t2 d"z#dBypZ)ZP\/^u ]I`~Jp#'d^MYILׇDDi=9x\N9 =edo8Ef@h P z_x9jZVpz9f4X3{m09@[ ҈2f dȵ;PA.ׯ:_4t}lb~UDXWo*4cO(YyɒqEK;!#Gf8q\!~8{| ng<]BV;d !]g(P@d&#jIY9嶚N]Bi? y^,EU XJX3 Uԋkv801SPf_$ӚoO`_> al2ȗsnNڶ RQf~ƻs*w78'\jW3͐P ];17("TNɴu `<5'Ѐ>#OcHg7e{GDb_AwX؋ ,WVmn+Oy[}ۜa0`Ph"Dͭb*'}xqv rz||>"p 6ErUQ%U1pr77G:2K+ݐ9{tfUj>M)N*FK>91ʌE R+*↨*|UXJq+[+F+PtN1ulyD>LibV<]כrg8 sHK2j,EE,5m1F_P{ 8.ׄ\")q.GA> J6x >V!&a? ŘdzoB3dFΤP̋2JVPtW}uB$G8}zCv 9Knkj\iR̉1h\s7}_c,OCNW mMY *]ѼN|{2žVy>J6~_pvr10c/LYI|u@l>}ȍG`! &T^t Z٭^/ ׯ^/t!ƕUYD$&{U*VpD+Y-.]>{_nvWy. (MϚ|`mɈ1@Df;# d/fi4XakDq;,|{"J;##;RzO֊`[gZG u$+Ut GKnx OAVdljvzi//]w!xÊT+ *TETĊ, f3gH@  JmVO 19hnK Y4Bſtca@]jeK7LUuȋ6$Fu?c<^9rw_uZ$#6ȯ  b2?yX3_߃qvkۘgZ ʂ̭C kAU ǓF{fO>_e?礆]ok`o{dp38_gj1'uCOO ]8>qU ͅCS/՟Rq ! \(D_B0Wy_X ^d;lkK|aM?L%PMNJW ^bJ/P e P(1PP؛EGo+iAm@ aSC>@v--|YqR6W#4pګoql׷ؠ3-X} ؍ħZ}AKޏ*_PPjSwL5?yk.e9Ӱ@4$^m}:QU:Z0xeD 0-NHz9'8<7;DkZͰ nJS>?*rsf=i~^6s5*!'6!zjQe8 1*1Qnw}~lb".򰬬1sJ|~+Ta9'^.js9:>O>[gn3Tob{|pY,8n `OΈ|,$/9/k=]?;{t}lױ}IXXGlAtDAaW:Z^*=^> }o7=sӷp@^8@AZ.v;kE[k\ۥ]杖Rܺl鹻ncg;''CCvtwBpa(H[ unM]7'[r^<}g\s7ν\]wxl@g/.;]3g:۸7ft7E ;.wg#6Kskuu;c:kݻwz z@@s@׷wsk\܍u˶ܷTwv4rnܹmtNw{ԭκ-ڋf۝{=nr].1ɝܣ#;w.nf+v[knZyw {w˦q;nvm]]{ԋ6nG;.ɹ799kO^w{n]n7N3sn:\:-]1æNm[qununG;\]\\ήw'];v]I0L0 2aidOA& 4&L#0#4b4h`M4 h(44bai L04M M444h4Ɉa0L4M4ɦF MQ0@0&#i1 a L4d<2@jbOPI6LhHOQ#LCFm 6P@ijih HS4S =AiB @LLLL &M hhИ =шa2JD bC@ &0K;? P{W8ަ9Mvq>ސ?m,t8^_=d@ UT@!@!@!@!@!!@!@!@!@!@@!!!@!@!B!@@@@!!@B@@@!@@!@!!!@!@@!!@!@!@!!@!@!@!@!!!@!@@!!@!@!!@!@!!@BB!@!@!@!!B@!!@!@!!!!!@!!@!@!@!!@!@!@@!@!@!@!@@!@!@B@!@!@!@!!@@!@@!@@!@@!!@!@!@@!@!!@!@!@!@!!!@!@!@!!!@!@!B@!@@!B@!!!!BB!!@!!!!@!!!@@!@!@!@!!@!@!@@@!!@@!@!@!@!@@!!!@!@!!!@!!@B@!@!@!!@!@@@@!@!@!!ٙ$ʆJ :=A-ATCEA M B$NRd9M^Vuɺ1Ag>]QeZX??ec!E{Y;z;^ SvNP_]LBvav0j Rָ+EZS,ρf2˶lP9#OX{N{ ?o1;9?QC m@Ccvii}HAeaV>ԅ; Y*)$QCQE. g]x㳭4/(rl0LHE&z)Wvt#}$ ߫٣no=?j$'I﾿#lGXt"G͈iE`5uOc{."Ts۬j8l38ʃ3lm6 2oYR+fj& R!t},zذQqF}6he \66Ha4)tkHzH7-7ϻIZS Ӽ.E{_ϔ變_ CsY{iI|a2qػteI}a(+z/0,.ڲsɒ@_qrZ׻@}e)'4Y&+QW3 ?"VrƝ]s$&M!/GH&ѯlnr-Oª":|KS{L ̾v:j^?{[jɿa}!' !+O-L(dK[T{* :/p;!8 uホG0)ҩ`bdǓcȉY!rKֺ08^vkNj |I?"&:&s[]+rcd@ZmpUUkx6䪯? A3zﳢ#Z׳<&&Rcx^fA 5Ԙ7 vz< .E,_/0ՊUb*|_҃Kb286;dݽu11sw~잵?ba" St{۸ ꏃ}w1=JħZ_e+A !eG5Mj.[22˄@f:KN,ۀ,ަb=Q7jx 7c2 x*7~;#c by^ mŽh1F[h_Y3QBF ABk~*tfoB,H=mpi6~@ AP|bKa4` yO'6XIrCVآ~3: 0XJ>PSsi):WXYF-=V2 :9r<>mQ Hw { +6)O臉vdNC[ʼEw6beọٯ^t"6wBkG!}6yVo'kN֒}9j^ l}c'?z t ^3=̑h6C9I)+?CԼO96I>)NlM+d__sa9ձ`/KN<;zCP{;V~-?tL qi&A0&gp:ɨݥTSm^q3z'Fb>O4}U o>mr폈o9ͭ+m]Sֿ AՂL+3,6_& x|ׁ(> L+mabY*S?oLW$e'0sQW-ɦW |%q[ ٦<}3Cb!7#~ ߇aX:I"\16F{s #Hi~"wg aCۍmŋK b/z6~ȭdJݬu[h>'vhxy_uj\h\7&oqx? *O ̸2_n?K@kvM΅_G/׌ƛ fQ SUE ȴKh"=A5]uvױliï׭~mSRHr|%An΢/Zړ,Wat|3Lnzq~ߩLq̏gVb &1x ]KX|t߇>c`WZ`.ɼ^r}RՑ:e=_ \u ϙ]#O+GMhԏ&|v_Pًq"N@53hBlo=01-x u!*m}Ff+=WGu[>nţy?J-q Doq}TlG&6=mF;(³ G5mqd;4$1kY}A'*Ik[rsY`I|^7VGJKS*L[l>FV3i?}:rH&OC׾gC,RHQGc#h*{U.4jNvk dvSbJ!Tn>k?58_;gX'plzL"5y&tGfp8"qO\EZ xl]e(& n[!U )dʪDcq;{j&1!~:.8`Kg4O v'?| cU*d`{U-P`;<}e mfB EJg{|/[Z<'^HRv4deͪYn"RdyU} .f%8vV^9~(Ȋ e/g{4yc@2p=pr&1X'3BH dqZ>~(РSp\V o>u&*@}|{*4o9;F|y n.MvmLp=/ws2Pxޢq:{,Z?H-&.6i߻=Щ1^ MTʤ'>Gzi7Cn ɾ}/C8VU3zk^~ށނݫz8 32pߟklj?%hFspN8_%$Ωæz' 6yތWf_C9"+pozG yܙKU0;@gE[CqWw7u-X1嶡 !@}>eq;o/rrX6C9#bѺUvY_W#fWqObI~;۴H1XH@ \Sd .asFE2+̡mu??uGbF꿣W yxVϲK'9=|^}p a_cF~3QcGyJ՞2&{%wɏc %J؏N.Vn 8豭 VLC^9W-%=K-?V9m4ᓬ!ˏ9vNgHj\:'? WWZ-9h,#ig:6Pr nz_47QS\e.#癯}Z%DwV==,54QY7UU?RH4vV 76bI衧uս6&Du1vf}6pbqF^$02kos:=M;ڗ,Y٠XN@۲:BcED_Ejz[S*cߣ<\JD}wjc348V峊c3U/:ME+B0&uXc*:C Т \Jjb~X=aeu,>wwq?/g,Wo6EdS wIW IoAs9>mk-YE>UPc˴׍ώfmѦ(}O eKi8ʵƾ'èœϥV=utk`Ü2pĀ>wiyu?U&82Z3O8BuYT :RMEjn)c|S4o|l`J{\ve0([>}}>^|.B~v]2o2r8B$DKAݵ~u}"(L]ft,R}\j5 oyƋоטm}ӯԐ߆`Xzpcwu{o?] h`K(b}'hy=^\>8P4SVGS뷐sNhS˺#qmf &-ClcNiڨyvmn:R6݈  _2G!ۋ Yw N(et Uj2a.QJ\ 1v>k.'1-^;s` pL}nNMVb] I}/-%[fI$@oCٮdl~p)5%LlEFboT4g*kq|,wwռ9 _VLIjcz!-my"xղk0-O C )߰L ТQ;əW4}7f۪b?cCƺ?(q*n+?V4i&\MAߋsOox"̊wKi\z\鮷{ 9'ԂVI-ƧX$yjf ;ZEwsL{~q:޹Og298 ÌY lx>vL<8X7CafvSOS݂c%gzY=0td v[rjqm2j$U's=y:IQߟy*p^;@hJΔZEcVzyG䢯_h,dEş-=o7't 5CKm1剜F{O?ss"Ԓ 2,H>!z7 T+T8*W>ɵ7ꜽcnGC=O4yu2|O)6[y[\Nwb|B̮$?\a4K]UMw%ߑ`PXI;-l =!_b KӲ$²,"ռ\?'^Z1\vZ><)h׍ ] TJ߯w0+Sx8AeaubXYȯ반NLZ5杊V1 ©w lΗ)op‘%!g7!yD_QƜ-vp_IU~Uc29_ƜOg7Y4|D쯿a.B| K&6p+Ju=1acMJȅ^D$ N_44_;9dֶ:faWOSCFjWK8|єU# AT>nUR6`D|QY1H ]7:1|oa߳ U-\XPwEvHd-KYv;!J6F0RAApK%>I8%j}ƵJ(>+3Lj W&m^G[;gG5}V3BZf[RV` هǵ2Juis^:tp*!+W]ՍxO.<6ӝG\~w4QfxHN N{I tZ5޶N>Daay+K ;F產ȢcbYFRqeEGQOwh~|<~cgm8{5y}9vK ǁe3ZI؃AtRyhVǡD;grgfwiC2o5nCqw,mQ\6* <@mW6}4n]iB 7}?E  >mVO^N|B pPoV_o_Fl o~b8r ѵ~^g \l?F:wOF^uScn|oX)-p M 6Q~I^\v=K*>2z|T)4EelSԎ}n{Ղh@431)0,W՟l*Q)D+)zwv `\_%VGhU9A$s-mDVN9W''g ܡ#PCR|6)9_kgb-w?׮qτ,:/,l<%;˨XL\͏(򚤖3)B^h0K(zǯ <}^|K+2U5wq V)綗oSU`5ujd-_͢?+=Aߖ@@} `>\Ye J)cƇK03pCikHw)Ӌr\[И9PUPPv "@U}A( TN9APGlH}*I|7]Nh&gn|/PX?T'k=Khy'nyfMgB-g_uQSUwi7qT7NNCp"Ӌ/K g P Z¬ǡ5ZO !]]]l/q[JL ٕK,k˳95Ocנv5\1]jaʧej%q9EYzd8~WŠ8AɠH9wi]= FXJy)툁4sx빙fJUҰ=pSP[PөpB7J~ B6~5ŃYƎ&=3oI!-I/Wƙ;z-hr3M~N1Lل u}4C|+1t,,oFfZ&8TWy*;OEV!IݔBuTWπ1w67>,d],8l>K;0jl+LSV VwghS=+鯗'  Qqrq{4$*Xߴ~;ӷ*MBz<"tx\I*>&[G[3J OH4?8&^!UL&F^ѪV,ky}[o>10;2UoYkw^8~SoD;? ښ/S~8}FYrCt ݷޣ[A2IFN2.mGg~˱>4%x5d2uWe>1K$PI1:7;tdvioBG'47{S=ӈw<)_a P5|i= kn8sC4wB wpݾү[[eGN[[nD6=3AL;' ,p/8_&?`6r_OZakзFb4,x\3Epi ~g[ v{+|}񄍶`hHaqm ÅoC༬ ?&3v7}؂if盪y+k ;ܰ'!}>+AcdĀ5Cz[vFEn*GM$Ńu 7y¾OA=4:Z]hZ}>j_Xi3EFuZo#ˁ.O-1O]Mhz-}7]۱ޜd)SVfk5 #d\wx7*U~NlΣjcmVΕ̫jLq+_Mbd7mݨR?J Lz̔ZgDy@1$q|+ k7Ak}bb\-p i'N lsi= 8o=MzʞG~ lnO+e\(* :MΚZn_^cG ߮9K4\FfiYU \A3n}(ki[By4O5QRBTvP4dcECճD]Cij߿DJ= uT!TŒGG9d>k&h;tY&Uˌo5oGsϵ82"V2jInOc ێ%7 V?Py V\l.0b?x:l߷ooח?_2[eL=CD-wxߎ?Zv'T-6sGV){Q7g\YtT]s(qmh|O[E{ 2|۷&=k  yrp1+&LcpXo-[VO֩qۉ.tF 2{6&A4;̯])H/?_Tpݒ$n>wznJ "Z_~|ʃib݃]T>{x1FUc=GvVQ ` Fۦ[?2D@ R߶%@B-xrXn3,2CF<dц߼ĿEc۠T[Bk7\5p)z7=( 5 6%WΓ \:1Vy%yzOr7nnmQ)~N^:ifEpn">rqCp*p9vW1Q5`}+<y%0}6h(g~Qnw&xvfOƋdOvݪ7k8>Fz M?3ޟ}Mu4z1x=o{T STc^v+ZS@rnr8+n];yw׼X ә7o]Ӵ Y 9~g?4)N_Iycdl^2<}1ѵ؜7 تcZkz36JL8)kYW!^V6^^0bHs=<Ÿ!l[f_hqWggٴA fJU$R QEEqLo/ToP{H>[{L}ԺT=ڡFׯ%%V%{ܺx\ a\1~0b g}ٟ,^^~#8j/?YCN_ӡRmWQOJx?8Aau+a`-@4o,:' 3βRWgoiGsKϋ6\i{ )S|?*]|]  O^'&_\>S Xr=`}ImCaL}|J4V‘ct^:&?`Bp3N?g£=&ʘØ{ɛHm(t|jq{?K[_\x;˯W B=nD%G ,v9gEdf~O\E$*s# _[{َ1 ӯu СQ?, kj;ܬ" ]Ԝ):!ʂ3SJVNjV hxnn-˭筹g賢rZX,X;BS;KUeIrc%lE\9Xku1,PRK"w,۩]9[L(9`W%RX\j*M t]UٜWȂ:j(QʒU'VT6oRۚz[wKVґ3z.N{x)թ\j+sꝺTaծt@*/v{\Qe*yJUMlR{K7n6n+#m'rzH 'V [72AWPJDUuX'E*RUA)P(R:|˜t)V޳ Q97sSUW[j(X!rʖXbm̙~zWYX\O\=[[C-]*լTas혋N).\w˞6KQ>lJUN-[}tԾяn8YCѥ `1mT<ơrӮRR'}2,DžO *㊊~8;5eu@,P RbŹy\\_ekU?MKleQٹbEGeiZ+\r)Rm*DN\v# 鵴ﮢa+fΧ.gKKRjVX]8kudmWeI:wZ'6D'X'NJIU^e_aS泻LD]TDV ah3eЭZjӮPٝZbvZh*d|}$~d>fԍ8]ҤRi\;]yܭ;s.h&]Ah֭UWKNG*"Kʞۍ~6Eem>WvE}N*KVTr'zu):+gVV:am<[nS*%IJNB1uY4ih.4)H>t<54T\@!E}f2* K`@iAH(@U $B%Q *0b#;ӎtLQfAA9c22l()cpa@U%sff‚3PGj Jq!.@y=I.8CEj PF_a4[AU@1S c3xr*]J F;rΖPPF3M=nSq̠>LA1Old1c`61i\c 1PűA8%.sv\JF!,BwB3&PR*P?&PD* 4%i(( cVU=܎ p@463P&RH (4L%1"P*f q () (@&ġCHUq RU2xs;)TǛQ˷Tw3OٓE)1PS EGJvwf(OS'rɢ^0?> S2={8HJٸG!0--@\I 14n^`$ihN|0LIC11+BAQB9f&xt㓄4%O=dȈqӂ?,)?ٱU0JD6aY$*h "%x7 N\@uiZy|n*C|/$pXߌ6Hlb#ԒӈYI qyC L`H"$ Im U!qMxW<p@rqmë " if_9T@fPFM9Q UČUQ+8DA@uđ%%'*0Oƃ`(#*F ƑP)g.:g ق?/f$sCGDDMr3H@#I@wiHJТ&39s&1hA K̶aISICA3 b88=$W ijhԸ^b ɱ?#.g*C<&D$O`&WI5DIA#,Kp"6)zbjL8*$LPJpA.D.A=1 S vu~/rݝ|[;uƑ?SA@ G|!t\C[UтގB ɣTY?!} :X.&k] 4z1ٲZ$dxU,+iZprP7@ 7L{4U0cOfmMif^[pc/Q##1,IAZNp~uiͫF'c _&[%0Wv1%]>&hiqƲ''r BJ鵋ObJ!ND !O:6Z'dI!ȣuմXE4'*.:tC0zNj.MZa[U*gՅz\@Kj|LXq2^6)"iyj[M=p9n^a q:'~/׋93״W)hyFP$ƭ^ cS,b *Thb#1C*q 'zٸ\ +)M (ZxñvSmҥ+23Hz8 jPTVVr#NMS0H3Kͨpשz  +³L[: cFz;QVƯg=."k%5/mOa7CZPjש(8c2ꢚ 3DˑA? DXq-9ꚨ4{ijJ!+f_i4nRD›)+ Sn,їUR!YٔL] fD>]K0 AdoN݋ai/$|lնi5? tCGu~`|vv1vq3F Rx}'T6FϏV\8Z}=|zك6)/,!ɣY |F/Hbũj͘,X"thѩb7![Frcu)TJ[#%D`'C }Tׅ,qPPhmZD_,y< Bj~b@OT2 !M[PVlG-oUU~PT|DSVgg'B9x){3,7\*qh$RPqeQU/OY\]^3KV#zբ>*~hR_OtxUJSkFSaF隧 SM"ΩU :eN!`3>*II3GQvAG8FĢ)r&Ñ]22 5LY/ +ڠ 'Jh{ ƻU XhBaD43Erq-Օ'ϖd Yz^.D͖?5t7+o2yKہ> >WfŁQ88\*P8ꠍ.&I&ϥS"ϙc d"`ꐧ+; Bg Q~ZHoBY^pE2s /yHS jV=;iH૛XxrM1 bI^T ?ѻFq z.lx3t^({~lok濏;ٲGֹşmV͟ewZ}v/X_GYժ>k?wI|?җ*[ Q>Eۼ|s.yۼ˾wy 'wwːww$.z{7y|-yg||U˲wϻv]n|C͢?xsQаpoNSMr[xTRJ;;;55565JI3nd7=UzjjX*:>eqrYk5fY5zf{Y5TiXru\mvyxՙSt4\ b\dK f-c̩[j(My)ʶ┮3}N\&|C]fj]Xvʼ$IΣ+2(>+\w;LRM+ŝtB}st%2P@ q+oᩆ&­)?ߪVLu]bV^Zx}4WXyo݂! XX uמCȶ?c,}=*i Oֺ$?VR*4R ,3d2c\ϗE<à0d9%+Vbs ~rCy@.?a0k\@I PuUR<}b aUFrLA0̮Gsѡ͂8,B x/2Lc:~ObWSìTqU}3tttv%ΓN sM@t:ܺZ:}>rn.JL*'JN7|]~tt;\EI;囚;QP9S2; ;/R*oE?=;9䖖mjiiigda_RRRt`9ɩ*XZHJJH,ow$ Ô O;`8Sb;~7-r!ZKW)|TO[ " _Pn'X{nVnűl@ES&,cO'Ϝi@gFGIEe\ n&q,^a|ڜA7pte' H& Xz|Wo.v 6*7jaDOX9Ňr81f,їȊkr0)6Gj6KQc-zkM\$ $"С_)<{T(~(Tׅݽu He.0q&pq[$}[jdxL-K=,k,)+`>cpv?[E&$(,]ESȵ<R+uL@Tn!bkvS]ACpoBe* PjqT؛V qViGYcoщVZtӼ˅#{Լ\}6ڮ'hrըbNƫ@ W㧛wmLYGR+EX8Nc%zl^ÁĹ8A&YOA[./no"¦|WK+v-wcS:`ODep;35LwBvȾnMtf{U>C>܎}eiBZ4g\:,z+;K#"tw}Ӽ ^ҘLKJqRZ >*tKù1\Y33Vfk6hHaѣwEZ/[s~Sg$>tGEp5ٚd^)#eLs9x3 .s9M{>38 j5W9߮l-+Jy)KDq}nọ̈̄vbQy5 橜yWmS俉o0z PGIc#UX^'O> =ݬrLV0>Of=rx@+RN> 9p;dաQPk)BV|.4H{&qHO@QV闭A=:X25a2[vWMTp7Z /|L8rUȖַ[[[[N$bؙC,z|jZ'B՛T@b~R]RMlzY}P2ĹoViVb; LG$`-Z\аjl+-(̬Wr ȟ:_a#s 'ۿF3g/v臷6u6bahd2ы!f^λ2EQ[Td+-DEo=[YMZ;7o+8޹Zx ܮ&?'Ud#֒ਣE.ntR !k4bQ,rv=ܟ.q߃oWҜL6Mi,n\\ֿX!P¡n6v_XA;cXzpmF92Z4ʏVK2?vg&r9S{2 iHG]=\v5YZ -mkkR캹/'L 8J b+)b-|xG{Le(߇yk$6^Do?輫!\?m~Qd\l\dN]0_ʆY|ՙ?!4:4i@>WNNUL#WA7#q +5O!0)^ϰ~-)9 ŝi*z';]䘷lW%Ea*k7L΁~ө>ܿ ,eܝO?7^7|̕@amX?9!Oy*%Ƭbh|EN¶m_BB~rzدmӸU(&.\'v}2-OG{eqp_Lg:]`+"YPsp[$oRgiӈҹr˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\rB_+.>]-7S)׾~Uc є5jI셈 e?B-arW#p\Pk;RWWO%iUu 0}Y-_6M u悔:˛CɢtXԡ}zjM/:?ܠGdPGg|(dC}.''tF)ҹd)Cd*uUԋzt5[o݁Y~TԢj5.=QuTmVgǪx_c,r=xuECMOֈ8ST˧kgLzSs=ߛO-~o+'QT^ '3(,{ ޳x}젥<1W.Np2%ћ35+(㧵vo]>?} ~Qͩ읳*ԀJ@=`Yf 7@ş޶|5=({^hhksc Sit8 Iw:!Kxox ”4V 0V|Z$EZ9V~7/MwTGiziKr%*n[&I d*Z>\@̢xjQs@'FL&ӂ#i4Jz**rb*"dU\OB:S+σu#Fl݌Dḅ4[wi8\0~Xdb\eK0q:l),a.`"---'-ˋEw>Gg >HVW"?:8`V%hΐܡXW_t9Jg4t輧$Rx\%>0qLO ҧ Bѕo)60ۏ✫׈Qbd ADwNp;cT~bM/{ yG ITuʘo'w92Q½4a y2+`HeY\SgO,+;V_U-cɺ`Qg9k( ME̎/Td9a6[_&{ʟ܋ٹ4G,¾赗|\|3E=3wTF*DKqN0YjGkQ`C;şa.X`0qV!` `x,\he: |ٝQ٘MnX\KM@8&Y3w]ϣ!1R8?:<'`2؎H#ag,Ks|c5b p>!wլ¬ͩuom HH)jL2gb:!Ax.]*D\M .ZB*8jr¶|dt7n>JR5WBzCRe\ܬxc=IxQ ౐Q~,~ x.-A3FiCwz]Ԑ+}zcYEgSbΦJIN-u$p~8]@fO2ӄ2W2V|h˻&"_0bqiz(=xvH!MO$XT0G.By[qH gnҷ+pK)OB 1tU~A|U\eAʩA:.UmxQUt#WuYW A<{>a@$)6rȕ"^*vy/7Yfq$_kK,$ׁG<~wh k R,jS`ɋN$%̤nlגc):~j>5~'[DNwɌ=DP bvp3gm'|Gbo '<(.xя@m~3K~81)}:?s? P;H#M^)y)^M~OvʅRДKU@_7<^fR@ 861'ng>a tY+rCU7:bܱVbiN@.cm,sۙO MMG,GQYF8$B9?OgC r:ٷQ}UpMr^ 1؟].Ի^ x$/!E5[ER;Һ'Ȣ9O iWa{Us!ݩWa.El@kEì q*Ђܫ*qEgzG_K\5C'&OvXWO *-r|IEj(]LJY,+x1KqZwU"kq6_ӞgxBqBMRFdsGmxk:@:GIbX_#\6~E4r3ܽ|7 euͯPGPU9>Ol{Z߆\gjaD17^W\vF@~:=YpB_R ~I/V^K&bY5{.\uY7#>7U(t$*"1>D9)-4Ep>qy iF!E0,swX7)u ^c,܄=5jrIRpI\G20GOؑLwchToV@Pot乡3G9 eCDFb󤮄Ѝم秠h, Hh E9!*ւ1 צF0ﵢ![xc {r) .\A.zۧ|9ש̊R%w8 ŠO&dBg4x(ʴld73.zd Tk2iG)sڏ#_A:dJE[,j.Qr2V~-M VE3V!ReKʋ0g{O؀(ȼvS˰dC"o!Ul!:Ɲٝ%bSF!BBuQX{uĒ!qU mgȴ!P\odL$JQ0K# &q؂71sF1ٲsO#t;37~NR6< >Gk{P݁GdCj 6G7{?VZg ٛ9 ,_, +`%I> b\%tZknK]z둝uulT˔r\q-*6:}v=[L.>dϖii\Z1l1 xCaVUJZSx H/aUݴV$QH؎Yd~A[rGH<< D||kkɊ5SIA%8?2O2|waTߎ ^;46plΖٍiI=‰w&TZ"bQ*]J`[vQѦyW♾5jؿ]&94%&93N)z+_=+-51Y O?Xp|CR6)6ܝSs$o6A N4dprl/4ݖ,_戜O^;hpD633Lfp{MOFiabY>x6àc ܆ZWKe>?.ȐNY=d>26F/Cl?>^\kM.ьsh~bBGX5hRWމN ;j S$yeD+֩޽JcGϚ!Ɇ7&ʚ@єƈS-ވalE 0pØk0^a*u"6T.ک%\RhP B*v dvVHdS.a$XP;3NYN^K\#~xdI}y25RWL j99= q. tMJr;s-lhe)pwǰ/_$AQ,{m ظΣ xY9MW0L{b/: v/NYd9S 9OsпWyfYe\%|6}y#@" |B@E*3NKB`nweӠaD`x%8@dL c3Z@\GAx@$QZ&ASG8Xc{SI]uS>A]ꗧ{br]‡^ݥtP-:("{P`]גWԱ. "o\jY2}p&h<¶L#=+&2LKQ%Nh&͍]DLL.8!N֓fLOLnt紬事S.1~Gmtu7YeD"rE-P Isv0]vRЗ޷\Pb}grNp"K4r I9X!A16չOMVLJW7?.y5jhe2{U-g9&gUldȘoq%[s%&DYi|27Az%;Ne%@. AAuWmNQ)^ dS T8,Rw[VxRgO"^+!U5D8TB~"oB"y\O"y.^f?woDx6\ Crn}Ca@P<63'?4&Vrծg]4\EGp 9@}v }ܮ]b)P ޒ!ctWhVT >WG=]6ԲU$sK.3찘[-kf}Ld[;ؖ^=L+XutݵLTTu!U3p(hU1խ_"b(:AT%H0A@L{{əFy!GrΙ'ZCp4TUtSx6un& =3UU1՛ܢ+l?|55ES}TC]TDׇI>Y&"Wm8Rdkrh\>5f2٢jKc15}uHUՕRN9*]N1a^yVV2\~33C*9j3C@]"e9,3F$̑8Z^™4fL&l%LnI3t_[R,Sg"Zv`vo_KZ>n X:4ŸNK(Bx#IY~loɯyKkR)F#EF\.U B'yi6g^w_WUhԗZcxj>V5}d_Ō*|hWq_*E9AR|)a_OΕ?OP#o,8+:e,O\\V}hoRE1k\w\|n'\m.XӻssXl'EL.FXaѸϾCUy%^W6RPl[b?* #;G`[Y(|4iOe[=&K i3q,@ #$dxň v7[]tP5JPJ NJ0ixOitY5+is kOE]T-]֟d0_i@r5<Ճ |h q. t^nѱfo/'. Ԟj3:f՗{/HN^\X8}U*JR'0'42S?:)ߡR?Md0iC3dkdA1`/w:aۧmz}{Ѱmpgc(uO_ ؂>c\ .9a#ڳ&?[ ޙ^]dc<߈3 zֆ44܁Tㆸ=h' ȴo*qDhO8o|&A?Y<},2u֐9~׺MjWW]4R!|i@ʕ9}6(񫚺J~)Œɣ^0<'.p7͵ [m9aY[ ^h)]$ԁ >+Z,@Q F gǾEW)Ȱ1HRhrc-j&5 Bt."ȊR$˜[H|Xrvv5,ާ}<[X:{V̝/Yg6D,RT @O2U[ᒔCm Rw#[N‰ z%aBWtiFTV>>#㛻 H% D4Q{6M=uoa yAFwk-"ϪM(^MOҋZyY&T%^GKŜl GC-t݊+ŨA’/|{/̠vr1Zi:3~YQ< g37~aݛݫ|_/ÒsB,NpO;/XZ8o'7t%܌v"-Qj4vK;9ZZ! kR3rm+f\~n/cqFxIQWX5 ʀVX{sNn)Fz9=n(0OV%G&JbK,@w`rmw*(~_Yv+@B aq:bOpyxF wCmkߨKK;s7p w8f -83f*){ESN6>nhWw!pS@2MZ=%ݡ0y|<}=px^qZ#=!VΪ'e-V~oNż!`qޗ ~1m ɯr>j;gk۬gǚ3|efceUJ TMhbӥ 17ck*)ޛ9 O_K=`.>}bZx|@уؖ-1ֵt MY3;?&E:>W%4Pք;6+)w6;cZL )I!wDQrxQ`56Yu~:2V9 H!ŋX&fW5_+%xP[lu:H%LS5X-2vaWB MaE^:޴aֹy|׍x4cu> <lm]v8?a pcهĻG{f]m8z=tl]97Y6sq8y_& hXN?~nߑ6=`|Ѻ'xjrCF ▥,}J&:h7w&\I)p1&̟.[LR8.ԒGC♉Vm6t Cg{OsOjGsels oY'zPtcf3Zyt5cX_s%p^Hn 1]%luӻԇGz;2WvVsjcP8}9?S uнã.--sfv>68<8{3AưtPd;ɺ15 ;tSotp8x1l "<\3߷ m ߝ 4~`0r\ոpdC+ Q@a!)gT@҇ Hw)H(Hc<ˆSckϭ}?ͬ 5>=Pf)25PQGZDN Yt ]>O1]љ(3FdLDل3wYc-zc~| ٲ>qWtg%!כ]{6>NܜEƶYNE非+՟[`ux6& +Bo`7}oCous1m2O0x$;xҼnjQzN`Ե.Ld[-G@zv9mpcC+W ~ "iiE!CL*g% HCp PX$/Zk9 EAתr=nQWm V|2̊eG†x1ꟁӾL|oeQ;qJ&Z?sAPgH4g*?o1;&35r6uNamS۶nB`O^ppj~;;~pngm]\?)O ( ][t0k&;\Sm帩z ?#f{1s]br5 IVN<{Cd(Qx0w <_{wyhܻ37h~:K6vQ:۱Lxۃ9dg#c'<9a D}3ZRs\Γ3Pr w1w¹^ƔqL~Ccx̆G1{ Z~-#-#/. ww|xoXC|s1}0hsE:e3ݏaVp6c)~*a,mRVik],mlo Ii )!؞eSi)c(y>(,FaOp> %q|у5vjSݏԃszƮuo4qS#֝ v=>6z룍hm;\DhIb`;ç{ރYd% ڊX':x!TFG+R|8c'nZy -w#c밢baȽ3" #9cs?Py !.KK2ۿgGAwH;ngv9isόzA=~>W|0 wG#|5LsKN^7x{3۷crPD(SgB0"*>11Iq=@ 748өr=m[^TEulS˔!?t9_qQxx>rv0Q݈?+i<|v5obܿ!A|4CDb'ѽ8Dl[ד҄0Dq3ՍN6/as:'C#,&mҎ=콌{)d9C:+,ӚڴR?jT!@vXS~jvOC KJ2&`aCCMVK,xWv?#dF}̍m 'z-_ޜ\ofv?{7߰-ÛLԃd~3'a::&ob Â˙Ɵv6F'GI W0od^P^&t5NYj|.n{RO+,4Ne&5LFy3pL'(-u__e{1\v~QT!]oǷ&5b[x'8<г&8v~ i1|lgy=:lAug0qaj]F=+qߎ0dAӐ RqPx94'vF;仞Av7;>|/?&|+S^`@@T 2h&L/>T(`U cK}5s%Rr]=,nO69g;LԿ0p~-|QQ}.sl\Wc|ac#,{YcFFĞ%>;ÛmLJN9OلtΑg }Rdqmiw-6p1xݟvlI_tmp1xxw]=eKReimAH ʣ(p{04ρDv籬`K2:#;%AjG9iL⢤2=÷(b˲ɣ?lMB&z'#PZSB},%T'9/wHB_~S紸a4"ae1j)bc;L⟬>_GB=io+ VџDdaw-|-,cq~u,zoo0l~71Â?n}wcnx|XчζqAUt1_ed. x0w6iYÍ# dߙ7Pdts c iCbWV5C-V\CK `X̸kv%ofduܼi][L; D2LE|>/Kvsgl{5#>EAcXx迓 s{'qLݏGuqq{<Ǩ.OeDt0uwJ&mgiNwU gтWح4Yvw؟YSf4v4I*w>Scz.BD8=gv, i  \q em-4DҔ3Xoɒpr0wkZzgP}q 4|F ,v 3V(;hcQiNC7n+i CԎ3Ao0}nє_wq.F:[FnT_|ݑ%$7'Y,MvKjVl Chʲh;)/ ɗ$L)39FeGgvo ptݓx?}̧- :MrGxpd_s;9Dn'ܜ \ܷxݔݶߣ ?sc}O7n~s n^?u%ܷcJnaI^%~X(ˣž.0?ƮXt0ir=tOL 'q4sK3qƒdz:3M)~"fGEﲾB&BKQ<HA"-Ax<'q^͘4 Ct}[I8\`F`UJ;v9{It!_16X*'5>>:#,܁RQmDEwg91ax4#Ȍb;w3[m\b@xk~twC<à,Q=?f Cu~Uuqt׊F@]ZpsNl"Gd嵺c7U6X8Vd{(o- A^̜;}ݺl h-[v#fXho.Gwsмk_q 髃GcNc 8v12y>Ypz*)ӷ`w<@8/ XPb쐹(RTV1 *0(Bpҩhe/|A7 ;Ӳ\`ۇj.`;iݾI{~8ʃ kAOg# MfMG/bmM& Zr88.$Yzt7OԷОݍ+p4sL3_07;!sBOय़38rF3Ce ,a4Oc 0poGzgӞ6w;o~"blji=x-Аt11|7ra]Sfaݎۋs6rTGn='w] 9{M#g|? ><;x|En3xO m? 2Mgu4o=fñ,кc&Ӟes8O#whb>u;^=#q[89igr7m:78(e矵.ReT] iX}JXXn,.宊^o-T8VWS) }k-T)&I޸ V&ÏÎ(jt?Zq&9>pT觷 3®RO\TBʊ#ooWLq6vDR.^`r?JPGzw|+ MuNV?W8F0h[>~eSA))MB,;Y.j_aQRcJnJ{ʛ-0TƆ}w]!hB7TW?{ # 15 ҹT<g|]}J%L3A*ex*eyzΘfs, pNN Z5bNF+sF30Q2L8q`D,LuLLA10LD,A0# bD&a "׌8a I2DR' bI `L1(hб30 O`a& bb Dr !c,UYIQ1(2~cZ!=9JS/}cf}м/j~85=Dz⚒K|ˢ`={Qd *RIK]d8֢GP~*;W;^5p_-<Ri_6=̜˔N&qWhTˆU]YqJЫ5 r,#8a(pԆo&Ƞ ͡I2̡ 89ʸZeֆ]9%ӿ p Kt&Iۃz<~,/a%~yhsA@~X)mnak|.. tZ kEYD2§?#mFoo,EʵV*u.I0%dhѩ(zU&TťӸYSUX Š,iS6Yoba*+yeN(R'D)Q~},wL).axoZ;$հ IK+޿|%ڔ[] Zpg9K&:JCʘwX7 aBeVwcGz7EBJ֣[navI`[e%/, 3~_;҃I*EU[ t.9S @܍o2p1k6jXLt}Nu~3y 7syng7e]r/;t㷚hC?L丣JT ;M. nf?.o&xtGdE<؊pS6CA'cT/Bqw})P)|Ñg-E}xNj(,*5@-J̯}\ViJ\ ]'qO¸ky&`#S,(l.ZN-2+ Ngl0z}6]$i 1u>qU5ϻfw bnzzmml'FY|Ol4;kp0LS! D7Kqc0l̰9!/xP(;678b{"׵Ge%ķ:כy&95Ũe@! k1nk0Q 'vWm*SX5蓌*>DCdp- !aX,cY) +b&KJi/n?f .Hˢฺ(Dhh 4’+rݮnKk94v{~=Xך,ض·}r*vO҈#$E?L'm'*kG:S%g2>!*ٮ>M~z#E4^z:RHl7^ Ea5x;Q= X^USyO2pP&k#\YoBh2fc*T!EvmM „CYP =-:, zm # '4GGEIte8ki#e@:^VP6 n/3kW1eF򠽛os~ͤPJ|UU/B0 UQ|68h"yZF7v.O-;/x2t=421e!]jL-=I(N4MwAtF򶾡2eмmVL=p8p(Ҙ' AH?R8HOy9mX_q4zqll: GɨjnYEy |Q ^B66z^Wm P'.K?vA8'Ê^ ϼQ":tG}2S"_?I|Sn<JϵK:5ÓN\T"l8cIn+UY3O.#Wj'>0mgx~gfskkB୚S>rX:zauqSuW)k*,pcg1UOIu-NVV`aS֯0#c}74FmR Yҋ:20\Z+tefҝny󃌦y;G=i0]|)B\଺!k~jl؁FӘЄ=/lKj:Uv <%Jrx:­*VY6~SZ5TU J8MRI=* Ba&w&6C6ٓ/J,nBÇ5F'X0~V弽ޜvz`ս*[_SD E/n4kFSq~⯯o-Ըj_#}U "t^fh$m(!LYN^E//(3ej g%/'~R0rM_`Goۓ. =ķɭςRs,DgRI j90q+9ix45U5jG?I`zRKl*K~h˫bƌ`S2ccLTcI *jn^ Q`)3TgU/?^[mf߰xQð2$f:>&ULRl9$>ør;7%jXPՕfVdgۿ~'Ns76?F5E7_tG'4_ߥ^.k.znw)tSu^|X(U+~ϒxC#G'+I9/ܝژ-,1FzDH ]#^xFpw nBu{\ڶ_OTANI`GQA0R 9ᦶx녀>d$%*>oUSnەIiW}D +RJG܏x~ʮ(:S8cLpt*dGcDi/ze0*ҟXAؚ`_]?,|xiʛI$C詧8t8lt&v_NAMĸSZnJ a?k&8B97)Oɜnd Aޘ#S}XqVsƕ V .=QyUB$DKdVIcT8Z"$6 vS3Dw?"3G4 ㊨"_b\ՅpzR1#m\3LZU> > ,2WF'Dd (i50OR4!6phͱJUFd?6MGUuKROrI%Q]V[UBOT5^(XT*"m?,"~˜~ < їpPhNpDQ,vQ!cgt*# +u}$z|~9+EI<[ا-8H-Uste [t]WXzs_xT<~a;]O iȞ[fsZTp, 2G1yt8n'P7y6CNao^TLyMI10ЧrLcCd2D܊V0( 03 #dXsj;ҝC#P }ex6WR;6U;3Lŵ a~Xh!1.k{{a F!C5و(N>ٸVLV+MQqqc%ʯ/LL>ۊJ?u.E~۩?->{EZuh1q{)+wP!=J)Uu'_5yCT98Jӭx3bT*tcu{p%;2)&ZZE'ͷ{b1fhH]TiUJ&!T9_6N9Cw[EL kWhtSEx*2*ɜf̶m%u@HZK'BD "oh "u -f͔c6S6A6<>ǿ1B^!@YEE*BTK PfԛJ1wg:.:RU̻ZrRt)Y;q$ ?G4?F\)ZuUbsg!uVȱ RUKKf7T;֮I1qIgqos*7{-]"+_΅O'~r _bɦ΄b*V{$'~n*/~Ч)eU"NjyeRrrڶT-E%]̅kda.L) )\x3 OSʋ׉/⺧rmtY-R~+k۷K[S74Iޡ:]`2Pp5JDZJJzW,Oնx'f:6Q71)To**7E򉅆ߓڥr'uʛgگ/6lj$RxQ1NՖgTTCݚy'r1]WrۛY3(O]Oo+έm,Q)^I>W(] j^}ƘX*)lCڨX]]HԏЮop}/T'{k|l)g >SxOM#2r꺥f+X0* ;)<Ό,],25emCXoAk鋫PN[͵uYkU $>iaƈξ>R3Z{s:ǨT}>$Ԏ7~%EF&^;J;Sh $6L28 ِ&o6fۄo/ooqEp_/ZPMW 4fuE=:xźO32¡/rDZ2y@R}>O Ré }iBa/(j3)&0`ʛɄWxkh G(737OܡB`/mb^MBW쿫`[>,&OT퀫 @½9`]˹F0ŏ r ۧ&$߫rk>˯1VJ~$Ӱ&NXy= TTe"l*o^L"̈́PC)QbVe9b4J"ʘs~bJݳ0.tW6c}?أ}[ zkWHB$!pa) ʨ]ugkSfJˌr7ZusW*SN 4~u;G,ȍUJ1C–ŕdl!ߞr򯇭 HOxҹ-ܕ^%*zT/ɛbSڢPwǺ՞^osVBUFSr۬t2zctp#[7SOsmdZ"T!;B3;+z,rCSyK{U'qv 0FGJ[7"݁6Pj i\%OJF\; )q 2aӐʳ0e 1& ar!zF@)X20ՠ1pP"!VCRUsoUU[6Wg:e1jiyG:Pg$q>䲒D[29Kdѓí)Ir:ҽ?7%O*ek˸b麐~:oQXqf ձK ś0Eme3RRiҢqlZ),yzf,Ptw&cU/7RcU)RO[Q;5::(NϬT'{qm.zg NxJrZFJ]_'g}95?^'(%*eۋcq*PqjrT*f[[O{W8o *YkFt!T2p>ߘ֌Ne<ԡUXsϞ%`k(f}sd\8KBġֺ۵KMG1!t `>} %ڳ֖MBQI_w;j})OF}&PZǝ&~&xz1<‘`ަP%5b]w *ڥjbwku17J>Q{I2У3詑[Jz̬]F蚥6ac:uRX6\(IM _l)m\v[ZW3\V_RŞwsҶ}Y^^cD^ڔtdũ||}sKZb^^ɩ[;ۍjK^|Rs4OT*MK{BdžNyrxѣg^RBuwP6'PsEBtTQ)_کKZާB?`ߛ?{U}}F=e4l)21̼߲hOid3*]k)fLJzJyqCĕ$sB)U,e`+Qyp.4pgʗf~0_M=PU:>5(ix#; '  fBRL|O.;ƶ3@LxMN0 AVQ2F 9hhD*54h\`& I{0OD.RŜss@PmwJAaU/vq{Б;t[LX;4YZO& &:}9~V9{diC6oUi:=ڼlʘjP| Sj؋Sݠ=;/e#3Y6[IX 8& Y\x1E|ykW`kکrVў Ɇu0e٢%iA{3(J-]8-Ÿe)#ߣl?LרQ;ocJ&qKp2cJ~~>p.[S/Sڛu!eP>\RA־h߳\d+[Y|ʽ҅Y+Dmbb-Y6<ر[XP^ܗ9nVRynK!SаԱErݜ^+fOq cfmr؜Efb[Y4PB\m9eL)|)R=F.Q}BB]2Đ$(+`ne%xwh T3ՍpC7\|{Qe%0ϞHJCT[ww\*]}Pje$M'=ynUZzSxS瀯b2-@u3s}Dw?JY,-ޟ +dӨU| KlۏU )KT (TRB/!GOλb$W=Mk]YoG||/]F}ȳ*m&y.g3[폊PmJ-U%u5/H.$tz[0l7WM?ӏ rȵu(NS”ۦkj.T#ߓ9Zѝ5?w#zºߤԭrNK~:z/V)}"yǎ_-i<< h V6^:B:KWYwъ+bDK5Y7!3:wF yoxc@/qI'N-zBdBJk\gx7ĿT{됢gկ2}UDmBܙ؝Y[ #UED҄wr:VQ~Qn=,6}J"}׮Z.OP<2npHԩ.ϬZs>s]Q|xߟ{YUm82~ٽ Ww}رL}$ ŠTH~q W5%gMQ ̸jMM/p,֟V% r{ڹ19?PF޴.tvq&id ,d6sƆe+NMheüf-\tBRcFL+cjӓ^ڿ ۴m>-Nt)va<ل1̦uZ93H>]`e.xћɉΉK%DURq\ݫt>ea'ZP:?xC (dHKSӿ>7T8~E|:P%ĉL ӟ`V0=B$N6C{:K/(>Va{U5lGzsyΔGZCك&[MiP\!`bRζbwI"/ [$]h)TQni7Pb{Zv6r9MMG/=IV=?v-9f2!P1kN\ P-ڝN)pmoj:DMY/"#;o V}N/bv/Tn杊+]:ؚ}fΧZl:zSD2i;U3 ϟTwXL[HSy\^"аP5à _IǕCeLDr\~\ҕRS~o:<ϕj>V?h_8)L[DUTF{r62p#㣣DwW{U+Rxtŋs4m) }hmBkw+yZQb.ў6i7^Nׯ]uN'SU2ZpW)Kc`+zIcZ^es)n "_+'+F)5TȾZ}UUrDjVcD?;d^gt)Pp-"?SIoX%1kQ|MCbB[[߳b Cu}|")}FJz̲43 ·S54BTZf^ nlnub\\6z:޴X2 ޕD+SrKwwKP|]FLPٶQ*+OZIJibbּrT0[Cz^Ϥ}w.XHnMDꈅ9.0$v2_!VT(X3sR D֫ˈOBͲ3嗌XSv^k"=UFzzh\o6lZ?ǯRy|#:J1&U#M(SbO 1ϭ[ GRT>Md zKWk4 [29_[)Z}uJ{5aً !'$ֳʬ v)>\Cm=?F]'I@^UR|*پhOwN>-^}֗ӧvmWDxQeښd̮zWSZw wS%3gnmN|Le  :Zs.1"uƝ\E YpT2Od4=R.ys. =P{6x_iN W\q\e Ǟ^[rr +Drg)ʃVbKA@T.SQ=5N9eFXƀiuS/A܋ffd ϖ"HQ{aFB\( *]/tFˬKѲNOF>vR QSV=v.dc[ݤ**!rt;9:s]R3nFN-ETmeTZҹ[ugg Y?o&"EZtBx+]/ ,aiUFQL2]O(ZG~9dO}{%U]!tSA4QR;0qNE+ > emtLNxz9eޏByY26#<ǭCm/6>|_$g-|V"=\E,3e":a׺vJ̷eo?NK|D[J|^[7דW $KE_WSH^ bAe1l&~ ^D븗 kO0Jgdy46]RvJ@Ϋ%_V/Q^~RU*{OZx}v+zRPս*_|iT=5fD#}2&zUCzU֊5n߲Ƶ(_d'-qV_ҡoB[))zj 6ӧU ,m|w)؁OA c M*(_W9iSH4cLu8g{^9xQxfrPʙ=zPcf& u!fs'?5Z3o~KBBUud|1ԕSaDͫ*r/Vʴ a".G:"&Hcl4zCH֤"?/7r>X#3X/vEiF8y "2GLUaCLH1#A 8ٍqy*BеL KU'`wEW`2qP-:;-3 3pLV(+(VpL9(VmuTbpሁ\6;@UegvrD 䚳>Hb/ Ɵ F[t(H@B-( ~O*أT*CտԒ4^+6wXK+P: Z+ы)B&q]S;S'%ӤO;E T'XR}2O%axt(V,JT4*3H{zUZlçD=^C*6t B2JRxz` yJWUZ[>zyuu}Uo+U6j%۷" 븵>ښ3xYyJT;R.e ] iwN^c/|z{<+dmsC޹|"7jHWjUROǼV⽌ɗi4!Q(TNU!E+K72Ǭ*Te|@'9:r]poVK;uo+bP"##QzPfqt챖>Bo̸Hx^t%z_wJ>!|F3gECu'$+o:-OR+[׶]>ޮr:%pKJPka})tbPr  nQ?9s-9#}!W|/aHo.vA M lgY0LC` gr|J7qif[zv{$' qa=X ]T~NĢC&@ N;*dthvP(jUVWaY'5jBL49s\Sa[Zl+#yey߁﷓oz+邶L h΃yc+HP,""M ӯKU[H`ke>{? ,*S܁-5K,@(8cShð%@c3 þ|8=0=SaLW1+g#ZY*8qG=8Bb}CdGP]vL9ӂOS'?t∙D/ڬ+~^{ T*]nͿfJ~Goʕ TP2}xϔ)(XRgnr͸[\҈ٜʋqLVI}.+25fSJV۷օ o)Y1] 9sǗmr˩΢3!ӾSw{TUlҘUKS֪yWyGveϢh821fG-<OXz8Nw}x3n`m[Vs#DZّ:jZTj K C>&Uҥ*eʔ&-B%\8] 0*aPVzk:t]K(XG c,S!}p1/ʆ @b x]PeeEyz2:OH~O魈6;=esMC+AţBtdLryN47eIM/۾">J?~UOE*XTv&~ Z5 Qۙ7RԦwNRAY"3Tɺu*n퓡'5d2LO'GZ^Hs|r.'.TnhE. w_dZVנ І2!//zwDT$ΥҰq➵eUL,t5f/LR0/bgw^-}[qNBYaym4(_|}qOb _6]ȉN4bjvkxyuMRqQuHP×F:,Gz~".)[8ϭ|&ц]0 -T2HW*tkNks._!;t[hyzoQ(7^>"3cĭzNy\3⾙8nej!7MkMWiO1Y1\T0=x(ua|WG_ǫ U'lOPkyK\ɏ^{-㞜VpNQԧXݴOREl3E+QS\YiRUBШE 3aoZg|~P/eꜷ-}H݄;7M+i@24S/"z C1 |J/IS:U>D8zxR "QA_]qoU)xx8QL2zRVo:[uPKgSNoWXzu!Hʫ/2ҌS^ӬT::^3%ڦj|>]=6or޵"T>ԛPL #e+QԢ<[}"vڱ85E۠voc 8HQ)i!aa3 z65PKؕw(/ڔa,]̋5s^+TE* +H) DУ%k긭DVM wtRw&š)%9ó w^s >\W|R#[ =Ȭf˴wt)=Owڿ?o:Tv>iV$(b… $(qq"glY>d9aνvl%+^߆1ȹ; XXDj) oBE:ar? 2>XGpU\ $l!.'(?+)92h"?&7n !竼xވ{N[t%IOR^f_MMJ۝S% {/9ٮ[.2F·SrӦVӳ |wR6|Sڅm^k:!N(]7[n'kbq*ڥ掝Cw y\UhBRVfӫ#3i.k쥛yM=*(wͫT+SQ]=(\= B6Jy]{ˣيZ>N̗P3OXYvZk;u]G8ϕ :qyN~I?1sis睐Tr’qtEoﱟBY!01j1j~*h44)ťvUUw.U Q6[Y4vّljƤTT2Ru2*t޴W[:UJ$oJC(aD/:n_. {C:׃JzWn dv SNG{,!7W)WΕ,]Pf:{PЦQNonߺP/$!V<=rusv>M[Q^~+SQ0Qjʸid Y(_ʌ#. #"PRDEKVWK帒zOҾ)k_|'T mWje,_1ů Tγ!$QХ]sCjxŵ=4)ۆK>_?%/h/i3HްK։iAeʞU η^_>yQ/8R(P 2!OPP4H8UIxP?]UUuIz4q&hoǷY{m֭_;Jɝ媗mrQWKSFTSz6aZ|~oT/1 %.~?vFp.4|Mh_nI2q*`XӰؐ (U]@qD)qJG! HTIxÅҪ 9E>E*F4;ǚkRGՕ:F7RdhӉ3EGI)uj\yV@dŖiJ<](b?aB[4t3к^ԙ7]5wa[SM}ַ>ѼR urd9ߗkkHj+kj(fe~}r|,2ꡝ\\vע<&cԼe[ZO=c>vl=8گw/Qϟ'qQiN_g_.>'}OS9bRwQj|ŧJ}؊VjWF{:nUBZYJ{+ 窥 bU*nZ~Ws;jRuYSaĊ]@qZ^)usKdښX:*u\1b5@Tf+4Fv NA6yAp_s`w_IS6ϬIر\. \llM@Jdh 尨a2axo}7Yts(Rwef?0#*vwdpR_y8.J51r:5 ԶQ Ҟ=sCִJ݆PrNI6c{W8?-Kz>aVX~pwʬVW睵$ϙ`\_ef3P<%]+iϏS}sǵԵrB"[DnU3 ZKɊ? s1>/-+ K nK)O;ЯW%o/jm&׍.}gϫ~U*ɁkUU]YLCJR.dC9!S9^"ba{Q*&x|K:"&޵NGԲor(޿V=}9V-gZʯS*_/^W&_߇1*3{I~*Z)ժڝQ3Rmas]0ŪU^뻧d(唍޸>;w̭e ϋevUDyFz =X,.Tisg߃l:KHzm⬡*(eIPUf>bqJYuR~}^.}:mBbz̟INO?eJK֪**|3-635s}]9iBxy*oWB"A;oХ>k1M{Ѯrn@}PPT h}cSGF&㛰cӔ_6Hp9`i]LnLp3Ff̒Y 2hӤf3w5 -)\ɈH68rmt䴍ʝI)DI-xEߦ +PȜ;XPcsVPc(br6EL ޡk rv`]X_:uE ƊXg|:a'%Ê<Ôgy?+ QmWNS77]~CG5lJl47PVzXECW= lKgõD[kއ(~ ذqQ{/_ʣ"L"e%|ДY;́72vY",2= ׌+ Y <:QGfUX].lA ;pֽoWC ̘O6daʢ̳,;9S71emmm(r˗e\b\\Du3rfۻF`J "H2IUQOAO**:STs%32VkK18b<\6(dQ`, @vqb)n1<"#rPB+Ϩl^ܕځZj"7'4Oqj>!L/lჃ{puzRJCj~%* *D[r=$zR]Qy aXYj fǎ2$B%Bc S F69/ 'EE8H*}ΐL r$@Fq֓Ωydqڟ+ 9'`)|^S]/c,Ew{N .)p w2 x<ıUdY%Rbg* C-4[u 6q.K«[4뚥n+TVc\cyxoetS!e+:pHL5w`>ħ#('«v_lt4 AU"uEpZ孭;l9v@7/sr]]RYoj{;mBM;_8HϬ̣W\X(!f1ס3 F  U$sAyBGoS7ͬm{fz%vDTO/E0 *ڏVnT%eTj}geomu8eldOb΅n\sė=ʱjOyN* h2^,ͨ 'Pg~>B'5_u< o׃ !޿]Ǣ3T_(;KeTZwGe彡@tD \<-̬(Ewv"9tnw'j#>˚ЬwF!BmtkQDԊY;eFUf k0 nhh!tƚb,nTӊ-g9pw Jng~⨚(ff s!d Sah#p#(i>Θ$Eb2_;߶xNgVr;= vWbH91.P/(XȲ[gj[ؗ-#!1N }ĝAz*S-*n:Ŵ+x!h|v+c1X۫ m§d90I :9L!fHnn?3MF#+'=QLQO.>c^ѯuvp篆f2Ǎ{HǨ\4=E$ uqMިfb ~RpѷU?^Sk'oȌ)<߁T]p+T/ϪLC;PՊHE;|F޳'uP[J1c*TZ 71p lV,4Bd'!Q&ũ1ETbN?Z:ipyJ=겮(VE!BP}pjxG+$ +d<q0u uve%7Mdؾ<d6|FB(%Hd b9C#6`* Ufl 3G~I"9yhMڪ+{;Q<0KP 1{4| 碑@uz* ! rSj"<*-D(&u2o]Ck '5`D!AI%fVq`l>bS1cr?J X6hfYT@1IѤ]F{NZ_{ fO'sY)WD/l8ʭS ĩ\CRA.hdY̵EbN,Y=tFr$ANx fp:`Q/3*խ>9SP?tM0N.F&$ I$a @%"R$(""%2B@$!Z)&(HB! I H !H! L $&@!KISEд 5T $ @ɀ  da(HHibH3! BC $0 @ $ HdH 0 ! LB$bH*(i V(b)h!B``@ HL$ fBL $ f@ @0 B@$ D1%R3#QT!MU5@DĐH0``I&ZP  R`@CL 2@`2!3Bd @@"!(JYL d$0B" `((( ihR"B")*$H@@`@2H`H00!)JERR-E!HD4 E,AAD@TBP4RQJSPCH2TQ5MS D$  HLCBE0ĔECED3T$C1LBB@$!2 M1P4@RD C ĥLHQE !B`H$!@`fHC02R Zi$%h ! !@`&B&`d 1-- #@RTDBa` d L B@2@BH !jX( !$d  L!`d3 )fHJY%bb!)h)b>zӜo?yw\^b #6ovr%/҄Sd V!*'?z5 I¨Z|Pp8\+@ƹ2=ƿMl>&›j~oǾۻh^޽zO=<L'R sCoÃr˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\h><~x|3_2>̾yU7okU'~Daq8_#f:SѻǫU*jU}_WWUx꼊_zN>WWWWWWUUU~%_cd{2Y_<O?7z}:~guZwhIJJIJJJJJHJIJJi|}]Ou??kkuuں}}__[__W_[__W_W[__WW[____W[W_____[_[[u[W[_[__W_[NЯ*>cHH:ށ<RrӜicGtM~YiAX9 }v$  d2עVV7>`MT7+X_4zy-&`{k/k{:p#gF:Ol6]?gc?|E *wIvTGD#挆SMoty@~k/IďK(dE@k4דFI$|@?)i0[jp`#{d~lsQ9sʸ` 'VJm&:.g[\p~Sc:*'i=ڙчYaÄQw' > @0sFcG{yD.Ta Cl N>+tN#ɡ:ĩMM~Yl'*;=[K+GegA΂MV\mʘ~ &9WM6}F)QxU5<.yVۂU=oztEq x@HQV_ƸFaUg6eCD;ʢۂD1LL s2ۡ,Lǣz(JSUv@]c6|OXFR >ֱ+}`OBp IyΧā axF4W t!{̪i8.*׸wjRYqΫ4=`u[RN sd}'0T-°XysUj1WLћ/ăD qmLO vt%2a-hq}s!X"RQY[ZVW&yɰq&"z#<rr,SWer-L -tzbpC``lXhW^41:'\n#^ <+ sqyL1.uqETqKH =_C HLX-5,XTUk(UO,| 1D:ŪnUWZ0Nd;Qm3知S-[JAR .P;3lBIy߫e9Eh2nlG:% CUN|Uuv$V&ƿW)UF.dzND6 ;.̀iHN\$ߤJKr?6N]{%#2xBJj]^m_iعhR&'7df͛6v Ŧ,bj*ۉ؅xÇ fYXBy;qC9hJuuJitt#M,";fC"3&ࠈC0sDWo m9;3MAo_nN Ig1H9b í|BCY9)For}ԨOt/iC@Ŝ}8!6? 16Rb~ou"5U~R(N]z'la0D8i;%Mp).D5*c.PlKPF+1&L2_6O1g2lgbji'%LȘ»$χq?aG=ٙ.˵jH ϰퟫj680PrAu+ŅurZ+(匘!\H,bpx.5p!mxuvMK 7ptisN>pV XJyVu>)*Ixή/3AReROvWqyy`^Lѕs%-^89l6cv,s3(Et4vDd\ ;ŗH@ QHZ[8Y` @ SIhxߓpc*Yi#Ș4~Pת&N|G YPW!Pȱ8ly?)tc7{InԼz<x8`жbpeD/Î?.b,:i~fŏVNJ:-R_le9'"5l>xld j4AaH؄ 3+piiAl F4l5l6leSUdB?%~=0@q-0f)e]r]F؊:Qxt+`%a=F"##!8JccQG'F,v7vb0Q[RTJ-ƫ55p^P[J b+|)<{H(ѬTZ("ƶ؇ \5Qߍ8 Psj"' 7+eU/hgǢatC>iE1P3.M.OlC=@2 0q Sq(˷~dlNA:bSbS!÷gو>rs4vV^Tdp!jAJ%3wҐ/w%5"뿹]v[DɀS1D +2\J'?x=u=K}jm2<08}~%gW@%CO&RHZ#q?E}y[IJy8χ?n~ZqJYl#܉fw5%0: DwEؐ @ej #(jL0p;P4? 7ñ/6`|s5)¸c&L.F~q6 ,џA/0E^8 P!A*4G-<-hk PkabE*~ uĴÁlaKr9OX; f0>W\8, `WVTQ.:tӧy/EUF$ROϢ |gmuM>NB~7 eabFT$;2ͯ;F)n?Mq'Du2+ ~5U]Oh٣S* !׀+Q@YNCPS> / ;͍b2}sG2:_+B-YWyYo'~C/{XXK2IHXu+ʃZ=&vc/O $X&Ov#]MX)PΤY:"p8'TPܠÈn1tчuzw0ڟ'g"vj:ɪGG&$XmE˗g _b@?C*E5Y#fv'P,+u#gEx'u >x4? X%t*OJvF=lurHa{\VC\Oayz?ݠQadV-GH}z4Ɓl {x%ztP5Ki)5'U&g`e"eWgߣByG޼-Dl"+uo*f B1ca=<B(MŽs>G;gyf?|Nw`;%|mB8XP͝ɏ1= s9c>}Re^Qd}DÑ?Y|/#{8<$J^:PnehY FaHٵ ٳQf,H%*8, d=VrEj qPhH?[2q{eϔWuSXr2^ۀ 2&dW?qrs6W2h|EvLi3}oep2-2s2f%,,yw]~%г6>VvToi y?Ͳ&Qt,z}]WMlݿᴏYom0)*x>#Q(d/jhPK0@XPgnKH5tՠ*p}K~FQ>iu]%BV\,# ;pȜlYr"0)aggzǿVKf;[a~P!=/ G7?lgK/b idNI V9!f==["ʈ]elZE[jk ?Ќa@!QKm??}Kq<@{PMI18zz&ee@F!I퉖XM^>ce5F:!lH:hIRT~u{p8 0z1 3F _X2wUE5m{Bm q߄i"=.gk6YM41g4S*/Jk_ibFcΌ8.Xp3b|N3 sT@™#rk$c$5!#X}~.xIpMҗG߯˲r3"ᄍ\x}pYb̙EФ` ^. C  ZcI-|f@C;_RMW8WSF m(7?qH}wk?:s5_3d\Y(;V yIZH8 {Et:N)붒q<0xO[~$zl@*y¸ZTr57{Ð;ctq ]Z=}aьNdwK3ʹ j@B m*XEU:]Yyf^ IcRs D~u/0h(}raѨTnŪu:#x^ϩtsD+LƂ BoVEMa|41vn?޴ǵpXzq|v&o>^'E_؆E$^vIKVE?N@Νo;̮HlZZt 5p")7Aűv V'MMՈ=]Sn,Lv}R9^7uTQF_c;4y7x%"ߌv{2RkH[-vAXָwzhy*8|S%e KA.׹o?wh#bc(h*$;3sD7shr&YCA S~NHqN8Ufã3͌V!c+UHjߴke?ȒG`m [iM:Թ9=0qT)³u) uۦM& A nR\\x : z_{/4oJ8 &fqܱC󃚜။ssMj|2(NkNiIԐ?} otnT*ugo(vZg!=f\E| n!o\e\_8l0 + 9 ˸lCNpW^y3oeY\n^e$$PBBpvhxI~.=̝1nzTo725bo(5lrBC>Jr9sd7]}KCS=綯Rc;^07P A0T,F^EqYHY=y Zeesa<dž]7N,рRQ4lţhl@oM\~&%ej*/lٻf3 |âIs_DK:K?vwl-#_bݨW5:C{ }-5Z6[FY|vs+t8u9]ow uA \&Lv:H}$ESwrɣ;vn"s$imn^ژ]նFEWZw 7{wsH3N7=Mv᜿c'no hsOJNQA 3XoQ՞{$O֤mu61~unte U^xDY?ߎUkmڷ]3Y|祘,L8!wm5";\i$8G>,2oV>dcr=ꏋK%K2W0=!8]gT63F9b_=X :%/+kz4'G<\3r12,05Ȣ2~0t ;_Ry&;흡]wjn%-1Htj_dc5m`J;vlob5 #W .f\ @liuȯ8taSq}^W;#w66ʛTWis$}Br?BFoͩtúhL=6q'HH~3 Bm%M}.&İ]3YQo.IݰJpc11delzTWdA- x)}yFe L {ac)?_$?g9u]c#6) )C: #g p3t* Zhhޣ#D4>.>fmy>PR*.D :)EjΝ/_U^dm(۸6f֘;׷pS%Ju Cv= .^3$ܬLߌ@$Xxi'ՓaGӘ9Z8f^Ph| o~3`@tqU<1J/tK叇WsLCM k٦fl),Wn.PyG]2 I{Bd;^!ߕt_q}Bq>Œ x=)a3JL5sXcea`V?oʼP>/\pU}xp&!We C'ȴeoǛpqC=5+: ㈑%X+Bp3 9(b%jxqݱqnҊ<4Vj\ED'*cSG+uik47]gtH;ԺKK䥪Mf|߿%uSa}q8 h ]'e0Cbg_h< c@?Ҷȹ2lT[2Q4 ,iYT*}/tv5#}Cip`0B2l]yDp~sBH=Ww]SӆL;FF5fLb{9u~p3kQrjܨ.ϩIv9;ſ on_LW2Bf$R=HOFgRjv [2222]z)kӪ[/(LLAGta籁M"R@N#bNOKUQW*h/NbP{<@z'\ xG!KSӡI:ZY檠) v͂fCuj3=3VmeqX$\=q/:$(JRJĉ"'fg wؒV:LIEK.24RE˹EdUfu*ƺwL$V22CK?Nz2=qI 'e^ˆVuƚԊFQM1!ITPMDӏ-C\O7 1ӒƦ |9Rv2RviwVSS>V)!xbēlĬmLș]%U2"VÛth&Eh"b,GB]XTM*!OC[N@QOU@u˿bZyEuwU. -[S91TȢf^ 7d橦ѢA԰#Y޽'mH{.^NF$]y9%Zcigf}jT:H+SŊyijXtRI>eulu˸v=jE`k`C<(w`>0 9l)ާ)@݄]C2,wA75dN)@[2@{GW¸X={ vx:]C&<>}`Gawh 7FI^"9x!>d scpL+ yu`Z4'V"5"R8u4sr'WUcYon]դ2h ^A)J/NƁ?RQ ֜3E~egJz\*r ,_ᴎg:{sJa+ fʚTXә^3\HڵhLތOR! р$ H!≠@nQq^t sϗTeE>oB{3J]l cu߻մliBZ6O]I'$K?o͔[j} }vwu_RP9;rc2b 8v\4myZ%9L3֑:)lEh2?tJw[~)\V2YL0cڕBCQZmp4CjRe6QACLiЙ1f4FW3~{Y#'p; 'Yue^Zu͏4Nn*Xz\Lg6""AY?֊ع6L-s2o栧r3=ϻM+z`͜`w/OTٜW2m \'kȟBU*^f`&̤`R૶:C3k<$x0oG\uXLf͞9[=G 7_ /]|B;cxu1ySN3%iT(@gt.;w<'qG~:TP ?_v{ uBO!WRWBwR$}epHBc25>\<` v)̊Q~߇_yo!8Nzq<"Y\Wwm o/J-My&KX)X_Fe ?'^{K ebsjƎ>qC/Z1Ї~\|5 ߸G` ¹C<߭R?K%3x 825#'*P+HEbBMsˁJPV\dE֭\.1Ջ,kv2(04i>7ª08‹7=#,.<2,l.Ⴛcn8"W8P՘^vvXRIb (i0 z@I#q,G:C.Ókr`l6>(K^c(:+ٕ #aN6י0߃Nu鋺p.^&{,-J,>4{}ʃa$6-,/cN#8c|!OydJ?%˽ߓ-PPQhQG|DwŢYX}H,n\e#d_B3<(zdQ.*P4,?:Y¸Ȃ!1,?+v쉐pRa8cs^7z˚A}B21h6h4hhl66l6şSvܩ, },x1\8ZbRxeO9|!9ḛ`F^I/'g`PLDv":T}-m+ϣbAi[W6g̐XJ%=a7"pu{:~知~lwFNsũw}v9S+`kCVdD|v8Ho.8{",cޗSث}iUg-~]H 'q8C0x3zx/SCu P}L@s>Viiј~_Z؄ATz=fOiT|D_"mY~+(ٴ 03*8QfV?Se*=v|tb|8XrwcxZ\X/%[N6J{(TB,EyMZ\3P[$ ])vt儶R`FQ˖1~x&Fo+b~.XTu͟E;H 1$j]ؗ bo XG3sth4g=Vi>#Yi+?Oj$2?wvW`mOso{`C6"( 2ÒT̞!aIOTӂ"Wp~vgՌؙRj@mا2_9k TƞQvyC. *} ֭13Ǐy+|/tlNyx~䟩?\EuG8-=;<'|\'֙X30kXb? 8lc yV[ T_O;|o݌vJp(Ojr,z3jܨV&t 66S fmܸPLXe=8,΁#u$6^qlx ?ĝ.G>n1Of /C2f\|Cx$MvgU5،=tPG[~BG v7#j9բRLhk$ 0q Fq I<> @sMq/E@enǖ0TxSFXYIwȯE O 5t.(Q>#^ 3F(~$N9<G\y#V<`;;au~GіV܃n`ۙYܝO<0NO3faΏ0L ,8@S)z9YL6Siކ1-kdL#f]#[ۣݜ}cN *HBv‚ $";a{@j<`΁y1BLÈݵA. *f`RpZ Qw W7Ԣۙ?du}/ڠ07D-%=rpE.7,g ?43\f*թžiMJ hfQaDNŲ/{pyÓӊQd ( y7ͪ 90=H,ぉ#? A\ N-Imʃ};>P!Gu_I ں:s`|cΞ4DKL'݃2{YӇ&?ɻ60ӟRTXu)A#{㙧pBQz74B'i&!YӼ|) L72P~@kҊԑtPU#y4TU@cD׻fdVp?o1MI;x2Z:n_rQq)R?֙o;w~!s }ޙɱ8=]7> ͞ q;!sM- 0v˖_ieMf_%:E~MqϬq|Yך9r蹕.4aƷ)<yPoY~侌3>5YM'*C#SC(Y$Vuc΂+E W?L'0-rxA`. $ cdĀS EvGrq- q.iSL0ˎ,+۴&4Ӟ-9<ó;R*2UѢ`<_۬5~paܾ9&y3jҲoQ G'lF_ /`b|1L+~ԙL ^Q&}":UqL.<y!oCĂ8@mMF[6e4BuKND=qn<˜tgaM-Q? qbyyJ 6쐚%WG~%TMUlsx3K !>ӎI+x'*s0s OET`M~W`{/B`I=-qJP;3Jx 9ehh8 ȕݎ|\!_|6.<3Xߛ`REp(Ó3햟i{i ̆ zݣ~)_PggvhS@Ow}mTНݑ2Nº!a)BJP "t? =IJ%(6;* 7Ne:$L-r ,m1rƟh:?ah}QV1Dm y1}0OPNF NeJi}1)~]/ aLBO'x>HND4Bӏ }a$ϖmψ[3NbcpQZ7X~a< BA<[ 9q/6e_zBvH ؝ZlWO48ٺ=с>A鞹5poew \*ɻǝ4#Ar||c`~ɞOwdf'I`${ʛ*6-0TƙhrA=_ @{G+ڇv˒AR)Hynm)ƐbUe-xD#3/)}K?ǞO;%!EXJJĵ*gk%n?͇~``j!VJ)\!71t0g75 M"p:=;%+`^HG i~PȆB9@:W;];^n`+ ݍmG>XuL9;*99R6fH~HT(MnLп$Ogz\ӆ0y,!>Yo…sq"G Qlj i=-Xi`>8Ĕ|D)[ܟǰovG0ȷ3$^oGHݲԌ2 F~l0АlˑV<|?eC18[&y 2^h0Y\z J>VW6rS;;Vfhs$PzDkΘA>2}OxFH/'=A>_';&0g@mm*.p)m/rgѻ "m8クBhnذmJg%k>؏^AI>[ :q7v@ѹ߉:4* z!%|!I^XǗ'#q'8Xh9ӫ'Λ:q$rzh۟,;Y=^S*l~({@Nd5' p $# S>k ]ї? bȯO-A:HYƟX'Rsaz>#dsH@*' hL{ۮu4?@G̈g Tۛ$rFroc̉ﹷ^HjxNq;B>ᜇs{dTKY҄i#%c΂ ^h0+. d" L7seU78>;3"Ss?O!0{>0m *Z_0!чbm;|%D8S70ϰA<` ¬c(H"Bi;:7$8*֟!O }I&#KCz&:Pc(Ws~jCeHlk l0 Vތͽ?&{>n[+NzCC<(c)1nJF ;TOmz%PM!p(c5ϻXzC])"N8Joxb|(LDw#suF`AMiqEAPPߋgҍmmF_8zUMIÐ4ޢ63P*$ 3̉nɜT] -:7dvsYf;L &#83/s` %p)>1(qv:c>~ ?/_N ?;Lm[G$ Ig7ଈ%MVq8^CxL.SW 12_PE} ܉͆!Kї `;xTuvs=?ډ=\xz{[\IWVزWc$i 0=#7ǘs5g]#=~e\:r ژzCw y@;Fr1O=^(U A R4:_3/ǹ|-.߁ܺ6}3ݓ4k8m 9퓳{K?TИ-0z@5hֺfq<[.ira{75Ux}]s%n?̈́Iǿnpccy7¿v406-N<3ǼL:Hl5C$O(d9|'T Q<2+?H ݧ?[ V x= ޴ GEdi5':}Ɯ2{ !IO "˅~,W[8.zxIj'?6x>38o-4Z)'|!7Ǭ9PX`rNE3!)&CY?Θ<|s(z[Kjs@;y㡌εp|?FN :0<1ޜnch?q$ޠkEPt ?6(XiP+}`0F`P+P5[J9B8G.%\ >zNصk`Ǐ١;92EØm~݉'C7W5mij511~&[ݰ _>KU\yI L4$Ov,#y? 7,L.oTgGdbiBdNxWϮsGnta JƗNdTlJ3t͟GJcoEj3&M࿜[rǧ'YQf ?yco&=pfC5?t:c ~!U=ILŰ AԺϧ h+ {!|ߎ=s C'w )b0U wA6L!UD3 6Ҟ#B(p -{|GB}~([m./2Y<9oG{ӡ0q/'V Vhח50>!Vp]h袧TCevCNkɈnzbU/Zx"= lLmMgxr5ASrp c@į;8`ph.9&}f´v CzdA. pjPCs#2QlCd7%&>#}s$KJL^En ט?a߼⛟4 '-(hn s&o|Ƽ|8 a9Dyn9I[2>`uw}#v' _e(Tg$a@*Uofяq^2/+cbw1' Y2P9j?s29bvOT"K3`~] s;#-(z4anaI3̱ \ 9֊B(ft>xxَlu$7`} ?BGŒpe ©]k5RQr fDt_(G`Ѝz4A\`zD\tx}s%XiSS۞Low6:bRx=k-BHqh'}tXס}b0Ap3P|\8N*D[F $TF )P>C^jL|ř"0,xM4'gN\N;$-s.8#פ<*F$FHx<wQZǨqt:|qYqߤFwO(`I[ A  ̫ :Ą=v\c X*k&]CfFԞ$y!'"}xОgf4Jӽ+vNDYnD].I0_dv;#ADgWǿdݟHaG8{,IoN|Q_3:F 9hs̨.]}–`S~v0Q6Q= z ϡWL{{3S'2w17čwdBܔ8fv+H؜ЬQ M]s.Hќ>S$tufQQԄ$LG~SLx6T9{W,s!Qb};A0b~QnE]Nq}RG.H@Ȗ:`Q#`vH2$ImgO|'Ft/lR%()߭2W4ԕ{#akrOx7dph@Fb4dE0A! %!Њΐ5hO,yBS|x ҵ]Ȟ< v*> q .0{/xh6Ƙ+g޻Bh4Cjxlkyj"HdVd d./&c m@}\Qs0Z!yGPpى@`Uӯ;Qkt+?8׫O@*a XybDD{fϠbc+6.M3wsG{0ol>~2 7s;#O3W|=Ն8x߾NL^,[o?ÄL/X1Ev9Y5*OB '/3O`1_7 5X§BaK#-,y8] *Kb!\`mM"bߞVjCx9`6lddzxZ0?o@edzt"8QA1n#1EZ1B;?6{ :uNwM0gpe{BS5&Hɗ\_xEOV#WOPG# ߇'jg돨Ɣw.<<^F~~O1e'NQctӆ2n4[?sٖ[*k="ci1&q)9E!%A;h22_'D㟷v808\lq*N?u}):)2 ?g1Y?NSz&DONϥ 898{|g:tA"> H'Gm9Q۟{|zUXb+e.Dfδ[[xlV$5p7tf3Xw%UK".o&X!ejr`-kr$HEo>i/FcAO}]'VZ VYCQ,D`i@VB;grZѮb$,!BTtl-|i x.xy3Zz/eFuGaG΋SQxbpܬ>'ZPEW5jϟ :,>9Aih>a;t;A0y%"L} /aC8( [L2k.'EpjGqR^JYhidك#E/n0Q~ ݔt!* WVTKϩ1ӕ±A%%X'ef4+enrP#YdSv '5'aD0B]/n  3D ];f)v(YqSOĖYo4@2tMŠ6,X,jF+{y6G 2\13̃/:NtK{07eKb{)%}x"Hk-.5$lN)9gw'e\=;ai\`O=Ա?'kf|Fę%ʇ)rI3A+,`%8w,|N\GeϖU&t$qPS6 @,? Z4wG"SI9#hg> p/L U001.ؘrmHBK!2 C3O\f]GV|rLlq^^k3]H0<[L>.Xzg rÇn^z<ע."mP~+Q L^8)Zr+u135[S3`K|X_Qt"j;4Y}6*q_.<ϡ,{b/V; b'MFǶzuӜv<%dq`(4dE;%CXKP,pPPO}"+Щ踿{_\ s;A@`CŻ޴9 J9q!y3O;Linlv@Xt~%A@H7#6c1 56lZKMNy 2Zs*=HYGt.+PF32m*8ճ6`X4bX #4I^/aj엌6>? "Q)ǖ{A~[=I 2*ŊJJZq+ ?g H;u?Z)\zK=^:W#|=tϽƗwHdGoӊNRLFLCbJx. IzzɈb˲ee;\yt珈pLaF$ńFO]]%odמe>eU ]X鴀7Q=ĝg xrvW8c՚í4yx & yVjha)jct-؃p䖎aP;^{qwȂIM7uU˻laVUo-ܷ u65 q>܇_<=m%ysuViO*䑢K}H ytԡ\æj.upr}X%;͟nDaaI40h(LEdFRLqYˋlћ}zvT}78bɾwh [M YmV"@M?SOm/#o@nƊDeAq;˯R)¥>s7>ߩKv]W^f:ׅtf13;>3,=6NlB۩wx7;|@UV~uw)qU*F3dyy,µ ŴHLL|Of$"+bj@Hn;Nݭ1MaU,p~j7a=9Ubzb^T5^w ~99ѧ%EgD1aISL9\dg90jzfhdso3Zp12}'þ;l,D}'&X;4쒑&Z6Pp7,S.9P/дWx&g1AIà0 /B1qex91uT1<,*Apc|TaE4nd~>yn?-[-njO%¬f FʹϚ`ݫVs7pX4'$yb{4 te8Rz)fIb-AKT{O?;^Du6!&{ŪD}H :H5X` e@'bn8c1)C`Vװ`<(~>"%4آ N,<65֬(}E`a-p1ȧ3qh9c?dQ"h؎3,A X,`持6/gpY~cco>\t?ԅ&eԇp@.DL\A1EP+*VK !$˗ .ʒaR?- Z"+S3·YmS6mh ȺHE]`?K!viLȜk>tِxR SE.tM>vPA$ +Xf# DbxHxawWQ?8P9ݣq33{YG+9ξ"X9Sz0lM郴NOq7li |/7;4A[\oEC~+ܣ뉤n`˝ Ξsc pӓܙ,h>-y${e/-I3 ~e0n_0YA@cI%]Veg5` V.YRpz!H_]ˉ1T)yʸ!OcәW,*fFV5.]CB؇0T?U$8_·s~RU} YXL%/[nV7dIݝ[+3 D3%IR$dcmS?-kvz3 O~z%?\kla6YUn L/p2y;WZd:Tlo6FEѮ ]2'2>La*/8lbI$Z6f0׼k(. R.2B)`Tu1EPUc0Gsx5ڂp`_X v%ءŬ#*8 3ƭr^@Y{cWxl5Mmدjs#mB7xfnac[ slڅSO V:_a<2 ̢z^?j ^Vo`]?+xAq`m3qxveߜ0dT8}27>'$>xeL v^ޢ -OG;ctpqhV|tx{d@t0O'!l8E'bk1%0`1 JFͅΤ:-1)(x(w>Y8g @+;FjJWB] Ѻ=z-_y#ʷ7d̴ԲYLE=c23 _-qU* jw&c7~o=689UĪ+F142 & 9ߦlzg;(=[q K_=՜$>m^.9I<<@ݸ *9ұ*Ib2Y,j'0o IMgo?`z(b`o.  D?_.tȽ\>zq" LG.6Y7K曷E@B`*kIz`*J*ZHCz" jhYR3h!1$X,}LA@@<֒.c&[{O]'[& ' 9##>>#$X=0Օk[&0${&Gi}b ?k l_5V-bXXXE#$jC̝ys+*ll[2]rǏ .h o,ػT *G<:KR?/;T {¾n1"|ó̀& OVD$jKCCɸGwz6JpTzS`Ä\c2tF$4% a;Z~?>N}nNt#../7{ʱShoq/baVQcwsHP䋠N2vXjvf)1Te\q=BX;7s6&r7MAwK}y;1j9~h%R*) bQJR*kT U\VV뫔L *9D ޅKv3 MŸ^m`6!8e籡aASg@|CLw#opJo5*-mzV'uj6PrMEhOvmF\]H&[:.1v!o{8wr7Z!@i&iYnY$̣5I$HR] : |_q&p JŒCM>]sgh 3Sf5ȎcQc`:k2`X5Gf:e~BvO9q>àm;Nna8 l0>ݝ4N┹*,]":\eK' N仓+ ?43>Y<'3w kqЙ0pƴ/(ݝ=&T35{L4*J'L􎀄JZLHqֆŃkVjY,5Y}Ԋ tIEGy:pBrU:#@͓麮d<\8"0>7ɲcǁ'< ; rrc`Èw3'7QC|Y+Cx2rn;NP7 c$?m3d4YC7'<3qn #3aJ>g{gGד|'W~<숨dUU%:t*^ 4O3|1 z6{^lzwrrb͘z>;,#󌁽-HRX恧C@,a^8Mu̓2O`sC7#O).n͟&Y]K/bv>^jz/W&`4t=pwAÙb)Rh{ ꜽgu󁌹;w.΃}6ăPw6P:3fyua99{:{l!n9:f?@sс>џ)`B:aݙՐ蹄7D؎^9<6f0pIݖOX|YB`Zf**gS`R~1;[y/mB, [qyKbG$w+ ~7( `2lhp :ao4@A(#fY͇Ϭt!<#y8<|o?ed (ȽVHm\Ml9}W&_bWJtaF<:|>74O<ԇԦ vu6L_]YejXb9x;\¬J%= D2x`*P0JUt+9^Cu!_,fXb1cA<*FvǸ#GB#8ѐe4i= e0F0_~FC&!oXB?frWa3uxa4wO gDp!<gg>,vUT0Ξd)>>0xbxV,c+GK^qɌCCcu?u4b b<}[9~JJDBM_Fv~qG>&O[!MU3?2جؘ;U8HZUCp%=?du\ ΋?vCO`ٶ}z|!ٻL sЌ~\23^!?,drr25B<0{2n7L;ӛ=? >_,Xq0z\6TS9?q$(}WGe8_)od;8~0<$7~lAlNo N!'i CGml!60É_>/Ffr8Y9~NX!? vݱ͙ą5yM gNuhd 9EuBJ)A H)\o<_7fel|MiaOUyJ=&B'2^H'VN@LOh~/|;Ə`(yI, yGzC`}[Y!ca\eKxNt@\7vXw.>hƈ33 ёO!_k:ôdG>fsrf߽nHl9Wsgyd.]Ɂ}SV*7VȂ1]"k*|=&bƀI($)0a.М`ř yOF5 9CY?QHhcxv0sq}Ԇ3aÄ?,+1HxW>h~w7$:==hƁ dRi9|a՟&B5u< h8u?[frz+=jk=뾃v/3| {m4MS+'$=K},N9+e2{ӟʆgE:ٺ=#k]3f}onuܕЇ8ð#H͇CGEwZYNXx3DZzgBwǃ0p[Ҹ;e꺜]w;_ssHu|9߰杏?sCT_8W 9I`UHgN6~!ć;>O5!|ÇiH^99zU?op?3!G:>0;;iZ !*]ʎjQ aVsegN1øD_?i/fSKui0TF'  BmngVKӲ U BN>)!aW.E/_f/CFyY@ɳnx8sۯzW=m~@;;t_JÆC<ν5|L͌bPs39WSN a]eQ65yo:9~dx npǰ?B WVA—v`pl?\nOݘ'xw·'^Omf;>aHrG5~4;vB&2˜5p F~T9>x`',"J~jQ,pyN-_f»~_ QmsC}!Y;bB򖀮Q,|^/TU]ޝCuss=÷\px+=Gu|9̄-<3{tzϐẆ|awW}¾3hzl?>̏jAWV]M,oڃAk`Pa*)<f C#UU(Pb+^Ѡ͛bܤA!{,71x.oٟs>,LGП0r$6^Iz2WhC3jvOG8:tv>N^gxb>@}CID,K>nRIYTDw;Cݠ|~6iݐ.O6az/cJgB^ oO 'w36CN?s1:$?>?d9{~@H !iG;nC߼?CιdK}=<&:qvϡOvOް=W?|]0O8ma.ɠWch  /EǍ:b042n@2&D!əUCիV6ogs;Osb9V0`gCQA\( _rNL+#'BkϕX{!6[<ޗ$;1`o_|%vQk?w衽O6Ŝ>w᷍PLr!?6'BlɰF"Ta!*WQ ьŌx33!NooCOqNgð=Ñ?^3x`^JA"HR("q%<)bq ST4- DPD-)HR 0)B%1-RBPĈPDCAJ'R%)C@RJPP9B`(h)RJ)J U"$Hh %11.!zh )JRe(88(B@ Zb B$)j$*("R*(h J.0I$blaCM !JV1ZX*( i J )˜Fj R) ViB)F ()JbJ(i1]JtphJod$$ I&dJB!(B j"KKKHJn$ZiJss@*RPb(,dJ14,HTSS@HbDZRĦReb Z@)("&hRJf[@4S)2h JZ],a(((Jȸ %)i(B3J(+<8%& h*!a1)RT% M5Lb F"SADH 'cAQ7v[ۡ7?<'12X1d"DQd Qc'{Z`>~~v~<8;\{q;1F`x8뙰\`iЕ'4166a9`ǐO{ϕNJdV[lup^:FT]z_}= ?rݷ:a3}8hv0`=x܇CGt?7K6:h<e3PY \i'zvALdJ H5u(R 檩 3"+q90s~;Xq?Psa4alHb{To2nw㲜p1Y9RUXNj`R P/bB8OxD0ȧI,cyl#(敻`3g! bu$>>Xpm0=Cm!`y)$0C7ᇢt0ogUS~aЮ]w3ͤ E*5A~NSO:7 a 9y`wDpvc>qHCt#$0OOL{[W$9kz{l!~] \`wB$;4'FOs1K!a>_'-!FnU^H6=хOᙢN.ad6kP&~H>}eM/tGs PO9وdv6&۱:TVA;l5_c=wnއ2HvcfsI=pgBLlV5^k;f*O=oխv78!I%%+$)wdsh!HoSr.THfpNd5`';o:g^3h!Ї8gDͣr6|C1%236m_bkI+H/![+MɕЮTɠfMMƣRYZdeCqp8!È 0pH_$9`~0LFp"t$?qi C|×2B-~c z>d7aͭ g¾Ϫ{u;u5kǎ\8imۦz_`YZ-P A ٛsC'Wn?4*ݍeäehSt)?lzw6cն&!뼦1x!^`od|4p; z웂¾}=c$>dSy܁y7S:=a֛yp! L!ii uL<Ǝ4LcL5{L4*u  FޝnHBޖ(f/];Ocy팳T8O(I2Eه Z =!s 6DJ/J-cs>\:,Yҟf`쏇L/gϻw3itW#ep'n`~ ;} :fq۽h'v!vl!!t[~tYy=FWe<}/p--W XXTXE 3Iɻ"J G~ɉPG)3`twl!=LJuOnCC?i!P$|Lf\Næ0god>qeX8AhxbHz K2\z1Cy BfPrH[Jy⃯oTx5L>[(цA'ocOD_6,Y ʾ 2jV~eAqvijWg9W'¼EB9l +{'0C9ǝX{~ ~ol`qǺOr{xv=GUw}C7ÉZ'*ē BamPjU.<򅫕Ezzj'RJcHXaX.eW# ja$ }a:\BLW,#8ߪ2!7yxW0K @|<8c|Ř|>[ }Qe8vCFhz]02!`'тg1]&w)6?7l1>|M7x~OX0=p>.CC&5z?;'s8Fw!72lVeH~M3 IȰA>hLJO-xɅ`ӏƿepq@֩g+Е~bG7.u jSh|Moo}+vC' v|~ 3ӽVsepon;\`<?'j0;׸Dԇd{vMrpC:fxaO)/iv ^6 (xLm}ri}|i[M> %D0"Bk u%]/^Z2X2e;4)063c!3l9>Pρ,aAy dhtl)<4stgÖ K1+q~o}<o&퓀 J0A7յ]]g6ثW/пj|#7-Q_sDsttE~&gar'bXu U3a)ocjF MTԺ v(=;?mn gּs9r*F}v–KEYoor9!uVG̾}'du3uR3\ +.3E04j\B . n?gct+-4~M\+,gJ\ƃ 7lj?Uў-nOwf"LS#yެQ=C%y;&$?@X PTԔa&:VeT _.* HH?$$MNWmmnigoRjy `}랯^=pqP5 jRL{-TIl͇}oT#84M;^Mҹ֓gFb&Fs?yBQ١۠t|AU33vgҨ<5(E#D2젚ܧJ7yKRe4tb};RQar.sWU)ޢAR6(™Q+n^] x]]B[(x%Ϧ]bG {4bΚ SVdءzJR(EgނߤI [92;2\*_h;,R)\0$I$.^/^d$ YMzn8sWکFq}  h0x4gY6Oځy+^fRLәf֪5*N||&W  ]QKW*7W%0jAE=Z'^Rx^eopUuDNKC`z?4$PCʺKJRՔ5@ ªƑUda2O"*~qw6`ƃċ+|Le =kjh6lt̵A',D·>sKf罕C `r}*g5Xӷ|GMdEm>aG{5B"?4C &a!x}x-sFTOs ޽3wc|mNakc0?[88(PPd'k2Р4їE3z8|_/|3fy{?evfD=(so1wYGYq>ɗmN;o$^:w=ݳPwĝ3)&Xb7'"$(3Xbu&wZV$OKMurkCG oGeAta*?; # 40۴c+;zD^n ZcΩyUAdF9S]'T.U!!~S?DOy)zCkԈF⭊⋂.2(׎,IJ^Wy_!\V;pӠ$[v5ڣ#Yuh9(rZ%>JDN)nFv{v=bw#C?#]WAU@*TU% 9QQDPE"PШ(2U*dY1 YY 5pSS eO .ͮPN1yK)cKU8H')Lm"/aK50ϨR"m{ cD?7]h I;˾cc HA r9KBo0~Qr4V.%t>9cGHp91YBpӔ_I xܗϱEE^Rh` wu~ftxw0<@矱MIgm- lC8_y]/4g)4M̙b%>. Aŋ,Y'*; q21 pxHꝄ=^T]K4qkd|е 7)> x[X]֦Ak ~abW}w;sQѤ>[sxH)!jquk kq^)>φ;];}.q79d:kqkH2 @VwlGUBU::ݭaFZ ?g"ć;Q_[/'{~\\1iK1R6µ "T- R0 zE ɢ2h5i>ӂt Su0cqnA뼡O֜K(5Aɧ* Xum/cBb=M%+(R[ϙHh=^yj'4lBa~@ ­9~!ggVxWr* =YT4odžJDT Rg{ 5͔j3 &ƏrBM?vV;]dLwBw08GT%u,Cqe|x~?oJFM3'D!D>(<tCLaJ7Slt|l =>%!eR_+Uǘ:/ oN4 0b-k^'*4WeL_^MjgO9^TTF@1DYY\WE2*d0IbŋW_Ȣd[ WTMDCMjܦը"GfaUffqou*hSCFM2i P4H". ZbPU# (*Cq}Ey==b@p]G7QLH~\bƗu7$ƽ_WGد9$Ӵŭ= `6`i{Nwuw'ASd{fz !h-|OlnBfS(gG&;/uml?:CZscd;)Hk{[RL lc6Ebc*wm5{R*N+g:Q[u#qIJdbk"!! `bf6G<\}I ^dzItQ(t#K<2ըXI v9L/$SeC L/ޱ>T֡\[R]Pt=,]8]BYfUm%#oxM hF2xWǴX+ D"65K&} <'ف_/\ˊj\ h $`IxvzC⮤ 7,MT/ 2;N|ת /qG&U#ar{)j\x2aC.,{S"J:莎cY ^+> D(&n`zV*W͠g4D>v?fD *ʒ"Щ*jʪB*V a UҒ{f& -44#~{=0h_ D]3g cNmirZuKt-W$l8\9٨?ɼI_n7Oxy /w=.~l6𳏳l~|qKiLޛi1nӂh1_ŪP{ܲALav2d}>^u9 AM88YA60Nq% |ܢ-.2/ BND#>|د39ʮ*J|v'߯?qG?faO8{5_x9^ƻ|v٪Gn/NBn[r?-hm7F+>?)#[u~YcA4aݍEԏqd$ Gf5f^l6D22l_׵AbO\}WoSl$FBbf56Ա~f"0fXvQcdoa`p+?6oTeA)5U e:YU H46X̧w+w~7icқ~Ղ狢\|dyU֔Vu[[2YctD$oW3|.O*hڧ*HHz_V 6q ʁǴwP~6$5_sqӚzčA-!Dbi&w.9Ib pcSb_I@t{ʺKSnQtBwna`%I}v#wC|q^  'Vӆ|^nOvݢ/,fXσЎ87p R={41` c1,~=Q}qS*a3*CC$ BPRTR)TTɄ1O`?h\iDtQ'x3ǜ#yRcJ}]moWC}2ƞ?w͛o3X1vDADu{FvYKDS wԌ,c$SwVkZ{9z*mLYáP @bə)|X_DuLlx,aJۄ 9=PmHȡ;a.4([>oF^h<'xdilʃGop xr\$}#nAYPM*y@TLRݸ@@Y6_t\LK7XJ# G@8Ǘ 90weɌ⮋%9  g[ji&>a3N~^szG#j5eyYY\Vv:@+2 2ӏv6%o/zŇ`Q\E[#ޅkhӔ $*#_\|aZЩ^/FۧFjÞ/S;ˆ۰5 N=FjC_-Pӆ3FL4,ԬK@{IhـblUt Գрgܗ,|N߂qVF5>Pm՚Dwf2d<ϩ6)_>/y'Һw hE-\7,, S?Dw>ɑ%gbi`pwイQp!*S ⺪:j6юxFa#Z!;*f4|JbveWg lYr6@_ c2,c':AKq6 t u1p Q_'# Ԃ^ߒ \0ZN1Y%g2ĉ#*IUzF+/8 QPz{>2AɡV7WRVq"?\͟uIc  Rh3T +?{>9ؒc&U QWQ+UtOr" aWc]]*F _&i:Uo=淬 Lm?1 rBtYU/$C@p4VU<ӭCe|M/="6RҽY]Hʌp (>Q9W`PRȔ,+@D6 u[C C@!^?D toE~nؐ4J 1'ȹU=;hKs$@O [ ,ӺZ=JV LX.LQzD#xu^vN238H8Y<a_trD:t}iSe(v}ɥ;Hat$=,?JG{._8}_7IVuw#A9 J& *B }XP< 2K jOpf=n=&›Y R\WxwB1$+备 Qb?}Y5仠, D}(/nQ%{}y)u; KHyAB1 HSd"A>tnyNaր=N `f #3iQՙ`J@}Hf6 biCA@;M } (;yYOy J'O(yrn}e~ S4`^yh8V.d| %C|vQ(-Vlc.’ E`Eiu`Nu2GMыTd1Ym'kGCب kX' kVdk[rT4/LꓘaRXZݓ-a`2?ǛŸKby~.'Ch@8. -f<:yC=9_L >)n1 e65 >Q=42/)UYQ*^'\SW{.vsW[O72p9Ob;F@:3?=OLc7&f`ZC:9!vĸ)9#bvZB=qFlz~^/U+>Uţcb>aSsL4#֕6rշ4[QZr7'%OZ,/ߘZQ=O€0ad4bѕs@f͛6ulٳʍzs"d׺F(mbњ6,y("󝈇N+n(yn(PݾkW蕨)UG+:~ o'<%rPI߅6cc9ozblrȠA'1Ӷ !]Y} [%@]ouJC^I1Q^Pk!'5ǎߨĖ704y?T|` GڀS RdT9#a(H+Zt5MaT5DhT NKB$v)Hsc&|~@fnX-lish?9<ʰEF'},=.O=O}39C$% 0`(- uh4!RV#r&'uhy3L:fP.M:a9L r:>⏢t>u}!,W򳒻+W$rHAiLa㹻[E(l]y JJ0ksRO\'?_hvP]O~TWn{z{a+ !$z_Yof$"Թ ?1:Q׀\VSJw:艻* jH6h@~w!kӕ-ȇ,`d=Rzkp>$PI/Qw˳(PsOU bRTGHAWAZԅBI%Iz0˜*PdUv$ rbfN2'X#XSdN9(ݜP=o/ʀ 'B>!Y^Zns7;qY-X W,{n/%){ S9_w;ߓFamcL-rc]Yv/T鳽jY@Oߝ{!̗?آgN7C7؁ܠprQ(IA&!;$Wo\s;0V)tCO^ 93OrteC iht#5tU؁* Hr"cٰL/GO-wM!LBi*߇{|F 3Q$oNAqFtZaBfM[ PX `R =h-sŧ&zW*o7LډNu1m|{Q>OZfZ]A %\;օb(^%~2uzUɒz4\V64ZF⟗iv! Qф䫎~`s.O.\p86n;f^*âS?#ص;ox~m'%N tV,[b4O O:J#<GB5 1pqΆGoak40Ϝ΁[9͍^h~3kxiɘek[rTo;[Q/Τ5ɘ̳@D1_bߧt&؋&ӳjJebQͩ*TI J e(nEeO]wٿwu|H.:Q|j5$:0ut "_V_-^"ЪrY _w "6%:%Up2WU{g8~#vI,jt_%kϰd)dxȶ#1+znՋWQuKs&K'wG07泥q%hBoQzdpP_iȲrHαMKHY1Ypa9>[[7p<0nL@5FʧP\ CiO˙,I9bdxRHL1gy8Lʙ#>IH$M@TVő Ep/Akf_DI8h5L-vEO b(ڛll،a Ǘ9]Yt zđBz9^N!SZ\8j H>rz2q Ԟot5lNMaoB( Pdis.nh O>Z.Ev5_)GA6b~PA\׿_ZjNnʽ u6S+4ijPV+S/ʐiМ*eo) /~9oq8s%KX3FaHђTNP1`+2vÁOƈٴzU!Ό"`z#u F|qQ:⚿\ lZlS%f<*,ȥ0X %xfǒ'GM'Iۘ RW,)H ,5 wn]Çn;ox''hHפpBC>+8pڭ0p7CCTPd Oן\iE i<{SQtK>У!g !0eMOU(v1Exwͭ +2a =.,/+=emRO}&io7?{ۻ}5~.7{e黆{+gM1o|ׄD"imԾ7dU0+a}Tmv?ӓʲ..2􁼕_ٔ*@q2{{%!J]%KWa:\}asTO# u̡(t^qs]*fu=UtxUr̛4;7 e5_Kt_)s" m0 dtT|ġyUH^k9[U"$ 6 mQٴ͜ ;,b .o5,8lx0eDHӋ:f,cs`:+d?@{ß -ϸ ԭK'N{JIEfG_b#-^l^s|\W \0 yPPV4|)ezL ҀkjkeYf',fȴ>MnҌ \jR姍]] ?> ݛ+%F ?|tXgRJs[n`Ç~XOu>kĂ\p[lf?bMciȹڡu!fE WfQ2+'ڵ 02n7 eaaaې>Vr6z-y͉GE԰AX|ǝŠ,[ך\3qDim}1ZXyqiaҪN:#MR8^,6.:Qhqk)ư}kTG)C_)+[ ?B?pjŗ;vֱ}W䓯i~ڻLkc=xx|~636YVEi%Zxc^hTS%@5*k<,{g*P?Qb5WY!=Mxp)3fyCqκ,ʜv(4k]uчwȬ%y*ۉ{]T*I)8r Dh3\WUFƭITnFXʏ vuaGzK:jfHEH|Ui1S(1:MjOA2q}-!MMH&5Џ*NDrfNnntXI(FjC<4xJh){W`@qlo8҅eQ{j"Hd 'F."f`O[R!}_bqP0 (<'\ dwnnBvrK,!pP]!I&?v I!E E^q>PT{tc0P`y=0ip B?Jwl[[EG)+RDE "H;\Х;X˜!֙B,iF7GSuDDnfOSzE\9֠4=cwk'zK8C(A,g4|Z`6EXI-0$+,tY_:ǒVG@Ļ.*nWiJ6ا\ÜqcGz̷eK_{84;-qV ׸>%E%ݴktQ"|d̕ 7$07L~:q`T|} /<>4򐐨AM vp3ft(Rad:q8(^4q{Vtc>)nJ؍ɖ jlܰ,,b88AfYпÜIl?QYN~\~DK74=OP5An(-* -efv·f>7YzuQa}p|R pbMXoϿgGߜnЕCw4 ꁈ:>[ 8H(c>ocʯmuMְ ^ɳZǝEM%ߵg3)f/Ԅ0'ϋlp2?DX&c TcE3A 6D/\}>ԘAPyjqJKz鼈IԘڗ!jqZQ~OX*Gd/,;2?}o3 -NܓEٰff%&rVveJ1h~] _ ӮmwagzuGbx܇\4ʹv8w+bFE9Q_jstb0_5hTu6z$|{4pĸS= >-!p5twAj/G<6KMZ&;*hN6755dS:w: $ gxƈۯp>Ȑ=!w3x@\5Cw==yũmj4̃n )HVQ61Nt)xaW;b۞@fN;Jmx1Bd+ B-Sc)IU! # S9\<ŗ}K /?fNumš*~nBtѵ7xZ,4BFLeЉA"X dA Sa'uxfe-qOO=ez㗮|:/)fNN hܧ/O}v_R}iS|̧S4%7$i/dtKxÆ4ӇLbɟLO'Aby i&c gY;TЦwM Ӵyd4 tۓG2iv53)NǦ:)tÕM\+ UddS5LiM hhS c}5rɝm1r) TŮ0d%$ztȦ~}54F&Y1K$&.-:$MI{6LG6$F&Z00]Mid9LaɦYTrw)L*d$! NDW*fS iݦ4TIi3&n]0g.M1QQ&i`5DiMz4TIS]Lb+*Ц4ti0BA5)LtrikL)McH&fQ5iv&DԦrq5t˦j4S90Me4ԻL|zlɨi1M&3SǦ*I3iv)LIY4)L&ukdiP4|iM.ʚo/T4lu&_%PBՀB4Eab# @{l< % /Ue#P$B , 3sg izvUMNjj|@d̮*!?Imd`.Äy ꕲv8%kD8n`%3i,5M-V} 2ܞ[# "B U9NGde~dWU(S]p+“°] ;6eR !@>ӕTJwBcu20iNwE*AX]F93 rflFYݪ(2*BsBn]Ysk3SӐKfO^^ E!k$ĒK\.fJ&!1&vB3V<(4gۨ!PwŶT R=A Ġr5OGs\ws#zB,SY7/ߘ kH_)9T* Y*qB {xeƵC` U͖%^h {AH 'Ȝmvukz>9<}<; ҿ4s=/w>k8eIғ=;/ =@jI!Ov16l o˷4ǂ^l0aĤ_08Qg(78`Lp=WDd!zeu&}}D8'lD~p"PR2Hņ1iQ..\.]]"EWjgM 75+6t3&p8+ϾŞngй(jލ@zv)WyZT:1}jI(w҇ gq{7݅>o=cՋæ>"qQW5*!X+Z[?,,  7PeDAL7O|nEGџq9FEK+c{59&g1gw7|5N\&i9o1W{V+1p.k΄T3yBq:VMbļl.mf L:hx_FZBM(ǿwNWq*miDnL~o}u6[U(~jʷK [+z3b靁IJMBnϼ-MtT^v"57mbn6`U%6\MVsRkp^UXKnuYɁi}u1#4O"oX]\veTwmyϽ#9+aiכYZ{DA^`ZO%!?u!+0rq^gAd?w=IohB6cY;W-d=i/+mg~EͰjRK;u[R渞D1żi״Ife' +o:z(a4*-è툚Zoz\HXVѨۙbGC8.:ìs.b}&pDr_. )kRHhnxU Xm4;r;b M!AZ>f*37۽Zs(ԪDtewW u Ci<6}htᛮ9$}ģ ~Ks]?UL{^(0qfiFm)fTf`:DZ" .%(iiܒfXv5Y5JP` Aly✟`RamWzQn⯑Y! 0W(AOAyeLF,tۚF[М<֭v3SVO'lYtX ^)pgb0dC ~~o_? E[y#"NH2fv{=Pn9I}.n:oZy6 !:=&e##狨 e~Ln_ޝ9+<奰0+d cuf`㧹O3I)@gy=yXnPCU Ƒ)\V76 viF;%\\NhEuVv=IE7B +OHP6V8(~BL?4HܤZdp:?ҖY;Dfјk QΑq޵X8>.,ֵn"70OM]M5bn^]}iֽK^s DqEg?憒f/jC޼zSh68A{@˘vKy7?HÒ vwI#VD#7%oW}A M.\(:NN1U'"3:r|^5_`oBvYy_uHH>d fd 7t O¨n6LŢ/PIB#d#U9c"=/.lIѴH̱ǷٴHYznw㩝wnHn9i ^Ҋc9-CT;rbu!IѽƪzA5柶#f 3՗g- u~#~ɅT,4 HGvyz0%s>ﳽ He).z,\L2QN@A|D̪+MKxM## S۵S&DudzXNs}s$QA7?oH~kߵqwYvc/vO(70A1AjOpa/Yh/7'5 m(zyBU`*.nmB}H1vI6>I0TCz]臽!͝omg?(Ԗ{215ƺ," u;5m^Vjqq,;xBˉ3{G"CkܻD̻?U[.' Uj.xW\H7ԞG~rҌGYpvS|mv1tlJ>i!<77|Y7bG cTk٭ +R7y^$Weϊrxr+t_q}W 28MKJ'C,CL!z߼t6> )=r%&Q"|C҈c ر(ٱH·剬']- " &`/cVvTf,rqQi 5Aݬo֯Rx/w+$:ry%7FxO8铑l?ĻV^TfAvcw㫁@c.<8K 1~Dߴ{MYTOY~zPlO<ƳXF)Ⱦ@&ۂ^2)0E̻J whKMLJv^Xxmc#Rk1ᏠE'/ɍU\7 2b 1[InޠWtDA^57cp=PϠ`&&t)˯ϐ@Qq9~2cZ`J; .h585t2Q|Lp7hIvOJ;y|%oAz}I ;h÷UkhfDY2bY@dܧ\ /vU6`3`[js \{/p|'qWV{RÛ- ܝ)Cq+%l3fU oroEwf9=4JCW @80tasp ysU3yynT6jؿ]8cBywGdqV'=oN f(ςrʍ̑`hZi9tYA8oG*PX5uAE]'8A\{#I :c^lڙ3$s=!j*I|vH=_!&)'CnϺshƨS nUfy߿dSwxs9NbLu&FimZ#dFS6؎ܸ& G9vGn${oЙ~{T86}>L|pA<-m0_^~[a<{C?9l|'5zci2^ry^[PTqihWP##Wnfai$vNa˷k%9h.ѴK ” d|mtTe1r.k_2Z;<]ovLss-%,|~iTk 5gy}Nsu8;a]9(3LAA =hjK>O1~ǾPa5s,$buN] wTqy9wG,js o u=磰_Â:"vQ.ykW@>@5|c/Εq~Z:m,/{?ߗW~a/;!y% z wE;I&d$$g{477Tig02XBB)/wJE(VjTJO8D:'M5qh+4XrP{AY'YNw(8/$٭nMURF:Y3wHb`R 2:HObj`uadQlQA *(OUDrNsN|eqLLbQJkB9E,^:ЯO(Wc ؅}UQrQ8LԜs\{!h#' Bq. ǓY*2c Qbimgbbr2f!:U}{L|D6`7:&AY*ba0rC-_D^z:#2U z$Ú a;NUs9?9/iP1,y]әVfIr0+ا]d"^CSgY5COeEU<(驭 BbXq-Q~F~j|/D͂%obōi&Y=/Fe;Mb[5=\D\rsOdM3 ܽlr+'ه2.lVh`jKL%)Un8B9w=by,XлEaf +]`nkELc,V*ڋ,{,4xLP!M!A>k bm,d$R*kst$髉b,ݢr^-`wi ,F5A`H,vYEbR~zcsGe|+#< .b,GkDzab͢vU[A4ϊZ$TA*bZJ(iBR?`Ph3&DѯQNޣBj "DT#Aq6C"dF@dC#}/HdɦW*ڰ[ں~ s[ y~1V~d Ts<9bȯ{E4K#0dzyUPfT?QCoTq}#ϜIͪ=_bh"/q$P璳 l~ԎF~rcbbXߠ.#rʟ?W2ij=UVMm E J%F6佩8Ot9,,=9(<+ 8DIlڭ+ө52}JɩyqPلE jV}S3N0шU0 Qq,T u3( z~)V.tg$6Lc \ /nL$E!g{]- ?2)/;T}0Ѓ};lŖaFy{{gޕYۯnJVlcE0BL z֛&7=kyVūE lFApVeqCh9nw۠8, v_PK,[Z]a0sW3EHмrO$|<uPJ\ WSď| ɓ) tICO^PKmHN'"'`G85'柏4Eo]0H/("rx% ._&n ^b6<ڦuS׬}|=xq$AZN%^Vq"" @X$*~*HX$$ ]=$vãXb|LJbwbrMMDϰwx-}/i6Y†/c>9<8[}aXH8e 1.%'$;_) f/*P\+%,`󽸳:k-Λiqx+9<3NܫN;si¼dfw3\OVao6\PAJ~EOGpF Sr;0͗!ݗ#u\WQɞAj0 5ZV NPʓ\$V E E+ʘF#,{daVb1 1%(&x6\"VΎR.yߟLqZ컣 c*xtgD60U^k"cr=Jg'-ڭ r)GO jwe Nw-39i^ƘKR7Ehj,3V{:v~#zޫ.J3aqRE-HGзP~Jm UgLV;!$g!ud/ٙQ/~ZeiOlW *ؐ!57=hfԔ0V(ɶIV9}!]eFm+ vMO'GRuhoΏbgQ1VWJ)(Pb"3J`B#o+ Lc9iEe3aDϽ<}H$a, m`:kssd`j:|q1@UG 3HDY<{`B4~!{eB@@a ۸'w(,shiد7.rK֖ ^/x.r=RuIZE3qzF"}/{U׻]d69;X!Wߑ˻#GR)Tꨠ..fqa,]מ YBc喼޼ї<.Wa4kE6@7kY>{2yB^eޟlLQ2Ď|EFBIbzS˦C0`dCQQQٳf͛3:<C<9͸Ԩ?ϻ0twL2#juE[s FߕR']t b x0V^`3ea$<^it}"'q$-wV|VQDB߉!߁}eC zKp^ vjpImj-iO}eK> Rh/?Wvc$oI̴{/2**R_~7=pp:y3<ĚUc6G)X ?MkX.%hr_9]kv\ FnbmŔYA~pZߦ>Yb9L_{4๬hӻ'xVEQHBfeZJķӕ#l*&E*kOBbxJ4s M$kB1ȐNeL;9!$r3 U3'r̾pǦ G0) leWr4ڴ/,qoWbApՌQ~rKrZW?=DsQMXjw,. Gq) Z<m|˦j6WHl =.y\kmϽI*SWC5|xÂI'.ɯ-V+-)RUWpJyw ;ecʣP3,l,8aAZۚ{VVU_.f1-js֡xV>ЯkʬZLŋ.I,iVWhnm(&_kwF54S E׆{qx/O^Ͳm뗭| P?ax2}p0^#+ Vh uj/$0;c3ty6f}_CL?/{z|tY:y0vRSylcn&Jv,seiϞph+7\A*r6{yџPKi*(~R_4 #ECH1~QX1SHp%} u*swu|e4MVS$"kZUDW*'2V Ļt԰TäI ;Mg59k:hyrFSሄ,7QO_yYqu'Aw *$g=tcE\rV&@2C02,]enU>:dӮWC8'!j%KdhM˃B'O8Ӂ>O^wM7g?հ\ q)t! ha+F1'V0ER*,ّ)n޾<c'^Ĩ|d]$tV^٩h lʛ wf;.H0%W̵Žl?8~rBT%4Om̅FA"Zj Z E͔iN.) SM\w"WzLskikb-FVD!"uRC¸݂{#zx A1dT-UO+~zbw;0GWߴt̷pqr.8]r6nvC'h1$CJj, Ol=׽EyȾW[ƭOK2tU+SfJQnjKt˅xVh*4 R {:#XwG),^kͧ=O YGE9uok3j )nG_F9ѤŇt#Z Z r˚sQR96mr>uOL|&'iTQ[}8ná|m_;aWqݴ@c辔 9I])ԏd2(3O*Hs1-BM7ps1):ϫC@":B0h΋BqlcXg*XcLg/^:ن1bX'>~cHHxܺ =cUxXF2䪺H]@QFMTt7%s`8^Q*>vfX/ZX,O,*ǚ&.kia0.%-nVa,,~W8 _d\eiX9ٟ#H/@<#tl/>7M뗷ѭ"0K uOO++'2*rx 4FR?B4z .4ZYhqOdS='s{4ʫ64Z E6UeW7q󙑻ſW\V Y#rn5g驆NMljul)*.½=o/O;ȫQ︆~)TM{ʊ< +_q-yjV3»c-f wspH-_k$H]& NNW-3QNtԖء8܉n֢FF T/)dLTp\>VL^v>Ȅ4qØ(To➗NjVj@.L^cNh4?"{Iq8LJQIHǃ6mBu&_ 9~%Pm`,>Ұ>}{V_ ҫsK|rj;l'i(׆̃qü΅.EWT}509sYDmqqao6W2 G+,R+:#- 鍉ʊ.dԪ&Xq5E_toś×$JkVZi@ ALn*8^G]s5Uw>եK6o;c <L-{y-1T # 2'.u=|Ԍu&8nZ ĊofR>XXX "$,l+BkĖDyLd5(~L{^O"8ɦ8pMCܴ×n;w ir̿_+4,WLcVHioVK3Ӟ'^0GAlU6/:ۡ^4Z`˩,gYgB8x`[g5 G!c]E+« 똾)rdkmշqӸEc%#9#/DqLwAY2KBbs@((IIZ"'+jB:IK@ '? EWd0//~H8(#p6N<5'?ߔ5VnqŮ)hUטUBdXW($+ X L dU-ZW㍎ϡ˻"k2Np"옇Y'}yxGfї#yzRa* >Ө oɺO>@p ͆15 7 ˍ=M3}M ~# wSg%3E~`H6'Ip KVMHh]Ff SU7]ƠwyMܕHJ9Vͭ!jtvY˚ bD";gǛ}n;#5'Q;k2{C@pbᜨ?8n6Arq\"S yn82R[sܟT}nwD7 MLA:`ēI*X* jž' RCUp%t Etufz]Ͽ+|’hrp*p7%/xg_ .sf]a:jS0Qs'cEΤV~NVqQ*%~sܸ2*!d?Bɷ[X98?g<ae EI1ȝ2TFҍx˻p9l;EݰX7tgs2 Q柉ahTӧ_04N_rnlhzz()HHjB( `* e Od)O|%ѧboӚ8V-V#!O+J=M LGY_ͷ2hd]=-Bpx+'Q.vNp{jsV45Gbkߓ&q 02JK1)EԌq^PE39R[~I/F w7t946zJKk1і331nvN){Qh3|Jտl=|$uoqQu.%6[Fkf٧L O6JC;0c]5-*o, nXш͠Mu |%.wEoV_}Js"V~_b` `lWH.$-Zjիr W T 02*ǦkNC^'T{朤iǾ` ;46܃ lh~"C/#VTl#/kc".NFEĈlsoiϦ|(/+I:`;KWot՛4m55 by*/|N30{rGf>7NO'{,W@F!$kj۷"u0sdƟ&.H^U7UT!Ʀ1]2^ Y40d}psiJ \&D٨V?p?GtȊ޷տ|'K}&ڎ&|JIV$)!J<\*Z jđ:-/A8tb1D΋MiqIe z á՗~y썩2m9ڤT$Rdbu;6%e#]<) ΛÉ-g,M: Eӄ-a& W %m35y-u`Jgw׋l$b;G,`$ w*5yLNXA*r3Qxxx68=U{ כh k zrc/_.hoa% (RzOL -FyL6fNP>`;͉(vZT,pƍXN+7d*ؔ3&'p-g;ؘ.l;v6SĬ]WV. QRLE&BJ#Sߥ)Hs3N),j>be[ŧjp;ٞln RWՅp 5ٍ73Aѽ֩޾j?A8.' +w?E3hJʔ"1RYא*wL+t;pax( wl|Kd&gC_;.X.bw}_내OՄ8z,xZv0 tKv0>u+=`Ў&Ϙ&94=󷡷pLUU+d T BaBB WzpR U t[R:jD`RYeZHb/L1 CRlȜd2#NA6)|NP)"`M (Gke w}!5س€!VсǏ^OP}:[B V˲* kd7kW^ ^㉘4gLmo%eD3NEyFBs+Gr6Қ- j51&lrJΘ4=*Ⱥ,ؐX\ Գl60-kȅh`Z 2T;E`wWfU{fYz؟5=>Lu+HRuj LQY1+݊@QRtz$KQ#O9KO\ܞXHWb 6pP!bs B=.=XTdut aP\^p6c\\?X: Ӿ01~]#񢭂XRxBoO"s\|=\NhWJ6:v7q|a8+rBy1,] >[ZL,L$#;wӘ<y Z 2E!͸ x/cqc05kxfӠA^`~+%9^Ѝx GccmPZ||rdӚ$7#&fD\(ϋ ď4Fp`լVZj7C;'Bd{>v.U =oޏܖ'JAUިku*)@&>3Ao+aV">BzdO(=`.{ :_؟8Pg:u@yE q݄YxJމ&t_!>= 话e͢ F(wlKz4ߣ B*f?h*h֜IU8Ϋɥ[x)@ᓧyS{.vJ_Q~,_vu@olؾ2>4 wd2> d25tg}"j¡x_'=Mvn} uPX16??1( ûǂ 300&1ƟPڿ$jٸɱwFF{ͯSb/Z̆]yPCQZ/2TѶ$ Eʕ2ǜ+GXqhe@ bJ=:>vF܍}5L;Q%7lE(lA[4!Tb.6_%o*|FVM[5M1ݮЏON9jGE)sQңqhq{t)wገv# vhqgy)%h[oa8ˮakШݯ?m~CK=ݶq<IKc][GYlXT.u)9s:Ms<wu{Øj@ub]`! :4v/e~.L2:qI.4)|L@_e S W0+E*Uip^|TLGi11F@1޿땍2_݅%j<րy2-`;Sp9U ޢZlxwXv~[B=3Aav*mIld0r)7y"F>n`PU>aJ+lY^W< aԇ|28N[&Dln3B9a;Y1 T3NM+c?@$eL<xWB O]jRm|<D|eNࢦ?=\{ɘ`)p~ gɱv`83(z]fujT"{Ļ-Y9[fa4P:|&^}_CBxB2UeͿ_ -|Y;Dp7J|eK1SS˱5'r)|5NRO~4L>~~g!G{T`+x˴`'MU&6;5tNq=(6g1Ȳ3)>e;3WYI`Q&Hy'\pM kD,8[(e>?p|'{,ԐRJ[.6;Gixy[%?4OqJ?f!ҨriYcJ⺼t$P4ȄGvfߵ#]CB w,΃` lY*-D)Xcՙay~f|6Nhi=nyv_:%N>&rJ9s. n0(SA:_w66e*)(~U)ښڢ/Dܔ3U^@p2-!T>w0olaWn߷(l9,\}Ecɫqg oN/um@QR]sTv[pε T\:hq0τ>}ve~g eejBs!B*e+i[ZHZE #IN*!hb$]vڍJ-&ݒJf͊uʁxoy9!>q@Gh2o9}0/TZoح3EFvc2<=fg`s|l=˰sqE̫ݖ6z^ɯ:JY?L$QeY ,g8_z{w6~CORirG< 8?ͫnnc~ָ̞DV E[eQiV]H(XJ"D,-]U:LOKsY   ۷287I+EnXVEuq:Z )Jh`71'/ϓFA;Ǒ }!T(6+E^Ww:ц)s#sTQhLQg=~aFGJ5:+YmARH PU17C0r5[0gen0qc>aW{(:i C!:p*==(~('n9.6N֚{w ^{sp:trw0oUSrդi(xnNÓt57"^:_+&Yj-&˳vMݙegG~̎z 31$f^Gmw}x-(Ė l(g`ySkraھ T)w'x{-S Fʈ KjK遁+0@XǔFS%%)=r<eoGGxHL'-a4鷜%6tH,Uajbcb#\МVʈgŪԷ)XRK;׍TXAE\VA^lAEa^UM7K{:Id s {*nDol+^=^߫dƒz'_ %N)&J q"EzBGAx,X[ b.$Ay/^/b0c-2MxMҘE'uF:ً@g>p~ʲ{< ZfFgdQDW:^{i؎Hsђŋ6`h>$W~w0xCBWCִ}0tdrUX 3Բc9%锦vK߯ +y;sk{sG~t./R3oQ&c}[B d/@AN ѮdW4&TaИ\ٙplB!ޜIAXQfW%<{"eE \.}t l)~D8$L h0d{}>!^̾`MCϤtH4AT+Te"RG@ +ٸMCZL0\+@ryd3 0(F1M1 :*bITOclDh&,UGSL qwMrиvٝoa-wKӼN= Bݻ{} 8l/}j,aN'I7kN]BθqZj"Sg_o|bl"UД=18BjW3Wa,9 sQ%,^VHT'wң?Iu6N'q'Q]y^{孚4"8쨳5oڅIԯEL|ЩXuNay$iHXE?7^Cn9Í"lX<*$ %bPJuehW⢽XRUL 1@$x.6ҐP8k:#H~]9+T?օK [8A\HN׎G 26u0,Ȥx?.Z,vXϏ_>|U?^Nˮy]ż31] tFzޑy4=˥cT2zY]cd|2oś7Y{}OČY$ePɺ"W$Z-#EaMHUHZ-ZOHsb/!1'G(w;(tGwzJ*DJx^$|CXzm߷7#=/ΆA)ubuؕ=lQ.޽91jqpD$W^*03`\r* )٩Ō~pѤѱJ7nZ.vmtogw2}Wiצ'ae|-뽋o(| w{%}zddž{Mn@<,_.@/2H󅙌Vˮ02j0qI:F4s&H ̜P;quXx ^)ƕ8V :r)9"rkLo`/R pSHI?7g@3\̗&s: Ot[O)dg2QG b2 `Od7Fwcodq1f,&{2h؋e O?c Ck ;QV> 64,^mY\*NcE 1WX<˒Wx+qZ29 0iȃשׁc\}dݒMIR_X:>IW}إ*^5N. -yg ?uOm+R(6Tm]Ӭ* WmU[ kjVQi#[LZ ~>&-P`v7v@h.%1!1F4|77žBg6%U*Ô zzz|Ea^bUD0)TB,լX+%b>Ҭ!OLHÍOol0qPQo8%' mv6;?䒱5W=hMy`GGԮI.wD=~%|%+1 xxpp'Ojj?ƴ[확$p&I ɠp+\xa@^:貹i.3rd6{͊i49{ayGش7+nsE"N{qAwW *dUoOIۡMnt"OUJQ|ɧH3d<w D^دbEi%\0Eu^ŋ25%At(q]m6o-F׶}sV\.]o>B×ae=Sp9axݚ-ʕg۟$)qo6DuT~QIct{e=d\agEgRoGĽMbBH] biRF W,$16L/G=*WY*fQ P6z"G:LB?[-V4e!d 3h'#w\g`۴+'^NP=>wav% 8s ҅iǏ|aG1#Z6G:p?HtW SknۊX1WaYT*3rY=dO-!iS/ՃeDm88HՂVApd fxGl KwJ?(!AaG-jk߳[;~7~_1˃S-F&E?/n͜VTffDbdC{uo)u8Ǥ(2*\ո;&%>r)>=!jN_t7}DP['SJI5!'^vGSdmΰ^9%C8f NLڿBaJFc 6]lJXTajX{yx4Xossٍc_ [Ux!# 10i%7(c"dI،'1??T;͛gy_tE|o-CRF? a|Y{r7g|v!HJeTdlZO?[ld,A>-)E7HeYBZX龎hpYwl1v0"5 647>ҴrtָZ| DktHtWeRT@a`Tl}!#m_B E`&R_d!~T>J>WF@e̱Ynχ(ޫ1 "O_J2~r{j0c A=d.hPG$R %}~$:$G]z oڠA.t,Fɷ=J*y#lc|],oh=8Hr\@,Gz!tgSɴ~~g9i\ArBR@ј0ZJՃ1l5 pBe+SۧD?5:v/5vCvq^sYlimEDV꒨)0Cfy+^B^P1Ÿ{gs)d&B|N{h;Z6pe,409U*dj ѵʸw-3ǭxaC{?5o8dgO||kͳ w47XBbTb} Rp lN1#s =ѳjm W1|%{x߂f5# KrzM@xDɶZPtNi$sFs!ȯf>['6X/VZVV/+UW+JZ^,*EBs~WIDp8/q{5ѸqfZ&aKO$Jl/.glgŃ2ᷟ=Wih˄Id lah~ƉPbqW`\B>wV0 6yE_@g-&lFj42GtwkWTK[hxj/Fl_8ږ3޻(5-}%ms ]=~gm(/E5ĸ D$O-"t=TRGL]֙V 9}9M@>=U;'?m736]Y癟Gn׀UjQ*wc?wȵPLueceb(W7Wl *Eʤ-$Xm>H ꀨԳL]`j6fVSYsPX2 < p%0,F s:`-HLǎ,}F6l0tQ G tukWҰZd_t8@U8!p6nCy}WL(쨸P+ȷV^,.1fgl&Ʃ:**`?r%b,.'p^VUV+q^#GgF.\vuJɴ.dlj{8hY' gK9Kh6r/xO^/x vmBc+6fVq[<ḋ!?p/EO8s}]s$|^P+q ]&:2aNmo]P:&)&eBЛ7܎jxﯛi9>}&Ӵ1|Iw362%2ݠH#M_xٚ媔i?o"9m^ddCL92Ŵ(QוQ66t#݄)K BM4Ү\gpvͨBt_+`>UZqtJ3ͦqoC8* Z`"ʚ$!J*x D&㮙556,JFv۽98kNQdz|FS=3:y~O9[ϔi@vrgxsᔖuy&iu[O&'bAPq~` VyYmwFCRZ?\;,dG`ўYo=zS JW=XaPv,Mtuy;x7^ / T%Ͼgyo (/c) *Ukŋ,|XZ@00X=ra YgYRdYU1g }_xχjJ簰y_eQ^59<6a C”.jx

X]ʻW|Q(] `>RV<,4[ӗm1gBv 0m*X!+FdBu &T- ZKwV0bŨ&厽Y#'>0j1'f lpꗼ,)ܙtb6.B@V=nD)ѢE!nϼCRG`,^v G&rT$ZMT#M%h-){l}PB)9SuF 7_՜jOC>i;w$Q@p?%tbQ))86ݠs}sb4o4-y1.Ld"V*0:MacN^H ro?rwyٌc(RUT 2_(9@Ɯdw_V:O24zG,wkoCq PM>b*^_>[?)ĄƎOpP>&>j5L 5neFz,KʶSN̙"hݚaMm[P:`k;/Lߣ☞4}+>h")eOҀd[D/X+:Ag 3#$􆹀*yJMHY#f#x:/5)qC.PYFpgub˫Bi ~]-g^P1a*_agP8odEfS6kM![ wF~lgRQ9j:Õ:|qw2 YB\!Sn:B˛Gi|h=`'HXT聰=*#`쩝8948YڒſcৣƓI^ی:Е|·,ϵ̨U!{Bty8A1I'2e芔glQ__^FPPSS0V,jř<;&Z1ڷH12(-V **Dj>+?g\F<#g0@S(TȇptiD#D(P ?!qn5e˼" c!kf"7gWY,VVHT:#ݷƂSkggRbI*Ĉ5*6:M;R}Wrvĸs6ԥit3'4 /d>؍^.9k4-Y 2F 4)?xe`ilM*aW ln^;SȳAʒځ9B;=FDV͸u׬2@8/. M>UC [.)J_W`yXZ7@^Ѝ2Hވ"¬qrJO~m0(:xkIH-.2 KC:c` @YLND(tZ^(ҧC0pCJw&eaWZ}o/D7JY+]Jz~+B*򮘫+JJÌ_0P? )=ùw:sO#s$*f?t8nQ>4C跿oyj>,ydfsÙ.Ȯ+kxOϞ*8jZBGh .Dg pf0 A%w4f+8 KSNPM@Sa3N3.GqسZ"QN 4 0)U Kׯ^`01q1L@Ja{(>ylJgP{y` `ɺR9 v06V[:{q>t#0(m+Q=`tV3K8DvFBFb( Y_^둲m;c=]vleD*߻ P-|3A[GŶFĻx=~6ŇwV_NgԃO!Ճ/;ğsL;sy{+t_@j5Qg<3G(]idIQZo/. C *; "*: hq;#Qp{4‘5Tit?1oNmz;ÎwtSYs~ {jb84I*y\W(9u(*-\.\aW/# A\S?> yS&uMQYFЕ*rp~BE B}BzE:mj ҟv$Ų գ$Ms_vᥬvHoOӒĖ3`Ј)CO*heܳ7OS$0#2T'bZ*Aٛ~'1~Ge,$|,y rp hFT n v65pAk9WY.췆Ir4vʕNZʽp:/7;}w:qkQЍʄhxc(ej.\^Oe eu,XOKB f=2٤v3_e* ҇:PP XbYzlw.M{5one֊gr+i X G{>ꢴ;a b`i񮬸;*ps yъŤ+I(Y΁VH0>0).' !ۛSiiGX(W9t(^{rv sn C]aСAʮ,S?ؠ&-σV  &\pr;!|Vm fƀVeN<"lf"`pa4R"1 UP6PVmr{xO3E)X.1{5ԿDBBEF= |"5 +1XGĿ{THv@g5_davʠp1 #x1#y$'/$PJfܼ|lW~.6w+YM%zjِ*.||וib+q\q7@Q=5cܓ|x\} ҋ1>W‡7Y^`ZI"ŒjĊ!  Xܠh4BIc{:&&)غ&"q~.DC!_L\VNd5f̒}+H|ʑO`LD}ctC[N> (-`(Jamc̃&pCGqiLk.MsFӠ\XǹQt޼Pi-+3&ߐ#{ m`-& 4n |gr:)([Ce 0 IT曻򃭔M'I:(YkROW3z99ڶtc҃]}:c?&Ge͑.uP8)R\\t\aP`bP XKٴ"ƍIhCzF\E20%~9;7͑ 0x\la5dbߘH&ڐB j|iWJ0n_>çp!q& QD@iukI'vP-@ZPr.aiNgT@۩ CfR;}$EUYL/m؋2m-3vl/鷯;)o4~pܮ|$b.CmJ%9 (ȴ",YP ۾4bCϾ-n& (sh*UNR@\YlW];4CY~O*ݺusGu# jErK Z$i6!*??3݂5\f͎-Dզ ZyCT_z_]gpӟ wno 6g\/W+ȋ+J* {9.OG{u>1[_׉[#Fxp=[3.L ^rmuif<6©k? 1B./g4ӑ9]SgѪ&d: ،B+`Hmm] z"{Tuk.Dy'x0`ڈZGqj8VTP:\:MO $˛p.<Zmz (j5mPw|SDFB~FTե5kdS$!XX;yĨYedYYٖuj x MOi8 D*?LZJ/ lnjluؿ Ef^mSd]OMbKF09,]AMFNr0GFw= F謧MR;9 1DCW&w[R߈:}lHs]5ʿȶ Mx5q~ >ƚOV_sI܉^uԢ-z=ZvRbdֲRiJ&YбL,yzt&)7Sr ~<ZxwNCG'MPGe"9^+SmP{Td*Ki ,\-\0>VO2HGcuj?55MEE@(R i~Y%vuZ H;O[&Z-mԃĸ!vxu/sq7}{F=$Zv<#@\{8EЭ@/e<>W2>;pߣub>-eK mP_4m34G͓z`q 88#^)!tm j7G:c @ݝSSmӧ(\'6Uk2oaKvC@:STE E*H{Pg_,g=;E'M?s|Y麐of{X1%iR.\< 1z b1bf+zR҉7r+^_C"F8nܖiUI$ l>AЩjh/FIr09ϯ^T66[\M4f>Ď W෻/U*a2fBeqh=ׂuL;\k$X!Űi~Z^&P#U4a {}XP%A@јw=,E#8/k&l~/[Odp9h;*btxe2UB1STcs'*O9Lbl8Ћjؕ "İqbYYcK*H7wB Ne >X-.Uh'vmx -O*&>-/D  v*C}uad0Zz:Anb'͓ڮE$ @R>K[+ +ؤWA0cmSP.7'tuLrKOm󖣪ܡ1J5 pLoc]-x\LT@f~͝rk0V; o=c3Vƴ"Znpme(sEs AƏ/v^MdCe;3-fcyyy-&X4w;LgmqWx6~?dFwq`ahJ l.hWxdќA u+݈6VVr#~؀h;[G:p# -ߨs>Sfj ޶JAa>\p$Z( 9=L#P=?[ 1T q iB9Pʲ)-e TN?xoP>*B+BTH4#!0#I;!>Ko:/ W(K_KP΢+\&~a >)(Bag׊KNy/>Ɣÿakp*j5!X3/p?rfsb!s{gL"5cs|iPQIөAO駵1 ;;eX\h*N_󉹖'(b%Hz)^UZPRϭ:BT R1B%_"r=a5wMxFm:~=LnjDhONz"Cӹ]) RLǑL=콖q4kF@/Mۖ 5/iOTN4* &ga;Kn a`7$ 0 ̯t襁RB;P:6яT $oWq|6qE_[i]T ţs <49,`,}vqqаY B~1}?.)[x&V[5Lm0lH֢c OpLIAkvMȌo1RQwz]+2^{[kzn'4yS7njo̠Q.DMMJ#YVUթ+Y@N;E/w=Ȟ]\ǣOoFo}yx{>F}o; o}m}>F >|o}w{w9{p;xjۏ=y^w7-.<>.{nB>$uf'vs:^so<{=M[{=u=C^`Wys{ۛy<}th{{{6j TU U @Q[2$*J 6ԐJQVSC"QT [2"!T)o{^j{q]Kޔ:{:{g<^N^{7qεٝܽ3]{#p:;ǽpu׹=^^Y h^QgG7ZO@Ru]:}۰wogGF=5wM/3.prnm׼o<=`s;wױ=6[ook[w/y_\}:!r%v=4QQM4if]!5X9#xyv 7Af!ֿ|ā_i݉Ţv[l'#33 c;5ᾮYTzxCgjF=L r]q6ï[N%]32 O^_Dy n7%Hz6E9‡5vrP<ą6VٖЬM=uWa!Fdf(d l#B7#ĊQ/Pq梧O<~+˟Sc<7CA1 ebͥ@moR~!c٥2!|BF9sEj6d&HG\8tXխPly-O'wkf=O+M>su-s/Lji,\g?V ^rFbƿ6csO~牌bk 'TWv̍:^oB=OOռaxq*_٣Ѿ][bK wVOp +ư;b>p<>=\'^}iM$9  HU |,wtq=V߻Ԥ2@+Hoo{.*?N\~[ KB2N_7 }y]o2kL;>D)N/Ǿ=0U=ֿ9`68ة_ zFK(}>Ɇl1;C~.\JrRJ<&UW{E4oEm=G !)" (8Q ޷~uM|.ԵHwfEƮ_kaPz"ϯ-K^5f(q&®0\sU0ӲԠhnUse/ 迖ZWI?s=!)8IqJRM:/?R<_stZ84ujt6DO"6+y;s?,w5k8k?{{Ksw"'ow54t5QtW]vgYKe]`ysKލҦr3襕ߓ?)#hcpā0E _5$yZ砛)c}҇$l꥓Tz,u{ @T|#R7WYЇ ˾A h4|l~iP7P ƓGJ0y 2G6bz{aAhw7鈮5}՜{?E#goxE'|1e5c'.g%M^gmO ؚ#ϰG Wv@_?oU״dg_n%!z\ I0 $G_O>jJ_uhaziB틬Xʀ9Mmy7= lK&4 \b;˸M'Cﳅv"l_x=4SFnqC-ʶ"%W۝[qBo^Y/`4AqkHW6{TY 'G:?35}Q}ء1i+&ge#.pQks Uo^#"c84fL꫅$45x}7yS5Ie٦6amYkORQqj#aU2yߞ+ l*SG/ )7G{I uy7a*Y1l.ZiD Fa^ |o`9 E4TA{{Ȼ/Y#eL:xo0˯? 6iO0PJ$9f$P޼ 8j<0wu(yO^z :VPk^K U>{nc s' b8Ғ};냭DLؼ}*>aJA銯& Srj:؛u!dp>kAyR~M3h?*?^У1w#+C,oUMcr ES҉툠rv}*>/_zxwr!FHWM^c$ЯuJ~}g6ejh)?oTx2QFyK0lNvTШ{2cΙHfN34Hž {f$nۡ}-_BEIx#VP5P#g!ty'f#p/pGJprXZM lpS Kբެ! p??~5I04m( ~(j[h U ǠmN)Wbdm)~v?V\fJHEٝi:vF ٌ7~=OR/zJ3 9۬.n8"Y_P-u뿧lGN}`WLf1;ݹEk:\< Lv4,xCy }G_f,9t߹R>6rg,zdW@ōϬ]%;Gί*mT>~t"syzZu}M ={.`4S= DSv2|AmM|+K@EBg#w{Ep/> $ jo5x84u-7 $}~)RADj"!uOw?azYE˧c]ly:&ݢu~(|g+w7}} 7{<c-_T%*";UgX]#~~hXk!0}! 9V؅Tl{N: !$dbA2֍@Wi۾B xv`y*3> *& Y/p Wa ơ;$ x5ho "̽Ω,䧤'z&t<i@ux7?- __q [P>n uwO߽޵bx{sSR5Cn4nCЭDY ̾ޗg &PK1_o: dCg `e*J-w ;3ߍV>+fĆ\EZj 'd: c]jx^(]:jN֗adlFfw ^2!p{1_T}O[\jp,KۑG 9HZ^ ̭8~,/4FpvYdl N|@=>0s AgǔcP e Goզ]F|7@t6:F_.ʳ[&NAi/ P?j!_F)˟,ϑ{ ֗>Aiia<%=5u4V;>ٻ5k_OgZ)Yw_&iqw#'W4~5U˦ҽ~L{c4kg=1kX_F06&NՓ𻛲cr*`;h_@.f_u a#?fvTI? u*BWOT (6 FykX_UΣ<݆:V6U‘hw) #?g3r[-@Ճkuu˖0]Uڍ#AYZPIHKr04x ƧTpGw9_hr˶ճy|z,j&mBsZz?9H1#UhLIR#N4'85m~L廰QQ ]x\ s)+,Ɠ,1ظ{eC;z 'PAw.Y78_/ WzpAF?8fye^)sz߭_ߣsz(g~pTE̟Y>Qm'Y{w~ty9C%^xss.xN"UդkIe\2ḆP7;U V~4\1곔3uSiuVd/O ܭՁg`2R"i8&ӗRdu(RᲤy P޶Zx Gx:_׻aXh(HP.J:zcG|_c?K~l v;H%Kݮim;%Es u f=#wuOƮ Mizp<7uy;m+rh܇Xd(CpFg M ST9>O0y+;tC[͆{8taGͼ!8|.+ ן_|;#aܷ~ϰ?>8BHOB"1p3C ɣ'^Е2Y2]Inޖ+g_}^,T[e={LgG;d.{,bO[{1ʥ C33TcE֙ >0^گwMkKyڹqp1:> ,E=O7 + ]O"6F.qQxpV}dgMhQ]i,|;l~yL6:L?pp0iYPkuǨdoc*/%gi*h;B\/ΫkBk~-D?c#̈/vqw@v!B- _RZg콱0pQj?ԚjӠ7~nns2g°00 (/yӪ8{zJwQ |~_^tt}HC1^/'Qc30_P}xb׿D+=*Ͼ$ciB,vjD_> ,+^N+2u0@\w twBoE~%I>L >!B|> H{#7[56lo>l~"yTJPoEEOK?.V|W0P:;ށWnçeGg "]zg!6c} Gj-Fmxn=r#Ϳ_@Rg uhxk8F?\2Plxl]n> Ze_Xfc(RJXKw䌋%jN&ps*[f覤0Zm]y[$~Ktd_eo~Q+EOW}'йS{x#wBG잒Ckn;`  .ъHF f? j/:8fh;H9cq*r]yr&vz|??!)y#f0aeibc,v*kʹn<;I?OJmG"`Ma3GQYMPe:ڽ{Mg!/-TaQJ&6!ctZ@6kj&X9Di LQoR7gH;-,ӂo=Ҫg]xw#~[6S'WL$]LMP7#9oe ?&ƟRY;kٌo>pC6|0s2a 4] \}3} ZEǸgtv8f Ǎ8-,x:C{M!@-E튊Pڜ?D0-&e\\#c珷}Y,AV엺D_^e"Һg;]q6?Xw;13߹W7KD֭BTRW?ç9u_W9RrhkG$Dc Fw/HRkc(G)oUˑRm4n?|Cu.!ny<V( +Mת򟸧9XH_.{831'?Wm`7-@ o>ӳ#´0)X)p:{>d: 21KBKv^EZEs1HUUWrvHW<,kV[?*Șgn ?la8w?2׬]7̮6E,DjAboqx6n?jBl\5;R=siW'BzCu(U>˫`uXǵG{*6[=g@$&PW1e/E6AzROH#!x\ 4^œjL\=%-Kړɾ$=.%4*~INuH;0djelCAmT["Pj-bpc'!Nv6[XEG%`5[yc&`1z mH۽ O;EY%%-TV(͝hź7Ϯ+"3ZTmǃak 7l&{3ʫáSiIJVWpM}D)Ya׼Rn ^lEv͓!%d/v{W'``D*hT YmgM S#N4Z ١{TMʚz7V0Yz><ÜZ7-E>Nҩy9}\j#T?"bҨV(OgxT{rVɂC@LI#QktH=Δqx7,}mWveo#&tw7u!,YY~B{VpCx߷1 ok}~S^klRoԼTɪ4%DRV=qY9.9|WQU^Zٰ]o b#]IQ%(o+ T%ԇ$~}By5;9^V鷂Չhr63n&I!`HÌF5K`@ }H@@H@@QL 6@Ni+ᕘ㕱yL0EUw+߱e 4ɟ+08ojX3}3sqj%l|F\.X>/!R?gy#OE1v.`FZSB1Rqj#%b7e󪳙XK?bCs(11K"'B~jW߷ ^r? ݊ [voiJ]_}w;o㙖{Ï'(c9:j_GU-ifG޽Wemfkt (Wq_Go k$9:ȋ4pyLF:V4%`1e÷͏o|շUx6 1Q/p\@0iJnG y"Ç7lQ"hB2:52W:1#pA|:CY56~C۽y42;O?i݀󆂣iKEKs&LX%}c{yĊ2i)a~0V&7m,`>*]>puCq{+ÄM\q|>."wNU5Ԭ pdCP-u܎LaK}/Xrﲧ^'ev濥lwœZkL*@#Z\2j* .O<[OkN1oڈE!`2ia3T{z=K__:w7oƸol_ ⱟ=d\o=:MrCR8Aeb.8 Ě xc~6aY:6A}DAh]s 8X'ўzј6\< dHTBn,$o'?"3n̫FZu:RX$8uNRtQ ' B"ܗ_C|@{Oq~H^r^26I0CKM*_LtG?!.>C4Maeʆ}Ϫ}d0 ,PfIp3y Yq!]8lÆ })QlK?ǫcJWڕ87ՎSc<ߢށUV`-M1\~6o劗ThO.xkas*ye2D5D~A7iFz`5 OצZ?1 9Vj'!Zv=Sy3zYKݣ؉s2 tҦ?L@;y~$__錟JwBkBkgZ9{N _h2⡇M Bdx_ {|}\TݝLJ䙗 x|n+j8f5cDHGKn{;\c.xlU*eolq>"oG3DZ^?pᡁϫo /ֹN8 Ҝ!7Z?1D!{u[.,蒒wY3LLo}5EGjک ؓIuPzy_eϨ9^g 'yB#-z>#tEٚs.x{[j/J6n$:K ze%?bj_0m~D+d'Dp<[ZS6rJEP2ןҴ%J\Bknnz;=? H?R_u ߌ<{xP-_UG A93=aZ3ӲZ7v"pDG de|gg t7qї.& l@édYJ׊o +6ꌐwc>,Fn'r G6,6Q޷;ЩzaZ.uKkM1ϲ;5uؙm?S_ 䔏Ym1[j?8}r1g}:j%]D_ uaH+oߏ}(Bǀ+}cc5&5OOo>O,=~'Rgee}enCF׵a|-J' .?C/wѯ_^n{Гrn0&y3*a]=zZ2R;oqdg\^kqFϽx7ԛdc-w<!_9x*#k NρW;L>8h=0ܹN/-NLvsPZBGHM>nUhcC}JbRx#*6"|dt>Eo g)~ /<|q *сmǁKf܍ #p|Xm"VǤncgʝY|0cf]6-Noon2r5Z_OZ,*c\{ڎ5̈́YooˆG?v[_aV }n fނ}Tp|k_i.I@ Bg^&p$"OBB72C  c$#aӓ LÑBOD D¨Ʉ?Z !JO!]27 h CD2#iNMM"2``fS ]y ~f=Ph@>bI? C1p~}"U BDR,0w > HH9L%Ha ,, 2B! XАP    B1Ba `Hyb $0;!bI!ZA< L, @ ~% PB`0Q<f,LA 㐈? @KIR"=% b N,E B u"X#"HHA% H 4~I,JH c0y̒ fCɁIEd D FA`}"=!Ԃ:GA@P")""% P"(,@i>A A D,GDaH ~`%C90}g(BXE>rHhb PbABu2לP |#% O*i5J$d `Et! 0+jD"PH"?`""DQV Xb<4~a$TcԐ!" $H$P~͂,V~ǴL0DpU3-!KoӃY0X/rl_yǼ( *1هX`X"P!XE "Q@` 302%9&fZABp P jGznonc9'G~$e6-V !>V ! TTB?``a?:& aXAf'0/A ̘9B!9zD6($TpK YZ8CɆd 2fKh)1 ~&"b#TOt UDN#M  V" xRBHܳ0V32nQ~n[R|)($UFabPC^ykK̂Iʢ|ffLe%0!! A+ |J 0+RWAsÁ@JƄ U?*)DHIGD # d؄jSa $LdF1* 0L~(_XTW1*H'H ?^~ܣ#EA#0L a2 B@XBa,!GaI"5G< }d?TDb̲ ~_cr)%hHz͐yGDUQ `% ?&GG=DtcH*!V$!K!"A b4G"$H@)A5*T)D4(DT0̄32ed5}!(1"LR(0FHdɿ0 AӺ7cB$abb>ACT0E!0HUa?C0`XeQEĢ J1?*@r?vTx!,(  @) D,A B  A  BBDB@B, ,()( @ )(D* (,BD,A    B( B@@ ,A(B (@" DA ,AB DD,@   () ,A A@@* "@@#,)(@(@"DBB D (,(  BA B )1 )) (,@,D ( B 3! C0iJ~2xR>wbH񪱸3KR)HBO V{uars[It&@,?3g[۞(U1;*$kM.zu[8\%w l6p]e] 5pK\]0(K!<6.tUʬG^rG,BE^IX{u7&YDzjZDD1*$@{8U:>2V&NT<ɕP9r♝WNuvO>ҩ:B~kO GWeN@$|>Z$ԀKF7ZWDfw֠^s/`*uj`jm{8D&@I%Pah>쪪*LoT*:Gr|sKcN={b|=Gʧe @=Ga4 ssg\HDBB;Ǣߜ9cM %oYը>v^~/ɔv#'0@p}vӦO:+:ƕ%*y8Ohsc/@MGUC&~2c9W(EA0NSMf]!"@G0P^Y=LGL] v`N3VJAlJ~D\+6j)YVHk&+0ز0Lep|>` {elbL6#NN(|L]t|ԧSGG)"]bb V5yVQ?Ӭ,Tu5$L2JNB(WP̾ӎ-A[/Yi D+^Hp4\nPLM=:a`VJnylg"UЙ~`ȧ*ڧAsV X5f_I]MZ*q>+W7cz|U.ňXx]V GY̢i6+?d2^A&k͒VyGU߫Q#ŠZ}ERqLKgY齋!n0׫VZ<#"3 9L\7"WY Bnbz9E£^1n]l6w>,1 \z[h6VO(Kp%]Kdl<1ӑJD[H4"0!^ lj0nh݅\zFTo>dMGxmvt —n $b[fE. ֶ__s2[Dhs$q>Dj А$Z2qEs.z_%_%0#J]dU?J*J}rjEKn/c~qTYhk]bW6`x'B/e4~f~)! 5M%cKY('Gy#(DRҬeSc1%û84l̄b^bc{vf43&ڟ+e7k3% f*S?iV}% w6Yr=4g|ި,)?һn@ CPAm?--Di $ O7gy5?~pxJ\S,G[{':{Wi2R?3X:,18\?*g^~dDH)) j AIB@D@ *O T!hxgXD.-jkY請 ]NGqFmhr D0hJ:!SQ٤7{8Q|u'Q iCG ź=us,o_[H$z,ʢZ?&fs?Tu.$o$ vxEYE@#bV ;  1&B(X}@ kk/5~xR5qۢ{ kԕUOPITVܫ*j7Pay_*Z<2++ Pxj<*ido}6VH7CW{ιaHNdTW`_U!W}I'롊U@ܵ&;[k&dr"}NHҪ.Ğ+:^Aي:2Ćcj엿jvXcyt/x[}`uw|;N[hOgRzdm$@ck B- 721CdY%Q(%hPҶ*jBũ^2%VQ:: = |ܭT}$|2nhZ\#HcNRBX3mF-+hʐhwvuxѴ\` meӚ(vW'u]c?rp*с(n~ZU՟n5|utꊥS41[H/:t~T 4h5/vYB'ҙ'vD20]FlX&&}azכ<(qFi_R7|{LlT-ti-7IIII`]$|ϺJO 'E!==WQ~s3Pr*< |97aaWX+>d%$ BuەIӕ77HCӬGFC+#]}5@-MT&fQkEO^؊0@ N<ꐥnQ { -o[VfaЁ F !D ^0L*gxY#` QΑ*KoH/=ҥh9n̥n*u*;vli\Wb}Пd# AMh"D'؈N+ BPJ퉢3+c[n"C-6^'gzc^%{c/$/sXVEe8RMubx앁z1AbEbdt,1H&F3Me){_=_سJ3GU#'Wjd& d$w+qS ~cV\H"D"]Wڝ[LCKt7YEGD)~ 8=>z>dLt=ڋGR9x(F,ЕTb–(HEHV.1⺤J=][jb| "ExT M/Y<~=ퟆ҆&!UK)*mt6j+Ym6UEEV)^\Ǫ}^@\J繴b&$<"ǟMNFY#q_d34.PMIjf22ΛHG剱ʢ ޼H,ZvUz&#vUY†+¡V*#!d2 Z^Bon=_8aYmm{?hgΠslC7&~%֘*Փ$ MV9yK/^HHK{prCB 3A.VWQ 2kVhi5]YcgLĩ҄E1h[^΅Qp̾P&iU rlgb0qIᙝԹc_8vӻ7٘ ^ j(t$fyᶅ"ςB>HDUh9?BB<Yk,]k plK ΫğN׭v_wR@ @6=6E6ӎdy{?V8Ñ/s=z/,,4t ̒R1.Xʇo`ݮ~kgoIu.W =TV"|/wtS6b)0@\ prBnZ)>ɓ~wDIqbU@=ilYcXo-#M6&s"avڧ)'Ei2cc5m6@"{JޗgMnl7s.,Ag Ҽ:e^ygs-Ͻbw T}M>tŵzΔii(;WnDF{t8۵gޏ뉘Thu,OAk[MDwܾѬ9r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\r˗.\s!שnz(- DǿjR>=7je:-; LOL,ty:㧧m/6z w?MjV,TZT+ǨWʲ>gz/þW<[GN辟Ol:z ^y?t5;P_uUƨgu=Y5[!R^*9UEUrap9< AzP^bΦ|C?ò`~20>9gl~S~LKDCɷ^/Gїz+98,Z2eoG YYKӿ]^<ўh7XDyqq؜1kyo_[Ӭ/Ž؁!̓:m{OI" &0JY'BuKY!c)02 ?t~x/iuJѦo'l5ck#g_KFN/^a\\DQ_3PK+_ iN1^?< mMDnNIu=#*b*Lb `}~EQŤШtCͣ$oj;c/-epO-G_ qki W5oxWu~1bOg*=#*{J:|):jUq5##o7hBm+Z LO'ҚVJ8vŒ2)pߘUV;<3]?6#͠O %@i.Q;dMPQEP3 YeEbȵZ;-:QHg#;dwXhZH$It֌᭎=oE#DTC> ϓ8)g1t僔iv?.qV9|S+k6D2<\|˓S{splW̜PN"Anu3ǢN'ň+ƳS2j;Q⼕xǶݖ)Iз !ԐB˄ GGc!8V1"ue7>L*a3ū9v2Fz/"]I !7~Ŏe^M{Nv-W>W Hnn9q 56%7.eMSΩ3?jJ|N[|̲n׷Dec?[XXۛlsU PL7d.ыDϷ|:ĨQӁ8R^ou0s2t z,E9y:ɩFv2&].*n D.!R7*;~h Ҥ8!I^p7jDE)H.&&͚VM3u+aTjWPD9 w%lMɹ7A݆$nn8@o",8XfVJ,"K,?4<%*#A2D]& | $UĤL/s_d51٬і4P1DJ G?5 naF&?A_hy64.W&Uvf0Yb}F>XH0B=V ҿVXBP2h>{3ΦLu[>TYo{|^^-_..rdrvq+Sʰy0q =nH]fPHbQV:o aI2vF&%Ξ1U讶_wlkx^@E|HtesyXXm^)juv7eЌi]rVktunc|y{x^z^/P/Ycm׻>jU?݂~o^g:3l%"2N(6^J "4byrŊ$(pޱ,)雷mZ٫VX::G[#PBG" lwm~H5#u៨ZCgr.G;$M<5 yW6X|e-C]/Duf=Lw -^@lTxjF?06o(ABb~^WL^3Oue۲djzoCNoZo٫ߛd~o:$쟚#,QvX."+8,ΰ =deip3f-1칧|PJ=أ_ɛu2e=E.a@.>'HOacTuWXzJ9aWp;bDr}{%=}Fbq_7! EGo+S7!=31B.EB*љ1:~TG^Dh<sOʅa%$_Kp lcoec$T9[;Q5cr}-gj ݴdeYż3n}ͷ$5Dw phY kzSYFL[(I\&E1M_1 'otV*ɸțbυjZ.Fzvei#^&8īmXTz1L:]f*LbGQIsQ9٬'҅y;*%MND邅< U9 RD'A A`_ ů,,"!$ BPjjԺ[oypYmMl9YmMnJR6Sd+S&n\ڟO4 }~^:g:D$# @v{,S"ͬ'&W86N)d,h4JOm1T8Y/> tD{sYCaZ>y ~H[vgGTۇL't~.w݆]HQ ۻ#;4!dfbQ1QWRl^4ŘeHli9  k~q Ֆ/u@8#A-tYҎn]‚kNzeizܝA*ܱQꦙ,զc#R],8͖"I>n~SbHIT)ޗ-zj͒E6rƫ"*_Om:Ъ|}H>DR~y̨ԫjgEi ?؞ͥz8^v^>'EOC(OYђ$ER:'MS(S/ SX)a;y#󤽊V@ x6Oțdg~[Au?<ߑdw?xD|K9^Wf M990*D!U2oLK&kQwKLLǣycV3LA0Q#zNPSFczn_ DƤ#~m\DNjQ$P~,D32Q6HjYu<+6SdAo&y0`F>q}}ց$/ċE|d:ET^B_0Hs<"pXyfҁq)\Q/wTsU^F b"(ӹ2tlUfViI83e/_ʽ*߉F|Im9$~,#M\lM#&I t:Atm#;8"q'x/_bMySnI{j@;=(i&-'ݝl2t(\}TpV(L 1'd}>ھgL[I-5(ү{gSL`q 3BW5ގ#XVm8n&y ǣ) ML_KS,ŢpS<^nUy +[T^˝b)͗˼4gpu ~tsL Ր^nr3. &s  'V}.))[l 1gd"%sp?[[~2/ *c ,+3 0B8V o&̒\V~*G.ʡ +~rKмw&@ V߮Y`3fW|:Y;yvJ j$PsM E/tI]>6=2Z(o~.ػcp'b]at9۰o/* BZI*ǦJ`.¿G\=lrܠQAmAN1R2SYY"ʗHZMIE41l瓄(8R+Vuy)sbLT=84hPd2}q)ePJ䒗\CO,ZDTMPk?yY)STkh]XZ7<(:y:5V1)o3 1#QK Õ>b1&( '#@#O>\Wp^j"&٠ќ߿MA4lg D`P>jF?> #6QDm{&QzƔ ~ z S}.V|sz4\̝Lf쏑r2E!t<ᄷ/}]Pit_pP4k t&f`v1](w^\#fgF> 2^),.di2Od U7=} i֙>-r޸?A? ʹo;^|[2 =j8{^6'x%S2q|Z)R|?ZN[8Ƞ\krQpQW;qן>ye2=̫y16vRsJ fe ;2E;A@=1ܙ.:8zdjet{4/W҇(_z6_'7(P({LW2EuMȩ-2*[MXԄ*A֠?|ћ&@\EJ7>h l] ز΍ҘyzH7YӁ7z-O' 6홮'Eȶl4 !9DW&QX+ŖWNrWL"c95svE*[uY<}U3*-d9sfCK.+5֌λi5]wͪߗYik4XA0bv_9+OoQa՛ N}\('XS>YW~ԉ&2yoeg£`LI]IK`hs9CH#MEBXWOԦ$(dkp=Q1TUA͙{DM<X*BWZS DÿV`n1Aƛ-J)ܝa5y'n5m%* |<^Aޡzx"_ڛUJޚiqHbO`te] %om~8΄+$Ѵ<"X\B*e>/O땗p!s7A"nJ3rL,D,CWJm2!尘2ќ*(5ͪa3h>4R6/;~Q h؍vs?qak"JrzDjzI}~]gݬ^5:VdFޱwJD`r7X88&1&$1p445VV' kn{&WGCP?#/2}U9ԯ`^J;q>Pٴ<7W9Zz[e#6Gp0XN{=MWUp笽N]޶ۗo^{x7+apդ|eI`_R+Ŭ*yt|a ;Y|h^PxO˂},8#$$!9")+ ٷLv#C!oNK A/ vV+ȱpe~6+ac/&'Ҳ"|[-TTќRQc I ڳYR?q0Vić||/>~3z/sҌh4b9a͇Z MϬ,9֩5{S!_ysJZ̤Q+9Ww,˝m,*{՗(Orru.W%ɜ̝PHGm]Tʼ olted.1=zGN_r2EӖD9H{x˙]yI%,*J`WV]x[.P52Jwit4%ON<$DtR6Ƿ퀍!j#qOՅ1)h`Z%R></_XN#kǤRI4IlL5'Dzx,?Ǐ,D  4Iw/8XIU uoPNiId*c>N}{O{O~*5Oc}GR ,N-D׿!@a$No'Trdtߩ2{q L}V"NYb{u_  dh} rc5`F-"i܇y?$Z21 ;a+~rN_?G2pM/1T{> pfZT|p"~يDoyn|hYzgKC܏3*E$^yl?7ۣa0+bˤC fZz6ݗ/=ƄS?wSl`{F1T5%T$"rker֜0`.$L9.~EZ3,ӥZ\/ Ҹ`r,~QHBD啿|w$kY_" rxx'8lVQ@y`@2V!.KNq'Mhhżc iSk]`o+Ǿݡ750]apJ!;a5{ au$ɖ$R*$?[֭0F*C^ $}srSrq]*d*EԔ9[e<v)S6c)O|S==>>)O|S>)O{{{{{{;G{G{G{G{{{{{{{>)O|S>)O|S{{{{{{{|d>)O|SsG1sG1ߘ9杴{GږbA$hH1 ă H1{G1ssSGҭ ă G{G{G{{{{{{{{@@Ul7z''yǔLq-C!a|8) ⌉0 >.wPyRLvJv_ LjzUv (:1ժBaꝓEaOʟ!|-F̊?tW !,HjxBbru!Uq:ֳO pcWNT[TeOJ#s1!Iz41'hv')pJQ)'~£k$J_Dzkk9 #aw/]UJlb.j0vM}^.܆#o{p*;$Z>Zc:G0^ i 9V{$;.qture{&VG:T(?KQzS\saw̖(ž<%r[%/(SgR A u#Q!X+6Ȓ!C^?`&:~L$Ev&5IGYb?B܂q%ps[QOg+cȥ3 ކQQC2&qvR΅iEgƭm rش-kqÇ[b-fQxqqŗT}TcW|ȻL+Ët|QlߘS$BGa~"b`U^b5S7DF **bdd<=ʹ"(=!cF^SkH{u2n^Ty-A4*d*q?.p a)eY7_UډWopr+zWO-!T[)otz%TU~epϽ;M(~','@V zv)oT{w{2vc('*l{XLI ɨ,Fm],7ƕr!D3+{@L{2 Hj&|gKX,GZ][ed߃L''9.4KN:h*heYLzNIד1R&z`VLIjʴG4|9+ j8Gh^:jdJ-SVV+ 3Ng0kQ5g(4*BSI2fj|ZZ3.f|y>tXNha"P+JdPK,Qߩ cBӔY]W8O?A}XysMa}N,4BX=2}\CnXw|RLshS'B{YHa4y_$ЩQcG9Dīde* s6!XY\z@Kv'd~6[KAڋAQB2g"(/Go HwxX);9#4!<>>9QW"Z]G։+,Z,~aȂXKGF_W5&*Wj4m`Ir+}ɁrAp12ʺ/'m>q⸼2~DTF#YLWU6l{ı=ckԭ(\.ҝA[J)o+@,hFp߁T8BHB $zhNu/) if%ozvkᖡa0JT|_}+JP|d\C)K<]mXBڼNX+D; P@tcM6咐Q1qL'Ex֓f a@̰"ךsGTG,}U~!H糝#B >^0@<;"!GM16}5(>>~t, < ۗ!}OFaXX\9L1$V`K푰ե Y:gc ?+:+1q_j-UV)2)}ߺ 7fx(5t0[%]~F5bKɘ_ yf⤍+HP"MB&Æ=#|6\,uċDP] r~̮?-_xurį[8uC͞Rq7PtW^5~-2WN}ˑ1r+ hew3džtXp>,Ql7/w%^3YUb6ة#A({ .ֲ(̑>i={ Н5a}'I_k_nqqPL8y& 7 iX)գ2UQMcZXmd㝩?OixRxDxr~/2$џdk%ǂVC{σB,8m=E\ј(;g5V"DS& Lb${StAVDžoa1aIhFU&4Ƥ:Ή{^{tTTRA $%SIf 8yg7ó%32jd>dJZSaEYP|gyx.Z( GwB,<06ύA5/^ROWWJJkNv&Hl5ux.~^-o[7l vIW`U ݵ#_;*nքg%LWT#^~KdNq\V[t'_}5:-4$W EM|Ր׉G-CĺJ Q%z "ϳ%ɕlG(dq*"aWOyBO0f0'r6 *'Vmr ڪym >us-\Iۓ+`˧}s8#].0D<ҕL?<J0y>~y,$^`:zDZ7+qp;ɵ#D|=O̬1&jj*2d4DyxbE_aF0LbF$-G.X7ǝy1f}OiH1VKdVJR̉PQW|zmE{`vP;3SI8ðg$Вެo Y*.g#J>mnX}>m~QjWn ,4Ttq'%.B)?bP"<Y ?~jTxx|Mq}-1q_hVaUvd9!|9u :Fr>[m;ѥ.c Bڭ7Ca<SQƄn[}s3Ped|}/XN̦6eu 2r!_z\s"y-c:E*pQ#\ 23uzHGyzcC U8YrΪn/F:YYD?e7XBuN~UI!Y:-ff7*ڍF bnVqjACڝ>JQFJFQi%o'\Ԛ|hy*ǐCc%+vE@Tוb]2&TO0/mx5?AO^_WbT+Yl[b94PK D_:MӊRE>_z_h^ѺnN{kJ0R_G2^+kFƦEjt lq˪pRf} `AckaNqIqmJdsBb ou0k4Nh10`ldx<.ĭ rk]~M5G'K51a*}:n|Xn/M >NR[_J!j`;($v!?A P8jܑOM9c;3Z0k 0 UА!!$aCk`+cfJG&b`e(gش3nJL9a۰zMs'kH0o$LXp$h* rn3&S 1T#_0&O9;w! uX4;( jS}j1L|CO yrߒb``*jvbj{d JGv y Ɠ^XڹZ5t7TfΚiIz6M Ɖ98ix2Of&:Ic?PCLb_/M {ᴸILg*wyl`fby=5 h[4o=!K#ć9qq+|lOUc@ @$I 䧉!wZDu/7έ|p2kM*;59sM&Z62<cy4CҀrYa1dڏuM%m;bb4oR`&d%xVbbbeJ1ƀ]1^.-HHIaY`fAg>ڒxiF0Jrpb?wAspY!8sY2:72]G?cP܂n>I GieS&)Ïd?dOL&C6eSO8u5Y Ou%gdB`NF17OL&Ì[9b|TKh6^$4ǧ0=.6r|@kf>PP]A6jԻ+5i=lnes̆^#5̏bg(L)}]^fH8A~f`|xåOwKo3'`*mTTRlr,lFJ+,60r =ӓ{dk9V0O9Jz"}2زUOtrNȡq31܌*:rDM-KGq(md+^:ѹ،וk*W{R^z壘Qj"_(lC ~N#U;z>5cۉE2u#"wYPvMT%=F'\l y /=`񌌘\C  fƐ0&3gYT A & Eꀤ`Ki(ҋ@ !NH].ɍ`w<%{]pvX05%hfLH6;Pc]ӏ[;N,c"R$£g}&/Daq n ˆ̙aS]Υi-1G}ɣ:;r25vW!@ɘ4Zd2ڸ*t<Y^YOb꧖bEs0| ?T$эYcopvnsxKj4&H=]PL Y)R.촌YqOZӷ2bV{A|"rYV#YI8s/OAG3^=X2rXy]8rt`/̒z|e&-f"@f)<i$ 1wTmb䛔3#cr t?(v>@cLkUO O*IRNT|&BFw^W/fS.9Q/!Ȓ ns?|7ʛ1,W{{o囄S $&aPZ›\M ȧ&H},+zH$ +$ʉ$"I[-_dc؞ 1;pML=Z%ƞqA:î[Dl<%>mRM#X)>&2bĐȍ:L$jV7s5f5+S,\f5 z5Cћ s3t‰~S^A6 N0`F-;K(HnK9మ̈Gw4eä9a7̪ ̹`y/%ҹ,:d\qj\hrYk]Lis]/Qxմ]/#H,xJ--/A«0Cs&ebGl23 q<y< iVX}k`*( LI!YO%6{jdy4*%(vAXfrc~FԱ^ W1XyXo.k FpSWCӴ'bLSfZ5N&98P[jLFa[}9z|q}M فX٫Ǯ2x4+K8L"7L#ç Ȍ^Ōӕss.xgy>)MTjd5) y+/eq,#8ai8 I|$!äEL/zq C1 YsnL@pp-P7%ߊe>1z'xCtXeZ{?3cK7 <UgTs=mkgH*htO7P~zRs2ts) E]v>js=Tc&qec<:O 2cgB}Z4o0rȑJXe!mdkaZɨf٣]bdLlIe+ Lߒ"XaW*g/dY(gp5Iϡe>iXV&ʠԍL$ʁRMov _( +'YB5sJ5Ņpb'"L5_yʡ(!aF2eP A+s JE]^aLGn(˞2U`RXIJdrJS%Mjm%FɔL>K32؜eJeNd"덚8 H˞hx24wVEїswy+?FْN tn lWFQܚ [~Gj%xc][pUNe ݯUJG{ BVݚ_V.TubuAg!ET6`\ĚS+4sH 29)ADʱ!|0i~5>zjh|NC>쿩\,ABmIjXn˛Ǖ3{_o-O}sY  L0' |XȑMY2Y9!(Ы+tG^6\z$2 Fq 8Btu.*9 /A6Õia~'$$$QM)QnIx_Xt_a%UAᏦbA+,yG)r"PYĎ܌nQnm.8Tp4NJĉ9fWF(2Ҩj]_,aKњL=$>IND i;gdpX[(b -OwSá+xDL]fM1iڇ IBr艫2MSpE }Ø/ᇈL'(8}2GPߊ} MtMvc[p Mi_? _Ma&|pFy]+:ܓCM a1D]IQ)]N&\rd;U 񏫞qƒ6˻U1ž3t4Jl}@BU/(N|oWn, rzOio)`D[ԿX.3|^^H\ 2BB,Q3Tv;Wr#(K&;ȅ!E_ny"1I2"0%H%fP}HV{&$oc1rv o uEs?!ڠYEW$ANzֱ" %k6}/җwؕ=Z MQZ%.3Y(Vuq@I.)7jN $bkԔR+oMJ\gz[4Ҩbs6g{St 6q&IUSb%w=!{kbm$oFE? ńشoZs+㕴uGK0`Ak 9xsYY$yJ>U u͢ ZxU|B`RhOizpSɹ"۲E9{SN X3δW9fLqIxCQA)Vn`ll[׆]J-K&TszCM3KyyxY#$QZ`Ig^aAa|>$Ĕ2w /c]j®MCӭGDqvRf^Kp ǘHsOpM!=Jk%ByMW|{/"C{;[)El"G7x +%;13t|L7As߷w_OHcY2_Mه6unctգGn\TVPڍق6yV>4iS2%L\7=4F "|tҧ[PLPCw*5;p` .gi"׾v 7jBe~-LЗ- ;t F?~ǸqH]"e9@ Џd (rTCLNs M3Ӛ[Yo^,k{e \ԙuutnbră~ ߅Dwr Dش.Ǩ~iιlzT".TGVؕ)f\FyѦYRRԞW4c-2 VyCAyS,wd dH$IX.=3ziVv_Tj֓UCHhoO.DQw#eFw8{`dܡ[</Wp0e }4<4]۾~]yEE]$IU5{ֳ#j3L'qEm&'k%^AǾ윖rVv-dnQ^ `(f ʁ;^,ićB] SWK &"?dJ<Wt;O3zg2<<°BhUX̜k1 !G*2_&ŧ UfҸjlG r*N1Đ>Ɲj H1cŝ#f2,dcм8Cgh>P5/8ԳρZêa_3RNGmE,1 U OgK"ZX|*VpT)փ6o0J}fu^C~Ǚ众^IĬ06GgbGf;cl JhPo>rH 9A 5 U:Mց5 Z ?a`,+61u?@;Nx7$Eݜ S z45"S/kG~ yGQ՗T>Z{$~C1?o= B3`O(.6v'zg~Qs|*\HQVn/ɘӯC1?-zCqnY,/^XA,T :piE8W3./% NoY\e,rNDʐPGݿNOA$UAUCڳ(dݔ~[yuEa -R筑#/zA8G,c܇q><=VϦNm;ϻa99iZ5'2Ƣ{!-iÂWKp̑\,q/PYN"xFSQߚSlk/kQ.1Ho#b`Y2ȣ-jL}gcL,wϜ5l0y|0H,Nb^æp-Gw޶yw'&^#&gM@Ʉ)" 1bV`XXdnS QV#F a6l%q5  8?UIx4gnK/xcZe".1rdՔyj 8շfSe.Nkg~E}} 4ݏ I{ļ`^Jkq0Way@~s,1~~~s"tx6s~;fc&">UT }o"V9 0`ԘT*%",UER .-QDGS:۽vҸ61/3 ZW]}d{ߡZ>4y>;? nQ7Yt٧7ImMiӱɽ9|{Z3EGwú{9v;7;'F9q%yu4TtXݜYvo2ng&od)dW}p8jjtr}7:5kU\lf̶{;'u+Z ün+F6^NKrp3o4pNڨZ^}wr#'%sfMq}eo|32پVaʣ5:CS/|FM'ep'^vyElYΦ/7es7j2M93F]ΰ]Zg7޹`ލUzms}}jׯZo~s'7Z` ΎQsFfN,uOr裴f98Y'2zZY{ʧuQV̝5ޞvz c{Yގkqy0rs(YeO]uL ]+{gעyzIk8PwE櫶;֦pwV1zdLU$T5}g={vGryuʻUwGKnt+\%.M&UXf)~%)\nsT8A'*S3!@zEpESh$gsXq^ZR(vé}O7AѨ?9O0;p}43,he9 SG'IO C#29#%oə3(SoLgҏRk1;'H)\g-8ǤECm]\]3G Obr3'*tўՋ(ϵRx+IG 1dzD橵#x9\ "'xqЪ)8d䓿ʽ5q*^>pGB0R"ML2$]wDdc2ou^53[zu];:ifYFU¸)2zDd5uU7jyB)QE<4Ȳ_u[RrEV>>ʫ?Ep eTF"x`U{o߲E|(LaI?Tme2>L hq, w=MOuJ{=:kzݺ |hZUε^%9nW3gKX ̎XsssRaMڛ>fsHt{9ɻd棆5\<*Taevrg)bݱrI>YXEL|Ogֹ6p减w-W5N%1H9%?<<^Lu̟D{v`wVSd57Z䩐EuY#5!ݛcx64̏|/{nHSk.T=<)ZޫVuR's:ƆRލg;`o5Qd_2] w1{Ѵ'LlrY#I&'湟j\5u="ƴ#jO[9}Fn皿*q+hw2]Q;3Ay'*4Uf\# NFBwk̞̈Eɬxυ]./vhk:zk N9\Y,;g+)=XHO7{=j]ԎxYWX)ӣsyr[("Q$KR2 !yDCՍI՘KC&bQuUlG,!2k{5mPSIUOa|BA- \tPj=nǩ*mKs0њFYSJi3 ҞDlM#.x6EZ3dU3eu[i Œ^Xza+kP/"77礦%ӗp[ލs R Lc+>zTI"6ӕƭJ+6".Ћ]"(.U?m?|VЄ!UB< >JPL`\%IP!ʦuot>#눻(aS B9 ȍ7/ug}`8CCΣPxApx(LD⩞,N?XhDHc.9±DӹV\6eeHmTm<2djJ$O㛯U" 3=}(_ujo꾧8|u5nlᛚٲ<|5;&e7\eN^]SFTO Q雚:d53L.{+JɊ̎jJO^Fv3˝DG+W_I Iڪ.dSgp,t+Zx,gd}$}`#'"{RŦ.g i# 0||8;ggloВS|~N3rTfLjk5nj593Ó' \ḱhkJ)QT& ҷ`ϠrjdȈ,֑~Aƶ zA_߰3>Xʏ*RCoƚ{?;m:݌,)؆~au6wz)G\p|T+"QfO{FLOT4N 砘` F(s-:" ܝzgx} qCSqrVl}Ů $hV5}*w2Z/2UN_Wu=e(ax7Ġ~T; ְ ?w\^ҎX{B-\"F2}swwKTD~ R+~?ys7q*p\^8h9[:g^2R79{'[Y|sO jvjk G:p:}{uzF&8s}:$}٣kke{{}f'ѭnyY:Zxp:rdk&93yFgIkY]5uήMsqW'o9{뿭ao>d8L=僭@\zGuY;L6EaTUH[Kɺ^ ,P_.rG7xJRVtnT# 5*TNvҌ ?AuSR¬!-ZX_񀣉yt_yjC=>,$"U1BT,[u$U؛Wn̚Xfy/d)P9Ή$a}r{WfڊKNb_Q/(珝7]VugMsfsxn=i}szcl);];T+̋QXIUޫm;`L*3|+£t͊j&y'q;}o!NIfMnw9$֍e1J8ŔTMfӚЈ̄ +sL[>ѡ%ជ7's5zk*眙h໕8l֣rID\;u[O;9|wG/4^jMyjyqytz1/+6p[pq0s8yٻOZ+Evu ys^ʳh;z'^hřs9s<&^gkLOOYzwZoY$$b"G`_2j=>C155:tz%Q]_IgͺtbQc (C{y"oa\՚Zb /=&,/DOXy>벪>}84HԧRo7Rɣt* sO痒xggVD>ƢfGV#*lO>{KzźcݙvyGRrkחܹ. ӫIDy54P+Y6oGa /X .R"L(q:sKmk/5vjL>XM$;!C6Ȇ{\u4k@qg|{(x\ZR7o^##HKU]e۰ )aT YӆfNNV&0̾Jvٝ/]iZ]ֹv}Z,$4=V{s 9a:%IEtmnnuwFVx&_nG; yV[噃9d{nѭ^Φ<+sӏO_ǛkfI5N~b~RG?]9 oTJ]U+t|QY a](]C&e ~ϸPnglh 4(QQ/N!C8JK] ΥVŒ$NRPʕF10O莘6hNDCXa*D**pˆ\(j{MM͜O'nyu;0du(ٮ^L5%nq:s5G0ЙΓ<^+&alq CGog͕rjk3)s 7D&}n{Q) yBo0&n7]NO3'nt|o˗6QAGkQ/ުT8zI𬢝&ę6TM1v3sxpwLcF޴Pry5k{{(}G݉I6Ḳ7ӚoWIӁʱ'g7zmV`8;N>h14OS\yD[f\.y|/]pO=/5d߇G'="Q˓tqI_W5vg|.@P˿91Į1b}F==_8vz]hSzN^Lw{뷚}1,$/RIVHOrwA)S[+UyVoq]~^u 0L۽zslGWO=Q;| |r lUln5OX+;MΗv4;%eGֹ bO5QKSf%YPJ*c̠Z!"BrCh~]xQf͗wwz1OolJqB^g!B54Cڸc`HhƌnDڊ5G#T&|)T*qiԯglIKV>c-[YmxˊIQ BYIJ:ít*jű?EܶTY]9gt!DrSl\ʁ{8Q-A,vj(,έ. siEUY i( 8JTiҋO9Q]K v2x9ZaPEZbKqeXztX$.p8>7(Cs<|;AF*9Bv1T߆jҮoY3܂{R{yaגseNf{}[s[/˦ˢƻ<'ahy[tԚ)Nެ &f6y&Sehaڗ2T>}n/7s:oZwUF+%ᩃ<|34ٱz^9j͞f|UFs6zސɭv߳}{;&'99ls NWxUQk.9\N)1zL9M& {4*P ϲ!Ks}kД;ΜWu>'9ND6k<5sdS#2*\ƹ:hڱ櫉U7};Ûf(Փ ng^YɺQEUu;D'T^m(<ן_Zs i}LѬ%;&pR&fk/*gr%ײs%V3WnZ9^_miòm N3Rc)|<[ VhM.+S[Cu-hIM&Y~􏭏G{{?#ɧr^fwfgo|5Zr`rL4rp(mY;[1ijRl J 3̻% O9Ӭs3F}\PTr*ܙXxnq>N([u6֧H -@ qM#kyv#j?"(i<~g\.U} ^;&OQC4Ķ>a 9PӚ}>sO[Y :H7Ho3I4o Ũ:X>SuїAc[j)y{3q<lK/fJ8v*(oZem1>y^DO35Jc8ߵ[py+̽[[L㮱VȋC%Lz$pO5TLَqm?៛ps+F7Xtu$ʭY${\5$\8 ěyֶYܗ٣ ̃%*{\'1h&g{9ktkx3GuTr'vp_r9&sZ9ZnfÜ1sS;JCM{IZfy&;Vɇ+1L: ! b/D*2IƑgԊq+d-xy9D˟77Ycr nTI]n!cG$E&UƱZ%E:85P" p S>jW}*9)+NsyI՞Nx1:؀JB a)% To{{yNՎP_-&͗8=7.s/͎y9L$'\Ԍޮ;6\4}?i^0UD;3W<3'>#q O+HY;>lf4іz<|x!I>Qq7榣LES1_'ٺ.z2n.O="{8\o\}qD|IvRvy>of.wx^ ouqmdu0,*,Oa_kNw)#_ic wvulAˮ^x_n SIgnìv1jo[3' +NzɈeA|YwﺧbqLt߅wAG$k\ O~ :rh bF2YފVca&, .<+`P>oeQi!,yE EeLxNto̪ ȲOG4yj;Ua7/ԼY3jl c͒V'ND̝6vިk|w4Y]>LK_O,Qn|;ݓUֳYq7N9jd-0.D- >aլhL,\m!6 2V7KW6/ْۓզi #dԫJqcT(Tv(o 17bLfc2Y}J +j/'|hLH L1imjxՍO/0jU:kM)eq!C d'IP%aW9L9m:N밙~uX;Pb0-cs<:ʡ3A*-+Wֵ֟u_s(Jwk6bsxƹ0Uv:?[{mw2.o&.nܝdjN v9g NƷo9O ^q6[w/g1vm5SҟʾoCyY}xguٓ{0r%v'D>V*[SFl 2hprWT/q\Gi=$|E#jGBF9fW?DXa"AS;cXBL ,٬(sf!pd!eghQG"yH~> [df6#?ALEo;˃0oUVy0rwVfw HgO,F˲G]mteLncթ{w]橩sU&w|S9^YF0vFS#BwfO XyFw }Hn17.dS>4]zZYmWܽtyûޘ7oHtyySz[5Gu0S43,W Li6]xUvTUsTɌ1'sFAlQ򧼯+U9B^5l/ߦif=9Za*#0nyO8vH2dƫNz7ZtI"js骾nSu Nds{7߾E1n xeɻ|^e w~_5~t/lK%9sӔyz_{gZi u1mcy6k21g+ʎk.s[p\=-|sUz|Q>kUy|0ThЊd뙑g'+}J3ɾ[EV/2'ڪ0SlM0;Ok&U0om~%4arۘput:(%y*;fբ_4Aj3blaCf9)-F93j!V 1ϫ*b-P_z~궿O*EUpi&Yxn0F)P;ѿ9>Q-6ۗonrd,LBxx-#$E_GW|דƼ1⨍ܓW?W,iKGiV̶E`MႳo f;rp}zfd8! vV^<C$ Ǒ¶,~a?voUt|uW/'^/;KĶV&4+mQ XXؘWWR6+lh=| j=/OG7UUh1 'uH{ u.R1)Qd+s+y@%WHW\՜9BRG0!]W3wRQ岭 t[u ]%q-؟h5 +m Ȣu2? z6~aS6闼O1ЙJ{`T1@-}͗U![YI\zzŰ)bP S]49ǰx˷JrF]Q]eOx.'f&Mk׮al$ЂXT_9jN軒_חMm+5JMnu|׆}/y[ ߶=7;twUN͎$ߵxhl{F7ݙc)%ד[\7[r:])sEszs{MN"]QFSoTO9󹵛mkY-^O!j%՚-×9GHOE wm5[Ȝs#9ʮyy9Y.I=:Zsɫ;n]uE' W{vhYzoٷɖZ쳒LUT+v.o%fp5ÆYhU%&gXW.\=fICl7vYnj!yݜo ޤwXO11מ̎QʝW_2w]R8^CZflʫCQjwjYFq5s֤#5vp7Cԧu^d5ٻg}LIyj:-I(<[YPiJS|,/aD?*^CXiv4!U\Ϯ~NH.]?+^B2$&Xv,@ј' Τ%C_Yٛ&6j6a6y3ɞG{Ǽb}+@h4Sq/z{X̕SQ*j*UXa]\&M[mex\ ZBhy~f, x$ sxnMJZB|gzuh9uL|KO_ˁ٣䭷cqV`MR-UU`@S"b>[^G0oLxk`Egv%ZWWpom/7Nv܋kj9RѮAqGI9U<}]O}uJɆ[.9O}XwJ(?IMib?xT],8+(Tߛρ{}s?oS>j*v{ݓ@jW9n"xi5!}qZ^'s׹es>>zW`QUs_sjF6~U{DwKҏ>?t`Q(B7ю{~1t_8h ?o##9ٞy4p4nvlI^ag<ʎGuW(Nodfx<'G|rsjz7W^\9&k0 4jyk|vsgtF <Y5Ea{Wn~j;v/G#.t|3/Obl}8g:poGËYikSSC^L45ܫve]謹9O<5w9V7O[j]|tv'tzM>N'zwQbj$fR]w\n]&f\w;Npw[jl{ˬe'3.0sJmۻl{ỿ(,,k<<'',5:Nuن?ۜ:{rYY}g5;og|g9vλ-o8OMfXƷ#G +Ѳ|R5[t|4돑>o2WX|4ij|>d[5Jnp_o߶h柆Y4h|Vv;2ɮaD[U[%cR2u޳ɭ8긿E>3,HihB5DvE=<Й@ژמm`b>dmD"z% ͇1LLVbc c i1R'14э isǔz(F2u,#J |lD٪1?=?}5өrjse>7[LiоU3yS5F 7 la(¨c7& &a<$TKfpl#d?7κ->^ C+x69Lؼ٠rvGCbQ1 .fh魇=;uC켉Q1 -u08q=x8Fi\&~c@} ??7#t'VI:Ҙ'nN|HwK rZFE~: 5v4SD}qM>8JLuSr~^Zc?xaF-wv9X <)mQ ?Ib~dRm\ćcd1Bwt/ЕfʬDKPY8yT П..2*틬FrЙz׉8DȤ< LoA4獳\m4~u;^G :سmuPa>(*_iXlRufL,L /w>&{]&6l?ݾdߺ]!G&NP Z%# ܷ=~/qt| NKTTl $6#gĀ=,!7ǿ1LwgJpBs>זOО!੊&UT)w+!0Ck碶X:/]EŖs\>ZYx/u1T,, Y!L=O/.SB8F$Xa224hU#cWiBx^]aj0T#[ xs@^8ٞA- (9Śd-=H|AMN4HJ!k7sDwIЯjijh=f?!ή=(vW_M)hjPtXGS.k1sQRFc&8J&HR>jIߩdYCzWGe?8J@hȕ|])Zu!H.Y. s}22T^vQ gEp$fo _S5^<eK>NN_!$vxSn勾5hvl׎Ǿ!W9g<3bXXDܤ# X u>@ 3PBT5dbR}N<`1fd dҿ%4r=uܸ;?cn2?7QJ.Gfxs6҇~k] n]k R7U mº␺O2 ^( C.lŮ< #rKh=/$QFZiS;חdl)q~uez|(͠O˦Ow/Z]/ Y y{6676nD;/Q&ܩ+\fvC1b'JWM^Wi1B`#Bn (eY!`Cn{; S3`klbT\;cSMlIHsTS*P>8ٜv(dIQ.+տ|"(_NyYbdz;'GNu2Oic|KkJzOlRi\iG%6BbV[~U+[t' $%K#a`^w"6P R|Hu EAhr(2xPHP`ZYb/ V//Ͱ$0XG!!#ˡc5H}2>8Ձ٦8BqXL8Lj}oȗ4D@  L\C.zkg|d?K%q+~ًj$SFYɼvSş~*_ g4^9yav}_{+$J|Ū!wG(=jD2v!?a[1Ug!)q?B!no9+d L,Y(X#Y wld\T_Ѱ>VBhm#Y޵礆#0hсӚhe$1nnHG3 n?3Zc%c3e\F0wԾIS F 4tn9 "'xvgHHH6^y! =^U`5'P]YffpKZvzJ\x,Ǣרoɯ bŋ9׊EPW`.`/`~B*DzŻ" 1xp6!s~CTyB̜ CK u_NAR)Ciwp9\pB"P +@lsjo?9gR6g)#hTkH ;Bmy?"=M k6fU@|*yDVixu+oX|21yn?թ?bGbXUUDTRFQHF`X!AaAHEaP`PUbEU`RU!V!E!AQ@Q`TFPUaQTAa@UDXXPUQXVQ@TEXAD VXU`aTAaAADFQb!@PTAQUQ!`aTFPXaQFRQEA!!DF!DHPRD!@RaAa!TTQ@PF!TDaXaHaQaFXPXQEa!AXXFAHEEV!V!!aQ!AQDTPXTXaTQXXTEabb!aa`XRbQa`PUQF DAE!VQ`PPEaHQaHQXEUPRXEE@TTbaaDa@UAETaX!HbUHbUFEa!`DHABA!E!VRQUTHVE!`XEX Xb!AHXQQTaXXFRX"DHPaVU!F`TaAEFUH@aPQHXAAbA`VQaU!RPXDQ TV QQEUR"EE XQAD`FRXPRQ@!XV`XQaEaPDXH`PQQXXXaXTaAQaTAAADRXUQ`!`HFEbT`FAAaHDXaA@XF aaXbDUPHUaTQTFAUbb!HXTEXb`PR!a!E"@QAbaU!b!EQ!?f;# bY {+V;bQnu.rVF.o;qoڼPp)6{.\hw}¡n<͗ vGEcCAU=tJ z{===Ofy3){=ŞbjO3YY u8~W+|414ZFFEhY,F#E4:,l###}pFGdZ?s'[ߑz{sonOOkj?_޷믯~_On;o??AC69C?=CB?C9CCAC=?CCCCCCC;CCCAC֟u'А^!A=f8iΰ./9]) +GÈ.V)HrTU!?-[QL@ 77JU)h& ˑkهnv<3/yGCf$`"r"_Ӑ]\%4sK>/,D($]T k@2在?qHzX(b׎FǦ~LGݤW((nZh77^ٲ>9CS#`+4Lpf&+/f(מM?\Ȉ=^2^(W`c1һC9 mx̕CN٩Okf8Lc8C6!BE]M{g-`[%ƀJ1i@!Bn"L"[YOgp] 鶾߼-8CcHt#̾N /%J 8!tTEQA2p׸Z=,X̑|PwX߃i$ N6`y$Bx` [ N81<r.Z;!\4>3+w,e$y} dq *XX&,Fd* &L#mQ E5oiI:#vP0GFgPaϣr:,5X-Q*Uʇ},yBG<ԺIIxw:pm\k>nLAֺ@5αNN!Em1.:ӰAE08+2 4P( |w}d㚟VXb mU8ұ1$+K@3cVcy0o q0.ܖy0ET_i~z9aWƬpŚn& pbxϮ茘0Z4r`+i0b˳{, xϴN$-u. `*.sP%>-儏Mz{Qmbe;2$C{ȓ~p&?ƅB ( E*E*PbqSZTX\E㠼\x^}*0TN;PLWC=(Thbbh@+'Т?.(dV#xv*j*ņKdU#EX$>E=cNG~? )Q|Nj2%nH|-)[fXP\}[XKh}iN~8e{S/݌v?x= ;=LĴeqLxy< ]/ 'v9)S=!#؍Cn}KNOO/-ۜ $ޚc>i2()ᨹzܛE9=r鱏$FX6bbLYi`?k 79#|@ྖz`N٤qE8 odE-˝K!ԏKL*FOz=Mnə<~1tH"Ȍibtf Cɐxq!#fN #e4c۷oE^KfuUPQϬ9P\0Pyk@:ޙ~Rʏ>P*6!|\?1gzCi;f:6"엒#+ 4@U|>?"ڊJ~g W}CJ}6{XX/*hͨ+8 k>89SܫN nPy=sfnw5C6o{=ZNum|1K{1|{%ИP$vqW<3<'sLPBrL85+naS,,^ ˛g c!A>AևbܸnfaRP ""*UM Bh\^My}H̢!3ĹS$tJ" UʫTx GwL/.G 3..!"+E.88w4j21Opx'Z]*/4"דĺ͎Oqn}%V<͎#P\DIՈ!^Lac n[-ze3;Ϣ"s_}n J,b;q$I̸Q^,Bhqg3.ˁut|'ZL[bOb/TXE`8[*"w6ؚ68E.{ԃOeThܮc畞 ,Fq CuĒNEl֔%77771Q}M>~gO1BΫ6s.~֒pfUp/:SwC)A!>%9=Ġ z\ZEԆ'w0&Y l~= ^?R XTkF I@P< 8y:F W15%P%`C@# =襸=/>\8 w60&"gSS1 ^U^/ˉ(hi ze]ؼm~{sLʲ]q.g$1G%iP DM(d2uKϘDOy.R̤'W(S3jcַQF1XjsKTh8QpO`ӣ9l:!2>۹. |~ 'ŻW#XMdZkEɜ(TW, Y1iYT[V-ZpMmK)Ɖu~ 1b-Y%HO4GwԸ} !3&Lj<[&=b"`(3_'n4"_﹆9"8!n4￐e Á+q`R2ʆ0o]P?b>/.` eC1e΁5IR 3.\{S!bTx߿2Ngq /ygZy"С(r&*PmӺ>gj'FZOtOXʚR$s/bݠq e{"]`L! 'FȰE8 D'NG/[\MÈ) \ŻmEP~Ts|͗##LxU뿜3BEݱ#nEl{Iooo|v]ˋ$_|(cOdZѣD:c1*}V|j\l9GZJB<@r=k&TCϡ\afv>u4JwC-:]Ws٥?!G1Z Tl(쁺ΟpdP,+~C^7B:Mck04_Jn˨"Va.+[j>|`p[rzǑ3xO,EEZ@Gte:B]S lP>x׮U؆AU:&}5-y;qQi,N䛖h8t:/t$'I44ʮ["MM9~m[A? 7`VDfg[v>+NmDᒭ>ÉtOܹa؋`E&.hgڰr23] (8.CHj𬬫p{bwW= f D<u 'o~;8=7oE\o9 x6!Ȕ >tL @d 1qgJf)[d̷ݻg, >SWtHjs}n}ܤzPa+)hVkt LU`G~tLfWj9`4؏tmduJK/'?vqQI?^sɵC jH,76}Dk+ cϥFa| ݈5sDyGڗ\71S<?4IJ2hW|{t\AცVژW νnPS\owC-<ǖD!sr$0T >;?!4[670wv6L؉na0]ϛ|LG7.B56ܶմ0U[Cۣ%ޡ}zUQ3hkxCCpqlY_YpA˟_z[׋ J|4rnrue4H2'' ckݤt`^:&UuVg՘osYktq+7A]9sw0 >0 n5ny6A(kԱ++ԔڇXHAдEڵb_~i9x؎3EB:'?u%vZ͖"uD8m{̠,mfM8wTSSR3vhQ"IyݜógwCf}40m95@kؠk&5S|IޑY{vP-pf3 ~@Ժom7rfz鵫NN (C.aё2r$)vgn O8_#UJV-X UF nGH+]?Bc8ZkLnB0* B4M^:( QQ,Sίe77u7XpE5YzռiX5liϭÎ>rίn􆗶bJ˨r)ry ì`(| k:^8#u6?//0b6'1s<1~ V`v(txh7:0LwKi}} #eaWsD'='kF%>>O؞qZٖwh>P\u`!|Ќ;sׂc,𲄇V8( }d7u<lNU*B?YBR,UA>#̈́؛O"v`w폒".rww-íޚmGͦG_TI⅙%\FudL]zG}sZZ>YB,3ފ%5ܝ=zyНǓ773pRG{RvEܙ)CHU|p^ x;| `-`-8c ͭ@3HqT9` \?=@m͚d38vTi0{UGyOU:܇kM.RN/#j7hd O>\?>^4P_IvN.5rfs-=xE@ O Omˏ|O#*s~y&ޯěG=f@=R/h.jjN^K;&-\OO-sbe/kbvS}1kģ &cNp6} w10L8K`/W`0&@zsp&M'G.a$;$0XB @*DaB s$00 `V4@a()Ad,*`p"= '22 [ V6B2BX%`\ua cXBY,3d$ Qa$W/xՒڊJ|g+.Tucic))w/aaxRl !MĄ#DB%FR:,찂=X`JM,$VÈ^v@k$fa2D2]I =69 E8d" Ea 0 $`J0 $A`BFa0LC&a)bY/َ0OXY O(IsI\0IKa XS*ňU8VY;;zEhw9 )fIdagUvḮ%32NHa oa!( 9@8&#BT$ DGA}A($wc `@|%@$0!HQ `@XL)Fb'3/``K2`I 3 >`I"BSId.BSdT $d%r ,$)r#> qDrSorNSNW-&c =lSѺ0G-ȣK4U_T>IşNxyu^9T_O;MBx֎uq#=$Ʒ1'] ibAt SG99j9gXi1<7t0Eъ\8SI.~G3ѐ\xE%B<=j2b%\* d+D%T0ahYqRUͶ(+Dign˄֊a]Ai9'mPS3+OƇ4Q“A][\؏QhKUGIJDmpp)yB5BJg2Sb1Q)W3"OK¤L:wTTup4[&d xj^9*(뫤^sgk(hg0IYUXB_& ȶۆ؏jEy ´NܭX`UBOڤHxȊU1˯=Pl6(WI,(f"4J{CO<(u{9`|W&%(ztJLA^NFQϋT'GZ}%W49U]I+\ɖIfb=TRK#,Y %]^UYi+"ƿ#5\TM.%Tk?-r܍:8ʨMiyshj3%iYjg)3ʉ5%?fUK%QA2SP%[ZBu&guLZIl%jV7$̓T_grmfII1WYl%̉Q|O7ZC% |jYc0/{_yP0#YJ9lGDoirZ y{Hj.Ԝ'[mWA1:iv] KE.~\3e|&7N1^^Tfno)mܨ$jPUNGny_<.a*~VIJN,JH2˧4`_Rv1۪M9sp!TS1x drRkj;+1nC?\]Z.`2̎͌ƃPhѣY1DG̏H[!']w|o6(l 莄muTR6@=B n*W(麩P@=6E}oT.6 {x#EV"$P쪖媢V/* Yfrxݟբy$LgO~~:! jC݁ʟ]>sMEj[}ڐv9]E{3َoܡ\ƴSjqz'Ù(TN~Hc]9$ R]y1)G|u#/yO`9W_OM@;_&,qP_OOhTEv K`jU.EWf3f[@Q fMEehCȥ(wdٯ۞u4 ~9 g5B[ J/08P$N/hC3)*-:`ňd3ZaL[\9j[ܙ[m޻٪UL9RVv=LUilI A>2"^VqvWߴʛ+hf3f1(Q̅Uw-#PnWfLElcA|K0[f\ WYqZ'pr1"]M1 Qdc?'ڣ͹<3Ua8QX\g:虮+ng£A@S yPD1>R06yO2I$}+ CGv:VT855Ɔ8+!+`F!j1݀7L_srFpﭏ-7nnWKvdݱqO\rץD}=,<pȯ99rj= 4`;l{\]2|o Nó9l(maژ ) 09&?P:@jCC* Xs wMḾG-9B؃"hp>py|͌\q>ݬ?ǶF$D, Ys[e9zLfn@dyvB_Ǫ~z_8~u?!_KA|yޞ7~ۣxq"59Bړ""잌6@rNB'>Ve,ڽhu%cXi> &8Fbgfo /}ܹۓn7Ї4;yB_\U&BOGuȵ~ǣ|qgy8E>U?c=)_J|xŪ]A˟(T>]鐨!x sTF^#=QݑXtS6|hE^珶X7qɁ0>RD~Fh^6rhk(V8,bAN/MȤY`t5~ÐN =>=bؒ>i'3>|I{B؂D~!8Jl$_,?-swRw'qFu۟W[#oSlib'=*SPey=_1m?gӺoM Ox?|ٍ7 "YJ u4J[!rsAP]T/73j=p1@$ğrTȔXOd2\(=[!a XqG=0t΂(8 <(asA0[psߝ\ӟhor|p^ zGA95 mҳ>#ANOq'2?2ęY̍a"ϔ+Oڴ>#f3P=.9fNx].!sCueG:i. <h46ì35L0t_Ff<1!R'9A avF&vߨ3LAy5I c8ߠ,m7%`d ÑUj;~g s8QtNtE\(z5%lh|AzC ,m.vSNpz'hI̎FHqTE[QoPEj9_DAzjt>&Fʀם9>2PYK xyÚQB/)ei yJ ȷ"#.ky4CXK9ж"Jn>@;ސnU*a7NnǜE|G:87eaغ?ӀS6OP~|3V|.n)iۣXٞ0 йB3sE| !0~éjt&$X3@Y*=#_cȒhCLLE^J*)΋ b%9BP V.n\WI@);_<=32?2׾!SJ.wp1/K'{'/\('': Bd @ ئ2kN-T9^qbM P^1j ]~Io="^#th:BpaGK'UDP3g=v ԋ(t3?ɝH7DqVeEC\SXj:Yo/6{:.b +E|k%pVODQX~>!\5sSWwgd-HӇTS[텩/uK/ 1RY*DϘ$I r/fQc;7?]ɝ/$0_~oHN=_1HrԄpJMezs4<x7:o,#NQ0NtDO6Ԉᵻp)j @.1DqG>sc߹LKyC ]wED:wL`uoT^ 0Ͱ!.pG$T@s$k YO1 eSۗ&{=ScdY3;=15 b 8'SGЕ; b/1$̚@>KR~fO9HP4æHHo',p#݀"Rv XA*qƷ$G ଎15fG=("na(鈚*nAHl J79bl M򸱨KR Wc,- I* n#1͈Yh=&BSl4Bm`xNs{c,9}n/V;@:S5#S6 qG,\  qC.|GԨӗZlҘ:'wkˈ'po$JUg\k#m4cJ 'M=q'dj`s3"}bs?!!wj+>Bh! ~g81 &q~" 9ѲeJW"hxj4<Le[p!%n,_h~!GM)pfAc`!`*CfHv"s`/'x3Ă@߶@IRϸ#O** t$ ZN5 mQZ)0] YiSQ?dPzŝLBa]H`K%HZz(3X+l\С&j/h Ph&C݆ۓQ(zL3o IPup>1y9<5}xd{ڳE@ 6aυQӄz5̝-gM9 /?Tߗ7gZY20r?1)L\ \A,0'œN*Yb`^K}f_R~\q7=[L9[;l4aےY>ajMoS1pJ~MQq=|&t Y L21@$+3iP) !1H! UdZLju5X~E*~wŞdTwS?T_8>qRYmm ?lnZãzo +Nf4ǰPeB%pG\]3x*! 9ȒQf?-RPW$@=ـ3{:~ƒ %G 2w`+ af$F*`#zPƑOD;cPK,L`錯W,#5 iNOa=:2$Aj)ar5gXRVLڗi˳=EV!KBZB ؟JDqǼ3c絤5{d^܆)؋(~8{n!冂X G-D[ & l2ЉIȤ~PwG>T" p-EڏGPA Iz<H)dc*YN ðgAp>To~?sܭ9A9g>3Qq(|QS 8bNCpUowU⛩ƜIĪ7-#c ;#y02d^ĉ>{G o\ה{#ϫOsC6 O9a%0>}h*ub'N-b\5/2ҎD0Kq_ 0Y@qD; 05$G,?8OkekG:{rۙ@>P~t(qX)j`!r^#Kb1 Jq;u4C?lN'xGXKY[ы QR6lm:_\o;pr>(s6ٙmp<@N?l6yje3EHc 4…XτZ!t0:ey>^P~nËx AsVU @9 @8 eA06`ٷ=~S:RP*zU7܀?'+Aً o?D꠰X3Y$#N_^XrG7lwM~܎2k #Zy~MMYg[ԌO˃/_G,uyuȮnrgݬ  " H^\oBO24Nxl{bGf`Ә+mAyxGsޏC3H"H;6ycxkN8}sE=/RV(2f|̙y a*3C(Vfa,nk) ΌhrC`2:A4:qP?CԐ2zra .[Wǜ{R=--O?$g6 <XbM|1΍w"j j۸0υ%kՃ=\54kS x;CLB NҋnG9a]9=ݙMQ٩${T7 g70"*R'7nhڎxyހ (Z<'D y,4 Mݍ{0>"&'B_ߒ%%o,^*)~kɐu8pE`캁πے#j/ ;P:Nl@EҙMpB{a2b+ Ovcγ4?l'i;u΋1`;14OTԋ'(';.m q:F2sC8wEX1$Vy|')&B"^KEvBXEWGэДR •96;}x4sh|QFF# VXw*3 P Mן%WGep4 !H/:A8f @!🁼#.B,Giopwq[扣ˑNI][Vc\ZOB䁆j{AL9 @9A (Lf0c.vcUhI~߀e삀>pz&l|O;ʺҧLfI(C"|3E(eӽ<Yb@9uO0ߚ̩'(YcSM4vgL I2+e?yònKXP o5PGt+ߨ1@T/D\[ hzGPb.כٸX@O֕7g\z'/'^s;`'?S9 VGqrS\yO(>sB|$QV,>f3avj~I =8M܋cJrnj;pގ ]h0?4 !Y "ChBg<`Fu) MQ HKGjg+e4eA\p\to0  N;FA'=ȞW^'g$X5gDʑߍX`2-Q͕)CF9#$)x-PEXOK# ԅنPO'ˆFDwLq䔿, S'3s,@x9` Ubx3uC|65v`kO\`>x{ZY%0Aے:2=f;<6=3@.uG3~i8ޱ Glp2Èî`arEb셋 "}L|D C'%찬$;cD hBoI(* . j|ׇbrqI$8wꏲ= O ߝ~ AG^XC 3~U *<ӯ؈`#q_yt`*-A(g a%ßAC\1ct5P1lvO}mP5Ghbxi:>=PKm{^bGh'CʀS |<0 #\yNF6D9֖Ib)uGu o=Mz q@<%"?SPb@WNDh݀$m` ="n)#HBjX IQ m?;SX{QR}! ݫxP{Ǔv?+6I؍fzX ѥObz I.Ap&o9nס&Z'OlWyzsRz܋ ר=-hh~Ech֟{7t=Ɓ22sq>C4A^'Rf8#5櫞@mq`*c<﷛rq̛@̖C?V&"cˆ7a:RNt;U {Ǝ+ 1Ӟ?KABDWP?,JEtzmN`No'M)]i4qK-W7P/qc rTxyx,ރEI9hráFlx]S43 %OmQeͳ#ӌZhbvp`Y ljTL ާH|/5} |,1Sb PziK$#d\ gB,trzZP7e}3 !Q0$Q?HMJbY}yŘm͜4]8C^R"Y{hVUY,1VwcF>hR!0e7'Bx 4u녍-YP[Ta9x];5Ils+-Ǣ@H (֎6T !aq`GB93~|Q>5N`TH\ΑrKYEArt<8y"B`דHѯz'2Oer`~o莘F>COc/1nju6a"PӑA9 mQvڟQ43< G]n 5O@G aT@.Y_MQ* oc, p1I8uw=S7 ?_CZf @ q4UԞ,@ C!0aQKD)NwjϢyVj3uvot4.L`5 D]{1ky:+CLI| )% ޡ{ 9#O? ? 6JO@wzqgOyGZHu(Er?Ӎzr?+24ZsA=c*?89' ;Ė8}sR92kaIz6uk82On(mto? z5Aߞ"@Z8\'yjq.9t7 'RxY;:#EM@ <֔wzb({%GO a/ijdx%,<Lj{'|}cX@;3H IY0S|AwMЭ~3rbαuiVw3???&iC>50 >PqzcY<>Au<\b P!l>yYBߞ=ý$COǵ-x8C5㵿V\%Cw 5ChPx'z r9bpS6C|rˇ 'S 6a`]_zSls)MfɝQMjwգYzRܗc6vG^'hv]ɴGjG&vn (\Ag)y+ʿ۷+FnԊ5/ |0hsfaʍEu1 * <+|rz|0f8> epbQZ1u <|ci_],~yș08fߚ=>'plzS&=vL̞TJO;} : Xӣ;ϨsX%Ϡr]{ 8_A;Wlb3!@\_'yA.7>c ypJ}!8 b:F"|E4<7 LA` iC)^U+SlBHf۳3ON*hf[oyV"aW nY!ܖ^A!\S^޼5PT[fT+8Z6pqfeȨ*%6 A' Dlni~nLsN诈P4c[Q6{D]t2o,!ߙz#lAa)G+<ӛSZ#Pj4gn-~gGg>^c"켣 :~`x_ICLRwM2u/>Qd^\Ѩ!VDUaT[sxW.ԞPǕr3&ÑzMN oe2-|#n~ ;0ޮ #ۄ0EbP5.:}3C%?6L1*2 WbTf hP n.RqƭCmdUR2jl]7`20eAfs|dMdSP&%HO@$c^LJ`Y)4hL1"܆,;2?4 ̖1XO乣 jNBti1F*i }2§=Nm̌~#ˆ#)6_ 2&-G pn1/''hc2|`裇 b_8+Q.g&=Aa^*3 K9s =o@ZMNw]W缥N[kmS }>^ζYoBp~$Cuw.wfqqFlk 3t'\P^Dc残"2/$r.dJȊRTߟGT+56YЩ@<6sI+wz (GQaؼ'>.1YfN\/%\`iRP/^|+@hN܂TuW'NJ(YGyecF3xMӗfs/W6̫#0.,A񕄡]n6WϳOJl92FRWj>JoǒV_7jO<ҡsq=B|848!G _e8r *[&_") }{q]!#Y7f]'! 6*߽d|dꗿ%̮ q66sagvu]dJ+IN[wcv_ub*NY院A e+5s}T7y~Q2XN4F7eI>$/שOB;,3"kM3gky$M~ ,.=CZASzmycg;;J'>Da4F2R#ib9/f A(zM~7Yq9. "1Qʇ'0Z`qYxW@՗bˮϾ|]%؎YӨ_3jfGYh=lcLfe`iH6Z6PrBqr&zw7777G;)}7h$EQ?\9o{}£q/l-ۉ?+&v6+Ꮂzqb;ПzZ cEdmz~ QW9)aGvQ'^H1:T"uHZߕV`Ŧ~X^xkXS%A7>tTz*q;W} Zӌӫ۹Utү Iuk|> Owpٲt= hx:2"\? tp_:t_Kn$as!3aD҂}ҳ JMCjjjk fŁt)KI(2ex,~XZxհ"Q3%hyN8;eǷR8yC|nii6½٥/k}]B[s߷l+ӣSy9Yk Rfhpfz!qOP)3{O^"uS;ꩿx?_21Xa9&"Rey+*nAߗו |kb-]?; wpwBĴ1>bɇ{5N].F),g7P0Hvpv[i-9loi"/׊JNOhoJm ?$xWio8ʪpViu~#%QBCoH( d_lbp'K!6HHhȧ!}J+ * E‚)|ڰKn Q,mtП; [3ޥUd͔R?,@ɱl(ESq|!IcTh艣.7tYZ.RC6PLȨ"OTY3*hr4>H,*e]ZƐf ꠶{9.z8]%Y"Z: sus$VKڌjFU, 4-W@Ͳ`],iA0lWgz85zjZO~7ڈZa땪Lrs( a=}/ vАć?^^TD*zGaEIc>frms7 X [KR3TXl]~.nE+EcW{UȮm.p/aM ~RV#8s+=)`Xف2}()̸d2ٷ-N%a%=(JN _gղf;2 ETAV2є/eW}CkH߻[_z#tM-*I$^P}%A;nt2:Lꈢ /cvWƦL`pj]AUuA!+^F``uu{}I+6 4[Qu(3(IDE+ d*s-:q p+!UѳU饁!Ԫ/:wx>K!xt1Q>ƀCԒѭ-OČ^9nrvjZbbXd~Z W Ǿ4#4 @XJW.]KLG tʝ֗8k=~103?>7uR{Q4~ԝi SCUq0x5{э;x.y}jԄ& hOx yk֟ Gя>[Q؁\r[bmiyFHz!BȅEq$}@.V4\޵ f@=9 hGQT0 5`ʦ`Aɓa6ccXMLq;VeTdT^vbO@}f2];X1FrCTwã.-s:gg5LE.9ph ܯ`~`=z_Ň(4Hnh<-k'a0.$m-2zn\WbnKv5xoӷ 4 TOyHu+U7А~RZ2{/-_j{*wbKDx,bC˔8љs9X\B*FѶ%v_<+:jnBk~|v %ajK(VYH4a#^0b1bjWFZ͍\3-%%fM:7+g1:-Lb VЎ<@|wYqnfF@|]&G>C3NAE2XU!%w4r D9rqa̎g !J̷=p1{C&no[":~3 Կ:lڈnn: b!UԉX<,;C_lحUmB^VP!SUdX] lK)yFX3p$PͅA2f%{םu#+,Lz㧻_qmqFQ=e@ef Y fC  &Tl Ćc43OT3f֗͜G㲥 |sޚ+xHN<5vdDVaňh1X.\akEB tO )*Wp^\ը!IWjI>$$: jl'M OFPLۍ"-E8\L<_9&G$CPT{xT4Ծ .B2@2xQ ^al4W 2h^ӁF0ޗOiPю^0,G i,XkvPc5ˍ#]7:1yW,39~ :5<ԵV`)rd`Y3..f3 Yvm2G$g2]e:b#|<+ /Mt US('vdQ(R>nC (;_avN&pSgJq)u6Hl* k 1]@t+c|pq*\2>S2X: \Ԫ<iN+̼ I-:@ r; yU:sNj|}\xdž@ ht%4Jɒ'/6fX2rp,侂_7^Z%Ms;oOWQā} 21`_(dNa9%_X+J[6dɺӣLu9#2zJ BN['\KBl -_DvfŹ([ԅon[܅r\x16x ^}> (]qBp3o~B^Js=jMNȈ:[K0WV'WW|^FXBQ$vk2F"w-Lvߵ~~ayz;\;^6/=?o-x"P;NQK_ҝRe~s0RT6zWQ% %#Y"vx[4F054OwfRl <[А$$'HQ擀#NBF' /_iČatZ=k΋hk(tOHV\AH2)W6Pd5 [ ͢u5Vv^kz⛫hV%a7n $ 뵜~n'BדFjuU WepWKڭYV7V>8[ NPZ/\.|,.dglW☌L_d`Oq @!@4 ,rRa>y7[9a_fHPG(rYr>P0p{{ՔPCLBGxz^Or9s? bOl aN"((G12ܵJWS2F<5nv= 2r+>?Wڮ$lW%FsFŚ!W|DtQ Lur1{ -9v "4 h&uhy"zg/uZ5j=:^iC(LNN'sWONȄwΔ[\ dl1&3Z͛2n8-K[[r.cÊ^;Rt\"PXG|(_LbBG\\\\\e.27f].ƘxǏAo">@V׊Ȋx W wqJ_2'r eC.'8"C94SN~-‘x;5 `i帱3J^cXxL7R@a  $@uPBSwa@9J+4!S' 6f6 =}^ЮLnOnrPsǩmYr.Ri(+RivzGF.s98l"*].`tz k{4wTFqC.E mn5֔5\ŌF=0B͢n4 7ej8{ƓNGS\z@q++%E^*Vd!chx-\J^  g2#gc?AU;utW5[Zr>2=a7_6CZ`OE)u2e`aC1eb\k:esW^{b,rCܟ:rմү0Fs>EI%_{X|Fynˎ29-3b$vM;x<}jiC=my>fZ|bMuOZi?6R@*t,RpcOq ݹdksiOumo/vEfGM0ΤDG5U-~~33gD{jGw4A2"ϱ"mwtmYyϧ:49NCR!2\P8_uG_ĚW?9BmN̩jH Eh2E+q;ʵC7 \IZuV<ŀ%֖\*:.S$1$TS ~o.M I{DoE<%BtlcfԞOy[~x1h#F 6bs~9\ҧe`Qdo[RZQ |sOF/b@Igw "s-.a X"3.SfxAéE}Py8%7k{VPãCAh}B *T0Z{6Bሥx- qu]JQ'wƕt =mv-Y0/V(Z U. Ŧq#OL ^AŽP#3eUЇVk  4r~ Aԭ$vռ, rU 2P:GF .tFI,zЅX^w.+NwMǚh-nxQ3q񬐀VYZ{?OyV nG6FYOxs"&T<#}^UݞUcD($sXfA]3/A=a|D<2_åDbDO ;teR> BOڤ|F)LK'U(@́ w#w?9GffSe6䏎 ;F$~{XlW@~v}oǐ4h, cy9]^k%ň*t3l f2 # ʦ/«(:y<"o yZ8/xK 2;L zxd8VGq<6!+̧ĵN]48"Ryg$\p,IHxz]4}/ؠyuN!dor$p'4k|땲QW8: Lr|)X)r2lܬ%6 4ii44*B5&[͆(6GfyL#]E!ꄄ<1]e̊⪸D|_OϏ_n uy Xp D0Bbq/ N2-#2d#zIdFsxANpɎ<*㜥|Yp~^&xiy\:Kzv]SseM%ע'ؾ0YHdfze>1"K${L%a!HkXxK\@GCFز9T(#0VqzKC BBK,mHi􏨴Nf3x ]ceT u'eLcR(+e+"aSYRWDp QB]9Qɐ|=B"]LLgQHeVavJQ!\2v -:CD!9#k"xu섉C?99phw҄wLBa&a(npvClZòXpxu̻!tI2F֕YaaadX> %=rYy9},< }613x (lg y<5Ɓ9sR9 rT>2DL[nJ^y_B^øyҹ0#J<$P2=wpI$ȩˆ0VM't}Zϲ)""܄3(9myAan^r O8XF rЬSI+s jk\. @{$tﯝ ;*XL/93Oٻgd%sXbK >%z2>vHw @Nc8,v>ǭo$w Ka|-x† eyk ?Ln\|obǽ|&GiKTo=Q]4:iVX#YP+(HB !ɑc6F}"| 2{"8F`UL$}W$]pqp:m Q2chM2>Gʀ aDg%-?NC%w3EX^FQ>KxKosbOi$ԟˠ@R< ˛|:kv/fF4QuySF#脞;$5$.]\Ȱ#Ռ[8+'Η"U.b]˹wƓ 7' >'.e UC0E zx#7]G .I6<AdqˆZ\) S&Y9f@0p_y0acUx3l8PK3luwk~ٛT.TB@9̂M˲-)S"pɍ#y XEjrPǼ"O)%}>dp c#"8J!,K(?gvxBl>1YA$5gl#F\vUBRtLsYD {foGQh<"a± nz3(h$:_67 Ǒ F9@ctX5CTq$)CC8rEPۘ3YO2IXyǁZSZ0ʪɎU5@W^XA/ak*㫳w̺©JO_$U-BNUxU/b vvˣDR"a$$GVyLwcdGG!/ _Ê ɘ0%,>VrDG WdJY`GXr:aQ}-@ɾ s6a22Ly v^JJrGjչ$,rr§s yrK !Yz;q 0nG8R]AƠЋVCه'uc{{5|6&sS;/Y|answCt'+dߨ9~GJ!E.٩ǒ$@*qd#qt;Ã{ 3VUHSbD0dQn [YfBy:T).)nX^K. r8HI!5y*' 3 ACNXTC#|WR\ 8LVyi!*{ Z;O GFdy{zaNc Jqr2 e/P%L0~ڈJ@5';]S+I|2 ,K 2 ]ye +lp /V'̺_ hš&QN.?q- qr eB>%)*F4g 4lg+1{QMu v_[:gNM3ˑ˨Ǽ*νѓe&`$(8zd83"-~cw}>#da2pQyI`F;!$b Ä p5 Y r-\q* M*Q~xd)r,A(@r(<-8'CGA ́ӓטtHJdp2J½2zV)s9mGf_^YkQ!QXF$|IdR0Pbō%.eXҲ:aѳa`lغϦBu*f əAsO .!u#w|.l3+iAfxU*|haKF9 9Gs){3"01 LN s% ۔GPK&rFHg[dUYv3$xLH9 aL>99| $6LMKL1 V`1Ʉ$USÆL4>%U×H8A5O.ÅaF2f\ &ǏyG}̩U& ' o#^]JMp%WּMG~>]In; %bXS!^}O cXyG_++(wN\(' ֕I$4%cW 姩P1Gn/XuGaBFBK0tq/"aSǽ?BEiK`3 c&y OC' |fB란f;f&2:y <3BLdqX&R ,xs\cWr rH B/b୵ oox\^xy _ `e`L%ag}П qG ={ &9ZOmE'h`W9d7#D7:)/Ps,/Heɰps͘~) oy2gWG,rsӜK{_s_OT\d0r{Gq:J} y/va%񙇞GRh'_y<qXܑ18er!|HZӋ3I7Ȍ;{r1 Edx (`&=(r2fHd UZs(1Chhãj7Uq;SOseJ|Qŧ,U\Xg2E<b`}m ~4W$c"a<%1asKYҵNa0ʃ}}=-Z X(Q`0 -LcQDH}c5,BotLHǜb-{k6y8@@,[ռU+eS fQ xQl AE *'t/, s s8TA< n0,L f_(W[:Au{5ܘ*b$xYL22 ApryQt &I6/S v9ᓘA7섲5r@~zd#hGɫ!Ld\Iw!.}3#/kFhƴUӧtQkjڟy'ءxЋDu].#ĵka> BEb>'1uIоCZy CICFcr2G20f.N$DNDu R9 F1W[T㩲I ː= L;̜z&MPŘj"&a{ ZW۰[neg"N2Șba"-HA<̲;h Hc<2解SZq0m^KƑifN/rS(y&0QˢM۷nܻ\\WDs:Ĺ_o\&DΉNx/0 ;?9Oy^S(jA?A7y!aSr`` rl2茂9XP2Eazy S12GIF%̒N܂)M5 oIɲZ䊾LʝUY>21V\42Cks1°$R 0(# հ8ƸDNaa5.32e)*d^c! WF5 >fra!n9 Mt`?O 0O$CFIܱp Jŵ J8F#S丕aS]|EG]f7Ӝ)3L_v E 9\Eu/۟ܲ9#3 ᄪн t2y T~CEts@ȌM̕D<HFR8̾N,,R8?xIǐLXL2ͩ !Lodjœ`H$O} lL DQ$0 &HvYz%JQ0JǩPDc9-Z}mT̬lsx`0.yLG<ɕ$Tl8-ܡ<[ÌؙA-mc[[Rָy̛ b.a8LS9!0&LNr>! Y | |츰radL & s&.ll'0'8DZs/82d <$ 0#޴e1 ]{#ϱ9Z*0a3Fфٓܛ]xpq_%;eHm[ I>>8 raK1{<-K$DuB0]H.s ^&V k5`R(%F&ȱ>5 NEqCɀ3N︩)L^`*?%C]3 ջ&z=;6~=",n)@'``x|$ \r Ԁ{/|f>Dwk*A> z N4{%OdT?`<&*1B TW rߞ&,h󜑁u448eu16( !2mj&A5oz|CX-G^[p 䐁YWAYv\ݗOr2wWWyyyyyy'e0%HedAUٻ6@.$yBND [QTx&x$i€gNxNe@@Ux11HF#b:q&,i2d"]Z̀_pӏ脜^*Fky$OREeb= Xoj#nXʆw/_EL+ ⌹OX0dڟX$./J3#qJC;T5xl%jr1LIU#a u!?x xL0tG*ty#LD}@t=$# :@uO @rfTC >a=aB?EWsv#L/&+agŧ {Lsjm'ℂ + CNO"Ȁl #J3rE(3UȜ92HqĆͰs%BvWk)^(*#;ξrpD|KdFK/p7 Y 2Q8dHt EJ]9 L<8oJI<E22^K\@929ӋϦ԰~g (*lh+Brsq.*&Ʉ_꥜}S3w[mxTV6{FppV>)Ph(l #o`26 \ueÀ2GLE$^7#x>8I/_'##Z1dK$W*ȳg#Zy(C= 7ʀXho&>|ò<C1ڌ~|*mX5jWoɁB⤎؃LatY0!l8+nխrpq$ط̶\[%.H ΚMBCtU/l8L&A2b OlYEt"٘)fqΏ 0*ޮO)fOw3*+  D6Of\c!2GZ(ӧ]YmrבyHoXKEw@yK[KK^Ef2IAryp)N|r0t\jn_PfNSXDsҞ &A8O&HɃP + (.cQ?iJ~Dk/ቀ-(!yyQ2BqpoO=,ˎx1~4Gz!jkR{A{4du3K gQ+T@t S²Hv0=YC~2}ix@6ل [3eSWs\aH1?q45v<}M  uVVPQ5\]L2‰B9ői=hH\6-]Pf! 2 0KdŀMh'`VDb !JHB!N"厣r MYION0lX}UdS4LXTİf+da(tq1i f$T~H2a(s:9nTfASR# \*{˘ϳ7oc~ /w$^:gHtl brϧ>FDO?$#7 bWçHHql4 .* yI̼%)lO|oʼVL x(} u"c[Ղxrs[ηGkelA3ZZt"i}(a a؊֏9c Ba';ƶÁ~3ls4W6ȷ͵{#'YǁNU­SyLj?*wxr]A"1䛩^kAhޔZllMxѹ Ǥ^sG-K -Œ2CQWQacT[a2dB^\=)do%@\es_eIz31ooKRxD^ӣaun2S_Unû#pԛ3F  F4\f2j3fɜZ-QW=xڭS O=1ԯu>ݥVHhX.LH0Q |O&ŸGpF(,rñ;ϰ3od4GHN̢tZj+[ᰊB9f?c8\SR~*yCX;וG/z$(/$IDĊ7DMgk8/i&! Z k8R}Ք3QokSp,U]!6ZM])KLUgjx_mǁ[yhT98Dڱܰ˩T-qP[7w6/⽗#2t1CŮˤ=e8ݲ/TbduVZ˽ EAf/3 g F``crJ>b(xGNI(5)umbGL8T4Su_:eJ=K^7x~ez>TGHXpFF ͨ9fŊzH>9@Q-& Rp6e&hsI0G1D4^iޚ~Xۙ1='(\*cТϙ{p0P[w7s(-Zڭm(EdQ5Du2{Xݹ j;>c!G͟z"ލLXT=F*N&} bS2{}}է;񻵽Ъ}~"ԥMHS8\o`1%rP4l 6-|̗a-Qj l+WSb/LlD", Z>t7[!'#xg"YTL|JCuģ28;t>CkxJYP0#`}- uLbBfREvI(?lAм~K2m2kk[@1 sWQ 14e99BE@RPk)Wfr&. @{Z/J0LC7\o#g@T$Bduw\(ԝCUҸ(wH2y^(|I>X)***tT*XWh-^2%EGA"vWÓhХg,5(Ɲ1 XjֿVVl>C=ZmO (XRif 0)$0!'Z76\p9(+Cn0^ IQww)^JuSGʼ䑶B*U9he J["g[w"K1xKPHjJ?|4睬>Tb_SR܄Q!bZU8O-UYg^[5qekBY&RuP$./m6^nYhJ~)6ƦͻmmoxǍmmm۶mx6mmtmvommxm񷍼mmmݶmmݶmx6mmmom26B*=i,=$>V7OEIAZ0XWU/)N:]\\U3tO6CP BvfuVi̬VP"Xɹ._S}mLee,j&k_VWYuN2lU]vQJ:rx9_ϒo;:/~O\U{{o-ʿt󾷿^' zg5L_ʰÇmJmӕxĮUxE!GoUu,W9]UXrQC=Q='yc2Pwh"</q}N* 2^h/^fPIm$:(QP&Mb  1oZiZ]H}U)"1 &u' X5Wب A[q~P45?E+viȬ a*T鉸Ht͋ϒ;1V4]~L$քw* rQ9낤]>Qf-*ie\ W+ |`?*sb`r/3RN x(^/3lK1xz*`; Z Z!13$ Iq~p ? p*@ll֣sli> ZX5 o\aVYZ3~`ٮ\*/C;AFކFTI'-pPh01[=_ZYsoi8IbIW |<&s&t.k4&_3UDyT):Vѻ LrX=#hhmm"$˜ ( ) w)\NxV3р3IŨUJS%!_9sߺloV'L3~$5ݡ/UUUUU%Qx+Һ "aDbɼx\p^:ӞXpuBh\):͛_jyCM;n%+nګsn1GK{ Y|qˆp_߾\#>^ ~q":UEyA6|!IOC( .zVl#g1:di1.9N:P"9P U$fJr NlL-:1)0?:2Ֆg+QJ`XM.E9 uSlN<?$hё zlXH~M A:8ATOքzJ U+Xy&|,ltȏS94.8[Ck/pNjqT+GU; > LzsE )hMЙYG=j^Yq]\k5<T`Ժl qX#xPfrb17<M(1"{Q0iїde}5R?"()8啮GwCќ| *^C_%%=Y 츥;o 1@NI' n+!ǭ+?<50> `i7B~_*ƙ8|y`(+rϒn*1xS=p˙D|#͏)GUH=sɊ$}!"dt?=-14H{9ŸnVL jGO@ekw_{T 2U^nٳƭ[܌.$=Eit[Weӱuuv//#?D<;ջi aM2UI+QNYekd)kVy!Z*raԟ?eag@ҡZeTSC1Mj+7ya%њ*Ae^rB}?ڛV٠թƢkzh!I#kSol? _.YxWpMz銜dKhqf[qC}owF/|諹D.zLr-4l`=5!aJt~G-JF=!-Ȱ*9FV./upX\Ax]/ ) ÜV,c`Υ`t춍m1m1k}6;[c ,+ݲ0d\r4lG#v8]9mnB2 e*)_ZX@/6Q2; R4zZiz&:]w jT ^Ӹ1(U*'yWRI#*lbɔ! xPv*QWrD+ƣR<ʼn.Nsۮ@NB`|zpI}a{3I]Dbo}4a+}˺."ڕrź8%eYϼKx͑+_gh DTqxM_VnxZ BASeI(YPU;;;5&f rPV]ĄLd6{8) drA;aIA`L2z;HF_@#ВC?/<{LJf&ӻ.U%{OϕfasᎡT\(CQ+u$rmc au72+7s5q$q^Wj_PhŰRk;۪Q} )RDȐTgV4Z\`j3+h5+e20XC u]t =\B=ø^өB'#c!!׻'AHL*,!E vLQ$y]_$/`)q {c1pc7OΨ[3NHi2r~rG7vKf^MH7@"I6M2ieťq>DQV-B)^.3r±^rjx^G)=#d:IW:$?4N v;&Df'7(1wIQ1 nU-;hff,v07/TYei:s|bX̶Qb=:'? iBjy& \[&b `NZ 3#3w22S 82eеQ^ŕ.1]~*E(Jn]+-%#rTH/,j xEמW#I:$6_Ջnon%'s4`Iu#o&"4ld=1ؠ&SLqaUY&%#{L4đ0:|(9^!ɥ "w=wlڔr%^W67oj8;з.-ez]{|@_e#A+:It8u2#njVj'#fKdU uE&FOs&wq{=Dp3d~ނϸm 'dH|Pۯj{z/NmvJXê@lU qQ%\U\$d<|/[[wg\ q/B0ym%0n "{h!9$*E`"OWb0V3] K >v-}h:2ܨqnonf> GXjp_d' (, Kk08&L0LR\%>`ydq(wϾl/,f$1ᐵ))" 8`<䙄̄*`SʶU#0!GL F`Z;da %12L3#rra ŒG`&L"0 d6 Y $Y% 9dB zdoF:dɐ#Y$2>~)Q8p ai&(( XfF=G`2 fb}d-c%Va'쐍c$谀d$ny/ѫ:0 a2[Hy]at,,Xg'NMh(%)"IA$ :iR N\I,S aMńE"@P&d"$.!,d) . @XC0UFZHa` e0H,io8iS>]`J=-$l1` $5 ;dSdِeض !H Yd0_Y%/d)7U@qPDraBHD͐W8lu;M@WI"5@d\d՜&9&02bc2@f.a'$0 JdkdkdTcrC c * X2Xddda$,`'&[4A`wLVY"2Jb0+d $ I6@0 M,)2H"¶쁁@Mr@AYBU#3GYőRdkɷ5WG@D@Ntv{ǫ"$a䠔D(5Is( >(©Ur[QpV I2\gfBmt!H%ռF#z&@%,ŖI?Ϯwt{x&V[~z5 d\ZYJիV=y`E.dG/d1R%a0L(Mj1RW-~°sumNt^CH:E;#߸xO05fBhWynǩ[>7M*Imp[[&"鑌WfpﴰPZF""puȈ%7c 1r=ķ-&I vwX`Ԁg4 y}PkF'+D2Wer]7G񖸚SLrFã:H}Py*UoQ: Tw/ќw0[:Č*L,Z⸰p0֘=ŔY95Mm7L` B"_:'Ŋbrgd\^}&x_Ǵݟe~%<0}J|W^^#dqtѧi`+8٣Y# ;ǖU^EaC $Ll۩A޻SUGSր;_TDJN3G{X&/n|2|LgWq(,jBpP_5L)!a*H>e׫]$:┧I$/i4),R0MB/6kډ!,ݣo"q~9|DNłr`DedP&Zea0-,VBjedȱi+_b'xG{\; 2 %w{8CBjʞc!B}/fz36+ZyտSI̶􏆨ߋs XO hn:f!>"/8+ *EW;$*:$^wRӏřYG/rM.-5)@Ċ30㧬&8g>/Q 4VthOW*YEd'>>]u@Up|CFk7d$qTfZp QZVXgW*1}+̸3y;:ETJbw"pkܿ|*טToj OwVxFKTuϷKl4'J]F<Ԛ`5aWm[VKض3Y1y?îbZ~1̫,"tlń%|EUWeZdWeybYe,aZ;w\+ V+"W$47a 9~Ę5yW$`~9zR֎ /,=o'T';Ҡ`GЕfi1;BYt RFqVed{BgP"c;Ds1o3Ǎv[?zN6ؿQZ S*y?|wY9ە.!˺9帮/2Dt >~VF[:5.Qs4,B!x>SRIRlT O"Q[ԉ!HHw>2NsK^}zqc)LLP*5KEZhZ ]tok . iUl'hVSPF#\wG {><^+OO1 @[l@_t|j+|d!+h~M>k24J 4@DztZ7دv2$]s'51\?|J_<B8o{I;ڕjzԌLom0n8DL>JQ~8WiWCL_kh+մ~1mEgJ,Eex (Q$*b>Tȫ2 Cb3/>3 A<lÍi{rΰ=X7״Lr뾜OI'_[u*(xs‡FV跹.9* .˽+fWLU5aR$rK2]Żk&A}1﯂|w")E=1,N{7XPZqh={ -Ixm1qF3s2E]xhG0 =KAI)  =Ȩ=%RFU!a<;*(8mx/ؿ|L'湛yaWGAhƌo׵Pz_Z1~B 'vyqrSeD C݌dkhc6⇭֞փȼ.8q>鳰Nwz8gVCV{~TXo.8rv-A 8,X a7\1c \P>"ɂT 늢ڨ~&ஞPst!]n{kg坫#kLRdL%kSh(T TRhId@,ˬ,֔E>6b')gu(q;C2 ];%-|![[>Fg' E(@:GYv%]KV )ys=Uulj~+}wS{6'G.A韒(8s ([vm~9XeZpAeV(~t8ɪ9hYl$"lZ|ASYSj;OYV(#W3ۿ `b3#A0)2C]&>UŕC.R!z ˃)t.k:u/J K^ 9CSеu]ɀSIA9ea$c:z:t吝=xPxɄ{()Ǒ`S, ȰXV1)i'N\3sKtbukztaa9VLզu5LBGb>_4 kJUq{QE>8}Gs9 {)+{X: /GZ)A;@_fK3VMyi@EȺX Mǖ,8#W{/)LYX!b)KOCA^%&X_bŔbC¾SN^]!tj]dq(dIi0*Uz[|o,B SQw0o<$E.Er NbE9U6[ ~Ÿ`]0QJ}ԎDwA}Kf>tȎ""p'0#J߳*9ݼtWQt|OҲR8=ADnQcهQK= *QeQ58U߹^mB=GlEx =JwVŪ R$jcWLEo.~}|,|w.|'F_AU .f;V爧qۈg݋>#uJY@g-A1 &ĨڂLj^U)bT4@=vzٺ>rmQ@V4$ؿfx Vҹ*LHAX{վ@t+3pt}|lEPxn;ֲUؘ3"@h"~3[i6o"qu;:u ˿3}oʄ:oדͰKёzM[. d v`ywFe`^&0X=?RA9N>{Klͭ>-U|`+vK }}R0ҫIϗma- "eh-*(M64;$ϴ ] p]umңiRj ס%'c'.KSVw:gUWJ|c^w&Ҟos"p*4eQzqôzL}^5|[sσt1;aKtU~G,rϻ,A7ĊE"Ҕ[gԤZiv'||GonFO5Hd{F7M1w]2[9!@<͡"eY) (u(uEGF9'G =i'7" Ջ5,8cF#*ses<]!7$`οA{~.~2#f&;Ǫq8t+Zrglbnغ<g|ە8 sE4/ /Vfu˯K/{>,CucJ\ n893RWў XO@st~r=7OgfU9s6̇5_ePN0T&VM22<^w浽Jk^ T%}I๞d'|:ޏ%ya= ʪQ\G;24CejEܰm^f/~#W:Ŋd#l^ndU&Oc/pAI1ҭC.0~Rs kZopC׭|+ߧ NRTDx0^qNku"*Tձ~tLMcZ1 `ɑu-t]+oyy Lwʌ}Mz3qtyՁKO/fѾŽq`^-ӹ迸xq8:hw]s?EFWR̛],}Afw5QܥŬN/241'pb IL밽 RT/Nң%Īmy>F%|?gmCzS\YlneT1>F5;[%EB4 A! F.>$QOڑ_d OP?aK/# kI h80A=3XL;U<#aw!+{4Htʉ?v~b=o14iL*Z/BJ- OAaE/dj<f+V (o]Xպw谤fz8A~G7ǰX6Y~c၉V5@$zV`v;WΫ0'%g6T+CBm*A/K߱pYIwA'||oAaǂ t߽mOb0P=f[Okb'i*|\b<qc)uR#3~yv$RF\*] 05Z_mW^?AX.qQeOm^"jHR R9Xf if2.8ؙ "9YEFg#uAݦ#51'ڕy@oV(.-]a^c[GLU+/'% @'> ߛoN ]q#Ec DVNJt\'yUմlR!6EU܂xc  QBT,XTwnkZ?UwX}4YLm cƾ~+Ni_o xFM/@(7&F5p(K~;>l%]9K;V;g<髚&&Ĵ-*Dtŋ¦iE_>:DKch_%p*6[x+r50@٭\Zg5`7e XAFUg.s/q[6r$|Y6=0VlOgytՎAH{6xo3PǽitULЏ2#F4-mE%ʙ Dԅu({H[" X " pt)gt7g@|-xUѽb~څ%l [1ZQ\5?N 8qw#-/bH!x a<|^%Py- S򴡜Hj/e+ 7kj;%z@Ξh4\}"iSOpN%{STԧڣN?Os0gS"lyQ14ƶsi&ēM51S60794 zh&21>ӹvT L:J&t43IM ZeeSOLjdv&RQ4鬭L\dViLgS#"YX`e3U)M`Ц4.SRg%S)L`v5&U&5 =0Mh(A@)LTddSL3TIMk%! iT5HF&211|4zjh98 4uLjݦ)b/^Ʋ&Ӳ2ɮL˔֦M6 4ЦqhWR)L[§L*$ӶW.dMa&P&r1+"4ɐa-Ry36ÆS3XSIN&|QLfO)^QHd-a!f^ԚOgjMF>J#oKCț'H2R$|+t><57$ 25 y[Ag1Xo)!ejQHHϔi/A7KzP-٪aalmQ%?;Z|4PBV,bCR8ֱv3GscYBB?>Rsێ!;'h} *^Iw!hٕ{%4X, ?43I;ČlKސfzNTIJ +༅LWT/ 82;lɻs/S¦-ʗ䝩(ȴIt $AxJ^+`,X x`V/b+k!Y 1S7 ;#?%idd8_u ^5t5%)DxU C\/ӛ3ë!GʬX4@FR$A>X&cyjѦY{+6ێb+!iĈx=u͓r>W*|, rֺH)+,1VTX V/`X#kU~1}$q}ɫ}v^I) r 7}OuW|>O%n?=O䨺*Ec/Qt_EY*- HhiX*ձ*V}.]NN숑ʍ 2Ȏe :DԻD8>NjnJKts,NsQ2( ~/s_+#|;0lɁMIo'G{`(:2q>\0Zp2DC^7&-aNyXz@|,s2L,!#r4SHC8[L8 60k!aMrO_=Ԭ?Ix4!6 F5@0 ZP'œ9[;Kq5OvuEhir N]~$.b$S#TRwܮ~|{2ivWil>|9Ϋ[!dDD șyQ#^XabD66$p3Ij$!EOscdlVT̩JQ ىئIrDh q$G6fzo @tOedR0]. MR$#@nᎌ@`'XmGPk忍5.;3q;9+T݌DQJ5R~"{(1W;u~Q~*_k, lfC:K%'unwdn6+ch#YnUkl[ Jth,W&ְPrHw+0C@,s_^bNs4c/ ox^ 蕷@Q4~Tߒ4 rQpdȸ?"(.+JnqŶ/p>'%g64QŻT:xr]a~x~);-=Uҕ}:L]tުl֌bt~eRMjxġ[98v6;M^}}&1J,]=[k[2h_*)oGQk^9/d^?Q>O`Wc9c5==gŒ7g;w/qe~.A [{<>NtiQ8eV+ӹy. phKjtt|qϱ}R?%:~$ kc"dj~w.oTKRk&RaCv}iYOq#>跌|?U^t#>)U==?o5CEUev[<G>3`isd&5SL"!q ,{xݣZ,3BAq^qEC;^zuwX;Mz2wݶݼ :o/x?[gNy6pqNH4&XL7ΘTB+U/΁ҁ9Ba@*=ֻQZR;q]s;mCAt}"m+"^j7lk߮ R􄡏xC蘵MlxÞ]w>"rn3.c1J<p."+RGY<0C)'܍4pD^˫,xI AXa)(lvcgZ׎afg>/Z$XB{c=0ZvEPBp"i>i;X5yb#wnQ`lFmg;1\gU@(Uχ,+?R}P0jIv48|e+>0cl/䛝8;gI.f9ڌkFYn`?R(QcSsE"N)B ˏRBz*L7d؆A}P.K K]/$QywO9uŷJ蹦a3Ņ*G^\(7 2jt ϗD.ZnV?}snY(t --'Tk*˝Wqnj߃B|>M*0֢ ]NZr$h# کS;&2kKʫPyꀠ)_VsH4p}f#6D3_/U`>*׾(0"=ϩ*oU4+h잌בKjݼ}Y&{i:Žr=;CPaՄCYXeP4e},8:7:T|ړOmagk̞EQsZf{H7eqC";-xӡݕ t¶g`O n )VTz7({ἴ !ٶBwxx'hV7z ̗PLޤ)t%VEh_9b\f{[[8hgАG-Wʜ>umfKjM] R~E2D{TO.x}:`e ZI5l4/<¥N0Z1vORNJ(P0?$7 q,݆.Tb0K7Ema6\ffhϑa734e``ehkE42j;QiKcvѰ'(hk^isC(sb h`eͻ.64^dAdY&f;qW>?buٸLB}&k/(xM% gYY?gB9Ls <2vBZO=Cn΍Tk<@FzJ܇¹l8r0uExuiemj҉oNE2 SQy]u"Gq_]g:cCU 0LuW]O,'o; [0GYd7p'(&b:^*rXeOz7ҥAi\O!~x+<J*n!K "OЯg=к-nj'-2,lvC3sAj^$Sd/-yrwBF"l$ wT!ERAb;G{")*嫎:W/LlD.m͙}mPlDN^AiI&V4"/Ksp|yx@7n퍯w{<{X؋Evz/vQ/:TY.qE :1iݒU:` TX3HLɲ9Fo0Yf}3W芏yI7 oK;^>A2cC_utsl;{nNÏGoXzB? &4*_kVj6$7i̜$j:c"J*w%9ŌVNd}&~GC1622dO Q;2<_yL'*/=@Mp/}k}s0|>GRk~B&Q"[{i$bV?f/jAMŭcsn{-OѾlScyb2 E$$D^%*731=dC tP)Ӗh4 _ MRGO;${EbALI"N>AS ϊSUQ>`32+&lmr'}ȭjn%;)@!G[k_ՊU+0̴E VJHSgJB2bDP٧jc,AX>y'bekٱPI҉dwMO7S1%5H5p]JJYS"N6y3Ղ:  &ĐI VÙu35z"su1kM,JИa'b PLQr1k/uYYiwc!D1Dpjbs=YdvW*YRL2,'_v&f*jVNϹ!̽Ddk!Pplh+[qk`X*Zf`UP#*+fe<'"P騤m"v"!-z9U#TbX8f_ ?\Ԭev%F#U5[Y>ui)Uf-1g,Պ1/+ê6'f(#-AOP,Y\*[$vfVV(WXYQb$uHw,u*+fp'd Jg6H v jb#Q VZ_̯AѵdSe:0,."]͊GLRV!s}"%(+,&ibR"-4vQ ]&1%j!hh xiXVLz$]s9)BKګ-UT0-4鎃HNJXu:ȦLO39S+3!dZ'ąE %1h-AYG)bv$xısl\\D*0(# *,BBC ,,,((,B *,B 00¢ {8P1:B,(*$$Z葾5RQθϋ]Zjtڳ\kq=' b&~1]0~ժx?(1\v233,+WR-iM)Bab3cν D2,c!vJNkiώ6󾛤mqeiemR6fS@jiG=k@ `yCûH?p@Qw B,hMP~1[g{<ۉ˞N3]ӥlIom7<[AtǓWs!V(U-BrEaXV2?eC枆6&@E}뚄xll;dj~ ->)aaQ z]pާS"Wˈp&7#A8aJT*J11U[[[\WQe}}dYea6a+bW\E$Gd:؇b*U PyϋZUcq&?ETRu󾡬8(duzfDOv@; {$Y=h{b|?HkowlQN#RaH[R 7PҔ2 5#ŽrIN3B!p.G\CntI~|q0< xr| T'myסI-2/ *SJyN)Z 8snߔ.prt`]Yʢȟl%ȷ"%TzF_i(aUO7R_&`8̽y6>Ȉ_7{ծ.4y%Pb-p`0NQ FNj%Yڍa-EwR[嵫oo[-K/m5)9|n C^o;5(Q^*^V~o砏><1P:=A*1n-\)/jg/ڗHJ8۰Ka"8|vУ\͘sqrRv HldgvCeT:]2Uh%Z OxOFF4tIgH ߕD ItUGl|*_P!4{.05a}RQU'>xNTxxWq14(2za2W){P KTĮV10 J5X[\ fPEв͙0Vl~_vEA(a&vy]~jWF,{kbcJA]3 mi8r\F?WFJna,`d\N ONQ=LrGGG>o~xQ *A=*lZ2]uQ,  ȡ+,KbbtLY,|/RT^T7m{,F=Ąqp0+M'5/,PSZK"h1254 }$@VS[ܩ]#e!Gѓ"WZm8pY%!߾ADx1~&1ˣ4'$XzL/GUXǧlQ9JYN 75Υc:OF` }lT}fGSƐV!3L/O<=DL,k9ņXoVsDbx ӧbbJb#DZ?`~[I㙏W~%STV^UYMT_Uy = +g+7H2}- \I1[z4h_>\p%fﭢ~B~jrRFËܜs&(/)8k^[v$"P`WgGTglƤP 0-- *ybU~Hޢ1ȢK)#{9;c ZBuGp#`]_s4% z_**.7f͞*iaƔhJ)~#ztn"o o)4xw6b`8"bC2=eքwuUndۮ?No1*d{?a{߿R~'<~ y imaf3XLml+bL;3?`SO`13,,%ވL'gt3fkj;yD~IX3 9 fZ2fThМW ;Xy:>)rW5,nPV",G W%vY[AQ{^xX:dzQp7S }ݤ#{r&~sh$/٪/qGDL6*=B^_Ҩ2nL^օ`CNWX&`&'#+:&b&Ye/Զȟ&^cj]_<)/D?oJ9O]g>$_meO9-1bDP߯!3hɵWBwWDLY{uLL 6ћU`M Iӧd.E¡Ab1ѵ&Tq^W1DK>vV^W /)Li]~}'.?4Pb 'sct;9۽vdr+M:z(P,V>d~gϢ#~>X7veJA1Li<7u[{%oGbx@zL|WiG.x0}i9 +e%F/Mg_jPw҄qZQ0.`6&k4Bedtdp}S_ۇ$TXL|'v`exk}?l!apf|c89Ǣ5wr.=ℬ؉ Z~;<)ƉUzNMb0$W8e/./xB,`QUoѱ$Ub u¬? 7ʐ|֪oC 0mۓ5)es({lUYC~(("NX={+GVA+|+<sڳ *űGgcra&}2yC]&X45LmE~kQ)ս`?amcY*d]U>J%Ǯ2iM,@U,} 2ewOu<戴曬4M|zE$ZDb,vu8V'N'N`VHuŤµ}T|讬䢄w?ݢ& 5Π^`W0JKc_ MpdV&6DmucVe( RNAے牲&HL JQߺj[zK^zLzTD*f}GvNg3C_MRA| Es.WIBe׽a.vhe?ƶI6\ qF_>`ѐ(`PI_2DOMXچpܾ>ɥ#ڝS&x|Fz _QWZy _~+Nt SX WG k~ob*!m{Qb- $]>Q4]yO%D AQi7@@FGTB؃f^3+'HaD$X|?0l[fn TRƯl% ::%u o>lI eYf}qH7ϕQnϿI\?dt:=KN̄$gS\Jg*0=L)SWpǚ8h M:+۫}M[tpi\~wqin(bHY*kad~y|E/V?t;~82 }R=mDO:Rwmvb,攉֊8:BJpR\R(Eŋ0P:nŖ=E?VFާ}}%F4i ѥSF= Jm w%~mwmaA*;a@q`LQDT¼㻢 lv"9ެZǓKޓ vMdh7-m*#s(S]Zzm?ݲ owPjm56>͏;E V1Ey=̖9T&(.'@rm(_-aŒ12IUk§'ml\ۏmoeoOne,JDI7 ]4_,Cs'=t +t2x{ϥg/5vDt"x\ #D&VB*g2EO`c>G7v`ېzS~%A;b{qlc}F%d$Y.@#Goͪ_?R_Lg*P\%B[IC@RH]HCf|y 0eXU$!yP*@:ؼuLzKeٝ S5鵹L[v GaNX"LI?⟚J{b-jq ּrmJYQ7O,}JN2|H#Ԣ8?w8[GXUoObŋ!&RuԩA⏾KliӁ/  DRDisdT)(^ & 39Fg ÔGf~Cҧ9I"}XyM7@no{c0dpaUˆ3{7vEc$78ro[ww+>@dQ*Mb.6O㗷eֶ>] `9OH( nK EoaڂjQH)y) d%lεCdaq2\'$G%Մhݾtq!&9=a M@as6&S_+i>'\@I'Z\Sfi̖cH eZ/w6l66! #/F aq|B`HgrCG,a'LҲI` r׏0hx4pW+0ϴ;xNZ!Ϛ`$%rZgAVGo([b.In1E=Q‡Rע9䈟B1@< ҵ)} w,{ҠڙKs3s>S30Eޤ @ -e# f3 J T8"H13 r͐lCmdpy#x̱.xW=Gh* $YA7t>]4^4HeRR%p Exау b ;/^3 F9GnvOab*b{v1v΁asI]0%k#M#6<ǯۄCDԺmr1V_^xu8p\입c6du< aʅ~bU]f.*oJB436(;OܟPsX `o)eKdà JNIӇݜ.|@=裸 f?ب8DS\КdsLB1ļ5__C?i.X%ȳ[/R=ջ*CO!ImQ{FM^fZCqlJ_~{HQd26 h?*h@\*}TVW"$ V\,+m,F¼]gT dxr?7UQ6nλ= P=sN>3|*}T<-ƚ<+;?tRpj2ХD&;m6d~1/S²^H>qPqxEO$\^~4ۇ%2=YD9=S}Q-#O+Jf1p( bLmbyd[yrAX +%\O%VxN#$ h=\XSv+lࢤNPRݴlL"C`g$Ϙ?\WmqpbG+\n؃Yq>Nt"`Rh|֔^uNhKl3 Л0` N]k0+W8#A`.]k֯c%Xv8QmחPMaQ]7T OB~)u(et3*O 1DXs$ SV< {3&OLh۔?Á i!}YkBH^QeU@'W_}pr,@ C8gPPKѪ0dc[n]u7MbO>{=Q̼Oz aJ0Pc=/zf㡜!(%.|X`|VT Z ;ӝغc2/p+\v̸"to0_ʮD7iSY-٣˂ qEQd)Jc'9SeO6>G/{/ڄ<% odYS~}wpU)WS"U+3 <̅W}X9^й+V땎  5n$6thI! QZXru̖EcUfY;Yldɓ "t)l3ϡ~=4f(np1 *fF?圅Qp`DӌM3O'5;<걀}O6k;]G0晎ՙ.в|?GY?>,|$˅b|qH3IЇ}}|+%E׷h\~0}J]{5}1 \$*D=Z:b< r͏\:~D]Sha nL E8gl㢹@:Wsc@WY4(Z]Hш/}`Ģ:b=WX;NgXW',1LҼN?"`Zof+V`Z t0wRu#HP^S!)T<6qq\;tq7)!n+t|9KhhPm8 wNF#w `a8-Q͖wc \\ZaK!57v+6\ĬަChvCf$߯x5)P4{/㖴}K:>q=8sncZ%Omytn `??28w 6˕3!͖*4 `bFs#`^֡_7Em9-u.>(=vl{+%8l$}2Wߑ[Xڷ3W*ɇ|_u̖WF5EܣK:b|#މ8)#(^a;6tB05o=rr*p>d).Y(KpG8e.m6QMal Js 2C4e䎠:K~E洞iM* QŔm$!+ɠUn3XfFyѱj>qgj4-msL thPV{ΧaT>}62pAl>M>\Bb!0qL*|>6.T| w}t(Q<^_OqN" @Yfaޤw=[}*Qiۣ~#QﯰWRQyZCt:oykH}nĶc^_]KZ2mM{{m 7tFZClDeTrRllKϦRi_+Ō[3y09|OL\u8l Ku@B*vyyirr2|BKU}rX{ p}Y0YkyDxd"y~1D%lZbPfn8 "[jZڸ-mmh[Q[[|ˤx4I:^zrK6H-jNqQ52=Xv> ϐTVq[wv#noOA{{%SҴ% \tz-e:v!,? SgSyv4s SGd 4Dc{Tޖ,Olj#=VjWao;^qKj4cx^=pԤ ?cI8u'J>rP UoNWdZ>!E }1.u0ǴG< *ܶTf<0^0ʜ=bSáFi*}+OٽxG_bV}\0'XkR#w;AnogqL)*"D):C1@q`Wj 'Lќl:ޏ$$WBuI"# D1Ec&ϙ7$l ť+3O_.`=$N{ 5*EoT8R4Iq;=[oN-Ul|;0XeA@m~p%n΄]Wcbx{Gmha.,BB..)'Vc>ZTcmi$zw#y)==r33=x!isL¢^zyM] n<«lnϬ @jtL`gAW2'C2^ +ΘWĖ//?_ u_r t!=$\- !*JjłիLeqEOa"~?CHu89+C&L\~Ȳ, ;v۷Kzl:2y!cGf4b( z{s8o8Q5kބ_x垏*'kzc:aaw -H)G ӡqDwrirn lB+bFokUOmU{?=UZTW2/7U8lrO tJ%uR+s~'plB6QJPF.6#MƊ!]D̈*TOA%Q ͖u|Y)T_}^JЫ$_>ycaFyrv]RیY.*K1+Բ WD.f/f41*@ٵ53FЭ ͔ YevC! s$=Mvt17{$}e6*-Ȯ\ж]"˷\>e.i0?*|7G7xIS(KqOZ7gwa N*~) N,8&Jq|H_6x|lhvk_,c܄42 ɖI3RY)82ɓtD8q>&5~F#VcQ lӱ J-0q+*fX'I#%~٦D.׸oJ_1j=*b09&QeeeedYY QfNR,'¡TҋbLiρÇ/33 A!d|lpet2cϋc,*J0+"}:b:ڪ?v<DQiKQb<;K 6H!S1"XXH=CA~@2U奃ɼ'4C=;<W@.y.@@56/;ٯFL#/]vb"6qF [lvlˢ.gt,o4zsx`#YD=R@8'H$iuV"ҝ2 ˉJˡ/RGʨ9$3 _ɕbWɖ `%I/oALz=mk;yH/3SY;4DZ{8M[#g´tUI2G?1}(>޺WT))S^gLV`.?,C`,K {͜d3|լYgJ3\ǃ(%|BGIu./b01w&Vhr%P:!am%,f8>ia1LPN8T µB#xrK_bW9ss?QČ1|Rr;Il#*W=ɔP*ாk[.DKhT]&J:brڝQĜi`%u#&!CJ"lZi~5 & jK sO i\e)>4Y@oG%^ִ2IZh1p! 쨽Wr}B <- @!. F=asy^"S|]Sj3e; Hp(jmﴞ 9dց@6,AV {a *JWB+,Ky+K ),Id)R}y5ƔY ?kIqZEfDɎ:ř$?:R a܌!=yYmT>F֏qlOȲTgu1h)4!MT ɶ͢I<[Mֹ8 LzT7,V{؆;00iAs^}O 戙o56T*+2ʩi/qs&]UhDs!2 Q,tKD(≳ge>=-AgckǶ#5 /8O]QSLz5X8jzey.,Q+l!`00`dfY`2,"s5G+SN$;+9.ӫDYbNV)gκtUxA3 Q>ʦS֜>-B^hEC ??Z1W*|QνQ$ѱ-pL4]2\#S8}i%j;ΌH6o[pzg6-!l> Óhf?;[F-kN*j",IʛޡqqvE|*lU dTw4eێaM\l3._FTf5ql *1}<SR7,]^UY)|xH~'G^\),EK D.]*dIY2 a%N"0 $pxoͲUmWQ4WM~W0|PeA|y36e1Z3V6666N)PL>BFIX1gg|Dˁ0>?Jc-5YZSv* 0U텮^?:ROaYΈt%cࢰ5X*W! S BWXܢ68ʙ1(z F7x;HNķ~;rdЈtxshbxMf;leͥgv;X o;HK܄#+m_`o\y\ݪ&8Va@3#0+~vpr ne' J 1I2^SuaFb|'x8N:w#45y|0 2q0vfe٥̇w }':kݯ9qDpR3|];NP`OwtoDu JtF8L*EPl2 Fm0kJM-/>O.- X3;W쟯zG" zhkj:0қ\B'xJGp&86/mz߹}rGƋ}|?A kWŝڇ_:( DmYjՄݓ0}STy;:?u[3;:c^k4 n-gTyPѤUU|1Bv ] X<ު%bvZ29q+PU:!3 ׌5j @~FivqQm[bEW4lZNsc"Z}Oؽ)(XȴFtRȫTxf0ah ̃13p)EZHUĝnGWcd PDQ@_$k- eQ2E. sXajXհQI[t\S#}nѹ÷A@DNX'Pؿ呝 D]! I w>˟a"b'2N7*=4ņA!A2R&AtVR];h+oO _M#'LVC@pU⇬á9:!bHKF engEIQ6T-m6 P7SMeO|I;Vuv1޷Ce! >Mm5o0N*ճeM ;vӧO7gfد nxmI\s@c6_*iLz4^ .gI's:Ny4&'Ke' t"t eL1HWʼn5lPETX& \F6l|{tl<;Â%d W|eq{,'=f-54 iӧ PݽK  U.7:-7hp5?-㩾)RvhImp쎣6d5'ބK+o4bZ\c﹓h<<8RY xMحJa.1B]<pu%>G<Bv,6MIؖBbд%BҶ9h3 b9ֿO ;ʼ Chqx4 Qٿ*,^};4d#LX7;O3S4i'7q0d! K6FNqG >S[Җ|KثRɿ *16eLf- /YoEw__Ћ8)|C#|Z[=/ +S]b`؂P(^_y|Lל8F"hMI'eӓ 6@{_VGpp7&;LA*GeBpT܂^,,zA-[QZhԅ, %׋ڌ*1g͠p8cXwzПp]A7;?$5&l%HZ1GUBAMȥG^x 2]mOI> %y~Cd;i*W]KUuܜ>x]Aٕ$7ʖ;ڕL%s.9߭`[=-oWrlG AEw7n0$= O[5-&oP? _(qqhv 0>b ? l#8"L ;H fE']>xFÅ|z_3|a:~Ewj*X őd0hfLX33O8.4<|GvGzK}k!U xLCL8R25>3THޔ9׬Ea&[Ԍ4&> #bl4DV٪A\ vM7DR5뚒<<짩3&PQLnfbȻr~e=2t^:e[罗aj feV#gjcduޏN{щ϶_3qlլ4'Ӄ5>`K]tqݹL;M=CriKjB*G|i"4),}KcgQv`xW.0e#Q>Uyʏ].cFMM$q,XVr+A&ĎnI alpYG-1nLVQUfCRXZ6s{Sz`5F.Ga}}̕nNOTz)E~3OE7iꏤP^w+"GJr c^Y|UqEHo}OM?>W`߯/Ƭ *FFox?6WzΗn 0}:2l~-CB)Y;m#zB"} &/a:A}~[(eM_jםmlNqLI1c"&gKMS-zeZqŕAݗQOi=wHB@j vu]EW|꾏"碡92'`Yc&8 -FL5,6F6@xXxzfN[ZY黡r7žR+)C)_k>&+U!B9?g,s!` J.f^pNpKu= i—zH!WaLf],2b9U3,C^ UG?r2ś>ǣ'\BxUZ5mI"0-r?z׌"{VDa™0'e%l7o2rb'H]:rCMI]{dp+nm=qu'vB!>95N|`6ITNw @ s˙m]W>H ~8MV;=w'sU㿞o3Iy:!y/$xl5&I\v@?ʒhѣAa 2vg>6cd?bJ> rVNab$=F)si4;RƁ8/f.XH1+.D!p?~ˋg/R2(~b*i˴d֊㯷F95a\7|}=֙\qN}()Jބvaykϕb}Ά*. {g.K_!0ROuMPcB5vaI~ATB>  їS]CSZ_ OU7Og4FQVg'bkmzdmaQ.6[c7gavtk "UuG0Sdm;hn]󎍊}?gbƐ{jB͟eCzzSF25g4gw}j4LHHo&6#4#;Pi˵S~E|!~sMۭ—cR˹- ?'~w8/z2)Rl;l xyNQ!gz1! iWםcja13  ,.P|h=JUOA(xr#Җ[@CdUj&2Z߆Ȧ٪b!?cn,fmhk͘)x icb[gENL;Y:QX4 ţsĨdGG%({]!#tӨA6ڣuQg"npBPKn}7(£c/H|C\L0幎[%'OXlGE?w;7*o n H12F.#ތ4L_\[5˓)(|Vټ4U5 .sc)wB!OCa5qVcuTچqAB BM);=q(܏;^[zIG.Ӑ%j9(޹*7xpTlŜZ@C4l>a4%CXK>{2)Cw=LuȿO“ %./#7uYY} ~,5lTVzkul5jD\. kl-JR zm.YWy"^a.7_eoCN-XmUǏo)2pS,{O jW{\^WȿərzRtB`[ڱn$yx -eBbjr> oɒJRSnثc![2LM?RKǵ).f"KC4ͺ&g- =q⹴]}mOֲޡ_S̼췻m Vp_߃t‘F-cHIȮ 6k ]=MtۘQzc AL!"n½ت>&`+i[ ͏к\ƚdz=KEil~{CbB֘Jdp9xU,q쬲,ו8ɧb}㲈,Z) IR\ Xd.`0!X *LY=N2i%ݒ='ܦ׊,}՗BeMֽH5F;u޼AC# 4QX)CypgS-N߲eԺˢl)bsIY'_װ4_ȳq(aOsd׶:N'%BWҢ lÇ}BzobZq/ iSDNDmmޗ_L(vv0+ FDXS~ e_ ~x)^tC,#Nl}n#u\)qjV?9k˨wp] ?odJ |:L<9S2"E8-@ oOlN7 &݌4FZ*g*^2cp7- Ir ̦Q" Mz^H9BH)GJ`~2 ?жY<y[go%k8]^<!o9Rc,f?^aFȞX'*o""͢.Goe+[A]<2|lAiBog%v`,* * B @() ,B"1( 1)* (()  , 0 * (mEU˔%L2+8h'7FsUt%IE|TStpw24JĺCCwJ0³E]fĶ ZZ0L7 S>R1jN'od[弹_;/* hz$?` ɸeJ2/ aF P^ tT0Z^}m`61AN, ,k2z>G[뇛,Nn8qZ{+γu͏:G-w{"GGx?>Ib~\QoG~=^?կ1)/r(#>w"fK,5w#@xwץP9M|zGU8࿪\W_͟ڠC?fG~ֱx ӋY7ĂPCtɺ;Q%9*lg\ݻط-mr6ޭźX\)59YTX-<>fy: 'qXk~yWaѾ?ZZvO߽z1ߝpF @uE`mR+ 4`MR"^517|r7);'moڲD͝m.qp%9$.Aףbm`dy*oeN-$yS1W3`*•"ݏ/v.NpI]s 7p .}~4qg4;3׆@!AQS@'e2GſkFń1J lB|6E)WHc4˃[x;F[S'LQI޹W%35oX}#m~`Q6yxEĝm PGOie~b_&}$ፈԴ̌hѣFV\l"3=HwO1#=Z6FM?KѢW}.np+?Ҵ+Eѳv|v>-~\ ?>/ 9fs8׻m=!7GK=3RyӍtߔ~O{/Ca>kL$v)P'ӡ4XQ5imi\Q@KJpˊ3J 訯}Qa4 : Sb뺵Y"F|gSĿw<ۇE9=_;7/"Y T_;{z&Ģ~HvԹROf8npC lh~mU#nLͺz-/hG9_P+7%c7$+E3i"Z1PMah~XL̊µkѣ}zTa0mQzNqa3M/2~Y\j38'XQ?$;68>miݽ NBݭD=0\.I2A;7Ec}$3@ﱧV\OWZbuk3g^n4y>MrSUƞ 1bg]P7o~Y3S-O2a'7U Dݡe~_Z8myyXpzj =XV[^k5QdhFǩF?u̢gk$PR/ ;)=8o*?dsxUuy_^(,b@)EEH)H{SdiWJsz1uO4aLȺ bMHY1x`kHl֣7}5.!"T|8AcWsGz:$ |g\S2Y{=_8ɉ,]?6>iirzFp2)hP *E9RV*TXTLDd R$et;t vP$%^&}YPX.FH)pnw.=2舽-AH ~e^93yv+5'yَf? ؝MQdXXG#iˡx2c W Y!U'ŗ,:;{+6jmחZIX{+fV v8I+\@YĈ m˚;o-%.ƤuyEH zpYmlX,*+, Axrz{/ExGȍkd vrad"hFNdgڪc])j%%h},?I z(S>UDyw59[C~FOC|>>)V;Qk/uW|wq0 { ix3R⩯1t͘Fo4miyB!Qtn{=JȗJ{c3[}v@zM?ElhW݌Y،Yg @ȺޛY| 2L-( 4.&Hݹ|1ۄ|j\.?7vMVf9Gpc˖BL2$" z&!ey.Hgʞ|tN"a " E.h/`0n CRՁk긶>%kpL"] DanV6;_[{&i>vT5ОU5  bOs12hU.-j׽Qo3]ҟ$dC{%ezvG2%1#f}D({q!ϔ.X v (ˆ E@ѹ$vu~X,t}_VE {,졗<_zZyDPNj_P$l7 耒K2Ks%iWpe= [oA~^fOB?RB N3+?gdjl@<f%ycYS_XW/M\ҳfrQu3ooIcx5ض߂Cf!CQt<\۽\-ӇŮu֐or]enFWeۡ#9DETd}O8q [̽BOkR)ǽ5ɗȡ?UɏάMtϙ yfq*g==slf/͒6d17Vl8X.e<6~QOrzhy*1-7{_sΩƣ~. gt@LN'NG BP*+XPM|E"~FM<_Yƴpe\s_-x$&u(>{j~c']̄c%safVL$AbKk8ޡ7$I#`  j5[YQb1a>O N==Me59Zay7G]Ǯz/N~1D q9F>0F83^PQNW=reKO? k"Cߟ}\9Xocl+ VYYY!P3- KKE$PRUQ(, d/>Z, 0~gf55fG׹[+i$l ;@hC w(0+Gq7G;8N,t6P3LN45>~,f'2#_Pm?s>EKED1=}G:ts70}!^2z8PZZm:?#Ovp ĺNGLK޾G xf*ԋ9AuQo =sn 2Usg-jMRSo9+IN!WT\>c.t'-. / E e-cb$vєCL_#Ebm O~Yg[ZdX Eb0N(Z)3JBYf}3 ryu )(Mo8QXc+e>$eU0r;gZ+COc`n] ?[WLѭ4&:M7=ubؾ/nmf[?M9Met]V{a}7fm.jh,/0h8rbƚ &2RG3~<9͏tY@PzqfvʒElk;G,ɑZ]yd qvY_]-=; ̚ Z굘43 ڌm0h5M6lٳfvX߾&WQ㙫}^};͎(f6;b<$Rlj¥ӯ _jWr8"}*p&_/ c*ͤ]vmrZ?CD,;`ڸ6wXZ8 GnX4ҜCS7mi2y'+m)PL,f ߏx q67U@|~(5_SzC3߶RuϾ 9'eL.q%!*oeȵIIE^#]Op(D oS^$ -]cWϯ&4B,zf`'Ƅ֡iOaX.չf2& TU>Xnn|+5n+`](#|x&yna4X]tlT^P8p?$WdR5J{gKͽ3e0! ap[ LanI͍˒ܶNHSL4$jazvO!\G*8>) вF9w='p]:ls106[3&kf_?# 0Gy','kĮ=B[*SY%0qM z,z 4be2t8qڠ}xv^BrOVѝ0q^{O.IA-D9%`žSW3^ƸH.ρ!=9_4 GY.YߪNnv|Xq+#w#WvYC/=2K_ U _߆mI_ DlĴx,G^:f͋8ռ<#o?&cgc\"lpY;{^K{b.8b4 &MFoC^ٸz^\]yrGB Ad`Xgn|~>DYG =qۃhntG|~ůgMh1V %.,X yZ0U7 !LE*3470W#\[T%{mKBzCb;BX˙bqoIU˛e;SwQ vA5o|6{F4)}1)I&?{e.Nqf/XC"-Mi/4a|Cï3=b.[Fd₋'_撩*SO(+(c$W%@;>Q:i#U_SG WmʪCֵq@Pi9I~GݕE[lҽK^Q_tdɊ!M?> zs-9^?"DQ_nkL' 7qB59 Ǩ8芯*ǔ2tF. q!LJW*drdU68"hd۟S&)p4c8UEvFQ!rt~WSzy#*^߻/OxQiF#^aS~RleXr=C.Ga5R⬴`'Z(+% RBVP^. ؉_3kN~I[khz#+[Pz;5և4  yE+nղ /WP*@|d{SY9A|v\jA Vhx jbFԯGԗyԦB@/>5H4TZu=Gq4< JߍS>}jN0N%`}>KپcȼAXK4oÿ5$fjQVػ^M2^TWCl+5ޕPۊ#S9}ies┾+A+~,uW`P0\8@h:2"Yc!5ime5>;Dg؈}x{r)~"*Tɵⵥ1r˗H04/bM %HFy;puovAwT:TA͘E|Q@oh"=G =a3"W]&pH&K?q4t p]<1Zu :e!ނhl(NK~E|޲(JLJe?vwUNQK䢰 ^![:cnˡVn]NL7Mvnn]]v{{=snλx{v9+f幻f\frݝٕG;\{=@݇ )ݬYͮMLu5Ӷvw+\ζvk;ף9umcv;3vk˻mZۖlݻsN{wunltr2gpwsmsedkn9N\nlsnYcsuӗrssikwg%̦]k=T@exQUUQUUUUUUUUUUUQUQUUUUUUUQUUUQUUUQUUUUUUUUUUUUUUUUUUUUUUUUUUUUQQUUUUUUUQUUUUUUUUUUQUUQUUUUQQUQUUUUUUUUUUQUUUUUUUUUUUUUUQUQUQUUQUUUUUUUQUUQUUUUUUQUUUUUUUUUQQUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUQUUUUUUQUQUUUQUUUUUUUQUQUUUUUUUUUUUQUUUUUUUUUQQUUUUUUUUUUUQUUUUUUUUUUUUUUUUUUUUQQUUUUUUUQUQUUUUUUUUUUQUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUQUUUQUUUUUUUUUUUUUUUUUUQUUUUUUUUUQUUUUUUUQUUUUUQUUUUUUUUUQQUUUUUUUUUUUUUUQQUUUUQUUUUUUUUUQUQUUUUUUUQUUUUUUQUUQUUUUUUUUUUQQQUQQQUUUUUUUUUUUUUUQUUUQQUUUQUUUUUUQQUQUUUUQUUUUUUUUUUUUUQUUQUUUUUUUUUUUUUUUUUUUUUQQUUUUQUUUQUUUQUUUQUUUUUUUQQUUUQUUUUUUUUUUUUUQUUUQUQUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUQUUUUUUUUQQUQUUUUUUUUUUUUQUUQUUUUUQUUQUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUQUUQUUUUUQUUUUUUUUUUQUUUUUUUUUUUUUUUUUUQUUQUUUUQUUUUUUUUQUUUUUUUQUQUUUUUUUUUUUUQUUUUUUUUQUQQUUUUUUUUUUUUUQUUUUQUUUUUUUUUUUUUUQUUQUQUUQUQUUUUUUUUUQUUUQUUUUUUUUUUUUUUUQQUUUUUUUUUUUUUUUQQUUUUUUUUUUQUUUUUUUUUQUUUQUQQUUQUUUUUUUUUUUUUUUUUQUUUUUUUUUUQUUUUUUUUQUUUUUUUUUUUUUQQQUUUUUUUUUUUQUUQUUUUUUUUUUUUUQUUUUUQUUUUUUUUUUUUUQUUQUUUUUUUUUUQUUUUUUUUUUUUUUUQQUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUQUUUUUUQUUUUUUUUUUUUQUUUUUUUUUUUQUUUUUUUUUUQUUUUUUUUUUUQUQUUUUUUUUUUUUUUUUUUUUUUUUUUUQQUUUUUUUUUUUQQUUUUQUUUUUUUUUUUUUUUQUUQUUUUUQUUUUUUUUUUUUQUUUUTEDUUUUDUUUUUTEDUTEUDUUUUUUUUDUUUUUUUUUUDUTEUUTEUUUUUUUUUDUUUUUDUUUUTDEUUTEUUUUUUTEUDDUUUUUUUUTETETEUUDUUUUUDUUUDDUTEUUUUUUUUUTEUDUUUDUUUTEUUUUUTEUUTEUUUUUTDETEUUUDDUDUTETEDDUUUDTEDTEUTEUUUDUUUUUUUTEUUUUUUUUDTEUUUUUUTEUDTEUUUDUUUUTEUUUUUUUUUUUUUUUUUUUUUUTETEUUUUTEDUUUUDUUUUDUUUDTEUUUUUUUUUUUUUUUTEUDUUTEUUUUUTEDUTEUUUDTEUTEUUUUUTEDUUUUUUUUUTEUUUTEUUDUTDEUDUUTEUUUUDUUUTEUUUUUUUUDUUTETDEUUTEUUTDEUUUUTDETEUUUDDTEUDDTEUUUTETEUTEDUUDUUUUUDUUUDUTEDUUUUUUUUUUTEUUUDUUUUDUUDUDDUUUUTEUTETEUUDUUUUDUTEUUTEUUUUDTDEUTEUUUUUUDUUUUUUUUDUUDUDUTEDUUTETEUTEUUUUUUUUUUUTEUUUUDUUDUUUUUUUUUUDUUTEDUUUUUUDUUUUUUDUUDDUDUUUUUUUTDEUUUUTEUUUUUUUUTDEUUUDDUUUUTEUTEUUUDDUUUUUUUTDDEUUUUDUTEUUUUUUUUUDUUUDUDUUUUUUUDUUUUUUUUUUUUUUUDUUUUUDUUDUDDTEUDUUUUUUUUUUTEDUUUUTEDUUUUUUUUUTEUUUUUUUUUUUUTEUUUUUUUUUDUDUDUUTEUUTEUUUUDTEUUUDUUUUUUUUUDUUUUUUUUDUUUUUUDDTDE_\U D6A0EQ {x<:[𝓉{g\7Y҂-GWT|f5ȧhJ2RzU#C)E7K?1G;kQ3ZI~sP-t덐($K9wwHmE0V'w<DRaTHqgV?i?ur'vk<<d[!Ľt[3rRx zk3?# G~uc'->ʛPGΨ#5~Ѐ@zGK_ךNXxEKC} sdžw)5П yS␴D`P0cn?ڱ=S6?tc!<3w,>_n8q_'1s=Bo7^D?'룠tx[21}L\}M,e js9mXtRl.K"겈/9'YMm+p(-MʍtwZʼikx6H s3Y RNKݒ0}:P7c'3ycRBGvcף(A >0|f—bc'=b*ɧQJB (nCn]14z^ NUv?5;ġ]ȬY޺^2eW{ޗ];ڃc>KƂ9 csåȖ?/EWIǜese =ƤTIeF&q j1!lF/vJv8EYN[ϢJA島|ܟkP筼IʼnB)-G,Un}=s;.z_;./+UuT1|ˍϱԷeL/{o-_J'u {إ+ˋiv.Y~5&?>ȿTYzPX ӸUy\CۢlH&Lk57uzwтqacڅ;˜[oDa]7cY}p;YC2NsJ.g38EUI5A8^0HqV8ɅZe:_0)6,h;Z$܇ o!oe4}7~CfVX~<83Wki"Eimq|!cu|XUtYK8h%Osz]Np>F7X4*:a4RB4*iTB O FVk\9џ|qI>8 #^)DS舦υ<Ј7#\~RZ~AmAJBDPo'oiѨ*3y͈7M-hSk!+cj4'v%N_fptf޻^r`h tcKq <Ȫ^e'oFi46W.c-D:Ps[uI4Ѹr{-ٝ w̿Rf棥W+͐3=\ۛG0$p:V]\!\vαm_":a &t;]v%ctϸHmr냦gD \ mG|-W3uwVDitqE,~8)6|ӎ>3o,XYTj$݂ysdPfNjmp;D@iq5;xJakۏordvؕI Yzj_ N5d=C@| v%.LQ:ugwn[oͺ-M1]9иiw[K+{s6J1]EO'e.mufgB-b`RU}g,fIrA;C nwn Ď|8ɿk6˃H,ydGO89^Xq8-f}LZJϪ(;Nl_ Ũ[٤aڃCBba\bD+ dO TNݥ#VL-)p>(rIm=ҭ}ow2$4pR{BUd`|`$}bWުxh\E,rV]^,OWw\LCMߤs+o *;>oOp| $T4苎9Ⱥsg hE h&Xvc=#1:T%fv%CdqعW=yqLĩ*z;iY>| Klr0mo@~.G Y)^(|2C<? K~l!ߣuN7|'bq ^b>]o)+GڈӲ!G9*!ʅyLh΅soQK$A'—sҴpcYG%cxȮ,;*`HkknF ֵ!?&(Xog3cO @g:{gap?S Enx!GJ^zfBehq m3}_AiTܣqjJL@[gd5&RᎏzY%"PxsJڰɊgք1gdzr>8;=r;ZQdoj]yN9c,Q:mG!3Wkuv2χ,?kz^\7s5_E¶lh;g Dz7æƭo'sk!t>}%+OVp>2 [yZ˅k^>b]e/{5x{^` *+}o0-9] a7?wSb4]yEq-҉$si(%s)\ܯ3|_. UUjeTЙe?_]Z,CQ@˸4= b()f jiO׺i>%%cM$>mmZX:bcL.Sf=D(k褞~v O<o"Ŋ; `aLG% vY#ҏ}[Ⱥ0Y~ңOlMT|07(hX@ܾ$nwU4IX,T)Bg$ypx/r UqýC<묔?!ΎP9EჄן fKcMi[%VL0M]5*\ײ,w3 xŮ0Wy*2z\Wk}uҸT-0 Oˮ-Á] n +h?Ppi.(fz6$ud&qDžWpu鐄ߦiݴ *Aq Pѓi _S%Zl=zs&X(xt)™EH2=2ߔ8ltTir&(ulCHHsC01 ]>P4miy.u3Kk?:UX喫D5c*FnOqU;;bگDft` ߭8ٞdj+2xxa%LW Oqa^?ݛD[bF_"!Ih~g}PdiY6 [0Iw,s_~ӣۓJLr߅k5S -Lx RhJ#P'@0ˉ'+reCeWwQNs~/82NfCl^)ƑXl1m8B$0qy0i'#N5ܴ}<B%f<xU>?);u#٤ߚ^~ݶ54Cuߡ7'\ٸl\ K|֬?Hj̑}^{k?"#ť͝tGIZWm5MCС wĎ\G,8P]H-9o;HPnތd'?kyrcp.sJ9ûІW0o~Nd[Ԏ(ʏpKQ+nz޵늤5olsCwy=R2oʘw\JCVFİ]?:"UR?GloWwd8ٰ's yBé~2[ :z\㶎oբez$ d?sXo?d:sLYV7qˁ}wKl{ y n04vc!鎙F> Nt c-.x3("q"qHv{Ȱힱ;C\8ghSZomY\K=B~: Ǒ) rHoL%&<48d >uNA0^1<d+bnCH(*9^KaVIH[SV}{_%uA|ђ%?e@/%@J6xܡYJe"B̹bpHu7!+ן{zB;n!tΞLƃhd!)WaUO=Ivnmbz=Hf ݤH GXU lRrJMؤ ~7Xbi|AOp4:zpm`FW1D'=KR?D ۛaE~Wݺ֣Zxzzо|;.guf/`z&‡/M3'Ώ'y&-l*K^7QGě-h=p05:(wAWj>0hf-N[u߫ͭiqm 4sx4Gj>ɷm!mzc)S3/릒cUQl.'ǾxioEXhޏ(%-)]ꇋ=S|ajhwoix ܊>YxuhR^*7<2]NMn_5aoďbv𖍯޸O6^hXj.-}OYO8g]qq N?Yt8n{6>s_5g}sA)Ь̀XW &, ̀L ?OoT-lKD{_.%, ㆀ8ُG<ԼFV57;H/)؞9hcfdn8%ȣ{+x2)*yYvo{U ޻ゔat,}&߳oΨhlC[W3jY_x~**3Lg ´𡾝ygBHTqih|nqp1 i"KSoݫ/V Y-(87T^|0Rxp4t6?!C#(ڬTmEa%j5)v"p]i'G~gA9d=RR͚$4rͫ ѲoD8,?:J\WO7+1B%߅1gǨ9ΨRNK .$QWv% lTޥEErxC̣E>7q> CB0tޏȻ3`aĽ)H}%QzoEy|6ũRQ+ k]4~r;"OAsvtW|eh6"y휏H5W14d+K߹7"먱.fn%n<~}hB)V{q:j}onDﴤ%8 eIgnN N :~HKGokmo/GRgz_ɥwiSt7=R ui7P|5D֞:*!Ň/kq'{K#ifw7o3/oH qGrZ4j ܬ|o|? 0` \F*PG "U?*zn~v͖h܎]w 澸[{&~AXq;Ah]۴M cm4J:F _[&[⢝[Qӷi}k!`}t|ZքvC|)W7UuSp=u2֪7hDWWb:<_"s7fC9c𕤘3$ G.ؙ/?DTvhϩ8#_@yFо\=gO3,WJ>qЕdBCHŧx&U " 1f0cqo)hFte>m s޼^<89LD -zAO3e1>Y4/7a~'Ѓzz/~BR{n!c$!H5 uЌ 8v#tg?p>iGg s12)tys R[=/@svC=t'Vxt3[%)bbG 3B9sy1tw?hzG,ΔٯGNOݺ@bSY.#ζqq[]'|trd;gR#{qm's>l,`c g/]F(LSܽ(^e]gG';tɁyz?zyPoUZGUgYohqS!`> 쟷<l:o0βz?ǗXhzxgЗcjG?7f}| _柷NHōRa!&0U0Uؔi?c8|r||(J.sx_2/&>>K(喚9zѷ%ݳ-G2ZWfO*?c #ʀA A[Ȕݓ`4(#|tvCLؾ/_Q0\5#* gӜ+0M>#HS'&RR/cn-(`zoVlS)m7!)bO:RwӆcߟiG4*)cd^{'ʟۑ5Rɒt!n!+`f^gxw{0֏poB]/ P֨)zimY ,F޲BE}憟F^gęxwa}Q<=I!kt!$dG@wkUT6%@UvPG:9n €'bPF{ ˒.ɾxsd.uOS_v]4;ޱxNMPzz拻 _ѹh[wbd{Y#cytqN8oR}chw)QqR1LQ?#:*8~X=eZ ^$+2;342v|kKeM[nCAW1U&u,+5KQ6g~,uQ\t&{a{er -^6y$]fC'Ɨϑ=gHP[[ oz]z Cd!N71BJcO~ #28iC;;uwu0?gZ kI_,ҥ[/o¡}hq/t윞=AkB{r]8ݹd떄_\ϾRrlwYU)}!0eR0ŵ1@z[ՍKA-]TlwW }kFFʩ+R;L;"4J$7Cj섭_Ju*Fey{ F5_Κ`a!, cT-`b[HQXn mkї0-|5{O者7dRGlv ޿mQ7i[;@Tw2o*Hz89VNv BXrenKxus'檔^ߺOseyFSXLչ]Nc!5e3gHzw;×Ã~}ͻ*c[] Fz۷/y]#99)pO:;h-6J}(g~qq f wUir?*J% fUo+UP˫:=I52H"aOP*Hڤ+imӝT n.轻^`eaS8)5c-|"Cܑ/)j YݏZ|sb7זKfJc]BrsI>Q;ޭFcuz~6lYe888'w6qolwm$헷\wה=w'h;c>=/C6ٟFZ>M*kZ8xABH`}{pnv?N )ٽ t|:a F|Z#TIھf6FE@YSoXE}Ȼзk\Q. 5QpYbLi3)]iOJl2`ʼU#2Uh,~ Ӗi#5ˡ6fu>U? S Sen1SSn-վW7[g!:턔U5tIY6/^. 5*ؓhk%~F_#r''{!ޏ"G>Yht|{zL .G1YYuѭ`T`izˈ۩ocmЖX!D~(ƻ~2O~rATtrq6=c* P벨JSm-N%e` )*帥ߍ^K|5'~~^^nР/A CzWn0&>mhˈ9G]4v̨%fӐfZYtYMVX9^5Y"avk6ZWA/t=vp*"Wa]kOv7B +6CSNuK ,jjY.G{CϯH ܢgT&B~?8X_ VhjjC6t%oq'YY) zAr;ѽyMt;ZK(B)bwCljOVVel  G }>ё8T:{ZlV+^ kz-vwvHLUߦo.|,:Y[qtSKۗA iq(c ,0̈6ƛ^f\H999xݙg5jsziru_id~h{uHgv4p}e~rQi? C; m۵מSdŚMm/;jmb߸5S - oz8 2ϸ0p.Z]|xu {O0k-9Rb=[[9r=[]eY:zZ94}N8Ɠ>Kseewx57gw&#pɝ?aeڷz bYC?U̎Mf}AJT0}ݴa33((KMwr-EiN]1TyOh-guvu/׍/|;xagVAy۷uܴ\_ǩ͙+޳vpabtKl!}^ΤJ6kwqC%7Y$gc:Ŝs=C#6?tR_k=n5tJퟜ - @GHI7lqw|{l]@8;G!- OL- W[4VK:{<`IM׳{xuevѱfEߋOv{(FaIn|_fLu[Nۼjc݅uMUDQa"ONN3}Qu\W6_mջ&'_N6{qK5{=I쫜TMv پtCg=uzntvca%6w{yK3$A$A${E{;kswwۛN"rW(9O7ʋ=Ƕ^3Og"tdYI$ .Wsng.OUY9AUO]6Kxpg|~wkP',[0t>[ԅWOChtEυ2kyv 2H$lBYu.%Wn-]G$*}.cZ{XByk"Ewۑ$WA9f{$$0Mtveeex7f ?uөG)byAuMm,Ռ6 > 񘬠] " f?0X0w&ymS KlȕBv# ls* o^@`ڙ#dMDJLfrӱrEA$!UUb {LG*#j eMA=UD؂g0, N.%b dEyqA*EQ *D N(!«S'g_? 'e$PQ U-TEQD@"@e''Qzھ(02['L2G+]im.Ë0-?ۋ(f'3egӔyNeo~;/ejƱ8AKDVm'Fјt뙡gJ~9gP9]}ăo?Ng̵aճ|5|˚^gd5Cq0 NJA n4LBԼy{(DD'a` tIqLŸ3`@CMM>LLL:JIIA9tkCӤR"/C *8NAPB PvD4AP‚4!^%H2BǑ?S ht,pJ(#&XPGתfpi1`:{("ń4~f  Dgng͉@p$N  r~|D>pcC G,(#hrPFɢ ;s#xq9QJ%}k𬙂;DN g0BL D%TH-Nc,h忈p&EPQ!EQDH"Z1Ak8awC:*43(9'b"(@rD) @@IT)HH|2/ A@bҕ.M3 +T> &DRte@4T R&H! !B$ )Wh@e#.C(ѐBAӀҔ>bTҔJ@P&S^S1*P`h RBecHH%)F! O8J(662אLO`5H5CD4d)SjH#AH+(TGx҅y3J% D(2.D@@96 J2b Q (l.UlH%iJVM8@`4ȦR0ePw6pQPSJN*G#lj!݋G)9$ g0jjL*s2QgPGf/> TMCP'Xa zy2bk0))"|LC&˅J9)I0使~'~}aڑ԰KMk9$? EP#IKIH@% dRSgI4ö|`# <^Y'i~N`j $6bvhJ8!ĩ)*ZK &H)Z\ C˂ks*%"W` 9LaȈ2!04 3!I%&CTR=4wp*ᑏlUHoq"j)jd}_ÜG-ڐҿZLI2dC d,^{,QNIJ<AADQ MR1)q1S 6 QȐ&>  CwD$U2b NO0TT ?c)H|! Aa2Ѷ"3!N(R\MTZ |Y;lP`xb?Di8t@Y8dx Dp/rpEJhii99?c9I 2IM!f)2%?̲#PeEtD͘Gߘ2 M@W,PT5Py@A T>F% 20gorf$0& BmMtC$LlcSb">;/Dz``((NB:fI\yWՃ28dGȁ8 UPN qDi))@( ) iZD() D)Z)B(D(Ri*(( R UJhJii(E)DZAV)T) FFJR(Z(hZ E))Q)BiPiFZ B Z@(( J(BBJ(BFZhHB)Z(JQ(iPi) @ Fiih)( i PQ i  P) F)Qihh i^$]h=}LykC92Xx:-!D6qۇ:__ߊ@QAS @ V=NOZWCjwCY1xk++]s+MM!KP&KOOOOO6RIz韁ܩs mf!C,ÁsPZLD9hwdܛgY_i%M@#&Ѳ["@ |VoLY ^+ :$V IH7vP\{UC=bX֑"xES_d&a*cS FdlvFe*R# *.a} hPZp xlЊO+4Gp~B z~lEx#AA j%أV)T |CtuwRN*3L\v6P;7Vp%`78+l{B.T< x܇W2V<4n]y( N^KDOڎį¹cU@L̨T!~4͛Z< IW"،}l:61g~f'5'$>|t; (?qEDc 8{nz_$`ҤA`}u;ôUè_>C\Rʽr脹1-zqxPBZb ~2X30`rlT3{U%t7ה:Pk`Tido_nnuQmt(uc2 6 #F"ၙ66fЁ6kR[5+x^S,'1._X%XzTĉFMU^ j;o.Zľ罩f0|E` dMi[r|?bWt$MvY8-qqܨPQ]T9M/8ol1}R|!rBvz1*%a^}Ud[M=aP PNkVB)8ItNa[iiJ)~tZxKҭ@$ZNzv8F1$TBcc~P%IrˋZ*oC )7Bt`9ڝvOx.V'|ټ3WyFf >mkPӎY5 |Mp 7-8%q@?@OPhWۯƙ{t8 =ALEX/9C9Tiqz"ȷ0{F tњP> m6@`(?hx5<̋=T> Zc˿rP;eӟ쾀 |(a/ ʭy#Ŏ3Z_c?ƛZNtuu{ݑHzwo"̃@ NwNceFliOӆV5_uUkGT Sq+9N33߁p-W*7 ` St'}ȹ3z''jٶ)nՂ$IPˆ&ӾZi}~JZ:iM TՕUXO5ubʒ!"E=6m~ R*uVa*^!s[JthdRV9?+H".V%e"ظ*]+m,(P5uZbJJU/kh=P!g^5MRn27& Wg_ N1&F)(R;BQY+aov}`u1vB'!8L.#S^@^giշ|X>'d;`x/A;wY@G6}~ʓ1>Esy+>3x-?E{I7ZO(L b8|S:zLaю£%7Z* CM,fTQpvH# VI2ݫ<_깔>iBV-RTxF9Lb*83\aL._!3Vu ~_ՔW]$Ie Bo'oOݏ>=ΡEL^2n((Xήر pBXjR謭 "Cی . S)`Qf8$!*h8+^Gatw("~]iaSF^ !m|*([\!h킛MJScء Q@H!|ǂXJ:v)R,иddž~q~bsU<$*SI”2#Z|96@ :4vxbS9"` !hEEK~^Vܩ;%g{g|^QhyuYR|*͛PP ;2j?]&,54PyݰA1 e0}?pF3_7 Z>E驓GO;D7sv[o51Chgϔö~{ԣyVZMC{B( B[s BΉ GlU^JEY]B@ I\L:c*4SuR]aQ* hϺn0}2/!k4LhE0Adэ:RK1iâ*:⦘q@骬,+Us8mVE0NX՚OOm#Ys>KTSI2|8SE \=U}%!"qoo3>D3\t_{.c3'ۑc),=5Iۛ?lixFEe M'dYFU9~CnpL9d3d ,vZ9ܙNB)qf*J W5@P#:mLM#+QtD窡p;Wݰri hkZ!~ς}êmǴoǛS*U)B*{{~+?ա!1K]'v{P;}oەo٤֧$%O G"` ikT[OBU3r^FkJ?)I>\9X"+ ]cK2ZTe%c? ?QgOB^&}y+dh=oQdmnd-:74!܉W#(Uc" t--0e2emt[N\%thqa1c<cj9swGv)mmۺ;C;Bm0YҬiۿ# ̀'0cW3x3~HRUضTX aZe=H;nVOn?m|ZA9aY9l !)훉4kjLB #`@tAWoQ¶ƒfOd~\70BD9UG>뫼ÅTI􎍤庉*gd+CW?6Mxw1Oqig1 1WPJ[&D^W:&i5P&l^dlG"b\ P݋r+5l fEOh.QBK4@ B  q+d*4X7QؕܜJ_ +=7kaNxm߀ni}=}&+xiׅH_ e/;H@鳱Pn"ň `҅"0ob^^H@8Ƚ|܂Qh*\E Te)baߌԬJ!ʚڒ +I̺].JxNU" B|&-L 6bWP"VQ>\PfSC">r2z#EgBbwbxKa_@ p""zjcO$RV#"Tbԡ0a-KZ| -s%VGEތ c,3e+Zc R~^hqѬi3K{~4&t\F kbxKl=']![ywqBP#vW'1~^^~7T}F+VVcL0-Hr$*IVM/`8d -KAFyhգdͳ<[:J[`'5PYfS?^ tbB!$,T~w{8 AYk'NNWQg$X A%O+8ü*ǜNe=9DGO[tX<~7}5| :%MX̆ 3КL4+aLX4k7cew졔Xv (iGZ;b˨w:-jΫ ėVѤ_H\`s>îy;S:Wp)S . {a?`_W0k?!>5ʨ =ny:[Iuzj(NnVQ~7h*g%eXe0z1i (vN2,)B&#T +^"~i Rʯ 8TpNMV=OOl89⸷:4, WnU@05Qaw$xF\6F+ ϩih+w&O &lC)AD.%D?1@y3]p+(LBTѩ/G.f \r DuG>+0T 0] w= |@/X-iT0AeL7@@֯!Hmg|U\bTJ$Ka9A*rQMƖiٙ<Ӏ0Di8E7T(^/`ce\&x*x-jп^%쓺j⨃Ƙ|7a D,\:WlTX)F<ƆrGocE Jo!CQ D$rIaDXbi wսW$़USf&nf1ؾ}jK_[O-ÁlDT 3JqWg_30BSL;bxa^6y\=V%ySe{ ]ntBC,J iMS~cvFX.aǁ CcC JW 69dE胀-&J$9N*"U cPx<[Sw fp.U 42B~ m)BXZA॑jA{"|!)bY^r9>_7ZYL츒KǦ7op[C0|(/0PR*!$^̗4\MrTg[inlqN:׆L)cQ5np):@UvbM73yI:͔ Z[?2G+7=G`J㊒R4TrḇJF,4Pj j$Fb=>]>V:X0ٓ7FŤϯEWi/Ê:HDp>&F`h2'5CB`Kk@I* ]eK1LLZ߲/0CFDU!Vm+@ E$~1GQU7s]|}1bx -O}L.ҁ}( ø;FSHR*.R0ko篿Y8dIc_#LHH3Z?(Gz ba6!ڌñ*Bx`=-1鞵݊~dFQ!6xwLceU|:pD2m+=IEC*08uJ&V틾A ST?g**6ƓʴC{=H:VFmY׬̨2n-J@S= +J:l.Ѿ5\ mǬ[Z QuY~.5 <*bS 9gS nZ){'ƿtGgV F6$ƻ9"٩hp4fzX;]1d~0B-婇Sr \C\]jX88"5Tzau]W]T_C}Dn]ȗ ɲ][[!Xø88э;cn7m?y\?2b\߂pgim6f8YH[XBÖ1Xl_VY7DuH 9ȧxS2!}ìA4E04DQbnR?O&Z rZא屆 k \6.B. R/p'&8" ,(&5p5eD@x0_&(\P)$?q{!E4meh^KO/UHrԳJxZ;FY %rTXnমe&w_Z#| #ގM5'PC69 -t z5z#Hv%w{";</ H(jQ__!4=л?9VDLwbeoĭjv yMѯJ lcb@JwS176I2.@OJzW6OL" 8vExʑ>\m.O9 (k #s3ŗ'2.ź,So3C󞡪,gto޿tW }"ٛ,j:"~݁HW[UDgv%\T&hku憎%0,CڮBK-6%-EwD.!7SJY\l^_BiImMj6ꇯCQȑ ӆ#.x6 qR?D7SCes:󌷢e.|(U^u\c<L =OV͕"'݇\W@GLEɝLis˥(Y}'WE/$ucx99,ndjƼ/2x7ueW埝6%=g+fUSZUW++JB16K˹J.w J*z0sP)ʒ8Q?1vjyKL:P EOtp,ӡ&D>tt]Hi$DvlǕ7oۮ7Z $ڼk,3$ֺM^zkV/%rc^YZ!i8xs{&H/#_51GlYwE̶ZFd7V*i\"g/L (SنjVnK96Yۗ^2%Gx  }<܏%V lt3tתŇ756;׾pMN1$ RuMU Z՜,Oh&Q,R[ZX,ڄNcC)b| - '0C=8 \;?:Wi(y_, j+{M[A"P<Ҙ!i;*HljM1pm˰XS\1#d(כ)gֲ-vHe0TfL|^ӑJ^26=)̙&6zrߎ>&- =+Y4e̫ 9U7So,ӤtlYe<&[Ѽ/q6 p89?L4Ba K~kV|zؼ*xa^IӞnueuE54.v02|FLA;c/=jtRK ZMqW?,8F~;jp 2* ڪ0(n^щLײP$6 /(VP)6#=ngUs(d bmyݫcWQb@oOxjKB= u9"_d[-%/Ӏ23͐(M?4U1hz=).Ic%ƘTilS rkͿXI'9C% )c Q$yAh9~矊]3휸K .v: Hӫ<MB+Bo`尋5o>g$peu`Ebgr(u,9OvKx*ܟ;9\Iri qܮhja.Mk(6ͥ s<,Ul"wRĜV-JУlE0v;ʡ߲pq Bsa:Iʴ+TZchS+*˦V=DxIQܲd 7*m)I@`ØI#;`jj[ n5.%Fbz# Y}YQ39[􍝿XxWTitk؉5z䠺Fh&lڑ;#w/dnGo^w7#iL^đn_=#yA#] @U6 z](p.epŖiyxx3,XCs67`,2\3 Ii"hC0s`:PigM^،;¸|I->~IEY-6VO0<7_mGD,%ƕ"z~sk%wkS o|/Tv6n y<Tx $F &z*VPFP 0TGYPQCF8i`ӑ9}6`eJ5< apGQ<$* 4Cay?䘠ZO Z1^\&<`d&ck/4b?QݵVOgSzcI>{ gNx?a~mztԹvQ>+TۈJ6g(,0:Q%U(}"t#Sw]=*a ./mko4Q*_ќY*;->b.(tɛ4n^Vڑ}"k֢>e{,a>UǓrUxJPU*ʊѩ ^Wׅ퉵} 2usZD6ת<.\gmw gas\AStD˫" *BuRRSyxuꊷA1XHK1ډUM ۗ=Vm]G.KO^`eoIgE.#Ƞ'rSL *$]{GxKf#|XQMti (w:TÞzPpJømZ0RS! Wo CSh>{Fkrc ,]ظ4ͧlo)S??)SO?)1;h"b!"b!"bqlZsVh%p[%lJ1*bTĩS%LJ1*cᔫQ}S[x?nmQ J1(bPġC1FoQFlllmm1111111-ٍٍٍٍٍٍٍٍ؍؍؍؍؍؍؍ؽ11111111;C֖mDĞv/? ?-c3$$0aNe'-,M9brc',NX9b9{ D1URgV] Fkh'g.~O+J s7{ز*[> ,p\K14V?D\r͓쾁)jrG](^KaXNǣo6cV-S.P0xUƵ'0BZ=;Eh:"~d7aTgVLBf "mEYK$t!Wkch>Y0k ڣ,+$ SKbDHimUr89;O4r끮W=Z iYFj&JY'V@s"㔺V:ן>Dq3& GnChCE6\oA^C$ӆC5r1ӓ16oML&P&䟫mjd>-3UGTѼ4GJ;mT?Q)!-8t_\G2?JEz}h)PF+ry1|-⧎'8sX/+ ?$êgXRl\?Q$ BO#2QH6뀩V=Q\ rzu^՘U$EH{AV<D~^$)dşS Cy'} Gk,?QnDBP:j$m r$5H!%B+d}NsW[s{7{z~' yЅBUSj̴ Г,IƖ^ )LK1zO_}W%LX(UU+،ug ϗàn`9H(颓9J c` (AkG;\kW0!KQ7QG0˓KUtqdSRKR.,5hwhC3B>O_濿j^Sx*Ue``? <iE&RUZ{}NT&*viQ:d)|ANg ;K:]>٨8у=JKP=`pe/ÊJe6c޺|sagYWn5%id"3HHyD7" /F+>va,_.JEĶɮ E[ǤZU)Ҫ$_J2z$߮Q\(6_*kOiq?'߉#mE"/L 7>#H:Ia㯥0HcvYg0!5q| Av+>Q`WbJȲ66ET=:.F:&~^-;۔pK</9D?z3|Ś lBl›pP+d ܺ"BP~ocVNR4J#xajL>dlyτow9 C?/|va. 8yG2ֲBx? TQ~[1[7-ȨE6 "=M\?mm-pމOgCWփ#+χ^f&-KGI`V)F,i`Fԡm+; EujHg}eNϿ5>{lk iŸ?ڿ?a7f(r^BUő-E+- 0됦:M FXQֳca=7-4S>6^/„ Nm9(j5T|벱) \TU9[XN=io_b *iCb}6a%_azVU7<]ZuONwF/󌅭tn,e2R-ZcTy}JRU%Qф+>N|cw]ces*EH"6İ,%DncJ"P\g^]x<5b^z*$?£gܽhxMz^H׶B8# CHqJT;QG,zFRȠI*(ijK+r_Y웤4oۉ7~JN]pP?BEc0U'LE7$,SDrDK sW٧ƱSTu`Q tgh`b^bR_y @XJA76]RРgO3*D[d)NM3$Hs#{%-_E_lcO ۥ'Aǭs 7Þ 'bRE\@?:RݗCMg؊DIɹ-l@)@[瘝x7P] ?* ±v%LlVn0i~wv2*%pw2\[9^ -"4`?p"{ zx#[] B;q>މy=M'LcQ #1VVMRЅ0Uq^-%J)j-xB&E MB29h ṍv)F{υP!NA(|~'lP;'lm@Ø*ÝF y,2͝oܥ.3u‡mm}|=ڱ8KG|n k!!Dqw]qASnW=fUk tu:?t |o^pcV7+CZyX쁋_|> 5bb#)H콷2Ա@J|"IaM1|aiKuP^Igό(cwը`)9fςzaߧg{{Y쾌 )͈r6i[j> Aa]^V%r_r̶ ԡ. R> i9r`:+wM"ǒ~1i#:[>a QAZSs%!<3󋇺 _4q~$+ wpf vEb bz.ok.^7TQ?odtǯg(ڃ#G 1%*触-pU$4Pޘho=] bk5(MG8TgjρG˥S!AF]#${e)^N"]`c.\Q/B lńȳ-Kukkpee-usop )#9v~3jpCHPlF "J劰LAO{F AMM&>v(&`.D$OV b #D#`L"cE &hGi`D"lDAw𿟳S' [|Z ,;I W ah4icSh9Ϲ@ǚNujKTVuß2RA D}װBZ/ZPiτ<<\JOj涤X7%7UBĿa7EɰѸJWSK絋@Vo?haBwW ʾK 2Ǿ`Oy?OC6dsCBVBqSw)=ȋ`)՝VrDE}r)By̹%i" ih)ăzES̺$)3%zKy/-c2eB>Jd .k)(  šߑ_oW䮾!9_N[o\KqLyh1ߡPhVnF[.Q/̞{rT06Yi͝WVjTF.Z +'z'EZ_|4=n+6zx5}|: xq `@+r )WxSRZs4awc˜X|XP,rwaV?Z͚vz.+>y"MSWljˉgt7=TcQC//A.E@ E *KWOBvd1<(XM:}4zvT9/B MIbcBiˎ4W*awa9FȢw䧇cbr Y;,8*rhpӷP !!Tu).qY׭]'mRURCG9c+$55doQIG/("ҋ!}?7H3E0-׫RiE 5NUfU\P%|5xT]KS;EtCR9r[}Ed)W!T|sS']$ Q08s{IƇ&Sn_fWFMN|vl}=,JOjPj[[56U`ȕup+&D8D (\% UQ|AtmoT{T"E=JV*9`/ liXmd:I2"Ol7{qU>hà7Fͫf&2qa33Qd^e* KL++!JJiY`uꜲ!scYg%`}HKcRRXtaV"EKuTI:]6 ]P3l,FfqVU}}{̇}e+Bmzا*%^kub=ff2l[ƷVAގob~ d.<:Wt;z5LhɁr#C% 5{dqIDjUt?xP;a"[Aq |)Cg/9WR{<ҿ P(0]qx3 A~9vz~*>JᅡPVqY4үc|sوft(#L[&۰߰=2=1lHߋ›&h@u1H\5-쎄LA6_`(CJn_xDiEM _SC(\C2W(lS3P!)ș;͋t "׸ "(s8L6UR,Ji\Vп8yxmK׷s|*OWR ΃Fa쾷;nDzI13(E?\?E$t(uW9hsV4G ǧ0%?r2(ec(WgElX[ح%feQy*v:4܃8>{Qpm@X5Uҷ,EPDV>wz 7z4x|{ƌ9j,tH7ҹ]G"h? TEDPd 4Nts&^HG"9NuhӼ*ͶXɏGsEհ繚Oo~+ޮCk.;yQVN 9}&g LriΎN]O`{c?O<3CzLMؿSBH5_ox` ;& tNǤz/,dt:2a@B{F"8dz7#*ڴB&Wth*?Lūh,JJim xSI@0 ()6 X4%x7?3 ۩c[ VMI{QbA]AM(`SҬ cDvUv{a"!!/ќ)lj$xxGs-3 wҧ",Cw^}z#Bg7̍0@v/3fo7gIZ8hw@01dƙK,h2[nSWEVK(OT{[#̟Ǭn9USb8f "$jX?;Q8HOjke~)zF\ZH "p`iS)yWnXq̴W7.By RI373nS\8,4%%" r^ө}U(nu1p{?{y? |4Acv7]y-%^+H WF@3.NZ%2I'T=a_EL2warkYRb%K4vš~TǏ(%uH}W!LZ\n:jyJ\U*AMdJ`H%AN`.crێOKUO)@]I1FĭpSJj Tg6P ɪ7Ub{Ypꌤ Eg͢/z 8 uc@ʡh +2#eA+SbJJBkdߕ`VP8?25_qFI$ d@]DG"L jHD  'Es (sD/ȂsT KY.OLM e[S1jޫ iׯ{{3'N݆}SD|md'u (7jjr* ؾ4¡uT}B<$$ rR,nѳ|ȿDXarNh+IMoqa~gSX@FNt,&X op.Ў.cONNcp~թ#[P֌aCG0-їU]vD8Ywa!7ae#S 9Gq:,¶=m#^Dَ1{䝎L2Mu*A O $`Ġ oԔͿ"/=~=j0FLܔI`G92uM^OK=-8a?_oܼӿ䞂<[c],R6ⶻiy\]}pݎ Yx쓂vK}aMrǜam+mw'V} | `ds70p׼6>;85|/Ӟ~`Gcu(71c‘tvLr5C~1{^ t/8v_J0IY;R"z)w\ȋt7 -r.ɭػJ+ʷRfLs7Օ l:Cng=\9!fG/xgAZ7a`nO{nTy`܍}뙜xg|g#8ZITOfeprQp<,lp]dkczAd~i?R2( j='E9*`S->/{5e1}f#N7i0A=&Sw%7~":ŌRK9{;Í2(1PZ*dSӴG chz6O'I~k0n7/m9=]˷.rX1<]Xߠڬi9r#y0:8Ώcxۼ޸1zߛNf69ߒ;C ֎Mf;wc>S`5" GGۇ31m.ˏԶ2;b U)t@ŹSϷ3kDNuQ.?2>פĺ S\gIqXLL0m2L 3 Qk"j-_\D !AP`/,1~s'.H0#$Y d+[ N0.^u ˜?W0pre7k9ʿ#|6"lw}<\kz9&[2;וgnL5x=>`q:7t1~qw猏׺ T\u,n^x(;Q1!յ.W:~n!myt}lb'[; Y:ۑ3Yw.GjO;u%u+P$nt1)LVYagH'3dme1V)b'Ua`Da/T\lA4lwW(4m8 9Ƀ#16>#-r=IyeCn3 D+bD6] }I017G_RokbmRH3 "A tb1..Ct5F3{_n %0d[O{:38L]ζOdy=ϕ:2/Je( Ҙ~arĚ>;qoXRH A p><:YͣF{Ur8푭egZ;'Z0{'t_'ܕt9[8/~>8A!Hl6jϧQK1+h5LW6 P.yŐ6xU;2I'EY8[u:;\g;vc#; k%cL<㎍ÑGg0˰t:GO#qL` mLmG`nt͡Vs=fg86-8&}}eq,Y]XoQˣpA9^71=rw]b7dzpþ>1q?`I6c;Ta -(e*-ˉ¸kFVs[2] 0 y,bmR"8/3Xe<|3[*&`*UF*aN!KI%JV]\j#3-+s`szk1?ޠ.;pc[aO'er5͟<6v8ܢ(Q8V\%e`\pBOOIX -/mkԸDƥ?xx+r.t52;}>LonsYfwcMphx=',?)k;;r9V8 6cɷC&}W6⛻jY]aˁƛnq6c<bxXL9.f7#=m5yVK'z8;fǧ`e-$MiKDA<MVdMGb6f$؂z4<c\x `ЕddEAx8 c}Mv 3ZO;0 .p|:ӘSV#0o+rtay0;k26pA.t]99E $_\WW '~owȱsʿ-+$/FnTdZ|.#uǰy']3?"3\F >?˸e;#ō}<77 ` `nNƖI'175BW<"Lbq\># Lղ=G1>snd= I atJ=[2_4`^_=LW5|~W"S M'5 4;< R"5jUSf;ܸWܹ~eƴ_tzOVй2dv FQi;[(o mFo;Sv8̓0w`f;&c1oocqs\eގI⟷͙ߣKic7896rO0 u#Xtw|'=a"V)jGpB~d_)=xէ/*LK}8ͦu XbSy=9 `<+x?]uq,ltf |v77<^pgt4q{|Kfr=9'xѶcdu=K> `y5.öc꼯3zi:a\~r턘t, -xb CvC‰Pṹ>:ue6vH~Wq1۾J^{8;srw}it#c}9;;gvIu:m.27KpCF\N^׊Ad5X]|Lo>-|?K-Ǜ<&͢6. ,&qvP0Ahjp${2@2 dw 7NX{-oؕRZQgF+8-zsF\n'4xC6) &Ƭjr/9{ܫ,]1Ygk5 l'enϚȂ_E];=bSuٛw4x"{9FzNQ,řUZ^/K^o22~WG=uK"& |%MDK6xh nw>3RwZzV/_;F95s;|A:JTv ~m1c8Vq\QvЀI_i>Oiqo 'A 23mdA۷a}3;9ʸN9:z89i{i1 Y{'4Թ4bf6]pPϖ:ϛy˳DP(":QÀzD`THE]eaegnlPyAxZhp[J j޲ D -ںo׷=*|hם;w&e?qOAg{:w7MKdWX'dKI\pb L?U|lR+_ͨ_ǥz^wR9Ӧopm;FԔϞlJA._z~g3I[2'" .>>>﨧Is/o~3:f)*n &͙½.:a8{"L,l $ly'{}N+3^sbwTa8*($6G&'O".v>҂,W1+wvwhvwlv0{ye_M֣O{z?/wZߔ_K۟o#'J徹{D9=G{^Oam뙝{tʟ6xk_bxw>&\doSQz~a_|W? 0v~~*;>'# gdTI?'e o7Q>Yګݻ<sv6fpAJ#: T"TKhu-%蚲OKK{ZA42>HbK0fh7)p'dulwG4/~{L?5s֝Cm˧=Aكw;eOSp xu6&QNb21#buWeF\J/s A[O ($ܓtQ9#¼xW[=AZq]Y@|Ɓ<_~7zBpszrs` $PQ|b}yM~.`Uprz,jhhCv-; Bw.z%ǯ'*WN|ZCk1r0 g 9R6ߗ}žC׶r6Ē\9eWc&R۳PB D+ E_fx6^Do4۝˻gߦg?Kqm 񁩆MNѕ(BL\*!BDiUV(BVy`8??k?iD_y:{oJhME{۟]eG G}O^w(Wˌ'`qb,.nϦЖMiO2 =~g'}u,YH+{dgwD;Zv}sܺD?]oo?·KhMQйf|Xѽ)ԑ 03DDON{I=)yݙmp7O}'v# ΟYb_j g=m{RKci r^FiuDG:ǻ4}wj7[fo =o;\4v |ӹ&F ڌ< kskmQWس6Bꑟw&V6)*'DD}ϡyUaA\<~wA?/cf!<[ꃤr vb"xdHVTAjl}I3|^h9qibQu$5oN]'r·v>~ISC1F{:Udg3LגG=uy\kѴ]YAfA rI 59|_1e;u{ 4y_ϓY뭍wL]Nko<(JQÒ yPwܧ9U+ogƝ][vy@HFS,`T-|;#S<,y!wyNwAw>ڗ 1aFX |rfy %r  F# j PbuR.ںĻ@ݚ^5(޿R bK>屨"j/";4Wi!dG1e d=NbWG攟w8ޡ!ݥ]}], ? Tg)vӇLJ j*4䁌Oe *U|=4ZA`(c Ʒ xz[~4FrgᄓHIP47+.wh6(,H,Ţ!H7DX&8+XӍHaeϓN'+39V/0NI${ݲtN5rYFtn&sH:O*F#c7'79Y=Wcs #tJ{Iqi'rH&]wDn?3Qg1hxr]lE2v;9[dzyU 5]0i7 9; xc|U@U0?aOpAzca7)Y,b]JŬj$.L /Tc?=>SWq=5U5E;d+(Tjه_s4m䟫_(QJA{F**Lnǣiy>#؂MIq؏o5gr3ݡit3`"bySyQZw+w-?z>翨?:~ϟ35GwVBM՛,@Ҿ,ܲIt.!6-T{EI7dG%wsr9,RO|G2ME<[mv/v,[}xu ɝ6 chp{p࣒}/p؎AĄ{ڸ_=68]=ay:zMsd?߭񼚲?da֝=m |yܷ' 垹\Gy-ّ1=$uoC}rZz~aw~fv 7~QwwrGl{_HNzA}HxA7IdZnE4z#6q/&&^Y[\'!$S?2 ~0VXΟLTw{ۍ[IjğB| >^eDM}cبob賎Ԓ2m<=92 /_;A[I'Hn6}ߏa{žaAlѨt-,Ay A *_svza?}&d&<|UG?d镴txKqs};NpP, 6y妣_ޑw^wn?XǢfv[O~6$۲D\& %M5q.陞Ojntq/jˆO\/YUR'sO;/5}w{~͇DǩJY*?먃krdų\Df!Cua// Hx/qjb2DfKK5f31Che|AA,,08%ueȺ/ְ>1-\\h s}y)a=1k 6jX G^>K|8GhhEx*+尴MX4QURxҋdAbgs~;=͝0zgnɱQ:{ل_gҒEDV,r#lrk3a֠{֙{l4;>=+e"r>Ys:ǬWwn7fx$> vf;ʘ+|fl]oXU CV0 Us4Rp ,4s{,IO ,&u0AY^SURUͺ}T@H‡gFDJ6Gi%lqQ*bLܺh +H#SRwE,6j9,,ՕB.tW߿\xM.E%==0 ~s=|g}f*&zϿXv<>ytH:+p߽78A|{ٽtk3T;<=UOB>2E̘фAZsqؼxViǭ9wwk*LO{O|d볷-:QI,Kݻ\Qۂ4h;Me:y_?t.aقj;*eM*Go\^.p$ۨ!w"\H5Oa[w)f1xI<7t78j}Lq&5}53ʓ9Yw[;,>+c57 i<˭7{)ɏ_^ RI?]2ƽ޶; {ʾ rvx {0tʛ>yT_{rxNIw{#Ho󄗝> F]~ۂ5w2~H[m˟c&NS _}e%|1zd_G)84{9e}<8dvh$ݪ N {\~yg7;ܧ/=YN5P f =C>xowgtlFV(jKl A^KZh2p.:դcd0p(~-^Ɍaom|E@f "Llnaǁ0Fv i9>~^ Ô'|89wt^BRf"<2C(EVN1exn'$/M Xv "Gw?.mD Q.!&pC!x"}h G:(5!I|Ia۱/8@  Ac6s\8>S_QHrޯ8ypX[,1^S}Mq5FOi$xCy|#9fr;A'nbPHSTNTUCEyϽKGɟ_/ ]7v[ax] ?oo`w ɯk먺ޔ_gb;S⠋WMҨˮN{t&[] wLD5][In$2#Nk{AU&uv4ogwWb^y\gM &%zTBڞŖj_DLvF̍D '*sqlJd Ju|dB(3.$R9"oAjCAmnJ:2{ghS:(T5:P$B, y0VRT%Yy'߿d7bi7/LZtۋl{z~ecU2~^K/nOUvz~4r@d"M~cr/ib7&?g??_Yg{X'N᭡}yN8o*)~;y"cvv#n] ^Q-v4&,O*.̜w+>Hʭhp}uGK52/p)Pۏ uPoXy0dϻ>~y>"c?>GO\sHMo`G]~?SX}lGDqAș2;Ub8[rˇ 39)N#܉F]Qݏi'V /];u+o!*od \ؒ&n3o7'>>IwfomW7DLz*:m}EyH'=k9⋑=`rLC\<ᾎ׽6n{%Ȯ';YLva;Lݮlߣy?8A_~e)ϲ3F'ܲ2;Kx+"9F+]s&j5:b/mU_v(~ڈw+;͟"?}1b~4:8ss^~ ׄ[TTȈ>?|Di) ӹ0?{kji7;ZA'{o y>&NP*}s_9'6dNG=>_8xy>=yz"Udz]ff;-0eR#>F`&'dltT (Ud =V%},an-SzMys?8/a'SXcFK`G"gLj9 _mٿL\>QVSGp 6KJIbNض/\7FT/D="!SbP  Jq_s{mY]NNZzĽ5JyÁLB#4F@` Oa$nS3fw_K)u gy$)jJ@W:ҧ$Pz `5RY ^jgr@85Yp̕jȬ܌HjxWTn3ȽK͒Z>^YװFǃ7nOeouB)a`beeWK 4!ǻ^DO˛=H+wl$L>.RvhvS{{霨0&Ig {ڟ})9_dU2,wHU&.oxGO&ۈ ӑeE|`{Q&<,f\z\'jtyJzv=])h.ի5]FWrP٦ 5n:N@uK{RQY8pq|}sl.2yᅲϹߺ}`a;sc{8DG>ɊqYYT!cn-o&Ix,e=0ݳ K9۳2{< Kwmry_C'#T3:tǝ.z ϼv[NL茈ȐE}vrd;}}Te%Q73;qxl|ˍ}y *'z@c?%݂l!=G?K߇~_'N~A[vIZb)('lVi?^m=_WJk͑G^O̼܇,_|%0Oݷ+%׾!ܟӟ(F(}̮7}N|gjjCֽ}Q??+*? G@{_yrWOȨ~0N5^7L&y~1 Sם" NŇ+WweG͗/5q/cWg Ib_:rF 0q' y-4v{7FOf&A0c|]aq7yy} G`c}lwzNg|Hy{=H3ÒM?;E";-?ڳqy!Åa`.4@C!JC쥅WQAV$O158\]ߺZrnhS>|߈-=Trs| LEGW3H.^™Sk^rsf\x> o☏35$p3|k\пg|aTV- aYih* =.VV ``GY1/a|KBN`ܑe(!FԢ9{ ׃ H.'\SȄ֞d?K9>.fc$Zw0C@. G |f+ "h"iRa^UƑg81؟ik*a{}M,5tSQSJǥ i AjKqތVd4>`Cri Q"|iBuF0xlUz7DX!MT>1Q'>p88=-E|XVO'RLd)J)R7W~|my=ak^aw΃ rgA[ݙ? S#w џan|(.) YpF.U %`_w+Q^£Fɸ_ 9Ams#`}yڏNn7[]`}Wge{YץaS܍e8:hMi2+sETlĝ{DJ+ 7>MqΟ;&5ܸ};Ěgc틡!V,܃istꞹ!=Si=C@ٕԓ\WJ-Iߦ4BvKr ,ŝB:nSZ +gPB)OT9bY ,NN5i:j6 .*E^ɨåӕOҳ7ctת b{Ju›lpϾ1ᕿA%}s^7%a7C"Mӷ.脌 މ.Yw$w%IvIT_Ͻ` Le'<7 ߲:W';{?O7~쩊wꊳj3޳࢐wSTbٲ% j˝V3eeA椼#bfZ&7v&u?;L:7`"+g`">{>&{{}v¥ߘKbdD'}v~^pG1 i+9}=ׇUOc3㐻ͩxJk~__~Ggi, \w2D-}{6n~~T<6 1]~}<F7Oq#ys雸 w9x\Wd<m+r /{?쨭$E<>_,x}0B=sG[a?Ob>Hi=/ٙaWqv~Wkh?GW8w/kSE\[dAaLr"tkSͮ2pj{د6ޑ!A>'\wSp4t'Q˳;0=|On?{yfm gwK:}v'uPSo3^ܻSIW:%Nz h\}G>=\7dgs~ch\+#kh'W>LI|ڿKU[0B[>r$'d#$E+kJ`d!#OB13yxcLh4P Of<iYHȋ~ə<$P2DȲ)N^QY.}FIЊ= 7%eU6/-d,j,x%K<֮rL%_bif8WS+#ŵLlȤo=5_gCT;N~TSa5%i"q~.Ry{UxR5T]/j̻qOT]5%07 6/R{>N5.Mx:#7P}ِ-!蜉2P~BaDߤt{`??sQj r_ڗm/O n3k3epkGpz8QcF{$5fsP Tukj(V‹(R,U R> zVkLC Pxo-Ⱦ6AGp.mz$扒pLYG Cb{s#.?ΞWO3žUkf9qt~kB5\2\blj  @>M?9vzf]pȂ^L8{gw\O{a;^ f~NϏ_pOs{}6퀳Exb24Gt'JPBXdTsFΘ4JRaGPfDٝsw'Ցdi$A=w-#?:'%":Odv9F_*($WӳiYWA +<ˎm!=7|h!"%F~sGrr*$/տsÙ-Q5 1l M~g2:wk{!f~gLЙUOѺ6"KTy~?Tg?rjRo:~^@P$}>54'.qI.!,&3}~eM|U,%ܥԹw? y{ blI̞;rd:z?>˾kS3w`2HnjH}g{ȩ`:e62lݾs{BWHOcvmrL=zQP501(=M9u}a5^4]ێ6imY A'gkLqV$u1WP$SO穽VGf~wԃ|Gows—\{x7Nўr$9Be..OM^.rܺ'ݸ]o,QSk2xGC۬/~0lk7, 2*f=qb;g\rXLE+EZ#|2Æ͜v۽єJ-2Oܨڑ7,%^\W澪EUA."0CU=/U1Y.=nM݂@ 獗7Ps㐘/LAF4֊暠i(n*iݮJW)P֜!VUG5YN?mn!;G7I7N7G)]=ԘM D~&}v1*;vm_ }؊Γ9wr˾'ś }5L;f)hEQ|qؙϬ֏vYBswґ|ٙ6O-H%(&r#s5ٹ|襍Uٟ[aUk2Y˿U^G?{?dG}Y@~EUU~N{uc/"kwU+|7n_{z9wiw=TMznG|߿1>qpuD6rߨ}ýgzkL20de^{6";;ӶSCw>1ǎBCz=wS5vaD9}9ܟY z2lˋ2k2?^gks?kpU_2uKޒvɻ跷Q*LK]&v.n =EG']7ߙg1J靄񼓳}*-Ws|DFvf*ح*}}Ew$G}^ײ"'eW[%U㭷Sޙ\c Z%Ѧ{܊Wnx횙SޮNfMܞ("=i'~5ddO]vݳ>U>:o?휷d^&":wΜ!sfTIrvz$Y4[\@L-t] R컻qJ| UUGyx6UDt^E .$ɡ z|Z l~?´T} 1YPk`eX_SeRݵOȯX-h"Q^"-B7kg'֗j$o ȴU.Zʠow8[L jnnU$R{o2qԞ~Ԧ?K^uX6l+NDs^+˾8;U=l)٬O1]aAa×QnCe\&j2Zarzd9,UUbfWMdY.jz3j5)ZRε51gU\Ҧ¶߆_߬plgNQƓa><ÛNbo}Dw~3w{wK߷Nދv}>پGLyܝDz3wU/Z[ug'~e1s]墓 w>ӻLϲ䳻}U&ߟy&YTLW33;O=ock{F\C]f ɔsj]VG|ּݼ5!xe&tsvDDQ{f{0g͝Tَqq#r]&<mQďf~uѩiQ;5s&\v#g~" s;񝸣}lY-Yw$9?5_1_} l}#Isv2mԙGMΐ{4QUؒܫ"+MӘ?~~n"]k^9_^omN S>{ _~rfbQT lU E[(Yt#p<[xJݳ.z;R#~D?2±NF̸vm\*qo\G13zf|QDX{?\BGN:1Qyp 𕢼L//(*1+3GwZ~.W9efogbw_kw祚-!}w*~R˦`oYY w yM=sGp?&eG" љ~ |6Jz;O>L<>aCc4tG#I5Y;_tZm] S4s5yDԪ2ӉRҭLr+Ԭ^jꎬc8,H4BQM32P{-Bh੶^o` UriZ/3jU[$ Olc:fub =S>@%.ھ _: ޛb qhEry[p#ҫڿYIsIyԠGȬo:L<>HqOjL"-zF|pZP5=1G,$x(MI~1i iG$J fH6PcʁBэux%pzzN~=udub!9]XnmwH8I ? *}ǟqU!ͮb_!Ο8N:mfX}MedMYؖvR2 wu25 Ь$5Z-B/M\'czBZH|j6 *TΏB Qq& 'os!0AYX0M1>(}D^=VGVK=PjB ݐI=W_\6fD[U@ ’ZItHi?X i凶Y0EiJ dON<13P"ҟ7q0K[٠Dϻnc>[V9Hb0zԘzV5wz [xDu:;`5` xu?T, exV" vנB?Tj &f6Us qߘ4Z3ڂ_7A"EQDy1s#585c̐j%&eϪUDp1;g &<_l;B|--H[WbD[[%4,/:Mߪ)/!Ҡz&p&o6n θm W \CĔTz`ɻЯo1m(hR5,,8EnVk5zV?g= THL$#q0 лhEU$uF焴/J2rɎl FGwO/Ph>D{F<9pSڷ~ | .Eہ£l#(߷lLA3QHO\`U;P.1xmINyRvpmN^U?ѣɮ{Lϰ%6|0: m1o{e]U(]P]0wwK_]j!lQdcopn:y|4u]{c9jҏOm>:S_}Ug]?(D?J+etJe'iCC&&(qPJ_0@'Wk^"m~X, ΋+Pb1Ca:>>hskÖml#>eg5ĀXhu+?߉b౰:na}[xcHFp-$Ϙ?$S-LZ9}SkJ<^vLLQov2-[[^ci@(bv,0yxѷeoǿϷ?:x fX;;vR O^ˎ ǧ.nq&}H8JC,F I#mnϬoԞ[^we >з ˭dp@rКV%F{9*¦EzwÄc8r u;0i) u~*lkי}ͥe?<oԡh6e*fWY|8?~! <ᔄzo-ڿH<ɡLelSF7~\)EODʥڂhA  FL2jJ'*ʙ/ASXUU!VVsbG`n[ؐ@ d11vGq 5/Q3RV*vG"ANԙu-(^bʄ(}qS~OB۴%nEkB#su9%%VlD $|xbyܙd uM Lh$mlzd<|ZFëm=F}Fgg2Rhhhhhhhhhhhf۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nߌQOMKSz4OjE¡h<iA`/ݯc.oKkuk]Պ9)Trr DC"C6C:C{ѽ^^^u}w܋ߥ^,M]|oW%%%!!'uHI$$7I)) ) ( ) )) ;i;߶g{6uz;:_Wﱱ~_ggkokkmmv{{;[;{{{[{ok?[;{_okgoooommm[{{[{[[{r~d=0g ߙG*n~s3GZl젯>{[~[ڞ~Di !@n}uh:ы>qS"*fB^Mj<">Kb}G *{ jZALp-9lU&/̪ïDF$^PL6;N N s1OxV{ v$ kez29pʃ!ڔƠI*\3%!O,Uofstg0тt3#66DaT)@>CRlv =%+WljnIhSRjz@VV o碼_65]{U}hg7)IPh-]CZ>&™^[D!N []yC#qnT #r=FKtpߘ6mi;-[V_iyLܸΈK bV+( K!***~Tۅ ;5HR 濑?W/TkHWK2&:Y <=IAa,usv*tZ kWh-Ka |)* hOI]<(Jj+&W^B#8../v6WkUqsg)PDA{9@!6W9pms7wc ۃ5+X^n>~@[ .UYЅ(Ι!dpSDlD QBFn*H$=Hm!ܪ-6h Dt"8  G;,%% qQQ1|&{OnIq!DNʎSFN# IJJB1Jhx'j"IUz9>r19KYeb$΂ܘ= {ԡ_iW3@ ,\\eˏbŤapȽO+y9;P+EmΤi"4G'dUWګ-^@,˨vYWK*,{4.)O/÷d]7ejAȍ{2omR(ckkj o(y%wݻ9 9BH3?=>Ωp~¤!']Jo7>:*2)^gщWpm}#(|1كh]4w: %Ce`4blv1 6:&16B C55,;kU5~,lRgi^(OxP!6T49}c AkjD$p$!$PPCQ;8G"e÷ґLfq;u|R6W4av _qsd4B`"t"1l5 *TP BWjj'£ʅ. \lDZ϶Y 'kE|AR78GćpvG?7uO1USrҏPR"ʼnhZ*a.Z@`2\eF#xbB&rVMc){WG3=7`#P;DX"CpkjZ ˻yol᫈جV8~` ܿiӳ꿔y ͹AyYb광ĮaDM Dφ*eqa@ނEĤtsZWKs5_|b]<Z.*a=@soXPYXi@Oa B):#PUt-bY\]RL,#( W3- c૫0F)) 20\AGqM +lxɛ PǶ;clŽq>VmDѕđr>]w W@cR*L 6lAAISJTS*T*jiǤtD/;o)JjE|!&Nx hT3CPCE0SXl}Mbɻ0<7Z{x#f6O5VY17kC_+41B .z 7u鰺<ٖ wGº0C/'sR%,V$)3?؉ I)!v7]3u9[nLšXZ*aVTY2+~ayIZ燇0-kA.bXd_*u}59F & tėG?@=ĤdW*D\6*G!<94#4(ٳj5EEEQSSSS*YBUc+z+aJmAKHŜ YY@0 \fͶw{S%VB('J% net\~ ^4QKh\?&7>Xykȧ"\tvIA[P}5PMp<hQ45H\h*&Vc PT~Ր 8!7i?C%4of[}$ "`sF;YSGQqcF$k)Q! *)i) lNܡ?[mP#qL9/U-bWsAcƌ8rcpM4G,X6r( 8hi.K SZ4|%) _IJ0Wf3ٛѼ4ܬBA?LGfȱ , }QLmDRqTWkJ'^Uוը# )h7<ۯV/׺gJ-rÆYtp+56֘m%n(NT~pU$7;U U?x5zk,{C0klms(}D oM,+={'Ra&=h}I KduxE o˽R17$5Ku-|GwA 6K7D P3-[!RU&2az;5r>vk0_.ޘQ;2aʻw1y8悁?.xg."q<}mWKx^Qׂ ,˪K *BAP4R|k2T@ڠ***!*֨Y>rFȚ4A*BӃMy@Td܀U!RK jJO|kW*.uWF1E,0ƴ%O{{ĉz.u>'O%*k2of=y `[` 0 9X$u({+j!E8eփA*ثf6`ڨ* ma-XEF *,,Q`fae!K|Lcg\O•m.9a,xO/!ڨ򪽃vY/a _0lɣo'l wBPz/x_v?m}1r# r ~k|b$08]2h$uګ44/, Q+8OtHg3^opjÒ 1hC檡Nƒo?i*w[ˢiܦI6A5"|  .K,CcT˵vpm D!wCU 2nRT.hrjcxpg/K6Gm)[̞~?L`} y3J )RX6,XbA^d0leS [1aFqEn#:г_% (h yvgP/캴@^g\P:ǵ@8_WоD[Nݿ.5-4_C] H" O&uqUa 2KZѪ,;~b"ouo\ZSKÍ?xD2ٸҒ@$5q6kPhosIgQ\_:n<V.ZBCڝ3|PxT׸pZyu,Yš~\ƔMT.,09:[qO;Дw#b=_n K݅z~oj9?٤ψ/Ժ_6̣"1Nb5G ` ;sǷ8qg dw34Wp4Q4)BV1eI 5AwGgK*nh_ +1K1./QW6g(Hu6/#87 X`;(%>&HU\aTd;{d"x]UMoVoۋkq'sN?@* G:=a/mzrm.D~0cPS6pRø1Gӂ0hׂ͂+%,es+p 9zzWxNVԽy+̶U!~z+R<}nS.8 ~ݣ {$d1ҽ,ުt&WNpFו/+M2zc1Wư@ Ҍrq08ܬ%\&nO$K@fJ~<N>Q2bJ F겨H1㤳_h[)c7rF+w/KiR{D_h`Ly]za_ټmp1)YzUU],c6)}kj&g}x*TkՎEklH<6Lz`I.O2s3KxNx/PxcUS8ʜg[nd;?|tWgUWo4`c~PkF"υcwfd y&˒kGk5 Tθ{ ̍zs^$>E/w_lƩȞHC?/ LT?pYc{ t!\-n=/Uݼ c!ؖ.\k',=Շuu<퀾܍jzյ4$s#p?oyT_+qp_& gn_r$v0KO`E$T1<;(sjR腣{tNˁόzyrrRKB5;} * 5)]6IzQ%2)w=&^#zy2. 'QT꾌 Ht>fz}ϞFtms~ X8Ryuvw.dVggxnn0VyJ'HkڋYw(ǛυG:f?VTpX_BW%|}_C{jEww.E˒#rcY ,Rkm"]QG׃?2_0//0"5>r굙H2gp$6'„A(fOKvy3P\Ky.w/ Xc.ҤJ<س`"w] d2s DŽ\i⦪W0ATQw$0;X-q'OC@ٌl0ghf#s&bte3CSAj/縈0SP ~*bO{邿眻skNkd\sJk-ȋB~CLMЄʠT~f\|X/#iυAnfX ]>԰0Mwe=TEЧ1{zԜ`:dSxz*N8{xOkt]CrU|}G5+r'xbVʶ+ѪfxNMFA`˂YzQTVι:0'HqyJNa\9kwj|B6aI '}Cœu!Wh?ד{ggN;xwMa‚I745WX bק%soE1_,:v&È.~O-=ጏۦlS`kD9E86 9o5ɝc;Ӿwqli7E\Ь46~Ղ#{]"Z\K"KR5,$F(L]?Gb nƭ6u**{<[[ȵ0?XS'4Lo71%%.x_kQ䠕kWA%3NZ}*5#6gp. k̰YtA_Ȍ% a8T9ĎTH0NGKG <Q8贠M6DhԧϷ~hoԙ5vor,b3WD,!T5ǵ{~*;طny><y~RΧf^g'.o|^<#v VNwU袻b oCr \5GDKEF; Z.zT3egȰr ^[2(Fv/ԡE|#qho[Ɵߧ{)cPXgش~-Ih\蛷{Z=ĖS6X (;wl:70ȝ.Xu-ϮGuVb `*>{RsOH'_>bۙ5Ju,;(#yCؾ20u?s: xW9՗uH|oo`Ȏ|OU yir4#2{$֚Yˏ~i?/F>s }}}-#X\:сNLfϻ3>ԓ8ݭYp'jKtVSY󞄃"Xu35 1"/T}W> b5ED#/*UZ-uף0φ.#)yq0Rꄯ IeWkG zHFy8=sP5')BWbreDsgm4rw˽꿑/>7Վ_x7N·ǮPgw. 9%pQt5F`GwH;5eZöǟ"lm<wµk`_Wp9ƺdhGK󸈛\sύַ!lwH>5?]埾CSd/ܧ > mR:b#z>jSɂ1H'1edgba]S$CA$;q!*GE9_8nlnaw)G@ &Oabx >$zHܘG@ҕ֓(E 6б!~: HEpf1@hP'ɇ`m B!O rjJ8%v°)^0m Lpp7!OW_n99`  R6or22>lLgnnMQpz Kf$蛏ʭNXVqj@n ux$"^< ‡wz)  @C}"(Aߣ@9D%CR!Z|qo0t ڐ8S`P5HDL!B<0 =  7y2 R ҁt`yS @.xHQ Pޡ| !G.ӝg:xBA4辀 Qϭ 8r;ѧpeNKz#c胫:pÈQS!L%4Iir23WQ\s(i&X5~",Ӓ!4lS@1D69Iɺh9/e?f T }2ݼ*D؋asYII%5iX6¬^|;Qb4o4T*b &b9yI5 ȿn !fO ݄6"%\s 7%)5xy)h*x \"IO1PZ]haiH.hUԥ,w΅$"R)PPTVA#10k8' ;VM0$a*&ZUDZnY.}}ГQf!'(]LL>kyUe&SE9a918%i%"0yBDLbf.iK41c#ؗq?j 2mÛ|^/NO!`D(0 0 @H/N#BaGu4 DD0#4`wh!G׌iCk@>!yd0Ctmp`1zTUއԁWR}L|`7Jܡ&P% ,zycڲZց:P/-;ցۻǑ4OWMqxX *r<;bXB1R(nIjC/ˈyljк/ "̹,5_G`I1% $)5(HOk0 ʖ6Ǚ ď^i%@q@Zw ?^T@cO&A=tF!.ד'M~ u,.e ۨ"!#@y`z ɬyaCw+]4ʛC4m\TGOI aq^) `n.19˯PC>^yF^*}JϫYHPIi)(DG<ϕ}xb)e|36,Dd{Za(Lڧ.n1X8+kdtVGu.+2`uBjX ZD6?H# N}iZbk7^PMYq /ܲKeژ!qM=8|"˹&T'NPB@SހV+#3KO|1 d\ʢϔ} CmX)l X FOF*=vWT$gy%|D,fyQ.;.Ly'A+qzE} @7Op;ļ"DռGP#(3䆓6l<{8d,QT (x{Xc.(Q{!gI10p=lxYM-R-MԕOЙ^m5_iV;b1LO|5P`9 FxUS%SWr]ՠ|8{ga0L2t5;?@ƑrG\e4Q;$-+}jSWWO"M8!K6Lkmྩ^t n=3Q>/j}"$4s}XAu~[HO\YWNQx]l\Q-w̓ Gv q!ɓÁb@p# 9/f08٢/7˜1L|mz0'/`1LE@ _(61C *F8=ARD4!"?Z+ٕPK!3N/-X(=W0MJYX_=Ʈ{ ʡ9t OciK{}z?of#18ac%y}^ l;F\?{pUǒλW#٭(R crVwn5sV啖 o5DFV18"rC' 'z1 G"" o1+Q"BGG133 <$o8fL&X%ϣ˚Q5$Q,;D$hUc+,NlYg2ʨ6s`-0?3mQ1Pa;ڨjE"#E-<B#"^D "]CJK\D"U?d>i=DbQ 9D+L|LLx`"xmbX`y-5If!ȭz6|Ï7?.5c3PwnvmjA04=GKWeå4~~ǻ0 8{4=.Xgn8sOKyDg+Ff{_VۂPH5 5ꃴ1%-zy/1=|#X4~lqWWFSŃ\ Kts_?$IȔT⟶` 1(5 ;2CLOQe~r{((鄥9N;%+tY3wb<ϙ !C{P]7qP$,4Y_AdOH;\Rdž]P5~:1n>Nl0׈~_;GA/#c"9㦀zd#%!@Ch89s5nUj]/F_౎V@iO K4 VN1@,Se4>-P/0HYjll߰!zݿFf _qx$*[ªKyv=kJzŮR[2*cA<8ݭ5^B?mi?@+N6@6\P|>*Pn8nݿס+˓TRc}+w#f]p'tLQTndx/ ϰ)b18sw#o鼻3āNܧџ+O1u! z;0y )]w"P !&amyC{I ;.ș!@ aOS&"Mxq}2v蛁!w|z0hy!yACDŽ]2=CRךwgX@aphwa.[4i=Qf؋JV}{BEg]yUP5hcՇ۵iUoݘ%PW5=Q$[GJadŽvH yk@3%A͙R[ҔR8`>B$(c` Y&F`لFӤBCfTGU.bF1a7(b|3+f 4"r @Br`-1+"cʵc0uXX`0%C`n [wl-Kpmd`j T[jJ ZNf*:/܂| &Cv  rҘ݆$,ӫ̪-of^a< k|no>-f?pSO5Xh~5 `gTR(³ @RtQu%ʄ!:,Q/Ęfr q`9W@yT2E% J' zp ;˰ Xf_&icII8:dM D*LS.p>cC9*gd$rn,Z~}פt;xr='ڄ"L,|SLm`P&l!18!>ފW3B_+Ab<U4yuaCD)_@e9n9$133rC24"8 f:Yޞ-+&>FO}' K9xFAP@~=ԣ< MaHKD2Vu?|:nxM^֛_Я̈iH_U~:^0dOw-Ϥq=}[§MCJpQc廓w&A;!==,[43h*NG2ړ1sb|\3igbk;ɗ ^@uƞxL4xW2_ 3{ވf UcT%E@chdӖ(Kh cn{3zh19IK=tɣijM<8ՔʚGb;,}:Y_x);ա?` ,1G49!17.0<.9ThawTŸJk/2?U2fnx}Tu 6Grq}ЯBC1Yb/h0Oཛ <Ч\=$Pi88@Ӣ!=wa-&¸,Q6#.t?Ltb|A'E] ʼ;fo(8`FMBi}p<ǡ[(Q0,/jg,p=3EN>h H Rp\ٻ9ǽ_Aa1B ]=-O3zXa?r  vG Wi\k@\m輛vl6u<_=dou;=hͱ*y;3ؘs#N1^)tc a;WxAzXK G3 +Sh.-?q}KrpFZ.ۗX5 bL&P*&yʛ`Vjt^@f4%e{L}ҥTtYs%y32[yˊxc{A>'fLq$ŋe)(! 6v(Rn{\1in^ڍ-/}#y4o6RT}!>s Aꏡ p`ȳ>%;Ts3-fqZ eb/u:,3y ]HF aS 1ja~z?{ ;E!k ge`u jOLdvgAFl&|}>Mzfvz'-'G:[mkr`rM3֖߹^K#k3۳[ |w 혞DqLw;N ;QJu]Ks!'2A=蚱8'ߧԤ=hnpƔG*NTCYý& /A_AA>|h'=(dxc_|bx W0M}%랮̄bqOTԍ~08hYZs'C fEBH l4 ހx X"?4, *+Abd]&~=w~I.??7"4M 7F 9Wݲ8ܝ N>œ_Ւ.ǛLuLQίvxP;~Նĕr5ޠ1O<8o¬?d{fϒf"4S )>_?qoLMVeNP9CE v>3ܑF$_l{r ?Gߛ"ug/CM8SyQJ[l.<@~'G gb=I7K"\?oywʬA% (|iҕ㥟λb˨jc?od̎DŽ>Ŝ̮xPk:1w9x_`ѶA}$\˓l|4G8zO^$勒SG"r-Ö(dx+ AO> lNT`|h9Aoͼ`~C '?r|:R >O8]b3۳@I"(;I?ٖRe@>aϛIYɳdpM'\j$1/I; Vas똚pn"6z$ؒ:!Zdѥ8:4%>jfنƎ~<ќL K=,bWǟ:ray6Г~AZLް֢0?֛sAZS,oaPc\"Ϡ{ 2䖘 * j[O=`}O ~ceL` 5sC:>ơd]c95yPCNBSE0<#T!"{bpg4^XFIcá s'c_OO63FLr]#3@u0'ghOXp~>7pܙW$`{p* w$m,f n-Nې</} Suo֨#IcFɚnS5WS=({%T7u;%3,Pb0ZUu٘M/v װSf/D5lfafzlgRr;Y}a Zbv;#y%q;8˳Ŵ ~PtYڒ!|umͦ.zf>Tav6GŔhF Rʬp=11ۀ,Ʉ9þL&Ъ/! 3]| KmJžhEW3onfF{*SOC/ۡc g(|$>f;HaEFgx$MԏCQqϟ/φ®*@")?n<` \P^ӂthhHq5֥*h*xs}#@_HZXn/cɟ^3 aΜISvL#dX,o|8^Hfvb'Lf1Bc37& Jz:BgTi`ƚs2JH YyNTd.xUQ!2qwC#X 56W,x ,X \D~hQ:P` G&cJ8U;.C9/,*m m9A=28?]A4Tn(y#:cÇ$J~+tǣ4njEg [bKϝ#Ԙ( Y@{5)M\៦h~ݒ:$ G?5١\x*Gn1 H?8)7籷x!I}N18"mo TވRbvtqF0ns gFu):cp*rGzf"/44e2g(Mw3W;T97Mb 9OjaLg^|G,mBHIƀ'g#Nyx5qZG;'2QQu/=o=f>HD){maYI A{XT6D)nIhIJؙIOSb t~pZ\@GH?,/)CR5C*_8t*HPx*”-*3_[C[b#8'ݾPuONd_ɪS-Fxw3O ڋCO(I ʿX]S7MsWzOjx(./(il~9 c8>q^Ѣ~(>(Z6P7f~R&ЯſA")A_ 2$OL}a4ha"u^}}9ݣr/4_!4m&n۝}"%|q= ac>ʢ=nbZ?mGO )~1q-K>tRgV{xnPϐnk&utˡܴ|M KiX)l,~z(8AR,8+>FLGKNj䗆#@Xn%-'鰙?b$}|"/CyLi_11F쫁h/D oz ZAdhmg|1\o+%;Ѵ?!9m(̞֝`hNϔη.CG~xA8cٜӻ=Ϩ*OPz?dNi<DٯdE heAV?h$hE&grnPgI_)c<_jrgJf=`eq"zw1gV4hU\ q7p g /a%&KqHsE֐:|^ʉ40M`EgWGy fFGSjx ~tFj#>67dzV#E&CsD?k}@HSttNE05)ԅDn<&}ֆD0:dl3 m` B|M^ Pj;irz/{ƒh!㎿setw >yv:lS7\sit~4cMC(CW= lrЮ~س5! # & VLōb͞8x4f S#4ntq]i%SMhq=dŃq~Pu >1r~'7*IZI=^+e}΀K6Ϙ48%2$a|!ѯTy:罾3 {1GrwGpy^ gi^{;t}i8^Ë&>ß[G:FCH]]-dRݍ</y]pГ6z\#u ?#'5zƊ]d ϝȷ0ff߅abcw*AIͿ7k&珔zӁXY쏧rg&|T}9dE91L8Bßj3v>_6xWrs.Dg <.Ͽu'>İ՟f9A;nA&&^!BE~ÔH ?8Z#SBr7P;삓~T'9dVwo O0Zk=W] \a].D7 K3-zCa۟Q{Z~T=cد0Y걕\ 'crP Q** "fE ւ#OC|JQR sNy* =D&Z>| ×lSmV@.22?rπ|XMqJA?Bl05 ᅕ;MoL7%B?wlIȗE"ݘ<2Ɵ~ƾ@=g$t3A됧M]Vfr`t'=ѫGKxg_tiW ̭˟)3DB{w[zg&o.? ܉~Q8 _6̆NWltӢp9c滨IbND߃&"W:2=?Zp23-q\HUǻɂ?uq (G$IXlp/nCUp-|5:ۓ #'gk8PCm̴G<~;=f}cYg3wKHu$V-[DxfS`W Ʊ9h,iqrƎ"\, ʦ j-5k` L# r @+q7ٿ90Xc,ys2r I-9PJ2L{1᱆폻$RE7v#B"_Sй>H♀ l)^m5"9j{ 4~SIV>Ҕ9s>7u9_ş8z^I+A9Vd_1&ԝ"?"SޗSЙ l͇xs8U6≧,uǠ2(s$X{g2j"jKԩ24эwy R㟶Ь6?S?Կ]g}&Θ( l_݉ C|C4;~C_g΅A6^5Oa8\˲Ols%`|&\ܳM:S$9% <7я+Ay$$S 4`FOv@jUǢ!bZ?w7Y'Es_8'"ԃ0|c41i696 r2,\sk̫#oD9_дz%U=?Ѩ<|*~.&;Fg;c-E qH0$McpApT)>U wh:G+ 2 Ov lJd!ޤ|@]%+DDX@'ã6cG2bb#݌ g ע|/2{_:H_cD= 5͍dhX*~^vp+76y3A1A ~ |su _HĜ'q W`l 0ю>|7^poiTb(z-͚bX`}K&4֌ʍ*,UXs׈heПQƞNFDrViN~_qp^&sNQΜ97ߪsK朋?qr5qCz=3(DXA,'ߧ.˞ˡN)}p+SWA踙T3R] ]o%π͛:Fז x&5^ ˓9|t6l eS% )\) 3*ȞrJo)}s0dרhFaYRx5fO v!mT ok0cf.Ĉ@`@\5VJ#Z|ms ?"$F Y9-n՜~5K5H=Aޔ TUEvCh ~6|l\yC6ǦQ8w%' %+`!O9߰^? НlLj$Gݑ%/2%O*p:M7yq (%;g 0JDf0s̞'3'q=5:ӟKR*$pV{{{.gx;]{칪nZ}g835–'_q>ġ%?jorr'6dt?qQ"j~2/Xg½oǝ=xW.r?‹yd<=r>`R;A+N(hm|!q|:< ٨I#u>]T)M\>l'Ju4G3B%BZBe8B貅!B.0;Hp~b3?îv[:!a9$r\Jd6o0 LAI^{ jPk:_$7#{n>dP/;17 ]b206*)|Շy`~ G& | p-ir:!0%H ۚ,(No#O)0^ؿ6&Y sӝΩۄ \*aSav=/[Z]Lˮ\7)r,O<>4y`_=C 'F2s"颁\܇`Y'OZ_|%ֺ|/˵/pFua}KË> (:^3Jw}mlPX2hNJaqS8ۢ(}197)&8G$jLrNDvzA >҃Ѝ@r2S=c{'7V?eorS?&%DqG<4>f &2#ḓ]߲|FxM7NTk͓)i1,;;.uK ̙j׹M2 p~OşZP۝ܫ2W._Y(<oCb7nj[%G R!}y :ܛ4JÛݟkwMc^EX Y # Adf̩*FZ*J*}hMFNU##n  {,S, ԩw@_g8:S7G;.TJhQ̳Xx}A ~~.!8Hrε~=iU!&0t@0@8$rw5m"zgԊ w#gf_k۔wjܛƬ,ssh}7CyGJ!'W#=l ^NA!##h;6Ύ-fa;|υ/l b#ض)˦/^^;ۉ+&%kF?Xhm-~Ĵ(r"BSBn̿~Q[@jT 0 F)}aTV|NA -Xx}+da3EYZXR8Pģ5 v8ȼs*8řm4"YX ivvJ}>{av <ѧ?uӽ<Cmw@_f!a=<z KߢV/F/1H[u7|τ.uL`L0E߼vn>#sP9X;zx(=>~fsj5CB#ﻧ̋ɏ'Qa|]-6OjwoIȭ _aٳev8 tsR$^PeöΖ6`aJq+$/|Wb;֧3c| cJd;k'`qV(bJX7tZœZQQt? 6;wDiu{7()ĩrC CLN>IHBe*Fvu/!*j1 :p0:(oM[7cdq43a@X>yoTDgq{˧~zh8]yw29ApfJF!  %M8 ʖԚn_:Rǽ8͒AZ"\ibءʂFFC'ɲ*m2 =ܤ*Q6u%0Ai+STi٢QȘ$/D#qt9určc2FE0ˮ{-6%S |Ur8~/K?hcX*KTX,!"BqB !Q89)V jՓH̙9̕a@GDVFe pبU )X#c/V6;d +>E`A $ cϛsǗJ9=45 9Ճ.axQ٢*ͤ7^+W?`Q`{~x$ X s?et_= 4~*]n^];Q pgy]Xͺr(~✡< & 14:s\>~#.9'F gyn~ kpoYS+Q/d8`7O-ݬF#yy6_d\q':YhQrNs)Ԋ(߄A^-\ ̨~QwD$7􂈖DPan1Ζ{L UO @ $R~d?y13Ꮴg͹CU$A8O܌X#{H!e#l࢘R L w&3 XG HHN.?*Y-]B(nQXTc[Ghs?UlwPl(/(Jr z^G 3Ro;d5K0*enbuW}zZ$V(eسesMJNr/"N"B)Ħ(@&LL8H\ ׂBr{'!?$!]$h1 C ZXl}㡮J̶ۢFirYXA[y :ʺh,9Y^}exti[4G1<)&_Y(b}'f}sDhy'#2T+'w JroԎiNoтvP{au}Aٺvw ":iɇگihEY-n)0o"m{Gd vJ(81ec*I J5`\;10pX6#: )xr[ %8RTPoarZ$c 9Zk{eR* Ws'M=L,FH(U10G>3T1q#FaXڠ*$9h-ǘ RGo,8%w8!d~bEM99U<,e)8$;#x/tU*X )~f\/+C|_edMhO7\R~yt3|^Ckgz+q~bNYM|[eG$Qܿy\@nnz'5H;4m Kl{k'B@ny2UT@/cSmOA J Ӛx-B/"Wv~R X5qEl{"؉0guxAoC$*U &53;偂,o_#߮Ì袨dKxřYX5#aj*®kYm'\UZ,D1Q݅,\_A#c%LU$Cή!5\+yk9`IA["+vy4eUj(^ީ1{bmmFr;np9Z__՚<tpnsO_V˟=lM^Q;O$'{ے fHlUػNRZv2vPDW^LmKrɇk>j9Ċy[P~k` { & nCMt$̈) hQ`{a2ۿ˾taSq F su}n/Es% İa*2pB`\, [R#Тr-ڇuttM/ #:ӃRT ..uULb,e\($QbD COko4^qf? 7x0n{1P䳔 3;Dx?Z'ro~ mas\7$,-$q<%"i,vʶcM`$s# j4˘ﭣ3r|Ps45N 6Gk#!H$i--'(r!THPG w0`LGZ 8&vv?@tr9qAG ZrQNJDBPHJXPqE4vP/?P9Y2ȕr'R"UH"{9-/aG)_ AvUsx|s;QI*dTy1&L5t>=@Â^1?n!t$ K@XV_$j^TStakC>-\:xUj :L-,`YJT9mu/?m1,>'Tc=w\h[]}D7|* 8&2w^jQ1L&)P2c PS>} d)pf cy`b$^鿮:ՁS[aI(˜k|C#HvJ{5J+DP/a%N}7\ilV[ԌvWڹ7+PPC'xemuA*+g!bS[:WYt/f劾w쫸hėB렂VS#ȹrЂB! `8ksa#NC-qZ<^CyiG^z*l;YwH{WLeݡMBڭH5qm7u=5sX(|{ +b?хT_sܖ%HNB3y8sXE]G|ޏ0˱b R#&C2>)`e¶͊, ⶼ!urrPԚb;WnJ7rF!pu&'Je{o`\m;YAQ#CPFAg;Jl]߰M~Уp*Hv|Ș# rs4',}+#Z@X*8֌'ཏQb4Bh=c⨋ jj ʕ ?$rп1p}.78fFUxwo((Nj[*Oh9=^,˵N-qtx_o#`B"tá$qӢ9& C!g6Έk^4+l!ԏ)g @{?믟1A!Udz(b`J%N,A:BJ^q ,y70q~ Ԣ4$̘nDzo(=ħ&,H7`1! V?vm?XX&M 5 nTnYdo;#M dfA6Ak rp-+q}#UԹl@\@Qi.jʒ't G i3X̅Jv1C)X)?VΪT}-I@"eKﺄ;@572_?0ݏBĞ2@QX4CzVz#vKP䲜oH7!uU4l D~%ufBQNp f>D W0i }c*~5IEj -'!*uiƴn4. $C=jёNp0U&0IARX%*FZ1VzXLJcO8*ptyEL6nKA/{B"3kl)|Jq=/vHN~Q^UyB(|c#!?#rRU>l*wnE ѐR%Aلk*rҢyTܤˆi<#!8Qq @RP{}s?J x Ѐ;̊ԈG=OW9Gu`Ø`Z_ӽQЮi9HP@xчȟ u`CS_go:?A$ z )[\$8or4P;X&!z$$H.2|*r-C#P@yA&hb%sBkg4zW2J+O_8y˔7 *F^ npz8O@F]bǫƛ5?ZZ1]S 0\- VB@{_j\bgIu؁ճLEc_! ȺE$fye$xGJFWZx/a|Y3}"k±:B0a[j q*F,Y ao9/2 *ʒÕlZ\ ʣ6a* $ lPO053o`S2aOj֖vbj/]ZrׯVgl^GN\4vN]ve7=P(2fwGPoȲ!D^7l R,0KۆVq" ")=댴s7C5q[q}Ow,lqǮxgq9Mۺf?# 7\(TZ(uC.:TtfsYphSƝ/m(1IԮ]F1ls(ǎΊ0~qwo U}uBmj@r,hcWU4*c(璁(KtꂃQ6(6{ǧ0ɗL7tv3esop}ͭVU6GpW>y\ ,?l(R: [8ϢqG6Ws 9C̬W #ο7 -{Ua`Hyr, SǼH,­joTo7>tjXa\G c pN&eɖ( T PXZѪrP:O]`>rWurHSkr~scf˂˟7ȹhuq,v\ufmlzͮ:xuhgCNXupVɛ*-%ݮh#c2o1Ow'/ s}~nPAI_bpC*! .Qk*E^R(( dmj$9Kv?KgQ'Җ틸XQOȎB ']* [yTq 0BUMU)SbZUW)w* F%qfW_t2Y)?L9[0(טFQSP4CS(VaTTdea&V"A !^k;z-ZP(-~%Du%NehOd+BH݄Y{[=@1?B9Lvξ%pGi!:02saY`qeXsNyt3W6YvUtI,9u(~oWfC2gk482Jlq׳b2Lo8׳!y4=d~O6Fg[.2`~A{~8gέҘWVY!c]n7'Ρ"g4L!aO!ϲ~ܴj`}<ֲCE$Qn ^] 6_bf~*u[Бܝ"7CT3Y \ӏҸ:qxMg2vWm0L! >< fp:=3}L>I[lNH^;Ў\H~\+Os\O?e;ь;PYFqZXU:???Vcs5"0"ar,9,&H:dɓJe&!:  u:!=<(Ȋ Ht/0!O_[$#"gv?c!DŽɈ{!?l`ݸWK:H^~ w?m#R5z1!x:]Ggz`ϐ?AOmV[3SݎK >n3xE %))T$nx݇\Hf0yGf'ʒ_}~CJ?,Df@0?H s<(v~~tu]~s;=AaOa!HZ(PZ)R+J"bKj$@~bA "({;!o0:)Ha@e}H]MH|g׆?!V? I@(Mt20["Ҭ/ #N'[Z-a~) _Okxw-w~fa;g%q>u wh}><,\w3gg\N+L9#@1 x73AlHDv߻_rhj<̈2Crdy #nYUkiWtQ|Ȣ#^7;Cǰw!l!gո0`Sgsq\g,ajG8CCӰY CNC3S5]$3Ϲa0AOXs'5Ls'cFx8Bt~?Ǒhhj!8T(X//M:q#1,Z  F42Xf3@$r[C㾙3ӝdxf. ޣG8Cup ^cgѽ`τ(u&Nc?!1>_Y: 8”20W,gסbb A'u7k=OEf`Yc?$9w G0H9} 9|Sup0=W`yӸa0!w !ڈM=c`C쏗?kx܍#?gɉ<#'9 6Y3$}9)e͹M&#D> ˮyiG*=pN&z|B75ˤQGdC<ϱ}&gE˭kx-&ugHn>]. ںVr84!=kvNϜbp2W|rC0:)7g;#w3u;Wq%b1* dΪIkX $3]EC"zza ┠b{YHRR)Je޶惲< |}\x8H!}_p{p|VӅwxsϝف}Njl @u8q> Ѣ HFAy1pRFX{ CCv:yGbCCOCCտL{o`䇂_'iّ9=p]̔Q,80ŃeesKgdI1#I#$H6TaDJv^D3~Y:4gSTS=L*?Z'UgG6v˃X0 MT?8Ŏ .>AJ @$(>CD<UBH"S!E ,±hj/m77ӏÿT9RuϚpq&337Ç7y rL439a43vn_Jp{ootHpi`~Xzg`r /3n?Mϭkh8#W00/]1*u^+Қnn}ZOzm PùO8!CΆ|&C'!bsë z'0|lhsH|(C4.<Fx>;s0apTqO$!) 'GX?;+?1`熑'Z5Z{?+^tٕc-+& O_SVE  %j8ac=Ζ|Ϭt~1')Ìӿ,>w?6O):S')I>Gɻw1-̞Qs98ݞc'_ nCњ'|ޞ{'eG=O&+r!LLץ>h9=O[d04!_ ?}yv2adG22w[ \ƮW'VRud+رRHRU0+ EV( b$Ș$8 5n\Gh 8S>D\fA"Aeeq^:RZ哌9o=&7>Zk$5L3a`t|{ 0e~܆rGq}81zYLn8tIHu>W4g v|{Hj`;qc!fk[eN;1r񨮔3+`k6'h<:[=SWx߽/e]ř8'AχrS\<0ap=Abvɲy;gߟ=O79>z,=FP<:Ґ#G,a?K,SrrFsaw_$25߼D䢐80OV+ƒ0%J(Z)""Xc֑z%H(1 vrxd?O6r #'NyX_ym,6N'q^Ce~` p,F܇0@>?E_z$u+Tfk,6 KLoq)(H=a}naxOXa!3!`ɥte$3C nXh\!zttvK$7Port$~M8;?1yd^T? Ӣs Az rD)8FMړpf;gk;X%+X4Cv'n{y78Iv5|!FϿN!= ;>co6 `}h002~s @z¸՚NKs׏n.tтrxzw}moiL>Ky%1.3QQwZ3k%{LL)լBisP(4N G{\9a}r!L::O 8zt1͙!(Mg:]9| M4sAZF`nu=ٓaŝ5n$~>s^]2ת7ykz\G$`~O,pFCQ; ;5!RR[`XbS V I!7`^u7^?mzY { ?[0)) )N\MPPRUrX<AA DH4TA8\IF$cD 4B4-D4I% #ABPH4H8,JRPRgCpI@JDB M @R#C4 M4I!h1-%)IJDQM L% @ q+`qNbZ)\ĠbR1( Jh Bb(R"bI JiZi(('!&(Ć N"h)jZJJA T!G{BIpNx+1MIA@ @4TDCq)Z)L!q"RPPLQ7_(H⡤h ("P(JH$1b D81-!B0HДЅIJRDQ HRU CHAHW3E%!BRbye.6XAhi)h*( bYe I0-!T1 g#P~9͐` I A(J())")xYs9B r@Ds)$r RLc!0HR(*!xb7<JCA`nc {l=u2d1=8 ~LH3N!sA>8 `G[ׯMHn5ն[\Hw,!OL~\!CC $>߅@(u_Z>A $2S`[gpO <__ta΁+pp!gt;~ӸkrpbplrCzg^!j|83MG ; p0}rMdrOW,qK BD0!GU#3!3A\X&) ES))Zb0(P&DPbQD<.!Q oL2i(w=#Śi ~kW~<:'Z8F:%{p=C[l|T 1>2,ED:Pl/w6ijz[2&[ߍ4#0(fa?|S14A I_a +]#:bCṘ!ٰɡ߈U?' tJr̠Be$ONld UOC&*E:2rVp|6FfB "+8jit aw.yLeQE͊@tЩ:;Qv:ZInKDu~|: !9?u1} gũ쮶rwGU;ڐ {˽ަn^9!;4s\=~Кfbda#2#;It$&ǚY93COXpᅥegiedc3q>;/ ?I)3=Sf& nrPdOC C 08gsd5#q aPi=aӝ 10Lƫ>C7K ip2p=t. &38Q x} l1!iB$2yVa0LÂpH9 ݿ )m}3,%.鮸(pD#Z6W9{#b|TkΉ`d7`̞ aOfGn`fH`= C0uy:xp> ]fph0Ly''3d`verT-Pyϓ5ߧa6ito}h 2v`xL:0,k82чϸGms;Xb԰/\ux,!ϺvXRȗB fG(v LlL 0^ (tEA@n!揖!ZZ1>8Ij*!dd I18fSEF1C10f l$G$!d88O՜GTǭɧo>aA$R8U3TZ[Wz 3w/[;r-eǏvsa+re&Aʏ9Cst]гuzOezaې}lCE¼>yi B>D6uY1:?[oƣon`~k>x Td! yZR%W#ţ20m$j%Z-N=WvH,9Br}|!CN4BqǪd6T:?ͿG#Y1g%uT;y7)Kn=u8)"ָҲ9JrF.S&B$'CM0/h0a88<ЛAG:k2$=u]O>aSsCqD&s|tR3ލO!8ᯅI* ߀(TEO']31[;,$(=f73,ΧvJXl=cøC.'9!tAu<6dX5_ nQ`~^yxckOs蝗;{,^t;]|0bRNW0zN8|WkEPp 7U}wj$F`H#H#  GȌL/`2-$)i-6 .鎣do 0xՀr0id7kgi>}s;v!,8Cka_Nèӄ>/})'`>[ƹ֠ Lwe3;O'N?څ3BBOq(wמyxO t}ߩ gIedTW@虽?̇K!a `0=Cϓ!~]31o2 0տw[it]0bﱺ@x&.t/B*a:m^njH#l)g&q˨ʪvNW'LA{rtv0ڙ\<>K]'7a¿<ͮݫt0o猞NdžOY~FCbCJ/M N))# ꌇ[Zz=oW$,H=$.rFX&T ʕqXdr?aH} oC糿l{_T$4;>0sӭξ?h o$7`ܽvMml ߐ?w/ o2_=0GHgOhN* TĪS JB`T@R)Bn/vN)2t.'=^ܵR70[!\COX xCkP&I_M$'(f ϷRN{ l*]t$z+Y*b@ΩoK=H8q0S*\ 譪A81;d>ahvU#oBeUq=! rT,J6LumэM­Y}F V&b'(HLWլF`0`bŊo!!EP$.Cxb(꺭[NVVPGF0@.YG1NΠ|\yf7&^dpZ&/Y@=Ҭ&ޤmq0!J$ɀ1\']lRNP1%?\0{f,Cjbװbrdq.p2uGHkoԵAk$K27nG)DHX2R}˿Yş"cs We-mB{ C_KN`{SQgeX"wo񞖻׈n4}'MQ+oH00Rfk [i:bö  ,?p= ;4jV@zlLm[\񿣫RǮ ېF[)Au3P,DbԲU0+,#McK>f_ _s q%a%9{{)-/:زWWo`)DKe!:txҍ=IG0& daBrAQF2r(rT ,ty\Y}譣т5Ĭ6гibHCcϬo +*Ygp ϫnpJzP a a!T*8Q+q_Ra!0E|CGGN֬ʴcpHዿ 9Rߨor|>5xVj )g"s>ToYuX'Wo˴$Ucʻd1՝a6CTq˜ڢqve` u)w\熠0]{voxʘlRD](p'N\,`,1رe1p,`@ piN?579p#IHG~qx5ФmåO:ƒ7l؛V f'aG)_{к&,5P91Z΀vCүzdy׻QZ^5 jlRЏi#OKmϟ&5AGI*Bg.uSǁӫ'Xg?) %&S"\^AD a?.IJ[,]C+? {@և+0e⾼TzmZh8b@bHo[~!LF8QQRbt)))dNEӔıTD$i :,E(RT"ȅWfJrD"ѹ?ÖֿnLrm.`1q`u!3qޟaˏ7#0].NcrϞ9VU'R<_ OsBY&JgJjptdNsD,D%\_P7lϟOx2~69.kըjd!J CZ4]W *̳%b%7M/N{F#r#]swnpY~+o+Ze,eYe]2,eYeYeL.2˧L,,e.Ye,Ye\eYe,˦Ye˧L.2Ne.2,,.eL,.t,,e]2,,˦YeYe\eLeL˦YeYt,,gv%pQ;=}+ΞC*ߵR:p\A '? =` %1*/cdr?#h{9L%Nӗ\7(d4GT{nR+~upŻհܖѾ۞}Ŝ]iuH3}<r5B:5`b<8R*K<+\zeM+i? Af"$72=%gdTk3A$TH nsɏ04n>1+<*9Py^n~̠I:0z3PU6,+GF/ ʉXoV4~ڽr>i d>**z;Q8jI  WxVSE"aHR)T*xb/j)h'Y,KI;p1Gk6\έ_~FH!z&Յ:RyLqev}d|nԈI!sKKo^aAM*s* `hMe:;h#t Zt}c*Ѷ1md0 lW: 8P:Vֻ=&44j4bSc֢̟`spS S;[2Eb4o_y}y9?xQmcH0ږ}(#2;G~3"UqCT'w,|4$o%ؔ\$9xawՇ)7(]l| .lrwH {ˉ\IXN?RnB8fN9n"sǷqĸaUa$VLEp \ e(\1״ 61LF6Pj-=(HDBX|%pY3 f/b/)n'>x+m^bXP:78rqqX t4$>0s d;hŋ@ķjHo7򆁁_/n7h3:厌'L^0Fi Ss5UP3O QGs}̇tj3sͥjqЖMc2$`o;@kyڐ\*qUr Q1uU-7dzLxF#ĝEoa ä*0%Hj fp&6&w;K iaՠ`3R|㞰ݥL)Dh\7UXD`f?Qe!XX&HjzR2h [B['V6-ŸQ?c OiiK\B>wo=X5 EԦ\ýE I (= "Ɍ,d2 y\qP:6%;eӫy8RaN ջH XеYNuƒHӫ;͉{\~4 3eEʊ{ #>{Ez'Z!U7ԖS$1u`*xuT& J8Gf}_ JJgq0}8{c`"ҋBU;zn*3`E6ߺN4N˔3 L̓D5;772\Vp'8_itMh:2tS̴LǧܓՅφ(!I{ KR.B.zj$8`@VGjPp8Ș6q|t b5OFBwek[~NlFxa|^=M>5-c(BE m),`TozUAMw$Z>ݯ@ [*=|{gƦ88XO"@yCRCGxKd4-}Pvz~[.NRA`0`9܄ƾੲڲ)qŒ1P?- 'HbjB҅2A"x:J,ւnccv;I9ؓq9qs;?ԲA(!Ģ`PPBtj{oI]m ]H& x;NOJ\BQň*ΐ4p@6R];`j~a;_GjofN^DB/م1-(jJsUW7Ro5بOb*J ;[= pzQ! J- 6GҎC@/1x` z_uH|R<:w)="G-P{Dʳ3:v>tB+$rOU"׾5dujMehwG4a떅ji >łn&$k $:Ra{кtX;`9]98;Kr/+2գe5Pdpfa!l(#dѠѦ]uM/;/ʽ Qy0ݲ1 a-򐛘ógihXN(vo~'%E^ӣG@ G8 >iy>V+>C"衆 z]&hgRoA 8t1 Ck`-Yc#[rn0UZ,猨 -ei4 X$7DrH PO.{3G *gf-v{ oVKvB>n :1M0fef;Nŷo.dw ?!BC'սX}ߗꊓz V4BO( Xݕ* (rh݋t#_tPj3tޟnxc]UsX9,_VbM^@DzT*b+V/ `&bF1dNUAZz~_wMlTĖ ɌNfG|9pC{7bq*ݫn˗PFbW=>}7R3$-cQJ1M5~r3a =wHU.W0bRX"D’<0Ep_QKzwU0VLIrЮIxV1BcQ#vX_vo(cHQX.ZklR8vBB} 﫵d>Xګ2Я̭Vo/܈ڊaО%~"b;mEK_h`tK@'«^E4†\38@J,L*nD˖?[u`R}j;ՅcRªfE84jًȉ8d3 qC L:7[6](<>w/g^^v||Y\i$cN ϊL0h ׊,`$٧O9ADK5"uݼcKབ -ٴM~,0BVJ7`|<GK {Tp--6_3_z1_*1@d<]ar>g'^+3.0uOlW\UtRxrEUxW 7ੰ9ƻcN}R/q6sكWOυ`A3.6Ͱox GNɕ{;>X OdSb敭P-Zb4Q+&͆cFPhjٱ ٵ(§A;Wv,Car '48sZ*wiq*ʺVp;ӓPA:M `5u1Qzvd2|mmV=1ɖyҔ֋38μśԐH\1Fbt0> 0?F7!}V#ϛI59⛁sTf)l;D-` [Ub,5oun!߉бv.Gl"N9~e롼sӕT i(O<~9b*tע ۞ݩCvXV/F9 {5 6h]rc1hygⱼwgv?mc&Optu_ދq>&;^/@nxR-_( B]"=Đ쌩GHJ1_+5|zJ|Ƣϐ4gl:8:FKK4Z,sXVx&5JQH5`2vk;x_2u1sb->?ʘ< |kl0-`Y.HtشSO~蹗?]qӶ\7'Iwݦ N)/_B2F8Gfcfvt9rpzA1M4%r~͉3hm6 M0eIyXh'd f T޸L>Έ_mQgJ'EF|qenY yQ^ $ E,1Q^SpWNch%v[zPݎ?ηaFál市Rf8P`~P] &!ӈRtAK+QY-ЃLyF)5!ˠ)Ó/c'="]k_utqFDzAo޹%yHl3&yQeg`Dt-}0oH+=U5I}Ȃ0?zM8mv5 Mo-ڹ82/./Mi#1g/o[EgHBЁ[JඬTsg3ųK6xPr%S ȀD?0 d.kxA `+\l N;BoÌ9Ht ccbBrA 0C l+'A"S8" @[)[H j!2fk„>G68=[Bi9"?K}smcFP2RC>8nZa+g[(|ɠ!Jҝ[?7e6J)DawU SjC ^JP 5MjcN* 4w,^m]`s_RwIŚD!b[G>2 :wolc}&N'A,GR$zp+,`ᰉaXc&B :!< 8ey8A{#˥m]s:P!sJ& ` B'1p=D<вHu!Bd:tD' },ǧFHyb?P (CNC_}L_VߒMCFt)C&TSnF >4a3HP gRyT]I4zowgwۼOr~>- A@PЏeSqX ">2:}D#!J|RD\6m |HݥO%_+P7{?9K *;I<'&ȧ$t|D!!%G"?i >lv8@ؔq=q AԕS֟I^̵V]ж["ҖUNTS,ϩe} fLd~+l=nΪ#M)@/AS.f%tl :S8= :ZoNl= S7w@Jyנn"^7qh{^ue^QfYKh@f$:p䵮k@PYZc8:qi)Rz|c8c4*X%Jl)oWJ}uu)MZHǖƂ[/`$9M0C.Յ3T7WGg)Mh|;-q 8h`bŋ10Ucau*JҤ+e+J*lWjj8n͝V?:;ߊ@[o Bڶ ?kx ʘ.|35 xj֠=7vq}󱳩++TH΃9t1R/YPLD+O[>aU&ꬽGdaD+)V7=5S$[@o#]K*V_1.MGXpfBz]& :in1?"u^w>U-u'j^"R-ҫ% mbߖs5@Z2 `4K@iV|W! I_JfgMeӨ"hK$kXlJʋ2:md"a$Jg!Ec!bKp+X|b`"Ir/&nEbRQE 09t)$ ZڧHWK%4bccpVo 7#cRr*>#~f5GPC?$/?d>=z)XfhFxD\|L_*m ΫXC74!eMl5/Wf_fϔ~& ؚ >5'%G9݌:3abeޚ͕byT~uR\l88$2˝LaCq :2pGJ%$JR .PS,,*B yEBR_$0Bhs,!ؼz#nyi{dċPk;wa)} z[/4ʫi?Rtn<ƆΜքwp{|6KF&{;BwOɳ2 `'Ճ7TSr`Myz5h"%f4K}}.?%L(r}o(#*||ӓ * ʳII@'Ye_?k 3OhR9LŌCumhsQ[⾏Ag2:3i$+=~XMR )3Bp\,$aE W't _(*w݈£¤DCYOHPe\5|4A_5<)(<[fsפs ~s> !OIܳ-agx~VH5횭*.X/~bž#j74~ErqFe&#tGt=h=Es7W9=_{q ǜkmC :$?f5H.DTDUPkO/+L_ͻT 2t,@&B-߬XAؑ.%\ _ڋ[GXߧ+5cœbU8U3?ꈁ&#LRKPJJV[4,XX@^-\. "h\q{NCD{&4)N+&}J#a>xB~bX ̰}{v^z=š(%XЂŽbc)_4eAF{͇z%)NY@Xf3tV2*+V~W +q/0`0 sgMl۶Yw&D ~BSOtCOOtII*D{M)LL2} c3ott"[HXqw{=; ?v V\;DokGr?񅎻[)*kL5użro7*:L|ƧPSh/=+ZtBURe67X0BwT=cv*'}B;ip}QWS~>) ˠ9?CmqOp Ԃ)A0}ERKJai18h#LvtYsVr@Lf c+bdq+\#x?̍9/͑ GRm7qY*q,njF""k;h+=ߞ H `Z欑Zl$ja=Ò9@6!@,Bi@ 1˛6ߏUp5`- a[$gcs#y_6ύwŵ)y%T& PQdظ%jÐ/^좢W*g@|Hm`5v ƴ+˺A89z:YNVZű"௶/Oڊoƀ[Q)=;^}n/ǐM=`oF>bR`d5w&gTM:O  ?qHüXU)!d=/w(j֖'==[LJ }!KI |C; ƧO^6jĜCj;~8)x҆[T/M'_#攻'_FD~= ]p)Mſl,Dm~ O'xj#KPWjeʷ;ú,ibl Iq閾bPx6s/i n Z"}'nZfO8{f9Ùp7eoH߳ЀTTH(*TT**JC +իz20ؓEza&#Mdr=^Gͺ;q?WNJ( m{x8 +iW\. u ?Q}ߴq7+ V~icg㖶;3Xr%5 *sk7+qLrJ3 q +v+GAJ-z>FRlWr~BuLz{?(;1 *x Det킹`HzG޻uUT2jt|EՙmѬ[E%hQL6$tUn]W+fgvJU׳IK*YtG(S2ɘֽT x!6_qIPGD+(?i|jΓџ, uH!IEy/D.BV|O) @+N# uS鯂 d>OD7?i60FQ_*WH Ap '%̷=; EkezuxL9.T/&~*^I3LuG(_>MQɻi pB3¶knK6V#[}ʷԂ*9i]6yVy1o{ tMr9xU!6+aL l ?a4-.Jk FUDb2]"DBO3?׏h^t &p\ԩ:{bTeI'"_$fa ajΤ+(t0[l2D9$8`ͤrhWN)1 ɸdVRܝ2rxYm,Pl61>K T=KSFh-OqI[`V(8L7k i*4if3 \.P1~>RύõW51CFSjbQcGQSSQtq:T\nl0j%GHQD"F_X"))?/JyH5Sb?ʴ8x[q滩3/G o|kqY!-R˶(p"WqeAm*ŏ(U "u[pJEͅϧp,ɮ` T YǮf P"S0hÈS_4y+d 0*RbR`af fI0dj딑g/U烓 ˃jS.:[?p]okzsB&񎬌.{00jXb c"ɑ3j}-I&"p2,W4es#Fe O,FO"%$oAP]9I?.aut17 swdho3ۍװ`'w;#st&ec9>0kce6‡mw2a7VSZ&ƝY&]t[0@M%( 68B49Λt{\LC,IlxΥ9Ot0E:Q*T*Tq*TpiO/HD3䉛Qsnv9]cݱU{E?GB}ogLϐuTDy Co ɀ҄T7Y3vIAA¿rXBL>/j~&/-dwAWXE)w1ڀQCjjr)r GvS} 9?"uZ9ys2'ybjFulߪJb'be2. hM*k6e]%ٲ L.tYZ}ȪSv,KI¦T?,3< _l|WsYC\3\O.w+JE\@Xi2 A2ČFA@{uJA%hD;{H_){ID7(rxr-+ƃpFՋ*{+6ՠ1Okf7J@U%-nN!p"@8ACy GO;>9⹧ 95cA1ՔH!Xu~ ̾_yV+nuWx,s魿-_?v*]'%/zn;WdN"y.ϧhKBVa7FǣhS"'FB$ժ:pfxB1_c,Ho=gFyiTJPe RZk8*[IΆQ3UUڤ/ "ı Bj1be^5'ZIlI6AVWV%hs+BZR^XX%ҿ< DŽ3z=n Cƕ8 MhH-./ ˁ6yxBLL;lqEmQHOާ -/.ۛ(o ~6B"cY}P:b_EAVX=q?9!LHIp(2?$X굖.nON9̘Vid Ih=6[wnUYfg%R*b_WtURF&;Z3_53zDKPo-H4Hu`Щl 1NAs^;{/_={&$GToyV\./su>ƚG?1A}iɔ&EO'AVN Eu:NB_VSv'Ng\?1L _0wDF%2}v0g@&BA8/.(94ܧr'=2щ}y1 aSe1QIe02FSC10N&Ni0>DQ'jHiWLfM gH&uj)K+*6 6L$"h"dYKdDzU eZVU4 n)FZY/" *hZ/fM*)5-hE&e3IL$Zdۦ1SL&50McV2 L-BjeS LYd·L[t&1_LLJejj醆MDjrE3r)MThǦ650t¹LRe)+RǹLdbhSOJI1qiL`UHjj5LĊ^G&. $æJq11)rĿL]2S-,)Lh M2)LJigVpw2xtҦ/'S 8ɦ]MML,,f=cBKK4q aՆ*Fba5FFp2{HqxQpu_ \2(*^IpDc:;y5HI~OwKWj`g& g /McptnG';2˻XMI>ٓI$Hn)!{VJu߄P=k%|;y;O0#Ԟ/AUNYݩSS~ibž>mн<2-d~K\ +;reX9':dGh-G)6-=:f,[ >89Lb.Z1~[o9 xRJUewHD©|Eyx< BLpCw7=_9&m)F(ڪ5nڏĐ>5H>Im} '^HN-)# >Ǣ#EҔTNPY co3%#Ҙκ`6.>1qwLaPCG){47 $ix<$-f2uȄny߳xNhNEs3yћZvfjDŽj/bN/>>P_F6tcO`b=\isaCXk$.`\֍yލ-?VMZl8Uɨ9PoYfMJjia9z>)E$>^ DwHٴK8Zz;n٬F\EnxJD+B`Pnxƹszuay(=oYA' fF~T Y$B,/ƴs}JSBM[ad\)V|9ּ  "&$6}xBoƄ"ҽW&]B )3FWV[ %,΋}ˉkW.ۮ]|OŴ_{&8އ!Ew'  R)[yy 5S(qkMƾrdl%|;glz5awn۰_cr-BU Eaie_0M׎g%~~ 680 BrӀ@{AUAli$/7%%+0Bfp#ܯ`܄ÅflRJh!gG[IEGdzd䆷TL7(@C0 NyQt\J[o22hzX N5Ef[綷{_l@>~BrFHԩҿ>p3/v?V8qiCQ/jn'NˏAauF!pY7L$5dgd#y<"V*ty*{j78pmVQX8GGpWɈ4soyn>(wuMU5 e6sĢ10}48I< I;դ8տ\fћ<3%tyɽyFi%* [;7AwW7gv<6n QD$?sxryWgĚm+f(4,Snڬ6 h}ͰD6T{'$o PC;uPyCQh[WL+]/렁yiASGnK/Q?(Itut ~{^ؑt{yΪ7A\ZS.:_/Abk{oܵ{mMJ#;E:X0&Ւ%cjwHh_L0wo[c*P[]Wcoz("b?z ŏp aJ61ք|M_L+ۥe(Z٭i`ӞLg ;Q=%IK<ZV@g)#D#<"ͥyFC2js⯳FB,~6is}Xahu;Ň~5{1D4ft]>tu~CSa[]hD̆*:C qW29X?%wXKuHBJ QX ɈnXnHz7#"H{M|I7rE;R/51i88Î@s{@)\p|vT/JR]PNA(9eTFvI h[/EF ŇCV.=c,e|i{mnXւ2i s&5 I *񁰈 $b(l_k0=.iԘp޺oSU\Lm,!K%֖kEs\?r zMnpvnXDX[}vYl|/}Qػ<. *r:c;ِnjķUuMn?7wЖkB1z o7gMזeϠﳻn< D-˗7)vuAܹ a|*0-;~,>Eh-w`'pe!p˛;Y)n뛳A>x֝c'GxWIb[dpy>/- .8;T{`ܦPi熯`y쬼+syp|N}7rߜx!*[_"x2aWs9~n(|rx.V2ӄ{ml<:X;)!GHL 2ܭeJvdSFLFħ<ĜHKi2rgoB}q ~qiz?ڕkzMz{h .;W\D~>b)34~w@ߖ3Uo6|Q1ۓq57uӌϓ{k~tg֥`OtX$IPP:"w0Zu=g'p!웠!X>T/Bnx٨D\'N S{oy/,*%%=u;"@*&R)Q_WO5~O3t.JG;Pڃ`JXa`o/X8AP?eAbfmD7@^9' ?9CW(JDhyְA[#ܖ/!?܍lT&DO[ʬ)_>JTħQ98wѭn.Mت( GjQ>X,(qy%:Yԃ,\XSI B7KVO (;h! ^[ڍzz"wH1[PeМkE3II )ZD-hf ujz) WyBh^:NB!xd%ZZ Ԝvq.b\LML0q3MqBNJn}!_IT D@2y+kx꼠yX6(g,U4Q3ӱ_MSD/j&7ReCV}&$e\PSl3ZK& &yXM@oT~J^KZE4#j2rU.pLQ:I !e_O-CS,RMYrPSwzC#/O Vkatɵj)ФdNVz\(GǹMUTBz9tMeyzHV&AQ0:NFV\b)xifkrͣD3Z!U`S3]mXMX(jC G ZfjO@ކnTU襝T/ed-L,PVkuʗt2^Z&&ku18a|T~j U%YY 5#vw >G&6/6rL0NīȟR 1NQ%/&դ~b+V)DCF5BQvՆՁ*jandk/EIKO+F *ⓑFTS*蟍ԩS31Q5Xp G-\"~bJ0*-]McZAf2r] q+,ַ :`+3%j6DUe"ET4QN Da5CY=&)EzO+W}qdxT(jEA@D /"(x "/TQff"H5nCl.~WFyc~*|t# NzH6<v4ѱҕea hifi +1#/A^ؘp+9ő7(B#đ}±e0|7-Ry"P^;P<mrb/'$JRyiSHYXtʉTӟwߌGtՀ;Y>,ҏ*?HggH)N[̇ \"Ƙ8 35Α4IxP5 Mf/VW{n8dgFA;Y/iy't K>h Ǚg+<J[p PI;n0;'QHE\5GIc!B H0:Ѕ!JO 9 Joތ _Cn5=t9JpTS\N$aDɓ<a2JPWbJbY;7m'pgE~;?e9obvؽÛ 8uNt5ˌ=43jϮQt5d|q]8`^nV~)QxM@A  ҵ6鸷1ّm 7=9$uc5+[+7PworNⳡ_ZCm{Y5X=޹o(ݟ6R\e:z/Qt V%W b&"k*-rF%e}to NK?\GލjN_^ ኱DL:WKc(`d{KI9HۻjghNJRb<ۦWR{I%}NPP JSH?h7{%JA-[WǟGQDqB57-;icfmAJGQԤ$&wӱ^ 㴇/h5p'A}y .'F=lj{KҦ3x*l~Q.C&!&ENJB\PYp Z!˱̆ !h-P *,?ʨAQ7/Q UIJDoQֵjK+ QW{R@E ֓MK˾|bs ߆ԋ<+&pT0#'IKb jA"NOdq8QGtw?Wg }JmAFs"v:(Y4,iAs ˜U8T9G0sPc86[S%¨KBt=-SR-:-K jdՂ`T‹Ejk V.\q0 /`3 LNIXra8!ӱh/37Ip"aqn﫭;FJn M\uc&OzϮ@N`^[ OBܖ]*>!]Zطc:rGk~XkC׎%žBy&oS9K#uLiDg:x,ɇNڎн|0 Q|+_Iw^xa!H? J.O`;z2? "@ٜAb`q媺JUf~2745FB irh3=w4 ߞX:yˆ"Ei A7 NJ3Mhlj'Tp9^pbKs3ݿh,Qėh@X(3T`JUs` x, ߦ?%w{Vz՛?\0ǡ_m3XO" h(QҒ]0QcuӉTD"&NCGW!$>4(풸XQt8Dv)^̚s.È>H̪Z_EB= a<, p3&?v mDy'iEپQI'!VK}8-;Xe>7 hn,Ao|<0["+'?bROF;OWQ}݊oQwWtTSKKtk];Za iů\EV15i6H;Ϯ*Z`W,`ЀܜjuGfӊ3Ml` *-nKƈ{8CVT{!u1C"5{7gV[,5S t%Tqmn~e#8/FgM* ::zz i D"J^hR%Ym vFf͞!B*!#RBBg/T?( &_T $M,fW"j(|A{FS|L(3s%ʯL.>{vljzAS2D&YŇvx--[r*8­BGi uU5UwFt+ö$<|Rv+{CuT{ ún1QekE-n)?Yמ>ҋp4UTp'lT-qR\`Lb6&H^ڏLQ֜9f2&T)(t~˵)JNF1HGS")jhE+M+_]2?q r' X}N`># S=ABN4{"t r_avZ1P˚!tR\0a˱..D8o=ߋZDj&?IP >Ok i &V"FdBmU[۰z=mW '6䤌C_ggm|TNo0#k{lcp?}1x[\ #5\E"?P,E<6.ao Mc2,7j.SN7q"f_B}f<4˙b4f͝`i-KO&ѱd j %J0!J+e)`XlElbaWp+ >EP% 6 71_75a.&[uJ:cYGz '<яTm_FK v]aiD*-l'm x/~shqF &9c>wcPx{jZ,qwU,zbn°uƇ9\,Vc(p0fQVZK5@]m+@=D[,gD7CSAڴh%|E~ W9tb..wmӣ2X*jB!'$ihq&). F YBXqs#w錝Lͼ/O~p\=Ώ/?fS90x3 :Dw}i9XnG!vLk"؈@bx&8|~|.GF,>eO4.0Mw|:Ejs}BZ L A`\T_oHUNy`m׏`J ^fq>Gӧ=gW͒ /^>bo|6 C5.olPoAu%^ ̢c$W`詊YG/y+MSc( "l4Էϻ H ZKޢvKA)HX őp`,L٘A#2N*~ d@݈41%_,]bsrMɀִeRv{=t2+jp=ۄxf\:`o{"kImņ J6!Ad?9+ ih1tw~a9:XOW&~_ϓ{1bgJw+MZ ^pwtQ>FcBBTi&n\7~/sޱ%_$In[47[M:X{eTHbzq*feS|ˁ[GɷG]rU(?qm=FqΏ\7y{{~[uHN+FEDȥ2Ȇi&l| ߌŸN3^(0rxV]eqp"Zܹ,lKȲ.FEjE.„ %v^}]*<H8dI$㴝w0-9JK)7.0Iq"4588886x<>G#4tݣGMۺtAwXЗɍ"FQ1A p & >NiTkɣ flmmztvd2CJL2P2< T+~I8A(еelʎ3tP5^zЍ[`SPw|( I&[/0%QO Կ;]ֱQ'*&ːӞMZck~g}#C`ytrp6= -{0tT).*yTz]jg5A$".鴟l|j?+5b#JB RN⒓HHRSQ8JNDeă#,;]Ŋ. bCz GppǼ<1`O0`, ФbB@G\GQ*ةc%z+{({q"?z8THn}-.ں)u5媄;1gMBpr߫~~nP_$ ,8!6>nQq}z^GH iyMVVvWOhC:p I+ =nk]Ee#jqGÎjG;沘尬s# &7kFnRmHv_- $ޡx^nz7\PGO(xCsurNlG- [9D|L8c@jF T {$/g+\Zp $pp1`1SL,#b# ST,ZR&RV͛AlٳfAQQQR&+noBD} I5#pTip.ି(UAto嵌bV1Rq'7Lc ZV'!u1OY4?jO{(mA- JXAdkTq  Y^XY! 9h8 6wC@ QnG"Ш \vOЧwo`+1\1j`CFbT@L`ǍsĆuūWX^ZLI^ yA ehJ\8 <z/˚,N~\|4;w1@XLvT*TYJ-Qj ،A~ Q͔!>_zI㏭d2m!/ZnR㲁M0jvNAcOw zwmo+{dJa؋~T$~جaCDj.Y5HZF4]ܻP &]t-l2 CܪkZD%&b5zcqu.+6MZX#%5eC|=B -dF?!,SxMY"ɾ.2"fP0'fea ?#$ Gk"P-ent˅)B%}i-R~_7 ]/Cz km RS:$\r"(BjBpjW0>)^SC探C35xጃ1ֳ# p Ŭ`_$EBe|"[vÛ:2#&͆e9tf](!| 1&ZT8cݞ4}k?-}y|m/wV⾪Y>tǤt4ռA&Y: ۏD[|LVWTT@ʘp'ۅ\ޭFgz R;+L Hs,na\JB68VKnj.Z'OqLS0&+%D7ǡʸj{_xV!ELQ8' ȂXbr4 : 0rQ'W6xj1zoح6c;I=C?@[%8}oYȠ6rGn{wx?3 '{+h푞 jn& hrMQi"2];hEV]`㽀/iwx -هlMZl?}y"}0Zq{_| w`Z`tƄ?3(ZtLtwkoMtafysoM^f=q@'ŵ0^AR6`RW1l.:C?k&X:]*cA?b,}Y \.h2J3fp Y O[Vo%D]DϮ24Y\ {ݿ/6QDW;QoHy*-V7Oxc2ٜ~\\(8=Nͬ G@JC*-';xMg-sb18Kgl`HoQ7X[.9Ѵ =r^gCQk"!Y*u'9k6Ϋ- `DnǗc$v9OOhm;.?,qCªZZZ|q%)DH&1rNR Ӊ`:yW]>z^hP4 OSpFoXSx>>]*AڧXѻ4i}t2W;\͕@D"-"%&(4 PɶZlF 4' BP#IM,_ S:+v^Ϲr\*/ݫnGIIWa|mG/N2X0!=T<> BbUpN\tyâ;U ԤBP)#pwfC &nC3$ WڋZϵT+{0A5j.kVF%ǿq7ը;pf{HU'B‚^}y) t( MGo<5EAmLNJ;O=|Hi85tb:R[dէm? n4()e$ YJipsٮ~-Ng5?#*]@./jG5cb%ƚBի`s{q=XF.>CYܗ ~P _UH 'q[L:0D);jn}\NEF~9 TIYӡ3ז~wm܍)(p[XEv tH0WԐB  B*Tt*s/{0K:E:=o}̿geiPfU9ؒc gz,hfeIMَ/JODB~Gz8C\hnH!MiBtZ]lR7j=qb&03+a-n H@"~{!#26Cw';8oW8dE@HPRa+V+X,8"Xʾ,Y\z_pGPG%&]lb(QZTY;#Rz!:fgR)>y7rU[(~(J9 7ҸK@X׊s9Ia@*Sb] 2ru믿M4lQ;ͭW7+$kS2'c J u&ݑ"p({HAZ F D"l4$ZԍlPTT0wzydAZ3UQ"\6ƲǠqZe,~V/\h5:q8N&鉸|Μ8hWN\t=\'Lh +W<~D'f$"0{x+T2_u_(V"HfxqKgceaujkbfdR| !̇ɹ/RK#sG9{UdZMhU˂N`[C8`Zl] hև.i&)My{3]b Ƃ$9~\*,ި]j:P+R- bPVtرJy1^|}GFa:AA0"9ΆlL?$Jdi7Rʖj#hz^F.Q2 7lS+V8K=5[xl2Jъp8+ps6G2[Wm+iLL'9/I/Ӕ)$x_Zׯdvwtg)1Ns6CIFG$ǰG1̛xhfiͬN<#{R >s=s0jE⪁`Qwa&WNFɰc fKT(A⮚gB핝'-:vecJOuc7ɟUL*zx2:YS~EB`,yȻE8X?r}&nF&ŰwY] &R>O⼸Pj!^y^x.f]Lvs&J&&@:f=羍02\cN4xv!_TB9:BF?"-Fxmj~`bSi1F{PD }>sԡ)瑻!gk 7CkW' Z-Tb&mO)JZ/>Au-G^3Ҋ^8Zb+E,Ue؂ِ۔ H'y+>60=L@vo Xڍ}$޷~m.WG]<ټW޲+d{ݮ^ҡ577\C?+.3' qu#Ŏ(be4 aƣQհٳlBalJBٛJ’|-5{oN?Lv 6/\ MpdeV׵ƻ щge_vZ͕ 6NiPFLZ ZLHȃ Qj!aMqT\+?)gnyՓnJi WH5F%63"#7:f0m5_A/bP;bE 4-R`}TfP,/d+OVZF>bً@(^|kEW ~UЏ%9?~ 0yV0)5Rr `!{qc%^y,[~>-^'Uu5 * 6S$DKC#[8Khw#\A~>EG@{1~i~h6 D0f$W)+,QBRRQ8,pZ3:wZJB]%gogѽݬtX0)S4PqQe(LSRRdzå M3"`W,VA}5~e1y?֚[ԽFD9tFCXvQI.9f:B–;hnkoyC?1 (/Lʈ¬#8zb4N)PWm,n7{Zm,+ŤЯ 8E*P/3?(GFZ`#C1 Y`LY2 JR ㈒H`lٳ&->5k$0eZ_t槌q4<*G<>2/@v"T'r<081Yp?Dn4ʕAJh/e\9yU*bb8Վ,kGT#CS߁pN8c'լ}OVM|rSFfqkv<+tguC0.e?>\sU>K6w :%О4ȡ"Xf0iW.VI؜Bl[=J? 3VTGgAtmZKaԱ?,/v?qXAd]uEc=;6F.X[.$a** B"%\W^Wi+KibYeeeYYZRдp.I@خ!Ϻ\:,vJh߸ 3}G^(@wHw.2b!`z ΅䈋[ 7ŀi2_WEU#_1l"ڜٕЀ$TɬM/_}޲XrfntR>:w$MǤLL)5ο?[oc啼,e=ySڿb#3qoŋn9{'hvv}_x N Oͱٔʻ!H XJ$'X|* ZliNS\HZ9q㏰z"!P=2g9<#10cϚH@0^3!Ѿ N 7MOwQP)_P|2(aHx7UcqJ 81&L mANUcS anIe8$4s}cf.mAҎ&>ΠcK.AC 2#\'Hq SΈ=,Wω=|9 A6fӤԹ~w&6A^2?$$Xg=0 JUG)/l{18Y5l3Qur. e[\c:M0S?FÃ`aQ?w[xkISݜQug_cRHSJd'DjҰV9Ȇ,(|%-* Q>% 6tGp Hf E[p*+R|sѻ-OS!o$cTV ,Wdp8 ٌnC1hѩ Nj:UYb 7R7aS~Q}L|wF.T*u}_-)LA_5W'?KEw j.qtÞpS``q"7H-uOM11w191",fq3Tqy I[_>R!4x<>&5*t~/tBݖo 3cYRۛړYN1SaS;k7,<6U?N$k6[bpU3NZzUϠ?B~Wz)35{>vFTRgTe44LAy M~$ebtHW2DD{ܯ:{ ISƆ rT GOK u.4a2@ͨ6# $jʘS d?of5Ã>|$mQm=2HD4딼0;^d ޽8ɛ>!zp-}25_'`ѱ驏[FON& EU bL:Dm> '8K1g!w6zi5]i!! q_aQ3Z+j5yG2׫Iɪ([xqp K`W˅gb'|<:ݝI31"yoC@WUfA;G hyЎo2@~+59+&.߿+&hכ,[ԞuπDJeIL[W6y .⁕vZ7n,`eX9mNxT%61>XV.)9A~v$ZP&κWZVR@yQG'Z3*JN rH GY-7E9/)dRx ރaD &㛏U24VY .~52, f3VO> AbV'[YAH!O w>‹] _ /Ô{z)5^-݇G6h H=*XFsR6uBD)댐/jk[O~x? dj*/aD@W;)Xc3lLZo#NZ- %'̐5aOމ.EĆ^H1T!_``##L؄JMM[ J(bh[Pj& ]}SѡU׺~?vCV-[aw;ikoNwGMh黇lPQ[D8(<@nе)p6A 뚆ˢ%[Ŋ1+.F1p%s~{OGoWx犛ErcZ0|{ӹ ,]x]E\7I||.zNwT^2EA<)v^ QbC::3 ,n+!s]Eh pQ[pT־fsK=xuf:7sdAX S/qJku0$GTFQX ?MELlԐXS3.bȝ`CJP5 j=PT.R5B=n[zJ!nE!M/Ԃ?(n.wQkZG(p׹Q Rh!;ppcU6-#^QS%G}an_ڮ?H-"3DM9DU517@m4m"}~wY'o+۲y8{ $vX%n*RK@_J|##̹d&KA䂁[ l|Mv2xY ͯ@y%q#0Х雸nwx'zU8%nӋ\7qCnRSE{[%mA.SvΛ;uB̏ ;羜OfEa @64hѨ5y]ĥk/bʠ+{̾uxf JvhWc;'6 xI =Wi!jJuPmh$J\|EpMh#7'U~$tdـ7USQN&˃Z*^:' jNfZO(^ %?{ƛ>/q#=vm]=T !׼uMq'L+ǶGGk{pbp^D1ĩT 1˗?D(X8JbE~`׼vA^oy9C0'LfVlG\6iPDv?uz1#lﱹV<(# TGi.XG[2Xaa$] D3~ xr*: f߇=)!HUA8)v뱿Av*2ʶO}=5̡f,njB.3 2UH08aB@B*[{=ig^ z-a\w28.6uIuT~$ٶwӷ Z:il}bV i_dberopy(8˦ڱ V,ZHLCQs-͜e>l\0s?tF a6~ˊxD0hsTYZŘR7 zn%q!2G-CY4}{N[ ξ7ϣ0^Z.u^k=S-rO܋0{,E B rfJ@X6+46oC6#}1.r7H1fm7sIQpKdknBM?GHc. ) Y S1 " Jd!a~$ :ŋcxJh3oՖW#&P荢0+)|®DR6"ݵ̃ƣQJ q2*qZۑƝs &r\(q @E5THO% mm,n_ow7+H^0Ӯ8TC! L'xwp TV'ư$76_'h:8 ͬ][@ju .g \ ;QU Z1tltbP26X̋y˝In~G qn(IUخš:U7^v_`N5Ԛp[B&#,DE!D+?`zn?[r35ɐ?!Cn%`,ySSSSTUapZ,fbvvA)TT/7pL#yq#\.QiP~r3#$-7߹-yl 1sN'>֡-^~ {UOr>:zk?f#tW5%:0y^W*3c xȣ(rF txçs f=Ae7گ;]|d`KsGou?d`cSǤȻ&-IGkZ/Wy1'F%49J\ފsu;6&-/[25dV[/ta@a Ke脽_; E?0ޮ{ϵz 鿩Xf?)p9>*.5z^V57 m#!mah㗙.}TC7F2mrED'hyG1ɲ6#QM{w Mp3}?EoR6$uJsz36[VP̞4۶ͷg~DyRԇyBg6xGDAkvsᶃ73&x^Tnyc nu{82::sn&һL~'ZI+A+ Hy"1$(L-אl% b9/,IxD:qtҙ)m<#RVI kD:No`9/F6]#K+_€8`ADf{etb KBu2eԉId1qk牋jC0I7g*}RAfM ;՞|,7A8l q`s1>I?w .\o8:y؜*׬W:cЄs5^?LH!}N+ZU_EiWb~Ujfo6V6Ĝ jx,hb,\J֫PòZ.=wwS(eb3)IG| =svwc8؛Xb*y{~{`0DP"p\ˈe EV*¤jֵ+ O,0Eeq\DWc뫫v%dq:(.BC"Ge^T~K9}:7}T@HjUkafWs-j_ b~ݬjNDlfv7΅]Щ*Ŭ2/{[L8-M;]aDbϥ-]g!7쨭b,yL"\޸ cu马+f:x|Ev/QK:79qϒi<9rI%Oc1D P:y"#wO!"ǡk(3E`JrJSK-a **_JֹR} iT$I XpҧrOFZolO{IL%")Ѽס,!&vM^$X(PdE`0>hrb1f}2)~bPJj"xMKQsZU@řLi7R#a)K_Ů]sO"*Bv*D` s6Gv -?c(+1˜zSr a|+ӫD(.tu7ӟA22G e[x"/ -/_ƧVBps\y=O,4rz uo~n+(>-IO_IUu1S!;F PXB3mp@^bl,~\צ릟k7Nl|4\ӿTTB{Stk4l0&q JWz~0'~Fnѓd37Q<"FlY6rhhѢI'h^YƔcff=-UpʜB 6Ib d#/kK ' T5){#Gǡ{3f¥)şv W&X/2DDX4CPS%GeX X=K5r!Yĥ*jz` }gX8)/nbEs…8d1BFi~ya`,7Yook0 Cfnh7/ä'&3\+ױ| Z SvnsrHO#.]!gFwzŽzSEz]@`x(uVۤ$)8;J`)W jCfvRw' ZU yE 5F EaP@q'JvjSs,SyM٥g;JM9X܍f&PՌ8jpXbsoXBГ0< R{ ViP ahӴjKVy5 @hWPn~y=)oxt K0pI:ZsHѡ )F*d;GۛbHjT@6y1}c8XRG8aлR(@=0ۋwQkj*v yUɂzNow)clV9 m$+xI,_ɽ]EU'݆^"4idoJ/x`SbM1{wb^{s~-w&m;4rUfmi0oemxmNTL2X\LZZya Zb1>Tm9ƪY68n̝ A Ue "H[~V;?|gj`}WP[kvܿ3'cXz=(桋XH@#`mr-qP_?SG%]@o.Dpb}r]zbϑ44*"mNlB @V$9zk=H׈øŷ1&42 NDә| `K]@ٸB1+f=;Fj d&]DmHa …" Y<8OET+VIi4zhM}7rw3W~RK\lBMP4.^=  ȓ2qtl;k@[T+^vmwcg5hu]U(-T\sru.fL9֘ ~'F[ol릻 v 5ΜG<|#" ˋċc#0/0Ċp0^qG11ooF8 H..YswS|w <{g Vw\4i"m /.=XGd!!&ߗk {7}amk Ff'z͢Ot3"oqn#A>%9w]+05Wdd I=g:ƦO*Ɋ{lPu]}H> >w'6cϛqsm_ o[dU|!vJ $7C~~ E}, rlKgW.m6SʩbԕNgk+UC> XJ*r5J BRȕq|id%s5bZJ ʃAY3UFNJ/"nيtx ­[U܏gL37sN-#b{\1Ggh3m*x6 +`&Z\Pe=]g5r_;r:4Cm ΛkhȐO.5FNP3Kk<%VJ-+_*b¿p(S8]PkOsW\q-jɀ GRYIw1.Z8#n ȇ?a]3cBXVm6c,1X583Ғ+%}ā|H*E"[ ˊAsҝ_nP5n+1p* HyZ)ł̣%a@za; }GsC;3- C -ZEs"v3}?UgO5Iw87!t1s| 䑝?)5Y1@Xh];v9L;#[T=E}{>"߃nzvYy8o8Ԗ|˂i :)EeK&Qʩ,WΗ ͚bʂz_pbL{ۃ0 GAH~7 LUsp!5r+]NR wvDѠ ]0~Na8c6ۭ2 rݾ aI@[@ZlR^lCܽ+6{;e`MAL=8R1AA(()JRLӔ559"Jzyr0-6$lZz]0ϫK?v1F4I3H:GMU" d!,GBEǕv?)>\4dS& Ef-}xCz3%/Qpk\qdm.a*CX@Npy݅|p;epm^5~^[v)7[٣hp>RĊhsU ?fΛ-pnG*[%yQX?7.s^*|1oI>B5bUzgET}N/\+2{#0f{LgH)]GU?Lzr $I P`㎩O"5y`m KFM 2 ɞ(3YFѱP A 䋝ߦg1LuK\O=D5R.NL 0 B"^7n(jݜ:R|c;n"ֱ-`/lM-Y*A_QG[@@kY`}i릏ɸjܒ~{]E̪}OnFb_p*2l4K Ec$eo>84TӗHVҸHNRFXևTD^Ͱh ҋBɫ6S^@fG(@Qxܚ+IFVB ybx_LeS}ެzNǒ,SUzypX'&ӭ +$r+,H,\/ Q@(88;2'[|e_;bɰac1qT]|;%&hЛ2v@#@KE{ܦto/Y<6;|@kc|ͨNTև꠩eh?q]3=|pmx4@(K0P5]][(4[0UWf∾ܘX= uYH{ѪǍOc}xoŪ<ʝ ~-J4w9u, !jzM[,u C5:Ŵ62x_QfrY8;g([f7jGƊ\ItԆe(OD (woCvV3Fzy $wh >$U!%h#m{J[=?A?QˇzP ?-rT{&8ŒGA+hE@;oTl3P6hO;}%_|KSTfH\Baa>2lŌ /^0`̏ D!J5 A'pPA5\Yq8Li)`~Ψ Cn)#3b{&2'zYE8g3~Hi=gM ^E.6g6c?%cXvvEN>YUBl8x(P($0P ĀtV_}q(2F:`١ 4ybr*OotA̺!1;Hf&:T+dވ$7j`*R)Ȧ+C@L$&p_3#JiYRdr>^pР? 1*1У:'*I0GŃ *6bE~*T>~57qٞ‰~7|ԇkPX \ H@KV.b0b1Dvip_¯g2Np3rj~גGm@ޞvlV^DNB.<%Wp =>roS l џNl\ ?a7{?؃-k^6(4rLS(xc{sO^/~: Kb[l)L;SAVWkI80~/T Vg:3-Y=1\pPG¾50=/Em?g?f= ҈S4*,h;i  "&m_k=ف2 o[- f`cee4{0}iTĸcHSk).0NHOFHe" vBUڟ"уȏTDʋ:ɇIGW%+^ScfƓ򡳦O ϙ&B$r0K1TxtTm]o Ezk^ 1%{5dNJ $JaܢBHw`1/P9P::DYf_>#Srii}`+^J`ŊUdcIBi.N,A1aV6 Ed;6ߙO<9t SJn{4 ɉ*W3|*Lt5lŕM6dݲ8$;+т K^ZZ@LBi2*nqlU`Jؒ`^ya`2̙2VѠlRe[gyOq5ߐn3;G" N$,j`ڜ"a`(p8 n.:gE=!z@ā|^ꐒ nJ=IhаL@[J9mx:Iڽm 9>d(4ZG.zH>QT b>l+-Z.- k^}]&ԼETtJ۝1RʭYeb~2l\p2?jF("ï7aNEVa9gkBdr#lo)?Vn5U^L.=O'}(R<esCrc߻.O5>P{ LMor  &x#Ţ$N5x>Ehūqp.#! W;\UT`nfVt>\\A`X=~녽4#*޵mNZMqG%ݾG?m̃էh@nB YDvoC)rsq^ a.+ y1WqPh6<SS㦥6 &%@ee7 d&A"P?%kQ+vj*pln+6kM)tVHփF񣻱0_+Ą6,A޵n6+oph#1״e} 77{r( 5Xʙ ڋ2EFc6̙I LI58j5j؁"*TUtc8swlW7G:6uOAM)Xi'U(ejrΓ_>u݄QV/}7>Io¾R\hݿJ(K"Xhr/9B6գl͵|mQuanY kg$'pҐtq'6-:'-΋?;ѭU}DZQ_/ j°tL~;~5G P)'ӫLvEMvؿ|VY|)se?HžCJO!`-"V /ςoTo71S;˭D*=3^Ƣ`V #Z=aPrGR+b}1.JȾ?xo$T 佽t([MS;=Jӹ nFx*ecoz=o$t@pki:"YEDm2׻t p7B!xOS#+,ꏁ)WH:3` 9kԠ k(ATE }+3k1N ̍x,VO8u宣݆7!QC~xbe =Ԑ"I|'',~'YiT(gE¥Ь#n%2%fpMw{q09~mH!i?1PߢB{10ԑ_\C#qh9(}Dqa:: -fR؆'+f`'>[9"Sr*KZ#QE0ZXD'z<*1VȖZQk^4Y}OĔw{ouVQ/vWGF^W^mQ0qV v+.2VdJP*u/k| ;FpEC`6 =Q҈R6e9.Qj(Ec3.\ 3T0E+z4"f巜1bHj e Z(C0`0Ʊbf9M-e\/…-N2l8mg깚~-򩻐SZ.CRe<#5AIX,~>|9bc> hq5-PJ,G }r6W._I%x]6*0M~<5qƶۗ>0sEbB[Z+ZANWTQ(X߁cmO'9eU {)7TpY^c͏=&Yd:٩S^y'hA(;i eUq'n5 uwګiiOHҷr>╆[c\ +l@1nQMo.7]_rAyzЬO{NfU&%1aSt%9t'2i 7|w3ͮi+h۳js{fNo^y 71˶/g`_( lx g{{w o04 \`y>-:|[p>}09td﷾|{M뵷wvKnʷN{nϟJHPHT%QH#2ݴtt;˻[8[l^\9qٹàνk]t(3e6Rl eTZ%fcjVK3@mUMU jf`%Tii˰wgc;gKGv9ٻtחӗMͧlt4c븻kv嫦w8/{z^i˽wf؝ ;aaG{}7{[N4w=l.s']kݹٝ z圵vFwͮNWsv[flnk:{y-=^fܭU=yuֵ뛛v\ٻw6v9krҸnmC ùF㓮NcpQg5;]ǥ=˽uΩܭӮvۻmsk\\ηX;v{yuEٹNk.]vs]mٹ͹vmvl3]sܯ^{<ͧZ]Yۤr\kr9gmvku9w7n7g&g-tms3wn9V;<۳j!ݮtu&C9 rwK{GUuͮf7g;Nj-nNv:\tû9s˧;MN5J ɉd4hdɦhL14&LM0FL M0`L`ɣM50aA*R LLi &Aiih4SM4hi@ A`#@h`0M0Ɉ14b@ih$4ɑi虨70MFih& C2i #&H14dL410L 2bid`L& LME=PII2h2a hL)6pb*Mh[&Γ-SIìY!{]B&6 >j,v)`)@!B@!!@!@@!!!@!@!@!@@!!@!@!!!@@@!@B!@!!!@!!@!@@!@!@!@@!@!!!@@!@!!@@@@!@B@!!!BB!@!@!!@!!B!!B@B!@!@!@B!!!@!B@@!!@!!!!!@@!!@!@@!!@!!@@B@!BB@!!@!B@!@!@!!@!@!!@@!!@@!!!@@!@!@B!!@B!!@!!B@BB! BBB B  B BBBBB   B  B B B   BBBB !B !BBBB! B!   B BB     B     B  BB  B !!B   BB !  I*YATClPGPGeUPGPGzPF"? !>>3H{IX:l'e/^OD`mM$]d:u[Gdo{fEYO.Vy[Gjݡ6CKoXI>MKa䰲 O qNP^]WH?9"a߸v>zl/eAJ)|idGSd(t_qqpץQ4vYߩg|_PGePGD{Cd ~Cg]6<ד Cc4;x)ٯ,q]W&D{]G:$`c= To5KfKzWA|fC w y̭}U - ݘeM[pk3 Vo^׏Z?瀥7MDyk2kEz.ñҟ'5ӽ?bCD|MFj<ӕܡ^D!#c*S/N3)=|5)$\>6fy6h)s*<5@7TP,~^y&|}-d(Y,e Y8x+U)qz0ijp%_IZ|XS:ͽn+*!F;/GoZZj2 堦̠C/wK=j=JD$ 7~I]=rUe_24f;ԦUO' CuqdkObH8N5}KGj@oNw,82=|wpd>/W@":l< $"1rU<>hGb9 ds'h+ayqKA1˜Z[x|g{h 2ojr?}kE[Z`a~&WcW?jh>kGd+(rE/+L@}U' u B+#bVd_O/&G!i_!ɪeUF -{Д_; t(f֬T\BrZh(__On$x7lw.-y{–ֿ2$l6!cbgr.zgIwrȇ1&<ׇjQPĖd 뺠r#3z,(5P3'|/5`)wxWUeS)5F"IDYU+Fe>>h(c\-|YdJ9 lIKk;9Z"9.&"7]) BW9;x\ozSyxI' 2?CDT{[UYQMUgAnyHgzer;_Frs#0s?K]_UE"ZR$wCWcɏB ks .Ƈ(-== >?SZn¿D*sJ\ g 1>)3o$KYguGm$R;x~U_I5vB6;̡<0%zvS$X@Byߛ}=ŚK_~im1 3k L^βa7m̛8c %Tu?oɻ\*)E4i۠9 U)iY'qm׋aUFSbAosmzl]w*o|gjnS 3ġ42~&Ů 4KWm\C?UߥE{"o ca9- ء3. g> >oz{|Mzu_+:92~ϼר+-RN+ۣoX~SwmI"ϭŷ%9FZbn>df|CT/ P>2>'~ ݡ!ĉ:p(5N0z _Hpyp?H( rg*X~Tq ۉGǿL0c{;LA&=+-$oj|~@-k.KeQ} NrKb~rgۖDrA.d3VW=c/|ՒsƉvRicX:ov\HO{5>_ !jsve9^xZ_3Zb-Q@ Lr4{Q,#Ƈ Y/hWS${l̡ׅYtxN0ѽOQ5?թf Ps8evٙuO'8i k[q_~(|bNO1r>" J EVm+SyHYkLvt^( ob}p\ o:be2uWBNG"3'T|g"i:n"[I5D=9S:烷/oFx¥줜=)TO{cC;dqW+^RD;}L6X:*Ml=_(5F!<,ڮW.( N'ou 4;wO2g+dÁЎVxw]6g1JggP"$t+7d/ ?\,(E!B0ᩚFo=X[s,(wa P*"['xT¯ L??mv7?֨VhQ:~*~1VW3܊Q}#V+W~a=r|{;nWb RZoF/sl+gm~_y!呱]I:mkjР' %_P-4N昚 ; ?Ai!)URVNJ:7X)zEQ^O{ β!?P!_+mN)<w'T)- nLcU12P6~Dȥ1W`SD$mȄBOr˲~"w YW)]#63j"*38=כZpYsf=/KzoYSD*Q~ ?JHj300b&vMJ8}ϖcku?1Ɲ/wTi~xFݴHvTiv wd=eEeNwi=Nw/Xפ l Lt8~ЈX܏xB7˃7]}^Nݛ{\Faݻ>Ѯ+,=ep0Ȱհ$֠N+ pq'߫ߟG&|O7T'4![_վ#6p6 9,FJb0譊-ߠӑlw*8{$2|L%|`7gUe5M{NWn@H޾M(I*Im|UTr+UK_b}fc4^y2.wl"|Q_9Aյ=w'r3~vg)v7DuʥPpZ rĹxG L.^;Zx:cGu"1g>u >aGhjYw4M\C?ü!R˵GNH%yTQ3Ң[pX4G~(T]4,8~yf#Tw6:6JG'C\ޘ0' is[]6d< ܶJ1n!y-#tCkT\M>WS=}5\j9l U;Qm-dK˲shQ>,C9fd9.5䌁qW',w+xlH`^܊7QPVMTĪqKžAGȭ,J42k~](鈡"l-ǎ\G@vQo_Ff2g}j;s>4$I%[&@OϤƜ;3 P;c[\ik"Y.mgGz^ ;|MaogASx?5eٴOњ@Zz c &+[XK%2{WsnlzB)8^ !Ę5tuC%}F xAFw.0n_-&/}0!5|IKJKib 3b8r=*Є8: xjT.G h*!X*JUTIK%ӹAe)R uzoG>NG][c.ܜ9VPc1ghlvuE 7(bC>bwwy@VnL}E'"8h\uAwCRLfˎ]~e빊A{`}*ԅC Od2EӞqo0?xL3 CA`eb}h>m\n5kR:a\@\u&irS],5A[@=yp \PW:3=ғ}=[즱ҽ CpD5/HзQ+0*j[FqLFu`=QEn[PU4AJnkóD-H739hSӃՇ@t4yCv$D?=tGwV {/iGwYVJ'?w C:Dž*A^^W>6f.7I5Y'g -A]z|VqANO!k?I1tgճg*Kn7|*^눣 x.=?ΌxI/-/ d+R'xv9m'O%ri*` j,^W[_s0RqOӼ{@^N(s*7a- 74̈́]1bmೋ'f>F%5A]Z϶Hc9fftYVx^.P5Νʔ~ktIDOC%Ag(5]|ᑦ'M)pǽF 遆SyiCgLv8t;J{O ul9MڟCsG>P}y]̫n&6`.:8 . -Ļ2ɯKqPNݣF0ݣLY <sE+.kPd~ ;Kz+eAU|/^#2C#s~ ʌ&%b/p}7~mf ^Ka&թ:N+!$cQ*=NcZס/!LWqhAN7sh9Tof/0}-(9R,D8짾"Fᦊl(ѫp_Lk'Xyz&kCjL5{F/f\qyo嚬ҰgCބwoC JIdBu⼻ߗ͠]wiOfnưѰ^ MwTT;$ڂjQ%D7*5XT!UM)QTd#{ݤU m(,kj;_1 23v]VAnoGq֒8tAD%G ooر}/^x},]o;p{=E,Vy =' Un.Yz^ˮlHTJ>יYyԥgQ%ԋbTn'H#Ń~@|LW ݳť "?8vP|M F 鱎N>= >Sz/x)v5DYkJM,},9ɝ1XF.,XlѝkwXh{r(n@tmx}&~2kVoa;Eb^z?i9FW|+=?y?cOM]c`ѾT~J08G",:gSȡ@w M[ǵХͰi})i\Ap4Gڷ̭c%D ۡi/'Dr3\Ɵ4ޫg``"K)Æ$a$BǯƮx72Rl x>Kza9!;B?+Y):ϣa_:$jh_kBQ"hI?`"FW/6D7Rbw=}+;֝U5P}_3K^yyOle{9"tA`$Eٱ%|Tݷi,;'QmYAv t{ͺ5IY]} TI/um"K*f܏ FLrj&\w+S@ =w$kH:%@U %|Ym#:"Q-*xRdQH*{sw_+>u%ԫ}jFrM,$ v>ˑ%CG>( 1vU Jtn8آ櫔L+t>*R$+R$2ܬSF=TzP+Yj0ml`k Ooׅ6Fz,XEKůUaB6H@s_$&5k )]Bȱ˘ B6N*n"C$俬 a/x~7H,4e!QW;Y2LUw|Rݵao{|~aLUMJn܋\Ӝ֩b>:ÎwP6hmXwoߏ j8j}. }t6cFZ,mT}xaZF=.p4GOwYh>L.Lx""x[h%NJ@,l:gn4#Jyh֧l翜1MI7k$*nI"kɯϜPȓ!H >աNtZu!dks#Cϫ(iΚT̠Fッ~M> Qyrb_7cLt/w9KgB;" ~t#nNg1kѭ-s:~3r&)N')u3=&WgW{g9.=8\9|B LDUc+?usqit"1(/>$ B.BR}{]e@U⠏PFl( #N|TPx tǂ}?nO{XR(u#!sqyGd[n9D.VA\~T~هRpz6p2&#!)`6vDd^ 'ӯɤU?EuaFI8kZP. a[: ۢ9۞&$99䩿Xg~GgϴP腾$w?׵D˗:((xECt} { eC<>W+͈gb=.)"kv}6nB?#!k>EsG|¼͋+_SI_B]>~e^0m?07N]Jq=(eyB<{h*7 6RvO;z֢F줤U҉!GֳԔt:%G (5#W LCcz I25r{#?ە5耮͎I?O*G|č ys(=ʧDhh|*:2y۟2Y]MŒe9 i+2.2"Dݛc'O!Ws,v*)XލefG?mb,7'}EvRq䳡xX0%eqp.A-Sc-Iʼn}LD:Es(6gchO?.QXp>Tޞ^}JmUO~ ZzfU_-H?]lUU?,J՟ڊb߉L5,?%S3jJu%{eW?G*'˼c-%-ԝS|j+O$#uTsAu*W?hYat9ok5 ӱ9Y?J{R#,+=l< "?P6x#AC2iI[`~`UL m|#kOԻϵ ,8{; 51= S.SDG [dӥ8&^ڣ;7q#ɪW|mK"k>?EsaR*c^ t<]r_s`ؐؑj1FEWB*Gع/sxB&qi`ܱʝGaM,-nE/Mp4S]}oPY`Ŀ`xAee7XTub,J_ h6W;A{bnvo99׮Ic$g9Ş0pnQcDc5#'l!;he&u'2Xw{-mZojOZROXP z'%Spu{2)z(ݾN/ΕŽU0(:Dsq뮃8r%5<^P_Kt ) UnbgcNs/G<mR?]Ke"5DZ>(w猻!W^>V^^WY7$+V7||يΤ,C_OMpӓj~Wֽ_;o!|:~=jھDdTzMaCv0~ިB_ }ą;hd3 gTV*p`cҹyſ&uV3YJ_/1eg*_9^^$VYEe1zG[^8uUīhniีGNKw_Z)a]\@*͕r}Tѭ9-¯jW#vŗ}\k]V'E]$g dASPp]{CGj.(&Xyi/}8,rBw6Qn}GlzF_[F?1t"@A@&B5Za[鉇C.A ֌wcз" Ձ3m<F]󝭻!8C 5|3K Y6h^

j.mx5n6v ͍1PcS:]ʷ3=U]w^˞hoS_Wy-44E ‰yFev^dI/ǚκ7ݑ{q|Ca`R]F[9VIbЍ U?/Y zIAzCߨ|#`L0KD{qYrh:-G`}k ;]OyS,zLnLV*{CLgnzS $9z.k#!]IsI5UIvs{ XZ3)g ==v+2 ^w<? _[O+W'%եMKooE/N^Edn^1%QX?TrgQddd@:,苸ռtQ042pqhh.vWjT,i-?:C3Ʊyl;~|EvHG,OouDX^vEm2ng1$P=rFbuf?cs}tB:W%>ިbU>#DZJ?WfTHSgZX]']y\љRpĵWהozL}ґK܉uD F⪃i6^^ٕS*%^4˓rw6BYn^crWCCCxJϰH^?a;>O9cy\yT]o9FC>X49ñEa~u<L~m8y`~3?;ێGP˞@*A!nR )@ /;xQ\^-Ro[촵 2s50>~1B(ṡ?Sܧ!!z &%O\m6**VcW+o<0.CX*C1{MInoL-˗YZAv8?=%,Zn%ob}ojTP/K27λnDnUz͒nO΀3׫c a]fz´8tbR^ 8W6yUO'B{Izx]UD.s>Ӆl?`{gd7 mM6d',B3"ז=uBmb/iᦞ0MfgW0}Ca]5uFl,/B\28b \Hg&v%bϓt ?烡$]|Hk'W7W~tO8ˆg%=Dt[[9骅ݖHE),\wŔ'Ư4Ku5cBeL3Oagf08Z>B}e2خtiᡜ!9| Obsyi+٘sN3Һ~cxݥ}uJw) G8ꀪ|q;7Q__]Mo/EL>LoNbe(FyLKK❫ ƒLf75g5M,/e#!+PBLrU M/zm%<\C=4Cvؒ5VL^&y~fTjtb*ƶc]&wWIhYAw=2!bN2cO4fh}zʧ)ުyR:-P"& g ʼ}R&SKfƲȸe*P Iɍ[}R5C@ 舗ٻ65bTJ,X5r͑{iiYP3-JLcӘKⵏC,IBj*Qجؙ,ƘfU];juM.S -ZU-bufap=NcDk3k[ f]*BK!&"*MiՏFNCrq9ڪU5(|OQ+JV"Pݶ~'.d|xU(H!bu*+Lg5bk3#^4N4yn;4jl.aS˦TTjeډVSjy*S$ Me+BVԦW m W."fa59M[fA6i]3'7%JS,R:fZ[ENTE+0o ƌ͑MUDe iZe/efZ&- dTd!j;`dE`pʞZ*PBeI&YSAmxmtα%EE3`*LZ(c&TiirZTRƸ6MMjL[lS%&ZBeS(LBulRˡ{|hxhCYsyUJ֤ MfNI /q63TT(m$JЭXRQ_*[Ljaf2]+;]-zP-KQƇ m[-lљM*e[6!r]n㲄RԩR+c3-UGK͝jgŪbMPNi$T5KPJ-QhjkhVNԲl[3wj*!d>(/5 R+V'HPCLD(vr\|O2|# E-njPRTJd4%u=\[Dnڹy4Sc"b*X kr+^bfiۓ%L弧U [+!ZCU)P *TZuunjNTYSjW3v&sFm7jvܻN; +N(Tg2ޛheM=kblOU[T+T R2 SF0s\Fc;\SMELD&BTjhSmf.eԜ)TXΥcbٝLYT+RJeLN5LxYIڌO>ISP/+2ne) D'̰YS4DnM]hg.$-%,V*Nb %h5 Փ7L&ōxD\RbP: UFee2|藧R^^L\eSC-|ZyS+XRj^ieKڈknV<2|h665SKCکP:BR\43 6nlӻȫ#[ >PT&qj{tRT!C]>=;STl*k4^ɶqnЮju&m5ǧStJӣ&J&!eݳMdco5|3r9ULWWL>7e`k!j'>L/OAW䷢/I:h^s'zW9'nK^WQqߺU;d(~A%!Шs vO,Hɝ42d*)JOǖL9pvC ̦Ate"wMlrm7#S2e(VaСɹAlqŐ*YX(RC2t*q)f !B'fLB=ԺT (#(*PPNaBA" E]P"@QDO\5==r7'PGpT .VAƔVYDPde@UAT$PUZczyc\or*ePA-RR1?9 A /c G,Aʠ*(#MH, BF(#gzHI r=o "N $$H((ŸE"A#(#(#j ֙r7 Cz^$B)"D|Q0& !$a`4g#RD3r(CYh.i B#I   FF#F'"’@ƣq`XPGT*U$ݶ䳟A ,2ցZZ.%W2BPbb$$֣D # $> 0nTQ$ EYQQu"]@ W Xt) /xAV@VD`P$TpD @ȀZ*߂qH D!m FDEd@ 0"~ `A *$ H(T0"AˆB H AŠY@$FE@Y (P *T ƀ7E$ A/I!Y$Q%C` TA j 1] 8Qd EG D A "(B(2 )Am2`Q[VE$,B@$QadFp"C.4 b]È AQ^ h@h"A!j "67@B.LL;({0D BE q 7P62?,DH23`gKւR j?]-$!PAǀTux20 @7f%0rz<~كlLCI&M~εL1 | AIEFAI$$D,֋1C v$";x?)u;%$*rg1a|^dejV GQ^1TTيHID(nEHӵD(Dn*HH,h5$F uԒM0$!$BB!JH (%FĊHIH7*H4D*E7T(b> f@=XXd bؔHAڢR"@ $I&Y,! F=Mt TY(38# "FPD7[*IE2Đ $$$FH4!):F~T$?АD|@>,iFBH媄Eʈ=2%  ZQAH "! HȡH) BbBcj ( J޼$!2)!M# !"H |@}T * B ! !s@ƒHE 3TK%XiXIFE8QD }]S}4:p^0.HBHA8@$a$BI4IHxM '2g w,n"X Bg@@a?UQ!HaHqВ2ѐy.ݠ,@= 2!!&XE @v=+mHs!' BV-LF,H`Z7 ꋴ,Y=W0$M)!!APaװ0S׉ xz5P#b+ࡂ߼H*^"MV00 F I#ĒAPpP0TpVc$Z?JJTB_{<0 C G L 1((0;%f߱ E11!BHċ60/D  "liI$h!L6!eiɗqUP ?VPI BĐ'(PSذn'8!!9HX$b9) $YABI$Edd I dFEF@ @BAI dd@Ddd$$dFI PdI@dHA  B@T$Y$ $IE$$AI@$$Qd $E$P$E E$BA$Td@YI AdP$A$Y$$Q Ed$ARD$dE$A$DBA$Y$$BD VAF@Y E$TdVDRD $Dd $D@AF@$dA$IU@ $Dd$UBE HEdA$D$$$DFE@   d$VAY$I@$HDAv6|ܩV5B*^m*@$= BK)tR?2TPȂ U3A!ez^ɶ޺P=S0h坐0I`0GrzVy '1WSSC;TL? 0t?zs^k}?" Hykȼ?|el; 돫@I_ک LI&,31 #5JFT.Up@!F5LzG $'s|._kpzF$ EX"晍*zDMVҹZ^1j͚\  |Xjuj:r;BP[+QGz( uUupV^-;ޭ70ź_;}sHʣ1P@$1s" 4pՊ B6b4K)y Q=RqGT4kYRoHYC{qJ@$N &p q0WޤcVN!m|e?f73 /-c=s~K=1sUvHi[n<|Ҿ1&vX}Tu4{n_Or#!sA8__щ;_F9B.1Pbr{_Zc^¼^ RVI[jf\zm"ʷ{)^nj^[+[*[J!SSH_^1P2Z+;6I_rշ׊.jn.)gpV }p듁&I6WZWWxjrK?ᎿV-iϰa<)P-ŝSblQα1!ܝ(~):&,ˇG[XrQ& ˚ 0G~??\>ǚ8s&,H} yy+%65R6[2} 6 %i$t={g=g.88R nԊ |Jy_Kݕlʺ.'z$9yvK426`uʭXa=/Re(u#)CRi2#=8Zx)ԙ|U}&.Qeȥ/( $`c5u|}K]*\HcPgF3Ƽ%h(cMY_yVw^A|&ɕdf34 EVw5ixHI5 Nrߡ?Rz>S13M=9)uʳPqٲ~v (ZOUu m }F«m=%RQ;nÿKNxid]*?G{{ssUUn;i;fTzZ.{}ӽǿOMt>ϖxx<02+=To5U^:99UgJi:6kwpfd[^F]E=uMK[KE5 &rebR﵁}mwVut^^U$ !=/x{L8(:-'TٰoEzO%|jTC6O;UuK$=_K$ B cOB,Or ^$G篎7qvȉV>RƕrG98~aNSާqlX/S%mO^3Eȑj1=5ޮ7TjɬJPXF,^YhҥOy6QL|zb#B&Bޔ}#% e x"'tdXkhH+ڬChSuPcʷ%w+6ƮVWNEioNbQ;1% ZL<t_j#\Ab@\q82 ʷ1Z:BJgUbi#Q9@ F-DlppMǦ_^򸄄 X6 |3H8#>[vKlr}os *: rݗ.kw8jd <๩,Xդ \ZBXFaKn?뢄{ݺHY6Q͍^̊?z[mC6Z;9um9Tԝ3/=933+++'=999999??3?kUWTHrZJ-1M:졕i/ק<1du +nzK'Dxca:$KpїiY>Q)JWO56|p69E 0lF1[G3 e|obG<6gU}KI$[ϯ8XF-!4PFบ].Ni8Egoy%󿊷鰜!=-ʍ!h1wrQB + 0bfDA6\3L/vS5+Au8Sz(9,;.T@`@}g6TNrE{x˨:iP?YyHPAs?[|8'mx`zL1]arlI;/PI#=wCTW>-JEѵ<ߪ#ӧ1㖩pJ*f(7pn+Fm10ķ̼O}'S\ިb8>>oFQ_F⬲=U[bO&-urڥ|Fɵ5T7@ި2t[y UsJ=aGI RzU꺚M*6Ss|n–;t0f!/fM ѝp̖WoCrr.:8 @$Ä|($P'?Of<-P7` s*! lX()5KԞ^$/kUĬp@m}YI \R+,|8Eio |`27qۇ #j~j \<.(o `eih. x?|+ȳ UM6Rw؁oPETNY{QV 1{з9'3B ~5NlCNF jYMޓ) BUYMW,^.Lb8Jf:tçNr妚Џ\(G@U1"19{D I5H '0҅QuyLJ@ ]{"2J||=(fc792p$ ˴4VrAħ_N=6ZzPUhSTji(̜A7DŽr q9}{_<܄eM153]BGuRY~bq3WE &S\WcoP)U DViԊܧR #!"b*fZ!l~\QWs__ᓻ| *B "/̙`DL:w1hp"'VzR;-M\g⢩L^q1z)wal`py~w-&ĽZ{%MପB-n PV0R;=0F~!َ`(zY-F{rm~)Hq J]| e1P3T($O8E2:G;b2Ge0sٖv9Cd.$?C{+PКa3G1hcϫm"mUMS4%oQߟYqc!GګDEr_x}:_B>n(~P9Uט$/GٗPrX{??ߟ\ig:,(/¢;q-mYs*Ž߯ޒߣCoxpIo[ltjRs*[Rf2*ZeʙS{P.cEꗣW69W9k~}q| |  YCDz4PBYelےb'v3ЛR-1S__&E'pٝ)ڃAJS}GCaGS۰Sڣ7}zpYvFv jO[jmߋ_*BAJO 6VSEGR۶[~M>~ !(oiMpTSzek.*.hL4/idmm PGp^z<{t_ PA͘@|Sk8Da|ڏ{0OԽb\?ZX~Xh ^Vѹ)%bhxbh(rb c!PZؖ .ɖ#0<<mfl<$n9<斦zlB1TtFW-`E=ro:V p)$3S dk$PDޓcX/Gݨ<,Pj=ugeSr˙ gUߑ[*Em׫y~x\QIؽ[qT.1Ic\0o[U-Q PmĊȹ l7MwW3K%Rї@߰hs8#-͖}2nIz (^]/pS%kecy) (!E&~t_(3is9-r-s 0︐!P*:eTSFK˪zK\K& 4 dM 0a JRZA:;aNdjf'H/MIB`AOpGN<#mЙs9qH]: -\9PTja0kYuQf0mp=9#|"IxK ؘiŵ2⸪63 {m?oB-*ĬbH% &j*]uzyɷsa8%m[|]δ,DRmfIvvR<<:=Xr(Oާ+ *U) 6Ai)4-$$@= JfCHO]rPԸLdXænLSOeb9o6c}`KL~͝nP"8 MYK?j/E_oҙ-~%561P ߕrHv8m@_w샀xO&o=B}`b ǩoCǽ!jkٌ¿wT<򀌾H=(mV)QQmW)Qo56SBM"♋OBuZ+bߧ [A4>C%oo28 qI-C͡_ R/E|(o?0 űH^WRӛYj>kYD# K[%0ſk 8OYiYZ#WW^*=wPĊpHx!#kNcpx.ݗ_ts0ߏEWU>pOuGCpޏVZ}"dx&:\.U#,,^% 0 O{t$4ѲaHTǓ`PcXl0a?:7Rx5o[h}G }ȷg\RJrsvdTwP+@|i/x(NaA=wWqlW /jP>0L9zZ5|!%1歷 5['jgWҦ\f{& Z `_j57|(!URq6&ȗ݊"0+/Ͻ%%:lG_wQ;̓)QFRf7_et, aa}`ˆe^sYvT8 0&qXq܇^e}v$ l9p㠩g,[)f!7۲vߙ>wP4>?s<}' K=),}4:!C@y7Em>2L; [O^C&ppQOMᚘY5!@l0AL|;/CݿospPU#(#D?\P"cB>zi8L2O&ćJc"F0$rrZ@z+u%^KA-*MuflL9 dNUn:|,b*!c!\)*DS6֝aav3`T7f; TnkB3TK.=:U|YgSbIJ1`B wHuUSo/)'wAE>ޗWE!~b/Jbh_D\aa(2b(J؝KK+dMu,W8"wXExjoY>aH6_ܼ&KY w\ВQ 7D,=bܬߛt%.>sNXS28,{ȹ!؎dY+7SJz*I $ܪv_wO&}BF !,\bY4~VȔvX7g6\m>nJCSD៨Hsz廱yܬy: za*qꕋW:]z\ߒ{6oP;&@oT^ cTR3z0"n-|V(үN_Cٶz6٫ٮaw HmWy ֖}E1A[lk>'w-?g{7s+_y33u+xVLKtXXE ٫ C߰UszŽdz .ՑaV1`4uW%MwH'6y+)7Sq+͕yң7ѩ&:.:QCk;&PS 8"sHb A_5݅ |N[@!Ǡ;ZoA,4"3f(S2f)+ 3h3`Dt3y)V՞ ZMG܂q/6 ʚZp ȶܕbPJ~ S帄3YR2 !",}<;YyOMN납haFg]h|$WMET)AY $Wn4|Kk+<< X$<ݝO$1,ƈ-2%؟dNתًge_f~eŎ1p~E}inpjIS}]CiqH:=c>nl%46f7{{_ O.kh79~o,$S P({p* YŽrU? ƔPtLKK0uit3֖( 8YҼ`9**Ǡv9a?Y=P#CL$3ꆸƃ;0#NW )@`Qו{IS@TS'_mml?[W^~P)L~`\l䰖şը;,l˪wF}5nTh/ou^+@#ĥiFlQ0f=A5If!S*LTP~IP+YOjOu| nPŢ70=i#%3a3*j82U,kC_H:/\=Y_f f+`u5mN` Xtvi mO4շH?v[~Nbv$AqgkzIC[Q_5FWoئҕQNo[aA7F| C'^\꣊ `[˃?q.v8]DXYcD%+dȜAfe>c=rNgyDqza#>S./1 щ/ [ ˆ=sWW7JT/op '_xFL/LfΟFHSH& >Wq(f=ʕQs.5`0}cQ_xeW;5cĴx6R: G.rëݕW $ i?)Cvn.T&`Dz͏b=`Cؑ.->lK$xq @X\/Zf0vSoUBG}t Ac0][:[MNw#ϨYkNy?IsOSwGlK3+':x$aD"٫>O{ W#GZ\Ew&9jfGbjT˟O."lqQ2GY}"*8EXAP8.$($DQ{߭r2 RDY>j-4do_6%Jw[Tm\i#Ihⱂ>u '؛pTW{:\򶃴G -!KXe2a f4fɚFc6|\ Ns93gESG[Ze t7IFj˜/JZzV]g]`O_q\"Nq Y9 V]\;T@zOPfGSMin_cu z.ʦO_cmJrnuٽqnAp»3̉ܔy.)7>HJJBR( |$N]Ɯ!(h%]S%PXۯB|+s}Ǎ gZdr!Wɻ׉Sdwq(U3ҼL/Ze=[XNh_}F) <#1 <:<.y@0^o=,#=dxm@Vw ua`,mR9ne'VoS#v"scXd^M^2^b"j0^:5>n*2_vų%(rI#b]P-iPGiC5CPO=A ^hCyܵ8lJB@P(u}e1(ỷŽ˾#1ÉpgLpl#tI^Ir"Cypna'ZŸ*`ǫ~7ٿ9p2xs/<;WĔMAI\k,@^=Yn|h ly?Q̖eb?" rf(&T"U8-ci/ؘC X(^/x/7vۺ; kS\D9R*E.%a/eŃغppNtVmĪjPj+ `m/v6d`'"w`T=UtsK=!%OJXQN ! "ū)j)5K&GyLńV5_? ´.*թ "n~24\]Tm$'tH+_hArF#`n$o[U&`U'n]ic"K1oF:@=|oS*@O҇9{ȣTn6/~zū묢}h 1P,]< dN莮l=r̉$HΈp{cp#db4;gJBV{sI\ʝݎr!+AB񋤕 ~ڏOK/KzD6f-^a%Oxb]`08xOd:^kmsC&eƒz Sg9Ã`r .LƂvN(JPf~Eݤ d?9x5 b7gw+ϦJur2@Dl# !VY*C&xŶ+\\,\`gdGߕ Għ=e2x an1$RY${(*@j$n>񊵞'ak @e[uCpte޷EBC~`L2y> E:*z`i/L#?}bC}V-]Wu0: Iu R]5) 7(H*]\~iMUbnTe"5k:L 3aBQ*ҸVhwexa`ߏPX\ɘCq;?hVnFJޏwٲE߅C+١FA =V /yBdL8K.[lơ؆%TX%|]u*rCZɯ)Ml~."! %"`,bzɭQquB*'0K&S#IBL93HVe_ux>ET]+Z -ͷcLY켜(HԆ++sj=6)ǦX)N1]Obx Ys-X xpc=:N܎ ~s2Bh՞sMz!igLsjN(:\M[lG Lj} A)tIvJ R|YVS;#5ŤvG?G싩=C0,y7 挪IŮ쯶6U["Fm,ڏb7ВIcāp[( oP#X1j\̑~Fhd0c>hL ή#F=4͊b3 hCȦG}ޗų4+RW~uNUϒ݊U-SX5Z=fj2Zy'槎gTs;HjN6MCN4LhO*DolTاgG֩ѰaYD9Ixx ˗)i_BKN}a4̟"aXm(xpPKа˝s DCw1G !~wMWs~{ߥI(O;}~G A=ư ժ0RR۷[ MNc8,wbV"5ZorUrNF*$Tc'r8|O'h(o|Td`Yþ("t)kKlm`28?aRy&2nW u)L0;Vk>*JƔ[Jƽ%OዉW/eŊyB-5#lte~%.Wv3yݙM>iδ1R=&<LzW?Džm>E.D V =zhaH;pp 2e˜R/F"*Dzm93p^G_OOws#]}/Xwf|p;,e52:\$w4+(# YPUG Sb?iAиդOHGn4fMH}4hbGO,e̝ ̮Xc 8Tt+CU}#7/%pqWMդ~D}G]ء-1 ؄f##Y<#QqaK{B[ {HH$ Tܹ4IBC5´8{Tjp\-O4}]$=qOw(N+)bܥ8gef-9*|[QUCqz]AO @C ,z[q~ ZzP?4mZ.sQdS8IkDAP}EbA0J ލ6.b|{c;"STtSZ=9a]a9Cnq[HO=RrSZn+swNϒH N.2@i>C_nURb/#@?4#o[+EfjMd7ݎODgFV# XO8RE<W7aN fW"i[Z4 [GVL լW%;R^+ M5Jd) ~- 飊#Jc -NVxòQظ)SA>`ж*'1S mQ@pF| \ÐrZJI5_4UkHwxx2$J҄trE 5[23$X`6aVPxYĴ#fz.uRc?uM9PըGRt6 MP z&oRpڬ*pdl>*X>QH zL3+?ݓ;?f<ڕ:ÄӈΊ^&:4:әPt W8O%s0N}Ve}V^w/vю;0u=:&UWNϻ#.4<ڳ ͯ<"']6P9/u#reQثTXSf5Ru)i i0i8ڷn 8|1p /[0MUYN2tˋWOÃ+C(FZk_.GȢ[R_|AݑUzbEO_L2ƟܟڞpGzwin4:veI;xg >c5c'?&_ʃDl|dؘ=2|I%ռ(__ | :SRjZN(QLL/hxӧ"aɶV$0F@c}PiC[Dp){7l~$ϓ򁽲!KoмTE36xh*hXODnW9O᩶rꋞw3c_=}SZWi ڴ% S#b ѠU6Jݤ{E^ 1 B, vS%\8,ҶTbTJnZjɉ*Rӭq͐r ['RV{}>?qɓ[MJڵ^dHR26h馷)H2𯩬PREqTB}kԟI!p؈+S0r̐yfIK̕"FJdʊPJ`qISU~o脀2ǍԚ{[㒘5Lٴfyt~epPfQ|qdBA hi,ĩyL^$՘]'J{9)L4 5.jPL&`t`&9nּ%^_= ׬L7[zRDZxgIr3E}CyHB G@@LH@MJ B`(HBGΜHGڡ$!!>Q)@!%B00aB@CTPB G%Q0!B0a8*jJ)#!!#d$!!  H#2`2FQ!0@HĄҒMcot]ϱOߥJöש1{ƾk/Y7C ߶;l"2U+Vἅ/nO/{ L­՞Y HvBBEP4bUsݙ|=NsYu O~diPZРVhSG&$\\GLQӥ #=sn_n0"z05,>t+_uᎍNGx%doG?kZ c/E6X$@ fbUbh ,1$dTs"t?hq;4QRyo+y-3R6@M_:TE̋A[%PQc Ltj{N*Ҭq;nD]1Ci1C+K=ˠiԢVwd{fX i$Č5]\,jwf)x$L1ԴfEE0) ?}_x(P5:"pw3JRS!2!Wo_mRGRҿ*|>6J!˙)]X7=*MSn+MIj/9/Xg;)Sں:B>L+"ZVf82`U!# NLr:G!>bMT[7yX LY4Z P AM5 ^T Ué~6=$8^EvEvKȴz_uLge`ˢ:Ԏb/k|2}oBe>bjuGN₢[C:|I'%:9)26)Ƿ(1*සv:L!TåOR1=wS,L dU5=+ؤ֕4c%`HR!+nHiS Uk7Tս_*3Ci]_n\ pqy* $~DG=Vg?acGEqg{A%W8blV,(.e XqYrЎy%MF=^{#~8 d-38LD$JU2иKp2H,ma>إ>Qf(#P劌ތ7?{X@Tjx\,AѼLR*ꐍ"su~.̢ 1=e blwwŝ ̽-}{{/oK2n=倡f4*}pK*vmI0[%XqLjUŔw Yh aKA#u/cDz GhpZ)VvQ/"ܙQF f0'3xu2xҳdecL2Vt3zʁ+V5SS-5TqUn~8 P1J}MfQPMAaձ=&xDO>6 } ;=-}XPJ+TgV!뗑*пm%P)mO&_uUE0vfCLip{=|#*H*E]ʜ!t\Cahp,P1SFhP- 22^DS2Wň^q I=íxVl~>+"g1x˗>|ϻbKuZ X;ϲi_"x ܛd?ehGE_,5ploRMa {,9 .#CO\aN&uLߕN)E(GL(*Xv-u^f#8F Y`?ķLtYf`LPRyAZM%OIV.'|<0O98ԽIgzU-TַefK1Va`b=dJGl#8d0k5 ?A?"궡:v2wp03' { $P4 j %~F/3^Am,y,Ӱ F;M;봮DM>q6?sV Ǣr}:y/ /L#:DQ(Vp9(R&6(()sk9^i֞lXD0y4~Cڔ> `~e"C΁cήiD&I^(m}t91g2X ի̧$0ܷYY}4_ [W}ED&ٴ ]c!N +Gǝ>D3|   O~՝-~ ndE-zƩSw0C"(> pEu؂v*(&AEPsuLGC=9 vY%޲+W2I$_mAa%IH iY/^랡WH+i3YO {4UMԳ ~uH愨d&̧8>J,b+>fcZY]Q,QW n<7m!7.]2)u*Q~H°.7*HuScvCR?/ņSt56/dEVk&~lu~)3YAY-J{_yk|̫wC@-!PWJ,a޷;[uqSҬ/{eۦ{`Qu*8 h-Ǡkf0XnMųA3c/y$ǗۿWiyoո` YoO0V:*nfvsWaJ9.L1 q8}01aH;C XX[nX:&iס62jk|8>yX~k偺Z|X͗31J d ~ tu'>n˖3Rw f056y7;mMT,Ń3 ^9CZ2p_qesJUF9 LUNsSTuš$kXmyL&H3*kr!WT8mRn  =DqUL /fDb>G~  7b=>KTҦƮ8p"5 :p6F=]OfSW߸ ף/T]o\ES)ř\f}pADe|c'.^O, .d by_QHZ|%pJM"}n/)N| Bך܉G=p-F'_D{@bpV9,jK B odI`ڐ.]xnfih S{Mԁw7އbR_qhk1HMƕAI%/>nԗY>+:狀J$n { @ɀ%NXyOrIMÔ ڠ|I ,U;cp,]?PXAϺVX!@T[^eNvG[;B<3tP$܍@\,0;iqh|=bF0g-I(%$U9]#.賢I SI .;^NDp.ª׆Tfƞ]fs/q^޹*,x;e:qh'ykO>6q !EګX(>c<◥\# kuFdXG) %Oe{[H:@?00`ٷȅ"H$(Q;d-8N;@>Ԩ\`0/\O ,D>p Y|u1Cnga1˨fW-o;U?!Zs/ L.d|z*A#|[U45/o ԋ`mw*K9j (ʔPÔpk<˱@bAQvQn$Z.VAUS^E-Wj^]TؑM/X kek1;a [M>oĿy!7cH[ 'sσ9u"*B>vDU9`W RsTGl\f]Kۧ!3=8![yV6.l>S+uJଞSpsROgLhh?7{!F",ЭW$e,d9,|>$`е !ڌV6mfYYZ"W!Ge_Rm)enYSS"ѯթWj58% i*Jʋ/x6M[G蠪#}!-uT Z72jKuOc1]5jEsƙrv'R,:vr- tW2'@z,p3 LXjBUpx N)1/ P?I4ĵġ2 CePHF&̞aה@$Iu(}x~v3Of~(Fwn>X}G:HAQk|isxK[5]l5n* $ùUOMi\Ui6 s\Y)Ӏg2UÃ}<[7s Sy ㄸ;<~OF{ ?X ~}bƮq'~a?ӣ5SGj7~)v_# I)ka MA1*V A/'77pķ*)ɡLɸ3q`̰ |OL7g_KkQ; |mHcjs3&f#qp3cIx.Qwd;a(^KK`3ıA6bN"?̂QN=3mlB c9&xF_YPM 0mў|zd~E݊"9yAxFno@=H~I a3^Tq6h}yoM$?â:Gد G@s@.`:lB8aaw+.0W?< ׭b UGVI_$J[XupWJqE^,:;+TOnB""ގg}\c|WS;O z.9Ӎߘ4Цt%5*LA+|=BP׀{BAn9lYZX&ǽðfOϑj-2-yHɧWtᭋj0>5Aw{fjw J/(+/DӚ m^4HpTu3&qc|6sug'w6Pٰw`1'0} 4M 0 "+cc qV̬8\_SiL%TnFgBUlNEI) lԸq@{vUߊʔ33/I1Vd-)aHDVdyL{h(_ru6ijUU ɮ7#LkyUN޽nj!ZZ{æutU(*UO^P&[SLv"fA^BkI_@F9]%6$UaKf3Xr }#I9HT!YbOL܎~,Ħ#35 1>҂gjzR a&*cUOLBeu/Xlީ[nfFgPMZUȫVjw^&˦|{ivJs Z^,Sj]j/֙MTRE hR".)5jr]rOW*T3(6irb#w,[b%tPӆ#Jʣ/IꥏÉk<;:Td@L!#;/W $ s9QYqK@3h* ]pj*4!pJ*aC  (V*24nKiՠʓ,v@LC]aۑRy*1 RQorStWnf˾o #h0yW1L nr'gpY)-o;1)Z{-JÒF6S[VV?*ի!&B{k=(V2Ui,́vS+]J;қC­QV/yynf.2],'mU (ҢzSGɥRiΗɘVD)LNd2"h2L6"fF)[Qc^öNB7K"ړ{U|mn]lKhdѽZ-A47&,9*wy'We۩zyZV'<=)'V6VNCj#e- ګlL{ڱVY1- uody)Yfħ'8@ ҢQiO&oUMU*s&NըUWKw.9;3*MFjB6ʐ":}>^݅(M*䛺oNKLK<^ƬJY^m̱U{:»yBfBrb>VMnՏD6e6eu%LY\&d'jkzmm[U bxX-4B؃gW7~Wޗ?~U<1񌩯^[fܫ1+:]dp-V܈xs{R++Ї2vk L["ws$]^ {`w fL#L <@zl*0g9v冩EUg. Mk2Zu7pS_'x8Vsg=\~ v홉_&ǎxf 3vɏCǎB& \, uL;[I?6Q\Qr~>]U#rX0G7-r6~|(oLC/c^0?r~,IjúmNyjWxlϿr5<FsnbYưE\A 2Аq~ >2. =:3a_!ó:*l3>d/#h~avzNT+ќVu; XT,A9Gmw reEha]7K8b u,5OחXǁ1 gιʼn͖ =G&c]I\{k٬s&<6^w.װq gɜk1nrTsS`GHp7I :-E ORu`ʥvvYmaEwqXVjYKBg9Ni[-k)Z)k3:PC ד*%;=f뤧DĶ7J~)izRv3ǙNjufdBu/| yT\q:2a .VOkY{P'.dgZ!ӲBg"mqnRW-TW+LИ%vi[O7UY=\!ꩫ uHʐת0c>ODv!hmXK{jG)Btr;]OPYSGNmT*\NB̬Լ.8Ҵ0P+%[r>~alp~6ȸZRyHBJ1̶j]u슏)_ϕrjY/78zeUTqJaO<3MMb'dTIλq8ZvHSlq:Ӯm2KY~ܿM?7TW,Qo9-= &8 钂B16jvjU!C!f\GZ6^K+v̨hũt] K\[^᧭ QM-VuoM S E7s!lä cuT?!BgT1+&xUnL2oV?G=(oeOy>NJV0wVeqvS}HB(]LmwylhU̮+BH6}z]tˬ~xӧI\Vn|vqO=rdک4jdK4 OuL*9"IC_~o,Ss3]CNq{3 mGu1ޣ\;kh٫ISK4 ʜ#]d5xrIƏUQU2 ZC(N9qNҡ}>m?y5.KƽTAS_j c_KBmBs!9bY{"9+ߏڅ؉pUT&Ja4sqPoZR @oFW0HyoͻXƞ՚ޣn@2-TC7TxMGsXv1?f׮P[3…P2|$d ^ufKCb!&کkz% Wߢo+)ʈlu@h3,BZ?38'q[bQٳDס| ]By&돌ov ]Hصd~F7VlM .Sc&3OeR$2OԱ&O4d,zYqȘxO T u]ɕw1W݄|i[IjhuSvcGmj_JfW&픍o]m 2oN-t+~ U취zkP> Ăׄ %H 4wyGL9ݯiO4X4# _|'kuyp˹ںQre:/>ZZ)eGc۰>5zs;6ua{+3&sMEcpu7M'=;8!Yv]qZϒG]y Ey.:^cfCȗBYM4GS9G$(򕋻H8!*8o{PwAQpXհ+ \m#U!Ap =]/#:Һ&ZpMıOUہ&䮿as(aQ-_JȏT̡GJ6˴@Пm{JbN^bzl8UNC9z,ar-MQ%ULz@M0*Y7X <,d5s؊m/*;)ONj]XTM}޳"Ur[˜@ g$yhNpp~C1aKH_ mq?C|7^k^\s͆w1sqě`ׁ-"+WiwH7N75VJ()T#M鄙-ńrrUũy_K//_a%~(%ٙKPY1LX!Cՠ롱5npM-I l .]q6ź0cՆACtxlJkfg=>q5Og±ƠB.xc'ُu0goKꜩ_eeCgp'n10jh,MPv7t2_ 00M[sV4G 8PK]x:ZE9z_ 6a҇B6.OP}pƂ迱@Q=^QQP2u^GedDoK܌z,pWӎ4|ه)qyIo! Xsɯh}@5k, ZҲHJ[32?[˾6 )dKZ䩄Leh̞\ҩ)f5j"ΦkRe) J[*jZwL M 7Z2ZC sm{nӒOKf))ǟ%*PJtUC35*![լE֦O5^l("bSj2 ;z4Ce뾥~sg^c@ӷ-c_izNl3=VPF.$9u^ 0 CVfwt0pbL2d< i'!00?di^\xGzQQ3rv~8QZ ɤA0A ) "ꞅ Yd?Y!MSy}4al[դ(XtsMU S3M j͚SoLWLJ F\ci]vkLaOQwUT?ʔժK]WY-7sHBdp9|B[wx= P<-xR(i4V%"vlBf&tHՏҎs6K>=Rj{F;(J)S\LځSq[W֫db~.nU˴ӸvQ9J8sjiySY圣څ}/P?$ hx׍m8}x@DŽΗve眒బ9}'S,O=9Vtq} b.v&kF7'Ŋ]<{~)mUޫ~@Ke6xgSwzJzM9犇oy-FoTtrz:`b&)Zλ(ƻa&#NCްlTfIfrf᠇}( D:٢>SHyo}E"iGRDM2XCFΌC!,!2/͂İ'qĩb>bbQemK$1Ę"}E\{=GϷ w6fb>ÖjݟG<~ﱘ߬D6;WIFDzюQ#[a*WG;D8-&A8bTc'`;~5zar c؟)iħko> ( Xx\Bx P:fqeEw,ؾk:!;_ /H@$4e[CgC⩵H߅oeo?[)x4&Ul`VvݚwgkNbLWoL+[5VEC[KT12TKUBDVdD]WY3R-Q(**ʷSsfST *?Ul̮gaQ;ѮA:u5“,B隶S咮bBNJyX͉*wJ-ؙ`2 h "Q>W(O4Sj˸Wfgf0zXHhrT|'?հt]7UL['^܌!Ս^o-}⡡;7ð;?K3O1[0aOA` ֜pg|֊SU x9e G_ס/}/}̵5SOIn2bxLŭξeJ6ySoV/'Î;2*wsTѧ7s]re d/>>K|>w>F/T[5 n^*&Oxs ^0\J%N=)ӏ{lܫW`O&s|"յ4m=jbiEuRbszO[y2ɐsИO^JWJ̹Lܢ`Von[`\W Ke=K%~~=jutUƨC*<{L(Gߊd[dOyC?:o"syWi~NTBdk 8:eN5!'߿9--޽{oIKzagBgvKTNd6]fTY8[a%gCrQO 2kJv;TE])Nw%mEc;ʒ!,<ʅ,n}[OqMn#]rH؇8;g.2?5<ܐ6EVU!fr㞿[kg^|iX:[2"9wMoI,: |̴fU2d*%Җo[*B^/!AaqvEIL-|>Dig*|yV̔Ǥb;EEo+!<.'*(Ctݕɚ|hvd2Ƕ߮W^xZ۩pȇOv73NtMΒmGVY41x= YSy`cW~+6Gu7ݻ2ܱt;pZ%G-Bp MHכhƁa&rgaдgg{tӥVrT0< ;+zZ=M1q!:lYGLWAY/c7dSP2_Banf'|I]o^Ty褑'"1R7Ӎ`>1Jbrͦ hdZ ar+,9év8/5L]%f3o~U_vjdH?~5^x`\l=&㪹=v{tzPF@EM$ܢ%H"F,> N'THZBvTr7]P>F %ur@묣Fك N=lKy3]7ݮ遵|+'9_wqnwIěrS%mtZQ*$RXUYۤT=SI'oGf1VVvr9Jnu"cY 7{"_67n:&]wgb.}uK2vw[Rff:x̊aYU41u xYL^*N*cXhw75^0%#h|~Mb75}KdTӶRkD*jVc+1wiYF,&$ 'qH.00f®AFrdOۼ{/9z0hrjX\(i{e`҂ͤ=|5t"6+&Lhg}u=[FB?t%Ohg&˕^lv[`+S3u>Brx_w]#sz]ŝh~)vnŋmMe\Mk3+eӑ8ؕ5u31\X$2WH/WV1W1ER8[8Btҕ/':!R`ĒI5^BN޲Wm ԉcteo8oӯo>rzG;u'[o9km)"N5XQuQ98ܪx̳:m.*ίs=Ot.LɖzQXɾ]'j WHsqks՜Z:m:}rmڎT\^!޺Ɲm+;"}≞n%d5bC"1Ga oCbsfK)!rZsZa}*n)OyqO^%]2+#8WK9ilw< e./q@=m/-UZʛ.u.Qů֭TI vYej1x02-5%"qP h˰OwdQ42s lGBQEה{zL&e=ym*}_ұ*Zi$棋.JjPYxfRNOj'9Xo3krnS'Vh\˻ʨߢigS3nޡ?+.,nI L{AX'3I nBwŴw'-wU"DtTkT(N4:zeWJ<e;q^4rSB|W 1MyALg\^/"nrk 2& ͅoB; N-MBMRovɮ;Kg/ǯ̲ys#lQZ+̙} @NLŰÝ3\3{XX]@QS(9D*>Otahz1;OUxn0j.q1lYDĦzpf4D1 I@4f296%Ȑ窟 fJfUrnc1k6QǑ(;D4m ,\Gߐ1ɶmƩ&<̐:w8SeT8sC)4URVCk"kq=pc[͟lȺfͺu~!T;^3;O%%3xY4ٟi} ̴ aT{ -Vx!22bX0`k/ ^KazhS.NoraCMԆîùv 9BP|!/M[/= m1WR(ȁD ~v.f9v]B8$>CűU3†T`CeSaSٱ(! &4L9tL WO @XzZ;[ODZ _ Y O` ? r<' VKpjBS{ RD, e 1P T&MMLJ8>Ӿ6brWgr:;*ZEt*lmY-*{ ,QLo]Zd>|mdщX66J%{kMjj]\gi:NWV6E\'B/oqDwNJz%]30j]SR} ?9ߜ?GkaloHf_|'3s&k緞Qf = ֑ӘW;Pc0hŷ^]`0&kgajLo9JO`ncA' 8a~:z5G[0Ž {Нb duTĎ$37iM<.]EָԶ-[)R:[ غc5o's׷HE:ӷ!0- XJM]wEl.^v3IUYL/^k_ ^+w);JbxKݣY~} "deFS2?Ml2m)Ɉ[Ze^ΒzpV\crRR:,{~9*PW]9[tcS #4`c([91C͓yef|/w6/D[IŚNoFW,PS"`[ 4'aЧaJGopA|W64$Ff.#;1J1c5RfY<Ջ-۲ӷ;tǍ@BX>q /w{ki=L]Z`Í ;Uuo[f7O/@K$y2|#HRȌ_DE[nha4uP%qxލi9>_I߄0}zVc,WIV/#KVgikvqcm])4cb]kYf 0 ,Ȯ{g77<*ꜰ)M!%yƂގAH~zBX 3f)S|<<81LZ&g k6fvwt3L]O*[5A)U-em"+i^58F"ghѤ^SI0D̙ 5,ȇyfUebP, 0(UW7]v>qsE~7wYm-3O8F;g. qφ }&s&y92x4AJ!u`lFvs(! |D Q@+H `t|ƟVDOץWv:!aufެnD;xDR~)PO)᯲5k:m"CU7!UmO8 /1*37ݻY;dsKC[MYOrk]ԳOqԳQk]jaYVڈ%7/IUJj1ewHgU:mP۱5VXg[ʥ-Qݻs&]6.v)'TͼBսONǷNdK&PT) jd*~gU[δ(P(;;Z̘a[\uS_jEihP6.rl˾zyvGy[ 7:O+_Ϻs?qk`HF2 48A^MT[3k-}*D{*1>:6ER%̦N^ԡ+pedQ͕dn "GAYT-BԵen,.*Ff8hFe_g !`.Epf! ]:k'.l~tr~scc?w>QiMh99cS<nbPKT3tE[ kg)Bcu<_؏`}YqZ8ry(԰Y`˜M11/[87dVo9?!K;X/.\2 Խ\j'/ZKܩ@`M-if3޼ |\L/\2N#e;՝KoܫVYif6$ؾgG"y[]q8okr}cCRacߖr䆮ԓhfZK]FxVHF?AC;nQ\V+Լ# K"duznR}5NG~}_b"|02R(iodtW:62;)1!yf%f&&$`<mdBJoa[}q2==n:i$~5N55KeZ[:)R8D;?[JS^ň>ݥ# t9WWH]Tz%RYME`Bީ%;/S=1iWһ7*l `?r~JDx|G\Nؙ9 *:,%FA)M.e5'Qmv61w+d5R Is)t * ct䃛oAPKn@W <$|l>/JVt#v=&Cq?L9F#,\5éӚrN膕G_ٟ^Z΂J 1=;\Q 9ͱn6" SpHcm~L8'yuW`DNBٯ.o˯2ޣHFI$1Q{g*D4t>yn{f=ZDĂJHǬ7OY"̄KKH[Z Rx-)0*8<*aRjz)ٰ/OjkyK+*gM͚!kq*>)F%b6Q['wY|P2|9<;Z5S@kܿD`1aT%$J̏nك8-u=ᩇkɟwxϼNK,;>fn7la3В)KLBT9<ҵ[O$C_$ۄ-4d;?dKq&ޖ}[ٻVzE箠RgBspp߷<s&5oɳ6,6\oj*`.nB7'4 $DRC∔ U2x?\{ T:m5 J%͊goꐪb R-+9U)]_*ڦHa FGYGW )9g^6D#La߲d3u-ʠjիZĭZM;R1nA_ś˱1eIXvBAHnyXQp,G-n  *Uk<>2t`"ഐJ}= 8~W!f3d>$G9 CLRUE 2 `dD hN&ͩJ 񚏘?_ZfF3\8 KBy|4~" Ui xq邌;Mgwpsb-$ MM[7JOɷ9Fh1-Nq^B8_2ND+2'"^8sل+ x+YfJ TCr aҞW+D0 N]V"Or> T/H6p~WC InB.I/YU*4 ]gtEt8%)ooooo[EH˗7eI%I,qVO[O6 ?OR6 xNU/6uNʀYX6`UNJ5fa|uh9]l.)6;G tp[)M ; 1Jw)}[׼!*/ʨ9DD *׾ ^4uAE3>UE<jBqF7_a@{zH|QGDuc5NCP435G+0{ݏ87r?9 qnѕ_Kt/bѷ?{ 8ZRI`| g*,o<6?BWzA EXؖ2%+EDlx9PRJ"PM#un$e9oi{⻥"h0 O1T?!1ǏpUSsyA`.&1QΦy7ng\ Wz]79N2JrmszC*2UW<vӖ*{n)'rXE*DnqTD>ئ}0xTi(@GDi1B{Ƕ~%wVxLz3~#c@$$!]s^oٳfgF5*I,RF.:R~)+RDL* c%""DkV U ~_pŵ1*1y?ZN͘'4c`^j?ǂ"`X8#Ŷc9|vAjoӚy@A;b76/6)7Mux]֌#_?ȺTS~11C߸Ji9G\q@$ApB.\8F@$R1!1Yq. \Ç$ #s@H#BFB1Da$$BBAA! B\q \H8$p\@dF$a$YBD$ D$aBHG$ $ G8!Ü@\ I  8 !H\Aā H@rEI $d d$FD$\H8!p8  @$@ I.p8IsB p\G#B8!p   FHA#FD$!@E$I$Y8 9\K@ H$ 8#q!GqpHGp8@!)$DdY@IEH\ Bp9H\HđEHE!#$D$E$d@ q! pG$ 8 @ÂHGBdVD$FH$aBB DdIa s !8 8#qp \$. HÂ!@ $BFBDddBI DBA#D$H!$aD.A@@ !A$dH@aAdU$8pB8EDa @$a !dc!B# d!@D  A BA$$FXE @! $A!@  !p H8q$ 8 qpBII@@s8 d@BF@ $ B$H8!@$FIDFDP @ @$B@@s$qpG8$!#AE $PX`D I !!EBID FBHl~;?~|G?Ɖu7¾{s(s(i⻏D[[zfXz|cu"kO硩lyov/ )0t,-:˅:s5m C]jo!ˇJy[~~_ÎJ_߂X\_H}G}~~;~𿿞{   D " 2"* 3Kh"!۠_͝]eXZo#pc)Ty|V#b6VCߤ޿޿߿?>>f=<4vn?_OʰӰ}.,? ݆%&aaܰXbf{V_vJ6W߯oj[{6ۖ[O?ݩe    lXO鯳joogkkssoso776vۛ[?ͭ͝ͽͭͯssookosoogssokssookssskos?~"QYF !e䧡y4cD]Md{t6O:yXXl{ O;CE~5} ͐O_ 1v /.@00 `RoC_f>OυtoS z5/ÒܯfUl>a8sF׬2kEg@*](wَk\qM-|*O?s(S=M AiO*e,sM ;wNeD"3_??Pϟ,!_2b4Pbھ]1Ȅ*" n6!Ow"daTJnI!UO/W>Y0]ވKKMOp܋Ko9н$䟄×kӫ|NRvƸ9-ZP?FS6&GV 7`s6V YqX8=x>g0pV=Aq=nHPT4MK.,1`0f1O#&Mt0ѩ:S$xJ*;ӈ݅x/Fil '"ՠ^l2Y˒ 鈌]c @bFam=@ɤDOy*#sxB~.+W5Jzbǽy4k|)0hv\:*)Ne#o^V Yc@v@ ,tsm󅿏JWoK^gڒ>[X@AM$P}_ǒ|}K䊍5O+|:9/J;Sn~W20".,5 {ћ*f0pq}Dz2-Rn=ϏvmL- pʭٓ$:Tb^#BLRŁ`L'1Уa2uoGW|z['zQ&tٔlv;AHq;跶jmyJPԘuk'Ms瞂\F0gEث{?$@,!2_$aM;uAWGq1D䄢ռ`>A_!CO [ӕ_X.AɫYzwM6739$fste;sc?C2n|~cB=*ȣٲ< c)RZMw r8ʆS<5݇Q*2Ecĸ{_֋qq-љ/R> ț*`'693/q?wΩYpm2`nN9~m4-T, +O4qӈ[@l=Ftp} CvfB/ψcr.;=֏nY/w߹"B+j j  P6 lٴ ,Vmr[#'dtaI`HOvRyTF[J7%>xdݿ+A u"x x}jisr%;\Otqu_Sen2jVh$t@t[c\PK laI/./YS&/C )yWfؐ!NX!~܊GC?{jKgP w3B`2k3ROݿ* |>L:R7g$IleP;a*,㎧1[mΞs Q]RM(,P K5P,Q8tɇ fMb2}$A.HT1vb$Jq3օUdbŌ f#zd(22̙F@ht7LK/ fsa^+eՃRz}F9>Oq!a|>!Rg}Ҩ,upco5*7:OKMa>c^9HME!ˤA@5xt5?2BtAX[ǔƍ1q'tZBtij 51`GQ^߸-1t*Ȧh=>~ GJ;gƁ-(ZWA|ڧ̎vNue6ll"mA' Oz8L}!.ˆ鳝+Ϙ Өn'\6. #hd2OژɳNSfokٿNCxyvB$D6+ \.`V/^{dLj $j:(^FF (cCDu9c, oCD67nn2R@C1JEW|[--Gsx]xj*Y_ =ݭ hܲ:` '2PIw}f7,o&@ƦO{x˹ldCäu;/2 {D|U݂^0=߉lf|?EqJhMn [+>`$)ڌ&mbswAp Y. lZE7_gJ:f3Pbαjm[20UT;Nx 4 QQrRRߥ$5.y.xvÁC4̐a8#YX6͛f[Vel+-lK[b$^ =  5ìS#*yJh36 X[ǚQ۷n8tM4B<_lWR^R@6sx4IT o8<cA룮Enh~ȥC'r`@ެf[9􃌽+8!K7vrj¡nn NGyԹР$UN&1 &* U)K{$iJ{:)̶S?`d3cW/ >hR7IJ#voѷEI@2P֞G df8'r5uw{I1TEl0)߸y=jYc*<*O G}ȇZ;mUKDƚMuq<6?ڗLS#< :U"|Ot{jI#wJ~ ܰ6T?B` Oé 9 깁`{a?x~$82l˛rLORx@Tg59WXk8TgI0^Z'^4S r)`1~OcJ2:E!^CQCt! f e%g(p8nBV5D[DdWQ0`̲k*z`jز?l=A|clB#;W ɿ[.-C1M<}5ZF1~!q r^- yn߮bDQz\9u0͜pOa˃O80 ]MRVj,)jÀ*dP%9t{6̭s=_ه2ߟj8#7Vd\?8níf * /LECqn?XCo( \ܙ&O4th6}@Utk+󍢉rܫf`A@K o:8f_҆O%/H α( $W %XV,- fVĤ`,\/ͨc F`d^nQhKPņ/p&yCO.+}7Blz&Nb240x^{]W4zbUy}Uȸ&%:#ɝI0vW&!inirR/BP E|O͌n޹z1L!㛍bNњI֕$=X&<3c)of;{ >&p}?Y޸}V5:8a ^՛*pi/rgX:@;PlQH(T¡U|h#`>F.v`q.www6fǩzʆ]D,||QbjDZrz-X?-Y O*S0h!_BNW'M|=ɑ'/kwԨF 727"`2pA}D3),uw9rz YVG̰~\Ƀnv'/78(0|B"ϑq4;MϷײ&7PDeoʐef?/0ذ*uQ/-f?l =[焷ϨP_Qt>.q"M8L\_Ƌҷ#cmN1X:k-X_@{ sQ"mK@| Q`w-Xv0~W/cuJJVNbl"p `up?Paece0;D߫U i^:s2P9Vj#ů=C9*An}<\\{&B[$,JAẊ޶*]iqvco xcl~'*STUgձb| [^?F Vnt[trU$Prh4ͣzB+jtg|ج]v;ޱPb i¿}";^_GV2[L '.~*ǹ²,ݝ˝Q~_ iz]ˎdᰎwFKbZ^Nt 0V;q%p{=S'DdrSSɾFm {~ %b<<ޞI- z$jjZ/)y8S5=31|7/TF+P+JWTUQ.êCŮcs=,yyOe3+@a+fi4_y -|rNrt>5A?a4;X6Q-\=mZNho|7AWYS?9Jd1%\ȧpp<9Vk^~\u| H.wIZ"R^FEyWf˨#F~O6wx8&$~q9]tLK ېx w#!PO:4y9*V$EG}cp|UKWӊ,/G_$Բ,TωYVa󦟛?I5Ӌ+aebz5c4o[ qLqC'8avXR$ǢuV_"w=7l|Ѥ]*Vk7*&o+.-P淈g&")[|Wƅ/be͞EW`Fp >P%:J(Zف6v0F=&D0?xsy؊4r?y>;V} #)_I[kIsg.$-efGj=UPz} [`ZbW/ECu\U] 8ԝ!!9C낳ү['LiZ.ZȺ:t;0Z9C<߲V8w>≣y?%'f#Y!OQLYe7 ߃ tL-7?v! 6P e4()~& E^9:eU~Cr^רPfXěD;[*wsc}*aa3U^W6[OG3`yHG0?C$3/WGQlbAq5gByTAp%3{$y ],`6E{˒UM 'Su{zc_m̳4YUyPb" cspЩC:;H݋3Z:C'ɋ,/^vL7ny>J4 \XffR6uly)ӵ0/u=ۃ JFb X7oʗ4=ŝl|W2ca#&Z{Ԯ)P[npÐP H҂?ǠȀףO06 R)@k{(MV`!9xSkA"<AU硂hl6((Џk 0 p@Ǜ @ : *``CQ/@ $$0`fXp `:)]TPA;A98QA+ | Ȝ+8|^s:Q;" {X) ?\h@` L u+RLf*_h>9,b r1'"~)_?s# ηEr?X\)Xs-=Lx߰O" *805)6d}H8[ XAC:N~W/$ ʂH/:cB) pO &9H"@paA*EGbCAOL/ !qH vUF l 3vշ'΀;q[R(7`Ԍ S_. =mî *>A]&dէ@* ς{ɛ`? ܈ZuUhJ]Qh+=9??zqT )ȺCF *NY62pJQ&؉ ^!f5(vDYW;3ji:ӷAv|ۘ NC+ !HV^*.XIM:$.O QaS14t4R44=&qb4}In$-P!ʐ`YhșDicS% ӔTf,EM+%ŀF ʙɇYV tmHP'7+J&Rz"&52mYgDk"GE#W*&$)ԔUM=V^C$eDy! (U'>&Bs?W< JqV$g|4p &Z,1W!94 E5ZpbEDC0j[-]S"•qa|MLaEY PbKuIiqd#kk93RoVb~ȗf NSLR8Lb&.f:%i_3zXTS"W4F*uФ@r^W4~U)gxyM)%1!L3+S,Ӛ))1RSv"ʴ:ܠVv~/%1[jHb-;j O9y@&!Q8u# єSgRu2ӳuTq'MC8L3rN~t3ҕ-m ^ZLzځjzy5EApڵ-?ZENŇrT)'n xGOFKpțnWq еM*p( P>^ LR. 2Pϟ u+= CVܰ/I<r@CH`< h$C*"$s0FN`pT#X@Zނ~p QBbhbCT#[|R\yZˑEEm_!CEei0F`+1 fo>g3w@gφ|u-JI-#uf[Ì.O_7t^dԽTURdL͔CIHUV^xNi:f18f^YT<\r}/X4+3aΛ.ZlQ=GckS! DkeYOs}0ms=trߏupK XYݻ }gICA/t/ Cp? a4j fT+҂}D*kkS"*'FQ?FP8gX77͗ FLÂr)eG/d9{M t5ݻj͉5a2X7)2y M xiCGdq:傕*Wµի ouby7}D?:W\Dic?k@te=#iI4nG'tV8>A E q(@෇du@]\h̍/+NcH~( j  9߻B <]蝢$~:WGIλL/G\!$tgo4+ :P6Qx>P+y+&e?^ mnSlJ욑NT7BEcN! $x = v|IHP.bqm *6$[epӘTΛ7 -rvZxvmkϏ_kO!c<"o'"AZXO c)Ҹ W ֐Bp*X+Vyz'SN%2B5p`wzru=K meCZ7sm(!Hsn` E#hȟt)&.d7&XƁq*l&_,ī?5@غ{#H(5VBꎯ oL ARm+NA.}"\Kea`|t]x=f?=Q"> 'IFrb$A< J ib,n rݾJ(tvũlVASշF("R*K%NC0!WQy`Ъ,4*н }N}O/T4Afꍗz;^Z-W?Zd.+V$.].3&w'Ujj XU a0?%Hx ivC R0uAlK}Q)9> P!NNHHPz;;w>]WGb(^z~[Dr?]|Z|W^ZUڤAvh &#pB'fvL$⊇L'w"pGta.1  ǿi0w2C&BΙu._#n@z_4|ڀ(X˹ ɹ'@fwĬaD@)LBd9MڇFh|w}wt߀9BS|RO~;W=a!;/27/}$f | љZUC )koaLkM/zlTE[WrNh7*CqGO鶂O.1|ܨb YCDڥgdm.՗}Ii]ghpZ'[kA* ( ()DT^I *X AX`UV. a'Q%Qg&Ja ?lhdyOYq=jgXqd6Lbb?E,f7vݐ~CA`%P`#BDZsnLWviZx_N?홆?[_΋0, 80~mn8n/P늊!TSZ;VE,Ŏ-+ '_}g?w9,$ XQvװӈ<{?i6V?&q٣}ݔcO/:9`l՞+y7&mы!dfRA|I8>N]Fn?e c̀qm{qʤc1ǘq?`SӦ Fɷ2ْ@4'iӟ`h<rZ\sXl$*O 36%;HAnq!g k%!G[,H Cr["$G^SWg89tf+-̀ | Tc%eOQps(וVF#v?M$1CrB?VA$m\7{8qNP-@:bhț螉(Y %8~`lJ=O@^8~: P8\k)ϑ=cWt9 ;3[j^or;5Gd+ҞTWߏ. S2A;6)/9GLqu$OsIݞǘEx P{fI.7c9𤑅,0'/7=Gz 拭Jx"8TɮY>l03f yd9 A68a i%dMs|r;%tsM'&N{(y7Wf|kxjԐkFo؜νq#OLXHOLrOgt&)LבHā/00g\ ;㉶q8  1'(5Rר|b8Zdq1~ Vv<&b a ̬!Mnp~uȔ)8d'u=*Im9CTpPf)4L'Yr{ F,q V=`{ ΄nn+e >o=׾{={610Վ4!F߸ei\LE!#}Ch9?{JR6_xC#z'2Tn A ! jAܣ5fWo 12㧁 7hÇȝ*[Y›1@za×ŇqpbR ̂GD\߲Bn!rsc'MyF?£) `A0q'$P%C Gx&M\qc.|(>2ڕq䗛qvA%xPwрTw .@0_d|C ѾP|6 1ܶh䍟P Qxs#_(ew,;H3~c {@{x7W`I/. 1 `(A1? ^ ^|K!+^Kx\n< fmyb}JDKk||] PC,pƢ%>a sf}Q*Q5>|0OLdDH28.}"y亖ѾWm3-epk7}G hS#nzL `͟~ZҁA{7ٵ#vUs_rz}Arfe I5+1wCA; #c3_]¬L)A#)fªf($slas$eF5A7S?n6g&/o]w_ɝ.+ }c|9[BY53VX;f@j׼GBp.GqY3ID'8{_`['r!;FemQOI-_su_C~nO4R^:Gb"e :/K j1nf1qAx +"|_K>SFR^G-[N6<Tk/o|8r;Gs ցT\ u6HP $ٟǂI!Jt~И4AqXA욳F]fAg.;_|<;Bg %{NJ m?p v90dLn$J~dŶ㜯#+u+O` 0 2>-Dӝshdo/"z8f#NTT Q{4KxYVzr $^tH,Z^pJvE([śq\ewFyg;e}!E+&wcW?CZCeOO=?Ж̍LpJÀ29H3S=OQ<=\=l6Fr Bu}&u ġ:_&z*VUר&oUF󂎘Iu% sw6U5auBLZ(}6S`aTbhA \Uai",fǵ.qq=}#{Gglȩ>NٟDHQHXbG 冓 hD?jnp_75*?4Z3$0!i?鞀=U:hMZB|LD<~Tc-AbX F~H/Lk-$ûٞNwLm띌wrN^ޱĢ1 RQJ̒bG ]ʹHˀqG$xv c%Ȼ { S۾ i.jW=!W(q[!aH y40IM>8χ6ӥc~@hd(=;"4fn ,9xJ ᙐ6Ɇ.nNK fDS#rT{/3~ Lni9yQB|y2vCU3?0K Fv'%+\z<%k\ܟQQ"h+VxAN.ӡT\ tߴ*}?[tc_W'w U82 VR`|j_ة7R3 qv>c'O`5Ƥ̯nZGal >dӇ\& t,ѹlou*%D󍆔/K>$:Ɯ|ȧ^HOuhĽjwoA9A@;0e( ʑN[CdibU$:6\A?7C&C ¨pC񋯐|rЬ<#ٞKϕ3EBӑ)355q _/MqhxC `tNyv5'd'"Ѕ0E?;wÅQZ*LP)BEx@{er[OODzB&2q5{K;rW: 3F<{'X<3?f!b_Ev'!)ׅl[_OHdp j NpOlf𔯥dC.o@n(iwtq06Pwt)4iz#5%@ MBsϾ,@<1'=wqG|~'ny^RKu2BǼq1GJ֒ (Oc<{?h|j \}y%x#4f3ВC6ñ{ώDfhJX"^APh|A&}]C"fC^27@ vf$ %tイ;c%>/8Cۆ+4MF@pPBu'0`RZ o/G=ft_3k 96 >sђUKPr|/ct`+`ltFw N/ȟ Qt cqd"d*hԧ?gl>#8<96;^s`4IBHW4n''Gw̆DA…-<{~gFEerύqcO إH|5'dl~4R06-Y;XKy+||3EI ?<",c53Ӫntߝ-Ѳ]j}@OS^t-Lތ*`$8V{yH,X b֙Xz.2rPsLO8< #~Z,>,<ɚӱȭ5C10+5HaؕC&VǝHa朚㞨|@A&YXճ)ή[[MQ_1]7'zS:dnƛ)ku1פR1 !eL5{3QzCB&*? Hm? PFH`~WϞ+8&{rQ7=u5Y}sYq3-5AxXlې ?DDDg>CFl6y,ϤGlSmFcTTL“Bqe>?KOyp~gO%\`[Q h`0`Ggc<{t_|i&>蝲vm,Lzܑ]n6:1Whg@ Hr,`l Ó3rv]T̕4bY\1)ѱ ᝁÂn ug}ψnà/g|ׂѵ/@:ϧ'?vC9u%|@J!$c:Ѝ~P GB*8:5M){×kS/1ۆ)҇mO6=C"bg -j-y(U'?#ɚ Ѫ*~v IIc4jXl-v>=1hɭAdϬm>rkps@θ(y= 8p͙׃8cw\G>jNE3C ϛ$]ƥڌ*!|7L;#ܰ6s]#NϤ= ›w))rɣtm$ n$X8EШvi+ˣ+Vc[ k=HCckelC%qY2o3 b8s뜇3yymM@JIȔ%wJ% =*ߞ!| 8,ِ{->xA#ՄB?Sj?|O;~VAIsG7 e6>zkX aѵ?AS4x! ~G(c292G0z?3IMN=SK$a֤3x)" 'ꀺDV1&pbfN[,sxư>O goBXuBTp XR>)bA8zCsͻ ٵ0؛\V}Z- ƀ(?FUTƗ6db Y@n0>Y{ո͎|^{ `2f0J͛"z{ۘ"JQ^yNtC`U&H\:Cg0^Z?(~87`4|9z<@YL\HY3Y柼ڎ,Q$1W=RE3&މve-[j rEЛ98_]vc]A#l ј8Ȏ4aa(tɍz$\Bwq嚨i0m:&pu&[M>YL|d|J?&ԒpHLA{WRq4-pӟƥOD6 1$|c^htN$w¸m0PHGgÅ=?r s`yͲ#Ta(K~1 o:HJJjGԪ3.izPi擞<|>^/i=$q{zj9A]=u? Q\BufW.s7o*ͮ5u8LNq( zПu9킘vRn ><5[$dFv-Mom3FӲYx'&yf8BSv'V8Zi3:/K^Y@>&Shn{A2t/E|SفV%\XR6X(t ;E/b˫&JB@}lS}b#x!G?\ X Z$Q )E \qRï6M|f839?pQ{\}ON\@st9)Rdo|;fkI>w瘰<^J's<܎r64dL|hz8^?0nz8.EB=0aGAiMo`.Ĝc_ Q!+p)hgl0%kTb汷0Rպ8iv'i|S[;0?QDQY>hJ7f?3@g  5K* /寎S鐽YSP >`{s ^"07zR}(2/JMA= Ƈm|u†4z0s>7S,ŗzL}7F,mLh۳q@"XF=#Rr1wMNA0R(ߖOSȴnކL#s-TFf೛f)H7^&lnv%+G *' 8#)<Փ[ѢSjC/:{:R9a(hv )㛒Mq_dySp\[; *;fDJJUOH'L#-Ҳo$&,v# C:}Pkִ/ՆNL<\SM/99ȍd)<^}W_@Bpqݚ.A 7{x,_>7h}f ô`)XF~[:_V? 80%Y.?3ӛma5+kW~^\a⿆h(>9^\}+tg<`&}hB BoLؽ6B!ya6\S-?3mm"?sL5}aJfyLr?PMs;6Bk>Ğ?ϖ+ {ϗ^q?J*Ad8myp+?D{S=&w࣐|1n,J-)}l~0@{icnEvgk\ojŢ` T엺S}9t46f])K^[㻄y7IHb8e|lɁ0k:zh,HyNQP3Cc8/2:6}cK%UIrEi]>ۧ`n_0>.8#C*Ҫ/nz5p WOPO&F"&tcpuYΰx9'0v7ü]v B#IPPF{i|g â:V;\{.ӿyDa"k%]GK+pjSW2܌ 2 g?>pD`[ΙWM~h`vv;ψ1C. Z)͆07hHy,פ;3s aa[I@069r3u03s'OU8?0%(Cݟ6Jw1OaD!@KLnޑ:B4KhzXK|Q$'aDWX,:ؼT V; *2))"Бqf?Gk{(Pz TL::W LAC3aW=͈s+&.ncc~)d߿,}L5žy&~Ih66kHl9N7yaV7 JY[ʆw*nbn=`ZE|`(L1<9AbJY QXE{s#硳X[7F}ٵ|ޟ4H׽f{<ϫG32u)֊hC>0VŐŐ33dYA 5l+tZuP`|^_~6,4dY)[9k aZмwp6=j[ph{BWͮ'e_~31Wd"ȝ?6d!n"%~|嬱6TNyL'~Tik|*cvJ 3P쒈=yA@[e%y1qOW(0rd?QMyJ0zG!Ff+.bzBBp7f/ b}"iuņ29-nQi/B<듘8B\{ .>% P :决G%}=kH?lxӟVCRTDw~=Q"E&TdDue"P**U!!ώ3?Dz1DZ3\:cNB?4O]e*Zww`Ѩ?;tW{{-r; hBhՆx+D{h`,S [lfr˧N8inGEwhQ߅a-FpL+UDǫ%eu;mf+6@BE"VL,1}XEgaYG}[F"Jr`1y dP$3CIXXk=ql]'Ż]O+ -Z{xG$V;c _yk^srINj9a^u~g㕦r-K'Zg$O1m+l( ӞJ2g1` ŎWyoT8pݝ~PKc7#*v~W&=yyHL-jX0XjҬRNQ40\1èܾN vB-BٮsTɿQhЖkΉ{ZFŘdIZ6(rSqʂYDYC+jO>mbY]11G_V]d:ކY(ΕX*GͯhIoU =hL7pu44{pp~;Qޅ\e4YΡ9yjb-ГI @H\!d DCjL|TwE se-*:Ȕ1v_dt:x5Y6X*X:7bJfb4+A,2K Xϔ>!{>ćPzNPQ4^uUK\.b/b-`VȔ%L;)8IR`G`\h2F^l"4_kc_/w7y8.Fcr{a`4m92~"}zיDW d#, F]m iɟ>YahWL%1Rݝ &ۄU/4"oYD >e"!h6ù2,rPĪ~ j?(g;]rdᄑs an{s-4y#Ђ(JB%a"҂yh/0a,AfaB~Y  T-ԜV5PMnzkH}znVGjv\lo*4[CV #Y 'S  ,-ʼtRv *Rxх|"R[ ͜6Zq.Wҹp3h`pIM[!ެKKod>:hd efÅ(&g!O9+HR͜y}sẍ51ǬPjI_)ϘJ*|qB7yY#󷋼;nE<a.>^4w!*x[U Fr{{!!}tSΪ)a29IJ3}-P]9鱯# NTP7#` |<2v'_&` -rT FUˏE6C&ugG}3Z . J(M_)ũՑLf*b?Ŭ0% !FO M&LIjϭ JɊt#΍XLgCm-QEsFxң2'9D$u<𵋣e`ǢHWh_QaSlūHaī5'}ɣgɴbn=B1:> _ǿ>fqm#yW-LB*ާ*\YN<;{囡ʂ~C9ݖw%}p΁@'4ݘc8:G_lGa0wǞS2|۔ t/[4ޥ+/16S޳aqkvJaix#FMhb9RД H1qF,˗׋zx1)Y4OTlqn` ekA3 nXҭ* ) @6Y/MZ{pצ^KqnV3 uTkytEGzW0l £W&dй]CiImO?џOƻH:r39hb4:dR9AkG7W2^xJ]7A'E(FvSߣL/d  ˣ;3MB,-Qe) jSx'Y4\Ƹ-u/ ip J-bV7hn?dcPi\K>=T^)Oy(/ TT 띇@`. iR|+>{hD+rkiӂ!p܆ `5nE,(&4/](=s/`vZ X`ι%!R3?2TTT_%Ȍ;zT%OzT tHVO@PoDuB "R;:d=8^|]j40qwrM'T9‘ByP9U#ylfR{w^jlx(q{+ḵ a+C!][b Ɩd77aqmPÜ 4ƼLJoc ˥N򭯯.jYUB{͝&,֭kCܥ o^*,lSi dςdɔ:yM@JHR\9C2b Ik*5Fv!P -Bj K,R)m+NXm*?8 gLaQ*߾w9_y`~w(L5)iqI⼃]a02 {93ΣPB'ϙf=ϳV/NËA$+ g! _gX~w]*M1_S>o;(6y{Fn.GX. -J1OU|^#g9⹢xކ,BUқv&RB+U7>QZ\hVߌo໲᣻?\p(p[[v:tT `NTV\2=x`EF 0`ϚXgYiMP|L i4֍Ӽ?W +p5v2E!W2DAqP6"~k W$vG$("_-yEȹox3y܁XO hRWUA <9P}ݽ#MQEx`1]Pkܩ7ҝUt8R(][ "FQxΊX0&L2gi5 ‰uXww%{n-D>z}M$VTp4|\p&O6vE}VEXز2+MkF 辧'ڂv~ U/Yk田\m)"G[=&q[:,>omMim;Xde刴KJ+p}2XRTPV+V\.'(JXDitvrk̝@~u%Ȕ '^5{꿤}atlhtfEi?/tJƞeI;*HStjM$>2Qe=#[??yJNpqGIPOaªWw= H8 HFd M7_^M2?뺉KE>te&D՝/rT7Y;ޔ maV)C]zUW{WѪwܥz0ŕH`cBY2AbWv([-MTJC6?m Lg#%6#Ko?_70d*TDY񉄩rSBq;Zu% J\PZ-ZbB>W|=0L$&qc[ 쌔WqU:7|ݖk]|/߇ e@i*̖Bo Pq$񲼫!eG$К)&˻+XmFT-wg{ USȱ13$$.LFveqҴ񉿇Dĸ8v)锖@Zj ]* Nf}F@C^-Urb;mτ p S9Ƅi@ڂ6 `rhKƈv G?E/@@ciA(*V@'$  !ꛐp[ۨzMCT= -1GodH6ȯA @sN;c JFKEqN- E W /+V<1 2#ŪKػ iԻI<&O6yoo]OOAw:(5W;cuKeu#Ⱥ6e6L%%ZXp_XC8+8%xO#+]ʪ +g}- kf/{X>'Ʃ;𠿱KI8$FT$2wJ˕3T3c>806~;#߸̵'ߩwiy".x[ȮУ!wjJx%)FRS"pȪԠWT4^Mh-`#:V1eTCxҤ0^(o$nΪsHT-"w% y$#C3zg^v7!g`N3 Bp؊1b+1S`ijի["Qf*>yZr ICSaY[=yXQb> i tj!+qrbn")"QD6h 7R#A&UODN "pA9+EC"@N ICg (b yrbCΊAu*"kNk8Ou!8pɚ;k.6X'w?noM]^cyDqH˨nS{2+ҢC)X5ib04JCe 5%jl5% #@Wa (z< kbjMȮZ6?&+70):=UZI2췷{.b.=^޲K$lVFGim)e?j5j&/XQ:o?od myxZk,#& _jCzSں4}HH%J'dF9_g^YW KDge|PDpdJ j,"'mvMaU.iVYieD%i`ɋdK}QK.-v r{̠E#U %JIUe`MBM.á$b[?3g-ېU zioŀԕRf2eƒك.|^:/d VP4j5k=t-~+[d[%Un#6N-8rtZװNvܸJPT (/]2l(MRy_ #iߞ:ꑎT+_.&<0!? xqwZ+\\Yv(d~3ADq ^3viՍqva/!M-Dkκ̇!=< j2żE v|.Yqg)bl/HN߃زV/KS+ ?9ʩǭO6moSO^ 3_%hN(e/̔ȘU|C;'Zc ?Q|U",ːωon[li7+1ToǨU6v<fxI,*q 0 W kA}[rG1XPRX/(@JTXV=.)_+QZKWO-m*a0V~\L@YJ(+ 1Y\K LW7-Bsݍ YcI1ه)@- -K61 buO/;bdl"0 ej(l7"UAc_gg~~Q6Cdz-[(FrTKWNɏԦ:;H;b0gB{1 pO^CdvHtp9˻>zc5i;VñvL8{i!B7'fi =0|nPLWɌa p^J<=1C.l(8C#pkUx\OI' ])eDb}Aq\ߐN8- 1&L@Ԍ`><6tЕ^İd435*ViC*(H"];z n#Oz],mxxE `фpoSֱ g/!}v>ey"j_|[1Ng:<893Gt;Czb'! Hf+@~( uL"cA@￞msz?!OMz/wg f+c!A;DK+ x8ZFwGLS e}C"<ڡa٠;@=r_ϾկR#x7]E Y6i$ړkp?E0ȣzMA3B~Lkl4(C>`~y;h}~ =Xsn&fER/scR0n_ݶf@`lݐ+l''@vt1ČZk̢/F_fi!s:U؃W/SSh0u(0݉iKHK18ddTKPьa"3"Ld AbȲ~ -If*dYȲ H) H1{5$F{ʂ4=6(*XC o:b+A?ybS>-ԝ!y˖ zAm8WdC@}S\ YF8>/m`{(v!G3!Ghg:#g]w,8~aQyH}9*>{մm6wme[wG{\c:#W:&H߃ 9_ĭ0pJ\[PM %M  uܓ Z_AYuxyb#qstd,~i~c( P \>*$`PF;(#l=Dpl@0xGwlQ5AQZe7syl9-B{挸 Ǒi {s2|*p/ Mz<VJa0,PSP5$IL$'·dߛj{r( AɃV֟`Sק)SJW >M&0LCQN n AcN&!6HRLCAӹAw̓ hsOOC^4ՍLW cYZjY <H7ꂀ㚦ߎxuRԅ+YzAy~a8pB~ B?+63P}鰟2fPގ5,5Mй :q uvjCB8G7OI˟RzfԭcX*EMWs=q `\| D<"@~w}?wӽ}i;ZӦ=?4t]UkF xü~nlwvu0ZØcOQmCUSz#ufe٠xZV5ӄ2G$\Ss4?l;aᷟq AQ l1 (3.E 58Xzu?6iXgka,C7nÒ Cr I`M3Ѩa+`V5]\|7Li?qlw`zJD$v©jyV:qJh?ub0,9.q͊>z+L:( &Rf39xv?χ8pfog)v1BrVٚm*2?Sm{Om!DƴS;F4l \wתV36C/Hv.t @ɡ܈rW";L7C7cb6r֕f`~Qy`ghOA@e՗0ϐZ+t:?w+r[ՐXkvG$,>4=[S`Om}\G9nCT ߏ9A<\S mx}T:Ahps=uͫ*r8[nH,m-z$E΍3apCJT_q TGTTᚻpaGԉdQH! EXJ.I3(+uae> : sǺNgS/,vid5Hf*̏FL"/S2e5!G}NwMEd}-l\B$xe;/vZ}  ŕ>؋7j+, |+o }XOC{!~ ipv,bSdӉF]3 tW]p2!;g嬇sCeNص 0Y~i9Wogco)b^v~'m?A/hdR 'c`pZ Cx!ɲMw4yP0̴Y C; 1 9DٟsJOaA͹<¡;sc ,xl- ~&$1PW$#.ǰO~,D˭Lr^6,M_F#YMKR t,Rд"DGTQ)i7L^2 kn~i}z0Cza0L@}٫i4/@MD&GwY&Cu6S:8VCb3 Lp'W?#H()Be A6\ ܱ*w u8;g'ۚ3yȏF<Ǭ~H>a8e!#A D&}RE!Z 5+ > :u~Cb"bI>\U^;sEEsyM>8D#OЀpfl357"{ؤ4C5(yx2;B Scf'\My#=#sU[.ކ@4?+wE|GAhOK C`3sÕbC!6QZ\܇0) ׈ G3G0>aaʈl}|nl{_(`~.L6BZm= qVu۹h6 zUm6WUAI & 42h pi0M]4u7ElݙktPoP#r#;̈?x;B^sZ?Lb1?n͛/,x㊐TS_Z%& A8J9boo%  + 2dJ'R"CT] vΖѳ{#^F4H=C2iȃݞ"8;Cy!@z.s+`БԻƕPaDMosB?=ILD @ U&_>b=]%z9=Tt٥k}8?LCF~!rq4{sn·pa{+#%f7c)C ]g1̃-@9lȆWF4 6Jӌ>to.}]딙%8YKpXS+ϟG)2B<âl,tpT!AJew;|O8!߽#ԙ[aӘ\A34ƔShp߾cW !ias_cA=@Up"H%?R/Wf$._e9K(6)# 0N%U>d1x q2i@Bք *&T'ON'J ZjI]R~VLlR)@\$%BaQSw19OMCR'j!aehq̹?=7f㊴DE ) Ce!X jХJNCRڴV W_B$A ?9A-ߪz.O1Z9_D3ub`dCAܮu["(1ݚW1G#yO9أD093T _$h38*\!8)?ykRҽ,C;O}q?]- f$Xcvh,6RX,ʕمlYmW@F$uxw!A=>v}C (野pcS#`;kflL҈ChYD3&fQk!Añ1rab Ew.-K~cA f| 6?PG_r* :i1z߻SصuM<H< T9!!Vspg7zΧ1!ϗ/wq ZS z!}V>?ɛV`?#RG3uH!~*0rvWD4ji} /̹[mr 1) x$\@A$OMy1 \3qgd-M<Ձw,x|=Aa@ԠB) í)R{6(i^pBD|9sҷ9:]@ͻ| =.~hup;A7QtQ'Sp{L=7r;1j/M#pk9g* ĥhL.g;ԈZg)Q'TSjJoiAEjCu qjak";1 aD(ǸiC&1m8mbL1STb8}IDoh?lF\=U MO!}no87yL7V0\:!ӳ{_Gp[wy1:@矗`wSN%@~k=k4ٌW Y0H8W #V*Yly6hy{Ḉ@u6h!{C`7:( Ѧ a0lcT,8X=?y^!45Rs~K|o߅2=HˆS 4 n0u=WJ<և pjX4G2'gZAAu`q& Lp0ɰ́ "8YeZ[Cr#P``7f(c͔QKf7Po4P21)D!`oscKw hCabs|.c 0ciD1&/08TZ(+Tcw1x|?-~xN^<+`0aQx{Skefh PFO[ ŇcQ(J)nNLO%Y XĕbZoBOv?a( S\zpA ȣ~Q }Яێ=FNww!Ι|\02lo d40v~?qy=!bW) C\֓!O}q4J{ɡT!e 6ڎcK ΫhIhL%J:tO /AKw=;81ر pQ,T*!X >s,0 At zcui-fAz.öNw ('b)ַ7Rj{LW41CbZtbAUߛd ̤lUJ`Qe^H 5Jr`\,Z./t 0x};DvM6*5X a柅ɜ a8kb G'1 c7G1sɀў~6*rc7R&AC̈s0;KbLY.m/Ėg~cNJ3hQA!~ٙu8]0:wӳE~6U9 bu܊g0, 73(rq)%Ͷ8aH+ez;($ OrH> g BoĝO;׾JEݠNՂN2Gf:c0J#A !L8_F;,&8{nf'Hogom_\Yrq>;fG=;YN7 h:vSbg69EzGVPiޒpmcq3*< j5j-^}>2,[Yk /f0d1)X#ZŠիVrД, AhH{PZp, YZe4 S !hCFvc7ڗGG;g:7ŃQFGa}g)N˫y.pi8-jfr~=gG!7Xe>Nn8[H|@FAČȧ) v,> CD`!ǎ /O^97IE3$"ĐXq.@[)Pi,0k]ʦmj̭4u26kNrD0ǎhX)ȧERXhº*uT*kQ sRX4$;/+;V+p+rG>HvU)*L2^^ dM1Ӱ*;f갱FϰWt:!vʚ/_J7^9nzO"+2E{Ϡ"j>Vk%ayr:MƦXbST0{MQC HYC$Y2|qŎ^d87uF!"ś*=ZrrBuҟIaLJ* ںwZ,5%JP zw|`0xp)1~ɣ%W`Q*0ӄbc0'*UZbB11"غ"&<'uHѽD+袁ݲ#t[E|+m1oGHR%_'y8J ng9 Z$LuRped.e![sj\ax_^Yܯ5c͸M3UlkxUxnZ?;WaioOGKG)R?sR}>16Xy5'n+K rfs<6ؗ2iUg򜦊\>JaL:s_Xt׺ VwR{zeUxa95rf0n~̴2d"cVfaYڃRҲԋZ<߻C >b'=Ykrt~6h1t$GKr1Ig y6hD~ b.32?%$Y Dn ( 0!$qaυգ&3Px=/ $2V[d0GH^.'2f'+cSͷ1|\<x]:;KK əg-˝0-JBiXkEt3MUrۑ&5;+Z` z&RP(3%VJ>>_3c2>s5=#ʛLIӦ<+ӒIu'((TV$fVn`Sњ<Yu~BcֵR( Azj^Z̀]ڱ H0uZN}>Pݩw'r ɈRTt&u}6 ˙Kߎ9@f,sEJɳ!NfT~1:'qñ15Q^vh xsz|qӞ}& i[f(S>ND;q&"̳N[vJ4$oIYk@AK>4:H(BRDt:K7սKmc1qU>/ pjӊYW偩!>>z5Wh{юM4ȔXC"帄TW/'~5#?Ecm٫X#(qzTKU#HG¥bT~IY)))*sk66]{bw~)r5}M HHɹlu*^W{n?HNݴNitM4ӶNiM4M4M;iim4M4Nivm4ӶvӶiM;iiivM4Ӧvӷm4M:i;ivM4Ӷi۶iM4NvM4M;itNݴM;iim9iiM4Myct;d y{p+wFӟap:ޗkzW!8D`Xpx,4&hUii\]ᙌw3;EJӺedfC7s#OFԍIqKCID˽ħu]D">*%TBє2%\S;R~B0!KӼ代fOoE: TTunD!su%ixT=t7awapzX]e=gqߕcjs;>_+ý{yM3wߗ{M{>!~zws䵯;LQ .YePq!+bh @4.wg6?Zߌr!ʢkV~9_Yصt}?>N@PGvy2k#?5UG\p=(ApzG՛8epA q}b[("ZQư{N)͋רD-&>9\s;e6#NAT #⦩65ul\&ۏrǺv%=ݾ pxOF]vJ@ޕ280קqu!_$UJ{ke!}N1eJAH' Do; ?9BLNæ8A1k15S^!95|ch'9Ud*'@#2 "|JV1,VC*pP.&OcKuH$އ k ̀9axmg[B]6zh1[@fV̜ I! LUN%qj,)HVcp\nñ7I>I+Uxe!?Bm??߼ g|Q$^~5BJ0ˎ$uc dKe y ʺ਩ӕؔnT: V4?(E:bx_U`mH 630 7עQ,~8MmDmvTR.SE-vf(Wճݻ> 4 驌>JY:2j_gʞCYK HC"d)el3gp>`XYY[EvmĀ(Bap\\81HA!KB?3Hrp0 ̓ MTl 0fY Eme1͂qB9?۸ںvÜ6ى7sg7J GXE©{T nR;<ԣ%rC>la;)ZP8;?KLaFcɯoX.48]әw=О>v0Χ=XVюBBjQZe;]fZ[PjV.YhZ6~q$}4P讑!l=] fK>V(GkxW\k\ }s=}2،-69il~d :##ǿ V@v%ܥ7 Yӎ*rOW4_yndE:-nt8REy4Pc)TL{qĮd`"L`?sF:i0!>`fqHzm5)"Lr됞G -!InpŇ7!d@T 4:Z%l|nuZFA`L 5>[aEV6o(+\U jwb )+Ƥ+TT Th2ټ*J S&yxK i[#SD-쑻4p/șEW׷X\ʈ!|֤XJGELɖY\Tqٴ[,妼'`R A6؜nħq_Dmo9:< z+Z:M" H[+ R}県{8€HKN/K!Si9i|izZ.ᄐtU>VR:2hWPg(yZT ,˨5{-EQX?j70*}ڤC1M>?*hcϟ|-jԱʋgKK[h!"*6!vrOCL&73_r1P4Hc%,ֲt+o5iD"E8LL5x{=079$(BQns =sAwgLYs 8xR1<rmUmnED_uLLN T&h#5j܇]gҔC;|,cz9@ ~%2r[7^Xh q jJQ}]Cog!tJͣ RphՓ>{dBA[HYu:r鞜Is "~Q8G7"?yX y`w2\Q{&TLJ F ȿS;US3" (a)5+3:+uN_ ޴2W%Ĝakk+-ks/ di fu ܹ"OeQ7! ڍ{kw(-Gn6#qm7ۼvƝv>CuZ=(h7-sVlM]L<|2R2&KJSMۻ2X; HR2/* MW6Q9VNWCD&<GqΈ3!an0Zvi2 @{#؋4Y:]*Nu!B':{!Z[toV^s6sԒWrnv+MLxJ'*q ҖÁG͵.X5}}f7՜vs aq;A bt=3r |̞^sއȢO߳>jz}Sɒ7-5Ps<0Xq2'`}/@SR8hh NlMl9#g62|N$|cOGU`o1` S `ꋥP~7r8 U1f9?/9sԏ'PiۃYvW:3y̸G ʜ.Z,5?* L4 (LPΝ*Lrqۅ_c)Hyn'hRu\ M%8MCgina'QG5UѰ[ۗU5tܣI;`s+ ZE @b5/8;68^p5 T(d8?(l`:hez~"{e Eu&wG94tk74AʟM}\BTLNKE 4BQ<DY`:3 2c14~RVlRZUq7LJB^<7 $aR$1fn:CvmC*pBՏoc=e"WBDZf1iw49Z(LV)$ [lsWw:@ہ'},}醝rVKe)4k1-'؏wzzF( Ԗikv?Guӹv<1*DLPjU R(y6\}h63Mv8g;툱I)ԗ[nwc-Gce}:f)X8nI? w2+1ަV>Ҹ+g⼯'<ǾQ"a='+c ӻz[G>N ըu۴z̙5,gr->#{G}d/"xFjƾR懐0zf{yKȆQc4!LJ`u,9;)Co= 2cKemӦ9S ,}oHk0s3Ãz=]\\t/?"[r K|TQ,Ag57E5ߓtmKvzں\/,aKR^#UNϼy羈^cdhn?lQc߭MRAK ײO%SA6Ѥkb6X#kBTYŚb}ާ]՘+8^g5NL%ڴ[zhuelŒ^3EXh`0pu?zr@~#SHd"ع11L?Esc縩`_ronYh =8#0&>f%*|M$W'="ȯ~ Ml3 z ;))J$z];&J}.ͽ;u=(lO8ѹrEvMfpWUN4dfŰԦF{sóފɴ0WV`ԙ8&{ 0o!z;н_7t&0R=NRAJCTghƀ\X Ѿ}_W/_OLFiI?éBetDRGdAJ!Xh2z"fMMy=HH[t'!L) >|c+ӅU;\'j/|zꋠO6<ͺwU~\< '*R;;kV|kpv.Ig|MG3^m?XBYS^ 1u?Z?ֻ*$0c~ډ3z'5YG@ƊiNdwpgR5 ݀r#瘪csJxԽ\O?JO5/ vq3'w9ڠI rLϬ^LQR{gT[zvQ:y;^?H<[B:3lh^FȰf\ﳖTy4ݮ| v#!6=jzz)#E˘h0T-dL Fm E[R{Ȣ_/[C9$)#e3=hdpD\!l'F L+]:!,1(oQ|$ömb 7sQ'%aUxـs,SrZTZzΏϸDCJэOT~A!x? 8ՑO<;ii?xpYD{쩃݀tM2 x%bPI [Rk3VCvU-n q>+`1EAb;11*6C&b#qѢka撈6" #zfFtfmO#Þ+)Ķ|h/ufeafc.C'܊YC9ʅB@l>DlMTyV 1q4vgOѥYMW&ϖʆ}Z ,ˍX<שүugGssFߎGW::{8_'m7p73=зFɊld_:u>?e?|$mQWQ`PFELx "1?>H!ڰvz1$ |#a1H 1/Cs0c09,WDuxD|}x `=^HcU}8˰'b`S .r  "~q@ꘁX sL ;oGJ b 5( x C)0-WMzẅ́࿑`*;]C!a(2e ʁc" f $T CG^CEآw0)n j:X΄"d@5ز"QG75b2:pƊu`CI=8(} H@^bS H S"`D"&LAȁ!q/~`LBGԊEg(T*tӵO+9~O"a0<8"α5R*E5 BAt0|B$5 !"}#Ƚ@H$B@<̐~ )԰Ě8@C0EL(*+T_95/e2b'"" B@N+DNQHU2A0Ȩ{*?Ț$Z?XPgN,;;лY^=˧[5`Ju[cy]>?r90x! (R`-浪UtZүAdP!KOsҨކ0 3_%g DT8l;N-c [<2@ ys~gpdo2 ^ Z]|"?#h/$025 $4ih5kdYYWhUZFzaBkqЧPĒ<떛04=զvjLJNw\n{%"ޅ9B"V#.[u.t*;lusoSTlv8pA|:FK̟qΰXNq:l+f=Eգ/P>e䶝[nSn>~~V+m~ku [t _ġ㑔a<ʱմĺ4}J*ĹK@poUf ,Ob !կ5ivxMaĄv-~JnbwPBál4 j)^c1ڼ=Z*[l֊s(-sDPVZqXdq&fXHt<Omnt_< \ ʛ&uFXc;se;UZN<.m_1_RB_ۄVB.$TD1gr%fӖ DOuǧ h+nMF6.j#kc%|pA! n+=Ih#[&03kM#6!4|@P@vGwswbsq 3ņ):ޟVfr7I _`j'rxl/Fdj;]%Kf\`P(7elC bmEC6DbrHL#HnE^2`Q a*NʡW@ ᴦq`̥Ā=BU272&"`آ A$p; ~LY)슞Z8r& "?%yFإ"PsKڛ648OV8R<~~3^spK'|3_Wvޑp 2lJi -[Z46ύFŋ;3hY Ȅ&mU*NϛQлnc;W3[&s;NGNj[ոgtUS 0Eu3f<ܲ&,F0C !<5U AhjT85)}RHXCSc!N#xC0F/{Vȏy||2cX9юJlC2qC5qTj`2fvS}VZ8.Ygӿ|-8 R1wۚ+ )l}+gk "X!sj AS;ޱV(@P 2{dz?0! \Y<]Թy%kK_?-ζ?#Cp8(و4Ua,-dpZL2̲YDZVRf( Bܷb&> Iɍ;0涩^Mi_6K=n>h-G^Sr :=Q*ήc'(&67I9vG_{񷞕yzYN'ai UgWeyZ ZR& 3F\&=>j׭*YN'[w-2=edU.}ݦuGO|Еʗ!KENL2R$>M uäX`Nb`:00`ĎEddNN &#iGGПwƩ[.zn!:s\iEB뙘e$C NeC/ eSxx<*'ΑnaJ0}iF42l`˜=P:k`i(}֭O:BNm#ß 5 >XS:qCě9ݐNowl˩] S&^t Qʻkv ׋:Mwg.GEqn.zXݘ@kNq*d貇~}FyFLχǕ@z?u@zTG| e#us:leJ ]5@PooIe\inK).{vK~ 5tON3:H3x?wDa㎓6it69n ]ɳf4vi701?<d%OOA"g>hu yOodt⤵t]dG@/as8GYuJ.2|T»L`©J0e YY]I9.(/oyM_㷃6 ܮ`n"2QwؙF_`&CڗKDmr!f 7dC|3?[ZQtziq*|q=y5AQQlG,ۤK `bS[ ̈́WQ铅 Z79d ԮX eopg",S%J z¢QP$-2!h}!ѓ)v"jёnG=d!QAa랏/n׶)n: uʘnyMfP*DfD֟9 Db "%%NHjIU:@5 xnݕ-%6 RMG;~1ܛ, 8Y0tM{b~O#%<3 FDz&ι+$( mޖajdFѓ̪,eH1ČX4g<3h4CdmALD9- ݴHWY3V1-BCc10YU,P"Nt/:w O>{x+8YP^2I={ QamG}oJ#{aqqOd{CMwv1L<MٛH.r&/t',> ~Py[6mϲT W6!^q:'Cahϲw:8jߖ(.3 +#]~lkKFYU*bAj"`\2 jիXh^^ȉ4 LIH^>|8c/^m4e!uݧYuhIp^u #6g߫5$c3 \fCc%h w_b?43RWlzLmTp_O D1t3y'׻8*6GeH~dD4_.j!"+ZCAExc]:PXEڣ-([ te bh}U`g.>)?(USa@ >drx+RDCn9 !XTv?$hĂxף xQ{;:wWUxDcWgLWMq5,DUҽU5:be`ȵh.A| ǁ3fC066e͛YR6eij_1i7rHj ^jMNޥˈN0F|7?MlblJ(밹.pف!)_]R֜Ah 5^䃀ŧs 0*?[L 2 ypM"#jj( *9?t;N}Gl&T5 տ{zvcs.3"e\ոa~P`LYŕȵ. KL(k[[Tkl"n@*˒~ T!) Ct]X#^]鬝<țv9kU{*ꐽ0SfvnRb ȓeaW:E5w< _E;(ϝP0n0:L͉̰ΰ\(".L֏*6^EuuX]$SY Ӎ{&󫝺7DQA{1ǝkŒV&;O Ӹމ4f|^Lm2uBahB51P&io ,Yџ,^gFW=2f$1#TaPplE& avbFخ)qҚʨDbDfoܿ6cy hENuO3Rcij<_JH LdflQZQ?2|jy^bS&W'ՈF\CocII7pXrۧp\o 1ugHGLU oEV?MK~)hG\lG+Ud !hx[Z A[ 1m( ~l#Gt'K5L[dhCf=!R9HEz2- Q4vat[޴/{0.^'jibXu.N|Ź=6T )6s{(VVRt-q r-=*%EgS?пZNKQ-DLcF*rP= Z ) Ta\xp[\?W qSF"uLz֣ۣQ5<S9eTtUE+.NI&tvSB`D_v gޠ+*+X~!Dx"BEn,f3Z揬s5iȥYteԑRc:^YOtu;VSn$EmE^EJdpyR)gSZ~IJL 9U!,4:<Wr^\Y#sep.~_3W'#bbB(mF~"!d~I܎~I8o񮲩ۥ+U],Q[mmݝzuzݝ9Si燒_K;#Ҳu5L0 J|*2JJ^Gd~^n]E $ƿ.; UbQoD Zy,(DXk[]ӿ/>SK}r?c*Tz H/@)E-WQZ W2CYUk O@p$I ycWlK{"<4TtBOZ9Xi:h`u#e]@1:FpRc[RU\Q:;fi#ĴM 4 w#mMoo,n{YYnUU^q:6ƮIz\RՓjn!U5[H2 ]J9k*k;"zb1ńwwM (j7 BF䫹qTAw,_ߌi @q(s.^*o~|d$*H~#@7bƉԪ47d9 c]lOҶpo"AX*11A6;WX52;b]il5.T[(^BQkt]]t6(S,ZLR]}D&DU@,.]QoTURJTy}l}$sWH x\$x)aJB㴊sKą,_'8y=a}݇r)LcYqI//uNcy@*A`+cBN>+`m_aaR7Jhj4 3@ tx7=^*eq;cO|ʊ_?St\1 Za1B.f/ ױ%%4Aɓ&ScB6,vhR 2U"3T<p"s:Q lo\*Q5;Q@L{7Q554'u |H"@c׵kRnhi:\bu1 'ZMFM=*` i1]&2_uʟaM1qiSic]'ђL?ܘ&7I:L)WtͦM aH'NjY5 Ě_R*)1QIpǦ]f&_U&"!5 tgI~0&$0)L\Zh+i654Ltr`ҦaUTF#"L)Φ!j\&:90jSARTԶMMj%x%Rkl&"!.SKZLq5UVA ɶM%RffS)2K O: LzbbS=LI aS2gILkƦ1c#=4./U[LKM3&)h%֓D/&J124IR%rgQ<0`q2L3.,2s KlyDF&%44)M!i72^6'y@PVzzlHB@ݗ~Y  猇")Gk'@o"ٻRrf\Kۦݺ\^"d$ $ RŇ4l<斏YB?Yz:HRq%`kmT59nLTIbF&$N8|`EDkD+ݦ 8LP5ʇëq@֤6߶' $[! :PTVQpc"}\6 'X%8VJbNgYFme($i5c1l=Ra NJ]!|svY8sa&}9O?*"pԸ#3Szߜ5X!R _aDh/jANyeF𬓁\aBA5ڒ@ ݢ(Z怚2h䃽S\ƼF%vYmyɊ`}E0_e[1&~ƽ6yNV#o׷O5 >y!9͒k1=6Y{`ǪI0ymp=( J ^Zk!8ܾd~nEf w($]ox*ШǬ+kl X),"T)Sb~HP' KjZDDkq\!=ŝ,ϕR9vW^LjH'_"`lJ~/(,Xs,_ByE@=J{")[\wJ7O?NjjLf@8(I+z,:a6eQvMkWC ~=i9'Gˍ 4=>S}XCl~[< %N짙v*{w%jBIERh٭A+S;?nM+ kH'![BeXµUm=wX@RW6ҴwciYY#" i ;svmrA®_?s~i#)j}=ֱ!MQ,,ґ(LHTK)JuߕE0ۭ+{?ʇZ?)F aD0w>kQ\W w"qw@,g1} LPo29;O/ vF߉WeM |U<7܍:v{',3Dм3Y|ECؑNOz 0c,/5! Y+d34d L>_ Y,3(~RZPPTyԨcveVoYv׹r93N}g`j0 菜 c<6eؚ o=t;,ugSKj`?pzSB_ὠp5VQ, Mi*\ -n١t'... >uv]IC$>7#(Rk_!z;7qW;GG\7v鳗nڱ{i`zх/d}Y g~0k(`<ؖ'ќJ=̓~6x?feF&E.J09>jw^S~ܓ\xlivb9>Ž\ҫ:uԫ4忩y{=C1X& Z[oRwۀ]y3*3k ܭ.̋ӰwU%Yn{SS/$p0&="LZѵgl{9-Zg,u5[[6ogc<Mw VDۏi:˱UكB{ c]78FڠN|~՝uS>6Q3ĖHzW) wΥǯ;z@>eu)2`пuH5޸GHi ZY# h}'^si"O7Kf,OXl|._+)'M˯7TQU%r,= d`)(NO9> Q8/m &e{L 8鸮v9(Ahjn#\y'p ZSn)JNjndןW ~[s yȹ$1uD&(?GI!@Ԓ#N悬 %+N!u`*qUE힆VoIM:)ujBTO˰~-\L'HwL-Lg1|\xNe!/~5c^ifdrjk~jaoҬRЮ$wayH& ;C |Sڮ)|^R<\Y0ď̓G|Lf=UK?j-/N2)U9k3wsA;뜾Kr+=b葒T+(:Vn*"ێ-:;A? NG{ԛş] LuKV-yoK%Mo@yEnf6.v B^HAF Dtp+s>{f;J?.8²@տXݦ r[;s) UtEh-*H6Nz߱xLj]HAX?FKM'B=`*aZpJpSy{L"Ua_gUQ0X|.뇡ܐb95{}ά32Le8%J "g7pU|-\ȯ%TMUu4uSBMpzv:܄bR}JEiWWr=-_=XY/=Qn,PyS\D]̎MFFI#S!>=d(|ҲJۘ>D]\x(#CwuaWC{ׄ7 vXr1[#4N LKyNÃY"7l)Lp.) ́Krc9<8뇏SP1ЌiobכʸɧHeadwN[Ļ󺜧 N7n4Ϭ=S\jj܁LMm }<1߿7!8C;Wp=b3QW ECC/"6[W:iXla>POtǯc==w:*b֑pzwvr0>9 .tUVQ 5s<{>MoS ]NGP1iiU?tI[ċjrZSuNZU:pgMOeoN;"MmQY |uRttNL1%Ny*Cy%|dsYBp3ݚaIRÒM=nu$ۡ|YMAF1yov,N\1ݺT.h3Ѐ@z.2 9o?&t9A>&P ͐)6Tkh31 4l2%pXvJ_BcLWчL7vQ4Iu)x7nkν#(U}F'~;]|D5Qv)2tF#ͬB`*Ojffv=?$"dc(Iz1u\^[uHEL\A`,/@D6 ԋ*+4Ii& QČ^y2"gKqP+Z h+5GmXLL6I@R:m$Oț3vDL[knq.t~ZNIvnσqO3;] R=LlTJCA9Q5a8 y:cjꄬLEL`,K3zZ"\;&K-5c!L""gaLls*rZ ~OKWb_SWrQIŬi#,3FLSRP9ю8>R4O31DwQ^ e]4iQW!bk+舱HG@q! .EDqލG$E%:FM&DI#$I D  @$ H@p@IBF22o weoC9ɚf"ߩbUXل(9wպ^`sڕmZDy* dBP(NW;͈°v=b)BhUz"TfeL¸xy)Ȑ]x_Y9_!?j7Ŋg!.Fv:b풭Ij>ʭ[% fULMOV*Qvq,ܠzwavnt'=9 crr*'~^@n% y;kd 6PYݱX{CS2[`BhU  B^=^dŋ"$j:&yH:G >o0=W^v=Oe?<9+a$=7n3#-x3*yK5Y$yDVE:IIzaʃw~wKzՑWk4wA}l>sl?!Ǭ }=Tثe0 M2uu "4p=y?0n@M΅'u[w x\e"H)-ɉ8\y{r(}vlXPG6YDmgϼqdvϕvQ wG/.9Yl6w9i̓&Opr3E}Cn{9̔ː[X$L'Bj<_: S,&F#!IΗ0zI9`Q=Y2xSi2ʐN[ =us; ;<{-[1 J}#m%K@qBuI^*>f3`AlxoĆB/ Q<=/ n-!,yuHYR6-15wYu#R2K ⶼr3>Y h*Rю4[gTh4 b,{ĚU=8cFotUSy. oڧ͙v mMjMj26!ٯLƯ>^-/:rn_f_vG$ S鶡݁хf#l D*8ԘY[8--.[Rd{{.nbKgN/fNGMgs!TW=c.q[QbM~xi. 6y@]]];;}ヽFM^4 [bvhF!.R{BwxRO#5k956~]C 7R릔XQq^`(E Rkg UW{ErxA+nY<*yBC(PGVLZl066ՄIH_f}^oɋY4ˊv5g8}9|xmqt@V]R? ?- ɊvK mZ1ȳ-I؀-_-h~ ȷ$m*#IÂV;EG! X{kQ[;E"\`VaBF;(*94rtحأ^N <}9Sn8OK>Qۗe +MڲhJ[ q,SFL+a͛ͨM.Umq%*DqG>5n'$_ܛB +b+_ikF <'Ȑ,2ƅWm)!z8tfe]*2&Tum[ GRn&HxOPGu懒CcKoHLd2rIР61ፆdu`t'F{jWe=Ph7R\U Scȵ5eh3FNhMo1R=\٪SiEvbDgjK*-ʣr#tCO}㡄 ṷzDg_@p?ѲǪG`?'wSxIٌl6l匙.͠k%dKBKY,JL#%G-jc^H-'6{׏7 r9F0a䏸^pQ·l$>LOwGo#Brw܍\=2:LٰӊNIaVY%ή"QWNE7Ow'NI˺R-CYTfʳlAY15O3ܵB=+1c g{aɎ6z5V .J;{.>ÿ-;v1g/瓭W%KbN&}9MqRp`sͷT*t[ex(n>Wz?1BhP]O@qvX;"b6HXMըPPX.N  QX,\. B}"aף'ڸ{~F;1*5KTete2)°Vndc|ʼn-LeITʏPvD5~6HW[e;V.G /;)I4oc 8`U4R4#nqu 0pU՚)}7If]@qw%j]H<]Ί-y hlF,KKK7ҨLfn& ZK*D .Pn 7Ro+f5@dsfns:P}vh͠%`'  |H.2~I \qXlnM`8.Ú^ Wf >01Ug/gFיt&)ZL;T<%7=O\ œhf[|Wf\xy6" \,Y9J9,X3&Ѥ%3J!VCk2̰- AfD}n߭0:5@i=+z״F!5~qyHTfؙT9@g5f߄Šo-8;c<ɏ**z (T5vN̔IΈ4g"@`O\&ւ^ֱ^f_4q?$pd> &k> M4'!#J;ڲ C9MbA*l{ڕ="ai+nOFB0u Z_4+4YP3J~Q4VIQ"#bpVfeE&1-P Ol#j9-}w{wSRq@ݐW?RFyjo!A,E~%3vji/{l"]$Iy5IXq_mhxMUd e'$I 4 ʞnCQT{,WXq+{XTAz@3{{ OҼ> &㥠*R^Ku>艦7dwL,^4& &#mIɎR?Dvc+-QYrb_G#cfw&ZQFMP9t*>0}`Ȭ+ca2YK~( >8z+6wiCAEt)GMJMG za~bduMV~NoM6pFD b')Њtӊb`,Z-['-)ޝ%TL7y?܂!R1XʊOG p%Cl+F&_:7y 53n+in<ЇvFO-#[u#kb4*SKd}jt槜)v[^b ,Uy0E vKۣ֗:=v,o>/!+YڵڥpoV(~Z74ݚc:= @6*ҩa'oPOIہb} \F$?.X2BSŘOYK:ؠKlgM%c" GW@wjivbML. M OJ:PӔa-}*Clfb?z7N /&l Tw"*7_YoC0|6[7,VGHF ݟ5Hb %d_{wGdisȹSZARAL f121b>_,CcL'= 0N2B!gJ>ۈ{4'Κ//eh)>m=M//L 6iYLhػZ[ˠ"cR?t 1ս-}~{-3t gn P$Ҫ=&%`_G8_1{Pz.67P %ntsO{iX<;5$9de_4ǍS7MpYp]{"R0Vvh{[9P]FT:pAiHol &0AScC9xB :3 aAxG@SObN;𭼾Hx p<О+b9 ԊE*\U eaLa%B~?V  w~1ZX\\L i^ƨSvxȯ} 7X#8A $@m>=~$w]D;A ur`'+D , K Dbx\?>Gydx'u,ڸc5t$xVuUZ!/^&CtPxf٥:XWFa$e @K 7ED׸WO"w N^f .SkE"Vu35G+%U3řzdf0'{έ݃>FpQKh>oerf E"`^(# <  CRhFFhI>{Kjdl"dh*ЛWqKw(3'ɲI-yl$?Я ^5q^eP.J"_oLSvK5pmGܴ87]_JCvѣ}G8*EpX,5dHZ,Edp֫UR˶[JxN5uaK7[&FL0=q[pRݻ *SیrVX(j?5y@,_9_?:g IlCLи UNHG"Dz*xc7V&';'C~#t?C~cP <%Ԃ(X]7iJރILzKx(ȈW\F[*.--#SEW<)O_ZȤcY(aj1tV5Tt b`m:oV8Wotټ.bewvA4s)dCO $ʵnj֋Ŵ+BHdɓ6lOPёc45潡D9sc:"B8@{F.74f}x<0.v$|qO96r>'RYڳEv.S@lPHl%%ӤC&;*9?<[/Ȼtr B2Da|_0(>FWz!é-b)h댥v-ZQ"4.z2 p.A3w GȌ>lc(@3n۶h @r\z-_[ZaͿ18'ZYloJ7ۈ|;e;hA޾$wg,W YjЭגkVꙌF#291f5,!bmdhflZ-#~.iYܗᖇa ȫa}HL[}A7B5WFO=ЪDtIp\X88LLu2^_|9՛h]9.L2r 'j^{Q@{#p.YkK Z#A£QsBs.)"\g'q8Qʽە߃[})j2>ouO죿,s)u3S~ء!JY+G4 mzob9!,w0 33+ΐT_YE[ZI$JrDܸ"X><6$@t9mgķ!j7WeH/Bwk象a"ICG2 ,AX8d F`r`a1hɔ2f5_ eY9E|U4a^6 !췯a,C r6zX̑eDIew't1#O . xXa]L|)ӽ SSEq}"[1q5\ Un F_E]+CyiMx*#7^n|~aibOyGHgUN԰oZQvr*Z~oh]ՆNIw/,˪!bԽ,ۼ(`ۮYL /.]"`_̈́%^],zEsj2גm=Hhou06¨ TgC3[yV/:>_=Vb+nn J4H%@H퍨D.f5Ʈ+r(dz'h@tY'nb| } 3iOJ `v \Չug%.0;غu3]ST9+/ǻ E̲,!-g -,'$[DI .IH=wTcT'gTˌkEN`0 VTvnӖi}$"_d?{ uB]r{ZK/ w3酶Dlp;`s߃QÞg-;:87bHbA?!Jhޟ9Ͻz^. I :\.nJcj:(ٛUPP5 g]FNU=D-:pYci<`X>Ѭko;L0<5/8VDD'H7aܑPL}D JY?=0Ϣפ z٦^)aotJB:1qzr`S2.U>faα3.{w7}O%̹Q|N' 0-l"j7L) B%y|sdf;rgꌉ%s?$>ڞiO(;0h9o-ˣ`GG]񄌫8o\Ys?7#]wCJz@VXiT Z,-`hT"F wF:r}ݪG^iIB;Cs9 :ۂs5TAضIbo׸9>guxx}qeZ-"{؊›>)1.['dI}ZtWP;`X޳UfYE^EY3)L.":FUj<U.QtDC>p(::[VɬBtZrTQ@)M\"̅P|QPz˕ h@)zn0}PEQ|ǧ)K+F7 P/p?aozyttz8Rou=#0+`TXHX*T(ڒ\:ϣc,YZm[?VS[S)3MworaȾ?vV)e>}}탒6q;-wv_OAX^~W|h=7“u>;yܚ#(& VLGn__}6_nWXP l[>pig>ex&/Ɣz\8(=BL97#TFըwH-V@xw7Rk7s$WB(x,E Rzc&IZbшb1C1ARqKFDd7RHH6V+=Y*{٭aO$f;!U{k3U,B?rsQ4]BӓJyL8]:_DfJP(=6E2Bȴ\8z iEw tY~ `έ\\?nOǹ7<'VuoxsޡF;, o9͂&0~fuL.?*+~Ach 0v'lp&s#a;`ex.3c3ᨵ'7:l1%-U9Nz|O> +@ҼVW*+ŌVDaT)RKjւj[yW79!4qrxVhy9ns "d :v |NJpG[Νd7; 8w =Y3~֩er(qnkSR/ELaVFuV558C_TɝLT}hX Νa5 y9`8a* li`9sC,n(W$Yv-C(44+"lٵlZZ7%lXZq"\R+K%y &:,G3#{0)u9&*N.Vp"K*"i0%5|v׌#T7693w?q~1zZ(/ZHֆTz(O)=I"C6-r#U<5ڴ䖅'e98}nT) Cbѯ?guIѫO,fuZZ|5=qkٖZ_g0 {݆ƅoOλMځ "3G7˺yyݯBt ;WXzj=i7ni3V\JܯC}& /RfLADw | O/w Hyy@3׌ e1^/cf3xho_0w=tvd"k6q凵=XYܪTz]Y16rsz;N¯jz\ z,!8^ ¢t2F/D$EŒD1x<4 Rĕ"R㺁jGb}wUNSz!I<5~ cTC}~]%b3󳟺W:|z.O_ڑ-eF9I%@VIhR0Ƞ:˛<J*#doxޯOxsBx(6pV9 :q6wLo$άgE}^c.GxQЦ0|®^qB/,+YwI G=9UhژGN#v{uX$m%peFpptݎO!JoN;q2gOD#aU[1WWVKؕEa#GY^%SĢRNQyoGX=#zFŭ\c\c<\6u#L,d>ٓ;%=#X|Ԉr 6Ǫ_>V}8ϜӉ3}ssP* *ngW8(g L+`0Խ0DΧ(*<3"p!?Wn cko^|U ҏQ\TcDod}B?oQM:@ȗ7&2s+cbۗ0A(rnTGUq ^ -'g pkJ~IbKb'[d0/ȎA#OZW50SSST%2J#\tcJEAQHT)EB]8: dݿ䉏9 CnxQrxޫza)Š + ujcXʧbi2"C̼tlMc\Q"* Ag^ qϝz^֐G58:e!:zVkflq%T#J9Qh 9#„mf>v'3NY֖;S6={,UGbOL]GqpD?ː !AG_!4 )JOe<Ҏ##| 'X w-&$[Z7jhVI v5q]9oHv&{v _&0lli0-q|Й2aI'Tj2APY+HuxQ\1F)ϞX]^^04#ɵU$|Ѯggi&, CX]06QLV u#[}lW</GCi 7W'½_kx`LfQ+]K_PC_-7KT DD>*R"şmC2<Fů8&ךN{̛̼QocuŰjh[*B =c 6!I.n{ ׮Ud m62EQ?ʩn7RgYHlI\PFDS$̠6XZ2fӵ`82Nt[  Z?*7Tf$DO!mIC%{;Țf>I,RݏgWSRv6t4H|pr\6 h{YX6I3=ygxV^SOOMlv{q^Ni!Eµk PXZlK!rˆ  $#R*3L$2_ڸR"pHJ{ }tECÈa{N)|+[hm P[HʾwwY}q/wc^mC-bB;?b$Ia0 2"jjaJꥃv%Ra㤶15$8>VY V:9[|k:mt*aP'qs b:dTf |bmo$,?DTG&Ҭ e`l.K,Z;zקR>?ΑxE&S_qMg](GH|˹(,u-R0%*"вG̙2&4i- +"Bس-JاE]@l~pJ) -wcrGި"np'kq8N&' ~G]erǏFJO Y'&mlFdtzT]kA:qqǴA(ZTr >pKL&4jLQQ!"=,㴱x0zᷣG>Q:7L"![ 4RKx*0#3o vY|(5n{@Zlc2O/;ʺ7tvl8r E{t&ZQQư^)[/It8QL{cyY\8J[4M{.W/kF(ԆHJ(Q ( b-UhXZNj0d0` F EUTlFPWBf [fS q0w~{ݫYŎIO\&0^`ġeXQ~]|H)}FK|#m4Љ /Flӈ6 ` ol~J7"yGP"3A-+j8Jg\8Mzf;zoPHz1 |u[MSRX8כX*]8IU8w^uT懶=hTصjыЯePe➡0sk!8A#r諵0dix#|ٮT CBKKIxhHs_&/^ |k޴5Ot3^0^D9fs9\א?bYHC l-)Œ.|rv |v7SwڰnYϖzksf-N 6uCbnJX#=\!XffW~|ڑMsT,{!]~Su>EFwHqD;mӻ` F <Abvp4SKă7PZha?ה2Ax ypQ V~s oW@yIhlau0PDʤxw2If\ȍhM,Ts~ 4ѧ.1r@tLUCx^_*r{8`ȌgѨmP n*k=hVV5Q}@, hJ}T ي#>^TvN_<-*zvI|4Aks4B!8J9[\XdLެH@@̂%!x橠7P9ߓ~g({?J癜Bv5nk`YY==cыr 3>O⺷g%lr!Qڟ\DXte9:Ps&qI ɯ/O8.FL*u|B[,lxD>H+Yp+v)/3ck=2y{/'ej2 a/p1cFY2dɨΡnMіáf0-9iggp>n\:ޑ34$ʐ;K'L=<rP怡pG*OK7CŒ;x,iD3p#q!XuQij)#W凡<%G-2n0,4s˓CCD-KҖ7 NS`iYà zlXՓE TJ]{M݀ȧ=^ȗ_T?X8s~BG5jT =GWޯ)YV5iWTzg.I7TЦu[ڊ/:< S~l5BP~cnln痓úV?o:Mܘq}ǐǎ`XX KYQ*2o1,KlDzØ.`1 w&#C 6.q8OcxAP|*d|6,1[huNv5L>7ej,iI(x4@8wٶ:`8-Be%IegJ2,Uŏҏ(ϡ4Tw"sxru(NB"uӦ6n(Rbމ&ͪirf'{φ 'm]G+ڃ[2}@׶=ZsTC1V|`ر<ޣxHx n[޸-ZǴpKq]4bLus`q;%]yI)1Xz=()̦J]0(* t}Q@'bPO5B۩dJk}UGUen3~eCY\}bQ͕tw%M 3,3V,ݻ9Jt ‚ȑTgC9\1CvJ3=3E^(gpӊe(OTfrK}4qr&NlێӼML{@@NPϸDr9B l/@|Vdi.=mV/JڛwǠnICcțhs~S.N k5d戲K8Amԫ"u:5E*͚%^. P#Z2̚M:/GH:+|68EfBu#I2$.X`2" !P/R׫+zI(y"`M5c0(D+Hrl ?ᓑyKvJiA JTL>FugJ\8`{m^f;>uzMGM=twEIy<CQv~se4Ӂ4Ɂ#X5y,OSy=^6C_2OqhyNyҊ;ܮ8.O4تU[:de!=Ubb SkN9Iě_*N}k1e1dti 2ӝHEz^s=duv#qHH} +?v}{23Bx{.سu ,i Ye-eeeBYAiiK磸CuG&]D?X=fD_|8fm:;.M`Vƒ<=9]iEHwȘv<5wuޤّN -9[Rq&W?Õ+U v]5>y_4uLedA(SRZ+cMV{6;㏪%!cxq׎7yYr4vbNu}Wa>9kt[{M$UZ&yK-eTY;)oS3Хm*QMneaZwR >,vQzDG ކ?܍4/$ (iftQ wEkr,% V`9`_1$r0Pf~Ϗ%h:y|%վ,V,X>jŋ $=_g=Q`r(fCֱE5EHdvNB$@V~;üx;͡*|poxDZ3(ałmǫ#4̈́ZF으/D yUᙵx`a 1@?ZWM?4%o$K?mPEۡKܩpu:Ne3vb*iZaI+%:&#K̥_<ӛ/I+T3uS^h}Y|P`3fydU)eU1ȿI-Ͻ&f{E9P$bĺ?lኑ93֦PNW;r?w0if$ߥYjR"\kZu#&?$KF .BmO%lK!gl~V䍽v9Evq*=?ˎ0oÆ17im:IR~2vcxqL Mq"』2q P.{&O [(T~JP$l7#sbj)A3\PP4vC|XV߼8\4Bг"Au(l J2vU3!{urxڮ鍍5'w!xWbҕ./% p'U#}qOU_ye*PAByE!K )Vim_ euYu.4(T$8Κc c_8en1pS:Q~y2ێW 8b }!WÍ51T~w^ÌM\x6/,XjG$Z-C!-gB. Pib4BA+be&dGYc_O\yPl(8pa7 -58WZÌL_[ 48s]g,[cT+|$$! 2%V6;9M`pD; 8IԂvމ/7~PN70 H_F۝3`v>U >|=$VŸ tJ-ܙf7hWhZ,uA _Yng@[ H2*(†"^!}1U-nѵE_zpII}9܋gMcdA1HeF2<ȌPPɘ3gʑ,慃e gQ#OX17rG-([jWTX"!e1^>Ta_dy=?a/|>=Ȣk+!n2x3}`l}㧜|W%ލJL,buxfyeДzSKo*?vrh 8P{[ 7C;unw&d ٘onq6ې4Let9#2GcRl~i'r{~^js}031w_7|+*RNXXXeaT*HʊOW:Z,%bpRdBvoHzY5:\m N͎}?N>#osX%fD[wߨ $F"]v,֜C+>Ca?0se{uQz ^f+H ҉Id!A7g^̞ PRp>8dEهL:SRD8\:^?⻟Gia(?Hgd]+"q)9vgb p|)y`!gկ=CKr>2=G ̞MʁYu6:#|<,W Т_Tkgu?Pqo!54BE;ɲ;C2X|)%7yy]}`QT`N;""plxa,0d `E<&JOao "I5 Y] v~V!CraKdw +?m;oY&6/=xV6T%9i_+KI{)U HQRf|>܁V/.Oc!`։{_juOJ;H|apf,zEakQѠ"6$x lyc/\ax bW.^ب,(d$n.,qsaWvTP:SGǹR!ĥ%YdT._wK31%$Ծ "11 BW195#J c J ֒H?0rΠHKi/H"`1P8.6qnݖ& 79n͚ eHym +Ш>zSdYbk8_gDlmş(A.F!$+\?'0snVLitBGɥÃmW/GxτXYk'ERPJqS L+1@X+VdA_ DT$#5hw |-W?a%Nw6JDdb@XGP ~l4? "O/9o[#  &7,:L"Z*p(1q3)*?~8omCs1cy>j?$Ji|#x8`mKှy:~umʇɕw/jdqxu.r?fL a:tυZAXzoՇmdU+ Iڗ6uQ0 H?"[.Xð)aո*paeDg]'Po!>|2ތd? 7h!G gB(ނaB%w*^~PENxV,Ke8tE, rC$8bWr}80BЦV*jj`,%F"\/+pd1bd2dɓ(xQÀ:2() 榯*bVsFF?RNo09%M-*86\OqGՠhO[:-p o(nU{ES ECwqG4i`ݘp:4y y{HU^~ϋ]uuf;k}lSP{ brԅAIALpl Yad;Rx|1)|/c4MCm@ifdwz$eOy~U2yߍ:?W?GexS'53^)%5*LbR*obҕkXxT:޲'hV#5;q@Cp1 ||cS߆GDWxp?.ldXA4H k1C \|Kn}.ћ0?&&q'tV?Wi)nTHNEQܡ6Oh fžP_<}3P y[D=Zf=q!ngE5FyЦΪ4i(# #^tY2e\T¢gV leXE*4ݟPQޔ4Pc mk c( 6,VeO֕ëv @`iSuiI8{rR Rx+]ɯ*6'̔?.LY Ccl6-G2L-B$J,vZ@"*eJ)a{'4B$&kȰO?*`7k1C-+&U@lK4=^5,7I,ϫ4Gn $M~Ai#P"EFdJxl]pX81,*Eڒ t[- dBbPby>ͬ4B+9\fE.ɿp^Ku%=?lN`mdՐD\ \4 +gz  %sAbF?A@V(ygq1\RN[~6C3˙"zPpWėrQ_ -6& f ̹ʆ&J*t)HYX'! E*̰VXb lidM&WM0qj5].QP-rce7l`T4qq8wʓE1}P^>)=p9v^/lv1{vс@4'If/`nƭ^BpJrdCccz&:zx'X7c0 vȬ0c ᨆ2{{mʯ0[R%.3_U?.:n]b.yӖiQ@sȣSm\P`nPun)_A{:Ѡ7#5D`h `-vm*CUee2ߙa[:Sow>9շ.'yn#)Sg$")k*|LZfOҋ1^( 2E f3Y#S)!x4CUB7R*N8$jo#l+5fB広)sZY8+א`2t2gl<<ۘ4 ;|3fZP} 5f?Y'.Dhs?/6`]%J֦'MVsuޝy_ֺ;BL}vz곌:j%y7Ij~AV똡R$'H2ɗO]1X"TUD4G+U?6'&k7Ɂ<ï:P{QyG Hƃ>y~fZ\! \WAW^|IoK]?cX(PQ8( 0Pa[~BQXXIKS%/1iLZa A+WoSc>57ʄ/w692lDa A;0V 8x -ٸn0a+wZXnlKjpɅ=Ph|oK氽 R. ͼmmᆳS4ekdIZhsebV^Nvgq SLHCɠ'k~`N f6߭^ra9*w) R$6Wۦm1}7FE*3_ ՛CtqΦ~,,&,)DNQ)# _ Rb%S&ajw(3\1_Q}NamOrx.jYʰ=,wd)``ۡ&a7󫵟R |1|qrhƄ }˴,w8#yR0E9M=/~YMհ#)Yfm߳}%5V8Zd.n4)s-Q+7YK/T]× f7řNXb f/7G[Q 8ՏUubF2u܊2.A;ÓmP?SPFݳ\yTČѱ1o' rַ$²:Y {]7ֈf*$e(D3WX-YL0M"uxམZ P  X7 d|29Q!̷)>L"Ď,,4{lŷ"ıV@Eq${P~ ZW12~n6b ]Ss Tx MQb è'Jo{`6:L0C#B(*E/y_1{!8SoFGn46-ǻYN n6NqqsF\W][s+>,L9%nYԑ-lO`;IUgO xyQs E&}g7+0p V,9A4seoa!M@TPdVɲ$M`{nTu5.(^_* *ޜD$}y U)ZӺ''5[f8uXNT, ?rBȃ/C(ʮ`(3u]x{NJz4OH`mFHP9X edaPZ'#} i4pZgϬtWht<oW(/hWbM Y GQsrr)ncIFb0ܑxq|]+eq\^xׯ {_"^e;\ID邽 ?=hXEH;<$ "Erؕ3h JlZ%[R4_r<(`(T-Jm0p $n?RDzAvHoAj#+tсظc` >`唠=W"k@vf{ghX0hT5km0DnHEokmnkkfOrFZ=2#qHc#qH|wacDO;ZF23 FR@8}.XF'o-a.=o'mw5(98! ׈YJNlW'd큵L%b frjvNX3(Tu_Kis/YWil-5 WgN!i뻂WjQDT,o.խ]-D_ ܦX("}]n T)2fIN:dLwfxH\IGa7 &.}} 3~$7v,o]wJ'?53!H73`j <IO$[QM5W7(+p+Q*MgsOOJmIFѮCK\Ns<3,^tGl?*T,C G1+Ϊd1,Pc,1d5 =5) FGč5:#r[,Sxd68LރpCÞrU-fU~}?@ 5S|"FiWȬO&YQ:{2r'>F a1hF\f78ӒsE5XTdG\<&ݑ͏3}c)O;A=ߞg:o: * s8`m[ ,d  &,֔6F^@^*P2䥓_rbKhec6VjygHr1ܔG 35~Uedr|0`0a:22&_LƃRtjjլ!I#c.Qqzʇ#Q)hd,,wz@onI_w 1ɞԲI'9M$idm3m rIȝ¹ica? :m ίvkk4kuP^r'8S6Qߐ.Ŷ;7(5SR &z/ RyƝEX?N <g7r"wݷlE{Vjd!wLHD2#()W'[F+rD(X FA ̒%'m3hǙ.p ]\a6~Rõ⭠D} 5zh;~"./?=[_PƟXJx!χ Otq7we>3#=L\Ô *፾SePNF&(P%Oh0TLϚdiz61>ϡ)0x {6֞}yxmx18? }zp?SNʣ8{u$NN; f@2aԎPTW)@MvG%Q1ٯ9rHkr`0BQPEcvZvXJ*4g [7>u5S8<7fSA~!QQRT92HaMa XQR>Z\@=fpօɪ#GhrmC\H`͡[{Lh\e/)#u&vx>+a]Pоtr;v x7tA%݆iZL"VwӕBZ>n`06xPVIx2:{w<.z P@((tP[@GPI@) :mK]Q^wYllvuKzPyK7f8vsvC:js˜v޷{pr.wRwM7n׏sueUv@}sJƽmwYk7w;mz{2vyUsѴ\w]6Vwx.l^G&vj֎[{ۓ;v<7go^=7`|ͼ {ͷw0Nwn}]ǹ^sϯك|)@n;+Z |=g޽3PCe{kcZF]{۲[[.m\P { ճv[ݙwssg|zpT$(IR*E*H$R QA%%(U@%JQ*IT)l4USrl4;Ԗ.;+\ڻ{{{ns{S9n62kn[skOv}O|s L[Nl>}f!ġ_{H@ DMPc7~G+,v@=\R@bH>****""*"*""*"*****"""""*"*****"***"*"**""*"**""*"""*"""***"*"***""****"""*""*"""""**"**"*"""*"""***""""""***"""""*"**"**"*""****"*""***""**""**"*""""""*"*"*"****"""*""""*"*"""**"*""**"*"""""***"**"*"""**"**""****"***"*""**"""""*"*"""*""*"*"**""*""""***"*"*"""*****""**""**"*"""*"***"*"""""""*"**"*"*"*"***""""**""**""""*"***"*"*""***"""*****"""*""**""**"""**"""*"""""**""*"*"******""""***"""""***"*"**"***"*""*"*"*"*"""""*"*"""""**"""**"***""***"**"*"*""*""*"**"*"*"*"*"""*"""""*"""*""***"""******"*""""*****"""**""""*"""*""*"**"**"""*"*"**"**""$UT,UٔTD/#¨#!VFXaqFy`wBp)^Ƞֿ/.K'{9w45/[Kw#ftsxٻ[QER׎n.6%E}'ee=tԽb柫i) 3 ¸ě^^a-3Ma}A}WDb3gq57~Πzb<>& VR,̪_9Mb7r|v0::HQXyhcMeYt[h~Fywx|4MF:tNvl(٥wLEy1+)\8dMNb@ڕJfN˧֪,UOsV) K^֜Mja{5gA*o0qyJ}HoajXؙ1Rc% 3rR#쪏-iϛR_ u䏣R ZhXWzvPbAqw{$iaw\"ݜ]wniB//ۨs.GH~ڌoWN{§[i Xz>|"liuko7m3t ʜLl/exiN`t%}gOpuFȨ|/v[/zw%VLxYY"?Wd<)9/!oF~PTf0zMƙۘ;uVEs;S<*?O?[v)=6~% pJ`9@6nUBsfdzokSe&6D],f<'@uV'1uqR{dx)Ky_quml@l]Zy+^#Ҋ)ԛf"OAp.p?ZCnwt-Zo;ЬÄig,YdD<:?BvxR.z;6%ҡ 4{hj }Vs`åaWZzK|C%D"2/}rN TW>;Bu֭Fm;oN~ǻ82mbӳmZ? }O;?Q)s˙Bb]<,asฟ?Q3`R:>*+ݥoL6}Ǖ:'e_[ =*ܕA|9=4^%?3⹄`=g iW5F$]+ADY=zH<WlNKxˏ5azah??{BKI[)J{1_s fr'Çʡ4|braov&2jg86yiНNq%]8!o}Uk.V]s̭)PRN;Ė^GE'e{ljvq78wΠ׎y0W6s{=NxWuDzGS |Sa}X`ݺϤ5&Iz|3lP,V(%i#ω)N;9IKoTߖ"rGtVɯj!ޏ=#Α4]R2aP۽_Y>ZmvzvhsÄL(*{KXeeq2kpK!WV9Gwarqe.w:Vg~uFg2ESFOwMyjCfy:1N@%M1&%` tؼp͢.c3;(QZo:4gmG_2m\0[ۈ³S/catk=7ïݦ}[ZD»~w5֞ؽǡzl4VˉHϯIWTep bT.QQea@օa>mto59E$r4sQv>mzu"QCBq̉svUiO\xM:DxJy Nk|E5e_-رޮk KgY Φ:3;jXIFzFGJ|ǫ[*߼N}.{덌B8.v@NsOߐ&\x@mYR'51Ǵ] g<°X&*jlfExbzC:*z) _GVw^` \*6~$6t?wg<'cx27L'9э~\i`^?6Hh?CaQI2;!^6zf9=HYV,w3IGnqխs<2x 2[ 7RcϷE8TeȊ]|rLDz'^ C°yH?]%ޓ3$J(JM tCi]YK-_# IT^![0y7<(!ot> Dzv b\>?By}l9eY YԾ!W|YMjn)bS{d C Z/%=t}.:+KCxڿ0MR("[[ 5!Rii7M9=LߨO]}2}m=]T( Q{_ԴQd&De>{f . o6 ܃PozyyZLg^Pv Ց,ًY8Lt$!8tN;y';_9943#G΋b-^}}@͏۾n[r΁x;wzWAu[Z!ۍ'N}ʸϪ74fwO4ڡ ֡]QdǛ|x/{c<*mi |ߨc{,5{zwIκp=-͏K=ƇnHy|U)ݙ.Nּy3}([NyGyxlu+z2*.: Z=ي^/v5_սA.C~jeyF'M m )W1Uė%= Z:_'߷!6z(V|_<?Z>PhfZ@,pz~|2|ĪJN7lm͇ʞP"jp#)Mps oAmGz]|W핻tP|ʑ٫ɎϽlwXS3` q_qUL7օm71؟7HjVg?+b ނ {}qD==X(K$]K-GZ$AouĐhrLfYZ\smzh^R\HI U;3o>|dxb%A⏐Trυ+K93B myP&@ abaMxz{b3t9ҵ]IqXHg!#'I̮wl0]u)Pt4cb2,YXAUzg]!#)rn^y4ehsq.h|f‹kZx4lm*ݗd#E_cL{a`n1g5%x⟬lx夓4&::J\0G|uż{0/>t RQ$zʱe`[~?z™^Eiկ[Ab)87,^,]hp|vV?H74Jt\˺17F;hĤ8:!3D2 11tpTb.XM`AxOq3*6qMԂjw:RPV@/ϘLn~"E|``g)[82UVPsxHᗥˤ[޳>8au?~\ v?֑uw>؇]NB튢z2w Ѵw0x'Y{Hot ϣo}6T+&Tuzaª1ت%5hw_^6*mTŧ{O9i<~i"4:Y_FK ; Iwsg{ #).e60ةϿݥ;Kݩ<҇Tլ1}>|0py)wo_@X'3zt\ow #wXٸziBOhy,$~vt/Q6=70>hHE4=R@11=iX_:ǥ.xb" ΂"`zfKֵ=ґWm&GpuO"~h \3[ #y >Mֽ+}Z;v0oj1W-C Y_Tkъ窦l)P7{ a5Uzl*J}?v:=BI^T b_ӂjxT^j`]wؔ1Yun@{[7DXrv~AZ9+YV?+:XzC4MDq,gh v8k߱"8*bZ;!R&?SfV&Ye#] 8ױыH߻eDNc>;cC͎3o8~ک%;f3JamC_MMU*_mUŞ';_;F,E UU2ڎ,Z%gP}x(B)ՋaCjOC iD`|Y&!P[قtࡱi;(,JYQ|gYx夺n'2_ RG?ɻ.עX \YC4Q~?܊9fӖI6asRTsgͯ^!e[ےЛ4/w"q~GfӾRCNoLhE AL m7xb+Oʶ;t+?=W]Σ(k]?cv5Z qf6< FSKȍ|pM5RNz7_?˳EЭuodwP}Xv} icsv_5?lݳŒӰk  §vʁ|AvV *Cy 2nd}a=̀I?,wIUIxHmwW]=ro(W:ɦ]KQ]/;kr^ecsOWt,8uH]_5e[,?ƅDbs&[]I̠3)aJ#-bx= |,pnjpD^qŏj& =z z ǵđ=*d(JH %fϰhT>+}z=WPUFw`kw#Oyi{so K 'rC/U<3)m|c(>N0D]Hv$а~p׃r8B2r}{S.i2_1r.$Z ]ltJ=֪}#uI)bNtC$:?WlEE Uu)^?5scSZn'UW!o^c/r> (6A~&˞ɜ6ҞE8N'xr흂_R6x8uؑx_ؼ|jG z݇۶]\::rWNJx\B2j=4 ;{/6P$竱0bݱ7TcJV۲$`0Kӣ ?v5yU6m9 %-b_樰[WgF3]M}.iz>͉q%M!$`BI-B\>6#b*:bx5s} +.<6o[$ >7w FW& BPV8V}ߤ)ZZE#ԇFrx|}V&$ >C;Z:}|%l%o_~Rګ;w&-͵ QyֽR1IHLLViw!KnU d kT9L6e2ggVqI7yUZq܂4Pqo'`$`x_?6= _^M&LݘLp#: Pl];͟) '71'hv>yur #K#~OKQɓט@]dh=!>5rI,TrGk:gKAf7qE{JAּҐhy5&5ozyqUhbfFO_KƋOW_G19:ޙMRwv]qQ93ɠbé F맙Nu꺽ĺA==_zD!%Rヤ9Ih?XÏץ#WRR08}A5r;)j5̨#|I0A6 } |﫻xF3$866_θ|հ8\o3 ;* {AFVYYӇ><Nnm.^6j1v}OɓabuMfV;m^u$7b怸ӡ\d_-ǎTѡEݔ?K{b5]i{eف׍9f0ː{P}f RV݋?}/99(zfi=v*;iڄ0'lns sKK'/ ϳw=nEz׀Cs䄈(M7NӦluL\uƮT>=dcK^[Eֺ$Y @95e9z>]N{Wi a#o[Ӵἥ -_+۪ܫ 1 <(ַt|A{yXVUnSy;fy/ ?Iqr'h }D!fc =0%E AoѥȂx#7j6Ѽ\Nji-xTHz>wG1֣?krޡ Wyp?ּM l>ZU˓=-+<5>˾6[HENZ4#s}[v Y$> -R}ݲLJNP\;wTCqSwELgʍ] b?͵g(VZoX,qή&({^ηZT"B]Pr`Xa-3Q4,pzOfQ(( TsynFuըggg=grz6=rGysυ~ ]+{!|Rk<|ٓ֞te^rE!,E@gpZ#ܯ,s*43o9=-UޱgTf,Wq];?| _d6\1hHM5I}2-AdK?}}.82>=ٓmzlVӸQ6ڇ>cJp'{î5F;YzXz2ksF5X¨*r*^ /'MAch`Ŵ6U}&}}c43jA+.NCmϔt]ѥ@:Xt 0[~?x?tl?n8F)S 1\RGEf f`|^CC8l|炀aŘ{A\d-L} sAg897?6 D] z|9x/}l f 7=!husƵ™$zl3tavLo$mT+eD+鵬#"s4VhAbԧۘߩS.~|ֶuM:}D#;ofgqz+_;YSv(sϽAVAe@>ƯhIRB og03ז",E1 _yxǐa ,nh 1;=`e\Su=YS߻+uFc2q{fB,o6ACەم톢1= )n:WV鳾|]f̨TJ١%G[3ƭΧ[2^ 6Z`9}?o-f,gAͰt h}RrE0,4l~RSUX';]dllsܓ1I /L+ΐ"qֵ\8:8/]ә߆xhJi6^JĚ' }nd4^wl虜Jw) mӶm3l|n.,|}O-%:l!AGUmSȖLsf?o>'t$׼>X6semأ??`y̪{߮.}aCg*߹[ 7ɴx=Dgk@4k6]*JU Q*@z At-*⏆w}9Í*^`v1^=~$`IA_BRڡ9~N9;t>5I]7Z/'G纜>XX}g;'庡Rq-e=J]T;dqyzvvqgI泾&Mp'bwMt߶t_mėk+Aʓ}"u݆WO9ڞ[sq= ,?2ۺO9*mJ;l˦f[LDeum 5%D(APX @0Fູ?o'VFM46Ap@pF7IlDI65;`$MA w3KM.gLA*0n`S*䙁D7C{LA-LjN ҪqD1ۈ"W0R5kZѠATBT@x(*JEGEDCWEN "ފ 1_4)Q@PGPFڠ{lQQ:AtmTP(jܘ<[EmRIPA'6YZ>XR#6 b0kPByn $.j0Qs  4\ Aʩ! En5e]#u ܢ4I$ElR` y&AUA !TCAwݺl2-)eI"PF$Nʼn6$!!1˜JDHI !I?q,(7xA03RG-T\akU?l祃9'oA_;kFf=3QE$j-XE꘵h]AH:H@*@̱ #!  &~Ii$$B$~䱅jBaC DQDK*$]NDS8ŨB ",Q`m)԰ $$ 3@ӡiI% 8r)QY EvB -A#$O$R\SBI1l(-:`Q@* "ֿ֑MB#h#!ġ $R1Dhb<6۔BHdnYtKYAEp%eZ 2*HH2 BA}T‚*B2HH%TSR5#^)N= @BC{`zZFBAbQ !d[?I/b@2ugɫI $$ ƈB)ġD"BL3hh*0TS? I7ݓyx%p$#$ q5N<a$PAG_(~ JQSB֏DҊӥA H[|5ݪDe$ &QIU#DH:T?6&'H"IRl;T1"!̤ cl$a$D0Z!)JfYVa"OP"0#*'cL Cȗ  j먉:bY`[vH@z INU4p:^֑Qt k_i| _K-#z1hDKT!9BT=%R ZrBI$dMe$RBI^Dy GɨC_ڱE fhkZjj*#4~j4$OoZcR@R"2#i:tH!(ZM uDGQ5Ttź]ɢ 4BH+6$IaNe#PBEAdDDdY AATdI ITFAEQY$REY  EDddYdII!$$@IDBAYT$E I$$@$Y $R@E$dRA!@Y IEBE d@  @]Q( ֍ Mt"hPWA2(H 2, 2H2+"$"#" ȃ"H, "H! "  $HH"  ,$*H()" 2) , "0 H2)! ""2 ""$([gQr;O[_qkA%*N!$ā L '5\<]5Ks1(|_@" ƄU Kvu ? TCwG/9';Ot/&a;~ftH~7y/h~$;'uۛ0Yǀ#w 1d ,`AeTΛ)ZI7A[ f׎_@&M%H$Zlw~< ,AJ?4HGpzE0.Iz/_0^bȒ'*o6qcWpN'gՀǧ丘(DO𝭲R j/ BzǛ;~=PG=S>mK}}=>qHy~X=5m؃¾! 6\Wx#Qv8@FO $ ]1_S1ߖ1l&4čZ^u+ >e!g1ƵPyPYJhzLWrY-fQG#mqa>C<͸5?$E 5ovrj}zH|*OjuKv:5]K݋B̴.H- {{]]J,.Uz֫O=[:ҍ]:-pxOD{vQ> ?v޾4d&Qiϔ%*(<ҠI ,r3sXec#R)7s1p?ُOAP=մ/nO35Q/{&] &ȝrI_)\1b,k G6ΉAYgR yҒ'߲¼i Bl^by` -3z(NX OK|mpN}[vYvl2%{-H6MߍWu{ޮ Yz@[W!}@IS 7O-m;϶x*lμoyrצbWIPpna02tg9Y rE(#fma=ͽ ܳЎ}{fHMy.:v-d I@VǴccʑ.Xv ;>Se>Ia|2 r؟mrckn!ⷳ[\\hxD(db콞"| R|PnHF{P~OI6ٓgxEAvV,sy&RePq>ky1lޗ|YJCk!zz^Je{5ޚMatƹuiz^]2sdG181ٍJM.Ҽsy;x1"@9uqRqvB 3. {/XǼT{7{{,:34r9Ǭa _T{:?CBȯXab.|B ,ݏ͑"~Qͯr۪ *$*IRw]a=YzK"fA[HY 3IArfN2ë ץN5ډf}+|eOZ^پ+s Zr͘+?ڼ]Oᢄ>><`>(TYQY!FTTnǢ: g ST?@6CZem⿋yъB:99NJ[l̗Sz욷{U}Md~~U-Q\m_7-m6H6Ŷ{>l o5ۣSmmm66y[p[q2o|m{"w#ؗz?sFFF5wmO|y\{lTTTWb7 4%%%:<̄|||ttw 6..RRRNNIJEˍ##$=0bN9%d!}kyl͚C~S!zG}:M: x\\%Km6R)-@Y#9O\\umjU]BJ[j6Zez3RHI 7׷cӱ.»ߍ`FsQ{4x qwz)|;{ٜUpQ9d1Ʃ^؉ VШmLe/g0d(30S:YrD?x d˦4`qd7Z%(x-aKJl;rIOcA.my(7V^. rǁݩ{U9lH.?2u)b *('aI$}8W)5|5Y(iٹxv554P2Ҳtts555551@AtC\y{qhߝ\~}x? vRV*¿5= 6KYŁfa[R1o՘,pqdY`œނQOD6 ~"5y/P (#gt/?;AE%r^B)EuBT`J`1h2>Q)}9IVjgEbTQ>|]֤LH }X~Wz5iAA^1d .CxVwǷUi]xOe4\۱vg*䂾-̾zU')z̺CS|4>yO1^UR_%kEdIMͺJPPh->-C}tӧd?gm֬?(5Gs `y `|WG]ӫ p89 zv;MJ '?z4s} yҝ3Lތ^ EZ̳n{r 1pdc`BA *s| .=é{#!}ab,TpXu=PB'QJpk6t:~ë ܭÊC2^Gɒ&ړL*8f'D l mNtp \CnSͯ] Nϲ%VRy7bLxF6Nk~#YԶ|P|dY!B"!!t"`//"mK(=L$J_N(/Dh/>]-Zw洷~%L _V|)x+S5oM@ڃjТ4,XMֽ1x1'-s;_g|_.\eӧNe[q !){Zw@e'FT6>Ʒ ڒYjWA\ 4!7r4Ԉu@ʕ ,e$յ# hh4w\A*"ID)&TzRjCVfDub /k ^w)`.tgF~E$d?i:7@̷!kR:%Z GVXELS>:aj}>8gxѮMfqڨ,s%o|WtgT>>6'cZAcmXiwJH‹0W6b tB; wWlpݶ~ /& & iR[Pf/W_/X#a1ʋHy -(j:q22CV*+,-KrȲs%EеHK\Χ-kVe Vw|U9/d8ϲ`lAPZZE0:KsOh_N..ט WvXysKeTsN꽓pC=l2C2J(5#=Xl[_Q,RbTÖ'كYuNRE$]s8;GĎĩu6pgFܳ9jFXr-A>REMqK:\DMpsrߦU8||YDAS&Ll QqiF`Xvu[eO'xi?+*w60tc⽏x[g57:g-[yŖtT|}::tNO\]'U%E_ʏ> 7!sfZCD~eࠠppppppppppppppppppx@ Gm[gUi5Yƛ:Pc,X7E|#^]p8՚]G?o۱8PA).E{wߤwQ⯪eET;:T?˯:}g_ì~z>=Xoδ=EެCc\.U}QαnU*ʵ: ]Nj66u]ϻDݻ;/D++C`U~z%P1)eX~EcJ2F:''yrthâRb\F.qE_B.A~:{UWe*g>?+pqWX B2_A堃X.hzhnhbםh]W]gOA[ҭfg;+ZQ:W|=HE5%5Z/w!c_uv`gWcAJeӞݲic0n`u<4ٓ5Y+j;#Toކh>0l1}~A w?`HQl?[Yܳ#|)+P$LNv1I|HiO T MdbգzMiToܧ&Ing؉Bd '6Dsvb*Ku-%osL7 Ãy+ws,b~쫡wuD^ DH`[B-.wZ d\af zsƀlGa|| [8|^Mr<=Mjsx+0PUJ]IOBtEU6RHX 2Zjqr"(AAoCjh̚(yɘ(9imgɞ KF/ynԻOsWLZߝANNcﵞWm\<6Ϧmτނԃ¦Q-r*A3[)᯲"+ 80N@bDچQi2ʌbs#7gFB7gę'BTqOcM/fE$fЍݺ 3+" +޾X%eeeee |E(5ZWvѓY`똥*o*ޥ+5z*8 ^WByN/XG&%R)m*pWqT*e"86s{7Q*YS?y8c="Q|@FKsrj8yO.dC>b߾Lk-J^L=91dUԾ"o$߂>;k3bf^#g{hlF ut+ՙlXrŨѭef/ [ȶbX|&>hj)a6dwC 'KL(\f"y%䟙/5a4`85 y$RU iFS m?rnnVabl~*_~"`H1 :Yb' sWBQL /L4:'no@ܞ}(gkָN0"2'Sy5q|?gb4I f=?s4Pxm܋Hҏ[R1^ii*QT#+BZN=CuIϨ1^aP+S gIn=]CC"TC20Qq} Cs.c-E3˽>T-3}%ǔAdb0X ,%^Kb|14%M.sa[%k߮}!8~QoIpшJtqzN!!*gZ",Bb栗;Ox\,.X^y0 >js-}grϸAڛMkxj# STPc~{mK~9`?wܠr/Wl]@dR=53RO/='))h lO*0Qzvw6UmdΡб1q+,Kk`TDr[qqtlWf&'J*jy1M\Vi0<ף?oJEUE*F$ nxvFEuR(8pF9)k$)?l{6qB-r9Ѩ3(&vW+ɓK\Xmyoܸ[i pt?z/>hM7UbQA2T5wx=8+*'OVUrx(.-y?iEeX. kz8Y'BSnAzw YSYSqV|e%q]w U~Koo zD}O$LQ80D C*q1ڨ[rV},8x )E mUy%+\x䶄Ofs LMr)c޴2GH)xp2x#0GyFSő`X- { `Xၼ-(\ 2٥!a!htS@lՏ` 5h7ǚnrm@[L`@!<d^Jq€'7Ln/mSmd] 9PsV=op FH5y%ߜ}c~֏}oo"a>*,̽<!MŠbϐhgjs7uZ;v_+yށԍ%>]8:CPz]̦ҜuxNPdvLMrz&>%UVoO}E?`O0ߘxoC=E|̵ eHZRshM`lX%fbrJ8R4ei&fjV4B,*AUbZZGǭ n8FQ#_W(yUi=66oRh.,|3w6w"r9i C5ME̸wn,_Tz.9G.L*>lϯ_J&ץQ c/tt9mYnɫG`W+rl V/ B<:lfե|HQ Tx4X *NtmJM[@@H5evl66ɼˉFNC5o˙u뉃0CoP}L^F/;\6A_E)'κ5XfbS·aU]Pp^TSVtɗ=y9 QYq=@f5V'%I"Nv/G~HVކ:/ . ؅+A2{~_o;1c$b$iweIy%`}pyzOp{WVp~†l>b*ZK.%vwYI|("tTnʣ87Pf"~U]\JO狇]_Oީ"b,UTR.2p^ޔdjz55Iɞ~RO=!-17b0+dCuPCxpI5JZzH>ȡ c>ܞ+I 䥅'Da_qE+Xtr&-nɎG>(Z$F oEPa&Ϭ2!ʚ\9v0`a2^IwEc?xי19u܇Hp"n6?e<ζlE!ͳ*ǢNc`d26B.L2Ww ]ߗ|^rQEDJ$4l=tPJ!?GzW؋q=+?Eb؈!΍Mᗛvo Q&+ʆ*Cز>pSgt[f2\d΀oDZP>90n59ᇓj";4ƍq O(\s=䔧ߩ_+mpEg̿z;[.O{6M-xTtmy UmL̑t gxfO`0%з99 O2ᶻ;vknx.J21r̠F8%8Ǣx9n,r'[# AjΤ!]Qc8 (g8ܥTP[|(>ٶ6\&#xh0$z0RalƚSq&:\"n {\X ){AΝBDꂘT&oIQ6(I؋"=?lr Kp2ETelpۥ&ꞯsh_5+L W=``j4{9ny19aQ5UwbNH|ϲs?$͏ߴ f7W9\oO$%RՐȜ Q``9tbd:/BacmP_ELaZK[@S:!+dWQqfW~%QR…:qJJm&Z˿aZ`pyp|x:s:߱F@ǣ]tD]]_N d-0b%~T,\Tߖ"7'!KEڪRR1QS5ZO KnņE;NjSbDj#4`2Wvz?^F[|ep5#3gRaKJYX.};=|ȫ\t/+rm`aجoM<~Ctup[~N2=ScGlƛ՛v=7{#"w!p5*0;,'V*5q^" `×/Q/PJk車V@DҨQL XPVx2B:rPv]jmݤ/lQhsH~?7E lL2N{Ǣv x3j*EQ Rekcy=w+c!*_TPM>{ϛ6s/=h e5>)^6y֑ÿ&=˅Gv?ZMdؚK ~jC ß8b5"Lx+h+Ĭ"F B 5ߢ9ߏEr>77Wt_)v7>X﯎<\ۼ(w{g۳ASzNlj9|VEQ"'HDN4`ϑJrZP{qۜ6Uc24wGflq13 1G{fəx0sSҦ>`)5lψGЋ d=`s@L&kԻ{Ə8oeQП%IfIZq.JOTU83-hTfIȤ^^T}_'dڵ4CSt8詫j@YLb'a! 't:!!;clFaM`gXC(大Bi(Rߦ.f|ձXc V ;-m]yrE<]%iETVGp cE1WN ?oLМ[ɹqt'tSİEw4OOb[ڜ z4zhŎ3$ 4샤3iqOoPpűp?bT;`b h/>2!~ƮGl/,gqGW0XC õ *vR7tCHTֶ>c81#ٚŢW ^b\P."9`Sy/Ҳ"G[O1swXj2 Ϗwol&h ;œO.2eEe5 |_`2AWBDfJ ,aÝuW]).C۪LQՏս?f f Bh';;'!X)}[bq?hM\6j۶eu5`x?}|uV4U"}B(Sٺ\bqia?ଚBt!:vؾ^9EU}PUZ5շ Vrw]aJIM-][ᖭZb)QNhfv;@H N2ڿFʠ~kg0+A{LZ!:{ ~cПuVM7[蘝?%-ˡsC V[;s _7-!U;uk(:¼Atk?T74sx|M9 B R- @o:X3uץSҟ8./ijW5.^龽7v^v哣= +M;[3?3g ԔxM&FQ8 i 7O7) -Mjy)C9Y#"m:ǽyx8!.ɓ(b{"'!cƜJӞ8\mYQfG,{PV4=*)aHlf0]?Ge/WǬn) Kv V|0[Wu>+$v婫@Am"q)"KDPIfYٖqX6^ܫ ܗAu^]'1Y1h.fڦ/H1cEoU`_`'dRdk FBT#2\Zʜ,0lL p5|Ѽ MY|{\'n} xi>+\~v}gjtA4ge:f޼VS[t̾q:M:v턼ᷝ ^A81d5Flb]}D^xZqI(hG |%{oDWzmy)p:c3>YGmtZ[5e*5HexR$,2F`2yF_/Y]$:kjlt!l?C' 5nPCCޟz}Od'>O}dǚDȆD2! dC"ȆD2&2a d&ȆD2! dC"r&0ɆD2! O>O>d'>O}d'>O}>O6}}ޟz}ޟz}ޟz}ޟd'>O}d'>O}d'>O}d'>O}d'O}d'8d'>O}ddž<1 Qȣ"rhɆL2a zd&0ɆL2aEɣ&0ɆL2a d"O>O}d'>O}d1{aN L܄@Tku+ VQ5k2p G\A¯BAqb +.bx_G;+ѢqǞXCs^-[߬8M kקfL&cG/uU*.4ݏ*7- 2R*-&r^*\i]5b7lA cCֻpr7#j$ W}s6D#j#ྟ`} abR_U("%5 yR+ K{^^pSwgtXS!bxk6oWb`he6Dcn |i\OV1~qhZ*A镞'՝5z'|F# "/W# d@'bbOu K(eg;w#&d̠.2mLYwy8\ }ЩXn$)W]k6xlMT'bl)QP:'.T)?4+b>_/qVx^~8ۍ$-AHKpw;tދb6HXXjf&{qsܗ)_G})2ϿoК;5#+:|Bu5тk!}M‰ҍӃ;ZΏaE=r8ɂ14N<1Au)[;"roZ DxHH)>#~mytEr=Lbsh7OƂ4;L|!`Fu7_=ydgg"X}n93|[v ~?\Y/ 4+㢤W5T}~BN")}3@lUu IHJW2&Gi2W^}r3qqBBkf!ZAc(=íl8mKSMԼQ6cv@k-%2~#{{+ER~(elbmL'.K;⨝//!z_YzRN[%)H_U1ݵTdA=\l\>w6wEg8/ wly'jYJn l'»:tOj"e)Tk/:>nVēNLOzw?J&punTsfmM䬱]{*\' omc\smxvRzM[粬h3O$psǜ}VD'ig8[tat|D16TJP:z鶓{W!xVſQhsKǮ=]% D*HQ=.o0`]EBb4BS6&W 7)KIL8nve5߷<ܸ 4Qq^pv<^ҘρY=3+zўQ28V\ MaVrCb,5khĺF;2%L*iP=,Cko}$8̈́= ӝ;O4xgN QEڷGf$^s{&]|>B<By12yGB1r6H&Ut6w l۳K?HC3UOv&o~&my. Y ѭ/^/+y/҂~jt3?y5~8E,o"&#oњy_c3Y쁘ff0H͓&gNpeLUjݘVrZypycFfs'yWM80붴+ NNtuQPSiW$'O ^Ntg~*!!=+fWQۍS|4rйǗND}k T HM#4DŽ~ü.pw^ËE0o"D}P# ŒOoU|PautkR ӓ&+aNp*'Ҹ~%ШGa< Dx2/~YKs[%nV꧇ i#UWJKD=@6u)j8\Sڄ3/jUWP֒4̔ qGw{;lu1=A\Բ݌h=#=//;FR 7h.cYU456(6Go}m`g^ EPټyVWťkl%+ 2ETuu) S Hdq&+b.`{C+`;K=sAi|(džFEaLg,X['X ނTC1 +R+ 29PBZU3HM.-iBQ@[H}֋F}_fCAC4I/4|u%3DB~Qԭ3'"rHR @2&0OEx _\n(jvtN '3Ĉ3e%okPILU10fՁ|gg0)x/Ok;3cԆcj1_@Hlny~.wާݴ&}gֿX̙ŇwҢ͡+jpoz-n/USX¼nW JМjb)JASGܸ3;B狼5W=9pVs_e_\$ߺʮ5/Ư4)򴮡 hbF+4ijnmR+yFo:߷g|fvE&.Ǔ' 8)i/JC M{azm* Vm1ZV\N)-b2GWTQ_5Y6\RYQ\CP='rҲTyF{ +et`QCNȳ,4}ڼlbǍv$J;"F?2n_|^aYi\&02ZRʽ؍2/gHf>簁 F2|ZCAI(lW9lEoRn5=I⳵eO H 6::~kx<:6K|Y}? ,3T^ڦV, 2o|AK}]5^Y8oE~ф-zB|u)*ppobM]" b`/ 6\&L \"h2(CBklC@CaL>W(Xj3T͆r#n] u%qvwȁ*z> 7*ܘ79^DAl3L@Eaz:kfMK"cd[g -'MPi}c;&;\=2:8nY5L#iD@`7ˉޛ3SE\ڐ"H`w^K(Rj>-;<\FǓ?T b1Q{~{I_wpDN$]HZ%Lb#:o|~E66tqVT,{#yS{ݥ@㈩ݴy.̙o(=۰>#nᡩmaxSz D^ \]) ƞ kAELa9k}?egK`ݪv4/87X"#QWx`)O7YBm`'h|MBN/_GS 2iIM` Rc/2&@cwX03A3Fg ?SDԤV &N)?&,kE~SU1nT4m 6K'3N$A$ġ?99XTӚTFT7КnHFVP nx!I9]ЊUwڇ^Zj7%_a9rN}VA1xsC8PGxsߺ8GI;:#/u'x /r.CC9BI Lc\8 ʺ)jP0<AQNK"dF%Ő#q7xIԃ0w *ȇ9yA z(rašb FBjN–"a;Yԯ,Bȱ l$lO#<ڠFL׃5iz:h! !BPY5GYNr{6FX~%),r/ؓV>(HH&b#*0#yK"vqR7Y03:\KT& ||FtVrAs75 wEeOJwiHGoXF T(?n>ǣI/tF}0d#9 Ai8tQi׌H sH O"DaiD'@Xuu(0ԂB>$#a%0)@` Cxv Ar, R>F HC`aRQ@:M#* J3 ڹm&glZ=Ҷ/nvcfze1祐^C#)MLq\!dW׼1Rq=SM8#ݳb(`(-Cx>?_p}/<87:w+ŬF %#puaCϠo*v ɆM`5fZD.-CKC-'躿Zء<%RnڕWO/q<#$HŤb-rd]̙vv=Khr?#+Cb!Q H}#R6hduEdeqx\ܲ/Ik2J̗c l J4TMkex IkoÇ >Fe^Z&rYZU@ t?"2=O$|L2R2YNEKȕ|]=!48c@^3&aBbd7N9~xT9;_~Up$DV)iei$Ud%:'"}ojp]qMR?ʇJY ZߊɴQjĸqWMJ) U]jިlDͳhA2Y|}N7>8͢|OYOVRiEu^YD[-ԸVj5g+K"sD8>a#d1A31S+_+OO?aqP%1@|}XqL>y-x9c D1bM F)P!Ԫ`%&0vYgrJ(Ux>=;*A#9]Hŭ2b*xy9z#Ϳ ̱)aHY|J.~ލ=c V95*KBmSR@,@F")U4GzsǕ_@eWiN]CtC&_PN(nkW끙ltMsǪʷ竞|lAʤP(hx:lsb 2 @*Q k郶39[  `?]p_|eE~gKb MPث:-8KyPV)}N]n]t$_$y L^TM ]Z~{3j+,P0!*{>RQ{Z $FK*͏997(U; Y,Ct%_l6@Q{~% IP ݵTJV 93vugh6#9Òx NC"klºs}cl3 "cJ -Pf- Dp7:c}3G6bWcD!Sd,Q D)4#VMp'1t@s[M۳mL}Ӷio)[?}cos1HHOmlwt^&845B{^.hnDDՃi%)д!Y$Ddggb>b9h8J5HFAh,mB-иaYh#?@(nOγ. %#8+19ʏfiULJrO:uxZN+C8:#Mwu ʔz|H\OXVG1h>/oЁɓR2|SBr+EyS~#!Q1˔-K"1a8[#hcKbr8K*R:|SqKr[-%͕{~$QU@qȊ(oXqP8(/PP 9B@PCT("oqSDPS+117Siz2K7/p:uj DzO²Yxkyt,~G?>kassi8_m$g6UV2gP <1ƾ?CjgiΟh)0@Hs `0`'vphmhUS)1.ރFX'}AQY~(jOG>ɔ٧݅LO :~L #sG@"DZҺ@i pZv=j*ϯn~^y1ϋ]н,߽ x1Ź5 FN6+TW2-󇬕S[>Oh {u+`!F&by X]DSU(0pBQa,<6+ Px~wx LPHiipZˢɛ!u2e𽼽{UUFnPTЊǍLW* %KsYLNFCW~J 07翯F^Tr xbE8CR_O*1d$0m p*9ϩlqd 瘕>~'3,q##'bFBh9Ct\ ک,O6k>3ǡjՍtl鍺TH GRe(-J@Hrhnt|231&$1vۆ FNv>UjQMPDB7> m H =a^_R'`tu GmF2A=ٓEumuyQy8N 6VovIP$ @,zl)iͧ oG4_=P8ECI Q\Pj/טwB=aW+_5 ycE: ׀g -oA鉡.7\zgc ?VT_ETG1MQ.Io]+(K[ yXH}H2ew! 薋ߞ@ ' {vWOw̛.=SFkKnS>ً=]\ ƶVµ,z8A- ̞ӗ$4]WV-Ƕ=uvy|\`=l.x+fD0>#E ~_˂_ `ڀ7rjm': f`[VHcG?JUUBZ+TJ0hp Y7]ٶE0 uǠHsݮۆ톨c:?&[ uz4wyړ&ОF|,:/B͊n0fdF0͢Z9qsi:$ެ{٣06C99t7kE92[Xz76L `x x,0 1;Q] غ]Rv# N=iUL06[5I?\S\U6OVc)^l'}S)1܍e8:" (֛i/?E ,f.e{I)O[Vy޴ۍ{&8Km7n mntt"keI:^aV P$U +F-l3X[wT}K$~=۹Msn$}'W]x*y gv8 9n]?fqr^Yq`UUM9CaW_^H/2sG&`ЎNM>ցKP8}tr^5[Y_:<&jo l[c]j)ډ¦R8S{&,Ur \& M􅂫 Xwye~#=7}3IB7}^hXH\dh\wr mt:'"SMd㌚lv9)4 6yU?R ǫRaxx Kqhv%Z(bop3wgO=|^ LPi^*OO|-w]1L=`epߝ3֔GRU{cL%*C .EԸӜ-)8CǖȆC(`FJ]W{XɰcJ/Z{Ęn˰Z1u$ΎЦHa4]y]=B^l*4OXw;}38tl.a=_4]PCe4nteji>'p$ʌyKx; }nCqw@"*pvwZeUHT¥TWseJWl/S-Eṗ đnC)6ޙ늀O߸OT,/Jg9䛒a3k`r >x..mX.xgbekgv~ىU"iWךנ \-@`xJS9]Pu.q1\vC|3=-^)7ayNz pd'ISV:{0=;zT,:("<2ډB]g1B+v_óʺoX-K&`TT0#-w6O ~', Rg1RJ\7:5A-I>xx|ƍaC~DVUNn2N\N%90k(U1y!{!0K; V{|UOLvexS,_TY4\\  tvނߦu܃ h; (pVǸ3cy{Ge= : %c=z(gy?e{&2 ͱy{] Zk+I6PRWqJ\my}!#drۍ;?o2aQwŎ($QO0[z7Īm l[*ʨFk'~v O#M(頷&̙cp:j8zCڤģ-C'LJe {[|_x,56`e աD01B_*ZJHًu}r 2t#v>ND}njvX()i`\ \mڱ6_‚T7C*%N{QfǵI?a.Dehq/?IgbuxOY˟#~íuL+a!~a9wUMl]}ܱEsbhg"/UY̲2{^ &3z_[URϮ_Nn90qw.dWWʉ j .@/^\, O0:x1^r##!OJC7{GTs>Φ' ˻CLnI@G$D7$e1hIg eC.fL]}~_Jr6L3&`˘b .f&k^BĂE!!m'["1)$I@f 'R=*Hdj+K F{AZiJVGMpIr5j͑5tKrU^oЯV0WuN~Fҳ'0)GXB0R1 r0K;,,{0rމ<v22ZJ` zZSk0^zGW2IjzۭjťSe~H~*jWwRe ֮MTmhSM R; XЪ_V0'$mr$,[3vb=Y:nLl7gTC+(t˚\FWc:zY>ʪ3\BRPpK c*8TG/trW"N>L竖Ȏte,ǝtDzQmA|MncyvҎ'#Iݕ;7;;n*[^ꌸwSN9툃IeDWOxrZ9M/r^f8G8]S삸y2mSZْq5$j`)幞Bة۬xJ\V|S{q?;/zF-rRnuTsg?Jylbfg䷕jvb[4ߪ`șFmPֹ5u{3:aȁg(Ӌk;7n|>֡j InOe ݯ{j{dNVFQ] NGo1S{2quQEAYQHuۢ( 4cn5FA|﷾]Lr& j 9sZ뭿2 N{ XbwwC%nQ냅U^qاq-7[wos'2(/3S'Dw&szbmo$y+[I>Ϗ˗y2L +:^W=vw;c{JF_=G0d=N!Mw(k/Tស^>IAzƪN;[<:]DNnw{. 7L__\oVeUWIezHI'zrw8tJ'u.uQ] ޴a KۛNI˜qO{jgOAMo=צsO\~oq5tFr'5'$7>:HEE't#%j s[l[k{zR.Dfw:̉q$wnTY|od;j&w=ɳAH|Bg]}g&-+9fT&䛾'?o#r ʧ+|g~D J˭o$oUϔQTd,j-2t6G)_fv0]GcQPf}z{s3;z#/e=37!y? SUw|,4>xv.Ȩޕ;\eQơ2]/GE_~d/\ޠ"y&'pvU?HFuCǗh_}#o)BZ#Xh۸YXoڦvҳ4_4s}mBaS`WuO0[m`?S""E,9(JmpLj\7s1~.&z^;^R<(MqXG:zyWSR? F`[ Xوv6tB3g "| k@q6("fS35T~ERgo蹠Dǃ:R2YcP9ȸa|8:6ero϶ J7V%r#S?pTOCxƱN`ٟvw)Ϩ]iߌZEB^ Hu[U_1Uݦ)"|h셤-("gd3wهɮlS8J[s8C7x_UGV`t#s˛,,?G EƯ;W&o&"28l6ToeO0u`OfMyNPRM_9 rdIƹP<vKofUoޤ|.~Ys?=cÙ͑9Ns9;ٔQb6- n3NyX47 -o"TԹٮE?䳀$ʝvj;'ϭSlS!ITJEt6fL|w$pwS IC0A?ֶFxGoAw17(]:j=Ia)ė/#vNO]&r9VtPiߎq96^&}I1)MɶG#A䇜߹ƞFҼz#tK[F]`;ԉoeO{:׷/VϭfҶ=`Ýa?>%m¤dIk6sp:1HTB]@Jr>vww+dw{Nx{,O{Sќ;}2c>]d9Ȁ+rVkLVwl nl&1%ײF5H\T~Q=']E[j+^fm e6~A Ne.#z= jw Et\rsNjߡxw/?H=}}oo|ox}Y7s5%r3g_(_nWe>dndJY*w*r |i[Z$=J8K'׬\of5w[!GksoVd`$ ;D0>ecb{;Y%Vݛcqdt3}Oc:w`;wH௒>>W#'bwv>j+ocNR:b<1jbLtCkm5 Iz/UwXs>n+99{؞rk fmV4O9at n٠ARTFy|UIavB5Yg*(ɖhJg磤حt%J?7^)ⷉͦs=.t%ANp$4FHd=b+I?K ^6VA{f[cY{W_w;4Q7M ﹄_3;Et&뺈cw|^w8r NnTUvqf{Z!6&aFgIuWxf^$ObN[YN&Ug\6t9GD9CyQ{%{DMYXl]m hG*rGQm~5vmzM 8K#Sos?097&Òn.-LÒhAl{ϻkJXV^9qݼ]YgEWoYnKv7Gc'.c30q(ߞoQqy=%/6! 1Qڂ`Qu3VƣQٚN]W ]Q>l%wdn(XwDLpflQ|`9yY)Mlwo[=|ѾpS˵/yW#ԺWQ6[\wF=d5=59?&{x6<}zD7;OXL]ѷBrպ\3hlT׳Uq6|߇fC{7Ae%O2ЂYI"媭]䭜7hu)*pIR`3Esoia#v6lO5d$QLO'@t }Y~1e6-qԡ# ,3fCJY1jexjgPU סH `[n%)Ҟ3';u ,ˣm2OPoǎns#T No` t~k랩Ӷ.z3$- d0L)g:*T|6rl *%jTOۂx~Bylmk5鈘R_fڍjWq'MI~^uɜDg | ki֣pB|MGW`Uզ&K͖|>*z~.7]弳2ϭLS.tLDLTj6rupUrYY3u3{Ѳ{F a;|o}wܧH"M 8:g=6g#W$!ecDog,۶Q0˂J H|;o$&n]d= 5kWE~D䝷"N/UȻyMV^ӅDvUQȍeZc*i+Xu:o*C{)MVMsY1o_?M쿮Vze~ak}V;ª]]{6귾ŕî56DoKoܜvd M Y:cG)]zIefKjدU&$\f깅iȎooqg[ nSEod솘J]=1Xk3Q9"u}Kz-ɣަ.]V9wUk|15c V? n5ϜJ55o7 FNnS"/}#s$u)\/fsg])ΞMs]L g+޴mfNԔN$j`j,9Y+ YVqzkvf!bHHU륶(-j`.}E #!SPPO.@>ox .DΈEtB~dBm/V/,hLV CYEl."BCIn"2s\v/GI4d ku1(?}=u]XXF$`̷_% 3+R(HWL"/~ěMhNlL.g妤f.oG0X0 ڞ_s"̜0!td#Jw_2OK7W]rEP"+4:Á HsjKd\9s.?]=($;EyQn,X/$x? ﶱ/MewIBCZqٞ`ґ]E)ht+YwY~rm__?a?T-]rȍIt[l=] (N{"L (M:O .Ѻ$CPAw;Wr+prkf'{Eq'޺s/z;Wp+t{f&5qY{bf]v'7UYVč͖K"ݎs\YE0NW#$ke* RUuF2^mL{=ڭaН0x'pNI:1Bx^TUK܍$J!hN5F8Hl`zu@n{YF!ft?G,~xyog 60EJ10S2<"m(syˁEugjWlhd׈nue}g넽֩/۸>G2OsLf]:Oo\A㢛55ې7VY2>hCY*kZ|nuy>3@L|w|dHgDe#Or h]{#RwGj,ܧhcTngcVV^߰|yq^{y=Ρ;28EOgYe;17=a7 ^{n ̙0IG+߉!xd_ַyuY:ݻ֯ }rf01]Џ \}h x+;7EΩ٬I=Ɋ;<'%Fnv|R n㕶]YkND#WD37d߳6Lkg@>'TA$Un'|oɍ}gs ӯ7]uwo"o#Gk*|lã7ZZ>)ʽ\vٽspVޡ%G^ r,oZ+3/zՆ}@|T :ui=UpFsP ٜ?yp Y!qtuΎL:Ө&_;Yܮv#CEQb8&p2# w;-lg]3;xj?B^PhLq}1ɥ^xb&G B(Z?hmrx.B0#ѕDHTv OȌ 9AڔU&Bw[6D7Op8SK~w4?-HNkFϒqGXAuHTҢ? suW uލ|ppH 6Xz9N(]*tjcxև`]^~&[sXcNfűoPȡH6Tr;>k%{ާ>Q~Q:j0}=zw]h8:X77g?뿺X??nt}Ⱦtwͤn#{.znugy{9ȹc|MZ.f\AÌwBL.yȟ'[]G6D;UƠ8ljNwI8vJ½UGwx|!'{ʤ$g|zf(vn "6U#|ɳBBZH* '@g믖:e`(grtz||zڟn(bn8Ļ$,OZBu y)E-Y)_=w](\?/a麒io~`iUTo/EG~fIIsO}}My HVn571cSCNq߯{OAHʉeܻ&4`eC0RO7tl|tq:yJ;6|muO3arֱ5k{٨GzK;ϘszP۵Dމ6+H~|<}\M!|8=[{6<Q+Ù+w7N|5뾝BkVrb(F೘w;+Sey#Ӧ}I} yWq^!j %+ ɳf>'oqXYr޳/9|N0f@~.r!'SQ8E9Ev;=~ _u=ʳy rf4]h,.vz۸l9 ;! H&i)& 9pFc[} (M9HlUb$"'閺n{Uy| }FO_ק}'-dI+lx.5_IGdȋrM[~>L/~&>7? n_'q}KGᄬ׽=a77E&'|3SZ& m3/Zd:r+oĘNFD;o/Ǻ~ZTCmv7DSy2~j~Q|'s  jJYpryP*z]3ovKgmn#"q1ibq. ˗R[aj_ ^#LHXo ,\\`q;0. O=")xTޱH]}rSW`݆ӌgF+1McH쩍 _UUU,`!Mo=gOSk m'X5Eu-ɉz{")33{tq{{& o>'?.7J  `PKQ_ʮHZ /"(Uߝ X yUd2ydCHw+ʪCa^g8iš~|Te!KUQ6Ri{=,jIsQui0,Ύ5.y~rܹ=m 6S#>K<1yKqoG;[[ g<|8<ᝀ3$8HYV[٫.#s§ٜ#{x;s{.NG`,E=-0s{k}jDg\&sNelNKn8w3*6n/g+?duU>+7U(=1D1pnޘ>DpIq( >'ye/#qYb=jPΓ=E.(51s~_/|:A5j#w~#+f >n>jYb{ʠz~_T}NF`ٟDYVȌK\1̎wݶ.#ھ4|wϸ,?8-}׳}vQaf~h|čS>WdFK{ݤ=gb+漧L͛.6?~Djس +8AQbL'r,̙X{1nqޑPz~EY{12.$lc1;dLSг8@H]gM d Hi 給3%{Bg!])B[ 2%s2/(e+Z9y\ղ6}Nav,~F 8{7h\8~#T#j+0M'l-0%`gL}s$ ]mM*_NG{̜Gu6,6_p6 އjk0frڐ \,%˗!n9}wTG+EUljɳO/q;q'HsrtDŽW*瓚ž9?y%u9Ss9'kIrrpv y6}9v/vȗr|}ݛ~. s&// r߭kDlzu,U{OmVv9߶dLp{=FȬ.t ^z;FwÂr{W軞ٲrI7s;8+M&+$|srFcG 3K8ɉ'|# K=F7ߎ{9էLswѮW:]Ȼ=?W'"cnxG}{__;sfՑXW{U^n:yܷvy ifK#\m$ƫ3;mf{Q52SzeL}m"͗o)|rZOB?͝_FgyۢsgftΞ9"Q;#m؞[wZou3ٖwƲAwͥyTǻ/DW{77 o+9]8r5$r>C?>|+I|^gGwseB0+(j(PT/R(1Pڃ q ĺ8'鈘= -\2ϲu׻}cޭ_Q `LdVSet?§ 9Ƈё'7ʙr2zx4zP3e*cq22%*n*&Ɯ) A*ܨ<1f/ PJcL aWhO|bh/ Xmдb0߬Ws+ e&!9jy׍_~u;p tK;|#4eRK97I1iMe8`#Xrr^ͺc7Aeytp8)]\יE=Oög~Eȹc=Dmp lJn`ۇenueBXSKluY8HLK %RMݟ^Ļ$C.4`G17Cϡ6Bnr:9Xn1+鷵&Ĺ'u5Z7 |(! wv㉦W΄LFdqg(o%.sRXc|hy#o }qsU󠟃ПguO}qwufJy;I$%،a1Sɒ3s[g$73SqOwc"}mua]d4l! +9tW Kd*J8l0/\c~5pnne[;I=og8C<$ĘjR'.`@}bs^0,QТ~cۘPj:mPX5BJ tf0)rPx{"`*\EĘ쁏29b9(094Pe2ē TOvc˂qjyv8v[LHhwՐpTL<9aˏ$3a5Z%r1ٸ1'?lp{L.sEBs1?ߺӁ 3yI'0T!X<{*)3YV`ٔ-u dH1.ӫͅ%`7H.%hǸbk7G& Q٥/BbTpqidI zYkNژfEfDZaΚ %6$˼`ѴQ0\Cv'rѰC\ PC+E@8r7X< p0g12ǰZ3Q_ }/Mo?5ve/>[cгeIR d] H\[ =:ZJc)lGnN/߿Qd`h92׌d1 "An__NK`La)#0b>݁&0R ZdYL&5w WN2nT=zᾁq,c-Ηgw۵+v;WY ʌ 8 B[_ҊڹjnTҦ"WQF%9. YCH;S]'I_, ݃M`GXxi6|B;| .?҉Jȯ3 7zN㗴ݦ(ȆSy< lNR7(}#>1 F̋a_V.wtH]L$u|= tA̴vtxx[_BJûShw+-e;Cڴx##ane;7y;=wڞkaޞ+kk/onn..o/ook!IRn'EfTҕ:RiM,ºo a294c,-4ZSG(RG}._K4Ey3Ƙm1n8+O9eZ|F`GlVgIKGuĨ{gs $yrbGh!G-=8OzM p)<,H;c gS3 !v=Gh_++t#_mhY-i >z0 ȴmF}Q=]>[lѥL$ڼB ;`e`#/rOwle*!p1h'-PXE0@"tvy#fm''Mz${}T;'7{/(@REEtTYBi1$c>#%\ qȹKinԣM. *T1dqpal!5Hiz~juhcCޑ._gQCgb̜ eTEVhcC20(,)HX`_bdC r*9@eZEQ x)8(!^aK(D7RnePcVtp<cmtg]ﰻ>Fy:* vbjYL{KɛO8f0&k~â;,pӚ>f%ϻ/Aƛ%brBp8so#04dc*lY~&SdwXer&8cLŎ~f ²#XȘKSF p5ϣ9]y]6[_X!yNI ByE6%80|T҆2XStdm=&lqh/E ̓Oy ߎp3Lņ_ɣg␆C=bV\ly[|a95<<;C= Ģ&v3ch:Qk .;;ssX؞]\cTІh5a?;*=5>2eQwx'ؠS ??%l79JؕAQ~uֶ-O2V>o[7- m*,=!@Dh1F$ǗX[ȗ"3jqEjD~ g-=W[^oaT> OVTEHc!¦J%KJZj\]+sh$O?isw\eR"!hmWEX;}WA9g뿃ㅜ4|9%}=˛ a>Y#)WG>Px TU ntʆb H'S Jg_9̒EGdZD(dpsx<$$HD] TU4РҮSJkJ] D])Р*&5tiUSHUt.t.]hTCJ )uUBK֕WZEt+]]kB:GJ#itNEU4.(:DD":]*҈QM(M .ҋ( kJi@@ցuH&:֝ *"#](iWK*:PQM ."H# a  uQ]iEP] .tiGItGB]@*4҂t t:Ҩiut(iAQ֗ZEiUiCJ&EUd E# HI$VQ֔GJZt :QZкGKѤM " кЎD֑Et(Eu]**( AKuQt((M*GBA SJhDңDtHuР:Ҩ.4(DDU4*: (QӡU֑֔֔THUӤutT4t SBPGIP֔DЈ:E֔Ң(uPQt"SB.M)GH.]iUi iGN(4WN*:Ъ(((:](t(.ht(H)]*Р.ִHQuDtM.֗ZSKօ].CHDtTt(EGJ)D֝+#SKQ]kNhTE҆MUQGB(EtSHCB:U]#t *::Ҋ:QDЈЪ U&ZEt .]iTҚUETHKKQ.AQuIAWF֕@]"$#I!btEEEIDRIE`ő#QM*"iGJ:tN:PPUM(M#t*H *t:Ҋ (L v $TB]56-[C>apm{ϚF CI0;ᚳʧvoƠ3+s7njinjo7vanw-|݅AaC[Т-~݅/W{E-x;݅->ao=c֫hJG"b ZT}W4TԶ~?Z_Q]{g}֌_.W'#G#q""7Br_>9e>;|~cg!*\<^O7v^OǪEg*ڀlCAEq Y *zTD[oeeakH'&{ʏ=8 my' q^|D74nsw^vM߽-P~ a&<;Na8?* %O-YbPLm8?sZ󗖧#Lsgߨ"Ga@eӁ5*aU Qi M`m\ds',nHR^F*K oB kK H WXRC[ ­(nL"/+b"0m,F mkBDʧj07'&dO-yZy 'P?B?h;(Prڮ &*n-*iCQqКgU[3J:kuTLnxj " z/XX2_!śJ )q6.H 泉dӁ(!{TۇpMABܝ>eT(h۷G6`\"<+"Z}w_rʌPa.KAl|Gϸ-8hߧ%)[ꟾ3B3]lcD$(h".+HDL.***$JC GRa啅Ę-8֐W<ѵLTY*XSunoǜ{K{OsVי<J6ޥ4KjןnJ5ܭL-g&t `?ف}cL7DιOn }O*A?H&{mIn36| ]RfJ]z7r~OGL8  >?r*xuVI x+K sYq|[wQ1v?Y`<>p=+~pNB"^X+z~g:_7{n8q?\(bW+x6R>oҕb$\=PPʈOam?6μ٘1byƹ~KUELu˺AB77jO'+dd\~ dFjPj ETQ6%QmxR6!Ozbϟ35<7;}QF߹UEϸ`t׋?X՝ShxY߭2\V!4Bre;74JhPV'NHR BPhhr˸a!Xnt>r:oK`7\a-}4ݹףHN+*My ɘ6cƎ8z=ʴ Q>&Ǩa0AI?peѤΊzC\},Q3P<А Zh{[bw">ڗMA(=,D~ 1댊2 {eeoVzz=!yêoD:S]ͲQ oFQAq Xc% "PykzUJ{/^G3*A=]D/jWg͓lrrjpG$vp\;; n?փ` ^aJ6%e*_|#}>"5p7원7ꪝI!AVU &LNxT+U"X^//z߯3vXB!:T)ZhA*6IFAk[y+F'Zb{I%Gq0ZMqm[nΛiϳL;u 8 𭪚{NNy{#͝ҭLr?Z3XtT[ zh+?h1_=o@7Hߢ d wIsOn|{+oȞ;l?iCI)ASg1t聕~Y\BصpzBf2!č jV xMgp}|tZ"xmҧ;!zy[BL T~xbW+ g !&qg9 ]r@Grq%弶{ބ# K B__7*7"],֟Om [6.Xr߫Ǩ0`IкKE`2[=q-"hG3R ͝$auSLjvy! n{[Gc˦}_wa:'>pr(wXƧ#pP ܚOF>pȨ7~SЧ9nטL{ 9݃!Rfƃza>(Qed.& KY萿܋17H(_&zҙ/"J:zѩaK\,0ءp^?hը̯ +ƣVҕۤaa WX6}z.b ezÛܪϵae#7Jܶ}"+҆"\AJ aI:\-bl8?$Mu-\_Ur?me?d2^6^RB v?) ]oPMA[:.F(fCG1@ƅ4q2mo@C㈶)8< &F^mDyy[7,en2Px_qn?Gܷ/$?COn'(.y [j"_Ql( ym > ?T x.8.}9оsXΟqp;"t".u!8x6v:.[Fo/ogYZ g}\e76KpCdkZ*Cɯ|a+[l:[k>waRotyJi=E0ᬃol;ޏX4>Lcgl/k{袆Ń>1 SI!s'v3<~/SvPy<\1[7xhS bq {Ox;CiOŞ8= 5k䉫?G@6OnA8`qplOrCr*kTu_U( qfގ]#c 9hlt/M2j{z:Kz:IԞ62?n?s@0ekߧkok~<þہPGk'bf;[d1s} ,$$6 1UG/\G|BZgIʖc:k/PzEub?+XLHnnip{ V4"<)iuj-.!44)=up vK`ϑؾ}奇!h"̐Eg_}7\&^̶s\,L{'HqT_ӯj!^$;Yn %\cz%w^W)C]IvDFLUTLϟZ@qRp9ξh3-J ԶG{:j k2ʫ'c,ShErXQfs8th8pj&cbͰJp1b,,`ﺎj\SkLyb큮xbFwo998~^e 6omK,>F@k /+ݬ7Sg37ba4;TΘs*z =v1ηI{e},{|w |ʀkey7gWA,O8 x жعTmd0}>-%u*͒YD_Or+`<$Nz;eaE2Fcm3u`F`3$Aиl!< \6kOv=/FWxW'NUv%( ߓ ݉J}>nN)(+o);&ޢIH*DA!(C^&vMť>0ucz^b<'#=Jk ;~C7yaģD|gf:C}/=3|*ZT(_{q/7N50~teU~C-0v/glm[(ǻLڤ::R:|QzNq3xޏTMB1jzny)ӈH9V?t&!lHОEsasRkPbl].⛩{ $7^BW PWWp?9~έ{<S^ÑKn1_#yN9vـDf tL|T4pFp+t6g٤1P<+DŽt.A  OΧ m;6.PFf,(7]IB;M8Xxe+ gYʜF_n>}#' ^]Zw|$[jܖd_XH[Iws%W]RE3 '= İj6orNTWޡ [A쫌15 cp7ԚebWúGW9fCuw}O vfUL@Ȣ b6< !ncVmEP juC,},-{Aoɵ3lʑ㜣8#"9_3<- gZf^0gH ̜0baR GB۬:o֛{"oث枬j>XG88tg,,/OtQūK=pT=Rvʊ{L0o|刊Qր9b~'*A˳1n l oY7:utOġ`6ĵusm3 hsCg<߬Yc.x^lJ>̭黠|;Z(.y)Cgq'5W[# /:&Sдfh (8#!A~@a2T>> 0k0:?t?R}" `(xƂ/!P`+P$5(k_P;|^(TuX@M@d0A$sPNz1c?LCAG9 ip` r@)@s (mPEAWs~uPWm~ 5/A @NJ ဩ@ R!  @Ox!F=+Q|"8!`Cv ! h"bEa4|~ OA^耎.DC(L% }BA?<?lPAC0 H v/ (WG Q?PM l (@PW9!@B>Lй…OC 5=H0~GF ,TmMS"G8_a`2 퀸߁u,] gܰe" ПJ~ŹEs33@f~f1ǝDBw-x3*)l︺$Dcʉ#v H8Z?iІ1rOhcF.qaiq'!RA~@L:lDķz-ꦟea&r3x'f'; z=4fE.%!B*W|;2j ]ڭ&1Ud?a53>j8feNlyy2з}ؽCA?1D1%:xWD*Y5AN[hyAƥv"ep 4?M1WӅV'P# 0[,@ԝc wj8ѓ.0;=HmMNg@D7АnZCk\2)-n]~-u m_~pf+sً>JRgQ%b e•iOA_`HKPŴ_5cl,VRKBcc޵7]4Fxynmp9d`XjF0xD*FY %V3p)!S$Mt?Ge A*kĂ(Ġȱ K1jh+\b9Vj5cOP51W 51ޝS<P ;pT,ZbtQ> 5O/˴a?7ˠ)ou3 t.8a"&\9BZ>G}-ujH}+h N@{?8'wvY:@/6k]up:vO;d`9eUqhH@UњI.$T; wlPX-ELcieFp`Y+q?ϔjt-xkÒm|7J4[0lFݩݾD6LPPIDBJ*_kGZY4Zp #mDWkIV.Yz9JoޱU1YɿdHB R e"j*gIk˔7-å' z 8S3Y dvsn 7[ծb8knR?Bf_ )2Q?*A剔QT\DLs+QDGL$F%N"!YqOﰙW0~q"S$MB2US,@T*@)tMƿ$pdKTFZu S~}T%N%LŤ񟯓ݮSNaJ+A_DQ k?Ƣu /"d:!Gqe]ΥwHC)H7-LCA?4mƿKS?ܙA -26Vk -˳Btj /xE=NΔ>Js2ﯲGqݲ4E k diTD!Q ?B9UM\vx_1H+8yV~wYc|'^O]KlT]1-vct 8m=]"qKVέDޜ3:$68pEr!0F]Dss/F O[rsap [yfP?7Ц}ўKhVdbZ6LBӓ DTDoR7dݢ6sRq8Za-: $}Ljk,+`6B[Y|{x;}?OCWnl9T6W(w#Ve. t &pJȾzPQ?! @6@,Z4 m;* w|7ӷJ82er;ӭgG p'cIbFB&lǡKO'HD!aO-6@&7F5x#vmDl[1,RtFfY6ڿ E2[iJ6LgA:-e#l'4HKppɒVIsdWDDRŤ̫!jmqT.\^zcBȀ! ?C#DDmp8裷D,#9H`GX8Q]rA*#"׋ikͦ-:4}ȇ\}C/rMg( qzb`ʱgmD7#pNn2>JW+2~1xpx?'ǒ{^~ņ,~"L`cʼne2(@uW@0-I@,$|Ȝhu\_>#^ p)]4RIul:{{cKຖm f0}_n}i0`X!(7thM oPfeӌA:<8$ɀ X$;NQqgy 2#b.w'QcbyL:s\G8t0r xQg[=$8)q6A9(^/^BLKp4S8܍zA|6WK@@d.(h+pK/,$8ǒ[+4Qw28i>?U\yY}(H=8?9 D ouR:|<ּ]c$b#H^֙N? ؁ u}6 Ŗk^i^u5GmL)$chȥ7~r͟{|хiזKUף8&}iwm_#SՐH}aln;KNӦLϧF>5i6|'^&KMpaLO#saz5XA&G'# ѓO(ɲ|û l텉pN:+Ü̫ۗ5N B%ӑy2IT'/^g\Lb ӶjbykD R6Py(,r&0QAFjJ/%.yJJݱr4qJ ZR|~ qExݟp:؉ qXn/؇t6ij:b':#x$\Nw.|фIÏj0&H~c9?s-kԯۡ]6d}aџPgJӹG'?w200ƣq~²}˜6 ygeI"*D7}V_sCnsc p,zA~К6c (rl @Eצ;iXK@)xp-}`Nѹm1z◧ߦ (hӟMΰ)C9C>!LSeGy.(w a~e!%}!Ƞr&:x#;.a؟)8 {<_-H #Ksߗ:Cن +jhS߈G^/=j@7#ѯ$  O{j|D3Nq,ߥ؞ p/DԢ>=)=<_I͡y# b#>@Pa]iԊ؄0nEm* A9cɷ䘙sAЌܚ|鸯75Ǣz$dq܅cJlN_ xcu\z$" t:A4U! ܆0n0|Zg˽M|my'`M`1 㶤\S<C@$7 /* A]Y6Ɵ,7G&&I4DPEVlW0(_Т#16:c v{Z?\dd]zdE&t"w4O;y*x}bi x͛yUyCVF*tjo!協D:Oc"j<|Saް}x@)It) b]KOXKw\iyNndX̦< x&ץ)D .9 1)6kF'~8c1mZO0`64swXGH^†:,_8PJy`AlNoI>ž+"|{ TELa JFhQF ;?*Cv1FhhHǧ(]唲Ejd2}r\fth08>xV8ᗾ~RY#bww?/cL xyьA喲$”*!_]VǜޞfumѶIZ1wH'A7A8/ 0B$!:5TE´<KC(a[4޹՞JYm#vo^rK\;&{Οp'"\:86ЬX[~Fh>k &v*=rE{.U6}IC x9 Q.H"=/ Ϛs3]H 'W(J>}#C390ƺ/wb\lb9c,&:"l =ᐿ}, Dx@r>=R[hxV:Sm`l;fȏqpN~m 34sAAņh+kp`i x6u XL ن]<qT0 /QT'J[)zwiM$I7y`{w "QcH1Ơ8w+%L 1bt|Cғ=1{xaOpq !AJ?P&d p|(2_58#9jöx<\ܙaS Ia &IQѦ =/RWɔܓԛ֐!cojmу/\Wf2zD ごl87sבb"hE|c.*w q{Ad;gvkterJ=A T.o'◧,w5< , ^y?UȒ;ok!4(&1c!xz*2&jDk61o&F-) A27OUQ>Pv&?;CZ1z;g'40!}:%g$V4 =qX|r'|lqLiWLnr0qC-(5x0c?:}~@ CaΉ-XؐC+;x0̐~&=X6|9Ƀz:02@;3z|"k/f<__|Yw? Іq/Sm~4&Pɑe!xB;zay>vCF(sIN2؇EJ!"G >qЅ1<ƣIWg=W?4f&Nj%<3f&8w?p~89"kıf0cI_!~áei#琚1^T[nue :B`??D~p[ V.Çp:ٍeۆ)/oh4Q{`Oȶ2R+Rns0ָ]TĊ`i {9dv1k HxG.IeK3XdOmMWNj{'X M;Ff\bi:~͔~`[K~pKO0~#Il敗 ٛv$"\uM{O<DşQ&QÖ́!D,F zXOA dt*C!D=px#p`b@osA*pbG9'46yhi6@vYτœY =h47:&Pp:F<3E(ZI~xN05hV ;Yy&D(V Xkh'G;17ƟJŹFy!=uX?!}Nj o7+ű#8#]TyKPe~1m Ry^Wz QƞULxM& HQM1YQP8 AwA{3~% ޸̅>ږG3>?ӗjhl )`NLd6Tl{SXțHJh=4zٺu1n8og] 8GՑF/Fy(/!RdجiaK{&~XFP uϤp7}SC% @y=J Qrn)1&>c yfOG֍zGwR76vG?eDy|'P77̑AX.-p;\'ѮrEh5>L tv9E'6_A,m|ºџ=+(}^$ĿY yTQr{^WR]ɬ,|AI-?* >?NH$DIcw #6olm32Q9_fLqW' ÆktEZ*a7,|e:VU ^Ӵ zѐ- -XY|| w36_a)Vz\Hb(9g5PbCKdcck p?[ac<3^Ϳ8\;\C%?vECL J G7s:;ɚEG@u! 5_8"t1, 9y< "># C*=A8~CN'Ö$i&wGn?QƌTlAp@$yW8zB L > |x/~%fp,GR㠠#ř<*?}Fyҁ:*RNPNfGFK+9XC({G?:~3SA6hs=A\7럁3ؽo?:V)Ó>[BS>aܝ,&X*0šch}o]ap,a hVkڼ@aJkL; /Xd-"c9̶#*'L r4ړc3Q[2t-Bzra $N(c9:sU7C{-c8?<%8?xGgM?; I@:kϋIc.6KNɿY`n9f}y֑1_$ўxͶ $LuGa ?@ZzD dDtql56Pg9ڣ`4'&a.˒lnrz_^8G)Α=dԁZrs#`y7 ;:qbawC̐`cG?IlSs ѱ*Glc9`?+C@Q~ 0Rܔrsdh &<bDːiG2"՝㿲<қbLDܙ+at#!ǀ^ ^nC0Ǒ5Ph`Bw_rh4“"bz?OrL㢚pܝY̟.6PRޗ(..>Hӹ~':{^jYLN+<CYm7|g՜zs431Zb-$jșbʼn6]#ۙ!Е择j.%qip2Ǡu~R+=>!2Y&tWgkDnꉚ`t{P۟Q0ҳ}C I3=Z,MP>B:gmTS t}ׇG͟ߺS(vyL="@-p>m n oqHCQX nF"ZF`: =$e;ƄPH3-MW"w6:**ڡ ;j"+<9q=vX3&9T<듅;z}co6^7jKO|DgiOs>c; WvU//6C J[ , 䚋AGF`}gྌ{-+6\Q 9af$RecEa3f}@jjw`+V8}W@`@f]e `qRO\v]݂ԁ;A4rpJx% Ú'=1uC1YS1y"etuӉ(c(f=Pd0S͗şɖ`ǒxnU"raJY>0Is3 t X^m?/ vX=u`8ud婫U `ތRЍ&tGm^.0= &`fg4=,Wأ8qdrԄo/B lq1s'bpه~;D8p 35o0zf)Li>x 3BȂYJsq1y!d!+2C{ +nj|70c獶-T$h]?~@2A(:;pEғx|'菆Vcwc3GtqHh\`sg o0 ohcJQR`5K,oFu\Q;J}IE{&pvq7 1ؑOyw4m?n̔K{sϻ7eOP bpP3RsZnLxdcNpe>ޝPx< y@  ᅕxܰ`;__sN/+sGqثGO {f_-YqfC<{ TaΏln]gbԗ]w]<ߔxT &/Aߺm~5>]g ƞ<eqM0%(yL1FzaƬH"GR[)d,,AECֵv\1ۋ11^J ;&Oz(#[O87Gs;;blDP(~<6 у5Te5yy֛y=ݘ̉9G3VJ }rlA̖|C8N7>vГCH\ǝ8;C& sDLx:.!O\q>DzzDཏO}ˇ{&(q31= .ɐ6On@I9ӧvN?3s8L0@OH}`!4 `ِ4o:I({轩6tl:|:FGP{*a+H$}c!O`4/\L#RBHohtw˩.E #5GcDe?#oMdmڇQډiv.n3&MAhCi 7RǕL }{o(3*hgicGaS=E#zg9,qa#>6(p4S,.?WX2=6hf9,0qz>wE8?d D$#k8<4  LJ!8YL]B:qSҔ1ѲrB lȦiT޸m<(JίմCNh/CwMg|5!*u<_;3ק5*hNXrP۴pe}T?ak6~#K] tj"o㕥EKL9@!tXrޘI2~2L=~6ާk>Om<]_G_`Qw&J`.JX{Vo 5~V`d)2/`0#.䞒=G 2j6YzU!bηr}"Fk(g,Yϖ+ |e dOMZJPY9sn?= K(<"hc!ݱ>rydC:(uj { aMa y>Dc 7r*TˌJujVl|QV] Eի,Q1ZVАj~($ҡOXk>fg S!(WRr(1QɊ/C/@4)| F gUp,36yZiHyQ@K*n.5ZoqAd1(R*@Xu MD gN+GOw݇]hj 4IL[ ؙ)VK NG";ӪE/ D壚VG]`NR'ד',G( vRDQ`a`Nn\_+^r[zdCs Qȃw2X URcWj.$JhZ^V..]@x`jg2eCRpʕQѩ\䚙0F8$zx|߻8po8WЗ k/`ء0OTp@[/>3PV7Šu^/oYͶ,~_ vr@@_",8ڳXsm(Ǹ\|Aы8ݷs?>q<.,.h9FPN =ٜ>z/GF,>F5K,=Sv b>ezEڱ6;vl]ɳ>8c<KS%K6`00gsId1gnXdoOH4c~Or><rYi/# =x/ 8].K[W&[O-ooopCEt]%.'x4+Hblr 3f7k]#C1+ Q|h> E3T\ˉ8 C8f_5,0I]S[2Ehfⷭc<": X!7B@[|̖Nni[zM{qk(4MP~?KUfu}R9p;öjk{ql~~P ̏9[w*Oߙ YP{mR`| j`L\6zjUjr~WRfEy܁ zoai ĉ*220_!AP%ω2;ꈩ-+ARSӔ( !*H&D%S"jL";=h Yhsm|4Y7 e(#@B:R6ʺavlH )DLO+si31Y؈sxm3x遐{"3.KY % ݑvd[ tb63xP[B/N"NqέQw٬vpE1K'|b["!T> a7ChbBrŢ͘7#>sɼ3XC nMwۺ.y~+ئ pWk1gM]Urw|̾T0wՆtðm6]%ٙ fRe{P7϶JaudA)"0 <&;-O3.,M{ۅI{a^!4!O!aph@g5P`>V4h^:}`CQr=q@pLeg}~tsL6>ڣ^a G/G=_ fLC؎=J!V*P:ty0Bdpy`Dl Ҩ$7,_{†DXR[M1":(B*"կXCS}hp߄ȟGA8cooM3Buy}Z3Ǻ ~EeU#"^3cP,8Cp^Ce@.v"˅˘v{bP].:KTe{Ol%M;mE)>T͝wC.zG P$6‰6ṅ\=2jiVn3xotvX .3;2cbޟo@_<-w)g1HHyXc+BVMtS3= dq[3GܘyZQ$ZACov89ve:HGuJ su3k*.U]5]] Ry)V2aNw|ob"mslF@8A޲2yZA6g6h2N ?C}\6x@߶Tux/^{ԒƏlɁ +jjF*"F]relf 4ul@_B R!d³=)cw!Εb%(cP| xP}(Vu~186Kh*3[ i dP5麷e]RC_eԽ~vD'[MH7eyMX}ٗM qi=ʛИ+B_ŵau^m_[Js(5._8 (QF!67g];08>V]60r `9 yŠ3 Ҷh5ɵk Duukw)\vPI[if<P4Eg4%ՇQJ=Vp.2L#nk\鏲z>ҁ@үaZLAd(+({"$剪۟_6(qNSa0Vs3>etbYUlw#1vT.mPiQ<0qWn{~g{w iJwUaqa3UO$@&``Nn\tj4q]5ڬ@dQu >F=1]' o%C}NaX{cA Ln#Fѽq8XJ )0&6KBJ6҆"|<->(v6l:bxؔ`<Ai4]"rѤTKFFmZE8ȇ5♡ #IBEoܡěGMaG fUUH𺆺 /3a! ebwq#Ȫr+>'O"8\eҹ AwA_,D77=4 UCj +u'HZ5nziykBspuhj!n>腾ٳ1xkU Q k8`T$G;lDrqB5H 'v5 `giR*~y / )Ҁo)-ߝxQSEq-Vx=:抸!|+^P}PN]/J FK#RWYqJ'C.R\񍃐-M,N^ri[]N;j>89js|YEĖkO\nq4^DH@p) ^qTRiji5 i4hFMY~.01k530O)\hNYOO`Lqman)V/FFiO\0?,j%&* 8ZiOÌ![ĢKWI€ӨGpnݗ{Ffha~IM{%}-ba]AX5=^'+Qsg@Ssذh.fٶ}V8"좴wWJZDl)( QVd#xΏg(6h58 )#2jV#pϯhgEGQq.qly,2a tNTrL;"QT\"%]A $Q w]O16~W }~m84K&N ٟʡz_4~^2TKQ@a$E1Z3gX3+֣Fu*u`IKFz2ķY ab#W|Y JyNk.ǭqAD2+j_wx}Ӈ#=F"??}2a9LTY7#&VGƤf3E!/]]QͲл%QYbQc~ux:+u#BI^RUP#.xUa8A;,!!9 ^@WBtβ!T@ D6*g&PjkNJ-,QWl'u^\S:]Ihel񏥍Ya|6qdGY wzBǁCU碢AD;؊o0`Sd+bv /M!W` U_ qEyH9ӊ`/9@?DCppQSEAbzQEOR<?\P@S(Sɀ TȪ<(wCdDLmF^c8:q0v R.[jPHA=oqyGkݒAÞ 0fTXW{{`!UCe>¦D@H[6u&,Ǧ1T֧F{?S?v~L2A~_. T3'׀ ~(>DHP$"!lEZPrS6#$YtVBS*M(Rq_8P08/DZoviq>;y8?]OCXկʜ (`AP](,aX[ߗ_8,tт&A;>[?seWM%㺱5-oB-{3GHr%iRvl=^{R[ް"quRYH%ee5>R"-5EbR^-bb0`+EBB0[~/e aP:7n]Dc^zlM}/V)6͚0ݻN^.YC$hKϼXB*>2TZ굕5sߌ@R [N^=ދV$0ɫ1lumJرJ#VNV%{cFut:_ark*(e/|C('69x2G ›OL\ np^gv;.V@^_Oj~Iax'jg zNc7Ly2ؽ )'6 -W%V.k+CcZ"OàQ*d0"P2ɨ7DNxiozeOJtmBo\ >a-o\41ߏoAŮ#$0jϲ5mF_!`B[4Uˢ26! F )ۛ8l[[guc -ι1?86JqƸPg{R F׎Gu GK;/2K{H\VIkIC]yݫ aCZwr _ *ns?@yNM]9!i a-ޒ(.G6b&B2;%i*+p1accw,e_Oꀪy #s5y@Fɑd?ET.-T1ס\~9[D"e@f W TIAHR+f씻8V* fЙOmZӼO ?Îo ^*U@#E)t`7<;mx:f2/`"W;``pϡӄ]uϮn3F'-ȑ/jŠ~|<q1eէR aI 5>v:@p4JV=Iq:8ۥZU/Ҥd"2OTw!b9@;``eeed'- Rܵ-fB؎2~ƶ,MbBZv ۜrTqYr02p~p>tyl:nCOKݸQ*/k^!ye{74U}C 2˝ɋ>cj2m^ A_ué򑾅rNuXå{ey䕷mH΀}x.E)&!"˸Dq4yaJM W7,I^BsuAQ%|_9ZDXZU3oƪ|gу j7t{Ǻ۶8d[k\?5E4GFڨp!,ñHuoSp_[Jm;rdyCñNZÃ`7ʧ^#AL r[t!6YD2E˜O>K)^+LPV;bj܂ժj#>LduKmŽw:PlaE`:IJu1ލ\,Cy-Aă |T ʡ η.;W- ݎoeq;ktab xa CAa@Xμ*J- Z0dd:lvR1p*e-ssy-H? "ƈ)T2 靦#@j5t> ;.^ ڞ`ނ;Y#m`K\R9ߑh=KNqZ!PC~zl`0/#a+|6zB `,F7͡F|`RBu32g}z,S:eUR?'*m'm :2I_owC>nSPOZ@%i}~%9/pE?|ϸ8o>=k0aKʴ|n]{fs36!"+rbbӟ0,-CPv; ~6'Fi#VZ^"-EN wIzܷYL9;nzAU;׍urÅX AJ '(XWzum?=p 0 3qF8؍mېSTRB Z3edslJѨѡ\55zHA4X(Rٸn?0"CrCŽCYcm8n3.e5a]ޑ98tQ"^9hlwԉi9WӫYHx_옆9rf` ~+Vsn,x`' mլhŦXy?S}#;efWf. Bv:a|{**&.w:9tJBXAKG.dp)U,F!qE )""'*bߧgE!Nj8'^8G]e $j7pzc b}ы5Mugs9\lOw%yyAodX/߫wўa  P, _˨@OgN(#϶Z͵Ln1孺}rTȇ/csjz5۰p98/C ahWabrbqV8 !eAQIӫHE8 x Üm6PwTT5d[a]w\!6ǃx[b( k8S1PZ0p34}]q-}эFXg3 v7|=L( cƸ!(/ X&P왕Cy柦"}܎ϽR[N4CQjcpa.:-M.!&)NmhTܿ.]?2#۲!yPA,c{Yr~!T>qchônhG#~npz@U 0i HAq+}Or=gwk~#OeWH>GVG^?{6tgXz1)V* 2 2!o@;GPK0‡ wuzʎz\kQ6 [S0f;ѳǹJoc8>}Cv0wZ qM"I3r]dΨ8i3רa`?Ox>%~A=^7G`GTAw,m6C{Ab8[ unqhAiax3.!Q<ڞ(OJG;(;ԓ[$R .pm!2hk2@e`X~ͤm_띬𦍉ui'0o]|~+rc#B%;ӋcBy*n p9_c|zg5png~n-O_Iy 3ejFVuM {prqjr$b`:,AR%,3AժÄm`+etK2e ӻ  #R@TzΡXC۴.e ,hF8ƾX55k!x><\ Chret6 g ;T|1&ewIdpX4)\#Roj%`9#S@vLkF6ml)Ѵ?<̓ C!(aI`'csrMj=LV::B=maP:j[!?Sg&gu'/3(_E7 ] M2ײWbȳ, +1[[[]^YudU% l{]a?f <,gvb=*CxxL ܪy !":s(C!v7bm~!ߧ95 Ac锄#z68bb:Tt=/~ v x\IY=N  K*fY^r\}(dv+lCU֨^![!E}v?ȧ7}aC#4|A-D*7"\)lbhoaM+2{F;> r<{@,5H6gς)^Oؚqr I=X#z9J6X=}nXB;ӆـӋu ٻ>ccdpڡmQ0.S7%nkr>D.L;v?!HD5 6kSJQ?eW|~ aM`!y=FZ|c=0nETX1_hxڏv5kM@7;ʑA$wfc:]6#'cE<ܬ^j dL-) yaS Qu;A98P? v9Q-dpCĈ~؇)؟Ca4b.>~ӵR zm!tPljB;.;?r$;!{:: >qq9Gzo)32ĈHEQ*V,ځ:t cEdbhZL}8bp?wkT <{5R+e&b]@68?PO¡iv=Lѯ] x\280czly!A(t45 =F")XSps pE:=-ùa#SC?˖c_Z@r } VǛ Mk ŗ$,&2 *S:!L2--AΥtlsک pgĿ-dCA::]c/u:13c8r զ^]_ x|h۱K XF_'\Lc?pLXdS?3]r'GMio@BD6"1SVUUaS aXR*)E|+,EVp4iP^UO?B~(j#I###$HB(B)"\h"Ȍ2BHZ"!1("]kPG@  BBEAuQ$BASE0P+ADt$"HH zD$D$J"H"$, B F)PZ҆BҀ.@ FCD*:] 20 (ȈH ,B"$$Q *lJHY@B,Q**$"h4))Цtt h!K mߪ`B# H$$EiCKWB .( BH2 $U2*I"$@*Yaѡ ?ˣZ5tJ0AoEhPdI @ @RAddUU#PDBQtKhAQ(5 ( A] 4(]ЊB,"  " N4#FP::Ҩ%BIA $V!PAdI-YSB@SB.GBM.P֠t] *Р()UֈC_u.WZ@]+"E@%b^݃ H$Ȱ,XHH *! HkzQDC8|,DzxJv7kx!zB_(Br7Fh}"Ֆ=nCckXW,%|8(I>`Y–&V~liiWéq: _߃dGێ`?uըg{k)|+ép!Oˡ6.>?b+Ƨ@D> "3@Lvد;{E;}/ћq W; 7&Zc٢$ 3S|VoZVSG(G";EA) u>bu}mߞ2 v۟h?W_Z4Xi9![|x kn=/Yu(v"Z!smʹ܍Ȫ*wZIxJ *IXcjf8sP4wa<MK/Z186 *  Ms[_cǨ9@pV&7##6&P`A=qp_&咜V f ,O3}ӏYo,=$\ N$@\i7t`v0.Md:1z`hnĈ\ؾc:ssOi1GCx(f_StqC]ةr;XѮ.ZGUfS7A˸>3fl^vuuj"/3K]:2M8(gU:tvz/E&):6]BӥΖzvZ㏉l=v#hwwz^.jЌ 6}rǍ} GMyLhHtJ"ȅAm苤2A|gcSdF9wׁ&rdRybf9lv?]TA:s J[h<˗/0`PwbŋMW:h4j@#>wPyPHHX90A!ʐv ѷyNaӭt;+ݏpȪ}u?ˌ^90T0 !6N?kl:fѳZk5岎IAw=u"_zu{tt>I !bK)\GaѮ 2]u!2(a-ꆕp%J`}z?(r ְ+Saq@C ܜ2}?T9BQ_ݵz·_R{V\(ipo*q竘5l{~^lv8σF#`bh(|/w4uy_Ύ8@^⹅|TA@0{W9ҎEn#@{G0?gpru^cE],m{cM_&:lhq r!x)\^~bDwH#Tбj<")Ե- \]Y=ʋr*a`O.d]%MU'T pN Q8oORk&1E{OK[* X69 ~w`ñiũC({氂0<^./zl]nv8pC$€b 0x4 1 ,+1: O*Lc4~NE2—|](hL(aNX0~wxb߷OT\El<^+rv'tX,S!i!0 0?4M07#G6F4b\S˜FkrUR1P0)V7c~4?샲4 hib0} X{UNF7) RA1dzGCCo_BԀK0nN In<ݿ>4\:t(ldP:WKخU*m?ݚ; 24짩 i3_+ln1` Mm.CQ@藜S 60pcHd _rKqvCozCq0ngJgBS1Ӵcd:a;i7ɣ ]ܵXA`쏄?Hqo:ΕGXv;AQab DG{N5rUH;Ф7]ܚnfw5#w͇oփH4G߳Cx{%fF#FѠxf5 <3Cǎ{+fjhJC;g?+9 PXS+l!lC5iGuzO=۞c!~Nje\*X=;=ӑ^YÃjof!# Z 7 }_Wb]hpc!Swcޠ8(:U(b":nPf\ևn{z gaTiGkHogF 2FgKdH&in^jcQ {9.A <r$ {*(y54ܠodzlB q 0C ٦UvRtI/_]W싈&`nGy]<&k":$"((eD3 UkcAl `0+FA3f3fִjE(,j564Nа?Z!ACq_~KWä3%C|Rxj,D ]ObA' Tvl/m#/|A P4Sgͤpy kXf0K>'?">yzb')nkַM6Lp^?y%o",{4l{kl4c RAɧ }rvS3w(>Ԁ9;>dU4mΘT_' hբ-PdMьy T<˃Ӏf ;ax̦ipmg C`lamx'!`ϻԷ^ٹ >E9F~oDz.Ǚebf{b񤎬aɗަ-;/_qb9zOWR:KR$ ,Fc!R[2 "-++Rχ⸓8av]-G## Jz3sl[ԋg^}PzPCGB8D}Cb֚}^~\spv!K=?n> ='ۯtZgħUptb@އC5uvI1Q$=Í X ^3 /OE4t)~WFah)dNӥݭ|K1ST3y'R3Vܷi{~Ř"K"'eU9IFnI n/\کtW};rȡՆ*+m}J$͙sz>,f(Ә8^,85 E I3{3_]"JfB]ehPϾg$.&iR chZ2't:SeMCl]}#w7) Hz/Ǽj R~0Ax*TDʄ¡YRC0*x>A67KǶ6gtH7Iq<=Є( =pnd_4LO&B|+( =dV(#&B58pi) rP\9AX?yݕDZJ |A" 1?Lm3\sg^F}MЏ/"A5Bqd^LTîd 1]/_{άX&3: MwuLzomE"؏%;ťd튍S ŭ g9W+"˻[hϺ&Qs?U hs}s'N8f B%XĿ+2>o{O>3',3OۗaÈvJPN8 T5(U͠`  X6lҍWť|1`hѾ4G=4SJagḓ9YDVqqPDO#Dbpn'[L $n\x)xa`BM<:FP ]8 9ϗ4cgz6㬥р: ,,-9nilغ*_RD5-۴\z| ߊSB}"4d6m5 _쥮DZoP:bЩt?=XWz{pJIrHf8B] B" 73X.a-(q&SZҌ. Ey/q2dSKA@fNN~ּh,]\G%ջ(ExޤxL&`, HK^dx^6O|:';-ěu Ρy_"9<;Dr<:Ko4Ɍ@XvH\~g@jD7%K~ 4g\xh?Lم%dwtJH;Cyp=|c-1nsJ/Q$_O"(6^J ?++KT"t_' mH D;{h1crp8}'8s5۲I7s~tsˑm~J=O"oSmlDHpޫ)eVR˴5y a%M;m W'$4w tZzlKAAeeޭ OGGFɉ)FY8޾IyК*e;9n+Wtxpq#R-YmmВG?0_cӿ6X]2LeN2ˆYeӖYt,eLLeLeYt˧,,,,r˦]2,,˖Ye,,eYt,]:eYe,eNeӖ]2˦\˦]9eL,,L.e,t˦Ye,.r,˦YeӦYf*|א!o3 ٿ,k,bztвybhS~%e3󷭠H֤!Df#}ċXxo:1ǎjy?S]PL֣L9gg׍{BF"1uF:13p-*\T3JE6*?X35 ?}$ڕؓCWZO)SGvNj24DDL5/Y*W]nXhAMVZvڹYF7Yft˧ Z0飅aWK].wLLUg{3tGݿ?O_}_}|?]|ۭ 뿻ϯ?{V}9 mA{%taK[GH9IPǏdk{J m?yCd 1gJOpz-xv3@Pz{pN\PG8׆X~MMVSAMS8 4(AmlӳqTZ/0 śP[QBG?HEy#KSUkm{{l,W.rDy-G|9Ԃ9Pe VRVr!s ȊҌd2gZʢ0Hn];sܜ3 !>'܏6^4dbp +#u "TcJPvQcyCk4º+@h+u=EDbsL`;mF &{PYFHvGS8/uL#N0H{>2w+,ǁm,Ck4'vk=\ 1lcQts6ƿ3j59]pہTV6.ⴾgnUUN:ѱ+.Ӫ\k$uZi?>qa{?]Ϡq<>\jhC)T'N`(ǎZEJ+ΘU5lV@<%H>9㒐S/_'576[jzj3X!;w9rH_Gʘq{B5v]=QZi.k;~1b,++^Ύ[xC)u|fSyI̥̜D:ZX4@0iÏ![5pp7% *fK0B$D技@xFWU'1ÄO:>赘uhAt7Zp6R;CK`8'&:0=eJ)CyH+?BW!PոH] a6y^Xfw K }L2,mq Rk]lWXecYilJMR= {PJ ``']g=4ˮ>" Dޭbmp3X^j|NUsZ&Ng;n?|Ug ;zў"ܩ>qkʙO^FAc<AT0.kx\,(\ZZA$nY:?❒ o/ UΪ(TА 0TIB;8J,ږv9Mb; b,BشZZ\l˽OB}ozjɇ{8S"eQL;||kL$ Sma0H%1ʌ,і\nçNq^hkeOl.&~Yh.iOoRU7D5Eq VPaXWAVzVrkQo%įLnI7!qIOtRogAt{yb33+-7"V_ϠwsH'2 [s_/ݳBdGoz8-g n~)<ܢBfiɴf!Cady87\~slP>7"1Yc@)z!ֳn K ֲs=to ᬷIU DrKWa^h@ ˙v  JѰf3ȳ#BG 阶*b06ްw":bKТۡG}ӟ@[e3Sٴk޿VO6?"b)E ŵpr?${cK##-&*gX͔0,eu l ^  @%=јghrb`ϞP%  #|sG 76wǴgAVoT1[ÑK gM>9hiO+U3. Y푊y5J!U6*J`P%KH'+`3bؑXTh\P-*_A<' äƛ$ $,}Q-iQv$S;M7atOks0f ktSuc~$G%N7jǽTx'JC<42ίY:!?&N)~̙̇[ 4ƃ+{^^9]\40[5&CM2r:')eJS[i&{&E(Ï!yb"_Rl.[S^"m}kKDfkr^VJk$\JdǸ!w&6 aKK4Qͥi][&rX)bdɝ uuZbVEd `2'Ak&Iȸȭqq\WohES;8N,z;E*JcN}[#$(u>*9"nvϖGɋŸK, |oa8~!F5*>yI.G;- ]o[$4%3H~abwp4CKCOCzlhVJe q jZyKK1=\_v;h)Ppm mvV5*Xņ#'Ralb¢rQHl^H`<VxG;E ~JH=gӴ!L-f0Z^zB`:@xScq ! pcZ1 lFrDh20 =X32?c#=x$;lrlRxF=ӣrDST9,VAG/ dpf}QjJKG94r鄃$+?3pMYQSȪOzSa-|dv7 :#:{l'V\vaO|)ʮRQ%G 5p v! 'm`Vp?&ZlUff_Aay_ev=拉/ J=`B[X5Neۮ2J{o7^*U-lY=zwñNN+(mqR?j[լx͛ѓ>gFD/#0nPw-b%n~ OG=?~=e"}@HۓVčtߎJMSDa! RcBkqk-`X3m,tnH@$H$B$i5}gteT{oWyjҏ59G*ۈ\ۖ[ ? gĄn3mRZ51akP(&j E<ޝyO*qլ5l#HZs,[O$l>3zH gȇÇ!2_ia-yqȐɨkh\a| f4:SBSåvgӖ[r$v~lqBw^i.JpzV+w6w#%.o'%+jؠI [yrb뉚L~%uS>u ҵKwFh|WB {\cG8MYoNsgeP!GdƉd)+H3 1Bŋ N|d/^ZĎ Q2!#cD=h*jpEFSӰlѮbR45Ђ|Btx0̆ty B}H/+7`{[,0vE0sUU-D`b e6MH/LS^6`lWݩØ[i "$=|Hk > :`}ZlnyȑzYMKdۍ&"j%(1dR(*eba2iG2!8w*JUkOܾ#ٮvwH2nZʡ5 =e-jм2ϗZ>RB=zE P)v(=9!B|>΅zB_])1'=Ҩ}O.Qλ/F>.'L}߄&{]f? qEa]܀%"`mLXG(5@8k=\ 9@<{@,~9 f*Wu":QpBAljQ t0 3 6H݈"&,F5/6br"% HECRe\|x&,yMf 8ˀlT.;Os1b^k ANJ D<1sx\{b܏ !I Au , d& z!-eZb/xaBM q!TGDC)6H@[ 5N& [rTP6Pap" 8bæ_  ! StB54lqCBb&s1H@r:! f@a.@J@ {udEb tAd@6eC[XcD$`a.jl]E,D\8'!]<`;6hdPͼJ`! Z#" T9ا)60SsrE6 zWqsM wlE"&.Mb'Kz9*DThWt&L2eBa&y+BvqA52T.uB`*3|W nLf~AVLw KR7ԁ32:܎ jo l V-N8| xC̏3fU5 i-;@@)ϯ|\g|r-zF_fQv\k?n|C;4HgK<aQk#OE9K J PrG5D)&P (őtF 01 3k1C) F9 /W5seF)C-zn=ؽ|P0Rtz8p\*d H?+F#1ɉRpYia Rggy@#CIiSye7r&i,}cG.|bXNgAG=Z7]m7:CG}" Rzc_ꆁ 'ϰLh5K3q=ytk\_"&PH`*0 q7!sDh(̶ H IX( j²XNG h+\0xH|ULVdak>E6y&[A1'W;*/ ȿ 7`/A~tJRm{(},83y\;[i?՘;ҕDnILHS/X\-իV. q&_bMG nޠg|& oTsJtR!Y1!vN=4'Rsuq>Sq'wU_9B RnE]VQY?"*_9)*Fm}'=R`.e!B ܋¡ϐř%(%Q:t}5vPI?ʰ|^Z#M= j9o+D @|}QMVS%YAL&#j­1YX#dпCodyO濕6' qZƧySw ya7]*+џ&/++j|o?۾U\!&,kz"H`dB27<;VNekH=1 ]@x\ p/Ru\eSNv&]\׎fbͷ}  "fy"(XK% 51=-Jo⼃hn=i/m5?韜?,lv矈-X۪PA׵0X\K˕u i~ ȲQ;+L-Ư\u1] \r ^H-X01L(ŋ;׬Љ/kUJnym=ۿ?jd)U< AԱ3k$s=k:`k]SҢ]-GZƸY;~/Es[%C ƕN5n~`=i9"J⌜b/, sn mIP(T0{tҽNCwaSw,kơ gul߯4[{UDN * RQ,meC4k(LK<1sDmIoc`:VlcR!G)Ŗ\lKBނFe|}Zo =BwI9ח]i>_C8ԑ$@a9* $)^T F#1!)rZ&? 0b3M9~}ewwr~1] |`X`*w܇sb:,PtQD-n,܉Dp$}Ohpɡˬp= F$":5gVڞP )TZ}\_l0Hǚ#HgڊJdD&`+h:7Ky-?@uW9eo^s-L%8FĢMސme,L H[a0@v GY9^.@}쟗`q?E׌eްFhe Kl1pMϟ/oA)ʺ5uA69~7t:2Z<懇G%W0A+fǽŵ2x>]_=+."GIؾ/;+ .ǟ ;DNQM,'g||!Oz?ѓɯy <3L♬GYp|@ Z\}BeܡçhӄC>Y0fd;Ֆ )C\XcT7BB$E@h^} saWqayNkR(i!PxFMÛuNUʂg~4Pņ(ɾHGZ^~WֈU!Q- $+-5pS!DMr}OSGét_LOP,=P8-HV҄P'NPHőVU FYG1qt!2Oo0$6fܔ,#]$F輽Bnu=rpai|eu$kTnR>]S/6~Kqa35'zA+lLP)X5 vH<&F ETj<)퓫x>YB=frʼO}S.h /~v >U,1D;wo[: 5^N/:hH~nZ֫Y"$y1"rҊtc ؞RŘORg6 binnF| vd6惩_ R9B^湹j> cKߜm1*y(ZNu.+V hʯ^Ȥh1hV ,֍Hf5j"q#VZ}*JKb.D}BS5Qb݀fhܲgk&-ncb*ĩ#f{$~,`;Y@\saZ:j=,p`6pSs"k6šewd/jo$XhJջo8:ҔQ">AyOɟPpEbxI!Y=1Pj.O`4ndKְmgl6+ 4@9_ߡm"LҜNHే@2 >\Jwugf,xyMmW;[l{uQ=NU9HP(L(rXN'T)1j˕8-n(Q~ئ.c4l Z6wga5+.(a3({c.? uwUM>8np{].xAo"O=9Ul<4sB ]gm}1oniziO@qV/SRI"F%c/TaMb]iZ#\ hւ1Dr gT|m f>}2H/@|"Ö!q``x#̖Pvi~lR#?_؋ߝ1aaR,R%HT#1ORKELMQU. zzI)~S^> C":`E9GJmeJp5as yNb鿀}_wz}#{oqxMbrFRY Bb. dإV$1Sk#8gEz m!rt|e1+7EQ GiE(Jty۰ɟ8;tͤ%z?)1F5i&9yNN1-8^ z}NkL)eRD*Th+;AYADDH |O.C J9aZPpu86n <m$x=dqa.뫂!<L$mFq&W}}}}}|M}}}5|?)zUeY# -Gܩ]٭KKFaE@wEs_i}!p !Ћ4Bғ\wEo& tzfe5 0E YRT u>h'BܽHm؝Qh+uc!ҵ !ѳ4t_l)=Ș}(l7j04cZB}衂vBgqȀ`Fv8ZDKpiɪZ!-B l4ўCOڷhƣq>mH/c7/A)ۉ!>666oH@ȏ) ?(R6]i9+Kو:'T`U;2mwJ\~F̷UM5~,S=D=圑Qk+`C@VnprH8}npP=[mHqtSHj sr Ir06\):s2xe[zhrֺ(/z "NY|s@ڌ@@0U1CbvlgaF֊(`?sThT WOR7Kgxp ckER8V I7acMpT/sbXZy&8=B%$"Gq o̖uE;޹f-I/6^'ϗҞo3xR)x5y{Z&p _Y"xLjF^ {>F 5]4 1J5*zh-r aw14GMԥ-ؓb8xrM}1L[&B7LJuGCd7<|ziv"2m ?;5gR\-3(.NW={ oU50n^gG6$ poT[h*y Cpq4".4TǏa=KV:KQ Ioؕ䖨9=si$g/kw"(g !k]^iuBb/p"scQ-[<c S]vZ<{m7Дِ_=U1pT[E⢓nj_E^j뙂McUSK{%kᖯbwa h4fGKȏ@xnN;I㞃y>}oBu5Of/$\ MĮ#⺸P?XcccccccccXEghEɏkRw}U}[Wlš֋bOw]f$E:C)&ϋTCe>J!EbT+(C]\g4UT<煮 fog 0k>%v ̌"z9!ٮ'qТ WM[Uq fkmV*SfʟRDVF^_w|i __sP>K '(7_ݬ]9MQGj H/}ss 绀QϸC9n 5Dn?g|6T 9!kT㏟iR8L8ińԩ-&7@j'CXp2+@AeM,> Rg$lN$<(L %9p{t(> Pꖰ+(6!ǰ[ ϫiy>gj־@ O0ջ]|m: ¤Ǎov{\~Q<@WՌ,*Lȇ$K-Sp' H>ie3rsSniiZKŦ^ n1-Yn tĦ'8/|I0d9867n%>̜딿K3Rq7Yn韝ONE0cݓ4mCLtзLTRhiS4G&:94l>=1&BA4/N403_ѧ*TŷO*}/b0`Leci*S XL)K)T&"!1 Lbܦ44)nQa3%DFa g%P Ktզe^&}^Ofc/+*&0f-3$&5UIK阘LĂb"A4a4iL^Ħ5ĦZ90q2~5MC&RZji-,r_Ħzy0bSUTitѦVu1h(UFI}V$@3rLcM[)ȦR&1aN&ZK&ZE0+ LJ`9LTRjW$&fE0&S Ǡ٫AD\h@HG@HH0 Ԅ98n6ٳ` 3Cӷ\.MzR->vjbzyemTL\P8S Z~#BDlJPtKzvvU h#) c/ys_{7@2ȢTB~n]YF^QWu_ҁr5NŠe6p4+nQ7+>dAT"`Yg E:`_X7TpZDg!?YpGq4e8h͂ч PPXEN妞@(#d Cb eCaRR'U*%*|:uFAI6) oِS8ƣWu{rkG[Ly$JAC}чLMVٌJl0Ö()a/ #KSRy&+r&$ lA 04/o5?Y+)j{TDybKF#iPz_!LAX*]d}bJF3}*E4l0'Jgl.׉5B Dtr"E DrD[h -!(h3׃:򯻧2ے`H\c V<^&H<+VP b` sC, R(@l?ۏ^1ju)699 "u1.)iG׾:Ned4 \' <^B<3=9q*/ bV}k Jl#:ZhXyA&w025u/"uevQj 9## `u s  y+aS>| X.]ǷZ̽yͥ 8yDL)*֏XV-" yR/1& b1b+McGME^NNTe UTѶctLTz ċNS_itwOޱ-0۶\;vOR)egm N' 4Ҕ<-+cfAC]}?9TFfZPFg2ҿN޺b Ԩ=[Ps^r<߄|Bp&DF`Fqуx'ULu#9SNiop~={'ڼ&Xu^(~T#BB9n&A"Աj IW2\k}쉘clNʊ&ŧ&.mc8PYz]u1J.M^d1ux*{?g5"׽|S[ҕ)F=T3?nspxO,bes0o57c{,_H\д=ߪ/9rM̾[yA_׶j=K!of$c\+Խ?:x眂 6LL9@z9rq:Hrpw&AS}Ș,_)"{" kqF=n}+yC7 -cЕ}VǢe\)·kƾ&0:=7>$^ϧyTW^mَRǟF)4}Ōe N}HNcB@o]^>^Ӈ`ITNpT8y)2p,ob&ڮ^/$7O]䉹,JH5$k6tp^0U\0[6K?O׽>s{ q^8 8=g6.yimHX?q/U5LD͒DW/ڋ4ygxv*霼F-Oǚ)XmQ4]}`7zf ̋RZb?'̲[Y m , (u9{a ~:E)wJoI%x'ʚvm#16  .|2ƥvI< Yk9jNn"PU=_XPBEhT7uƕVmgr:x,z}h5:)xj谿v:\eSP\z9#o RAmT8n0W+.c;PH0;.愁{ȧEڷȷMCB'U+QշXsv-*QU%u=NFtE7Bvٹ 3Ͻ,ۥ筫82q%DS2h l~OѻͰ4߲'; #5?!3))FLy"rHZ^TGz:uO?Mǫ%E Epx8w#Ğ=(S^XS bΧjc M4ϕb/x߾;3 lNKSܴM» bK2HV~ 4@x95qrRUBDOuz! vNWP;}l'cM1F~pv.&' ]aA m#2_Ƃ{n4uF]zﻶBR!5I!c4V?bB&zb`cγA+%}c<|{QEHEɭ31%A/)k}/-wiɢB`gl;C0m=TDķDEݏk.؋P;:qn gMF쁆ך= ;XCN7hlM\w̕B\:zh8{k뇸>9J[9GXQ[D3GSΕ2jj"anP: .lNt17TUʆr%GpPnx"Wڡ7Ѧ(\y+{Ž s;lWT+]cAzD=SlAǻaB-%`ݞ%euFN=9W)|=<_{fS0=Ԟ]҇|gq]/BӐ)&<{~hW-*Ref |y.s<--0|j7Ef#*\6G"t1Kt K癓+:JD|g̖5}Kw;i#ENlkZ08Gq`n2~6"r8UmEW,=|ؿom:eb콳U>|̙~_:qB:fqO 'T";ձi~sM@E5d,X3=WY~e7ǞԀ׵?$d0D-Iq}&\/2{OȨ-zQǛ o=aVJ5S:#b59ͪ_s =<}32-zxFM(o&*]}|4QYʾt[ibb[P3kʃϛ9~^ZDKZI8jU= BtV6𞜙^.N:ߒ=$Ǚ}_hr F뤣ٵƻu(R`.e.LYYպ7ٌ}/7SEm!nI%a`lhH) I{9(}`'P # oj(5pH=S PMԑ6~mYymoI֞ 6PI L8BZe.$ IZ^E 2mboWjuF˛/@J&?+o22 pκ*';CZ3 wYhsryGk*ȸ07-C7Vs6 l^aow> 7E~c ']EK^RlUmD,/0ՉiȨGͺ^*'K"U^$!OC $eᘢfnEUei%fW`X#OEϪ)RV9X%;Țiz}PQuцP"㔰B+r┾[sQ59\+\Aӕ0KGSWk!3 "T7ZtPVEWs1]xg433"2*5A|OקrKFKCT 8gi$!35NW aE>hr"=6,rd֗q ēVVf¬>b:{Z6/Vy+aUzƯ'a( ֢WqLE2.ƣy'f$Dw)0> 9HL)b(@hNN:ܛPLsȉO,IԻ cg%`[l ekLTUS>T4rw7=z(cj1J)yjv()!rSU, SUΉ?3/E\ lQ12, QMBf ˠv)(e݁D8hf %(R"v'LK+װs`=HBDIK6Wg9學|otǣizd kx3.Bb՚wDa$J5,,y^yϭa7FJ3cSqb.Kk0{2AO )  ɗ?Ƅفz8a6T&Fkhz3G:鴯fbVK{^3إsD<Q;i⫳Ƹk>F_QmxS<m%2*/cJNƕ448w1N90UBROS7Zb*y—: 1"?E Fa?Pհh"1duQ<>J|\%b3#1#`K/V}~%!򩉂bP˛Gގ]"3&_S W\ƅK^"_fP"kb|,3stw@}p`- ߳O̊?<$R'VܤTS;srgsP%|,nɓkɜ l3>譪Iʺ5*;iq|`IXO`y ac*$Tƞr7g"tQDԇ{6AH>9S<1ؤuft:?oؓ! 9)1RTzR(E"8e*T&:qd/O7z[\<=WwʥHMEڗĭFu^Pt(3:9/ixs"? U?w^әU97KLTK-O?&0ƓA}+}S.H3}s(/ǝ6 ]N~> ۋyo!vTjWlxwyǜ??ZJJ_6n@t%M+F:oKs}"%YOTo`4Ϟ.uTwgt;Xsk>Fظ"Xmʒl.VtP^5"!2aL)YF~Oo[oZeihײ.cOk'{+ 1XƘԄ2g/tTP(x*!łKEtBí1B%ӡMu% $b"rt&zkL{6[Xb2uͯW1sbmȁUQbzE 0qpN XHx|&do*2nCpg6 " [kD|0 6߽]mJ>TYp E]r>vŠ>t!yي`93a6#1s"mj&s_Po-IbʽJGUw\ky^y-ta'Lg/^ics ~PX(Ev4Jla!쳑-??{ plͯR)FʲJ%KaD&6.$L6id-B(8xt)D/gQBDsqP(&4JV7Ia0{0aq&W~P:G ʚ?{XB/GVThD]}/W[-sWimFZ&: C!%9u5xWbdKnqAyt繱Aqョ=gxW1h;_~ᄺ{[Ώ9b!C0B?M/I1 O+ w{bPxP0p.za0r=ZDp%_!1Y ?CF #RӔͬjѻ`]3 T9@'#هRWܥ@YE,^J&V}hwSP9#.0*f/҄,ޕ޴:g9\Z?׷Q_7CwbFcHކ FEhOK G]*Y%-dɓ&8͛6 QIuaaa`9kvE89f91O (i u"j(u |xB1ZWzbEEGWH<4 ,dU`6p-,ge,z8z:b\ύƀ$ư i [N5~:,$Őpk .n%Fe V,M[kܘ3mC?x0BlZ)B>;Z}vn0i\W +`\y*`a G7E-ke$N&WxPWKS[D۱ ׾S7# 1>t'64nRk/MΥ#6 \_`̕ %Ų0,82h4+kk]W4.ܪyf>)#]e9?7 ,[GՂM_ȸ1k{|.">֨.rۮ@ aX-o4=8uPAa]EvԘ0% 'J:_M] Ӻf@wId,Z1zĤ=0Qm3"сv_mK͢r>WsґrdnF YZVQiLZvQ܉L7#Ujf vQ٭aۧW(no }G(UW?W (C+G0֬->NC&/6mDN)*).Rb1V R**ԕHwT?ރDI)> lM/ck/mFlP v}<=ꮻ#@V#C ;[:óݐaHNCT+Rҽjp3/0 eRQAp63qSTOר Sκ-_e4Ps|1鷂/ZX=8_Qr(?)͐B L\]FLL=ieC6kIt y\17;p;'F,Ov:e؄dFyi*0Pu쭙?>7EϾjEF$N)'@N IPNY)T+#Ma=sFҽ6 $m_AnRe?WVm*Z)P`( ߀uxtyAwz9oɮ)k0Kf!(UNizꭏSIJv#[ʞZx.)#N?udH;f-wG4rQ9>V5˚tHj*?&<d߭޴)!䐴b+&U ^+R5мq Flc L:Z3ZU佁=DX_`XLs26H/E_]wNi0/w͹[yG;b_5 yZk߼o|8rx^P (@Rjh.5R>DTb]%c3|B+확Wq2[LD_Yr,D'2S^> +o@W@3CHPުpaL~(^@7lDh?ts+0X1_Eo-ҭ-_$DVq'"=u^ +\VϐY<)=7+JRH 2Պ9^brQ`b,ė4.B)n%^Uxx^[){juzV P>p1qs(3/c4 IQJي/A?+*䀁UFSmg49Y͊\{1O"OW^nEz}LdaKA޷b4O%:]øF`'ȗtTQH@=]b5:$cD޾rT XX3gy qfI|yaxYf=6X۵xTj] O׼ YDz<7ŀ=hX,YV~Z =YZ4+KXK! Y_NJ4B~/oT*Y<F1|"r5<%5ᚦXhѐY"astfbMyxrv7oX DDU[ =uB&wh?:Xi; !V0+p^olj9ʷT&2$ʁ5kHeM#Z]0W_?9MyҦU%fOx-؅i͛T}x@ΎOVXʜl5C.bkcrS zw>60θt4&y tRwPˇvPT;%9#exȭ+  n:á=!;wNDu A͝ZF4Wڕ`fjYRض1űmH[[MgE^sEֹ>>h5:0l7bA*4Ҁ&p`,u@#Ģ ק$fZvo2$$HmiSu6z7v33j833SV4,vBN=vGqN,8 u񦣮 C8͕'q+_hF`7ǮrG]WqP*Nmct>͐CH>adn&XNI~|Tץ4Ugżb(JZ_IVN( a?E!^=.` f2r*ȫd>Dfjܜ{Z#r~[tCGrPSVbR؝x<I#ç|g`9Ӽ6ĂSu'XmS&AcݙI)ŢkY(2lˋVC *zX%ҵ^՝&i6xW萲=tUDڲhҬrHPdHB\Ϧpy'_'9U?ŀhaFz#f1-BK|l60GГA22d2VJ.j5jիZSWaur>F4\4GvJ#3ﵪ`D)KF: T n12pNc|Z-e))L`7p ^ >Fõc1WYO7diaV(*%eb`:PI`VAdAX(X0fTN`?"@yFDhb'f.AP. J!a*2a>IV7#y`wXߗ-gS"qg]/Dd@F'[j!fb{`ViېxhyTvI5yS'.Wc]N.-g/ͼ hv`ey_ 5Vzg>k\?ZUS|fs*x~UUL*</lYGGкyFuQ7#+g[I Ҿomh|99pOv+B-e]rt 2e$s*d*jԨqP+:)=k`V.TD>0!To=%IGC`8*:w'kΧ ;=D2?ޓܨ6m.}]y [#`,$T#e.{a󌎑ȳn َA9}{.eÿ0Bki }P&Uc-Se"(X3',{0<3.#J-~E76KVxiJ_c/'1kb H?)aO3>2,/FcuN^HCw+>~]G2o%[H1aGK0Y"xZlgm6{@Awgy8_ hDx#ҁp45Q*J2Kc\x' WڠhA4yPA:mXg]nlgJt/2)&#iJlO>iYUV !8V W *\D&t:DLHa97{J75fNH1OXAj=~@7Kkus W h_OеTCz}e8tYwu1#Ν.zv:n Coׂ1]NU}㭁٩D$CpbRRι :x>'@ a7a;@etBẗ́4k?H蝎1tMPakh^CM:TZAa6KDY <==) t^f1xGRSՉLTĹU* X:q@,\@\Dgy.t\`p(gLzӀE]$~q< j| 0I>@rmTsU0sL+5Lm4) {s1 o 2} %{(M0750 ,ݵHdUUʰqxҵ>S.}@z\+Fut[wv~o \Ghx9Х7&㹮ȸI "yY4VVI,ʉ,l%tE’HSJ)sH48s&e'FoNWK">-\dk3P&8ʸj=tah^ m :$rc˥6eĐcba i?x;4]QhrF+1b?A1 }rèT$9]e=cB^)wjC֭DSw|Kr:}Gi7.Ԧ=17*{o>GB;I11^ג+b\PޅLBBS>;ʛCh;EdBQb >,{a[T&Bګ9_Êj闯ZnT:r04q+eXVcEˇ+E\/3cQ"_0iѺe3)pE°X&NxcSg8IG> [uOTf4Uv)-hOm<`O|.ؕwwriN܂$"FX.qwˊDI|mwòk:ے*3N s!٤Ln7k Rf2] wS)V"Î;(u'(ɞsYHh n 1 W'}'[?fQJa<00kJJ] 2kǓ} rzŔ&@eT}*:^l qk$zDK.Vuں7yLq;$$ Lrx1i Kb]Zbjeg>b9)1F::Yw]mE[~e@Y >v+l7]74uElm ?H ~r=K*@䅢4 s=\c]o'Gm'sӀ8 =*wn#; 'Lm,hX(ƭȯմARG \ ܮ3Pu#x{Cq !DH$(N=@ o @0Pa>~r@4.Q6Hrpt=~`Laŷ&X́WsQA] a۫c]'KM"|Se(p0b*ţ䐮[lrs|I/+I!?y$JB~;8r `XҾ:0oq^] }`LiV X䱾-f1KPǻՐoN񉂸5Yw>^ SdWnSϴ. YdsJVldjBA{w_*wbYhщT5gx|_nq!fq91#ld@Z9كOv\}<$%_Tv޶_s5EG&-ѐ1xR (YNUN]KLqc> 0o=렔""! &r z;뚜%m6qD?1>Y^д-++++B̳-r-x;L:A&nl'|DE@$stE]Ip|>u)(۲ÇN;vۿ?/Dʶd~SD7.2`_ҲK|9vnסÿ ?"+eJ2/a )iC}MӮ 7[jN[B|#zKQp>>\Zu?9ܸ1C /lH=A_n,M\x_En^ \Z` JI~J[qA~jDq's3|ػ95Q Q :XsjΣP][t,j8_)~ym^k6dև^}ϻ5P8~I>`YCsiM=Jy\O =4jⲦ7wc5%x#; 4nmxCދ8g&`s~T :̄ԧ.[]d HFk{A0};=ޑYB%S jebq@T'O6W48d$R? MPR`,ʿᶛ5'_.п8a`-{vmhGםI.xo,mѕwQ0M:/;Ga?7LQFжљȤV]pjN\!O=8X ZWپa!F ?o*82i=w~mS$-K3{àD`6Tc\BCUm-+(@D+&U`N6r ƥ㜠."zWF'*9VI+&1|b2/Xe7`>bg;}܏,&OIJGvf0]pVnAv*jJ:0JLVO 9D E&V)$pŝmi r\sbt7C6\c|ԘS=F1UFU^o娭,7EdLVJ8:U}>W6;'(Rm=_ ?MO+'2K*և}<.Jn6 `Sq/G68twZZ i{5QRW rTеv\m/g:9t@_NQ$dCx077H;!(\l ־ЬXy묪 ܿ@ڿ:o3F=>A\N$+y;Cb[\T; HcO j`<J(IT}4v*XM96ҡ( 9ǁF%mkN 086v^Ç⽿{z̞P'>cW=q)WWR+&d@axR)"T|T,)VX\T1)HpaK(762fPrBdݎ~XZ֨ uAh[""Vw 6?:l'Ż>3kLϣZJ9Q@^D5hy\/ H%ӤbfwByƁ$~ʣB>P9 d Ccޖ8~_D5M髛Z"}nVVHCo@NlmDKpB(\ĢY 8frU^aϸJWPk$74S EE0fw.A:qk0#.^ᅁl+W$GG \ C5G~uZ䵣-!VIFUU+1x4]Z84*&QH<`buq .|8\}NQq|]z}j`5s^6d+51K)찋q~`79 ξG{0rabX`PR-6,Њ^ (:E6K$F#Ӎ'/AH|LObq&H~Hm3vW3êSzM2: h o8TipQW HÝE0xXӞ\g >VBiS?Z3bpffB@GbwpyJFlu2U1'e.u2yf+x;fgZw@e=hNa+lmnۮUxf9z1bM Eq=m)8:3Y|]vٝ%oeu=]}F'߷I"Vp7(8#M|;J cMTT#(%JTV)5#ȥ$*Tu`Q%&GVF$cǡsFY#;(b*^`- Qnm (agɲ*IA3u;{ u-T[,9EdrBߏԺrbBR@|Ce= wuHs36ΪpҤaWR7FeE>-/Dd$M7sP/v͖(Q4`g/CrݨeeCCנ _pZ}M\gIIx:.9;(Hd2) M1LS1M=ԅCQ*TT!7$$)q/A0O1}AzQ,/}|My65}wU|[b,>`5R8MJ # 3T "-l]>4gq-JQృ' | MOJX[0X"J(r^d_/h wX72+W?q4OhqajH}s.9xƎibk CP5^fm(C1ܨs4CQ꩒>A01INJ3cYLѼ*Xzx&b3|d(ݵP[P 6JmW}mh:OהpR/0"qJħ 0ab5mxjXt1bSn,+-9d߼FY8+hCaM3{o,5 #t7=%з4 'I>o|4Zxf'X1!))2`!UiHڙR@Lͳ_E{i#ڳ(F!U&*{U,_韤o,_pp#bL Ŕw(&o}uX˚#A>}QH<1V h2YS7m}4krVsEؓxV^|-]O!T"~ֵTL0/`.T~)otN,Wܴn/ "څ^Wz̿/F{\jDtKÈT bř^3΃ZЫ4ЦB+ -vNz>F/2;(P;UžPӲyA$#ƈ5R<SnR OI8\z,l\/kYhloؼʎ>OTU'0~aQBa<(fH Repb]ƕx3oqqT`yg?TNzwg199tfcǣoVd= ;B/sB* 5Z==[m Z M*2p(5c#Y 8dܓP\2 (J N]p1pj4ǟ5) D(p]`"MzC0!<(PI2цeʕ^D4v/\d5|c1%V,Tp6 W3Ս"# h2fBaF]kd2H?kc^=?Υ"%=nW%Wµbv!F!~͟^(ދZ6)~诗尜ў;ϤM[bjHJеOBsFj2>k?g3`4m5IpbJer'AW/i4˷#HsC/Hi~>ہ:[>aUjyha}|cR&W&BlHcp Lu47!tli|NjykA3"͖?0'V^$L85o邖,* ~OUd2d 9eGlO3?,$Z{^ z$ `+2CJi6b- 4 a`DY_D#). 輢EFXS%g,i~9񊐇\X+b۵r˗rr#㷦5@lxǵѶKбw j(:,χͲ'`KdN_ i5/iwrM/Y` d^>ĭo! =>E`HGS|,ᓳnZ֞1vSY͖R$"Cͬ<8(3Ub/Gbh}dR=l|㒣0:7ne_> 7ʋbm |/L`'t5֦44Zf{-Yxs\> Wwl.g1P$$_֬ѻ?9jmN?=zGL2ox߾jLe&DqRMЕ œ*j[V j@-Cj#juc>P+)VҬVysEߗW#@ΏzYPs$Y eyD)ba+ V4D3Fss#CW~bt[,q~{a}4:(mbwgG2sa/2|*=+ n/! thv R4G: K`dx!X3@ێ}_y-w/~qK?յ-BN֮,[l*Ouq{&b*m™HnA?&m7DX< sCjU6ad rpO0|GyX3;3}M%lT%[ ͣ 6z|01ϩ u3Y>֨|2q:W  J1f8fjlɁZ4)(ؖ+ Xh.b^SՕ!.TEe<% faVg̙22by!CfŔ7Q#;F:)ֱڰzY;JRR{ _z?e+ ikmRĘaǯ(5BGr';x#ʰ|m%D*? x " amhreA8dT`Ly(Wnjb+"d>?n  8+&G(1 Z]e??Ȼ|\v{(ϯQvNr2 x͚C???(J2)b*jjjq)TGIԢYD2tSθs䔝IWаh*\E"|W}Jn"]̾xV*ڵGѺ!+S'g΃~r/GPok)U-HSvLwE&jf(T8\f vF3heLBhݝlJ.~P@o9U4/뱾l-0thAg8f:l\;U|;Sle籥,zغ7_AԵ=Yp26wE|L{Ԣ(%N>:ƱbrؠmV,1\?^/ }Dߧ~: L'NH,s%EB]X-W2X (膵Sm{Bz\*sVeٌlb߽Unр WcuOr DPREHwem19̥{3ahh.1CB0;!h$:0)e"j5fsD^?kR[ܲԓ3fJŦ#xeuVtF/_RF$Azao0&RǑҪee\uO 2n8THWa^4n:W5~}˨(MB e}2V{vvpy2u}E\aB:M@W`= GRPH)1)`. EB˗1>r|ʺp L!29ֺ/+ԇovaX!\ l֕ Y+lzIj2#S찙s;D3T&/JFvF}p|R7m7?̽(RU44i#SL<&iTFk2AV F!`m#zi a.c}THΛɜ ;[LIpz|,Xe aXU ('}4XNk$,%&G$._:;;z,"d˷G" Ys?fܳp@3",H~gAT#hASzΦp(|;Mdt9FZfܻ?UqDc{"VcUt(` Q,cXظ`-f3'  3*yH]zXTsGx Q(nf7'K-bTX5RUR,UF3L '[,$Ntβ (-m'5*vf\϶0.VBŸl}ZkvE`WƜVA]1y-Kan@YjHMŠ}ty=6 Hpp96-`O( btJX४>粞"RVeUURR -X>*@^r4^8KR\oP,OP pp];xFgX {$p5`.ω05h.}kDŽLQs/u_ ukQu, Ig)TV3$/v)sB %T'1g|Oc/Y(.g 5r=5Zr ++WRt<Dkp=x+_xвm8YM$A1[tL;)er|GMfӎ>!Gȝn$jd?jvF>fN0LxADئRB{fPuoH^6 Ct22p;Ykm]fVP±BC0fIIO3p\VM@RaRѠȭh.\V$GlvͦAlES<O*1-( UŨlkq5oS;0+*jqj]jU^pڰn \Y ɱPOZ$WߏM7A1u#qy1>TGKIx,vPuKzK]-r3RU5YxaFF{zq\kٴ|WʡR{p[f8]IԽcw@/_m a tC(* pm_SҧAs.$UYگk a9BZVRqZ+KUkŋ@Z^H~ ?$ܓF(J}#SDQ#c,lvƿ_yPP {r0V%ƗW9~d꣇[B~ "7ˠrubفkTSYATohj)gP? T{0d]?|\g G] koPcl8Tkŵ(0_M*P>lS-~`bx7ؐ4 d/\z}}OA5@-w"^ʰ'uZSsGn=]CP:T#6^KhϘmBfs?b֧I̚)jjMP5nnI`j.6EemxOg l4![Xd0NxQ֥ScZY l,uuw^̰cbYYY hCYANSyK Ux+;N$KssB`݄wх爘o v1 4oouqj{tpaGb &\^Ə_&(HޕR\Fki U $7%:=Qj3Y]uBP6i "X#5 E{^2gI=wc#rQjk2~3L9%zJ؉ z S-c^;x)n -cDN[] gh]'=tP"u4Y"v Q^_vr1yƼ@zӴL0]s݋x䞴`St};dV,R?Ao>kj}?9xP검99Á^FfvuхW׻PNL2e#Ф0t08ZqZc[g,8J場Ʊ/bwcn羽^fOhRB$TF ݙӴYx|$wL0[m/ɝ.C~{9q6阅=A]X+BwG1{6myŋrVTlq˟Q^7ygT6h2c5h,D͡'6V>-Q" E'%@b+Va/A d17^5cY7Qnv[y|aMQRJQB٠F2JV=T%NJKCMAGk|sq|V[HT5,ٌY8 ZnI|3[𻠁LrKA\鶜߽6ܾvt1V`YŬ(ژV6]Hpb*HSJ$y( j//hDat#Z+vt=Q)E(e-Q'hHY֐@i}T.A:jQ(X3H,Ljv$7FIU^W/56Q{b{ֲIo`고Os+Y:#Et='P͙MB#z3mƫ}w {[iŌ<)D>u v`>zC'a%vcy _<}cj"f5K6i H$,>o`Xڂ3ؤ爥D(X00`OD'g ]&s%^qE",~.1e_X,_1g3v_;e*q:tyNjJt`eZ iF}K}&m-д ob/0RTV\/.],rr˗ wG#ʍ5sM<>HJc9ѷ'7N.2&6s óƳl6ad>\j-ɯ'A]"t>IeZ|A-9.CNrqjGi\ ]WxjjbxN9,ZnbQ*lI(j$c\bȐǵqNN)-dlCJOL Od&h/\-s>~ ܢlA0pصpx{hᄣ7xѪQi dxصpcJMМ]A x'X*.Wn8wTw7B=F<3qJ1Lb,(Сʞ%K2ؖfm>AV q`IV{1~XS=n23^9H ЯW8TR8]4c0Pߝ vb*V|T?,<(?ӼJBF؎_ BKLG~Q#A'}zʪR%q 00"Ìqݤ{:vE:zr8n߿P}C$ƢTHshH1)HDtPV 0E*k8JP((}ml#Pbb7T^c!_U{g@e.5zBؙ#}wOUǁc_&d:<5}7иPnK܎PZPbVHPd}P6%lx..vV~I-W?'oڻuBSu_3ѯUU ~"B Puūw \nK5(8_,-uO|*Gm Hni,1[14Dm\7LvVr=1>a*ObT^F*;Y&x<`1b:1`(H$g6.8z[?{ex}%<~8 w_[hBHL$"pq.Jwߣ_an)#2L׋Σl?jRM[TcVqvl8N\k]m"6Qi_`gܗҶVIC/9v@F}d?4tca_5HlY=LŻD!x(`Hboiq )]Jh͖5=}zk"#X[S44I.) !Ƹfθ+S^NKZO&mwC^#-p.ic~-.ZB܏O9aȸ4Z/OXhH*:E ω캴Ix0䏣|7m,,i $=ƗrԆvۉD>Om;$CN7CQ14M=Ku$|Y2D2`j"*'3%{U1c#/ xZ ѥ+WV=ټ~@d\yy V/(Hrb# ~WN^kqأ՛<,D[2 UTV/+bs *%1`ZdJ0\-Eq`b1Lf0{-͆d'.}£Q5-K>H{&T5n I ` ׿y+? DŽ{q{[?5v wL?Xb= "(~V3>ߝ@v fSE|] UE)q?}ݴqN͍!Y\WA7l;& qvMH$hpn/(q?@VG+<;wyX3öL~di#;I1:BDnT*>,ǫ"iP'2#AN|BP zL P;nz7z.q'5oٰ^<^Wq`2dd+fWQU3dA +Euu`WٖVg+%52+ݭ~:tJ5"hOc ݐ ׋W֐;BrNwHYߊ3l$N@٨ow;Z̜=;#8M,x_UUXkCx!/*'f>"+φlVcM (0խou99bQq] WBsz|SS?jN`ΝZ8rE)E2sYdaB/@YEخ )HEvKXAI3rg, *%d*ØH/}Y_Mi0yކ&?d?==c)#|g'yV\8f,XQɂ ׯ A ȄR8fl\'d{uF4S c(|ZW$չ?՞K{00- _{nrеiߞUIڭ]ĝIvn}X|7 k!raV1̾ !TH hAq榏gYz%vM^t=\ȧns9^\ge8!1 ( %g"7:N8^(~{ڃ_K 244"C&%M +sZE>T LEO7 wA&wJ Р,0OyN;|fN@H[6$$`[Ho ^m0Z( Bo{H : 0D=U>糝!BEJ_N w#A%e4P9O,PhR-`0E`?X{KVWef\edC}a3p~xxI^wn"z/W_f|\)X?5ߜk9_|N-{ tN8Il– ]rdsGj {`x ؖRXZ:5wu憫`m\278SPY>\s]\IIBAHIrKBd*n_7pͰ4쥡Q)ŖЏkcQ'83Ir;؝IIs\o).,ohRD? vb'V,oɔf6/PD. \V&1iC!XxċVbBոu"`Z/d2 x^wD߹/Gt S[<XzQ=z-FtqŎlԖJ#g|dPuu@vBnXY;W㋞1B^{&e.¤n%TTӮO0іB8^وrw%LV #6Kʿ5..8's)Nz_Wȕ̩`2.Z eV3e* :(eeXNSTUtP~~۾z~HQJ[5Wzxyh<ؾ㨬Q"٫bLq7W9h6)BdTe:Z*aSu逄 %5M?~@ż r6e,Ɉ/㷣 8xÒn.!o,\g<u/w_ ۢ{ީ Pf 5JUsd[6Q<*:v3H,?8grcb31pa~2cJ;7&l7]/KNbdͺUBWFYSw0ߟdO;uPvTVB  bW0dOءS"n"a.uY-9O(U=9fpػBn -GÅ'V.COnCX' V{LA\..\pc*v< "TE|$; [s`Xb;ߙTLug@0{0d,TL7b68¬:Pd>Sv,?ו=EUXl$lr xL? &[3}xl.#mylajڛ?ʧL痠xOCo@Z$Z{jvPnZFQâɼd 'x.M'Z7AsGs/0nq &t"sXpVvnWsV ~ּeRq SdU*TdEJQbŋ /yF@ˋFnm;R!#ӕ1Dޑ7%r1DrqUDk{v6bJ5Q3Vp ҭ$4r071f L?cu9ʄ;m|=,  "uZ]4w쟿;E Ͱ/ONxYo_L+;,;Ó)k>VTCit \V+\e7Qu|uj=M cDÈ\'X.e+CuTebYߐp|n:R1Œ51͕ȳjVj8e[?Ly4: wNwuO68)7PīЖh}nHJ͆ɷوA ڡUDzS#9w`H༘]r&\p><9I4̈́YK3ܤj3CB3U:$7bL{vɯ@( )@=U@PJ(@{oom^yewe=x{z9Wv5{;癇Mnw{ؼ ;M^=ޡ\U֗YW-gol17 }. @F^<#׶n*u9ݗ׀D-f{=+齼`-srf74 h>G2W[047uaX#^c%۬2sc.9:)@(twMfZnG.ݹ o{m7@PB@ P@]% U4TP E%pa#<׶9;m&vr{Uў3Wdv˼i{;v.弼nnnNu#׽ޒG` v.]]l(mntd.нݾEy hta; p:7{{]8]wD}Siys̻r\v]]ݭ:=[W{޻ҹ˸ y{xݕwYs[34slۺgg#v9]v]]4uv@;msE( hw5s7nN7mo^^{pfڲ7C-xڥk v&_~Lʓ Pd=u>7&3>͞ {u)|PG0:YOJbm?\qyH'opY-6"#!ګLk*|tlQѧmXʶ3/%;'g0y}m-&^ L6q[ԾW>gCJS[XQ6^U[_$}'ck׿Ю{ȥyy\{N9|]|[Z=Q`3'H˞Q^'+031sqQX۶j;#0_0hj:@JFɅsHe_tHxG@ev bi+BtK3[X 5ryȉeh?]b'5>r8=XvJ?ZúH>bVXqﵹdۘ|v5zaSvy9zj 9!ahz4G]dHR?qDXvT[_LTn .XːDfS#>}~ Sx~Hϩgoǡ@xT6Cyz~}{(I30'òWZ4_wՓ {tÆjIAȿ뷥#Z&ZHB젹TF(=?Tixi8}ΐM [f/ ,wUҍ{< U&[&eDPb i>]I %7οAwR4~փ.Uh?`ktRtg[w1XUWxr(e[(}M-CE2Y{GXwFS ,{)X8x4ձܕs4đM?l^nT]QY9OdZ=B^ >{-:\kKѩ8H"r&m:t~K0'i<]?hFۭNQzjGyyh]48NԸ)m_w?sI1xŵSO4r[0ܺCGrXR=<%}Qs:Ckzip/0kd,H@Bz =;/6.+FgEv&Ô/6^ 4QkUFs4='-<CYv.\P($ٮU`~ee2,C4IgP!:\QGũCHM:OA`:#ӫ=P2.#yvҧfLnR>-c 4i%'#Ð4 ЅqLCf*e Q==$i-IF?T5Sݡ{YqNnDxKb96,3knMF*yKMb3z=heul<0k{bq#O>oG#3 re& p)%PNe۽W sd7?7m5#hG`akOUt.-c>( =ݖ&N]$`ni1_zB9LЗOP36y9 90|Uߠ7NHbXV&X"ϋ5ſ|1la{yLolܩz nY}vI5C #<2s[a/-11Wft<_.V2,4UxsRDAKtDt\eЬVC ϲ.|m8 G;K~>7)d.g7l]5I9+x c5mD4ػTou6Ǻ=ɥp=8UaGoWhWo~;cQh>ŨEP|?QYB$}}ω:#+ޖ}k4|\ s쿯W(/YTҝ@VW #XQ0:/í : ] ۪ ׌1f{Y9L\m\8}b!7Rm:V;MؕD+,2г-v *+k%rʅ4#6kDgG!nVYXl)H%SWhqSs|83H߿j@ >׫K=hJ^ށ^Ͽp[d$k@\s-dBJCw /_J{-@ -P¼ۛbVtv }dqJ0}'E9'ٳHrW^qꞞbc2] 4S0ɿ&l.`)#J~WGޖa.*! HB_Bj۔ٛ9H`@L2붋YfghE^zNb%f^aV{:JO.F\3;@ ?MMbdrl}n*hA(xW#dp:lAp>@Gh6H@88pɳW={ٯ.b:t܉ `=s[#Q}.GݬsG |xԎRۛj1B3G\;>reJE%1KkN==- 1f~\/t9zeyMC1~lj|i ­y)q $t>{?Y;cc'u- vgBkW|5㽟Ogn| /GuhWZS%;`!dz496}2~.k*gG6`FE`<dK|Οӷj 0ƁFVTpB-ӺBH{FQ,eV$c| &~c@1 Z|O<[`ʐUJV^_]?`u V nGOL9n?3 N]Q*%Ƚݧ'YFրP#O׆iTt~$- G15>'F|GSߟd1TN)74;ƘC-9_{}75 iLj2_dsW(u/4Ui3)z6>߷Q1fT:{,K NWoc@#qf{s?zJ^YQ•%<7W PO͎T_M')k";ku[D1B.H5s2m}5^Ьi6[A?q}=ڷxoeZ|]h K:MG6Cs5Cqw0ۼ{ԋ4‚VӵL2 Qd#26-cjz{;Q1yo$WE(6 -ivwEwyZ^rjjE6gpҥ+=v|M@ރ~jrc\6OmH[j6~{N˛7V_1V.d0aV< Z9_zY32}‰J}^̢j{ǻsԒcŸ|wk7r-|> M<Bq"N# 4$Jn.S=mRۡ6.^WdL(XJP'ChY X#pL ꅀ~prQZm6ʳȿ,3LZ}Z/ 1^|\W@N2^iAiٽu?};BsX>ָsTq%åM/Ê6\sȂ9cc8\=Jd"GsfD'og)/,xTImj|=RCuz\r)C*;~gҠBb Bv^oQ?/sƦceSN@[A <214N]ZH@Lk=g}NaW6|Mڋ,/3mLsoqX*/_Wb.wI4[YBiWaKC9w*/"#Ry^ANv.vrMF7HqBWF0jg~?޾DEP a/9\H43N ZV$P# Gڄ;:TBW;Z'!ٳsnxÕׄiջc ۯ8~FMٚydw 2uVňet.PxcahA͗AL(-7?~'ț4>W` o<2o>@#{ƌεIcwM~6Al(s6qLbOgN?W_Ol@%oLo)(q}T[֞V>S(i-d9IIf$ej+Bu '҇o~v_B$wM!pffm32 ~~ yO˺L>(N'h^:J@*I0cY9> @`.~*e6VѠLZ7Q5(OgrV6/ۥyn+΂sNt2_j-Jo.ťy1L/}cZLl3!m H/\a:[/WQq2+ǭɃ h\oy朅L(S1M7(t ݡ^w|#ۺO\r?ЂGqtu&1f?l  Ea};4y xry]jEB32ϥNyb1aMJQ⼨j .",[ vϡ;5ùHǼT똂ܱ,h-O.ǍssK^NMyK~\L~;Hh tg|waK W,wD*})m[5îG_崫#O2hJn3K)YS!PY䪍]p~cNKcXG1RޣL~n8]ȩ"`bƧ/Mjtm>Wv8U1OG5Ye2zԗERsWֹ?.Zx9d5Ws!m-DaotNsF0jp[w؍0m^\Hr񻶏ab]P}궤é GbFF%3W#ſb\đepw G)@Q8xP]_F[H2̏ ia+ڃm#rSwWcV#b,7{[7o@cNXbm9qS7M-moYLטyݢx_EaOSNQ;} T"2kťykfdOevQ+zNﲍ9#b@AN4fRCL?ER)0=T3öu/zQ)t\c`0N`1B0^174 `sFx<[rߗLT0i2s)wXT7U!yH;3t'|C_ ϺCmWG{ut[ueLgk2> Ù7*\ZR| <4WN!nA?Ju? W1ky=]Lvs)*9nw`u<;9pX]ydE\rl p8'w8)0S<3]ô_#>{:_gXd`?H)纪Qyz`r SuGdÑNb<ƹv3a0:K&[~"ػqTy Bb.o'WxjF&KhdX0ɚ6ux/3JOYmjy_rn=> !*_UQ~86DP*\PF*~k{y_WF˖w9Ѹ~-H^7=o&fz9Q mL*t޳o@8vkS7ˆH}=AURfl3rn푅w"eֲ##5ejV~4}l6k5Y磌AG.Zb[I'VvH\v(b?蕮9Z屴Lg,kS>USS`|:MlE7(Upށ%gٌ`=_[/hcHTgBgaXl7<tfN ɚmOSt7kI~.N KW3#>ג(<]F$GR \ sv[nz;ݥ-m43ߢC|8#vuH"7^=K޽T_}P> |Q-/;pHUyjGɭ7 z*xxx{FCo8tdgVhhbsi#ǻSх8?He嫸hXIb8epc@gc&> Ok{D6nKEaACEJIBºܹvzu򐃐wؘ6~P/գW2};nDӈr5CFX}'B kRrk-Ճ'FϓMΛMRU!>4ÓXگ(>bgVV<ݺ\엣`&Z?b([~fJMewJ>\0n,{b^99'zUݮ@X/{# _[iT G {\&|'P[?*QYkjlC37kyv!+'mU)V|G{R:\"!FU!l/s*T\Y$gjL:*6ǯ=# Sq O㯿iF.3:t躁,﫟̥g/(9_[+`BƵnF7^mFܹx/\-xMd/O㝋?(hg>{$-R47}&6!,9<|FG;xj2ܡ%gY;3j)Xpe2ⵠڜ_W{F;j91hrmcH:0j׫VbycUO[>OP`?/ŧfcTںcibT *R3ǣBl" /I`e6x0W} k9En !1 Ϻ3G"tA"n1`6$gU}H0tШ0ۈ*󩢩x[ ؏"m>p=t{h K(i O>;{> #ܸUII3SUs]j{(hL+MjQQ c3/1>8ڗ"_ԳCr2 똂zz/|[Z6E#gށbҳh1P7[o܂ tpë챽Y>CŇ_ȕ8oP5uzՕ2A}c9=;Ew ڰV?K?&?kd\ъcd$)QupieE6gmggM%7p Ⲱ4˵9 S$E7RpR'JoJw$|Ǩuo7~!bM#O憟Oz!N= {ٶƺ&8haY}?i mEc(ہ 훩{ByHmh ;pqOÝXYS%<) Ca_".C@P=қ`@eVkt3P Í`m JO[rp-=98@GD?μK/DٙF='0nbQhK?twL7hlG4{wekϐԻk뤮;zⵄH71ji 3 M=G0 ?sUl{5&e Jna"4IuXI86^M6WSUL6;(ݯirE1g}7,h7Ôp?'OJ\v/''._^ߺ窤V~ ;{s^8 PW١p,6.ȩ_z&[۷̓zlܡ M8F&{;\級^Um$4<<˩}Z0W+/C憅g47ܐ}J~nol6tϫj7*d'¹wj7T{=vqWmVzssmp,l9~D:.o-C>mh"pZ= =S-,l\o4]ݯ+.|P~Ƿg5g*9kimSv^GNbwW' 0W!kl÷OZUՅX6_~fl3FDG+%s 3Y |;o߿s1DܿB$iZ)SE]/qSih="v) Bդ\j> >Cik?Rl2bY;?/q]o]ͱh|s nˎ6dL^t0QӅmG%ۨ{0]yC5d:Ywm,lN9mn2w\]\^cQVg^s6Douܳp ,e7W*xUOgrV.93i7ڽy5Y,ÇD;[+n9d,r5ss[f睍|xlxc l$˺4ܬob[9+|+vQr9%H8t&t}Lsots};m͑ˋd5:y<&ΘaÇM8XyE|õW/:&˺U]̈ !Ea&.NrnˈʍﳑOgq7^}]SW\dYD'ʾJMO$1ybw.~7]Q_s88XPA%IDdEG27wbc!ʭ&z%ە9zcwo H'}zWYqvehDigkúic֟o:ҽbٝ&o4FO50T(à~{g|D4S)JiJ/S@o}a}zJwtZ1Cd#+$;xΣ?3esr˶oW5HFo'w~kXԝTJh@B BP4F\0DAUʙ K0$m8li2 (w2 j`" l3:+p["cUdpM+m T3ݵP] ູD]AF`f e2UPVA\0.n !˃".gXfLZJEJhP (?%At !J( 'PA6$CdȈ}A(sd: ("a*|ezms#ѷ(#닢4*dDEPVR(x>PG./E"$"7ʑ?qйA.&nApB "mЅʈ HBJT%\JPF!r*H,AHᚿB yA C9*FU*Ģ  "$28PdI/  opm YAfEp A(#0刲,!`mP$I$H H a!"0!DH=%(~,D;ȇ ˆr"~-!홆 8Eo  T('wSWGU% 1&~ L$q&h9H" #J jSE>m$oŠTYqP$ô!fB|oEb*RQ$*+@04F UBu("k6X)p׼xoN<:6Hfj<S~f a wX h! H*!z0AI _dH+QKAjPAR*H(FdW~Tq`n*H*I@CD$^tDpaD[$P ()h @ H TP2*7D*" H AVPBKDA/@$&~!h!PADoC QD 0(Ĩ !h0, j$2aEZ ""H ҚZ5TF1 t6 $"$,D (H2.΍Zh],"AE`~ kR!Z14:/}@J.h AŊ,L"Hȁz- @y1~LSbAABHE;j0P/poWvEN- $+#/Pk=I$T Y$TSV @D5I7A4K:!@(D:,ENhkfYn1<%z0`d0e;bDD,x(5KA:HP:("" ؎}{H{TB0$B +("K ܢ5EH$X!~A`I ҴAtTJ` ~8bY/qAS!1jHZObjF 'E2CzZ&ƠkL-$'cfB) J!QtjA "kGM J'5!sX ,lH4 b؄ j*"wi,]@@ :K0y' fJ">t,D ԇG´([d$[@J$FD $F@Y$R@xQÍ$w)$fh! E:ʃGp/: !sH+2Zc"H=(! ILIF|"B U"?" BI x5f $Sw#0MklĒRc$CO*~?B%: j'hElB^|KH-@nQPS٢fJI !:ZJ\kbQV"F8E><->U91>lI*$$?$RhUabtpNF{q(|akNpB~5T~˘Ch*#E<#!Q*Wcv++p  ,ll}bf}I2' t `Ɣw{ns{92Uه ߋSW2WL6&x;|sAT2o~N>Ov_YbTϧԥ)–Ԋџ D;u0h$gf a1Q1i+nv?:&M0~TpUY?ݯgOTYTnÉYطJnFRmQz !e-g$ Eɔ97j@ ^Hߜa檋tww-=k/*H7:tS!=H}X.߈ns;esB  M@@[6[_Bg$?v{><*!qsnTEhC JV OjS~eTX*JS}ǭwY*6prtgoTOotg!ad>շjT~(1֖j.b.K^>1FBm Ę%&]qE){XXT7}^5b.<z(2.55x[K7O L[z~W"@Z-\Rظ'4ׯv;gğMֿ6#|ռe I(QJ\W}ua>WnM6ļ/njCx9Oo\]0|mJhy#u*[ Ɵ.MH@@0א:Cls^.e[v8yf!Ja3|hoF)͛Wݸ|,Odjߪ{]SS+sS9L'{s i"-O0fxwpq)yjpGj@ʃc t<34AFI"2Gb{&?Ip#ڨ#fSݟTPGm5]ռA2NV {Zڢ WB 7X›LUBҁ .!9ɶ0v.&H˨Q ,.7BXUVb,/dUo`XZ VRɏhkEڔpŀs>Q=*? uv't7x2ljy9'F@6vƆ\.2ZcԴh WVqT+x n֛pqm_6D;3U.&}㦍A@HJ||+Yb͝+RAx.E47uH_:vFwhH Ez\d;g}- F>8}m==oS`[%LU |;ؕ AOȬr( X12*-£m:-3SI &J>bXXCuVBԱJiެj'<qs X:6r71TD͗5mlqf,eӚ_y[dH,l͈1=rP\4 H0nz|o]~oӟO eqY &x(œs/+jiMM8նTw>B.A0}_Rd֡=%GbzcLEQr}iķr;[׊/C-4zDnE0DdbRڥ +%L6b<ϟkI<f/3|DPOlUcMRL[ B*nsݮrN KV@)"z9@+5Ou"f¥aZOA#GR;+`k^9be*|N[aޝw G֌.FS>dL9KRdzy*PM.*OJBK K3v7W,SyMKGGGGG? ?/KKM'](~_r/?Q}S=Kf]T]M佽eK#=Qͯx{Ft7aJ T]-S"x 8/%}0Ygct5R F+xNײ8'7UJPjywMnJ-"`uAűQl Nwldpy4]fZ2ݻfa}2qGO^Kkչs]\ݵdzë)E/"pM ) ,j2>5*`tYˡHXδIYRM j}z-^*^ C-|O)(֣n,uI{8KJ)ʖ%dVͫ8 KLw4l_`R.F2=}|i%~HS )z\ J[:wNU\寏CNu B,!8N[δG`eEEvghv? KmajsPhsz&U[qat_Vf߫G=zەճ=~mJJci[VVwGvu]V:rIK5d$3?H%َʧ(z}E7LC?HHqDY 67o/֣6玦&dJkq&ʲ3eH6I(Ȁ&,wZcb~'6y1;1I0(h9j”tˬ%\cVRbK/y(/p>h\>.Ϣ5'מmo/rY">eImG< ~eOuyZMR>pUA\Lps^geDa<N݊ջU0œ/z^LbLyD MWMhDIŒT5 Ĺ<*F_W2|+Q.(HkFF=p|gPԫ[Il}>+&[O?k`b&l5NEkcV/wxgTwk{3޿zo?Ck;z5wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW]b܄.:Nn^#+:ZˣNx:3nq}L<_)stnpu,o(u:Xqj\WmvFrcr#7qy~AGFGQ/U/yH9 պ;^j:6_VTˎjaGTص+@zo곿ڿX75(ի[vҽy_O_?eV+*mt׶mƒsA[Oz/˚O}uneiIَܤ:՛RoYDž[ 㵸p{bm5V55_L&-c' ys!QԭˆWim5-V\-+(Nғ p_Mjytk^)7_*:M 6Rp'mYP.<2AP\ʑ"1_hqgCǮ@!Cz}a [@ /ONP)ko(A2ZdܱsWySl-5_8Sw?6t^_~DK@5G14g3#hFD?~@d9?AZ <$2ؙL\lEUsדP*y ʽ>`jo߲y88@:a†PSA+Tmu+(\_^II]E#P=8ʒ\{ :cjIcG0bVͩG th2'PjNoB">(NW졦C [49nYUo^WB;ažxZs旡wwMlAlp|WlUh¾ -d̅-vgQ'Ң+ډ-:%R<%Sxd)ݿ:ܾjyO!vJTK~t{?%ODY)H0 PH_ђne2=3yZ"~7xݛս%Yܷ_Ga{|f]$BTV(aQabDV ̳ZZce1iLJh 'FE֩?*̲,g> H&2n$K ^M‹H|9SZVrw_v]sB5a7?9ӟFdGԾbe1:#x7p1ņ#l597aA;{1>8Y BK6!\vϮbJ=h@<%g|>j1>GB%HQ.'vlB(܅>}[}xhMX=Ү9?>`+ kQ_Nx:L~Zσ_@4n Kq>-}9J uiV@| u883b3ŌLdxޙ0_J,)n&[*o~R2c iN'm&j{`Zu`@GDɈ<{>NbLRɏtĖ"xaqWWWVXSU80+H*|ecZ*HHMk-G8ֈ,}UDWqCT* [&"iYw@JA %W2IokX56Q]6{b@;rhFAUU]1a,0蘤Cɨ/+#>s;CD#:4"ZY{Ϟ9_[Y.źEgj@-S1W#G ^b^T)>anîػy}l~ ħ5~[֑}}]W'8If:ociN~EFb*OHU/w{t3m@ U1VSF m#M}Ef0_cT2h e%96:_ԕݲ G6;!߽0xK yp9lS J48ui>s/4 d/6ZՕ/JnfdHj SdI 8-C Cn;VtdY!xbtv}kQƺbY>\B38'|`Wײȯ!޾N̰(m }/ŞK_A[$YBXwՉS[cC㷞L[ k\a׻/Vv`NA7}Eq>cӋg"Ǧ(sx[+z]=G 㡉W+*iɮr U@Q0ǘ@MJH*ȚUNvO3bFt}KתRFNztG!fqZ Z߰\O13g(eˢM^D{(F "D!/.~woZjw%:甆Aez' !uCR%Q2& . &ASy%ѓ 2L*2h.erQnsbMTlԓotT@M[w8Bu1THrE{jхLV $4]ҫR~Zoh^qJpm Ku*l+0[Q] ؃sׯcpBK&G3߂'|)wkO`` 1e )tT (m2]}/ޙBFPùp m|{y88`;|n8=Ƣ큅 _U%Fuy˭਄KT˪/yfzCͪ| i,!ЊS <"=^]!'mIN) +RWn^u(`ViIXBb%XRV3Uλ,Z %T1ן)r06}x- imaA[ <-P #1J5L}S "+¾HyP4\;^3nO^ qC=6ݐeeeeeehYٯ"1˹:;s! RB& \#4hw0u僗ICӚKг!z2MxуprpM0oן 9;ܾt=.bٔz5m;0/Q Z+uQ *}v%~ [W?Al!lALj҉+Ss10G=5$q"$iZY<9{c_1Qzkx[1wd99]Hm؝=XXr͸*K Gz`g)GwS~_'z76Xzl/ J ~4/4_[fkrh62*fU'T1T8-C"ɓc! 'ϘLytUdōkt}-B`/;2zIOjʥ1Z7}ӆ;/^23~etѠB?RtYWWhMU(COsJZ:gZ5CTyĸÀD#-8˅QgsM.|K3)7͛&t6?RU}_FZX Xb VdhG/ 4FN 'Z>V[MEoP*Q~WbԣdSiBŝT|EGVf'TΐȑkJPJ ~ׅPks P ]x>| ^~/T|ǘqhZL7*ӓu܉܉aJ"M1ꐌ$~`$ z[7TYLP| T3y1w!W҅ yK EM5@v!~IH֩5VVʹP| )' ;`*b*b5# 'Ɫ#{Es6b J^|x|́ eD;F]XE{8V Pp}7i5 B&O"u0S7+VeU>kq21"o8д6ǘIjcqd }K#Gb L{ɯ-%@%ʙ`֬WQ80SẘHreWw W5޵nK  =|&Q>ZÂ@4|պ%Hcm(_ơ `2< ׁs ʉv&tcOg۴f+03 'ĨM$X v\ grr`ݔP'J 3a=|$b ay>5 uv{S-q,{8쪝WTa^x/`BNӦmmCɉ5tPB>*j1Go#/@=+jZzj3.QؕFp! "Sj8};3~.Wؿ(Xb;_z,́=b+Lb&TCWR­z>7 Q횘lCL| 69)J8%G-1T____GE%xfլ[OG{g!u.NO5iݻRA}ԱJvľ Z~,doe&1)j3A~K 70<%Ä*ϙXaoS)21l{6o't2o5wa -˽Y [+'Hsj&z,\b,筂ugteg(Z)9)n`ע̕zQ+ڧ$D9kŝ},MJn|ɿ )(Ln34cgyg37 *+`E j0r-R=@"+*p)MU}Џ*ۣ-^EZu\4pŬPgSJ.\WFrGv3\HшecOD/ԧkEV?TdN b.wtcRC?OKuS?W^_E}6[[[%\[dLr\779R辙,WW)\4\$%HQADF1;!Z b aC]8sm,%:bv[ cz*m %c 6t^|O={T`*ylXMˮl4#6zm@ s9\/ xw~yO,笧TL {UAWWÂ(wRҺr~2Z(fXɗ*-q?*#l,>̂G6D$xݹ iB0r̅%1hIiGƅ`rPt÷OLZTvn.6ɩ">_UT޿vvr<)u*d7nĊYb=T8pJ|aÉ-o.c [O,Á'2+ZH0QS -W%Ѷ@!@nV0c0&PtzP`7kLm˱\1:sHA \ pMLARQMBp{6(!X}ILPP=]ֳ. tO |-}zGaՌ8/vLAuJwS ;e`-ep{JĨ! &ف:ʂ= ;!}^;fn{l["o'vӻ{oNX >a6wAO%F`krJ=>#庍riZ t2 `0`4bV` FSn~dl>~ĻҼ:UUEYXVVx+o^W̕P(rH!*nm"tpӌ4qNRw ؘX{PG@2"Q*kP\Ăbw⳩m_(k+x됤wN"oߚ>1Y+U( 1uBP4fEϟhMuR os|?x~՛+z*yH9ؕ8Q}Yҝ'fSp+djFgSVTsaO 8/a֟Ud0 ͷ]xGKYpN[фXJ"OchWz?,r,wyk9ݷ =pkE!8ˤ|%<78/ $ &P5s{}jpBPdY3K4~OC '#QEa1X5rZRL/7Mw7aj1# ʚBNIcN̲ ,%$YٖE5ho10_E!٢! ըH/da:rzRڞ{ج|ASI7+:W:Xz(orxJKܬ)t$l cQaOsճtԬ+-*Aժaz.H$4 }f9+ Rs+OS;<3ҟ2|ц* y|`,[+8]c!Oe Mw蚅SFlJvPecW | -_:֣or}%ȴ' |uG f?[S,فj2Xw4'r1&Fvr^?8}SmWvءq3jRZmp[Zf:<+P=:X>zz e8vns(FHt{ƶ[3ڥ8sX|6(n=,e+!J1Cl!%颠jV@8`TTCZ+Fuq]xu+G*CtMMBp,H/}cxW]"1N><>68{HjeCL2a-}>O}w-?~)⟊~)>O}t>O}d't>O}t>O}d'>O}d'>O}d'>O}?t>O?SO?SO?Sw=?~)O}xeᗆf+jPʆT2 f!bf!⟊~)O}_}t?u⟊~)⟊~)t>O}d'>O}d??t9SO?SO?SO?St>O}d'x>O}t>O}_{UDQx*Qj}Qn%.ym OF$H" o 2|kuw`m9.Gy=NVJC\34Kwݶ-(iڞѪU`]k**֬!UYVL-9`O/fȗm}Xv B}hvKQc{VCqzYݍ=-*D꘭IWK&wgQP'ϖҚ1jyr9לf,O>E3Ŷ!gk8ξzpPJnƣGֹiŊJToS=̧@ܓ} OS SYnDG>W`#~ -ܹ5d)Bsd<,X@q/L Z  Nڲ趶 & "tз>A]@EA2d Q2n3Z68eS@EGnjQR~Wuhm1eSt\½ oX\1jN9 *d8XRRRUb@ާ[ xqB}9y]}h}]k[UPuUrPl4 amOC.`b:>M3EN5.r/- "A1]+ZD™N [*%a 0.cӢ?cymUk!.)7o ͩC<:8K>񆹒ՠ_h+N O}~j~Ґsl~DAUP>a諫/PUzzjҴ+1eqfWDX%Y?KNE6Ka?4p1c&z„݅E %'|Xs5b)W ڞĊŒ:JIF 5TIIc'eN{NMN"ĹI-6;ƳFToYV5+wqrЗ y|Nfc1/v+bɛ1vU9F.`^Y5cDnj]JsޔϩXH ܺlJM)Yk]g3j*'yQx*hDgBXBزH0 @(SU+PY,:Ae6N+*u^WCws^Z/C• vymy㮎v>b$ W^X0vX9+saxX9WWXQ1k4+sćyW_ٜΟJ^0hJG,z~Mr &P1gXXJ"SR]sxR~ES ܢB,ýLKG±Ye2[l/Mk~V#نScK|0|( Qp,#K axGqa/ʄر Yw__UsTGi-ERz$ahMOQ9CSv4'I>23L ֨e/: (:A=/4caxh5ҍlD XN {?a'MMhoU Phr+1 xw׃:cp2B7jmxgM^#lO^5Tm*kP3?]ΤSe.xC8U%sD.y[/+iTmv.PLۖ,3K(_gtBMG6ϨC*H8m̼xEq`hk%~J^sjDaZMqm&,R,#װZ_4:[ ź$/2)¤*N ?8~"[,&JH)>^+(ıPן/ Wְ@W,_]E8>hS>o6@Ϋ=/nm#YؼRȈ,c cYO/v#cKXR0X0˖aC 9RVmk$1ߜLFj+&e#}9B]PS՚Y񗵑?}Zˍ %SUUe88PS"Ne18jb1$9lo6p;|.H:¥ɷS)un`?Wcvae݊P0pȞ}# X$L~@7˛y4A錆=Z밨@VRlUhw|^lx3s>X@lMtZ(-6TXasJW7owX'_ڒ8}QF w [</>e ɛv"ɝyVoU²UY[i %]j-NQnKw!SMtV\5%^e:M\ԙ=΀1Tx2wG^hpա̇% XfDWs)I&!lYa{+}=3,%s j=|?|ߋ!5`xl 6D[Bڈq.K{{Aqr+Xa._0q'փakH̡rLCX#F``uG:EƇߦ جNQC& Qm%En_`^lqnF&kBYp şB X/pKrB(3{18tNz\m:^9!_j)3A"+: /(w}/9h1Oّ_"Id;XXZVʊcM0v2yjcRd !*v $j50Ehضo@mMGohvyķi-jVd%ˉ<*hm(6}R,30`*y6I$sr䧹JQf(ӛ *p|S2Sts2%[5uXzt=̑~>S:3XTіWB&p _WA eSph 48wm7z/j #ӇG |_>G'pkZKQV-]>^*VG\= rbVy` ICC#[v9cvY\T4Gk d=<ځ7& /x-=.H}ByJIE^-JS_KjMy dxIj \EϽzd[ .ιhP1Wo>*zӳ?<@DS j8c"Fo<|aPPh a/tn1w>O>$|`ݿB%jJȏ9DoN(ʃ3'/t&zl&+MEmse'?1TY1 Ix+ASo-.knSKxewi9?EUϙ(Oimָ:׫h(LsF='ÖKHBMst{n6B`gͳh@5j͕n+\0`.J0_m~t~]_ 'A~Hn6s4uw[5585kVU⤒\U臫**ʺ5][[1*TFA ވtB?_ |}?m4v/r;0p:Y 򫧃,,b= /]&\fVqTAYgI¢Տ; l d" ~jXSF(Ӏ*MΪDr>boE*cy ]PJ$f|sO%i K'>7G,( ^.5׸9ߑ߸Nc)k㠪<=hҮ;ngޔLx(|d"XOjLy!UpTrYϧ-[eߏP9s늆/DP)*,Iaߥhc*80jˆRRc%-c`Eߓepc 0B$/EK[Qa0Cfblrw.FlR_/<xމ6βk$x$2ٷN }ċ7%ocR7%^r?qm˗'P@T-e2 xH=D* J!n4v|7_Q1(,s$ %;D#!`r%@n7pf T颫 wc(CYZ@=\؃rqcy[m]w$sU!zpd GAD} " H 0) #""4"~P:M"FA"J?U DI0 " r@"J B^#!(E4# EtDNAOȰ@"H6 :M'``AtG yL*}k'{׆8ײ37$40 d鏟rKw7*?Ck/u3 ;@:&pH@#" 젌>l y9rTQLc7PZR D._xs-QKP\n+?ʿiT*hMjФ3elztrnvgZpg(ERo!lW+B|q+#PɐL,GB)l08b;c"^dĺ!Yn2`Z8D;+g8_qǓU?U0୊J7`!}KaG.aH+-pҘx [fȿvrt8lŽJ@K)ٷWˆVQ4W#4"M49wꛏ]{a/V^ʋkxrCblu2\ZGc=QhUL,rSoa&>"x;\j}>53 m[`_nyO3[G3RdFQ_T6k8bQ? Bʯ?-) ћg gbda`frSz8oE>v 8+?I0+'/(|g /Y5l8PڿM\)hvžWa5A]I%]-Jfգ0>WJ2yΓA RFd/j^spGb2N,ō*adXք~,剦ICj+^-]qҩCKʷ'lTX9s=Ո@/̙z) #s1) e"^9T8R mI}T❋ag15- Rr8c?{_uB+,W&=`md wиN/A֦6MZźN?NYg0BF ɦ+;?U R9Hr(|rvoQBpL`뫁⳩prbʬc}skQ3Zj5}]J,ъS;BMy)JeU/=Mw1t#5GW.W Rj\-%lŭ nC)oi,cRRާz>}.M(@81Յk/6 Dѓ-+mKܔ ."$TNo` Q{ N#UT/)N^L&no)yJ ݛ pnݳNOc0NJ6 Q썽vdl"+ tL`M165 9(90j<zbmlcl 9t ́9e̙V=Viֶs Vk֕D/7ڬ-ec,QR'KKjFa0M'<%IS1{'rxՂu\Y;4FghK*>vEsÃLG&iٽT5IcJyqVk䳩Xib@U {\OIg?!aB"HH/Kk.݌9@PݡAxX  D?n3\}s4"$m tv/_G`{ A͆OS[Sw$`X'C@Ef-HTO#X#2cLyjcmb̨"m\Ql0C@gH X4)Acmbe X!D#w&p~_0u0)PylPψ'k1j5zuh:`\[b _(MIƛ-tf,^B5&IW9u h~,hRGj:ն@)䐔' a,X^m"v7ls4җfބ  cv7'vwHㄚTj> 3GTcSsJEO/ ۱S4AeFp~@57܇%s5hB IKvl#`b>I_ۓg tm橘?5GCm [GR7q _A=2 F.%np2E`kevJP|, )@K‘PpJx7FY%sq*UM)[y޾~'tn=>+^qQ z?#6XZa:ׂį,F rjfTvsXz&> sf,`G<"dU@5 #ADu *`Ub 1zȠ}b" 1EP|()DAH(5

wiTB ګKXx܎TyBpԭ \,:,iAKUL3 *LgNńff1b(NzyP_Chc-}w e"/SkSv+7R'޿Z] nő"b Hd.Q{*Q*9}I$њB-UQ^*lCU :C* !tWßguXz7rNBOLf#0y7s~y |mX [|]IΤXLh֖Dt=^c-Z[!==AbF`NأjGPmKȗ% +r-BȘ\&=c+$\}f}(JPaˑjn60MwM\?{W[nW&VC=smβ=CzW6m{~_sKkd5xYnAe>%Ed P9>Am;I%pG f8Caܢ@6@?V۟+ܡLKjxq<]0U%j_aH2osbOX| wB8IJSaض ޞff7@k2|5Sd8fxlp2pC#;j7@I- 0*pq]@>gkڞ|,89E(w{-O9RTLY؝'j]ǎ5fqKW90H!X>`;M m9)aы\6炇%a4q.@e;AWW+z_+`NϿgTɮE 0ie㯜}&YxS?_L6z.,9Ȼ^ [p7ލ%TSLB@4`0ޘsG Aj+48 w0؃pq&&V XI%I GF pϤ;Р*0#>~Vp0=~_+*H2wcxd&yBJYK+h"\x1WPN8"^sUPIn7@ 4[h <إ~xG$=;o]Qgלk&jpBoN$ B?*BG|6n! clngx'E:>n7'y{#)xwcro8j0uHKЬ@)0Pjȹ0Y]6ÑsgjyY>^ϧ/u]0 Hq^!=bn VE`I9,VbwFiU3 Ռ.ϼ'=fp@ƉӰk} *;Op$xdܹ%wwJX)h*21LYpK]B$)syhAҼ4Qlݭ s< roW;q#l?'1D!3R('"?OC!; %"S WjUL.X'ۭklys*_M/ԟ:&[!W:c6 *4oP*/Kp9+h1U2ifZ}mz} =/9'o|P4g) W䰰珀k\)8 cvp z c0=1Y *+职/G)聪*eS8Ȟ+,o載s'Y> cc*AA͆Iѩ+ؚؒS g&\n6F":A5C@w:4(Þ=Hʙ^}'V|7j%tj8c253QB!z0};G93Pƒbϲx+;>J˛O'}8}&89.W $9!gGr1.AH/Jx1Ѩo (jhpEdfNݐ1an!8Ps2> 0-Ĉ$YqA ʰxo}˵rpO8.W֌o|eSq nL~v2'=֣">Hqc*ROEU~ J,yj--+YUd;lt ̨ TT:=%f`}jʐ;uJh Jjk}|ѭ(N^=Z b/Ox_(UUI%Vi`5p,G"zX+Kt2 BuRf+IMlg=Z"Vz r$y*̻}.gF7ɥq[>\>+*dzu_/ SZAyRд:2TBTjaC Xp`䷯]0~Y@tlFNQg Qea|&sdT3p$sVrr:%Yvf7 0Rf>W? 9k)Wc+ r" 䚨293ynqF#TM w\w꧓$gLʯks~D~Fu.WnL֡j|MO8fW7=3ӦVwY5taL:ްUoǧ97tIr]5Ź5Em,+YjI/ݻI[}?|>ejh4ewF[Q]ʹgX5X!%!S }.{]lގ{]tOy@bho#KggȲ _[Qc-\ ~>!p[1!KdrWpH\6pFmG5]hx(jU(|(27$o鷍S|!2K.Mߥ7cV~ m˝My|3Z/هK,𺂒0<vZWУ q~Jyw>oMqf0yi™w 4|&ȋrзn0x?ٽ@Dh50XOϖp|(jO[5oV,}fDF5b5 l%u*H*:AdF3J,cEuzkv (/A$L%ŏt*6{AH%Di;WgfJ9Lʮm qTVe1Vu;وZn VCSE:<)T<;/i;_2O<|b=wګ6V_w;.qTn*!`vdNU.=ӷ}t^{ZF39qW+h ٟUivAO Dϯ_|g}*,]Kss#GHHIѼkF5\y>wnKpnȎޝ%}+Q"P)ے>QM(2#l\r&Q97!{ۗjp tRrz+U}s3&AKb{<]fYjm»ErL?.S+;ٵyzusW^۠wq.r;A$F~MTcʇ/&u;yϧWb%Su`+&˻ ]9s:LGA3NӞ,-npn;vL߃~j,fuOk ϧ׬D17p{9#(_9pyYg_9:ud9Řr[ô1xYˈl^,pXk9ubq"{: u-y}'}퐧Q_Vϣ!7ss%a.bĜNDVdKA9G:IdjP_wo0E 0p,{uzo^xtJ_/5`& YHazYpoB ,8JJCš$ `!Q{ѽ׌d|#|(DlQ"Ci1܀ *\# rmbY[M[`0-Ò!_i^ d;R>ULuc=ɧ݁_}晿 LBvgJ*q K܍A6Ӌ%1@G,G6Ƭ*lQdňiߩ{Ϫ)jE $Ķ>= 㬅T- V;K^YК=9ĺnqfA}8H%ҡiKg֬]VAU%G JbO`[껋PaMU!P XW 6ԶH9o:(RjF f4|1h9gg__gT->׷R}QRw&~AS!\%2pܽ{.yQ؋05wỵO*obYqg"J+fzM98L9W;lNvHDkJ#r3s.%jm(IXe;/H5؍LOם(c ƊuFL,!Vn ˾:14kтE;oϑu>~ӿȌY#CD?9yj!(粴O5 vz'C3;ikig["sܗ_ V|^L{9IcD\/ODب;eW 1֓wtp"F&儻:ViɐG[=~ԧm;߼{EsɒMV5uԸ"MrjoٹmIOg{c1vVgxY{ӹ̽Û7c@M0uCksDcdx"h]O&$" au舮gzozîyo>G>OTW'.NVurc#_ݔ:/'5G +뢫ĝja|޴9 tMOlߦr__dy4pۥMWb_Haan@rrˤ(cl\Q؆yw\C&a2T(GOVu÷,O\4ađ&h p gGP1a5E0-18 Ԯ,jGq1X1#?q H JBn^$TSҼ]\w ͯW\IPƶog׼hļc1H`ݼQ cq"+\y>34'=!Zi^e%_YѦ-~JWݞ,v-%Yh F_<¢Gݮ U9:g<'j%菽oz"ժ@9K kXMn旵,/:֏xPk kzT)%+AD;Յ: |'}^3vvY3؂dO:؞3T٭`qC6LԵds[զm}M{*%:Uitn` |߹K6_:I1[FD_@/}wAE$k)+s27*zj]D͔QSgeյ?Z+w{vg/f8[͝]\Bs>/CDX@n*uP>OIS5'rۮ|OW37Ҩy8Eէ!"Fy8>Nz)1͊L:&f Wgw<Ǔ`ꗅF%ޣεcXMe?lW_7GƝw_#.9Gc9<_109Wʾ yscF zҡ C WSegkZ@lK9VCVewڝkݑ"R>>_9;o9#WN|z6{-p]b;~99fupDLaxj79{=II3\auȪxՑ'|w}Nn5&둟QV^_&>eᳰDkR}+RS%弭J[.ַ}I;鞰h{ u/~ȕ78t𛃮v;Núr5[,o tkx)^n'E\Ç `O+_k vۑ Fs?ԳB(˜* #reRl."XYW T-DY*0}_?馲A\oʭ;nY0vBWr9 8C0n!D0_ SCAF\aNJtet*.Pگ?vqkm rfh60؍[vzV1f?XCt55`VwUˀ>b7phԬ5wNKnBS ~նh|~DrXOwh?R$2+eWE9% LP0!N ,Yu*7Bc="ĭy଱+ʱG|:ȞQK~ Lyw`P ;xPCeW:_{vPP n>;E4@h_XwY`vI=gFU .z\a<cu(| s'iHmՖH2635vo:w"]9r0r{dAR uprp3.nxy)۲2]_ob'5jʎWozu,˾Q:N;1Wsk7l{UH&\ αZ+ KuοgcTU-s;hST8 *.r> U" X21:vqS>񟟨./5?y[Uwo'bwns#IPMI'\ҮK+Ȅo} .Y=_k|}j~z6}~6F wQ{7{0-vLs N՚euL8&!#L%9lm5rnS5n{urywwQZwl'>LIT(}a77|t|Ozy9uW_# ko/67PFow:w֊}DzRP"J#_"jk*G.3w>^s~"x虙|ðtJ2z4lc#xA 8WՒ8s&`YZ+qwxe(~cnq-s}ޠټ&ԏh]ɫJ,EUy)i#dFRG oh>]^~wxB狉&]UٷWr ޞr`O{Urt!j{j9tLn}3ثo,v:bwfoh|;'>ՔDUlw\wK偝8{SUۑ>E;`_|7=yu[2&'Ze~(98EFvD~Qw-6aL&Knz%DW9Y*Bn#~gS\=:e;alvj'FOQ7Ug{7MwVrPZu*7LN&\.ĝ'e 7 |k3ػwzv5uՎnO_.*JZ)ߍ)_'>gޱ'(R8O4C&t+D *R+ 5 2@Q3p˨Kghz ł|i ) S*眆[dBpפ Uˬ&f1[-_)rNkEiK6RV&2#}iil"b\y&.Kkb&dKS"e .bXL1e\9Q-ba y >(qGطMlӋ3n=| y-C wǎ`pWWCP<u= ]t!otζFڢ@j؇#_&j"8^>gOYw~M22!419i8!iP|L @\ӿ |f;5Aⷱ]Eaj!R6)5P'N D6l%4I7 ݧaf"IQl$f:U -_jV3I^24fw`Mzt8ZB#ݴok]FǥC"_֏&,ja{胞cԔ\i>K !"RIRI#m@̉ș7c7r$O^̨͛f7̉!2)sԱ{^VwK6g"GY78C\5ꔃ7-ܕ9H"uTE12V|_ټb.+|9M_ys[8U(a0ȓ:w眆vod5ɭq&MW( [3'P=6yI׍jm[:t21nMKVyǻv;U'-%z>{w}҇??Op1^AxT PQ 4/DQ~W4?^\&ޙ͕g|:7XTj.dU Ž50dyժBVOJ@WE\q25[C+|̺;Vϡg/8IN\|8g> 9Q\3g5 A f`!]뫝QLƵR ki jR#鐦.7l0}yHu9CwUR=>ΝqsvBl|,3v_uh;^y^bxƲ r{fnrv"uY܁:wu ,W9T}[44RdSZWә6InDks[=?9Q}/ss +Dk_i}>:]}1lr!1^w9m?\Q #[G&%s^FǷd,u|QsuvB |Yك닸ϟ3_we}unLTf5pyk f i񜃜7HtfW+q6G™flɉ]k2};Μ|9[7qEKY.59 yÎz#Qm,ޒ=^ul8\Y/LٕD͔InT_~ ,|gWь9cɸ.s=?[ Oˮ&N歯z. 3(]B{k :ں5WPSトҎ0YWD~rCxauWU_^K2]F[tV\[T̒ <0Ӈvuaro~˃cLԜ3+ToǛߩ..3OLٌ[}432qv*KG8YN} A2u`ϜɸI"pU ]r6]fNsyDgm7U GA4E`r;^uV 7vJrj[4 # 5ٸuݛL6EZ>;7ivFIq|5r,tHS$%hH֡ .F>-rED20ɔFT~2I,Xn_I:̝l1 rq!y;,*~JTZk;/W_rMnC„5T\ 'JPIh/qfjXJIDىH1 Goʡھ]A |/Rq|4݂1g:_DP͚YПw z-ZxO_l\M@U@NJl)evyS']CCfj PW+ =L12.gAq+*  ZC)>L\p`?g&v"`D:obno Elly?rsK_pQ)? /KK@2̠;(j%\+{)ܔQvO;(0]Dof]'lC'KroA#xacO/n#gܚu;S̙cu^o=Դ,T&"vtc#* f ny{z9QUwkʻyK\1[1q75YM w9}DUG7&Z.UoЖZ]@ײst7Հ ~Ǵ(i)-Wf;ʌXt=n{}n.ȻJ=yK6(0넌#Z@~?Q5oDŽxfnnG[ؚ9!i srnbN۶t]\nopC/9QntnI=Üw&0};هO{ܹjFD;۔}[CsHCw޹pNs+ 9&oA>(%Vw.ʈ/$sygb.UTS4$HAltneN[Z#"" ka{aA6Gr=QsD<=6 \IӔH;n.7\ܘB/%mp*D" |w^̨s#遳vjfm%ou3N,:_n92T{L::91w'͵W J_q'T ӗ8ح᧾bT7zįF_=>?imϘ7Gfy۟/z *7,oq $ojQcLmI5땪n"Q 2wg~AX}7En9Sꕪ:<=eXop:95 XYDӄF߲Y_8,6y,щ33_j3ϯb']1_oNEp+W٧OH^om0n[Rs0>/èy<93s'%rP3i~ݻ$(E-Nw|y.w>2o{3ʎO &XO>wq(E׷ѣvV7{==qNWj1lsUärd*;6Y?ey|>{w{ $T_5gktT(DGqպӺN"觷{2Oc*|Hn7tWO5C Y>k?e}5tC'X;zʠ\?]/ۄ)"׈ %rnx>pLɆyɝ^+2@}Y6=,BvIy'#PzN1~ ]px2Wˣ'.]]݁tYWV9H Vn|,&d`x}n_tH9˾}(PL5wFfP'Yn&] 6Y)Cu5[UtJtlٖEnŠ9|^o=Tƶg3+ݟ Ü:7'Dr$:&5~']iMdW/2)8o;=|GfD?&2njuS5Sn><=/XY!uϑ.'UIdo"y'g012!cNߙ_ n`YHdyn|grl, uMH]A e~sA֡JZu>^'CΈz{@wng#_ ofʬ2Iksɥ8A PrFW:'.nc7g7eG Jd;7d2jy}z ԧ*f$ 8&m[]k0=|nV9icI$ ӂ](6K4G5yTB/T "˜:WT7ZuG耯_EG*lMLPbu((YJ;PaP ͂mcvxBPb8'`k=X9?3"=Mvʴތ*ݭF60C9囹Ͳ_BЩ]  \%^Y/|ü6g"9syx^nl!ޝFU]N^Ml`%ٶ=U͞sW4uWbFr2$ÿf yI72pՔUn_ਪ79]_cj7דpp3{͑W_9'k9 *Ls:,vb<ܹd.vrf2vtX70`l&{0zӕ O[a ,\X0ge2/CB~ |OQP-H(T~S<Ý;ek_7%//spO;(3ޒ'߷We'N\Jo[{c}De콎,unf˵aw͐F}qE ~~C𚡏$, W: j"WƋ&HjS'=0Gp[v[&9wxd|=,_MV9w緲rOuv)ļ3e^;f ^ kb7iu6VIŽ𳓜;j=2 ;=˝({>߾9wo,L͐N!7w63lNjk`H$AJʾȿ;dgШvn`s'x;;ϤȈ#Ig"rf?7>>AC!]gɌb[ήٲ4L;ټ:Lw&3fKuWw" x\Ğyƨ|D{7]'\OuۉOfg$n뼺\xZ ȫ* wQ=w55lș#գ"ċ@?g5wt%=3r;>'ǃQUNyӑ=8hT <^(~:UE'echqeUK8]焀Y_ͺ\[M#HpX;6!A KxۃYUT͕G;%*V x6J򶰅K0,;nw\+ y(GY{t`"Aˇa`y[A_朕(áP[Ϊnr>ȖOnJc{]&c WQ(AU,+<<9?;Sʞ[\O# &nAd/ޱ5l0]Dqg98aq{Ż~|Q_ )LAFUG-Lᙶ}Y^otlrnɢfL.r}*+';bLCu5ǹeZr9?oo&9OJDoqW;F)on .YhY*h׎c0Ζ+`q 潼?Eָ杊3j bsL11'P!!Z˜B~0\z840颦UzeZyDcSYW5$?21I ^r8I r/^nޤ9.3tfdZzm:\KzNT3vOwz)غ,~& ̢Dk=Ya1ȷy=9I.צb<9+[>.rw0&=_9xYvorED5Suy'cmaS}'c{Y.wYk2gsec}+Ԟ}\w\Oj[%38Mo~zgkQסgΞr9w7e_?ܕݾIZʈ;2#8JaW<[w23ms]̨1ݾ'})3|57 2UΌdL3>a{QGvW_g}xKudQsw7õ]s湺 _nmk;cMNNYqݿϛz[O5Ց=,[=6z^TxUU'zwxj;jJb?DJnMT}Z7N2cxژ lobI[sn9 xϦĕ⌤E/)03peg0s%= {#rƜ7q:7v ڒIV& "`K_|fAԿ`>.Sl^1V_{OfA՟DŕO?(yW4=79!0gs=Yw=su&&yr?7!D'30L,-|`caBV@ÝH͘˰j3'@U/Ə\Tm^iMe?M n1 VzQDz|OmNX*Z2c&,]17a Of}Gϣ.]| < ²6 / (= 3^i[c# ("*%GcP9DRlF-vjZ5;hSO3Y~/8z)Lx0{Xq*V !P<$ʶ&' @ +*sLCM1h,҉*) кbt'!aYL1㨧GMcLMV d|esB9Lx<qehmKc0κW0F9_KE^cDBmJ!V byo)_t] -ܶD;4hڔ9vdhp 7SF2%sBL.L[;ۖ%#XO3>')Tqr4nVڼ nuH8|(!jZ% >>(K .06p'n ވ;S ,~Ӏ6:l̿ƃ"Xa}mV;.-ރĊ|Vq0vW;>45nW5Wiy5]o]=E+-[sMгʢ/?=;GzCS_kO=++󕭃̽|oyy1sIGcm G77mo{VԜr_X`@7z]n[ ^H:6MVª-߽g['zt?W{{?qZ&j`cjѐt0J;iy:5ԿJn뭨ZXZO,.)lꬮ}56Wgs^\]___r?~rM',Li8֘ɻ||6ǯ%{^)B@$$y]N՟+NoƮ^TEfYsow%оUJ̓xc(Qz^dIsȭ.|PJw1SV+P n)M|3 ´$EjsV9w c!l\Uo-,m][MGG&3Kីv1K~F|yIH&_R5c*IZFLEHҠ*J*s :Kd́ Ʊp7 ,zp"n:r^LqІb@ $VޘzdxN͈})>8a%3CG@3Kgb,x" D%o aF!r=qNxybֶ&yaQpuqc,h/@s$*>!W8hr4~/۴&y7_54T_HJvgYݢ_Ǻ<}d ẗaytI`/!8Ծi::.Ŕpe(E" ~?V&"1id(YWEv;Af\BA9?؈щ6wz }]zs\#R{H C'1LЇ~C( (; G ) }:}`ׅۗ{܏RȱY6=|fuЅkzܖ B/9뼸ѨODH,yjC]8mC$6Nj(Ftl<"gOӦ~BmT^\KAwG{BE*}v"V_,7 Òs]\~G-דpDCʳ}^Fw-/2UvDd5Ba?uUŶ]YkpťUYZv|3'D?E!  ,Ag`_z|?'r#PPc~:KƉ!h|XvűCyUD?2 $`Ԋ_T`luqx{z!BjK&Lߡq 2WmA4an JcJ˜ ٠C7y3OkJ{3̽KUo؜4L*eFUn-J/D rRVf?ɼqx~vvvQ!k[x4S=&C~cdřfep?,nJ#6GT9tϗl~aLPI7>k|xƁо#,7cPÇ! ;9/t;=>z{bXen;)BYDJܹxk+7PD8섈5H,cBR5͵+x{aScU^pd+lJ 2,< +H)1%("|bA؁4Q= ՘cKܵ>ww힇Zn&shꋸŇ7hcBAw 8|(2doŻiˑř‹Cœ1 !0f=vx=ɑ0iBCDblИ)9}j|#2AHoO2?f ߟyk["FMM`"uؿQ C^j?%ޛn}ģlj_0DRƗ1ߦUf?pn5'6m4,2e5Mj-Oo6\5NW}%s hm勤BxDfi4L_óU«yOF4Cą 2_]#" )P҂Ҩ*)H.t E]*".H ]:]:EСUTDDc Ȳ0#ȰHҚ"B:T] 4SBZJ)ҨD(E].K "҆Z@Ң)D@P](. (&4:t (":EDEѥ֗FSCZt*( @Dt J.h]iJAu" :J PAІPWFZ4GBtGJ(ӤҋJ .""" (NҮu]::кӤEt PZJhBB@4.ZҚSBt i]"B2BFHȱ@QM.EUtNB:U4t(:T4TDt:PDFAE֑֝":UuҺQ( B]." PкӤU4Ut.Q4@QЂӥ4"*֔Ң:T]"(:Ҫ+]itօ:tt*t("ЈA..EDҨi.(.:B hDQJi@DHGZAut(."AQ!4 ( UQGIРDMH4Ptt #&@EDuQTР:At..ց]"""(#M"#ҪAt*At֔E((DAM(* *Qt(QM Qt&4*GZt"":E((ѤQUQ4M QB(*:] JZGZEtPE]:])&B:])A҈ J (҂]it(tZ] ] iM EH4 *&HiT]HZEAt(  kJ֗JhEA (#Q4)QJ FQM(iQ]*]B:GZAM"ҋ(3  V7kn,Fsyʱן "Bƾߞkl5qYbpUX\49](X}y;2;4ܺn>\_ǁ/Ѝ`m{=OOv^-VsrU*wG̫ꪸ}Ulz jE\*eW®VOO;Q=Upm<}\?vWUƽԃUcxake]MXe\ eZ|2WVʦVVy C*顕}4Pʿ22ڂVVVVA ?꠆UʠUPC*(!g!g!g(!g!gtʳeYeY eYeYzeY2E2e2u2V^VA ?A ?TmsS=?ݏaDg^o/fh>,,: )ĴĤĝZZbZZbZbbZbRZbZZZbRRJb^11))1-12kJ~<N6G~?=O"?|zvtyts{z_/'k:g50:wq5Z_Yca_?|_ &t'7\A\*l#8>?$On7ns./xnPoֳ~fwK\sM{6q~#F~?z!Q֜Z_s06'x( {-,1`l5qy4O~h-9eo|[Ǖs ΄N<TvLuQO"^ $2 X^h 53]-p4䛶~;;s^~ 66(D20 A|8]yO3d8H4ԗkZ؞yI?.3jq髒!`S lN qSc?rՎ\."L=T2޺fnc ć@Xt R<[9xߛ|6h=Cσ3be>u5ɏl(?^%'7!QTT@^PYl(-8s6Nfܙ#"E*>'%hQsc?v>~h-bө-0Dvyk uq9Zɟ ) LXB]!M̛/$,`3Z /cO+2"hg p,Bd/eU HLZ<Vrej5H^ͨInz#ᩓBo#?F s$7VN[wx1qScV7e1_a3>Yنi edtC`l[MR95ێEw{|>uGv!7E8Qsr5>$-3Á!*X5rW?m&e %$H q"%JXxMӄ6p8Ig;!床v.1oA)h khn7G`]GxtKwQÆ*У!~#zcL283`a_W7} r B%l9JhcA<~+,cI;j HbIyr=xfCB]O\_3YqߦDef5n~lv99aӐ,!` E}e,+E̴>D0_PFfcmАɠ~` _lYC *xf ɶrrYpE cE& L}ݭ15LM)܋> eB{,V1Ƿ#ty҅?7 E/ssMrp >͚eݬDFKX_~۾;x>+> amiώ5; 'ca2{a1nj&I~{ѕ07{I>k\eo2P X`h+?yѨb^5jd͎b2pd?$~Tf5C!,{,z5C1 vo21+T |: |LŸ#oh.ʒ1c}fnBuJ#~$δkE⤙5g$aTUE4R}eXUDE=aXVVF+5I@G[]Z_% IPar3=/0E1~"wq>5lNMFQס!B .Db]>bdmX9b&>9%NG:w\—w?|06 +g {{?-0]&~v!uYc4l dcq4I6(xU[1Iuȃtt~Qa= G b@ќ=hh6p $k 6!i|HEt5h8:>8cʑeoG}YШA\^ ~ fsݴ̟siSϙ}7LT6R)!cQ8k+MW3x_H9~I)4diK st2 [gpNA4fZ;Fw;μ1xxM%^ef[v胍д`2lxVjaq6ti ֍ ^+A{g+գ3&<٢uN"D MZ;u 6-|(D/bdY C "8q[J2F Tl#BjTbX*OK6 Qtt r_-ߧėZ\_]IwGlOfaa@}<xlVȱЦ'ojq|5 Q2z 9yK.$LىO<:eaud dN>%ي߰;85+X<}9%i/$R#=J>/ >R  IM ס+ - 1Zwf7GCƬ2v=iR0S(:];nf73ϋ(Ł$sl_BT/AMLspdT~;Hh8JЮC t!Bp镉ݗ*n5VW޽Lpn_ ^蔐tsZ% [uL~-=l{zI9OJ<5im= vjk! Bٳ2h;&'f-GH_ܗ39d1Vc4ul9/tL#CCC3nC9%Grl<.̸T%#U T; +w'eMI\H{m? &36Ix g0/4 ͭV~h=^L$JX-bnK}`Gh`)%P'*b8fЁjSХoIa ²&3S"ډD1'<@87bAݘpPhf*b(vL8>X9Oɘ!i[\_ IXSպ{Qq- I1x$UF&% ~L\.غhnC30Y5S<3$ 9Ro `f %p%A)2 49#7ʳ}1x5 >N,5^OftTKUC/^`#B6nH(d*[f''=п Cw6][blcכ*m?J7.r)T-qk(9tNnPi*fmT6\ךqStmAZ ( w:);A:[Pm>eEMmVT&? aiPrf^}(mzEA]c0O-A AF#غB$j4q,\.]q͹@bA|C2XfX BnEmt ވS !b7ZQT ݡ|Kp{tݿZzhFExŷR~ڐ?douP*/ũmGv+\ jh=*'V.F_pů~:Q ?:~W}Y34"(F/Poe[{yH֕1f5u})'?l7m6 L8 nɫ63f#đɬT WX\46]~<ɾoͳZovCGH="sț+ZGw&,$`< hxH^u*j`Qh9m˟Hy<0aLuZD uO+9P vs.]AF+$jMau^"ϳۮ'AMq]7Ӛc3}3ӡ?d~= B\bƉҙAPTU%8/5#Xԩ%MKoe9T6 t8:0{XCʖ1D&86-@2%Ϯ>j<&*HAh].g xmcM@gjUU\;).s+,p,:y9L8EeGֽHX`)9\[:/@u3Ś qL!xߎ"_|}Z1ۡڰ72r0Z1Ygۇ\Lb`Y'è/mw)gHPHY!`7$|?=MtZ st 7⹽zAtXV /M201J1?<q[q\ݵVYߥ\f'|1.fpiBu HPFI953d $ gPT5&EΘ ^[)3(65x{]Jw-v0j ;f_< V7a׋@2·HTX ADzg~q~C`7`G+&mڔ(K?J`Rg"\o6]J937`i캥葖J;%#nSo|b~> ќhQ!S&&T'$NPP_ED0+bqt|U "H_Q1@v ^[?mat!>@HWSMqa޷7 "TI rp 8F8"g QR/@"`^:PjNeɴT#X*[ `o̡5E,n/^؈/f4sZLKcGE`6:]ɠtlwf8l8囓,` u}+hxF^ekL "hCvEŗe"My%vP7wM/,~L.'ٔ7=OH{62`w.ɢS]cobhF,\.F`^IF^q׆;Kb%'mz4憐q*ӏ{׻K QLhp` e0[qbݎLBH_pJy'>wIw31 2y9"Mc [+; :^pF~QN7EP.V2IZbnuȎŒɦ҇kC-*+Gowi A,fO:a1;L_5D8D&#Xo>7 RՆqS&ѻB,o;Ɗ7J# y:6i2Un4tHv~G\gm{*gkVwYGcrm)ɛaeCu7n]/n?َM``#m^ќĪ>/VnyKY'w[f[zbBIam:Kv^baǯ"ZIcqT auC_f) .I+;oSieVͬһZ9@)39Qtm?ƞʼnK2(E#K= Ԟf룵4LkNNl<տ?w<LnsΌZ}>~/7nGevʾ1褀箏塕>^}~b6w%}y"LrGs9ϱ/<;T⡸#A'?{T(,do ^`^Tj#5 >"om:kr*96ޅ znp *ⷤ-bx%6z(^ |4+;+w2\m-.YfQnzFTl[j&㥚([A~o,Er^[+\Xr&kۨ .#c[4^| u6T ʷ;W$fzQq^G EQ1?v6zg9'ǾhBw;թ?fќO WAc]\5w{-D;QNaІzUp2|~c\_3cH-t'ܵL0YGLyMqqz-)Tho)Dss}ѐHq8yN4INߡ"c1lz*o ᡨw~s虵^z C~4[7!4n"9x>q=х2A˼r]7>D_<wx\s6G!1s㹌5HlqHnn0Cvԡx/ۻ6yp>||'7 [@gtx3U=hQȄÉ7 dHH}|]1:9ַ8Blֹm}ssI7[`Oj7++o_1p*pm NYmb-UU1wfo_}Zw'y҆|H8]Q՛gˤW^z=G\7䞮3je1|oSm?tʞ/ҁХs,kN}C;խ=e3|qܸ|]!qp:/TD%\x{z^Z wqW&bq}XN`rg,"1tD7I~_DiT)4N^^Vʔ+ rw|RP&XjP#cG+ƙl{cqՆB1|z1g_ϝ0)]lߗC6_M^Ga$ 1ko!R6f5k+%_<5^}zQ To=}9۾meVt:L3jڕbV}[:@n]^u8W+䄅3Un7wvfM}Dam:dm<;Nۿl{-'ϓrpƄ}B_Eoz#o=m~ѧ%lX?P߈,of:Y{YOng Nctrw~KpK`] ˰A7hz uo@ 3LS; *W`4`hX ""!@␈<<# \ O3O)!A8+x~R ! l098ހ?Gw`-(ZhaA;tP?,# @6DKW &Sd _; 0 s?.f(}^ |Fǘ_toIuT ă("zP r  !E?s * s_vA:l`!x@}|p!`@sЄC `.Y@^ NN4ޠG4S?1bE 0 @ @L(/'^&} W~Du!{!`PUS9dTyxq\"+t&Iآ _A4l?b ,@EQ? *@*Kp(6p$pf \h Uc@Lx~4ASNap_  ubqH#Xj7q?~镮p~5e&`~ƓnOÕ~8<~R*9oX,vx>|1wX6|+83kg!vەM ۷Vh!Y %(s;,#!+9s} q$ddf^v.=mcu wtJ,,LEm , CΤ'JfxjH9.8phY$+G̈́l܌k|(#%gk5()= i9 =ګ4B+_ Dzyi9#tf L@i tK&3/[CH hI ZV(JUFAHM7uC M&ё srq J2UC45I喌 8UV:w#Ž%*s 4M@i, 6uԜ4jV0oQjɇ-35TRTzbZzEsQM$'"$dfD;&a )i'Ԥu+36kDE"(ߴ@ г,8:)J&I /ʊ q/$?yEIMI3K- *P<~#h8ECֳ4o*ˊ%&bQNlOREѐQΠHL5u&(F;uNY%ݺkJ2@t( U2'hGxпOA!L9X(L:v+.$&] ,``4SrsGWT#`@ń?S 8Oΰ0ڀp@ /0@p^`b&H0~>%ꐯi}ߤae?;|{_W(Xa~~g[ 8 AOڊu5;ޘMBh_L-;x #wPkq>ܴ1Vj4o}Cew]Nn}D/H(:[U͠f+iU%DSZoZgg 0ܘ-D!k2&s^8'鐯56G-p}]i` LjDjhNZ, $lw-hxe-1&Ŭx|ٴHO]fɣ1![D/ fƕC7qHޭm[cRd!71F V@ۚdڦԅS^j,wlhXy@ -}ˬBXC7utŭԵ xK~|1w?L!@gW׾>'pU驊B^ۭ7&,P$n"`[ LᵂO*i# PF: TemAU&6ZO8Uz(TU", XhQҸPZMە (Aqf1¥(1;ʣGČAC{̚Ƅ%(~9ni{qΓ$PD$hh*(rt)B@/!!&eriHZ# ]qJ"5^׎`4k[ }^V%*~BBL"XXgh'MzΝӊC͔B} +kJ'rroEYR  \Aq6c|y8dᦧp%M#D,X}9Wۖy=-ӯ%hl붕6n<4H0B 1 P2+GƘssRT mטU9e |bzBZTWܵI"33IOdb?O$H&`&j] H񬜝6֝*B*aOQ 1֧O$# .H\ .W,0{"W :D+ /dEIq!NĒ*Cc[*gDT}HW`we4YQ?a ӥeT,#s/Q]H&$n&A"1&&1B"D.*"qU)*%E^ S*w09^.B;yOJ%;'>ooUwF`|DZ.?ĮV9xwV#ȘO⑀/4/YI QBD퓖,e_V{oha0Lκ˳z):?dƟ@H+3YE:muBl\W92SI5վ%!H*yjj)\ʮX { Ѓ]*&p'AuȽ zt 8swn,|F?aV6є6_ج#(I\ꐋI(1N `36) MP6`н*&*Gi;d^`19֟J} }F ZZ|]}VDxuځԥL=4z|eebuq#w(?cڛ8Q1~谕`~p^ZM}h6E.yP5_ /D+dfu<=-6zg8QFLyZ2td= LO3iaGXcZ/YaFh2;(mDdgi'lF a raFtXdaF:<盷xBL#1ŦκU,#lM aMAji#>^j'\UN̿EyP'k>!\ r)›`:aM(6INi:}`|7foQiMu3ъ% Fy<#mKF#gwg2 wxlI2XFҴ;пj]0@aE^z7g74SO~가`WHg2)2i3Y~y:ݰeMI=y*ljYVn kr*q*EkrǮtEM鰲5vH; +r$,#(S#)4yys);iŇyq/ g}lt[N$p=ވ_N_=d 9Po9e2^GĿr71S+BJxc YQfOT`&'CZ>tG0_O7[M.0O~=b'^m2]%6υľ0:ɞҚ+s*a$`-q8OqO$+k3^|2?bN/dȩj\e#'kz{Yvϧ/ a[DLȚ9~$[O!Mn䓆7Q{D放u'b>`˿tnt_t:{X >E0s(!P6/AZFJc#8?ib_ 9Iʪ8VnSy yAd.Ok,W# ˞HH_~5pvVFd|Cx]bd {CPCglHoεɋ?+Ta2դ./ >˹,)p(f20< ?g{ELY#?"m.3چ?}MYbxo8a/y0 BͰv4|^+pS!T|F4|ف>R}a=S^Y9ŗh8蜣(r#+ .\r6/*8Lup-ͦw迳{1 gaϲ>H_@.RVF~لk<+)!A~haRf.Z'?^TuT@ :/ZQJSٟ9s ,4EslJ`z -DnΏhg#L(Z*{^NS|Iz/]  r}櫁|dgp=g<彧S}=cSY@\hHnwITv{wԸfK > LZe?%!_3ia0B'[iG&8<+  J!zx iDnyfF$p"-Q ;2AMT]k?PD ' ՞K ~^_54ChjJHYnc'’,~1yHTX$LKG: {w&y@ZMpTy0jѻ| S0kÆtǞ̄Q@4 >'N\Y˗ۣېТ MS0ܚ\q lfulAF0=wG4{=`>Z 1<mDŽh5:L}D|)eʙ\|HP`=a;5v$Wxӫ;g2Yvť?r?1͐>#Qt g:}G}1wfzC~0Nxir<Z>pCS4=Eg@r„ q6%ol!cH^s~u< F kj\Wp t^J$^5V#O\~XL-CḋZqM`=;|6"마ac٣Ϛ|40}#ED_sxΞFR^p0;Gʑ>\!8Sbhʋ\\ t jD8iFi2Q{͟RFϼoGt+θFe( L)E[y{p:WpELyf,~ת=V;@o?Q}Vz!6tז?vet& H!4@vR)c^)g2 X#8߸^aV0ǧٰ+ 8AZ^ woߡq6ye"ki&P 0lOK 8:;ZW ~@ Z}/?WXKy34s~ouԶgɞ /vh7 H[[s 4$ml?p;e6CE!2_7C ;ڜkcԠ|l>/"ʃ 6sƀhN>hD|M)aF9"U}Ɵ^>&sL=abxCHiV}g{x=r}TtUfY ;P,9Hm}8n~7"C=16gߠ-K<\cXd>xAzigM1;.a0mH(]b۸e & |a@;D!kN:f09\b$GRtzm#uw4w; 範{k|o77q;sfɮl`n`vE =&K?q` >)\(ӟQsLJXc2Rm&@=a7%Mps`Բ7NxJ}՟6)+MXџ$[ Ha ɜb:=Fd ,IY1I^BDe85<20bhJmiO"ȅ~bۊ4;g*tx`t IPiyk cO፴ ^klBA Th<]Tf&ہ6/ˠ {6 WI<<Ӗ^xt ![!`gCI0qALW=?X4?pdWigsiT)Dj eM6#6^-wޔ Go F}ϼv(L`yǞQ0/kĻV`l`:;!&MIc{>70톨t?ѧbϨ2 X0Z+˫ض1@*'/ |c Q<&oOQp$2 !?y x'^,;$u z4p.a)u S8rYlwT{7-v|(Ub'-ӏ8!f 4-ɉ^舎5A:uy*r#ԡ}_"k9#~ikgg4f}m2qʆVU|(8R@61sI`VIۥ#Uι1XM Hlf>sI5}v /'m_vOh x8#Dt'!_72BF8q/j'E! a:|q@%Erfr?T^Q/vO@Džn@u~qVåU⪀`gw.@ϑ.DɞRV;hzqȸ(s1- #*'N1KW}oD|00xU ,Zt 'Gan/#tx @Kc}OhHRQ84xZr GsdS|&=ğ~rL6=F lQ7GfG9wG°٠˯qT$.tIi%[:/':mxgftcdGlNoK۩zzA6\~k[ v! ,Q31X)`3Uπ(Tm[hkdG VaM q8U|JaUUI^jď= OPva, ͨi8LoVOvH##3:_9'W͑{).4'<3)G>1*@'J4}1 LB̶t0.W8RCHa'l<1f'`A@H1Ć0~`: B)i`*R@H>st?1J)۞)? a vit&}yP8n|'S6̛p:ȷS',Gm,]q11\3G199`pžJދaJhgh7IRq]w4 g|}$, ac#H 'f{Cɜ!}ZOw?S5"KˆDNc%\R6 %ڞ[B0 XCmW+Co t I\!` |h @\bE[bSh M`(nY7 Es G Hzv:"'`#m\jB}ϡo=`4ȱ|Ax_#!Fo|&#+" Leu/#_}$?o*a/LƊbHփȬ+:8~D> ZMC@[SEZ0}E<[]h Z2ڳb2I!c17QDs(C˹F* !%W1ٍl` 7I(1= f'jZkR-;:!1Y26b>tsϽM Uc"pNG8VfK`litĜ񧜭 8L0˱<4Yw:" L:9ՉfdCu w4Cp9gf\7'?~~Qל(qlnj!dRh{ |MYtg_J?s]ހ-wZ12_Q(z{t pJFRe$G)"5i9pN4z cTsc=&L?H tyhl 9OݛY럎-ivtKKU%n!:w;Z'M4'j`}f=>11XcN8yHW1z9#<_o>KcžgI>QG<ҟfL5 ޶5&n{(e"C6PøI.D]'>_w%G!mĴa:]8Vn7@H31h}EQd`y;/:.؊Htr9TLMo`T5/&dx Q4}8OW$kZ!9ͻ`!žlő+f.;-}n P']y+6n'3Fha>C:q4to% 2ozY͐5!u&^sƫ9lփ#{GOwf7]};lW!=cfd0+uڑRO4?tp~ƃc+̿ґ@$ǎa/P-z!.$'}vFe 洏 =; sl>|%>Գ閌yxh /P֜WO+م՛޸L"pݒSfZO7&t-B?!Yx ה'xBr/kdz9@{kShy+_h&N _"9&G Nqh,eL!@<]dzC87 ,}Vqd=lǻS"pŝ9A?cրNSڸ>3WTZFGχQ!j˷,5s&ԑyDgm00嵧t}% 1/=?$ޜ 9&+^fšQt![^& cE\a xؿ/9cZd?Y_`-Vԍj?v>}fnx(~b_sf1qG4u일@Z{`uJPtCMlPbqg}1 'N۬JpS|'/ratiH{,[Cn'>t6/{&TWn'b>rw"C%‘s) 2|>|u(~8Zn݈\"sҪ _Q%|/!s4GOzOchQ;x>{΁N4n~IM(hpƓA~7x a+y\2vA3NzhdKp+M (`p5;-icdprf6v ho8>ᯱ}^,Y\ hx&kk=A.Hecs R{ϛk銈|˟Cp0W3w>;G.I4k AzΠjϫ/ 8N}=QrCa'>ؙZA?g\ItOEfO5bR$"0CteWPw|d6O+>8]cɓ_)5.Jj yZAqǺvW< w)W>~N>,&=s>2Mt{0/CLsնgc%JLyN6W3_7g{~I艼`JT)0X~6$\wEm'M<',,E笏0ka&cwc#LƈYR#cGڣ'~vå7SgY|?Yb*Pt̑ģ4QbG,ܲQ5_Y*ѡ Z^w`+AwRZVGa aSumJce1~&OOڵ>pz̷ --> Nfy!?VY`Qm?S!+or(Ҙz>l|7=fbg4%id_J4>MݐqFV_7Sճ=OL|\. 7&-i$hs`G;Kd_HckjTxG wŅa?蠇:O1nXxMb|Mɒ\z~A4Gp}C7Pb@\d9,1U2g(Wq^M<\oZo[;/0wwR6VEOf%8 P ʌق?-9И CXO$8GËZk!>Dy?7g$z %4rܱvG!Xe{5A2zg.g1uӦj #~yڦAzuvXPbk0E]oFP?Ǥё8\dhԺzFZmeòi)*_˖< YedbtşTU)Ї٘?PV ZeHc;ֱ &pȝޒeIbOhGDQQQ'(GX_a6`b_Shv0Ð`.l ].DW)4ʼ0>3;^#a* mjT ˟]= S*δ& a-$bStDǘu4)_]Άn߃1>@KJ<̦mXV'U(3L|Ze^P1;`^PBѯ[FVr`jXiQW o;YBσm?d (Ijc7'*͏9 voiКˡP$Wo&0, 񰝘tj}T '@qO=s&5x`rCV#wXU Imz _ldu$SϼBaNb/'*fT Y0bɖq1\0أ+OVw9m!tٹ a‹/o3!,:8iD# o7Zdi./=UcDDI UME',d81R=\GX(4ָFx318nNk M\D凷0x1!7*4Pƍ=8`T5mֆpi2/ NꏂfZ؄mj~j%]/O'So{Y>OZ^sFoS lGx"8cR4hB-WpVkw%JCFJ)y+XQdG&(/#$)JzҴ}9-KZX!GbFX򾾾XR6 _2(KBJpOЗ 8jls |"LJy+_ a-xL'1gt.j᳗.]Hpټj fV%G`y-  \s`j;h(ߙ;#cPl::2z {v6jcΗgTJ/b+}v$\A6 v4-\o_waѷ];әmRަX$!Kx ɕP/_+iԦ'BvXm.>6sTEEn3Fvƣ¥&,hqP[?hs\gPH`~VA~a7cyUjr 9oB{(4aEEDȔQ‚`&"82qP(@Qۮ#hKVXC7[ao퍀YZwU6?c]5yשeY [YV$*UvKX"Em8 xϊ@j\I2%b>Q/E6~ٕb3!@^EK2,uV7L{u %r}3)'8'>TH.M1tHP6#ROA(I`ߌؗq2NO:s2BS55S7r?L)qx.Gx\J3-b΄ X#忸;||rtACj 3"鰔Ō&97^ՄDI@ R(' D}2dP'r"^E!=(N*X,)^Ij'|? (84gĤ_AEc DSuWzD[]ڇ6I,8:9ZU1e6`LbebZ s KQ@ p>ICɲ^Aƫ gҢLnE:Y.bsJz\ pfբ9BG ʅ8;XF0K`%@=k9hfxˆՆȻ*W*TN)QT i(5%n0ID'wA ai`DF5L-#Fb0,v~1k%˗ c~b2fD ؅Yœs/LU"/٧EQ<5gՌ8}: De bo/9Ay4B7 vzŻc4C<>'B8sJ߉HCy&? Ȱ8\5~)ʥ/ )fy'M<@Yg8 ;-Rj./m 47cJd]tԲڵ=ˮ2Nk]+.n9F-<֦>YnøT?l|p nY|"w?d S71?c/Mc tWw-Qy0 D) E #Eh+T1%XZ~b/ (#dRٶ?/F:wed c9I0l GX<۹ryKAba͑ mzc:ZCh#Dýp9\|yǔ;ຩG|;ToFV`}A5>RC':~ BROˣ<b.Gt>kc̋C)XޣBT#۳ѭTЌyC1W뎍˛|@-a)EQ&(:2ZN)e"Aʼù%C_m΢}gYXQa8 GgGfمkNWY=N{*]ljYl?H)^Z di`ɀ|/֫F*AV{O^ .& fu꯻(vc *oyC C1[u1H$I_KB0xeNj{NF@3̣&Q\pd#J)׉(OC;3i᫝,r2Fd$vMF#|DN#U$jkAb10н| _na3 g584_ <&_tkCF=RO((p?o;*. 'xw5ջ#zMbV Ua f}ms;7) GcǕ|J1ȻGЈO1.b6c"R/Lԡbc8ti6y>#lDggH{*04e^.Lc *1 [2ˤ6luY>;Z?~IҽMqٛDykG"m*58[G  {Q$7!64'dԦ aZb5FläIjH[7aǍsR/S, k|9bT^zgMXًڿZ9R}\BC[>ʱ;_[α_'d/,6\Pw14-k4I k"8] ?`Go01 Q /+Ta,Ug0cJɁa2xn13"ޗTna_WpQ3N`cnY,ޛtjc!,; YQ$ 9v_wWBmMĶ9DY. ֢ۓ?pG W- IShjR`$5=`)9ؑnN?}12m+`J(qu5$otk?~ڹ4|H 9Ƨ8Z".O?ޑ bPN]t@;`q` _ϾV5-$؅`^õRNq^-WolcG0\ڞjzYQVb:e¼6H*Ѯ [YfΛ)eA=su.%JXCSjRr(BöfkiG (A6:|iCS(BDmIO+jygŀWJ]2npJn 98${Y/Ef#r0۷} "'~e1e1{ث)ʥ]Nu !6y4 rac[kw<}]U>j0TJ&N&\D3$ |I<,}v?Vr^7bb(;Vul?w/^`DBŘw!S1Z`H+NRbŋV/˘c0d3f 4)o~ hQfSQFX"FnD\ˮHA/yR%W(-WZE ۰!*0mk{H2Zq:-QOZ:*>`)#TvJh1bH Ym =J}(@m˨{(-cۜt c4Yce< <ߑV(͋]yQ 03bbQ'رV A~{i)+P'DpS=h,;Ӱd/Ŋ7w&AQ~ s+&_a9q{nJKn%FˣsLlEgL!IA!#PiCaE'C$i&^bpqI"G[RZ~{<.K r˸,)OTٌn?sjenM,F3G9v')*R^陨"h)a@Aw祍E ˩uQRS%0BibTbz* qAJex("Q8xDp#;'A(UxXx]Lv˗n<؟4(Ѽ!#zM`%'=2}k-\P]yI]9NF3qfu3XRojL݋sA5 V!s*Nb@ihָ.o޾ӘNEu;\|8K2N~> ݼgd ߜw3'BmrHtp?@Vh+*ҧcl~FX(`xdXH%r _}N3XH3q^ H?{s7Ԗ̯KrzS({)Z*`2,CH[1.D &ScbA Ck"&yRn&%1/*hܑ6Ԏ+J ^;|T8Nt6Go!u䈵/)]$u\/eUmŎ3ZW{|Ggxc Zؘ,zݮcfRx݃$uMgJuF\$.ݫݧ;4bs ¶<)>xϥ7BaLͰ]˞8#ݢ=i}gو]Q_MsSUΫf+wVq֍aڸWЧרWAn ,B_K>m0Pd*26w!df1.ea0\'-KH^@G-(l$GX{h.vΛkh}.}w7\hMi0KU5555UTUP=qYYXV<B+Jd A%zKm`dQ3ЀiL܋5s툁$rϧ-.`ntnϢzxM@g/ 3r]ps̝s&j K{7 ݬ*~9F\-cë@Uo|l)pz@9Dt~:nsCiH>*b  {m۠ԣ憞.}$\ikԩU&aWpc}ؽEnǦla'DʼqTш=濗8trvPaȐ6WtGf;hrn\oJ7dI8Ӿ`$7+jZ=)Kv|ﶣp@@HǤm>W3)jȥP1gM:`!'ge'gfR ( "4'#RR7ĸR%/%ej_]'#nMvt$ޫ$a 2T0C 8aLATN0UZVਠ8(!װbo c$w dLJZ("$l2~VY{I0sN mUPeY [iS~(J\kc_LliJR#`a EGoAn{?}1IEPD!Qq7 殕tC?Eس`h<ͬs.Py5("Y3ߒs9aPX}`tN=IH^<7ŻF4"|RTr* " @Nor~՚u ʀ¨Aź+Wl%h,YPwksA|-1,el9 IQիZhB$GKSígP􉦀oc?lw8/2}//9Tfl;Eh}Wa m,ՖiٲlGRĉ)E>Lj-J~|"t 8vϑ=!꣹nsTy2XC2i_EHvzK̏G(aІI+PwR_Ǩ>"]*cyaIz5px?"-SIx.E^hK=_P4:SSR 66;'%`C>faó1)7Gx_a7+2nBC?ɤ/plC_[_꣥Xs ESs󝫷~q0Tb'c(AQqPpk3N6M2]Q(ڄbp0cŦ$X7,hs$bsq[YGwcaTu0D=np!Ja޾̣߽a'+#}*=?Om]̹uİ[IߗKUI aͿ HE$ 2 d>Vr^Rr,I.#wNҊ:rRأtzz_K?(~6)@<5pC?K?b>D~zÓi瘮˴6f0Y>_)sggDPڽmYʹw/nyȄ y~ݦz׵߃?1eTbM ^u|b:;>0b`#GOS|r /<rc@r8+>yNR i,}BN8ƯOkN?[lxQ܆@aW,Gzh|٫Iu k8SdWzr<8ad]Kq"kC5Cg,9<U~1CVc2<bh=֝U!ia`#*xc|3Y`s|osF?s+/ fg̝}_~r%`R,Rs735Ĉ+Cn=I_6j* *#(*-ep+kO1_WOS;" [`;CaC߻g_ANѲh}Cmy]ݘG 9 чٗD51Epȇ›&]2 zYpnYu2MB:/ӝިCSZn˴k򛟧(WQav~6,?`?E8NP4"ùꍩ ~qæ:G_'2ީFFr~p_+i)ݖ,BR !D$@+S pbu0bS A+:@ի\TSU%ISSUG| Dg" "?vomm;DCEz<@9 6RһYCA=otMÇYb"kCm73 <"yXv 0N\@ YIbxj,nhVP@~~9 4^ᯡ^#{$zwgwn r/;f!8 JR N@)?x(2gJ]L?H94q{q?$D#\DwB?(gcȜXֽ>V&V+Ii'$8,ွ@dŋ!ᔈpŃ-~9YW 6ݏH|Cw^CTB?57mG+fc%A 391(qx\^׉ "1s=G) tq:"XU299C"}\.?n;- ^,9Xe#68/ 󲲻(q4WʪtNu)c oSA}A,xČ{Қ 8AHM7f~0hh >ekl0 /j?.>Uرr|rkN4C_ڿxUmna@}a_C jC5(u7[x'g곭Y *-Gg[ҩLJ/>@^G\NnZv뙜}埣 Z Hx)Fcpf7?mȴuo܆-qhBzX(Yc?,; 48|άŲ|R #AɈMv^Z7( p3Yc8,1Ŋ?E/o1=޷p+ RHwR $$:PxP}EwwZ߲`>8ە9D-#MR3KC G&C /df9RS=) TTTE"pGruu̧aQ׫ å#`yx>eNlb1q%939av>!+t;xxN[K:Y:(vaPs99Ž~'xH0~L'ҰFÑ#) GM|(@CXF7y7*>Q*6,"P%SQpρ]0ͪA֩䈗7U! CFkgarĤ8V[M!QNFn`>$aRQ >lD<$-ͷa{GZ抁5:+Aٻ>hws|C5 2 - ՗;}o7{)d5f qųsp:^kdh'=dHlB:W-ꋆ@=}mΙ<>Cb^5>-\b_ǾϞ? Br mm%/A^0P$.OoB@ph aP A0qhf. a6+Uu,P?!#=TYM!FI7Xj1uEYPS⋅Spq.t u(SF.1U(z~Q偽{wx[B1ʹ݉kM ځa1 ܵLR!nz~8ۿd?.Ĕ'Ӄ>fM&w<.^^R \Br =)LL(jeI()G!dWԄ;N qb7?4%t1i0dE;-!ce ᓔԟ"{ǹ}X+QNIMYX$C6A!o6{8P{ =[sg Fk9yu8?WGMJ>GauU\ 9K8aJ-d&&6?ZaHw||*0ŀJ2j!ڋ7&u!"ưsfw\ x_ >sNACeo`XBSa;Z_?_9~odlu#bOf m׿3<~wQrwmMT4@TB|?pU^pY\X>7Ml;{p5Fi4 #s|!83ݛwTe\C.8Yo!ͱ!v5   }g䲹Q C[C">Fۣxԇ9}]6l x;' "դ bqrQ2@ ˦.^ q QjIڭQz3e[( 5q8tap6Ұ[l]ŧTd$v 4 C*Tւ44$d dYYD$VEa$8$dBnFDDB@Z*!օ4èTu thBBAt (j tЦB(H2A "2,HȄH"TI$wШ"ȁP #Ati@Fҁ :BI$F$P:h5 E-M! H0B HTjȲH$+ Rj h) H*)!%@?T2#"HHj2( I 0QQIBC."؋"!"|Z Z5I@j-HD-@]*$P IbD E1m DI*TY$I*b$VD dQT@IBA Biu@tցt&XTVFDIBD[AJ2#*##"ȨH]kIPZ !UK TH@Қ4h]h]IH@BHIh)KD D P@*#") UR2:҈.*E dO HCBCFB2"HRȡ$T0F@E!!BD9HA P *H2:Ԡ{8"!Yf#§v@PSxCreÆH;d~aP!T?Q^6̀;{8{΃^/WzWmt=|Oyg\}Ow<@q:CAnԆwi€ ՜Lgp͠v{aν9eHE >}]=Cӵ\`vCzuv#AjPi!_*J:"~'z?5ѹAH_5oau7w?pSs<;!!9a"}x87OT}YOa`,4gϏXsg̊qPB2 lkèC&9#P>O[kKRT%B|JBeizT Fh]`Q#!ŋFR!&E%BK>x_,1Z QϟsE(;>pM"Xei? =Q@ dcj@} AA+RxH~O[d!L?Ul?#Te|3֘(pGeơ`!zbwwߣIQ 5vlA8qrowTxR|tTC~^sK f%k(; ::,{K4U+[i\!Z]."c[+|1?v6Zs4z.&jS ˑ`= > 7:G +G~cO_SÀo|-aug k-1).)\C4cuM|^_q1sϝkMhoOyfU\sͷ{H`3=Nx2"+FӃcLM i<*R"J,/-O ׯ^/^bZVV{eWe [&"2J2ISAL)Of(qAڋ;HB?HmKn;ΡC5W\T;X@{0^ 56f{⬇?xȹ-CsX~lC_%h~xX0^=CQ'5oy80AsPfo\爇oΜx^[a4?k˞y%ˁHmv bCwvb׆yG tox2gd)~Gҳg1"b g7;<~A| vekzfX|)υ]ޛs:BN~TZȋD],\zWp|{WS-?<7yR[ݐlG޷_߲l7/o!S?Vfß:wŰ&Kw} !ħ5TA:1@ްEs,C47S棑2~cxgMqjcgr hjLEL={<ݭPs2ˎ /7W]3MTumrxC6;!AČ*o: G^D/HGA-Jr-NH|4{9jb< C;nhq6զ *ҖS@Y¨n8Ч֋>cGtifHef>L?ʷ!Dw]rٛ`B,0K8XYAg#L`PoF}ďDf/qd>|y(6p N%nl@v 6q#Lj8d8,`FeN @:d/@5y=/rhW33@؄D$h45頽0uv@j1d40f\zV,1`jXuz) l#47Amu ٢lծ݋{7|lvA omQ aX71 X@ Wٌ nC(hc!ΛCD/Aec0D96B+A#oL#aqoJj; jRYVx8[ 8u4Yxi>E3;LKQN}Y\!|NaҾ!DR!cStrAشM7:T٩ ă,&Lb:.>1֗g}\m zD ~k&]A/Ia4>RU~ nq_6¢:qs@m) JGEu}q :yq9k2.]y߲(fbM en4Pv;&7-j-4sp7a;98n BQK#sTLwEAO-fo|5uIΎHl/LknN:pqJpN'd:wh+R_ R1`xhKg%N/^`ƒ%L-<? 7XwgD:H@n7x>\x9`ܬ1i L"vrEa朢ʈngxJ9\h7 qo!si~Cݼ>NT l"Ì ,CFD({ikϿ!58q~e>duBCʄC?h ðoE 5ז7 ␿齙HbFgfGʌ u !;Ưdː& Ϙ.n;y[͛Bs|UB!K|ls3R(RKpqU:+뽤>Nq< qx3g>dKW }NE_i R&_ZtK>O NR䄀i1 )xqU" N C5BW{. @9t%AKKJ-( 1(Q*b0 ˰@p!AEh^PxɳCnrxݩJ?yOAT/h#XçԿ>!umC B6Lpp.vIgf'T'Ol[*+ Aq@~-vR0%DhUbuE`|Ɏ4*m<vY]#%φ1#?%^jZm4lL(˵42'қdMam:׍uC,<\ϲt70(Yk56XB &(ucat .XlO6k<<Vd† Ow&>qvrq_2nA940Bsؤ\;R JU*Ekգ/qmpWܐl-_vP>(w!f" bWŒs8w!XB#h ~lG=G՚Ə~TZ4 O4u!ڗLIPY ڡY$+VZ,,X tW:11)Qd> sJ*渮+43z jM'~ !bD  RsRk:%p$ugk;zLU mMUH\>Է hEZ5c?Av׺^W;mqȼ>`i& ٦i_$FO@m,qyxp#*#$,l&#RQ\xLE`PEXtd4_jtTgɛgXze !4EW&f*>D**[{R`kb4aP m|4ؐ]0g FW i6?^uLXcT Vf  c>1b1d͛6lgHMmft0?ױ4TKD_&fmdŪJrp.4קia)))~xǮN[1|_*狨A* ]rwC=mp(T>&Ш?&0┄81Y?4ΐb3? naF77g +sn*>1|q[,@m]Dr>!@kRvu8k zfuۃ pVŽ!l-(;~R[uhTWU6FH>ֻn;28痩S֫nE(ZB疆FB(/KJMxtT'ł{@aZB"EjT b9zkk!=NMyA؛&m GL)ۛIrNΆYWEǫ0ז/&10GJb fK=@RW d5ypDAJm^@%t# Yj ]=6@|PvHVj~z-}bbEyH!V$ح RLyMI `r?Rmz}U.Si~8c^뼸C\>&ab0^p4 IE.ž|3îY#ofo>h 1QыE\2RT Z,-ZZ \.AFFiqYX>~FnM].5?YW>, QBف'G8cL@ ~H%Ď2J#+su~ApҴ  nc(P:$bgL{ugmE ɜ_!H(-og cp~vdT3}R\w=DԬϡÏSoaڔJ a9eD)3 +zswOuK `&aA>ALA){ )b+';h=Iy=.QtǏf'.`AĔo<=U=#h~Bk袨@kpȏ?Ka;%SOi6zBMNej1PK<},,l^_G0p0ԝJ]K6PLC^r"#PDS393,_*"f ,/XvTN4$F (˿#;?'uw{3\:r˧N]9tӧ.:r˧N9tӧN:tӧN9tӧN\rӧN9tӗNt×N9t˧N:t×N]9t˧NtӧN]9tӧN:t˧N9tӗ.:t˧.:t黧Nrӧ.:t˧Np˧Nr˗N:tӧ.r˧N=9pɺɢQ ʡ V6#eF$c?-{|ߖINavYYߴ"_s5v̆y28ٸgU1OJTY 6s 6m%<-8V1wl ;Iiw52fPPUh[N%QZJa EIM;y'Iį7 I7AZt#I%&UE@pˮtC0WnG6w}OwL7|3R :p.R*eˇ-5laV,,݇L(ݗMܶsߥ|~~Oo~߾J;{>Rvl峖eu6e5tVKu19P"[;PytLgb8X-X{Or]kȲ+-^+Ph>eӫi:#I(`j66H|޾'Ecw,.La*do4R?ay c*T'FtO7p':nB)`J:8t @ROp卹t;7.ɼ~%QǰZ0J9BnRBŁDfJ%@߽kCl:ބ4DQK a}3\j6̭ 2:4ٓ9 cf7ҿ& 7,2-SքDy]kY"#A'($&~>x2-' _>9},1.x<eUk_Q z3N'2$U U QAـtRR8OHpB41FRzZ>6 xMoc+q uT#l:c1}z b{+ 7yL {G|VsXcr989"uÌ1ixv1(fYi' _DyA@P.t\72IX&\Y1bSvklqB SMO+-t'+CGߠMVQ/NYF2NmZ`KS|;շ[\o(Or~§@Πch .Z@3L8o>3 3ԊJD g%Xŋ! 44ICEݟ%/qco8T\-خb3 ZY6FgvF's<(B޻Nu:fL(|^eЏ0kW;S#{Al! AQΫZ 3LiW<$-N-4e-vh(y+;p(H`U~`>2apoe+lȭ;핫LˌekYkXy_naLn7Â߂qVRP@p"ϸwT=jϛYɧdBuF846 f/Wb; 5Ʃ/qheᢿrа- {1(GP*Z^?L+9 (jvn*gK @8dV"Bo=p8],-'F—Nq}0`4(Bb0#q*0uBFY̬E.-Vvϡ²bvam{0GvNyNDExn~,tkXCجn xsN2h>@hu*֏T*@=Vŀxv<G6Qg?L6j]sTH)]Ҙ-:\'c:BK*Z,`6"˔ @P/d<Qg \; b{s57ez5׬,*dhb<8uXLƍ_ gjRD2I w.}u4a涓"cH_&d1fC&|n-4g,6@YŚ(w fBS"]4Mz]uRo{[8Bd?>ЗLQ4LW͚V9A`zV.*mHB.yv֧eiP#^iLu0 1W+߿ [# jT\GwBaqT39]-ΉY?Fu#v ͷq &MY={Vݗ:+W`1 Z -xΦo6xЬ r|+r]!iMO{lpa˧m 4$"͇#> gHtŻ@~{En $p:_?6B۲#\GTzbۍQE(52a=)S;e`vpqp ʜajQ[ɔ8.V9mw^+Ktn2-|-`?G`3hhvf/nqD6Vm;N[X´^u5y+UId"7h3$J$W7cR,ǔs0'XpֽɁ* 2m 2 $rEs^F4}G?9M=9ҡ%EQ\^,! ¼} yNy^W!Xmݕ ? hDn=]=]R4;G( 7w656,lp߫SUp.nӷ~(p?gP)rKGd˛kRnƠFHىhYJvvW3Ź 맪RV\ =#d\2QOP{ r>=65`6vqR,Jip8!Iva߶;f価z)kÔM$wU~_bjlFP0V;HmӜH<սӵODz7l^Ñ V8S_ Sb$mnb٫n,{8! w%;jvi~nX>?%VհƤp 0Ȫ)k :ԅ1NS+J ѽ7R,# ~4 mݽLMl5fp#6/qcakBTTj%c|`r![ᴀ:R-%Ѱ!³m*d*>e  {Qij}c+dK LA7Eͧ˶\t揜 Tn! "_52Ѷ4}qc'} ͊UMO g4R >sZ\kzTvO0&=0 2ja$_l ']̎pA"9 2doª` `naA[Ͷlvllx Whdw|G{?}0W: ʅj34s*Э**jjjjJ*JҲo$yPټ㚁UYP _utLZj &5R)vU{Tkm,skS|-} SLք7t-ai=26!N)viXz=V1AEO675l/t2gE\ U4RQ^rƩ1޲9`BtPdXQM#6d!!,#,þ/Xgn\܍lYZ_lR1>Mp@waF*{Uc~PՓj:-Bl+⣳*\w@ƝPX_nKFy|{XxO DpȷW{.%;72?u~/O/SNy 9$/ H{،1O`b3r@3ƔX9O*omMop[|}~f7#w1ɨ$/˔f{xNN<%_ /-=Ty @Ǿ];|ߣEu0BeЋ {%Y鐖GⰊηQ5Z@@͊/eIꇏBttwNQ0_7 z( mm1~}x}[<1S 7\G'ı 9SЬt/n7 ]ȬGRHrG|vg`Z }q ~0YH6`(ƌYTҦE,,RVS׭_o?mʘtx]G!*xi!}yZHA@T4TTSZ &X-/j;^$`܏ixaKϑV+U9QQNZč*!osi+LŘxḴsl 59"A a;rBCȾz!8A}.Ē9=nJЅG#L`L8_;6A)wkIZЊɱb$댗p/B8v8n'7юbzDu!s/GLiیNSljkJ?bkG?@q}2"#f\ 2B5| 0CiێA1|MfgqDcbȷ2fh]+^[-'YyxG. K ' xL(OQDIM_,MVMFtSnήl3rB0hzC@$:+ֈlT\] >$S#B3Hu(۰?_؝H@* 2Dt LY>?N"C)C`{7X)7NhA095sɡMp#feNxP N͘_Ocg(<5"ٹ߬٭b/c>_Z|_Êj~_t ~GN~-ڝ$pC8@Oy̗Bl'}Ŭ}5Z+XP`m{#o0c;y|N?<- sz>%^D+IA24/(͛R4hSJ\4VL~hsS6"P߀Y?K-65J1~TW9EsY 'fq"%u3͏Ƿ錿kH<2*< r6 +bHbGڝi~<>aO9x_sOmTJq#y2QfqN;N:oP\Eu!/wu܅7?Bgg9k1~ئ|A<Ȼ4{F";f󐹀 lqMj(v,h"+ U6CB;F0]b&e$.i m3[B*o0"B e@01_G)}@Ƃ苍y\p) vPIL2B9X}RYz%Eo]d'$v ]ǟc(o T同H2HUu D@"1HmQ Dq U: .Z)xP hb*7DN"g+@C10D!P 7)`5 IS h EX` :VO8("?:^+/b_ v }^w.Ñ5š8y1a eE\ 0AɟS/k/3BS_DWsqSV7D |QN'SŊ?XlTwp`@O@O+{:HȐJ j Gwfa1:*8 D4.oBG"9 n~;ݠ]ai;Yho4 m)?7#"7K;H#%! R' 'ˏ:H02K$c պoWH烛ZD*pm rZNH5sYF𼳋m4lQ   lJo=YPU/ J*ʺcάh))Oߤ L~"& D(-zsTkZޓaEzJj~ U+GZ4qբL^"*"IB(,b !7 ;Y[NNKL+8|xͺ[z] 1 ,~_R:n6.?˾CU vPIݚ=F[Ո?S} *-nGqv\38ԸΓm ztnmٷO g@9gqM 88FؤM*ZjC,QwYo2Soʢw;;< -7/t:S*vK)qp^fP^X8scQ#h*& rL@HT1ApfDž1DOCn2I^8bm|m6RL>m p}I #D#CҀc]-+cE lO_brK1о!`I TCn]I1~cZtӲ~4!L?n( DOl"Z#7yEo,h8?)I@Ewd:?ϝ_7cnit\{#jj`AR:$7$HS:ƌժJy|NH'ޭb!YnRv 7x n A8no=d_8kIxn#bfK ;"\l8M ɆQX,d-JaK"9;8@j')s;rO?&Wn+SN칿#'NT2PQpDzw_Sq5Iovgoo2!eG<&}_0u'zE^]9C98$IQo}Կh;,/zWlm_GTG]Ud\;Q$}p.Egi e~,Bõ . oO{Vn#cI7 ?jFaW~9f!{7]~hI8W,'duBTk4j|20k* (d~+b z,0B_aˢ⸫LAh=WΡ6L[YH޻ϒ8nao@vl9FQ6QtttJ`V*85+_(oC2c.۔A{ 4o@Ze$_6;Vǃreəp3?~3N) c*I/{[,f~ {FuGrW dM&OL~ ;BGʃNpBs1W]X•Soj+PCb+?ݠzI7KxL_} WIJ.߲-{ߥMv+ƾi&!3vH֖L lq sKoW*{%<2 66fH`Q9bzT nņ;d5QKI*/KW}o'w¤MGGGGVR))iU'&8@V*+ {?8}a n2ȋ)gS L]l ŷC֞J1N|Ծѱ2 Ch +UQO[gvaQp!-oIbZ@G]:3T;CҨ4gz@T,M]!W{-X'V |i5BLQ/;y5ˍժ+3S~}`^,Ĉ $uZ~L77<9ik SpB֨ 1CJn3;?2U+#H}|W WXIjљ_S8Bjc&n IF] P&/z %Jjb^DhZ8Z../dy4=]iW| N0Ն}´nlh `(愭'=N[ߏk|?`׳ }jb"[Lmi5̭ B@ā@Ќ$ʺC,3H Lᑍ%:s*wx)|8an9_w֢[KyHHZ d("ՆJNe"=P x(PʂsM! &,,ȇ`%TӗcrUmK60ӯw<\xlLשMs~ ?HBAC'CBNE!GGHRK8jL5%a!P=!<{m;CsjCz +|) IйC3BW<>gK8sKhQĖ >mi9mO@,"ITBk+,Z%]Yq dHtVpNPdJgGz-82aNn(oo~F@.FfFy,ݒpP)xf|^::gZ?G0ElD/Z4[W7C27`N;1^!Q#UKd7eu]]SGץ$UBi *i-88-yzz |f. 7)P/+0\0^\wk^Eam1ZK.$bkJb抚, 0W%UUVW+dX*,llɲȓ-I =azq!8&[2O(Z1 鱏AI8@[a8!5{,e~h4q6"@ֺƿ]\|!f"&ȟ6gtH >ip\\͓L/OG_?|2>ۢ!ȿV74LbK i48]!ǶRSO V#~dGYݻrgPwɼW$&P h̶ }Ŕݹe֨ꔃi*y!пwMw^\d r ٽgcG‰m y\a?QA=DP@r'Rq^fܡpkfmnI w0=. ~屯#XK9ziC: 5Ś-hl0&q20aZjg#q*A(3[ϫ呴jaS Jki,]\xG C,)UԐs݊"~D|ޔ^HDF]ގ'!m,Ǘ3?&Uv =h":3g 3k9]a`0<֭I8m(7"c0N5*jy 2apʴlk3a#KyF12UkpTy%h?r2a>2v#&_m`Z]d^YN;A`pځrT -YD.&@L )\V)kb]O׃_n*ҋ ibh\(RM0ekT%gd77[+<3F8Ic.` -! H_N0hTAԦ*G:TMkɴ Vt )xZ|\X#%3!<2zG+ \QnGb#_׋d<)ֹx5T6NʠM&#2PG׈L3 (:a"o|MOC3CUuUP!*ٍyw^փC2zH4"|/WrG +JZlyGd>> $.ֵtMיccomMٳ }|t~*nviĂ9ߕ^-s!6nNjkf3:gN 3b_)\ls?Vwv/_E6B靖{ h ^AfGx<]\ pvk[_T|~߬0Kb*,Qw;Sl9u0:t%@xBCF~J ϗ82;l0;~/㡻wBA6H'2q0*)E% )_FC?P)Z DY$I1ccz].la>NV>XTE0E%Qzw=Q%ah9 _|]}K5t_ =%1 %D?d38PwXOq:tH^*> F͹9x0b'nF#w*=lA8/k\+卙-)s)g cr ˙??dB,¬ޅ`jY_9:3{#8ISȰ6ѩ1% #zk6K) @߃8,%aL& ` .GjiDN5d]7|ynh(k>ϋ& J%qd(b-CMm|iX.nܫ :L~EG6EQ kfvvWcmߕ$kqf,s, (lh*0ˈ:›זVp}(x7Z̆mpVt+wMG-=,Ԗ P)0 QVG`P/aX}Q@jFռq>t0@b8޸qwf"(Bpr$ ^.g< jpll,$Ŷf1;;5j'StY]K3ův?'[/ 6! ,Ny6[XE'kj(bWwX pg'rU\J$Cؒ=چ=m0J-tq|{96A/`ksG7; Ry>q'cv "%%)HbAH:RҨB('P):#HylQQ+n;,Xp^dKҔ8N&'zh1a/N8` }oN,k|f>V*|Gw4/^zsr,ؘJ15T~ e0BUj,I P,橠>xWsMׅ:u;"z휗JvtDPM]V^1ʃr:B}| GjPbemh34}TpzBN]{O[-%9K iE &+5p PMgclO+Ѭ7c])*AMknXeX&JN_Mb!vEk'? ;|άc=n3<|pn]m |Iks ŌdTXdVIMMѕ޼,* &uu__,0fȳ wQ8eؒFl&Cl1pCPG.WVP,dNJ( Xzn vFMs:Tgt_7Hm- G3uWh`6tQ6֦?Ƥsov܉~nhB_|X-{jzv?3}2;=qFag)yo>G^2Я1> 4nR>|kZt;{`xg~p`9b3[AYzch0# \C P>Q5i;,Frݏ>N 0Uznخy("YIH& LPX**T Z-\L. b,UM!)Uҭ@a#e". |dUF%8=>3t4p4^&'#q.7 #(TU#( M"-෦4]~sKyUFkן`/ 1&!*pNK‰?յ{ћ~LR-:߳vtCu#y5GS @ ,|uZ_0͆k~j՟ /PFˌSad'Og O~Li>4Ȧn H& cgItU0iM01雓M$h&vu$W6dGLAvO=o9pyuYF(PrA?ꛋ`j~հۋ_1/׫)-*4Vlẇlv/15;'T)QRz@ r}=zW0LUhP ]0c?F⶿*C>> zEY Y'0Bvt>F 1VFђ:B,j~U~=|9I%z+-\yt-m/ 5buTd( PAu.kKa>hƙ oZo..ʽG+&Qd~[O_|{kaJ;VzuJqDbFPְvv%YQQZU, Э/52zį"+$,HHImHh0{}dC)qJg#"ľQ.!65[JTQ gm~ ucrGd@5R0!}wD_BF5^7L :b׳N6(mJh¨}BxYG˪ `1ۖ@;S =pUS $RSV( L++Z EETꊶ V.fJ1ޘQT T* ^"UF }Yhd+_iVUmÁ D5@J5פ+HJn&YHqĿ_cAVG~i%(-}u Oj4UtֲaT Npi*k+՚&,ۼ%뎙aܨټa/ WW7e;> mrvsIR:{ʷ@aB7U(OF?6T}u-]J.qZ70'o6>GyXNbtճZfT-aL_|83iz0STSNUc֒E/T&T7S~p<y7zz{@U Iz#d[N7Q_R!]e>40:/d7V ~ٵ/MThVwu|.'7 50R7tɧ,)NT 0FBS^iSxųt\y*6xC@U BVH:<,FN8lhJXKktkun7G;E {ZUM߮qS8WKI'׃H]s w7hzUQJsuf9l^ U%\pܪ/*HxJ紱 =Cתw@{t5o,iN'kzQf ckd9 V Z+f[:8N qݴ HOp\oz! /s1#o--}Z\+ c1S' 4MF]4 5Y^D!¬hUiY\9¹Ȯ !,M (mVˊ6wyȱ#e,qYKG` !`0d0;kv^7rÇ;yJmU#XnWs&u\@II` ]F |fO/ICDA I{d?Wcf٭OIx)|3(_K]3E kܼ*P0ře`xjȪp̷Q>nZge+W MoeEmzx\m޲0'47ui{MY_?R#yUG ,Ԣ : d}11-n.jC9g8/c=r;xNZ΋_Zt;,hW3f6#H0~}A\ 7%I0m+=NmԆ9.1v+=q.Rbo s'CH밆ܔ[N:Kl6A^ctPY;Er~Zc1?ڔsy-kHA x8Ռ"zo6 T{UNщU#Mm8K%z&xfN-唸0x FiU|l ^:WE56ݭB. ̶Y ]RYx/&ر^QB14tWo[zp{ȈwٔNܬwmrϒo#}ݟ$ ިeZT"nƘk~ y- L!s̗h@Rk\* V%wz{`$O,jyKnzjת<\= xgRƑ7*J V"̷ nK>׳语D җÿyȄIQ8/p}:|1?BCűyY3Xp*QDHVa2 ׎u|^KOww'}sݺU`\Զ-K !a{:TS i\xxӲc3'BdNݴRw|?T*NA%v$ϠbWsRׇR_sQԲ>]ء,vLϗ_d<{ٸ$~%-#zҀ-30^苋ⲧh[Ld]C sl7Ep$~/xğ}>d4T1fhXMSPA@[Ro@E;ˀ\xrt'`*2*c(bz)Nwj +WFU03[RW:`$/4H$vIdvbb0&cz9ڹ=UJqdEbjkU1psthfQߋT/+b}H#T\ҫ"n3]y\4<7֚>4&O//?v6=kÞkQSuf:8o9RΝ2q RVtS(Er>  d+f3o[[bpʰzQҝcxQ nMg*7Pe?]I~*l cg ~j9n|<9/T^~p}PWafRāi,h q6p"g?k~{kjZ|~zu WYs#ɔ?Fc2 ; $ i)/6Kb\c9Au 4i5 wHr=eWCYlݛcq7ȋ,LlecߟSF=,>1_?͉ڇ%'fҭs+6[2pwJDxܞV8PHRyem]07aaٲ@˙ٯaDOZٺRŅݩrXܹFj$Ou|78"7Q$-<?}exP#sx(EzѾ!|"$ eV*ˎ򁨳fPA@yWȻ9N!xeu4k(c>o9Qc3'@O jLa5p[h>7 L/#gL;yEQ-^?:PpߍT{Nѳ3:~[3o5x_ ԰Ge׳"YD2c!M}ONe0G'~W{6qj[ٽ9 7?8|όSQY?XOOtFC |DSw!5='!`+¾J(рk4gH3\*ΎF'&ʧsal^ gm-Id㛰?sHK’k鎗]w 5uÙ*,dVf#]16lJ& o6mL> ZJEYhxǑ_dGQ=뇪&E4t\^~G޼ {7JRI7#Y)kHJ@ժ`@kZB5f%_ʻRizj9HyUb* _vL9 D|>e6Mb2pQ_D&*&VTRGN򕬂 0& l*0Hz8/rZbІbi@U%B0e8:ԠRh{Xʉq"&]LSѲ+*3kxRwR2iVJ]rވ5 j[eCWQI[v0jLDʿS@  ж9]Ix1S5Z8l(+. dz*J`)?2JnM}EuCZ*MDʴ40BJ..6xMB]yiN(+nm,IW+1br6Z^bV#$U)ّYmAjAWa*~J:$5q*Ϫ UYTO#KRWR~ &e[VX%'X=QHTP$dEij9xE]9Vq, JjMFY7yf RH&fVo0'D ,=3 *+hD%aUk u)GWPLA+S\HF\Q: 3! YYI8MO%UυCuD|6dG+"&C]%O@vRMDY** XoTh\ZVjPN緬E@0DXWA7sy-T]Ɍ̄hY3Fk5yŒl{1˨ء7BZo%÷暌Kw_֛K<3kLW0&JZ> (:EB+B1-}ԌJ!tQӠ*zz7Ve-͜Z s[ k5.\1('d.KB|Dm&KBcu.qbP$ģMF;|F](M ڂ1H|7ѳ"cު*y'{iX4æ?y[/˔kQۿNAŲ87QZwjK.׺kg`qD?3zRۄfILc)\WkMt})JN. ł*rjJ 1"/V) !Ē1G >oV5mi ޭ#i0+} rC"#\=פԱqdOd ?;._QtʋS:%p ٰU7ѣr]C Ix!y(9FvmaxLBva*v%fp0$ny9ܙr we;T?agAB֓1<|:iWNDk$k c8}Agwm/ٸp x19ӷ.Yi}MUǤsxKӆPo'ŸjL&^xP2?ژ@_МgyWj"DkWrЅ{EvN|[0;\%axy(eѪTRJpi4@ArLhl/ZףJƁĉe`#M][h$/+ B0k8N]#\dy^xge#1$v:2cdH jnB^1 tulR1H *'@ '9VquRk ºȱ~kg5Y$E$k&tE-oK*Rb~N;&GS^!v,l >0uu3asDv yMZ4hR2 pkmb{4|[!?eOr Ew)JE&PHR)lRQ?K𩨭_q\b߃'4EB'ixrX0, '; ]nf[okY$?8Xf*[]d{^8P;)STêib\~ +)KlO*G2zM..t-P+ʁ}]?/Nj^ yEEfI݄H''9NXIjB})EIo. {r2Ωș(Zw$0 -ҮfG 1 4;I,_oa4mwo44} *Tbf~C bLwixvRÜ̺AtعD$`W3mw6u̳syu*w^B1o(S><] `I0#S A1J&( `+8Maط9*Rn4&9|Msc}+$n{`%|IO<>۱tZ4 2`4rITK8[􏛏LϗI3& W f. >Bw'݋_yVmpV]kԯem&[ٛU 5-MTF7Pl]/^:n^Jض8๛G̡='珿zti`Vk'[zJ] FQ JQ0dML"ʉPR)ÊU uwdy@HgMG*hb j{,S- M Ep0Чo(-OI7 50mYQX=86 {ڗ7ن,-:OOr\S;mp"7wM wp QX;Wn%8 0xO5i0>~ft.݇RYnsM+c^W0pį{[ѥ=6'Z{Lmx#,=HCU4 x3+v*! ~choL:ӵ Ta(P5/ά`\1co# \t阅̅!ŒvL_XܽM D[a@Bax+qQ t[фx.7,3vA{(ˆ`[%:Up?V%578NՌg۫"X+o"Q5_z{TbΎ簔 w8\M7%dU G{dh Bc+@pޑɾ>A8wB-8#U@D(^&Όbx=xT2-PՠQrx܍[=Qv b+ٱue.»Ja!&f~Mg*hy 6;jAh(VX+WVFի"n jիˡ rAkM}[o7e[Ȥ !(/L6ڈ[[hoWQl x%櫒|UWm1ٌ{WӶދs.>\-{܈vEܱJ[v`5Z0HLbwO;U rD9AĴҊ70)vܶ*[ҜEܛzLVӽGmwf@ѯ)ؼnSj? =HCl*j7(^ԚʁM 6 R0=ߕCy_O{>vqC՟q.<hZ SS voWksqcZէ6n,sg`wR()B9lFH=lHfC&L`3!p1܃96/1I]TQ Ό9!q3&  km( nDv\؁ "ysb%ϸϒaOG_[=w]2#X+G8D ROY%c 7\ IJɪsĵM1wB'TwyCf)\9FQ2~u&`.#[:o P>| ewz;wmK*Dgi:.KqwAeC.}>,)o@Z ֞xx?Xbdfc+ym; QdLܑ1N4idL8 % $ÊKkĸ_be)? (^m hj-86Ya|;aI\q UъnJ /yQnE "L q ET6%!Pe`T.)W_Y7*QvNg6a)ߋ๼ uNíOp܎~g)+2mNDD?U0YvgJudͶ =1] 2OndYt꺶5le&ߜOzE7[s 8壎 yd:>Xpnp$ms˸X=sLN ԞvlOWĄP|}~9FPДt@F I1+E3PRE-y8ImO(f?/-IH,{Qr/$N] ~/#Vi8Չ꧞еf-i M]_SU> 䗌?.TGi0`جĵ俔X݉ H0SeSș' <&=so43ry*Ov=_QCR;qϭ> ;gxyhN!4HI X-nSۺnU=옷\E)kUԨS~Oq0-c"^.r byY8e0-FIpEev>ѽJ2I`VG:bxHvܬG~v)$U=4mXS0U55UU!UU^U֕׺]]^HW+(͚CA`^)1 ) q(1n5 :;ăس|Qg-ggWggg8[Mۻtvݻw0ܻD VGQiS5MӍ[GDR6\X3Y  melL.<.u-~5'{89I$(Avߩ Ui…Eؠߴ󾘸qn1oJz+Lgwxqc5ڹuM Ȋd AO*a#/áb@RZSO;*bg:칢b*4 4pPjƱr|*7 .F <'y\g񌅿Qȕ#‚=2:x<T<׮ծ9rzAS"di EQjV'Qh[ W4YR@ԳH\m`Uu!MI?x[ vTm"Q=rZv?yz^/X5[ =AOec͋7pɫqv4|e|#^݊ಹ2pM^ X[{[TI0ʕC!9=m+B)JSVWueaYYZW5iωJE`l+tLhOGR{YGOPИ&PܔE }+q~cY:^J]8ÝڱsWLh]ҍ"D4݋a cr.ћP616c 1f|` -,+ ,ܾpY]\1NJ6Xsly$\ ejgZOgu?!mȒa4iHqx$-aۿ;:o SAbZm$iB87b|.]LR|Fon\}0'6>Ob3q-w897uuyfRBhT 2 0^f1 L` NIa弩{cf0| Lj}n%"x]$ @,dpݕ_Qu|K^Hď ųgT|y)mE?xn\*悉 _UX42ܿd|Enυfݿs:QIx#:x2) 4b5$ؑ36U3$lzw@","zÖzz K~~,C(h8"F\&`zq>ɸ y ۛIRtKJZ`L;vCy]хO@+*4iu jMly_Y8Z3/\a(5>-%d./v>=a^mBB6(|Ku0)n=u3uvýۼ+ pSù΅gU*7/m2 8Ͷ#&wq`Ǘ=H=uzĘ>"5쵊{0ƭ3>OUep=ZLD[~_FQ^␡ɘ<`o"{%2QKsd OV(K儼$e0J_V=Er,Nn~=TY&B-V\ֱ.Fo*KT<]U _QOTTTTe)VeXDOV0n!]<M)FB.̴lPwZ)qG0la ;b0^ikyt+V̽_&ʌ*ha<{ܕ 1诊W61`OM% x&<|9[ Ž3ȆQra=L⃻n:O[ )gtk ^bVL H PTدqg:ZTR@zr2eԶ(nvˆ`'c(~[S)>pTRz!1 %cFNxu}Y.ew) ^vzWHuJ-!kVj.?F,Yѕ8vZNT A**/EEEH`(⾤] `FdӼp`s덽]g ?z[zq'Tis=sw iGSQxiI"tBIn$S?a F1i4{=7F?!tǜQh1E74Om ؑG +\f_7倹>3y`<h2._޶_'Oݫa?)iz^~|P )@(VR5fU[96h׼h~2i {ւcz.jΦB]m{Ql :^ji0 ;Z+l@-e-*r &R'NZ)RT*pbKqs :VX)Uøj,g>5-@/ ]f Z;φp[8XoO|4UDO j3ߟ+QXoa3VC 0%kUDy`|]#~_]P<\ǫr4 /q1Kvzgaajߣ+K?qdO>#CNfAɌyn H/厧<@r eF#baB 52ehf4];M1})w=YV^Yu?Ká,  D#1ͭ8Ԧ)Jzx*JO ,̛f_J0'Ïl֔=ٳ p?|qfWa'C1ʣ"}=m*8csZs)1g.e#:qҊq@UbGhH[Dg\WÆV٢w5&zɡNϩ~ &FR>lq8[/ ~=n8d=%N~M-`x/w 2k5{0Jl[@TpvJ[#uC'3y||N5f7L'ݯF\̬xn \+W" .pPb/^/bO08FD BBBþzrĥD:A%cSL[,l]\ݐ,!@-F\}ћ.v |F,w_ ]?0X{ wʩLf_&2;*)tj(-XDzD:*HR)RQ DhcB G Bq{@A "7 >b(}|z8qddw׻E98l=3Kg :aZ,ϋD[>'!RzB5aW fzqnuT1*"55$tunA4 m.FEjQΤO}OD_' f$:.'dc1O`-P SAv)̚Lَc2do)GbLnV"#Ցr1HF֝ HP_U>p,?W6tqKEd>#V]_NG3:0! ȷ Tv\븼dMb(- [ "^Fl u $_j+::ߠmް"GyiX$|6X- c%8öm "*ܖeh^},~jF :EF+Q!]x*2sK=6#lv@Si@@hFd!9 AOœ'l Y08uE[ Vc{DbHT7Lp:dQ777'%t|4!@MDu =#Ow[ڵFLP8qЇAxqxvlXv=#Њ/ !Ыu$  KpC`V;t}>r3_ &4˩p(&f T<=Jw(rf3/gc@u ee. ܥ^0Q1Y'"|i-v؎b,6s\5wh0{{YNWNu9;gn¥%Oz_ȳKi1" pTxUbo Yg 2Mm97.:~y_-Yn+4(f yybbbt89𚜥t' 򌡡d`RZZTMz;G1 JIV>c;^zB5qûSy0UFEG֗abհtĹVkF >S,-$Tm8>˹1ܸUӗSG GWdcLXm^n?󧢖oxelc98 ܳ7K>ӳ1e.Gs%&׺W|Ǎ\ەnj!Fa ?Εٯ_~^ ^2lp[j07wBsP| X_?uOJ^ sU#r_2` TZN!T*x ճAb!xޅr{+k1LfDc$E#ov8Hz#"~W( !kSDP>v_"1>Lk>^MGC_Li?}fJjW Pe+ﹷ o_5I~"raEqèujkb6ָ ;s~$E e2zMuٷMV68@ .bry{JV7_C@Vhա<J7X+L0[)rД3-&O{) rttvQ@±뢁nC&1tP pC8U8e ` nL~@]g=x՚_' INPJJG*~J@_B-VX\,[0_7wJ]b/mKAB"tHۄh[\q)_79[TW"E9|Ţ}]2s;"G 6tB_+"$h u,4`TG{jjPDr܂G[1kg(J(z-0 [guGpߕa./C~pqtZ:MC~64$19(9v5}/Rl9;KϾCˊ $NX&9ĵ@_-b}SΘ$^4%rDߑM`AW4njW1s6_6dI[@?L{sJO#vKj(/ .qOH`=#G?YB;Bؠ%9cl"> a Lž؉q__uj2R= 85M`1链JYGި;0!PTUЬ[͜/z?mmh,3* VA)5_bͱf9 Asȍ!P2KOWjIF+SPl5]M `:xW%z䔞qSIz}\l/jBp}] g|xWj™WUrߛ3+w6]|L~\k731|A.)IjfS̳, >nYV˙S@ɕ1I@Qk Gi2^GL tJ9q /?AJ;=̩/QZ`#VXNoGM1i&c23@ ÅC3pO%?5,Wa1-]lyY6.<]B)uӊbWWUǜ.0??j,{F21}ڀ>-wj,PjJD l Ra@x@[co<%xRkFJ by͗Of3&TۈH8t)@HT:;֯f] Lၢ0c9jtʑp'ǿsl}TԚQΩneFFy(ПEAH5ڭ3JLmF$kã=CWp6qb(I|,]kAu!5A]J"-M,0:jg.?왇FzWOA='d-Ml!k!`af23%:Y0fj5pry?ب"O>D=4\N3(F _8b-r<бI~"A|".lR /^[cs2('rH%!6,x9W_(䴺 bPHk`iϗD RPӺtz@ + 1E}U>1]]*yW-wbP3+/OFMqsܟr#4_mܵ$f&p#HqZT כ!%-JA*Dz+N[-%,b°Jv QGv撕p,"u&# HQZ\< XL&L*  A>(T*+ )@, YLqZ ||oG -mkZ;'(T5"oňC8}x?߫Mw d] /}&ѾT6UKX[)X{wJ{,:A~x0VY.:u\/JDLa$!z&IVGq=_A |J9^\i:bkZPx5,*r,L3yB|!MGL7wV!FS!F>QڹJzb)~Pf0ǧ {-'53uh+dEpXq#Zez/9ǔL{s1yAbӃ|eBY.էje0XJ 0~Ps՝|T)]@P4<:A~iY˙~#Jm")ŒVTIS*f{KE2:3_WV}t daN2M_j #t^xS B+-?UeuI}G&x^݉ HrQīl6:Pcػ]VwlWDUXK}]ف5PsIXL$]#AT0P*A4|~Û1Q^ʆ z IFh,V7'C^o ;-/'N8Uo|U}YF+#rO&2lHEZ(Vb-[ױ(wL>X'\}^ߞ4 -x\-X_Zey`/@Aqt:IJk-?۔pXk,NY $ 0贏\5UK`*wӌ?oА5jXf9߬AxDT``=%7$=ev/gĊlְ%W ΚS[`<k%ws7śg6W_֘Iφ`d I[յ"ԭ" ^_[>+m-!#E3lwЊ 0CjXCS Plir"g[r#CwՊ*m4*$L$rv% U:pRJZboYXhxK?(+%} u|9}xgP:Ưj &}݆鯾x+k` c-UL8`V`JBDӏ@(6 f9*mN2y0BSǦ]&TQLO&TOP&XU 0˗{֐i0a*gRR,3HwU:y5EM L,+Op+2kUp -y7!:~jv-sX:bPh&3o[O\R*HYcd}wd+Boi ~Lӹ8/uƼIF[bB;H%8e_v᎐` =hߎ?pRPs!ӷUa~w5u&B~8KgSuf^b$׎>֙1o,qHXPuSYgR^qQu)Ġ8WQۗ$X E/N D9b{^>jAdvjj;3v021,G`CnUyfFT^c4IʨեgOeC>GeT4Ʃ%ҕݎH8o G40]"%1csKi @$T/fӍGkl?~GbF>}?Iw4yE wnj}vћj\a/*ʫJ/ 0?&8Q%̛/b&9~ߎ{켅݋R?(h,ݕ&-u=[S8Θr?TǶ;_9T(Kn{".$`;QA9mL1T$DOExIt7&@]St~?)A0A;P%2>}=HNNn?CHcu\Ux FBd/jEkφ`l^/3 S iSM(sm?bS9;dmFZs՞w[x9UʚZƞyπcO-s}_k/5cTAw8ıws )]I6b$ڛabk[ũz/Bh] @*/(U*uJ?pT(cWmnJV㉣B]Ғ4似w#&0q%12;L̷5556QِZ->i'WщbL#j3]ĺsFԿnQ/z$c*q@b[>6_o@@N$P,^V1^?K1&G;%~[61e A+:'>nWW$4Eޠ|v mFz `80P*Gų rITML}%w̜&5L9,tR'bU<3i_f}x,]Qʴm_=i/)3C5DM2w'`Iℌ!'SP&% 2ģØ@Gѭ 2o; l(YXY걃\Cep4 VMxg%4~Ugz2(E~YH4R`omO(Sc]tWI{[F:2b_ev$Ay rlEȫ6t/pP^k ƒT!x^tʙBz1w^(ݵة{as 鮻OK|ݗ|ooPݗ4%}_$+ ҟ3Wz9`cm~s3 -u=CqIь69QQ17Sut"DgAߎmSX/~KhM׮O9dUXZEWPI{  3g͠tr#zh҇{eVM 괎Aڤ(q͠wT*dwg 2"\G?VY4H%EnM Qj⩦ VnPH#, s%B0w㿦 BK˹vkkJQ(NX:dSqd DG8ds^M%JJf5ugEc4{o^/Pe|nvr@B :w]LYݏ a!=}N}|ݰ%=VE} \3ڇvw<"c?kF|g 惟 99tbBd)ioJ*, BXh=(hX[×e_#5WckPc s)`b@H-U큗&G !S "܋ 79]dx|y< 6 * B|c:|n, ^Xc~p}E!F|@5ua ]83xqƁIs"ߐ÷EK65B :~'urp Ll'_V@ZI?#gԢ3U;ۈ|}3Yֈ z ,qs81Wbղe``*Ԋ@?Yy .76 -k @~C5sq Hf巁3o`{mQjp)F/nFp̯>ZRMEiT*:'Q ͋[< FBC!x[K\am-w&GU \( \ʂ`:\3m Z}u|=v~?_uaXcbdu ۔ >'&^ppΖ-v'Mѫf9s#d1/0-Z jtCSḄ>ΈV&OIq#p as #)=&鄴L!g[_W/pC1][;w*Nbᮂc;\Њ^-}ݚM[D~TCd3G5~y=5AU3'ʞ|BYtҡ(kENTDm&Bm;ކkQ{o9at: `b43 ?[W")'M!41hȣJv)6w^eb~#jŖ{} oq2᫧N:w aFޮs"HؔCon\\K91!tHlxjX|Dg6Lrn9gmK4/QwH~0BT pL@hroaZ R+6ƃ˽V֥NjzTWQ\>JqxʹȷI*^/AnczSbMsP[9_ehfu[@;Cvh:TUKl%=rv1V0' c (BGAUy]DY bh|2R^iSӧR(+U {}۞9hT$c7ڝm4p[/3Qڃuv3džQO+e +,/aYˍI;ZhK[1YLjJbD]S'W<4mN?}&Y4s۟|4jgZI;IHq jIڒyQBWW:+XXb |])\d Xr6^^Q 2FoXŠ*s ljBzԎ4˼37`HNީ$p T Bp*#qt{J>2wMLtXP>ˢ\1mn:cVntk.jO^> S s%4߼r `ʃQk U?Xl'^tz9j9$zVEˣF.Dʓ! Y^^^h&\fh )b5p7rwsoy$fo)o"S&/g¾AvKipn N3Ѿ%]i8|#`|jŻ?lSOB~dYc=?/63چ)0P[H*ӠX:oT O [45#VUS:vؽ>|7r*ԮBCi*^_sy/}`;2E YJ҄_uO*5OkPrI!|lxH0j 4ͬ XԧGP_wTBj:n2⣨b{˓w]FFPT'LO`M"G J͐ϳ}z//>zk =;+cnWʲ&el_)hی Lm ߥM.V{Ћ;ej/ !c^J::q)SɛӉ ϐʿllMN/4_Nc_̶MΩ:eʡ=c"GqfZz/:%@wUjl7";"v˱qF+>s;9]w3UGw̌tr*?|;] $-ࣂ";=סp햤S/.ߗa`(= _{%gYhzJWg(!" ~A ϬģjjU&*ت˝2^xMZcqE*|j&Ǝ8R;6B!rҜq Qz>~Q[WJ`<A [e!.B9F HeBBJZ\BE шŋ"ZohAphq~M3{[ Fߴ. |*wiv!y lm%mzE/ >J _~"kBZ6/f\Lbm؍w:с,2:(փj;||xxl$5N`%G/bO(3nw C^"9w7lR<ظ<-,6nNXl|]AMneV$>r?KZ߃u" =;RTUښU y[[[[ye\WW߽9IO[9SXxm^Fcy;&qh}uI0!x %Lz\(7;9h,fZh{%'m_{dbgO^gMN gPUt"sQL%JLA@q4&)&"IB+I+_l%c M;>Umk:kx j0m#'>hY]&?YDmZ(ZbT^aNo8˥s0FoWSb{ 6h:cfvj(Zє9\?c圵6\+OŀFS_ =V+U*f+ò? Hc6 `f4οx}^wL%}D=^絙^R[4vBɋ{uA͛i]X^~wӣB icCҥ@Vps >.YZ¿:F1rEMqJcv4!qH=em tSkiXYYL L9&']g~}*???@Ps4@6b9œ,=t-#Tj i+YJ׮24~61>u9T LդdFL}ɞԗL7K\ʼn"] .4bEK[:]%rH<TR};c:]6Hs~Aʹo+~U|L0C"# KS>\<2V>tIG&yC#d;弎"aU&j=-g1.}sϫBps6[yS+|핺(J"p(`6-f]mf//#3G L2@$5H;gF*p:wA1U`ώP5F%_r3]Pt;AA+b2!mHƀ~~HqҜ4ǹxBjm8R ҈q,"r|?+/,ƽR»xg4ٗf'Xs5㴺+W)Qud3Pς+u(hKAy6$c0€,Ǎ^? rNngS~o[{yl'޳3d,6Wd.l:E:^g/XmSًBavVv-:F&/_d:qP+K ! +1a]]`W_cccc1 %CF×Pk>?J!I^!GN I а{aHnGjM"(gX;YTx`/lzʌc.Xx iۊ ƋՋ?|ka{VIB IFbH̄'õG[xFU -{F?  $H#PQmVoBPzz Gq66_ +U穙qvHљ]OPe'%n\m鹩{w'rt{d8>|_#etj

^cH0#O!\|[ͣbj4+ֈv$Onțt9C[y:VA͏ 7YLDdPDK p;q-\"kg&p̌%n)gR"%53+!k8F:Ls*Pyoܮؤl|ygǕ#xkNI<7G.6uYRA:dM;5XJd, '|`.ļ"v@h!X8n;BsӀhl:B@cq!Yt*؋3etq˻. l1L~_5Ie_ {/=0T^أjָ/@Ĺ:)īi«+Į,\E:r3(geR Ha?C`ba RH"`C4mz^&13itgN:tCP'?|-n3+i A䖈[tԬ_F4?>$lGԒ X䮟ѫ="\ ]BCA-Y]*G&o.( UaNwzQ;zAA+r{ v&a%]cʮA=y::f>do㽳 KM?8p(<v{1)Lb;4hUӁ4wR}km6|D nuőB1~UADA^V+Jo1A,R2TB&j6jBOՐZ4މ j{UV:_IIJR"pR'bu])\F[[bŦ/b1dMf\iB*;"p|arD7 qz1>`}bek]ϦQƮ *gRz*38>۰{g3x ¢Gײ|(6cu9 >891qO('8 cz fHR=ցjiR;*>qF!<]-ȓ4$6d=((HG œO\,(EAޛ_VPR|V9ϗP!TFLqoX\_2q4[UEX!K}474\20 ӈ|30f33{PZ*( *T [ ˘ Q'Hc(p QOc ީ 2UFP*5"dz:0.}L9\sPB~ie'*0d"2RsTw-S×zԳ4DS'2%_8LG>œ/[(#2gVƀ >WmS'Slo1K~rn0 u V9 F^~DQR:o @<-S}'cx0`HÜ洵.{P~ lddM28p@MiH Oe"~ml Z3vn֡}3F)8Ki.7-8L7y\v/@&)Td EHUb0b1w9gp0%1-dS9MA_M%%]yLcd6< X\;MI꼲2g8<,xXAؐoV'^ -}6#s3R_ioʣ*dA-Z"52,' J,SѤ"$\[oqlqH=Cj0ۼ(R}^8a 77Wc7u+fzy[>0V%]IFtG-R;Vi 4-(uye~)ԭGmՏ#ql0 U!o?΅ubWw| F+ |RZ`[eñʕ ҂;׸7h8`j/AoSRevo3|WBjyaB ޯn.{r'aze5l%&u} 1(^kmT( P(t}澺 GOo9om.vdn:7su1̬ = 皽e͎%۝.E:绺nk֛ۅvtֵnwKr2tmr]j饭ww{ofnznG.umsiNwt.yu퓛'n]rrnv:3[77tîuܻ[vnnrooev:3sfwm-99בܻNw.[G;:6vaݷwf[GKͮNqѐѕhr۹mj]nYsn3wr.mg-;m7ks1wN[]OrfrYq:kwn[9r9یsԨM2`L#&L0L02hh04ɦ&& ɣ2`F`PJ24dLL 4ib0L&2b2hd24jm4b14dɄƒ(bhL&di##F#LhLHjM&d4M54h54df44 M 4螄SPF(#t_7fB@Iul{Nޠ;1=y^+o9&丝̪"e 9|rդsƾT c[Eq8Q8<}{݇@~`aDU%QJok &XqLԑ28*~+]1w?{; dkʉG\m_Y~2{2ՔOE%Z|8ˎeޞ!Uo`RMޥ\r=[N~~7_N4jgRMwݢ?< UsApvk8ndoлZCȭ9nF9 ] *TYȂ_P3_84-#`ܯLy73қ$|xLI^/uUGib[5[!:&#>8mnf#ߪ2[oݚ]>4&/￷ma!YJTM<^':L  gC``G[n ,z[~'P +-F^Mе~h5#CgA׳jP]7Oxi+;zW8z m Q5-˼$U~L%;Y! 7c;kx/4!uFrBv%vyBv=%cWUă߆ a_ L:֟AI,WC&zcE JwuЉV^r)^n4,MyF BL}uPJ@5B1Xlٹчm]!Ch=]]B.QPGn(2\ߏ.S`xų/݄t+ouPxָOYzlW•sqLFnw'A|L: ))K޸7* ȠHm[D^} >rHJY@^JreIΈyoHkʏX 0(}/eT}I){m"?\XI]W$fӆC~+} hێu+j; "{n63%knng?Ͼ|-y7—1O D/,F=Rgrٮ7MYg;>n!|PB#˴hmAzu$y!}{bo 6kŸhź7l ue\s΅QsSRJ!hU!IwntnclM}s6>EM /+TW =?-YQZo]`AWE:FWPt2nCg"_X`a'=G¶ w槊?=CK9XG_tMYʏt \k1=[ 8? (6GwJ )sXj{E' ~ݭ`gڢ^ѱgcoo5]g6%ݗM$~Λ3~7>vǂ}n):x.6y<],}mˋ 釣~*{*=\Ezix'yW ^$T 0q3O <qiڱ ЏT/X wRݗ*jȿHoݸj,ik>eBDBn L]m+5m_{g19 _e]ѯ=L3,^TQҘvOhḅ:xl) ޝo|&c5g똸:B6QU_dު* M𖴫Uvo̴Hʞjw.0]4+o~mQ)LE4],=R)|mG+-4Ffc,Gl/5ߜ j_-.0vCK++e'kマ i{?!1//M;Ee>-ɲ/~N'7?oAY m:m{MEI5ZQp`aiQ*l<=(tN*Ìr4itI/_إ#$#R@WXS᎙w'ᔲn& _b< ^9| xbv8مK/G2Em$NBY u-ww{71b92i9fzP=ʸt_a*<H`'7Ѿ}~,Kq=ٴ} 馝~ykҒ7+ tDwzۿ|QQ ƪ9s'f4fW19>_q{ϣ3x)/wƓ\-Ik/‥Aޚ;n`׬eAL#Fs/><,aIc,ơ/b44_t;5UM|M^(}mU퓅~ς>t !sJ F qF#yV@O'؏<r򽢥MzTޭZ#X=۔= /j8U_4D'ugEYє,<oȗO/{I4"+6GqۜP uQTgYφtEEQ~PP3$"Ptc6CϢIC]*__u*Db&wCGqoyyA/Sv8[xwgbKHxdYf NsɨNuyM7T0ff̓-Hܯo_W$ҷS(`B;s>]tBtٌ/-b^Kφ|=o}~l;=h ]ϯWcƏ rSRyTGۋHx4<޳inn83Uuh(ɗrf]񳶾bÎmC\^I$b4.<aNj8Lo~ &@q،ڍSXؑ*Ɵx=d|su^-k RGդcV#kT@wMcLж.?mβ{/Ed1o?pfxΪ <{.g4{St AO%v`T`? ]wsvEb+Sϔݨ|J`3Vۏ\n6q^W#]4j#BT O7 Q [7"UDV4)4O 5ӭ/bGɢ|[=UhMd{8<ޣJ_i5˥6joF06NLwqN]3U)Qn9G`zռZo~u4],e3I~NQ)\ж9SloQ6 ޖTI݁#;" b<#ʑ_lmK9goH+!:h=/ kCYoRFZa>tzLtʿ-TZUzIԜfY9#G. -&[WRKW6Ae풣AgBZ2-#.5]L^ 9 '%sC'5|lQ]p__eZ{k2~U0sEIۧ3lnn=cgJ@ &"wR8?oqV瑾{8 զR35PλS 8\UOrIxN%PSb7DԨ&CJ%' m7liL,|ukcJG<Gp&:ѓ"0܄#o_TSr 2~-6_˧[#3Wv/ȡ-|K,oi9]Lw8geEI8Xix&sGoEt,If`b&Md7;±cD+*uNݗ{i+{nc|ur=VD>c݃e~/~6?w#?NDzRXlw. ŕLf7:R*6^[_ 7T.]2ch~0LJ̍dRǖRdsk;7D"F!qcD{H]#]1494jYT9.V8kx̦z;yQc ys$X~3a{DZop~ڮ~Pl3ޏvmeplGq=>Ҕ>j@gF8*m~~ BѴC# Q2 ؃-gq[LD7pKE%lć -қ&.lʬ] fewfІF s}\6џм6_?f BATTelGjZnGyn\}hMhgΏO1*mR;dd̉!Ȕbfs|~n蟽4|T'`E_ Ŭ./2rM:ͦ͡'MCQP/0}atɄɽ;ԇ)'щ3?J;wojQq*xܼR _H`wΰݾ"bcNs'" D@DJy@m[ƀ|EB3auϨgt|*~o2}~|nf35u{Zz!_׌R;nd\+?80=t\O۵m&.l"a~W88oTsS/IEzv[DN",s.{s֝|XОm" T 8K4/<`^uoB[gd١lpQrԐX.^m3;{=4 7VuǟF#L\ ܄̒k7 O<{3ny0n;e.^ɇ0%ȭ8}|pX3GӫKppPK8UH0`gyryD۬yXj՜n{Z5}FZ/r|I.mثk2b&w|UOw:Jm^tVckNB,)r:{B(-WLTMK O?rtN:?8 fm2yT2ts%ԛ./)aGUb- Sp}~uwbeؽj9.v(L,'[;_} .d#v։.|Ls_r}5OPأ)lxqp\ÂflRPXNߦtj& 1q+$,;ie`Lw2τLjH,q00D 1:aŻ)?[e n1;o>LJH܋g];hزǑ^7afܭn;Qr[?wŞd;wM~mNdI?*i@fP=mWԃLB\>}%e[|*+ 7PR.G`m\AG/VLI;Fv(u`dMj˱,(Aa2(^BGTx:˞'\a1)qss,n!5޿hd@ySjb lO8]ǹFNrBe/VwϣC\jWؔW>b>@bŒ*Ok;-o=ysDžU tur|ޯTKԛZ?=1 [?I$l]Nsc/1W9l0>wP/Bܜ;kEe?vӭ7>hwb*Q'WOg3hkԧNr\u#z'|$n/䊺^l7ْ{,V|/my,ԛS[FI9a۳g~K٫#fڙ$ =B=W{9YhaJ[>qǨɍttEѩĈ.yeE4޿=o'M,љhk &5zad}c!|\ن LvX_g@nROV6%~ߕ X\JNhҫCI!BDQy~z7*D8`6V덍p;NS}&)7^_%zCt;NF'ws\{kξ.y2w00`{k[mO>VÉ /Su"-Aiޑqrw7s/MC,= ח㲒vƒ+o5֚vu/C{\3yO*-Yr|dR%7בͯ۸l%`ug$xķb&qaUdV3w.ig`i5ͷW2Fu9^GѸh33,vKCI?F禗7=V fd==W*#56eob 8#οZct|q$x eK{I慅`cq찃=}}hc _NGq~\֒X°(;| sf L)cl} oC?Nk3 {@e):xa̷?-xй|9Aqл_Q,[w.^?xC ڟ6c<0LYRA?C 4WWoEFxIe紶/P~\x?g }!0AފWtlw(g$qi瘸xjCmה8v-&}^]_,lW:Ȭ>_ij _R+7)n z: !ϳF_I;{F1ه_GxDKVss/&o?s~@MP)3ox¥a):wm-Ho$,BZ;9Vw(03Z ݫ*oW^Oh^j";c7DZ إ6{ v1 ܃wެ{X= .`' 3-mvmhor%a<^9F]zkn3X$҅ \? ]v׼k1OBsm$&m_ݸ+v]ߨ [׹Hix5dLï?ˇ#Kbs<r+CRa>0~{9;k7ܝ8=L $ ~0+?$ Cf r)ɿ-.}: OysH4݈|WLC:Zf9y`IBٔvfqp]`jN=cƨB2Տe1zOeN߁)*dٽw͎Ƥ y>&LLh¾2yfw]N󴕡^(Adxz;o>tGEߏߛy&9>$?amG ikJ* >wxʄ"&0*`?||Bm.w^01/C% kb CKpp9W2vo jEdO \|lj}ߋ(_ż%NcOnX-+LFz57\H: `%EiFe ŚapG#ݾn).ņ{]]rEX_vs`n~b;ވv0f@fmCctwi7 m*._j%IMƵ977r?&i᧜ѽg`/qH1+IOrş*cwV"AVMESڷ.>UD3]c-eӗh]ٜriYY1C{N\̌raư<([W\X UDW1\[E6YFD0}uLnqQT+㖙!BIc~IE:#8˿0g.\PwVZ4#2OϜ˂&ҬDŤA |.CD40Un 7BZmӊs)'/MO͊=5 06l _=H]AVZMNbm{.HyjL>ײJ(/dt`:tt%Z"B0v"g\v5}R$) u7`1Xo !O]J!:X\v69qSfzhb{w}TVMV3Z<7)LU/B.ɨ bbHF4̈˴Xi}ti,yVuo;*2.tzhr%gF[Gd:ΐگGʭ*zGCɎ|,R0hB&ruG?!efH;~]*``hp (+اB[β#1A?p'{[H 4ݜʧ}~:Ė[}6.Кzί7tiNLf?mTI{8FTEti@};1KQB 4$<)0?0~%8"x&ƖB޼IOI)ۃIRhۇ -&oU@q,Яz\ {JS>at<>{R!]6=_9 QNwO[HΆO33pyagǎ;K >ݟc3Y+8.h a(j:^&2Y I/ U>g>Ti6ڥ"{Q+Ws̵CP.k2+)x|6,p*1%^k_̹f]{(groSxGgޮ/s^W}nsYtM:=漢dd9rGޛMfmQ飙~wbQgL :iNxM.qwm5r;ntxDa{ׇ6Or}ﵹ)+,fzdswL ,À{;2py֪skMUf3o^ro]fv䚙N!,峽_aC[VܵU{k}}~Ӆ$08m+ws}>;gsGͷ'uÙY㦉%W{ʞL}[ڿLi)IE,$Y~kW9>Ʒk/Ѽ+⦹³gեI]fr[{&YrOyY(sy*^p' 0J9:w|7|{|{=ws[sfVlG*YbtM%i.ܜ{{0nW{sT\|pæ,Nrg^hƉ}:}V/3;NwL:YI.z ÿ/`J* "|r2jڙF$hXB}$kB|Mu`vE?QF@2F +C)ـBC8=4Dy@P]n{!%䑅膶meҔ$B$kT#R j PAv ވȵ HnJT-OU~WdCU DBBTR #h2""%#QVQoD 0_]Z%qQ-ÊеL(P T j( $FP /ˆ"8%E@BDRDI"  ph!z DM5R-DQ 1*,T +HG"#A($D]!l[@Ljb0AFD"BB E #^N8Ĥ @ &ɀ5~j tQ$IŅ@Aĥmmn)m!00#.,gI@d$YEDF܂A` 5Y82Y܊!&_f&pp]џ6OԵ2@ ! KR(3*!XQITJ[B# H "@E)( (#uA* RBFTb!Ea@!1aX@?adS!&bԄ$$*ݬĢ12$ `PO%bF YL4MQ0h0( ȏDtEG H.Uq# gD 6$`$ Ţ`UbL,1 $g&[z`&AJHH"$2H"H#H<@'uƛI# !BLN$J#Gz`B)1Z2I F@]C*D# "hb$ &#DDQTT` NT8WJPjTlk$ L ;>v݇ C CHP٠;FIБ Q"LTD$ (BH!!HKQˢ"!E5[gm];CЌ!!QDEaj%P?$%$ HH}A}IbB;+1bVHV $+B""0b`?P`rAp(#6JKWrM$$^ɑ1(F0*  EBrE`E`  F# % HB!D)$! 3"#p"! "#aCxH%Q^DZ F B).%T`D 8%!錨'7q('u#:ĦHBjHB! @L" ,  !"$ $ ȃ# H B )  0*H*H2($ , HH" ) ȨHH !"! 2*2(H(Hȋ "*ȂB 22,""H2H! "ȃ" @ $PI AYId EdABEd$IEI@$$ID dDd@BAdBDF@I$dDBAIdD$F  Aa$UdII DD$E$@! $AQBI IYdAIFAI FDD@FAM(#yV῭wUr;J+NAa/Ӡ,8 {NgnD61@UϷnT=/:7|DGq8pnp7' ` =auټ8yC> !=x}r"}FT(NZGN)!:LiJ Vʔkӎfvà-է%{hȍBחwt|WꔗF2DGACi@ٌ NDp,w{S{UV>[|}jy[dI1)K`ٕb-ZYj[ۏoiVҦWir)Zd~/XBgI]x0<͢reO8bBb o'czWAž"^1;`Wɮ$0NNg-NTxm}^4c* ҬZKwR9fN'6ㆿ&A/*DS2?:tVȳˢ56*CWyX0Ե7_ѭlNj°frk<((J.%_Z*8^5)v$ItKm!tAwsB>B[O 7]x˄w6w: {(KC%B@I4^T>0 A$\AAw$d#˯֌<|8)бGQ lSNП\ TySk dɍX}k '}=nrs::btF=+=zlI _nr߃6(VW(ޣ.O y3D&U8 UxU!RbeKq[^W=%, Mb\_菗td=áJTǶik=b#@YD[S R<76>4^ }d`2<`$?o,l2p&LL7eB߻8|&t9Xݏhak9v~c4YxNf)He$`1闣|˳)W}b/E 5a=YitB Т lMzڗoYx|[W!B +Y>HX Η $ e9 |>D=ퟚ=}{#;\<z = *4AN:Y&$J)@` :E9eKD 6>{TE::Xhǎ\& ? }'}붟 [m\Hv8D-VC~hI,22bK8$2}o_1/#K #GwZ"?RMcvK,V/ @p!>|ak\̘ ΰYQf^q\ځl=d-zd$tAS4D> i±R0g7ڟBԈ5 9x_9IFR|37K(+ ِ'Y)7ZBiMpZA{7׎d$ а3ޡ0Q5HAmQceLλ}s]l:ΗZVuUel~%tQQi =r _.Ϲxژz9HxA*2Eqif wO?!u?Ppʟ6̱Ca_2h\uM^VXd~ (t`'h7VV<1&,^ZnCllZUAHO3]uUuRώIcÑ2a/g+0f-37*fV93(0}Wsړ3Ջ2 4 bRIT? HEkPi\W^Pɸj8[Hs[/x=#>w4q}15 dOp#Md]"z|YlKa.̧qq2.U7&Y쀧N\š.uekTKjȋ#CIA`{->(t(bQ֞j 3%\~nnO^XpG 9vln+.wN$9{B[K0JYICrQ7=X>_Sm<񋳆(ҧ $~!ɜT ,}~͟bp焇* EjkB_q;{ .r,,"Ы.^"ZUL,nIafJjo%?vE鮹MG]PgjXf~j֤G((@̛Hta3hC1l%#>G[ɟ?ZFq3* \7oM~T)֤̀H8ٌ_]մB8=#{[|Dd^s{ ^h UfL4##zȣ7H$0_5/=[S_O)-'hjJ ؿ3,d.\lQp`6&sC3| L whӧM۶lӧP#  R^&sW?PϘ0?!W|2gOHcY1w;L!یzCS>~o0nGWIKbFF\PE٘;?dC@󮅁D+.|dσj26k.gwW1XsFb|s,֢ qEMAgSz8PGON6mC|UHP?a@4 N!6\JupdYA]_FQsUI;˹⺍7#Gvi?>v>$TD W+_W4ۧI4p 𻿄T^)r𒏳DKJ85ۨ'&be$&&g%&@ w@_^sGbad81.Gp[.f?@kYpɰD" A C>v$9) 9+x.%I! mgjĈRU2kƏx! e7N=CtO ɞ+32XVx xGo":LE0"_Lb,Eŝ@X Ҩt}Lx`J=rB 5Ι벥zlu; cwZRɕ) u&r (AAa 0GZǬmCQ73|)l? `p>`q08bdbg?lზ>tjh# s/h)Ji_d"N*xȥC_n8. )!<Z)ėzܯTЇq "gQ)+;&9O}#}}kql>O/:-z %5Gd_{LY3:<åhc=K;g*g-UI[UPN}O'BB~5SeiTr>^9[4rRNY)~ 7wZ's^zJ0s"@N,%`0(o`*Z( +x 8 {y yۿ26vm,`)^h<|+ >0_=87k'`@v /1`0`?XH  \G%qJF ^b&oiNLʨ%n6јgkXVyjEll\X\\_V./ބzVOZ{<8xx} ,,,{l||||t.@A]Z >t}B}M`a;~TEQ?|YO0SP{w>٬[SrF-IkrmZ.]gӋ0@ً(I@ISJ׷﷏1;=P6C5!/]y ٍᦩE0pnO1ย£sQؤ(̨ۨۨli\z=lUدf%&J 2IGGc&*#hpR٬k4ݢ\Q-Y{=i"g~CR? \*:‡7V3+$"){e nQӻx澵H_PKv}=_t~2ַO6>+Ak!_ğ30)rV线Vyswyf]j}+ܮa~v;Bz2~eWJOnY;>-V1Z^_"(}[Iեh,X;DdWx,SYJ\*o*pemU`w^qY/-ݫKt/?2и? cԘ˙͙{:?%ϞW=Q|K'?qO7*.Է*{obCRǨqn!eZMn_Rs9߯}v.G,̇U~<=?:ҷvwPfĨ8LyS‹/g>źR}\CҪ4߸A'اn| bOY;VnX,S_}@b=wL~pϏ9:hl\Bvߔnpu}tyBZIP԰5Oʨ/\h NNSy4xfFC )b `?FiuNԞqĝԺurU)dׁG-vIq2ڏ FݷS+H/cx 0?¼̅pS;@Ƞ AIհg|[R@=Ә"ɼXdU-UNyo.L`8zu 0P|- c$፳2n%Nŵpm7fNkm&۱ y=Q~z_k逈 SI)3N"{FS"_&ѹgu/Rm˓Ws)\o$*CMewCS=8JکUb ,afY\+_(&yj>*Sjz#7xlYk7gͥsx7"`,a`ՌPanRꃲy{]?c+02\]\-{ӓb;cXDpEbY m $#RnKTѰK|H DSh驜Oܜ;;>g0Bl{vӇ1%7A:#!/z。fɛƓ$!,x(8}jB2`NPluFI.8^3Ӷn\8q 8X"[Ʉv|S̚GS+SlkJ4E)kd6-'؝u.( ֍܃32Ѿ$RԨ[1(PccO0mY۫/(G /\ͩj2~mL=-P& dzkx6o|ˠ9,jőIK% DǷ#qH_KN0$}K'ԈB 8YN2Ǯ!Lၜ>à.nw5ƌ4l[* pFe3b@vwH7NA5/a W Y=EԷts":_|>3/!lA<;T5A!@ONwo޸_K ӾQy9tkXdG5[88.eiYw5rǃvB@MT\δVH8=ox<gd|s/~RD&S (#wݽӀ?rKV nT8=1fJ娂.p_,Ҋj'  LmOdX*Q찌ĢE$(m2M,KeG-&孭[s /#~/Kvji3 na8ueq7qҿ va'yێovu'#WwCW&J#Wvz40|Fq85%jօ|:N1}2dy$%y9,:u"~R7@#-u&"TQavpvxBoŃъF.XUۖfkV,t"~ojUa7zhT9&b8߅ˏ!ص)`61ٻn3<VWtB?<|r-ZL?[Lꑜ ~w$12Hz<qJs1x&mT\7@x. D/2$264'Na8eP c^ҏƚ+Ю'NVci\4[!( ̎A#X/[Xc$ ֵ^:nIQU=b3KK@ $ GjU/Hnlt|6q<.& ުQwF;(X,pT;8>e@Q1Ò`wP w5=ξ넔Ōy̧(-(1ظTiJӞ6똊VtTTP&r;bwĠP >i"?cpytqv#n,O#~Ϟ%рQ>KW<88Za=&NWWoa!f1UjB4ZY}8)kMe2Nfl.xc/Kҧz랈2:1#VT *ɽUh+~UQ0xXT. Oߣtz/J"'w#ȮtjnSa8lLfKs|^!0$/+S^^iQ^c~yr*`ԥsU1,o4qw:0 ;!{A 6ɚ*=.Ykx"xPV%Pfl?>ZVn&t*mTIqpL J/0O JEK=(aK h *tuW!^h0:}8Z!彵|j8JH5Evuz?H(ֈ{'Po$uh:ȶNgOҕ@D>fzvl>+/ gW!Hv#}zӖ_'Mޝ!ىmc`e~ i *"y$=2@şW)J :3m{4Bb܏ nWEJ)pz*-1^?uNtLEpl6+oQq z=~a?=zH2rk>҉¿cYYEۘk6P(tSn◚la+绣[Iۥ ri 71[qkc|K@՗!m\k+8t9Ty_ꛡSFk~*{FVC@ hluǮbF&-*ĽTşp$tk]K*iQ/Q:y(!!{lfu o|r0>s*īϲ+aE__ A`R(1MlKB@,aKKx*rZօt/3R̨WWR+2fh*[ĩ ;\z_*UQ: #`W6ԏ jVF nxJKOg!\] s4&r([4Z܏]_؜hSui-C]jgh!SaH8-“B*/]E/8WMD1[ n'-򯠪;}sE*[DR0hHEm1uO:Ǵ| doq=&Ψޜ%E*,2F3@ ϩ`M*ਈQa 'pW7,ۗWϱy=DUOd?ޑ䵟EpN~h1m%NM#>,#2j+BW37EHaϦT_l.B}ZDK @wzP¬IW/{` C&L ٜ{JHBRf&-g ^0Øy^K˔+8=8ELcҀfTĮZBອ=Ը11T$[EBt[PJLꈂnA1=PG$<:EkSr }1CUƐJ{ |Q}` D ֒{07jE^Y6YNTא;$k'RZMh`QS6zjySL /'fŦ_d@UrU{1뤞7Y`1^_@:(vs2-D%F [T̪SUExEgҨ_uyٜxrCVpj²UYW#O e(:\!Ȳ Ez+Z6kYkՈT~?M6W U$xDQ2&F^.HzhkRC]>nOlk-O3>ܑ _r0wvc!iJt(#弸t+>INphR+ L>& XLIF=Sչx=_>()d+kes|`sn*)7-7| {8⌝e@Ih}tqefAWhGLP5zmE@퇬3R6zP#(,~c?(a#u<=<#)˫!cY&2ڪ궨Ox׼.Q8KC;Tl}q# `] GUAL}Uef;Sd(a eT>pthۉu0%'#1j[kGRr2įm3k^uaУk9dirV9=![_EXX>]hs~ ]]Z~eIV*~Kt$E|O't`f(^oDDAGkF3Ehc+bKI* R:w9TÞ/] [ 곐L΀pͰ9x_0fx@o,em, 'B!"%ě)hIrжn`Č/ŕ}|b;ְ Ok(+cn=}e@\r`E:B8V()L *~C*l+ip[t\~REPǔFY@* =@6JKxZbVɅ]aɎ]:=kٮ6'PhV "3(\Cɗf@HdSVs.SvrULt*8'pKE &JS_aid°*Jii,orWTT.䐣9[,e;r)+UA{ДvZ*5xRةɦ^,UٟmeM{o͐uX6 \ ,WM\٢HYCiND%ɛ).kC]N-XG4ŅJ-=tJ,r YYb? " PTjYI 1Nfݼ+J]L)(\ } |QB=/#ž W[4X%Ɖ#@/@pޮF֤0KvӴ*}Rl*p6N`A#sS&fρf.]"*X] LKd_5mIr Oj8_Y\XG: ApE-Яk_X™kPUQ5~CRoUKi oOt&½iv9׎gToNժ_^|G1dY?Wbʘ%>ˤo6jt|BH@j8 %ʷlI93z^m1cl[L+ rΪA]Jbw*.RN'$Z?-eb@2b\Fg |ѣ0Ոe?mX%cxlt5mitzjZ\̚no9&f h5-s%4#}pjb:{%% e= GuuN഻* RLe=rD%V]?+شJ%P ppB[ pUtpyAq6e&ҀLB0R 0g)r4RSl4-=Sd^2⒩7 ~jy GOU ~j<  .ԙJ&+VQnSd bL8Mȏb}L_ 48X&4JӖG׈qZb'*S?އn %C!jD!vxR$?(( OgK?m~ ԟexT!Ʀy72WPi|#g 9r{.,7WYey__^ȱ,KK,B(Jд 7K)p L=ܝQmf!ќ|DϚP\<i ykPr^Ȏ* 4}TX\$d6 KJPw0(f ^b+(/ԡPLf*B/ףA rP31fy X =+fLM7Fc*5iqVMo Jսf}P2*[|w z bn2*K0XuY4;cOf[I^ăjzꎬϯ(C?W-;k\%ث9X1ҬuP^- ѮJI5H~Al~-ClLeqJ 1IK\el@P( G2{pxg12T9p.H@eM 5w~_~Њ4HTh,J:b!#Bȯ /X HIJ!Oihѽl K#g򯊢Zus_4ӧZtKt_BZrTR)YnyLZeQJi@$`3eS I6Xhd.\; O ;4d L wٟhlL\'4xnf:h C9XFߡp+RdCS0>ċZ߳Zr_$>QãUX_{XkZrk*epʖW] ?9KeuG~SA/[DH=:P_`dΩ2 * A JwVಢdb4ū?R'J1^6^bة&l qĥɷ9|<\ >}ۢy뀴 ZB)lj_;XN&EBCC{*l󐺋&De"C=Ztԅ$i|"j,SJNJaQ+SG.jt"j ӟPАݡҾ:[?4jx5ÚΊQ!Q_D޸:ዾا3HN"p!XxHlLZ1y6x/ٌqc l PgU*X#?9l 4fU<EX͟9=10udviěI1e>y:V;WB+@20yFª_=qNR |)a*ڠ:aJ 5t1,PW+Ukh냍; >4qFuW],h${e<~ڎN_t#|ckwsZ~8 qY .D`:#^c" XW8Тf"-fc:Ɓ-Ͻpf:]03 R]"*M<Ǧ_VX_ApynLt|O3ϻN@C=d>bP{fA˂aF͓)jF8g ˶?y7qéyIWDs&FlT39vOa=@̗Fp ?\Vl*6m:\h b%R$x- {q?PהAwa,14Gn0fXqA*Psʯ,#,Z"DH+0}St=\Ot7d|P d{]fW$YVe0YY#` saP5 ~4^]jί7вURͪezda|S Bt%@U!(;j>m.x^AM r77 lZ;'zc =45 v'wqѝ-ZQfSDXBbYz? ՛@џHuwȢ2@E Q3í ~tS9Yڸt&t!|()ȌV g@q!<GS9v.g d5c~v٨-W]Fk-Fe&"]ZdbNwwoGPG҂9z]<~h|g=~}>kD5BN+WwGT_8~PÂh'Q<PR.#R97S[ܡNO0@a\n -ߙVf1s8K-ogF' 00uId_Э%M`"# eejYږ߾#>AbryFȌcUm:x5%\8iDZ3?]y8\28u~I  p풚F*ú>Q)#P4ذ,Xjg67d%#wsY?͛q.FPCiY:WP:J0X)R')n.jɨmt W-l>Zr{-ϛ5W8sd7w`?Bvm8_P k%$!0#$+,0J̌$" D" $""Hȃ AA?HȂ 0 ")#P$"DHF>a!Ҧ$ B G~!@" DyDB2 "l " $ 0h$ 0FDA " 02cfg^š3'CwŇYp>GsC6nNDS(T^4wLkIySߚyA@ =aVv2;+X?&˒gXUZ?"x6v?fַn9-_:chpwr_| KpS>nB,=/ExJR4JЖ*#yҪ[ EHxf?5V>AVaR/ќU/NP|]rM\ev`*`T\OH+C9q˒+K,\`e㭵R.6JSA\4!2F\' fL#m9Q*f>Kָg~Cd9m]o]a~o(ͺj-2MoMȯ&i_2EZ1n.m"[[ C6]i bK 9jzlg|PmQQXR #;F|a:l|^4>abh_}0&@~%tys v;@ +$"!9%wh?P# ȗi2( ]ʱh&/Tzc!:lYҔ-]wwFYKEB ɜEof-P~˄,Ox5߬\_i|h"p?;}t-]3vkqv3T̎>};sG2J1zn|EWĶsK8jVc{MZrQ 4MNB.Nux @b ZՎJkF4t)(a[E'ˠE,Ye+b{eu*> eVM6ZNGwPIEֱSLƿMCL3S<[2- aPRu]#lWed,Bഴ. {|CԣV7FfvkU([ҩŖ\'"n*ʜx$՞+Уo0@+iU:}gPp ftPR‡t.7ɖ':̊#V13}y~l} (_tެyJL@/P된K: g E=|i ]5[nܹ+9XY'¹ AqU5M(KQ1 !)5*rv-ƯEvThɺp>+ !#8(:tSǘ8L{o.4{+?:| u$miNL&MZS0' #:35\,mj0 FA?(9>+^{|m ݡA(wf0Ν6 =^##2ml*Yml%%7㩲̣˕ߞ` osPg>>3+a11`B(XP3`ͱFg"7Z锧QM'1d ijthl(Iɒ94?]!xf6WEꑩ6O ]ݣ d"H!xH8Dw86yx:Je6U_N_mEKrq|h\YG?ky )Ԥ^7TRH.%$xAZ,9Nl4uתf`be@FjjQ5xS_GP!cTz<|,ޫj7 Qɦ;2J)?%i?DП.}MUFX3~>"u/*a}=U|GhG嶜'dk I (Cdʯf>=6CEb`xI pCmJ۳LyJJ[# N=6J0ݴ3S'jh2L{^׭͠t<賥[AEDvh)#M#{}jy@ ȝj^:mj*y/չ}YΨ#,.7sTXjM.ygjFq_Q%jO`5{(MrG F ӄ)=i鉊JxюGCjL趌 h \E,ặd#xd GUxwaFՈbCW :c/oP@u-D.5G('"AG`PTp@DD)PR1!EN 3^?3gsg<hAAܽ`|p[js-pfUna Aqض،eew 2 |HiWelЩJ?9P=4.ұpQhc֢kTRG) o.~|ĩ.G~\~IB#e\s5p.{V]tzv[ 4Ӻ \~|AAXkc+"bCq@xyg钕;P Kq7J[qg9Tˆ3T!f8v@/phjBLci\w꽟knzC*=+=U+{t;SUk%QNgNZ8.O u 2Û׊}L "B&E.1frjb 9b=ȫEu<"!Gӣ"C 3nZ40M|汜)Y? dJR`ݶ(!?t#@ n(aq#,,.KT#sc0/%IN ~ܝ^-x].aP;,U rWU&a? ڣIA0sYPdڹLr@YfPMM{Cɪ/ʄfJtЎkL/[nDw Ay-y7$l$/&7T&5\}E Z';pٕʆc#븜| Ȅ>˻g: l4oB%Xu]1b,@׹bI.e҉,54N?19#[Ⱥl fʻ/r7{ݓPP&Ky33嘦lo'GXu<)hZL>o7}}Q1eˣP~:5Pvk4ΪZNMe)GonE2MA~K#h-JϼPg.,vLl"1$8b !‰A#S~R yBW h;^=_.n:iټ]ߢO)LrG1[hFsclU*kd &)6hj4IiRVK2bXX9%#<űe-JXHŹo H[h'B9LzB; v(yDIUJqRg wOԏy-d .f H7S,\Gœ:_?)c$_n֎#q6!BhhNUSG:?ilKpi*Fq 'Wb1(he/^*oq'V~݂-=Kj1~Xr<[*8伿!gGr0ƪh$Q T]#%e;7wdi5xN>؈M WꍛA;VN#1l$=ոB鷊$F_Z[$s%dl7-b[/hp!ԩY9MS@gTZحGiHBᮧ>WqV,R2EqD[>fvc/𮃝U|LG/tԀeˣڇ ޒf:?bwS 7p,h9qv$˜\/fVY"`g;/:廧N<֔CȸÍ>p+Z@xQy Hʽ?)G+tm+Nr+&~N ^B Isd rqOL0.ֶà#[Ofp\a@%apA9gP'1ETx,صn*@f=1?aÌ]c T+=13fU<WiA?+聋)?Z#X' Iڞ=ZxPɹu!:m k35׽-A"]74׵~0A}tnWݮ, |k7\Ǜ13!fe }+*Y ^rf? iEZUl0r'4VsZAce4bKQ !-kg`hh' &)9|cR6$hrވN^֨* `;e5k\h$b􈔤-VgHjZd5먟si~s0j59l: jkϙk6Md>HmigӒX.KSP L(bꨕ,?ڒ!.8r*w@wg)lM r[/G3ɏ/Ӂwwm]k_e$V|Ɩ.}cTF' -bX3Rcm*J S U>~+y=)*`ˏO_Y -jܺJBfg}$y?3-E` >@󄅩sfV?pY4eVp[疩bK) +SLd(qugجg.y f\RP K/OcGߊ Wti9іfb\N/G:c;~,k{ʷWsox`𻛘n^lj9 ;g,'<7^I%={L)}tlO~ͳzr|V~LχIƥ7lpxd4O (k63f4 WONU}gn}=/k\KgzvwyZfHNg.\\n'yU]{ͼfY]9sY67+:3<-vg%4iYӹfO{hs|^u!~*%&9W}yM9UZ??WWEx4jK?~ _D,*%t,3f T2B UupMلUC6N[^\⿏֋4?_C$(/-Kr~.I"ܲKwxk么 Yt]j08G>*/ QugME@^ !2 7G铲`~2v9İA2trC!$rH" N,R5x&nQ.K! #ߔ݂zȕ5̲)eUK?^js tu'/c}<,]c 襤Ypw(`FD]bO`ͅyFXP+)(B^C-a㸊 4 vYt޼yqLy++E,p#IhEDkyt D£tm~yynݼ'B$tGer 2Q- U QAz{&4gO;}{ ;|}3+wJ|cby9fr|OwܲN[Γ&vuE%7I99}=SMgV3͞fxs]v(^s{ٞߗgtWg}Mo;>qn{Ěp|l^ѯbOy#ǰ&4kK+l%hQ굀W+UKjJW@5΀ذ8g\8B`7'AG¿1UM"1d@2ww7;:`a+ɲV+6 +,UJʡ+XMĆ'<}UGwƟ/O|k,D?DϷ4>9ipegݳM_{ޱf u>&w3(䙽LNn(ܤ⺟1I,O2㕑 'ޘ_'NK=0LsRZg?x}Dyce4Vn~%}.5Vv{UڒdJ;Pi3/2$$یH35'ԣex*O#7|lfxq4@p_</ [}46g3y,򧕽9#ߒsjG{ ^m5=p}ÁoI~ ={A=>6?$?p=+²y^=ӑo}{7d7i]YPw=s>< Ɵ1wS!q/Sm=չɢ3ᅊ 2Nh:A[ESO?o=wyRH}gs~gI{/+kqYOgWpu:}W̃̉}3҆ӿrark=?n}&gߴgdpV}Eys/p7׌^럲&#TX;)9UOI-}6cOUs*~}܏g+~1zaf^Uv9F7A\S0pXjiud}y+v).Y(lsO.X*?x ~~~/Yy~;7=ɷ;Xwf;^<ƃ;1q]߉~ëֺ-`-{v}}s~7ұ'`@D( mO ٳK7 5o n3mt3壃zqDSubxx"68$0m /`riۂxms2vʙ$wAF)3c;v} \eCf4+9!@MMQaϊaQV}i5oDͺC]zҤ1 *i1A$wyjD~mΩoĚ/= rS̊D!#x?;q[㟪ư>[,IUv]Wޖ'pl f1c۷1*g`Ad4Tbb>:SUZ+Xx|r^M U<\gK8M-nv}AG_F]ZRe\,~!6HJJ\bmHVgW_e?;e8?Ó튯5yǞ7.svy>E }‹=aEw&Fw/4ˢv=,y8wu;GobOshwne7}>{}6ҋ:xwvfҩڴy97wΦc{̥s*lA^Z$In?Z`p;ymu2I]27EOխrm3!B$ \uDNB\T:/:gۂsX`3b.h0YoOǣR}fӉ޾ښMwwAS|_2[1ץX[qHmKJ}ӗ:pmϞy1ϽGϼOcL'(^r&gDvgvJ$*7fî;_o~'OO+ݾТ^LKw\${S{n7ܢ9x w{%IZ?w_'ߛ۽$g#'84AI᯽Ľ}y e>tb=\=ޟcNoX){xĒy7$=$fs+?-/eΟ}{o̜C1ix΅rOĖ">f!W}پύ|Yy˫H~{ߟ_'хV]OҞLY%9=W fɪ+N_w-~߮Q)-\Ʊ33K8-M愙mlW9p '.ycܮ^_p<71}~6`sL~_MO'Pm[ƚgjygv<6 7F%|2.u3Y߯d8[{$)ɀ@pFP]d)UmջP};# Y2aX 7 flL;W,1{c@AA=T:SLܯ Eu !%LU3zK#KH SNNv;3ڿ-o~^7R?voR?*aߘ>6C8r?=hD'p"+_mWFvD1.X|; O5\K>l$!6+w[~c/ Qu5!Z{d/C  A4P ]N\5A° ?IozTӔ X7Rxair+@bIwN϶?XlEWȬض֐ -ٮqZvs9aKvt+W) .^B?լoIٚ]Ny㕾9w902Zy99NrYM_%=eI^wr{3ܞQ$/ۜ7g;|Y^=k9p/w3,7',\}'W7V%vgs=U.):Ħg~ק{K9Y?Fzs'f7泇hڙC\ {&?Rb/t>;1s 6O0RQ'g~iy NnGwf6s&*F ;Zdx\r1sSgyyX7 Me230u'Gld%14a/gv3x͚|`}U)xNGn2z$ƪĊpMmGt;D|KʯgoΧ0o94x&5ډo9ZbW9èrAl&+edac4Ii?W~7&o?_w$n]c +jY~mVIϨ'LJbOK?eZOPcsHmVdG}3 ~,(*{³'~~7vTmvl%92vϨ.O'x(]EW 0cC#?Ȃע1b``!2QĹF@i| 6l)*T#݆",,G{6ŏ#ט]/)j<^z}UiL^:)̜MJdHQ<ˎﰅYhdx,{0=䀋䄐bG0ؓ6-0W:Cd2:SqL 6؂*\`$vbEJXl 0G9CU.Ƞ4^h9p+LB齃T|vxQ;h:sQJ(pzmY/ 8\?qle5Xueqm0ur~RzU<{ȧ ;|Qv{_2>M~ru󎺑sPWK 1ظgUBl 7e2?.,cñ np!Ea +x0jk U۝GL'>%9T5꪿zupdwtax<{w^&|6qc۩#,g7n&SN _/lswg9O{g<7ՕhiGA9y{"c}[q%ñG0_ٹ>w<߻EgO|1W?EU S֡xhZT=2 ~^rzjrc8s7tO旸x΀&\3=II?.ɷ~(迓'Fo*OWyhu}ʬSQg0Ia#tpNϾȧ}{^??5?7k8Kw›AM\̘wKr=r8loןTfv˛gV4~990οkALDYB9:IfJ×H]5UAY&wF65~7 {<9]NWtOokDܒl>??n1ݝ cNr{;\R&;?o~z^~~d_|$׮{4tcN?'$;Ʃ'reǸJ:^ش]̌y([f1ҍePzヌVld]z4fY%ƛ׏5QLqשּׂ»ǎ>׶F9Gvvf-"v}~C۞4DfɼSiE':]WjyS9ܳ={{d]g~N2~L6j=73q ߹D7P[^},g~nI}SFSs9rv3};y$NS}s}|D^$9lֻfFdr .8w>J2уwv23 %$(ѣFK%!`2Q,d3f:u&X1f|p]q1pU@U_? ?) lVn \`8\5a!kY4"3~sl1LFPEBxk2 ͸%MCX=ehYx{bIVr6W, _?1[ 55 ћP L2=Ff O"*a_0Z2)᨞P 7s+XM_t\Yo^57LwySG(2Rl*eWU`=ov5`џk6v#Glٜ٨0t*WdyKLbWW-w퐆 ,ح*rN [[K˵}2lGX3ƗZ9]={DSfnb@W؋Xw8e NlU嘺B/䨠!jt] NdO0Jƅ|.;6(c]dc&x!e8`uCI*P!&U'+jۋU;.=GOO'IfVqOm?zI3L:`Oѕ5 vs>ƨ}?"W?w3KoD-I# L?yg? >O˓fEۖx ;&b:] s5nKy\ (-XIWgwt5>>_c8>c0~=/Q^?vVw?or9<tp{ލ{d5X>\ANeFg*1uʮә$m:ӏӧJ1}E;WI F'd=kGfv6O#s+ߙb$oY\~!>:N]%;vVs1wƨ%IdۯGOG~-<&VqOňmT_|{&wUfLa~uN('gW;fiʓRj軘*c{gW2yNv{6~~'X<)ZTJ;ɻ0H_+9{QyEH{ˏ Gׄ^QJMy?(SWm sʙ?"1:;)NbkF⮢]>*RU˃ jVrg9XbNv쿯>~ʗ^6ÖM89&ӹw*{;&'#ќƘf̟LvDM%@44d0e1 K0'Ë+_ BgaW.`! 6]UM`ft(HEǹvf:-#0'>$]Nȑ` ĤȊ $f98( tk4hs7 9݌ћ3y;4ed~2E䌖L$0IfHo* T( N\U4;))e^,dŜ&5g鸃60s_]g4tCiO,pp6Y:o(2^z!)ء*xrLZjGkoNhT'M1:E.P3C:BߚCW3YṰ)r/{v@RJ/*zVCR)9Y<#9mpjFX~#/,uf(HtЙ˲U}*GbҴl>{B!f|_ֱE;[2^#I[wMޔm|%zu|,/z;ʬmNourLrÆ'&cӵ5>wƞXtlUyfGjgʮk7?9Vsr*﫮M&}UtWgӺuf0 F*'lbT^hׇ'ՊC2i|=a F5L85ыViAX:EzW-wnm)k/!$]Ex; 2Z`N4nH@pժbVQE4ie mU(ÔWVe{f~*3Pyԑ;}f+#Le)&%dHp*c:8ߟœɃ' wה)i)92ҵ0o~~_hf9ᗙa ^ɶ1&U}r^Ժ:&ZC/8O)\slL8TGya>}۟G~ߴ~~~8yr?pjhQ;Wh{f 6g?LqW~^~'ޝerHw~~D4bwWL3Nz'9n9>φ|jQ'{?<7ϔ9=}$מ8!uᘅtoHwilH~ϋQe[ܓ{絨4n[Ǒ7,Ì~{󵝹).ēI ^7[!ٞf,.fؔvgX7/"vx?}yܣvwߨ}$_OӮy4sN02WNe'&O$o9zdq>/ Bɓ0.V Im[?00鞞r,_p:,~cÌP8gȀ00he8!v[j[Cp lR%U>9<=աwE"DE \{#]s $!n#gDZFhyM%BL&ն_Гću/_nWaQ*yO? Xwfo+̾6臨yɾ=/n9.i_ϮQ9Ϸ3嗒x/2O\6G_?W =uΏ=Lut)җ.BJU&+&owYn߀Vp)`ԽKU `J~|)Heآtj5&x̗PHyRL¥ tiZnw5,x0=(>Du*g金dyu'Kʌg'NN֋ 4{/ٌh̔<>wy埴~eܫ_c/*>O2b%%LyZ˟̘ڭ5 >iSY2\?W/~p?o?j'7j{'=ٸ{]I&ragd{Z"oÏr(@j}>,r? v}"Ks$Un~vHl]fsv 9ڈ>兰Y?w"$d~6Br~\߿Y{yVw' 87BcG.8rH.dJ%ʫMcOI:훞*ox5>gq{Zow#=юqY=|Wǧ66j>u1e֤!?xxf2y ?~ıI>BjR9g= dHΓ40] YU|O .'J9=1Z7|K:}]v~2~GL*Ba[߹A>:}'߻2[{fBVo{{:e}ӗzӑjO6MÜgv>j~'9=w\W t#'7;WR=I; BAL,7(P!&jL(ru"&SbZFKUL\pCKjKABhC􄴩Gz#‘2(L X0H`p&tqn,p̭sdtKǙ93xIsܖd?*bJA7ȑ[T"hgݭs3\n׽{Pk tԹOq2(pvY-J" WT{`2W\U2Cavlٸhݻw.xEGxӋ%qM50B`TeCaXۜ@1v_ GKTnp|;z $Y2s[n]*q~*P avfR I$'?~/Y@^ݾ13|xPr;1TXT( ]d>9C bem9[ ҙC?gF[C0+Q0XqjEwsml~N?7ϿUJƞstԚ-fUvsnǥ8=i>3y<9>ޕo;;\8+psf{o^߿0fUVv ]^mIpNiy|vsv-;~4neN\F׎vY\Wv,Jw}Dޝ$=SUkݟ0'h6EC'K!]Ώ8CxtjPT70 ° g\sZ vlE*;` ϰǃN<-WBtTK.(РQ *QVf{6GOƤ̬J{gP4vS]x==iO?'{yE2_1r{/q;^xݛ'ЊwşhpB}Fwlpc~~d׉+gfo; oI|pw.vl9Ns|7_凙½F\1ڑ;<8~sj}Os},×Si[ǻw'=Y9e=pϷ+r=;TgίNysrʭM>9G79iS[+*r'G0/wOwg'=>P޿>zUY22|oyWc.-3<|%ʊ'>ƫ4ܟd%=|M}|6o}/j:_/|gܬ;[LLJq-Ϧdҳk+:7Bk^Uu.Bk o0-ǡO3U=X4A\/6SR v>[R\{)gX -f\ t57] >vӦxmJ˖g/0d;h;<ϘeMDWc 4i(XѢL'Q;C!lj %gO*g>>k kf_@3x ȣ*"-O_ueEwTfRW Ͻ7.ss޾؟gOwWҋo}i'}Iּ1O^y3g]{f9yNfSVg;쓳7Niúm_9lٮQΜ5zMݔͼ5_m@E7h;1(x*-y@l۰Yߑ=Fm3EJ"zBYI c{wNzm NY<=6{>0Or]3ё8q'.;LXs`Ldg/wo{ ryxfۼc_?_\=v|~Mizpm7U8K9\L١Ӊk VXEEŻ{?>ݭÜЗ*G0ĦuͣrLssyKFN$߫7|UU}Hȹ{[W=L{Yjyۯpv֌g.fdw=3I'{_Ugzs~쪖AU@]p (BR.ƒF~cMFX /˽ _A$,D#Xe4B Y`H0Hjuhڬ Y_x`X=Ӡ.;CMj-0$dU0AtVWWW<, 2/Sj_`L&rYF D.?ASxU ٫ҫ/j6%g"8Y&"Uz5YSgԶ k-_sݓei|tSo͓%LFuqtݻLLNous*Ea-K$7Epj׷a;`m“{0\ C{5/P+$Ժq \rU‰DFYb>O8c5' ~Q ~ 󁵌 lZע5DQx\ |jc­!0=O\DO |D8a.Eѭ֛%scG^"Q<5%cĮ׊1yΖ7=ݳ'NfI!Jk,6D;dSSu;(#bbS4(WQᱵ8[7.(Z'58TiH tkE[Vl`V~hSEc;VӣjM+9 JiG]ؙؗ}{yڰ"V.! ndB"Q2y D2EVՕYB~:S!^#QWiU=UYU\ڥQ.=4m+p:L&*MG_U nT3f ,~A<1PIw82]<=+ +D5w #6I08dB'Oלe+4|2 !\KhP# W%OlLɼ \N1Rrp4jIgYVag~Ts"b/,G-E*%඄ԇxklܩ}&K)5"qHGbV?"00C[Nٱofvmޏoc[׆0F&}vZ͐[J6qw4c5n|1ᔺrMԆaU/8)QÜZ8期G 17[:6}??e~s?2ٸ$5|Wrm.:~ `"~sȤnbÅ01#at)]Y@uj6GKж,lllc0-ص-yT)Kh_tc{Tw`By, Zk5cx;uFF^Z݉$ sW9z^M /Xc2pGBm@&zhrsS]־RZ!,[?32}]zlS{5+NkSZU󘆐"!Eÿ}  % %!!#!%!#%%T֌,,ŭXv*YWɱDf{-jG`^,#瓮[%9h}< "uOxgzk:ɹ8|EYF]oJpL|YZ_}Ӌx?ZNko;vgj:r9zzxR5{O烪U鞽zHG꺪 okN"ʋVGi-e"T63T^yqQk7Sx ]`W^":/I' کdﱱf4v9ݍRcQjvl/4^gakl{0sW~̄Srvb2ѽԬLʃkԡ7(S8Pn {+cF: ޕDӡwiWvO%[C`5_]V̮ӐzhA/3I(>1w%Wͷ&ZBvܫU6FWɣF84Y?-iRеq;njgoY*A*!-{,óI8Y(2ѭJO\H"Pbhn3Ym `gS{+jzduu5K91;,M̺eIR]?=0\*bmsLd;7(jt𗻔8 r DhpÊ]׬>N(F}T&LP(pBBhj]|U"%7Gejg!5Yc1ʼT"~m!X -(o0/=8юGq6O<ǿ x3StЬݹ;sAT|@T@4Zƽ$6i/z$uo`ȾhGu Bbc?P\tBtu LI j=; xmY).w!'oCmI,. !p Q0HY:u:nܡƾQ ӧͧOJ'%"YŋEx;HߺKghJ%-&mlk_iZ'!?^CoI|p$]QҘsLWV3*H=.Ps7bRnk`lP"*FFqBB@@EW1>A NȴX"ӟd;x_}6D@**, * (,B() (,B?,(#0 *" B* (B*ˆ#*0"  D(# B ()" B"#0‹(, "0 () "B("B(‚,("" 0 *# ,)"*B*0B0B, + B1""B)„")+ B0@, ,*( #,) " 0 ,@(  ¨$B, @ *0*0,* B*+ ,*0 B0Œ BB *¬0 0‹,B) 0B ,B0 (+#"" + 01 @( ,"( B  B" ((*()B( *  B)£ 0"B , "(* # **@ B,*(""0" (, ,"B ( B#"("(#* "*(B1"* 0!!$X$$YDQA`A`Xa`RabFDF RXaAE!XXX!`TV EUAAHEXTAVPFEHXD` DT!V@XaaEAEF"QTF!bA@XF!R"bDXČ"$"$ F!H## ,a"HHȒ1F>}]in??TnC74M4 _AF wǡ}--&~)VvkݨŜyޣةp'r6 :-T;2YݥLߺrՅ/^hGv]{/> [詶Og߳Vut>p ?jƯ#V6sӎzWح>rfީ㓓}: sNJ WeIORTe=*_`},kʞZmTYv2~ O_ S}r!>+EL{(ELU"*SuTȵTŶT*~VgS?TџT؟TϟT˟TO*OhO*Ok*O~''S3IEIiEIEI""? ==ݝMMM@&;R>^%ECAI;E7?C7;77A=?;;=G;?;=;;99?;;;=7?؟؟ʢdklklcc}>vOӽ}>z Iz ֦${ HUG74i۷yR50_@:[*NUoU:F^o2FO~.@wc C2"{sn'p^?;o*]!$&y M.bFs N>q">47 ˄B8}Y\0g%\b"t rpu؞ H! W&\ϏπO޸J21a2PtVjfQ6" O=y 7䈗 (]1x1vFZ|hFIʢx bwkeUn.$ccflB '-?q\Q͞ f%уaoFL W/R8R O/8 Qݱ1˙ʱGk@nc:\Ό9Cт5:#rx3jhܕnmJ `7 W;,G$6)>t:V!=ʯ.y iN mF:Oc07R~1HGӉb( h30c$\F3##AJ V֚bBuL邟 Y5zٴOPwpՎ1VdD1U6Zkڼsam8pVNo~YW%YolYi]5; رU%A̻6f]=5O*AtGY:Ia5loSMub;)ZY#!`rL|4Roj{v&DvHalxM"7PTPoߪB>MiRtP7"*{6-S}Ӽ1EQ'#qӧDU^lUX o@5@bbn$]RQS"- Qd/bJ8ES\8Ν&i]%;5nE|>6[tGjmk?Vn0& d k/iap8HauV :U(+˲c|[lב>| 7hFr ,Ս ǧ0c[~Uq#:@c뽶5>v M8⑷;`DDm'v64YCkCG4T%4;ε4u'ܷJ(cɱv1u% EP'zy7g=&M:'T*JXݒY7]gwA+BI)JLM;_{ãG92!d-)3P@gk$5Yv̨cgv]kM_9*qe =M Z=}Ne0*)TEA _֬}J_REOxՇ{,:Ԝ4:Gej\s\ XŃi,+?U> J?9#T:_XOrA@v%4p4E!b["Th`lxBK0Bpᕏ1-g蔮ݜ|׻88;1|ƒF`qsGs@;^!Q[m͟DB:LUE$RX ^.RDֈ)M^l $u\1˭9ޭtw2;:7T˟Ѩs0 wŏ{p)zQ W#[/s^Pq`!} ]8"I<>-;|j濖 @PDVq5T& EbF"X#EҘh9,ZoSHT(a=dOqE엇~V5)8Zut[3clwh{O̥VgqiკDu $jM쒠X FA7 ғ|(YNrhd]'h{GXwH ah& 7=ף 30n{^-Zp.} 5xGI m4)_YwfT9Vq̮ iG 9@em,Xyߖٌ& e2dɽA pLOiɬݜ:Di82PM.?ա~|96LbD=CQC cF&׃sGF\埙mp{8oY͈lhfW}>ds[}HbbR3_}~@0j§"#2ޱdvXXZIbSo4GyLf3|z{ 6b^`jWE!%XD`aqGm%  $0(r7hu3ȓF#c 2sNش5 0cf7;=.FDK+uظ!": E~)!r M;ZL6z:yt7օĥIPTHb%5qR)TixuRюA@zPM+@\3 წ/ mN+ S'X6I,$D/Bm2:=1(lzJ4.6L:9L̰/歼aj5H&#^"e'. :{*o3ˤ\QeQ.{p!cg!fV!V,‹D*{N;[?]õ%$9ADͻeyjw rߟޏ &om%B({ /A'kyԨMgн_ U-"0N[ E]f~ѬJ$nX~vX)9"̱ ( FH-v+xKWdFʴt廷n> "-{a늄Rw顥Az58Aϥ XQ$5}gr}{is76VHBdE3 &7ZH?WBxx}l4B1X0N;W]GmhawpئɂP{<G?/Ç-yܘMfm2'LhM~Ķ,6)@VIÌtC7vL(C0 W@Z7xoF~@2# asqgt(=D/YA`5}tԝy& tA:;M#7u>,Tj*utdz7\x~rxl=unWPՉ%Cqo ?4+gYuȐCNT< ѐo o*LY¦Ɨ滚+KIM1Kk {ݎ3"gS$ ]3 ñt|&U9M)i3FV9| dlBq=fe0+!p)SX=2X`.b1/0"%a Dsռ:Q5cB6WꋞaEp5l8WޣdžbKG@Psݨ 3X:%:ޛ.İ`Ɍ?aD7`~9_[TwcOߵGBOYkFQ~7?@/򩸃ߠ41x$6ϓEow˓6gԜ&˘86 6oUtj3}Qr˾un"8mܤ 8}i 9t.$>Akd\hq3)D0n=c}U]! J0G?YiF,?^Ï3?R0gi Po7VEκGS4z2urYm=0F-WjTi^߇4ܿTPfjG,~c{g}\@0bN!繱̆fI0;s=c>s{l`pA7I cs̨d%eBC)\ޛ?i4{}' 84VPsM|̻Q3恣p(/+8tMf hlr>U&N5#"ZfK?]C&1'wūh<Ve96E[)C8 dUCDT$]EPԫUjVV5hV\кҲ\`Ś',1F\&ćfdX&Ax@U Ǚbi1m%!#P?^! Q' 2 HKG#Sa (EQEg#&ĉî{^(ǡ$L(GAѸn(=Dp{MFtP`Mk~KaSxMUW*ubR`m"M^fZfȽP5 b[;>yaLbwM_$#(cXcPcxi_Qoڅ5 B0裀~Kq6ı5YC2w?(`5{DB/עcO`FmA1w$]5fNwރc8 iR$̰ NFІ6'uMg31k|R,s,ȝ 4:L,Fsv&rMֹ[qBy MyNn fk@`6Zuq(w[1+nН;^arqYpÁ按F|9CPoKik= <! I#)<Ʌ8~G3jߋ/>Ak0 T% BM1 K6Q4h-j2[/alOvlF2~ڶ08t6bB.c~㡆Ԛ.%RTjCcx,,[b"x 8Xanm:jȷאrU1 ?4LIh(ߣQ|ֲvI!u% ȲT3`XtZfNa#&TѶcB2F8dE.90b=`҇wbژYK-t;ƀeTanc8R5UXVVXR?uLMm.\@!40fMl}/&$l:Bz'S}U 8.}d}2cGC7҃/u28l Y ɋR.&T4w#3| Aq@HPsqO[ks~92#D"[٥ NŽjZxXö9 i^7-\o&4 s1 lPgp-5 3x*igYU M%sMsD HjƁh2 MsjxTp[}Ehv}(:91(`ahs3aD7Se yގ[/E >F!!@|'H>e{,p:iW| JY_|q{[5l}'2K :>}g/b+{ba7^57UV g{?>w02)y|#(mq^aB탁ģ]/췣{ss.3,7`oԢzN:ku so)Za2A\g@WҽSWw; {LwЇczeƿȜ54WD[Sp<6⏛u0ۘEϊocKx1y-w럝: J{BT7I'i+uuyUuw1¨,U*k19e!^ޚe@AkzW.7!=-#esz1s4osbGR:Q6Zt&Vw5^OkUCG,ZhQ|Bv yG"3{ʆ\!ͅGhΑpL3#o!pCz< 962 aC>dop`ڷD{߳`m/7iS@aw %w<3ށhqr{{C,^&b،@k75!HA5dܽODFQwsW# ߿,S]3lFħ_vgҢyq! {T/J'D8e'Xfa\} jy>nʜw'lz$xWe1tcbOR_($n1Ҵ<;!5a5͟o6ͰV `U:@&7T\ou ]>&yl3u0D֙J7rmfzϢL8DeӴ'5fXmZp#/͍R19kV9b$ ?m9>0Iؚh5yw3m`3 ok;||X 3SsTvkANpoWtgp6<-mS ʡԻ]Ιpta9TW6ܢWDrq\)~tybUXt=qO|]Np:*ūD)7W{>m+ vSߵ2J>,e[ @fh@TOF JPlO}Ú5)z7CI 'u8]Ek9y Sѩ31DW Kh?`]qzާ8+~ǫ> Y,FH5uK]Ӧ܎tHOΪ:`@ryK]В SoPt,gryzƴTA!u>Tn`Z$N.JTt=+ b_nrۦ ~A2>#\}-=SۄKK}X]ؼI7[[9YyI36aO>%3Ib }{pVmVy|Bp8u=ݩPXA((P.;\kN= kĿC6x[7ߋ $輼)Up' }S7qp0?ctNF==_vN {i*$.vps_}簫>==t[Z՞BcQƳ. +qs* ._P{P5&R|oL~kPo21G7k=@p| 2+cl:Mŋ_/H}UGy{Z4}^>QpP8&]:;eYNngʦ'T٧'a'VWZ=[K_|#]O9\Z; &H_iJYp.hEiS Ź>] {<^z U,m j''lw!E\q"xഠeGQt+ڸ<vlPw $Zw}@R];l$󒁞ooZSԅL =M#N8 ڸRR5A"|oFKnè,˔ѤKUP~D kw/c+6s9/-+o~K r=r|aFtOð8=NHBe~I'A$zu~&w|lH!Qø Z(Kwc*iKvŕ:d#'^CM翢>zN`wu`UUŽr.<μ =| tq?Z$xrA%ٟQYoõڂ\7XX/vl],º(^?vyutE@QxmFү{^9>RQH y| Nq&sdhWXb>y0$|.M=.҂rGq#qzhQП{O`|`YɧqnٸC^hfdU^_[50<=73al~,'MosJªqkpW3K.4o&}wMbs7 Bf @$g Gq_XaZ0L, @:&]I A?J ) @*)"uj 8*@$? ?:S Ǿ B $`.BdhH [P2  HHoKs %PƊQB!rȍA7QF@.k`4 0)bʡ-@$JD$3m\?0 )2(.$H\* 8H*ĠP *ǰ]PS9 HBT-Bi5>lS7A$@)tJWAx(@@$Sڑ(( P :B$!t?уxOwA!a B $ B08h`gӪif'?"f`wLa1 PwTf9GWja ZH  EB$PPP P+D_ TA|`[@$ RH@d$@/JH H$(SC.#TF@ '2URR() HtGfAp1S:(0@d8@*q@ PC`TH'1DK`/Cu0E PB#Ik `O6:$1 (KP  H2OWBD@JG?U$"PLz ƪA@ddv _A-A$3pF!dZɞxǃ2J(G"*I"R B,D(䑀ú7 Ad@V@Pই BA$A!2 ji"hb66 @ QHRPL("#!H2 z P% BB) D,AlJ!%P?ȠD!h~C" P}"RK!!F @~,?4%!! DP7@U)@P`)m0A ::7 n;&̩2"ul5v6M+EqugBs2hyS!mlX,(]㒲wc">* TT̸Ԥ%xx@_SwSc )"_1#`Pr%bl9J{, IKg8.+F"mg#(@+A  J3{ AԽL%*N HJũSJRID; -MK=e&E )P6f  gGH@?x q(A'0t 8n;UV*DEJ@A+ HKlfad~j]y6&RND5lBXTE"6fBfxA+<#*AFQb9l$zѳL)&뿇_O 4XY ѱ/&^*aUTY_Q]7U"]D&y'!aYU՗sAK W Ƭ;8H|(\d ȗ#i^s+M $d6fD&X)@hCǏHFzi-GA9 i>2b"AH:S8g!ļM,J]DS 7"vtINb %[H8K=|$&B7{5D#hPK-R(h$TS(BZ~AG@N4f!@LIaDrsVn5,#1qoapѐ}##F%"h)D`p c%n>e%*Q"+!a!̌ 2NTִڮ >Vk+ 1r(`8e0z?NtH"b @9; U$ˀ{8 cp(4|<\CƀmL0V ;U aL(zbECc <BC\)ЃLOM?B y\88hjk nM<^Q1LO6zKQ)TH] p1~0b( 3YsB1 =}4,4o4#PPMfv+mCRF>}퍸Yx><ڑm遀`8e Bkg+hUFrvq&A16*;lx IXv>k֎Qcz/?0ovu7frB8;XX6ǀD\D =XP%x&mZJ~:xJ/Ǚbm)~0MƆA)(M,`-5[ 돀t},YPfw>=-Ġ1YNH=~\` 1yq  FcO,OU̅s\ _1up'~f2<icv4XTr(IRAՃ!jիY "S c Af3 J v8bW&f)&Ro#ϖS2œ~&Yu{P.E/]؈|]0 C9j KF󁄻@ݔPj* JU34LU~.@w2̛>ok|ćn6;G{J Gܐd"R1 kظE֔<"fāv1(=`6G)Ƕwƞ{Ǽb #4 L1}',f>Tsd-Ce䕳g<^VR_mfPbLrPpV ݟZq8_QBLOD\ß(C8~~-v@;y( g>Cqd+fOo79L=!D$2P^ anB6#39% yz [jbGNHp\| ՗@@6{xIa MWI#C(M]o<*}s:b*iFJ-)&'/em=?:=ɋO`}@ k[C_hp1)y؄׭Dã#ti'[\ ^3#d`V Gq]M o*HT 4*XdwVg  5[b$YEPQ6 2xx} CM T$E}c}Xlca;+OvB#T"aL!P _*-{Uip)4$o:_8801Cݿ$e?Ǥ ˩SvffEWəlڗg|FfA+su3lwnaT-l5+s $w/tR;]e**yT(DUN$LV7W>I UTT`G]jF 爏͌}X;q E'M[?ʛ *ML=Ѭ?,ivzhYC[u)6T;Z`\OgWf>`O?cWAܻ{u&45ZCCRMPh2jTYUVUՓc]]aYl5+x)-? m6W :@5ITo9u3C-omm-L99b_q@@da~6Zlwl|&,䔃do,LnVΐ{+ZE&/ n=(t$0(Z'jӊ .k?~7[&Υ֭kE/wG<5F/%i>)dnzTml.qhM8(^o5,ړQa]2bჩb@t23CN3W!ʼn>H1vă+8NRDPR8L2s' *MYDw69K )nS 6+߲ls gɊ1Э) yC@G#>#23O2VZH^c%O= zs_=S-7Hs9{ )JC'4xHGQlp͉Hw~Gd( 9^=GXM,y6I P?cܚeLbGVޠ6A,~Nބ lsEcɅ ^a3a-yz|.tlHQIxsoWրDp`F^LM=rJL&X'T-B+TX+V?EEV,І80Y<_dph:o>k \5^a1.NʲkvQn>!(Ӹ5V"|oRwqzPsa-w7A['C&9ݷ5B BZm@@kTQu l`1 Il/"z ; b;/*bLvRk6q~>jfL&#yjU]3:*JQ;¹AX3} qQXf,jH1{/<\'fd$zf:3 4k8zTE}6'fArƂr}a&Xԇ焫%80fH9qa"m1pC9S1U׸dWvbBX% 6cI_񚶤1ŝv>tXZ;$QV-R( F1x^3 !~">r -aLZr-N9H2P6" xe1;;@' ,?"迪bz4[{8D~[hP6og5>xLA4GwI<P)l){(*%G~]1y`|:bTVj.Iaҷ"䍓i/`Po9\] %cq|y =)5 hv&L+݊JPh#?&= q>W:b1to[?EA@d/ чî!!Λx}'X7k{m9$XT ʲR7CEe@VrfFEWp=x{Z;6em[!Hj>hITyc!% vu`aK RdO?Lֆ`e(X};oXd:0e\0ǼEus (5fAE:!W䖪y1(Ԗ~ L vtO"=TNp,Mz5܂mYC:wl]izP̍2fO>OEt?;en4QaƟq a˦x)vCBQ96Ds=ʃ:z 0CƐRźfƳ$ #ذ]S|Ǽ< J cL5ݎG]5/VaC^z[a1!(sqޠ p)5q5՗Xă0ʉ fHL:GN&{RRxs/CTh̍A} AQH\^pv/y]([bN[ C͕ i7'40=R/\gzUgD|d„;+陜)sn͔<K~)w_g{s>^Y@Ěm w;GM?𢠡ݙ?Te[x3DDhYyO8M. 2= eK\cPtYiS~dC:qOԀ71&d3&Hp?bKʖ?Эm3߱ܘ\78}'+fXuHYrǴɔ6!>KV+jX-Qٸ:maD :w[:IA$ mA}aq'?Ë vؼ(.o+mt}^l>$B8c`CE sz7a[@ߘ7+v\|=})` 8R4~4QTg?RhTeFQHW BH<xk^;xk\V/D%2|%!홹NvBurWM`?P*+=1w^bbNaN(2h#zDsi?7Z/M{fSk0;a6$yR=(9JyOKzAcT#\PAײfdB?)q"qAМ~̷{l>K"Rhziфa7qdWs1BA/\;}h/5Gy9lJ >/_7I22ɴ>RQW[vsZtY0b9=?l@ZA*}c[X:yAOڨis^{ܓ҈:c,8Sǵ+ՅLT#m;~-\?Cߎ.#(~+s.w& ЎݓˆįxXv@хInă۔(2 ^loFOz52pfc$᛺#i6pdW93&s Q臔'vxfLL(]>Ϡivb~S5:iaԴ|ق:_A`c*b &!f@mT 41;t4Pߋ q%f6g{c'? zmq8]w/y{טhd8:eb'`] Bs*h6WS;6, Zy d#H`! 3`x cv A U2AV5HrsT,H|;sk> Ɣ766m ;?*~{9GNj8/3 >UdD=`"x9ZհT*4.P>t)K[w?M,PН\E!T? W y9r'`rvMsOD='a.[TV@l HZ?,܍z#\!x7`~/XHxņ0Qf}ML}c<' AAmv/`'z\'* @gaCx|Cz n⋲b*7| ̵rF!hkwd1gy)xe8~[fCED.8%cH:_yaJ枌8FdjP,HYC'S8TtSJYaWfgە4(؞,4I͞:ey-62G ĥ(MQ 7grM?b[L/ (W ¡Hlr s)&MPў'8p:Afdz$6~P8<_uM̐԰(c)VIIzglϔY=NQM)|f}Wzas7d U5<1h ፰UINH@F{ _17#`[*dj̔E槆l~ y>bnm kz#U:`wk_2ބ[xV{ _xOyC⃙1;`|2oH(!H.O2Z hҋ!cjH~"J b(p^9_#aBcCP% AZɋf+wm8ٚ)#M]0Pɚ"SdC{= e|v&D(& x!b 9AO&5Y¥H6͝8rSC"əxK 3qσ:}ѓ1%ujѻ# h{Dt9_H}ȻĴ(|͙*=dh,̤Xm C,iMxJl%GQ_^!oN}۾.)ot "Qe'TtEM;X?a47Ag$Ds@з0qG/A{߅ @E qS6.l?Q N4G?q>&Y%ąѡ["(hO^`h"ᒠ{M %|PR,xBQIGO ? ~ t,^Dqf1O| 'ܼEUK5פvG74b+T ՇAg7~a{x0h +h'w wx4{1]<\BO8C 5ZsOz^}Fx9+ڌ4^~h$" p0:cȐ5R҄f8d7%XLu,,{#; 6G$$tłػ>.9egM#Y*#N S3Y^>nGUHÎVVS.H界ZΞF}7GfBc]P!bqt\ ]A8"2veG(KO4ю3+ Ha#;sPCCBV|W`lotH'gqS.H?r7?oP1OʈRgn0d8bGG[\;F^>\BȓCXbƟtCKaa$`%` ZB`q젝= _1^fYp0Lq@O![OXTc{6fr'Lw'kWj2gWaOlHˉ0Ed%)hlqEϠe9П Ou1v4Əda[ϦܝH@`ԟ Or[|m:7$GE ) 7|uaD~@L~2 VtkyO 7Dy޵-="D("#'~P*}:iHc:sFÂcCpL(5ߨ{$''z(:A=s3{>}ƜSGeveg~|͆l2@}ҵ>J(2~;lI_|;F&ڑC=!Po)~ᰇ݆$XEc ? ǰ0"P~9c:<G) zZ8I BDC]ʰt1G>_ :h`mC yLFdT=`0Uf_f|3i8He럵@ΙOGQ7|Ѱܛ<F`c1#2 pV6Y%diE 5`f ?(.;h !t,JJE7"X0Šܔ# (S7Y >£zIpm\_!3?mW ˔?oN2m"Ө>2C b>l :~k?^3sdH7Zrfft7' w%9@kM~P?:s"7v,{:Z (r!{.D&6݆̱d& @RP}6q Q#xf>Q?[aXbX7NHQ 벭N[ :o>S8uQ.8 `fϹ67}X;v8`>oNp|__Ai=ZsÙ':8'Kn:?hC%;-O:3rwćqnB34&H2fUFe;<1'oCۉo!~Js66xNPyPx XK1)[9#RUR3_(R*x` L?zD.zx?T5GO;"_u;-ힳ*=tMxI-c izz%0R07hOϯ E C= ȋ| yØCe i*%V/ ECNwBӧ} Uę V(V0fT z~ nez5Т~fmQpBa $S0͍>p]G*e(Kq/Hj\K+hYM< ЉPM3S4hL4~wP{@ ِb}̄a V1U*W+0?DTmw?i2%L~xјO*APP>/ٕo_HBNQ^بe !{b_(WNm{e_d'zRvO!sX`2ǐth.LjsBAN[&}(dL7KpÜx_8},4̾'t}Z#$MPm"M5y:NyvǣhZ~![/Áte$.*܍n dxߏsx.w=|pyʣCXu@u "} #&=`2/XD?8G lv= WEC=?F ?'Du &Ɨiu<Ӕ9Nb~ uk^xwq\w#ޟ]1qO.gPT쁻ɩ@>ߦ D C i:sssC;su3qS9F<~вH"Db!4A7x*{oGxy9iؔ.L^u p PYА7~zhkʡTXܸ|9s%ı-tq>&9[+_t&AJ QfT&0'=j)C?Ń\׊3_ A |1bBKCI]V A~1CXW AL^D7`{ǮyzF1fuy rWX9֟txAy?kp( "-B7J?{.,Lj Я̔w?5hgm b,D3; tÍ bV}fv2?V7)|cc$V$b#8cuQu sW8N#HͷtfPt)8f&wf)2,ɜ=2&Oɲ(2$QB~+[bbQ( c`<'N} YP{/l0 > ̣йTsQm9;/*n8]_t(bTl@6aT>ǹv&&$|0ǐkLI)4pޗql ѧV8b9I9ʍg V̬z>|s0ŜY /)6(d1+-ܟ/UjMO.7^՝rlK)au8qXxȳ36IMAݟbMp$G7i1WгGKZgNn iKw}Y4޴ާil0u8ǒjݏ@Hxf?M1Yи~F<`+C:K "Tr5'v }U8s%rV7f'dGI7 3F??M]\yq=w,L/#%TdY!ƢϚ/wV,+/ ڕO!>,5=DSh~ df(C ӄw6Wՠz:B(>KLj FhZ͐xUc_x2fSȚ֚Y`cs[ h'ëD=}$$| жhޟϴS ѐ(3}c0Kv>Xq:P&x셼|T)9 B$_/bXPGjgN|=~3@=+\B7zY20##3i?!LoGP5ŋ# TaFёXD$a)|BLzojoon|)KӤ#f23|)jVaz>>kF;d> %`H^K"z?uӲ1i23|Sc[afFFcF4Gd3{6lSQc(auYʦd}lnE55,6eZ8SLcʧ0"21#h]VjgXBILc>5SK1cz,w  2Ta;k @1kuB~q,e~hD`EʚĀ~]/[wpTUKϏ npsكjFY\!X+V. F{XbąƋ4QB F3r@pYzNhҺD-u8[3.c {DG~n8zJfꐟ!"t%J[HpucdN4HmX۳G<Į QPP9gj#Ɇ dZЎ tJcW=eIƹDφ4ngL&Bn]YRe0rb%4' \0Kt@e̡_6)p#ZXW4 C>8JbB`~$aoG̙v2J1_q w!ų!'LLV+*XaV-/բV'ܡFY*96Nnt +IhnV`5feʍ] nͼwaXDjP^2β?'X U|f{_nP;1ZoO) Xױh/OizBrcӹEO~mIAn -6׼u5s~1{qUxV[͓߫>{)5B=`"A!I b*Gah;DVm%QSV8?ѓ~ek+߳%>uO!mC仂(%;5—r~ğI|ͩ;o"7#+~ƌ.LO65b`IMi c"zIw-uqjCB{EW Vab^ft"NG(ix~Ĺzj|e8 Tbˡ^uV \PYV9k?Ib Nf`Ph@R0Vj-c];'^ӋMЯKq2;ټ/%CK)zOHeӲqUU_ld CLN@nM#M6dS%.2ϼtLRǕo@@v E4|p#@X78ؒͅ_цִ?鵂: _9nM62dϤR*0Rv bŐj0 Oޏ B6nebs"蹏nf.3@#b"E61osFh"<5-$Iʘl"Q 0ะ`Y~lLĘDil,@qnƙ.R%Puoʎu 3_tҟl_qV+*V+W*8qbŠjv<]/Vf%%a3XnW11MY}8Ϫl6HdD|;x:Ә' KsC1WctB0L .e/|3.:b`t1WY+gFhFb:KsAfB3IJ!鯔n7 Z|ESA!j|:>qZH9?hEkjP=)=7Q; $TFX NguM5 0tg>m{G\3fo CT6tOhzYx %HZ^AP@§4"9?(O.]m)]$,gŲ<1W[!x2˚#-J7Vo cZCD+dž0i\QXNʶK㑏IESG:G\UFh''/9 O$ϱ3Pο"YÕM,&nǬ0Hݫ9O ek[piQ\{5iUI{Ϋ& N#HONƸƪ %X y 'G`*j R[|;W L><^ 4dqq_oaI:G @;Oku77> <i$R~ӷۜ 9 (+r| X$_<@y݋IO 8]qcϼvlg'y@A!6wiV 047&oC=NQKEw#uˍFr5Iz()KUm Rƥ*'[hnnǭ*?]grqmo!Tw+QRݖW a8:T'M?1E@ TjǑa-fWٙW "0ĉF6 "\$b&a&Wi!G9Hv*C>Q=f}.Xz$KK.31c 3춐ؤ0Yi9Q ѢtRON0fpF ,җiualJj¢]`PT-!ZjBIbr^xb0Pd˫SbsB1w@f~W4Iu`t {c`?߱fOo08D+B{nO rL-$ߣv6&gv=a;KO1Xz+jXϧ Cat蜨$"ď)!&R'R)RK0'$[}i3BzI!d/i`WPdX.rh0͇p3f,A -vTp %h~V+a, G> \*#*"D;qӕɼ f12G\F2R=ygŇEZgp ݅Kqol8޿qfA6o_>_ʟe3lvyU;2,qzC,TJ lEGAkrxc‹ׯŒ2|e(%fD ;ǝy'Dm۽e.> "LH(3EbI] ?B*T ? ~a6ȁA?AO 8@q\3LxP1D\x@C)y@<S @̊'?@AWD "z`A ɶA9/[C pꯖB#J %vx&0 PdpQ[P\iCCcV x=8V@vB#5NB@zW(t&%$gK2o+_Nw>C*$iPIG9F%Z;'VMjWk<_O@%1b񱳾4**P2p^T ܃ʵa'<.'*Gy_Fs :luV mR)Xzj {Yl.1]QÊxB-[B&y۬!(20RZ+G~ ;md326TdU0G>]D 2)\[#Gt^'}e9GPCf%+,}`K RN߃vT4MISVVx2JcZ6nF[6̡sC^0}" #[onJl-}ܯV-לrӧN7r< /ƼY,rdđO$PPh En0B?UT tF[qhxRv_4wM0p KV\Qk'څ( ¹`qmS BPdWU1P,I 2)X⁘x ۰(RHeI6 u ϾRŋBeC͹bA^+r}#ZrV.۔Lϯ*z89 \s7׋u9)%uqIhF^tWVNӵSʡ867eO)a+/R7vn^+ARohlA(Lkui7C-a%5'}"{!\>ae_ʡ&U`ДUU֋ʪ`/" H ܔ;eT>.AC7;O'|'ݹAmku9v`A6 \7 BW qx@〈Li=FizG0Ub u4֋>IAGPy:z`8W _d=,x(!85S>f, e˾yvJi%d` g0\N%{'pc%@:Yb)xdձk-=[Y:f(^JLu8ɟSˢK4{?e>p&=ZW3cV+2W]68p4qYFo$“ FRRR---,AKNM@WJOk:hN#289W $ pp~!A}SK ]l ,e(Pa3F_jE 5Z#r\/?֗>,Lpj=ʻo[^I^YPbͲǕf.vBIMDI beG(LKؒd1<홦.XkO14 i~ńkeUo]14V뽘ޗBd3NO8Oo肟7]U0҇p1ձ6bP=>zH/=U(x!_|w rt0ߟ Gy88WaBVʃ3Yj775tlw{m(_2w2z;.=ĩV  &f) ÉH3*EN `3`2,MJd}*jKSR5Lx d* LmؘH/f|yD|g]~QG$n*hm~OEojPWfAҾfBP Sӈ?Jя{݋{XEƯMvNE`=HAlq=K۲^p [|nb?=c#ttwg<0e%]jb xD, E:ɾPl~!8%i]!Y> IXyd1dkS˩@bnE.ֽgncs¿49v;!!1 Z8+\p`m>t(ƾXCǧo Y{ >:OW|}w CxQ ;i{S1 ;O d$`C5(܇xytȠuXgҿ-sCiP܄ ǵHsrbJ2K0pL0G?#|V\:y?~˨f+ۀ[_QKd<mVC5t[ {ipQ ᳶ;󧃹D4Lz4a XyK\cC֤lB\s >39X"DvV!zˊ0)~v # ] p0Ŋao⥁E . ؔjQj驩2}.\Z_RAEA L8ѾK`rb14Pupah/N x&!tQ&1L \QHeFkxr4PB yx9C_roQj^mG_^gSCу@0mcNJƒuU(yHk:+/ kQY ;(68 @{#هz| b~n@O6nG0 Xr+/maS7/kRH^D@N`tYӇ롔ugy \ Jv; Opp+;PNNizL,fOaS(}l8lvk[h&8 -Ӊy?yV lߺ9sf7f=6, I44-5i Uk 0LI!z GdAR kew=C=kWh s^4Ѱ!u 졞QCPqkhD kxw2?scVF.CQ pd$m+x Bcv@ˤ\=-ɒ$LWLJ{|D?8|%m+p\oY #c!7>ȡ飪0vo#K8puf8~kw×8˹}Kxdz(tY߳>n\l0hqL K zn뙮iNB$B^(؁!>BNlxN^^z:hPQkL3R)DtRA&fittd:>멐}<ޣ^nH?Bc|ur{ȇ 0s p0C,nBW 7N`l$A Xz*#'h;Y=R%KR/t_ |K<L=NÓ\6>' 1_\D:i:;i}R!0ClovC?Ԛs~ȻCۥ~epc`7tBf}2X` wd{pQ ԹbpNK>sbDdoA S@x}pdߡɏ7=$PC*Org %: fDӡ@̂&H^c(yI_ʳF1gV#:jACY mDRġªvV``t9v~xzRC4eӹOgoa\{NjĠg9pBfno]Z?ˊs gM2M IQ#?eТkz;]{vrp˜828$i!A/h7VhqO^m׊CL>[f5B=[[ubl90zf7f ~#u9ٞ+c9xυ8PfN {>#:CcV.f;̛r ڙb^7- *׹78 sX1w>jx^ SNbB_m! lf}R>c 1}7A/g* bg7:}/$+ (N2co #5I9&{a.+o]zc0B:'8+M~PՎbP+Ql- Ϛt>F};uYw؄ H$@j.S*BJ Dd$dEZD "F(wQK#)`11 A,@)*, )ܰJD) * (%AE$D*TdH1HJ(DHJ * @҅@R)!"H*T" HȲ$((  I),1 B2$4 F*+ HT dAH$E` ` !b"P!!BBAPRDD* 6@$Qd5H5J*BX!@ anHEaIJ#"H%$ Ȭ hTأQKT @$CB+B HLZ߈H%E@!eP QQdd@E!Jb"B2 #Z $I# T,D((́)dPRXFb XaD@Q@PIb H@$A $AFEITRD$YBDI$dj-hDB@Ea  Q\\F&x@12YBOYA@@5-'7otKuA G/wCrTW+d!ƃ`7%~)>6vIWF~G#;N_2h\6{H7v;sur!"b@ V.+ (v'r xv;3Z˽ݙCy=X;xޭFa{y؎&F;:oG}[5N=َ\gv_G E糃kp-,CaHp}{7P~28C1G#5 7?G."(85Bhha͛yW u?s rC#F1EBCD <=7 Q2^jbW*WO$DVq3$ tc.~[{7! 6aa6:xTw=]274GeG;0Ce r>cs|&!hpA^ Es"^POy:^3PAYu3P)qUYf'3pi]G{!n:ǸsYgѦ0ʧ2?ćz7C֣D7B {+^OU| =o9Ó/Pc ][:/oX:N0eWicϚ>;mG棸poWNuΗńpYd#$c v|> 2׷-PZJdswS^I.߇xCIcilp1ui2q v{@n8FԊC| `{/cJ_k2O*7إCg $P+Vy«dPūGVҭ3C3fM2N2e.AQq[vl>CGcQ6sgbS`&,XdWk5σ~ ڇAiDGKX;Bb_/uvjTYvYp٫n;vp<T1\P$qNԍc i& RM5QC~e]`v2!ZKg:g &]rl3pSNЇ  įhٮ<~=^pec:yT0(}(|M9=҃n:~J~CC@>01\'Ǥ= :0>K"=WL#;$ V6Xr[﫩ֱ[~']~uADҩ{ SP b 2Ǹ.3GW1t ՘=Cd5Cy!ZW p>hdF3L:{o/HG~d唬(sM˹p=Vb3灃<ŁvC+fQ}Zv["@X P-TV%“Oi-‘X;ZO+VW,YP< p:X|r>;s A^hw ̈WǬo!ʀ 2پg<>08=P=OF}y?Wls!FxF1 & a0oCb60+0bGYy͒,2$[f&%Xc؄EO"$;eh40q hN!BЀ{!AhiD a )! 4 m,+c>K_. ZkW;dZ;F <=cP&u 7G 5ymoeoô_h#baC:C1`Q*byκЖC_U6?x)_t|_uV(7qMMiox>o˽#:hYXKC*V:%E^6zPXYjNup|JTpA&d 0) HCc].ٯBlr<+0)Eq`7;/"],Max?9w0ly[Hh]AɌN1g_m?~*i+̕{K-u?}ЪEtmj'=Ds=ǟ@.?vKMarA!C,ʎЅBa9!ߢ#HxA8Yzm5`7##ή͘Hro]tԖ$؆r'5K2`'YVE )p1whJ*^ 6ltQI0tpCjS1\jpo_Y0{qQ DŹe㣡}!ឧLl6PS~ USąLsq^z\{l-] ,K}*Hml6|yCr0 R'PT*TRJe]'4W蘾 hm {[U倪Aw7g[oeC:N>_pS:tp&]{{bɠ~Rϐr#3Ԇ1حoK40!H̉`|YL_PnPGjLwj!;rEaCpm?$9D3zdz5&С֐[m8SKrfPv#+Bs-Z'KOn϶s_<3W7ڷ?z/K =_#gs)L5n Ľl" Vż6I6 kI?V隖;H<4+yN\%*ˋ*r9ph6^FQ dϫ^*NLlXR/;ALL')gupb+%ǝĆ e !,2[4c8$cBᴌR;m >@TC_J#ƨu6^nz|߹VPޯ~ JBAa,2GG1dem8[~Ljqw~1 ,fTkaZ螾 Ƒ*nMɩ44[yKmcho>&_l_-cf1؝Bo}JLmN;]~' *^Hvꉗ3gZq멏 /w젊ՌǼzl;¨X)zG4.$D]!u_ H()ss%>}|E3q@BԼ!܎DGPcؒ zq2eh`Fv j/3,F#!R5*J_`lUp|[\/wzr)lL~~-,:Ɔ)NQ3zrDO•> OGSR 22@Z ksբT讉  LG.[*{ DљLHm=X韲/l9pmL| g&_l_%ئF*D)2 R* )rz *>Q@eb( Ĺh\9DYՁdi4z'z^x`:*kx6,OsknÕ(HC; Gևa5~ֺ1|_) q*q16%B3PTW(%593̗yMjjrǙL~T{pi8zZ:P[`/\ sW)+q5v{G'ptHH-~}zkŎa Ϯwhw\q [1$X ( e[bmϐ>VC@L Ns cpw)J>]o>| A2.|Dnqguch{? $?S+^sٚEADDd5Qkl\_(vx!t\T*YaИ-al-DE\h;|r5W9ew \c$N 8a\*":tŪȕfV,jj"ܙeP$@aNp-0] j;!⡳~,_<1lPg9%(7c~ZW1B]D5ʊ50 r fS 渧qI(/6G9k XK7o٘,:[,iҌfn#- !~bvI,Tl{ȣ@'f9ߵ7Hd,󼭗5]!HR C3-Ǩ< >[kB|w%Nn1xlO$_nӨmp VcXǤ1W ~0[fZm# yvE85q}kʴ @dK9B)ˎto>}i w:ވ 7" QoCBg\ ރR?> -IGoEbC &￐.1Dj'"$(W 9,H>a\CjƗ>vj8jur՛$ s+tU@իWwMGtn+4\}vcJsO 7N`DYDA;IP]5c'hzȪ#xn@YdMDX䝝 ಲ83c\!+=5o,;]9NT7xwlp[zjT )\L h9l ^9<0wZ#9qc #aXEA&*o:ϺE(B <ᅠ>ΎgK8m10DsG+h t}p. 87Cog38YOCk~)Ɏ mC(`(z̰s?Z,'5tA M+GUNp`x\Km*iURrE bx=CIK:zYZ>T.KbM?tєZ;5$^(2- [CB;ęFn0j f2df͛08rr>b@:;* f7 =S0_a!U9H*Zi311^?*?-.<+}ܐWAA$bkoev#p01sРe~i6Hi-ĉ`^V5}ٴ-b.̔ X0|82ٮUzzle5  D돽H*_źǘavUZHb^9]j]'pte_(@|`ǑC0:DXp PE3b2'<XK\=F_}3--[X55"MHAW]r^tM;\Jq-IgYt}%aÑ&(H9A$-=wc2K_W)秲X p4%DȆY¹/W*һ]u#md?ǃҜekT%!lǘ#r@cx2* œG W,*q4sWxܠ]*Pj+7O w zo斕y3n/Lz3xzLe-Ug ^܂hOS&l2gwһz)&IXB ͓k]%jg a]omEa-~og7"/nUO)%:Yav'ϽTk;"pNT]kd[ >FGLd>VA3=[9)b,C> "¼ŋKCztʎ/YcX%8њS{o'toÖq'&N`b s0 E#JecR^X𗓛sNY~=æ`Jɓg &u8N7wzo~ܾFW :i*$$i.Unu+o0F]Rsq ?R% 2Ab͈cԾbHjڞ CYe5ː'ڋBbqeym5ig+akU儭]՘ԯM?n-YhG&PoOGC}cRDgJ\j#ujR2`VԘOHxq&9ЬZqgd-jrc?C+CA}"ϯ.>Olzu.)Ąb VS帘ť łpPJb\[0:bq?)8i+q'%)n[7mD, cM+s ֗`blIĮ UJExUy|zTUO hryV8+//5Y:@/D]<<5B",Kqu2}3mڳ3_t&i\ ~_/]l5;}n7Q4Q}Sb*f\c8ħ٣pN0r i;WWme#4 \߀>பu[zF+"9]oIm2+ jif'*dq/d**qJJ> '.p~!?ҤsHP#IQd+;:˃Ød3ޜk>\\eZAbԾubhVsԭ> R5xa ǡs1bc Qbٳg 4 _ظ -,tEQwb9'-W9o_e <2gd05F&^8qD #qO}X"{ SLscJ$ǙksE6H+HPl  UnZ 4GCl,'nMŐyjKT*2#> GB~@ѵX{vƸt* )0,?. d-zRG;雎&kGv5Hq 8_k==:S̜T.a78uɂX.p/X/_` :n"*_]T U92gٝ.eE}'䎛aAVu殨d1MUCiJ(N$׺U) SkObfVWe9"N ]TӮ4xґŝe^1qǟ߱S ɃtG1p˰Ǭ<ʁ|bH2Y {#Fc:.17[%^ؼ^hRѠV F&h}ь]c |9؀ƌJsCFV1|/UG 6lիvFXL$AK{E*͓ԉ+T's'j_̽pfLO5͕M(#N)v?<2)a„ޗij@Ы|X'\Uv.Jmu& zRխ1g@TYr[y&%Omf2tKQN U!odK'.ҐBoyUg? B6іu .Ku]L.W D!^ajGY%oB9X<͝T lQUe8a!hGzr;.毹sVp(n(qQ|A?n=/i4X%'2зhߛ{C {7%Jh b*f7+ŋF#Āf "WD[~!}8~3CKRc.|՚gk: ̨7t$ ;REB(Gϻv&?S(.1րؾRﯱN""gp! Ȼ\hr(PC)2#VYl%B(WP Vz ejmCOiY#Dg*$Ao=f5䝑|<z?FزHikHjr_geLi57a b#톘˞q؃9ikBѿl"T+ 5 3|XPĬo8\ijg85$gWHt˯]O~OD$?PV9=aJ9bw%DQD\D)rT*zn_4X O#npn!ՀQXPDŽo{d?DHWIP(:Tqud!Z)gV!MqҸS$(= 6aXih䤇I壁{:YIk9*Jtn1cH_DsEM"M^2L̚Gی?I_ў}=gpIbD\R4 VxZS!wb4Rm2 JZGq2`F.;Xcʙ/KSDa _;$5&K~1I|cx)?:+I9g@t߻&\-?~Ej`\ [ V.^@ǔ7}DG!l\lYO} Kb) 2I>-`Gdޒ]?QomRWTnfr{T~|q/ #MD "hJkVTSaQ'QP][?`Vqg札K ʭfҲBn a3zCSSTw z6_$+=U S@0R?1*Bv^ԵK/pG򈱝 cJ>=sZ`2ۂO7 ]yh7#Xra~'!yNfjgJZvےl|{XO!0C븪*Html\͕mLlA886Jm_\fAdΛq}"8RB4XRZi hѥhZԕEV⮼#EyD ik >!Mg~=P!é7Y ' NH]3eQOߩ?XgިgӷYDť-^؁miF~[ou>y8KzON"irT_d xŻ_V xp+ÿ*r,~AOڨ*}dEL9J=7aW ^(}u!D0dZuyg"_mr:=yIuhn qivdFtou;N]ߚPK1]Ҟr20Pбx,)3}ʡ'hdlvPt”n+_EkFqp C"op@Ʀ:FW4KKF1%2 !cR3,j1#Ȗ`¥AFllʜImMoSm[K^݀TIM".@;.x 0l.Df(P2 %E @}C"ϑ?zNoRx X@JPDrbh >"'‚0$PP$CDj2 Sks=4: /@@Cܖ>M?6Xh +"z0W!  1P1 " @SZ zzQJ7G?_i6P! -4CD`'aCb"uPTAS2)E5vH!/? @]xaЮ bNHHh̑ ݹϖX4x ?llb|TGøU9D&(cF EE=N)?  ERZg-HiN7p}_q؁f)pY1] u>B*Y|m'V^"+VMXLU(zDSJnz86MҸlڷωM`V_NEM ).<.V *aSǧJc!TM嚂`7aK1f2Qe{hUQ1\V)2c`< ]ݴr}?*$b 3yEC+ɧ^M>,ڌ@拵`f˓W/}L@H_T-]8jU=P'*`8jVpL&#),~:v<.bMĒ}CYgI|-:qx=HHl9JnBn}|K皪Q+/k?~ٙtqr8dح37Jm& K"+-:Y/l>V&Vb*Tbk7=9]Z٣?[5^*tKcIA h .-sBoP _*w|^|?̩mS}'+ k_R1-lٳgXQVfEaTuH+J⺸JI!uޛj9)iP( RϊL<%kPf{[ɾ2(||_G"c_^jxB98E>=FƝL3f i}x4Hm6 ~ka![沵aJ!+u*3:c6ayO;,TF. 긧۶;b)GU,"-gO\zE O1O\Aވ2a0e\tU%IW]˞"(CeƗ$ sF׈ɧcuÉi,ƿ;s(ܯoȴYј6`>KFB*Ex Eq`IGCAh*a"y=jS&B{ kTР'HӐ?ٟTy'q;4.~e@>% M4efJb eٙb0%֌-2P&׋[U)qݞYN͘?QH/50~r~#&IdlO|[w"(j]D+DsIVaBxM-:ٞtZ6xE{孪}R+ !D'Pd3Rtv=~{R§@k"+TIҁ\@ǘ!TBxPmPF  Bޅ( gk\T&1"jIm4%hn?ݥBgkGq0DTVbZٌh4s=)g#}iLwB{Η ~a( ye|,"YyNu`PhlpAmb>ElZH& A𡎪aؤs:㋃3c'T9I%C?Cf*P;GqB-P:lv lCwQĻ#c _ ܸK}t ," <ʼNmj7Wgêm`o:C@`ksi6C6P`uD}4l~@=r?=xaDlʪ BNq3d)nXŃ@@[<Vk( ;: ϤOoL`y g{;g­rѮWׅx#FHЏxW{p~aN&bM:[m >*k{nMr ;P(lۛm KRCCCSSS###SCV$L@4o5M6er{4[DTSdh9RP:\D<^BաHjz|ul'DY֬pjxw5؅(rsL [_C1?i {7萆ԛmzD歍3=~6o/d, ad< ӭпi-A3:CCpn1ֶ\>mVwhV]:Wⷹ< bI`4 (gƷ [u>\`~OYR0r8QC⵹ޓɫ0G3~5h^~ 7dQd @g\KPT*L]q WWZV,VWW X/=wL(GJxVX{hmq"^=<+C) Ě;!#&k#vL0bc ?o'BQ%/ȠS,[7u'{f z;Z_UxmqU+3Tó_E_]#ӓbjFj.oFOW{[w'$XGxԽpt靐<̠-:$5u?'l>;3pZ9_x"PUQjHUueS2$Z'j*~>CVk? LCxd@-% lj RKtbprrlǢf{AmL&a&]3-P5_3 g\&Ml [# ꑃ'sИsh\ԣI0hy˥U=$q&]`-r?I|w˶C4_'9YNuU2\*1e'9ƆV4YD8Bv64^6xMMuj|?}"Ah\M-Z-Z/=Q|&/^>y $ &'*;dQΆpߥ!e%f%(Hf͗q#o]=ؿlͮ,CFS+> c:.8V,5uDT${Ȁw]hYR);@HCd#uC+}Xt # Vᘼ<z=9vCc`?o-T-~7sk+HB࿫W\67kΘ9TȾHc+Rg60oT[FfUnbAn) ݁; )t+ity!C6LHy?Kclve*NρɀC;{(G޺:Ebd7r|wU 6=o? C 2tUDgVMVeMaUUUWWXF++ય" #RhR+BKSd|uc*G*H+9YM@?T,iqi(3aAn y`FokX!gHuD 3*ZPgWBHuu즎*1D rEyD;k9.w[+wܲr&{ WeJ1 7uOV:4K0/{Xc%(8xNQ9FZDKKPT @Cfhx I4 K,?SMyҏW@hAd|mqjM=!V&UPǫ,l|ǮO2ByDrlytp+ĵαݍBGRBd7gH8F=X)U)v% [S0t6Sa:KƑ#" |J~Ö;6~\q=ƸmJ)vU9}3]W6 lN5eu#]ޯJ' ;9%:Ǫ0.ŹZL87mZ͢k h֏(x4OXט\wnY w/vbAxT*b+V,%#G#fBM 0{QiHb>h}k d2g=1lL9z?E{Ţ}r@LVUXČY1z62Yݡp4. $V<'56{wVc4?Db$dIx!JkӅ9\3)<ں{*+X@r5=rf3XݣiJp`tSY5jo*iʠ@XxlI6k8aQh|s'= /¤#b %9ꆓ *ܣJD)¡X!E"ȥX)T*X+Vqf[ߤ82"4bH-'Niꤪ<ơȎ7>A_~̯>B| 2 Yqwh #r sP3xbD*0>!,2gL#*Bw͡Ӿ(_bۉAd\l\KNuI6{4z.9^C;0x\A @.]N f8"d2!RUCAZ.*I(VV!SBA0O}I#8xᔴlN1 o.' d\C*7O$8jZBp S-;3{H{, QϒP-DKB޹DV`W+CcKi:nVH~M0{^_2T7> Zwk 23q 1QILa3inV遉LLJeZY9)0ij&L̚eeQD)4ѹLcN&*)33IjiLbYƦy$G& em 'S.44)j?4R)jE&"!2n锩&_C&ieM3TC&eiPCF-43闗LdfD11)LTE%:g["!4~2IH"(tHZE1nS H7L i)SJI&Rm1QIKH&3="y$L$"]ĥܪebU4SCB L$"^ӥ:``S! l! VL`ڥ:b"m3siK橓M4Bi* S& 47L,*e&5*_K4jHϦIޅtv\żMvtfž64߻`db ռu3+rgѴ!L$`Xh~=hI3KxXByx c1tiKvۄ ^t(._d[6:~R׿XSo~",Y,XL.&˱"r2lA8Ńt:Lw$Gk( s]hž AU9y @m3k/ 9#? uKwsz|cv_#p<[+A>.CKPÄ$6 1h &Yi}hXXר3Rjxhh>$>h~=YT1+eF@nl+n$Zɡi;el']aCkH?U$䍸?(cJ"xG蜡Ir\+V_K%Q`qbF'dUrfKC"vlOP'f{yA$ou-^\ osg5R *JŅ BL0 ׌>2sQԈW=y/aXÈ, K,{^j=*jCJbۙ_p#߹gXv`;c'y_ '*b+k t yq ,-mR0LZ f5NQ]jfO3D  šG ,;t1:rl]#>&å>) OZ@9߷@U#UBOj^kxAcī< 'gY/j 18_Ҫm 4?Rn@kW̦B@ Z`0@Ɖ. 9 ƾ;ﮥP9o/&qvO3LJG#2;;0{5Xq~|y/NؐĎ~7c1ՆKFt[_| 'a"? _Lșr., ]9)ŚW?V3so}e>Tb`fHL5GR7m?6fo8|`&[K?a.p_BIT<nBcMQ1^OR.H'Y82*mmw-Q㚅O[8u=!Q;*K_ʥ"FafNA=sh׾ elk-K]l*IW_kMz~vi(eAcHlf 9]0vך55Dqb<{UB QP] |ݧ ˒uSQwLTbx Kcr vvUzX.˯ߧ@W8*x[ IY;5_:\)y+e4JWLfwSO>jr:NikiˬeTZ#w8v'N(d\Zep6o{1getbD1u;ؕ#$x%(6ݪFrk&'xߊ@F+|=(=|`7&+f-bg7k:`*6Oi&kϷ{)H[>GPIM(yAr;{7}uxue}ܮW1T݋߹VxpV@xuА7% ²oХUHnj{ÛJ,6oGonE>s&uVYK,-*@+͍c2Ϡ]]B, Ff7Ⱦ!pFHL64iEzY̡X-{T/+m-p;GKQˋ5Sl]Izd;Ynj~Zm֥3b{X 4? ˊ˘ؗ~$.&@uA;KʓN!ǽS+v6>WM>yv*8G߽mҡb\Mrd܍%8wKxXP T9iaRc]S1LEc= @o:":}ntp)gq1—WK'x+@eO gV䜭{|BEC 0GسF .\߁mg8Zyj:J:f)ե/^΋5 P^p1&t^n~%RVzyaFYM謁[ڹ=u"Z\*d_6dI塲ae^Fj<(3roJ&t:,qC|qA=?!aL{{amUNV,VZ٥tl8h^Z?$~j|+DR\߂LrS& ˳(EB=8rqu!=&˙|]''s.:mr+)Xy^w(xȕK$W+lڅra]|{'UTx MgIR/ ;s+_qD]:>BiE7g!zv}s Cu *G@w6gݬ}tحy [y@doTO2}n:3n{=2<~7ۥՉYEiUG~'SXU<گ@gzAo,V85Ȼd1͏NuX+f|/ Vxmփ~4f;t̯*qvG:*Wc!Z+v7 kl[,\Rz}sӾjӰ_z@zS 1IOcitIC<3+SAIGghVύ80AK{G_'{#8u}&3-3\ZSFbzgӖ:x;!dE=vzCjB -D8@xn\JP3|hK$Q>v-G8qQmT1}1*ե/ KbK_`c.l!v/};r--l䶅LB]J8QΑIuwO4Y꽡NǙhcLvi_gՌ_n@*/Ό; }%K9jCd澟YzJS.1a#}2R7׼ˑ@,FKi祳#iU`۲4&`IN܉+RrάEѰ-8/upAEK4ػBǔL]6..6JaiQ^vŝ O4nzar凞ptY.yOf[mvawB-%U_ %cgcb4zM(?Nu%zLt- & n2^j 4&A˝GCg#2q0Cl؋&SRcχ'VvCy =\d=(|? 0s7Y_x>~2&q/W /-!Nby Vo ".~?_)=Nf6xoxs.;Ao &>^w5^y39:@`hlDP70&aKqCoS?>mvәro e/ꆾtrJM\D!Rc%u: 70{dv%f:l59߭f X(Qgg=Na4|O(EqAU¿N(uklh# P:ֆE<ɣ~{dDlIB1Ƿ U/ ~N#P` 9ު\O!ѓ%> e V,Į]wy,<&ME[z`)kytԼE",VjiAw^D!J0a|zc,.~T Rd٩wFoY3UnFvg5u*>C&Di>ᑨQʉFxY+RAT(WӤtՔ1U=J.yR|Oq iKL*@ \&[ΣG GDC} l3h j?RYߩ63ZY47U.&$SZ@IW B,Bvh+eFY5U7\#TѧBB{yUT"=*r*{K]J"7h oiʚ׬+F[HPQۍgQھ_65#'$~=Cap >DW埐M 55[00`% xo(8t%Ad +zIF ;33AF,ʬ:Z&(_2 )qS0hANQcfS)?k+Zj=);[2ª!8n܈| 5rF*)hjk4͊k]H%ESᅩU`Dl%Cƶ@6bKIG0(R^F9 q"裏G1Z)u%(iJx* q5ui/!rm4fFV&Yp;YxyV?4! %CIzXz Q"ֹ"F:DE88F^ jzGэ"fĆMgMO)TfMG<bSȨ H&+"Vt>wi!g8u`kz9\LȾ椨bmEL6)1$J@de)+ ȳLI±T6!n-$Z $% #\ZF/$ΧRRZkYq7! U'RbDV6j8M-HLdͼUحJҸ4mP#k4k ji1 D%ma[U觕ZjdM0r+%VrPD+Pk](tq,[o\;y^t;M:pNM3)q4zSYt$vDj0>^doBpVZ԰Ga 75Ki\K<ɑs\TbP/E6Ju9{4r "c0e=Μz_%q~M}gcJ>m{b $UyU{CjgkLE4,EF;t*OeXCO>]=Hv4)POu'D)TWOx?d@Huџvӎyc-=i@h y=&k+?a-q9w-vwm1c  Hɓfe`V5\) j+"܎#eٍOPLo6Ҋ=.tuIDh7;3ƘlrAHkRI_9xl{T`m//jhO՞|a|ym\T)nۃP܉iM^QVGG8'+:d\%5(M$chNk0,> [=)ze6z;1I:z7n;[deַ<*J] C?l9,EtVd uHH[(R@5p)g%askؠDyLiF"$.~hOY#Nys' o1>?FQaFORr˧bܺ tuM_l[G ouiS?zܡU !]/g811f>tz\_J FY4@^ 譶KD'ZQJ퇡}yc5JQ{i= r'7v6tutʼn26U XczuI_ωkуlU=IoÊhɭ˩h68sucKZtvh=ޅҧvgz^'GA|]f'}_-N+|LY/^= (fnCND1%K[JeSn,`MN\RԈէ4Dlb J3yg6Os>>ހ^rۙ/IMS1MTj`}E 1*ejǢ8X}&L^/=ٞv:/v1 Quq8{Hn gqO+.ǚ̕DmDKwy۽.GwEbش/{5r  'NPךC؜ 6>9u%=M{Ao$r(`&|v>}r IǪHUЉQmq3UxT|9 نf[AVlC{nWtn^|φzH@'pgs-VR6-zӝR̮?4EpO6`UK~RWC6rCɖ}1 >&)k4x6[39^rZLŃ#$;3110Z,-1,X*TZCXvb?F;LT̅[VQS+ʨ׫H߂R8d 7[fHER|5+ޑ%\::n16P2WJBQãQ:)Ig>'q]oΈ,7965yȘ)zn:]ձsMQ&`=1g;6^^8 W c !h؛kcqPeQV7x H.0UKDiĮ[&vR16ffuuʐ`Vff?A1CI+f_ X$ ~  "bQbp~`>23 fllL ioG5Aˮ;ޤ]B+.@x9 Bq6X:%I}q0e};5̲֮ͮa,#cBw=|L!P=I AuP,mV֏]a6k^SӺlڰP>2_(Z;[᤺4SȩHҏmTM"*6MRk^Y ƄZGB\ոhgV Œ10hk:Knu -k#k=#۝, pt(rn^}eJ(U}ٜͧCĊ:c^ #e EHE+Vرy+!?76ܳbJ>l\lw4 "V usN XO]ϊwf?EA).mm[ݤz饠(~I}Ul3VGڝ¯X}BRq Um"xx82vwқC2hao}x^N`/~o7_v߫Utr/_@b1jկ*Jxj1j3x!ADL'L!S:+]"ZFp絫p땇D:Q\]UZ qf ~L"׋nw3ouv'jhPnCpmK:Wq g3\ئe<| aUiձ/NN<$1(ș:I%NT;B3Ėis]ҸLj*b~## !_I؜NT0LE,,ņ#$ÎSxQ$ŒhRVU-Hx̰Rְq%Ɣ>gn&q79m QcwXPh i5+R)) PӦ/@9|"F4~R < Kϟiyf.c\i198xƃN=Kw'aq~1bb=TKp j[b['S{]cRE]'~¦)ѕOBh\Fd$"eR JPQUNdKA:F ¨HVc.=%uH eS*Q6i>`9:_fmu}v-7)f. jdmpV~6_\;f;Ͽ;^y!ogFf𷱧Bh6zU|ZO>QD2iټ'F%~d2_9J{{ I;EX-;ڻV59(JjN';H/!&HL\ ྥ5VKjB;tJ^S8?&5ɍb֫cYhҌ?*~±i UAj |Vqleܽ &r[L \"EHƦf3f͝ITcjըsVUU9][aWW!5g l O"BUw%ij7gT/mxJ'k Xyz3}sug(b*2c,[)0 }émc¡YrczWy{NKL<}n5pF:j?BWCo۳K?d37\Xxq4NӠ7(~mQ$ $ a4Z>!?0 C6h/EMZz#AymP 9UYBoFݑ J,&oR0D{n;K@Jǿwdkf6B*U΋%s_c:+Rj:,Hņ>ď+kE`W%y`XXEc*bQ~0DF-,_Wy; !e/[s_l]˷hٳg-p(@T}}P/\BCtDq\Q5mG{ Ewq>l"M`y?jUfqeYzuJe X'B\rPyf 9}N8iQ1鎍'XLfx߅ؚz/0=[{XF0E >J_dt,Xq:F(E5TPU+`~?-0Z)_$j%cy,w %;URc`% r&Pž=/_#!]w{DpʹΎ8[ݵ_@a#ޟA!RVdLPhΤj4(Z51cծ&J(̹;f]G,3 kTe@c0#ܮ}^8`0<[)"4Z>f~AbdN!~HЋx~-EK&d!;tw 2h?tĎifut Zqn: Y`4o 1K2Hsd5/ޟynkiZOö}ҍTN>ICOQFF}wỮKJw|5qSgj8+ze֞(-[t&sS'@$HPGrMbF{ع9XXg!}ͪ4 ,&ʅZ LIq EXJ:DS@Zt̄ ?6 # BP\ !8*O{_Y|*ƻBj<ȅ[×A&g1e$ihpkmRҁg.r$ B>jlDŽ_?)19cs·ov]@\.gxjR 99+NL&!FjV1PO[nÐm(>ŋU $fyow"ªVO:7ngHy.g} !PG &ۈgi:?D͑MApL `С ASsr{[F=$tzfW024(<)Ӊ瓲5LRᐰZJs/z13l/h JSHm&,׳1ątoyfAFO _,c[V;n*śBfn:A0m@=LoM\c N|䏶ykPjB@-_?zS @jD^ !A84D@2i S2CVåшfmO$0!K>tAkJ\쳻,39raO3y#xkG#~b >'M<--5թ7Ќbcju6=oc1&r0H)( 8-GV3s5dpZFY 0{a"V&<+v`ο ./l[z  .M2Lj0N;:|Gk_ @({=lV}?ʟ;A8A[ӛYbJjċSy<7.v~\vh'y40 $f;@ɴ(_0;u\y/}a dXSw3V Z`1nU/$iAą$TQ =1J?J?Al%_(sL]\mSYDLe ]`_ οXqa8;g yatQgcvj(4QҖJa^T|JHMJ>qh|v`tӰ|%nQY,ODʈG{7X{ co0aEXg B!P(>% VM\pM@鳞}k0k~~~ilz-V,Fg0 UlfHP8{eAW UDEZDPM(Yԇ. v4hIwF":?kuKudY1J߲ 31Q CxpT*T C!b6lٳk0 Ҡj51 cc|Ȗk8]ًߪ'^s5:ֳSK!YoMOۿOZ#6* /U0@aQ<Z6pf$Jj|<*˛u Pɉwü\ɳBڡd^-Ko4ho.2'^Fc}n^+ѷ O[[%b5>f3tejўD9Űd_ H:*6;=a̾$*,+X0Eb9͝ 6K$jd,rh9!/ˣ,}ƾyvl6TnTG)iz):T_?ɡ4p/xJrEB̙[FR9̇XbIN(Th՗*0oȍSHH jpG!isAJzD8JQ6 H{UQ[~5bMVxuЁS . "Z4kL7 y(~f ?tQ|S+&}Rp۸-||t4fY ~@+{9廉~#TEص I:7tj$NxBUء1yذhu;&ܵhK^ͨXiY\E,øƾTPp\$QtŭѴ_ڟGx|W`cUNF"p]u8HS$Kj1d>iELIo&.)eypGJYR*TIz8MNrp(\$9ff`ُkrel`͖ᒨ>9x,!oT8 oeѓ_\U3m'tq=*i6 nsdV{&Nxvъctb׵wYOC m-q{n:u8RZbS@NVob?n3Sy?B>%`>-/rX.ǏH ^!ۀYdPR)ӗb`:A8.0p`m.W:ʢPż|O(6ŘZPOhP$ILYH2pP[l,+Ql^;V1m6kFJ^n&/$KPYHGu=EKܶ ~oyhuc!ko.%Dh2mk{;~cru˺G&k ?<ޏ[\RD{ݿ.fDݡ߈JXiIIn7 t`t>*TYsgq`9\ VC`Īq]= b^5W w?yKxEFV&EGʕkEEc5EIڕ!RUuuhoGyA\b2V?v9 P\ ~u t'УzU \Ca׌x'eD@{~﫰/xݤ},O7`|-.!d);0Y5nRu)- B nF)*7鬪zU)*VO88a%y/€o"KI}ۯ*Uxʦ>v4{t_Jbd FPhG;l4ExsQh2hS 4!b` ժTabӉ{f&LP4 ˷پgB8bLXl{?vI@b^HyTWGOa3(3a| 䍡cywCڔ:l1hwz+5zdLI]oS5^v&>r_m<ܺȿP(>5ci2-%"z.%*«`H(^1#F#'1CR/Tc8LjiLl/E)c7sW8eoK`}G-N V|>67Q&Yͦ#nLᏨw:Ģ{ПyRjK2Ap\:]/dh_UDprͻd|lyGyowĤC#?\p)g_cz3R4{F .0D753y[W81gn`V+-[C, .}7R x;eF0#=D?b}zl-!#p#PG H\JqSZ|"EG qH JEc/D:l8_?t;1mnInҗAit8b@v]whD#kݓ8p܎'h7z( />zH"_sl@P+b/q^85|% reV aԗDZGw hq[cU(E `9`FQA(t H/_o!=kWA/ΝE]0қЎ|zƌj8CIC޴=%'Jsp.# lZ@R |_U@x\\t%3rct(ŵ̃<^I_0t8"p4=& ˻V}_c WΓX8()(  4t>~)JZp 4tUSw{ET`fbS(6n;w٤2sbʝNN>g>8?0~|eD!u\ԃ_ZbmE"0_"f-`)EkW@xǾǝTޮwV>gp}Kbhֳ*(n ʍ@Jx~+n@e_O1*{.[z@P+.Lie_|Uss:8#&Xưlm `X] HK1 U`r~Ѧ^\f9 z7"mG7/m:O4iV51Pϔ%0ESR+1PR)w(ɦ1VN67$ãڐ%.^zJ A_bލv9-v~k{p=Z=#gZdx>$c6%a`Uj_41/Cq>}57J )ܾ P)}! hf+L_O˩%bG[TBY4_Ok wC MwnCoaOhW)n#[,29% I,HP؄q&|u Z $tmF l|?K¸l_bA(v >[ Kdz?đ郵xgSvvQޮ"lH=F!cw#{ux~>.b%aX9|^(O^1JXZ\`1LFA4ڷm[GVOuw_ͺkb\/n>6hT2JjF)(ʐ#ݏX =6eӔ$yف"q'd:9/D] !N'6l!dbib{ *'.P+3ܖh!gHbvPp -ƫ<ٕ'bM+vH~\h=ǚcm?gd]f[>{Dꖸ48䅄:`۹1Aut=ˬT;mh#v/suWnśW]r!?,n Ty'G4|ycdv7HNV"HNqzszm;YAu.JFΆ / p^E.H/ ߗ ׻/|# 13%A%gLWsnVQ8J$q(n3Yst^ReXYFHZu[.F }s>07&xa'bc1pD ◯,l n/)nSfo:Dps3^"+Yh|Zz19~aS~u}Dl+yf۰yRaӵס"y wiUYz} Yx[{&[ފ!nUZs{1uP"%/ Uk4ۘW( FRLhaGks?5{Oity΁tS _?XT^M ^/#JvՂ6QwIڕ˴ғPA Mu^[Ea e8/iS6^xC!j*68Gl ޣȚ< @Ԯ ޥ!Z@b㯱Z(©꺨 +HSdq"̎$Xvm"H53y] _sDŬw{67Dkq?h!cJNo"%?fPd∀{[皖r5B-jj{՚(ySXBB1зsZ@E=0 -*a &~~v% —El 0L*55M|Զ.CKҺo%(CRRcRɊb|SHGM((Io%@lC%!'V{gsn&=.U<k^\L+\=- Nrgq1hy(v_Q¢ɾ1V*&?Za_Cr_8EmUbQ91Qgt& I96z[Y# ^T 'M5Dm%Aeg*J;ѿ4y7 uבD.瓈Hw$Nӣ44P O=Bي  2M; zFgO/LYYsch%\EX,@*D, EZ"6%]^,}>:Pݴ Gfޜ:,eE>NStE1wK@7 :QڠL& }r1& 5]*Ͼ;peg(ӖxP#- "xErk,ԇ= wV5/sD2YėnM -L# j q A0=Hg1.R˜DRL,X,pR9fWꇞ9R \[,7Bp^)T՚+Pb\\bϼ)-#k9]C`@Ύhx B)N5ǫ8ovB)ӄ^vʿb'U]Lome`e^Ptau/9?PVة:DI\"K)r hN&Pa.Ҝ1dnWD pHg-1*ݟפ<~lb,HٜoP5ѬQ D B`ݠ߹]T$Q> Br4u%ў7!'?2t3\Kb03P Av$HlYOkE2@sg WڥvQlN=, T2#. +RM\Ţխ}W;\4o哅b>M5DJ)^hر,,tJjEXM< ?Kyo_S!zd3>=02?&IT B8节MRdKQŸn/9,;'/VUdaF-!t B\3Ho_7ȃY]=$t!sD~EfT:zzeٷxc[p2 CȑpLߊx%IEd2qX`X,1BlׂoG%Dţ*xbXay s- ]Vj':79YKKM]Wǎ!Kw)|s|=Ê ӭ!ȳ6Dc|VKLkFE :E 1 Fk[\kf&kvлNvF37~:ڕlsgm :FT'xJ8o4Gyܿ xP & yk뮝b 2kzRcsG~oepX?_{SZ'YV^ `%Nnr݃*PWY+;ßk c$ 0|8sZ:z-JK\S0mtOyFӏ\SSk iaq8BxRjES0\c[ȗ |N]'{Xhp(atDcA0N9Ah=< Ѯw,wWJKrX>>->w1 hfȿCXc h^L#e2\gHeO9m.|ٕyh=MK麋% ƆgG ?~r,؛|+D(L뵹zto{Cٙ%YMA[9V.!ސ8ETiBjYcu"Cl'>dR CύDL~D>6P[Rw.Bah@w m&AE*O#?OK#Nn=7L0gj]IJ*) ztT䰤ӧN( DUtB4BBt I*EF0UZGp^(_ y ,#퇦 S$:#uhYy tֹu>Y!7,ڛZhi6)rڮqas_9< Jwu> 8K4@*dwe? AcXWu$V}<!!2xǎ='%ƟP{G&g:oСfK0d9 pcEHdɘhԿ6HTv"9`FzSCƎ?jL@s.뎷-_ }m^g}Ι3vݳN!y 3OB]?cR[n^`FgkxI׶p[a! C;jzVZvlbŗ߫Maͪ@ܘdLcu'-2c2 [e~2%V"Sdr(b9iհ7ݴ -خ F((i}#s17DvWzwpG*m \x\3R.`T1 "cdf45dyCȐ(5')֔nV"PkOZ>&*'wv^WoӸi-+>#!'ٲ}@]:?NN/+2W|aq"F]U(%9(0Fr߶8MiE@E{H,- nC^P:\WL> &HؕRq g?>~yޥOׯ1E3yjWȐ2C:[8UaWYF M+X-lj%G!,wǁ:Ee>`ݝlKD)O$'٢(%eʹ縟m'f lBM`Ĉ^4%c21ɓ1IS{]dkWϔ~=@^.o6%5bX"XbpFXw\FS"6Mrwkt 0_ҦrN9:'Ntտdn[p"Ùf=9\@t=nNPՋ|93IF4KqmwZĸrLҖ 5=3Ӑ$T; `uqԋW>D゠I2Ϗql a5xFmm1+J0 * on¯q?6ZB] (Q@D,\ _ϔ\x0!C $=vq$!tSI h"hDl0M#Q-Ĩ~y|֩.PG )nX.u z WZuo^\ʠpr#5oV9A q_OLQ-^qݼLz ZD ͙7UܯZs>Sn1@tO7晅Ƨȹ/o=͉paިg3(0Dը,9ˆ_rT2z5f"(ߤ-Q[i8?wU-"%x?u`#I>QEDtR_I*PN8H (9 ՊJXE< -F ĥ}|Ej:֝ը_AP¬`0b4X ,fkr-Cl}5tqVOm /8] /Sk@=)9C? lɥ<QF OxC5EbZiD{.(\3FaݮjAt6@[}wCv7}oaǾmUJ!?@kXzeB6F@i؞}tbPvwG-F!S[qd(:32+-f#ES< fFZҐ-Vܦ|S촯$, 寧?KKJ'* T;*U"<(! TƏ;Ol=,Apy1QPZ: ܣ= ,~1qkZf*gdh5u#>}G'ą}V)Q4$36[ݍd`^'2$ e[x0 C<`{|} 6L ۴ w7gFVVH1ROl6D7km il=͠jˆ` tʈ /Ū̓)mP v` uVK?g2Ǫ Nĵȑ!!:&b5h 5ؗ}no[OƢ'*!K2RJwEF`I\ WLMqAPP+beJޅ}sG$z' a+[)0KTeTb2S/_Y8/)I$&.aymtU]ؤq=߉DbqgDz|J)k)9cs?'fU̻m, Z?b+ļU9$n*ϺͩS`oӳmh-`߷Qa[p)'2Д?(|I_C&S.aW S1=_{OW~UN9ͽO;\NӣO ).`ui֋O))JyI ~;XHܞ` NS r0L} 8<2tJE0B!L낵{,Bl`Wlѧ؏,K *mj  ). >I.Ge-wQkzUڍ) ?W;/2>VG?z6K d2* @`)m,DAm43 OPy 飙֡xJtf s[/cʰG/噍EZ؎DT+tnqټAILzv'uOPe?ff5c]dH/\[ qOh6Ѣv 8E'ܦ퍒kim)8mMZ%k>/;;s&,GV2|D1U5d̹%th(` GXVY`rsbɑ,CeRoFߏLRU\U Y x=.-+`~_甊ܠFp,(:/g9W9S]d~׽=wL@g)k(B۾oP{&3_af" ^Ynq-Ew AC&AuOȎE (CGk4:~=ȋDye)|׺~װn_|w(k~6Z]+:uG"h[0#x ji1͎aHT%U B@ĎsmD*g;Id@ 09N'j@3^hdZ<+xH$P:=a1KP' uzA*ZA1::;˕'Ű_6~Ξ5%KԆ!Ji,eL4H@ u'#~Tm$f,s6?1 ^as,#H$F:+q]Db7v$GJlMcy@ aFx'{{*}hyiw|x^,ܾh2D9ne]tpL11<+;>8݋O6Jw Ԯ+Tc<=S2Yoc CJ'\hgI|Jr_aFr5k{yhw"9m2·e}OFXm~WI磊~a.;8: Pw:Q|F(ހ$<43 b߅>O%R1MKL S5{JoLt! M.I( oҩ$B14fPⓜµIJFDĄ1z\bקA K5"`8c~CM􂜱XMY4^2>u-V<擠M1+y!a0YLʘ 뛧}Ⓜ, WC}AgB6#:dP EӁRf@%a9A{ƣ~{LYbG 6UFt&0nb$[ran@TE r]Rjuݕ 'WO|4-D|>°[<5(#Ű@a.%z,%V(WP*]0{6HbB@HSl7"w*_ [1-pɁ^k'Da̶O;rp|Sj1UY6|m kzn)`ΪZ ([ȭ)ڋ<Ҽi!4~P.x^(xYɴ(-۩7]@j4O=smk,Z6sdFߓ rTp Jzv*a2dxa:%PQ1-K7чcA?.r~r.iu'|pRLuY`܉ׁ&$&*(y!lZWZo(\o$.J;xcF8]Ż)5$}o ]WHkܾyNht>( yn+N=mV&::4Vu"NfM^lMD]yp6/&l=R?F}|c#8 BɶB'pz}~6RLj%ÛAnZL;}L!㛥ly֥@e8s!I e+79N) cs #귇6?EAOݻM}c`Z70>5àSO)ŅB.*8TIB`Y\_qbkzvuN#N>(pv9& u $|K8s)Ʃ#!W}xhRG`+1gcm)`M&wbz8%N2R,4:JK wIɁv/*W3Gz/|SǑoH|<,n_]lՂ$Y9OEF8]( |[ܰ& WުԠ|d)8UAW!c|y39C3d;n+qHRfP ;v?+~qhF"t rRdR c } Fh{-f[$9&pr3Ov1+1^ZkP=V[<*Xzaa k V C0W\5Qņ,9e[}Cυb LfqܸsT?)zjYv{1IY℡(c|8=L%(OI+T s%V6M|GaL'%`!7bT7c5C'chjAf/8 ![~"O8'DpoiQ(ㅙJڏhHpW_*_?;3CM0f+[FAW+dW?|! N;wo-a(uwk"ugC#u G:cL|%TD lJތ1}Lks=T\Is\-p1NjRaؕ}hxA>@MBxt ĩ$By:x)"N J f*Z0N[aTUtf5_jVm׆ UV AIZٹL׿R'xkF"V?,~y3ihԌ^,ujÔzV}:y*-WӒܷU(Rhe@';/0اLs8q MN]̲;Lqow+X,Q־K]Q~Y4#$ D-v( e_<cc[+e #+p㋨w$Q5f3mq=]C+9CCxڮz~}/e'TڍTMiVVdq?n$x+ \PW_f$tl?N]|"L׵7?6`=HqvrN=I-ی ԟ.  9LC W FӺmވVnLawiX$܏_?ufjXӞV/i?n+HPtǭ:żja~ZҹE⠇ƚq I0*cL&"-w FyzoCnX2z!5="(>9÷S>$߭Nߵ:LBӿد"ŜR2^⺜ѲJWTLpTRp~X9&!~[?%Px2+l[D?4y_>V0AǦSvl8F^TDӐXEsS ${ڡqF\ œf/bTƃ6s8S4*Jv)''&b a}E7 ٢#T+#bNF,_۫W'N-`iFUjuקy<\B08^Qh+6n>QǒN9n_*~.kxut΃tGyG0+m&B\1$GV5|HiYw988*=t-ػ=bs8Υ\W=FϘܥZe$b36WqzYuq6ŨœW5T.&[A[kW-HArTUB:*?D}De&Лl 0eѴZ8 S{ hTLݳ息ӡb%D*2QTR^`^.C 7 aoy9 Q5 esr h=s}$4 ޿U|"=LFxjUhBkdZn1|Btn8>wג.Q&Ijғj4YrvElv0MGb p.&og6>z]^TnBU1_O'T﷑8W-߅_'EժER L7k H?vmUeܶiլJ.5`U6ڃd t6%%kKCXUH :y@vJ 2a 3eBoVH6ExD|-zV֊ \JJ^:TZ xr^ Cdtɒ (Ā.Aq P]a칙bz+Ƣ# )3ԕC<a6VQ±mp1`+R-0n~#YRPz`%,UB*|*apk3|u ph} ZIIeĵ1mTf+埘VP}Bn|՛E)9+t]q @[Ҵr=^41ٸmo:{ZR03O*(2s[UPhQN4mcu&iˎ\f~x.WV!UoycO)_FPTpZ.>91X˜16ǒrL8}YU?JغAcn5$򯞅*(\\n6KZ$ WX4V,ǹWs?(c{.YMV_ l1$\i%W(Ľ݁;ZI6[˩NHBT@ψ~"|ѯ,_X2/4V'`Hv.|Ύz"5ZՄTo~ ]Zl3&̇eOcFP6JRsvTlVã^QIzu>Pl4fqc D73Lo=&h Y${f[a87(p";T7)<|L86du R>XXEXȤHžV َblxR Ji4J #SOtɌ!u%΅vhV:mew |A(T-; $DjL'3P`BgK 恧 6Yd6)ܨEWNX$u H;F_,UssrҲEpwTC} (jԎ.^r)G $1c_$Fyw.^ MSa܋g1  vN7)_*L1)H[4p seja& ut*h%_:c?9Ʈϐ^rW(PSVԡhf1 S A`̀hĵz, įZ2tcX܌3&B|:syQ$1n  ]?D}B2`V87DѨڃm@#ukõEW!]?{io(c/d fQrv!S")d_yN=8 (ym'((pI2xBHr0(Nz`&ǏhKGY?CQbS xSE r6N/ &9OAKXͫy惙Y~,聬1ъD5H")fp{T0މKx@L_q[vYvs2b@Ş\H5îӆL**i`Fq_*tq́ ǐG 'Ǧ"䶷~X|ɝQQ*E@Π3]v/G 5&<SC/5gef\N[z5,b0XeaquIކXv}4-3_mCVW7{MJ]bNGZC[( kE}OmNT=+X . .`N4[oj|.]r "P4.F⋗WCi N}n߄j{Uفh@Ԣ) JcRrx("h.ckV_JD+,ҽ] QOp jE+0*8[YA~`iq3NA] 9f=`\M`k62ܔ$=n"_|ڗjy"Ͽ}(V}WbRɲ؃B40w: +yd{Fv`V=S,*%\bmB$V>i<\t~ 5'V\$l6kŰTEW 6CT)gfg6E?c8\.T8,x h5fayقT/>ywv^dF*w^s8{`ݗA0G}& jX >qyY7sL8m Z_!X 磫YB%teɺ݁@^jÕT}$?`8S0'\_d,NCyu GBo3J3箵ۥ M25c[E:sG򄄥XP\Iߏ4|:l.uX+T͉;`L KWqg:pp)2J<"5f\~Ds4^wvS[)^} `jTHj@ *FVZ$ʚWpj mߑ1CqN>ҢC696!x$8M,5+tYnRVG'ép:tݳNEJ3 8ǮS!!UЛe="m3} 󋣱:z}@W1ګ)0s:*;7PxtUf&$^Y23jZ ~O%wBz Sa'l(ᷕGB7Z}t&PtW^7R>OINNOT9LogS$48 n Ma@QZa 򥟈􀑷_)5WZ=f2ʨkJ{QpG"6O,SfVli5o3]o׷_%{ȯ˹D>3"ČTq``/ իx x)c3w̚7S֔P# 鹒茵v'Γflw?CPt jOd= =Ib}Tyzv%?X[~e[| խ1Iʊ69W:0in_ Prӯ[$Պk1ʎ>_1R9˶Sϐr/\Ȯ#S9w{𬨂q[w5'0ș<_MD\d܍BdgVHpis2!IX"t & fL GK !}1H{/1)i:$9(/wny~FRQӂQNV%J*@:u…dhZ.˗7n9rڶP48%겵FHʣP wMjӲ{Q?tj8zOS&UU&zDP)Ґ>An'1al[ڏD~~vc{ VILWV_GdDkۮ#C1d ~'H;ĎԷvёnk<[;0rNx_JC-Z4JjØO&6 6\kP"߿5qsD2(&Ĕqm6vL.J/~&,uxVnZ"ZR>dfA^_zPrE~ZKr{0έ|&Tu#R\0FU@\VnQe>5+2,l>$GVybf<<|*d+TV+b, F"2qjΨhѭYV'=43/ߞI6fu8c1" x5+r:#yhаRj YGePu`uq֯C,-C1o[HmX7O!`g,4{QT/|f[-4 {I^ætzfy eΘ4\3 i22r\p=QHĩY e,<5>Vj*}#d5fQ|8q² !ņ_VC6N!BKXΨQ/ءd`5,`A3u54rnzطhQA{-S௧W_8bq[~V$ cbBt&a驦)peAO2IŔ> ďGPJƉi438=ßZ ckoafW.Im!,D!ZӧGOrkra羕 =U $fmwM]ʽtn̛1B(9]KR@u&jOFt1Dz_^4VW6N ӣ} 3s@B@Lj] ~2RB*ɓѲ j7ZJņ Fh_x؟@ q~}KmplK]B8a$< =+H 0p6\\˼M"ScKH;CDDҴ52tJMV(PX|*T*+`]5@`W~ J^6<`Y*C>kt3̶$&bҽ<]S-`{Y@gݛ^v.{ֵXu-[6[d˹br.㎻9Wy{ }zQ73-<9n9::\ܝ]ջ7.C9ΤBa}ù^(|[Cw/m`}zW}J()HEHU@I('l%B(VU*T($  *]:=\-̘Fun̷MwQ˯^ٯ=vܺq5v7^9{Tx{]g<9=P7a{ h{w탐z{Cn w-= M:A[y<㝭ۜ9jUi\v[&\9n%lwIt{-:n=92zo07YɻSutrvrKv9i&nIܺwnYH˷ז粌,[9P*۪. nlnqwn6׷7[fw=kqInݮuoXw-u;twt]6l6ܶՓMN6mݻ۞;g9w]cs1ӹ3qۻm;RŹ#MvܻGf^۰ӹw'^ɻuum$ݫמoZ]sNvl[vܺ;.뻻aT\緓֖zm\-i flMm;k\st';!HL`LLF LCL4h Lh0 12` рLddɦMj` R F1244Ɂ0 @01O d 04ɉ0&eQ@&F2i&bbdd&SB S I'z#G=#&14iM4ѓL4hi iCAjz =F4 @m@@i@DD4``h&6L12b`hbi M4ɠhhh4 de24($20&00&&M2 Ou_LK~R|Y9ˎ{L v0q BZnx})ncDk ~/!փFX""*"""*"*"""""""*"**"*****"*"**""*"""*"""""*"*"*"""*""""*"""**""""""""*""**""*""*"*****"*"*""*"**""""***"*""***"""**"*"***"****"**"""""*""*"**"**""""""*"*"**"""*"***"**""***"***"**"*"*""**"**"***""""***"****""*"**""*****"***"""""*"**""*""""*"""*"*"*""""**"*"*"""*""*"**"""**"""*""""""**""*"**"*"**"*"*""*"""******"*"*"*"*""*""*"""""""*"**""*"**"*""**"*****""***""**"""*"*"*"""*"""***"""**"*""**""""**"""""""*""**""*"***""****""**"**"""***""""*""*"*""****"*""*"*"***"**"****"""*"""***"*""*"**"*"""*"*""*"""**""""*"*""*"*"*"*"*"""*"**"*"""""""****BhET,!#TҨ*`#(#(#yAT@6f?->)fdtWue 4{϶_n;MrO Z+.2}i|EVٷkSlYn&S!km3ݼ[OnXTn|*֝/BU+ufO_7rZ}+=Ɉ+l}*̎੡,}Y>v)=ۀ;ZbeOQpX{1ك sr|<ӗ?taPTjUBքYmOS*Zdő鬆u_?I?kڋx6j9'%FE&f F/PA?RDZ7~cj9R,?KHW㡻s]樑]լnnCw$ۓ-; 1Kkne5rh@>\UB bhԕfǾ4.AgJwy>"Y6g$_BIOݟ7 dTkK:37߼[ƣvZ['IdtZ&cO4F]QMS(M&/leIk_3a7 -1F:=gٰ?Mheݞ$'ttᅤ4ӭg~'d`u,ƣ(HП7u~FXOli&;|8|TX _=4 f ٷ  rr!7 d44_hjDA_&fZ{x-ZN;Ģo潡=cd-S30ʛ~iihŠ. (^P^o"R/X-vȰߤąw;K&pDvgҾw-d{O^}()xk?iY_Ni|GV@~ދ^>̝rB**AQYAq V/\9"Lm&ߺm E ;/7EkRq 0AfΏrkGA=zs*[ `LQ00%CUA4!]ur7g{E?gأ[ЧқC __iw}sh^*<6esK>nFlEUo;W]IQr0OQԨt41]e-U8tM~hQQS,"=8C/}=]I3o`bnUKseT]+e.9:WhS!K[(_w#t/r8ǵܦtLzShڍZ<p0A"oÑ~6!M8H,tXeBOG\s8nB8Nwkijm "q޸~b0qm9}!qâ:<=* Ay<MᾈWTA6u=СTWvOuI (bҢ&#~?XMI JAUp{Gndxٿ>/9G?w S]O{fPk븵޷7滣D{qxLΤ:4)(Iseϵ}Lm&(#~ޕA ^b oo ;}CJ:5 Nqd(ᵛz(5vꟄ{z|@9UgӻWn Mp}n6f+T>±%;pRR>*T]P6 2)zIfe&f믅Ʌœ@Q?REv.@fOқ{ ҚǃH)i~4s[B[9b'v⵾Ym75g4 OofUbM g~6HtrfAVcw7en~C)n4^zjÛ><5>m7}O+\{gbݖgnQnmd =bL&ӊ3ÎEH ;_ Ȉu>6]E]0_uId֫D_6v&|/x?`s\?_+횺=h\`,0D\$`_Z3SZՀ.M\~++1A쁋i8ퟩ='4II箃;^s=KPd/#q]̗5YߴPo>5=]/|™9-s śfh8+Wnǀ-B,mيlR_lېf]`l!G2o3kx/'2C7k'{~6Wt}AgJ6mfHv,u+Rx0S] ZGC7fBBㅋDXnP$ FZ6{)ƽ6\6O/ cYGJ{ =FA2QXŸs1?;/H62i飯q8͉gP!2FWZ&SF;ɢ¡ƛȝ_w"7_sI̬0!⸿]6.4H.̩MvY>+8TONe,r6|'O.ħz%Fn鴕]ؽ>a>=Ovw aV=蟏;)|m7c\pNy1~s@~CjKo4})dfmje) Ɛ[2 Ȯ-/V;\hC}&=[a1ze>7S1'L9}]0s8(i| Z6]6h`]`cOUב09ȧ])5t6=风w^yv_sp"wˤZSǓb[,?+p|<µqm[Sӱ#YХUzg7ti8P#^7$mpǖ%H{p|of3:`5> /ź*_ ݉X׍$B8猶Uģ0U㝘1!Cpͩ..d֟p?B̍ n?|L{,ܯgw;%wEoQWfˤy=t–83G]N(ec| , wGŊ6Wj׭Ta~G2ݱ{ʸPY'dyrTZYv;5yWy@]ۣcL* Y)<0~w)[S?u/)ljsgze9G>Ǵ}P텄}LKXT$ZR˽i$wW褏gg.e(o;~w򻭧Lxc/Ƕ2xDnI"NU6]2\YIRlAtFzY2|jg!@,g~u~b5&1Z=TtNms"2D?<w-󩁵g;̺p+%(cs*˵`?hB@ND xAYwkp(HǸ] sJ8eQ@Lm!7kryTo%bdGj?R\uE5+x}M7J0Vo͟K~uJ{0˷Qנ 5 tRb7tP2K(xZx}K/kV/6%_WMk4(w95͇7C< 4ә 2L_nюRao5x V#VepBr}+{K|sk:ӽ> Cj{(ͱZ)^T͆okd?SkT~khq?g@N_e+ It8WƂɪ۠7X2E!}#0mz4< {NB&<Gu@0O\aP}:,#zo'nV)Y2(הX&c-֞,.grwآƫ/Hrԉ >i\+GN?.k+oq]}Rvbn{iޜ0:FW :e,G5k?V47CFHc|3):lz7m@,,]OO!9pgJ{bd5ʫ6Vu`ƺ(+/‡E%[\rv\r!2!SN;WqXKtٍઌyu#4gfJlPv?_ZmO`?|m3أ jl&!לz VIl)bw!Y8y6%4}o}8 rjh#a.O A t5켱1_x2X>E76~khP5S87=ҽՁHSQhFMEY%hjҳu*o\r3)4艻 'm F*zT1e]2{ek ,oˆyڴTXk.-Y_[3bk\g5l ghq/F0iQQz/O}jfިv$ͅDlbYgN0 \N:pU% ȭm@a ^=Z">wY,Ws7x9L@ k>6~<-ϮdV7rARwrAQgʛ+;"kq۔J>Tas7 {k~<09Wfb#O 0 x nP[m}%6nPkrǬ]ڏ+7A"GwWf<\䮲ϙAN0N7,L"<`Uygء)E34!) cl nxݍ7]&O;?aŋРs͢06՘ݘqÉWS!K.p-<|auoz7j.RV##T .+F(7TvüUn G.mwVS3ҴOmcJ =dž+Oi78ۊ?6upi7P5jsU#o\azڌ=6s(N?6 ] 5FFH~ԤXbٟ\ i4l4=`=ad㞹(9< رĕ^?C2#VTV6o7E8E:^!ק AO#뽑Á-@br7:sD3˛Je/__ttw5}7U3ݦ:֑]9SXC1g&bYҿ?Ù]7*1[!rOXwHkVƐ(;a8gխΦx̼?+J)!3^x|6)匧Nˊ5)LuUClmsm4B-wzM}]=> %~D} 2SAh~U<s-[X^ġN0Ed$ RX01>s.V݄2 {O+"BAв^e_)8~NzYݮj{vv\T߷$LKfж׉O~C)Kj v.{TK6Qf]p{l;ǻrN޺ _ɘp>މRWtau06j<qDpP~g\nnx--/kj'?BA2vBv Bŀq,Y'kO{сxK=Z92o"~U +>nHoBWo4,'Dc-I\En7 _gӫ_*kolA[;Q9YY\1r/sT6Wӆ6%0@Wg?pjr KEA=yl<~=/aǸNd_e{)nϰpZe%iLt82_q}P-7&Vf~w/ҳ9.glLegD?ny{G$?3 / [kY\N4~xrF~o!oqIC,30yy{?7SvOo*f?J:͢]*g1be/YD]3؛8TcMVa1Hrnx;)M,/ s3rAXʿũ(BgC^pz^qDwsµ/K~~v)Ry ⏐K+6|ɕHq-$&v%GWݵ1 F&>M+X9tOc=4=Lv?d] F| Tlv$4*Wk|%L-nJGKqn{H_,Fz7}f!_^4l;ٮeFWnmO~츪OͿv~+aDC4Yn\5Y:m@8I&`ʔǠv ZOK,Kf P ة O%NG{c/tnazgjCk0?A#:͙A4r:Cϥu˅j8FMo2_E1X*dsy0ab=CVFmH:bA텤B]IqI>vS \>ܲ/7AM(RI2%jFUEfB~g Jk^MSW>uExpE7ﶒ4-5N*1zʗJ'B7}x*M1c؄-K\ӕ׾g}'6t\BjÃÂv$q_]h%a'vW?Õ+N<I4I7P"(#ߨ#yA m@(#z?oRQ|_4 ~6kN}\fzY-(g$rIA6?Lݨy3k*CRٰv))=ϧ Z&LR;{ȗigJ_ݩ}\Ckrpy O25%58V)_\A⎓OZ@@ Pzƪ1Z[8?G:(K򞷘0㳒ip(XN%U>t}ߦ"th/y jӟaЦnɱt@vF^Hx.m=$QH|i* 8PÑ(fkp4S:}8߫ [#j]H{LHR?CCؓkoչqQqs]6NL tQ_FJM˽E|%^>9RQNPA|84${ Ktq@`i y rH{;|E{GD#*Cv.gSࠞpbe ~ CE܈MfU׸;{r+v;ς\Vq$D40djb~JRDNLO[r[{efݵ~Qnfߞ#fkΊ]`rY3x.Y!ƧR~(~8[FE$n3GiB{FջQx·;7x6bS !WEx&m/y`Q,~jqd`e9iA=c5+XK>؇aSc87e{}Ǖ0BD!poZ h_[PU@j }™0_ǩ`kG)iގ5O*cT_$Ќm+Ny7P(.i3K)\[7-:aNK ^Gsp-skt>{,UjF|e<_g7MS%:+ڍ~7VS;qw>;W:[DɕDU.M1*0oh pm"bUD2@ɥ)@t"18COڵQx}wZWˋ~n˱LAA)#͍vĨu1Pwjgߊ[j{?s^) <HMqM>G{yLC=@@]~V)xwl-#5BմWk33!E~~h WEW3q.ʦ0jY=0಩(o?,g痏\3Z3 \&|\3NHӫؚnpF7qs0~<߿o~H!Skl'po2:"G:riỎe7m+<`ux@pr".itGnv]  QhNtP(.(.$郲1gzFXʷovdͰW z?f!yx>TmKCzmUŘ:~UOuF"0{}of_~ ~+Pn$# C?F`cSi”{ סpXtՈmf<U_ }Y> /Os!s8[^.O|04m/(y-LW6h"ζd K_K;*92gަƷb6;9m4Yw=jg:t4qRhbaٶƿl0W,(+i1) CR֖SON沵W6 ʍ2󜻧Dl(aBW߷;Dz#j|Lc|'}1%r3K%k҇mᘉ:nKܾ4PKY Zq==o|~)ĊO]#h}CY*ń;r7\]F$X=i 1 SFCsHjj7W׿ru+Y3UwEG}fb/q_"sMr[T6msA[;6(iXUÀ3CĤdi0?[j<>c޵wb*)ι,me߮mFl7(ك5;Χ D~sHrgidFV[[ei1JhQPUwOG.2$+W=o'~k@eʠ'^xdxp\ |7w6xbtT淡M`+%zIn!VI5_Pum@Qn0nLݢeѠ+M zѳ͡_Z\T&a hFk>[(IpB^F0 d2O3N[m(JA6LQ?* LN*ϲ~+EJ]=q^avNZn‡Qpc=cAcs{pG3MjW.Q 39Ϳ95f qJp@&`" uAwEΩ(CmB5s:j "i*H40b71n u,j."uO$TAW*.u-d$k. q -7{fໂ&u:X!`aDA2$ 5pFA1* an "_4h j ` epEzZ"UKADD* g"NUAh2*PFQ H*"*4( PQZT} (*BĒ"AA!#JPFx$0DK~<85( "04@*(#轄hiK @aJ׮ӭ:&aڝsXv ZI"KD(J ]Sb0`Dt"# (o b>Ud@ͷ(#a(-m ^ ")uT4E0=MSxˋsj( ]:?5:GJm pb. 1"|A 55hӥ֡P$B#jZ -m='bI$G0؆$!*Ѱ($JhlX }bRkL RBC(P{Ra uL!iidij]i;Ľ$>Tn*@4 ˤ$fbHHB I0=2m RDGWU Hc$LPG}.c]aءAE&B! tC ! @5f$(!(#+aRDM N0ɰp˭¯p;I_B4as@T "D" $TB;AHB߀T!eR AK@Bm T @T$KD It zEhQB@LHKV$]v!t dLHFDa* P@{xa$@* 0, + TVAD$@=kx:Ch3qy+ YЗHY@#WADE RFDMrI$R2"%"W{j,"A-!THښ', (,zVXsRHITI%+Bh@]~$Z:Qt "/hlH02EHE$!$R1! +E ! .C*B0"-' I8kڈUb0d"^ @UК?iCURN&H2H Ȳ ,$Ȓ " # (H "2# H2H "+"H*H H HH"Ȅ!ȈH HȢ*02 Ȅ$+",*Ȭ 2H""H" "Ȍ M(.](kF "H!"HHH# (HH H# ""I $ȄH$# 0) Ȥ 22HH$I"(H2!")"" (2 ," "$  H2,")" HH +", ! $ + ̀La$y">(Ȓ__=`}<+˞ܶ CDT 1o٭o?;:t2G< ! i\PG!9[({.J<֊.i AIVldшlg $I /B:&Fؒ.)t&^ˬ[#R*Am>u> qa\v[&}ET;1?RU niZOzZ˵<"h*u\?y*Ͻbӡ_"<߫nD!vp|,BqM.ڊc?wAAA1AM} $*rAe/ܱf'P[k߼-R쭏Ij꺯VEPU5PWjg֕M\Y/&i{ܘd(!v$]51hUjUd+4.*ORHdC?K/xp=dR"ץvlHM 'xV1>4F $EJRjX~ˡ"P:wXsܞ6km;$E IT}+ä1#m|Γs(#6-+Ϳ=Q- 7 KqǏ>@ 1gX a#kqx>wϙϏ{͂*|t+``;T,Mz*ϊ]{积$Ǧ75}1ȗ3L*X\x*4q38{~"P|TG[8k. 8``!=Mߑ^gK7ׇ=xg۳[\śNўKGekn܎\hZ;uD5.r~u$ yLu\La֙3yUs8d*ڛKmX'1ALWO^cB)j=`xcҸ|'݊n/4V1Dn3d'.fTtiq5kKO뒬έKxX%P2zH%]XżAR\+9Rs=.3' | bƇհqVSw[M#yZv箫^H՘/a̾fn>87zٷg:/8ofku(9(0霋c[U 9J@0](sFz4*IL]Xr78`8B/XY7{` b93e1Lq͂M }ƘFf[1>dHF֞oL VX*"WhV,26k0X`fiut,ZEtxy\W gl.<-}_( nfyG^;=}}:Qvx-7Pa ;:e_9EنpΤǺtzEPP}?¿pWK'~S lnV:,-^>Dc?[MJ Ev%&ɥ+XhtP}{=è7I> 6yOPDS)ޘGu )hGoNo5'1y>.ƭODggCP .$b2TN^X0 Uu%uf|1EȲ1 ƃ"f Ƙx۱#?F$GH( SP7F E$SW`*j/A;7a66.ww(#xC4Qsޟy(9s*ǻ'Q>ż}}!@\a[Z7~4:p][^xe Ӝ& 10=MWG-,fZԐ<3aq{h,)xSDw x2B؋qHŧ\iZkm8yXqV?jj@p=_xŐZ"'l>Tk?0;FgtR+%?CܘݯO]AhPB?]q vO!Vq|C>ʛ4C=?'lLИt{=! "X$&uGH='T,|^]4cIQQy,D-Z>btC;]M4ILy5N:m[(gAMEtLoh4f vi֑8m GbCbaҳ,as#C2$FPoe/3p3flᯚUʮnI"bvkp#Q5αw7mO$ireb >,"g;=QgDfZˉl|J^tׯ^83[x -T76*jc #0{dh ipv%u?GoKh[k( |D`ikR`/l.R'j- /ZR$Nԇ@pM#eV<,DNh٧M7XVL˗d\xGĒʞ.MӅvDmeU G148]Oo%|8gyq lXDul܏U?J]OHcͦ_їΊ-D}AA(#w?A$/8B)B o-5I]?zy9a;Us@ h 4p푓tG>;&3CCvf:x|?:7wQ; d xlҚ^89,7FOR/M2Dq#[c":6񥁋p%H>ң59ZU$$TA*ڪؓv/ݩ:eI_!^t9X z%Q `7ER4vx '{%,dKzɯ9g / ɰ˺c0 =Ĝ!a B~¯ mL=NO,\r+w-6 nIA`;-`Ce4NYn/04ֻOg/컦̯GA\c [`$'˒THLll:.)w?ko`A>% ?4RLANes#"|762Η9cɪFC ծ|7nO 8\6dGcu)]#pc_S}\Af"zޚ5{qxy)Y|>_ ygs3_k]֯HkKoo?Mym=q=?kEOД3Lm3LRjTP=VLٱ][^qViE !! "1KALqW]yjz оǜQTQRWӺ~ '_q)Wow_򜤣UsT;G/cCKuO]kRU.ϝ9n_r؍QQBLCA&k_ʋʑeIO2[2ݗ2G~fh"nϯdv}忣Tn? uԡ[ۤVϑs|ӬU\.u~^rv?ӉI#q|V:-ܜb9 NJ>:N֊EsFFF\\)t%Mj)qj>cGG E/!WKDU EXj~9ś.8ʑ*.S2T8|&_R. |\e˳ePq2NvX̷u?\\!NO b"{OZO}2m#Z-}1|^E ǒU.̷[̷yW~^O㈹kx^Bw.__[.)&uJEO[*Zܨ gOK]wfbk; 쯮_] SQmi*WLR+Js#R  ޙIc*&, _}29O$%WoI ~G !_ot' F IM-OmR%&'+c?@6s~~Ce6}P\ 2Lw{]+zaݺLc떥oJOh]iK%Ǎ.i`qnS85$;H\n^~g"|nZz"1"^&9x!dӣ 8}=Йp0Zp7jԗ$ x*eAVmXTuW۱sw_H րFo?=Ejfyd-5FWJ.fug) l$ qwͦ`ryJZ痱R!0p~~13č'8`ְ869ɿfqw[Rw^,J cѺCeT]?t[^S!&g{ϔ{=Rz룞/~co.ﻥPl4ow^)j緿kr {^Wg~=/7ߣ! ׳pn[ZھXkxT*oڕD++ zzzzgJVy嵴˧deʯxxU^%mmkkkkkkkKv|[ B<:Oy1>{x/eXUޤlTWWu( 8>P}Đ_|'SuC1HJ-Ex9-~|}4ר({( _5?I dQ`CXX7sd-fY%,b힗4Ng ת_I'@2ebHpz]iW x~:DLUJ-V.gLkewLLLd&:|<9-/7ktuNMMˉD6r4/AL c:l:.LI}bᔽ t;!T@^ؓ(uYǔμfxJ DE9 -М/`4? 1m@DD&$aDi^bMpdsF1@ʎI2It?~J8(7ѷP'=YXױ["OeXt @xYdRaXmVjs%W OPUx0ZcߴP輙Piq4Fi[ B28~$ui\3 D#lɨDTtJ"#[I[uVPE3Gl +c).6Zu99z/Eݟ?vA5#KhWbJT GXHoc_"T2ic*O4qy!\Qطc|&"xjfl_|&ȲG2WNa_=KȿoOl t|,TBW|ǝW i?њӹb|s|5f#|6 "Ԍ;δkaһ2ULcO ?uYj7.Q)ɒGʖڪ׳e&l0'<\pH;ܵ. s%d̕y$˛{y{|Yp %Qr>! Km0h"'@![t5mDU@8^> U~YmF`nFqj @;ęߍBM3X(¬dd#XݭeTȴ8E-5b%RcUeyitv`izE-ۥHTeq,<p)oBEڬ}p5ha&58\%rŎ^%VC售<j]uކPcTVN$$;d2A $&";&쾚GH87 1E2 G')#f , 0@ tUScȰqNϚJ\ {Ԃ  9# S ؅|S7 RLaЦ$  Raf_ >JBӼ4mZUs]T5% X2gn-5/{\힊S5%c~Dz)+A~@u̷Cw o@SYXWĆ4i%Bef_q|_-)Zve8^V3",cUyyQۯ;7>e(Z :<7!0n?MRߧS8'%x~4B6!"o:52*Ɂ_nzeQһI_]S^oj?ѿBb#t|Ɨ{.y 'g`fcYQ8"al"X!C vTJEhhmR?fgbyv ɆRtF߽'?V$4.MQ|^/=\ǧı,/#Vd2Byd{iW>_/D)dDY0:dA#.|V Mg\,FYIc4yXջNEeE2*腤T87qQdco7`7Z@~"-LϾ\9c@+,y`r7VEAL@݅JkkӰ"8rn;;a>ę_ƟI"{@ =&EVD'hYc tG-LddrBU4{S;p~HDz1 GSfZud\=ArO. !y^VY0W sE=?,'r':C葹IQh Lv:ra!0bԖօS`HlɶKӈ>a_]9@+f1Β\PEЭJ ;J&}lK, f@HL))1xf%Pڔ@1sj+{AGA+1o懕v–2:/Y$8X[Z4_ @ӳ1^J,WEK}IJ2ɬLfJ@$"\XU~|]4)g~iڝi0qG>^vK; _z{%$lh,*a0TAS+' ɍ0g=]Gp&wBֳn:3YA4Ogݦۇ[c;~^>}_}7.,7#9+wrsP-&EL eLTP8RK,2F,a|n5z-ӿwfbBʷ!3=0ZL=;!"=J{]EjT?oAKʁbUBN "WM$h+&hŲUO0a꽰N!߷<b<rjcr4t2UQ@ BtTjg+5rD؛k%*@k1\ * H*Ē Q0vQd_ !9.(ε|ǯ*:?PWI޹*Jvr]~,pC2G2>4ٞ&Y:Wrn ~Ko6oVX2V?zj or[uZeb*;=x]RWV_ڏz GN.bRu|LjWSdPa궊xz$ӛ0WM ѪS$[l|\Ȗͅ7Nj4o8T4/y4& gVZZZW򖤩 ¬V}eeY++Bʼy,Ir,?tчB)JđSQfM( AWzu|ilFs3^&2ծҊqĩ.NiMYMiT;1k#`7:JCʞD0o2pqĹu(?Ps1)6\2 "^b)AUdYV_[h-bH_i 91r_f4#>#^#sQ18#7-GsW`l2"7fUz u5*J% ۵umATS{ԃءq\QEl\Vwx8c(9$RHX@8OXZasʕCyxf:|B\IS/"<`?![X^wщ iE?wcuKˀ<jT E͈~odK)eSYٺZnJȘDc/"% jWOXDJL_)k1oX~.߬L?`S^C6UǚUNL wKjMƥy**Rlն$,UuԨ1ÖP:]q:4i,0 A# x 14r;1ז{۲ðzԻ'R3)XbIg gk?#`E̴p縸Gw/|#oAeF&b*R Qzp$U5mr8qdVYťꆫ& Gŧrʴ 8[͐0ˬmuU*K8964,;~.k?| [o8أiXro(Ul1iJ7*ג [Mkί%+ KQAyS~ߖ1b~ .l#>^!IIϔ`pQC$ՇZ x%2+$}JRzՋҪ㴼cp~N)R+X(?"p͛@˷W.g5kPmO)6RR jq)l͵vrqakV]YθfX}wwMf|H'2g*2ZcudQr8 W_NTcjh nL(ŝV0K$,/atMLQRh}*? KlT~9pX\^B%KdUC{?C/(EfzHaV19^J{ˠ(+̳O[4Jc~|6bS\I#>~8%YTǑQum=w%u-HUjGNn0Q6#H9FJwdzkf#WN\( ]p.~)Y Zp²7.NCf|&Ncvf:\:{i>Ti@},Z$ QYChH37%!XRkMrl:Z6fSu?PXA1u/wY!@w1rD{P|AaBD& U?_Ef[/8OߎF@v tx^mr%"XQfMd#cDF}P`a &[T ?ۿ:a4)}ӸL9Ίi et&s?$VRVl?P:׬ND =NeFU^D@Dq9>J``.-Qn {.t`}hsGǞ2?MШ#aB]u82j5 R0#HҢMMYUV')$8鱮֜oPhK' $|@|C9ՖZ{[߷DiڌA2ɋ+RBI |Tˠ|3 E dj;gAt~Kz;j2w1n%IxM% *AT km;_{5f oXL p5:# {]K56b5Ns:!& @Bʱכ=ʹE(5*{ Ky̑= x[-wůY FRN==$?d;^>%"og쿘i~Olʼn i'TPZ ![[^7rS.`)źG`T<c4^W>97AWBbqV MytEײ Gap5EX2.Lq567QGAk0л _ v7{|Vyȳfh1uTؑseV` Ԭn+ ^&,  +-aaj'D{><r<ԋaZHt %D2'Y8n߸P?qk q/Nst$t5jCKkPݴ8XxvOWk^^XD8<{n9=z &(uI]aM( H&FTBNFa-2(~h  E筯?c<{H||Fi]=cUHЄ6.뇄y ߹gagsɽ=ͺmfQ1oPKYTIxø^7#)& _|І0<vSɳ h`j7CI=COr ]㈎?UPʆT2 eCOƟ?~4nSt>O}t>O}tirLfC2sTfjfjfC2?~4iO}t>O}t>O}t>O}t>O}t>O}t>O}t>O}t>O}t>O}tLGe.p˗ɗ ی̆d3! fC2̆\2 e*PɆL2a d&= mtLĹ|Wmb_G-&E~&0)Pv7Gfӟ%q% +,T= gvDi8#%҆)˖|θgRsN%ėA ɕ<{}S=^_f`CXSHYLψn FW)=Ӂ:UT-añ1bp3=q`Vv{)&ctfuS$떣9'^l ?iS7`A\xk=,JWzcm6Ul]LpH@n?׼K>)"RԅLُr܂Geo _OZZD>B9V9,Տ\vJ`f,Y(~2/K˽'m*؝] s9t-2#۩ q&?2%d ZrXRXGSZrK^f q 5ڈ09?2 Yn`' ͝قÄx] +0`X5FQ>_|E1 ɽK+rT63~v |dRp$Թc1 SV-Od|քҞ4HC,Y̤/Hj`\-U[1zzLP@c*lQ)lf-|_4JBܧEhu(7fiï4N?20\=zƛ.t}I1{ܢJar~NF("8t-? w% oArCꃆ?QJwH>ԅ˼Pb+ƛhb/˃9^L?/TNFkOy.![09ҸyYo8'_;#ߺY8\nBŕb3lڏd3KSU/ 嘂ODg&]fH y,q8& ZߋRVLI| 3ZI&ήKKSPqs:vPkOrH'i9I1v0tvm\M〮)p!zRxNJjqOd9/P!@p7kg2TYD?T۝0N0q/IASJTW$\S@ͭsMU%Ž[ς/к/]*rj*ei5(Kt@坓_k~wѧ? Lߨh?N]]i۹;Z|w-M>s^t7}sy#MAKt[-b3SD'D՟l6i š. J$A^DhW!{=Nh͈_ UQ-yg 'ƶ OגOfA35bfLk\W 3[ߙ 6xRع!n>T⨹9é oVoھ>g1r[ |1Bj>U TK%~&Dmnap[(f . s0lzF|t?JjkwjUbt=8fUb72Xγnarn,ZFb_9!zzv+6.cL x30K!!3IVz)̵%d>OTEL307 jt_FfJˆp6iLz\70w] WH|<4_@vez @UEk ʝk"q@A[Y!r;\RtChnEeПݧ󰥾nyܜRУ}7(sqcd OJT@d!S'6'g4ۭ"?S.MHƛ6~f ič! B;̞Wꖻ4+_BfisH=džk,geisq:D*FJC󟾪.Q/j&_p(`4 : RRFUlPy*(k⿓LcXN |cJy\`g̑S`Fu@xpΔ F8u7L^j<#‹!ʲd77%vBK̤vL#;8XsBVMWwrD")CQ%.Kg\Hz=>Ct!d"mL !=NTpO|')rP 8gp {4m-7_?qB:Mp=>hsa/Ʋ}ofM#j? . ŖIn[[\, qb7%ssssixe>_N 榝mV.J[Erd-M51BMT[ΦPҠ >=!fW\zǗ|[2 a?BveLEQU~T$=ֹԘNɹ&}. KX),sB16{CDSk_ru6p? @UB\ߩg L[HOH5q9DR3YcM\qM=i?_f+H:*+G4y3\?oR!x?7FQ*rhNep}c'"[OyRc"mYVPt MycW]l2@圁9>0Sa.@^d$ûB$3=|Y`0qJf‘->٪lgH|x`< cgWѵ%t02`[ /0pg8ǜjxbw8ˤxct\{y76G_D-&sGjHN1H p)x潨†ѽveJ#1ySMFV~ٲԩWcg)E=*د L!.h.vFp'O^/vr1RR .;AkW>}\3J cZQ1ʽGX"읲Z7fθwDiw۩Ȉ7_'av7Hgx;#mܒ? :uR4+Be|ʪ+PSETS1Vn,$o^|ШDgVRR_ \]W:02WzC1.k"vv6NsviWjҨZP}3%U;3Z4+l .E~ l! EPɹHܣC%V-+f\dyCIQϒ'cTOO!̢YzÄ;@uzEX=i+pR" d;1D)$ZXg'ZU))4ei`NTg[_-:V99t^yHgHFZ $!<D_9`~C&gLOsǶ[ anǗ4rwss>ˆb;.V.܇qiӽrO% h@"HXD&а :M'D 'ĕ@Ą@LH@Xp0:DI20  QA0߂#~B#!=xy(C!‰ iO@:M(:AD4 O``AiGk!|j5  ?-`::nA'H0z:OCk1v4s+ތUS6$cfcGhcmˊg~*Tka)p"ڦmue:p7Ǎ?<;'Q@`@Qt(-~_ҵ(bƼ;cDŽ[|%4 ~\^4$>TV(([No]%Pa+; )I|p& UkBOmōɊ0̐7ͱ*\e;rBJ4Mqim~0.2 Ƹ-̩{Jn@V1 c:?5k_aTЍ)un])~!ܯS{z齃P1xb,e_AXUN*hэ-P $ Ge8!`#y}E9MlI[SͤɘB=^ Be4g/Sey,/zY̯LzQȏҫEdķ?cv2/x,ދ>e40L>, ^g }B}Ƕ~!pe'N9Ṉ k% |Ƴ*uwS~~AQڂmk<  6+Qhiz)>Cb5TRU-iJOTMzGשwHX>w~ݹ*avepHI q w㕭4ݜicp՜ 1hm{=CFSUGe&!q; -Y>;ž)1J,U[}{w{BۥLa=go&RfN{ȧ7Oԏ^uqe84b_'H{< ] ;bZ|PIuoشI3bW}Q`;TF gp }g93拣a&zb/Lܠ*ԏߏf&~N.#NH=x6eB&D(uQ&~{G[ŀR%4)}Tʆ +&: p{ %AcP$ LrɚpdiF\ȟ@3! Ȟɟ~|%)tm8aS?完1ş`G*KW1UQa? ؗWܘ%x¤S\DDXvԱ]'$s`Lc_ {bз>P+\hZ [Yp-r\yM[SBh}`3AV/ XOQʰLfpgܜjįdy?!RM@c1f3Z/YUݍE8eǎܽz ʊ)H)HߌW-]SE[\g鄔,jaw5d&y͙FT#QREYߠUf8U5{<Y)bgاTµ9UIzΫ`Ҧh0O3(]eq]z°?"Xo CLqG0_: ZaxϘA Ĝj\qEx?VvD!Ϩb*zs)x/N3sna,+x|3wC4v]Α i,BxEz)N8:*ɫ1zUTҫ-XkQhRz^|^JJV$5x*qS{Jfty^>wtx'8FM FH21QnxFV>0 V=2CK%Pd-HA)Q*N*X"疿O‹_aa qӚ%  > zIJ +ƙ"ص2̆H/'ܷ-ˍS'%"l%c\q^o-ks@W"`!I/ץ]^39G gZR Άğ0{zԑa^Ղ "qLA‚ '`QO +PV/A7/zg1$E$pUƫoޙx ERT%;3eI 78TA QJ wXN7fh]'ixgm徦aS>NэZfM^ ˉN*!X*KN)QH"R8х FvZs tƟvP"JC`z YQ0Rg?'k#eWZǚJ"MB/ᕌ~.ҼM\65UzxAah hu'w0s߅xs[^!b;ְ>xf*' 6gjy;>]D Э)j(Rmt !ٌ7C>M|]DŽ|E!enN@8OE\za/>8~ꟍmx|&m,9/ʐ @pJ I/1DZ5檉W%dԭp=ϘugPm0e/;fC=Q .yŶ c.\B?3y+aaWoȭ=_~k+K&⽯ OÄ*|n׷PYRmPx.rwF~4n, rWW OYSMZuB,, 8WF'2zf>ckiagA4'ŷ\[!ǟvg Cc˗@樂^OTĖ.wcs$ݟszK6߰Tha7ۊd[@o!;nFb&$]_)1cg"L~4'7f4洢XEvO]kg J <BRJ5ql0$*j!v >.w#"bkN1*-MqEp&:--me +M(07ќ;arY2G2L[ ofN_,B"5+.zpsLwT)k()וox"=ԃB|hz;`ru##w WVK$d -36"nǘF6'*vYPv:C? cfלUbVUu9)@ՠ2*=}^p,f\h8xHdv1-saqp E~(ݜMq+{c!f EDSp7 ^=qLPw6PFK>Y;8<2%-Ka9]0c#!| L*!bUlO11nBpwM'L4 Oh 0⩏`ܼ}K=٠R¬nǫ7փS~:`{.3\ |gN~ΩN\ўhT7s%'ZElG]7 (vʺ߶}6M>׬7隸iME[R{A eV4W $r8H m3:yFRoÒ=S*] 2_)YKmw >s9# zрAP`d^+* Ar_%᫯jKlhGoUyP%\-O*cm˛Ow&Tug(1Zoݴ셜p#Eє XcgQ^᳙Ѡ*X݀*b> Tƭ9S7R"ѝt+C,qFr~t碴=>D$A !PU8 [.iz~< 'NoNY' ؃Yzώov CfCszC88Bd\RT^e89EtU3rz#E*$^ 7,+e7<Yr?@mS ^Ab0 m:O X u-ެz.c<& %v ǜS `ӱPN7g8#[̛MS˺q͚?LQg~(^MAǶsw-x\Aq({Z"X\%h@7ෳ핁¨J1B*F ۡO C0%Gt^xc1;Mֱ6C*DmʕO `߂NeOVdܔ4PXm$ԱDJ|m2\nPp=j9"}v~\ot}@O\DD"R,R-?O5A5y6m{m ^+=45* m4qSOPk%Y``0XD>;z("4K7c+ur\e?-9J˚T]^k,IA ٓ Ʋ%bҘfE($0V*)b7[8t&Nn)U"tfp[jEe7 nrNc̏1u| KΑ9 MV黉rfc=:wN!0޷DVUPgzuq%#2Bhh p<_ߟ3\ b^q+?Nʻ~u.Uui]PA.+6JvT:Jt.n4S`Wxj6a%e(VҪ4I] !vC!]5I?n6^G}{zh8 57rfq){D~exb!SFfQs7f 9ɺ=͗6UW&J:Te6F(ro^C8x={F@KhsrHPP Х4AʱZw\#.gs/{6Iu2t,c3.pGbf'vq\}}E}}Rg]9Νo.[u%`*og#=uF}7kY9fTs;V|Kpdj9+;3__~kﯶ}=#}5ֳ 7SEY:jNa{(fe쬾I Z9^DA{Ϙp|7{ w(%{DL\AdUw//<ۣ''JS*kvY, qsop*kd4sMS\"Hgrj̢;dP"s $~Wz{sNsu·UQʦlffvo!hjn7M3{722N~ ϸ}7SOKeEoȍN<Ȍ;ctv Dsf;["ft{5|>,|b|2m-'>w{pA2<&f Q+nyK9u]ȽG ߣ{3tmfeC\ 7|o{͛6ke2s&jhoqN_km#|~W«0\/+NK}͑o/^Nͨ`Y{0P7L /0ʾVN<W-;9dY˴u/y`#!֔dGqUlU(XP`\(E(@*ʫxVA!YWPl!² ,/2"rJԵ2sɆ\w3dїM`*/T$#֓+ _!F=8M10 ]Uf]u:^%Qu+\CR{5RÚn:ٖ~w 6lae- \2#H|=b+VeU){+/+\(҅*#}$~mv_fۢ;bm9 k\4!d z_vs,ϵYcs/71}Ǚ^(^lhtg'24oC.XRcM5rߩGfnkٝic9qް]20fw4aV ~5(r"'Zgw׼me~)NrwVT;Ҳ~C3;4נ *+.hS;,oee=p;~{9u˒IMpf|neFVloO9wdwb\LQMW6}oy~GySstUp|r9]mo(?f׆٘m$U9iŇu7p3S232QxHNS257TQ.:8BO뫖~ϔEG(ynI~\z Fٽpnj~Oȉn5ώu1V"^`$!F "i_Yߛ+gx*7qnpsߚ=\[j;TE/^&ۙOG|}o~(=Ppw!.{?'?w>O~%NVT&vUXrd9?B}##] wYÕtwҸ\hܻ۩y9A8U8aS Ԟk'φQ,9oJ{Gȉ=l~܄υCPA¬vN/;GS.>'RJq$u G"gg}s;=D\Ӱazds8Ǎy;̬ ޤuY?û u5Gi$ WE|xMn5r\{fTμ{79>~{9̌v޷/_wt8gkx# E=SީK)2tMTar.ژםojo7`)g=~G1ᾣXFnY<$'J??]ԭoŨ/䞉=Oa^Oٰ;q2|çDu/v`b_k~Z0A#-NjHr4+:bV,/q/WP Z,`bH[U1â}Xp`NyB" {Գ2y7E^EL;F.8w.N,a=]X8oԋg_?p7Ig8r_n'W!U*3MUvVu^51/| 9حd'9|*#3rS}N˞d7\u<]o.w|Y¢g;dl;19j;׸rwq!h6fN{s#zM?Uo iBt:t|ϘgbK5J_V,؅ 9a H: Af]-WŷT6.c׮>{0̄0(h(:w:2<<ø$'bc|gtև_?leW2Ýj*eNE^`"e;ةL'gUw]!s[5#o ßA}'43 wfgrqvy0铤hkƎk;~Vh}u׺RNO˰dQ59priFvd5}.sn#hI0o ;eNe!ޅp"8?p]j]wwۼWUPgxU%=39w~y;͗R]nN|]A}^g_ Nz:MemXu!;]$iA57DwF&:&#\D{Wr\َE{LָQXv $VzjM%+y2ݝDjM;Ȼu {$dTjk]ۢqsm0s31əgw}drt.`VI5mY߶']pf.J};;%E|h0oex-pQǹxRFWEg{vy/ս{/OhMȗr=]˨1QN6+~dQAM󃉻gmP|5{֤ 6[غTVN|{O\֤"s7/zVQ n0rcfU8go(N=Ѻ㕬TI&:~ϕJ.D=f*}}-SWG ) ޮ ~wxO}tPg{h_}d!ϑ9vf30A{>u B^Vu{O\3ClRnK7/\j?yUQr,~1\<\T-IT[#qaJc~q{I{=?0>$$xv$V“5h$TlTB1N%KBpY h8FJX8K/&YLFLeS),2* '' V,+}n9V]x8VtMɖm)8U,1Ӗ+6 . { 08":ɕ7oa;)䞌xHL˂gWXL,up,%J?!GA)oM?ˍ1\Xȡ>@_Xpq&Nch[.>6f Z w:J*ЫBp}Q쨧]|5vυTsfR]h] ,(Cܦ 4Y8қW_P7(:pfkBa BUu !n#]|SLLsyQ7O[7BoZYuR^VxdT3^τIQ˾O>ncwvO1Aa̖9sW&n;:lky&sqQܢjw7gw&r"s%HgSd6McEULs-0Zjv߼ K8i-cuv|{s>9~$^3EKT?!_PV +L"."[]]Ꜵ24 ^dzJ2~n&bzB.x)8(=G^T;Fr QE-cYjnLpLe E#.(陝CrƸ#Pq/2oܽ|fG7&7yRD3a&zGPo7\]u`Xs6s&]C'v_5Y{ڋl;{+\B5ÙZr虹 P}l%FjkE]uvdY#|֯4NȰd>=K~ѳ7щ N;NN zd7ۺC2)J9y&=UyQ2 .>ԃ3ꦗۓb;n^ak1N v򿁸 F{ƞz tMnu nQ}Y2gMֵNn/k>uܗdv8Jp5d_~O#B)5Q]\OxdeֹW'*" +eαB^zN '8xQeɞ`Z~Nk~,X$|͸".֣Ee4u*y1g+};O,{uwqGj C{>e kzhȢh(8{;uƥWa~:Ȃ|y:h)7pQHyaxWֺu.b\M}3[L|I'Ex>g\~t{DU#]_[ԉ˾*ܳѮ=&.In8k*5I uoz7M nz 6enn2ty&?~G=(w̸wI~&N'"B1u)?s#[)2apjQqZk{~yyUY8wE F{BlyUY=O?zC?ܧK) BjB3H1Z ?ѢعU!![&le*JiS!(V} 4/—P*V rb !Urܲ |\[+bfضRT2P;ODeМ1v (qr*G 疲.p;V+ގ#Zث o{b\fg}@ԫ,yJ~8-J<;_o8C䷁ٜs!}QD 5.RЉAgSFd _+? ,iC> wl<hv}Ov&bBAuPEWȾ sa3ըpVx;g^7T ^y:{|֩xMf~f$A %{Cyߊ̥!mݯ5z-p:%mbʮM4INs&cqg9}O;Df\f!3oyهzp Yj5Qy|mp{J3t^$fvlDdh7W|Ȯr9+yg&"P ٮ=&%+<;eMa22t{\&kT;rǩWΜfKnAtfm5辦^EŜ‹/͗piD||M^גRm]"'K6BdʽkUw +rT\(Rޖ2%?т[DXQSEBE`(k j^~¹] iPD3*wWh;oPVf UOwm|臗y Dn +FVGR_7'ywq~q,n^LnCvO;w8{Ӵsg#^ BeKRD@e\fSi{";^{Ժˋ998_75'˯>9~Ǎg$o'q˂dƷҧV*g9G^#]uuɆd;t##Q>3C˄-SM%+j*^84Pjf 2U '&Qs>w2%X6ouW_<]]\wqj;&7'7^[aӜ򢉼r9k PZ73[ʴ]˨K(\?E^O\]^){;˪0^ YEFrjR9lJ.\XMo59o} qo'ENZT՟+bS"HdeWUX'?sNjӾv3PF#֢ + VE@JBEB2DB%?c";}+9tWnc=H4U^͔K[ wc8Y|#]hߓ9)|˜Zso9eŖ?>r X uȍ2‡Xs질Q%ѷP滲[؟ԞQ9*>f ʙ2쇓UsiolnxZdtԈEAxU 3܃XKc]O;Au0\쒣\awOw 5O>s2Nv~_yF1fYzejw_hBwS&`ȣLiw٭Kľ§0x8U/b{kesk~w>|Hu0Aĵ1#u#2 Yj1R|3+[HgZ)u`衣_|''pO#1v/_jϝ.Uz Ԓ_S}luO_OrdѺje04zק.+fgRNƳsƿk]o>}h.Μ΅;~*`338y N+Nmǽjy~(mчw!/eVfWK\hnDs\}yjA^k &򱛋F䄑ARUsדׅ=^8BmӜKMNJ¬[u{Z_` (°烬'ܰLHlzT\OoׂV"6dq ߃vsZGܟonu_"({$MɺJD!Yf;ŽaPlaUc7ޓ>3k~ }+sz{%q] T:C3=_ۺ \Kϣ)D 8И2 =a6zC#o>S,YDj}l$j +bʺ@xʾHJq‚rq"aI8DuRˆUF,'>M:'wֱ =EF{9F7͗vErbY5Ժěo˸e->I~AnV>W^|86C3ۢ7=սk9W}!q¨;cV@HuPJMG|)WWѳ7nϵ |cӵPO2uQtnҭjζ>I|<ްxhͼg _92;@zq<2yf o|y"7Qc\F^ |dhAG&tdINټEo *F6xܕ|Rl;wӑrfWd&H<^eMna#~vanο5bcZFBM 9Zcֲ[9"7SV94qd|o ނ;9κp;L#.osɽR^Tq&/]L!SPUI$/dy9`ۼ|1np2aʔ'7ɒ Iטߤ6n  r/X{͒A3W^\o j=k)7znw;74G9E>rz;u ̾?TN$L\O;9/܇LN 0}us&s;_eJL'z̜ɨ`;,^gׄ3}4٩ʷ"38&3#];bYU1_f} cgNw11ׇ~x 5tr0\mԞ<0SՅo$W8pI_ʐ[G?G^vDu: (V9%R:oJN[{;zQ~okS~(zdҥU4ˤSbB* Ye0LVh01F2  R} [^Wn\DqpW:\nnb37ZtUXՀNW0ԛ@8Y!Y]nv^ի]ābI f,JPW_nD{ D,Zk{Ot@!S3 vp Hp ȅGMnžQ k^[)?z/uv#ESiIFM%SQQoQщk\!ӷlFPF1gZdlX٧yEa(S=,kJ8 Z {]gCYpKc.\9uA'[& yzpo3#`g%'E;U \aO/9LI=17Y #c%m/K~ky"ps2Rgs=e̿&. em+q=l QysFss{Suӏ M"VN|W$k/PLl Y& Gϭzv~dY}<֪NfׇyIRU^n/~Ûlj &6AԽD/w+zɃV56}g;?2bb>t%+ɵ왝ǑPq߻;(CSޗQ%G}?}Noj q ϚTtA39Bzɏ%^@gr"Ż1k|tO~:\ޞAuYɏ>r;âYL>ZYA˪n*urzX\n&ʚ25+>p6VQ7r㋸sfAӳ9SVM$ٝ=^YRLW'StPgRkljzcAȂ"n 7ٙ}35oD9'Y|ϻ"|J;.gi {0Gu>1 ԗkD4.lI>ǗgĆ셱?]>;Ntw\B7,5ҽ˦|w ;Q9MBOnIrqÌOJ-Fy_uo&F߯}wg!Ś߶U!gGIr,7q=ޒb6qoYVM:s2aeVY]vYW'*0yjƝ",ZDM9BP[y`{÷|' ˷7ڭ$j/WK0]JqP%VFdUae[.-.>&:Jh\9I.}$.LQ;(dSt2RJmz5Q3ȼžgt:=[QJQd?ѷ`G8 ]R/wٟ8,9pN];yi1sR~TcUVk'd̺֭]Eր5Hh8] XG&fՃV8XU~/nHz׵nDlƛEq+΍Vw0?Ap煚<78Z^,{ASMPT] `a3H߃^<łpo(7# K-0zr<*aAlP5doLP-&߻˫ w\ Hs_*v|9PXu^ 'Bt~_.6?"yZ⚉FQ`Yo_wjw#&ސsny\ΙpL6o[3A62I[xaLvmf;tk|DlၹrH9ٛUt ;9tѼDA_pi/&ݗ$|sr2^7Ol=39=_ *ߞos:ofs6|n`L#+?9\9zYn.$I3nb6Q1H}ysLղdW٬70vs۹aytB>)o'|wGIyG\/vMnYΓ#Azw{ɖO:YAWw2DZ5nK"m&jUp5g[Bۿ7-WПUǪw5,Fv u3xG[Byj$쒘\^fn Y~wJ}>D 6z*+n|mA_x2y]9}sַtENˢ9"o/se;ǹlvK{Mn͛YT%!J$wÝ=8dT9{9nLaF $v}Up9{x&T j xam6^& 8-ż@iY3MPercKs_9;$ jЯInqMdZf&P-A@EJ %EB)Y]RLr2圾ۺUw(')sW-޻{Ngϯ|>ݤܘ񣱼.2&\SYn 0QL,gPaUdsQG '{SU;+g^ofw~{;I7~,Dvnʎ5yy̛(*+q eGf sfVP*e#'[پL'9L#7“̎eǑQDٽIz$vy=7dg&|yfu - rR_ >y;]gZow_ԞfLL#_fbiI5}mu]u_7}Fo5bʒ3W Ts[^TEVsaZ$d} 9+!<#'53=ž%Wva'/8vqxQ~Մ~^Tԟ=~LlrPeY#Z.ܯ>v.GTo9`Ϳ#秂W}Oϟ4ME_/OYTc+ 2=B8:ڃ)kO|Ad,.Fj1VdUÍ3 کҲpe5w#[riV.v6DYG-T290Pd.pV )2Xc.{"^ANQNyAvq7R& $"` bڴ ;$iAT_@|CX`SrߜO=T]4mJOEd2ӻ]Cs*6 Kp"P˶@NKWhK9SZ=*y۶Ty1J^]S:-B+Ƌ2-:tFU}fL{?D00wDr!xE"!;'ȬI_3Lj)= ֭5q)z*}ߡ0|Ot7'&1ZH>!0dX[Bdm ȷ. P_KUՅ͉s2aS g̖D™Ҡ!"c+vv@ p=B3urkZd75GVM^iI`N8|ɸ@h.~ CGx&f"%5ɟTtoOqvAfmTobF`oiXO42_a$mVϪc)抸ppv!D }Lkc2U#e:2|u5t6w^<94[DxP̅Efnܼ]ɕlM|?/'B[7o-H%ѣO>0_nH vl D [ ]^ 4]nb3eԄc'͈CwGDo+mFD [F[caBB‡+uV,!~e`@y4Eq%sO}`k~|4 } .sdک{H|GG@0% AK40C16lٳhf"ڵkЦ)_ͼ@k4i1rmk'fBga}ep8 W?h,wQz:,X }(Y`+ɪm N'Wy :?TmbL c'Bӷ~I]WSg*zoq*o=k;;ͽć̬#-6Lj,64s֥Dդu%֥%E3k她shȿbmeo0&K??;6-$j4R0Uz~u&/NߧfIuM((Z=٢Ȼ͉5$\u0-WgA!: I7`C'Ϲ)3s>H<< |= `@xlQan'JNb+ueۚӱδ8.r_ɬ7+>&7>9Kd9#/z:Qp.\ w'%Y2d˔Щi–)jAzm":PPsIsj aiQ: X[\}Q$.T&kj бiDzΧ  c'%'$HdR~\ffBePB)}ԿLitۼl"{1WimwOt,|?+R'u?z\}#xvuxZ7G=Rta):u=Η;ަg5;ud[vBF@.]dpհIfp9\T"^C9ib)X* EɩTsUvx9WP/WicDz2k[r}BZ-rY,Vf)+|ynq޺ |X?h-DdAYҝ;M%Hg%]oş?=Tgf#E͇~f߉ymJUcB 9ڸ|fENFkK "SƾRq-że+QˣX X]ֻGή3r =nWxS9*:!e!FwA& p;ڀzN˄l dAh^\mR4:F6]T䐒5yZ3 EIV'*0Py 2VXx2+k`W l rĎ,K6qC ]&S$^ [mSax5?և[; XWlV`q9D? >eM eT( d|r; +02p'`n'e?1+]J:saoDIt_]qV?#y"K'"9Ts1s29{ݥ1 zƿuyOUGmN Qjƽ1f _e['O ATvҪ:[#NaXʰ\ * L [.P ;o}[#n8Xj$Jęm{#"'g~~ SC QE(G?HB@63OݜjR–a9?y=DY>U4gW oQ*ġ B4,\W´(PhlqQgD%K|CCH_p| YRi;2CVrfH(BrqTȖXar}#|͸h7͢W/$$t( ].HҋEѥDҋҚU.WB)QZUGZSZ]E4i)Qt(:4.E@QuNF*(HtBP֕E҈:Т:4QQѥ(.H*I I$"H"&EҚSJ#:u4"(B.B(t:*"tUӥ]&AWBJ.BIEH.(AUb B $`$i D4)DQUZU (UBQ)A@UQGJ 4SHTQE]" h](.*tit) iTӤТ.At:Eօ..MitK]"҂t"B+DЎM.Q@QBS@Ј]"HJ ( Mh]hU4] HU &QEHҮЈTE҂:҂ tBP]Q@] *(УBGJ EDT Ju)E4( GC@U4҂:4:Qt()AHQh]DӧJE:֕E֔QA":tADtM h@(t TЎ]" (.Q iuօDZPքE:PA.U]*ZDGHUSB:t:CJ]iDA H( (] ":&uAM.GH4AM# AUiuuA:]*#.ТDGJ:tUЈ].t(.ZGB: .WZU@ (ҀTJ 4*@BJ.Z"P](֔B(")]iWZu TЦQ] 4*"DTUDt)֑Т]hQӥӤEt]QQкQu.AuEtH&4u: t iuB#]Ј$II$FH@7y|OWJƣ:p/\O~qc}SVFV[tab3;<'S]NKVJ\Ik{VZ:D{c6_g~ry\Jxo[\p_\^~w.k;x~Lycy>7NKCVAuQE^|in|^ȸˏo撢:[Բw>C Smu=9vle濚l27~?d<qBp4GƓ}KYroq}:RoƩgOVsVr埏ιg__jWskZ?}|_ W+=*G_ЯWg׿Wz9r|)'d.>=:9;~[ƍuz(ȸxxxhhhXX^S HȺ$x7Y' ?!#8]$#$$w{ }m_vݧhw _Zzk_ךטח֗וטזחKkRݩ}}yyo̶n^[}}kYYZz}||J\qI\X(S tпc},1L~J9Pޑ +O]?Dlb%SEPʐ 싗w]lbf4JWH1s_$LYD1g^]_떱wЧo$]߻\&#@g֋})8#UB:(*Fq7n?r3jD4@wg;DQ`Gtd 9#WJ+Æݜ,m!ݜ] A`pXOjV * @9jG_ĵPjۭKRf||6lʺGzI)5P*A3Ug}.c}>W!_d\_Z;ißԳ=Ba6A(66/wےhfI F'ᅂlXE*xV iCرU[]?lkOp򴦪N9| oMB^wlywgRi 1E wN}S`\`J(.'Db}`-Zi1`uV*"x)I q aӓ;ք0* pF(:H6sCjS.]b@ Jo3}t-W 8Y {.OLn xcHW{B*%XK=:Tq.(.oV^y:-ᩮ}dVr @-B3;I[+A< m?0Eb-gmٻO U*Ӓ?檸; Gc!v [?!bjFZ)Z-ً`p 0dfbٽ%!( ZAoȵx\^WDVd=xt`F|=xZz",i@Ģq"j@9*÷xz#E߻_%2tZ'.I>|FTsF;"| 7%Kb^B4PKߤr 0IiÃy!#0%S UpI/ޣJrC^FWay-"I G)BD"MTeJ,blYsM<^ut*1(arrbZi؍GMi 6xJZߣ]Ua4 ӄ0Q޺d@pPPk^ >H+<{_A``]:;ʂ!hD!*U@'V)Pphx. V"[P&/1x7J=>(\U'P.vsQ0n78በŎקWWW_[xOZI4KsTqqx (Fnd}DV,`;NFJӸWƽ*xc\"݈4'* @0!XMCFdn;RHxII{(]A,`=v[@J< Vl3?l7YMf)0=߉ ![Dki嚥o~Rzlc.!ISPI#.P *[r~ʂi~LNg 4{klSJkgR11BΤ_< wÛ;8?!כ⊥4C:&f?uLFc%Mu bd1cJ$&L(ѣH b]r]Vf(|b5c?{ L:qfɶ ]ujwh`\#:qAP,"rCŔ|CU $:xMY`'FX1ίftGT;QGߘ:gxoJ4Wj3t?ÑH0R@ ӊ(/"AH_Ǚ; Om͸+P>LڻqdElb!C Kw ٘:fIQ_LV,#cTL ^ɐíA^6" Fti-jD)BmVAQZtĵ=0 "]°^&wx3IRCitHz|8 ^ Zm9<_r[uJu;vxnwDejPő4 z xОtv=ī࿭}L+28$,}LD6QtEB4+OiTLRϽk@i[]-oW,)(Wy{-`(<#J ۈt5G]1Q{CQaS+>F2UEQ%,rIb׽b|vM4(@'F?΀7(r&4>@*SBz|_H+,8ynn~T?r] |3rsT&" +tzOxV+VR?Fd(}X:TȞLt' t].K*tplM7e.nU ϲƌ0D/,w24Ne. {_`hM oY򧹯]^ΠymWǻ9'ɏh|7}0VQkB (Ib;}h2NǜFct_Xu9:jcGgr2]8nXئ&ekdĝT$?Ȉ?֢=qt $#q~836OI=7,M9]T(.Ҙǃ69FCcP ?1.hyI z+ ow|*Qh |T; EcN+ T b\ā`<2#30I 23m[LzdM)0Ꮮt)Ybh%:g M->ƫ,:~ "K̥0Kp@9*jOmF3q;:Fz7(kLC6$z=ڕ6_u0jB7,j~JL1*ĕP b-Lw]wT& Wˑ@嬄Z\~e3׉!"+o\|EW&19AqzUj`_'ukLE@3e68el`3ALj (, GCO!tYʀvqqcTŗW6& pU81U)nlh'Fas^:FO<9"IJ Bdя:t h dZ-Z"ˢrbkuDDDb;N(@ $S͞vMsNA,(cIG@)* G!\*Z R.Poҷ۔G2i-Os靼^զ_Ȭ"{UQ*C).(SExAV',Fʢ:'CVrZ9(*bsJCRgƷ>rCqL3}u!3ʘu/?! [Dץ=x/ V1C!ӟSWyO,V*gT;c dg3)nH,H)SBo09`Pv`~˕]z+ݪO̼d upgvk`7>&eޜ͇;n%_^iMܹA (8tHzɒVwZ?N\ Wn&ob;+P8 hKux@\Uj<\e=_r9s=u˨"3Y;+nȥo5uB@)e{?fڎ0,8-*Rݩ~Twjȩ&i51\fs ʞΪ,VHe$ ]P,!vSxlBy轁 _%Xy\fs2E`zwW7AU!A%=h(UBL18&XPD"JekEjJ8%1~:zBO:m 2Uڭa}xk bE0mT}4C_&W᪢:h$1*q9|gocvC˜- (2 ޔRnLʡJPꡏQkUw1 9:,R^ cqgEd:u#%NA"Մh``օ4(7 C{z.&Av6mQ]\seJx^sugDYX{GwC`o]p̮%?W聆gX·ѽ64f\!X nc K>@&&3 k[JkйZou;*<9m2ɳ9oagUzɉ5|џ{bkPՍs5/esJ<.lOnjszR|;!m'?mrz_6v[02y_ |hV@y8$t>lHO8I7؄P֫"{kc&a'bx[gē؆U\վI[q-`!F A=in?ΛXRtr6j/X*JO]9nեDWHrؚ{\ʦJ .co66EYmBZwl*][ʓˎ\"y$#7#ĺ>3fKHTc~{H^c/TdmP>u<A ;߲>Muh4qڮG' jl17©t|Pn2mko7{n9Sgo}4۟C?׆]N mކu!Q|rdJnؽwD6|05)znPt![ؼ-܈ff\+gypƮ<꫱h9xä3G<q|V#5fogӓ0z%LWOu[T6 $/FĎz c /=Fqv:ezY׏!pk55~{#`S_z[o,O@-Pe6t.ѥD JK9'[!сzry>u %gܯc߀n#qPkGE=rxkܼNR:?0ʂ,јmpRrNέ˯R} 1ps+2I 9PGƖ0<@x"~|AUT$Uvysf*lyիe֟BabQbfAZ(X^68ׄA ݢ&odH0uOJ-%`Ƙ|7o/7X`+dkZ0vyYQZ\u.*|թ]Ȏ_fTd`,=l}1fKo+J\`t?D huʇD\/OmP5vBFv +Žjuw%+~ #kP$9vv0XKۡ1m|sl惿3m K7.O zxU2;-DVjC#$zO0iDNZ~8ccn5b}0&߱n_ngmjڎ[Gw|7:RkiK ne8,,/`rGfg4m t[iu:2CLsh~ no٨7&|ZMxz֖!{N0OԃvwCC<e(hykm==B 4L$/yc1| FY\ gy7oGgXjz xt9P};١32lc LsSFOns|=KT~ ™_Ba B]{|{X?ǜ#ax}2t !^T]cBiilD8=vwq.ŷ7N.z9}TfMRzY{# I¨綡w1~+FZݦr>VA8{UK%>p |<ʹcgܫ0m)D wQ,3_=%Bkh&ġ_7J n) JJ \|'{ln"5UG!S)?=qf}PT6BQE s &7/AA \ H@ +L@>X8dB zz<  t$,A~4PB HH;4 >6 9 ;P_Iw @ƃ{" Vt)!45E0a mMhH 5T(P@BA\IT,HQ `'K0j* HkŨu0t0PoC!EP 02H/Ϫv & Pvq%A Pm{jWݳčғFYYu׊n"E/OΟ |-b sSݮh9'}'aة> LϛDx|c\V(JDЌn "_1#L'ɛ =u +EI$2)&&:/8y;D < qаB:HR#4KGKOũA7#b~2,I#aL4S^+8l"%ՐJ|-<8vbUS0r&=”CTNA&lfQDJ$P`rx:za<7VG3ѫI q({(*&穧\;{dLCE 7!y%9RMD#+@"')L-4D14JFHJH̾ZY/*R % }IN~r69ky1I=1I' N<|^ ^21􈗆R^>A8uE*JNRA,3hC9ĴD<EE+)* F:"\; iF&%VL$} gc^)$ 8+ qG׫m52ZeL>ǗFLC!ӥC1=z b)ؘ)-Jɘ.3"6Jkfɗ8@@6Y!͒^KM.zQMfHP`CZO8\:ƱC*?c>G*"B%gy8'%L[11 8pxy<`41oA:.)+q~ BjE89.,ɣ~nv.%aݣ@yw_3>!V JL1k;"]?C;A8lݷj6X{\Zz/'6$mpf9'|˯}1^aB@H><\,zGwHrQ"o.=Q!{bؘY%͡p3-8S[_j*89c3rLL29Z]7,;2+n<<[Iy~oC[U {ߗ& [[G7>kvvti9 3D>凃~9PXh=9ϜweSX¥q5YD(ҥQ̌swEUWYP᧒LZ 9LE7{g!`ě9  Ϸm˪;Nro 3d>vFb~*|ţ2,B?oWѵXYvD_c{4^T2nŌ+p3 K!\Y}Nu?p+U$ԨUlZ.S @%;k\U~BZy^___^Y8!񥡋/P`K?WY0Xg4)[3PslƷ9mwdC%F4  <(;m'B &\)o˦:\N˦Cwɢr6-ǣѧn&T=O\^zÃi1! J:c@031<gDP7wZRFQS_u? BTN<\01oCh `fcп6*?qxq̦@0u|+DauwF  21C$0fxnD3"f`HF$@Ȼ69*奻 Ҕc~i$i*cgu|WL&Q+*[ 4 #?p:\gH 3tcI7su2uO59 d0~j2jkf# ֪2i;fbGpt†X0fci>Y(/Qp!, +DÕt/o$E4}`ir?xs6 y 3R}6=dzُ $ 6?uO7%ëGzHW<kڇ> vH0ZtH1mZm˃6f$AѨ㢐ET9Ф)E$ %s j %Yq8T43kw:06CCwڡievD83ns38HZ; HzkFNM Nqn^t ͺ|s#O8Cjsfy!!xx7h0DJ-xXrj{<ǖ+N NڟFl0 >vA+%kL(v?d13틲2!@{̠ɸ p!R{Y ɃhZHC& [< NJ(HJ-" A.L^k+io-nlت X׻t#!H[߉Lu"0AHvה 7`(Z*c q5qG>Am7UC{fޣdDGl|[v76B܀aӸ*Փ5Sx"p}}#"~ IG\BUWtvDсk A( _1)5~6-{sg0;>$u\8bŃiK'M+h6IZ:L zZߘ6Sj0s J &)hpOSm-^Zoe.T I{){O gL=ٹbWb@1 q ~to0; SC)-{ ^Ƙp8 mCG䐿>㡠$!0 tI1MK3:|eZy wxsEqaAOHC1 mP9];Hl0H\O[GbPMND[]ec dY6t8vUW#Dc2_C0ÀJ EFf.ݿYE7kQd!$8tq:DOӿLŋdicP\ګ4J?IKO"~Sy#PF©^" @(A?Cܚ~'S (#.%\5,!ihj&HA%DaFnt*"*nHLi_hђ_`b5*3"nuQL0 Ơ10-d֔?&'M1]@Gu".X?*cR!!:4Q ,(S-}V"4Vf5`^vحjz[9P5s~EW!3؃; e%Q _듽nͮK mPtQ[|Jekb+h) oŠ ZL5p6׀?X)9x^Q3%n {FJ[oOtpl>Ӧ^OHVUjt:dg$##Ր=  hrMg!r7C;{KN1nBPTr@(o7Ct/&fQH}7P ~g3&<@@A/_ˉJM;EE; +?JBAq# 0ױ.? Rs5jE4Ɓ˧҆4B W}0àxK9UUt}%ґdͳn_mPimFW#r#7ߖ\J* +9 nP0![4?;~u4/׵|fsw-ԙqwg9v$8 kC(K˓8mcwB=1`; I9v81_cNäנ\z{=F$ٱqqe*'u%h{80 ؅ڡ`JT]$+V [.Cluf_I4R&4:οx06׼};$~(h} HzXQ3GEjp88]xlgK=*C/(\)8Ri Pd3s*8Sdz _ʱm|/z8L#r !x6ػύq~QUsBrn?F(m5Rt]4A[iiM>]l.cZX ؛ l9Gi=~[A&&<1c˘O>YNq05XUQ6YCM6{G6(Dp"\D25@5))l+j(8./dMʋxFX{r8oO \8Z,г =Mo8vlc,Bnf[}\eax.$%e/Ȇ%A:x501XU5%EDTTՕOȹ]Kt]IL2X%LRm.)$Xx-Hq?!ć kEq6/N"@sFqˌzgNdʼnL3OG_/B)j&<^=1v pGYg0jfLLJE?vFtvQ^|p}3G Ć[%ε5a?Sqf "1@0wYA3G8Ros9~,n1ÃanN/`44Vd|V]پ[4rہdQ؂p|꒜yq}`gev[ˆ{~6r?tE[l6pZ™v: l.ⴔq߃壕Y]5}[@@[^D>գ(6e2+MRa=q &(ppw:XѬ6ن )KQy^'Gt}}h"03೾bb)yđ ;6c0qx3ėû2Ϩʒ? rdχR o1>ׅ8s<у輝 T(2v^}b(c=6<GmR@u6w%C9c+>^Ϭy`̱yElWᄉfl ׆|-T,QiLe=9c:̟88S((?>VfKd'\&"KAq:A3W!̝1A(S_.,Y[&)/h4E MF|~⇎ RI8mHqT@y懙\.e?z4}hb9>~xtl8BC*)No89HvzY?濾>x 5ߩh{x.snƐ 1y C 0 _E @fb> 1.ސdK@?c0: S<6+]_F`6mO ]Ĺ'G$*&"dMctܔ ÕqwÄPx)3dͩlEoq1sQ A oO3 ۪sdg߶`vv^c I'o۽ K8dW_Y\-Sv2DA/tj.M}sf}G|OUhb1/|!]A0\x]=B3 ؜x|@ X@ BHħ|"، Q:P;sc0 0jRd3%1×򬅇?OXI#N_69&.Ǥ[%] S7Guy|6~H&vc|uO4&v& o|^%#ǯP!F02ŐTW10Tb)ΆO)e.x+;埶s6b;EĖM_0d7#GaaϒOӠ'8!1V9ꣽhA1Gy aR ; }>hw<Ó4:{6u4cIY\x>PጃL^\цܝxœk ߖf}i6?'ZS$gS2foYCo*f i n>H?IaK83i}SA4y`NM>c/}zG p~z!N|L>;̈#PI.EG:e )\,A !4W @4L/~'Th!H' ulcNcpɚy&LK 6]Qy" P`oǛ;;3 Vv/HPE/#䏟Mc~-M@*)-qE`O#zq,)0:{Fu0x7Ԍ,Ĝ~3s+2r> 2stz#"9)ޚ-155B? 0a,dy`Nh0!.p2؈ @:KQ; g 8EP~q%l,GC % 1S2\"V}.g E%~]s[ovDTbR13"l!w4qi ]wG?PhNCsCW]vP{7k`f!F_SyJ&៎#LKi<̀2/F{mNa!TiKo WnXMȟL_#˯ș)7:ŽTRBX4蚦C9ITX4#]аћ| [ה8@&YFä}_|;ӓ #[ _9ԓC쉺/KףGIN M qx웺&/n-~"!8!>]}& 4C,|Op0Dr-fh;Z3~oΘN&fˡ 67YF{ 1V\gT_EO6ekb'$/0) $9 O .p8l6/}$SSZG[z#VM&E*cpnJ3 acz}4m[ )#O" ?O;XR9m?=*VE9&CAf?>ҁm@{H /}B(ZBˮaDS'c#&uoP{ɽχ0ac"D"ɞɟ ܮ2H0NVEC Qnyf`xuiA9?!ؚɗ Pn_D;yiő'sly?gͩe2ж!җn·$JGra\/"?R bv.Ğ 6O5D ϯqB(w82x>.P:/Axd=_НB_\nTmh8YbGr_ENɕFjך~f3u)yNJ`1rzС# u72V~#5ΚFk _nBC`iW3I.xr#Wqi7k2Y3Eڕc8]RGy,*k@$K1~ӗӽ9a<9,'"_?vاg~ò>0jM7a)+QЪd IjpVc 'S(5`<`kwaq>3brF5u7/-Kǖ{a_C$` 6j%;I+whS i=瓺nKc<>Mz+K?"XtMLQquCE{A/%Q'~?wF݈2֡eY1g }TrtjR@ @Ƹe-(ftAd~$FO1WF1'>V[]6,lPL Vi7UYo'@}]v*az2&p:A"vm9|FP*h/roۙ/ͧwtHk0EQ4Eu >A2!'؎d-8EeEv4?Մajx3?fSWn*̥8XB,y#.F hN?<ʒG./`7oNe:&F!"Xi#4 ɠzWҊ*?Blu_4 .헍e sC6ieԭ_`%Y Lz$o{TP/=ϕyxCyHr枪sCx 2Dv k==Axoħ9er,aP|C?JHL)#RC> ¿t>=_Fe::B ǖ{@{W"O9NC(=̙[%KUc 'у%8͉oMp}]dYTCo9ҘSDU-=x;sqf2Ka}2F0]x5>8RFK(`#F}ݳRa}6a~Y]Dz-wݸbR Op9dJہiqW\tO9flrBtL?Ȃ<;5\ *`} 2zN|._@. S q~^Tc iˠ:PS=p{1wLn䌷lOՎ;NŌ/h>?Fyg|"3Ě(4 vG u9?0ןkXaB:-~$ ke z>J! ( :ِO<OYjp r9]wE^XY0Ymįp 6$~ uBK8""ԃ9y6+1å9"=Dž>Ԫ3@3t3ب``yq >iPJĠu5St q1:VF0FP /gp{ea>C7̤z D>3?(;`7d_P%$s;~NqViO{rg fg%s6Ɗ!.qw]|Ea\:!du0W"X*8/W,I>dQ92n~rU ~h|Ӌ>cgc/QFrpg1QCPG Hםb`}a!>zl*N50$(MS^O˜K}>Gw07#RfIwQZN@@jMi_/ݓ{gnH-;Ա],{wbbf)A|=Txs' Y=9i\{ @&0ws7PtX9=l:Uk=:]ztTT/"B͍!xeah|@TծOw'~OY3ބHEv`CM@C=7$o}h;rL>eeDnɥKh6(D{k7]xcYzm_5˝͡_v$G?k{dЂʞ9E(1 P (+|ǐ_醆 \lGbPkצ w\S .OgecxF VWc$^`. q/a)_MT9ٿd=c;9JTa6m A#5'2{l';||:at<"|#9΂A/ ?pnÓ%cJcbk 00i~A86D {?87G)eA0ݜoToxCz&K IoO @ @ԟy7\_0"2oG?,G 8Vdf!,@^L9|`pD~ʐI>D*P`hB|1uC"%-Ƌ<̓c 6̓9fDX6Bz4!/3:21=3%U) <<Q9![vI~MxۦFk3$mO{{7365;=WaTHFs49e43ݐK_'՗s5=@Бt]~9GQ_JLfwr1h0$!20aNeߧ9p̀ qH[2@[6*1WxXStE9@7$v9FhCnlBԔ=#!%Ζ'à&y&:,O>֨e@w |JsS3D$#,NOw?c1ЇN1@Z r{GHDyTx3 !%Or-lPYZ'g0h#yVX-ȣld. 34:O%8ƫ907>pr8NjcsJMw }kqO xq/ez| gWPĖuIȎ] ƟWQ5UZܱZ=YM<c?DA7DYl08Cl,|/FL۟Y0yח Ƨ~%pV1K>ϻ%ӉC8:[0މ~b Yk8)&0>@Kx !B g~FF b$EjO/dkN؈ؖR)~3L{oEm)QO?l1gJ\x?mbpIv4m?}{FECn}F\aRMSzm~\d؁};i| ܝy~S"ز2 O^LBPy8Q 5x"JW/,Ωd(PWR۱vN7 dpJe{1r~O>e=`{=A ms)\z1 @ЎtQfg~û Z+sAuaa>~O{:W\y |x:S`=baK7ϔr2F|@ dv(+c1;CN{;ZeN kOs dq01r~'+ XJc{6V5PP.<6D8Ԅs\ƚ~-;iKF,Yɂ= FaƁ6%0$lM~坛d ߉c{xQÅ! YM#15GFqGCgC\0R|Cr 7 LYOՉ=#@le8^vB8)I11xm foϨmQ@nbI~B c"[u[X6'I 57!)MnGGm /|AT uasl=HxS-rsű'' yOz'|9 ^(g7 cVW@XjR'"}?K`MP`E۟>SludYw3L#Q3j"Brh _pBp(ko& ? \afHkR;|a䠃6[m⿺k $T$u%?Ny+TIg.{A,a+AK ĵ[~} cUIpbJڣQ<6Wgv {?~e?JdbvTTA|V`'}dٟN-6ӿk^X|i?Y؞sfN 'Cݡ0s'(r'~B&)(҉dEq8QZV Rj$B%;obFx|§c~6iNrTuL*lX,Pz?BdYQv^Ya&P9d.?ȕU#D%Hb 8ygGWƾza 7`\vQ1,,-mr®f͜Dq.a6[w<1۫vVƳ!Cvsqsbt!Ur=B I`J(:+OB[D)F_c|vC^&:gKoY @B;LUңqLHʸ8E [UC\\[k]KUpjY+OGqZ$deuSON#yFVPssܼ~yh#Ԡ[@4 OE~Ogmo\)z\0ݽ9Xz>d8: `a"69/ktzTu@X] Uhq,ݒŢPńd&4yjBF1 aWkʛ$`E+5Gyq`UH{3roHLdtw\;P&T-Ҋ1F"*CԥK )T-ət% ɬ!F04>e* t}#慜 =%RaS!+r\W+]?U?Gnp׮=}1/4߅# jXr]do` =z%2ctY}BtL$np ͦ+\|Sƹ ԔUO Wuv72  CXv/[EP֌I 7\XK&xl.zWpXRQoZ*1w"c#$U<<]F\'0G9NDz0'|r֮~()\95E#€eR0W[o<6&e36۠_&2`œ#Dqm(rTPlbŘɡJ8RbS ,r|ɶf9(/"o\9|1ap<ߒѺ"6rr?k%vff4.iGYj93i>=n6G?\sǓ+b0cZITHc+ pBXC^l@0 8g ',mݮD щJgf78{ c&ڦ*O2]%݃U];dnb19l3D!E?W+@N@tx&sֻ() { W6N0D䞇2eQ6V7IWiReM9H8)V*PR@8P*bS``VP@!"#.7t~F~/ug6;'BjmxdV[SY]f}.Isd&xzDٶz{H90*2Xd/Lˆ\'6藦l0_O :V^ b;)*&3sw-ׄ!)«8 lf~ۧ{N|1a95q@U,Y.]qxiaޭ@lC7KصX  >]`w }!"QXK^zʼnF+zH瘐=5%4h5(ƭJV!fГ%IHs"W#嘆[C.x P36a`[8W{]DG+GuR1^Ff9q@*e]wo"|ڸtEA~*/.ݒM|tT^9rT{&Oyӷ߼]L0=p_j;tt@s׻{eyC˸.''25N | qB QG0"/Aw 'Q.}飮ܵbOj6uv~ 5}7 n2ZBZzׇ6ybCdZ\Uŏ.TK.,xUpk8F,/5:Е+,y|6z~/qinĥ Q1FR ĩDq ɓ6 ilm! ͎[up )"uAi*^ TuFDX RpzTitj4'D~2?20$Ol9%<˺*kc"Q70 0WҩRR;"97WTiS`PrPmz몺@ VPp)Fӽ4ȚXbX `w7qn^& MUׯtN/by\ qؚeanyidOauЗ,U)9/L98@[ӚK+N[j`%*2Fqt* :ˆrP$pdL, #hBtUԂƱb܇N83a1N:/>2@ n=_<7wFHAdMȲ2"ܛ([J@nQ DTi9(VŤ a+^Gj3U0`EH6a;3`2űyW tߗ2 쒊-"SKXD'bQ1oYY(YhaD8a4pߍv۱$qWu!rQ:YW"-÷Rپѿr5j!M[ YvYdM0XQ mh 4w%=S' oL]F&4QԘnTk]/Emi Czĸ@EХ2k2datV8K~^g5GF*cq+EBubאVX`EtjW K%ġAQHޗT`Q56` B%"ʑб$@^bzдq* :rѓ(*.Lp-l Dt/1~Ņ/?Ȏv[v}2uhSMp6ꨩřG79\ZQc)^kiִFz+R>Q!YȲ_Fj PkjV'ue.qC*@",|[,U z4ep" & xEWSlTTpI/񿝯~qv{tT!( Di-'UkEkJAe-TJ9UW>k/SbEp6ā 7B3_1 MUmD}"heha]aKpz2SO 6WBxn|#䅁qƪxg91;nu8HE\#ȧ#`@ Ew~Xwr W g砕*Y;xOU!iel- ȗp>S>#jsZ>EcAm^j98+aR^US >U}䖏O+=~QV;Iop[S(y|cTea'GuhRET|^8wm:awF ŕ)]z~}487U0FUݻT9]~}RdPBHbB*рf-f.)*4 Ltm1LR 0L矶ڲrc:Uq*8u,(!͓nщp%OZ[" ^f~=Nǩ6Ě8β: 9ǜ;@qL6v cS13b2UDdhNo1>{6h .*TyT \ = Wlp~{?}¶ o+eT 'DBAǕKeQپt%Q\:@ɞST8lK=GGd\T5Φ%^H>uHp'QyҨ.q`Ȋ%28"P䲾r E0 X,b-Zt LF 0a0*!R:`',{ k#^w9&#5gz{TǕعV?FN:c(P0WTJ-_T?ڟ5|_=蘷 ?e N R1Lgh+]1e.Ǝ\'&RL(u(F K*{Fmٓ^+,6/Jd?p֜\ݡFmPA9e` xYA{1UNk鿝w;?_bNM\L螳} ^9nt#)*zgMbIAAFG^aI0LFa(8h `XDe;>J?7~s.Nc R v~ջC6.Ӊ?!TjP4Կ"|IO%<1;,۝+g~ 2;b<:q_5q?ʶ2^q|rŸ+>r5;dB{J+m?J[0-)ؖdv#ɰ>\ _e,vu +?P@H,q?[kO]Cv(zQB؍жC2"7P.l$ppFVK%IA62Hq AX+\E1|ߵ<v oM;ܜ加DU"ANV"E}xIAT*9~DP>D(] D=4Qp`Հ)=D?Ar s0Q M t >|[x"A_UP AOEU1ǣuŝX" MJPxۯ}MBEս? wA 5"LJg F$9cDŽcfCG<&hxD7W%1vlP+ VQ_Hc\|t*.[?iGHxʜEn\:| =Z/lnh@l;1[CK[41d:V̈́~ퟃ[%,:4_u%1Wxߧ/Ϥdw?/Λ+Ɏ)0b#e{h7pU"BY^8.R{[N3;[.b1"g"i6]C?pC{bB (,EuBDO" COu=>~/Y:=!ۢT!?u!H)u9.G8+zzzɼ5i`g*؎+בحWBPWk)#̄Q㊎ ӌ5[=9Vej_#轌v;c7][9l 7lӗ. {Ǟb1iɸ 66=L$#$:8ocUW$hG|iJ%8Uidyƛpz?+ $=jO NUأ=͍J [}Jr@*~;\|<| *r_d9="/",Pplō1L}Ks5)|{[2_ +-#ݵWz `o~FfP*x2_Z` }FTxPe*>S<.xP>k޵5}*+=j&K$pcK=kjpU I jc⎊6c yŒ'pˆ5}ΛZ:M>ugEJ a _:uVj{$ 9 PaBKB-Fym83Rgmپe،c:)lnNYi浿9Ce4;w4:stqͦ}ўQ`!1alud08|byLb#Hg_:b+LQ9:5 `i 2HPTK VZx`0h׍H |2;tCϏSbjGyC  ތE ou]!cd%sc bTB iM>?<`vp!=!s~{bBB6Lop^kS[=2HU@(P%4PjTbP;muX_A ~ܝM >8$j+03fa7!5>~|C=^Ⱦ"$gtyG QN#=v-\ǨEO͕α־<~#z7ݸNM9?McS<,g!@v@)`ILhq;#;N8>w.,̧'yhzs6oN Q<* ܺ.aB !l6 ۱Ψų.` -bL_Q刮@h" PHVa8E-&W $s7^NY%AFz5 hnep#O1C9π9p{Gla^?ۭk[c8Ym]) /Jӿ=y}B,:P pTvypPp ##ty|[x….@;!PgBãhSzo 5:#X;Ɔg/XGk|AðVȻfHb ="LԮK\0QaW5]D-Ryfn >Tdz8|X~\e5_Lbخ%"^Z!:Hrwf~%}7ː,St+<@|h~+eK(C!Lc8ÑՆI^Q{fߘY5 KLo =EvmؿGsr9a~..^Pس@mFny?8#;Dd j6S!x ab61yw)8ō*aRLAKc ,bid!NT#yzlBCSL l5nEu I/S!?hpS Don "BWn( reDTJ7#A wٵSꪞ-Xv==2}[? 2u8j}xCwW #AĂ @CGXw=7.! ?6+#v̡ WoPdGp SuYEorDu-@k6~f(3mڭO婳^vuv5u&%cX}\WsES~w{üdo7WbyWwWCYy@fL};Z3sA`8pf?'"ѳP?,i1O:r뜪=m&C.+$?چTYlpd:& cS JP)iiqe-04r1|}Gd;y͢~U!bR4ƿqG> 3;Lo9ds?gp7`|_,>{̃  dDÃ1BR0d"]i" &e?7Y/hWr H*>f7Av&axޏrY]g}!9<F}<;6ٷ? >a̭ӋR)56} 6*X)hK)l%sqȩh[ȏWM!¾ws7IAY\s,k㨹.p]ѥp CeFjnٰAN7`4@{;TsXo[cxH:d|aO A]8³pk!|oQcI~SEgS|}t`l;L*Qj9_y)dQ9 vi@A/AEԌH1T( 8EX)W% s[WσyXnD:ȇҴd6[^)پ0߈hA 8D>g.z8Oah]i?w:J~S;IO 1z:cy8!z=[I[=RlSU0ebjU u٦s]f{␿]| HmRh})wqCq7VYg5OzCgvC20SߎT}J:&<ID934ፊA%- O`uoBms3i{v''C ǣmuZ-BЭz@]1̾}(#8 N6! 61au4;zҙ-{35mgó#8c;C:;>@8i+&&e ;w!ÕqsrDɀGAڎ0ߊ?s5s%!GdY\49iG l/gcv˗dKAH`} U\ Ef^Zhq3Ӈ.Ozg>ڌ (9 Yݛ ߛ 9^I `ߣ@v96a` 8Ou@D[w֋*18iTW!eIST( ֳ 2)狐ˊCb f=еD1܇1O6y#Jr CFwYLc`4D07g}gbtsPC&&!,,[Vhlszp[::7el|n4D?L g/He0T*9W-MKV ڤVM( eJk v.5Axrˆ"Ax`q!d2P@n zGx~͇xAn^˴l7CtT!ߨ< ڻfHMٻ <=_o~UpV|J{! ;?+ǃC?jqB)N9 !pZ<A{3O>Gfkǥ )[)pA ZpAǜ {!Gx#ݑأ9A J6UC (xc(CppO_"Pww ă#q[yٴP?~N҂8)3 :ORpSG|'ssw,X)@QH!(pTL< QBJT0*T*^Duk{1h&tRh%bGq88왒O΁H@Т*PȐe@"HBA*!"B$) "Aa$I$Ƃ@ID$dX@$DX[@PtoŨȉ ":?QWKP5 !DFlRH"H"I cQ *$@!DNP@:DVAI!$YEBEI$AYdcId@BIjF!n5F*HRF* aJ#  $$) 0~aA DA8Q$BAI$Y# HH@DdJ *HȬ Sm# hDvhA!9(I$RTajPRE Ad$DdV@?7hִURKCD:T :֕EЈ) h ~ԠUк4PLDaB@AI E"dD@j DDaTE$YHFDd$ISBBFCd#VFD$$d Biu'D"QMh[M&кdAa$XD  EdR@  @ %! "(" z Z)","A(3(("H,.j@$dBBD/,!"H ~]mшqpPQh ! C2jݛQCac냒\a2?9}g,lD(k)坼 =! 22A{gꗋ Ӊ)ʼnN @2VYC֫'R_G$sA=K`C>tCho! :tSav;TF^n A: Aj#! Q $dDvK0 y#YTMءBXVtcae#&~ =I>Ky\v8:4nEUKF?k_L2:b{C^ ߎ{ѻŁ뺓Uy1ptكsZ0@z78C=zɈX7؆-1 )nןwb>FYJpTJd{.% Seso٤I* ikb!Bv) y0 f&k]abk,}\`Ye##P湞6̺Ԅ?͍QFYq 8?~Ax4rkm)OMC` ?v^DX>t(2J7Ȟ|}R&M|A Alk$:0֩g#6 FGfNu!zryervB~kYjaA䡐79\ٳ : #%ay~ظz(Ct0 ^(쎁}TP#fzCڀecPNSWW+;ߨ t9qF jN`+ .<M>o1#9ǢnC㜻HA71ϰGLKK0yW'qYcq鳔WN[xh}Fմ (`X[6lUHHDvc.nCYdeV1Bq[ݸtdXjPL7 #Ja(< RN&9H{Ekb P?IJ1Tfs%~UyW܋ 1}e8,?]90-Ħ[Ed(hYcA{+`W#Pٔ;;Ը?)j$a!q[B5ɖ=2( CuTԝA&Y1(z[,8y ː;1Sy9UK:l!X̧!#Go ΥGջ&glaoa;?bk̦dX(x3sF&4ɕTeC]+K)4EpH;GJSal9p߷lVM]V1E )"o'\`/%88Fe*]ȥtqʦAjL(Z[z䒪O3\|]-6c98̈́*abYOs4< XA{Fv-j%#G)~>!ԍ10]҇Kq&bbW p=ۡ6t }w;_Eg9,k3 2ˇ'K?Ky7~A. !(LX`JPVBًp`0Kk5T ))(ʶ'z݄2ų<B?z@<C:]UtqٛS8ELd9!~oE]a>. 0uEY0ҽЅǤ1"8vkRs*3ZvH!lOFe\ )u;\qmG2pH?<8ՕdbD;8 8 QyBxF6w3 dNfژloTw,GX*l=ٻk$C"bzd&(?V{lPRil 7E℮Or XShIŚɔ[\.fs0킷>tBi=.| G&#cu~%jW2Hy RQBpw" a 9,łPR+EؼZ.wjɤ1l(P`M JʾsON534,% gS6`OkTp3 Vp:1"R̆.i -ѷ:CKgvF?#SonayʡSkflaFl/Tȹ,0%_r>DoN? ;6_WD~oA/CC:,lQj=zM9?3W'[ c[xA 9hUcΝ?6F`viV-q_K\↓pJ5^10 "t2H2L91IXQVsGLu $NrW_ 82AZ>YѴTOQ4)HqYD)H%!-J)+ Z,z)ϱt:1-gM~<0: CIheD &orj1Lze D>⎏L7me{/(\3U*xE`p=ioyٝ̃Rptǿ 6f@:"`*=ҕ?=͛rE 1yIcEyoz&WzW9'[BAI=~3^&!@ 1ormZk:tyc$^5x7foc/F6zQq*On8+Vf[ "yb' ظqOڗDwoP-=ARg[Oi9sT@ju y2mB\/֣xbxČ FcG)JR/s3 SSnm(Xsl E$P?&ӘusjŞ>B3n)udւF׎ΥGEbM31ۿXW:6gA2Cz%nGPd )E1lbdȎO.HRE ͕O8#ʒt<\cG.U\tpחVq)OzpX1!nT*U3żg[N*DUXP++;,JJ6U]k1mr8NHԘ$t`8$]7jK7do|ݣٙHe1ȟEE J"P{ĦV9m.~e\eś3Yr[5>D=*DČXSPqJg>_{gzSAM *-fyɖzVH S<и:Jd(Y*؋r@]o>\ِ#!a{1 zD w|C^T3>p6|;!gn8ӕ]H"^(/XFzA ~FD8q67t/Ͻ2`%mNSу  j XS vսUTe ^fMwAU6Sf\LcḖsH'\'PSМX  A!ɘj5aN@ OĠ]UrK|(J<`p62&Qq>?gzD.gLd2^+MUxnjH-bYÊʿh6FQU@kxDN JVB)>x딡Ip>"dV?2e, [ X:ƮkHIdtc]aC|w>EOUb@$Y||{U>TmU(́AHAnQXPK+})a| :: ::˶{4=E6N6IF= ߞ}%U4,Px}m'f]aP,, ፍ,1]^%%Vw9X:<ߎL ̍* {!='0wEzwS7o3d;[!Z>4L*g3x $.$I%~}|[#ŴEfdDbBQSymb'] (cXP1+ =N-Oo9nݻv۷n;v˧Nvۧn;v۷Nݺvۧn]tӷ.vۧntӷ.v۷n]vӷ.v۷n9v۷N;v۷nݺt۷N;v۷nݻv۷n:vۧnvӷnܻv˷nvӷnݺv۷Nܻvӷn;v۷N:vۧnGw DV ӞTn7nj*!;n-us޼}!}KgopϰZy\#`Qh(;4GeWη|YZo?@W2R/&@5/}ƒrtc;?/-`EJʹzI\ĥSsn=^`(lP']8o'A(\\|$4֩ST4h#WWGa²?"~}Wu2~?<V~rX/ko? \}+j}wѾo_o=_.>}[:uUY? w}L.w_wdul>!7a{p9rCq˸޲,DQ+RN!p#&=Og=!^m?fJ7;inho6eo mPc?JJ/t뙖QXG+j1[3XWei.-MƠggL IRsʡW& 4ɰHUWxxpǻ腖;ew(C|\x;yU:$a+va1~IK^vX eau8{Z pK~xn :>ʽ^it9ބNdĢC EESoPH]  ,# Մ!Ho q,(v=8:ى¾xg#"uhǃcK L'2$4y #xs*] ˼~82 >3i"Sts:)$&iuD׏v)SkUm <&yn<NIKڞD!"*VtW50Z+wg U*d -[*:`ko-;Y  ]nW-chMn4jim;!3F3Wkѭ+!Umk(Oq-'# 13c&)7%f9,U1x]Ҙ\ΨG[Y D@LU8r'< e.68iՇ]Ǫ/T~*"벣KAMF3eS\줎&?D+kꍠp5v5E$}}jKT8貁dY=0lAOA'10=6n?]9r3O=8I114Kvrp( &6!|aŐ;ur)\wg1mFL\tGqhqbC%Z{.a KǓs:̖~{]0],wV-x#/|YDf$:a/axE;?NA j4>âՑ ])!F>.N8*dUJx~ -6fb]|Ct|?ia|^J]ifǶ މ3'LO#śtrCp (I!$y>;9SGa1d}1Hn|6ڕW kӲA; tXlE և{^Zݚ8s"FS{.pIaZ^-0j1nf$fi"Ѩԧ)js D@B(*.V *`ku4%w=ⴍQ>- Zs? S? ݖDXVI>/v`IuHK^u ?Xmee[`D)~)nwTQuJQjl?{l _ZpL@gvcfA}(|<79jjh2n2) 1CF%)Wvӫ9#SDe-TFfn4E%҅}||;gd(Wc Y#![*y#U ]![$_(~ elmŸ6)\zAv`f#G ͳŸڛ|gaT~uϨ\(|K:8 |[)~!2o8AVn>ib0@~wJT!ُ༞8ժ1&HڵN3Sˬ6 xsYQ*]R7:do&iֺq[Kbvާ|y)tɻ{ m1z20!3r iFN4rtၢ:_9=9W3E]"pAYFC웢oTߚxl6 XPar},K`AR F(ҖF!zx*|)A/EA9RT4U;B8'򣿫uX)̂l 7{IqIg 2ǏuMO>=ʻy+ gYkn>pi8$q11 1BNSNiD;>%aF%ii A(&83܄e{$0XXJ"*fQbvab\xcuEqRr9%u{JC nˬC^Xr Jߛ4}hz~;ӇϑF~+aD]BcEGDđ;ǝ o@FAC =G7r71&_P'c ~DG!A4,p(,L^o Q$o%.c??#nd)v/oEa]3ƾz; kCK8E_<_dKHGh; q3,= ӓݨaDl`J"Iq 2%[WyOrR1 . #Mݎ׽[@?hB1Q8P *6-@g, A(C,zUQ e7ĶfjFvm*DP9H: QYR~ѣ,53]"1ֳsrltqA˲ SAR?ݺ m]:9QvN}(Y;i Q!6Ͳ'ځNٸɎ9A)91f'Էv33>u'L !ܰٚ* 7j&<2!YT$MdIZe1sT& Shb{O]IBaAAF_"Q@2lA>XR|YeǧN`tE@HaRBQc(Q7e-wf*Qt۔ /oc9l7rE:oA6V6RZ4Ìr/Wt+5vUTt~PL:wW>T',sqo'\-̆NATBj]Va@[aTm{E~X)$*+!0wq^ujC0V&!åt I Me`s, |g/ehu*kBh %itU%G_U]m<(0'v"J<%7() SDbtP  X^64$#$[+E"1?PTni6 DcWo!Q}j6řIP3wmBӀ$Ѻ{%՟"_/DO"VKu5̈́dJզdJ9WM\ϟfe@gڸ6y!Gl[16Qor` 5|A 7{:jth>)OӦ^j+{dJ 3gkG\bnܕö3 ?.Y4oedIQEqXr.މEd"ز/a,tVvw_"FU#r2'/dʃDSy**U *Ud.'/`=ޘt1dKdgR-3"- -9pֳU=spl1zt}ma>7kRw wm-XaY`d zb'Y >j`G fEy8SXqEq~ -B4)LJ(|W0/ Au(`qȜůwpƐݢ2 LA`0A6N(BE:/b.A HqDzx"*S`x1HE=FM zŬH/YcíCb@N/~ϳCDb?:XD )'t6xD<9s CrQWĊ=kX4?C_%/b0SMM]Q] 8 ap`Rzu=>u'Z&;ۣLm$܆h*~?VrPw~(5e 7AAbB*`0GIJkdm er5+?ƩE½ki%cM1ҨQT,DQku2$w"һn hla^Yٕ W^׏K^ =,'liN0ޗh`im/;}=30~w'BjnId&fo3>c jjtc+TrVGrs5Wu>p१gL':gamp@cn єkHuf^QP5[k$7/pz2{>GG)+&Xz=xڋ;GUM-lo*QR̬2Hl8'W>>"Ҹk[$ze>nBmyLTŅ/(Yi}8.!,ikzEa - x gS'0+( āt^ "U\[|cHk^,6f*#X0fJ9I(7+%TCvZ;CM]J_KhyG"n799:E OOв %l$!ь-ØXsF }Q4d=AIо ͛誨;`GաHȶ<*, f &[>@A' wqP" +:I}{c>R3a|p! XY|Ց"ڷf} z\LV/_G9=3MzV0%qX KkOymJl!#l?ꁄgu 3sh'r';}:M(yk~%^PRQpVފT=>Ҿy{,T?gXak" Oޔ2+-lknWKTEtgR7ºrZÖc Q(vVCU}n @4äE[No5iÚq%dc)QNJ0&3:q<Qpi1Y1\^"B36l QNSS59EHG](%aާ޹ۣ-K˂ k7>7u)ٌ10:1pN@"ׇpuTDC>ehb=<g갛̠2ʡ;ZZ \ fܤcN1S fBl,ty8bۖͤ+ B}]_Ғ^mi[do?(bJkiM1UNϻ^ xTv#sӽ8~~#UM#RyBm>CA{;&zIHp\폊xZH5@@3Ey] k!"D5Őf>݊ʫEE]%u=.'8^nә:FiABJ' I\/ H!xh`ȻQZT OԺG:> {E4U?M[~aW~2*vYVASp6~a~#|guɘ8ѠkNg"0GTSgժ/:MIn7Pdze *0\RaJ[W[qr#X8謿c6'+;[f0Iyd_=VTFY?̷YArzs)&6cXj\m۷;d.xz:,HJ\BIAQhT)Җ/c 3"55դ0(LѦ))" ɓR E KHuQ-TU,ʻi,Jd<p=6] W~v;`!dgvKr,5y(fx] lDE +`\]ax翢먐3y0ES.|L8HG>T`%#+aA 0;~r28cFJm.ކPh]^o<ۛvǔZ50[CEe3}jK4j jW͸10GRn#?լ)˅[,ϼGt Gl?19)Na9A^j4{q0d 99998Qz` }ܟNPQ R('P)̈́1c L [jb'1RaMJ#; IW'~1m׾p˜bkY S(rDno\ YϜ.C|M仏 ^ds (r@WrF0WȆ燁_B>z^;DN6K8E&ًeL Uaܽ ).]A#5Q@FAatno ^=(A=KEG7EAq> e#n+j$W JiHRՖ-bsW2_PofѺisٯ $|7iuXe]>QOmS3~NP4,/iJ,F-0+˲xxs. /`f#^p4u9)FT٩@Ҙ#I"mS˼Ҙ080Of|%&H~! ahEAİmô=VݿE#T ï:qH}KMsR"P)Or/|3⡄kt}GG T |'_7',P7v8 ԊBB0ZQyC*Zի+0Au`nz8%px;#acĆ WCrıQ@AvoH> 7)deȡ1 1N-p*DȣU֯S# ceV IЭ%QL60K%*7' yU؍熿`E}7!Vc)0志\e@f,!Pu.R`>Տ"QX=m:vªv;'rnĝ#R#(Z'Uv(PE0"Zy1P) Y Cq:I=9+gU]8> JAȧ0HԤG tƤzWE $v?w626'VBd1BHLI4O HUrE7׋C`b/1(fT,C\oz/D^Br]0T5Th6x^"'brOjYe>d1Y $oϋ f`)PU.:zWcF% 6chP#uxR9uʔyys7] G ~KvxqJ%/Qθ<,(KMW=+)k[C3ΆKzt p4lzS$ WuBܙ-peاD٪ ˑ, )p'UrpUt[lbvYx:MK^iʼnrl~ hlE]w;]0B` lħԠp(€hR1*bkz:uU}'>`..誳|CMtAӳZLG {< avY# .8M31r%fgSeofۘu9g]gh7u钔26r~wӃV*&8%!K5z=E+R2ψo熗_)ws2GeL)*2iWH7[x%o~9Nz46$OƊ|Splh06ݝm|۪A/F $q1w@4g\ |dw(?B@7*0B; H6 H@f{` ׋oXPő |ܽ ܺķ`gZBО"20\Zb m<{p| __Ѽ ֆV<,`d+>~Sd6:<5R4?ZxkoC:fn'3y8sL NnrifWJHuZ]%/roVژhQO;JePUZ^} qQ!ie0QCoFWpM> 9vBkQy(hדF{ Oa,>'U=aCz/[(?X}WM#ip-'@BPfI q" 8"~&<W|y֠ b֩X7U6E-~: ޣ$ݡ (4[x͑6}:v< p 3bM dw!mB<"ܯ(ꍠ/c$MINdsym5v!XWNض,p,˳¶E逸)/mFE(RC2M;ծ @T !zC 'aJ#JëOƲMpͿ$ăoF\ba2xMJ69~ jb(¶9{9_xWR!ߔ$ŨͷH6V]"]NMP+^F靈%5){᩟8kD)o"4;¤cM 32E&ED~vVyG_yk9_~변Ni^W[Aȕ]޿~dbjMX)dR{hG+hC.VQ0KٷΕ՘5Ȁ,v`GbT/#*|fEŦ7OT0Z]ҥX`0ABSvh\,Z-ZJ@6-,kNJI(TfP䞫 R^@}F'OK_e+j#kB :Lݹu"Uzןkؗᱜ7)&eVS+c)^r3?v:eT1*8(3atB%ZU=$t`T5.Yma_HEFoWގָ/Ns"N7%Q$_=b!9(iyiU/u jr;=o+8:7a C@:c$i5)&mT;MQvWi&'L60DW] 0R58-`p-bлReiv邋LM&=1S4;)Lc#;JH4SɜLdbb=0阘L,*aZL]DAO*t4x00){ ($Rj%S@зL t&A_ѥaۦqaZK4LIKtI%^ 2RIL`50Yt>=L3Ʀug3iLf(S! T&E33S;09L۔IԘD&!3Pg)M5 eS- d?7~QӾS*/Ls؎P; Ua"0 Th> U9Z#gw 3L5 p"Ynl WՉ(Tn/0::8 S~zh=u{Lq@Qo8]@V,qn 4:+ٟ;$dJ&Nb$Cv?s-\s{Q oÓkj^BQD\E1]q⧩V7́ߧt3Na9.%^׽x'іAqib$`;4͘dg)66َ-j_7t()RL%P&0dd@ąT(XOE*TVt"& >#Q! H[L!.MKzpWfP) *@֧zwMU>(lB|.3cVp@]@rRd3lb:gMhx}O 3imSbd=B`xgf![/xIH.߸z#o6X=?lݠ;EdH;~*S`Jv.9ބv_)7<؂?,XRQS#jʁɞ0!;*;tJь@ٹ<9y=j61^=b<&2'^ճ))[TTp/ Ei$H l.6F`hΔO4bTW}A H,W'h:b$@vߴFnf?q-+}xA̛!K|M#BFe a[6wH:eٔ BQn@eG (VbaQXӻka҆PU+ho+u_H @meU݃}K/\@04LTZYD:Qj/e}9:sdjQ.QOyƅOոUÚ:" sp\:ُkwi GEsfo. ?I➸T0ً"*l/ O >[Bi Ü̼#T^/*Lyd|]unBO;nc640CթaNԭjnZgRвlf;yu0>ئ\v`MNosWB +k:p+% 7v }԰=ZQ3"&x<]KVagb| mWS: `R@*Oxw [tG}l{}G hP9noѴn } (7ՊYNn_Qd.ɒؖL}~}P1[V

ZsLŭf͔U|s9+~Z+}zo /uJo{%(It$;zkAY:^-_/sn~ C42)wz`1~!S}bqOh vHɾv>gp۫U<~ pw?y ۧ*I4ɇ:f(ޟkV"|z:7vy-"UODus[q94E5l y(Q=BZMScWYMε2m9IOZHrN ޥ:ڷȷk'~qoNbl0,_~|{jًp;vM^~RGYxޘ|y. $=u~Z'tT;Ttma`vGw-t:Fox:W+ e;*{!4Nl:d7+iٙʫ-yx6wY uңuatV&\[:r6%=er08<,5u%9f4@ieٴ$YڗϱȴCM&y3#kU4p a^&UEҾ=sfPNKFV 5>Ń 9C5Q͕ɷ5B,QۀL{V x>%&EEX`L&2ݜ#Lag^oݐy3"Ml^85q] Z3>~ '!x^U]G0f;cӊ&9a%!3p LA5V{uN&GG8T,4XbĻ<%G ٱ_ufm}.N}gjY`edec9%,+X|H'JaD=HoL+i{&V\>է%)&ٍnۑ+m\2)VŔ/D ˚ͻt7ZA@1-7] %ݭmݘwL+CW^^2tw ϙ]NÍv(k9Bl k=}MUW7K3B,`IeLT/w@>QiweZw"vh5vặ1F8ݔDb{)gў|%{{grvW)žiH^!$xK얟x&7Ze΍T56 : ]RS=)YŻ6T;.jka1w8r|[@`ÍU+q8e}~[){7l)gw FڴG7,rZ]崬jAvg:n ~LSUs2co6Ŧ!4dr7DDo;%ELHi@*D϶f O =-O(f;J":tX6 puY?/2-?C~/g+}ۿAW$= *r(:T_QHOUh%ts..ܥMn*\kgryNOk0?y~`Ap;< -İ Xʋ*،|}suu$;e@*9g#Nh1]X0CD.Cz6yo?1q!W{iq_,cݲQT퍄^ggʄHswc!m!*ɚ磄4S7TAKLv`aO(x;^Ch+tt̕w§I%un'y縚G(E)^ ([ZDoer_9@^Y| n|0OKj}7ʮSݗs[qlW-8ɢmUU$Flݩ0$ t%,n׊1[bWrN>`ͻߴm^ QjL5t'%{-n]B,uڴCqf2{4ɳ2\sWr'ѹ(Ucw8#ƽz3Ѧ03}4 ܇7$2gT64$qe9;?D':LZ @Q eΈnKtط|m0-*bAd=*=+EL\oo~}Kګy^7|qUY`Nvmxy͒t si{~ xJO*ؤ&}i߲m7{Z[t^Ca<r&=s O6l߻gnz>1Yt{|'ʄjoIcU ;x#rlGGt vy#TJhO˙zLLΥgۦNgz=3zڪ晁cU’Gڌ*_J^q} ZTBc%/%Zk栱6hUF>hѿG@R ex?B@bdҫci? s$pM*p;t:x:uHvGMФ5.5vK[G`b HwXkY|Бp_ h5~zRݙG@=]A7p LLN5G-ωQ~$ِ߳qN((``,݉' w^1Rc{6h" #/a$h݈XLIȅs *3P#BR{Kt&iu`%W+ O?.eP*ͪe02ߺLTRғQ %\NBտLnaI@ي4J0&^QIԅ,\ t89 Zf0JFR(.HHz*z:XDN=CR;sPύ]D$ZA5 SU(X5Jn9²RU}\s 8(÷Hf]ju*o7˹z xXy="FAQR0*h]bAD58r#g:b1 Z`( Gђ5Jjz-<]Z€L@S1W ZE-N$OC, * 8psrnլVD%ZfVjhPD B"IPSJןFPǾjnmH?W,wsueו;s^fXQW'SYy4SVm] 9zD, I8kM^1R4P ȀiG:֡jSP=@FCX845ڢ Q\%EawU8ؙdDz6!4Z75q Tj.)[xjv i^%-Ta^y5# >&!)(뱰q3Og=臨t˸ W?~ڠyWzԺhA ayz gBVFN ]eZR4J/yE*~1TZ#1?E ?X |JW_BSR-YH^_3#K^tQUqdU<{C֒&+-*IUZ @)"/ խ.*TKN+bb W)Lժuy؊y*oVKRU8_x.O-MUd!$$+SH AE4.H &QQuB dHBF '_pܔ h`Q5Ãm3X>aA198'B=L3!. ۿL@BTё3CɨmLi4M&^^&Ҕ3FhFL4u\&3pOgdqK0Bt^#5/?.d3s*:׮*G8 9G= ֈBz:w@_'ԭU:MU]T(?Y L Կ7*hL Nw,_} ̯F?x(;- ljH/Jts}FT@N)[ wB Vc+vU"# ^ŜfZ_Q$[pŸȎ ,8DEݨRά( z:4e'+=B^KfVWj~w<~7iToᛴ溽+3fLJTS,uz[٨G ~X(uy A57{{j4úAH^*1}PMT1c";S2ԔQ MR9E=QUT@FL`R$f9%-I4gJ M8~qOªdYŨb /0,%dO(Wˊ9Q l..C,=p*+*`VhVU]??m]:MwΧFYV9(OYRP##ΗnT@ǩ$߄+━<5&|N`ʵF:l] BOĪbfDnt; [KbS,,mo~5 hb{=۰?5j UJ(L( Lsuv扪AOvt^(ZM5 SDVҿaj9?kK>N!(*W@ao1/"C #g6$h%8-0 B/Oou++[0q3 -lBbX=Jnx8W+Ww{e6[J|׽c ew8o u\&ׯj0Eh4 #(fj<ŵwJ7&$l T:cwQ+ԕJﯕJH;efϘY)C EC(M:1@-flEhTEk(h2L^*ȯwtT.-J"w˸zvGym\JQ$ydJiKy`WU򁪨m.L+,e4KXs27|B}1 ;QKvO0IHdATLai1~FpO&,'Mnz#'0+NԤ&Zaŗ W=\7˱"{%h?xxfc@vv*J3s5G$"w|s$5E$X4*¤%i 0Te===;=aVT֕T9VU֊++Mmmmq]5:E ^/vPk8!'>beZ2MgS<4k+fxw"q 0(g$HQ(J^RK4aHDJCp/ t%Y"\Xk=nK >Elk80a*$(&1xd1bR_5esEb+,Џ8ܾn?o®?p0tbXqOtUiv7mv.Yx\cgOqJ{+g(t s=T z|y |_VBǖKFEqRkJY,bVdHTK*ҋRԨ1҇9HdgLAlv졪*&[@ejBE㣞$ROm>Chv_mz"1X E3NjZ.]h3*A*)AP1EQt*CFA |3/5x=1?ǻxSV@oUwOe]G85y\XtvPYW#,Z>?.o)Lĉ O6i*j\P¾ yl 7jQGl18LlSTL^2'.蜏Kz l9?Z?5bd+9K(5qYړXz#E ;8:`G(.;ҍfW @.@cV2z`މ ? U Z .)Y\mϬȔŸo%ΰ(xΕy"hBC HlD)й'@+Ň$Ɂ CĪ꺎JNM})b=\7?UB/6@<) zqYӧZؙax{8>ԁλIQ|&L$ `Gܝ&Iq( x=R^ѧjٕ\1k=w5C P=o3D)$WT# Q (LxwHfF;-΅2!37AO54[6BO@,5*d`#> ::CrNf!PqB=昡􃄜-.@޴0zAQ0.AEHl|0iX`ůݐ~{]_Fwm_#-WӒ|~O V PE h ب<T3%%swdC;.82<(̓>[_?D}b2 p )X7  E|b3bő" `/DZdP;bPf>Y?0Qh`LY(3d(JHQY> 8>cm~R2(z# Lbwi\wZzUdK~ _n:h!Brst Р7kR Z_F[j2thkLk7hr;,WZj^ YU9Xxѱl!;HU!U<*ZnV>-Yr؋\ g2OB\\+aJjweEB盦:pOpgRֿ͝b`4?+ɣlKZz ")tiDqH>*TPMNE_D,AOKYg(ʕVɭOrQIІ 6$?2n $vaD4-7-JJtXqE-laɼ<8 AY<ß`&aIq}c~LJ'?t8x~!\2,h_̾7+%=csM9vXn={ě/y'{{/kC{‘T_B/g)+I?T\kOA'}kZme\̇ۼcVVOZs?1ljg8O-1-5@8/z-BB`^ӏrX0/V*>X셒S1fN-VIi6:0ML'r:b/E. t!f zj׭:b!ȨdvC^iOiCJgܒ6;XS/n~|YOe!<$,dNVzqѥ8Xsrf4ѹo';k{ p12,NuYcOl8Ӷ83ߢgKnD;Y^ܕA8r#7t{;3򄀡/sD:F:CwI!5^ᷛ3S G4":̩5QlT4 Q@QVtkKI'pq ܧ %/Kb.CPCpQ.Jݛ0pVrf'Y.jOvoYy>ٰvM NtL" KFDɓ&TaDrlX,"TMJ6GŐYIa+Lf?qXq0"t}BjGRx96Yth6rP αZ<2 \ǫMCݬ-;! lZ'P2. (} VCZߙ ).d8LB&:4c(9hk)?':ΎyV3!rj#li3.[#ۤ_~-J/h㷠zb; K U@]) LjJ@D.ew%_Z kAfFoG.=^#F?-!1v,KyYw×2yhqxR)R x9EZzqt ?܈jb.p FՍK 62<4otl9pp\cF>F~q{"LTr='s`W}!=GhʥA޽u||q8[|zmuG_^I qԊNz(1+?z'9>bzoG,_|*AV?G@N7Z+.h\Ϭװr^lW@Q&AH_}뿹`5|lkd&e•*TRJ.(AlŠZ4D#;1tHLT>OegD2E*m@bˍLQ(sIH8ôm@! ts~Ԕ1Zym|GS` .YD L84En(MujS}@H"a'dCo,xVP71\&{0G`5ޅ׵P~ VvߞvvT/;?6tyj㧆 HWn_3)ұkؓ^I¡U$sakj!H7&5a,ȊFEC ^$.օm٪+7?.Sm+~NF'vjN{!DGcNQ4h;&nDc +QL-9M"ViOEOR%MMaUXDBuuuei[; D?fmωr):m#S$I@shN";|'ll2˗.նC_Uv-~@W&직xs_tzn&sv }^TM$ ty:ἔPM@^.K%TM-2ePf/ONTd c؊(^DtmMp]`WG\ݫ'!:FR.iޏ_zgK'7`¸l  XD{)L$/~m>^ Hn]2 ˀ]UsV N)ږ{&S|EL6Fpyݞ8,ܟh34yd[gֵwh6ƒ~UwF {J+mBzd!( +;9tr̃V0ܿAUZ6'gب[t:R{ĂO:7^ZED!c,c.:;rtq: RTCne]ny÷~݊; {A\жhJ/T2f\"/}orgSb.DNmIT_D2; d/# Nw exsA<:NVR&wó."搨Zm(A|7+&P|,JmρT73:on?fZiYgXѧ8MQsGocVF_r y",d7jTH-ň⋨㝈4 6_D@9v':5f` rb_+D+8^ԅ>+ro=_{t*I/)A}d=PhHZ؍fbxc-XďZ:"uFcPLC}3FVG};3Po_tBI%q{4D?6p7Z>^ܘuQ 跻VY*D1pXtDŌKݳAj>6p,oW@\ن`#OLQĴ@XBBP2444EJ꼩/DvBNO`^ OfkO9+ȭmD2I!΍&E𫿛C1QBssK5Y0Fh".B^<7{Eо?voD±gψN#FJai}*ބpQY 2@Hzh!;}wW2'a?Ff}].*c,J)צMo>9s[hfn~':V. \KѫR 0ql<9}9Ƕ8 E",0];߱j}s^fmW=kM._v1X\K$40%0ը5)JZZUT"Ҕ)JZZZ`x&-pt3b1dxh-׸{|)g~p(մ0X0۠<ÀKP8)/|. nĄUUK`7c`^c[v>n:H[tu/~%Z*;lj lI'Owu1yln]TSCGrՈVDGA}AphclzE2==5G)J/WӳZ`s򟕭QQ(axw#o@n qy*;(CC d3<)V] ~[Z;nfج=XhӍͦ=&Y'8gsКޑ>'cॹPT? xAZjհ>jHb0! 3hwʍLϱF1$C6?^.Q-Ĵ*ɱltkǏiWΓW%Hf`}oAzԁܹOC D0[vRid/:, )(qSX(۰'hdڨ`^3yOXߗurv.UJ2yDn|zSɰ8_ő:iAqiM;tT9Ly|fb)Ҁ 42J|* ^lc6`> ҎID-$ ek`Z=.E+|@V#&[(} {)RQ "W2[h"o ]=ژK>wAY;hzB3b(.e. E^Ğ`l& ,XуZS0%l4uV闺ц ~748v[leឌJ>1R&%EEclI& T7ŘZ3.|-lHmP"ؔƈ!iʼn1E5`X/V Ѳiq8,6? ~tu Z՜>3|!= ӫ O2$ #i܏bQf3B[9u0 1EoXvUPt~6ELCUD(9-#A?,&P] !VXגf}1E&-+pJHU*^/`D~Ievo9$hy->k4ֱXGo7gd-f&%.0zh 煝lkΘ@{]"œBFCRa2TEYjP5SR}ӾGǒ JwMY>vD;zpY.#~N̓&׷'i k/׉NDFx >qȓ %Ƹhp:'-n6@|b^_쨸+,Co p$o` \-IjZ6y?wT}c{~w:~Vu}Q0e #pRp^ĜjG1bj3jijխ MM >hxeVˢM~?<"iO9G@m21+Hwz{J;MlZA~z;Q=jܙyznW.Z* ӥWFHN]ϐR G[7ٵ9kg\:Bzk=:P3`C^𽦮4BR>pl/4.q.vO%׍qo"ܳ'͖m:rHiH x&8`N9JF/P*1 D},dh1C Hc&a?H*D6T'p["+L(߱إNj <55FIvB4_~[IArWԑU;?yV'q[HpНQj9rdx7KR,]a8HL& rW#Ս%Q% S$1x5~6.}]$_.۞r,86!E38ZnԬwt(j3 ^P)êT|LR1m?5 V]SS??ZqcĶ "C`zZq` XŔM7^}g?K7hbGAА2i Mܳ) av=`XG E{0|kV%0R]ߣojf~27[Ks5\>_*b O_<ל,-}sz/$Ff.,ZЫv>FL*|1Y 6MP z\+*خ2%OPjW,^` 5pKxӋ'tD{9x!{57kIoͬ˓w]p ib&P)"+$ŗEŋL\.r΂zH6бܯHG'5rml?A&s(YL^+~\jgh־ϡSi\_mK/{xۜ\wѸCĊE^#a?_zG9;Xƽ%(k5<\ K#</` ȑJAS~G- 1}<\.2:poWϿO=y ߢnCrZ{KiPo7q =@<PSZbe|v^w0[x>B/n);z*ᖼ5 \#Ε7{ipCZ/?=nР_"msm2Hq\)RR±ZpI\k fDZ"Eb|trp.a5'RSەEۭuݯ]:r峗.\v&l#28^գF   ts3Pbm\X'97"};rp0v\~M킕p)Е,kwRp嬜 qĈ%_oXrq:={z,:Moyx5kwj;!2+&ѵf4 2hc+Og1{?)NwoH`=k`̶F> 'jdM,hm6n@y`пٕ;%֏:|ɥ:bzt*h-2a{Qe6V#VqCc-3o79>ՍÉFD妎od(NlB<I\oPgJ z9YqYwrI'ݪ K<\LdgISStgBqD0Z\ 2VkWCaM{!VyU61eyPMS}_7گGv}>E!0y>R^~U!tyBe-vRD>1t H-E zQi9boGWޙC"FostV4DZK_f8 s01%'X(QV.= Eו&Q$MIn+^3e3{!Z{f~Ѩт)jZFŖ2\+?fIZeǴTT}'ć Bc3LL۪u(>Gzi܃KlNy?otv*ңFw݁Yert;K ҵ>#>A^bnR|bӷ$ ^gB @> HP9_o6q帲u$Wt]ӝxl6Gn7 ^yp{BQ^U ~Rsr*D)#]S|B=NS<LCfS숵xI$˗.?&-&MFsQ:QeХ)FWy" 20% >o.twI:r Ӈ.q!Fއ R}c@͖x7Ofo#mU.GJ~-$PuY==(T'(bΑ@PHI!_[ DgZW7F6؟X$ '?1d;㨪D44 ۙ@`4W}Bbt]c`oĭX ¸%[{Àa 8Z{X^G4&Oo[\t .X7Ra}2#Pݣ|nw|'ؑ[jF63<}öcwU&fmFD@2#t d 7VzCZdS\jhC`UP`'lK#]D?)ݶt`ؙ%XMyN1X͘ɲ|&(IX !GPCЗ1 gO> {֦,{kC.{cv;DqNNn.+~b "ibFԽAl(ݒ TKaz)rعq 00v>yb$Qs˜WOdݸ 텦>|y?Z~-vSPF;RxNIG_ecY硆4V'hGwIEXir.tlzПZ >ʢBo]L0.~SB|9 \'GBY=}"*00BLC@y{S<B]^,1+`psg*Bpi,I8aE*KzP̌߰`9˃Ug t g]@םaO?q":ySEX%H,<JzOK&X E}VZ@$MT3%'/xΗ'gd1 G|,8 &*AiÙm6@ؠa_Q/7~xq5cCG"g^(Z~| MIjDp|_P[c/k*H dAƴ6sDdOaMc{^ 2hxi xK#`@e\-*@v=R.UU=kx|0/Fpc5nH30K&*Y &dV2HeZM^~L5 #$$U"ZS<ݎhY1]4-w{]YLkmΆBc[:T*Û.}K -Cj5u[ެ>pGcSE!y!y>fO~Cߓ`Izl1ւ(QЅmם=WKFꐮpNBA-UkóÎ1 恸_c zҦOm-_\>:Ց/vGڢ4 Z9{_nlԢN*ҢЈ;hὉ׿L/.e1Pn0]B//YknÓvY;PnCXP[1wT!:$~@1Nu5UNC:'x pXf(86&T{+Ϗ0?~*y%?Ƹ݂-S$1E3D`Չ"q3^'N\* дxq6ƶq Yҩ`M9,A%vZыIΕ.W팰~`n6ܙH(0P}(+&4B zZbB%j招J%%ɕNɬ jn c[7zɵ{4X3Y!a6/$,/;4DqmQs~PcI3y:,ioWA ƨMOx5),aLǬC! 2آ_p.s6,qYEvp%IE8*1<;ÊkǶCAQgXh̶|hq{݀mR F2yJyG7([R8,EbTP2g4JEc(Z+/bRB`X-&nW`Jln«/&4eRandY'eR569Εz`z^zloi,O*,SKQ.hyrXg5]&zh/^SlYg׮; -[Zbk=~PDW,܊v@*"{욉խ{-2g֡jLbhEX#BJJY0Ak~gaG?>$lWŖOԄ\RQvmu}dCsma\ N')a 0Lwtm!*MxyrE[kJz.tWM>aN E-SUqL:ӿYCv7g;ik:>E/d\3̮ {uF(a4G掊iMS>Z?;qn #,<@m5A-X-PtY˜[ȟ~O:)R?? hSv#sr6FW\B9ثE'RtuYWLrvJ2WXM^U`;;oTeS Y뉍2,<& '%S(in/Et6b@(Jo;WJv@iY_ ™b _,á .(GBAUU*dQ+&Y)!}fH22No07d4a/{.83 r LsW)Ir:}ru۶lӧ.\vLDj 9g*&ljѻPݥu\DmBJW]W"-[6;V { }W[VcүDD4Ga!F2dho!۾]I3:C1ݢf0F[tnĦ`{99D/Z'~6#zd`W흡ꁫ;BYȼIDPrV($wdU̓BtVr dl夷_h>iNn I=@8!CCBDA(hJ1.jZ2g#ZHX}P*>V:cWDXSGl';fy_g.:$6G51~ud gBY?CH / Q$U bRbG`\&JMu[Bе1qBW~ѹ՘Y/G{l痦쎰Uv>o%DWf6TU?ahb<~˼I>T{ ۂrv-~խJT_ګ٨E#^Ux:1XBKJ˗ "n)<:P(((%J DHber'N9]x}uGؑR`scjvF>A x^V;#M,$W*o !<;(좜?p}ߢa~'JsH77:I:jtQjFp8.ƅiVIUKUDEMϕu8m \X΃X>HRREhqi+zklc+;?525sU<#V R&ɔBN1H\_*U+ ŹuLL4&o4$xїYo{v!Q 54}%WYkĸ<_>hםaev59`3hmpm3mHJ |>`,1%:bX]1=|?f%vH(Q* fTfDJd^jy1xJjLUB}]~vԲkmʑ. Hycs|6/=!$"~)v +f}$:5WZAXpFpZqtCmamf>o Brn򯥝& %wiv?oL`\D x 7ʵ`BBRZ^=d/_ J<0s&  Y4 [vV?vjBRGZX0l gœ/x1n|A9E`0jm97l{%YalMjڛ)C0ـw/o|7JgNWtja>4ϵ#}iOTa埊X]UA(V_6GPCN}ב ;lʏ3ٍ Fv܈PpW]6Ajdq5Vev` ` {³G"?'nG"af(eMaiaO\t![vP;̤$9ب5!t9Zygyzx~/ /ZuҥV&%&0PVK ŋ4Tw솙'ܣ-@m4 crp?a? PTDnÆjGH2r87{QzL<kvWhCsFz&U2T&*l Uef\4穖i[ |a-q\RɟƏV׼2aV<~ N~VIR8ÙŦdWv~]K1vgT _LV6Bm eEsWa}ڮ lwm\-rX @:0RCJM)(^ E:XQ}(Ug=xAÈBvbTq8EcAk6Q(1h3h?R(nԕ0!qXcXoO#)I~0-|@d+17Hn/[S*v/Qߌ3/cx]]_tR׬ͨbRk u9h#:~9#kv16CC(} [da l^{{U)x`G ;x1)r>9>?s~cMCP=zۋVq{?Wb )OgxRmi*\#58"Ӏ:/=;A\ʢMgA9҆WS]jEv=8m0$J<ͦ\}^IDQ&.‘XZ' u"LV\-Bh0%c{Is0 %b3nTiV^Ӹ(_3vb'rڶYeeT޶]Org+~R4? +vIv}MhaCxn7'It E 1j3o' Ƿ伸[Lb- @ !DVĹ`{}+$_+?4ϴ.B(YS/=bOTؤ;?io/QBcSn6a5 EqTEUh"ANv:3]XDeMWWw_?s޴fY~+Vx 7~S2ѷ {ϯ |0?r#FÁY?LRPJ\'Ћߧ =B`h-Z /`EoWA= :Ca1jzf%0'͊b:NNkevz5Sa,J ߿ԂîzSӵ=$}㗊rT#Nq* Sbh1S*3[*_`S^<[-Kո !R!'zn[yTI.[?D_`=|Ij?!I^5luht3iHp(3iR5)#8-i~iD TD$rT2~&F!avS,Y7u;(-ԧt8/N١CЎ6i3Gv[9=]RϏBPД.t4% C 4)JA)HThĩFKE#Bd^,\b+װYymӻT>tR80*4Abzy~CLvS^52ꔩMEB:\"#bl`TAȕ~ҚDCoٗЂT{V9U5=; F_=gp!$E>UBK} "w.siUr`튄ͅ! nVZ4P8<ķYWgc?\]݌x⹃0)30fQ6)g@3<"@$@Nn]5UL2kD8M7*XnxGwѱQGG6Qѻ(J "uFK`H>T'ŀgYt7Źa8{z~SG3r'ra:doJT OVXSP5BP7%ukfBcPp&.@](UriE+j?{:NR(|\q$Z~2Ϟ/k}C\cuҟ+{Vf9vYo_OYS*W,$к B)!~)P$JbI@i(eAJnGE(6ԓ9ǃ~[kM[9nDγӤx#Flϧq5ٔL sc!qo8Ao XyZbիV$1G+0$!dX~VDdAdS_oգzF}x  @'P`Bml`ϛS;9-n?i@|?o>]?;z ucÏ+5W22Іo޸AҤί^Q J`cp"qlssB./ݶl9+t1>Gx9T^c6?,& %YEEHVTubʮfrKi5_l28WVR1d\޷lbz[XPuE;mDH P>Lc4J\I  xO(((0EA( /!N=pOr l>0 Ϧ n+id:є.D)*–xhMG#8>a!sƲDٙ6:@:, Q:CcW/ uȣ7_9a-R*J`!nHM@Fwbo00a*ǞJw^BAŠM pza} 9ۊc<ܝl-w>x{m8aɄ!XǸ#$>Nq6EC=䰴WÃ=1,m&2EcJ2 \g ̡cbvrۯ_5G{>)b~Qy۬l}T2L,X5҄ 5)f͛1NSZZZqȲcVq}L+GbF)GT4'@a5~ Dok`nAgG̔F H+Iut2(=3Ca/L;",s3*-N \m(9Bj ~M/Tdt>>&}fP/?y/'L ϱwsyj)s D!YI 4;(ZZkz}ksO/-֓6VxobaZ rQnB,?Z+XnUw,#'FzBSijm8ҋX,VKǫXZ?|>2$y4?Y)CavNBcȉWrХq>?&d|:9߇!?w=5f _uBwh~҆Hop?{';"! '5Y9*y̲ƝB?g'1⛎ޡQfݾ]oJ z< B鋏=U4.F&NVz>]I:d3T&1RP )بrW([&UQb1F1تɋ([hYo!d@G[2e}ᅏx|ԉ㋓ 瀡"6(xt+7S9JL%pBJPp+VċWr˧b&x+E0%|ExҎ8 0 G3džp\%][]]S]NW):/9f.[:tӱ k>S{N_ @@zJTp")/hw}|%N|1>!wI1HG4698}YHzy6EnI@CW4! \bҰ[ti-0 Rl=UZeC2 y|}$/ÕʳՐk$35#,7Ɉ[^y@ja(](vlbX{e@КDԸ6eUWJUJ m Ŕ߾%˪܆[u ]CݓᛘEi(Oa'IB(1(Q*Q/ Ӌ!3 |͝9˴&Y(;r B׳;uC/V-€l O\1SNML&E eϴ"b+H'7JOҹ qkRAXW0v,>gYJ)cl%/ezS`}h͞ɝarՆ産V~B}i4x0U| ?<\JkَLq[X~ ·tG^]D%Ѱٖb.EzCSЬop@"Ӳx#[.>o6p*zBFt𬎭Ě^:i+{ȇAy:~!SwvzC TR fHʡ0Tb`JLJVV-Al]$.\ڌ$7Lq(m5Jv/^G篩gC7r-杜n[ VzK-,pB%<˅k5KiC>@@U4 ]!hkP?Pә1pr5L[Klq&/M>TS٫0O%by}]O.18U>sO"1 ]eiRR9{:KW"|(9K-cv}P+y.UF 㓞޴ci5H^ʢ @_ #|b%agtPFaKd.Mf0bB/8c9E$sCu2}~q'壢y ċKEE"*R) ZTBtT Ǽ0$12 |_S+51Wӫ{B_[ 8DO\Լ9`:NWק-;;yK; fHޔ֋r̶fi-b4Cpyw kQv씵*)˙ ?u9FľD>Jg; _7lJPcFr}Bs1; gM1-Ws:MazoLҀZ"o?I bJŗ\,Sfi~𶬗[^[#XlTCߊ ? hi]!n/F϶WТmYTl_U?sitְ} 2 ::5Z Ġh40 I`NQR, Z0h5v {| 7xq;]hĽ:@\],XDbO)jg+5Ng\UjQ sV r6$ K3#: $y+Qi|NIaP<U շⲘVu FTקqh׾ $&~0{ŝ<ZҜx1j !nF[G 5^Y=ѽ U Ib4 vi)ŔYn_>@t=*B֪KNϼ yBw— 8f)n┢7Qy 2ٱAM56_9|B喙ac-/7sˑBqYcCUkLf9Jj)q4Koj]Ӄkdɦfv۲ۨHKQ1(%+:)* +x= ǝzCrNjhѤ'FNSZpZ,  aAq;b<]K9 ұCX,Xcظ[v 8h0`n״t)NRx@%D1 \KhT l ¹X,1w5?e$=u[q-٪@5щ4+z1JQ*XUP5\SQӕ*D-8лpMf}8 1Xk؏>0P[sXn&+=:[Yh0iN"6jsX]EB!`{ߏ,2y'Mçv*vh*R84ʅsѓI0qI ΧMi>1 {++0N 8:p|t:g[g_݊7 ɝ\' K]{&)7o9(6Ec;i#ig7Wfinް{.ULODHQE&(*+K;Ha)JL; HM*FNIHlpz6}O- ;k*@|R5 ~Q=(`2P- 78[iWq[4<2j.uk!!=+9ꢧDQh6M@*5]pૅYf5 &-lL/4i|6;T$i|0CB}T{az4GJie`scXH%u޴KICЮ FX}_5mvI99<@@$LY.bbRdĹ/2LLL`&IC }}e7=/ oYjڵ g~"ɢ;lB٦ gjP6ԒWO o6M tmI1v}3(.o щ=j ke`RR!WXMT>_jIxWSY_[{_ 0ۖa ,)7 "Ƃq C˫B/8>I7t>,W"ʧS3˰5r5$@U':OzgV |`1 f4ՄRpsؒ Y^?eeru/i٫U>+¿$М(2BO%JPE F:R{ Dr^ﶳt7?@ u-~A+JPɩݽ+,ˮ8n|ؾiͥ{}Ao9Ptu张QW) ,{C,o8/P #4bUۊjl`ᢗ 䇸F8 eheA}GPO;M?}|Ovbp bKRLv׽A9IM;^(vP|%#B#螱o|bQ8BD>F4\k{vP4A<Pi#qrC: jT_\~ˁ:1+yY5x1(~?}{AaϭSh6 EspePM܃lS7g5sBE}whE'#bd dFG V =/TE(X^Qp9E3Q~&Q#Ǯg-b:7_!A;x:h4顓f]MU?ߚ%)?FY۬1CjNX H*: snfݿsP!|0$? W!C]79CGF`Zw:~``c&LMФ0M%9vrز4hD$_l%4B¤?a {@kmP^Vʉ m'UvHmU3a+x7CDא?bJ T rr1(̿ɣE>LNDCx3- ( D3%54Bkѩm?C a\3,9}|VfHQTI#EmrʖJᝑE1zӡtEh#?u ,PKe=mc8lrGfÇ7 akxN㞙[u?Z87C~1ӏ=[xj?*XOѝ>t:wwIOʣH$FcAq҉5- hԽiBWZDV>(rѽ$R@)ۭ_0]V(+:u_Q fKk ;RHo{U'Qqȗb[hfx/%&DC1bZ2Ra#(J)& 4¡@P'Ca=-%FMu=EIOC6ܭړ-.Mvvד2ײۛ)5۶g.@Pp '3|=ҙeݯvh*mIH%J+c@IJh6)@[h(Z1RS@/ @  ڑ>=ڏf/`d({گ#{{ƮzuyznNGۼme˯l{oykͮ^vזBYv.t=9= 4: ޱC{=a}:Ab>gy95D(^{ {8o-i9͹mdToLӛr۶Sm.;f唳:\ή9ֺyy;y[\۞o`4vt]8Ӗnsmrػ ]fq׭͹:9ܓshw:曶CF@sj9ںܱɫ h3Ͼn;b@qڹnڹgmunr1ukr]usIZkcUmmw2suNNs9iEu۲۶sg..`vng7ts-v9nKqΜsm͝gm.ʺ27mT:۷W1rrYvgYnnYKgκӛNSW#sna]wkܜ]r9tt vR9{y]K]ݷ=gcԙtn3sg#pԨL1414Ѧ4@F#&a2dѦ#&&#FB`5HM140&0&L &zM'i! 1 44 4 424dɠЃ(@@ ɓ0&LFi 24ɀ&4AdiRI6"z4S4z(ddLH4SL@#C' 4dڞ24OD I bA&d bh2hi) 44=4Ѡ Sڙ0L`diтe `@ &Lɉh0D#`H;+~:o=4N.oyX6>:M B.1Etn!QRHI ~  BBBB  B BBBBB!@!B@B@!@@@!!BB@@!@!@@!!!!!B@!!@!@!@!@!B!B@!!@!@!@@!@!!@!!@!!@!@@@!B@!@!@!!!!@!!@!B!!!!BB@!@!@!@!!@!@!@@!!!@@!@@@@@@!B@@@!@!B!B!!@!!@!@!@!!B@!!@@!@B!!!!!@!!!@@!B!@B!!!@@B@!@!@@!@!@!@@@!@@!@!@@!@!@!!!@!@!@!!!!@!@!!@!!!!@!@!@!!!!@!!@@!@!@!!!@@!@@!@!!!!!@!@!@!B!@@@!U_( "D!BniAATCG7ۼV+%(m[~䥕}-z+#pVvvߩF^Tt*b鏨ҔタrIE+u!fſĘ\ 7ly h  Yk#y}7_^q_oY;M Ye ɋIry̸9dX yΈ%xGhp*hCv D P`̝#ʭ'ZEEyq$| P;׭G2Pr9> Rx7 R& 6W)eX⊟炡jZzEurIEYG!{!6sJM;]mbA&lEWR] ⩏❖KN2{%;,MĴ0&j}i8>vnU $-qOG8rw/El5!P|x_@̵qV=<ڱ%_cLp"S#&]d(sy1L9s0/܆%p>ʟ(aEuu?Ft,G|E)_{[2/N2Wͅ,w@Fa`޿׮LrǞ˗[#+\ †*md_t=F_4򵢬lh^'owF6N+t_~4ӒFRX;וmsCɍƂo>`hZ 3%tFI|(D "hXhͺ%Ky)gr3Y$=HED3j&N8i捺hYxhv.y+-1hN u͢* \+ ƋĒﵡN~sE_rd#6tk\n64IdpL8S} E`yYg|h~CF^ߧVdsohojw~xߐCy~J^xm8 LϬf&*;, H ;ua}tV zFgmD/`~ &&U?RltG]>ha1iyV0~K] vQ|׀U⹏%. yGa*QzOݗ‘ӍϾf[|:Q0y=3}_}={9EyFv5 /㺫j|BqxGz'53 @' U4cKcٍ })/Obz,5V O^m˺XAȮ$Q~JS撊 (8O rTdunxɥEPP;NRf7,'$&llޥ͖1 }l[N?J^s bwmwoqo1/z4@Yh=j "O]e̿p5K[{{ʼuRpe&_7PJ];fc~_ƨz..heTv4I|uaZKO/o5ojs/.tmWUyGȤu^FǛVEk.ƗP<> ȹ'$:[%2edʟƛjnVwpN nS-;^aҟUtx[:<c?%y-N-ѣ5>3r3ٟ`cCbHV"sPjӝ9?'"#X!Y E7`c|fvw6'Vw])n@E*1+D{N'g2dH?gAP7Pn߸9xVߺ}q0v ],hK}l>n3޸!E0T|hEjoc {/(1Sqj}o} U3|NGm&SHs4$(oDKx}6N>U!spondގ ZD9f;kfr|AlB]Nx-8U*'ݪ)K; X{YQܸx!$a}uGiVOAsFwd?4O 퇍/mDʁzT-~ɞg|z QB\u8l{dzgyS"j;9<ш3}U#y wct3"yWӎ)VmWM)VPsbB 4~Clv (hU܋Ùu1t}GDȩW\Qco I'yۯ@i-*V{+"ĨD!s[n(E񓃫MX#5">Yct)ucckYG o)AW ߬Fظ9LS 04kP՚9=~\H;Ha±f;ϥZ&kO}<w{ܰ;ŠݍBˡ@1pw9A.HW!1q?Vgo{Tj|\ BḦ́ %Vtb9| *f4yoNehO.?"wNՇ.Vm"ˁEUTS3_Ͻw~Qޯ;TTJo< <#{*,B r4y:µj-B֤}#|}hEDŽ/d͈itׂ!Z 7nB ,M-0}(8bl Uj eS6EX?|8i$ׂrݲ@IoÌ-lCi35I|Z+v; Nx}oqwUЕ'lP :'D̷AM\p-d3W=޵J[C(GC H9_O2jf&D%N_Alz, }߽whŵv/[Q6hu45QS_ܑ%Qg sIcs;s)=W2HalIsk](+Mu=<MY`n;f$cUuOбՍ ͱOYDOJlҬfv xaOp 708YNdu?Z+yBmA);XV3\\2Sc/}Ƶ HLGRRd@6NuiJ"e*xRÉ$b*f[?poJm) [md4 =^puփou?_٨?ebwjb$։dD@ M'RQ[*If_ }-[lw  Mmv4BX)OESkᛊ*6 /kOއ a׾9ؕ 4+Q,\.Dѕ5ޞZOq?ZJa>|=/V`(ч2~KÝktq"bZ:VJLO|8|hs\w=._M_{iԍ<ξ >%S_:70^t쁯}}w-j G1{2CHe Ad{ບt%M?e 귆D*~4 RVX-:7O]n%#24Dڨ~o*Ó]_P5 #M_ OW.|DOmO~<5Ns~1#',FS_|3*]%ەy0Kf/=ci'x 3IsTʱd,_>KTpTS4v~`:6,Y.rpk[cGɤvJ;|m+ˏw ^Ncɳ1MߎZYټ_ u-y'^Hm@ JŸ{uFYCmծl+r0ZxUN) ?odq s[k^$p2Nq~xAQa;3޾s>wNֱwVr 3v.޿aMdMj,.Z}k:/5W.G.KѼEn8H;4] eF]Eಠ=nGAӰ[ ,20>~e:P-X8z9oxtmCK tpQ/F!XPo 󣞟-LqB-Q֛g χ:;C!kN/grĊYFJ\Ymo|SN !L-TP"]g|:H ux%?m߃ ~DTEqr. |gGvPǹ{};tx8§U9 7/:F,egڶR7-!|&w{2ax9B=]çwz>됏]k!|,owS,xsGyWoo "`#9t3&Nj;'в,0ѷ]!JD:\{D4ݘpk;SX`tmuWh nӱp%f؜ 7h!@ PI'|8c}RX!c\ ׹HG#Gg;So*LS5;+4q_c;Yu}h]4O4~5>J?sf?݇@&UɜpIt/ط\A ov!F%D#riѲL1 | p{ ]Qv)%Ge@9QX0Q *Ye7zӁZsV{w/2uYm{{ؖ!I9)a7mVdKI)?V0̀Mc}(_elW_7;̪ՏsLm]>W#<bd1itGM-3p sa)^|2/EjísFO['f;L*e?U>@]£)}bb S C} H ^ hyb({C{ؼPxoI GPp9$nsRwM@.xL%Ov:FI|BRCAG!LpVCZݧjAʝGQC?7}"Cor7 =+̈́cU* zϋ8ړNT"YP0[!IN([Z߹.o͆Xp6DȁJlYPOM6qsR`З+ adaZݏZ%U׵U/y;tuf#Ik/ve/ zVGB-7L\Q;dZ*^kVŸ* IUۦ40D9X[7Ed_]Wt3!9^1#Ȝ22H숮UqD%c3ĸ.<)faQC|R6*[-6˭9D`<8 FUwhtf/V|.7 ZE^ӻ2n4P3:1l@RejCj)Ul*۶ɞ!<&o{1XW $e7颣x[N `&`4H=N.L?,GKYTwبy85{7lw+0ۻ"v 5>8jN+wМ<=*'zaU{dRB wHX觟 EV ☷yK~wiu̬[o bWRW en`뜡mՌ~(9k;nm&*!{~qTK^|5yHӿ(x i꿢6U+d6OE66qaxn>n1J8;2;p7nn~ȴtwĮG*Eet; gzy'6~gLs7ίIrM1*4t+Q_4Gҭ鞺7ؙܗz~򬰌|FMZzpp[&nJ/_0 k%Ypٓ_pM}=@x4;uIAoXUzGz:nfjeJA/yq#^W]gٳH>e(oT8}B$+1G2,TE``U Bƴ6e.$Ζ#1qyuTsAgLX$3NQk.:G$gXYr~7.jQh*+SKW<5*N^r9>'L 㐺",(3%9~l77UuC*7ɼ(9 -_]հT\jo"ȶ~{w&sl_/ .o4>.w)BsBlJAQZ&D`e̘xqP;<.fֿj.==6C %G}8~N`?0sRTc _52_Xro7fY3"/.Px£mZ^EOדt}Vym|$x"ߴ r(siE>'uUBG˖Nzjbzx6^1cF%.wlMɁZgA9?U(в9'pkgpM `nIߝwH}|W۲zb_]Y0s" dc>xhV,rKFg+oJM4*5gS鼮BJ!7&޷DliI;bNR B>APC(#"9APGR@E}X4kV5TG؅T~ xQ1riǿk\)4[4CEEîq MoQ?i*G붽ƭ4vyHZ,"KF^xSٟvAKJIt81F'C^?Eo+m6R7qysjFssste@Ѷ^5FFExj(QyoH  V>m $c~O^JdyN [l;{k/3 fߣ x˿}G|=Wz|[~cʞ.'n~{_}v2v6/?Z#[ (Z _̚9GC}Hz Kfa:=rEǣ=Z *db$|*k60F$~TnR1jKׄ \cQl:tl<5R6C:^Igx |ǿD\gUFMaJ 恉-w'\ S!I?@5ޡ{T=GZA ݯ(6ó-ޱՏԷe۸̃VQ)n 6C4byza"xP?oU_I+~(A!sޫy]f7UރZS!Xc9G30wUwÞ# %Nn6d `P5e CB˸Z1:zywN| A#Xἆ(9w:^Z}3FAC.c]6Tc>>x'u (l+[}z>j[Vѣƽ>YGiNRq$wSFS1IO/}B |B7Hgt(LAf9=BOl,>-޲..L~~^m դLM7T#7^h4}:ѣj-zv{fs'xʛ#ko7}}ߜ6ogGS[nZFsm-ٙSMZ4 -`GiqCKq7ΛG2yJ)Rsc_Z;<8= ._pn5G-mW&ܵ- \)Zz3-^X?x^9!*_Arƞnv"gwoCTUg\-wq ~PZnPS*J!G rTJ|!E4dɗ䠙AP_JC` Ysoo1rZ%U!Jmlj ]/Ϻ%=`t_n\2}'W u,ai&(H mph&C3G_ #N ==˒r+,sݹ8ng|m bF=AC݈μ:?^T>:0E3z{M4 ^g#_bd~ϊǚy$?nsft+'X݆_>pu{jsC",`q0 g/:K%c76%&|)= nҁ2ǣǕ?֮$aox]^OYrzPTwmƎlZvi|kMfku̓C:2rli^$g*Wdj(  5\]j`-h +xtn y ]s]aO;Ŧ#Bob[ZB~> y_F7 IQ_sj.2% 2{^wªm.dn#Xd?|f4Ƽi%6-iTGA\|=}{3 N;$ j 0n]^=mPݷ}۲jOǿD}.F^r..HhZ?MԹvUSu$ůLW~ T`u^Isuta41DD̓$S4gJ硺j>9Lo/0U>> IJGDyR <̮e [1_?`=1"}!#R8]'iDUun1;{pi$8Gu#^<}w<˜s 1dd~~A l7;_"ZfkHobS(!/ٰMĭ* Ĝ U_O\;J%{}rMr>4XG ${_}yq:ژ~ ޻\vR[t9y9B MiGWM+:W#k鷩h8C{QDߋ 差E)y:Me$wz| pBi1 Da]i 4(}>\G֡͠w_g|b)~˹/]_"c! oreEeM1+nO)&}^ꌞ&"6x[AEEu[n8 =ԯ_Ǚ:zLJ?Uׁ\frw}2ջ{jЂo:fkk Ԕ{I{i**vCshv|F^n6V#ٻIyt8|ě.^x haP(\_W%~QIx?o$m T8?ۀZs[cy)F{ݧ NyW+rTcKn2{=Mr.i١c[Tfjo;3șaF<)Z~m{+8ⷝ<"+،?6- ; Z[Vt[|Yd*eJăpcǦAEC*Q铏1y2PM~1)h\ X:)l,7W)80θ.G|h> L/Xt~lmfK# j{x7#@Y ՗pHX©]P]x[Wn884V++0! $j\|~8I͝P1ì PG}ٯ>_ҝ Q: H'h8LNm+ycyż`ϸ;{U+\O3b(Aб̭zJ xe|4V'#,uou7z]cnu~:!A( ݵ?&Cϡ^r+{:\;VV+\^tS4 :a̼ 5RjJ+^beC ﬕ{]{j"26vMOI*P wE HTBuj5q6|"GvvJhxS.WPciRPr'\R۝yonnQ [16.yHyO}9nb,X)Po&zq^ 9Œr(s&zNɉYE+ZZRՋUqo_Hܫǧ쭽nQ;[76bL1bV:jVGwqx{*)J˭myU,(N*TjJZ6fsl1^_]lӲuB& px2eZ:)\+JBVRsvu]ܾ|ٽ{N :*,VjBmּdT {0# 3zyw}x%9WB :K6nػi:r{"6ɘxTS4l_QLR%J*UӽESEm=W]IXWdV2̼}-\=OP_e[}*6s+vDwH4dw0שrv&ԡrtJT 5\^L=­|[۵(¥Zˊr;{_cLڗ̹˕M ! \ xE*ɵ{4>uTNS1o]U#n4;nNRBuRYv'.3:h#D}}ڍOhPr\ "hۭx[[x{{tuѷv)R ԭPY5Hۺ4WRD(}O4rç4 jj.ZJuOl4;Ϲk=2 V=][[1+.TXAʧ•6Ds65?T:ڧQ*(J(Xy̨!DQn_cں{|}1n*z2bjU+BtF[õf>쬃1fq:̧;w\Y7ԧVrZukC-}wzǺQӒ[v'{[ bR*c7{yT'!ߟ.ߜ"&6쎛j(R"Zoe ZjRՕq[sr7,c2]!rrUP:jWE5$VEL=vrumƜ!JۢWRkT.X+|銬u;;ndjy٥]UOy{huk*NJW1/UtgeV]}oVX5BujUi҄eؘսꊺzOdn|^ VX.NROK \)/My70]mR[QF=աruKI56F8,yff'קyΚuj'XW*rk\_E<۝\+])*PRI ۝Оz7.kiSm]J;1;b%ЭJ|+vM2st]+1;NNFVT>TʒJ Řy8[mLu_e_WfgNÊ\bԥjdŪ}]Ns{2*sk)TZ UuevW"a+"2ڱky籲e{Yҫ):u JB˻1[4%Z͡COOPj* !B t7 QŖ`uQp'\7-=ч_-H+ԙ>m<"یQhO%j6P6cߙZ|Z΋lo;sO3oCյQ=Ns1 -(%C"~SUsіtWs;w?#uqt48KM_kॣi?Dv^$e3HdHY]"qëPD: ۫\{udKQ f!<: TӒCqd<3  $! !C60uRvqB1!D:%ժvu#t:wj*].~K$uaۧwl e|c> =" EAy.0 FepSe(#@bDQaU E}B8}‚9񠠎1" )>3QAAQ0snABz@2, :3 f DAA%a6%( dT0*(#e/uPFPGXPCPG7H}$0̧rc7PGg^O9c <{aed2 $v,rtN':0Dn_Db]H i Eeq@8L 7L儈%\^@qi`&B*&xzW3ܸ0D(UxiTQc ~(#ErBѩ'{s`Hч=¿ c 쒣I@8r&c 'e$tlE^Pa?9 f~Kb``0zqE/I`%(0PS,EJ0&g DDkC" ipfswC,&&)M5gHD'E ɐ*`CJ!@bp1E(#]:XWxsw_-zܧߍaw X0@B (ihhR T@oӵ}#ݟXDxDm*8 |ޓLṎ|C'%#t1羛nA!r匭OM\j$m*qD^ rJOĊ*hJY`c"E1 HiB&!Ҁfeig%Gr5![0̸f"$ v #?'209U2)Okà`bm(A+HpRqD= %ۨ*@"xGP.vK)X|+71?8ADL viʜ~rCPm㜏Y;!V(wʢ(&T0R͞ {;_wܽU{OC<7];n))LH$0*_g 0>$rgd¿2e `E(GoJR4X&&*:хr05L/6"!T NX ^EpT0 _)4YsUǘ@#{ q=d04RP^3T&=; Ll l=B)2z jj^Q@@zvQLCL4*&րYm@b|P#DgN8+|2C1S`"l*lϞ^_dERlXx62CL>psm܃ ?iK(HHI3%%) xX31!:I h>͊b" /ȃ*#DDU 1I'l㠗*"d7L'ތf"r0?xaʈ=#D vB:<i4B?6O-P*kj¹W5> ]O닖**hHB9;"Y 2sq(1Tr4:1x|/c5Cm5r=bqjNaHo=IUe[^9OZ+j'&6SR "U|2UuWeuWRaMw>_>n6D2.) 6{1%!",gK7'=.`;]oqy]1\kοK).}O 0A93te}97#ǚwlG@/.|e3 -x(r";dwMXBR%x ā ޣe*ajeɸ߂ɑK;wmxtFdųCGSD t<M\ @eP w(.e7q[A%T&l;jnBb~IOɐSfFC"/QvV\kFe#Iד "Šf4)% Kc0ig`5Itܪ1W nEPDk12JMuy|*iƻ,)xjfs"$7FUȓ48 \c2aJ BPxv?(aD ܱ/ɍWB,Ыܲf$U:]pYeMe`73 Q(b?}~}7SKo`1Fao\E$' m'@mB*{tHH@65>r[{9ykV9ܲO+sƆOp?g#CYiTW1H8bP8MME55 AP Uq-:.BEӁ_TU\qxMb}#zt41qH-蠻7`MBi B28^b F0Q?,6J俒)\LA`8wjeTG v~o= ".]gB/;Θ$a8`p3 $pdž`g{)͚mȡV{SDr'S 4c*΂In~1arq%uE!fr,KNl"<\c'|^xa`?i2c!FhH8/ɳڄI݊>%9iSUWLUoVIK1>U%ʨâǠHP&TxCb >3#7C ysFM lv[` ;3Ԉ@B=_VUS1&I%%DǥKէW@jeFc!.c$lFƲd3,°lWli=Td9*TU torei ?`ȾqSПQS\6>Љ\r= $mGp}N]Av9y> 8ܸ[ׯ38W\ }-d6>v>A0ZҠySj:uxW3T(5\X*b㔳pxD:$$d\k ٱr:vqu0#34$~]7rl+{:/Ka_Y;~ES? ߭^c}tE)y6 zjl5^A3p5(:aSld˛ ? 6WV7o&ܞ ;=8]wY**S]E"99 i6Lqq-C-Aκ=CwzŸ:x( ("ɬJKęEu#EjYˋ.KENwDv2{^ 'YIX5XR#J ^QޘUT!<{* ~H @WL0IX* {?LCh) Bd 7a ƶN- YwIyǟW=; {zkTr X%T?}oPM:Hщץ"{T/s/pBd*6k*ڠ-biֳRf?UD_Ved^m 0, Ѻ"cO&'ONr ye"1H>tAM(<?mruݺCJǴ ~-:U L"F3ђ*pH 'u *N,3=n|8&9020z%Fwr„k`L2X2<dOD7 9jv?5ϥ܌  pDD&`\t0cSahBϑ_@@зaDU3%UXS &/dbhuC0:VE ;%l$)z qvN9JtLOj~[Nu GѮc}~cA4$.>0Ou4;zJn"sOʊx{8ms^Gr9A){Z]AdoՒ . "Puݷ YT7<<,\';'Er?5qhnx\Rz`L^5Ѭ8. .vuKН)Tb='rPGY_8o͏(:'O"Ќ4S4/8~֞1m4Y1s09H~-gjFsPꨨ01RrWi"jO10ܾPwpu@c@\J a*Ҿ˹yT揙r^z  cJ. %]>fF%y.W0 QAak؜e^1BdPr>LV {;GYcȮ#58^ "[A^Җz3Q{?5ZEo6`$m&y~7_e,Ysqj|Ϥ+}_җJj& pZjhk# R b}QUke+4|:А Axkh^To8Ⱥ'HR=<\,/At}Eea(a ߷7 ɰ?Ы3b.s/n?yVxrV{$]%!8q`zC 7E ۚRܞs73#$'P̧Qf0.͛6lƖ- gFg G:Ե-ܷ`xTFi0 BIWʏ1*T4LYa#Mg@)E`].yD^ԊH*O ,&i7OћcmR<ƊNq5O̪$Q~kk/U^V{\؂)E`[۴tN` lGo E'}/';cWV K/>?E tUKu+QguYL$bL:7nzqZCb9pVLOQ;I?LgN\ _&s) s?WtkuLC( BDl?EOevxׯA7jOu9 Lv#'n˗͘{>:OEd?RpӲ[ 7'm9z}Jg Η?wr{yw|-v۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv+cjeoWF2ۙ}^2cF5jc޳Kxk)όwp\c8K=ug"g*Kjd9(:hI;rK/2j|g*K˗Vrޫ9(x.*1Ueju;4eLKSن-Y2YW7VN~ \t?ʶ3[ Ůqq׹wV;J`__NzJJlN:ףmN=~93Zx?җCqsh]OޭړJ/{v=PUAi },aj'NU3K]ҥJCT OHd{C܃1 v"1.=BxǴF 4n gv?Aב>/U'#.eG ?mzy[Єb|gebsddK'a)DmPDwXZ Sv-ڃqsrP0e&NdXQW/qڟ {*vK)&6]+ ~?7RPiyxrŌ?;X+zA6qXVٵpYUؚSÚ3ݘk%L]ŕG+U1@ŝ;aldR-m.%N-v忖T[vXe8<لbX) d'`CX TT,\  Lysy*CQse]s*>`UWwZ}5uNu-JULNp 'F,'Ԧf15uH0G[%Ϫ6c d$Pi4%+#^|HhpB/ n`6m"smrPا9Lԝyx栣aPӬ}vz~ҍ|WoYzWLgtbțN\^xxAcNX%5lx/NhҌ/Yfr~f=^Ӓ%*wja})?B?} Vjt*QKx|uߤk$o }gg]3.biN&"O@6UK.dip=1}+zҽc^/c<j%Ǡ͔^G8KWU맯g {]{0^sS=`rő0חW 6`[𰬰pkx<Ta,L%K^V=mKKZS9~O{XL-$궣6adȢ1m\RRWq?M;eYO) 6Oosss|\#43n8훟j6bΉȮsîssȔs5v6v3twuY.~*,$z4j~vF!cPy&eZ7K p0n9W'ߏFűįDD.CC-hzӓ.+t%%%%$lm%%m4 J"-ez,VYF3^PjRw?˥ `)nEb,֓>J_%;ga.cƖ`wK:G?%뢼R$8z|8d:'FK-FS?#qg(1[.bJg7ȑz4.@4Sa"7iA[8xqh:r8{Vٝ)l;C؝.*Bls:DHyzjʞnV^G(AσNĶijGPYo8~?^9z痧:T9SU#hľ0CCB^m;c.<pu)#֎q[~QB0^=9)% "N,ƺ ;YHhY U{U8c>mҹiCNu~;v rV̙e;QWq{ұd'V|}?A!wZS?%ci}oV߻] NI!Lfneg3}o>gM2u1A1222ﱽAFtPPO(sp -,V+?KKKKKKKJy\U-ETZLX/;~1 %*ҕS5({C _c5Rlmt.7Nz*bŸ&Vq}j"}Sbj:$_ñ"ex'Z)?zhOI$X<3B2$\lHS\U^NYl6GyU C\ޛ#3-ۓ&g_LF=r{{tmmpyE*g:ɂz5Jd i"15hZȲ<'A2:D 2w?Q. p;(0GVƧ]~?^unG9aJz}1PSrĻgs ҿ{'KR„-! Z_ਮ21qҊkxNv pv}Do %"u I4\P- m569jVXvmGgM:r'uhVp[$\>_ҹ$pSHțBrtZBq' O8Gl*N^ßx%62L[҄}42uo,e e*Gt7r5$FM!1fO *dy?⛼'NṘ#^sպ"Vw)<ǕŤ{r[op_exYyz^eމh`bc7'޺Yؘ GՐfR8dI #c1mmhReOLT&a8:*.h_VVP-88.ud| =EL|1ӧ6qrC]C2-Tl1칁>xN?Gy'ޚ3򄂨na Bu|v;'CEDJ;sws_{fĚ`KWw#Wk//KCIG $ qFfQBj)n|2枪Sە=,r,I,9T"eX@iP(z"s8{*#*8(&lT}^w#Ik8qf,B! e/9im_51a2*@>7Mt lqs2Mע\=!'!'zdQ(_",e3xyc.1+ |1D؅" "lzg\o ,jЧybO k \ѝAݐ`DSkz^WÜD I3Sp(DŽ{`bm4Bbn8- Cg}MB_e˓/jv{fHCs(KU># cm`` E-zFsUnXޥ"PD#r♡Ί8#jypgjXy/W|;YipɁ(rk=2ɳqdWye7Q9cWێbIB/`n4UGQkƪkC& nJѮu6aeHQ&lfx'-G ]Xp/ &jJo 0hR-.ek3f:ċrh-le8 cN*^=NOUP*2T'JmO&)5fN&^O᱊ZS3C۪T-X_&r$> lue9Jh.&PSs_9vwSg0Q rͣc?2:5B6_ȗ@hٵ98Rih8sf y\*-'>\2P},H"kr%G͑Hs Q'!B%p+-e+6dUn[ݓ%] Vdle05(_KWۨ(Ү +ac]͂ 3V"w٩d`*w!㎘\mYj - } "Q{7S󨁋 Nv!g} YZi472vcڰ%_e VxwWTMS_ZZ$vk+_:#;ՀO8_4&,IDmm n2rn58C`뮷P4d.ɿLd`.1bTx/~l)s'98Aj+0^ C4}u|<PʌIjX8a|k#SҀMa@^qŠy G Xd/?MZsp\eͲP8mf_`9k qNc+aCM2eG˅2/5اzkrwyv%Tn~̌D R(@lyȅq3&0.K\{.kdH// x?p,69&-jE䢕s3 T-eo6h*̵O|+g Qx%}pN'" xx%MdhGQSR$ԛ6pWltOuK*~oȎDH ʥPhF\qϺU\Nht/рZب8Ex)RD(֙+1@7ۣ5xW0 MzS"%|㹜Ua 6YTB!PjH,$GY?yK}_ngnYqxG|iEH 3o LgW?sbۃ. }ǜo3Ia|2i˜̙^Rg>H^mу~tIfop%e R- LTě-*!y.[io2|s;*{ßof-Rz :̥FVҚRR_0A\Q}Р~`&5Te1RU%=(rƸ8HtnW5!~U8h6^Tn8]OoEՖ!zG^2 I|_GF88 QƮw6_,$581&k=Ќ2l\I\+Ư2#rp@g:@#Wg- 㦲x1]cJ\s7`tcZy?77'i\oGv4E Y' IrK<ERZH?\:+81s6i还-&t ҥ7&ʰf|\#fH\>UZp = (_|]ȽkM{ ɽ_'cP-+㦦Yx. GGmI͑ 1=Ϯ ?u埴n_ǯ]&p[WZ6~B,2pqƙksVk:Yc.36JAn.}!dk|&.!BCz+(Gv(8){슼֌L`9l<1J@'-OiT)_|SsJ=4޸np Q3ΞgQz }u,'xP8O3Q '0t\yz$i'XRJՂ1sky[aIw/"#?|)49_~MC׮gȠ< Ŀ|y_r8hݺ>/^ÿ'>|:d9?b@ 2kG*ټo\H>Q>=BǛlr~ 4J"hS/0]LSu/ʜ+!1Q虍13܋=T}0 NgRoS+jʫ $:᛽/a2v0壒GU J;-"*7e˗.9r22-;in<3H2ya63;# OYCe78潐7Aԅ8d|:l(( wcn?jgXeyA<!Ͽ /տBf4t ,yCڨl 0,Mtšxh" wb(R ƞ;*DԞDk? 'يc2փXpCwYsTUvmV׾1q#98CbMPG:*zg9˚+Wt G>+6ː27y5zۤ$r`h[:0egS) OTqWm֛qlu*@}=n/Wo hPQ} 7K"Dr!hIwmJ|n)ˑ|#.Pedđ䇠]'Ft_wx n={{!{/#A#|`IxI3*Sz[>r_13SELk; Ψ^8+2 Ǹ4vJkUO3 ?܏cpv]e #, Gl>^=ߦ]AXgcׯhV1SYU.=af~&I.q\2 S\w!LI|KrLX֩zW<ׯAb +" /, ]7Кr!!"6 FRThύI#cÈӵn`Wl'czr$Ay7܊!B_U\ڪ/NS^UMdB΍h~VfV/mSqʼn~^_ {8}Z6&Ifp?* aFCAN4MmT#tRJ #|>e\ȕ[!C5`Pgx_H9c3qG{MaFaRC[PQ32vYW6I;[<uthP ̯BwnM~PgUn $NkZOUS@;{ ~Շl=4Kߖ_ $C(p͹]PEWҹ摞Nu0a,Q5ijdQ(, dV,;|9(ß:=Jwc'>eZxGT\Yd}|v՜)cح4DƆN(txD"7cXykټ,XekGGaRنpsBwd9տ33Cv524 q٦f[X\Cmw8҇P``1nQYF< ( q[L0_DWҏlq*6 ~R@n-\wdz#Z5Pۘ$/,c >{c=! `ݿN+Y1U) MڷjX \~bdQ䤠L ίt:L3ήy|OiZǙޡdۘq `zysW4ar:b7F n#5!~c-b*Rk Ys8U|V&E,@X|Ӧ5ZTv\.Tb/I'"ьEK݅^]ΊJbK6ܷs͚gnr'٦ƧԵW=i) \O\Ci7?QNW`:c 3ܻt F&e{0=1 &➪@#0A 9h֯3[ŧZeZ2TRMkրSm=H 4y$X%_ԢF<͉{]V^s)APJqF&].g; Mo֔ Bœ=}0a RP0-gɝ\^ccM>2,%j<+B cN|mD|Z} V5c\̚^'[hr 8稂y 4f6$g,qMJ/˭PNZO/QL5QSBĵdp:?lyIB@utNAr 9 W@߈5,Z<^K[|0c<:KwiUaa^7>V w x{.\@}ax@db8 q# LRK"*B m^4c6$[]7OIQU@V;#QS$mx]¬Rtt~/N8W,5ڰ(2ËI/\1LWSo`-Mo(u'u733gߙiЕN4`j~8ZhC(\mҕ5@M== >G-a>߿[Bv615;$jR0cR1&&x1#@h4 t& B:{iT8USs,t})dgW/Yf{]IQl;#a#ը_B~^Csi]?6vUqAS5S Q;#h zbѩAXw5˪abNѺzE=|JJ@L c/D`L K?;쵙r|4$g~5aTJ~>}xr[.4a꧓ݮIQ YIҿ(vaZ8T8Nhl{Nٔ]%tt,^(r0ecs,Ԛ犛"Ff& efKqkW!'V3V":tp2zf9:_-c8"dʡMo a&0?)CNr1, =_%7G(a)DytYqt2ބN8yrZ{].iLRb^ ES+,ciiolK役q"0UDz=dn 9sQ*X~U^Y^lܲR}zK_P`Av 2K+:-|ϯi1f~ G8Eڃ?!}&nރ_é+uCzB#ڪq ^h+譪'up&ՁA~ MY%Vb!6 OKT+GM{;`J߱);¬0ct(}~w銣 ,*Q{:QVPK[c|{/I0ܜw_(Kf,>_JT@Ŭbux wѬw14aBd/Mgq DG3zs'l&;4 =u ]:`ϚܧjWpG(FRI`E ȧ bx(nƑDdN-k2ҧaʈD/lXq9C'7aQ[϶gt!x ̉njZ\4% a%Bzض-KaINi~5[plͱy,Y Yʣ8lM fte(x;k1`Czcy ?X((d$2IJ&5N xw[ҩX%Glf{O9kq!r{KIYL(.kZخc5UEVב`q*=k){tShڢd +LShIRBsg^-Sga^nx 5F bkner6F)~i 2?r. O@nsiXy+UUGT#3j(PE* _ݹ?<f//kqKB,QC:_z ^DvhFۅmI`X<[1M7M.udb*DR(MEjRWR>\--pf G552/P8 Tڢz-L_:pTR ָ]ίנ|`FxUA/ݺwWu㥪$śLmD2$NG;>7[ nGhofS>}ƚƔ8OWgonjYAZnJ1(v6 >1bIr,QcBNeN<aٗ9 dgh \Pd@& A<_!Ӥ!#?v$!! /  1Apc E &X$_ADm`a"DDTc\`a"3 {`b=L4OgX]iL1s2DX &y`D ' A{2 "0k}|?J-L/t_2w[R! OGoO{"W)ِwc]U%M?; f4էڟm B2HBPW.xt7>ujmWLaO,* 8ee,ȯ; 7-ziV>UyD~.CSH |X}N[VysfԞa.NJo><Gw~ʓ=dv珈8Nz(&?jcҬY==@UeesCOjfpC{Kvy[7Pު@۪(/|d-Dytg8\=r(́蛉gM2ZUQP' K?>_GY9idkzωC7D{rF|s|;N*7'm IďiO% VѪ솒eZ$HwP %Gn~sv9}sܼ#sY-}e_^ Z%9&eg yۡ bv-UT h n(9,|X=Ӿ<[ y7ϸAUre[M'EG9r<. r f :Vqqqqqp\KFvQyG~ڤp3ho58.8:#3m?e$)#i|*˃_bŸduFG/>c1&Z/arGڴ?-qZ;){8Ux{q@7S@UN0_c2*V%b+U [V5sQEeZ/1G0Ъ*ᔇ-l49] >)AN:Q83F2m/pn675<^ _g%yn1i=8 [J1"#a&jgب>@w ߲&m[mX>Xߝ#O*F߻0s|+0\/-.cEto(׳?Zl%^!Pf7cve+ Qp;g)Z45?,0y_ ԍNfv&߀= Xd\Gy7J&Ѻ< dn1! 0ј$if]FT}!&HCiTԢWkA,3$MO՘QZ>%^foV1s;+DRp =RK(.i@|OsYk#7l NZl٦8p×7-f\O)ٷWʠϋdgp5#f_:=ܣb $$ߚIg=9G|uNNҮu4eggAFHba& "eσ*7Q\1`|_`{M$^TAcSnP9'hh_>Ŀ\(՚畆&-&UT Zτ͞Y՟Mnj~O|bg=~ `'b;18l=^{2s|Wdӻ,Xm_-wݽN1k0 7R+ }̐ pGɦ, m{gQ%JC%dق[˒DZpg$Z#%zc+[f@v=x1ǷY[gylrq [sbbQǮ\י+BZ%4?zTY'ӎ̝RF87Kn>3:%UHͷm%L9bE⪱D,gp v&݌ <,,,,&X.2JIQy]ZC>ʎ)PT~U8Z9wmw~4 S˚C17c(C畴pʓg3rOf}ZVB90+urV0m)}o_=vvGgO%*d%g<=ħQ`M.RUA,&r, EWyZs򃳭Rlދ󏀳 GipĂMz0rfĀjwS7 fa2\emܞNl'<Cl~DŭfbT^&dDS7+Z;ÎAP+O|29;GKgZs0ϖghWYY 0\`u\10ZaL92EP7466|nh3z D; #!\@$fg.W%aR}}RߗL4>, :suAzEC`”ŠqgK5`ǘGL 1G܉J `0HTaW/*8#'HO[m;?S#jq9,.Ohes &vmKYp.҆ RW'!kõc@NĜ3!2#DMc CofOhV nH|oW3|3O†?cƣEcYT"y־xWc NgZC p!)ƞŨfoNG޹2ݞg{՝WX1Ce$YU5W65?LlJ Ml0W;Udh'_ XD/C"Y=3(4 qr2$sm3 oUmxT(0$NU$j~qJFUVJ88ҶM} KT O!ЬƜ戗SX f6sƴsͫщ}B|옧`R%A@l˪)6?L^8ȭ^=U0%.2.ylcNݏ q/X;GذA*㳂M5ֆs6_;0ND#㈽S 7t?| #c=LUrʿXXS$$vH-mmǫ2޾mt]VxeyyupΗŻb1Xgd+P)ҕQ}$(jg\<!}tjœmS/zkp0͏p{[½ R"=H/+qC0v2߯Gnzd')AKQ@#%0;\BR!3>m{ VD֬#y-<),~uJ.gpküP-;)o8|Kւ,d! 'f@qfLqLX ;yO\B+l N(ƒ@ (W 9a.gٰx۩Oh*Bvp) nq9D؟=1v1*Ia91Jrtg13Gx I9NVt0I(flSfXx+syjx.pA5±y5};[E1eeݲOdרǂ 5)ྚ%x߃OKXsk ĆWa7ɱ\yZx#V;B)qN`HMwՅU;1 8?1>[^xploJRE!"C`}'hrف}j_ƢbF\XX6(!.TCr6 BECbog-tBֿ;>E`UMWWYpǵcϏyH[bz{*L& Z] x)A.!sȞTxb-e=]Auv)` =xSzʟ-wЍp8;30! ÒdKJZ ~xo7Z B7~XF]p(J2ݗ1tS=!u!25l={ R$VU4օ+P! {K&LN|BO]זOXFײ׽]ڤ#-fT3ڲwK؄?v9j;܈UUaОB|6T=҆u%\!Sd/Mm]3˧.]V2:="(UR/(C?<#g_T'3孒ꡕC ()iq:{!ZU*fTiV),"(z+ɋSܒ,m4&aު\)D}lӱs蔥 ݻBTѱ.-"VLB"-@~憻% ƏLTώCiXAC-Ӈpm48N0s+g{\2U:PD?xZQ"\?vV/_O#~_WtKηj~|RBP??HN˄ߪrջ=Rxa%_nRBnB)BU;Ky[,sh2REN7.lkpU.U s޻h;6 ]Vg8@ՙۭiS.%+CxQSEt\\j>Wڏuh`169!!ߨC!1(ﶼϳW .sb]KRGqjBYs:1r[,(AD"ʪ2JAa,&umkLZ:.j=W| - 򀗴>M11[ZT1k#L7J4ʭ\6{6!}W^C{U}2fL•cժn:m>>oիrnVJԡ-WgNjݪ=^)5DQЩjyI3z]▬u2$I{|cU>,::$Ju/UENnCܠJxaW۬3b :%#ov \Tet(|9s0eb qQ)XjP d(Qµt(WhpavKι"XtcʪP@X'B1;|RԵCjoU&\{X\ѹU-\E:RM{rg)&>g%pocsZ0z+NyꆸW;T*N>U\WoŞTϝ-EW}N J{` _]K6B޴ GK_zR%HSũc,?2󾞄 vg\,e<4 5]:VV+e[ysjxwD![dߥuRWo~{<>~7swm9ѝFQ=IӺ28Q)ԋנdС0(ʅ#M+R9|կ^J_ g""Mekԉr]O K@]->ĨzӮO#)KMwmN*MM*nEu %vj!\'wg{c~}}o*eR/K!ХnB-~ }vZ{mNJv*̅¼W\^@!ӈl|O@pt<2}Bx?E4F.y[ r|fJeL2?j/P+{p=;JOC*]ѹ[}pg=:e\R)C:o.Cfyo BK:ڽ]]rcv㗒C.}R71 :@R+VR ]ұ:wJw2^}*׾%'xݛ2t]R30l_ DK[ր疤cIxoڿ_>|Jj#㮺ޏ>O42S.W>9.`iE8yJuQej[,41 |{S_8>4~wi q핞 `\3j%Lt@TY:pョbn{]e.rWv0UiOX:.v$ͭrWm=:zhXnڬVέQkT(mr;Us^-os~ZT>MJ[2VSy3{*jct̏ar)39~^Cm]\'TUarS 짨͡{gNPԕ?շ ?F >KxZE$ ll ̯7LP1aX$ w,ݍPJEt_7Vy!t:UTԥw+%-:ng}Fo0q-'[Σk)P es vcjʆzEOURu:oIԻ*mvTVTEnDzk-q6.U߷rXV4'R<)\5!,FN?|KAqоv2Bj]kL-NZGV] *_ ]-: Ls[?=KY) J-DCԱkR~E\ Uˡv2N׵uJv@9Zv@.X,Ǘ!lWۥi2) _Uz{sZ[(X_v~Mԟ?SkyXjTJZdmF5]}g>+D}}wؼ.i̷R|N%G o-EW5(Q H^c˽84F45Bz-Ԣ]7EJ)\nCxZ3{S*S2.Օv G\lĦ=b)R,9t 1ao:JQ}eʩ"`;LAGʲ&8urc*˅mN PUkTBz.h=JiҝzD벳|X^!YnB/Ɲ?lnbyGޖgmu⯖/Eʩ{j^6PE+Ļ$sͼi2^!E)H<۩*mU0xY7 Yd(&)Q6lBWbI)/=cb8]]V&45k,qˢ.o D'HeC9Z:NL2ИXP9hM ,dG,v<&JR@BhC(|a&X풒mHO>bFjߏ5~#l}Nob$2eoY5Gim'*!tꖲٍaeP,(ᙞʫt[򊸾JC?\; r7+&jUxg!:C:gPF(Ð}B*-xNPAOqr7N6]|\3?*@V}Ẅ́+J'A8 pSPyN/?O֞nn]jōp=.h{DpnG{vC,*j=yChmTR =Ztp/%T Q%Z.,mn?R|HDXzj~}".NhhY힚kKoowez>5)TiB%x}b\%Eas&-:Y'٢w~/'y领pԲn&V.ޣCʝj5t-}V}qnT>R2Q0Vs[$a$BRZnۻKJ@k-t+}ZX9Ҕ+}uCKs,n!{B BVT2dDhLNoõ%Z;;SyGA +SJ͵pnCEuɻTTROnz#N.7TuRq r<~[c߿~:!F~-|Ł;uh}{eGJLЄZN*\ԃšu]S+td-Br%s6̩~|kQ+RՊr=e?wL|{Twj,hXfG)[DPw:yn"ݖsȕN2Jdݳ^Eoy |vD/FSMdNedi‹~꟩t…8ժM0$C*FĠ9:2S2yJҧK]x׬UxH^)C4'AV`7^SNF ,I47c%R<..҅BȐm⃮ۢXvZ^L~ m2EAOOd lQ]1fy]+]iu?Y*ueca!YYrai EH{GJ=-Y`A8HBYi~iW!h}>ix )BTGB{fЕy~ ;AT>j~ =RC-) 1\w;.V( Us=bBRJi +jb&3+V2i!H0AӈzWe)DኲE;Ѹf;4?!QLJ'ߢk [ʧ*@D[gC3mh:"V[]]mPVѣTilLz *UBM+ L$2ʪUWeҫHQ*]gυ*VZa]a~il SQZ"֧NSSnsM-NU팽nX_%˩F®%ĉN)Q%*q m{|_"}[41 !~ĩYRxk^Yto!%QEkۗtbƤR!g"$DfV'{$ҨvSj;8uԫ8d"dwew7u yED򨯳λR {V[n_m^8ZUZKˆ.tQ ⁽ʡXKtyuL)&ag 7iPQL@ fW.S*h8ģ*y«]fZ<ѯLy"u^JLMB>!>e0!dS6]X8uXirC$2ϔM6tKj+ѧэ*)RMF)xspZ.,ʬ .E+>=r5jNҞFpÝ dm'6Mp=ic",aS9x̡8\ijTnK-SاO+xh ᚇc? ]Ҷ!_Y(9OjIpPӊL=>޺U~ -Gh!hT5zX1 _&/bvj5j2SjzYNֱ س8-altM|/|WʵOR `> =򠡙ŷ;tvl:/-K؝MY:|K%|^+ϱڢbMZT[veƫO(C< 6+хK؜]ޮ"A]-EξuOߪ}QȲǪɷOR~&" -wXG/S-yS*O㔲}~V:PtCM;O*ѣF]'lӤ!P.e9ʫ`bv`լQ SM_"%55čuD Zt}=io T8Uuzi?(,^ΔfO3:uy͹?%!%MV^ɿSNN0Me뙴euԤ^RÛ n2vzvbO7k=#1\eO@-{J8CФfq>% TF~wfN^P/kxT۳k8S225Od~4FC'T4OzS[~en a'~ݔ4,ڤ> cFڿyS{¯Vdҥwqfh )@B:-[`~E)w-;u~R2*.%wwԷcS޼;;s5P#5]pm(ʴ:xU g=OUrQN=+htSR.*Wl5D|7Y, ~AUQSȩF>ir>G8~Dky;e;|S *>PL4IHf a 13.)"+r }MI BUN5nD:ƺѯ+|K>_ٍ{_~H~{զSV(e9/̚H ND6zm!ePsHI#6auTKGeE!\"NS_d5f3zrp{i_1鋣 'Cs>s0,ӛ(eQ܇1fY44c๕E>C86,֮%aaqDVoNȥʰuarC攆o%JD <=fhWj,W'A\PJ$>"thZqΕx,;!ß~ٿ̯,m/GYlf)t^[IT*Pݦ"b&RqRr+) ]S*Pd^:҇:G/SҘu4=tc2 !FjUmR|Ɗ9K}Ouuj3T{tNhZmWSuPcc"],)+ǨP*]UH] X#~>RR9C6pAhuR)a]PQAԵG3邺7e.ݳ $f[tmDP*G>qP&$s3ty}}O.Y1ZTh"[K}=BB%fWbw\q 0IbU[C(N)D"JPֿ?_{mc{՗<"'y`]Rqؕ!,yfqOc,qStDMM.yT(l\ͻ)e(]ʯPM3 ~\Y5U8\<R{[ESP=eʽݞܪ6AnEX%^+i(B;p-KW ޕDRݳ-y_b)Q㈾_MHD*ͧ Dė3(M}Ut م%k}}jql4R̳M %"R덊=1V׍֥/jeŮvsuK: $'4"K6ZbV7VUZIt^wYߢ?߈A5n|[^XPϛIEDžP'{NTxVº_L©St)@ S- rv'ق|oNm:7u 6.|gCm_>ڱ]Tݙ=͙غ rl /Z]9KtO'(M./yS|Վ<]Gxݸjk[nu í+;ʸ!`gCK4]A.icT( jA%1QT9d*c5X-VDҪη?_MrSU5O jj뺒 O*K&,(x-h0`>cN*D묑F\DrCċ65b˧̆U9z[Bdl)zuAPCGl׬`zdq;mJ G9~775{Ũ°ԅ,<&)l)eSFJi܉\FUd%WŸIŌF3/ qɉQD(jf4Gx)c!lQГ Bk s4v8{XXTc¿Ϫp.'5Ys8fANE8oU>W=&F~S5s@#ُTg%8k㭊Ur99v-E7](hڨŹP*k%j:6N-Q~!R|FWlk[ kI og.غ1],y{h([|XإJ=]2GTTXdvKBBimvdZo_Ϸ~DUo+^*ɬ1>+YUt¯r K+J ;<+n+p.8J(4v3Eq4j5 RTJȩ%UQBUdT-0ʬp-*?S:| <j^l~R^K[Vw~+2/W2ETZ"MYΝJއ/mXJ/^\X,DX[򺹋}m 0Rsv/YRB߯JFP{QI.Bvr襏zбoa}>.ΉH赓d\lB ne !Ec֧USyj3ߓ魊ErTc.[~"I9HĴ[rhՋ;CB&/yvB1Z\1[k{e޵F)\uB*W;֢A{t,uU3)\~9 c1֟p.\|ogSn.oЭbŗ?hf4(az'N.u P{#l!8Qg%O徥ӋhnZ6/o}QGUu&S[2ѳO.3̾<=Lt+|ڧ=r_(ln^͵ﰿnc^S/;{5*x:fsSnu] #L;#۝Ty|o({Yצ ~:B^[;4Ec<ըqSw5y{ WEuL](OOpG>oi^[}HV2i-#>BW0ŵr/tsj^G֡og[oj"%[;W_gՔʩQԯ:~VmWXvuyu*%wlN1g߉P=CbJ^қ_*_vOfsڂ-NtUx{?;6L>}[tuU(QkwH\\Vwˢvn=5]NNmlEj]}PH,]DY":qDзg>3*aF/|YoqjrWY[YQw}{cͥ$i,%Fʮ`x)\yGDRHpX0)d [o֕/@V%L5kGMK̎R5!̫3!v(\,ᇈc>Zq pǁx%"dćP-hB%lTRGn Pfs*-(47K . _n]*\,U)PYb1Ct&\sT퐤jaӱ*N}6d/A/"6l2 Td|/HNHe%5ψe\Z;oJv힂dd%m/ V!8=H򇘉BkG?dߑ-{ixTBW#~kYjf}? çFn a}Q?yZ-G:'faO)(A<PO6p59u.b'R#\T\U3 ]Vd ݣX!@Fn}?)A6x~)rGϕ5ooKGJ9 ˖-ّa/ bUnbe[zb$Kh*@ тO̜#⪙#~~LԌ+`6S{e˄ X24Ro[ү2 (W U('{A &/!K:gL0zBks2?և(Uf.Q╨J6ƩVVyr> SGKaw,6KO9^yPry;͋-\14b)sZ%lBC]${7.yZNg{'8~ešf(gOtbVqEC(Bߧ;Zn0*AXf`m-!氞h 9><D63-P2aӷ{5}>hV*; ~#|-ׅx{KVw|)(#(Ggr "O0HKbxOl:α>S)v'R!tƕCo2&Ub"μ( Qf2%+ٙ` ?)560ܵD=horz+W0V'oY#?c63H"LG-\ܾݗaa9dlu!`eDaFxS #EiʽiœGojuȡ4qgsD2L%;.G0pG8 )֩_v׆r>5ԋϿdnW',lQiZU磺U)B\~/y&HS+99l6[c8Guݲ4a {(CÌNW ugW0L`É6PAtqb`iY #2O>6l,%,YIHQ͐a˔^.9}>:=מ@jwDծB|(c&bg:*a5V$X6oK`QJpZkG:% 6 䄻ffۤNnk)`DG"`c鼴]}sR%FOQosvҏNi8LC&L% U$ R}`X'D9?$XOhXRN9bkE`LK N5?y)Q :KVx^ivEțL#Ng BX}]vt9x">ڿ*KcP[LEF>y. Lp>c† t>PdWОpe{ޱ9š{('>N$N֭$yhZ.|64b+JnH(jhVny "8 ,!nU¬Qp0AuBx1A|!w,|StS+{ܡv/}mNf^bPUj&I#4vZdVY1RR5j6mh׈912 µD,\{V;0ؾ c✲OpoH`&Q 1Zjp6<>91'RF@nw|C{}P 5: Ij?r}PC|vyjN{}_1Vl|X9IK񂺳˰pm/gfgu{|5ynPOx?=i^WƣKfw=JX jnuV~q8fOf'{R=-mQ̴b2n7HM}kJY/4W&M\ 0lY[m.%zAEht}?h̖'AxM5 j?0(9hz6c^׮`Y@Aڏ-VbGv7nVzbN:ms̊:3G]ԸcD7DQ{76sSGҳ <vVV.+({hn[jO}a5)=L,~ owvrA^~+0x@˞O;L:JnrO b(xt $JvGhGslݘeG˜|;;aK#?-?zoI9&tCcOͶ2#H1:9@|kL~ @Yfb~w{4v R܍T6n˯<-wSYKi? >^{LawZL~-0/Gn"ST*w)AjBY"#*aXz~{_ݬass٩Te45]5 -UUM]==uUu]uemvU}i@2)ҝd 4! %;C*ě;мe]s@}>=@oa:{iĥyTs@FD"(lG$Im,4s:9!ឳ',d`%i T9f>a&c0 )CĕDKKAT,AE!2TTE*B*`!! !$@ !! 0@ i(j!*)jJijX$((hJ JXFH bjh Qh((R`!  H2 `E!@RDSK0БDB́!`dC$ d$ C !@ @B!$`f@ ! B*bi)"Z F((" Y*JX !00@ 03`H d `I34BRE-% U)HHD5  L @  2@!@ f@  bIi)*F@B$ JSU%- ,E$D1T̑CTS,M4L4$T %   Bd H"f!a$ 0B @! 0&H@ &!!DIBД%CLLM--4SMU ICD--"EE$LE$QTA-4DTJD)$S HC! 0 d THJPQTB4ĔKUIHH L 0d$&@BHBZ Y(bi J b)TF( @Baiba H2 0!B@ %TRRH1 5!PEILM3 $@ 000 DBU )EL3$2BB0! H$  fBUMM5KM%DzOyy9C, lCXҨ$@r , ,Ikr}p>,Hb׳~2WU%6Gڲf)/j=oiwc9Up`bnzo,WIq>?nܿݷ>] Qve0?QQ0yLd}w]-gҭXzT -L/E_ _iĵun=>/kyp}>ǿ?%_0o߶Cu~P~Q)])?n|ʗ/ʷ7{wgիͣӱشv֐N= 6>i iZwu!6O<}mv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻveWw[(8& jkjlljlo{XZWJ_U:NKcGF~_7{lCv!!!mo>>>.6{b!6;,7c غ&uoغ\ly.v.|ݏccy/v=cccc coSŲX $n]HeS0n;(z˹R @;;h_h~v2IuP?gl] /3Q_EdNv'UHc`Eݠzx'E|V8YnVXZ%\Q?XPmO#yƒ4蛓 7Nv S^yKw{,yTj}=nLPI ]DˌI>Bx> F`& ߰E2e۬ɨh`!gY'  FhU"*TVZo}sV#ni13&S+%3**qfsrF0 fɱ;pJiESuL8!dx8{SXjɩAckDrν@F%r=ROڔ OklTiq-|"͚̚AsaX}9)v+ ~I#Ex`X IwƝgUUi҂(Fcs6EG ualr+c_aH)5BEaKhDXW@=n޽_gKF E:8ӝ7Qr]`XC,( GdbDZ-( hxf^i8=YlU)XexW9V4C5i;*MfW;$vrX N s0lvvv~19M{~+f)H6<ڣE ulȂcv,X&.1b=C;&LX,L8x/ѨBZT6C#do  Wk-[2|޻S jo`:>a\nό0xl$$$"dw_j]!͘TZh7c,[7<;tuHg&(>Du{xʋ-왁ӛ =Rfdm@Yn.}Zp-߆nxXuX8N9LәX<88C1׊ITZfښUKRZ7ӱ>,ܝx0#dQBIC64>wYѫ9""8jjcFshGR=+;x椠q{TUZ爊n eJ0GT.听ԑeqsTy`kVT (9;͏/28BF(V.z@d X1Ve"S}ٸ9?Et]pZtOV;u$N?$>:2$c֚!Kh0/bw9REh\r~WXϑ7ޗ>=U ~eC;x'*Rk廄-ַ?J \J}l4uFӣ̖*m.E/Dị̏.-ehd ʱ6Lb;6ԓWܸ-=\7qG=^(@:S|huڊ(D]XBp@҅l-e*y&ji8^|j! %"[*1x*LD[љJ!"͘,r(M0P]P,ꣵ>ymVw2i:٩:22~(ܺXWpv/ׯޏ Dg6cp)<-x[Y BTm%t9j("s9;ʫm'Fo<﫳Ӽ߲aX\~H /)wsU!ͲWlr}ZF`P/G vu#+e\~Z>#KZT'N)EBa8fEAkиb+kQ"T,Ɵ$4p#˔g;59@mq,"#9*[LxG-iHBp|㏅d c4bS9C_3ԝR%gKW>hc=.ﺨITnC+pRJ|u%Nf9f,L"k[ݕT-C")iV bҩuUtVEHv?FeXȮT2N] QS{,VFEй))}Ȗ :;3*ًrku?yi i/ۜ %j.%1?D._3* ^e9P!,͚E!ggSp\5pg.-.#iQGDOĈq90>ӳ@BIHthѣF 4hV'2۷N=x$gi߶z9=oqah<!!Dufbӵ/mTJ:{t jbCy)T~AED1!\nP6L 3C򶆼mML20LO/!.)kۄT %F/9AdnV.I`:޽ r^spwWvQoI0i^'JKqZܣfUMOĐ1#TB!{@QE k!,Wq3mϷ9@+ Kt㳧r_(H>eHRX2dԔcب[Fj:-8!D,W;7G(zTՊHճRq6]F+j  8[>% =&n&RFnn#Y#8>Ј34ܗI1Kt(ѵ[V|HY+xiKqWVܙ(ǭA|+'v1@zwz5ڹ=aXPW ՚ .qhpU[UiOke~~ҍ,.iVĠ33ЄYw ^`u6YY>tAY689C(mPѺ% G `Th/f `'cZٴc IxhgA*1< zi-s $ Cf䷿_ ?V3P!9;" "h͡lZ*?3+.n/&7Ky ?T7>/O؍L Xp \ U# |37E`c{YrXg FKwJƒ5v}A փpyn]e'Ï [^%X&LN ʥ"qN[XfEbŔW2Ī]d B`Fqᢡ=Bs:A_g!ešNj̇HV&lP 9/ǽ/]}3>/w- Y)"' 'I/GfK0cZ`t4 g g0=aj+б[,Y= O~?%Vo9?iUiōRmC6ք16PAT\sd}Zu'&-bb)܊+B®Sy{ nkOE'L5)n [)D|2v(Ѿy7E]Rc]F:B_!3LȤRqVWـw<2hS @Qרtcj:j%]f0CTFnTk2%Z9EA^l q0y!Y2NS*iTN̠"[`ltPSw_4P="_;\Y?EiMi9*s\ƀ$)_wQs*1Kxar : 8bx,_k[6Mkߩ _~ 0O\en(,1{ py ۇ%qӾ_=ơ{t]t*##z3KhhT!qwyQXA  PCW/j _͛Fr1zZu,bbx\So¶[/JqtZjFP=񔃩BSCgD{r7Ȋ"/9|WXUc0YkF./ηQ[?n*fd0n}!~t%rщi5 єcq3F-7|ը]8y5~I$/Joz'MLo(OWJ斀I;4zGHs.0qٲx}&9SC6qD[PbF=s[ Bv ź,SQ F3rv,?9s \y<>.<Oc=s{t44x>A!wz3_uĊYaAAX^ny}^vcλyW>Px8x RϋQ2H Z2ٶ/>[3 4~\F/;yCQ#C1>_ÈNjl~&QkD6vȀ4ݗ~Z|WIjhmKA\qdzTۇpt3{޾R?S>Xslb<A`(Qzdޣ;ӎ>%틕pC ێhFddK*\G{']$qq % XMbis3wf X鸇N /"۸t6U{Q fJ ܶVnͺ +&k' HsS z7 `wS- &ڞ`Fۯxϱ!!4-- kb<9zi7l|zbe8 Aٺya*:H3 i_ -pRk,rx]W6.h8pj1RlԽjNVweZL01e ߭ײ8LNPL *Iby>8d9wWt\k_EރF(_/N ]ݭШģ-ƪ9z3M' n߳ޢϻ0cՖ,5QJI.X-K%Z;< >wॕՑ mjkz1Muicᡬ&R[^14w|GZ Ì_!}Po}n. ȁo_L4)Ν#k֊y>DWxR׹+XƩ L!cz2[ODo`n芫 ubV9d)XFxxrcSBAY3[өM ] u x c_c20|}2ϡE@(vrte''^.w[Gb(4:PL=1M9]]|ЂWpz˒o=@٦ľ`nW=`Y⨬u3wJZH;SAf}ڏ_ɡ܌x';jQ Z$ڛգk済jKƚwD}e;h=2]oC%Ƃ8-SkM&=y3"O΂'Tۺ->֦u**^ongVo&X&H((#Ds bĀHj/u I#@,|fb{>8-ap3tAw9C^NCIA.2Ã_zI~] ¼/r^ ވRGCItƹ|/ k8 =wo 5=G}]6eO4u3mǷw/\ҍnּ%Y dRW NjbvFsw^E5[ҝrh|fC;-?LIٮ5b)..(A.faC|GPPM1@X+-IŇ1}nOIW猰Q a%G!Ct\D uJ(nI[j0fCe2y$*aTZhBf7[#o7ɗ|z *-%%ZS=- qHRz(],[;Ez Z)`Wgm1B*tMߺpQTo"-9MA&0CE DufDzraX5?mJnO,Ql4X,a㕮6m>rYݲoY7)}M*+n.oM뇽 I8zFs5: &PӁp߂jCzQQ,?;s?umrѕX,6!1%E>F*ErγŃ Fmms4XT᳉NW(|=3A(u;Q\cgt0]`[z vN%7¯g*-ƹmX^39tǂJӗaO|c$13jŲAuF)vdb}^˽N$:d ^j8[1#\gG2V4֟0;¿n}L"',"LB 'gތx8=+8t2Az))8/Roo0Gv^7i]E #T4=]fo(ZզޕUoZvxMs}зG`NA1vfۘ7K6hIJ-:| 񹻟q3ѠޣxH*]gd$Y=Ί:tˆbdbpiϮfQh'n<o\]t)*7YD55E'`6U-VJ5/vWJDz9Wd4G;_TQ:cfO=% CǐjWd(:/sgW#6hbݰvUJn\-ǹ2W\_@|a}n3#}_mOaL̾B/`@Յy@N`:raaG`yo wx{ 8@> @}T'NQҐ`G`Ga"E3J&h@`C 9\ ADBj@]CGX/M  l1 @}-+ԿRIVoc  . ;:Ӭ/4XjY KHΓL_NlR(awF Jn!o`LB.0%W(O  &P ۡ^Nih@>0)`P~l{@ "Eh:݀bDӐOc !OXhIް:0r R<c4z? a!A5P H}(~Y7 -/`A/_qr)l%Vn=qB ̨i(b p@}v%TA0rD @P'Gp qpv? i POG?U<0 s4"H6bxHX }"pvXT`NC@!ZWтNBc T)`팄HEew7z\^s G;W7@oyN8`OsxԌ m+C,ʿo1BM6pB3m9ʪ0 ^M ݕSC_bB)fD#J!Pu9)סxĴl$S'&܃ gin<է/ !i͝A@pS%YV/B4,} k("I yP(вENdSZ%bV~=-EI09*Yi%``b;~fjEȟ 63-&0:ǔ1ȅrtIBB0AORNVAPlC9h)&]DztILT{.ٴ۟fLjuD{ʐ ݠ=Sty>/vY}u`ЇK yl. (cH*_ =Ͱӕ . B}xl&+&P {Q</u]6^GvBJ=C8 @VCPҌm ;Ȗoz2&^AFR4hH@4:3Hh{!FƧ@ХM4y@0~Ċ4U˟o@ '$Bc!b~:F\R=b075Ob㠥d{| ;+Nj;x:Q?CPfsZ [L oz$|LNu>6GY6+yК{"b}UK(xUzMYFnkCMg?i-5aϼ_e-|;g^P3fL4bqEo@èz %`Uj~>hqpD~ g m?=I"=LR~+JOSB6XG,Z+;Cy vG8TH?CJ$8N\EL!oKd?"C_O7 , {*a%oa|9= _gId B+P8T{ȮY^:}W, #لc|s~d4Ӭ` O(!04Z} xcqNsFLy:;C2s' K-̾fUGt"ɯ4RRGĘ&$얩y?3j2*"plf|)!:J2Iyb9ys|UˣeP_H٩b m0|mP_8 &ͻ<D{0FuF5dS̎ "YJqLSZHS 2˲e˘ N#,Ðr_>j~pC K2T/z̈́MUN/_YSn)}3b5W<- ɴo\  JengG6?Yλ{ٞ:tr-I!y1fPYY Q$of{4W-W|gMuDB`g5Fz ZX Ax5v؁fcaETcW~qSU_[ʾ@5Gupv`2E__bP%"0R'OTR>SM4ʾvh Uyz# ]sy>Y[s{fԴ V'5$C"P7*`=Ŋ>f > ΋* Ű[ |suh~hߙ2P)nR:" +;3ԉަَa/-Co Ă[uۍ)~)K֌ ( 3e{]4|'׭pъ+򴥡]Ȋon _x#)`ٰ&z\z[_J*K q $!{Bu!@h42g${ӧkJLyo-څwa?eooMAU,qT6#krlrrwJh>&'f;!n~ aYިdO"ifjΎ8]f88h<7óm Z|8mF 9|&)m=qp;m,cƤxh`krzYnѺ{eO xd6@@Ϡ!42oՄ )'x7cCVÔL[W tB@ 3xh+*()!3dew8vfjc2pKGYE7w{U./s `P?(DkJ&MYVTsiR ADzQ+Xbߜaٵ(F9nyT_{w@Uka##|p`xcl؏'G*)'19jа~Af{%'9o{ۈM<6F#?VƳ?;2$?SӛG IG>lTM[,%NqOc1c!ܪTm`O4e70iB,NdL`k>Ap;ey~Bu;ݺO}2$-풪NTIG@~yK‹kޥHМ`rLXp H n=7KX{WRrP6G4Tॷ%Q:]!ʭYy(nzPLJιF5}3ThGC?9*1ӏ/|?Qi<^҇[rKSIG?VVB;Gi2fäK8=q^=*mIeG:t6IwIM @֊'s:{r:8E”%?2Xt'@h%b^30PQ`=6bPm%QbI ֬fȆȥ^~ˎ_8;e !yRqu&Qwt?3Y:?Aۭ *nsL8jzyL#5c/p=cLh*\x-:A5>q(:ǣ9޴g߃64bCԯ'u.ۏ;*_?#6XB21,G8ׄ(zR5Y }z˽ivJZ<9[">e Eê>;蔛s'Mg.sm0Xu@P mJco,&G:,$,gô D,f0)Ɓ[a&/L6L hU72O*zgFBj y=`1 xE( U,pض7LouH p? oa3Gb$ h|ܡ^6vp0 ѫܞXmnePfO,rD'̡mYu$g#ۏ^=G욌v$L|i !jCDr ))~e|yЋ7%Ѿ e/`rN\;p暨P<$mH4 t< ,k<Ԣ3F_x 'shkL@R0V1+ 6?KY(Df 23D}DbYeP!r!郀E-Q#ӼD`6(qy!莙qx룅 ?`aеxAiaS!Ю!~`C]I̮9UJ:x(Yzެz7ldx7;OD- A1Sו=MiͿi$hDLhR@nzjhuG,j5%Fӿzݪ3HR򏟦eGCOv |Ֆ* ^i4tgnuA/ˎi "U* 0Gpv11fqB`Iv8pH/|$ȁSuʭyM"8LDan8fjzRee ՐT#3x{op P3i8.@l nN櫥o;6y7ƿx2vjtNC%>Á߰>ЛzS37#k?G猶7f 9ck=~x8ԁY֟~8ykFGq>Uhw{0` (i]Ab7but s7:_pn&Z,qm*9!b ߴO`; /NYgRJ sGF`Ɲ09h1a\\e99?؃?hVm&kU1ePNz?A`g) @'bQ /;Ɔ@Ê"C@ݍAf&9p^I`qB(O,/l<=q^Ξԙ4(4PX? 4X9@3Wqͥ9w$5;ټ fDށQyCŒi}=\`5C]³YKC*@6Sc0Ptg ?Y0GO:(  Ӛ*9㙭7!N[8d/euG״;kZTJc˘`y"wDy5stj9$fyyƛ8pW5Fb+yɚzͺ b%Jp} 8'vNtD0,<"P@MNH)72 0fp1Mt@R NCa]vx)G,ElKTPN;}sP;d쑾9իK˘*>!#sJ妪n@OxA6*2_2x3En{_:u lS5T.f <¬:بR֑;'c9Ǘv(}c*?? 1^h74''8xbҤh͚Ss sl|ePӞy;PBsWr^ʐ<6W'a(ف)4:c-rӅ(9GQe6 jI`}vD|laEե&s`ح,F)AG Ihհ53ԥ1~y 8,}`?5C?MK?<"pc`>:CnjzeE9 ` pf;o<QǸ%',m>?2{a1'"e=:Pd=yt( `CYĉRC^ gGg G!'pF h"L 3oڟ ɢF)0mQ">Ȱ0slvЪu=ZChU-ay28Iƫ:{k0E~;G|8@g5HOXS֞yoB8Q? HB|01RF#4J20 ]JD]PcO r4Ap, GX؉̶fJ^xC.Fƴk=^ǰu'̽`7',zG%ʤ:Z;/o +ݚE=\5.D>agz!2](p xO&YyW y89Ȭҷf`\rWzO~okʝѾ-ޟ\U!Fp>q^B}SK; '=,?$W z=yGvta?  @/\ot- fE&΅1csQ6 Fx~ 8lAn4CuxnUb)Bِ .@JG<8'HaAgH}֡1iY-{z[m~T?^I犨~ycy嵱PM1khVg0`m^&xnG3Dx$`&g'_DRޗ43 w_q>4t|?Dlop^Gs MؒnE8WS!۰\^//9ȎBPp{~et͢xsG! _MޔSplyORteN|Q%c  М,JÉ,YyV,T@8{tgΉ=Ld+9ӈzqj 1c P%N6MGH.7̽tNP &> s.QlH)s>,@?{!? k=Pp#ą#˝K cm{3971}8u?{ `d* IC9Rnޛ[ycjʅG >3ρ `b8w|Y|'ݔ^jJp GOl8u?xv ݿaPbL??7N\z"5?0|A!|BI~>vN8jGrp 4br,֞?Ld?@ГQ.ObiN. Ų:?I%kad}z)E: }"*nf߬Y sГ2*23>q̿2ɦD>+0y΁v7MBP|$^S>e(tKEX#;U':c<'HWPLl5CbC|TO7z?JZaOl݊}80=) {O8Y[Q>'&ZW| D,-\0}9B{\G4wr]밲R}cxH$iEX虋y/9#a@O刕Yyx(?X,+r#*'s3zxgz_W_Şt&i+h]?@jrguc*rC7ϼ^adg+/h{s_B:8YF\54C{›2h;A> Н 1;bCi݉eMx.Ip"ʇrrui{݀| bhtg'&6s92Ԕ8:3ؖi f*ڞGf ʇu6"^1݄Ȥ}x!)l xSGx3К.="+GÞHVsc?,J8! =x# ,OT'bq0<'ˡ }.ot;,egPN\1 n)'fsS>n=Wo`/,^0=*Qt1DfD3 a~XW 2&πi )Q̈́ Ypv<\XJj,Bp?Jj))wA_g4_\·8IB}#i>9>r_1}Pݓj!?zOdWHS7fbhL򒣴Y$? 8埘(܇|7SIPO(G5GmB8]8- l@4? o4dfEy֢4u]{FC0xO TDϛ&Cry,<['|Hm̫S3߉ #(rEw2PzYs85A{xx m-7S4Bz+%K-.8Ѯ 3R `&PXm_D Q:%5^Kz3G,ڞMiŔ.X ȟW?]jHq P13\[==<"Lq7;$)McM ͛=Ξ?%6hˑL\Jx=}`IfROw @HQ~bX@ID1Cf1Y9Ǣr!f㔑5/ xx(ݏȽHH?S>De :Og*n @Z#zڍ6X `;?:;Pݏ 6pQG\"<Ͱ#ouݍ(Vݻ3+v*s *D7o(F/IfD>ș|*":X[͊UM\Ylr< Iw+OC@d=9ÍH(pTZhLH7~nS JޡlO@ zzHPψܸ:_? "~ N]ߚ4?ōqC4ft$rJPm_]k HqGT* }܁x&C6,. ހd K h/̞J8N @+xsѾ˶a`n055mt^Sz.AM mPt0bS˒TjV|\lD:V;S!UהBc΀/o(*,>=lhta򈻣6Ƌ3\t7#+g-&*]A̠\uEsAF:?.aD @`I~I U|g,rƆ;W/ٴ2b8 >u,E=-M<(80]/ uk|=YԚA;7,Q[xKc1~~s殼=?Jd$_M*]g!e6~v6;4n/8. a76+rrTQHj1by,UkQa b.Q!vXo6XzA&TLjX#r o(雘S\&+MEMӛ_ܳq,] XZ*?`q1b4 |,;Y^0Ay{ Obdab'aRy17[`rw4hňdc"8',NGNVTm.xq_ldvbw~~/dl0^1t8k6#sbόAdgG`1,I MQYEl5FV=^c DаKDWanlc jd`F6 dDLQ`߲źs<ǁgaP{{# xhd?~ <ΓL'_ىOC `rw_?`Ai\(a~esM9,Ɩ7}b`Wh\uÃVF%'CkR<Ϯ;>p5W]L^ h fxm^X߼e3 #!>On1۵1Ǐ{0y]%|f1[,R? v`6R:#`{Q:x0fgb>d`{ g`p|Mg' >d8p^rutpX{z&"jpHhrY82 ?E; ƓO; `pp8q>r5?# d=s3S,417=xYO^'l8w,4MԘY̜Nn2D$HUc R೅-\.{A6{cɉއfay0FJD110z^ۓ员0{{)ó3FCݹ;,>M4ru1bbc'h8{FpOOT&a bi1sk?rw̰6em0fy`bM=S tNhw_^7/;;Y7< rpN1:3'e8izla w4ve˰4#y;Ũ㆞xr^X0|{9I:8:KBo~ cSO#AsPǃ5 7ǵpYɱeme0j-i;a:lqe޼;Δq~WcJ4/Vn4ܩ'~0C p&  4!,V#QH0xanÁі@6O@G$wں֧u͙ٗ5R'MH:ECiy9/83^/]\l 0mqw%n!v6K=>TSp11ǹ}LΧ+'1㬎Bߞ' f;/dz|S~ 6[<.F0=#ad&+|a)9la`㯟}&݆L5נ^h/EGً89LpB\n8fbܵ'ҙi +~%K[[R-rYo6[|pWf0]64C9cv8WIN_1|; iHx6RHm~4> R6\`~#7i5:`10y8?~|y,;ΎvKJm{= 1bv/m$nʹ,J)a(G p7N;;r76(zғå> X<f>,З[6#X^e)`~.[/̿^sz{[Rj ɆQm.lL n UZibZ9kKn-9R0I:lOX)*:ߥ)6Gf2絞 '2l.+>9c i˾A\mny26GfP"@G- sޯWJ%m5vvȍ[Dy>6q]#79r/' F>m#I1P}f" hϯ&`x S8="gE`\#AS;mny3oJƞ<jCpX;/44\9##:u/]jzyLlIe5-ͦ f7=,qi^(r50{ceFhyݞ #y$3/'Oo&7ۄߵ0P8^zB 9S˲G“t *ؚOؘ DZJ],r6}Ӯwk*gPmJ6ul$%LNeѲ`mfYY 9sp| UYjF{HN;|*8[0KJz.lkm}p |ʹ~g~Lp9NG]S)T I+ȏe8_M nn[?갤}R4 14GibAJ${44睚qf ^a>u۰AÌW׉pn#Fnmϭ1`o} V9ӶSm\qf9;[dg?l|}ۖ6Xܰ H`=tD;GBNR3I] u6<;&J i\0Rߥ-05,e!х~q% !eQ[[_Q~yyKiD?c9N>rܩ7tÏ 눸.22I隍 XC԰~OxBv6K4Y=Ԙ,:7~F<\;n.N+8c3vnAvr76V{wm<~gF9'ed7f udfW ҦZyZ?ZeQLPUN*@V2 ck[ d̵o-A/ Ɲ^Nt& ,gWtX49#aQ%~AmK8I>~;'e{2ғGSxm8N9 (qO{1;5 pzxH2wݹ9)۶;}(4m-nY<,r>px܍?Dэ]\'cox4+ez&=ezpdFRωEt mAħú0 F6wU&9 WKy"##a.TŞAtG08+;4Fީޭf,EQ[mhGs &=o8CGb+Sl0ҋy^1*C5 !?C2wy[ŪWj])E/Pee'jS-kN:6*ʇm4uFm WP{jM+^5 " %GGP;HJܥERj.r*GC==$}f* Y,$}-|b^ #ѲBRBTJ\$+Iw,ej r,Ǽ|cm\іö`wQ!U֑ܽ41[>\@q?ͷjJمɰ[G,6x ^#K^gQBKHyP"ar5o-vVWN0<\&w`8R@ʑVW@ hּcH/3Foz˹v5dc(~BuspzzڲyGFӛO7^ҿQu?%? }޺'Z~Sʌaz `f햎(8suOAXgv1Ƀ] we*w/dAØi}:mh0Y` SAA䜿I[ϴ㾁0'̱Up.⨂_ ?" Qil]ƅl-UxCn_xC揇 b|献Zu}fw7hcx?ay˅d'y_G5k޼YW>g:SW6b!9hc<( [m=;q>{4JGSPbcQGh88_@/,nlx`/< 8,nGf:/ɏZ`ڸg,} CE3>#3Yl)1χwx%u֕mQjXbNJI<|=oOJsM>mˁ|O:ocv7Qk.|t(|QIKX|5 w$|)ju֋o #(8IؼX.33L0`^xEj,#Q!Ds =Myfw2w2v$B/U-8U_X40s]AXB+∆`4RٙwtgIO`ȉyuMF~ZXy)#Q~k*I҈q[(,0՛;Ws54ݎku/Oyޭ7)xeחGxY;0ƿ}B`ۛq:`h7uNM[ED Z{RD`P)L+Fc;\mZԅ"MydB!X*̊J 004 0ВE|s|E1}qY + a6 m/k,:Z d9J]|l0S-}EH],'/ҍKZϋ%3] 70m:1n&S}{(/)( "LN`Nvg+8#m嵡û:9bB#5o5t^@:ʒ7CGqU3ql"x yEL`~v(vLw3g.PWr<#XdZ/[!EWlm5? /r, S 0U\0Z13Q` kVJ}# 1wM8g6uI]䷋96̤K]QX;LBH+&3&Mб"1#9nBg*OoAaK_`D5M\;ÿSؘI`i&7Y6=?)D\c|畇n rٻEixzVHS93>]q?x}"2-`ZE>?k m\J6DŽs[P~BJȍ8bEk`0Z)a <<8#DZ֗y?E_,,, Q*r2jAPR<BF_5>:H'GkĔ-d:k@@Ev558c٭W?ho W Z7Z\.\4ZH)pG$f&a~2Ý2r.'%øS2-!Qf3Y>:1yˤ,1ʾ/agA@{`TZ4EiN']Xct Oj֡xo95WEsS0b&!tʟ-˫Z6i"hqV()/Iva2xd]ZB\M3q|ov;@f3bHrMl\KrԛssB[kp\t'=kSuI"$z8ݼZ^&K |1J"JRˊJ ϙ4ŕSTs1vN koB %Bj`pjLHAKQ~' M"yJ"Pd=up>G{ɬ&2Ѿ]\YRO*K+"Dr,S,y) EBi-\7gVOl~d2*z窖CY;rɗW,lDōDo gTG>ތ!%bVUjWox|s@HcEa#UNuçpJ%N-!?ew\.gEPNj\VJǀ+>.F7YAWSa&~m-^#@ɹ_z~D%Y(!Yʖiد\iF}H3uɔt]fUb8k ӛU^, ׀Zr'꒾31 +@7@,$85e$ox^+zEfz^vdF>Wٽڍ5-"e3 ʴaxQQHBq\+$* ^i/ٸH#؟qb!U A@:jD$u^}SE ځ1Qm5b%Hxu#ґG B-"A%i_:!30%뭅pQF.^)ǬD9 h_ߺ&tWE>T Fvn!Vωy(q֥ȣ8}wZ>AJ_4gN1vͦIZ_3JpIv{u.ˑҌU zZh|\;߭s"vV.OpgJzP"ȑW[;k+q`O6C{)K0t|Wp`ǀzq.}}\c Pc!J$ 1$ԭN.^N0`bưcJ5 ;VZٍ2ЎԜqI{B?9=H Ej&VvՇֻb6yx*;8_+2xpl85TN")#e%)_d)_+Z!C { )xſ3uIE5]^kzh[ٖ"(5*3 h9KRn/"˷ʬ_`}SqaxpUml`8 8&$JzZkmSU[S7G >)`b*$+lun-sk$+'Jdm̙4PQ-0?Lf]} LYg)ٗ._n6Y"с3"l0aٱjBY`дÝ3(AНNwxB5a 8:Ԑ_pB C`IUdSG!!*h%enV.[K{>|.ݻz xr/1O0r&CVi"=f`yǶ_!.l X/EF tikN 2!rY\]yՎ>Y~PA/>e$u|~н S/?15V̉!n2gs.\UH{Y*" yVz4+=gw<ϯpq1 Az[@XY#[*o \!n/FLcZǏT+G:) 1}0Ve~ OoiS)zۍǼU ;Ti]K~}2bVd LGDP~RZ?#V Bs*vO$p=8]JH",5Ҧ\TXiQ<(;/ }! &ei6f`xYh4zBٖ2Ff6&yhS@?V粈Ea!( k:4ZɹÏ]C)1d$3.n [dNLW\6h%aݽ|fl'ڀu*h@|3C-9q t# *bҏ6N `ͬE2.y>3Ul۩,.KΪ`whtn~^bTa5ǹhZwa;[npR1&rQX}TXvU(mrdR{K }N}},We #GG.هe7hND{,;3Cd 3 A3=~cdfuUKqdi_]\nCSMÝLM^#D . y$SKeԝnޮԸ t+%Թ[nH,]QlkT\|ņ3s~~|[hH_͇s]Wd=WO͚|{?ٓCͻ5 +fB8}l#ZXWsnnuര/ ЂE^8+ruvx>ץ2P gu$27G3Ga H?V81?0?32ö`hݰ:va`7%y0e}< !|#fQI@,rtXFɰ? '2 _kvഃ$)X*5C Iٹg ϋPڌ? _Q P!VKtz>>:n:{',ͮf3!q2Ce l b?0%AU;6RIImW,!URt@]]=A'SK/;i|(lcP3 jIJN>\*1c2d̳cF ,ƭB-fCD3\BH GsJ5Q8`ne½¼Q" Czl̕C4GjC$;Ϡ0ߣKրcq ?:[:2&yO󲱧ߍZ!;I2fq |\6iZ&SAF ;7} B+{ %{=pTdwCjE?Vgg {~l +lumsha[Ԏ':|}삛7kL/ KU?yF9rfg'X8Esd=K̠yϻ0yxa8d!\"lCf}N7Xcn[MhrnoQ!{lOZ8 {owҲn ʫ &8+ bɎs2Imc!l39_WK L.B10. ˸@\d FBfF ڃFCDQV ~Mp;}L3HiNGN|ld;~~Xp`0hCRC:vZP}l۞靄6+FO'ty3k6@A9d -(=V OTHIDM 0`|rtbt'eg P'gNpgdK240̃pɊtULL2`QL>zI-"Wh7Fc~"7BuUrF`_ݝ[4lWR릑@ E0| 1XXFwY`2=XuY|! B}wאc2?aqp ;䯽d9[ {˩[+ph7q$O< J"Z}oA}GS|;4>D"DaR' WP-j&H^䫗s·; hyϘ8f~Րp;!ps3=D\WtyGCuP|.sd<|q;1a |Da!P9_6CO~-~;J́ ,AN$w7ܶ#8B܀L;̄<,gClO9vdOSp!,5'r IBm,nA *fl#+5]fq<<,*zxn85Pnc+oXZxR aNH2c&@þϘy+t^$6l<8Cq9;q1!=[_PoOC3uzP 赌M{C`d1ڝXr2{}r:gy̆&0-*y,;>/'$>\>"u:{aIR` gg!qaӇ`N~Nc!Wt.BAvp 25I#/vx,΅[ĸa@=p=Qߍ04!{aGϦHyLmsb`CC?p]ol'Cl0=uW.Շv[z_<á1=D?V{,Baח5W|8K!twَ1*/׏2n6(p;h^uh'cz,R( Aٜ;gRC!/]{cC48@2S w90>vcd?7N9JlÈos{Ed3ip/lvO[p>}7I<_=N=ɘ` d6,{:LzsLĒ &ƨ([te ZIʤq[&bի}k00d cc&cBa bDzW!CC!v?M }ˡgDy?)`a\;Y<,Ãvd3Ras?gW<S >g,2찿f ebq{=/9AD!P&!?a^ ?řx+t9!hwla18tOwvtֳβ!tdzd!x{Q WJ? E R26³KgS%5SjuyD:Cøξ򜩮3v;nMM`1̜i9sJyWM޸Cu>V8C,>xC Ľ$N;>u!xC7~ٽ BWqRC8pҞ_uyE-N)a#]mTtZQ1I"KN8u+|vc ;i%S^eVY:_,*:PII:U,àI-E" fiFtfdMUsrq񟡐޵_Oh8Ʈ@.O>̇NܝL!X9dw1ûo+|ά +']݁_gUFi`ML0mbXx3ŕ PEP'NR)#ХHJzM&贱Rm{0wzm0/D_c>V{Y\y |vC{!Ć0!t?CBCKx4"rdΦ_Q$'rg"*1<pQ3_wfx<6dˠ2ģgw){ Hchg>y'}r00haOL>yId5u0ë28>J1%"o\Ocx G{wQл*>k)ݳUu}[ p: ]si滟}w]n:_zp(}}!CQ12|#tCx\*`v[NFY+:OO2C~}}|yho9ay&[p|q`OSCKL>a6w NCm~e̺oV62ڱ{17MzW&*!tc]#z뻳<4< ".7U?!w<(M7!M<]Oen5W=>łI_\t|@UBP*'"*U O$e\Ӓd7g}9:ig+CCAJP1H bABĔSHPT F ĂR4)\%)(Jh"ZJ(  (QB$h?1 MfġH&#Pġc/8$(DҐpIL$CH8$&N' И EP-5JRQKA@$@%+BH(@HbPĔ!B`f̄$  !1R DRWĥD\8:xL9%4 KBQAhaKJ( JB $q8b(bZ (+W"LABD JSnb)hJvDgc CI@ #HRS(Eą"tv i (FhC4$ RbHJF/E@bBJb_ e!A$CJR4$1%4@D+@P%#"%HQ@2iHV HiJ(1&"*BJĨbi"hV)EhB(riZM(R@F`iLN$!Ї|oaqҕ{g' !~{3𜝜8ug 02sa̓Cq2r7SOGvo3g ɲ,_|b PdV0.!Ó04 p`wݿtK`L{L$;?=p=4;iz@ڇrsn|1;!"~CbCݤMYc?<KHi;~p]쏧bnU#ۋjb1<Ñ:|CX^0C<{eVqwyovyLr!F\~8t0o wvCux;Ǟ ^EOT$5A qOnG]~mil ^PyBsSb nE&xaK(e݄HDq-³lςU| N2ݾ3:8|s3?NCC>MAuZU Zq"RA\[EB yEܗ"YɗE%Ez[NȝķUn7ww29ޑGy/ $L왝ʈN!"~yl|Wds<"`dSHW=p8:_~'z׊}CW w) Fzw: :XCCe}yU۩u@9.N;&RËr08['Ȗ3O =9LoXh|!CM! 9 ɃC)8~ć#Bpć!vJ;"aD?}'(qVD0a30f}WPwjihd2R8oW]}\%F7~|d1Q)1iMN aHpjr<.JCb9C ؙ!ΆAm~.0:r7w!Yspg(o{{ߓ`~ 'NCh}X_RTȡC9#1QxԒ/^ FcQb+X 4l6Eɗ,p$Dp?}p<\w},D!ϣ91qOmi},?M}}گ'9eۧ.t۷PVGwp^+ zun7 mIf*/ B އp[{q{Szaw } ޏ!{lEy̅g}C9; Hkyot:iȔ6C09zV8$H5X5 "AEQ`Oo^Il|!GuU7u|%33@}OJ2b~8%?]Wb5+'xJQLbfeY;"9gѻ|!ٽL]Q{tp! >Kshgv[<|`v^13giLwC!!_O=D?5t7-a6Aht0G=O'qj$Yzy/ h&։B5"Y)n*Mk[|-mo\e0Lc/6m=g^ίifh~9JҾ>Lćt<#v둀x"É^ >bCpuVy&?1A)W L8_]7߭#v;aG ѹ՝O>g9 g{q;ćd{Gwg9 tFm tu3+h3$ONS ry.!mF?G)Ngqgwwj>yߧ;>d?${"nZGXۏ| %aYXW_(UZ=l 6*)G|+J+ ֊4DD}My1XNj+'Boc<=d^۹䮏U#K=<49?߳+!>900|u0L#0ӯֈapL},d c yc~Ld_$ q}X9lVTC AVm hʉ `SX!mBp30C368d0'1 w|C319dxaVopbCDaGUL>a%8܇|#ɵ60w/~d09hyӘbag2'fc99!xpN 10.`pӖpc3!bÂ\wrwzϭ}W~Cu3- S7}'紐sy"d{UQ* ;W$qqP RGlT6S4gg \VAlg`G%wgSa^v潴:XànNN412Ϣ8pl:9C ϲp 3A?oG}>nqh{Ag`s<ζ_mv}Q?RM"5Y jgʧoE1Y|.A%@KDɚ U  WCQfP`%%.ȸJ.EȹOS߸򺁆@K c`C`xx}>s>Oͩ avrCwê?pLxHe!(s8YEYJ*W1&LP*)@7="XWT # &Vf+ͫ.E o,Epn*<}.Xorp\4 Mܩih+zTy?'QУF8 €-(wp|/k7e39U6ɠgOt")?DњdBc^ʑOWf_Kgu1T޹zpTjv>ε|k3LZXPzCD(&Y ~&6 ^,++a0hTq7Jtuu.FƟ{ م_UM)Lt5b@$!菨~ڶWHEIDS79Q) DiXTO X ʩe   .lT55f~]pH)Y_RiۧeeP+qeR+V|Kw90-Wӎ/h? JtJ}RvWoTo5-0I&Ԭ4B~c l1Nlzdd+{Ӄr9%x=/)GtaN)9@QU1G^(pW<ި[o]a}y%y- y :vczk̬d ٢DQl([9"gom +lVX" w!Å|.-p9Ev*N'Vz~EھG笒fEWf|5ֺQ+I5S/[L+bdً%@j~C6K345ìKdUّf?fq] W%[ 4IobRxZˉc vLjP=`aŢx!;A C ¹cӼ`3Y_ϱ@=An,31"ts?n.q7xǘO0veP{2 :8] )7ٝnDtzǵՈ>Ta~'v`{-.Ë@{sTFMSq1cn DM16Yx|5.ʼuj5T?P&xQmȾR[A[!_sݝ 7بu.Yqox+K#PN q)EbBPV Mҿ #B%w_ $vyT/ BbNL^ދah4Cau6@Ѩh1}cǓ+B}߻8:8nSBQkAW[8q|q&s졭w1JpXlMXi tjD[=򟅊9Fכ6T9QW(9My??/G~ RM^HԖD}TjZX4Sނ;3{YQ:2+ɸD+3rV庽z} ʂͽv1}O do_ qeW$o%RC c( -,湐d1Vf3"U"Djv ~/&R1QJ\@ԫwf9#'#8$/NEmPAR O=rXcHv%)'FxA_]8B4pPm57 4Lw(¯d==DZЧNu'=) ,i@=S?:c)k1+mVkZ0]B? \$8wqYV1s3"Q7PMSSdQ߄v6i;Tqt\&İ;뢊 :*>.إKې䌌"~~>Ne O,#tX[_-LFPG-GL8"_\xuߺqʽĔW.)\MB19NݻtӷNrۧnݻv۷nt۷n;v۷n;vۧn;v۷nvۧnݻv۷n9tӷn;v۷nݹtӷN;vӷnݻvۗnݻvӷn;t˷n:v۷n;t۷nܻtӷnv۷ntӷ.;vۧ.ݻv۷N]v÷oR Hͥ1Cvu"a*uU%lE*ARW,B8.&[1yNlDȡLŕ2<{:2_gTe%#Vd*v5&RnW)E#C\@aQI5C Ĕ̥$3Jiyw-!=Qu "B;{MO=5) Q GTWDGy~y~|<Μ!vvV̬eۖ;lw *Wt.n˜̝~}?U|w3"޷)Jtm(˥] iʬEKiYec;/]p[TNk>j61^ik^"(\s$ZN(<ݰ̋~7:7d#աA={ufˤ-=wAzD8%oO#, vlZb2ff7y2~z!詙ds7\1 LzCf(K=9c`o7 /M?w픬M Ѣd)"Βf^jbq{%8(b ༏@Hfd6t5s`ʖۡu8S=0m YQ6Osbʺz?t„J"VJ6 Nz|B#4,jVx8.^6FRr⨠Чd_MW\{f^.\xA,fڥ? Li=J}M׈Af~{ii\ͭd2-(ڒ(X&,lTB8R( Ebqo-$<(I_D`ՇSg@,UXE[5O`5 "mGpxbπ3D"c^TZOW@HHAxiҔ`/+\ufˑ8OB׏:0v3SBr@4 ]/CqRhfG9g~1rmuޡbbB AxѤL-U?.[B$9ůvU*jO B ̂qp[t kveX-ӆ1n(E,HGٰKzb)wr銸+3-Cz7FɰxG?1N\7poĸgS/ɶ= ~}"Y`XUX* ɀ\.p+s ሾ.:7}sPR/$PZ];;gבDFGTտԲ! .v0e8b{GK֓jqh]Mk.o^ nހL9 XKq ,k/kK&4R,,x${^o|\sWsWV?f "Ed?{z~1"k 26\ v 6aO@xDt!@o$97d+ Đ<]*dAM* tjŋ$ESf}@^ \@>5Df#"(hE#ନ(]=PP~$;Ax+Q%HSGYTf 쒲qbJ 5žrp aݳa 1Kl*J BQU&uMy(Lxo UQ;2 lC-oT>GK3C2/ hߍ>kfHdSH!'ڴ0.p/pu|{WB=yH 0fj0#r̲j*,;nGi~6@@S45qn>zu:\npC[SG{ ΰ8"r$OʆT&~/20u6_ZW4xK=k7 qwI1bL^q{'1sۖaZt W7lj0 S̹"y=>%PRºJm0|2˗. ˁnIR@4p vfW*Ԣ{(-{ `ilsyGsSCX꽹od<[[r7)`fI+^aI K6]N O\=0Vɝ*'y@ի yb[PX(<šǵGoO4{"33-7)(ĩV>RN+η蕐ɩϳ34 <b6\{ڣ]c:; X;)+ Gsy2 Οl ,bX'/2IRjI^M*Qrro6N~A$هv=k7==f >()`,k+ cK1Gg<3*m 1HmhC$HPMoc1b-u8_meU_dx:B3j2um1rp-LwsB19XY8AmWİ4S¦({Ca` :IӒZ `zDt]V٧Pz:cu<qC>\{iw An ew-!Hި,SdQQ{`S&6t:{8y^z6zvG4Y@\aAosx"\G9J5.L D@ b/+_we@H>b; "oc0(bfOr- _GF~u1ChU@Ɲ8=Zj]!\O`*̾NvlGWy :Z ˃;GVB3cS(45Pt G@Y#$'xyÉ0&S!F*(\UV}}zsoH bstiˏNJ[y{ ȥgPPh9c-U1;`j:s8@4|z龚YۋL0E/ LFyJ%Vw%]V`j xٛ6 AZ+(^0ȭ^@WEhĖPfi9v9(@rW?9rv@fwtVt].}tn¬.ˆ휹r&j*c݌N4p[ lW#8*UNhna"CIMVE֕dON"<b'p/L [σs}7< b)<y- ٘B* k)ۛ.-/͏-@צ0&Mk> $fH߲nuē'Ϳ &B]Xt2Pl\\Kqɱ8!:۳7i~%:" C\]o.{gYqƾd<ߩ wQGf7OO+O̘ڹǼǃǵIWw~1?}3)$M"nlZ8x>h6[BKkggglZelŵSIEg=FIlǤ`.K"*]zXHZi.xf׮ )!  b9;,}UL[D2axq[6= (L`c}T00fDY*YSU&r`CJ;e늺U;=:~v]vGy`&YRY%|TJ&LrRV*L^Gz$>W~!“*'7y[axIB7s;ƫOX OlgȣMĚBۻ1BbT?a> Ht<0@4"B'Xj$-f,cI$ |1xd ﮘEy3O֤G{YY)0]?f`mN)L M0/ `TaYZqyh5QT|\MMVӦoܣ+Z'gʹzlP MȥY+7b?F:3w]NPrcd⿧Scpf džv,s6x3e Jv_ݼ6,Wp3bm10dq;G"DAX(PK +&RJ/b١j^LDV,  3$l9(_.x0;֍\1]^ncC8cf<lMvhMAp\ \iIl!R;ևaF37ZxGh}Gpzw,p#is{צ-2 󘋈%xӮן&}gJ]@kʣ) :6Bj B= 6#/J;L|3W B",bIS"(%"]1 U(R$CT@k~fuo# DCw 8n*rkC]KWĐjtH::U31$M=L>Q|$F#LJz_=& H/(@  rxB!:D'mg\ʧnw11#IW@o2(#~׽ߣ\}-f#7BH[Z"on,[ KY .!ɽyokdV71ʌȌ#Vcaг@N$@M6Q<\8 ?-BG_*+F$!B$=2a`>P\Z8CkJ@X ] Qӄ#F{+Y$sX4CW9"#@ޙ:C?@J҅0D $1%{xw7_'z%a!\CnF10i<|!H)?HdOg` ~Azy} # |̠: tGC aݏ"pD`0ZS^CiҐ**̑{c s$!ڡׄRDNFR!dL]8J0!dw9)%;d6Dj5sFY,x|?v9^>ՙYa\O4an,sTA|@p6.%Vwk:Mњ12LRN,,eK oFE fLaABXZp@+كgB8 z\a%#Ώ&tNxQRYR)  U"eM-!( b|Fu;n?GphXy/,_KcՃ -vB E`:ay8]9vק[\::M ۑ"LoLҵXT#)J.! VQ˴.൳HE|8jSӃ+F=boۓ2Tj$іT6v:[@bP5Ah MYT8~ !<;1*zǭZpag*!EQ2rxeCђt5Kj.9X~DӫdwK4R{b3lNM:mM#cvp\2pO,*SI,-Xe'5r:+g6v:V@|UA}k\A3 ݵEjEH oq:xwk,$fe"lQS3͐rf?|J1bsxW >fCK5 {Aπq,Z_*CW mCM2f)qE<׵ͤIOV8x~SzAtvQ?Y3c),-OJTA΁p-?YxT OQ0Ђd+i8 :(.m@ຈS|s93|JlP0i⻴>3*5؃Gؘc{ L\A_j!~#U)yz}|KQ``jVS"jئCAı މt#IкO #->Ĝv/Obtt}e]2py T?_;+.ګ&8鶼lI[I d柒x$8˔aϬ^=Q.p`J{;#l{5X PYE\~c~4"EAX1Op/$k+P)hs2 =i_ !{SVʾ:|(?P^4LTbj556Ãa:٨2|\#R$kvlZ&rغ.蹹ed&.Kr~sxD7qe!d?рQ ɕI2gUdɠz|)UĒh|J իtˏZŀG10N!xH+{U) ?F{yf'~K943:1$1s_1М"dR3`9l-p8X6H Co5d|% 0<450n?NVǙWř5#~^Ncd3JP,_*B+6ev&CA~$iO6!xD{;'f*v>HN ^$oWZ˄j=8T\Vͺk~Z b{ގ `5OúA'..4 X`UH^UV~cxz!{#111AMF*=)k+A`r8^UR,_8KuC]LAa?|Ge`0jFk#-;\NpX, d!./4q87;'|6&{С‘Zdی&gȦ5h>jrpf1@-9[Ymþ׻0yjX-- 徹~a@`Y~X 1u:%Dih_Eq惖Ʋ6ƣY<`|؝q VŨpC)ŒMn|9?Q2ZP+xJS;eePYUCu@^f ^R_i`8fS>mz_y6NUXDsJ*(PP k,B.ͬ@g{!e"_~$?}#p{~(usjRl$ "W=à T y~.y-U}?w 4¬i.\8r$loG4\X(/͔B+ʎ:0/a!c6@SJ{X޳"DXDC9QPg߭΃2!uċ7Wkz^fn<?<ЇZh$̆ q0jR}Fߕ0R#V'Uvź\(ZbOnczizw]% QHRj>\JC4l/Fjm(,T+6mc|8(>19HXm<;۔cnѰ*Q0lh5.Q65z0AC hX=#E[[g^":oӎ.-tSrWf>P္ɐ{c,pmVc6mP5lڮ/b_$<|ΜWhVJe6u+<']a5#KkTU?+cA}b=!jWY6 &:b._1ձ-AmMxeAd1$E8=1Aﺄ_;(s@T##rVƒ{PrRXvUso8mS)E5 iQ=ݜTܳIp?Y< _b6"/(0JgA)o5+¼F(5}B9ʇ<y)CTuhWӗG'@\,Cwް;W!7yϜAb迟w|?aed& x3Q$kKlQq @4k&.yAYgTV((?[`<{i9t('+qtamwz. O×?Gb;o9\G{L5͛0՛).&&KN^3@6ז=X. W*e_Ü{J" mL% ؊rd@!HЛݳjgET,&]$1,ib'8|akx`0Fb-Ov@+s >޸h_:5O%%v4"]%]B"aÅKMщv{Albz13:qCq_m2?auo2!뻍/aaaadR+bxUgNPR)R)T+ %O027XA@-f{0AZJ!ѡ͉{"Gi#}܂-m, b\bޓAzTb8+F؃~ HpAD1nk@J!S)) A:2=?u=DR|+HœCvTWu,Or6l%FFv '},v0Iv)ՊK+=/egoW,>4__yK4 (XX壒2% ɃE9P~e5s q|A^M;- l$F"{hIӎqt)&`Ԟ/JO_ή /19 _>BE@[`Sce:bxZȘb/++MLԸ<:xqODl}-,ph +.)xIKɋKKB``@ Ǫ -`9'A9`% #gTcIE(Z\^̎LWCpA?A qwsf*Q{Ԙ$R( 9}o1_: Z\K\psC ^##8+xtGړ -qN bV o۠2<&gr4g8v5s~]1ܹc$c+ >! ?U{p@!=tk8ЩFOnM3j_Sm zZs/!&3mi \P%yL LHI ^%_ԇ?ˌSB2TYH(jQg:ZxՖ`x\£s6>?nP$T :e61+UUP^0\ 5E2,6[y.U)5=6)Q/\$P߰ۄ}T`3H,*4)J|h^8'ss4AYHQ]` 8*.d3ހ)PTC0fc=Ȃ<]y~sj m'7~1'T:X{ Ōieo(vr;'JhL|>(~` 3بW:nXmP2>W-T5&YǙoCW]C/^!a@_h4i0 25^. X^ 0 *XX!Pa+bhyY 2ZCV>dˡ A8ۓSzxH*Ibbџ9{GU y!,j:5 $Wo?e9@~T^c:/\%Q:P8 Cڃp2bdnl/}@7 !i Z]6 SoB2|kYT℞@җ0q&4'D$Ur;J!b<;ױrlҸgLUk d7& wYyPɪ,nXޛB,J\Sp5p"m;.ZOtE_ V@,*\tX ޘbVƛhC/ |LBxW_5:kŀ/.\_h ##,dɩD͛ͩ`6.e].QIYnBpT" )xeNc "[$Tوyg^1;Ìs%=~ݟd&AKHT'V 2H? Ȉd:5M ?Lۼ:2ڷ/M Fe"Sв2`$ퟑSVzՄCpZT̹7`ֆ4@zAH!} $$ZitPo(x9 g_ίi?4Vf/[Akn&͝4JxB0;/`X`ž+ĠPVőSz-;Vп| ږ`(oRż_`Iu3菷y`۶E1"qd} ZqkǹS)e^WJN) p+2WLНߡf8^^fZ6ɂۚJ 8϶_PZyCT!~Z˜< q˹wؙsr.Q1fxkS.ԫ OAYD1͞HםpK&:*X9 \*k)4e9, \~ J(?YUI)+<0 4 B+t?Ҩˍ]VdPRV m9*j7Yuz^P@~&A`yC_7(,{u',?0R0m #l>CD2 Q.\M'd +D螏ucNۀ,ص )a_S[>cA2Fwc~KE+T.(/-NB`$G`Ơ F-򧬨0q*Zlߨ9nr2x''>ۣǓy6;ㅍqb3?5XՊ$өST1Qt7tPunʞIf|dqۦ0~ }&&>bNZi_LccSP&1S?a]213OS18IJ6rTɆr8LɦJ"aU3.Sr;Lbܦq{郝Lf( PM#˹N栙nILbbS-=6Tkm_$2fc-W1 c" gՁaqخ6Sr?JʝqR]eEdr.-N ii3l9]r<|<y3'[^mx')D AQ7ZA_d),SAH;1&'OB"V`-Zh`GsgEgš'$8*-N? |'xEN?g`1Df8?^g;VTuO?QZt~SɨZxpU@D` K ZE F;S;lQ~쭫}H` آT!=6V{a)$H0MfkhlQz䎾RGIIm 4< #2u>&wx~]mUԗ}{+1Ň~CHCq}~+ ^MtH$g2د, s$?^ygN}g{)Y0i|$@o \\^+ t]]]_Wr^ABF{{{{/l0JɃ0'^5GS,na()+osp I 'T,iJ !rPC5O~d V\4ەt&k;^ #3NbbY ݰ@Sm4*۞UE<bw+kn~Aʏ6=e/3G6BUA{/#GCMX1UE>;2x>8Q*awFh BD}JNA!խ^!aZމy(v-lI$=._˸&bqp6oYUJr8&+JԢQNXɁA3.&&o¥*Y6Wa{j+ti>p҇&9 xޚ̩ٕZ ֆ&_OlXÞmϣ=w;E߉ máWJ3G@eD(4;<\:k @zc >`9' :麨;ܬ0Q6 W+˄ (wVa:;`k"K+&w&U3s_U/Wzz;Xy\ɥ%sXur~h#WQVOTB~g~oGTqOӘ5jo/>7[b+nm r:nTdC3 uu0 ޗ$ߝ62Ö׶ƻh` V&^X"u;X9.UVq <˞#`R}eUղf0;MyntwE.2.4ˇ;j72pwj!:4.?T>8f@9> }E551|rxj!cNaNQ\}樔~&̆€-o/0( F$) n^86JPr8KTyO 3XDlzL1%L:,rXJQqQ렩:q4AP+do6 Ow/G0B^ H@Ac pnQDdB|患h¦fLNV Oz_DQkh,}:H@Vr-{OMB~ʧK\luNwU553O'Tfxà||=(:N/õZ@JQ2W~Q^s.E>#fܗq"wq_t@Ձ#yf)šr;fѹn^ 6E=ޖtgSκ*Gk%?|8C~߉67A.Lmf7Vth6L{>ڕqKTOOѲb:0&8{n~7\wg8˜hn?L_tvB\G/wqwFYnFEԣ>.٫AG<66o8 +=L98h>`g4x*(%e{?(4}Ϗ+ |BZ;ݝJgOMЗKޭ 8{Sl%Ipss9Fyz^ e= Tg[>@2!D/IYA)=McvϷ fb3>0;E>v3:yf+2&C854*Jm" fFѵw@T/XڢT ;al=bBCPw`i{!(>~lh^"Qyz7kEqf3RW`'zeEKnJ}koWЌ7ddžܦ^|$=Nu gSFO[<նQy,7)1וF7&yE{55)Ɲừ[q6YA9ؚZv:FS?VPn h3a\XȀ6.]u!0+B!fPwg>L0H#yWn SSU8Dm)2K|^>/6݅Ů(+e!ͭXˈg`.u l`Sݎ7{x(<=%7oyLsY_LY5}.^!)7Ods3LpS6 ׏ޱ8 E 5R*Shh.nfe^)n)9͛βy\ANAD#!Ϣo-amP֖8;Cdw7`}X2'-tONU@M}RņLב#po/3nz,c˃>9x G@_t;f=3&$- dҝnnv\\m Ӱt)dnXF%?# {[8Z~fz .PFMYT9bx޼1BjBļͪ0-pz A ۶v(wDnI2*ps+ꏔӹ ɼ8ۼ#ٛ/Ut1lLRwI# sV8ӽ/T.Zul|0EFf}L`NJi( r|26Է㢨ht6ۯ*\9\_p.9(͉u_c$.=!I {'ex9<$=G/bz}Ų5;orP0O%6zE׫avr?+JKQ#?~5{|p}ցJ ~.hqC7roh-iMDvje?F'۶Y:խ5oY`滑 LFDm2z0/ѡͬE/4-{!{ 퇘Cbڸ>,^ޗEug>Ocw3S0;~z]Sg`؟bw#4J1}ʿUZ%|=`(/Jch^W*<ɜMG{vOэЪ{L4.wR]vFv3`n 7؍ w=ɫ yzϱJͼU!Ӕ۩@@ ݜ1Mi$rEJ:CXT`r#%EG/< KǠfJeɲNq nUGV WB{]`i}y.USM7tyBb$f.k8qyQ'yj`Q|wHZp8qBRO6˱SXΕM* (hb9EQjWKca%Npc'b)Z*4p/o' [N/%|E-n.;A8lC/CLCJojT EzĐ jFHm4&ǰՇt{xp)F!^Rm`׍̶- uh /lǝ"vQnٶiU" [e hEF h8M.mwӮ~Kتf&oec(?I(YOg_sTg`Cq^GxQAgi?c=o6P b% GvYLje!k?᣻3ŇV)ex=U%p_6p:lEQ%,=.|5cthݨ͵GQG''=Cq(M(Ոa!3/ͶKG"a-V"pM<0I#F:LWKxj^;(e}N~S5I  _Eӆ)&,DRZLAԣv#SMSEOq&,u9L$M0TT.aÚx}V^@HBq-D"v^j6[s.Qj5UYz&"1trP3211D詧\UKO*|$JGǁq*a[eeEZ+&y7UǍtq"bVEM**(=Vqzफ़Lkz)4VZ:+QYu= =+mbr; -$EJ&Ar AD]BQh*:WS1b9I$+<'*r(BU8z)ha]ze: fȐ- V%3RwGV^ 5]!&%8:i3yzU(Fba#PRanKGD"'+[oQJԧ#^(Bѭ]nImTB~%q^6\t'&bĴYă(Uh"+bAB@Ktu)z )UfS viD2dPPĢB!zWTb;{ k?Њ?I[iX4ll`15GqXFm Jx*u)e0E'a!CʤuvYj2b5m TWp]5$yZ@W_]ƢNNeD,xL9u3Ul>,jJ ƅ?|ۮ3VJ5e X#n$'2]4™}Ԛ޷|}&a#BPqnX22jJ6;pY摌n@Nd,qy8Gߧ'umȡ|ԶXyI7@GWן,'d~11Qn?}~u&cr5hTDpԳir[:}WVJs@ p@VhUHW-zgpk i VdіiHeaYZyylvU@,T-3Qkg @P6elIK|.{_y##ImQǃ 8Hn#fuJ_b}|y[%yWfʾF) ysG#BԅqQE+$P^`NmW|h ڠKYY1ب?!m+zaNp|LjlLcl[BI:aE_^CUH ҍy뭭yQS%ƺu|TvUQPWح׀V6Mw-￾$}aԔµN6MT8XA2 _(/Nj%CAXjqG1jظoB934!TD R}~j w*(uSK@K?D]~UY 'aԊe x1EZ5V*r}hQrZߕR͇T ^1ɩ >5Ǧc}1* ȅ9VF!UZ _e%[sMҢk &i0a)[T # O0M t̯}n1qhT?!Y|7<ݨˎԪ,RW)\ᗻhg~EUWEWE- :oeO]mNkP*1ǔ]&nmAm{PVNణS,ތaa|^(0q.aIt#X@R{Bmu"|L@P]yE* zh=cI&.P)Bub*S*Jnuprcpb:K&@YL,U}Ej鐠[RD\`( -+k =l -jc.R&*AJ푢AFhtBQ<ۋ }wWŁvP%5>QCSm.y_X|Ul< |6 j[J^,)HrFU+肩S1npTk)]%ד?^fWޟ8޿,?/OsG(7x;G‹u^IR*툰E/R<0*?dZ(T\,]q0xX4z(lAQ*z'az4͊t#5}9=<9?PBW{/|$&?Qٶ8`VVzΈѨ(XtRRD),)S$|CC9ORFKA48 oXi;K3߉t0Qˣ+R,U>jV,ݙ/BɃC!IDqr9sd@.8/SK9!&?n[ v "w Oڸ98,K5fF3/9>T&ӟc)^'"q?#cVw9^A>dd\_'=#"WQiy;XJX%^',<8&0Hi|ڶ-ـ0%lhU\h}qڙ3Iη7~[΍~YN XDXk2(@a+䂐fPʯ L%>&Hߧza/(O4=Zr'~X197]aq,w2KqsHBtNɴs~= vAҘ0>+@_)4OC̑' FI9~P&EDysXZ<|!.@W5UUEY=* ¼ uuqb8V`YlE29muDE4PfɢS'lAVsZ9 \5;Fx8qR6  lWm02hc[ʁ=wz`\?-jӬyת!-oi?|~J%롙U3!+>rGp~k{N{+eYߒ2} Cs24FpicҀ/y.j|Ȝ-{1t"6h |cy(K 8v+-/N罫 Ct `b,,=1.h1a`6Un˱؝Qb,-*T A2><`xx,7ˌEAqՈLB2DF`bH[x=_Ybݰ0b!`q,0i?2`?(=͔u=}Jvm DSd:'k#/ >#+n-X25`2$g]"qG@߻;|_CZ&jMħ=[9 hH63<`_1լ͗~xO_1L*fO.D*E\`kՊu_?92[ =)N|!"D)TpL -Yf }'\_;7c55r+#+5Ǧ,t; `hl0&AhjрΌ],X1$y`*LX.u@#/$I0(.u뢺E^Oja@@Q͋\ c0[ 'k@>2Yu(%<./7duâ+}(L6s#țr̓7Fu^>EeS[wyQ? ;}m,>|Dnga+~3Õ߮NSh'/:4ꨑ$Q.FPMrŖLrju^}r|F+>[:s=;^S r{3<ܸ =u4Ajvsr}d3ݳK֫bX^wioQ. V40j1dĻAԤvcQի$իchZfc H"$ 4"=~s1~y{G['b('d~ [&Tۛ!OCGxq5{Nȥkڭ0-{o 윲)C#b&l ›S6gx ^(Xo{⯽9TBJp~+-[|-=HR(''zbT[V #! ^Xթ첯27T\4/glhJC,c@WM`)V|?cc7;1B@SeC PG4(R)wp9OPTh=ԃg'u P!=Vn+fBl6RU4-JeÍ?C/vRއ6GEL0p˴\ݤ| YӶJvUpU8cjXK+eAAdpM|ݪ{Py|5x)?GOrq8H G 胄Sm0<) @ai_y_Κ@pKS_FT2`S͐1WWrD8Yt 婘P~wmp3nuѡU;r,D˅$)˓eBJT/I ŊQUt b\ U8Cw@797IFaf\1>Z8Z0"n&0 OK#ϖ7A>/DQ47ئs#p;+Vr&5fׄP?tSed]%΃ٳ1 ahN{1(O.YU%^ b/=ӻ늜zi=mYV4j,B׵캍Z[i@F#AC#!SxjGm* |xXUCni+L!4ۖz|wMRPZb)ƯkM38' S' W%ᣚp LE_Mh#y42{DϐzzY;B龺iF4>Ss7~ 3J 3UlEiCGngx.\H 63:s?Kt1`_f{9$@->Dp#)a@9  %#?oX!*ﺳo937AZEjV0*cBBupjry4"DkVR-[G-3$76((u0B,(ŧ*=Ƭ-џDV_JjYKiq6B[GKE00CC]$Z9vI1XJiSY9e DZ,V2s'.Ιhnͭt1 Y~gID؈jDPb9ׯP/_/^)1SA3jN#DsQFnGʷ&PFCFᏨջU͊xzX+QbeŮM[3sS b L۝1QTŵP/$ 2-((&\lI\(;z]ʖ0B-J8b;ꖳngQo#B }ȇI`w QnvM!u;*DW]S <^ ,WT9~.,9Q^0P5@oQ:m9^0%,lkWHZBTu(]kFo ZXx#HJT=Z 32RDFc65v &}bym~uTPn%ȢƸp㋭}V7!uƛioi# {kU24*vc=E͛L.ّ~v3##×eYvÈ4jeS_U;h{#h=C.Gs9߱GFmshcv;1 ^T u?)pHo6~ ¾Wɏ$eZձA~k4nidB().>[7Ysc35uk xD(C J=,`MҰ%86Chz?Syϑ:ӔhH4IHtQŰ4& dv|gN_h,&d&{u' PNɸrQge~"! trVAlyy;(PBOo(+W P 5 ]'½)#X"l?մÙ$~ PWlUD67Ѳu߮B<GP&% =iVV]MZ1Gʅ7~P$=tKB?05{g2i<+ W,Ƙ?G~W3CFFҩ\NByȃwFk/mpJZqMl_2uȍELmWfhZLjG%@u6A:C*uzYږCf2%c7Fa]!RQDK>N@ ~1{؃bҨ~ŋIaTS+71# Xś]JA!~8,cQ^EG\p|J-lzVy ZV]ؑ?f>H Hdg>͎waD?x*Zr}Kܚiko9]֓oHWΈJ#a%0s( Z(mr+;c7όJ7:5%rŴ.V/}n~jzÓQUNg6λ.ÞYM41)Xj%Ƭuckהn`v*an!@y9!H=P0XG7&Fq 7K(lC mC^RsD2;.`MYيH(,/H}J_XJmۜjG ,Js"P06#HU=,%4lv=~dq _;e=6STؓ) Ic8_bs/V@RR񈜞ˬX,X`tXb x=s`1?d`dTߨM?,jJS?j][ sr v`D5׆(:ڴQu,f'_2bgrmZ4 Cԓd$OǐJ}cĎ 7՜pa0c1Pˆ@!qoX:~巨-yL߃MK"8ʹlBbUv'7e̙wL9%Z6=6*D,l_Z4GMQv ,Nm?B[϶nL 6@^CȨP2oሲCba3uW1kK8v.;Mz-5aLkMws8H8|K_\ȶɔNpyU;aZ Z}́ ? [gغPM.$Co" o k!s#*|# Fc,Gc:2>2g E-H9FZ(4|Ke=]l폰K yes_G\q <A̳Be~(FT2We-P7 #YW=o0el2'Fa,3d j< tW0=R躾#aA54W[]Wu=di2T.h|>HE-Le#**8T X` rs3ӽT$3 k-ן)P,YDofP:9n>S=yώXf6Kkž{F%d{rܐF̗{!SH ȿ7ht,&eZH翱ˏG7~o8@]Y]z\QIgtחe6iSj-s,VT^ 's[Xv'`\`GߤH .`6) 1fy°y(ĕUB '8>&VI}ig8z>a[vqx` e*(  <,EH/)11K\Q7er eCUѧLfNO |Cl/G%]p&t~.M}ŭVS}چ@R ̆ED.\*w>P=XJAV0 }8W/K){H+u玶q"'_K51%#V|n\U`'s~W/ c-/BixRlZg NI^DN1V߼2Gقo]@EN?6$~#6YTzj]uzCF ?G;52x5}TG)TXP~H}+<?r `XŅ"PF2PS1+= W atr(3hW vw<}+s"JYAN# jXjn®Bj>V^~^uXIrTv$GTⷾR!dELeC3ZQf=́ Xe-TasUPukrx',pZs(mrduY_k(>#$ S AHRӍ4MLKIF~ e<\eXas26YEbk({ ;L'6mZG@zE*7ȜtlޙlXo6c yʠ|$I6o zq5f4wY7Hx}*r2DȎևCѳ5 wg7uG"vm^@&U\2Jugu-v۵3FA-\e kXË%bja]#F0bHQ; yf{z[0z}.!"bR2=e>=qG>Oe22ϡ#6v~lP>][1"0/]b Vk6Wte␜Y@Dȱ_^~dpʇb`(ñ!0{J(2M~RU /|?$8@3%/2yr_,afVѰAnP0S^[/FyK|/+]U 7Ow8E h#i+_1i# }oP+p=KVRXʼno% 4`Vo::GAXѱKUMXZZM3GlX`[)ů R.g'&{T)jnW%䪪?An1h!XJ26{ODdZZ̮9{V?wW5 \_*/r\ OHQE㨀V3@ &j0K j[_ n旟24\ [{9N?)TŒPX? V4"uAd2*ٌLT_w=-eZPx`J~s1b9h ENl%{STA^)bwSw;3DNEc ҥB[-uo:@=]^/GxnגՄ %g޸ީpnidқOֲM]YEӷªwS:Mb[b Pcیd-E?6TĞ 1,7X3q^k)V8i@@ `CEbg|UEklw@[h,^ gU.PG/+pc$Gmh]q (JgU ѥ89|{0S[;UQ\\ZdX~13lu6Zb^~~qO)"6~yߢ1+|$`Eá)55ӛ5i~IU٫Ͽ.3pT\bγ5omߦs>ע.\c\yϝae?n])L 繒pr?WH1ib ɔ9\B)Cts4NʾՕR[,fsٚ 2KԒLBfwgnxT3:S)Bxr#L Pbf3t^̠#ӿgxH|2|1xI^۟VR>rmXZL|3?Jcr=#Q<@ Z=;C_5e3)n'vBp[K8-Yt(@cA y\ at!z! z.HHMQNPӗgĮV9v4l8,R%Ȓm (D!S*%6չDAPkĀI i+tzi90u7kfj&XMRBlAd-YzSoY KSk"b7Hrn?H mmiX$¶tiE8!IT**V+W`8+#qmR1rճtj[9^rVk6ӏo1:c>*W*p2jYgǴ-/V$ho%{yhs!WiNQlXW!BMoiݪ*Qe'K9XKN_HA =qzی)b& (Erp|r}j;@ >6\ELWCS;X{7I,!Z7̍%:cel3:4hM[Ű} U6Ă:'ؽ&Q0u`DyUQ0YHcǥ1Pw?=Bp/>dS,,bfexȭV_dn CQW_$@9eo , @,d\U[9U i,|EUC_p -FSiҼL韹YfMwod8XV#DHrҬ|4(*w>]~_??S\N\W(P2/j>塌!k|r=ڹ iOVpx*jFڛM* qĨp7hy>1='¨jqc0%,.j/+S 0` `ȥbh& ŷHrwYL] nbiV'h?';bYET$KjU<vbv57o cʣ!W?s* X|;^UU}9>qYP(wr:]Wj|אQy\&rDV.;WR<":=#G(aN2b\[?.q}~L7!J]v[r1=F`6U2s Q%/_^`v7sl}$6{5L2*WMefW>lbHPfw**"KwvT88)M!3< ">]. `,reQ=^\uC^Ms{U7:U/{h9OYI y@}lA,WnaȽ?hDT?'9FVbael=޼1K-ͬtӯ Lj96D{ɷMB,է(o՛da JTΞ]]00&tM ŋvpc X/ C޺<__( 4\ϼl7snp"2bBoQkldr{ =S$SSS(+iUXX dU',b%k@1FABI R(O( VhU>+ȩy"$.(\ #|B >'8XW]@} EaK 7R\L8H}lJ.t3ۨ~ ڠDvocKqLPMk|uA&+p(wc-oJeLs֟Yp׷Ro?^ PlTfnR ALY $ad>o@K)-%ԡ с?1Iw,Pt'ԃjI._F-okg0>Csك,b*[u&(:Sg٢УP2q~dtED˚X[}!M xGzF5;z,a&= Ԯ`c)h:˾Ӗ6#ɨhBvZY/F֖ť0[d尷p匔ARz:Ʋ7)q6/Q׫S,.wNpө*OvGx:eGd%VXI-ҾV-MUW0 e "(+#P;,C"g԰B&} N lUZ{B۔1Ǣ|+e#Pvm*sf.9_Y[=1;Z쭌MnT$iNlk$2ɽ#73O_F VnUq½"6©+47|0Ra+n}(âJ-")[UO/*ʙ2b,˕g/{Y7.nR Dh' AcF&gxLD(H* 0Rqq5PM;wZa}c{%N3i9Co)844G$)4F`leH'Zʩ)Wm}7w'8!H)RIqTPFaMDMJN/DR]m%@3b$T q@ @OC_GZ=LgٙM|ݶߌss7&10UNՊx*쮂ԋbzLK#c1[P2g>P&ED8V6:uwEU#Upozx^R֥X)ӥZ`Y;m%pޮyV<{+$@T'X( 4n[ ŋ .^/_3'.~տlwQn ,Os ւyԴ ّ?Ÿ u&p @^/DYs(;7AR/o¸ Akb˗F978˷3a{e/N W *Q8_lU e,ׁ Bڃc/E[--* s?&.Nu g6:Y0ﻣ~>ktYsO2N{xF&>ai ?P?ƙ^oty?11!XgJfYp /tb,L2i9a\'UdLyLVK A2EbRPXSJqFȭTXXm9Xp>JsMf½ i@81F ~o2D2 Cɽy_ڢ3WQ՗уdb>bhTK3Gj gUbXYuo "XF$_YDoIE8 zVgB&.CO Ө//Y*4ѡShm(fdm)Ӄcٖ oaN~/PWltCa59]rz;Wg|wz"t4)bJ"cB1+O,Xf3'P``f1d2q+cZ=vSM :k>bq~ ̒ITdiSHpoh-P@fҠfzK]|F$ڌ*0UrO+ m1"MdQS_Ỏttew~Y4䁝L܇/آ?Ah&LAT3\ Z>D2~'^:ɱhZ|!+ͱ !-W܅j;;NEazq #\ 4F|dܦT\*^QT68)ׅT$^HafՌyܗr&0`ɕYMJcHYqv6 x|E\Q;!]Md5lAw?p_#u/a7ݪy7ԭVuK'YHLcGim"=ep\sZNLU U`摾`JD@J_ cAA"9y8Qu6l&h~U%0|| px 9&^N鄪|tE`: լ7E^sk]aNOcuJM禼:_8GYǐϤ]uvO=aA|~NFgvEpٓ˘K=;wnc ]e`q2~i~5ʇ44H1%SxK(I߶66 \;qxb}/m7bV !7~֪\m.@4HuyNIwY K#uwP+ g;A S7uWoBx?H29-[:ڕQ2Xhp٢nbeqP9  U9;z ~D*w 9 9Vݮ?~pv,'͌İ^_ 藶J9ŕxɨԡy".Bsam}=n8h p]Ru( $^=#)BEO1t! Qwg/ؘYc75MU}UTycc!uS4E9Cĉ?tScFSaXc~e(yD Ep0aq||JЎǰwd(O^ R`d>ltL<8Qe5(Ms֎޲ XMG xHb58!8hI;BNEu4Kk?(Px\Y^y`A){CfES.v c )kծ%ڶbP #𵕸:)=h[ݎV+4EtP!PP?Sٴ[VEop ou0m"{q86V E'N[Y0^dq_@ $6 g=/1^=T|.v38j/:๲*[ґc1ByV$ Eţ\ c0qI Juw`~śްsjP3 (H`y3Y<@Z@G2@p:|[ =l;ښGbVԗ ]LySɩAV!WA>o#Mj`-Wsި.Ø-p|%x{Q&FO 7Y-lN1u n,jWr4ǜU lA^v=@3g*yR6j|X5la`z*y*g U WAї"ٗ`v Z2^n(У56ag4{) d\"L@RB/UJ̚#)\} \lgr&S|wI9,E1Ht@DQ~4(["xB!0 :a+iX>?>?lI*ȑ:;J7ښB#ABߡ~ߋ t)JcS5 4-}5">j^VE:WόTȉ-BזOÉ;[l]M<Ad9]ʀV|hݗFk Ӄ70h#'{@ژwzz S]_BLFyAJ0|S 6A,L06| !9A (ӑ,G2P~e=άry܄<8$p ⨃) Vb<*+Jx"S4?օpWTZEt' ]&/;"Ct6fjyU9ChҨwmHmu̬/j"M! 8OpJ}׬:7l2{E٢[Wǁ!Zm`HCkmY Fb\}otNXp66 h晣S ERxe6kOWTIͯį1!/ØA>CWWkl[#  {4LTxbieQWct8 (S瘊ޞ)8 8V|a;)2+Vɭh0^6-eF 2 Q(ɰـ̝Dc`.4?ᗥw=<(167q3ՑOȶʁ(&3P=J=u:yD5 EB/Zys}d'>%* K`ʮ=Q/oTN17:9lTU\6 7ʪyKN Ei0mdƚso?HMRTu$/Prf,(*~d+n __K!p$O)tÕاiLo&F37>^Ux- fX$Q* g#*Z#\H% e!Ϧ)r{6.g=<*!(,Oa 5 A ^X Ujւh`jq o"ɡ~Ux۾И끮yO7 Y]%FZIK(>ZG{R9s&vle^N%M^ĉq$_!-| D P,266s,rn Y {5Z`爗 7j6ȸӍɸ;]mWWnӜx1KcYՇ'.KQ*$m?nZp~I߻smNrSQ]!@VLqK2eMMZ.5pxŽ 8k(w`Օ/`xoʺvt1sB?b h v0)8B1y5Y=x'xw &[0`ɨfi:ѫV͛AZv jHHfx>V:?͒|/|Ӧ;tӿ`5"R8جVFIG;fL'?FzK2;j$׋}ҿɹ A^N~GYQ-㘪'6 XQ Iܕp^ IŒ˻#w~A`~Q_oe w1XjUō3YHLurq|T] Ѯ?ÙTص`o}g@"6,Qʬ^Bjl2VPA(\RhdX쯷2[S"Lt,JN覯/ 02CSWUc~9@fN{d#PI޹5Baz74MJXbP`=/WX-Z@^e[Qf5ͳfԨi|QkBa+ Z?@䐓}ң/M]^M;챘.%[(`mUYJGb,6*0`kuggo%/)Gk]%sR֥T)-#m];4L}ZQDq뎾8;BSGG14G|gOe< X,=.2c%d? ڈ,cv,Yn]V(aS`8\#F=J]_bruo-Z >Dd"D>ppsbMjS 8*g\irjSE0#pnâMiI,I-@t@C-OʁUx' ɺ#/x3_ u1YD$'H(:%k E4 5ŵ4>d\v!U'w}/˯3tD8^E+)Er䪵jWV.80*`_H(N|:tN9.2TX3=G^Y0cjyVXGsܧF3u>VpXÄbd<^osȏNF``-; .)t8+`gX qE Ht$Xʯ(/f~ׂ8\H:-i  rԓTgjN" |g-(+=z9Ң|3Ы,=ԁq=-sv`kSGh roJq'x$T63:yR SgقijlBm\XDY' z4*12I@хT%һ?%.^/;|z0: qv]m =45OHAu,6uUu[(A Y@EFzfnG(v X#^n@i␭"eK9:]2'kQkr2?P)mycuJۅf5OǭӁ;TUTUY\zXU0bab/y#\/,tSIRlnW1WecbBuHP,* cd8 >;:}j=oKڧ!BG;>b9SL;!Hv;0m#iW2P&"i -sft6Qߪ'~appr>_8=:ztm0nJV@RԹy$T#:DY$+P!$8?W|,R1Vn)kׂr4RSSiO,~]?=;Sgfy-H|,qK{aW@{ t?dÝgB(!0ƒe{>qRI2,RSZ`.FR͛͠6jWcoZе&D8f4(v4q G^ouFa͓ @tldJqx`5֯YAl{J13F.@uN9ayuv9UV벌 `'X zHàE@(I!J Eҿ/A^/(e\f cNi Sm v |ƹw?C-ECV^ UP3E!uw.j^GMHDkpZV%U%ش>!t,=kA9D Q?lAa̓ºuD!ܘ=/psuڳ9J;Ŝ7]}ֿts۔ww@+u[ WHN<(}Ya}T-W#b7?Oq--EPֆm7{y<苤C1݉X%2jm\zA$k`DWOLִ)T-w=0ni}?ܜ9v+Pn"MHv!x ԅ'S(bL .1{$́h7}1_Nf%I #,i 4Z&m;ðR]\-Z 0(.w9 cW ó$&Ph7'>wq=Cn~~o3 vU[ $jb+W[ߘ,Ÿa|5KmyAt¥jLRutϟf_<(S|o ,j尲rFwI|[A_xl xz3=: Cqavz1t+?~vT -&]&ܴlG@H.ifմԬT~'ӯ1/ba_$ĥf sIcʉ:lg*:e(.sPPj[d%\.PT-`,5JCNmlv =+ɩ0ɍ*||S:HxY,bc6:qd.bjQEM!X#pMamz\GaZ[.=cT>9w[#,CðA<ɕPNTF 4BY]Z].&R䯱L6;'hTume ĵ똔xiZjޯ(ح^u)V/;q`Y=w{4F݁ 'he{tQvD:y"HbtE2-[L{Q7}-Pl% .:4{8NqJP> @m^8iF=Z(,RW$u-D4D"#9TMݔ' (0aD :"ޚs<<?TxD΋Z}I:{Op?r*>{P6GT v//S1$uϫob* B\b/e!d(HÒ6ge3e8­MRP9C,]WɏH @\r3uQGw Ƙ|Qqw^g!"iFZ(fsLPwdzJi^&j䀗mgZZB쬷[. cvH)a$PF(Jc#LC׀?'"q߉1?(TUǢNUt{KA_Ʉ`2c !? ߳wKBE:xin1b|( fC7"|TY}!|h~/DuyGt4 U}O)epj}ܲɆ_qc}W֎f$5;S!d 5 7hHzkMzafAb|uvi0JEV^1>ϛY26Q|G6( =9pE csa~_/oứ|>g,ͪr\\)bY&lhA>_B5/"yz _J*+%]?!\+I^ξ (Z;N@6FC`2dݓ);L2Iʯ$Ⱦ==>>>@Y$mb\ދuI!4&F2/1Gn:8omx⸮d$ՏpĞHy| /<~M)YH"=8`7Z rč[ޞq+ 4 J' #eG_Pq!>,koB+s4Tgow5\X~b%Etcr_W`lzffWέ QwSqoÊ==>Ox7w"鏫O<+f)ZvD/N =f[{3 8,Z-^/}X Le-P͠ѣOaSFbX[\fd0wӠ]bç:0_t)Et&k#U%[L6O` čڋ9>دS{¯AuC 8wNCD0qUIAh/*L2V;><1Vrwy7r+w]\o@8[ ~99~6g')mNGޢxk8u TXḳ՝"<r$IdGDń4u~J ]̃S_.\=AVK @BbD/Ƴܨg W=p5Χu?Ó;t8N86:V`*Qu:Eke#~]K5z#=epP^DXY2pL/2[p<] 64h)b12!qI?Gny |i?~(\FG.6>HHS;z ͡CԻ{cXV3F /Xw 5;lw[3_庾l"fAE1erz3ջI^(.Xv-@X8 D8"X[) Ɯkpct`n̽y7܎"71˝fO\Y'0Y1'ԖwZO{8j:y:gh$2cZJ26hRPn)&D{*. q{ZAD8# GҝϬuW$|ӎBYJ}Esq_b!<γ5Y1%.AfdEЋ`j[źQ,@lZph+-ZA\:~]/`VH3A ͛EE@׃9w j =ea[= lL,ަ>_0TmO6Q~Mع,`\ZQ<'&=~'O36ys#`Jc\E1ޗ A:X9)xLBJu?ү{|8&ay9NHt>^[ovP!iv;*g T}*8m; G6*-N}Sܲ2J]X3#Ւs@9+R7[س *$٢{4ƻkE*bqǐҽ1`,SI":qA(ROR@RJPUQS_ؔ~Z0r\:y%4[t?/Nu..͡;-WA DZ6kѪy=T_Zq<[1tvTPϹJ}}y"u!IG e|boF bz? t`na*~Cɜc %Sq0+qO%/bSCoy4%Н!I 9m4Emn+pW$U/ Loc 'tZC# s/KR`UES_7|=zU轻JҔPȑ}&li,^ݥIȱq,RDThȐ*Hed( Sq[0&D^It&`Aur`oY^w['݂(\q:x#>Z!^mS.e.9 ?΄E C1#\F)1zs_MHu(u+dQ>TN7wz#H.g0ZK'Cś.pZ9F# "/-ɨ9x-'ly" ,O_j,Hm(ܲgSζ<)Av*8/OCc秓'x!a'=,Yթ_UxQ@aYS٪QkD5y.X˕z{;p-1Ս`Q ek<ײz{5ԉSVKUe(r8\,XbŎ並Ixj~l\q;.G:~F8Xّ@9&n嶊wTԚ^ofI)Q:~+0N7]igJD2!d9n@YHxa j i``u* lub]jkJBL8=X "Ti?/ۋTjߩQΩr߀.| wa>8s'w՟ʋ]rT-_|;:zz=pVd'u >Rf}gN4"w1`'p[1iJ sr Mt,6zh+@}4pO Ol&8*$ hޒ&hoʒz>9{`x(䛑9Q=E W*Hb3-CApeq^ZZZ[嵵Uq9*HeRsKp |b|*qZ< #?@Anz_a=GUOET1M/+p/Z^.fw0 w03J8#1OqcxLhq]DEtAeg+aNghC~1va, 2qeL"-T$·2sd|G¢T8Y|q6kS/#P7KgoxB1{R?xܸo4')5[ג<18%AHJw)>3^`m@7DoǾl3%{z0rJ+wܵ2V]_S*kS72#Π/svx >˘p;fa)z3/*[Rp]~i"a|-PVIXp?/4= T $P@( >Tz4QJ$%J*4:n}=<{{{tսySLdsfmn=lh8ǹhOmnsLg1wrT:.n%uɆbDzyWZnٶfjW,7ݏEo{7qsٽf^72sonos:vory+^^oc\wOKm'`=oeXS;{q};`r" <ٽnNG:=zyׇ'u.|(P x;}w*\seٺwŤݶWwv.ʛ۹Yrxo ]3sWvw| r|}>}ԻvP(M d JJR@h$TRcEP%%QZk*T %E i^xzN圃C=`s=|g={03lC={p=}}`Ͻuu.vKǞi{]n8wy]4W݆هB t4$-`f;{o(JH*}{دCiC{C7Q;{pvεwb]<|_{nXftes;9uVskcssly=x@tK^mͧmܧ..f1u]̫%ܝnn:7]w]̻D]Ӭ-h (ٮ>}gnu"Cy:AGC6{ڼ.図+S^rG]]n:^ۣvwu-kkݦv6n۸vm;-lmqmmҽnӝ˜km4ܮ]NNqۗ+n6][qqrW{ul۳^7nۉg9˹Λ]N\9rcuǥw)v7]ZNM]r;z\utO{ަsj!FL ! 4i#L #0L&`LL`046!%J@C4ɦCFd=@M0LCFF IiL&4d4 DhhM44L&L LC #&&&ML&S%O)$44FLL›&FhS25 F&zɦ6&)A aSCCi4=&F d4$L d&&& ɑ40&h`&ihѓC 4 2 )  4LLO`So(vEv'v_>yUg$8!B S0E{yǼu^AAzI$IUUUTEUUUUUTEUTEUUUUUUUUUUUDUUTEUDUUTEUUUUUUUUUTEUUTEUUUUUUUUUUTEUUUUUUDUTEUUUUUUUDUUUUUUUDUDUDTEUUUUUDUUUUUUUUDUTDEDTETEUTEUUUUDUUDUUUUUUUUUTEUUUUUUDUUUUUUUUTEDUUTDtSZZւ J9J G$T @B U71,#wIDjsph8XeO@bv4MQ=F.dBʠa꽅}Hvqd0ݒlY#joOgJ ][\|$65X-9aΉ{ؾ@2i^op\yw{G{5Vn.v?.M#R׭|gKPE3Eb=oʰYM4`\uV=w~ ŧEe_[3TW-H)d<7!9]?TFJ@P?{L9%c j_Ee@c]/0/ ?#ﲐyhG5cTsŸ |/L3]{Pȣ}`$} Y >l_! >QN$y,gyԂWw{_) ?K/X;) CpkAO1{b7:|nh}}ڼ\*;o;0f1<˺ av:1aXI>Z;LسϦɲ? zɭ-X&;@LHT?VW? יNta;R]܃T|^_泆{:I5+u3M}Uq-le6 W+vG?/_wo> @Po1>Mz {_yߏI8p)6Z[z]-2xU+;~3@6 -ۺ})lەIꈞ@H5Lk 0R/o2l +ApW 71f1f2>λ>0u!߉"wW}4>p9=ֶ-E^ HCVUDrUP_har$t޹ 煲dWklشr5#[ 3u(ucSқ^5R{jkD$d#L,%KAW}[9vzTo=aFe T > .Ob#6dxÇMc8By6k#Xnoa 82rQB&:ZCHi|r]ͯrH&nj`{kF9cyZ%;4"( Af-LOa0~W9ؖmF=.p r3,U8+`گu}hJV8ĴZVpIdD ~K!M%SxܖDuBV^5컯eʳֺ+pܿl+W~ł׷yr/[ dBd *{ul4ny}qu{e#X o"bAnI'C{#kfpuf-7QƎ\˽wDY,ĮS]9H}ݕ:e܁Ԕ)?Hc4CEO<' #־Jھ!}eC^XI7]yJK*zѐ` +ӫL;9Ң#j fzwKѺvF݀=}_IJ+Lo&ϽU6lv7r _o҆|?qX^"7M-ରG,ڰ̣mRn+ny^f(!D{+@NrB2hL>;EW_PkgwaNJöe|x ZcN?$Dn*.2b/VNIvu<ؿ~kh"e1ؖ. # wP"fC\/"yg./ e>gzIe= [ED'fHm;E M #'>rFbKfwg}Az,?~|A $Iуv YN3 Nf:*hTJO| Qhܹ"Bjc# f1Ok/"~SccgƂKn{N(:z o ^l@P_b=X)ފꏠIefZPįvT2~Q_X4}: kW@k~;jR*ѕQB #_5l}2)1,s8~Dmte$c @D;G{󦊃ܛ#z:K,n}Ѭy9e*WK6C/A&͗~d@H(줹 l|ki9nEr3 eUUk,\c NMa睛Wťf(1dW:>j4/Y/QN/TQ,BlyROwR.ه$h0WGCx=41Uč@ŅTJmIk@sDV:/G Iiey|_+\2Ow-/ 't ţ? EGOɿ, ]4`?6~=9~#=XةҤ.htx&܌IM(_8k62l O+n~09E՛3^~g::}1P88 ހeǼz{xʯ}M2#0yUgt{)N2Owt9a 44^M_3̟߯fӂ_ ޑ}̿x m6eo_p}rxt_~ V˷ﺆIKcP #{u )ܤVGĈ*SɅ8~=6X#JRD>GO`?|pq?yӓ?!1Iv7`cX#QF8/뻲 UiChQLclV]UHZrr)Ym=h3b=6NTt.: 1?4\1Yv'QbQlԺrjժq%(RSfBO t_lS;ᯇ9qCoHLPW8uPչ_hG;LqoO"bӿ`ZNw nQH2jWjEI vp!+^2{L{,/-B5ϋrJ ׁ}I Tڢ,qR:($WtǼ2z'=ؽokpSq CBOm N#\ÙYPyC2'UxȮEMVF6@:kq]Dc ]df=KrvǓPpii!(DBnG۱^٭&bCM=#z&OM.";"pxO2euo^9LŽ#>JT9NcJV8L #5z7i.6_f8}q9'=69^Ut UVIs<`dv>7o+=n^/̋.^vNSmaV(uݑAaN:6|*ĸP+hܥpŖCḲTDh[ U O{qO08 lI7 6|WoʽSg`K#ңTټva.6p`YA9~RX 0Sxqr\xWN,mmY)a70-C{)hAw6s2-Ώ=8%oH4VX'>bY݈fy zۀoG<6фepO;aV{6`ROG~dwJm bVUm睇*L7Q;ψk1M߻h&ngey1qCc]#/DT|Gb7 6_ma7cg,~sX%-yzl"LC:Eu%R`p;pGn9ȏK6}wY|`ߊl,T-> P n~qUdA wK0QWa5wrٔ-l#gHD~-&$Fw~R5}x|Q@t7BzFp8RŽ:I%7Ř0{°+/&ŪU-,N.eɄ uz hx,8oݷӛFE-Xk_' `am'ld){O[tTV[LV><>E,&7I 77sASx 4!()5;_MXC,-_OG)wAP@ |P ]@/?75FS]ֵ&^W$+Z;w24E#74$\W# a kTlY%܆)?Šo n'>s/wT_glyOy1.>Ǩ0fe2uꔵԇ>hQjδ+eRdݬvW\Sn{^>13qE<dfbQ}1Cڷu) lEZF^EP̗gpD__'9ӻӠT'u0quoQ~nn㞴wXߓs~n8D^3RH^w ﭏ8;ջxoZ2tӐD=պfVQӬj5Kצi GKfH2眏xB,lVIڶ */Ut=zA/ m< :΀a>Ļ?#+9qSzp0w;n&9,0z9׭A-|YgJJbo㕕7pW_ TSn }ʷٖȨA0lΎjϖʄt5{3YTгwPL:ɠz5jQkisGИ `b]g8uB@R!1vӕ49J_֏Tǖݢe6bMto#XyZCîxg"Ym[ĈA};x|ȋUȔqV+IȻ/o3>?8՟gXdL-puvpC2똪%NK=p@EVm{S aUe?!>7.?Ep2 T$RzhްzW]B_TrG֐/!Ma5RmO-2$̗ӃcՒ*H}8LJ|pV'eT)9и~aW`7㑡<.vRΰ:uU7G =G_>$'Cx=dP V!5#Ezu^`MkQS-GxC:ʆmqf4U+OKDlX4~g0|pO2V^Vv]_W5 )`M yG1Q[d1P~(~++/#?eMZ>'ʓ{Uvp(H,`ZwgR؇mmM ;мy:}I(wF9r$ FZb/pw/m6U~˵w={+O{/"UpmU+r6Q5ugRϲ$I)vQTЅx{b-Bw+ʈDH-M OIk 0Pbn.6{І$012/'C-y; Z]ZzH]ЮnnڭHj6u,YZZkF2a;鐌x!d尋p/}7xZ/Hl?/_>?Mo:qjDތSL&܇1v 9D؝W#_23<ݙ1*#xU}2_du'Yw>rCo3`w,?A+pK#yQkap/þpDl|riznje=uwۦ'ւӞxS1׎=>j70ax^]?AavYvq w']-uvKX.{-n~G͌) 0}ԝD6Pq?]+ӣsuE*/΂clsٍ:e"$DModRj]xf%ީ6ʓ-hgy7pc5DȇR-nOx?\:,F~}"h]_T<6Ht)h=XSiye{ۈcw4;"-?$ȱK˨p>MOg +^ɉ]-a_Ew_Ѳqp &[ e>Q@u o9, Oh;SAU"?CJO{쨨H$l˻,AfFFz#^S&1dwe`j'Aƿ{eȜaD<}_7Uv(DMK*w 'ş{bc FDO|&B;l/īr~b!^Ec`d˻8@ZYh}nXG:gX/w?N@7ͧDAmD(xxPq}C[=W6/ շ Ľؼ~ݺ @U7lAf(}iXtg>e}7,z1tĶ?qM=_Vo(Y~TUh:fpQGnybBi{n+)GSBe~-Mp;i}DE|Z֘ďa'ӘK??N%m 3VGxy?tP2q}%0ǭLK{pzzzyypYQTĖ|pqmNV*GX[kQ7q%} R< }tǿ>"e;BV:7[U濃^b3<+L\ƔgJo}A䫧 ɿҶekXſҎ)۬9:97bn3>3 `}=0N\Hӗ2<ƃBɍ J[3RL|=C ~O?XXmCo/M] bQ|<ǧ`sj].yܣׇ:u:Y>;K2^.?McHows֊BĜ+\xOMm_Ruc0{.k5b}V3gxZijVt#YZh{Xe<{ig"nh]2mMtT<>!_/@mAPPGԊx,3H1fwN u%҉(K0S7AU #v;;=q]R+Ō1"U W*DɿɉdĹ<(_I+yߋ93 弼vbryJy&i!@Ek;uM}x…fom+*}V7SjˣD|*}׽u%\w[U9]iR_ɒď"z_ڄ׏+@z9KO䛡R[v{񁲏8+w>RGYB @Y(aB JE QT @03pZ \VV`cs" * dU3P1 kY2diqcMDQKkPd@P"dA+P`#  !'pnY+p[5 1U:Vf cV<uLPU1.DV~AΨ#(*R*JT*K% DA^ EVD}*0HIw5ڿϏ6l0[^K@Fl6W[DGiիUչN}N*5էp`!q};'Nv|&md˦mRVQS+]:Do̹lLҶ6E1mo_[_[}[5^kV۩ŏsoo7yi<7g(05}ޖ\6} iM?=^_P-n*l=}jZV;?DY͞H)(!z9 BBAV:AQQQQ:PvuD=5555==;=31tbaJƥ…T!T,R'caAEQ Yn@HI @ PFI!<ܿq@U ,n/D`3HcA_ 2\KIڨc D@@ GNPTYuc_a  (#(#!p04iЌv"dƢr @>ڂ4Miqjɯ!gtDcxZ^t]*.?ӢAt"ʤ<}A$PFPBI۾H*24U.F#h?Ӡtn]hX% "Cʱ^7ƼR؉A@D4LÞwT,X ;U2S `A?']-cCT.(c\`3ˀYd" 4E)! "և*#%% (#XJ #p@٘PJ +L!F*2Ȉ؊B(HB/D`<psof$Ʉ2#H iR0Y $3~"h2! 2!!" #EFH H, bQ$F/B '?$8E i.,j:r_5 H44'H55o pBI$8(BHI@$YN @!8YPm43[ hE@\@Z؆5Y WABK°!. "  Ȇ(8(ZHH!# o? 8T$dTP L8 h#+HȊHQC.LEmI!$ƂBAP*Ipt/BDTUq"&FETEQ- @BGJ(FM8P16tQRT2 !P**$J4BA$YT !hKfD, ( i\zu0n$&T` A 1lXL$FE:SB *D]ti1qH?r`0 $g B:Xm#M-Lx%7HD=+> U?@(:4" +Hrm$@$RAPUBj9%6kBHDT':u5Ъhh* 4SAP"2 }TDIB")RY:*B(#䀆F C`thJHXH@hbB|hFS !e!Ұ$z{6IݪDaPHfu_1X}%ZdF'"Dd@vZ>ϧ|VdHsQXeDlż¤"I{!B!-0UQWAtiTQ@]*?M"?өWο!.o4 @1wR%0 屠xC ohHNѡjBH{/F9hlIQ=MFD7*?:F/#kP:Ҩ] #ko*:4 @FA !(6/5 ҠtHtYԐIHCA.7@!o(Ծh]jM*@)(Rmt*F+$^p(`VzG @cD|| 0\TB*h~! #V~@֎)Ƥ"XJI% B~4@kJhUˈ;I!$22juHk? KZѧH&CN($@$9Q=\$1 .MMiuH " H  " ȢH ""kB4. "ȀH( Hȉ" 2* "2"  2) ! H) "ȉ" B ȫ 22"2$ " ($ ȠH" ) !""#$(H )$ H H !"$"H+$) ȫ",+t ]Р(.CJ]B"$#  H!"Ȳ*#"H0Ȳ$$ 2(H2"HH"22",$"H)")(H $ $ !???/ϭz}lr0R^,4|V@NN J@B J@_Qͳ |(*n]ؠ*fUYn϶Cw"[ؾ f:N'M~*+0*kjEk9Kmwhj! R3t񟛤n4v#J` T2OYc|: c7n5 cӮEIV=]bzS܋9^hڃZ*K BblJ򮬭) ,e|n'+`9Bps?3;ٍ֐b`ᆉ@6A.p9ΑhH^x9!ON⠫Ϫz< !@t\4~?˻36)<_Zl$I x >Klrח¼0漹")5|+b(ZטD5CȘsW/fQ;h$2.UqJamh ʁ$gȶm?fz%Y^,{Gq˭=ыNA.淖hL#O B O֑y%gz$ؠ'k PUNr |AŚn[LūJa JzR V VʗاҚvvڬ op/Nc9s9:\^{1<9x`?.4 ٗDfo|nw>yxz嬑\.ȋXf"LQ>!8ԧ r1#RXn%[tiί3!maX8 !#Q`9qO~w{EWOЏ(5\ I ƿ^wqw'%N8c{ЛWwv Bw_A `l}Ɇ( D4TڼZr^l;ce('m 﨣(8Jw!q(eAhOwNdPaL2N<GgI&5oV c![r}#i[o utGjb'd'Mxt)pbyȡntQ 3iLv! Z^>w0D8jVtd~sp1I$յ,''V$5L,s6~f.~lכ(*ugpq 뵼Iu*?[ 79UNYHF"#+1F[___^ж,l%ggr88in\2&= \e9 }?_+?S!ư( )M`k Qn xDa.eh5j(U PKw4Rtvmzi=#\| cVg*vO7)=E^k,!Wh' zD5}mpc /C@s=y?{Ȯ#֯N-P|/d"Ǒe4ACႍ﯍zo|/.>hH?v|یrF`y|V * gD&{?ݳ,Pg w 3I)T*J}VURf*1C J㭭A474*LJ2ɤvX|@_0< a@ A+Ql`>Ϛcu(s#W|*0LX#A"|iTQATbj TUd> 3qˎE-[AS@INA[;0 UB(3, \`KVR*PyQeN1ԛ7:!pTy;Ct%OX=K/w6R2PbfH5nkn~Cl ~R=~>-$;ޝUUbq·Լ, q'p $I!2 ߃S3=[TK]z/EMLYC]>H&*fEPUZRU jⶸbbv?[l DE;Q`WtAP)6(0s&E;;uǫxgkw_ޠ(#GG6o?}I{ v$ܑtLE< Zx!_m~kjRÊjCϼlNܟj52z;3ʮ< pXxi5eztS-rڦІ}(T@s ,r@tOX4rk81ʲW~{V[W^Vy8=A8! G oNDbL[@Gm͡ktȗCfDG>9=x~o|YgxA H ?U%X :*nqJ򯼡6XҞ'5 jNiܦ_g}:~ }ӅR@^7&aSoҾ ޛ]XEzOag 姃j =9E(.yYh{#:>flg6<`,ju [H ;⑦2T]OmaYv !#2жypS͘D·9Is?Nh RL W򋸻0|XȦ1ndFE]:/teh(׸_JRu 0m;kE~-+KS::vR-pu? [G 5?X(Y@… KN{໏ݼnjPG<AAnz'mZgnsB>Y{)(*Aº-6GtDuE\j0S "r$Eͥ{7X 5Mrexɛ8eFȚ(&vqj\>Q!ݰwT;u!79L^MT2z t)I `}RJ#!QBQiX5*85ey^Uו~/GcGꧡV\W 1ƅv !_]:CҗmABCCU'DwTD4r SB*<_?ju}> m'hG?FS!h1 dB+g1m(F`2?4bd5Otܛ-ܬeCؐ4#bq2L k+}},M""%BP:f@۟1<#jiS! wfn&蛅Sq%T# I|8L4||BRgЍSi2(Ȣ!P\/xrXOO >YP"Y˳?y3PCgGJ N=r}fjJ|Yh aPԝv܍)(u^mqb~.IG։\*,醭Vk"ڵ"Z̵)ʡMA8TT**JLB#} 5P$58އh&.2ĝ+]%Ŋ_x#mɇz!>?ov +J;Vjls5_78WqN,j썯AQ+Z}ё|uч^I+Uu^˪KYSZihJXUS5PX#C.Kי Ud+Ȩ„qVa7"_Nz&1MN >4F7D _{Da// Rz9W*Z ^tapcF,2ΏnDY ļATz-m'>]e5ȾR|# 푆Q!q߁A~Q{5sSё5 N%fEcx9dQP4[Aݶ[e~yqq21_ҴZ^~ٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6!Ѯ׭g 4wdwb;jGN;R;i;.ٞg-ۡwx|d_/ܡGϦvy,? Q&f?uq_hvs(_5 =/EB.:Oۮ煡QU(ܖݭOGyޣQMsGw"P^jG>/dCQڨڿJF'Sg^em(w#WTMKH| wC~v;M=d˺f[x4S, ٮ[?ivN~7Cy*Xv緂 Uu4 qeW>!A>oķfs]@WD > /Z D4ϔG !YGQyT0+AZWnAw7=n/0UV:+oc:6 n8M<f!8\\F^y@ï 1V)P0fD.n4>c5x`Pih.-|ZYȸr0PU-@6CWRH &ά&g%uf^6^hxO7ڎѿ3]mݔy-&fТaj7vY%L_ >v_qþ0 CNKNp~DqĞ^quT"d Ķ/JZ#t8ۛˎdž<;~g3d |/ѣ| mc] Igϱ@l&:ƾ]0eޕ Jȼ}/a A"ģ.I30>}YDn+R"pȩ!ܪQ1]ZEJ['d_$dIfZ&̷]R,R}PkdVXo';43ɏ"LoRpW0`2LԧMg6LYW&՗m5֖9ըLg<#+sm7Aٍ?\B#8V7,*oH4Ua"Ԡݜ(B|%/($Kx2 zܱyZY?pSWY 5FTRnl <* i"sO kQ]cSf"ǪyլR4X]58_6Q 'uUss]eG0V5_8k;*xNPpt1:$V6=XA(t:uիVL5Go<})){.6_@Hӧj6Lxy^&%nJkHTqNӷȪ >ู֛;5y Ӎn}ₗj6WzAK D^''&! }!C:k1c D"{|9hX(~.kx;15hXz'%ꬷ%j@[*^uxPR|~'p+ IٳS|q3.^[ΖGEs5O!h1-eL뭴b.+8`]uaoR LcʑZ5;Y]X(IĊv)r,}'O}3L !>>.X7":zCANg☒L kK@ .¿ P5'BG%lI+4[Stw{H" IZ.T)==bh? UoISN v5FXv`Ncl(;*{EO @RA |bX>\Xu)=yإ..{)iHRL%܏L { pC&{=#="g %I|tBD$GDj彺[[L1p éX3 ̘:%'uv]o% [/6L;'ȇ.g 2:[ͬl6FvuЯT n;pJҍ|F5Оyz'\r$(5^HfKwhşiZ¤,P|3[Q H4B((ST>xSG+/B*ÊeIL.vs/#6<-b4AVU%Ŵ M渮N U]9¡Mbکeic3'2eX(ԍ7@J4J2t2(GO|SfnOD?6]) as%,!&o'جJ79t/ONV6KZM)̭z+iU.Qh)M)RW)19:U%0):0UQ1[ʩ`D'yb ,a qPl6B\Ʌt*v!H2\kx杉_l=ȭ=P290 $lG %:a,ő()Y\-+dkXX+s8P􅯤[z{)WeڂdW<-0@Չ sWZb Jѵ6WƪPV! Qs#uޛ΄ Ђ4dA/%eaRؗД"sWqs-NxQ1:%,f62s&mPZlՌ٘$u"WŸ-қNSٖȷ5$vay.HJ [Piǯ{Ni< H⏡ޝ|NnGPxǬ}x`;s ̽894nH#x"0[ʙZ#8(DZ KEЏ.O7K(kJ[ fC`,8"\64iͣc >s\Nw/Cy-(dxQ-T⏹==`gD7JÌm!!M4WYWꔫ.<^UؑeedYnVۙ)+2̉,r-KRؼP*[ \)No;Tu\UAnk%h"qmF=pY+ǞUv8¶^ĂTO d%~?g}7vzܢXO5Gp_d"=wCԖtYݗ7Lǩ36Vg/j~PE#T6J셻BKUB' BJx_`W.a1~!ze#Ͼey0)tH~Yy-]Ec})UΥ{o'CZ*fI7Ej;ֆU28#Fi!D!ݬZ,)#>K,\PvΝA R}#,Z_|\d iHxP!LqQ`(7O{2Led%xeFimE㪨` =c6,G's(A]`J`paJDUECHԿuuM/C 5޼3srΠ@6ju2˟^{9>,!xv9-vZŘ9+p †$$X **dKvfmr$v҈C60 5'P . ,L1',J :zS.FAѡt:䯗Y_{E!.nnKQeL`/le̮T2Z"i erc2eMhltͲ܂,-jͯ. ?QkG0 U<,nC=?g a},0휲˷n]Do_&;Wm[ `YAhK_GZu,Dej/KN=SjWuid_+n!ꪹI%(rB^5eT( bSRrVI.TwF$Fi8^(Ee0př yR1ſȣH38i~>Se~nXgOrq B{ɓFAg i "Se#f7x~ҍEшT?ЉXbw-JyCzD*O2@n־kILH`ȤZ ,j=;ǩxt.wݾ&Oa>cep5q&hFގPH Qa8%L"+E<ެaį08 y~ZlAC=XEx#Ot.8˒֮j U:r~v+5#xqQ'C DLat[ݛ)tvRZ]u};x-RjYjh0vNtP!K@8[腠 0c=B#]a_˯8xZ>4 5naW/*k+lOպV2S0ojr1W[?Nnk 7vM&,^WCؚ~#% "t+/`%$mۖзH̩,@U^ۖ~"5Uã8XԪR#CFᐙ=z31,lطc& ր- IKޮMa^|)|vS(=@8Tn#<-ӴeHi}Zm tcΨ=]/1`\ >EW$ A8!]ܴʣ/)ۻVaU-~Զ̓:|S#vjrLwP6f F~`M3'< Ќ %\:J9=HQXBOÎz(r]=_;6̈"6Xk}8Ⴑ *2b7t2Y`w&G#) M4G67-R{=̼ 4Ap$M%"4S D{|4JSAxu&*?, VKE\5$v2ZLMq 0d{ZU4}-H7A9' UC@uw "]Wk%nT^N>ڲM*E?eatXpXxXz_LefU݆ILٰa e.pˆ\2r̸pyfC2ˆ\2 e.pˆ\2 d&0ɖ0ɆL2a d&}ٕ i eC5 eC*Pa׻Sߓ|e % % % % % #XF`5k,#XFmgt.]js~ L%L%L4kMFhihipˆ\2e*PʜK2K3! fC2̆d:W7Fn̆d3! eC*|fC2̆d03,e.pˆ\2 e.sw̆d3! eC*PʆT2 eC*0ɆL2a d&0ɆL2a d&0ɞS2 eC*PʆT\2 e.pˆT2 eC*CF\2 eC*.e.^5cux1`x=ogN "@^fbE5F aen-sf? bxEtŝZax0az]r|5C/ߵYǴ$&$}L(,`L^4>Z\nxOO E".xgyZl'[ S6H)Qے)IoL/jQ:u iSc8(eSf$^)3 Z39Wn“p8õٹA8*mY*߶|gnj20VU,Cd4:{ eg٭ºr씿iKnBB<^ ABŜכ<B6wNkjϔEVy~-d-{kԸ!.;udԖ #) _}&_,ꦼE(gPurY&쭎`8Fc~ [eejn؛@.8x&ΰ)剹l$qFRpio9PT= {uܠ Xmp!R~> XwBePǰ֯Nx &% XޚƹxTI38owvy橄jXd;.Ff$nD;MV馡aN{>ˢ~N%YR^rW"dIF%zQE̫օ)ڼE xAЊAȪ!y>oc_Ϩ?wpL J$>ge%W0[$ z COK:wy-— vي+IJĸ$ѫíy cvJ\E)KDgnÞYl/ P ~VϨ2mc:{.TbG=|ۓ/khP-[1LҍQFdZ a*~u ^9SD(k, &@P죑„}2w_x60͘vQ! =yn:=- WL, UpWƤFL-.˪@W" 424ѤVA9zEs~PՍeu0 UN)Kx)b>EQ4}t:祝CGMN#)@pAzv^UC_ۖ)"@k AJNWx'3ܩ*$9g-ɐ^$(b`?,%;+-SeV , ޻}[r uU 4xɱSȲ4* Ov7ܣ9#\?x||7mTGs|qFCTos+έ"7thZY-7]i!+[ ٌ[bVdJ ๔;365CeIѸq ,Ar0|Ge;0XʗobAߡ鿶=s8~ٗ2gT-*jexy*WuN(.BG7cz*HC.P.FY;\җ/ wI.nnQɗaεaYKUUAWeeȫ~KJᏦ<*v^2m5[Oy<+l)"`J( P3ou_az/uYѓ6y7P|)ɸxNp ^ ]E8.֨jYeΛ{l6(}k!#jE)O0LeB /5[s_E7 ZTU4B"oGvc5uƮ+o7m;?x8B=6húB<еĜ>=~"{M4WX<9g߄B-{n|3NW!DѶ1?x!؅1 Gm \FAs8>}VFkWJ2RxRq7v*Sq; Tg$K F/;kh0/TC [`Ewm|`}S PU)5o ߗQEڣԫcBxg.xȲr,"a/XM NW1W9*°+/\V-_KDÅ$&>.~KH0xʳյq;Ȱjd袞T^ \ZM r^]US",>;{Ŧ5T} DVaxt*=Xi'q6-DQWZ09HO+ȘF"8!ܸQr$iM9h^P}kU~'JQԡ2w'M7p&`ma+o߲ajsSȟ5j>(|)QSXbo|EYe٢ynھ{6WEmgq`({+~`11̩! !#EiY̚|n$n}˱W2ܕ 틦53aΌh<`+ >˥7ӧ5]Q݃.Ɍ73t^Rq1Md˖D?C[* R (rAx≱[`y9R#;4!o l!avamNSW^BA}/_ 8#ވ+V{Q'ȿZT&yà!a)(.pbw8 i1 P|-t=W+ So*ޠRzCCQ5$ξp+9(.p 9&de`[ordKiL3G˩26SQ f$M?&J\S2Ǧ Sc~I9|5iD?:!_ff:WH':kHt}@_T'8BBC|#wDYZ4p#DmԮM~UJ7&Ć(K|ElYZkKR"B^БsqB0,X(ҟ6=qQw<<@`)z(^([pth._ ˴"e>e`zMMbX)ǫWoCnոr"efQTbKP yF:(*Yz*}_!oCtSaR8o(h]UTOKmQTЕ> s(JDH=Ÿ_骲OUGˤ9DT,h~`W_v B@/xP oˬ$ثLxygUQ<~#%}ռ|vKI?~e)h37hT/@iZǥ읭Tte(C1xTE48 xT`Ly~f \]DR/j3*[(M#溻/BX;ksk={^WcmT0aZ{53Th劙z1C>zJ;f_o$+K#GXPEeXFz"(,J4B3iiidZZ_G `~J :TB*,C93'.K."5Rp\LmZZAFT[RCC+XIa߬g>7FZΎ@/z߀FvkxA)~f~d\r{Hh ^ c|]`FsLaQ/rbL {}QJ\? ۀ7Wߙ)1}0?{隿K䊎(Lpߌg+÷+y:ABP}e>p|(ƹkg׸=߈\gPU5.yc#սz>79NW牊?$&YO T^kӥzW?jUVph|H$ >I٦759wO>ʷY.E0zUmfxhݡvw*88R0_3]f9MMZ|"'&mv;. }0G&2ڡcAQF1T9RWqV{+wז%>~Œ|0eF*Z$GOBR'u}7,B.`@/(!f_M2|Yڄ^?Lg[cL1Qp~^-J𫗥M)/kUWUQ+h4)WMYA%rv'Wg>/|mUߟ+M7&/g7~FˈG@"(kMNOrg"z>Tӌ1=)0sa\gl$GB|ni~<06]S@@D~5 :Oh 4H@"H~ ':M'00 :M'X &A?IA DI%`DI0 "T`A " '" @:M"A`AtGAi?~IA?ADA?P =SLy\ǶܠY64t8-kAC(#Q?}IBQ'dG8%j`O_.y%~DZ5<ISedt*0F@@jW"{yu% |JE#nu'IuHt|%|ra΀L=oKuhfЇffZX~j1R"5_o_%~7 +`dTAiP1 qefYdusZ= n &,2crQ\.Z˫O:XY~_ea~gFl VsRtxԱkIq.ֲ!V<TqT@g e9u/Axxx 5Jj] r&.{[TTAK.ڴJeh3ymRpsE )bo.VӮ%6Y`}+vxŶ\gԩVM>ȝZ'k6ʄuaRSreΨNJjh(tM Cd5;{7O޿/\|Zze;c=TPC+bYӐ}V>toZ ϛpeu?AWֳ3KސAF{RZr+yYSc kZ׫4~:, Ot$ 3EC m'@,fϦ S/$#;x;FبNÁm*{Qq3js!tB4|:NsޝdS<UD?w7qkkhu 2sjEf+,lbΔ,0􇱮ZZQܼcV+ C߯^~gWZϪ`z!jACQ9su4_RMJWup'b7\ Hm_UV~x**,諮my2驒c LQ:+Dڟ{ڻطk '`$#|B{ 7&Ut[Uʛ},}27777nG+Iy2Ic|/J=G%%Z' ڳ_r!Lହy\+ h}PԪyFq*[jq2Tu:AA #ĝ{y33dx"r#$(Na ܕ.>*e0ϋ%N^ Uq/>0|u= ^ B{+[DZ=;kr̸,lle- Hۢ܄-"Ц-{Oӷ+¶3]LtWS83l/qP˅GY|X-WT^0R,00 ݕgXp?UEb7!)^^[e`O|NC<>KFB=9nѕ!3U}̐W{} :i'Mh,-!/ LϾg0" c(Ը2;Yh(r4a9KX+cVoaJgLL= 935#T?Tn?bp^7 kHD| j`G-m8jE Ѣ=p9T啃SVӫb-GB>1}MIC|ZaYr}t? .^Y\!@XLաY?4$ѐ.9H޺a{(#Ŝ~Hm.B<9.КX):;[ tg:60V?{jUbgW\͢a(:/ȽXʅCvU]}QTXd?jb<+hĥmlq+% aF(c k(`h =.6Xo{$b*' h aDP7(!"">A6*T_GGdaAz ?Z?{_py\Q\K4xhKvxgN)XCB)56Y|!b#4i(2ܶՋ`f?C6h:p1yDTJ/l/2Osje1@QPOXwFrKTRLBL_)J歑Rv2ha-Dqdejz'~ 1ݭp/GJ@|&Qx`p 5c̲E `&غ6/TBV+w~ p;r>tpc48-4ن~ϽP5b kqdw37 )c(.p' %dі.wGٰ>Ó`F-_ hy i~rC*bVʛt7eYX\V%˫2X,]dJK(/rmbtRt$ wܒä"GrlJ0Fx˅`cZ;.2N/yTJ}"W6nW@ rTqbTD0lHXI'>]dk{u >q-cn##8W?bPNA<q+ lvFx6Z}1떖@`aA,ɆL2Ͽq3V~*ZSCVQaFG#)Ha;|ȿ4ua['I^OD9"YD!տww/scK A;hYǢԺ-e+tABd..HW͡ssstd(B@-e&pXJ4nzg$P6z뙡oS\ip3IƒkmC.=GlY^qmᅄECgbH8n>Ll \ FEΙ$% !__y"8!7c8܉Zzie--Q}T~`r׉36E\^DwlB}&WexX@0޴$v'Vn䇾XSV启YVQpm1a& .Ѹ02tE# 7AM(=PtM2 ~j*rrz>v )|8ܳEW*-7{&ܿ%!wyS$Խ\W#e(AK"sAҥ ]Ց}+mnBy3j8ɚ.KHOEGQW8H.[I=fbXF|/#yqr7sQqjzwZ* ሡ(wuQy_X[-d#>*@i>:j N%U,K،-KWܶenh4B^W콒c6)8ƋҽN¶)4_RflZlL ` +bti1;,,=eP9M5Ǡx и8gi.LЇj/AB5"~-4ƫqJY9?y%CB1crCZi]ΩJ:oX;o&PL }`--V)iYWlTLPsU}=aU]2Յ]WH=i3۲+-ɮ;XJm>V&6bx=" a*qGw#l*Գx&YgB0O>ɶ*2O\NBF+ {~R{PrdpBI^Q-2TsiWiB҇rm[KkE)EVWiB;/BA-( "ڢzbe3}KgWDV=$?fEx nM컆.r𼼼 գޭ$o@2qvhg`hQF$q4bj >&X!?d"5쎬IW_j|rH( q(vɠ̢ A{ݧb~ P,WSZ2"2ouQ|*1aV^jx9σܟ-;a韵G ۱*Û]>#;-g;{1DΗbW2:>$z,XuW'X[O}T3Pko:MP ՚o4KQ辋K*ǮuDk$كmeѠ |JYwc/ c\nЏxe>Uor\ȿ\xG? >~sԹN7:9fi۶ aLoW%j?MFʢ4sEw^~_W>T⽊hn$ʇKp j'M&Z|+܎tL{CzK:V;gA;AqYXj6f8٬p&i{3 7h @X"axә' ]aOl%P(š6Sa2Ig!n>7Mxk4r ̗\KIvYJ[6ǭlpj3- =$:N_oA zDg~23/>q=\"׶*a.AGIMtm͸A n/!B#rgɺ7f`gMwU'g[ZFҝfW89ݥv ?uҝL3¢8<,+*aÃowT%*զ=v$R4^R=e̪"u9H 3۳_cu8" ;DmwJY'na6Q0 OWTQˮZ5y]5E@2E𢇩|jw@t$N&T#iIemp?V|*9#'M ,^e pK?1.j@4E,>Ϟ_RR js1Xw۠po/?KLy qzu 8}U'oqǣ!@q!hA%K eħb"!pp`'*L+P$ۓMYU?4d97"~g1ِh C^AOBxgT`8%DN&t\$ֵxEkeY˛Yur/x`aaݳ,yr."gc{?8q#TP`Nqpq_i !`r?%Aҵ}شo>bXoS1ܫ@g1[]v3XVwP`{}R QCg2\n9?ɬy3 g_ _dU> Jj(])=p-8?{ O@*j]HcwS2(*NX>)HFM#n>C!ikU_!y(g/y2nȁ# ohA ^񃍷'EJ"%uBW Q4 Bl?1W N Gyg wndLvNg2"c[3;eswڻ}g;W;u|$D*YUP觛7Ågxd%L=yE"zue;zVDsffrp&Cr3\_b܇d8Pd?q_?oY|}VZY0u\U/RH+F ɮ((`(WJ~="r;1.Q?Jdy|3uhP_/p hQLV@@! TTT.)nK@g;oq#sw&ȾgfNH%1"DMDlG5 tG<}n:A1bkr.yΦꃑfa <3*1Two;ƙoo&qojn6zxv j}ښee\LTlާtssVfP'o9gLd~ss~D<Ϗ|~:nJbwg ee*lvmr"Rw$Gsg$ 62gysw ~ aR` IGu^fFpȌVq"ב9n=\\j瑐z{1Wp\v˦dz%Ɋ`GM y_/0''(we)ݳX:dNUY'|bw}yäo ɨ율nn,sv^5es5}[}pMɹNk|63*L={r ȶK6fȝl8\]V0_f g}Ѳnwf^Bķ7+2D[DDjv2Jl4"b'"f[zZ" 7OAq)ԛP,oͳծJ:!22cq(H2nǤHoE𮮦Ed68ı-J18JDbuv"ڏ8 VWʉu`ې6Gp?Dw #q_?m>?x"¸/c`n0PpYw[H9 OжIEkG–w=Ü N)Q/F90mjd'FVtIU\C`p:Nq_ .[7W(|f-DYqn̚K> yͱMQl_, >NXܚ*FYuSX5O)DSSLVm+$ks@ FwpݰyKV2QG{}7+/ӿĔ7{s"zȮNPw|sggwpˆ7Y=ˎpٛ6~#ۖyۙF#Fq9\o7;/!(fwXr\ +YFE\*N{f;MesU}.{ ԜwdU9yɾaqHP7YeQaX+8+ϋ母BG,ٸ6kaUzaGW<>:p/W(rE|ɸS{b,ov[q^c2oN̰[VS6rß=zg?97}9n"6Vr)`䷥**cBxD۸ G&t@Q÷rsppf̜C}3M U+m+wKٳ?oZ/a8OOo*0*EA0TX2s%kӼ3?tB/ کaY8R^TU.Zي\5oc:JzAXucXpaOXSGG{R#`kKXc%OyKYf1sJ\Yec0Koj, 1GtwO"H QUu"f,9<6rN 坭2Kgq8vppfo\F720n^MMV'fsUسܺ*7|9<2B "EQFYAu=s0su\rż7bA/&x'T8Yq]$b8rE<Y_?h $ڛ|LR-m给R|b}n|SDV.VZ̔Wusz{Phe˘0sAFa3 2$s=W!/әvFv4kE3 j+)׉+'s\A0[8UqI;2Y\!;|^r Jӭ FN43y K3qu:zlDEwlLqɊϝOU.G>:^0]j" x.8nHiu"F'n O<*w;/sK?~}7|{*kWW4L#5.t~G>At˃hF>{Hc;*X WXfv"Op]ɅƉgU$@gy;QAwP$w3+8OL;zԏ]zrl]Kv87]$_x(Keo4&{itu-(dEȔh΄7(!8L_-aQ&׭CCԭg~19GN#=ק) -;_rA&$Dޡ-k % kkkn\R7A0/7EX=yqĆ#U@5B,ɗ ,JS*mmraݕC, 7Bl8]v"@ G Ƿvl)1ƛ Jk5Qy }i. =lOé*gϩx2/!cu\Urf/>Gہiӯf1=` jk8ii&v8P*`LZl*Ƒfk$Kun1eF/(iƬ蔤/Wh*ұ.ڔp'[YD*8ƩIiOd?~U|Xu*r ~2[T4!K3`c5/xWα'm,%sPj~>=ne!-WVW2hoOؿzr 76ԉ9;}o:t͉w͝$núI_y_5owLSܣvlgayuXTrxM5%nk;fsdaNUZƺY1s95iw3gN\KѹD\y3-!R}ћ*oj}oea{*{]s39}ï|o~jXdɘ|.DT`t&y)6u$BQm™Ӌs $fSgb0_br /80Btz1FaLBJZt%lWBv޻5:IIf/w$EAUeruƣ.z]6~V^L賓&SF;_'Je츷ou]F/:ѼNO2L7p3u ȻwqS\EԦ7P훼nxuyx{p|9~Ax_j }{w>ܞ{5(ϣaDXj ;3YMfsVs,W=Nz7_N0rTok*9P:1tv=s gWsc#"Fnqr>Q5|HWQe TGnwpz\I{ A]2wW_%mE#1m'T0Ao^^&Ns/ Mo~u q^˪" wEۛu[j}LaH%7wϷ[ûEkrn&!q'S*B=4uñ"]ˡ7w呯ߟg}tuyX^q^cW#nqt{{ϒS+}I#Tw;w®B/\ueڴ͒m?l޹|j6Vs(E_دweeV4wDu肤9:^'uzQ!`&rJ?߰|Tw2;>gdZBu%/GA8}g?HjS⢈I?uͱ~Fej;/ۻ=Gg'$7>:⛎|^*l)={_}WaK8ofԧpy9ěx (Fz1ysX[l< X$\WABm9VlEou|?z8a|>_ǧM`Y1$6ŷ7CҎ7[d2Ql)!ٔ2RP|u&O563rk~rM0ag*8MBX %eR(T+np]t몪M1Ξ/Qk*hj0 a]Rhoғ(SϥL vyYUVʊd)~kjT¨yEb26ϽF/ŅL=GD(hϧ(1l_ #|zOs9`38gUވ:sl?rlim^Z*gz$hlur̿Mg6Udcml@ 蛱OLض.]'CN.TX:h ݂nۣ9lC$19=3apnδX1k[R3 eɎ˱]HTJ=5qo4EW歩%9ʭ_L<,s|3qOwd7T 6VpupAGLmFg9cTڛ{73z{nM5~@Me^ tꊲldy9;QqZdM9nܽw1;DYNvQQ˚̛gz+"YWwߚ<@bLW?&2r}>߱#]o5:Tʲ+[^ B/ c ]Sl9NU ;4%6o1W53DOD|U+ D7Pb}>W43tBWJ*Yf,P闼No<&PfI624cuJe:ȽWoer/ܭ|]n|gɈaGk>O: [l-&_)D#t~шO\n }_};z&7ܘk^X_}NF&{sso"Ix'9I#\uJC uxeMT%ug~(8G _}|>?>|mJ$z8XD u[e xUKNnͽu{\pRwlѷݞK MB*?"6>(kuWOw"w\u>wJlz=k{Sdk];N`LHힰ$A!syϽ)4UIY#8ƣ>vQKvTεYQ 1 JShF\sVڻ)ԿncFg"nܯ}E4ZlvOhj@G~od"^H|BQʧu]A 7|ku0<>N*dr4}霾,}eQ%:ϟ# u+_" 5׹U!xos>tNISqMy6g5O~]ro QV_g6|%a]cHU͕u }^Fm=CawdzC0s9yN\sۻޛb"&g{wy^kE$T$'oVmC헺VpbcGp4{ *w ,lU *T,L(|;ys+2DGT-c6)G(q&Hz#c&lf>7[s^&S.K Yt J^ 9LTMuY)S.6 \mm3`ZtRPGr#wtoVajUraH! .47`KtΕ3ִZ*00GT v75bUMĿBxKk0]K*wOs 5~Hja\:Ory Nɒ7קvD]5,A^M޼$g Ȼv BA$Ƣgm\o7o\ÙFta;p"[3S{vhdv>\#y>Gcf ܛ \OPX9tnu,eÓ26ItlpddHq.?۝+* ꋪ""ky3o{h_&urD73T@X7|s|"u7[rC;֮#K YLXK|sdn811tֱƈ8T.c[gZfuʟաonkџ#%'Mt՜Uɭ KJKu;u ru I[7hvMۣqmTrmN4'yLYc,yD#҃$<5\OI{c&H{ٺ6os! @NDjdr|󙲜Njdo˒ɀOf/N0'`$X `3Լt)b/wM ~/qB2ma4Ƅ(珻wrg/̟=.{M#[RFeX_AୈWx*ʠ͝zch4c7W(E\J(EK#tJpBPdVeJ'ӆ k'KJeA(E6 'ׄKsD- g 6EFԦx*OV6A7 ޭ]#kFdpL?aplWf[^ޔtY{Vq'|r9(ԹS [HLD{=R: ]r5y1ʬ_jvox:g;;7 c;ldA"7s{'|o/}(yqLNʽ1StWfk;&APčĕ2%'zlT\*5EdT;8봮MP*BcixJ /C X`Ȫҵ 6*P+QifwZ,^O񶗀4R&KҞTVEArqe\l3 Pt,`루f}WwLq:9Wޒ1]Tܩb]oߣ]7zy]\_?A~?yh/kc{:_|O>b D쌭cq:&w~ٵ2sl '9Z1UncS13wgo^Lu7fzڮ)\M0܄Y:]ꐓ, (9p RzVv>YH59Ӥo0Lܷ|Dw2\#;ZGBeg5(q܄1$`ټs[tk"4 ";pg'R[:&s$dQ,HDFwyflY""IsMoӻ/CZ5U̘9ۗG+5||,ՙqi߷;rn&.kX\Rο ɩ3_wy95sdȝ<@|Gqݛi}p}ᗨ._&۾gOvƧF8t FD>2k{qibm\[uRF[C{c5 UePY%od]MOz\k 9EIS:?+1[!,4Zw &0M湛naU5D5|%`\7^}z$Ye< Nypt^yt7䒼aޯrf7:"5TdtɆ1"^>>|˿]Z=&= Ժϕ-<݆Vlϖw=ouGi% ],(Td6ahqNg3KeE6 יFd79.Bv>N6 n졕. L!yC)ʙ\W*erp2B;SqSDF,)57Eg+_uݕL#n ʪ}Ǭlk ܥ= KvO"ZV3faCEyͩ>ɃZF?pž}>hEqG ``ʠ/Sx>׷\ѪEȠDXA#~CivM SM48TUV .ZK*JF-KRcUXxgc>)Y&cU p 4amK@v9lDaaa H2_DNp[GR,/yIRgp[͆eW=  xL.qO8;9hEx t#?i"91/NW500F{2aY\gvcU/&H7ddY4w9wTdΛ#u#+V^V,~gw73' o"?QpJTck*>W&*cnw3n6fbpjn\s={ˆslώT^GIɖGs<ȋ<@Hl,XUD8se.-ni6p4[PbnJTDuwysDrn Z7[qn|g߾&Z}Ӽ̓9qXe^p7H0 a6 /an固So/,_qE8*;u w}EIaw扈5Ɂg]aLBys3?˫kKs_jW̻/>÷]fȕf32A;.˧ ;VAO_,ݑZj5hmvS0"T|a9VBTo;D_?{^{9첍[o6FrP&:Yu^>fpjCn:}?}{|>>k;3fY}H"LaD${}w7ݓU&LQuɝOōz2u)&N Gxp^;NEf/p/q\h㢽$Aɓ+HFABv$_ɼoؘeF;_pwBS$+3Z:N }^cj}3 UNؐ.~kGs>jwHy[1+}E34A~Tm:,7&㿒sڽV ֆ8OygΡTͤ4@i7fpQm:t۷nrid7xz[9a^q:NY#AVp'Ƨ`>'AgrE94p}Ȼ bA݅Pt|o&'w^ayaOBaD?߬e<+~$'? e<'1wSÙь3 ]27<Ewg}xgD&tc⦥*LO YoxT;W,׷6LSY[hLtݹ_.qzbEmk-GHFu,Of"pr5Gh-.d*,s#$*InbxyyٞMu28'""*2$wuk9ug'wQ*=u^g4PƧkj 9|8ׂ,:\͟識l>>*k$nWי͋>NLs}o|6n3gWs,<,!"dkٿ|ggù,3\9]7n.lqzr'*ku ؑdk^/oGG71=Ύ\8Lyu\if.-Fw_=zJjlso˟vo9]>NY+S%a>% k/s|'Os7ݾ> ֹQ$._?AѬڃi5+{eRCH`qdvvj>\!ktLS/lg!ِ0j+ć|* wZT~%;RV]]]]]hA0=BnvO'srC{3PțtQG!^C.d I?g[|V?rlu p:`ݵMFn![׈1V"S1=xf!`<XD_<žGd|?<$o0 +?>8rPQ`AE"'G%R'1M׹FUH$jF0rW Ie0yUC&$q,ou5 2W+!Uʦ@ju(yXC (k[&K -PUekD<Aٽd_{ػ4h^.=}i5ۥ/y~ƿaEM9~8$eLyDsEn 6UNOh918wg<\[}wTk(/M)6pXw7SSY==l̴&ߺw h\'yoH*{G>3af5pp0ėo#km9>ܴk reW9rD$o& gCwݓtO { :ӽ7Jkٛ^- Vg!Z띓I_5;Y9z#9~-sQcw.K/,vLg=j<_*o' LOÕpuO'=; hNrå _;YU93үy9;nr97RV;#c'9^;ʢ0a3ϓ7(cqA_ci{t;M];85Ûa#_#};7v?S=gf'zmA?!sw5ļ.]U/l};(WuqtmJde1eJkS8o0>f{]tc^~W\G,'WѾgLM-lsns%rwE} oŜ}Q6ty=vFy̓;~HvZ~?:l\sBLus@A[Gzt~olj kX {Z.^뒭]mk1LZ(s`Yo1Q=S%R­!MK*ibNcBf8LsiKe}}ŗ  =obΙӉf22;0?l .NwLzc}\ـfMދj Z=] ;Ӽ ڳSS۸m謂#>iZ R  8d-a&7,naށl%hۍGZ-_3vϟţxV*VRYζ*brK}iOztC@Y9` (KmQ 8}ڣ.P+0RXw:Gdf Do\N5dU k_~~كW"}6igwޫ孜|U,Vb!Hbfc `LepW Bđ`а"_.zZz82Vۦ8:+%7L-vWԸѪ5@ʾI ] N]0*¯iڳ+n~u/ +a;&aAGaLG퓉Qxk=Ad1nG kv(p!O-e1'z'"8"#BS#}pB1<8A!r(n`"߿kx}H,ez,gJ'㛁j`BPEÈwZ&:F8_ Hs0ȯm5{T=(T c|{0%"(8LXʔAjLfFs/YfsE&XkQxjwST!EcO0|5r'#1kv+yR>w`Yؚ³sc]qȿ'H$$O$4`@\a}8aztOJ-sqV,?M}Ƌ6B20f(Rg:njy{c.M0sMg̐s_$O NEc37LDr%[)z`7\+W!?wJPscXSS}|.9=fr~ 9l^g IA dž*3jpؽsc!DT8R??Zʋ+ֻ&(0ct$\eF{NrTERdLX|_v U%͉%8g}Qxbex{.3ɋ!0bƘh404j5551NTUUC'x;dֺzPr-rbseE{ ` SrAɁrr O@}ۂ/ \}֏up :" m*7j>8Q:D24zg,{*v$ /튅LvJx<bN[ G4M] Kv{8a1E?FlӣB/hޤm<%epDdl8F!~u-xY[N_5;1,Xblp6, {Lx>{/X.c[N(Sn{s͜e(̩GAm) aM38)DQQTJ2QUUUUTdplE%!#7 R'U@wX:C,?c[8xnt׸?6;0M\Hob''$ Ʋk\j` +nIe?K4w}vգ IH ٣ ^mЅ^Ȋ+1c1RI@q߿(m?}J'>.r4K6-D7ȅhT֠YeV5\ë''rq/ZaUwcMUFkm75`6HU; ]8et}u&P>FȭXRVڄ]hg^^ŸF3NyY})atgo` A`݁0IZO﻽M\bh 4j~&Y)=;c8U24 UMJVxNb9u 5CTF?+G`{2fQ7 fStvI)Hj_iaWiiv2guvz Ϸh= 9LRB69^cdXl j:Xjf~A.癁!˖o'lWus;r+PKR?t[X^)ċ^e?L`[9z{2%LFūV39huqԱl,_::ty=ZZ_~t:w< Yc~#3%M69'l,͍+--3MZft69i6Km57+in2mbk=mz\ަ?e &|#|z"&n..~&JNvRf?'?'#5KK?5Pxi'ttT^J Z*ZJ_--x,$Oۆ-<Z$u&'g۝=޺i nCVgGLs/N01hK\D98=!\Y}h0=wwm~%Y nLnzܔȾctᰊhD}zCZ+‰d(m8͕(NM\OwOKOO(_v=eϹOgL,2"}۶ejL/ev<`*|X*kϚ5{>㌍;B,BCB'x\ݿیظ h#T0/^*?p&5Itz/:*****R0u\VЮQ]^lL1ka Z7:qKҹwފn4Upz z7}Ө20]ů(`CBB5 _kS5ǯYo(ɴF&: h:5?9rHR>'_΋uNxnVMͮ/$"GObacbGD!y0 IR@r@hiFy> l]z~ Yty)@.]{$=<$ID$B1EPJiu)GJ )AMDAE)*ЦuNADWJ(4. YA!ődIHDTU҂EҀ.AQJ AMiӡu(.UMZDTM.)EPPPA4.]ic!$1# iE4* .A҂*GZSJ .t(ETM&P]iHSZGZDE@]J( (:DMiAWBQutWBPAк]:]+B].:4*D]:DҪtDPҩH0 B,"2,"$"PtP:G@Ҋ QhҋҢQ֑*KE *.tQִҮtQUҠ)ADEкк&4Ъ҃EШUAЦDЎ4 kJ((Q4GZҨhӤ4UЪhADt"i:tEкSJtSK B] *"t(B֝"M* ҋ T+MitEҚKQ4*SZWCAWJ]UPҋ)4#Р :֗Bt+ i4U](uPt:4iGN"b" B2(H֗JQӡTкSHt]JBD DQu4"]*"QEM (WZSJ**iDQ֗J&Z]4AW@҂PUQEAt (it."#t.]].tDGJ HAօкQ ) *UtA# !"H#$B]KСuT@J .J"hUUt:Dt4]kKU4 I* :M.uЎDքTU5ШtQ]]tHQEҎТ,Lc ^IszVǏ~_^ǿKyH,péFPCߛfyx$öw\U6W{NꝮMف:C'C}(5!Xu1zwO g9iwxe3b+&}~WȻ~AXRu[y&b#a<wTؾM Iy ||vucW}~9{:7_5OCѷʺʽE({r┵xJ{1Jخ')WNJcEqb"0QK>MRRRRW*)sc׸iE\F{n;{[훈ĎS}_y8ɳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳf͛6lٳfV=MB=>>>>=9E5*;GEEHFED6ѱƬO"Q0ݿ ÿ>O/mmommz|{|{=mml [=/6ߞoooϷl{v{K]mos}A4M\ZeɃ].r9~a |P!Ca*m*菱T]0p;B1H6nUlSOƁ[,%ZwEJ[}Fvչܪ:l"?EЎN|~4ز`?%g=g4#Pu2"@Y n"sq;BCe|{@UQZ?):a@U+~WIE(Fu]@:Kh^Y3[c}FʕsOÉ:{W0ߪ懇"[l/rAXrnqc?ްL $oo fA\c9FF^5S^C }k+wb>㰠86}Zݻ^EB7ssz{]FZ{m6N|Or(Z78ch] e 9# mF 8w?PWQ=*Mb8U>§? |a2/]v|z#H@E(G yy~UʺӋrdMdo.]HMʌ18ōaRV UZr%1FN!OZHV8\I=V.#u,46s_:6ek f05]\ Ḗ 6_Bg7P ]EZEPNVjsT+2IU.>oB! EoA26TU7x974!@Λ 0C?  nsaݖ ]ޝbĠGDB.Ǔ)YlAry׃ǜ=xv=s?y>P/:}EYo.Ŭd;CiY_5lFQQE,QQ%!`H",y( ɓ&҉ӿJ9hTW eͰ|K/rp>`tZ+׻<U7YxmLáN]_ "%0Ȇ5C!FOAu{A"hfCMO۾^磙R"X} \ aj+FMF(2o5yls_&L5qLx}a&``gѴczhZ\9sSyVD"?M~q!tDfQN%=68v8G7a)v0E].JYǂՇ- dSs{EGgTy2O$TaFmd2ɥ^Ir]6ID%vV'E5fnI (}c CqmŠ㤋ڕC-8`00T`bC1w,y ǯ'~xY19k`~^>Wp\0#`7Y-p8 =[i[ӷni߈/ fYb@X_HU)<$:dNN148wp]Wucr8ݎ=&Djq~1p8Ĝ(Mb?x:r|qh( sG ZqÉb3ʋx,ДcK5( \ ]!a9``YM]sr<8m#P\™e-Y_;.#`'܃! lcwGU?ͩ1ʇllrJA|&'ne+TWDKWz%I f7>+$'ﲰب R~Hwݟ8L SSR!J*xCi5cpm *ʪ0d!S p@$;Q[0G)648Oϥrxv+盜  ogG ªPY^(Mj fV , u Vl]vy&5VQ݋"s6$nw=SEMi}K-Ī>@k!#4|+tT rd}~nYa1OZĻ1u5*A~hׁQX: rf>1.R[ }}/TY|(0ԣ;͝As1u=M_?}3YKKK\O (P²1Zhc֭\b?$>S%4 Mz^s;Wg/|M4Y(5BgԅuFs p7苇Uk_<&2~}6-9-pg8(='Uk,*V<3~@擺*z-+ŽX:bZ XVkw{ iD)U{-Ǣ1tI5IY:8.AQf&XGeڕ_2& A'(:)vƛEEܽtV_5!AhO>LwƱC?tZBTVւ?r*L,uV ǏſJ=1^]dz⯺9sPc흎 wRy8c:8~Ȫ..q6/-&2RͼnNmwyP.FD+L⌨D N6?u%JN~ QB~h]/Iv5Yc ^/E3X_i/1?xo"RA#ܞۗ&Ƃ@NwW8Q4oRMSngvod51 ᤼.p5 58;99:@HOw7֯4la Rqh{1nt`*zxpVmsӌs]R%SQ&:?7C!8xeI?凥i +-x.%99X'3s@GX2EBdR{r%z(x kY4]]$k2 \P|LݼiO=>E u sa2ܸhq|zHfe!RwEDTEX >x֌B҂# 6sU.8<̻rۖ~mB{<.qȇf-/-}%>V;G{ T!cvXKakb~_c}Lxvc-m۱U՗o&lHLw?X#+ 2Y`r{cPgB鼈k3F0MT'B2//>Jk aHF,qU{t<,t^RN}\G_@]Uyv.yp:sBf#~9oc}xe螤vPp͐w)[/2Ǧ6n^g'w_sz/kqB Vb9׌9}{={˫4?p:dg j(@]6u*įB%E:{"8=8ia4O{HijԶXVU ^y#Laop3q& i*Ov.8V "m[:W^3Nr+[dwwdR.E!`;ո2i>![= k|{qbN }ڸ'.RNbu/9Dw8 IxyG,d%dJ putShm[ "× 8ٟ} H7LU^3ż . ="Oo8؏px7aTd-ͼ\Nff^35mla*V+tGpNo)Aw`JyR~ 3m3_сOHש5:P0e(Tl44$Z0)Oz{F\c?m[O;{!4bxL~߶Oؘ`<S\ z'8q<&5H2 w4r /8Wv]aVSӁNV:%3'4O&pdӾĊnfw߹cXȄvH|t][`Y? Wk߰p[>m6vC)[yI]!2%cř !tX9dV5чy~iULcrJ8vI`:_9A7X'97aQ5Ӛ.''9aT΃.%􄭭l^Ѽ^Tp52CĵUuoy)(@S-9&&hdMI!؞0INwŻRp&㥿q⯽کj$2@-HHVǝݽZ#*-}2rm: 8;qZǑw/Qf!x{VU2Th n{PC0_ j2] rO>gvݖZBqo{4'«u/M-=Ǖ'aw=NXs4G<<,NL9A\|;^v{k, %0zo\?"dԾ+[Otq#ahN yJ;PGylڥHjq^3biyۂLZy:Q\AwkLv;[ӆYtu}^q+WUfx!Q:.6A&0:Vej.Aס԰)91b[uevj%^ױ>Dr̹A=:cFl;;Oj;JR睍5qN$wᡑ[xxTF4YCH> q{yв8#SbU{m=HoIz,P0ٮV}X;#3m%WcGp\@@FTW4_]~8AM ege<33)טl?Ҳ VN_p~NyЎ-{$Mrz;7O,{+*yC})ġ̚Cq ~6qϛX\9z]NDwߙѾ1䵘R?z8X;x9X8V}Wh]ΆxSߊA;;8^*S1Ni´9ņS:ݓϠ7?pZD+ʜ|BZ6O%(apr kN\=i%Rs5Gŕk$`&3fZ}%!4T>A߾*MS۞ݺ򴬎 {HOp;qVOFe˼}0?4߽irأOݢ}[¸†%cR\3UoxgMxv]p>b bRrebw (7._(Բb%wW1NyhyL"|L=\c}`_C+pe 4`雠.p*OH$*'¿t4^{طhZ(fl{iTtQwd\St80q3y><٭,Jq:81gSq'첣« '\.6rA%p~o\DWMXP8bxy!Q׌F nBL"H;^mT"Q>BIAt䣵j}IFNz/, _]1ac[PH_iZLEq@W`9oګ<'JO3|}X(W XtQ0A`r,/6Y?Ԁ'!~q uax@n"qW.,0 pu3c;S8~M7f^LŊH!A0(ـD`jt0 aQ40@X`"pCGT P:-;?ga@5[^AA hs( @KQ@ ,׵aǹCS.2Zab=Gٺ(# hPmDܢo@7XtAC,.tAxh(KCC>A܂!Q}L8aC o 0>q$$wT!PH"5@APǂ)`|wxD g S* P3YCF@8H, 젂_~  $VjT (kH@A$5`uwY &)7(aؠ*۠* < vaC@7 ~+0P@P !S|x)@$ ؂t0]A^ >6Q1^{ lb n2vSхNpyl~W=Vni@cG Z6>f7 Y* .E=ۈ^|G ,{&kHk'Z)azᴳ0InM=±.03.#sYqm"&H1R MՋusp1ޔ4T8D `D=.ȈRA0rY`޹Qo$^ fӐxP6&vBrr)Uhfء0J:2 5PU*Jz)3T"6Z "uČjQą L(fF>PGESMueqMXU0M V!@q jFH7l%@m(',dk؅zڱnJI3TTyWYVJ7j\2#Qб"U)GӪ7smN'zĴ;b* TNdR% *hBS,`1~FD%۪ZB2:I a%-,0bNJ*XQI '1ILyH6SqsR0b0Fi:+pP"jhaf"ZIBIR}Rĵ<;Mf)DD#-а#e,|@]K"Z"f-tjʏiAQ=y#I)7M DJO:O]SD4%fd( i֨8u#Q12LTMRQr1<4<5IXxD: ֛rڞy'Q1M DZrPU8H>l٨sJJTTTAs"&#hg+ G/$*_M?v*fpx*IC"kQPFLOҳU' >!d֑jORŸiJzyXVlDEc0pCd"-W0z"<(vNdG-'w:H|h |(ׂbDU5#頡hkpW2ƒ IO[aPAzx 0  0( /4 |_:V AU :f z r|cAK}q1\. a8`G‚`%A:OԚ>O.b/t9,`*C_@63lv (c>csEzDttg3+ &1\]#8"Bw*M m^$w4͹c`l/ {U ?ƧngՒNLƫ<[W_p?(ݣ10,~f͈8t%<˭W6,MwBlΨ<]Rrq1cwKZ-~ނՈ"xYce?"y8L!J gzQlfZŋ+Y=nbׇ%Z ߘ-`AGkB ̣?om XͿrocLɻַqap81t=g̩Sةh(չ""/^8~V}D?,7^fm)W2'NIK>ͥ1P= YTXmS'H/9X{^9'̞URnb7/{׶&-J7VcAtSF&͋_Q1?0Z>eK1N$+Qj-e+*h- (PEPuE(0H.Rd. s@ʨ3dMWoxO ?E^8VQ#}0*L`D w] /L'/ {0צEZUV*JԵ !" daQ$dC"nPD&A%L dHL*>$IU1 D)"L%=UݓtbaU3v6ii|R%@ c`K\Rɰ-ydd"xo}v>B&-VCXtq {Eͭu0ó@ȅ㗼5i4%=pjPpk4E5[tiJß P\[߮P>(aCQA0 3 )jLhTOBATR@.ؒFRx~6\ ;PєQ+)IIII@R šBM Ddr}J H9vffNTi---Y NVB&;d/ڽ2xȇNMNo?tRζxa#x¥Ue2޳lwao3氉=~V-Rz*㛺 IuF$T2/f"]1L|dYA&.%& eIϑ:_ذFS). IDRefLc r h|uRETQQ&fH),."ZTǦm>e)HIUC/-qөEk̀;nzjNV[7zǯFpЁa'SOD"p@D"dRۧdgNvAPypu` 4hoߜP\c B3s6m~,)$B{IKJ{cqPPF`t J]x,4YKJ} bB^[h.rGU*.^p߹撺9<>B0(GZ731f/GXʚr*\QxFua8?>#nMz 'PLă; Og2G{zWОS鯑Xì([|L=F7k90! QMdF qSW/j$sEu%?U8oo͛O-LAlY݄w7^Uؼ.@7ċ=%W/oYV 8` #ݵ-4 f%&> @OS~dH׹Z Gl ˚_}!PI02%!IJRI2q8T? + [\t*$DcaZQu ʼ(.8Y̨zjǛ9ޘ.C%rSCStB˜qzʃGVvRի//cϘ|!)Kk =;엊`xfGKgK7vΗ{fC4qP¶4ZJےqF&V :$tqثSI9>G;\[׭RnxԚ)eL1>=XV_4,=al?q;Ttt 1KlQ ?ʐ=7E7DVLvk z!Ŵ~T !u?wF0 B x8A&F,jJa.Yd1Ak+IGZ"ʐ[!ξ b1(@o'hyu۩bďfoGL|[204NPoЩZXϹ4Jo?}IݔR'5>t8w}|{"opO8yLQ_ATOd["\:dݼ(B )|A2'rPO.!`GYĻc %hwa7!0OE@Z"CB[˪ doxgoVVdDGNL:#YN|޼%І R,1"=1)s#fU5@2XMB@ZC=YM@؍VP=b;Lּa悜VG;LjʭȜ)<8LsOk0 iwK/LYj"ߎٍ y[\[LM] n{*C35#or'HYŋ wS#wR1=nБ$^Mp"ksDx`7xgg[s{8zAOTԖr%VnBZIuk9f\4dhFch ⤝hsԟ ԏ .&}?;r1ߘ);s?C y͙ 9wv1a~D^ Wx}ݑoY_ ̙=lc~ Ӷ*VqS*#J0^4E[ǟs<715Hx#Z /d/ji :U'/݋"~~dHuTmߪmUMpmT WGek> 9q<~ vot7m_y(NeKń5Y6\%DKO~ G܎@r"x9b@~w;S{\wҕݹټ5^̬S֝XP9 bh!g:XKz(ӝ0Υ\ފww`6Se15LRԙ:F y?_yVFX Yd$ԡ͹ Egd,㊛!HģъTqHn[ٝ.d?C;g8#haH戡ɑsmN-'}ʿw3^I'h̿=H4dָ?YTٞ/Xœu>p};woY`7[C,oM=1є$ł>ּnδ9Ԟ'Os ){p>v--)_>;Ü(uH fw.rZBYc S$zPIcy JL7PU6?8³6= 9$N~]_1'iv/.m y\KךPhx;f~S3 ݍ ?GMk20^9fε3 o?C,^؆8\gl!s۷6'w߯U(lnp?x#ŒmBGj܇ײG i2tiM⭱wКI7"Ɔd$_ ?}~՘͹pH~0fjQ熼zևl[Gs@~=3*ya FLBVk Q0AdΈP3 5\n";XOT#q~ í> 7 0%OBd!"'jB!;ޭ '#;e;z?HR_| (w޺a>a {C6#B>ϟ\9Iܳ؛8Pq/I`-Pscy,vԸRZOsOo|:`kw?P06arѩ^4N#c) 4ɹ$S;~S"~)>h,Lrѻ ¤y2yK2|xP~Pߘ!ʆ$Z; ,T0łiYZbL1? 1,p x/\~{8Tߎ [n Sv| bnrn sE 5Ǘ5|"{ŔQRc$Ue3 Y@5=TM@lxT|R#D{睍b͞9ڃ#2g{|kO#!~`c&wìwt ch2dՄa>vyNMONkPGiv! 4 #M yOQȵ+xt=#=S#0 tXU'4Y64꼮,<1âFV>筽7ad,IF3%k\UmգH 3q[ WDzMԈcH/chqMd iw/bil|6 OF;Cv@غ\ǏmGmiѮ"oa?wD Zcg0_Ӝٝͼ ;&/>8>6~9܂|{]~&,.X>~!-&\W?.Q-R+VaOFFobe(~(jrFzgKmw svDtVBZ"^C:hT^L%tRIy8Z-jI=gZ r1Ē|yŞ8^gE ,wt sl?OFOx'yNcIl?cKp?^3h>RK4bH )ͽ9. (伳>A7? 9)O,Á|_aC}Ɗxe)|L=܏!˜: < RsˆX9҆@P E4aÊ-3WyIp%4 }XřȖ\28~Ni<&9ҌMcC*I︛V,,K4c? DI7gmzd1ȝw#):}OqCl<3Alveoۖә?Ov"v}۸bB{`Gu&dr@ܸ}迫 Y7=h׽U8UH jw Kā&6/4M=pZ7X`ury˝ OHJ2 E^x 'bL3<Nfƕ鞟_N 4.}KǬ/j !lS1Ub[="Qڜ=؝~¯kNC^DI!{]a˕telBS="6Y2bk{ޖuvt$|s=ֈyS_p ݎ΅/.D*,;2?aؚ<4wln( AV`-6 3t"-SbaI]1 :ltj!DL ?(rE-)|0'lrya4nDFa\¦QhZ33y|%x!;_,j(!AW|D2>%GJz|q\C>^-%KD,i/P֛@^wn3!0ؓqMO:Z>!IbN6=bxBrxo<ۡf,3q[)!)|eac9ΜnY7~# 4Nw2mt'Y`c!-Moeީ@f|΄>Q#+_Zf=prʈdNxlOX{yi|0\F0fJKܨS-Q<4OFhz/M8Kqf:z\W|"5c(@ a| w32dX>G6Y+x`x|)`@-A2݀ Cw Zq8>"8IW~4yeZpڙ7[f{?/j>"ma_vz'hLtC%.5,< Y63>~d=352iѷ 0kx(10(7чzn, >`4|,p'b3zb%O3Q#8q6v $tÛid?W!ubr~qײz\CadM8qѴ8ir84chF(H9(#SmoHJOGVf>*X4s!!$Ya.FDOD^hrͻ13˪?h5P]? or?B.$~JN`C>(*p1mч==\Dqop}ToB}Q&Kd&Ax /'#t2xkuΎPNt~VP$ē?ёw=~iz4@rRnwGxNYRFX- ?Xo]p\<=wdi"(M7r݀b0ǕW\'QHRg X=o\sW9,t=BClbl`7r7‰_>5w*)/81dE'p"w)w2gŘ>d{e_n+GXś%wF^z_Kh!.rmkZn;&xN&m>gԉ<hXGO QTPr|)® 317='OzՓ!NE]ϸ>X"7'Tك@Qws_ǔNq ^Q h"QK̡aX !ඹ'0 nۼl󠕄4  WAnE܃ÐGT=5E+wF${??ty#E-4'Iކs;2:~@1;yMAf_9T߅/Л Am&pߏ%hp ~x_#6( j=hL] *˝JEPEn9O99aP.D3Bۘf MT3=#,k>ytv04K3@!/ ]x1LWGPyG zf)Ƅay= Zb>Zh&tB׸`ǢȎt HJ+}bB4GtZp{gr9ySzb蝽 M4v=8! ؐ*?L<>LEtu8RC[ |#͔ʓ0jEfTNpV­AZ08wAP/|GTc;5T0 <8_ԤD X2Aok~vD7n#2+}3nɦӟ5̴6^2fcs9~3ٚPdc^>4TEO+5+77G伧ֽvV6Z*q?b}:h/)8 '}9{I&'D)B -\-=hЧ!Ѝ\ _>w ,wIbߊLvm y?;4fs&jsě~ó6a?ůYl!Pj'ܭ/Fq-M Is'IѲ a<ѽ{=`Њ5Ck`;5#7<. ׍8ev|-x_,QB)Ȗ'0`nj%r ȘƖ}sA\`\4M IHwI3o7 Iln?HIިXc6of<ٖ9_ _Dƻ(ϞH~rR0i tvno)n#PZ8;4^BE0Q̗+ lNz{S'[9|5:b3 1G8CC$u|G.}+m@0}Jr\C !ݑ@1ozC^p{ |y,OyO||ۂ{5`UP/A؛EKR/o4rQg"a PwMG\?`idN~|ߴs~)\}3Xϡq>4qrRjhCλ˄A C 1L|o'GzIş`/~gߡhpѠ)U̓juŌ0>a=n""We,u3gw}JGz#ytnx6iʃ+V|C[8Uے:,~f38&f[ME5׵ a IޢTc4A114:d'>1ʉKڒcvOc9_$NvgDJi @ @+!so0p:gc:Ɍ?r wS;OT+)@>'#jlF%6"]ӆI1>HpO?>#ŢhgMaBhh۩/8KO^ 4m6@,s;;"v\[IسpZO 1Xԇb-('g2 g`{oU[ŎVZQ"|^(!i0vtEӼcZOZTIHm=;v;73!kM<ͶJb2~ZH8PÏܔ'ܘ*A:IXzcv"p!C0>ǩƍ/ŽCߒpQ+MTQOs"?¨ŲPɎń"chqkL_W~|rW~m#NGO "?CW`\2ӓiWpam H ".Y8i1Um8n[盧R.=/g;﷚M"ѯ_tdz!49 /J;8X 0q'qWLK яW6;YYv,anm+]4qD^pZlj"kɤ*TȯwџhO!c!Er "{q<1p*"Q^,ȆӨ#k;PCkX #)cu#yV0x"5ňvlC4a~54`x=ƣwdr1+Lzkɷuu~7bw8!qcKGOq7[W`l+?N|vpU#V \C ѱ <_k.'5˛j hjo:LNѓ"N(hSTE!GJJGTHcیDqH3h/3} > +<4퇩`m+5]Q0]'_ Lo&)L"CHqiu78* }RT_=<wnN[cO]ɍ?C-)GdHXR,*TRwTbex/ 1،Lnx6})I`g[q@rzR_/^QsgF͛:a.iBT sYGT=u:Hhi*GW+%wPoD1Ep ~ȟzUWsv/K}p)=vp/BQG1mSnZ*U9pvj;>x*A*^wOٰp跕7|a0&a(R֪o3+F H!3U]Lܦȏͩ^0Y(B?]ۨKm.?;¼Z307*6kE/hn( CyCm6\S,;ܼ;z},3 {4)SntpnI(HL&MLAX'XPJK .$X,KԢ;`ܰXI.ԣ̺ *+ -eDaq7wWH gBP=堇쪺f#6+;*-*%A~[dӾ-k}+#"",NC'|h{}17YC?8([K x e{VPލE!((ޭV=z}cqWzYJDńUQԪ`X 8-N`K#>sdoI M#z.ޟȀpRL>u# ^qt@^υux~ӄ*4!jyh >p/ߺ3 )vwkݰUM/Խ!ߒ2acgW|0[*iWt87B+ⱊjB. 2El%WG!bebR'>;+?W5wcCV>J#mŌXO~]͘e=MVYY (8ͼIpim?6Mz~]&}?iY^lL dm]`Rhw7TQauNr%)i{pê?BW&wE*g[ZMDL[do<`~{)c8L;eBv/L{SMfJzhmB w`jM\ |<*.WY`&ƲFHڀ+eߗELʷߌrd2 l%} nuJnjo{+@^ r% ٚޟ;{{)`ySn|K׋&1LTScdCZFT ׋׳ #:f~:XjbPH2/Svs$l񧖗+lRtg}E@$>ENr$7#dtӔH2h,*,;:%N :I֝ZuYLEh[vۣaMm'װK=ChˎM¥L]{ip~ϐN66=w.{n(aQ!TÀC9 GmHD7TN v$s.*Ļ:+ Wtgtx7:z9'OE3L Z?]6.V;O<oLֈL5a):]ƀc7['< 9W_1 pz'Lp18e0KPwOG}-pV!('t=vT5i |@U :8I&fKqFncQ:k愰:5F}LhaFI VvK{8~4 eTub}"WjwO?-}b *lR1m7a$HIp,Qi-F+Eeeq[+ {(vrH$oHj3qab - y[V@0$ZH]m&r}c5HmyY'09MK5B=obұڵ&j/\\=9 ~萁9Qvҗ=KdkKoH HơO[P@].vq1[_0u28/c_Z^oB?vg(SfBmBh֦ P4 17غ_&{9-Vz&\ Ȯf=;^ܼuU 8Wb N*? ?qrch#IIo'Bhi1/֦?~.4?$GwHKJTKH5 % o̪/DۭjeUa:*?Vl%I>-N,{m\{ . 8Cl",\QwoJ)*Q|jt!V*T욬4'/S!zצn N =D+o:)v?pZ7Mj&a?UFj3g%?7?S'0@3]jB>v[ ;^ ·E{lT|Bk#Q_EzY! qu`L46<v>U>*\akW btE<@x'Bu$P*)DP#'T$=?{'qB$h?&ː4Aj\Hx'>|F:?lh>u;ShPVM.-G G_ݩcz[\+9 j-Wcjˆ&֢[7C5.5LX\+0Q$6 5gT?y{}>!tXƤ1- HJRrTp-arh*4G A7h•6 b=5!C c켱Vv^?B/YYQNf'c`lva׉OswV͟2Ćh{!޳ʣ|,:gf4B&w@U~҃/TƄt4gw?ڝzܾUS Va0Ȁb߁ODž^uI5VqE]st\ogXpkvR}@r<w`V>#RN!t\rsB,p+O]x]:Z2#7G!~DpX/'ny)Ϧ ;z#TM>.iw c" =Shq03+8ˤo=,0š" !o>%cc#v<=݉H`׻\`S FuFm%)̧*FpED?Q%L-I#.׮7J}FQ~~:{x35jDCg+LÆ,9;D5IGoӐP3]A_-ӕo0ȏ|xgH&&|B rHv,ahp"Rv8ldSoV%i$ ͒ =&b<;P} hd7f'zӾ}U%?d/$ÂgۚVmv2N }m5ŵ hM"] fC5 ^K {Bu5m gHuvVHnӸ%Pu)ݹ';6@ I!e\_>JʏHZTPyAk VC*)MO g,೷ltB^SGW]ja? wt\}o;bGsL(癢wi~U+4_vh6EG]S7 ZseO,2*k5cYat76ƪ!cBT?yGX\PjUj(O1\aI=BŌ9Joj/>Dc[ ܝ;1*\ԁ&W3L3醥AMMPS*G9'BO$RE8bU%@pݪvItaݙpP;zbw lq|eeVnQS+iqt79=lإzv].jb]OuqrESXaڡbe)$Pj28d=u]5H'tՇf bpϐbBH-i?nG!l  4&"o`I~A`.ՃY3"Қj Rftk(8`S b~r?Js>gpE10R cݡF&PîI-]NSx q7~muj{ iRC]HaB@+p/Pjɪ*V8]h r7фRvuFBe $|?l>F6vFKdsZ| -NҦ]hN53Ag 8s&ZڱC_~"QN_~f`og=e9w2Dfz /À8&{mvrS`?5gѮΛ.}vyĺW9>'DpAS kOف!!U [QHhtK_|ِ}˟ TłKinZWApўތ)g+c=ݑ.u7QG@H@pr4f"?N Rн7'j3䉚񖠩tӯK>IA>n!cIp`L5K%ﵑڶ}&:q~l>o /x--'f@4n&M26uevl޳q V z(P]FɜL3S,j9㮡&%%u4F?׮pXO,ɞ8s̺فW+ãGW:%/GU4:;AG֯`Mfkd|K͐rc` CjrƏK}qt ˰c[;C~&z#2MFEݸ"8x3/rC-:i"Zŕ 5R_G8\HF Q,CG(U*PC,ɜv-e6&^ACLM"38/4CؕG]um''G~.5FOA׮d 0EՠdEӖ\Mnlz5:taL7 2.(Y޼HmVgfc?9-(yVN3|Z[EaЋ.r deopE=Vzl DsΧmP40XrcZ baYh3[)^,+)]u3Jwןbt16Lt UpnbA,hJUWrxWBoTt{i,1g&V,,*T/BJ Y2Rq ڪYM2d}3X4=Q븨L*nVsS9Ik:0j1h@EX٭լy ***+ IUV=A< 2;j$ v 7ӾZ\G8(E7mOz!͛BL)ojpy;Mლ2vGu⌇&1_o--?tIP n3KXi<P/cOr,][G|x ]|XC `g6轑 iٵ`yv籅1f7k;̎N[/ փ 8<7o>DoxixK` 3&0EԹt\ | wE0|e$êp; ZWD"yC7(3(#\"CӴcR h( \*!z/77zڴqNLCh*!İP[Ad̗?Y_7P݆/v5qrhXȿ/KY qNcY2)qJ@rg&r|]xn{[il>PU2gѼ鑓d[E#ĔwU}ۘ/S_}JZs(Cut/y`uT.gv`୎?-_KR1Wl4X/pSQ+Tنe\/d4]ˆ>$[OuFTi:Yʟd 7ib5n~K.3~p2;Rݙdn邦P oڲll@4Y ٶe't-ȬZrE()W8Kf۷q;f[Wq9<4Fv^{jFNYCBpZ+FCٌ(`$1c2f͝04LSS<wCg!F N @T`,`rpDR(@N6 C (~d* PR^tE"(^@O=@"S+IOYPyhqbiP=ACAE9ɰ晑gWʲ5k/gSsјIt+`>w" 07t޻Ue/v:o-dwUA+5%~.˓O~H$C#8kxl(V3ʮ?zx{}_jɳ%`-+YO9%%cǧJq#zUљ6ot64P.fF}Iܪ\$Eieٗ>Xn;I~QFJ^طњCz\e^dd-Õw]Fa'Ƃr=.NPlW .'Ai32x!E'颌P̔$ɘ3f͞+>K o᤾"u˰g?O޴#TLcy˻ylJr.zׯ`J $I ,~@*1(Ď!!Pf<e`؟wӑ~&'H6q$3Z z1W?MIgu՟P;g@IO oÞrRLW7C냉*<ڮhX]g[W/gh4 Xifth2@ Er†@ܵyꐅs=>nZ7/+2@mkt+0 |.ں8yDؑ_MEzl]3EُF H&(1DZbŋ{QBhr G@`5#ř62dfKٳjJFE'v ÆWj &d]v𱯧qú_)בe-Q-k2oO1~S19DM%=#.?/f1! bP =cS{&ZyA RDm93QOO4A=;P[tU,SC4?̢ B:c">`hPq}BnPD9KJT\(/lM_Hal+ SLA j sDD:m݅Cf*{+]oBܥ& fp⦧i''TrTgLRJ΅-j>SА$/lkZ@~h7ūaZc}S-Qs̔Ws=8l쏹vo48"Pdd&ꟿbKr1܈ݖ:Pyh! H4MvXæ7C_'2eUkl4M[%1C~s6͆,f/pN^5+5rBձ $r.\pf0 YL2f =&4!Ĵ/ pa~_E2O֞WBU.+A>Phk"]Zp8&It\Ͽlę t2mu&eЮ4;D啋Q.iŶ-LzK$Sv}|q` >9=:BӒ ^uW_ U-w.mqr+]{]oy~a:`u}8s!"@x?~ UYXcC$l@nq:@W9Jsɚ0;7Ϫg =5~d8{ͻe!টgO܊X/yo+G}G9aZ4ic`H( PI] S\y|u,K x8 ]zւQXn轶_:|Ź`iuCg ¦+[`SȷQGW[A[X8db eOr[%RD- .G5ONsS{*7hoǪ) `o$W6CĎ,¾ݘGmck0-dyNB7~}7uz!Ew&T۝֢.Ӂp',X#S)wHG] \C6!=ֽu; &.٘ bǟ]q##`6G;CFlEzxڢ[AsZq dʋ8>K`1iPaCHH@wSbq}Ϳǟ&7'iZG8 rNxD,'gzgr+ױط˿;AP3Cs X 3w?E!dNɈbo,=Or,rýC5C9R`9Tw7Zo?#ᨇ!ͷv<{~Y^8+?e 22,U3`z.j-qֽE0V)zNSVR+)AA(BNRҦyC]#$F8G[(#p;(*kq&'5HH8[7ȼd;% x N$͘a@$XRCu$3N2Gx 6}á:jo4L`f@;tH# b6ma uJDu Y>e0)(DHd-! XςS_}+A_vH"|7j~47QO0|ȇ'ms5]<~1bxH2On=v <[˯ϕM͑YՍߍ7k`mQܽ%!NZ >;mtuը78WA2 gʦ 7F4@wF!b#N c#sחã('F@~l~Ƞ*N~ 1vpjZߝV [6_HXBvW_Jo 塻oMGM; f8;&>dNP V" ),gӕfq> OGw/ >?a؞"ή0U-&g;(6:`&Fm̬`9y*NIg(EBn6PE $NA@bßhy~fc`oݸa+{ûaSƳ `ڽ܉>CB:3g8贏?vT8g+0 01[ Rsg^l_X[Þ;3謮'b=qBamA `ϳ OIaɆLd&b?C#0y1#ft21h2 XGMIRTՅTq1VFƇa9[zQ 85Ys=,Yk 9UQtٲOR?dʕb CcS: .?kuhuVoZr&cB0O_Ԟr//>9(zV?<`oD^!좾1!d40 {Hфv=8ȅW,n>h~rz_bPՍCܻex珳bհPXؘ1=6wwSh6_E]|ltiyϽ艔*޲KE75T wMwhvo\!smc/ ďf s.aJz[J߃CŽn}Af4V9'?A1^`|*Di X1ht=績_[\} 3IL(vx0^^DּM@h PN.^a.c1Jdɝyh]Ql-f&kM {=d7oOzAB?)CE7_׆GO7ڷd˝z88]Yw+{+m;6oa^#m␛QXm̈cZ{1R=p߃+Py6F:`{rbzU0 C`~Ǭ*ð5^Z$U>0x8LӓG Zkꗗ=~LJbOu*QNmJLáY j=v|O+!?72}Si$D xL;ӓნBd6|:uF7Pǽ 8)C>'!GV` ΪnM 6'N> @X}<ׇ$nKUT l>i%f|JUʱW)AY+5R'N 0³ 0•BJVVrG"f`_Pރ>eb&0s"Rlѓ\ԽDҎK3>xf JKgHDB7o1>25zˁ>.tp>:! >֑3 ?@YTUB{Dӂ2 ?sbaYJY|ti -0U4_f Ѳ<| p3x(/4M11) P={%m0 gvR+ `oVFc"() AD*,A^ bFƬ…@ߦZALB#* wDzSU0Nm) Ȉj38y?:zls/ʹ:=ڐG| cSW4 =ٯOh~}#Hk=sܮ?OECFG_"\:|\i h!FM!P ph(c^]H#d+c3j;j2渚Yq+W#qz^\3X Vͣd& ƱًKޝpŗNi`p|6<ݶзx1et0}ۆ͎6zNx°87"eexd.q) hb̼Yթ0nO_t%;ŃAۭFYEn iՂVJF~FHA)EF<Q-!"F)J?E" 54X}\!];QtsF+8i]9; c|) !a.<7EaD?}C %aE|!!c!v~FͤqG9K~'VpAD?w7懟5;{CC P JdCG6BvH~?Y>>{,"!`?o@b ˨4]EIHかKQN@l?gx.EexO8z7<m@tI| #Vvx "%Hmng%pACڎ+8[o0ӽ#ӏ-@h !G5CpPmT^̃`=tSA 6J}o$cD!86;fՇgi~H,ѓ0Py;woN$l"'"LQ~̎,C`!j(}IԔTy?VtQE0Y^"Qߢ|&w P9 Js&M5X1ϛ]ՏnaO uWi~465ܳl j?1_҇ jws l4O_,~9!7zCYAýwM*n('=d L/ |bX.S_=h>Zty %%2bVɡ TwdtX&bWrcXN*X+`-а.lF&!IlD ܋xdWn6jy;)`g6Hk At.4(hGD (H H ȁ" "I" ,H tK 5!кHDAj*ȒH,# " 2 <2"HȒ M.ккSBU֒D$D! !Y@P@B.4uIhZ%0J MB I! މDEYDyX! ACD!4u)QSDB.Ft H@PKP֗F D44ti@.)#" Ƥ $ ,E* DIDJ"$.EAAtPnWANWA 2+ H" I"!"Ԣ2H H HցAttiM hD@SD:֗F jA ȣQ " @*,jS  Ȣ~$I1j)"$ H B22 , =$ZH |A$AXDdJE :5NZ]BD B (0M . .C Қ $"2  ""H'TT ?tDBnr!""ij&PI KU55"֔ti `$J ώ !""!s~ٽ= y;_7o)v$~/6>W5@8=ej;Rm4b` NgɎV]aZpTPUP,LbsdHgsG|s C otvcuĺ vӱӴ:à `A_ms\pb8WR'7EC!7/_|1fsj}x9o4U?}U!a1D8e'oǜǴZ_Q3M?/ڶT:7kԄ`|5~a!"ïq {s1^ΔӖ߇oiħ[ |9cIx}ӺS ڣggilV@`ηuݮ~/I~+9!ue~K_mw\`,KEHVRf#Yb@"At5j{81bQ_A02`}CtsɃsUרk;fX[#f8/OfCs#)XL,Dc@rS3_+"7! >}9"eDs:z~ټx}ٛw{r&l;Y׏@LXH;\m?îxwr2s vhlJ>!Ÿ6 ;eA頦lB,Q ְY*I lm Wz=??>+howo~gQ}Fp-kĜE97ϟULn0RƽtiD,A+^eV3L8k25 RpNd8î D݇d:_={vo vSxC^a}"\߳o^~(S:S>-?4N⍁8EהPχ8rL4M!)OQyG%S`uRgwyDuƊQB hna.Śq/D`Q20@d2`ɓ'6`͛6p$2pSDLWk8CtJ+E1;˦rŠDi]oӢfN)A}!p?,Fj fM( `Go3 2'n,>a ۡOf9ϚbB_~0onwz~LwF1syPHsM'^FvC;F;eu4GKz7= 3GnCd߶s_8.]h -*P}d᰺=$9A aV AwHP*GN5*?RTTe_.gw;+o6G` !VH]-83}3?@Qg{?N 6L a,a&-ꥺ8[u=@?g Xx8:C ̃T6zȇ iY0tz]_K[^1hI[G9~3ͪۑA }&c`fоΐ3L;)DCX[sNFP-ԠtƄi_4y{8Z1k)OZ?&\!Ovt4T(!:zÏ`Q 3/B.0vE]'8)鉟P}X&lJe_|m? a>Nݔi ~4,͞ 0Śnx:v^i6? hdCB8{=ѹ#m jbuĹXp9s ]`[I&̂@1 .M`e(& ߦ &-5pùAdy4^2 2Z-\ d`/X -zh>DSh(eCw0cpu|G c)Cs?`=dԔ!˒+֖BLfwGЃ⟕8GG)C{W#{:s_qP> i?Oo II#8TA&o谴wXa48."bP? Fvx C]ُc">bH-l MܭIKF90WtּNB7,["fzdb`U퉊 r x⊆I>R4@i{Ε;Rv7_.̎k#lAu239o ㄅdv2?3X{jw!)ƚ~d!ө5"q0yyX0 \>Ά Cba`Xa=B ެ 6K\z0ob6 hp0r_if l:{h#jgߗ>K>V聫Vp) *j֔epV+XJqy ySVYXӗ\e@-cJ5뀷=y:fqp]||d] Gx~6QLɄTa+@^zTQ (|C5g-rw`8S(xʔ+ 3{m0FPvIIruV^ՑJtI/BR'ubs{/s \=k*O?$jCb&a!` ~{(OarA/Jo'I2jSYҨng =!ȀC<x3 .2Qx26* Mal;UE{7"vcwkCt|JFA*}VEr rxԒ'XdX2*ddԥg@3j AT-,7"b|oL9^`nz$=vB!Ƹq 0aXOUVږ4X&^cU憺Gڹls i G皘lt F t֦ jQL?JpmY)u73w,]](BigQ;E5ߎGlb}/7y|=U;qs}@P Ïe.#ȅ*r=$$H$,8:r5i&Pk>y"ܱ/O ;t?8CZk=0Ƿ C|1G+4] 2tƠ֋,HU pT Bi5 >.3!1ϛEj/U T6*AOTUD~$JA( JZR.40 3rY7\g& $e)u1}+C@uP::J^~q:ӂܴx`H"gz_V!\p+/3?zM\KX_LĎi }GLMn5mK+:1Ypu/hZBL{Ծ fXPJj J `AAA'w8>P:CC!<: b]rpjh[Uѯh]0vm;3Ȩt">&jk/l2S*S}7{vH ILiEX9XK_ݤbexxVKz}ygJD3]q"\B?Uxw4ܮzVHM۶h!g&B\vR%H+Cq#)-GABiYw*JTQpu.CQ41E\%7 DqPa]ϩ919)+ W*I6JN5 /]jXDE,жBVa[ϼi](wlw-!Ds^y[}v2~>/}ns~ןm}|}wsϽ{\buW}z#~esK.oG427B P0mUʛofE^fh]1ӓutzPgl<Y؀'*;N m=`@RAP#ʘ*"}b\Wzi}HJ͟~Q-"T$$y^5/nw^$z4K t@-TeV#Nt#8Zx]1r2qYy~Ku=dp;ޡٓkTp8w̿fh4+'{# ` ?"n$S#M>A.>uur51_?4L1hURƔTkJ'mCgYJKÚ˞L%LJmlߌ+"VU|7R86UV(-<¨}w;lEafU>̔e[# LI2l*ʼn JWJր\.c΄).;CeDҊ^2H.~и˗LmU'^xnQˈW  I!> /;>^Z]w 6F$xUݰ}Sɇʬ8g:Foaf [uAXgN7Q{?.Cm)\'wMV,\\V9{s*AX~]f#7NujɞStN6S5eQSTUU9 ꪉB**CSE7/m7Iqrڥ}6^L*$H7ܓ߇a'iͽ\_}g:B4Rtl'{O diNDG&XWkQ)L>{ qQ(+£ בAc.'JO QVlF5^(hW`4yd/-߱2C!C{A nrj Lzix˿48@J~ͣet("lE͐'0pY&2PNYݞ;#F=#z?'c>c%Lz/HQ84  @SF,@ "RV|'0GD$fZqqVK\"IsWF.ONfi!1M4656f8;!ԃ?.d#*7a>GXY xxX#@ī[(oǼgX,r`+`C:"XNiS>KtlZ\( ΁7&e=\ ӵN;K# F쌐ٕ+ד=t TKN+]D+>qR{)(ȕ̈unq|(F/mNLF+&,Q+mK _F\Gf Wx:*Cұ3ʙH\ ȼV EV؋F2/8ɢwqlE NΖ*(@-WcgIEem[K*38,.Փ& {]aj*{je95]vO64$"?P^mVX*-1P ^3= ;.3qb̔Y ŽaJtjomP>uX̩w_6or\,U_ֶq^qM~M5^ ;6Ye DvDnu/v ]n97r;?nL!B02hOkNNu-B0叾Y( 8Fgv[dhu: A#}:?pR~R%lp/". D) F aFC)ՃƙT/9SF);)A@th(٬Nl(vyI ^Swޥ @ NaБ{nG؞kpsxJ<0FlndBwG;o}{^qw)kc7hۚ}|đ =?==Ę/w^.,{(mgí.#sxq;Fu;G\H"esk}mT~_ln̖C xVnhT2d nP=TÃH/:_SN-.SkNMt-^q&'O _9`+(d ̑rFs0dDc,BQ)62jA mFiٴ3BS .iRM7_ WXK&ϯ:Wg 5֦G &"Qy!mPFH^ O ㈗}{kEthTx>S: h6ssH/ ᒽICMX/膿+ʿYϫEBpt!jc *N 񞕻5ʶ =ϭB8`ȫcWǏ87b.^Hp72m2B(Ek') ~뙠OLZ:$؍A 6%jv\jqR6C8G(L6l/9_,%Eѷs CzXHE¨rb֦A+¤Ut4n7Yrp`2/ۮ'EHEg#hS+J`*E]a+bq.79V"紐b&oc,nTֱEQQnM @HQ́Lo_}»~^{fiypA^N8`A8UӑMݝvwD{ Dw}4@IW]4}Ro]ƫ%Lkfp׿v4NR"G<*BКSr )) |7 P2$?b#,ApwAy3x 7t*|o8akk93 ֆYk:rխa -DZU_̮2-M }VHꔍts-&l? '+T2fqSr˝F`ějM2-FAx^S MllIN֢ 7HQw;9p6np~ߵbBo־|נ" 'xK\_d?[*H@gi`T,Br;c\/WJM=_ */;*_%ǚoZplǕBi5oLJ( AElq0$+L.IYٟCWt¶WK)0ݎKHzAjp5skXC냵vyzٶX2ӆQ>NAsqA_ÕK(D0g ^1QƀYE@RHs+-[o xkզd\$7zTTQ(=J< %) #AE*H\~PuԴ܇J\OE`ʼLM{:y$7b a ty|*DQmo~CRjkSnn@84z('f/Ƃ.M-䍁9OD*oGlyE^a^@.o蔚M 6y:)aWz_>*KżTA3ѤD&MSuǞh4ҕ;/kɵlOȨ^t)}UU|էC»tPШu?pVn 6)Hh$ ptW%hd`{g4ռ*s8 *; ˘0dؐq( BaqȉX^̏B+XtC'H)ՍGIj**Tf.zc36MER<3zs-DD@.:q6gچ@ 멱9莉8览|ՃNzjVqh lz 4pT|$IrLMn2Ll,/aeXɕ(v#f!7(>Ų[0la|8n%50@$7>7s6GGt%u=# 07nʶnͺuҎQTw]SM]IiMtIa"Nd[/yunk}[ ?sşh-ž T2OW- |T)PZI8!?.}T|0EV6ӧ9ӮPbGVE p`-u؏&da62d2dS;s+88fF߹~u1B@G<R05A>!cj͐AoBn߯uez{nYsz5a@dT  Scr1LuG*MifOޚKj"|oESs BX@_|"cBhX &@TlWz75[, jUqTQ%(F#zHۊpE;:$_-MJ-)IL:ə,i,c'ֵ˟!4a@1]iMzR;?͹NpݍNZ}CY::~MV={8+}[G:7MuAynHT s2 1N`G =ALU+ Ҳ@OLa= ר=4@&jMC@Tî6`v<<^ǧĞŁhbVlD&OVv 6Z⾅>i!eѠiMn7`g7,)9 #E͜_EYPˣV{e!$Ξ^H*}{ɇ0BCO!-$wKWtǗ|JLET:mHG=O|~:Ihɻ1sR̗kF}]}>7. faBx1A5IYE-u֐جHiVFe V=ByuƲdV5(a|9@bFT#38?7.$Uz.TkU+Ufr}1Qz0ArhƔM;sOx&| HgbY<Ā0Xv{?%r$$^ P@2ȁ^j|"kq$6xaʈDM(2o GZl[=|b!~'L8X>b'݈u!bE ݱ^Klc*\ 4`PeJވ YqԞ%w/g4i5#|G)"L 4l̓.=]Bv} f{3x)Uh>"J::8(,W䩄aǐq>2u yzUI/E9s3^6cT"U~x"*'iԺz󀥵/E ]sЀ`ڵv{2(wak.߂ ߧiqh?ȁnDlb7f=ʣJJΈ| hX3!լ_m1]Lid;"BIcWثxyw&"1g`q44?Iwqcn Fpkۜ| ^u#C^Xս إ4>)qh, eO mύG =U}kл+7Q|)俷Xr=V(|hFH3:ޙ8C_RbmpCQGF1c̏) )ڵHZQ3` ,] rZ*N.ܤ6*m-W$gpaJ9H*'_o p"I@6%DLVXus50o{3pTW%ג|Z/X@Thwnta_ p!_s'ꜹGSe$nD=;<%zR"tmp`1p.nEF?PѰbQF4iKKl H|p2ɁqR 1t'5mX o ޮx8WIԝzjV08:RE^5JfV4yPhܼ\Sw>Gq ^oFY`y,٦o-*eD/<}Ӄ QdY&5يjY)o1LΙ| bqa W"1.섐 !:zOs#đ^8F@qꮌ3l!ruF1{+̧#7z+a?h!ҿMq *Lk{G"z\ҵW0nIC8xr0 W%1أ)nTF܄a;2|yǯQk/# gM*z'j^\ށ; |?Cik03\E|}lP`3+uKށ}\WSE`+gZsv=ݍ$.2H|.`}9|Oviq?X됚MNH\*EB1Y,Xf/J&Q- "Dv]fEw+^ =!0)'?JGen [ڂu忹DgM4qf/Q4q)Y_R1-p.jtD>RfgJ@6mlÝ)^l:YN ?gFUDJx)}5p3Ys~.vAS˗[0fn8 ڶoS}z+ D-,,R+bx0^ؗ ^&&<̋mhrJp.y"S2Y9Z,rXZ0鴅STiۋs|J{ bh@f"Kή݁91xu$ ҟyg̐9*Z-2q(Q(]T gJ9j_M m[;GH/X/fbV!9hq І8[ӐExMNT%GN>ĪuV~3\4Yb ˪MҨ:Ӌ3o| z%ͺHE7Pfg kw|oh Te+KHR d yȟ:lP8# > ȓҺ,Զ38MxPU/<+]%^.+D~>=rBgIe\B5C}.qmg(~F++P? o@չ+9e<`x ImcB_os鮃E l^a[A!w>;Rz(W~ j]p<<*z)9}DKfE+#H,5 F풝AT&s"7U*zk忤 P03l ֱ+ưodvY~$:0Uu:%1mVy]^=8fpC|SO~!)@R"; WTV^-\{8/e͙ļEhn;:ks6򣏰gZ8%[#ڶda8k@|Eq[;8jץ's٬YM96>W1eM*MQW~! w2cnylŨO:aWb#׻R"WuAXX4ʒc,+"&[u?Qh\|Gz~pDY^ 2+}E8$(0Ge ݈!8p ztP6 "qVoL݋s/W/S9I-X4&zRf76nɖY@2H),#v IqsHct=<|lMA~q3٢6[fr;I"12319k֤*Mq2TYUU^UA^W#G7_y8^kF L{H?Sv~XalXl6 ^KŅϟ>|O>ע!kvw kxC膶3)~>@!{ȦF0XBQHY?5EF%lՊɏkr-b@@*vTA{6k(XӲ-׻l=v3 :0?y|pΚNJze=wH#ҩt:t*vJdU*^+ KW FI@S!q}OI5@D/ 0 9޵iw̛+ .ӮН|pyw 6`|NnORLXLpo|bB:nfau['켔 ȧۤkNS64TS:#+zx]2fj>tGn|x TJw"BtK"_DJoŋ[4ح4hhO1ƯCwC[8W .?rV>|a e.\vB->eoaQ 0e|Hj$9tlۿv<|q7FBjmZTI0;T#rKRL*UFЪp\W|d,X VZK0`bЧHlYs99b*8x *8ochl|&hkvА./&M9{?౜۸˚M ۦ 7$ek48j#6.DsXswXzM ĞMY;ϺrȴnG,_毲|SY~RM~?]DBbCA^$E%"SD {2p`dBFLƇLA1)vwGIhSvO|}֦;a$UDI ̪[FW0=ڈmB;&$yS  в{!y`dwl*9K/J8 ľp ^; 983u x[ !!hvxxxE/v{, e{:+}wiw:.05Dffj.zY4ivȧ!d524txxQNN?8a)O!r5uCn)g%RUE4i:4 G^8}5&:N׻-t3|dz3tm <+Q wc y¬žW1/eS$Ef0 3d.]4,c z00 QAII J(  ʁQ6'Gt92KEOO[5TMҎ=Ǯe³jO,vg%c]ygQfМ/i""gFY a:\TX*I0Bi8=2mhL:|;\5D1<9"T_dIזK֟Y;p31h:rQ1*ѴSziYHxF9f4r UkCާfd5CÕ4ԠcD1 FɈ5:# `08Icbԡekjrt_)ʔ[d3 ^:PTXbM-;v28gBmw2þ:ÝøR^^.%^8rPbb=J*`w4R4*C`hkib}mடoz s7%ByAhȵ!TsHC `r|>w^ζ7wYw~Jei s$B%`U8@Ǹ~7I@6S4;"@/Yp9 鄤_s_9J8f!j>CgkJPUX~J1֍] hQX4-ϊiU'픕y5[rɦ+ !h 2XoWתśG ~/7ϫn7pF.& ؐm_؞+Òa[ɅB\PlZ)RXbAh-0hjrHtQHH>)Ps=U *ri{?ѝ>+뗣 ]b]Gm6 qĄ?0 P~}mJO% 0@WF'E#[̜At>fi+^G+ݤ<)J8trGlY7/6>T ^vӓd-8;{پ uo^࿯$s%TC#0uQo4)rһ?>ȯEP}y/L n& z0P0EḧTA.[p it{SodHp3{9n )H'(R9_1HJ`s') Nm&O+-ǂY~u6 IAzF2qӪnn1^O1 WSqSuq=u(x1ީ_Wuӌz"szc)L O4v_% Xr Ž?Ȳr=dj]e,Y\<4afK7 AE} X%QxF䇭vf&Gh:Qᓎ{yn;(7zT=heǻN!2iłXbZ_%~^/_0,Walw n+$ 7O";)yNkFE>m>ZfM=;<_%R_O=tTҺLTRvWdUBbӳnz|X2&S32xLtKľL旳 n8L'Kɲhdʦ"!/?LLJa&ue&v3Γ0F&E2闗M52f]&v}0#4L%2h&1hLK)L\ZbbSNeSj$t(ĦJoNbbS/.ytF&210qL#)2)(ZTS1`˷Kn)LbbSvS#;t'Nfd/DƦJt2 F&ZQ1/;:ILJhM$aLa;:ե)e5 rq2 LhN6S+JnIJ*LLJiL4.04ɁPˤdS,ggS;:j4HhS 2L\Z_7MtLDBb"IHS#8ղS(dL)e/)S=2*$ʺCUy<(T[hL2ۗԽ]٨gfmڻŴPۗf/rBYʙ+ʍp.L6~Xjێ{%3(w,6b!#X r>"̚|V"8 >pV^BF1B[՝W؍bGE`0o];) 1XƇ5lGE#tmqaX4]'N'u'$&@5at, Xħkm3XhƝ'^;]!:Sz \cĦScTkZ?Oh}Nܴk&l/Ã|kɉ;3=9(.m6CDudŋ2˲ fV<HWI%B{p%NN5C~W(!'10Z+W Ex դ4H1V+̂ υNcv &Tƍz?py5^TPBv.pfjtظfݗ͌|Pxn{Y10H͇l¤Hge.a]:e؆mg'YT [ϕɠJV L$~sy &5C޺jC}v%G^BAw-^=1WqѲ(O-Ƽʔ 9t <TX]Ekq[b6S>F(vCuCm5r' m=pW`p'f_2`EGY&z]WwE/!Q#~^AЫFwN0]l\g:i &d>M$`ff[ ܈ߵ`Bb2qE CIԈAHrR+ uq[DVV֑-ڸJpR8G@ۤxEz;+0޳_YHHȧC'}>av~P\"ʚ0pW"%ʑ!+g0סZ1x "'&ھƳjoӛB; HZ3g1 5rʀm vv9{ !( o/paw(pޚĸm~@9puAٷ?A an"U X? ɨW=tn8 0 G8kNw|acmI6V[gj3v1$ ^$(5yk0p- ΰ7%A>+g~K/!ƞ(=B#rP)!4Lg |Fkʯ[> T*R.]'Qw0p-o+DFDsH}X3K~rli+t֮KNt_Q.ݻvۗn";sREÏq[{= C0{:];lS 6 ~ 9ŸYhUװb!5q{HW|+Uum*=ӴF;F4cTg9f8:ˬhِ>aєfEG,发?2j'nž̅EKsRo-`.Z65r& D->Hnqn]Pϝ\T7%Gy]Bw;πʂuΟok7S?jM|m&p0޾:G(=+`l-jNh(؈8*fiT1]rֱ%DmX[?adQjֻ |,_vcD̦ˌ~[ YQ\)!$㿩V&COWGKFC^!lN]?s"5|J{)-|T@M>+{`wf4 1>Sz Jgujm{R͛qo2kո'>ge򢨷$T{׾9.YB_6_< N…3n8"7@Saqp.*I700'XԬFs~d3;.e^~KvͰxiњ`(SuC(=)@[Pk]C@ϰ Kw!\גscګ>6_\8bwkiW?AXi|_~iaw#X׀v\"ϝ6k[GyqoPsΟ0x{;VIw+w|iµKBT$"דb],vh3~ٝzSW;,GvRo(89ܮfX:0[ZjIoD^ɖJuDGBD/gtEP\1l$'ڰ̬l 2A oؘBrjQ NDd4^zŲ=+%x&h~Haz@G|P MHvo0`.PMmǥ *V3V. vhfE4|H.d̈+skh[9SC?@ǥvl( ];G\%{(;UEDR9S0퐋ާ՛i{0㖨-;`O_'?2> yX;Gr*KL4h|Cg8z6T}Brwh{i%L^':yH_}xka>7o{o^ =FA ÀN7g`y3| 4aVފˏ6:W6*zqK$=@~~}?jyx oS]YEh|wF:ëamak„l:Q{nQceOhx!YkCVc'9W vQmRü]Vf3sVDI]z{I=s) $Q\%cԤa#00%`H$ߧЂC&[dn P[(Q K/f!ap9wh |⺲odV)67xxD $:/^q<&F0H =RTL]1W>je~ţYnܴ+xRO8u6PDnϚHH}88g{~9cE\&a1Ϸ30QXRA/ 97>A!)'y\7wkMLmNg'ɢCrZ7_ 'Z0D[ (j$^w'Ag)ž ܚcX٬b_H#1dip>BtmhWkz"1w\8p ]t aM^6Hi!\G=BGw](5]< |\b-3w78uwgk=ζ;T$_sZjE|8&A@Y;~̯)Y89>|qopWI'sx%^p@lu c>vѼʥ^KdR*GS_{oËkcZ+Z\yc޵wMkV\A݆aq!:x!I'j}ιAMcAVwSh;ܸ{^BkSRmU*s>ޗҦk0F%tM=E _)k"*%hԄ@c\[@١J4/"w"TIx\p_{,Qyɸxmu}jO_H?"Ϙ#ʖ4ɦcF ?@EEMZ?&\hc,,GQW*|+w̼rRH-6Gw97 mPѬ] gTCT5yNRb}+u}ogBFgi 0w^^+L Km߼DESJ D>2H7>)s'] Ω{ې 2a'GT&~%Rրu|5 @5C7; =D{Z2'rK 6etisc̷Ҕ*4yLB5ۮ1:ى@7RH8Xp*azI* `_>0Z [JQu]M\y~nRPNg_;aM/P ;eXtCG娦3YC;@jhVÌ̗AՔ켿ly-E`JP)i#RS>vo+rruwQKu5@zti3E;+q㱏/Iyٸ1܊'0 `f _D[)] ~&p"V#Hӿ$嚼@TNtBB\ CgJ"Tǽ|*Tȯ+ëqe@юF/\ 47!sȽ:R=$H}짮mcw{$6HbdtPfn0t?v"iXȽPoR.(Jm@ Uv6͹z`N'hXЬ}>,oOPG4 KmZzp9vsY@sBSA|ZFOnqHp2foe*`-vT|er էr9`{ȟp)#1$vUP=k,V+FC7w:*".\_ԢwX^~<~5Q( ޵άEgt-֕..JE<&UcI lJz$Ӗ)+A+=i܌TRO)%B緉r!q 4=&Xv<%ij'c"[DcG?g9CujB& s;TuSQ^z4U!+fIt(N KO"՘814#?7RFU yjgkD;5EW7"_K) =uq 2tplHJV JDF mA]P 0 GM(+K x%k¬-pNȩVT2r7Kfe`!kԳT|3EԐV9 RZ%r v$iNÜqX^QKѫJ?7UAX끵UL4sYmSWMBT%Z5ZذPߦp*u!iwG ? =2bH0jRH1YyELaG[VpSMҭ,qU8Za:ja+Q)Q^J&eEf`[v{=bK V$m]8V % 3NmG@lb[H]ƎF?1KdFe=N-R^\{yjll/yO I? U]lr[ReuLt/8b>^/<ֿQ5MY@ 68ųqoO0aRRr?CXg# @/D~Yt9{voXdt7m)ji_0_5 -6M**% *¼$I.GJ];bkմ} ۧPqPW+Hް>Ґo֨A ۑ0j$X?ŘSvV ~wC#W瞸Pp*Ýۻ'\ G&<1Xv+3шx%-ZБzeĸ1: &2\ٕm>  sl ?r$ \~/[Qa> <ӥU+qg MmgSX lUmёvn__~qoS6@(pfLK #Lڐ﷏|Qӟۢ?z]'J SL\:"B}((( ]#XL .QtZ;?Y.ݗ@X@,8 ,] o56XG"UmN-1~dl)GHP^ΊJ$p0;TG`RŊU)VX,XRţHXg r+aHe)Mz# zմjkH0~0& uh[WMÂa# 1y/E"0_6)VҎB+LeUh`+2WH^sWK, I tr_-n2@u[y(@9UX2,W8WF]qg]~p{Vt,|v(,9g&tK.-R樰G9G iS`z=tuT]j뻸H6Ԑ۷%p?2kF̬r]*eQ:iQI~iΦƤyN]_qRtR _2oXCatfֱnjWx@ <+-BFdKź.ƨ6 [-|qJˢHZڅ;b&$lܡ<3 ˠ~x._0ֻ[Sl`!J$W'Oä?V |I,=g{ޗ0C5o|:=F m)..F#ֆ+:jĐ*4]|>, \,ll#B$7G䋠6QwC\cl1T=">Y"GE\[!xg EC]pls ;tl? ',?E*{$;̭[;XI,a UTë; VU2HAlȈ:e3Ph F @B.Ku^s` H)br=Uv)b E@RP0ҥܪ(== 9 TUsW\r͂CLnRth>Zc&\NquFNڦudLo tORZbMc1 )Oai3&;œNuf sR}cGN_MtA,tʐ7u)at,\]!ìp\(WmrzR+->Guy.)Hd!?898NSD \NzgũF*v6/:%^{4-s$չ{A@̸v=dCGjԟ5bs?Gj oX GbutgDvE;4~qP:;U,||TGTUtO- Io [K$BLG¢B`>J3=/Uľs~:άĩ7[9r\)D'y@ܜ(JT PRɌpA9'eLaHΖMai릹 PqG[\:bUe zy YA [YGzfI+5R@^ϋbb,ߏu"zz'YIB;EFRs/(i\Ȱl(3o[/aDhъL4^x@$Xrm9\9Ar{@?GNeՋJGvZɃMOu쏯8S1W~b!T Kxˣ.!w@gLlCQ5[~5b魔ݳ_;]3=L|1qd3Zrxof98hB0 #5hF%[^T܄ŽG gʟWmjCȨ~u|6P:#hhpm}u{jwo:P>A",pNx1 S:EICb@"*)uEM܈Fŷsʰ͟ v< g oN2ŠIjrO=*yHs@#,H#d) Aٗtd1H5#sグ#T~z38B{#J94 h>>7f\ p- dJIHMz'6UL_ U+_v#%K{ʦj0#kzh$Gρ.]"@/d!dNPbٞorvX'F1Qb,AuZ^*ijR=~gƚq5+#&)Z50@':?fw'}ǵ5s徒J\ F{w|@@  #Smx*<]UvWˎ7\tƷK<||8S.y.Rn]p+'E >"b3n:kIw}C{t W>/Paz"0ŸZŠ5Ŏ0/=MMrroWLͭ_ݓO)(Q(IyTRZ\X3L L`%7ڑsiWjj3b0Gو4F1@yv lӿk{kY9 *+ kfE[ނRwFhP:'RK!zїRԂJvDпEE)u:n򭧶M"!zƙS1$-c ؽ[2y`'њNO]Nʍ(WMW踃7{R)Jj*\۪x-pLvnm-6mN>Ki&(“8))c*JS֩2&?3dƊinnوgQ9R`%ƦaLn0~&slm>TcTQq7CU_[է}&9}[Pa^\Gjߖ 鄨0>cE*`F xE^$I "d |nO?uë́'J'zQ!"eWk/ 3}Q 506G TUhm!RtޜGt&/MHgql(͜;'~P;d3b:֛3 &X.!|2C2]#h "4ykOOu5HInszP\n7ku2q9rve]:v#U/~"±KW49nhԴ{k`&Oyl:X×Ke>q/~/QEepn_^QTJBe}!oܵFe>`(p~[QXVNGpm%^` UKݴLۮJ3~ 4[}}:DqD"{;փ1e ۃ9ȟ0rkM#71>2ltJ{N*iZ.$EH > ),q1Œ SzITٲcj65hXz :ۻ@Ђ_ynGJKJ'v1/'2^>ַԏ`$1+T c_?LWlȠ"Q9-*㐸)_Do3:EKTrVa0[lп'Ä5?b!RZ+<;٥W%S5sg'|xMMTɮq7/bm3vs`U;67@5+ A\;T7* r c3&$Q%S kzX+&^癴 S5?؀w*V!w'?g#xd|]*A {ndpK,d3 (R)`*T`3 0#0d2f1H]R:HNhQ2V|Rw7j[< 'x~n߆Dq:Yo( ]u@G1]2{?pOiu1(Džb8vt o#`\ 39XBLCVIRGq=4@Efҁjgl1*)bA|?nZloMr-B˻=ٟj|ClmJ.gvk_EOŬJ.<?(t*$ 9Nqᷱ]rcPPY֞qqSq@d¸ .4@0{Lz66˄4 *Ψd !4dnB`2Tx,D(?)^,p $bFi.0j@Fc6cA&Ũ^F'H<ǒN4vi iC /Ի.GҞ@ ps4аޡgZ"X2܄,Gԩǧ(;'4啋Xz&" 54`(רa5l)Ѱн_&jvEnƘov GU4`NQ8)0[IBzưg| @^ߚ-O!վ?ُo1%kVh&,w]_T2gmj Ao:L# dv_*mEep[B([\Lh孽HqQ-,!XR幑bFbOأ_5 |z'''2x(H(2-"_?a?1"5HQ\35EOr*s+y R]~8TޘW|݇C(A\+Ng{T}VE2B0)!_LO%ʼnz,Ѕ99lo'p "#p>sx 4Zp؋u9Bŧ+E 'Ru'9HNoX?iorPQf:<˜ 9V_geM#\otbf]ғԵ.uXga/nEAPqnhnj*3ªI7d#C.d:{V6L ǵҷ*e. F6AYJl' ( Bg$'X!$&nB N~ܷC-x|6!!CSYQȵ VSMrNLrgc|B2!E00{q"(V¸ݐF#vn>A|(r@U/,!ŋK6djAww"\:x} ?!8xCgpbTar& hOwmT;n{hoR9bIT 8*"B|,2{Y=}uv3)*.6 {HHDnt3"?L^I2d!~Ta1x:e;;}_nx~1Hin!<쎨!|e> ur\?7S9ߐ/Mn ;P(ۣ>n6# 'rů0(p5 =ĄbM B?Z5mwE~ThŜƖ6ja1-ڣg@CdC]47AOaDT (.nۧҐTu(B)iNQ5/yW 3p>qjǼ8K."ӚaBfB6iW1CqVa6#<03>2h& @YY!|)0,M\<.yh5nT cՊG4Gvv&QЈG:r=,+t|772>ǴO?nԱ»Y2-ޭ[e aޡc?}[9n+ܧD+/? 7XoEPcd+w ꩵ9+`b1@q</,`B1X8#_8QNM'\<$?5vuPZl[/;Ђwպixب{MGr ||?p8GzA\BQɯDs-Zj5!yB%`0dQqLlO:v(q]ihh:$ jX|E^]Aʞghf;ERVQ}^բ\J& ^=9 )̽f&s_B=`)'*" CoT!_fCΎm\ə ȫG0`z$In_4"|B*R6wȾL!E"-}!_֋\=s4(X#MK,wI _kk"By@1<-A<+fārsxεVtAdx(dhzMΛ=Ŝpj* |4N-iߖx_vF29К߇ &OsFdbJ;+VX;",+VrrIrEĄ`)/*O9~jjjqp8nٱ 39LrQ[SrK9g.ΦC"+ũq7>J B}%ФaZ2d|͚71jQK#{xT{ ĽIm\} ݻf+Νyo{A+wGl ޞF45a~pUB/D˜aѰ%`*\b_0cvqgN. $:83ȒڃEF`(^[`̃+OzO\fZn ZicQZ@~}{K_$$A^/{7^Csޓ}1zDQrQJV:=|qrp4T œFm zM A,=|\&g\}+~7Y`dY7Wy|Ra]seiהRE"uz^4ˀF@"X!q=ֹ@UE&O@`Tg吥:ǃuOƁ P{Ś_._;о 4xks{{U<tc!K14ճ%jգ] xMǰd1b3/m`(~dGTxj\>\Fi荁{kB<eC D&1+p8A Ǯ&A,țչJHH0'. XE kӌK )꿧#"L9 ]rw5WȑƜ.;sڳ3BYꥯTUknb"S5z#3HZ<_+ٗx=vkaw=mchlz'd&z+ם_}s`mCvAZMw nuGrʈn_o7xx;,~x,XMO-/ ERCzJDc-!iFZ̢ܼTI|eIGUUb*j~v۷NS!gSSev^.%a(>7oB OXRhDZ8{ _1ljÎAw?#XЍ±ŨH(+?85~S% ЄqF?7犥t<@dߐ<+=#oUX{UuB?M  2p4t5/C䍁̿йthBa?m|ϷO LTJU3v`H*4 [1À*X +Vڱ κS+*7#eZ݄L^^˜CsrCI2!IK& &M!$&L03N'N'PD*ʕcNMInl kyt٫|bUͯcF0A#9`Wp2Xඍ A1M pHsK1D;1Vid4gt5q1ij Qqa5Gw_9 K'jbj<2XwV7ώ<;FAcgQE(Q05ϡxn4DQׂ&!PL5+CU t-/0@&sVeS(t6%`Ζ:*e[tC9qFMYtC(5;qCE=xQrk@xo0:,j%v?{Dhs衵 fc*FRVxfҠkjp #0‚#n䧪BJl[ R@Aџb8 p t~>0:*汙W69Jbu64XJraf< t;UL2Ǚ&Aݬއؒ<&0ws;]Ux; [ǃ+H/99_r醞YL尯g'd\|I֬6%b"<C%_~9[ǺS!,GtS<)WN d- /qLa Z m"\`p :;,5]nVkx1KKJIjyxX+Vu+bѽU(j֢4QB p.1_]# m#-x8ˢP,m91dqBģ@˹{Q|D٠ dK[ A拁f>~%HJ!l͈7lr+i8鱑gFX4)=(',,"K-Eh&9X:tAbƊӯ(Hp]Z0m^-oBGGQ#)6n"P/v] 9+G7`ȳL}MK[~ ;E/^%P*}fPL7bwlz`,kL='oDCAevL =u懏(p#%,ǐ!!c@-`͙c2&G:lB~3\y.fh !R?Z>]F?ۇk簞j-#[HNA5+iJ)9zJ3Pu9̿^h5?{ Lֽ2 Dq\>U7{ 7;chAȨ #r,tsE ЄN'  7K˜ =?6.@yŷއX/;/43C51VlkћYjnQvƙδ?c l˫^ٴIUv:'(gq;[fߡ<;4p V$Řx,P#CpXX: vj:SkvvQ"syk,,E䅏i1s(C> pk(ssɮp3h lw̖Tή6F^ *+SPTU=zR r * pSa 8jQfn{ x+FZ( aQhM[ Y#mD\ 5|mzf`0,+h\䳱 K^:ɱ@EPI0˗I ;!# 0ȒF-͟+BR;`Xk273XA%n0`6R]z.q vp>r;f!U"&d'y &ͪ꓅K6lEa*S2PA0s/h6jy ϓPBNb]*4GZ`X w7gn1l̦ & g;[O&9_C]ڥE}x2F(#00m&UP ԃL\F:R**J*ʪ*+ !Z_c1[\lPSVvt+q&p`d`զߵ-aD9>vޯӡܗz-:t?R3XZaA|\M34y<͝^>U(C@_{8F`sQXxDS}aOاyIH$\>b>ij(aM I`Bc)F GAa B.,p/.%ɃeQ/g$$ѣm=x4|sY ceV?f3OP \Ƹ^7bFUG2vDBX Z+z6mɵʼqK$+`CSfXl*J*IZkz)13 a6_oz=x+/_^=V xv8^*VXbp!'@gI&2,"!;'A ~DA!fIje Q0Af O,ۭNB8GI'p#S׸])r_K4R0;[rSxS8Aca>X &E22.`/fk2h3\,mZZ#A"X:-x 9O[_V>/g~hydYw: >@d&~ ]n(Đ G7b`[s+N17֦t  <=u\ېvJTN]knv BR0 bez撳Yʲ7>o0Wȥ^9̮ Cn#Y9B JQ֛F};p&f:2rȯ#摥_Arξ?DЖ2s]OE4VkuqQLą;EՊ)Ktkql*.[HWEi)y6?+*9"4V obrzgNF AnJеiVIA}L_ܠz1F4°cb|"Nz1_NKV'E‘T ^.ck,f=̞fX"$خ6wX7Ca#Xv^d(}K@TF/'o 5M!~Ps/ۯMؚ'SVl$1`D!#\Jm&Vy ޮo_Z.E K^ k5/9TX}<_\l>t?ގfsSk7=of_&u\;by.H,vfIkih~?xBQZu8ժKeC ̔F"~^SRms*.rD^aEO_HdhTҕ߼i~/X~zQ!ȉ ݥhcZĞ^0LaH,&6dxdEYLxj͚(ÞG4Nzrzy/# s675JR/CQv_r:Bq@5`B#dxS_{ܨH]Z*3SgФ&33Bos,E9rNaJ{mk˄J=Sf UՋ"Ue4SZ5+]38B}ȧQ"I'"r n,Tsy-h`XnJD<ҧK{_WpǕ'dzJUomWifKQQQQܝ2*يZ\RaP@}V+jo TH /&J9X}Q5\ߦ=], {oGS@RTD-zW뎲\w< #yzL_;0'hTL\HЈ^#}-KprB z|LLjNJ<8EGj[z~H NLg7;c@ɭ=XY}6ST2-E0ũyTRTJ82C\pGM?v>^ap]lsOy;$,~-byG)6S<)% Q;a"XO҆ Fkn'6LU^ˇ78=:Vs\<߆oVݖtׯ^}6 )q^ du&w^>Z h޺F^ hu"$"䢣HZVGƯ~5pƒ.1&k0TPOTb1d6h>Lєq4>VahwQ[Ş`tڲ>=ej58/y+@ٷ9ҷ^n#ৎG@i(#bA)'*D}#dJwfR\

T.K BJs Mk*3B$j_ y}.NŒUΗ~@Trm;! T(($ĂRJR& x R'R(zL%qyo}ߠ~Gdߥt(]io{?6,nUl:+j.TgE0ާ.Lק;iu=n,8THdccִ-.uo &*F=\օ}&8 \'R998u34#:`#_ۍZ)W<=iiTXa'gu:? 0 ^DN/LY1%_D:Crq~ XC• 4{N|xu52ya=7WǴy"oJUvP9o>%NUԠo&(W">?/2_HԉyFz-WY^dTۑvJ~ZsJG~zg[}a#x9DGh'Th_έ_c)6uXe:ӢZ[1 τ}VC\ޟ8Щͷ~;4~ Kl܍SWJȉ߽(ۍCFF#̓*# Ca;(FK,-E} HN5aEhY@.)-d_k'ug|Ӯ8ކ> ߔH@vHy"{(}Ǵ/ׂSs j^8w×8^y>m79}'{˛j2xgS%X3iG!ȋMf+ٛ4ZiW&)']*kU/{V8d3վ/e%D6Lϔd!:E "Q셚(hJ") C| Nmܾ fqN6$7vПC1Q{B $[猤}Wt1yBlj_qx?p s,`|AdOaTSuTa'>ୀOg\o[3VTCpn1_[✋4vz:Me]6@ZphdQlcx~z~<с W7S\4F1\RB*:td.6$hR!tS"XNtL }f!D7d2YݱhR'@D>i~'d:as dvJ*Mn5-|i?_o7C|d:zaյGEe8,Y4APT%ISSRT2oM4#@֟%4qd`!W3v,p 썂}V28U-g][Bm􌎙%FGL}aҞBw@.s/F4"E0P P'5Pv* qkÀ%?iN `E|<&CxW\Îec ˏqA43[`l:lÂޟ/%m0h0ft ehVH+R$_)`M Ԁ(PHTCl fM?WfzYGaRUQ to#;1[ĂlZ'x6\2{Jȭ1L dK|ֹ''+m8Q l'm 8;@U΍6m""LC &(d M'|v\^ It`:<~/ˡ|~c߲P tZR!Gv F6c؂1 C10쁗:\hѤ 'g@(W e PG}_[9VTa$-,!l:94.K )Qۋ~ploXW|xUwԗhbʵ&?WHeRPȺSCp>^},1&H,GѳWܹX0 Y;B5XؔHnrHJQqMpA_5W.V6rq~8woIu]vۊGɋ *K&/Ȑ|sLk9@Y4YtnP[(ĝR>Rg: %#IL&c۷;O61XfߌE̩e#`-!焌$8aPRbŋd-8 S8VեaVVUm!F[Rw,M`3\u7{7$<*8D`wpDV9a@w/Nzoi=er[v!|`Ǡ$ E+9͆epE` .ح洷1MulBN""=c=jv&&% jqۛM~=yey|uKH0TUPW3U;ln5۲GPG!cO߱@+WU*`>rxˠъɧ;H`A5(+fQ 15}J^"| ^볱<EH PL|a-.w:w-RP%*c*/*SZjիX Iz#!xj+eXOo'65#oOq?@[m:s2ƽÊ㛎/9$޴$7[ &:jǤw*3kuvdd W5km6JrB{L>#R$6/g47G;{L; jκ@a $I~Ҏ2p~ ewܗ7&9}i~Ք\j? LВV [:`1{eoͲ'T+|gO=i=R},1x7/!t*" 3VӅK/aNuMt|~?ѐM "]EP'zZd1ARbcٴ7?LK=Ǵ@+}5#0P&&UW~B-KfSv*Ef5;P1rX痄⃰ ]B^p,~@átAοPC*syM,^pBtToI, Ыg쪷.5F%ǹcw3\aL9ٺ+I;:u0$b vw?q r A(\i|zkl*A:` :WHEGH*TADWBUtDAWJ*(DUTAt*DE:UQDt*ATQU" *"i]***]:At H.: ]:GJ":tt+EQJEPAEӡ".`1`` 㿕꼘OM/,VIy6UnbaI(a&f_0&x'JB:P@%0‚1tPC(FAPL s%9iz2[3#xP!ff-<#'m\h_P/sŽfT9{4dAd2yo  )s0#XzumLGpxuZˬ &^DaS|؏(Qc\,}Vt?YBi*mY^~_ u,rsV;x!dC߽1CZbШ94;x${!̺VwdfFk~ZQњ 9֚9\auocq٦ 4+Ah/:L.4mhUD5j3V[ʴy^b*wsnEe)QPe^yÚ'H'Q8p H0:(668aZ&6+-EifXZ6ej.1G2д2Tܜ`*2pe ub !3Rֹ j儧|:/]h+V9mI\ɮUI?x4W`4=>֮jh@R5+f BfkZ\Rv* wgvv%VHS$zØifQ/ۗRsKnU~CuJiq%04Vx`D<7ʘ~h2jX3XbIjիf&Z1 F Ɛdh501hBWz赸yvNˇ>;`ʉTE+Vow1mF@1..zGi5TṁQu Qcy(=@aZH}Un,Gipi0RET<>OCxp3R\ S/l-DA(eP pLñZ"|n4,|꾃62nyQv eY-g?VΡK3s)`Sg[a4 M:E57J ,.x,mJI x4hGo,+wt#6O9gUW 6e6SH Guh:glcYN* g8k{w{֤/ıg_#!j#/Y X&rmxb2V FK0f X͎(wQ@KWk?9k˜ɉnӇ츰 NǶk oyǯ}3Xllv7'쪖]ǫy=c fBgdv}dFdDßoݍˆ i'3K4Y22&a|pVOaQ1 -mnЕ Vqڜu ٷ.QTDwb®*l_2XO 8?9G *í<Ũ,%8!}č+a; Ca:7&f4F6a94;= xFj9s:8WL ]kdRx/ /!^ȔD/I. QRs?26 EGJ>DGX72;yhu+>"*H8v虩gy++e 5GI_8B/,-UH@a\lQ Iᅔ(+—לՅ;)l ݟsCTDcΝŠa]Y3 ? yL'NIɱ8?h YB-f[Sp}1|XH*dX6bL1H;dhr:r p1.9\_i/P nL v5/V`)$)M8L0wSBL) !`2h[&J){#d2dGā,8QUvh`lX\D[1NcbZك%+L& 0=P7Bq1uiyK-]k%) |8DX^P TŢ|{wXۅx /ixIc;<-uQI2NcS4eLZSx-ՄUdʹ$>+% UqɕG'8ỴpmIPA~X*N0@b>b?¡r|Sr֔;> 1<.EI$'dp@ 9T`OuڛYA2}F۷'; yK 1phQE}^ڽ&>; Yf#PF=q{ce}|\]彙j)kǶhh|RSE GAcVFu'Z?-.G+'I4p.7+Г>O}d{s֡ +fۍ]@74D!Nufk=?;Qs7l߬mu6yl.QˮnttMtN[uvzx!&}L.[R]TA:}1&Kzw? '+߻1tqqR`dO߼ѣi޽WG1}𥟟UtԠ!Q'|W~[њFâ?NK y'x0`CLbGh[\!/ 5dF 3,QHkT}=Џ|(|wnτr O0@?6x^(߂S>|T`l;fx?g`4q~8ÕsXX<BH}ChӉ" '5Mrd~'W_/*,N},k.H-lIԃ"x;\tp"075 0IZ> 3^T9:,oIǖpLS0Zs,_#2 9z%,)[Ѹtj --\}@Z@y xO]{4}rqxfB!"0o  jV Jq;I9Go. ҩHnsm}K`KG5 tJ2HaIҊӨQO3`FW'p' ET; ZӋYPT%I+ ¨x(4)iG?*N].[r:|z8v LHTaq:#j݃,#BxD,UvU}Z Q-#qj6$9*vDx:#ÛW0kam,[ ?as h2ylpq;SJhzq/48fi?YoOS@&s|-Ļ΋L2j-y}cdzp'|- mo'EQ[ PSlZR[ t~˛0h#ۖR5I1m)g 6BV6Ls\f`8+X1'KVQx/^Ȉ0dC1d3C2@,C+ $Eb%_n8qml )+7WFo׌u8 "Tb0$ZJʶ!]s |E W$Ż &gP7@( {h=z,yCw턶uP5,0LyHqo⴩ǂ!鍞++LT$[Luq'Ro5'#ٮh_kz:< R"k)z\>u9N=7j$,u슘-.,wr/(?wg`.zo ;C*jA @dGߞlQRTX*ĮkxYRΫQL2; 6ep14 eOO35_zK tc:Hxad4|n*ZFSݬޞ j)]2)-#sxw-ЁTSTo/ V,@)lRH9]zPOIv7"ɘ_XTRV[^Ula6V:mYlh K1Cewqe°a RlIn5,zZV%0ɖ4)*Tn ҧ%MMeU]iZ5ʧBb-ÁiH$ϹT@Fm^ɕ{\|ݽ(ep3UtW!D;Za*aq˄_j ͞WJ) Owi cGsk`kL[eR/ˡWG&!% *'A7pNK1WAܕ^lxtʣ'l ;xH"e0KYOrHJTy&^a#ry\mbBx6}HÈ# 4w,f- {oZfivו grBy r`ow ~ָ}m|wIm2-nW_oȺ0☦%Jq"L( D3mJR8ihrhԧ)3#NԚ&ޜieQͦp"BZP+(PwF|_/;|_֯;e-Yv^4HAi"p(Cn? 2"[.c$"Hgd}fB1߰sD]ҨKSv4-dzw;$'n K%W\8u[`Oa s+zG_ْl ]GX$'Piʢ$]aJa6n|&?sEv{x 2SXtCz/꼛.wi X_\/<qAR9 PUXxd.C6nɂg-edU;+!|p_\F<->yӲ}gH<_^Ҽ&"KUB,)W4z"TV0K)0 >PcTd_J+HV.< (8厩j"a\9G2;Y\+݀nTK:W孈ȃz1p8 h^K1bC^YnvK'F%lhy#@MViVQ3)"o@vcbb8֞2Y "ȏT=!}/&륹' J vmEZ^yhJRmQELӲͬ/ɅYa4Lq.`[xc's(dȎ0'2FxI`֢˭2JP"9l[Ur)]CQObЬ%W4i]U-r}`r^cMDMW zX?34i18O8Lo>QpB7黯Pa6#;dׁBzȷF?Nm+PPI 1bbxZ0K%)i ^l) @ʝAϦAaZ)ъ,٢wό^U)_V9ߣ|M܏R?0.]kt%i1Gzs)ek KJAA!P47GwD3§D}=pڔjqӶHa4Z,t*nӔ'ofwx'UӚ~ Sgg[P w606B tpXBtUVXnTf _67!u)RD!$b D "Q)P1KJn E"U9J_dF4꜎@;Z# s+[ƫH?5eL.ɝn>+#^BHR!x2 tD|H.gpwP ^!Y4\W3|JqvsН|2!χ]8Zz8f[]/~u\lMTFa>Mw76[t{BeUfeYRe;KBcaڗV5T_s)Uw"4qɼܚ(춻ZlKI. E)O>ag'{(X2X{X1kT{xVw2G37 ‘:— )1Xe(aQTTWӞJ&eꈢ d˜,{cCDM6M(-DFȽb])=8̅M( ToԽՕW*~[bpZUp+*NwjdeqչPT+āzߥn qE]c m3 ^ћ4qt /_*vC9UHS7q@=+¥JAcP\0\13$^baE,6h4"(EN:Qclm Fj}t*<_Ih glߔvǕfnh-Ȏ~Dop993 {fՆ]K;bTb'|z' ppdȻ/&]m@yD7| @(VDP:kN`r_V LXpiP[,v+ꊼS]=C? <ѧSUZMOy ?_Su{gռNv70:cy1>ĕ*TGFW>'צjM`)X{wÎ=y3K<<ޔ G"7JQ2.E#II:y ?өR9J*AЖ5q;g2,#LRcCM $ Υ N(Og}X1IP`0#+}EUOJ!#q#o8#q`) JC(ܪr,TRx2Gໜ֔'ilZqh)R# N҅/JgT4ɓ3؂l U}ș>W!Pڲ0ҳFA]ihQ9;gN[mjzFa&Ť˅-bBo+.#xeO>`~R$m$3H*Vɇ紼tv7;άΣSg;`(TY컛k3ޖ+cURR%RiE6R[h$P4JUUDQd +)b m %3jUTi"J5CN x=cry4Zs=9s]Kq}'4l>]vC<^7h=6t}yo7r= lhsoN{70A;>TJ@@AcE7`] ݀]l6ݗ=^3#|^zg.ͻKsuNݛ8m39Ts7vםhzsuu-ݹgn.ܻ{κyŎgNryzۘɎܜ2gS9mqnll[csmۮmtwMׯ.ۙn@4C{gl'lrkh7{.9{gK0fL9iK;;W9\ں8ܮs9nmmι[7.\;nݜrݗwWG;w,WzwnFCvgn˧-=ů-͎tg.r7wW#nnW%vݎ\휺wU]w';]Gv5vsw\ٺmɝ.]1sZ^^Q4`0i`24i4M `Li2`L&`&L)Mh RH&aa4a2dш`0&`#&&C2CFMSAhFQ4@L` `ɓii&&4dѦ  ?P yTC(iSђ4ڙiɦFG4iɦ# AA1FF'ѠLPID 1 ` 404ѓL LM214ɦO41M2  M @4h44h#O QeH{0nr¿VKl;2a@ ;/`:y )PGtPGR!$UUUUUUUDUDUUUUUDUUUUDUUUUUUUUUDUUUDUUTEUUUUUTEDTDEUUUTEUTEDUUDUUUDDUUDUUUUUTEUUUUUDUUUTEUUUUUUTEUTDEUUUUUTEUUDUTETEUUUUUUUUUTEUUUUUUUUUUUUUUUUUUTETEUUUTETEUUUUUUUUUUUDUTDETEUUDUUUUTEUUUUDUUUDUUUUUUTEUUUUUDTEUUUUUUDDDUUUTEUUUUUUUUUUUUUUUUDUUUUUUUDUUUUUUUUUUDTEDUDUUUUTEUDUUUTETEUUUUUUUTEUUUTEUUUTDEUDUUUUUUTEUTEUUUUDUUUUTEUUUUTETEUDUUUUTEUUUUUUDUUUTDEUTEUUUUUUUUDDUDUUUTEUUUDUUUUDUUUUUUUDUUUUUDDDUUDDUTETEUDUUUUUUUUUUUUUUUTEUUUUDUUUUDTEUUDUUUUUUTEUUUUTEDUDUTEUUUUTEUUTEUUUDUUUUUUUUUDDUUDUDUUUUUUDUUUUDUUUUUUUUUUUUUDUUUTEUUUTEUUUUUUUUUUUUUDUUUDTETDEDTEUUUUUTEUUUUUDUUUUUUTDEDUDUDUUUUUUUTEUUUDUDUUUTEUUUUUUUDDUDUUDUDUTETEUTEUTEUDUUUUUUTEUUUUUUUUUUUUDUUDDUUUDTEUUTETEDUUUDUUUTDEUUUUUUUDUTEUUUDUTEUUUTEUUUDTEUUUUUUDUUUDUUDUUTEUUUUUTEUUUUDUUUUTEUUUDUDUUUUUUUDUUDUUUUUUTETDEUUUTDETEUUUDUUUUUUUUUUUUDUUTEUUUTEUUUDUUTETEDUUUUUUUUUUUUUUUUDDUUDUUUUUTETEUUUUUDUDUUTEUUDUUDUTEUUUUUUUTETEUUUUDUUUTEUUUDUUDDUUTEUUUUUUDUUTDDEUUUDUUUUUUUUUUTEUUUUUUDUUTEUUUUUUUUUUUUUUTEUUUUDUTEUUUUTDEUUUTEUTEDUUUDUTETDEUUUUUTEUTEUUTEDUUUTDEUDUUUUUUTEUTEUUUUUUUDTETDEDUDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTEUTEDUUDUUUDTDEUUUUUTDEUUDUTEDUDUUDUUUUUUUUUUUUDUUUUTEUUTETEUUTETEUUUUUUTEDTETEUUUTEUDUUUDUDDUUUUTEDUUDUUDUUTEUTEUUUUDUUDUUTEUUTEUUUUDUUUUUUUUDUUTETEUUUUUDUUUUUUTEUUUUUTEUUDUUUUDUUUUUDUDDUUUTETEUUUDDUUTETEUUUUUUUDUUUTEUUUUUUUDUUUUUTEUUUUUUUUUUUDUUUUUUUUDDDUTEUUUUTDEUDDUUUUUUDUUDUDTEUUUTEDUUUUUUDUUUUUUUUUTETEUUUDUUUUUUUDTEUUTEDUUUDUUUDDTEUDDUUUUUUUUUTEUUUUTEUUUUUUUUUDUUUUUDUUUUUUUDUUTEUUUDUUUTEUTEDUUDUUTEUUUUUUTEUUUUTEUUUTEUUUUUUUUUDDUUUTDEUUUUUUUUUUUUUUUUUUUUDUUUUUDTEUUUUUUDUTEUUTEUUUUUUUUDUUTEDUUUUTETEUDTEUUTETEUUUUTEUUUUDUUUTEDTEUUUUDTEUUUUUTEUUUUUUUDUUEUUUUUUQUUUUUUUUUQUUUUQQUUUUUQUUUUUUUQUQQUUUUQUQUUUUUUUUUUQUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUQUUUQUUUQUUUUUUUUUUUUUUUUUQUUQUUQUUUUUUUUUUUUUUUUUUUUUQUUUUUUQUUUUUUUQQUUUUUUUQUUUUUUUUUUQUUUUQUUUUUQUUUQUUUUQUUUUUUUUUQUUUUUUUUUUUQUUUUUUUQUUUUUUUUUQQUUUQUUUUUUUUUUUUUUUUUUQUUUUQUUUUUUUUUUQUUUUQUUUUUQQUUUQUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUUQUUQUUUQUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUUUUQUUUUUUUQQUUUQUUUQUQUUQUUUUUUUUUUUUUUUUUUUUUUQUUUUUQQQUQUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUQUUUUUUUUUUUUUUQUUUUUUUUQQUUUUUQUUUUUUUUUUUUQQUUUUUUUUUUUQUUQUUUUQQUUUUUUUUUUUQUQQUUUUUUUUQUUUkZT,PUPGPGKPUPGPGkPF₨{۸ayd{ ͔lVߺ9l\V}+vVU-mp.[?ll"֘gf[xfX ;Q_bEsƜ&P[~R&tHպ2]6y%'}Jʪ-*Qɳ]pڞ;L%M!fKTM5lO'Iu3&63r QfN G@ Ni?VNs_P;t`=쑮P ۽xZ)U0V6"{Qnۡ1UǮ6SK]BD&XPgaf<.Kl" [>PJo5xZ.PR+EtJFD+I) ?-I F űZc*of'ة?Gޯ6ZI`I!ɞٍ.caz6^^wȣ8+D*"]us W`$%orN r KtkwMMGSPze~ FW8>9}60#3x^qV! "E {=/PYn>#t /Zcv'6Ų2GV{ yqXt`~;iOvqˁovQ mCz4vڭ)Ī*fC82͈X:- [?{4;8oA{2m3T8Ad\}N0ʒ EbZs _t:h,ސ 23Ŏm(q2Oy2, DGUEeڟx+2O?{X[1"G?yܲQ'_Ŀe8Z?L˚HbC6qT 2nh2Mgz G<KySz$Ob]NYRZ]2m䡧I3 E^<3N0(V^ͷj trNbmԳdl-+pl 9(y ZN7w/M  Hv#/ s/珐}a8o]%k87g }cђL*uCF_``ɝߗTq3X #޾1#84}MBlr,k|QpLT i&a`Np?אg0}7frFy#3@g@p#G>%~Xo"Y`9;}{]o5\G%bJA'f :~Qk4 Z݀_jϻ0Ħ>*b%y][~T1&M{ eKp&\U(6+}"k$!Rgqk Bש@q`4Y_rg.8F,a]Zn杤 m>cA9\XW [;|GV7W 6ۖ^IhEY` R&湭8? 'څyO/ڈ|m)bq,eJe$QP6ŝC_jЮb-pD8Ғ|7Wh#\n=#F?pm9]0^U,`ܦ>x5O+ZҜ1.}{_! !E'5.&ʂ>oz]O;T_@ma)x$r^@ڥz ? jR9LA%KpCy3XCn7㯞nKo~"+{v/QF-os ^[pFFA%0QM6IR槔^zSSBv-kdsAQ"&DsJs\%O-/bvz0mAky4JeGP/3'gw(#'8 &%cp*_{7<:>t̫f|jeJCݳRޫ:ʂ>D;~{bXd鳺$y ]N7kte»$>66sa?\Sm[LᏄr7IV yDGݞ7Ky@El}M-ܮgk xo|(~p;2otlDjLV{}!r4{uMdʬ0'x*,eW+>1+kZó|-sjyRmfS9QzL7RfS&jzV!d;,ǎgJ1}s]HЅ^wJburn8>@uw(_=q,U)tۼzT(EOqSDLGQl`R'&tƛRX*l#7 w-_Δ SɠW4}!zղN!K߽i䭙Rqj~S:VYe<$j3\DZ^GS=z:MD5Q-EOrK>D`ҶʼqÚs{E_ ±jgcK=eShc們F;3xړ3ͨrs@|OSeф/` ÇGFߗPV^p7\at{ t׿lLD=NfNgc74eTe9^'NΡ ;+aG^su,]Wsy#?+ڢ}w%sô,ki_S/-t9sB 5)!wO6mbn5Ҙ֮o<} bGsx+.iu-yj0 4E+\ϒnyUH&R]( ȀkpOe׿Ĥ{wBVhĦ CRσ/H.aص&u&};B(6{tnĆWG(vux{ |۵3QE̠50o/!_qx*#ca&4ry%K`z_ʃ1}u -A:~'!p NomY7Qz,טqh*AE&:c?K":RveG~y6$ WUZ 23:_ɶqMwthq?Z$3$鷼 )&hHmu/@u~ [L?s%8[>^- Ws0*3wC.oTX^-B{[rZOt_| oO [09㔟`a2?xГ#8ַ1U԰3`|0|h06 pB*K3'Dݪj߯IkYaۢb:7{~IgLڏ[ĝeҩӖQH+ɣɥRUa`dګ7Qk`3umsm2cKxNmjwxNbfFv>X& 9MoIK)jF uϵHPOI"[I|,QnQk&5R_o6w{!:oɇAo7,E~?EQGE?^2 *F|GlA϶b8QB0pB55m<3ݡ(ZOZ6[txĞdXX7IXóNmLZ"x0ݒy[~l͔** _}J'苐ӱc*%j@h^ J9[8\v xg_ooy"\^@$p2mZDQa'h7G?N@#cg) kքjbըĤJ9/k!"[bNWmxT./>F~ueT⣏5a?LugoH.d1tNvme/yB 27Ӓs_"}uH&zZמCzw/6wD3ҶPM>_Ui 4R.Q=@S*B77?;,Ģ&QNVi#w_hߛ"xݱooP߷ Oб b;_s>?V=K g'#g} ꨑ/QYnoe>p>ETΟ E2dCtCVI,l0)>s"[)'9^B-h[\͗cذ*xoOԻ*݅aށ:B! Y,f(= 9ǠD1rqßߘ^wl.ta-d ^&wYp}y{24)4sK;XS?ok v JhK-ȁn`H 縝 'dcC&  w1fq14g96~N HI:m~FW3?$\Zݸv.;=ѽވ;/=jnYSlXDZrɀK?)2p;6!B̔ 6؆}˩ wheS LRHVeؾߌ4ZŗK!o ~;1<脮b+16S8@yO=]zpaDAOpb|ɜIt)gv5=>NY13xtGwu;㈺iS)>+aPJ31ǝX~=C,*1  8@c1&>#E#!o}SFXtuTΒ9f{gA;{\'RLxr9~eyP/8Pt/:QVм}fhDӂbgo>ܸoPM;`rhs{W60|þ5!g) *2velni}?N/i`~S.IOf7Qj 8Q5i} w!^ۥc5p R3<:ЫR4:mՇ1k!޴d惇$RU w|Xhw8Q9APW9%M2+Ȇf8l#V*T$Y۔>1 5¥!Nz#! e'alYkA$µh@"fqjn }VF0dp:#"}mbK|tϏC}1<ǁ>x,&^HHǨv7ZaCKw6AGiܑȲ Bz&Twk2co<\AĐk?EN W:8pV 9/lw15!JqA7QX'|Nrz] k1sn'V!YLzicGu:ŒԤtzRp?!uڏACǩSVID/afg.,QM7.`'o_Ab%xL ?` Op̪0pvAp9o3~E཯xV9&C/DrdK2(yt ![e'U)\=uI}m{V.{Ʈ]R|y t6Sd6`qe-Ix\6Q4pwv7/C 2죘if#jy9Ӗ+ؑ0 xuϸEѾCG#QftmNp-4+|k'lm/6V-t6N8=(:|_O.eAlG oH6P L1d4sO64w%NX1`l7G߀9 wMcϯcBDhS/UMD#otQ!X;ˆT=d{BE@%uno ůxx}$o'zr2&]`H90-ieuܚ<>734w--#Cg1k8KJ^4|OHZ"TLFV `[s}Vl /o$،C>/|:=vyOI9F7 lM>#;W=M|g^k?q$'4|d*IXy-g'p_뿪=/^` €>/`|Zp.oC->[`'4Ի}+B,umiL]mOAdsn9AMSAQ5S-+w,3q?٠(Cԓ C&@H0 E{V>JIo\0?paqkg6 <'0^&ʂ6f:A9KayGszN+}l ߵ lo.bs,4MoMGBeLr𷜁/ x–fC^Y`o08B;({9jKgCle*ؒj쎼uӀ0N+G6͚.k^Mq{=?f5z4R\OMcSi^Ȏ=y+foһpOzR[ڠyTZf==WKGBX4=Y8NCXF()Ys79ɫ2Ah_ Y▇ ì1R>pf,ʱG`nL!7b 8}fc)vFu6/g3\VƩ-x!~.ԐQ1 8S3+'G 7 OMV(Qj+MK|AX\ ;ci+.1icJ6J(%CM vKMEuT;'t~ w!1s(b΃F(Ls-L{x$ƿr=1z&PQvW)$:ӿޚM{kD8.,Ce{!ﷄ+Htǟ.lg.1܄m'%%rn +>A׌Ό7*$.+d`MS_#KClu:@~߯τ. ><}88nrcl3w,m 1Ӭ$]c?qkIdAxFVUyLzl-³ElWzo{=qKZzeU=Yg:ʣ|yC?@ÈOY͕?2Q:W7CӲQGFndYD/qK*Cm|"ڿ|suEEȞh܁2{n,7ɜrEL|RћU6UF|MO~Ѷ$nG?|pX+w_sZMPW%R@H<[wB(#{ԡg^kWtY<10?<%W]*,p~cӁ|~톚:r-2 ?0|ZCF:5^ǒQ8' IcNwvv6İE%U?-R-[}zh×~2U >'ٍWΗAz#UjVn0b@R! ڶ{# {7HDcQ>z!;-X})dFk#v5ǒ˿")@>a[S὎IIvKI1,q,2q0`'gqLlZwY?A<1pl}0qޫf3S =ޣσO#B~Y\ǝ GOKђ ps_˥q;B#_s щOasz@xR!Ң"(?YAPC(#MeUKJL^v//zo뚒 MLRޯG n7u6 yc IVʷ_Mllt03`e:_ng%^W Pvh1"Y/$ԏ^j>H.fU;_uc՗ߟ_$UxۿÁ֫n;|ֿ=,~,sbriuK݂?.e_;Ԯ^Sah䕴5: ޔ$U'6 +'sA 8xuUh#/6y27q?]Hj֠q<Xdc+͛42o_+Ä{APCA*mS`To[ؾ0uaozSs,. ?t`8gmPq}߆gd+ƜCܥxX n,y=*C-~IJRk^xNO@'O y|/mqdJT,)zfӾ́Yu+n&1ei?*h)8ݤ12:5A=*('EݷFj`6?9qg~_}_ʈ3LY(L{wG|So_/1ww[%ؗlTwOYn9_OaG2Ԛ@8Mw `ݧ\OFQ /m<6hS@1O/eZh~ٽiVUU z%Vp*[tqՍR Ӿ;a2goKz|^{o (l ~]S+$ʅɐd88 WѾA~B Sq]rj̹Kޓ Wˠ 1ܧ'RRL*,9vn04]VSO兂zFx:]ld.܌O{>6O|̃z t {0 aeec'_ـ&}/OfWgxX['8߫èYM{}3'm~-S7Hg%7-> ,z8kORދeT-ȽgU0* +(_4G l2R_/PK5e^"qGKe>7\m_f*[{ ԎBA,PW ;hbʑEg. {0y*g,Coۦܡ1Ryόvצy$ƮP[xg0A1<1xtK۸&TS_$M_ :тuEXgٗ~gkD=E q GXbaWSϑxj8Th^ؒFSPm~ ؖ}- \谣Nj#ؑ#+ _۪%Pi݇9&ɏZ+y Xoi?q:qEĵM3?8;x`N|/ߎzY]]"1i=d,_ sB1eNT Q*:5yjTYB_V: :oπ[ћx@ (~z:1tnnsA/$-NK57C׃+Z$m u~Z}@`"UpW&|X4loC؀ }\{#|pQU5+ר,c?"0(ۮ)GZ2w([KOzf]Өr=Q@ rEA_~#_vkP0 X )=[a guW}gJD Ǽ#W8lô}  *av`P@ mVIO|JK*L1 < tց%˽t5,*I?:VKv_ޓvۡpmLTcU#Yw\zTy=랁x95!%-7yo>!_# C5@ voqXpJfKL+*$?xVfSfǞspV-?_7\Pʞc^$'|5{: +M EƀZMz8ghh;9(m)V棕1|c=h06.wr ]Z׵tmKf3Q~?nǧ3p=Rt~έg4_44O?}!,0L)2"Y砬 ޻x Tl}r-;mt?vK+sdZoBcb?YZ1)ZaѰgԿe3#м+fϚG |[mguש0.i@2XBbC֋aŝbpW;0UzzrAR,Pe/4Up`Fϋ41mgnFb{vmtKGU` Wm,aBA}Ɖhh^|.K5'Vx?sbZ%R&Mc՝32ߎGкUjX"os5ZB,x{)#%## /ȲՅ2a +wEô1!¤N!X|>>Hy,~=myP( *s?̀|-BF"28Cgf_L1 36z jCc[(τܰK,&Ppʬ{~?r^"$a]BJ"Y O{U>OT!J6W=T^ZS_-5l(W{Q`#OWĒS8?h7T@ gv8CAI bG|#zkU[! +y2٨G+sU iLmy^څʖt*yXU:Afes_USǦ淢" *@ x[{~uݍ8}ֆ>V?+v|+YCpSUsش|f;kuU-꧵`0u#n 䩚g-I%CZO{yX}˹r7I[[y,,~Z ן\GUW+ʉkZ{[{,zy?uo?}?P$ƣ0"P`LPKTmpUFfZa"ข$uw :`[$HD Lݑ'pnນҟr\@ q AaTAM0EAN" in ]N)2 5yLqi V`B3pI ADPGPUT %֟b5E* P5r H򂨆䠎MxQ<\v:xy @ v'vww@v;^,8+ a LKF0HbZZUe &G%u9g4:+j**?**"%*@{U,PU}%(#*B7:PFؠ!mkjb $24cX,ui.( %(#*JBMT$!'ɰ6J<_HK^ HI$$ZAF"6!jKXT@!HTP A@Ȣ TKa,PFƤt`A_i& : X8ւI-eF0HA`V13j $@P *7j -TPV@#JBWդK2OyEE $Gq,gcK-dq*!MRHuy@@ Nł|^s%\ChEF8yk! sX΋l!2;%&UbI4p-P*MU$Ą~4I ^ϺKHćx(_i]MAY&A[6BFErJ!"0dyP-%$d]"C1PF=& T$t>/t"+`H/[,#$afZ}32@dE$dA)E!@d$w FscCˢx7џRc\ I"܈M ʓ$43/ȍqcM%DI $68Md!I\biKw(-"Z )"؄d롁 `) **!v HQPB$ ERD$0 QDEX@VFE[j  @ l"%A$( D /k@A( tYJ$* r5@YdD]5p"*Dm"!r"FeP B8P,@nC *,ȃ"83{DKz" Q RDRG(2PY".,*2,"Sbd q ȢxЄQ0 A "BW ݂" ȈH$)+PňS\!$WHA?C> c b@ɶ#(q+ &]kuh:M&F_Z&6HBIHFHDI"ĒH'.1)2HH$L?VY$d  B !&FRøIaEdEL @8f ttό3Eҋ)W@I5 ִ YAd$IYr $&8PF"hY|"/<*oۄLBHHH?!YjB0(H(@$L*EnMK,BDw42,, A !&0]ڌ HMcRIϥ- vemJܦhc ` -$saPb%V'4htޅu{s, &X}TI&U6ƔBG`)l#A!QDC[b ] @8Fel)u0$ ( )DthO0SEF@ĢPF)LA"ztVT 2H"3FB@Kdj4dh͵&Xn ѥEЩ"5#jYwrA}f$1"$wكB` LBC@Ű 8hAt{L}֦FB0Ĥ CK)"(U.ZkPhU" @fQI>OU`0[jI!!ʰJZXbu D/E(ĩ"k#!!$ }%CaDm89L2`a$&H 8ʎF2Ȍ4it ( P@PցMb*$ 2ȫ H ȀHH)""# " " H(H$#"  H "2 * 2 2$#!#HH# H ,H) 2,ЪP ..ҋt,!"2$H"ҩҀ 454dE$R@$$A $Da  E@dTd $BEIdU$P$dYI$CJ(*4BFDdY$E@@$RE EM()P4k@JȈȈH,$*龧wӽ^ ?gdk|W' "zĒB(#>'?OoW_0qQDP_ 8}C?|׏=I/4.tU?v?+-c=Mߢ0ֽߝԧ3(Ԝȟvm;4M15yWu^Vi-ѶѰôw0<&挆D4DOѳ~hZ7?m_3N֜SGh4M{>5oLO٦pF.A/B6'V~}o$dd:Qgσ3ggD˳33T3J~v||z }zʦ=+=<=߻>Ј4x `R(m1/ 4EEsyмhE%W?{ݏu㣝#cccc"⢢">=7; !!!+_Ǒ\G.1PC$Ӻ|]#b Uw<%_IEyϑAu1醑EΔ.-၍Mx+p/hZ6Xk'߽_b|-/ɃL# vPR!JfD5{Z#}7~:xJS 7D̞mHiI87 5|3=K7q8`ʅ,Xy:O%9L9$4|_|sqL.ʓYYo^?T1S3@@ξ'37"OGb4`0*;4M~7#{Hy[q-è~9K]Ф%ˁSHR]2gW,oF&'7%ଫپƭT5Bl V*(DN],3XIb~v0X')A5^G*^wR `B~ʵ꼾,!;@Y%HZEIky9c5㔰_ [ !oUf?(Db $ ]ͼnszyG;_pOM[hcf36.[yvOqknrArܲtR~C)Z;VnjuAsڙ (3zr?sx0-o鈚0|,_\80Q]>{AS\ dlc$-3;$u%\<˄kv0c60u٤+S@4xR)r.|0,TW;tKIUs dBA(ώ\)t|kHg_׺sd }{ >JgHapUqּBhmSRjt'xLtO}wihG2 at+n⟭:>zZ@B 4GuTr[j`V^럛Rg"͂ެDNF״:$rQ@PtGSEяI8`( #:;k;aܞANY$`YK0ҏ \PO?ٸv]mqq!Y'Jr $U'eZ܍:I0zܩhhVOTPh|Q~YO / KaӪ,.v]7dt]Eix^FxK`necM>*x) ͜6%Fhү] R\O#E1wT'SGRtMwXMëX&vpty䉠:M}]8D z=ESblkX Wk.:'.M&yԝNN_n?MǮ׫;o!8z"t,'tshUe\rV3>Nzk6 w}\t7ߏ<)ga4q6;Ѽ;S<.z(G<c~ G1,we#RoγScKyX? H.4V3zkGV$Zbgkp[[]%x\m|./BwH6)O{в+j&5R5( BBi*WkҩTfFިx>4]/02g靿W=p3|ͫ7Փ6ic<'jLdz^Y_L%<P; C&Sry#ukuh>HB B]?P(Qt5W8;to-vL᱘!nK`+yyyy//^ޗ~HXTU UR 3]TFnC/@ܐ>c]ZLL k>⯿qZnBk[X^tT9RI)Mf-eԾO:1zLm{׬MGw'EL=1UWVC2 c;: z1{۟[ tj"Ū@VO- OkFThKB8O>u S$lX  ?w1jx>`da7jo]|o%zg's~i`nTD lĐ $C^aw[;}6՞=޶7s }6T%ѱ5YUS_`NUA@eC)઩JI .j*?C<[z'Cmr=6e,$lvQ:#J)YOo,%{#H2~~.M:&0@贖T^]䱃V`Q-3SxaaaPCɗ|Ϙ&Jp2F&!4DW8GʍR1FYKحqQnNQbzGN 1 y儞pkd=#ʮLǙl[-ergYmsʥLnˇa,!MꗺL+wbޖL/*PYAr<f^yURr;U]UOɺJ' E [Z 67:~,UI/F@Xx>Dσ,oP9Rnޏ;ч2RJh=|-^ {S$:z8X<kǨ/2@)@#78?a5>/I⠪i?ʾ}=lsm0S z+;TxgAڕ0 ޓ-e~R" +y—’V0,W:So}n< <:iP[qBp(5>2=1 p>.e^+x̗cK__`b_(U?O7OUޞDxbg(! quv[ۭ ɺ#se$Ee/komQvSt&x{8WX,Js:q{b{L&0G?C,o^vq(Qq9Y5#'Y71L|E]mլRjߔd S!QNE0ObV?T4&uy,3wp`ka:̉p&(0("f6xl 13Kv"" 7ys_(YЩ v+1 )mPGP띻" Θ*!MDRL$u^?ȫL<wW5Yl㇖k>T|h#nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻw! =OMߩms|[H6?koƖlnm| 9pn Nrn< vOPQ{qSqSSnԃopB:&U)7)\B8R\T!S1ܲoan)N7}_t#n֬%2f3=22 SMCc]/>Q NJMF{ku>Z%6Lx_VG~ʾK_Xc(%OBhTO {L(}fseNk+)kjz:o}TFd(&u,,9?b c))8?zdݔgK5bppMCL&nlYl:lJmf~ F{ՊEڦguk.q*7^=5 ho C"4~˓Lw)A{ uݜNvGJ5PGq}Lˏ}< /?#vfFQKNI"y~UR]<5p8c*5y 6@Na%iPxΔV%0J i!g /p>`Lr{eA~M&`J 赟UŸd=dk>`#@P1Kp[C;IaTØ'}!W/ֿ,ެqseoZ* `˱jFOZ ?Em,q؎Fw;$[PGJ ^ɝ=_.9Yҿ>5t~yGdj˾A&[޼{gƝ,(tC spŏ懸Qp.WAU?o4 e=^F=~Gz0̷@j _ielZب8>/@/q7So94i L%Jf&tάTfh ح?&fiz3n~|6ܤY{yNO6Q/ƛrQC+4)#Tb~[PG!kq[\wevVBeۮKKFn}Jv+k>%uk.7 Xs.m1` 85kP? ?P IF]x-e+%ńYR+ fAfqW/k>I o#;x'/OO(~xzH5( eWU+ ŧb?/`ӯZŨ'CedOtLhkԈ_l6d1%nHC HƢREiF.0ky¡/qKoV/vQ,HBҏ"kf= dۣǿ GE0ۗ ŬG/=ӲoO;ߝwNCtp~w~;b):w}43)>kFT_ݏwɓ6C,4SAn?+N{EAK7ertc \?+dy5,]U"^~ozEe ^HA7@h[Ɨ!tT747.3W773vLD #7fFaMC)݋ BŹO&\tP7aJԠI Em^O /мR੝eO!ʊm Z#՗ي~&|g\d'I/Ll枡y|'3U}C14/$N,w7ԭHc"VT?d}?ncB-Bx*jaeSiLRrX.WYS6&i})x%.{SҚA9 Zb:%KAHMg[K˜9%N%׎jѧ+Yz ?.!g 7PWWTg Μ`S̔F's +ePB%'fۯyZ$T?ɓ(i\`Rc QhXe( G( ZhsPe?YTmv袪x2a5~#3bql Vk F=2?{͒R狦fߏSӪx>kBN2Ǧ{$# `6~)X59z"8" LB!r X3(!,RdN՛C"p>~|䕋Tn 6b4g#>n c eCKW}Nl8j.8`1BL~,{\%+95Ѯyd BQAcCLwo"<?z?O`{|'tnȑDH#$«' el]J E5&-o®;@KX¿ҋFeD~<|&󲎸_^ťȞ(:^GZbV3H; bu=5bl.KlkEKgyhWEZ?}5MMl\3kDOYEj ÚJا$ حaz% S2gUO3"dYpMֲPCuM46xS9 ??ٶ(0S6w iZ,EIuwq{^!uP8Am  @ BEE(Ua.gͫՏrwUCN ۅi K-I5ܬ=)@N{fB(t:PvPiT~VKRU"jpHl0P+ .P*^?W8V}"!GsxU\5)I+MQ/9HdE!!h}Ukak֮7jwٱw ^Fw1cg(;$󂙦ġPu4nMRJr;Gy}[3*qDV{x>r.WR:,Q ׏}/RM`v`zy.Žd(ibNhd9?;\q/ ݘ@ \JF-)ZgJi A1[$"֤z|oqzoJ-*UJy ݹJ&E%QBM$YBU9S#[.n%':ռ E#[/D4o4XF5B:,`tBió6γXkL(ٸ!6W;uVYhZB]'f/S-{T({yγL32`S-4n,{-lte 켸.n4eI2 !1ӱ3j⍩太_*Vz?}BSmsRWSgHru* iBP>>& %rufKrcXݨE.. [ $I5nՁ8 חf=/L=6K|AS/$TRS)GuT,VBO)EZ)Nao6瓖3W2 ?xܸi~H4 Pm.M&͕% =Bm6~A_hLu\⇷6i^ŵ@fZx֖,m} ڵt!+xZc0A3s Qf<bbXKY/}-^﹅,[%l˦Vׂ*E[Y wEئT*RnSbSU@O’Z.EZ\ԃ;4_s/l~B?a{t&}k%lq`BicL\A 3"- TH$i)u",us[Y{B|`r&ab#i?B?4ACU;SO8~7?͟ZOm< L8{XFrqf K ΟdL?.n Egl5l!!`|z~޸?E ȱbi9FZ*܆MR,2w@g:w$f}&=s4zf6j3 ;z7aYbAa0R^|0 bEǘ4Y=vpHyIEE4{vT١ MkZ-0‘&B5 |]9+~gԒ^U c= <7<רL)de6^*?^ ^fo4C̴% xF TmN(=-ON*j%5rT.G`N#6P6gxpEM6*;8a[/y|S ~uc९Xm j %"h޹ǃX=tsf6IbN h~>a]䞘8oj" Ghq>iGHd_SJ 8k:|]V^-U8*O*ZLU {kAѦ`ijL_>L1Qvf ?/;L<\T$)T߸\X)Q \Zj[Kaphjr2=Yffx;5~_X58ʨiV@˽JΪe0-- &:\s^D߀xe: = P׍l;n f0*he82{+&lW,w ~59>jjT^5]̚1@d%UҖ=. [vljQ"V"`t!$GSŶlig>RNnO.܁߅? qSCRǖZu}?:Z2t1Eg\"ϼ>E)H7S,~;61R,S%o9IP)iۯa|!vϚ`{lO1Ⱦ p9 ה@9U/S<'#fx32& *.,>`ՆcCW[Q}f&? ^f Z 螐Xmܜp 12@T NDt$vq'Qut0/ UV5%5H*NQM?EGqW{; qˊ#s.Gn.Vv-:pj0 .2ܘGLm=S*ȼK5!Qn/}ok1&AE-MTL3A|*jzvO _ޛ33&[\>Xaaq[-ʦevO?ߗ,s|gwڳLPHCx"-OJȻ.20.Ҷ~U0PwtW~0#TG`܏QZpX\{ws96V2͏EZT-m)#3J̥V [9`aq1D'ҷuuk O={sTu7QTK.drI0M =SrW^b/pml͠muqh죈$!h44hC&4:7 tMbg@ڃwQiꁣNP?rvV}c|*YtlBvטBBQ&&"LLK\LI&) @Ծ))Lm,˽RJ[Ҷ{>+6@rBQc]@DZzRzz*a7zDzһjZ8Ϭ[Bꮒ[R>~/4̓2ޣJ3o%$vJihT_G0Ex'SOQϟE@Iz+#u;'0쟐eNdfA|kF he=;@= nۜI< yZdo<=i4_aIa'p`h+^!lgZ!o뚣e;G;*o8O]O'xc gib@$Lξeh%M`$+mRW}y-v20 6E樤h3ņ^X]{TkN]sUɹ69'3~,8</'+' Hq^JO{2"X`\CJg\&`n@d(D|&ϳ33Hie`[0}^hcv|T[[?TGc*=WzQW=3f`D 2( Eܘ&kI%{:Ka*u,E3-ͧ_Q#L $[7,U$4}xC/\7<W'fΎf7( ɐpB OvD;& +Bzq ,Y4`lhe{yeNۖӵLJpu ;FA,8Лgv[&;a-@X~@$W?r-,"!{.x=p ~i|Y,iXK"&8ЎB Y+ 㥎6Rz˺RUb&ɸ:!Wo>@Ϧh=p:O}EeW-reu[!b9Ԕr"(>Xdg`oZ+%ʣ@S.~੫.P7Oʭ|wjb{*KߟzٿZ_JdJIkr,%.1&퐲z01Y;ŏn;+oW aRKO}t>O~_? O~'? O~'>O}t? O~'d1Ɔ41 |hcCƗf41 hcC |1>hcM2C! 1 ifBd!Bd! hcᏆ>cᏆ=>O}t>O}Ͽ'? O~'? O~t>O}>O}t?g'? O~'? O~t>O}t>~'? G a?`t\ҞÞicVzg pe9IAh?BCl" 72M4w9"ɏ~Xa}eK:)kwԖʏn`sffIdh:o֍(V^1[Kp3T%5=RX^$C[L9"rR %a5"<*cXu+?z\0;@5>eRaC/#zm6z0G7z ]B l|&@x^E+aG_x{cE\xFˠub:ږk:|^h*I;ΗFt0gH3QyZusrgyr.:%bn@fk#>9/eή6W5Y\.2mb;׹T`}ȁ3t݋ais/nkȸ&9Wl~1q^8:#_}`|uk0UMbmƟ755u'LT󩼬g%,HB{+xUkoe|41j#\{G3!<}`V#af\PKS'Jv<͈&d/~jP-C+eКTpte.EaoCrxaKzT&3B<~Pi#@8H#DǔGBERf*k\fgOoTbGgFႻD0 $ d<<9<ɇ\ ^o7\|+ b&d)I@Kۋ=8>/;UAX_(l̶H^DOS@LeD e)TPL>vvV Z>ŝ<:@1Q;gow%qLBQ_5<*#uV>̥?tI eE:6 ɎSCM1FʪkMƫ.^iS VGj6ڥnc:'Ìtn!XBTE,ƅ@JI.OBoXp[z8.=7C֮B~9IaBBpΐH245Wu%ӼX2d_iGXCܢ.|//v(y*@ɞ]Eƣk^EZ VUQ[ h~bо TJq0, (ח*&l/awưwN@ўy[}1f2+8 .~SZp1>Z[2=llyfo"lX%#A5to#hl(8eJ[`Cq4G-\J #86NARڤȯ/Ot=*qu<zIfSUSG v鿭KVjk<ђ̚{gc KԤL \"f`/%Ϭxc !:v,n/~3vϿ.NXNvr@ON6w~`LB( ȰȺ_o9*zY57wB6hb3_vWx9wnF\nY8rS#E$yor]6t\UKT\MduU]l0a͊4!Z>}6L2%ɘAQ` Swydč;g;I^$3qN^:e'~82Y"!0$6~aQEp "0 g_7cu:_z͓pb^;HOG*%q 84/xL$dQa dke3τ3“-[gz:^,ι]wYFqF`}y@BAus8ӛn*K$ a .?Nu{ݻz c[-UAӽC+L1B$x~u E`p\UȆ2!UY;7Zu ǀ`Wւ4\9';Mo;C؟Ӝvb3iC\l"|+3E#*S:)>ٙ[o>-|c'y29=Z!>1k4_qsvw[t&UT6$1bcf5q$XAaHk`e&0B$cgʘ;,,*# "fp̡LeAA S g˼ *GDDӕH5D9n3.65@Zvw _t-f] j d^&kҗawX]s-J`8G+-lԐ%q\C#v?d4c?Qy{\A!(ϓq?~g [=D`_ykYF,J!~=W-G 2yţn`tMp.ր珮gN( .mi7F'5L7{b^ߖ)}4E\KeF;UnZ@_2#gsC'5]V'm ټ/hed:[:u :pƕjNknqmr hXӊ*~G\ :w>r^- qr+&@{rOp NhŘFݼD+Aq BSsvq h^Fs|ѫؤLU*Vٸ;41=~m K5y\Ķ5z#Qz ؈[9v`Xb @Xf|ŧĞga! D]8\ K̢Jh-6XSؑ>hv@z뻚\qod u(_S;iMpQvp+Ԧ7,Kr e1OD+ WսF&~}zx|Su|M/vKIiS8?(?E`T{^Ɲ`T/OW'U-"oo߶(%x_XT^#/^ pi.;/ϪhwQ5: H*6| GJ&R+'9AbHL2F.6~bLM"YA;8)KKVOT|/P[b"~@\{ nlR T23*}g3,iѬ->oJ^.?dDWq.+̌u>”Xf,lf֢aiӉ!YD`jGDg&7o^sD~5tiW[WTvUv$X[ RyL=Lj 0Ң>Cu!9✎rz HLD0-.NBBp":(~)}U<&Glz0aK!b4@nҿTRW|ʪD&F =TM{4T:EQ?ї- y`hhitdH/FT qLUlyLN7\zJ7dzTé/^Im;D#HH(J69 &o˼G͟rO3g;c2nC VeAڶӕn|~{9:rzax%RAW&VJ~#10Ob7^A) h]+|̿ff.L$}aY{첇-[Z;[ 2<Η/Ŝx"ꗃAe/ J)Y@cx#VX?z Y,,TezCѼTh%rܧE@YaJjUuu]iRJ+UgҤ/-QtBN!m`̓aX 0*茑yVm^(p.s*̃]bH~guL($Kl'fq'#hPvoR",Q61"8@$ج"yAY#dqE`|'kafd'77^rγpE٣ eO/d0UF%Z=S/ cT*nx(h0}z~؛^=.T!XT8r AF34(yo*9y7Ύ8.*=|.hцu4ϥi[[<Ox8/ H!sEX^ >^ #OG fxg͝fS 9Gr2C> ࡍz]dZ2¾^B?fª%# dwa,خ/+Pe delRܬ" !xcBpqV#l&;B}rgXܼJVmk~tĘHa'pZ]_4K 0gS0LiF՛t O]t}HGTIgg61* A浼 9Ds~cb!0w$iJޞK%&s47WȽO F =6A*P_m[fuVx`'CˆMݞ\&Oڍd~Fly>:fq;ΤgRU¤֜2t]L9LTɝ0E*"߮ }Ysσɹ C`€W_,NEnaBE ~)4F3}/saVU;A6Cw znG62)}5'JQYcXdе_":A5M#~FG㑄eB?Ϙ!2&4F,3H^A|hed[#v-vC8qcRyN>2TFúPUlW6G&7`` p=X9Bpj T-#ܐA@'YAy܎쪄,|r߳賸qSl]1",ZaU\qT4!Znx[P9 2~O$O: C/SM3_;[X4JpK^}U7ëFv56Bʬ ²S?ܸ|ebTP8Eo1W&#Ph>BU |ATnu[> , bpM4><; }e kM*na B[+ v*wJLd= ae;d=iޜ8̟yf"ŝJBa7c"U5% o^=^(i"}g;c?7F*2ԥ.Bؙ.cn | ĝ5((7j\eBʺ6/э+#KS 1rOyIJ:DV^6%~UaG1x8^NEտ?JoUuztP%}ƓwudQF^(]/pm5_I.+RᏫhʚkE1cKX†&g:T UX3\ HgNa'XXk'gc0TюТOwr9;,Pfh$B`c!B#X{Z'I pd e9n>ѧ5CD dT K@gc]ټ5t|QpUJfVT朻豔B s71Z6Lh$1d+_#G(pRw`&NF v|2Q"ahzҔ1ӘA0a $a ̖eDpm|&C[":r2k]b8|ֱjU Xԉ6>0(mb-ճ'zqCFSYXR6VMU b\5Ae S+v1oD¼Nfv9DnDnj"77?鏑#<t*A[{<j Y׳aaMKJ1*ָoL0p iOz1UFcT5L}ZCHt>[1y0k9Å퉌:慦dSe2lNf;\¿6zك5dΝdxln@ltVSq9AB;UUG)ϛz\l V z2Œ xZC%vh#M ґҊ 0vޘM*WÉXL̦_͛/y+dnvgଢrJ|b^% Zаkll_O);E0myB aM aGnpZ|&`{d% /<偅@DP>ldkgR-1y N$]]J@ŎvfF$: `>m0nK .Qen03 \<ɓ_p_#khNZKgV$G}}\ȍYYak:W55;Fl/HP.&4WUSr3Kv -RW0v (&tq>yNNDz{n@);0s.Oz h$ aPS)<}F ozW~iQҟU@;\h_֌ BK+nSr)t!9uM_++{2wbdkSKFoZC YL?L&,B*~RL{6^7lNEXfVL)9\JZƊر]ȉXdEXA(l_Vv ,*zk<0͘?E ?]u=:&2>D^)T(3i 8*`un=oaO SkwTPgUrflY* +/RqXEuvWh+i8nJuΘj-|j7<ǚ$IV<ΦH7oy &riOU 7hVZ0bVS8^p>P zqWWuM*(M_B:>&.vIY&d KfrQa '@SZaeUYrvZ]e0P/g󜺂pN vii%P 5.>Xcz74C4l p8'h'||NzM@ww6[sfLc0@_Op a0`8a;%e pp˚ɚQhS=n}OirГ;& DA+KD鏺ot ?ށؼ0׸C.žz:D8֑VRQmŋuDj;yN9B`bC7 {" )DQ6C}?}>rƌ5`f+&Ճ.ge!L ;0\.lXމmdXȁz/g uM|KmLmXe[, &M/({KGoyt @ONsD7vj>ŭ/mֆ W쇟]J&ex~V5rƴ;̚];)GPShmg<0џق ]r-6zx6,h@—QD0f4e8}Gԥ|]:izzʖ[锁 BLER0A\g[\u" ^Ң8 !o𹹹.EߣyzED/<6FQ..Ȍhq[5_Ҥ/z'/*ԱJXⴵCIfPia0`?6F=wDIjrP`zoT#/hQQR,K:iB!SGpeGCKp:HJլ#%BX![SSH!v ƷU]{W@ͧʡ+$8UԼj<ހ8~4R:q>й$`U4P"bl;?_ ?59;W֔RI^f?V܋}/̃Utc`vhLNЯ 4K!:=;rw.?~ ߍ;7\[[s}͎Jr'vvnsNg7a 9L:dsq35 {)/ V+Q|2{®.nsrr&27}ɷS׮Fa9ٸ|F]W*6M`ڞTu5kyDwpIι?ϣuX]7˕OzxU[Cum[Ex<2JDm\2˘CY\ aɛ}_7{O:3zAՒqTu߰˸ҵ*RڒlٔzK)l7ͷY{7]Hgw'geV6n8eEoO ˋp+ۘ7uyWʻ#|ާ^Wy͗ڍwʜf<&܎d=9\\<"{ ȓk\x'wu{8}1Eg/ww dIQ:^<ݽhbkc]/pF.;L{* e_o}O?sf|U8Q&0m鲶.KݛOy Ⱦ\ɽ.նv%ɮ{g;Ԣrf|;/fovoww;‡ouTr']˚ɸVFΌ=DOj;fߧ7ܝݻm&͗UTNLwUwYi$6wp9r9{6v%Jm_9i9Ӗ\MW("H:9]g7n3J{Aۂx|A#;Fw|&/N[H`>y8pF;Eww9w9]˚wDZ7Z/q{Y85~CxLFmn-^3qy51x֧]LwW9\̡ lF#ko߻ >UpsC,jNt2]1yD"w"&Jsz_yagC8rV$s Dhl@ ąΐ~OHNB_.jޢU&Eqbs?, :#ծҘ -F\&$bsaCNo eٽxeKPj-do|&'`('95da֖ooUO2rwui{ΒtØghg.ŽQN>wyўV&rkqpapw| E{y&x=ʟ7sxɽp6MA9U=d 7i;ȪGl*T6U,6 eX*Q/'@? -'rT}B~K;1ci΂(y7"+c0ĜjD}0TPqJ%FI/Y1/gn9Ntq|q1z|߲ T;e^FpjAb"9K޶:czyyzYgLg? ϧlul/@LR"$u捺=Or[uzBfm "-z*o{xmY0,pOs(˼|2JrOȆt;v4ǛZc_ I;~܄$gdGsݼi;pFOτ_cy߭9ߕe/>_{+;.*>Zo N15c|ueNrzEuEw;QE碰!I5ATuќ;½8pvCR]9I<퉙"Q7Fw~l1׸TƦ >Ȏ}MDVqȺ>7s͑յyGl)/ӾsY䡛<6r{|Fl[n^|*7'ަ;$ouF_ks?kEg#8g& A.JKek$M=zU=оO ;ʐ.ѽVcov^CVl`'8I"Zʷ cs[Y5\﻾%QY8a,L3E=as۠6z/s޺ owTm9r$fBIa2'#x~/// r #|D!dY6h)Fuk :6A|4nޗ+3~e-=kIIɑ<^h4pYQgfMRjTj2.㛣/T7xfW>`VBMYԙ@q>UakYRժXKŐV%"IaR"=8>B0,k׊2nI?[ 2"^+GMt:oc `Z-Ӏv'=zOMzxoI݌u2W,*S~4'ZYXU?m^~Or=W6NI@ĦŸ& U6ΛqU[;5d& +EXYZ5~[nt0جV\U$TLG鎳E/;t;'R2C?a'y y)&@{>nߨ>I:ȯT4UFkf>u$&kF O::yZצ4 s=7榭e2$#Fuo ;l9༗6F +$ޫzgj3ʿ]5 )QŭW,d A MZ)Rv,GcX. (pSCUŝ82D`b e- ja,*Y@B]n߷|B^{g! |>j==m垞e`@uSesxLTnj3Mo۽%kp#v}lNI"I{v{$1]@]n%ZBcG~oۿ:nu'!̍ǹTksf cOΡe͞H&ɜk{)SG}ѐ@a7z%-rI>#x! 26c6i^ٸ=d 5. $ g,:\tbTd'&ڗtJf)cޠ*ڻio窼ayj̼3de:߽&%T@YLDrTeߧxC[sXo7's>}tz'hَV5_mMuh}~LZ:G婺T9vLvu9:>sɰ"MݚuxO{so<7u;+jP;Ν9xxGB쓚 yW!}6S\ȕ֮j6 4Hti5p(=~totQ zvA(Ա#2yhrQwNzxR*+JWzPA)G;6,=\C[^9Kо)[hOZI{`tB-*H"ܽ ˲xWWИX%oYݿ[8$H}{/Y]:PKtk%&N HNeTjUaUHd(P\iaueo>g3V4}DZb.ԉz6TVs~#q=6>n ק3 }KIUףG|+U"z%eᝎ$35âaOpstFNFZwIg:cӤ_#Pܲ{_$0 3=$;弭UB"lYNdr%pDO$(uM3N!}ܕWqdmk4` rkū<ރXnXpm:hkwwrnoZ=l?)QYYҟA1ﻎ^lO,ΊO$n>|6۝MBu£^XZ^SI$CI/HJò_n>̟{*`f;do3rrIwO:QZG}΢/Tz4s1f㎎]TCpcT.@]zIϒ^gˋ2H ]yPu3j0#7acz7;W5Ƭޣ7lu!_Gm|2+s˳|׾3L#ͧН"Z }Y…R$TC4m:۫zQ$W7'j5lbd$z?>}ׇW﬎G a{v9E왈VqAXF:TW(E.4L{A3,7ߧZO}g=WHi KGqMJke3}73UυWʚyᛣȂe]{y>pdIM oYxƭxBEuƍ/&:#ި'f1pURtY[Gcuw5|Oj8z\u6S[] &"\npڵzU{ _~|Hz5v<<:QX#HI'J{45gp>w_ؚQI`l{qX=,GƆ {^/tJ& \t]t!E4%~k!`2H_~ \!d/X]fōKtGipr"@A`[NG#ޞ$1@."ьPez`+ztZ -SD1[׳OΟ놁\/5ZՃT!3(O SߝX3 iP*4ו&> /kR)wW^ȼpKw؂;ŃN/;K HG{yNO\IGZ xV )L׭lCF>Y0h9!ۥۙFĻ%؟7fE6ws)TF77'@.vZF`/P B !VJ`+(XW!u;sg9Dc}{ۍp7\afgWۛ.2ȩbyŊ\"'z6`y1O#u'GggΔw73N.(䚾rzs}skat;e<.g8B/:ՎHr2ahֲN{0:VF,G#2Ӹ5/ H.тr9>v_jᑔ1ɍ_9򯛣}ʛ͛78%6&^Kڭr^]fseB7x^tM|qvasU;ɸ#^,W喥TB]K^޷:zb Su[ow~/ǚ Jyw\%֥3qVv`V6nwA 7gH$M@;]/+&aG[F:RN]lյ7L7-p,rgc=cBǫo_'꧵d%MG*dW/TYSWby45 .<ĀAUuHiY*. Q! Kvgn!FzuQY2UwI0=|^hd[Dj=c3'B# Xcfq:a\ aOHzB23Vy UVg !.+|wG}n79'>~s)Mϵ4$ŸŒ3FGxWiMM޴!6Rk G&4l1_իwN2;T@=o+4!>]R';ryxż)e<]t4Gݞ/)1`ф zc?#_d6l* 0g qK ͢X&{Ng ~SHm*5sL" 1GkPfXKE2G6XoO"_Қ"6_3:V͹(Ʒ A=Z/!qskˋ0TUERXXBl]fp["W0g{̷?sYLϯG,Y}tM'dA̫%1#X!ێv/]UĂ;wxp.k\TIc{#vs6s's;w 7SɜTEgKwzcwg;_'1/g[,[wy 0㭛:iU3l\!z޳<[1']%̲qPODŖqn)~8h.b_n=tF7ܔ)(MlFdbJř"q:t\zNj"FQYZ.XHYEU *B h9ϔ<ܚƧ&{ޡI؈(baY&X^{ӆ򛓽g:5_7$ϷG3ϗz-$SAgYQ*bDss$rupodռA֓X=08κTDGkr\o*:&T}}$[0D@.9D_bƓ=j2Vy6jT1aѢ']޷pO>ܘQn'nTj* @ c[>\ \OL1;nrfpS7hRyw@ 1Z.oR.x&]^YNNALbD||뎯9_]| czȏ$w>y3޺?wW OWvu̚dGwp[s 1Fn"97n>gZij:0ma9ͳctMkU]uYK :\S_3[Tlm!;V:/[ul5g:m7IÇxw攧wjڈ1C=LeNsUԞm:>_D!gHRIEW6ũTOZo+wxj"&c2MÜ' UdUVyun֗Z7^w?9?kinc~p*!"0 ?!tɟo}K6V͗|yd3}wWr7 m4'Fʤ-Ἔ| tF \ՠ\/jR'r ڲU,V2_eA+ $)kR0FBR01 ʀ ^ t?館g7DdRiVȠyLg&݄mq_Ygя3 Ϯ}c 7edq {/ʹ ͢zi\cbN_Ź]w6;6gB2 а(QD * sF͋y]wtvyd6vWZ./;6N2orJh(]WQ]ܛr9\*&Nv$׸syN:Xy;lG3̹VX0 j{,&ls UO/* 2fB<#aH1s4agYڣZrE"}ŭK*B|W%fOPeoOvH#Dtbjʽ@G.z;]őSё=KguD#TDA?=ߙ׫]Mzbq|xOш"듗0ImnA S*n{Rz32ͩP _+ Frag"'ACɧkiMFmw~OU&kZ.Dkw!Q1፺3 ݜz9]Ѐc]f*;C:܇>Y}")r'G.B,qgg\:WwFLi,Ȫr7_'𥟑ɪzND6K}J{Oק_|> )5AuM&C3 [=dt[fX+Y௟0l|/R77\,Xs%ȒОs߼MqۣQ;]Ãq~^3,۞fj=zsU/Yo1<>F^Wj2fwU{l (e3gB2֯S+QԤq[EWٝdy(.A}UoS&q"gP5l':"'Mw?s5ǂ`.KЭVUR*Bȭ.eKBQ`?[e6r#/2FLD#/c$ɽT]Oj~x?Pu;\2(hjH73"7 g7}VUxk\n]Qq]w N/~_bgncݏMaTkw5oWkQ|YsE_s) \g7ze.o5]7?c?W\qt1b}z=g9\!}:[ ;z^VNgsrWHF[z},ɟnc#yZuh5̮C헄L7{fcQeg*ӼHy\ʮ9e&n}Çj}Gea'ot9SC/wQSoF9&r뇯"9t1Qu;tYO/nYndorW fqĈk|fj{]CzWn\ -p{[mGܖJoRsnH?wUϙKfr|k蠢+U+l#y2)gvۛwgߗ}dMC:$Rh;= _Qxsr؇gh00T31h;Ʒ3sۛG+o??0=$vmrBGܢ ʼnb4kp-Hۻ2W/Go2ׂm6fLHť(343jtQ*VAEI,HrIPO^84CPhEQIUҤ`$&n&#YEI Պ lYOeۤ'Q@qVRUv,N]x`gg"eJ8@1XV l-5ޙ^H@A>yr䥊ڞ^Y`+.fYlhMC经7P,?\Nx\:sR G4uӞvNodQ_w>izmM}/ [u\ٕ**>D䩸nfəަ1kjlRxoO9㻹[ un}FYfpl^c3] ٦~GnSs9wls!};W\!2+q7SFze6{WOe5r*__JlGg~oyUYvoe씼{mb ȮAms*#)o6fv4${N]@l\2(wF IvogF;԰S}5ʬ_uv0לhQ”&J:#~:W:얦1vqx1Η{{|3)0 HHW#$(w\yWŮ8aT:! $%d6a*͜As>,9 X{ڽj.g,K{!}"ɻA ެdžmq`(R|ka޷R^ ;/h f '*^?NvMcDf|]'!"c擏 aFے8;7DlŴLDsjxF qe>gڕ"y'Cp~d aS! pecUF[d8Y\#PY<J12o23p}jR]Hh2/\T:&P$p k yjjL0{?F8>i?jbV 3?9 Rr8RenKtZ. .]wwqj$";88YEHmje=S,Gq%[. jUc4^Ib_MXjmF.p0[QLcouTqKR""#6>m$wdO 5Ğ=U5Qo?5xN*:L^c45TČU3΃h)|fm a-xj#uRD2@i0GoW6#kdym;*,F1j+T{?z۰f ؂`FN!6]?]t9ө;@`rsTM%ıiW^A"jbr( %'kpر4<'|zRJe'7Sbƞ& b2A[gf)Nɩ(egz -we6vRaS݅Kx{gtPN֮mK Nؓem ul (KB_!^b6߹~ւg#ngyA7H.'?H,mgv30|cE5V&"KZ"yp;{}oy'Zr1XW(](a3ŕ]~-Z!IPZ~ޟs{.^.|knB4,*CVNܬw)O=r[sV+voy$E&P:S8mjYq™NU9©i ]\6` fJ,d1Y'p3C8۲u(˹||f:J 6nzuo 41ŵ4f6=ns)07 MBT86qGq;K0i5k 7sEg1c젽2"MH $"vl;z}yfl\/6-xgij%"Fa_ O Z !G KĻwc9֑jˈ>wMb^O1}suO{6ϖ[`Yض |Z4KC[ c2wx S_8lm%_ XЇ0w,pYg=A;xߜ - < {_3/q"3[wnC@gS@iLsNe8n䧦wg5+mPX_SN ’j>Ni+vyq_vuqߧ-8T tuO>ޖV{үEME]YuWY[oe_acqogok{}{yyz=Cq $67ߏkTOJWv}$<:#4w]`_u z?UAҨ " t EPDUօt(.tAt*uEPUU@4 ])"t]ht:GHHI"B+#ҚP] KE* .K iAhB" i.҈"hS@tkH#Q]" * (ZQM:QBTAM*֔t :*tG@t tA SJ((#(GHJiTJ&Q](((] ]:GJ@Q֗H.:] .:ӡкDU.( M] D:TM* ӧZDDSZ]hGHKҨBt*ID֗@ѥH] Jt*( ( *.֔]i]:SJ*+thUtAU"&TtBtBi]"]1 E$$XEa҂D"":DB+M.AKQKEӠ]iTt("t Z )4](DJiu@]iEJitЂ ")E iT"t*JhDTEкQAt,$"H$`H,]SJiM"")CJ.FBD##IdG@:QAuGH *]ЫME֔T])@PSHTU*t J:GNHD֑SKDWB+(AUPtTAtAt#Ut"*ӭ#:u] GZP]" *U֍(H( (.DBAM #J "P] h]iDWZSJ"K4ӭ.45ҚРAt.4D )*(AҨ.Et.uiUut:@EtQtҊ "it:H"҂" (:PD](]*.@ЦACJ*CK]":GJi4(B2$`H,c$Hq34P{+K}z%eG~a z"FTuq[ͶEM zkٳc:-F%tЊ/Rvwn^ε_BV]23򼮾N=ouY;Fr{߮|/ݢn{l e'ewC?aAxe=5Sxf=V6571}*7773j*i?gɱchg|3q̼C !Ր^ӐkHrs9ZRԇ3!H/$9ߩ܇?bC ŝ d͐e̐fːgʐhɐiȐjǐkHtq:Xl}oxz~oNWo鹸ssvqsvstrnz*)={jjʍʚ}ʊ&UM>SMQܦܦܧܨܨܪۭܯ۰ܲ۳mhi۟_L$z$o~+Zo;EfRl51p;kRZOFxƉR!G a  Salsʟ(*[8cZ;Z떼CmN~B8,>VRX@" &(SԐ}{)a_ل `{0AF N!XxãA p dOE2HBHF[ pk;W8:]حm/TA**mgS0+ Դ\CƵnU^g_7Rptaʾ?5!g}bu_XMʅ3k6u XamMRak LڸVc=)Kwxl]_׎w93ScH9R`טjz X- !S [Nʏ5 8ٓtMűZns7yy' \wN+ŏnn`?b܄'BGB]H6 O6CH;;&'ycEXٝaJ4deţkE (h4 1X͡Y}zCH@b*;̬4g% 0AG,F^p/k^ o?tdS U}^I*Oڮ}Iƪo1?lI<#!'wȏ.i9'mdknwe™q.xnZw|mq×9X-& c!A]\J{n;;_=aP` (_G[&%lL| IO'Jb,Y ^,ƯޅYYհع,(B]*eMn@vbt'_^/L'q??gyGzJ] ]8V_3-'oX, )WIWX(+iRuI+'m BIfE)JE4mܨ 甖HL<[9yX>NoH6ԋJEJFe`h-beYh"CF[&{&Q^!y_P\hD"@+6&qO :8_sjF´qT6RE`EV254{]gscO`XYkҗͰo Dڱ)Ჩ ؄$Q:.a~<3>7.l!|n*4}j0ߠxo3WO[?ݫ nkuB?&T1JG-I)eK+#[e:EʽXmTt}~F.5EX*rb0Ԁ9'$Mors8;װ%8Sʥy-%j1~͌CAa6Ck1%\q=)/Pw͵>Fs`'ÀO<5WD'jtL9L6*>/$b4Vi $vaX64JjB^=WX|!7ݟQڐd ӘQm0}[NT-w$Qz2Us WlZEeX́!l*)߫yfKFx_zxlqsj .2]E 2D/b0f R4)X?&Vrs==!Q!"ݮ8BG:>yrtNZ*Ļiއpȶ#6,,LYc= /2t@D[a$E'L=yLYϜ3量;`uםx؆-lnɠ"7TT敹R|ۻa?]Ф<0fUSco[PnL"dlGPˊ{&X6JDۗO-BRd3W#W|5n91s)9WL. i/҈{7WD>oqǑcxϸw zxxm6u嵇nbn:*O  d8^OJ5jj3T=xb;pXR'=-+ _`+g1Q*B9gŶv\$ d8vQܔ.[ݮp]fJ.no np-Q$1wȦO@@Qʤ37;OA+@vp^ ;FջMewzQmݶҸ n&\;FdvwRN(nP$L8 ;~>0Oӧ`07'妞; ƿ/ZuQ޽<-)l,'!M܈P"PŜ'  d/o1~@졸lqYW*a mpu=t_ _}MT̲K/dA~8fgţR04}RLdTP,U,4"00cTMpy{n020{OK,kTLS 5X_bfMIXkzVtaSu?q\6_~8R}cP` *Cd'Udh4h)e(7q~ulM9_t0(L"rhO)Z3.p NL'{͕LA$ϝF`tO1;VMVB44˔C}o^ \mYL5b7 WC87[(~KG~,tLn zM +1i+4-]BV/`Hh0a$"Q0vTH$3BnrN5aVGj6Sl? uJ G0DpY< ^7&\GV現0f4o6~:Oa=cwY;PZNt׽4=&v}T6Tvʉ0"*e1hxH0↬uA_X'ha"%nQ5XF&Fh8(Dz@1龼x1)R_ ްV#%P[l[l9%N4mNz4 &8hO/ RZvb )QKͲG`)Pk>keCć:?zGD|XX Ш"t6B~)hlej;q GpqܥeԫajhrwxObtu˅5FEAK&s:ilW4ܣOCEZ{f(yxpVM<]_̛8֡Ѝ bIpHJ1ytS1l QAyJ|Oo |@k`?hӊMxf!_Z9*'nʺǘ Pm{Wb[JޱP~JbXƳ]_oަv ccc LTZdjb,iATEo?p)5 %|Y-Gv! R׷>8*փa]TLЊO0Y\;SB:v40|>L=DGƏ8s,\&{.^Ra?PJ9$MU9FƇ}ۉ7t͓v|ǚvwSEy:"v怣z/e1)v{<9H|1L>LjB\OY 0Э\*G>%3e#Ohu=+6a]fuA}T*)Z_Ga<T~‰izʼn?tn ,9I:Fr2jjkw0i"]a\3OJ2-41 TS,OB\QDKpuӍ㍹êՙ9MuN{/7'dV}][-e1=k\y@na9X+-P#|`ŝ-q0d$/"iZhG<n(₽&J9GsmIUHs/ VZ'oOӄ@ V]c : ?1bpM7b^uq1RΎ~%#0ҡMk[Dݢ2fjlskRs,&65fo] Eu'9uѣиz4M=;TtCqǞ."t1aJn¦Ҡp|h;KAg b+x@Ōq}eF*fNkorw2ބU/ꖮ|Ψ~;\>:f > )6u5dNxdW5nhؖ| NYx'2!G#9v|3'\\@-]ttg:F<|j5HhCõŸ $u,)JJtX Y[ҰM~>;R}F>];-EQ̉{5-ʨ>$WEJgpssfE}kW!UE,~m'1]~ r.z x7ۍ[縉19ŎЮ!ɍ@O zKQ] _9 0ϧk~ }a';\;쭝wVSu3RwwxSZk\=qT ii2At^pNżP ڋi1m;:66í*Me,bB6B%z8%`xYnj-*A}ؙ*t%}R>Nᔯ7Z[ ^\0jkζ=,ouĻ)*놈,| !q$e92TŪ'K~PzChG#˾Pu$D,FEuIyKMw[/v&E鷙^7x]m:v [փ ~ w6Q,H!u80WĈZ*$-N*Gf|s78#!Z|a2V9 a@ QǍ:ֺQ+W vCOsC^{ (- v늵.[恎{hlec|#!Uu?.\o!vE^ړ&钟1d^6vdgٍe$]NIL w:CE2P`so7v-+Svpm]Vg9(0S txp5\b_C U}|ښiv,leX&wfcx7O|*Gc42Vۿr9LD'V *[Wɯvno JQKUKx4-$qbTc͟2-w{kt(ng=]Z %~%! wm@9 q9XKj<e-. !f0lAXlO-/0E b@w;[ D/)d A[8ql o"$τ=u\ }M`!vUX>, pP'+X܂A>4PDep]N*JzU# ' q<8!H$@7#9"O)ΏrO!u8CK?DI)+f= Bl6hk(pڠ~M~MQajlڻ@\B٢ᙎz!:[/zuQ]n_5Q 4 wVqIU7bXm{o4+̠\BCͶA3Ad.Z^ A|DYWv`cQz*KI‰ *Mv"20oHbw&04oom4iaXJ(/؝b84B">n6~XA`)bTqUhXҎed)C.$[6|vYHȦb8I]bT?MCzK\3f&%x@#?2#C(Ц42z_-"AyeDFY\\R#xx²q~*.˻jиVd Ԝ&w8_7(c"G g5J93XS71q1gV ~+ׄ5١s]Et7Nj ݻFW!]7c#ea~.p=C"6gC] 9u=·j @TnJœZ#qW==A|Mh,XRx1y{Ѿ#60F[eRds E͛lp%W4Jd@ma\ϛAX00vOxSv'SuOϞ0":4`X,p4&H6にW$f'qRlGmIܣVz;>"_{>XvrءOk/9r),ڕ0?2s9nly@~$Fx^̌Tku"ΩtHg2]2%-GJ^87+B]g:L^K1+"C+4$ṠH0&TV4tCVoS@mg?LW7CIc%iI7AۮgƼՒ4F+j}Y0vԌCSlCN O~y#Ȃ':m7"{ $ΰ~ ~^|in\@qqU@Q`Yrrİ,l!ЅdS#ߊ?[=ቡ:}sD<ծbw*v{'YJD FNHRxCk\)C[6tGvرjÆc7$7$-I=?!9 R{Ig%ʊ?G(#+gca ®f's,O䱀-eInKNϏsUad\zd|"ǩ̹ͣa;1PMfטhO̜PZa)RKqۭ^.R^}NR/Ȱ;>4F,f{a-֭E3:W|ѣd wͧ\tXEm?s*Vl([ %hSԢt`i^h%20yҷD8]kV1X ^ն/a؊3 :Rݤ@X ׏z'@rGbfVaUQZ(m.O,Ck_4Wieaiɼö;yKp3Yڟy/60a43"T>)G W`%X#8ϝs*3y%W'֮ =<W~Bž;-!Vo,u4t$ 4pɑ *,Ea1QM٠gntۤ`mx5F֢b ;DdIQo O4C(Jʏ07? w7G*d;ҡFif͍?ՇCUq2T437 7WZB%`.BzΦی<4ZR p΀5'PA:bG_~cy<]QK̩f"dU3qG6:{JE ?}Y=E$_[K` uV#d'"F'(_~9:xa ޼#i 0+(@z89ڽ֡@wC߾O-XX$zPwoB G!}> L;?Nl~8^OuQ;>a}9#wyb.C?T|0񇬣)#*5%m^3?b SŒ{:zC{ <{}q[]D8,nN\%0:+YE{EE.U ѽxKBG7[yTl uk3{߰xuU.}R9%7cQ6%PqžGY;nR7!s#A~9hH\1iZgGzE| ˝j2ۚVvt&W4uhwb=?(b"gp{sH>`f]i|!3GV*OLi)@6S6-+6 DYm ?$pZX /*x'bI<>+'AKf?bg )sFNF|pV>O.XiZkt;!D,D ' Lm& öAοt?S"K@Gq ƴgvmf<ʱ(V4Q?K`*xVa!P<}bgwnx !ϋp0<!-L"w\TE >"Mj"r%XlQ#˦8%nX ~3]RB|ؼ+X왫te_8S5i|Q]zjxoאB8P̢v ʀ7mѼ xI^Mλ?ǩG\"qk qH@?+g!uN/u'c8gzZ#ȝŠ=~5giP1*}ڂ؜A񙣸iN@pvG _vCw٣tS\-f*Y:|2Nގ) <5͆(NZRd|FO%az9ni9ANnM)B!jt'Ѹ Yܙ@䏦Tn'[[ivB,?A<3_/Bb@ Pi]Ѿs/zc?d1L/K`~;apa&gI !cKh}IPBHLY ȤHx%$\hU ѫx\5]p~.{6\Q_fcZj**d~!0>tw!># y4Wi8Ob^lǟ?hphVΦG-RTq`Q~Ǡgn^3b]يa'.}B,"B;hKO&&2QFS6h~3-~cYJx> q:vJ MF >bJtO׮_a849a;3ALfU-%g;kd/@hBCyۀ`TG1:#+Ȱ^1I jz@UfF2R$-:ucQBopuigFr>^$C8=f^tnu{ HYnɦ(Җ y[N\d<"x痑7Hm^i{$~7z譣{ła8F4Xvkt$w2&N]D]'?eOgv+>w_FP+ .*x5+gQ!$Pq}Hɑ0Tkj;9]k|xǗj(0H}CO|CPO $4U@4;N 2|.yj8@|OQ8|<}^/wWpp3hwBEsag |CiW!l {GzbXwE&ggrExǜ?3)DWGu@v{x A>-%?D>}r{992B\$oy=x7w[ osVrh^Ty S@`uNn,fJ(L:Z|QUhGG#S*n^ v$I/?b'/͖7qFrpl}xGؼR/Xsα [=d }׳t|Ya0i1hfh"$y|[Jfk ~F[ myyA!4%AǝU"}{S׃<3to+pǟg;]C$*g\=3k |~=nvLev&uX \=)`4!(+Ż@>p"Dqs8 /9׋4_pǤMN8Nnr~'hK⍍@V(AR]Ք:#4)Pri.M<S|^ DwjQ~OV8Ƈz.ܠ0n|l0cH-7fj`Q..1fzg_pR;>?$dt\ Ic0͔)I`MhE=k#*lYC%oS 1ܙx/LJe/weLg.r? + E $ġXr~}^sI Ab Ű^}Z؍ZQUct> ~XВ 5!yUxxLBth?)4cBCyyiC)00$*u&a12W,LYwm*|B8;g3hTmI__Y^A41aN>G5&a{';t|Ž^ LM'ubC5Lz̵*Ab|01j "~(/DziO X520.E%!Q77R" GjpMv0%~ ! >h9y,FXzEsx{f/ dr$Cf !|t}vP6W|DWwfZt: Tc );?ZĦx%ܱ[׏<}:XqT,['>yaT{KZQ %@ )QA35lpVfB,,!Gŝ nb"N\!ϖ?:Yސ`8NL;}tJW\t~[UI/Gu0x/0giaYgl 3EhK.בd(̘]A;ltu"(}XB¯DF<BxD>X?ٝŕ_C<' 4Q|5HAw[01>S%dspLXѝjsqޣߛޝ˜E}heA?Rwxժ2NQdQY/ ́+Qv~^Q Nm3_tѶ[f-N,0|@<ݟ43 ¤;ssG}Cߐ;`mFMrP2< cݴix@=rPsy渼qpHdO#C9|:&~0=!!\"P>ힼ?3g.QJUĝawu\)Og.&Cv.JYZej C8fwɕ>9+U4_9SI^v<mo9x $ E:C|95Llvopt|P:"LgxwA> Oݘg* !L=(!D?yHA x!jZ5X܇җ | SS_f␾rgztv^y%'/] [DMhI"n`M :=wcCU;=A4a6Qb?-h|kQ]=?qkUbz`iT%h |tARЧ_1fk-?xAt͑:5X9|R;k4`\ 9z;h9S*3,} A<|;d;CFI_&|p>sXxRg?&ba(O|uw/pBȒcA8@|>nHlO,b@ 9<wc |4fAss4rš¡'0bƛ/6'/ZN ઑ''#x!"v$Q=oN%0̎,mW`SLq&}脌!Γc Cڂ #Z_>݇0,❍q\''8p ?@Dܸ;R,*%0eT ~ޝ{2WS {G Nd^1'h2BoɌ '8f2kz _[3& ,lG40(B#.C{%Ȗy肄2芚0;C8FQ4 =!o>WAȣkQ xe!`hp6\f~1g=Џ ޾?L,{wlEWro2hz\`O!x lm #3<0Y=q;~yN.~x洝5`a}g>%_ %ԥ?i\ c`|> !>ԞWPt=߸: MTF`j|ڃQ"?ۍ;EVL܇X>aҪ3bwdc#h߇BCM x/XcE9->x1A5>}EWp%*ޫ O=BF[ v7*bssAa 1 /Sbn5X[&صWbwewdF뎜h"mp6?a VTuŒpK3-49T#:kexBj |q2׎4dvwa[P=Bk R0׈6}`i[.ofwC(V9A1VZo0Ui荀<#0w>v EpzHLmj= bSƄiBȎ2>t)r6^ U2ti6pn<6V+cPE CnE ΑtI_e% e'sЅ|S>-Qb uJ{64WG e|eOxwŋ^mSzfޔAɌ19 5}`=d? )2 d^ Ȁ˘~ aǖǓ嬉qo>y8|4;X7|atNg1? w4oi4s ԟa0 #[DrxpL@  qB30`gB0<&yk<Y˅a4g:ьY㞾P2i(lÕp,X> V?9-]p큍V=a 3C_,xgC;LҞ`>=;|q(A<Ƀ>{*4w&gx^M{J8SV%=#¸g K聯2&#I}w˞tIo914D_9:'(lhP3sUviQ.8&+i5UG-rEϴo8M&Ń=TGCg %X~?*bY8fSÛ*72iE p`y|U>fߌ7R sG3GL\a|ۺ5s:8;GGas,oVvpT>=v7Uy_ZU8&73 .pydr,5wN[lH}M p˜XkX~e H*2=evqW:ƟX Q.  #>:a0EG_Cv1L@c?ͨ |=@eu ĹuLjB ~h,C6+_eII3Jqo zes忨{ݹԄxs/|oOO&}9- Yy'[lQrhFb|L?o,7bʋrXPhGt}f+ ®ȍٞ'x])A=C ܜNYW!ӇE߉' "ty#>W@a% .`(,|G'wbf9b"[&kABd/fzla ?j~PtC'Ex,2 oDhÒ^2Gwgsc8hӍ甹c ݡ;4*.M6 Ltp$!؟9=<㛜j9<@v&{0f: dssXĭ>1?zJp+G8lJt3Z Z.hv:!sV909 VC G&V|:GҜI/X]#tvd~wUVH`C2Or'7@ ?HUk{2 # ` xK0hP,E'3ըy0r#H.89>Cy!k:JPr ط7{1<innqeƉBot7#oA:2,CZ}@:"NVhfL\\9A/sB'SیI!iy$H9𞷔#R\52cn 1< ^Gv7c5#p P)&'O4(s%D~h9X.ڞa85P* A ,F xLK?cFܥޱG'ϱw<ɢa|~L`"C<GᖓDơ=Θ< OÍckCn/`5$!Zz\h' IM/TS6 `űa@IMbA=س,ݚ X%c=ꑥs-ea,.szxp'f}8{r󑼅\K L!%e%v~-c&Bq:sGB&;{E:|tLx(&,?NP/ .ߣ"xPbd(Ə!iC!d14Q!i@G?8ܑC+e{2#.ccoqA^P4?'/ReAt,ubum1g |j\u"qcAd~3L<?.BmvnkͶG<; MwՆ {iTe/_P/O<59{_H M:ixK7f1/x<%޺`.B51ZB|F [u.Pc2'L, W2$W ^{ bdTDxrzȈWP |#R#+~GKB1~" b11+Ia1fA#ZNh5-fHK"MUd8L0^v#ő,SDt;WꜨlk*y:|~0c&s&?[= Ͳ^-gqLyTA="Fk]|6x^ێ9LjW־CR}VG?T_TN V e߸gF%;;rAfd9/3{VepqDDzmT֥1 M0P#|k|OMc68: u yP1ܦzF `Ǯr!G#mF2>nfw!dVGψPc n~y7;H\Syb!w Dm <Nd~'îίpPb87hOir8bŽ '52+@M YjaeI1lB9 EE\ReG6P$BEI$BCj>ls{&6CJ,j7 >p Qh؇Ga}HYQ_EgE@1zY@#lSzl)٤'0]X/խ3|/smg9sk:دWUGD;1jiR%5!<"32$c G(?D{ @N)[aD. @єuԭsj4e-&Kr3*GE{[{z׃UdyVv?*+Mg?N[IOqJSRR=`{eUSʘc:&4]qiX@ٕ`QB B0_7fy4v5=Ć<^dfeɓ&V-ѻX\CojZš-:rbɴ*DFV낧Q+Bwv즫mx<)q'/zn\~ z!%!)Hwv4*EoiKQ%++'++;q2)hl[}7> o;~|Ne2`zamArG("7()[M_! iCxR^_U7/wUϓyQVm>oOd0}z~7,lz;Kfh\3alistE$@P#3$pY pz56L|0;M spX?=ҝ"@ξ{S92_ti:";i#QIHȾaT, " Y)+JUBA57\Ӻ>Q;)#)*Z{aHRbm -^CآB .q?8d  wkj1"qv#<> ;)Emmmy#\?WY} REEY8`:&oѐ[Uaa{{*B2g~NFe __PG=s̊jewPc'mXU1m]&ȶxwB ʩSݳ/9ԉ @W = kW-ݨuߕЊޣ]!ш|UG5Ϋv料O'g 5{'fBaj1bA)I&CpghҜ+Ir5:1t:-J~2By즖xI &8"[[>4:v}=Yg5mݐßUEO"2%Æ^}Brx+ #5e0XbKVܠ9uি h{ QQL*!Pϳ}vu__?dmt6I=zth}|C+/?}VOB5fdw<#AEJEbcB4E51_/>WJ%'vn~{Cw7 Gbe!+%9JDc.`@>KgMCKr+M*:㑛n0IsAAK}Xfv@ձRވg>e PZG<" I g.oN7(i2dE/bM.&X>L/o+*%/N x(V26? ܀Zt_Ax+^MË}rCfvcc-'r}5TVQ`~- @mJQp46bLݔiTS3۱o_GD];VOi,ԅP^.x.61BI^ɍv{}8CPqO-LwQŵg/CN3;şk H)v)疻v}E!dbtw%26u/+}nGXt[ pwkN$+mO#zZxe=,s$+a59F3mU@`H jv㣄-kB֡s?C@S8}+¥\Hh!'NuBc)! 吮FB >~o%K0̀˨7 +yÖ4XSb=K;ֆ7vEݐB!iY61m \` XYd)/Q_v E`{q嘆Gs)~ GGKL`PRU Ki|3)dP`/!{Řf7A%HetD\afL'!fUC >TwL4 t(f_dgKY'Ӿqx$Ϛf p O>OX~NCzZLb#ZTF#oņ1,B Ȼ^fHM *M}IXesf(*5PY #JH! s#̑HKoϰTJkr[1!if%_Ӷ5Fӹuy>o`?X1'ށڏ6_ذV;eoϧ<sՂ5 2vaav!8w% Gش5yF<)f0~PĐW>+B)F;Rg_G>iS?0?׎\\Xoãhv(bȾ4L 8C'X^W*eLPɥQuiyԋSN1z+:6I/n$:R?VXEQB/3ť3"]4fD6d2d7h4Pjkj5 LGb\: |jSQ;e2Xj l? d-J04q \2 + $,Y4,֯,'T "PX M9uMRwpIQich|:_μ8@kZvdMh?{|musֆy`۰`f,cB!prQ$4|*\iUcPw!8H4TK#& V;%Rc!" >41 )i1`^ȏӋ@Թ֩Q+:{ u/p~0 b=.ݶh}.RZRƚzZ6֎2x?z8qFw,bgq[ h(cL}aL ; SP]rtz&nZQ4g0 m[~n0Fft},l45bs{.Կc"v`Ce;!XϷe&olr[!C6}s xc7 ab3 D0$0y$mt;^K:}?,֧+2lޫGECJÇK1`2>n>T#s+OWɏ(MXd``W|`[l1 xɫ5h;K`iS}#1 $! 9e~x(ABD۴0vfՃݣ/(T& 蚔7ݬL0aVaId!tr$g釁?`C>̓3Q`j`Q-ʐ 7/A17fz~&~,MLu6t(2L){#Z,L΂!uYʻd)F 0z/?gms&ŗ}n ШV錻/C)joLar0`܋4 "BFj8(ZWkPۨ鞷2پ? ӹ ;KA3 ; NwfJ](dr; w\W7٩w4a?KQI?4,INh@P A1Dx}~%cJSMֺ?0UD+c,ƪnR8Ž1VB$f1"cYO1b452٫XQת^z'1jE P 0oW%8_z%IbH7`޸=48lAp=6anY݀lEU[+A,iah9>ȱCך`zPټk,!l}/P?R90;J@ok|`RjMc+]f |6 p!A=r6B8p |cH]aEٔc3?irV%"3@<}844sd(X=R~6 N(\:! jrDωiՏNǔ(!X*MUOW,OCYJ,ūC#qfe ~o2Mf1wgnF38&+0<#nd,ÆkPrےJ!v ܢ@a!d RfXXX: *`+OceﲌRω ؆IzAf͜Ei>(ݺ8q?28tcԟ&w'5d'ӦoN_Xab`[`NT`sW%%+Id9ny8bL 5& =ѼCF9MЬ(oQ,W5bdaUKձ qtGtcX7p,q!8 ѳX!O#1 -PREB#EY3S@n_Q4g|_p>ΊBvh^Q CN$C8FUUx㏲R/x鐀Sa0I͖_|>E !i,noL 3p+MK#f0H,%g;*=LCȳyn3}άPNIٕ/JMצ>nRn>1Eh{^Vm:~ g2ÜU <} `jv`SF6B>k{޶QɰaqpјY0&.F?lrs]3 2=Mco`iM;L:xp[X6aj C;emAA-8X(sCZXl@5(AA i!X@q} 9.wMJĤ&HkS;of˜:xaGBHo),/=umFH#.yF1@hŋ0s0:1CrI9`ܕJFIB a˜g۲ R V;' "c@;D#ƳEXLiݠ9^gfG 6F7=Tb7;AB܎AT4~}gcz\BNvX_hvVWO%󻠃?9ywc 4%8iO݊<`^@xh$(nrθ:ba$VI;H Ր2ҳ?N $(F!C1hjW(1ƒ)W/9:&S-@:x eaO6sSYf.&l;\_}lWnoauϯbG_kRAnK! I,' ;\t^M%hw"ݻkOcC[/9딿sfGQrc&v8 |os޾0\(Ar_t ^QYJh((aYWw&1f$~\?a1qr?Xˋ`ݝU  B#LȲm$Ms<&z$Lpx`=4ޑ4,()^$@3RA&DDxF5BPPBJ/RDАH*X+Zez4Y=nu!r&CpZPN786?E@|; @D(?RlU_GNdQu;D{:8 P(" ';>QO=QP}F uDO:)@LX(=H 8S@DƎB+bl}'ъƀj@1Ž/M=x(')>9;1/ٵSUO;%_ģT-+(`LH 6,! HH'9/tn)S 38ć?{ϣiB)TBY zncEANFwέ%5A|G1le#^+ؚ|%~qi!8g7hl`LJNŃt,э Pֻ fEMڃPe7SLX mRl/UB7Hk3XP;EQZpq%a F$`bKPvA_A AD%N"a9jăOb5)艨 Md+~_^H/M\nOoOPIg߯;mM0eDd4͊:~|h,c!o% !b}+8WhiŋCW֬Oq /J5{0`bM'e=yu>E^-Spӆ3#YxjdNG<,[Od`ș"kd9M#s!wCUǖ's 3q ~X\ mӖ Z70cZ41=6~foF_Ir)DʃL1\'$i,e`X0 +e21$wE!d8}aʔ2uq3RC^8|ǝScc.^lZ>p+z2lfPJpZl. paO;v۷̠Y1h'n&D EooʡD45@0 2"LBP"VB#h:ʐMDH4 Da\,ղ!s|(B!0J2 _Qt7v| B!!v>{>?B-Eؚ3VTC@*\v6BH@q:->mY0Wۉ0g/!eʔ~@2XUYxi GG!v_{Ri=q ?9ȿCw׬0.%9"8Ӆ8B|[L'*I$ZkW~r$\M3b/V`f:%񖠿}!-~SJfn'ZZC wdEoOȟX-? u`z޵3:3n;FvG]y2`qRэh>F ?>fa-wsΡ}Cp p>gto !s4Wu[R4K,ltq7ȇhdkg3v 7ſ00}l8Zy&!h+`)fNjJ~> vb~a^!эV(TҌXt62fVlnp:3I#Z`A4jkQ/Xlv(G n 6@<1ᘞ .2l$md? #{5O,3!a{L&ʙ[Ga7a6-9/뭀ʰ{iWƌ3I_{>x-{C,TѦVm=r|9وQ%oV^lDO36 +2Í@]CsgPh!v~gEk4 5d )t`{(faDچy(F9qK>Q6,V^}aCbTRboZl.\o~<^_ "^!b[uϥ|}wuηH!`3}}/G6]Qv4J_D`kmˬ+a#ղrro# }R"D ENإE-iGUH 9R^}zݔbGUx :iڒB@cX!H̑#dO2VDB6|/ff 汼ﻕ'Ps:}c¥ִ+l֓L)TaL%e5Ms[z lcckΐrշݭ';gƇJ/1wP8;"(¢`ł:Ab̗^X5b6lY7ͨFP*C`$U0Lulp'8߭i~`\>p  *" )b!LMC58ބ.XxK? э5IYqNu' |8I҂{\x$>݌jv&q"2M\[mY a/:)WU8 W8]PS4@9rخY6Gek5hK~6.1ANڏ6Tǫ5Xe "Bk BS-C1to,u8 l؅;@:?Gi#3xs!06l^ϭM\<;eSk"qHP}~dR$R|hTFpss"olYw4єRdw:)B? cl#E}N67j#e0lY;qT-SA|E?z{!cE؅_ʰBnlļx6?K6R еQƔ¡1GJKtT!۱_ӥkDC+s]<ˎ),Cʌ164ˊ }0ͿCqаUZܪ]r&pq5~Iƕxоf_*z)|i4ϋXU% }`D) &t 0m04 }UJ57"+~Ɯ .[KJʆێKP72Ow/afCCC4 џN' ./#b7m^1|B>jU!?JǪ ~5~O'SD)YQ) x1hyX F=! dxXLY1䡂R4hid&܃1É`pQ3J z!8%{.|pEQ6bEJ{>.A/DL!4Ip ?i]j0ġGzn[5 >iݶ@^Cv2+ k7 Q1D1OԂDK5[]= 0Nb{ j.;7IyK ׁk!P rX'Q[laLkf, {;-=$`Coa=n1 J_u@hE$;W*䳜Ƴ- cɑ]s?I#5@lFBԄ+1 (#M6(#,Cl>0vF+xgN4puK폍(C9lmU-|vڬvHSrı##l>2S}fjDM*? `I+ת>-1x +L!GřBn$\3 džō}j4-FZjl /uC) :J!CF0dgHp<|6D7>7 0 ,Zh7~)a׺Z>EmKX~yFFa(u(XфC=ش k:tZV?bA<^zd:Ƅ>I qh0cu;A`||E@$d\%E7wX`|}U@-HΥE9-׉,}dvJ:gp8$slyBC4:k٣nֺ?B{ٺoeG#cʱ0{k?Sakcq*W[x]3O͈~,rXX!v=lj]ۻj shPn0h>60, &e^N3_?HBF50#V$"!!`b.bfׯ^Yli,43AƍZ88y>I<^~GtXo`0o eF؆O9ko"G$qي#S!~;Tboi0Me`h^O_k0g!4U? *~Er?ŀ"dp˼:=.?ݢ:u8{NoYL5O7`9(֬a5=CL:%6wm(?Mq>4 G[N;hc3}gyW#$PGD1f?dsQݬL}Y3aqd]!?y?ՠ<yoNAݠ.CZ=pPn."/P۾iw~n; 8Wf: f;Ta8JnD$:*qӞN}fFǰv}\{L8(.n4l.dKdƃ^AP07[tft?kĪ52 9pc1 4)܈{,?F7zCA@rLz_w;v&TdC u=s?QOaOk_N2 u$Q*%&D[+Dx?z,vM}x 5]n8:suGJtFCcx/u&JLX)yC9*/@yX`X D/aPaJcW"({KO>a3p'3\ `둆RANҚa d0Bvx:ϛNS!g?Hhwq-ސXt)]J3aߺkaZ7^s:<Y oťD*T-J2VXJs:TvDʵH JN! Gϱ [bla.b26=$vXn~)l0}֫ j }6A{C)0 ]3t<%7}&-ROanqXV q`TdкgS3|/nJҹ042;,8pm {D3nrsX$gCF] U2>eq ӎ8T(m5/]ChCw;eL14QF߱Qu5Ub)\'|_-j 0u`lPFͅ.Uz8|z_~CHk7؇c˺cj8O=O/qخCZiϰiǡh4o#tl7la9\= 7`߶a8"{Fq`b=~@Ϋj8[݃=݌"C<9}g|l۷Oݺs\^cdV?k`-!WPk˙?A01&F+ױ$Lj H7H}ӳCj s%=(`[` yga؄lC2>xoFGg K=X=TGLoi:hǚo;jؐ]]Ba)l\ ƥ&U X10bޔ`مY7qX9c3_PYv3Ӥ4EuG9C{F!iJ6n5#Ed "$dMT'ɭ"҈Uִn"H$  s !" d "2>B)94CP Pt. ,B2)$2,CP&]R@5 c@j #"dPȁ!4(4 )t:EIE A $$JA$EdAdQAt .5 PSJJ]kAIBQ@D4:@GZt4(h]h])@PZ! ִiAtAMP5W@ЪhDXֵ5htAY@Y$ fQ=XXNz#x#&CАejNA!dke~grT)4N󟟜:Dך|s Oo]CNc`<5Cˑr;K2#>[gn>AJ10/|a,7 LH@-q!hT>ЭhXj1m RF#:C?Ӌ뎬1Aۢi9G-CDƒ,f þgf /K|!q8|?"NYJW3>wtͷb؃.nq\>-2+lF=:6j:ՃsAdCD;~6X7ˌ :sm}^wWe#Rq7miiU::͕mh7y3W~4 (ŕz {l c:"2M<&Dg}M(sJوuαL)g 1+δ~vRm6 oX0鹋HTPp<+zh(cexl67Ih `Lwr/*~H< eP:lBC_O=bXSaW,嵢 VàsPp~s.XoĽ-B) AhY"V:N v(̃4OX F qS'ux?ht~":Y TZ3zwz%;h,){?DNpJV`nCtݺ=AkO!Zc14ǀ{8Pp >'sZ:2!:> 'YdYYݕHHD ! 5b@G1}D>D(L@B=6HH.R{^C WEkI }?q/}yg%X>8Pt{x^dn ys⺕:9b3Cu|ټa}7:WA4J!:HiQy!Ĕ?=947ѝOJy11 MF%`o%?(5:WC6xdUgjKd1LIi=gJwL㖶e{Tչ|Nt;'UMWqͅNb>E^IK>e>L=C:ݨO;zO +]6}:;b%p4!k;Lp'4%і!D<6!rȇX2ShmS8WX2!G9_*aݲ0Uz#^b΢h"I I$$#P< HH)S0ލ@jl;]lFXlw ljvV\X!Ctufc(A]Oʡ2oo1W41Că >[vO'r6~9Pϖ:|#~>ֶ<]`np[= zD߇)Ήc9.[2p,"|OXR2?0tRŻ]_{^Ǐ#zjo-NѹY  ltS`:u&[U 8Co  I7vM$/q*r>=XFoEs8NXX0ma^?(Q'(-Jl\cS>%4 Rq7ޭ!3|`kY!@pX)ZYBFY`VWͻz73zL#> \N_8LyB]PvۍΧ1 6oG;hiq ?65E MׇXczA$+D|:lP$??6{:h[!Al2 CDo DOMCXXQD <~w ?EHȇy=ݏ5 W'CnԖ!$S fDOx8 䐀 8BH Z戧 swm?oeڿÓ:^Ow}ooi0gPUKх(2~hݰmn* n6 $8V!E:{9S҆Oۿ=~W;SFNjumjxw:JA|3۫4?ypy[.Sș&Z Ņc,[0\G׋Wrቸd1bda1Lm&ytxfQ?ﱃޯC|f/Mll- Z-FܘYl<=ʌh&ӝgiC*`B'] wB D |Αr[N} ˾ª#o7NUzx``caRn}kV[0f/qF}'05eq|~c9=HeOʠ 0A#ٞO@jz~/Mo׶X[?Vm}0"35N2RO 0%NP]C0nQ9~ NV.{"gc}kۿ Cp^T~sZ,w_=ΉblX;22`jQB4X9ndž &^J|";}ia V'[ xM?#v e?0\3~l+67Kȃ1v]*yb-,31ٷM8~B,2$2\399ne]t[((_}#JP7K ou>f ]&8`GG"o.E/~/?G>tf_so0EϓO฾qlg3=ÔTsbaoiH7< NI2ktpq]vS8\n <(+DP O2]2nf?*iUʸܲˣwa9d`ONV(TEX.#- Q^?&kP??9w2 r&ֲ_+FPtUaGٴp5(1CgChE4IE*Ygm}S+ 1 y/a~w3Co~:>,0 QĂ|CA*HX[+NX=c%fDEUŃ})ڑa ٟxQ4@ #gUV4AzHAA(`4rGPĻEǾ> L̚QȻt}F7qLb,***)C@7=jOC>J^ a<'L58v=:%W!@p֑:ְ#!A-Isr҂ZVW~K}.T3^'#!DiRAiX&KinHQz=糳ۏ|{Ir%Mo{~OWyOگ?'~z{7\zf~OɟY~2sݻg7mgoퟗ9黕t᳔*uRvp,<k iV *&V [jK9Ofi$T:‚}TM񁺘 7G2}~ Y?ypwBGb֣=bx´RA6hΊ+*EzT^zӖ!޹IxX> g ͔=a_ʷ'e RδYmV8YJNQ~54sF٧hXu|9`|NS$v.<6wQ@i6b3o(e\UWfԳmwR/WG+dnG|T`OL8w,.L̘%RXKtN5 5 |H*no/Q@\"cO cKThm'} rЂFH/>RAo q۹{͏~4FX|mǦ *J(T)\/xҊu}*ŋ"V-rrܐ^I}XKabW ^iyņxJՌӨ~!m݉QAqSK/@r?Sok<;W ۍ A%*~~px7й?g ÉʈЄ"MrILB'#[CYbusN| :f&m1fzCƯ"E@[ VײX+ ޜkĪ}mjov, .JaVQʢeb(z&ر 𫼄UX9ު7)7:wG(| H0eP!ΕWr"kN84ѐ& R+6h{"ny{tY6Vn]7ٛ ׫tب2!bV] )Q Vc0dɸl ٰȌ%IpnI4xI9~񴑩!-!5F]#R6>Qh<]Uc VRI1V7'Eb/sU`¿k}'W֘wq*^Wx%v5iGĤ)Ku Qvz/f74 C.~A6{Cx!˷nwtSDުzX#ikCb#48.$|A ^KOP֕oTж=鎂ϋnW !ً XO~@kGj$NL(b2/guceKBQB`)$ DꌅlX(Z)RXZJW?KE%-!MqG/?Ki%'kDtqRՓ0ٌnW] zcH^(CyNZ;fx5_E@08YZL{&1A>$dLʊ (º_h Kjxi!vŠh͈dԑI%hD0rNe|1,*4m{uȉP\ }+Cj^%'B1 9 QPQ`>r>jt 15^n2535nP!`4h3^$4YN2L)c*aav- c},Ż(bW{HLwyl\QA7 #`qyxh"`\)D[~|)PV_kķkKÌBS=%|68_yXt ], wrct]\Xmiݜ&'/4(G`. rZdjBURc3؞1P:Ç|jB%Pt=2TX5͹/ as1n@yAʎ>ٗz/Jʮv#A?&އ6SvMT :ɉ9pOI`8?nZ`gnVѹ-E\u(iCZgYqo7T&Mb!)a*Зb.xO;mu`6bx#ODHb1CWעy28e ⦻ë@A͘'P!̈q;*'ם8֭po;ε S0Z-Dtcu( Sfdy{d|!}FCs"X` 0aT LqC2#Aaޛyb(oPQ)ۄ;Vcļ@Q]jqq~z : WkEOcZ6XLff,Gfeahrr fsOTƯzx>Es|gknɸbm]M1ۚ|=W!d5j3YYٰ`*V,Z-^ FEdfNnA c=߿~7&xfЏ۱~yJgWԿ{G6>=S܏L:o 7 ,KanT2 Z _[kО=S^7MJ\%NTρO˓B DL(;B'̓!9Qeq@en>vx&c]?(;5Rc8j[U}A+< MS~+gCfㅣf)J*ʸ*vL~#`l/P2ZZQ -LV0kbcREЈ Q:Dfh61cVz=jnv{VM_* @@g@@0 *s5e{O{TeسiZXJdxUAN i_iu))`Ɔ;UqɼF[)|ӝӆ7;3 s~!}=x%b;}FU_9r])3!v.E"wPf) *r&4byE73OvlKHHo(b+ T"XfKk;>l+CH^I͏R7M&zb?,1  Mo:K4j'SmnNXRctꈊ$5Wb`z0zu"z 8"`[(\C0nzvg{sn~6Hv)}Oltz{LL.N^E MS)_| >݉\F5DB^O)w*ݑ4:A+e.8蝾xG ?҄-&*I!>GHQσRnY:Y;>e QrƤ YMZ~+g*TcRQ QyL;sDӉOpm6~.3" a!ebj yChQ#Az6/*m^k6m h[#GniaOl4cA0.W, r#leb€أs2*6+zh>v ",_/";`pt^J?%?Sy6i+ꇟኢsYICT~8@C&cDZ ֺ٤Ika_qc9/~fyo#}G_‡XQ{c`x41IO oQEֵ+fX~ògK,b^qtFl1!\M͗;_(^هUN !ƨN ͵^ksNbw2!0ԱoըP}SA!of*^~na2%|lp/,X΃BlfE36QMZÍN@ٳPeXI Y &H #E9ww=n5 GJ(%Nm3p=H\t[fR>VRûcM5>Py4W2\' /T>.T%=>VR.ʑMNӬX0ado*JmD.I+2C[dfIGRG?hp>`nU[P&|ۥ5fԊkRl'%q]l-'ͫvB31XHvEa>bV],TrU}ܴ(l,U&>x kz%PF-t ?=Yq4;fuok{{ϳOl8G(آb"r,>E1'b@dEb+b-Zg(,VƋX IRYXS iph6WgY;*t\0nt$rwjgqʒ辪LrBSo\=wMČcBsUG>8c1u.ZoJa)z#} x (z5FKZoGs<pc fT@~#fHw(({[/+,jtG9Zm&6.6g iy=E~6;aS%yT_3`{vbmpfNqʣ>P.?jK d36_DeJ20㓄Cz?eM#Dv/PGBN>N!aفTj F8vLV!B mm1@mLg#K~>PP)D0 78&<ɀZESc'D_PYH"3:x`)a6mؘ+T;x , ֱ:ܞˑC1;fU썓!3MNJr4"|?N )af͹X4h6G.FG%C4:u D5ul4".v(@Bn TAdȊ1P! =$@*WOO@ j`r >LRt$A:pza~A!ptZDP"&EORAnq i Gz.^n)@N(T2@AqRD 8 ع/S j['9 *|"#lLHRYA$EM!`8dS(B*`PleDE";I:`lE((kP kbI},M{kCs WăS5 MnO4G"%#$ ЎA4P-ūX!;3p!rIH1ީW,Hɲ]Q?׽D|DwKu᯹ao0џGs~Ĵd0 ,J. InG7ư{"pb3debɠR-Il3JR<#ǚDV+7;X(JHKr+L/ f#t=b `C7]:^uI h/mdL?SO ڮzikG -{#"Sb/(:=hnht.6%5#8/ܭs?sa?G}{!"qΕ~S:aWeσx8BM %)(nn8Bkf`k*kx#0|ۄdOQ-D4Wۮ.x( {nIħl }xz9hSck# 7-Fvűzٵ;fp1. R.ܶz- ͽq\\*Ef01=ՁuuU-͙l56}gqnW-y98-s oifTNe@灙K䳅z,~.{:ڼ%K@7oe+s ȩg>\R/ȑ_a{bx|`m sf>UDv*YƑ>[(-9J/{1l@ Ҩs& ؍СU]iLmzb86]stɞDP=nt-ʖFN.*Rv0M&#> )V ,-ND!H):!pkqrKbK 2l `ɱVPmWYG9flQ\!X:vv 9W2_]/Nu-`aLǫ ,m q=q̿eE!oM2_)SLh s+g¤piYUO:U!+N 뎈oDpc GwC ZQ;Cl(0r׈}^Pr$/Z{GX׼caoF9]@_ T,k@CT"?Rn+CËI_Vc-X/KCгI79sØâ] !:XdE HU@X,*Ŧ]jy3<!`sHËiRKyc\ct|nz%ˤCaa0oV9' mt|qϟTY|!>֠}2<[Q[8t#Sx,2j+[`xQсLyo{P!t,6蠰B`"D) Mtʒ|ptv u7"MCVn\7߅rcռ0>qZ1RƉ^L3)]թpۿ4!jH@W͹I. Qld N/=D[ڧe/(VCnGyEyuf7* t<:)MH. EkŬ)s^<`0`,X̙,YCj|\~HҍwQq*_ vhe}Y%75Hѧ:-^2%}j:61,qNC݌l@%SvX_َaߚì+&hmCĴbȨxM'vd/?k;N?E7ΕFÔ:7}xDgSyCSw6у8FDv7,{Efb*Qf- ;#~4;: wu>WCT= KPUSKzє}_g˥gv_LU|GpUAN "h+Z-ŭ\/&}FާjJ;> :DmyGi"tn`q=ٔG3 c+-BP/wJow6? 6yh*/ wHŦKZz`=,]^ȅFD*%0wxc`=>7@#dG_53hď{s0-qWK)E c_S+0.Cd—J9/H`V+0Y\5-;B 0+~S8RCFC%d^1(Lσ2th }l  )߆*+yӽF_>UR]6"ETr4oɂyf*վ,r6Ů٣# ׇfWTAƧQVAQP.s?|۞SZ7coA}o<7Rh 5oV(|+u |>s`Ew:NKoqTӟbOn7}^>N|Uw=9)FD['CHWf5@dj|751/B!LA0`<垹zicX u] _/>s3F88Ƽ^AA\X =pc+< :W֯ 7j%{8bg j(\;Bp#V,XZ`6a$L2f55C Y}fׯ<8FRߜ'{WFwlzOzN^W e+9r˗.^DЫ= v}KK*u:CX@HHP^4GCM@ nbZNe: ry>ٰMnrT dĵ==AyOkܜ~9OeHŐby :\#F^4j =<, d=.S ϓ&%5LKu奻ħdre PdkP)35b} =__Fiu~jhO'Zڒ Я*ⶂ+ÎQsnR+O`хQSאo`RgFO),,f|h]ptMU/Y0?D 5h~4^ƎʌJFltqNfo_V G'd0 Hjц ;r&o,q3o7}sc & nlSp4  ^\ {mAP P e1vur$ bbm붅XWBbRƸcKKl;3m,F=ܺ`yDsrO(1c砲P4ky%?DHs#7)¬)yrC6dkB++I´Ez!wu)nq$uAfaS zA( j)ybʟ`=."C}pn'=Z7;s\0eUxne~fxץtBCϘaxN㱊 n>99+oycսKm]w|(#!;Sa\H 'N&Ám߉2r(CN5W2aT`bְ*|t׀0GzTrD/vls!^_ַ B؏"(Q"4~l%=]Yw۵6Ĕ?g!DD][5B2q)B&G' &nE7SqQӔn*+ + ² 5MG|iJI~ۙaFs|.A[h.XkovY Txʜ+>ܻCDn:4iՔ o:f4JAvǢ( 6o|l@o.4$"OQ_Aaz$od'8 d #HKo8$``tC8t?G#(8̿#.H%.rPO˒[}ps]AN[ޤ=VcMriz>>(+K-!>6xxfkԠ2EˋB] {Y,}9V YL;V&w`p?]U4P vuu}-z )HH' .xÆ'Ʌ0.2:yVC}UEm`](/^h &؀l77$/ʛ`k<$C>o=S hmZG kȚ B{"m7ѿ5xJu&0Emxm^# dr淋୻ZuO-ӋPZZ1b>mx}GҖ́wFf{6q`EJ~A; ݏ96 b5IYX\'Z^8Bfb+{v!Z>'IBT)Zz]k1;k\Xe)Z5ir1* ?n7yB?dysGhrmʧQ4bX6+EPUX Jbb`d.]tbef0^%{f34- !~)(G M>.p!=ULc} B!W boe4#n5'lc\n4m2OBUɓ#'75o2+F]eu[frA`?6Yr : [XtF6=Bx{O!r[g{,{M'J,b/whO;:RI0cybњ f "у a_NQhN6y ɜJH~6*͝edd19;&|QD$aGyG2`]Ed\) BPTH3E- UŋrA"-;!*(yf? W [c?f ݹ Bg t#: ۃԳ_ v ;;58y#PRߵ.״ c']GU #h*o >77S$Nו*>' AWo@d}0 ;6*A[_Ar1Cވ6T5^5 MGt? !aFMmb3KZC¿^iXrXKC>\h jAsƖA쿍2ެ=+v{C3 Lj׈7)Pn *Ѳ  {'-0gJ#h{f`=O4q 2>C{$Rf*x/%͠w9ČdO<+~L}Ⱥ[W;5_ЅC3>*p"C.#v#}^8`ElF H ([Kt%`Y.ol-$f(xK8%*ΘaӿZ.GCR7ѪL)7zj~a )FZ1[ű3 2efփSȐ`g$):2#$D^U:}(֏4=l/2ɞLt6LjdSLY2SɣLgLg%98U&0ҩLDa0t Lljc[rq0+ /SXL雑L3dM-*a&}xtԦ2ɩ&J3ɄM+I15RinLue|.&0piv3M=:a%ytĻLRf-2S/.ytϦmaE*)n銊M]b"=2IIM+Փ+TLLJbbSA핳Fdt5znƕO&F„YqOt,0n+f 0mZ@Nފ8TթZ*{h4 |fzn6.q99#!;s7霐ZꍳyoS Ft,G𗙘T2ֻ JHi)H|Kc96f&@@8;=xpnaײYJ0knn-&LێE[v\b.rG%kxf $wK6 1]11i00i H zls.X>|wx u̓ jJD^ ~\w7DAUz R%]zqc-ħt}ǶG7]cu41$T+ !2eku`/y{76Kɜ7iY4(?d:!@SQ`69n2lx3CZf,i2W(5:k:)3 nm!W; '?7-RqXh1hF.DVˆphT' 4 eLVDRR49~;WJm/S3cRԅTP  Vbɔrf ƭ 2rQ 9 Q\I"?U-+u+OOmYgBL/J7Dv =Vpfamo7&Z:?0"{ Ei*])d_g;0d%U=sღB\E@W9C?`v݅Xd:{K'rNJ*"E"X)X2%G+cJN Ai y,k@ЉQ ja3zuITԊ~ ~,b Zjի*Crqpf\ƃA(&kj's YqqY? _c'N>h-9ʿgZ Npl6 zUo޻i׏z k#_\z Fd4+) q!JDE#2# `qX 32^2QDQ9$:"9嗠0, \ 8ue UUs_eb5'?FqnpF˸~'Gʛ˚bXSd._ʤzoNia0Oy-N$RyzF#C[ "2Hry\/+e w#*:GB<+;ӣw[,IW4bWu4WB,pXC2PPY,]ϯHܺqTɧBwt+^BZW)e+V[?iV*} jw_0L^=UA vas:7LnJh>C\`ɪ6 ʋ +{6z ՝%=-THc!qĢDs?Ē;Gă y(zӾjU DcڟH*?obDhcr}Q9z¶[C-5%zTMMҳ n>R-ib@Th"{5-{z; IlIUg2l T+wCh\8l,Pos"# `Uk@d2nk=ԇ[J zI'W;D\ wȅW,[W1^uEEJ80y2Q<#啱"ς)7G"W=uv!}2YQTb+l5枼;\E]sVN\v^]Ї7AEz䕢wqF/j@%\73SGO?GT_^8+Q"bſ #ELf7O.Yؓj+|n|8O\sd8@t=3,&nIeH0eA*4§ _q\Wz5ru㻄և)Dw0'ҷD9-<=8Uy|y ź]1h%:W>*XkvfZ=y^ɵpHa Gҩ1ΔdR  @/ڽ_<߈eKv%BG$L,t0.pc͂ >7FXxϞ% 5݃sJpUԽՍ')HhǓ:7o%s+–!\9t;q(ʦ/)O"w/<ʁJBapAK+H70@/ڽOa@T 4ܐF.w TfhYF9i>%5{qγ Q:Ap3i!p-=7#nbMyQm~NJFq:GP۶7yY9VMI]4PycǓUvߚo9}Qѣ]S] Ŏߕ}R4'ʜ%OMt=N̜@\Pʘ>NbLUO /weMe(sI\=\u uRJ&9xÛEt7qwM[Rwl iJX /z ro |8萡ʹ:MQ zsF\ 8iLP%BՂys4f3k}&+D[dZs1*/)Deir,98L|dgW}HxIx^Gh ʛ~9 SjG#7K8|Z?W["V+tW^`ԟ8w67~v:WA[xr72wb"7o Z}gu Z%eA xȱ ֔bN({P:&?f_KaմgиFp۳7ja6!t8'Qd,.a6Ann7S‹{g}_Jvm`7R\:R(Doj(V7Oxt'ՀTو2eZrn6/ SmCL(  S9nRYDt҈ k@%|Tn 60:1n̠GC2S9[uV{3Fx53_rJîc5B-LfM+Pb3SoHtG꾚07;9Ⓩ) DBQ.AD!:tmP DYUأ8.&Fh1&kQѓo,-x#bgC5CI`EñQ64+xhN Se(F CA/G*lN^jpn)} DnRxhXhud'Deqh1LYpdehIg*yZiګ@DD7tnfcDd4iNqLLu%rn'g))#`* I4*r"3[SR&E z1!]}V) Vi셪DU+4櫰KVS 蜞7#9TJ.K2$,$Õ"$ju_>USqZt-4%b 3 ^!U=` yJICB Ug!b^F"F=5jCXb)JZ"FT1E%ZR>2T/VEKMP֤jN j6D-r=ܣhpFVNHX'^NNXkQj63_PKЩ\-&+uH74ME?R `ehE:\)+ M-Wf6y~8qW`iAPLq$6Z\i9:3fns.>4AvB-y|_Q<_fF[O)!^GGl+fvx:\4^C{K럙+ZK$)| jVz K9ҡGYkoU  t#A X83>桩C/"<МuwBoKb]I@!]pUy=Y 1x,e0^ hc~ѣ1ӑwNˑnƯ@۫~2Gr 4o>r¶Oۅ ^Ggnlqugmj9.M >1h.Ɠbֆ^z+Dq2V+(q6 r}(W9 ƥ(q˒1&HA\%KJqfDJ3r>a3!ԢQqxIw@ڕ2(r1pKeUv.h|EbBPb<⨢*p]ͽ5UjnQ`n*MW|D+ S@yCuP"C׬ia!5%v2aL5ѺpMt'J ?a]LF3]1-g%?$i#DǖR@ cGz8 YRQ Z!õýg]%)@IOedr/% '5Ø5{$bi}7ª[vq)$=+/VJ@Cq?*swXT:њePu%Jc:>mW8nE<Tv%;{ϖ"Ȓ,llll+)(&to( OE9 mqW.;5մ';+"p1Vw\ CH",2;<}ސF|4H{4x`<$Jl,?(Nekєn/w@$w$EJR?Iz~#8`A݅/^>kZ\c]HG0WuB>ϨW_BgBXERtQ)qkHF⛶,W7Ar:R8Nu]7i";y4ބA!=10- -X]*k @`1톣a[Al*6n7nJXLQr*JgBc D?o|sI@;_Qz!y0 آo8)*u-u(뒋-c{{WOU^(F[DRqKV`|ѿy -\TkIn[cKd8o_& D.4ЄauNkoY9G˓kehZ r&L_5x6m՛ Ix/fPڥax{<}.1pr\geLCq\Ė#F~ v Ccv)ۍ?E =_adY-'@S L Zp7 ۸8۪@ަ^L(Vo% D!cnbEs?B Jfg 1]xgxWn8m HSsHY.@'>ϮF! ]Ӿlva!/[PC, ּq (!8q*aW`Fx>/N`lzjʨm"T<3vC4؝xjɥϲ D)و@'mÅwe=jS]WDAooo~XJ]y9y~< lF$b*S0Z]S`kɅP\/rJ_&])*J1L|~aXOՋ~}a*"݄!=-%l)#зv^9H0x{ܯ ůw4ǃ1+ Dn`M!kv]b I(HyŐFeviHeSvL̗H>\Q]$]aJjcܹ=@sHVP}aUaj\ k  hn;ܼk ~*ǸY e+C 7ŃV"ukdszT*T^yg\{UEXST+ +uz3&YH, ."#.u.4#\e,ʢ`WD|^?VxxT ̠] 67 ':}|]w*Yyv*egc`c] =&$R$lBq0XiU=R@ puz u_tWVYr,6wcNʣjفD6 ˋ~wˊ+!Jޚ2@-|sx%/Wtu&4VW>sM\{ $ ;`+1+@Alt֧P\[HqHy̬%\;oц<Rd*L (aZ!_ʦ / <=P^k,}Egx7~ Am-EE :L`׶ e#A NێE}9y9UUcpgRns*>&_\+GӜ[uq1i =M~myCw9aӧNvOhrl@29VH*%ec'wA~G "!Zk;@2}˜$"g}iJ(@T)5FaD|#"ϭH*vO9G %=6ގTd/ebs/>Cz=1`/Ha]kݿzwGƾIeO<WY/Ott53O,'ޕWrI}@RP(=$缢Ƚ:\zPʡ#9WU!}W&U!nl*~0Hŀ~9RYmP=/(sٝB 4)}nY抉 #짉JʎqU>q{(ZV)e-c8ȩ11&Y,p!@h5faegc4ǯzN}*s_bv08&O#%?aj eyi=-oZ!2__Յ69Xbi,fvanVbJd&n+|=͌ww4oCM J[@RD_+uʅ3TQ8jG/*hx-4هUnT2 ݟ?z`Jk6ʲeBl렛Uel:dl:XN LM^3w?fbwRi. +*`Gdh}L@C[.).7=6z]Wdm F5(1+'J!A49BEiCtcK Z_CҍCBb 1+AKx 9`G Jv]^6Z}DD/WXHhckJtFom=c9g6-X(V0լA.a(b2,Ddggl _Jv ["HS2!KTinԴńB›,eetDkA R|.N8<%8t{,)ns_\.!9TzR3L8Tb ҿ2tRgCM:xMk VHؾh NJ 454bCHAtg7k;Ux=3t(y?el` iXB y\28u)\wk.*ATdʱijN;ʍX' 7z]?RG%Z`Z-Z2d&7Cqj9)m [8i@6%*FM+2ǢnD,**C2]2wwT!_]=Ü?3wUͲXnw^]dhO?}o$F׏CBM>c"XƕwԆ]Ġh5|=~p|oU6 PBDa™(1gHٚo:0aVIC84SVmvb]L$ 4awB{(Sz㨏aF [v7FN<YTǞc8f0):(( l MeFgYʝ(gYf\x?8t~7 Cp"(_7M`;>w`$'XTJ3t03<{ݚ[*L[_b{^QUT+nSsXF.:7!,H]4 (ssA,*?[ IAQgkVU+lpa BA]U*aD+X, sēD"c0>De"OىPh4Bti :cB@lKޖHG!@A݀;te Q| ?8qh,]hqe42ő]vph`~k8xrVx]^ٍ@ڮY\al{D/#]BWxeӱ~c5+`'i6B2$ш͌e͛<̔G7SiIH%(O\t6//nM%WTd'LP^+Ns(Hy\pے"FC&(/[#\t:9$T]}R? LB0Hݚ# 2 wȶs`.-C (;6`&” .1=0m͝vq5O k>_Ǻ/-gXhHz ̘r\MJ=kKmGrkBI7Ns/jYk$jV"Ai.Zb//0N0bI Y&LV2~FC:YY4~Er$9~: [ *Dk;3Pj`=$ w2lWE]Y ћ~»ɵ \Af A8Ƕ\l3k|2ڏx!pU&Rޞ- ~^Uk)zId7)" yhgB'-drՔtQuׯd2 W#ĸt:R$%b&Xf/d! X<QVpR\2 yAm;^{ivljasIg⍼{?TY?wFxva @2W.^=td-Cʉ簅S3ĀJ{;Sz15oΒ '3]nMG헫]8ro @aFÏ@"fiuiwäd5FȊ' `ܠug$ W  ^] iMBDEߺ~aEolŏ}Cn@oD8A۔(nm \Q]ʝh:nF3evz>fcC9lۍP5k<\ %@ݸn-KnZT-b 4ʒWSui!-a"\Wq˝UraFN?cU^iGYz>4jq彉R[>[DrIC]9"`I ̐'z< <5'MwmJm^0B asAObmQњ@)~YcC$Wp>Ztf6&Syqە=JfB0\5 x{;Uߔ H›خQֿn l8+tjR 1e.a?o҈f_VXq,JU/)Ȓгu@Ɖ&Ido4G GfdQMJdֵgj-=#iiA(pi'=\~yd|3J[#Т?x>.0y쐽AfjEF+ߙU6h٭WpHHgp{0k.;6x*fW;Wx}: UW " C_yks*ti 1FR mjJk<0J}W헚虋삘1"ڧDj;m))"qY٪W@b(R.1,rC c, ؙ&%_N%ξ$$[VsHG$|{*a57K$(7"n[lqq\yMUio]aP*! @*z1'>D6)|HiSHDEɂzWK;zo kapUh+Ǽ/r[KF,D@Y,AD.>hoP* LMzB1/CnUav?5+~'__er󐫢S6O_"E0qKLR;Iu(&Xmt]2 1 [UByœ5ϑ8ޔ_OZA㦮2:_Miv.B$,DZ@RZT)RT|kX F#e+NNKBOgٓ~6}6c}̣:*,^s"疺4׎qeG 9> w+zc{uAN/RE>6w>\4 =NkA]93CYe fi?հ&*T!7h19IgD$/;ncT"l\ӻM>*lu (Cc*_pFQ%_isjY>ꞙ7Q6GvDY.H2gY }Ɛ  $`"Bł`ХQSsPs#(iܙHOҧ/eKG6wBD7k=u6@ѧyzw0z3E޳'L LH˜(!Dfenƻop|Ằs6J!58a97YQ>$r/@qSDIJ9s^GÓ f¦g@(bsl c{L{G0e@8殳&5GSt#CoГ";PNVBhymuj'o IԖ-+&{}cTUޭTVw EhrEBeXَ dBEzU0'fmV%/݆gِc!k8 L-aCGC)b\t6 Zb|jNթ,Z `IVݚ-i,.E@_Ff/h^G72Yܴfa'0x<NA+M4ٳgj)6F, 6owpohSD IѼIX9 Vhlػt8q8pbWClZŴ>z1SJr~Cc)iHZ+u hmN1n`Cִ w% ګ h?U~T#B_`f^Or4a3YOع<`Dޯc&nXs _Bvɧ>g̘ʙ{)C~0v}#A>7:It^叐㲐Nܟho3'5AHO$<+R<:+" EkV,\"յh\.R.]y _GMM)vOoZ`HFLz+MnWo_dt֙ uhU:%43mE=y,VC4Q!DBS|+`Do=6fX'GUU#Xዐ<%H-,fmďI]f"5|G8;y(>NT'g*ߴ?lrj[07>k7Bn!`:p"%0vG'&]RW=nj螯j ()gx!O X=óqS>yO<]tWaB]PT˿i8KӋ(EI 49 |kKuӝfI+ I4Y@)-d1hZZ,˪%Ej>,Z-\/5(2F!:&TzbѺ<%MOkI@O%ܷ` FkEQzpGTq[FD1I{ ☠sP6;<DzMREy'nbn셝-oAITA_hy>p848:lB6gS[ Ka/Cc1I9{?K s#scA՟T<֢B([YU/L5H?:@̂x EH7å+m (6rS(q*_ ey`embK:A!7Rl ub&0;_@~ ?Osu#b6yhlEdXp+8 Ex03QkE5;&0e},08̨z}*$y_L Sɘ-hP6ui7 bov¬;"K!&|fJj}-PGU{A@Yy 9++\%C鱙Wplh@D恀apmyCԯBW~ChDVJ80 vj0B3~[?eԥ`44i=aIͻ3OCؓk.SZ1 E hD:Wu֦鼯k^֊ A_Z7}FMß.!t7Vk7{r׷yG =4VL^4`.Ck;!7i/"2JeN'N(i% 墱BD[[e[3+]!HvCJ cȣ++,Kb̳NZ }ӝ9F816j:'#҇ߠUyh8tVмeToJ 6]g9v]j<ȴsF,gBo1+)G]ZbMI"ob 0c3x^rO㍽)tqk=ViŰ慜1&#r͈[!8;\–b mQ[6@u>AXqjG !"eS džSX,z>%u/^[ xCr.ab!؝.bUI`C4cqrgCŨ[ L+ͤmp9b24`@V}#_2~Yl2ڭ!GLn+lz޶u.&!#"HGOgS>HV1癎ŀo< $sR[;Bj%ճ,  >)xkKVLl(+)"ۿA8}C\O+cUbzML i?бT *N`#`\\\eyBqLEp}N( w1yKn4}Vcb=߿lY[`,aɍ|g*:&]߻ܾ¢C35`isD࠮|+%|(PP Ey^0Cɓ&UBxE$7[VC%RMj&mXN9JkK?)# "w~ o(ج QS{\,gq̂q/'0IuPa^Y7$;MSTQ*ga3_K6}6W]hAk9=ӕM6 pt$kjpf{? WEo1s%M\XlL04owmx\Ws3-SӖ^@x@•@/`ek@\Bg&K/GSY1Ɍ cN[Lzúu,`β~a֏m B6{-">+$',lcɌ, EX+ Ela"e!(2sCxKwt4jr}Fn!'!smbge VK\W ˺$Zo:)e%q,9lEDŸoN,2^?]I a=:p}[a 9c( Ϊ Ȭw\ bܰ?oJ84{HSRr<=9WɁ Th!GZB+Z?-rC*ӵj:=B ,ɛ)ʆFBК;E&HBT]T@^7pTy6ź-]nhi쥋*ڂe?R5{WTSZ%Sj}.(ntLʹxgM[/6SjXդ40 ~ql+l:ħ/Dϱwh_YQǁ?2#?ISq?nQKL4z} 3QޔDv`ziSo榭BaU-^a93n7 BJq@pk ;?+2&PcW,ѦPAF}97r块Sf6T/_Ԇ0sb Q _mUC2衡֐"bVdj2 jc cF11&YF8 &p%JÎw .(]/+わ4w k4E0c/f37$%(4a^qK5z |NU:jL;DmOd buKqnP vae&Sv{,FQ탥rQb&ӓ(ezAabMq12%#W,k զW&AtPLw ?*]WAgQ1aJP$Ģ<_w hywҽM`̥R/Cv2l]f\ %C: vzuȬ~ᘺ'~?ʾ3s.liuyC$8 *XsBaPCH eSm66lp8qdHȼ%,WO/>+pv;?l>@vxj p m+q䢔Ug>hJa,cE2傍@%FWZwd9!X|W)`UnU%P;V3qm-M|@ OQYjct /!G0|yqOFkbL.ٹpN畦Z쒅R*)#EcI >*r>rIu ޺MymNfNi5mlx61i;WR\Gf! 5bh~?FzM|ݰŠɨhj5r 8npÇ$ VZcT7؜{ҏ|Lc3=dH3=oEQGy%&䡴lX 0TotGR6i>X6<2.5Y/m[wKO+"c?!?v1Q9jsfΚ?7'OPkJaim7Z{yox~٬{1vu+6i|8 ^`V>PMT*) \{W{Ydds/'R+2WqxNf8E0lk#h=R`W'G?Q%$ 8*~CgeG.h'JH BJvVV+Vax˱1$ A4RKj#mו+p;-\_^6oϱa'nF` vGAB/$ׁ/!OgD7OϚy0EĞmwe՗, en_Bq# ZEDbWzR bDz0~!̖ȔW~hy!IEE:c":%B`) 5fQ[5| Zw01`4+jHV ~˳cHЀECRp^d fdG (P*Acf49A3ރc0k?ϽSFއR)=աoׁIȠ[+SuCH'mӿ:6<*E ݟpk{|\*> 48ޢ( 8+g09\ j2/fr/,bN?>{j r)^>zՄmǭlQm;6GaJ|E_MM7y賎i˗ ݹrǠ?2y`ĉydG*/O˶GgZ#d}K o\N%N9]?w[C$ ɏB|0ÿ _G|hh{XӐ^0d|4Ԝo7HRĠ=!7P^DH׹yC,=a-ש1_2~o~>ߌ!f׈TݯчI ~?8t*q/7 񻝨Ow_5/ vAJn@[KJĪ}}rC~j?{>3Kkdyx IZ- BDVkCœ!3󛃮6&f G0y3dM@KzѳRHB9"n6jTdoK͢%"0bďs1(bZM׭"-/` 4Q}#@n; L5CpHÄ́ Oւe,~m!jD H϶nLX=Pp͟Eʓzf$`?_Տsʯ7M;qW1v%@G|@@hY=%`RJ`c7/J?!Ɇ/Wՠq "%.8ks ̍8g60c c B3ojd틲B'bo7ܷ}'ۢ)|Ҕ-\ KpmK13VZ03 %{{[{nMx4 +AHOK|ػ%h)*+ 0Q9qU@ Om]s[@C<]FkS* c{3iy8`ݠB-EW`` SD+O՛+Ah"g3u:8<^*KH]PXKShbN tkkm}Yڥ0vEv{ﻎ5"0T?2|U. mg pp9L =P/Bfr87 yЦZrmEiicΞ׃NI:EᠡJC1Z,A1EFyBI'(€#}zPU&Z/ *7҉9A[C/D(@P7fqKr+uNu+_)B,)Qd[nJ[ͱպ;G8 }Qd_@iSb :İ9bU#B^GͷG}FyDԚ"saٕ6%_'[XدԮ{bXEؘq))#{e]73FP6vPKusBV*>eq殯5F? )#CIV_Av02^]G1MJ+ѓD"VeHj4\ &*1JIb QO FV\ON)#UhTiCP ίo4~ɼ~,p=vD, /Q1||8=&&vB3# Eڙl~g|>7`M\ftjsT:(gPmaa}dCiQim# ҕ"ҔHN}b|N mO/X34c~WHJ짟^5HntcͰvSDE٬P "Qµ= q^E(qk[ہ\FpZ>B"c0x YXytiZ_C4OG6)S%&DŽ*_%U^j&BSv(=jn(5p`q h7k_};Zwզg^h^U?]2őQ7z[buIcqzMKScS"֨ +H^Ʋ [p3Z;8ܮQËӕwPbfqL{l7T/(֨$ǑVè@TAMqErl@L Ue oX >amec J1 ſr=ws`&ŎVōPzUۓy#u8c#&+Lx#S k;C^BQɽZl1 $Z4[ўpׁx6LtzEΟ2עrܳ0.HPXDӃ,[@ʜ4`O$Jsel<"|w1b ]\.ޓB_WBk05x61##\ɛrȝ.rk34+35SE^d^;W8~;&^8;y۱h-(%;Y+z+Op@֫#r\}#J~B׾gE6̥`n*RnJiv=c4 E'pqxAa` $a+/0W5  %gr텂cq*AHHzl%=F3o)Ʒ;zKoT]#BtA{.tԲ]=1B:tO~~9a7Cmu%U1LrE~{?WՎ. )! $QJk@`U+_/;t[:P!ɗFbR+D Y ª1%s:3:ul\eZbrͪ&&iIZ  bbbg53L7q[e3g*ŁI|ɍRY EyPFw=|㵪##ƪ6yOgs\43pV{{Ʋ‰YF6\VLNV$I>M8qZ9.Ms+4צ{Y#FiqY\ P\FPeᶚ3@tlz1m}^D\y0,y QsJ;#( vKEW^d11S1=R9&Q0&5tu,4ZEihƴ: B&PjYGd6$Xrw򶍎!_yj]Tq"9dFdWtz[œq`=Rߙ Z)T˗+hV| AƢCӜ.Nakyp%< ArVKfY: Ţ ~âz lF=z6*/*m0NȠ 9HѨ1 Q}1:_gUR 4OprX|O!%q>"X LX- H[.`{j5d7MQ/W `EXE8DEb  5cQY;I!)O=+:r*MY3^ &b~̌xJBOr7`1뤛-ht7mz\~&Y+L&6{Uۅbn-({:lfpDIcfU,-XST4Fy}K)`Q7ʲKt-QY gRhρIŤn4E뭷 +ZzlGsר&1tYߢL$:=K_Մ,4VlTz_VvZRtFL}w2Ӷ}p+;9htB魻+ &?#Aڑ\(6_M}km)4D@3'd:9[&\RHRIlCxHLprIH"N!):-jb- A"KlDs+5sHW DYSJz`?5kXod&u6`W/'KsKSWbAݨ3O /z1.;HeBEA@)!2o^'.%+#ܫ<ǒ{ m2SiGp֛i_7tutB^JT"F^:};t`VsG^1ӧ8LrEGP _oZ `z-䵝CdT uyGmeaE/j̉}=)7|ա@>减> 1(8'@Psߘ`*) .K䅎Mzt 3b)Sb/*ѐbff'VJl Xʳ23C!c4j7ZsX_ӥVW5IF;EbӸ9y %w^cp sϥ#5Y.mcaڱ|MM>U钅LĿO8IL^MQ<1-4T%G"\(@h^`|=S[@K6^~ &I?x?ݾJ X<_!:<hfK eIۘWlP+fs }Tx.KTSExk~8mmVds9c3I6=JS?ϟOݑ>9\}؉rQ2.$Dc|X= E &%@#%ljZv׶}( ^\+o< /ǛUW"pb/fcJDB}P_܇G=7Bn3+v,m_H WMNWr'O3g3mxTx$1뽩߯<O̝tHbHQG4Fk8F-0- QF[ F Z.i׹lysQҞ4U}Kw*Z#;9ˊ6"@V`"mU@\v _j\z \ Ps`F Ɍي,Z=^XFTf˦t-aex,: _ biUYSVljѢ=BX&. \x,z'@Nк FYi ~YD#Node3StyFejDd1AmD]Tr"$*Sd֎zC)~\$2L3܃>PxV\ 7k@Qm?hҷHGTQ%6lұe~a~l}iF p31MV V\Wy~oT|˱TN 77#bIP*SRlou-`Żę5(mipԂ>LH0iR pA!w _0l6lPf3F{aj:PD+7_-BН\qO=%lx˥ # .XQ|puAԚ0^:cX+.:M{& f [op[r&[ͭ0+ BzDq ~4!GtBaI17$ ?kŲltoqXnVt;(㱫 ,MVG|#˩nqDcDM@=o@'G[;%mwҰrN\Y 2JNΐaeB»GO'fRH"_"YGbQzIwc4G8s^y+14e՗὎}N')T2^H釺*Ux"\H#7uϾ@x獄|wvwe3_ '=!*bϞĔ`%ePJSl=RǛl] /|b=r$@G|Q<$wK|G 5RAqA%|uPSRͬR߾7sܴІmll6p Yt L@܆1/0[OX.zj/酶cvש]d0d.X3~_{]tӧN:tv!qXQ4Ӭ0bGuD/W[t$}$8KW@P-c'/:L.nw(-APMw.'$",뚒 R!iG둋Sy+rLEޅ4fJ]JRZn?Fa1)QȑsH*oFx aa71bM&M6Z)O .bs|p+ȩ<(e u?+&1|)VZNheԢ#Q.[!E\)V:!_i pvXʲ7E^c>ߏOaP1ˊuZJ6r5,?7wnR?3t*3 ]PC'5aO=&mNVE/؛WF֜hԘwZ:8aT 2C2 '0 ;@n~D͈,2>A ֆp|iLUT\a.Н"w>XkQ@`Iasy.'Rse6|2;/CIloXQ diH>.:(OdjӤϞ7T-:MT׍i;~-ظ_Nz Q.t_.iBQ8V5(U='Lۦ=ͣ1XGS͊d:^/0YJo $j₡\b-Znd3dPdDD/^j`h4DXJVDd A$R% FD״GzJ!g;?Bjtfx}OHjPfNhklވp{. Pķ*ޯj>Rﯽ,D\r0N"G뎻 (|m3*JjY/v( lEw@ԜS6g[#T>ḎuNzukoBPZmWR-v~哙EDjqߏIDHs<ږ }3|4{") 4.k.(5p4V렁\(G# &% ;eKnZsW<ܡo*O|An@ʈҲIY2 a"UqjrEqTsOrs!顙n#b'/ Ӑ揊[V5z' l8bT%}r=U<\[CړcxR:(bx & )St1yJ hz4 .ߓ fG]y)γ]QQ|mG` 0yK"ɦ)|lq\m]̛-IŔ95bڔ)s6HKK5! DlC e7;IJR|[ v'mMdG"$,|ѤZlհ͊G4&~^}w 2p`7Ga~9UJyWO:ձt0?1K@*a.gέ7S?򲠇)glkku 2Wo 5U "혦d'p@aիn8%G,:-6k!J (KذD~k? 6M6V $@C#sw$6xwFB' ZjHI{~y"維ѐ~)S=~yOOl\)[ >N%lAE|B q _ʶ,-DzFS?Y1㵤 ~{bWxUv/lu5-tI }d5͟:36/\R= J }`z#?UowFemN'?*rvL2,//Ma"$?8snxJU@^#4pKeq&(F︙ǾRV`XjD坡hP> _l^E p^f67gȔN yYvfkd!еGl}fϲxud-χ8|N0=U""bm*2;ݼw !D7r{OyQiS#WP2N 9spkis3zclE1|UzZGbLx5M* aa((n@(}|4 QKPP )671b6ʜzwO;ud^wm] qrnm{go\[x{={Yvlvۙ7zmzݺ-w< _'Sv`]w ;={y_z'7]܏;._{|}/ـ uezݏ;w==π=˵+ˎ{7]˯m{l=o38u`4 @πw^I.n>w竰h)F̩E  T5JQEMT͚*U)A@B*SfU[YmZ5Bji4mf׹/BW瞺NwQ;;wyoWާ{w{ݽ{yQ{sݼyz{wy;y_oYN+Fl}wN1ݓ:U=+MZ=9ΤeYzyk: ٪Wl.CWmPpgatݪ^Cn%Nt^ټ]]l3|qvsyS{{lu]F^{Vw'O{j$} yuo^/{on{z<7yoxvnyͽ弻n͹{ܼo=ۺo={w9yy\v^<{yn=w`z @6`Z{ܺN_ cHh絕Ke)?n?PytrF!Ww+񤛢TL+=J_ByE+$3gN7£7S-$=ʞ'Nj!v>NtWZGזӵY\xޏA^O^U BѠ'$R; @ 7kg2fKހ]iWJEoȞq lΈNR?oTK **zaxӎD~z"a{ ekpi0o:-fy_O߭qEx> Hu?x,MwnV]\SUU=AXLǨ%.3frx͘nH.t~0.*F=x8(uf֠t:-ddQPn(Z]FV){mݾǚRd"Z}cuԍu?D0wNGjFV0QnfQDŪmwUFB^L"DUnPqRIsl8ʇʆ?TD7|ҩYyZk~Kk!?MW>nSt:sҕ—V>gxh;ģٱ>n6,FgJ|xbe? 3ɀ-!\yD~ŏ"_iɫg^;~2T6{Ou Z]l "?UuԣV=Kc32gU ]PNG}N&۴ ُ$wNrI] ˗Y(,bgj%,2zֽkwDq6G~pHw(p`}m~1C!M_$vz"w8Zo7 ੆]J :(9AEcB?{>0hHHGx%lŽ/n`μ׳a~8Z?EG=buݸ?=/]Jj00+/_l Jwg>9YZd& *S1-g2g;UmD֟8\9o)?oAnjOv"Py?Qc9W [IKf; ʗ>ᨏw+iL\Hs?0uM|_}F)>:&\oL>pqbcCLp킟ā]~r%;O eùL棦{Z >}~%Ol[:38?3I/vgȬΛ􇺞<\OD)}͞"J_QX9,!n5Y>eA!qۼ ^oF J˝?$d/T~PL?irR+ތ Uf&pǻ>s頍;o \ Rs !w_Va4}ҁE-Yk\9_VvU1eM~l2kq- QeHzYi{^zwۈP ; ^LiϿ޹p?X/ lX,l=/()Y#Ҧ} 2$5 2|= a uT3eFtW#-*|hKF x݇涬?Wb8_H,q S`R#waѫFx胱{&Cݼ'U h^7$ Q%+?p:(M bruT|z^i:>5%wr{m=M0'v~#7۶cj#Տ ^|q]|۹NO*f2P>㻸{ 1Dߔ9Ru͊\/onOH;beˇ]иO+ kQ7)Vq2gX|"ʥP,:>F4830H>ǖ{W)lOQC"t}6mᕸ(l:2R.BIЉ/X*(}۰b!~* W1a³uNaΧv* w缧js8ϓeoo*P}{~jOz=Kxw2;<^^DG$6a 6<$/pP'Ґ[aeO[|3q)qt(DQ@}@cL9|u尢GS6JA_v=5v>?֏ pA Q06 "_܊k>VGOv|l.Άvc):|60Y 0U+Z<<*#)tkij#QcNrHfg"jvTQ vu)a7"1wS4AA NbbeV=’U<_}OaN!zU>w-vUW\]ꌝl+mciH݋N7\nOc!)an麤9@pqYvvYރ/})vMZhw o'N۴:g׆R"РIaoO6J&FC9`"Ȝ49P"O'4C2{xS*Sy;AW MC?amMu*\otrQeR[y)j9Q<=9{baCcks3¶mOkePb&߮4%Kmaj1$mt5jNjr F9Dl4Oh*)w٘Zݼ>ðYK٢ ~ɄMo .7v$-s$sH$G;ƌӌ 4[7ׂM/Co92@ê㉅ێ"w$9C'h$Im/o?![ >dVO\TrF&OWqC0Gyh)oaWb !'6Gk4c~LصRu=jcfm=x%4}Chrx!5!8Y 0/O} gݙ6wa;ɉ0 | c'\齵T-WTF; [`CJ~m&HySgq!b?ÿots*\c0la`oXO ȉ0roGA ?'A*i¯s>NsalmV_ $~ߖ`CIh2e8cK:ã/z,*k~31 yhĈASp tʹ?6Am/Zͳ@eG+k 9G{9 mSX=}>` ";;8XXf qz4_JӼ饉O'Wkk^S=ul S?F32w-l۰2"HhsF|PA㧏*w7ZO!aZձviq=t<&OzOS/ZڇƔ{^>tM_|eA[d>jg|y.ý H( `("h nb_ܫe9&X ܖ W/zg,pޠn5( Y0\@nWv+R3VdTVUT_TʙW1nR =9#iHeSAL̬οytI0TO-`8t5mq112s^6J>QIY5](vU ?K;oGk>>F:*C)$Xo oۢz}V,嚸JjuM>Vp(^ݡ)Ky z( =,FL&(SYZ:`4RVgz Xidx2~=fK9t*roa/tCVSf~mƝJ9k@IEx*b)N5$J`5!h[>ZW^ ʓ SW/h5ٔGۥBt?1v^r1ٍ عtYEf62cA&Wa~[c?ϿrgnZio%>@3xhʅP`,l5Ǩ)hR'9ˁ0ڬS  ~$,8Wq. cq}̜K۳7@1JP7LFU$&G3!3&;WĬYaӼސODӎ{3߃8o9hUnݾ<^cȹZ8^g<+$ȎiG݆- ; ^>7E7О ծ v]Sa6!@&MVa)h)yϣbK!.Է15F3u?'|IB8Yuj:~D_}J}ۅ/u3N}j:Z.IŒ qv[&8paIGO yO?g4@>TiI,rBoT5V޳fV7G8I!Xq:R\tL":\=ʗ®uٳN"0DvQ=z;" eh$=,sPH}x.2XӬw Qm =MԝUB̄!Ze%-qkUf|]mJ[ Km+G4툶޸re|^"xwl̡8S/Ί;JHODjcù_^L|pz|L2Qbliƥf v| AÜjИݽ+/kym&|6藓dU0~A7}g% *G1i3,(:]X}z9`\W6&՘̌xew߿c&usP?9p;J:Tse;a1@IZ@f e _{Ҡw,'Rw9`$IX5ޮWdߏ_:OSZf7Wioj(d|.Pc P`x;qbe$$uSI9z?NSlBD'f{k}*OPuo0axr"zgof K0Z>'R z*+m\Ĉf5vFrb"}{@ye3iHpʐiѶ٘(;%yi ރ cC%FAH2X[nOLed){I`p3u)i1qu?y5_/R[MܕͽrVU& M}+e$PTʀ-3Sx }3Y>xwbiv}h)-aQ1> 0̽&am_Y8qo@ii,4̉ [ooo( xeI ټZeF(zXTYv2Ga EGx>̉UT\¥fYGL\U Xŭm ;f=jMajDm4]U4q)ESD{b|Ja \]y y[NZBK H-R$αF) . f]vާ'2|q!RNGH}/Ӈ d.tBee)UԜV=M>{6ʡv)|='}'GHM:V EWluT'O(/B))˜3fP\M}>+eww-cAOO\To? Hac_<#/?}6#pҙ2MwKOfewN/YdWr~|v %+l\4%CоU\k_ KMLDa`TB ܙ8}l QzEb/;o?`0~0ꗵN%JN6($MnTt50JOw-hY3&e+a0{酺e*Q,&rOF4:;srRb\).9h7 ɰvǡ}5biގ,(^%Щ sgzȅ4th3!6Zn I30;mƉ۹~ĐѯѾ]1Ba䄉~"S/< ؊ѓمSPZ+O:yRPa%egs|7ߎo}mHAl$" @xB<$ d B0 @4.͏S\-Lΰ4NQA伳!tEÜnvүOr8̛:ő6A;a}ʀ^{" `NsD3^ׄo.zt7kK`_F!x1eQr>W{A_y{M~6ؐ=~; l_d^k~tvx`=se|5O?/λ_aĄ$_^XTH00꥘zVZ">{H;PJK0mB/dsNsO*βzBY+w 0p<IqE"$Z~1L7VjnkDߏqa$(g}: g _eZ/r$t:)1W ) z-?Zy[;տT[ElP =blgٙL+'dz|XO ]#/&vtbI?A~pE4tqsw85M9fdƾ>ʗr=P̐P]&L켙  ׁi.];x}f>2We'8=AH͘%g-w̔XJi__A0cPr.BxTofgZvEA12p*鞽 oE#TSesd}F+(YaoMSx Ri͊;Q[[u)딌m_qr$y>e 2u!s2ϥ3#,0x!] 8z?d[ĠR'{3dCfҶ=7FqxMN3Yu$Ç& t$mR/~[W)pQq!&Et"BlwH(6pќ\WDx>_kz]h~G'TZ^e: v&:wP? #.dj#i^p/hi]t_[Qٗa;Ҝ>Td(-DlR|wq@n[t 3g֫:K-#bRipeG> .u#QyN6_˶d8S ƍ/\<9fo5(h|?׵$ڹqc<=a߿v"fqz1'&]tbY6zH22ѻM*̮*RΓI4kbvu5X)/d6TA_k8s:V1Z{<f qt3Dw( vF\(_G/L+nۺ`4/{rOxyԽ.v-btnx\ar,wN,[R:j[rXvNpUQU|ߗ\o/萳c]bb~G4Mn 2z<@ rˆjM" ;nÖ`^Oc6o.[Ѱ] Das~ K[ؼ5߅6TO Q < PB\zcXʰ'U?#wK$>v`j37K/&C?o!qHeGűh]}L6a2G'J3?ԫþy0X.> ( ,8P2 \qKw;ϣ̠uNf5V4arkDk"z%_uDY/CwN:{I{l*X kďZ[nxmvf<%-ml:*Y|WYyַck7a]mwna{kUʼW z2Ab1.\S7ܬ/bIjV=n7CxœW{aU  0& jdf^V }T5lO(+ +Wg Ы^8k%|o"<<{MuŜp7WJ?F$t&8ǰ_G!gYY I>Mu8w F9yH﯊x(4petuRtOa>։4E $wXB"'jRKȏ9=~!jW1hg~Mg;T? ?xyrrmT-Ub,W'}}P.wa*Ƹ.O48qzNڿ{4<:]97/Ox]x7Nxk/Tc "{CʬaD^Mɬa6`S9/oX΃s[4v`~ѿ0{>ZG e}ac PUBz_5&|'w-Zoy6?aS wX#7'_?ʣ#70k$QFpMqER6u/@ۋ3 )0MRM%@/_qƔA$0=e/#zX0I3$yuϋ|Ć }'x>N5RR@3= ÕE2_K-0HQo{ /yke@?SwB N%ш8M!0[^9{A2uttllix ~Ky ?eNKu_G>=`㣸ֿ̱퍣u]XY\`ٺʿ>ɧU4֧!NIE/wW}ΫW~"mxOzK'#դfĚD;7Sv?6i8?WH&H&N{Ql2s|'0Ujlü&qvE-TMc W1Iq\!FWhxvDjC1Ljq?UpN=kzwMS*Ё!9Swb{YWγU9 {ۄڡR|=<.EoFW|"M<4Ft`iyS!k5Sٕ)ן׾A6Iye.Nčk ;WոGe>0Ĩ-֦k#:=p^ղx$J^ߗeee)QdUw9'cG?{$(%!?B$!dQBKS"[;DɭI{f'RjdH%%r`&qI"jȷri6jGJ܌ȉܕ2YYIWy%Iܓ%w#D49$nUfD/RcMnM1II$&"%阦jKa䖙u%0$I #~ "8 ? 8 T`! d@A(?됁**c|hpO1Š*I!HD00~TR! @"ᏺ1jG%0CPuG (@(" $Q"Q 6 {D 0%Db?qt1 %a"$PH?OB _D8Q~r E#? % .70H=L8֦Ce},  D0.C#ĕ~_LA*# aPBFN$` #0x.$ DB6(BDZ""""B"sL2B10EB,2:"!b!`-`!"h}Bd-:!JAA(D= ,DC"@!b"%>2`$aABL@$F' @ B {Ab% b `` B>&"ba"-1I"#LD )H H(B)bE$D1K,A hb,@JC)F°aDT2++ $Q8JTBF"@!DDL0dDD Մb0`@y XQU@aDX`t1""T>HI DR@#DGC Ei\'0ܒpfd@SD[I1T"! ~jab$E|!C CH$D1#$H2arCΞaI!paEUbX>rQf"&H$X`XaE`$V"2iݑU,W&y"d $33ΌGF00Ah>f`%cp~$3! AGK,D*!*à, ) B *@) A) ) )‘  D) D B*DA B (   ( @)  @(B(@A( @,BD@( DD), ,@,BD D B ),@DB @ B ) B , B,@  , @,  D,@((B) D  DB )(    ^sOX,ד!w䟂[G;~7x^2dI! BM~\mh6p<5+%w,@$aRn%8$ %E$!U@ ]g{ڑ}btȊw!T˲-a4slV۔4 Pd$"KY>WA|O5S [ Ry]aIp9'`iO]d#]BTމUvHA!7&Zzaq&FL\A͜%L$70\.lؤ!BrLٖVk2ŵR T/3X|w^YȌ[oXBe`aQD ѷV5K'\SKOO"3q[vXG郈4BRQ$Vto "Կr7ÑB9 H&kIQ-* i$?@WA_+`U ʩ1XebT?}\ML 4mFGJ$"Ur@hs_NI$LNL&t+ԯ_8O''I~5YR2 ?UM_G,W &tYc۝}F]k "eKOp>}@&ؠ7&*;4Eej<(#Tn $ g:iAǶ}z(?iOxwc'3m uT V,'zUKkCΨ> mI˔d[Tof|`z[-Y} ܯ'CˡeL.CkTO,#ap.'lkkj>s_(?n#ޅ嗳|{{{]=^R/r6zoroGk{{^~ {\*<ׯt-qA{b=ܽ3*$)t){{7wjHH;Zw.n-a,l:V/$ z{=7纗}xX;XT]\Lۿ۾0nݽ?}TLU__ıȮ $ѯ삌&PŸ !n`yFH-e$$#tS>DF7bt.*C}AWGT~!Y5~E¶LW=׽:<"Ay-9:IӸHyXS}Fӄ>]*f5]+<>|w1vV?1GL$Oܓ\tGzUr}> ~z5nũDjf!$KJ?Q#OIE0nCeC~{r,rց!Vp_r.AI/m}m&7kBZy-gjvJ9#}n0$! HHc/ ut`ʟ3;aQ<nܞj|-%M^\&yp|7%fAmGPV]|RxQMni*B]`<+_TI&!b\H!YeH!זAwB?&蒉GDӼ];k"AG!c2ޖ=0|]n21Ġ=9+3p%ޘL$Ґ+l-Z%[X^w`;ߝ[u?_/$o?T~S#Q(^"y2Q ZQ32nIG Ubzݘ~f̚xvl-x+ "^J[b߳CA6k+GTXBB0'b}ס>@+a!F#Bx{Oz0%~XP,DO-OLby,Ծ8#"GSA'Cyω1z\:(Ziϳ{;"XN5I [18Y;>naDXG?wޭaqAe8 1$dH){ |m(yO6__ͽׇUWG4uFPJܢ~2`!XLٕ\36愠)dI.oz 8#bA)d2RJL؞) ;GhgG.9.8ίĹv& 1Ss/p8$KҺufg4#JEG%<*S"@gLXiFa]qh'GJA;&La11~_nVӦګ)S~;+մuo!{|TF X\(5 xc*R,ZleW*ӊ1l7'꭭|˪r,̊ƔuW3TZ斂;!_gdڤ2`P7Ezu"ZF,AU_\XMɤK_<]Oh@ uRNL BHJ#6->ԉp`Bab%ńz&]x6+Ԗ(\>8`K, 'KSH7uˁyK0 FX.;)SJV54 ?O!He<,,+ɫ '%hLtI] gAW~UG,q{&2 Rw fwI%aeT߷)<1 hdH0& L@ "*_HȨh56)cg崶2 * J&PSIhEdX ƉA8"d1c=D0"KMb$t7HG\>%fΪ)t_9ӝnА^Xk~댯#Qz¯%},,)%NRo慎mxTp!.}3+#ьs4Th~S2'e>1M1p!5$+1(ՃRwARo,LDUD0lMcͣ6)5vT[xkr>:% H#Œ[2l2J7n](A qimL攡_~infrWjk2.?TJo§:kS@ h(ϥ/X 75Zg^Kӗ}IP Ħ=G?c-o4' "[ʐ?@ Xr8&S>MBO1&! yZOiimBlrt0t/VFtp`ϗEГfRaH30(3XE'NR.)f9J5tSʑhL;T\/V9;2SH\E`Gy4x=6vvۺ1ىi$b8-̄ϰ|gg@1Vm ?ݟ:o}[El~H=*~eq̝rIcxOhĬLπbFR߸K?%A~om/GX<?#>J*6qtOM31-a";) F?2g©A GRhrU5'IW$I B HH)YOVK8!gcXb֩{ 7<ⲿ),@7Y`fSC4E.z8/@\s]G/ab̥ecbP]yd e4|;&YQipaWieJI~ n4i}Il\}:X݃]|tK􏕅N(S㚯+4E|X/_pf D#`%.\/`~R/ LZ/ R䕉jM^c-j~)@E/2./E[4N"'I Zf#zACtcR–/E=FAG5ƌ9cEupP8)QtFMG~@o|8y?>>*.G,iЮ jN$TWj,^OVZE;xr"Q%>5~C`L]GXe &|kHY֏!=_xE9'-[*{-~z;8axFul]kY%TGrKU;ntwD_W2olnX˒.^;k/D ]T/ ;ad=Q4~*l{ъ/i :px1r?)/ki=C;AtD PT\V^:Ǟ8~\m9N9:h͖cq`UiP7˷R)K6jwc!8]:tz`-] tpԼ|_{<Ś=ZdC}Lgr;=2zFxavˇPbB9 W]( ,q>S(L>Q:]!qBU(zVnJ|VJԱ{OMvT*j'86rТ}-亖L']~=0ŗmJʸʑ//@¾+9( ޙ/W}n( 5^szc؊juE"s%+AF |5Jb^[ j.Ք~Wǵz~ 'u=A(p4֤[kS'V~ߥā |[uX[5/f>kxhbxq\b/)}J+uԙfwE_cfoَr =e ;OzGʟI÷_NӼ_f ep߳迾Csi|ͯqtӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tӧN:tt D*D|Q20ߧR%R_s-fod,J(5 L[}'7NXUw_3?o HB8j{7=%=?(綔BWAe(=RJ i% i'(U!KUKEmKkTieIɢbE`wܷ](ٸ)Ul?^VVmACzʼ6;z|;uW<;7OƊ*F*8<>x u[׋UuqqVqr<~ fgIG WZƃy(z9e_=U͎nNӕbE3]?_euݶW'orU*ѴTIu8~]dCg[UUUPy~oʡ.;̂sGژdƮZAcyf9&ݧ=M!jIL.=o!SÞs 9A ngp.%πS@ p"G]}PA9hB"Ӆܾ^bOF*c;nCy[!qA)  X%&%yM#KXXKX%7J7*ڈoOPJ;Lx_9E!-o;>ɭGgީAZµc? fS8p?sg8)V⎮f!` 6[_bNsf/ظtCƭzXP&OTb7KVowҘ@ܷ35 4lYZmˢh]is>ܘ.9+~ꤿ/6(WUe:63G%y^qϷH_IQn 00{"WQf&[%oP[(ei*Ņ])$SÞ9tv}\edwdwGwp=n.(zA-\2bݗK:+j{=UUmxRpqc[ډLnՖZLN-"QJS0;p2éd|u[A/'wK/O?)6ݫ1?Vu * `Er]́~qN~,U9eS- -(UN_I4ǸpR`(?24-e9GC(_Qi *,uzxڸ#0ʂ6lPu{|U\,$h5/L?y1 Z o{K^B:AoɓBw848$ 6a%E0#Gaa;C_ś"|UZjS:B>"V.s5}S:Z $Ho /"Wi>GhEEK+zvhzkoeVd_)y\%_vG WT""zxRȀnat>_X5K %PDb:'C*qH].:ds'qSVcx>~fgO=;#ľE(&ݗ0\}ew GTK1-`zIia8LKǶu#D c;R}q]rqG$c_5'aJ߳Һv䙄X ҤH~aRpy8&pT/dUZG(%5DL2٘lJ?ʐ<{jf%#65Ex 27. _jEEv%wrk^ "q;U&RWYؤ,^ĭa1T"ʼ]۞A[ҎEaaʴ:#*@񒡂0@L+,aoTR::v bt7nsa]l6?-+p o#i@qb8=JP+ <'W^_GyIK_c˿{T<59UEKEԟIP&8%wšbЯC>EWS`~)߃LGżɜkdA4IZU-W^h}V u=Cw?ڰaG[䐰G0FO6*iRzgqd%u `bbIO@Z"duM3.9BV%zC1N*v _I~8XI%)JU5('=3&`GW%'z:_+0Qe{l<-n42IUN^& FG=cޥĸ"&뽊wQz'+AZ''E9Î>D2xɜզ59usZJX.*(P0aaB'8f@S@EL$ɀVyo3&Gt9AK|5;<9=Saih{B fm;aH-Z}5շG m7rz3FXle W~?. K KXk1GP"L;Mn lNm1*lQoo >lBPgVj}tζ^G!GK`*P%PY[ii[Ll[bjQR/V^7I|-=?9ca1WQ)`KBALJj-%'}GZr\{6PFcFgn6?cLu v]#ZbQի[4Y3 #yJMD`n㽼NJ [34Jlv88LZp8_M217 UCQbύJhAO:ktzͱ/Luׅ zǨIysSX=ujN6lO@K|s]=oH<25TC  dW,4GW-uqH'?gؙ1sr4k yr?# Mk²%䝨l0uH]8g`s?ZK2.tOq6Cc8ei A4[,q Z,G d4cg;DAB#Gb};c91-hP2 ٕ4b1eeeeNYmM t1]EPLln  6Peй -FM.=v$l5N_[+G&d3σrX՛a˱@=C]ؗY-Ϊed=‚LYl5Y)RSW"su$Af9emfE*Z,P}ԒKsTO Pi\eg `)zJ NbZ63ߠAx [pB}^HD%S ZʪEzݿ; (nYp0|"v'aLFMd/)fb4iMb"_.oZ&#yJvNS;%| yʖMd0ɳ@A EK"wqzv.,aué*DzEqw(1sUuDY( SR qwKs3jR /oXS;}-A2k3I( :$[@ ' R3E8z VGܒb2Е3н5ĵ@[#9{38ӧxS5C卒-Z\ #gmeNGZ%zE5]UJxTߍ(GI]L ѵ\6e7-\d쥰u Sw35?0dy_2kא6`,‘&zCT-g3kd8A\/hu=`À !N &CNDyrjdq)GJFUkRpU/G]@qAEnQ|Q#F;H\oe1)ޯ` *HNK!0VTNv\Də>+FEa@.-|Qi;ߏ11C-ooo|Tߗ3׷_T]5p/99 i* z爹="q)#SAPlm4K49pQ 1z1Ri ՙS_6*<%Kp@xIw~G£F $W~,ǰ?!.ŚE/honf~s/D+BU× +daqJᓇ} f (;]e7$;q`/ɯ4S3SYC\B o%¾}GT%{K!!I}>WbqAT{2h핱9Bg'NLS2Eː/EY6z 5^!Oq;_ ^Zvft/"!POUaAQnDNValH4:1Ԗ_y,Ic,f#t~ݚS,䪆:,+x9.Ȧ8o3ڼm_➍{|H"8\\(TQ+xcitV{k. / o8%b} 6'C ia6io.ˑyFeJcFg7oD5(צ]= ;tƌ؈ŝ.h2X!ys\fyW¥d DPq|.YYK(UZiQ1ܔ+󑮨14cMOM #qzZgH;%n3& HVw 0ahlroHYxt 4Rctamd+f?d?aLȲboO1yפWx_9%:AY(Jk|"`7tq4V1,C!>u>epR{$ H͈CEG*рg= rg)bQs-PW$ ? z'HߐyX ⼥aY'uW< x!|Cڔw`6N\Qt)<DlU1gT `c % uDTHn,tJ5~--gK'& ̪QW"{#* hIDOy^xL>GnpwֶpCĞ6hWȓ!+7C4ɥs}}s"O%xKlLh u( W  B1NQ.˥LN;0Rz=9UL:\~Zr s˔@}t 29+ÚKBbLo m9TC)SSqza)cEEKQ?C9)o`[jJ14 3#˨^ׁ6U@`׼vH}&]?V\ޗ8@/`.|hgƖ ˑB_,kD*G ^d؁]J""QB)  v6-=Y^5?AWG7XA umR+=:WLuU~3tJ%.쯳FJZe,Xeͪ_|=׺xKsb ܓ-ē64ʄy{PnY+;3,_B;1矙U+:8Z{5^$hD秠ǛgTw޹DR;t4E!\yu+USnrhJT]NBC': 0KX)ưh:Cԫl^o^W=ZDS M/":VS\#2͑6&J2e Q\/CDV!g/`NO+~_ODcPdü`a xt[S.$\$. X.5LԥE7kv-xt%^|<*qQ TSq2OW+!Գ煼E"kP{ie񌗊I/E0NULS9Fe)ji4iBɝq7ӡ/ qsVdcAvѭ~]L(`vqaޝѺF; /rz=vI`" BAuWƨ64MCQ) bGJbY쀘}UlQ:2f-6xXeFݻ/h{X+oǑ,sG">wSߛ2&6'S;Z hxާo)Jk#HhtOy|7ފYG!~jr̰KJGz[6b%$P0<$8LvXJc͊k3LNz6* PXر^b%"Xb%"XO|ޞ=~m'> O|'> O|=Oz{ޞCm%4SLE1SLE1SLE1SM(ǎ1[lE[lE[lEČpb1"؋b-"Xb%"Xb%{ޞ=Oz{ޞ=O{Mb%h"b)|LE1SLE1O|'> Oz{ޞO|'> O|'> Oz{ޞ=Oz{ޞ=Oz{ޞ=Oz{ޞ=Oz{!"b!"b! RK2\?R}qSN9;,QVhtʒV4cs%zwQ:vV6Y/Aޮ=` V5Ju2?wh! 01H#9vZkS&OoeGm,㎛5ϱaPzսa?brKKWr2h1qłmM 8Q w8bDwɏ/ݕ!MMƷP,>}$ƿ\'|H$TҔ$ Ե7*LTYWeQHBU]A Nw%S!tm1*:̞,ϳn VHѾ|E?BϿᒔ#> $.SYs*jn'@:fRreo֗`#$ 8"B| $e]w}~F.3yD]zcX{vZuHKzuvNaxYG&U"ʊ\By*:#EX ~ %|5p$*YKv}Ư^+71sQyٳq`,mC !^X`15#6i..&!IύWn~7ٺ 2<^\==(h~'-~T9E= =\)IM-+%Sb!pe߃tM@xޝDz.iCc&P˧Oq$%$lLخ_xae"~|,_h!MYX4׫+ gTb7Nߝ+oUFDE(!x5sG#[[[L)rWؗEu.˻R*4ȋ>4}h׻~GB>tܨl58D*7츫\}/YVMjK1cVMXpSN5>mɬ]0z3Z}]P3Ш)z4UJd01]Ó0c r.YSBt2xt6TqS$5\M}51ځy!QP)+\/BxvVf'Lb䫴f* y畣fTX2v׹(c=IЀX >NR')nqMIVvQˁj6cΘlѭ39vN=l.mGa\Q¤tTT} 1~{Ó1P?uG?q7[#J>_Y[M ACWnn /&͡ߧ\! A{(aެp䋂x Wp[j乹.`@E0Pih&s%m@ Sr9>'61 b{?Ϩhkݱ2gWkѰT30Y&Lqݏ~Ap/OVpG"sy5O\FG:^MϪv[@.qk/俵gt3mPP*0chB+(cҼtM({J)5_Kyn:}X'(wqLvL*S. ;]9&ޱ`Uʿ+¿*_AFOS7Hbż1̋&_Df {o*_=锤)vg6z8Z"فdUؙul*pi "ꖙ"L7%&b-7F^\Ԍkf#d]Z9GYv֯}`.oޤ-I7n;PCp7]P뭊[aÛ [*ӳtWilzNLVJo~Lk77E~eo<.b'g$ ^Kzslh V:xɔ~D}-:b/So'BMNt a?W8rcVw:(}Z }vV,̱";o^7WޠRWl/MI:wPVvuaNɪQ} lz]>r-W!14XghrC;D>&.K6{ZM#gMic` < wD [D% Y3ɥX"_V*'@"=`׳"ޠEzI󲋷)X#0J8 u1bܿyNs{A 2iXB#G>aF6M7#\o7+ ˒]9R"l~\͊ϒ`2StMh"5@ǐqțJ{i_i[E[=qTܡb ~GuoA.;ݭCѥd-uv%GCBqbG}XuŅjYwE- 쏩-xH/E.|wUuWTR*LFJ,9:sZ\iuiOF.2u5b78d6(ۚMqg^ {@7d&_cTG;zN&4iVE~"7NM{x#_?(!]엗'\׮FخLds!EV/`鞔ޑ^ϼ7ʣ2f=p'Ts2v[%G#gwoZ+M(K cAcDqZfH!`TGb{̴DI$fkf{_ϴbZPΛudeNVuGCR7ȳ1חKBw~怖Z>ؼ”\u3)1_(F;]F1A6U˕HW8qZ-_cj=X0\qq<FԳ" B؄-1!>;J-0jo|䜯 pjBJQKJAf0\}<¦htL_!V-+O:#7w iNѳ<:#6-0q*H.!$0HiVɨf5]ZgUq|5/@䪊~kȫtn}멢N- 8 W\#Srk^Qv/fV!#d ,4R^WFȠG& M >.H?GFj?cwb>WCt+:'Z?E6-"E+U=&4,\70ɈXqZI ܳfĤ5~Zhۋ7tvHJGbwJ{`jʾ)җc >`ԟHn%EA(OZ΁ܕRCbeblD.1z> " < Yc#;dBzT% fσckx7qj?B('].$www0,$eBy|_Tg0 N8*x30dA9DF$yE[0.rP8*pR|0F\倸pn6+#ctّ(V 9q-FqpFR/5STSyWD6ǹZļSR ȃ]9"1B-w{`0F4yafe~12A 6iںj b{ KgG5CTyN+N::۔~wUc)XD5r,NE#Ֆ,=Z5=չiD#KO/po ~ŪF3ړV@|g@kxQ3 %ԛ[B1EnJA>DS4m%AS&_G0RtIWȐAQ#:y.IqHZz:Nr=a&wUh;Tw[>Y޽$ ?rFhddM^Wדe}v>exc,ˀYkt[[\qtF(T /4ML^ޢ?S|ݱFxt;4z'{<^٧fR`s! FìAY[ Hǎe_MhOd7/ wŪ-X/ԅRN_S2Q8`8wWi1~?hc)$ " ~̄AD"dDA$" F |2 "O|"LLK$0# 'UAD 1a!RFA $! }\ y?f $"~B,Ȉ1"AOA 0M+$~HD5A"2cH>;`i t^AyRKsΖxFv*:IU(=KTy:/n2ߛWNHv>W |o-V]m'[b'{MQ ā B@Bv$Ls6./.j:ͨU8յ3.qMAF|lw61.)U\ܴÃ7rj.̕"F9O'EP KWใU]SѾ ;bw^DtYTbFNa0CVZ&=b9ޯ!~Xܶ MGj[ܛۣ uW$V.]dpwTDQ7Z~H2oH/ Eo&ha,e 9dG4ӵWKhC]IpYqG$̽)VvU#0/-;S||2 ]?`0t 2iE ѮZ\*1KyxO1JpW@2xsmA9E~SښkeHޚa\2)u.s5DdzQ<l[ZO Ku+7tK`uk0nB ffOlOWuShK G'd".EnEE TG-HJqR+K6iQ3^1I\~IR*צ=$vXZwnɗ/fY{Dh9rN>赦o’?~I(Ɣ-#e%3y39&- 9@FHH) aD=>< i|A'goY$]YlZ=yOѭBgHu]ΑN[,[pnȰ.K.K(ʗew#U7H'B!1hWc]zH"WRUlR5Zj Hק;(wK6Tir:]Ϝu3)(>`k~f->}btyG{TgX _/g# [*ϳ% z@xCm'dyT4i9 X =A@T$*O¬y_veVNreA&}%\;*tdz#sE&Ț-.3z]S(^^_>gL7-s^h 硛?ue(V[@BTԃÊhҕ1 Syl6pVXWtN VVzb\Bwd* S/; ED(CE2-P$yZ\fߤ:)! 8v D{ɓm5VOqX 7RrowxS;ќ 1N !T~Xob>Wܾbf5^]: KQ^@@7Dpa|(Zϋ | E{x?'&geq@fً%6Piq]oZQɪvЃ㗗|v, gW*?s˓dØ2%҃)'ԏzIxq起H>DvՃ9tk`A*?:|iJ] Y!pUe*F&3,Sz5DQoBkE+9NU_f۲?/5\.N;Ξ.+,_ŀ;Qv|sL!c(yj @Q ]["9iݎ?~˿i$s f>G&"3j*?dByGXzY/}V,vĈ}7Õ?B[e58ӝӏC`T{^;-foH'#0Ϻj=_\5N2:أ9 d7hh0C@hACy/oP_F3w0G?hAs4$10 4&DLFFT&h:'we_Yrk6i/YΫoQ,bIK)~]%4xuTƞG|dJXzzHޖC&e%{RQq\;|6&~v!ѻ⿗GBe?eQG+*>ty²R,bץ1zWEtBrJ>b4dN- 7פǛ_rЌq}*/޺\i"ŎRkIJsTKWcT<ʃ׉~4lS*sM=0LAAV%n bQV31veI,k4ȢU [+WO.4^ $"Q`>LĞzVPHs2{YȊ@+V]ΦԙRUPfJEb2e R_*ֶpz 8y[pHu5$%qpixzNGסq_fsm<_:tR5/[P͵sx(G}Vg&PZ*  ai|*J<9/eG&:)+6U].TM@W >HGZtBBىP)c0 э.!|[͙@ީY.R PĄi3X]VJ}Ug\)i;GMleo4B2/&%Ik;支qakR$}YCF’AG`jV\e\<eڒna3gcJWJNNٿs=S;C$5YtH!^K+wyO|fLf ۖƂ;%UYrIXn2eftqyFE'nbj/vo؈^JD-i靫[BwKxl4r/5ܳyͭϡ"į Ȳ,JLnzL2hd--!KM1k(Z_=s9Bu~[j)Rc:Ӽq;(X}wӶ2GLMsj+1e?0h7h8i_f^$ST`mLs4j R*@FY!\a{ Kv<l6D*Fl=I."RX&oV,mU]^IX+tQZvln=aQV-X eZ%)[Xb(oq&A!9Y9bjT$ݗRƑTO:(epL۪Tx%O`_\M"Ũk_F_'lE}oshvBCkmksI!^"",[%(qBb_wYЫ 13^D a%Vb̶C=_ug/nX/6V_LeD4Ӓ>zJZt}iTs QS> )cHE^3e=NRixĞ#it׹TFr$oU8- xx/ w}[별.}I,l!<#b2z j} Z΀], 0Ӭ*G]0:BK{xhK"Ҿb aJbt8Uy7VRNX?̐c-vu=e&Ǽ61((x<ֻv_?t~lCWW9V#WprdQWyOۓ.q!AXVVҢ)%Gݛ֔0{'ڨw ŃcsN{dG$kު\R)4eۻW ߫/o+[{_/2'F*&ĨG lqnؘH#0{vQYn'?4{u~KeTm+VRZs\i!Z g C)xJkNo陷yP*)M%M쓰i٠Lm7W}jiW"pRŽ^bb7K=΃1I(*p lYne-e6WkWa|)¢s/w ^+fMŰ/,ιsd|T"Esv^|]N<@h5g ;,&n ʇSd&+2ȾN$I[6UH"/,ʜx<H\+ "޻{/}7{u(T?&M-`#flq)S^>fbV~5%6 t4O?4CwRɝ-CʦT~(KR(<J~qpgۻXyEVOU2D >/}ygFH=3u4*>!B@}\]oWF#̳TwjN 짋U UNby*L^Bfľ>˹9sI~r7mP9&2UJzc4 {9#n_Q//Q[=_Q3~e xE,G)`IʏA:Y?u+C v;dz bwi9ie6C206}Tۧ y\7+hMQ;D-,\x.pLz\Vޕ¼+ o-/Acp@o{5E|gM<+rAn1{tfx I#sŌٜw_.E,R?O4ey_z"YA\+9TBxNςa)0E{8_j1sՒ;ج!O iF .+< *fc2͚UYiI389a$e\ .?/kFGZbI}&r5nԂegXsC aSSB#YYxak=oWuF\G'?lm[Q\ ?] JX; U䂬4U(˞py_]/^֞WiO (T^!AJ l{ȬS4dO{=Qfv 9~g,ԗb[(L^vAj3l1/q&ku# w/YDtΐWѝqDUWrXW%Px& F1'G^S" 'Uyv輕Q2GQ~h@\iC|j=lCMsou#ʚmrfd~ސ4Ȋh>PTe"vʹ~RXGB O}rcTpN<feN8 4lr[Lڐ>EN./_Mo70fuDj˯|\^|T;JBRjď^zgmOL0=,4(B{_|aY=NW7nk6qr{]z_60wFMQ<^_ksnsjk6Ou[e=U98(ǽVzr1샜W8kK{9,\vQ/ + 97S‰+WF795FwvLk{Zo6n+ڒrcS4!BI?Mk^E{a/ NvOd*# E̵ϔо `"4fyd* 0RGnwa>\ViP}zJ,յ|vg𦲬ܘJK4T~޻hY9|*K:yOn9)od39P_?mj{{ݕ 9u<٣SڗvoFEQ¨Eg;ufN1ȩ֦&ݔlj7xkf\|3pxI|9kUpLZzybsZ$hDvZyNkqwf67'f|'矍&bJD4NfjpW;frmܒyuFu2hFokn.}gX>fx39ңswTNKEløљ$X5붩3+ytionM}^:"Q'f96xkYF]㷫(y5,Ɗ<|xsD\U%DW+j_qx|;W;'g/5)%UnSj fl/yFt0)aմ;^;1w7Re/w? A#EDosM-9QEI0hfE&.{;I]94x{Noo9Tw6td$ٹ޷Iw3zeUcF9xYgܼ++]w9?{:ߎwaj~gk;^IE#5^ԓϞ[7YWd4Nr4YĘƷgo{.,۫i˗,XW h+*K\YO\.Q̈́3h@2nbkW<(t8q !d,gJ8ecJrdC郐]eB@b$] /W#4wKӌo8Vttܟ2jh)S# tG5KSÚj kUWS*Vw-]c}ѭژZF$L7]^MoMǞz9[g7Y&8U LYfk<;q;S&ыٰ湑&&0kC#Ud3L l驌1z!gy^mÆ1-N״F^ܫ=Nf9]*qvjyq%/hh7'?zz~n{{>L"vwMF]Ag>`29BN2 !bt:4vƏFhxFLW$shBo E(qzD&YйQP\$=tzT# B QD(ZЅ]xX6(t11xi(j5xo0ܓL-69|ƈr{i<9S2wXCRD&l g>w `\vμ-YXW"܌5<(bM "RH SBڼQ@ U-}J pnVXUЎZgQd ֎|~b.%C&sR#)6A>T=;L1!QP1r-T, kRI5Z,'V_KL~R083'qbgVRG)=ÙtVV B4aTw퐀lƜ6a`HJ-M;iej͝+ I)4[JYgUy5G NwSqNGu̚g5do]WKˣ7Xwf^:M'l޳͕ܻ7yۏ|XkuՄEkUk&rMVʷFpkΥwx[ONvo5ϤU8ះ?Kf6#w^d* ጰ&FNZ12E_e)/i7m3mxӁF(3\T?'Ͼ}'}EJβsZ۩~WG:Qrp=a<7BTGFCYvȞz7 fe ɅV4.뺻+/F {$7];m< y {|F>u\#yf>:YfmYte[kg3'ON{T{z7Z]I¬rvk^VGF7S6YI]n BCyYNDF˶ b%+u!;7P RS\VUM5ymUzafrމ75F>s9騖R-|ׯSFNs}I\] wAF3S$GldrG6 s7yd<&kԍ<|z>}D̸=0ǑsѭI35Y\Ƀg1tȮHx,.Hgv<9f 5;NS'5s7g.H'PK{m㓜wȓI2u 6A&eý᣽{µm2ز~gwof#Ç89n|޼1igoF34x`JJThosf8ķtѭIlYp-Sj֦w&>yfaΚW\*,^Ggָ2nj2swgr1?͜W7̣yS)׬2(N=yy<9N#ޥwLCMt{{|{k/'ׯOK3dGgw.qr0߸):Vk|%{d,[5f78~b j 8&XO;ylbgӽ4uⱭphbf{D|]治;"gzs{~4yGyy$xۏQK(n jy 0a=rSd`zMַ0Ow~$CE hT2_9&VnY'K?ZtqDUbb}CdOOvښFE1HAp]QҎL<1ɟT,)z-QL EAMGGsd>6`_UU 6EuXJXY,,BUr)]0 1{q@9jK/PL+&O,gZd.{AI@LoO79usՎ{dk*}l;t;ZNyu/N+"C5IFEP_gMk^nNVnMYmA5$'nƝ2]];c"}wo2i1l3Gw]AꦍdE]ULJ٭Wk1V9PVU-0bG_]3q1#9H=O/tם,UُFMTDPHtvyXԚq^\Ĉr0u:r#LɅ o:Ҝ'9o~mWʬ鳶l jzdy,Vj"p*vXs].X kzוҟ)ֽY0qu!|I|?y^&z%sY ދQ/=| vu׆r|$5zN]&ט%z7[04VᤞkSHȉ#nEU;t |Demr]{:8sTy!7Vt%96$|e̩͜-+. N;g1Eϝg??@CbYa($w ps\lv \ e5"(s5!>G29O*ռnjjwSxg%p 0gVCDB7FȞh4CA]2Y}ĈU#>"˥ݾW+Q{A%dsŸ1@]I0 иaG.CDu 0 lѷbISk˺e9'bgSNȦbKhe\i8dH68La ox6C>:,@\ߨ6=3a&fs}f`n8>uzcgqt`P 0K:L1r]S] ^L8:]Jb_֊P`TaP*TauldE6nl6.ݻspF d:;h +WE N>ZLc-iJ KtO©dжBN aSkJf1ˢ"Tyykk3ͦ0YӞ'χIXTT d+Y_co\a+G\Q Q%~(%w{5d'tS JQ8 ݎ )o|kWUՈf)ֻj[}'VaJ:z$XE6g|SH:Tzz.9kL4,maT\#t/|~}F/}|8QE YW?{Yt>ڦjjQ.ҎVpΗ3Ukk[%k%Bs|ƷYnY/3o/]&FZ`5h7/ |g*Ѭ7듮M4c=̣9EkQԣѭ>V9^Qg -gS2rZa{_&W?$~f?/Xιy{Hb5L3Fq2 ݮށCH5bC!rE.(*mbz(H**EҸVfhܼM3\6ET5ިcew3"}I]|MGI}βz$~{ml2 |5Ʃrv\H'g?z4j~9rv;z#לLy3wWj<1/dw9aczg2SGo\<ۇ_>SO^o=׹݁/1=.oN;ycNgjoFO975^aIez9:d׮'-x~_k6^n$2^;ʍ$p/y(0h{fz-;y"wIbpRL/$zIꎞQPߔ2l`7]1^.&go9Tt1KfS2d^pPmPPI~]8^V/W#=;EwdDU5Lp͙%mr):*r;8awzԌԚϫ>?ׯ;Q~Wi6K@)N|m2/0]q.u|l %hr 8?c5p}&ԜH( O~t.E;Qe}C3˰\[|:Vjh$*p7_ tz80aBR4= 3PZU/Lwxe[LOQW6Syל_c(1{[T,1!.EHc-Yva͛U]>Pg q.k#eVNBzTF YGr..@ ߗ7s7v'ݵxe&7wٯ7>riStٜ'FZ*:\ㆷs3Z:7YuF様Iy}N ޝUdNoZyUpIr9;6_3]N{qySpV\kyxYKYN2Scg{\wxq6tg'Sl?7]^.3jU.r"rl9sRΩߡŚce29P'Av 8Yֵ@--sDl rGu}L)]Et\e)1¢LXD_RӜ\AWYdEdX,UuX0@]FRPԕ'lCZ&Lgj8n|ߵ)4|%isyl1&e3ssZo=5e֎LZO0Oiz&^kG]MG9QyQ<_ Oucnj-LPcz6hIYaߡ]/fg 2{ؓ&jdwn6hd3ẉ[RV6;+jj<`%0\r|s0'II}'^V!۝w^wVYO vƤߕf'i9ۛ$ xpo5.-{V[(zCRcehaồMfKs~y 7;%MgsP= }ΡƮ*'(F ͝L){] kT{lrjvɬ=GJu cZ/*yଦ5MY%G.!78sOEɨ7Ƀy[8a^5 r|fV4JK=zVcgx_)H7hC=jؖ8q79)ʭ +[$O{@rgw>I|=l5սױ!wf3*tl^jtM'2\ocG^kOi7^a[.۩5LceyrkD6\p2NSxKY;CٞvPʇ xΒj{V=Ij nn9Gy/v1\ʞn5Ez[kTluk}󘛼fYZ{jh\S^]i35|(ъUEX *͖U«x%E[z-@ۢJ5r2 7rDhrH|ϴ|r[fvs>{8}Gp(h(ݲ&F+Kiu!E 919eTQG2XiF[-J KBibW;u/jfRStV*$m k^5p)eQ(MԨnAB\ $Q_LCQ>(SbFʘ6e8 *RdP؄Jo.Q('GXkti^DEYad.)7=1k6 / <~ԭf>%dᑘ83A'/!H'kM gUgs=fyabV4'ljN<?؞E**o&N(|&.V !Wfo *sY[CPPNj`z"9?(B&SXb徧+jO%Yx}K)ss`TFFL͊<+S|j[=߮J'o?~_~*\oپ%Wz0/{Ec9Z5=QK0bfO7kEe*q(5/Xhd}ǘvK+<8FޫW~g7y9˿ 2S2^ik7h^L}u6&_Lrp޺ΫEfiq6#Zp$6k_c7RsUZ7<],!Kemˣ Y>EMyL u|kLpYk s~'#^[wM/^zJIFV5I{wYyW+z{wGכ4v۸~Ue{O=5r/3Mnwz4j޵쪿'3]'<T>9y揄Q{V6xꑺl:/ڨo*Y G7c~5qqugpwGyFg6^ou:wb5z)M-TIj _Gf?sְ!jբHS %auN  UU[xeV8+ز!-Őv 6vX 0.`BDBp’^z?zEtz[rkU:'m\r?‚Ybt86p5W}|^my*kpOuWrǽvVuڎr wS[;Y{Qe/ߒxoW°tM7ihZ]s2 fz*.=[R\17T ?2n>+%;0Lw\r;]J121:M 34k G:-[RSaeYJtBJ-fo:9~r1tW<<]s{hW(vwv2csc|^( 7^ջت6Oys4NYF{oz8NʞM3{RwVg+&{MqSmgi<3YҽO^k\N3MWgY|9{qUR'9{Q~lkѝ:Ou[wV_fUrp]͚ˬy2ձޛ/W [8'&X9=ۉ<,՛Ws[<|3< 9湘Quwj7wҫ7͟ȎQ}_=s3<{TVk[ە&p]yUs;s+xNуgޒuz9yY^NcUz֫g9ʶWrN]m=|JtQ;̮ N|%>^?Gw7꼾Гѿj&ukwVhf|k#NKfUcuqN6%nCR?> PJJ c0ͣƤ !(8!#.HkpM߸7&2 t'벐K/AhXZX S?fkN?m.md(Mwln+K.4L6|͂ p! `D ;h49Zs}DeoX 'sy_IY ScM#(|hޣė(Jx,xxͨ$D.J D2ZcbRL1)hQp'\Ĝ{QbxH&zD,m:^gY8D`, W4@xj s50ÇrYŀxWT* T"Đ"z77 / lS-ZB<1NԳX [J2Ba!kT& A&.)W&i{jhLBc0pb@CFhtaIy'Q_"vY-,q'M|}LIoP\Ӥt &T\ y}l y׬YjSvÜQ`?X-(bf&T)'0/M:Rɤ=h~S*wSm`cSޜ4oQ:6Ec4Pb&hq,ͦspeiS&ŋӋ8kSM jh Fl}9Gk<% bս"tu+j0šOq97703 wucuYKbXh~Y|?1EôHqಐpZ嵵e\4zL55!E%<uɚ7,.a!Gɷa_Z΢;MuU%Aj^]w#eT&|d-Uh=_UQQd3\CM&=<, cDNpE*Cl2[ Ѹ>\HIN q^WyUR ,rqT=Ŝyg qVW֠]D8Qv[tD4(+_`bp=_IYfQ -YH)]#LV"x*_=Ҿո[\a˙wP~0t܏{{dKo TG)M~Y *dLj|"Wj)2F*$w'zj?~/k*JP!l~?͟mԿ A/7?dtɹJIrX1b;hJ ADj3F_*5j5k=VHcs͜X?S|Q]/ ?]Uhq@Yuof# l̨L(cß#u_ɪWg0bvstSW,;Qʛ{%R:R$$eE[ҁeM[*k AO(aEɼ~ߡFUoەs<{喜 'YQg~(#H{`͒Ԇ!AXXV@UEaTXAaUUUEXQ`aEHFaaAU!a!HDQAXbAPV!V VXTUDD`A`A`DV!AaAXBADPAXQAb!VTPFQ!ETXXXPDTEP`AH`@EEDXaAEQQXT``Daa@F"!XF DXXXPDVA`PV!bP!D!E!AXaHXE`ab!HXaXP`PEPXFHaT!@aXUH aP`aEETF!UXb F XPE`Q`F!E@UQHXXRAH!V!b!EVHDUFQEUb`QHXDbXR!aEAaEXARTbXAU!bE!QDEEbEPaVXDXUUFQ@QAXEBUTDU`DR aAXDHDa@a!HXDE XDEVaX@PXXPUaQQQHXPTEQPRX!aTHD`XXXF!V`DPDU PDH`F!a@XQAab!!HQ`!B!EbEPRaUU"@"!Q@PR!X`AaEUPXT`AQa`!VV!aaaEHDRX`aREDa``@XD@PEETF UUQRaDaHXPRQFXPXHEET`UaHQHXU!aTRXXDbR!HaQEA@DUaD!!!AHaXEQ!YL2`L0`aL&?8I "yw]Pp5&o^+orkYxΘ~S*_'Ӽ3;Q/i7i6UOgR_;1 +zngŝA]??V~⚋k'=i)>XztZ6/^}}Wܬ_nfDկEr\ .okڢlТmQ7kQ78{/EQ8h>N4]:.‰DxGtǭ{wua$a;})w"#{~=}Gau:] \69ͽS>EE=&5N5F=6FE>.-F>=M=65-F6>->->U>>>E=6>ߎorssnsǙnn{w=v枥ؑ AAD,-uiʫY*dxKxDEe7<=#ҚGK~xOd._E( /=\yד}Z]n9֛Kп7ZD>EcrͰ&WS#@I =[~Dh٫JUyKWy g# [Kapr89G!<ҹ8\.2 1ө1~Q@Cz BE >NGd&Z\FʡSե0MZPo*]lxHP/bjQfei: 5sWYg).+[>AOٜdfSQNS9BX,;=y4D/O/5_33PIMI+%<;~vbFZO[WS]UUQT+t55>K KK ;;k{=ht`GjyC$@gIUf˭gʋ n[SlO!.s}#ߵHLz O h]+̱{! [e'.š I\O3ڥn4Qs(/|+L"k[7ONaxoyYTf&w\ʸ~jQ3M!,=mp.[ܵV-k9/ǿM&]Ωw6RDڜ 3]YŎdճlMjdFZqxǸ,B˚򾾶Ł`X B"nPbieϗla>uBE^ ([eCa*gG:|7BvK5o By}Ruy ^c}4'6'R ]rƫDX`}?Q a-67Z c*=~ٙYMB  Ȓb5t/Dfdwu v|.@s03&dr=`F[CmG-p|dH. xj㱒Bg꯷%V%,pG!/oZ9(cB#]K N#kdP0aD=td⸒%nV1s tB!& .z.LqrFVRP3PXTEċk"v, F $HH AF-Zㆣ`OcE41F犇cE%w;Ɠ.p9-K1WTM(d?/4qOa>Bxzín '?LOQșOLRl)2y<.10xt$lFx F[C{^9XHhv&]%=Bں^ٿWs;1WN 1^1.'EBS ծ22Aŋ!PjVQKߢGՈy/ɄǕy7̈qB6 ܯS/"3'?kfr\,b:6 Dqu wj_?zQU+zC2:d| ɥq31} h>F(,9}"!& "=eTQ=X9/8S)7o}+DVA,;JRF[L檢iPB$8iEG;D\ X_ۙ< 6dJ桌 c2h4 GBԵ,pš KVvIl]2I5~o}FhqT< `tBF,.\uDb S)e2L)?<]N:x;i?8*mEN(!&!%SXqWLỨt_[\N/2eAt_o{`(7cCKXeR:0"x]r"~mB'Utyeӫh[XZt+yo[M JKJKE Wɶ6ai,QDeѭ]R\lV}%=J[aggwGftWUQف/gZ?)WPݞP>lq<|Tn)yǼNG1QO⺷J?q ?>.qDS:U.y[1[U"ҍP`9KA' Mjt5ng!iVWxȃ+zu w`{䡛 :cGo3E>+>}3\䱯ވzNa*`/[@ ~"JKf,bY0ߚ޲*4_/Ijt(M'|52|>gm2V^jdjp'&7ˍG0J)'kFd!_ P}/Ͳ}>5%>T$d"Ph|͏7n) <|,;~9?O.u.m-PQ'7 Im]өzX3wPἋrEn׵t"Rqڙl0) ~hhw!xSR(B) CEf72$8ȇyɰqm%Q ڏ,>ɛ(~xBΊ!^6b( $}o6$MavH2#1wa?6γο M}R;}),4xz7⩧01*[&P2G<̂\Ω tr׌VqJI#2<܉yk~8Ԩj47E0:erbeTe8䜺QǷD{w?uCM${۽C+hC/W.Szd9+7V׀TK p^4s`8f3cUmn7]}xmc:C  T ;ÒxSKAeOEndp&u.wjmהr#M1 ;nQ/IWV5x|_0L#'s#Sٰ(,|k]V#Vu;+-u1!`dik95Ρ}Q϶.7R y[g9񚀜2eu]Α|FMD2Ц GBam0\t\mŇzSA&HC+ωjj@?>6]LNnOWҵPxF=x[[ !G82WBzv<{+Gz!AuHt|lSjj|4hva]U"&Q|pW|b/'"U $Lp4麃S~#A14vpu9-G};ndRJQXz(22}y%rg MG {!_n^uh=<7tE? Q k'גnìZ>:(Em5젵/!8 /s#?hX }sYY SF.'ǐGkIrzPN5X-;Gs+J^J8вDj0L[/2kϴS?/KA1盱e,Omq1aa-:ݖe :j|:o_6O 46d UJgHզ8gSp }:1 *^`#F?ώsfyVFL5Fõ ѧ[^յ%j<%v}*PpӒvU$-[>7FK;W<<\ZO>DZ̽5MvahTK1TP=[< a/`f 8:q,l߈9¶}jnΧUKwRWW3#zൟʃ0Y^ݜ5c6Df;.3P쥛 딵 j9.ϳke{Tq_r^v̾+eSXC ylپ pV,H&A,1|o\]Mv0ϴ/c̅UA"gN"-'yU,ǥ9QڷiC’)k3׾%~[:>0gGFt+J.O' 4Y4*+[ኪݙx&0^2 vTb^TڮKZ 8]!DW$`ZTksf`}maJ֖w\+bBu~Qz"=͸;\G`aad2=4;ɷ YjL{BlF6k'(FW{?SQV:0Z؃vB7x55H ɨk?!wvx/7F1/>kjS—A j'#F]o=E%J@y܄ǜU @yi;E^`,?|t[dC ͥ?D|e^dxVymV6<5kġcnn*Q@O),Kofǀe((p}^,Zu!IrM쎶5Yr(#)|/= \c2{־E nj)#dRh#g0{ ȭxSCJ/nė%}Ì5eS 商hUSv=N'4 K"ߞ-Ϝ7~fgӯ? qU!Q!NV =xD-'5pccQ<+(t Ve]+.XU tuX}ηҢQhC{ށ`Jbz}Q.cfd /~f`svjݢn?ӷ %໧#m^TTEF w.qQSڀQ7>n{#,l}W;;OBW%5g&db{"k,CmÕ.JxU14n+oG2q>\pF79vWq#[$m'"7ŽGΆ>w`~}K ">y̕\(e_ǧyD]ײxJ;],S_? ,ѧ _WUM-O<"rU-ǜn9czƃO=3^EC8&v]~hޚcA7}86]zЕ:0{Ϸve=dccm 9 xdx/d~ ߋ'f(p<ivt\\Ulhg/ }5oKHWs;dO@`a Uۅ­xsSB0&a%}L$f0 ^2Ba!^9 &`I=`a[ s !$?L/AE`L! "ф|  H Ӳyq=`p`\TI|>`q%q`d%IqdB2]N0a&Gw %f)&A0:Kt2A >l8g`L $R>'H31/'AQ3UG1azIFr68Fr=r9L}'~Y T$Y0J)\FHa'!a`HϲIHIOXK>0ðF!* X@aza F,a&!00A] k$0 P2%A`)!c`<a$$% 0L`$FH!2[I0Al#H6SN}N2~=N2u "H5,Em f  G"P?:HM` 0$( k! \D0YPX- $I! @0%L##oY$ Aa!l!!3 f7"c d?d # :LdF&a!} "0 ™Y8G踏:H^,xLw.>[,tO2}nޥ`wpjʳY*Q Ne^08ɡ| ž(#}:v12a6/)㳘y_j-Iu m~egI\gUP]O`Ηm= /lGR7MCo-< ),)|JvR2 9y~/0Ч4|*\Hwocax)(> u'TrFaD=V涮LSƫ3 L-Z?s >S".w]hIOEU¥{&L-eu7556WI;"ު:ZUV$SDbb20P,ʢȪ}4'*"NE3v6tl):&*(\Pz#d}:ZX DLK>bBJnjGJA.~}l9Xi"V"XU :9▆fOE-[QNfr|UehӉOkUZԔsJԈ44svI y5Z s/$Bq?? ٦a0"G*D7b6CRCUitR1Tl9L1rT·-<뙩PcfVl)u2/EEG0QQѵZ*ZAH($ԈNEc:y"n$8qI'3Fy1'R$lUKBN>>Z q6&m YS0\|$D܄\l\{'`T ŜT-UvcfTbNEH+iH @q9D .((K9!ZOI02p%C&!{.:2*.ZE*&*$/Y%V+;HQDl!TIA"*檪)&}ÆcgKV>KbqZ@k@#@ S;#vL0L g:$ |& 0L&Ʀ1TP % A u0&a%]H; Mڦ lda@<G  08a ˜@C' gR;,'X8` L| le(2F@'&@dTQq#bpW}‘xz樂`R8)tab!DQ J{,Ļ?3RiFhN&< Hh)45%(R}y$ ϩfξ9%ˌmPglъ FlI/ocba{ څ}4{QջO<|Sm&eWh Y.ZD.6F6ǣݹEQ&դČ-} [#*TT&m'K!YC %'~SUM,m޸Z?ETOᾲ<0*#Fc 96. rQcO'*L2"cN;H WWg^*T[dcimRᐽ{T2",Y tRGLUMP vUo.9ӍHvfi1wXE3QZc=ZŻ  " : %TjK Z1r""zAl#CF.b TcbSltEhBFS./(gGT IWe,RԛX1$=^Hb!7$Dbs}=1_Q1;ócUCK}K{f(MOJw/E$UOЎU7]}Ox]wݺ)ApT}et/}xLsQ]u~9lZ&ț!"^$f-5ۦ֝ K,d/[o̼j~xIuW ͻ$vx'7e#uf2F;[_EiO?sC&G_(+jł5ur^(`= pHHH2Y2x{(#QB1\o ҊԸ77`χ$;p*=/ZB<0r$Z!U]zohh"$0ԊH Uy; ڞDvB!~*+כXxyiXOW2g<<;>J¢eى/79 333v52E'" t?+SDʬʹfu(⢵q&|iRj5tTK13*OꏤstUIt~JM?(\uS3%I5(ٔZ4LL]%җ_ =}>6NaUI*T2l꽛%f%WNBysVIƴ3T], 77p͉(z&<Ĵj=Ӟ~hmld>xnU1~H& w؁,:K!ܖ+R | 9 x$"tHqk4vOy&GbZV)1}ѭ?oQ 64n3A]ݛJUoҠIm،,GcFPS'=81QbALFD\ҁʉ㘪kc0|hW>O紮[ 3%פSi ~)aVe: 8 `5h'Tȫ6tхPȤґcņ w{ʵ<Ҁp-?Q*1ݭCU~$_#ΑFoj>O}v)+ewsךw=ujӟ*p?7 s6^o{h^w% Ep)lE}ӑ6g>vmSCc0=(dg֝1&rqaxNyU%xa9qUj?afkFa:=bC@\waCW+]fsI`4<3>ЛPIx~ƮP3uoW )3LtOQ7n)z=^^Sb9)r&>ow*.cV.12C*iM_I;@fC Lh֠|1w=~ny·0p"QL9yC#)S8<>=ߡ(8J|j's³)&avi_Wb?z%Y i=1NFF 1?pfy4! d){"6gJy>H 2.~#x)m A>nH>8Ͱ{l,XA>nE0c>bRl6?OzǓ>>C3gX>ycj˃Td bs)@@b18 97T1FLÝgKx'9Ay4F/^a 8>bc7m1zrs#;'71S0kJ3o'5>[HťF!p 7Ђ*tBcSǿZ@QdvtGqu;6OXŒ6;Lԋ흱Qd&Drܙ )I$pQ՟#/5ذ`ߔC.8O6yݨ?aJ+4B@ f$lT;B/6`x/M~Xs;sg 7oF?JdkHyDp$;i W a?_ =@!ܨ+@c| q !ɗp1w+; X*{y-f m rp 9`8.B༃_@^ ?tGoؚ'_~|IwKMB_мHb$Ʊ?1 |P{oD@yEX[iFb% d_O5Qa;å.<7Q+_@02FxWDxpO$7>Lу.u}H\nK)V~Krʀ!-]xE{8>q?XM8x_z3l෣=V$|Uil < k0R؝W7?}g?nj}.VH.䂑 N$-hOq1o`~xټdf ˲}o~% 19~Ottax/ܞ!&'h0m@{~V;( EZk䒺ޠ7rEl0H]+b7z!~l>f.kbS Dc VZ`^/bESr(gH h 0GVoCkfeHک 5ETht8f@řbG!>áj6GÎ;Z0˓Df;q7>L*NڕQf9o:vvLcfVQ?NӀeސ9c\mOvnk?]ʒ[c/ԛRyny<8P:N zeQO=!7Y:k jp]֎\zQ{ŏ`a RM$ݜ& n̾Y{Y3ӑ? \ 7R`E({IAeAe <|HZ au`WB?F3* _;Qn4l" sc!7yw06D/lP]pǓn??H og=7hj3ͭv6ߝ2d{~o:sELz<9̽׈17|S 5Vuk5+J_ ޼O:-dN0|E1iyFp~3RfՔBZ}ZR?nr"~MGA!4ƵX L5?ܙsguQuf6xp4'zmP#Cf !>L$ ЌL,6d?C4Cm 63c`H/XkCDX`FtЇP75Lo1O+g:EǢrlm 'b.2C$mN -pImÜ},=° IGE{@ a"PFd\ TvAɤ)n[Нh˜YǷ/ ~GrHCjRPc) @@^(O8ӖA9 [xH"0aB0~~Q pX ( נȋ.NK`7rG/"W > a~3&c(zX%T dEq,?ԌJkgXQ#pra@h_Xv( +S U(tWa=9n(5TCxg:y~݉ܡR=ޗR FD2&ޔ@Eb+ϧ?&"H/d[{j<0Zb/bsc%*3|?/%OlrO;kPxԮO(!D@pwZة{h3;T Lkz({3ڔGLfYcxmdA_07ceB܌a 4>Xa]o#Ț?\(቏4oMc{~|a:o1d(N/݈_11Gxo#9##pLGtGs#lH1;C C`"rְK;|m<_h¹4H)`2Cb*RΡ$<ˢLw=nC?B#誠6h%= 9 v:g~~MoE'dubQbh1,n qC;F ӝ.lI 1gz@ɇXp|-8)?^̠x9/= Kvv>ߌiJA!<\W}=6ݓc:K*0zgY}!=ێdˆc1ߏ)=V/xF}8߱g5V#ny/HސKSZ8?[oDq!N H1ǿ?`ԏF2*NE,DWU%< ;gB@kaLp8ǿ+#t|=z7>@3ǏDHyfsP0xaӊ>;c$gph*+H`GP Kog"EoC\&q8#BK&\)s;)@O<Kl";=˲>XǕ=@.%¼ۃ=7#tz$#+$70DT" $a= |W#*/*~AjW;>1{:^Ԫ<|~7&T{d%`p:5.8$LlQ{ (~^#y|2(Jq9޿QxKIύ4^۪(c'z414OTຶ0+7>0L?Gl89x9x<_mb@V+sH]\̛Xô}0So7Qx#w0!2''YM({g2?{Npw } <@g.7SSQ#u[FVd7 V +QU|\E0Y zk> RaDy_#G) ﵽ7INf6{l͇?~]p&̯Z?Ov 1ɜ5Z=oԆ]o`Y_9!Ď89c7#v=#kC.zvA.qF$gHYYj7Ȟ`NFH*+:C.w<fx"[{o8Ӈ&9bѝKBؒ>AM$#-ئcӏ͔萧WM' }Y`ѫH)3#`ϟ26bk,b-GCx>DZg$> _pJSlkncL\h~Ȯe=P,ƈPp,18_`DD 7kN#EȰ*0$͍d6(.ǩµTqO!q }pFb㽾4ߡfe*'RI@?b"?&F|:S) 6Gz è=!'_? ~1{!"0~XwB)V?€=/'8Xs0e6PgP5e@VLzvן{}5>sd}( M~ՙ͜XgȻA 1}s^o8Ubfߩ=Nxxq̄AAQ9pz%0:!&Hv0! ZaVWou)4#ܖq0o^cyFjl@do=w Ӓ"(xZYi}Pe>c]Nk%k<fϯeg04&LФm#E&o/gH@¿>WL^Ȑl[dIk4K`H&Y!r;:%_4SԱG4 -y#CNǝ`CSy 20eVQ~u%~ڀaɗD\MtsNX %br?FT!Jp879_9ZU8zo#cFfy;1oxքDO6ۓs똼Ğ2Bf>?~Lr_?ڣ:Y1'Qv9')9|p,]NFg. -* 1Ǩ;h|"9PwAOl1@ ]Y ˞6&#:'Z>⣜"G0|1NX6pb Op87#8!b8/tGoV]7|BXZЂ^ qL't{Se*T"qOPYNv- _T>4{Yܜ7܉2]S(XTӄ]x~QU|'en Q7H8xo-q;p p ;}ꃝ4$|3 ^F۸GbFUPzݚ lX/[{-{`ؕ$/BsbdG@ A>v^!XtF`eG]( *mT- ȭHН2rՔe(ZHFӠ60nD)F I(pUa{[+/XIߚ?݇C=icg4&l)(AQ;Ay]n[\)w`vhkM)#/`@hb3ht 9ATُYXw'&>@=C8{!\8 r&C8x@O{ ]Nҙ_ؗ> *3CNgtu(s/pEj?$ 9ÍL* &~~BgB%9?l6q17>@f'D}PCޑ KBt,P.L<2߸gp)s)< N{k{`lHs>{:#`'CXQOش$~r5õ1ϝi)bz4a{qHpͩE: aj{E!;DUrC/Pwݛ݀ӣZ4NW;3?"ʃ]tEjs?Pe&`]|wq;;X1&TO,P`&ВWþ#>p5[؃ }:Ŝ4V?j<KDm.AQ&T5a򎶝kd =4RqeVs楮|)؝AW GAų wXQE^01 @jd rnsgN@@,m\w`0ܙ ,ȣ X?doW~Vffdgw:k g=r3hGLl6)w#LlI@]/uWb$QB@ @ apK ;" ! Z%$;gUfl mue}nٟ7|ϐCCo|y;^4$c|}̎X'6:_ZUȗ'풕f gl 0(v-}?Chu:}T=>:L7#cG]qP*ZD"0v5ŷ<| e!FX|-xM0 8:bOÝXbu ̍+x&Z vH+О;9 `؍ݑÎ U]λԈ<) \ch1=%'Ua50-;!7M MYϬ9^~!+E6ɎVCHʎ?P |6՝;^ kޮnਫ..@qF69qF xe0>hT‹ߨ&`%6NP@P]9_3]IEzDB/ThhdU!)7CpS'# `pZoPтSV(c# 0LפhJa&R,2OaCc5:?:20C` H엒I1cF@S[;BF `Q(ASpx>R",o`p/|Y=\q◺1ftI@äpLA RZ`ėCj\m_R= c=Qld\bK޾:"5|LWu{>U9ί86qohƾVvg%M{_ b\~rf;0d^:yVg_0Yl&rx+҄0_Hf ]1TaW#+P(q?:]AjW:5~! HzSc?λmTs4}B$N,@'<`{`"q<ōx_A'SAH+$<_`݈y}\s4=Ft48Dg>N'TOBZyFvk"pEN?9n4H>XwY/TmWs1֥{3k5x_$EHa9L\z:e'yqpx î0rEòO qco8`  | ~YCE`^8C5x1Hj+"=t iA6Q́טC[5363}&Xh%zAQB=Y>Ȅ !"j&*IrϱBRB\uG2{3(Sy7xf'XsXꕒy'rmt53|IFi Z ˓x?IDbt0-W%TE =ͧl ~PmLUٌ2e~2$9eyyd>ŭ5uxE7UƁ18y&Ge)Q.}]Dr]}5]-*1L*ͫsfӍ(pS4ìmC2&Njf9튶h9ɹE=j^Z& 29KL;ZM]}˼eɯjΈ0A9Ea'#dVS&K,}خ3a`'$|g?w 4`d=bC9x (@b^4η{V}>L_@GA6ύMicAC !AWnl/|*Z8OUINxk6wa S$Il\^N]B4i,SWF Vn'uMsLٵNO+͕yXPXS8voc[7[|NՁB룊j}-pŌAa"d޺Mپ&keq<1B*,N%%7('h?KǔU)Aq9+56P P}gx B:Ij\K=RR LweFݕ}8iKuˆOkx{Q'N/R=k>,d]:P+u?w 1VT8g(I]lCѹ " l4!6z|PJh'Q k95+?=7L ?:+% bMeh,VƟ<ܫ'TJ̌~B+ξɸ.ÃX0UӅn] ~ZϿ@[E6# QVzQ֧p]Hۇ:Z n'{qNZ3KRT9p/l2O_=sl[ >U,HRd+WFRqZF$y{!d2eD׌4CGuNUR+ /gҗp1=/) ;VHBdaښh 02 ) drJCbC$}{zuYo}0# x2dy,DiLN-  `O<9;ׄM{')쌺LYJVH2$`4Ɍ!. ۰?5ě arEB(sYa lAagrY0,* ;,[fALElkGDa.,IÓ!Ɍa*S b& Z aNc@lTݑ!{<. $L 7;?dϤ rcz}{GcSa_6 ز9_%~y!ްgBܽ#X7.F}۱/Pz]L ecppG.ZzFJ2'TɮΗ2sRjy|e3a'kN$s_YG|Fnt TIҽj+y]imqws*鑥O5N( li~&9I3 K[-" uN?"+4p{_!<շ#P;^\7:t7UielOt!)cMj4(m©B{L_NG)KFkM+8$F(zΨ #z܏Ŕ!2%S4:hѫWxjjs~6LuLi}-X:~vVԳ /*T*TqC!&u@]VrE˪(>j"-2{`gq!Ѧ"( ZQֶ5% echʜɶ 29|h"AΘj!8#7S\nrڹaL 8q\YT%$;?VQR58gF'#kqNZ!4K.دѰW9$9 1ΜAʤ (y_˯Ew6ps u{>u]y% )? Z,Ys!64޲ab߈Ny!\G݂8"y+Wײ d&Rzy٢|ˌ 2J>e1>d'SSC)z%Z,YQfFܩvTGxG`i\4uMA&L^MqKAr0|}Aj^x&c0αbȉ ֣FLFWn&&DijdƝ7f%afԺ*+i4%KC='PVo\)Fc)_7V%5$% bJP&aUxkV#h_E>01<%AE,2SBP=z2VfpI Ccg8QancVM(?, \4܄N.k?5=ZDoԬ #˽ k&D~ڭ67q&/ٚmq*6N 5h+ݽ\Wٻ(<aZyvkܙWC4 ϽƖ'xjuW˸[HSV r ^SQt̡HT`u/w6'@-3:k=H]&M"@vkI#]6lcC2ѣS,W n,vp8P[|Y*#wZVE<w$kV]cy<ܘ&hof} (]/duWŮ1a`~9(j$l#^v́n7+lr(yXwdߕ4~shgz eP<EP 썹Li R##ըլVl6nwAP,KS%aaaa` 2̥.P[TƼ)7e1vZRXrT8G Iw~XuTP5h,QeO f?0ĶG, 33򍉞/Ըh`Ji[-ʺ}+QÕ)4#qƒNxJ֌kӯ,RcAzTdydu%␦RarVY$5pڟOe:[?~:%ͷf(8eƻ{=ÞpZ `/\'_.O_Tl _m7 <7& N<>jJW1]L5d#Rf+VuL KB(ǘԇuWT9͕$B?쭪*Y\MdE.w@|B|?zkC,ڏ-v:MMd wE> PR&*T -̯{%HdQ]mD4BGd$jŕ×2HȰ,`;JՃ`u:Xb׉z70)*N|H!m@28uy;9Bj}bA=wӕ}^Nj>[6!y/TƟ+;܇fZjѣh{0Vs:&:Zsx<+Mɨ*{Vo3Hê!0C%-xibBKY` b>cXVHi! B[E]VrOֿ\`t=jqEE; PpuR md_R[)YK}ol叡DW?ur=4d⫻i^8E6OR'o˵[9B;<SATܕ2J7^1ݲCC2$YQRT|rGW*?~IJhݶPP \Öӟ(˶9@\~䕐⻐؝s"hGѠ݄y B4oFmrѿ"ZO]}d8|7]bW{ & =JIJ,Y 'yfO3|ukP=GJx:"lo g^^8$#%4#M;NlJ ({|L;1z$6}4 O|:gs3v8?I*c(HeBWBq̩dE9Y3hc,_ ǎ!;Vn\si\_ “5S1%QZ^#wͻj,Z۬t,?zQO3uНS`c6Q\_Mt3GJ&.Jy)ҁSFU\K!G]fLL`ۛ3j Fx<çœLƔhEBǓEI!x{!b?b/65i,5Pp_$w:љh٠bvΜSowzeC(x w/DbrsF ]АtyU0eQÅ&CD+(Cڻ.C[ԥ>Κ]9K&U_K4bYV|s2b̼fyڝQeޞQ;Ax{٤jXNv,e rcD&tRCI.Ol69Tb/YOJ?RTNy͊sZVӫMzx%p")u[iBG3.sx5QC|7AܒZ,?$DW Gu^Z`&ӡX6owY& ;"F2(u+bM•ͨTڕd-9 ;;;؊Ö 2!_D뛦K{-8k1G \bxr ɾa)ɴ?C@ ڴp71>mb-*1\<[L Z])F! \?b= Sĥ q=XʾH& >lx+s\}A`OmiNE?c݈$s5w(^ [C0I015J׾?ܗhy'\ڝ&]Rm[!r/'Z DƄ6^|\H_A`Q qb~6M!LqD kj%1h&W` ~,S#"\64M2ސs`L6sxCNN&;Qgcw8w`~W& ԮT?[A1;מ*t~C1p)u6&\^sI'B`[Wwähѥ (BA!  (L$oJNrg7kSy|jȇs Ydyz"rL\>R P-^$)KElE &-`1#|0ȴŤS#ӼK4c-RyKg ,$ $ t~)Y7d\Kazcђ:a96Y.SZpˠ)0@6kԣBF:Y]S*eЄ c#rK?z8v҂Ѽ"8\d~_BoźI`>M Q~tD2" ;82ˊS:/-3WkzИ_p Dah.m+l%-UW3K€ZdhkL߾` ;5a*Stzڞtq{H 86 3G_+RU쳄]gH K YB2ʼnYXZXĉ%Qu%.;].S)'%K剦cbG;y0W|=xex(1U[+IPb$r4Κvӷ<ȃ}ݓ m֠vM`r?o(ar,6q~B=.?ԘpilC ^h@mq,]i)2%) c!!OL:ܟOcט%LN,RX`H lɘ讍!ʚ0ܑ %"PPDvOr1I[F{%%(vE̞tҴ?)zIJ*s& T0{"ɹՃlnir hd~E^)JFF06M2bY R#,7 r*{kۍyRRXVT\ōdx@5mi`˺g[Dj;pѹENV I(oNExp!رBR O/͙5aCt2n8:f0Q.KăR+zqB}SY6J֫r@$Jnx3-5 "!| i+>92s/ӟzXUHƾ;*0+|k1Ԯ}WT÷u? 3ҟ+ V~q~cv/9ةh#Ґ֋` dXz2\Bem D5 vHsm`+&erNg2QFDM"i7-M &7# *u}U$>j~ 6M>r h#$ `0|ICKT# {aq>h4>A7# pr2)e,e CTdAP(Ts TB{قQҩV>@% 4VN$?y&C0O}?R'?D?,GfلłC Oi2 RTQ^mI <}u@IZ->9Lr@ɓ2SHMK㥶{PKBNZ FmFcq<7АÁȡw._q];&H~JD|H "L(L2C, ; P!pV(A} _>-2MNa7 9}4pDs8IRɑ!&C*+8}0ʔ~ t@1$}&GhQ t| $}i?~ `M{\s?pLL{?kȨcaDS 0Ĥ'( !U8ج7Wun-/yfC}TUOięsۜ}>5ѓ:YYeQBJzx]/H8bv1LSic :d̚y:$&1CbLh-L?I9=n$0 @OI0JGeCuF.a?!Pԉ#$Q? LXiF9&J+kvĀdO,:dޛg6UÓ"qeV\^PϗX,FP:;u#<ɮq}kD:u]eS|Jz5dm ڸEc*d Z8 &czXXD\/e#@ƉGsxΦb7xNn<2e+JrS9 9C$Tě<ɑ&0Ndiv]} H<<,E*ӄ:&LR1D&[N arP:U~wyN|bS<"ŽLF3ꤎ5 Q:PF8-fask "ٸ7n7npM+r5 Kϡn9o'N#<3! VdG!Hp3 082њ|!቉"2L @]}u2n?c0?*ğxs g 87V 4&<֨հ"}"F{V23jUϹt%Zy&aGZkNm?N~ukUyhy$}:>YH,$1DPRGQ$1P|F?[=B?0vDH|tEBפIcJuQ9`.y +t݅( # ^yns7WlgSկN |PP11L,H{TAbVcJ9OvTrzɑcu<ȘN)$2q0Ű"ATrA6/''$"||r]TK KL^ r$%=ɨ䊄H?iTRT%d<ب9ӯ_N0N)K9wOAJa731g'Tq80Cڼ?Q{sqj 2u2|IpvDx rebe%lus0bCl-eT ڂZ;3yB &C++^jp[}ɂAI ֞+|dD2I J?ØL{G+.+a=ijɜa'!8ȏ%`gLYa^lcxذF$0ai9 O O(>HH}!*HA!!"e6 Lb)I'@ >$OfRc?Cm;).?٤u6"-^8Qu0_Q%'>lK!OBI $0$]U xtq0ru Z8š20LJAp2p>|ŕ LX{LJrt6>P=>ždo1@/FaY_|g\p'L5:cbn_C+M,ݘ$wO@;)? `ڇ2.NÈL {BQ7fH]4Ѳ:CSZC L.6E9/IN s-ݳ232mrVˮo TÌBd@w>J^C{m'P G)plެ3aFt'*1<%IaHbӟCN O{(j`|J ^=TKQz9ThOޛc1;,Ürd6RULJ%*cjVğbF$$̐_?C9ر1$H!cy<$n'mۉN on/iҦV &dNA0Vaа 'i*,V)͠U+rቖA!VQȄb"FL0 Hh8B 'TDbI?$},TIZ"C,r8<Rl%BCLO*MBw?Tߊ>*%8N*<]aџ|dmo/2Ԥ8p;I' 8#DBf_ԣ̙>t9p%Oa,h+\kCمTp^?D2Gm0G!d!"J#uߖ ^ߐ/9'*rAxqyRqaz$|>"n1)br`5?|lCt ^xs A<<90Qb^3-bZC=q,[WbIvEzy~Ck2VD9iÙһr/_u'ޭ d_puH=*(\h߷ႋ| =w59<>׶U':>$o;.1GO&6fJ>](#2p)%&#ʮ뻑4L2azLL)0lDF}k@2w]^S$@N<8L0r22l}Ov|aɇǗw#Q`_4,&\$†C$JQ>;9d2b0<2ӄ[G Kl' "]1Sy)we&?\%~?SSCj=;h`lAP&ڠ Ǖ.d:%V%K5bd.N4CHslrD%$rc)=pbhdAn8y؆xn׏L0),zL21N:&C [tu=Cx:J&qDIOLI?3UI$!/ a$T7Q?wa`?{8rg m܇&BO9216L !tq#ɘGjH B$} j130Sϖ# !L[d$b!?xtjsIE ȦI<]2C! FxII9)yÜw<3QH>=Өϯ=7f-7YnoZ~qN^z쓆Lrt $$3VGďc ҼGv<Y2+ ަI Ȁ0B[sV!?5Rϗ#pPb<mAWX7'㼉&EWUuW-Zȓeeq[P(Px1&cBhDB>pM}q-aYWuOuJg%nbC$JVy@UcV EbUcs' +_bxezr!,[d>&O9I;Hd 'FE=q1PeE[^q,Gd I=alev8pT.HRO8JùyP}#=y$Zm@ 2SK؞naKW>cTH&NYSr/ XJR9z|6A1b[rmKbD -HCH5-&C~v $!:c+c vHGcS.4B1{o"cf&T䉅)Ra(fPq&LwD7d0xҦG.>x˲Ea.1&<%b%TC!hp)Z،%">?rB^Τ^-t^U zj4Z| IO 9pP.Qq"X`@D#,a G9nXS$?@[K*o!*X@qcV!e0 +$RJ!<20R:Z0|&sBj})/JdEHc9QA&_+Adv{#EhZT2dɓ08( ^p%L^8aVBQhcx8vC\hQBw)rm,s'E$4p2TNk*9gN,0b2_ ✝W\Er_S倔BRiSUR[M uXqkhQs=| UU*eA}30qj*%'Xo닾병E~$IVCɈl>HHbe)ШΒSݴsZ`},C! 1`ɸJ7y`HFpmӜo#2\S$pi^+ Wkf&"i Ȋ&*>jRp0).ϧb-iuia8 \&5M'BKPeF:F><%)d1My"T|š0 ⺐d䆣fw6^ 0 0)AC 2;!1jEBTV L.W+B~W+dcY jkώ22 eHʹɊHe>L^玉p$. l)Guv#mqdz[tŠa5|SE#!:&B;*kc (4`f`'D)u/_܇}pOOOPᡓNL'P}M7TJzLdKf\yLpUjS3|Bf14c|-eȣ%&a/u@0 1^iyHQTT,IU2JX~&pgz7<љeNQDr>DFkf7`y4 PM긎*W ͻˏ lۊar ) 8v9GV[.&G08Ynr;iH@GJ#yqO"VC):َQ1Sdw} qF߇\4bEKmątNQ#A/& !%rሽzр;i EY;ZseLea8ʨ&E ?_?ibH!@R"?B* L("# ,@(J(𘀑X"HE UXXF-"!b>& `X!` baHXUOHD,ZB$A,AI  B ,@<  71$ B,D, T_E PV H"XX DY$P ݂ QB?`EXXXPX X` P&B!EDX H!``R!>0#@(„ ,,@@ D@DK #@)0 @ ()̒ PXRPH%"V"!BRXX`V"F%P!bF!`U U!BXFPD"  X"!E bB% BB#D))"?|i U bR"`aXaPX  D(B,)H b`" HSL@LD,mX!`UaB!`Q"R H% X DPH_ĤML,@@G`Pbb!ab*"Qa`%zo#ԘK}ٹ9 VXZ'w.$N0D8+)pB ፘRk(mve>d"^E::^0GD 8gE H'8q&Cpy-Gqe[I#sn"_FDעaKALJͰPւLk ''mX%䃓-nA 5X_QQ rF}J={Ȯ(p<^ՊgKج9ʣŁjM6y41vD3/mʵ<^NbaS N1KDFC m裄 Z,kP9Fzg]G)*x{|JEBQKbŹ0/uN';d9c] mym?*u^d䌄Y"޼b2 JŋDGuF%0\䌗qn\X-Ţm8sMb3$S' o_GӸܡڥc0}H$#,u#a-w\%VdJ<4._ x䠐Hf:Gafyꃏ!e')#z͸O) nI9Y[,bWG&9VX'y,1ѹC"TYwؒLL2;)#ÐFsI;Ry.P?*`(Ed+ǬN`Rl3z enpZ㉊s/48x~0Ccgd<ӌRx ݕ.Y `%RVX 23i!P50[6𣐄nl.(3% %dl*řlP$!y#8\yF kPR'ڗ v쉶Fq,G1`9b109$oW$"H։X7CL-Cf^D2 jOfdt!`7ҢS r$cY0ۜH2GQCA(Irx 0 Ȍue@Lw̑Y>;*߰cJN()XElS,LZǭN}ͣ=K lcڷ희Aꍳ'fҡ dj=Z >8{v3I#H2Eh桾3L<-pD"j:8K}gA:_FuI$g迚0ߊ~}'?G2_.&r: y\6.$Ŋ' z)#$y N5aÞr4?LX/ M-Ÿh.h/h$$HaQVpnCyv@cuyFJV9%"D"UM!'Xy'VHdGPa']UME 28 PAp$l|ƒ8)>a31bql^3+t`\A|2 luu ?GDq-]?=ۨ1 } +F=N1B= % %pɑx2ގ%d:EQT@ 1&' 0;WA9}f*@{ou3bX$q]ć]ߋ[ ?qֿeEN|G&Ȝ6AI߀v _)o|1!AT2t-/ULA!#QÓ q$<2EdBsg1}a*4|oȞH9' BEJo$3 TuƩc Jsrce2SאD\}E2Hj;COG<\8dN <0za4pb`G(fͨWիfQ:ܯ* b7T%e3eBZѴ8|/Xdt*ČUW2bH'a td d`݈$! ̌zIK@)\FDx]id#8fC2DV=\+'mLÛ@-QO{Ds[\kRCOM/&F)Vͯݪ']"zɮ PG+D^ dI;&}ۇ :w!Pad.G|ҝ^|kV 1S:zBCi:M@SK(%N9=KGu| Pe 8qh@JY碯By2rgYd !#"s62@ZV2& &{|>JA!LL`/,Ad3Fzl2X)|SMrF֛sDI|f̒]rLzD^L09 LKbbW=;BSYGcQ!xą+/^J 6"64l6;-6I| RX/;/efB4eaQ1\u!59+fIoX YD2 ^D>ݐΦd>՗+ `L0"-TdL&⠙L+/í;~(HSH;d2@L@΅H dƒ48pº3NFc'?U TZf[#^i!+9GE, ԉ?`VMW^(mP7 i%wE7UÃ{eT$M鶴OkAQA掄+bǝq Lȟ2YZVh%V ĠB,XYS!9q=n 4H_L&m0#?wJ#wjbp?= -&fRE:\$-\/ A&:/JjQU6_sܐc9'VS<䪄}we `D$}&u? !&$RM GOWzOHPPHEg-p=: B^x{Ÿpә* 3}P%,G]o7!؅VЖ &|{w}Bq~m(-`̾䶄S-"ha.azU;r3LȞjyi{Ի(z=2խSs0AQT2y*p(]eH#IMG D&`gD8v/Vʱa~~ZXB߿v"<>Krrd|gK{>g0"-%C6ѣLUP52(jM{,G86#RV><}váQsUx1%[k~}^N8bCdˈbLN#kwtq$ax3>%fWfVP@?1HXYZ @c%@~UD\ _34v蓵D(/1Q9iWWqwyG ˾˻N7F3P}}ώ<\E6Z6k:|0 2WXemːwօ7rAw@@ I}e 3 uh~~-Zz^ y hiwtpPMf;N.S>_5LmޕrOJ'N`) ubˆF"Fs)2x|{ǚuUzg$C7pŎY `t  L)I7l%?J X\"A?yD Z*?/c71;Щ/\q|""kWV?' י}{pz6 ]KMC _d!2Bynw%?7e!x,l4eeQ/Oc!)SmPy^*E~hƬe{Z:iBXW*vJV$f0ʦRٝn#u +3W4#V`>?8pE%#ntߝ7/0ķ`(Tւ@!a6 Ra L nJEX]u S.c)kJ%ڏ. qKO=φj͚eq&Rڰm]_\ޓjڸ^ST$&c1r*0SZ;5*4?}Y]u7'k˟i%=- 91f-Qe  +RL $d:v`[X77u2{KѵeYftUO2AghO!~)Ff S v-|bZBB72#okS7WdYq \rD}=6Am-*$LO|nJsGNW*T[7 Y.>YCmŒg_ ȹYNR;[8Ziii-4-4M4-4M4iiiM4M2M4LM4M2-4-4M4M4-4ZiiieZiieiiiZeiiivLieieeiek}y]ir}n7? _ `~B}Tٮ-˧|ד.l|_Ԣ{u{$ĶJBK7$M2q1zbY]V+J&N ޢO5QYXSRKt'Ych{ɚ'kF ffZ(w3QU!W id+%i ZȪB*3;TXbȄPK{]C],L2o{3<3יyߋju_s/[z|^l.}y|o|Y|_fw0ݧKælm48]] feW 4@M%CI1Jp%PGU9=z4w_[x\˕UtE"ܹ)9N+ fPT5\#_9?s];_x提e"^]OA!$IzC&_R#z(n{4R(qnE1# ?I|EE߷,24j~e8dKDyJΟ. n?PJlFU,CՎh.ءT3-*!.6ÆxrmŰ19ҳ`[gonW pyd ?R\FbaLQ 26[^쭤쾭y+ߕCh_^~6LqVs*֏9v~K¸!g!sJ}ݡlݓqQt;d}Li(/APZC~pa xjX8u\?jfn,4 M1!!B4)EjհE$cIJ9tdRKbVK+>T눫ivNΐ<_}TeɄ4-9L.osE, .N&Q(1t49d5nHK?!\l~A-[QNf'e\iK7y_ٞ2 K˥D6V6MLy<25Hoě2,z"/ ]C-ٚVخg~m`pĹ>B%Aኹ5:ԩ%1h)I,ʂ98+"%#$' hK*gw1O%b99rREEГff=zQ0l$!BbK51x`8׃{Ê3.$~):(*s禄:躰 G B|yv(眕# D%P2zkFY°kScj)Hԛ+sD%%Z`'Nyt9|3˺oVgO%g2\*)CBFsD GIM~}-[yB__I|hJi>/ܞ߀@*K}CIUvsy bګj .ֱiWdPr.! G Ҏhu$ Eqڱ;jlFxlm>Ax*y|2޷`-dxPBH8Nb}c5_ X#Q.d٠ԕjի_+LkI/]ߌuT>6˿+_Cd)T$yKs!?%[EA^sW7/]@W9;LI deBfn\28qU\EU56Sop/p{MSg$2LPQtou) Jf3A)¤%iʢ*fV2@ئIV/*O+O,L&oȔάLuM7 EҬBBU*v|50Ϭȸ8^ىOƊw-KOs20j\:ŧ '|#[$p 5 RR' "W)Zx OO۹-ɘBE>ۙ;;NKoq}e.FNֱjRM㫷.x'IR9M]*]:tr)J%pb%\v:Aƨ?~yFL6.w܄ʩȝ(8guPPaf|Qa34y~0 02X0 B1 FCqXˁH ٦8&;}ٮ shhu)Uhԁ >ܽYeOr'BgQ֨z*LJ4C#(.SE;jƮMͿ 26MoOĂA/Sm1]*޶k~*R7v/؝ѵ:Z֕RcXRmj|^Zq974$( 14b9c1 h8OH tSkc9w _e]ь71 z1+ ;11 Gb 2f3 uKk)FGH9Zug~82_L`HahԮ&L^hd"@LǠɓ&f* p8##1zo7Bg(z$NlWqxڔ-p 'Cv }abrSI= 3PM3؃Xs/2FB] 纥3DTMeGlD a6;uoÿ3BK>Gag6hiUdGDa<nߍbkQop̱'u ӧj73*[5X)x*, rE2!&&ʐ j 0d++JII_J*<މ? }VZ[mFf`ˁ:¤@ KkYՎY8Y¢RG^50QZ 턒Pp7V4Áa-0BCo|E<6#opF?uyTiϾƑ%1';*d2A(q4h˫EB6@})^y1%H*/M`ˎJ]-nGJL2<2JCq۽L#?٣lP`ܢ2]%JlZnww4q'>w1w? kyپIXdbiRYZ0[jr˗.\]tibIcC 3?f/ul^UrLg2g٤9O'(Mj{(^`:fL6K29㸆e*+#2U {:CY1Oy?bb4̝>r*w&I9əѲYkx}z ucʽlkRrO_ۣj[N AC*C8EjAYǿnԦϥ)zI§nj |at\jj}լπE C8"((/lYR*dt_U/5#qGG94 o}_խʫ>2F GJ d`'ԇ\?ɩpm_,;?놷ey{꠮%< `Xi{ ህHp?(X)HB5,)ѐ!zBdY4dإ2E3_8Cj1Hl\8 _oo9Bԁ\%1CZ(`6bݻ0<;iά;쫒qkQwΗ[/n f;*dh1!FNeY7{i( NNɜfYܙed:|75XBJ=iS٨ iETQ^٨5`bt$kO 2חHŀ>?c@ 3%68^ ߭;,;"_{*/Y?']$뫓 ı2dĊjွI0cf2d͜PisD;RoX !.l͛\[l R !@3Lx0bIt ⭎6v)ADނn`A"N,|uY3_Ig'oH]e3(ի,S ln W0Eu+9v͗HBңXUJ~>0 /mkm>6X[Rdu{.4bx<&I3"pxL!+ԅO`L ʜ3!>`e0&LRtg,CVBd,ጼJQFa0ZTCW#0lɐhC2`WVNavT&&2AE2K .l_a qC$)xJ&fBlpLQCd/`K,q2K@vf"+srI*EAI4; ZE0"|tpe&zW cTFH"Y02B-Ubh,X3n3fͧ͋2MiLկ!p9+iL*:` d$2$S2A2I]d )z eXhBB B$&6Iv22rB}cL3% RABû 8Lh@E )K}UX 8``WFHa-aYk|JC=Lk^̀d @NA:d&H dVFBE&ImWyà JAdH2/2edȘa"SDHz0$B`L08IUH JZ3%id(.!#ČE2k0 `D ={r`IGa0`K\ X"Ty%yy_ox}.(vp*ɄPORU8'սE\*:h$-VXH$կv^鸚Y+F׫AQܒxX'9B͜GK#ڜL{SX$LZ:1U)YQWή0^l\߱blrhr~=(n=&ddJ_lo^ZL9,K",r,;8[Bд-lQa)z=醶?l3˃ B(#Sr{OU^o>=4;Ց1/]fpj8tc5U ZN S$Dmb/_yu5ˏ: ?zihvDXMi=?flji9[ Y"ϟ/c81n_{Njrb쐾+)(}70~&c"Rζ.y3A~k ?x.nL8{7MjʑĄE^|R۲l$:OXu<Lq뿯 #K_0D (>)OJn=lUAF)H+G'oTNd#M,fb /u㜱J&j=w65SڃLOVc\^M8@˲O 1 ޱ,xB@Ԓ>{&# Ծ*T,\iP&1(y_5sOs!s~nF nw~zO_V$rN( i:T' ՊYMVsVGMH$cZKf"Ґ5 q;?ސޢ|;tƣH77w!;*3gD;J_Oà>ÿoƿ}C@{yIGnp60Y$&RH<#ۊ BT#[%ZW{yج@Љ|͋ѺUԔ\I;r. YlHjk`fI:^w2zοbHLb=pG?*^ GL ]/JrA0J3ɜYS)R 'v yDQʁV Bޮ?*p΃JHQ'EOzN* X` W ІLN![˺FSdC8S_ sBCK^]Ӹ<}DhG/901ڇ`b9g UUSuRF\QJ:yy_Sh r /.|6@;'ydRH==LBG1} o۶Lwmo@=noB7[I+KZ^}_r=_6%^l-(}tbAW-'9n0IΌd'ͱ0<>hD]ߙkWzFB_: @ٕ0]kr2m?R9עn"P9kέ" 3\dzCeի#!$j6FZffуfh„n7qT!ǓaY>֐|5J|xA:1dG؈ i3:Bol@+Dq$/Y&Aޭ'Q0"Om0t+VO  {aޢ^8iɚNP՗oOQ7cT9cfWNgih҈?)et({1+Uu9_064Kn`NI"6xܷqbt$ 95*_Dhం.$)n/D[H; ǛE>J>Y׸-&8G_O1o+{I$ܓ:So7 TjBhhYP_~±g~uw__R-sٿi OQ8 /i*s>Qz먿6;Fi([5/j &vK'TxJyمtChAFjKՔ~J uK*0r]B*1x Efr퀞 q# Y|/`鎐aD\gHXY~̾3A whvO\ReB@PVZA22- BR)4h2h5jcʑRZW Bw)s0,:Эϒ}[*P³~،c^3UI-DzsSpx>nLtK5&L}<33 A6/_coYtOrl)M45@Hpۄ濍&= 3ٝinQyNph!{G]CЙ̼w[`1 M֔4qZ;qXLt#CE}Z~xkls\,JulN|3!0 bGxe z@m@Ao@P,`cASB]c4W܄8{?ݤo[VqNZ|_xei5' ֫|KAPY&+^AMI\t.dK/b0`HIf3hLu!>dVV230&);%X-oh7!qRlAuG-F ,AZ^&s{VX<7e"oHv%LZ\J T8A/OɷtDe'[RzcEo^NJ_ҳ3| 8T[.\^G:t5ɛ+²Lϯ~uaHGO|6s2xbR 1TĚ8)!"h$>9˽4z(Sg!ʤL>[foE~vEsn&v6 RUPiʱP$JE#$N:B V,Xj܊bC AE1jG!6&`[}u'DO+~(B~ues,x[~chS"r5vM)ps,DB r$# fBLxR;(hyR/|B+ݽ6]4$MؖIZG\[uYL-liRuKFL?6Y-鹜%6ЃApPs'۫f(xSMyadUGbHe;v!:T#WWa(M7s;XR֚#G꺯vR'oyJB3/"3xy(5?!ʊ¬RS+q\%@T-%k%U/^zcCTwK9U}G&! pvIUi!UgAx\ѐ`SZV罳ʯeنš\|KoS!jrDAxVn`g'Ó!<3 6+NױqϜ;_i9C&Ɛ>Rx|/<9bTk `COFT|zL| B5(#_:/#t 1N!`2÷189͖6c`8qG^W[,L۔"|e+kHoлh`cS#`=o9'T3z?Qt)|q!dLnfBcLl%6K!_@4jA,tgMiQӻ,!gys3gJc״Xw.ء_*~myS ( X`rJDUSfM4(ĕD{ؚh?Y3i~=pU_*@'ٝ"^MM 2.HIfqecsYRA:BLNoDÆ[)aӞ!0Irp(^(NGhظZtm2</7Tjٌ$Mľ^V`/KK F1O-FR1kפ$?:o>;1՜=sp,dE0s0$9n|YӄgD#=>{ZН!;q" A7`IBW a7pVITp(YZL䌪@z/Wz@nL]K7jO)9`ӥ<_)_5m]`̙z:XREBSDB5QII -+R-(,3u5VZTؗ $')捁\j"e !*sQ'xMO[XIe$坠[Scs]ֺ:%GPbf|YA{JוBQ6%p33,f.r[Nb ᅁ cW zﯻ <FpfckFPqaH>=MTvSg>=oDg=b/}ّ(a2|])"a. #HkLqج ѶrbR3" 9`,~Lvh t@j>j.] @bC"q"Ƣ%RJQ'S2++ UMiNdSϜj@ R )My}_r[r30|<$ǎZ#9B\gw{"cӿoGty~S*t X.7ot Xt%q& 1}+HΒu13xxۿw}6Br'qŽR\|>(_ CqvH%BwteptӃݕ(.Nȱ깝8];ȅǽ{V+@=_6yPT[`yk`W3hYTZF) JU"_U,?4fc)׭'!bEv/rK:} nĦ(S `xYN-4an42őBd+/zcSw-)Yc=⇏}YdGte\O=zT%8ضz*=VKɁhE$w#!|f^;WѰ)OÂ*Î6eQ@oON`8r K:A?r9d=&c,&P7aiQpe\E&ƙr>v Sو$˒<3 ^S#D7j[=!nj'PT" 貸,Y\-\/(vnSzzvEJ(q]堫1ֱejar_Ia׫2 dTi2ekV{V } A$Pl(&+s2^1r"#NeKA %=߿本1ߢ [>7C(& dZ[ F/#wѫVQ$N{\}Gu\E{bF;sy'2-^pOH^ka4gf.J"xkљ6c ,~ x&A.O= 3;#C`WIq?*zN6mPɗxH~ e {¸,n> Sh|&͸ ڽeJ;#fWP(ҡ0QrwϚ.<&?w(,\Szo x;&MIAO(NU >+A|B0G((;Aq3Bd>2TTKڽsg˧fܡnfe"T,R06]nD  2WI3*."k#7³<-b9\^Q^^pTc$<ɐMa%ܑ.90Q!4lRlz nB ٵ{"!$Xy84-4%`iIv;f{HeaaOTuc-ψ01G2͌[; a+q.In{ӻ͘ Áŋ-L ̴nP fwQx&}ÆVb{z=y{B=u}qx9[X]?O^&["M麾]BY3vv&EÄS+.5~A=:]cwĖC?u**+Qvu ZQ)LE }wrna[-OĘ*'x/ &]7ڇniuyHvȎ>NnGKRwQ(+yG W[_jPd{o1.g>]J  D"LU|6mH~ J}weNyoeXj{wSE!xmȞA 2,>n:G**/?'(<(mI P@2'eը݇u(]1$oC@ӢkjkkkjZAx\K*n dėu,bLaJ R ~lRL5h@ޏ LjpZrY,K%d,.V;t˦YevWW(7Qv1K6=[T%l'}6fDBy IV1m u j9qFR=O`)iqőW1@:z{Y)y(l!.w}20|Y{쩴A4i% ᧳1bfjci^]w4!R*f6OEh9f뛓I҂E8if='N\'+~ZuI }T)k.N()$>c&O5>gf챊 6hT{7>`|Q0FL_^p'5ʓq~rӝj{˂d`4vturtxeG ?>m cǢy},ظŋ%Ӵ)z(_M?о GVi%ׇJn1A}Ģ`3F4p邗&7{?؀/~ ]7 c-9g!lC.192~MQ'+]ۭuf}qۗa#1c3m8\aa(t :n>oMD~8ݙ&.(ґɐ8d%Bcez־3/Ⱥ2G'2kX"MgӖ-qUՔ/[\u؋U(u7 x1Y7P͑CoݝK,M.f O cA yFFGyD`s,W۞Kon(n/LxΫ 8v!p7A˛!h4gG~PK}DsxUXv |%J({Rp#TBt;d6܈R],")r މ{ .҃nl7.R^4c:5eA}N[yw>M |\|ȭ}N3M{s]i)[q`yF:@K U=PX=!g"8<.ə1⇧ K2Y.f1nPsJDn&M2 !XRHDրėx`VfEwJ? #OIl[{nݿLvYu6 CH% ߾D(G > j?bld\uElUzJ^AsAz+TM X-I7V,Vql΄ۯ[Nq1+D^˔I81,􇴞T,pSzelq^-CJ0thmPMӇp1 }Y$66;p-/}-Г公}1@ټdhQ&>JqBwʚRZ9x̚ZnC.)"t5vPi^Gh&NZҌMr8 }0pUFSqgKC3Ňn|.w[1}f32ēseW>5m Cy񗶌zJqH;^U%jz220j.x3ÚFs<9)V޾3HZ璅t\vޟ6#J(#W=TYBԠȁ8 <ĉq5T?;tX?׋P&^a4~;El9,/aJ"C5<=vawNwx1vh.MF1KcTP!cptM>(oq"j19VVPx7=j, oAEr{^di:;Cn9Q 4-gzߐҀ5-q\'8X?ou7Σ[pf9u9mxáo<zmSE.4c؛bwZzjb=2ͽ:daQ(P3ZuԱD'oV/ܹa+Qf7ŗK !舺8݅ezN+_daeK`IoK~L/ ~Uu[AgM< Jj9?ht;Amx4 7.Qw&Px񇏺՛P {¥xObZ2#z7vx;ǂ<"筴@b<[8wa{;I#;bo)r;$vSfBTe΅? 0hd#1ٖ""#4 $ eQ >5*HFl-1+#bިv=Jͺ?[\:ly0=Nᴊ+~^WAąu]d<8ݕOF@c04qKG€xgɕ3tQaA9jr7Gl5~mMwzF9g,kNJǾ6K<|Xd9C?=8[.ʡsXYK Q 1/$&-R*|9Rb M%85ㄽu-0g[4Y!,SQվ˄̇.#;EDn3nzJ"7ʴuXf4sN$a"R%4l)٫L(f$݆ K <(~i4U '0ZbO dSJ ZpQ] YI-w6z'2WOC5sY;X&%+SkT\!%>=E+,g_XB֨=sm}|I(g'cNgmb^҈vAER6CAՖ.=tś;Tb6J醪t=6Q8qr°T(dc7-R qGP&}$/5z&,,E@VA5IhXd)$vX8}g^R6CcYlTՑ,s56p6 #*6zHu"v#(m.cXRU2+)ٛ5UN=[LS5B+)% ȾZIX)v46MlSEUYZ طlXD`;,Zh%zֹ:WwCS#?)"'|*Z*^*K=3AJXQNB)""6L= = KvL%#wz\jrs{A$vxfxn_MToiu^MVpU!T:ex[ ^hHΆݷ@[Ty' @Ņ'y?S/ znՒpٻ]Ԧ#Ls QTج "ыz1ʕ, aJ&䩄2 r/cY:SZ\H6H') 8KCXIԁzSUxgek(xPkf3Z ].z@<h;aIA"=f Rw?lj'^omr mӎ 〲Kv+M$;"I}8-2j%;ۢ{|_P2젶̍}.[ ZtL"W yN5Qg;]Lt\-]=c?y>oA2I 3F88 e 0^!!$RI$* Gt W ~;m?Djm}5"JHN`tGF(=hwe_\2Q \tΐ^xW Xk"AoPx |'ny=퐣SmZ~ADPzۿ=zǔ8Juά~96n|Ι<sAʳPei;٫7˔m5$?a,}Ę^XgGf( -ڋR+3iꚄJ%ra."'?l1>c=?-ϧz3i8Pպ꽉?grjVNORX:tE AMN\SjWbIR A}Y7$ =0G|{(+crY*<bzVaը_LFA~YT l{CbC7JdOu_?œ}L 8s ln ݄: ޞYL 9[Z|)!_w.^֡AGtT[v`\:CyE%lx(TX%߻R&w^6yџT>ٴy`u{D9 }\"ti=Nk.Kԩ"Wc]!#HNB?en=NP-He ELM/ D{OȀmhC"9v6Z{_vg- *W ԅˆ RJ󍏼W9Z527&0JŽr mwU&Y*%H.}:X$3wAN>,UBEsvi9><`C 6!lUIp9YG뻶ٗ|w޹2VB2Z<gzzSԟcoB 4CMoɮ֤SVC(U~+/N2/Ruzwݛ2;Tư0d/L,ȭ+R%Jh㾵^mM63 22|bg@SH셴Ki'*⮮H*rj T]pCґXI VX^>݉%A/@P_v[{);G:wEc7oe^LGy JReez/PᎠ/I˷7eU5U{En #A,@"w`@ M?@Uo(c\(ynI7^`yQw7 ƝE{? 7)_I?䬕wx!xUv-za*!"[jsPgyP#'_4Qa++9ܑzF(O’|&|-)#({@:MФ! 9r qIZW-8[T֬51ph3)Hfȯ2% ^IR r9r,D bAq^nW#>z :ږɿVoa[sT%*LmR` be;rlIV]J%[h O' ڵpbrJd%  -`Vp b ObHc9k9Ҙ9o#I.e+&(v*R'AA5kwYcqy/h)P% x餴U;polL_OFme뵓Xfye唇8xVݙx1rt'TW:TVsabi7]\WW$ Xw,έd$I&Fa13 <$OTj A%vGAXQ.HM^kaM#E9"A~EȺcX7@ (Rn}lN&/Y>z-p^qK˙y&hrP *L]E3^f D"%HgGݬq릍w Gb^pd?-Fp9ISj`,rO;c;`sxuY8Q&lO+dwb6Xpkˮ2$Ir=K 9D#RflhvuX&@9T!I3 .:y;% &T?/ދ%_L4BC0f%8L,Y&3"?;ckw }ncz8fw9ֳ1j.o*{ҧD1:ME{m]q9oJ!,]u`7w^oZ A%#b9e8O U%=xC05ណlzZ ꛱ {PdGhk#" <ߠ]e`2^%,4yAA/u+\v#]2oџD.H4QЈݫXhw HP#OLA(` OK(fYT ^+1],inP-$`)?~\խ;/14tzP=ሧmDW&TV*L?ʾ(*- ]&+ڣW==Ɏ C^n@F+^;kGpﳯ W/_pb(3;i͘3,gA"K,+1,b-E̺l ULSyў'TZ"P{7CWh29@:X^P-OcJ JS JuDjtnʉ\gTUb3CjQ7Un dUD;]WQW/ޟ i?K=D)^ypy%)!ex#W=t!By #]|t /d_gzE㺊*NY{zcKHpp*5J|-+u5U{0Tp?]l@ v1%J2Y&sx[/0 V҃5.äBcܠXyvTMml`qכglqZ䤓Jo|NX.Ȳ%r8-;r [XQNj N̊ceB9MЂv-X0 h@lx]\Yօ>a95b ]+ 3@O˿^kKM05 ȮR<Z+zTSfJ AJ"o 2Z9-+3>lT,y0p @ WyvS"3V2gÿd 3gRoviY mu4z/ ҵhL3\|C 9KDr]q+j@HmA!QTqBtDҍu$Fj3!P~pb!.\Y 0fG"FMFSS/7 lcCjir'SwMKH}Btуzlr{wE*2dnpj sxo=E_^Ly( ?w>7HP^k sxe|z]5o;) rLB iǹTPI23^ia'# uru 5<{d;9ɩG;[lo\߉RSQdSgښdcCگ]=⸒ @IAKn#tO Co9zhq٠=Y疄㑝dKåGǗk723TqY,}~Ŝk;C\SZejհ %c Z1(W0̠v&q'1"#]ɫL|cvvs>Ǹ{px7,Dzxfzfx:d<Oh5nZ.W½3yڦv7ʖ Oì z,Ҝ"1:3m`CZ,j16,p*NjOA=+V wї"IcPo}}c2B@V AFY@y.E"UI4 _{T~B+udR~qLI' Z*x.alcԨ)ڕlXf-Ao(H'ȟ: Op?1o9E /nٓ{%6ɅcDX˖%e,K-O~"ƣ(nhM)u(Xq4N&ۉq?6zo>zl"u;_y㏈v;E̲<<-(ia+Sff&yY#j-XaZ+_C'>R7{ -*\}Ts@gcѩͪ/5{`"˃j+Zo]-p8,sKcZ,tї5/(!D7 +XҞ0!)R =8+[KIO|b ?wUYzt2[*hrB쁸I,[ ۍ \iaq_`?bMeRAGhD>OxHa0 N;Ez͊oשV1|,<_6T&=SOߨ\wIFlRC3jK٤=MdJ\<sG;B`L3%M J֠U{aIʋa"+裮5җox lW.!zP.+8m">4eIk++!\ݵ, j J=HV}kBΑd)FT "r׆qْxM‰iw)f^~k &s2+,1s^O=К ?Æ`}Pf5 ٳn 5jjWKeG[u_d],5kxĉl5FaՊF(˃3S=]Ma8gZ]EqԹMGMI2LWKm:7̉F;'{-=D(_6Y g+Vp>)uOid:@ΌgŜr`Ľo=c9iJdY^[.BØv;97d⾉~yu_0$y?!>sq%R/ ĦkLR0L' b c^êʪרL|e$|2&vNaJ@~;HaDD{@SvU! waPZ\)T DB?f?ń=|vmvѢ3B} k(wίcX$AȱOZMq1!sx1 B["'(U`%2=Ć&@xETK\Y"t2?>W?hf5<5$Fu;ࠦ (#+Oa ,b-{Y!*Qrpuhn[y,277D؃' bv}f2D +ME7QvIZ&2sʯ #'9"f6FTN۸WKr+6 < LׅA6&~r!4ɘ=6>E?Rq!ǜ3ʏ-*œ-YF2pm ~4\R3%8+2Q kVҳPbƧ M{(8T)?/3εX}2Qdq<D+l'd(P( EKE/HhIlMFcaP54{l6lɶ y G5=&ӬQ:/^j-zt5LMZKdI:+`=JNvNb&!~jWPa dsM/ {(V;$>{];/lB{v"C嚴I^ʆb b< U[cΧJ{ DwXe.֢rGkz9 f5a[]2[y{9'VA)Pk('x3ᨆp EqV\ RŁr;-TR"BQǣJ86ISGB4CTrA @2330qY!7<܌&LSA ׯ ^cSYBa0`X¨`1l ˑˋX0zo]#txwR)Q!?]:C**u 3〰Нg؏wGRyw unӠTJ#AD#fxow^3o@iFKZUb)Ө83<ܱ ;EAݻe!fV^Hv<*j]];v"͔?Ak @I "c|%p&ç0*XɆ-Iү=4wnߎoË~!X/d$`Iy[rUT?-3>ư$X:(-,p:1E]K>fl`/n/|&e 8q8p8` FUeEZrQj1 M51Ya`V^|MG=84zLaH`ؖP4£'; R 4@=xojӨWKK<2*_Thf_<;}LNXUѩOSI~oЭ U;p{p:U* q[tp8Q^SP=8VeAYzG;/8IaĹ}Wf^)9 C4|E9PzAoXU='ܭRXծILLZ.tm%]%/&:=-72ڻ ݘ=הMD8 j?6KM`ipY#mG1(bE!+ʙ^z׬iC*ڞb(mrid †ɠ~־$H#T[k__`Xe&YYXX\} a`DO0~Ky/(&ix)5[;8kSrWdž}e:8E{q%-Eu~"X>]2#Ѝ-> 8=1PZFo֡Pۃ.KsّWTweҏGk ذ8d c3Ķq8qh/u{+O0XnPE $UUA$*֕j\X'"Y Y #ɓ3FRa 0θnñ#cCiH6$`gCoHs Sx燁m2+ Lվl'`d ^A@C ;1B>?^Jۛ% ;zg_+?n:φ)N`'qC+ x_D¾0-f֪+֧hz8tm-:-WTP$pIN(mLIl9F`Joʉ+NcFE7 Jzu!ߦ,>"vx6Ș-\p| o)#Fh|(D IS*UV-,bPEް%Gq&C&`͛I&F,s5=bBcN:Z {%\'߉7Mj)jh`9LgFT9?sYɘ};Kr-{$Xj k5߹5l|lₙo%فjKj?@VVB`AULR.墀]J>[}'pgū-3m^*xm6&G,.a]6  |}t~Dd՝9sT{f<`S"#YwݲMS;r` ϔlWq!]e_y{F. "NbCP*yޚ\Jf@ʙ@wez%6nTVA.q.s>}|GDbAeOS BAzh@6l21Nl̳7qA\lO#rqG}\>puSIp<&6țu[l,%C!5)ȵ|U8߹yٸzGĠ9Zr:@W,p{8f (FDR$1_A~JԬ-`88@P7}g̥Ek ":=HOu!-\ {hpr"}Qai'#hJD(zKh}{ma7E ZOtG2nTU8c)].l܍yNBT`PzBUeE qdPkP\n!hvuyC4=Cq< ]z^~LXe,h[J~O <$y-H.z~vrBx͆`I"JUn F䑉[6%[6w7a?1DHe庣VMф.Vl.+'H$;ϡ!Vs;%傁aX\67Zp6~uwR/j:.k/DnwGjs1r A(=#tBqWFNR#x%Cz8JIp~ i&*Zz#D7qD+@ɼj(7L"]6&k뢊D o Jcd/TOH@>*X*T'4 f)Em|%.? ђhG?yr6ZߧyQ[tGIɰPhEFcVFVmh38pÑ@L;UdzZ%?;ތEc .Ec#0Q>}eTi花R9"mT !ySw~[G4=X+3?6)Q(l?|ꓦM:\`ʂ,61eȑ aM2VV"}0mm@ξ*Pdᐳ;$,‹ Վ@ªٔSט!1˵Pwz-`@X.!έnȶ'i{? ʼbUn_ r ˚$39ƒU0a *fg3#1\"ܳdcX)5泅[ba]%`wYLVO*(q랰9щ ~zB\*98Ͻ%Fne7\T6*)ZiBJ'GLy>G ;$Q"n;SE[B qsSX(o(tJH_pV\ ^l'Bi0sJ+ЕCE vlN.˚s@o#+Mۄ}0 `_tj2 6O]@Oώn,yblV۝ZA".LhopIt!}tۡߒ0oS(&cA*<ɫ*b-1PN 1xa<d$)VG#B~hͽ)δ(@PYFl8Vm05fWg\5O TU GjV0h usG0+gY@g=)FT #:9XB}]b+Y-7m(0I 6JȂ&):m%0|h#Y}oz[)0)5r6N sQh`-w΍OĦ1׶_*'d++y-%yx1Čzd6m̢"艱/QH9%>G* xaJ,>ŔA+_b',y: Ca6$2q~Ijo2C A@Uժ8bRNX RhìEJ+Eճq홟sR ¡Eh7n8A"@;E{@#x7J3,e?ѻ5P FM)$p~OY-!c}b vbU^.ϧb; xuzf9+o3bDq-&Pkp3% tt@}T3ol|-p?){ v鱃Ip= m S;/m;:|*U.v<&ԧ+3>ag=qWɈh80v;qB+Aq@Rb a, V 0`<;fBSX/S)chgeka+\,7:G} QH;C"xlZ kn l?(3]P&FAO7c t"z.Asީ6aXΏS&}nů6͗#%MLעV+enFj3<+QC}' ߓA2xj9H<ҫYL,˞֔z8ԃfBie)Qp[iI%2ZzW[`RBPf._cy"\0tM{;wV+++t&X.T(AZbŠj"Pybh#_!)u.V4sMꨯ?W⁀FSPf_/#8:a?Y{@ 4Š0$@w'W\7%R> [EAۿwZ(" ]IW0`qP.F#*k?~t?ܔCr=lX6"^mgn*7~hĎJqW%CVVԷgQfndOˡ˜ɹkB[<ڇ Pv>_ fv>/y2\2#Yu/N!DpZw;ʻ v@7]WԡLM ʝYWߤYz.FC?Űphq(fHY,d.\g'M`BLED4 |Jr)!Լu98d;Ï s쏸Tes~GHPq>؝¿ǀvW'dOuj",Kj4CKp=??=ۚ^>oՌ`o`av#z{\lUPT4Eqo!R1xfȵȧ`@ P&6" 4t~W 9,Gַn}wEd-i5HHU42YKa{œL p:*QWk37;Au@ŽgtKNd* B9a _r1Rp=+S7΀js(3yD~h&nf S# uRZUQ۪wx_AH8*Ao.9]Qi6U;y0C,X Uy -[ڱ⭪$)B}/k#=*hK YMq ǜFE@@G_\`$[Pv7>=`s8=%r bo?y\ 5l|| 3 {EV9ws%h`[*E[OdOxF-/9LQ$ˑ\[\JY-Rm[A_tV0a ]]p+Euuur:@HH#NP9pmN[Ҁ9ݸt:}r3|l S'bC1B[mBg.?Ӆ[uT덡x깁"T%Ӟ h!S9dSE`Iupp}ac[ s Ė|m,b@ &\Ffz'mJS!y$3lQ1~\N A@8~l-E ޭSZ 5<3[@.Ӵ%OjlhO-6ŨU߉B!ɣLtRtN1'BQW(rukv2?yl)<fCDfɋ3(Y)^A-ً+/KY,Pd ~D)qCDbXr ~YqlU1ѵ>ӑ|CF߯!'3o*-1cFW|㣄|[Wڂ7?JUQMr %8U!q]S|jP4\DhXм*U@AṠ^ 91$p%*{˂71 TaՒ?%H@GO/hK8A$z*Px*E]ˣ>T˖D5H4D/Ul^y9ҤFQ.rk* (h's9b 8D]R64gxUqזp1'%~ZϠt+-dVqoG Ky.~ڬ A1TIH PwlS(%h[]˾ hlGx/O*⯊>6@zzAW6[sPzK,yԡtݏT30Cл .ogUh(`,NhsEQ^ 0"8TO [18S5 {/Kߏ^Q@a \W&]3() L\`D>,Olm4 3KZHҙ]E>ecen8+e1\WV8Ncxzkyv/ ðyGOtP<ЬOߎQhx?tל~?g~4Њ2VdiMJg} Zdˆb4:r؝ ${&bSeeQ8M ]l_4h{T`?QfRx2d0y/IS%P?{/#8BNئ4F^p+T0Sϭk -ְs0Bt\2([8g+ȑ_$)Auy;qr4 7QT rzmj^@r=f1D[?w>e,/~$3%$fC3Я,-LcUY_aj\`#-6^ԁ8Uz @dЪ /6v#N)3B4|,bߎ03Xv qq2XCˠs eL?Ӭ c@Z:^ʯ6wPU{7e@8s| 7ET:" '3tP<٢?.]ۢTJ_fЦR2}L:w.^4?^ vt'㕵Qq\#&6M{nfA) N;z FUm.WΗD%6y2 ̶gLktiRgE\!N9`߬Ǘ r\eOԈ:&8v[ﱗ#ˉFf.53) BL,C!f4lmFFPTB1iY2"-{z] g/ާsUxJotz&QD>~D x>m|>SQe]9i썢 ~|$q, Fw-sxBu{ LL^0Ł#X #+ B},5wx7ѢSۙ`n]H#٣:v4a|RF4:COG̓Vs΢xLeҏ:NUI}TTGɗ%^BrDI DAZpp25k3BEK oBʧ{g LZ%:~bG nqAz2jI|#eE  !^ W,31y{!h 3g84lz4Y2c+ D~wŲāy ;&-7_C@ksyڥ8Q?S( d缏 F\M\ '=a +'ΏQ%>[,IK-ɼt -i9E 9^QN[(u!h8nI Dq3tR*$Iš5;pJL9jy{C@s_i^ zYhߧmC}Ŭv%5y@NEbI.i12Hٗ9- _E )bX1ź(ڬHMc#i=&p"1" ZYը\) ;0\_Ү#Y]?l=J, edh s^Zȝ{qyH}+ zL&ֻ}.C!\Xb)1_# %GEؘ2~7;lL*>Nau&*ΥpE8V2kEAe֢Ta玷s7?L'}. 5,ZhJ##kD9n#21t;5vo'(5{$i&8҅rxXT ZD-ZHH~#`ɕ"΢pt%L\Ќ10"znǎwA&Ѵ@McQ F,Llsp0]UȎ4!i h$`L@zȱOO[oj/F7&ڢ3/0Q XW]d]j[x ,?kG񶎧[>aO(C(h0M؏TjacV܀-[j2\UyA_[mg݂\-ݽapt#~c$  (<,M54K I!c7:`%5bp3gF<mF&皎Y U&T'J6a˾1hHj^蹚Gn:12笎gVHbڷ݊939i;۹4Q*+B=g!00(P778j*ggC뛙іX/`t]O~W՝@: =䢲7(@q"IIiSX)s`=H˭MNg<:.#;GH/sR ©<ΤV3][-Fxd[ ]y._P{#XIYebdlրwaQ(3@ \ (qh9wMp=RL`1SS)T*"h,`V̐\.\ȴrZI).5`T[i1<; /D ^li95/=xog%r%rr ;tEE獪 rO y|v> O0!jyȚR^?F}xFyX^gY{Ȭ{<jI^')FqW݉ޅn^.UH`l`lkg J`]}-]*wXPZ&T uwtXB؍&|ޛb g5 xh3/c{h4E t}n $t_ D6T{+!DF 38jI6 #&6lٴc6lfw늀k6sW;gM]a_Fi [Exc{x{~O *Nj6ŏrآ ilby]uQ"Xնk#_}c 5g#u=J*i%U`iNz{Twla Z>jV$n o#:b /cjsEffqQ9>y'F ,ZaB+Щkc}Xٴ󾜶KaR睋N2/*ZmYXS En&&hU ¬!'3/p8d&Er!^ݫ#{ H{3bwP d5oqx'289TV>TUƨlc9.HQ, /FT$KQ\n jF4?eT(xb_0G pDĩupȃh⟶XfOTյw5OՃfDٚ'yioHGvDEѼ, J-A=fYe09m ܝ޷mJ5 14'ζ.Xe V+0,k ^yP-v<ާ+"dx0 ⭼nO8v_1UGazSXZ, D!x$QԽ  X.Y,Y9glU\\m5 @%\j*BLҀh ۛ*?^nV0Ox%ˏM5Rݮ¨DtlpT{7:"ua3 \ۂEI?‚u&,;-R.Ŧv[wœԈ~Bn#:yRHaӱ bh+GAB &^0wLae*rObX4$]D>IoO"*qB>jW=Kb6M~5J>1GS}1Z\T+E3DZ*3Ԛ7eԃ.; ϲ2^et|d:>٬6@rĜNfyz% #M-I3,l ə L.%ĪU\sЪPusSڮ& Y; o8cXrc$'h@H$NO/NlB5~&=\CJS;)TSgF  4{Iq/tn eo|wi#.'}P)\Lo-bcdsS7C(cFz2GE_P[ VLU^-^Y/!*aR-F?Ih?< Z qˈ`ĀI @%>v.Cf޶]R@-Ozé++1A \C)u"R xPY%,?%xuЖ%[p-C#JϾ90s#2vR @?3B5O,d[Oj>3|Q:c6w$"؛Dx:{<@~&71 2gjߏK[gQn|?xA$q=QqDsy/|7,쾚n׍muGŞ[0/H*k[*gR)de)םKǃp~௾Yv˘(9I; OVn0c[R) ܈+IXǞG;j')?syW}klyoDyU#aBQJp^?-Z.\ɐ4Ɔ8ǣ[~y GuB[!k?`ne޷J`#:XD𮽏bRJY,F!#>YGLǎłY y2zҶY6v32It_hi$?wYL)?mV@kbl0wi;3~3'^e21p=\jJHG Th$YI*dp:m|5A@4mJ"U@}@.d{X~ "B nCTܙ3Vʖe2OX()&"?JGkN"O1/a=xIpqCD䡆+2\)J,N'NQgXl"r2qӨ60Lm4Ni,ú*핒a6f[ CSq刲H.Ԯӊey}{kǾ03xP=e?N}%cK:?xo&vCVu6$a><|ŌԿga iCg4,< [, _ᇵ^ CueL~3b1{ 1KDK2v'qtլThk oCk29jSQ>}*}!YNH#~Iᅿ%ʌ5#5SDM{9Mlvs'P`VH02Yx^ ʒI CVIŌ;LdC֎- PV.}yX"]YB)$%\7S/P!)͜tfB##")'j MxC\$Qo6r_!;;|]̳Y dspN84O: c'$Ze~m EשOϽG%GU"ޅyT|; !SѻP}h\#BNJ ɪ5g#pՅ+pa#3/ҏꬱ8Ҁ#R>~̥w>NQKi? !IQR*dКEAE"&SXwtFqXmɈ.<98sOk^y|;PҙEBt "(,2T -.)`/ {_#/x8{x!+!gplvm5Z#Vym<"Jg⭶Xܶ?-lkYU]vLv\GD w ,}Z5gG9+|WHDdUzԝpXXS!#wF ۀ @L&0=E)3QxtZĜLnUgSdU&u:v,NAQ N;sUqfqFp\'㰾7gq5mxV[ّn[+( z*knYbh{>F֍2eE|κpUU[˰N@Ykc@1ټ7"s.O.xI[-lSLm"\\Ґd L[S}ߋ{٧dbrH0`.¼p1ʒ`ldĨ4Z$sٸ>X ,Lwp3;q၆V=b( &ƭƥXRVS<>cԬ{1<6γ6E'Օq\?iͱAHO7IߚoHT>2tPUa5w9` _j/[ l~H+=D. \a8Ơ3[9¼47taF^)Rd{ p}רX{%ݩ?H>*󘅚N{V s]wZN" y*uC Z}7uT"R GSÎȴ(L"O:qg+ߴWPW(#0e'חw6%oZEDy`i}+zVBAєaX=Va>D겨9*+rW6\i}GQ(r뾄IfxPK bsht[X Q:ㇿ-.0Kb0{k(V,-sFR*p}]T j(A f ֥sE#_@Vߟ9D |5F>A'T"8GSte5?7 n,-ޤWښ!Y:<WklWn1'+e^ X8_"@7DסlA]*f-w5p⨷YL څa,u?o"%.Q|vW(ŰJ}} x˹nƠ$x a?E<=/$fl2R$xØtW9~>Pp@cxD5)Wfk 1cȐf4Ql7͛7nMv ap.gV~.?;~V%:y8=7-T.ƱHOz^,Ъa䝬r2~`\rl0V<^*ڧ 'Їh9nFATuNF ??+.?p~]Bz^ٿ{W\ɉ^x4*YotƧߠr6@L93S8'ĨðN o6oPf slaʔyy c`ScZj'e$Mqa [S#\" D9[}GB5zCN熨Uxe CMN~J<ڃo) uiqZ'g=e3Ny{-KYWy=>WfVLA`bKQ B1 ܐ̓UavLPr717֞}GwDQgfn75@t)8u #A.;3V}dlv8@]V[P9ohA{sx~UZcI4c VڲiyC  FE%J+YBݐEnkǩz2s %3«[|ީo׾3þض kIt+@B@ ~\g}˱{ͬdufȴy Ahe$jÞcm{+33-6 b?7k{Y &ZA*cp:ڜ `=s~ެf#"ueo-Tg*'= iH=c~2#t֖l^k=mzF0wv BK ]b q}ˌ}63U̜ǽNnwB{Y\c0:NJ|uu;nQO"tL\g82|<4nWJQ,_L4twhI5k5)C:6Kڗh44p?8=oś\E8PE; <ײ闡xU&6*(R)Y&\wjŬWr^X/`EVD8{HӡDw\Ld[#s ,뮟m%yn ~n]Ҵ"tt7EP ~Ij^:I/K{F +Or'6|`UDh{"sޗ\(9H YiYۙŐrW>úJV TExTZMBϛlc[Y-L9؆{y}r+['m}y% Mr<8 dwHeӓ.#kL<2127Z/:*䩐9vuaHu!C-֗~8 h9tjQF!8߱4>|w!E%Z@V2`GE . [2-28Z]oD{gVg}YY':P M׏#o+ț(zDbP…SԦ*zsAj0æINQ\C uh5P]ƚZwpw٨#?>.9 XTٜT*~B)!HD ~*C&TMѲ| 3bQZܭH_|қ#6iw`6m#&c^C\'Uo3M+,edaiŜ`&~by:yN<|d`h?bŢt?L)^ MWnm1^rqdD/ UG sA?m/9k$}>er ]k몌DX$xA&~9ك f#Dsmvf=HW}->5唋 t /mwʸw/C1,h헁^DYE"<,DO&= " W%E2\kzk65gFeAnbfcےT ]GBeE.!Wau2EۨB2s(̽[/Fs,pb>|BDr9[[[Ajjb8(yT afSqSj$oXWjpp+e2Ce,uoln>h4r){iMR? 8 NuzCά3q+r,󣂂$wj~^r{wp?6n}z3W|c W RVW0l:eie;?٭ʎ-JR)n+E}uU=mGf |˴fǁ)lS|$8!ԘKd"6B7FhȎWXs >2뫞\6bU ަˇ`|q$$̠ i?!.% ]qHu+Xaz"<9Ϟ}a Xʊ.ֵ1Fd&dvFV\ q@I2gZ{5QI/L=hM^b],~ |)QQ&GVZp!c<d9{>˿ӆr\\͟DŔJ˂Ѽ1N#z>Ԡ߭Qr'U^ZhT,yXj b;Z@̧tSzW:agaheMpӎAb۝ 2=>,5c=7Nz|*{.1f07\ϭE?mFݑUiLZiaZ28K6$UApEBvDH9`+MJae$@t| d6>q9׍#T)܃IH$ŁLbfZ\!{1fbGhW4[$*eͦf_zE ^hW(l4JPO ep}Z7eUB1{22#$q /xuEpm}a JA7OM|QSF7Lޅv #Ob  R`ByZh| xIۨߕ=S=z weq20ڼ{ǔf \+27A atՆOܨ[Y朥_,ձ=(CToFq>:ǂA,zu/&E$2\<1pIƤ]";łQ}d#AHB̰DXC-` ̰ J]Js%5o1HZ ze9pq?,4!ɾܫeTlmrw4÷N2.f=f0@.钐 J:z`V$o"ҿjvn9wzwLT3o:[l,&u6-v*0zp%(%)jcqM办rtrF6eny3|#YwP “M7TpGr¶G!/cJas-4!Euk)2e fxu =8DS6ex 8G6 \7qb8n!xηŚkgk-[ @}PjA+¹VSOH`TX@0 WR.],.\/%:LҋWWo>7 duHRv/ +"*]:lG0/qlGn [VSunй͵lv.W ^hu!2;zq'ldE K_9"H,@랪%-\v WGl4e5q`1{v,9Ў~$4Y&2Bz^zQ"cIoU۳<ӟe=Xs8Ƴs rJ L؃)k->Quvʺס:`֡_/pa!X#dgٲ=cr! ʢa]!#]\PZ+X$#  ?&a`D:в3:PvYg?#մ4-*:m|]VInӯE!-Op'1%v] 66Ty.VܷDu=!24](s>yO <}Գ*]!{@JB"8ؑRl=>s~6R.u:` 픃x[r/U{f)T"#nJMr xOe]Q)N .-J%aR#_Bk79,>A 5\ |`SJh˘-$SGpLIҰ.adAۑ@=H顷|1=3[h`d.ȩ7" cˈ|1?>`3+ƥy*Affhݼ@B DGAP{x0:] ,8V/2et:Sݎ7s CL`δtJl P2l?gVܞކ^) A&Y(gjRg;fFMcƔT/({S<`๠ca[6?Z;c l֣Mwg#CM N`czI؆6$z󠫩l.w@ovco=Ϥ8(*t 2llͥ@,pМ\`e&MQ ւ yB0®c"LyQȽF+hP(2U 2bdԕpKW 57cDI.CgZd=Y` =E8C49}>trAjGg!KR*!6(TJ#L"!TE6 \BxeijҠ^ ~7_ +7J6m,Q%(GG(L8dF2EfQ,TY!f״LLեv#'gZ^JVA<'8jlh 0ncV%2v% 娲ܴ8ũnx ķ[!7SK: n~\ z؀.PD! Ht3\}Z2]S۟mKt1G_cBU!$@ј#9oƄ} h*'aUd"}Hƍڶ3͎z)(f"pr D(L1cAϜDe~tL^mHP#jCcRFZxͻintz,bw)m@%ey5d!.Z?!LB /b mhn7nM"oH WLj>a]#~1e(Qu|ȝ|)q#yt??wxR{fB8R)0ކ|ZU $I%q#.|⛐M0GZ#!Dq.C_F@ͻ[Xu[M/$t 1C\(ec׏"d 7*NJL1?2 EпUou*\Y>k iߗ"s=2ExϨkP+zug1 "x#6q:]W_itMIGÍ}o B\xrGUh{y{wך&x2))mXǜWpnDw?Wr2+뾕u9 5Howoo+URÇ>@:Ԥ~ڦ*:nF`+*pԊED%.`-3v^@z31=0ݞAPn`SM ʲ*g'-# 0a"ןV[DY_#/ zNR-";EDt~ǔzJ̱"FO?O4PaT8kr[|e5ʂ.&{ ( }@p@P /Omm:׀\m`GnnNqʴO\ hmlx=<=oa^/Uu7g3a[׹ozsʯlw^w;{w>\3n覹g<:综7q36u׽z=(n훸N//6=FݝM&mvmg=޽w9zh-{ٝ|-`jz{ܺo{pk]`w>.;k<ּ@%Vz ^͞}哭;.{s^s@mzͳ:eιsg7)ZvwnuwL]Yr@vwosNZ#sqޟ/]^y-m lb R T (P)@(bEJ ("( n$P䮹xt/c=|+\Oo{[ݮmuںrr;g...fyC/rܧ-yBCvB h^Ð`@@CK0ÞH(D%UQCv({j}Z^2ƅs7x$cݷ-.]v}rݷ]9v\Ͻv^͜-Y]m7׶9noyjy8]oofmssnLmۙ\q]nޮ8.Y͗[;99sI'.ݧm9P[Z_|9w1v[9'nly7^sc[ C@8]s^vY۳TmMvM\cWM7]3gX:tu]]۽nv 966m9uۻ^]ml# k-:7unK;=sFNnv˛ۭ]rYwnVݖOy缥ݺهvɞX<;EU4nxNI>@T4B|qv}hh(*מMV5;5u]Zf/5֊M8HDG_vSn\Q%čhuu@\YMZru$u~[WiP)z{.b7Ig5td2Cpz/ͺ-}deNC}?"n=,sw|sWzy9͋,#й Ylҗkn+ ?.ilkdxw65ԫG_<v0h'?Y`Þ%M) 9˗9*r&wS/^JI~%~MtkXFFdW*ǯeVv*dz0,w:W1q"uf,ypPR} \*[ڲyůc1p(Hߏ2¿aĭ+jF/'j||=xuokz^_'9y 8pƾoVqGB¿<˞5\{x.e9FFm~s?jKf_Kklz[cafYM6tlk xqs62 CsW)C+XU]AFja.߆J_Jʱu˄OG]|(.M$js^ܦItOtr0m/]Ehi3S_/ g_5lD"AM}>i}ji`uˏqO9Zf-8,iskp!0o0_6A <:Nl=x*swMn~!p"u|,CWh.=(Z .pKnf.<ͪcAS)u*?lJSV"ɺNvU޻$% AbCٍ+p§o8RN>CI7"Z$mtW =ΩSI>I@R{||*PE O7(vo}Nі\pjte&XOk9R"SȊ4;}+:ulh<1tTVdPrGH+OOUK㐗nˠ~_la2USi p/ZJZ+dFzP;h1%P}^TԴw%EhDR{w@5x.x[Xd{Z0N{uƦK ;HLk!DCn$nU|]>z?'yh1R{ M!{M'YTL@~@-NEwz#7 O)̪.$Pmj i[ 6W׽̸4rvD^*t~]H{x;8gjdwö]UcUamQU@RcT;ȇLޯg2ți6a'oP {; M91W7R+ېd@̨"Fg;|=o[ i3 siweb'XGfmlmGe2_f 1銍d`nlQRr[ިy 'q7gh [CH\Q\$ 'A V& Y.{>g;oJ*~q[:eGÃR;|Zj9N6QgSS\ݏpZ l?'wM g4Z9;+tk!`V/Y<6Aᄨo}M:DQ"^fYhG*LV@ >hC91駵1$7h'Tו6Ef%*Wl,U8=!W$WyeVyDհ Ȅ,>w l-\Cw8[L{a\6mnxͿ^ӖMٗ %850(eW?:xڅ_ZMT`I"&M{$\?>&5b+a69C ~؛;kn5P@/3:6YM{u\ M)/>i"x  2,M6L57c)z~&f.u0U1ZyB^mLj2gO})5_ u4BU2hc$y-27`FzGsL3*I%,1jnJ/BT$3׶x3,?|76w[֕<;rr+'7kd=kmi c{/6(a7F إ˩U_(X=l ?EJ v+BU!=ǮHB+j=6Cos^!1u絡~o-Ki AvĢ>?W̺}Z_Yyq1-_I[#:v-,OV/m;ecz:Ξ5c؄Nˮ> ]=KqwF>x߅R+1^P^#Di6#|42 H ʚZsM~2]6Õ`)9pf+PAI7vca&'R.Oڬ>%q)AM9T X ךZo7t{Z? oF4# zD`:;1eo^(Cm>-ۿXs\#ʣRFr! !|OY|m6|Ŝ>Sai=aܶ|5O0eG*ߡ*6bP@j5ŋ߻Mܽvm 5/_q߾o0<ξn_Er2 F #}P~{KB"$G[$u~س0_ڿ2~&w7sUq+ QQzOv=:txne,ꃁ߹8C?;ni"zz {$]wzu%-wag 9"]r)i^8qBU~,Еyp5`QA46Mok/:ohu8h2hK^l; ::r)XARK)'`o^p8 &1zE^z\1TS͉tt;TWR-# 42N+Uz]wۅ,y(_ ~EtDdF0:7*<胚2ljo|ɳ3G} dN?٧3U~tp7O ˴v_S|D4gM`¢ڒ4K7gh[s|CO-DT1o (*SPmK-СS$гKfw5UC9VXaINEnk,*V_ŵ1XQ|W@,"cј{"R 罶ϗ\-D[!W'eݚȦ ;rGik=xu+ 㟽U*Lely_ޘx۲it]/~i iK_]zl,MA9#a.~F谪6Nz|8^._im0]#cxpO{F szIzyWyۑ׎_}+Pf>zy!)|f CM63NoU8K``Z֜}.'kwBf?6 7Zێ( %X֛?(hftRaǤj2<dd P"cy xaG^uMlDf:qݫ􄱲Q㍬We|x2ӵ&3L'ܚ G$E#0и"hl4݊Lv*2׬T>.E֥tѮbXz#ϯne[a}GA<+)x ǟُwrwxdo5g{<ᵎaO<< NEAy|_)_Dm>wDIpDQ=؝؜ZnPJHszz'QVWBblՄV0u wz 2yuPf 8gZqGV=l˚ZoGc20*qܝ)#rLvVifUx}#ob4WxϒH&*Rpx }SlOخSϺ?m%k:!?s95)G?s7_Z$|orݾS}j"Hi:;^3k֥~w(bΞ=%r şmB\zw*1/x8?6mJMUf{_15a^ɡ]w QݸAem;h'RmWcׁT?Aǜ toǣYX咟0=6fԬ5CDl7a}u[}u+J-'8eQJ)MtO0Xe!W5Cƹ_n}h*H>XqoF#ο9Vj!5#-&N .Q 4/o?H߁4V(rs3 |w<)Qp-3 G[lgN}V|0Vɗ)6=W+tJSMG:[FM;B<|no\z{[de|mG8*kpq)wvwc0q?O˅2\#}ΆFCi/%?m1 kC8}C`jk>CAІ2j Tɵ=qЩ;iO\?^8O*- *M< aS옑JADBzPXa-I4*?,(e8#-‡ԒKrV>[Ͽ"м)~ǯYZ0ŏ\?%VUoi,rY^3vQE⽯Z) ?nqe&'|'\"H'cc?㙆?=aiFvMP`HŮ{ a%kR#ɺǓUF7F^^E)[`~kJDɎa6F_}O7.&)_ΤR{%u !/n_qp FMO!q"p-c.WZ Kt> Q'=8.,xW(&DY_S堿g2sG I:׀p/`ٹq̦ϧ~iMZG9;ULM3_I t4ܱ]]r)DFb^48LQAq^WJ+5zl:lT{ľkϨ_] Ga0杌A V{_>Lm]p,)7$È!^U?p_VI-xHu3 ]jںRuŗpb5Lw?϶Y"$Oܗ펽!W#Ǭ801H/bvٙ5ݶ?A֌ia‚l cٷNMA#8, mnalyv'/nFן8[g5rޑV-.],/]TF TG(Yʁ:sʲ|Ȧit *v27TutzknΙQ(!>(s0u2SP~Dml8>|*=pHtT?u,V#c ;(CnBq]xG<ն\m/+v8OhG^ؚv;Eatʑ{4f0;WV5vN ~59^iMn'ZҸƒ4L oֺ+sF4Vq{,`eڴ=/J[ٵAw-'x2)04Nq%B*Si7eCkȡ2ǫiO/;qΙm1cpDB& {jhe[2`,:w}7%< JA}Ds81-__?A@t =<.LJ Tk>ŏKd z27v$ Ш1y8,;F% - xnkoRuW,'.};OhPO?LK>9ٿBTUQ ӃEګqwauOڶ~ ֝a~.,(I¡^8 C~7F.1PMjn`φ,(g_\P`sDmpg֚~5߿'Gםw!$/$s xܞ-T:e}7*PFT@>u=F=2UN T sFz[J#{| w18iwz(w3)o}NS}Lzoikb-5+;{/[4hrڃh_Ζ C?..tk EXRpBȖj2Wy-滦Q\Ub!1|Qv71?g[)ߦ7t 3p+6A~"xG/U{fyתe p`԰a^s_1#}Bd? 7+K\/|-idfP^Z)v6?y;N?r^lNk*Vz\ixg9B͵y63\|<_ 骎TsLp6qboߠo_S0l{N?ijt;Y+[؈.CɊ(5'&͵C)豚 ~]%*l^%&M!n|ƉJ;/[8D'``(}uv3xG n R Fދ3kqo옄HN+~o'7e_#6k7mJv]yt\ZξoSfL4֤ggʵHM[ {#Ki|{Ssj3#jfH髴_:~Xm~OiXtY!yJ:[ouUUNI_1tyd !B^8ﯝj~=ᡤ5޶s1;s ;Q>yN ʗpWc=|8k6=vzb[39* n-MP;!M<_ƢvӘ`4y} lj쇃^ՓM<3KֳُcYN'ꯖR4Z'How@+u'\F9lj͂Z9i c`s[y{-3Iq9^GK5T,G.PƾFCslƁ<޶n?m$~dsL,AfV55IW:8aU։aՃX޲de&Kͦ\bW oOU(qy욈_D)DNVKpS>șѿ ]l'gx\5Y3Umcxj5.mhG u:?"L˯>0Hx7dШh;]tyBG,CCnU[m*3k2]Ht¦{g7mpώ4aYWxڥ޲? .We^ѡhuTߠ*p>َ12E73\<`qk ~#jUb9arxo7R'ŗr@sNj8~"7a3n|Ҵw]#*bq/#.8~Bǿ\ MVFGo&.lc=%ag(~ᢋB*BtwL5ȷU*QՏ"3EEԹ/K!ZuvuV~ vz A{3Pt]67 ΁hafɖq~koG'z0FQoqc2|eb(3GA'}ΕDq͠vLS_Y5-z*43]\ ~}9U>Gܢl& νwIu̓G<%8's'X F:q.:MFcGwaʱX[OQ["6Ð9n;fGR1r9󝬠 G_@YDߖO'xPzWC_yi\ "._(Y栨\}Cb92t0q?p>$/OB %lQ ) C ׉A Nyx.JXu!JG|m˂#(~xc2n8Z_YessLD1[1\umxW9@ww>_ ?Bb{:mUV{{vx\kE|K=Rg\el}}F*KN| U!|ל;ܣ-VoRHRuCq>No.OqnKꇽrKjfs?5xn͉U"y#ʷ-eq_acY c$rǀXCLhLgzgRpKnAd;_];z\|>LqFӪcy@$iUK{7uѽCQ?Asu.Ī(|0ʟP4/z{%}366,AZ\ /.#RhU*-Dm~_ùJGό()Jՙ6\)Fc4v"s?ߥH;+{O`0GdHNUS:v8WϏKg'=Jn** 1PrWrQ^oܼ2Μrr/fZSp{o,eX] E]֮H{j1p`0SǮU{襅k+nTwpX^fXrн::Iꌽ3`2\FJk͓TSL ˋTƧv91gY4mCH*SDžw" n+M?HٍGDe;Ez΂ߎɨ]d^|U*€JD%q fg#l:Vv U|fo E;d\RnMfh>>c^,c0 U_J䳔 3٭t<&yێݖ/.GiW4\×gM.EPq{#>Ob/>mXO\f`Gx.51q+5=`7\JS[_a3omH\e"?a&O}rmzdֱz:3N ౻ٰw!:wOrޡQ|gѱ?*̸ NP>o2X-JW_9 T|$/T\`ikL榌g3[_ONR~5yor^Fg*pK(OyvK7dܷ' gz}Uuۣ}˜jmfâI,;\%̹3x]"Λy=(< ,0Z]oubv󞩮.vʎnsBt 6zYSzO;yGܾ>nI9"O$0Oz뙣m{_0߻ig _{}VKiF<\W>Qw/ L;DܶLo=m4(5Uܬ}\2_^Z^}ۙ8׽#ͳDŽ'#mӅzw^_o3w'{ncן_OP&Y#ٞ9y}6VVf:o9f깞v.I\gY/vg1+֏UOiDO9~6l^MtM۾e'v7K問W+'xӇ|ɛ~rIUv^\Te\75p 0NJ3^gӧ$nJ͞O9>rk}읾zni]I,Ƙa1˝<9.3s=[ޕr^ɝxQfx{;]y=yYXOp$06WǾss}[3ZU{s/M>dU3o 4`%|\^m_Nzg?G@Bڭ2ɭZ'0_O H}ŚV7vH/~zϚee|]*“A6wJﹷYyjE] ;o`e@uRxW:qavJηwc]-*/^^*=S%ߚڟe-5f`KE//gdz4P~ͺ^{}uG8vޞZDB}̤f *J4LdI/d̒fJ?yU2J<ۢ8%EW'%"S3';Ru;%%vI=UKod̒*<%0KerN*1W'I\R3%EjF乒jKVfI&cΉP)n\,c.z&z.`!i/BaU (҂>PAZUEOrJ.PF! $b uÈ&N*;\U@:8b*w "9OhJP @EUBB2AT A =3j,-D(PFDEQ $#I 0PF A!/cq8@ (#u?YA)A@U /PF"B6#1~ |bId@PF\\,A>θ I/^(@qHq {IHj(#˨#PF!`%! #$Ri!4q=Vˉ$Hrq-)J`SR1[I-I?%Zif .\w;`.PG;Z,TPْq)Qeo Iz:a $?uB;KF|g),b>; hYDꁴ'PPb1 VX#&2nk$ dVaJ$$ oUf7cgқP/Jt) D 'hIca1QB6!R0I9/m012!Sl 4}OgUDBDJ HMTPF2?B  $@fă,4 DAA#h3侮ϛ!E J2! d bT$R0袔[nVplrlTa@H%蜓l: #bb͔. H$b%\%>$R* ;Gb#E""J!"*B,g(zҩ\ p"\\.@ޣn΄ԉ"#LU0@Tb!0 " *Ņ$ŀF'"^EyXEDQA G$"Q$p#pTTL2~)H/(yMŴ4Mj >&1 ﲉQ$Ġ|Z$%I"IFB c p1dAD$dY IUD$VAE@ I$@I A@$$dY$D AFERAdUDB@dD IdUd DI$RBEEI $@XAH PBH2(2 "" $ ()0() H+"H$I  ,H2 "(H H$ȃ ""! 2 H*ȫ# H!""*H *ȁ! H! H22$ # ") H $*H(H"$ȁ $H @ ʘuU38w^Aع- ].m n`ӮvСL $ $LLnp0 $"E@U 6.AT y/*GtYz rhTwKy*1|o1~a9cz{c.@m: zG+T opg훟ZpY⺳{{g!3%&wi]3ϸWxc՜'$*R (!0p>gIvGp@$nU[)l, EOKaV֨+xKO\TTa\DUVš⸨S$6zҘmK]$뮧EW+Rd)(mS*qL0σ`@fXX cā L+VbuezZU0]S4EW/ttd*ė{;rѯJ1Ӕ $5j<\1J-6S - #= A'rzv|Nkߔ,Y u;,'#aF{| g %@6ec>qk7OQN=L7pMVe/xiӹGs&JR*z796Ǜ=S7 BB;Z?el!v{1(:5˟ ,UUmElL|m7cwtmnKNJz67ݭb@ 7YlHO4j8OD{JkѓW ϐhV؃|Jp&'$_}e=^k˞ߘ@"}H,Z6n04w)Z`*)-@`B0s}.]ɗf@/ǂxTGez`MJ[?44c.SBá؄tUhI Fzf\ q&JQ,ǹf}heUR5Q8}Gg0639C`L/DWĘԋy':z8<@.^Θ-,sӜ wP SkY.AcFs t?Xݞˁy|,K?#KS"W_s}bT |ڥ*Pt:0c8z7ǐS< $* 3^y&#޻xg1CQtnbc=s(# c|w#7a65c(nZ 6fTS)NKVw,On:JM K9+)e뻹˷)f!KPCf6wrk i d< amUJzQḘ,t(enV|j;^\ ClDxP*袖!chmWH-[&pC-Q+ Sބh ">0K8Bv1mݱѸpg OtenMRt2^3H ?`?:+6n3mQI m N~؜ ]tjnB ۘޜ^Z(2bSB/ 0!"='[ E36KC "EszN6ϗՃ,~*@vkK dbt#f:kU^Hy羋O|<>MAYqO':s&\h~פAu${An`z4@G\IR[L4vXn|<.#?lfLD;,J2ȯ-DeeFeA~@F?Nj EXnPpfn~mrYx|<3 V扞;Њ!*'PM5%iriLTs5RZU|ȝi2MPZӅRN+ZٮF]>I)䭸l-(K9)h';Z)N?rȦg/:l QqSu^̭ZȖ{D\9ʴq-dhbaNcwP8°Z.}-[Ar,OUT?S>%WZ2}bES>vGpL^H^GQQC,r7M' #g嵣mugT2S:c{z՚dg5^2KB""ͩډն>[^?vv87ij ?v;Z;XLgVVw{ܗ{e + ;wT3{jgz|7]`?qq*ʝh$yݍ4TpۋR:Pq&%dkc+k{5U05Դtijʾ]]]]USMMMMMmmmmk̏\ U_KSָ\jZJ .t3ZaZR h5kЖ2Ȕ?( |x'5$[ :AdmJ-z&t`y6vcZW=b%+i 7RtCH1ٷ.el_ EP+ OS npCewa~2StUP|WT0>tYbV,sv7_/We_758dq!ڈ]TUשԳZ%-#gzXnܡ x{Tk|4:Ƚ9fOlAě"?Pu"u 4nzðs[mٯZ ҬW}tx+vJ   xgOˉIx ) u'fuy>\/X˝w7nǾe%A…C^oWxZޢ稾Jr]ㅾndBX{LB;TzINc9UC!gGc.?Yӆst@PO%T 4n3}PCq@l{=CzYǓ홃zpnHvabeGʗ;qc0 I nΏL:)j YWv¤~H_[}87OZ/WL6_U4Sޙ=~vd:ߠS"n)(\9&@hgǘi؇4vҿ_]h`3%YGU. !}QBqcQT퇸R?G~9Ave녖oy 4U_[iFؔl&؄ !LڪZMTfzX O*6 ^/Cw̉\m\>}R $iSs&k(#v5\H/99_Vيfr~P π#SKaLM2Łݩ=z Z#`]]BluԍLxLc]q#ss.aȌf\e#1ViK`D"INoD}>Yx\%@HkDG pQ@F\[ZbČ'G b/4,tz=GZ|ΟxÍԑ[t0g&k"wǯ3g}>bbnr?L]{SbK8#F<s:kR|[drz'E~=l`u=V˨EШ)VW!'/ح-YRLWκ'ŌQ1` 'ryzAAD~p#_?-lAs_}gAT3v֊f79t76 ΧA8Xc00!F1E%jU9sF'ׄ>r<:Bxfl`@H5@}sȣ $oG Q?}?GZ=[WU~.̞7Ql͋\/WM,xGeܣW1H0%aq11̉0L'L!L&Nh꥿V,&IO>u9"5C$zլ*('Vf.Vjs}K;օȘN4"Ѫ?A1> @z2H2j er/vVD9x>|_js~vzjֽ&ج g([FU LLܡ iTF>0m(v.Xje&s\#h\=ާuNVUg!sjFHhx-Չc폈 r(d'{hU, 徴&#RX|/3Ce/6*/uvz"|}ZyaPT^{)҈VO 0 /~ٴ+JiyA@2&WҢiF@"(]CngJ>yq?Pwr_ZVR3lEG_WXO:M@ Vs0eMUD.Ƌeea P,L9v,r-؁%e-ܸ.3?wetPsleT_ҲhS*X8Ձ`@>oͮuQ\Dtu+jrL""EQ_9 leHoK0te\C㨣nBA Y*/>J2^wʭ- ^X?Q n"SsfQQ|A?450Y≃6qa; Xz|/ Z>ÿQfpg$ݷI mZ:%`Yu"~=ҍ7ֵ#-l1;>/CuFuc )&f\5} znZ0X8fji8<-n"2i%߲i*M}^O3eЩdÌx+'_k᧹mGɭkUhch+:+֜WmI H@o-,Se, 8s+ޕE[eLBո_jo{=npb-,w}&$&/X W--W{'`q;%=a_9m✈X((M' Rۦ[u3q8z3.QW߹\RӢmr)cFr7DB\n+(>':kRhO:~^'V˯ҵSuRv=\oò'#pLNZlndoˋEqSSX-3vf)w1|ewMe.?mvySY)wk>586{;bGE8+Ӽewh?{#ֹ֮Jnq)PO5ID2[2[cG+SgeˁUu)SUb-gۛZYcD%e+EXSSEO63j>EMKRSDWФ ӟr?>cCV~^9y/,bX߼e/iPߴ>k/8;ۺ 1*}榜X X>S g!t ? oڹ}e@[h^US Z}gs_; #w vۨx0+ȭR*wLsT 񇄚Д^'cL|*Ƀ嫴K3QP%f*+ vłtP-E~MAtij}BP5rlʧ]+ "+FIm Bw/ ǒmzE4qbP2 ZNVSє f\\EV -X7³d-L(=#v5G`~Ъ/7xA@ߍwt ;vSĺE^6/)lGQXZgbؾkK5쵨-zԌ{B+E^YSbR.+RU[Lv2™Wf\a~<#pcnB"P7Wr}W3zK18"y +qKt,[fzs`Ԕڂ{fw#6t @cS빟d9}=aYz9IjJ 1@fg:6@u1! >2:M1$(ʛ4[Ӏ;? Oz^AZO=)87J|ud?@Y"<~].gKĝ.HsRx>ѯ.Tcg_u{U!X7JͻŇ4'sb?߂k`/bm1k?/JTW\dTq)&0oZ ;c/"bO(<0,CDbuSFb'CNp}I3OJݩ-DWbR5`P֘[Fsމ}g'oI\Mq GnP?O' *=~cWqqvoU5D%(/B̳-.Sa{{UpQDD~F@50$KԪq7^fiuvf $Yy*rXG'O tJ= t-b|H٣<ӊ)?yhRX,)H5uV!PObE<,Tv[Ӳ<*tek벒z4]ruUOkBdj5S&0pˍSr0%e?an_$η4`>Y}<"H IT8.qB< ټ^꽘 "j?Dͪ["97]"&IG T'L,EritjQ?gӃEĉ-]())d~DbwcIfu5)yUBƞ8WֶsJ,+QThod&=nT1v|#ԛƇфDZ=oq ^RA [߅  ~Vѩyl+FS}PcG!hBI*vI}oߴ4o۵g=U|b3s$]8>gi}lVt5K)H/ +:rUn6`WQ}r&S7**+ e|l_ =6qfqwE[{ Y8wɅW2KҰJ-r]DTQg-Su91*U'J˓:KEZ[4녞WU1tWAM_sTvGVzǖHq-yD*GGk F2+mU="u%f\?[.-+"` @Nxư|^hp8IYk7G8v&gEb*Zk ,!#qHVjtXa5&eMq <E7 {oI_T$I85i>:y1/z~%\ۏ<2eg~TmnA,TeTgB60jzKVx iURQ1W  KP:?)anh4^N0=7t!P'078ba.-d>#vV=G՞^J_B/ێA=dN<2 gЪ:xKEcr[6:O?ZyPgm?_'Gnx$XxNR$Q dST cJ3dVe)dVҕ%-a`?ehX`Ubl\%0$W#>OZW:kb@0 Z{LLU@ V#ρ2}>ÕM3fT^Fvp-h SU* n8&n 71%*1[ȥ'Xv5[\SN~Z",ɘ fԪॢ))FaLZ*oW4K &b:~ע;.NsMhP-[q=Օkv_⢝Fji4oWㄥ~loH n/>~pbOkb=5w2k fk_vQ 7`Ecz x=ST\VY ce3\_:0b # |!_AR5$`˻@s)Jeu)~d^n!y@a}=iI#$m hi*&4҉ݱ~qϨGqme{*XJ)sPRT,)$9:8)I£ze3a>T \7nz굗!&w9Uo|26pjLE2,YKGD/]Cr4 %띫XG7 9<7//K) ?D`4kQl--2&(j=Z$9-t]"doG#ayABq܌Wt[X/Jͽ 9(1AACc D yp]t[l55c1iGO#,9uگNݝvFߛ?U= sx 3cu&ɓ-$Mto/=N3KzJɕ(CFT7wM&`7t2SSj\GȚ6iP/'܃(t/0߁xk 3Zr4Tro'^\s՟zGToc{6ڰ̹zmPmחiW[ |,3nMBg 76uф\lzLy*}uSS`pӴSv$Qf^S3P~%e>oCΏq&7g}+hO8XJj1+SbkNtm}>@⏨ύ<i3,y 䘘LcEaL#{ōHsy{[x㧷)Q@;sdV^v7CY d K{{/T]7~ $裸4s<݃ԓr*8TNj5RZv . bELh}30]u^UO[ۻCT.F[zp>erN!yA)d:W7A϶Z:ꝉ;/Xs4C66C杜n( 3'[JR^ij͗Lis,Q5J<#e/G~ƒ/æFLmѶ7?NPkM#Tm>claR7TI<]- ~z52Aۙ!ci:nT Z)sϣAgn#.}骊> 9hkx _ם,3q~B q_k*NV/aPo# "b&o; \2.g*q!w8N'}.?a+Y N I&/r-&`[ \!+D!Sڥ]U.gn;dT,Hf2U.X2ϖ! Y ktEwg:t3[3 %o;7K$L}+hG'Q7dZS,z523XUFE\g$ 3/ތms`o:7@ l;\9KyX Ke%m'ά*EuȘ{m,\fQ5zUr ur;?ў?1sDr1ς^d%9V(8d@rAH7㭹iT =ӓWDW|Np]X/xyǙ#n59!ɻOy/C_fx\,Ў /N6x3sKu_kkg"^O?$ CQvciJ"O&VjOc%p"hͶ],$ K p+B"̳b1佴mn1<1?(M\PVDC,-`96S ]A2}1$k~?OMǼV5 @1M /$8!OG]\g{a҅#bEwq7;vp^*GcXu$>#|40ٝKǸ3^ٍ?huŶA' -Iyc#ΚXPaW tjgeOGV*iTSeTuZ'Z-S7ͦPϾ#k&>kHO{XKm_L͋ͳXhLЮH+ԕPn Np= :h0$AVtN|+K / Ygs^>@Я{;PfD4W>^(`E|\[XO.=X?:[k`> C8#r{U?/CTn(꺼hĈ&>KG͋. RUDŽP{Og JW?>&J-e}2ސI Fr( )Eqf牡x7>5D/zJ/Vl:+x: a6X C6eM7|Y}s&zxҿڏxvpާK f6̆d3! e.pˆ\2 eC*PʆT2 eC*PʆT2 eC*PʆT2 eNe.s;Mfg!q3; 3; 39 3̆\ e.} fC2̆d3! fC2pˆ\2 eC*PʛˆQ fL"f'''''*PʆTѓ.pˆ\2>̆d3! |̆d3! 2 s.ĕ3'fl3a fC2̆d3! ܳ2n͇Ql3f݆rg!;Fvgarf6͆\2 Ƴ2pˆ\2 e.L A0a UF&ެa_}8jt_n$OY!ޗ7Zo~Ώ/G//!ɿ}x jG=ѹC1嚢|C*j1 5a'8E,bPD'f/Tß6$s bFWW8MZIjpGX;69[AI*{܈=$& +"ƒ ,rVaȴJ#;r]! )%C+fJMݕ=gB3U~M5VRKlߪ.^eWFXct_;˭N 뤪Qi$Y-;=/*6cOWE:-󀑙M!u }sa TQ%3t|އGv_ǖ.q+ݡ/O 0O^lrժ"DJy#fUUP+⾶+j܂\+?>Y^8g"GA.,МU`U,=>F<1&18SUq(|7E>0)>(u"4Fa^ /|\Y9L)A9qeZ"5*ڬg%=k#)"q7Θ"ng8O 7<*IVo)knXA}0s?cy 񣿃DpIyZ%9BI 5'%iǟl n u8 D7 N"G6ei8bexDnPS!Y"y} 1>=<IqH2uVAZ{XYUʱS:61l~Eu0*((X^wʕٙFhʆ-1"??wazRx} w{xVwy_Y 58m~1֌tZC> HIKKJZت 0cuS9y n./ฌҦDvDDoՋP!L:/OV1p?fE-o)E\31[/ AtWyQmŎl9×+i\qs)D9Sby ɌsC7,,2xrk yԏGKqrۭM}jq}tf.õMcaFL^9w};Mx7~w(=[f][!Aλə0Cj X| %Sעi ~bߓ c:B΄䕴3lfBi*WxW~a۔CSdb[NN.==.ܮ 8 ].S*-Y1ݯjl pyR4O[Ku}|Wq MI<>4,zl ,.ʟ•MVKmt>_ =ut>W(ld$OX2r~:?ŌffM/%GaNA,;>S!bnM'2)UNַfryZ=[chS _Ğ * ӯMriHVe5yN `LLF1c v52* 4_N-鷔gsҝ;,wz9*꥛ ۲XNX1+_ޗ}U°)F9~4XyX/CF\Y@7䪭^wS(n_Ub`1{Y/)1 ۀS,&O+(\6Ҫ |Wa^Ur Ӑs2Z8a݁ ~Qb]%Է3tMV7D%8"0@.gY#T >b͟f۬{lxxtN;fhs1%1AX*)Heciy&?}R >' 66/Y&(6'uG:iXxL78GX=~.%rErfLU9H;֔===PT55qT"B8+LmhVWW9nje læ7O]GzQ&Zm2`LK, jmykʜ;aN!òD'+zQi6ukEԁ+ : }֩BD}Q!{z?4&.lDfj@/r*¯({a}wt>*8PL!Τpb@4^z$Xq *Bk嘎PsDY}U"^(q'?FZզ7x 8:Xi^9gc=}yzY88/iN2d~J1M|Y& ,4D*:x?I>R8*S7^1 3 W$ @Kj)B hyKc'0Ww,w;Xw۩? 2&P y%A@Or@[A~'K$?\SW4;m7Qb*~+ƘȲ,K2ʘy\XXv5BV.~BJiTP&훅^,>oU%#fYFe|NX%_Cd>\7ES\!-%\-b)CO?⫶yL& 2[:`uSU?łV[ jO -ŵyکa( ʆ,c?yKwC a>Y~]sVR.ewykMD&ApeNMԧY9kiYn`]P6qB+/K}F.dvK.P-,Ь5R8q .ݸACY*_mH@G #MJ=~ME?es?!{9Sy g ]Fu"ᐠ\QvBش4V%m.C]2S"eL&,eLT p*|Z8[X sFMFgb|n #vΫv5qb̚_|Q<QG^8&[r`{BTcT_ݎHpKlp*<bOYVo[ 8``cKa`~A:Eņ2Tw#jd[NkNw`͔l1iXAx404Nzwwc %=0ɩ5~9h3nh≲LxZ$gArؕ?جWiXcSUP{V[G+hLRSekzr~W/rT`ywX.=+ӗu'P ="έjۥâ$ǬY.ŭ |hA}F?{cpi'evT*P-H9L2j(*$DOfȩGwb(:~ f؅!J: t\%ѐ-ˡ.H.7 <Dz2a2fEǙ"PP#=E,%W8ԫIXZN-rJ= bj6rܿB3'pfbўO«y[5nBdj|nOeb%i" -b"} b":ǑjQ|fk6Xk.]UfM~̍w6c@A661˟@u<6;FA2ZazO&ǀ$*x=rSS +\}®+'H+)w)a@8 w1P|Iݭq+:^MOl)a0_ r\]90vf> DPG>u<\q^|#^ ]]XYgte($9g0׷G mk1cr5&N X`\Q QHDTL-u^#uත iy5fcaE,_>&GYhoEoBm/_zkȲJ꼗,ʢK"̢,j)at nؖ]v3 |N՘V Rч9c+a-z8nBoB׬j~0z٩^E6*ZSGffҖJvk|#=T{ LERI4d!apEuzɞt xX4lĬ2If`".!#<ì̵VӠ**`*XSc~״VU[O܅ϧ,,k@ȓ(9Z榊81fPaf[?|N(%8 DA"!(aK?ByۥaN" " '$DHQ?D_@MJ B`CH 0K* "լ" DDA Qé0 +$ 1E$D&FݘЉLIÄQ6~E;fLxZ3xwam %u,aF2wDv˧74>a|=?;fPCPF ۃנAp+D9UDhiLN[%hWߎY)CZ:ŦI~%dSe 96A/Jt%/ژ,f;mg|xdԥQv렮=c&;  X|/q~tO0bW^ 'Dۊ,U ~TEi\V^YZ`ؖ%YVOea??<06E{>L\@e.DzIJwusDOJF^\/ d/WκrOavr>y%aJC{BAceVCmt7|[)ymS7,b>¥˰ `g:6i?7S*!T%7 XcHxmӃ`+ H4wWʕCe;OJՅV%]_Pq fV슺M+7Ic\u>s+. CqMWOw+_1M{،_7.niݿg1Iz\+YJFM^9HPHFõa?Pƛ:kaicCl>\>j;Ev?p2͞q;>G6OI(z "Lͩ(dW$c. Eʼ3u22~\sQT_YU;GִFϛj6ԥJ&{z Іf i3t)oFߖ"ϝF KGq}lQU3.Օ/u8K$R\Z֔0 & iA:V͔z lƓdr! 5gaYw%_ }8N)[2*zv"S,z*f䧾 ٿ?]k1 hL\sLԋ{g1|`Y|Uo<ړ/pe9ja`wmE4-g Lʌ0z0Tq sZfS?!`Wyctؿ_7io0wߺs\|n9W>~szYhAӤWl1ǒfd)yh\MncKKKi굸-@Ι5@2aP"Qur0꓈O e$xf2fYHd‡P`PEKK[3kg2LSf0B8ɝW4G,m:^Y˸~S/:d%Ϭ Jt[ΗN} #@ȩпKPݯ쇀IȶJ.b>,']3mefDKN$FA lX(DPWuW%^PҡvE"9P@?uDz ]w:sq@tNA[|N8#Y80t: 8!?%"Edu.FF `%ƉFX>ke#ox/^ϲؖ7_GXAG,(dpBhozjj.-:}YVήE;(3lv酖v3$vT)ZUW0!v55焯-ѲW׆ms׭6Rђ cGw9鸍E[O-_aNat2z /1OK]wccdC"Zj銃]e0ac*j@~/ Uf8S#y'ߛgįtDP6mfňx=^ˮVvK*oL?O +JWEmmmmW%sWW;0*[ ,EhZD/'3RJ0`+HN+Na9;CEEN(B 060L0ES`!DEpABQ],Q0"?"q"~h QpjH*%T@Ȋ4PAsABAQXLXD aA s ;:y  @-£vfW9#q}vUD:% Eg%9de'y3a~lE_qrCD6bDq*z y#m=y1u 6gEDā{H{VzTJ:mQPY^u2{~Q݇R8hOm9|550:{д#D"+ކhӰ˳u,^YkuƊ8{#GCŹƂPq&L y~hv+FUOP 5<$OrvUkߦd5`.k[Ūgs DZT[}e KlF og?L) }e8jʾꟴL1?KhwI=aw :azhdv,Lycd<%W9 侔$#ɐPO6<TBbRcVpP^WVS3* Vk(ti@GSήoʕh3'̾ϘdU@ BƓiZ3p꘴.Dؗn6{+5uΊzױ\֏GZI2`Yx٨t}4i=|&"!=V$\ʔe "Dڅՙ#ﮠv8~.yc1"! +pV΄,|K=0d䡨%2*Iݪ$2nm F+¿^3UW5f=ǬD{9^r}-f.g6RogKIV<`jJyXrB{C˘v+2o0& & xB><=[[BBDrdVahkA<=[oN)]'Gj\) b~2!״:߶S> 2*2;'UGKKÕZ 3wqKeh|i\>ʶ7GbITvy,f$)1YȊ ( r&G 0:srALe64t2zҤW(\#!$ic4EE,}-`|IΞ-ih:1m03?a^&E!!1ޔn#r6ӌ+Pb~(Cr\E 2"'[Br抋We e>N,ezC8_$F9 ٤:ru1s k8\?lL6tbDA {qvGD7sdvߒb̀V%qC۲4\Gr2sE02(N(! {D{u]a0cJb%U׊q!+(;hZKCdPDE ~GMhzrV )Q|;icX_T#]9yׄ{ʧaO0w;L6(: WzzkZeyWXTqRciiWTI LM.X5^(z)H 2&M7RcmU"Ոh ]L&sFQziȡq"zЬ4eǖ4h|ɡF'fw{}A4wA'~U{,AxBt0&}ߜJqY^XpOU2og,)U, $klkB.Rhh LaSR.ʨUc):O={Ǻu߷=:o_;ՏJӠfaʚ'=g7qlV;1LR̝cp*8"݊SB>箷yZV =\򬭷9bbzI^UȱvܫLӀT+q,O-B`=%^mdJM' t)^"OXp$x`<06?anzQl~ dGz68Ã+hOPxl :wb8 !]8z|?BgŏOm;Hg,ko.<`yU>/f\-hOtɚRŔ_1~mG B(Ө[ K+(؊47"†JڻbgXՈ|˪ȓy(-e챶ŒsNA5kkN(6|Ӂ؜e9zZrʩ6 9=Eg| AκrMuN96Sܜ4KSX5KlY2 0Ga;fpI^_MN?۪uy4:+f3y=n&0+٣%8sڛMMyo=J`%:q5GQٰ%=9M tcWq>fcd͎PT,XGsc_lǟPLbm T [QG'=,Kyl/0%x6m92k{`obېq3D 큁2C9: >LM'i6.j fzO{3O=G 6y7W]f'ɦ+B$AUrysfTQYyՇz>-4E?8,& G U^˙tB 6?!+\Oͬ:Xڳ`b b)``/-c1ujIOb, ndBs֟U,[H+{F=f Je +ao. cLD/6/9a545^C[߽rzy0?"~Iꊹj[6k^vpWY*bB(KD9#^/Rv\g?\ěs&=l8&O6cGB" }4ROM}}0܍~eqR ۽^a/AWp,4a(HPyApYEQ UlnL+t<9U&dϬjyݘk*æu}ɽ(~s~76}}~J\z|;z}N|&y˚ϧ]MUw\Žƴӗvs6;rNr=]3 S\ >*L/usl`[s{˟#HT3 ‰۶Ы?~)h+J*TS%f,k,-EQ{ s&@-ʒ}4{f,3E!Ehi]PT.) .Œ0L-Ƹfmh22fzf'Vŷ'߲\k:=g~dp;s8syȚujj&w'"a%_*{Flɳ=qǿᙎgG=Lk9Y~:{g+;9]c ˭w9T^snɼ=(={ѽwwϊm2Jxdݪ|3|gL9˜nfI;-vÚsl|taG3Ta'iKwɽ%GW&J]FkR[{m}L39pټ;\3y9+G6zw}d4&T4{okuuw)wyfnEss*p'75߶/rzrsk.F^Oaae鑹F9w+]ɤ9/' ʪO;RgTQY&:Qs>풝ۜ+eD뭎shxwrwN]_7q~aXf;gWᤜc{ݨ9\;7]zd->Kp];Rii;Ni5ΘYeYOzkuc$9ٚ]ҞE95g$\(* (Bꮳ B$Qrye @\2º)SJPQt]ω\t7,6 5=&(H+XT,OtY+\ "̮Wq7hj*ybdo6D^8ϖkdš>])ZBȼM\-ق쬁bvTt :´ax jEWThOp&pƖF30!tTͤ0)5f ʟW+.IIݘIShY|uTf<9/ӥP,8*'}Q:YzdI'fWӾwhd}wM{dJկfׯg=zoɧpg(*Yde~8V-7—v_MjluX& 'EX3^tDM/Iћأ`iVc0<_CEEEOS' kt3 u[%zM3Ƀ߅GReJa\WX 4W~jxξɺNTq% W2HI\Zw* +?/Yv~^G6}L!ӕԸƦd5{%W$H<ْ 5 )9li׃cS>G??uIO{7a1vN_Os%1۟0Bk\y2}=핍ȟv(|pH(>Yu$?szՕ?$i2Sk8ci5\nٽ?1q_>C,#)*/DmHhӘIz9'=Y̓ƿ1^yI mAbL08O3t_?u>cݕVᏃOI<c%}'~_gfwGdG$öwܑߒXrsH8|_ziw=BؼѝU(v-gLUDLpv4HOٙ199춧(ʛp3ə󘖄W/3rp8NsQy;=}^;Mk|߾οSjU"}Mطʌo&qb x_)6*+)ׇeYYxΕ΅{_:]sW%kVs^_,n}{_{o>{k̙ܽ{wqyWLsWO{ͮGug \SYs?2G8ЃZ, 9 !4)URRx}擜*ݓn3:<9?{ɧ<^LIOw }g;{2vg/{b3wټp&so +ۋ;Ü7k6Fl1>=NۄI21Ȗ-a>g(i;\o:xz~~~&d5y;sY79~Ǎja;zRXK'=vc;N~o&;Wy'o9&LJmO;h2(}3]AQQwSW)~s܊rE]yո3g~v9׽K}'c cϦ{_+>;3Yq$]L%M7cG b$<aSjsQҤ=7_-?_=K}˽%{;4{mȋa߹.nQ~dsLLN̋bz!a;gf\HS\d_?G/rh3[Ηk ٿW}9xHiN[P9|I딶џ8YB]㇤&dۍaob8.U6~6~q'=; <~ǻ3xsRv`(ldFlTGۿ$3Ɇ(\ĸ>l1*;/066횘1)U-o=s6 St +TckkSa ]OCm ypzhs+'*`LIdm8x;fWF#V?'&V.PkHg.*wcZ*Ao~6UZrQzʥD%VRTB˨LBuBe -UD-0Čh'p.*u^|UP2x~*޾W:⚲$ $ӎOJ ؃~9iyjWL>NT!Is3ߩ܏:w7d+./sUOiBG.{~)cL܃'sakN1gf<9DerDc~gpdv zP="ƨbo"w͛l.J yt{Gj9Fu۱lP?okHlGoTA n6BdH)R 'w-<RDYPeIe̳S 9' hԫ83Fj2-!U'zK:ǙFxRG:q$)?u#"Vc Oi?Q]Qq;9@(߳OwG;? tzz{:vVAn{+2L gii{bbetL҄}|եy4R2+I%%{0tNO̽cW[N޹1g_C 6Jq/>ov1 UX |u  >Gz3ܿb x-0rRgԮ 8z3%|pʢ߰%LaQyYs'. e,=y#<^ߏX1Hhw LjB(7O!C4Ij&0)}?3V M6+[Im%j ?CNg ŧ"1ˀָ;fiTU!!vU w:3=E^w9+}s~>k+yOm,wfgʾ^W߻y3ۇG +r{ӆO6k5>{3fK(}{_v=o||LgC< Gxl47x7cz>5VJ&6+_ro =},2)7nlJ#tzڇߛ4dMikh g$RhV3f46 (HRȬM3{1]M? No)<ś7sTvIܾL_~kVO+9p[~_ -vw_ex$GqoJc}'uLٱ;ShfW8N_"o߬+ s̫ 3kL$GuZ[yS |vs ^vq"jcwZ$;rk{%?y?yΛySkGllrˢ*x{lFߧۻ2.ɒ55ff4{9Żlc17vyn[?SBؿ02RiRy-/48XɃ!'>}Py9~.0]EB0e,_8~}ʌZet?D?9wȢ3yr< u njjX=qO>9ɉsKD0!T[ :en& Fy44Ծ[Ɗ\UPAđiF!q1uTr'n'm qc?>뱳a{0Vʘg672tϙS4gһ@h#TאGd,jX{ ̓[Lo)E4D'y.<bNe_a,1U;@4F ۋJQ4{)-&N.I(CUÔoSqԩ^Qc yFM9Ry'Dn2EyjC3ܴ4JU\Irƺv!=޲TY8@~שQ }w^ç$;FLBt<__eG]2;"R3' S;h$!ag?>>VK7~=.kt / ]П}?>Gٿ'zUo2<&yfTJے]Iɷm0{U:CE RHfv;%uEl`PeE^S=Jt٭tK%G{$Fu1GG뾹S51^0]&{=͎ {̘bjNO3>iggߊg/gxisIv}i;OXW#ܜ&h/1MAS_psnO=:2;&}]_m9yש?G߾-ȏOxswZ\U?^;=} isl%qo=7Wo*ϿZ~fGrAIsAǂHɪ>&Յ>(>wk*|oԝ ;1Qi>͞M8_9LO?wߊ~azs{$2(CrL3yXY:{C!3lXeKKr4W{Qׯ:'@ 3vw"xĴ Q'_Ƚ}/'>~s.0ٜIrFOiվK՝mgtMGqùLߔnA=y'^~O1릴AL}{reP_w~Gxl(jo:mN ͮKҷb>뇞cnYL7*֫?nmKéF_Ƨ'n2GQ[F<L>2k91z{hgir}$pc$l/ZYrɧ!'~#NY}'+NRW _Qy Ow ق˩*Q40iȯ\Jk sԛС  TX53'[>r/Gl %4"E'•0>a%(,?ÛzMe1@/B͒@cL3Yș o<1g~ I+.܃$_RrRBC1*'Pl`\2Ƙ|5k*bG$׭]LH`(be-ZT $.}3Z`Q)$Z¸ <4ڈ9D;A򌉶k˭ ~R׎K$0juf1x酋Gș_9{oG^A5=UH& N+ CLY[Qqؘ"CӈČ~YHP@v/1 }Kc<|g *C.aaYaqZ:$Cz&o<o~whwiAsLNn*y?.vqܭyĬ%w?s>WL?٫O<$5㿓&)7y؝.A<k!ՉXysJ)|m,-,~X Z(P U!+0P2박BSOeYoR}VG/0 j`wWl|č%'+ĆO32E]QNzߜ3ǫ ơSBnkw5HorwaǏGIX H}_ڒO}239}õT^SHOBgD￴'_7Ο?i3>ɣeGy9sc^eAv߾dlbm-3,>鶴2o:R_]1?(~'3c SYsl60ΟRS}8s'$?H8v'-$zw?~s0y.;a}>+=qiH1g }|vS_7(g?#oAFU=ˌi:mɝvzp6;ϧw9Y*YITvPǯϫ_O<~t&tS<ֹsGq6d:>[a,y[`_|V8Lf]QJϏyݫ#G>sN>*egc;竭ۡ9?.Q{ylu >Np1mWӽnf8O=>ԿLhZ?9_ߵs;NôrtS{֗soebKQ繧03dRy6i=㕻Ýcћ8m?ɞS을Ǜfoz?#'_{9ݳ5y8v<{L[1"b 30BΞǫ;-1?^8v8,B?{G'X1Ewͯ&wy[,q$so":AĤ.}9TD&?OwS køRMaHy]ܵ];'ӓ<+xՊa2r$~QHc|]Y%1jVWVڒedY[;b>Ŀj&hB|Lh(#9n` @?rL]_z@ ꂙŒh3~e(Yv酛] bXKUu'$r&G!T|U̗Ex?Ńx\6FQwgFaYJ:ӗSrӦ,QL#5!llqk92cca*J;’0SxA*'2FN[8j#ϔ 6B@gis?G.=j<h>_wpí5wga?ubF{ΏcB FcZ"Gq7֑s֠K*HVB2\+>'C蛗TƞaV;[ҙ3i|pztӤ󕇒ggkp҇NwOa¶Iþj2a㾑y˚(9y\&7sۇOo={˜g/ܲ,ΙLo+N{e6NwQ7 :t۶^A$[wh 8@^L_ihA ,(~WNZᝩ[ >@DB0e''(@ J 5kZUEAZP}>K/dFWuϐ'{;t*wY3ىN{hw7} }HCf^KROi˒s'vɿȎ㷾p?{8t5,+,{OyW{c?as+8cl;y~M\w_7gw^}§Xo.dl4N{j.{lm3|rhW d[ q[㟷63a35V<9zNS_2<ԞO %m5S^J!fnӕHlo'߷]VѓM1r=+o?\bb'm/_xduLHP\*5>y߻i#?z0'{l,swߟ=~dOɮGܯo~279to>5-oy972^[OwsǾc_]l )V`@R8#>L4 DC5З yc{%v&bJa255eԮwl]g |_```L 0 &Smc_Qh,[X~0<^*,ʆEa”kUk]p $:uiD.ZNg3ܛm9g3{YOxnݻyShq sTRVı[l{*VV8#nAl^_s$c>)k: ݲVߦ݃Pt*R2,yӇ[ :d,$i̖~ANf/EjHtu0Ĩj SMtXt#h:fXdmfɧi SbZ ۚ4UPbG 1*y$OUQ֥&֠ NǧtoZۇY&^o6SÍeF%\DM0HJ[N/sݠzo>ɿ|_yY3^YлW;zgmK֓gzWcʲW QS{uӂ%d&'w9친dI˭Uz=qpgO+קg`M]؛>j{.a|Qx{޹VXh*J]AeiBe OT\ޮjNs,S-RЧEuYm%@ArԊ+ⴀ@tX9zo82@FK1e4Q"-PiJT*QPVB]@}FUkg7{ݗ[SgmTwd3Φ{gIlڻ+9™O̿h{'{v?]_F[8aw'{nc3'.3g O9'2e y$}}ʨEپnk88tߤg=!vz{ɯf쟻ݩ]ocr=/tvϹ='7pWxgq_IFs}9浒_ogRww|a>>v6fc{k~wea~^N;- Mwr}w?ѺXx&3\8\J.wjx75Tnty+?=}y'K3S3+2`mÝz{Np|J{k_;}߬N';6{S߳;wyýI79槷j;Nksn0ⰸgׅg0N_&L3mA bHl"hr%$)~RaV~˚MR*R%HB$"aFuLŎ}}[?tGD1M&[!o#yq́d|wWdv'q=. y>OOpV78UG] @/ ARTB)J0#,0^9TJhWteU`}mz?:sm9p=Cͧv$"E:+O8Lq;a8Sj]v|_QIP!j?e,E<^NϜ7))6{"ᔵTXz Ilm zOBc៟u\u#|'< .Px($NLE3w8=G0 wnTho {‹'N%pqeJfwG[/OSoG1Uow.wdZS];>?}˭]Iga??j%ɟ~wfg}:X~l,u.LrxN}sLaGWw'+J?gS6J&]NUwhzII_r>rVzͳyntJΝO;K3 ݏd˾W=cn~{YyϤܦvSͯ_n ҽ^MVեS랒I޽x ۿ\ߎM7^sﹿ_󽽓ynr3+9feeU~/ek=ygcĽNG|=g2}si};T}?Owم/@Sj'PRxg8]6n'zxS\>+o;AzmNjЈy'5@ 2ux8Oa[XVԺ|IX[Y,I'f5*zk_hcn}n;Fm(T*k=iCNM!`"\1)e2;8UHuEONI5ݔL xmƹ-@b|-uؤB|h< s I Ly1C 豦19v |ыua*!Z Q_ɹy K ɐBxi+XK6v*NiZ/yuP<7X2v!&ȨT4To6hWgz%y7 1Qu $璦$X>e p7!g;956+p W*vdzŨTE/XG@|/^A0@) ]zU~UӼ4Brq,29zw")N˻ߛO&p;5r G/5AJ#P]։aЯ3m失ӢSJ_%@Q:u9[2E2Pd!BBTT# -oz·}jjaa)Ċ4@!x:–ӑ?4?1)JABgutḓGhc \0aDDU]e96E,I`,X#ȃD,s2.|9xHpǎ ;Eb}~_;;=y[W &̿;"%0Bp˃>EZY5^CĘ>MmQ$KQSx8,QLc-Jt z5zUon*z>7HlyCDˆ7Ӑ|%9?׆ ?}G'*#r_ 8-ɰ .Zn"OeTo+(L~0/:5^/ڬ}լ©^W!2P > gObB{ 税gF] r7E0;%=BOY1A>KH}(* *.1,Z;64ZqTّ%L Tߢ޺>Ѱ]m}hLڷ `ߜ\UJ[C/M hAM,W$ȩ.2&sH"ĚvlKCɉ;^om{45^岡q-ܬJ}G=7yg/71~IeiCP,Xiڏ{!ةtZ-i8'bԍRp$+ufBg>[lﭻzvmcoa1Hׇp!A˅X,( qR¹H`Ǥ+@ߣ-bezyG-֫QggXڱ^lj?u҅^;f]59dU*E>S Bb(a˥K<&L@AJkQ! [:'D[}Śǩpzێx匯/[0=wX: ^ќ$x-Y#Ibp^KN[:&wʪ 8QYÂva۰E*di Qݵ?vhՕ-amId* A<}u|:ѶXB"B0q~\(M߃ h[G](/<:G ;eHs=Te0("t)z6UpɔQk~\&?-PsT*ߘi.Gx᧌P(r9G59C8Оxve,"o"IN1sӆϴOu[Sc<5>UC}RK/e>1Fb9 <5R~L%]ydd/QC>7j͖QF6^/*C@i[D@@&ݻ 8R.̟F2DXD~ *O_ kY,'9Za׷5IN>;ω7[5LH 9 [ Ez!g1z eRޖRLҴINd>P7 \TKB4XS"cT-Z `UEUXU`DQXaa`QHUQaHVbDTDa`UXUPPXPFbR!HD`UDPXUHQ!RE`XQFU!DX`X@UAF0dX$F@aBDTaQD`D!HPRXQVQ!XQEDQFUADRb!!@QVHD!aPR`DUXD`UUE!b!EXXPA`F`FPX`b!DVXUF!UR`HFaEabPXXQHFaXXEaXXUDF!` XTPXF DUb"aaE F`RHX!F!QH Xab`F!bQbVRb!`!bXVAU!`QD`AQEX RE@XXQXQ`XPaXXXU!VQHE`QDAbAXEDaE!a`R XXUXbEXAb!b`FXF`XAP`Qa`QVQD`RPPHRUaXDHRQ`Xa`PR@AAbQR!aDaUEEATaAaAAbaX@`QPQH"HXE"E DUHPA!TQHPF DUXaQTHaFV`QV!UEA!$YB2BHEI‚( ,() B (*0 @,B B , (*0( (B "( B ,B*@ˆ *",0D* @," ,  , (,"0 * c0JT?M-+g(0w|&~@=?+;yxTҤOx0n'{$t?qum[Zզ_V]D5z'e}7+.2|%1&wнj.T!)S3şm'rN\6tMOKuri>\sPWvud1ҷ_5[sw}ukm5U?\fWm {[lǧ{~oGfy}'#_ skcρTtU:ꝿ5N WΩTT*u\oƩVT|*|mTUtzG>QKTeU4νT&}T4,7`czjK ;YEފrȾtd9\Lwn:6$"6464Ϲw mi܄an@##eJH}d%ceeKet &$&L&u{񔌼Ԍўtnlo^prrTsVvjvvtSa)u'Jhfh(5;:2Ѻx~\7[֋ւk?m}w7_󫭬kk:kkkk5ul\-| ]| {}}| {{m{[[_Z^_ieebO/r8OZI srMp8s. OYٟ_3,Sb FT }aXɏEv:x5֫ũnɃ+E>xg7s9xn)G|FEJzG %pv` 0>KѠ}Cy(E;0$U;3WG[R@*x~J)&besUM+2rRfS,71΢a)RJH;+䆘1wՊvJ=\/.߇k7rW3{(+&#@}ǣOaU8xi(I%JiY8J Y)J)Yy *J **: :JJZ_"glŰ쬰~|)s?ced7}xF-V5"w&Ce?Uvlbj.o>?yBF&Q/\<9!99DNeQ%%mעTḣu0uo66eNSרEucK3yU$UjOV>YB5Q>-2' |˟̛p5.m5;+9~ Cd̖& .3h @q&XT8Qa{)aT~K~:~c^LYp\Ǿء`v@vLc(&ZR`0R` 6¤IFлd^p6D8ȧkE6A•`6Cd_\ 2Jg-GjL7rLf$ ~11Y!g9Pʝ_)R$4#W,U3 0/Cr=}t϶?^0.]+>(V[pbUfol/V9]DoD)NG)~N0ݝs h,|,!A(qI(*BSoq,|~w9HtaptaH ks481%F|W4ʵ U?x47"'Q ,n#BIO73#5ƦtҽL/hmګTIK ;sz'1|F ~/ b7h%M0{[T)Sf4@Mt2!*hvgw&rsACչQUfɡ@'C'MQ'ROk.M{ wduu6B'l͢k>]GV/ e 4wOz%7*X`^̑IWc 6hIW]?:P}@T+$' =+ ?rPZ7so:[~Q)4C:u C(f͚r54-(ւ9X Ec^4W2az@J (Y=g5 WN/٭fFHZb^xT{I+T5Bar228H|쀋θ2H?d-tCmusT 1QnIZkk?Yl% TPȼe^W6wǗB6gmy&6+u+ޖkaKn;vsJ W~H+ҎP$$|pF>?/} RM"^Q>0W OF{e'uQRk?e&ptB&i k^ɾpJ_iIX֨&; ךQdQ!hqA$Rab EȘWWE7 *>=Z==FQZ_jݏʩt`~>=IҼ]ꃁ{_(ԌG˥[8y+JT"R0T>{ (P_T~!'V4bߒ )b"v<H1v{ϛ&.\ȓ(4Eq7;MK/w=޾SI~Dy-$?Cri,ښ<ؾ$*3߿ު&@^(a͸'<+F vr/S)?`%#ljcةEd>f@y!~붦GʫښH_M\S&C`M}8tkQ["R|E]H]jΜPp`B"Qě/il֛+5u|qyeP;Fo+ %y"K (:aKW2^qC-<7h 4d*TVZ!y7>zhb4|$MF\6ؐ=ʔ.7GȜ?3|I*sϽ ش~KEի:m`N }ÓtD"K5Lq u^OҘ'вpL@ t;pQ?/Bѝ.P5'd^-o@aĎ(@:loL8}H#!_  Fߥz\vt1uR)j.#4KHN;_%崅0cruhۃ@4lFPnUP?A %G(/ Ym>}8Awm1ò-Q!r3$v1x ߘ2z9ѽf`^Byz9""5bDݣT \NU6!@ʂ<7  F}Ai4%J7 laRX\:"=ZO˥f4!6cAGmvPs]rvsw }0R,Pv\ diEεfjQn g pZf $1+G/%Tj8<4eNoF%Zfd ~~ƴ2O'Ԝ{Q#sq< ۾t]EzB=;Y_&zj|WEvk<{5MO\cZwFi虙]Mm{j}Yһ{ۉMEs>`JS/Ym#$JAhl^y$5 (ȋO@μ/$OjF K+Jm 7ރpnNq߯Ȯj2"q^X%cw~1AvCͅ6cH֑as_a;E;!{Ñ q;a0̛(JCb>l4BeײCj9/mU֟>5akwB7BIס՞hO]f~KKp9P5ܹ 4.{?yXJvgk#ݦ=:V9Hn7P00|?IT*pz?N _u#K< V ~=2`h[}Mkx[ |v%oV3x|6gXA,LW$Xb#ˁ*,|jQ+O2h;x4o:]TeE&媲2p6!hnVص.jK' pif&q$525HY,# f*R3S{6`V17ͩLT __bX~L7=]PGZGh'0iמ/Iaski>7hq iG,4Phm֕8=X7x92 ! )c73h|M\>/2rEmK5'HK.@H59(?tLqڗYOLvݦqZkݯL<NJz6>F;PtМe\ϭ2)<,4{gf/]wΑWB*1?+ |P7.uʝj<=K|ہڞ| Q*{ Tm|=䙽ŦOfz:{4ψa0#L*( Bz :]f |k2F+cf79Uъ_#YkЌGُd?. /EXř*LhֱouDA7^? ,?$Ӄ~}NЕU0=%?.+O/ 7y0S6K] t=ܪ 2ݏl"VVOsL kkK!/E6Q.˚&\xaĕٻ#w^Q))u3gaϊYMvixgk|!${jA_2:]p[uc8g8?XUڑ?Sb ݟNl@k1^gv гr |u OUp>dwZcxYn:xOq˿vyp1orĂ&"Zپ||~v/_Y_;6nsA+;>dSfV.Ƽ%)?h}5eF(B:XLɘm(Z;h {&_0{ vMo$Yu6䠁$8Sлg+E#(yY(]:+ FennE;j:?Ab(%!޴uusyq|6[Ez{o=OrTR\T+6[ 8Rz~ul|CO>g>yZk^x痵2/UʄΕyfN,O`*-}h1A[^xB, ҆qtʾCul ݽf,/%ÿɗi)l㭄UTF9VzޔkT!h/ڳ=S=S==&#*÷kkzdځŻs2*RF>ܑ lgDƵ7h_NJ[g[%ՙc:l+n`c˾s |Ʉ{LtP86|JN*k;ժi:b%Ÿ9-Xz>\4σ_O7 V¶&̼?3exf~1[-fz.A͜D8gkI 6KZ|7#^1")(`Y sH|7)+wˇ~6qqv'^Ѱ\ V#~ߋEbl%>eiJ1Q"筕]EC!1σڿ4{C+ #pگo8~t#\αmU:'MIǮ u{3^DPR>_+po ]aO9M:dжˍM۱F`8o[`҅(\mP)w/>9nc77%oz늠)wQ2v/FZh--VU8jgAϋ}> "麙6rآ|7NSuM4Dȟo2>.| D8e3 GgbH&kɦ)"$ó:~R(Z9J e,4v.E.y PST;z-KG` z( fy0\X8P  :oIi|}(~8QL@C n+B؂|KTq!⥧Mg 0]jH" xpAŠȦТ 2 .O@| #ڿ'A2ڇwBF`0b [(k^kUaԟ+N7::5% 1w6g~ysi.?;cߢsA!F$.+`}vPW?C€'#褂q&U6H#!5^5T/ c~=T& >@C) &T^B҂ }' U 8)A+`CPGG},Yh" AA}7NF{ڧc5x,a֜UUv&.YHݘY1̓Cn]̇P&0|d/J $beZ#0aWkR* [􀕇fvQplQHt$'9ʘt̼R@D'jqY5b!4E,B^MM52%fD|5O żt$ԒjD#O!&iVtP/9NȔu%$ELf^VF;1SM '1mV6*a=d Q5 :C 8XxISXxY:XtjR:FhMRĊ'sJ7K j#iU*TTFEC˧U0ʡJ*mrNaUiHGKJ ?neXגO%M$FjWR੔arz620 )BDOGHuWWT 7B.h:|,>DНzQнg`sFiv=- !AOà yV)ECh!@wݠC A9``n0AA~=ˆ+hGӱs^w~ M AwvDS԰ְ;X: CġEʊH(}(E@= !iDDJi`t@~`.|1Ͼ%}{~/I|=ReC !aa1胉0gȶ+>gLΦv!QLJTT2#Аn¤m Bu8SgVz28ݶֶk0x"9:|*Z2%d"(B$($ ܡe!$XҥHzkT)!$Bm1vB!@,PBNI7-tn~#ϢAyprl?yϳKy1Q5MBTmҾ:Tazŵ?JZ߶,p` w}31V ӌi,(O ? !Oޯnd_62qƕ(vf'!yU02ҙݍrME.:4'4M߈qXCaX>c{%JR5Ű"[ŨJŃT+f9y+u`r;{/ > R BHRRERRAIJAɶ uHD+K'ޮY~#K b%!S'rL)ya=r٠@ca!AY }oߥ;:#}@ȆPR]=?,cڮÎ[v^pY?iq?~(fh]׿:o!#q^P^ k9T&d >6 rM#yc??5SI~,e[W֍Wն#*zƤbW%|\5*rUX +PݕAݨf%BPVO y1$~ǻjB &O}#}E{Q˵msG!V\.ddoR$LŹ@ s})F)*qᵸ'+9܍3ngȫc]k٧=`#aĔWL+zO& =laI4i1JTi%[&w󄁍Qr؄WV)\ PasNXaj"Q9ŔA%ߨaLƅ>?Npz"5]P$ F wT(Q:(PT{ $-b ضfh[bO@x Yȉ F޹ D#3&PH %O7%Ԭ [>u݂}na^n.L~}֙^ξ[ĸ[T&Te?f0膇ɎXB3$>io[p%,͹h 8q}xB? Yiw2XYVD`xJ-R(2t}&lU24)ɀ[E۠gǏt7{r:z'LYbfLqQS6,~J $ YS_vSղL[P|y]8/iO*ڢ9n>Ⰸd7Cw>WSpf z> W5x`/jƽq|cz7?])3=7d, ծ ^1F,T)Bj5RZTPST?&ed{nRgM2'~=<ǙU& `S)!SHDh%fGH7rWAx}э5CgS q=fJ"$ay\j" <*alG8ϴ,C'S}oqj]=F}srgר50Aخ]IȪ3{S3gMeFxWs"?NNG˻iHцLnޕU<{X `,>a<;3LjhOtߌs/{Ç2jHcn-Nifh܇ju~M.)@/L5wÎ8c1^d6'*E;ܑ uO)"*ϞƇ`-qtw t*Lm8w'q}b-$opJu`Yeh@\[坜1>jR o10Ur:񦫸v0 tbaLѕ!%r 0z#z,܁͜_>jl9==XbS>hgr& t3s4JZ/̒Xg=:qmp82ҥk>†XUd{ zG?1xm0 M˰m p7mm<ɏḋqgݘBLu{=s1sYdUQ<7&>|GvUtD9XG /D|<}?(N:Q.#5}1 Ak/9_6l1zogZ1D>D' ;8`ZBp%wmfO)[Bk~ J~R [#c.{݊}ӣ0|6}}sr+&]Qc5Ʃ{=1O|<-@h͇{fdIt/2I= Fljx&mC*@|1ΰKe P=C@Bu+qދeC}d(#5AfbMg,=L!!L(݊=0]O I̴2Wx3r="+X`YdiD2\׉9YW͊cVTבDYqfVҞk܎WuAeͧ{<|EFl> rA 9Xt劎Y fg}oh~~N1/gMg97v?<Ÿ| x$ \qT8` ;&k.r6g{3KHf[I_4H[~>3DxHL$mnr@ ,y>7^l8J#894JPmƦ-b oHQ:g,o7C.jQ 9 2<2ȁ^.sgXIQtӄw~3He 2ƾ)myNjdHb(Gn`QɮxU7XdEW2\Q2nz&Wf}<k a $u&^E>C8;]\%ʑ133<7G6&-v$ѵ2^FyGl̇g< pOcy Xla{z1Vo q7m^"v0FߨypGcŒsRfeM Hz+I{)1|m)Z9'$ 1KxBӗ>=ۄ4|@ `>K\/?,|6KcrɵLğg  WaFoV xߢUYCӜ1&Vpbi[jy~'Ǡ\ (<^B1rQΑjN|eĩzg[Wݎ$Gvr?`^ǺedǬ<oÛ(c#N).PGEl5H:(g‰}3GuFt5efIAĦÞ&:aHq wn#MYHge3R#+; q҃Uxh.D[7k澂TB⥢o$OSdH3e+L 5jMJCx wg!~?ysdb֮H\mJĨzg D~%&6f^қr?o|y(7jXZ+!y y Ϸ[wAq $[7F~y:-Ѹ͓@BπqLT: OC}F8$qA"pLp1ODK8'q23=ş֬=/`0=oWΛYwĴh .;WE~"6Xu/N8A}yl)QޘZ[jk9!?˪čzW Od@JE#Y;ݮ55ϗagn`) q~g>]i1>k7UI˟vK;kb~§(,8ཛ/ܭ?C7Hw ?8 ٧!,Iԝ+y X_z:U}V3gdzcm.i#lG.[ Zqv݆V@{gZ1:caVTՏ{s*arP>Iu GJ6޾Ɯ㛊)=~ 2q=\\N'\~b?_aF*)sXg8f /+|AS? ,2DSA 0RȤ4' @8tjL`8Ŝ=%=>& L}HH-t/yɆ<\t!@enp2>}q32w C8#˘ #v:ۗlhyluͰ^E$h=Oﰌ⇴zCspI Y㕼!ҝΑOgu w3FߋF l5/*ndL> T ؗX-z@i l.~%cgh}IG?ƲXEȲZ<)q-4STS^QofLl04^QZqA9޿͑[Qxgӯ)C sZ|F)LXy ΘҾs Gԙ!W2P}Gh1&l YEZC1.v۪҆>Q HXP K쟄پ"o<;>^ 4 {H]8U<6ö*g]VVЕ$;l{;?@c6^.LMa?lY=A4<{RC4q8=(;W >pJ@S 3/#C8iϟ4K ^@-1 (yҜG$#hmW 8 <;8tq2A Ko9Kox]7|=gZnǣm AN|:88D葥aE L}L8Z0c'rkg.Ҷ_%tќZs>osLp*4ДQ>x<$C0e*oC]: @\}!2fE/k|d`hbI#ox 0t6C1DZ2ZWϨHs%6ຠ?: ^™s_Xyo^lx=9ys1Nx{=t8 Wo9A /38ehȌ7 n2y󱧨'7?%8@bFޜ<~Se;8*-a9&|ہt;VX}5$p+>55dh7y.9M] 1>p.vCҰ\|[-Y_Q{z9zbKxm.H`Ϣ@x~'s^󒸡*=|NmFCvτ~xm!^nI svsCvk\mp2=&/h^LW1\ ixkC x8Eq8CM n ã"oon@'?9̲E¸=f^_y 0Yď]h8x91Yhy?&` ^{* 8 䛤 @@~1bAh@FL۰lW6X.o4/Fl@S4?4̷1Ƭ֦<3a4aV8 [=cϊD4?~ P|a6CϷ. <7s[0!w'+Z$>42]w Կ_a6Qb%r(hfta6&s0AZj &&ҵkn72Οx\ {!}8aʃ?lgovCfl慸0KC I?:el)%;\r6]}sFDI{36ldvΖz\=_pqt 0kbZXc^SBP:5ۛ:R/?g=TIQ0e{̌ý*c>fwP4On`a:g*ytD?@iϚdx{c|'H`Tk٧̑ DG6aSzSfbl oٗ'&?l 0㚦n9ׅ|txwZxxDy8w/4O%pOI+lGxF%N¿mXFOOڴ-$ `C<8a=(c|]c<_ZiSw?gcOUÀ$KxXD lQSӁ/H&g40b|͖9'j/_so3,nHfzc0L+[BvPzoدyFXq +[ UXxŽ,Q!MCo`GncϏn{ɍІ8s|9lCa\*PcX{gjy`FV& tjF^Pˢ6]pD8\*,J4('va2 _s! AS}-߸}&y<|ef~8@+Y?/dždΒ^`cAfוѸϧf%L p#wz< Ǻ'؄< bG g@0Gp/{A:$?lSZli U4^A-qp"d )؇E>!* saS|A;#,?QxS:%}bsIIW{4 34]d<;r4*#@i!nKDa;G`y08CmC7|BżNӗB}ypARyL_hoTtŧYiHj{07m|ӚmTfx#7? boaJ%=Љ2 +u!}V6WPݜm_3z0~:3s;M`rQ:F 8A^- #:0PM*M5? w`:'*lr-Y~yԜC`I݉6zw7,|sҎ9: pWMy)&^^c5^YAՇXE bD2}@\7 ))Z `XSd@/9z͹}/"Vhrx~ ICE \Mל{o43vShqH ?Ae:p#Jףkh&pc{(؃spp^+N>>+6IYh̵a%pܐQi{rc|"o 3$OtWtXK@:d[o˴/?9\ {ngC9y52rQ 2W(z;xh* r&:̣%("Y-QX[uS[ÞUnD7CRgp8i4PaN'Rlځ! #?ye#bf΃~0#H4ȣ >%,*b c w"= |,M/X`"ga}-"(ƧfNX@90t?rŧ?~hO= $›<sWǓTaHƆ(Eתa$%?a 5z0X bŝ5|,Xhӓ_=rS*7L3J0?,yn7]v6E >\GlKjjuw\v>LMp.[3ƷA8Q{RF.]L9X{(u8~?P{,nCn~%2W1jLCv`P4 R]M6QvinǵmAJMLv]JdFrǧJjn89 mOp|fF[eM5+FZ}Z.ac`_ٙ+>5Tr^~ `"_Vw<0if~/4l AfeBڃj%%R@W iw7Ƨ|!YRb}3c"peY?{(=0̊&'>/҉*b<;K9ҡJAj8=Ks,2Vćq u1HZ8{rY=`"Vd |?,ÀLoKxd=f°߭:eGmXPO1,32>0ϚX1UKM8;5<;ӝ>-@p#*4ҙN(~ÐȲفjPmݜ{ׂVL2 g%cbg"b(3@l;t^(3S9ӳ7>W2{X3PsmO np v˹34sĤ:\e#CaI/Is 8YB@o9u:X2H0Oqn4b߀̟|ra%Gp]u5pf;NTOHh6(P0.N.:tbgz4y EѦ^B?+G ~=xlƆ؅YnAՅAB%6EӾ zOG:wFa +3ONIwp#N4&%o|d2jgs%3ˋt ^_\1>"@}^_+Fg.E tNC_OvN x!&Qu'ZPc'Cy&:t2{E= {DDpP %w-?û fG }ˆ>ohiUڑs|;"@(82֞dYY[eZNk DŅm ˹Lw8;Q#xd~BY~Sp`.aTyxgpЌ/TvG.&|Ο".P dwwζc1,F(S5{!QٗP h1kUkF\ ;@:yF'"p{lήD24߳f񸄄)7G> K0E U ^iR/##6Rs&i&@>q.B01{3 r|q38 d T5^5'G[eڼkûfb LS22Nb`r6]4t0J@?3Eq#UggP'vo?G*{4jJ%}!aï-~r~=X؞DI +L0Ee90|a `*[<_hD/R7HE"1}fFK'fm>"0^C.26Jj H9gQ" iXm$W؋°$G#18*>.Z$4quIr51@_EƆ,_ǟ3P;92 {I!rIG}ui?CCi{F:r.v۰ 0ZJ̘O[Ct+F?pE ]>t[ϥ]w8{Oˁ^ }2-~bv | yݛ-$of!/.kKf̯c#Sh* '/do@lek:U=eϯOC'!Fh ʃ(χՑ×Ǿ&s;V*f59& ϑx5)oTaT4+ \W{ ,k^0`tiw}PqĎ>[^|{Ϡm?h][# 2H& 4:( %Vs즴T1Jԋ-(YG 㲩Sg/QbgJu佞\% EI܎(XSa4c}yfl1Go{_^ɓ禲_nbݕʽ'd|84$^T4oH>~Rws}o-?+5BLTWI7'nzNDgN®j Ǡq j7ںf&4 @GgCPІ2S{{E+Px!g )BEbŌcAzhOCN3f3gSa H4iLT8Dn-#CIn`좄 Laҧ; 50蔌+Ӧq}=:}Obtp߼W!ڰZ49xW-^[Oyhv xEoPe됚fSVz3`avش0;YQk>TqKcl曨&(Y,n.쵄 dK95/bǿ펲V SMzghGGkݞȽp>Mہ׌uLt\sv]87D7\C j!#z:1BGcñǏxf^7ߦwӇr  L_(@U(%NpH£J8&74x&ԅmsZjN-`t=,p{5SDBZv-HKJoSMLjU GL> GwoAh cmG˾]Ǘ}gH}bdHQ  о`dM j ۙR3iJ5* jlIMSS BI[[x:(7PH}7$vF TSާkǧ D!Ah= \ZIJЄH٤f2"Ռc1fǮ4+=z\ NT!&"*5ʉ9Qd2L±zF4mBZeû+~L"&{`/׶#vooGmAg.;6_b'ӣ+l*xϔ l5f34?0_ m:B3?ee6,*963 Pi]-թCS' ġ~YMQі L68\=Cyg:T; rާ"P!ܫؤș2Nw H{L3 y ?ބ_|"O]sfɽ`9`{z9(M6 uH*(E VA^ LF-~!1*Jq:TBJVa DBt}&rF]̞U5F̤rjhXQNU{<0ʆz?T*Oy*(e!9 fp7S0Pv G4^ܹ}V7x~fwc$g%\u'fZ&F&ܼҝs!w@ڵ|B G55_x?E|t%DmzS˝V#/g$rT~ ɍ1\[PbҤMzvv#v_U]hR0ur[i/ß}:jdy_N9? "[! `- :^%0k/oc1js!G А"5_ÝXa*^çMpO]pG8AcV2Jt#YAc/R!GE *0 nyix,$5Xw)>Iy5XL(RIgC|b8.PQ8Kogޏ/sw)%fyl<M\;T*oi3-އU*I+> GK=8Tm2hZ7n)ԸOJj~ GADaaٝYލg$C#a÷oo'GۀAT0q9ϧ4q{% ɅSR ]R\WWUAǝ^]qOB"2E:Q/1F X oB8Z-ZAV8d`VJ!T 9ݡ(p>lbl6=҂C<`cVs/<<TmZx1!:TY ;ztxhm-V}m)o3}Gy6kF"g}/I䷠*{ )>[c[ӽT5/Tr5%L>i A2V2T Mʈ/' {TB@a3p4oU 6Az9[24:R $tvxm/:A ;!KRBJ pKPd1d2e25uzF1n߫Wqfd :%Ae]=D t~m2Bta=X<%i<\GnIy,U(%ĥQQ- t(3OTⁱrW re +OGtoj"t>.drG)&b VoKlU:Y^E ]yKJJS=i\<%N(*jʪ03*|&XhP368"drww튧_JՓGykxWĪSBh\V/R*a%?1[=mݰs4C a7ἧBJTڕiNTi?[:Z(E}|s/+r0O^T\M|ppXařww.!s? ,x8XZ >WsĀVxa|ǞdOBIjdH>FH <TFz~0/|Ո^Eƪr~ B/Xã 7Eeժ)ᅣMaCԻ/W&Ѧ5Q7WaӍ찤n8X&Lۀ4L TF {>Q]p n ~d hJc֓j5@pyɋ192!Dێ혋T\ws؋Z{|"--L% &S`W dBŌZL V 6xa/7hU.ϢLx)D=X~#da`0WSvaLaA?;bsЪr{Q2K?y{lx]o+.H<nӄ#)frL;)* ~  \ h~4n}Fp?dmZCbTp_t8&\Z;E܏h@+%~{}lf@>&w<1&MI_ |qQl5IX]rDx,(~1lҬ6?0 2Z  L зܬ+,ZlBQ76zpWB;I zZ 5D*Ћt)X+W"慢{ &\*E| ; $kwHL;kLaxҪ= XOh y<LJ>@xO,`eŐwvEZf"Kgq:8~d{į{|"F ^T1'T+XQد^Cv1i_*U^Vܠ p^e*={@$ā w8d9_\c%کb|b>e℟#)v츩sĕUSjp--eO:.[ʁ|NrI0 <C\M(tNUY8`UbZpAlOaA~B/ď\%kn8QFB]ӆ7@<P'h JGA7V'?"ʱJ`S,/c3 @Jm @A\ s$簙eAW̆6ָN E%=nn?N2EyWNa4C1AW¸PjY@֗ZQhV4₥s|ZdiU6^2k%rYM)'(ڽt$2w?{а߭[hht%4CK$)IaA{ƕITU9Ү`[KqnN 1KQ5{(+OBblp~pT@G&+QQKP!A=dQO:؀'وx]xv *: ?Ҷ\Y/ |DiٞIcn~/[3m6sUGb<ۑ!Q2/ڪS%_A!XQHc=CQVQ\xMX'X&(9Kx*0_d~ͽ&MI/ΧOiU.{sŸ)js aN,wcX9̯Z ܖ**ﵿwkS8ۊ 0\pDy\Ϸ.OQE.qLuWEiau꠪)r}3;^L>4b GrX-˗J\\vuؿZ sU b$frknP~4^7z3l6]Î=x󏳕F .0ׇ8a<#잇/"FO( Ynõ؟kh/cK,An_YG@`{GCMC4ȣ|.x֔|7R'eP ҁAT ,Q2 +A -` @AEKkA0e\ښԗvnL_oiPڗrǂ&<i57ݭ`Q <%lɌ6tat+ wbv|J;-?[,#<~_kџ tkNP̀ЫcV;W.`a J޸P3I6JGoB CB:31\ )aL?$',[(S +V7 7aQAt|/ӟYʘS޻*qXCť$[a,q">Fj7xxY94"R=ӈOo'6P.,fx\Zq6B0YWaXuo"<3"Ԏ"[ 47џwlJu a59//0},LJG°8pbzxF\#I~Ya%0+AlpY rqڠ Nܛx| Az[ (T7+ [66g$qjs32NK*770Tgu<3=ھQjx]$%&cAbŋAkB-p٠ɘ͛QF kUGRE2h܂gQWG)``f5bi.CW0аpUv ]aP\v%iBtu/:Y]H"GuaMooq,$ $\ lEJG/g-u!# v0PA : }K.j굓_3#qh,bsT~jn}?; %wovC"85߻*% !,}t)d'ď@k -,5|3f( d 6_bupHJIb..֏<4NMQcGGF`( ?̤N%LQ(eE 3M!!lOqy>rscswꍵm~YbZt U#t_f B_'T7#Cwc}^0++,)z7 SӮЦXЬuW^gWA'2)@PL8m&1D`ch3c+[Z2`;ckK$I?B2H/ĥ,͞YQg;\NCMTF`lW8'zuK?ΠɈq0x'{|V:,Bgh]-=N6hidu8q/Y89dpAΞ7.V'7ZiMic^ Mzy0s("bDAˡw܍JH"j0aJ0))ص 㴫% |'J'j@,H$:Ȑ:') fiBA#Чf> i\~ Mkɳ ɹ _| ˾ C*!,ǯyVeBp4ʥg:9>0Rӱktjիoz^ t<=mx,1VU0hL`qH廲FHH0A;͐zZPzH!6=p .z1|y2hރ=kO/AND1Šz2+םahuyy" `¤@bѪ~ȩsN w,Զa?gzlg aF{_mmÝ<&ޜcFDF! NÓnm^|Cɾ=ӈ_\f 9OnCzJA ;?{̧d v! ׆O o(.' +fp{q ش3PӭG`Һ5 ?8srW:<}7LJ[b ? R~wB7i ?ZlL1 B/M: F (X\[%װ F,e#=Hڈ'Im]ˉ!AGw1)l?|TB8]"eAp}|wiP#9Mfޘq1e=65{h14F|vt=U <㏏gf|A,ǩ0伫& ~6E7I>9  !ըZ ˇ"HІGD]aÀވʲ@q==+bamY~zwqdRTrI \;WȡnYJe}gO*J7=EREr;kT{mp<B(#LB\lL:O4<5Ჶb|Y( y+gVzȇx)i_Մ[=/3vnC`hRRN-LAIHʨA3۸qއQDWL Ԃ(ġEDTHhN9'^,PKH)mn ͉ BpA2 97KBb {Hw8ㅹҁ>լ=& 8=Bܱ&6jX%`z4*1҈(*ӗڛA=%D7|i yY;販폟vS _L=cJw:ZÏkl8o$tw݇V`.=<{ ׂjîJDKa6CHAx/=!~2̔sBL c 0 W+t*ՒDza% *!J-Ain!ksDC#l1Wca`?4VSQ5<^L?Ƴ"1 Gkad?{MnJ`8!cj7C΃!ƕN?Oօ^m9b %v53mHBm%;ù]~7Rc/򍇁oմ~.qs2<.BA@v[w0#}hcXGz=:WX2?Sa~M!c8?M㧸dw[Ɛ֚SvffF4::z~dt?od9Owrb%q[}].Cu8o2d蠠 +xP5ӻi 7gurqz|2S'ڛ+q=䯱J7g.W9,8(ǾhbݿUdcN RªhNJBhRTHV k4XZ-[&- rRF=x"U""D w&+fvpdVF4 :CUS sc`2 g(aҷ?gBP0;-¸ 2'K=s?AC7K9 ́Aˈk:QGh8R νQ,=TbR@jQvlFFFOd*0hj0 T3Y?2XgØRևŇgxrm3.~ky5fh%].j Ghari)ё 8C}¦ֈ$Y3).m:\#~rQ˙POŪvPHP($RH}<\YX% tm\>Ea\)K/}\Euc$ | LzO6haeI7_܆M0z a0L†´q/lm!F,9q7_ƆdkWg ݙpd;~a9=SaWOW}?RSGM{i`L~ spՋ~ Ɛ +hVD!r3v6xϾ = mg420 2 yY~S}a2inh:x5dپGM1kM crvr_`QQ^j ~n\p`dB~0nϖ5kNO:$ZAKh=GBP+Gtlۛ׸N_av6; (#%umo? ~ldSIC@ߣG} MgaamikLaA" [m0bcccj$D c`M&s(Ѽ vAJRՔE64*"LCA=ApZeNL4D&2xhcTi܊n~cF`@k$^n?4(G,8C0ð9VM%8Z< -Mr@QZ5c1n7i}4(YM, P1ÚԬpn%0?LLrZ!D$OrD& 8Zs.VFjBՂ1ؙC:W6Ί0 S[J0B΋vVr`H BKV6##a8V͟!lP߰٢sÂj JAD2fSL[z*5tnukZ!9NEloBk=&+9U}ƣ2eTU9bÍ *,(bdf??U@TK$!*SLpe&w0"3(4D/!Jb9qn/=XO#_!MGf` \cID6Ւ54t|Vi\ii3\>6ޘ|7ZIܚ2_1EgjR8MR'P N1ݯǺ]۴01m۟78inrf^D, Rey8f0SQZ2c6Å6ra Md]̹ 1֌fjmD̙"Ɣ8Z,8\Azz>+O6 oyl?~y8fG1}5X0ϛqAEؽYXp3=pk4U\T({&}f,k5HK;'r rdA9)FwG:QѡNS359OOO:wY(w:y)h}fieA+ʼn1pu5Є 51ɯplL$B vafuc_B7j1FL>5Z1c Soj^ke!02bS+}dP\آ\1yo&bCqٺf˘ JL0i11AV';+8}{i`L4b!I>a>0n/{LxS3j`BbgPOLTz{NTXp ]dZcj¶ Vե ش}@#Ge[|r 齊.OG`ӔzmI;y;E!CYhcL43QsTC7\Z1y(b(ܙ|`Qۮ?q x7#27r|`aNBp !C9~YI9{)(aA,)nu~h܏QZgeSa D$f<)y4xE\?F+ !5C5K4jwLj9?t|]K25.E ?;`DfӞm-88~m88i8W.WV۸N1 8r z$["R IM C K iECz5ҙqM$Oeށ$!P $#I$A$"B*H ! #""F.T$"Ht5A,A ,(bDK )($"E(A*$,)(*+!H0$PB , )L*) `%PIb%!H!bP @Eb@ R?1$Y-"2+#"D*(Hȡ!bQ$Ѩ"H)!!HH"L#,@I@PE@QFBX PJQdTjQA TAB-%bU@X "% A@F!H`Ȃ(*)(, UԃER2%@I $I%P!@XDEH**TBE$D| I˜I QH!BF H"zYh% XPPPH,B) $HD* AY)Q ## -U$ H#" Ȱ"IJ  T| `PP? R#JJ 0m$"H-A*#" #"%$U$H $BSHŠ,2# 2HPP?$K  d!$%AI*$ "B‘ F8)KQ$I@I S,@ H@!sADZJ{gaךv{5Pą20׼u?Z᝕; xbd!QQrI'mz\ B=AqQsk10LNAlVWǾf|k2S\2Цa,FmRկy=W Gu Ȧ\Ǹz?wظ9j0˔.T^1GƐs.:\/=B A]10`A0i`b1Glvp :(z:o6ġֹd,8};mfK2pe4 7ZiCajalg,c BeXh9FfعbPF`^BQ,7W/,5XzJߛ%Y8T.a0d`SzkQ͍uti`0̹aPFm70!Y-Wp|m$8Fo{=VFrFԿuU8'9+#FCt͖BF'.C_/ lAJB8*.`~† QZO/F=B`0<4xSprm3a_ ';p_5YXaC}pq22 h,SckIJ_6,Sniq*B< Y :bEÍ 8َ˙uի#IWsdaLH2>nck5!fl}X8+ו;pG-C9U\^yU~wx8"!L#!ҴT QxC&'<bJ"˘ ك1&nG#r<63דךPzCj9sl\3BZh=ŞmU~wk"SggG7+Q Bz!ѧnDC=\TƗ:;aOB6?8viMx~- 0vN\,%L9.xG.}3~VpL l~Q8iLDql2=:)feJjf4kV^Gmxi8sڌ;)qidZadl:ŷr&dw T 7͏S^ٸHY`)I@拆Vi&?rgrB*'z(R``{bQHk?y͆?}67F>y>ۀ>{s?C1heg:,~ƞ@zBЛ\2?oXŹ_E*:Hو{͜bO:c]E %=Kk 1V~cmp#'saYNne%Ɉ&jm,vد{elpxVCvu29Gyfྊ8 gtLO&>}eѣO5$fæ8&Q\+OXAXFc.W2N7i ٿHlW4!)i>W LzAA@8n%MfUl&ʗÎ_f D!ڄD~Hfqf3f͘١B5)ؒfY!h$Ɵ*M"X8bTeͦl(𴆷1xx3Q{Xa޺;繞gjpx r >p@>L*J8ʀCCP=B21c4D%;$JCWp8Ty&-.J  4 -\ybaW|6=5$]'p;f%abR"sfa)ߟX͐iyE!z> aX?lnޘc0o}?v3jZcfOS9VGg+5&%f6 > 3~'DžZ2RTfTD2!4w6+k9 tqOٕ+Tz܆GYrs9.X{%8l}{g(Mpמ);w8[;*|ORل3S(s\q 9]e Q[14vv+wиQX!xJzX'u>#68^:jyYAka~q[ީܢ?rK۩X=ӁvamK DDnI6 X Կ^ʮw^aiן[tKYZ@\>΋AmW$Zi sXw*=C B̆vedq}Cyʼn~+jeS poe8nj y@o礀^m!a'ߕ`v$`=,$TxI}^y=6}C>u_ʊ0CxHhk4 H82i:к,bX[b^[,H 8<Ҝx08>;;yʹ:o猃) tr!oY^s#9vf{~o Ʋ[%0Hz؆!_87uPdMZ]p De~"I{*cf$C//a5>X+3zxC? DEsW7M[+l9 o眹|:u\^jj?{l=Y`0Ӕ 7X7c_vQrϼ9 ˡ\(ާ„l L~)/\mzlY{Mgrh)))/8̤"2fиZ jŌJAl̽#C"QCh1^VUhÇ- Wy#;}y <41H̱`޼]̜OXAlu.]w4w2Uv mEgHDmE{v-5֛ w KtBfH0 ֠)'f,ZukN ^.A;ة@ǂ*E_t#eI('IE" ѣ; T!Ხ ].-ٱů0[?*ᓈ0@q=~ )Bg8ӛ#{l)xE13?f)P@neer,uKmypMtEuX;é~բ &{9$=@>I!=e/9>oDMwUJ1' D^#HSQՋWiIʃ_Ǧ2!qD|~=B? $'%5eUqooz'b `zyo=mE͇{yر-E~0t&9Ml=U+\}J~{7y0ù/Oot`/B~K WcGze81<ńP.ǹi-o|S!Ruy_H dtR(&A6$E)T=nEs`ԗh,`/p1*h4)ZZSLb53MNZM*: *Pv,NStAYEkfZo%vYj36$-ahN|a)A:4;XZQP ?d`v1S'V▨4ϕ6\U4zL*`R|oQHdӔ;QV]AEbYy`mp!wd^Z[c|%G/>LsxWC3wM %%$K TԊ@qQh a!ΪAK Kz*h帪4tT>i' kK_pAksdeFž_jt`_{=]|sGj0X!&ld$-:ya*(I蒽%-;_x=6(0]/X~-?;Aw2{ [  ;5n~s mK*u{M !hڧŹSǥ> }-/dg;X7f(,I˲ `?'>ZkmҲk~撪Uz}WH~yߞʧv뷏ʨU<$cALc@fЩ R)^r)PbuR5ETUGA╰f4:/,Zk:l[xU2!9s_p.\[*gVzpn~&A^ŷj%9Ӱg;!g%=Cn$Ӵ3|ds[d/0?뫊gSgLSY咂xG铩o_]&x%'\^- ܱy^bRO)簤vR &'[~Fl~UҀެZeYGe$&IiQM"n;qRu,+ػaꫪpќrZG0]ID}%ŝy㥓ˮ} ]{e; $k ?:ZiԖ"gQZ[XőCa lcbfpCIFFVj&NH}NxhɅlcM@a T\,V ̠jXِ, %]nїRڼDG|>*" NN'$})&~dfŵՓهsTiAAqY!BBByۢD*/3~*.6ǰ(#ETI3"BaIXUY Ra=_PJ!2<2c%PtvDC,s[y=Q{hO@_FA[sFn4A>;U/*muհB۾q8=qqqqǮ8\q=q\zz8qqz\x8=xqz88q8ǎ88qǮ=zqǮ=qqǮ=qzqzǮ8qqǮz"5,EECc?=b9o,tٔ_;C/-ieZN55!O|n&ÐcƎ}W$3j:zA8ĜWYxk=}rDZ5&n&qI *j(X)YٔCت5#3' =Hܣ%'P.vB9ZY*$=@ELjZi,ʍPeYV9/]U^o~O9~Ͼ~n|YQ뎕aǎQ/m,=YUqutglת(in=eWzۧLzx+S{!yIGkbB.yTݞ|- aalg(1Q˘8f{芦|؈[gmb=ei;rp`Fw ҙy5\P:?edKQue-mG+0mFv' 8Y߸X>9yyvk#x^tYW9_)g /8 -0*ӛt‎Қb矰E Jcl>f E.Y`=H~mbĠ,򄄘h' ?6I4¤ %mj;I|֩7sw/p$\s uAxYqIV(V.d,?"c tY,e{bM]h@~HV,%cmn1<ٽg'tLna`!$bv>d7( b''gV>}1k't!vMY.R$:;dqճ)N,Qwicn꽥,?nԛO;񅨦6N}o7JN ѳ J*lQqG :b`쌉'mbk { Qp~ovOUUcjh&(/ NK3t \Č'?'' \n:D J LHxV&֑S p0/ #"iKr4}uL9N8ɑ` ø>қd:jλ0sp>k{T3Ȝ1BYOr_j$ .Vo?;OP1S z9g3e2?a^+Һr:/:qtQ;+!Q+EݑO.M vB|0ż//e11\`6*Qp P:Q|vQ6Z(_ɶ/"Dh;?u|R{_$~L^L4/H)ŢTW$x]ZIlxxx`ė0uP I:-Ә I,0D`.!q9YV(hqO`e~u 0khV~_w¼V*Usg'7QD!Ǒ*V`Ӳ0 w60iDkAfoP᠋v=V;z.GcOB/[w缚Z3ƬS~}T y =Du}YwwM2з4Ly5Ǭ#^4,7,50=  = ƉMU>◍pAW/*Qhb`8 elM,TX["^acjွ{1Ő.HÃ3H̢I;ٍ%nw Z5?=n\mQz(}ZajRHs͒[dZEu?A* 7\h)>FObD9;DSCl`1ySn3/f+ß^ :0ThvuV9c4lG^ExF9 \jj7/66\a)9?LVQuDsIl\+L,e̝vlUQKj P>Uug;'Yl0ߓ4xRKb^?F}P*ΖPs\zg3;,}z4#Š\. ڌX \,|!"$kK3hn~SսX͑∲P鍰ֳ )~a{q{S{ 8f,daG#ߛ% i.Z*9hC=}pf+xL yGRCt4pubUT;0S|EafF>=7BBYiI? f'}@- L"p:*BףOWP^p7^d쁦T1p2^ +/I Zz2w{{j}\zG3jWhIHb&R'`+%WH`,#F+Aɖ(e;5 F(Rl;H|X/.5&1 E.$у,CH"꽣uQ㘢)pr.\r7E˗u"⥼:oW˳b/TĜxrHppa#r=gn^>b"b-YI}n(3>f_$t#NP"Sw )Ǔ\m";oQЯ7[$Ò+`p8G|tmo6e)v:Q1EMDRek45)o`0 v aT+rnջYy|P%e [U3]~jVs4oj_0@; ӿWc};v0w XDR-WlBOĤ|;U fE_IIpqPH1@t?Jd 7(x, 9)q JOU+B,}Ew*OMgn⋚㹟u7nR)ҊG߾oY rӳ)Lx[f9_6\d=*%44t?D(H~+N[uki@iK\id\ΈL@~?^|rE. K$b_4]knfGd(F>ߚa_6$TU7 ذ g * RPZ& '.wW t"={ݣr$8T㸬* ?- $#I֐Ett{FR1I-nv }D"iOm}> `&iP% " qVWݾ[?p+c_x>v1|S\YYw yKݔ^VGYؾ7#]6! $4\O0| Jm9ЊcJM;-444GNN-(L.UB5bMV%=+}Nؾ;<9k vg8j lpgDp n<;Q/hú !@Ѵ%C`rA)m(~1, [A <^vJ{ጫ]{V6X !tI* *:M[8`<*rn=d9c̨HWމIq.wbS2 %Z{7!e֛Mb\v؁Ɲ²~C_NV3U;|82EX M6Pb%?3 ($JX=;DV5FY`"P8)nSU&P<O]XžSGiv?14j8 |;';$ڄ|$J ^,ŻK rd^adzJRa SkJRҔW搁<{$<|T;% <Iuf0<=8BǍ&hl eO `ϸP<|qf/C+HU0D/4{Y*51&xpɃw*~ lk$#* N0pw#bnj?]z{IZQ ~g$ވ1e~"i͗D_0U`Hcfnȿ흿kK0QAo5К^oaTcl% +jŷ^14I5 ~( \ Q`@nh!=FJ_a'm /٨~oOLZofР2R"|RG)M`}<X؍#_AT!<|l§y,~F5Q;6́vQk9cwՉzN?P 2(rDO *#. ubBrY(˽ S}{HC 1Q/8L ̧4J5)ɗe]k-6k0˟W[qT\Ow 1&G=R ˵I -z-@@o5Sz 7F9VQ9d(tcibTeE[Oʧ?3sE9wqt{j>.=!c Rg({mD^FzZ6~f)4yϦCtXe0tqX7P8#)xv^wWoie-zӊ%I~qI +펠R;.C( x _1 La(_~o:g?ƿg/0*`ܚޚcƼZEC!rT$W ca%oԛ{_a*gsrs/E$QeX.Ʉ! A+ABJRZpv&_Eb]F!z愄{_$fHЕ:xS "=] CtPb6-Ah$,0&tFVus[|+%ϛ_ZXdS=&($7&NѧuURӽww?]qDE;˯q72.Sh3njVSM! r=3{VtOwبH)NC{bǓDx>.dP`11Z`ġeu ?d\(b-h\BHE@01N M-k`;F@ Z_Y~ F9IA}7)1wwq*/s5P $!Rw]n/{M^A>"/%EN .r^5kPSs MMMMM\S/QUPUW .h浮kM}M a6HA-AኟQ:5Q@.Ci`: e!(q "L}SL]D[PوT_CR"9ȎE4*[D9R@˃"3TbL$6BU&m#)l}G7C{߼ݿ1SO 4PS@7D(OUZ֊}>A_R>TDbm‧!x( tP7xGP3YڨI"%EG /Aֈ%E "AC&"~'b7>BDs`}((J(|艤8q$E41Ww{ :imJ^ǥK?käe"aPQ*{_r-ff]ZP(4FusNBEpgއ1N8Jp6"Y m}!~AC2v_hl#ܴ6o7͜'u5!BQb0R' ӧP=7G28sș;ׇ%CMN"ׂ Xcd7tNĻO&ÃΝiGDP-Z7P9a0Q[+ioR(}N*+.= *`DsX/&! ;x<Ȧvcy5ݘ+.2|~`n`tG16yPZvN Z;.mf §'.,g}14cH1O\Qlz![j.UkI53 WW)⥪Z?[]h82ˁA@+Z)rb|%s 5eRȔ*ĖshkP^\i;bJmΒ(wht2,: `^Ly[D&?* %N&NgeՎRSk(V,V\d~ OÖ`=)dU 92Oz)yn6UQRM̠owx8jOQc d*p}eP3D\}(>۾T)J*gIKPIUR,٭1՘eK9oEA7@zr]SK  !JS@V\J=0F]9hx aSW.3q/xd*cW>:c- hhȕCRRbi8cь[`/^0bC,ƃ6lٴE~:_h Kz'8-xsn _WvThEI d / VOuRI~Lj0¼e)=$SppO3=^-Q #yD qx&>CP%%n]]ev??hS~EJSAAt=ܼH z?8Waˆ-tе8=,WBL]2q'TC?MW_s/iт^ћoXE UCl3}b9¾[U[Q LSmGgp{}ֻr~/6 (e$D@bE >s ~J-׊{bb \BZ^ !S=vGj|O+#f T%Q+rmJhB!k4ɕt8FE5AF*)|%4rp# # xgR^B00tr%ϼn7࿽Ks9-`2a]n[Jw̭S~U( |yjg qcfnozavωU;d(ZÅRE'Bd6e{N2ԍt4$ojPTH@EԔAHʈH2k}6#aUvO `T0H,& PZ_G.ˎ<|돟<\C3@F՛{RI7ֵA;CPF=\GF! 3\R`>7y!˧ȷjym%7sd']I׺jZLueY_~SRގ=l[c 2>y^ ?g]5*tC\' 6\S֍?9QtL2ɖ1L$Y,&;X`="IT'o٬ wz(v7%D֛8K0S]4g aM< p6)fs׏Q y?>`r LQ?釳L$ 8 ʶ "qps:J]rO bMjZsTUf|/PWpCVEb<Gsap1ej \aB@}G݉KH?G'T-ɾJ>|o[/jc8m.'3b%)o:^ 5e2"PI/aٗ1_gFkA'\Zc?ɍpH4#T 1Iq֕n^Vt a=0bh;ϣC 4$ AAAB%hJ*$PJ%R_A8ópGUt TtP}Pb24n }m0 (%Яcw_r֙5F;M8qEl>[L2!ࠫ`LWa1dAy^6]֯^/K`tpG5Ƞ v1 ,Wݱ)=Syw\]q!U;nv.Ol&}Aw`TڌSXX ƥHPg Ȅ ,U;& Cwצ)BɏKg-z;_{ݻƏAµ!#|JD I8 !Dv(D"gx^ 'oOi,>-c5}(E +C_j>ʶ*/Ilb] qf009'&KJ|#|wI^;owC%};ڧʽI9Cӣfe-?t={)As O]@ 132,~}lZyXrsݕTs*mriF\|gU"{*O" P/I;G/=+| ?0_ pTs^IEխwcVuM^sXw7.:EC ԨnVbh_ӡ+0l!nM,gf#/׾՘4{[3RsX. `@ѕV3eiB 0;\;1t9e2;ʅ[5YGI{%)<gzBg@HRõKz3Gd"+{<=&2sW~6u(*HvpJ󪴴*6+pV{v6f9_y?DGJs32̊. #a&d}0#Nҏu@^0'' H Q A5 ILywWtj*4*6frmݠ]kSp4,ut; UN0sRh9pJik8EaXw$GlO=B!T׹B0Ƌ7I}! `dzوN eRziPXͫWd %ه!hŤ^+m`h*潊HgQᗓkaDpJ|3Yq| fșQy5 ՇRrѴ5ca(A!`}J@@C0#;z[bvV/~ob0m}łcΩ̯EFZ(i7& o_ _ԉ K̭ixP* plZ\wuii(ۛ$5C:44ѣXիٿWޡ/KΙpֆO\8jKvPlK͋ YjK{vIfI_mxV+$ ŭЦ 0m0 /csx\TFKfb#\`C3|( <_OU O=ϋUENkqM[`K Io/ ]NS+:UTUƗn!a!jv"a0Xya~/{8 \#ϙIQpyO%:]{#dh_;Y{NeaPҙAl\C *,WTS`Nu6ٵʢZJ({ϧ_C2!OL1S*ŁIJ ^į rm"a zy\qɍvƸ i~xXVۄ alnn񈻼{KhqIbi])-5*yr_tr)g ~y**ظvZap L6Geyr}qJ,p%[ ۹Vfx{TT#}\DwOhvW2yõPQs%1](;8uKÒM8Ǟ`l3!"|'.z`X*h򋼲$w?E:G/ӕ65=łQqGF|TѢp)0JTJ{ҵp^C]7#~,/7ZKo؋6Roy YG@ê -`x( +lf_K;M`ĖgS˯`zy[4*a_1 H!'M|a `늩Er2Χz(`\g'Jܮ|XdYnnN#et{۫tn a;g>9t;U:*]A&v01uHɕ4 @RR-TЉ:ğ8gWq[`͝ہ>&b{%(b <Èͫ8&\- dE,L" .C*p.ËbNŋ#2 h{5o==3L\iOVws.bGOC}3 fZ. <$͉'nw>,FԩKJ1 @L J/2wJZ6sk1ǐ&K{6,}[0;qxMmxZ P^J2Ƭe-ʡW6K_v穞Цi0y e)bU_jweSI-*z |J^/U@`"쐱GoN5*G\Ux;tT>yOezJ`z$ :7 F'24ҀPWѡ+M;f}lɝ}x7_9v1 S'v6ɼO7O7O e% uL+ԺO&:93ٚL|z{ɅaS =Zf%13}'ܼϦ`D&^m/&!' ]MT`&N3SItE&/LfLLJ\LIMxqM5_æF13%BӼLS:LILDB`R0Q MgfS^Mv4tixxS0ɄLdbc#?\L\Lf;BI%i#)LZד/XWI&ZItPj3UT4P&5 L%B`LggR2iL<:`&^y3ɘM5bIW=R|~̾: {Ci 6"u(cR9Nc_Wz3ٖymk`M|Tմz4b25`X]>TdNc03fo^/{RB]݂l6*H}bi"#8DwUڍzK24T$!!̒}i+ T 麪)]b+@NP4E*Ih՝2>qU -rJOf{瓾*}\*Z2d%)(ƴ)SjJZrB^j r5U:maZ >vIpSTV*ML6jԑWv62^ncU;9յoƕe{y~+!e?F9Wqv8v6lD BEWLE+}kߧ12q^m5FO|R-% 0fL2L`<WO ND&VF&C|9J_[$=|?L`ìobǽtZv0 B;rެqJװoJO;X6bdL+29m @8S~.i݊;z~S+>*)ʌ!hTJ:29XT&SwkPڋCp7lO2@lq#Vuߢ,V7U N# \8TJ ,UV.ޢ*yC/DCtTMG\gHޓ %@fχaa:11E'i^~z ƛ&uJ=۱=t=pzq)8lmh¦3iyX%=xvdL]:"%9ϗ#ppeVJ7u73)W^/)]phVΏg؝=g{nzէEGeh.b"i=kk# ֨U$鿯lP^8!^}K׼T'Ԁu_v]ws8O.f2SQ;ak;8ux6qAnG! y  %ܓV zYAoWjZm˒dǕzࡑܾ붩l/Fvqh?Xx-y5W*zd_vg2L>+?H› Jj4%' =y9OaD Oe(k `qt% _~a_>ٸGt U2;r.ZtGL7#é01K Tܔ6܁Ljcv8Usud4"6oC?ph:TWoRюÀG@w_+>|qg5K._&PdاsvNN5'>ɵ=ϔRu9ks;{?=/<}bІ۠wgrʰJ;^JdʐAF@ cRj Pxm9ou el^m츴ۯּeבo_AEEv+z(揎{k `Y@RX@˞y%g|c9mBʅ܇:x:-=[v wp {;)|Ø<~ $f^?wDM3'a玿z_ EKb{nu)v|}r+a.]:t{UzC 5礇 <_ ٣sz}<.HQ \64~;UR2c lE:7 eD)<=bf5y||Ȏ xEo}Q-HxWGl1GOyq{zMQw^DOQ̖QeqfΏ$n\NV▘K8N|5 'qsg?TGRaJIց,q^fᆊp{ȯl@X{/8?4c˥y. CB HC /?oLt9ؽG[p7]_-lN ڐu5iX[3y  ezwJҁݟ(WХ9îpd7P˿z:Dxm= ]'PIu c`n\Cz-xYN}OcoC*P+#cJĶă )I>˶8_M!${=G=8n&Nj{tpvU;sWM$nbۍ2?BɍoB2(~WJr_g|\Jf6*fe4RoG3[Z{8F)NhǨ(JPr5>ώ[fc^QدTͅm7 fl@"KSǽ44*,dlG!aMvؾ.m|'l}prJ0s{gyereһ~u3nV vӖƣnх{ĴD8x{JұpȤNh-,Hw"`4|ݶ[DJ'{.P+eVdZ*<_,mbR=N -JeY!1DV1, ܚԘ>z,;=Xa I˵VXxOJI<Y>Lc7[~Nx>.E juK3yhdӸ #|]\5[hư^]r]IPxK =vMgӚ0+8"˺s-{ Mu 3ȸr{&Wq&^~d}I=_dSh`4V7a2K{e.=}ZG *|gĞ;t]sg0]s|HTmn*wufE1]MP[X$6phҼkH~Lr|* ArS/RuvxĻ~qlYy8ճJJ20Dއf[^oHD."w?)A{I`3yaVl glGs)NyQ3;{'i2nFMvgAXjv|xÔǃ\Ġ٥H)zfWOp8 fj [O8lDZ BG4na0fCPwVI|YާYnw+`9qym^*" òN}\dukQ'.]}tB@K(' Bы' "܌:+f#QBl~[=j!}+Q>lC/ G\}F^-szw߬&,;׽mcyVCs1GX>ᅦwK`Iʠbq]v.X?~MYېi y,UA4u(3J,;l*6w aV|8~;/Mj Qhk kr2)RJ^z{ !hNzFbT.ⴙE[OeDҖ@ ?{ç kDVz &(f3xfb",FS5^ [6)m6Išu$"NR OebO@ICOL^B>ABB ^qyj6*/C0MQc|PPBI7h^ ȗRaHQ{񈢕`NQJ+_XgD7/$)؍mpԑbA/2jq$0y ԍpV!,(yd8xu_"9Z@j(V(y"@RE)=TP~n 7]TbA?aU^&tZ&z$Z(b&ETd}uE諧l=U}d­) i[^[]YNhkj# b jt/ !&ESW}$öB"&eb/^MYe k G 9",";S.rZTIRYe"*4G@`FEj1a{"5$Era4QMxL͎QdW95bf_[cFC%)!$w#@*D )zbkD TRWhCa a3j Uki:Ii+ y;uC+`w%Ѣ:-ꏘtF:wbqwTATIRU2%jg#.V ~V3E) /U0(DCF`6YC8#[OIK%bbM em@a<=hϭN<%EN "fBxB;^B,Sajh]ķ]7 )%FU]Me)rFb+Y#1$,(W$**G1?2JuDb1 D W':2:XlVfXw%5\w&K '3> -`MBP 9+dPחr>j2][Ph"HT9 fLJ$W?!]UG]AaA$H@DPUDa!E!VXQTUE`QbRAFHH#$ u9?4fYeJ/|DnRR'/BU XV E T*\+\K +>  v}g1͎ؕm9HHjVk2&23\|#˩UqLdjwQ0#MrhJ"ߣ 1Is@BwvyBf}|ʇ1eod!:cRl<:?|Ȏ}-h7T8`n⺗,|B>6nNdw-*;u !b7̘eQL=)d)UZJ2 M9((õ'tFwԜWǥEvߋ/#!9$ qf(7c+N!g=fHͮP pۗ0\{1S8Apj ٪![ la&Mm Z'l_ 9̮><B[tVF⑪yGheYHr[_[ES͓lțl„+`F0Ŕ99@HOCyCF{Xy|{mi\kecS[xn2n,c"@$K8X9Wivӌuu(`Rf^,={eŢվ5 0<,F3!g&K%(am?"]l 'b(r>U*EIU}d6`8jfu,m>CZ䐙*j﨡`a3d1sݐW!J7*ŷuq7X(>т氦R^;.ENح gS< Je ?p=o d˱4c.UYֹz?H|p `V:^^2 sO>9tIR,v23s}\#jB`CEIW{F]EON9-?\?-='>2n ෫MΔp)SG3B={n'Eہ9cCDzB@H+CYG =7Ns ma-vz SjF6mgC~lIAnA|cS?Pd+Iٓ'ļuxR%3K!;6wh Q9晼W9t^"@ QRS0`{=FAY57t?2O""@P".e#" afHdwBj \nַV5XʃOOfpj[gU*;$h"o%>r%4 V*dJI $j)!L"Tb*v8o :ipX.G]Oz@Cjn'9K,שּׂ!b!Is$&qy53/q$Rpbc2<{۹o62Ezנ$DתAQBzV- nkɏ}<$9 on }V(6N4* g./އ]%#*E69*Sp4>wCnI B位C? ߫3 Pa@MbKD)!F+IG/Z|R=^ <^)+S= Drje9[1,^eᔥ`]4։Z;Z?c>ў,^t⋞.XJZSʢ!xdE4J3 ُPh֘v)1x <X_d ݂]jAFJm##Fٙ`:af bI*?k(d'v*֭GʁDŽC3d%t5LXfto䚧[@?;3MO8#Gjg"3M.u0P>=nOt/*CmkX*{'S㌻EkN_thD,g:\-$npȫG‹2=!G.V7'e~T .:mQ7lҜX1(w*3(b 09A8!4 N;>fl.h_8Qt]B~qqFn)`=3A+ )+f.` FSQ&X6/tꝖ+w‡ V~UWhtJ&]-=_]V})~ %IKn|FD_sVs[xÈ%gLs¢όET4p˧l:c7[ ky}f J FI*Fб> MɄȢXި=ceX-fBs T^NLIR}_TWi>6QES5`@gHQ;) 5,Xxq$Hgk|qOC:Wwԗ;֛s!ͦR`c#*fvG]dx &,IQȶY!~|`Z@a+qe],iY'Ayo!ry2e( )0.!..[bsAJu :QqWi,҈((F6}UyMCZH"%V@(UDp:s7bhnK=$ 3Rz*:$!7>Atֺ:M->gJ*ם%D9JkuŽ0+%_Amdvαj6Cc"-zk>ww0T$78HI[*nMXvċe/f?}; %6OHRɊvsd3$ΝbEl |RS+ᔌe}BBGuNW))N6-T5f]W"RIŠbNc6G$QѨ)7R&aɅB^*l}^.&V $r6輒(6ڙ \dc >w3dT[~nfQ!6ޘ?D{Q<=.gPUEqihs,;_5EvTh\X{=fvY ⧳A 廚s3Sܣu{K=}Hk>Y5~aXKfmZ '8 +}3J2Z_taC( C&̨o h_dzST;tlJun_b(( ! ςG)j¤罉*Ũ[ʪ\ো[.cO4hJj`ЈHI&إD[!>'Ih=9CHJ4Dɜ&N^0   (I:Gm!z]u&2o j3'Oswbԟf{`l6l|JyƧ^P >U>&LdFYLe+>;Xm&fE{53iɏMќjc8EA먞**Qa=7dL"GY;KWM:YrnSܝ(K|6>O"]Bbl`jps^j i5J!MkZl0pp>zg=$@SQ(n"Py[NaS%ܯ$*Hᔮvm!6Dgo͡S۵$fP ~[ MQl:֭͂Er`_17xz|RX3`ͬi64k"l%$6vkPsKk\rEؓ. wE&A(9 _mFX/cckj˸fic1Ay!7 L0t^jZ Q֣*V=6|VX.~v,1VK|lpXF䈢/AlgXPr lzn`͞  6ewV|4بҘ^3>`v~$^CI(H0'ZUٵ,Ey&.Fʧ dUz)}ѯ6aSPk*F}?_ 6_| (@6| Y!*싁X~7XH1ױjetvt>Fm{hlS z,Y2)e/y3/e@ 5-YAhZ E-ҲrE-l3SZvm˩sH0ZeFGNXέ0ʏAmW'd! JFxt!F ܬlˁmŨG=Bh˄յ@Cx ^PxЮЋ@#!i.d&7ыP23G 7[F cu%$J90hZԽMEklkNYhm|$F=NFAWu^gW,_Z#8&"}}Z4J /)VUVL C] lp*jn@F:,MsgruRr'20W=!ǯZm_3oGꏭ3|nEvдm!gۆw0KBMGFJL8&"i"tqnX萶Cvܖp:Hqͳ f9K(^: 1srv ~\BS{I'upp"\?~l oV^Ov\0sP+Ե\k dZz?޼h\F)).1֯u/.FEgfeBg C)rs5ݏR32Z UKVX[E{L3aG&:Y ~Mp&)lþUq A۴~!W"y3T0t6 tCP_)$q"͊&6WiBDS\(@U$x[ފarsQzBw)LF\խ3 c$TC+CC?v=pzz2/J^Ɍ:p5_,X-|, Ԟ7t3­lM O$(͵G:dJ-$|%* .o}?~6Q`Wy+ puQ7-;x2w둜Vm93d/84GideJ $ ԋ)ƿe;/ b @59 o(2hR=ٜ D!;c$5{%̀9?//=p9BLj\u 5[0!ӡ[}s(J"WVoLN~ұ{[eu4ÕBOQ?y--2 ۘkT5/Uۚ'J0Q3__E7-U?g?/D t挭ھ!NԚKIB7DT1G%j2 -.桕Ƣoފ/mqn(*c'Q5ђ >&`4z5Ke7YtUU: i#u.iZ#>f8>>WZ] +Jˮ5:G=Id9!qq0 e7WQ0jXݞv4Z ǿHm9(rT Z !K=E- בv/X>k47)}ۏܞά,|e(}*PsUA@c#bp$a:( =LC&JLO4'h]Dq7u 8M(围ꗙ ÙH[`"߄KOzEn^iwmF&6Ӻ1\$Ðj?UlHc=Î9 UVpg@ޑUo~nzd t|tGݑ`bOOx>3zgľT,#  Y|.\x'obF/mLcܪ0-@nIb:jdd# iֵAG} v$ arbc|oKNwYu$l'<ԜҢ_Q\IpqjN>.^ޫ*$C%C?r4"[xUջnrtU!/1R 0/B99Ȍ/;KޟtgQ(E!O E±ZkE -+1l#hGrx~O8ֈMB2 (>rUYM< $cV g R| >sY) ,@b~KQG`e{aUB$ @aZg_lp{0!k+A 11i84iM8rxD_YsrSfj_Ŋ߭v˝qYښlk 2S%ETF$;11ŏ,"ճu>H"<SZhN,g82^mkL ?[A?.q;"w3D Ubd΢ N>P^ ţp^009 D} M˞a#F%ޑ,W}vͳ3VѯGqu'85ȗt}W8yǺ1OV)`#dOoCina\6(Ha;%%^Eo5"qK`T%x}?̪99jIG>O12ۍzaiivx7/ WU ȁwĂwG[[hHFlߢe ?.Q-$nԔ2:BpW +L"ZċbW^H,"[dtHԢ𒂅zn9v}vY칫.0櫭sn3EFzOb)aIuM?L]lSTdtroof$$550¥auc ڼ1E.*`r>g`(G4]YlvXS >/b$*+Q%jᅒ{qvm\Cs͛1(2K(J2@_0t>|YI!¬po k7t4ru$C9_{\OYgFFb^z;dH8aʔŠ!RPs q!) jiyiP+/Τ6#ӹ".mb Mne4b\.|{]O>A=TE>\TFl0,^(d*װ߽ק<鑕ăde͘f1 %DFs A[ hđy(Wuw {cX` .6,,}ՙo!|:Lb :L{.5<91(7{3inkt|n7^=v-B}]U [W)tky6 tҥ%'ȫPgӊixd AݷSeQ_0kK-9``;5PEWއf+ }* #[.iƋaA#Q!L޷~}eyšϱފ=O @:#Bq^S^k \T9EiW{&J⼭*kZqZ7uw-/`ĈlaWKc,|&Eӳm\$%o﫽l]؅J|x\M-6'~>J;>|⅃Fv8#Lض=\dd1e4wĢz'ٔ$X4qm,t9= w{_ׄ%aWGA;0(2NxY~PnlLwKd=GaHεA'ihvXk(6q5!!hY^dY | |+maRCqQQB <,v8Gpin])IyXХa6;ȞA;ȰR`W8hVI˘ ""I y6yI.]g=w(qXCSzomH!B6 s7c,qy69{Of=vP/R 9UuBNcA[)k?||D/XdXBܓؠ_t!)r!Rݦ=1x-4O;32OHT"К^IHJ;]F>,|?P$A&dUY1cRR3 9W|WAuT!PxWh6s߭إ BBBP*5"%R}dLŘQ:ROPڣLR8=)[a#`ʻ)%*~J@$BMW/Wn,?L,5g_0D'u NZ:d P/Ow~?cHRX_~Gw.㜥:Tْ73̖6}eugC_vGJpL(8lkӤ3 >3z]c P]& $/M O]6A^樻rK)-lᥓ|Xs/A,baxjBB( Fр^ ,Y2Pf3o ћB DGGȆN*XNZ7 ƣ"z&MѐxQ{EoL}[~n4 #6p Xoվu-[ GW_,5ũOpyV0ԨەL?mj8U9hߠ^]\°Ht N&fP=ʪfVd<`[O e*&O\eoW`2ˡ+;71}2 pJZ7_FڤҬ,(XMnq@mTir ź{76Iv>Xҕv X66#/4>*jQTwL&!FA}R>sx/P!x}5ŢJ'RRJ2X"Zpp/jCW0UVə=ALsLU#%X'Wz@ Z(E &_ȆĀeެ<"/|wާ(Vw!K\"u@x&ER Ć*! 2_~k$rҮpgCwG?D̔dSH"P|ӽlw+~)uZl;13q B!@Jaw72 usm)!72atݽCd+EmM!iŻ'=\-.ꂡ287cX`c&>8cEu˩KH<B]2F(+^wl5_h7m'}Pp8C>B]VZuYQ M;j=*= T^,Xy"q"\.ȗ}{2`P0~ѓ&a25F>G]f@ @  FܭAj=vA|ֹz׊¯pvFeo<{ja1%HT<]޹Hr&""'νdLǥ !: N7XNlok|\Ew*~¼^BJq΃(FB-4PnJ x,eٹh+~SƎ9o[/S6FczߩGg>M~ffk#EE*hiP8s\9 <$,By2[ ](V'U܏ ", Jwyü V6ϛVtS  0X͈!Iwb8N[車F%M+(RbJgSSc#\iUVlT~a:NTjU46;ǘYEp^d}@]A>0(; ~Lߕ(_#ԧC:uOƋrىEo`x9p\G5,*XVp>VXSG/- `e7^y&7$; 0DD\.>qGq }"/d/ h,RQpdmEKrY.2 @Jy^N` ql6p^@nq\Ў3>@K8+4ρD= =], Ryp/hc1a}Ok#ݛ*_Y6a/CȰT*X իV$X-#Y 9Q{ ]V'\CETe_Oe *k *!/a.{{Xnh6@qse_aΪ7/ `6 lb\8GHpc%%/ebjc s;x4~iG6@?o 04!)7ͽ=0צɏ!>7tǜ 1&Фә;7c~-Ne=re?Exz'X B 4x"aL:5Uf{ެSr&~mc# W 减NT_ dS0 _ FAٹri܋|;IֶsAig_kYֻ϶[tQc )E6QъEV*Q2d *+Av]L}^\_-pɾ[/4E ˪0gcXӅPz|6yq~kyc[s4'mx,BgsWh$rxx[*E{~B5ߣɈ[zt~b_\UwVLzM-H#Kc|)V+L~uϦ2pot6yi,L i{_ t*).Zvw* D2-&11N%7R)$(8gCag:9,nezO|qPPK4U+W)K[e MJEjS )Fp0,2c#?Lf-( FUvBqX`j9ϙ.iQ ?ާy;@̗cKKPX̾ŧ~aA5ۃu_kɧoo.3?c$y"i֐>ׂF#c:e},Ϫ"iJED Q_͠bi]XN[TX?˫™.ҙRlUA_q6o?PG Q}WWCbr}gm 7@S0' eǜcӰ͝C)w:C6'ٰ6?kX!BuX 0)5A^3(f=Dj<=kkvi<„J8Q "aFNJbDLPTIRdYFB៿ '7c՘fU\*0Q 6H2G=n,fR/Aab eFj<,Ѥ1;GsPԼ5{_+%u<s֏sSax9$q@c Uz$ U[r`OEuރZ7|ٷĚhC>~mxŰ|ENxqEf*(Lt\ߤϼ lWcϮXOx,d;?f>LJ[ B6" S7i$gM`}q*Z$h o\;dc2a/ЀpYG֩zTeKA |!gŠT 4hpf}ͣIk ~:EӽKtȃ??zWR37%+ δiT]Z^')r:`g5%i]ZVEVmi߮z-MOO$FH§y3W 묊˴RJ2V}E NjW}hN%=:<4 Oy؏+~Vno dSxAbʵ"=6YA`/Nؼq7p~eA yٿKzJ2c`U3ʆS[`.QCGT`eQ!WJa+u 0LR.r.$seb0 ־IX AhV_-{bXz]Dt2/a46 ݜhYa1xp ]~ jqyrFNݔ}o1M"f* ꚜcS* <Ƙop+=tdP{deUEZV#3~s0譩:*fQM1 -UF#e2ʌ6Ǎz۴;[DLB#P7ʍ254(R0;\SJe˸)NW` ҹ^/~mO _"<?]9ܯn͔mgR\Rצ z:J{aQnW2U8iN펐86"7>%#{ ,ާWɝ2}n?^EOjUjY,9@LEM/Ȩ"D<ځtw%G윋b/PRoSb0#Xp(TRśvhbٌŦ):!. f}0cՊfќqP߁M>_Sžğnh~ʀ&ԈBS " c^p0?iJmտἉl 'xB|v9"zG%qLXbPBz?k%D 4B| >ҜX&.Y3d*_f(-|M\zSe2ag=7IdqGlY_ o6$Jr$bA!̅7 _.*-V8* V` |-2c?|XN@эYKg[,b34Њѳ_3>iL\ٮt^lf!bS%H!>Oߊ BPўSL(\Ępש053`&Mlw`йN0n=DENgTVc8Ib_`n q&~HuaThM4O ,DN<ďlz,)ZR[E6NI A{-QN hCP FZCI?>^IC`i Z]Qn^MQ߻^A?aEࠠ.+}Jk nR/Ї`|It3 5+ߘ`c@@4F\A-^QoFa@ǯk9gx9w楖<8'ǫH!*2(; Ǡdɕ(Τ)RӡN0װ*>z*Lrz$Va&V)u7*q!,k-S} O{fAmL11t[^.:p4%OC#ɨvyx|ͳq_pX̨C2;:y{wuwCg\J03%ER ŰUk\|%ڮ_K%m#؄Ù~:_gKC:`XL0j2 qr!d4hd|zl2CQpe$R1GN6jͥ(B'U/|%sOha*{}M^Y!/,g>80yN{bBpwC[ IOr0س |\ ZηSwF0d)qMȃ 4@R*rOȅӮGQ^P?`{Qr+ :&.cgA@Y8Pxvl My:ZT(D,h^Tx5w~Iս.Zu&EsVy?7 ^3cR%D+5t,xk`[.." !S#1b}2#PlDdjJwti?04 V]u*&rz֬8+/,=XCmqA0 ~8+|bִuNrt:>ט/xm2"d!%9fTE>^uƕ~Є Qm"lB썍* ׏jp[XvB0UR;vhׄk*k7LqSeRÐĆl"[OKxĶ,tmTv?9*+Je/]OP|~V_]J~b,ȸ^Z6"譅H?}ذtca@LBlYJ[97w9D@pi6z*>Sx@H #qRR dbg-1&uT)V)VE[HM="ڄTj"4ʼnvMlƠ$Cf×6^HRIoǿb㾳hgDh# ?IܥɏTOL)꼟\zdq0}F21!Ub~9pfg Z/7y2C;ꍅ|l'E57[kŠHk7,f+pHҢ )9X1fՒz^_|4Hw>!#h}kcfp \4PgZCOEIY,ֆM!>Wu{-Smݾ(8@Y n=}?^tI ˰ѷLED L)^,bx/t:+˓nFdEkiz >FF5tF!\wP!'`Q ]Z-pLlY-Lht[ls }Oz2.ea|&xvdF"V@k(9c l|c.mAzS"s·kiٻeMcF)PA02g $eNpC!Ax ;z>~{y˝ިY Q`W IC#eU`g/!1 ؖ./Ro=-7\#.-asa)VEu?gip8][UWt> }9Q <ʟ/ǔ.Idٔ?Vz)z֍%[9| Y1% @-G+ c]@fŸ a M.XUQ$st837Ȇ|Z1'*ہEh{Ax}a%m5+`@%5)Jrk0իӎV&ZӷRҼ---1MNsԄG$W2ŋj.! ,03RЃS<AXR)^ ̚\~]J9_;Qt|RñwOf7*TzH9VxV X*)J@9PCׅ7VrqzSZ}& ^SGOhT!!݇߄?ГlIm m.O:4',l,x[ fY1UR Xų1v?B*> ŋڢҖ(sBD;IB(A~L%ތ0iF%6L 2@@Z3Ci8D8ބ찍` IxoUBy:jx(KA/ckq' XH~Joױpa5`LΛN&2-w,FB;=["!}?~GܗtD,گQ@qސ?٩ u.}I\.X3}S%;jßZNPЙ]YGvC<ߗ;}=c]\jD.d PͬK/NVՒD cgy[~# u av"%, #U_AʮO3yiIySg_։^,lc!"!a*MIc1 JJcN(E5ӓ-,KJST¢/$FbٹU?߼`~5۵DOT;"qi39Vο^@=>?*={+&h_,^⧜fd9 YPF]zYcS~UcL vw ޅP-eRlarty(|7o['i1TQAX;7nH;|ϒj(75+g\a+/?[W BՊq2aéԃu6t YCt: 8J CB\Wt^i 4_i=g`&[M]["爃冑7(~w_:|RJQ>QteA0&d£(PB Tzce3^I2/Rdg83Dј}c7lfϡQL4=qrS>`h`! F7?NP2ECJB"zRdH@s;~f^zXb>nmo%oқW:5?)Xa HpbZ\]}!GaH,4B!_G!ΝAT08UM_|;ӄ 1 =tixuAf¾d>7j+ R;wVC%KwK|/X`);؝:t,Up7֋V["/ډHiDu3P#~l>(ݓYikL²n@T 멊@J̹8n㘨尹 `Z>f3sJ+ ,Xf ׆CA Gh@ކ,͠ѣj5kZ'F(n& !ء툖F;:ײtkt[ttttttttkf\3\DbMպ?]ކZJK^R]"ftOD/3/m[Il>]d]*-8Sxq၍@_uj<+vf '|#7C?][HKѸFL W7֑4}+jS[.2"j#Oܴ $WH@B@=C݊!0`$A `/g 'g=>]@By񐫔)xl]RO;K f#n/;OugXp>Cp_Hk҇q-#VKy,EAZ !g 7Tߒk_?Z Uwɼ((QoL02j@}N,1"wXKogͨ8VfY6Tf5Jn!j B4VHpa.G V/ErY5x"I;{(Wc?y̭~+!HvLgh~R_n`îbFʑv}Wk.?ɦcpoEdL=a)Y;r?Q~ؔJޏD%%'Nd!X qt_W7˛xt^ ީYb< 0`?szLd(5aK]^Eeo"(AV+m@^çZp^Cڑ\OD`*E!m=̿!˽ 8 Y3oǪCG<݅* ׺iTlVZ V" &@^,M ]M%*9bPF OAdih|M県g$C_Yu[ڸ<<0oy+UtTJDaP*E"*cՊLS<1<2V_ ʳU>$HهB֝c{4EG W|M*qp<V܊Fqc++."*bSM u=mO -at@yDž$η*v!]hs)uyfSHg '.3·`՟~+3Y˹ e@wѦzTxF6K8a!7+ޱ{x#I}_$  Ob "}h>V7QFƜ&LըY]O`쨵T =>C#v-Z$ :, X@U>2zG9~D}rc2do@qðr4jzi|jl{OfX)iW{pmCEe…DRU0 C!z##1Ȳ^L/i و.+ą6첲L /:P3 #h<-($')T .a?ބe%2HdvZP߿|~W H4%-ʕQ1pM,߾s6,hX }X(հguF/X雲! ,q$q-_|J+:"<ơC/04D3:8g7YD9Wo+Kvn**l=}\G +hv\٭L"9֭MQ8,ϰrU6JqkzEIM2fn.ւAYU\ӽ,-\:K Qԧ% -L@NG$ Ƞ(9e bn;v3BShoqΚ 38Ow k2.FPTyII 3v?Yږ1*N6=nHAJ"ľkRC~(5¶lu .5]7q%pΐ@lam;.ḧ́4\ap8^̛Ǩcr^Һr:oj͆jZp *G_zvnb#\'*9;+Xiډ0xzv_DO?b::"$yO1˒ 0.g?y둌Rwa̅v{a* p9Aw d>ky +"ᆉv% c*)w8R)i[' Rdj M^MnoIL3l+d*\ gNl0؟dTK%I\BuyH,?^)wS9ox'8F >,"8vwDQVca R19)tO.#\PyE oHpSx6?t<>.Y\6Ԭ_`)O[O%#/ے?j7jX~Z|7~oު4G(07}G-F(P${K|s(܇FP[M&[dWQ\AB|R GmkAx -[X}뚵<7eeE ,01M}Rh姽I2ayO% a$9o}MFkNh~sU8ǡJ.]L b]Hbc*Ͱ|mk*8ga]E -^,y;$^ޣ~]ۆBƂձDjlѠl_`26qL3IaQIhѥ(5kJR\kզT|Ȇ=7=oh& (z2VFs"lIapI0 {kX?:xP~!&Z/dnɆ|g]OC 8QH+_a#1W)bnH'6?LC`?1o?η̇wDgXoiqC#3a^>rftDnqmVux>-lۯFgڿ;kBu8p:Rh+BQYJQJZPџ[|NwTCjMZ>  RFRg("()tR—P`W~W 0bŋL(1` 1M04%S^_eEFɺpi%8D>L֭*4N/VA^sоz#]ch)CޱdE~B)iSPSONSքɈ, |$+@'qu<` |+ӓ{ /t7OD,YLm~dFXNNh=UB)gWPpzkeLP鸣9]At]lPJ]jfNP0j_ԭp0sw8/mcE'P768>3ݻr3ys?э&1紁 S˧1OP ~0Ze9~Q_csP4C׋-@dbOBPWRoK6f}eo]dNDi< ߎ+}&qHD4b*n9ѭY4xAhF;}З:GǼ9,؊ףL&G|%e_ B`<#ݡJl1[+dEƥȥ)EQ72dgJ^iA\,JS`Dnő?xLLF {v{t]o}gx8N!'7+j{J XlvbB`^,qW3 K>;LouUUuo l>ѷ,whM[}TP+M^pL7s$cJBjm7URz"Jbd*EL[pO'M鵷F4jP&)M>, `l ߓP/>t`ߣ[#v pJ2hZרu8hҗs_wyMY6wQwIRxw0m/47nm '_-6m`rM|x.Zwfk1`Mb.G$MYz`͇|ތ{<w޼:v,>7xCx~:D!`>ӟ!{<#GyHKIKbṡB4v8NڤO 3b9*>`4 epj3 ,3h8FIFG~ S0É{ 267~u=Ϥw 5=*wtc4x= %/a3hMqy'| ]7C1{͓BŖHK|P@6ϓ cv3v1m^SOYDi7>zap7n3k P&Q:e2bPTvHH5WM0MF='O6K%ew;`q[G)yzs-W5DԻWNr@5p$ŐȁY&,,b4gz`="ml-sv{6aHG "lFh69{L(‹"=W $" 'e}w*~Kw:|ی;Ge;Y"ʘFa{{K8nA! >䲺q^1|50sl_onwtW`N@ >’g[2g>cp9;h_M_ 7p=tԎߣA(98ɓ1p\E֑)iji zzr0/-C4#  6߅s YuWv ߟn(~DzIWDg.T~^( / iK^Up+d`X1> U2IȬڑJ8uyE] ^y*YyV[l h75S2 k>]pZ(A&Lubbh5*T_E֭^I_WA#3"ϻLoqgqb5XqAPzW6:5oC.SS\`U;!̞8s5`xzg(>e~հX3`APb+y/Nc֚1s&蹒893&D[Ǧqei6;wwPAmS|[/ `{vLl7ܮ؜_ ~- rIdMiW:0=խޅy*V孕ڮagUlA)TeR|0 L[A\)@2%ٱ^HL"}>2:Y7О۾-{{Wt,QDVPax3XE hX+v&,!46Ƙ ޱ[.x&\ceBSq rk7=ˢYbo+ЕOsX\RM<6b!:." ,#4s 7v4Nm>?n¾bU6eh}U,51=ߧA6[Y#_УV/K֝7e7I%s:vg7r>m_}, Is$V76W.mH1 hBF;$ ؜#5Y8=kWi? j_빽 mI ?DGtdQ 3E5IR& : 5> aJe"T`Iݍwye\wI }wgIҥؐey-gów:Kœ04QF X 46@gg5?PCbwݐ b#MI9bf] .w 3CZZ3mw_8)RARÕq |Orv2aK7L2\Q$gU[A@FdF]s!KS֟ `R8Ÿ@*Tfs ۩Wo^NEXa0_#]?uz{AQ] X Y@0,'WD_L2)ʔZc_0"e+mJ;.`vSW]殯yfX0ĸ"0+`&Ќ2RGZcBmNy HX9PWYt_أ"GI=h):,ӌC,|p 2 3}`=(@:(p AP % HW_.!gvvxwEM+ӈx:Zu͙w{)f9kwpXs]ѥpbMwYΧEۨ-5es2].wwxoeֻ;Yݳsvnynq6oYzfî+.:Wy0e;/bw{7b뼛o;.bMn[޵(P %1nfݝu>۽;mnrݩwsv;)ABT`osK:]tw=wrk|IADРkBIP(DPTJPRP"4ҒP(%QJ(UTn[k\5hѽwrs[yw.cKRZ]s:wlt3{9]ZW'7/zԻw\{A]CC(]v4: P{cn᣽{{!T*nktב@==@$//LS{S(_X/6;owNvbg.R4ctw3kf[[Zҽc|v@kצ9.l-g[v]ukrsrrsnnO{k\˻귻=x{͗e@ٕr|_;^ݝsuer3\66nj˩cvwMuvwY  W[www[eιݷs w.[;7c.nN76[^={{;&u];ݝӝ76^iYvsnz^m^/wMmg&grb:9nsrt,ָ:׷{DvE뗧G;sb]3rFZ۹sջ[Wg7t.ۦrw/o{z[vqԤi`20 FL 2jzhM0F&L 10&A 5HM1L0M04 &&0F@0&&!S24L&CM2i( @`FLC a44ML$FPmL'ѧFm2FPm'z&h='F4Mdhz =$@i@hL 0M4h` 4ѦF&i)4bihj~SAi5A$@4dLh LL`M0Lda4`0 LSu(._ëإiTT7ot5{Unz8޹TR$VnxLsκtx %!R "#_A_"""*""""""""*""***"*"*""""""***"*"""*"**"*"""*""""""***"""*"*"""*"***""*""""*""""*""*"""""*"""*"""**""""*"""*""""**"*"""***"*"*"*""""**"*"*"""**"*"**""""*""*"""**"******"***"**"*""**"*"*"*"***""""""*""*"""**"*"*"****"*"*""**"***"""*"*"""*"*"""***"*****"*"*"*"""*"**"***"""*""""*****"***""**"***"*"""****"""*"*""****""*""*"**""**"""""*"*""*""""""*""""*"*"**""**""*""""*"*"*"**"**""**""*"*"""*""***""*""""""*"""**""""*"*"! $T, !(##*`PGPGPF@4n$ka q(:) ?{&E~:ujO&^VzPPܫִxYvˤ -> (+ݼW+بm\?gaU}R'1[&j(?EZ)/+6/;ukow( kZӗbC6WJV(woj6_ыt2T䛮? 1\G-¹j"YR0S:h,ݶSg#5.;l3%pOdVCƟqUWpSVu~k/av濮]0hAa6.}^2.82 (>o0xqwX?PbNoUGSqvQۺ__~b"eգU+P|ؘR.BO&ވG/Øw2Ǡ/.&p]s\k 5y)cbYx\z)q.BޕN6)I*ΓmBU6/J5Y{YSֽ:oQWe٢ݛnCؿuoh\ہ?*BX(' ᯀRay顷Lvϧˤ9%kS YoxEGVғg{*}8CLd $reIϾ-+#c k J@QoGv&x]>}m?pVtd_^zFT]>{t.Ssaq`%;.Pa{s彉zE ܓ0sT8ygq#t\]|cbj<'Uh܅kރ\d Բ ;O^/u)joGp?`PvDf&61l_IRl"a?;-&B۴W;ӪA/''z+䎟-p=SFj~(4B/b. UQT!X>5\JK i p;\JkW)a,k*N[ oQim]'h}<ajzzώr1^FcC%)O~TA9BRF46Cpy^?q#Ӄ |s^l: GevMԣ+ ys!6c[ K9ww|AKL=TkU\TO?r6cB66!wVOq?IHby(Ǻ{8λk.s ג02Or>0k>7Ȇ@q\G;_Pw/Xk<,hfu#SU'a9>16k BN&E&淎v |ZV݋0? xGrDn)r3#xP)j;Լms${RV-sۨ,Kx4V!D@W?x WNIp% 1p_xo/zivt1\^Sys0y'-jP:vӹ] }O$@ZiڞQIJkkDk~ى5g8{VӧqI (O5~-q1$/_A(u4_m{;5F_gդ2~{C)'u,~|Kt0tp!Ѯ:*(6ݽa }/?St"Y9ܞ ûit|<ՋLОzK-t+G%x~HYQE7[{>w2mU=]%~wo<>98д`={_Տ4x8_j!Dp:Rуz{19?,Tkd~f¼eopZm@9n96ӓmi*vtrlths} ^$|}[xd/6B;FhfLl+5T٥Jׄ#{AlrBQ+ʘ ~wa|n͉ @hd.iڣً1yZh\7Pb]?_2 mh LTK7"ʹ?id/ڎ;tHIhA(5Ϗ''7*?N4JxF}GcU=`kV6O+?F«yEר3N~@ Kz4Uu?AtH<ՀxP9?w ocIr09تEu' uPD$awx>4Sٷw@Xۯ~Pfi<뎴|Ef2#XPVXQHҫ󏔜olpy~ߣCE7,™(7(>݋EGRLU)?lqhsΨ e\Z 8jDs>"-bt8@qb!::!A 3Sx6PǶn}u[&њV4T~k C>@JBB*/1K9>#CQӇټ^a?lAKF0 6H/:sm/f!,x~{׍o T_ɧw8= rJBr.&ꖚv] |iҏEdCsٱupw D4{eW8uFwmژf gmvL``ETJ>|]&ǟ兯NvY)'󭙚zlO4oEI2hQdSFChN/ֳt)_ĠTp9Nb=dkKrwq^@ p"JvéT_U ?.ۦOJ>$0*2EIq:@>acrər woKϾ-_HU fU_>ms~뤛#/[)Fa0j1-Tu$_z:cGZ)}< _MYe+undynS~pl!,6Qʹ6'}3y@LR!~N[¢9fcy[d#类W}~r.)Wdx ozhmgkО~ا}X\²j?!U<)9le R~V9,uqeB5+1_.p]Jw!bU/P#W;rMq݈/mFYM0^juGQ?~iSTriٰ.W0ms0v3Toj*4 <,(ڈ;zN]+S䏗KF'*wJ'6$묊j0' o S@͉8JGvzҳ޳LL$=Egs}RFcгGG宼 Jn 2a 9MveӮz?K ~B; [_,ˍ?gl-;?1RNYtɡ] jV*OJ@oZ~a׹ ;^0n=Ü%JӓҨگs+'~Cm/X9LZ{)VL~8҆C\>>amݣ%~7.,{~yЕ\C [w7o;vKpyȡ-oAĨa?(6c?p'B;&5y8lb㍘>b79t/'4YK7 OIz G{良QW+} hrh,>-2>Gq<6y =K7[s].=~{.wȒToݶ1vݮGnay_VtD_ ԒڦB<doUo4'ozc@!SEG:Ip?HF}s.ڈ/W틕ǝ|C+ѫ38Se5zieJ{Dh-,._wҵnSsTwOatUq|`Sэ5%5>WvWeRQH `t5 Uz"\{ qߦMȍj^K0^/rm1=%>r =H8ρ,Q<3ڞ@TM ZYzwe_-mćM+dgL/:]\Wk8{u}X?ӡSphasy9;6.Nxp-XpP͂%09adm3D8ަ-T>`{wizPv@)xBdXE^c* s2~Ǣ|Dm  lWS#T5 \N* V ;hM,Qw:"wiV;av-1jcctl/o=aۓJ-V26>GIw+kkAa_"7sn'{8m"0Y/K!Gf_Nf,b.t>tдjbka?7z- J C&B86D7mrv+h/9HmiziǕ^nбiJWX$o~3:)]a@t^Y|gv$-oٱ*oɍ91hVZSscTwP|Cbq<_=7 X@9jfڔhҟ%ñ˲mv&|uaD箋+=ہm;l{;m7qco\$YϽ/kn{txlAO0Uoكک9;Qwz{,pcGE6C_8!|;nvb,= [h_o!2owvN~H۟{RTM@lhK˞+F:~|$M4 g8M)J^iAI?{'#scb3S(G4uyAgY47=U?=)t=kv[90wB׬W/;|(Bw*Dtyկ(+Dv!?=8ۃ .ۉ(9!f ;oi_2zBO+Aߏ,h2\=fmw&s,AT'jw6\TP\_\ӏyJJ ÇC`j[H&ދ$/3+և#V͹`8K!eus[ `mߪKQ ?Ȯ5Xt-],k*m؆8$s+G<]XiҸ@~PPnb፿\勪mζL٧ ^BV5-ZSC`pXXbqIe)wsx||/;<]$wЃ=f/MZl5nP< xKW gS18"_fKnY%6 V᳓/*|4* #ϫ+JOhСڼ@0[G^,H5?3}Y>o-HK3>CR;sYG SJjpM 6>a~mʏCZQ>[3(-YX]\|ʛHة?:)~ͮ]Vg&:~^S!CL#ʹ1TgNpx+roirWQyyS*g:?-?6*5TwX?hq? =GqC۰-ӥo!ك7 ,#`{b뛨:_yE'vCJݷ<`|ZQ3[&Wz;m(kkCӶ|E_Yk ά+nG@z*I2c٤ZzA h}s7툁VpOC\}E0Āu5S\u4qy]0}zo~KeO CQrB\.(Gxo_H< ^?&~&&*m!6So}ܶu4ƣbUh!L<{ezFGJqEdv<(I_lǖ8FB?JkI j wqf1͓%}WJޡ;0,FdpV{޾}`&@r7:#<4EˣO Z:?1{T>Kw7/z{m? I]#(̯Ц؎Db|lBa0퀪 O)vI?ENnύl|:v6X|kv^ x؊gLlNЮ#)x߰+6u~VwQ(@nqbQ4tLY˒ >g%};ȶ39@Qe sgAd0wlH]p2`(^Ïg7GQ1S}xcpߟ_6Ztl\' 1c#~Õirκ_1Wssr@B@B_"/l T&TTbӵ ^g+'Sa֦41ÙأUPfkQx{̝nz65"7wWSs~K7F,L'Wv6T7;*l+gmWĘEŸ~ )JT(In dƕ SBO %)c,ӿUbzywȑoG۱uWh3k1_~?F+qf_is=WDF@Sl>,2 wh8 =C8$'ZdkhhW2pEڅG7l#DLLMvBWk G̷|p45fLBoQ#>M~KG`?yJ3k:uUG8I^CX}ݴMx/WOzW ]WwÏ?Xew,8=_?7<%!̪'K~3w<N&o>v;q53z-* L7CKGY!wʟ"ߋqd?=/k]]fi~j}!?w)Qb弊"G:AwiX~>Vg2+ XU*>JE$AiPjoeK?\Ow)OXH 7ܾ?^{Mt֮jgW'~'6K)(T~7j/Q B4E{m2+|1)(F&ӿ5k~y`pK/Ih]YdZZSӠlC"g{흝 G %>V ^#^хoZINfkayb8V@Hgx"FM"Smv׍~=kx&_&fMCT} >ho8,E?f1s9cW;hyG"|kog gze9yԯ 6VN ,^lH֪|,s1.L)y&%V= h_m'u)b:F۾SJ^<,~k~7 #b>BLanץn=8Opff{32*ęneM"UR+W`Y,<x;(w`ˁKq&RR*,A:1~b*|)"$Wh7Y~˷-<оu_.'agځY #0;)v_| +9+%^rzziDdL:Mf)ʙyPF]n?V'u!VGn'm8v~NFS|Z,l(9 Ή ˦}z ^^`^9t=`?>em'pǒy>rm{4XT ]Wj.Ad=0+Xcduo.!)+ɾ|MzSk#@E^Ø *9;)W3<@׳Rik:kc~AD`.15aTm|j_XZȉe\uы<r^Ȣ" !/G@͈?ֵz?o7G!\=ayގKUsi\{{_$ޯX,ЈѷeO3oVBoPlF0ZO[8ϢR=P/sbut m9aTȢooݎ~RS@Eţ+?oubf8u7 h76vkRd9#PZ {<۫_G΢QL1l;[mKb]3~lQ\M3!. #9t9}"l?n'?2!BAV@[ 81L hH ?0{ pnR~iD@{D| ϮsͰܛ #zwƓo]_CEz~׭`ϣקA+^׆]8XUo獣MpQEE11i;q_Ta%ǭg+\ǎGk4k"}8ZқzE|^ {<&>RoSK Ϝo;Tr>qpÜ2s"oQg>wv'̳P(vP{sDKQn۬j9!:,Oq);VH#e3 I ަFKl/lg.CƯQKNxyݼa/Ъ*kyS[T1o8Í&`.!Ϸ]}USʞ lt4>(χbsGA)ۃ5aGyƞt ;p~@0A1]~||lYt5:X[y=zÕbMYWB5~$}ޡGժwAo;ҽϙO@s?ϩ006Dzs&=]7mptKmpn=>Sgsv`qzM3Ia88toR|T\U"cО,A"aA8Ng*݆nPb|#5:J>Sr̻N&msWEףGN0Ç] A0Vb)F|:n}gk]rQ {tLLD]R0 ԯ;/UmL<"nqgGOzgVm*/;D)z+=az:mc͹h~|]U^L6bTԜ|GI#Ɍ߯o8BR/`hE,hFۣ|7i[^sqq*>?3vt~ jN,l7-sTTPoͺ8P9L λ0Cr|DthތͣYFlڴg02ߴ;!W ,^W^vOaqx[{]&ľMcT-rGir="~~ 5 } uJ1zm6|_yxh:8|Iegs_c}fTVs3RwϏTn&Cыh#X>6>K n xkNtÇIJuHԉ<,g3-7nۙuiK*jE~҂?(PGH ޯ۶jz *PF#so;퓶s|b;5İfnhgnI$ (e eW9,U_g{ؚv7/]r&7ˍwtdY7rꮨTn.cnwñqcT$PpCwَq˙wحrfy;W7Pr(΄(KM73_{Yc9g73y, j5}#k7;\L.{gpNܴ,g 8pn:+=Ocxk2k棵#}3 (5Az̵rb&,i᳛<&+9̆LOwK#$fL$n55%np2jNq&w;c5-W673v6XTa^@+ C=g276wr'$(Ʒxwcjq7|8n.{vd'ä*ri*^ޏnf3.r9DSOrVI%p#_#tUu2vgί6A3;gw̍w[pa0ʪhldM&{w=˙gt' d$ÁÛbrXēkv+wwV&mG;ί#܉y$H0*αq"&w:6.*7qySԷ7u06tgI نoSG6=s.)5ֻWS䩾nEL]=3˺8AJ8I{ɮ;=ػgGy]g99%(,$M$j&}K-G=wkJ# ;CeSuz=~= bդ˩tjhX_lwٿ>GœV?Jxix\ﻉyzmi5&J/cNY9֩{A&)˱Wӷh0O0M;[/7m m-/Gu܅8S=+T-v-̛'0]Tb "`vAF*5@jZ"uS2[/x$IE+"\A1J\V Ab Q" r Ӧ`̙+$I' #P%Lp@li" pL 7@d)fjm-A. cLA,0&L (==8(# QIܠeM((Q@r$QVD3PF2=CPR h”DPAl( =U Dl(# م*\T$!#AAbR0_oDB%ݽ-@UAd C9sT%ߒ(# U#4@quL˱{ڻd/> l"f(#KfIa HP !%#! h@Po b6@-w ǻe!}AA$!!"hPb£]:C_uFFSDdNP79 a#sUlXgR: Ɗ˰YEBĆ#@r[glN!"KH3NӥFu"it޶*^Z2bX^` $^\ˈn T"A`AX5 (b=]~2-O`ml= 86%OE~bkoBO<Ĵ4TBXv֩!$w<lT%ЌO/w$P$U B"?|r^/2I#PFe¡"6["_Dj肨K dB}ZG=&V5$#"?%ABIK=W=OC32`ICm$[Yb>HA;8IH!"Dj # ȡ $ȅF+$Zah{#=Wh֝E?;OXA$a2BA$!teA¢$XZ0 ::pKHA(oHCm(",(D7l)W ͪl.$5 ":HY )J )'"`dDbԁŔ#"$'`}dV  "#!D !" * qШ{Xj5MBh]juRkD JH*O(6°9h#"`uuDЈB@a. C B!4iMiP:BȪTW (Qd   A(( z Q TM$pR! "H߁P*%DJ"  @Y$T (?bx H "&4 _5L(( H"AB jF! TAI Ԩ"(+"JZhBE=*B<w֯(*AdV$ s횱$,b1 y$=TQYy$ H2 i TY0$PEIdIP*m\F̋L$IHA~W&" ,HT;J)aIQ#H#!$R,$VpZ6X` BC`RB#֨ xuRДRHDI$" 3 #E$FE F$"PQ \ ^HD> XBa^oQDkZUҢvM$D]t!ksZ+4'ο_ZA| ÌtҢ.z ӊ.O B 4QU@$0Ja`5'U#H$17FA$$iA9ڧ&^+b!$2 , $"B "H" "ȀH2""HH2H$HHHH ,ȬB" ȃ , H H! H "2$) """$"",I" " ,"ȄH" H "H $H! H$* "($!"H HHH  BH*I" B !# ,H Ȥ ȩ""H Ȍ#!"2!""H", H"2H+"+! $Ȳ$H "HH Bϻ#'6w9ŻXh;v-I}vι>^y^o[s?5DE*9AT?FnvF(#E:j5I(L/bd͓Y.B,lXc2XEj3jWU1UjNW$ +Yp eڈB2@ c [JZ,*/{e v]*X%9nCn}V(qQꉌBAB"*k_q;rs噍})V2 'CtD!4$,A dnH"kjGH5O%zԮt:Р*^rNگ4.3k\K_ؤ~uSZbE?ɮʭj'BsZgZ_]ET9s3W<}D̨7bI ٩oSb۱2_\mNCQ}BCSoBFd B$VO $ b'{|e[~^N,T<ܮ.qkӚ҇g&^j}C?(A<+l#X?V+~3gekK ߎKFX )q#KO8RaTvO÷ =kQk٫;=?MvG!$?GsUSe}PXEfYiilp?|q.!(ƙ,Xzcxr&9o)1p׽8مDj#o/R|,O,v']I8oG{f q9XAT?#IἜT^UײiLOFnԦ`Yh"y|Xy>-mM @>/~%`/dIM!!EXB.B-g!甬kB: jD! =d$T^T!>N|Ȃvkp{ѫo#9K=,|?!! w2/؏2j4YZZ!S]O6hz!}\`GV:V%*"o;~\)WB<*|Qo6Mؿ^Hu럨?e~1@=aYq+_9APG94y9#37>|t8Ãa}ewDFi h<3(M7߃Ցg_]&4oć f {r |dR2i|\ &W"_`cf*Lb2vŢ32jc4unr+PwJ|c8o8(hBڞ_MYk ^8 (&Dњ7tKՍ^bb}55)AX~=E1:%_.?&kXq uN:ef [_ MF6íWCOmf01,k {r9򛡛n'_r.[l5*ԄJK7t*'@W=@7bԗu#"`s X Ь3t~Jd $ c~\K]Í NBXgۥsMˀ8/{~~Ջ'jn$/Q0!UzA4AK}o@U_p;FXlP`/xC|g-弇9(#ݙnEN#$ '̚&(ӟh詮mCSQ0 B(6X?oT}=^Q?t6nB,,-,0--. Z2ض*KiRܙb/ f2iĐͧəljڴ ×]Z{w|dHWՊ/qvɬzA(p_Q%=l&qd#[Ժ~?<UP;|)176[0p>F hӽi-{; cEc7PX8-\Z6?I#/$@r~}<~ᆁ'tܠm'øQ XxF'kOERN2qr8SjI  G.~}  0LNqii\ƼZwy wקFÚÌ@{_K̀x/m=`JL-Wχrtg}.2lj~z(I.R~iNp&t5LUtH#Q¡7#KZ>81 vZ i)泪wO5% G 1n|0ťU H:\Q?i0t 8RƩ:^ed-}a.%DE\;e2F7dww >O&EW' w6GzÖSĤNdC^7'~BFg0V0Sl&2=A>i:Q\v ~l.8#?_7p@u8f gnkU+O0)1UF)ިp3+Bc/6: G͝WR}Pu+ hT!ɼE\< Aw.[|¬} (>%HetC:WwLy~zJM[]lAzϗ RAN{9풋ؿjMHߝwrGwlz66|R^k)=8H=h0PqQQQVq?>yxI;_tM[:RTzZ%J2?tiPJ|{fw=>3{؋/}fz ܘ|;2&l(*NŸ[2h -k<3hO8H^#eR?+4q H) hqɍkQO꣺r&!y  }6;Yx]ݗxz92FV`22`Đ۩'r18܉y342|]qXQI8,  Ԩ$^^zNۍ'r5Ӿ3ྃȨ#ӏS_s9|;r{QP+/Z{ǿ;ߔQ/wɗQsФ'}*O2$o9j\_ M鮒Eo kXH‘+F}ĆR")TQXV [_;[G <~a\=/׊ af^5={zh2UTeMt.^}} SׅɒFBrai4!cu/a~3__/zrp8]Z[8\_/Չ㰶B}0?˟-/ݡ },-Z]S2wd"nml;y{^-⮮΢wi;;忿y$27Žm[grxV688838?3y@z9G=()'Ϗ U ĝVlTR5ICKPҲ:^nd~C`I)eWW?iM1/D>[=.[߻ٙO8(]NAJE_779ǓA_nYkdA.'g3 B>GWc;2D܍ ZOU=,q\Tu|Y\ޫV(͹K.]-qR'!Tk R/h+-Db4ӒE7Tj}ta GM&O~" .Tr[`TE4K[CEi:YBJ_PQ n0bY-<m,!tȾ8^>y B}\|D-Qٌ9Raaa!_ue5*J;*cKt*IvݔյOڱ/lϨm󷗭ڷ*-7jmnqr/[c1ֻNm?/keUjl?"7=jut3aEVyzVtZҫڬb}oG;+oqgcչOOlگkݕf_(?[k՞վǩ~s?WLj.yZ޸fo>>+!>9?YtnVZ6J_,~7lmn'模0 B`ES7s/9vƳ] G⻃2s{:{ZtzkWy-~Ւ'aΗIPŀUBn2{ti͍z-#Y+xrτ8: ,~ 3TJܸQiQ#/Ɂt _z+P>]U﫥+ ,}J M(mbǰ co1C۟Dzf8{)}q=$;>yRocl|AfN"5-o?)rE'|I"`+z l\8%r YŽ1YDgOn50,T(ݯmUs_Y>,UH_yaS$SB]/P==)ĊDVR/EzU9is廀^p]PoA]_<;N:+$T?;C z491Լ53`ǍIr6}s zg2r.w i0am"O7A$f/ z#L簟>HoN?І|v˳<<?(c2Y8] @NP#{}/#{ +m#/OڽߥbdX,iʼn0}ԝ/-׫L|/Z,D,5B89Y?poP"bZϪ*ʗFÁSCX0_>Qz1 ,9 ϸy4pjV,TЇF=%]r*ێzeC*ܮ\1]5q9u(┵~]%LlwSd$.O6'@EEP $7;FQJd2瞅D^4D|8/a+$4 Ƽ2' k[ #' Kut[rPf>֤}fDsb,hTg;56^13w1P \LY52ة꨹a^ npMW.#s?HV~uP&KzA*׃׷SF/2}Se! hQbEmْ-nB$S&Tc[L(ere EEw,o B")*oWU\_%eL ƮEKL,pJO@ @S WK^W%0 %atW!fɌT:bd C^ I=&j;7J.{ ka08z)aʡZ; J!SYnedTT`uԗ)z` Q!1"BXSCp&[qB-[_Y>;_rJш|'mG {30r4O_]k<)owN\S˹kvoTP{/) K̖uYCqT.U?MD}hL3”Q̰0Bq0ÆiӘQ\rbo7q[EJb䕌7ݙ7v^/Fs&.-FvJ%>?㹗:|czXrC']_zģ2?$AiR`Ҽ!ljiZWf"JAb%RP!tHq:) 9~i/}vxqoQͥ'&+m6b" Ԫk b. cu|sϵ"zp<}Lr;к•S%L޻ii%7!ϊuw5qI%1q)"ilQ$ClLcXpkX.[q.>ڢE]|Ryϊv 5xrs!XT|1)B9y@Qs {dܮOV-z~ZJ5G 1uu^H+ ]ݺ؃W ulfV:_VVfѽ+\zŘW~Ҫ} E]6$JAw C Zȃlt|b@݄䌀wo{x-p|~}W|91K L*p m] c ~rp@r~TzʁG#lD7CJPbsIT?lV? [c|ݨ)gs §4Kӻ^I6OXd\C@D""_lesNT)?Bxߝ؉M<4ݎSe#q$+!.^ EbFbwpԷ^ps܇-XC} UBM~.s_.C'8z7#@b$\p`, Rı,8Q* Q䵣Gɞ.nx59vL<J^x> q~ܱaQKWqYo'5:4p7t QGYSEC!@G\eOQZ%9&jtc %vVg$bkGI5tP;WFՏ;t5鹖;fl|7 qO԰?a|FsZ<(鰙O)MiHN/pJ/:kіE{7k ˃@U BYf-~ Mz\@ǕZ&`oX oe'̛i"!9R.AϺM.<2Ɠ|Ff ^QQg"``QtFq%35 ZVjȜe\&=E]iYZ!4wMT Eg}uÐzޜ NRK|é:3r0b20 {YJ{ ~E1U \\0X W#j:}lGF/9bH̲O78:%ۮ~K*oq*TT# gP9[5|˟^ a z#ݛ$ag݅< ט^$Hj+%5lynjxQTȆa>2<.Sr5B@Jkx5Aq7_p5~"Ϥ` |5J4b7;+N˘$-cLgqbI =+¾3v\Ǜ؈IdߍY:/Nt48Ft]wA)1Q[)'cH'l$(Pe-q`UUy -G!~D 0[zbe7Ewx\&?-`Vp_pE=)]z]L.% !{o,/jʬK%At cd,Pl Aլ9RJOuoHz4`3m1801bc Ƒ:ـfW) ܳ ~^O]#w| ?ao'|Pgu?iw\P|l4L|N@g1籶A.2~tmO|:NxgQ-Q茷8z)߻p}z11Iqo( wvnq8S2Dx׆4l9Tasa?0Pu[>{fLq7/~6##/̩Lst>nK@q!RR+١x˵ӃTO/BN" dQ."2-I|Br,e̼p[ CVw)ɓJS 2 b'q7>"GL$1ȏ3D1BOeYs哣\MTqFL&4//҂Ƴ->aF;8cq%yWZj׀41*};#ZTzl衁-s󓴮WKi^@&| CpXsg?QcKf{?SFٖPk tcx+5)7HdL< МP;*d,'ԏ(]M6Y*2Wh/H r$Ŝx,Z0@o԰˔O Jda HQf{8yר} T 쐾S DTT%i(,>.i4dpk:;V?P6|~ox:pO3' tTaWMS'Nψۂs-i:X{d[l|S:CTw&[xː vVr.ޏ3FzuAbt[H A`T>^nA/t7TgcrO`LDr*/ NG'%ˡ{R^PʥUO%.Y;jHhkp/T"DbRf}7BrjpnO9778 H@XBC_eˁ:[IT3byEݝLJ*hZۂMRU|e.W{?6tnnųkYB8ou᜽f.b(%~GQB~ntx'W }y j_v 65"O"`q2xV-#LL~zJQ`Δ1T0pi7.jwTZ.v{|^Y/+y_??18[7aD^Z#K"(uu {^ 6|@kpBͱ6 -T̄p96ҘQn=.4Ο_ie|b| W,V"6(-_20_eTfz>}s|?'ф< v|^sIF:BЩ`ҩ'̌Hn2ϻe2}7C O4xP$'ΦM""_&A ]F(4 ܻz!.˻̻7¼UA!4BhaáDn(M3?9WdR)?qq |Ir*yQWR\=-NՁ)ɚ#{.Z:j|+KhZ<{`lW~{<-@`s x8{Fook_aIej9M];J SCfjf)\WfSz,b ,T^J4!4@܏(|{ YOv6c 1Xj|>U]QϝQ`A=S6~h'Ky昐n&'d5hNY2s6OqV1T̕+2u7"Ãoq ^e>"[NHKYZs3wD~f)2˻IJ}f%T ,q'5e*F$<01>TXE,{Dz'Odը71pdT S b츇'EFN,d WD aReF"[ȏ3eS.-MͶ:';axOYLPХҪ^>5LޥJU{ң!"!Aύ*`7d_|k.TuuSBF7]'][tpe@xUC8ItKex^#e@ÇިVdċS)apb`_ZMr,dUd 9i?Ѕ<",#QY^vq Ba:"]VЅp-֖TEZ)-Rţ#ϢiCTrIFD/ 6e~ C968)S`dŬ&p&x^/bt7Bp,mo.,5L&FmQu78,,YZ>y Qk开`6%j0>s|ODVnseWx8⧍nhfwyGO^(cj1ᕘBB|G6 9vtK[3;¸K|knrba.`,ھ~.ܾ*֭k3[C"UW",+,YK$OV΍44vcM(={hd(dži6h*;VpL vZ-`!F!@$Xdf\)OkٝE ϸ7CTy)F@7ps__K:E<Xg$woMeJ3( ?+u,"SwDj/naxzz\a@ژ'_=w_5.rŎ;7d[³-pYF{"r.YR1c+[ǣ]=TYc-e&Zt"#M G4jJ]b,OLTa|WB{+gV1]%x-SJR2 @$IH8E"3N#g9 hc@FPlċ8]+ z׼w<+fjxzQ5\YR"]TWQUl6Pvŋ[U:𯾱Z` FJ@S iHޜIӨ歹 &e[NG2t0~p^ssԸX.J,%.]ib#a'K*Hџ=1)Ng@WByǎD![Ng rb*rOHDj<`hVw9F+(OhRYf̳- ry-Jl. XȄ7.wd.p81ì4D7aSBHRC;E^.ѳ=_BհL$檁Xgl 6y8r4oyl= Zff} B1f&2zQ0ni8o`%QιPH{>0l> VNHTv78=:p)kx;0q\=ӫ-2=-up>ҋ{iN՘u8 jԊqam]D)k_5)}!15UFƦA\7taTc[?^>fo?4*Pqgjb]F!UeUԙ-nox4sNFԾB2e߲k 4f+;蜨:/R!}(q` P "G%8}O}>}OPʆT27 e.pˆ\2 ̆d3!/e.pˆ\2 ĕ͝d3! e.pˆ\6\3&M`2{{ ~L$Itp4͈?Q?/PVM6Vsӥ;7v"#gE8N nIPPp j̘xvpSt݂2ta%C_f 주~Wu3ߏָphK b}/\f n\Hӄ{b?-|طryHVsAHl D-. RbԵ["3&dۨ컼>SzFi @.6"t:38` y2tC(hY拁e\9g2 |@3a Lm:_̜!{ diP)O`NY+!/;'+7᪒6o(wERHLe~)R s.l6?,}ى4p&|rxt ߪgl*8n4)DiV{ sѾ(hB!W~ILǫ2BȢI'%X^Շ~ӵb.Q0,5-!^X!D:ʈT/iw;n4]n#>&ƭMFUǗTroN?Pz|_{0@==-_wlB!Vɶ/,z.jB`~׸jREh.P 7( )uǂeFpCxRV7ChÑ6sy (#z\xRk[z>Cdơd96a%zR񚰔oW# B3UɶÐ.f Q~B{̱ ?ef31TDJٍ[/&w+X?\V<HG߳CTar\hJ41ýߝvV~*wמu\#C fl&^M1PRX쓅H@X d0쳃m|/π;k-4{N!I8G _}-` xfuRnBl((Xŷ1G5?%UT%Q" bs[(=sMj:ӻ3#3 U8EuX~}3x. ,\d<32.(IlC.BdiF=x}- >NLe.q#~ PTf!e`v_NH% 8"p (T/TqK,_-SA ;CbF~y@ӽy,5eub0P V1} >t[l؉RV Y e$[9NPSÀaRXlTkwS =8nq;)u#YP8X\p['gPPړTdhS*(`1 T,K l{ h@_6n,MwtK:ԅ$hQz :Ȱm<P}G:eKdiݎى/[6dcv7%󮑔47r2?H7>6S^i&&r+Ff^59n;F} $Y0J^9 4o);y,džێVTK#8+tT T"JspVN5"T(s^clRC@/8DiOl|WnT+٧=qO5Et?yap;tger20C܆dg˱~h'tԣ:|q.̩aw.ݩ-(˻/!y FJP27`La’e#'Ȫ1S[q:ɿ!Xi|P3sEZA,8»S*Mtƙ62R10"= Ūk-rmhe(&3SnU1kFx-KdtGo `0;10*˙/pįeX*9'gԾl'M3T'ƱZ2ps4zw{2K 8ڨs-%^(-7Q/u'܅CfKiDmHKW7) ۖp Q̰"M\ e6c\P]Lz^og],P:uu܈7hLX[3'.xTFX߆fbM!jmʞJ J9ߛXVYj{uM]a0ɉ8p7\Os~]ǵS]Dr/L'C d1_e1%s&S4?38#36f~Qջ!0lXȺe)UE%ѰL/ *`*NAFh _tUDZnPu-1$LmT=e )n""#Â. ѻ?G;h^KŔ Nڨ: Sh퓌"Y T0 HoY*t!uyg眦Ja,ʐ~K~}uj{F?׳(rѐDH?шjr+Fʹt 2i/Kk6PĈ8e8O0ѿ6MI DER[>#gGϻ'rcNA{ pTgTjpw{-_RL݄/*~[';rH@YW y:7 }g_Y](羚a-Fx${`l*5ܶom{M0?!ɴ=c" ,f;a;bΖmmmԷ.X~Ը^!J3gQ^Z-T).ݨ C'F{,¤ZPc ,{w^)qg̀ґYZa)Vۆ'B1X\~r3䔹 G+}Gu0]|nQ I&/:Ꙉ~h kC:E4~D0(He"b 6LVQwOWOk*:,gW+Y<%"oW\@їU:K_L K|oz5\Ѣ‚}eWLM6 f"Q>%;@rcl04Ea_wZtƤB8R}wXZͤ4,:> :XEALyɤۡWiR0臭2-s2ȯ,1sGYp[mCo"# ͣۓ.jiPu/&$qw&b:Ur"U-堐5Xd(1?hf?cR>=l7;-v,_ y7eSimžQЬ4`IQΐ$ B;?@oiϺCpWq`*i"* y*g %g0n&Pix`2ܐ~6XGp;aCy} d'[: =6{C,ig-,BCVOmy8`p tY n῝H5%iEeŗGR&qg_p?\c\l)kND995;6n?K_J)/ P2aGQ5J,0zy_((E-9 \4MStN-u( 3'ːPt"sXOqiK.`>%1{ *%65C&hG0V8xٓ0VĨЬf313c6_ tΊ;wpk?BG5C Cob 1-g ?8}XH#Oo5T+ T?NdfUۦi ;(\t]lր^ i'sb 4(n]\*nkiQ{0?hn2ڒ_|$(>ưERoˤZ}MB#*'mݗ}]DC t4'`D&D&><@@CDA?H A"~&f NrAuH AM" DEkG "Gbˆ:M'Ft"@RQAf:7&"}x-!ƝxT*/7&ԡ o}]mUltķԟDcB@Hbtd@7`(|~Chu0k bo%wÓHa~mg޴Lkh]1*{r]ğLz<{C|h[ XʏY: T%W&H݊k섑9Q-dKF;Yhb\%gms|לNsbU\z:GdwkrG(8hKR0XwiĹ ^\x.瀨қ =쏳U˨exgEG\N`x3pݱpxyΧT7kaG}!&Ϳ{B3bf$j%1&w0+ԩ{r"AT ~!?ܪY[Iņh*BXe`=V*ykOTy, ](1tYpKuX(@ q9k% sfQ,)'">q2zӈ 1%i Wnyc񿬑E}Ctr $dRYC@ے, B"([d!C(e -DHBiooY a@FGң9.H]V2qü6A8yLqNP OH ̗j9g8从7r~h( Sz\忥v "k5EpL?ݭw" +Vg nߎ.> DΒw캤SpkWP_BG`Sn7{B^~hBRQ( rxǵGtF(&tvZ`@Tx};ZWsR~Ϙ.>d&LX/ztXŷ~{-o~+ .jo-œ<ӯ,FUT&5nNl }'xڈM R0Jd Fo0eHR"0X/YB]3G+g1ͻF 1`ŏ`Eg'a*}xoˣ3|HTp{}'[(fB¨&,l]6H4<" $F!9>U.:JDJ.yE-%/ 14wFaa L+,tyb_ .*o ~G!'Oє_/N9. M!{1PqKZ`%Ľ\H=OAU,aV% =owTzpV5_(EYR߫|_B}շ#N 䊑"9+ȦV2 ذ~93QObˠeUb;`R|7 9TJb|=oC\%k YmȅJ_1ol_S)Odm7v [Ֆ8ApR]>_L_f`9wfn,; P3:*IT^{ a<'}!` DI s^8{V)}+@I["эql7cg]})g8ׯ_~m2%Q' J Z/5kxxQ}sd魏0^HwC);s' X5v,`x*QƚR@9@K|C7a=jI\M,O.h -6dEMH5gjq' e9XУl=:l}9L`DFiDb(]\7 ߍj =¿Wav2Ϥ,99bS7Z sE0 8 d  ;sYG[ջL}{g9Gi;:A4Y@d&<bL7Pܺ q/<#TkF̰Cc{0]˖EA(.!ϔ,;R? 00'a^u ONꬕ q=^GSyȜˡteG&ɖgx])Y) 879@;)4cuv]ޗ`ȄlR7C!,Mr?k* zkU:YA$і`UZ8*VPn&kI0*h/S57I(kfnF/܎yh-; PXo;7J6[_g,<%DŽׅ#BΒ@ƙ?)3ab`_K4&a97s_,:FTԟZ2# <] ⓵#9L̷JXM^*-2nkb;g7vk)0>:a5QPOT?$Q86d^TE5ye5^E3a_G[Nx ug.0gꖥAeNEq H(Aې3XHڔ.)2{5P2l+ŕM?󊥤"xD }ݷye&3Tlq93T;q{3؊]s#csn|e87 OVXy\x9{/ ]WIu |ћ e uH&^H;ޗTʑ\D5yٷ~ f6{sG=wծ5/ŨNvECb"~f}r*]9E EI"Q#PEE˂QU @@MV"z6"&Gػqrkv>Whhr )Rcd_TԚ͊]btIK*G=;pmҽ_ soxj6['U}][XP>QH3/Lb,_p&_ei0Exoksg؊ Iԛ<'6Q`{bM3 iS*]ϰkfӎ7iq_`ڈMS.\rZsBCT'J:?bW;¶\É+hig\\U)`Wћl5JP#KHv>4gG G&]ʩƎFdj%-]IB{ɐɓ2uO(e2p_ZyLKb}3K--^{\66x AbX/.͛2v@-m8mm?͵3(#.a'n)"slD"#C +R"),̶1ډ\wG _~XΠ*)(_8FzrՋ1TIX>S+ "¦)<7{lur/85W *s Ggke٣6:uY=[=FbOrd/]VK+"r*2=A]@xrda<åY+״#pӌ̏x4u?c`1K/_)^ Pdl|BUjli[Q$_T|K b^ΚOVZβ5D*u-sHC͉PJΏPʜuD憷hQuvYGVgNG\fQ?o|i>/N3`O҄ش;" )%}pYxK++3u-mp[H.VNaÎ^Pl0% &+ ~sr~01_wLe0zʉh_vZl0K]|aAm' S*r`aFV|Nf;:\H[52%?6֟>$ 1!'']a:x$8ՠp& =Q1?H2pT ?k+ yAolC>EMX,Pe\N zב-*:ۏxCǖ5sog|W:̙.]p6.ԧ\ `:2^+ JWDQ%_lP .d]uV୊p+aeskո;]{s|8=$7*oǞY1t[d*%،1nIz%Om+c2pGHcdY *N(Mxx(B|d8Y7.rqtn}f%e7ʵZXz?RAǠշ eÞs^6mI(53䩯h40zP ))@L<^8=聵wD* ЏhV .<}gt0I9mt@y=l)8\O0g_L0W 4jXx ӝ#3asF-잒'>,,U/w5~ں2`۱9iBt}^JPHNGqrQ/1գ `l \LV!UQc *U ?ey!@L!vY '@dd22 K&_hLGxK"!-rO1˃7t,rIx(*>Jƻۅkj5|4?Dޭ0(g'=q6K? ܾ1Ҙl z>i1ZYθkΪurb9U*CdlZքWLw-P4!B)Uwk@,űo IŞԁ)MP콚簸ۈ.'D+@4X46 Ligas܄pړn z8cC/8\uWz (tgi!fr&&K%'\^̢.]^xT4#m//ψоRxc0Eb!Qp"۠YUMH|!W^ʤ{GY*ϓ%M;jfnl$I$U*pFu .I=Lau"a=ʼn< dWL 5< 8" [/E>c>6ŞA w=,`Jj[ؗ_7d#fӼ\S%QYWVN&%DdG4yC9<%Ȕ<y=% |juJztX& &+>Oͯif㭿y2*V g ;)=3Wj=&MW7{ Tgo%x˪kd0鸹7\uܢN)uՎ~38:DvwDMu.wɇeN:m;pY97 95_ gN txglX` F1 c¨_qKWS~?کv(XB ğКw;e?kE4Ơdi*S9jpJYeUjYaU aYr%_.O0wl.zvxw \d/ N|8aY~s4FG.k%=lMӳќFnQr'g3 fMđ\G;{e4spEY'aSOpȽ3{M^ͯ{8_;[ܓf wv~AoX3ǾYn{V*t2{ͰI\G/}r8raF;uUceEBA78v(\*]8a ƗRFLU_NOg)לtq-˔IJLBT_&Kt>{'Jv9&~dHmJHf +fY1y^,^m^h<҆c2WLٚ Ll3qj6?DMVvuFHL02>Si +Y7[5B(QbO.cml$cR!07'%]$,]nЖ_"@Cv <됀$N 8ȲCfu=f`*HD[M'gPӉI)|Kk'oTc!FPYuHf 5 >SLQR>3Z:"&_|_!Ӿio>XNatt_XyU`. ;miQt%t7aGgW#7<*ԖV`!uU8;3͵Հ',5wύSKQpfo9łk gqdadpe7w3;ۋڒC3|9wj7Q="wydrÇ2[,g$l<+mssr&u`g&M[lVwSمss;eYQ<Õ.KK*Q-2et$2wL_v98];mn'MyZΖyf,JT{ z_ JЗ-En T!;وGEKKMN߇^FɈ8E~zNt"CԔijZ;Z251룏o \eåSn|u f:s}͖ t zƽ]`sH͜ W2HFjw0ZShU禚l{7%g'FM3#NW SWow%]v $w}N_%̥$.:hʴ 9ɳ`P2/_u%r;%a{{^~KC]ω9];|u +zw:O9\ Φ\weW 8w0s=W>|?"~^ȸ>D{YK}/ԬrG(pV6z$ĬWmW}VuJM}I/RQIġdw'uHG V4I˘b/x=%y1yuBdvyh7\xƿyD땸 us$O zho.&yȝ+ڲsg^>B7ǦIsEL z t..u9>a%'*O$:[nny]@x92]|/v6ܙ9&:;g䛓@DjuP*:ύ[ 6Th!ooDnY2s5~hg%ŽϾ349l; ϖƨmFZ?pOa$bfsըc<=sI_I]e~&k$V@L_Ĉ\IF*+|#mT|{md~>2~9qJM9Z = UFAZQ' rwۢI>vW3]ƣ+cE6}pܱiܝ=5NjK9#Ӆm&<7DPKAr%yavWoykQDmɍ4&d:Wߓs͛yQq^:=їn" o 7u:nec<*<@suiA˳]kx򦿝FS; 븢!w}?lƗP|Toyfedœs.GRp hnt9տleѓ}9e\?c\Ԟds='apUcIvIeGXpnyp{ &ٿS/W5uVRvTiv막t sL_#_[̛Ch&7uSg\w; ~Ol9.Y dD1Ev5;LkK;s|fLWȬy~) 3G:p+DٽwF8oxܞ{3aQnj|Ou$.ЖUed.a@dсqF`G_ ~LPU&bB5\^da-R6XI~FBOU@gIխp s|9К d2E\ȆHd4K:I=F B*`\LAHuU.,ܰ(U~*pI,VK`ق9~T =#· /%sㄪ+J[m ɪfeWPK!rd >fp$VA_k;O^׾\mrTkiQ{S0f`tXHպnJ_t{٬ٻ_I?>g&vٳ.Ͽ&'v$jNkpIdwSyG75!y[rC13#90Zq/nh]`co|C>Q>Vl>q#LW{aȆ̛^S@9{yˍV1X0S9 $MEׯg K|n&~}gW1;Sy.G4auAdۂn̎59m{u.Tfs^oEԤg;+|/(>g6_{.s&{φ:kBNK ojr$뽛r757S\fn# 0!g3WȃW?W$k> .읏w 9f7rպÎݶXEoKֳ]yBFnfxE:sڲEwII꼐>;M$(20{ޒ3??o>1ڠ/\oZsD%30)wb)5d2&a:Ԑ\F׿QVgtܑVldvț24ZT`Pnj$zn{ wT2ݒF~~ _߷(>dzpYIE+0;hJfJ5Y^9W5|}#mᯒ~ p6A211ۑXt"YDL9ꆘ `φs{@Lds֔zCBEpZ BW 4л^-J|OL-୴NyqvBXR e YVtPYB\ȃ,VQ_eaTXee¹WTPpJ~Jb%c!cv8C>K䭷ީ#Go' \ad,T6v;$.@WeMHa ?M=lod&Aʚ+(nXԉ5&c%"B,JU6.R9ߥD4T|ߗ/V6!?x#,/(:M |\$(?O`1HʟL@|;sw+-EZW^VV^g3S!uɪ'1-|,aag| ߢ{G;=iܪ_&bRE+?#,1w}~uNǍYYմ|DYvEfWoLwye*좷q0Q۞ת;6t6GۍA|7rW9)AslG\L"yn]Ûdž&og|wf] 7yl%l嬛t2Y%tng#{7Rw y\Ȟape! DqhMvz}}Xcz07>Ypѐ:kgn( 24 )DD%+!fRU %/oDɫt¯]xFb{7Dhvpd2}tr͵M_6!`K_Fz\zW?5ϯOkl޶K[7ts_8LbDZ#h>w1i])*aۧZ{:D\95/Fӌ\m9&4Q=avu}^fW"*xU Ϩ ~YV&wUq4B2Qp#;tg'[v\(려G(8ON N(_9t#fs#\OYj.b\zcۮEiJ 2{uR;<<|Ȋ_O&ak=VɜrOdMBp5{kqƅ67rwWXJd\T)CA|I 9PUAS>kq7sTr8'QѐA)]MU+n'wV q$}םP#W=s&R97s I iB eT(!2C/CUtz\YdJp|J$)v#9]$'Vgƪz5o9 `o<"D A;cvoϝOkV~cu~O~qzY5lY=GjE[L4jDE8Vñ ~ 6)0RFter 8ғ9wٝ>nk/tx|eKn9*Nq` (IuBHbDLyʶa907 z,u3!s#'Kr9zQ'KV^V;o?W~ʙ$_g52t)ç5yt;.{ R{9sguW\ç;82|8ks.`r2`;eYQ*MM=fŲUG;Eߤa400Ipr+A͠G4VwT 2FUz4m1zq5Թ9wbCzW2g vYso5c$Li;ijSSVJ@QixQVj]uYQ 6K-"]yԍdkS^Lo;Q]8ps tXCPu{;Mٍ/y"H7#~y9L9}Evܐ ~Ys1֪տpUiKhCA?{{'07p꾹7crgp<&jyKHFE31z{_wzO|S3緬C\/fllcQ?z|~[햐d}C>VI796Ʃ՝;kU10'Te{Q5w|kDvݝ24 bzvQHOP3 )U9EÃ]ׄNw[5\9\Dr2ؐltnw I^yq2WTwz5؏lYɜ3 IP,BGfuCފ}s EȓT!oZeG7 D-g;|lS|yhˍEtaQS&b !ܓESLrU>|5}# L7nʮSQP$#RгX^|*9WPrw|/evfY̨֣{bJMswLnw 2cTZ]+7Ԥ̭bKo (Mr_|ԒGs{zg`u7\ԔVrVZRr.}Vew̽nNyWf2JoR|3s#gݙv7.VrN7!u9U# m9QU 6F?% ʭmפAekjd(] %I_ *$|%P= ao0{cGsvSn ýU n669,jwKO- tCxzGHct^R/G#*ca%}Jf,|}9p#<\:ËnxCyD??I_ HZlv|nB4E/Ux8]| )p*,!+hM-{)VQ*X|] w9Zhj>-JttkzY͋FK1sT;_M@z4RHX5 ;H2I;q"C@CHO@<5;ܚ/|)xS%A[ci/}''kh'pAvVeYdQb5Tm&~Z̠M+b_`+E(g-AGXEQb Hۣ_NJd%pFT@k r|J>5Nm-aĎrXEf2"thK-]XYAc_0#y|anxsC).i#Lb.|gg(IJjrw]e;0{prY\vg'R:7- ʽ)Vr{;'Sb:9Q:Mi,eB${ͼgcv9;zFNO}Y"c𲨡ߪj"!)U}1#dW7O<1mzGһWo8>+<1GJo^מνùad9ab JPxO|!Z 5!+!EOU? 3y־FӾMY$]:L5 ҵķ\c#Z@C8c1>5Ϸ_^U;29RLyY%3\E=3pKXg!+q9˪b5)^{~=Qi.]pn3尙핢fgrC[f]DqO:؅空`ʍnbq<2vrM<|wQssӒsT=z.ZZC\ݳquu D5u4&/?ފI&&;<:?Z}ݜ,i̽ۚ|݋q<üe?;uɍkp)opq)=5T'Cq/[u~]j-H'7m~n~|sNL>ˍ^3ٿsno2A̗ vg=s]u]@㪎ORٯxkLRjoT,GyDZ}e(ZɆ2%M :|In |sq9F[}"NFƍZ{tN}y|zKIإ/h2I51 T|\xB {#-91nYMbKBPK^9Dvϒaxd |iךq.5ݞ-3 3W 3o 8fdr}:F!lEc'3[痙qwtr+'qȺ7]'Z;qWE;tLd̝mfw wأn;0W+Pˤ ? Q}?qrQDS`V):W]v퐓};Bȣo)!'E-\L)-K|Iz_^QL^2/KP BL$L'#,[ьAO-aBR8cx+Ql*7, #I,#KmFQXw;s0>sZXkHV{w]\f䉱oxsNtc{T9`*-lVeVD$YgZcY̽Q1{W8ŒȮGNqnwJ?8+wʛ9ϲDc]V)=dr!*NIkT:56[d']N8%ɸ"lӭf2U:$MlkdO?O?|}]svr.v\Tq{{W' 0o[;|OGo}yҭ*gCEDMr Kvk{gux n31LSQ2)^ >TMk~{q5#| gv J=8?rs߾?>_tz Wb>Ě3sfYawguw:;~o #ȣю7P2 QP]hNv}ZFơ{>/5C"{_G`Ѽ"eMoDFގO&uv{Ӿ&f*im1|/"?K|kods{LyE |Ks=Mܒ~Ț;kdTKyʂ1`ӄ4]p1M@xX:P](n 3| m_ۇ;"nyk;$ r'."7 QMhЬtaQ>$Nk#o'|yvrKѹL)ș䳅r,?يXuL›&/I6`x"k_p pGӯ9z/9_o_nJ?U'@{]]E:tӧM0ӧ.P;ơ5ᅠE TUw̌ow]p/|e`X"YJ'ĵ.꭮N nzއJ?e,geTo 剦n*bzg)4%P?`{ X6({|xMS7d`m8'[3Aݠ)eՠkW?] PA' 7Q5)F#2L.&IWyȸ-zQޝھ\wɜ_&jV+U5ٹ1LzAZnw\d]\ot+oryxp=wAwE$o(u 0lŃwFLlrRJAeq0yݵ7bnބݗȪ6Hg %*q8iuQ%U u$Z!Mw 0B}ӿ|9vF]֜]` u1x>7nY0E GHhKx G aA,uD-nǟ/2>|沈tVcFȏ{#ޗ,횪#eL6D rv"#n{'W?}v콭"*/}&jLɜ[JU4{9Z*O\Mx]Kz"ky]v׻oa~q9͉ljSvNny7v{Sڋ朳d\ƹ5_0ω=|H9l+%09_n I8g7=fo v Er 1،>?\ou3˩gN؊Yo9n|5;=gyǡvas~/;.&*Ww{=yN˯ouݑ&v~^Mn=>uν;,]DyxäyMsɅCC=[GM D;919dSϫwFxwYHy)7$ >N^Q^]ݢ|%w;ܐoZ5{T0#,P1"~ɋ:"TGc`TT#U[ZZZjN  !Y،НEO=kD(˭)%xQSֹ {W@5[) /hZ\ꞯ_7/*w\&ɿg(b@Vl]F21 6o#͜\8hZ{[y ͠@wP}yN#:_EǃY?S#YY=u| )C( $*U"cs ]]6_r7^v/GyL*2_]\{szTsyVۈ]3xd=ָ$[˞lr2㛜8ռs'GvpwPݗ&lɩ7~j}=J7'oj&4an͕?FyRZi`KtN{1_E9ǁoho>akda7σ-]Q.ۍ7&,z͚wnxNxn(u>&&1 m^v`(tVeRRد_Bv`0ˆeȟomw9Ӟ&wsyf|/dפE;w+bQK3G*a=ܝtpOl\cNdțIy &|F^{xL:u7-3w>ݑLs~Wgu1۫35Qe:s};y,o*178voW6T%ssه/O+_~F*#awv~]y3NKy_r_r 2ΑݸFDY'3k2Tx< q\U*IEtԓy ws[ffWob33\I8nsf|>/ޒ 7f莕MsNs,b_s{9:&q͞_ j Ƴqg/^3}?W6|9eeG"Vu٫-/w.u/.k}8X8h0U(UT(WU2ְF`tR_`d]+k~/'AvFCNw6 soF'CӌE&, 4O҆4Itcέ5%n:i5$)=EF/EH ?z=4Ş6~ubÄtQ]1a6 Jb]ơG+o=YҮАmvQ¶u̹Y|ʞ?h`ƈFmǎDú{1_?§w6"O5qƨ^:;ƨ&ة$4:)6c9Jg<ǷMHR1gU]MSC೫-LS¹)wWԭJrg.L-NZ~~[g>7ͼy^8KۓYq%|MWմXNCu /}f_|sh@>l*a" 35_&i"?^lF5Kzз՛ :D8ܩ<w,mafS` aޫmp_G*ro se\Ivlb$׺ty4sfuB0 ^z]o{'h5?Cͫ`/\7p Е#UHQU#AV_A؂-}ss.=dL-2"XupBdNB˞kK6Os;r>;&5.Iv9 cw7^en&B*Z9^0E`TPRhf3c13&4̓kLd-6r3i0f'NKMql*=nӖENr|sWb U 11)Y\?ĩj3ZxωrGa$ JOs]2ۣ4IEUd٢ % P|i ; 3r 4FXf+9P9 &*؟syv.+x=,!=٪;Gc.QZaѱDMtD^)Ձ$I|Y~B,Sb7}V+?U|{??(Y\ .HzloZ::b֘3&.nhD!P 6(SiV DoT"%Aξ 2V>ycseDIFYI eep]L->MP1svd.^ 8=]%O3C.s?5b=d1bU؂n-~G\c|20QvIP/ jJ7?"h5bʟ{Zjߍ E\֟jn23Dn.ܑ,%߮f']W?J]ިOdqssX0}|fx:p=<@]`!6cU;T|mV:eeEabb0nAG-Tvx ڃʈaI``]U͓ъp6G1_0_/Wx}ƚ &zڨUt>}]mֿW<|ÇG!:N7 @MgpwID84{4h&%e :cOEn<68bЯ,1VSZZFŜQzV3= g^$ ]Z*AjWNֿB` "He C:xb3{gi;+¤@'*G*rpZ48n x<~lxGKIkv%IyU IB_! 4UJϊp~aSz6#yj>FE:?.t8pG^C~; =P ^XI '4̎Wjc:3B@&. e[o\cn,EM6?3kZX[mh_wP]T1(&‰hլ(ºr}jKT/+%Oqʔ{xS8m>q18[`zƎ:ק\M׈Ll<λ@LB#)]HHɩ[¢tay3Ӳب>wق" yb*R* ԃ&~VE(, DqJK<2 #,~CQ^dό>.mQ7XM /54JȷU$g^p(x { )7S{6z^SI{肼e  .66w ͖df%r;+8cdVQI P/"qd5})Q7Ga؈H2LSu4+H-/esA7휺QDT^?zZ_ c.^p3V#k 15Ӹ:g(wm ^">C.4C*b w~` JW̿SʎQ XyP׊*_,_@Ǡ)nF/2bɡy,RTK[x\!X0`0`b%pE]ĊD6 P@/Ʌ{{z_)5vE T`1ޢTONXKsĀ߮P&YЩ4&=K!gN2"$!!!"HɥDD֑t4"At(TEM(SJ:D] (&D4҉" :CJ(.PtP]iӭ" T:Nt:t!Љ4DQ@PT@]"UҨit "i@..B GH tЪ" ( U.AiEQ)Uu] #4BҮtЪ((i]*iM QGH(PU4.tZQWJiUкGK.*&BtiPUШiE5KFР*::u4*t HDCH](:BEPҩ4] (.DEEEҮM (.M(BB]""&K(#к& HHJ.M(# .tPJ#]@] itCNutU #AM #"քDAt]( h]H҃:thQt.t":t*.Et*Ji*FBitQ4u4iWBP:SB"&Zt]hQM(it:UD(Tt*J H.DD"UЊ] +].TQA.(.Aքt.4֔4JUҚSB+TFBЪit":QAhQE4FM"t:D(#"H F)!SB*AAQ4.tMQӥZ҂&ttQEUТ@GHTEGFШPP#AY$VBDPQҺҮEШ:t.hUGH:]"ЮB#кӡ](PU#*A4t*Q( .B:SBAtТ)]*FJ&JZT@TEUNE](.ЫAHtкUtPJt  ӤuҮPQAXL33 f0̙}ߕ'G]s,WB`w?ǖs]0CG` fOyx)̚ߗ͢ľ70ah>ϵ';y|dNK{{Lg Qݻ/z󠩙|՜3/te9ZI7I}o yxpHOkۯyu?=M'V}p-p&6nE5{cYqίb|=w\|{r<| j)k>6ni߱^k;u;OSch[qF(LkNXe䛲Y|Ι\3;CYh|֜{_TIg㡘gxz뾩ww^v~ϵiֽlZ8}{/O5zil?ַ >%OS6𡱟Eziqi)tsSg6h8OPot\a]Ot}Ho%{S'݈rW;әK\T^,4:a刿&eM~K%6-sjP9Uj V@$x= @OO4 gZqq$~@c'X2)YqRy$ (fW==Oz5<8Oé.bH*>Lkۿ08؁nFs+?Xyxgi-qFϱ'[~q?\ԞTK8)@& -e9s39]ڭ59+e?;ےv:=eHm];۶mTUƲ{ټxI(>Lil֮`F ^2LgB^Bk+ZY)y' aE wnѰ(`=}#Š2}['$0:aϯa:N^(ϸ`Ŗ>ۆ\b)Yn*(u7D\"s= `D7-QᣭXb_^eծԒ3S ii|ÝIJI|#ǎ>eqk`rjv;J ;i> ~䅍Ckp%OwJ?+N?0qni_^sx8b]-Èݶ7gIXޞxl%:ovx̉-6[K;JS~:E h*F(P?|'m6 BRzLH)bXbSF>Aku ;1g%r`*p ܸv8y&!wT*:iyWU~rʯ'f;I1-_D6zhA/Y?zd&& }),-fv^ >Ѡ19N^{Ys o|#V 7Mt7.Y!VD])ƪ^\jPah;}% %mS i!pɌq1p/FZGSfO@7 Wmf+hl!~p$+WWbBxvqjz\LEVUR3/xo >Pt.X=Yx5jQ8VB Ӌh@*BMQ2Y\Seӿl^GR_R:`\\+%^ E%)RDAOPU5BZYyDUۖit+0I+vl:"Au›m4hfk>CjvOTVm׋濊- V3uHepE":;SV]OZdLTr0 G)H|i63Qj\`g]ȐcvG/[~h~k&WSH~M9yWБ,NLضf1EÁgmGY$>(ħ̅fY}/,R1|/kĶ4KYl2K97*;y6\ʘ|3H+d+zf!?Dk}5xzɨ@'qVK Ɂ@F-p8N2GRdh5QΘh@qp F"4JѣIu0,iۧ߿~? C82p{Nr$ R䍆./ދFF}-Z->9'ts6RݏhS{*qX/Ǣ&&R#YڹγMPl6giQ5_8kf(m=$%D ϕ-emå"Y=5C1&a2Z~48WL}~Kwh2zBt'*Q,٫Ux/Υ T-_ZQj{r('(՜6ɲ$mSX_ `hZ7Q)؞Ƭ #A?ryU?6[Kaቊ,Xd.]X{j2`ōXg UZ+ \>m Lލw7R٧ tboC+~\Fs^һ yYG.=Z%{[ P%z`g-瞼>mCˢt/ N!'=J9Ȗ4uص0F$(3blfGqKςi[{>a/t( hmJS 7x~\@͹1ǝAE.qRaAh+o@zU_vzAd|9N1{{OG[ !?cqL"s<:gi #liin((2| Bz(PT50 (`E! TTi4S怍-AӒ*8S%*nw#Ec !xۢ ]FSZ}Gݹ*B?Lx R`d2. ,t?t 1c\&78<fLb8#6~Z=-/.hfF>޺`~}(k:FvKWzx}[O ً4 Mϡ.3u<6&,BŤG͋c`jvqǫ1ND;~Qb:Qs` F 躑"ITRQ,'PU}"dɱe BRZ6;6> !P׊lXsAO4+A^+evK"uEE J~vos>_wI6JaG4FM`n۩1!C>uTc (( 67i6PیA|y@ K61 T[ #sal櫅,8+U9yӽV[l ? Zrm-tn{rP'Wy)!38}ͫga4'$ -xv{]^OG]׻:uDfF7A==әB@5 k[YWp^nyصa;Xn"u^"_dOB,TЄP\?=A]7aDcOX@E"]ML59e34٘?ʩDlNyK]}u9V~`_JWĉ Ǎ$, )z7l,7_({d4g< gt:rAvC~j6ݦ $5;KLB,dc}aU֭NNɪ:x'=өh?i?Ə M3{FNy'V{m2ef{{7!F99 /5}7ͷg+y!]\oRttoCxv qZ_}pҡV28FsRWTUk;7'p PL? %hh 3]{ uvCԶ.3 u[HʬşoG>As䝗\.2x謎R<fvZd';]D j} %|#cWKHqr)owwQ+mnW\-WZLVۢ=7t} u.xx",f0rI{fGC- Yk\P_N/׌֏Q[)jnNd 8nLOeO=ci٧DQWΔj .i-!rصf2lp;MLD)h{sVQ - [ ~zH9]|v\IJjҌ_sGt_}1}O mf|ʹxemw9[@orƗoc58:FMl}E~.=!pCoo}R yyɬ\_# DZ]˹`鿙ۅ=z0}9 /L|<;'S~9 zv\}~ə#W|Ski02pG];UɵUQ79mok9EYAʳpIej\IS[Щx6SmpoAjw==9:"Ό8睅Y \| (CiebaCNԧQx.{˚ŎU+]78/fOTr 'O57C.&[)3~UqEjFz\}>'ݐ5C.VW#hf+Eg12("~gRUuCT(l6N}ѹB Dgc K Q˝A_s'{ZN H nW5W9RoN; փB {&o6 g; ]|$On*2!OZ'ƋhFcf+Q6sR4˱ҡ:VmAR› WٮvVgMqG+^_Q:fwCS]/_%(lhZmз7]SۼGq|qrR9z3 T*:ϾD؆\7f؏@i񅇵W${[p\UMj 1y?@񧚾Vֽur&W-81ÏPI(oMA[HZIHH$;tX.%h}]j]G6+9*/;:spey4R0iS;OB҄j=)t7{OfJxJßcIԽ:I6&[3Ee@KOw"_iHkv:N>a˧oU\nn5DdT %mK5;j#כ:2ZF'qmz%@al9ɻU -ԟ$0 qձ~"HZtFl>;7*s1x zFxAPb: ԈPEΊ5 E`(S b Aqh)DRGYB! 0h)œA"bA #bDN]#A* }"7dAoA{{kP@0cT-vk+2 D0* N}sp|!xyzQʫ49<o'Ah tD>/#Twhn0@= @~z#D !*"DT`Qx^G B"-4ˠLh ?uC@Ń"+Âd PP. sQAD +PEP௃PSy!s}vSS~<ܑ"PDz ƈDWŀ'L  pYrbBk`&A@a ?@cc*z4&p` *a 3xm\uC_xIhgq>L*%8D(vh,O8EsKf=gə&JKwNL󍋵ZG3tך:F 73OBZFI-:)'P:Щӊ=Zȓ bDlfAd;3Ȟp$TPIc񑡕P8Q q0B˻KN6EAMMGM ')==<d ]3QZ*aL+ry 5-?-!LIȷZU 4I ̊AJBf93io#ͳ5;OD#i)NCPRR 0WFV!\UPH ? I͸ &mЂ8d4fZ*2~jNYWAy@RBGratbq&r5LR0p"%ڗjfd暦b H6ܼrM<! 4 @ߞAÀB%Glv^<|4, '}(R ?cT8  ``!bv l`>ƀS 5$@D@3E1ct}vq10D.MK@1,djjqF fƞ53o:g g {3hhZfhO&E09Hb3^r"uM#,Aee )ڇofd}(ÅZcR"*HSdj5̈ġP=EBS0C,D'3Ȯ6 0?۰T3A(84/?D ݳPZf[vV|{HΌ;nf0'gC}fXmK:/CyABt43 ,Mk{'vriUOj\_ScG`&4/m ؜y=Cø2} Z +֗;WK1Lw.^t% L7btIr~'Ү@(m5aiߪʤ_~17Zh&޼/݅а>UUKcqxzV3?Ys͟F.bX T2eш2:KY2d[d[yn%GʙO}`Kþ' @p+@Zz,>(FMRAKE"<-~@F #K޲NQ0{jd dXU޾0fݸЙؐƩFy^?z|9JF38Ffn_1*[E`UxΧE&`oIh|jҘ3 @a`iBzj>JMUf9Ԑh+LuTuiUN~Gujӏm@_,"fa7c=ׯy`^Mӿ,DEo & E|+Ǖ#eH.#"PtP, Z}b -\%30d1fGfWZ]ʉ RL -K5+c. W!$`}=(uЄ1LB Q;_!x:^_SCE tDNYsiUdz-A ^ߴ{.zMۮ9d!#$Q[}| 틩MkkA苍FE,j"&m(tw$;$LD"SٱpF~1]#@:Kab,UJ|c;t@qo yPXu*nK8vDG KN0׋'\r4L1L FƤۏMizIZH!abYEċLK f%eDD:b?ųA |K-edHH$&MGʛHa8Q-UFD!̢ O-WIJAL%7Q TIWZ?G²X.ٰ3] 3ZkM.ܚOZj8GԛYe˟̿xiut;aߛ.ƀ͛/k*DP(qFctBAQW.>ݲ֗zj.j$=xQʷen׌п_=I!Jދ)EkfX הKW C,PGF IoLlr^U~ Vx>NWAxt xŗ@j5(՛RsܯP}/½O׺-dz[[)LQ|zsʔqRVȯ DgΉ|V5%OT#)!>)6_;ܯum a"o(ZzO@*5 Pڢ NlM'|o/&|93~P?H&KE:Y"4\\/>t.)H(?LG9D`P w^qyjהי]y:OvP~,=6񍟞$uT?88@( $Rn"YNX-fEplog0-xR"QpŘR1,2';*K-xk&b/(W.#g:E~:ue#aȲ$LoK=MS dx|!)6 Q:;\+Q R .da/(F)`' 28jtn0eGwV|; Xr) ]R, rjڵN5X# YdBL3/8=3|pgah-&/(k'a&f-ߟۋR/4?}qXws/ZBC-sqb|5凧*T;۲k@HQ ^<;ai4/P Ps>ÛvpSӘމ}2Gri_2ևmZvNo8?0l ~tZRW6lߎX;&h}k "#(N. M'NJP!(xe*}'GwRv#7z1^5=BT\!d qh"&F`N[f|̤d_t>ٸd;,1b2W \oQ!Jmlq*.iYO o!O'u%1L%-vE;b}Z0.}(Jt=fn.ÀĈæH8;ЯQ{f9킹*5.xJܑ(I_UFrdB>mC?h7!\p)ؓQbw]aeCjpMgKa \/fLu$& U&&6ߐׅq8n#drԵ% 3n+ f\Ƥ(݇ߓwK_tcf2}˘zM z$HTPN1Kq X#AO@7w\+^({?)OK,=q2TA!b}w\8lNp=-*+=^8ΔLx>\)5Cyz;Lutf06C"/9?ß~3Ys;?ܙ22i}\ǝdhǙyУ\Yb~DQnCWK62hpr|=5e\u?"Hi"9C`vIK7ΗDCf( }܃!|nǿ1h<ډy|ϖXRy^Yo9aݟm YBmv@Nע=&W\r|%>#arYg3Gjxح&0ĖVDž1I$k}?a#4yGBl>gYjl}9uŰi}'w~g8bbw/^7>"#|= S'kZYgxo*aa xC~CY\B@Et+?ϧ "T' U6F-Q Taq dؗ==2~c͒<"i5%q0uLU%7:[y|.p)dzSѫ)Tq7K;7XH{aꞞ*> ۸=^i%:&άk= \+_@,VÏzl)ȓ1g}#쟟4gzz-٢ puáfk[ 51N9L++*PU^,w&mZ 0 v! puoJ"͑9 Trӌ˾!yL{ BhǓ6~]m P"|-KawE77(vo>?K@B|DFHKJ%0E` 1LX>ـ(/nT> @պ,~uZ8.0 if1F*v>S3Mq%B*)A@sTRB+ M6rvĐ Y\[@ʱQ66'p^HQ hnn{&ZMEぉh)q M> ƘA7<ȏZRѼ ĆGiO^{FR/!ōwGb/{~/_3p$U1'%$ 3}iv2QA2&?cm6V vm7e.L#u5QA=S n{炠| n mǮ@Pp̘v *do;wVdy&#Pwjҫ5^3K<<3c<)"Kz9d7=HEAy)GCn S4|7A19# 虚ȘhgG@tu)_Dv6ǁ.IisܱckAf0,rRUoM>m8ELI"1nu6˴,Ot;aJ,C8>~ie3aIT3Ɲy|VZ@sVa9[yh\B!;ALYwG/.92~\ Q~b 8cu!2p3τEOHZ}cQŒ~e\!ӎ}Ls-PFA٣40Ѐ\<.VxIrY; BxE0O~a S|_t=4y i59t2KJa=Oz\rjT؋3n9-Aޗ1Ev0#\9EGٖcTnnjj-~ŠGŹ K|~ShEt"q\gx(F|t6+>/臶~Ar ϾhmIH}%3 ATon>ȌYK'Hy;6B\ /|P`O: □m }BSnY/ЂݘP~tJXO:VF}d{`k 70N,(Ź+zBQ,Qql\[ ŧ!T1" h]8b] t)8z x+E}\>zt~FLa4Ӌ?^h=<}R˒`8Kx?#?Te%iR*o(X?s<'}k~þRȺX6#=?f m0}I xJTpt#DODJJW4_1C8_h W,0>>$%?s4 xF:ܠ5>3,v(C-ZOY'#/!zvc)Gan<q~@;6ոG{HIL?>?܎Ĕ3z, =\bCX4?@:{!$%ὅ7q3.9l {az301u8s*$D H5 2?\|7=7"چU]! 5bN 9|>{z0c!GX͎kx*&cpB=X|CQ g<Lm3 xþ Q@ +x)JHXڝи `? 7g6̚bܿ]Haʂ} =zG|},AO$‡#AXt\MVdi|KYp ;W>L f:'%>٨+s,ēIZ_':ďz*T|}Á;9[>%0XS-D0MhI Q]J7",9W 5J1'hE:<,8 p(!xXz?eM_`ضGy3bs/E\zlCD#lDIJHЧNka=_ל?!.]{k;|Fc{cj(|!ڜbdQ26⃗ո~82xgs{2@Tq=אOZp C( Lpˠgva> zD9SS탻ꑵ*o4~ZA GQq*`8:C , CPe=l!nŮ!4A<B+>/{?xk{yV> R|8:oh7Cy3>|Gv G4&O$]=C{$cGB_3TfaAePR _"$԰[~a /Ewǩ2PT"H{0Tb Ad R + VMFQÎZCTLr/"Fz$VJ< H &|~ċh5He&J:R`3 XLd&2φ.+-r%"/ qc40XB 8u`Gb@vCT @Rx 05+2(wg$gK?}]lx}\g!IZ_ x(͞P0F܏` t0@ ?^9[ṴKXrG1\м #_ێ67.9g 8V|[¯r=Cja1Bacԥ_9=T).V]@svԲ x"| z6q+HbQMJ8pn'F{GFʑZ9Pی#?cy1tE]BJ6jD 2+]~3 G_LF 4 ^z]T3\s%ހ}Q,`6qʳ&z;F'GvV[KI=7dHNLx8#ClZ O !g ֈ ԸDClIGG-JcaZp؉Axx$O% ZfsF˼TIm6fPي"N`N*pnL #)4X(s8QXA>]Aahy\vahl,86{pf䄋 ۙޱN\<YL +fG.(yv&HLHj(Oh4Ey ^ vx's#1o5~CGagƍ<̡˒ XF&MjьӔMl^`.(xO4#5 ^b*Hdh-T8fmq;ab T}r> GWrB<OyFsPuPx %fD^(d{Ŀ&AŒ5~ H;b_9'4c_!Ș͹Aڂ  86D73nk=p矿 x[u\uN3&}yļ8{ue=Mп B !x~2 /́3"8" Y@Y0!}3ygoz0@ s9>5dcM{!44'EhRA@W*U&zMXZ `nN<6T>3hidHϠإ?ƚH(s4앁(KYr<gcPX9SC@C S1K\KN! ƈ&̛ʜ0V &nCTa9Ǖuwb6Rg[X?a2=~O] Ylu_O dyC(ue Lpd g - >c)tM c (N\ H_"3?_y_hb^$ߨy;cYF4 !P+_Gws;QRO_bBGQ2? <n;@A^!%Aޅʡ?{4w㓆d)尥d#uNd`c<ʚk'XS_~1z¦%>&c# ׎!>:ݕm,>q ?rKSy-Ym,=`BgWn fgp<`?aRPņ/9};  xP Pt&dаlIa>[5lZY"SG$w?ڎ>\qL}eH)R>9V] xJIڐ!?ACPFu׸B}u0#~<9P lq8Uv Op#||̼J2댌d56-G0?Ss? S##ȟ!sX{%{/RVt8ȇYrЙrO?HHhf~(gDnBRgVm z&q|x`ZcCMwivЁ^!MIIgb{'䁣5h aouv/"ml`^ `gh7W`#UB'ȇ i15Y MmB|{AD-/nvvJL&&ۼ%L"4?7s }z_r3$PxٰBGqfIC2s]=B}2 .I>1`d,Bxbxfϵ~)u8ᕪYsK+اk5٫,nq+}i_ʤP|\YScRT:UOxe}KnW ǼH]/ˣvb)h>Ljexl_6G#Y)=7#8֌h?RNq c.<&I28a֫6-RwlfYҹeau5\ZsPz&~Ä뻋P4s֙(i-_-}Gq{8[$&6ƞ)k[mx=3mVdz7s_ &^= G\]d15| >trϗXykUic.8{'$Ǝ ӊ(Fռ)3)c;P+g9grMu{N={Fh&:)WO-I9Ax8Q3s9N9i(TXGPʳx?\n(Xmj#P]ƒC⋿͡,a5P"#;+N__+D»6eWq_pm]* Mfq\蔝9y7ҟg;0VRfz;-9>SVXÕB>J!mdyOxn"h; ȇc~2@n 4!Q4R?ła)U`q"dF#‚J`i 9;3?5 C}֎Zuҵ`e\{ϣ}[w:?[w[^_=@y罵fYe2Bۧ TQu?6s~7AP( ؖ&90'f}[Ҹ=-)VZWXMgns3h(f1X@Z(ĨR)տ2!~Bլ@2#,L[Q%(78|ڍJN-#:U !M0S2CݔG4>' ӛ0xh32i|xN7tv/Ԕө$[cZvf{]@*TDwP4%,6vr~z˹}T![1lK .;;?j(j6Yk&p*pGrh|woR r%T\O!h csQYl2͂1 (m2|b&KWSDCp}C(,r F*O ߼z#,eDwÆnr; đ~zMz;1T) NP_'R,js^.$^@V>٨[5o;^y~[<`CޙNyQy!` ߳>@@u9sBS33 [Lܮ` J*`,W$8|fg¡AȓPB>l>& 3ʼ@P*mR pJ:޶}s`8E3b9-7Ssf֑ݲ}FK{` !0'`1@dWw$&g{}L t;[:CF.8" `Q#`qkw95㑗; /ȏr#C@Xb/>cP6ŽB쯦 fXaNJwq:IT btId "q:J/yYL*{Ҥo`swqϯVR@7sg\_Kàn&o=t-n8ySh)OjcR,Q ~|WtD3Jq2&@ہh|Uم.!J +N[c_?/ǠL͵!N$XG掃v7g<Kx%nF qb,2Ǘ4wDA[6 ߮^QbF)M7=_ {!GVOEbcr+FXB jĝ% _C>Y'LQ[utyS v&!o3]҈.{̟+9xT 1\ ىղ9rP2WB0Hy]yXQ%Dv4ǁ7ζ*wE>$c+)BHh)Azha" /pe~ iodkyޙdAqތTh3St Xa-(_僜W8@ՋDyYx1glݯ@۝!iioc,qe qİ%df x8_8DZϱqxe DțEd=`XRRHXXZjGwx/ҍXb~ZLal^|)rZzbJ .{%ء ɮ ^KСk6D%fBHI0 A%\{BwҸ&=<;(E>tґ &.- z-[&k [Fw֍׏}g8_o]L@yϚe?o_r=7 n`sΉ7oRg6|3=Sڱ-Bq+ \3Z$-0ykn ̓$Y [TaO3}3|dADh^ u]X/AB}LmAjTQ(hoX($TL,% X*T^o8c8E \(hI6l {-rv<{SP24/|P}oƣ̫ġo-ܟnVo' .ƃhL !&"kZmB{S¶*^&/)H/K&qGU#`"JU?:!9o V10?uU`7+XSP+c4,FdIOn=, ;:9}u\*ſl$SurKqTP}|f>mM~YM BaE_ҞHwcG:VX͘FbipA< 3 2'B?_0UVw`p_"u k:KD{LvMd,|x|߆1 鞩"%"ܚ/zh,")bykU>QG3YsjT1ѷhFB?|N?ؒ,q+ynzM>p)Y<}B'8R!QU+bͬXϕO99T.:8 Wd'Yf,%ݪg@>[$;tAMT DY# d8LROFS-Xħ]:0B0f1f2[ efOMAmcbā s=JGr .3 jU8׫|,Y--\O(_Ej M cbB.'RO7-d֊{[*dF`跙^K!ǭ h ʸG],예k|mr~_lgo{ďX|'">g_"l~:]E/W"i"1BETB)h0P_^ֶ64Юq-`;a P,,3 >z_1<ZT]M-T{W|;rQN ?d8fD_E۴&cKfsIB'3, *DGXSzd x<6uH-P>ZHѺp$Ȃnt1hx,dhcaC/a/\*FoӟDϩP:DiL1|^J2ћ<1)YF("JҬ++>]^?X#C#?N_1ny'K`)j}1\V(:*>z5OUbbE03v9wwpPWLL%n2$ˏ3O)kkM$Rl}X#~n >SYNOxa ja2=_^;[dz?q`$RY]q| NVcd#enmibiY,` w'd02c@8<33D{7!(d):. 5h]*J͛;' dgw_T *)Q NX7VFv+pCu5~duጄ~/U۟m4 @uUUVc (R8@)V*T`X,GsDsawC b?̐#$؆ܮEp/:VTBN UR) RTG'aT(W EIoG>;n9n}4=^.*}+@A!@D;hG"uL~( U*&`' H)EzH("DDÊ^(lQC ".?܀碠,U"9""h>Pm"A; QOO}r=,@3quā+Aȃ;V>6u4>کTHKڐTZH}Bg o`iTh<-huku,_{8Lˎ7* R!s m/Kkm66n?.aNpک -Tso_Go8H=OHl}P g[U qU_M啚v/l"sBh t;Uǥv9s>HVt>ȔfU `*x,P:#>7@̿ŕv8`île0D26qfF'2eqr fPީhزedNT{Y5= $F 2\心2֖c6uִv%ef^TVְ16%!_`T%f R̳wLAE>'Ig;Q;6tr@@CCUF#b1..M;tV\ Gt_ò)Y8K0 )֦n||47“No{;rNXNP>{e}xiB)ZM6pt$g +fYM4re^Gҁ$lz{'6g]=g*kAp֠0$HJ-#I{%#R|וy,<%ou} L $Bqݰy88sABely;>\7b -vӋ0boU`n0 3\v~Ņ#5ɶ֔ hDiAW"dU?6.aIyԽ G!Vg[{XaP ŠT>0EUQ&LBhL> E"X\.14G#ź2Уo] Û0wRH)ftFyiP6%յ ]ǘ%@anw"d҉Z$rm)ՍPBx<q^o-6ň[FSLA63"lPuc+NP3鍁ZB\"JRSG ^ai' Ǽ_g"m -~8}u^۾\)˛Suf|1bdZLn?#=+&w.ʐcLyذ=L"DH1x+\|16W+ ?Hi~klE,"I$%Bu""Đ**Tc IaqZ9\cVSE;B+$ $ TN;s,6PaXȑz,ʻ[T2rpt'-J +~i^JQGUTQ!9loצ'XĬ(fQۊ AP6/9Gn~~*O*{ݥh)J)7>v4 ek%cj>Q鑐IZ׾ G$Y7LkEScf1g3ipx]}6)UV{ 2S0Qk7\x)@b{\3[J 5K8 i\ C ? Jb`:RE?;uDT%,U"kX LeQўBspN'v[k"6ly H%侍$|.:R.kB1}"P|}l8ip|R*_GƷ,eY5\k537o /dSАrFXKvq_}@a)Z.:0t#Op/_C;i,yQec SP`_B:*aU#^.0"b\ɞ(1~Lc@@ USC,FDKauu ?>gq 9hMDg4gl!# uecu>1`nshH7@6،G>&2$_{~P F`^:g7H~gͳ|;!J.P<0ހ8?+ C 1!v *L+2dB{qi[Kk^dQT8wIa2N)VX=A8+Vz)֬ƧEDa@O~wg|\KO9of,S9M9AX j=i8wS,nzw_ νC ?ȣQL a6qXg# О<dOhz ukAeާd{XiU+*bNZ/+#af-C"5%?*傈s(p}Bg`CֿqNǸwj=zl1C0qc;f1Ť&ౌa^.7b`6n*o58#g40Y? js?xoD;ʑ-Ne79nGa,vWyh_W_{h-:&zǥSź3BH# 6( ĿRdDLmPBS:HEKHVŢ @bդlG0PV9\>>̏L 'vרw5nLE|HoT1)]>ad*!e"l (3jq(01,ݨ}ؠ*~b-/}c[ى3/2OrCD٠<)C8p{gLwz#w̃Av1Akϓ>1ήc 볰a 2 t߃At{ׁ jk2\s"p*Wvq,Low{ 6=F=~w)% PJ`]eP\^%?|/C4>8!T90afpZH)Vlԅx| [C،}I!T|LgǴ>vzw9wi| ;Ң4$ F<؁lGbO`ōE$3+R+l ⼀+5ŀԱ O$EDc!,gc"^;FY}V!ّ_} Ȯc4 W B7%8z}|CG>y!qi_\R,R&\x)Y@9/#簛AjS);Âr)\/n.pE0ba \Ha=mOYǺs3 ːjW߅gx`0rbo;vԅ}ms\pKQ"+oι廛7(d@9}0}IjAϧš1 at1s6BGEw8TAd cT|@ b0K$1#BG?2իX .d7 BCG04glt[:Shٸ D.5 ʟ̛ `~t6x#P{{NeÛ9]!AˀEs"#GA!7d,aQXX<ʾ\<L?'+{>>߇dǜ*wz9azX aE;Z}3* NqkmzjCD0u!~ŁU]WBǹv\vzr8y1]n;|8A=Q:CRևۗ:>.EttL&;Mb ? Rf?Usl7xAfYB xnGRAk|Yͧ0"ChsBCL`5V녌)ev] Ĥ]jE"R)7s`)"4 XQF L@p']Ht=d:giq ˊE{,Sow?mCyfA B[eqoXu"%vN)!JN'( hha2!Ek{^z9ǯo!t>Մ\`O*  ~F_u<7pd Թwnisg+cGQZC:cd.ՆPssL#>]+X"珡E(72ZCq^xgo;Cikߥ@uy\ǭq"vA%rJ8&A=\W~8$ VD;BH#"rpT.1+Ţ(]N3-E~ZpZvK7܇Q,E2Metq8 grC"(w+oD%l, Rac]_࣢MN _W:G60{0<~lD7G|mkv'e$׉wH4@T-0-dcOxsumCro87]qP1_Wct|GUMo7"[2,6#NXldyOGKQ¥ҩ0}q[6IqUq!}jWz$#Q!h&nfeQ)W)KKKNSSTB&)S?R k}NG[z3PQYwhZCPDM?9%!E?/WL"2doF.~]({S0 xȇB~1݁ =0ln*YyџQIxbɘ^^HzmSTmbʪz(4! /k̿h[6`\Zx[;iYIr>]NyC8젪!š1>a#g˥x }⽛\ޏh(:= ӝ!@scz 9nRݫP\eґx&]w^eW:"uzP"8͇C9C.DCwa{5&h|.j1u8Ǩ}ݐ:H\ shoaXpk!"\{T摑C8旋{r?QTv+piݖ7 *$:AvwS0C0(!kSjx=2VHǃMfabA ?ݬ=0mx!jl;Cqf@zD/iqҸ#1xpa½C ;<:XS<%z!4s5pge{d \wk 6.&A5(ƷH؆&1DRT>EaZ( !*`R&LNؑV*XI~Ţhj<*Dp{lF VPCeig9q꤁$H,""*) HB+"}x $BA$CD&BZ4.h] UѧN@KD!FDYBBaEj)D$D`dI$ER@V@ FFEQhT$E  l 2"IQֿh:Ҫ@JH$H H$@Қк #SZPP-ֵQa* SFEdYA $gEV,#PIXУ4֕ "hU4"4.SD&Z5 + ! HyKhARF@$B$A @Y %BBAd$D֗ZKU]SKhQMi tTT:XAFT5Y B #  HH$B">h+9Z*HR*T$1`'!dIAd$daEn0TA$a I$wD$Сѡ@GB  DBA@LYP!SJHZQP]kZPdYI- 6Z5E!aI$BE0*kZ]hGZ]h&C@.KB:@2%I$EIHFEFAdEaj , $"(H-H$;u C lo #tagls ?xAdW&?|c/WgA&' 녍/Eq>f^vfB t )F?Y0zGKfl?K@ ‚(lP~CZ i9ه-xN"hc ÷>_ zlY rj3bl-~Kgd V%d{!1 fgC6?3cș,{},lV̧iP)š0`\v@;BD-АE=9RT(0$+P8G`8*IYcdK%<$efU&XMqrKKp! G`dDv~#!<} !ʦ@w>0ȼNlҹ_ټ9 v¸yx>C)\<&:Q;{N8B@0JdCz\ɘT2!7敨FErO6A~ _}eݮ.N>+=~Y%shzY" m]2AYA,&wTGv?5}[|wϨnm4v5@u]gDm)r| u_a4My̥{}E+~ P*[F >:u/kB܃ -HExWT `&X|!V \ M;t4galX:l{!x;]{@F{XzQg1 /@uX= S8OaFo}u?}JՋ%Ll+5ˑ^6~6:Q7Sv b 9j)ύhpHY##̒8ti0.) 7V40G1˜J`ySM,0s,l}SAACv֟O]6ZL6 {j80awCO)#s3.|*r)hLUSб.\arKмAj0ɇ^PZW; XFE䶍谶ҋu|av0gd4 n?b V>bfcCWaѧ@AB@(Y RR!u RQa(mL& aÖ]:t;(f}D Aʦb>UEk1k{%l߱dfXuCpPs 4_X2}SB~L:(nP¹ĵ1Oa!S(/%^a1?K.S<7jA D! )"#uM*t6 2cQ"nS`{#V0!pFX PꑬK87! jKC𨡆pBħgcb! &! ;_Y wҏqaƵӉMG3-3MsE5F o5JfsQW(xP5} Ŕ6=unv昇mB9mWM1ō) ht[}y"āC ˔)HaZņ))Gҥ٬LQ0NzyA\:#+2fD.ٌC ¼+F+°G\cZ˕ʟr.W3^]K*S1:7'D@;8\A&ӿ-DpecSQسg 'iC%4 Y D WI?kA?$ƺ/SLc0hj7)3>q4ė̈SW[I{:+|j!bBs!gFŎ${L >UiΦ71[P9aaC S%㛚G;B B>t'F0ՊBcÚtN$\",0d aC](9"[> (,v}%W ^XYar4~vڢPQK 㨼=硷w!QAqŵPAږ6;,?7C!:[ CP[.VBc~70cu6h5BfB(jH\)) @p,XaM2e # cffٞ/Qs=K %0…0Y2d̘a1dyHusLgA/@X`| ^jpL:G xΜǩ~;lhRO{Ѯ8mļ 0 0{(fS(.X04ё)o Cpol<Ս\;eh<_eMcrF07okVa] =,igUL2C|rnB-.S~Cu#ERdژg6"3b>&] nzsS =^t:=drh7D8Hz@f68!!s篆4-u's!ca^=`^?)" 8ZyXƻF6!J R..\/'fX@0`beɨ͛6|VXJܘ6I%eP\ +2w2>q170m~VmMIV&) |ﮝ7,zC|qLvhÜy~-5d@5q/ *GF -ֵT]hWUsSܑIN Mźїۚ˪ v51Q>w Vn״[h餝lڠHA Gƺ_"D%P8m$sPw&!_S G[?' P)N f +ZfCH@;k#X4'-Xm?LĢ yA cbΫK?7. _U6LE_s~{_TB45I˪/%BX"l$madP`nsZj^iD4 ,nkݏZ8#a ( 3^t (o_k䔃D 1c% &PH~=xx dtsij&ۑe\X-؍23|vvf? s1~fda]nX1^2!CkP~U%|Đ#m$=Y2̌O!:>]}&G !(^pPl $5/ p{ \ p^uד)E˘ ׯ"f _a΀FG ]BCְ(稨 ~qQ?`D?1a('!h@oQ9.FM !OQ$~uR-( KѝQ#F;tt`pa[ӯ#ʛ֧rd <ʱf9b\jq'ٱ&xBoEEHGI@ס=[ˠ$0d~|)̪[tlŅ=j <^F0BI9pƶd?a$}1\'O!t9'wN)`Xb5{VQ hFglD<' -"bQx*bri)ß7`MaGatG@ÁIzt|)n{ɾeŽhvF~Kـؘ&ba'7 c㊢ O.¿5}NXe0z[!4sq9bǛ)XIު|KbeXS'8Uܲ(5,3׎ Ow >_{F>sZvñ 'Ȫ()@8ƢEcza8=ֳ<|`V\2>t;TG[#?Μiy),WtzbFw61MQʘMqh~6$*-a{1k4t͇q0Yp994JXr">LO G& & ʼg :{dfHc*)sX&"F12F-ebZΉ摘dP.,Cu,b6yj6 ᭺f8"g=C; zb{"8éE-n6Qkfxp\^ Aiz a_Z$Lno ȩφNi5_B6FE1pmk}p=!ބܙy~K|xiGni(/Sя@YwH q2 ,R K`85G+0hBԮ(01k)dZޚEomL3 $lX&+u%k)HxCD@hcЊOs-p[6eM C ,C R6 EY`z+VЋiL`pu vA\ _N~ ]WTs7Fw;ӯ(bܝF228Nv{oE? `ȉ.qL$!Iُ2}N(A+jHVaFۈ0~A kg,Ox 蟎ާQ4،qB0?[M I`d@}Xlh%"E"r%nΚEr^,x8ˌsτQx@4h*wi` Ӡ@b h1 4=OANHtr(`o8·W^=Ť>yݛpP4ǷO:U/]Q{zh>Ch;,~bOz-}q)*%Z\O}cc 9I1ď|gHȰ6;)PHm mRRRSS l}">ЮB*TR0,"&UC0S ޙqs]vx;+V:'>?:rs t^Y[mmmm;mx۶6omǍ񷍼moxommmmmmmmm6m6momxmn}_/}W'}}m*#7sS߷'}۟zf|+_k_{{ٗ__O)>6YxKk8J9kT>B*ؾb5\A)K_9G1{UeבC5kR8Z9dhEFl@~ͿSّ[>Eof}("/mvXi*DFZFpN 7$GyX󲆩zr{'E;Kw#I$ 1k*&-Uu M   вKIR6Ҹr*{փ*`BhD\7'*$}>xX l_$,TmbB=`Gj "rU`]=_ߟ Akc)>tXDϚby]#/ٷ]℁g[MA}OQCkBV6FDb>|qKV'E4:j* q{( qz|b \2Ǒ K9ImS}992jSVL(6}+Ex;tͣ* JJJQ0=S銊&*qMMJ-PQIrϢCO} ifY2R7}h)A`k 0g:!儩pgX/>a=u#Y^ć`wLP"kYAK$ s7h k7..tC aO#^F"-!έZ=:}jB8e-OVͿћ9/f;.Lt%JHIbfM~^/cN2 pF\nC PK!(QkMG|++0Q 5URZix8P0ݟc8X{H`/3ؼrY3u=@b =?QQv]ݱ +F#1Eh1)64Zb"@ )ac̸R"u=4LA4r6-=rG']Y&Y#Pg!No? Dv8| &u4?n}NI{|"? @>1pSL}i=~݉_'70>1%/Fmqdѝd\Gd*c-/JatiC9#A"7/\z['Ս'R اqP:j .SRqŞZHQ" :Dn TIQm \\ ! E8w\6xEJCimZ/4,6{6$'EVc Ӿቂ @h(*EK!Z}5s{1bƀ\1d3(69wfُ'Lw*RVEuhMg9rJOǃ4!X$ z͟vCiWtU\o;;4T&FRF&u&\*I%3 . 8,Q_/zc ‚a^Xqey}Ov\{:;xWcx>>O2M>PL9u\?z,ߪ(̤E1a_c&j鍄e]S'1W$\3I҅~ KxKR ̶≯lqhT7,H\󻽾q)zGW?qZ\LSTBK8UU*2t S # HWqX,nnt~i|9>OYmKjK!u(J @Qg`pR4s z 9l79Kk9֧)}ªwƻڝR ( j U*Rae.!H6Y,Gæ)ݖR𜱅9B8@T49gS) [1\9Ԍ%9k;M+,*bnLbJ`PUUU)1dL G>{bHR<ȶ'(NU(}nD8H>;F |dБNef_7b p"3 53[;\@&4V m#0|%XUCT7Y:^ʶUñTdP*}ʂЭkܙ!r+nlx?ʭ)dx5vD9>[ K]lpewXqlA\F>k+dϗrOkX\F3qXm VKN߫˘ð(zĢ;^YVU^P8ASCnÌ\\S,2# i&BT77l>sY0{~=f͛`gX4VZyjիU!VL Ҩ+X>s4SSr8 3P5:`" Y)ݺt篟gQ?zr07!K/>9ø"brbjreu$O>aԙjI#xl2,֜/IB 9ċ1@q\YՁCA)c.gr !y: C}_h8ʥr#OhcX"}gӥ߀k V n^șZv$-Tbߒm97DAK l(+@1F9dAvm/ ;¹ `?q`‡856d8r֟wV_k<(O 5(_K:i{8y;URk탲kk+6{fpdn9NƋuvf?3e)^Uʯ{HHAC5QԛGYU{P )3;rw{t?Ua1 Rt`P~vL9s20\)v~)-qnd +F1],_lv'țCb ^x5vnDpV.'J!{"lX !J2CTqD>.>y}:̠"ATr ]8op0*&UW+ͪD Ŷ(23HY#s*4_d6&0rm%i|UɾSoghˋ/g1.ɤq'M_kJCۃ)Į! wIER96b 5^&V;Gbc-g]FD,'6En[6>S8"`d/̽VMxk ~i릲nΣiH|U57Kn|91}0 1[b[ET#蘪alP^GL' LV(432^_[86Iՠp+nT"]c _K~VT N6Ws8O lU=݄|aQP~~Y$u΢KY4`\7γ:rX6.k?cZz>gltvT!Pdڱȿ(F;*:.-jm3Xwu\ѳrTi:9 ~i ƿIkw)8m[m5zb2]Exj!T7*H42 ^4VPHh՛BU";/.)c4^e9c&5jzY-iBeF`e^#A8իJ+K2.T hTH \˛@'9eYisV 2o_\fH%p3Q4s~o?{#QUY UV:aQwCb.-pݳ So2tC_p l'iA?5uuyZEȗYT̫b4ۦL'E!L8U睍xgMZ}Q 'ԞM&_u嶓 a$7ì>\&nJkR@ p=PŘX3kI'+ƟN /pIzǼ`fKwkB0N!yM:~S\M:s.>TJPN*dȨX0mX|\/ 0aQr^ kCuc5xCEa͊ͷGaxHӋ`{5X:ä`bNl/z_ F$@X`UکG R) 2BKs 0tI85 w;3<L$c"$JSV/5vrz"kkka`t $LL'4J&'O!) :?< Y98.sJȕlt65Njor&Iw`sf/ ;ނ'jqN Bs_)%,x_eI O؞{1(2~F<#`;C$ƙ=Gy#)3@ OOa4ؽ%JxmNme J'2t ^p2(9H _Xǀ+pRq`q;Xl]@$Q0D|a/J0] _M1Y:x";EMjs#z諙`(\*?MYMq&)0⋞@2PUg"+4l@b#)"# D 4o&ld!P͙U3XAs=!2JZT!BqCჃ8c+7 qL@^*TZ. .bE)z$$E m$Q,I$_sDrխaԬI>?sÖB(u$xcC\N&r4B7D79CNمS#mǦIDOWK^XޚПqaG F솚JEm" V,_DN-*`I!B$QI5o6i^{4DFWd ; "^vWMrm7.q0?x-dT L*{H#y?lI].Ʒ5drX]{ߤH] *!NO*Kǎ7A`<O4}hn6mzJX,0vr)c`D*]ZXs8⊾Tp91Y"{GQ@'U5@Fc-Уl}0b' c >I iS݌7 ,R$:KFfWlnef/!P!L]ҋ!Hк/p>8& 3rT.Gۃ@D|g7vQmƖc:.jCǫd'`(QpV"`b2ʌ0b+da2dɓ*b+d55HkZc4"Ԩ*~Rև"|Ȓ*w#/%'NskhP8t1ɣ4(6ޢn?>{ǏGㅈ(2Hevmh8`h"Phc6^JwQ` @cS)aV+Uf39˗:}~'u5jԻqCx(F?q]Ӛ4aK>z{9, lYxug,eA4 LN<2EH?UA׽/(mzG|Ou{bے~G/PE)N7e$%9KNTSyOKuJ)/&8@hhiZC +F9QGh6!I( RB01mTs`m̝:7GtB'̀vUp(h7 ȅOJp<ҁxB145vx p GO H[c J3:qhq7!W˱؞W)3H- a TlyҽIvޔml )ڳN+  ,mND${Jªr#l7ic(SF_,AL+˥z:<}d~jEiFGD륤.!V񀼝I\mI 8pnfa4DLrl`ۨ.W Wkb)ūaBcxq`X{n!N?4 $/?/׼^j!`Hb6(r)h  PW^ `ڱЮIŨ=_Z[f#boM,{$!pD( e%A>DkmFu}e}WuԸ< L-lH5Qg'Y6)jL0ыN\]_T0RuJO(eNa ^]1wC[ͩ4q!e᧛—Mj=7XM ӵ~HWiQjk2ܟO*Kž,Fkؼ;.e[k5tm6018KJJshTЕukqB9#5yB;ؿq6F2+xpd1.PU3 FB$fiX5jrpGQL݈YB#Ql~$(`N n p6ʮ\\tW@V?S^'z^~BZTe`z^EjcR M8UM[P[u!m|!6K{Е1Euۂ0"G}Op1g1捁*`f*K㶬dk@A7\^۽q#Xd' 6Te$xȂ5{^CrFfBݰE]mK (]*a^י WʹfFgԖ,o,+(+R\#v_ JP<ޒi{Ojxk; {zu?7i@^د~l60 Χjف X.T|f34FVZk"dZ;[Q\Y,/"{58Tj7cSn3 J]<"֭%=qI=vpM?oƏ]Wys@7(KPujVrAVme/K"yUy.h;=sO:7;܀c YoNПi-~?/G<}by·{X1: d&&+~k"D4lLGAv`*qQ&77lTZ'xȘ`to<)DŽle6T5nxÈ<'յqsxi:ꐵ $,JbpQLŽń\ȭf0Zd9Ƞ6q$#vACH& 6E‚ྌ뒵2\كn`C"HBV>hRچȏ*9N 3o&ʽ(y>J)fq˪>0@̛sg5 aiy3o1xjE)'~h_hlOi2MU`ݗwGfq E5BT5Kmߝ##ǍN}v?|"b*{@wC*.&r?`co|.Iz/qo74hO;]Vp1W:;  vyD .'CQ˓WO8K=$*wGxL T, 'GWz.򼇋!q;ZzQAiqVSkU*JR*  <ANB*~"q4I PT59]4s1K[Ӟh8^z$w*fo?LԵUْ.@=U]H~SAd;e~:R+贰b+/5~$à<)/"#.G6y Æ_X[(2R{BaYl`~NޣV`PjL;Z<\wZc8Aˎ>M|oVGG8EKd1d$N=Lwm=9e]:q58PxV6N6G!"2!s Jcf|р/Jš6T K:$#ZXJ&*ޗjz6;vhyfK d_RE [Tt^SCf:Ax}l؆,]ndܯeyP6򌁇y]{e˩dmBî" UAn:6t>l$8* qOPЉ S)CFjkGܻ6K @\j<`$(QV !b"8( N#,bXpA!/?ٚ|?;|pL H={+į;(`m4 Emᮧ.6 |T޽'[>c_ٞԉnH(|2Uu=]6]mXϧsd޻ / @9óALq7In~v +'9C7\,m>O?c~'}"~^:ɭ@ W Ab Cf@dɒ7vDo Ёs'oNAW6>s9f:Gو) kZ;Z]@Ba /:ќ"%l]`x jqǢx.)k~0.|?b]"%C?jXl)([%fj#)SP*=PwlӶ1fY[1?wH5wO2AA _){Lݹ#T1>Z /E|m "l7}됴PL70SJ;TrPHfBKɷp&^7-*J{:n9(¸bKbL=A$*ה}F:D?V۱ {gl|oF /V N0DX``VXLASXjd :fVl?Q&"cxukb}]OޅUHH_ŇpN0V݈_"j2t-8u(9KʀoqQZʂ AQ{=RPS kLL\]8%4b FGQ:/jD/K vБ*n8zoW * %& Cy&J]hn!wLGiF>׽[Gŝ\n Kwga5.0ǜyuF!Hh}< d\7!ﯺ\Wuz3z/;WsqG;RDȪZAb$zF#xh4u.w@诟"lH\r/Lɋd Ҵmw0Hf60t1:lYpb\}}kzbx. $s"A#LX.69<+MISb}~ş!%YWUaEN_XpH9- r%? /1[pSk&SRQ8!a̼e)؛u͠䷧4?|bx.f)аXa ܢ B`QIձ rFtCiGkK PT)d`NP+ԫ*\?k .)s"qcړ)tFSno}'  6 xV<%j|C.'G`<-?n+d4hP4B{{"Kގ 8=i~0 !52G,BEvWoc%N <=qPYvP~FH#Qw&xmYnRtJ7ֻo[ە]PH@ o \;k,qDKGlmJFr9 '_R(%>NQGg2@7Xi0(+P ^*vJG|v f#q 0 J@3;ۿ'c;z!c8ΒA&'O';b*p լFEPE[ 1"Z`ɟ3d]47'%G1y/]:N~5?vvTD󲉅r6I7}:zMgL$za\&&%?Ze[L,Jb]i0)&NM0n&+fp)eƻMkNKReܦ.-< V4?LTRg$S8&.-0Iv)0NivY;Lc9L\Z`֧SjtŦJA>g&~M>"f\]g)զ650$0NS/:NfM34L/3m˒L#;L$ZiS<3ɧMfS[p9L̢`J%Ri)i1ɇLkiM iMn0S ZL|zggSǻMn3L$d$WV ֫IMUJgSR b\RQ3ɆL{Ʀ/$}JiLԒj/ 8P&.-2 Lk&fe5Ʀ651L:kNJDĸMDb\%m4NhdP4i},ЩTZY5 )ĦhhS11 G91w"֙m|/Pe3 XWjr‘?A2;3ӅPR8d_2249$rڪ 2D M jD|MdlsJn%(Ц^fuWQ"t#7,i+a9+ܹ{KJ9D^&B{2#tYpQvo?XMm}{)I?Czl3;Y.#ݑ\e%mmo^ niLE˙]ُ(U@D({ӡp>H𸎄|BÙFXk{T ɰJ*R Ѕ-9>tBhqx=.i>] NIZT* Eq0bbb`2ӀE \"3EӴImDu- ItOpg"GĈ&^"><+үvmvf>(p^:g+RabU4?C$1WQ ^D`DV| a/{iAeiprEEO{M2T7\Xk|{>:vmq/׼YL$BKg(Ѭ('։ahu7_#y8NǷQf% 3Cjr=hRڅEIU jHQ, 5UIHPaBV+WW5H$@䏻5=J^msJQܒ&rl>$I95BxDcS\ib@,5nbiSYֺѤ!܇qĶUqaO թa߁\P97ԬV9bx17ɾLfoʟEn \GwpM,w"r?;ӓ˝lc*#Co}s=nذMeWtܣGP̩w,oJHJr00^Ղ:9A9/%o*zׇ:2[X:R;k<cmȿb c'& /<,xu?v"W(+GSVVk^VD+ko!M מfNbƃpbJ\MBy7k_X`0 _`ZJ5ŷw~{hkhx ˳, S\qj^ڡN<_21νrtAˏZpppޡ^w, o(;o];==Т1Yqr\ FdMy/EU$ڳlCz=Lw͢1uã8_ٴ+a/]lnkۈ(Q]8iaƉT.=VZ$8Xc:P4grQ@C}VH7="0J7n;Ho6)EX0*TV`R*ʑpp>5O}!i22P_#w#cGx?-4hѤEqv<MemfmJ> ňvLm9z͏ye&^-L@Y"jܚғgH;0cFzV`Ыw*HV^PKd|J:8jI1tmVtv5=Xtk N9i3u7o/,u?-7Ytpbm_w^͐s+,)p Nv7%/¯h#j`IIt_TNE_ڊ.Tl<:JuE^Wq/;r>2NZןf?l 2T-qUASk=cn҂1+wZĴC|"Wg岲?]}=Gٽx=.2YgUa;?i7ccvk0Jr^ ʛݦ~,xo|cV @P"ǨSyԍ]W}a3qJp'"[>AyeP yD# iE3 M+ɩV >'~=U`_$pХApz!Lӝ;q 0 qp`LE˿>ZZK-l`7Nn ?Cg˽J;4^:s-z ivN#{\,BgYKvaGu!p:] ts_w$'NPR7R9+6j] '@}c|dVdESdSgǸҿb-{fIh&9V9ys&|8 ZWr솎ax;CHQ|ɗ(M4d^tֻ16DߍI,9~2{cfUuq8ӑG:}M1v`&9ؙ"I۩iXSG\M,xZz1%k|5(s.OUqbX+uѓy!9?!yu\"]>~:\qO~!WIi/ͻA&ACZ.ժ컻ӱ>7aAf61*ϺxC Pv ںuXS:>#U׵BuԋQ×>5DZnD:7߸+n]-l3470:Bsu>Y /5c2>(3ã"qưH.Ytm.1[rdNq}NcџCܷԗKާ W8%x*[3cwn:^FB8r?J#9l~ůhN4vajܽi&HoimؓHֹf..\?78=SZMoCj~ HUC,Z=-E%v- ו<(^#tiGGum؜8%mqo(kŞq|eUDpxDb"JC` 0+݆/{dxHvzrohwq1fLDGGv&c]V6c4BF #,ojR d;=Aꊺj}k bczS"ȁٷT)v  -W"柾9& dq9·y.G'cyy=0y[q0gn7Ø:<C/_F{ۧ[LUWA^lz\y6!xh׸g9Z3 1ʫGеV(e͜J!|*+J0QVMلhKsWxqw 0:˒{],Gh\IWĝޛ(]i/|,V$L{"^vE@ǣV9.+Mdۭq9jqN{]wUщ7º[@Ro]oVy̿j-2{h準5z1M??uZ[^ ? dWBۏmY0č[)!'+O8a&`ߔr rAi<6 1NVpb J49sEaiZ/?nbYĿYKjo5FZ^RinBq*"s: 2kc`NkxGQٿ<]r<$aqh9%uG%jǫD tcW^;'P_śԱ؏_Wx;E]1 >j<gSbY{l@twL<1_Q4-wF=x f ;Ň;z E;N \In~,cs;2x>j72Wc;Ƕ/T:`]UKq;-z>cr3kBsYg أ:`_d#+V)O…b;|xݵͳYCqW{{^Czv뿘rp|p>kPgEG-=m8\èv.vΜsImIϰc|7YFQ1[)%kIGQVإE*o.=QӚa\yϘÏ^k"`R0Y_Wq8C7~4.&kI@) v>A/W4BS1,sZ )f]zsni`UT+Ӿ㦚%9gPGۄz"xr2c8i|oM#ז"/,QY&Hoӹxн&Nx0>{22s\4yO8%1GmWm g/t4"&^U׵U,vmQ#}7{>$IW0 Pmy fcz@a ?SC^&wp #4j,偹J4@ ⅁:mNIʊYm IZ*vCȌb6E>;8su#o]CGS)x=bfNheXǜ')sT;(wPU9Ǭ& vz/9tĮwqt1׫3v =uˆySɞ>2#캒Uz("1Z+]A q'SIpH7u$fG-K̞$^"#ZAIUeJ"M.Ӝ~H}Uq#P, zD].G8<>Qn-Q@> dIrval=&CC:[PrlȠ[2y}si2BҬu[ȾUj8\wojڪ?Z~s90\|dyy!=1;pd[Jޘr":88 OcQ"8*m]~8hԻv.K(@P|er8^@pL~-\f1͟m[u@ qer\ գ)H. Z*h'-sZWfw;r뚉ҽUMq["fܴF%뤔Iĭa扒:A<=v5ĪD-p#&pq3^Ǝ 6vaP&C2Vy 1h 8EUŦrN%y$E0RQDzZTPKN@]<ʒ>"RZiӧޒj#35rq~PCDW Z} F\,[Bj(Nt\AWXbEmPq='Q?TUSTb]ЗbqfPVw/W Ұ5$%ªrQFLQMTŭ\BŹ$*_kTbf VKؗms ZU/BXFPB1Ev2*"A TFE֪k}3[Z(ha'hs$݀FNhB##!kriMHV,iZ&WP@WS,*J)J+jwh2425+OVN(옏q'8bR|OpmAh CؚeJI8!;og)3aj(g*',uV:cWe!D$Uz*UZJk -rWivRBX%kBIjpG& J? [ZyZOiD#H5U+BrBKV4hX)ap%(֌T0xwh+nKOhjq)K_pQ@yN%Ꙩq <&"=$,7)&$D%*Jj)DHVIH9t9I =XOXEZ"䛘 57Q.,pS-EMûu_ +a +}xZDnB< hٚIR(&R&aH5nV =sTLDI<ثR lzF22)YUuZ-*ǰ3JLugcekqm+qo*rFtTpu¹94RSTb^?*nʥ6,z nE79x T 33&UATQt*QTEUDҋ*QҪ(:J*]:UiM"EQWJ2`fdV o#C`wVq BRFJi A{c4Қ-?i#&d`#PEy OB?gG-#4!tg TA@o3bx/p}tێ iҪC)z˓ 9Aдڿo#0Df*80Θa}Iا _jP`U38[R>ެXG747V4 B8?W JU#`ĵc]#W پ5k~Ɯgr[i0w(/B(9pɂ\f ͳ6W!ay{w]?>>LRTcLN.r2ҍpmՌ zF/$bb2~;>P="4X/) L1tcmA9ታ&]xuRLAjNZ7LEIdjuv%a7~ 'GoXPV0oKQ ~>1{փ'މz{RJ㺻>/%)JmW(83:UT ݵ9MPuDf]4{b O5}@{`vZb&P!)AZ:)pj"#rdm,le#oVMڬ ݫ>tT5Z&:=QE*٩\R+~kLkO\G.]T<7q?xFتv,G?lhl'ߎM~OoB~r2+H`Y ici]X6GE*X^_@yP3"Nɸ$nXkʾ+I?;F-3eDk_=o&7o2:a!/R!՗Al|bIXk)=2fwhr|Q 䪗w?w7jXVXWC.gxCֿ6HbFZkAWǂ:YnC 9Ps*:/d<_1dUY t} ^W-PzZV5ے@sneF螹76D\qW,<~a /]Гe޻1_/^\|D0ɡF3g(.@vZanoYw%hbZ$N}?7 W x=}9lgULmAX@$D zѕ1R U-],#Sh,vߖ_ BIa%1Mnpre9~N$.:S{BI͌V~fL^C/qbݗ[,$ Dy2/\Bxڙ|*s2a)PM`8z-i S|JYӒ502#h9wXHWC0ZYE\9= v ~BA/^bjpoOs_"[bc%b馣2Ezh5+Ʈ+ʢ*k˙r\^Ma?O*ux}bc,u ):*rZBKST4n3)871^QP>T>ja#xwu%~_:Uy4[L,el.z?^-Dz.//Yc߸-dc;=$QXphD_ٛ,`77AGRLlXAȞfYA|V&-RiŞuҋT`o3 T{uɸ0bU'#ul >V>{NN?Vfb\Y_4 =`_>]>[˙b·\$Gh=iX\lu>nJvߤٞz7SjE c pd1cB'kX`j Y_Byb6o=~1J׺rzj3 (+.4*bjsTD,F,m1LBkfQ9r@;t!S-*fv{K_a?Ң xn`kc'AZuGNH5jK~Gab)zN.xޜIWt;~'F fW&#wYWA]U%Fu UT0$)t|ut_H:`+{,7HNLA-бbf~hr%5r1t!\K-T>UF!5Yd[a4ȣ̚pD ALS"s29ֽU=HسBr-H}h_@Թ@mT_}G&^PqO+Gq/8C9+9=],wAsNs?s [ƻ!QSd$!?EXDTtĉQ>$`;ªr' &qeu!2B,W^]W$ 1#3,X}XX]\H9ɭ5m`,&]n)Y~h*/#:_6֕y g[H֧r-%bcwUQχaǮwE U4EIF\>ƫնoOGuqgG2)'EE-( TjEbұPZ-$ ?PS$8DS)A,~{X#ݜU=|Izǐ'`Zyk|k7nFy\ ɴb"Cӹ,I~XC##-C@<L*e:u~e8HB$dʨ܋P4Dy*y22^h􎚡7ܺSn wJW"y~kܲ4 pt@̨9]4ٙSEI:ˮ{/N=R}cDxSmh鏩 AQ5Ր9DRY`PlYރ.pye>kG|=uq,$+?[C;Ě6q ~!!cւjY 5 V3f͛B$+VfrP)Un^8 +@K: F»Z"p`քtW' @U5\]O|B-qؽߞBjǡf_#Gq%MՐ"HzZE$eM oE?/S=>@Q{w=5Y<]`mZYnu'FF˶mk|~Amphg:'z~W\(a<V 0` ]rx熰q>Ea_ۃoΒ&8SE )j}SL)S!RC0UCpJ-Q3Y@#$OEId*d! ]}%VQ FcJu,^x,^qHo8\X|:盫y ^9axo{"8qeW:FGюV3N;zg"D#a!sq@c:)*q(hCW h̷ߢ[P,:{@ \JM/K[B$Xy_N,o$[oT*Jq|Nrt<1V6Vc0,&)Jnb $JGfDV|#ܦvF:Ix#WRfV)e<9XTL !TTATRJoP-!`u#HF?4Jsr0&2wg8A[{6z^wE\Mtmف躾YuP{' N #Ւ]&[lѥ>Tot9f@2_XG Kѹ=[[brt*=LFS=b4nrCf7*STS:E(iZK 敷 p+A;bh$!f[2onp[ [UQqTvDƪoE

o''*^&aP[v@s5U)A_n/ c'B{I,O(++lDŽURϬ*E1l+)X]r$ߖD>rݍtʬ,o袵9QmИN']]r0]'[YaJݫ (W?'$lVb}5K)Y5X+ zh5C2+V&IXVK(++J Ȫ&>3^[ A]K:㴷R8en MBR*Pn򷉼hJ:}jYHpV߻[erXWȥ%܌C^x:?ìZ1@v@rJLJp9*~ȪV2K]E1MF=T Y TtQULHXLSvDEUY:R9H?mH/H7s4O?56CnU,Bm#Ӎzr5h%izFo=3$ÐNy쳺;gF-Sm -.@2nK>K]K5W*T MgBYK@Z=ryR^@* 9fk=Ҳ~z5He&RuEdL&rId)쪪3 &:pn~<˥F!!X'T}>K"ĥa4:ި'g05\nU6 lk+cEjg Iפ-&GK=D05$,7C`B</|SVr4 ܎h(?^OHbIq apIl&d(,>}4t~_ Go:Ka/HҨ',Ҫ07=<5@݊⁑v]ޯraG@Fh1K ^29;]Ui8aoCT ْyYʍ87*]1`h:iQi#.;x 4-R]ǵo!.2CELq& l"{m P3w#.K*۬c) Q4+P0d~DدY߃*5 \u. ,Xbs1_jc|ؚgR0p 5QF=)[Jbh'* J~R0Wʌ#n㽷Ѵ|L {O(;4S%vE=q]+q˻Ͳ^]x燯/:u8 )sp !$He_^bq,,=SLb`R.^fMLZ 6uf9yfp%ov3 jJ C85^y# ;0wy {Io3nhnOIiv1#)p 'i 1prU0S5xdC6x~%w]3TD^[&u_u;grkɜ5K]xAIH Yp{T'ar7F7T =Q&s2qc?NOungIXYꕒy["\A*sk2FA`%e0XwݟL'?}sS5WschrrܡwGS**ĭxj?a歲FY^IJ5vVe,qg>.91&GV`KT!zYOO:yW#BE-?!RB06^VŰ=RNUB (NB7rЎ;9L0HL%*1g /#+v;?tUp.gˍ|p`#~Y*/{#q1ckx39;醴<9Zc)Nl/˾\C!}uVGqvw_ |?lձza ՌZ; }-R-1jU-uBkV%A})9Y% PV}Voyb^Jq|A9{~q bf ]\6?sB!(R)`昧QT`ST''Gʤp?&L[- @7!t>_֦co6 lܑbH!h:;!HCB_Db7"{9}6Rp?a#Imv#- &@91f\7%C8XZxQmZe=etNt3X2OY`F*!)_!WaT/0>t^塦dHΔ\]߲7V=3w 1f{gap[ow T)a8 <knU7y%<b"%f:&=qz * bg^ySGih`J 4U <^10R X0X03 ##F P4ކ1 4҅EDWnz[/VmL 9CO=VVB˼ ]0zQ WQuyIv1ڗ%*>|Mx c=/\fRnPG2Qj_Jsnx$v3!@ Vb6'ZRphZcA\QZS35|=zXw2 e!ޥTKKug}eQ_ṪA1TUE9V>Ol2_Wm>;}<1a?΋ë!N8!*I@=Pm9Yb<apDTU&PC~;$AiV ȗp>~$|'5wϝ [zN mINa/hk  ?f2Ͻlq.>D;3ɑ )SYAv0Lǭ?<8ybJ: Q,Z4{D/ Sj@d` v:Ϲ!S]b~Ҭ,r-׳lOJd{UHƵ^yVbE>5QT&?N9WHE'G+*ntk` Sّ1zYPOϤWÔ "^pƔDixazGg2+GAy0g~b ǵO~ǡKFk|<`aoKo- QO~/רXTWR [D#.>ۀ߳=}乧s-!ove޾ 5Vf^ )\f\$,`}plj7g4LN-S1aQ$"CrMoY tA )*a ؑpAԄF\ 1|b҂Z=~O#h}˧p*Ls,K0d$) p)pALhq88= Ӌ`` i N&~rAAq!7:XzPgwnF<^SqlqAxH0\*+? W;.P( WckҪh(0//s6?g]jN/y[gG[}W iLa?T=Usޑ${1G 3n .>hS`.^jxŒIT\GeU lC󸷆wTf1^өkĠ?>wtRS˜TSEEAR6 t TM"+ABŠTFbj~34o;Vj3ɕ V̺KˇS0( U'N̥el]*u`s=`cJuE*=[dq D!lv-@HmDA9@ZZ7AXlp$>in[j BZ!cC o) Ww_ߞĔFrTnػa fzy@g.D; Kb⪉mlѳT,5V?>-: S`p?jN6'_R*p "'h j\ĻMtQ* ޸H,ƽ"q2JT^BscqͿ^[cõIz?&Dۣ&U͙Z4+EY2UueiYVCartEl)[\nv8}yp{I^Q8#Eptac[^ ۰|aS^[p^mϩ"C7J#/H)':#!%$]<DO-i״fKa\}YO$1E/$)7QC"\d{A-mJ +!4a Gpu2/%KYY{Wm8xO^݊+4|$&^PЧ@9/ sW诊|b AQz_ftߝJta9o˼Mkj2$28)Vz,b@>^`Pkm:N4{…|Do{K\j2Z@aOM9v܏}κܟxPPR#=ȺU #Q%!/--BÁN|1ޕ9vsFwxGne}[Q. >gy})N]hTPE?yӍ_NwmzCƈ0`莜/e]d Hdlcҧ?V6\g8lLf@}A|Ne~4'켳|V[*AUZl#XJmw-&eeu<b#PXh%\1@ TDd>dQsBS fP"⍶PN+Ƈap~<[C]B*90bw]Kf.k[LA;LWaѰ,*1u*؉p\)ExUؖyb!ad6'2`F vᇝߞqa-F[NBr\uGy"Fk]FV~ .[( \DEGGPukw6"U( a0̼1( 7}bz)«BP m>OFuy%6}q t\[W\u#9R)6l6};96_Z>j3 [aqFi7C_*9!!` ez7jfEE[STюͫKPSDɓpda2k|a #*+hH\H2[/oEAK \e\a`.y:qZ8+DO+-o(;y0ɱT-i2gx)B^,\-^.\s{paaRZ5+v9s8Ãmt텚`; ꑖb-Tw1 i>Dixǵ)HLDM˼t?\;U!C0&f:jԋO'b KqUboxq)F_tφrK5VXłV(,"]{BK0}ke}d!H(Юm%4Rbc7x E1MI, o ^a1x*O<~2>Txk3o7θN [w1X)(VF ['~ՋEp)!!:):-L}H)kF8 [6FEQB=20䇫-Va6[Qҳ-xM5`2rVjwC6ԤQ)DCT%1 RIRT8ȓSDE{hr4=4|O2C"6xru̘"9::v"Gf4Cjld~|^+Ve]9x)võ]K@D_pZBh}gn9(PbY@*|;GRP-W߻95ٍgN8O@y u]Mlc_7NMp:l֚W iyo Tt7nˤ}$ŃwzawӅ-n?*xQv#mHsq8  Mֽ7zX,oGWrr^u8S*$GQC R FR  H*u ؏b10FQCpǩ͏`X?] $uѹ(>6\C}:_27/;S.{䫨ՖgYgWN8>m~ ] ċ1-D5xHRÆ{eTƩ-c@UV[.84 Piɢ7#? 먄k9>H9e:, D] V65שGB}[mZ$n@(,IaLqW{(k3"TCE kѴB@bZ^|g-9\Y̯rY/ qzS飯Ő$˘0VVEK zbud 1Z1_XV YG3JժXҬ"R>p}"a-v(Q9Ȋy,9 ^Wm%릀$X:R +8+9ƒ:Qluu[p"tֆ#:>M''3K\<]Z)RwÏc[Ppjȭ BU>PTz'e;8<oH|/1c#!̞~L V2:k!v<lN@B038^%У_em~ 7.hg&׈~T{'^}C.u`{ÄG eAQT,kAީtE<n<1:bA!wmOdmȸȎcQœ.\`0 L LX͡kVNmmwâUepޅ<$hb*檴um:ɤjL%lci; bήE Ez1pqhJKeCDDqO@E2+աi+݉$R$+32-Ű ʢqAUy@$8jpR.T#e&< E.Tޚg XU뷮>|my XV|</dAn,7"`,`D'0NX;.2aI6 ~ PX7GcA/DxV$y9 5P}ePL%1I6`U.&L\)(TcX ELk! `1bAbxXg8hOb:2mCr=l/dօGeZFYa/q;ܮݿf̊*c9gg9r;elcOMfk a/c) =ƒ0;vt̄Ѡ 5Cץ#|~YeݷBpffiUKs%08>Y$B\_Q;P^pu*P'b=0| H(!;] ,v&4,'l썗>ug]|Qs=z./%TDhWp'g*9 Q;,x+f LkM NL&059O,Nԕ5Bq(*Td=08,Qd XT NYMv*Q;_> cȏFޗj)djwgA&5 ssCrAh2!-/B0V `w1 3 pz9]UYb8d4/ƻY*ۓl:fOKAv xCiTz/u:^9?kS(n OwkW?yPM2JXW&sh5_)aq^VQúL|Y6Ps[ |C>Z ;7'y4l yg5cpMٓ_>xxU1#nA۩4Aجgaz &ì,'BիU{RⰔ:k58Z4&8ݜύӱg}v<|xDa7) h/~c䝽*,Lb) 4Eh#Zoջ?Z|GK0'c Ncޡ.BzYZ.YZg` ƸYE4*=BL^+uh1\ѥz43e)gV\]$jl٬6>e~dn<+֭;kQ3kHD!5Y0fr{/+zk؏8ypkv.[} Z֫IY'<&3.j ?ޗc0 !DA.՛. y_Ku: e#?"wUO.])diжCGVu/X̰&LcR|i9VE ]]q`MEuup]"WWW 2:v~m"jH/xw Td(6FoMUP`0 ?.V]||u)˝N3G̵(i꠩@a$L `٪ u#ޤRWŦ&t$v.<)*q O MxO9hiV  50ϰ;|] \띁_axܵOv3 K2;=`ջ BOYm}T6C4#KD7_{NvLO nHmr$X,!w0a-zw/;9;vLعH`Kp e=qc?NJ6 r !r0z20Z?i"}GՕF؆tŜ0zaf\ fd$Px,+9?y\MI~MdnQxn,'C_ș8c\ȿ7C!oN*93uV㋫Ѹ* vc,Q[*KC<>N|nYxSi!4v8V^*<'q>wÿ8ePXw?AjMH:b#)H(ȡ}W+p=q1ƒ 0g >u)֔Z0nǻYut:梋PXCx]ػ5k5qxBZ?}#WU*6ݸ)tBxB<"a GPPKNU -dUZ/\I`0^pTY9ջL"CpaM"1DCgO|cZq8砠bpv$AB]ʤaÅ?TU|~=Ӽjso܊"&|xYn_1/xY6w{gۻ]JIy _A3bdBLmBT?GN6ۯQ&b)3>Wό/ʔ'H.{$-2ʹY`-du''}I( fwEm`_4cDa;aCIذ+2uC_]!@#[;)#Qhv3%D0nnދNg]iXu^]kbM;&(@&VAT( U,  (TNQ} E}T rD`ԛi5b7$q<$^%#gb[P^xlJK8;,V(fk? -|iF! g=!<%}v:="GސN,["3Q::a0pD|3DCqzʘtRYG>Ripm-ToPn묂,Uen*??Ur kX̃lhh7:a](qe.,_bx8JEH2cI8/z4gc K մ_{!uMңP(BdR!%\0 i~SRWx|gG,$4JfIWww7zÑBЯ?Ŧ9 h('IBR%PǺo&f}0>@'TFv0 hx@-|54WpaMH.~f#ʡyRV؃%y8_at2A4a󣯘̾9'6e&&1nY!f 2LEB.A312T Y2dɓ&CAPR: ƃѣZ?Z J^=ɢ8pG6hy6qD:QFmditUn35>-BOmd8ﮁ0C`%w8 ΐƷ=&ұÓ3Gv򉪦b%1e0!3qҴ*P*t& {ốTS=Q2?3Xbٟԥ|c\g`^QSږݖ2f9>?yRwsoLjhJnX`~?Sq&F-v'}>Y`U!5k1*%D-hg<*fb-FV%m*QqP ΒCM 5R7t@4ھup?"1)ɿ tV훂ldC[z=ҭ Кѐ"D :({vyO=;y.Sw й 7׽sL*ЏOmԦbʳ 6Yph)^Pʅ`} a?ށD =ɘMr[Jo Xk1T}0߯j>Hܮm!]m?uC}ߖO$yv* 2@>̈ 5̆^1cbЂfan5'/zXzæWp*zBZ y^c!fUQ&5SPg ~O{Oq;GY7W|Sc6!7+~~Z*PpB^ وDAxRj1_ X:qvb -M9tE!ElArOĨki@@XzH.q]nuL74ll@fwgc0S0̉ A}a07B:8Wӆ.@:W.Pƈ4G05?9Gzb8A$bͤ8FT~'?; o6}+$H;BFeZbnpؑ!(&iL )ڐNG6kiF N*dP*%r !\>e$ Ә`d`4jUغ2)k0 !7#'N)AH8H/LI=\ރҒI=5yxES[}g @| Ɣb]1KJaaV\`"X)T^ VX !ɓ(LU8Xp1ͮ|d7.qF .α2,ᏱǭʁM4mZ Z8Ppdlt.u}[n*ыU_`"1۳ *0u Yw+ `NqN-4.Z*E^̏Ǭw2aNW<>ż[E>.R^8B2j(h|j>]m Fx͢6fM2ݷjwa B]z:}  jqi] gOFStISE9Iѓ4x4 Az*&tkٳ&g"N RmXP'GU#4gwiK1L ( #b:v@e"fM؊vTNyƯdq8;Hls=ڠM|BO Gk63)ɴ l$)ݲP(%=J w$$$@- kYX.W@ C]gЮ d}PLѩ`6~'" ,ޏLj0:^ ߐv!ڊR/P=G<+EJZm6n0%I%JS6"Tʩ⪫#UUL&MPQuK Рl*-a]0R7G(xGXu@[¯A&&xu~=%}[;:[7q*5ϯF0zBHʿ_RZPYd!nCӬ}ssUd(y^9HGIn?Ž:JY]$Jl-`}p] 79ӋXvz'Aw[6cڎ2ۥܞ `k!(⻞BUYQY,T|}_TCoC?睃U P\g P*X(ݧE*O?*zEK<CWD( DН:q" V)V*TVj% KBXmҜ0$~Ig+PXBF\ ڲ†ג M"7ܵ~Jyq,A՗XRlA+uo4] XHy>!a r?Eؑi|Kކyʝj{׺褈fiWL.8:Mҝۆ.'$2ۿۭg/=ea`ˉYQ&`",)BV#"n:K Co <*Nyr|W_]ID>5$Ru[j8'mh=.{JJ >rMcGJXG)KiݧTTr ,0X+`\C-\0*(F,B{e~pkAKKhqx I㓶Fj-C $p0kugENbGf-[ c-aOkg.d^!x=aQjRi2:oȀ[-* hBcÕZ:dy:R$n'7 u"”ggbRWl q&J4%`XXY .hĸozx':0A?n](Oyt@*nH?0f{î r #( =2{άohXX"b=,F!7adK0ƇBTR_O3;g5[FoQ v̈Ȋ6wWچ}99Vjo˛|}bY!-y^GuŰ4NG?ܪ~kdE߂?gЀgŏ lƨ5wSV싸lk& e=e8+M-ZV55Cw?Y-Se5%a?{*`ih=? "#iAr}u1r}7qS&|3OD qB9В,/ oNB8ʤyV =J #̜syw57 bij}0TX"mL#V}%V\-fw>jv pk ؂ 4Fkm^㤕h5ǂh }sHeD@=(" кh%ؒ iWP'X>_cw:OY?֪a4f?+ʡ9.mNX)0Jj m8/tp`~`bOg yRZ `^k "k {(S!e*Ґ`%crD`']a`;!z8]ŝ}G~WkF[ЩR!E_6+_ YB`+y0~_k\%8߲4vH\Z_H4in&3_Ϻ(FvdENvx??a1*jިӈw:A@U н{ q8>+sV,<\ˠ>2N>M,׋nK қ(ZLq5z۩ *'l5iu)z)lV4t}8 K4%xӊdQo31C5S 7JAVO jjZC_j#1_vk|XHӨ1s6ۋMPVjΐ.]ԭi3V< EޒOG1`~ (%Ѩ _C#| !F$6js(9;+.(@*!M8PqPNR‰"=)rY^"2d"F ]cpq!p8 7ݺ9aD)($],6H62QLH϶UyvEy$Ϗh66Ņ_ П[Q'TbSfT^yK~.r8rM\z^7Dzu~n,כݨr->7&;}&uzd8"7<6e]yNU U,X(5ਐ(uadh,k 1M{v(;!Õ6(Jd=G˗{Ef5"bۜy^(ݒ AYٹBx( R( V >&ՙmS'nˑXŦ_4St $ʄ̘*+ Ilqճ a~|!H o+{S<㑪7rs{8g]/DrN[Z'Dh`9z9 4ø7^YR,f?ܢTCdq5H@jj#Sk\z@fFN0UGTFd4xGsgjbz tAQ0 5'n^ԆPOW֍a~?,^0MXUmPlۦ́WcǓ2P28sF@dvq$E6Њ]_ e`ER + $ 2d╂XciqXT'CA:C IJ);Ys.'22Y)Pi(Vh(eڜu|vyb}[l~쨟kmL~}gf0[(uޘTPX7vvLXT8fHrG'7 YYE>༤.c:~.HEFw!ٳ/4DmHd תN/j-6caRF-+XxX*.Rd+K6 ;|l7Qۅ"AXjUinme 9ɾpzrO?՞']>HRTĝ ш訯f1bszC&bhjk>{j!uѾ#=7W6BC,;#6\?60Ek.vc5C}U5;/8[RiaN'$l,;`>a_4YX n s,X;ڂ()4Trk@cҎͰ=\NVPKc _H4o}p.'URO`0s)0,9ҙA_\QgVt]ÎcU01Q0K4EHe62XxP:L6d> L_~@=$.xC>hHJ=/)HQ)GJKKKJR¤)rΒRYFmH /P!9!YI͑P%AqTyLmLܬ~/ByE,~O;%"`( * 'b!Oq5+SEJܾ=2m/fid0FÁ̚RsGh^`rW= շ ^(ޯ}_[7BMUk^&jaOc+T!H c"L8V=rbŏ*dl`L:0d 3 8?R36["ܻB]Eyd+ ;2ײ{'j]$__wX7埈h< (oNT~<í< (vP96>6,G#+6X^ps?a3֕$vKʪT8L@`SB)Um,(pQlX~6^\uW平# V+t9NگPS go݇ȸ895zTչyP8e8OzѤ-$q~_*օԩF1.;iʊL j( ψ='&oz{DcznwX?ª#_)?0jc{b HCY*G^B4BӺ• @ZdxR?vmR],sV%*O ǯz_iz*]/$DD"j!:&- Ԋ -Zys\cq\tq_(yŃ|=9T8H!f(54ik-’2dg-aZ4b4Tծ2c[l ص+l-KRN})s~kڐ`bhFy'23;x2.)O>ʰJmμg3Կb/Þ`Oݚ[rxfJ&-Exa0cP5'%l:g胃VjPi(6G5+ɱl}W?.iƂ\ ǐָ7h> Ydi hjUޓ 3hi'uz:lcK=vԵ%t|ߙL _^>LucI$U/9IjOl@"5 Qw'Jf9m^ӕ̶ĵNBĺd ڣ8[W+hR;Ni-ӟߊJUl1(2\.A  L2de:hl<9*4z/ an z:88 C3zj`VX Yvٽ|  /wY:Dz. [,OC xis]p{LQAW Q ($I4fZԦnd" Fm `߿bgX(5۶[u^ ; LmPK5ŧ$?*p쥖mS ;o~=8+ֹtLb%g>B0@V䦔O74H軀ӓ x;A+:ۃݓ~ ʧZNۗl vߚxOn/H7U״9>m_`ie=͡ Rl4dzB6 L݂~ _+3,gMtrZϥepQ<еY{zءp׿IcmzJ%"6^Ӣtm = JN >Tűy}`\PxS2}݄<6"Y nֱb"OpG9uu\OspbZC:65b\f6%'mʘ ;Mqfps~PG}Yu`yӦ:F՛Hpi }ǡT?mٽeWO{tJ`&Ē<܇3.â 8HTXYZzgQ(!htE~٭iuj.L!7N+UArFlyHGم:$ *'Dž"b$2aMtoPgu~ONѝҐ݂h1K$(4h;"Xo7T\ Y\9[J)?ϻ 8qJ7:xxweuf7 /~;1>_"=$^ddvޞ9d o UWc$ U<?@2+'mQi1ՊpYfmQ}kV'HhDB. Z"U_@LR7z{mIbz. ≶"$(mR\x`.\1 F$-LRfCN S4j I Fyz\k1d  N]c67vf]J2PhfLcU*.{TFytpğ:iqcgVap ;~(j./*[j1El#@'jyطs8(F:{s=I+[< S|`r4gapӔ"-i^-5 ~o5"vA8f0sЏ*$DY/U0. zs1 <@0,BkKOOXG{ùaٜ>FT~m6WkJK}ӵbU|ﺌT,C\Ґ|h2i2DX(!xpПò*cA$sR1eXMDLlY? ]*gAPp(R(΀υ[f֪`Ν˴̾uMe+##J#Q"gE㜲3ȅZM nxp2DϡSDibRۡuUHOh.24)9u3ʉ%DERURQT( J*RRJE Jd>a@`$D@QBJ@h@(=| QJ{tK"'-H'I$DU=85ZITHhJ"GX{hwkF({E堥a:[hH[ I"TI"@0l|zK}@ ّ)ikVٳ_l%(HZD[.vc`ol*`ၑE/ -` pؑ낍#jU݀0 a$Ra)jE4 , 5{pQv{){wnJB>oZ+RٌO  fz ݹܭRg0 ၁ Ow C@h4(E@ %I{=<mكl +tXݻ6<'At:P^RT5fdR*wnb{+ÈaC (}r/l*FV :zAX'=Ӱd^:pq(Oo@H Rnz`/bۡI>wY)[{@{@oBZO*{cz]QlCvl6=C׶T8;u@).z-}vP^pt{D^t=tΤ9X](;օui7nֽQlP:5=vzP( :mtځr:,@UuhkAB) @h/`z kAJ ER4 `L&&M0L2a20 `#&L4`&iLhL a0``(5=4D&dhjiF$4)i2 MMF @Ѧ2bA6*yA6 4i54"M LLz 20 &L&jxz M6ƀL = &FLhBi04dah0hddѓ4A hd LCFLL &ѐ4ME<L yo[;O3erO>뮘TJJ$VSYImeB RzvړB;/o\tڮE}aFu (03Ac;ʹ(5*?p0֖]Ͽ[zxLj"wy 8GrZeݿ$S4k8[{9ܥr?x1Gɝd6CHrXg 9d^ZTg7Fh[4<վߜTpޘD@dqqr<$Y=ĮX:U͵uq%T1'L,e_0|SrB4} 5&3{#Jϸ6lFVy9=Z)87Gs]ypN{}.A]bXvOF9rrkD3P,2!K)*$.qs%ᘃgy&nFTI7#Ecvu@z&$p*O=8V765{kvwzٸxjOMI(ؕƶu8#Ȩ$eJ=Gq*9@v /}λeɮG@zy5з)6I5?C:f ya7*7i*c\e\44G0;Ǡ 6n13I3! iť=28VZC}AngnYj \+RYw0'YW~qOi55&ioMwTx;TvâT?g;ǜr i ʩ ]#jˉ!NNHLmTr!O"KIY"yv^ j{:é-Ӵ:`k3>A9Oi}/E{y̻j)i~ yl~͉j\Ԥi_} и|4M $EH-5%39cC^n&lkNbޞ|Tv ܲ N.#L3*&40ñU2ɐ'sY;.Į jg[;]2g7F譛2| \tI8p5ƜC)O-LiY7+ÛṔxHmD3\tOˆ9Zcw9♟+',Ěm".PXre|ͱ&h9gX{ ~8*m5팁AGև$-qʹ>?-W/UOR4d\JaңRXF3q\n[Jkjt~r310QƳɐzΰ/P*"Վι=rMp=aiƔ# Ծ*{sc 2yHCHQQ8TH3VA3:1'D^у.}=Pؕ7;߫hpAЪ8vmrv$ˑJ:sɏ4$)1F7,Ҧ+I_ӷ|{/,[>;GqdzxrMWP=sU=VI;E0vph|շ0kqZ_ͺ~#h v@.ͱZ.}O++BY͉ʬ_+d}.Ա6f^sHx װ_ƄPnV $z%C[6qO\(Td%P,mN_nSXUL+lNc8?v 0ТɓNdQ(LIhvOk|ĉTń͟ɠTG,|͞Jb &੎%,+3lt6+XVf+l,RB]6W~_4by~*˼c` ڣzk6 ISİ3,̺C5NѳN0ya#zM6TShA<X͝Rz !`" $G}|krOQp+s3l f{ Pn \n5'(-牳޵Y%LAb ΛzzJ9\99F}cNƒ砶k:O]n ?Sܫ[12v揁U):6,MM;v9(ć2̶R^$^'"x$K^0)Bh<6_O3qxV̒8]yc*\ )TCcKl8&XJ :CM&lm!0@Vc׵* c ۝g3>齾ǘ~j7g*и=?}DĽG(rݩ/9>Mbp};qo6$i^K8mɯi7in:>zoNA+!/Øm>7iPޘaYu-9pOw~|c >.u~2gu=>7؟mGugogؙmP).,N\w@X{C>ȑ"CAB+ϒ1%mwCF!}>L K>tə)/^5_>3Ui"˿R՟=AI/]}!pIyt_\85{߿k; =/Lk:;{rnǭk6޵뚶ۼ6m~k^>_ xgpvqΒ_9!5gZ׃?zǚsG_sҞmwlv-e`ZZ..!+9닗?ZvMk^Zעֵul8oZq #:+Ϣ?4j$O_еG">}p$`w._]'$gD:A}F#6ky`o5WPK~ΕW_~WsIx~gכv]%VյnT.Eoʻ ٷ 5Ϟa¸WPtx;rgprdNO_ֵkZ=wvCֵmZGKKƻ<˿k˼#rc/p~fg ȯ=`=vbvA>at'3=%R{ ϟ1[M{ݺru:KmzN/h95Zubz?w㏴1j`eO=⋹?%Ǿ+_@ݻmeMۻN0 zUOw>a Ͽ_`DGդonYzZo.-4vmU ]>Ï(cI?wr|:Kw!.x A}RK,xF̻j%/'F>[mu/{2?kn_cu$mzeM\-}~{f^9؟9]\Zəc? ~!O뗤.K6]R_w/JIkk;v[tyח~w5'owkWxNJup^Zyuv^ܛvvޭПĎCi#"EןT|<Զ߯mI|鋿/\8ܟ]!cQbZ8s'pAյ}ִשc9[~nn2Gz<#q..=ܣv}_^u}k__$]JO=A#]|sZ~c'?Rj3OnoZ7n ܥ?_毬߼ֽ?-ۏӭi/7)wmwy}K?g.m?j}y'v}Ym^=~˘?|)M$ ]]YbN~m]a]uNm_{]]iesϒ>h%ҟr~ '.5g#ׯ3$K/n}=&g^yr֏ Zvrpp~^ߡ%˽;RH^ zIO}w'|7X zfݸ{nm_  ֏ ߿h:k8owwppv<|4MV/X\8Ԃ#FW^ W>pA>U{a~Nӥ;C9ɹ7c뉕ܩ><޿ǘuVܳ^1\\zrmk<ۏ¾BnܐNn"zO=). cU_!sO?7;7KkZ:ͶvW;+׿p<iyw$0!Bxu{>+7K=C.#do4\+9۲=;>xwrQ_Nt[Krk;7H<ƺm[-kGֵܵǶkZuk__Iyu z?}&$$Iǿ0`/R%/OMM\ @wO1%DG^Ϙ\x_Ц)u叿?&{1w"}zς]q%wֵ5ZvkG׫qqo\wz/rS9ɜ[ִs]kArxwz|w{ZիZhX{Cq /B|u -իtim9kY;f$ҟ>q\g_3AvKܯd$v /&~3Wn]!w'Є;#O=wmkZ:ώݻkZ'_Oo2ܛkKvu7~|ѝѵ[ly-kBI%݁wLm|ֵ5~}u7:n5ۛmkޥ+Wt7]{njpp՞\S=;;[?5\m|w*nܗmZ={vvV51)ɝ5NA?i$߼J %ԗ_]:O֜=Q|乏=z$%/XAr~^a~Uֵk> ּ>~]%ן?&zł.2FϏ??}GOy<ØsX]>绞8˹?Iuk3?&IG`]?nHH8~>w?b>2E!엷> 7"wE˯4|!~}kI/ZMzG]wwCp_oѮ`8~i_m6u9mǽs7KxO?n#/Ht&Dvk=cvtZۻ;:W1D"sm|٥5d1qDs4o,.)pb] %DFT)a(%q!IhnuIK{Qu]PX?E,80(Bxuc4lKEz{h[=yH,}r'j}PM5XZ/иaL}`.4o*BhV~FO0D5#HE˫؅?^.FlI\=+TPN;Mk[fu-,۲l50܄jǼpi$T2wٷ;bˊgC<'TGkwT=ngR0έ:> I7qa6{*FS>n%fi0bʥw3qH12a3Q)/}\:KSxǛcx~ JɌִ-;WC WqKc $yqBVXNas;7>=O.uA{SYAWk1Xqa~[k;!uKs~Yvag&Za?1֊;}@m9K$ܕgzr>le#=?N$|~.Ճ0dQMm X{' `Y[ͧzN{aNLvfk/lr|'j P~u& _~{`?Ojhg+Dz'7:sdXenvydAuL`迗DG,q axlSYǯs吝Q2bdbqx٫pƛUnko"ѣ["&lpOQŃxϋeSR qxHaS _?4T3ɘqDz}Kd>34 ʞObR0 S 낿d֖~acq}nz˚K.u3 P=P5LQ0ZWE`iک3R  >۹ԫ-Z4ru.*@}E)6QzW.4p *G84œDLB=hCKl!gN0Hׇ&p}fJ6W.v3cOzo{pW)R󲍶u!B^j$~FO.esYIHBr1m1!92 pCJ#.> S[^=`CiDdtMOB_TKVޒy2l&& ;;Yy2YZ7hZ 8RQ( ѥ)I֕&džcDԜ_f2I.p()2ߕe/At :zͅ$^٫KWrjcdW$P|㺪^LȠ9髡Hfm@2v9`#n+(~rewz9|̎l9bB_˿7qm*"yos05/VtCIDMo jG&>1$[N:@)V})HЅJIF- iRH4Pp;M[4w(-Uy@'5W!@U%8T"q=Ow:$Ǘ/({?9S[74o7{!wf2Z@Ğ4ՍQGliF-pT^ cՆڦnFf܁͢I@BPkJN`ӵk%F*d. /썢Wb^ 4 -[2ֳBzI~[G=xDAz_91֐PUACMQtW5^3?Wwȥo'ҿ"d_W9I1Qbqv>/]ØZC?v•ʼoU.c?@opḧ́&yyrglVJˏhoѪ-[,}@;btىb$8Ͽx3=^W/XHbe'oV' M(N*|  *ĵ4$#L*G˜e]ɈY0~, HدcLo{Y ` 3A2"J΅%]?8$//1gR8X堚 h$\f51Q}զLa>ۅԫ ͶRkp{Qp@q <[2NkEd¬v(u/`}h^ߢBuoq6zw;-CxGDǷLX$ޚ^?W}XJW3v]  t@I4 ?V!mEg靚0tՀͪ0g(79Օp@ #hRK ^^Ok7ɪ&`\sE諮 1#6ӂiefmD|ui#q\^ZܫZ;&g`&C1(>;ʱ'pv@ʽ^ĭ: XJ "# HER6̏Ŝw&Țac|9]je ~ \&*Vg*l\6˵tL>̅eC8~ G3[ Ĕsm5 l\BsQxcu1@Q n. C_v'gu?1l>mI1;Fz/6g!*=UvT=7lp% ޓw.` Yо a{GzcjTMEŖ`Ntuߌ;tGz~6!u-ҵn:ՌAnY۷/KvOwPj+ȊY8/ZG;ЂyVSva{ʴ 6< Hw ,)NԂlpHfSwap:Zs zLx){e<1Wh~s)ɐk97Q\ȘsxB`b>r9h=kSxFT𷙽~Nkm  h= 5bDJWJxƪDIK(?(bV[p-EBi sJbnw^}]UY6,LL"k( 57 *~%;ICAϜd: iUEHTY$}%`B/NXhojү/SԐ#<0[ eT"yX|2QpU&Fđg8,섄Zxeᨎycv1$Oe 8HPidGU@|#&3,h:Gnz0~`~'ein@El.L5ϡIh?g!QR xCyxn9^:FS,,Z&2|uQp]U<԰'!qR'z:^_AL̔D,V V.d_ˁD3|뺙afC3v-`q9gRk<09"l s].'7"aFBﭰ .0~z 7&U[.\2f if(pw6"[UMgHb >9[JHŲqr@> N6iY>EPWEp,s_d׋ N&0pvna_FlZ3r]1s \vüo\k__F7/sUtxռ]uv&XNn`*ƒ?WI0;FXv`>pDn|AXHjks=v9ԐX\{ռ(`Elk8 ݶh[4mC6= igK_܊XA4("p$0֒Y| 65{vZ_8O Qjo3H7R:+{,ubk[,ɒL;nj`cvܸ `=d Uә^'~9O ۑX[2ԋ4n7Q)+=/ӏK:u $,ԯ9кpS\ŏ@lݢwTSCP" V pxΙ%OlN>uԙi*oʞц RMon N)M-iZ>yZ1N?6oUC5߷-!i> N3ͬ:cZv;lx ] Lwߓ$ߨ]1i'.D8 :w}O?,$/Qi™6=0d[J9cOQSh05?oZU)c[U4/ARu1.h${{v}./Lk6Am77`C_]al7#Ie.95Cn* Dg_:אe|0oqp5mjPBvu?>o=1gDUXa/e4YH%~Z郣RM| koj&[k,ywdk#H"DXb=oc.!˩9vICZ9tA"a{$e>N3)s~ˆ#Ԏ\׽Ťsޑɉ">- 7o'̊ E[)6AW^nF8OlϘ}4uĦ{|>  TY~??ξD+ЛtktX*>2WWT ڥ=_l.:W`A7`b#5A|v=x:ybd!!~Ja A|dO~C*ua;KGeΑ/W_8WATW|{#-fЯЍGDP;Jf;2:c({Yq&.g3(_m1,Tbb,G|Bڵ}?ijޯ Qm&Ț]}?% `K[ߤ|[p:\sk+2jk Y෺QU4kpv;b9X%ʝTsGNvPNNARQ}؟^dooH>B:г2h%}6D|+|a@|A,S%ߏBLA挸wd'hWGm ]D5rwŸn.`N] +'XRKn-h>`)B n@fѪtD$S) L|3Lv1݆ mrPZN ⑹?awI%949,ߥ@71S5J>'Iε k͡!YXL۔]$/ж_Oҫ੷RkNAv2WV:I5،{c @Ro"7|ABXҾK@YZTrO 3gGO:1v|{9RWuR(k>OQ} 2\:Bh22LੇS}V'%q)-rD!" ]^5BIZClŕQX3oW*Rvq!, |%W۹;?脷>k7o~w=Gݳ=O>kE@$I$! @ I I@ @IH $$BI@ $ $@ I$$I@@  $@ $ $$ @ H HH HH H  H H $ H@$$@ $ @ I$@@$@ @     I@ $mY6Ô0p5DwWEl}ߚ=o߱{\݅/J &q.p|W3bfq枮I W@ZhͰC Bz: AڢY95t8*|&-ޣsL_1q͌ʎ\T[h6bA4˽n1` PyWƥPA ADlAC@J]WӐ&X\  {η<ݲDT}wmz _uo|iW[_ypovX~ _E2Q\R(bONHK4<}C!!ۨj\xŨu1=yn^; 4HWᾪ}Nڅ| bC!}t$ki2$Vó7Z+Zz" 0p+Ճ ֢S%{d%(ՋXz6/x0VOvjSc{ho&K o-EJGp͏G|,i1T[sRoSlھ_/ s#kՎѡ-ʗqQUY.d |xax|Ya+rϒϛ}<BB@4v"wU0!Zq,.5ܠnp W EP;tnYD0*eWR詰 362Cew.M,]UIq&*l]Ϗ?0}\/Հ9=qT6E'BMxL:꼜;&X/iz}fBEbVa(eBCvMbh1L\\%zDUj7ӯ|@ph п ;kH倳}`Є 7}&x?  2]Y6;KR8I̶KOUfFZ Z\2yjGS|OP褶ߘc%S(Ԯ)wr"y_h%ި GO͐z>>{ K쎩zQ!vhNNEĒO'$!ҡ䡳Pp %U Ǣ_,LZ? "x=m2Ip)?P@mG%t }5,SYZz` R)T{fgvQ SpWMRAe#%!/Œ7}^|6L)3NLEHJ~ñhx3•'UDy:2qLeXdAB 5ܐj>ku8\η +tOF?Oٔ?QE&& (-k[o>~x}DhfpQ{ަ>uVoWwGhӿ׎|5߰aK8ˁjo] OtZL8+pqoKa0i gW9^/HBK`~/|39XI C6Ձ_SdyľgRe32'Uϧ7/mҞ:HS^o@;H7Cuq#c;+4aKX7v,Ll?/lw;E"șȵawd=y+vm9/MsA5bJkڳ@fυ=> OJ`V^{K[ ."@z_Vh4eέb?8 Zc![;'Xpn`i;ٻz+/T/ W'mȺ]%.-ټՋBE#Z]?ԽdXd-M@uGO2zi 6Hs&?HWn1ΠjTWc Ưh=)$՛"y/%5X= *qUuG% ֨5kׁ0< r}b3/KO56=XP%$*cl]9tU!te]C?ҽ!.u}%GFyS$*_JQ<#GZ~3LT7 A!yJtԾ$+P)J:}%;0 N2{6xE^mB"eބo`QoXzj1~1HsPp7X \}b_=9zBO?˰AVT"VVU:35]+x41 >C{Z[{K}U3vk>s>D)>^%y.^l+ oMfC~Ov$~ʜQ=67Wf|Z=yɵR`*[7)˫e>*C" !q~4dĚACKz,g ~Oy;Uxg8v-}?&ohӯk$"#ڰ|[zJxEx&Nb߁[4鷢>㲉JDZR于y=v3 )ǃsݮf$Q!;-N0ϴ=R<RUO<52멉rյ7fsm®fq%-0Ć8pP1Tv]ʻDGO@(DiQ[QZP(i(ED{$E*@|6.qD`=%?<šy:vgH3$lS|Y 1]0"dL9"j(0a 0K51䵆{R ZAJ6c,|8$5D(8THE)i)e\e g2*:OXōD(0*fL]ɹvV3idLQu&f0fptŊ(8@B5wy!cAwr3*MѶǂ֭3j`X HB-#S Sdu0f\.%R{&@%`"@q!ɖ5taU%cr=\; Sap,PqatYUb3• x.VB, VeFD`@a P堌HR{Br([ˇ8Xt#3S@ApCPoNlfZAYo*x2EUr/P8b. 3S ĊN-7!#"@@Bӵ+ws WLt=`iQQ@h5"X"%]޿~n[~-?ٻkWVo'}K{Tbp?ULiL CL 0a fpCZIW0T[R0Z:Ҧ2.Nhf h$U-Ba:`3i rYZP[Hya@54889c =ċx;H_'o#dM[闅.=ws+Zx՟mVQ|y: AᲹW[y2̐UJ]gz\~l(RA;O t p/&jTLH8CȶsIGfu언-tDWuK)bMRqPR/| n*ccȼlʵ0~`~*R^[@E' wjqo]+#'e^ N{g@ڳ 1}j>!)h)=H]anBA 2~]P0+'Tg}bgv昉ɱ]\Cig슌A͚SmAo_ 4P{ۢe65?sKBT)ۗO[ZSv@qv Nƭ&J7A]t֛02/2U3OOO?ߛp񽢶@ 'Ր뛘{v+"7o(W*=">脜uymk>EJ3:̰v} #X([cdWT<*?WwF}H~NCʷMb|1V50qBg ^IO8 O,37}>3%aH/*p>q'6qv5Ǣ]ցz M`'2a̳GʳƧkXpkmibSUozTx;-hƚ&ipwluA^V J&NǟO[Vc&b55;5c] 5k'v#,r g-?nɝzF7.lB\+t#9` R D3%gGOEcص'WoH4!x=+7 #6{,#w|PA7ew&)эl(܍"^;⏊Aj_Q1/ v~6{;_tJŰq lj ºyU\ry7r^Q:eɫ-y $BQ휷O&=tZ3nLM-,*KYƋ<kJ8?.xwޯ*˜K^DfZG5Mja!Jυ3; > 7q[<=qwfyCaAkFil+`&DKe넕0y;xϯ~I{j,ב+Ai/>>u>>ֻ~'X5 QqB;)ڕAfQVW^~ N.&2@3MxN CܴQR*jJDt1x5RzVfCWw+k#dϸ6 f ip"Dl 5SÓSo*kjaE# 2h'#ici{鶵<{3?94ڃ=U Ei'Gh_3'8R\nuʼjKIFǁ4[o!XB<0_ zUܳۤH諜f9{AY3MCf&[?Εߑ"vD=o V3Wߑ#w[_WK &Z.k ܧ$-v^&q7cfc0x[d4~-^[mݒ[>Ӽ)GZzߞ?vE5,z4i̠R١;/|j1'Z;di߇[krd^wY8x({ڌ1e;k7)y~翾&Ei,c8fȫr5Qono_ F7c5ΘAY_iſ>aJ=ۙ,EAKߵ1Vix;̈-<=$a%` "2owjf}%yeGxlpKl3tP#{kSlP'bwKU^"NIY{3wX؉m`fTX?hE;2?9uTD:WTJPDԠ( |"*q*"EM ^ UA%@n PPԢVж7PZ"+m,,((0iF >_ﭹqEe"A(7吵FP(Db\@FD%BJ(J" ->B[LpE#a@P 5!Bd2 Atc$d% {1Bxܕ ~^?`) `(T"#ad bЂ,KBF%R(j2e,󱸂ĩr gB"%1r *Vнv!j+M*B"6YY"԰kaȴ P,j5B []4TU:\ACNM46{ )BKa q$*AF,,1Qo&L:*6`֧-qp5UT$JAAHlJ QmBU0ꀺ"*7*QMU0,?*ΎS$%IiEFmMC0i˂cXI٤Lq֦L̬!cKR6.X<(kjPwЁfeitZcZk mrLic֬Zi3=<6U̩q[L].X,1f6m1k#RBHD!TPE#j^r e0~ $xöC0d2`cTKgrQӱ+71jZ3gOuL˷nB4B06K'iQ.@\X$?!>f}-8lY1UIV͜س3͛F(Xθ:6ĒDQQ$ׂ%X/l$TN ETY"p@C)E@N (xQp ;@=ACƊcelZ *KeWd՚1jՖleKPƘF qƢY8-`k驶%0S6I0wX*9TTum6ª*As@Qm ! `l, li;1cc9vn%#oߔYUD^,DƚNƦPykLHbe֦J݄n6QRy*cv ca-*̙Yͩ~J2MM1Mr|S1g3,lՖdcVsQLd.Ymn,qq"Ȱ)QE?LQ,m4,s j1 fʌ@u7޺'Fa[ei,k1a1eb,k+81 1iًXk9fY6qYZVsb"*RkIa:"aݣBqm$-' $-ᥛPmŬAY2#b:"VbB\*ŚX[mmS$R5 [ǖ*\ RHs0#2|I6W֟${Á߶,Q2Q2eU&-0LK2Uc&# SbJ7 ,)$T! 0HuEHF!P $D$Y*T*D%\ˆψXF7se]-%Q$5*.5ZHE!8w)#DaTmaKl9he2IrJsm!sqHEa`EBZXF Y!*[:R}fܘrUөYp4Wc-1֫նg;g9l>Keg%+6mZlVY,3 Gl+fU,82S96Zw6%՜w[7m9,VVf71eͶ[ViiH]5H{x[ $YЕ/|/`.Cmj!X5%CO!lR԰f &1XEktKI/55dn`s"FujШ"H"%#21YbHC~w߇wsZ 9ȁ 栙 n3de1o&k5f.!fR7h%ȁ" H IA}m|st/}.(A%RD $]F QE$TD $@I$@_V$@I$@D $REI$@D RD $@E$ $@* H H")" H"H"Ec,YbŖX#HTV*H" Hl H"H!V+QD $REI$@@#QABQT@ T@E$TD $@JTTD $@I$@D $REI$@{6͜6GXB۬~SU!֛~%Ϩ@vq~ K`ќc8`]f/:BVR)%X̜:a()K fka90j70k0tl:79-h0@]=(C((B!Fa[~B!屺ʄ(H ]*T@Q>eiOG9?5C"VlJmd]g~=T7/V_Z3v/ױRߍdŁՄyxq=^s8mEȚi*|C:Oph}T1^j>q/DƒmυP`CLP@akHp7''F_&-":K2ްK|ۨ>-NӝóěcYraԐ/Lᔜ/31e慭RogS+6D/-֎Bmm1L9ЭeoD,nч؛1H1wmЍ/CBg7`X!/յ3Y@&>4OY8ԝ&l<:M #~c Նze``WǞpcp!:bXGb A(,'ccSu!F$ Jx09z r˖r48㏉ບa?yN,leZvQ]knJ!؂pprȠŸ́ P =66 LBN _pxG "G CvZ9˨'m9p vm|ߍl˰ ' .&uXϸkaZ`xARw &fXB\GYΎ%669qQ#!AمSkK2oX:CD;":,$d$K[Yq7wKlSҲџюW+wrv˖f&p']L;~_7{<Ҵ3ns vN$03xt @K#;7%%!\eL8[l %Εpl9S`h68QJ (I̭[:=IyB9$tNNu"w,JT,Ə~3@k[Y}`tPt8Vsus+&`v8ۥdx6Ƙ3_?{! ;ǎcdEdw֦概̧-q/[O,gr'V'r((`F%_'!b隞g?=GR6f?D!#_e |z &K.ZHS9^^}~Zqeq0u Urxq!m_bn;U_0mm> wVc)("{[tv1 wbHUEH87) ɾѦqWWP0ph~>Mo>R;AFZtDuE:[d_1Ϋ+þPFE*G Osa:"ŗd}MH 1&4XXklUU5;TBHiG*j)ш(K\BS2Zuv!]W Gb:*PfUS^R|]gzM_iy@"@냺^ X~-÷o4Q !!򣿺R E+jT/lXM%wbU>5~r‹5M-8y-uu,. 5B0yGwAJH0fJ=O\Vh {"jH0Y8htCj~;{P!k?o./[ ihҖfWVp@x֭"0Rm1JCHɕD y,\F5 RCw:^ RckㆎH|0Fʢ0K/^7}{G%x7?=($wC%,soTc1!ZtFf8^R>~G7TelwD<:掯MJɝp5c'ZTɱvHW#"yw›(6E*T:㣤u#6b3 @{(]-zt>yĕJDK4,3óָ$̰v!*jzn9QFz>,ㆼU|#}ѻ2- +V(O(PDPufeMZ+?e^|M6ߨ2GF $Qsz/~dnߟvgVo@s<0gp75tm{YMbn"">p:J9B9m_-(a9{48;dUQQ}@$cX3Ӎ\`.Zko31"qo>yx4Z֥2bZVQqB߮?]zDr;qԡ*)R*p0X =D)j,ZK=xCΏ<=f6fffT]} `gu3ZbGTB eT @ eq:37CKugg)'st|.)UkRcK;?tFX鯾3J6}6 )u5VgDr+t﫣;S=YڗF|ӧ|gJ( jh²n*+{DkaD8vpUl\1m̖FowԾø35_{nBmdYРYk}sdl`dd տ9Da޴/a 2d˕CoA}S|AM&QS^b^-\vz R* 6VՅOه88zй*0 nH({ʖjnǓP89S q-zT_:_Dv䃸3%\K7:lo ,73Ƽ`rmVs|gGg/Wp>fre;nSɃ&AͣQ{:P @7v:Vq[:έlx6`S[QSYWLiT IɹYUCW sc4^)Gi*VVVVVVVQ ---- @ B=՘0ZUH#ەS-Z 7:{$ۺ95dv "n<{{hiu|DaY\CԢ-9TMӟףȚOW2=L,,7Ce=O n<󄹖ᣬzyT|AVXyhl:G#(}g~\ O〉Pٰ|6G@!d|`@T* 9 缍iFfW H ʑX.^dGlSlAw/3{ r3*B[gY "./wns| |#q3 ӡt S_)_Lo0N(S9*8̸8}Un&\U-<֒E?o^[ȳ^7@v5ûYBXB+y*F$jyVп+)+^^Fz<杦s tIuIv~Ѽ<No'ԳݎtMosi޳|v?<$jtĎЃbϏhz ˎ f̪ oUAA~5n[P0׾Kۍn )}p/H o7ڼ5D4دq%x?lB\LQOv`*6wg1U U ))>Ch==CzYypdpE/q/ϹX1?rD>FsfASu坋c 5įu?~B@[.a,z ~(40GC}RA@+,;ͻip2.Fיdݲٌu^l#frG,{v8̀/CmJ.x@颁={l. zH `@j6d//Qƒz_d ͈"Qp7htXP_F`K,^aŴV8ݒ1oElZ,qpDD(>Hd82hG J|Dž.J}|W|E?@̓ؿ!?*!xo_ಈ+t=|O~GxD|ۙ0 7ijSmhGMt(U⺫o#^#Lgo:X|Go ׮^ŋ{U0\ň`1jrf pṲ1_8BmٽJּDre2\Dv:W,SozG^ےteW%,D'݊|jpYbR%kƜCa  9a\X9!r[f.5fzZ)-N8lWkLI:խ&~qEU[ `>ZY>ƣkd읰ӚeUWw[sKƲݣP薐#(і존-h'nȣzځo f(;,;˱j.wWg{ {[C$8@<  &qΫqbexKkD9#~xI!_kWތzaP+AW(W~޳GA3330b?R1Sl2^OB]W7Rt<2j$Qqip"K@8eŕtu`aJFm |BxcvpS"/,kbh+)u9zB%׳g2s++@*O Uߊ?aSK =%z>Y"bf))7*| t ((Ab oz B:hsKףCn~o @87| =(r/9G:٢l_foPGlB`֬g hsڃ;"_7gT76yڱ1(k5U\~8Ǒo@^XѼvjA Ck#p\Wo/@գc-Fdpl~7vWOu0-niիVZjՕLFZ0^є@!aMZ+.7Ls#n6쿩:g*n<9<<;Ӆ΋$EH5yAG/&B6sc{3Et2E0{zkb=C# ȓ8+`2ʭWDvո+"uֶ̜ly> 9. x2.(q/1V؁?꯳8a3-%)iN?TxC"Hk..eԺ!]+zwx`(#78ۻQrtoؓEư?֣\ZQGĞus=޸N9l`uh\xEy[B# G+n]g~~cm~x^ui‡֦֡8 +ӑeM♳6X _8cȋp*~He<7Abi_ muJ&N39G9sM8z)vXp7LES o"iCX.JN&j57Rݺ,(Q]qܩkw>s գC)k;hJZ0 GG#2NIfE:!~ f^_l}=O<#~~ķ#|}н@5HEy#q_^;QK{WIFH!Opi3 F5 >x1:#N;9r˗.L'}[7?-yjةYfN̾kmLҬ$PVCIĞ.񡏄ԻɏK4o[ʗp'F{xTB7ʱF,cJ(`n6-u^ _ŷC^m%)V+j1,t#rt詸@4 "]:W`2ìzEkPd [؈W(Z*)S0iZ+wDdѷGT)88A ,VN݊Qle:䣳#Tj6] ] UWq?WC@A$lCri0}xnABEl}{i[u\`y1NaI$v|~F"?F]8Bm 9K͈|Pep݀k ѷ+yVh38\SQF4t(Q%-zEwED<6>Vվƀsdn׋}M^rGzg-ra]^1h_p IϨvOzσC|es5b ]~NRyCݾAjQdPb%.W|.ӐaZġ뎄nƤo*T⑐Lm>kDc!=Н%l>eĊjy,#YZXY(fӐrIlAĩ8|^i֙Nn4C/Ĉn; p7kƝHHܱ~of;*:Rgkj֗ 8D[([F04ԺAM=S#Tnk NJLz+}k/Af,4hѣF 4ijk6*V{6CVm5k͂r3!k}q+Bhrf5QӚdѫgx0|lh7XeyДyQ ÿ #::^c؏ybr|='X~B:C)X Ǿ_0pd˽.~~8vD1S8ܑ醩#=r,A1ϸ=MKm/Zud;j.wr][Er NK"@/+tM$Mu.5??R[</<>'6JUh'[io߄a_x:È< Tv:V:q#.pHEY 8%fqGJTXrvN;9*J[[j:dFlG9aN]3> Lǒ 2\ !vg;`7N ɇ+h')͆͛6llٳfZjJY,`̓Q6Z7;ż.J9e--'﵃s8:::;:$ Rb_.K6󭛯;*ZF|Lh3UrF&u{쾾&ؘM]C:d ~ ~] X,e8D*yDW5Fh`sN;e߱Ǐ_!}kk.rϊ[AP@`|%inԸE]G͝pB[ ;_̙EB=:Daqzq+q{,OxЗYOHy_Ug:i<\9mRY9WWG'WW_0B1$`ѧ ={`n3Z|BjiBy A䴣 &77#ʌhuBۻ+"u a7@20CnFhf0_pa!; @&֭Q7gXaRn9ˋ"wo,\l?Қ]ڗx[Šbb"-\o|9 ȆxwƉ@[9׏dbKnIpݻ:a =54T@{BVD鐕7bg $t|DX2(˳,?qͣgE5ߎe81y}yG~?z1(y ,ž׆L@Ww] v1%cGӟti}mUn.NS]F0IA Q%JN5#p1D@bHjF+"̨e6~4` [CGu)Empr} M 4T/ޮ_aqp 4QIc#mb:+wolY+ԥҔ%zD@Z$YЌK?p-{0±BR:1ޖ]0hrv{* b%FCW)o}?;s1Ty&}8>ċb)JL\ ڜ]t(f\ gT7܅L2uھAV|(< {AE7/d3gt{1aeN?{ϏeHԖVXbJSXZŞT}uzR 9Ww۳w|Gg1nvL7hʏ`xr>RAIڲF\7=sG/"QU|M&;1=8C1 O6dZc,6GvSo\J/`vqžuuLE;ndhΡ!RlBxtqh]CZV 0މ!rR]˸AJX2iۏI%dP;)D^\8sܖ? %@<ϏPt1'毿KɊk@uERqw̹,SST3,o^0UB_@(7B[̅眅^5 ņGк̌r8w+CAoN9$Ǥ A;vnd*TU(<^G[;;y!)|&-UG abK,(UC1>=$pkqj 꿨FQaC IYحzFR"Ry I*eZlh<.lsZX;!M+W\QJ󗬞1FטON?&ɘ='.R>A+1 1Z%yytr k9^ept)HeY`J VK xTY x¹M^fFU ٲFDƷw<8k(DJ!@F]BEi7tO,}S2z; ;|p棛Aqk}QN`%$/t4oE5Wz4qޥT,IX%nvvu~D1)ET+Tw_S2N̴`;;',;T24J ۡ@_ o؃Ȥ#N &Akإѣ,VjIГ; X h_EAZŔ',. eQL{B|iŭ["(~,̢5/析'0c~cWR:99$cӒb'$`77|8 /<.@~ 􌽲xEJ2Zs+җF2$?јW5mF>`v8=T1C ě;=>zѨ[sjF}EA|G"ŋ,XBJT)Vg?`x7#~\[dݫI\\ݱ_a&JPD|"YQʐH@ڊ"XuM_eA^wu5.JQjyDF8měY}9cైGMM=5_Znvk~-~@#IqZ=JAI!XCԏ[fN;h*ysnH oOΎTAE(C!ew..5伙wZŒJoq/UVnIN[e:72ٺ[:E`WYrxi4h܃K8f`p&׺$~abd` qشb ,.0~.ow|n//2['Ĵ+Βdѩ{F/戛;)sp<͔ (0'ULm?KwȎh'?^vLl%'cJ9;u9r͔{Dzqq_rO]ſ<f?fff "FN^g}}`GN9`TΘSГѮ4d<)++-Z,S1rܠG5>fF&+H;у{CFvaz]?#b-p?R~8/?5TCb/T%vs%cJq7TjK!M:o1aXih$o7~aKۮ4:ZEY:ʻGã$P¬$iQ^+S;zƝ4zB9 ʇ5]/Kױ/88-Rl/"";#QK V"Fs2W,lAsEG9^ r0& O,#%?\?MGK(PsOΌCv*Q9AE,#~4Lȸ#Tmm+mARJ*TQR,ZZܼ amK+RvŰ9_yꦻWpW+D΄G()17b= hb~@6N,x(FV _l]3U(2H)engڱ}eVQlZ/;㩏_d*Etij hȮcmdp&8A V1¯֑AW\X&H,bBI *P*P-o!oW?}GIc$oItb􋛲3yEx^qmF$#n "λT"W8t-|i_JC V]tU{ 4|q~VXŝSFÚf~GmkC%{(FHHkVިչF³pկ>]l{2u lGyh0aX!I#(}15*qR3f?C+|s5QIsC1`Aǔ2!z'D VI^Lu4F $yHČz‰ܽXPZ#u7wO?&ERZ?;xVL~XY.Z;^ cG…’KOr=WZ6׫hj qF˂i6F c5 >FԼYY?%eO@`xy/| n$5&r58v2"(avc>Qt}H6 Р+{o q']׃n&j_ٿF>ٿ l:$= Qp|aP(l$%7Plrk,XXVJJԊ+׹`7dsul'һv4^oo~Kp>[Z7lٻUDHxЄ{XG/c .h>3D~QS.b2rPFx4{ExN8^;z #f>%_ʎ$y >@җ(RjNeRrAxGx8ۻ;A%z^^j x=R9.}{^hDEw :^^/bb)\&~čvaH/'Y-tmO*n0 a?&n&bl8X.MSN_-*(JxF$4 N3!ipG18'Lk^Xmޭhu1q+5kň {\27b cfVFF#d?˯"1DS#] ":h>Kܹ@¢pi^+ĺQVz3 tGOKaOcE-{mZǛt(d:q )S{TܕWdkkPk n>w*4Y<[?֟ų1 )o7࿣j&7Vm:ld.T)W|7d-gh:d-3jշ{_=` O2Kaů#2kƚKG);rv7,n..oCTvc?G}fw f hgP ]5O'>pdNW ^ۂ׫̸;V -.WonM<:qdV6w18]XRt5^H/"y0q՟qӓYK ^IbMkrߧwO%|;&e}Xq zcu?&VK51o,޸2NMh&1|GsGG`f2QƦ}ul<v㢪K_34TތXXK2B쮄zw^CUtEׇ[Tu.:n"` f".GE;jQQ傡%_ѴTFB=,+6:98H%e }Y^$jD_=kأp#@!Y:a~AoYp$\En+v-,Z>Xu?N>???8"`plfueFl5יXܩn<^+ lGV=E(8$PLo$?6}kwu1# :39ĝWckd/MW$UźI-_#lYfnx5S^t=Sw'^ WITTL(&E 򈠉}ŇT38 HoϚbQ_<0I"-1"3[gq'ƣ2Gcoлۈ{mk+v՗ƮRx(xJp_D?lÝ$(5!p6MVRrWZ.'1;# iVl6Y癩8b Fd 4|WR-{>ӏ1WM#,R3R54²9"f1[? 1bŃ&r*\)g ^+B[48:2rprr^T^~#~A&ЇWAZG3Ca!t 8AJ-wNh*|.Yw/ du2Wx'@.¦3mro6/^25hHtNodx`؇^Xdd? M ]Suڡ\CRleCzjc۪ Y>T:Kn5\P]rItkMN쨖nai~(\E1PPn\ѸwUa4犫KSwؑ$Yyj 0ZBBJ5jiܥf}G"P8e$mi8ϹBy4$^)6Q79-$!\!=Oa_ݦxmEg2@"IxDH|#W[!i/3_h?wCo#H~iA/>tWoU,- x,RXBRP7%:bŋ#,X`rVgIuOI mRwjsyWmM~I2_ 8.'._n̗,h{ņ3ZB"6#cR<;rXeئ@B6wNR{vBu[kABBP&WP8[$-iq5$ߵói}w8 tD_RZ"B[yfY*NM3 ZZ}A,1~c#z-#4lDIT$*ڋ|sCCD:HH.I{$ FM&VL c c^ ti~t3QAxHW8m\w\Jؽ]v~pQw ʫz+=zђ2׈b"sFV4R_#\9|F9=',K0J$aa);IIL.`E0"f:Yz<^& @4E1!0|i F S&laIHLg e%0pfS ,%3H "F?y <#bF"}Zi "^XLv\6La0I #fGsxC7!ċoAx;06|goccc{fE ͎<='aoM}G)өe L&S WRAu e ,Qyw`/ŋJ`F$Č) 1E0`$˜ )%1HH0ab0 `"S(I&"$a#@!A0F %F# "TF1 F1K bL10X J%b0("# &0`C1"D)$QJIA%(*#)$baE`0L)0Ia0$"0!@!0b1$V&JLTQ` @ "K` "`II& cXB `b*@0D`ʼnaK &"( da $b R+EFF22&%XA% )`(1DQQ!C F aPI JLLKP&0$00`DD()C10”cH)#a$S *D  F!1  SBLL LJ#R&10 %%0c0JHX"D% D%%$0F0HR1"LAI EB&&$ "Ca0XL$#(bJa0L@1!0*1$đc a0Ęb aC F#LDb !E )#0bLI0 L`F,`c @BDJ$ 0&#Sb #Tb%0Db 0 Q10Jc E& 1 A&a,%%"cAڈ/\N|ag9k6-yGcQFy3X=ՒMݝfc c*/xg<5.IiģQ7be \wUќ1jd WC|9dk慬/A6&L`]%cS^N$I?ϵ/d2}ӀnB ,m_=[\RfݺKI)X` ц f@ۘņ%mU5|?_ k}ށ>\Ǭl;/,i4՘Ә`9Z2hsQD0|C^4Jfugtַxk,Ec!ҾV# BTE0dK c9 |\B o%{]޺W@g8 AB^u_ hiz6Il\3Ot|5~ZjիVZ*$c#dDDk߭̀vi3_Sk"hMķ#PQ,Zb_[1yW.ۮ"% *@6O*4[/1$3?Z(n B5 mhQC$h5s7C8~.aWloQƧ!RȽ^e/2~lզDܹx?b,7M<:ުj{%@J븎X`ԟ&e/ $k͢7_~tHEo&bF2&TYmMYY/w|:3׊'hyƑyŃc;ϰWVtXBcqLBIp@r˗.\D:@BD@@DEs^]x' Xлʔ++uvdb|9:::^o$2F3`3kz]2] &"%1$oQ[\3eCm>P/ Q]XlT󢵅YBfAX@.}mzTɡ0_'Y: m'eD&U222gp,@$ SLEpI Y~Ͱ'2/@b{a%.cyv+C;vʟ|w:0L%"ոK*p|bl6?]_TU۰,񠟥#O)A)0|`; HkAs7pb&b֌ce *L!`Ns rLwG,nMWqd\30l[ QF4T&9Fϭ N0V" ~ǰu҆La*>4iL QX p"~/,e 8^Wmt:cSuэ"6hڪ3 G rc-˃đE&51E?8ڽ_٦dĘ}^(MJSoq!H1\^Re<}o uwCGe*A~w%\hA_ tVvk9:`X,EkZ{撃JG(>cNzm/n\}nnU"vPJK]W&>z|:9 D%\{.>о]V356jKeV3ԱI zH{ݼzxpq:eYD&/\ϰB;#Ζ;Z$rFGJ\)drrE01Zȉ,0ẍFyyz?z-w.HUMJ- _l4}>$bs~(,{_888*83>WǞ^vx^v:tfMݫwS_#u_H B"5N,JNvy>q[)5 o\S88OK5fw{\f[-S9x+^!eNcQՖ{Y0O/e9Oxm[1|8gåtj &Vm* ˴lq IY!=me=ZF={}H#Gw)l`|#П\`T3l57"m9ƪSKסDJ#M^}~+B{%Vbb)zfIw.yOWW_OW98/额t ajMEkN5Rpry߻ђ1*ӾJ-zWI>tj HT2a xO,Z^ g)q %,X`,-``Z{÷Dxgߺ:|M?^>& ,G_~|N!ĩW7=b~ KT`={ݤ&xRVw5k4\]yȜ)`Ei͇7V>:mGe0, Kr*6Vܶ5!%D:s+߫g13jzUx U .( _ BUk*c-墕-f 8@WA].#Oib6rOovL6>crO]ʢU?PT @D>U *(<" ,"bigD9_5#Ow@ȸBX l9: +<̶:2ӊa>ұ'O di,g8GmF дysbsؓ;~$jaXRNC$쁦EFK$9KQk~{^b,a3!ȁv8ai%v.=Z2Nu9jW:`E]ņ,(+G@D  t'GM҂ԑբ9 qu\``FoыNd=&ڎk[,vX67Ek Dhcd'Fx+O 8VRmRS %bY,"L|6]a;+[P"Ɠ#JX{6]e eT%Odo/)@00@[X >]շfM:L^'6@5Ul#+w&׍5&tzh83xo0;Ftٖ.㣏UԆ?=}P~VtI\vCËZ[xLcmtՒ(eQ?: Ml1EG0~y@ u-.0Uۈ1y~U12V 5P֠r) t/؏)ַVU7?,S6iPn)B=9x>MoHOkjoCcdzqsT{az啒~۬?bK:06ڭoz2k?uYv=q%9x# 0&s&ufuDy3]Pt}I~>βIt%: hH;5Sda9:i]EQ{4XhC9ש>{/B(w;êz>0iAxLnOTۮF/> -JM)1%/BK´k)=(Fkog4bߤ 5;hcȿs!t|@ϩ8իVZi"G.Pe\=%;˵%p <0&5pwwtqwutuvwʈ!z-aKՁLH%sjc *5;#b&nj[.QL W'*T [%"hsQ΀b͸Fʄ$t_|+IvA".G: @ ؋Dwl>8K6'p}psr3h7<Ƈ^`$LIG ߪ"]22A|aNц^xW h6ͺ 뢾_0 |B.12kLQ˫~%ߕR~P0*)54#xF"D<]&o/!I Ց- àbo!Etڒl&V@4&cl]R丯esM!GL,ɵ?DC2gl6i]IſޘTuo`iƶqC&4AG4\h#Lh G 8SYH )")!ܡV*6UXY7~w&`:75GGZx/>jQ1u Ǒz'Ǩ^]ޞ: pCTA!#~ ;fܚTy/^;pUZLKQkb}SFBn*&ײ^;l{e&7(R=R<]8Mic0Vwoњk]沿 /fXI\/9ʞv'x}}ZaD$ho/~?X`$9gW6O}[A5xm^wmpM|މM$=wѴS>[ӝlfКA!t&SBM 47!t&EPO+y}E7ܦٺ?Iz:@SP*X#3j*.BԺ̖gşGo.彚,bq#=ZVZ¶.?u d 6E}Ĕ;6NPL'_0ãڷvm:G=Ut|ksn(,mY,u$~P+\n`e#k%b9H?3~n )8U;x|և(4YqIa7 \r5_#νݵ飍} X;v]6NchE@t ~$063:/P_ oƮY rA[ZE,nčCFSs֥xnk Nd y|ö@\km+S;n9X-ZfdW?w.Yza`hSDۤD5@z8)Y[M\UgÓjPd Ա0/.Ii 1Pe;R 1dɫF]j@GCIV\ă'/$J MH@ nf]zғd`Dֶї0("FUwQPt N N⑈L@h l)n>Z-*BÍN.QsT2>af N5i A5r-6w,؇k>׆CVb }M Cu$X-&jhYUk PzEYal.<$J臂l.NnH|4CT /W0 :b PF e"<:gq 1sEPF;Zr):tUv9X-K鬌g5Ir^F^Ͳyմ-R&yIXup' $Ai`dE%-3[<]q-q+oQ$pS4; "\4!Oh` *.hSJI 2Xpr&$U63F1N%[;Ti|9V;Mi`aG&8F.-T"P-Rf8UړyxZ1?Be=xo x{'f nI.M +fCmeġ\YAjŢXct:A:X0Qo֍v:ꋀp2ztd#i&Njvz1e`W &;R%ݱ$|BQrج{ 4u:@;Y`+n LA9 Kln`@PY.(n} Ph"<mTEH#MYzaWqy uk_?bҽ17NXXp:hH ͇\P|;+E(jH&zʩyc\s6+նF! -%qMx +-(D[ v2FSb.\ql1M6Jz嗕%5 ;bQ u09fDĢRqds L_ܛYT/3ƀZ4ЛϢu nHFg(şkT L`m@ ffFPڃHmXKpcqE^LpmGC}-i=JpΤDu`X^S+ elK0CFΆ*\iɓ&[ SObYGS)*\Q1;A;(F2`.vR<)eDi0r ͦACѵuZ"O2jN7A.b(PO [|NS @d9E;vD:R0T'[L240 b:V7?ց9f`rSʨA]9^!H.1YC}+eK9rܡy4$ .6(tsϛ8ׂ8\S-q2 ܰLPZlEhe2Ӌ,ΎKNFQPtiG}&!lY&>XpM^ "Ȣ1L֛ux$aCr! 50^jnلpɼS8FZ;oDpB+Xf$AaCLY~K J;|  v/s/jُSpۃresvp6;.Mzrk6FWY7UAlIBIxR]ՉKYQ j yVHCYSB x-Y 3+'yf:QSDix5*M+җh&Pq#bnp4*;l3 [[+9?:!C_9?k~g/vPs588T!҆LZ)(TPq5^0>qEtB:dy.d4yU"i Xh Z&;`IIA5/OuЏyWG0p~X6]\6IEt3Qzl7avW&}Kf'TQryCB|'d@K eeQOI%i(T==]4Ot3}@[688c0RA@,;P 8i$3/pE([`<3:Q4M.IL&7<a/.B!y[tHᐣ !`j}76$a4i4}U6=tEGǓn+U5Tȵpþv8q u"A! AD2z! ljȆOqopL5[[@{de1Tmưʀv_im,otPKUQ0YyȶXlTaK]֌F`]@3D58NڝՑhHc-mn,IY2,63B4@!2 x<QY+{`uQCd*Tv$2}R!9+ y) bTt3@ tPfrܛdni li/mYg m\1TCƲ8XCmXjǹВ\ }6ILqi3s$+ND,ʐB1)0 ٛaģ*0`M]ok_Hy/%D7&^bŽaj5F˨PMaFi5\ 3 M`L0L؀ƙBqLi wSd8Ca'a5 H>Zb{:iÒI-ˉ›MhtjI9BbtQR;ru1q _t /`'&}ķO\>P%7[R,csSZ bY7gG(w/CF cIES ٷ#[e%SVJJ1!;n]z>gwֻ""^l$gheYtd~ M>?/h`ӂȵ̢jY=>ήNv7,Yn ?KK{+P8Ϭ]td\Nmd&n~. >CC.:~ߟwsdy@+`}QG1 wK3`b o ΙSElSQTgtW_)N:`U<TI[ޯSВv|;t2GTm*|u76U;fQt$fL;d[ExNdràfG%\i" | j.eyF!)0L4h2?s.Ė"KE(p~z*\[S  ?A;((=dA]ۇنf=|ϊR}/>Ps;tRG]j&2bK;рie DaiH0in_S]_W}ORv9R0!3N%ʮÂE*X;.\ (GqVƗ\v41ם[FkZ<;(PNܣ&Uc#6Cff@#R>_9 aN:p_RUDJgM4[Pxd<$5żp%&XBUm 7`j 6-Y2%A@"h"qpbF7ʩ)$tΜ|q\#1#\T# 'F#/JԨ5`8 mQ sn ȷ}p_X$`J:BQRg`} :ۍAЛ,1!\Xcx6΄[p/95'D㉗U'qNn33!wQ :LnSmN$b3)j#'D g5+ Z' 7\ZhDeKD vn/Mj EeA[1c5XTct-LkQK0L!2!"΄osT@#dZ՚xЁQkW0b*$hl=2Z5/>Zس@PO" 0"M_ٽ^_ϊϱg,ϩVK^ {/d߸$H;;JЌau9`ph# B8o`p}2m1rMffѢ6M#Ȉ3O` kՅZi&w#2a!i[J{ xVvhlsg<?ŘOѷV׻G*THX:ȇ:pIb28Zg'^DP6 "5U@jSns3[t&In_];jqZǖlᣃTfKp)sڴ< dS<v ͪ[~!+`n^b^Yޥԇq'r7Y%T鱢fޟr!8a`dІvH6l܍<0mZ4Ziw oVwH9ܾ«@5SteBԲgn@4NVk/ Ǝ0 !xh7{3HkIœQAL,guZ ~ø;fFbj@6_kގ3Kk+\lu 'P"Rq\KXgȵf|:$I_9pRcbOE0¢ONq@E`xmP")Q)Mkl% HϿgd '`h:ТV 4_NX ?"7x~u7yk8!5p|>êlh.nKu 'l߅M⭴E]"QϧXwp_bs>J#X 7?fTYCTʐ0A;z .YCqō&`٘?^Dnnn\rˎG.wgtzRG'doWFY;b֥C v U)4k zcM<]P^V-.L$*P,wHL/Iٳ>K}EE5ü Djqo@ |+YmUU6CIFYNьK]UBuzv0zv wTQ2E؝>(gn|^Cdu>nlcƜ <',5@U uw/[hO$} #j*A0v13TԢ^#oԭ<&gӺh.j0T0qF2|n g%vT2'$UTjKBffe4ӱ*~;hJ'7rR_!e\CUqC"d-e8!t,9`KaG4tlDSOVntu(օ 1Nv# 6,P4 J|в^VF>)Ud,.T4&Ca)8<šj\óCD0fռVU=HS<b.&٦E= UӽAX  ShTcuU2kU,ZB87pnٻnW}`du ˚gwL}x}*T$K켵{\XNG:$:MZj:yԉʴ2"Ex%w>S4N'OBcÂWru]u9t`w Tw.M|.MHo eByTIKQ#qu3dhƫK1[_D7aEce_sX,HZ֙I4V Ԯ1 ,Ylj<Eg.HF}"(<2`),h,T PzQ=h_`DW0sS0.Hve?2$,(Ȣ;A Z #6:F#|ؑtզ nMEy;.kir^2(8Nx:2`؈#ם3q[+Y@Wǁٹ.P3҅P&TiCb١!Tj6jw4uhmYӳ؆gvl2¢N6)6KJU, : n+7vzZk=]F˦v T60 DB#LCmR`jnYOl[|.ES. od7.\y&rf&KdZk . !CvELԶDNDcr )ƋjT[*AuBpž!`EM9R23Su- tM*F 1xvu @2Π I Qs5 :01;{!s3"CD"N6)d5jᭉS CŬcr( :u$'-gXx};ߒ䃦Bf݅p`we[g:qN"U8%lF qV}le'kQz6 ŊgucOiWRs(P*mlBX&q#H\ \c˲;wGieGC8tr3BV<)~n!wH/¸-AdJ"nF] E){K.5.7j;&;S)fa0;VDx%)3mq$i)K1 ʘNc!.&*ݻf͛6lږQbDV$,X,UEjS̠rjeC r0)Bm(Fڔ{fV;Otƌ4yp5a0V(Z%SQLS`CkVc ¶{ B*+ Yt5]KtΗNz~=/C?={Eӕ5oaѡ}D@BpC RQWZyX'P/,;j;<=TTMRłJ{ZZ,RZ < rFP&/ <Ӭ!wnlLES󽏱,#=R8K"Of%XjbHЛF.o==ʲ{DN}F |yó6=&DtBOel~BM5JX1j/EH59h|x[*ĊRS,1n]Y2a "]x&E^óLȲ#FMqoKmd 8p"UݶeH)&Lnn 3'll8wUFSYym7kڋ 8`~~WyBmP"Z{wrHrړT7oiҙAu|^CPi`7X0yc z%}5$ j#bL6kNv24ɮJYMp,FԃoB^֖fċgV3lNV2qt7$'F ҔMma{tV0WQ؍%G`hel xxR Bߛ&XZS4J3lc&\mUv\KRqxc"RlKl@gI\EbQ!M#Zmc`x˹,ٻƙQ6%"!odfd';ގ _w1胸g +ِej`j'&s8gVFZ¦El!e`%Pf*N&YSX(7e&\5N{ahŕ%)*2SVD3`0ȴb؃$n\V釺g_:qñ M5t$~o@7vӢ_uR\Ez/a|5 #8ZTSHnkZ+FW0*ɛ  8dۍΓs„N&,h$P$,.#XD،!yR(fDR(^ O;S6^yxO8r/{- |?@ GxZoꊊ2?(6C}5Κ.h6Ϲ8=3 Ճ1_l$$=gv; 9ZûMFi 8UKpBu3Gjp ScKpYUUW+h!/ݘ 3{xz!bEiTn%0"ă F3 je9jDYtgk #=Wa;l]v.`o^\7]9,Bi/0҇eA[KwFxDzȭkQic~ʃ \mg5=PB;ގowqF9ǻzae g9ff*LfI0_D q26]Z8{nN 2܋s7(}NX;r\j$;wnU]g^X0`Cxų6MFf,5K! |R&-x`Vm1U:܊}"4LcOInd7Y-IqLm۴ hlHW,8gte%RCN)$tș~C7N?kMTհݕI(Ռ kژ>]֋AvVe7[fO1F,jMʤYT٢!ݙ3P C๓AH};چmaؼ`HnKPpPSfyB&U9Piluem»O cvv|xfXdW S7gR!ФN[cg) Ӽ uTМ1=hs頴Ī2)J^بl QAD&؆(au 0<4X+KdoN6Un`B&!n{k{A`dj%%hlR2jԅkro t04) [y]oKbiK]'!m-v[EYWK\}y1 KDVPCPC.mP+'9 mTRGQΒ>ju$Tg!5\9^'@jbF1+ZQv xA4v%0A򂆱?S7e]vy*+ppN9m}zI$ p|I3=c?^tr; bGx1/%SjE]C1'%b-t\6ZCBLc)ڨQd2рy0e%Br˗.\r++Xj'}tˏwΒ+h١fnc !D!GW7gFC]B=W9PFkiU!H"!W;ݖ/Gf}qcɒjG|R6^:Xؼ<|:,BGmjeB@ÂZByi C{O"߂zuzrYL(q4I"dX::( 2hDJPikKaZTsGJ>qo!F~V0_L{XeC274\!V$J)hp2+VA3pa5(h0$+,K xh+2vúiZ&4eN /H\'[d,ѵFXӐΩVj)Dhق +Sx*a ,!(adj2~ģ(TF_8I"ܒ#+7Gˬ]Mf^Qkʙ Xbŋ R\z˗ 0t[ToUY+?^l>{yUn6M\\ BRZ$m&7|7t˘x L@lnt SX"'RGz#e5LV#jV.h,QppDr?>8˒ke2`^͡"hJ qiAM?ۀxr9].~mDx^hKIh-HfdR>pjQuK$lA"U_ox\&Ø5j~yKiIFUI'"e$k+(գ A]Qkm`GϤQON,N-}ŵccbk1:-{ *&Wd~!_?0)e|g:]}Ґ (H<8~@@\Pw*- ]^f B ` Ѡ\*Nl)A;g6 Ww3,Vi/Vf|2 j}_w5{VKg1`g,WPb҃J(d)Bk $Z{RXŰIm* ƥx1I/w]V_W&kҊ^5ێ6O}OlFRXWLG HItL r0$W !V}N 榝C诸o i[kM83۵qthKٟk(&k>~ZjjիVTVTrh 4 u~<Ӄx )АUW ՛FWD>? ąaPbJM;[2g-iRX i;{*w&q-#BCE.ŨS*kNk^79 xOip:E )wj\^?*">M<" EPCkQYe!I;ED!aaSM5#nHYqIBIOf teBS+ ) ;zcI ]~Xp}4v⪬HMhE(rYJP&EwWI?{Pݐk<6gkz!I_+L/^r˗.\jՊ,XwgSx?X)'n(9|KռWH .l, 89(ѻ냋@VѧKaD4Q.!:ˍQ2|U,G.jHY=ggj?bQV&eQpJ>#_p2 r{I]] O}0H':‰ٹp<JJiM)_5WnD6TWd뤧muaGv&T!BҭRjO#oY6hg3|VkAf2 %3zW8a*̪pANo]Xx)쫉":QPʕ?Cvz!kIf6if6l`ݿ7uSm7 ὗҷ6om773ss7wfl ͚y.l,Aӧ|Ozrp:ߧqQIMݝvvNr?f]Zvl)ɿSȦBpiӆM84`7TӓN=8 '(?9_S^:|2r>' ^9HD{P7WTd7(d2M-74as흝޵lnɺn"oM:vzzvޛ҄dpNB8X'$7$ppMp0)ɦ͚l٦͚l `lN Ӛq0Ma8&8x2NBopR0JԬ@z^F6A) Mڢz_)BD0"!EA*wނ&1[\> D`a( cE,IQIIł`1F# ,a"P1QPTE  "0R`a Đ` X1&(b$@1 1"b$B ),B0bPR&1b,F 0#baRQ,PbXDXaICL `+QTF$TH ALXIKX HI$$tXuKLoݜ[[{ vittm/'pppAi`bKKKc0p L/)3&U~F[zQ̗R{aFsqU+3".5}Xڛ-&uUS6t3cqNP!PZm@z; >M-e")YEaB%GRB9} =Ov_5|=ŶWMMMMMMMMMaW)Tzj5NM3MPӶ2?y} W?হͻl}p-?x +M;>l;3vG&GZ??׏EPp^]nɻ;^st`q`|<ގӣOtNӿ*(,**fserdʬK-c \Ŕb ]Ó^•]Kx/嗯oe<77rR2ҭV/e!g{AAAAAAAAAAAAAAa0L& a0L'3UDI*3` rFrt,]aҬ5N\?l]%LcAc+6ebNN24eZ}>GOe>6o%#u-wN|]0?t'cJh=%\~RVӫm}Ϳ!GnaYچeg\̺M[nzP:Tx+9HpsaS ɬ; 1Fʹn=ui`YBDT@n_d%KtC͇W $L=kȐq®RtXwnkS"H3陋fTzxBS/!Ѫ9-nX($hg\*~z6pȜrYt 0` \R/]'9>9Pt+Pcm@"5ef5{g8B}5UctT(IxEbb_1z{!8~GnUmFе;琌uh΁R(hz3xogKZibw- |{f]': i-IGuRVg ԭԯ=8iϤB<Ԩr,@$ iΩR_1qF c=>M[/1ȩGu='58ox+}}6M ϤK'~_vc>[2gX곾C KjweDdqeO%㭌|8<~?_]]ugI$e^iyF?ڜ"#isy ,/,[2dɓ&L1b ԯ^r hT~%sE_=x-!w.Hz׳0,.2_1$PbȺX=7s:$yf ,!6wm6LQ;#7]kR%~V/`}>rXa~ _ѾjtG#byQf K-#p`I.f~Λwb3`s 8OO݋U lW0q(XF`싶 RJ|TcP??>DŽc$5Y4Ό9*'>9 Cck&;'s/ bb­>ntJ; vr, r~BzZ\  IajIB:)jBZ:iԼTDd|:bVRbb^c 'L [IYgz$:9k^"3jE^f3xi{t>`| ?x}Dlr'{t2nc{"}Ɗv;1?W#}b|ܪģ@f,HeSMHAؔwdWtdix- Z L٭;q6SvV$$ǤF--փ֤on-;Ղ?]f::&`&`)tfi# Ֆe8&xZ 1bb6ώU[{"ӻs§."4E_ OtߌƯm`VݭX},Ϋ;Z&+}v xHև i b-=z=?0d^`]ou晣pHM^R QgiMT *TE*T ^nWi{xrwyN|2 3|bիFZ>2h%v;I$P#Ҏ>FGR(e9,D3VnQlq2O$S2c>|9ƀIBTuP†E`S+ޝys-"FƃZr>+fiSfD,ؠ,DCCH*!i s,fҺOzbpf=n/BU̜uWIub Jՙ!SRX88( 2Eu Z# | M5B-GJ3= )}!~rypS&GxvTZ k ^ݜ}]PvwҨ 4k50 5Wݪ2+?J{剹HGa1` 'o89ZpqF>!.O1*dPɓ&L2bx\RDDl2${#Y `Uڌvpwgggw':}tRAxA{`f-Z,f'm)Mv,zܞnJքZU?(4+iu w5l!9;>2q3Ӥ);;;3aГtDhBHi Ƶ7hY&*}ye= W)!Ifj-93=epXT.=``q+[Sſ]W2Ġ2AYZG4]תʐk尷U=/N~5L^^WׯY^r˗.\˛9g!K^7/Qv0)Z*LCߕ b000192(jk3jy^g#2=a:cb[#'|sGT9#~M 'zZ_0SQKdcU* c.y^;M 38OD8,6㼛֫<\p" B Ϫ\aƮBVX[J98-l leILܷ'\H?#PTK0RE'@-P3(+}bGV~u*A' nH@GtDkaT[2fZ[㬴=n*TR SPVsGe"ʍT ch?2²²c͐ 9DcZaQbaXV>m8-+yi'W-{8ΧhUEuJݿɺXz&V1 /[(?]gaN8WhDG lޜpx4owKv=9׼<n;`s.E}n@G2uL5~իfmt8zB 7t݇SHG/|Ήb>}OFIolǗ&c*WCˏއ<>lfffffb%=Fk{Rw /A.e--f;" E0/101n{fwX^?=pќA$R3sEjG^mb9:M<oF䆜lՈ ]Ia`dl76wD_vs;@<8l!/8*E.d '7V*![Bڔ0 ρQ7T-S., ):=2{=`[8+C5>xRS^{x۾RNgHf@xF~}k@Y;;7} e IL o9>f%HOYZ{R\.:ƴϵkUOE' S&;Gb6J3zSMp}bvm2L v8AbB2Nۇc 1I7UحnqQzg̚( -c&#K;]Xwޙv5;f},ƥ$5l$AEYi݉9s!} MVák6r&؉Opp'Gdޒ cP?df \<{ݔh-Wޚ9;m0Z*%ehHSie Ҙ d"1iY1J;8KԾ2g)oWlΛzSno_*I^UGex hI|{@ģߟ(Г!9Y Q__$uwL_OUE"-X{O%&olԘ~}C[p_aCgOl)/V:Gt"6gG||} .{`YF8荵qx3s\fe,8ΊJIN}ʅٚ1d[#7lY%~[/ߢh*I_SU y/v"1 ۸$gƞ\Jw?x@xQ1h/ky^ {+<3+eqJ,fHk)ɐ[J!N1z?m [S8&&ōr Y9!f)e"&*VeA{|]tW8#k"|]6c=޽T0_ A\L֥\u%D› bry;EZ?P6 #ke"7Aӻ 4 *Y* H0;!@&&xHy7. ]:✥YciytI}pD3Y^P?jf._w>q ~&P/5)l@x4|֢i|k mתjE#>Э/~Ad0Aʙ)K>)܅> B[0Cd9"8DlB7\> (=;޺*-ޅ+D I텯swםVQ/">}ʧ IS{|M2Oc \2CMQFw)ng/)Hjw&N NH%#/M]^&xF,Uh.oWp׷OMꄕ\~."U~:Zu&g;,mg|Hc=A?Cx(I=6a|0@n DžK}ݳ?X}nw?($M@q:$V,%vVkiOw09 R*T'N1;w gw)W! ȕΨ!a*\Q͚w7DmƝ4eqʎ7j״}w##kk,Hm gfvꑣYK]ssnU'(#(alwp{Ls!]| 4ϣXgX).~j!t_9ehwjdMC/}L┟l@oF `ӵAG w&/9dmhnl4h07T7iL] fhݭ]wQW3ؿ|ݕYMϘv.XҼGqCMvQ$5L~U l6'`Bja\Bھx501>MxCͷ(#:&ͽreU)!ԏû;fܬuئUU'k55_]{ WXbU}"Pi5q€|?<^3g.4mPb6XXZhD4b=tsud ~.BP[L>%:`2:^ ~U7G~| -]WBZн̭u+h8||h6P.wʐ XP; R_PA ߁B #H@B 8x)vl*P=!6@ ' 2@>YM]0.*2`[0OC D!Bɀ~^9fc (.T'  (w!K/T' /^F}D) fx1N8܎Xmwd@Wr(L(4@ 9ChL "#E "Y8 <CW#l@,]Du9RTOjAO_=XAC"8DZ8^=M7PF)M1Ϭ[`_K ^e%Gj㗽*77Wwu{uR NkyQ1z}~N2& 2 >zufd,iJ;0ΏJ]+eָ:DɲsUOqf֍ӕKJNED .|f1`6c^׿L> !^\#]^ݚ@0{~W'&Zc \\"E c|dI H2^ rxo) 1EU|üt)OZ?ʨf@;AI&rt:8qp\|z9q;lm>1 rMOqR_wynU| =Ė|{v`NMs<$m98x'wƌdDc"H=;C%Cjn ZĵhCB/pC=+sQ,C(&a+Y)wPzrww[*vNaq*>Ӡ$%t+iY5$7{i".FFRa9cwPn2p b`H0/Toqqq윚/^\cFd;E>IJsdר]#%l,|+V F9=CִJlo?Exu7H(qPA;օ_xT.ChP"\L ja1~x#hW9$ =<`lԉsڠ0Su sC`߀;| Xڄ٠w慽1`A +@W0[`|MA$!u?(}>Β}ngp{%DFړ;_ˉ#) f=j=~ T9$FU/]|Ů;ټٮVKD:/n"kW_arKлrk.R^uy%K/뫳нkկ޻K6jkE 4PCE FL2a(h(h(h(h(h(h2a d&0ɆL2a d&0ɆL2a d&0ɆOF8hᣆ8hᣆ8hᣆ8d&0ɆL2a d&0ɆL2a dhᣙ\; uf/uZV]qZ;ȥhI_ѩLReg/[K^&³fa7wP8KBʨTP' uPeVDR5`C+m(q!EKԨтNΚJ4+3@gJ7xc 8)xZjդ5 Ub4Qf6sf*/mk<<\5{>BpM5jٷVA :%I.4Vj]!(e-C J{П2lHMc:ӓ92~ݣ+(d`ZNiwRUIv]NN9[?*h&:hSȧ/#@Dc]v&$;:uXr"A `BAW\=WY{/l:9E1K y%(+9HE$ "4tXc|UN`mS׆i%(脢և5A$̵ĘS!j  *` *+Tr+`תճ 9vy%+ Vc^OhџdSw6]28K} [CˆW-,`I ك{UNFy Kf՜J"ꉺ/ 8լ%wmg 4vWt#{ozV)o *d @PCcд"އ/SpA%dBbfBqqSİ{w'#WsI֣wQlM1,{(aЪv@LQ A 9' Ģ( (W "u1h̋<&0O=q2"6lԳf͓&L\V0Z:o=V,N.ߥJWo_u $ PBX0dk $g9|Ci@ln 4bb>jy]4rE&-6aF-bVU:o+#sbh2QJDdLɝ/aT(^<`>xCc h 9CpQ)UF2fhUXezoY48 :\NNʑ M0ۍHKKv$Je9=.|/sCӚbaX+VXܘZjrV^ǧH{~5Ƥ|u?+u$cjqh3pjݻam{ S\*cp3dbX+*z43Z{Sis$My@4zw'{9M\B%9f:$ EA?Fꐾ]DE}!1 nz~o`>ۖVA4Y3nt֑"D@m4uek:֖r9Mdγ..[P }L)GA߼^_<ךv>yއ>|x냵9r˗.\r˗+{^th:kK ^d=) o \1`$H"NAgQcɄp*ᖴNIN֝fBwTt$:٘F.DRmRHm nbo};)j@et+uywOX:-Ts젳9w@8إr)ZxБi-IyS|Bp8 # ۏt 8 "b4Tp^a:EIo `BK[P[q=bSCdQe*ډf Br SS+c>;#{"33yz?!G'DVAR‡hڲ*=,P0p=w}8yp,Aex,xm+('O k-!Jތ~I(Eʡb=pIr4:5by]"m8>GWi;CrChJ'(z8m{ ;:%}{81y)Rp}X)8T߻ϴӝjikmrz2*d7澚vO7v38xS{qF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѣF4hѭRP~6z!$^RyB@5Yc/D?Puw^h3zmYc9>t9iGz,Mǁu"Rid;"T.)3y(Z|E`8&6p o?{)ޠv>w½ɲIf$2aAIIbk5{<6kWs)O(aaMbKgp%r_0qB))_Z¼%bi¬rڕӤI';[I0I$fYI'sgS^_3mI?Mӳ$YQΧ$yK_~;$$ 57ΤI9RI$afI$Oq淲I; 3I$Fy/;_K$Nkmm;Τҽ%T5}:I'][I$]s:I$I'u$I$I9S^:z k)['w8~ۤ>]^mI=;|^SsOs|I)L$z\I&I$I.ns};6u$I$vu$s٥.]o:^]wIn/[[I/ΤI$tKfI$4Iv]zΧ&u:s̓?co’I$I$pywI?߯KOs]Χ^:@yROY\Χӯ\9'nL$YǗx'eu$5rI$}|ٝWΤI$n@Τ{ku v RNzG-I:-s$ ck7RI/םI$>[nyI'k1;\Vu:~:I$I^:I$I$ԓ:Z~Τt }*cm ^Lv3$Io-OCwQxI$+ԒOuIۮoWtI9I$ ]:ԒI$I${RI:m{Զ$I?m$W/$$IoN}\I'ku0ǣ&'ׯkgRI$N*NyG3ptgROv I$I'a'ͽ&ۤI]:I$Ins\q0t jI$xSotWͪc /;vmxK:I$I$'nu$ sob[RN\mN"YKzSNrI$ݿ>oS $fy=WtI$I>I9Eog._oyJڿmOtrRI$I$I$蹵L$I$J}nI$I'S_Zt7Χҽu=$I#0p}":=\~Z#vn/}Λr}{nԒO^u==3$}KRI53$I$ _6wTI.qW5学I$I'DmMv7tI$緋Τr-$rYԒI$\b$:Io;5xo;uOxOmsL$WgROy|w mn)zkRI$w;A$_`]7'VI$V&JI$'o۸s.Or9嗽ΤyԒI$rΧ޿Vu$Vu0?[L)޻_߶I<.}/'wLْOvI'u~m|f̒I<5S߽Яm.ٝI$_I$Τ$I$N_ΤIYw#5$I$I.I=:t:7Twmn!$ΤInϝO;u?ԒI${xߺIם˜O}I$ԓj$xkvI';ҽ~nHI8RK $I0+BFu#zGv6#3V!{s>zo$|{kS:䳩'U'־JۤI'w[)'r.u$˜I$-8`<5ps:rQ$I$I.AicuI$I$ps9y!$NtBO7n$IdA?nf8mI$;M$v+gROyq"7~rI$׮Τyvo 'fu"GjI'ya: O}jjwAڳ'c[I$ΤI$IOWpgRtym~ԒOu?9ԓ_ٝI'͙ЫYԒI$NxC/Gt JmMWmL)KtI=mgROgRI$:I$u[gS^:u6${:I|tI$O|ԓK[I$.U- ^^yԒI3tIKI$ΤI[-]Y:I$OO}}䟋m$N}Iz+gS a$W۪vRI9|6O}}gROsl}[{mI$I']ޯmI$I;3',nu:U'gS^|צΧfmR7WΧs#s^v0V<[nI$S o$~vnI/1TI'}IʫY t;mI$YI\]mӯ_G\mI$K{x|DI0.Oe$I'e{R5/;r[nu*6u8u$I9'黷|ْaL$"I$eun/s/7LlO֧׼nۤ $wΤaL'Hu?%г$MI$WN$N r6ۧbFu$u$I$I$XOΤ~~x} \UsjO/Vۧջ%yI?uI$2\Fu:w5I$I$I$L)|{gRI$WZnR?Ԓ{:S ݿI$2ǝI=7#߿zz7oI$RyԓG:⳩$ݝ_NZI0{my?w|uy{gRNt9xNwozI$y^z;Or^6)$nEԒOkulI/nնjI\Fu$I0nI$2OI$IqI$I$Oy|InW^t8ο.l$WΤ֤I$kzm8|~ۤI&yԒO5u,IoTUnki$ũ'y*ۤԒN{/^>t7%k^{'u$I$KΤz&5y+8\9'jgRO]uIo<~I$w/Y'?.mS $9—?[NYu$I$m$N|lIyKw:Io{7$9ԒI$o/7[鄒I$I9M3oI$gRN?N}'u$Nmv|wk}{m|gROuLI'_7ù\NkܾRI$nu:gR0'fu=I=⻝|[ٿI'=I're${3$_~}I$ttHI;_Iki':ϯqߧvgRI$J:I$݇:I0x{gS_r6Iϯn㒿ZYv"[nI<9I$5ڦI$|kRI$˝Ny\I$oΤkI'5Vu$7ͪa9RuRI$I$gSgRNJYԒI$NatW8RNiq'{wNx$I$$“]{X$L0+m}RI?~;nI'Cu$/ptI$ovnI$Τ_:wZIίo)guWEu~+  #PjfM5N 瓨Y3aﻅiQKG.C{W{濓;764PC?([c9 KM.xrv8sX'G9׃qγQQ\ ߵDz."ca e vXbszk>Q.)[g6;Lf} c%$ ޡ&ͦ: kKnEee׹iVXWc+J(ˊ՟1 /bb4Hp=凜1US3&"'#NRQX*{k2>R,R~BZP m'Zp `Q}JEVXߥ(#Z.HBcQ՗ Cf+t+~,0ۘd0Am! ` <3↩x8q,E.MgVdCN[,,d3а٪ny0VNp" ஘xQ WD5QbQiB"WÛdl毵3!fX@9K7,(3wk:P+e. 3bF='m [d!!$4P0hzl'i\K8OoԳ|&m"yWC[/_8Py3)wٻnu+Wd)]etw,wlgGs]5zk_E / .Gγ}ow2,͐l;>F톹O]L,VEؖltԇ)7`ՒC ACwN*c_3[?'_G=Hc7;{վo/7s>pdyhp*W׫òZ5*+$HB*aA((`m?X+0̅S 4'nn][OG*{tS|:>X}nssrVuT̗&î8fա9('c]!#T[2n ARJTVcލHaRKͪ:*VL|j0º\$p;D[-ZeJQneH1kK@cJФJ"q!}xGRaaBWAϦPe2eXVR)8Ge#|i+V xw_lٽCH>ƫ;v+e~7c|6#qYTgęKf="(qJ"L;|q: eOOYx|І38V &MĠ(K FQx#̈4)(T(j5+ù!k5]+Vf\ Z6z۪2H LY3/6]@+_e1s[eBv 8G;,%- <|zCAPu8cNb0٩!ԍTM?7AlF}׎\88zxo;J9x<G5z{K}s%~(K>@sgiTws'sJ|m5J[e{,qy=ɲY,R OJ-;pرY?ʦ+G8mȟ7Cthqf@0$`F`d>'܃)vC^w9P][c*35![DTG+鈻g1v+AþaXZ^zrիV:B>@B@BBDȮݥe1LLf2GD¦C7^dx3؅b9#Wxht 0݃xEud 6CDOYfXx2T T rɕw[i<nSN8 ('0^{VOM`s&VɜX:k-YdJymӿf "F6අX6ۜI*eTTE`~:^]X0ODu\*q7$S/m,֩#Zq iAY!xK't7y-WщBWݽFʺ)RJ*TDx̀;RkwaG·xZ%X\rrutCCt}*_RF+Տ )BaD)pUoX鯙JZPXWK_ݼg粽/fzI(gqxyNLιu弾{W P*_#"A8n3vhJ0e@OQETGBhZ8:Fe#ߣ?!X[D C1(J]<<:ig `C6ga_島%e ,9mTw^]Ԋ\TnWk!*/`h+J L_+UPxhz~UCZrbЙ2 0 mr 1ڇp>_K3333!f>zyo+я}R)k;__'턥HC+))*)*+YC2xN@>)99fɷ^]O܌`Gѫch5#KGf 5 e]ævPܰ3P0LE7Ħ\s똥sФC|k ~e6Gd~綞NUJYZXKA"$:g I")hQ,'dz gN7r<{ i@u{<hWJ[8mt*\,L?c+/n2긐7BY`IQ[V+Ff"; u, ǟ20,,Xbŋ(IZJ,trXm@jJvlS~UgeԾYs1a58m;kLz)VR_,]yKAF^mE੗&jIpǷItWh 8Nnx&P0qʕ,5!O9oj)/JAff%]Q" PLFb~n,Vc{k`~l^qNN;iVgi#[ f3 tkpfNմ 2k4,?:y'4%8SB.ZXZPRY^ ڜIڪICgI4n7WMHtn89:?:y@#qj O"9yѺ9|ppCJ`+W% VTI"*.l+ץ 'k/ħ3_-L΄%JVr[Yud LjS3@|eS]dJ$R)# aM%78Ѫ!@E戾l2~2KsٍD,{؞l҅}DV[\Ɖ*!P|>U]8}0]}uiOb^8gSrdɓ& 0`Z W\?ʶP؇{w7xŢWaLkYUF= e*b1-!..-.'kLqD#*js<#Orţ)")I~vJ pT{=+#un%)VL<])gY} %0~¤ WB獩򹽥h b|aXLJjU qa^)*i?Mo/Ge. Q4$p$e# pQ`iɔceF]lR4"x2`ڡI>KhqJԋO/dάgٱ5)RB  MumC@ q`ZV>RPRPVRҺ+†m%oXM^`YLȍjjUm3_A%TO>}Xn оrGo V$˯ z![Z/uW^i w8(?*t̊5C^ ɼ^U\S$rޫwOs4U(x">^DM_ƙ6&!$^<' (i<>>YDF*px$V19_S} >('tvfLY^=l#nwν\PNy@MǓ<#C+V144j>k\)(Z0.!Nfj=+d}iڄԪ25P?ㅿ)ܛi$#5tᵱDjbmv;~p@=jpgl·kدs'87 3ItI%â5=wָn~~T6ms9Ly[lsWrһ%ƭhNie>M%/Ze=7]&2D13xJ6msq Y?5{MSZi/䉖5d2d2dŋ 0TpRՋ`0٪Қ. E_Pd^zeqI낅rEŋ{F" AMԎ@T514`100w`t] 7T˙aP[Z;vݢ~"BMgsxi8zr((EFOFQr9tJFϣ/G!MW ,`BNHDϪ$B$\@*=jK,k'Q%>KM2Ӳj^|&^T:$ҝg1ߖ ń蔩\b-.ݙ)򥞥έl#L VZjիU)PJN ϖ&W)ermIGl 5 ,$Q`eZE49 8l ǭku^h8;hboB1@l~x;:Ȳ3bq1Z5zNJ4psyޛs|p#NcI\I.u @F+"O&Hc} 2nZSqQv&Ux 8Db.܌\T1.{ΐXŰ7Y!TZ9aAUF6bd'RN4?ڝ)]\IR5+OWDq:.ZK& g!QJҩsr1 Tկ4[O0K6\ {! Ysw78w8hkZЊ[o-sd45?)_*'M>ZS -[u: ,p4*o'dz=?OT rAr*DEv zV=ۘUuoC}<ǹ>WhYqyq(N;2AV~':y[{c]J0xo]_u6*ܒ'(JzwrakX4}O&/fɯbeT̩m$6)mvp,&W6Bu#-L{g0N 50nGO59H6n2K4)D-6i e%d]vL? ',ySsX,\ {izlnгMg5s8ckcB1:MmuFkMyq61[;93..]2_g3xNa|1:^v%.x\YXNg''WQx51mG+dUGg>Y#̝c*mor1G)`+lҶE%cvaZ̶YB`QAD4hQ5-*  (9}Z\{B-?J׎KV}y .rw< Jp*l;=FO*fK̯X]UbX\]{wnEl n[B˼[I?Y'&p9Z%ꛔ)7XضkQD+_{?U/g=߲nN D3?1_0 SqN޺[sȦo"]2(pº3>~z~?~ 0*UEQR0JA} ~Jz%=r<:" +'$%.tlֳKWq1R;?j<<<Ӆo??{rW xQq N#7՟`c ~@r HYSو T]U`%؂T堁PzpQ 2(Qj?~H/J: dbI.h M5ʇ>"zb&HCF렵z2mx nIF; UYkcG)yr wJRh# Άv\2Y[;!)B׳Phr Xra(+V|{awZ$ >#z;|= hS_To 22NY1YIX#c :nm$Q oңg XR_G8jm}H lZ̡İ"@Cy`u7m>;{H%FkP:|L8>)s&! Y$ qD3t8P]Ьpfywa Px9ߺI|Ϥ̴57we(!98~X}׈=exDmoaB9< %F<+AgK0譛uHpd*q`>N-gsV81#_ڷXR>k9:ֳa5w/AeGsl>0-+ޑOX:ýP؏O} PE!кn< Jq53"e,dž!û@蝰*!UN'H[SVGJVZOR+~=Q䠤k}ac%\ TtcE>U\A*ÊXgJ^\.g1h"i"u~k0r[9 K:v+!c,Ee(yȪ'n@BDxkT>ȿ{Fs2RCkoT~=X?:~mO+*alLx2nۖ?ЦjvP@ @DB/j> ~rG rHi3tM`ӦP˧(w,XZjTR{T1p3p姰X$tk}qE Lm?Z"MOHx`^)g!y$y g.o'E[)Wr'yKU:!$OЗP ?8&9wpB =FG,r%- Gs&2EPF8+5D;x3 w%h3GRE_}Q(1$+O@څzK8Xw.*9V7"M}AQX,Lw@IH}$W0Iud/4hOvT_(:UYRpsq-PKLˆnGޚ`~nŗf}`:˗r˗.\j^?_]O{ާy߱l٬m盻ҽ~n$óWgh*I aǁ.8SvEG0hxԔք jP\&2|D. '&ug-, 7 p{ָfa5it'2"6j2?v(j>>͐1p7t< KS }.<[ۧ @ċ I J"Cm jlJjt"1B573vŨ hK(>ddBAdڡ9pϖxUBt)K6Cglv7zxA"w)Fjl_tx ݊iEXJ((YPA`EJ +D1.P,b !P+f,] \ϙ>uh\e}UY9H@IR34m4X_ 6>9F)vS`vѬ^~4itjپT~r s݀`҅9~=>UzKmxh_Z߭c  I*tїyFZTRj*ZreԿ?]`dkZ\nxX8N/`2TPwrLdg`D8ҊL@X Bԁ/J$ a7K,R {ac4@7HY*<;ZV&JQ)D8n¥~@AleU.x ,Ts1Ve(Oz)F*Ql[K S Erԧvޢ"FZRm3 ɧ4 #-i¿נm #ynVZjիVZjըBL,^6l3h«)\~'Z`S{'s5xA6 Fgк(ܭ|wᅁ\k QmasȹL;H@^\\< \41ԇmH "滅P`; n<)gU67hcGärPyo{nm*xܬ[beF2~b0vL_F̊r2iCJ`r_p( oRFq_h nR 5z~sx(O^@X1\"* `H> hL4-p1a_ɐH5 @f`e`Friʙx|~EԢ;cXd{`suKC}hH"0t$ Ebrdm.LN?D*|RaƄɁ#`\@<v W;B@aP?rכ@Zd y@O+$XA:"0VSaulunWWZjW_RX0a|7=#ˡZ+|U_.)w>Zm h.Ccb3@Rχ 2#=CR:5W+Aԣi} lpq> տ$ }m!_Oin^|*s1tKW.s{[SξnWfgEYaS+hvgR6iFc0Ic&7[=wo9B!i"$S1< TB5‘@ @8(Zn4P)4KaHG}( ( .abAK@`;cݕ꿥ݾm(>yCLOH#ՔhCӉ3h?Vk@ýunݵ @, -ؿٻ.2wحH*jsV.'rs6A^B)ԢaO: ~s8dɋ.\jիT*PjktV}#CCغ%'0尽 ue=e s\tɰ\ѵÚDOD@sϗfE7xBNp"߀Y8uS) нωfy ]#`7@t y8.p:#"[}'Xi=>⢀Έ\6 omsAs`QK5Xn|1_IKi=꺞оbL?M%HSgQ|KaAjE 7sB:Q|/RAiעӀRtmKiVƯf#ML,[Ŋ>Gް>͏H,XE.]+@@  uW }Dמ֬ŋ, \(>vZn@79@H LJUVp`xE#at)#ķ?C Ua6 0` 00XTi !&KMV*0͔Q1̛fW8ѻ۾Ճ*{Bmy^nhLdg "Jx!<|=9!ӻtXkUb "@'UH^ڱ =sT c@/Sirm(2[P `fjڶfph҈.'m=$#:PDf*3x9QIk"u/swj{~gl?fv|I@)id c),ŘYD Ih-%Z(΁0;=)dޠ Z4e/<o_bZ.E6Kԁ]u=iLAs*R= _(!JފE>y?z>끁l)?M7m8C戌tf=pR& rSA/DwOۯ].KefK  z``_B-87(. \v 1$<@(9㹏Cssrˎ8ng#.@.N7Hm>U5=lY(0{ LBRTRVVcC6]n,@/Sg fab( L}b/ec1 Nylq 9ǧp#OHOqэ6w'MA:K^n_;|75!Z' J7D\H9Ԇ\Scl::2H'nr=!GR mC^r= ҀłQsD^ϧpP.4 yuB5p)Lh Ş1SIANF(3O Ԡ*gGl\/tnSba!)`W%[ ҀP7\\ CZj~]G(\e/XRR|-A)seCϋZ z7_(:;l'$HMB^t"ɼ?pp'rN4dɓ&L2bBj*^jo_?|WȬȍb/=޵[4q g-RBW-h`0tˡ󪠌ch- 7`,xgطF$;v-p-;05"ab!njap bc8{}n|C?%Yi{Y̌%13ݿ'VKj(1@^>>HI ڤ#,EB) l rА09[A@:|{mG1ۆ8PblV V4b6"Xp0f7"?K^e>ä>֏T#/jlm;,vUj2w0Iėi5ooֆ _&.DMV/TT1bcX TX#c*EQLI$ ȨF !""L$X1F#  c0RXEb,VUfU&10QQbŃbQf*$@$JD$jBEI1 Qň I,fX1bc ++V՛*",F,%`Js@bX%IVX*,L@R@$Id@I1`,Q"XL`QL` XX1XbX,"Ŗ+Vł Xb"1c1X*Lb,Ζ1eifF(k3XcV",eŃb#,E`Ub*#EYbcF1aY#H,J1Xc,bR&13ثKX*0bō,X`Xcj*QBBF-E,X1eE eV21YXEdBBAd$FDIHE eʨ!UD %@dY$S­hL]备xH`3v[i\S "\> )~xA6{ f`c K@:>fT T󶦅ca)M)J#n/]p&ZXPs)0O:R 5  RWJ)M @wx ^hXA7(}l*6 /{H(a<0~ُ\~}{ffE\^^xϡYq[yᡱ×T+x%-=֢5Qu͙0Ñ8~2C^cg(N<+}"7?b2Aytl{BXGAq5[ja:Al}J.ByJ9Ianvsɰ5՛<(PޥBIXnC#X>w1is=8"R@Y∥IwZDKt|2-w$|"+@ق9P.(Z@F#FH#xJMN=׺v{l2o{{է~=~۾ϱr/{kk#9s蹙HP1t[~Ab'I<j 3~̔E.y G'g1I` ]M0- f!k̰-5Ih-<ۦ.^ dҙMG</uV,z K\}7>[8|U0 꺭T޴͵mIUbOJH~fF`${V|8[,.fCLNg(f, 땡˅8vh*n1L2"MĂn]TȃdQ2`%R^kGk7k~ @30Gc@ k R;{:|Acr:TųK0(mZPP6Ő;O ' B0N, __x.c V`zTIL)- 3ul܏yE;՘0^/^zW+Vhji,RE;M3+:zp*<1giekkkmoo>';z9.%0٣ǘ6GqB RShs} PiSd-G{Ժ;,I M;&JtW_iŦtPc y01\ìXj>Z9X=Am:#JTTSP"CAH1i.Jױvk-z.c,uݷnnlYhX(@ܼ `ٻø<^KznwV_;<wsxp-M`ٹP2( S2"m4N4^EJ2V=LMoc8w=ŭulq`cECd;<:Tqg +i|/ȫH+VRJSMB]rҒ]Q/_5دsp~x̧qssr:_#ˡUR, !A9Wj?] 6}Av, PȀtW-`]@3 \-?r @`uwaPu 9^2eB1"h &&NP}xñAW8prM   EAF4V}40h'.]J%r*̵o:{.mwWӃkҜ~K{!@Bc&,d,{7(A @Ênpٽ]3ע]R e発θN!wl]wrЂf&:RVpstDHwr+)5M"Q#w Gۆ4Cѣ2'^jիVZBZGJidg硗Ի(.n _ P  .-.6pWZNʡ(JVW7^,3:"OJz8U,C:܅Pv@Vz6Tǐ5H05* \[o\R&W׿NL7ryrڀ\4Px̍ٵq~.''YK 6١"eek] Ғι]y~:L0#{Qpp( h(P.RoWq׾j%(9#@J!BBm~zeo^U)yͭ;EfVXdU;i5|!M6&j'D^FƜd# 0^r˗-+>u |XuG~Ϡ+gwN.NU0ة7}P ="?N 3?ZA=#=Ɋ\m7G 3)κZw2t|Gp1 ;?2r`(w*fYw%.un͔E CC@DrП F(i1M ž5Kʣ}XxxrԘo8<ϣe`վT>~! irNkaQNP˛K(|o-ŋ4 tq#>urr4`{L?1elv%Ӭ:D̝&ϳ&L2dɓ *ZJW_W"v}3 8R⨠-16KK>F>Rݳ㋓Pb #THb$Q2.ZJre:9|E8Mgqї8N&0=F\=a2ޠ4aJ6h,/7[N9LWr>iRu³` 2wc9CHXoS xkxXP5jNn=FNC>8I$g4 !v:l6d.[do5/L%M0-yP) )c e(b|5&Ar7 WaF=K kRC޸cOmG+\A Α m/9_\ 1*NubK=(aPo\y0ĎFXC?C ̥$Ӧ3$:HķiMFèVR1V ŌLH$m6D^3tVLBOֿG Lk BУN>z(0g'r\2M be.jXjDSclvsh <_!*IoR[ɉ$u~inbv`= o{_;aԾa)_~dݛwB!`". m! 5BaApvr򱎆%ǣ}`lv4Ч`_i7xktB Yom9 .Q_G`v!OOGW"I&uhLKm6| !Pr™N[z{9D:EHԤ㪄tLkۢ!b̯$:&`kL,(۷ݗ]go~ i T_~Y:]LlSb r  6 9-: @!vɤ[>V6Ә4r%T!..$-1~ 2g;"xs)@TAYAVEQz縮o 3_H {acW-:0C ?6LO:_{.gxKLyO'#fd4 SV8<}~oV 2wG+"2&3\ňno< T@ 3WY蹣j0\& !0"ziZUTCY9!c(""E0̧TL/vh1_A6lٱ\VrJբ˱891^jؼ?NG1}SBzMr"C}ҿg!p鱹fy4CvAǃB#P!sPS\nS@05MpMOwu]?c Woι.kI=?qWݜ[LLAxxx+'I m{z25J9wb^=Ka'2GJLH2/ϯ:6`}|wwub)7))u1rnȘbzM6_"۶ {B sgSryhňniZ`+G 5BUgݵOeSt[~ءp/AeUɜ˟79vӍrUsIOEO` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0` 0fkk2hFum4hͣF2hѓ6h͛F4hћFhћF3"|' ڭTCg,g^wu盀ps=v=c_ Bu >]'bhX ͚=S 4tbt:G%fIq9l=%1M#m"[:"BF(|K9JE)7Ă>MܣiĖMH0HhG}6PGKzm$2dɓ&LbŊjZc˗1bE;؂Nlw.C[z^ }'2:6l+c@NR 3Ig:z} ^u%(0ҟ᳖E}kYn]bKjyb^r,p#\hgSjQI%Q \-ZUd/۪,h('de,r`̳!7qˆ %1O EDڟnpcO%m(]]Nˑ]&S] wkBK4~o:n;Hi⏱ʹyéZ=]MO47u^R62"~)$:rbxɉ \kX;];/z:.HSx<\X,XbŋX&R9K(u+LX'$+|KMhnwCPқ{l$1..//022?s=twc@eN>'*\Fy;r,2P)IdjP$4#(TA12\02ʵ_3vҤFRj1+J_+aMZ&6zCdqfԛW?9xD442iB,z+wycMBG.[=_MjAT8i ?з#';/&|i`؉Y{X9XG0ۼv]!hv8+dzK%e`5cnlvJVJMBRm-x%x{͐Ԧjw?rX$ NoqrsXDٮD1(m9$ 0PXS 6*QOg(Q^MozA@M1;C<48gyQ+voaܦ£h-=;QК[ÝʆI-mD_=9|n+ 4GYuOR::T}9) k?}'opq ?^ɔaOD&`(<̜rL.,B^:)drXAaR/ʴʆ o;a֜6 c[މ3 M*MOWrt>Qk٬`#tczlѻ˻xHVS̨;N3Ö4~˚1 i\17z9&޻H|ktݰ?k׶Q =ߣ9MhmPg. ;])M6[x{0PN|tlN(J"ĜEQ{1]DuRvki4&_LߟޤV2P$9976Ҡl GHk~62D8&8eQ!cTiTvAri@r_]ף|j-)ZLKA3 V*|h~ԍu{U4:^Q@rQZb{Ll`"ϢjիVB *+[`XK,a1kGVpf!H F.ZbZ\^dfGF |3y,ҊoN0ye!e}%Ƨ89%$LΌ}}x#!6~$wyޏ{k~nYŃc;:^jIzx"L$K4#{  *+HK$fPFtrPze,. s<^*eBMڱy/gD a4$d/kfCkg]ea ]j)Mj<󬥐z,хӢ]p4,`%*H~G>H,28nn+9z*T\j*UF!uFZBFIJgP~fFKNϏ+R֗Fdu pg3͗@6k}pnP"&FbRX)֤cB.`wKSr7TRvLIW2&,Xbŋ -MRիհ\{ D˓|s-vJL| M}T#%"QXF*clrD#0}m}xgLn-lɒ]VF)r- 9sA5X[uͅz?&fޟz,506UFsߨ<vS(@abՄBO'PBMǁ_U7Cx'k|Ϗ=oۉy_?$[<^L.*ЯD&#4vÍ'a.4,9 MRX ӝC|la,XbŃ (\j /^}vyzsUUng}|y]Rqc8:?>(Xs[;9:<<;;mvU+R!4ۘ0ƞidK|6곂OzY-`*f]nOWgsT57kP N8Cuh-Yl)-E.I"N&F'd'ߞS]< 1hy_vWrv轡pV$FvHK P(&Ќȡ/YKlrFlx#.Ԛ&kRBc!crF7/R8=Oݖ/ iO_~X~KQ;I:i`$L2dɓ& 0TbՊ֯`{ rl7p78꿿vvczDmw}ՒY']ٸv5K؛6goJc0+/$hIwV'E-N^T9ܨ0qn7q5\/uoƼ~ ө;<ZgHttt&Ml:އÁRWV))IE ?0FE7;#Ȑ#4K}UZA!Z!:HfwpD5h0砯+sj2hE6z XtHE-@y1.E0|GMC^wx1z؁ $|ryUk_'}T{Jn?-UX'}SVrB !_1')$1bŋ# 0``j0^y*7yBZaXfz)NRP:upursul&o1h$sZzdHJV;d#B ziPPcWH9ل) q(Z!j~r0;8smtE˷-?Gusn_{kc4ጲK%)P%Jd,>a߫oX5!VMjΝ3B`l-kE_0Hg̨tIucrXbc*4zF zI$YAؗjP_RRV#!מ azU:>^02@gQed3胶a1<b AKG)v~Pf3X.g!(z3IZ`R5jԫVzv|ŗμ,CJ`VKgycóR|z*JC\&H 70ڷcaw0LyJ䮈qƚCUTx] "6%,bƆ`..iZ@*yڦaOm76o@5TrDh\VX:JxndPz1N$2H^$14bNLΐy&o*ڂi0xjf_Uu\xfLsu_Y_1Pw n*-Q1ixB"{;S7* sG7ggwwwg1Z<Y`B 8V!NcU i!7RJ{.Ό+dzz9xZ .@d E N!xP-KZfܮsqs}zh7<%u,JNr2-%|j^˺]Y$7}-IUҜcc,6پ;!ڠ԰`Af!2;@)Op 0)n-}/lQ%3p Qkk1*w ZIi a8ذhs{7ݥZw~7.\Ӱg}Jk!'}H9@ieJ tj@r~ַdP`( )@CI1C'Qgi!j=yΗ-ux%Qm\}f-*=%DKBc4!pBfj؛lł6Q9:-~zt"9mBꒌOYI1Z'lAjd ̭t2w4[$ʚ6kb $B(g7֎aHS@KF˧8hO-0 $`S}pN&pYcEi\LwyXfbAsDP0(6焁Q lje~k (cxjQ˗!˗.\ro bw#˱ jׄeLa̋5OοfYTUC#Fe2Af3:red^!Ob9@lVs򠃪0QE$MB I $( W_ `!F3cΤ%AS P:bAO7ja2Hb({eQȊHɔ rcs, r:ĜNzb@D^z0Z#"hvKK鸈DME_R5#q.j[ Fa@DAv^AH!%ӓ od=FE5NP B6 wCO |s)Ҝ݆ϳ SA2 LT3pbAf:lA3"xMm9v۾oelT/V"';h#v =Q!":DGn @A>KoG~x@_:KFޮclѳe3N C``.rE5r .]R-Ud{V̭Hns\ 5ZDHͯ^d4Z"JÕFQ߉V[x;E܂L8Cr#!"C9eV6U@!]d,hPcB;Gm!9*= qniKs5dZAyk.\˯zf&pGW#!S. W-I{ܹFY]\i`.Σ  CEb 1r˗.\r"*#4A fJGuTmZ8U!m縬qrvuttuvwr7֭]`PáX( X* kgqdq?9a~+ZwEXloX{p.~}:B}E尹l/–f`_5ç2^k #QA;OG@rbIx'+ŊwPfL/191Pؿ\m2ԇ(lM1`[$֗7ѳf͛6jիUV/XZ,1dɟ)é3'OF 30gGfy1Q黣WE?zH{(B=B\)b H Ynz1u/Jv!ϫ@*w8EunP3ܹ",XbňňZ媘1Z1 ,aEC}-r毓8.&tWibڶjճw ڰW^D9GCР(Eb5mq]x8s0Š(`K{!ux߶Ha2K]`xerp.XT J;" qv?6/6>] ao;N bQz,ŢvNhf0ѾyqF镭&D4(A\C㖔fC@{>՚ U5O%N6K8L= AIhvOE[Un ..C񏕮!UɎ/O?MLI_`mP_B$U#!stK-Yg)CbP9R'+ k*U}ŪcW`~bv&}`rxʚ460QY9?=$!ؕTjk,X5 WSRMD3~k6J%;̴f՚[6nX[­ +d C;!p1hj'X_Э+eT̤gQLRr6f˦G%K p^E"jyJ4U&Vaۣ?_eQ=YB*!%C>B! a_Q_T" ȷު@N 4\W4cEhSC3kGFhjAe̋rͅtqKCºigD-pp騾xVF/uF0+\X"v< khVZuG.|4'?Hd{漨y{ ;lgx/S+LS>Td_E`A7Okro\zv, I購q>HIN,zȇ7`g L70%<6B{u|[.geL}$ Ldic~;!Տв?;m4Ռ~X4i/}0̯BBHE1Ww̾{ztwpZ^B"Ed(+)I ͗˪E9`שoҎZ6),+ET6Q: N F d'BM'Mpa$̝h"lR^LMUrj=p 2f|+gH}vGSkpbmY[ $~4IqKj,oT['di_ GzGdVtD}  '%TXkȀVWYlh|0i#u bŋ,XJYrFzP mPz ]3 VWV"?Otr*^z~w'#pEh?zUd*oInvƥb*gsO;dPG lt҇=)qff˵آ6:&xel<]s˓SqB?U>TQjҔ]"ZH=iBPEN?bNrN&ZSQ~l7k@)L;3 tȇD,rx w?[C<<38S p.ܭ-"8j"%Ӕ\gu_Se6]Rފ}Z7gӠ-eds:=ӹޗ!|˗!<-q_-Gq ?ωP5к<<:s-np989:-v()7lr]1ә> 5%8‹!aG85ʼn_7tfN7 ;zGqvp/Gkx;.KLe&so\IXlAޞ{=tN:׹u9ㅔX,ĕ#?9QPyX$EWy˸ 8GkīOی>%OEKÙH>ʮhλQ6lz Ncn[5U>CݎGW;j!m6RF+KpYP{$ELQj]b[Yqq#~A̜'g \^>=MJxu}),tI LĠ"]pgQ+U>t:~/WPա0LC̍Z ,ng1H'S$2`$-(1ҰZ( QwW G}2Xw_{JI8{dlꇰC2]*܁D0+#)ڗy!]"01G 0>H- lVn= ~lB &zHVR&Jweٳ{atYoD<xJKx+`* TqkNd^YbX|6`tJܚe,2۰F Ve^ AG<,_$CR";U2~=)n+Y@&\13]8Ի+< d*@ɶ=zA>9Zʀ)r\;D-C C;t~}g)n ?caǯ.ѷݩgz* @䴁.b9 xc ]Ep҂qWݬ,Ֆ͓qr-4:;U"W,enֺEi-O5բ8wC3 \%@ t~ HUIE'4XB$I5F㭽_L&yYLzHrztW~x/ ;Pl=BVGƻe?D1$q纤-C;6# H*LГR ׌e"[Ui"mtc,jɳV6*wtFPn dmd^Ѧ\(EK4+(Uf h UB .Gvܹ6OLk5e_B~gJ'Ruص'NUɂnvZ$t~Jq <ȯs7`=oJI9K}2'l<nzL`7L7F OMroOI~Mv-~dSN65Dt2*lҪOP)^+'9n #GpR,@(uS׵N)dTw-Z4u)5n]TO׵hzsoi#J+Ui,STDP%r%wfPRɧX }$L<ZaDXT/B\T/&z=E7 WPziPT,1j0"#EPQ4C?0+o3z]_:Nqiټ?4zfoX%wOiyV.}vQ1!=ڤKZz\W.O9'PBR?J@h-YxDJ\0zx,{$ &ح&zׯ\rIZZiel֯V9;?nc]S1Et_nLwuvwv7a%bsj$Ķk{YEa6s8WNOFx%h%` 3T0WҎ9IX̦_V5R>_@BoQB/9 ^|c w \m70tp]bxk̇aO'֠3IS刕=ɏ/9-< I0/IG}:dNM!Yn E -A')VM!%'2Еwg8XhgWW('g1}:7s1*aUIf0#鲯3[S!)[)7D1=Obmכ)%OD} 90Qwə"bRz%l8f3Ϣ!d6abmy P$aZ R'fDZ|wXGMkbR`n1{qmFlf }2;Wp1ц9+9UB3\MrD#-1IjJKu=@/P;6{> VVP'G{Io 8VZRVZjՕV:T+V2B2@$Ji^R/y2D-4.~OӸ8:¼ﯵd]kv̈́ KB Or"VJE…hb@$m|Z*tѻƃslO@ء!B0j>Bo! -+jY'f{.>{;ͻ`01]cN}܇9H ۪݃+]ĉ#j2xkg73CPzV# oCOgj0yk(YZ#l< !f6~񿽽s(}އ,Dqז ^ =),4+?_oxj>njB:򆆽/Ou/d+QqeM<:6f3f͛6lBE/\ɖQɻwr޼^Oo}Xjj=NwՅuK:doW&ܥf:'OK-—lmkC˅`?8G|+r2N5/3 zäLwmQ#?CRLQn Z7,.=)a,Wԩ1_ITvpN~抛 (dqPŚ^ߔ>r AD: JSK,z;%`Ʃ98)$m ŸBPL$\*P(4 {s^Vc{-So`l|n0QS2%|9q,0`0Tkz {uǜ S}15Nx>1š6hBZ9.N.K!a 1)2+k`IOaFQ}';|a{ /K]E#踎+0ͨs4 b]ZGD.ASTx'~p=w@Р!Grp&0˔yZ<52zLk0h²,;/Ak6Is~pJ.RoN_llG CoW.wF!;huK-`v+G;-F쥱ק/Grfx,Qg[2`*TR n`8t{[h%/i.ӝO[4nO6z(%)/ Oe/?^ ț9HcT9ғ=ƚDrA VI=T9җaE2@㖭==o~{`w|N=*]!gJ5be5DQlpS#}fVyAq lo. Wza&ke$oQ*U۵leQӅ(fxvyI\!'pqCȗIw3>x]nOmbIP)- r}W_YCp옇Dgΰ16}AJ $%+jԍOM;I t&ʍ' )qh`BL" Z_h#5yENaYdd_g_Tb?|B ׽-Nk~ qw:%jU2l xKâB5&T,R@Z]yVNI⣔dBŋH-VR+ &y;ƫ[@EiEKh&Ǭ:8yדz>7G'GAѽ^\Da%HLZ/DjŅ79ѦpB?gϬ<˓-ŮCRkV=YeFqʂ &l^ iGK>4[S#5lTm77=@P&cn ^kϟCj7vӗ(AS7\`Ï]S='CCp2'޷6I5\' wJ{i>!whUbQc*sz)z6n"M&3VV{lDm9šaluL *oTx濆 8sv|˪&ZX5kcoF;4 =Aot&/N$'{ 4/]ZD}|X@;Th*FN JAH] l+Y8Y@ꄪ8UP4XE\as uX1^& X 0`Z+ԩ\%վD~d=;4;7w=;{_+nǛZ g]]}_-!+ʢ4(a6}f 9 J472Qc۽_#, sb:ʞfΙ&i]0k+\_2`# եKaj,֢Ij#murOc4qQlrqQptMxgs!V?[ЕI`ͨIndp9HѵSb_39򾢁 ~ syһbj8]_rw7Fn:'0rUZWc6rʊ_6p;ӌ:$nRXF`te,}y`Gt>ǟ331JSWy=||+} ' ±vo)ds -RdЧsg%RPPRnX$V l% vn}YBMj%@CfQY6faa/hxEi#9&tjރeu0Yb'u;dp4kֱH{3r-r?;Jp}܌N#", ;v"1ս}wSJ弫:o†|fWk* 9iYow u- *"B;OF=߶n?ˀ`-i,+"Y s{#^w_κ``AFHp ˦NVE8N:ivG~x?8"=7>p]݋xwY< C{;cn?_0\fepDPY,)*XXg,?4ZfQWقtWI@(lR*Kߋrf.Lwk'.|F?Grf|?nHgϊwSd߽X(Iԃ2Z-嚘^(4$X('&F#rFG)5+W >qv۷lٳf͛66l5ͅ-0^fmZj6x ܿ/RJc-Koa|}VGmKٟc!k㖈F`4W- 70Me ˱ù粫`5(J< hw2*U N kF[k)}XP!]C-Uz7$oZN՚xٚ?Cp/2i_,%},劈c9%oN*" DIu8\"c\Z7PK0NlTOTtmУŸ=PgEL<Dž}x'ߵLEӏ;b1'WA:v,l}y s<<<_E#~w7̝O=ՇR6CWey6n*=KaEzwגK6lȚNqnԥf g]N`)]ɧvI5i<]PXEH|Y.i#K#j&.%p^1օ;gȕic`ppuy~~@VنqS:OA-ڤ! W_7Xun:DK~o[G>q G0sBh*u|sj˲zĄa -C;,}_)0d3l`P .Zb˗0`};|goMt{V>TKsv㘩ȸ<:췎O`E {ByXfCޚb'ؓ~}^Ô)p^ XMFgф#͂Đ%u`7j_GՆ潖kb~ 8pꅖ6E?ea;tVr|kBʖ0ޞ ;:E&4xj5/7QaZ4+r4W N"/ưRga>13-WVҸ~;(l~ޏ|d,f&zEx=!]ݿgkS|t7|ΟA_1xg{# '/_-ؚ @Jc!kRC~M9nRe([IRj'£R+ip"Nn:^`!.=.ꭇ7O~Fu:tɓVpP0]]O`# XkX/y jۡ0؃f)}eS`FKܡܶ]N;} w1J41wh6⨛۳py')D)f"k{w IeV}&#.ͨȡOW1hX4 )9?oG *p{ Lm7&ʟT<ˌF]=?7$yƠγJ'J.Vr- -s6/rTxV9Zw>~,63߽olӆ -t bW~(WU'@~ ?UDz۠AmK^(۷K[cQԠBk-CvΘ8skrZLow7ԁq*Xʗ8 *jKm~#50jWZjq(@1pG>A6)YͲH ~슙NH>oA^1£ LUO#Dg!&L2dɓ&L2 2VZ 1b͛1FŢӦ:z!dgG(6pҝ]$0VBq`}^RNv!D<;Bg쵏0u+?w =k1ǡRol;hÏ yLф0Ay=o/!cG|k$,9KE|1SsnRJ*T5 ϡJF:ƍ z|6"xC;:si99i ZZܗ*d+ֲ:O>psnW©x۾bFB{ 'P[!e6(ÔC?< A5W$~%&->DҪx?%ֹLbopוB^P(!~зZCSu "ɤ@9N)[pӖ82 ɺ ҄9XeQwRѨӗ[/el֭MjիVZj,Z/}TooS<{\GLlOk{#?; =is.nwd t0Ws,w{gl1t]t8}WswgJ|f)[>v9Yjy2EvM^ |`A# [[0Zb!A {{1>˗6_7¸\sc7ve,VPگ+B1Y n%<\RBFT*P]kև׎RשO3VǬJE+}ߢN.%o"%R]wDW*pA25 ;̓QY)r l:ZLf͛6l2dɊlV+\c X1fb|&wF!28TѱzNH} )?xe> ZF|AacػKPԧ$2I:hOװYDlV;HρG;xP}@GJX;w2!B'jV\}vL{6]UKm6K̨jУeso*f)PFnxJ8'H[QcM + j|l;5D4콲겙*!fcƤ,CP Ŗx'lg#J/ljUzcsa*3')u]ĄuBԌOSbSZ#v!yt(4Ѐ74s$It~ZeQQK*O`,Y>UR)RJi(R$C!U*FqR3SpV\$84wWXEŁivAvQGyW b`&RaM)cz\K2Tt3gwȦYƆs~d)P$}.h< /%bW*x<гU:ᖆ":]}bHZ)Kt ^} @L074+%Tz=G1`BhWZrC]SWS]Fnpg7G*aF+\5VZ-IR-\R"bbӦ M_Vjwrm]/NGՆS~ϵ6NΏέ0F^KaCMW՜gE%8LPcAUIf[hWQ tjƈRYbD\юШFx" (ALyZ_)U?+ ;~'C> "rBj!#meoBZ _ID^)_f?G+H)NbwBZ:ʼtm!rBK!(}|MYpR7=xN'k4G"gʷ* _b]U%e&7Vtх,ا3,^zׯ^zբH@JDDJJHK7zR~#Te")ihm"];]GgwWWǷgf_QƆ|*Ή"ڡ57<a;AV7.hOMO/9ωxI]цhIOF<\#/Ѧ?pqS+q!}F(_!d0#f!sW}LYͻY+}/0K]<%dT9 8n0D)K3:ߍ+k3Sي'|4|B*/A5BSʑ$=L_2dɓ&L`0`&0TSbװn־[܊Pc 6GM\sNpsL4UeA`:xpT;>Xv!#33333%H=qۇە`Q1Rv ADJy^@H*'+,,,zy;X3IDlgkԆ1H 4< T1 )C2G H+^MɡPӨY QeTꘋ{]6{~: ^PLQRRSTlSy L ?;gX{7%X=[칛KaKlgP'zJia(!{~{v]`ήHI9<ܓ!ـRl/[RQUhWӳ )#"# Tj `z$H@ y 3f͛6l´hѣF.dJ+1fţFym.7Zk-i9 _Wgk<|+ċzzv^NtA GZ@HJ&f1 Eml+X\G~jk>/TeS|,c"ِBʕ|BiXan>R [oUVt2S_I!$b  Y B;XH{ .#&|U@0|;g0,0}$Lb0R- {, b xl 7)km,y['RbR:2 gZ(pkw_@SWPr*,p?":j%8ZJھ$}֎\r3 #.>}{?_|U'{n>/kaas~Vln9qnca XdD=@%' QF`:ό3d?PFТQ^6crƞVvTbG2T(];X\"pk2-Ɲb<"&#?lAeS΀! آ|U}BTN,[j+Dq*B *.bl?m|ljI'H'Rky/?|R~+ Y.Xb=$ry? n,^ X+P7F&.dA0](]mu x2?{qG5bPg |o=;eBP8K.J낛, ZW/F j۷j7ocD摰ciפlК>H_d.x ̘U*+i8"atT#Q/9G$o7*(k]_Ysl#V FCJQ`7_cȈ5DP'XJ3uBŹC0ja݉yNvaDD#;bv*ºt Z0zg[h4_|nKmfXSk#lK })>hDċX7 Ŵ5%ϡVOCGB??}?˲k?$}XQBH#)p@IqM'vtZΪzPQBLMK㞵sz- NYn+= &⅁.TyߠWӔ^W5- 8Mx^ MTk6 ~T6F=i@Oi4m!l+tbC޿chS?k+r^9Ƶ;<|USsd2z*K_@]~u} ~6x':|f)w-rUWQA7Q7((0pMǸVZjԦRTލOa#3~綮 $|m'S%(7Sd"0:{Ն]bRa L$D`cmIJp!4Pˍ]MXб>m}g3;u[[f[:4㑍:j3h)Z^"5BNv,\=c¶N`2oVFȶpwn%`Z}`r8h3J'SLA-!q BBB&i+p, .%zC6Al;\PVmb;k 0T̘ۗH9A pⅩ5SHkn.o2E;tpƾ z\Y `[PKE1b=pꊕ*TRJRJ֋Ew7}DN;~"\~Sp%2,1eyP@¯{u}K}31_,M/5?ZѨM$tӢn`w:oG0-lqOʊUboIY46ST?<֖#%. X5nF'M&ej bXrEJ[A޶RN0fxp Y|{1rd@~b[u$k+wZu0r>I쀤6qA`ߣ?2t]eVy^sr8;`:EX٤ć~G ρ3c"ҟXbŋ,Xb1`Zرb{*6Xm 5\G7''GLGpіkV|R~N,hDUqt~s2ܿؓS [=s\ThJ1V'ؗW:K{5,{m!e~F2ɁeuIW6k3lX Ub'S"p,Db^(5s+/D`DZ e8dC4+mzE^|jgaz/"̙mjwXހ0)MqUa*ZPȊjB$ZK1gvʒ_*X@<& k3K_Hs ܿ託ӖS66Uy0*^z.TZիU\pMkیsY߿nL:Ҝ8^KtqŽ\7G7'GWW\ Fm#8O(4 K3'X{iVwzE`xdAy]L-h|Aj,>I9*wzTk{#>"ƚk-95=HthdWP.x/} +hԒq6D:9ksFZgu+1Nevse5nuE L"̌}ZcDET\ RY, slSw4{of_[RRJ2E=R}[,i.:Ǯ/g{Z'jz#X5xhٓv9ׂ9 JmF;iL @sZ}r4۪~d>rKl) PM5!.q$#B 'G1ߛ2#&03Vo.~o54:]+P0h{uRlu"{3pvyoPbٌ j@dgIR.ĺw kW( Ԙjg&܄0椆~f͛6lٳdɓ%+0RkزblA҄FcHݳ>k`\vC7G7N4B W2__yp>fY?t1 q`zTU)apEjl}\1GZhrt|`A[pTVd|1\.ê3'PvejPM xK"(#Z(s^-]Cgiy?RJT:;5LvzT:v)VmEE/i< gR,H >FdI;#.^x/F`2nl!QGR@V '|z @-M籅zEsKXv(9Jx\% ƫڶhr b6rGMSLP&rHO4tv cw6lx/Ww..H-:MeYE)E`xNjﻭh>&dvņt'sUr4r!GcMc&R3+j6!] Uve^IiQ d :[oM<*;_Ёǁa\x~nQ3hǛ d5n#]8Y>l'#qgu qx7K??SzXcwv _K=Qo++ `$ (ZFIRŕ/ (.ZyS),׋)U!!AD"W;'ֽ*GD垖=f@?][Ves~%}zO]:36$I|1@5Хg!56䦧 kxa=VRJ*MR]z?\}ku.* O=OA8œAFM?{C ?ǹѵ[03GKĩs7S~5#02LR+Ժy UXfN+FG\F7Nwwn~:Tj˿B =d,D(OU>Oqpݚ" Ma Spw}N\HLY#ӣTYKp&a,/"MaȌ%ӕ B „|%o>ޅjQkJ"kj?@}#zA̰Ww;a@f^_BqmBChv)a^蚕ʭ$IÁB>. EL}'A,i5!uG!8= |IhGN <0 e?QU `J8"1ۡ\^#xO3շaɰ,1:Wn{>*P%@@#խ]]'*504Џa Byu{ Gk}}+z`OAVwyRt2rsy+ߥeAL,.ҊNr8j+#*fN p>lxՏ{7;7[:{|Xwwwo0NuMZgfջW¾0v1I95[ ݳuj,`Ǜj["Kt8b6h]!@bQ|F=ȈsZ P[bI f7Glkv V6W@OeYXbV+e?mٹMv5Ŗ6#qf5#a:!4~OP?C])Kk&Z${*l+]NSM)9|"k?'t1d?t-szhBT/%4R62Yd{᳡Ry "¨4dI95̞?Rp|(4şVۇt}nu^×cec"Nz9~z˅ec؋ *Y3^-݉:ab*qFs-A!v~)V] *TRB*w,ۥ/fW,X#ܿ~fѣV!PCs!Y HL%?h'3:[-35jEm4D~/+# M -s<-DH "y_M|d%*r{鲿K*rW\ʄܔqI@CR?,\Ee2l>>zE+;JtiT{̤<cZ]')]hwє) K-{zb(l,h|Z̀Iq1 Ygp@qydwa}}oHWv-URd(&wx?Q'V()٢%tC/Ljl QoS8nۖX,7Y'8*`G.-5`Cc kf,F_tow'S8j*L#l Q P>1Cfˤ۲?z7B!f:P۲OQfĭLi}Ҕ--5 ?*KBܿlj`?:SGs}߇Ǹc2Y?/dVZzBySSY;\Ӟ]05`hweQeg8j!bŋ,XbiTZG-~V+\:I/rl~LD_Ritdzn8h@B8JE,?Oz>G3ݖn~DQVI`T"]7(VtׅsAgFG=);xư9s!p'piDL6Ӫ]CKŐrwqF4V Xe(jݚvF3ǂc4/5,ju-ڼxTGwt mQTUIey3G8QN{WŏH*J9mF4hw"F2zK ,Xb%jԪVnBD e41 /=vBq_]),:N PYUkЎUj\N2uՋLJ|k1xI Z*x0BN0S=~deioXOh%U `gP|Z{;]iX6uSKX1?e-)BNKۏH?;x;vNh/[0m#0 t`L (("äD<[p67j!x٤-<{S=f!T o(d_n˿׼"6w@|?vO^㉏Rl) \̴}(`zr싋<)ĬCCļ>Jgq][Vl`Wwc  8A& 1d-!/M,S ?y).3~h&bQZNư5yxVP;z=?QN`\=wՓqo=;]x6Fx-#?$'oQ\[04k*_v}T{˳{hొ&0-Z^,#뼧y:Tuf!ȩ!d (I pBY;rd lRlbЕ@p%),,z'=Dz8c{nvo~Lʿx<Ja0xpy.gyQn2A;AQoF?Ɂs*izaQcÜ ګCU 59: Nш掄ur ֘pQ4SR#>otFNQR/8F?0CʍeO~o|xYfq6v_k4w'k"4 hY\3 rx*mEW9(-["3ҩQ4V.SBP:wŷV꼰t)QgIB cHrW/jg!S;hBv;RUwjj?c"cr帔)h@ᇌ k]r>Dv^?z|Hvr,TbɘI|]~߻sb?uUgS={[+gDF,^۽H ."8RF8+(M!y&+@xխ<:_=7Ģ|KRJ2 F-Ӎ~4ETT|{&%U8`f`tMd:NrvqCâEO>{x7XBJһ-RGQ4'\r|-^RYt 쑷GgJx]G@bcР T?A?(]]\Uk_//wGh.ydRio8....-//5DRDXOX3j.pXwtdr7RɪC)deh vgoo_eZE%07VkBG%vOJ}@_iVq*G1AoY Jh}ȶ +Yt2o-VMZyo 61dʡs&/-(0)#2 |U.] rcӥ+wU.jBV evYXʡ&# **d aV`r_3;6Ȇ;HAg,]cJ0}_1+W0_zDꭨ-vx,[mj0з!6ȚBJCXwƍ4hѣFl2d5l0`s زe`bx<ė? D{"e%Mk.-ٲr>&]ggw~͎l1ytM4(YدO+j"ȺO^"ΎbS-ͼSx;@qBHn2Krh }=>8b؀/Pw`&}R?S=4{?' »:Wk::c,37:by,45_&4I(l~qJzYk]*SՔl_P%AI@t~f=I{%rƬ4NH/Qa8NV_[LL+ ɖ"gRT&)4O~dCTpi4A.x*E,gxyÞvbXԑJގgI6w?oښ3QF NBxw҈^dr]DJ/iж""!4#lC*7f3OC%U6E ܆PsK/rbT Z/z{)1u>  J8O)6A%&|!G.#V 7ʊ$K%W4 gRjiMi ѓXH 0`0` T(TrՋ߶]M %)6dsJ8\n͸N\*2a|뙒}V޹(3 %7bZ Ѩ WIdņ\'F1WI\).p[~ئ6]]h+Dʛ?o=^w\$,!AUh&ODK>@0Sw`$^cI1X1N@דT,HTPP+3ɋ 2r[p̾Tglsꝃ{|:de iT"Jޘ3=U$=ykּ4q$B(pǨ}*GH㲋?yI_o7bvo)wganQŻYIFDdSgQƅj݉@/Q47(()hݣU%n2bdxsEpN,'kn^>j8 }FW)W>7_XXmeh[I+ER<"Cup|@. QD=g`8JJU͒”<b2AdH TߪhŏSq,[ﯫ\),DWaCm87/Չp]Ɔ{c[juw5A݃UT1HqzEdd $7UΈa?F4j<昅.\rիVbՋ[jDg)04{.=Q@nool֗w^ ,BVi9%a4&u:7&tgVJ>/1OC\rX u %vnv22,@U:<ՙBK+ef]J] kG;p9h'?{jVp'Fp9@1u>.,s=:%p#P8[!^rRUi KRnC]ne.fޘ- $\˯ MÕ*,11:3hZcS?_™.|FX6CC0p\\qDB˗ Z*RJŋ%/7J \/T$O:,LKjb/n٫vÃSzU&wD,MhbgԋI| pR;r`F.USnh\/oq®uybІ*CɞT`7İ:>WxU43IVl4CTyͨ+HC0[(aF1Y|144hѣF4hѣFMrKX\ɋ6MGj6۫;5߈½; ֏ }2֍].,lVꄈ+يw{-oaۼ/U&tgW͘sD ,F_kt` [ZlM\HS͓DjH-$},WKeS4Ph-Y?Q-_}(^Df"Ҝo0 ._Ρh@-VUD iS0yʿԔtX@&;&葅06J۝՟1}|œd smn5:y뇝^=5G$ ܻϽȭokޯݩ[5& ͇Âec#mr0^!p_ jժƭZjѣE4TRK4.`͋&lZC1 RoN1֓.F"_WgwGAxzz>}9ȅtFS*e1 6SHVe72l?a `h yȪM= ;Ob0[C_ ؙX7NCv{p ݺ=%N[pQa=☽;O3?A~n( Lwx3dX`v8p )lY}(=̘nӾseƪeT!GQ&U7BvVj I16=,XbĔX<@@@mBV r^.>zK6*ՌbYai`B]:qlC[B*b@U!i6{F,<@1!lDZ;FKES0`(oJ`#wHSxڊx|"DO*51>=O)"HNڿGsER?}/O5_<p`( 0N%`/@q~PVD`%=h#[|?OkÒiń8z,XbR V+YUԶO?&Q=-ch/GO-Ny` 'xP*F@>]hrݗ?YUA^3(__:J䄍N=w:_H&?个~E9qUb k4}B ;@ӦTFqC}@\f%nC;외e /uzBHPOOD|epԒ`Bi.!5+dmdupif'>Pm_CWxC~tpB5Vo wٲMG|9)Xo:R?a"U)AFA U"ǥ:"J?M]3yl,?'XQk]wlۜ0[uYN"Nv۷nnݻv۷nݻ}׵Vf,jn^+B1Ƚ;C¯w88XVwWlJ4*Y{:UT6P."ɕ%$ !;.M*duKp)RîFt~%C#Awd_FNPWIa XX (T754,'pN;hO]rYUNkf+6(Zl2¼nƗqas_yb]mnI7t=LU n{ \4+h~3-.b)oкM*cM[P>;iyvbygڞ33'f8g8.?C] c,-Y1hͣvPAsK t$U\2"-gc႖`5>Nj>%WwAfq'bR $k{02X&d6*cǰ̽Ȣh&j~X rsL$wa57YRU*j)Ug y$0l+蹅"Mٿji^+B)R ^!Vwv,mtA#j,=6lEܘeQ\S09h@HOE.uqRJP??_QWt

` ׯ)hoC={Nî;jdgr9i-TQESejXW$z&)Y٤ןM  .RSe*=*mw,coRZ[U PqPF(Umd\z`)9{Ɯ<+"jEuks-,4%w_کMmv婣T;)\,VVˈKioi9cO :_EVu i؝@\tڛQ]@HOHhhhhhhIl ~aͤZMQFz)0/1뮻oy c  H?|mf7n|ܙϿ$/&8#`׃BPOC9.Aw]{;&3MMj b?Ě*vɃj>_#oZ+(f@@`!1\ z&-goUwQx&La(4'/Yjp$r,T_EmTM@ǵ ͓$ߴM&I귾{{Co___ߘ0` DqH@x8p-rH@,E C :v^ J8⍙&ja0 H(Nr,}@qhhVKƒng48/mF fIw<:q9o'R$:D!$b`x[c@ ?V%9FbP D|xŀ$&Mhj虪($Ԫa!١j`*XjTM_}ڿcqc峷gDM!oԹQ@* Y'"UT)eeeeee>ڶv&R 0d ;*FMoZm~IVX\1Fp=ֿ/fWNɓG])58ѐ( _IB\L@T!PI`Y$P,fMwPP%% H *-ŭsջ{?817U7& ;_{UOlH|\5BCO F sURilUNiuUZm%USUR2l$$$%PM7Mj9>ooOmZ2!"f5D'f DBC@ڙ%!zXI6 4u^L 8j$Ԕiiiiiii`d)iiiiaiiTiL0`  UlDo:Z0a0/>OGG}n{woya2$Y>ZBN$Xd)![}xŭo^ d|mR,ØVS0C\a Bt%Jإ2lDȌ ya{ 0!uCC40;pt5>z2"Gc$nrscY[Z#&/\ܽFjGwhw`OC dh|$,}GzܘJI[/٩t$>`m{he'X|)q6ð u}$rjnJEMͅ53u550__A____7) ܼ@6@" MJr_O&IJ}jL*5,uN*dXE"rl: Ca8go;  `'4L$IC$^ MkǰjW_Ŀ~ 0`ŁcƮo Ȑ. QN:$,i̳f%FI} w),(y͒N! KH`HCa;RH)rBH0a II}C9 bA$'ۆ  pV"5$c }v ]:n tۖo %$BqpdR _ƈ"-Eq_h-( O"]>$EmjHoUTQc኏KtGI!IW'2,$m,h x֢-Pq16vFy9EhNO:}>O~OO?'Y%DK_oZZ֮X(ƶ9}Mo~*7(|$ʼP5a:V?dܨAI!2`{% (ojQ&8e@٘Lt,7 %.dDI,ͳ0C-jyo{~7].%U?Gx?Cg0 ># h_a\"gLz|ڳ(4u ׌ȂQ4с H fm6+۸O; < TkXңSӶ(Ӻ^``E԰.8 8D8Ӷ|WOnTI), Y t0d#hT% \1jjjif1111q1,111!!1 0`q=j(CZ[P9 %5ǣ;q/b&`|2C!s Gl׸@*,H7P&ЄpP31e$0,BRCUcj,)Ţ])!M!*L$ ,!K :\?bL&QV3  AWlvB$P 2]"'QR`O%jj()_;HtRQV%nfSdifk^|o5]Ni^2dG.C5aPx6Ow˪9qQ搯uhsfxk;5GWR'yl~X/7Qpk˧M] ZϫWts;'Kr:}Ug/Y|:V/%[kZ5Ũm"TnM߻U2$7 I9P֊' oBs={+]L#~Grf>_wu`{mAט 1߭eqedy+~;gW<ޣwf觧B\r40x<Y?ƸcF+< FQDžR00Ӛѭeg~ nLyg&+NvWZ~9\>S>НfXlq3y[D֟iG%Ԟko+H-qc?h9~%mO?O\ueiQyJ{wÊM]wBcknw~BQhRq=K k~}yi-ěft␣Vt>].n[WkmL1 = 'y:/TT遉Zl9nF^ܺ>:4dS3w3W7ͪ|8W>ΛdR&6NV{E0s dYgcNóij74JPz}'w`, +al/gʻ-wN:[тjcEWs[1!qvnnFݻvݸ#7>>~JWNJBC[5CS/q[f?mTgCisoƧAӎa6ho1} ˊ&4 }}53Ŀ[yz[P7F&-UurS_[ݗdsiwF--4cd1h[DㆼʛDl-:߽?cԻ+-s"Dq=gE+B0!{ɼ^Ҷ]m8L0u'.7#sTs5?/Y}8~9TnduЪaoE[wߝha.a|'Jۙz@Y$npY q8wgiog9 J~xfԎ k6]bRPEHhD97UIrx1GiFG8Zqhhjb {8/f*kG#ED }.nU{>N㯕}1tD) 638_B͊fN-] u2}QǭDYxfBIh/o?:Oﲆ(!0Z̈́57u?Y~eWcg>q7KW4~6j#$׷n K/!c*(~^瘺_sQ[X>ih/d^ec?G'/'qM'\ct.kjN#MA蜩6~TK!:p+N|hY5'ux\Huf;ehEAzvyUFˇbZZPfx93>-U|GÖeMPpr??R 78Wun O&j_}s\6xнa){o+;V%RSY%e.1/vf+y('hmlc[8o>gIQ5ICʮrg5rs  C##ux dv&}s{J͂G\t(?y>b0bZnjF[ĜEq8>k?'ϤME/] HV?]̢mγ{jv4ɏf[cͪ`^[27NY DH&Lݏͺ?}<{(|=rko{[]yu|b L軥wƊש4훲O_zş{Ir]vyEޗͫѝU%-Y?lZoXFW$+7].섧;uU/o[u1ddem#'d W&uơUljb͢gܴ~ \EUW{ dm!3]6F!׸nxz^ZNP]3Sy3125峅Go[mٗg(_tIr,w^.1] quPSt4`vZܯsij}茨iW{)AxZ4B;ւΧ㫛%#y#헐nైMlyGrάѻ/E|#RPB28) k"اYhw`q\Y% |BAEòI1h&G[ucS73Of-s/m.N/&<~dxՂ7Ch\NU@Axe53TRBkl~ㅺshOW D'H,!vj =! FaTS&$ @{&Wq7Q2@R? $ _.K$,RI22Ogw~?s/>{iǽ ; J!Fz=%b?n>.ŏ<`7qA94[Lh,'e{ < %IВ*Y"d+P}6~?m㻢KwJV 2HfWز(zdY Blgb *)琭Wi/ CH[)L_։BEj(=Ŧj)01cu5%3СŤGU^%)$zk@A3ܤ-)PK#kab b(@sO$ZY~d@H%J9Z)XG|u`WP 1N u %l=>+/q5gI]n*}emQʤ4lsztvдAL!߻ZI BqYgTmEnM9t۩ѵ$xmG9d<4LsKKpWlpzk{'*]D*34B켟snu B>Qov8zԳ_KĻ1p4ER~tp=9A|u'v',nl=XAm^F+>Gmt@` 7^Ck"1 (^ѿj Zm R>yOqIbYWN )Vu]K{8;$%ЫedO[FdBqedx|HǀaU.G;1b{X%ಯ5Oq;)Ǣ߽~l}XWG 2N'KA1|g=n073&\tԞrl9=Juަmqʼ NoYڙpou㡵.9k|ћ$Qǚ’hz 4FYNbȭ,*lf5ڹdoE [x5`Q6$阏!$TmCtˉO2?2Ƅ{Qݥ9[zV ,MM8PXPİ9~[Lٮ\nꭹ*H/)^͹3/^m,go ព=cRhϺ$szmx,ܾ~IF2@>ﶹ,;'?E>!~ gnޭ+g' ]X)9Pv(^cnZ2U2{Oj O~ 蟂zq^ĴzXkPe?s?OOZ[?Dz̗!}M.hP:֎Fn5)ݴ$gŖyP)/}OJ.GY!:#t0wBAWs6Ҕ̷:<% #rs].ps,sS[?p>M2[ZccȴnmF}suɟ Mw%a5_~S!>Jgmn7o!nٻ<ľs&?nsrQgea27@Ս ?7uvѯ1yS[߄V+o4;5#/ZMw{ww7C!ؼNxJP}hd ۸n{\."yI|_[Z]GS>^9zɬ_nZa22XN ;*\Vd&><&J+s{ùDxQ}4St&wHSYCT6EϢD{y-6;V~I>ZEwFs17xo Ď3gD] IՃ}ęY-z3U4U>sPv6o.X/lȒp>_6j[scѻCJ-2Tqw)>\|9OVJFlr}? -jOҞMʼ"wfS.6_ "zbjߞr!r~<]#Oeݨ$m<.C푷$QEFJHkt ~|LnSwPV{ wx1jo|+fݮVi3R}<,{O\> tz):r q(MƷ[r<ۏto֪u2@jTy_IdžiW>y|Q("rx݆A׍<=yN#2W֣ydf !޾gqu;~*,q 1"CJfh%UԒU$/U5nSbAA7S*˹wCpcW nYSy! jg(3: F|f_u_=l_^όnZ+{a1"RxEp,h/x_gUږ=l k-Oi9|?,k D*_=N&Λֽh ݠi]nkcYcsxja9קivqf˟nѰRGMEmzYSy?wr|ui7aw/wv'k=mipcwֹmۛKwcgQzj($)g.!C8b]xf>)Ǚt~>T~$wl?2/Ⱦce k%jlTl~Ugv!g,5բ뜨.4ٟ"e`ǂRL_R]p%+j}3 ၃A3xٵMtw#ϫNmO&} 0)\u~$mėȭIGzpsXǥhn;Fbş";vW^Ҥ?ŽΟ!wY>[>Q7#3'<%^֏6;&Ǝ}w M&=/!ZjWns.ȸ7 onh#H|pehy7RZb|q]'Xޭ96V"3c)hh[o9X`ݭ*&(n__Ӕ!14S&ZN2|KR:-=cR[iw#k4A&u*MbWϐ}O(p![%+y6[-EnͩeoAErTHcwq|{vP{L;ζkN[_cF'wZ}^?0ɰMVb~Uί۽އdu8x8 %/Ⱦ_FQpxP}]Z=!=ٯ; GQVccx|WyRV޴hnG 3y?5:h)Z?) <-=t8+x%&|jw=vS/MW8}̟r|+q8U4qAbu$6 ;#Ͷ;9\8g?ͭ3u}Uh[y*Gu?VIC_/TBRGmTY^7? JLGw x>ٱ"5qV[阬~Xd/5yg:d4\DK}wZ#/Glſ?ce=*;uZ&J1?m8yPf}| ǎi'q:0b/>7wJzFn# g#c?Ho[μT7kS)u'_}g[Em gmQFёSi#m8J0=ΊG"4kqsDYVy=8(6~ۊ\PdM׾GqigNdwQE>d.#-|#~x V}J\9{p: HZrڅz Mi&Z ?_fK{dHMJl4jO}{bPjXZ|O>+ixU[eGwI<Õ ɉ>S3 VIOz`sh_] wNmw$^aD/gArcj.wr/ڿSB|̄e^Y5V/}<19K? &Kf`;~?"^G%g HyJ{, [/wD~-.]|czm;=CIs$}in7} ?{\OQwkW' \?uS쑬jO¾kih Ld??wUA*q79_<)^iҨ+4pu?KFV^Oaͷ1WjL%5n9fXy_O-pvy,K$:l9U_NN? Eվw{-  ~'pnh)azҴN%4|3XܼrXO't(]iS|Wrϖ [|5yOM |xr_:kΪ1Vn+9TE#֫勴PZtOuw=w5~?c4_ oE!q0'$BI~#  'Iu"I#Ձ< q@Jd@ NT% q2H | c&3# $a hIĠCbE(f(10H"  FT((cHd! FM,$ !3a M!)@ t, *$ @@!%@EyjB b6#(vLw, ߇b.Nap:^8`=0'yy#۟{;zu0BP!1z!TжY P8bCA-탐-947L `0tR;A\Y z !jA@[n{B>_@(}|,E8\!zzBwq3$ z{׋&  z[}o;.f_poq}ofW!8@ z<\ť~x{w^z^z^z^w\[et:Ct:C3@;$?(@uV]^!,Q5Ψu6?7y M޸K[k܎cn]J|MovZDB^`l\fqXeiaQ}%guC;9ʦG)~7 ["|G' 5mڬ}u sf@fjzk7qb%޳wߦH=~zglabb{<ȗVÜؚliHH0X 2@$@@!P"BBbI O z?GWys|ݰ@;E2Bl$(eBHتj)!f&8ܱC tmj<%˄ ''Ld25:'Q)Hp$ pLs$].o/tg/*2WVEQa1`[1tBl3 j()$P+,sRӉfeQQFhRJRRS(Wk! MI$gPOwrS)5lwW>ƹvsz=y3V}0Pd6O1bXM,xf l6e2RSmES WwW=ּZkƭFiX0JMFiAfTy\tQxwu~k˫Jwv9Mm.6@!1PBQ,!U Lɗz,)x,BPRPh@@L2cS(k.dT &\2SL?Vo;Jԥz]jҹ]ڲsw&;JJ ̱da Lg.@g3!@h)E%IIL ֩fY4/<^yMeaTe ,V$4$$( 3 LAG$M$!T!fLI!2h_@)) )Fx) 4`-KAkPZ-yYX3,3A($$ 6卍Fk^ƫѲmQkF6ZKrּV6j5k5m@^fmmTQmFʲU\ձmڃkklkhƪ-[QѵEXc[A,kcZ6ѣ[k\F-j嫖[EhƵ\梃n[shmX5׋ZE5[ysZՊEF2hѶQ66Z4EQkck&XѶ+QQ5^"-zUn[j6sVrɊQ ԛPRjۚZ6بۖͶ*Ƣ+ bP@NbUQn_|:YJHb/:冢3﷿yGB@W?'Cjd(BI:7 #WPgH1AHERD`H ,"1;I6c@p2]uٳ6y"sRsGl9̜>yl>,:I~y~<zw1C+ (<\\! 4`D4:@p!q(8!xK "!hUAP*w==?Qz~IO|bpNh~ ;c@}`5ǹ؁!j+QZ*AZ-RE^ 12ABE$HQűlkEd…$Y6`1qQQ6XDzOy7+5erEId5B|/wW\ȏDO ~OwOs'bw+ƟO߻)(ۨc*aZ,k뮽rm9#89?$;ӑ44eYR) 6DGȈy^{{{u܌㖈jO+*˨Ta>/;\2xH+k il%MI!"DK*Y U06eBfDDDDFI$Ik[[_DA$%ZDI$I$&m&'yg-3?~ S:ɢVe6+^B@t$ [,$9VH#tLHd G k=,ۯ[0vQ>N}'0XjxqL8_Lv;!}Cx?A{GxO;T<Lxy|矰>?~}u8~nF\! ]Wuh&$OݚV@u OCe!>dg mr~j;&Hml;Sm$4&$!$;P?o?D?@ɫ_?ku|\ۃ+}{{; r2 /m!n8'bl1MNdEM]eob _ M y?yҘ_ȩX[;KkUW͛q8čvz^o!_|Y2QACWFA2D{]Aw|S U-nSzFX\}a-6l޷R֥s{E!oOwM䦗Y?>u%`21j2DZZv| ңQVSû.qTl||][ty!7y[0x ` p@}xoحh++,,邜 AHTT+VEb+) ??A S>@s\~ ~#m wCnqauC`;~BtݮuErC@៊xGx~'i86L/CI>/?mw=/3kҮwng($>  |Aݐ䓲7? oP&iI;MPC&@7D7C{!7 p2D I O")^KM/W' E*(R@=[Bbc'uA;2ȤjnXn5zs^/'u[btLH1! JTZ*^w;ܿ޼2A1}>U׭"ihϟܜq7σtzJ7W?_S\%%Q$U^UZU]}7w\;u"%SyTS*ªSjozpWW ^׵"1<Z%0sSi8H0S"#x6.Rѕjv lP Fjִ`Y,YTUSa0ž8#HewJott;(;smcI#X0:!lC,ᰄl T I03DPS1__ Y?FU0?<[~Du!~=gxGxG<ρO{i'};s<dx=gx{'x>! }C|<<p}?ς}wuCCvOJQzGn1ﻵ'd/ }qum0, ÿmO!6a;IОLoy 7' v;&|y[~-ʪz=F>Ɓ'{>^چʚwtU z[)Kq[(fHoK?y|G'(IRVİ2BP!æ'qM,>|e Ji?nBգ7tƖ/iP$I `nAFTt+2;jG!.& /pfiV;Jdt(Z0N JagG%i(%"`'C6@BN3h9M*UG;rťitНv:Ov+n>O}H@uHx-$$o@^G񁌄o'=7Nca ~L%T%\6a1,0,4#b "BkRi1?~ A 78~?~h켒DH7S-h1Z~A 󁇊w. l;$Ig1q.1q1ןH%rV650cckx$JSrɫ@@Ƅ2"B!ɲ힩Q?h/p_?&jHI60,TKUBl#ubeGAzW,6V t6vk,",,, XSXXXMXBƤ J؃ 7`82:%6*!qB7Lmu/z瀄 @e#hH^"7TOMQ$${Zml[mbU\ymUص_=;P=S )$dlUUحշjjƣFW3g%~S:d~mD%J4 {d$I$ջ6շ5UEUQUTI$a JBBI﹏oN{křz.w5A€>/r[?P'ޙ !%A;6B(4QQQ,QQU\B^\$DEED*mITIT'Zԉh ԪОpqQmӿ?-Y^b/3k$h5q L#+]kx!0t6EnX7je6I=]ߜ뼏Ez뷮GFEn4hEEECBJP}W0&@8$"s>K8ШܒF|F)Y<9L //~>o ses {Wܪx /D ,#,C@[P&z`2 HN`_zڼx d_=~gHr\5 DBB|$$I)H{wO?Va}㶞$I !g Cڬ5aÈ!B ɋ˛G>E/m#h݌k{D-GŶݹl%=] '1/K j/t0l7+I q9 %֚mmTڵZjm-VZVZ5VMT[J-֕cZo%FiJzZZ#ku]mXy-_8nzV8z7B|Y{GyS9,ִ>`Y`b1 .vf3-jaokp{oEEc&cCv˯E 0XzCnPUbоA^EHJtpi'k ڃ1=ޡetL#pX,aF ؀Xk}GMG}wܚ@ٹ+rȕC&zm/zO >$ ~&!Fd-+[`IA)mOAmDH7Jӭ]%?j>ҳQ->VǛ {W ǾVU^^P dG.ovN2U=[ bGzQ8Au֦}MH mMMMMFZB*@~M!S~{oGf\?38m y:{yn7Z{Ze. kfز,uI~f;.eM ٶ88ݲ%'Jl( (r02 !%KB,Qfu%KU_ˏָ3 oџ^&*sla LY d@P#\>΋Ewf{!lŴ>WI4P1ٗr}wj`!H@Z$~;@O#߅;$!4?5LqZi>AB&PP L&SA Q;XQuB=' x@[hh]}`;ὲ`GA0~@`1õ"b'aN|'>}!O~#'941z@ ! "O@&'$<@$&rOMQ$?$@{$&n|k5# Bp뢏vQhQ *R2Rrm9w?ij+HZjs&*j*+kpP+;KZi{< /C#$V/37;?kK5IQ7uw}~xY|/y|o;]>Wot;={.{p<A&$I$I$ĒI$I$I:fgrfffff~$I$I'$$I$I$>wwwwwwwwww{Dxو;vfffffffn{5[9xwwwwww3}Pϻ3333333333378qrrrrrrrrrrrrrrrrrrrrrs}}o}o}kv]kv}2rrrrrrrrrrrrYrrrrrrrrrrrrrrrr99?)Ζo7;4?/?Z_======;-========9}===============?oק^UUUUUUUWUUԪj犪vTوsTswwwwߜXٙffffffյkZֵkZֵٙ oN:tӧN:tӧO>ukZֵkZֵn}vfff}ffffffjfffffffff$II$y绻$I$Ih"9#܈I$I$ĒO׈""I$I$y]ffffffff5wwwww~s333333333sٮY߲w{DDDDDDDDDswwwwwwwwwww|=Ȉwwwwwwww<${$I$tzY$IvI$KI$I$rI$bI$I%>wwwwwwwwww|""";1f""O}>O_O}>O}>~?oooooooooooooooooooowkOzg}os8u`w;]]]]]]]]]]]]]][۫ήq?zׯ_;;;;?}_Czɯ^z׭|}_UUVDDDGwwwwwwwwww|b""""""#DDG͋o4 wwww5kb""#㻻+.I$I$I$DDDDDDsDDDE$I$I$I$I/I$$I$~"I$^fffffffff~I$I$I^oUUUUuUUUU_k$I$KJI$3333333333I$I$I$gL)I$I$Iz%yI$I$I$3333?33333Q$I$I>&$I$I$$I$I$M3?2fgLI$I$K_DI$I$DI$I$rI$$I?*""""""""#.N]$I$I$_C: vffffffffffo<[ZֵkZַ൭k\kpppppPPPPPPPPPPPPPF 0` 0`BUHՅv}[SSSSSSSSSSSSSSSSSSRjjjjjnnnmmk}oÅVxHx<oGx<S=OS=OS~O~aaaa 0n<<<<<<<<<<<<z>ӯ{{{ooooo~ ϟ>|ϟ?~wݼlf~~~yn_/u:NSUVt].Kt].K7Kt].Gz=Gv;=oܪL{333{̈́UUYakHf  -kdf60Ű`df `0[3336ٙf 36 3`fl0_`30k fffffՃ3337ڝfffٙ;͙S ͙;""""#ww-DDDDD`["""""0www-򈈈;"""#www|x;͙3333333ffffvfZ``f .] 3`0f3kl0 l̀ l̀0[336ٙfffٙ3ٛ3ٛ363vfl ٙ0`0 0@3a0 3ə03`d̀3`&f&fdͰ..̙f3333333ylͰeٙ&fffffض@lyVf@6-kZUkZֵm:|:tӧNVkZֵӧN:tk[ :tӧӧN:tֵ:tӧN:tӧ+ZiӧN:rkZiӧӧN:t齭kZiӧN>V:t{ZֵӧӧN:tӦkfӧNֵl-kZֵpakZֵkZֵͅkZֵk\UkZֵl-kZֵk\p0kZ333336l͙vffffl̀3333ffffff 0 Zֵkfֵp0k\ak0apͅkZָZַkZ -kZl@ 333ff33336ffl.ٙffffl 0l ə0&fflLaLfd̀f&fffl2fff33`32fffl`333` vfffl`33363ٙavffff333``3`ʵkf\Zַp [ʵp ZkUkZ3akZֵp`akZֵfֵkZ`Zֵֵfٙ].f]f]0ffffl. ]ٙ]3 333`.3 33`3360] vffl`33`3ٙfffl`3336`ffff] 0ffffflf̀vfffffl0 333363vffffff 33333336f3333333365ٙ37wwwwwwwwox˼DDDDD`;#4DDFx;ww|363ɛ3d 2fl?7|ϟ>ﱽo_{{{{{{{{{{{{{okw{w{߽w{w{w\w-4hѣF4}m4hѣ$BUttlllll\\\\\^e$qw;qn7q=`iV^0 %.?NKt].Hy٦#[sK+# 5F2$#.U+`S}-/1#ϔ|6|睁>Ӝ>Ϩ}Y\䆐rC.z.0t08 @?}Cϔ|䟜v~lGyN|~CCp}Et>pyC8ߵtܵx~sO¸Ot\oo~yRB;L;e;;;5{k$ tC@ű؉&7PCxj Hx[dI?IsS/oBa+cTUVX>Ɩ ub%;vu}ٓӈy74 O~O!lO8yϝ˘HJR@%pGXHIAA ! Q!  I`T(yA/} ._LQun8B۲_@<A|>z0;AsybA}@H5C@t;O?Kw.%JGj?ֶ)pPcw&! $قm=~W]-l&%T\<Оp'3(sSp':s>y }`}`o/l W[܄aоa0|x}*~8.PV(} ߠ`6>?|CbZ=?"O OzO'Ɂn.o^p@<8yp9}éÜ ˹bP=}'}^ٚ-=/ѱDNm0@O ?&:PT;Ma$!ڄērA JG8(6w`jn9k/'$%%BX3?[~KV\YD>.@},%ͽAvղ0~]fiep۟A勹ElYPK)r?~;A_;u}oG%qppؑ)fٷNQx#0w$@4( My|߁/ <j\]]6cv>dLRH5`;d"4FIcR`X c#6q2oOmVLc]u1YEk 0:GSPm\ g%M[1U딴kp\J3/o*}a9ylbVgƮjdHl<,0U" ]T3ʧr# 7ٟ禦}ѐ< }kڼn0I|xӬHN 6 `WdO$y @`N'|n4>bw{3+Ģ22$ 3/IUlc$^$Ou6V~i9ƯP\ye p[EWcሐ` -rˢ&*3KV'GBɨL/#61ǺbhuۇCywxw= 6ôI|;uOB÷!CpM9ET`G/BSW6ҡ5ij VmбTJ En߸w153K `*] 5 SwSmf;]fz*z**dWQAz/wy/9n]s4 }CUUu~}D9P3KTRzTb{|}%5_߫{}h-XJ BH`''y{ 7.\&d77q77f6$ЙG5n?s*hDZ{DZ+b*ȝ{|}'ruuuui}"< ̜t0M l;{sN—e3yUҟ<1Ά@Ɉqd 婮.2⮭+eC:7+rGSmlᔴ5G"\VLIx?i-XyDj Jq.V|ܬ* !.ݛ׷7v%r̯cV6͐& -S*ZqKkr%?&#G7}7Kt x)^Ya.>Fu0r7i䐒gmE q0! L;`+a2۹(ƕUVW%ZSc ٰ"؟/cݶm..!IAϫ٠(~;ě [y& #tZ΍;gRVU\ E4vu4dl"YW-!mY*IgYiZoSSSo9JMRkko_g@+`t=.jɟ.7^hmw6%Je_ұ5ёa4S(ʋJj fRR3D,8Ķ|oiTi^-)J,"4tR\tN, XC]ն>ߩ  Kx^cgڟ>_ON-'XWکXa v 0 0Uz88Kpf9ò3R Az %aEn(Z61LraZu1TTbzZ3Qݩoey6E-YM韁Y)VTnlrE1#kzZ)G\og$6xCHu)1rX*ʚjU,*&y&y:>c*x OK~{~  ذs"bOaww?gX&0fN+m-Il]qtzzm9COv ri=5fC`& UB 4v pGm h,3evZ즑P_hmNmmmmmmmU+imc-U-mRN0!eMSJ76THZ&;S/DBՉ12Q'M-dVcՕx;Pc̱vQ#u-e):de񳤽d1L]3[D5Hv1R}8VZ7si,LխjqкMM'mc?\%*exm%~Қw?_K* t@!B<ނ"Ǯ̒ 퀀Zo)gS.`r1n@ D3 `2cƲx\q2Vlhqx~N/*ƓgӳPT$`H./gaa`END$aaa>`mP.G=V\6Oced q溟IlΕQeUE. pjIa !BTzQt]Wjuú*ʪ::RIkU*XpgS<ɖUV)y>N HƊY *ZNJ$OՉ &KE؁adK3LoC |hS-Qv/S=xMhmwljo鉉t!T&5Ⴘb7AcϙOݒvO{ǫߵQEQYe d͓Aqԃ3+TKڌF^u7nlx!l+Q]sϳ|lÙRnj&0`bi3J]&SǶ1'~_7 ~_smNev`͵Fbej"N&x^6nTÃgңG1(cMLŠ# 142a,׫4£=)ͣ*3:i&flv GډF:R[K%87i.P%Y;3բ|˽mdP!Ƴ|]M -ξtVs=)n*#M߶Yš{8Mb^ k~m }ߧ5Xo文@pKi3_kM;;kTECSS?.Ik)-Ԏ..+1d*UƟ#;nZ/mciHʏbakzewRjUʼ/R6-=Ǥ9># ##"##evj/####""M'"###"$5Q tmC$0\ZhέF2u)w*8WPxE30f*ݙ\=M/n75 MRXK&j`s}X33K&RT}mm3)itI*aX١K~ꑴ`f&t/@ 0!c1 DH`Hw&3KKo͏BݑV?k牌KX8BcnUXkr/ 1QoYFkWWWVWVWVWWWVzWV nrOj~7`&wJ7ہ6 9Pbg)I$$հRYLM>)']t|]zj#*u 5 :j)"B[ tk# 1QtKD0f7q]NQ $pY*C`xDYfKDϥe`[ZPʵz+#ʶuV;*BVai\ zPjhT±u-peJF7QXU[iXA\;Tei_Pc1j0sew^?V.0<piGT-ݚ>:C0H 9̒نt1R"]ZZ ]]]]]]]Y[Z[[#CZ&$%/#Z1 dbUUUUU$1򼷖;V[^3y7M4M4ĞM"(yk.} T d6u2C M88F,MyiLx^B>-ٲ%4-B<,=X39N]cTbSXTA|wFhhݗf؉ A!ix̦J^ZBQudg {q`L8! `JjuO4~eZyO:毅oJ88@BqXRJBY J|Snp\ppVZ0`vX$p\cj\AMYɫQnHԙ[#:!E$0 ©%4yI^iRu)Q {$3Fc62U5uȒuѕЊU5C; NVԛk;b5bBgL012Ɏ,{ږFD*U20ީʬ"be4଴Jmdk z8&MۡJ N+S3)Y2ۍpnިn*a+"]FyNtq+laԣ@%SKS=XG/:8$M8*ȺAGn?{Ööƛ;v(˺-aVLn=N:x=?>W̪?HS މ \5L2dɓ-fL2dɓ0 E̙ e׍Yx}r|tf݇e[L 4ġ8[[E{E=2H|/Gv?{{G&語U׍LNNynYuSSSRSRRRRRRR)8888뮺^z>@p!Wnݻv~3z^384B"#N:F@qmnmmmmێ8@"";"۷nݵbf8Kׯ^xFDDEVYeDDy   Gu]uayyyyf͛6gDF(!1B۷n@"""VYeY4hѣG[mظ888㎺뮯;QEQX!4s.""",,ѣF4K`|BmFqqqqy]4"4 N8QE[b@QEIM)KUU[qq  8 *s*˗.\rr888㇌3A4(g-.\rˑ]"ıqqq$ S )")s˗.\r܄Y,,,@ V8)GdM4M4;ieǏyxDDu cDG=Y(69ݏlٞyu]uڳf͛>|۷nݳ) ˓&Dd~6lׯ^b"#dryt'GjB"".]u\qmokκ뮼=QEI@YeYf۷nt"";B"/#!,<κ8Eyٳf͛4QEP CQDB)JRRmv۴DDDDDhs\ ۷  QAeKf͛6 B"""38Yj6 .뮺뮲02έZ` i>nnnnnnm:DGpݢ"#4M04! d,ٳfg6lٳfy]us ((:DDryl 1bÅXbńuڈ""b"3Yr@[&L2diYeZ&L2dɓ.\rbz!A)JR*0'.\E׭٢BJR)TQFWc۷n"B!(- M4M4I$R׿~1(;EQE !BÄxp.8 񈈈&˗.\_}}~mɓ&Fjlr˗.\\mՄDDFn8pÇ,L4M4I(R""""""<8p߿~!*B((Į*I$I$,"";88=r@@ V8@o,KYe&L2AAAC@ׯe2&Lɒlr˗.\rvpÇp!SB߽~0`_N:tYu,铋 ]vۗUzϾ}:tӧN(G;/^zׯs^y}/ӧN:v۷lqt .ݻv۷nݻu}}}ߋ۷n"#i}_ 8 ~߿nQE\DDG6:e .\r˗.>۷nݸDD\}}_ 4p~ٿ~QEQEDD]ӧN|ϟ>|,џ>|ϟ>|yCf͚/B#yRJM4M4M4L<7E>yyyTTiiiviqO @\<<<󂪕4*M4M4M4<#c1ݫv2o@ aÇ8p˗.Zja# (|@ Czۚzٳf͛6eL@Ä"97nݺ"< "6nݽz3 ,)xǏ/I$qxDD`B8Ǐ}N.8ǏUbaB5{VٞyyuWu]uyfٳf͐TvlUUJR(*(+.z((Q@B8@(c)J*R)UV]6l(y@\UT((iEQE)eիP"#q!T)JUQR)J4#DDDGyuEC)JR()JRf0CauE@p˗.\r뢊((2[[[[[[Z`@@ ɕwlrgڬlQVmI;mVSvRFQTBC J61<:Jimk4)rV {,[͹0¦rfZU1b⡍7Sed~w*{Kln J2y x?0'}*irV$PU?23ZL-~oxWu[__Oe~cH>̍N9:`]@ %llcQ=֓l>;kL|K`ަa,RfSf8ffJfC)EEf,fes~d7NC/s3I `c IcM-K{lu JejOB6\Y6Z5ښ?F2s,wssss!sqqp+sssmsss6v WT!`bđXdCoLgsJ@EPnbI4!t=I! ѱaO>ǶaӉ'k x=P7=J_v @D#oiQn}?UQ{趡\72VG6p o z!F(&$6/n| E2,/bi `1!L#}5֣ U4Fttr6ʞn.$,D 8:Lԍ&>bOQAqKn1@L1&$3\7zNy+63loɎI4K-b|gͬL149w#Z0Ƿ cySMI~&\M*SC/xԔ \RdVȱ&@1m$0b 10bdэq ?0`*1]Mh>~12|N"O1۸;ǝ=yU*6UA|ͅ',YbK,XbrK-!HI2Z fŒTa6SlZsITxs 41iD.7$LPMw5E(u=M$_4*CCV!.1UCEo,tu,L1Ph]FT; `.%OWnR ^ï۲Vi#3,;,=i>U[rm!\C'C~1]55555555555556ޚ% :&ڞLƪK^6Qg֒/c،bht4, t~;Jg7o=OS=OS~ Km.^Rte.]Zrӟ˗ITY VP m{% Pt˩ݕkZq/MM-O0[e竧IhlZ /iFwꩠi%J1Rlk.%qI'_V`]&}P lض-c0= @AE=; I{w|hO39o}+k^1KwMwiGf=~9I,n< coQP]ZQ P^ `.GFCh5F!D2-|¹rz{coگz?ȭNWQVB[Xlt^~X b`0rZ(O4b]{Oeklw퉈݉ڿؽ_%qF'PZǷZ?cK7_m'{s<~^|>rLcuVZ,-1cI8:RHqpR8p= j9 T,\^GGc-$ OncΩC)ȿuCt 2>gOHP}U60& 䞓:KK^vuȓ+9dѲ_%l)!dsEdiq#L~Sr;m9LOLRL:Jb"bKb^. 02ogq-%KKK}=HwlSeVaQ;}nƧCTy8=<<?υ0Ztdj^'Y}  QF! 7Q{wj;uȣ5xZwi\ozFWې+/iiS9ĆDܱĵ1Q**!uuf)@I46t=]ީn;vm||-oAIS]DXoc=BW8(gxUX7XCxXTҰM4MUUUUU=_9'~iO Eq!K2zɲ"hİ=}0sdϥD.U4~^̎D)Hl0&HZoJ&j @e@Ě[VCoɉΆHb-Y|WN % .7bP {Yk,|knHDI.uu.{ wk6͹7W;7Rdmbwvʋ 1a vVzVeP14SN'֗cPpMd4)7ij^]Yga]7ږr 6TaI%JIF`f>^?v;McbnXR]T{:{Yց=fOyo^O.?]8to۬*Er/@3kv{[[KKj[(kGQvJP("S21kDW涽hh| zm{I@@ ` UNeOvCOCD.^]'s4r\ G:;Zho[孭}9 XmMQ|u8vq{NS>Wqwq7c;XEWԄǐ̜Ԅ{IS`1\bp 4UUUUQUUP'!|O9-y;W;~ُ'%v;uotso&W*NIQ=YkdNx X1i)))))3Yז,IIHuHך  I倱h$+:ۼjܮ8yĞFe L `@ "ADlEEEEAF;Qr}7M6U!gU6o^^#!:;w|+8^wkLŔ.-Oz ѳrM Tvd|eytS6С &yXONQ\lت(])*.[Wԁ\{=IVlB_6n6!TUTUATS-Sª"s P4<5U(qZt04tX:RiꋙZ^u5ːL k^sS=w5 /̺Vo̯~W\}Lk'FU}YZ5YZp{뿏!0}#+r}M { `xASsVrZs99й˹?f߃O鼷|_p@bxqϟ団wkzzw!yVYcnYn.뮺뮺뮺,[sQߜC8Vp 0PSpyzlwHVo9 ȧB6 G30YH,0U-muqcC@MDj  c|FM Kj0<Ƌ[D[ OM+46dvo?nw~yTZ+^?Gsܒ 6}#r_$L y7Hm6Rml{ljhhD&IQKEz*a7=h{7^Ivd*!c@H`@G62A6IȲQw?f:vz_3tuuuwuuuuuUutZ%L"3aU!$ H ;hH8 F+*3wkbgg,V{7dc2zVLB~bȒ0*JfĜ=#cCQ91@<-gL4 #:ޗz񻸂k. ˚ZY;+۩huYT8cH N l7DI$H@YPA&RU̙=2Tq]#y-L5Hi\Ow44I($ى7rс1>{Ɍ 6mKkss}ʎ2~}k۶'uStgCd-l w  I]Qbkw}+R3LZE^>ȘүF h4uȥT,gTdd="Uv=_NxT = {;ۨ.3m`p_詰~7턿^cV*%$ glDoTfOHѣF4hҹFzU4thsڢT[֜W[u'XRkoErbhY/{qeҲHJOu;yw~B7U*ΞdTCD>Ez+~TWeP 7}|"Yrssrussd'%#,4sssr Fzl2JÉ xĖN_ú[b?990sSLUE[{uvl~_hc"19ڱ9l`'[pNڡ Dly l?_ w[znnYGVMzm+:uzq-ZLZZmzqJ^1%H}~o,}ݦ?G]J_eYg,,,ea92~:W3iGN ,HAd2D ,=,fHiPmW~[EXګ5Td$3*U [R7TW6ѵ뺵EmUW*j]jzk\^d<#$*H* މg23$55Z-j+h6zАXABH, aߔB d@Jd(@:BBH(B UD$X@4!Ln11IOA?)MYV;c =6_w'8 $|sݸ D2c }ǀqEwV7{.[t{.{/+64;nim͛c7_{VNi>Ҍj2̋LYx 4 ?3ZC_[VV|r˵ Z %¢IHq/jBa.%f+3ުq{Q`b78FϗT~XߺF’{tSfXRh΂ň&eÀI$4t7M6d c6 m{BTRhו*US" ./ J*H"UD$H?}Wp~wxǻ;wq5 d4a iH%,FYB(bE,XbŒn=GQy^{PpwE7=*z ˰n L8Myx<-YJoR$3D]I3Q "7灰T u8bpe; B w* beCOyn+EŬw۴y7,|wtQ-xsV3՜>:r,pٝ>sS3I 9i\RBC㒌 W=mB&"@Ļb`BH&_C5CCCCCCCBuBCBCCCBCCC!CCCCت+; ñ >jMN'ƭz$6|cT^N1@|P 95$CyY!y .֑+Yw42] H,r*Jg˿}lۑ8U8*:x\H@3grqOdZqKL( m1fXq^\qvظqvV8IJ t#?.g=]//_/?y;|>o2ɬ-UeYc1Uɒ5yw8;u[$۟Ȃ|`w;-}1<ጊ^Nd6XCf;##Vi{?vCz0݉1'|BRV -=3ֱwQR_z:ݝrTojCg$=j5--vSdQQj7I))U~gMwa󦴙R24Cȿ(P$24ñkPϘog[~ș,A3R͒DL dU%d$dddddJd7+f@caKn؆η16%fȬ p 86_n7s\k-V M>%9sQo̩Pʏv_ٯҹuN tf32Ґ)m?E !,,[,N"eܒsp@$“$!ցSfĄ2GUpRgU5*bYi"1:jmpq&Q>I^5s)ZAh.r%-0X bŋ6vT,Mu΂yU X #a*$s}.ZStHb¥JJСm*V>QZJ*VXJ*W%m1:FԠlHd !tk<9t\xȷ-u^ 8jhb6ٳrZrq~|'_1),]>=6Lt E5ȡx,g+NgdfggS'g[gNgv * ]pN7\R혙oAgvNKKK~!2}):YUKb_ a_o~g^XpZXоNm"ᴐX J3qqNnM,5qqpb>6u?i]_`  B=]թO{?xVѳ*뮺W]uYc^Ƹ}A"eˋÉKIxCu.@0~w1i+cWCD@l)DdD:I yX%`^$e}7Qj71Bm.ޱזt7MxHر(INv mPKWLWI%lcm6." (qw7 w7W WP TY1{ppjGEnª,=ɚ2R,#,,>gveS[* "ƄHaA=A$Lάlll* Hm t(cN6,m4xDTec O\05ꢙ`:69/ɸl >tLM6Zu|&bZO<5w,w!V:$!+sm οh$]%6As޸lqV]M[[ZWWVfoka d16Xwc8К!xB"@qr{Vk¹tA!$ s HlrIt1;i1[D·;5;'k\'6Zm_59*'+;r5`Hjb\!@$g&~gYZx*/#L??Jƕ%JJ%MJe%%:--fAyɖ4^_ۥoO<řY6UY0lTY("j&ᔅOy?UEu@ƭ_ʰNTŔX10 5k˹0o &R;fw"XDnPyTg6Ahg6G7?$u" zWgmYuFȩgElu U??c=Ona5m=8876x86  W"i|Rɚhѓ8ALi:ڢ!!!bbL?,8 v $ɛ SHvE[+ˋ& ÍQ\p],1nj@+|?3udμ9+W`Ւ *R_;H`qVC.+?|?&C# 'hhis9w?{CLu~ҽ*\dz'Q8[n݆O细o~ھ+P4dziẼUca]^J~Ԣʰؼƴެrwyz_*R k3--/DVf&yCk9FVBZ26зؖ<Vw[Cb̭ozؽO{r{\Z=O;gZ8cw<[>/`]m=op|MǧQ}05G_^:I$I%X$I$X̤ $I$Ip$I$I$8I֒I"I'I$uI#$NI$[I$nI$$I&$I$tI$I$J333+I$fRI,I^ffffe$ $I^ffRI`I+̤ $I+I`I%y$I$II8I$I$ $tII$I$$$p$II$I8I$tHp$I&$'I$tI$II&$I$J33333+I%yUUUT3337UUUT33333zتUUT3333332I-I^ffe$$I$$N$tI"I'I$$$IMII$p$t$I$I7I$$I'b$$I$ I"I$N$$I8I7I$$$$I$8II$HNI$I$$I$NtI$I$J333333+ffffffffffffUUUUU[S333z885UUUUqj88UUXUUUUUUUT33337ffffe$I`I$JI$I$HII$nGI$II$NI$H $II-$I$[I$$Ka$I$MI%$I7I$II$nI$$II$DI$"I$I$nI"I$II"I$I$$$I$nHѣF4hѣFhѣF4hF4hѣF4hѣFhѣF4hѣFxxxxxxxthѣF4hѣF4hˇ/x<x<e|>|>|>9999999999999999999yyyyyyyyyyyyyyyyyyyy}w{tB^*qqqqqqqqruuuuuuuuuuuuuuuuuuuv]{~O?'YeYeeYe{{~YeYeYeYeYeeYeYeYeYaYeYeYeYeYeXeYeYeYeYeYaYeYeYeYeYe_,,,,,,,,{{b{{}I$[I$WI$I,fffRI$X$I"I$I&$$I$pI"I$I$$I$M$$I$%I$I$MX$II$uI$DI7I,I$&$KI"II$I$HI`I$&$$I$&,I$HIX$I$Dn $I$$I$II8]$I$$p7I$II$.I$HI8nI$$NI$I"I$ I$DI'tI$$N$HI$.I$$I $I$I$7I$DI$MI$I$I$HI$I$$I8tI$I8I7I$II8nI$$$Ka$$nI,II&$I$$MI%I$I$t $DI&%I$I$nX$HI$$I$I$n[ $$I7I-I$I$II$MIl$I$I7$ $I$rI8I$$ $I$E'I$b"" $I&I$I$I1rI8I$I7$IMI$I$I&$HI8I$I$p$$I$I$I$$I8I$$p7I$II'MI$$ $KaI$MI$I$WKI$fffv%$I^fffg I$I%fffRI$W&fffRI$WI$gbffffe$I%I$$MI$DI$]$DI$I$I$III$I'`$$I$M$I;I&I$ I$N1rI$I$rI$I;I"I$I'I7DI$N$I$I'`nI$v $n$I'b$II'II$'I$IHII&I$ $M$p$I$I'I$M$p$I$I'I$LE$I$I&䓰I$I$NI$ܒI$I==CggAggggggggggggf3sssss333333?YY<̼ffffffffffffffffg7777777777777777????=CqUUU]8㹎8887ǂUUUUUUWqI$I$I$I$I$II$I$I$I$I:I$I$I#$I$I%~̣$I$I%y3333333332$I$I&礒I$I$:$I$I&礒I$I$b"""""""""I$I$I:$I$I$];3333333333 Y9ݙ.9,q=Hzc@l>莕wm/~\uڏn6vcݎnGv-fffffffffkϟ>|ϟ>|彟>|ϟ=rWz^g}잡Ʇhgl{'s9/y{붾W»unպV[%yٳfy^W;c:;}~߿nvcv;~gygygyeۿcs{ڭ߮|knzz*Nwwog|?koOgkt].Gz:N{$I$I$I$$IF4hѣF4hѣF4hѣF4hw8+337{χ_v{sun[[un[un[\µ\EtDDDDDDDDD~DFI? I$n$I$I&#M$_!$I$I$I$II2Ix$JY3>I*33337VZjիVZvujժrsWuUUU*j5U33zUS:c88qqqqqqq3333333?33333zUUUUU_"8888gjŪZ8888Վ8883qqqqqqdzUUUUUUUUUUc8VZjիVZjիVZׯ^zׯ^zFzվYeYeYeYeYz9kׯ^zׯ^zׯ_,/YeYeYeYkׯ^ZjիVZjիVZjգjիVZjիVX;s33333333337Z333333333333;33333333)%G $$I$_ffffffffmֻ;.wwwwGwwwwwwvffffffofffk?&#<~}ӏR=X1F:Q=xDZQ֌v`};>ퟀ}徻p.иW\KqEʹKOc=c5mj}g}cXG^=n;/^_rgߞfgi33333'{KC}OOz9}q_E_E__Fz1DDDDDDDDDDF|nn={ko$I$I?gw;;;u  Ks/XI%qm?7S./pw333333?333UUw;χ׻mm8888;U_. EWѪo7>硹|qqqƪ88URKI$I$^<;|I$I${I$I$ I$]ww{GوD;$ $I$_$b#Q'I?I>Iy%)$I$__I$I$ē3333333333)%fffffgΙ:fffffffNf"""""""""".nRI$I$$hI$$|I$I$rIrI$I$$~$$ I$I$L;1Q'I$I?IĒI$I$~S3333333332Zfff33?33&ffr$I$O$$I$ILEβI'I$OI$I$Iwwwwwwww}{$I$I%ٵ3軻5333333635DDDDDDDDDDC6wwwwwwww!xwڈDI$I'WI$C_S.Wzz^WzǮ}{WK^-/}v qnyo.Z椒I$:Ckkkkkkkkkkkkh'I$I$I$$I$#'?N""![O^N>/GzѣF4hѣF4h{w{K{\g|?{s~_{;^O_{=DDDs""#"ww_>|ϟ>|ϟ>|ϟ>|ϟֺIƈ7777777777777777777777ssssrkyyG"""xx$I$>$|##ЈGrI$I'dI1I?I$|uI$I$I$I$bI3<陙33zʪI$$I$I+ܙI-s33333333ް+/M$Z?Ohy_NmO Ug>ssHڬu"ߡEHѩA4FT́S&LA ڈɒv;uTX|ri6b^ZeܽCl)kUuu`% 1ٱ{b f?_k?j>pz}?+qUUW1YeXYo3iVkoqN/ ?ku+d};-Myܯ$dF1p-WRy{V2Ǵι>Yla(JM36OuYYaJ=jvLg@qp+#uEٕ c(.'&MYv1rEQ,[[[[[[![r&5H8B)O-;{hj :fgEliv.YVVfq;z>ođln; d#WZM;Yr{+5fؗBC)CCCCBCCBCBL TT?o@T@k {,<$<:S(\&]uŘ` cEht?.)&c[OfL9|s{^gGk}?Nw[6W޵c|S&S`j#fVn**io6ܓM=跸L/vpٲ T:XLu]]]]\O^m]]\]-]]Tղ˯:}Z*dͽNә)|z?m/KMu.ĂH0c#& jSXfKa%pp6xxxxxlxxxxm8xxnn+B `5f06zMlvyO5iP>ܐ{}"r[4a/rszRT>]rq-3י=]-z Lqj"ͳeb)o[ɛ2}w:$ "2$5{ێ+KpovSr{QN-[ۄcA)+ϴt$Wt*7Ofzbţ3d;7ޱ6V=ߗrިͲj6[ոeσ?"t ng+2B??0rlpsypoylyq yvmyyywYrywyn Uݑ ` 1 M8hi$uy8xtsw#~yJR*?u&H,u(ڮ1J`d$ q͛RΓ xR{7-Tί+Ӑ:5!@@pzrrFzӒ\8 6GEFV/P=~K+-ovvxE}8mI֞io>n?& uɵɦ}ɂWŔplw~WX}[r cɃHH}ruV4c E(AmPOvs3|Aխ,>[ us z\B1.KN,^3ݷ-t[FK9Z>ugJvefR}z[gZ[.>d:c?O&}ztؙTR$d|^@:,$u,,ԔG&93&L2d*2: &WLxRD|w~xPMn2Jˊ:4QV]TȞZIl # lLHjw >Rrx0`%0` 0`UHCվ d~ޓ}s03 V֌D`opZ$@ LF#rD#G>vL=x.5^ݯzkjx˷ukp#1Dv\Nn*q&&H x%jd[˴7j3S6y><8~-N1$$WWNyb-@zVe++P~?mgVʏ?Fհ8<  |1< Zk a/ ֧  L?`B 'v c9|ϗ_{-EAC֥p:I"nx䘘|5 mɁ)=3cΉUA5v .rk =MiMȑ݈bLJ#dI#6^9:; 90М0N5(ʣK oh5}ʩ[\V [GEYQ;A,,W:m0rrrrRrrcrd&#r 2rr_mvL )92-ݿ`k^@0$4nJesssssmss1s%7s9a;sss:TUlBrOCe+YPb===GfL q'Cbw7Er,4w?!˖Ӂ^i> uDWp=/=ZNZ/mٌf"a2wv6666?aj~/Ϻɥ8݅r <}SZt34m}uSr01!,Jd m ژK\f$! -p/U 3<1?n#?W(Dïܔ^w~2㿷Ezwy73f_Gf'fj^Wc~5wr fndl\[CA3A xKEK.\1u~s0E߯1֖tA"q"C0?NLF#~̗=CvtQ-JZYj &~;YO`址LH;ѣd:"1M"w.'G9f m (~uMM/ ((thTݵ^v,7 ֱh㶹 xq'D~u1ͫ( ͫb,Xbŋ=֖,Y8%#WińҁR^Fw_Ͱ5*=gNY-mC|7uo>MYT``qULNůiUVvYQm6P-* M*C^r} |\?| 7 I x7#>7 hÐ_ǵ_?Ëyc2!ܪy瞧`<;'? 1Ac4xșyܺ.\X_l$*A @ 88̌cd/ m;GPwv],>FKKQ-vEpUɸV-ꔴo/aoﯯo/oT]Xo ok@L#lGIHkd):}mmmmmmmjllkjյ+kkkWk Q 6<7Q!șQ2Ue;y Y.?sTv&Vk7;O8zCcZ~Q&_EkGߏmgX4d[{{gJ1I.\ٜr˗.\9j&RbSS^q~mC""!$LD$f"FbH0`1r˘0`у & 1%  ֖ 1cJG^ik#:rM:.ؖVIUq?s#cQ:^.Sя9i!e/xy.<`.C]lFYbQhb˅S,ZԱfӪ)iyWeOmgV'WCoޔccR+e+e)JR)K?uѺJR)JR6mlRR)Y)$)]u]u뮹)JRcRR]u]u]uҌc1c+뮔#)JRY]u])BR)J7JQc1c(R1cRmm21m1c1me$)JR%!%)JRdr)JR)JR)JR)F1c1),cc1|c؜cJR)+#ŏR1e)J1c1e)JR)JR(11YR(1bla [ml1c1)JQc1mQmmeR(6mm޷N*I|Y=iI')sc^w}lt9;;J:JR)IRRsoғ' ˰ KJ-9wNss,lJRJRLԣFҍJR RJR9sԥ(Fj39wlԥs/`U%Zֵԝi:)JR/kJi[kZֵ\ֵ*u#JNsl擜|s-+ZխkIDRJR*s#JRJR'9s939B0Qԣ)JR'8stwJDNx-(R9wVA)9͵)JNJPRBiGNs})JUZ֭iFҔ):)JHR'9sg9riFҔ/9Nsճ:RJRCmu)JRPJRBYZiJRt;)JQ)u,։|}@_}{+JRJ51JRm)JRRkZֵi:)JRs98sRstkdiFR)J JSZ֭'}Z>'CR)KJ`juiSkZƵk\}kVִkXֵkjֵ4! ! !d [l! !! mj@{{o{ad,A{B {|!@Y"B! ox}{y!={8=XbÃB@BB!@B{<A}; A{y{A8@B p{,>B !mmӶ=7{ca!X!=_B A8BA sޏ8Ba1l! mնcuv`z}8M vr;}ў e_x/<0` 0\v  ` I_}}}NvNz}]9NksI;r7\Nv3}7e^zx7e^z}[uκV:uл)&}}tbw}uӥ-)JF)GR9rtgsGMI-{9rt泹ҳ掛9r3p_J"Ҕ)JR)˯m(9e'49Δ7Kd_}zNqZR]}(e)ZR4(Q)uQ,-)JM_3s su9s6s9w沜s綾_91Δ):B6a9oiJNs|8Nss)JB)9ق '9w0`L_|JQJ9Ͷ_z}|.^炐(}n 0R^sIsl6swQ0Rs'9s0wINs;'1;99q}_m]n'?Ujv0p.bq+NmqRml_EcF)DN',R6!2HFN1Yc8cF1Q1Ybmmmki1#b0Hc#1YI%)I'bF19JJR;drYI%R'mml8l&#$)8HĤQbF1XQ@ԶԄvm-Q1cIF)JVV]u8)JRp)8)JRp)8)JRqJR#kJm[aE#0-+lZV!1iF1+m (B82JR' )I1h1ZR)8BIX#/qZr#1 +Nmp"v-VZvXV1i#Ņc'JӶm,2M7ۑ%1)e()HRNJ֯+VTZֵ*V%X֭֯fk:JR`ɜ믬+XN<6F:R)GÄژp aZmiVkZUX[sΗ6L:x;δ}CGַڵ[XJ*J1RRQ)JVZ-)JF)lmJU+HFs|st9~ 'ZV7V֮k[+*UZֶVִ(FtbRXTWZֵV"(g{oBo!C(FJR}) *ֵuh*ZZְRkWVTtK&s9q7QYZְÅ0ه ],Ç8S p8gV%(Ҕ}(6XgFZ֯ZkVҗєZRˮ:R++ZU`*UZֵ8paRtZֵk[H@국)H;‹JY*S kY *kQ*ζ kdZֵÇ i8pv5muiJFR 0;&,sk'kiL8Yva֭kV>/W[8M6s7 ֵmkZn8nÇ م0eÇ pÇ _<'f)ZƵsZںֵU,eҭXR5})E ծ`8[ 5tn(kek[j[ZҮGVXֵeZ7h& %8l'ZµѭiW'Y?3'ߪ;oW}Ni0}K~[]OaC{IKC#]֥{M#gGkMmq fQmq u̧_zi~YU߷H3ʪ;qyEꪣwp\XIRU?)yEj?ϯw^~.ܹN]rewfi^W?M58MSR{r)L_A6s7xt9:7֑}ϟCA>z6I)#[9csQӓ)Q$J'khΦguʴ=d>ijmwCmohu^ wm-W}謾jzUCvyͷYX)Ŭ~>~En]*WESc8rFűM-#nYZjֱuk7duoݸz\rZ*ID#ӗJ!΍]i'x/%iXX*7[VSᥞ?kۆ\\qVu /ܑ =F6yti&CV{Q8B{SRܸ_͠J.8ѬHu1ME6{i*"53Gb4X.=ikQ |ukdz|jTU/Ɯ:,7r>/+he*'P=o6{h5*^ƌ[# 90U$[i7w[g6=IvkOϋgvuc嵸Srk\ksxRξ:R=Էo]_6[Sц8s~,Yȹri8sGfE,Կ*'~Tq҂ )+}#Ŭ;rk|_i!~4s=kIuVllѥ ;jx7 7\9byWfaoTTJ{.qNHKrڹkQ7? 2s<Ŧ'UW7unjOv}4bn+;:5F(IP%3PlWb+v[mٵ ObF~ۅڠ :mط1{5ҕ)ɭwՎ՗V+9WXd^!je,_=Jq?{YӆWݪwAy5M v,4 B}\Mg2\4C{$ƞ5Yj]:im.r|ˎx\aԳ{61pb4-xڿcvJ1Phu}zueͪ]'YaMZңM-GrҔEcX&#Sjպ.ty<8Atp̾^8%iٺڵO{ͳ{3ri'}51ZOzqӽkh[x63Mn(.^-3__KZJ5WaXCqǾwXkڥr}D;R-p߲yw;]ِXZhKT kiBhnk5JOn6Vs剙]gj0i݆@uu+*ƭS/F)U:k*60jөosҽ |gB,گKn[ ¶訝hfEŌMC+(nNjY$nnxkv |*i^B+Vvh|WLԫʋh[J'y3]xF6U11֯[F؋zOTE5Z$G5\<ܖи\`6ݧzCAmnrݝISg~t$yfBGmbz{ ։,Q}4cOZOc.isϏZ ѮSEAY3Et6YZH(\y؍;8ribN-GVϚ'XG7pK=ݡU7VŸ(N7T[R[DmǙNiC2@^ ^|pHysì՛Fإ׵>y`6FV{G%]V5 yř[Lի޷Z# HrI'.j:y%d^\^N}?DZUtb 翂3k|Rsk\i8 Ye۪elU-q  Ic;J(HkNk `ˁ4eˆy.I,MP~|SUv%etUۑҘpU$;Т8m^XX^…yØa? ->2HXJŒL?u$MnH1yYbeU:n2请K`zTjpYuظѣf oVhvl2-Ԓ-܌<W]柆K9bPdc~6#j'+U8{ukEsnȬC6o5u֗ov 9ztnZu۷x`Z2szxBlHbn\q:= ONd1S6TZr ;N~5>6X0\q\JVꃒ:|k 'NNGl x)Wq vnXpj=ۛZ[N`*r U L= WVl!vڼ>`mZ`; :}BkӰ /C,1mFxg8dFG6"`hG=\%@Zm}vY6⊺jU`I r-ZX9eֵoxT6d]Dfhw,˟}j!0b! 9#)j+K+>NۆW;O|$ ' s}ǁSGtji$ z=Cjϧg/˿gWq{M@ KL}988-1.d֣rqُ϶53̑'ZI:1)Yl%'iyRX):jgCg6@< ~8䑶# Mb%^ \/*8/8*J!)qM ^t QEgI-Y;I))J2tu'Y_v~[U8UOʕ*TIu7jH FVJCy)]8MFn@#G (R8D" (-PBE (PI>:%eS?3{+?1Ll87ɨ zi3 q=2 Eg=ni/L:r@8B$-4؋/d17{H$iCgsVeAYUO t8 M@~{ѹq6X:JGqcڰ5,<*:RRRRRC>S<2AVvwH{wP Q #*VtcXrJ+ TROJ*TRJ^*TuTA._j* jim8 ^|_Z/ Zn@t~zAT~5I-1y.a eڴ/CJYki(Y:Q6V^Vm [T7_m%imҒoc RU*&Ge]{,(6G,`=o)4Ȼ6u!ZNB_dKZ[>؃t'g"s2?4OYQ5ږJco~sJ"-]:ʊ}GNZgY} 2m ۔ڿX^2HA`\{c>>s{s]ysdUUUQ !ےwܽӋNO?RSY1cUU)JR X%P~9T!Z){gCY/{] NE-bʹ&]]tĆ@Ӓl TC?(dұ\#tt^Ge~{2ݽȊBJn|뫟 ̶lc!pڸCzs[e>jkK]e|Vr!!#i>=Lv?mnOON MO[I44951ӟQ†t]gP(bE CtTpIƄC=rƚtƊFzxs~ƅ?߫ E1Z1T(!X*j=kP3$xtƇ%uyՙnLȆ/8KŠtu%wש+$/5I˹lcȯ냣\r*4*\[B !r`>o!6yy @4ׄTQ1k"@ #Ti.2е(jz*0)}T{&Ȃ53 o krwak';=RB]tiͦxw1[LAX~dm">9~B#)M5L`×#RفC1vE]nN%{?ޫGEToG7"{>.~l32dXt`Akml,mmllljmmmmmkmmmlLmmmkU 96upqDܞ!9`E>t#i95UNs|wx![Zq8tOe־_lT\hO#^fy#tCOLWW&ϕo,_p`gdcHxcCc$,jDUv-HӅBɴIa,-SZ{Xu}U<2  qv֨!_у/Vͯ Ak}κQΧ}OxpsΫn_ΐU Tlj@^( ~#ODYugx<]G>I$$WQEQB tnx{M̈́_*+z-~|M7Y褶W0 h""f6GL^1P2BXb~F?-C lCT+BuQo0C͔f7o2=:s 9 $l,ІROjUNZ SѨAr9WeƸ0iJiiRĹGFJRt ~wi}1bԖH}ϙB`MB L4 ֲB]$"X Xԁ?vS]!2fTSֶ+++*zs) vO+*++*g*3++(VT9q`vlFB ړnCɠn $a'Da?$ MH p 8o1R2>^4.$0H2@@=%@ȡFWmͶƨWW4&Zeآ8Z4*Y[HZHpHC g], &1X=3EγxT׽P_ޥ~3QIwyP2Z4b&+<1Xykz\z4i E4h1FpaUV6Tu %Ζ_sܖsX",'v cQXdjJ,WW:WWWWWW@έWWWWWW0HWNWWh6mۤ8-K-D<1~e,Z2XBSl ؾKuD嚓ͫUa(/2U(B]ffCl+r3.s$3!$]^l`_!X`"3.-fZM~–~Qc bqK`9@49Wk+sWʻ[+AiaxK%/-J،U;x.W 7-lӽ.gփ'z'ɳ.D0D"g'cms) m~R3HHK>JZ,pI0bmIuHζkܴvht!$ HGƚjc#d((㥨FJGK(R&HB(J(Ī yh`+ɄO@l4pC<jYF.D8EAobdNSovI&bx<Ya;S-c^JKKAKKKKJJmKJvnY(zc۳bOp;ғ:|)?w*F _#X|)%r1!_ 3IՊJ9?7/&2Uf-id~ Pa0P~FN/^:ՖYY4C2ums?yW??? ?=??r>==i;?pJQ(1c5UEUI+y>[S7]?GO_k|;+Wψ)JRՒYeYcX1Aҵ)-^?B8 [ByzF|zbF^7}ɘh0ckvf{ HJfOM&nO%} =_28n;XGɹezHkTY4 <Ųkx1pJy.M  zǚ+f)Y'}|lc[zˏN˼ $%D IJ`COŝŘşPőųTœ[ŔŗbżŦS YJ5Mn{zq!γLѿ3NJ>xfpw0H d`Y{ם}@xw|NZ ғF9Y)_yR|nblIuUKHF*ꪘͪSYKUUUUwZ:΢[e@ sYy! GQ UWʺ7ںʺa6Ć! =x2}0=sٌ|)#0aE kotش]DՆ/kEuofmecdD}>}M6uĦD ̷l{ܼ;6˂yh*9yyyytkyp+yp"B,oΧQMp͆(o/ O/0(.^ 5NMd3,4M3iii6YtZʞQ"1G{lm]Iqk`j0AC 1j`&ߚi^CcO{ÊaўE^vx1]߄4}nZ/פRJ*TY¥JO*vlT ˳cl_pxǂ1E|H vL_A#Y'bXgŤe],Xbŋw,Xbŋ,YQdb"M @' DVc͸P-]vV-Pc9P,7ZcZ,iD'+wr${RQ^TW^dZ$ '欷ggvb ̌kZJEJE:IJJEG*BNl6⠏8TʁM<$þ6S)P D1(PBJ(P)B U(PB (POϳj8+ dhNl\8p5j nsj.Lj33uOP"f%jj[ꚙbl 659˃[9dא뢐ܳ?{ʷk9>݋ P#gr p,Xbŋ3),Xg,Sj:VZDx'ר ZZL ퟀ!@ M|ї =62oOuƖeJ_?M} :$²@yF?ʾS50V!TzL-+.$A1u !%&Nj{37Wra|FXYו\`|=s/w,]~ 0L0a_+ "={>4F']^[$ͫy_y{@ aKՀ 7DC"DY"fxؓ6 x81#tY_9J ;އwBDv|ީwڪ+XL,UɥQBHӁc:&ɀ T-j awH<%ᭀl2"Zm-64mtvvJKe2,>ZɰGhuzF`yS)a #X`1[Hf2 -7Jo|ei:wqw y>eM(y△G7 oE-.Ζb԰tjЍO/T@B!@!hK.]+&cn@=C7I0`҆ 0` w0`&0`nrh;[GX) C{ Ly.ݞ[Cw!vE\, cS"aIAA!555543552JD55545555555544u54-552 $ _f}kZa a4 & V6,l_0ZDz(K" @.G\- >?!~{Wal62BgټHg=6 qMi(o킮Bo3Ҡ5{>Si*_rЋ/H]}nѹre^R_KN.]NF+G*Xpp}2Ҿ=C%үw)ǭ6Z}p_][h{,,k _Q&Rai |0ݶ_[k*;  `! ݡVR5feN2=9V%׵RcEQEQOUESE,dm7Hn5?t<|8AB DfiB=$ӟւ nWpgQ: u0Eq @gPh=nu6vOl1rwL_ JG%\/}i%𦵏><3v㾕KHPutz~-V8m~?-ij{{ز1lx.e z3Ь4tsgU(FS<7-߳qYNلbf;˚G/Y9rE hH#WS Főd'mgDhȏ@ȚDȒȚșȘ5; T m#E=ooS5 Hww +kc똸&ZeI0ADE,C!L#E("b x?^c>W~wl^3'!zoaD$t ԫh]cKc:nz`}/WmMUZ -:ĨKe?6;Me[KKKHDMmὣ +K|TDlx( Pyu$D kU ]U=efyQTk#$HA@ &r 5 @i\o|;kde;Y Lf& WZ{Nֱ Fw{I7Jmr烈-`: ܣv!JWo ;,ZxbiωkNͩ)`U-WxfZ}FZoƹ\lX(ݟ_Q7r#45nH̘n2dN*F׫WW͢עkU%U}m%z7ի! F[FEmQmlZXը,Qj*j,Fب*4ZMZbTU-lh-EhQFhj+mX6TZV+Qm!XA 0ܷBĹ NYPY Lsy.}~,#=_39 _-@" My2w\r6 OG؜]Ze!fۂmtY5T0lX(4TZ?C|=7_G#uzvw )?;;K{e޻uC#[cRԣoj^kúAQe|8E$R(E E;}?mEre{G^6D8>m/ݗJ_""qR/rc]=Emq]Z~N~Y~O= qACa04n"^]&;;ff".>fZfffm.*8@ @ ;#GEo*׉kuVcV1JR*))I *DrrpC6>RQoQl)Ӂ Cɠ7&1 1hWmOY}Lgn6?|8 N9IڊXmQZEڢѶ[XEhdى$6ye{er{||cf LrK-Ʈvnp}=ͥA+g9,3naa!``T*,-*(a^a%<%:84GBaU~7Gb@oOb|787B5MML4c,MKMJLmLdMJn_u7WY9>[íU"A*1F!RRd!F"afQ3$l2Ib$LI @ȐF$dȌ#Dٓ 1fhdҙ% 1&S(LdB6C%J%Chbō!$X00 2Rb2Fe) )J4@3 LB)FF(BH 30D&) XHI(`B3"e1,fI$$A$ɘPE2dhd)(1L&f$$Ba)J1L &C"2L4mM1ґ32fHa%4Rd&3Hd$IFEL"ɦ22KL,ALJiL(RD !@P$Ȁ0L2F4BȂD0#Jli$DHIřQ &D&f$DLh0bH"P`fQ(L(bf)" %I03&DQLiL2I"&JM2IKXS&$Č3(Ia$T,($+hLC5,$0F 4 c42HL)6A 0$EFa6I12dMEL  !HdM424A@ d RYD (%%2HTe$"6e"D&$D‘)&E J# &!HKR$IR!,)M&IDQK@$ #B&Q3HR $X2BɄ`hYd1& RA2dI) 2i01`PɐĤȌ P$f@цb"AHhdДM%)L2d6Lb4-4&Ya)`!(f,f44&2 $,"h 1E P,3&J* 6 F,2Q"Q & !ŒBB e)!2Q2DF3@fdQeFJD(P 1hfL`Id3ebH`e B!0LfSM!JI)@Da#2 #FDDJ "Y j 4B% b$Bi&eb(K!I$LReLbi4Re"E1%!b$f&YDC h`(Ffb1ha(" 4@hdIBF4H) SHE$ EIf!hRDB31hR I"c%aB$HaE0&a1LlƌC1$BH,P҉C(щPA6HDɌQa &iFH)ĒA"E)I H 2&hɦHBF@3$Ȕ2M!HA aJI )3JAȣ4I S$1&i@ 4A#DDRHRQ)IȓfRQ0%! eT10X&RYT FRI1AY4IcL2(4YD ȈX1 I2%4j1e"EƐfC $4Lɤ2P1# $e0؊bMf2 ! CR@$JdI2$$!`HBdL2(2$&BH&Hnw;wFBBLefaj䅭xu>Y( גDŽtϗWeĀp[ ]^$Ǥaް_]ڼw*˫ Mk1жOwhUw7L+:ZE\!'=޾Ja_^^Gfnqpr/rɰՕ_nod/m 6Dg3eeeeeeeee;ee+%eI1eeeeeeeeeeEe9dZ&f@]56@8fl>3z}˷Q/~ٱ}c b'BCbz$҄!Ȩt"K6(O  XcnTX>_h&) ttHUmkSí| ^*:JD姄$o+)˟]mTm]^mmVZmuֲ֧k1` vzv3WHG[SHv4Axntp1[[[7[[[[[[[[G<["[=[[[[[[A[N[Q[N[[)=sk]X=Fnz܁uDA3wZ03˒#ob^8<^3YQ<7/ݠs._Sޞ ',S򟵋[+Đ@4hr^=_ yj3wN\7ўc5}nW1,x뫯ۮc7Bwm3Y<&o[!8BM9yyyj3Yyp-TV Yytxykm-^. .?mSj & o{;zj:=}[Qn0_F%.vƗio ;gDcu.+ T".]<7\uZ]P~}|ſbo^V;OYzgXx#݇C&X #lc#$lLDt ݜ//(c/o/xoM7]ΎCM Y*)zOAs"}{1 >Hu4"Ok(3%RWis-$'ӕxp)|x h'./`-WkWT*{ЧVVV31.VVBVVSk k BFG%HC06(5KU=.̮tu Wzv{͘u_M#Cc_! aD1&Rk%kjMkk;3cD_hglSV ֔{HrG秀w@@"eo]q͇9lHʼnrP>0>X[nQu 8זdV6 ܡ~V5"gW[& _.AMEֳ;>}X` cpknnvV7774W*77&ÍM+4CD]s,QUs x-mvVl[ GLJU;B${b6&oOIGoooo;'Pooo*jޑjپނwΨ0pd(2PhNm#q P?$fg{w4zo?/M)ۗ\AjF1 rw[mjRZr~k5wWa== .T+)^\lLKiW%9:y}y:7Zs.޾E>YSӟ,,]45z=_ GNaaa#}02X%lW'Z #Bß_kO[׍[E9tUkUվ*ϝg.ދƋ4pbʺv!ctmli=ݥc[鲵.e\o!1&3\Ɛ~uw?AD"4M4QEaE.)KQUUYٳ)}v^JJύ;T/=kNcRc! CFX{lEؗl7| k]eCRߛǎE=R5XOV7)DZ>'K |!*)[*>+*ئRVVVUfVVVVS>SFV6V6U~V= @B%ţ[Ɩ0V~Ϭ9/Ho}$OQ65#s:$4тh=䚘mkn]Z=6jϏb "H_(C%"A 𯙧HLMp6_WW&]\W>{?]4 xM(3r`lgTT"J*T$W:J*PQu-elC.e= &d74 Y`zߖox\^ܠ[gKa0Ddeq n gt=]}#N“1?[ɎtecQluu%gX|~}*_ؑ:R `٥=AlG6[I=T왚6Q2&kkeS[r!՘>U )w~ ЉQ~ۥζι\U3#Dycn 8LCbCh @4aiii'ii ?N<7\iih[i5idi[i6emAjDB;~Wwohva>W{J(@\ (ivEd.Bd]ܟy }4?k*T1 տxk%(q_&@ "C"_-DGwXMuc!݋{l>YW{jŸ̖yR\[vucppM\`^࿡Ea}POh_yt{Yei8OE4{춣K-FA!C$ {ظ+kKz *k266665*bTgY&Ll/5:W'$>h:M+Pq5>`j][v9VnC3K\7,^}z/G^gӸ:.7e{EևwkyXqZPhe)TTTT[{N=:V2eٵQMߝ̿D5׼o @l oIeІQQ'QQQQPQQQQQMv,5C *Vw1']l3;8l fq!ٹ-i ! 159=AEIMQUY]a5e_|/39ơgSq.]r_mUwdu;nホ.ߋ͉ٚ^Ww}}_O*. 1!'LB!9TR?O7z .pKo-0.r+[.,,r&*>Ym2E]ivFUe2F.R rzEBNbge7% -3Mmgg58@!VEYdQZ^`䔔X]a$`$$Y.N챑Qro/1r2rq1r01QR;(9Ih )9I_* 3Sw/嫟wj)N)KnnMݟ=WRHjȸǸ8u)-{ qn=].gFs^z˝ss^F}Mu9}~R>_8##X,Mh ܤn6 6]5|9V&5ׯkqހraqt]]9$dcc (: "!9J;=,+< 6J;Ht]:d_?QpO?~3ӥs|ԒvG挻9;u6>k?4vK,^g!ܱl1+jYn P5'+ DGY/KeKU`IַXzG' TLP@`E1z3^c/2D@!]Qly5zLcѶU~~BsN_m_e4C:;<> k.^wH )MMMMLL|unjfjRf7wzU&/Ƹ|0XVm+`34xp92MBħ풞^vu=9vbMoN˻}KE&u6UJa@OD"D! #}Kݍ͍}țgՂ K $"r@l2}Zw='ǜ~P69kts~ #! D0߲d'/!2*74*D! r{FNc(y[3eoX e&ݛBG{^ئػ)~v;BK?.\&q#;zgqc]4s[553廢g$ ~|3l$!OOϿOϸ;PGPPPPP?PP>PPPPCP**lU!|`\Z ߼Q7v/jX뤩d~too~rDD5^$׍o7Y2(O8y۽9kg\! `}WwwJCyytvM&SL1D#"1ˑ_qIB/&WD߰wܔ+ L}}ǽ7lB&ߑռ;S$WfLA}\=9Φdi_S1Φ1" >߭D|Ľr)$M1%$Bf?2F{{^ݢ%$G &,h͔auI|<`RY%/!D;^J)^ #eyEFC&1Egz?s{oL{!t/;.%︣1E2>g.&:C׻7cuW@_)W{WeULkeH#HH 1v6:)MI| %3=$gRvSRihQ=髤g5]!{+ߨҥs{:zI)ēO\bDL'rt7 Ι=u~rHfX<`)TĔYBJ˕I 7 {$iHLgny% [Bur_EoEY,a&F#aOv>Ѧā!'vR@H[/RO됡~r/t9VФO{^w,"M}Rc|%7uwCCd̰/Mh(y~ baaC*CnܿwMYbg%1u_[=.!c"bG.b&Jw9ؾǮdc?7ߙ^Oz ǯ:F7&zqdIw!]CL+#cSQYj(ʺhF#9 ^bdI>g]az\o]%%EG҄Ȣ$DѼt)Oל3$LƅjG?\ Q'G7(v_yQ9S/ʌdOY%$?IθDa|H%){L׳ww}!fiFSW'A]i{O]{ &'֫e3{#׊Gwb+ 2E\^/DI޾rO]q"&$9Y)L$LRTAW^`.ĐvҞ`QI4AEA &e&r9㮄1q~}]fLS2g>Q {]u%&]R^7414tȔ":+vo?0SФܒч[WQI)!")|'g{T!1(Pή}g_{|2+ Ƌ/&i,$A7{W]٠DwKJdov,%fh "/g.9W nLeRvD!3ܛg&(LcɉF$ xG& θx_P߶vt%|/nSK!)_ghvKw&K{JwcxĈ( y9f{'k{^se^AdrRpz?,o+ot n<my~j RJ*A@6ܰh,#v sMw{Tt'jx_w3+6Vb>cxx.JW5U\GeުK+1 n. 2Wf8GLl#牛įUq n߸N#_7 ?B-&x]_ky?O$I$CC@@@AHAAAAA@@H>JJ[wG0 kD)l77ɲET{_jDiג7k%C.,Xݳ)k` 4A|vg'N7 zhZ~ OsK} z{5ރBL3tp^8ϳmSi =RFNK&MFBTGv$i;d?<꫓L m!Q&,-45Hx"H>3yyyxjeyC[yxyyyyyxOyyyyyy'x#(6WF݆VQǑRIWS4+{-t- D;WSY+z_sO$qʌhhߚ1_RmѮ#dgijj"2|Cҗ0B ~G4eh@)wLXUH?SvU++7i/5{x,], ʬ%U\Lּ,&@O.@)?Jys#r\=F+{+)uwa餆ɧW婖]0_zai!v<_}-_}!Ƕ+(-tۼv+o5yR7i#}wpe>:x}GqɼhU^ReKo~?B:L7ID@MMzF #$CdF^^^^^\^]]^^&^^%^] ^^^^^"ZZYv]S]{vS߼gz}hl`]g嵤´F7WQ/[!8ߥko.6X':j*i=|_F٧/1:ɺFslLpٶ3!ADgjJ30z:1nGQl&sC԰BT82 1OAXݟsn˴՟ᣉo]?6PR"체&e%%%%$%%%%%%!:CRv-.in\J*b8x]_*Uū%"YGD܀@nH_M杓}4hѣF4j-ɓ&L4h1AFRV =^ot vx!@xG/g|`+u3PqF&aNSGSː CONzvvplLLHmn^[=';[] W O?]'ps.yi`~z[}mhVLVֶV֜uuusk<;V֭*sn;5Igt#sQ\ɺj擁`#jnRy_8Q~e[q¿mnbW2W:˵Sbg|l}.1B$ACDt4,ߴ4-Ut 04o44#t40t448SA]KS|#Xwz~_nq12,eYu=zx5@??2D@;'za eHRo^gZui:8<:ג$0Ƃ a8Cd@U cIW\;.C bA=9Z<-Jwl>ffefefcdC5]fff\;]ssqsfُ:*jlȖvvrPk׭{Ett[P@ KPb[#DΠ,(2222%ri#v)Yl9 쵸Y :qHÇ1-Fvmy@Ĵ;xu_P:A$n#*gb6w;jO"Leϻ؏!eUV[&p9/sff+Qo55555355+55,U+5,Oh56NnmnɕUU3,n+cݖ hl+a0|Ǿ W&8;q!0|$|Fl7s$UUTu;U%UUT{UUUUUDUUTUUUUin tc WЕmu~&Ym,2z~DMN߉@803]\X JeLQ1+?ca{1|1CG>Ý)z'@ UYe63I2WWWW}k֛ͫk+)@8+VaЎ=֞^ n&.ح+---------,*+ *rdFԾrs88%xף \!ܯ,Ga~JJIðvPu qc0~14Ss̑Oz]ge/&ej}*׃զ0hLfL0g2dɔ,,.!HL'L3&c)-0+u^cxm̏Sʥ{zM{K|t$y67sv_{oo|Sbn`'N|O:<\gD)D>6Nk򲲲rbW_2_%1KH8 Dl\M5\\4I\\\\D\\T\\\\\F>E) OtaWEkoI%篞yU/#5_(Β\e9T^/nvOysX3wW??!==6:K.SlfS{ǧCfk꧆&}UicB[D/j] `ȋ:޻YYnf*91[3.boWrϙtxR=cv?u;.}hSu< Uuw2>.w\휫Eо,Xbŋ(BM-8Xf7f4Ũ18Va҇%ZΠHKl_.}љyIΜRurӚ)| dKtNES5v2ЪU>TKLNWֱyY  @Bm0&H/__0_1W___"+__-=_P;*{9`C! >W~yQٯ=e<>OGZ;~Xƴo2,UEc*k*&[46~h՚ Vޔq;yLg2P>Jyc< x"۾Kj.lFcX9h:z$C>~kĘ4OgwCz7>!1K,^/^޳^޴޵E&^"#:G޻,ޤ)L,a::***5HT1PQ!.o1 g7?L)8Uj ZP&~[zK,7sLbwԖ|շP7nxw?}-<)j7qmx2B^jlp.\zZZZZTTH82/Yʾ&ǭev_Xi&OG!IUJ1' vJDʑ9V7 :7h ɹ *%U' ~e ē5f71b$5ËNϳII_X|hX!|m8~Co:u߳;;-T.O.RϿt_k*?SUg;i?8ᙞn+9JWl4`0_YAjȪ+e[k!##"K#"2!H@,@ƭ M\\՚_abW\aZP|~`Xlᮚ%?{Iư6WP:鬫ן17>Sb~Iz{I|}~^mnopqrstlvwxyz{|}~Uw7=7޶_<1{ί){<]\[ Ow=7C3O(y~~QWz?Y;.zxNOܯKpt8}^/r|'Ɨ[ϋgg44444444444444444ttttttttttntntttttptttttttttttttttttsyY9::::::::::59A B~3Oчsl2ghU,eefqCi>a!kgٍ,Iᨔh(g3j6>7&0#Bn5}=.-'%uP°M3"$$Owz+HA0`:ع9:;)<=> $_3z+ӫk[uG)?D:VY!˰ڑk>?E 8 "9<_3΋:*`?5Y(<[11C0cV77AV ) o7"dPd˨yXt'0R3oR!hlbdև엨fH2υڤ60Hi1< 2_:+D,O>Z Wgf[Xj*u.07fB>'vN5Iq/#iFa2dɓ&]L3>^@V2e92:y2d Ȗ9OC{ Q\e`ad-"SM1!X0.!yF0&ML2d˾p)*3OvL3ug;7M׬vň;™z_Z=aP [dCZ[]6E[0$N]`H, SI0 -ԟQR ~U՜a00/bpۅ}M}/ p(:`  {WР2ԍ2A0 $0aB2v:::4 1O6:(%(opv47,:&tt?ߦ?_/C@" /v/o݊~/ڪUYeX]uIZx$Js3!8VU8q*0ғ~$51:ʄ4ZˆSФgZm(Cb$- U)RuRhP05$4χnh{:^4MRGIeXڹQ(jr&&juh5;yU0t=rzk&Ji 6agg1cd" t`$bBs36BH}AJImpʄO@bT#8{W4؞c60E *׆{_k} Id\\WG\J \XYl\\\\X!+R1hb- f1!t,f 2ܧ78%Yb6ۍH`*ŕP!gGS<㍻u`RJK!ë3)4%ui{]%7=䗃L[wn B1,lH߶@`A&:**************$f:%&Y٧Tt:_8[=A&j^XbWo=Bt`!HrE˶.\re˗.\)r˗/KKKKJ\uEq(}ޘ%5XY[J0#BPC1"q䱛ULl~6|Ϧ7<(8/ЫVTй3Yz9Q4l2!ܳ)LTcB.&R~ȅfdQT' 4z fwn3oG={Z;6"@! uCalEpZH݌5!`lMŠv5 ݕhMtTJz.bk&ߡ5}3uUmhK&! X_ %*ɹiufzγ:γ7>:#2L62eɕjy*OE A $${=M3JakK2TS:ⅅ3Nf' gg)ZS`22?!5,MۘyJ] ]nfBl{˓=~*G5ORIdP.;4 _0 h=m<\b~BL9~Xtn9˵`Y!L۱$vA/5z*v\-8mmgDd]b^mm]![i6=^EgD&4hR)!0[Z7 Aw%*wwwCwwwwwwwwwv1/vj@-̼͵Յڒ1qGfO QZB)2ĵ=1䠺Y QE+ T d@"a;NMz-FB-G-&,p%I }tHx0^c\QJ"<]_ {{L+eMw>`>2̥I0?"`N]O)WV2@T*uuuuhdۙ!bWL WWRpca}FHdl?߇%97MlT@ÙtM I:CTfW3_ksf^]~~_q&xS޶t+SǷc*bhCd??n4RY>|?m22dv Mh` \r梾=wEk ;(1#6~j%˥.\r˗.]Tt˴48664p.\zKǼF.߇oFtM DzK`1Q'afnBŎu*wc iLʙz2dɕ2QFQ' 2d5Lɓ&Lj2dɕ>(=`kSu),ȱ兒?UY-nu&;o*ND)冓NeLIS|dCn$v/-#ޗ!Ng$4Y$ ckX6Z; >,+5廊Ԩy8G7qqf<;֋v6uک `-k}Ŋ!j)$X,,"5߁@+b O:UU/y}F^gIzʭU Tc5;kkmavkkboOmvwqtbdˍ~aP c֒ c &ma^h57-`V]rѢfƈNʲƶNKD*BbےQsaBx(10x*Ԅ0`ĨF4%+֓yL:\ڣs} FF# QKHi h!L1K*ulA!ybPQ?B\3BV2rwido5yBȋ-l=Ay!\bZ$ S'hhhhhVP$P(ThUP(hh(Zh(((64=>:.GqΓ+݋hSzWQd7Rb0 c5š:b2=*faOU溮~WiaNzX3pkY()=kQ{9DqϿ.9~d,2vQzQD{Ld&'bdBuT8XV)B Mؚс!_ ;TGSɾ_py91cH?ƒ~_ڵE0+#*Lؐ1cԝTTTjjjP*jqA eƪ҂3\t]__&"`1cHcX Q=3qp0%H9-LL2dɓ3&TL2f@&cL`21* ' `1]04$ $2lCo g<]RxT[Lץ U̴1)@#= 1%bO!dwLsJθ?m&7SK;O?=PPR<R)Bd{%{3-7o88'_O 2~n32Qtn 1 kv,6 V 6jpvQ1i1a`dzᬀb?P=2~r ݵǵ-AS}yu|u5z˷!gCxbٻ jn[p$`#"dHxحCqGڎ߰~߷߻~߷}?oN߷n߷ogSL_.C!/z_y{?ZrD4xv ~~c*T+eUUUr@P9C(p tɩat}CEHUQB̂}&Kb=_ml-G-1!dCO!6'ہ1_Q4#L8g']5TDDDDDGz.興"""""""""""興"""""""""";9矝o|R}_\IO~/ZB33Q1>WX&UQK'-!Yo]-;G 0m[_cgĮc0c9cc8-4L,./ge80pHYQX`iWU-~= e-mjm6T%U5]V cXagJSk.0T}SgQ%҄MK*oYC)YVpɑE=mBȳr!3[ؙ! F@⹛/?~=HeTwzS-gLϏn^j3τbHpDUH1 O#QGTre 7&8:([zd ȭ @*r:j,z!l* ̶eAtI. MAP,x,efPNa};Fxsԍ%V(  -ٛj=4 p1"`@@a_7GGGGGGGGzP=sÂJ y#q[K0`M CN5ͪ 8r!bD c #7667777667776777777777777=ރk7GpM[70w*NgܰtNuEY Tĥ4N7|d"՜{V@1tUL3ѳLy -4͠Ɠ(j njBXs;_?vg{F^ fuS{sa?6-]]Mg2u (PJ:::<%<$g)һRT]A S>gKE,=+Gmd}+r|>e;WUY[6~K܏Ks"-_jH7۩Ppbb놏凇[Z v g Ye@ k׿!@뢣 n y$I$SM4zIM4_4X?Y3H~'8q&}[.O+6a]+!9e* a i qŗbu~o i'}j?'J&ݞAcǀ~*@+^ 9ο9bð:\:uMbZ5)B?!eě a^ E;C2c18ήv9*]]\E]]]]\}#w= AddvK6:,,,,,,,,,l,"B**R,,zK ,Ą.k*^+S|Գe0ۣ^Kv}6_˳3NUw+[+`D`CmY6ehɐ HO/ٙۜrٗS `f79f6]fff.ff5*"@@o/{W??isEQ#nQE,TQ4\l؀oTں}'mP{ V50~Y쪴ģW[zre]mi`m1B$9|ܬ*EeMJdA}nu֛wpp4{wœ]rCa"IsiSRS yӄ b@FMɜPx8XIOO _dpgcɱj0/=@Q H'flI"@ e˅uxIk%FՀш #͗MiY-(JFDQ#d W\ 'b&R4f]Av`/,纹/Tރ7|n}>mqee| K~+[nH*s<,)+OV)ii˗.\rˆr˗.]hr *]PG@bVD: T/r!RQзd@#b )0R TB"VZgO!OOONOOW=W]m'9 WUzk|K@$ ل =ų+ <`36?@weśê:r`&p p D̀1ɜp9:IֽI)OvkYNn+(EAA0~J29mq 4h 4hѣT 4<MfJ=Jz%3-.?틷a`Oo)zISոצŠY*ꪫ8LP@ u'f8Ҧp icp/VAC-4D^@c^T`&!$ &,_ȊGX/d o~.ܴ|MǽQ֫x0SInt59R6M)5^Sگz-UܨmG[ـ.!H.2%q1ӱm1͡w-#ko ~#y66N0PC=?_JRkޛ\Ke jxj!:M`'EXsp7EկWכlAR:*""&9/;uܞT,m4!,~K]Εҭ5UGzzFj#@@ ?on:HPYlP[NJ-1` Up}U}a e ҍmL UԨ T.L.>;Bz>湿|,c_ǦFkZ*/͘ tTU4$zC؝W,Xbŋ,XcipQRڻb"|%&7--FD?_f֕I36I3jpg|KO*b60Sa޲=PwL/Ei_F!?5^G?C~Ļ%=m31gr0r]>ٕf@xI(LMy&&$ 2"ۚ8:<>l[6 gym*J5TʪUQg N˲켷e;.ˏ'[[X[YY[[RvmmmmmmmmZ@1 "uYY+d`sMS?T-)*H]q+9eh(8bX^PqR_Cm?80h%}RFOߩó=O=_mgI;,D.W% |(-Gb\r˥.\B˗.oB^ b .f/vlypNd&,cy?y0&! *j* *zZxmk= k, ^}a#Ba gb8!4'{d{" 8bmRX"Bowʯ*#(A=;('s. Ɩ稘2YY'Wؒ;3sx]C|&F?+Mj] + _ågiy9NREyzr#hE~يki݌~wV:>o3y=Xz. gp $> O6a v5uLU{yO[L{KZ dTrrr8#ŔA _ Fb1$vN7/'q{hX}ae".d̙z{z&CivO5RfT7;4La4!Xj-@8 ošvkt[}ߧ뿾QJzO>0o^5LeqG7 jjjl:zzzz*zzzrt+`Lx2f _^8Hjh\G2]iW˧Pr}J!yZ|sؖkR9 b^ 1 DKM=`|Z8V z !כkI"!"F" g{YUޒbGkj֭L٤*Yֲt@2ѬȭŸ9,Z|b([boHmIHHH2IIIHW_}>[ǧoeȪH0b"VK"Zl֥ O ?GoY7_q)v.uYGŰzWN,gocѯIlXؼh+Zp Q@-"18LƱ񱝯R!oL5ַU5.c[cca6lTbE#/z!lBZZ#{D[SOwg]eYj,Ժ,e[ƺ,,ȭH?7=SWﰀpmIQ(oQl&/!m1qv0˽4CJH6#ȳlB f,qh }EFI iU;F:4[޸Mq{?Egg?ʞ# nbn^J7d>+),.-V.)%Q)3uUF*C,*D]^k+jSC5i[``¢%0T$"1]%B XB@@[|%Φϯ7E~MՖmRʦuh>ZCo ʯ֜&]|VV?MZem'I : aZ 3ԛtfre_泫8`P9?Z7[ ^ @-$Tsfr0 @HNUBTHXY;7uMz|}N ur@͖@H\2$OvFIvJ&t^0 ٵ,eZ0 &H(@?B/QI=&w (RBHB K(PGBe (RqtBBlTb-z6@X-BInI2L>=I x @HA`EZ!21XD@B="BOP KDC$, a%e2IHLBbBZ&S$P$)!30`f 2yR۳m鱭5z +T7!a& A YCϥ: %! = Hb>S1|~+IE4W)&O(YkHZf /$(Ɩkb(eyQS=MFUMw2}!4%waYaaa`M-eEe剽XIIXXX*VQ]D0z5!*Wuutuutt-t}uuuutbuuuur Ī !\QpC#z^r\+×,3АGFUQ)yaIBJ jxz&4R%Mz4;uY 22\X~_kY7da̎7w?.A[9bj#|.cAY~5r"\.^r˟.\zZZZZZZ]3K1H",&8Aƀ ǀa"bqhUw: z{2g~+in} rV]E5uN+/R ъnKc0H$ B DK`@z@M$1[_CS^˂;Oeתjnݻʪ*(8w{1n?o}^`N>u]ueeYeZו%]u]~aゔ8=sKW(XQ.~;hƞ)ZVp!]" I{$I$DdII%̒I$I$KI$$H$I$I&_I$LID%$I$/"II$I$O$I$I$_I$I$A}tI$?w$"uI$I$~I$I $I$I$I$I$III$I$I"1^]$I0AVZܒI$H/I$I$H$I$/$I$I""" UI$I$ObI HRI$I$$9$$K|nI$IuI :{""$9$I$% ~׳/$I$I"KI/I"I$I$I _>7]<$I$KIA$DtI$I$I$I$/I$DI$DI|rH_7D$ $I"KIt$$I$I$II_I$I$I$~I$)$I$I$"I$I/I$I$I$I|I$ $"$)$AA|RI$ :$I$o]$I$` /I$I$D^DII_I$I"K$I$UH$|2I$H$I$I$A2I$I$I|2I$I$H{I$I$OI$I}yy 3I$I$_ I$I I$I$D]tI$$I$I'뤒I$zt%$I$I$ I$I$ȒI$I$I/I$I$'_t%] I$I$I$H $I$I$]tI$I$/$I$I$%$_7I|2~r $I$"Kxw$H2I"I "$I OH$I$ 2I$_>뀣4P>yvcnOc>[>o{ l_[=oO횧l$H$I/ÒI$K}OϺI$W I$I"KKy$I&_ DDDDDDD""#;Mr~{1we4Q$I$I':$L$I$H I$I':$I$I$G\uI$I$I$I$I$OuI$I$ I$I$DܒH$I$|BI$I$HI$I$O:뤒I$_I$I$Ig$_YvOo)wƣ%{$K¶ uI/$A$I%Ky]$I$I$I$I'I$H $I$I$I$I$_ I$I$|ܒI$I$ /$ $I:$g]$I$|"I$I$|]$I$I$u I$u$I$I$Ou $I$I:$I$I$ӮA$I$I>I$I$I'DI$>G]$I$$\$ $$I$I$I_$ $I$$I$I$I_$ $I$/I$DI$_$ $I$/I$I$D]$ $I$I$I$I$_$I I$'뤒I$I$I|I """L6'p]/J,Ȧ33s3*s33"s3+,3l2f6*W~%y!̼ ֚L3:LD;D$1x `/UC >Q /||5,+B&ˆߙ>BCb66/+&_kL+z1!XMI@mBB0vj&%3sRA*%&Y}f2^/26V־Smmƞ}%?+fSO\~ i o,!MڹlK&L3Fdɓ&Lҙ2ds&LtlP[c2dɞJ|5=z$DHґyy [g]̷"kӀZEwZ-sMWiuz]QSzT/W~ s1 }Oqbiy dI"q11IbbbZRyPwvĸTmV Q!ȀBv-[4 UQnqGz;;":fSau^eYeX1mNb&ɲi0qmcƳsQ%Nߏzjd0C-8m~U#8(CUl9 Z`d!Zk,EmQZ,f[ݽgc̐+vnfjHG9C]TBfnVMB28hװ X" }b}O}s+3{_JVEQՂC#Q׀ՃؤE^',֖bhk8}&Z}e=8SLE5555-52޺ڙ 1FD57M©Y PC# 0hzwJzzzzzwzzy*zz}=====?W}_WnU5Zetł7o[pf|VpcrSg7ˈlC* bɀ#SR݅&5)者~k}5 {at kE^:]*^Jy5V7/Y9VtRJȤBR%%%%!:JG&DW7fbJ* UV떉pH!A$4(QB z(PBe(PB )PB bXTbTG+dHlN Ն dV8>S1]/wqVlTU ЇVИbx$nC S pIs8JJKO 2[piTڬ-Y68:k2dYv~Ne_0mbh(($( Vh((('Q((( >PT:\,QQ?+goɹ8Lr#0ٛ%Lk?VS?$֮j=edo ;6SܺoT :*;PϮN;8&@}!(\\Neh+V^j^ZVQPV䠬͆@HQ;Q o*vX7؁N<swUZR x)JRzc_3!G^U&SĦT铲eZp#]S3cɈ$ UnH|TY懥1`ڦe"坃U>S>#SBs\)ZO='?W~3Y_3a [N׿AXwZN(ys&л[O|p$7}|Vth77WEכ'2{΅ 'ւ|-로wvzzWS&"NuMJۆg[kw 1t/iWqȬܰ @ym \?|Kz\*l?3T2`4 _^jn+{Ȓדt j@8Mdx{p 1e-[tn悪bZ؛c=LϏ 7, ه8"d|"d `$#aIJ8~_ iLOTtޫ8~@/^= [nMdnu{&X}xNIZ}J}:qviSy[7~MRw綗Twku۷=W׿@.Wײ?׿W`Oig,Jvz xvx11"c|<`usXmif_Njx D޶C0[RAWW,xߕ?V# /%&|$.x 1ND@"@*tf4,plV-4Yt:Z]A*,`BBE5md| ?15@@Ӣލ{M>IOO6EOOFOOOOOOOOOOOOOBOOO3 UFQ"5 #h l$-3HoO 1PiՃ ևߩF9QQs(4bXͽ?xr\n@[H`[9_UosB?v&g'EQFt"2Q}a_ -CCCCBCCC7CB{BCsެ*~O^#%jq>хש b+,qqgSqUKAbRb⶙l[1qccR k& 2AB?y;ct {=6:紲,{LcU+^GIض.kQɇ>Vϫ5`ZOmֵSٓy<Æ?5A߷cUn}֌1yEfW,l ,Xl`!gѝ%[FZБ>l@<"gc;/uhUo1CPKKs&LfkvNc&c%zM%&G&"NqCecte v';wTZaB=;]J% D2M $/LIh:E`vlLJD5#|,(,,-nDNY,+= & _$!c7 V1_%jląu3r2YTYA l/2+c4>9TiZ,g1ۿEKT_S=u Nrƍշ Ay#X4@P:waʄ^a3aaaaaa=Ua`m`[aa`xN&V nxWLuCKQ4ꝰI/G2r{vh\r)ҩ#dD LڌcxFP)^__[_zkvMw䷡ԧ ִ ?W `blP3qo˼1i1eZ/q\92rE@õMk ^iT!(32ѮXW$Sf}6P>Nq$::ҙ"ᕟ+r\N"IP㕳3FLV5J4)F4h3M,F҃Ӏ?,hѧȷ:rn''DInCs~a.:{矦InIR|Npnɲzp{HI%Z浫omZSmkz%@II2B_ܨv]Wv]id,6lV366666-6666635b*qfG G+!`22Πk>G9ͩPVޥm\}z 4@zN~A@H@RSNEloSWr:4}H Kendny ~^9ρ%WFZo(0g"Gsz?Mo7ÿgwŶz>FMemWxtzNncfu>;1xg {vsr? }3ʲh]sDI&C?&H%G3I?k ˶Ľ6[;GZ-zv?瓏y4n#Yh11\4}Xo>q}t7'aѽg|͚в =؈B7J_Ȝq=ok{ $Lă&SbFD@z8&"Z^Ɓ N~Vڪmd¦]V&%RNxmf?jLM{ϴ6G:k6 ="t% Bv^wGʍޥ4Cs> ҚWwrlfw̞ Yrzzx˛r|D淞.ޟV698k j\cĴH M 76 `VI]TUJ*TARJ*TܞV-dYE1x_cYF˄D2&HCD@!}!J؝9Kr)]䈁x4N]'5G&LUbRSAPrv)IK$w"B8 !CDQɣj#_$3_ww Q֨-GX*DriIJ\ZiyV-? %$ޝ卍 gj(ō6Ktr4\-4YY9dJlܣ\Evmni(q{\+ʚv|:޷zF 4h*FM4hѣS F4%@ i \1ɡ0XEy@NX!wFwPgJdb'OEg4ɩzUL2 FL)2sT&kN@͒?7sRS"g|~_A#y?u)bz 湮# a(i a0`f eSiSӝSӴ"Ӿ=ԿA2dɝZ9h C>!"/wݚ,Peg)/'-@ݨQ|4p1UDc,,f'7ʎ4qb1x$L j3XG\Vjf]**% r*"&&+"-#...*F@+[ #BDz'?܏xou-^%. ,cj*T nrd8)f;XYDiE +gM:Z8 1)qTr0Uq8R좨q`aUdԔf.D.4ąV((y<g4S"a\Cb]jl! + ^W=ͺao:_龼tH֯:gZmWXLdL`pgoĊd(,3 Q.Z.^r}e[]uYQY\ mnjbʭ0*cKԺWwYCә_C, g Zƣb]yGEy;9ul?᤬ 'kyw''J׳[xH¦ ӌ4&Z r5˨2QQT % PU/7#_~@] &53!WacgXˀvZ~˔XG귺Zje5щdHb U w5Д+L(ɀM{ @eap xͅ&+aC e/2j|rhz\u]Og_uSwC& ׻*UHRJ*U*\ ٕ;*TR[^r:]evZ|{|~X>[08Q"rD+ 0d(RB (PHR (QLB )PB [T"[Zo{I{n_9)M wDBcoq~*T**XR[Y#:#-ʠ ț! a%y%&9999;=ׄѥs5I*%A?eOujzɻ_2====9Tf LQw0`˗zz.υ˺Qk*'N* ^DJ6^l'd%;u/J^鏒OhQytlj(5ue_o-haE3XT[A=2s#%RUX t8 R8   xX8 B`ҺA@σśtyΟ;zB?6%=$uI$M4_]]t?nJVgV%SH_Jī$dcm/(4grSf? 3*Vwu+*.+Jtla L!$ eM@6XuB$#: %e.e/ ;-0^k:Тlr5R+a9:aL7Wzzzzvz/pWwveUA i+ $"Cyx ȣgDj**$j***("*6&j Z]RrߪkŘUMlTw\Y S(Vp /izUZP ڣ^$wDu؝p^]lu2 ;mʚ9~JbXA>T@^$ C '4"{i bJ*TR*%J9j|_YJW~V;{M ^rHcD$H [$#d2\D0` L0` 1$cOS躟OMTHw-r-+mÆE׆؈FǬA׹AXfm~aK7>2.iDc>g2ܗm~o73_tױ)Y4q`BbP]rX?C~`: j??>N~}T'Զ''ќgdܜT?g@-0` D ;+\r)lGIt'o'Il.s*3)E;nA5)1z@fB 绵&DC&Q @hˉPD>Cw[F _svkY[*C` {䤿yt0O\V8:of2?ռEеHՕ>2mzʡ!|bѣN4hѣF}4hѣFM}N^4Ҡ~,261.oCR9|?F5Fˡ황Ht3A39>+l ZƕnSL~yzA͆CtDl_XHQ2@7<7@DžOYͅG^ᅅ_ W  HJ`9EUrk Ar~?>_?UO-N_nk:z|>x>^٪Ɍn/6پ&p ]4[T!~P~3d#ۢq^+P0#o+T2c[M뱟vQq`q#6 K7@@nȑZpRytBw&0;KSWu֝a|9mR׵{^k ʔjn4Vn[# ,\w[azyN+=.&R58hN4?JJ1:Ber /%B\54 v 5KC㤿Sp5g)hV$,!tɒ?⏗86\yh PPl(gͨ(((( PPpךVAO'Ƀ<ԔfJ,a0c k,";#RPhuJ~wo}tRW,%ee$ A%Qbzi.TIILГ4s cnL*ni(3wKa/ѿ^Ƙ z̓bhАb\BXm jJ"sUBfHw 4x snU}~ӿ\cAcDb 姘}7Kb ,Иzo_r4nhѣ4iD,4h@kdiM! FqoC{7sPRrcXLJT4.r `$0$)*h*hjjjjjjjjjjijjjgHXjcԴTʀԨC68= 1mLbX ,[^Zn)}@ЊFGwV2^RvuX?9* btPdgs‚U1bV}Rhi?1 B dl0 @JyLT7Eb<>Vp 18KqK쌌o 9YYxyY BZV3|1Q@̚ 0/f#>2xn{긝5oއr=_ΆII$*E:q1`st2L궱P][XT/ 1",Rn1aS UNeB+.g[KcbqeTRQK{:ą20*˄qKi  SX6Peݩ \* !#LA??7?s•1?KG#YDOԲf? _xy'#j:s~(ځ<㙳9R̬̉@˻'˃~˖Yo͍sP*ZVJ7fֲs#݃QcqE6O< @0ݐNĘ3 hPIcEm` ?̘:.( VVRU6T~RVV>TK.NVV*++#)Q9LH `1UF%r%GNZ[V`Jn"^$=)gX.BC0 B!Iw6u&0b{ƒKla 7"`3q%kB:d9K{:(7n, W)xm,Ifv5H̖mM[[[*[E[[[>>A쓢1b.-+Al9p-d6c|-i| ƱA4&X0{H\ `v"hEiihii)Iiiiiiigieie-iEii i5}-/eSͰj3Jfd'%\r2rG P <a1"%CВ`0`ֹRh  o{퓊kw/};er|o7qcAx]/*Tu|B[D_r݅1wH<<<<<6<<<<4<<9<9i+OJM*aWuDw]EeY"Dmx~UVODsWj͢bٴ=_jQGW2Yެƭ-S@0 Y0<]-N-p[2ap `E\DLSSSQ>f2~6'wwqw6Wkbu< @0qqqtx|~* ?w,xz{>v}}^”R)T)KUUU)K26beRJ K]-`T-CT&k&ZU~fB]VjLL W$KIVC01IG%\p_Q$0$21]JlW*6{LOeGmYF:poq]2n ME~u1Ч|DRݢK"5%!;kCwv[]||_9rz8j 0 Tؙ $A6$jݍmmmmmj= ]l˕mmmmmkml}oiq\i$@p*3 /ْLX>֫(cBsJZ3IEU-"! U  &1.p4@(.YzNMiX]Q:CGOi?77좧_g-(B+*;>68xx/LN8\& 5255551Sl SSSSS#\DӰymgNiRJⲼ7 ^HD)2@l@7#`@0%MMMMʻSSSSSMʿSASSSSBESu]WUu]?׵mzJ-MlvXQa{^GUD,„릞p6řZs}}Nٝmݬmݚ/f]/VU{:|l(d ugFƠ>n `A vI˒1qg;h닋%!+.*`.DD6rtK$Pe;7`#8ɼLn,Fͦd@:W(0o/S>otK?Vghj^3߅6ߒ2l1ƘR˷r2͢381@^-ב"rx5 _3VîiZ;uxs?UYlyiKCyr,r7yR)4pk_f[[[[Wl]V̖wVґ R[o`|6ԗ={**0^"Jn" CCL`ֈ$+ mz֫!qA0j{g{[ůooooWov׷lwW7* @=>x2Trn Xj%O*;ce'ELMjbiNK!vg^aH1,=_3Yh3Y߿~V!^<:|/9M;">> e:(aki2kki2mj#dpɹpɹْ&lvlvlvl-3e!i6,kb;ذkb2mNJ-q;%-vJ\(Q9RF㗥NVJk8' RԖR=qyΗJy% h;DIdW~J Bڎ ;\t4jfK1 b ϫp}gBW }bthb.JZ-6ljd:t7{JjSZo3b0eUE*fѩث`|ўe悌.L%Reڠƌ(,يTBR~.K1:f8Z3vh:v%еWg ?AAAUi# `|*Au4Ԏ`~ np=s>uMXO+@I: ܀H_^oﯯz(6wΎ̩wofgUԊ`{D*ϛ}MiOJn5 H<`L`2cB>!޻1^?:ǯӣ4);'y{+6t\[[\n6ߓ7+Wšlª)iU[aޥ:Z@ G4o^ĔoLlF`iC/\4o{LiL%޶VChtƄ`Q]˗u.zt d K BXd!vxhӾاz0O-l*Z ZB@eZHEf~ŗk|vun[unuouZn[v}m[V,PR,XTQfSEE*ŪS?_➳Qzzb^y?z]ENQ (ե!UOiU0YL(q v{{HӞwwv?o7P~xE6E QH>VQ "'8؊t(ӽ?'^ϏFw85T('㼫,YTlP)UanwvJz"dŖ7d(KNJ:ڬ&h:Xsvsy8yu208g(1CFxccuf0ӿ\"_}/S~^+H>2Ҟn8Okϳ_6_Kkkkd[Ը*\Bk%2dϡSv}gg}g;?3}g;>v}gv T(b\``UѲUQUϡq3-ѤUyc ,XnU}6M-n, Ogmutт]nYݯznQb$˪45E) T()˪5huyh-u.<}2D1ZUmƽg}λowF7(vr(ܢ+ss&(+˺(.Q(\)^vޞ'wW1g:QExܣo;)zMF"E1 F=F)C ED@ n=_˟Nw7Esl:C]RT찼cypN{닁4A .GHlq]=?cQj>0{$$!0I su L77񭗭mQmirq#w^3qRX<%P<𥳐c/̌ި@3tt6.QK-k:_k_0Pc/$2GMZir~HOk3dWݫKH/ߋ=Q=Gy!84buQEG~ׯ7M#1UF, *Uf?mh/hW?=ֻ=??=w??>=%MHcj c[QOUKU 5]u bίL?^Ooxؤo~2^Oº!eeIfeYm92Yx3cEѤq@R8qC;1}wgΈz:D=v^wPyw74/="܋wDRQT}6@Šriptc $Toc3tF*#KNqB#IDz͓@eJm IEVl.O)jxM RVZڅ:b)%bWuUy 3Zg>(,(D**^Nk^7,^M1uWl[Ӕc}s\7iۑE,Ͳ vd #-jU0<}:'p2eI&L}2Pɗ&L>29@b&1,-gur(5˛+X㸶Evj12ȻrJf$vݹPYPPU&9j˪0˪U M$QE2b ͬBYʵE3%TV"L/]Xbܒ*wno]ƍy޻U.ٲ ʔFRpUkBE,U,(b uSrPUy&LA u_21b;F/bXdE/R\kIv9|Խwx]EuF:{;73ߟe@pU[lYΪLKjAVGY,8-baT 2*DYT5 Atu@[ǡ>'Kv_w=#Ob;I- & $0rhQ @p/@ !8a%W?>??=??>???>甅)AAA@N)!A荳z/E]v^vȱvILmRR?u+OuE^kh.Ԗ?]/;,=Ŋ&]/3ގQEA" bC]dw[TR"VФʻ,ÀY7/R]Dv5779^71BGa׏Yr+Z%whɱEDjwwv7ǞXEb¾;Eb,(L蠧h^ԍLQ E{tQ޲s~ƨYn(-i-dBhU4uM6mU"uBP@]yFwcc!\h+#ys&<~*KOiSJUIvʩP[6wy^XodMg_  %|}I: QA*ēm!$ĄH Vl܂ ưF f"U6mlH«:H>Ov{]Vg\;0H$*Pٶ3w= ;yr@2hJ(I -Th`e#a D{QC4ti@e)@oz5Ԡk4QN.̔Qlhh@.ّxbQCE( VFEp:6W,cmGacc 8َ#&Jq͎tFER^M^@QEob@vP`]ؗx0zd5(4 ƀx62шhQ( cERQEkz=FTndÛf6̷rh@zCMU?*@oԓ1I4ڀT ͩO <M1?7D44M:m[qߐ}Vv<*sQ{~=_銻iPj mS@ԗ2>dZ7$V:[tᮞJk_%gseV,98}7EbYتZ~'Ѡ9q>GBWG[; ҇,ǒ_9ykv~* H#?mU:c;&yo^'=݊gUDs+%6c}qLWp -[igu/oӫ?L7SyھA':/oH -k p?c6~\lҁ jf3*seԝiQLfF&DJ3bUj" ?5p;\n6΂R oaߖkwֵWo|5? }C?Mk~AGu45,>,ݿɭ`Nt L(_{VSOmΐh5uf5E2=jv9g{'"o/[̖}%KvhKc_Mz ~W/{FD1 Rx^6_6q3m^V>RW\_.WӺ+<~ǒ e{UMK`{]xqzUIoS=u?naj㋆nLOIw$'ݗ:<=N_Dw7;<夽nVθ0~f|jlDZԙ~/z\X*r7S՝?/m2i^}}K^xƮO)KGMa8U$u>ö`'6r{\~Kx"5E,K][aYF/2׌ٱb5%V|ہ®Wv׷Znٻ`l w?՝ĭK[2#촞Sl|: ^Ч0zy[fO'~Xartћ9(= wJ1nq= ^߿iٝ E4ܯ|h.FySi7;-"&LCh:v΋~2&-ɟ;4,痶}^mECd-?^{S[qꕸ?ZK-ƹVi~ylMC",MsO9Z\[PC7g=0|F[ֵ r9ĵg+ao4B'1TGu[_"ts߳z9.s^VO9{S+E-r64m <59轸χg浼n^MEw_wdɮ}W>_wK 1u55Z/w:m:k}O+1=s~C{>O5s2^,giƊK]ߞlVs=ϒiU6>"; n<[7iT!9L^7rDCZVFl&-=t7?js\_)nsl)c ?pG ?vQ{OaoqF. c1u:oO';Ns7ѾBE9s?\?oepMyup|`3 ?jwmW=R{SvQ?7Z|7uc"d]E`mh}LkP$d u~bABnTt{wǝ?Nzn,9x9mlNs3ʼnkE}NV# °??v -%]2*+D'ݿGpnc3짢FPVx'yLɺքS聺/|~w{ln6XMe7/Tདྷm\'x܁ki-s4:z_?IXm=/Io7}.aܟ?үq_k9 G×huWr0%#N<1kmnek;Qo[C</l23N,N č۷ڴI1;φ#Cui:TF:'hZy$;;4p[,%%NgTb|͞quI[,[%R}rۡޭU|}ٟõmvWz/4UD?LG|2sĒ-ILep3?FCy$zԽ1h8?4?upPcitOn=˂cq;lמ kxuX^w!7nӫpf6%-:6n}KØjr[T#z;1^\ǵwz?wOu77{J㧽"kU*V;ijP8뭦<˝Sߙ;};Vؤ{L> a띗(;@*Lfݮp_i@GW>7>OI[#핞pJ\?5fYuF/עS1Io=]WX́;)_mbiˮ!+8j]M]cxU >L7# /e>ү´W2;ʽn^0Ҽ(tCkͽ5y,Ch\eԦv\y?Nof5TQEO2of9ŧK{[]Si~!Z??KdѳTy* ϻfK[c#Y#vi3ơ~gR~ߛL̲) _w}#'_gA٪DI~=U!Mڼ>p}Ez>Uy1i#ھ^!/4 {/~d[O~qKKuoޣ];L.q8~W˭p5_v; }C|_1տY&o/=3G[;𚊡Ce%]wK7#YI;XUL;Eޓ'~!eY2[g~Fk(LټoZדG1Alk:ϼbҳʮ>ge=\5;\s{WKJ,=F힃Ͻ#*#ʎ:6Zo XٱA9m^bl6W1)y@{FCx_ob]v}t@~9^7#vtW\l:~O ɖ;oQONYYjrn1VO_1ܳeq}(ޝ<%7sI{nfO^\e$^gѶ2?b{\ nZ썫Yzn7Aӭ _1}]b=Vq_?5wY4qRu;E._ܒgB*(]F`OT?,s>g=.-n!m;>;j7۔8x_f`dʩf4]NDm>[SB7RWţK=B\\ 2ϗYߪ_0hM.W9ƾ鏜z7[//9'ɞ&@{hit\h/G{ f=YmI$5; C'U|8_-6ЏqʖoOwz*ڄ)z^[W?1Үgl$쾮ڿ&Ǿ|~Vl|}wv&tF+9TWn2\ӣ?;v3_{k\4J>f)ݟ Oo1t폗؝UNp2ʷwqsOEmZ}>[O/Io+/oY#hwmf:>sͥc|5}e$ 3aCa `?+n-ՙwˆ҅L QҢ:`M );V(ffP( Car vug6 Z6p;Ч~n*;(yCBE Ό ("@J" 9H$$wӫ-wvf"g"~hf41z= @SB6R{2k" fLhT .Jo"PrQSg **--AA4 P?n >4Ýz'2q aLjAP9_q7ƫ<'=ZM-S" !F}7ࡺ!dܪ_sAj:^7?;G@B!(dSKRQY `/Pyu~g7=@mCҗ?\ŮVdD:|rw7вݳB4i\[EYm&2%@1^G7]O:]?@ `Np,!!)T(5B_@ՔE #QI FA1 O5REQ'DtAtBf+S\҈ TAVA#@@3d "TEi-L"F$ $A4+Bz֒  PAV'w%" 3}+@UȈ$_?.ocpx.h|^ϴ\}8ؿxL,21*#%SEl͢/ PP DpE.^y^Z}oNTWwv-쌌ߌ*R`xwԎVW,[ `%g)D g' rL *YG 0@phPG0\ pP0T/a;E~~L_rmSfٴCm?66ww}g墊( v{f0(=4 KM_WG([ipGL|9T@Wa$I$HD%7d̎7RhlZ͢ 0%(C-] tQe0Ie!эbzHo(BJ.KҸf E Q7ʤPD/r6{jJ گ Z$4 XAT;YRRS(bLD#! 0VBź3!iaQ 6t%:\ HicܓzB()XDPF%1*%յڔpo^ī؅1+/lK^R00—@xrdh lui0rxiJDoX*8ZB%_;;iZh̨f@Q0S, d@E1̪ ᢁ}3ァx*)*)p"l7b)u|3  gJEGGQl$qY$Jϙ@@""*Ȳ"ڷTTU¹;#*Net]{좎H..룺룎+8+":r;:N.+J;;N.+VWGEtUwQut\EVugqQԜUwQ]9GwQqWurqQG!Dtq]GTQupIu9wqEu{>{w㋢;"8(뎸䃻:H::뜮HiwqE\UqQq\WqwuWEEe՗QU\TAEtwEqqQy|O87W)t'𼞓(جSQR`1d?'Yzӂ!LAB!c`-v}jsQr9pXxXw=Ջ<ޚh,&irrln&}Mޟ4 @4\%hN%It{5&qoĄw&d!G@cLD|lUr܀wj}=Zn\ާ?r+s+U;n'v[]{O B971nL)3%ѭVl<&ϧے~̻>]6Q+sdaK#v:+h;v'1Pe(=OqPĩ]ej L ~;B(heè % i qywJsE Na `xB8\Q0OkWe0!b-ۨXEV- bUX*;6_suK_&H BI$I"N뮮{VJloW*/-RU EET$D@DY$q/Ommo>fgOIǁ[/"@ގ?aߗ? [+^s>nJuToFOZ(# Fm6olofqgiϩu<3f63q3M_|[m+כ;b Vﳑu}[2rJ&C!vPQB[h! S6C!02_&8`= . rOC$9.]h$]!P2 sS8z̅FA QEah3prЪ =V0&Jf簵q QZR`Uƈ{ \j:!}^d{\co, `t}ɯ5`kkmo\6Xu|:CJwAyw~pi;|A0( 2J.4ƘcM%湍W]w:납ڶG@- <Ė|XEs!ZM$Ii%VyCfֹawI|˝w*H|i oFG(ީz7.U@GwxLjƱfv64ߣo׿1}}{NܖTByuAZ 0y 3G{~p*L*!Db X  wk;/vo93t^< >H О ?fw_<ǘ~c1~=yz?i*.޻g>Sݟ+ED>Z'~?Y:ARڢO#¼cqҸF *iuqQuml8;15#CqW/s9=G@(YYY*&<*T֣;ĸƬV}3#Sf0Xd@A 10'ՆR`4 L|8yQTF/ښ|8ѼG= ˜Y-Nʏ!K +eoç(ΦN9qqD ;U,m6L8^_L_LyfY֝Yjq^݄ _}w_ o !`::mFmFgy9'^v'O5$ys>և\u^UDO4>3?|޸O?LuYs30qZ=\>> _K-o7d/>_|/xË3\;<g_d+_񳿽wr"g?֩E?_ZOzl]7Oѯ!fD mhKc d\AZv$@@TX Cf/}#~al0e͔QES n@D1<7SmUj QU6īT[lQP,DE@y P50誈1@Lh-7xRaK$],_ wD]QƂ_$Pa4FC|Oyz3ȫl ϧ#^OWA3o7A;j4NPVj56l4(O8y =yxgJpHp|zC B-B T+Na\*bXp VkX[b.-ͳ << v?yao2B< ha q߇{8yyeoooB d'~~?@?NC%,-p`e@>O}>KNtJTOGG~Y#oʯdCIG(|/׬>T^k[P:ufvK"ztan_dQP?( EϽ8MWW:s6N3vݻG~55;8?@_mm-HqȊp#Hp0"#FD A H DA TB̓K5>;;( m,@8woXdv}!wv|GQt {fG1cݴʑhjdd"PA:B,EjYq֟zzqiPR󰰼J"-w)3mڜ҇bp;jsmoH ?H Hj^u:(\UjڐBƈ"))ju9IN~GCI"  \ (CM\i)dN.Df)Nf3a/S'h솷2=|/_=ueV;wtSI>a$I$QI$GI$I*I$I$I%w{{8I$I$KU33333333338$I$I$I/Q$I$K$I$I$g''''''''''''''rrrrrrrv999999999999999999999>oxŋ,Xbŋ,XgovRJ*TSw}w}~w߿~}pÇ7<<<??Ct:Ct:Cs??^_I>I$I,DOI$I$Iy?c~߿~߿~o߿sw;sos9Nw;s9o6ךs9g3s9WWWW\g3~Ww{ww;η?ww;sw;s}[m1c1c1c1ci^BI$I$I)뤒KI$I'`xx0I$I$I0^ֵlZֵkZֵoիjիVZjի}CЮӧN:tZtӧN:tӧNӧNtӧNӧN:tӧN: N:tӧN:^^.ZjjիV^N:tƭZjիVիVZjիVZjիV]mZj=C1э:tӧO::::<,iӧN:tӧN:tӧN<8p]8-kqݻwm1qյkx[nݻ7nݻv-kZֶ-kZַZֵnͭoֵkZַWvݻv۝kZֵkZֵַkZֵnZֵUI'DDDEI$I$I$O$I4I&I$I$I$I$>!&I$I$I%⤒I%$IILφI$I%S333333333WVyyyyyyՙ.fgI$I$^*I$I%$OI$k4I$I$I$I$(I$|RI$I$@xPDDPDDDDxVֵDDDDDDDDDDDDDDumkZ%o v۽ZֵQDxDDDDP$I4I.'$I$RI$I$Jfff|>$I$|I$IxdM%⤒I$]rI$DnII%S33333333>I$I$I$I/$I$^I$I$I$I$Iu\(Q$I$I$I$yDI$I$I$I%I$I$i$I$L!$I$I*~jgI$I$I$I$I~/X 4I$I$I%q(I$I$I$I>A=p bI'I$I$ 0]f0DGh1i$I$I$I$/XI=`I$I&I%)u=`$I$KI$I.=`q?z?G}{gNu:OGOS=NN:I{{I~{<Dy I$`I'@Q$I:DI` kZֵkZ؏h+K0!0000000``````~ppZpppppp`00*000000?xxp000?xp0000?tXX000000?x88888888888888868888?im6g{=gv]kv]kvpÇ8pÇ8pc1x<8pÇ;1c1c6)1c1c1cmmmmmmmmm6mmmmm߃c1c1c1c1c1c1c1c1c6mmmmmmmmߌmmmmm߃c1c1c1c1c1c1c1c1c1MmmmmmmmmͶmmmmm1c1c1c1c1c1c1c1c1Smmmmmmmmommmmmqc1c1c1c1c1c1c1c1c1mmmmmmmmmmmmm~1c1c1c1c1c1c1c1c1cmmmmmmmmߌmmmmm?ޟz/E1z!WN|FkO"z[9|׾vBXC 0$tccccc* <lfګ| pM(Ֆ"ƢΑ@C}C !}s ?. K )boΎ-ż^|}ϿUuqR 6VvwؐWG\/cY8LeQ$JLo9c ?٬ЂB pjX^P{1NGvrP \Π+ye*ց~L;;9{z_{qδs;;[{۝WO+/N+R+(#_=UQEYّ{J- =ۄ>qeRlQ !w nu/@NA&shn$a?8ZeN\N[Xe1s>M~B@ U(~?_0`~&r +,,.LB D!hD EW^/w[{CHz:1hAhZ-hHEOewb,n;dQdÊ`B xNP7tz\`_{Aw{[weaz糹{/^ 3 jn(俀yՂ+cZDxp$d՚ޠ톏n>yږ1~5[d!-C9|9/uwרt8N6ܽ(VZm[[[[P[[[[8[YԌRYS Ls쀠UD| ep[ p\*((;9[>h|9da?P;e qh=!R#c9IaQ]agx.C;bmZ_6#{kWwȝ:zGiӧN蝵8'N:t\"b&&L33Iyc^N%e7VDgy n[l5{K A QEQSBgH/ⷪ~Nx6ZyZ߽VݝCIW[^0)DTmV?gF[.q5`I&M :>TE5Pk%ɰ܀\Ri?17|>EM<9,z?ي(ĊoIw4kOc;xۜB0eϻ˨ZJ[[K[[[[ZZZڴ?7Կ Ĺs ɟ(̿qp뽔c$"nDUǁYJ4TXت((v_x ڦݟ^oҥR:|dWopǨ@&Wԩ8ʿt%Pj2|!jgWw#X]hiI#,@gD}m6lnDQ@ti*>i[2(hVXD؉$Rȏ\x\\9Ù` 1gF\ѣFB (PB(Bp^2 aO$Ŏf5[TZ^ WmR .鋵uz%J]I+XSp- @#ޤ>] 6L,g;\ ^(+O-$ɓ&uZVUZVUV er)ŬZ9Yj (0<>䰌 d[c6@W?eڂ3bzi!AofɂՔ= u~?\8q7`agF>Odrc$ja@2G惉&-WÇ8pÇ4pÅ%#0{obʣ\Y`@_2Kx 2dɓ1&LSF)jphb l;ZJc 0ׇtV 3qj󲞛&xϟ>|K( @+ =oPx@IR}Q }>###MddddqQEQc0ś9żou3v0O5H;HS6 n`ZAI}Ús?ҸLi'Bȱ/@>![}*xw;;Nc2@\Iq`:5JDu2#&V^?vS&GY[kZ88Y qzZ;uVwəx&"_٫+dWW?Md10a?‹BAd AnCmt;j((k4H[Rg]V Gs忓y.F1Hجcw)d5 o+v/caTAi ![={[Xcg9Wr uPΣ7'?|c[M1uuq5뫛?O8XrL8)6@-  6~B ~/(ת=8G"1܏ނ#z_(y7ښMq?q6*SFCAAAAA ommm,,YeYq>!BP!<F 0۷D0!B"ia&a!a6QE9EM4M$Q'5EQE *ܐ< B^Q 2 8ġJd( rq3Heܦ})p bCU'7&N#0HΗ^>9t@ɾx?16Z M;TK{βCx^.?u䮚aLa[\I}p:Gh\ޯWNhѨȃFQE <H6I%:vne?~]"[ k ApN8;KkZ8?ABe!p]Yt[9N+LGb JC_a0OjIn5.#ZqMp{/wnH=jwXndc7Jo (ՠv-:tR*TRJUC*Tۺn,nEn$f e5\9 "D R HݮYo7ymo7QEY_‹]gf) ciRJ+6c c[5.>E*f;* -l85ڌ8_o]O򀀩E2@Z( Î9UiÂ"*w_1=}sgV6Bh '}>:^;=_¢:vӧNiߓA:t߾$w!mS,(/-r74-AlR@$h/m6Mh7[un(FA $$A@9OS.&_:eH@LA1BpґH$؀X6Xp`V8J4.dFA1 aY9T=1Mg=CH55` ..pCt8qٷ3f͛6 lߠÍ?)2 ao%#vq%4c͑P@e#: Au:NOu:(*3j"$ZܻfebKh"! Qz5ƤX1ÏiqT ՈL$:p`RBlf6lY$`+-;Nz=]ZY;y|-LDHF XF4#^dxA$)L҇q!#ك3Wؽx<^Ld$t V8 !V8K\"xSX{\ g| >iun[ ıtLorLrFh!1jo3<="; a=G^%z(*ٞF؄_&YwS݇x}}9#6) 2#aMtdE\b)zo32& *A9]E$v#*j Sp&ȎTȈjF`ϝf ^f%< IB2r\tf oD E`Yٗ-v`fC:=wKrOK/:^5ieېtGyGk8?`;`` ΘV/J*TRYJ*(vPqYU/-㎘ "r%]'^^  +i$yRC@.\7.JKMi9{sy(;ShmH‘,D(8{]ScuN:tӧYԛEB/l!"vTUhȞ! uIK/*Ţ4؅ Bxv/Izs_5ίE2vWDV H @=vBr(:bz@Jpv(Bd!bz D1a ߍO^ã8KJ4v?ijOpps88888884QEYYa!Ej&kikCۻ$XO,A%~.)s;>#kp]KpGRUǜX&ɹHbF%|0OTY q xǖ@" BŠ7@! f| za !B (P(P6^s~eZ|Ђkw j"!.8.)zNǣ2 hѣ()͘C1 Mh!ׂ.K%֐'~wf<33D-V?~?Kp`E[uW@*^L@ =#z{~PziNEi qɄXKhPi&*J.b,8v@`-O^֘~P_?vVl} SH)6ҍ87,\ǘGǯWp &ڰ.\,llp*{'+~~5ι' T- "$)'K?޻k;7v<HY yο skkkjvV’(쁘0-L kEZӫ=<5>KwΘs 5 Ab] k;ta wuv!$ yrV BG0DA$11 S[DN=pYM݃xv{>F"D+KK:H:E>M6=۳⡫V3ysƽ:(;]/|Cc\ 9ֻQ2Hj{=9{=g(ɬYu+ дZ lNЁJ957 vL"!Q7gKo;6A lH.X 2ܢI3T?VLLJm"n^*љ.̺7< 69 cwI&ϥ>j>G7fl?L'0f152kc5Pl[V7vF+ B[]]7a|-נm" ݥ8Lg{>ϟ֋,,A*SƭPYfI&"ǃ[n> HJj3r"pC^>K/!h$$RBd q&Bnʪ`]( XDoxҽ8}i{;N$>Mf=` 0$H$D$hH"DR$[ط7xː$n>dҐD0_%: =n֮kv]kEQEӿ# PZ,@q~xz&@$sa7n cS1>ljDƦ.4;!RtW$Uvlu|zLm5r;>Λ{Pxǵ7wEwޞӬ>׾A9!2w/w&:tɑL]62iٖDɓ&MxZ/=S1אf C'㡋$'s o}oQEQgfqt΅7jNG\z< щpy"R ؠe' B.`.Chmc dHF`Q`_ dɓ<TTTTTa1&L3/DM$ܐ3s1@AAAA???AAQESKFDKU0 `,,!$2PG>r:oCAwY6$P l# 8ׇ{dTbq:C$ݮbݝ)PU1&NR{^C|D,k0my.yJmOۂғ^s 7L}{_V=Zo3Q{2klk6E3nTRJᕫVm[\x&HLsK~SyW}k8rVn1h.xId : !DvcU}|yEQW 0:CQ%pג)M6.kC)5|;; $V8D8d9,A,4@wE%t;؊0%6{nMwpRNX8{ čzþ#?W~=v=ʮg{{Yz<^jm4hѣF$UO!+oxRcX`PY#:IJJCf͛e6nٳsQE22 F"F@@T+E|-R+CiEk >QퟻkUw|{MxHR)7v)d@ Ĕ1`t k<ԗ~| 79kǶ--|#;[-p_O>d+Q&L4h f=|1p.Hur<'^ tttttg18pÇ0` lxdԙhv?}m'dhڧ&R xcfuw!Ʃv6 8v@!7zʞ%=nnӒshj5wiD}H"D"D$Pl"D.5 P2TB6ϔOrnc 1Xl #V]xSsj0`Z6ks>@C|o9{pb}$~)?}n5}A}>4~Qj-p#(I$T"I'JC$$4Kol{CbR$qhz=000000000*իVSm2vtPm_{^YlW+yA"I$~dz7/}t^fT#33Lx %Ԃ1Aqt:+oGkqk5ۛ.6P ~[YkWwvWUWWWFnGcs+,b"!K=I:GOGS$I$I%_[}?|O~ `>c` [>?i#~|p{,epjիV$ ץפI$OR$O0V1(t$c`I$l| 6[c̓l~~&>=ͽoO@?Q>.P5[[ymwu~7|x~gcl~Ǹ=<>y >}/}O?AWsmQOm!sv=$A wnݲ$.AڑkkaIy>5 c~l|~y~w[>oư܉'=I&I{mv]ֺG7[uVZm-?a}``޾x-of|oy7`?!l];sguݿG m|`g$I$"I$k| k7c/)ouK?'Id7>A?5.SjuZWk3k55!WI$DI̜rI$`l}F6z~`|o?^WVZvgVb$"I$I'`f=6=7?K[G< I$"I)Й̍'V4[}F6` `>{``;`v{{ՌVO-x~n]qF[ )IbV.B8ř8:de/!K_e:%HY>z;Ti&߾ddj2+#WvFFFFE.i'36y?DXHDbZ-Qdr:FsQj5jիWQڶg.)=7}_[xV9Hj#$k msaKaDKMD 8=M! C:]@'b.2Pʼ߄xvrnMHvxmYڸvM@υv܍a}2:GuRbC)!2ן#P@GT(P0IԩkSȦMJ*]=# hu|5 A DIGld͋; uZPBB {Rcc_8 cc;K$`d@,2廠`ZU`W'r{5ڣqNz}飜E7H.Du+'U<=oVN%Ի2jā|N Md 8U8s-Le|8z@gmN ]V=B-M 1x%wK=ۇ Mzy 'Q̆%J*TRN.UxYo`.l\ bF! |tk 8b8pɵd$H"D 0a#+X `|`1gh~ -TGh# IFd.Vw(LXdh8ՈxUA X;aİQ=) p&f%$BEڼs~gw}>W?9X';Z5D/g|5jE>>Z.DʭQ>-X6=\5G/h=V:G<:r&ybCE~fA5o+u~ߎOy?ɒkTnO}uZֵ""@C,,,,,,jիS,,j}ZjիVZjիVZjիWVZt-zׯ^e^zׯ^zvlٳf͛6kׯ^of͛6lٳf͞fzׯ_ׯ^zׯ^zׯ^z͛6lٳkׯ^zׯ^z-_ׯ^zׯ^YeYeYeYeVZ{6lٳgٳf͛z[v1I$IILTLc{{{ffe}Sc{{{?<<|Y333333zz~ߧfi>_?#jI%^{=[=8n/x< }n[fffffeI$ID{$$I$ρW}|~{yw{oɿv}{}o۩{{{.ffffffv̥$I$I$H$I$I$YI$I$O&ffffffWI$I%*{{I$I$RIx)$I$I. I?`I$I$8_yr~Bd]p=y([,V@d! bu.^ivI_k6q5M5}_ mkˆıV-ڙ[[[)e4n-G %MOyL A tӧ5XU4rfZƪ5 0bɥB8W41)1cPW~c8BfۯD{^qmq.NrU1}b,Xb5k1[[[Z3Z׏,k4i 4(PB RL5KXfF~pۄ\+]%Cp^V䍱\K/ߙYAeCXC Fܶʬ8y)-y׌ޗcօ <ؖ1HO!B ^M$Q,`OIr/W0\ 1AZ(a4Be 0` "8J̅O4Oy,{F̍G}sAKhX aȭ j,pl:9jpu_1~-~'|[[RZrv/l B ?֏ʵj!RJ)yT!RJ*U2=DAgL%J+!ɕ+kVR,Xa Yܴ\r [@ W<@@T\wԸ拮-1UCZÿt&gTrTٖ?EܛJ^뼇7+ZlD/?؊ְf=-յxJي~GD{\$$QH΅\ypyBvXXXX0`By QG|Bqqw|{cq-R)U(^_},~5L-ݪuCfFz#~x\Imɺ+x^ E>8pÍ8\Qs9l`Ͱ,aCCCCC.hѣFIÿ4h*ztX}#2'ꚭt5hT gtxF{J'i P52$%?l| 5MW㋋ 2W+5SӘ0`vx44 ` 匀,fqYWu[&a \38@j1fu-[<`Æ#gy*efV' UUSRhѣF_aj]*j_*a^h.b o,$:)i2!驡驩0`30'Ƀ2Ld#1gc#auD??YlSJ-NnЕfgKA T˃:{_xfm[s?gQz?Cu1Ƿ_a3}ߘ.W E6C`F$'ɵy %5dt$sJ x\.ëVZ;1 ÐwJs:b&;ۡ{/ çw@Po,ۂs0.4Ldɓ0L:~{@=`bTu9|yuZʺ'EV8jYw>`Cۭ㒤}T^`H+<_lGs==^9ýTMzvK^u>Wd;D8"D $H$DI$ICmH傊e_',+F\gbUp[(Ӄʆk`G+bgb+5CA4Vw^-3чVdD=3!<ӿ$%3C]$K}{30h)K""O nW;Udah5ɳRel/r|f5 ""uCwS{tg zHO4qIH3DI-;/]DK}͸78Q vf8s1 zSnJA&zdy+KqB囬blWN5̽qd9ݎYoQKSQbAdDl7tELtwSt>zٲњ~)/_{XڂR "!"ǹVNKAȠE2l٫|x+6E`ĔׇәߞEo!,ZQBp|ِ9ўX1lYu'S +2̛WuY/vPkX3=!] 9ǗYxr@2cAԡEctQ6CJ|1ÖsN˃Yr145 XX0ūvcSwHX&#N6L2.췵uRgqaS]yʉ#3Nzٞ}mnDwɋ&LC]'Z,3x]S\qByZy۞s޸/齧?|9ooT`2KFuVՎ2g߈kR,ޟMgՅ۳glx_s}~E1wڮV}pӎ1  on36){ pN<.O[{oru.Y @ގI?;?񠣥)иgêhfYxxQEU,ndkpes.]imqqs; ߩ}K:ߝz̘zjBw >n=7lu~Z wdY a*xd ``!^Cx#H>4b'''쬡D\  vf,,,ڀB@@;|vP!)_[DQ8Q PK(C0/Hϟ>i%K8))@ǀG@[ z!"`/P$`*EY틼-fvsÝ4S˚F8U͙U ,o1A%.@?DEF$AGMt;K)D *Ȫ5W(!ݢw7$*']%*oa@C)B"@}ǡD‚ tED 7Ar*AEdDS'mw}u'Z%|oo)?EKJ?i*aTRJZa~ǻYyXM\'+hq*T++!k+&#+ (d[H,, 6|ߛǩ#u+2=ӷmżioH˽ᵃ()RKʵ'N*q(J%3 Tv>:?Slia<VI%bŋ',Xe , =*/)LNøTsu)wUp hLOaЁfFG8SEg2fotyWЇ2Η/RW{fTRJ*TJ5%P10 bf4Y+~X6lٸtD$H64QH:x2]sm?E&dDP 5SAb#жo< ߹D>?u$x'+Ҩfp~[uIUe: 4I\$H"D$fH5"D!R$ c쀦ABćpY<3*di&M(QETy- +YqkE `ߊ\5^d^^Y"I6݀_,M9Kǜ@=7Ro\Sю37_ƿg߀#ӸCG[N:tӰN:tܖnCυ`d----,fM6nE10/[&yƎB:5~u`M0qr ټ|IP@mOxY{mb=o1;,&C׀0T ,&&L:?hR9oH".NLLegbej╫V[j㕫VZ7.K'w2U "j4ɑLb4K,X=gdXhx{y l~ACsh OB?K"*؉b]$"ݶ^%%4 O*Rq_G̀FX>?>|O>ϟ>}>̀^-iMtv.ZNUox7qܸf]3ED=DGDf  GS:ZT/`2!m^50`A ?d 6UGqz%lfE @"+H ?ugm,̏'(*W'77 %FhѤ5555-u-uUUUUU[e4 r:***** 1FL2` jl2 !dT6řh&Udc[wN Bc+^_QA_3Un4 j0ؼ! j}]#UB=Q(hۋEEEEEEEu; ^t}0l- ٓ&Z H2dɃ 3kk=sz|GXBppC ]v ATFx=`~ǽݵ .ڧ?cs lwaY{WYoMKdL;u=rӿ'n.lQ`[|A_r%ŒIЋ:b'(.-w7mwSRPPn<,T4j^$i a1ujW{ gPFlvUਘ&И ̞wѽ+I=i]wub0b@4 ,Ym.ֺ'njmCXSD/_25Pgq&߼+%bbJaU*TTT"J:}_| ea0(8L+ģVuµj+Vj[ į;ny鸠 ,  Ub.K&l @V,7po7M:Ů\uҴk~vUB (PDډ 7e? >U$γkMmsn@!!^{T}Su}=έZj0-hB-[_zAbrnW&rd$MgQ" ս$ifs-ĀL8*TRTJJ*TRKq/Tq Z2 *:IF4hɢ(;H1dulc [^>OlliV'r(R]+/DoLWV Ln]mqw$LϊJ,e^]?'I?{r>u|9^Dc!*rҾv6kٷ)&_]~rK-ꗗx2:%mlm1VQEQAM.0z"{[%*TRJ$wfmuΝKMڃ[&GIL8K,l_;\GjeORIלoahkS~? )!#z<͍M$}Xp%&hǏN&LrU2dɧ&(\ TV:Z׊#ݎ+S2w3^ԏ!3'` QFw~S~[ꗉ<VrxR`t3sQg ѣFtnie96d*dB؈^2yǦIȾ[zg%ҷhw5 D&awM>xtț#"W5|2Qv$uD4o,PBօs;2N\iP!BE2 &I()CoCCcF,ރ5Mള44`Gwop#Wk)^N"v3.~hK ?i_kSq 7|x~_0/ GnݗېGn1$6%+şvY_6f׭2nlewow7^9 a}_oz{cbbNmNs q__X_Q$mX8y[9EU~0LEյӜ9V X`Ztd!0\Zb/ ׀I$-y!_K;q |l>{E5x I-ЄBWX:̝"kI9[[[[[[:g`7\̢r!md @HJDΉ JHbXR*V$\HU6՚%t@b$IyBh8[BD~}"%}a*m'&JjS4:55555!SSSSSRAjs !!؎Z]:NW)zUW `r +A.U? lu֍5Z:N+S-}\Fv^wq4r Q;gÓ8pÇ81Ç8#tߝ'7=bk|cZ#, Gd2eɚ&LcccccԶV&bWuJvga5wsJ2].ؠ6]W7;kcW?h8w,= A_=[L5cwkwz{y=""`]od_M~p8ݺ?燷fv1ooonnaή#~g$rT&8@~9 Rb,667 7\\\\\\\1}Ymmikq?|`msq V8 g;W#GKS؂aŗץs?ӊ++}}zcsY#n]q;k7qm!ˈK h&``*n..!o(-t!YYYgfvJFϤ-v'q3YCNc/ H(@ΐC+ diK??t?y}ڳ<ԻS@IyjO;GځIl!2 4hѣM&4hB4hѢ!~HnzgYs/Q"˫TG46thѣQE!8eKK7lT/!/֚M)hx&ac=Tsְ,ZS!| >_|3ӭ_w ާ΂FTzJ*UVRPJRNCxJVS"<.nd?sqaB:-&%؀8$H³(VYEQJM@qKyFKL*dNX,?0b^2Av0 a$JQŌOKeXW+o]=2u},4yʷx"!QEtS<@܌62} AL @1qѶ%rKGHGKHr"pBijk_yQD3bTiMCHVVVVIRE;^`wj/12R5y Ͳ/s&&J#llfNp D,[e1T@yf7 i?J=f 5ܽJRJ*TJ%*TR ,!E*e'5Pi  e @EQH1ly T@_Zq0fo?l*Vcɼ<2jd[՝ĆCi7Mĵɰ >| @pƹ/\d*"d𪪪!bB ʊ( kp!fhj3Spol~25d'#FQìcjy ߋqp6wes^h St}Fw C5|楲}vl٣1xLô%J*TRK)+A%MҚIMΆ]'d89ɵ_ Ǐ(P~yB (Pc)D2\ۋ o"H#𾏏m|_U}{9*8E 2v%y<]ۮI^)-@&}#aVl¾;=/o[nqm<ޞuvwZ.bq/͹_ZzpEASZh&W\\JEj_FWY,|==y{|mCWA<G=e)ʯM aObG'XL6+pS҉` ȫ !E-U6p%~z};.oP!-Mz \~/be1aq ـmb9#f۷nݻw?po"1*>H2ׯ<.ݙbgwM  H #Tlq7k/AT̋;DDvf/0:v)OEٌ1nun,2ƈYQf$Zi67e)5vEhͭf,Vۿ$'pXͦ;h;[Ie5YؖsZ3m-ͻmmlm26PQӊ͙fYkjm-s1cd6Z[hhMn;N.q[nmZړeemd'6ņ,;GCAu=nSx/< "ta+YzZɓ&LdQE&e܄%ݠ \QeR!mܬCZcvel4AkfAQZ6=usfͪc,r]T_˖ջ;j sCvٺf͛m6lQEޤgYoYQԖpQo+ݐZJ0Ϛ>@.<iXK4Ooda cig-[}ea9Q ;J&u7H4E"D$H"Ej>o4EʎBCIdddC)S.Ybz%R()f5FBI3?jvZeN4]+}@zot |"xD h d!z٘k aeal-ZӰr ]Fȷ3|B 2iRYKr*]ԩREce{cb2fZϟ>|YEQGN+j xȋZXT;,"ݸR|8#{9Nz/ݚZB+js '4R-_zgGIKL(&Ldɓ&L &2fɓk` ɺ![,A3ǏHOL2dɓLEQY~s:!~^R3;mI$>. (`%@!2w.26:>BFJNRV[13RV@0ŲX\p \]Ϫ;? 'i,m7r(m͔"4`L93YMfσ,y29:W|>_߮5-R~~s#mf9mr$̍UEVX*&,+{wUi&!Q{mK6iyY,^ $m~|-Kg_wwwwS~aqX6668^| NqD:tH=7N!B!>v$S(_.2I/zwQ?B^(]hQqДYkF$| 'JDzm)ݧ}JnN^s!8H_vI(:m۔NrW/Mw9_EywgJWۻCvsdK~8AOaȜ"#\ QXrQ(~bG8bz-;xgo$r;G_zw@Z̓ q^o%䄜zm_{WHZ؉߯P'!^/qh_݋2I8#ΤWy͸k $;B\Ou8nu܀Wn :9HR۝z/wnHD; D{57y :"^CNPsa9$8⋉͢CmOR[sm΃؜~v+u|Wn⃠ZRݹr{Vo 'lN+^R%{GZ!>'+9Pq~y$^NH9|% "nǻOnRԑ2##ǿ^7HDDzp7'9|="s .R!}- ҅gcy!c ȔJ]άj=OyJJ($11XNCL Kf:v kuu?oj)C \z4?gk7/ ~B-;_ۑȘg1yG#^eT~C'ējϠ`…+P45 c23Y,Fj(aws9ΐo5~NB8rw~ՒG*#"/gr@qRNN)eNpM?eNՑ[j/fI'rp/m*)#юF""qEx^nq̲ 蓒R㠎GJN"PC:N\pId@궼fCRШsݵ*z{?#+*ceg::swa!xӛj5}|5uutEk usvFǯt!"b#d$wc 3Bd&[Y\x(lxb]n0kKKEAu];UM='kĚ R^I,Cy.,{&?%.(QyR8e~C}wwmO~_(5`ZAf؁ F'3m$GD/NOz~,p Eu3:W@`BP$-1~LHق jyGiV_kW|LƫOzmG ݣF1Ј~_88DfBZc;oN!B0(P`Ba T(PsH1:R#,1`aJ1NUUUUAC$ (QEp9:.>zX z4A1 tf\#$!"heZ"]dnv0jI"EehOzq "5mc꺯]N_b.|O-'VcMDt<*Q^u>]0. 4hF4jinB$2D7h;u F'7z^WDȔQEV&yPˆaP0$fHgGe_o~dg`Z(]=,K\}y41aCTQ0AW hxOā;dq`H\8po'QD>.o$p0-⢁ۆ@ -,תͲ?J(e#Du@m GF[&p c\yPߨ?cU76}ҕ|9 ɮ]-$eW¸k6[ ԡH Q%O @1kdY>~뇊z^cEQGͷdgӑ=AfA>*j {rdm 0n^!$p7c~#^|j^x~D1eH0A bg) a_BS}.~(24Cc2Ji67r9[[[Y%bŋ5`67j@a FNwx/;c23q6h\Ĵ$*k_KwHރ~5$v|4Z Bѿq RްZ8C/-5P7V\d cG%9]/9N0|aϟ>} /7#7Pֆ!dž  2dɚž>~l663}BnKx_Y/'uw͛v0u~[@D[xV 類#C5W\ dLhz- GwPnrt宫%c@2C`88?tzÎ8ϡVL3xK4Ϟ}*|H]D, df|~Wc?V,l\*%ݒ:6ALVVֱd<,!cRő,XlW> l*" H g>zaTA-@]$XvX"8sp,:~i}?O袊(Y~Xwx1l1.ww)[Ҧ#"94B:@`V Q3qjE?=SB;y:sÏ=>L8&RQ3S/Ǻ_ޟ7o{}d̸ C8 6c% 'N:u4SO/8qd{lr` -ːi4M'5k00000((ZC地$K D9>zMwН1ed Caej' 4 @H&؟$$I $j}PI$[A2cv?ԃN7 {aizǚ ~ÿ~Qj5g?A@o=s!F!ľFf(б33+ ,dEQFY@ pÕh:rwdSɿD/ ]T;X6"3Uȸ%Q dTYUHv\ð]$1Bќіm (seƳH¹7U\N0 I d' 38p.nG8p=e˜`$ G@Z- `L2dɓ&L((30c0 :vޓ{E_CPXn1NԲ!~0VЗHZn; fbs֠*kHA m~{|޶|yUy 1@6j~uRI/rSšS"HkEZa0SםG;A|,[#=x}Nj9SiCC8K탏>GLsm}}|}}}}yUmOCɐ@ ,=gq9o6&:Cm(D0Xܲ>҄(FPmj!wv|sxRI--\@bX6D0gӾ<;:ƒ%(] 1 U^E,BBDW>WݴgEul_]rrmխ5V7qiV6qYa-GN3z~V~_~:A]-sBw4y#vah.69r WCOAVE pRh pmWA庾>98Â\8$U 8n6?R_t}'_~72m<#Ij:nwm j+ޝ\WˊjW.4ՁigHx8!i{K7#&3̯M?_=,OOOOOOOOO\QQQQQPQAqo@ìaw6s)֢AAA@OONOGO=!ONS9Pp({|pqMpjd3,X/]wm۳UKD ?-7$Uu}vw!ckeRF>]?[oA<<_Կ-{ѧl(}m4EceQ,XbŋQdo=␏Λvb<|R1xTHXX.XXXXS)6ٹymqqquuuuna=HO! d?$j!Yw{a8~dxM\߄5_Uyu.uR2ko[<[ rBP @h @BVqҾO|[y:O2z8 MfltֹTԩ&L7AtXj &ßKrA) ~ tAe.=0>h1t]|z&9#`jQPAO  #F5wDy#WS?P*vPġB 69(PB`QixG #fx#6I<,x5Eڔ(7WNB ()AZmt^8ds\!M[{etv]6ݎc }=!,DΏS>!@ lmD[!mΤإA6{jHN oZ9{6|E@^rX S΢ѼL]]]4u>sCs sssG{2l#;ؖC &`"%qUXF"s=)ƅE([WkAvy1W ])cc@SZڒ0\ `P~{:xL}os%K.9͞+}fdyOLCXCeu:] VI&`?6ҩX0+V^n%ecg}zF#HxGV3ű@C"@*ʪŠ( 1l!̱bŽk`,<H32Lt xe0n0֏cZxdY|_Sjs>H7N8+ gID@,HQ约؏#׏|?Wj,E#2dɓ3g=z8QE3gcE%q!=\/@;.-r=E1 u1TP<7f?4~ c|A]sF4hAF:4h4i㏮&LgQ!2˓ -P@ΚٳepӥQEf ޯLS8Pm^o5oq"I#KSu9;]5xl^_ǻ@xcv***))Cr0h +> C9BCCC&C+f!GmvYęFWiq0# D-@dKhW8؏N*` wv1t9W\uj_ l@v-{w?!6fyGaZY:yDUJJJ**U~\|CpҋR}6OVQaɎ\ FUALb–,VbEQE,'9g(<*J"e#}5#x$IӦL:tQE'fh`@~7g7[ue8@G'Czܵ<|>ί8~'À<cY6s-a!pG]l4O&L2dɖ&Lę2dq,,$&0.>al6v+ 袊( 6!?WX,mvTys4O:H€`7Ñp}ƛA޶%cs'< <Z"׬E1@bp6YoX^ ?{˰ AI?@-Zj:k" ce(|pr)Lؙ2dɡS&M2dɝ[;u FGGFTI tlgX2dɡV֭]Z2(-贴OS\=w{wwg5LC9C)ҍ""%$DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDz"""""""""""""""""""""#dDDDDDDDDDDDEm"4Ȉ""""""""""""""""" H$ ]wPul%dO  """"""""""""""""""""""""""""""""""">Ȉ6Q~_=dD~r~z~w}cDDDDDDDDDDDDDDDDDH$>[Kpkwo;{+.o0 b"""""""""""""""""""/􈈈""""""""~;h2"""""""""">]]U$DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDz̈g""""""""""/"""""""""""""""""""""""KdDDDDDDEvT:sCۏ4R̥U7IOUBER(F|ϟ;e%I LRHRRU//LEUUUUUQEE7YB"\Ak[rdKq.5~ۖ4n2 [T->'N/1cKʪj;;9ïL&i̙3惛̓O:C]/K'Kt5UUJUUU Oϻ^fq^F~mn82B@B =-^ KBqmn2?'үMܿW:HxA$t9߼3Bwϓ>K 1_n컧Avk.+cܒrlRw5ޱB2ˍMWos=o pu!tv1M  C!sdEQp8]]es{s=K\î;+o,i^@  (dDP˃; #8'2C3ggh6ұH=Vxg 8:zyBg'/)۞^C_JT|zNUMR 6lٳf͛ci6m;PXY2@,[0^Ç8pEQG^@E,m"·Nl 3taB0b"͗67^noxc4B{{>?QDgWmo_DL-*w=w:rҙ3dɓ8iJ*TmfcbFF`l!HeH@4MN:t(N͉%]\9e6A |7 ]&Twl7Ytٽ4`aV:d8 Jeu].~^  &v귃L]ϚwpW=;m8 Ң= EUrᬐwXb(%YkkTVIYV7ݤ:a-j*Ty(7W-.iNs3z>.j3xʿ#PdG0q9\g6->ϒ vȧ8pʬӰgeYֳVxלx$NIIIII8pÇ8p(vPPFF1¶ͩa=C?+"W?7}S S_~G<_o8NQ;jc[?֫w0[q\EED*)es9fQr\pÇ# aeYp0ٵZ쾵AÍn)hZZgӌCH{9Z߯F8P;˘FR1C%סB,hPޢdB J(YСBJKN 7=EΟ><:tr'NQERsVӈH]k:EwYi 8ߎSMxtި! +-#i&6xRA˺MN#guQQEQa8G"tہ.7 qn?2xz?carDuD{S]r Y~LG͇J gȵ[wvv֖Vp[UVj篸_^1JANjz-pt@ku0ѧN:tӧNQESK0yԨo׃Ul ¶Q:aCFS\/>k-%0֍Mޟ_.2t =) q9g0՘ȯ; zbőKڍE}}}}}}|]}}}}}}~W!!(hf'2ubcҁ3ѣFRCNUDQEU 3@sm{"c͹vhS-8ۉ59\|+Ͳج,em~ hhg'TG~W=R%Wx~-QiSKoAAA?AC;*TV]Zpak:/ϖ 9d @j (PCkqEaZ˭lC| ~N#-䮒rv/^@z߻#j0@ 'geF 7c #?y5v-^gAP002e!#e B0G8캷pdy82Rʍ(%Kq dВ&L2ov\bccR2_ F%F䪥JU*TQER,t,e:TSRe |%Opsc#e<~:bpcZƦp|; B}@&ravPxӼ#[SaơB  B !(PDg cFK8dpjhnٳi&L2dɓ&LQERcq466oԟWh^G.6XjpJpYZ׎y*l[2b)<#wsѱaYVv8̗{f8_ 57NO/ï!z+ek+MZ/("DZt**VUYEQJفj 8edxk;5iH\ 8e~Tmٝre3ݙ1ZJc9h &lve!+ϦX]t<{^Uo=ְu1y~:|m%l+, u-`aa`aa`U)\Dґ'_)__^a~bԢ(Vpoge1~hafF[pǎDP)qņ0D'! iӧ~2!  <퇋Ե?[F1UĎN:t ӧNȴ_ϭgtW|+;H,y>:f6u}^Ea@Ý$܁qܫó##Qϯ( s{%helg>z;X $H:@ 9эq-(8VJ;Idqcďuuuuɂʁ~ˁ((m8m'y9Rz13Φ|a-ot-X05m»8gQ >qtFBNq- 'oinmmyS*j:w!N:tvomyGt:N@:2IBIB$-$I$I$$I8$I${ZI$DI$OֵI$I$?:֒I$I$>$I I"KPH$'-i$I$I$$I$H$nI$I$I%Y$I$I$I$I$I/$I ! I$I$K餒I$I$I$I$>KZI$I$IGI$I$K$I$A$q$I$I$5I$I$D|aI$I$D$I$T$ZI$I$_II4I$I$H5I$I I$I$I$I$I$I$I$I$I$I$I$I$Dݭ$I$I"~ $$H/I$I$'aI$I_I$I$?k$I$I"'i$I$I$I$HI$I$$s,nCtH ;:GW̫%V߯{;Pr ~3)W˓KŃ7AUuunh+kk+Xl\]_*j;fە*TU*;v  (.!괴*`3 g3 jܵ,_Ƿkz6k  . B  :BV{B!Wc/6Wq".iLr+="Y@^8/F5r{4hѧ'PϰY; !u44445UUUUUUUUUUQQEU*qP.F\ (e\"kB>D8\宗'GFH?y/tzv88_u:Mհ\46'<쨫迵xx}ykyzSQ[xvERYWU]Yr 8mF@_oxI٬?=%tl KDw|=Fiyy2xrr(DozBka;aZAwF a.w8 rG\jYDsR-Bǩguǟ˶:>Żj`eq )Ѕ玅Kb?Z[[mmmmlmmmm$]mmmmmmjIHBC \IHI|$Q_@vF5yXjkplQH*Z&Wwrŋ]iЅZ,KOKJz)ԆagJyqNw_[~n.1ox  A ou;-^܍M@ *XaJ*TRåJޕ*T\~9З-8@!/*u:tIأNd(*" <`@dyVPˉl"*ivv[Y$^{s:Vg"/|B>=]'UUB6lٳf͛6mٳfͿ6w}tumk:r?eIFFFE\_&`4Ļ';`*cR1#aV]E(gf0n[|2_e?gs]Dw"Lf:KӲŨ k   ;a,0nlY,zqs#;a5F!4eJT8J*TzR0S}RsmP UȚCR{k5ݏԲs܇CX~+=6SQD%$H"Fz4hѷG%$;+Qᭊ&L2~m\ϟ>|(l xI|XP9|""y[X13 $OO{t4[q`ʽ\vJxxfO/>~0叟s~_e6 ag6>0J"l Ȩ(Ȉ/9*+""*+ "dddn얻]v]e2|hјogc8ӡ>g'o/c!ء8e"= t|y X*{ Z7f K@}{H1Db5b fEGW?>N~_C!FRb"W.:0ކY_tc\ݰ^ՃȒĹϵrnToYFIߑkXb-95T96~heJa(o\7޼ޱ޾^^4rӁHCb1('/-3@(įj@``bl168N'uQEuG?3 y3 {lSNÀ[)K2 t`HƢHc—PA^;eQ0)!YϛNcmz7$y[x3a  |Sz۰\IT<̟N]e@19?;U-_m\H [[[Sm`pm1afhO#0 D6i[-eo}w;(}Va ;RmiAaJ, ߜB$&$_*'R]ְyaΞq0#Ϫ^ѿDj6rt߄}_绝~Ov 762%"T@.GxyqY?-o_:oGP84hѣF4hځcZA,Œ@X @"F.6lR$SQQ"AD(Lb/Asg!z<;rd0Pj 8hK1` ߪIƃQ(DHS+F!ţ+ʾǃnWZyՑOԇq+.{$a$@RUUUc*sZ8F8H8XջÇ-:tӬ" ~6lM+k#cH 4G=====QQQQQPQQQPQEUD+f%mr~Zi~|6)zo=;>wGp /܍@ HЙ`0w\eYsڻ[*Q }`!:?e4hѣF5h%^ԅMMMMM{te:Un)E`mlSSa_N8pÑQEf!pr 2S[!i/mQ.Q 6va 6ps$L_}S_Zl*W:&d 4hF3MQPPQQQQo'p@~^O?![ ͒22MMMMMWW:uw_Y,ֻ:J;/&  Ί!f ߧqF']uF#wtspa6kD=/[ߜغ=uOsnGX 74GdcuZ- FV#+kjAwK[[[[Y[WnaOCɔ^1##'m^6nQ(FRJN.UQEreUmW_vZk pmFaPo@uA]ꉶwy{elp@"@8i]ViحVFp[Մҗ%\ʽUmNi6&'Nf4ɣNL2d QK1ǥ(mxƍB (PB,lvUr{-_|MF"1g[!ψ= tlBb>7P pxy'?A@:4`zeq !rC^ʉ (rM"3F4hѵr%0 5Ǩ=WWWVx(́77O|b }t@_K@^M`ww4 l!ׂRRCz_gdkR ݀ )mH٧'Nҋ{4 +"`X2HѣF4hѣF4hAv\r/T49`j+tP B9 %QE!b(}oA"Uf~_5M/ZoFdBC3:Ҝ"C&ؖiwrN*1N8LOui~^ˍ5g3 OzZqZk/^E3rYe៑ 2u2}yKɨ J+V]oիeP 큆md`!LIj|,2dɌ$X^eMjŋ (d9B27::b2q;cX*)cr`"ᖋ.~~.>O@j?N"9m1 mJUt|F3.JZ\dDBB$%ZLRL,J]&1JC104j4P_zՅxxL&poD$Ht*ի«V(lځ 0Nt! liu ۏJ+=!-I!59CGtI?縋'VgP}9w߾SGLc-)IƏ3jիp(6zgxy?ȩR, P)RNzfJ*T^|EP,ԩRJ*T()K+=\N3P*t3bw.R "W>Rv+V Vzy᪴6۝÷ޟzO(+g?ڵ],CװÇ6lٳt፛6l7/t xGMPho PO&gę?5P|ϟ>QEQȯ:c*4ݠX:!Njle)uXeR B3rO$rK%Ԩ0 ׺mn.;H;1 XO+Tl-G_Q4Pg|EQG,LHF H>>>>>TE> z&~ KGdӣJ3\(:禄IH;S̔LxEm^{8^ xeacl/H j']D}=i,m?&߳KoW;P|YWW_)^:a0 ecZ!Y1$I,OJrNwdm}ww{ZҊ(18 C Be 9ezdtL7+n!ܬf57+RG,@,K׵.:?uT.xl;.'}^w}uaۀ>LO#%|tӧN:t%:ua\z+K_%^< `Q6lٳf͛6QE11r ”,1E)- ,·siH#$p?\41 s6}ͯ 9-1!\i1,X'DK!@q`*ܑq.v7ݼ?L_5{ҩa2zjհVZxzk"ũ@Ů~ XiI q, F5F*TR(em>v! ?AAͺzG'rV;%P߫\SKo*% ;jR-,t!ZD u{ t'>c!/'Y .N3Gsok=E y/꬝jv{=&1CXF+9kv Yk}EmXʢpZ+{( 04jRmk۬N1;Q3u8Ǯ l5[EB]r<,M[jQ6E$q*(a9c2n%,Jcn[(qjrYe 0a"A<.6bʛ o0͘pzÅ'5g9[x0bթX1pkZ x6 ^ xtd< Ƀ`$)a,(ɦyfYcgh9m>ai&yǼN\qf-4m,&B 6[x(%[aoV,,#{"h45j ٖyq`ataXHNL,TݩϾIf_|אּY]p.>aMeBMe& Q& q& iYa!]u`! 04B-E*WRPQ^I*+B!Jn 4Wۧ5^Y-yj@(jB$ՎA"I"$I!"&IBULĄ2Oa d,a L* ٬-9c&*dv6ئȬ)ƙ[2 z,ˆ,X"04W4Nj}cq۷0TJzl3h)+(M ]yD0¥A]uYjJ," ,B]p+HXai,BYebW]uVN*)^SN2i2gʚiJaBm~!Y+}ghAWz+\4^MzはY4`,l/<Є0 AdEBpOkVpK@RP9=-]6ZT)=_󟙦"MCY5gP8\Ggg)sĹǚ6s4ls9uTR6ῳ)X&w[f&|pB:l X $ )4Ś=2 ƃAqEQE B1{cӧKN:޸]r ?Fv lq%A@]ZD#\"eU#s~iT; 80z~K~0}Ny!9?vT@'9ֆuuqb*4kѣF7i_m0r[x J Gd"=f5Cikp05o+([!Ζ6dh:FC90(m\0e˨.cE.3Uj2Ǯ.( @AGmCq_׃=_kGC:/r},YWڬz\&_9D6#XvcB (PB% (PhlCN3gِ?Q&X" *ρzH\@:mG$rwԚںɓ&H2dԵeQEa !MH@ # Jޮԗŧ5|iQWէz˥mwcdn"`U "uJ%`Z9!Pt(gZ\+Y~@']4T n׾WAF@:VײBI9FEEPoCw``````+k5]4:mͬ3KJ&(TW%PKDK(RG1!b8,99s?;i6Mi(/+;*"B!n۳.⾯~Hv߄]LG| O(T3p:B!bZ e̫XfGK. ='RX(] L\&7}G~>6?\&BAP{w5+]hmx<W3|7Nӆ37^=t>O@ uD)yǹw}=GAb G ThvuB@EQ$Cs\5[kw>a袊(uX"c9 `bmĥy9s$@|i]eԝtwRu}\[AFZl!P,@>dKZ "Dv@nFJ|}RK[-,F)DFTQhPb.V2!PBٲ% wX+NÊ/~7uC4lzkl3{ pppppppuv]e,?v$ )"."XM(H<\AdM>O7QZ qTN$[ jIiд@mPM\^W,A6QN n]TR- fD Q-ЍF=[0q" )Y/Y>_^cvzϟS}S4;߁ͯ!aj5nSu<Sju:N0Haj}M KL@tֵd;gsw3WEhZ-(-lZh BKЙ,AdS7 B霻]^K⼕{6 )}e b@`Z 6pa0q26ĴR(-STZ5DoG~ PLBw$S K[nfstrace-0.4.1/traces/eth-ipv4-tcp-cifs2.pcap.bz2000066400000000000000000000754521261713114600214120ustar00rootroot00000000000000BZh91AY&SY-Xfc}|ʵ@*SþBR[X؅0n )9=Fdf _ֳx31 q%i $n.C3~I#29= C; 2qci@0 }""* ! -Mh ډ\٬53UDXJ2Aj'rx{ |ߗǽxK^?M4%JP!F ԤC$| $7 f̱͞0?,oCu~Q`x'yfn5'_#<-ԂWK3MqBFXtf7?@Q o0ps s?ë4>a@ Ȼ C*hCe>oZ_$gWG 65p5nR䙮 _{+q`QX I>fHa5ea&Э]OT 0T=8i 8Z1 PąPm^y^■!\?v1~qn\oJ YKbR@f wr8KEDw~6H.iz(`ad\_HƦF TT`iZu,j5\iYg GWBRHk/R*K6plmGC9WXx,pMYo2( 2(5mLDѐ+fJvG/5T6`GB\5f 0R,sTMV k,p'RDE"+M֮a[J+IC& '76_ft"a0Q9ъFwy ,@(1HRX[UJPZ!@ @Jr4b1-` (7%E *D2f: }Ю5 ! `d~x; Ғйȫ*tlA:D_T'Ǎ{loQ%%?@|u1/ٲF4JuEH??| $#Air<^2oUV}1n*`n|JN[s64=ޗ>9 Τ?\2epohHOLc~M/f), f0yH $B0x.-_gHk\kS `XQF Ec*2;aP݃XNL (猝Z (' 0>Gc]Yưyy^ſ"~%H&C)ʙ*?ϋOLosӤ"!6gO.Y @DXU P@x2Lȅè8:M{109CĢ ̙APЌ&OY,J >}9~G9ONt$T06+K4UR= i(Xk[Gٷs@h5 O]Ai^Zo.r#F.WO;t(3-K%Z~Ni\+:r[Ƽ5J $(4X3@F -$>[BRQBBHT!$Xi-FR 0 vjPh&`?9=,  K guQFFX StAUoRFmd{* 0H pd@) AnТ`$Rl3a EJDL q/ )Du0h* (oau/uG#6[a#) 8D^QFE⒇2 CH](aH#`$!ef.DE,Y➲v@N^‹%93y[+\ 3wɃm= P݄\=c4C:&ЌHbjg3˜P>j{ϧaC\Β;{&(@¼lBblpQF`#L*w]s#~!DC(2N'?$aZ8rX]BI ([sԐw6(\32C aN`]NSaECED 3, LRV< ZLAkT: fRx3hD\ɜ,cQASa !H3qD41MhѸC4RF Ôʊ:-!+)~$$._/~uES翝~A<ɐLXqBp1{S"=Fb@qPREѿ̆Mf,12kL_/s#r7D:=Q3J+iԡ+=_kMFUxL v[Bӝof 0p*21 AF݉ϡKLdKg.DM禾infFE=j?6;jQ ,`~FPt @I{+X09))N=FtciY HAf r있sz* fw(VFv|\oZ :z!*Ku=Αs浪e%kxb-&"Pß>_Rr+ K{@ QpᐝS8~"MOOۍ!+ғS)C7iB޾LJN4ۍ㹊_&w;W=@mA@=ƴ,-p$}n%10 r14}[/p0EmP>@vKwK׶hi)%A`9-95KQ ʒr圝sdVp3u-71YǑMLNT_͓Cw8b! aKAem n>)?y8+@vM=S_@2b|ptHUkopir9m&UA\RASP -"拓."(Ql'  s_*ُF{ o7XoI.)Rj" [n[''No&r|顁'ܿ=2~r~C{и( A,x;(A=R@DTTF!6S5HrfqҲ95) %^>/ݏd W! cX88itym&:ngY7.~&Nͯ†#讇%ONٜʵȲnLfMv%9}vR&-A³buol|}`4-[sٔ 鱾._9U8@,,$nEȠY73]NA9lW͸őSDDCX2֬ENזyC^鄝%5%,b,Yh̹9la6eԓ].%7Bo;_=&D>Yq Y9Yc?w1x0 ۃ5={"bi/YQ>F+VmlGf穯@yc+Y@}YNQ4XsqOOa:{CF>jPxT^D_,p?a+zﶿyiLټi#ƍǂ%[=L;;-xE]p0AlyOۣ&xeʷMGHgR%g 6zbdh[r&GlkV~9q7_1ʸ` >AXF+ H|?vĐYFhow/C r<3(g MvVcF;k2ґW)aEd8LHb(n])I !̪9u˼y*YKlyރ g_ (duF=kCGGN:?˧\QqLJj=`OjgDȤmÖzMv F#Ảd DȞ*4S!qJ1X)%'ga(/k!!cKxB7hz'/};=}{f+1Mr ?r|0^9 (Rվw'pF-,uc6IO WATBLVscxE[x."vo%(qjFeIut-BjFm:5SN>ST;( i 'E  49d"$bN0@&4}@,!/zDlwǞG{sQHp%`o'n#H4LG%6"C ?ׯȆ`?G*C}/|`Rn}P|Yǂ_Z8&w=KQug1j]Y .6 ^DD"޿ 8 Z*[v/>S9t[ ' 7;;j-Tg1H7xĿO^5Հ8:AydR$@P{u=D@~˜M̭ģ+{^mb$8C~ ʲ-N/1h Pq;w{ZTRS)/ 6/hZк*Rgt lV{DU!u'sS(8?>Vr3pN`paSuPcx SHyXW:G*UccKX'qŇԣu7W T a_H/5zQNF?3ABԽ߼^oh/)P"Ïzu4FɣW7^ >^?B7yrH ē_k(-H}/O[o}&MRhxG  (lFDZ )}./|P_mDǪ58H'BAzM+>r] #Ka/2rkL~Mf-ر`jKb)BRK(+.cn >RhBv Av!мp&D$RqɚrAo)T =8ǩ)C|dgҌ!/Fqz@'缠,fV*3z<X]hn oQvw7avmy&n7fW˜0J!a[V̳#'l{(Ȃ׽=d (W4wDn稢=sb9_ٽYkVjbe閷x1=3 bG|2a~>,w㴌ፊIYgsRbIޢ;$1),VgiPX,Afz5#5yOB(xܐl &g?^ߵLj%IV@]S6!WY^E8bb$Cg`Ⱦ ǫ?#1IVi3P>Nw9C~$Gć? "z6Cc0)A`/{^z> L]]m ٍvHƐ]\֠WLOH0^=9t^~WSq>4а؁ d^1kOo8)JW<gSS=7WS仩}S*1`qAk!!kWha?֮<0}̃`0B:8.5!J:,Gg~}TAb!m`@@ G+X5AX̱}[gWZfa(dl/uaoV:btb抳}]_9ڽ}\G4.S  QQ G&@0/%~@O9t߷=Y@p+\m=7u;;aTHGSw5^"XMWO7o;?8Pna`2]矱@v?m\6V1"z6Mz.888e Ds-۝Ѕ]1Jt+GބgagQ,ܤV#=vQ\i$]SdDOAQA7V5vSN" \Ɖ6|6!b2uJ7ܸ͊6o:yug^X, AUڧEu'Ym/fAV^J1"Ds$ zν,tˍ-kpc X+J U9k9}#{Tp aiP \AghKT\+귗* OW&`k~eҾͷq`ԈOQC*}(WA iAƆ4l[Z73V0MȁhR]fk{nK0}yZɗ]<9G~y:7,T?_ncTTS!M}/eE)9NWw'=ZߙDDA}PKeHgB i AJ BwoSNTʥ}Vp&`D U?#u3sG%i%l7 (oΠp|Tw^%$pTtc'ۅb$8o~iirpeO#S%Y\~>amLo 4JTĒܻj!l橋lU$ؤ{!%2-*E\yfʙ3EG)i@>Bj(oF%AsE_ite.mh``8QԿx9%G>Jʦ}izIulaJ wx\x` G3G,m\A!SW^%px59A;|dthEM- %4t #  c 2L<{>V{=?0p D-`b0ic3өi;Z L#}ҫc+3vțBAa'zB԰MD.yG/eqWE䳘~n@o:1F; TayHy'IE^WHF4yA* <׍ 3p.] 7RdÐgS9ۈyȂ5ږgC (x6?MW/5Mug(9 v ?ys!us)-7u+\͖ε쯫41X&d (D! ?-:8Z_w_'ܨ`J:9_f)yv#]s'Zy `c.&fOfp-~O&k2Dh}[mgg7|_`02-lӸNh &Ω?gZ;@!J &ǹ9nWWfhv V dm[o^5ƧW |5xIWGY)FqJ2*ޠ+X fp00q0,o l:;ÏCyT!py7wr_=YI@Z3=ϻO {.ݝ2 la|SQ*K(Y!;7>W̏a%KLó ~@efqT˨M10-KZ-B)k7Po5?BUl8 ,QKWqytq&)_~-"-90 ?U+OQ.@a)zK?trp04!MvoY/%nIK+suW}{r@&.ZX}GD#@פuuf%rPXl1Rz(K.[~uP9QXWl:^(S`%@.[AtA(2ÒYZ Xkxh8 ?q&Tj' R>hv#EV}t'j]S=>{[}2 53/ezdQbZXX6PZ:AA#hi(Eg7+OG!2g?0jNYbZ6y{I7'.t| E0r;m|E XFVn|*yvI|?BN_*V|B_C%\-4t=/ݕ&CbԮ+B]޴RRDD-9P ``cdr$F+Ud <Ɉa/= , .d@dHda:(D"P xy#CtXMx)h?OC^f bw5Cu of'P{=F/#~ȼ6k42.+.ϹKü]aWQIBaY%?BJZbU) 5fd%`C 1D22c7QmYRu]@LXpx>% faQ)f%֦$zjiFbE|),S(sYGFVsMXU/Pn1(׼*T"q DCM Ӂu\c!$ e 1@[@CNH! 0%9`8paB;`.. @XM,".yäzD O ͼ8{qKζauoJ agUV?LRn kЍMUr>$JhzJ~aB7D nElla tDڦ/`V40 dR  "}D"4  T. M#T 8|c.APNnKqq=Z`[+)j'D09iEl3b_,hB%QܠRTBܓZ ^;A2m,!d2#+AGhBxU+uH8+!rл6 L JA.^`qBJ~_GAy JܮyO^3+8Jch.cdG?&+* \ 5O;pXUe/iv#{C#9E ;C'Iރ ux .ݶa :TYr"a]-7x O Pӣw@CF~{}>n_ɻ)缊^`3h Jx\'1ai!`=k "?fu$R3bO 1IHRzÐPHӗ$RMRD :R&tp5ĄPTttǨ?k1s`hnkN6V%Fw╆_!-۫ziVu1/$M\pKdQJ$ rGs17E(`H4|"$ HELO7K,!=Y OJ$`8ϒͲA-IS c8r13臊b_ӭZ*Wz3׈?]0Vm[8lu`X^VNfx%\Uߕi4)V¦EG%}(-gsiC2?d`R gèe/HyS4ܛmkV\ŻF.#'nMr s7pűUani&smjy>7T\ F`MFC<\cw|)Ɖ_Db+' &@ Ͼnxy7A~9 ᵭKAӾ2::J$WRIFC?ܼ(KJ#tpl"(kÊ[uѺ}PC=TW;:/W>}y6OBl4Mˠ%d͹WاvrT841FySt2?^B?òо t5v""wrߴmeGFгfmJ@l䃽^<߁To& ~  FosN~3pd0(tvq2iG+Lg%b e=R +4wOݿC?s_qǴ|f OwJB3%f)Cjj]G93eL1a39s6ه.wt?{o\JnC{%fL2I4缪9r"Mr3@w%w?\n6:6̱qex'3Gsz>tbj޿yug #l%{cѲN Im&0G/Yf0X3)ˍf L"ˊ:88㈎1V`)ahoe׵Gc"ןJMDCCH̄"ɴ!F'&qtb=JEp-nW}_6VBAwwg-p<L_qjo]]q14|f#_guuV+rjRrrv~/[JvV81g& o71$ā;Rxy;zj%܊~/R]n0)t~$_lGOYq44TR6C"%;}O׻~)ZjpAS%lbs.'=q+?C?0 AQvAoRn1*S8w}س2 Y\ߜ@sI%(7Rrs@w|-&osKHHgioH\_M)~:+RiX٬2S!As6 &"$8Uv=u`ŘpC;Jm؈ ^ AhDAR[T QMY m c+xpxη<慝\$A Bsļi,DnV rMΠE_bpv0=E6YOz}Akܒ!"ų2(_9 E{8A ܎'; UuP|+eJ DS!! q1(1v{޽~25/qᵾe+A9= sG{CѸQ.«E891Sm+ g[}r8 I$a?س8,ec`?gXRvMd[;wioO9\s`1du٣Վ^ѵS㭞߆kcWjyǎ|_Y C{])nzO?PSW[pj-4Ƙj]++Nq48)3h!a-q׊0s1=t"@avW8tV;[i+4З ɶ9Ɛӆ흫ʁ)TqJG-iWݮe pvZsnCޛkK=2(-Q'- r( 7p7+6ǎ;qN.{N[eʘi#i8.nejڕ~GT<ΖmӤ8Mn/Sr6O{NI7ڛ뽗[PS( og68Hm&ղVy{-<3MvurZ]Gw).7]D w^ !C}gGV4_E&zo!B+UJ7w.rrILo;nm.עՉ]xwـ׀ cVe)+t_+ NpPۻ7jQ zDIfBwo KYۣf58LCgƼ2fWf*-/ 8 w-ߖgE&GD}UFs SQ=$N5}f*XV 1 T9Pݵ]MfDSWL8YOPAI!I42"kqZHCZ{c:Kb|47,? ,[+a%lq¾,(>WOHt ^.hDj3 ać|~/l0ō99Æ":R@ckQCy&. ^Dq*h'uֹ_8 U5YD55ic_Sʁ. xb#suߍ2 غ9[ւqP F?'nh6>~Φe30=}MOOfaK36DNPZE_<_XvJ'>>ױ8蕇&8z?G@IC!2}dpX9/Ƥ5٘,^mJn^Gh<>cbJs14wtFM?'W2_lQ<|~KE'>r_w?>`1Ց%ۑ x:{5; _JOҎL}8Hk]f0#7 ~^qJu_HA!ų` f5$#鲪Qv=!`8Q {(QWS?[Ќf 'sfӁwROǟduMܠýYc {- 1!&%z4<+O@ttd7;Ϋ=ؿOܰ{qV&h! dZ9"VNHL^4>`m=&+8(cHPq#*;/kiO <ӛMXOrAJsm |*:HOaP9s F̶MVnKX TgW! 8Mx%T7E.-8Wz2F$XGɨC/(&eK|Lt~s9?H wz/(4W) 3Q`PbX6&pM4Zm;OlL+wH%;i9i jh"jㄡQ1X`5V֡pź$`Xb,3s !@bV/B}EQS.1OыIXƊ Cb ZBi; @Ls4PcFtKn1$⿤W4Y/k+&] x_ޗQu*Ԓy 0_wYt|BPy; zs5_ʥ¦*>'`>RV=zc=urD6`Xus* .3mdJd5~"*6Q #U7Z|8[5;$-ɗG % nBjξHK#nyOrEϒ1㎰逤"U56˿A ,Uݜ=A0 ̊T޽t1iX%5ǰ2p{;l;C`inmwuq1Sc1o[pEڎ~ ƿqs=*΃]b)01DG[߶* -d}6L͈u];UC@"5뫋6=~W;؇Qo:zvs5Ɩn{i[7\HOv&h>mG ,FncȐ|0ʄ|Y|8K=;>kp|_w ڽumvUjUe;<  zDjPv)!IR++`|Qpv|MYp/qc`pqIHwExV(ǚƫtǾapqSBG3`U$ @C;HN{L8>V|"9M xCtDS!|:邊z`MHE5x|S^?<|v+%PHF >)oTEdN}Y@}lUVNp(пJ0"bx.ű  X10rE5)d;T;3PXӯ =2f$)|o/qw<76vur;KqU4?tjf ߂ >S7r ,xa@"K]D0261csߚ&YGQ4ok>e]Z KLȃϻ  nrٙNe}]и f*X|OӅ&0 ;UjpHDT@Xأx ^.wD\:k8"}8|ʒ\olР2NR"DB炠\CT۟ĺAPd|mGP &ظEEF@L-AyŅ2`ѥ\=K![N{V&IxM&ZO`M<tX^EP@8 dbf!t4Phd6{NN6zDP٠]'Z1 Id|~?AsQ=ck<.G$L3 ^սnys4zd#d&a}wKF˸_x+1 pJ jć}`,>!50l M] o삼٨C/B?Gr|3ǎʩ;(8!B !=YhTF|ٰ&/ETxqWm)>x;ǰp7ew>BB ^"(_MJs[>yvh 0"$bcaAgz wӀ*a\F.i.;.GMצNjt뺷sSgfϡx5eUiG ED'="M'tD:4ϕS&]'bVw5D{U5?mima}&1N!%}'\K ғ,H?8@h4`ɚ`  ~np`Diwp$,Zb>zƎij9O:yZ 'sZ[<%1m67_Ot&f#& j!f"s"(16ΫQg$ 1QyݦbE7kqkbAQ1O'¶vp_"g56rS-%va\q=߾(H5uz0>^`t- aơ%S)S;}#v- N'Le3@{3x^9 /x.7ݐ1A9q*|  c+tcFh4rIO:P-+H,dgPYJ ð ?La9،"hw@ZKdJrП [O\;۪xG40p5`K~5>0gKniAԯ#\Rry ("!a\} DBdJ'w_*aW_i'!o4| &em qpv!Z3T !~#gC4DG:Y=@8-^kȲI}cn)y WgjTZow:oE?!1ҿ߮2h}&JxpV %uSKYmMtTB4'Q橲{'v:~> sN9Aa?27fKͺNGh@X H PC*}@!Ay# .3AZ)[2 B1PE{<5jq:2.iK,ӿo1@DSA#$DOXHy^uҤ6;1Խζ[^En,NN?̴g~KMX ү#$7&#̶GKV[cfu% hw)ΞPKUoi{& J#{'OSN^7:@C6X [6˟Qz\xxyMw9Xodޗn)CН j,!iV 13n`Tzb츚Z'ApbænЩ'ޑ3hL=2 ;+t/?/\~w,JԳy&A.wn9n [K/]c@rm@K%FtVxm>>|-(W%8a.Pqf6ڛmuflR"uF8?lNw"n[Q:3ӂitxL}0e~v鷼l^nAy`|f= p΂#_9Y\/YzPwykZ(7#yW?G|0ǫo{̓{cxF蕼 f9ƹ2dh<džM&a/Ǜ $hժ:6'ׁ=}6?q}kQA(%;>Df̐\++Z4c pP'fvVrR⡀a03 J{bȳѺm8Ov [[Nb@ :M6D6t߃/۳5`0`%dnϦ]sP^8t ^]u.ާO {̲np|WS qi,|eV:CtYYN@LhUf.xo668vǟH-PXeٗlW4n irPyθ2D!La)6T=_n6QҞEU\@=/Z!- P}+Z( |fB@0}drj(Ƨ: GUD)2_~~KڶnqR|5VZW [iGZ{?Y-W&ʇ@?-!\qOBK㇯t'æ뾷x(ѻ<}ł_I/Ӭ)S4 foUQƹnO ' HԂ%; R7sDE+]q^'Ɔ Օ-]s> =zxx~w݈_{ݴA~dwP~59v`UVe&{iլUQlMa_ll|/]عiޅ*Nf Ķ8gŇ64[f.SMm44H~ ?0ްfg~ cR_7EЙgoR;>|fo &K4G'Wn#A:DX},X_"WTI^rv݊|d +i"c1aTd2 G._۲8IMۥ YMa Yy٫Z}BIH"?dz W}l_<2t>D֦䬀 q)6u3 A'AgLmk8Ǽ7՜ݓ2*phULw蔨0HGbkKrx՝g-BRϡlf'_-axe \ӷ^: o¸8b1jy>5Y٬pD#jfa.d:d># HgķͻHC]=}I~)pkHgG6TԱ-&WOLIÄJ%(QCt:7H] .*Q0 r$ͭv{lYdSr7Z O)r9HH 2>NnO:[̪y")_MFqPxW O 81^Ҡm|]Æ$L;?9>UIn}mpDn-ˤ7%X{@Pڦ\YLleI3w96\LGud~(-3OLA'gu)]h$HkK l̃3->Cm{>H+E15s ggt.l]d}z Il.|=Kd#?baݦ[Vvrl<.7{_.Sa ۯ[C~ROQ++4~}fz[1\JzD,[[{.$ZڋU&].[hD~R%W`DYFd {4ξl:؄q{oS6sӰEf-E EKePv{ sf-LmY<ߣԶ\n! !\s9/f"֎xu-`0:7g}sC!2MkxŨܔH .D U-rҡ|Z?KV _SqoLâ 3Ѷ>d?>+/{>7~[ ~M">c˼'zʩ65Geê?Rn޳gj4 ][<%~y[VK 6-*T^u{;E+uG%/;O]>^g^j{EI4?I xW/o'[wsUʉ$A=_m-Mu-VPwAl5 Y]^"۫}R "VvɉcHYI.箞ALޤNG`i7V*m*!1y)$OM$׉g٬ei2vufſS-GҸ}WwT'g9}aii'>TZ!yرog LuhF$s< wdTv1C@𣗯Xt`^5qꖨڻX#^ɗ2|!E>| (Ύ1N_cq{vӝtsx*q%ZyA /ͅΑ[Ԝh5 ʾ)"`em; ԞhxƕlmC{ I/LdΧ ")jMwwbҙc(p7>?.Z W b,Lλ]lXU$Z_0hUndU^1unnX[ux|{j|-y/lk8Blc%"`dD|h,Ҙ.i?Om}}>9775 di`+p+nXL`~=?D{=Sȥ 8ef| KprU83Q܆@;c<)YU<Dsv] =Gבo4'~-=dSWWռz=aŽƑ Bl@1lk؁gۈVon!!+Ž3 i8>up@7'B=_U=Գ@Mr$Q3{uG(D>|{[jlN%GZn>1mX~EU2rrU2fڻ.i\>=xWy@'=<"H/3 ׍# ;C>\H ='ƴu?؆djnf?5aw<,6k@t<->8Ommmޣ7C8Ύ G%8'F$餤U{Ml%8,$G'@m:nџalyVT0K%xgNB4[7%A$[CU]Rlll[ VNXjHprgw? ?=f8m=}33z ]8QVIԫ\VvnkvE seb/7@x'lUnmr2[EVi78K[iI$,'O=ݱmmƼr$)Nܙ^wMe_n:ۥܻdA *,9ĩ9R!~^5k|à CpxYSF۳)&@??d=]'BY9(z Xw?K~ =YY͍ëoBg|=76Pт4ROU;mKV9Uh;4:Xrj_c*j$ 7BHe -,iOLQ. b1\#}^>vn/+KRWqGT)][>uX ~}?B$poscZmdm&ڀh|rx1zL_gmcĞNqHسqlv "6oU5,cOh$SoR\&u8^DGu:rkYzl߇s8n{Li髞cM(Sj/,n$4Qؼ usڈW ! "QT[gZt.?V9u}HnQvS?b| u;`O)y}aZ$*Jѕs=aMpg|+SH$a/Duf;'RSlNJ9OIo=Α_GU;j>zNfi1Y!Ea{?Gj_1r 8~ѥ<"( w邼]"e9\/,rYOY}?R3QNĔB"ʵav[SV,Α9+qTgxiǼn%^ +#l =,9 TyD?[)sEfZ 1U2#o|0eǷ*8aBa'eط8/ 4gDWF֓&`%\67Bi$TcĽW<D~ff(a^Zoq﵋j[RV;zGo[S XWjnEPFhhSB m{y\_ W%tIb¸FQ6h>YDK֡Qӏ@}Ф~X1&CZ8p=?T !tnd# qm:k(9N¶} A;1"z4n ߷"($3 OhDQ3uSM]6'F1o-M\t""_,[!jO\sG,e}O4z*TEʨ3{/ )Nx k tqeͶ}"[lWiE4*(:?Buz2-6 @G_O2b 5._NbT>*@rIdI[~םqg l'!x؆zkW?}*dr]:e-1!LE _9P;Qχ [v|3GD%{;&/B@ ҆7F8^o{X'Zk ]\$k\d٫HkvHIR~4y)Z{BBP.s{_&MX:p֮{gjfl q 7|{$@J_dY=sajWWTT)ݶ0fǣGxV<;e7X>F>>} -F cl-Qc~7^NHh{8ko%(Φ 1K #a]PLT~Qt8`^TU)o8*uK.r?>EȻm Rx.9cOWBߕ%h~Z,k gP, ;[׾Kq%u)_ ҭmZLov Ӥe/[],QNF\pn4]0ɵypE&-B:)OuI^c.%U ʔg\-5YJ(rt΁Pwւ ̪πj8oe[;O G?']r*O׺ET4I7EM]\^4d 3š:D4gȁx]D`(I qF#1{y{}}Fkw9;A%cTouKyc7쨣 OL=J__5Kh d7Wuz}ֻl!֕J|K[VeWnwV@f kChm',LId<eu'k{Us~Y_bAP?[H##K@"p|.^SUC½7-]"m=Je\!ȫeS*dd(UU֌AfDPع)p3kl%|.Y݇$ :srbpI䛌P`tŚU||M?<.1 N[U3z0U}'J#, tGhNC|FnR*``<HKM~wc{s` %Ŕ֤pU<]EMk5cHSd{;bߑ;%,RhcC`["uq n'{l`IAkd-cCރP7|& bw7sD@"17e9d"IɷCM9֦K]:iDץ.S\|r ?JF}ijL "̢2ǽQ_VWQB?Ww /^61x .9V]ω\=UMU6s֊7z FcivJgU7A|r>g^f=W]j;yUON}X]-c= Gqwl2/zqÎ8;Ҕ:s|"lc4Nw7>{u{<VjK!b gf=ݺ; /{`mw`u﻾{@h`wz{av{7myuwr׽w;'w{Vv[ylQGmB^< 6wckܜqgMi{޼:z,̤(*O}{;e-n{]4%풑Kgvt 44jٽ] B{t'[YRP1Q"nR-`iO\씋٪ؤ{f`hMlKgҍ6_}])͕ izFO&faPLL'0a4#M 0AM1a4M2g=4# $@LL@M0hɀ2b0 ` A dhGdmL4i4Im&#M4 &40y53Ɖ&&`I`j OI#HMLII SbhhC)dɀL$56D4O 6IMOA6ALz?IO2h<)$ i)0j`LMM=M2 OS&T6<Iy"jHʐ;d ;66<uqvUTR*)^3Cc|}?_~; SD@J :?٘*Xw/&] ~S‚,Vڝ1޶? ÎɖZ -A1l ^~5]L!:Y3Q%%aQth1q*Xk-/yNYOyܦ&h*탠@aӗ;/'c; ,^'"{ %$ۂy=vޠo}twC ĺUA$`,"ECkv;GfPE5ݽy.,L-vr_'=|-bo&CX9`;378,@ n0TSy{Q8]r6*o f}TOsC+v]vK7ݑy>乹sBZ*8a-(uODV 1AbES3ȩ<>ljk7(;}vOyc&/WDy,ow\ ATq֤wSTkۮXz?kx[^ZQc/qO[dBBFDabAI,| 9n':8*n<*x8Π6>:.*c! :ME]$E ;0bxBUUQ-HI$$0''!ƇUh P~uk)|`c:\g3߯dT_KIui1K Qy܌֯3bVɕ4䩾4hxN/x1X7F_@,]z:8 0'jl9SE7paEv ºB_^R#wcoEJt؛_S#fNܻ]nGvgɆY0\V/юpoZhatmO ˮn^|(/aᄒPois0"_RS@bϖ'1-ܷ],[}a)++Sy(dۯ&s_nbq+;*ˉV3Ub:\>O*8{x(S5ډ͡h?쩿*fo٥ӦahMYW_u4/v-~FXbu.J ud_ga* N5s4YYDgٟ|m(!U G?/Ks+'wf솮yrvE|+=1X~=42ʷ`eq~E}l^sf Z|Ia፳q8 6Y/W<='ڿ۴ڱk{iݪ߾6>N>4c?OasmLu#FFvb "roU#$Rߝ#vvwv&OѢSj~ߟ@<{:u*kuujO}-nvf{Ѹhg!\)ϝe;wy|7ңjuۛc={ Ǟ՝Bb4jRbuם`//~C:׬-R~>xH$Ɠoj.ۇnw.5,ݿvvxt]W^}wiGyg잕{騵g6U鮆c|]Cܢ\-n_! }k{cWcg#e!hYi;轂gME1ףt3_DM.C_P[RoJ{u<:?2/S-`.:m+{U~=IxE?h-W3`PTǟ y!vz_2j]oݳ!MP]<5g  @Jѡru~)oC@H! @Nڈ@$P9ۼ=oڵ5>wqQa9R*~H 8}%aKJV O?ۺ<1GeJj׺!~v?69C Dʨ'd('}S?`t|óN>#ljjt O.?a9?2v맔\>뉯?Wvh~?ۮv,-_kۢd5oX7[Ba9@,!J`0) >hr*diDDpZh@ 7TAǏ=܄S E#faE8_i: \*E@4  EX/c SGБqR)|؂dc AE| Q:8 k犂-EZh%ojn2*戢DU1@ EE P.Ao/XQ._׫niqAYj AE$8D_UPj]JU@dTTh Qj QPEZPTD@FQ TPIQYTA*@ -"PAj֫A-EB0<ܙf&* pU}Pm]EV*@EZ" HTGZ")hB O@* (T* @j hDAj( BoP@E*EEAPE D@E E@UmBJTA*MP"RR HE$Q $A-Ed*PEV@Ch!B@U%@dZQTB-ETR#QDV!UHdQTa*A OA^@A}QV/@qTQvRh*;@-TD6E.BQT"(|)AUpbD:IFb}"w`pdәTBs>(cZV+EJTV[xe#Na@c I!HB! 1 T,X!D*BSǚ8My?h@T (d !ul A  /lxe-s<7( ݸyĄz /|0=ƧU+9(8AO&(ո5j*IQ$e ЂDvH*oDz*.W D>K+׭ApɅAIA< N2(!@≼+H!lTU<臣蘾GPH A!)HhH20+A#EOC*Z 56> OE".29AVvWd1^d-oTtf8ǎoO@@,SÃf4C&Q:qlTY;XP2kE TR)woW4Մۦ46MGJ,S5kPsC7{2bT=Ԏ\yr˗>B{!L AA. n(]#5 DQn4]"h"5.TVG"ǵ).TC=J a#kSTԵ೯^H#gT| | 3qJn|j*J"hO_*+̶c<>?ø><U B : rcDK!%)Q J)**;z0$ PPE؂}"*T܂P@p8ϑy&#˅m\zt}\$vdbغr`^J(, \uO5RR4 g"PR@AB- 02U *(KM@R%**B"$(b OUăQh9gIONIߙСR  |>@x- ]BY,r6Ye$hK"K*(dIP 4YGJЖA(#"(3Jl4S'$0Ətr9,:H],*,0]>X^F:%$:S9XgBV8P9X"IXe*Ntϖ)e:H䠔!:g@Eh3c0oOOdbO16},Tm.ۗb ABH7)/8?Q*on?8g5qX(sG'?tx4%⩖0N"!acfJAgB}.O REA㢀tKB#EBЀAE>9 X( ("T*BE_jCz"A R A EZ*bPD>U8kzo :m,-( !reT@DR(`"%A,R(*KʃE(Vf)D_0APע %^hYP(wj~j="5`Q!GQR X@uKRHz?ϒ8/|fzNc𢢍Kh(TUdAIJJuJadDBDD%,["*!zP(EU]TEQjqn67 qkL"dkToAt{o*5.2lPоMO* / xDGH#)1\WEK##Z'U٨xR \K7sE66= 2p[yiC<\wSTZej)Y J`_$$d$e}rҲ>ɯl %-595EV{kK$R EW^%|J+Wį_z.\ bŊ /o.n..-m,Lk MAOANr*5+.\%ׯ^zAQEQD$I$I$I$hI Ezׯ^z.\r˗.\r˗.\r˗.\r˗.\p$I$EW^zׯ^zׯ^z.\r˗.\r˗.\/^^EQEQEQEQEQEI$I$I$I$I$I8cTQEQEQEQEQEQE[_ҝ.uy[֟͗md6#lM6I$I$I!|@P`RJ `Q55 `@ D%.I$Ri$ZI$I{I$I*ԒI$I$KH(`((zX(zppV,V_RiMOO}{yyOww_ H2%ԤvF&2B~?qEHC򗇺;FUvȖ@f"I%(kUPFbm1p*Ѐ`@(,)++g*-T15-[H"L3ܙ/&{R eꐅbD"")? v6n,u "RTDntJپHQC)HB)ET̩BX/jBČrE+,ln(}*;R`)xbR/5uЌR H! ,X`~`;j]zo NdD/0XsV5UaKADJ)M@ddx}vap}HEʗ#"QfQ#7v~'6ݿ~3)??t?#4L808aDoZc)GCcDQcQ(H.)i{T.**1S4h pľ(@".CR*DPi:T6 WCW-܊wco2ܣz*)vE[AƁ~9@`jD \h)QRA%"(tDQ R\qdwv]@8tCW ACkAR.~ ^~ʛ#N)>) EDbRF+z(" w.ԣJСbe$P4 IeRDQJJ$! pR EDET"P4҅A \KUX&%l"@֊z()4gxJKֈ}@`DCV#VkPB mT!"[RB"-AR`Z (T@DȀ1!-DCvf */3ZݪE.$.5ԁJ'X bA(X#6LDDBY:%8ӃW3ўyqKya*sLwyƛ e\[d>YOōD]?BDr_|A97#'89ݜE³@$bdVQuuZtP*T(= kxT]ST#YA 좂oܰ ~?wuuP\o%X*x?˴+>" eѦ;f -9MNse*79=\B;_?ywy^W/6w *b`H_;@M c@6ؠ~ R/ɟ|$+6n7v۽qZ~%!!%/䊔K]?𬯭wwny < ߦiZWjno[iwoBS 5Q?1,j}RkkkAû,t%vwFQO{>ϘQ8P٬)yKF>K;%6 T!&'AQa2JPpʄEC¤[D =jnk}HFuJUJAp:͜5TT>*ǓT䃒ĩ:+Q4GQ҈g4H3mIS=X3_Gs4TֹH#X0xeK7-tDH@SWƦ'[~nN ?oaQFʫ3Zfxt<2(3m4 T88@v{{n;qw7Pc*/:U@.&vB"k.UڂPDG*)SG0:^ GgIP6*S DREIUh@QZZh UUZTE@BEUdD q4 13YL$ATdlG8<,Џ'04$S>| B(]u00pkwFkil6BI{ 2$=HRQ$yO@`MQk4J |TRA NP*\vr-qz X6AUluEG)X (SxuHzYW sR- vF[jE)%i ?DpJEOe -PPWBEujģeo!`-Fi$BA@},R@;|m@yY.@$Q͠ı@PN:, JFJʜǗc?a@}"'Je HA;Ր`@1C=0}c!qnbRڸX ԅ$cNvI_JRx!;@#Λzu?5wCFG( #MzUN rusTbKܝ06E 8?ٴ 7j_/L|i;c0{l;%IN {7̗ *V<1僖t>?1EUSt3(l5AFAs`eyCSXscxTx#me1-\aͅy#YX@J8({NE^03mGq pN ^(Y cٜ941Gs(^j/@9 \Ϲǂ繐ʚQ7[gySB bQBqja4H?_n  !qTTfͤ6J#cLfպ ;Jc-DDžl򈢍PCa&dk+K %[ Q1P'ky]zqUB"vDŽlh I8i b`ed09ƆiA @4`X|\L3\Z sjchx @),Z#2uCߑfaQZWL]qzfZͯMt]Ȉ@ 4={$1mkR\pL 98b-)6Dt!Ŋ1H!$*mKkdUrbtʔ_,ݾ%)AM󋅅yR%Iq(md̷1;zܻA 0&JhLXD),2V!slpB,|WRZq[bVV-2Ñsl=%tuDwGtޗ]nߎwJ2e,Ov?ӎPq\r5R`د%`z̊ o޿* [qđ"Dh&B. ָԿrt?sZ6q7F%j{h45h[y\hO #|>wq8?^,>A?ۄn]]Ps,tU|c{aGoiyw0}mEkuUS~j5EMiMGǁMH而# Z <_6hKz?v&I?4I>ĨjPD1/c҂% Х*7LH<"*b+;~w72Κ>Is߱tF@ A'= @U0J)QuIKy$uT&I(2143Tw-z^kl \ H 1!'.C +x9HHHȲ%qܩ"h1L0R/߃qsEPMHgJc"PiE( 7Nd:abֲaTT^@_YQ4ctո( A>RÐA~/~_ 8/sH lxW g᪂PQAAUUQUUUVUUjUUUUUUUUUUUUUUUUUUEUUUUUUUUUUUUUUUUUUUUUUUZQUUUUUUUUUUUUUEUU$VpBBb_jql=fC  dMSib::(6ZneSUdOxgzh5QCU pAg>2 jĉqʠ+`hAil̢ 5=)x@q FA/$_Qy7LD*YtD\u/R,d) Ich2 q:-zz^ȊCRTe.f& ?(1 2{Rh-X_4m' ! DEYqG.ЕŽA $(— @(C:=it堝vf͛6l2dT9O\ҡ@9ԝKoKŻZmXhxc wlC7: \a5 hty{-L@4@€#`zYn{y,n47=~O=Z "ޜ7a&92()(0j(j@Rc Ib*CWxd*SA j 1%J^g-8TTGŘl-*X'*A;. ±\yn)żˇ/丳| /Z|\J(w!-(HZ:z <+;#=#> ]a.㞵>S>'rNI˒r-9 a=|4Jlr&I x+I-**)i@QGECAAn~wn۶ݷ@@?~S@@}*!yF@ >wxWg.'ugV #]5Kߢ"qO"A ֿRFv$Am|En:0%qcBakZ=jbT5v "x7[S[@~9 "3DkK65Z*z.圗1[8|1`ːv#kb&ȀD9S+k?1eKDJXQ[g߇ SϗzkUaMliX!~ch7w1 n/N(,}276TEOmz ]g,kql9oM"Wch?I[[#tc5}-;$x ~5Ŏ87NB'P%#"H&k`3gq?K+vo2Z62o ;d }U< SA>-׭f? ϱi=OOO0,g=E@(?w1i i' p.㏂;Gu bAOIu'F$9#b.zY$ d B)%? %30ȺbCZ dZg17DNU b>V(UXX08ͧO\b\0E#\.|Cz1rk? ,ESyĢ < L2|6lP`Z3;soD4rY yGqkSB2b:u`??772R8D =WU궍whW@G(C-5 8Agb yLֻpymk%hcvJٺ⟣y5m|ٍ]O},.(~YF~JW_/X_G[iWss0p@̔ |Hl ]u}v7uac-JAfr}l٪i#LÀH8 ݁`2cƷibzj$Ď|D$&sC`DP~H8QeSrpA #dUA?c.`TY`\guqw NSjy7#lk IwSZ}G7 ͜hsK @*X_=fɎ{PCy}mLOo%ē>Q׫8Y=G}>ddsKr0'ٿn(\ίa#!w˲Iۓ8)>(pMˤ˪e36iVmmYlc5|}qF@M"_3!pܢD!Gj$q>NCA\"ޑ2]`3/!n'Ccy/8+:;ݨҺPޛzM{wW]ϼ쑌"߹8~QCwKX+têm~B@ D?*T)J*W@q.E]Ai7=}=#z ݀ކn&봞+E\@NN =~ U==5Y x {Xq.,v ͅDB@ETB@Y$IQ~A%TT2P*FQAB5R"HDIjh  7&bXO3b^Ɋ #EXm-6Mi_i6"X+ccc豱6"X:ZnˆX[X(Tϋ>c5-}s_iWx( Ȁ֪!^u0DcК>| A@`EDBETYzW&p#kw+ 6:Tj! ⁄ ~-G˄`EBvTV PEUo C?7m>g!C$q0 | tm?cx[ɸJ9;ӴFs/z)C-$Ct7 Ԧu5Vr~l) @&\?*~ ěb ̰sW=}aZO,.U 2UQEPGQ#E )76'a?u=lfBq8u՞o 8BUQTa$"To* ׵o]Fow̸ Q\s/G)(مRJDavBX "9B\jj%yH6)ABN~.ޙ X˯o}"!km7Dk1W0&u , |zi22B Hp w [ A[ 8wi11 >v:Zy&Owv.+W-ءH'RyUаoAHeވ(}笼XCYte:urQ?*3s00};L=irZ&]_υnw4&OV1:/ޏѼUH;{iG@}rXx)fTG7׶?)s̀OA9[}~ֿs~/QSόskyr^5{'?dS'|}|Xz,"otb.87MYwU>3etVVVVVVVVVVVVVOVVVVVVVTvVTVTVTVTVUVU6V]44nZ7M CC+C+^ɩv{zxO>ْ@Z?_/n!7 (FFG!GFyc>χGHk[ӬNIcUg&ZZۢu:"|s~^R֜ s{nR}ΓY:}o2O5Nqelz3]W+b?Oqv}; lyODžiiiiiiiiiiiiiiiiiiifsV~Ӧ.fU_m:E4_*<׽?\\\\|??^4M4M4M4M4M4Lٳfͤ)6lٳf͛6lٵJ*TRJ*TRJ*T4M4M4M4QEQEQ4͛6lٳf͛6lٳf͛6lY_mF8gҨ澹#aVlٳtɽPkJW; ̔J"@i΅$AIR-*1j?PO{P(d'wwބhҲ#0p9-Ŕ'iߪyJf(F;-ь-`4bfg~cW L2_'eEmk~m_WAjn֮?W1mW 2Vک7}%Wǥz^8(I))/xnxmbffI>:7;A,UM6Ъ)iib/^)YYhp QJJ}*UT՝Q]SvYTjҳJ*Zj5g  `_ghul+uT\\%utzj+PUAA7                      J*TRJ*TRHVZjիVZjիVZjիVZjիVZjիVZkV,XbXXKVZjW袒I$  444471c1c2 (Pe (Pe (Pc(PB (PAc1c1c1c1c̦1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1` &L2dɓ&L2dɓ&L2dɅ R)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JRӧN:tӧN:tӧN:tӧN:tӧNB!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B! UUUqqqqqqqqqr q8 qqqqp˗.\rŋ,Xbŋ,XiZjիVZjիVZjիW4RJ*TRJ*TRJ*A*_<<<<<yyyyyz=Ay__$Gyyyyyyyy糞y(PByyyyyyyyyyyyyyyyyyyyyz*TRJ*TRJ*TRJAAAABiJ+f[5{=$H`:vvvB (PE2J'It].Kt].KҠt]'.["" @?@DCc[Uu:>Kry|ɓ6וf[ xayhoNA}{CxDF1&B!uL[`\7U8VR%0w1}ӳsssyʹB6@_5!ӨFcF1yK,PAGShQO/"Hz^Wb=3R oI?)1>V}E ;?ۀ _+}6oŋĦyz{_&SٽU]EGIMOuDmJK# ^9l- ڞKN C;MKm䧊lu:txxq|O(T"بQ 0 BRJ[L1"o@ ˊWb Vo˪-^" f#ZOnt3%1È\N z|^SOtsvvvv=7"pf#bxF 0x<w׼T>ܠL6 ~(qF  &˅ns4QM٫8^62`A­Sۜ ~ݵ,(c:sP~l A2KȁB 騅PN霔bvˁN<2[/"G %V4z80xn wAxY̫FN8ArДhG~1BH䖘Դq* 80jJPjW`R\L%Ld&]}{aHK=hI'i1'OjR tHp(WH{$N(|m9}@" '%´+.wN<>UEzGg}]|(BLWc"U?X3"fq KDI rFp!еB ~aʰ%r JV@hKl0hKX,^/BX-,hƖI`1ZǍ- 49kB GhrBVVRRRNI4||ttld\TTLLD<4,,$ ]@3O<fCsܽjccwM i?oak*T?x"vCG<8^ $0iAқCiu^/n?ϭ _`t1 Kᔘ]/VAr]n2_OMHD/kIf"G#."G F.KeOlU%:IhNV/ڋj% {scxB*Pgp;53/t_%4AGC PN" )KKKTKTR( R" "*4" * BM*R**"Ҵ" #TҨHҀ a"E0y;9>OÑ<Ȉ+p;4n:@GL } <g?SSɩƂo'Z`i2JZ!L2+Mf P]f,D_[uwm2eJ% 9r7uw7]s)ZQ.ΘzPU陼T*D/vk]DQCTwl΁kdrLh>>( BТDwMҏxL(/&g'.. vx.KtOc3(,6h BKSchr0pV(_ŷ=g@/FSacS"   ,},+:DA9 8~Az8y֓IANadmSn>Ja i8PHh<;c/,I$6 Z'n{1**V0!vg2[PY.fTK8OH *γ;S~VVvH' a@}'Dp9942lN< -b|vS4}T6Qzo'~ҮCd“5փ\۵qD=gڿZ<,u@=wY[`U]5!0?;:=^/{uO(Z+B)]?TadRJ,̫!k?a%^U¸x3 JV)t$*@""NsZ[4? iie{J9{Ƕ-dJ|J;ժh}T``@3P (9ߍ>&ZJKϢn2G։7pٔ?'5z߷0HG&T@a1bǗ2 Zs }|7a;MQ/xrQ؀!Y|c|'-o  P5E(*R@+E  !BPBPP>TiTTEDPUZiQxX>Q+Ҫ"""TVdJ H*4*DR:ow7>M8DkXۀ 0iR亄wpO+++YwSꪪFU`dZ[\/1@; ̜Z'E>!SE4h[T$e^r̡+Ca2h9d^ (dKM!IBDp.sҨ b R ȀP CiDQ;HP\vo::y{:ޝU2ybmh_=>>AVM3WN3Jr{%(D^fYi^1Z+g&v %Q&HmE-ĉ|T0'iUC@=vt *DBz`dD4 /V뽸} WMyDFϭqg%_rV,._ߊ<^Cм''t'zf3Xy 8v$"Z`.7='IķpW}e_Tgl{4@ۘiL0ݽ}(B@~hl#sFT-U\O`)yg\+s:>3b"iop,M(7 g3̖7ɱzW޼,oCMdFA|mro+a%zf옉_Lo!4 @c(у_NՇw\C qK/7MC/.-$-RdU#%h{H37{c.c[t/Γn 6ᵻp ,H_ށ!, Hs-@9"J7}/<zC^MyU\.M.O8\fǩWqtv~^Õ`/L~^RY.#'mJZE IlOY6Xt]mkx65E qN OA h(ۺZZ48C&J4R^l.nn+^``ɻ&ӼvuoEMYYfg;fbhY h?[}5'byR}LܗqE9N XyoƄɛZ9DnGmwNNH"#<~iñNBi+g 9KNhky y,DKT_۶PQA!",@cE4:h}DU}Iԙؽͷ * -\P~n݄ `@}Z0JL6P+ vTqL. 3>f6gw;ih{sk&>*U0')9omk Gq~4,.,Ï=P;\+S1H~I5chWF!7:a("QF_ ?W5L$~##Bc炋qN/̓/aOݗy߼+xQ;_/Ѣ{|k ht);*J^ݹrwɫXOXks(9jTV"n.ds}WY_=5dq^tp k.kpg߸N0-Q5"فZT[w3T Wg #c \4~U^l7NA@n>>t@v-qsԘ8D%?,fgLn_yΤ BFc7Έ1ٮD&/~v;(y"-_К^Xdn=7]v:gVf,[p<,D Tu~4'ݖw]}7cћnY~ ]x%&-_$%^i>9/0V~uVK֭W}"oU i& 6Za?ksf}"MC,;PL=2 Sl%f^ը?}1D(z2 P*;Z`As$HW )Q8؃/ƃn\iNcCm |lH]k0|]e ۬x}y _! #%Cr2Ә+vf<N_" 3u~nj:kZnS Ze"`olg3.09h=犞뷂HZR|.,}JII)[}I)%GGG꣣:#$ u }m^Lzk\bvu`Z+o^)R0>_>\T;1zx₞h!胹XdOfq%?{\|^9L/푊:$LLmO낌r'jk{[ uqgp. 熇`$g7>ϡ>VnP$ f0^0<8{ fO?s*4ʟ?%2?BDZ"J,K½5;1v-Yx'lvZdYyC  A+Yޏ4msϯWO9s@0!"EA:`D$@BFIE$i X$BAaA/^N?:otUp|֛A@Q8цS6pmE3K}魤w1CD,e`&}24b yBA"TqȗW~4u'Ǿr{@Di{S]Ԋ)4jjjk=!AAILf_X˭z[`;BDBh%W ln}ɉ|ٴZ)2 T=Bz" QCq3S#T͜|rl,KKr&a_ۙIjOyCW10*P#(2ObtjxG[$v|߀sN4U5əs!zXv~sI C|UZha1aokҳm݆L97Dal0/:ֶr5Mz^[R`cDyUfڞVzf4amF#W}aY>RѺouQ^F܎J|Ma$m87>a,Ţtx>#a_DRqȀ(þ8 :zl-jyMީHFMr!g>IxM^ ,%.ԙMnG;;:;:wrӍ}E)Yr^q3`* gvzvRxsJD:p24cEЃ @go֒w;V3x RDk-_OSDzNTa,)l,",7ӊ9Z:6Ã~.n=6[bhh2vJD'JbW4c!zg]@ڿy?7 _];|#>-2OOzyz5_=^6]m$%Kr-`E4, ]x:}/WL}ܣh50d*s{"l 0kՊ諌p%t$%g@@mD8@VEuw?,9&"`:*iԑ?ߩ"" HfpD~ZXu8x]OQDg+^% Cz0d;6B9 <]&aa?zXyA Z^hT5M+O O5D{f=A Qs%CϠdР32";G/4%*5gՖv;ǻ6VgdX {= 5`@ifTtԴL7缀^- 8DqIR")+)Wk!y9{OGC3n`LOs\i %i0*هN:%X. KF%AIБϤdYŇ?7 Y@dI?J0Dd^S( nWHf?mm (yG:y+eoĢuUAϋz+LS5 >`OF"G X`Iq.ych vpUc4ZPt\v99;I3C *:Ih,Dy^r2F0pc$?g:67@%~~M2stOkmvxR'Oz\?h֊u n43B 60]&Ƒ@upZ0"J :7)xb` zlH#3_VV PLUUHo|C)aSnmPN$M8`\E$xY~;!w\sQ37mV'qv{|t$Q*gx%sP2s! pUYlIxFsM+CQl`X18n&$@VG{-3 \Q(I qy[r3 *l@w i `&" [Md[4֎-%' I>؆,HF<2ym],2qtM+W;s)zA$T?Uφc&A7S=*[jgՕ'6(5@˫y{aZ9 5JKV,L: {09bG9?/Ñ|wOp &s5OOOͷ" Xn͖@8b-8X{Y b cO@5 wJGp+rfѓCqtvR֫,"-48~YȝHZ?NOs2+5hRrsHV['L%xlb<䈐DBXlbfyO BHo߆b.^7@K D=\Awq0$GJ(fGm'fv~=wV'ڸh&d{j4d'I Qy} Df8c0<  ,2{Ӌohq*y_yL }3㿧=9Y]IV4 9`KeI@`lKo?,``Px ٲ*+((vQ ?\Pw*Ixo5ߍ}7bA!C3?}D _A73i`&/!e4_ikV۲I! @Әcà `o3 n6z;V @y+1In]cܖ `aFs.mD-Blu@R#ܖ[HRX?MB (R2T/wF˛3)Wyy؄CO²˜WR C" .Kx(u Q7B"91:P@[ rqq۳W`c~OuokBQt"P_Qt||D03of1DKӗ_i6lu4|`UiT!@٦NS܁!g3JF ]]Ք]m@ONstO2уr:Z$PJLC NYz_c}2I߷jZIs ߎq>O~#[36ƦklmLK{kSl7ƹ\s@kH:(s:d>E7昧0e 8ίBCz7e;YW5/]u߲|r>M{׶rTx9PWgpΧCE;.}$Z]zD q GwM &0ߺV_ DR-YciR|?ħFQ2lR 梐w+ώ]w+5 U:/f7E1OѨyX kZK t^s_acm:Z޿tsm\g F ?YP0=nU7[zPv#Dns<*dgܿ5i?p9W|@:`Lqp(BK hIŕv&9Y2)@q!z=,'te&D#.%y{JӐtu>I@v`$u| \[X@)؍"X66Uy+(,ʁys[7ֈ*t Urmm%GR>'E45C+CR&v-7_?GЭ4eg^*\J}"Nz BW&GyyR Hqx7h@BM^H#A&pؒh`(A6<^2kؐzE=;9S R|jLq/$]|SL*I*Sڻ( ߀>n>+oS/h;+TTT©"}:ӰV~P$crZH!Qn|$RAî?i)kGۯM`dp#U;_& ,4ѫvuLh{hrLOXJ0?}1!Yb8~1h'Ffq=)(OYZ|xtՑ?ф%Dg#OoLjݿB4]}>$@9SIe&f-@jϭ"fhƿ jG"U9=܈0D68{?x U& !sMۊMVH\U6eJ=jSbʴ=k%2ҥ1Oov=^/2hȸ!uͽaD 00!`jTZy5cs<;X׳G_̏w=8G/c)@-gb-{t;C;H ;D)![VgOA]|Ȇ&gS ڰA#L 3^vcŸud9eЎvrJϽ1gbf{фU'v]%E=(z{z^8Rog> bcl\|@"uڬG3BЪφHr.|=o);OKۋZyjӀ`4vpmWǨҦD>0Xv1jB"=dZX6/-!~1001RP1R0r s2piVX8 f||:9nY٬G$_'hW\j([m^2jXXXXWIȿA29G[:'xXx{Qij.]J@޿>:?uߟ[xhD?⿟)ߥ8FKxoxwyy]*`Y]0-ZpN?#afY#w6?~wn[u=qeخ E^EO]C럄lr9FUIEtϾX_ 7~v RFʥĹ;SU{ߎYk9箺[~m(G}"A??Hث~{W{{{JiRJMZjիV\KcZj^^^^^^^quzKAt]v_Miv]Snݻv۷nݻv۷lٳf͛6mnݻyv:FO϶lٳf͛6lٳf͛M4M4M4M4M4M4M4M4M4M4M4ߛ`0۷nݻv۷nݻv۷nݻv6mlC${?}]dQ7glX7^Vz~6f˯rm k2uVweR,5 TڭSR*zyU5m*G*o\_]@@<;~ٙ[rV{]ҽ|fs#zo (&\ld_|o-~l N],G!`y4CSOY:{L@ hX_wVo.yJx*ji 䈧`z}~΅+C6cрD4}f?p*snDq}й;@ScP ؎aqGS"Nβ KqT3T\쓍# _z{՝/RwyNJ#'[r-ׄ4t,iYOeKiهxu(8:<z89& cHY"FeAgiϧڬΛՍhJp%.~IC;8+Lw{'{r)#'àf)gi]_$)&)XDbKKud֩4]x""6k:~S[vs|޿줝#NƒJebf,)rŮ llc.{aԯD X\l}OW7c|oka[f[zOt)* /Gq1Y<`~╚.X9ƙٝA_֑NWheo;:xS*D*VA<=x[pv!8<8''續USE r5-_یLZFд"ZZhaIE;>P'p[p!} o#+O;S8Li`եjQy);"c3kQ߹<W;UE"F$(!t jmj(Ā Uhs ϱMTO%G˴mKy{67[[j5aU|a#D@<+sҍ↾RS*"(дHBZM0J #>^yX>""؁dWY{=pgS5hPEE{z/o+5=SI uv'whIs\/!lcw"%@f PQDD;, Q̚%!VHlGTSKEjЄh-- _!!<y1uR13f'x:k?:X?.GKۉIsǢlsr1n-׆[K1-.~v%css }fsώk^~MjM&KWsqc?a4mю]:cIn~lHĊr*TLYv'q ^]oMJa|QwZ +0&O5='סCc;w8g4ZiӧNׇ{v Pޔ[G-R54֍#D@*U粸l7/|u{3F! _Ôıe?Vwwn_voߗ'_ywk®WV]^6lg'׆O˶E]2EyIrI$1KI$I&]Kf̛zI33<4$M{>/&ES%Q:Cw!" e6FZݪE[+]u{u߱:Jl`lT420p5'SGWRb~GJ3~U`6 lE]g$pv \Ȫ>_poo/7jUU^"#Y.[u:cj"EU_ "yyvHE̙UUUUWއ;7?{{yU{Ĝ2*EUUU+ƑUUUU_ uUW$UUĊQh;>?1י(17$<>*:)*1UxdDeC;8=W6A+Pju39-/l| S rdWffHx9Wlг$*8ʖu[kݟi#qNGrp+Ca݃nS[kD &FڨVCh *e:UUċ$4r*8$R\r\r*q"܋maaOX  'yz) DG"u0'srn1|C34D>˃n1[K=4Nݾ{wx<2*dq9ύasq[}I$U&I6HUUVHDW2*ȺHEU1qUd޸*"’yUU["W9<9$d4zHTl  0XFK *#4nZDV*xꗊ:lAW" I.D .Ut-Q/(J%aSz}Hf?ch-g6=sA$x=:bw]O"?>~Uf9,U4zSG0xSIbH fpdQ( H'ҥUQU)UiEUQQDDDEUUUUUUUUUUUUUUUUUUUTUEUTL jUVlc\du;;黏x?'NEH.'G i]Y%*EH/ ȸ2-ȫ$]OlbǎṊE.@ , ED3H'9q[W-ȫ9wj"W-ȫ$UbLɉs"%ȸ2-ȾKVHU*?"܊nG j"jH*nUUUd"܊ywyW8~?1uZ'svZKe 5tyͳe%J|3}ُ(~S\ '~m/bl,>x^iׅrfaSzI??bx)ڝ*=ڮf.*ݫz Gd]UUU[7kt߬aWÒ*"9UWI=,6+v71$nFnE]d[VH$ߑo;<.c9ޑwH$rU-ȫ8ddċ9U*q"܊LIkY"%Mu⪂!UF@Y#-c?4fuHKKTA#Ffv"ϵ\ 1 a a︈vz~B)9G0[cz#}Ï$|k gy<%^ms{mHU)9V.88 :tuCUCVPՉ l0KAQHcHrB]̾&bv(l0(Hݽ(I,j:RIlub*r**@h@)קJҚS?u&iwKiiCD@>[((_zqԑ"#T[iN`D4@:UKVfL?.Uf"x|&CF ܕS2*o.|Ch;yg;ɮȫdW\H_1;~_Ƒ~*R/-&EUTQy`E.tw~EU_> Oiu6$oџ+<-Dт/W}n6t0=&􊊊 o;t;]߷s3u(h\ Z#̓TeF`7ɚn~#y: [sW4䔞j6TboC7Gw7-kq] mr5F#9|OL;oǝ4FcUj4 !3Ǣq$g^k>1p`C3ۨk( M%P ,$S7̏.8t,Wx %2.WH TCA:2*vsW}XBpCف_7*~TԤNtQ(\i``/>͵_b4?ٹ'|^Ot;;㞞3Q 'zѴzplV Ojl[`塚0hF.C ḧ́+ aσ2H)3)A{vV׼4;Q 'y{v R[YhgFqd\d塛x5ty+X%m |AGN Oe=MCb4<sv D Rgχ.̸q{u, \)<:&! '|Ad2 g>ŷ@IzAyzx DG>uҵ}z= ƍ 6|j<3I,1h2t V%4 _Dhwf&qM h'"rFNB]7nh4(ִk0dtC`VϰPg%$[ DhW(F&qG ,wFsнY͛Ia-wJ ѰwFCиj9'f!1N)t C8دJ$_" _4n>iDK(%Hkrקy B^4+hgxG[e8lzb4}XI5bKJd;wS̖Z1x7Ӑ.oFoQ!&p `#g^ۭh<lKHCAjKJd1I-Ex'Ӑ.oJ1C/@7jzbY~vpx&mba`tp%X2wL$a"_ txPץyp4C8 B)Gg'v ٵzbDLK-*V a%XHm{7m$K.87]4$D)d%mzZ=JEC®hhuŵn%.^9ۼFle-aJI6`1Ș|p0F` _^5j)' s4ЍKCBfq,r%Z4~vp{doN.k RF NY`1$8|{=͠%$a/hhxe6p%.^=4hޜ6]Ĝf SF"07_4#I&qz'@>JH6^4+wr'l%`$Rޚ8ARF#f=O2Z(u4ć< Y!ee_kF?ɾgyu~o  ҁ$vό8%p霻ME3p0sĜLz޵l,s9MӿDA@ 'gǖ J=Oql:Cy=r7ӍZy=75L<0lŪsʆq A>BFQ5;,==AQDnAE'U;ХXzFO'}wh[#½xAM;V S:(7a< ,; iN:=A>OsQM!z^<Хvx\s>-f[~Eܼ+V S*<7a< 4rLܨ{~= '7٘wMG=|g"X7t{+/H ]4VЁG5q.5ycȭ6HO $O\+O=E< WRv5ҵ_Эsh{ nG ڔ~X㍶4b1<1M5Iӓ|թ֨Fk6a*.,46:I|e7U+q%$B+qԚ iYUeu=;E5t7N LkAudc*A5N懿!ᚒfrƁTm9 ~[ vNfyf2P˺Ni-;yMmmY9W-:ncB1KhTxW(25bPj|R }NX%~]ᄆ1,rk߹/(NLH'܇J1\ha=ݟ+v+`I~Z,u/yY+"Brb 쵗iܐDDOƚ1⛘-zoO@qZ[ex9=K3z? at:EDikqHp*y<}VDvp\>[ }Đt !J."(%@>Bz(Q۳;[`G;ҘfPEAPH) H$[DH* D0kT[,!X( >˾.. "(UPT28!#zѪ+Ađͦl*4, $> W+H2gm &SBnEv$8H]Q@{= P|/}eJ얨!qeMze$ $ , ѻ[BPxحVj$P u۶ Һ֔ 0 z: 1I1'wx^]RM-7ZBΦSe5$"$*ٽÌmvM!+kKQ_B5T{/Ң|ZLʃE5߱uoC{)<ڼN`XA/zkC[wN7Emc] h&IOti]Ŕo)r4~ njPaFph 0x\,}aR[Uϑ M7 li/sz-7K{#1_]\z %YxAh]ٴń\@O Ի f(yΌ[?ZS[A,qC `^Ur)LuVI1 @dCL_coqG8_FRew^tJՙzzzxF\ܚh 6&4aF4H1`=YigTr}{©?:PSMFFMF%E֮:S]̻d&9g;&k'`@k@"|9s6_Uj}\.g.jh ya*Dhb[[+ViVW^y:.# GN_`~C"xCxFllr`gG^g=2TQ GpX@ƎB%!wvwi&ᜍ@ˀYb;/ߗ*J1bŅ}&>'M5 >XS`vK[)D2iz`a ὦ_P:AEǰ<'4Λtf!ϮODN|n_NRk֞uxk^SҾ|пIǛ7'lG+9dfHn`@O?#~Xn㕃៏m;m{X|0E,F6$ThΣ>,J3$t>G[Yf9N(#; +%HpXFX/ɋe|+7p]i+Ӿ ?'pj1lǑko'!0H5 a 幆ie4\P=(&EY Z`K '?y@~o9NR33V>BJF_/["ui QmM;P|NhZ1˿$L>]Ofgx66wx'_GۿF>C~F8>*,r=LqF TԌUC}:+! !) %!#)G5i"J2BU}pJI6c3agqZ6/ kFǕtE9$\C[sB0V fݳyWw|)n^<,js€ g@ _f0iV cyʝ/B_>!Ᶎzݠ"cx2}1uxH6Bwڴv&+/{+琀1Bn*P@ O?l2dɍ50ī/cx9\@YB#Q/P0{-:\>?t?7:b0όqkx>˟7F:CixUPkX~klk1?n*YFO;aS 1S2:DERrYRM_j$FmS8 wyt%w/2 vt~+PD[8~qK&6l[yW#Аaqd;oir:LJL3AQp忠nLeЁ{9Z=] 8yzzz4Eu]|^kZL_+C\ʪ>X7HȗA.1KH],mWyΏL)bdž Nm-0 vc yĊ"`W L7_eɬ}AWeP.$ cG!2{$H=뺼tֽLTjhN`֑mo9젚ќKlI8Τ*[N*X.}Ճ 9kӺ6 ,Ry +(.F# چZ'qY'˸ kˠ)Jz\p:Ϙ'W~E~` "yJVД!8"GQ[sZtᤘHbń[/[ ;bEHdԑ gq?g{d*jSLR[?7 1l͋Ȝ8>[ߣC7{w<|^#9 R{7B󁡺 xhK-'seAA(RRR"V:`CcEA_ܬw9k{7Exf5:S>K$>|$p.% $&o.,!'~`yޙ* > p#?AG2^yyy~zQT W_#nz/7,KKLC]bxP|:ǔ #o(( TJf6N*l8\+yסv#gA?ggyR"Fhoq?<C%Vh7̼Ҋ\;wJ=[DzD<DBk|KֱG'\]$*-6 Ծ8 A~37cݘ\ahR#CXp !=8`!J" @PmU 7JuG~od|a@Iӹ,Ks~po$nFpK4J ϊag޻qYGEE h3u @=;ժ+& }k WVևWsMzBDD@1)H w@r.zvߞR{ %p]iރg7UxD܈eB (ht]v*A= 2 Fn,xomqa0w+巐ŇIFGxMLKsq[d$Q> FA2 'rqbq*(emr>ɊR/~ٌ.H%;Dy[E?mϱe- P>PЄoQq:;*m ۹l#%uyOUON*z]SI D5Fc/%5ri,on7k`tx2.O.֗u_-L:'d"dg?u2c=.wuKo:Rp ]ZKe5{{V^ݲqp]HYW*{;ey7ѧjyB00#FzLbN\s0|2(3YTQK+q.FAjxZ߭K?_>kL՝50q'.ߤK3Ky7o'A|pz=z6|)|ǾaXpHp-* **HQTTEQTTEEUEDUUUUUUUUTPh%PZ|"W{B5!]IKrC!dT ^C HIHił--D dKJ--(ҋJ-(v4ҋJ-(ҋK‘" BQDAAAAAAAAAAAAAAAAAAAAAAAAAA~娂g~;{{:iM7[vIn~{}\t7R H@((((((((((((((((((((((((((((((2L$AFՏE-I E0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBHZ 4\("  DPPPQ{}QO\(>WQT EQUEQUEQTzQTUQTUQTU)^Ze~.h******EQUEQEUAAAAAAAAAAAO*& D `F1_O-^Φ_[O>#Ec?~3q\_;@:"'57>$ @O|"};Q^nװX0;Mev:k{N/*]v`*:kl#ac7Q=^Idđ-2A_b6[>Mɟy}! ͨEE'2鼱fG3<+߶3x{Pd\4l  1|V׭)qAɩf7 Gy r# Rk(^0M΂dz@Htms ǃٵqr>z3<5]OW#vc0f [ݖ Sxi-ٲ#p{ {!*Y}@0Pҷ/.{Jz)0DzŽ}VW~f+B](.p8 .}Jޕ#sb.yF$3hI}s;C!>\uvV;m;ogkYF t(aýCW#ad"sĺCO҂{^-P; A'v]E(Z!CwŨ-Al8\-1ZHR}Re@6fuƎ+555555 c?i"vZU _ކ [4zRz8ep{p|@wwwY5P9輮:c:0c0\+!!)0r*lT={AsyP(=/9g};pTx?&ϋyDz||DS>wߎ˿.2Yz`1SܙTCŸ<مXcLd'؆IW\bu[ײ*E\t9sKoZMF%KNEY۫-{rp?/ܴʘ }[m%d/_6sk:R, g0%!;)ePDЋS!p̄eBF6F[?ƫ+m` yfru*4*ޕE 1(UZpA*Jڟ֖gӢC O _!巳YQJS18IDN9(yj˥R BWKtnO5(&rY/'pݽ[=D28‡ȃEIJEydxBDHvċ "R!"E)D1k)!傦tx\.SV(`S܎u26vԈ/[x w`v|Mkf1ϥZ*  $f$ :4ZE7J0S 687o;w?Xz%>Ȉ_5_V® gIp~K;lt; ,nE>84 Gc H󑙙:*Čgb^bg_q{U)68ϋYx~}pu'2ԯiie?8rxyC 6|Cч>:1>OOVNN˺2Θ`1 q\a5;)m.rEeio4.AOj?V5u(lKh=3'WMS%8{j$ 26tVdY==y]>Y􎯩!H fki4L3 ""B'k d ")@GBv^1JK¥,;5hs6 Y}nTi׺<;T&/ ͚&4`v/ 8^F 7nѫF۷`  ċi%\K8>n!TR8<7O(JF5-o{㈖P1N="%e%ߢbbc%e%$d$B1FCIR+c[-}yIA A/K]1i%n3qu.pe&&]ޘ`+o: f]Mο1 (Z8_Bx9Ӹ#qSEݡvswMuusu3M4/8i1@D^!FDt DX쏁M seٛp^k7]s 4˫!31D5g+_"ۦS Y)w{Z[2.q HX2AsW4 I  ,:-Z]lD4BIK,XbՒ\Q+)NN,*se_V8LSpD +8DXX@4>-1e]#m:uzN 39xOttxpD@GJȵi#&\dz=_Q8_WYEQEQEuY;(͚g/fݛ~umۮf7+9BV@s*G8EV)r[=&hvh6_;ڻ/pW/IsK3Sôf3so6vsJmwG<7?E&)-Fl[yiiN s@uKJMI wFK.caC=w!0'GWSSMAMS: L6/ ]nTXfmUiWT0q\BjI >)ia={ޏi*K`qpa>OeT1tQ߁ah!sƌ,8Owq,be?m+?^/gw<7!7lsG_?ƺB/6pv vr_/ &\|egz}^nSYhOÕ-ڠꜭTfSYYӇVc5GY|@mh^ ]_Tz,3ӻ^NZcy:zLh~?%ݖE]EĞO5+gt<&wq:sw8ǥ{=:cjM+Wcۿ|ov}EElvv15{W&kSm{i]fk]vis#m>iq)魖ޮީҪ=0?i%wq_i׎HXt پGU!IHIz[mmv} Tui٘ S~= now_c>JX&;:^VV[d'ooo8 qj8.ki+Xl_)Yn뽅H[uoytt;9.Ka3v Ǝi>BbSjLlygo/-olYɽIɶ[[nnr. at2Oui59ntUv2Km%3Gl, >))f<}ثcޞ&}g+Lg ;oEҰy'?]Ns_Z:5diF=/]9q!oݜ4b`a $bPrv7C!4Slw.x^xvh6ζOm!$KΏ [m#E#$>ZPq> cnQpp<y6N6.*^R>6S'%1\7K"&,l>D~&|֘*2NO-x_քz愋BY֪U{0ص1 ޲=i/ xV,c"Yp8"@gy_/wFrCFmW">mv ~?d:{. CU^9"v'JPUmb^(LvV%,t':{"w07gN12!Qxy<נK $zZN1c C;3fNdg3ѝ6FE0.b,1d8Lxkq,&ěav9 K,^I! d'Gv`_V@DA[]ަOzP8@.]?Q0R65E=*(;\b$ s](74o>ua !XJ!AѨV/XV-Ҩ Q.bʣpUm0+ _BZ ZSKA(6~.`@QE*jtGI]=w1X-miя2/`EHEJBT0{¯U}MwszSK1O_жs>NZͶ}Ri56vυOI?U?֮WxG{v@vh~m|p#U|- '<@CT⻸TGj}6-6]>+/y0M1sKi4R>Qzw^#?í#c@VЭmm"u ٩҃kեܨn7 i(`S]n- igfK]ٙ݊ܨV^k/LyEr߯=O2ުD@5=Ay{z27뉊Rsny {LC94`!5SOu{dP'v൏~DR'`-?wۼ՝iڷlVg;׉?Uׂz<|W)vvSI-[g6!}ۢ*Tb ~vdO]5M|R~7;W⎡Gig]ͮ_/׭ #"t_C9e:$(?v r\dnÕtly[t{lCgϨ=)MPoaYʣp Sqt<(`Ԃ_ZAh`Gj7˻޺O*u5|~ؼ]Hޛ.~pY[*EadO$HD"n/_tF'@* d $%8Pm/ o/_%t ͎sX?؞xxxwE醍-ñ"1i3׭6wHIErͺpuD1sυG tsp@qqYQϖh,chO﯑Q#A+&qQ}W.\329 ^eWat81: ޛo*UD?p΋2&w÷g8#xCG *93cl l˼zfz-f6K[9!OψQdw[?@f99Z!:uyMڝޚj ^P@n >*T:d֣'ggc#'cg_'eagKqX0a77k|\i㡂1HL%V!Yۥ6FTd=+xs\_Ca ;Ϳ?<ëT}Ovu^O;?v'6?c3 XǶ.0cqz?apv827⹗ B{i]>o/KӾog{#HBI []:1|wPnvxg"AUgRRH{~e6HuU}bػLt{6}mLW\;>/=QxƝ=,ag(TUoO_>0RJe~$P-3t00jzf&G]@_%C,Ƽp{z8뷧-<Ǚw4Y\dOrq?ܿ ΓI஢^{×!t/usmHzf 8wiiH>o]4~vZ_HIPx^4se6~2pI$ѐv &rgHN5oNZh(r c"$)tȢlTC>0;dnjܟ>vyImWi\K ۻ8 }w_ckacssXdnL!EAFۈ⸬6Sn.[/J'/3읔bx o^YMH1ǿ-wػJn٠cI~^o Q}=1?C4TrP5Nb*'*E@=l;eDD/DD.D8D9L?=4jy:֦O+b@t]Qa-jwAhT,9`Dcvg^p!X9FgcJb#뺎c A) bduE+EC-EI;@ߥ%vXRcJ0`Ɣ9^~ >v"`m9< ZI{{N9?lp LAfW[=Y1Tj@?4dD,3jS;6qVL->P)2PV{a#LHf\+,Q(Sp Ȱz͛&Ʌ0u$n%\ ߕ[/8 Ϫ 1} ͷ׶q-pO~K+b56"]YPjۖ%Sb'O O/Sso4 7=iƭ~9@)0"s9.M+Gi| S_懻.]v`^Zibj}~D+}]K/͘$9~e+Adt  kJ5 LPk{ٺP;b|'eA5=P\byR$[$<'A5cd< ,;EX8L^j~ç 6tA{6l訄CyO%C 2D6`F;YSSRŮY':UVp6l2jTs%; @XCkavjug~`Bh#Qp6\*Ub꿝m$]\}[9:E]ܖIֱTWM3fbɍXUqPC`ї%Qs\?@&vY]G@D@N/kbu xt*(IU.}HAP߱?C:1yt"( PvVVV6ɇ D0A_!!! 'uUTlU|^4*\Y8c:~/H0BHf_cqnwnaӿm_'*+iiIih N9%/ǻ;;9V[!̴`B]`}翇屴 E3xsZY<3>Bl6_%_e($A3 )@03Ͷ4w[D҉id2nCᠹ NO7u-iۮnݽ#wv-q4vҾI Ng"Ys=ŠP?J+q>O oYm͟.C([_llp rP $8ǥAB-=IAj};f3o!==XqXXg.\ɹr/hʂJ¥J/f-3|NL;w9r{;de8> "DRh>_1\-  y X͞i'eNM:FIf.>TTRJ'M~Ϡӳ0V[((Q"MU7%B<W F 5#;$ 7οn/_]s/ߓom}~'uQWܸλ1155ye5m9,r*W^,\r˗.\s''''''''''''''''''''''%$NNM˗2\r1?;M jC ^=Z)bCI n OXV߇b1]Lƙ[-ZY[fÉ0x?cXԶ֭2HbԿìzMIמ`c>DyŽZ W@MHPyi<GM g;[=Ϳ,NsZ7pwtH&b>= )i(pwWj::8 X 9YXIZ8]wႍRjX0`„0`h Fce@bE@Ɖ1u{lhO }nϱ 9w1twזkZQJRGHدPk՘gGPbOWge+%*/Sfr*z2lTu։jM["֎oITHb2Gs.\ڑd4Vphf;$ * &RmȮ2fCD2Lm 8U-L@BҦZ"n"wEdi0Z6BPb̚fPD5!7J2؋YH4DFE$UܡQ.fȂƓ8\3+ u("V5b**jjJ#@-YUD0ю%ihij٘lm*Y[ؕ6C-Z$j*;fJM5YE6hL ѝni" W1f.PXUZ5 "&dj%+bɛb4ҫR .if2MŒV-!$$^pZ6JŒ6DDEYekmR닱JZDbD4s%tAkwBIZR jkLJ4Hc0L-RˢHFfDd޲ vJ#ZnejknPF$*;q* ˳FƦaH*a m#Um1YMb+& 3 ܍&!i60޸v]Cـ.4IlV%Npb$ 5AB, ( b2VA0`HQb&(-9f+8#+r\06cf(;XMٽIIq(Dlqxph^qF-ՉM2 E]4ZB`Ѓ]e]֍KHJYs#4߰¥]hp3jDcinkq(JTiP[.Jt LD#er1+DU̻@U@X5J4umegfplHR:5fZۤ,F3v6^\JSF\.&f%ڊ+TilH U2+2&$Pi$ LZ30լT234ql쉜^33((*1S*4DQB$EnJ54b Ta&e#EjE54؎!D j #$V fK̊E7Ln8/Y` ]mѣJUS ڙ`:(L%(":ȭ(-]f.8j(%fA2 h.ZkP&z2/ hPW2:l)a.J5TI n%-nq"M(ѼIa"j܄.Jq!JAL M94fl)lGbl*A!!ĕNYDB .S["̩d@r*bTöxѺ[̂&ȦqvM2hrqHEHC w)AуbMdRűkLZ4dъYA2Qk,e3*.,ѹ*\ !2AkD^lB 1qB 6VD<ߤ:/V)ׯW-G5uf<Lƒvv իv8޼T:ytcrrrs9+kX5*f*4DD1~6Ɛ CCDC&cєϼ|=|m+.kg-9˗J˗.u}^E` paA fff*6gp>6]J1t[]hk].Σެ&{~Kjeਸ਼:~oIߧ"ު!<m<6fvtwy!N?+z2{4e ћ3 c#\O]ۮhFWMfUn"/JC:8Ǘjbŗ@JJJ^B B45ɜwn) ,T"oIJ 4vђA7d"! Gf\0] l`ڛϞ7Bbϙ;q\#ИU)҂el!I$:ϼ`J 9w;pgI{_"p`= ^'wUR)h =1_Skؐ|nccb$c__h6񯷣L:,X`<2 '$D/ ;˛˝WcFP@/Vt=7-.Q5jtZG9m d t&iV9wRgad<hYAUhZb ?ٺ]ymل+xrvZjիZ\ouc5U5p96N^j Co{zwWB< /-]jzXczVig԰V TP} ԩ1Z ˘_|GR99gz;-f^ Oߥ?6c?/A,իVr9c82EWc0-Zzo[aU Hs@{Am: f\]!}$A)J'_6A+#j!W:xBcCу=gSo~o&hxjiZ  OBD1@ 5A D\ ~_<L i{ BBB ]{^ǧ=sychƷզ8ayx%,Xb%mKNr򂂁.]KaZFn=bv#O3H}Ne -YZmԩN au2*U%Ϟ-?KY1l$(Djyc%[oOaV  cDJѹSސc s$9Yh(^1~G0sSO9&5!\;;P;;GM7^^# DžX]ڄ; 3SEB" lXlP~*Ÿ?xwcUosS:t7+q#QVqz!",amo^!ГbJÅ jLҋJ--(gx2`OpZ _՟C@&93xY''z_/k\w>\̘ d2qTB"DS=!vzQߤQ N|n wegM}Z>l?ϾR2.<8f P ωigi/yG;K\_Dz{ڜpН^aqDAC8ȌQYeYe4T-і9].x}ԗX-Хhj9XA@?,~nxȀ]76lf-!M~/TJHdd  vIRԴFY?Xz,g}s=޹;o ζkHv@tGxF!SaB))C%)(QD7rA,&|*vJq0D^H 9VP B:γ|tm8dOPLAF z {(̽,(M4z!n1 VI 0yQck_nԐ `@T%  jFl[իT]D4ʇѬf0niFQuS_xG#p* p}uO(@jiO z_13`vuIΣ& D\V]̮{vKIL;,XbŅ3۟/3Wuݭ兴 L6^PD$BLQgZa4S8So>""84섄9 Ѯ{j`GggigesG~0ͫ#/N?_f c9x%K;@2ee|밻k`[v&^" zrW" G- -MK  ]LwΨ,m8RS@qPa@KTOߧͽ&ugH:[լFk&^;FF'w!l?Val:C8B~\SihZJ a *: FݤNjic Ғ hJL}tVƛ~l yKj{.uȁ_S4kum|JrD<'gcaa'epyEPqU\Gs1>N.>\)F*hC7IG>  D=)&I#eSOqKc&Ch+bTJU1eg vK; a!!*Xղ\Uve}|7cGǍְ7gV22H!yԬ)ńsڏw=7]iv=cڌB:Q?\P:jG}% ha@)jE,~Ns} ^G]==;^O4c6'$yR% 6}>Kk}~h”Qo~?xYld?{⧹KF*Ɩ*R@(`r Nלs{;joO ^đU i9'n۶vD(D&眇C"?:ZMmmuǧ=ˠ-:ޮ$ @è3{c \ɹs+֛hudoo\^6KT(3p0_''''&™-" 0ECUT1#/SQS؅᧓AC^ <)l|/ o˙+d\^@ʤfdN7or[zK! 椦;^mr5(p|D-gb!dD$B=wy@wa}OlDN\{s 4Ӛe6]Y9$j GۻY>PφZ8`zRzzyL9bt[K]O -Q{W{baW.a3jb!ݡ:tp嗁 CD|^ñ#Ukd?C9DgAVm4(!3wĕûr %3+s˻}@OLdrpJLP:b$0t_.K| Pe8q@|WՋSzg8 2b akI÷ӡozrnS" ͠fZ4ِO[Taf-nz>M4 |L[h4SGRcY{G7e^IF4h6*Čbm;>po{kU\J'5CHý侾Wr}:Ix>Fd\'gwTR4bd<4**SA4Z#wm-oŀ`0Ǜ a]Sވ9Pڬˆgx|gOA"sو3<*\z3ύ7njRJ(((%%˦*9%?h逽<9n_[VV8nݵcˡَҖ M8@At?E}JUUղ>{ +_yvߖwI@djs9;w}vE]L|Dyڛc&{8?t U`#iVx\t&o>N-Mm\di+gTUѿNu轌ƴu7PxXw@%WpeVdF:da"c3d1rp+6͵;PHr0VʛͲIRAO0N,݋}%b]9ir`};S=g=;W+T XjCb {s"GSgTlCpJb+z;;;;;Պҥ3nϭ6}=dc񻭖lիJLPb}YǷK9SVjiyCj|kxL\~pi޿6agLGڱE,^&:KU6&#po@$q}.@XgNYglA9{['_)աT~`4n0+IBtNx0;޺=O"SS:‡b\p/Xb a?4Ε_vC N~z)m[3-s( `:ewrrm~'3 T ~Fz#8vUdz |7}TQa`zH8Øei +jap@zb2`ar}#J|#Ydx|8_쭤pGlt3.ad[p!b$ n'XC(x|cf-Æe/rqh6<۷3ϣ~pS395QG$}:qI$N/{?*U_ t1V@kAE_y2?͛&Lq;csĝRXۑTu<<](2ҁPjh*l"#@ڢB2m47n^ 0ut;:-ve`V9g>=!Ɲ;bB_>YͬQ5j];p_`le1[v8. NVblƉ)"ۃG{FѺ&@ɻ ͢b)_GY]]G]IHޑos0usmF >ڏ  jAmDaHz w[:=o<<4A%m8Ώ0`eYZD6|OqiMzȈv1cCr_v '+YCAYh`UنQt@,k[G&fwTjoǁb@xϗ̎p>,2&oR/㟓2aQg%6g;髎 /SYL͝0F́$#;fv(q>uϹ~:RTjܹsF"-k\N4k]~B~eD6LC!:u*,wB&ȆlkEEEEB4)i<&g]~2$0'M+w}c]fh{ga 1xeM_{mnpV8U.o@'Ӕ˫KMe1-EO901p&LLLL3fw ^r|'hw WJTV|/?g=~3]oشsEPC Q`joo>ۦi;O}XMn۹ D ntK,{[ kTT>wڇV ؅cn:OꙟY tR! 7T %X˫W8jDD@* {ϟcb OL?/VKw>ЙC^Փ":q^ deKKK/Jbg-A7vVU 5/|p5!j8b#h ,D@=>( hZ*S~N<МFO[^NlM}?莯DD%"tfK۟"71(MMQ9fnT]MLj{N Qd'AjsyHŏc%2 {unvxOF,F;ۏ**fCO15_NssrSrrsr`FnF@:-SjN-Fl>bd?^ItWEwژvgQyG{FTZKUqIȅE"0cܜ#uT6\$% G$((*v>v`>ʻI Li\ ߸\Db % o6\V2o-:]S9=4A)8: N UUȨ!|M+ 1E@E"(@NN6VfEl, 3.$ /(|v}x[Ο{mg zwWa˨Y_-HWѧ~NH߱:(Jw'oBxE<:@K@3dyL&r ȟOAOKEIw95w^fhS<=KX/^5iʏ5 yo5iCkE2N/?Qw71]yuo=n~{}c"բ1C޲;!hIi\͈޿]GoE 4Ë`}O/@!?/뤑T"*pı6[fB2ĈgWϷ %mJw;A se;_wƹrF6l`p7LuftH8#Τ_@!F5gNK||k{yOLv;/ 54ggҵl[8\hRqW/num/N3 'Wy_@2Ay$wpyaq :=_֋ L 2gH"Mf80ִ 8@ )FB FD7 Oi`s8/њ*Jw際7X0HB#eOIz'aၧT8|uN)0Y:KJ-Ĩc58-DGGaX#" f:o> íʉ׉E"MfgaAri‰ڛ}ZS"jhUۄz鰚Wr\ӧΏ$1 6Q~Q .Xp]j>?h ˲t'mE!ъ2( )|<\}BSs=o7Ygu#\6~ ?>u-KT'NGML4'jU^|Y bSO!y |]Җ.Dph5}?cc`7]Bg{!x~}9eb} ޜ&Ox0.\m#VH<0ɗ2bhaU3f u# 5q~|O{7ٿ.H7ۦ)+ǧxq2@Ç8pÇ8pL8p% O0Gzx!c2v㶛/EDf7]",,eMX4ƹ̱=´Q\QC.cBkvx7z'}MEPE5SgS#XU\@N?_G>(vϏ_iIt{ wgo_`+z̿GseWyWaZ|yõA86K8tTCd4utiM$To?Y^xx$ ff)ˆsl%_(4a!N/2C[KBȏG!0vqġ8Z5w}7kSuZ1uD>?6 !QO. w & _Lt1Zʺ^2FӐjsM{g2z WM!Rc8D'-qӲܔsrS1ƚ8\KhZ+-,ޒѽ4HfKXy}Wk3Y!ÉXB+/Bj$66psE- 軘#AwS?͌`3-6henkZ\\~ k907'-[h]Htl,1\?'/{ 9fo&5STϬd:?frvr,2kƁӦtz;+JM!5œ޸,4bF~Wp°[i4=։읭ls9W!Y޾2zfosWF͐?luCffMks &mӛx9%nL&i+@I]FMho\srWzhխZ܊O=wXiqar12)ƵpVo3kf?; M%&x[U–:IFja*?^%mx>d# 'D,j{d̬Mwƍ8juj;&&V_j.k4߄T AkkS2ٖcgҭvrjU&SNփGvdBp31c<  >BJW!%$'G:7*Drį9I~Y*4wi){[>Jq|TP>8P),[re<'0ڏϿYKOeɸn)Ejժ枇m|? Le`x:>77%^S!u <qoйd>ZZʈ̷Ai#pv,$mo:Cg0u,2T5 B,Z26x' 1K63`y,DLN2662*w bֹ#*888n+)!!(q2б9'Ji.spO{ [K;c \SSu3 Zh'{7{mL ~o:/sURۄxE')f&fmΗZ5"Y"sr)_;ac8y}Tv ΢l9ۏ6"o1<>3n=]s[+QdAVu˂5dL?ysVgqo%p5<8S0R"Yk(- -2k"bE2գ xʹqi %a5!TWIC^bV?!)r*Ol/x3pۿ(ÌGjh56`4Tf:Lz,kh[.k|E0[-G9mL6U헬VpȖOp۱e!/@=nȻl> Jt:lQ%tQ0Y8d/ܛMH}V:HNLÁ1vW|5,quSiog^Ԋ.Zp\9M]0%bj5X\#UEEZ3vҩU¦u-y:_?/lfa/* `a,n7i~ޯ궜_Zus좭RjjQDAԼ<07A12$ǐQp]U vdOu0dwF1X-i\Cg9=JšfVX QYIsN|A`6\Fkg%̑-ˮp61D,g ^;hDZcY\*Ǐ?ETqXJ-1@Oy 6szqxZoԝ:pTaHɗPq |\ٖN C |;*TzCN#y  ?edCi8PDDM(tP/C 'ŋg3":?"%~H1_xzދ]M{Y&Τx 5.vrxXw9B |Bh-ho"vy0Kx~'䂜~0lӝ;ݔjwwu7s9JƓpAQ߭>i@ߪH){޽΋ ~|" /o_D<&]a7\~!m `Իzδ̼y&zJ{dA:ud^ZikF-tJMؘDヾty8+VFZh_**4c5ږ#,RuK( > (*EAD_w+:wdNo(fyLhK"~`w$@($P!3sǮ"\U311U2g2@l*ߣםwwu4lĐ F1>q_I, |T`%I* pQٍzvh $](?B(ҍ1Tv P^$wm|]j5H"T y1⚚uRKԶ:ER=+Iqq@HQKHK-Zz~b@T6Zց FNZkmc1|1yt"u*yx]aoDD|yAuu =R C  [>&~lovP[7ŠI߻LjVKK}mqb;-I@hxOF3ӖuwWWUj- -i=#&=iU0aNtML$!YܨGa3~3j^1^o\^L Rq]qt8k4{qn# ٯc057G~cDCAx׸ ıE (W(7s9h mgD/D4!ZS|.]k2x㲾KY .(;eV5?my|ϝTQ ]n7v>7Dj^lCz_3;n$bXY2dN (q é `9G< ? G$tܶ9LV0HCyco؟v8];:7ϓ-#nB**$K&Ug܏GUhl<ȃ.%Prݱ|v9m<ë6GfndB5}xj NdI$ٜᅜ2 7);jZKk  /iB3 c(('G~<< D zzywX3]g.MS#q& ْ*xxRZ:6:W]d$P'Jqzў ; G#Z*t]n'(7ﲿ_;WVMfrS˽+WzsvU++֭Z%GO⺺\d?Eq:;<N'-@YtcWH`v56 [d bb$ٗT(vB~:;RDW;E{ML[I*B.[̔@ͰY0b̞uћLcux( 536 ]W{u~k\oDD7wt`c׵D03pV?5۷7f9x;DG@[]-@B:^baB`iub*r*?/m=^Ϯ_WPOEAX ɰv{*&[oK)kXG>1WQ߇Zg&ޝ@u.]ϰ*0DogAD5_aUd:ީybֆpjr9(<> YbSt(h\~E-҆&ꉷz1=uԣ :My8:KWᘒJA\>;LG]u\ zRfq,]lx` c[钙 D'P;?Kz@?{FzM5Ib;fr lfuQ (5 C]ta;7nƑ @@$o|`\nގ2w.bR)75qOv<Xl `.~-u VGߠ-1뽃G]3:| .2HRSb f9wm I`Н!!4DzqWY F5;wEgoop9Ҳ|X:]୐Σ5uKIs=7!7u;hYF3K(֬va62Ϧ\b0DC"ѻ@ vEDBbqLu%V3!!nw`gRk&SW(|Hk@CƑ&LD4srU_t6o{g}̻LvW33qk %݄6¯fU*Wz݃153Fv'52cv?*0J:~Zw8>NNϗneļtlVqkuRVdҳ2sxA.crn:4Ʉ]bab ,a ߮C4b8~>E_p}˾ECbq9wjp;#a#1ۘUQ^l ?hRB^cU t R[BP?Ǥ?e'\n(@U?u@kkew=V}_o:R)VB6L3'>,  fJYxH!DDz;9Og]RPŤ0" ;*c$Ұ;1\Z*:e?7g!VCsaPf([1sMN*oxtĈ#xDn&Gd7<|=`'*+'ZiyiwuI-ٍӜ]#KR2fɍ%"w>7=ks9>B^h@ &Eɦnt( SN.ºznJs_3%fBmDcAŚ-0 @GG1.^]#R@mӜ<5c9Y> ,u u(hqC~[_/ac!cƎ-DR҉y!#%1ʜ{Cm7oOBY>g)x^wsVJ+gx!!f3;]8Y_x}[*TXÅ wETaGg1&kG 2^Y1oImQUqujǍ2VլDH_7tEJ]  %9N )y4~)Sm#UL+Tc?rzr3?Ż`t:}KUt:{Vޝ8 (([B ha4|@(rで6M3 h?Mk`E=7{|Kp@@RMh"ȋ\HYz6@ɁwzjLN4OwmWizW:X>k#m豉j$~)o@jm~7W6ן劑wsvkN 1N7F3|/ѽ#ʦ?Im|yA  AHA7Un q9~م#.~1Ewb\@]mO`^lpYl&s1j]-+6^VߍO+1t=@Ԋ/rrh zFwx)ӏΥf |r>6$7$.S>|N'3=GGrㄠ34oKq(ҁt'S30I3R ^? |t-Ofs[YKC;KA7ASCYu٣b6j؀^TG@a#٢:KPK3n=ʁ8b ׁ %*`nSw*UƾԔT=Nc(H>>?:?WE[pt?O;-[ֲf7^O% (#{ߟqy_+y\\V }X.D_^c.ĴaW'첛u +T+Dvݳ9jkR*fAaW^QKw!K4p8l(:ռgZv^\@w|䥪jZZ]l[+6~ң밎f&+@F"CuπM+@ ${aayP&d["!A)'u}TI d @6U};ĝ`N[Q6&ئJT(l͑IFgAuɘ@jHA&T;AR=*$T+1KI$q.$w.wtӻwI9t'NQ;DDCwx!Q@xxSNIӻwxQb""!""""""""""""""!""! D\g0h*;od'V)sN7>=*-3ۖf;N-r*`׳Fl,?O"ʠ5_t_{敶\`mp"ۈ>W,q릫ˤo( 건qp.ga5/XLrQ2T~-[ogs;|NJq4q Q{Ȍ70|8 ދ멘j/>ZV٭/L/|dj=dϵSLT9Gg ni/~GmH- wNx/B1ڃ1qb­l˴<%mC%9l08LWڡccƤ#Bו;#RੵO_zbK͕߱ k ?c6ۅywٲ^^ݿ{ _A8xbgXT4\ߛoN/0}Q`K7G}ZeY6ҵ_;N<ْ_+k6kESӽ3V0lNs^iI*~MNƮ|3>Fl3A?|3owZxUߍ+r77[IlMQF.jgӹ8Uc!*”Y-ruܽPIhX۞m>0lNZOσi;Wc*T:ewWB\1լFfhں'55<ޖWpћoԛ} XGC¹}3k)_RZY׾KzH~. Ord/I4ĤwD~~j>6^ӽؐTb\bd閗;-]HvV<4>$-0wݻ$حB5;O*;q5x̄82ޅn%'"1">3W)y|¹rmlbf}Pӎ)Ѥ[=-htvk]US㜴еa~fם[릲5@6O2ߑk=Utv wQST=vcAT]{,*{Մ#Z9:9iQ?Ehx,ex>>qnc}_3L]hy1C#l&zd^oki9?\D3x4]j:y9qt5B+֢qfǻ+Xra,Yi-uuqXǙ{۴xj*-rZuzZy=Fw~N[;x5E?>/NFNway>qw(=ۖ۠kprhml|symFZ|jwlR վm;/6e䷱{)`vSj)p)/TsֶϺwcAGG#Y?c}3+f\~B_td:}O;άܦwf(oߵvNnZޖg[Q +r>B{[>dV^;͈ZZϔJͶ}Mn+y- h?|c\yU,ks3_9u_~װjk2g7mNn93|ZwLzOo љfe]Ӈղ2rg&V4 W+mXivFim{=qowtpujBMkh[]$%)=_F IM/ u]> M4ӱs[9$)YtOC$;ҿ}wOumRJ?C`M讲~[}''gw;\$-<}y*yL *K{ ݯ+W۱}+qc} g^UX)7ܽNMxthT{,3Qo(at\6gt~?_feBCS 繧XHjay-Ӊr)㥟bS9}m/{}'R,vgܭhƛ-62le٠ez-smdt`2ty1y͆ZTg[)#η/1^Yݞ5Bs@_WIq{K0n6Zo}>gũL̪An=T]}wb wpdPj>\\DR]юxMaO-Kwtn &|!n/K3w1<7O'gSٴwٞVn-/!H򓢒/mZ{uG&=߅?fhxR+nӛ-\8$]mEvQys}h=UY[3v<<+>;g.W^\uF/֗}t.38^BzJM^@~ag >6W=/ /|.;<Ό?^>r7_ǖ2t7tqt0=^G˄ӛSim+ TK(RȪ`` f=_O|O{ٕ!h+DB`@AIkghydπty.ߨv8j'uCT;QC`LHcr w%+B@.H%Atm[IJWDm$AP!PDdE=tDjDQIV)|U @rZqUQ""Z"Tj(Z h!hȪU$EE**D- !Pn}Q-vbT-AD 1AA]:)|U$ Ɗ]P2 U )tmPTK@P*TT ڷ5FEklj̊TZTTBP cEPRF@IUJ(R.AXP$E A|X TQ D@FɯT-m") &(TBj *b*A-F7DQ- U@Z H"}`q~XAI~;'?IHO2(rȊnf R {mZ*6r@VBEAVW-mrhŭKU᭵xkZUkUʍj؊[\smV5U͹U\FW6njE$n 5Z @$F@((*W檣Uիr¼5QJP\Eܫ֍V*#"*(5*D@*KE[Dd+sjڹy[µTPRD*(T[EEV6DD$!P@D!QdF-Z(-Ȣ * EU5 h5xkr[\ےnjcU[^浹ksFۛ[kFܶ*(msrՋX[kFxQNxFZ5孵Enkֹ;skֺrtQ2*(T5TH#=nx M€lhnkr-nUIP}XA`(j"o"(mbS4B*g:"E[$XĀ(jנ8"P**F[/NWoq_>^n|83c TQ${ 4^΍f!a"b#cGpt}NnOuPtn%rR|1IŦƧ*5߻9km\Ah+)˵_|zG?sz|?}Vy~1{9򷯹>> ]1W%\6K\ݟ7Ֆu} hv{u{>kZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZ<<<<<,pξttSo/,9s9s9<:gyygq:P|=-\u >" -GPkZֵkZֵyyyyyeYeYeYeYeYeYeYeYe\<<<*yy皵k\qqqqq0 0 0 0 0 0p 05yyYeYeXutn9K9*Rg+%P}qwpý<a9|9*xCXؑ&=s[j]|=CZֵkZֵkZֵkZֵkZֵs<<<<<<,,, 0 0 0 /~ۺ)Jsm۷o//,͟[ׯէN:t8?[qe˖\eGC=y`8_}ߢ=vvu}1c1c1c1c1c1c1c1c1c1|?|>wu]u]u]u]u]u]u]u]uьcޏ~1c1c1c1c1c1u?c1c1c1c1c@CZw^xkZֵ,qqqqqqqqqq0 0 0~So,9so7R)JR)JR}}}0˯q1d5kPB!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!;`={cZu{ 4kZ+ZkZ<< 0=}]<8oݻv۷n߿~=C=C=WWS A흳k\ q8N%coooo }Gwt+wX5u[&IoٛeUB\ɌuOaDU! $>tO'//@ӑA5TWu@=jA@(2I ZeT:$(Pk:Ǵ?z=a߻_CJmþ}W΀}%ElQD AԕzB8%cpʳVW4kz&׷[??w^ۻ;tٴ58 0@jUClv/'#G,[OP!Tu6VlKkp oC?pp*CrVaak[;B ?~;n?LrL[+\ֲD&BQ:'D^ %$/R Mcu?::}tپ7~?zH&TZ Ib12/ DyׅܢCsp*IMn(9 `7KSPPͿ8ōD˔4"u&rU * fB ꪤDQ~Sw]Uvʈ*dD f(TT =** ~ ",y3_J8`P_ۮlFj1UH*,yO>?5# 0n jbDtއC7** B"ĈMQBɲa,(^@U nEv)SUPzvU=Vݫ8ŅAceq ʃ P(l*1i q  bI/W6c1\GLu1q q&Y@C<UAC\tQqt@1DT>eU+0 EBI$$0 1Z 0@Da: \g3:\R(u'K T C +ERX9/.Y2 Yrɐyq`U0>1L4$22g,8V袈S0M60%-٩9YNu[> (3@"iP*I\@*_/YH K 0l!hj#j 1Mݡ $a@qytIo>CϺ-jV$PnIa= W6uxXMB"jU!dauA{n{cc"a ,ـ; 6ܷY{a,nBJbJ:z[%6%! Z, xXդlpUZ;lm $$5DT.tIO[ &҃2j5uF |w/2Ș[oL@lZ$) j&F\ɶm-`pIsT†` fL G+ d@&<` "L@0QhsFN/ EX- O F cƈ4X5yh J*\i828f3$tYjr]N Dɬ+++3xM ks3 (U=8fs8\6&KrLgLe1`2Ep0K3R #L @pCTU SEEq13B! eoY~/d2X((D4E)%鶴%xH" + 1s:!(Ԋg4 LL29`"f6+Gy7c'P]{lJ=oSshs/=̺j4g\hcm dT@>8HGޠYEp"[_X?IN^YC$h!C^[%&t>ߨGEDE YPuAX XH^sR1s%NWg5RGY⺃b0L0{\4~lMDH;S(1$E!˻II3hhpqY@/ fsW_s+}ǔ~~ww/Ftgrr~^螌?{:CH{C{F7G)/?_;~^/b^5$}f2SR:.Nă؝j[7.YT; ff^lwd2@vc;޿7ɥ[9 |wseMx~1p%vW'_^g9uXZECWq&ep\ ӏ{Ep8:vCo8;3nyۮcqw?7xg({B"6tR!L%!h(@6[NJdŀ0 hVZtHaM"!-0aD& U2r*a]=ķ'mkULq/-}Z>[y@ @Vz=><{]u*V˸5|8 }.Bv<;侾ʃ0;%@(" "B+"%FX-bQQI5lQElV hRQh_s? USN>gyZeB> =>-{|=o+_x~~y=yt]twOtwOtwOtwO;{;;;z{;;p߷;w au0@?Pd@?I%%%@(J'Y3I[t=sy_+qn7q8\.ou6|,-m ```m6=mG]5zWj:6IZ?gwWW7ֶ;8\X5~·ogj_t{=ʢ Ucu>GW|&β9?jkf ֪O_1V^jflt~{`K,%տ{ׅc[ vo (]ݯV.ݯW+jZ7Jz dQY M]R*(@׫@G%4VlJ x^P3~DBs,Zef7e3ݞڌqS6tﺡo#=!:3Qu>]=K=1]ӝ9zvFuGtgq'gv{{KzzOTwVSzþz׭;y-Ct "D* P%e `\i.`r(g >oώ||o9Ǿ>B}'?c^=.hCɛ99fv9j)TԔ ļIiYYII94HPgA, 5+%AC|^5ouWq1Ym4~|$tK-{)Bw HJ2y_0f%j'"ώνEEQQ+a'҄ @ddd#GFEDCB3x(~~ۯ順ۥnM&ԂkϿv=A=c6OJXQ0/hf bf[AQ;(#+;n~;aW1Y֊ (òT#M1s3ioh\7hFV`Wr (,Hp0U_&&8W s>gZTGLʾ}E>Ǽ  U~&2XӢ `RqOʂw~(B0cF~֋/x6>?ҽ㝃74owd~r QM:=_vrG|Nnǵ9Ί)BPW! 0ŧBD"D_0BPU ;`7MӃxN8%{t HZ[x)1X!DEE&uU! MLLKJJ#F:tÇo6hɘ'wr*p04 #~i4\ x߾^;k|㋔P=PHFpP؁43I&@sT v@JrRF0d~뚨wMZec_6tZm.{xpz)8jG/{: ^@,,( .)ij6h,]d֏Yᮿx{#O-;k?_':~~תACF *+yѥROT̈TT44ӳSS33%eeɢD 8pٳFLfs,@Pm7@ d\@m@Dh_W.uz9N\_Wzoj[L[?:9H aEYA"+#v,5w.S}owosdqyjV,  SY:x˗2w7?V WVyY[)nMAF󊪥ި5daT 0[D(7A 6+9D y:( TyFeda= q2$2(7 =yϠQ*tjźCBIAB!SOp&S[.S~\OQQQѫQѫuuoZlCmwV72^p&8 I0}C h`m4Wg_NȌshV?p X?Bc+9\CV J(  -8!Kp%<nr7{76Ff3,jR=E-&EIڃ@!PATQBBXTyNw/l.!LDSɡۛP_3p(bXA*@aíȁFsx;|-gyڪ]%g{m}/tO3Si8OY8S&**N.˅Sk 6TTͥ&NyT zfo`PYPyY\'n}}/|yO ccro~<D` 0(H{~P@!!߶eAuvB%B>,BBT ِ$ۅX([kTfTb҈cߟ^=<׽9d J5jBAd* D4xʷZMRF{xlQjV[r+r-V[r+r-*EhZ6j<@\:*HHeBHƝ:/'~W}7zǦq^£жQШjhQs6+oq\Z/Эqp#n2kǩp;m[TίNA|w `HsA+wZ Dڰaߛhbd#pgvȸ|=aa1u`mvvcuuuuo?7y=imwRG?!tu-ϠoQ48cǦSy9vtm>cv/l{Zk?mXq7˿<}o-?:仿.^}K>w'Rwّ{}|}o퐾+b# 'v ߒDž~m_*}(#VpsYiIؕ[7J+X}J-H̡o3-BB5wy!"մ^Z>_7%2gmSMfhW['oO-VYXk \;iWx=<*5543XJw߿}Y  >0l}nE?Y|਷V5qtSn>c=mU4n_u~_|>{i){-MMMJɅstu[eߟ?ؙ_i?-?3UϞ5[,lnkI4Z|O惸>e?>w?x~mi+Yw"=;}CΩKl4o}cOhBeϷƮH{-{{{{z{{{{z圽m.%k{A*o:vl{w/{wy_scUy<|7gTj:-ҞSRt{o{hmZ^wqBQ3n*7G[p:>W[wʩu=gG wm;0b53 Jqzx4ul{6P((xhX\a^:&h0 0 D 1,Exvq0uz8x(;p-  <&OgѻqnM}ʾt*4=ŦwvTr_>JY :3ݫt?m~C>~&ׁ=߇uxwGQ]c7~N\M9rs>cbWZغ|n/NRUe˲+{g=v5555555557u<']zyW{s>OGoz޷z3[xF:6ÍW:lt.[קfzY}zyҔ:qCw7nݻv۷nݻv۷nݻv;Ç8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ8pÇ:zzzzz997rrrrrm}7D)hٳf͎gG77777775YeYess,e)JYJR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JRk]kZZr,yyyj!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Bֺ3>DZuG__)JR)JR)JJVJR)YeJ,,%)JR)JR)JR)~R)J_C)JR)JR)JR)JR)JR)|I|O)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)Sޟ~Ŷm-,-ll-,l-l,mmm~-mmmmmmmmmmmmmmmmmm˾sbN:tӧN:tӧN:tӧN:tӧN:tӧN:tկǯXy71J ΐ4WFtaaa4hףGN4hѣFٗ6lٳg&Ϟ6Yf͛6lٳf,͖Y,>.͖Yf6Yf͛6lf͛6lٳgy}-zׯ^zׯ^zׯ^z^zׯ^zׯ^z]ׯ_O'y8?Ò9;99999999)9s9s9vN'9sN,,vYeNs9s9sD9s9s9s9s9s9s9s9s9s9s9s9s9s9sg9s9s9s9s9sm9tt0W?;?;7/g~j},>s>ּG @0 k``S4 eI >c#+?)0?t~os_iz7o1;%?G8eS3Sߟ#PPRf󁛭fii,wYx9G=}C`?f)斠bCrd: v_ǯ?]\2tݺE7?Ez5TfQPsfe8S"-s3_VoC{:M^ +Lӊ,BL(rE=kk5]tƗ_z`v`|־ !1_ _yO؇>q羃״>bx3W~ Pv Tn4x:"/xOMPi5}{r5x(WU(̸̘ʞQOOOjY~55.n-m3vvVV66յuY|55--#G 2Q>$"a"N,DJOtf剡`WX9X;Yg2ъ_c_~KHDq }g{v7ݛf w#Xi=}w9cݤzА;<{ÜGG)p0OY0{C*zp>/8B4俒!bM0a_vcpq|>Sj7ގz066v̛p}†b oVֶ; ʺn5MKKIIQPO>>9< &SSh0 Ri\j  n&]d`ƾaV~*Ӥ}OffY9fw˗]?QOy͋ p $;! @01/{X{>##}w\]u $sNPmBԇ;'Cr"Q 5{oNq_ʽSC"x"SgO瞅b86*8i[ \4 Ymo+1cKeGOӰO(*(G]j| tU*(@*h oG6W׹׽׺WUD{|ƽ?YٿK+SxVG5BGWt[vx>z=GDM”ë$Ӊуjy}Y,H1;mo{XFcm li o )sw]}0r;sd8U 0xdaD-(crBZqY:rUBk} "=Uq>o~o`ZWlj1EcPjr*.xMomw:5Ns(Hosl#0`"L0` 1yCϝd6`EGAܠ@i!J'eo>nT}zʽ3F$9Wg>I{Nv> oK=15x*"c]ko8yH4@WH!Od =RMUbmwsKKHE KKKC ֟0Kk'j h=UXUꪥ*%f!tf%FP +e.Oyw[׵oyodKDJYT&j\{q}04B*ln7~20 F2O艇-zaJ@ .]ăXggjj˵.(sr/Kc6f g}ާlѣF 4hѣKW_=i|3-%>=#?z'/=*иA66*wR5ekf{i!$¢#oH!= I{^~u1:>Wt&mL"7UC[VX*Ga Im1v-PY"X2pz?CDKHέ(ѶP9y͙%CN49GbP?Bu;>]|>|K~NW ^Sdo=f3'8d,e_]JW,rA $x=*8@C@|񼍓5-:....-B.-f. Ar!gdttts\ttttttrvW ;mûxo|3=Zۯ"!Հ?^n0V||Xo:KtZZZZU*UuhwUU0ו%G3#{{MowaOi.ck!B1\o;$jC@ gSϏyvpT#ٞζ۵4)VhFhg~{'y.f5&YGM {FO46#,Cӓ맻xZf*`N f?Y@T y=O*"_T6 Jk{^7tx)tߘv5%=W f+kkkkkki f+k :/>=?Ы]ھ孪/2guН`h#7!{2mdv؋tںhSUA"gzϸ6C!)*"˽ΌԩhqT:xhVALsJ8FßVj@ȁ74.hXWoɥ{z^ļ\Ϗew|wMufMuBH"Q]j|d jHB lxq1%e*TEFBf~;U7l@<$D@w njjn=4'Uh6 /E8>""֢\"{9r~wK?;n,Nbp8>`e#HBDPZ D|B#Xw3t*E#Њޟ N}asVY`p$A2Yp s98Ѻ A/V_:ݍrz1___^{bEBdB:  e (pz 9 '( yf[`8]@Z;=KaxB"HP=/3(͕dg)kQ"QDb$H91dV1_\?5N'3?.ᦥ[y& =p,.Jy|^ '#Cp~^ذlo6SDI~mhqOCK^]%!c/>=1;@@@A1B=@ ūW>8(eeee]^7뵀@gxyN)N $Y^6PXqRkK;y~p`(_Ӷݖ1?xtjM8pQa3_"dNoOAoک|0rbWIb> :TIr'>ieD8,uFږ~"Jc5/ϊWk[hc}XC 8v?=]硟^DΞm} @ @ ZQ[F;,{h3g~Ņ7EB/EF)IfcqӞ/g̦Sm/KIm{c}k}yiJ({_L*lOAQj)c+++++++*jmVySdnЎ['Wzl qP>JXw#t\o˜h0~.KvWAIL?@Rٙ7vx/||_?%0ÇV8pÊG1.|% Gcu( K7z[Ӑ* `AhƎ|]go^WsE9MY6JzZlB>vvt<,T[<ׄkcnkA\P )MFxe%@R~oY;<4qf>_GGI ?c'n@ }  (>Ùҟ>|ϟm>|oW-|>{ KM3mIZkff&& LLJ/lF9~rMaoe8 zy]bd+l6:?.~{Va{G7ڍc02=MO^YH?;'%R"YV d ErnJKRCS`[hqjNk|+q\W[[[[[Z[fh0=}O2| 8.0t:5FURo o h f7LL觥S?|$%d ܲBQ u`oDm0O) fI& @)o9ӭMGN:uPA"=E{M]4˨^RϝuxyLGǏ< cY5岀PF:9Cx'}nf#w~̀=i0 NyB+!\~Њi/n[Uނ-%q噔!BU2xǏ+|3=a g \xڧ}}8DhѣSF4hѫh฼n=M[*]-.(ܠd $>xZP]Eaz /֊*Hq׎poo -z}d-,g,D9YȂAw9s%1er s;-CA`h1-dqJU?,[#34 Pbr'UYEE?i)dl_OnB$xPd>tSVxnAjK2@KjqepЁqhgz8hz(Tg_`VEWE(s#3[참 B!L2dY+F\ Hn3LyH r\c1f3Vc1[ۜ%8y#,z0Z's *~kmX֤$8KA8x-"H-zxF-F%<6宄RD: @.W {m rsf.=Nr˗.\r˱1<2/!(U2e.6E~BBBBBBBBBBBAqMOOx?+D((`17x>jddž|MO{8;PY`^n7aʭ,0.z}zZu5rT[,co悾AW/a{k00mȊo{C'ÌԋT""H K(j א+@ 㧕y[>ѣF4hѣF fn$@oBbl%FAi 2$ r5\.Sj1n/yܟ|EOpӖ⇕Ͻ*!OCb"ڶiٽs9-G8lY*mյ*o f &Ewm 6G>22D0 bpY{}mZGjlJt u ךׅ ZV&119BF6PG?\5CE)SiiiiiaԔ:;79 PBDס$,%CP<2UE.-#)$VUjJ`!5\X(.T7-ɿeĘ|aVϼ7>}fX0"Fgu!!%(>?R:RF21~69RajbbbbFbawx\wT[|yen^2$Édy(T\^􃬠xق&(:ҟn]J bd2|cLT,tF#h7&%0D{ s%B [OwɈaMn'{w̎,(B%JJJJJIJJJIodV#tc Jrd J`0c#k,XdYH ~TTFLS}$P@$ Bnk</v0 */ uvfW#/4 >̔ANiJ!iHS#OK38›2WI"6}jmwF5thѸ#\2A:6.2l["DR$H"@rH" ĉ4m퐀 KL( |33 C|ÐRa>,{t\G=>|-hM| 1W~ٗMwӑ+v'1Ib9HƗOO dQH9O:Ы:ٖg/Msfw'w'1YG" " zEeCCA zgؽ4XXX++@SO.X1yɻ*p9 AR*]8zHz$#|Z Jv68\Q[wLE8։ܦHn* $(-P/~"&ShHBC UG/j82?ݷRjÍ8pnj ?6./9-+ "=$YXA8pÎ`p5=;O,b5$1qI!KRgUIt ʪjGܽoxS/ D @tKu]>n- Prq.0qF A1A$cpX8Hjp9Ǿ_{rZm'^>=r>>>>>>>>>=qeֳz k(UdVo`@/\pF3Py꺻d`m$!@ PlY- b}[fޱ2`ezzxLu@[I Ջyq|iG^j  !P03oט ᙁuPQ* i. h^Z'`>q;} Ӈ}s<=x&HEF`6@&v11L ~7+i7ؚy1e奥eeWՕ-$RP[",`Qql6HH<-M}hb b* &{B<[ȼh*5,$zއO?u7ho;- 0̓ȏT @o#S0wjcbkkjx<<=pa_e`b0p6!! QĔ|i \*-dd 6H4K Y&n"{}]* dڵnxӇs~]ϊ"Vܹ~_y<Ȥdh_+{MfH)I 0Ј@@@= lglx;;?j;UȆr9rYD @ oD@qEfasYW?ίZ^◅Pht uwpdQ2䅠1鑁( "^j \ A HTLaD0jT3 (AU44XhW_LlsA{2 \iKWЉ/xه2o~fvlٳf͛6\ٳjK>_G{d и#PE" @&}Bn r˗VVT.˗#+oe Cr@O`(  oƎ;"Da]5ϴ$^o 7*Owp[ @ !-aM #A:ޣU-aMO5Π3\6lٶf š4.> w9<!5!wh:@ BUeP1ˀ[y| ((֤,ĔFyPV^v `'{!3D9_cdۼigwpd~>w |#oPwXA( @6 j>3GEŤ2z(3dw=[Q//u@=+^ )4&JPL;DC;;BzvoWtn. NR$T:uG_!O-Xe]Lns_Xa.!$wwww;HI 'w]N;㻸u9wΝNs7777+w777771u.J`1ch0 A0TttV]W";5r6; ,b^ݬoomlGlg7jǶ^AƷ5]q bym/(͓&n<{VU;DKKCJJJIoN_6-j5Oߡ>=GW'' 7l:ǽ117QWqqwqwѕ=ʲK-}_i4 ~Gz{k5gv/9Q-'87ێ=iMu\JiLhlbbŋaq< ~o_O!o߿~߿~xxޜף[|6FE}NBBB!M6]u~'|x>|ǰ&&&&&&/Ddk233855555555555555555b{m5)y R 11110ҿRҢD-ÃVp7XemV^I#QUg9x̛,W'e0=_x4՘`Uu]nWi yS@(b,,#xXI>H#"HlIo;t1n]u]u]t뮺뮺c)JR)|=zחzׯ^w}}}})JRow?rxσ֟I |X/fo#<DŽօ ~~{F`}&c"VeꈭD`Cz.D> E C C A@ @?>=<-+76A˗.\r˗.\Lo:뮺)J8,X00////.WX׸\{.=t+/E1tx~s~ JRLR)J_(cv뮺c1c)K{ct_ywek1k/*cc~,-STu( '[i!yl_a O ycF[Y.]rdӇ B(v6lٷfs%6m$N&MM{?,8SO_gyN3u_M?oJr9UwܯE8xb߈SߎG_%@c4,㼘m6\Ms }}i*5X86!6./ˠ-w؟x&:bfH'4с0 0b8 w0Q1q ktb; 0l HWse9C9¢Q[o#Ͻ,눁ڔ` D(@/ƞ'eoTgRUB`8p#,8p JٞCD u\vs"쬬Z9YS <_쭕 6# 4_i GH~8ݧE,^JRm 4Qg6;{ ,'ͯJB|j{uִ8IR*';~Oo2ol}ϟ>~AD#0-gUU$"d\);9=cɟ~ct%ˁyyu?Q%YI( $! iE&i&1`ǭzj(wcs^6*sYhY>#s9tvod|[ W ifzp|S0e! d9wnqu!l܍NԌOz=^q06SOa4JppaSA KnI/ΫYv{Y|[@  mN_w(i ~yc~Θm31pgh=+;QOySq@ZZ@xߍHYNboo;{I;MLyš8)\5Gf{<ȣvf"5v؎_JهjI`%,xb7jj?kt+^ P2222221r2222,̌|lp Q@(R.\r˗.˗.n99O Tmˣ";GXfp p[O?zv%eRJDMjiWm@ @z*o5'90-1-Bd{Ϙ>|>ÿ_٩=߉4rq,ء7cy64z&VGـʐ{aly}4?7.TP\M 77XiM[N!4n(ѣF4hѲq LΞwiZ{mO4˂Ep ibk[5IlyAyP]I$E ŨmEPbBp=X_A칽-o|FebOK:Hw$;7g5۳gُ +!v3A@0XF'Lwzˎm8u>AAlj%cOȫ)y+:gqnoooonooo05 .-}bk*3|oEF)g>} kike{ke,ݴs?ǃƊ1tBqM2{X($oA)PER{OhS\Rc4ySΧ"(%(JWlO3@k 8{~T͌O(7)}Xϟ?S˫jw_-mžO !ѣF4hѣ&Lfn!ŗdV,=:4E.ۯ-k! lwAs0JJLU(`q0} #0O޾k3s~%q;J$H*D +)=,/ MId @ VgIU"EE"B.(4bPƓ옙A %@c([|Atf 0 wR3"/g]'λydC aN=؄!B>QG<r;`_]QZc~/\]//( dt0&47}jN?t)N/tPGGgΧgoU:i( B: .GjoooPޱ#ނM'a^iC@6,/*>g#"  8WtN!-O@۝K٨pu6ٿ"_Y`L_W?Q,uŤUVԘ'`SUS\Tvu()$7]^<&l2`d691僑uSWs)J"#!Kf;3s DarM֍Չзw-½'1~cȒA7|0UިB |.i_j,^E SR4O["rU U~q8LךEG'FW\\ZċҩzPM *EI<ϻ[s_H``vVy*+@"Em.hs7%(O{6:e AEĀUЯW;{N46H;-VjPCZ{06B֞l3{Y*hRsE&j-ښT* PԂ4+u kIYU:n`E(NRV^B35˼(HuJɪ!dK\BVڦ8T"`Uྶb ýwܢE»Z!$+&ajaoo^ňOn]JNbn̉@; E3^jN/+9=ʥ"(hA6 hO ڄbstNV.+MŅ z$+EL ډ 7wmֈnQ%K0r)=R#!0b5=%m F߉P FT[U`k:>QX|K{hrW:}=5EE}j`,HV՚;+PUamJ,³0ÖZV x w;Y"u:,tMbLJoM'dLK-~q5[p y9 =FRk'=4Yo#ayQ>Nn߷)Wѡg?UȨ$In(ek̆2˹˓lyt]&Xeys=kΆ甫ê2R[xi H'ݻ,S'D2%;0'9 BNaj򦇒,1J]N T-4D(Ս*J}WqR{ם )W8X+hiA<6FX8O35ȈdJwHeN$rMjr09yF5sY7]%)u;g[/PhV=ʋ="D+StP8ɳBlMή}u- mR eG f Nd'M-8>EbKO0JL۳_r`i#AsArxi,Hs̃dnݖ'D2%;r\HNq63\oPRZx%)2v7nη\q}Ɂ)[rD7%YId"7B)]%%2m╥2 ի 8O35ȈdJwH:0 豘Ӂ6lC"1]r\KByO|"XcStiMc5f6fQ3ݸkxlDE:JE!A%)EѩI7/?e6Zv8%,^Z@qv}hGxmOG9Ov![oٸ5+QV\\;~ͱ?'S0x[,\E![Ō|>7,MgA%#-nf k1mTXCEwmwz׫5td~q`ϨaaT aa*B;@BF%?00(0܀~oyGi``n:ag됓t3* @5`F 'J%k] (yWk$uӪgN:vRAL1" ҏ p;÷ r˗.˸JJIMS>6Ak֏!>uOڔ @/3g@,sfQ?ʊ^}RAV~OJE,@$<\Q$"O\R\ IB`=._7OzO9>Oc73pgsa -Jw֯ h֍lUmcUU5FʹZ AKDduQB@Sj;ƪh+OOmW+EX6F٘D?!}dZD@2QE/"{@KpPȃ"0ީOAI&U]^ 0l8?0%L鐐p2 ;\ڦH@͵vD7ʤ$ɢ2 DCa 0NU%0\0/8b0b^,řķE~5bꢋ`@4"l-@ $9@B;7767MͤYPJ +0#hA#?|;>ρ5?khh(QB(4KQ 5#ѫ}*}lJ%`]$B'$AcmIH@C@T@I`LF[K7i۹aa/usr-ty=Q^^1b |(1ݜvZփcɭT3F:6hѣSw{r},ܢE 6 cbmH"D"D"DiAChh׸ZvBtqa+!muuqv`pWruU5]rq7uKέ0&gITzKd=:,=_}@4O& v]*? :zrb9Sz/¸!`&GX,[k+ Q#QiHBIPt=0L",ƒ).bCeD$>E!(pH'9xz<9rMQD P({[o{i9p|kRdW~`RfR 1 % dM m;&~=m|?|gv]590QIAg"? y|gxO|C|*Ӫ%Pv~ ldD95 \"<@gq94<5r_myxc_W[DȗkOVADB%ƪQ1 )_Mʗo'Ν:tӧM:tHns%I ՔsX?j@G7+~^Z/Y"fX4*!齮¼Lxɗ]А$bX#=`r{j)kȃΦDZܰFM|1OBN QpƃO9d[,:n]1n{gCt:N:t'b?^Ȗq^i! 1`ѣMF4kys`tyu;<$jjQjЄ+rdAA}zMh6J`,QDm$9~AS3 ݒvyPrd; V@\J  >]\wNow(fRnQ.QF;||Hajѷ«@$2 Zy5(ԎxYgF(P'B -hW@X#ٻVBǑ eHDI/޷$ >4`Zj'EKrq1m5KLJj/xmʡNo^5v[I+Cl i;|^j s.~A'lF=kK *YI@)Bk H-a0C?cx+ܱ -{zOd1v;2ǧ886g8GXG787秽WҢ'㻾8`0@ -얂9GxBOLE2c jQO j9@2QM̱jH]ץZ?CEp~o=[S^ެ1^Xe^.qBT}xbgQ~2% Ow(#GG7gfmJΚ,+Q!:Z^sfOwe̒+-f*1ޡC@7Sv(+fy 99gzh=Z.z/Oq0CA*a'/ W7Q"eD O25!#yjvUR6|d/ xG>g/%yHR[\slҘr^`:'2_k:m4)48HH{:L32ڍ_AZ C6_3eQ?koh>Vn}o Q(OȎ+=F@oW{K|dۨ bu \IKN8.  0>yL[ZuVtS0C{jOq??ևi14G=OQn[Zr+k3 EG^F(m#S~/VҴ ,,c[aV!@<ޗFZLP9 _Ff GWځI.I ZQ0Z/P$nL9Z)"hߦ.`叟baDywyxucy>eidYuA 9m&r䃑Zf L!$?B3APT&=׶3L/=ʓ$7!, g{clJe]mbeg=NWL0dH40QFFѣF]`_RW42L"ZKaߡ PAC3"kHL$[WҠ%My-!XBn/M{j*mb³zV [dqƒb*z%UA C2|D##2/ |b242:@L2H9ًRD<kbBې "Q(Y/ ̋ v&Z Au3#\.\ZhZ-fO>}Ljcn5+r+V3?>̡E'bT@`0F g̈J--"|R͹IJ#|7T 0b@b `k},C k3׌}Cӽ^j;*Nx/O*aY0R,Yξh4ZDk4!H^T[1!Sׄ:,FaK2A-y2 ^HIQg"D2H0kAWW7* PXLw K^H, 297+Mݢs ܮAKdr-:z.1>>1UAkJZay5vHu<@CThGyot5p {흇.KXCl `TdFL J0j Ig,p-ܽux㑖+/FNk_ B_Aƥ2a(n?v  j>6ɹd-J&X AH.iKEAs\v.x~kX/l;SSҺԸdt<}4?mP]Ug ej mfoYM,ӸšwGCRk;:4LKzp$]G%DQD M! *\}LX0 zjdD Cp75V;tiD''H޼}~]n阗`Y.E곊LmʊT pm EX4h{=gNo+ns2^Μs9!)]c3/GU[ͺu܏sm[U׺ZrCL?!uRyO㤁)m@oO BORtnA"IIIÜT *A I$_J/}U=NM䜜rk4,C^" eg4E .dt8o CuP`{X YYU {_pb!j7T P6EyթG,Fo38[$wX`,&;u. rNVq?G?[[l)`;H6޴p6٫@`vŪoTqSc3Z/ɽC'__________X 2F!(0%+Fb/T)fX(3Ae^Υbd?b 䞎W}5-jKoNP:8s<`!IǏ= x/ _'οl?|Ɔ@:hPB PC$9\^BjoKnNto>Xad-_B5 oGS5 8^ÅX84 $pև Oy'?OJcO9%)))($AiIgyZ#CzvB (PpB *z{P0|?A$l#H$3z}OgT̉;ģy h6HȻcIA6@NAnll\ڄg[cf10H<ųOի` ۽ƭ^7_8pÇ8pÐ*L.Biğ( $r%fTHztxTY.VbH֭g7\wǫr;mhylwk~󝞃x2 -HԧPwOw t?Ap sP_& U0@P dvZ6p;<%B oݴ]]]]]eXV/M)C*?hedYJ$Ue4+.$IۥBB(P},p {-,[YI|I>@TuCtq(?b@xp}R(AθrBru@#Z:x%e%Ǻr55jMid,"p_wrX&1100110~@9}Q(%kl3/GOdC_C777767776ȿ4*0!.hJD% (eJ8L>F EVm\]}ĭQUT>_;U2Ҿ2pswz_.x:\w[$d$ Rd}L~἗X??up+!aB(PBY_X ӷsԿNШ-uKx)W?| @NNtmDc&[K!K1²~h8&b@?X/U||QE#5QE"#ٹ"""""%Dhwb7r0a$f$%%怪wskңܿ'eVA׸ џ۷ߗ79QEQEz(((((]EQEh(((x{^>-h/|WCqf9{ټ{x!FFFFF1c0}mS{8^W}v~E YJ掳n:ß?o_/z*o1EQ(\1Eݹ(.QEQEQEQEQEQEQEQE{6y((]N?J;tS @[THG 6oK?)T z (|>nQF1|@.\((D)'&L_*c1(((1F(=^QEQEo'((((.QEQEQEQEQEQEQEoQEQES˯%EQOQEQEQOwur)||,XzzU~q@1m=sVx׺Gw:THH>9-䢊(GQEQ{OQF 0`ݸ`9O=/QN0` 0gsb|ooy.F w]ewޛ~ϵ}nsf|nSΙH E.b11F{b1 _ "B  %/FQJħPP+O(ʒ~6}bv{k4E6b_Ym/nY><"۵mtrDA#Pٛ_-e|M=֟%,bx36J0@': 1-nD>~" z ySf6'{Dזg=#xxb-}t֟wp3V }X5@ {svAn]z"hܷ3j/#xL=kr"j;|UI ĮcsoUzbN 5]MA$d_30*Հ!P>\ڣޖ>ɚ:?b4x㫊NN/s'کP_u V*TBeEҚdf9MWI ]+h87e]Pgg}r\~^‹uqӧ\N:wx:,lڳU9p-spg/ @  ,>6x8ɂ Q%9>k Rbg?(X.ç% Li$8LR\ L$𯴦,2S;_Mx-̚hW{Bx!},ȡrE6&<<@.I4e{J-_k\ֻt.wau %(p9qQ)o)-V;xon?o>sj!fn֨n!Xrƀ(=\bw8hcVFNo#'"D0Fsb[2م >cY:իZS+B G(PvZxz>EGyQ@ޜs~ffffffffJfffeyp`_eDJLNpx>iZmi P9-G'|pc){x A_Z `ji@Hb;#g8<_yͪΏGhWjTٱѾIԕ  i&L2d1 u.QdQ3 ږ{;y9KwkGl7w[3ʉAYtffffwST>8]`=Tj 4-ҭ"4(P%4 P+Q Om 8ph`aw\1;4Yj(ςPpR @D;Nˈ5==MʹͩMͽ N=׉N~a)_S~R ㋼NN\D*kx.k{):{n֟mȶ!nsmx?;-Ҍ{o7/&kpuEt΀;8*U%JjW_d1Ɍimu#yCϐ' 0IgH [<dQzYM|O3o=ǧ #_]++Wi iu0j\78[ʱWGWWWFW1WOWWs+ X^Y@("{HFc47o-@K, eB!&;@a&4gF/ =e/gon f͛6lٳfٍ,>۝~.8! !BYc l0` J#s@rŋ7|j[鹋 ٺ>'CX UT:ۿޫ:7]! ] +i.6UDÛks,2IZ,='z{ɷvck͛6lٶS`_3N)wꞓMD1V4hѣF4h )۟_cQd% JsW{=o__yZk$nZ[a`ާjy)U]vw^l'7 ~r=@LA*]Z*4JJ>BE .(q gD١)nny4W"sbu9֮`\*Θ (u;T H vxJH!,'gP3r!<;0wVq}wl<\ yi#gy?" ڣ6⣐uryy HXk<8>?6m]fO,|3#zVǑx,doPE *YˏA|>=F' 70TKHE:c6L7џj؄!Bl3u:ʂg]ɵ12TWVE---S'}̱0X&I%y|vB}o|Cp,+7`tl"@(5@e CnC l I#q:.װ  jFd_pGˬXVCu)WX~,,L"vUuu}quuuIuw\7%˄b[[hqVp]enȲ Z,J*WسD=ʵ-fթfX mj*Y^gEi7T&]q~rpk-fȖ/h%DJVNUN* =Rh.s DɒSTNX*g)*TbJCV HkכzujEia(MުZ95BSӜ:D)JTJQJR萠$S膄Nb2th4Q) LEtQ9"'A :@u(`R.Ӽ(JAP&JS7&$@JPN RT"wNsy#Dd)y"3,/Q5.2=yɓE-Sb%;1b1DH5Օhn]'$ysBqAQ*(y)ȩ eD*(2RHi'X30тX|=y( 8:xN2벹k]4AyNATPtPꈛfyP 7y^g^[\ \,?>}36ZךJn'/-\<\HEGjE'64]6hM[hr-84V)8Su8B<[-CҲΑ83]ee' P-WqbV`'߸ pWҜko* NJTT'Ӕaal!v;:}O=f?~?AkoZMnK88w;VC\.q9iС+R+FCd 9(nOJ:{wqqq|>>s{e}g^VYìv6~ [`tFN>:9juuvs`3L8@!B7$?v垢/KxfΛ _\pts86mĜ'sh/#ju)y_V$㱷B 0نNqΕyGP=֠k k< ) \]Y]fn L2{=Uh4*0-3}A]dc3,YYA@L E2|QjE@$@YQt> Q 40۫ޥe^} } {Qh:jZSm&kyo`_N,B I$H"Dމ$N V)2[`y<)k)t~7ZY~ZZZZZVVVT%XKqp!;!$ r?_ &%֑6\oq+y?8 s7ӑ윢|WT{a%1QM& zmV#C[˸ؽuc1 Xh P `AÛ2zUAӴiii(&&N  U)u@Hh y+s6;D6VVVP);{X.l\̞V~7x s?(z_W~0j6Gϸ>&W. '"l߶ I>v#@ >|\t=@0f! =ʅw_#똻sĤorjjjjjjiijiT^V ){A"Lr%%%nXc|h`Gm3Qϡn}W+Z!d;->)8+UU%s0TU]%.&0(e{dk 0`sHKii 5C/7;6lٳfͷ6;(KQ#Ex)*HJ٥do.]O\Fsj4.5SsfuFFelHܹ>0sIHq(27dkZU+U5EQ*xH u_j,K6-j%FP`P2H@_m#ZEKeYڪRd3aI_ 4Q::ڊJEJڕVgnߔeFks ːjc 8埤SЇ f[5( Ȫ]CőZQj!h#rj zC 5am+ԽyR}Evnfcz?}oH)A8qÊ#]@Ggh҃oN8J4hіV|;acwwA+VrhLŪǽ7UG$Eo8 mǥ.]r˾.9f-gNb((  0]—៼A! "DH;',T`1JC];ۄ`IfEz)('"1'NgHP2ܬ,XbŚad۩bv q180c$Nmo^;0` 2d"<? I+g%HoU/$y$Yﹻk_xs_[ck>λG>^9w缩.$`< 9->($&>pq@R! (C0d.7a+-[ j)ߩ)ӕ] * דt-0O:٠Rm 5p+FhC$܈y$s*FOyywwZ:M9@m w}3DUM6tDHfA0e8ijXSK4ȷHxlqh@ ^σ(57{׹$H"D$H/$4H!~ѵ ؉MV~?mŜbf2t9F5묃qF7^̮$l>7RWy ݂UXUOwHP @ @b@2gi>~I)?90` 0` g:Y~lA&tD2O g`~G2k{`C"5BB+jDw,3=?O)0?>f38 ަ|ȏt^*r=v@絵hU:tӧN%Dlh$.wX>ַ`xǏoϟ>|&⒫M뽯6!P ѽ`}|q73:jW<,q~=۟^cga#W0 o1BEdzkXA W N]V l%z52󯪺;űl<1BtF~bĜ"N/w>>aF&faf͛6lۙff4tF`!:9UF4h4hѧ9(=YZf";XLO#=|0gjlͭ3s}JP!0IU{rk9C⢽Hg-~k#㣣=9PxpӪ>FƽW7QhRL(F@(50(W@3q*KUrtБΑͱQ^Qe~43ubGLC}}|B x =G#= ) s<7ו[s!/}>?ڑ˛6nMNZeuek'|}N VF5{/'c?[Zwj՜o%nzRT$d@&\yP2eM7A]`g_dv_~;2^l-^zD݋!JJJJJ@AIIIHۅ't`%V{ۇ f2ȬI$c%ݚMZw9P@c<Wn{ V& ,40a`#&A>d=:ϓ˽0 6lٳfٳfُ͛y *=*IDk)eQVށ{Y=R$2VnD NT DBrz9h=8'Uqޗo SCr0ǟ͛6lٳj"3@Lceybţ8##Qa,S;n@yQ~{Osary:llv!x , _͏ o p!& FH@d00x_FS 0`X .KabVU@">.}o~-Hg;jǏ\QK?=y[Siֹl!r$Y7xP.A+jRT1OO:\w"˸.\hdCˣB <9t#B49C|JggWC5(rtvf`gx_OKqEvu $Qsgв͉F1c(%8v"}%|spMWWW+uی^R FTp(H%ܡ4wѰ.niSO02*c^&K;~Up0vF>#FXIXP1P+T~wvbh[6Krr,YpR\/ =^}nsf͛Y6lx6l?)I񶽌^|[Cj­Rbs=@  p5I_ȏ<]+[EmӐ~Ç08pÎ۠e4,S!!!!! ` "a^nF ,HL=9|b;w;_L +" ̸p AyS ‰B?Pz]{ e$܄zzҐ+QõI=ˢr\ {.]ch5Ӝ۲Y+imO_Dϭ/я*;D牜1 |Ht= 6itdo\O&'.P&HtIU– œd>5=?>>mޒ%[]'t0Kf9GQG@ `%ˆ oΣk3՘vGCCd~Yh*3Vz_g1ϊC\dihr}DK^U{MwL F-O @pH`@E{-ӉXƔ,!B+(x 1uأB˅店{ͧγhѣQ@ɓ&L`L0۠zK5FϵyoBɯĞF-GyOnKv2[[ez}mm"h.jCEDEDC%CEAv^'b(((<5S;?:_srwAdг;? rpipx 4~x|SbOXLLKBdLLKSTLKPE?MʸȾHȆg oAk<_'kP=&v87|o?ɕW-VuWg=ETC )hnGͿY5\Er**r+\nQF1Fۻ,jE].Qvsn,jmshmNEcVMݱrXۚTZjm˻Ugvn6ȵpk\᫚ۻ5;Zk+\mFܹsG6Fcn;rk5tʹX\˕۝W730ke\sss[ˇ+.Tsm\rV*+rpwTYݻlZMW-r5Qsnm71rܣnZw[Furōr6,pj\**.E`WwX,cWM+֒ۛ\S+\btݪscj#[͹ᮘcە[ŸQt5rnkscsm٫971667(˚ۜsnZ7$rs\c\DmHk&W(s[fNjFܷ"ۅrbm\ gusc65\9ms\؝-9؍F[guZ6ܱwtnZ湴YQ2Vs]6rjcn+UзJsh \ɶ5r\mr\EQcnUʮksX[cnmƮ5ʺZ4\#j#sr 薮U5W4W4bsl;+sS5rWEp卷66 ZsW*ͮꃘ1D[\w]nU6J5MrQQ0'mUP|BŊ%,Y:QMO˼1(>'2ÏGԝBd7ؾW_i̬/RyT/|GFFFFFFFFEEGq ƳFưFllc:kp)DOСA I{Stf?85RGաtЯ%R:ڄg@D/iۮfE`ļEXs⢢VՈⷫXWꢭۤ1~3333/?[kԊjIA F($SfM_=Ӕ0SC|/lj,llk\lkln3Q_qؙ?f:V=YA-Z>|Ϛ>b{Ƅ]2pcu J ! YI]a۠X2$Ͷ]i<zﻹw|&WcJ\ WY_/\`?[xw2z>Ox:mdvu^ҕ+Skb]kkKJm68U:\===;9zp=u묮bR~ȍp# _!Tjl=7>cYxPs+aGy@E$B9w\qmn TU^H=G/ _go]y(Y˖{u 6VjǙ.wdzʶ&Lx2eʱ>WJ&y.3܎TgU6lٳf͛6l6V{SD<l8D|eyK?KM $c)GjvШI)= t2f3>yO< i- @{ׁa= {(sfeFy$ yZms<5]ӭ`w!:[* ǩbNvpv΅9sAѯ:X{8}8 A#; ,[u0'I|l: (TСB,B8KZ>|ϟgYt:؏+7<@sH}I]k$\5o?evkryzsw%ϏjO һ9q~*C ЁPBtԶ/+^Ysx6dVctYUZ*m !Bw#2v"~gn|M$iǁ Mwtq9$=zΫm:;[羜y22ia&\Dv㢈Iqqq5qqvsǿtĦ6<5;9Kt̶T.0rT%$ #N+JcMD'躛k~\||z||zt{L|||T~)?Xx4|>^ bŋA,Xih-dO# ~$cFH/o9i,B ~t2*bĤJo9w]~ٙ G{kn۶n۶GGGGG*Gv /Zdzpgi 0XbK\-6hM`_ %ylNv<ίn=wqlr~/tsR:? Bv" r%8pso, Yu(H`.t~s ;SQOm!(JD}Z|a]g8f,i$H"D$H8^$3 ه& RPJ Sh91-1"[I7vuqؽ[qI9XݞG{=>CIztN{| ~IWVp\66|ְv7xnxr_H냹IǢ CVO=s enܛB!:VF&VֺV֣gX19U\Ryu mey~k1n#Zpg %yB O7~܍U϶Ș#^`|&EX_}CO?4n4 ObܕɛNZZ_]5īqsRAR@TxûBOݳCܵ>|ZGt(0/& / 7AE EDDkQhfUS*H!}#åǡaԢUgsegao$0)%Ui="`\w(! "9HKEOqTa"V~Lk>gy(ӧGV ~hE&IO>&5f+F[7k)?g\ Cr,\쀠@$% rLR}-j5>Nv0vp шZڤOx &K[vOA 7nֽ@(!x ؑ@/F^`8LȕtllNvJC}\79i~H_0 ̇5 'Nf8V);L‡ߔ~g[U22212223mxF5K4?el'U{쯷JpAe Ay]8:90 q CtNt't\Ak eEp+33dE UPηs7w!T`~D`$xa!RZ* $i:dW\C8qTÇsD+Ag@<ǏsSz.]re˗t7#ZLudHϻ~űdo{mx/otQhÃ)%gNB~0 pSП&tL4~+屻fw)zc0wsl͛6mٵfήU2@lk|mΤX<=Zt|JUACbQҠw[OՠSBdՈ,"3 :j*+1 x#YpBAntpA 񘆳}Wr뀾\B4Jg@@ x%jRۻ9uUf ? 9rޕ?@4j%C õ5MXA:"^`"I~DuB^j:ͣ޻ڧyk`8s,pi&F=;PZx a8qÏ- leE;ɫT\nWnZZjv@cB{~KtS){Ko!HAaw($a~\y&an;Λٺ#|=>ξCIB (PB >B~i|/em !B (h}u !m{~o%D:(u^qKI„ C/Om{48 N7!#JasCuIX7P<ͷM<ˤ^]WfwmuSYF┚~[O,x:tAӧMef>:܇l(Gd H d_EH֥p1.5:Rdrφ\3ޓ>[Ʀ+Cgf׹'= H CyejXIEҲ*=1͝k.Cُ>'<O/s#Lj@ yz!..%lj+<%`ah7&䙧?Nr)Sz '(4`KĄjuuqqU( 3f^ (r~3yHJ %:w\{ 4G.{^~~Xssqbŋ99s,[JqZG0|~7>ɓ&L2da9^k+xaA'~R5IoCl 6QtO2Wg`hx\ "J $cHciw۽_OEӚ4hѣF4hMC8]n;pg\dr>=Ԕuu܈uwZX`Kݮs{'[} n4 1>@iq9jCإ\ >zksRy÷l[stٳfͨ6lۛ`ppa3 FBN}gNӧN:t׻58>^w:ir{J:NCjVa$,pM(9V9 Љ)/8lm1ovʯ Fkan܀Ƙ-c[mdw`7l3W0=_'rN;5ླS׼?1AjTԴQY;.o//؈1A 8i=g/ M,UOy 2*qq@oG CVyv:R(~>BS7B,wu/zJ5g8pÇt8qȝM'_6bEhǗO*Jn+AʐGy,GVK(*(V$@0IZ4ZMٕ Z3ꨀָBGa@PH l1)5n2G|:tӪN;:uU{4l9և.\xe˗.][cSpAd?VP!C\F#oK]>Tu&1^! sJ:2|8V:m(0qHM$!H@gpAmK@>ahHeB2A ϠMLn8\I|KM$KtHHD$[L|vA&gVP cDK+ ,l~TUGZŲ?Di|X-;^Vuv5{=TvHZ|ƚweB5f?ě}t&5,f %Ji֓;0}U뫫`iejN ABN/aMbY$E mzHm~nZHzъwr]R$v`/6l ⚪fŋop,Xvq<&% b[MxQ~y:uXӧNs}V#d pd! Î!xḱ;`~ԍbHKnujr/4g/]u\O}6o,6lٳf͛6mLٳ6?&TZQbŋ,Xb > Hd>?Q?5owܭjͧCWQvDD!>??u`+'VD;)uFK\Zm9LQ191R-b0AW_L89:tӧ6f. k8I!$A%>I>ewXJ^0Аd$ڬc6l7dtkOo DŽX:|m#gMyۮgo$c Rt"B"$C#_A'44<%QәzUS;kOpW~?{׭V[.,_>llV,PXɯخ¼l0pJ]u /^_AεޱR/Ame={ Irj GIJJ7"SWoTAP{ld-XhO+]q<ŋrq}h0lLbʒ1sW$:(dM]qDBnQi%ܫNGݼE_6r}K;?B8]2eZ% />iyÐ9:t'ǺJ  ,NA@xXӾھzZgxG8x|?}9Q?TŨUfi7_#jOVCGjnL;ͯ`Jw!JJsR"yn=:ȹZnP;6j  IP (@qIwP{w4{WWІ|pt_qz;D ]ZZOVQ=yTc3/"6&`aO1#c,c8|(APLVC0k$)=գqL7vv{`zas~(cH)DI9U?/̑I>S߁v{?Io)m,FQny$ @ \Z0<=/ShѠ5g&{<3z}kM@-`X$)".'Qf #Bjmuh% I6fO8!$_7j.TfY!KgEhh:Wk{Oc+\&!B2'%%@m1I[Gޔv^q)$H֑"D@I<fx,y|. WO22]Vf:owOO>:߾V ڴei\$l32A\gj77~73/1[յ{x-N7jl FTu` 4s 3|sLw?CPͳq2uENݹsF~>x-^:p^IBj|TP_cv E* ˈW s?/7>/E_'YCw oooo_oooL^޿;=(2s@mPՖ@ͅ(3o`ofdkooofvH|F[Hç&PWΦ%Aljtވ_m[Vճk>͖S5TʈqcJspk xH9bćW} AǍ@1 P~-{j5EW}Jʯ%mWAeZUʅ8.v:@d. \oUTk\k×-&;XϷ73>`# XlI#ǒl!^݅<y?);tIݣF>ˍdYO 6I1ܭiڔ%-k(g _${adIQH$d.+kIi6&̛OAP) Z#?lo" byvo݋RӃl@UGd[>d 182l1kYc+ 1CB(7N`/>39|/CCCB/CCCCBCA̦55>SC8q#Aͺ.v("QgC̭SسACI$OԮc1B! U2tRC3>qpÌgȕxʸp/}g)7s} DH^_ߏ9>!x֚}NS&IJL;=*ck> ϑDS?5 Hb@CUDbfqDD b(2D%RK{&*{_=}i6r2 ?}gSO?W|!2"$ejUSti~MsfբhK36,0z'aF Cw^-qD^?5Ȉ4LD^]$UXԩ7R! J EbB]tĹnSIE0`BTu`‚6zkJ&WRbZ5 mVAv"(JZ+ T*!13;a@"H4)) (/BNN MG;ä"htJ#P3:ﻯ#+uwjvTn߃ i"HK}C0[UE]KdzzRxd+'Fy:___C2&#[fo5[1F*T@ ؐD>~|QQќ 4k>l2@a[z(G3~clu? Mcx"t2-BB_.ڋU:$A#k&#2 n"O~FŮ~D1cg,#"PRG#  "mc4i2DRD[$*"@- Pd@ 0X .JZ ;E& @XLZCd$]iT:X[uF !J,Px]\pJz}!bӳ dUI5Cijf*J!rC"5$j3S@V<80H(ȋ" qІCL B_65pq3^lXsi nFװok]k{ռKwQsǣ7~t=LN_3zq^!Ds$e$E!5i4,@=jD{%H% kb$ desVn+ amW,H=U}X<"ڰ5`w+So^>T7Wr\2 p\e#nJ" ܢʆ|_oB簧-O>ݨ3xKIQN&/ٻBB@ʡ42%( -"ܢ@d@*Ǽ,|(,L Rm ||;A1wMX򥄉,Ha4Mq.݀Z,X! Mb0C9lDp(!]Re4.Ք&&ZB*z `K7 YAi-R 59ċ^ݯ/IƂv`(1"RF t"G} 1 G L1Py&L*2YT İrI!"M_,Ȳ.WA zlI6+ǩ+y ^qEz=גY0 m4 D=0Z7r2w8<_.EkkwXȽ+w0'vL,L`P"H"+H' @sX"%RW蛄@ )KIGм(*t A@A,ΘZH ;")wiHV-b:WD vy8%aV嚹$Cad%cBPY:Ct"I`^SIĉLl wZ݇fMG~š:&@ݷf-u M4\3?rIX7 e5r.X:@$ۖEL @LLY dF-C >Y:ߪf0: (]+ hݜ%$̽{}o7lW º+:t BmUL*&h"r֋9ne:YAWB܇$k l&Bf`]@0Z$Ɯh.Wedaq@uL< oH9F4lBbV9`}sE ;TxV># ;[5Y?$ $Bf}6@LѶ-E\&bT2`y`H&u90@L$5 щײQI  " nᤈOv}K`dS+:焸k0$[# Χ#QǠލгʇA-0 E/t=X-P'cES̊еr&zHr$HJQ%PZH6([]k -1@&@[R%'LKc2 )3X(ӅX(IS2 JtdQ$X9!j,MNr+CV#m"en I[n a"" ߱W^ѯ fyw ޽xrޟKH  >7=KH>!%۟)fgvLdD!י"4 9aMtY Fo&jrBDJ"$^Ne&r""C0ZehAvЖimnW,CxNmUЙ4++3T"G)Fv]"6ȭX6Po eX)D{2aX9t7'aʡ!]V\IJ!8<xƅbF"|;J68KZqrqp->Lmwp<Ԩ* n?((r^du]TS366jԭS FFU,{zoЬ 9wcLԘ4c$H AAeDcw]bMr$H"Dΰ$Nm}$+R -Hmg&jw~A}U\}[~LLL=h)?,h~A4 2i e4<`߽W\_@=B ?~5[r7\n23sklE8Nh@Pb@P*/%J"/k]_E*LK'@+ABs(P^ :6)7x$v)$$H"D$Hۧ stȨKS[69c18pÇ8pH-U#~K*Ҕf7)<R9a";Wy|Co;; ʇDQ/Le# ~"/fEPG8L)Ad~=.o7Z&Ʉ3&&*LDMNRu>:m󃋼DWni"D$H#Dk2;G;&:A(Pc3O};тTOz׺q+tLs(o+gK<|dcfkz8u*S{}(, Zrx /<YgMl3دtNO?\Oew'p,,,3vl,P+/+1NmZbcNZeeeeb}ed{Gaf`| ȌA1,:mÂVEQ 6EiF}tفsM8$d C yQSĉTQ бIUUO4ͷ(J E^ߖ]ӧN:]Ñܗ;!Wxj9:tӧsN:usK7#q!F= 4Ew;`B&qLitxG,IjY.:xʤ dĔ<.EƓ*[A.opgx>o4hѣF4hѢyHkXۆm\Ϭ3FTAϑqэyMbAd|8AUPD2 $! ! =q/lk+qڞ- @ @ցV^:jP=LWI97Wa4hѣF#B{{c#:Uk(@C{ "Rv?7.yi%w7lrA_ӾO7@wUC~y<;H m\_|"x_JdE&@ |1ga`$W=BdXV|KAM,vWJMMRkQ?@]\P12s! u`@n%=`lIl~ Ku":‘x>N`de%*B]EiJxp5k :  @H(뜭%׾rxZܳ~Mt\ɹɶٹ᣾ffD(!FwjlhM (.'xn8ĄDk"l1> =%JI%!d!HHN jƜs_<}!PGmKT-Xbŋ-y~6. P*%HW ٶ>T}U}'[m "|- $N^EM/$(pʫ@}FqaІXL2dɓ-L=U4J8z \5:/gx~vkut>TS) UDŽI9yF6T^3˰cZ/ǎ*;޲p{s/9YA_]\D1 D }QHgU ubI)&CJ9(ICxH(($=nngύ C*'iv%*}|}}}|}C}:ߥ`zzO(3:ߖwczY(^7Q[E3 echd֔ʺtǷ5uTםװ-vyѳdaK/o-vUv,YOzܭGy嫙E$8t:"&D l\t@-UՇ܁kCa@*UP"SjA(G|w3ٺw< \r JllwJ3u2_;?"39agu ~'C㧤{O?v ;ޏn/cg e{:!]ӨӶӅ9+K#L Dƿ.O4tkMEYx:C (EdƼ-<&0D:!@Ԩ"I}z~4بThR(#9r_c0_q;kjɓ&` 3Nd@A55-/lkHtm%\ Ti~hp_dbmw!yI~%I_Zk,@CW:A(c~ȡ:*g8F3wX$;Oieub?u B4tiӧN:u+YiGU+ڽ-.B?-__CŐo:f0 _Y3<'+oAw>rB}x N Cp.(}.9@a(R ?Luq49(?H4h呸FGeĿ\`]we+-3D$N"D"`A0"7 Ձw?cNUPX>!q8;֌;<ט #0]40A\((m׏:W;w;sL2e<ɔ*~Jw_{‹O'%$\r˗.\ .grȑ}wRfg!novUc aTex5š7rq;[\ﱢN_K`-V.⌫6 ~Fӣ.]QE~辵#spF~ 4oHѪm ;2Chi]^ G4'#on>(ֈtm~qOz:Lj@gss/rUgmٷ65 1V69f[vs\9 6f f{UwB܈T(0*.;BpQ*u; =};ߍi*Eƨy<[a~ݏ¹/UKN LǪbΘPM<  z8Ǐym<{r|. POR;'M.}PA|4_C/b|ǏǏǏ.BG,D# Ho]uvsx>3{@ .P~D Ckb|(TQ GFE ص-Oֺv9uhGfxfתv'w&` D1M@*! (mE_q@!4:M+R]}"Hg ق2Ì(;oA|J1Nu,}6B=꧵ >?R(S@v/_w?q@ aR^C M(._qj$=V@$0%>t`+f͖1vپ:mX&xfhfl j2őHEX0̀ʰ@,4[mt9oE2 #NOfd"M$I5-I/vGSQ"$JُYчlN7HI; xSzd̫4=\䄻 HٕK8vH-fH8s&ez7kNfd 4@Y旯 VYsMb@L<HI#[Xt]*on@$%Szs J:d$ 7s(JD BB% :j;R{b<32I]rN"]Q$cbI"GCQ:7L$g6Hbi"+zb"`$)LqEmQk%g8{n&kEIE)jMi&y*K4 $Pz'd4P?JhI{RF<6iQ=UUUD0L &!`&A 44Ѧh4 F0o@=j&)এfSGA'S)~='=OSOOT٤iJ(1y>хJPKUyg4|(Z3%crϣ-I!F|&Zs N{У*Bh;tфeH3pI1/݇Kʨ]EAW|_l"1h55 SSTCUMe hMmMptuuvMQ :5GG}^:H9PQ˙sZ7܇_:MO]s/=?K }&%%%yt,OJ"AouLo/;XNLsm~ k YN5Xw.3x h2~&؊KԝƧ[M^t8޾+[=T޺W)̙> BO|"g粢<3M_!h[wRP(e$0vǨEr#ѝD|S#$cbLI1JI@^*(: O9|2334@( tNЉP礐9!1D#:*i<3J4Q!E("(mV$:aa.*j(up NTB9A,c1r) ] 3++*bb⸦)DB!!6^TA|@"AZTRI;XY 0xkOi}ENd(JJS;뻻_Lo^wr@ڸĵkawU1SʘTwZj:Cqg.,:^[p֚~g["1 mT!2>mKkjj"r6Xw]8.aKzpݶkU{.TӬ%ZnPf 33 ;G[=~->^Xt{gusYi|ݮ4J4u,uZW)j%&Է@P˞CĆrޕ<%FwT?O|]sm[+ 5pzCYuP{鲶]f5aN>d_a" g{Pň3"?ӗ ťշwA}+5/'Ojq|>u귻cǨeF5'ܯ߿,M?X${ O P-r:'gikːn4=Y^eAbpoV vE@]qR"xmo>2ڤ\RN~?SQ0>͞ R__Nt1T;oﭯc)kx\| xFK߯I4_| 7k<̆!zgVCFCJ}m{5۸\b6} s6ہ5w&8|}җ vFKb/Y*5(cyX*Wg砛4Cfxus/Ggzz-QD58~I*)nϷlYelW=RG×>̢YLdpiJT{޽H6F~rߤ5ZUo7OK+K(lcgV@?}['X ? ͂ 6is_<Ɗ̱ZP|&Xvūw_6j&xvi%:~%rhj/_SqZ8Uﮉ5e`:5o4g}S"AFvm²L{4+w[u9p/2_*vw5nOv^mwݵsFt;;T7s;T#-{2[y]+=M&VE3TOWJi_W{i˵Wo?.Z_]0:3pܳQzasZnOk} wz#˵o}9KM[c[Ad̰|aByUh>;O[?׵wxlJC)feYr[ʡۿnɧhM^Q2Yʻ/i+>0߃5SpQYvNZVXs~+{VIgxH?~ZZi>W^d<)i?{=k<4A72(V#k}k1IO*b%i~;x y4aNq||US~_ o/8>heϵѩx2:ԡ<'߯\]uo˔ll[sOgguwܝЬ8M~ӿh|CFZ"nszM_ɦbJ-6 2P$R?Ӽ.|KփWBak|])  ߟyǨX]%vK#\]m!N͔Yw='罹z;6-=pvr _E+xѝ)in',7`YV&NsgxI8e$Lm{;ɽKs'CFvWSdio+ΟNfҞݬzOof#>L>:ΩAi5^Bﰾ滛Znf34FǕ~'hXݑ0Tz>ԕ*}fY]ksmLwEbmy:4ۛ)|Y~&ݛDsZO< %3Gu?/ޕooi7翺3o0 3_y;a9, H5O|HYjz6\`h+Qu߮%bp56EVz.?W? %Mף?/&Fտg{fnRGǽIp.cyϪX/R&Q ܝVQsJrqVG9-'eΛf Ѥj;~7I@:iWzc{9Uccy. 53gro0Dgi$7: YN?? 0?ּ~7T'`ZD. X{ct~z:~-;&ţ˜^Jxmzw>Ox!>¿2iq-|h{2kzZ͆{˪ܔ i9r3x]oŗp5ukW&I j~qc|;Ot|^yv;8g9g'5r|zDc 5J[BR^]ei,JyO%3~qM=SSwu>]S|V>v//vy>4hѣF0! e $E4h(Ν8NDN'N'L&jNPihP! (Q(O>y_1&WnwTxΆҵE@G}o XJQڽu7c 3\]P]\AzpAf~F0&l, D0E?M!tVBJ V%"";-j+tB@@p:ȂPB舅b* ""bR"%EQ-QREBPU ˢ{*ZmrjhE9ĿBKDT@BEPWZͫyּU\ּ\ַK[tE+Bk $DE)E*- D H"( tn0h ((R (%UbګZsUڮZUT[rnUZjEm5\MXE ‘DZA@P8أX b"$^DA㵷QQF ~ iUC fEIXZjF-kVj[x[xֶjƵnmr*5]ݮmsUsZ[kUkѭҫhm\խ[:V(!RZ5 H2*V 2((Ԡ!h "H tڶWZi-mWF*rEk"R)F*R"H #H;z[U%^ ZmUbܪ,j招jrmof淍ʵrjڍQo(b+B"(uE+xmZ69mW+E\FܫQ\ܮjڊm-mۚ6tskUʭ1\񭭵oVڵWuŵ[EtXͭmZ[\kW4nnkUXUmth*^jUmr+j5U[FƋr.Zn\Mns[mi9iíRJD"* PR@Q6 `(mpt!rF`EAJ$GQ\DpDG P^ v.hAAqʂGI"U1ab1S+|@PB `-}UvJ. &;WV"AEhm )}pn+r8"J [_-yAo Xz/D*C&E0KkjRŠյieԬ,FֵKmJYAw$$]q]n]Z$H ]bl7+.1aK12օ̴4V)K$QffhZ%%4! 1)iIJ4I*P:J,S$5Հ" L)0"++"05V* )R [ŭuխ("KRKx 2eeuWeWuV AX U zEyWY)j*B+*6UUYWJ7$3FoJ#iԩhZ(-sϝ>t>u] EѹZ*T-(YU)ҭfUԳ"%d4 5*&ҟSknMSPڡCkon 6mO6tӧN:l鳭V=}uUU*TZmV[KZmVk5P"eʪ `"\EuV#[lj܋lZ ( Agzܞ}ܘ̆KW'q+/f[5/ʽ7Hwzu5EMUe.l?,<-Ey` \n.g=Un<=NneO_?.non{Zwf~اxoxwϗ?oes9ێzϛ`k뮺릚iiiiiiiigyyyy6|ݽjM^'{w~gZ{~/^ϱ z1[]u]u]ux>x^,c1c1ű;v]Fy׾ǩz=A=|ݽjǏ8p)JR)JR)JRAIku7;Mz=p $I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$?7oog.\rkZխkZֵkZֵkZֵkZ$5Մ>p='P zawޠ?j?P :w|i;I$I$1cƺ뮺믾뮺gy|vvvr{{7m{9]uY1c:1ьc1cI$I1}c^uL<>|ϟ>|ϟ>|ϟ>|ϟ>|_?'{ߋgoNg$M?u7;@=PxI$I$I$I$I$I$I$I$I$I$I$1c1c1c1c1c1c1c]3<<<<<<<<<<<{;9r˗.W{ZֵkZֵkZֵkZֵkM4II $I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$4Z-Eo ZrnSHBBg̝ QDJ4F J ZҌ0sDSWE ƒ"" m 6ɯQM)TKm##֍EPV*B0 .%U/ߣTD HATH!du帰_mnIڵ͵I"˷Kǎ]7W B0╥2ȡFպ!"!0HHZDr% -|~OAly{D֧Tˀ">hs^cvl29&I+."1Ȝ67Gvx-wyݷ0I_m&2F QIjJRP~Kx%J`+BQD) @@`@b@@hE@dwjZn U@oAPAADA$D1~QDr nZDQ"3w}}t}wv78mӍx7qfXU_@MA XzT]6(%ɲ U# @:DHE@AנQ K5d["꣮n:^rKaNՆaaᡆ5׌X}B7%2`SR DQXqFUG* @-(AEA0 '1#~* +A2@XCD UT\ UPS _*!yBH(d(sz *٭mW-sU  #H P L rfK% bKbQ;:C:P)1ɤwKL(8NAQr\Q DQa`PU^1mӻvNEަ6uM_WN&fU7C,Y1cZv>#f/eònV#[ɼHY.PV\qokޤxVT O=-*Θ x^ȟ[yY^ԖZuxuSnn! ` ?7B3dO-/g)1d\쫴+9Ǖ^_frb p@"HG|}?8`"7 #BpQq ,R"%#(̓a8vIYKNPjڛUە\B+œ!ц&x9`ϙ9lDNY^eNq'7=9=#tǠuOo5?y>;՟O#=#{71zEhOQTB -*_ENmP-E#ʼs|^U]控:8:q&xYxox`yω9㽩s]%!_k||}?==|{zs'=}i{zo}@ z!|JЯuP6C{(u=h&σre(˫KʋɂR,Jܖ>*7ޣ7^3q'7724暚Y0Kt>orʧb|L)Ϸ^oc;u["2Y𧣝|>NjffnT3WQj=+c bc._& lۭ3o:̹N+S3lAw~pC~|CL_Z-pY %QA+mg}a_Wq Iyf3uyyytKçx< }ڭݏ-gۜFHntSQ͗caCn>[Cv=NSu:Ktu;N+++^xk;'wUA.jܞ+$1S'\(AP"A@ 64Eg=ݣEsP_Կ?s?Z~s\մ:/Ӆ@tD?AP|MBi>z]7Qumo_!MSxmwobppdfNl@ 6ĠAŠ? M@~rع.cn<3PP" AQ;cWfk [ȆU#;+م@}|@vD԰k][G@R֝mŖןIjZYj{Ɋ!cdK5mS,('N=sh͎U D$MFEhب ȣ"Jcc&m띳gmjekNM?q^yۄm9d׆;ⶴk5>ӛϧx(>GaX|Z>[;Wzsuw~x^]} n'o2228]s=uw>DS *uQɍ_vPkۛ;5mMX$/fv{%5EUeu7ờ槃nZS4lͫn/zXbٽkwaMo7{Ƕ" F??G'm8]dp.&EG4W[}}lv.Aokw]Ncw}p^'px<^xO4@a(~/Duj=93;@"R&L\D8%ߞSES~c湾s~Nnrx&#C'oozoI$djK&+mآ6mvӣcJҴ/3iojxn}* =[U.R+CA0 uy!~W[o&YKvۻf]T:)Q 0q]\] ]]]E]]\\Sτ?$T<jYz )PUre]Jux;Ғ+N0Z+c9=D{v LVv:mߢb{oj^ӢV&s&>0aAxW|~}6 ژԃ8 pE$C ۲K7,<~( ?b9 4X_H.<vqO;g` ncs1s>Ѳ1~"D_oގO;Ko?X1;oН?X_< U<#=3h~cҙ3h_4IwzC?83zg7滱gntto݇/t5C-C*pz,XQkSB3 4 sA*Vnp"ր[ \UUu==|[6hтIIHȻ Ddzث5ⅪlCC\HO\s//Fv fBIg~NHB_H !}NkYR|>Yz 9S칬Ur EB0Vp,lJRكX.vH$ c Sp0a%1@qhЩGsswh-0l3 Pcx $1AL<"7D3v9S8]t#d7ӗcd]mh}B^dкBy;<>\zHЙ9A=9(пt&=?8NK>ro(r,0s'4r<] ξ=w EZ>/ Y(SɮPQԐ,Yh\0UOp;IK ?{۳{126..>6۝61:0 m;7& BK1.0rEL>L_un1l]&& iUXmaufW4m.G^^]ݽ]\\hhBR v`G8]Vŷ\|v^/sq(@np/BsҭӨw;aaD}@$vrJTBE@ /WQ À A@C$!iTeE}m?Vq1ت(zQT 1LE $&l< iC!E7wvbbvV\_Ϸo{71^ߝA|$[ϧ-~yW}\VMʤj?<_ /Rc @"~`V z vQ"RTBAE'DF5^_(嵽*_^1C (vĵ*I@~BQIEbIR 6+<kg2]^MA 6.ounv3Z [n]Upª;SRQQQQQGMIH;n_}6afezDqa0\z) y~h<#m{n;dشļ$k6"  !yaaqanv8#C<( W R"A uE&Il^ AMx8@Fθ<= p΁͟I@I(è  gޤ?Ct΃A 44hOl}yN$QQ}\N&;p0V%F@Vgbˇr=oO m'.[-]ZkQj5}6MisZ\ &I%}}"jƙL Bʯgt#O=>)Ǧ!q72 H>U @ 46nC(~b:5=)T xC=G*]-ʋa;: ~B6c..&8|t4@ g" =wY .({ 0`ֽ+r}lks{?rmV^ 3cK&W@vVf4Ice AAWCz=h_p5g͆xa=%ϱALFG!omq&fl p AI/NoKj;ƣK_>[fLS̈BЀEh$F$DS|hJP`*1TA"'Z&va_OJ*Iri1ѱpаPϏo9 4hy%XR%3' 8Ϳ r`$بax/~ZHIN8D5N7s8^&86WP9ÓQގ[к%=n{oفD`iev]a{,yi^FBt`30:x e춯HAQ(PAP!H&}?> BAɰ~/g^]T=ܟFm:-dtq)xnYs~o}/VGc9{׳,}f@tTlE2i$3y+a^ Z};3]w0Zck̟T-u6r0~< iZ@$;*PB@V VHI? *aTpBL*%'Ô!4P|q{r["PSH (Z4"34qI! #X]}g48%,]%G@6H,w=gF$4:Aਃ 01*V[`k{پխ4os^T';*:H{C~V<:odz8Օ=1#/oGF: ԛ2x٭[8uu"q HXpܬ\zqwEM0W*JcjyXɗ,Re4 )ío21@k3S%#٘?mw߮`P5vpP䴻n Ь=/ 7gLlr@%{0p+@o~-?Q?bB4>;%y'vz>}2p@[z΂1G :Yh ci|/43L$+_|>S?_[^?>@/gߕW<^"O.Q'[]fX(u;>NBwދg>|jy7}_&z=Gwwpw=tnZi&Lmlf*Lvּ"#I{\s+Igi28v r$JQ)"SD%dJ,Nβ22b&o{ciMٴB+6}Gc$\ryզmm~?vyvxEX%IEIEiIEYDh#N1Zzzw Hy5=v?V(w7Cu] O%>'y}~gW>Fnn1kp6Vؐ_^ӽ X]X r/`<3_dPaۧ}rg3u%;VfPym;/ksе\oVlqʑ݅m& i[JK}y.?aOG77x~xw{o3?r̿~o|=ϿV_)z4Wگ񾴚>ByQ%i6]+Cfoα{Eh x6_}DWq0v=4==_k{+{z4zC{{&x}À=7cf6ٍ("7iL[р-@. sCCeυvM.b栶Vo8ۛ}xXWZVje^RhZ9:F/[OW`t?hC-H / =OslO{sC8! oğgp#9 ƯOu@EHrg'ɝ?΋R0>Be`dbhV8UxqgL9mɔw.P@-,?P?1NZWWщa||K qB«=TQ!?`553+#jb1͓###_1xQO9i4M$ʪEƇCh4  [ZXgQ*M:s<@ܸwBi Ht^6|9^^~ކȽ*{ad'rQ溟W*~޲ia+hοߌo.s}3񿻯kǃvO/Uzp?ŗg^7'wKu=_<^<>{y<]n//<ѣ|Ƥx~7uWl|__<=k[_|{=ϏN76ĒI$I$I$I$I$I$I$I$I$I$I$I$O$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I I6_;G~kZֵkZֵkZֵkZֶZZֶlٳekZֵkZֵkZֵkZֵkZֵo-ֵkZֵkZֵkZֵkZֵkZֵkZֵk[6kZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵw'g`mmvݻv۷nݻv۷nݻv۷nݻv۷nݻvm۷nܶe,vz;6lٳf͛,,,,,,,,,,,,,/}~|]۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv۷nݻv훶nݻv۷n~gnwIюc1c1)X<ܹr˗۳;;{?{{{{{6^{{oBfh]uRI$Hdn6믿ӻ{vkZֵkZֵkZֵkvWekZ]6lٳekZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZֵkZϭkZֵkZֵkZֵkZֵkZֵֵr<$qm۷n6ݻv]vҔ)JR)JR)JSe)Jl)f͛)6lٲ6l)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR)JR(Çd5d"&fKC>~r_tzp(g}OGIKMO3Pg;0c 9TV늎Xdh` )vF6.̈A-,4/>PJ#3 ++?~ԀBpi֌59hUpV@#pD2!N;8׷7zGakioop[މNpX,Eb+q xXgut`t ,l`@X 3p,,$3 oE +^p'B;7/,܆IL Apw={@ AQ|^oߜVkƔјzj!`ˊ+ue]J˜ڼ^G{nR Ъb+ @3T8SRP$R \sy֮o7͌yլG!f~;7;I9KFNi}xCiuc>wc?QP<;aG6:9:>a?:xC;g&38y?8?輙üa},{^_y/>AsqqȾΞB{utY׺D{_1\_h0>~=|ϼz;g;D y_{=';oh_xMG}?< O{~iXК4!I?B?=g?agqqппOGee G 9r@qC7qqvM akuVSiK˻Ammmmj'lWQpoCVMO`ʧcJR0.XʋM_'g>۞{*M^Ue]]UVzSSz"_}j/[[뫼Uß%%ޮkocEYYvlznWt=o3ry|??PgX6r_;e>kr;sx8p=[dmwݎ&~@@4zOodʇg~9BmOݎ(ͺxB^hÍwCx96>nxU }t'\g<>YO}G{#NHй8B}{#9|t/4'3gqNqιxÍ89Byq9ץza;Оq~'sվqҟ?ߞHpgqNh$D/ﯴz+˻?gsԴttT4ONEgN4dɃ)\A= eu_IHH[x{ ?5;ҨXl|8vUUռ&A lT@l*0x@1$S)65X=G\['b<#0+5VpUJ9:{~u ո(xLu1pTUI\P쿏gٛyJ 2ك^:uby9MG.ӗ^Wp>B&sp]iI]w}gt>/oYٱd>;|qW,Ip&},&#!B) 5IY]ZuȈ0dplGN"́ -'jy늃tu Su}oa浫O38Mu P͜a<~P0 &B9ײ !AtB|-HѣF4pѣFB*Jf+^0Hα& )) d(8 A;8<#E0 wYcB1JO lL>duwCYӃ0V .:U$$Pj"a^m>!q@.GtZ#T=s_}CqкQ"hC:tDO^X=z0/s#!$&ŤG$6$Պ5ĉ ﲙJj=:N_/Scr[^6!>wՋKc1mMck&O5j_O$Q8N=~<};\3`WlEz=JK_T0m@5DyQ:h2 }nPR{'`}ݻn&g)IZn @']ET=F@gu}Qz.) u:u;SN۩u=NLD~(?*  ʲ8v3Zh㔺-Sayyyxny!5yyu昛9_0Y Rap9^[?/%gZEDQ+$`%e (3/_&"? 1QDA`f( |b&[J@d`Dq9U- Èp qnTX0SлGXK`,XbŞ,Y$e;eW ѪN2+\y8˗.\y#>nkoiW]6B0TA/_HKpI!xwEF d+t~RIm%+'aHl46O HA* a6UPl@(Q 0F)G1%}>8& ZUUZZZZWZZZZ^Z=}4t[j\w*L%%%$#%$M%% k40~5C1fr6mqBb`''\Ǎ[+ ;p?eX6{XL ]D}P@BfK􆤕UT" }o}1|_v}۸̏=\ ee@g;,=3ey5րD Η^A|<~砿t(hh訍Q|Q{ۘBuS\m `E#kw{VW~q?&GWP{K8"r?ڀ]o*ID(K #1VZwc/)0dɀ: A`Do<+ٯ'n,SW"@ ֓_79lo~e$ @wpdU ^Nȟ? tjN!<+)x)Ҝ"Xc FpFYjAN}i90M ưI<Խr(언(x)>k,I @2S3bڣEŝå`7 m ?M*^Cmу v+7?78sQ%X ی qF]jJSS2)3*bT1 |1cqyGaCebzV*~sODN]Bzb T2PI^<ѡ9r8Mׇry;vݷo|6oͼt=ʏ3t,Lw@3()IXUm]9Lޕa?"f@"1s|f߫Äm\ew ` H00p `<`fm~\Fi x23r1t+?Ƨ'{k9E}pwp鴤 :fDJOIBIq @9jmG!~_H8B Lv%7^8J5Z>]jC5{4nm6hIUIIK}_18Tbp''8 +ѩI,FɜF2>BF:Czy1JiOg])oQQѬѣk/qMX;z \E#<꾜ǃ{9}G!}^*̖c22DYDS 4U廪V[aQ_,[HvX3,-w ʳKRN3ZfjZIv--r+md™';<(oy"'<D:Es]n~6nLU't"1FrKf B"b7 ,a<1 .ؘ(ś7!?-v~=; ȪB  HL[-RY>|SOt,@'Lyk.68hq'>}>` a9}[M &ywY *`B0[%j|Y8hp6as2^H #H(g,7wrs0NnDP(-vӵUmhjn5 ksiޗ .< ˱+ZhM1J&JrJqD&A w| l\mm\X%K"DA]rvCH-;pU Ǐ=xǏx{D۝-vnE4;:Ϟffffg^y>{qww~yI/Nu&u ?5f޸}{?3CA ;uaQq^UUVP}whv~plLSAѾ`V%^g+k$$Ѯ)6rgxy%BttLƢ: MwWDAqk0YcPmE$/F.PaX[ }_L!U /hfzuſsf>}4~ĵ世5+,Wt7vvpU 1#v; S"d.* d@{OՊGA+UV!2S a@]/BBBi nKŨHT\1ͮ 54D̀Lt?!2_Pu@A1!T84Bǡ05]''5.W/etnru/O䁜cY0Y^1AY١vSl\OO#JP׀$D H ,jH<$4tޣp.{ qT0aKKVX$@#_2/L>C^Lp*ZVt\B Pl*wLL\Ř_KK@-5RX]HHZ:H бe"Z$B$'BOv1 P秦̓[ۭ?/[CA5AA=A@@Tbe@UZNOkVnm4(Dȑ"DB&R#G=n#V{3'o“I 7@H꣦UVa7:s!C4 Z(PpSj5\9a ± {T? +bƓ,[_ $Z|]wWW0tܟG! X$@)@J# 9BV@.25 o?Gg]. 7y|y*m}%]#]y,޴mپoW+Fe\׷n%+B.BH4:9/o-ʹU=;bρ^Qj +).Xq贆P <=+D o)437C4A (ZP! =F7pr\ u@"4^cBC-BCB sT4444 0%֦7Q~!a#ḥt݌s[SɯkNq+y܆4YNѦ=]sm\k:#m΋Qo74;~m;-+7)J(HJF sm}{/ȡ8 G1,R^uy-FMoj5z6^[v}Ծ* Ҋ(FotC `& q R!-?}~&ut0T 9 @0M~~l{{-22i -`dDdѭ6\ s!žT#IB!j+ iZfB%JQnq."V _M~SlĤڿ=w dxKUuujuf*u6cM4*JԒ5ɪMFvz}Q U!jO>@2ClA~| _iC N|mMTJDd8~J7r/ë +{IzfmKZo qR ULAZ LJd>o B`!ȬQ?Լ-֍CƒiAz7K=jHR6#X)DX9M;=c7q@vsyo%M7fZ*d!j[]ٺ;-tpG #b 0 0fpv!L F[[ X=? Ax2)L!0-Y=w}lK8\4 l_%l0[b6ZVlm)z?Hz.߳'S-Z*:* !>+ .EUQb*mXm*ֵ)TJEdVAm Fuª>p`7 tanXmU|]:G}m}%ƃP޹С`5 T(%#t E*KJc"FC]Vz%u}S{/G \F.C6$1I>,$0ދbsP/BиZ~{ nӤ..#꼒4ܞ3.PWtޱ\\7YQ\\\\h.MD֐tc Χ@aƿXˣu{M|};n{2jJ,Gg\X 'OB;j Aٌf ̙n`jL`ə )6R ԞU-hVkA8c\-탉AG&`9Q-C<{*Q̌3z ɍ@Š']ȍL-R&=vx^,C~jzB6Hc@4=h60ǺdP=.5Ҹ]XD00q(Z´ 8XF6QW_b7c_s8\j} җnhѦ5,R,4T[`T{T$Ed}42Ҭ111110111110 vN=O!R86蕵8~jeC"Ytl3ܽn/fu| 3 MHRԾ  @9]=xW_|X'yjƭ"w(D*B_jZ+/ JIXV Fύl|gzUJ H:T0A|皭IHhY jFΓHjCrrsSQ9l ĬϡyF] BCi1>Yߨ\P6C_/yNˮS,uZIƄ HXC&2Ȇ J 1t]mNm6uP 5^k3=Z֡b JbC3KRV}FyKj)JJA(CR5!h5qRhFFhI'h_Ӵk}$UŠ8@6>d hd&b*Zѿ$7'؁hT>RBo|F70F]nS7)$&CKKK@?_)߷Q4o74#Vp54Pe@e7/<(D1hڊĢŋ-Xgŋ, 5!B_-ĖC~ M0Z?xTxx4roJ^++zyW׷ԾV$b <(kl;uK5kE@BGϟ>}mϬ?*Ȱ;7Pǎ A᮶_d:D w˗Ngn.\v!>Y`fYuNE'>{]0`ı& C0bh(.]8ߣT;x"-#68̦Wtg?^Kz:^*YhvQ׹hW_ / "D|[NpWM8n^Ѣ;h&3L:"o&Uh){bvhX̪B^NT[TjACoiin) HӮM*QQQ([CyC53`I)Jt¹ݥ(ظ8?հp1f`|l຿Lăy- *@I9uO\T? @UANѧVXv?*LJ{ǯ[zm`^(&ʕ४Vk+l^eճJB"ZFnw***':*'ЇL_ېWJ!meF&Fxqrw?EEEEED?EED 4Lt,59@SrDʑ%Kr.Hs%38]V>Li0"7YC F*2>ڂ9"d۟i!1aG!K+hQ*Fހ`" '(1ʄ!28dk@F 0`)JޝFs|ȱtlx)vmaWԕ>|̟>|'=j>+}p 1L*#OU<߻*V.*1t]I QB+ B1(4" pSfސbJ8]X6E +eS,XfBŋoיCcl:Hܶl˒"adab2` A ^N.MI4?cWKOuo͚ o7xuT+9^1t?^AD_%Oꫭ5'\Scul[קW }6lz /j8Ah\sGo`n[9mNC"U<&P{Qv0Z|k& A+qtVjvj2kꘚFjkZ|A[_pKNV݂ŅXVX@B=t|8a S=t$@@ k~E Yt{KqG1|}z V@v^$:D i*ۄ_(.! Ҁa.?rפym pf3SrssrspK786Xc0y4rS`T4|v'pN8p,Q×jNcd_}E _Bw;{8{܃9o!(/y|?Pn㢤,Shz^] @lB 'f@)]2 |qǻ$COac}c_w(` 3MEr"QLD)4H; ,~s( _Vغl,lp6.h @ @ |,^ GAR$Krc!BWAFMc\D"O}mj׹ު.tT  +&@A!?Vɇ47*T 1궁dPdc=<}՟ EjSYYTaycLJT-2 l~᪦r9w;7P^EP;,EӷggCb  Kuy|PЊwyLo_zñ+f*^41v9>\? f.7-S Ƽx4k*0c ?~9wuJ) tt T:~Fy Z F ߎM-oG (u $Ha5G]WK{5ѣZF "41j9^ pN[MtGD.&7mOH 3c}_/8<۔åwjd3U5SϟZ>}uwi3_w+.W^KUЩB*TB HT I=\ٴfܟMF5 h797IX,:ٴz;={^.Rpmڑ:9?6EH \O$H4? BZU22)X[P oB-_qE6\OqN@ Qq%):;rVuN*h{?f+;|;|}}_̀;w;. BE3ET*D5EDUCE7s];I@ !$I  0rVos%>>9/?nǦd]p]_Ng|vX=K~;u;\7>}}mK[_az:=/ߵi}zw NWJ9&&87777777665o7eGGGyuz6|c-S^+}'֞Ϸ7½"sνq]qn͛UWdvZjիVZjիVZjիVZjիT pW@yzFn84~Q5X{y;6|ͽow{\׺(G߅^z!B!-{]׼=]{~oo#7rۃCUᚻJJ{CL4@Si6_5>\DDDDDD<3%4'c +@@@-@Q}$#lgdžbcj"p7xnT/m bC{hbyn2.2.****%eutgommllq,89~Ǒw!T{D>k} x<1>|yo )0)](/F.3 ϡAVh|k@[,jvaNxοhu~Z]dp?M+#8=#m%oy~R~/>S5Դ fXpz˚R<5\vH~yw!7PIAr2\mneQi|_uteÔGOcݱ"*ϔnr†'m]U?7ӝpoi'(T]&MO㥎`̨eJj:{ uMu[>~SUU]c?h-S֚=Š**&&&!5xiwx-SVtxVܤKhϙCޥ'3/ }j?<7ϵ_o="Okz t~o]z@}KMM>`o[qO},vak@jY7)+*ܡhWj߆Bj}!Bq{NgT0'῞?˂>sW#gk5_~ww{~ ~=ٲX͑}>"?,}Xw Vl+B(OXc : Mb+6?7)ٶ&#'])**PAC I1bA9ѫLLޯ\W_RȏpUV bkmj*U]UԶ<yԗfᘛO00=|ĒɩLS>A> Z13c1i-"dfZi#w, *236aB^XY†eGw=?qՈX$lR`KWB)cc& zMi={?L̄c ^?ߥ{;wF4.π(lC?W׻HDIPj nȯ.<A8M<S5%%3c ԔLJSTocI*+L2d&Y!=M v ].EϚ4hѣF^4hѧ>Rr;|U7_y0z( wY1f8tZECG*F馸~y =xiw3 `(K%̑Pɩ k%!KVsRbjl X-#'}n"b.(4o³100@j\`܌~""&kD'dbLyl{t@ #:.ˆ -7[՟|9>?L4h{e5iOpLʼn=@ b-cL9~՟.=Cz@\nY MCYg9] B_ |d&6`rKd 'Z 1wa H٨yaŃ~I~CF-4hѣFTCxpۛM 挵2dɐp~2dω]w<H/VV@lvwn3|gy‱555L#BkG) wx7i)e1g괎*FHja)BCS h}#P9 % 0 CÃ5 .L@ͼ h~^lƇ j i٩f`G AjUaaTu˗.]8Kv˗d< ּ\Ć뭻B[9ǜ%A1~9KCx ;*ĴtHǧP6~ǭ@OFwJ50߿{CŎzypQ #!>CHmMMSx^&;^8C&Y(Q{$>Gk{Up8qS!sӐ> C0VHrv>9`V@ 岙keIkke٫j6֡I\K` Iޢպvւg{Ίj"!>}+tBn]mqyyL !_vmd]qqw0N~HLr T?*@iD {?D{ A~VVVURVVUVVVVVUƦ&LM򂽫#/XhţK,X)mҫ0q q:FG̷TՁ +Qa2|XH3S1P`= V!CMOFz]3Y @Q s"*7 !&&&&U&&&$&&&& T6^d*eM圭StŋCbŢ,X;!iO캙DlVVzb?&5;k|g;>적I$ID"( X`EjkQ(_.ɻK_b x 81[" &ɠ jyg C<PzsFy ƿP#F8ThѣxK\@ef6l; ܐ A 5Nn1ó^I'AB;DRղ]AUT?mTV`a#Yl=kEJy:<tQ҆dC=7%oF B_|(3zsNӠh-4͛6lٳf͛iBΔ2Ր ڋ#tKZ1 (bxeC ᖭOrKtjNE 2 zD E$mG644T,-`?cxYG͉X۲DT.j0ꊀU =kXMgtg>I DqvUAJaKjKQQ3SEE njXtC&gd ,XerŠ q`}cG{SspAHh1Nm췞c7OȾe@aAߜ=٘Gwhh&H0J gkc/<-Ui CC.lpfCZ{kԳ42eTɔ&L2eiJHșR 3V#^Ľ/ɧzv b (PB (P鷖mOOBJ/`:0C]?uy'!w9caSU @w8."i;.$#zlts#_ ف=neh2Ǚe4gsW8¿-$' .ۧt2Yrdso_JD0izd`!chѪ~F4hѲ-{1.]+[6<%+Y; FU#XR]%R%r,Pj"qvNL3)#$zVq jpxb܌kPHM`ZKQڔ}zz&eU I "'B;axF1$1ݜr*NCvcw_h|;V㳖THI#48x)̭I(AxHxҊmDؒ{ZaLtB덌8{M|)) CFhfT;ZΝРʁEEU;zJZm7eT)nfd #24IQ꨿{-CpHIR'Y8tgUJPە!)(9P؏XL!Q LfH 4UErU@U@UH͍ D ЫSDD0f X!"A)fdaMHV-S$&04P7憐 C!LAULaAU h*uPFa %͔r#Hs m3&84fa#@ dd)h"99Q@:I"""97ETy]si{9緮=wzzL cvZ-;EC(180vE)+E0Xz{Z^GxW-oaE={\}Vc[|\-'db$@Ie`3Ǒy dߕNhu H4G1nf伣EI(ԡW5}E{\"|Z)e$YXEjHH[M+pVW-uFa@wғM0Re5 "-ߦ^1>p3!T1VYh3viߌIi(nY;?zEsbʊ\楣Ye!{?Cpٝf0;Q"A4DuZawI6+6OힰDۖtm^X?upRˎZ jUiX'{-衊/׊]h&7/c(jOSEb/&3A Kѝf0;Q""hA]iH$6+6Oz h>WHS)%{ ԪҰG28sCu/dq|SdF5'%(74f3,=e`)O ?]iH$l5VV$l",Rdtm]Av_~ Jk.:÷oܪOqQ19Yu^8&-5'(71EYrMG80qڄ\,U֘x]DDvl5V$lm xI?g0Sӯ59*3,q|RYua^H6-5'%(7+YCd=M \Z-Qj-G:0D:jH?UH+YqXO: KeL4-(- pvNJ/ K)Gm]Xf7׽(㍮KM)˒SDQEkzwTxrfދkTZm"h'Yufq ?jQebFXAZϦۊHg+ZI,֝yhgnUixg8~^Ro{$q#v˒SDQC|wTxrfޛkTZmA5]iH$X:j-6Oz =R:GC9^Ai'p SZuAi"sܪҰrX53_֎ZMs߿m˒s(;CenSzyagM-Be݅h'Yu'qL:j+6Oz=8tLjeLt~֝y>x;=6Vic8~sQו{~w;ó(;9Fc EuLri:/Fiv('>n&N7o"ڰt\i"Lj3qڄ IM/U|ۺ ܆֊\f׽8㏑MWF緺b.K:zha.0rY;n}J^iv:vՊ.uyјRfvGZI~W_1 w.0On*rEiUuV!6-NMNkrA}=y4f1mטttFfDMU?֔ 3VY:"cN.[AT.F{z:mNʟߣ1O vg k`=  ie~s]K`Y̻ M[Ou?5fޭy~kU_M.]!;6Mo6(iTbsTE9m)S\~9+֝y}>[b.Tܺ0 qi5VRZ0 6-\i3VcN)MeXE᭡ꯂ{w. a.HmU֚ ZiTb :QEJRfm7_A?kmjkbvܦo!f^\2},Y2˭Mkr>O0f*!ȼ>/5^O5eokvA92ԿOKO?{:Z޸O7^w$Hs]Yunaj'S(g7ѽj`3:YRg;Q.  јvܨP!OiKf?MlYe>E/ݷ`̵oΖJko\bxԪҰnXQfq -un!g'S(g7z0!)Jk3'u^öG! |."|UYMU3ӹeǣnZrg+ϾO͠pRˎi{}RJ=oEQfq) Lo{1C\ˎSEb+yI1rf0;P""k J=DDoMjF-/_? Jk.:èg/wݳ#.3FBZYBffkKiKY#%{CwFĺ ^nNwYMV]YӸڬJ9_K=~[?Kz}F<\3-ߋ;]̣tvC&0؜Oy1P$@聙t$]bl-`Ip*A QQQ@@bG*邋 % cMLg--=XHZwz8aF\(Mv} +V> \^}OOу`Ntg{zڷr޻ap!j-das8T3q~3hO XBF8Å/sz?#1Ž ®Q @8Rj(x}#>zT0q(VkuiJlWKMҥ^^v4fˠ=F(r$3/7-t^+zܶC(BCэ0xF$B҉2~Ǔl Mg4ASL;7јNP|XV"53]Z]t 'wlW<7yehѣK4iXѦL,.i}emnlPPZh}W é 2333333323zaPK+?W) A eQ Vn) u5vĭ 81gF8b @%z= `^M Z&o7 :`11VqN^""pJtI E4ܐ)B)"{])4(m~}?0` %2e$`רku՝<2dɓ9#/fL2[-z=L||v\Jx84޷k .ND]vVOyTϾϕaTLeg~ٶ0kv`9WI B\>h{&N|^#g?s,cS[G n-6:w&̠~L?y aCپ8u'<p`aP 1y4{FGG9GGFGGW읖Sz{<7 +Npu`"B i.(ĄGzE>|CǏHq}-l^@-:RE#8QX *:,Rh7dߛ\%Ěc?Ʒ)+djR}ὦ6pfb3m,ͦBaC9/>~I#Ϡ.?Bf: ۻ[T[[[Z*[[ZKW 'iR]O @ Va(K͒kn>`K@.PgE>Ҷ\D6?[w#.o@i3IBeV RHb.aF6:EcJ4hѣK֑` hꪕf >ГB^gFFEt7V|3Ǐ=0yǜ,:qMIRA#0I$P(V͐URCp@هoyVEہEØϻQ9jU^Mbq"!a$Np|g)8pÇ8@'*H-Nn݇MщkTrJ$Jh 2d f(ɔFZfOu r$0܈Y* @0rJ4駾HߥFԧqiS˻97i)!ON?.f 0(~O -k|E *(m Tt}@_^xZTUTרZAPd:7ă p#Bp\o'>v a)=*q5==;=<=====;YWm*2Ke_R^a<:ZZZYzZZZYWQ =4 ݗl vөb>޿%j~ZU{}nA_ k %<8n>,(K07z`pq,Bk։ǶR@` zV )q;<33QX y+ǩ`p`]WF4hѰ@9IV)(N@fVlNdq=Co>sgg~~~z}zt ), Bƍ[ y~L&pR E`AL*j kW\^ / ^5Խx%qMV1Ozg;)Xth6HHI$!`D_A%_n ^Dd%DFOK܈}0`bbm84߇)k[kSz!r$̙2I79%52b-j. +Z͔Ρt[͇P6!x7pÇH8p@:j ٿGBc{'Y[jtd}9bɒ~gn$᥼6xO݄.0EɇR|5'%N)8pÌFN+z'A:d:> 8}>Cf͛6nٳf͛$enl>\"H ~o}|>3>zC6ހ P|'  - =4'5G8o~7Wȸ[f+[# 0`& &Z奺)k#} {@qiE< jiXEd}ϒ?kkݿM80#FJBFN֫ϣBOj!Zv^|k9ɽ`ޕH5^/3]iaD0(狼6eeeeeYeOuᙔkf8VJsԷE0Sʉ@.l /8v7` ` 1bݕIo(b|Ut(`,lv?bdVG,p@;($ @Ii3Yi5f W«ԭf 2Drf@nh .S*7qjE@ oHHM\NzeI{Qp`2EA@ x dc[WL%{8/y+fX ʞOOO(O>O^&ctM: ҍkG#HB%#hd+8q]Gi#j;Á J%2+ae|'ሢJI!E3f\U,HdZ R ϳ55?p=7\?U駵M97*t -0(aT֑*?TL4 i"|z8jt=~Qeix9ECτ0Oωons`n*Oi- ADN8\ƃ3nsA+o9ɐD5/JW3z_lxW=O s}臭_uhpRKPӒ8Xt|iXE &F6`+(B;/5¯O/~.ލod9999999999998kd|Lm$Uk"g8PG4Eё6VVjIkșTS`H ;C@z/[T! nRG_E$Б{Ƽ`C9ݦ`s3ԇ΍v ݽ:, k>yDwJ}_;~{Ʒo_'-ۀv 㶢8'‚؇6fdA3(yjOt ^Y-cYtRHxrO& C4D5OJ;\,2wBwz+čv:< d7pʙ\P"!B4C0u-~v0o*,C:>wѾG{[G y~7Uh v 9AZQ=X؅d D`[=NNiDp M+ޢy[Q焉BKӞ羦911"E{AԺ " "+MMY7_RZ*F ѱ>Ŋ2HI%]bBLf`bEWpӿ2LRRݔcLS)k"Ð#.Am?g]q j|w^aXXXYZN TL̂+Zl'3iR|rC7}^>\rߔ>l)VmWu>||0a` Vn(@1Y֐"V1:æE Є|ͦo-ScŨ`C֔B3$$nˈcoˤu/y&%Ժ a!,Rt"+u DbdTb ) U 3zlf޾.jFMZ4hѣJw/0FT4JmG JsMͨ9Mͬ:fvn^Xzto]ELS)r0*KR? #p{Ը`C/ X_:M]fC?E]u8 C~:4@q*3 ) B-#YtgV^wa_SҾRޕz_7 9B=(!H8PďB0toߠoĄmt/DTz7I1Goj0J@JS* @EEEzD* p A$Q1mj>]#Zc;Άvls+ ?Cmrׄ NT Ĥr -`rg-cZ{ 1f,He!rq;Kէ HsJw0F+SZB蒚A  .!y/}ޠZ{eRWWYТ)G' "AsnN߈e B*B.2UJNeg@`Qc#o;ܨR,')NEK n|f{=0S?@]oJ@Q#~8%v0Hpz@@=9 Q N{ _ ^=oWJֶ+4+Hd6FT62?Q7뤍]JyNVf:tӪgM83Be>7p:$4}>AղBj*~'ϟ>|ϜI$bnLG 0E 0YPH]KKA_Ah>g_d1ˍ4RF NHe~^Lg)z3oD|ZlX3,3JC![ `]跣xhHٱCBAmC,}=}b;z:{7\6o6tYӧNV:u6dia00e`w\iɓ*T2du7͗?c%g 5QNQF((>QO:EQrQEܢ(QE.QE)W(.\=7(79EQE˔QEQEnr(nQESEQrQE;.nr7QEQ(wW(.\(QEo(:EQO:EQr&(QF((r(G(QEsr(((w_EQr(nQESE~b~Av6K?i$ @B$ μQEQ(QEQrQHoߧlC'G @$r2"(QEQE(QEQϣ^()W(.\(QEW(/(7(\(r(AxZ~I^ʻO"keq}5 ڈX'S2w^tOpY.FW(?tXՏ#ۭhS W(79EQG7"((.\(n~v;r(; .pn0QEݫ׍8?svwm1;s1cp~QE((Լ[y.pEQ(eKuF#b1sb;L8Q1wuGxM>>|fWg/W|=7/ڔg/η˘(QE;QE.QEQ>oҊ(yx(QE;(((o9Fy\(\(ur(sQEsr(s?-(9{.QESEQ(xܢ(ur((9EQ(=vEQNQE˔QEsr(sQE\EQNQF(r(W(ޜ((wW(79EQG7()ݾ'((;۷(QE|vEQNQE˔QEsr(sQE\G(ThN #)@<})~1s1r1c9c9s11cc.s1bQ<1F7bQ9EQ/?[׊(x('GL1mOg @>?y'x猤3#:(>T)W(79EQG7()\(r((QEQ( QG7+;xQF'}y6t]٧N\E >WLQ;bɴy=ϼ~"㽺$ O?~ w_y< oלG܉]櫒GEꊾ$I󝥹DՀ=&uH0 J;,bZmD$gNO)l2&ګo[qo߃pPO,?a2\ v)af)5IO_\ǝk |TbTEo@"R|Tz?д8 } &(})Vx)XX`.&B5tӬ_ģYJƻ𔧖PH0x(T<V!#IR] HsP) A!Xı. \@FVKP65Y =ef{+?dky~fZ>~Xϟ1!5>8t @3sy6{⧁<O/1<{IH#'䎫XH{0! ba Gi;y_MMoW Oi"TNA$_|Ȑ0$ Hz&i!-(I_<{DwO  "jae:hyKT'8 (PipPPPPPPPP0P0PP0K ?\8F8!XRG7p_L bDu],Ct7y~Snwߏp9iym[1OkOxAU' hcz] G. Rqd3D Ȳ И`i0BU.!)`+jwB/gն$/ }.`5 A"o'F1;L+i-48"tOU QgsF\냻:-07_߂}\S=ACHe{w|G|^y"};?pg}g~?qw×׶3{Oddd$NfPPgvQ3jN|j>97Ye]<./Ga[s/:=JC]MI 555+5-55* `.  y# kT2: t}Z]^nFUO(`GFGF ],#|jwd  WX/D }_oqrU@1R ;,"ip 0 m/"qAr R7QG 2P_a+lgBe (PC=ZTI=JگG;r:V +Y!]~  4:t5A_?}7sZe^tr8 aj@@`Gf&ꪊGEa2ZNLH-.,:PpPPbs " )'[u;0z_<+kcr 36, %tZ1q5[MVن!gB6;zŽe[[#*=b*JuA&e>2>ot]aScTzgF]xYMÃ.-U"t3ta)@70 jrHw  =0`¢i 1 .H[*=jXCL4A.{&Z$2˺Fˎc!q]]0"c p/T8(1@2l8Pv,vhɻf谁7HYgHEyALT&b7iIqǏ-mrN18p1"pÁsW8Li"idHCpE<|Re哤{GwˣM"9waQ}?;#Rxf9@@,@3i;3~N3I&,%'8\aNH̡(~-?CzIV,_m@YYYYSSSSSSO+*yhvuN}KX|g****%"! llj&B 0@ZhkԳ2L  Zr&{,^XS]9⻍7A, KM989WI$lMwH̹QYǷjtGf *nVIfn>$o_Uqʲ:|6$PyUYdp{倻 \^H2F3Iɹ>g@Pem?F5ZE\:(cRL̦iSO-jד &IDK&JNX YCkɥ fSM3N0vk*,}o.!,B.$"ZIR7eLq 0 P٪J`K߭k*䨍v]akіjMsz_ c p(\>jA А6:c 0E,ٱ{|<(`%BzRdO 'h ^n z 3$(9O NǢZ Gs{Yc&6_ Y'F -(7|83c9dV[R]#ѵ6>{<^~ubL/3G{>_#uzQGs9}C2#'#ᓓqqd#''Gx H/ڻ{]#cWفaA^v` r`!7hn,>!#uuTU6w;VVT*)o[[8--8tt-.?Mr)iijlt jjljjjjjkJ]5556ꚚɵZSil?7jiZ9t7px79^!GbBo~5j\˔!h^^B/޽a0l z7p X˪jqn'X1'AAG MJ]^xAGx 7x]]&6ፕ+lﲥ~˔7}|ta%~5_R, h##uK}.̀~`7ai<>HUur@bB`Zl@حFsBjZ=1`kE/&""bbb4bbamdM7_qpxi!E90`ʗF]__٣v{}rWg؎;[[S[SSSSSSKKKKC;5Qs-KUv{IHx cwsTԣԔԔ TԲTZ)J)4P訯C 1& q$a9}6Yڭh21*T&A [V$X% 7:S[e TJ`&)Q) * cJ<K8%(UTUUJ*UT)H t!K))Ye0*c[AemvVȣk5D;O|ZVK/,j ji-}}skת gJe L b# @P &"N N4aCZ Ó+@=.nkWB )C21Cs:8nT\@BF|QxP5B.KmRu9٤6&0HRNp f것i*{u+,ƅ _ڸ+_!(GFG%hGR7\"x$!3o&hV%C? P@ш H[@nXNF=O|*: juHq;Sc˭Ε10էϨ.K{d6~d0AwݼOXwiu0'zJ@ W & y+܃$QID65Þ \W; 4$80ir'A9$ W Ğ"U/ߣ͝u4fCָ>Bx՞8#mnNYcz " vBݤg0@ 8La".h,Z@`/>y)>m=@ @@@&AJQjgXz<%xط)$ 2dɐ2fa>. T&Pd/OLKւc H. *QQ:V6.#t{W[?tn[B[+2~ƮpYWk-Vupln}ws D.UobWeSӻG+E#)_V6]u`o԰wDAї{;߇Mϧ_5YPNP|e R*|*Ӫ ]nYuoe 1r09~sۮbpװ +.bYG&xn'x!}[]~ JStukVsvE~?gےiTuZ]^Ҭj0AabVm7ie+ v/I.]F*=?b޽oS7Ưxk~A"8s 'WnUfvUyIRvÉDh&"lOl ?Iz===/+ɗb5I1'e ĂDHC9$ R" Hg$R"e $$$$$$$) H$BI$3@!$1 $3EĂ@C C 3@!)H$BHA"HbC9$Y $$$R*rH  H$Jo -y` ׭tTD4(AQU x HZP@ e}@3J viIP,vffH4 #!B t&U08Z}$>||Zln_2"6(즨rUZsʝ69NotyZn`#@#aCNE Ћm%','(U4EA BSeT 4 o_1"ȀB%4G޿BLq[SV0`I F K`( MS/ֱ@K,X`,Xbŋ-X ߸? T!.3%% ub" r hvulU****rAu *aܴ7xȽ~X" IKX+s y%$ m۸ U4 ଶgFvP6G>xOyvi$uq8p0l x wpuMfF5fc|+woh9G]9x`YYQt?4O  \{߼ZdG* V9cٝY>`]݉}&+=εt5ZR|}dA>Ky?-86CiN%eV[7kک/'2du"Zvf1/u[c׹y!+/g 8?7f8ߎP(ZIIuuC; lHLQHy0 CZɭh;A$fFh+.䨡|Nh2@lH 8(U4)M]\36DkK|.\tĈ ְ*m$ C/L{+rw^(]┯Rd<5XrX"gfi3Y監:1f )hg 4gd yYbۣɰ5cf筝%0MWs@nBO8O{QH#+QXy * U|R]L4JMLĥMKxf$2 Kb"x3(8F6{iik& uU4ĞU4h^ѣF4hOAЗAbtR8Z=Ή*(ї &p.%iqd\MA!D.o=]ϐRN?T]ޠ\4C7D,A;wh+d77t,/AWL~9Œ {Ƒdz" }jbEn8ffD!(w`5!!bJy%GH'?O'٧dhF3i_6k'*'(N:X /xF4r+ѣj-a.eG|>u SCK*6'Ҁu2/Uk5)嫖mv)$Ҁ# H|`qƓPIP!,c\ߗЖV 2(䒜 z)@r ƟXb J@i]{D)OXŕ}o& [:???>?????????>ͬHwN-^RP0+B49Q"~D "D< &D <Y9 )j2p Sc&@+2m6+p\7j*UU)]V|d! nsBQ,H;8jlM_ЃۜC^Yݦ0ԯ%rmϮܧ3zzKJxQ5ƑqO+4IPB2Lc~pQ\43fW͍TV|a4 „%(T14}uH93ʻݬ+]PAݛP_l^,:mBZ֊c|+|v~3yyx]G|m_|*_K;f $ T m,5E/yZ^RgE(#EU8,^VPI#c]SB42|2Hmh32H̋â%2.-BIP'^I4%d +rdg'ߧq'ϲyjΔVeʛy0K###O/)vݣRaFZpF?e< ܺ[tRF{rA$ BHA25[Q IPh45CDr'蛾(yk#X$P quA{B*ᑷk8Q܁ژ xձ|mf0mԘ39,qpÇtZWGC娥AQ75ӫp8p8pÇm G-E[SCF 㷍0ɡ6$ R!m(!fdY<uZ߻V)*Ve+Wwܬo68\k|oۡ:m"ݠ8'ϞFp_~xG4SQ#LB3" ELy5K9X54=^f:X9 7Ymmmmmm mm7= 8l @,QxzM6Wvžnʵϵ 6JIEᗵo74MQx$$5QA $SSSKuΟJKL |B#zYLo3Cooa;[k3tH:qe hEɳc8dV 4C`oB˕,o^C@@ URbQc@/8AA|.1V07TeVho 勉yl39x{<ۧsss)1z0MQe&c % }]][JC?׭?3B*aH3 $6yrYQMN aވ m7D e=;dN [wA|F@֛kRwD^O rEڸ>GKHTJAP*n)X3G @piCG8h WO}xTr^Au}:]\gяElrBZBm r@_O[cx.`8+OU  0,Nz= .y^_\iY* C6wV+:"Y/pl0~N&K0'?!%txM ,SrC'r%hJ癞W |!{mj$%#eWhbgOxHIt mo ʙ=2ۙZo}"ܫ6́>ڡj͛i6lٳf̐0-*M>cӿC0Wj c&L2d 2eɓ=%{ςڑhF8) P 6Oseh4ahNC,!)`5w8VE#ޡ9~ 'ڪtz#z/oC$/8}- Pp4'@(.IZ-{ţ inR>#cx.2²JС% #s/Bb08#2;s")ʀڂA4Q]Sh3춽 +Õn7z7kGR (%N/ԼN=/}uo¬gqh`U9i/oooooomowv=&(h)@HR TAB&uǗ~c?'yNw3RT Qr$ xfnt.rJŚmN<4hR~S)p͉pѣFF5hηXۮ^ZfkͲ#4&!Ys>c,sS9'" D5ʀk#Gx(sYsF2&fDU~WUs1!ʐ&UÅ]zy, Vo< f gZrSF>ԠLAZ$k;Ii+Ϛ>|l @o3;>]C5$CK;PZBV"OVe4=v]F 'M2 -;j?.mWYWX;}A}VU`sV}s]r\ZU&e4O KZ#H3 ِA|YCv4Tm;` (WPw1^! _2[Mk)UӧV̸N7! {[9RYrq"d}wH T H6`j[J3sp N5LNX ""ڈʗeFAqpk9f33332Zffe*2 ^%KW3sR\rĹr˗.] 4_oZ@Z/vDem]ER&R+`hZyq }z+2k26}؅y)O/b{|b6Q$aA EQwWZURTvW=S`ߜ N.q=,ID0p7.M\!*TP[ I,[^܍44)#!5.sUh^6怪*9C[L" b񅝙R4xoW\Ṻ L(6gNj YvM#v|v[JgDҐ5?ScA~\ DU"}*G w<ףm! ,R)rP3)pfd( „HJ H OYS(e)~WXU|5=  @ @ 9U uv ,"#"/d @m6MtcV+B ]1~jy 6d?u&@aQW$ $#6Mt̾a 8Ku{/,g/_ޝϿ\o;imɛ.mI` J5A5sڡ>Х^U={6=u+z(M?be, J'6cY ɜ񑚷ugbnՖ|Kh5 `X'cܷ>,ۥJz,2fbW9PlD)ukkn]k;֛bcUl5y¤HI!I ;b%&9_||J'A5TȿPDTU51ѯ0^t(Г ta5tOX.?pe|kXkw : ($v]rAT*7׀GL<>_ԶS;S:N̐6x{u=T`awK&T6/jġB݉ 3+V=^)[}[F0f0棸qi4Kvά끳`C"*CU3` ^!l"p *n ),4kcfmcc j&Ѳ7`ZۮFkX#N3Idd2QɈ,dEkĴR%A3AAVƢ0%`J%$l%&DA 4c m1 EF"(L5 E%Ll@$D)HQ hJ4h2$Lh B+)bƦh`$4b LcDRd,4e!&M&f&@&REli6$ 6(lD@`aȱ-2Lm&3I K )0LD&I&F !f(4Q%$b 2Jd2 6"2cHQJ+ѱ)Ah 2S+"ARD,Eb$1`*e$,1EHV6"PeAj,DcVc$ fŊe 6 f$HƄB &&EEb6M(D5ZJDib21mk c!(LZbXH`Lb(LDId6lQF 0Z)#b SBlI`6b @)iƱ,(HbehD`#I"ƋH#bQ""jidI6dѢ$D "*5McFLQl*Jh6#SK6H bH61٠dƠ@Ċ$4lJY *-eD,llabhCE#"1"ŐQh5Q`0X2MA5IhD21 E2BY*,B!4@XQ SBF&BlbMX#IDAIPFfl)D6XE2 b4LJ61-Lh0 4a%_KE3Irqƻ?df5.hѥ˰O =V*:?IU777767v6n7yw<7]Y<:yq8^pOMV}`\n(H Le L[7#_ Ӧ 3){8$Ip6T_FWR:ig0usj %aD&SARF+A@?UR#=VB r(PB @>PE j"7~Tcŗ豠ݙxoTo8]CeEw|nݎa7/.t^V፜D\U.o%ee>~0Uxjnh*0>R$UjumnfbM}:`9>pT_)Gpjfo֛d][l{Ng5֩QQQQQQQE,M@NB LKc)𰰰?gٳf͛6l۩f8%1 :)+P<ٲCIñU-RUv{8iby:n'R33O[1}oΕHM^2&SnZxQ8 !C7ّ1-ie]e㐤ayVԵY2nFgW$)GlS>TLC-&zW80gy3yS.nnfnnnnnWnZ.fS<+x3|2|M q7W #KH8 p@ 8!*C/s*y^ERU[=)frÒ*07aojdcJ߄P&pF9 k򚩓f#|Yǩ>ȟ>yş>3adٍk?|e ۺʈ;DKL+KKKt]^]C10ֽs=fk渀&E@Q(L{=r Z .`c]ۈ3M2^MBD2" #溝{3̅^s9`\y"˥ b0aT&j][w3ށ \v#=Fͪ4h!/L&L3l!D  P@\C8rD`_n;|x)Zb]#dIu+L;rӥ'V [uNSz6Ba_ :PtӬެ:e) Xy*COx3bxy i|st}~_JJ^r T`BxuB)6\Anb6;wk  Yg+q ;(?f==j:e9hXK->;>.9)Bє8!jWmV=]<3Ϳ V 9 3x=Zm-7ѤNҴKZSkXlD.0cH5ѤLI@)&erqJrrrjrrqɂ(Lޮ.F:`8p)Ç;0pɭُNB҈bn I53?EbC 렛+N,@c\qM;A}# cFdҨP5ś-W?O5"JR%%I` 6Z_Uj3333+K33,3I~P 3@!eP~%E[!@`@i7H!%ɮr*Wu?Zy5v3;UJs|"o⊲mD&DH4"D$_Um<>b||z~˯X(((PZ1zio{#HV?<Ϛ/$ ᴢ`%^Y`=Y2IªX֓ ''$E )sv ? ^Tqm Mt{_'SE>黇yt%q  H*;3sas%340wE}_}_tgA]Ѵ|[0`\.o$|̑jT0`>l ;P~B,GCiII2V;+ccZ0IP9(Pgp\qmq6qqLf Ah sEy6SOVSoxWP0} f55T9bk.2-w'vJT>AIH>9ji0NơU\)CلzhWD~}c OUF)4hѣFbRn`.1ch(1M̄,1c++}qP !/0g3rw wXjN3՘LmE\Ox*"G"s?2\5GF^^7^[irsWi_w~߬7~߸?±cגFZ:.zq߹;Z?RoP@xAT,B 8_/W;s9FhiWv#oo]=  }^!o%Wc<0E3|D&[tBI"VPK MUXRSS'ggggggU9_ _z!9Ej Y > d'y(<{5ܥ=F#Rf~/bp};n))@gP%b+/yN꽚n}~γxWWqؚ_WsVcA-a(>A(00d_[ơJb(V+|'ϟ>~`@:M2цQ~}EO6lٷ 6lټѱ ijFTCuljh gt=sfŅXKkK׋Q3;Uũq) 2P̘/H |>},7uv¹fdq,[4Xbх,0l|x~ovo0YMYJdɓ&L3 də8܄'nם2dj(ye4t~tm`c6D4dYqr!xy(ӳ 899ß|}Lx6E#X=Y}؈ \!L̻\&U 3*ʞZRueYϦ4уY\b{//.////.//.DGoK0om8KNY|u82DC44MTUUWFԎA(4D@ E~ p &qu'ex>z1faHBKhy 8'?v9&++++%ŋ+(k-FS7ũytqN@Ḵ^ Ց87|ϟ>~$B (Oؓ\5(k syp5 O.\r՘KMJswN^J(LHjiq=³Th05)mpZǭ 3Rh@N"| f#tߟ/bnwiUDGq)INanO"6y W8HsHϔU+oR_ʚi$)1F[ρ*J N:qhϫ3+udB `ĥ}%%^] )Ϩ_>`V{"iD(`Z(lٶcf͛6n0pc `6-kv5;`</iaG1TA@@7Fx+YP '""5¤3i8ݷ}{L3~Dwy\i<_on[[a*{op~%c92KtIiiތCO~7< '  {z׭ @ZQ<"a.!fvZlM>ϥ`NhNy\@O@!F̛o~}W.~fYv LQ +^˟r0 14dj|0P<{WU/bR,eee6eeed&6@Sg3+5Q[u l}Ż(S+)xfǛCs$; @$Vɀhuw>RրHͳ'f[D ٰ*=f(gݛJ ,c6{{\Az Rů.]9Tc@Y6 ʬh]gmYDDd^u f8q#0 p7pK$!ڐg|PDKcB2AM8h#?*ˉ{T@|g+ % @[lN*f8qH1ȃr8nַҰE~7*+*())))6칀e8csLl)')擣lMHUŻ`j0 NSSSu:iUW"}DO/h,ۂQqBm [\@ ٛv#t+:z@^6>0ƿj)[AV7B4эF-ƹW1(  1dd(ȆBC4yEҝG5IϿ5ޟeN[s7:T;2^p 3<Ns}pEh`ő&b22Lͱ>F6[Y 4`@$n0cI:ΚQ1\o&UB)T$@~8+Iz9%<^ts2dɕU% 2d2u vɰHu]{w guٮKYu>|mρ|;.#G6ta  ᳔C~7.'S0(y,4ӈ@T5T֠>MHrSHh WTN8eT4?'e\}MR^0vlq[NN`Nd1 2dɖ#&LX2eV!zyO_uR>) AmB4?K%.*}>Y$qp=@ȧMR=4F{\j? 392e=('?ٛ'PN?y=r#@h FH=Mzvqvvy;;;:z6^FٱI0DڌN|"${m-. ojd5kRJS)Nb6 "*ED+$D٠[!$D(@6&C7Fd(\= XZK@${$bbai2bbbbbbbVbb@2-ԶX;>6\,<_G357(U$0"#n[0>ډ z jf|$p D>4Sot)i36m\ٳn͛M6n B~ݨ7 UVuo ׿=x{D X.׋wl# $`#[4_`Xt⥷OSrL/ 4ct?M%wwxrD8=!. HGl[b'WILPj/aB3"o鲇aGO5ZUm=UT>???>^%RO`W "D4=$N$GZ3^+Ivi?Z WH관SKUSJQډmg'2Rڪ ݮ}g qAD8߮|{STH6I$I$BI3yH(ȖU7p~›C? 2EmJJj)Nβ*'iR\ q UUEEEE%CCC/$CBY?jPñd a- x!Qm)'Y(픱N/gDDߤbϛ~="pȽJ)GΫd) Գ`󟟘,[4XbŋFBӳ3T[x =A )hwG UwWVvt4|ն=mʨr RPJ% m'|U:B PLR`AA)然5}5lmJ4'ׂH~L?1'/31bҌ}0a!L=-K}Tu3\I>;6 zf7Nﻊ}R'̨~* L VZCoa' 8C> ; =*ia_40~ FlĖl@Th~ooffB(Rfri憅yק뿼h ,g`vMZ²P; I)pa•뷕T;憇?Oo="O>eys=l?JHDwws#'o?օY>ߗ{[,SdSlw|]%ewexHG+rrX$C` DekM*[Qu hD &AİBC|է ~_-[#eeSeeeeeeeeC wIU dD!{X- klO:M 蓆llY,o3;pv},AF.ZD9<%L ow{SMKY֥ S 1>4nVXNGj}/Ϸ.ι>^Zߓn=r.rn1n|l /y뗧U%6z.4 ~ j)D1 >>i5ԒBLQJĿb@FKҒ z8Uh(FS~nQ˜Dh] (9+J~f>KRh7\JM.&V]z|"'=g޽ݫ۾.|hW}W^+U FJ#$ h6Zdg! JM~u`L(m ¹ZaF5jebHd!ZumM*iRRS߅Ư5kpפr-)@f + 9l1`sЃF{5}WW䷋ ͊R$%GPĎ$0e%\10 b@t12=(/koeʿ^xჟr2̇ș[cM4r!&F\!X$K.fR@]-Z+B>1(0`#z:Nb8p JE`WáI|} _2c~h]I$@.dbLB׍#8hk2Ҧ4.(DJ]-Z9j6P*$O :o_k.zW_)D~Qz.-RoD`]$\r_z?' X a@0IF@/CquY<JFfoMO:F3{7w%ZVVLm BE%f:Հe': #@]eUbY8_ҼA]k_k6t [,ubZfz<"{>KRc^@oUyh87yzrr U9XR*Xy|}k/޾v]}1!@C0P0L[!(H D V</_|sw{|]kz{1{=_w\|}MdvKFۻJ4Æ:9 %&\fVH]XBԡ G /RB;%t4Ǝr-) IX!@ĭJHIįvp[+O*{j81*G_x9O^_!༼|Q|:q~^Ư_~}o<{ޗ-g@ffTqiP5( /FACtƃ\ozSr%-qX1.%`;$%hh`ZP)^X@NusU$R9jTFwEsj|-s=hZthZp9iX.V@)>0cXJli&.R2o^Y <$V'ILq Z7Jպo9mt{˯&ZC'27K6twf!!cH|gֿ[')%VbE FV(BtttYHt[)h`JAK/_CdgW^x/_E믉W=yWMgu!ktm6)czrīvZBJJܻ6{|ޖs\jD3lYF4ag)bs1נ[NB S( c1ٙVȓU9@Ⱥ 1 f)f ;% 6xt DӇR(q]u*V[g2o`SwFT!b帆ԗGluGi7;~mz߷>oDsa6B "&A!"DJ ܊$ '/Km>l剎mp B[u=.M7\h/\,OLa6 aj~FQ96(/œxX&[@f#&S ?&Cg⠠i9rp@ß$ԅ)*Q N)tPU6%G!f=Xԗբjdu h()JA|I_V;UwH=t:TP0Ap)Y(Mq mUT* i=Rs[$U#o4`VI X*R!@uQ s8SL d(ˈV%A@(EE M*dc:Lh*FAN$YPhkcc2+@Y x4zӢy>12+ӯ21uQ0$2ԦcE+:ьR= ` +ti g͸YPqBgřK sO)%" vec1tT- YM V#= 0 ^%Ek[0qpZF.Tn ]l7wkZ=Asa4jt *Sd5GAv4gIPQ]CZ砮/E'ea˜R&/JgJg| `!vF~ Ů1'MgWk[)D"F8SBDhZfSdeS'9D&()$¸Sx5h'J%$_{ E*R|^&kS @K앍O\sO(oqײ'^m> _l  [AegC?fOѨJrI‡=u}{i:NQ@6*sͣ@TI51Zjգ$뚿>D 1l b T}{߭aZVjjNsݢѢrJT%OM.NN3:qP;..{A4Q9^~{fC%bdun|QդI~|Nj;'dA` U (S4$4n{6M57CRhRviRCJ|0+ r;줎F1v$L[X3 fPɘs&L^z\fw6:I3" i.\Sߙc B !aqX R[ry.vo0/@5?O174xV6${c-uS;aAP0jr~ΧDľ+—=Uoh(⿉«pYmĴ j^^EoαipAK0eW; 8@N w@,ldZNvzf)u!Rl,AQv@~ǡ?|w{` @Z8bŋ,Xib̡Uyi7@,Xg 9{n4rVA5lC RJ/9ǫ-lTį 7?xI b!~w= jQBxٴ{& > ?>?`rw۶"O P@~Ob^ʍ5[%)YK(_LH]/EQks1 c!D[\zXovvGgygNY:uӧN:@m,gX3y;|8,piÐ 8Xvx&N΢p=P=j>7^sSqSoŰQ/>/ 탇FC4$6eOP{i j@ 9?ʝv4薦\@RrŎ4'PޖͨW#a) Hr:)[ q3J`@9  !m~֭PhM?OUZ "fferf>ffffffffg[N=sLghEjBp (`B +Lt^'7$IL0#H4T0:77O=cs<|G @6< xC?Bp6#(8nFj80ţWp?~M;u4? (XСB (P@me⽙x#TM[i DK+*|ϞosE%95$__Ym^$i1xeǐ_O=;%kE3gSlvkYt]$1-PyB (PSvwB ݂!)>V^ܦ!M*Zc8 &ERh+]xN@@!6tdDE;**TvP<|bۿ=KxIfw>\Io7=M )*t/7S:T?m[OH8 `~r!|oS-++/<:26,>?5<=:u_|$=C$88 p卝/I" Å4" 1kh;5 x./cƳEkhtZ&tVzfSyl :wvwvwwwww?wv]Gvm~C@5A;zH >rw% ?T8 .+޸}|At8;߸tzJ׹0413 0`#9]"K6իx7b)z6Pppe*oyDp8pÇ"8pE6ofU@!yM3,e!$d~{/ AL|UoA]$BAO6x-5ˏF#O/&ޙ!@I" ;N_M-YaMg&pLJC'|yHZ)>u֟LB@ 7a40F2ԓYD-.~^{̩XI#JP'+Сc-J1GڭՠZ5%D~*zzD[w9 ӏNy<==<&l@܂djt<OB}ÞQ6Qu]aAE?jrL65S0Ӹ! ~g2u[Wxl7C>y..,BΙjT'x ,ʝBsc]VP4_lf>m l[U ~^JתDitjzuzzzwxzzzvJmX*>&kE DjX(g%>w޶`y˝4  : 5IdcB ̏CD*l:Db~ev7wW_V}C_4GDfFd~PAw8^?\U<%|Z@>1O'ݟIcGqa0nӝ}k>ܼ,t':f߅p!2IkF{deGq@CK]ŝ7lO*/ 9l_ȸSQ/ Hx#CqP?㰫4s7}[@F͐+G u6{^A0x8Fϟp>}Ag?~hٹf'8X'<.īXnƒZn`ϒS^G giQLQ% -"1fq2 lrP_?l]|4QeϞ^|7MG|꾦M^aB}x7 ئuSلSqNVo[_]_cuUڲ{M/110111111v}C EΠOJIIɰɾ@z{ x!9,@7b2l~?@#@ȼ' /:&P+I0Fjv+vr/̾ <}x2gx7~))(0Dm-59=E*@c}udH %O,IɼIɼIo#;QL޺ }xm(TNC+*J۶pjU\x2i7 uѱx7{@$:~@qFxܸ c!Gx_ۓ:.jZ*:ZV]~Vj+4{:m*1.m`knXI6%lxyߛEw)&'x=@hZzd_{ojX|gi PVFH> mJ؅;\F_)ian掌:99 :8Z::,*gjsH"HD%DH"9tpz1gϹo]6(b!5Rwxpv~}B3# ruTОSA'_.kvш#ܟyÃm|7lUnEȨX= Rq `h k\rKƗY.\yu1;nXrPTĈnD7Ro(I6<,:(f~RiO6V >%>rP[ : Ӗ5 ^=^:$ƣDP! BI鵩!RޯԴ)qڽm ѧ3!?4LmeP "" md 7J&c L .g?~k (>UA 7ESH\EKD蠿f/à)t] Pb;9ZpFASV$$Nkt;in /^ Nj * ! rtP>Д ^WB,m\QB s2|OO󳸏no_r Sbi~s#%vcÉ:@5!E~S# DWq+>g! KJSI[VHB0!H5{\9 !9R)LrO qځ<$TI0bšwȟ kj,[Xkj֍mZ6ō`Ѫ2[E4X1F6fj+QMb,mEڒX lcXڠMZ]bE$j6jnUS] )P*"2%QTQkm͵dMQUmFյFnZknZѵmcVڋQڱZ+EFklX\ڵQV-EU-^Zjsk0dMd֘ϓ}{Uǒ=\B,VEvr86{o s{QQ*Ю{4,f;hhH>8A@ y/`y]5s>;哪ZæϦmnyڑ轝Ywg u'amFS3*cs dU9wau<:;|>ƠI{Huo^ݎv=y2`^úf{^{;˺ճ{؜Eggq;)ݚcliaų=oK 6"2]׏@(t$t6wq uwvNSaL60fٝ;w6` P9G;zPa$no=ӓwF歺B!!J Av.kQkfϖ ߻ӶU|܁"*>AH+,P"#A*zQQATWG_Y0\ezf G}My7kQ&4'Ȧ<}t~-IzaJVJOz,1d2c2AJBRtc?V=H5宪*&v6&CÛª*,pi UQ€I":_՞HNH/\=wXo?fq6$zgdJĩ$9"HeBIe(D$#S,q1դ@&HZlsDňHMTN9Xj"+TdX"YH8\J5"2QĩR, 8C "k2dK R ( .[Hvڛh:^nnd&܆M4p&E܁OQN ._G3;>͖8g3qvvp{/Koo/K //K/o C"'4A(f, T)HY2`~:6& s$H*Q "DX6:|+lv93lZbeea: &d҅r$j!a.6:%E?w_sLu_*'][O-t`uꊪGȴ*U.TUQnEP b(JIEUUd UUUUVqTUUEUdUEETUUQUUTAQUT>?Ӿ&>Wܲ+vZZlƖFڞwGq߃~٭Va-W:j]vCUcٌ|]۶@={﮻[z}a0XC>l xw;~ z|}Y?Nӆ_v{:KZXju=gXegN{֌O`o,yv_:aEG:CAҷI<<"i՝$ Ӷ)t?_'.'3nطɵ|F9L\{-fiz=^F&?멢e񦯭9 ۋOu>Z=hPb랒`lߗOq߯M4 ~N~l G0:$VqѨqPbkȖ[;*_ꚩԫx/3Waٮg[1 Z5GvSNlS1O;DxvLKq\ 9%{[n4sbhlF8g| 3)h𛩩&h}\5Tjoބ4}~ߔF?nI|7ojGfs?uN௸߶CvQ~Zow͍}R`zmn,…ޝg!|EܚD8=7+cߧ]c,D]x :rgE馼Rps,r ;;L]I!k{ޯ[goqx jOZ˃sǮ{c๶-ܿvqL=x{O"O]M=^߆a7Rbx WfWNלXO٢;{O9ζ]?!6o5jοڴi.ZKxǂסRn~xEp|\m|߷ҕAկ}UM=U=wCuMOkݲWoS5XdZNm,nFE3>W_+elZvrnLsԧ,p}X{ŁfZb/6OVҨlG,o,3|g)MMge|,lQv^YF^-zi>~I/Gd:+wgU޼eRbt\o7L{۠=]Oе{a}}-orc|U_];Viqq}>wgCj(~:[m6VѢWac*?3s{Oyg[sTpNx}o 2d:'U9_)OXx9lvݘ8-k:;̚t*q[;_+ҖKY2amǭ<*'/]aߡ'v0~n'طkoH^gۉHYutpFMɶ|cz˵7+;WVy`|[x2 )+,ݜr]YF 6_]+=yI{Jݪjn}Kxzhߕw>V-~j0vݝǺS;/s=iZR<>xA!Qq`,QEQEP G,,,,kZֵ,,,$I$I$I$KE 0  $YeJR,,#0൭ab!N(9b80ae8Ie~y{pA|-)JRJRbU%As^^(?|T= \(TQ #*(AF E @H x #Ñ"S )$)DPH yQA*AH ("PUJƟȠ%)m% X*W!E[-A@6$D@l V *b R"VbH6@G6K  Ȫ` -aJƑEAAP**B  (HP)  BS$  (EI$$ l$Q$Ui@@I V)X+"4"H,(X`Q$izb%cHR(:gn(]V#!B"`#FH2 -2$ h@0@Z`@ߡ [h&BAJQ )T ZILB2II @!)@$$d 7VZ@[@@.dT+)i) JE) @aHBX)L)IHI[- M$!SB%%$S) CHhd!@SL (@ BJi)) 4$H$)CL9m  H*U @iDU*I$?E( Cup%Me( " 1+$(GQG <}k??1&O.Epkƈ h`u(y[~~⪼y,PA @ jI?$$45ׇ鮛M BO"@ Ub* %(kC]J]uUQ DVGK3e[Dqɗ;&vvJŏ&r*A^"Wݦs\kt$$7! 릚:i3$$O%ПUBF #Rյl RZLk!!B-r$ xtٲ밆tfMMv^릛!! &3]鮚g뮺]5vBC*BqES$!)>(QF2*]dTQ*`\ Y .䨅H\ XPk﹫\Nӛ&>. B bTqT#S*PC"eRARS-(45$C@EB2 (g#,02(hPB(Pirض.VrŚ,XeMc̄ !iS5LkuNcָ1)R*k ŹZZֹkbƹmkXx ! KZ;vkk"d1 C Bκmٷ^@$ 6ٮ6c% kյH5)k jV1H bZ1+T Q-AjVձBݭ .A,C} 9>,yV2W\Y˱bEyPdZZZЬ+R^<˕0 \ZʒI,[rlm&͠rAZ\VJZTHrjTVZAfLBʵt#V\Qr%BuW:(躵fV*G%jdVTlk'.^Ml6re˥N:(ԧRK)իjZ֭ZjՋV+׳b+ױbzׯ_/.Ռ+رbŋdرj͛6lڵj՛Vrگb͚,W˱c*z2رbŌ-WfիVrkdTVjj֭VZֲ,dʳb,e)ȫjv]2͋+2@Z+j̘ !QE  5W@AQI:ZED?l@b\ E^@*hEE A DU # B:j#DCPPT"ASϲBץ,-JVQlYh`Ř2\:ML+&L[4L+&LJLl]4/CJɒ Ly1kvi3cB7%\005ɔC!+[LUbc9{+IgƘ082kWeC8]V DҮ:g91fV .f`s.f\)M1 15ɩ93fLKYc& 0fkYM1zwhhfmM4c#f dJٌsM&f 44C cC&L35Θޅ١L^LYι.\%ɃdɌ3/L/8Uc&Jb`f+L2^1nL`ih`f3g92^L6]3h`C%fy1d2`hi 3^qkzfx1x4 g\42d*qphYC&a2L96d4&ֆ /K1dxpdi顬9+% 0fg53435WLLc1zJ/LfhcV&ayrcޓC@*`Y332^sWc7U9,fLC9ɜfM32g\/&lrd1nކܷ]sֆL7%ɓJ4:dɌf44c0`33L3311Mh:4hc/3%K,LUlijj`Y޺齜2f`gd30HwP PshDIA8u~0 K(ڊBDH@p;ˇr<}??. 56H;%Qvq^0PNfA$xl],+֒5+^^}>~Њ%&vvaz(3 si$Ҧp@`5^C.i?ضjbÍKhi 69 0nbD3)Y~(+% eI&d׮,ȩ[&Ad 2Xv**mP^Orx.PUED"Ѻ"3J(HԪ"nH*TaD9bVʾZ.13zyxy;#2Y*<̦i%b\\2bR/ 8]79{yiwq,<,#ءթ*V'׻±yz=,_1G@4,,Vy :yeZ͚˄v?O伿w^,>M {WOGd~~~ttt#a9b<7Zs{ڷ~_m/x(6v-p,y<OfL=< =?O񶽋^k{#wÕ#;1\4zIm>2&C7Q)emUίfvIaԫKoVνlYmbZm]W*s\TW9s9s9s**9s9sۖmٰ[UbSaڴҤQ(i 0 0 0 0ªUUUl*l`zA@1s 2033Di@@"""""""""""""""""""""""""""""""#9v˗.\r˗.\r˗.\r[vlm}իVيD1RJ*T*TRJ*TRR*""*@aM12 23@/ bLa2L,3L<4@ ƐO(fQ)05M` pUUUUUUTDDDDDDDDDDDDDDDtwn\nݭ6Ub((VZjիVZjիVZj"m aUm*ܷkn͆ڭZjիVZjթ}mZtQ 0BDDDDDDDJիVZjիVDUVڭՎ5TDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU&^UUUW*""""""""""""""^""""""$Ih1Q&&2&2"#興9s9s9s9s9s9s*""""""""""""""""#9s9s889Qqqqqq8DDDDDDDDDDDDDG9s9tqݻrvZ۳f͛,X++ _g5޽wYb=q u e'˂*(W~:!hPN;>(F]CT4G5IJwHF8)AE ;v7փG<~C"1f " AtjTTHl4+ )DhP%PWu`cΊD:(@ߓs @3QHDERn  qA;/_#m D`EcH*#> _W'.0Y!L) M!I5T)JPAAE )bQr lIZ"%APʈQZsiAA" B`"1,"1" P D  |mEXKgy>>m UJ cA4Nʨ96BPWaEPsPOřuiE|4{.3=g DD*$PRD\(( ⡸ҪP[T *!j/hEkVH}b)TT@dVD (K bҕBBc{* nx+]^h[j\/oKм/K.[ n[ S.x@)L%@Ƣ*%h"!uEZPTUWi!] FoT1@<$wH(** iVl1 +MJ;XTgP$5(HHH('*rjz "AEMD]E5$VbC}- >Gz7=TT$I$I$**UUUUb*"*("Y "0IdI@"!3"$"͊=cm X<-(3e2 ŵVhZ[i}Ya|\\/s%`乹n.m/յ- Bѵm KoKRYacf͔KKK[Kۮ İ/m6XIJ@$Ias CqAI$@H$%\Z[maeaaqb_IxTD ޾1@ 3 BRpޗ^z^z\\]r\sr+rܷܶ3AH 唄"Xd!Ĩ(PPm,.̅(-M)ZY1c2u~vREgH*赚yVk|ٵn۳3ɸ*MU)FOHȊQhMZQ+.` Sen?jPdΎ`f2C F-2N*jI|?*>S4>։AT Rs1=3*I/ )"5 æ IJV\/1v Ɗ,=LA;Z)U0eI= œCQO"}jO{Ir[RO|q0 '`8%v>WLIUb( w?y^fT%QRĦ -(񒐸Y).>'ؠ8(1(T)§టS0T'c2ChN@d>}:lbRJ 뵪)WSO-KҠyP- C0LX!eBzO c#!N4SPRZJ)C!@sŅ +Vs,,=PYPfR'~!݅AR=pe_T7tumBv8ߗYN3?wb!x%O.XeJl\TZ!aRƂRz[U2\,=?T)l(jn"JuQcMK*RJGZ"[PT+>a0X\?ڥXKY䘘(]YRȲrƠ)XX]I+5nEYm,#۞4-\|muwR4Eu */iPĪh %#D 'ZK(%5p\-pmfC1!^8a,J_m,,O?1eU$vr 쒯DEh,,UܕK ZVo((O!f T.ZNQ'LS.%{{nT*"mW@,1JIAQ/ te16 ;k%BB;K Pl V" 5Ű2p~[+*m{/av`3r\qe0<82@@TlD֭r)`-e(5!`V @)Y/`lU դ b,$ s, t(D{C;d|t]ᆔE NflPХDR%+:LW,\+$$TRJHN;HH &x8 .hI'EKq&|+81lys.t)zEΈz^zޗ%i`إcb `7ޖ١Qc isqsrܥ^6Xh7x^xkimjjjڗ޷4˖F$-tP֡z% z fungm=og8lHYU^n H % " " VRN<Ǿ? \)UKU QnnM=3d]liѵ-p\Z6Z-h6zݟ|U<~ tH@"Xl֡$nY97ce_8ẍ́3^8y=Ny۹U[BmDhpi]Tސ]֝Sͨg;w }(44|-]ijNЋ)n/r/ӱ5igFٺEb0@Wq3Z* cQE@4DV"Eg0HCHYA V -DOF"^2^|˾7^/zwS~|ٸ6{'|N.䰄AHe~H, ``(U XՋa^V̪T@a WqY ", +2eb[ݏ" . uGppҗp uGӊ\R⏩n>/1rлCB]h#9ϒ}7)_mEO\}CIrI}@y9t%w\3.fob:Ny6>-t43N.{q]ayE_u>~xh&onۣ}_gfe~ccMٛMқ^n{[dɓ&LyLrg+)ʻb&ry6N'ꢔX P%J,n<8N'k1.[gڰf%hZ}֋y]w1~"37^ i/FŮ*jVVPa<C({P Xr߰SeA1rЈNo?o6"{2˲>XEn<<$ 2_DΊ ;(H+"H + K,ݱOd<`'qEqTZyig UA)9 ]̊)ַJei﷈<1Kpfa b_ ,uQm Rۂb*s'-@A,$,UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUƛ*ɱ":k"(b@Wn.Uc}?g'eרPM@FH E ",( " r3=g\BL1uc= vOא>a34 lNt'|ȹܿ9ERe#..LԖEB9d\<zG#lYAz V]=@^Qjj5kd'x/}G=w<7=#^/,}D^<| ><y|K^z_"=} >}Hmjزe=n/bp"怸] /þ0 Llwf[^mթjӧJ:zt'ς .GGC?;7733/+''8ᅪ6drb~cϧϯ}.Ga|Rd7m;Mel5 n[ZNO[]&E4{=t2_|31=WMdwupt/]anWo_o_0hUb)4@ DDq" 1#iSn.}g] ~ɱso ~߯蘘}K~JI%I$*Dxԉ#$D@^Wq&)1WVH|YUG$EJeyR5N?~NH9T~C!Y>phh3$[p^%ɸGP}d $ ҝ4'Y}vYAu{.͕R@y/~rk7pȈ̈@ /O^jyھvL3~dsLjq(H :+n/Q~M#I۾`'7GhGz>O>zC:$rd}J4`}˶;dv]zϸ/NBz,{4m^6D!-DJ̄2Nz:6.77:IMr{XZ 'p7z^/R0ph#/SvRZRb~jZZNJn.fZzvznnbi$uM¢?'_&yUŊ 90|A.\Jo<\ӁTSMX S1@AiAu;3mqx/޼f4)SIu幈!UA2"DKu:*(DHeʪٕ z\ LC:(YYtcz-3u9;޹'ϿzVdI}J'%{el ov﹡IA߯;Yeo&ץ.]}Qm:,rծZ=D[[,FmhoVT%cdS1ƣӹh]>y_D;a"&G%X~_4 )/dMF S $;qg3}RsRV(ja$O2!}0! /#[= `wd2Y 54 PXn { rKXm ;c-sO uB ?sI Y20Hxg#RZm =]o1|Iy=! 3%/HȱC__r⌙dKx9q+~T!=rHd0MnbXS*/-9P!TUC$@<zyܝbQlh g;yoL*ǁ/X (BBduK.=KSR(6)IZMĸ^}޼k{D[SG{͏=fk)|eّl_u6ŭBq-m@ZRΏ*BQTEF#)Sҡ/Ȧ4FsR޶ ߂ b~h|(zE7 2$qPz|L U| OGx>p8y&ZR۝ov=ev=n[+K+.i ^UZj)>K##111mht zR9f9KMeSoQQɵ0fr&g8\E&?:9޽3~5].b\> *"|oe?缮YA~G%sCՋX2p +C` Bj7"opEf:弍$"+%1(/Dl(.B  `n*uSwTA: ?/ͫ \+=Laᦍ:H QamTRDX *!d. )1zV![.mjhmC1K@Q`Q(SJpPb("FER"I#>ף< `5}|KCz:RR34u%r5!lNO1>( CD' 0l tU{'?9k \aB~V5/Ėnrcr<-h Վw ;E7f_ )~ƨE[wm$c~_/im=e\y^c'8/b䗸QJm*R..iطHn *n,9~2ixdrZCbc!ur}RW}x||Q K]M(0B0:67kn?tz=?9Vo7|W*#r8~47,BiN/\uG}ߨwm6{:M_%Ik5zVSiA:қ?g͐1.i.9ۼ5 & * :pNW ub8Dx*Q8NwfCm\\pV*ǧ$˻g|OJö6D@!yRzD@g̽Gndy{ Lwa39d*<m3M6 %|^Q͒ =_cho]z>el[OiݯmE_%x4p(~ ܷ'/7?ÇåzM/KOO1zZ}j|OcKOO%r}r&Lw6D,.d]_s~{.}Gw(V]h4TXgxc@~tO}V bcIܲbjyUў~}}}M?[yc3޹}߷P QOͯ_YԯZ`.`̇Gj:VOrno׭9g3k3岹lnV) ,*"!=̝ O?g|Tc%Y|n0G=5F~bWVVPT@u E@QP ETg"T@( E$"۞ouƑܝ_EEC/MW aת-lz.ŭ->Qr"eS ҉U,ٳf*𰺼~1r}ljw0ܨتݯ ԅ4D;z)Mm+x|-$t`BJ&T"n9aonbGNn"1j TfSyiZE=3a,L3;ڲTR@zY@TcR[K?Rmለ!U2(1x^/6"A{˼oxՊ;>?=1MEm}^#AcL;7\z5۹G6`_~0?[Y˺=Nϒ's}M OCoi4?JΞt^:ď\7y iq.>K<Mk?[yʺڼWYOn o_Q}{#vwO=}={{{{{{r~v_{mo}\SyWyQ{{W{{{{{{{{{{{{{{{{f*շmm?"mgw_7 .?}$i&K,*h_Iut( e" `DDcV}Zŷ=zgʠʠct`@*S˱DDWڥZ,j9jfffy4_B7F<<>ϼ>>}}}2rL   ((((((((((((((((((((FKDr˗jRJX*TRJ*TRJ*TRLMF3籟=c<y1c1c1cy11c1c1c1c1c1c1c1c屌c1c1c1c1c1c1c1c1c1c1 s9s9s8AUUU@= i.\r˷.ԹrK.\rԗ.\r˗.\0 0 0 0 м8v!zzyy^yyyaaaau 0 н 0 0 0 > /AAAAAAJ6<".<33337[uk["LZ 7eqяa\r zdiȈ( H$yDlWϓ!/!H E_G|B?# ItOJD]@2r 01$wH@ T+ yI{+ֱDTooD la0&V}/o()n_iUZVT#m1uDgP},1Sdi 9; o_BFef-mV1\Gb/z^mAWk%Z~+m ";*\4*" z) QAuX  J¡l ~ G} dSsY?woaP{n$|dhq&^RuTis$hơFYxuloRYW6tz~wd2VegGDi 5yցA=„3^{|svi9jH~ +n6V1=fTCLaY+_ýRw4# z %,EGM2B:ͻM+!aD_?|O#z}o{?vMYIKY2Yfה(\w9[f?ʹ}q(G}8͸eo὇ zVt|{dyV;xߔ/Zks"u[M ycsnjfV.FG\nۭdVdgY`L*}FoAtVUH4Z(:=^COͳf* -txL/Q8\y.V:װ#z$'၁^]9~|pl_ok๣?G;eѫޫAyG >c/uɢ?3?ۘ kzʖօã!vjxd@k53[566*k/r`Ng䳺 CzZl08b 0P Uޙ.w59cVXO^_EJl4=`"l7Qbq'sVϏYz22:uGTec)Fs?r{/StY + og;槑cz@Q [[P;+j pXZ^EE *lĺtRJI5c0LwDﰷ8,z~Yk%UF!z.n.-@QQooLKRҨ$䛄V1e%JX*X=icǏq3ZN#!A-Y냃B#qF8zVGݶ[:0(@skA@ J4,gx^EB)JJ;C%|)†_]_`{/OYY kB']lr)ppZ3ٷ".?KCW{}tLWӬ9mkg Oc9``;U>o{:;<^eŐꩩpz9e3aaKav*8g.77XLƒE?%ڵ2E2I0ߣ:[mԪU@( $,|8Qt% ׯ696cgl{9(tFS }~lghX4UƋ:ʫfuz1f+M!VKu7z4:ukk솱k?PU7ov Xj"ZZY2JuEX%9s}AAzVAx{yüP_@ ""㫸6!Ss`(۞dbAtAt3ݲt* tJ(ոEpm̐pT@"w[lKV"qцA$笧4);31 QM-fG^=%+iRg@P_vOk0q>^^]^^^^]Pt4U̎#g!$?ӾmfڻZGO޷JOp_S;YOE@ "[ %}*)<3B*Y(FX.5 )ݨjV ldB4N=斴\ũt"ZVWfW1[%8f;}v޺ӯFN:tCR}6 "!h" #c:ܯ@a".䴷HX5?RSzc\o/Y~eo&mufMSQ)1Y.&ǟwǷAhE!sW7/fk^7t~(uy&Q1p΍ӽ5i|?[#p('ݞ)vVVJf Bf H9\PЏ.p𰯗#iz}\&kA}3RlE|x&L2J`va!9,Anʝ%_nk&aުY--),0B@* E_z]B e#=9<tkQQp/K.G gm\w-z% %D֐- 5JJCׁeT-6>Ӈ3KEƇ7pyJRS;fʐvFbc(ف@:u^b=ᐦ%SG+7*M)IPuG- &*lD` 5ր> 4hѣFM;2Nqw'K=zQz85.pq>JΉ9MN3̢܆PQMD ATB'%驋ƤBF;Op3z4K 0 MդaU:*,4~_ggkG!Gg?l)aa7~c ^SѷO l'm֖9n{YQAw,G(h>o|ZӸ>7(ψSOǖ7b>˜G8000˜G 8SaC a a (`aCS L000p0†`bp0L'S ;}Msf% m6M\rErr+\"G#r+\3r 9 9g rr+G!G" W!9"  $‡Q0uK|_ Ę@@T@oqߔ߅}p:|ݩ&../F$}Pyd"O'2 =WrL0 B$dI Y!*ĺOgimZ*tq nX aC`dtM B,I}ԆwOdKvN^áHˮYǘXr "W6u7sKBtlg 0;ڴPnot_77Q:s>z=O3E0<7+TS.EyC![' HaζLўͷ 0U OLS20]xFh?CGcO܆\\\<>\$`Kt~w ?~jh0_矫D=Q aV%0(1fB@όSԤ/P&ءQ~:s;2-g20ԶNل"[;sjFZ%n+$j (y]mgea d `RnHNS>u>DdI!E @IdURDdQ;NJJIJJK$ a 2v C1M&=fAYd)Úz8ׇ#7dDq hNPJMXeL&<Lw[0/e3tpCNu fhfRyXw6V>oρVq j?ٝNγ5*=9 fw<_ jۺq7SM~L&ZLlZjtT;?CVs6/ PyMweYoL @aIe]GG88eM0[Ic!CLe-H[-<CmC>E9t/Hꖓe,B)(Tиā1tQҏe|O,e_#[FNUA|&>7":n#r{6 D@G]B/4@e5|uu5Q@fo=ܸ_@Ow3JV}V1f>N~5F[J<&s:ksI1K>zh3Co9ݎde` F<qfgڭa=a8/#FOH/q9U{?f?f]O`.VȖJ.:XC` i6z_l9h0D@?ù {/ɓwNe \V_2Jh콆0Lk@Hv 2KӺQqNFs hub̑4)9Pqe]5- JVWWF{=^sUowSlۇ6jo{ݭ*ZZԿ̰ygc˅{|KՕ`]Mnn =S%TxNT=deQ@ asCdPX16pD!AC_-EhZ-E|DX(RtrtyлW;Kccg7ohѣǸ]4<x1W ZIUHW+JHr^8"lO Y:6Ox:ba̟OBQ<;%AGkc})V["Z0/j_@>*b!kA ЭtlRBo_LJsb2Uᯯf#h|!`*w ϏAaR  (F( F( R(dQV!1TGV Xh3?kV(F" 6gh(}(oJmbD-P@W.U2# BFlP50H'KbR 1JWB@`{u`@S>g4{ NH!Y;%iKƪ|مULѥ]5XR4v{gGiP r] rssIs*Ɂ-,I?秼@5 D:4oFj8S6\ \v{É8KQy.!a%Ir_|9k<8MȨCOC b '!^隡hfrO(`on.>|wBBnaJ< 7ڟ1Qۡ{03L s(\'BnWƧg"'ʉU;^NO& vu9vŷY AeZc"ˆ ʦA$"@O‚^QJVZ+e*g_\nn8>6͟wߝ ϶WX4>;7IGcfI, &ոdU|؏wWA0Ҿ֜$/=Qu^qu}(sƵխAiX9X0! ARP"**& *, Q^`+"H"A~qPt/K쬈b)( hrZ ХsaO;2'@h_gOۨ?! m󊦘 TQye?ױHJIJI H7AlĽb(';(-3@ i7;8:DۃK?$ xJ5,1`1deJ$0Rcm&¥q`:tӧUN;,GyӨ{Sz…vlZ&VUhBnnnnnn555 +7 n#Tt)_(QE Hw^sq[w \bҡu^qc<6n7.<->Ou9zaA1F@-HW vڭ?Wkv,۹8fϐ{GqB@Y$dda$U$0ws;gu{@ cQY gm3cqZ S9ӢnI\]\+x^d(LH`V(""BITY[u0cW;m`Ү0XЃDA@I VI<۠yu"C@ȅr`L, kB邅NBD~ (S[qkouJ`c|/ZҴ5P00gE=t?nSSu:98W!ym™^zk}W9aCNA^!_92O3z/-/֤~8RvN#hn3VN;r-JS8쑬 I⋚=zێRHaG!/?HZ┮Ps!hݼ?~\Bkd!u=߽ 9T/}B?QQL5K3jץPgmPNN~ V5n#H5q*ŀPjPMAtIqxLbo)t.lDLml:=B.dAZl kf%Bg Z++6dYEF B |^\uR+r WZieKB˿a)*S0'o/=ih,2A`ϰ dH0؛ήq !  >˕5h:c?Uwys:*++){,d5DfVp H n? AD=͹iIQ۩!`,g BSG!x[%am|F#gW[9= ei%21Gb!D\2"@hm 6}wx?7;$K'81P,ruw@}2Cv,x&h{/˗q𡹔(gLf(R{ 7kZ,ڟw?_{'Jx='@wwvwwvZ6vX?ޕ@]C묚nnnnnnc]T߱kBN_O[IݸOr SX=~;| .NF31 @59PB$PXmWv޹`__ILp@n9Mm&VvTsg 1-]A͜d;0C_%B zH yz>pؼ.߱W*[Z]=mvrrrrrrrs8ݾ|Uߴq/Bф`z*ڊ18 A_yGTr(@T?(TT^UG_bbJ**2 TJV7^e~BL I$H =bnd/=iu9 t(^/ 3R,0L5rJҳ" eę-nB#B;hPX;>Dg#YIRԱ]?!! rJFBjӽDY#4L!*&L3 /Wt*H$ :U10Jh 7[pn dm&6C2X5P+)ItF%L[S&A?*%x_t$@ pK\bp,Rn}=&tYH%f{DԁZV bM sn:ڳ{`!n''0pBlz^+wY*}"g"/-.:tӵN:vwm2T "#(49!D?G5x4ݛ:bbb&*bAB=G^l*I\-" )C'pC«W?AcYLFb. =y5_K3yA'A{|vqY̎qJ''B! g'KBL<Ֆ'ߙPh)'xQoXj2S(Ц2LX }N].hJm[A Y͒lz_tMڛM!PI&)$@A!AGIbX͛vn[`Dqp9 Z]dp}QE_SF;kr˗)BPmNci+p#q0yi~^?r܃1yD Hp!"bjR؊\]]]]\osDMʟqnN]ts +k=ߝӦ8~є2=O-묮@q{EcQʮa+|>G޳[ZY0Ӱ!f CD;A@؀Ρ;_.G0`f%s%j@nO]iWN,47w>Uhf'ә4zeXssr3sssl3s{FAuد_Wmu 7mH "s"kI&M2dɤ/)dR)>.KDerA\)DLLc6¸ kDvWKkyD%_;- Ӷ|0^Mcxh/d!R҄胴0*( O$܈KywOOa\o8F~}߯7#huƾL>; ~LX^g_V)]^>R%iI)X:@Bɋ@B89pvd!J@섋)xF@P1!TCg YêОvmOWW dGS&ܕk>5;,"CryOߠ~#hZ2L&S)]X (r L@vvSQc.w{,'W;7-2=eB>.SiT%0=x X^m `9Sb]_^TO]~nQyɣGGPK8999/999!vc@ ^#qwa<]Jzzzzy.xu{=y b T 9k2e^Ң?J>>c7Mr0gƙ^dMNN)3t]/# YwL4K_AϬӎr~_.7ed''\W^{ SM}i%zyp ǂAȨ)*(TDB!RT λڏMwK5554rO[^8i(4 crԷj. !Bg/%qyi}RQ ![?,7jDz P.e?)4,b1lDF;xnp6p{]x\f.S.uی&aօ.YC#FAB2*RFI2ܥssWO mZO?|*PPHP_`h(!f__ A(AݢR)_zfòWS#)W2p%&`ˀ(ҍi@c!Xr뛀x@4_;h^4 P pZGgvPZq PENpwlj'| --)ӧhކ~~\ܼ|||||w}&J+_n[zNKC|_2N?9w;yorr$|7c2Gqy ~uw:n x/Wv?̏nݻo:ݽ v۷nݻz۷jզZصjիVZ[nկ[mjڼmvGdv ~_ka5YZVUEju8-G3Qj$4y-6JKJ4z=Gsa?__z_o[o/[W}O˅˞˖~-[v ,XbֵWm`VЊ.Uzujpaaaaaaaalauxzxzxxz|Ullk666q[xv;o~?r=|G#ry8+J*J*UIrԙ3?>lٵ1Mŧ6m9fӛ6ٽZfͩ7è}ddUdy+W9KL݃>zYϳ9tkZl˥b I ϞHa 7mOMޝ=G9"FF*rՍ~jt ܼ|Y]Kr>\n.s5f*sme ]WOG;5 >_wsѼNmuzwxkf*O:7eeee3333R???c.?W_ә{9Cȷ|ӭ{{{{{{{{{{{{{{{{v۷7{LV/Z锔IZv֖vV> %vg9p [mh{{{{{{{>ϳxq'}y0Of'mvݷmvfS},o7D\S/ggfe}>4C:}>O׽{{{{{{ƶI8'%t.C~V2ٿ /Zn1R.Oj}oݪPwʿ{*"U~_=) ',kObn /}J>cZߗGO 3^m?W fYk53VLU,̬fչɵxkkkkkkkkkkklkkkkkjjjjjjjjjjj`jjjjiiiiiRiiiiihhhhhhs~zz],tUz^WnWYܻ/o\yoq՛i7EˍzYW__W_V ZE֚R_GbE[G) M;fgo~;e֣Ɔq/\+~ 1;Kο kt W'S.I~nkge}^o<$rfm# &22isx-r,մ?;?pƸ\NnsrYYXYYYYK* ŏ1loN#mܫ{՜^bC#Xt.k19+Jy6< rԋ-[_ooooooooo^tYnr(;,tX\ww KQͭՅ)+ #ei7;U=`3wU^{1|l75ǡrX6w "'6_fW5;m5,:jW>կO.([B":v> nz.ƚG%)a{9̷gW1 ZgCgO{=/m+m>o?K/3<6 lCPS҃ ĻC{Kt"hy>;v{W65uVeٸFflmmʊy'fsGevWD@FsyhwzUUSeUEEEC7n Z1ks1f OTSD@)i6*.F5bDW5 _AK-@0`?-o{{֝~ooqO~1>CnZ7 BXb/ L {{9)1$'29) 1*&;j9?nY`:-r5q9G_ o&Q9m5GYè_GB_i)))/4TJF}w= 9l{c0Ғ uD^Z[XYY吏b64FI/ywm=DP M<&ii`;ynW Zi}# fl&+6t%M5OPS~wg:&ʖ_jTETߗzI D`rEEEECB78j84W Q=wû{uȚmeM_sGo7Jr\C/Ѧ_UY1_؝_/PVWq79Q-(Ax,% {с>R*"$6~cW8>}޽w M{Euc W͢(T(W?q<Ԃ3@r6RZZZZZZZ*ZUU*LN|?z*u`6C9]\]]\ dhX;Lg#^L`qր(9 I !#c:hѣF4hnA̬u_ʷ/jhX/ם|g'G/%/~KytpZ@wBD("9m<.KK}3nd%o<ָ\A5TjѬ!@H1._&4C@60(i^x̘uC}ubz a4@` Ȍg'yu)UeW[/C}s@Tr;{4S&wwmE f+ozכ*+l<4b1cI4sDc'$8]!ZfbB A3ep P`x1ZG f[0ĮRw)+).:/M}=-x黛Cw5 {+џLY7c 2F -d4_lcs9V A4.yW_Gv|̼Ȝ$55їbQ}msAF5b]gaUt)Y/ٺ޷MzѥֳF2y֛4Nϵ|V"tlE#O Qb'"H9a:u<_y fͷAUK|;ڨ138A {P?P@dHnIe{Ҍv0f[Bx= \N0BJ* Vb+hZ% =ZRUBcK|ʅ467E-oLLLLLLL8LTf'7]oe3ukѫ^ӧN8NM8`iN*a@:dw\jj?6tXImha5AE7wN9~i AVP4PwJa?}hWfo;j`͙"@JEm*TR=~U Y J;8jqj8! :%e#B- $- FfI95sw|a:UUUQU*(**UTUPTV **QUTUT䐶"E!BŔp*z^Z#=/?|9?woo|dyd&*BΉti aG;Ϲ=̀6N2-bE^=x=uwzGLjخ)Bo!dϩ-8v5?dhץd5tW0#Su,w|w71̼~[ELdK0A\[6j΄;+\/3fqf{[b?ryo㢨Lwk uvK;{xfl=&387wHKi!!pۋW.H#0)ӧN:tӻ=x a Oc0ͩwdRK%UWhT,bHa!=mKJc=xО,}j 3_ۉ)q.$"c!*p;ZW iRi(2|)G]?HR!*QcIe(8=qWwai洎%Ұfo $xH"E< y8uV姲D_ ŐkNMxpjșV#̧ZQOG2j%<'AЧo(4ξT͈Z wb Gm+ɜo:,ZqFzÆ ;Bչ.%|?z9ytR3If y?d5mǷ/PZa  BcZ׸<Ӿ F歒aYYg_9-F]e%u(d %Zr!ZEu_Ĺer7>:Ē>É F4ӛ _1^. R|I|:_y>LJzpcfq[-ˮ3wyѢsO'ĭ髺R׏NV}~~\yZGےŵUtc&t&ީ!"Lup|?W `[|[EFslCfpV}ߵqx 0c^Ħ) m.m'dU= M}=~~أ 58pgKb u੢͋Y_ZVۏe mٹue oЇeC"k3nLJ 7׭i8~?,Ŋ`ԖiaÃ:\8`\*h3bn_DZVax6nv% oP-=ɿfm5ͭ?Zޣs,6v,utsuu4tfѡdŊvI5ɮM<4_r(f= Zs~] Z-C&M3uW4צ6}ًÛ>ަfM}= 0;RY uS罟wZWRҚPQG ~F͜F,X_ԢqXqe=s7SÆ 8nPqxۿ>⧟[W{h?ZV~,8S-j97f4ۉ~bo,[|Yŋf\N,qZbX^I<3]?_WCTZCߟ[,X3qi׫֧3>l"^UϹ;pR|O>gZ65Oƶ}ynyݹo$]ÇC qjkg}X1bb~ݸ'ثys}d֩եS8aG*MefUs4~lx/o߷kL՞|'ǎk63??=ՎiùvLZyO~ykEצϱZkq^imWe[Q{͹(gԚUW6ͽK/^kV͍Y|x=sjG 84gI>9izikAp{=[zM}m**ަ<ۙ҆}I_}zԲ56k,՞|=ϯ߷}}9izikAp{=[zUV zgngJ&~ͯνK/^kdYfƬ|fOk,՞|=ϯ߷ oM6ͽK/^V͍Y|x=sjG 84\|s]kM[Ap{=y5ʹ45(=~3PɽfԲ5ͯ>k,՞|=ϯ߷ oM<ͽK/^kV͍Y8$pu'P g&a:E cFdH՘5@z m̈u1 COVJis @mތroi/ Q b4F"! xz@@9^:HR  6~LFU5mY\ͺh[2LlFIva;cbG{{b'|i +q鸺-;gvWX@d 08u*0CP׏F O%AqɫL6sc AWeyL1Nj۾ױjItO_ylp}/!o>hi6/rGBŤzV HAM8e dߡIBSVt bD`qoPp.^i[-(oq6nνP@ fm4yz<{su:8;}M`@գ 5WQ hxZ=_$01ATDTR'YwtyEaaac'?8ࢁ" g2&q\oq˾1*zVVVVVVVVVVW>DeLlbP+m#v-IRQFD  twi<+.;ߩAU tSmsE^wv͡ zȅ p_|H >)@iXa!Eˉ,ٰ֘@ DDb@w /戎K#@Uj5uM]\&Wsxy H "=%%D"`bbV2*(D&KzZl PwMIe(.O6M,>m^Q'UnCM&Vh0k9͆̆\j iFjۙ3Wfuɓ:ƹ,*LMs&ffq3:iL=fL3 UJcj=d$sR˶nLUbXb)KbRXn5ʎIf s0`ۮMhM t&c\Uٓf ۉnnk 6`ܙt!:"I tliS\H%fZY܏:ۺ:%`9 6x4R_lq#ĤF'X e?Uf5XkVr9= C vm`#ܗ"IRe&^ei&!8A%;>ٞMoFFFFFFFFFFE9~4C~ǫR6G?!G"DzG 55545ԁ۴ХȀ>777OܗRudv c?UEMg/s {XU\gYYW|mE # T8%xq) bHy`YIj@ſ|ճ"!~V:FA@|k׹RTSUURW63jT<bAU|UUFપjjjjY#`e2)P2=3R¶pꍒ-.0ۀz0GuCKPM7v +;ܧo*!0rB9*g#XS1}" A4hѣF1?3_pmZ7"2Aaںanun' $ߺE;IyWKk[s5.xD7! ^^//die4>h|a ,o9=)N1O<ǜs@rPWBnMhS1 m4s`hֈc`iDW742w77.P fpa_/}=,m߳Ow%wwww_޾LZoD' K#j=uyEHI IvuUj2.a>C3~aP&e@8 8B ?Yo䴼t3@HѣF64hgRJ?{5HbOΠ?_[ENY;[%>zz#SxLZîL.~-ݍF.6=w;K?|ZfN.q?jy/3~保op@ݜK7777+72.|c{`#]:n&,:TĩRUF` j!ȥ rCĔoIL(;*`PCɀE(L/cMCd?f9;.Ꞃ\? ,Xp8 g%S\c'f&-ّr:::9|V.pFFwFl,2C锖E1* s:m7Um0nkR~-Ս~o}~3i~^cC @ H/ʴy>۞%)+¥Z[iݞ?ַuyis .>?7M$&=: 3 EPn #<^猽t/=vvvoVjvtP>۫0Ńw"S|zWH#@BWA*uO>lj=z.e[n`_ ,rU҃Rs#͜aʢ)嘈&ESUUUTGĪ'EUUQ,DQE"pEQuQb"QDNݪ6)̢ت&QE:tQb'b(JEUQ()QES(yËg,o8K9=۔ѡMMMMMM+MMMeigh.tS_ϱyCnnlMߦSZuיau8r8 1ZHH NMTt:PeZ㺂o*!~HneZUFdF?1Q1>soY"D$H"CeM-k!}:F$l}V*RRRRR))))6 kJu.d麻7- `i6}:+ Ⱦc 8㤁Rqw4Qi)_+ GrK[`~%x&VT;ﻇ˘4A?.Ȕ/C b,7}oI~^o>sUpaҘrHck7ekj sK"}S9!v+>/*^uːiOt<APJPPp !NSU8H56PYh{L)Ɖݷ?㷻"zo^H ;g##ǙyA"x<پwvzYe,=Og(PZq&871zĐ4ݨIasy*X(^TU2@<KN}]k++ޫjW՞X1!-\J3]]]XK/pF  qeWYpXxF"@cG'iF KGkiqm>q/F%%k+ڼ^qDoLBFd?ol{YYUYXYYYW ܬKa `rSP9"Di12*8̺?1@ݞ{f84~Z{ikQ `)e)&?2v=m5O:@w|||||||~+=y'. xgA)Ey;{t,y`B jl{3{*W ?tiJJ9RϘ_dfȇ,=Z/oA 5żb`|[k雺l@(pR;l0f,j1LSxyg11V'J-*Y\Jf.0#@s (8 @H @΢y=*TnqqN61oa+Yi<#l'' sǞc{ ;b'Jʺʳ}X<^3jE}3̚'&''''&.qj *XKxK zTլ'x|&o/qD;r$vGgu,E*GVz%;O.oNES*i?:I2u8' Ԙ;+uc{)X$[xڨWλDy_OXj [|6rY3RӺJBPj :˘mWP !kk]k$D_ZM8_e4Zm.[Sa- َmK"aP`1!ArIC7KzѡGJ!L/ƓImB@ Z4Pzt 4dXOR. AZYXw/} nHד>^gz%3~ӧN :Ա4; _ a@(sb~9u'sLffZ&9[~d 9@ y繷5*Q jZSe+>۰vzv(?1XGr]Qu[>_@ 8wg-%/O:ċ j^*?Ɨ=8aK@܍4p(ѣFu(&HG'PB(3}s r|(a 6 7ރ\5\rT"jM#)'B4 qšՐIf&k).K JSlh]/~Ƴu^%p V\''''& sFb~VnYYm\$$$$ $$$$$$$GAZG)JO-=;BnZ=a/$AI66\M7kaO^[/hq٫v/ñz>?-q`:\#=#GvZU3lffͥhҟ t "?I{)>0Z[R-%$?+=)~Y pכ;9KgWVꪔ**ةU_ݴ8O;^VVVV^gY [0|1ǜucR : 1$(-mm5op;=m*1ǭBd0 }~UM]i[)L14hP***PBy~{m??4hѣF7}ưڟ}U-~Yָ~~~]{JK/9S(42dWZbj?ݒU?sJ}Szfv! wJwކhI I(t|pkG1ˬUYU-^2o8WF<~[籱?f _9iX%*qg~RS=: ./}k9xuSw1,`j OKu30(ytȡ&~Nz;~ؐثi*((/R b,4X(E,QcD|Xbŋ&ʔ1F#(*MڤA|a1CĦN((((((()AAAA`TQEQY#㠠JXbUV*QEQEQEQEh{AZ,HQb/~g8'}ƚeTv%s`&TQZuK.{ytRt& 5S,;D3naFMiht7"$!*S,Sy~w61bŋ,|}f>͙bX RbX(E,QbX(E,QbWؔH(((())5)QTUQTUQTUUQTUQTUX.YH((((((((((((((,QҬXYU/,zWI@҇5{UgwtGaN~E;R !cPz^;'z6_nI$<߫CРHSPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPqAH(((((((((((((((8cc<k.b]Exɷ\[ϯ5|6q;{S} LnC*Twy@M(((((<_(((, |JAAAAAAAAAAAAAAA}TR % AAA]~5k~SM cڧupO/h<s_};>~f@$ (|r?R₂?egS{:O7ݯFkp;^hAHћ U;M`}1쁐A Bb3;7yhumLuq74w0P@irm6ͦ/tFJ O ΰi8+B7}#`EwǗY{qq( @})AH! dɏfFC[)ȇ{_uiA6dWdJB^v[j7 ^H%bFXҗukZ7$Bkt|#wyF4hѣF|{edS4y \UُEz,EVV6VUVVVVUUPFrڎT,eWdĪJh"`%BE/B*T9{B qRʺC^pV<+%wS_u+ǚȈl9@]fv^]zﵧN:tǤF`rgc>^ֆƨś9)O%J2 *UԩoXsl=;~@.ؐJʐvV[np5Q !̀ /Jkz , M=[[Bm13 _Eg=q4AOcк]w2[&^`03 Y 'A PP 5]ǚ,?eclZ|}k.;3QDRwnnGrF]@ϯ' :Γtbr^e*KAcxoRÖIMJNMN80\ yNv p01_ȫHȉ߿3sԜ9AӝL!)L]&&T?lMi7RgiFS7P,Dm|j(%L98RBR`7  ]7\cPw);em҅}4Kbmqk,~8XsٻT+553r523<"hΉCARD:W_?s}Jd %!1k A؝aԖQ=K%(y"9C Pptf +)%~;'?Yvwǟtm'l'HP7U'sp2(e3~3ӾQflBppq'" eLe pOg d]FQ7ɼ_I0"d ELkָ @Fw}]?RE-]u4Nu\ozt8/m}쿎 o#@y1@oQ{a| y;zϏwWW |w#&>n] ES`a 2o>#R2zE<^o|2EmB ^@CA{# > 6frYٗhD>׫woaƞN$8}RTG>.bb{)zu{ߣ|Fq9R3ΰM $&Y{!6ne<o*Jfz~ɸI%ZI)P a;eNOV8J28thѣF5@S܆ /GiqL3Vuxa]]Lfw@)08o{].)t=xxUp`)R2xCYҪ0m˔)~0RMrQ-B[BUGZ&DÛO|.O9qE,N:tӧN؝+sJ[$E3:@; ڟ/|pkס-&R3C A x1\6dȑ]ڛ6lSNKxK{Lňudm*Eʠxl]PPONOLQ|"r>G/L R֬.p?˱}m?{?@ MMMM+MBMHWupfǼx yWif] j n11111 11100kK5zyxhm0$s/|YՆ߲,?),8i94&XX2gy; cp߻thM]a]ae@?mi|.=rn%gev,m~e!f_£V 1]C[9ŚխLیzsn"ؚۙ*ڌ#'Uw;agˎ3µzcuܸk63{NyU,%qy <-9EUsErG Mk !YA L*\B725-6"ZY9 ȉ:XB"]P<8v,Q-ΦצJuui_OWo7S]O;lZiۿ~Î,r0kΌb?_u&b7h&$tl5! &Sq0k)%aFe0 L&aÄw v'FRJ|SJ*TRJ+"&Pgo.[8%0›[[B6^~HxdɟA&L^X$20$YإuF`(Z[ݻð]w]ɵ&z1UCA~av9PpM#7誧e[Sv`a2Dg6yio!C3h{6.&5VWX@{Y:G⯯r!m|Lҹ4Wkh>-̫FnE|/fuh G飳uheQ4`lk׻i;ZuF~v^av=-. }[S#Ft?-gɟ޷gY.YSG{5hi23FM4uW{{t/yX 鷹ICB3pjsfe :U X7ّ̙vLٴd͛{{4s7L39c>gy~7QUרTUv***5)u*j*0*TSꊃfMM]NzzEEEGzTTUGzUTƦSS>UQQQS=;u7~>>:pa!yZtç ;T7ІC =M7jQԩFSեN,5uvs[Zƾv*l]WqvTqAATAt`wAA?KGF *hOCq> )ou7GwwwG~˿ yy^/gg+x===y^';U~u:rjSON=J_KR*tT)ӦZ:QQ⣫zԩaSR-O-<:4tɅh6hә}CSsn<쌌vFIlxKtxN'Tٜ7w7p8 p4#o3FǓ^Odyo'o3x<^V'uk. po᷇'o/;牼o7x^ }y\} [[y^Fk}Um{[.M{_x־_y|^zk_ovvk'JXVZkݪ9lO@u::6ۧWT_Ohuu;;x ß?9~4ufk6}Nmmp8` _/*fF|f3%}q&U.53+ PЍGmv@b_n7eϖs/&_)6^_;&ӠgƆi#0eCnoG&8g<\ IG⃧Kkn`"lp$bD`6|l)r1Tb;@9c!uN-F^ydAeA^ɬ'2q,K `i̟g,!n=ypmv}1?S)_vG;;%9ACv&+&[N0Kf%)BX  @,BG>׊(J*PJP@ËG H$u$` HaP0%(H% eeAnc&8&Ç,#\,! h550C+Txs4 d@<:O7ؼ_V'lV.3s92]l8:u{qlV΂TԎtk$**K[ {QT%F! pH%*b*^ 5ԋ1%IVYUY[X"V: 19V B.gkJHkKZӋ넭#8e![98S-a+蜜9}tNΔ0*8)E@n):!Ep'Dෝ8\Yˉ:'Mp' 2)CtзpSΉ):'gItN蝝6#fp' rpN YZVZ H´dh(_`Cxp]E[O^!L[9Dy\#N.N'鼞DkߥhVS8qzM+ҞT' 8i׶= ϪK`zYr6?>ߨ?[82-/m44>g>)s=b>,S̓^z[GM4jpM<~ 0^㻸n.̖I"hOP= Dgb?z7)ausLGu\Z-H-KFQI%濢αnǪ珧I{lbN򮲟dҥ~_כl2L*ѧN tЧ-5g"۟9}MVi?6u f~ʠf=wê2ݲϡWr>7\(5G\@7Bt u(ndN@(CP6oxK<֖Q:yJ3453Y(Q,T$mqx|7 \Wbyl0c09p%ԳȜ C74ΙƦkP)Рƭ`$_3^<zCh:tm@EhA( j(DQ4 TE4d JAS 2"!Ht4){XQ* QTU*uFWP*"E*$DI1TI%z(cX,M۟DZQz<+"wuֱ]edUՂں(.3''}Mf? q"/~zh~l򽟴e'k'XՏklfffH# .U vZ͛ c.8Pɧ ,bl3Zkkl|EuT֥n5é"aV[6@-6:ᗺo~ ɹz2 TBTaec=&k~ ݏs/zii:{gwh9g6pzz:l#§[V1 Ϭeʁ&|^.[9l+)hu4~la? J?Y: 3 (#o滼o8 "ΐ8'~!e_xǴ} Lsp{5ƾg"0f!J;w ?@>̒544B ``F" pf<&@㈁, V#"6F맹cRJ*TRKs"&ыP9fĹsKROY~4&L2g $;%0Ƣ[T3g$͗S{gn !Y;DW a/c^HyBoM~O?Z:yDi%\&ۏuY0=7|F7ta5/ 9SlB7B2dҪF 9com"zf)͘2ۭ+^isݾe= _ý@ge+1a:tؓN:vz` 1vowcwL'<nBCCtӪB'N;p:LD0<  !Y6kRW4'4up p& 2`\SOXNo۫O[;r|gFaЦ1ci""~ׄ 2GQ+OOt]p}:?ʜGqRRi!i!L)ilnZHl!0*sB뤬rUUTTT_B1 3=K}H_q_T rUouUSjX}:i"&M*72fKXRa Q8rLpq$88iq88'9.  (8(8七  qqC88È88È88AA7pq7pq488Aq8Hpqpq`88A7pqafٰvlvlvlbfٲA"shpqpqpp00A7pqsÈ͆¶&¶&ea-W޺:1>vc;PyK=V*e@M|VX.}J|$ddddddddV$dkH3[0q MWpGvUHȽHȿH2>GBX3 aR*BCrf)gh?||/u{7S~+;N풧@@kUW!(Гx|e(U ^uv$$$$$$$$؂+oPrۣ4x ԅBBBAm\O Bf]6Ҳk},p&< dA" 6O|ikD]> ,ZQR'f! 0T*uf*jQpVN'6ٺ0X,?Xq=]a#InpؽXزXbkE1iRjmcz KGXkEKKKM' @wdMwؔ0vfYWIv?zMa; Pd]gXx~ʭ0je YSfY}M;hr!w{_ٿw'>*M*WԩR%J*]Q7ޛظ)J(tﲈ456*Ho^4RW@oHce121qȁCPvc/feDALtg89yd[ r^ N\W3@= 0Μ@HG8;,J[ٗ*#F4hѣF6ՠԟ47tI7_~ĝ{k)##qϚ-w/a)H@xRɓ?0_P8%PkوK@>?2Ygwv+7C\%W@g8͟R) v^S49l5L2Yy׶z8=k=n//// ./.1 "³ l W )= 9)ii5_N v˲Ro3#zv}rtGB"/#@Pof͛ٷ3{/Cw? JCZL2dI*&iL[G ٵyYM%ZZx|J+TIRJ $Cཀྵ~fp[uq`a----{G- ]'(E%ב@7OOdvl/j/Gu@ {r1111111 11z Ƕo5q&&]3d1q@SSY.کf'3s|p7g%iL45os'_jY7@^:!<"g;0՗h[=g K;5?"?_ ÂN^%/`ol*z` ZeIR**e} $%eebbp?G5T(f~_Qw2rZF[Hi1iiiB}|An v(W9pA HSi%;Eu?^Oi[/AC@X ƀ3}{v,?L]Bñ}=W-ʣ)h@ӪP] Saݑa\,o6Jnmnnnnl=MMbBM %"Q"v x 4\`BVe{l:f&QEDn xFhG/ă9U _UEROp;v⸰,޲E!U @):z$=|欁yGL{}>O79|Ỷ2L(}HYY6R[4[S6KJ_h((P 6: nv0.[40tS8>pO+T+$L$x.PPDl^.7)JQ ;^{mS ľ+ےh}dOi6}zNY"JrrrrrrrrrqZq\#B.+x|s l"tS WnWU޾^8$F6xpԹ d}FD!g'v`J9j.۹~d&.Ax,>g wnJc(quCy>[QQQ o[H&20Or7>}`jYY *++({(!Cp]B W{9: .<[ G= 1~Ċh[n${~ ϒ9Q.b zq '9w%8`kʤi]B^^_//# >㿿%&C_м+,`PYiY=o/YIAAAAhVÜqwzMs֖Z~H-Npv}Q/}>wB$B:l%AC%bG]fP>Q6Ǥ @MAb"@ $hP7e*x$L)LLLLLL9LL)r@p=~s8ٿ|uJv`IZUF7hFzX20$Q$Hl Ȉ99)?{}>|/|T('-h,,n99[BSiCLLppWkAubQoV>O;߬~1KlpwՇިէm]~@̸Gq0|GZٗ\8ǘj)[ 0]]]SI]]]\D ҡ@͛2Wu+|OcСئlvvkiŜm5avW=:ތbH' c& ;F1<dD짯eKMb7K_±Z{/;cG#ih9sC/~ٺNK*խfWa'}N{]9! d2s6 ajw.l[nޣCH1 #b0@b1~~)cӀJ">Pf1&k k$ DKKB<N|,V6o|AfG}oYm}ivivhGkt^39xۣ< 1CzD"~աp>5eXMf'q8N'5z*ֽg2w"İy߿,Ǽf31F2/ۨj mʙTp0XTFQ6(v C?_5MrpoA8x :W*  kޮ8i[ _ a)g,;.wrhy+?|>T2~^{ZCRͳOnCf>kyYq?OѭCy[J;7WO]rZiWvEZ]ٰmGyՓW+r\2dɓΓ'&L2dɓ&L2dɓ&L2dɓ&L2dɓɓ&L2dɓ&L2dɓ&O+r\W+&D$H"D$H"D$H"D$H"D$H"D$|_/ʓ"O.Nkmmq^SNwLBE+ʛ`[ v4@t9A# _23 AF"& A|]QjA_m|1{y,t3ԪqR4鴹\'<.}uC]===?:?_hݮ֫m,e<T6M7u]Zڿ*7TӞlWjB%JARj#In֪)UT-V-AW@MƐRZWVԔmŶWT6.. V]вh)hQE #tS(HZJF P)UQB*  uE)XZmSwRHUKmIW@*EUB%R%SR5R-$ Fm,e RtBաƨJalQAH(QUITQwEҪ* E[ Il*@*4 Ij-l)MIRZdn6iQ QQ EF .U(SB*.(JFڅVeT.E%AmJU@M,bl)),HZ*KIiIlh)(]L-ʦUim2Ր+TKaI*le!wAL*%U]LJ#%$U%Kauv,)iiHR[j%Bb VմL)[aiU BiHHUԫdR#"(5E*JJE, BU-JHYm[M4 b"$ZT((me[t)]%1ZhIL (-2[MB5RSuRۺ wH)alu,JaiB )!J7e՗tK-abX.YwDXJ%nu@EWTˡXUl)h[uE,!c EKYm4™)t]UU HjZ+TRUE$*K@ee4YmJbZJTXRKaj%ZmVѪ"miVZ]ՋPZZ( (wv[ nH,҂[Il[l)-UUKn%%Z!e.e.m,UIkU-)FĊ -- @HƖ([Цl-’RRUԴҨ. T’ E%E%RUSEUh"ZZtPXIm2QHQRT5TBƕj)i[T)Ul,V*L)vii-QbJim %PSJ›@jՑ@hU EHBҕ$-Pj()`R-WvYt# eZZKحT EU-0S"Rʵ@JZ "URJlKd-ȴ#TJS%uR\E]2JiYRKa*۪).m)-vT-%KKj] ԡjmBaWBʤQURTaH#-("PJUi *IEiiTQ**’mMB`R,UB%][%0ieղЦZu%REIueДJ.cim[K l`"Pie4SC)00Ҙ՗)RPmUUҩM[UTMJFJ@F۪RՋl AaIhaTTKdj˴eim6-)S*Д*ʪ%(`)J)6RQe]ZRJn "AE@4 7Lы5fiiiiiiiiiiiQi'|.b-4ܩi)/tfRvOcZRb(⒳\>' _.B"ȁ Gp;Or פ$$$$d$$$$$$v>_Y FxpѰp#G;%Q(f0#ʨ;ܔq> e }Y ;,{"hi1t@GrUD'I[\hѣF4hoC1 sEM]~obϾBckXŭ{?,tz^6===<'ni]A @3R`=;;;;SRSST@k*nߗu¸uq`#zkq ~6:!Q뭄{=fup;z9D@_r+ ~Vnjf9+ gUeheסާ'%o8jqx𾾠e5΄GdVQ e\5y]ݻS/Zs}gi5)vSA1~_~k;^[w.?|Qb<,t̪Py1d=E N8ƙDQ\me,D$&\QR&&k%yQf89wRK*TR0.k,w ~0jP <ٷe67YIS l9КQ]_#  F8M"I3_Ib@cqͧv=XA@R*ovN47ƯFc:tN;S{4'c \IN%2dͩI&L(?&\7n&sDHb CɒWզO-Xh-n<{.a<#lAAc[c2m>dGEzڐ]ݯdM޲f N#穁k8%_+նE9+~W_F4uGQgS+=M:mҔ&) ?am\:~ q9zz(<<_8p8Z* 1}.>:њgv/sKU138+qһk{`6EZV:YozS%sd4ٶLVʫJ333337- +E%PR}_Sav}gev[Pw p#nh &L-YDfqE2D*Bΰp7/Q^>z[oW{k`4̌YSLSU&(6u`7ņG\xZMC{C__255555555Byp~&5ȅ(#NԘ/vVti0.lP`սM?a^8u_5PnR^A/*79jGԏ5XU~}/3vsl|aVrLvUR }5y}ޢFt!)<7,UqceXXض>?.2q[VT*8_tWYYYYD2,=2nuo+g1`ԯ3qEj`bccc4t?W>tZ@*o;#LDqC>8_,}#iU'w<[7 埢ob7+W+nlc"R}Rϲ-lfɕźŏz}G@޼ |Sy8|````nӍ2aRs)55ra@YY_8\#8FaśꓖW#m5("%crN/~S=NK޳ 1ǫڷןn2e˴b]9Ux1Ʋ@}>@tkgfY8C8rHIl$홒> ܒS’Ҝ;=oި+Zerxg==========:At B8_2|r[D/X57ɓ,&L4 dTvX( W,if1DtijLcUSvc~f9a0N:F fUWo}c^=M~p߭Hpl=4w&  Э"@ȁ)))))))))% `he<\'cpfp:c(ĉ$H"DY|qP>Q(PxB9聥%%%%9qꡘ` iG|׮K˳~}|g>WxaϺ5;ܥWu6?&nzke.BWV*v*1RqӢ Qb@:1/|ier;qimĘ1/>d G\& a0= ]mvi >Ug hE8 z40x/N=4@8q<gM5k7<Y4o:y@7Tp*uΒ7z' o{OQTP%J,z+apaHSk~m}id(oOqvJžJe@`BylN=4rJλETнH c@0C@ j3ޭ FPPЫɑ~qbwJ-O*ە$e%%%%%-6,BCLj@Ğ P7CM%@yAGGFUs:{_-^ұc``2p59E{΀|`?BZg瘤).LdL.eXNYfˡXݯJo}Y2htɓ&L7p9}l0L^DwǡRnEE>ƈv8Ӣt"Yʈxw=iUc9u ދf|f\%ޙh{>>11WY,1|[JdX@' 0+c{s#dyyx}mmuwut{wHB@h]ʨ``k2?wYx=c2tOW*YHbHX~4|]X"X*k#׻RB^F@oR"@%.]OF* mpJHS8zon"BGt- X?~B 8%Vr|ov`*a,ߥvݶ_p70 }rLjkM,*v2!r$! KplZOʍs|+>O=5by βV=qх9ndkMYL)V1β@ X{ mlmlmxg,~~bl6s}O~+G !}nKnTx`NB|`=%y~:"`~ޗѝ!JE}(Wjy;?yy;z`# 5wq+R`:I P?vr#ry<?}*@ߦMZhђmRkd),T\$3CQBB'%'%'E)j.[HmdDEI01Y O[nzN2U4O1['Z|OBBBBBBBBBBBA@ њǧ8H`a$d`$ddo22+@?htg(\ҒRy ϛɣD.y@]]_ `q%~)BpT V~sO{:"⟾Qu#(^?~Dlny~?ȑY {~wÛ?G᫞F#3JR]v~SVRg~]{^o9q`,{ /KwCB(hhp48 ZCXȿ:c`*%ZQ|$} Z̜Bq :jC/2F|Qv\p^ɚ;GOf5RQ]܁"Ac&`z C^ܮ!^hm3qZ PaHRETV>&j=$g3끌(ODn/y c#U8͐l;KMJ7ʥKuKNbx ,5.Ų4FKy7|wK%GamAju? ߾uIlQuFL/S)fao3/1S"e^_ɲSۤ9 e47lԿ@Ǜ#Iqnlk'3ϯԻ>f6+Rhvѓ נ9aԖX+~bU :cc ٟhU9 @J?КuCw~5J'oV7轔ߴo6¥iiiAiii?[D!TdEihkk^[/ e ?g^AS1nS&L2d&]^\FCSCyӪΒRRORRRRQ'Y1PLJ'%'''w!Uo ঀ.G@(Y KÊÈ`:əah$m=imsi ]kR.ڷ'I})JJJJJ?JJJJJge+mw" u Ya}Ognaz.*@11111xD6TAW<%BW/Y 00HR 69J PL\T8e@q5 Ag|/Y[a@8㜦ͨg w躙w~nDCCBFe]}(!g|Oz:">ژ(hhh(l&NuX˦'`qEP]~M+[)^M=ēsίM}d٨.-B_˷v/?3GV:mƜvD /}Q9]\Q&7h+i-)EY=&Ǒ[Zxhd}~Za--/oY_N3l@ʓ [[Tn Z?=_(Fh6/L{Ռ^V@jv?qV+Z, @/CSʉ[>y,.pWtU%%%F1>Wc7f.-(ʒW&&(3xƝ K jQ_N| OkGH(qs7~eƦí6T}yfib 4WmG2`d,3IyYYYX YUY_>W-8sZbqD:tI @g%zZY\˲AKee&|->30jUaeB֗?ඳ333+U ˼8X)ПZpgy=ox~*TP .c2J!.jx|-]`%yg#YFIyM&d&Gw.Xr ` \txc#"NFFERD<\aA# X ##Si۩5x>$)#䤤]Pԝ $W|d TWQ[@pw _U!!!! !!!!!!St sց cw'{z4xӽ_ٓO >6(L"^^]Eg1{<6'c5Pe)38Z|?-0؈lgo;Tԛ\Pr&k[Xfws\VZψ p R稾<tNUUUUUUUUUU^Ϊ*UUEEV"H/Np`QW@xG`=D XsAC2"skҹONjkkkjjV۳jhmxq~w6]3wHZa0t|=HA0knT@.n`"nz]MW 㢀_CIyʘ7MC%w=Rq󳳯sѪe FwEka0边#)Iк0D8Ь0::TPT^~7Մ;  @AHR":IN! !- :{oT:5O?/#w)(R2RRQ~;:xfp+["b2RRRNRRRJ? dL uݒ\(;A*TRd5 5rɏxs{ CFFgH篸zVse+3Խ_mÞe GǦ9?^ء]_o'g7G[۝CCbo/vֶx#IJ(Vf8øqކ.z~?Żb{*lQI"-Shtw;)鹹+2\nnHtZ^'nr=FB'Dyk6 V ]^p/ BS17 Sr /RS}>3()A ٳx$d`dddddddoJmp Q!#I3yj$YcbգQDiFHG> ( A#䴳1%UUwiS!T}.8]J_~&<ꡛ'ZìaO{Oj *rD_{s(^ڍFee҇ZSP@dd{N[\+u3FhUH]xp9P^WQi2HR1Y=־N]9YEILw+); ٙ_Џ~*(r !4 ÔYY[rֿsͲɗG3(a:w80XxSsOQ3`p E,d!ܜo`A-N-H,_:h]t]qAfܸ.vvjP3jA 3) :+ ,.A\h E޼^+L w b4^z]hW..놋vhWnrQv3Fqg\0$q WJ]MJ;WR.ۤ`:躐u]hY rg\4gFuˉ]u(]xL^WRW. n$ .$ pˆr@pѝpf3?42vr 78vqEθhY g\4g\. KvԀEWo/t?$!?TŜ\ǘ'ytzNgxݘOqҁ csOMMMM!M~W:z #V%fSh%KmEM/K@ "¹? y"̴6X0E8eRG z8h:tC'N>jؔ@n7~翾=+Դܴou9=v01;Č| lfbfeYXO-9fq7ӁZ/l0nWĖZѺCڬ??]>T=2 ?br6c:VᵫL_|GvEZu)|:Z,ONmT(5{&z0xplg2`:SodjUux$/UŕŖ92|<7(@c%MMLl^RD*NVѤO8P8夾D3{\xNCy73 2 s{j-.Mꦣ[Y8$<cTH]__fhCG<߾ ؞ }*Tb-SP mi&&vځ%p1z l J(۩}W/Wf3fz;:~~~~ ~~iCcnn6`A? FBM;B&RB pB# :clSKKF7{eo*Ɨ@dJ$:dC0-+ww]c+.m7)TIK!OeȮ*ؒY (oAn) Mi 7 V3g4 0$3;veep,*Cux/u'=QHho]y7?_nF bP*dkV`G HFibamRgr}2$rt]8 ~LժgNӃZ*lkqc_c(}q]ؑh/ S p ˅1(dD@8Pk,v%c՛Y2ЬƪQA(̧ e6;pqs]qSKLU*S) gfopj_}ު"BStUղa=2tULZᲱHǏPˌP ;z3'eSw-8o}Z%VɄkFmglF]t5}=JNy+ǁI3@q,1Pn'@RsYӔv76XS:T0/OtpU5Nk6ŧ`rء0,9[)NhkkS-a9dv)!dM|-*kxy:d~ʀP oěᧇWx@ܿ5t@=k&G Y jHsM%d繺%$鴣epbxz|c٩΁ E)ؓ,1Rp{P9lI|4 $޻aLaf .Ya. {oq/p1f NQeo^-9]α-)[⎛Ķ n&ywT ͼ/7i˴亨Zp҇wA~xaG y{*ʓzRtUS8L e::]- 4|K j) 70@CFTkAo4nYԶ;2Xjz3NԤ;8t6NGF,8ʔ$vlm;Rk-1)(92*u#I-kaѓi"hwa]Y0JVE L(xN+O7HqCŵPno囇!t 2pcF4e\Ɨ-c@(CZ*KL n+]ꔃ½e? .ϥSRn8CT0%u V)=Rڭ<ǨӂE[ͭ90jɿMtW5SVͼ;3&LX-lZ\ '6}[\{JfoIU*i[qFD.|xT!]UxﳳC׳)gz^KsJTΕ+է OhKTsNsbe,Xyvu8@7E4ӪSHot5 Bw/2oФY qEoeUa]{P0|n-7[3T6bSwba6! 0tS8Il%(8Gfۭ*_4РT7ەrkY4gҀtacz3y4pgMyZzm&rTѹ9Lorx%7R=eSϳ>׋k53GΥ&a5aN; oLERa^.-qK՜tx:]zϺi]dz=n1p9MEt!q!UpYKꦕg97Hr pX1Y5<75K$Bry26< f"-b^qcb'L30:GZiFG n$5`ڳٔ% 6oե$,mxN]oWDC+ىApu/l -J_-o`&Zh`}ɚ<)h}Ow7V}imrtܚI&*.YeYsq|ٱk4ypnR/oaDYB,ؔ,e$ʒ`83Yj5p±\4n NiFAJF՟Ddjx,^'o ,GK";?5hVSij%nNVI ڥQfW>8d\AǤUz x?ݭd5|J=ݜ2_s84Q۞PIWo)?v MF=Xwwv1[<3Y)u9_<ӊ IҔ{۰v/n8G  Qǧ'ޤ3 C4x+~Z|-g #/F2 iiiiieYiiig u޺|e È޻_6\MMMMEMMA*bvqWA@#* #!o{^m}p%]8\#.-;OU{M6l} ]|^cV}Yq<8d"7*[&j4'G#,&8J'{οBA,*OP  \D}9m[XG& &R&y~tZOQPQQQ[+Ї T}X0@n^'ʅ\}qEO^9 gSnPƏ {[%aaDTCfg0>CAM~,hѣF4h?qPd$BƤ>1\F=oU5CNqiﺎNZ[.66QV66665b|@y7))]M49=Az(3 I -hlП;;>jgj3_rc#C[.v+͚; }12m?=1T2 mvf,9v0)S.Yhh<[̦obdm0qro=?>?ƥ^gYVWO'/ff`mi*֙ (~O@d*OJ7k UX2-D{EB.+3rd1iNr~i|zzx{BA4==@s_?0xW'/:Go߃KjHWa()Ե)+woziHF_8  /jb)_-ֶ %ۘd4%ô&f]JVZT8 U[Oz\^E#iM-?on9WcyOWp}?gv Y~r ݎvbZiB]0_HsՖ tӧlN>$q;ӏ­J;fnVOW{/ͿM͉)W((0AE ||L.M?C×/j%@|w?iu78N3[ᇇ13g~b) r\m}(,π/~>S8H=bBI'%'mo" MMJGM$Vrpؕ|{AbP KC\ěZFV;p~SS[Mqn˾ (|%磘QTDx.v&>)GQ{.WE9b ˦~MO< 4. J f`‚ p~@9@ovbns|Sֈ J<%WÏ>~ȳ1zW\'&]|P~콼DASSH``5555.Q_xM31Hc> DpQQN6M>7p/9umìop؈~gMq(g'6a{4}|].R @A$) {08A<+8 q> 8k3>aaaaaaaaAAAp@W9L,*e'|`t]ںQV"fܸH:xōftVwŶ`BP#V )B Zs9\:׵;NӇ/,}jc P%=`lf@`vJF:q.==NN$Q$RP"iP~ جNN^ g3/Z< 1˦PQ)rJ{Ӓqr_+kQzΐ*LUYԭy2WPP__8Zp/[[[[[[[[cg oi}!hyj &(aEMh4h4d/ .E@Zds2 pٖ"J_R=i'<]ӷ%] ->|=WjttP~=֨}"~cfo|k+>?ɲ|OT?h5]{_Etŕ4(AeᡉjաD~ſlvTKϸm_q/=#Q_īN tm.MU;9ꥪy6UN*W(ռPT Er.4{RBIUbk̈́PAKgBgm &6!SD] D0" 7W.U|ދvOPDDzar(@uP (XZ*#BdQnSdtІE9p RIIP0 h;?[H`"$%?M5B|0q"_GGtcR)I/Fi-tK+D'Z7c'D=qBKU ʍgu>tXa5#kCf)BGGǍ8dE(Ҍ-@Y@D_Fm/\F‚ 3qqp.C"1#q!DcRE@@>(i`6:PSC`k@ZD6zkة@FKBB |) w#*QZk~/HҬ}\wܢnp8% `4TU%ҩ)q8\ Z_s8Uk[Qcu1ƄI9T`2@ZBT7F",I(E,Ȣa"X,PPQd`,YY(()VEdY$EXX`,UFTEI`E@(PXKE$"@dP IlH(HJAa"`XL0$@!)XEREB,H,LEDBD+ETX B<0 2_(g F8@.0u>p`P\p7z}γPo%s[wt06{ݽwoSo\$[žx2l3/poo"h黀qbnmBy>qk-=<63l[f _&ٶ3o,TF}MH)B3j.smOp[\:5Gj n+{ͱlzGw{ r.\Y 13;Y!$j@F;&jhjRx |=^o`^8cA';to&@RRU()>3`f7(}dRPzP .vh5/fx@7,;1h nv;Tʅ)aР]@qTR&dԙ$x"dDGAcE<24fM2hzjmMFј& 5UA(!L! &= &ɈdLрM F4ɣ ѡb44F<4Ȁ4 CSѧ 蘚zbjxIC2SDڛM4HS5O45OْȞCT6Hi%&M44щ44ҙdO 44$(0M0h57dSħ쉩&dd3~i@5Siʞ Od m3D=SꟉG4M%+[+*ηkPZR0ҩrJ.51iѰdYJbW17SZ<[Ms#(!4ZK;ޗnt{ډzyNAa6Y,*IBq2ZXҬuas5틶 / Ya*]aİ,.G RKd]F2hFM(ef[.Gpa1d.QYôA 0y##`%r8EN1 fꯀ aouq K֭: T )%L%Ĕe{̞MzXϖH+FM[g`%; L|+2ggVR4J,wõNG|.W1uHW &-%Do㝍Dm6D]:Uю9bу@h@h A  ih჆8ja&^)A8QW;&!b01  ``  c ` `Wabd0r xC+acx3cx!`! c<``0Fc31E ȲlFe30f0M|(o|, 7“``0f `  `[-*TnSI5 ." b~ZBiB""*GTQ$Be@89\{K)A%Мs<&Y5k[Z֖-uҶz+Ѭ."+\jQ|N##qjRĕkk_%y]ť׭%h镣%)!,{1|`#""%:*[roo>/lxۤD@DMH/Ld c*z\f4/wOh;v3Q쭭-[[mmmږU""խimmVѶѣk "mmm-mܹ33eme\aas..ZZ(ŎmKmj[kRZF։mkm-mmmmԥmmmmmmX dUUU@UUUUBL L@ TX &k-\mD˗329 =u!(FU)NC+RTekd+kZ Zְ)Kb*SoiDd,ŧRqC,jֵk!1__1+1c2)JR11c1c1c ͌c1bXZµF()JP98lQZ tq3 ZְVrF+Z֢k[www,d1{(\`cq[C+ c,aUo{1q{(Δ+ZZ_+VꎯTDDGc7 ;XǗ"""9h x_xS'I:Qޣ~_%|@viľZrJxR*o*d<& W=UJcAUc*3D"N*]϶^kҼ+э_x#m?p+#h9hd ZBU92e*$t**Uz~ϑ=CN;;TUb6\.uʪ&0WIV$U%]R"aYff)bT~zm߯Kii ʌY|XV*Szm DDN8!0UTUEUUUUUUUUUEUX,0[WV7fֱV5۵jw(UU`UX|,^1zloy^sy{EH';<7rs= ]S _,ggk\Hש:Hq華>Mv᾵Qŕxwݲӟ*n>-\$9uleW>p iLk[VYk([vȩS\_'{{{w)yU`IJR% ^U$$ B(Ĕ ]B_i”ۯ%R[֕R1W~e6.NƁ,|5%͍Qc)&VIk QuMTDPR;=ܪ|@nh`3WS 6**lbLb+ 1$lܔ='A+]a ` al( jT "֜bb@HUEG!ne6C\l@!,7Yo04("L MF1id1oG^Un qf&Ke~\XK<_ttt#ǥq{q`c ְ-`+P** QX[^Eb"(K`QaX,-XK`l%6햛Ih-ZZЖ@[B%QBP4@QNSJaLkrY+ ]ƸPP-j[--mm b[Z( (Js36v+ PRsg19ʴB1 'w9 *@*RmڴZm[KiQlm @422>vWY bml7PXUN]ė \q*\Jp07oM ` l/J((Jh   (DJ(h(BhVjˉQ@`͑(DPyN{ox kVw9bm C ~!HiRd hZ#+?gq !nכGzMl63A"EpQi'W|&''ԟSpH=k뱵]yLh*&R\a;?@Oלٛ5F$&C#I=\ Y'Ɂ `AF?aYC * d4"zd'öܘcd]aOc{0)?'Ո I<"DlT0r,Hrgp0-" F>9L%L 1OQX6Ɂ:0 Q{K )`ckOba,Sm]#5cl=8R~X ROǼ#jk0a_KTՒa[ EruAJO&K6M4)[ ? `['4"Y>)d=7fhfr٤,%,'dvNL %XĤ;0VBYٯff 5{ *d\p3ff^`v}1 NζR$NE6ײ~ֲ2ٮd!TE)?L,bzCA\O׿]11On!d I|5LfX Ol v?jn`cd JbN۷ ;nI"fD'tqaYCSQNñ)Xhruסt/ni! =h&6HwaQ fYB|:"Z8IוA{s$r%렴p(gYpTd}+=X[B ۪(/]n!=jD.Gh K3u(%eN҃2L "޾``cBpdTdS+'aYU`Tv*N0zb_MQALV;݆JROOHfLD3l%;YaA/5*)I>ҵɔ+.D=>EeB\L1?}5"egqFPKerS R1,G՘B hK*@>R B~іܖ$aJ-B~ nO6c Pqd>8֒fr`g?A +,QT(jƆX?˃Vn- *ROgŽFA?}T̓]a)R?2aS& /̤EE=c J@Oh -Ad F||`i`0>o3]E2PIﭴYp0$~k;F0-?Tb9 ;M& ĽEr(eV,~h3&OkChO1H_ʶ BLFՕ\=А* "I5j'VfЏ}()-NDS6A>^-MMi"wgͥ ݢ"pw="#eϿ$O##${Zc |+|TBL텙,{vR0d꽫Q.Q܏HT\O>R9&SۉL$g qQ#?Po<_M906 LP-CuʞAߡr_$ I SjJUo*PТ @ e1%2-4$3k>;8}B" bB %=/;}>6V~^4,S:JP)L+<{bZCj' clޓMSSVmIbl`&h7#Tۦګc#bF2$RJK(HAl%(XuoAtm-a TIJcZ+i1&SVH N2jxAp11QV&0i%Z"T]IM6[VB! `B%!A[+}"dF *\KXaKXm6BЅ-Dh!@!B PP]j0$5DEk5 ` ؖ5ն l!a.mmlKam bж#lBhB (B Z.Pb(咱EU)&&&'TK@!Z8:MXH ,"$id'@1I*P瘰C&"dXAaH,)!E@PK HP, +##"WG.E^4ɡa[,)a XF,匵6ؖb[%`ж9v  (J(h(BhF**T]&Bz%TnJ$IȦUUeUqbJ^-o^]p0Vjof~w[l;35?+Sn~{WO,7Ol>U~IP9!|d('OJ}vRn4j]j_/*}{=L:?gJEJ!YKZ.0~Fm'a?2?M <=Nwt7ؗtS7쯏+eu-K@D<:~}7;8~]w]?U湮lQyz ȒbR0 :|?(ݕA~6guUKYy*bJ{[j%-ut)" HH+;;nEvUHFH%_GU4ƜQe V`eUfBʯ_5K3,`xr]S{k?f1e[ \! ?Hf"N',U9sCHk$W+qΡp SUO/TUUNo LfbfBX,"dd ,dQT"AAaPR $@F P$`B,TaBPEK}yz;=r/az3>rO/%8̴|ܗR KJyY~̨_.1BI1B 8Dޜ-l2ӷH//J:\?C ,.8?3[vng{9{Ck/v{Xw =i:=+cK9r*{yWz[>e儹rmMO|v $xt94sƎ4[*/a=y.'sˀS "DrY -Q4|FA1bĉ4QKwwW$rto֐wXqDB|t{[>=]G9σw;߂~mi1忯7=vQzO{:4/x2Ŧ7>.@=W=?Gcv|'eY{[\ml5XDvϫcuMh;B'rIո^SDy &U'7)tn]{mχښxv#%m qhyIW6Mckڭ? \˚|S^߷=sgg}kt;6r'QYJϺ괉6RU{I@$/^M8Xf-(]v(Yb.;v.ZRTǺʶ VUw9c^|צsqjO7xFOkל:^nkƜvr+<}YIjOgPy )s/:i>9ʤ?;,'ڟ{/mz԰- ݎƆOWjՋ3s~W8_n/޻\Ənvta_{0XRLʀǛO]~OQ]]b.'!&佞OxEHIGo{mqvVW<NWm;oϵ {? x8y~UxffC2`5<[d'8=S ]+}Wyȍ^nͥ3j3ўOޭ l[ֻZhIlχYjYu9}ۢ.;Nc}==;M G^}o縱:3ހ WQ31k NFWt}'K/Ka[v fKc}^o3eB1ITI眘FZ༪E:J>kC-߽ߓ~;vѿ!>.>-7 (MTI$5m.yko ?*Tv2#wgnuGTךz|{@ADU)tUj*UL*DYE"\1 zb4nM_8-S, bcYjEy~*v"jj i-'ؿ(QSZSVcT"*BnEYEFlEIHFLRIJ[ a?UJWasLr6IUڌܙ@U=}'-}tرkȧt o.džߛ oF֌ Gnm mmkWPX R`J(ce" #{r~辵ڥhVV4kl]'y15:Oob4@Ђ-e6 PcSebBԎ.鶿Ӄ}-]ou;6n+7y k7YOZ}챰/Ɠ&O!'VU˹wO.>{t0c{xų>NUnȇC8RI;_FϐxA$:^y:f ?ug<E.1rGc5zN:qiS+pyEG%TE zy}m- }-Oá~*We ,jlљ͵˭γ𺾙6;ھj-EԮq>/4oosjZW88lMݫW|o~g GGЁ㿂w#MoaT[!č_Tg6ӴÈa!woM&`]߳g f@@8QFD%&J%A~ `z%$F,tQ 5 =R u+ǻc(ɨxW/\Kx7cq 2cw<#TQW +s`YTB(C {* dY1@T Y,@Y"őEaA@X 3fR̢#2FI Z1B cYZ6%s}񸛿?;gu󎼈_5O՟7;D_$y$ |4}4Ow$T?N"iqzI>NϧM:BiV}D䦚vRM$M4֧h$W٧r`2pv:-(Q EJQ C000R'}.2?}Cc%u'uΡ̀u]Sާ]WU3͢Ø{\g?!KDRJ.h42o7޷Ncf嵔FOPGz] L(ޖMG UweDpuKT|YDtfۮ識u?ț ot矹eiB>6sz_}<}]|OwS⏏/"c:Gk84i#sFUݍ[}WX6;ȇ= eg[O95'Ѽ$wys\^uKڹs@qp y]˙"&cb6NlκlJ_}SɬDiiY9yv/yyy$OGΙkkvS2XWxD|/ynkx/ `H h7Ro+aBS/^oooS[/-`m דL14(n5⠖-\DD秷AbD#0"ŋ.{?YCCOB/OfMW/4JJ5SSwD;#bTADF ٦4Oh[}'y.[N=[k\s̟{'C|OgP#Ŵ'^_`3Yq{vw}-9^O=Oڮ_CX5볜JyK~:񪇗5"4G*nw{?v>?[mMz~ݷ 7|9?kbZ|q|oS㲢8B i\ gLLH8'mOS>6=&d]xN,)yd?)#v!)tU=p=9) =_wn{ ?G@ϧ1o3)]rrv}Bq "kU{QRNy>Sw~[fj(()uBr7UojթP_oϵo/qi`n}v/^m v,v44"~ voN7qwt "@ gxM1e]%`堈jĤ%);&UB)QZꢼ,#w~7OIl#A'#s[:ynnQzEKh *T_>uN @MCx|+TQ ,77 #H-5\xL?Y l.QX*2>>Yʿ:٩8 8:tfΝt|B'*(B˔&yE{xq*T:VDdCFf(Yçcnjr.~Q=D"}'=BǩR:u)өROw\%y@*\%ԩRi{{񦔁 DK6ޢ38 XǩY0+܂Ɯ?O3{JDB!% }XSg=M3} *RRJ*aT p%T@\!(kR:|%MY&L7qR)> pn5TVA@QQNEpA.pĤ S9Am74_TKt2ظ*WiVZ*յVZU0N*Ҭz[+Vfqq4|_brzb wB $KeLY*1TeT$db(EF*"1F11AE*PbTDDQ1AX,c*1XF"1Qb""1Pb( 1b1X1b 1DR"*"PDb,Q1Eb V"*AU,b0E1A,EE1AF0b1bb $ LcU";,D5|j=ӉDBtӦΝ:tӧ^& C-N'~%| 0̭ZzOQAWmmcDO8qޏxځݎraau=-Z(.]]^;?Ȫ"H1?(bR(;m|ڵd*=g1U(]Vl.0.ƟA#1&igm6[M҃dEh\$/tg& ~]/E*U)AL=,Gp@ZHRɮM b,0p픅Z1 *XC( QFf# 5A9ل~CJ L0 )68l(<;D*t_?XAj (4 'C$Y ) ~ ځD4:^#Aֆ-Dz8?cB4$"Dw[P^Z"ƉB Xt(PB قCAN+SqB YXM 6V䉊Tjb"@R Ea ,L^%,R̩`RH"!ę)%>w[>u821Ȇ6666&6..66664~X^v^Yg/eeeeeWCNAV,H"9" \a#8>0`㼱A좒vWl㻬^[llAնo-n,'01P oy0˫VW41 wpG-DLVLz ot"> a' oVs25,{>nϷ,/[8~ϛ=){,!UEeY9Oz[vտv \eGQ߷|}*7y{%=?;^v?~wuK;% h/?T}OOD}vm/[h9gyN}&LC'5C| }u8x3zE\,.߻_v?L;$ 52dƬw5*תǏ$~Gl1"PA]z148}9-}?}/ĕ+_!pݖ@I+"|>|>kYm(#f$a?Oۚd(@28 egs}<[{>u2-;v8}^Isiz>7<[lےvxm" mV.mr٬Q*ZLVWVݑ[lZU5Ub4." BQ(HF,Ob)Qd ؿMoXa*_}/ Jvao#a|݋qHHy?w}`Irt\gZ(6t!rn`n~%@I2j,I+bC2%Cj)02q3h`l+UZea#tjΚs! %Svv;W(_Or 7mE'mtK7m{?͟u6Lu]uWk5~5k:뱓jQcY'X+/u-b,C\2y>(ڶ"s+WruN܋>侹s-S-Nqc^8ɓj]qd]ƿHd8Cv"i&@\(r@\wp<$<ЄdM4M$*ii_~C?ݛ3+>/ٖ@fp'?+>q2 oxK4P[ȏg5JN4B An'JG6)8mˇUK%_C.J,@,fxyY>B%py߈l-͋DH `* kBxsQ6^9їΗ2PQBСZK[4 [grFpkK`B-xn5xm#C;ΊCUmb>9 &2YMNH L5?CMwm`'BR`uW7Н-~-e Z|B=՚RRw2S9j/o0_]by|~\FqFwp&a1.Të331e\Kab4`$!6e<Ωɘ(4ҕJxj%A1 *ソUvmi @o|yd"?̨Ae\{W15jq}$iƛp7Ϸsn@6{(Pl}oSLPᶭiX'|C4QQS|5hb)d AJc0) 4ȉ'EăyS9Dt cn]rg GGU_ſͨxV= b֜b3kjvn{<ɞc|4550y̰q^8Yҹ8o^Nص[KoŽww IqqQѴf]+ù&#)25k^,Gm.B__6@?,AQJbqqqZPQ`?{>v7ݫo]˽ͽ]\K{njN2vsU˛ 7i,,f#Y݌0}C uv6 [ a|a<]fZMkZ/hҿѣF4hѠx ܐqt&9rI$aj+'7!) 1RI%I&LEƄ|# ,) $I0)Q j*}f$=3~f %#ӏz]7~v6cCGK<QEF"11|/b%v;.4b&ӟq|E]N3-FlpS?g "bS3}`ڜùSlOY~vϠa px!E?.9c$1s9E6656{61Mf ]0a~a~  C HB0)"C 0); Eٝ +>K }v&]M}vh{,6V&ԐK*\ܱ.K*\ܳ[.nXH!?{ "2H\xca۰)۱6݃۝ Sqbn ›˸: MCQ E55j +yTΗS_]6h1t7oL}:t:lN ޝ8}=:q:~1 Mç N 54C]eѦ͖TXr:uӦ͛b!X@"9P@1C$IJJ҃F9#6Md&*B)QܼFH&А!VG4_Tw?Y`#G+/e֤G6pmmEf`!I⺞mfe&_5Vj"<_~ETV VȖ1[= cù?k9kS|(!mZ`| ^4JSD4tZqvh(a|X txoͻtnݴmw}. D% x>W_z |\ ✩&CxSWswjﯨD AA9$ݜlϑ uϥ4}i leb FLx\ ^ڤn#湨8n+8.u8(ZDsuuTK[2zJ %0]of#2)uu^1i~>k\eP=xg5ߕ-ig̿H3 9~_=f_Yؐ:A  j#B*C[[[Zzӵ5_L@T yNa`,<%dHQ %#i} r&:Y,at_}Up"] aD kVZjիVz APCR~b5mz֋';ab9 ݢ/%mNK=Twm`E){XO9&r~GT/&57t'!s7T 9b "*tTUp*yu3sڱeÖ\ n@m}wr[VZZj֭ZTCDIr;rm@ xL8 Uă P,PC@Y ШE`,+,B af7lXoIPIVXX8󴰽[*0`տonm}u~3\ok-ιW#q*$2Nqa.ᝃoP#Sȟgw|zo鎸:|4 1{8}sVgς]d̥Y2{4y}wd|@`o uLJp ֎\t᫙''+.8 z L@|CZbx{܏[T7G?FEEO@|HJcrrZF*4uFQQTeT.۶` )W83uyROV+Vh11k4h0rg#gZ:Q񕬖5t$tS94a E倅(?CFyr@@5ph 8m,w8z:KMMNCWWSR ڋRoAK7yL gS+R %)0p'f *NLgօCߟ/C1L.ِ{&qєBxDBs;9|A =9gg]g@~̂`8DQ󳳳[Qf`1S 7œ,e/frN JMi8g& H$o)&U6r["@[I劑>7?3=nV(p|m n8lL Wڠk T*)Pddba \%Ěrd&sԚS85^zǵ-B  ;>rM2ͨDMJc*O83Ο6c86JH|BNP03CZ/+|{O[=/g6ja$>LČN㋋ظضˑ@#4):VG9(P?w ~Ocj:ِ]G7A d< x;]@MK0`VI&`i$g~now8{WۙnFB׫ڝ/<|hNG?U5+KKGKKKGJEޓ'p < [,p%NnnnnnmT0106"1\F-!-pr+X?3;i8uNK݈͋z돨!|'?jMyJb N,|H'H&eZldrtsf͛5ٳfͅk3m3" "t:4ۨp\~swyȉ%)>s%2+sv05FԥTDw:\>n־cǻ}u5ViWpmhȶbM{X_'W-K70B*0~٫;hiQ7kpuNcòċִ> L9֋9!`ZfR~,c{2 ov;6v]___Bb7p+ 8PІiI0ÌfƘaaD٘afafM0 0͑0 d3 0 04M4?@ia~iiii$iiq$y~#|_|ρ|ϟ>~>߿`8 ~Oz<XbŔޭ---%%'79V_3~/gh訾Aq./<>dz]YYXk^^z׽^{=^ׯ^z֗ZZׯv}mkNW:t0` ,+ܰ`X0` ,9saa___^6 `v X'` 0Ml&W6 0` 0:M}}}}}}}|f 0`V ` ,0 0`+߰B-ut5Ы^er^bׯ^}d +k V]rpU]WW.r.\awUmTeQEQufQ}_?a|7ݛwV뿸_][VWs jZE`rh yGqi84v4ݩf 0@af 0 0J  0 0͡4M4v8yti4M5Q@ZjիVUg;s}o{2݊c~[zNz=G:ҬXXbŔԴj_\m'EECCCCr9G#N8N'qP&iI$I#Z(ɓ&L)2dGڒ0*;56=>Ae5"[6|~/eoۋݮeى  ~Şe'e.vw̝g} NvvvzRz{֞O]'''9997776 ɰNM̓M':(#'&OG"G<~4h܈h۷n]!eY|Ἠ,eՆ_\},U<[ ǐ"XG͇Y3iݼ<_;KKǗ?n\r/U71C{=ϼ1oe'cun8L3wڸy$ &k}sSSS)zbI$I$Β(ʣ":TQEQFiQEQnS"G>4(PB}t{Xej֕ka|}{ /E x @o(0^9pP0c1 RA$A$$TA|8AAB #HA I$K2uc 0Ɏ?8㛡2qÇT /+1\&tQQd88FaQmaHmpn&ہÇQEW@(a?8oG@ q@А8#.8 qEQ@p 7n.(0ipH 88PI:"I?KI$9rQF%0 ($۰Yz@"GEPKHqyPf&%1 `%eVvOF=}ά{2HJ44HM``AǾC;Q>>4g "4AA ?KK= m 2 0:xY̹ 3o[ AhV[1{翥T{ֶAt"8qLXXW)ӥJ:tpʍĺ 2 m'vK1^e^g.2APPPմpt؂GnܸѰ snrnWtaӁ))BybtƐ\k/kub-Qim>[|cag';Rwf\VIL%19׮ׯ^h! A`t"9F8ip (Gyvr2CHd(XXP"ab RpDAX9C*8J%$PÅXDN^ aLL"`CݔB%u589BJ BHTiSt?BqY~}5=aJ1Ō4b7!EYlE(8gf3(UBHC)w`:HpQˑ9T8W; 跷 #"7erpX&fw")K `PjAG2i\ P;"o#1=`7j D<';uއes75ϨÇ`oY ͌6@ ȝ$3})0ӭCNUHHS*o{Urobկs@#}߫z^9OrB*|ƅtn>^z(o7yo PնVL0YE`AP 8Pikz<| "w1Z:ı&(`9[  c@JHYo1sFх U2&aĉÉ&e-$,RREȟZn\txē>odCH} ~_/`zR͙+ FaӰ,OWG6kճ?8=nzG/az/ۓl[}:n= Q§TcUQxV< )RbT)p2eJA3N#+m6ݒQ`Ai!)9;&>BNMI5EPfҼ쑣:&j} x NKWm~w^q||P1NAkv6;P͔Gg3rI7 f&:f&֦VfBc4 cuC#4_5VsWJӼ|xu=A"WIL X2Iϳf;>Q^~?/WxoZnefTy*w۸ˏ:݆ĄT]U9 iRBTUTs2c,f\dͬms~CiET4+gGtmR5xX^E57/MXxd;3n㺻my)&c7{7Rs쩳`\M 8ݡvh°ւS`IhYZM6R C%P$US!O=jfUUY~تAX{\Y׋6BNi5w"o5. 1넉.,,CCCCB$#A@(~Z*****(**(* UUUQUUUEUUUEUUUUT$0AI , , AB`PR,$ŊE$"HDE"B @QdH `P"" 0*JMI'!xĔ8)4y%&RYp7V #KH~ybF<$́V*MIi.[|9  J`ax6"X?ԌHC(}n7ŜZ P+?GPz'G7CSSeLx+)Jt"a C&Nj`T39+' 7I(Du̓WL&$Ni3ƿrF8G Zp+zbPl-+*e.UAoF.ZyyvyyuK8!J^ޖ!cb  &WbƵoqnd 8M< x56x̹0);F$scwie\.,tƢy=nKfY!ȆW?W߼އ5xX?GV7 -'¬ ?DۧL? 7P쳘ydȎAF(6 oDPfM2 Z> ~BBB,(@O}mxxxxGvp6of߾s)J%:"v94߫k_qvC啁=yOyoujݚ}h _»+ׁZSލrjnhm0-ocaP =FØ=19[_BzH) Jfe% 'vURu $O4:^]po1;-Pw+G?KQ MҸ d`%2`:%d6jDؐV ɍRϰxq/ӗ7 Ï2cN &55\lfoXL`qPAyPp__X8=#Af;ui,$ZV-"=JxC;ev>ķc^)O+螻gdC%ilMim6a3ClhL7UC޷)bQM(Ǣ&c劜 DWc+!lVV#,Ε-NB.H_X?x':IJRS$5zTNSRhoG|Mz PSSSSSSSSR1 fP\ 0$KZ*a+;n`v]" (8pDc(f~(m^^^3ʺdNg].Q+V_T.@ Tą*@(vfD|W}mMFaf{ al-c`Q[ #EQrրF(ibS̲c =});ye7HSKT4VxEm{ֵ¾O֔JbOtTP|:ªObLə3*H,PRHb#QE +T #YX*@EF D0PQ( DYY"*,`(̌0RD@^l 8pфÃ7NFi8zvi7 &R9r)Xv3"Z8p@*@ BB S!P "L)Hs7);ى@U +;٤fnA) (Pi24A9CNJxp 9ڎA 0i0h'$A SfQS5 TDRyCN P*R o0B" (CP3" &iA!!"y @pL91!:rIH@0h` r0hN 98` I;ADwwh Cp 0rpNf “;; ffwpdDfg'AH";9yGr`nU' 39)( H5(('& 9(R9 L pfffffgpÇܜB 8 C`"xpB)RxtBbvDpj:P@p@C@ H@x١A9' Aûdu3 CC8p3ó @U'w& @w'''p% @ ")' 8p@rxrfGT a0ga'2EN0( @ I!ÐfDsDqe] A$P !9rN"<(w&ADDw N 90 wB  0  99rrpN30ppfff&&f&a999 ;pffw (%@`nJH9 H UÐqYAa@00`*qÆ `r " (Lp$s&a#pJP@RU5(&d@j q!L0&l rq ١ÔdG (8& 2#PՃ2:P8p9NN :Q@pfffdG0wD;PÀ0 NL33;7 Ð` ffg7'w'fffffrp 8P8p911LUPfA<qpN@|@ @pBR$R$$$)w)'GtH0@@" I)ANrH@A%5) '&&(rp';A98 i}tz5 Ʉ"JH`Ԋ B @P b;f" @ Maq)@6;B A!)RD"BD!fdBA9I9Mp$( tH# ;3RQ)HBH%"JRB$@)H B$PR( P$ JRBRA9;"% Q`ba(e0`ECG$@8 rpø33;v`;_4zRRkHzrබ{@o!@L#k*X'>KVkLRbT?<ׂ>{UZfyÚ 0}p%>O>N2`Ba8 jGI$qiJPH k9jB1DLOKWS[؂ alBP (- (PBT(P$}~$_8jߺ5VZɩ(TSgآY( fB!: uFVpZDp(ԓlRd]^R2ܣDM2J3B!\[2 %CSú?+ryg{kWXkv]d}k",:""629mn66{|]MQA lL|wv fET 3U]9"r,TyH,!}fR"[6y)2]7_X`ȅbrT|Gw𩟟????>6~~~~.1A00i e{Wufԯ^a4TQQT!F5`cb}V1U*6>I%‡}ý!_4!Nag*!t_QX)}`*"[<(ϱ} hwu`\ܢL,F+nǗ0 ޣYcA!%KP9;^a pR:JOLT3"!`ÆnjZr<ɔ1l1$qhѣF4(ѣFDl,Fr]ޗK|͕@f3KHm \V$4TETRE̙2W1̻2͆c n]Dfx)I~s1R5j+j)NUXP7Dhłib ״20{૟wGWEm' mmmms=ɐdYi)DMknVo~}|c#haf5ٸH8[\KcvFh1TMZL` W1Yvzs IJdX 0`"&@r `ECh55G(oqe~?ئ(M;Ng]S`{ńY &'NNGLF6n37[}RQ1U00(NXESQEtQE(ϭߤcc|&fN )0fF =o)k.f,cxeQM(M(qHM(qLDESz(oE%z(UUTDޢ((QEQE8QEESEQM(oE"qH)Qb&"mEM(ESUUUDN)XEXE"oESx(QE"(QE7M"(((nER(QE7H)QE7HnEQpEcϺ<':tx_۲2vf"3a\$Iqג%#0}c2 fXԣAXcVZN)Pa]`es'cQi}_fZ>^S3.eo0A>?WMt 2}#=M"L\C *]]60+ w=o7y@9T]!DDUL|ry?&L'ϜΠa!@AM"*#QҎ~ܿXb S<3shɎY!rt2WjͦC0=v8|Lϳ#/Q;I>Q ؞T˰첲TY5L՚vCkk !sO XpO?M=W>{^po-z7GLJgxrg,?V:pC}oﵷ'7}oTUUN'$pQAٮ 6?WZb*8)RU(Rb%h! \JC \l,fMV sad ɖ]ycw}l3>}3et\\{r5ecI|s&GA?mzI=FjT>o~1im(S] ٽk-KX%htݻv٩ma ; >?o|0pm>WIn#}_s/2tv!w!XV:RTFDsemtw-9wyvt.Q087uxhnP/+_ٸ|4s\}L*((((s>>o2?s;Dz>(̰dD\822DӄZG[ .WVS@r njTϺ35H UGx ͕vؙdv&=3җq\V;sw;ut99@ DEqm0kaaCJ4Ӥ(p0f"#X)p3Vπ㻐,!++(>h>0ޟ{Aʜ@>j*,\]W$4!;h+@qkx\d}@D@uEyN{OO[she=͛{=vgNa!.) r/knA79{ccc0EE+0`a,X9GV "s8KBϰ:=E{ޚu'v=ϹXVY2%['Ϯ!qoxl*'9Iv sVE2zЏ?|>}Z%8JYR 5q 5L# 11G!]+k }w3;SHcCĩBh1#pR\2٥Fo)+2SR1*S&7[~},>XC?egd$v|S2됮te爬Wq+Y?PP z}x_tO+ \ޜ 6666,'lmceMI䞙S(P</ael*,G/A)t8GϞPUPE@0f`30ff}?3~w/OֽqWtz~,tׯIF'Ҭ}V8V__^?8Ǡ!8j)k LZDVk:Rm8͂iQ'͟%xYkP?flںu5%|% ;0k3Mwmj%>_}D=ԇ; nH+treJ\@y? TT;JR Ϥ="D4R>|H~Ǹ_G{=W=nG QRMX LL$0v ]lQ5uuy>Em}sTQQE{^k?}G-r(BԴi bP(Q+%1*%tgC}+r97A)Gnod NS :w  ~Z*"ҧ)U2yJS ;%nbAB`LO?SuNzWr?|s 7п7ya7Lqc9)XYn['| *a`a~@O2qC@`\\(4F1ן6Q/OЀ kڐ Eܠ:i3ó833p2 bտ3?~e`D-:mG ::6:::rttpxaDL4LDS#CB-LO@}~M(Ԗ)&y}\{*Z%Y fv8G0n^3_5u@ ?(~/`>z_C-HJtRQ#DŽ HU4noYav"!&&lz=g.R^DOqZUXA2]pc-CSgaasA|`>?;@pp* 0 !OK(("@s[edZժ֭eZjիV[(&0]JK IDk6a3}Z}lJ) Tb0W˷hCHs00\9ll~M4 Zix<k<5wyRWBjիY֭ZjիV!1ӌ t*r `11X.&LL$IU%D,50[1?]JiO PzwN:TӧN;tDET0F`hѣxeeb06Lgg''uÈ*J4Eeo؊~ 5_k|þ{Wp&d#P.RvP> ʡ!>XjcQJ&*(dJ(*K tB`y_[K$,#%O)p~LIp)lٓfn ٳ_?B"c4~/u܇@)ӧ^*Sh1QXIJ(*#DO3| ifo2|%-G=߉Қle4L+VZ:jիRNxETJ))qfI0Tf.Ƃa\&+4X\48';8rm.Z-oy^UlȌE^Y[ad4tWrQ,9컽/VC(Ōqg>8_֬^qn/7mqBȂ@H3=^U D2#_ߨ^@uZUUZipу\c:,?>'?%e-mmcF>Q|((1&eUzs%,&K!e7@T"T7%hvיLWuݱp4,H5xa`>DnK DkONN]V C7Z3M llln6!ln566azD@k n7}=mڽ2PQAo 9:+n۵[[qXD8`<6l|OoD[a՞Ó{ x,J*Q)RF*OMLAGts_ӧNN }\ǰ,F[IJjuQI~b$)G]1юz+._ౝơ4 B( 64P(ı=dA^ v뾯^zxH)ԫ:DIMƌ&}11F ``DUf(TDU ;0HEHVB "!YVB*E V0`, Ąc!EX, h"f12vuЙS2 f6iqqqccc?Ɛ? Llll[M.)0 LLHDMgo[G&9~]XDm^|!O4Dĸ@r8fՅ{2 QV*UƤzXɱivwp4÷><'bc_zvEG*4h>FK -СB>:x4Pe%%daNWᥟj8GqX1G +q:vsӧN;b FEoŇ2W0 [uDz}w~/u]o/1)Ofz9.r.bIe~Qg+يޯcsd̓Z=cɁ\#cf93'٘aD7v'Xʲm7 smnZ<,m,G-eˣo?;0ًN`U5tQ#*l</aaaa`XvñJ++)++"삲cd+9kv,X嘱cl&,o<,ZY &Օ_Ō,, e`aqccnɰJɛ>sggb6!1Ectŋm6,X k6!CcbōՕ(.d++/&%ddQY+;Y}{L6I^Ai*CstqqfQDpŒ8ơÁvi\ڷnv8(aa(X0G8H"3I!$H1$\rȄ!rI1rKIrM.I&1DI"I(rPc ((Pc(΄( (Gtӡ( 2 #rq $g$7 Al8(QȒ))1 $HI$L $i5$ A8r9G(@8; AEQd8 Lq0Dq$88'0 0 08( 0 0 0;oaqp0 F 0qn0øO"8p9B $I$  AyLaEG#.0 ( (9Ç|Qp ݼv>&3|lA1qDhٳf6f̈́hٴhqq;۸lݻb≌ y DI̱Dl7&[7by\k5'7fsYk5ysY8A6+KIϮϡ)wevC Zccaal[~լV0-0i*ќYV%kZ[|ћIf奥'իVmZ],դlIfrgK|L 5RXXr lKQ`xkp0a2{#vNeattp尤3ihm V&w晳iя,ohѤqqqtѧZ[qqqpZmqq}pRTkiWUM.fjFe\LFL--p0B --[2ZJյZ{s}UUTjկu>wS֗[[֭Zju"իիV㭐߻=w"˗>rQ+++++,++++ PVAfQY\&wfή{r++++++&@\edf˗.Y\ruӕvK.}27̤XIL'Ls2qoN9+OA PB8xhsphsCÛqhq!8Ț  "jpqqҚ"p!I)MNI$I$:AD;H@pSr˘TQ:tκu۷nκtӨ:rYe\s,˚.qrˎYsE;w˝,ˎǓO'K.3ǏM<,,˝ǓOPDŽvZktM#V9jլN{] Hbbbb)k̉ĈLU8U81: lHft mEEEEEEERR 4444440h44445TR4540OG'Q7r19g0jWZlիV"wF+Zjf իVZjVZjs9|aի5TjVZs9Y2(AH2ea U@P*TʧMF*zG\rS^yΞy<yM"(aT1Ϫaatqq!* 1@9.R)QE>Jt}ӣݪv۹N:tө)Rn:tꀢ ӧTR(r˗.Pr˕N\N˗.U9r(UJ((ĝv۷n$YeY|-'haUHank| uhy zA`7vc{l?Ma<΀@ 8Ct C :Tt=~?ݾ^?/W=/zgWϋ豾{Հu0xvw9+#Z q`@I|0|ÙÃa~õ >jCׇuP"Ba2!xSCq C@0A=;*,D!=Aϛ^f5;/=֭{3\ |ojnc9'{6ɾfq=z=<͙|4ߕ]kk-9U o%qX_wW9wuohcU{E}~/Wk/^z2c8v/lgm?C˯=s|׺|Z>J9m/\N}fq;cY_8g^_w9_ky^gk}'_}<z^ÎKp3Ǯut9+o=}\wu׭랶^~v}|{Zs>֫@%c{}3f N?#FOk<~4'PIO.B0ϔI?y a*g`cxlTܠ>C'$ڄ*5!ZOTD+^5U9U* Ni_~^e?|/PdNqS«1!$Ꝣʪ>uU_WexOjx#}'p>UG(O[+z{+/eH^oW1jԬU|^!/Ne|[U_U^j]ԵB"^p=7zJ;c]ToVsUߺO/zT:ϙ'# _|V W]xP.We [3.}/?e؄gx\W+{fL2e9$H"F4>=>><8n2%ѣF3y^K/*L#ΧV‹Lg> 'L2%-0-p/ޥhX^¸F5[[j6q&V> |;kK[KXqnĶ8%FTg^]ԇ"V66.-[<\O[o}v%4`@@(. /01 }\dC.etua.`ݘ_$_%z޴љ0{=bh( ((L79`L2H9$ɀd$ A!;I9&NI|L(̃L)_5_L[//oҧL~S^&*<1qNaVL `JIR~e%A.ҲN.˹üeL0(``*e:JPB)^^^d ¤8~Q/ʨ[[c=TTJQ1 J@Lol(uS.EtǘN  Ĵ!!޻1⸂<seDG!b#٬2!sr!J%߇sU?.]?M ::^ggh;y}{2mɉvJ /_=_῰E",|99Z._Ie2vܻwk.nq.p?h錓g|,+{Um͏΃?Tw8ͺ6dH{JޅLWEG$D*8V88D50 IV8X%au'VQbBѝF}L|8QndD.,YxwNݑ&ZdO*OFXo o]^hc PC$BAjZ [֕^:>SF8D(plr9rPt9p\hhhѦ@f"""_[lO}FPPn ZjDVT1$%: |ڞOX6/K66az샚lCUS.Zjҝ:tӧJ:tH b*` #M0c?A:k$uyze啫><*,gQFd{@!/Z>c%M*in,rKϦ|O {*)Be;4N t]CҖҗ'Fƍ.ႈɔ! |FWITk%rR5"TZd?/]hX40D V A8P*4tjɓ!Ldɓ&>*""PPPDFt9OCeբD89o) :&Z} qZO{0UAZ̳̭ 0Pbӧ?*kժ(^ޭT;.u €,E1E,d$PHE`HH BR)agC漏xp8M, +v30 tE .KDI9ue˧[/.˜$ƅLbEXD*Vܦ2mhEQ APmG33//-Fe*  佼LI CAzt0a = ꊠYA (@'n+·P_c1cf).9T9 Yl^'~M| Z#hܶmf6m" -}&m^[/7 Zk,! ,l4h<~,Q z[+cF.ae0[v~lٱf6mٳ`B"#!??o}ֲfsͶtJ""ZZC2\q"#D7o,oGqNy3+QԩNHOjTRImUSɜL~\ٓ&L@#I2Y|8Z.`1$)X H4#|zwѱoؤaM/=ྱXϟ:|W3ϋK瓞F=;c*JpB3&j[Pi>{.k]O|_C*clٳf̓6l$^ADjvӉ J&ĈUk!uĤ:- s;hrGxq1="!@KP%~3[ϟO?e`>:T'+9@XƑeԳut>P(e T PB ! )oY,(nc`.."- @֐7}_cu'Blk\Wo1|09Jm`d{P#D'ןL.-K)`=.~O뇇x8888'Ww 龏PJ{ܸKEf:rq`"+#8m3[l{KMimCOX j 8rqyZ?AlZ}|Z`U_X?vAiOg{٧0tJk~g^_]c6ZĈ$.Ѭ999999910 p,{'oi(iPfA{pDA?%ʹkP`c~mQuGyt>VԔy8{"""vm 0b~AVZ*H.qno'R^9˅VK*pRrjz?q.Tb\bf0֭Z2jTU2EEETPS(ifŝIZ|?SUا]ͧ8VE0=9y_3M羿ގ V39OYph_i`eވ Eq:?;;q PδlOW<c<ݟ砺k`sC8xDkZJaZኪیB]u۟_;=W >_xG~}C66 اcccccoA.6m6XT"^OI-4*ZbͪʤBrە#kz3Y/"$*//??Nm6lӻLY<4wR^^sYx>fpm BFE3ַ{7 ޣb>b"UPbeJuԩ"J#ˆ1SçN27=g `ϳe..1a鿯|"f=_ZƴV\Z2^cbccc<ƀt"{>wt.#X&_ |xZ: Y9DE[';h$O6B [5!Ì< >ǠϞ8ԡQ'++++}w{|xr&M[4!Yu9 .df9uOlN2|ϟ>|/zlkDJY4dM&]*"WlJIVE/F1\ HXbؠq^zGx'Rm2ϟ>{ϟ>_Dp>ѡ7Blٳl(ac+ _)A~Kc}* `4`Gϼ҄ {uz2͖#qBeӧFii Vʭ 816BL D<ݗqw[>>Wo!ىNz#9#076nm">C$pHb5{ycZjn^\<8Ypg pKNƮrcR.L>΍ACGk! }euuOV8x[ӥ(7mP{[cy9ߞw~\/x_q> *aML._Uoߊ-ܢ/2w[(YB//rV3ǧpFDrlF{r҉ `~fs=esPApxD{˹u}o@fIMupҖYTd5$T Q&z]/Jk5̾T v4搪ьp4X'w~6FMwԑaLU\X̃ ki'''%NMN>On9Cw3:\+xU{?ة{P|=u]^3.um?/^Y6Ip}>O}-NSu:NUjZVU;/eq9ClYPNg.ĵ\m.7RVȦL$JL~( ~~s#3;/c;҈;tp?O 8OX'LTzJ( r[rE~&vo/`:,r믂oKaprg`e WOakВ4y#Ȅ["ׄPNc8G< s7 $<'=5Q҃MTz"_\ 2a$UQӄ` .B1ɬ``:7"bfkA` f3m1ϐ٧c R$RE)DHI$@M4ׯ^z0` 0 0 0888888yyyyyyB (PB (PB  bŋ,Xbŋ,PFpH EQEQt_7|]}k6?/FA>ATH=QÝ?:_'7=/9al#>dzI}Rr|;>QZE4YXzʼnCD3qPG/F71>} uIhiٓB7fA}mgdl5Dٹ)0Ƨ~x<` &q Bu^T=ǩz$#c:ȁhM9\*=EE EEEEG.]EE%EE5E==========Bŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,YQx5.px< ]}.9y31i3[@CKNmX5dP#Xt\滝[c \1$^ ^鋚ҎU<nW 5$I*#1ʵ*bUXh)*+M *27[ZSf\cq*aLS)SXi]6S ʥS+֫eK#fRZeieˍp mFrJc)qhˉrmcQ\aKS.aRT[r̵cfXb *Mhִqkrˉuq.ֱƕ)3 Vˑ0ij,-\U-֭T̴q.8-֊G94Z6)r\rckh[qT9f4iR  2UKl.ikLLpSrTDm%2iiYqT\̱j\`**5Иu,icS.enN&-8m[m,\:X)  j,G&[¦(R\\DsTVR[FZ5L9)c2\0iȹpʩqШ* j壚Ms1S՚j4eFK꺬fe+ +Tm-֮Z[%f4rEeq#bc\eR2F`18nf s+s3Nۙ(WY+1kZ`ri3C*R(M[RֳXLk̕SI1jřR52iUsi8ܹ`̰F[j5ts-֪ʎaT-E.dS2Ue+qəq̳Mӧ*5әu3QպZbcB#QMY\Ӭ\6M:E:3005U3.e)̦TKQ.8(TF.ef&2ԨT0WS#1eTW\)UKiQeTUW"e*֡-RۍLs؈Ҧ1ӅDa[M:tq-LS q3хJТhV¥qffG.5211jSSS.bk24.f1յEk31qYDV-)e\pf1Aʪc8h`[FBѠɕږp26234d#@WQ9qס8OSq˷_BZ4 T,[:BC4/Op]6K}yN?$+(X4iB'ff*D Dtжgv?O'?kz9-np=gϷ{""x#2pR.˻(-ZvLZr r''kZy mŊR_\{¥?, YYPϲ @?O?c++++KO̽v<ir"oWEAQP^;HȻxѭ@.J%]iMo>=*~=嶎qe#. =t_N'nM +6 U`*(^'== h|No̍¤C2̀Y68ETmn3mr 0dZVtȻ`%Yp6{aYq4fg3}9~ǿO܏jU3ժ^q"EBʴ0"".F10OGh>c9?{)LH%$4̗O~jp˒Zjժ֭ZhT>HJAlՂ-K:t. @ zC Q$Q裒/OWǧe|{,+<5pV^;:SZfrvܚGȏfArQ1+2-"EQ $~:Мu$ѣE,R,[KA~iHD"'f<ׁzm&>M,Svү_sioP(+w zi1&mt˓pԟy;'!O+qwuy*B>#\.<ʙX ʻG'졆 4Eݳc}8ƦtBJ^@L& #:CnOU<H6/a-^]\f(uvfcΙn!& ,!xB"X&@㸏edsYͮ_mF"JaaaaWôx/tN#jy}]L?'' rq;v4W/Lpu$\@cLoSΪyy4hN:tg>!]#3o4:]ury\W)S79bwcmQǽ3:6N9V梣G=gtiGGGGF} D%*]3L݉G}wtWaw8L|~XC9gM5!Vj*naNIw5,(PB΅ J(xh>T0Xc0N.y$X4;5Sk6pm~yyyn[Œaa":'%w_w} fwwc (PwB sHX]raQF7=#:z8~wc,1,gQṽ<¿,c00/``D0@O }7oZNa>DG؊r1~.U *"#N? u8ߖs h$Qh'd?^w4eN:tçN&/͛NY콆L#Q`jO%!?Z 8/ppmh 2Oxk ],\X&#;(w̉匐 4~~DZ,~valI>3Nإ"L2dɖ̙-B""M;\m z?.*ȉ̈`D,emێl|g}1Մ+|edi;{]Kmٟkx (j߿7n 6 `}ÉMBe_7l~jjo.ɮ\^~Ϳkx_^}[\cK@@zw'C=F鿿6͞gy{=POhb_d\@⸝8PaBi`U7/l!B@H,2B2## !óDwU^aÖȺ]YWPwD|FshW?oYg[rggf:w3`]|;|{CBthN'AMO"4oNsb{~|L&G$.'&''%z_^{ y/X@$S+*y>{%b71j#YJqh) `|'`"{"٢uu~<+uYf-~?ha~Xfffffe<3rDC>-Zqt@1!|2+v1Qݘ F#7G 43igyl`A*TRJU> #1PL\5NwqaSIrɼp nIh%ԶOpo |O2+1< јT>&&&&&&9n`ETY%I5M&ve THȝ&*ޟZYaCCQ .1Bٸs&$'9C6\]̜$ȾCrކ Ef泲g$E]&79)٩x<}OtYg^~ Z4hQ:4hc nF3iO/PJ4ѽb%0uKr@Ӝ< 8dL&O$|o zՒҥJ WRL/W;UUi*Pb^Vm^^]j_d.k<&8JK`מ, mԬ= 9VbJ (1PBB..LB.Hnb fmJԨswtVɮ *qqqqqmKP8g%Z0PƕTrnno+sK7wKK$K54E+Fe$A^nND Ik\oi|yPTEB~;.8ɉ5)*E*\ć&*)>)ԠZ"<{p|~ ӡYp/rSt'5HmTA+VZZֶm65jǫRLt*XHxAW ~! yx']̏w'rzNٵ0\[w5x4`Qsk#|?N:4hҥHhhBN0Yqtph&d}2fɓ.D.ADCoh؝= LCsz"at'qb5BWF9UY8> -QB+ r .cqyyZ6X[;?[}Ț%b@eZjիEZAPPQ/NmvRK^9WOR$ + 4+|΁a\ѲlqND !ގ֏=U K{KEWJs8{SE@8Bˢ~}L_o3 $mȪ{,'ϟ>|ߩbDJ`^ Gm,ru*nZjիA,"Zzg<9mQMvCͨ}-3,ɡQe*A9\91N|Ϩ;=π]jچ|Q\y?%ה AT\joM]Zڸ8 kU*B ՘3HDE,Ot4VX|gOP'~/ RuJTRJ_ r!B (a'7=PGc  TL+]/  6mH*/ ?Mgp;?%}1sF/.3$Eθ΅LnVt+q3]z]}QNp?"q rmZ`2qqI$jTCntۋ;iӧN{; !Å ':Vi9Kko~T;*N"(|/v'؏;5'7+7776777776`db@"Y^nxJe̾Zyۈ[ I|jQ8bD"3jKS">Ddd*{x4dd?שY큊l߾,T –JPQvUˉStCټg$XT7sH*o ///-KeH* PS)(mFܷE1+osa Tڗe*(%[L))QLvvILJ)RTǰ|/:NMx.oS_ &rt%E&*OXZuuK߭]c*jZ\j[!]]8ּ֪mqSELELEb\E1*(b(i6a~BS5Kvᬦ*6*T[)RGEa&Kꪻ:x f/U2U-*SDĻDp9`4b' e˴˹˴z\uNxX$yw|](nI~!{ ܤJ19T'S/2}hD`=_8O o];9e{,NvUK?_xIWѥp?n / %ಯ1^KYk*\JYr؎.[ZKi/]Zi/ļ[axS%IbJT\bKTmԓ)X4L$pl%pT$--e`_~V^p{zĽy.YwK[//׬zļ/׌az%^^޹GKo/X{xU%Yr]˗-- yrʓ*M7rnɻ@w&L2l&L2d@lMܙ7rdx7rnɒL2dɓ&L4\rJ%w.\r˖%˗.\nl\rʗ%-ɓ&L.жw&L2dɒv_Iw&Lh[;&Mܙ2dB2dɓ&K-^I&Mܙ2^ K.G6dɓ&LhZ&L2dɒB7rdɓ%$ɓ&L.nMܙ2dvdɓ&L/}&L2dvۇJ*LOPy*TRBrI&TR [.\rJxgpL2eIJ*LRʓ*TRC@*LRItRʕ%I*TRJz%RJ*TOpTWrdWɓ&Lh\Iyw&L L6eq>!t|~}3G ILf83+[Z[[YR@KDQNgt~uecmivmfmB1 ;UUFc0a.I8 ygaQ%݌F4hУFϚ/`P@¡BB|b2dt&LUjXa!5bwEιv~( ݜw1]~(.n-f=/rD>Qd{lȗG-X:p}/9?$xbŋȭE)yD[^C>iMFy5fV9=.o6e}?3>,]{' `Ku:Q ](8- b@>_yeco}iW\A d~./Ue-24hωsvdk{+ BӶ?22i}Fݓw-mW//9˿CS ,c d!+$bXYXa00H"q 蹇][|?2dɐrr`̳PUZ-ũw[JkKmcM aDBt(PBADӎ"dɓ3͛zK}AiVm8=9D M>7n4u]XСB T9CIWJYLU0*  T3ttӦ 0XPޢ$8GRTba>.32"ѤdLi14tLM&I{D0{A"N֋:t:tl`2&c:544*?)v}|Ӣc۩EᷓO-gbG|.A/;U:$B~-?cSD:./Ŝ*6@ À8`T"@BJU׹^ B&@0G;WQYggfMHpܹ@Q0z2{Cj96>[3nrtoG'Ez;l"#gua8]SZ(;8y\#no[ɽtnyǝ[W0Z9!90o_4.֩^jqX`9/m(3 9%S1Kr~ ޺t<97mJs5HֳI)S^@mݲ5a_0W_5ܻי!'|YDE[٦`'g(='rQ{ߡXuLXҗʹZ_VLKR7T$#ȈzV !A,rz #:oӁ4:?j]hg΃Na"UYƴhg񜭷bFWb'fYe_? _HmnzI.6->+g8ɪΤ(S?.p|}M:^iٌ:($n/b牋FFOM/\>s'E➫&g#k򸬡?tiui"9w'7~?vl|ۯ}5{>9ڸ`U+󻊛*¿3Gl|xjHz\dGȹ^کI]'N-_I N 4iw2uD=ӫ4"ޠ8>ơzX7Fk|23_0Wu㷮w/=~J熆I qϣG=j2g\t>`P#wW->'3d.>a43]v'Y86/ D }^QxNNl+BT@Qσ?_$gxquur}'ɲg\yK}'mVfڃpVݗzgcSEz]ǁit㡫,Eu/z Rh`}*pa?-VPyJ3^&G!v/ۙ.tO|FJJ2r_v$ 6^»ׯV{~W3wX!En9״&vt|F=X7A9%&ٟC[y3lzM}[e7doߖǾ%`Gwa;ݍѼH{'"Z}.6#>^;=+# H쓇k:*?l<˵|"QsnJ6qcLIx1#WǾ~MP#Y37T_qw/{(a$g?Q,y4W~ӟ$sPl=Kı%oPr]Y$A3M?zTN1`tf9>ґ4IQyL&kT68rxܜF9΀fڧemb`RyӈM- ue3/8a-ʩs=tOLzg'<w#mĕ5mE8l<&/VBC`. ~1-FM ŘARVV_Qir^cZyԢiGA.psz-{_tubP 7^n`ٳ^ac60f7qt?#pe)oZLs^uX{)|o_yO6[;\ kYd9H?: D>zznNU1\B aOB 7-qnms46wqgw?o@(2"B(`zWm xT.7.Y2`\) @)!D4s}1ć!gUHCH&~~~{sȏUDUT(DmAmo1z"Y(ª D@3+7a7ϑhfF k;m-I≪ '\q"& 0dquqORJ(ѥJ5 ^ZJ!L 4D$_/thw@}CO.İ/;/e?eXRD0AInO>|9ϟDA++++?ѡ}C0QP&MJ&xY5DA^Fp'C?煆QW՛}C4f4z993 Ldɗ4t@$_v'1Ao'i5ٳud8i`\'G͕_g8%[P\.5zȎI޹ !ş۾}m ;/.+^A>GϢwG=z\V)s0 .ԬXn=OSy:Ox}G} V}*V)H)bb^w:4ŋ;.5kD0qqXb42"Bxb!-MAjTPZ6E+QŦgy14Rns{͟ԶUmAk6gy]yE}v)V{S8T/CGlmb!bZ^?9}?O?O/+X2ŋz{:^ҘiH0F4OdYF,^IcQX.+t,Qbǎ(^Ш±s{4/qw]qҧ-X~}r*R,8j|Ksكt~XŮc'`p*^.òRbvbWLDG3N'/=GQ}OS75@q 2fVŋ,QO3|ϙ>g^k{ 6z踚yTl|a\ K>}Uqٴv> _pc*QG*hСBY?^͇DHJ*53ڊ yd]8`h<]}/}"12`vG?閪:$V jՇV^P  @pDBsmRTeZbDXSX]#!Î"mq};/O9E|U !/N7MO| kz8z6vM@tPޢ$93,4t.>?kZXW3'ij~ӦMtӮ:O?tɓ`YȈNJd~d"]gI}>}Sg<6ChɊ)! L9996w2=3m?>#F̬ 2B`Å'(PUb$~ <^OWQ,$k7ܷ@е 2ǰ-J?Ӧz+_E05Jrt WOZf\Tkht k;.oe0U.=F{G/2GrEv^KWhMզ_kOΥ4>_5jGlÄ.Z"/LKP|6츏hڿiwW/ͺ'<Twc\F.}}5GOX9j)ֱVc&fdS WտTJe-uit]sLW7Т>Ajm;D^)ӼJsnmQGwMQF֐We5ho¦9h^yQR-ZciVr~ʪjUYD\s-J b){Z]W^ss|r 51~uVnY=՝b@q]M̿7ns=AhNҖf4rG' ^pMύ8c*`❯|Nfޞw3@s>2|?w=]Yc;C{7D_K=љ%⾩xHhszyrC.nK}N;6lx2=\@pz'CxwGFFF&]ڝza'ɏ } vCގ}TokfþƫIWw~ax==ߪ~ut8iЏǫGEW_?!ߧٻ^^=#cCC!T-X!ܩxC/R5w9f&P/;$NDEvnY%1~Mřk͆+W"ĥ^w[xEF d͆qTnݢnQM/|آ;ig"3+*,V2(N0TN5֍)77,gU*6X["]bѵGkXܴπkZͦը6nnS2޳8ZW?2+OKGEr-FeӣZ{16)nk?/]=x;y2T]Ǡx8 0 >|`o +Jۀ5cPȫ 껌0 nJ,06 39ݰe.<K`5p`gKiWx pB#d Π7n{v ѳ{uԒJmn8>j^-tUlnKvn>;=\ѣjyOyeٰΗhNly3:w[nzn{=i׬p.jw[ O>>>xsd{fuy^n۹zMsJMA -]`J U*L J; PJYzJv4Lj[,7S jyj(<6V=JOJmjLDhɣɄ&4R@4MF'QLhbi0ߩ4bh #AL h cUPJD0cHM 14d&22hd1Ah'LL L h"@M4CDSdBdƉBhM&IO!##Sh2dh jxdѦFMPIH! b4OOS'<&=6O04dѦ& 2i'L?I&54LMOLOLSy&j BH4ޢhaF1&)?SMބ42~SʞcMHS51SѢy$QISS=D~j=%3ѨGFA4h @dd& b3&L&b!` &&#ɦ? 2MOL2}MtyoQG Xj@5z0tff#j2Qc1i{MJe\L8q)_* 9>S*& M3ZR mVS_,gJ#LkalwZ+92f8.Itլbgk84n e#MW]*Hsj=փ,7:Uq+u` b[,T /3as4k t\kg[AFY)ĩ(󔾕Tzg8|EC Cdi)L0e4 ˥*)*g{Fҙe["2vI̽^TR AjTkx/jQ[bе/@/z0#9 [q{U4!xrl](3=Iɪ׾-M;^Zm]44[;+2lIzgb,J5QV+r,1v4gUθƙ0+UldG *:ş|YƆAIDPq3(*.|JAP$q BATU$]Q|z?rȗ@%M1<~ @*ªv QvB*/,. 'Gf0 M/2 ڎۀPPQ9^|FGE>!PU>JFt* 8 u"[^gV;9ٙ#Sskes!̙:g'̸*΂YY1K0U IrrsmjZlI [e9<&rxZaSg)CIl.B2M&lӓ5Ie7FL^O IaaHd;H$Żka :;hS~ލ2`3}@D ! B#E D| &A ?~$CQSPFa0b{pwH7Uv9q4wՂJޙ>M VJgj22Ht:ܑ#rKȗ!yo#y Re\W)&R3)e@FPn\nKۅۅĹp^qprrp{ܸ\.ܹtܹpqrrrۗ.]ș!!2 dr .n]^ovrdtH-k d1+Z"Y| 09$έ+3ٴHhX#HEa+ QI ,R u XF0*EE`UB [tQ@ A/hQyTt9:p"ڝG˥[JeJR%Slb:h4c~(z ꈊEDw-EH* D@gqoqqqqqe[35.D%"I$IDUEUUUUEQUdIT`o.S&LeӟN:uU4ӫ\X"* NDK!UUUUUTUTI#$J6Z+[/lYYYY[Z4ҩ͏[.T "zWW.] onݿj^^5bddhxwrb%%~qi@1BwWBĻ4Hbpԇ3aЅ2C1.] HH@'b%܂v*Cb:Ve$YFdC2 ;!CrwwY*U`ܡd I" `U!4Y!܇6xh(D,f(઒;OP ))0w)R$H ,CHP]ؒސ bDuH!Ha ^!%Tp( <!û V 3a <wzBB`ܣ /C;4!u$8DĂFD@)9yܡ*!8a@. !ø!Ĵ>y4C8`]Hp PHgZQgxX:;RC:dа\]ĥZ D  [RAAGxQRC gX3C0 C EHYb 8W 4$@* 8 mxy C#RCq !BhHGW $ iTC+! qHdBM5CHqrDĂCy!!D)LȇG gP@`Z$bDe$BBBQFz  @p!Hhwt 1i"JDD pDC L8XRPݞB]C.D @@p! C fCH@)   : 0p֙HIW @ 0`JH$ aGRf@` p  V2 Cp bpY:Cʲm(lԕYܡ%򱇔1 #։4 @!x8"Hh IHYCcv"XH4 ;BC"C0f!`C8h * \+=ʗe`,+PxQVe!KB¹%bTSUvV Yu*X!U@Xc:@a4"@D|:zQ`ЪR(UU$U@{/~Ȫv΋m^AO wo hz Ҥz0iI8hVRS>r'IwlloTAn|Gr -Ol2۬(Dw,*OT< >HTio9 q S7zjHzԯmQ""o=eBaC~7oo3Ɉ*ފPP"bH@_/i4Ѡ24AY`EOUa41w' yO-4CLH6> Vy*dȀ!FtS@un`\ 러E+1 O0 {?G!z4=FLQO~ = C4KJYL&U}~})"0~Рtie# ϥ2D}iQ\8;Ѝ BPK$%FTrdI=D==)[ efLB<ĩp0+dϜ)2{1Qp'ܳJ 'Nz[aHy¶&,H2\ 1<^z%d`+$<~e)\%İE\14??I6v 2} .駿i۷X_-w}W.vxqq0ľ]x*Tҷ|̎y%UG񛑛~3Ch{NgmTCU乩#Ukٹ7N? 632'od;߾gu>vtR~CSOvT@Y APA@@h~A^"8EF AW'@P?(DX@BjfB678PU|e@O"bHxZK\ $U%@(# # v`څ5A+*!*t=Z*wޢZk1ɿ"]!A7QI2+DБd c$KnC H@րpZ~:oSϰ'aAWERDEPY"  ,") ,`,Y$U ,"E"Y )"$X $,BA`E`$XH H@1.` a6'{cuaw4YpؾǯFǙ~]P???Oq4j'ݥO+p _R3[TJhٔM835_rɆo<-I~t͸5u&Nc[S[F{6;}o3up>/w\ɏ9DVf"*v|I$sPo,) ]lv]S* |Q ϲ.¿ܟs֟>k~nT  666666տ R1#~d9!* 0 "H HAyԺJ#|wΓ&{Wh%O{~ۿ,7_~^,SigΧ LJ?!%JwGrFE#k*w&Y8?eײ~_[o2Q'NW3$p T.T7\{w:s Yn>@;X*Bn4]isJ\aD[-'2Hz֍,+0>\)b(b.U@@OlP@DEJT$@9qX5Xׅem~}柽mwNwygׇ]c=DzS~oq3t 3Vf\lis|=.Sy}ɍ~ t!޺_=80(ŋV>53'5rpw9_9Ʀۑi Mᭁ)_dP)na;*eaq.KaHTF AWOCj|jZ8 pFXd-2MC3N9H@6p%N^#?jP'z d/*"}+G~1:?gm?t~V>S7o~G9[rss:'a{뼄z2:܍e']Z[o,WxWNQ9$$}{2}$Ϳ}4Ǖ/[647{{﷋s77ۿ>־됭죽 Q ;[tnx3*i04N+OcG/E۷yp|n31VVWu?YB:Hen[q0C& E@-F?·v%EMՈ'.}oyg촊Mew}7OCҦz:>'3Xw޿%qmoV5Xqxk]#㗻v4hߎ+Hp1? c\Oȿ8S<3'|(&7G0[72ta7 4k޶,l{ ڝwWwxE]ml>%mѫ[4iqgsXhҗpyjSÍqGӣ.QѠPBT}JT}^;Gw7ڔCBSUVDoSs9jj8`ޏݕ":(S;bDA TA>EdEu Š +"AR,R )"d2: u}H@A (A(A$I%PiW2w"M]oui/[[KJ6PP bhQEQERQ aHUvApkT (%zt{;l +fSc>7%,} (֥D?Qe+C&n?g:V=< - z_n2?1j64hN 4hڟ ogϝkc{֞mNSdo;H " Km\{ yi8* W5Dl^aq;kc 8Wiy;O芽} m]LH pfxTT sd{^~ӍtU_K<ߢ.Z|:WeTt|p (Й8{q~Vl2yl(9&grO{9y=m*~~]H`bTCŸJ`JB|%DA="_'Aל;/W#D9!;lqMk.w ތ 8=]rTn}949.u jhh^HDL.6L2c4@gH6'Z-vڳi)u_VEk@ IRL@H,T\Z c5$1 B+ bE  RWFIrhY,8@$BIr/-DV`hc$I yL{O yOtIys;+osVEMߌ'\.Mvb{='q{ !'C99?n&^|T RK*p9%\*4_p ovyn=ϗϞO@M9e89jk<3W {V9"٢}3g{}WkKxC?܏f|*|Ѹs#5Vnr/{OC_zZoOE9{s@zGhLa4Gy)PPSWպ f5et:ϱo{ϭb@zߘ~߲ ^HII{fnW ۷ s{D@ D@0le7^_?M,{4y7uNcV}Zڥ*1eo[i陲O81'ׂ;~ Ü9 FG4܇kuwζX=b<*Υ4 p/ZnT_oȽOѦ%8J™ӥI_#=WrO5uUa~֯o?<>'bb7n3fo'?-=0cL&1l&JWqs#֍#̒v\D6\sN2d̘LΞ#ab̗/)s&;qٰJ6$} x_z,4E >s<ׯ6Ioocp @S(+M} ܼz5Z^V_QNVcUSפN/%UQ[EUWUETQUU誢BߢKѢN^}uTw"֊E/~^'/ݒ/'_9?[OGf? 5_G {&o]:d)>]j!bhvCOxS|Z_Ӂ̓6r^Ǖ'3؞~={8NrS7C9^>3F}! B=/Ox:NlX1puMԷf~ n;G[]MQwKw6; ɍ#w_fo|Oeu5Bb4LΟz_PocћN6D*+Nx-&žajT IOypV. IO`&^5P!e\mvTb0NU0_qamv8AۯM׉S|gO?Og4?Bg& =g?]~toI6BRC4앃]=`q++| ܎I?}@̇nu>]2 o]w{5Q4k[lyNL2{Nc9~D( h (4N M/rܮW'ěY38{^Z{ph>0LJ_p˫Wϕ:3&z^ww?`>ϳ|dzAިmI{]m~nW_t<}}Y{CQV J | R(T>n;M8{oO>I:ϪkTvO~nr}јy Ӝq'8z{$^.\yyxO##wk87[|  b~1wErs {'rVe=%͕Q09s Ako[)ɓ!Bx>;ƍ d >4mtge.]7i\\~? 0crWoV[p]JSZJ5zٰ^6>UY֫-pU 1Q o^ڶ?;>1aafT]EsR ߻[ ff$L {S&%TKǷ#59߆3= `ܹj˔\sR db@ kqMWWS}dsAW Q'N?I$@lx{xR~0K l&qE\* *Ŧֳv" _2zzuӯ^H 8yDSПjJZJ?s0Q?^D(uv#=vm0xl͝٦$O#:ף?3O||Fuų;uY={#Ir\Ddd[*FFE#+PʁLʅ2ʅ2*2*E A eT)XFFVʑS,22T22 eFVʆFxv Jj)E*զ EE&QB55 O1U&UB8r*8nm[-ڒo`W. \..Yt~Ke u]]T*uwT]PX.Wn]PF sQ\qB\`\]%زڅ[`55j(V j Rj5*զ ERZ-,eBedd[*FFVʆFVʆFVʙS*PYPY`del,eBeS,22TPY`delXʔ, S,2LPR22,eBedec9dedd[*Re eT)FR22Ta eC*#*PY`deldec*, ##+PYa[*FFVʆT,2P,P,2LʆTY`eBd`eJeTY`eJ*, ##+PY`del22*,##+eLdeleBe)XP,2Lʅ2ʅ2*, eBd`[*FK+PYa[*PY`eBe)XeC*#*Re#+[*PYR"/ OTsE{^?#~>x#=~MiJzQJG)pTafoq=⶟3`]ٖGG{BfAeƈcQL;~\ DYȃ^ =F4f)MA d{}9 b $V@UXEY (I H"/4R " ,,X@ ""%?c@ܖXOv(iiWJ-M*|K{Gf0lsd16 TDCLs_yF0ԻF>cvFإչx*J>?~#HN% VZjիN2,H4MvUOwFxRNF2ֵX K0!.}_!m{G2q{f|N{O_~E'Ǻ֪q~juΩ~OT:.? ۷ ]s~oR]h*~($@)\:j=kwVg"v b f|j=qj'@񶼦r\%ez[d Wa+bȏ,掯smj1y.I ,,Sot7{/t.ثpš臒rfl9jGO6vv Cɕ2`_ӠAzI=|]U_g]n\Gv[ 1}#j9ܛSc7Mq{n4į7wɸLD+ADJ,/ᱎ+|'{Kze Dqu*TRL:4jt "E,0Qb:H22 TKe4E(iRPm(-AAe- Z[B2Q(QbQbEAX" #UTQAR"*0F,PUUEEF,7A1]L~Ϸes,'l~xX 7N)Or`'Bh'T~:Z"ߓw|??N$VT59oa/)JK#U%"t{{܎i2Z@YAjAjIRgZ%q:u+%2ZZ%cB|\iK! 2bDdR C7L8*ZP@P9`,ϯh}?gRC$}@H; !;nŒNLjv5^&D}O{ 56s>ƽ 06l>\/G+֏.p/O+CZz"/s1jA+G '3U / Ov~^fLÚ,0YPipFbE2UNv=N8#cn#}$ 7iGK8bbO %q'x2ZxT1 ғNT4!#:=z~+G7% +_sަ'Lcef77N>O2cet&/-k?G?p Fu!XZ]7ɥVp.qxsƯ7̣>g;LY\='ߺ9ʮ"i Ɨ/we›*T, \bfLeYrgtYdX㣌}fYu#48<z褊(PU%Mʳ P0N!ϟ)̜PA(( |"o;ðu9B G|}=SH9y+t/w|~'aWq^n_hI$c<ݳd`ǟBMlMj~ nj~1AW%p^ٕ#?e2?Cַ_6D&q,2r1g=t|9g2o2TK|x | Ye6[3q}3uU5+/)QaXɾ#0y򳿈@;U bۭ|oxHp$+&; UYep;Nm~QdSqv\m-mf Eh(DJ QA NI=QMoUiF5`[wDNqNWUΰR|ޖ>?&.o<^z-+שޭz&(hEv( w^z7|K?-3~ZW-A 1 $ x$]egC-S|{9yc|7+n&s.L8L:OGFM}}}{=D@DDb:[K?]o@p)e[~ =韟jDB g `Ae qH{-Om>QP~A4_BD Vzw\G&<9Öf?]蔻b<i^S8/y?򍿏?ll?&9{]nϥt.W&ͼt-t\NY^fW3 z>Nq3owlMqoU\ }^tEGŶlVn&ĆEאZ99@2eo7)t\CrL6I$00!+"LP>aƦOQYO"zBT EI }{QU'JpgYҧJk& +=-Z6R{;<)I>OSOn}>Dt~*~>NlyWt/aN,* BY*D RD#]b=xJjN>'='1⨞ɼ-rזhKX)]uK ۪۬YtQvvpꋷVn`.V]Qv۬˪.\Z\Uqfv֚`5ME-j-5 MFQC:`Q`5 E55VfUFU^ݠ[-(+(,XR,V$H&DE~FFF#EꋷV`vx򋷖ט xY5 ƲeMbk,|cQf‹V]Qv˰U.a(v@^YyEK۬˪.Z\qj嵐[vp⋗ v-Ulj-YmEk!mme֖vGj-`\?˷.0.\`.\UҮe.(uenvVk.n]PW^zyeo-/07E/ .YpQzvօ"t RlvI[^Ѡ\qշmnlڋv֖zUFj5uuWv eo%ڍ]]VP`5uuX SWQ5uXLeZj[-ݵkvcaj}oԊge]e(QZm~mͰm1"dNgNg϶ Smv8GlyZomlcmvțjmmdSm7M_; JILt{曛QY i_˿է}Dfw zljQey# OU&&y{ hح򭮉ˋK+R-Ua/K'C)Bcu?K$V̙kn ֒pI~b# L,+++-G0{=4Dّlb$dbt?Q<_Z?M_K{kYoH'F@bD.D,0$"4E^Ԁ;DT"WƈADPqQD?vQA]~_S~[|g Dr(:0Y`-mmmmmv[]VE$UDEr@}O^!<-b  H  zkk@юMx Հ~Xं qԐ* ,RCU[EP~-"ZH*E!" ( C1`'(i 181`,ɪX ,` @PJ$(ȣ")"%趢 "MHP$ ;Cfh26 O RhJ_!I6@I"$0B$X ($Y$XEN zZ"H)mms72!x!"HERAdRH Hd)BHA`*<) B,)Ed-  !8;?SiX媄 UܘxV-?^q%Ų8xm^ɰ 1F0@@X$R `(F, El(R l%(@+!d1{vJ~sitygi>oΣNl;W2x>^7.Z)'=}&A~P.qtJS;nݵJ#yH4wO1>c˹rC0JYf"g;|]o=NMOOW,=O >)R" /_8:#`8v]buv/ְ Mt] XH9=\@q v}.vv:6I: K|?zM'{dY9P()MhKD0wIZV;H!IC Q'Q?W}S]K!NI 16!߈" ru˗.Ws6ʆQ4P?=wۼAF4^VDel؍"L/mVD99+Iw>j'yKQ),S )RJ,TKlҺ?|g5iV}W{@|&O6x O({vJa$T$Z)UYzkJ=̼eQhFDkHiukB%5-u߾I \׳5Q7}*Wu pdq7ّ)iL\GB~8'+\j)AaAEQ+<b]kھPa=tQPn^VVȕ%dT!+j+@m ,:6|` A`(T*AEX,()@"GixJ@7/Oi|p;2rRn~Di[[[[[[\{(2fvTz ` DOfK `c'&}&C9K8A^L-Mçčׅ`K,h#ckc!GGGGGG^0!9M {<yiV*Tq"S8(R xxxPX3PU9kxtң ǓPY .^ïp޻~'<*{2,Ss2 V9fթӭZkD{+@Wů_:ezל8)HF#>Og?ݷ {_{Ox-E/G~}OL:*͜iiiCҝ;JY`l2 W2 ?"52Ǒ4} ,SLF!0rٜDXXXs'k-mmK[[cVP~Ղ4"<#<,f)qx<ŷCpǯDAAn ׵űkZb>A3Ӏʼ^<{+kSO=4}_S{ej7'_y_G ؞ 3P*iǞ4hѡF 4hѢA]o+Ȇl,b_ Aaaa_UvQOo8irEpEy8~^v4fv/Q~wg?|QAby,Xcp"A .8p++!%ire!7NDmOwog[XH}4qQOoKիiVZlիV0>9ȵh`I&>DL"B8e &+kT>bGJQF 9hѣ"M n'>u<<NRc! azPġXcV=w3{vT@`aT(P>(PС2=MŢhcwoFUW>&%:p&`a59,ZR 1frz@7ZyAKaq9+,O7 (F|(ѣFPz `P+bE$Y872-bXS(smn/oYR jxġP0L;m먚yl4  %:B0P>3,}_y~|W?/~<ƞ'5t\o]zƐ~[~V 6Σupq&unw<88O8:8<؞y<Ԟ y<A<<O[^k<#~,GNm,~\H\xސ8|n۷i;nO&ƺ_8 {{o7sw{++=ϒ櫫?FGv]-EFglv!YnZUUuʫUE6;6T9vӹ58ܦ$w(((V֊$ס<ǟduoYMNu9\W+kkkkj՝UUK{{v77-r.//.^^]^^]^^]]݅]WW#]]]]]]> ˻&.nnnnnB.`e-)ejѣEYcYÄr\G8pÇ8p\p48p pڿتOiBJKz~ , /juZqko{q]}skMQ߿~ gAMb={xIUzOY$DŽ(ǯ^Vp )j2(ҊLSׯs^Dr=L<91Κvdq3݂bJ$Xz~УQ-4)H|վ߷kX\"DZ3; ((N&OYԂ`3Dg v6>aV5kPOv!DB *pUW)瑰6Zd?y'6g4:PJ3IFQ,6޲m}`kZ `]08g44~'|O_~ <#Umd& kɧ'xCJ$=~O_.߯^W*ɘh  HqY,ڥFˎe<݉cօjT0%dI26wT5L|ik x*1͐%qݽD_G@'f 5p[/a9dѰll 96 L v6669~?3cE֭!#[ Hv7{r)D2Ww%U{^׹"$0wVVV63tٖ32!Xf0(  ;tD*NXpZ#DA.j^ !v{^Pz6mouʹ\j Izqiӭ7Mxfō/{:z܅`E%F}|`CZJ+x+-#} M&ȊFו;c*%q ОNgT}R0 %5ԧO:tS6;h4ۚtzRb&#8|@yc nԩPwRr  2}La$i Qp䡑ËJH/AdABɗ?'ߓ.sŒ(;$+@$Wl15eBš2*TS>J&zg=C( X5֑jt: WY& RUٓ`I4;`` jʇLmVı"jؖp4@Xq@mO`4!4\P7ٰ A09gg,L Viji\dHtYwjJS9cx/Ӗ`&͋6ȐA 0z#{=$ & 388-ܠ t NGNXc*ʽ7AaaP*?k{oēoIH"# A`,XXiGMvG'=\iE2)D811UTALbfr9g3f5Hd+ bj$-͊L Ty;cY~YYp[ZMz<-%dж> h|2hy0*pd0"`☪"Y ෑ!`Ϝߣsg&1& OIU_+U(B W*6Y" ٸ0zΌgb;.\n:w-ܹsNR`κ4F'5f\Lʽe}?0nh%@R@NMbrAPLfL%Q. ~Oу ^LepLZ7mUӬCK68&M{6lv %&e @`<<ٽWB{B'4 Cf!{̇a_ކ0X6a$8Kq#N:v^\ӻtD|Q}y*f1ZA~tqT F{rafԠPثZN$9߸&37E[jV'{q|GMyi0WH}ܐppOޤYy~m>l(QN I$I$***********UUTTUUUQEQUUUUUUUUY$$1U( EE*)A`X,A`@X,ň()) ,P T"AEU"2 (6ڎtBeܒ1^bU/Sy<[߇;Vʕ^CaUM[>TJKUUkM<%^w[335iU[jn{JMLr=\Z*jU]ti5;ƚC1\WGQjUhptFtVuB'~t;u(eUU[__!6hfUUY.ƻ*̊jtL|Bߎ>o?)hhv1Nn'u6vzNRsJ@)x .5w*)bgE!X313Xm\X+x) {TtjUVڪּUZk3EUm $RB N/6n(UkUUUUUUu4WUEo LUQ^[:5UGVf*j%gM ~߳~(L79D{_U_ɘye^/,p UV-Qu5K[j r]VSm-) rNW|EKUE߆.UEUc\]I22f*⪫Uq>S\'<'o<;AϹUU}i֪ﴪ8E42⫪cWauU4i[JܸWUT tk8h{Z-SDD,JPZZZe[btO :</RC@ZЍZjЫVJ{ Qz\;0dXBPE Hqv̘IL~~C,C48Qi|(o." pAH@*)ӥN TSue~W}G0b/ï^ w;C-(Z֣Jg+aq8μFGVh̖`bYW"O& 'k;_Soy[Jy߳\tD;lM ;;6lvn;CDR E!J:l:AL"Ǐh5h0 6vi%]M- 9,%UkTeRȒ'Ix3AA?,~$d\i!,!"MHT |)*c&p>I1qT&nNM Q@LkXR*5H*4HH"/֗5u}1ȮT9!ʄq8|0@iADMT("H"R,(xJhVO:sʡI1JAr%@;PGK%mnT *U(PB(J@4|>"" MP$ _+iMB.X_0>So>|2rgO͟v'XCoϘcٓ/tDϏ㚅& F(Œa*>+?vӵ9pFDUXATEOO式W>u?njjjjSԣ[QG,"R?!hrZҵi#h~@_Te*P007i(DdjRmշCWƿ}+CC3CJ P/6߻9]gj!gnt[>[+뫫)y#y6T낂4|cϱ FW5\8s̔iW8Α͛lٙf͛96W/rzP8ǔilL pf&sM)/1Ƞ(T'Cѵz3:Q-"3xa_3h54e{8 ,Xb|TìO8# $TpA( ׶hm“OC a$6rV|3D 2B6Fȴ&``UwH 0,~/E? 8lڒrغRC ҬFId,8b DD21F*BRZ7ԣBY IK!aH"Y-8t1z}d3N<%5(%'z;B @'5,Db&(yE"~((O*(J*OD(EQDQb&(UUU?B(DQEQEESDQb&7QE7QE"(ǢO,D"(,DQE$Qb;$"o,D",D"7QE7X(ME(}EQ|EQMQMQAf(({EUQ|E"kEXQE֊,D֊,DE(yEX(((љt8e$$$!;jQq6n9V?T<%TaR*8RUܱ՛2m% > f D|LZ4rYHk#R)/ X 6oMpIx^ǓG JnF)ӥNvu:rt0EeZQv#n)|NDKI Ha=JmRj>ݤ:j.k $4@Ç?೓іcʗ|_| 6j>QiS8_p=CwWuG4x6~~wKop/yc;;v%j0GG@E7]IDw)uP*XpO4hA5c@6Jh s }=|sgJ>œBZ`D7x+1C,Bn?2\qx-+ iaHLY,aBA2,P't:O?Fþ7kPl\ƈ45\y>tH(Q#yD.:tӏOVsؘKDP/LD%+(%&x {03!}xYY^t>'8v/2.VZnmjի:Dt) C}:6C4RŠ -ߧVhw.":(vGu?c%r "Blal,ٶ"9\}t[o}RF6'$p XbŇ6,UVJ``  6˴ͪRPDA@MpEZe]2,fR?AFhTЀ2#& xܺR j /NJg<_8?E_Ha)jN:ysc/M/dtDCׯ^x5B^ @ޛlUJO0z\\9%]!*LǧU:_μ~/=vTџ#Ŧn^%b md[ xZ\mt?}vk{(/AA~3ƔCbfgRK*AǷyK@˶Ҿ*vK9 t7nHs oڶ@Q/DRh̖0-aȼK[EY!(TKw?jrò8^y5p4V[e2Vy ?u~wO]SOƪJ'Sϟ)VT C%aZȝ(3ialm@z>ynZmw(P8Gg?O">?OjaU7OM6q(^yw;Ms.Dc-30$tЖɆ)lP0n'| +"DR(Q,r,r@ x]KTd~n?OGUgi=ٳ^횲{ҴuhTPOKJ&Q7 "s( 0S'ߗL`&L MI)2$"t_1:+ygi786cA@O@X׵k__^n7Յsp,mx ȹu8;[e}=1\xwtNoep<{8έh;72O?6zthe7:W;:N^l#ؙa7il Դӭ3ONdxePb&*B"r޶W9؊ "}ȖuM!ătz$ .)Kap5(}<^g%Cމ~~:ɵH٣DoccX?kϠN޲ Ĕ#o h]ûvo^vy8aj2Ζ-3O9(Čx&eqa  nvv{:H].tfߡVJk]=ǑfG{6uJP-?KJG);́ Gj5FIj5=FjSo2AfP2r㦱:A̓jd幽.U<&hAZVZաT oK ;ԸH(SAALkBF'ob(e`KJz ;$;¢~9;]gKqþh=T|DD6A H5$J;c_c68"֐ԅłd#hzC7cj@a,u ~7ƮDIMgI0{;= 1X3HrweHR*!P)~ /y+[3@_t{>^v,ZZYgޠM|S'~: {9H ^ lJ\vCI?S"IȰ8lg\ s%SW #L!QqVq0OSD=/g~Zߒ9?g|#a7^ {7j۟8^{~_PrvoftJ<}_m,t fիLڴݛVjէ>BLڴͫNYvڵk  C8XXNsiV?AVڵiVZj6Z~XZj1t6YˇYL-l]aHVijիV6{VZjիOЀ;B3iNpnm3jզ͐ojիVNsjիVZf.ZjիPjզm8pVZͧ8pӵjիM(6eY,%6^eYf.tWl,eÀ˦Ye`ݖYae,ٰ,B.2,\i6Zi8CM6ZٲqiVڴr;jͫMˋLjVUViN\ZӻLڵj;~7's17]na[m6M%&0-Oi6]-vMjB[mv\>]v]kA\l!ygfˁ!gSgWWWU8[LڴͫNPիVYj +:ͫV7m9jիV9Ulھf,pܲ-oJ|b,e:jeYo~%6eYf.6ȤCn"(zRb2OtLI +"(R#+EV$EdZA_I=} WN"H$")Bm=$3/_+WٯēwU#˰R*II,Jzך?<D-ˌݖ/[-Rc x"0Ubj bBB4=J n8"$idI3ɡJH\WtDA:qF$P@QQg᫶gI,'#=[=Yj-`{WzkvР¹'La===8tRw&JI%6IE}&RYA_37eCZel\,菺)P*/@Dpy;xw;MVL|TDDYb5UNE`^D60ްTBYUZ5jUO<ja;QA o2~׏_W74KJ`B qH IlD$F$PbA( DPXe "֒“[] r%ek~mP.22o9'<9إkb\eT%jR*&Q;_Y??˜uyiL}ݘQ()R6R<ĎEa ]ll\gb #8L/ФÓ- ɭ݅ /_ghf9JY [+`DqD9G\rKN:RVǵQ@P/A!Kxj( ʆU.W &TD-|/ 'KX,tuc?}:Jt/Um]ZuuuuumR37#w )M ja_ }箛R)J5ϩ(Pr(X^ѻB_5m?)|9M/֥a1 OR!rhhꗯ-Y|ճKy Г'@DY#&f*$TA@BTC|'Nuc \!rWʺ4 T vW.]wN8+$"Y0xqLZ ac=\qoq5u?n%%"t0WoYJX32}Lӱx-> v_—V&?xOEDȐAhx"ko*9bB;n6 qը}kYM .XKG\N72ܸLQ/PbMg54H8'Җg8-==/O~OƋY-d gL IrT7xco|`p,ZB񵨈{Ĵ3MeEePvaN]U_{wX*j#GfZ[,ڕنSS[?x FaBb|l~c|?%k P׭g^{zaE E.k m}oݶ kD^DR<0dEyAp a,e-,-K[h$"/F#郿5䣵 `{bXAJ@7}֫.DJ ֕K[{lѱ,D".Y6,DZf͝-*211 YВ 6U0jD`JO8? yΩӜ۸|?/MLJkдZ֋%&p1U/$7#2@*ErbU=XP,DJoN>Iq:q4ON&7TTwY?C_tYҙ7"@s.y=wub?G{39;`{>mP./?:4 N{Sؙ {ꪷ|'i$CCp"GxD1+v?z߷$.Pqz!,!y#t OxԧP.l[-eg-eH)۵_ E蒽}QćEc_GV IUube=^WSR_VrleWÿ&Aˍqg[6mzG{UٯJ—__)y^4^Ӡ/azK+9K;5,%ׯGff/5Z^/h{F/Wje.wk5j~˗#lwua`pf6iͳ6mѬ0ڵj4iZ" Ni.[!r<<<56]t%'Ic&v?#<.K' d#%ee:tq.ݢc\\Q |߬'A `Yq 4D]Ç8"$RD\HK)qC$5É 8] Ætq!΅,P tX!haFtXb‹hQWD ,E 0 0 0 \aa 0Ȁaci#Hs4y]84HѣxF9~{8f&O8#44F3|tWJjrQdɻXp=ñB QQQ _ח`K__`<ѯ16n4ѴիVZӵs1y s~˗.Msq5˗!r~?[.y\Ҹ8.88\l8qNn).\=C.\spÇlÌ.\۹sCmOC9p♽3} 6mLٰx},s8gA@S9B΃vҶ РƇAeSdƅ )>}* ϟlS|ϩ>|Ӷ>|gϟ>|K}EU9TQE r|9ERoSRN*ׯi޽=A3<I$I=A4T+\>|ݝ1E-{Lb(|3m (Tm)u^<ْI$I;Zb) ɒN̂ }pQNk:^z^}wׯ{/^/^<N$Ir bdAZA OD$p-:  ~<?uHжlN؊ EW (tlقmUa{R^0y$ĒIT`OO$= `E}/A !`iۺj~=۶ݻ`WÎ*]8ţtйTyYYTt79<I$bI$ѓ ,Gqa $2sVC=t,(Qu0tӠv۷jf:Y$Mq, %[2YC`Al<"bAdLI#Ac?;1 ;2#AA']iFF|2F8C;0,s,٧hMMeOef33jի\V919ٳf͞e 6llsѣGm~4h|t4i=Zj~V4hѣWMXh%F)5jū<<<8 lvضl{v۷c=ÇqTv۷o:f͛6l[tr][)rF$ LEqX⫍U~>=^2q-U ,UXjeA-z 0 X*ƍ4e0&UFc baTƌŌhѣmc,Xx8pH0c h*aÆ8paB ڢ,bYuEYe.B,ؖYu50X  <-eyeYeR,ؗRYe[˕ %ÇÇSP:0)6508pꡩ$HĉU8pbƦ8pÇR(PB (PB T(PK-uEYeA ,곂gDA۾Fvʃ*4SJY6(.BjTJHq\Wv;Oi{yPh22drYMO,^'XV3=(o-4b)\Eqmpn攏_~xr_9 8}-Ϻaj泸ZuO-tĞH_?sݙ'z^/͘2G1̶sfse ak;xt.js.}Osu433|{\|g:=g۫:tY=O}ϽeS??FOlz_=_~}U>G_z/gtmv3__ {s=/w|v|~ uKK"}֟\Wѯzsدfy?cGmu}ߋ5csv>.פo}יɼK~殟:||Ǵ_p,馝]ˍs;i&syGr#q-ʫi>{.xlWskmm^cqM7 ;z_;vY:Ź|Ggm;?ݛgOo}Tmqq۹syysy1p־q7qyyv̽e~]+W ݣ/W)v|za]Z+^[h/hfyrWc;-iC=Zܷfz<ܫz]Ọ38]ƭXpd{%n=\_xr<;Wwϓ_p<^[k"3q{{3o}%VNZ>+Wr=Ǭq]I]Ϣ~s;WMLo~Ӷ<~ Ɵkzǃ.7;L7_t1/+7uZٳXNg_5_|oxi}mwy7[16t8.~^>`'|/.3m:? ?)?]ЋѠxV aj2x~>D8I!_iR~ !N !P m&OkI€tY'Oͪ{vi ;ux5|{Gǽ_=U^!6ֽjvq*U~۫U^_f5UUeU|"U_|~k_|LyQjԢ'Ov{QOrs EhFע͢/$('O"x7'O2d 7/dP:?TN}wkr/"{+USvq׼wKGuwk.M. ]ߣݩ~5W;oJnOIlZIO }Q{9lncw>wӪw_IyU}}vQĮy>wjfw{/;t?Wunt\Wn{o?g~T;^꾍 S"b9wG}w\upGlKY:g)}Dq7O|9ʔn=:CX+6Wօ¬0׿W3~}gՇ?[r[=rty)JPrr* SN"Xx߹xݽ/tF߅el?FoG[K?OvfsqR;Fc~?1ӧNdy'''''''''&DZo'&vFFFF|iGZ*TҥJ(Ǐ&s_#=߷'%RO_whc~_dFP(ʢthЯCjr@ӁtC:'I߱)ꀪBpX!!P0 W INK]HQ֩Z9@:RLhw$0A bnF*Z x`p.bfS&vߎ HjމrɭL,Â3i.Q+h3YtOku7r~>'o2_@";Y㷿5ľ׸ӱ~}Iv,-|;f:"áNv!UWםI_<++$l ήlUM5vGՕ{-*Zҥ0Tfgsh5՝+ zg1=k׸~*v-[©v>IfSIؘI z$4CCHd8tP|SDM,Hļc)cQ2|chw#r t>:JI>9)*>9)4 |rRSL|s) d#dS)O&L**D0!#=2i%0Q OGHx0c$dMR! ! )R^BHIQ)zg"2f3LԢEffH"f`dHz ݴZܯ>wP۹mW jpN)ًσٲ{P;؋{/3N~g:w}WT׽ φu٘C.[l|7z+{v]`vi{   >+q1C,~ϛc`޻L\]#mB )/a?/ўXv9ZNbxa}Iye/q /ː꬇nG:04L̽'YXtGlxÉ ;#>$)!;B PbdF`ףׯ^99vt7/&;>6]f3ff!)J%LC+ 2fFa4'@jj> >xG3Kt."~Mo)-)~Z}7g_]c2 \Y^J)i?~W'd4=g0u HQґ3BEĜ4Ah4A!ZbAnC\Rด)hB`@R =VTlFAQCaRW/T`[w2]|3ar{[p }{Oh=?]d2@hUV2U5k|i)޷o"^/ ׮޻V뷬@|S8?>j'O'aU(9QE((UUQTQE(*Q(QDb(QEb(QE֊'#4EfFjEX53dEf(ERMHEhb*#:QDb*jKOaQ>vF (QԊTUBֵURVa*ZTTUEY**ªUCTTUEZ**ªBEUUUUBV#dd(.i ٳ6wf 2XU**EkPRT(jRPJVU֮*ZZgDBZTT0UVtUET(jRU֮Pk U +ZƄP@PB FE|I_{59*Vffx-jmM,D~H1p'"[sӦ}'@Q(J4J-D2JDl2(#ojd7`!z&|gKH3|44Ex1(mِg&)LMPEK;(k؅~z*Uj#UY DUUq'iuiUvO#RRyv,qy~tiRF|j E"ids7Gv{_v#~oο9#3`D^12W^Zmo3z~Ya4 Eӯ̫=Olv;jX܎I1$#ʱ11111/ +Q(dS ^kN=02Y'o m 1ҫqz;D¦M?^M4 {p;bvuqJsߗʙn:px o8uS~47+t)8 xƯwÎl]c n͈(JI$AEZ "xPE OpX E ސ]*B >7K3{'a~>?zյ<;?*^4ooXz۷^fB'  b#m6X[l&mԊj5AIPQ;Qf3uׯ__TU>v>i,"%+"S*H\7i"MPDhZoʝZKsW~#hw/kߵ|?zQtOL>I'GL"QSPF˟T NI{=὾Ϳ7Yb^D~/@ /_3 -^L+ka?*Boirb}q~8}-v \#rPxJ?%7frl2rN~#Ҧ)}LW3sCssKPJ}l66HLyoH!<;bו e,Nab&^&3P; wzPĠ;snu&qn-7W3LLgs{]MN $o8 k'Wb}C~az:!)RG:M*TͣxLGl3r^MH@P-spX7c+]aCl^~ hvzo4 16Zi6v57#hG&aFMO{t":B7\?fw}ߑSꝸ߲8X6MfaLL}۸Y368, 2L) ~,&)"9An ~5b9[ݯHkU (Q(k{} PC.ǒQQU(_ONN2BR)KN,xí`S `6Rh]bd_m(XGϜ ZiJ*TRK-1Ho=iׯ7OOLh @y8((K&/m> #iac6@SD8m.Ǿ+SGC†y9TŚ9Vlٛ6͛?Ŗk|)\1F,丙lyf 88.MbִZPif5VbS$,и^K=fҹ9S}pJBa17ݷB6_}: TѥJU*ThυgTҤ((d$Y.6(S +DVJO#x}il2jJ ()EM2M2n^\b#a]|DɎ̀Yuf' Ze1m>"9^C5|>˫ĥySHTn!e**TR5*u&ͥ=lZ~aMPa].g-L\^}uM\RqΧVn%B'O}Y\RWtVGGG']ű+P_0S՟?WWSWKJ}=PTu˩WcB)I Δ;gi9Juoq~c+J ϔ?y]qnĶkrvILP"C"r~~8Ny{90Vj{yۉvbz*I,+Iy<37翩.^D&fS4@)YS 46AZv#ް_mѿġ1J:yLRQB:0(СGGF#%Yl>gc5fFPwO#urgv LYCP!X)Z̚&Ee/q>,#*3wYoxt~|X E.\N̛w+\Ԋ=%罻vo\$c c4M"XiSy^DaQѤ1g]UOyԽJl9lٳf rW/촌:y[td9ѷz?ɟ„fgX+?3)9X~m#h<*M=~rޭ'Jo2P PwnUN}ibcFE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ZZZZZZZZZZZZZZZZ]Ct4-/R4OҚ~ercy_+.o/(t}~yrpCEFLCE:9J>n;VW~-v|Aýfu]W xn7;|_c1~A "'YEe(nRMs/:J[':߆Mhٝb?Iɩa5^k|љVCD&2VӣLɐ&FZyrjK6l͵AVS#H&Ÿ0#%@Ckg,bW}f\,_Q( :1 ~Jd7Q\OOqHu zЂ|#ˉ rdA%`Lm D)8Vh*z(h  @yy      ((((((( $I$I$I$I$I$I$&iiiiiia:tӧN:tӧN:t(PBQEQEQEQE:x"QQqWfE~HE;#1ܲ$efK2`\9pFfZQq\s3.d -8-ť\%3%hs-̷ em̪be)saef ̷d+2R2"5ffZcijQlr\301 21#m+LD[rܶm\̣(\™U+m0˅\2m r2̶me\(L)Yndm.aiKiqp)Qf9RjٓɌ2Tre1G1s 㘖7˙ZY-(ѩFWƅ0̹1˙Knr`32-Z[Emq(28cnZk\[TZbaJL%-˖e2f-jTULշ32KTĬ--E\0(qZ 0r%V. e("ܷܭL.&V*W Kml0Q\*ee1n&59s%&\Lmj㉎8ms TSQG ZepYƸ#prVdk&fepZ,e-0\W&`!Rf *r)i[Gḙێ.f)n2-̶-JTq3. ff\˗13*,ʗZ+1q\X9&J6)9ne1F)1)LJfeK3$S.e\ƒ73 Kr#PqKq+VWp\pS  3"-j)RfX\(֪`r2J\0ˆC*[kf\-R9 9R Je3ZVV&\Z\f89n\nKn crY [ep-qVcj[[Z17&Q  ˘re3 D)LkS-eaRqnZic\YUciRn4ܴeT˅R1*em*smJkS"\psRLparfLTeZQ˖֕raZ7)mrۘ\9[ms\Upˊ\E- .\12(F.%jqaKm[q1̣mZ2-TU˙ƘQ1"ZkW'%3a*Y09x;v[Qc:Ww91ncΚ2Eee?`S>z2OOyrL9%Vf|DsNK?W1o/]0#z%ϝ!ɄaCה}(Խ<H(yund%9fp40d6%|HA:0@(l(E8 Ө"$౟A@PQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE_ϟ?yuD<[_}fŇ萩h<1Oۯm|-dُG3PuiiXO" fLܹKDn)D'mSZե-]Qt"В`L=hlߵ}KQn=O {'7.4Uׯ^yzuWVwT'L ict:uEC#_ F͙R%OޏL#;?L'DL}`O3 yNk_3ǵ'+{,&?&Ƣ M~n87KGhMRQ Zr F:ٽ78ٸߪƏɬ}A& 6 ٳ2͛7GFkN/U~o;m-۪4K(BP i_e@2їbE&I]ΔBqy'34꾜?/(?=|mqMCimZ:իVӘN,}+4'ذv3 c*R De":ST031X& `Ymgzڵ먐~u?FQG:S[6r(E(CJŋͯ^Pl<CC-"Cd(HZbYP##J4(0bM-& /J5= H L;E~{}.?Ș^PϗBVU g!-(4Bm:vçOOs yUުɫLq qDP\lИ n*^bW4TDCs{~!1 B?t 5u\iPWKWUUfކQ˗ϭyh6BS< *! fb$e9Izxʣ'I})l/=3t>}su ҞӏBߺ9ǺʠJ 4AŽ.z x?~g7m3`do<ݯׁ ^ށDA1DD}I@a(=wp#3)Fn?g1VUX|OgG~6o}5^O/srPD uqzOoT}FRz 9|O+R +Ph4̵e"!T @2@D bA2-f&ޑooWX ʘ.3. ~s?[Yqw>9nYg7ofY[jQvo&p[qT]k\AY= @n0,v=wޭ{ U ooor]U$J{woWi5 bTO4em....'y:靺t; /-6:.1ךrHw>=k)L(`/]5,G=~WY' ~ lB:_?Snm*go}۾Ib(&ㄛ``@ mRV\@?j" YJA8]/ɨUd.^{;{a0?~s{[O+ 6566+sW_bC;xUh~V57Xv;JLiK#.H )M@,;n'N822HxIXYg!ThUVZrT6-^!zFR L/5KX,b~ tvl!3O%:B} YT'PBݣ߃_* 7ҏU5@4QY@o/r|*H<3=Y{]~8d<# 3r I555-jjNSSR=J#Ұ|CXb"|ăQZQsyniH:# Z9>tO>~ٟ?nOLNOeBQga ̤pvUAX5&:K2.Jޠ}suWeT^~u]ZxZzzWA Ayz[:QJ7&R"rznwW9gfy,ϑ?Ajny~߿~Al)y&*- !λwo^Јv}sXopȸݳVDr廗(ܹrj;A=Ytojde-jQb•?~q}3*  uwz\͍J4_ңFtbWc޷sCܛj&t?ce7.t<:V)utUS$rSf^`4j<6TQIE5189:_?}{7|ovݿ=;?PECCJ3$.q;?!BybN6_xݯ[i].Mki=؈o/*Mx šqw{B_;VܸI/yHpBQYYYYX=NZ@z+%`FKJvG5[yuRG(PKGơA%^r.27;%aIr4thώ<0Mn>7yMǍ7އ *|3NH/^bU[ЧqFY˶_7]CŶ-K'Ԯ۟W:<łՔhرb5 >CTiFx<i& D!ԕ(h,S֬K?*C/Hn  _&˟;{eP(7/aCQRZu3jTRʛA07/tb 4i~Kok/.q\ܷ8{ Hd2906.6{ot#ގKʙ|bTr(UV;joqivںaR& SvF_Xj~{~F߼@}^x!?'j(:tӧM;;:kBlӓ}}?G~8%*Qf3_VQ +F}h_%bBKjFu* &ǧo\}#"rs7E=V^զmIұ~R 3jjZwiNɓR *RHE )E w*T>Gv1GK4U.^z<[mį_ON:uŖujp6YiӅH$ȳٕ+am̖NhM1>Ņ*BI4P vD J;?l Sk؋bKVhҘ˷vs Gz~y<>}sO=}o:57֬o]`0 ,!KDӤWCWޖ_!]+G. h>+*?n]-, *RbD!1M*NG>N4J=&S_4xa{{$lPU65Nk~4 kjk~G|ޝ+GܳoOL))?Å7j8LWn ]񿿻aJ UV k|w?~{'j^ 1;z_wߟ^p"z?yPVmkXqnxc@mw\~O;;!?|N:pZpo]'"ȕX}rOe]UV%XcM=փt&e59܏hx" bŋ~X_8ay b$/r|k(M R^zoZuLd"M*sUv8v eÕDb2P|1e7 r Bq8i:t鳱N;6t`vrX=_qAGz\nS(ZZSA<.Ϲ9LLL+}a GZΉqy~nGj$>笐T+}$O,AXH~u۞'l쫂C~_݋=!>{^{XA4&4Z- ChZ,_0 #".ԐE|v*pN *X ! " ޵R'@I g2Ş ,(PJ"u}nσȧXn}yE`LSe&GsaN&p0Мj"@, 5ВI$I$I$IbI.I.I%M4m˙mL̷33KUUYXėwwwwwwwwwvgu$I.Iw%I$Iw$$I$\\I$I$IwrTI$䳹%$$$]ܕw$$I$w%I$X$I$I$I$IbI$I%ܖ.JKKI$I$Ė.I$$IbJJJi4M333333-C IHN>T@xB~91]o~ͣm}{#^i)cilkm66.k02Գ,qioGCݦQQݵ)A@:`aE[g@@VF~~~n~typq:@z |/Sg⍌?Z D)|@yNĆ1A;Fw8d@z7㿝 S5$pΙ|N+z,Xb=[ob&ӟїrRT14hR L$(**ל1R @+Y 0CN] ;mBv)QG#7IjӫVʵhѪ?坹˂COu} !b?]ceX_Er,ke040]E"|?0/xy zrLR\=e˗-ܩn۷l||DZw}~$a '3%9!8B(@݊oϯL_̇'3)4ߟ<tGBi3}6n,9s`%86G܃X>4xǏC>|lhCxGn3LGƏ>4w(Ǐ;t0G>4|h܉ 4x 6Ǐ!y$Hp>^^YNJ0eܼ = M94k˗RȑEb6;}8x|L\XW$xR{$mHD #ȑ"D"bȑ"D$yH"4x|LhƏ-#Ə;ϑ"CT*Jɓ&KTI*I&KTI$,I%i&BEI$Ia V2VI2X $I&K$JI&L7_Bɓ%EITǏ^$ G7/s& S7SC̹)%=)ݠ*,R<\ k^wqq_Ðqg{CǿW)koͭJXuT8}tg~޴.rN).}iEA>33 EL&ц, 0?'pz &.4jLAgɨ9'\5 >t>Y@5cA?lO v[<Y?7:OSuZ.Ox/P$$vȁFJ^| ErE$f:d1SԎ厏3iw>wee]. n+zfDQuiSh{ ?w $H+= ?2SӒ_n *H4OBq>]+:/[mD(K/*[n{>?l)ӧS"K,\ ?="owZ)Фӯ$+Bŵ#-sO~ OEW,~g#@DJ8qu׫_N}zNOAXF%a4'S e18 J%73#0F)T4@s4 2yGm ˼T*թR\ʵt*DA/E@QV !^끄ӿFnYK$e"$AVP?4Jc#툴so=/Dn)3ᷛ<;g3oBHH9xhM4IT"Pjw{ BP8|<e=u]}(Ñ;nׯ^zVZsTMOvw2Z057#SWU#HDRr/$X%jRF `5u?QO;/w>7{Oa1֭*ըUtg2՝7VSjP)idf``sIY~f&]r=7` X\ Wr MNq@HX}_0tCX!0OLak8bg6֛sqٿٵ@U#Ȃ"pJQAEGG "⊏yyy;Χ_IO9I1ɼи]+ߢhh! ʕxlva~1?RO#[`fR{zJey홾ݑ_ϧiygzx fpCkoVQ1Oc}NuF^Q+4XKc.G{'3S^45:qgiR>dr~[_L<>8;=79JSQ <}>hK.yG}(<R4oܿCץk\sro_3_צq#Xc<m:ݯ/o\yG mE uV[}#^N:Vv88'%̝-7 &wURUywɞ{%fS{<ڝ|CÎw+Rzs}x#~ _?^,;J'~f#{/$$ZT <7/}kn> DNDRF J*'JH @[}Z(H"&Os~? s(D{VWXWjZ$ y5(O2R.[U~I{x~G?/|͵Z|w|颦}'ܺry~}~GMcrygʞRp՝ SN_go!}K6q?/HvO O>|%x[#Wݸ i#%{VwʚUWO͗xK'u/UwݦbEvW wOֵ?qYϊ_6_E^N;nWuhӛ~.v6e^}{~m{mS֪rsz6r\෍>ۇYg'yYuE/hy~H9lehkOuwS |ά:c,;Ww\y^^ ;:lEY|ǃ:|6<_\}i?7zZ|N)+ڷxy}{۞;vt$v^ Fv=ގFm,ۈp)<}O;wك;o1Gy|K͘O6փM7T+n ÉNw獵ջMjJjb1 msWD I$+7fJoy1Qs'T̩bA4% jxT6C_@D@Q;8E^|*gh[]P>?=gm=eGv/M7Uw|0?LyqjѼE_G/AfT~ו6yWNB)o7fk#|FsW??T/'a9Wi'Ϲ/fW}_e&r (# -4No^ˋn[p*ng{ۖe#|tQ㟥\GW!ImuORTՅzOQ䎯!VxrEmzB3n9PS}r˽cOc%s#7a_ -sO-J?y]=¢vk.W}қd9lnz'/y}8&%5Q8q8*u/^%:3<;[f2/J= Ir粍(o7A3 i:㔒MNU*`b *)>@DOjd2 H'/{?ϓO|c WܯzoG w0Wli90ߑ۫v<~9hRDȿw<ۘm~%|2F/I,Orq?slk֤ >󹫍wx\>n<'//ce)^.PKxOcXy;; fj%ћ..ݺylݗ|WIUK~r7t<|7׼7[& tuϝz_bϪQ>'o ̬wa!HwOשN8e8؇[5_w -WR{>oݲN7j=-tU = 3nWky)D&vK/]ո9/Lj&ǽ;+LO' 8hQ#?M鴺]6G*Ȏt h7gs789<5f=1HH1+sLwU•!U+CKJ]*e;]3[_gh*3\ib,`El6ەL<3sss3scx苌/8Sgϫq9@^O;lț_b 5hvoYϡT# 5 w:RMId 6丞P d_zl"#`@ -}6cv 8%bOqA{}2]UG]&kq)Ӻ=Acsy-lb #O/t;ώjnFXյ_Sd5i=ҭ}ptݻm,HQ#$fś*R!¨@vU8 9b0- (PˡC:W'N҆st|u)v[?PΛEy{?guίiHWy<`!|ʟ?:nBf" حtnz-,ʻiF`ཿIÉ5!vsfJP̾2_.,s&xG*rՓ%+,Xbe{,b;Pr?]Ӫ ]֣܌eGTl?IJ^1&"%:r a{yL% b_?NB'P)R)QZOiZ=R9A<ԆUi # ڜ/T =*Be|SV8n?T9ě;Ot[S`.vnݻeswn/b=̰CD6B 79Cax?- RMMbԬX"Ŋ-Jʂ!<Ǔ ZrabWr .˖r+@V꧅\ FϿd$d B#!##!8i ʝh2?k'jYCcccJZ9F!b1I fic,X%bj)*,X1} o1`"a&NBpNqOhR~fT.Sam)Xoϖsg6SdǽW22{RBR2>Oz}>u22vs e`bIX ]tKbsߚ, F8R+  Gsu?iԴB}_VXYqӿΧ~lx@*qDKcp38MTS"=[Vwl{cu(P(J_We1:Am=LF784'+R +GCGG9q]+A'Ö)d,lTXfKR m{\Eȕ>!4\ٳfǙ6drr }>/ai 1STsme!X@A Z7  9$#@hE=̘QЈ=5o}fkP:z? !u.)mƕQ*t ZJ T9Oܭb>+_,tK]vM4[U4j{j-bNzj]Ke՚D^]mES6T(;M^0QtFUꚲ(w~{ o&T}&zj|Ž٨vݼ/ok\ wph?7 -MeMN U՗[Q_+J"ĿgB_a~0t5Zinbr~l]0S]Қ]g^މj|/lmu:|vta+-5f  EU9_-k2z[QtӺiߩN3KV.g<{x2ehfb.;&O{wjer 6>C+xt!_~b_dhJ m㾘FH[ r}eˡr>?5o4agko+37MʌቓeLi`XW,j@'PRͰt biWV!C*m>颁 ['_"V@q4Y(~=199#f-Dx΃oӺm}Ǖ? 9/tt+qs3ⶶrҪ |1[֚how3ɟ.&NQ ֤ 0|`>`H!߁C^X!!'< 'ŏt>D@(?·_'8x|'DDiarX]Z;[43O9OﺣcQDLjx?J{QS4[.bf .TM EDm*jLʌv6f&ZZm-6ML[yâXZ]zMpamVe-ZpqDE+`5 [o4!1š{)]VYeSEEꞂMnhuVTuR*#S|m\,Fy.sPVIgbIKO# Ya8l%J+7|p ,e݀9[f,U5Ƭ+*`Pޖ:{R ApoO|nK[l.vX ]V)J]Ws3o-=Fo=y1J}{R">.I‡4d>rb=p[h]+V5vPNSDP zSFq-pzQiSSJiy(^ns:0!Q-Tt {+& KWZeqҘ5:hLy^FF.$P,.;3qOZcwٛcn{ Hjf[#pma]*mhK^tFiON@S)6׻:]Xzv*t%v{p '.6m2[ۥ)F*E.\e%?T`FͽT&aꉦ4lM6B4dM "4c 2h3h`Bf@bdѦUA(F44 d@LLL@i&j`& 鉓ia12``hiɨ4hHD @ 5L= dɑFQ M0'5DFFѦ!=id(iA&Bh2dhM4 #Dg 4&bm44dFLE?F1l"m&i2M F%%2`ĉFhM3MGh H=&3ɒzSTOF4)bi#?S&& ?dm M04)4dɀ2&hҞa6"hiɊzF@dѣFBm'I cIRDʙ"!L1OY*l<  8w{.{u|M,^dw]uX/T1u=JX $EJ#SӃd!!2 \r Ⱦ `VdAAFA^;:/vA!]uN{]v_~0+%YeŲl,f"dvkΆMо|mC.Ghv*r* ¹pg"g) /T"ԨB"<*~ytCZԫ^GBr*(T1pP<eCˆ*xN,v1k% J B1j+Z5Ku[bjiQ`/{܉TC$C3% ,rk*YU[Ylw0U1 wg3G"^,x0Kp:ܘ0(q-̋eBK%ELdL7¢O"ib $AC*)9(b"17!#M mndk{sorZi]'}X-֭Ee`j֪\b0)w55^%,wyÝiNol-jNKGV\J_r='}pTk[Yo{sp;8W{㫽Qކ|2UTr>U`UoEb*1PU( Z H$1A@W> >K?c}wu7?a}= Ws6)E8]?wmPlVr@`E(P@6j8x(q Π_AS?+xWzf;mo@*PDDEQ\ШXGD \\\l?eqro}<6Wmmf1A"߈Y^fUx/Kn+W<8Êܴ@5Q -f.[526V{;qc1P 9,4hc-4hYr s<"+l2 <vWz>"",]v#k<4hѣ@ѣjYx[@;JS 0e]uֵṙ{ׯo wtgmͽ{{x>󵫞9YZF)<}Y[ G ,X 19g[.W~8aY DD2pC+<1<s-Ƶex)XX h^R|Rr!V0rS3Ag9HY1i< C-(IqKKV$%%(Ks͊.Fמ{G<+.S<]%Wbq.slkil\iI9Eq4Y+qLf fx1تNLZFfƁD1TSJ * P"L~@T*rT"" d=Fp{_NLgf~!SS s@FY*4?{;?qó'-T${PЗ$ҝ"21FgfNS51XW?n{tq45DqG59UsVI,'*Pΐ&PZH*%*j(Hg-+XA qGZrw6Զ hX"* t5 pl <35VcqfucqlüFtP'y`)qP $QeEQM*tjw}G{g+@5UF"I@B*?W7x_W{W{c;\g.Visr),-_9,R.A̝O@A."wkj:#4z(Pv4P4T,7t*߫-Z ov~c#g8,J]9S_UI:[nF 31DEEBn^+=Cf>_MwTG O`AAMUDb@E3 1 B"AUDz(%I*E(S[Ej2R@0 @9@`;ǩT*Q0DUUR!B *4 t}>>xUHAPPt7V* dAF* Zi"B?BEQA@XE@dDl)H! "uAmuřyBH/ލj%`kPSF +VkZ`ݲ5\j8Us@p08nK9MseCGr"n!P , 4qΐFj*Vƀ( baBP!gM_p~_`(DpSUQp\fڽq^JKQ =u\-}axׁ} RZ\8Kk+1k++K0S L#-[PJְ+ֵ+kkԴlK,[--KFдmKqbFa 8W a -hڥiZ cXeaXb6`jZhف0_o/7[kkiii[]eeiňʼnXbŋ#n#6C˜C hZV5bZֵiXVic` `hW]L8nexHI}| m!- @-VkS9HH b#Xh֭`5Z-bb6X؋j6ZZn+}L,R@sMW@0zTʙ]ZƋ贰1 D{B @@ĺ_O?* @M^ .XM>63tPYt00$xۄ\t1 奄4'YM V a  !g?B M l5iGJ};Fa01*pE`e?gkhc44I?fդ0)罕 e$l \<ޘaI| %.jp] L.XOϒ(憌G A-44A 3N^Z' &πraB C;T,Z,fY4% ϫLƄ?:iա2 harтLcBuQl܎a3K$D(?n#%n c.2ҀJ 2 䇳 LBQFraa5 ,a?1:T@"Z?Kb lmpQ9{9=mq53\4I'=&/.L)ZE)%L`@!M2afHLhC >$) ,}Y  *~&0JjKB pd%SS,L) DDpK edlQY}K}}pRrG#f3Bhc`F%cY O"'H,2aDFE eGR Y`t7tKi!0 C*[aXH'd44O HJNAJP/gJY B?eJN蔲Id Z (}$&Jid}C?1у EAȶHq*aL)['G:T 2W HSȉL)I>ցi¥+`aRc[!ۇL0d+(hc=4T> d;gkrhhI T?@ +-XLˆW  !Ѳ6}u444 ՠ-șB׎ܢ2 luXbch2iuC4 oM-2l)hd\)!~Ξ[fJe/KpRCͪ Vd)&"!O%"L ;eaҠLCOkEЦz"W%İҌDţq@>:TuDz0H uOF 4{%ۙp0 `eaީKLdG͹ԋBC™@:3LqS@aX e` N%L06 c#nC06:}&hAapY"w6Y1l acc`Nw)40&Q3j5e$'LSHKeedN"(:} Q=bjbc,,ɵeV\bmrf(d 6BdMڲB tj406"2N" X?%B'Dbd$?FDBXS~] %O4'QXG#(.VAv޸}2Yh֒[SM*X8ִQ~I}MW@LK6VmtT C6O R.wIhQ4d(!Ѧl!gNc&MXVdDgrPa,4uG=օp:[R1La}ͅ0Lw(^΃L{mCQDjL4D>Sb]﹐,S'wմz/bJF#S(X(D-s7?gĠ8} 9{{$14O )_\YDX*fU Xx/0 2AXb% !H+mj9]PEATj H j0 ,#-6;"Z,b(57\l ݪ\TJ) ąP]hZ! % $/Ĩ@ t^(@ eNH]d="tuL+a wr|4-@SfP\BbRs++Q +kԬFձ,VlV,V[EKRѵKA Qm,jT.9iqc[ZjT%r2k r± +kѬFбll@ VmmBյ-FrA d\&P^nd,!(vz M @/c|]jK,0@(T BXR@76  -*=QdPYEA`EA RF"PJN  M+ngGюL'*ģLHV!Š-؅bZX `6`bX`-h6j̨HCС XaZ9ETVnPUKR($@ X*%R*: rtƙ}稭^3=q:s\=Wwwާͳ*yL?gOzꚺ/?Cq;#qKnX6~iM{ Kɧؘ؅3;Q3:<9wJy?N[@gzN;Y&w;|GG^OI?/Zu;'1ng+-z*'8eB*EP E@'YUTF6IEo֦p,KU@VZ^%D/A _9z?~.\H8xIlFT@̤KHX@ `"VYѴ@̀HD.)-Z(%(@U^߭Ap8orP{;MJ:>aZ͘gIv@,ŭ(jʗ(X QoTA@zk`2ȈH ,,"( ) )B(E#$`H,H(,,H) "@XȲ "! (>7>{_CcK.Ӳ/Q_ލEy -}O6ncKQ˓?=k|.UҒ-.0ik+9,ݹwρiy,UpZZivM#`Ytiڿ>cu< g@Amz]IA+'0A=1%:>R@)9SA Hl* x]O'zO9<abGD/JcJ:4}fx!.:NٿP T J @u+2Sn}Iφ]Ih隉$DHqQ- Ǧ(zosJKL=)y=+e3(YS̙q|;~]r?5'_7muZu5Ҹ;T/i.5uˉo8-|'WmGk^caa`X>oFgy{u7}'LLZ7N4>תq_]-Qr_In%s<ꇡE2&guIqS)i7:˜/gwwww44/u_^᭿ֽzFc``}m>0/kaZ{-"e{RzD^p͛G 󧬔tFs͓fߜ79XrQoD2sw 9O1-JڠEx d 2:q @0Q(x .r Y6UO?g~NsyƳݿ1xN EVfsӷ O:+S0:M˶ywzOCZ ܈ʼ=ci>ǹ>A_"jǏʾ)Чy-.Km-/fc}_?{/onwX6#ɶF߱#hل8W.w:,*;ׂ fMx@L$5+VJ$Eb)VU$BDI$DYI@EdKE"aY$H&4̙ts\o^)Pj}8(5N_R⿟_yxu?F'(]*~s_/LCj1%b@=j:n<д1v o݌.uw<~FLI3+t޵nΕ4il}FX8MQPpֺ_m,_;6wuCjou_a8Da:|N9I琬9FSan&˫㍟ѩTSSVsTBD g:xNg ?^l8_Ak~2{nRus} z;s M:5U,0f煺8\C5ppN\9 |~>(U/1ɲ'6U9P"{-a[KIJmkbZeSXsNrˇòɀw1|@'϶y6*Dcqy/j/ ?M%6Mȵɾ"o艹w<~w|{}  ䷃|]L;MOu|nwg{{8ȉ坫luF3s6:/NqM6z_2j=z3w:$evf?Ģ<.w_km /Za7B_RYߒx5+|U.-ӌL#;\?Q E _`tX[+⨽`@/ n1¥dX%UZ~Vr8ve*l v[[4p]rǰ?{\p /|wwz"%: 羉6|, =}Ñ8T:s:Z-Wz0t oi5מWiTwqM:n>3zMLGG x\͎[eǵ}u/;/B䴮[rx.%G8%Exr 6(p8pr +|mY^T賃{ $_) @#7')+xɧOlxhܼ廙 b]a1L.䀄%:~^Y|?_AKGʬ=z R@J‡4(#ArX$ w>?~ h ᗉR18ײFtWOs(^#ߝ[쟭OCs!ue~;J~2|_r7ĝw3bh~7]/{^Gƫw<> =IfC$&VZQo&ˏwе]MjwǓ+ ;s"D&Û33sL zf^օiHf_7K?.j;{g3^ػ{gq޽6793/9?yDN߹9O\tf!ԨaT/'?X+&(o7}7|湭mmmmmmmmgCC4f>{f 󵲔Std̡po@@tn{8]_Y|?_b\+-lo>GItR"/#Ow H}o|'mL8NP@K ?oCwRos6pOCr.?6kѽRٰ=`}Or!{ Oc Z[ZzuX?7.Z A]=΅-(r _ȪyeZ4 z| tiԗȢ` o~~v?ε'K.1WQ563׷UUv}6[}҈#E Q <(~i_;C_~UThmC׏f2RsRbXX (*E ,E ` )`(ER)X,FDbȠATR,"2#"$FE`EȠ`("" }UbȢ(H ,YEH QH!@REUEDUA`,PX" XDaRQAEXR"`%bŬQER $U$P++F(V2,PbF2 "VEȰ `(V *0" I;C>~YQҺիa 9MUE1 2tμ`T|Oew7@5GOX*̖۞w\;q W~voku! R#" H&}6/n۾KsW >ԷMj<=l> ?%:(5m]wv6ɥ}GaK^#2}ϫ>ޟ]9NG[[S9f˲}5.Yn\pקʍ?? y~Oy2Ox(3@K?!h`ĉ '2M0SbFɓ&F&dfǛ4FzD ~"6?t뙝@aR}/yp^ 5oi7xmC_:㪔H*+2!G@7AJʨuQUK7n ܒBmPDAX QA"^W[W6sp|dPD" |\kAi(Dz,l}7</EX_wkkw}\^^] Ṷ~^ِ-1,mׯ*yq9U׬!޷V7vL^ת=5u%tDI%C7Ў=tWGGwT5`={'B= ?jOKʜo1uf\MӲV v#l^{ð;GGH:>2 hχ udʨ(JRJ !qG6nY&'P^ u#y2e>?^^M+GE_E[È+ҨZ{kkhi׼=.3Dz?5ӚT|X}'0S5^nx]ˍ_ O: o֠qי?^/=@<'nΫnJ=cmVm;mT~t+zؑ}4Ap#"Q;CjaPP\h1;aus==s<_{xfTXp*rA Ϟx~WPU eU4˓>~NL O>(DH$G&V XA3Q334O:ۀ TD,"YZDP+UdPrT!ɉ'@IH&R<5wx nvWٗHVl (0hB =F#*-1Zw1~j<vB">tӚ$*(0>5FQ ToRz6372SN{ ;u#11?s9c33e1=2bdmy/IQw.zf?7̾JIg?ΟMkWO@-7i`ggggnܭ7dGT䩬:P"J>OϿ{ez)6UpwyS㠉"0@O &H$i2$&MPo( qfoܧzjp~b:qٰt,'ޗ36k}<;f'/M=' 'C#>Y;S~/g^vMgG|9evL*lXQ(M (+M24L (ҊL(4ҫM2ңCL (424M2 ( *4404(J 04#J+M (+M2ҍ(4ҫM2ңCL4J4Mi *(M QEiBHy UE$H!u#GQTXnGQTXnGQJ**&JQ*)EEDډHGlGQTXnGQH#`xXcV1 S;0R%8qGgCqb 0 `2ff Ƀ)&c" *#H۞ۉSi766X To};Oo19U-akv`#p*Nh.4xj#Ǐ2#i*n%'<?Ot7"t{ww# pNp\>>XrdED&kp|܎k+$?O{щᡆsf4{ރl:67Bă ־{kouqpWZewۺ>2MۧT:5-vGFNA9rgݥz=Dލ+0 fF%kjޓ4,;rak8Ɓ;wyw_Gy=W Ԓ+@Aб9 Ë1dH"Dh$Gw"<Ѣ#(QA4(Q `9JE1HI#0d`<!03D 8 ll%v&9>Ư:<8G}U01,)DG +EЉS 4Һ^^+__q\ުۀ\ǓzHg NߓYLZDbs.C}xb0_dff\dy..BDu㿺k9.9ha洝6S" ug.}wz "MwEY0o ٓf͛7 lٷsqD.`ODCtTx}+-;j17VڿV͎ʗantWyՇ]'=WaI^EwW6ny$ ̴C u//_qLPt-=1VZt00D ͘- ](LfeFlr&B@nAaRy  $v O.> a>H]~s*<_SD;Vzo>"=~W nQ:]OOv<=UNms% <9?婰ڰGY]tyt07^m i=z簓'죥'͞ƱJOORt d&YlRjNGclݯ,lvڎݰS(۶#eٜ ih {)H[dOd2LS%L"ɒ93$E:s`v!>|E2{dN:djfe ٳe 6\ɍ͚02c`.dM*r %IRKVa2T0&&LldQ2,K5,K5,,ݲjVn";v۷nv6 f̘&)2dBY1b&0LRddɌɓBa2dL&0KR\l%K-EiFTiTVi He%,`*S!*TBQ)ReJe%)&S(*S`RTIrlԗ-Xr r[(K%˖%K.Tnl,lll[!bXزTbc`v]*;vIvkef,[;6i,6̛6kd&X&M\٫2NRt xNdΜ9E5:t͐N`5jfMRl Upg0L96k!2*MR\l2dɍ2c(L&LAmv;cb-{6lb6lP6l=͛ecdK+K+)lpd`&lK,U1L`Ylɬ&͚Si):s)BӘl'$$'Na'NW6qXp8"zg`)C9c J{%)ocdUMp\T /)ՁT s5^.oG8~)c#7JJKaJRlBΔʅ)\PDٖlzOt> ^n"W:3ߥ< >F9CϼC|'ɫsUM{^.ǵt5iMir3sq]wz/xoݼ{KBm=Vמ'}oy|<$Fv8vIq.ݖi- =Me8_-s8_K-)F8Ӗ:L2u/ut?I&ZYW)o+ >y\\lkLláXBX۰A7ӗ7]< m 2oɓ&LXd993s33J~Q3e\/3 )t ,+@P:ϟ>xI ORQEE D?ᅳE 訂 l.t,\Rw*P)$eo=gki~7GVG'hT +g$aƪQ=R) /{ $4J0TXdH  ,+%Q4!\rSgʼne5F*0 JFŷaJ޻-߳{OE^YAUS!UhS;;:\4+;gg6te ULXX N(DN+b\sMSKTyzB[s3Oiy5TZKDVi4M4)YTQg*;W%3l,l$TS R)!%i[m+xx}u UN"WFwk~iq)uzf[p$*k޵PCBe{q{ ˧Tr̯"Ap0Z0>n2̢_ -q"dstHlOXPEd@CB"^^S,h?Ts&d̹>ƇALDx~>LI"9#b?i ^ʾQiPB dAU7.D@ M@GGGGarl7 883oC0$q*4$5jT TD5D" Ȋ@6T 3zMf̺mH":H8H2*HmHX(QнCUӀ%3^Pϰph"#r! 2""ϣlQB"%$H?$H"Vć׸5ܷRʉE!|iM_3 y텃Ƀ DJv,+ +SWb(稵z􏙧5T@SlH D(Ca23I'j" Qy*u <;[_k?۸4 5ޞ|ŶGg|=ɰD7TNv2t'IatC}/g6cQ?|V{v{B0#ƵCEEy+y>%K6:߉a-QӊI"P@qzG\;$֯ !Q߹`rfR$ٳfjmٳf"xBDZ. v2qpC/D8QH\5x5 O. ~+ (!"ȣEFm69  /s\Sk/eL^UAAgЧ6fѪF;?MwơT䒲72gBΗz6 2[ %,j/|/AQW^^^^~O߻Hz]uZqۉ|rop I=L3Owu"$Qb'Y=w!vn;%b̲ ܿ~6Kx (H##qUĤB;5,4M@V[S4#O /òoP>a{+P<2s~??t>/- t-9)s#s _xVVTYYYYYYTAZ G\J4r!$th RSJB|RM? of{ӗP sA\1ԝ|:iC 0/uhbȋ,Xbyusď#W=$x ($ŽIFRb#$@`!k4J28 ڞZ*gVg蠞 "rQy~E{mlypS@-@KiHiZKu4nwOjM` P8긃/;pV/DFh?ͯB*P1 E ^ @G @.DR*οқρ,X""<u,`ֶȼ-%U a+wWhT|K}om AZ^2ŵ4M4M5J\_#h/.4Wl N#!U?֍A!˿S?Fʅ-y\^GcK]. %W{"iM6lٳfʹLe"Jˠʙq2q" p< wE<0r\&ZCS6{0f m44{zS)`+||Wuϫ?{e|`e{ޯE󾷫];oKz򲞘"U¨ʗ͛6lٳf͛6EQJR<ٳ|IIf8s7geT|R!451aFB!H ;χt=54ޞߣE;6~]7 ͡UP)0d`EY&L*d̦R '#z[[ ̷߲ff.dĚ(ccbbbeK$uRVd$3Qzqix~_]vXs7ަ{o/ʩr1pʫ?6yTb* vvnveNvvvvvu54UՅs:-3역Ч bƩ}a}{q3wb·}|WK|7?o#:*sdw_x_x{v3'c9gt3,EcJXϋJPDDC;d`L"?cx̝_rwh<"|`LͥL\624%74tg_SWKڄ~zW̗-կe|ӶujzNڗoA7ٕ]^_#&{W'˝I~Ps..v:"/}k;cHq%MJf`aGr9)Ɵ #K,R&\"aPHYe 0 0 i 0 0Taa 1Aab 0 ,eX7fYeZ[,,3vaanM4iM4M4M4L3vi` Piiaa(0, 0aaa4M0mAi *&L4M<ɓ& &S̙2dM4M4L0M4M4L0 1A0 0 0X 0 PM4 0 0 0e 0рoaQEp??;[x=͛5kkѣF6l2bŋ+ׯ\v{իVZbjիTR*pppp0)]g/{%W}>OZo//.˫JEQE M4<8jիVjŋbŊXZŅ,%-XfRrիWZr+VZ+XT*իbŋGX:ŋ#Xbŋ+V5bȋ+jŋ4,YbjY bKVjP-}j8PV[dVjR,XbňVjիVtX8=l```N+ 000000"SJ1TJ*TRJTLEJh*TJ*UR)ZMVZjՒJ=RJI%ZJ2?@x1r> N~;}tAzVK[ -++4OI-[:I$%JOҦS$Zm2ISI*I$RҤIoV7o}}M{6lW{{g[iykO=m'ѥI$PnH:uEDw:uW>v|ۋa<%pn֭:=C{^wo%^|dxsesYnm̌(F+KE`y:}u:N%D; }>s[ߋ|Qb뱵Zg lN#8}0aaܒq[[[[DgPΥx|}&8mȮq8fYeYijj K6m,ّfkfr,Ym.E]]\<3lͳ&:;:|&8qjK4`iigeKa-XK??4k5}~[}a]pv~Rʹr jI]{;KZnc?M{K^_r/-/.mmm?>>|7=s^^NM:fޞyg91Gw}ɘMeCoƭZ^^Yredɗ-\Zlٳi 7ˍ6^^[fc6P.foX7հƁƑ|^T%zER2/W;wMSϋj ^w?y߇惝\o[]mm6;_y_+r|kkkj []wkkzO]m---5VZ/ˉ؃eeeWe,%ZT8G}N?Z6(EQVEQFQEQ~|u'0yz]crZ?,Gfqc)68C88: aiba -e.# 0A 0`  ZY{A>B *@CÇ8zp/CCCCB\H$ň QI$I$}$M(1GFH $H<J*P=Rkɝ*TRJ&O&D$W"DI&Mk˗.X5@,Ֆ ,˗KF r*VH%J rJ&L$H"G"H߿|Ϟ^z^z@^z^xtyp˜xo AObC5v;&g3/ևi s7 *1UQlއ]u{k=9u<a(Flw⩝/+@ Z^JhXNpx^~ӎqSE8/գ<|]B>4D3+f3fgg 2F 3//]eeewt~ 8nU-2:r|٦<ș"+X'"$Q זh[o2Y-ds^q=NV;x*/n|?,)E2 S~7d999;fB \\\000ԵJ&*6CH]$Xf 3e9fC e`(::-wg|j?wGg(J,E*TRdʕ*UIM#8Lo\nz9P!9+2$)T|qqE(/XrBȨȫQBf3L-/o/ [b*^-`DFNDPd4h#F4j\$EJѩhWiWj*˪ؑ *3 }^2PIU4ؚg I3B΃t\AQ~VCځ-sU IpyHtVnNE(PJu2TReJ{*TRo C*S `%p%ˁT5DD.K |nW6b+AjV $[Zp l2d$HbD_,Z!R%H2+#%MJJ>>>>>uY\+&Il P`L $ppŮ av C6:mUY_HRи2nnY H-5*VU['4lϗk7N-r!;-w˭O\Pfݵ &ڲBhv"*( ؐÉ$HJjDWAV-[g&c#Brmy Rr>63E=F(ʥ]|&gK52J [(peed͍wɾM 8l1p29NM ?8r&0RpDdņ:FzU 4wM)[ f`"y+n%kBrGmQr1$7/&~@ZrMx*8Fɓ;&^L5 J0*r'6f֘ʂ̖ yu _LÙ_R*0P4,SB_~G4}6lCqlX8oE%u9BN8> pgW3kkk߶گNшYû!1湳\wxlK)rn\١6_;yp;"栜#b f!D; ""j5Ph-4 4BO&j5;p28RRNNA@pvDyrrbLHH`yUkZQ(JRPBV3C10$9Rp@@ NbO"0 " $DBB`& 9;H@" H" JB C;wD0 A!AȩR`mZ҉DR崸4PN b&"`H܉@*8كEE8'ff`8pP:[l[BRBQV[eBRBTjU*j*գBKK[BVBXjZ)T*`U Kmm֫UT*(BP*7%ZTZԶѵmm\܃bbpH ))0$F'0p%q RJ Z RlmR9` Ap28U'w&`hZZֵ[-KR*Fлp @!w!'H$,M/rrbBRArR( Ad!) 9$J; `!B.pق;pJ `;NW"r% D ;10`LȀ  rz=`*`()@'!!0fnAR8!8ـA9R ND7D 98wÂrrBAC B A330`rP r :B 8') @%$ 5`'frAȘ0r&f>8P  r A"332pNA8&h`܃A ))"xbAjm BZҀP @UnжAP"`0`}98p JJ(ѩRkJ%PVjJkJ\64hrZTJV FG !&jBB"@p ()RR)I1 A 9Dwy4̃=pHa!3Yb *"@ pO'PB!FJB@HJR!R5!! Ȕ%) ) IÆ 0 rOQɀfDaH9D PaA  ('''IÂz8&f&&vGx`pN;0p w  0 JLC > MÓ LA111dG%TqLN ;d*џwYyf8k+ezE,6 a aˉ!i2x0wy72s<3MJreR&m'6دfjXb.%6WqU/vDcTU L hhhhhehhhhhhq`AȢ?=FAC0ߢBPB5ZGf[lI(UR QPx.g{WYSGHh&L2dɓ&L2x:*CP>gi7Q6as`MV1n _JRʤ* (?ۄ'\?>H=GH4VXw6B.>nPAP.\Rʕ.\rq*`Afvh$ɓ&iw}W{ /P,I q+Db]"OS[s[ߛWYI=z8nƐ PUPEAUgn{"7{rE.]e La ̜T ~¸>|gN:u:RHxNJ:b=t4J 0@by;K1]7ϧ g$oaIlJP C`A,+фl1q? ljq)PRtFP|3FyC?Xp8f'"Xl29g1/3HRIp\ZI56f9*nf0ԣg,(b_c\Ii.\e."nQvFx52#  Or=q_>XMg&)UQ˖G rʗ~TrԤ1F\lٻ+5fkTBEEuҋ*RH{v7/Ω a)L|m?९;ǯϏ˟-'U|˰|oc:SZtPyyWoOXK&m\Uz:>.c'JKN')Kjs @xDc/1U[6e 8q hQx[>| =!|?K/lmRҒw7_Qv]kmvYzTR,.0 %ce!-G`z}wUV:4SƒTRWʕ*MRJ?j"?d/]?cdS'dIe d- 18P Q/7տt}V斂?c}}vlK3Ȭ9++*~VTld~?vsytӉlbH BMiJREnDŽs+ `٤CJs4 ~'r\s@19l/ QxH!É%H/ <EkZk4 h DN7w{.^ Ha>$DX`UFӭ*Jֿ}K$K%9M}wO/KF&kn~aA;Yg ՠvvvvvvv>uvvu7mA&fe;/&āF3[(zӁ,M"'Bw96ZtDF.bm|A"aY۠d8bȅ ###" wgqq|[R0#F4s:K8$2}2LHJl#B۠m(!gN_a8 븻6XEcb,'ϝ>|ǨM2˖K0@ [S #nd̍aXU9(y (q=>w8 z餒H}Gg(.lTVRJ*TRʃXg.]rwzL}%tt\|0 Rwq[|[w/vk_wu}?o?ϣON/I4yo'iG|}=[pm'[>;GrK:?yo}D]Ѧу}cx&}wA9M X  QSī,)8"β pX6+/[1+> # ?~߿~Jƽ8/۲suWx|||wX%&Gix_sº餤-ꛘHw%dHc#ᥬTXEZDȊ ;s;+s6[bAJ))AIJDJE\ǸhwwdO`npyZ@;"dREc$ RОQo)"Y @F谬bc2JO5;?p镁0Ř6a|||l||ll||||zz{JoV13!QZil#NRyDw?F˂6cw3g-rr񭓯C"n'r aS""w: ,TY"`Pd(Y"BЁ(DX""DYbB*EXH $XX$#Ąb@UEg p /weQ{<&_7U]s$vZi <j)>Uv6ɒ3*V-˚zzvV PG A6 C'~CF;y`}?wd:C(_n R5*SMJ*Tdq6*SRJ_[ZBM6zҞAfFEYg aUg6?y{"D.ΛOAojic Ǐ?|樌=(0`h`΅ TVշUԢ !U[261"zUX(wޥBxV.n]~~oM~&MIMMLO[sU&MC2op#O ILsdtֶRS^S_Z ]qS}ͺt|KȚ:>enrNnٝ%ɪZ]w&"s$˱SeȺMm.jr&Ix[Ic1ZKx^hң+FѬe|ނHX88xs&RG GѷJdg1b3-2Mɓ)YS&dɓ)2d&LpXcGl`3gJٌRY2fyI:i%2+2S&A6TfN )6VVRl,V[kL&=fLeea&ʒժnVSwkjVZLփdͰɔ3fĮC12ɰ7F>&$I5˚'% I=%˴.\s4.\r=5.\!2˗.t|LLFC1qqqBŝgaa:ǐ +r +?0$Êyas9?lQEF4kx\\q]onpNn|k<2>CnBܫ{{p\\\UȒ@nC*97"\܉ A.%؂ uuuutssr%A\\Gt2 S$$@3B @_sC C"O݄x0g 2Ï0Hlam`kPjY!@!kHmZ6͛dծKPÆի@ F" ;a^ɖ0lXXbY^!dɐ` b`63)$6t1c!ldɘ}ɢ(ѣ6f>NNHy-d:l-j{lڜ~cVy<mnӷnÎv'orݼ: X:i/_=zW^l >ٰs |zuׯ_^5`—hzX0ۯ7ج0`Տ0` z`@,a=&,H;6pgQYZɓڄ}ǨF &ZTV㿨ͭgW§f͛9ٳfzʞv,OcY[Z}; 0`Xb}Cx,q**>>Nw >d4$ɂfffٙմٹ٠ΦM ۷=spQE^%50FZ=h =U<.\k.\sÛPlgSxǜW zꗯ^ԜsSq^ƩzsǏzϟ>9`@8+A 5zϪ SϨ>{Ѽx3}nKk.\sԣ܎?JaQ͆8c /6hbba0qnh]0/qԃ *Wb-%%!(؂(B-#kKakݼQi0 I 5 5%% ̤֊-ÇnџnޏIQp8BÊ0 (ъ(Q0 0qǷx[5$} ŤpxŞb7F$G.\ݎ:#:#FDq= !Qa1nbZ4.hg.u1.\tsw躉Iޥ۾UIӨzkNjy\rqtݎ8r˗4ng9swH8=:\N\]tӪGN88wsHwN:uHӫgNq5 ow0 d˻835$ aa F0 r/PQEo4GgwzM&p:t]N:tӧ:t|btޚ菍~O ّ8 e> (P!MÇ7CCC6$HbDB-TX(&qV<)T"*(O5yJ ((L5|SYSq?7MBݏǷ˾e[n&Z{J "B < W4_žxgm~pܞ_ al=ۣrRܜdl-R8Eʜ 5[zo[OAn6畯־uOyb9}N?zϋ;x<~G`دtn.!s?o/g˽ ^4MYrSUh R_?Of'=׊oY5/ ew;;64f>'|4kWoU?[վL\Ex_kxWo~yNϢ\R y_ _M:O_h o;枯Կ_}o?og3l3<i*Ưos/!?Wx> 4jςN+tׄK|'ly۞>2=q=Ƴ7gCG>3Wշ_qj^Csys-'_33>_sźu˦u۝Yμ~}3oDQм'~OFG/9'j<>Qԣ'O.%??iy=%!916qa.WUJ+_GtWa]Os/txU[|=~; Wp~^:+K.뿻|jz[u[]ro_MWӲ.^vWauym~4t6:+z+v_ٞlfwxGL2++/_kσzf5Ǡ=Nׇ5˾ύ^gۿͿ'gϴ_G?#{4΋s{F4\e 3L9|/q8./5<^epY3tV/݂S> I SI={ԓR(Oz$Iդ7:'0BkAd)U*W*Q*U_+U ߜjUUyUW+UeW=2/UQ J>NSCc;dyٞv=1);|݂>q=?¾}>* {wN|^{S+{~?J / ޿zxg/tj'u"I^YUT9U綯D;־je]{bwxߗo;k ӣs^3U?=vBBNQOWzQ{>Ӫ۫q|7Tڢv__%^5] +T{?+^ݛ|R)WG_*Y.VPXW<^wol]5We\PwbH)8=?"/G&G'['>] ~8|˺k0]zlʴ'~N~q[yD&WhٚŃ by_oQU嶏Ŏ?{gm1oo\]jxۻټ7Cw~t/onnmY 8 @v۷n;w$HYQ;;8"|)6?;7S^ ZYq]7Uw忋)j? : ~e޷y[gX~ӓ/x}ǷgJs9;\.OVӇKYsXͳהaP󊮭-uZVּqW[LS>tuWQ:ue[Sgcqm[goyep˪ꢦڮ5%MF5M JKJ۪E°\uueN=e5Dˬzz:ʺZ0m}vuwQ\^^wtwWwWXKӬ||\חtp*[Y[MD˗NUxo<,Xqiwc񽵝ݥ}uJ Kkg &oԠ{EOH(Ov`~7txo{M2ZQ.߷?\o߹.w# /zr@ vB!;@D Ph"bPUL`ujj`PfD:`(hB.ܡP@'lS B3%rq! m!P 8]\3naC- o-q\ y{B %(; ¼$q6Z#Q⁙U tHA88h胈8rqR2ɜ11$^p \0 (@HhN@ Jဘ\(Z C`iVjs4.`"# }}m9K=j:7yؼ='ZVg뫺N'!?mGIݺ\>{W}yд~b^ހnһ``4-#Iki",| X[p a* e`]P;/WaƘ1u̾9`xW-e Z-`r&!ºYikTuaH7e+c |~B*B<:>?2\{vΫNr՟҇ph{w6FDw!:#E~o%. \%ź>O [CIc`աXVu0 B=BQ?K+ :@ ,KF # 0Q_LHl|EXޗX%a`^*D q/ d x)B_}DcP0b^]2̳G2ZXhY$TB) l0Kl0< TCL̮,ȡ\Aծ U7-:sÚz+اՏ@kH~/?;zKDz1l~hyZ3Zlp=,BG}~֜>m~{?Q`~Iou^^=ʚ7.ohV4utev`yx8un{pV#ƮKJQQ?1U3PZ3~)ez^)Gv7dUY\TSӔ6;ꂁyaOw,(k\L{ e >,cWuN~<NbbaҔ׷gҠ)ʂ w% kj*"<bs=n= kr8q8 Hr:L<~W(r-8wS`47F!4H,0(nbp}KxʾH؞*Q c}yt]3OS}Ou`tIۡ^uc)Oc}OC=ce0t~&WKD@b%|%))=~~ !`_EJ,H(opǮkϯf"A.)A\wǥ}_ɓAxs5')6d B0ȝnE(%EiWL4SH)q)6g&z zcs:u2{l*MZ}btyUFl(c0q"DR#H"D)Nxi2cj{t-bLg\||||jZNj* ȃ HPI $Y"(,$LP鄞aKnge4&%b"hozW'zy'+־aT 5"\ka tNj}K )TJU UQADQӧ9:uӧX[-"QuCn 2 Sk(2K`%HHTDDjs ,열 __By=}om |lHDrU$ j #mq0hi-#P -+dv20.!YS:xjņSɻr|⪺Q;eD0EJжB][G@w[}^f%xCRs,3i4M&nI9B8H##!qggffS0JF,W5\!Hw3# In~!^m;)O8-dÁ663llllllllj* cDn}uJS&,X!v0Quxxse|Shmrҥ-Ya)(tajl3H0P (7Twx&zNtwPQ6f1b9g)J_߉jno˗*\r˗.]K;aG0#ގ??t⨒vbY <.ג~x&58.[r˗.\u!QPb(YR744Fd^|dp|8o.(Hwytw. O9MD#ZGB#=t2Y4hѢō4jP@bD5:FFG2_-:fm623e%5R)KTY Y,%z}~ZcC cg[8 P *,aVb7<,8v6?..vyO5c3L g#C*Ng33*C#͇$:~$Ho0x&ݓ(ӂ=Op#JM?ҌkQjv_o6 q,4Kfz>-Kz__v ֺ>\kdg+tEbPzP/- J{ u^yi6V!Wz%˛#s~)<^jsCX\ ,mmc7e޷ж;#T./yP:*!ӀiސVf]XP vałNQ.ck`61[h`qO{))Ytr2222/)D(iէzoU2221z-4 a]LWEHS0S90lpC ",dDL]{-M. AȕK+7+n]&ٸAF`JyϨFݿ%HZVlՙp7{0?X8bQ^Eۙr4B3 D(>c0R777777777776(SC0A9U01[yggnsssss`@EKˮe008+)"ˁʭt(3]UU]}g]][aך,3Φx aT<_4{4w׷^+.]]J% mmG:7%N. !7LBnϑitm6MYkD//. %Y s5:].ҿQE0EDaU;Nc: d_zE5٘\v.i[ɒ"8;r'8Qȏ)'FܴY di+\fOYk}G//eeO>|׹)ą ูJCA "LiOR"f_{93L2%eC%q5lB& v]]$Nl{b?|$? ([im [BBRS|\syny%gqޅR.$ wz?CJgQ5FQ Q\0GQѾ8^9\}/|[MEiB9]S2SXqtx%ApT) S"w0 ϳ_>U+!pPIQUI OcWo_9Q@TIu?ץ>)iѸCBG, XxUGZ3A?46'ZVSԚNSY&XuiWߵr!h 4=\mx/҃z ua!73^m~WH{`E%FPJ !B˴ogzA$" 5O:LWCDf;HHl*CCCC CBCCA:)L\nWWIYDw9/bϠC0O4fiGam,CeK̘ye6PݶJiZ`edD<~Y>rxX{-RBt.rүxTߟHmgp3ȯJ:5(! pݐb^vfvv^vvuvuQ"TTai7P1ʓwz_kR$.Cm+m9IʙP ƍu'!JRh%6[ܦx^ Ůxup-ċR)JE)$ f!|<>6}co];Yo9:8Cڤ8m %IhhDB?hTǹbW%Drf^YI" vEF/QN 00࠺& ג1ػ^ׄhCYkD@<,)ߑrʏzo`wR4;6ji1(ﴗ q)u~#uk9>b'’NIsqqfr+]ZXa_Shڄ$m.|##AMxa`q ڱQBx܄_sN>ՙp"!Y;gnڂel [1E_Grc2r|w$ ^;mXMv\ch҄!~e>TYA)Fun\~Ӑmw})Nn35-gHO2S(T! !?::޷y#! 0uTŴ>˰ DJZ'9 w"TonVo}iIkX[ .%f1L\]66w9.{rukIIl>= ߥXWWV@a w@< Rk$oGEՎr kD)n嗥,O94C!=(E:'{8OiA,1a`~X`y&Ao"[Zbfzhxv5Uy^&vgT{jN M~TCJQh-Mhĵij L |C0jd:QVA4 /KctPR[#k>% 7?F`Ms s,r\xE'EҨD[@/o~ALa|1mk[Kt.tnK:%QOzՅԪY?}>/?koS}s!.KK)߲9Lld]0\R%Woh@v TT|o_bp VmW 7C뵋/u<Tc+'}& 2xg. ɘ"G9W`ίbqeuSVv9HKBz $>8ȿD29$\e!f2+ #FX!@!ϐ\%('2i#>|PI  C@"I$I$I$HǏBL 9.D *2.Dnx^FCު7km~"X[}.<"R=̈D DbgǏ&La.!KO +#vuFNJlb'%RoB[x֧<䢜djF 0R>߸p                      *AAAA,DKKAAAN꺮¦ϰw?N'QPO_꿇KN)J )![A!oe=2k;=qQXZZZV{gI:jv|ýZ\!JuOc䧒_H=^=P9ȡL p`0'rk̈. u^K)I]|/1}}i@1'dU oO|OAn[= `_EA`A!@/LF?2вosGT7U;|I<ŧ/q7flٳ&ʛ6lɯ. d!Owsr22T*\lڲznZa$FEBP*Vʕ(V쌏 C'O!| ^0CILN e035p⁏-U'^{to)| I/=;F|x&\Mz:::::5/R0pP(Hȉ-יlݶuw3C C  p$X(z uE0۟ !4s*. ̔@q9-܍XjNpI I <ǘցEd l8O74+Iml+k+\<`%O@x|__w>I0 !ZVSRJ Qo??{w ;ϕz ˟D3 юfY`j%.м{BPtif&dmi-Kq '-LlҔe<0<7:Xd&y[t vCCCC+IyJ/PKо/ssY]&0Bq`l1d vr`igjVVϛl% U쒤U˔4ŒQ;s\q.Hm6CW~gρiao+Q;1[|<AH;*yt/?&{#k﹤=yӧw|V74gfY@Xf # .%˖o4m-&㗌TC @`r>n~}j> =k:uOǻ~3gϙʪg,6  7$  n~u_  H/_:~_ڸ;PP$5iM@R1S;&VhgӀktiJorWOPB(] hbøkH].6sGר8`Mwy6{8Č>͉KyuxX7l>\++nj .k*2fRY2dͯs/Ԩ1)`cŋ,XbŋNG]e-2C"G&OIqsgN S_ڰPT}l08G_>G6T#!=N*B>+ ثO<+ f76м[;Ա ʫ 6.n-)Ia5e^-3}<ӻ>p{qˣtT% "@п9&%Z;{x=?}gKZGwq+vIwBq_lif"mycemQKa&t$*(QowKK{ⶺ]tQhS xx.K_ٝyhlB[Tʒs|qٗ!p>ܝUU10Hw.Bvjy=/)Ôؐ.Dw]@u_Q)77 77776JBZ("cme^_v$t/-U>eUUD n\%tn6df޺xdҗV+H`R0,hqcF4hѮJbfu:ȱbo!ÆzN^p8Z!JWL|e/L錒^S&iСV#M+s#mSE}x*jL,,,e ZM3{3"ժgɃe&(Fi&w>C,x?6rÇp!Æs)nwuE><0K p sE @U@:$@) 3V!d 2Z &_} e N(q@ǥW&^T(0xP223i-0Ln6AĢ,x0JxUj׵s:>A_kaaa}Bp0{Q{okǿ>O`奅YX ϧ? x-ɘWfeP?{O>~G}]_RPQ 0CPf9}xn5p5x;||{pL:Yi(ԭ:#(!1zI{%߈3QH"D$HK!="$N2,Z8gƌrL2,U j:JKBws8 zZƾYA9Cb}|}tbҚ5$hF4hѪ/ECχ#8p [F 侯H8j+?NJ n1|'Tu]Tab%8"D$H)PW 7`ZIRvҥI(RJ)cȀa(mXD5۾Ê_C 62f,Xqbŋ,XblKqay36?G~% DY8D][3 6Y6&s&;{Ŀ q2=qG!P[*=`P7>@I#ȱSHjCMaW(_ \Ɖxv4:5qqut##,ó58UBKf;oS.SNޯ:uk7}x7*73{? .;:,)Kv ~3׳٩5eg?઼*ih0W@z ?WP{8Va ~29m̅U4@"|>_yo[o[֗zo[ԙZ< q=eb[.+gTTT{oaJ=#r´{^UcԞQ^gWÔS|Nw}vi5bT}*UQJ*TRDy0;YML<>tB@KPv8I]io]NrHEbV PB (PǪEA_/+Ƌ,Z}lhѠo_AXDT+=QȲ ^@ a2fE ؾv|սH6}g|_L-*dɓ&L2dɟ,ʛla("TRĎ>8xWP`tkHe2{2p7~Gٽ-W{2jorF9չ}QQ˹.\RKAFLb +2g]7[5,@|)ꮑe 0TJDmB%ZZ?[w=lGU8vJ%z 2dre˕2dɕxp5%cɓAOXGV a8S;Ɣ~?kbY4y~6:>r\|IH4,eFiit0*y͢&kgy?ʪi,,,,+Dǰ y*Ll_"adY5ؼ6Em{4N_O/O1MǽiD/(s3-G7;30˺2"uK/=V6jt@tGo9+5o$qkugC8'N:tM:tެi"lާ|,3e.zF YF```&6g?:"1 WgDJͥi[ZVKlZͰ5HzBy}6eϓCXeR3"7{NA ft|ݶ?>??m2'Wd5p3 LO@ˏhQl[[;j2 Ç####"8p%x69}4tN#q&NL2p(%mIr˂AEEg1LpHo&`]{OjR!h3)Bd.MՀ8@m/]_8=cIλ~}~ V;,bm7mm6MӾ6!TRMa3-{ƒe"nMu}>GGK000 r¨w~4;bb pfiAr ۭ i%b hJpMxH@P[M w^snٰ#BP˅w|k} }UKUQ(*ժ+ T&M?-EK:tӧM:lөVHItLL (/.nY.ђ@\3syAQ;Q\ٿy춝nc|_m9Rgwm3/ReRtӧZΙ:tӧSٻ.cgYFVV+++! Ne>pU`LNٲX 0 =B'egyYڕq=fD`ŦE4gᯀBc1vdQ6[i6&kLɭ.F=Q$gbְ% ?GQp233/333333333.ݮ.=256lٚF2dɄ0EK1pQ4SL]s-Y3AOٯ3t947Vo4 QX]*TQ[;8 g>aܺ)KWuHm(((5NW(Z1 ɟ z_<yy4)yiAzOo4nG{聾$M|m;o*2ܦB?6qh:<ƛO?/2. H@:VW67 BVhͅ4A'Q'0Ns~7-mxN~q}@-FR$ &}ͷOkui eΗCKhBk4ALGgf!s)S{8yZ5E)PPOcCc ūŧ5>g{xjgiň" 9g~Ovs_)R9 V8QFʒ_n*JqV<(߻yh>̼,vfPEL̻z$>at>o՝?ZUjyp_AƴNlavhliNcv;eCUGr@o;}B ˦nćndPYCX):JtoV{-GCz Et"*A72JNK?ryxǏ}ϫHwӧM&5d٤܀>6v+?t~zm 8c@Uv8KE5vұ)iOm3Ѹ{G>_hJ@rOϟ:tSXwiclM7i} u*jUx UPX޴+J{sR؟47H VKlk x0`A 4D,C}vw?A?uUԍh(J2YsjQɴm6/o&п@vT5q#Xbŋ,Xj"ŋvȶq ^?ߡôߢq"QsU@N5`t}ltϟ?|q EPPF,*fr @.P0um!Xi8 :u~'W{PBfaʧ:_ v"(p )H^B NTF;8܃T ! EIS%(^x- b c𨈑"C8pC%OpDHd4<4UXA y͌'CP>O9:y;ӹ]Ry[9n#Oa/-}t3UWCp/ WϘ A{ue-mGfA ^O>lǩ~-{vRV݄[{vݐ|[e ,>|n#6켷}n-[۾z#!%%[쥸2f)lل-2ŵ!lXz([|n+w̃||>|>UWϟ>l#|ȖO_>l1rW#珞z eUׯ[^zU׶[kvϭ7Azٰm meW>z>[1_7}B@`G6Gښ9uuBGI&GcU[w턷[{{gn>d- ^[+ mml(y^[[nrCam6Mix hQ`ySJۯ|"͊Ȳ(Vk=,11?q_BiިnPy/lni,[KK~چ԰uݮclW6b,Xbŋ,XbŋG'}hj#P*լżZFpϘn_ )QsV?ѷx7 ;jdzM+OmAгFƈ4hѣF=tw ''ٲH]Ve'QG%D/ſñ,N$W3'Qk@g[8ыsˮ䷀1ITZއ3RRKU4ԙ2drǣs"( TD@DD`xH5@o/S PP@[ǥ)eAo;ɂeHo{ӛ^pzO;UJF)*bEFX,ZX":$Xb"^\ ǗF,X"aAX ۪J(F(ay @1>{޶O`E c?g>>>=UCVo- L݆4HʶΡݾJ2rQn3뼟|nO-ST"὇8pÇ8u7H_ Y*^Bi)`.2, ނR:!@g ?cYٍyb E 0` 0`IppBχ@C7Oa_3g^CO(td:/f`礋\?q[)AI$PF&#<= p(ĤWq$eA&hhhhhpht޳4d5Ha>f,.缩і?c^&_!:p̉s?PЊW9J`I%@ 8S{ f~\=?o&{ n-Y&+Fh#& aT c ,P`F )n!F'm*I$4b R ub[un[ MY N>RI)=Ow?+Xqf M ۭÜ+թ?KWj듶?saiW{ ]VtsĥWv 62fsi?2#Mۼb֝g俦}lގcKxc(Z\I +u!ׇ4{#Gb\U7ZtǡNB5LeF:/F2o\^ɮ7c1SzyXAa~rMޞCMpyhۧh}܍f}GG?`z*"Yzvǁ׭NϣF]7G)u:[km.Ywӑy𣈰ak$-K7}G-֟\.鸏NҹӁR|c%A˦Gg>ID?k';7?MGǛ#? eU$Сm3mZ܂IMM}w@ '3;u%nJ ԙv&:t(˱.!O9ǵÝ2쪁w/;lr|ڦ&}%I/]atoS cΚ Mig7.ꯎXVx~MܢF<<7naSUKj}UۃfeJ;ڛ{U ԪۥuoRa];&K OLrrG\( :OSz c%ߘ_Hj/BAOix-<Krb4"v;_?Tln8Kcj0?_)yKNy~%D2l4/OoTwfìTOMOHm(Qpgm&fG=Y>KK&\*oi|30z}M*4"=C%4Amqqoa ;~êDc3Y.~0PLgJY9[pgU!y v7x80}Yo闡L7oa&mʆ˜iD$$we6zH0 !kƮoN_Y Ǡغ[ïJ[:C 㺒3v 8dn%ϺzȿuY47:@r@0;1ӃkZACfF/4rat^Ǡ6"3# Q߳olRPΪeF[ ڽbnՇY1lԛtۻ&Bc,_f\wܖzqyu\L* yu={my^ؼ)P5*G]}BGfP 6jTcpf:v`uaKU';w}+/:w[8\py7ZQHW3 ^2JAAet}) ծSFj^2y,Idp B i?",3.S- "&{|A֒; 7$!{ n"M&$`@ :/:N~n&-2$sd&MY`u.Բ%md"H݀0);z{u)܆AEF>!%«olrp=6 ǁz? zoHi= {|Kވ1~:z^j !>ˍ-Uc7m~םgg{{} O=n.Yۈ?%pAr \do-e*\Iyn>n\Ys&-:g_]\;d<7}x{DOz}n?ΖO9UjhiAQL} %nGn7P߸˵/DѰ#Jn"Ǜqd?qr[:t:^&m}AׂkqsGC/^VGS),1|_%8f ^Q~oP>L#i7cmXϻtsk!ɲHϻx{Iچ}*/oWqKum7zW5oo{귺g)w#{.o05 ƶMWעqB^˾3.6h7V$yx$-;mcQW_wC|/ϗAwTSo6]-ʗw ߭Z-ˣ9 IL+=]]=ψܯUdxN#r+~$~QF>)cc:\=>ݾ!{#kp%;Y:^ g׍AߞWz.y|Nu,YP"h{¤IuP(Gʓ؎,8W~o'~| Nu mo1=g{#xYO ߟnn0pf貔w7'|Ͽ` zmَ>nel{9.of3ͫ~(cf$ >MdNc"%=wK=Wwoʦ(Զf8op` fŘQaqbhh~׵7|D40-`!_p.W4=̑@4r'eM^M-֒dļCFkG,\\SfJBEqN-оmn)u|OOI2}SA4ꪕn gQnl9щGGFB ь >YyP'!@$ adK&.1L K;5/nje[6l$81D$H"DsSw |~}~6 n-+B&תuz նT}]j?w\7mKN0+9޷&ǥQ!mMiam6HmirT,$˭ pÍzͧJ/.\Dt[H`[f]K ܺ&h MmG2#:ZR" ;w<7ëy( yr˗-rʗ.\}$M6lټ*dҝtƼ*J"w"(<'ϝs=Փϟ>|S"#L j;I2dN$t*jZn,@m2!,p"jY πmg{n&qˮQX " ;gSj?YF17/////////.*`elnmnnnl!*"-y abiJvk<`p)W/j5⧾?*oGb6go0O [ڏ2k_*<+JR"i3+sQ gi4M'g::::v=)Pjj}9`iWA0 l;K|m{jӨŘmD+=F*b62RE^=nҾYi"EU4NpVpV֪2w aK`X(=-<|־O9=ד;nc(Z\<%in&uqQ%M1k[LA`+m^I45uD)= P@ۿ~ó;_sׯV{LBĜ{\8-R5dddddmr121r12222T&)7cISDm&!fx 2 J<./&ߑ]3靫:V> ՘;{}6zamW^<- -)6w^ ZTocKE8bбW)KU6fJxQ>5v11UuZ"x+Âʧ.ɫpn)[>V"zl_ qzU= (K-2mYnfSh,ֻ̢զ_KmO# ,zlZ*'knMѴU`z Nлdbad,nTS/rs&T?1fStf,t4 =̦v,0/2šRFxyCu t:[^ymE3 Trfi=i|CO_OM44ϴ{Oӽ==0{7;{?Z8O1 mL{?Qq-)lr~~l??^INL ^OE(ȗ)Gy'b@{?Әq<>֩*Ox9~/S~M:i"$dp7havɝO{n%=xR._T'N?f}RS/lW2@-!@CTeЇy_C,$ IPCjmR-ZH6@)#@=ӐLj]޹~[iA-EEJ޾uʟU{lYDmE1ئF՜^}8ac_[ݟxǭ.ZK_gpJp龩ޛfS)L˝զ 4[E˂eUUt2ޠҥot3&mnwz=tp\-h**-2* -8R%R(SͶKK -Q3iL[F|{ 0PcY1YZ:Np 20$գ ^YP77[uи= LԔf` taw]X6(n s3nuE;Y'A۶&+֮7+7IZHJv mg.tM=_@ ;,w0\ݻm[6*j36eGv\ڶS.i[f͟hh77n»<AC@P)$Jvwk֊Sɦ)ATx{{;{[ @>x 3e ӧZ44y5im4C6)6óp˪v u-܉fՃlvjwrkKb뜻Qv]s7c+sˤz+tJn{mҘwt/0oIi[˜w<ӼnWsƥh5WcOSRoLiC&hmM =2)@M M#&ch&&Hf#HiB6 CMRHC0@a0 $ L!@14F`F&L&4CLPh4L B=bMiOM iCOSL lFɤƞSOiyFИCO)F#5M$J$Ђdi4mjORdJy3$ڏ#S6ɂMF?izOi `i=I)QOFM2i3M5JP&h444L5OɽSjje#4ЏFQjzO6TSё=&oB6L2a&a4ԞOSѤ2bcIʂ%@L 0$CL MOC Ğ43C=#M)z4 MISI#QѦ%3JWdK(xл7~ a[ҁ } lmxv.j:uvZqbkCQi{5Ss#i+YAWv75v\(V[( +\^_}F5ؼrSlZwRaDNUƵk=mRZFRX8XW|lmVҕJaŰ!Ջ=-[O)\e8IE{7=,mv! պ7|Y[Uɋ,"-k.7{tT_ ŖliWiNivOKV[dzcfwʰʪ6 hy5gK,)KF W>7^֤V jF;,į- o ͯcYw \ܪniUiVp!j  k$ 5hoB墀Keo ] [-D(H Ȋ"7 H((" ȩ" 0"VI$(tOgOvQrlqСaW "?ޢw"@תz(wʧ@?S梇~|?A(z^=dz S[^ϥ:;8:_USٽzv.dE?dQԀ@FDD |7P Ip@ 0ii믴jZZ NRgMqkZֵk[ѪM)Aب;5MAu@@E5jxz! gA@ :j P@(` DQ kd#$a"dgzUjUFţZZ1imJֵRԥZAZQFڊ *ҖX+DQ"T**+QN: n" (̈PhPFD@00!P@u<5ڞ]y}zR {q泰"֕l-*mEZ\pZN_uXm[[4RUolk\o8b)RM,eNYJA((k\-|c9Ikë¢<) G}׀xQ}wqνq^l~N_"$`>>EPgP[C!@*| h"TU2VI$Ub"j ( ;!|.WwZەUV 0`Ç 0vJyA;QAyTJEUUUEU`qyշm4M4M4Vi n"Dj]\PTrF[[[[[^ossfOֵ=` "rZAV"P g@1ٳfssf͜qyeyy"NuUUUUUUd :=y4M4M5j]xVjyk"%M,Zs [DZQ0,x͍c1n1,Vi4yu*Lu<N70Zu;@sdNu?l;t#$QM-<@ |8F P!_k֪ Ypp7 7P!L\Ih b mT`%ԽDDZq6O?fɂHa a᚝<ķ5F.&!j#, n&b"Mxm IIABEDh aax|vy[x4uϝR""=*((v?TKU  `tq@UEB( QvTUP"(&0NgQb *ؠ *V*5">_WE/Kl ""(Db.IJO­ FAJPJ_M*gY@K+eem@}JT+PK*M +U q텊=E/Mݥ .\UVؠ\Ẅ * TDBf $ )@$ZRid)I@&QM D}{Y?D}S+T m1_(fU m(ZXR7c^yS  A@mh3 !-7&M@CʼndPJ64Q,sj Zpjyߪ) Zf i`['. hB@^t;04iLx2%5# HjLdD/QZ'TdJj**+T[L*e bbrA`,JTV kP+Qz^K,d--//!R)P EIP BT-APPUPT@7[u\ KimKcR%IRTJT CP5P HTPT-KPURT@Էq*QSl۩EERZQQ&"Ąd*( \,)9cT@] g;[ b1Sȡ| Z@7*֦0~q2\(:C!,$C,rԨj|FFa[}-l7oj6 ws\4%(]a!"/N1mRjSnYTqyz[LEˁi0Ss*nSOׇP& 2K!a0%E+0>F<~Q-؏ҥ*aD*3%)eed01 ɔd{OQtSډ.0(>Ɇa;yE™IHj>;TQ y@)8PF`#2r듼 Ta 3F*P#k_}J ~ɫ C2`?A0%WW bY f1dR lDAH_ƥ&u\)}$Qpl{q1u !}j#dڳV VP;|R)XBb0Yn=)Ę37YW&F,T`+$Ov"va>\S0,/R\PCAp(*a01rcX$ƒY1,9]+29uAp(O_j1\P|5aPyMFo\ܩ#?+ 'i ֎ gyg_GB7'b3ˣ1D4Mc?kR*M%!1a=WVd2|[!ja=} *db-$}Z'̰&4>)Ĺ!l%>8z 0#낍$LcHc.LvAe´\%rT6ʋPLJs-0\(F(J̅ODAH{)#D#YaZ`?XGDX@Edh d吗)7!l[ lAlnL,Ϥ*(2\/6wX)Y ιsb!7MY-#X{VIʾʖ(8TQ={"C {*>IJ`$agX+U;IgZLBŊRJp2T`Q:N0Pȫ@zJe)2SX&|VTZAKC:ddJJ"M:s JH|-82S ,5r4'uZ2IpUҳ%1^B1]iz-@N hWꪢ1,\{#p>WUйl?ŷ%?ܝei+0.PgZZ 0V=nE?oឹ4h0e'ïS,&u)@aD`GTaDrGP꠆VՒVVuz•՝fQS!4, dgYi 5 dtΧQ E,=wUZRrPb1r00Tb$¢JO&XKGʖV`\ ztWAn t3D@419 &U#Bz|nDzOzcP$zX $OMҖWSZF=.J&Z``eKҬL#"aNӅD)Қ%\P NlQ9GDV)d HWЧh4lGϔ`} ~h4}%r&6A * >T@~U?YAU,%ZO; Hy󦉺k,э{p<ٔ([!'5 B:@,K!K8O9d*d}mB D@g27sS/rMXP-,%H@jh -(Za߆H~/{{?FS H2`=[)aDDR@,pE`MMH@Zh&0@AsvxfhqDjADϫex xK^v1\6db;Km2 M}FlvZ^K׋Tj~#d$AR¸*.TB⫢D$M"!5(nBB]`HI0*`{8$ݙ,e7pwN  )2QEwL˩n4l2 *<Br+,rwtS1*6@!L.28 )Z*ZB8t%*т`Q(\ @.7&7= ' j )lEr$=+!3!4E+8$0zLJ.{D5 e*e ԍ@55R#R%HTP*-J_Koqn\r0R<*P eq0QAG  2PTj jJ j@ |R n e(A ¥(HsA4)͜~>nJvKM򲉀fLl~װԞ&Ox;_kئ>ɅP2P)BYS3t0nw<˿}BCT ER2  d@X RAH ` dF )VA`#t7h5*d5]x]M%LttAMMM Z*RjR }B n !! Piŀ)!XZ)ؠ@p+@@@`T@X"AE (sQL'+ߗQڈ/N7:'U~5Op~PVϺy׏xw}~z,wC-t}zb/Ke ?ڙ.sCCŽjC6q/l"Xud071TptҁJ}J}g 1Vx<6i0$ԗ2'np{+~ߥ}MOA}Y/y/?aT EEE(DU"o_@6( mZ(S-??}{[Me/6J@KLH]$-a$$.|62z6#9v1NWA;HnM$1iY& (%a vӸBi$@!RH"""/) a J-a%$mBdNH[pJQc /]軞c;* &9l8C\lYb+UT+J-C֙6EE7I -Se*qwZrjB o!cϐ/뉬lUQDP etlտ\X<}dwҧ"slaJNZcА n@?#(bi`2 !") R H@P $H, "," H"łABAI *FDY ]Y/^mDn}-GiL@4^4c_ls;KΟb~8[MmZw7g8^^~vɰ\IELD :~?لh?sO#ev6sm =9woꮍ>{`@Xy۪]3b\3K\e$N/T{U6vZj߃Uq%w׺ usU" Y0 GTYjooLi儘y:[lCUiPb[phݣߺֿsgɗ'PC)C8,LL,f0͍)J[A$vfp0IpT*@( PgZcwx='iu~Oךh' =qxXts5;=qJϹ_?_yo\2W/OK}{~R(:qO:Q8kvbY ٶgz1|~${Tehj{W'#5>_goO#ķ599.8--4YL{~޲;o>O#oy@_躽k~&GeTϑA˶>uATiӨ'z\ {:mQqQIJ~;-՟p{qcTN9q Tz2Op;PҖP@ZdapKD(|?S{:$7~Z׶ooC!!?.L;o5'^ח5Vgu9ޫ?Njw?7n^.p֟/\GwTl5OkcWV]6dїsa7m߰nuy>M|޷nsƻ{l#o#~o8P5 EN% p7p< W#Sȑ~so-R+?={jaG>#w0 _K>?k/~џh l >1o vgt6]7uVEDH8D .gn/x;7"hl*a EL!  )'ӏoշE L &cy pfZ k_ۜun=q=hd`z?a_';8J~_G8Mp 1:F?P42(lI(Õ)6K?~}WqU[QrvrGɥ*B\[ ɓ>.Wezƻ?leF.3 z<ڸ|>N}=1wGTP:[-wP(E TɅ: u]F' ǜgEo0.}g/ienKFº/;u{־o-Î?z?֥`&Dt[ /;}رN䓼ln2=YdY4 >|j'ԕ鿣"?fT9Dpȯ"Č_@,ʕ}ܘ}{i'hy}"i3֗yar}s6e&XOpXIeQf(ϣ?9wB%g>· sF&؇CQkj›ٓ>:nBN'DlDM"<=,op{ÕyS{?N~Ӭ.THZN.\g>t*Nt_+?W8u!UJ/ uS`<` %sP}c۵^3UjwN-FqwOZ ;|.gOɤ4,7K׼CWȇd:oypaǧ'|C7Z^.ffWl#++'??(*)PN+{o.GǷUI?!9:N7Ut Q8nH LUoc,%fUͩx9zFKps&_;%} yRmuz/k5 ~ زH~"|ఈb-`t(T퐢 $!PPXzܒ&D%HV;1&#hC 1!bc1+ d*b %H(T,%dH1[hI4F@PE$@@@'ٟF*EZyGw/ߏ , *W`|#y6$m w/ǚ 6 et[7T"^h2gKz]77c'Kޣ/K0AL3 \1?,[y;Yxy:~{8SNbbqvFBdGu2'Y^\L<1LS;C%v%˗/V)?+ /.=ჽ08" 5vܝΓJ4pw qsaCn7v 0"Οk`nMwDlj`D?X`IvFsJ%]AtܖgߣsZJ{ǹXx?fσ9ewى~7/#>3L?'-x '̟5~t6Q'9^7?y7Qrm/ڞYUJOWhk\64ldsYf''yC? /v{ FäM~fQ2*ٵaڬ_[;WΜNq:*=~̳g7:䎥t}!ß8wvg հ봉/bl*uBEcj;]]:dv*Wo=r^/t:թ/BkC0ז"5.Iʣ7-Sf62})4dqK鸿q9o{'/'A鹝tޛ6k3v1Ǜu{>>KyRcOs8h6&_y+5?^鹷s(RDP@kB”+"J}˶ғvC[̏_{apgr5#2no&Wv?OpO /o g<bbzqs q]@tj(Mhy&{4_2~u=bIiA?{eu7kj-iZы>ۋ.\..f6 ,-/sQ=}f|Q}^M&~)3vMhl"y&v;;747}fvcF>[7>lmkY?ΎzgtzZ?pܾso{8B7?wW9΁\հD\vMxx]{"FQj=wW>k/3x:mUUT_]~zIןt~{?"lIs4u)x۬Z͚QL_s""bl~pxpkD íi/*Е6~S6R[8A)x:7C^™1EgL=V'UU!FJITՑʞQJZUFl_hǼ)AAL\vOZ2v%wߨ-}_"@=./jywSH=_ ph~nMS/}@&t)X6po/9fjd<=/C{=&,l> ^6&.65n.66&67㭈GG ّ B"5 >וiik~C Cd5X3B1캱ㄒc'gBYRC=y~υ{=M}U|D*YP4/?}ɢZP8˟SeS~40s;y;ջ_{x `TjRQM]ſwLǼJbsЫ?Z<*D E dU`X $QH(,DQX#E`U2(,PR,X#Ȳ,XE"őTAEAdF"(1b(,QFBQdXbV*$DEDV Q(*"h""DAFڊ(TQcb(DUV[V*hحh*jUXF $V""V "EDd (-K((E"JU "`AdXPU`,X( Ł@A` v!VNǤVk׵n{x@㤣ØEb6cIBwוnJ 9TS'm5gl[:DCEߗiyeIuRRO?'}j|% xVZugz2zz\}֍nϩ:lM}׏^~T8]u{)CЊ0Pք@Rg@\/%DSj3솇[S!)iNz8EnGV(uRBG}'vݶso<[#AĂH9耲ouSO:޿zϵ~X]=nB'+-,0<γ<gq|W~J/D_K\* ByA>|iSss&5&VTN ϡSC*ncN)6|߮pCHV~ZG_u~R֒-:_sNZYlW$aK_JbVIWwd4o0 ṋLy >ۻkRp9߰7W?., />.[ yOOp"3Z'_\*N$kV?~+ B#9M:tӧ0C ߋ%c]eާTC6 FZʾr"aAG_-vW~Zt B%35l4DF^̙y*\ɘrՓ!S&~o٠օ #:J?Yfz}z c?- *EV ,F(,$edEb Xb1ADUX TV#+X*EQD$QEb""*1X*"+TXPTAV("UH",EFX XPX" UEPD`b*D`",Q@A#EQbX0QXE,DV*"* UUEUbő $UEȈ*ŋ"T $ ЁhӸ#b1) YhV1bbk6l܃pTDD}TWQҤ 9hѢOۆUb5~M`y٩ۛ[N F ox[،kڅ:Ŭw'XdDO~Ez̯^z DEf=JTe9c:4a">.x?xC#1J>!8נl;:@\uQ"" A[B\`DH* A &>- (bSjh"!,x`mcs|B-ḥF/qPD2ѣF`) E&_Vo548s|oV. ng#CĪdoB=;Bx~!㡎``,@/zL"<2,2GRy^zů&0#Mw_zf "m@f2h1wa i/5*Qx@5u!En lMW*DO~#!آ+S$H"<2h:Ϗ/k}?aOQy M:'U߷Gu{?6ƧI |O%ս ^N?! <>;2|i1>GOt|$~ȉzyO_sߧG GhMF7ddv ͍,zNͶlmlmlmla66&dىkdEÿ8Q͓dv ɲ;la;tla66]/Mc v l68o 8NJK8եעk Aa/chw]7;|h}界oLuR*ԩRG%'DEqY EW<p8Sk 04BC00CVՋ Yq̢Q]I$D @RFDDT$Ud$Y ""d"(Y$RH@R 2"H=h ޻|mtOX!P@hE4huR o?*l˪5RQ-OUrY9jڙ8McsMI\E'pY(8/wGoy|>crW >;u\SU"2Jcݻw&ˮAjէvmDѠLjзL;g 5͇?iJHa\?x7NcOўq -^8eh^Ҕ -Wa]+wF8_{/;{N~4/ϢSs7go|o[=Gwotg~͟TED_@_H*Q_o 'Vb}N-cnaK9.7 ѬsC '^{Q1s*XXxhkxo{>xx# /ȀU=`A &>QwP_g}|lz;K߄9~*[LQZrY_WH PvVv-N Kƫquqtp7޳;+^?d;uGn$$Hő!$`<@@ Tb,T`*y lS*)@ @h)AFAyI 5淛]orMu*e$ߵ4d"iѭMJhՙc8}cmFG]y*U(kTzXR^*Tf`:RQ%k@gQ~Zze"/$ke,̙d Uh^@-||xlr/.twG-Oy^59[K(uu(x.TZ]\jǫVUZq<i}Aww[8} BƗLIf/MSPW a1[d%(fكw>Wzfv}עAo,] ˩*}} ǖ_i;-Ow{OCX8s-B>nPصX% j7⩪| ?k2bFI Ra/*_||kǎ-6S2EҮnV2ow0:tLbm;F7w}ۃ8=nJ[{F5%z&cK̋iJP {&;# a fa[h`\aX%cdhTĹb=5{< Y@y.2URDSe ^,-G<t>~~O+u;osކgqY[|g3Ng]'jLOZ谰ky=:V|@Bu4zQ|oMs5OPHܫ ܞօi 5Hi"dX :o;!!,mz6x*B]k_2K;LNv>ڨ"[U^4[VmW$>g?]{ӑrK2QM; f{h}'}#nrlTRڮ{f(.J+zq|7SԊw;ǧ? ?o?*Om\i _66;Ep9|7pxs1)G;uaB77T@IQޣn@rEs^b5ƢzoO!B'dt‹6r VAU͜sfL\`,#bX1 !rfd&f rӝ??~U}NSW]q|n*}Qy~/cϲe@UW-zժלjBeQU]80C§{{0q}$,$TXTU[jUU!~qCC F˚`c2OTT+U(U  2QD @wʂxaBeD(PԳ7ex2HĕOd Rq{,crK?eHvI D8p! g A @C6 {t)X3se&|>)hsIg \qf'?٤W'ba_qW&긣F.,\R\q-pسz#aLEV-bݻx,mbڋv#[fhV 4[4T[BdHKAQ We+ahJ V dA.ƖC\\hY.\Y..2K.ha*߲pQr (dhJ4ttYh謚::,(QoEcDQh謚&MFދ0˿XW. K.\h%6fGGEaD.hd\\.,W\W ,\\.\ex⋗.7f.,\\qh.(s\s\.,\Qr 73n7na3K.\X5bp0 V]kCQ6HC!P B  hPUE۫c]Y.nBۑYsF( 4`dY,,Cd5j!lȂ5v$|ii27~a&,GPԮ릤7jjO9YNV,HjjP2ii,FjmՋ.ݺ.ꮨv&iuEۋT\AP CY@H+TA&b5,BA !]XՒub.]!6rG7!9GAxkUM*WZ_AB{؍u>q~GCvCo8_Q4iRU )J?cQo+{;: /(RLyA:?avav9I8$^>?o__Đ'ey\jo=!&^VVVVCK #N.#pJQ(քtgA1^ +$RS=xQD$<@yXr(smqY,N'ܹhxzۼdȘգ=ܹ_ kMBNH4bo[$(& VrgLTFJP@Q$bǁMRiRguBT:Se+?Ss8>^p| VA!ԮdDFFXj{}޻;_tMJ /al5톿a;>$E酰W2Mv=3ssrٍ r`"y,CP(T-MPC=0lݞ(߀R$E U$TV7~fWL֮%ݢ뻫OƸեtp?/7St {O<.tѿާ?i.۩k't_[o0>^NPO."zu͗p2RdH xyWt$&+''"UK<Ǝ8ܜQ19]b"-qAӾE\M !WJQڊ=QE. L^Qdߜj.g tC M&ig ] O#zMs.0,uDXg;{_P"< p0K*w4\iiyBts0aQ}N(蘻>;G~O'KKɃ驩eexRԔS 2s]߳}v~%#}3:/*͹=E5>U?ULg*6qc|$Z;wg\ >/5t +v4ܪ0z1q/aM4HXžQ dYƍ2a1fL.d%Ǒ*54 .vx\ y/~ovB@qGg=.s۴4x>tLu&8ks ?-\阁7O%[Н(_rռ s0oV$\|QסB?O7=uz^_kBq漻* 5zEK/Sju3Rz~;?$y/1Gi#n(0jV;B)Ø9/mǬ=8f71-ɗ+\n$˗.\`"z}D)~ v{z8jT4&LG^b=30W ]zS*Ƣ #ࣼ]M@ Cݛytw^TM8! ==OOO3OOOOONH@ q~TA$D(B*Ȁ'z_V[VWpN Y٪Xh(]0H f U2()  pR Hh"f "eŷfCok,A-@LnATaA7IwD@dT U(J!H _i?dGl AHE#ngt D6sP , EbA"R T H$ }-`L67{r[gD!gS>`2 sJLX% E!%R%PI"0=F f ~|YH|*Y $I jH0V1c*Hw4(s`N\ i-TD> x3[;a ) B em}p *fEmNZի:D<"g'b8`d)|8IDلV | fd!3!߁dG,-?%.]b}UT"G!$"ӧN6_ӧN ^ #0x =յP(PRsMuTkėk+i.?U\5Y ]lj;Z&lln+p.=G@@%[ݻx۷n /[@ӧNi)(2r2YpmX~M&MQ]Iu`o#x j_)8tOwWJʞeE=i-ET@z?~}X٬yoChB{ca&@H6J#Sph::? e@:6Qϯ%a*TT š`fy1gݟ?:l+3#3n#u[b"X q[C9 `{__g8 ȚU=\y@QJ4iӓY΢WfHa"DZnI9CvnB9ߚohա7H8!0qC8RUo~_M5I"SP]ez`BdEK*MhRJ'RA)A,`R*J"ID4q{i~ŠK`( !JyAAϥ   xX   A (S QEPB(2 QEdQE(E(E!m!nuUUVsSSSQn;߳omkv{=efɕ=?bƗv5E%>oZVUK|BUUgM6l&|)r夒I%*TH8&L2kȑQ_I$l#Ǐ4hѣFNj+v[v[Emf͛:lٳf͛6mvlÁ7Ç ۶l+kQ[Zٳf¶l+aEnݸo Èn!pݸ[vFYggpg8p'8q>|i8V؛kki'[8m6mۋy&8q5ÃMpp:{{smͷqqqq5\8n ۷=vݳc[ٳfmM6KD,j֭M5VZiiii%djM;5kgfkVZ8㚵9U=[3jV5jV>8N|nU ƨ}mlq6 XEWit]os}g]f;˻w ,Ĕ%C= kr C`xx<ճU[-gl)(VYeYeYmoҬ,٬i_O`UUUUWiUŚUl?GeYik,xNOBx:v'' y AOΛ6dͲ(-)Rl"(  y34M7o#"D$HW"FFFFAQE(I'$HbbD D"| 'ω|H"DH"D$B   @㎠;Ï߿@>M858 ```w=|^ÿ~߻i [5c9h-o"x؟Nw?mm>=?~)Z,+y?uŷjXUWVlt駨PA>tٳf:ǚoL*۷^VؼW^CAyy{u\?;.~.X9rnG.rrvg.\u\ѹn.4s!^m//:.~˛g.x\ u/tKPBoz+~/|֋,b?67DY翋 }<+u\Qէ$vsfcM6lٰǙ0y2PdUSѿ>>| FZfYe,aYyҊ(sdtI$$N QEa0(L1ce/6QEV(YkaYeݷ@ 00&a0a0 [###" h0 0bff>aYE*@{ PQEYA,(I$I؏/>D$h/e.:L;wza_Ur>UjZuSK(PrwڃPj5҄eJ24۠F6+6?"6q\Aq 0T-ܩ7K{;ŚpvU-2T˙*dɓ= ڢ'快qm㪫LZj,,aJX{`@%((+&ÆêE#EMucTjO X0u۷Ӹ1mh4y!]6D4XZOtv]/\ݮݻ@(QN3[a,$Q&Xd%`R)>Q(*R%?Qx?/vؗ73C~hKYZkիV`zhA;6l^Q,RHaYЮ&Eξ%p oiAj**@\]*q"N41乓&L.\ɓ2̳ IXrdɒ"f@+C]IN]!3FPRBD@EBEIɷ` 1t~t{  L!!I{&L1ɓ%J'OH"rM-rw_w$:̓ +Wxl]a/s;}4ů\^ׯ^zhౕskذXL5+ r4)CPC!Kj ,BM}/ͻmA]coi .~8>:ܖu)@dW^z׮JDA+ׯB^JWzoo i}:AY,2ɓ&PuqT"@嘴V EG$!q=^=xfA*破OSLJ#pG?6mr)C=XQE*1C҃6$iFFF(ɥf}טb1bŜͱbőbb5* ( ,F(,YB±C-,B5 X,XF),b>~;yxޠT,Se* ,X((DHYUŋDbX` ,XAb΃pfYX,XŊEiQbH`@()H%BƌXHXb(  ,R#)b J5+ XXa3 +*bb"$0/'51|_)q1T~ sCe%((,XbŋNydkGsR@$΄Xw;= .CqogRa'o_]Yŵ=:vgzܱޭ۷lư6&&"fÒT Y+%vu-E) zo7|o^w_Lpp>@MX'p358z-FSt"#G<UUUUX***"****EUX( HdR*)EA,EV(*XQA!"#"E$ b`$U"YTUH(*""ʼn"$,V"U"+!)V1AbE F+XłDE"AH ,APEEPAdEDEQVH P ,~ŅтF>&ސs Iǥ8r6%Ņk>-"3Nn3ٮ_] , D_Ӛ=M`l  1fŖa;"=H2E;Ջkׯ^wh;dL/ Y)OD[@T %iU +FLp§kS|B %;H+ެewvf,8j`ʗ8 L*YI@O8{6'*ߨ'9c LT4Gj! "AR<**TNJb;XB([{y6iFYu/|3d+a&KYQ%AjX6ѹ,[aaw&&>~/'^1><_o|M u=if?sy(X pK<?';d=JS;@ ?{GQz_zuT|Hʀ|{o8\H8VO#@?uٰ>7|o_e0OG7#$5_ѵL]Wood;R,Yw-}gOv M؁.ЈqÍrdCph/՛u7TPf4S@PϩRJ*SR2S$"1/5|>m/?BFm DeO-rsi˭knć:kc 8$Ԁ"yUU=?͠âo" @7dCVF1TLB&d A<9>_[AN! TA&v,Xb{,<D@/HD{ mIPPƀ,H Pk4;#JPT-Khj" -nuD~8D,E_Wi[h i(切,-@' @d@d ,@HAH,X   R,)o~>g ڴ(j}hnHI"0aD(dRP #׬BA dB$ i@dHTXD !\ fAI 3CB@ @B B#1 @P ixD) @fP f`!@8PjRԴlajۤ]BRd!FOHBA  fK3A(PYGDH01VB$I$$O)UU$I"8 (H$ 8i#A$Đ\ `[jvk}q-pFU $$  @ aUJB@D d` ̌D H DC ( XHd BdFDRh &h&iJ[mAA$~@H<@Hb ,ȌPD  P̌ R! @JIi4zBL!]rD#bH)G PD" )@HB"""D$s$ 2C "rS@O R@ D  ĠBAs"BNp@HHRB! 3%@D@O@I$$HJpBNK""Da4$$##$HDBBD@9=3LP! B_zp A 0 .庀 ё^H BBDH$I$*@ЀI$̔ f N/ K||@ \ 5BA(J'  ( %B$ (@ 0 (P1$B,o$!0$HXABY` A(S!BD, !HJ33"2'l  d`tI DA )C5HA 4AD$ I,  AC BA @ B@ Hʁ  `!B`ABB( D(hQ!I@pi! ! @P da 8 !%):H#!B d`A bBHBdFD$(PBp f"B$R A (  @ 5!! %@AAA,%0dd$A 222|(P @bqD34!BAdI2$fddP@"@I(yI8!`D!0f(n٦@xHC_S_6JId2! \w#?o.)ofmk]DxlQooÙ U)AM5ZR3 T 4R Q O3>*)s:Svܻ"&-ǟ>|sCv+!nwKlСBRGr]ԕ+ֳޛYy5bPIuQYR4PE&{ Aa2#PtD e\S$ $ Hh gx($I?`4gY߽YzjL& 9,ɘ4&LÙ2dX Q(p޳x絨M9 Uy W]Ȯ-+X3pouws]֪U8_tM,,XT[6la#;Ye\K±VjurJvJX0HhCAg{#7^rW=W0[v<_ߜzo)d ԖʥJ*TiR؎3f LaeRGuoJK.mYNff3ys, SMBQRХĔB([hZtJƪ&C@=^%{M}o Cv^܅ hZ|XbŋV** EP6e( 2f,Xw7qjPb r:5 :E"zQb(O8(,Dފ(E"s()(9tQE"(( (TQEQb'EXN"(xtQEE9dQb',4(E(iQE8袊)(N(ESE"r袊)E"r袊/UUQ(dQES(28Ȣ)EXES,D(MȢJ,D܊(E"(EQDOEUUU8Ȣ(EQb'QNQEQEE؊((ӛIYBLDwq>s:NOX`R+6HM͛6^Xfgvj}\]7u:G8}ߏ߾||QP*&` /%ؐBJDĉt/칿\·OyG42c?ܛX2Ae!"XȱZ,:pQebS}3{Wasnd0=*|Q4nhY+(Ұc~Zn_ >7k(nw⿌nx"^w}Z޸\%tN Cw[ u"!xJW˙ Im8msGkE {4?9_1}5Ct5*B5wq:M>92"@Zuz޲7zn<^tӟ;p /~S_}1,8(_C%BdldJg).tߣI;k94TJ"D 9*aŘz8E\PHå0 1ea(SZ $gf9a<uaWk8Fam)alB+BƔ0 R=O'0 m &Įfxg44g!u,N/ (}TbPB v_x ?|z')(%FġGy%kSS6T + B% M'w˯Y0Gw+^4 _ Vλv˗nݻ&0IgMv6ZapIILAev˯_R-y8kBs%hDx\p|uU1b)%=/hsȼlYgYfś6ltJ<mmykZiknnƍ4 i¦e4*cD$BI$D! < NOm|Ok*[HJ8!AB (P|!2J*-hѣF.ĉbYDEjҔseW@@1 Q[>3go]Fڛ;ښu2$H"D}$W".y+ 7Q6dɓ&LI@`G5od^&o'kS4yYdB1xu/Ly:g}cK+ LƉZZժ0Q+0aK6"tWu p4b^4ޚy,;}"Ye /tuπ|ϟz Tf$ ϟh ,͓ۡxw#zg$"Y>44YdV&&q'E\] Va`g ~<߫CeBfD@0ŵzVZsϗjիVBG/+n!XR"PFCvfA uXk-$|LHǏ<|q?ۖ9|lv31af6kɳs af>Ҵ): o%};ٴ>ڽM>T?fMtӧO.;*T)J4MbcQxAjiJmԃq%ӭWeVhσcb{l^;NӟΜ2rV2AdW? lt&O(f9l30_PU(+uØ2FEKd %J*T]"D"$M |_v\rD $)]2RLa۔_6@u5 a\Qb΋,W\؏>W_1YBh632a˸I(PRCR,X  mBHCP@ TE0t`qry=-dx&j:4ܐt<.Xn| R$@)IOOO/OOOOOOOO=#$&`*t6up*R5۹FfFnn^hўm&W Av0iiQԆ=>VV~~ۺr>Ϸ :Q̌; ymy`^vog}w''z͇'nɖznlgZ.\zaU|cf_-9I_:4 fزb[0_ qn7-f zֽt6}5?=WW96Xx|?K|N] ca))o ;߄E@S7|Ϫ? [_VRL *1Ċ볯^z3j:oe֭Zl0os&XF:H,nP,o@^Y/w MOV1vOAw]Uދd)7;+~[Yfś6lylٱb͛-Т͛6lYgn)Xaa,X0P 0Ŗn*aa!J 0ņj%& 0 7BacZ mZj6BZjզ]V^!NիLZiUlXb 7lXa۰ 0 P{,0 0 6\Yf͛6[!E6lٳfd)7f͛6,k6lسf͛6TrŖ,VSlŖ, !IXŖl%Yb 1eRpŖalF0 1|&YaaPn 0XaQ YV֬e)_1eb ݆Ŗ,*8aa)a BfaB 0Ŗa0 1eQmf͛6lٳeUqf͛6J 5a,1f 7aaa\TBc 0Ŗaġf, 0ÄIXaaa!Q 1a/$XŖaaB6lسeJf͚lٳb͛6lB6lY 6lٳjA"jV7R6ᘃ$^M CbrmEP<;<GI( p GQu٦ВFt`:\}M'SѦ/U3Р3^,rOr]kTj!uMqf !S՝=iϟ>~H@>אޏHFvpIT,Rv2x tD"av7XYmA}hH+o+<].ǺYU}Q^GoĴn$F E6TTS'K4zZZ[.8#~" AQ~z}"#u_cˁ^zrRbbb^zlXV(AP`  0b B A$(E! RD5(EV 95<*:֢%`[ B@#Ll%~ku-%.%/6-Ztqtw7..R @g8$+0M0ѳ{otOrw/.d7 ϻP!vu붮ݻvۯ6ݽX0<93_%QØ)zSĄ]1lU@o~~x?;X ʀ aZ_k{BP &ӭ˷n=vی9ak y-۷fqCEB# Vp8 )du=6fNx]ޙ9rgPZz0 QG4]eSej(gԩN7џEb3M.(M!R2AmY_|ߤ]FP'n3QXF/h^9bf;>p)TiuZjotCϟ>z/@; UxF2c yFNUvժm_/7i1t/ɫ|r~]-+Euhۮ ];r?֗r^.N/s+1r tH))> Mjni[Nwz6LѮ 6ܮ'm/ꪷ(sU;cr#7:E+"w>' vѯlƊ^W7rdIV\kN&?[ U֡zX1H5w{QtHw.>"긳BrRJ4Iaa[a.p{տ~]=~ҟЗ ̘%>c0//_~_/r|// }|k`~t΁ /P0`@ @} `́n,,9Ẃ2p_ P`7߶Qm[*n컋kt,?Q)}O+՗.ʗswwƹ]e%t!̫c˒^:ywyyS?XN4̺uzo7%6.|nٻv5+{r_3tf2;/o̗OH̼yu}|Ol{;M܋;ׯSeJY2K2Yp˗,>̦,|~E"j,E8vqq!3A鬆p,aXqc /r  }9<= 9O&[=ccXɱXXIi,,,,,,-}>Ȃ&|AʲʲgVdiiiWiiiiiii>Vї^M͙2vڢ͛6dͺ7nݽCfGnݽCi7nݻs[6diyt~AT`(J(,ʕQ*:2Y4SXP 9(B(((2K,,,aaT20 1C 1Au(Ye,TYe\ʒYu%LdYePQELdU@2P$8I&nDI51ȒI$ A+$gK"I&:I5$$I$I%DI$YTG $$j#ǏQ|owm(* o{|<7}#wf{>614[6ߎyr֮I{j)bx|?Ϲ.5ߜ__Wdm͵v՛&yi]ݞլgO$'o 軷f?/i_π·,#;133^og־cgǍyu-9kvg㫹|<?}+ $ [{M].?yO_svygo߯_TwQ/K;_^گ˔|71^s]~5m籿H/ogEz}~vf{?#p}ƟBo,o=_#󙿻ozFfW7O[oϿ|kusW+?Я{oo/|Wat)Ws1swE}g?ᗅ_W^/^oy>'|V6U5=oYyb v4}^ݓ73ƍnJd7tgdJ5c-V].-hѷnݡjYkHxv?t!}sq?u߹zϣ1]^3V~ǯW|x5[Էz_}[oSKy'p?/oQ֫~x,n5kٯ^oozyfiKnl׀Ƿn]a>}n?u+:ߗT/E~W{ugw+Sr_L͔w1 #lY7rv}{4)w?)ϷMa|s;a-[ھWyW:弪1oeǯ7}Oiok}6n=\j{Ugwo~f;M[bE>)۔N=~q zH7 `V r,G؅6H/P 0sҋ?}1h'H{tRC$ރp6CH$[>Cl0֢ .IK$pRIv%WwuU}qGvOt{|T m۵U;nN;_xOu|Olӵ}h>=ׯ~^NR'+9^y]u}/?`]{ϟz/^W+;>C{7S~G@ff?]|闠9N[oK[O컕ݕ7eouo{Ko3/E=geW*\꽗dy^y^ro?+U}ܛU?Eϣ5n#cc=dG\ab}`ggq]bba͆C&>K^= | ,A '#xOsdQd=rezyR>.^OG2e̛6f '^= ȑȾ{|;ouo[b_iClL*&baFÉo־>M|LNn^LəYS+=ƛ~츓ec5y[icbeY[WsU}l Կd*)gpjƉކFpř6Klِbhb}״o #E ?:bev?7O~xn Vw}/m)\MW:tkʫz!|+dh}ZC!' N1<8bN{q8O40?p1:<9D2B`xMe t3\d-5[W``#po%…-&|3lV֡4 deBDXK&4vuTH\[+ qtp!]R#{ @'H >~[{N'3&OY~6ۧ=wEƸ2o^Na)ض>ϗ9sy9R*ӠK@6sDJt-}at|56#dH[#6BmBkSmFNBAk]PDO}:sFu 7H꺲Fu=9D: )IԆbSGH7L3gbE3NgI}Q393LԆCL2Eh.RI:q !̆C!HxICR _@ +Hrk':2&#dq1+ O؞$8$O#x